{"version":3,"file":"static/js/main.9add34cc.js","mappings":"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ACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGEoN,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEnX,EAA0B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC7D2d,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEvR,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,KAGEhf,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEyiE,EAA4B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC/DnwD,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEEd,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,cAuKOyL,EAAkB6V,EAASlG,GAAA,QAC9BluB,EAAY,EACZ2J,EAAe,EACf/H,EAAK,IAAIL,MACJqZ,EAAI,EAAGA,GAAK,GAAIA,IAAK,KACvB,IAAIoY,EAAI,EAAGA,GAAKoB,EAAQxZ,GAAIoY,IAC/BpxB,EAAGssB,EAAUvkB,IAAiB,GAC9B/H,EAAGssB,EAAUvkB,IAAe,GAAK3J,EACjC4B,EAAGssB,EAAUvkB,IAAe,GAAKiR,EACjCjR,IACA3J,IAEFA,GAAa,SAER4B,CAAA,UA2DA+O,EAAUyjB,GAAA,QACblG,EAAQkG,EAAG,GACXp0B,EAASo0B,EAAG,GAAK,EACdp0B,GAAU,GACXkuB,EAAS,GAAKluB,IAChB21B,GAAW,GAAKC,GAElB51B,MACA41B,EACc,IACG,KAAXD,GACFzX,EAAU,KACVA,EAAU,IAEVA,EAAUyX,GAEZC,EAAU,EACVD,EAAU,YAKPzX,EAAUkW,GAEjBkC,EAAQ/zB,KAAK6xB,EAAA,UAGNsB,EAAUtB,GACjBlW,EAAWkW,GAAS,EAAK,KACzBlW,EAAkB,IAARkW,EAAA,UAyOHhP,EAAUgP,EAAKlG,EAAOluB,EAAI2J,EAAM/H,GAAA,QAGnCgZ,EAFAoY,EAAMpxB,EAAK,GACXyyB,EAAYzyB,EAAK,KAKjBkZ,EAAA,SA5OasZ,EAAMlG,GAAA,IACnBluB,EAAI2J,EAAI/H,EAAIgZ,EAAIoY,EAAIqB,EAAIvZ,EAAIwZ,EAG5BnnB,EAkHA3K,EAnHAqN,EAAU,MAIT1C,EAAI,EAAGA,EAFH,IAEaA,EAAG,CACvBnN,EAAKo0B,EAAKvkB,GACVlG,EAAKyqB,EAAKvkB,EAAU,GACpBjO,EAAKwyB,EAAKvkB,EAAU,GACpB+K,EAAKwZ,EAAKvkB,EAAU,GACpBmjB,EAAKoB,EAAKvkB,EAAU,GACpBwkB,EAAKD,EAAKvkB,EAAU,GACpBiL,EAAKsZ,EAAKvkB,EAAU,OAGhBkY,EAAO/nB,GAFXs0B,EAAKF,EAAKvkB,EAAU,IAGhBymB,EAAOt2B,EAAKs0B,EACZqB,EAAOhsB,EAAKmR,EACZ8a,EAAOjsB,EAAKmR,EACZD,EAAOjZ,EAAKyyB,EACZoB,EAAO7zB,EAAKyyB,EACZnnB,EAAO0N,EAAKoY,EACZ22C,EAAO/uD,EAAKoY,EAGZi2C,EAAQlhD,EAAO7a,EACf+Q,EAAQ8J,EAAO7a,EACfme,EAAQsK,EAAO9a,EACf3G,EAAQyhB,EAAO9a,EAEnBuZ,EAAKvkB,GAAWo5D,EAAQ59C,EACxB+I,EAAKvkB,EAAU,GAAKo5D,EAAQ59C,EAAA,IAExBwG,EAAuB,YAAjB3d,EAAQ+J,GAClBmW,EAAKvkB,EAAU,GAAKoO,EAAQ4T,EAC5BuC,EAAKvkB,EAAU,GAAKoO,EAAQ4T,EAAA,IAQxBvR,EAAuB,aAL3B2oD,EAAQU,EAAOl0C,IAEfvhB,EAAQ0hB,EAAOU,IAIXh1B,EAAK,SAAY2nE,EAAQ3oD,EACzByjD,EAAK,YAAc7vD,EAAQoM,EAC3B1M,EAAa,YAPjByX,EAAQoK,EAAOG,GASX9iB,EAAMwjB,EAAO1iB,EACb2K,EAAM+X,EAAO1iB,EAEjBwgB,EAAKvkB,EAAU,GAAK0O,EAAMjd,EAC1B8yB,EAAKvkB,EAAU,GAAK0O,EAAMjd,EAC1B8yB,EAAKvkB,EAAU,GAAKiD,EAAMixD,EAC1B3vC,EAAKvkB,EAAU,GAAKiD,EAAMixD,EAE1Bl0D,GAAW,MAIbA,EAAU,EACL1C,EAAI,EAAGA,EA1DH,IA0DaA,EAAG,CACvBnN,EAAKo0B,EAAKvkB,GACVlG,EAAKyqB,EAAKvkB,EAAU,GACpBjO,EAAKwyB,EAAKvkB,EAAU,IACpB+K,EAAKwZ,EAAKvkB,EAAU,IACpBmjB,EAAKoB,EAAKvkB,EAAU,IACpBwkB,EAAKD,EAAKvkB,EAAU,IACpBiL,EAAKsZ,EAAKvkB,EAAU,QAGhBc,EAAS3Q,GAFbs0B,EAAKF,EAAKvkB,EAAU,KAGhBqO,EAASle,EAAKs0B,EACdoB,EAAS/rB,EAAKmR,EACdsK,EAASzb,EAAKmR,EACds9B,EAASx2C,EAAKyyB,EACd8B,EAASv0B,EAAKyyB,EACdvM,EAASlN,EAAKoY,EACd3U,EAASzD,EAAKoY,EAGdqiD,EAAU1kE,EAASmX,EACnB+N,EAAUllB,EAASmX,EACnB85C,EAAUlsC,EAAS0iB,EACnBq9B,EAAU//C,EAAS0iB,EAEvBhkB,EAAKvkB,GAAWwlE,EAAUzT,EAC1BxtC,EAAKvkB,EAAU,IAAMwlE,EAAUzT,EAAA,IAE3BzgD,EAA6B,YAArBs0D,EAAU5/C,GACtBzB,EAAKvkB,EAAU,IAAMgmB,EAAU1U,EAC/BiT,EAAKvkB,EAAU,IAAMgmB,EAAU1U,EAAA,IAQ3BugD,EAA6B,aALjC2T,EAAUh3D,EAAS8X,IAEnBs/C,EAAUrwD,EAASlH,IAIf25D,EAAO,SAAYxC,EAAU3T,EAC7BzC,EAAO,YAAcwW,EAAU/T,EAC/B2U,EAAiB,YAPrBzU,EAAUzrC,EAAS/Q,GASf8iD,EAAQhqD,EAASm4D,EACjByB,EAAQ55D,EAASm4D,EAErBjiD,EAAKvkB,EAAU,IAAMioE,EAAQD,EAC7BzjD,EAAKvkB,EAAU,IAAMioE,EAAQD,EAC7BzjD,EAAKvkB,EAAU,GAAKq4D,EAAQjJ,EAC5B7qC,EAAKvkB,EAAU,IAAMq4D,EAAQjJ,EAE7BpvD,GAAA,KAKG1C,EAAI,EAAGA,EAjHF,KAiHaA,EAErB3K,EAAY4xB,EAAKjnB,GAAK+gB,EAAM/gB,GAC5B7F,EAAgB6F,GACd3K,EAAY,EAAOA,EAAY,GAAO,EAAKA,EAAY,GAAO,SAG3D8E,CAAA,CA8GH,CAAmB8sB,EAAKlG,GAEnBoG,EAAI,EAAGA,EAHN,KAGiBA,EACzBvM,EAAG9J,EAAOqW,IAAMxZ,EAAOwZ,GAAA,IAErBnnB,EAAO4a,EAAG,GAAK/nB,EACnBA,EAAK+nB,EAAG,GAEI,GAAR5a,EACFwD,EAAUhH,EAAK,KAGfgH,EAAUhH,EAAKkG,EADf+K,EAAM,MAAQzN,KAEdwD,EAAUnO,EAAQoY,KAAA,QAGhB0b,EAAU,GACPA,EAAU,GAAoB,GAAfvO,EAAGuO,IACvBA,IAAA,GAGa,GAAXA,EAAA,OACF3lB,EAAUqiB,GACHhzB,EAAA,QAGL21B,EADAC,EAAI,EAEDA,GAAKU,GAAS,SACfzb,EAAW+a,EACC,GAAT7N,EAAG6N,IAAWA,GAAKU,KACtBV,EAAA,IAEAH,EAAWG,EAAI/a,EAAA,GACf4a,GApCI,GAoCa,CACnBE,EAAMF,GAAY,MACb,IAAIvoB,EAAW,EAAGA,GAAYyoB,IAAOzoB,EACxCyD,EAAU0jB,GACZoB,GAAsB,GAExB7a,EAAM,MAAQmN,EAAG6N,GACjBjlB,EAAU/O,GAAM6zB,GAAY,GAAK5lB,EAAS+K,KAC1CjK,EAAUnO,EAAQoY,IAClBgb,GAAA,QA5CQ,IA8CNU,GACF3lB,EAAUqiB,GAELhzB,CAAA,UA8HAo4C,EAAWhkB,GAClBA,EAAUlyB,KAAKyhB,IAAIzhB,KAAKwhB,IAAI0Q,EAAS,GAAI,KAErCxZ,GAAkBwZ,IAAA,SA1qBCA,GAAA,QACnBlG,EAAM,CACR,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,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IAGOluB,EAAI,EAAGA,EAAI,GAAIA,IAAK,KACvB2J,EAAIqpB,GAAQ9E,EAAIluB,GAAKo0B,EAAK,IAAM,KACpCzqB,EAAIzH,KAAKyhB,IAAIzhB,KAAKwhB,IAAI/Z,EAAG,GAAI,KAC7B0qB,EAAOpW,EAAOje,IAAM2J,CAAA,SAElB/H,EAAO,CACT,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,IAEOgZ,EAAI,EAAGA,EAAI,GAAIA,IAAK,KACvBpY,EAAIwwB,GAAQpxB,EAAKgZ,GAAKwZ,EAAK,IAAM,KACrC5xB,EAAIN,KAAKyhB,IAAIzhB,KAAKwhB,IAAIlhB,EAAG,GAAI,KAC7Bs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AAIqtB,EAAE8wB,IACfn9B,EAAIzgB,GAAK+sB,EAAI,GAAKrB,EACpB9E,GAAKoG,GAAKD,EAAI,GAAKrB,GAAKoB,EAAE8gC,GAC1BhnC,GAAK/gB,GAAK3K,EAAI,GAAKsY,GAAKsZ,EAAEkmL,GAE1BpsL,GADAA,GAAKre,GAAKrN,EAAI,GAAKsY,GAAKsZ,EAAEimL,IACjB/lL,GAAKtB,EAAM7lB,GAAK2N,EAAMjL,GAAKiL,EACpCoT,GAAK,MAAQkG,EAAEqB,EACfvH,GAAK,MAAQkG,EAAEvkB,EACfqe,GAAK,MAAQkG,EAAEmrB,GAAA,IACT39C,IAAOssB,GAAK5mB,GAAK0rB,EAAK9E,GAAKnG,GAAKqM,EAAEu7B,GAAMzhC,GAAK,MAAQkG,EAAExgB,EAAA,MAE5Dsa,EAAI,EACTkG,EAAIlG,EAAI,EAAI,UAGZ,GAAKkG,GAAA,MACDp0B,GAAKA,EAAEkxD,KAAO98B,EAAI4vK,GAAGr6L,IADVyqB,CAAA,KAIjB0vK,GAAK,GACP9Q,GAAK,CACH,EACA,EACA,EACA,EACA,GACA,GACA,GACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,UAEF+Q,GAAK,GACL+V,GAAK,GACLC,GAAK,EACLC,GAAK,CACH,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,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,GAEJlyL,EAAE,aAAc,iBAChBsM,EAAKoqL,WAAa,kBACT,YAETpqL,EAAKqqL,WAAa,SAASrqL,GAAA,OAClBA,CAAA,EAETA,EAAKsqL,WAAa,SAAStqL,EAAGlG,EAAGluB,GAAA,OACxBkuB,EAAEluB,EAAI,IAEfo0B,EAAKuqL,WAAa,SAASvqL,EAAGlG,EAAGluB,GAAA,OACxBkuB,EAAEluB,EAAI,IAEfo0B,EAAKwqL,WAAa,SAASxqL,EAAGlG,EAAGluB,GAAA,OACxBkuB,EAAEluB,EAAI,IAEfo0B,EAAKyqL,WAAa,SAASzqL,EAAGlG,EAAGluB,GAAA,OACxBq1E,EAAGA,EAAGjhD,EAAG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,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAIAzD,GACAkB,GACAnB,GACAiC,GAz5BAO,GAAKtiM,EAAE,KACPuiM,GAAKviM,EAAE,MACPwiM,GAAKxiM,EAAE,KACPyiM,GAAKziM,EAAE,KACPqiM,GAAK,EACLqB,GAAKnB,GACLjU,GAAKkU,GACLiB,GAAIhB,GACJkB,GAAIrB,GACJ1B,GAAK,EACLZ,GAAK,EACLe,GAAK,EACLd,GAAK,EACLJ,GAAK,EACLK,GAAK,EACLgB,GAAK,EACL7B,GAAK,EACLC,GAAK,EACLC,GAAK,EACLC,GAAK,GACLqC,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,IACpEvB,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,KAEFqB,GAAK,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFvvI,GAAK,EACLjB,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,KAEFe,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,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,I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AAK,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,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,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A,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,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,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,IACA,IACA,IACA,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,KA8jBEluB,EAAa,IAAIo0B,EAAM41L,eAAe,CAAEK,eAAA,IAoC5Cj2L,EAAMuH,IAAIiwH,OAAOrpJ,KAAK,CAAC,kBAlCE,SAAS6xB,GAAA,IAC5BlG,EAAOkG,EAAKmI,KAGZ5yB,GAFIyqB,EAAK/I,EACL+I,EAAKqB,EACCrB,EAAKxwB,SAAW,CAAC,GAG3BhC,GAFQwyB,EAAK0qK,MACNn1L,EAAQomK,KACL,OAEdpmK,EAAQ0gN,cAC2B,kBAA1B1gN,EAAQ0gN,eAA8B1gN,EAAQ0gN,cACvDrqN,EAAW8nM,WAAWn+L,GAEuB,mBAAzCjD,OAAOnG,UAAUmO,SAASjO,KAAKytB,GAA4B,KACzDtT,EAAI,MACRhZ,EAAU,GACLgZ,EAAI,EAAGA,EAAIsT,EAAKrsB,OAAQ+Y,GAAK,EACgB,mBAA5ClU,OAAOnG,UAAUmO,SAASjO,KAAKytB,EAAKtT,IACtChZ,EAAQW,KAAK,CACXvC,EAAWoqN,cAAcl8L,EAAKtT,GAAG,IACjCsT,EAAKtT,GAAG,GACRsT,EAAKtT,GAAG,KAGVhZ,EAAQW,KAAK,CAACvC,EAAWoqN,cAAcl8L,EAAKtT,MAGhDwZ,EAAKmI,KAAO36B,CAAA,MAEZwyB,EAAKmI,KAAOv8B,EAAWoqN,cAAcl8L,GAEvCluB,EAAW8nM,WAAW,CAAEuiB,eAAA,GAAe,IArnF3C,CAynFGjlM,ICpnFHA,GAAMuW,IAAIgrL,QAAW,oBAaVvyL,EAAQA,GAAA,IACXlG,EAAA,QACCu7L,QAAUr1L,EACflG,EAAOxtB,KAAKwuM,SAAW,IAAIt1I,GAAKxlC,GAAA,KAC3B86K,SAAStsL,IAAM,EACO,SAAvBsL,EAAKw8L,WAAW,SACZ,IAAItmN,MAAM,uBAEhB8pB,EAAKtL,IAAM,OACN1Y,QAAA,KACA++M,OAAS,IAAIxtJ,GAAO/6D,MAAAA,KACpBiqN,aAAA,QAnBTv2L,EAAQnU,KAAO,SAASiO,GAAA,OACf,IAAIkG,EAAQlG,EAAA,EAyBrBkG,EAAQ7zB,UAAU2J,MAAQ,uBACnB0gN,UAAY,IAAI1xJ,GAAUx4D,KAAKwuM,UAAA,KAC/B/xK,KAAO,IAAIg9B,GAAUz5D,MAAAA,KACrBiO,KAAO,IAAIqrD,GAAUt5D,MAAAA,KACrBkpN,KAAO,IAAIvvJ,GAAU35D,MAAAA,KACrBsoN,UAAY,CAAC,EAAD,KACZ6B,KAAO,IAAI5xJ,GAAUv4D,MAAAA,KACrBoqN,KAAO,IAAI9xJ,GAAUt4D,MAAAA,KACrBgpN,KAAO,IAAI/vJ,GAAUj5D,MAAAA,KACrBwjL,KAAO,IAAInrH,GAAUr4D,MAAAA,KACrBqqN,IAAM,IAAI5xJ,GAASz4D,MAAAA,KACnBsqN,KAAO,IAAInvJ,GAAUn7D,MAAAA,KACrBuqN,KAAO,IAAIvyJ,GAAUh4D,MAAAA,KACrB4oN,SACF5oN,KAAKqqN,IAAIG,QAAUxqN,KAAKqqN,IAAIzB,UAAa5oN,KAAKmqN,KAAKvB,SAAA,KACjDC,SACF7oN,KAAKqqN,IAAIG,QAAUxqN,KAAKqqN,IAAIxB,UAAa7oN,KAAKmqN,KAAKtB,SAAA,KACjD4B,QAAWzqN,KAAKqqN,IAAIG,QAAUxqN,KAAKqqN,IAAII,SAAYzqN,KAAKmqN,KAAKM,QAC1DzqN,KAAKyoN,KAAO,CAClBzoN,KAAKy8B,KAAKiuL,KACV1qN,KAAKy8B,KAAKkuL,KACV3qN,KAAKy8B,KAAKmuL,KACV5qN,KAAKy8B,KAAKouL,KAAA,EAOdn3L,EAAQ7zB,UAAUoqN,YAAc,eAC1Bv2L,EAAGlG,EAAIluB,EAAK2J,EAAK/H,EAAA,QAChBi8B,YAAc,IAASn9B,KAAKy8B,KAAKwsL,WAAA,KACjCR,KAAO,eACNj7L,EAAIluB,EAAM2J,EAAM/H,EAAA,IAEpBA,EAAW,GACNssB,EAAK,EAAGluB,GAFb2J,EAAOjJ,KAAKyoN,MAEatnN,OAAQqsB,EAAKluB,EAAMkuB,IAC1CkG,EAAIzqB,EAAKukB,GACTtsB,EAASW,KAAKL,KAAK22B,MAAMzE,EAAI1zB,KAAKm9B,cAAA,OAE7Bj8B,CAAA,EACPnB,KAAKC,MAAAA,KACF0oN,MAAQ,EACT1oN,KAAKwjL,KAAKgnC,QAGZlrN,EAAY,KAFZ2J,EAAMjJ,KAAKwjL,KAAKsnC,cAGM,IAAZ,OAFVt9L,EAAKvkB,GAAO,OAGVukB,IAAuB,GAAV,MAALA,KAAA,KAELm7L,cAAqBn7L,EAAK,IAAMluB,IAAA,KAEhCqpN,YAAc,OAEhBC,SAAWpnN,KAAK22B,MAAMn4B,KAAK4oN,SAAW5oN,KAAKm9B,aAAA,KAC3C0rL,SAAWrnN,KAAK22B,MAAMn4B,KAAK6oN,SAAW7oN,KAAKm9B,aAAA,KAC3CstL,QAAUjpN,KAAK22B,MAAMn4B,KAAKyqN,QAAUzqN,KAAKm9B,aAAA,KACzC2rL,UAAa9oN,KAAKqqN,IAAIG,QAAUxqN,KAAKqqN,IAAIvB,WAAc9oN,KAAK4oN,SAAA,KAC5DmC,QAAW/qN,KAAKqqN,IAAIG,QAAUxqN,KAAKqqN,IAAIU,SAAY,OACnDC,aAAgBhrN,KAAKqqN,IAAIG,QAAUxqN,KAAKqqN,IAAIW,aAAgB,IAAM,OAClEC,QAC2B,KAA7B/pN,EAAOlB,KAAKgrN,cACJ,IAAT9pN,GACS,IAATA,GACS,IAATA,GACS,IAATA,GACS,IAATA,EAAA,KACGgqN,SAAgC,KAArBlrN,KAAKgrN,YAAA,KAChBlkM,MAAQ,EACT9mB,KAAKwjL,KAAK2nC,eAAA,KACPrkM,OAAS,GAEZ9mB,KAAKirN,UAAA,KACFnkM,OAAS,GAEZ9mB,KAAKkrN,WAAA,KACFpkM,OAAS,GAES,IAArB9mB,KAAK2oN,cAAA,KACF7hM,OAAS,SAEXA,OAAS,IACT9mB,KAAKkpN,KAAKxnM,QAAA,MACP,IAAIhe,MAAM,6BAGpBgwB,EAAQ7zB,UAAU0lN,iBAAmB,SAAS7xL,GAAA,IACxClG,EAAA,OAE6B,OAA7BA,EAAOxtB,KAAKkpN,KAAKxnM,SAAmB8L,EAAK27L,QAAQz1L,QAAA,IACnD,GAGJA,EAAQ7zB,UAAUylN,aAAe,SAAS5xL,GAAA,IACpClG,EAAA,OACJA,EAAQ,IAASxtB,KAAKy8B,KAAKwsL,WACpBjpN,KAAKgpN,KAAKoC,SAAS13L,GAAO23L,QAAU79L,CAAA,EAE7CkG,EAAQ7zB,UAAUwlN,cAAgB,SAAS3xL,EAAQlG,EAAMluB,GAAA,IACnD2J,EAAU/H,EAAUgZ,EAAOoY,EAAA,IAE/BpY,EAAQ,EAENhZ,EAAI,EAAGoxB,GAHToB,EAAS,GAAKA,GAGSvyB,OACrB,GAAKmxB,EAAOpxB,EAAIoxB,EAAOpxB,EAAIoxB,EAC3BpxB,EAAI,GAAKoxB,IAASpxB,IAAMA,EAExB+H,EAAWyqB,EAAOpR,WAAWphB,GAC7BgZ,GACEla,KAAKslN,aAAatlN,KAAKulN,iBAAiBt8M,IACtC3J,GAAa,IAAOkuB,IAAS,SAG5BtT,GADCsT,EAAO,MAGjBkG,EAAQ7zB,UAAUy9B,WAAa,SAAS5J,EAAMlG,GAAA,IACxCluB,EAAA,OACc,MAAdkuB,IACFA,GAAA,GAEFluB,EAAMkuB,EAAaxtB,KAAKyqN,QAAU,GACzBzqN,KAAK4oN,SAAWtpN,EAAMU,KAAK6oN,UAAY,IAAQn1L,CAAA,EAEnDA,CAAA,CA1JY,GAiKrB,IA+RI8lC,GA/RAN,GAAQ,oBACDxlC,EAAKA,GAAA,KACPnX,KAAe,MAARmX,EAAeA,EAAO,QAC7BxR,IAAM,OACN/gB,OAASnB,KAAKuc,KAAKpb,MAAA,QAE1BuyB,EAAK7zB,UAAUyrN,SAAW,kBACjBtrN,KAAKuc,KAAKvc,KAAKkiB,MAAA,EAExBwR,EAAK7zB,UAAU0rN,UAAY,SAAS73L,GAAA,OAC1B1zB,KAAKuc,KAAKvc,KAAKkiB,OAASwR,CAAA,EAElCA,EAAK7zB,UAAUw2M,WAAa,kBAEH,SAAlBr2M,KAAKsrN,YACLtrN,KAAKsrN,YAAc,KACnBtrN,KAAKsrN,YAAc,GACnBtrN,KAAKsrN,UAAA,EAGZ53L,EAAK7zB,UAAU2rN,YAAc,SAAS93L,GAAA,YAC/B63L,UAAW73L,IAAQ,GAAM,UACzB63L,UAAW73L,GAAO,GAAM,UACxB63L,UAAW73L,GAAO,EAAK,KACrB1zB,KAAKurN,UAAgB,IAAN73L,EAAA,EAExBA,EAAK7zB,UAAU4rN,UAAY,eACrB/3L,EAAA,OACJA,EAAM1zB,KAAKq2M,eACA,WACF3iL,EAAM,WAENA,CAAA,EAGXA,EAAK7zB,UAAU6rN,WAAa,SAASh4L,GAAA,OAC/BA,EAAM,IACRA,GAAO,YAEF1zB,KAAKwrN,YAAY93L,EAAA,EAE1BA,EAAK7zB,UAAUk3M,WAAa,kBAErB/2M,KAAKsrN,YAAc,EACnBtrN,KAAKsrN,UAAA,EAGZ53L,EAAK7zB,UAAU8rN,YAAc,SAASj4L,GAAA,YAC/B63L,UAAW73L,GAAO,EAAK,KACrB1zB,KAAKurN,UAAgB,IAAN73L,EAAA,EAExBA,EAAK7zB,UAAU+rN,UAAY,eACrBl4L,EAAA,OACJA,EAAM1zB,KAAK+2M,eACA,MACFrjL,EAAM,MAENA,CAAA,EAGXA,EAAK7zB,UAAUgsN,WAAa,SAASn4L,GAAA,OAC/BA,EAAM,IACRA,GAAO,OAEF1zB,KAAK2rN,YAAYj4L,EAAA,EAE1BA,EAAK7zB,UAAUmqN,WAAa,SAASt2L,GAAA,IAC/BlG,EAAGluB,EAAA,IACPA,EAAM,GAEJkuB,EAAI,EACJ,GAAKkG,EAASlG,EAAIkG,EAASlG,EAAIkG,EAC/BlG,EAAI,GAAKkG,IAAWlG,IAAMA,EAE1BluB,EAAIkuB,GAAKvmB,OAAOk0C,aAAan7C,KAAKsrN,YAAA,OAE7BhsN,EAAI2F,KAAK,KAElByuB,EAAK7zB,UAAUisN,YAAc,SAASp4L,GAAA,IAChClG,EAAGluB,EAAM2J,EAAA,IACbA,EAAW,GAETukB,EAAI,EAAGluB,EAAOo0B,EAAIvyB,OAClB,GAAK7B,EAAOkuB,EAAIluB,EAAOkuB,EAAIluB,EAC3BkuB,EAAI,GAAKluB,IAASkuB,IAAMA,EAExBvkB,EAASpH,KAAK7B,KAAKurN,UAAU73L,EAAIpR,WAAWkL,KAAA,OAEvCvkB,CAAA,EAMTyqB,EAAK7zB,UAAUksN,UAAY,kBAClB/rN,KAAK4rN,WAAA,EAEdl4L,EAAK7zB,UAAUmsN,WAAa,SAASt4L,GAAA,OAC5B1zB,KAAK6rN,WAAWn4L,EAAA,EAEzBA,EAAK7zB,UAAUosN,aAAe,eACxBv4L,EAAIlG,EAAIluB,EAAI2J,EAAI/H,EAAIgZ,EAAIoY,EAAIqB,EAAA,OAChCD,EAAK1zB,KAAKsrN,WACV99L,EAAKxtB,KAAKsrN,WACVhsN,EAAKU,KAAKsrN,WACVriN,EAAKjJ,KAAKsrN,WACVpqN,EAAKlB,KAAKsrN,WACVpxM,EAAKla,KAAKsrN,WACVh5L,EAAKtyB,KAAKsrN,WACV33L,EAAK3zB,KAAKsrN,WACD,IAAL53L,GAWC,GATc,mBAAR,IAALA,GACc,iBAAR,IAALlG,GACa,eAAR,IAALluB,GACa,YAAR,IAAL2J,GACa,UAAR,IAAL/H,GACa,OAAR,IAALgZ,GACa,KAAR,IAALoY,IACK,IAALqB,GACD,GAKC,kBAALD,EACK,gBAALlG,EACK,cAALluB,EACK,WAAL2J,EACK,SAAL/H,EACK,MAALgZ,EACK,IAALoY,EACAqB,CAAA,EAGJD,EAAK7zB,UAAUqsN,cAAgB,SAASx4L,GAAA,IAClClG,EAAMluB,EAAA,OACVkuB,EAAOhsB,KAAKC,MAAMiyB,EAAM,YACxBp0B,EAAY,WAANo0B,EAAA,KACD63L,UAAW/9L,GAAQ,GAAM,UACzB+9L,UAAW/9L,GAAQ,GAAM,UACzB+9L,UAAW/9L,GAAQ,EAAK,UACxB+9L,UAAiB,IAAP/9L,GAAA,KACV+9L,UAAWjsN,GAAO,GAAM,UACxBisN,UAAWjsN,GAAO,GAAM,UACxBisN,UAAWjsN,GAAO,EAAK,KACrBU,KAAKurN,UAAgB,IAANjsN,EAAA,EAExBo0B,EAAK7zB,UAAUssN,QAAU,kBAChBnsN,KAAKyrN,WAAA,EAEd/3L,EAAK7zB,UAAUusN,SAAW,SAAS14L,GAAA,OAC1B1zB,KAAK0rN,WAAWh4L,EAAA,EAKzBA,EAAK7zB,UAAU4oH,KAAO,SAAS/0F,GAAA,IACzBlG,EAAKluB,EAAA,IACTkuB,EAAM,GAEJluB,EAAI,EACJ,GAAKo0B,EAAQp0B,EAAIo0B,EAAQp0B,EAAIo0B,EAC7Bp0B,EAAI,GAAKo0B,IAAUp0B,IAAMA,EAEzBkuB,EAAI3rB,KAAK7B,KAAKsrN,YAAA,OAET99L,CAAA,EAETkG,EAAK7zB,UAAU+e,MAAQ,SAAS8U,GAAA,IAC1BlG,EAAMluB,EAAG2J,EAAM/H,EAAA,IACnBA,EAAW,GACN5B,EAAI,EAAG2J,EAAOyqB,EAAMvyB,OAAQ7B,EAAI2J,EAAM3J,IACzCkuB,EAAOkG,EAAMp0B,GACb4B,EAASW,KAAK7B,KAAKurN,UAAU/9L,IAAA,OAExBtsB,CAAA,EAEFwyB,CAAA,CAlLG,GAqLR8kC,GAAa,eACX9kC,EAAA,SAMKlG,EAAUkG,GAAA,IACblG,EAAOluB,EAAG2J,EAAA,SACTojN,WAAa34L,EAAKy4L,UAAA,KAClBG,WAAa54L,EAAKq4L,YAAA,KAClBQ,YAAc74L,EAAKq4L,YAAA,KACnBS,cAAgB94L,EAAKq4L,YAAA,KACrBU,WAAa/4L,EAAKq4L,YAAA,KAClBW,OAAS,CAAC,EAEbptN,EAAI,EAAG2J,EAAOjJ,KAAKssN,WACnB,GAAKrjN,EAAO3J,EAAI2J,EAAO3J,EAAI2J,EAC3B3J,EAAI,GAAK2J,IAAS3J,IAAMA,EAExBkuB,EAAQ,CACN9a,IAAKghB,EAAKs2L,WAAW,GACrB2C,SAAUj5L,EAAKy4L,UACfrxJ,OAAQpnC,EAAKy4L,UACbhrN,OAAQuyB,EAAKy4L,WAAA,KAEVO,OAAOl/L,EAAM9a,KAAO8a,CAAA,QAO7BA,EAAU3tB,UAAUg5M,OAAS,SAASrrL,GAAA,IAChCluB,EACF2J,EACA/H,EACAgZ,EACAoY,EACAqB,EACAvZ,EACAwZ,EACAnnB,EAEA3K,EACAqN,EACAvI,EACAygB,EAAA,IAgBGA,KAfLlY,EAAanJ,OAAOC,KAAKunB,GAAQrsB,OACjCwyB,EAAOnyB,KAAKqrD,IAAI,GAChBpgD,EAAwD,GAA1CjL,KAAKC,MAAMD,KAAKqrD,IAAI19C,GAAcwkB,GAChDzZ,EAAgB1Y,KAAKC,MAAMgL,EAAcknB,GACzCC,EAA0B,GAAbzkB,EAAkB1C,GAC/BxD,EAAY,IAAIiwD,IACNkzJ,SAASpsN,KAAKqsN,YACxBpjN,EAAU+iN,WAAW78M,GACrBlG,EAAU+iN,WAAWv/M,GACrBxD,EAAU+iN,WAAW9xM,GACrBjR,EAAU+iN,WAAWp4L,GACrB1yB,EAA+B,GAAbiO,EAClBiL,EAASnR,EAAUiZ,IAAMhhB,EACzBoxB,EAAa,KACb1rB,EAAY,GACA4mB,EAAA,IACV1rB,EAAQ0rB,EAAOnG,GACfpe,EAAU6iN,YAAYzkM,GACtBpe,EAAUmjN,SAAS14L,EAAS5xB,IAC5BmH,EAAUmjN,SAAShyM,GACnBnR,EAAUmjN,SAAStqN,EAAMX,QACzByF,EAAYA,EAAUpC,OAAO1C,GACjB,SAARulB,IACFiL,EAAalY,GAEfA,GAAUtY,EAAMX,OACTiZ,EAAS,GACdxT,EAAU/E,KAAK,GACfuY,IAAA,OAGJnR,EAAU2V,MAAMhY,GAEhBtH,EAAa,WADPo0B,EAASzqB,EAAUsT,MAEzBtT,EAAUiZ,IAAMoQ,EAAa,EAC7BrpB,EAAUuiN,YAAYlsN,GACf2J,EAAUsT,IAAA,EAMnBmX,EAAW,SAASA,GAAA,IACdlG,EAAGluB,EAAK2J,EAAK/H,EAAA,IACjBwyB,EAAOkmC,GAAQ75D,KAAK2zB,GACbA,EAAKvyB,OAAS,GACnBuyB,EAAK7xB,KAAK,OAEZoH,EAAM,IAAIiwD,GAAKxlC,GACfp0B,EAAM,EACDkuB,EAAI,EAAGtsB,EAAOwyB,EAAKvyB,OAAQqsB,EAAItsB,EAAMssB,EAAIA,GAAK,EACjDluB,GAAO2J,EAAIotM,aAAA,OAEA,WAAN/2M,CAAA,EAEFkuB,CAAA,CAvGQ,GA2GfuqC,GAAY,CAAC,EAAEz0D,eACf61D,GAAY,SAASzlC,EAAOlG,GAAA,IACrB,IAAIluB,KAAOkuB,EACVuqC,GAAUh4D,KAAKytB,EAAQluB,KAAMo0B,EAAMp0B,GAAOkuB,EAAOluB,IAAA,SAG9C2J,IAAA,KACFrG,YAAc8wB,CAAA,QAErBzqB,EAAKpJ,UAAY2tB,EAAO3tB,UACxB6zB,EAAM7zB,UAAY,IAAIoJ,EACtByqB,EAAMk5L,UAAYp/L,EAAO3tB,UAClB6zB,CAAA,EAOX8lC,GAAS,oBACE9lC,EAAMA,GAAA,IACTlG,EAAA,KACCq/L,KAAOn5L,EACZlG,EAAOxtB,KAAK6sN,KAAK3C,UAAUwC,OAAO1sN,KAAK0S,KAAA,KAClC83M,SAAWh9L,EACZA,IAAA,KACIstC,OAASttC,EAAKstC,OAAU96D,KAAKmB,OAASqsB,EAAKrsB,OAAA,KAC5CqI,MAAMxJ,KAAK6sN,KAAKre,UAAA,QAGzB96K,EAAM7zB,UAAU2J,MAAQ,aACxBkqB,EAAM7zB,UAAUg5M,OAAS,aACzBnlL,EAAM7zB,UAAUwrC,IAAM,kBACfrrC,KAAKwqN,QAAA,KAGLqC,KAAKre,SAAStsL,IAAMliB,KAAK86D,OACvB96D,KAAK6sN,KAAKre,SAAS/lF,KAAKzoH,KAAKmB,SAH3B,MAKJuyB,CAAA,CApBA,GAuBT,IAAI+lC,GAAa,WAAS,SAGfjsC,IAAA,OACAA,EAAUo/L,UAAUhqN,YAAYyX,MAAMra,KAAMyP,UAAA,QAHrD0pD,GAAU3rC,EAiDTgsC,IA5CDhsC,EAAU3tB,UAAU6S,IAAM,OAC1B8a,EAAU3tB,UAAU2J,MAAQ,SAASkqB,GAAA,OACnCA,EAAKxR,IAAMliB,KAAK86D,OAAA,KACXjiD,QAAU6a,EAAKy4L,UAAA,KACfW,SAAWp5L,EAAKy4L,UAAA,KAChBY,mBAAqBr5L,EAAKy4L,UAAA,KAC1Ba,YAAct5L,EAAKy4L,UAAA,KACnBrlM,MAAQ4M,EAAKq4L,YAAA,KACb9C,WAAav1L,EAAKq4L,YAAA,KAClBkB,QAAUv5L,EAAKu4L,eAAA,KACfiB,SAAWx5L,EAAKu4L,eAAA,KAChBvB,KAAOh3L,EAAKq4L,YAAA,KACZpB,KAAOj3L,EAAKq4L,YAAA,KACZnB,KAAOl3L,EAAKq4L,YAAA,KACZlB,KAAOn3L,EAAKq4L,YAAA,KACZoB,SAAWz5L,EAAKq4L,YAAA,KAChBqB,cAAgB15L,EAAKq4L,YAAA,KACrBsB,kBAAoB35L,EAAKq4L,YAAA,KACzBuB,iBAAmB55L,EAAKq4L,YACrB/rN,KAAKutN,gBAAkB75L,EAAKq4L,WAAA,EAEtCv+L,EAAU3tB,UAAUg5M,OAAS,SAASnlL,GAAA,IAChClG,EAAA,OACJA,EAAQ,IAAI0rC,IACNkzJ,SAASpsN,KAAK6Y,SACpB2U,EAAM4+L,SAASpsN,KAAK8sN,UACpBt/L,EAAM4+L,SAASpsN,KAAK+sN,oBACpBv/L,EAAM4+L,SAASpsN,KAAKgtN,aACpBx/L,EAAMw+L,WAAWhsN,KAAK8mB,OACtB0G,EAAMw+L,WAAWhsN,KAAKipN,YACtBz7L,EAAM0+L,cAAclsN,KAAKitN,SACzBz/L,EAAM0+L,cAAclsN,KAAKktN,UACzB1/L,EAAMw+L,WAAWhsN,KAAK0qN,MACtBl9L,EAAMw+L,WAAWhsN,KAAK2qN,MACtBn9L,EAAMw+L,WAAWhsN,KAAK4qN,MACtBp9L,EAAMw+L,WAAWhsN,KAAK6qN,MACtBr9L,EAAMw+L,WAAWhsN,KAAKmtN,UACtB3/L,EAAMw+L,WAAWhsN,KAAKotN,eACtB5/L,EAAMw+L,WAAWhsN,KAAKqtN,mBACtB7/L,EAAMw+L,WAAWt4L,GACjBlG,EAAMw+L,WAAWhsN,KAAKutN,iBACf//L,EAAMjR,IAAA,EAERiR,CAAA,CAjDQ,GAwDb0qC,GAAa,oBACNxkC,EAAUA,EAAMlG,GAAA,IACnBluB,EACF2J,EACA/H,EACAgZ,EACAoY,EACAqB,EACAvZ,EACAwZ,EAEAnnB,EACA3K,EACAqN,EACAvI,EACAygB,EACAuO,EACAX,EACAC,EACA/a,EAAA,YACGqzM,WAAa95L,EAAKqjL,aAAA,KAClB0W,WAAa/5L,EAAKq4L,YAAA,KAClBjxJ,OAASttC,EAASkG,EAAKy4L,UAC5B1/M,EAAainB,EAAKxR,IAClBwR,EAAKxR,IAAMliB,KAAK86D,OAAA,KACX73D,OAASywB,EAAKqjL,aAAA,KACd51M,OAASuyB,EAAKqjL,aAAA,KACd2W,SAAWh6L,EAAKqjL,aAAA,KAChB4W,UACkB,IAApB3tN,KAAKwtN,YAAwC,IAApBxtN,KAAKytN,YAAoC,IAAhBztN,KAAKiD,QACnC,IAApBjD,KAAKwtN,YAAoC,IAAhBxtN,KAAKiD,OAAA,KAC5BkmN,QAAU,CAAC,EACRnpN,KAAKiD,QAAA,KACN,MACE0wB,EAAI,EAAGA,EAAI,MAAOA,EAAA,KAChBw1L,QAAQx1L,GAAKD,EAAK43L,WAAA,WAGtB,MACHn8M,EAAaukB,EAAKqjL,aAClBj1M,EAAWqN,EAAa,EACxBukB,EAAKxR,KAAO,EACZhhB,EAAW,eACLssB,EAAIluB,EAAA,IACRA,EAAW,GAETq0B,EAAInG,EAAK,EACT,GAAK1rB,EAAW0rB,EAAK1rB,EAAW0rB,EAAK1rB,EACrC6xB,EAAI,GAAK7xB,IAAa0rB,IAAOA,EAE7BluB,EAASuC,KAAK6xB,EAAKqjL,cAAA,OAEdz3M,CAAA,CAVE,GAYXo0B,EAAKxR,KAAO,EACZmF,EAAa,eACPmG,EAAIluB,EAAA,IACRA,EAAW,GAETq0B,EAAInG,EAAK,EACT,GAAK1rB,EAAW0rB,EAAK1rB,EAAW0rB,EAAK1rB,EACrC6xB,EAAI,GAAK7xB,IAAa0rB,IAAOA,EAE7BluB,EAASuC,KAAK6xB,EAAKqjL,cAAA,OAEdz3M,CAAA,CAVI,GAYb8a,EAAW,eACLoT,EAAIluB,EAAA,IACRA,EAAW,GAETq0B,EAAInG,EAAK,EACT,GAAK1rB,EAAW0rB,EAAK1rB,EAAW0rB,EAAK1rB,EACrC6xB,EAAI,GAAK7xB,IAAa0rB,IAAOA,EAE7BluB,EAASuC,KAAK6xB,EAAKqjL,cAAA,OAEdz3M,CAAA,CAVE,GAYXs0B,EAAiB,eACXpG,EAAIluB,EAAA,IACRA,EAAW,GAETq0B,EAAInG,EAAK,EACT,GAAK1rB,EAAW0rB,EAAK1rB,EAAW0rB,EAAK1rB,EACrC6xB,EAAI,GAAK7xB,IAAa0rB,IAAOA,EAE7BluB,EAASuC,KAAK6xB,EAAKqjL,cAAA,OAEdz3M,CAAA,CAVQ,GAYjB2J,GAASjJ,KAAKmB,OAASuyB,EAAKxR,IAAMliB,KAAK86D,QAAU,EACjDxoC,EAAY,eACN9E,EAAIluB,EAAA,IACRA,EAAW,GAETq0B,EAAInG,EAAK,EACT,GAAKvkB,EAAQukB,EAAKvkB,EAAQukB,EAAKvkB,EAC/B0qB,EAAI,GAAK1qB,IAAUukB,IAAOA,EAE1BluB,EAASuC,KAAK6xB,EAAKqjL,cAAA,OAEdz3M,CAAA,CAVG,GAYPq0B,EAAIsB,EAAK,EAAG9a,EAAOjZ,EAAQC,OAAQ8zB,EAAK9a,EAAMwZ,IAAMsB,EAAA,IACvDW,EAAO10B,EAAQyyB,GAGbr0B,EAAO41B,EAFTtuB,EAAQygB,EAAUsM,GAGhB/sB,GAASgvB,EAAOV,GAAMU,EAAOV,GAAMU,EACnCt2B,EAAOsH,GAASgvB,IAASV,IAAOA,EAEP,IAArBtB,EAAcD,GAChBzZ,EAAU5a,EAAO8a,EAAQuZ,GAIT,KADhBzZ,EAAUoY,EADFsB,EAAcD,GAAK,GAAKr0B,EAAOsH,IAAU9E,EAAW6xB,KAC/B,KAE3BzZ,GAAWE,EAAQuZ,IAAA,KAGlBw1L,QAAQ7pN,GAAkB,MAAV4a,EAI7BwZ,EAAKxR,IAAMzV,CAAA,QAEbinB,EAAUmlL,OAAS,SAASnlL,EAASlG,GAAA,IAC/BluB,EACF2J,EACA/H,EACAgZ,EACAoY,EACAqB,EACAvZ,EACAwZ,EACAnnB,EACA3K,EACAqN,EACAvI,EACAygB,EACAuO,EACAX,EACAC,EACA/a,EACA4a,EACAvoB,EACAy8D,EACAV,EACAhrD,EACAoN,EACAnX,EACA2d,EACAvR,EACAhf,EACAyiE,EACAnwD,EACAd,EACAyL,EACA5N,EACAuN,EACAwX,EACAtQ,EACAgzB,EACAjiB,EACArO,EACAzJ,EACAg3D,EACAx/C,EACA+rC,EACA6T,EACAt0D,EACAugD,EACAmW,EAAA,OACF9T,EAAW,IAAInK,GACfh/C,EAAQlU,OAAOC,KAAKytB,GAASmB,MAAK,SAASnB,EAAGlG,GAAA,OACrCkG,EAAIlG,CAAA,IAELA,GAAA,IACD,eACHnG,EAAK,EACLuO,EAAW,eACLlC,EAAW,OACV9sB,EAAI,EAAGA,EAAI,MAAOA,EACrB8sB,EAAS7xB,KAAK,UAET6xB,CAAA,CALE,GAOXwB,EAAM,GACD,GAELh0B,EAAU,CAAC,EACNgS,EAAK,EAAGsK,EAAOtD,EAAM/Y,OAAQ+R,EAAKsK,EAAMtK,IAEP,MAAhCgiB,EAAK6/C,EAAQrhD,EADjBzqB,EAAOiR,EAAMhH,OAEXgiB,EAAI6/C,KAAW1tD,GAEjBnmB,EAAQ+H,GAAQ,CACd2kN,IAAKl6L,EAAQzqB,GACb4kN,IAAK34L,EAAIxB,EAAQzqB,KAEnB2sB,EAAQ3sB,GAAQisB,EAAIxB,EAAQzqB,IAAA,OAE9Bo6D,EAASsoJ,YAAY,GACrBtoJ,EAASsoJ,YAAY,GACrBtoJ,EAASmoJ,YAAY,IACrBnoJ,EAASsoJ,YAAY,GACrBtoJ,EAASsoJ,YAAY,KACrBtoJ,EAASsoJ,YAAY,GACrBtoJ,EAASzkD,MAAMgX,GACR,CACLk4L,QAAS5sN,EACT6sN,SAAU1qJ,EAAS9mD,KACnByxM,WAAY3mM,EAAK,OAEhB,cACHzH,EAAa,GACbnT,EAAW,GACX0N,EAAS,EACT+a,EAAM,CAAC,EACP51B,EAAU,CAAC,EACX21B,EAAO7a,EAAO,KACThI,EAAK,EAAG4iB,EAAQ9a,EAAM/Y,OAAQiR,EAAK4iB,EAAO5iB,IAG7B,MAAZ8iB,EADJ1oB,EAAMknB,EADNzqB,EAAOiR,EAAM9H,OAGX8iB,EAAI1oB,KAAS2N,GAEf7a,EAAQ2J,GAAQ,CACd2kN,IAAKphN,EACLqhN,IAAK34L,EAAI1oB,IAEX8lB,EAAQ4C,EAAI1oB,GAAOvD,EACP,MAARgsB,GAAgB3C,IAAUlY,IACxB6a,GACFxoB,EAAS5K,KAAKozB,GAEhBrV,EAAW/d,KAAKoH,GAChBmR,EAAOkY,GAET2C,EAAOhsB,EAAA,IAELgsB,GACFxoB,EAAS5K,KAAKozB,GAEhBxoB,EAAS5K,KAAK,OACd+d,EAAW/d,KAAK,OAEhB2R,EAAwB,GADxBmX,EAAW/K,EAAWze,QAEtBoc,EAAc,EAAI/b,KAAKylH,IAAIzlH,KAAKqrD,IAAIliC,GAAYnpB,KAAKsrD,IAAK,GAC1DhrD,EAAgBN,KAAKqrD,IAAItvC,EAAc,GAAK/b,KAAKsrD,IACjDyb,EAAa,EAAI59C,EAAWpN,EAC5BoW,EAAS,GACTs1C,EAAe,GACf95D,EAAW,GACNvI,EAAIiX,EAAK,EAAG6G,EAAQ9E,EAAWze,OAAQ0c,EAAK6G,EAAO9d,IAAMiX,EAAI,IAChEsT,EAAYvR,EAAWhZ,GACvBgtB,EAAUnnB,EAAS7F,GACD,QAAduqB,EAAsB,CACxBwC,EAAO9xB,KAAK,GACZonE,EAAapnE,KAAK,YAIhBsvB,GADJvwB,EAAatB,EAAQ6xB,GAAR08L,MACiB,UAC5Bl6L,EAAO9xB,KAAK,GACZonE,EAAapnE,KAAK,GAAKsN,EAAShO,OAASwpB,EAAW/jB,IAElDqC,EAAOgH,EAAKkhB,EACZA,GAAayC,EAAU3jB,GAAM2jB,EAAU3jB,GAAM2jB,EAC7C3qB,EAAOkoB,GAAayC,IAAY3jB,IAAOA,EAEvCd,EAAStN,KAAKvC,EAAQ2J,GAAR4kN,UAGhBl6L,EAAO9xB,KAAKjB,EAAauwB,GACzB83C,EAAapnE,KAAK,OAGtBwhE,EAASsoJ,YAAY,GACrBtoJ,EAASsoJ,YAAY,GACrBtoJ,EAASmoJ,YAAY,IACrBnoJ,EAASsoJ,YAAY,GACrBtoJ,EAASsoJ,YAAY,GAAgB,EAAXhhM,EAAiC,EAAlBxb,EAAShO,QAClDkiE,EAASsoJ,YAAY,GACrBtoJ,EAASsoJ,YAAYn4M,GACrB6vD,EAASsoJ,YAAYpuM,GACrB8lD,EAASsoJ,YAAY7pN,GACrBuhE,EAASsoJ,YAAYpjJ,GAChBpzC,EAAK,EAAGuiB,EAAQjrC,EAAStL,OAAQg0B,EAAKuiB,EAAOviB,IAChDlsB,EAAOwD,EAAS0oB,GAChBkuC,EAASsoJ,YAAY1iN,GAAA,IAEvBo6D,EAASsoJ,YAAY,GAChBzqJ,EAAK,EAAGzrC,EAAQ7V,EAAWze,OAAQ+/D,EAAKzrC,EAAOyrC,IAClDj4D,EAAO2W,EAAWshD,GAClBmC,EAASsoJ,YAAY1iN,GAAA,IAElBwX,EAAK,EAAG2G,EAAQuM,EAAOxyB,OAAQsf,EAAK2G,EAAO3G,IAC9C6R,EAAQqB,EAAOlT,GACf4iD,EAASsoJ,YAAYr5L,GAAA,IAElB0uC,EAAK,EAAGrjD,EAAQsrD,EAAa9nE,OAAQ6/D,EAAKrjD,EAAOqjD,IACpDjsC,EAASk0C,EAAajI,GACtBqC,EAASsoJ,YAAY52L,GAAA,IAElBoiD,EAAK,EAAGxC,EAAQxlE,EAAShO,OAAQg2E,EAAKxC,EAAOwC,IAChD9vD,EAAKlY,EAASgoE,GACd9T,EAASsoJ,YAAYtkM,GAAA,MAEhB,CACLymM,QAASxuN,EACTyuN,SAAU1qJ,EAAS9mD,KACnByxM,WAAY7zM,EAAS,KAItBuZ,CAAA,CA7TQ,GAgUbimC,GAAa,WAAS,SAGfnsC,IAAA,OACAA,EAAUo/L,UAAUhqN,YAAYyX,MAAMra,KAAMyP,UAAA,QAHrD0pD,GAAU3rC,EA6CTgsC,IAxCDhsC,EAAU3tB,UAAU6S,IAAM,OAC1B8a,EAAU3tB,UAAU2J,MAAQ,SAASkqB,GAAA,IAC/BlG,EAAOluB,EAAG2J,EAAA,IACdyqB,EAAKxR,IAAMliB,KAAK86D,OAAA,KACXjiD,QAAU6a,EAAKqjL,aACpB9tM,EAAayqB,EAAKqjL,aAAA,KACb2V,OAAS,QACThrM,QAAU,KAEbpiB,EAAI,EACJ,GAAK2J,EAAa3J,EAAI2J,EAAa3J,EAAI2J,EACvC3J,EAAI,GAAK2J,IAAe3J,IAAMA,EAE9BkuB,EAAQ,IAAI0qC,GAAUxkC,EAAM1zB,KAAK86D,QAAA,KAC5B4xJ,OAAO7qN,KAAK2rB,GACbA,EAAMmgM,WACY,MAAhB3tN,KAAK0hB,UAAA,KACFA,QAAU8L,GAAA,QAId,EAMTA,EAAUqrL,OAAS,SAASnlL,EAASlG,GAAA,IAC/BluB,EAAQ2J,EAAA,OACI,MAAZukB,IACFA,EAAW,YAEbluB,EAAS44D,GAAU2gJ,OAAOnlL,EAASlG,IACnCvkB,EAAQ,IAAIiwD,IACNyyJ,YAAY,GAClB1iN,EAAM0iN,YAAY,GAClBrsN,EAAOy6B,MAAQ9wB,EAAMsT,KAAK/X,OAAOlF,EAAOyuN,UACjCzuN,CAAA,EAEFkuB,CAAA,CA7CQ,GAgDb+qC,GAAa,WAAS,SAGf/qC,IAAA,OACAA,EAAUo/L,UAAUhqN,YAAYyX,MAAMra,KAAMyP,UAAA,QAHrD0pD,GAAU3rC,EA6CTgsC,IAxCDhsC,EAAU3tB,UAAU6S,IAAM,OAC1B8a,EAAU3tB,UAAU2J,MAAQ,SAASkqB,GAAA,OACnCA,EAAKxR,IAAMliB,KAAK86D,OAAA,KACXjiD,QAAU6a,EAAKy4L,UAAA,KACfvD,SAAWl1L,EAAKq4L,YAAA,KAChBlD,SAAWn1L,EAAKq4L,YAAA,KAChBtB,QAAU/2L,EAAKq4L,YAAA,KACfkC,gBAAkBv6L,EAAKq4L,YAAA,KACvBmC,mBAAqBx6L,EAAKq4L,YAAA,KAC1BoC,oBAAsBz6L,EAAKq4L,YAAA,KAC3BqC,WAAa16L,EAAKq4L,YAAA,KAClBsC,eAAiB36L,EAAKq4L,YAAA,KACtBuC,cAAgB56L,EAAKq4L,YAAA,KACrBwC,YAAc76L,EAAKq4L,YACxBr4L,EAAKxR,KAAO,OACPssM,iBAAmB96L,EAAKq4L,YACrB/rN,KAAKyuN,gBAAkB/6L,EAAKqjL,YAAA,EAuB/BvpL,CAAA,CA7CQ,GAgDbirC,GAAY,WAAS,SAGdjrC,IAAA,OACAA,EAASo/L,UAAUhqN,YAAYyX,MAAMra,KAAMyP,UAAA,QAHpD0pD,GAAU3rC,EAuETgsC,IAlEDhsC,EAAS3tB,UAAU6S,IAAM,OACzB8a,EAAS3tB,UAAU2J,MAAQ,SAASkqB,GAAA,GAClCA,EAAKxR,IAAMliB,KAAK86D,OAAA,KACXjiD,QAAU6a,EAAKqjL,aAAA,KACf2X,iBAAmBh7L,EAAKq4L,YAAA,KACxB4C,YAAcj7L,EAAKqjL,aAAA,KACnB6X,WAAal7L,EAAKqjL,aAAA,KAClB/vM,KAAO0sB,EAAKq4L,YAAA,KACZ8C,gBAAkBn7L,EAAKq4L,YAAA,KACvB+C,gBAAkBp7L,EAAKq4L,YAAA,KACvBgD,kBAAoBr7L,EAAKq4L,YAAA,KACzBiD,kBAAoBt7L,EAAKq4L,YAAA,KACzBkD,kBAAoBv7L,EAAKq4L,YAAA,KACzBmD,kBAAoBx7L,EAAKq4L,YAAA,KACzBoD,oBAAsBz7L,EAAKq4L,YAAA,KAC3BqD,oBAAsB17L,EAAKq4L,YAAA,KAC3BsD,eAAiB37L,EAAKq4L,YAAA,KACtBuD,mBAAqB57L,EAAKq4L,YAAA,KAC1Bf,YAAct3L,EAAKq4L,YAAA,KACnBwD,OAAU,eACT/hM,EAAGluB,EAAA,IACPA,EAAW,GACNkuB,EAAI,EAAGA,EAAI,KAAMA,EACpBluB,EAASuC,KAAK6xB,EAAK43L,YAAA,OAEdhsN,CAAA,CANM,QAQVkwN,UAAa,eACZhiM,EAAGluB,EAAA,IACPA,EAAW,GACNkuB,EAAI,EAAGA,EAAI,IAAKA,EACnBluB,EAASuC,KAAK6xB,EAAKy4L,WAAA,OAEd7sN,CAAA,CANS,QAQbmwN,SAAW/7L,EAAKs2L,WAAW,QAC3Br3L,UAAYe,EAAKq4L,YAAA,KACjB2D,eAAiBh8L,EAAKq4L,YAAA,KACtB4D,cAAgBj8L,EAAKq4L,YACtB/rN,KAAK6Y,QAAU,SACZ+2M,OAASl8L,EAAKq4L,YAAA,KACd8D,QAAUn8L,EAAKq4L,YAAA,KACftB,QAAU/2L,EAAKq4L,YAAA,KACf+D,UAAYp8L,EAAKq4L,YAAA,KACjBgE,WAAar8L,EAAKq4L,YAAA,KAClBiE,cAAiB,eAChBxiM,EAAGluB,EAAA,IACPA,EAAW,GACNkuB,EAAI,EAAGA,EAAI,EAAGA,IAAMA,EACvBluB,EAASuC,KAAK6xB,EAAKy4L,WAAA,OAEd7sN,CAAA,CANa,GAQlBU,KAAK6Y,QAAU,eACZkyM,QAAUr3L,EAAKq4L,YAAA,KACfjD,UAAYp1L,EAAKq4L,YAAA,KACjBkE,YAAcv8L,EAAKq4L,YAAA,KACnBmE,UAAYx8L,EAAKq4L,YACd/rN,KAAKmwN,WAAaz8L,EAAKq4L,WAAA,EAO9Bv+L,CAAA,CAvEO,GA0EZ6qC,GAAa,WAAS,SAIf7qC,IAAA,OACAA,EAAUo/L,UAAUhqN,YAAYyX,MAAMra,KAAMyP,UAAA,QAHrD0pD,GAAU3rC,EA2HTgsC,IAtHDhsC,EAAU3tB,UAAU6S,IAAM,OAC1B8a,EAAU3tB,UAAU2J,MAAQ,SAASkqB,GAAA,IAC/BlG,EAAQluB,EAAgB2J,EAAA,OAC5ByqB,EAAKxR,IAAMliB,KAAK86D,OAAA,KACX73D,OAASywB,EAAKy4L,UAAA,KACdxD,YAAcj1L,EAAKy4L,UAAA,KACnBiE,kBAAoB18L,EAAKq4L,YAAA,KACzBsE,mBAAqB38L,EAAKq4L,YAAA,KAC1BZ,aAAez3L,EAAKy4L,UAAA,KACpBmE,aAAe58L,EAAKy4L,UAAA,KACpBoE,aAAe78L,EAAKy4L,UAAA,KACpBqE,YAAc98L,EAAKy4L,UAAA,KACnBsE,YAAc/8L,EAAKy4L,UAChBnsN,KAAKiD,QAAA,KACN,MAsB8B,KAC9B,aAvBA,KAEA,WAGC/B,EAAA,IAFJ5B,EAAiBo0B,EAAKqjL,aAAA,KACjB2Z,eAAiB,GAGpBxvN,EAAI,EACJ,GAAK5B,EAAiB4B,EAAI5B,EAAiB4B,EAAI5B,EAC/C4B,EAAI,GAAK5B,IAAmB4B,IAAMA,EAAA,KAE7BwvN,eAAe7uN,KAAK6xB,EAAKqjL,cAAA,SAE3Bz2L,MAAQ,GACbrX,EAAW,GACJyqB,EAAKxR,IAAMliB,KAAK86D,OAAS96D,KAAKmB,QACnCqsB,EAASkG,EAAK43L,WACdriN,EAASpH,KAAK7B,KAAKsgB,MAAMze,KAAK6xB,EAAKs2L,WAAWx8L,KAAA,OAEzCvkB,EAAA,KACJ,cACH3J,EAAiBo0B,EAAKqjL,aACd/2M,KAAK2wN,QAAUj9L,EAAK+0F,KAAKnpH,GAC9B,KAEA,cACKU,KAAKqN,IAAM,eACbmgB,EAAIluB,EAAM2J,EAAA,IACdA,EAAY,GAEV/H,EAAIssB,EAAK,EAAGluB,EAAOU,KAAK6sN,KAAKzC,KAAKwG,UAClC,GAAKtxN,EAAOkuB,EAAKluB,EAAOkuB,EAAKluB,EAC7B4B,EAAI,GAAK5B,IAASkuB,IAAOA,EAEzBvkB,EAAUpH,KAAK6xB,EAAK2iL,cAAA,OAEfptM,CAAA,EACPlJ,KAAKC,MAAA,EAkENwtB,CAAA,CA5HQ,GAmIb2qC,GAAA,SACiBzkC,EAAKlG,GAAA,KACjB6d,IAAM3X,EAAA,KACNvyB,OAASuyB,EAAIvyB,OAAA,KACbqsN,WAAahgM,EAAMggM,WAAA,KACnBC,WAAajgM,EAAMigM,WAAA,KACnBoD,WAAarjM,EAAMqjM,UAAA,EAKxBv3J,GAAa,WAAS,SAIf9rC,IAAA,OACAA,EAAUo/L,UAAUhqN,YAAYyX,MAAMra,KAAMyP,UAAA,QAHrD0pD,GAAU3rC,EAgITgsC,IA3HDhsC,EAAU3tB,UAAU6S,IAAM,OAC1B8a,EAAU3tB,UAAU2J,MAAQ,SAASkqB,GAAA,IAC/BlG,EACFluB,EACA2J,EACA/H,EACAgZ,EACAoY,EACAqB,EACAvZ,EACAwZ,EACAnnB,EACA3K,EAAA,IACF4xB,EAAKxR,IAAMliB,KAAK86D,OAChBpnC,EAAKq4L,YACLv+L,EAAQkG,EAAKq4L,YACbz5L,EAAeoB,EAAKq4L,YACpBzsN,EAAU,GAER4B,EAAI,EACJ,GAAKssB,EAAQtsB,EAAIssB,EAAQtsB,EAAIssB,EAC7BtsB,EAAI,GAAKssB,IAAUtsB,IAAMA,EAEzB5B,EAAQuC,KAAK,CACX2rN,WAAY95L,EAAKq4L,YACjB0B,WAAY/5L,EAAKq4L,YACjB8E,WAAYn9L,EAAKq4L,YACjB+E,OAAQp9L,EAAKq4L,YACb5qN,OAAQuyB,EAAKq4L,YACbjxJ,OAAQ96D,KAAK86D,OAASxoC,EAAeoB,EAAKq4L,cAAA,IAG9Cp4L,EAAU,CAAC,EACNzyB,EAAI0yB,EAAK,EAAGnnB,EAAOnN,EAAQ6B,OAAQyyB,EAAKnnB,EAAMvL,IAAM0yB,EACvD3qB,EAAQ3J,EAAQ4B,GAChBwyB,EAAKxR,IAAMjZ,EAAM6xD,OACjB1gD,EAAOsZ,EAAKs2L,WAAW/gN,EAAM9H,QAC7B+Y,EAAO,IAAIi+C,GAAU/9C,EAAMnR,GACY,MAAnC0qB,EAAS7xB,EAAQmH,EAAM6nN,UACzBn9L,EAAQ7xB,GAAS,IAEnB6xB,EAAQ1qB,EAAM6nN,QAAQjvN,KAAKqY,GAAA,KAExB62M,QAAUp9L,EAAA,KACV5R,UAAY4R,EAAQ,QACpBoP,WAAapP,EAAQ,QACrBq9L,cAAgBr9L,EAAQ,QACxBs9L,gBAAkBt9L,EAAQ,QAC1ByP,SAAWzP,EAAQ,QACnB9a,QAAU8a,EAAQ,YAEhBu9L,eAAiBv9L,EAAQ,GAAG,GAAG0X,IAAI33B,QACtC,wBACA,IAEF,MAAOggB,GAAA,KACFw9L,eAAiBv9L,EAAQ,GAAG,GAAG0X,IAAI33B,QACtC,wBACA,gBAGCy9M,UAAYx9L,EAAQ,QACpBy9L,aAAez9L,EAAQ,QACvB09L,SAAW19L,EAAQ,QACnB/L,YAAc+L,EAAQ,SACtB29L,UAAY39L,EAAQ,SACpB49L,YAAc59L,EAAQ,SACtB69L,QAAU79L,EAAQ,SAClB89L,WAAa99L,EAAQ,SACrB+9L,gBAAkB/9L,EAAQ,SAC1Bg+L,mBAAqBh+L,EAAQ,SAC7Bi+L,eAAiBj+L,EAAQ,IACtB3zB,KAAK6xN,WAAal+L,EAAQ,KAkD7BnG,CAAA,CAjIQ,GAoIb8qC,GAAa,WAAS,SAGf9qC,IAAA,OACAA,EAAUo/L,UAAUhqN,YAAYyX,MAAMra,KAAMyP,UAAA,QAHrD0pD,GAAU3rC,EA6CTgsC,IAxCDhsC,EAAU3tB,UAAU6S,IAAM,OAC1B8a,EAAU3tB,UAAU2J,MAAQ,SAASkqB,GAAA,OACnCA,EAAKxR,IAAMliB,KAAK86D,OAAA,KACXjiD,QAAU6a,EAAKy4L,UAAA,KACfyE,UAAYl9L,EAAKqjL,aAAA,KACjB+a,UAAYp+L,EAAKqjL,aAAA,KACjBgb,YAAcr+L,EAAKqjL,aAAA,KACnBib,mBAAqBt+L,EAAKqjL,aAAA,KAC1Bkb,qBAAuBv+L,EAAKqjL,aAAA,KAC5Bmb,SAAWx+L,EAAKqjL,aAAA,KAChBob,kBAAoBz+L,EAAKqjL,aAAA,KACzBqb,WAAa1+L,EAAKqjL,aAAA,KAClBsb,gBAAkB3+L,EAAKqjL,aAAA,KACvBub,mBAAqB5+L,EAAKqjL,aAAA,KAC1Bwb,iBAAmB7+L,EAAKqjL,aAAA,KACxByb,sBAAwB9+L,EAAKqjL,aAAA,KAC7B0b,qBAAuB/+L,EAAKqjL,aACzB/2M,KAAK0yN,kBAAoBh/L,EAAKqjL,YAAA,EAsBjCvpL,CAAA,CA7CQ,GAgDbyrC,GAAa,WAAS,SAGfzrC,IAAA,OACAA,EAAUo/L,UAAUhqN,YAAYyX,MAAMra,KAAMyP,UAAA,QAHrD0pD,GAAU3rC,EA+ETgsC,IA1EDhsC,EAAU3tB,UAAU6S,IAAM,OAC1B8a,EAAU3tB,UAAU2J,MAAQ,SAASkqB,GAAA,IAC/BlG,EAAGluB,EAAM2J,EAAU/H,EAAGgZ,EAAIoY,EAAMqB,EAAA,IACpCD,EAAKxR,IAAMliB,KAAK86D,OAAA,KACX63J,QAAU,GAEbnlM,EAAI,EAAG8E,EAAOtyB,KAAK6sN,KAAK1C,KAAKsE,gBAC7B,GAAKn8L,EAAO9E,EAAI8E,EAAO9E,EAAI8E,EAC3B9E,EAAI,GAAK8E,IAAS9E,IAAMA,EAAA,KAEnBmlM,QAAQ9wN,KAAK,CAChBwpN,QAAS33L,EAAKqjL,aACd6b,IAAKl/L,EAAKk4L,cAAA,IAGd3iN,EAAWjJ,KAAK6sN,KAAKzC,KAAKwG,UAAY5wN,KAAK6sN,KAAK1C,KAAKsE,gBAAA,KAChDoE,iBAAoB,eACnBvzN,EAAI4B,EAAA,IACRA,EAAW,GAETssB,EAAIluB,EAAK,EACT,GAAK2J,EAAW3J,EAAK2J,EAAW3J,EAAK2J,EACrCukB,EAAI,GAAKvkB,IAAa3J,IAAOA,EAE7B4B,EAASW,KAAK6xB,EAAKk4L,aAAA,OAEd1qN,CAAA,CAVgB,QAYpB+jN,OAAS,eACRvxL,EAAIlG,EAAMluB,EAAO2J,EAAA,IAErBA,EAAW,GACNyqB,EAAK,EAAGlG,GAFbluB,EAAQU,KAAK2yN,SAEaxxN,OAAQuyB,EAAKlG,EAAMkG,IAC3CxyB,EAAI5B,EAAMo0B,GACVzqB,EAASpH,KAAKX,EAAEmqN,SAAA,OAEXpiN,CAAA,EACPlJ,KAAKC,MACPV,EAAOU,KAAKilN,OAAOjlN,KAAKilN,OAAO9jN,OAAS,GACxCwyB,EAAW,GAETnG,EAAItT,EAAK,EACT,GAAKjR,EAAWiR,EAAKjR,EAAWiR,EAAKjR,EACrCukB,EAAI,GAAKvkB,IAAaiR,IAAOA,EAE7ByZ,EAAS9xB,KAAK7B,KAAKilN,OAAOpjN,KAAKvC,IAAA,OAE1Bq0B,CAAA,EAMTnG,EAAU3tB,UAAUurN,SAAW,SAAS13L,GAAA,OAClCA,KAAM1zB,KAAK2yN,QACN3yN,KAAK2yN,QAAQj/L,GAEf,CACL23L,QAASrrN,KAAK2yN,QAAQ3yN,KAAK2yN,QAAQxxN,OAAS,GAAGkqN,QAC/CuH,IAAK5yN,KAAK6yN,iBAAiBn/L,EAAK1zB,KAAK2yN,QAAQxxN,QAAA,EAc1CqsB,CAAA,CA/EQ,GAkFbosC,GAAU,GAAG50D,MAEbgzD,GAAa,WAAS,SAGfxqC,IAAA,OACAA,EAAUo/L,UAAUhqN,YAAYyX,MAAMra,KAAMyP,UAAA,QAHrD0pD,GAAU3rC,EAsETgsC,IAjEDhsC,EAAU3tB,UAAU6S,IAAM,OAC1B8a,EAAU3tB,UAAU2J,MAAQ,kBAClBxJ,KAAK+6E,MAAQ,CAAC,CAAD,EAEvBvtD,EAAU3tB,UAAUizN,SAAW,SAASp/L,GAAA,IAClClG,EACFluB,EACA2J,EACA/H,EACAgZ,EACAoY,EACAqB,EACAvZ,EACAwZ,EACAnnB,EAAA,OACEinB,KAAM1zB,KAAK+6E,MACN/6E,KAAK+6E,MAAMrnD,IAEpBxyB,EAAOlB,KAAK6sN,KAAKvC,KACjB98L,EAAOxtB,KAAK6sN,KAAKre,SACjBlvM,EAAQ4B,EAAKwD,QAAQgvB,GAEN,KADfzqB,EAAS/H,EAAK6xN,SAASr/L,IAEb1zB,KAAK+6E,MAAMrnD,GAAM,MAE3BlG,EAAKtL,IAAMliB,KAAK86D,OAASx7D,EAEzB4a,GADAoY,EAAM,IAAI4mC,GAAK1rC,EAAKi7F,KAAKx/G,KACF8iN,YACvB3xM,EAAOkY,EAAIy5L,YACXt/M,EAAO6lB,EAAIy5L,YACXp4L,EAAOrB,EAAIy5L,YACXn4L,EAAOtB,EAAIy5L,YAAA,KAEJhxI,MAAMrnD,IADa,IAAtBxZ,EACe,IAAI2/C,GAAcvnC,EAAKlY,EAAM3N,EAAMknB,EAAMC,GAEzC,IAAImmC,GACnBznC,EACApY,EACAE,EACA3N,EACAknB,EACAC,GAGG5zB,KAAK+6E,MAAMrnD,IAAA,EAEpBlG,EAAU3tB,UAAUg5M,OAAS,SAASnlL,EAAQlG,EAASluB,GAAA,IACjD2J,EAAW/H,EAASgZ,EAAOoY,EAAIqB,EAAA,IACnCzZ,EAAQ,GACRhZ,EAAU,GACLoxB,EAAK,EAAGqB,EAAOnG,EAAQrsB,OAAQmxB,EAAKqB,EAAMrB,IAE7CrpB,EAAQyqB,EADHlG,EAAQ8E,IAEbpxB,EAAQW,KAAKqY,EAAM/Y,QACf8H,IACFiR,EAAQA,EAAM1V,OAAOyE,EAAM4vM,OAAOv5M,KAAA,OAGtC4B,EAAQW,KAAKqY,EAAM/Y,QACZ,CACL44B,MAAO7f,EACPy2M,QAASzvN,EAAA,EAGNssB,CAAA,CAtEQ,GAyEbusC,GAAe,oBAKRrmC,EAAYA,EAAKlG,EAAkBluB,EAAM2J,EAAM/H,EAAMgZ,GAAA,KACvDmxB,IAAM3X,EAAA,KACNs/L,iBAAmBxlM,EAAA,KACnBk9L,KAAOprN,EAAA,KACPqrN,KAAO1hN,EAAA,KACP2hN,KAAO1pN,EAAA,KACP2pN,KAAO3wM,EAAA,KACP+4M,UAAA,CAAW,QAElBv/L,EAAY7zB,UAAUg5M,OAAS,kBACtB74M,KAAKqrC,IAAI9uB,IAAA,EAEXmX,CAAA,CAjBU,GAoBfmmC,GAAiB,oBAkBVnmC,EAAcA,EAAKlG,EAAMluB,EAAM2J,EAAM/H,GAAA,IACxCgZ,EAAMoY,EAAA,SACL+Y,IAAM3X,EAAA,KACNg3L,KAAOl9L,EAAA,KACPm9L,KAAOrrN,EAAA,KACPsrN,KAAO3hN,EAAA,KACP4hN,KAAO3pN,EAAA,KACP+xN,UAAA,EAAW,KACXC,SAAW,QACXC,aAAe,GACpBj5M,EAAOla,KAAKqrC,IAEV/Y,EAAQpY,EAAK6xM,YAAA,KACRoH,aAAatxN,KAAKqY,EAAKgI,KAAA,KACvBgxM,SAASrxN,KAAKqY,EAAK68L,cAvBV,GAwBRzkL,GAIJpY,EAAKgI,KA9Ba,EA6BhBoQ,EACU,EAEA,EA5BK,IA8BfA,EACFpY,EAAKgI,KAAO,EAhCS,GAiCZoQ,EACTpY,EAAKgI,KAAO,EApCA,EAqCHoQ,IACTpY,EAAKgI,KAAO,UAQlBwR,EAAc7zB,UAAUg5M,OAAS,eAC3BnlL,EAAGlG,EAAQluB,EAAA,IACfkuB,EAAS,IAAI0rC,GAAKU,GAAQ75D,KAAKC,KAAKqrC,IAAI9uB,OAEnCmX,EAAI,EAAGp0B,EADLU,KAAKkzN,SACY/xN,OAAQuyB,EAAIp0B,IAAQo0B,EAC1ClG,EAAOtL,IAAMliB,KAAKmzN,aAAaz/L,GAAA,OAE1BlG,EAAOjR,IAAA,EAETmX,CAAA,CA/DY,GAkEjBynC,GAAa,WAAS,SAGf3tC,IAAA,OACAA,EAAUo/L,UAAUhqN,YAAYyX,MAAMra,KAAMyP,UAAA,QAHrD0pD,GAAU3rC,EA8DTgsC,IAzDDhsC,EAAU3tB,UAAU6S,IAAM,OAC1B8a,EAAU3tB,UAAU2J,MAAQ,SAASkqB,GAAA,IAC/BlG,EAAQluB,EAAA,OACZo0B,EAAKxR,IAAMliB,KAAK86D,OAChBttC,EAASxtB,KAAK6sN,KAAKpwL,KAAK6wL,iBAEdttN,KAAK2wN,QADA,IAAXnjM,EACqB,eACjBA,EAAMvkB,EAAA,IACVA,EAAW,GACN3J,EAAI,EAAGkuB,EAAOxtB,KAAKmB,OAAQ7B,EAAIkuB,EAAMluB,GAAK,EAC7C2J,EAASpH,KAAyB,EAApB6xB,EAAKqjL,cAAA,OAEd9tM,CAAA,EACPlJ,KAAKC,MAEgB,eACjBwtB,EAAMvkB,EAAA,IACVA,EAAW,GACN3J,EAAI,EAAGkuB,EAAOxtB,KAAKmB,OAAQ7B,EAAIkuB,EAAMluB,GAAK,EAC7C2J,EAASpH,KAAK6xB,EAAK2iL,cAAA,OAEdptM,CAAA,EACPlJ,KAAKC,KAAA,EAGXwtB,EAAU3tB,UAAU6E,QAAU,SAASgvB,GAAA,OAC9B1zB,KAAK2wN,QAAQj9L,EAAA,EAEtBlG,EAAU3tB,UAAUkzN,SAAW,SAASr/L,GAAA,OAC/B1zB,KAAK2wN,QAAQj9L,EAAK,GAAK1zB,KAAK2wN,QAAQj9L,EAAA,EAE7ClG,EAAU3tB,UAAUg5M,OAAS,SAASnlL,EAASlG,GAAA,QACzCluB,EAAY,IAAIk9G,YAAYx8G,KAAK2wN,QAAQxvN,QACzC8H,EAAU,EACV/H,EAAW,EACNgZ,EAAI,EAAGA,EAAI5a,EAAU6B,SAAU+Y,EAAA,GACtC5a,EAAU4a,GAAKjR,EACX/H,EAAWssB,EAAarsB,QAAUqsB,EAAatsB,IAAagZ,EAAG,GAC/DhZ,EACF5B,EAAU4a,GAAKjR,EAAA,IACXqpB,EAAQtyB,KAAK2wN,QAAQz2M,GACrByZ,EAAM3zB,KAAK2wN,QAAQz2M,EAAI,GAAKoY,EAC5BqB,EAAM,IACR1qB,GAAW0qB,EAAA,SAIbvZ,EAAe,IAAIvZ,MAAyB,EAAnBvB,EAAU6B,QAC9ByyB,EAAI,EAAGA,EAAIt0B,EAAU6B,SAAUyyB,EACtCxZ,EAAa,EAAIwZ,EAAI,GAAoB,IAAft0B,EAAUs0B,GACpCxZ,EAAa,EAAIwZ,EAAI,IAAqB,MAAft0B,EAAUs0B,KAAoB,EACzDxZ,EAAa,EAAIwZ,EAAI,IAAqB,SAAft0B,EAAUs0B,KAAoB,GACzDxZ,EAAa,EAAIwZ,IAAqB,WAAft0B,EAAUs0B,KAAoB,UAEhDxZ,CAAA,EAEFoT,CAAA,CA9DQ,GA8HbutC,GAAU,oBACHrnC,EAAOA,GAAA,KACToM,KAAOpM,EAAA,KACP60L,OAAS,CAAC,EAAD,KACT6K,SAAW,CAAC,EAAD,KACXl/M,KAAO,UA4Bdwf,EAAO7zB,UAAUwzN,aAAe,eAC1B3/L,EAASlG,EAAOluB,EAAS2J,EAAa/H,EAAA,IAIrCssB,KAHLvkB,EAAcjJ,KAAK8/B,KAAKopL,KAAKwD,OAAO,GAAGvD,QACvCz1L,EAAU,CAAC,EACXxyB,EAAOlB,KAAKuoN,OAEVjpN,EAAU4B,EAAKssB,GACfkG,EAAQlG,GAASvkB,EAAY3J,GAAA,OAExBo0B,CAAA,EAoBTA,EAAO7zB,UAAUyzN,UAAY,SAAS5/L,GAAA,IAChClG,EAAeluB,EAAO2J,EAAQ/H,EAAIgZ,EAAIoY,EAAMqB,EAAA,IAChD1qB,EAAS,CAAC,EACLiR,EAAK,EAAGoY,EAAOoB,EAASvyB,OAAQ+Y,EAAKoY,EAAMpY,IAE9CjR,EADA/H,EAAKwyB,EAASxZ,IACDla,KAAK8/B,KAAKyqL,KAAKuI,SAAS5xN,GAAA,IAGlCA,KADLssB,EAAgB,GACLvkB,GAEI,OADb3J,EAAQ2J,EAAO/H,IACK5B,EAAM2zN,cAAA,IACxBzlM,EAAc3rB,KAAKwY,MAAMmT,EAAeluB,EAAM4zN,UAAA,GAG9C1lM,EAAcrsB,OAAS,EAAG,IAEvBD,KADLyyB,EAAO3zB,KAAKszN,UAAU9lM,GAEpBluB,EAAQq0B,EAAKzyB,GACb+H,EAAO/H,GAAM5B,EAAA,OAGV2J,CAAA,EAMTyqB,EAAO7zB,UAAUg5M,OAAS,SAASnlL,EAAOlG,GAAA,IACpCluB,EACF2J,EACA/H,EACAgZ,EACAoY,EACAqB,EACAvZ,EACAwZ,EACAnnB,EACA3K,EACAqN,EACAvI,EACAygB,EACAuO,EACAX,EAAA,IAOGhsB,KANL3J,EAAOq6D,GAAUk/I,OAAO74M,KAAKqzN,eAAgB,WAC7Cn5M,EAASla,KAAKszN,UAAU5/L,GACxBvkB,EAAU,GACL,GAEL8lB,EAAO31B,EAAKwuN,QAGV3+M,GADAwkB,EAAMsB,EAAKhsB,IACC2kN,KAAOj6L,EAAGk6L,IAAA,IAGnBjnN,KADL9E,EAAcxC,EAAK0uN,WACL9zM,EACNtT,KAASuI,IACbA,EAAQvI,GAAS9E,KAAA,OAGrB8xB,EAlLS,SAASF,GAAA,IAChBlG,EAAKluB,EAAA,IAEJkuB,KADLluB,EAAM,CAAC,EACKo0B,EAEVp0B,EADMo0B,EAAOlG,IACFA,EAAA,OAENluB,CAAA,CAPI,CAkLQ6P,GACjB1C,EAASzG,OAAOC,KAAK2tB,GAASiB,MAAK,SAASnB,EAAGlG,GAAA,OACtCkG,EAAIlG,CAAA,IAEbnG,EAAU,eACJqM,EAAIlG,EAAMluB,EAAA,IACdA,EAAW,GACNo0B,EAAK,EAAGlG,EAAO/gB,EAAOtL,OAAQuyB,EAAKlG,EAAMkG,IAC5CpB,EAAK7lB,EAAOinB,GACZp0B,EAASuC,KAAK+xB,EAAQtB,IAAA,OAEjBhzB,CAAA,CAPC,GASV4B,EAAOlB,KAAK8/B,KAAKyqL,KAAK1R,OAAO3+L,EAAQmN,EAAQlY,GAC7CiL,EAAOpa,KAAK8/B,KAAKwqL,KAAKzR,OAAO33M,EAAKyvN,QAAStpM,GAC3CuO,EAAS,CACPszL,KAAMlpN,KAAK8/B,KAAKopL,KAAK79K,MACrBk/K,KAAMrpN,EAAK64B,MACXuwL,KAAMlwM,EACN4uM,KAAMhpN,KAAK8/B,KAAKkpL,KAAK39K,MACrB8+K,KAAMnqN,KAAK8/B,KAAKqqL,KAAK9+K,MACrB++K,KAAMpqN,KAAK8/B,KAAKsqL,KAAK/+K,MACrBm4I,KAAMxjL,KAAK8/B,KAAK0jJ,KAAKn4I,MACrBp9B,KAAMjO,KAAK8/B,KAAK7xB,KAAKo9B,MACrB5O,KAAMz8B,KAAK8/B,KAAKrD,KAAKo8K,OAAOrrL,IAE1BxtB,KAAK8/B,KAAKuqL,IAAIG,SAChB50L,EAAO,QAAU51B,KAAK8/B,KAAKuqL,IAAIh/K,OAE1BrrC,KAAK8/B,KAAKoqL,UAAUrR,OAAOjjL,EAAA,EAE7BlC,CAAA,CAxJK,GA2JdhP,GAAMuW,IAAIutL,UAAa,eACjB90L,EAAA,SAEKlG,IAAA,QACTkG,EAAM,SAASA,EAAKlG,GAAA,OACV3sB,MAAM2sB,EAAS,GAAGvoB,KAAK,KAAOyuB,GAAK1uB,OAAOwoB,EAAA,EAMpDA,EAAUnkB,QAAU,SAAS/J,GAAA,IACvB2J,EAAU/H,EAAKgZ,EAAKoY,EAAA,GACpBzxB,MAAMqR,QAAQ5S,GAAA,MAUT,IATE,eACHo0B,EAAIxyB,EAAMgZ,EAAA,IACdA,EAAW,GACNwZ,EAAK,EAAGxyB,EAAO5B,EAAO6B,OAAQuyB,EAAKxyB,EAAMwyB,IAC5CzqB,EAAI3J,EAAOo0B,GACXxZ,EAASrY,KAAK2rB,EAAUnkB,QAAQJ,IAAA,OAE3BiR,CAAA,CAPA,GAQJjV,KAAK,KACW,IAChB,GAAsB,iBAAX3F,EAAA,MACT,IAAMA,EACR,GAAc,MAAVA,EAAiBA,EAAO+nG,cAAA,EAAW,MACrC,IAAM/nG,EAAS,IACjB,GAAIA,aAAkB62B,KAAA,MAEzB,MACAzC,EAAIp0B,EAAOs6J,iBAAkB,GAC7BlmI,EAAIp0B,EAAOq6J,cAAe,GAC1BjmI,EAAIp0B,EAAOm6J,aAAc,GACzB/lI,EAAIp0B,EAAOk6J,cAAe,GAC1B9lI,EAAIp0B,EAAOi6J,gBAAiB,GAC5B7lI,EAAIp0B,EAAOg6J,gBAAiB,GAC5B,KAEG,GAAiC,oBAA7B,CAAC,EAAEtrJ,SAASjO,KAAKT,GAA+B,KAEpD4B,KADLgZ,EAAM,CAAC,MACK5a,EACVgzB,EAAMhzB,EAAO4B,GACbgZ,EAAIrY,KAAK,IAAMX,EAAM,IAAMssB,EAAUnkB,QAAQipB,IAAA,OAE/CpY,EAAIrY,KAAK,MACFqY,EAAIjV,KAAK,YAET,GAAK3F,CAAA,EAGTkuB,CAAA,CAnDc,yBCl1DvB9uB,EAAOC,QAJP,WACE,MAAO,EACT,kBCpBA,IAAIo4C,EAAa1pB,EAAQ,MAGrBu9D,EAAc,WAChB,IAAI/oE,EAAM,SAAS7H,KAAK+8B,GAAcA,EAAW9wC,MAAQ8wC,EAAW9wC,KAAKqY,UAAY,IACrF,OAAOuD,EAAO,iBAAmBA,EAAO,EAC1C,CAHkB,GAgBlBnjB,EAAOC,QAJP,SAAkBu5C,GAChB,QAAS0yC,GAAeA,KAAc1yC,CACxC,YCLAx5C,EAAOC,QAJP,SAAmByV,EAAQtP,GACzB,OAAiB,MAAVsP,GAAkBtP,KAAOkB,OAAOoO,EACzC,kBCVA,IAAI0hF,EAAezoE,EAAQ,MACvBo1B,EAAWp1B,EAAQ,MAevB3uB,EAAOC,QALP,SAAmByV,EAAQtP,GACzB,IAAIlG,EAAQ6jD,EAASruC,EAAQtP,GAC7B,OAAOgxF,EAAal3F,GAASA,OAAQqO,CACvC,gCCZA,SAASsmN,IAEP,GAC4C,qBAAnCx1I,gCAC4C,oBAA5CA,+BAA+Bw1I,SAcxC,IAEEx1I,+BAA+Bw1I,SAASA,EAC1C,CAAE,MAAO9vN,GAGP23B,QAAQvwB,MAAMpH,EAChB,CACF,CAKE8vN,GACA70N,EAAOC,QAAU,EAAjBD,gBCtBFA,EAAOC,QAJP,SAAkBo8E,EAAOj2E,GACvB,OAAOi2E,EAAMloE,IAAI/N,EACnB,gBCVA,OAOC,WACA,aAEA,IAAI4V,EAAS,CAAC,EAAEpX,eAEhB,SAASkwN,IAGR,IAFA,IAAIC,EAAU,GAELvyN,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAC1C,IAAIib,EAAM1M,UAAUvO,GAChBib,IACHs3M,EAAUC,EAAYD,EAASxoG,EAAW9uG,IAE5C,CAEA,OAAOs3M,CACR,CAEA,SAASxoG,EAAY9uG,GACpB,GAAmB,kBAARA,GAAmC,kBAARA,EACrC,OAAOA,EAGR,GAAmB,kBAARA,EACV,MAAO,GAGR,GAAItb,MAAMqR,QAAQiK,GACjB,OAAOq3M,EAAWn5M,MAAM,KAAM8B,GAG/B,GAAIA,EAAInO,WAAahI,OAAOnG,UAAUmO,WAAamO,EAAInO,SAASA,WAAWmC,SAAS,iBACnF,OAAOgM,EAAInO,WAGZ,IAAIylN,EAAU,GAEd,IAAK,IAAI3uN,KAAOqX,EACXzB,EAAO3a,KAAKoc,EAAKrX,IAAQqX,EAAIrX,KAChC2uN,EAAUC,EAAYD,EAAS3uN,IAIjC,OAAO2uN,CACR,CAEA,SAASC,EAAa90N,EAAO+0N,GAC5B,OAAKA,EAID/0N,EACIA,EAAQ,IAAM+0N,EAGf/0N,EAAQ+0N,EAPP/0N,CAQT,CAEqCF,EAAOC,SAC3C60N,EAAW5zN,QAAU4zN,EACrB90N,EAAOC,QAAU60N,QAKhB,KAFwB,EAAF,WACtB,OAAOA,CACP,UAFoB,OAEpB,YAIF,CArEA,gCCHD,IAF0BI,EAEtBC,EAAQxmM,EAAQ,MAChBymM,GAHsBF,EAGWC,IAHwB,kBAAPD,GAAoB,YAAaA,EAAMA,EAAY,QAAIA,EAK7G,SAAS/7G,EAAgBp1G,EAAKqC,EAAKlG,GAYjC,OAXIkG,KAAOrC,EACTuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAC9BlG,MAAOA,EACP0V,YAAY,EACZlF,cAAc,EACdmF,UAAU,IAGZ9R,EAAIqC,GAAOlG,EAGN6D,CACT,CAQA,IAAIsxN,IAAiC,qBAAXxuN,SAA0BA,OAAO+B,WAAY/B,OAAO+B,SAASf,eAgGvF7H,EAAOC,QA/FP,SAAwBq1N,EAAoBC,EAA2BC,GACrE,GAAkC,oBAAvBF,EACT,MAAM,IAAItwN,MAAM,iDAGlB,GAAyC,oBAA9BuwN,EACT,MAAM,IAAIvwN,MAAM,wDAGlB,GAAgC,qBAArBwwN,GAAgE,oBAArBA,EACpD,MAAM,IAAIxwN,MAAM,mEAOlB,OAAO,SAAcywN,GACnB,GAAgC,oBAArBA,EACT,MAAM,IAAIzwN,MAAM,sDAGlB,IACI2G,EADA+pN,EAAmB,GAGvB,SAASC,IACPhqN,EAAQ2pN,EAAmBI,EAAiB/mN,KAAI,SAAU2wD,GACxD,OAAOA,EAASnmB,KAClB,KAEIy8K,EAAWP,UACbE,EAA0B5pN,GACjB6pN,IACT7pN,EAAQ6pN,EAAiB7pN,GAE7B,CAEA,IAAIiqN,EAEJ,SAAUC,GA9Cd,IAAwBC,EAAUC,EAiD5B,SAASH,IACP,OAAOC,EAAel6M,MAAMra,KAAMyP,YAAczP,IAClD,CAnD4By0N,EA+CDF,GA/CTC,EA+CHF,GA9CVz0N,UAAYmG,OAAO4D,OAAO6qN,EAAW50N,WAC9C20N,EAAS30N,UAAU+C,YAAc4xN,EACjCA,EAASzqN,UAAY0qN,EAoDjBH,EAAWI,KAAO,WAChB,OAAOrqN,CACT,EAEAiqN,EAAWK,OAAS,WAClB,GAAIL,EAAWP,UACb,MAAM,IAAIrwN,MAAM,oFAGlB,IAAIkxN,EAAgBvqN,EAGpB,OAFAA,OAAQ4C,EACRmnN,EAAmB,GACZQ,CACT,EAEA,IAAIC,EAASP,EAAWz0N,UAqBxB,OAnBAg1N,EAAOzlJ,0BAA4B,WACjCglJ,EAAiBvyN,KAAK7B,MACtBq0N,GACF,EAEAQ,EAAOhjJ,mBAAqB,WAC1BwiJ,GACF,EAEAQ,EAAO7+I,qBAAuB,WAC5B,IAAI9lE,EAAQkkN,EAAiB1vN,QAAQ1E,MACrCo0N,EAAiBjkL,OAAOjgC,EAAO,GAC/BmkN,GACF,EAEAQ,EAAO9yK,OAAS,WACd,OAAO+xK,EAAevtN,cAAc4tN,EAAkBn0N,KAAK63C,MAC7D,EAEOy8K,CACT,CA9CA,CA8CET,EAAMp9G,eAMR,OAJAoB,EAAgBy8G,EAAY,cAAe,cA1E7C,SAAwBH,GACtB,OAAOA,EAAiBtyK,aAAesyK,EAAiBlmN,MAAQ,WAClE,CAwE6D6mN,CAAeX,GAAoB,KAE9Ft8G,EAAgBy8G,EAAY,YAAaP,GAElCO,CACT,CACF,kBC1HA,IAAIx5K,EAAMztB,EAAQ,MACdO,EAAOP,EAAQ,MACf28D,EAAa38D,EAAQ,MAYrB8sE,EAAcr/C,GAAQ,EAAIkvC,EAAW,IAAIlvC,EAAI,CAAC,EAAE,KAAK,IAT1C,IASoE,SAASzkC,GAC1F,OAAO,IAAIykC,EAAIzkC,EACjB,EAF4EuX,EAI5ElvB,EAAOC,QAAUw7F,kBClBjB,IAAInB,EAAY3rE,EAAQ,MAiBxB3uB,EAAOC,QANP,SAAmBkT,EAAOgR,EAAOC,GAC/B,IAAI3hB,EAAS0Q,EAAM1Q,OAEnB,OADA2hB,OAAc7V,IAAR6V,EAAoB3hB,EAAS2hB,GAC1BD,GAASC,GAAO3hB,EAAU0Q,EAAQmnF,EAAUnnF,EAAOgR,EAAOC,EACrE,wBCfA,OACC,WACC,aAiBA,IA2DEiyM,EA3DEC,EAAa,IAIfC,EAAU,CAORhiL,UAAW,GAkBXiiL,SAAU,EAIVC,UAAW,EAIXC,SAAW,GAIXC,KAAM,wHAORC,GAAW,EAEXC,EAAe,kBACfC,EAAkBD,EAAe,qBACjCE,EAAqBF,EAAe,0BAEpCG,EAAYl0N,KAAKC,MACjBk0N,EAAUn0N,KAAKylH,IAEf2uG,EAAY,qCAGZC,EAAO,IAEP1xM,EAAmB,iBACnB2xM,EAAQJ,EAAUvxM,oBAGlBvE,EAAI,CAAC,EAg0BP,SAAS4V,EAAI7K,EAAGoK,GACd,IAAIghM,EAAOnvN,EAAG4mB,EAAGtsB,EAAGN,EAAG6jB,EAAK2tC,EAAIC,EAC9BrW,EAAOrxB,EAAE/nB,YACTy5L,EAAKrgJ,EAAK/I,UAGZ,IAAKtoB,EAAEgJ,IAAMoB,EAAEpB,EAKb,OADKoB,EAAEpB,IAAGoB,EAAI,IAAIinB,EAAKrxB,IAChB2qM,EAAWn9L,EAAMpD,EAAGsnK,GAAMtnK,EAcnC,GAXAq9B,EAAKznC,EAAE/jB,EACPyrD,EAAKt9B,EAAEnuB,EAIPhG,EAAI+pB,EAAE6C,EACNA,EAAIuH,EAAEvH,EACN4kC,EAAKA,EAAGptD,QACR9D,EAAIN,EAAI4sB,EAGD,CAsBL,IArBItsB,EAAI,GACN0F,EAAIwrD,EACJlxD,GAAKA,EACLujB,EAAM4tC,EAAGlxD,SAETyF,EAAIyrD,EACJ7kC,EAAI5sB,EACJ6jB,EAAM2tC,EAAGjxD,QAOPD,GAFJujB,GADA7jB,EAAIY,KAAK6K,KAAKgwL,EA12BL,IA22BC53K,EAAM7jB,EAAI,EAAI6jB,EAAM,KAG5BvjB,EAAIujB,EACJ7d,EAAEzF,OAAS,GAIbyF,EAAEwlF,UACKlrF,KAAM0F,EAAE/E,KAAK,GACpB+E,EAAEwlF,SACJ,CAcA,KAZA3nE,EAAM2tC,EAAGjxD,SACTD,EAAImxD,EAAGlxD,QAGO,IACZD,EAAIujB,EACJ7d,EAAIyrD,EACJA,EAAKD,EACLA,EAAKxrD,GAIFmvN,EAAQ,EAAG70N,GACd60N,GAAS3jK,IAAKlxD,GAAKkxD,EAAGlxD,GAAKmxD,EAAGnxD,GAAK60N,GAASF,EAAO,EACnDzjK,EAAGlxD,IAAM20N,EAUX,IAPIE,IACF3jK,EAAG+M,QAAQ42J,KACTvoM,GAKC/I,EAAM2tC,EAAGjxD,OAAqB,GAAbixD,IAAK3tC,IAAY2tC,EAAG8/B,MAK1C,OAHAn9D,EAAEnuB,EAAIwrD,EACNr9B,EAAEvH,EAAIA,EAEC8nM,EAAWn9L,EAAMpD,EAAGsnK,GAAMtnK,CACnC,CAGA,SAASihM,EAAW90N,EAAG+hB,EAAKD,GAC1B,GAAI9hB,MAAQA,GAAKA,EAAI+hB,GAAO/hB,EAAI8hB,EAC9B,MAAMtf,MAAM8xN,EAAkBt0N,EAElC,CAGA,SAAS+0N,EAAervN,GACtB,IAAI1F,EAAGN,EAAGi+J,EACRq3D,EAAkBtvN,EAAEzF,OAAS,EAC7B6xC,EAAM,GACNxmC,EAAI5F,EAAE,GAER,GAAIsvN,EAAkB,EAAG,CAEvB,IADAljL,GAAOxmC,EACFtL,EAAI,EAAGA,EAAIg1N,EAAiBh1N,KAE/BN,EA16BO,GAy6BPi+J,EAAKj4J,EAAE1F,GAAK,IACMC,UACX6xC,GAAOmjL,EAAcv1N,IAC5BoyC,GAAO6rH,GAKTj+J,EAj7BS,GAg7BTi+J,GADAryJ,EAAI5F,EAAE1F,IACG,IACSC,UACX6xC,GAAOmjL,EAAcv1N,GAC9B,MAAO,GAAU,IAAN4L,EACT,MAAO,IAIT,KAAOA,EAAI,KAAO,GAAIA,GAAK,GAE3B,OAAOwmC,EAAMxmC,CACf,CAr4BAoT,EAAE84G,cAAgB94G,EAAEvZ,IAAM,WACxB,IAAIskB,EAAI,IAAI3qB,KAAK4C,YAAY5C,MAE7B,OADI2qB,EAAEgJ,IAAGhJ,EAAEgJ,EAAI,GACRhJ,CACT,EAUA/K,EAAEw2M,WAAax2M,EAAEy2M,IAAM,SAAUthM,GAC/B,IAAI7zB,EAAG2c,EAAGy4M,EAAKC,EACb5rM,EAAI3qB,KAKN,GAHA+0B,EAAI,IAAIpK,EAAE/nB,YAAYmyB,GAGlBpK,EAAEgJ,IAAMoB,EAAEpB,EAAG,OAAOhJ,EAAEgJ,IAAMoB,EAAEpB,EAGlC,GAAIhJ,EAAE6C,IAAMuH,EAAEvH,EAAG,OAAO7C,EAAE6C,EAAIuH,EAAEvH,EAAI7C,EAAEgJ,EAAI,EAAI,GAAK,EAMnD,IAAKzyB,EAAI,EAAG2c,GAJZy4M,EAAM3rM,EAAE/jB,EAAEzF,SACVo1N,EAAMxhM,EAAEnuB,EAAEzF,QAGkBm1N,EAAMC,EAAKr1N,EAAI2c,IAAK3c,EAC9C,GAAIypB,EAAE/jB,EAAE1F,KAAO6zB,EAAEnuB,EAAE1F,GAAI,OAAOypB,EAAE/jB,EAAE1F,GAAK6zB,EAAEnuB,EAAE1F,GAAKypB,EAAEgJ,EAAI,EAAI,GAAK,EAIjE,OAAO2iM,IAAQC,EAAM,EAAID,EAAMC,EAAM5rM,EAAEgJ,EAAI,EAAI,GAAK,CACtD,EAOA/T,EAAE42M,cAAgB52M,EAAE62M,GAAK,WACvB,IAAI9rM,EAAI3qB,KACNwM,EAAIme,EAAE/jB,EAAEzF,OAAS,EACjBs1N,EApGS,GAoGHjqN,EAAIme,EAAE6C,GAId,GADAhhB,EAAIme,EAAE/jB,EAAE4F,GACD,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAIiqN,IAEpC,OAAOA,EAAK,EAAI,EAAIA,CACtB,EAQA72M,EAAE82M,UAAY92M,EAAE+2M,IAAM,SAAU5hM,GAC9B,OAAOy1E,EAAOxqG,KAAM,IAAIA,KAAK4C,YAAYmyB,GAC3C,EAQAnV,EAAEg3M,mBAAqBh3M,EAAEi3M,KAAO,SAAU9hM,GACxC,IACEinB,EADMh8C,KACG4C,YACX,OAAOu1B,EAAMqyE,EAFLxqG,KAEe,IAAIg8C,EAAKjnB,GAAI,EAAG,GAAIinB,EAAK/I,UAClD,EAOArzB,EAAEgjL,OAAShjL,EAAE82B,GAAK,SAAU3hB,GAC1B,OAAQ/0B,KAAKq2N,IAAIthM,EACnB,EAOAnV,EAAEmnG,SAAW,WACX,OAAO+vG,EAAkB92N,KAC3B,EAQA4f,EAAEm3M,YAAcn3M,EAAEonF,GAAK,SAAUjyE,GAC/B,OAAO/0B,KAAKq2N,IAAIthM,GAAK,CACvB,EAQAnV,EAAEo3M,qBAAuBp3M,EAAEqnF,IAAM,SAAUlyE,GACzC,OAAO/0B,KAAKq2N,IAAIthM,IAAM,CACxB,EAOAnV,EAAEunF,UAAYvnF,EAAEq3M,MAAQ,WACtB,OAAOj3N,KAAKwtB,EAAIxtB,KAAK4G,EAAEzF,OAAS,CAClC,EAOAye,EAAEs3M,WAAat3M,EAAEu3M,MAAQ,WACvB,OAAOn3N,KAAK2zB,EAAI,CAClB,EAOA/T,EAAEw3M,WAAax3M,EAAEy3M,MAAQ,WACvB,OAAOr3N,KAAK2zB,EAAI,CAClB,EAOA/T,EAAE03M,OAAS,WACT,OAAkB,IAAXt3N,KAAK2zB,CACd,EAOA/T,EAAE23M,SAAW33M,EAAE0nF,GAAK,SAAUvyE,GAC5B,OAAO/0B,KAAKq2N,IAAIthM,GAAK,CACvB,EAOAnV,EAAE43M,kBAAoB53M,EAAE2nF,IAAM,SAAUxyE,GACtC,OAAO/0B,KAAKq2N,IAAIthM,GAAK,CACvB,EAgBAnV,EAAE63M,UAAY73M,EAAEitC,IAAM,SAAU/E,GAC9B,IAAIxoD,EACFqrB,EAAI3qB,KACJg8C,EAAOrxB,EAAE/nB,YACTy5L,EAAKrgJ,EAAK/I,UACVykL,EAAMr7B,EAAK,EAGb,QAAa,IAATv0I,EACFA,EAAO,IAAI9L,EAAK,SAOhB,IALA8L,EAAO,IAAI9L,EAAK8L,IAKPn0B,EAAI,GAAKm0B,EAAKpR,GAAGq+K,GAAM,MAAMrxN,MAAM6xN,EAAe,OAK7D,GAAI5qM,EAAEgJ,EAAI,EAAG,MAAMjwB,MAAM6xN,GAAgB5qM,EAAEgJ,EAAI,MAAQ,cAGvD,OAAIhJ,EAAE+rB,GAAGq+K,GAAa,IAAI/4K,EAAK,IAE/Bs5K,GAAW,EACXh2N,EAAIkrG,EAAO02E,EAAGv2J,EAAG+sM,GAAMx2C,EAAGp5H,EAAM4vK,GAAMA,GACtCpC,GAAW,EAEJn9L,EAAM74B,EAAG+8L,GAClB,EAQAz8K,EAAE+3M,MAAQ/3M,EAAEg4M,IAAM,SAAU7iM,GAC1B,IAAIpK,EAAI3qB,KAER,OADA+0B,EAAI,IAAIpK,EAAE/nB,YAAYmyB,GACfpK,EAAEgJ,GAAKoB,EAAEpB,EAAIyE,EAASzN,EAAGoK,GAAKS,EAAI7K,GAAIoK,EAAEpB,GAAKoB,EAAEpB,EAAGoB,GAC3D,EAQAnV,EAAEi4M,OAASj4M,EAAEi7I,IAAM,SAAU9lI,GAC3B,IAAI2iB,EACF/sB,EAAI3qB,KACJg8C,EAAOrxB,EAAE/nB,YACTy5L,EAAKrgJ,EAAK/I,UAKZ,KAHAle,EAAI,IAAIinB,EAAKjnB,IAGNpB,EAAG,MAAMjwB,MAAM6xN,EAAe,OAGrC,OAAK5qM,EAAEgJ,GAGP2hM,GAAW,EACX59K,EAAI8yD,EAAO7/E,EAAGoK,EAAG,EAAG,GAAG2Y,MAAM3Y,GAC7BugM,GAAW,EAEJ3qM,EAAEgtM,MAAMjgL,IAPEvf,EAAM,IAAI6jB,EAAKrxB,GAAI0xK,EAQtC,EASAz8K,EAAEk4M,mBAAqBl4M,EAAEonG,IAAM,WAC7B,OAAOA,EAAIhnH,KACb,EAQA4f,EAAEm4M,iBAAmBn4M,EAAEshK,GAAK,WAC1B,OAAOA,EAAGlhL,KACZ,EAQA4f,EAAEo4M,QAAUp4M,EAAEq4M,IAAM,WAClB,IAAIttM,EAAI,IAAI3qB,KAAK4C,YAAY5C,MAE7B,OADA2qB,EAAEgJ,GAAKhJ,EAAEgJ,GAAK,EACPhJ,CACT,EAQA/K,EAAEs4M,KAAOt4M,EAAE4V,IAAM,SAAUT,GACzB,IAAIpK,EAAI3qB,KAER,OADA+0B,EAAI,IAAIpK,EAAE/nB,YAAYmyB,GACfpK,EAAEgJ,GAAKoB,EAAEpB,EAAI6B,EAAI7K,EAAGoK,GAAKqD,EAASzN,GAAIoK,EAAEpB,GAAKoB,EAAEpB,EAAGoB,GAC3D,EASAnV,EAAEqzB,UAAYrzB,EAAE0yC,GAAK,SAAUn9B,GAC7B,IAAI3H,EAAG8kC,EAAI9lD,EACTme,EAAI3qB,KAEN,QAAU,IAANm1B,GAAgBA,MAAQA,GAAW,IAANA,GAAiB,IAANA,EAAS,MAAMzxB,MAAM8xN,EAAkBrgM,GAQnF,GANA3H,EAAIspM,EAAkBnsM,GAAK,EAE3B2nC,EAlXW,GAiXX9lD,EAAIme,EAAE/jB,EAAEzF,OAAS,GACG,EACpBqL,EAAIme,EAAE/jB,EAAE4F,GAGD,CAGL,KAAOA,EAAI,IAAM,EAAGA,GAAK,GAAI8lD,IAG7B,IAAK9lD,EAAIme,EAAE/jB,EAAE,GAAI4F,GAAK,GAAIA,GAAK,GAAI8lD,GACrC,CAEA,OAAOn9B,GAAK3H,EAAI8kC,EAAK9kC,EAAI8kC,CAC3B,EAQA1yC,EAAEu4M,WAAav4M,EAAEk6G,KAAO,WACtB,IAAItsG,EAAGvkB,EAAGozL,EAAI/8L,EAAGq0B,EAAGD,EAAGgkM,EACrB/sM,EAAI3qB,KACJg8C,EAAOrxB,EAAE/nB,YAGX,GAAI+nB,EAAEgJ,EAAI,EAAG,CACX,IAAKhJ,EAAEgJ,EAAG,OAAO,IAAIqoB,EAAK,GAG1B,MAAMt4C,MAAM6xN,EAAe,MAC7B,CAgCA,IA9BA/nM,EAAIspM,EAAkBnsM,GACtB2qM,GAAW,EAOF,IAJT3hM,EAAInyB,KAAKs4H,MAAMnvG,KAIDgJ,GAAK,OACjB1qB,EAAIgtN,EAAetrM,EAAE/jB,IACdzF,OAASqsB,GAAK,GAAK,IAAGvkB,GAAK,KAClC0qB,EAAInyB,KAAKs4H,KAAK7wH,GACdukB,EAAIkoM,GAAWloM,EAAI,GAAK,IAAMA,EAAI,GAAKA,EAAI,GAS3CluB,EAAI,IAAI08C,EANN/yC,EADE0qB,GAAK,IACH,KAAOnG,GAEXvkB,EAAI0qB,EAAEykM,iBACApzN,MAAM,EAAGiE,EAAEvE,QAAQ,KAAO,GAAK8oB,IAKvCluB,EAAI,IAAI08C,EAAKroB,EAAE3lB,YAIjB2lB,EAAI+jM,GADJr7B,EAAKrgJ,EAAK/I,WACK,IAOb,GAFA3zC,GADAo0B,EAAIp0B,GACE44N,KAAK1tH,EAAO7/E,EAAG+I,EAAGgkM,EAAM,IAAIhqL,MAAM,IAEpCuoL,EAAeviM,EAAE9sB,GAAG5B,MAAM,EAAG0yN,MAAUzuN,EAAIgtN,EAAe32N,EAAEsH,IAAI5B,MAAM,EAAG0yN,GAAM,CAKjF,GAJAzuN,EAAIA,EAAEjE,MAAM0yN,EAAM,EAAGA,EAAM,GAIvB/jM,GAAK+jM,GAAY,QAALzuN,GAMd,GAFAkvB,EAAMzE,EAAG2oK,EAAK,EAAG,GAEb3oK,EAAEga,MAAMha,GAAGgjB,GAAG/rB,GAAI,CACpBrrB,EAAIo0B,EACJ,KACF,OACK,GAAS,QAALzqB,EACT,MAGFyuN,GAAO,CACT,CAKF,OAFApC,GAAW,EAEJn9L,EAAM74B,EAAG+8L,EAClB,EAQAz8K,EAAE8tB,MAAQ9tB,EAAEy4M,IAAM,SAAUtjM,GAC1B,IAAIghM,EAAOvoM,EAAGtsB,EAAGN,EAAGtB,EAAGg5N,EAAI5kM,EAAG4iM,EAAKC,EACjC5rM,EAAI3qB,KACJg8C,EAAOrxB,EAAE/nB,YACTwvD,EAAKznC,EAAE/jB,EACPyrD,GAAMt9B,EAAI,IAAIinB,EAAKjnB,IAAInuB,EAGzB,IAAK+jB,EAAEgJ,IAAMoB,EAAEpB,EAAG,OAAO,IAAIqoB,EAAK,GAoBlC,IAlBAjnB,EAAEpB,GAAKhJ,EAAEgJ,EACTnG,EAAI7C,EAAE6C,EAAIuH,EAAEvH,GACZ8oM,EAAMlkK,EAAGjxD,SACTo1N,EAAMlkK,EAAGlxD,UAIP7B,EAAI8yD,EACJA,EAAKC,EACLA,EAAK/yD,EACLg5N,EAAKhC,EACLA,EAAMC,EACNA,EAAM+B,GAIRh5N,EAAI,GAEC4B,EADLo3N,EAAKhC,EAAMC,EACEr1N,KAAM5B,EAAEuC,KAAK,GAG1B,IAAKX,EAAIq1N,IAAOr1N,GAAK,GAAI,CAEvB,IADA60N,EAAQ,EACHn1N,EAAI01N,EAAMp1N,EAAGN,EAAIM,GACpBwyB,EAAIp0B,EAAEsB,GAAKyxD,EAAGnxD,GAAKkxD,EAAGxxD,EAAIM,EAAI,GAAK60N,EACnCz2N,EAAEsB,KAAO8yB,EAAImiM,EAAO,EACpBE,EAAQriM,EAAImiM,EAAO,EAGrBv2N,EAAEsB,IAAMtB,EAAEsB,GAAKm1N,GAASF,EAAO,CACjC,CAGA,MAAQv2N,IAAIg5N,IAAMh5N,EAAE4yF,MAQpB,OANI6jI,IAASvoM,EACRluB,EAAEwwD,QAEP/6B,EAAEnuB,EAAItH,EACNy1B,EAAEvH,EAAIA,EAEC8nM,EAAWn9L,EAAMpD,EAAGinB,EAAK/I,WAAale,CAC/C,EAaAnV,EAAE24M,gBAAkB34M,EAAE44M,KAAO,SAAU/B,EAAItS,GACzC,IAAIx5L,EAAI3qB,KACNg8C,EAAOrxB,EAAE/nB,YAGX,OADA+nB,EAAI,IAAIqxB,EAAKrxB,QACF,IAAP8rM,EAAsB9rM,GAE1BqrM,EAAWS,EAAI,EAAGzB,QAEP,IAAP7Q,EAAeA,EAAKnoK,EAAKk5K,SACxBc,EAAW7R,EAAI,EAAG,GAEhBhsL,EAAMxN,EAAG8rM,EAAKK,EAAkBnsM,GAAK,EAAGw5L,GACjD,EAWAvkM,EAAEw4M,cAAgB,SAAU3B,EAAItS,GAC9B,IAAInxK,EACFroB,EAAI3qB,KACJg8C,EAAOrxB,EAAE/nB,YAcX,YAZW,IAAP6zN,EACFzjL,EAAMhlC,EAAS2c,GAAG,IAElBqrM,EAAWS,EAAI,EAAGzB,QAEP,IAAP7Q,EAAeA,EAAKnoK,EAAKk5K,SACxBc,EAAW7R,EAAI,EAAG,GAGvBnxK,EAAMhlC,EADN2c,EAAIwN,EAAM,IAAI6jB,EAAKrxB,GAAI8rM,EAAK,EAAGtS,IACb,EAAMsS,EAAK,IAGxBzjL,CACT,EAmBApzB,EAAEm4J,QAAU,SAAU0+C,EAAItS,GACxB,IAAInxK,EAAKje,EACPpK,EAAI3qB,KACJg8C,EAAOrxB,EAAE/nB,YAEX,YAAW,IAAP6zN,EAAsBzoN,EAAS2c,IAEnCqrM,EAAWS,EAAI,EAAGzB,QAEP,IAAP7Q,EAAeA,EAAKnoK,EAAKk5K,SACxBc,EAAW7R,EAAI,EAAG,GAGvBnxK,EAAMhlC,GADN+mB,EAAIoD,EAAM,IAAI6jB,EAAKrxB,GAAI8rM,EAAKK,EAAkBnsM,GAAK,EAAGw5L,IACrC99M,OAAO,EAAOowN,EAAKK,EAAkB/hM,GAAK,GAIpDpK,EAAEwsM,UAAYxsM,EAAE2sM,SAAW,IAAMtkL,EAAMA,EAChD,EAQApzB,EAAEoC,UAAYpC,EAAE64M,MAAQ,WACtB,IAAI9tM,EAAI3qB,KACNg8C,EAAOrxB,EAAE/nB,YACX,OAAOu1B,EAAM,IAAI6jB,EAAKrxB,GAAImsM,EAAkBnsM,GAAK,EAAGqxB,EAAKk5K,SAC3D,EAOAt1M,EAAEuG,SAAW,WACX,OAAQnmB,IACV,EAgBA4f,EAAE84M,QAAU94M,EAAEqnG,IAAM,SAAUlyF,GAC5B,IAAIvH,EAAG5sB,EAAGy7L,EAAI/8L,EAAGknH,EAAMmyG,EACrBhuM,EAAI3qB,KACJg8C,EAAOrxB,EAAE/nB,YAET26M,IAAOxoL,EAAI,IAAIinB,EAAKjnB,IAGtB,IAAKA,EAAEpB,EAAG,OAAO,IAAIqoB,EAAK+4K,GAM1B,KAJApqM,EAAI,IAAIqxB,EAAKrxB,IAINgJ,EAAG,CACR,GAAIoB,EAAEpB,EAAI,EAAG,MAAMjwB,MAAM6xN,EAAe,YACxC,OAAO5qM,CACT,CAGA,GAAIA,EAAE+rB,GAAGq+K,GAAM,OAAOpqM,EAKtB,GAHA0xK,EAAKrgJ,EAAK/I,UAGNle,EAAE2hB,GAAGq+K,GAAM,OAAO58L,EAAMxN,EAAG0xK,GAO/B,GAHAs8B,GAFAnrM,EAAIuH,EAAEvH,KACN5sB,EAAIm0B,EAAEnuB,EAAEzF,OAAS,GAEjBqlH,EAAO77F,EAAEgJ,EAEJglM,GAME,IAAK/3N,EAAI28M,EAAK,GAAKA,EAAKA,IAAOp5L,EAAkB,CAStD,IARA7kB,EAAI,IAAI08C,EAAK+4K,GAIbvnM,EAAIhsB,KAAK6K,KAAKgwL,EAzrBL,EAyrBqB,GAE9Bi5B,GAAW,EAGL10N,EAAI,GAEN+yG,GADAr0G,EAAIA,EAAEouC,MAAM/iB,IACD/jB,EAAG4mB,GAIN,KADV5sB,EAAI80N,EAAU90N,EAAI,KAIlB+yG,GADAhpF,EAAIA,EAAE+iB,MAAM/iB,IACD/jB,EAAG4mB,GAKhB,OAFA8nM,GAAW,EAEJvgM,EAAEpB,EAAI,EAAI,IAAIqoB,EAAK+4K,GAAK4B,IAAIr3N,GAAK64B,EAAM74B,EAAG+8L,EACnD,OA5BE,GAAI71E,EAAO,EAAG,MAAM9iH,MAAM6xN,EAAe,OAwC3C,OATA/uG,EAAOA,EAAO,GAA2B,EAAtBzxF,EAAEnuB,EAAEpF,KAAKwhB,IAAIwK,EAAG5sB,KAAW,EAAI,EAElD+pB,EAAEgJ,EAAI,EACN2hM,GAAW,EACXh2N,EAAIy1B,EAAE2Y,MAAMwzI,EAAGv2J,EAAG0xK,EAlER,KAmEVi5B,GAAW,GACXh2N,EAAI0nH,EAAI1nH,IACNq0B,EAAI6yF,EAEClnH,CACT,EAcAsgB,EAAEg5M,YAAc,SAAUtmK,EAAI6xJ,GAC5B,IAAI32L,EAAGwlB,EACLroB,EAAI3qB,KACJg8C,EAAOrxB,EAAE/nB,YAgBX,YAdW,IAAP0vD,EAEFtf,EAAMhlC,EAAS2c,GADf6C,EAAIspM,EAAkBnsM,KACCqxB,EAAKm5K,UAAY3nM,GAAKwuB,EAAKo5K,WAElDY,EAAW1jK,EAAI,EAAG0iK,QAEP,IAAP7Q,EAAeA,EAAKnoK,EAAKk5K,SACxBc,EAAW7R,EAAI,EAAG,GAIvBnxK,EAAMhlC,EAFN2c,EAAIwN,EAAM,IAAI6jB,EAAKrxB,GAAI2nC,EAAI6xJ,GAET7xJ,IADlB9kC,EAAIspM,EAAkBnsM,KACO6C,GAAKwuB,EAAKm5K,SAAU7iK,IAG5Ctf,CACT,EAYApzB,EAAEi5M,oBAAsBj5M,EAAEk5M,KAAO,SAAUxmK,EAAI6xJ,GAC7C,IACEnoK,EADMh8C,KACG4C,YAYX,YAVW,IAAP0vD,GACFA,EAAKtW,EAAK/I,UACVkxK,EAAKnoK,EAAKk5K,WAEVc,EAAW1jK,EAAI,EAAG0iK,QAEP,IAAP7Q,EAAeA,EAAKnoK,EAAKk5K,SACxBc,EAAW7R,EAAI,EAAG,IAGlBhsL,EAAM,IAAI6jB,EAbTh8C,MAakBsyD,EAAI6xJ,EAChC,EAUAvkM,EAAE5R,SAAW4R,EAAEmB,QAAUnB,EAAEjX,IAAMiX,EAAE4Y,OAAS,WAC1C,IAAI7N,EAAI3qB,KACNwtB,EAAIspM,EAAkBnsM,GACtBqxB,EAAOrxB,EAAE/nB,YAEX,OAAOoL,EAAS2c,EAAG6C,GAAKwuB,EAAKm5K,UAAY3nM,GAAKwuB,EAAKo5K,SACrD,EAuJA,IAAI5qH,EAAU,WAGZ,SAASuuH,EAAgBpuM,EAAG/pB,GAC1B,IAAIke,EACFi3M,EAAQ,EACR70N,EAAIypB,EAAExpB,OAER,IAAKwpB,EAAIA,EAAE3lB,QAAS9D,KAClB4d,EAAO6L,EAAEzpB,GAAKN,EAAIm1N,EAClBprM,EAAEzpB,GAAK4d,EAAO+2M,EAAO,EACrBE,EAAQj3M,EAAO+2M,EAAO,EAKxB,OAFIE,GAAOprM,EAAEw0C,QAAQ42J,GAEdprM,CACT,CAEA,SAASomD,EAAQ72D,EAAGC,EAAG6+M,EAAIC,GACzB,IAAI/3N,EAAG5B,EAEP,GAAI05N,GAAMC,EACR35N,EAAI05N,EAAKC,EAAK,GAAK,OAEnB,IAAK/3N,EAAI5B,EAAI,EAAG4B,EAAI83N,EAAI93N,IACtB,GAAIgZ,EAAEhZ,IAAMiZ,EAAEjZ,GAAI,CAChB5B,EAAI4a,EAAEhZ,GAAKiZ,EAAEjZ,GAAK,GAAK,EACvB,KACF,CAIJ,OAAO5B,CACT,CAEA,SAAS84B,EAASle,EAAGC,EAAG6+M,GAItB,IAHA,IAAI93N,EAAI,EAGD83N,KACL9+M,EAAE8+M,IAAO93N,EACTA,EAAIgZ,EAAE8+M,GAAM7+M,EAAE6+M,GAAM,EAAI,EACxB9+M,EAAE8+M,GAAM93N,EAAI20N,EAAO37M,EAAE8+M,GAAM7+M,EAAE6+M,GAI/B,MAAQ9+M,EAAE,IAAMA,EAAE/Y,OAAS,GAAI+Y,EAAE41C,OACnC,CAEA,OAAO,SAAUnlC,EAAGoK,EAAGsnK,EAAIo6B,GACzB,IAAIJ,EAAK7oM,EAAGtsB,EAAGN,EAAGs4N,EAAMC,EAAOzhL,EAAG4Z,EAAI4yH,EAAKk1C,EAAMC,EAAM/mK,EAAI5+B,EAAG84C,EAAI8sJ,EAAIC,EAAKC,EAAIC,EAC7Ez9K,EAAOrxB,EAAE/nB,YACT4jH,EAAO77F,EAAEgJ,GAAKoB,EAAEpB,EAAI,GAAK,EACzBy+B,EAAKznC,EAAE/jB,EACPyrD,EAAKt9B,EAAEnuB,EAGT,IAAK+jB,EAAEgJ,EAAG,OAAO,IAAIqoB,EAAKrxB,GAC1B,IAAKoK,EAAEpB,EAAG,MAAMjwB,MAAM6xN,EAAe,oBASrC,IAPA/nM,EAAI7C,EAAE6C,EAAIuH,EAAEvH,EACZgsM,EAAKnnK,EAAGlxD,OACRm4N,EAAKlnK,EAAGjxD,OAERmwD,GADA5Z,EAAI,IAAIsE,EAAKwqE,IACN5/G,EAAI,GAGN1F,EAAI,EAAGmxD,EAAGnxD,KAAOkxD,EAAGlxD,IAAM,MAAQA,EAWvC,GAVImxD,EAAGnxD,IAAMkxD,EAAGlxD,IAAM,MAAMssB,GAG1B8kC,EADQ,MAAN+pI,EACGA,EAAKrgJ,EAAK/I,UACNwjL,EACJp6B,GAAMy6B,EAAkBnsM,GAAKmsM,EAAkB/hM,IAAM,EAErDsnK,GAGE,EAAG,OAAO,IAAIrgJ,EAAK,GAO5B,GAJAsW,EAAKA,EAhhCI,EAghCY,EAAI,EACzBpxD,EAAI,EAGM,GAANs4N,EAMF,IALA54N,EAAI,EACJyxD,EAAKA,EAAG,GACRC,KAGQpxD,EAAIo4N,GAAM14N,IAAM0xD,IAAMpxD,IAC5BwyB,EAAI9yB,EAAIi1N,GAAQzjK,EAAGlxD,IAAM,GACzBowD,EAAGpwD,GAAKwyB,EAAI2+B,EAAK,EACjBzxD,EAAI8yB,EAAI2+B,EAAK,MAIV,CAiBL,KAdAzxD,EAAIi1N,GAAQxjK,EAAG,GAAK,GAAK,GAEjB,IACNA,EAAK0mK,EAAgB1mK,EAAIzxD,GACzBwxD,EAAK2mK,EAAgB3mK,EAAIxxD,GACzB44N,EAAKnnK,EAAGlxD,OACRm4N,EAAKlnK,EAAGjxD,QAGVqrE,EAAKgtJ,EAELJ,GADAl1C,EAAM9xH,EAAGptD,MAAM,EAAGw0N,IACPr4N,OAGJi4N,EAAOI,GAAKt1C,EAAIk1C,KAAU,GAEjCK,EAAKpnK,EAAGrtD,SACLm6D,QAAQ,GACXo6J,EAAMlnK,EAAG,GAELA,EAAG,IAAMwjK,EAAO,KAAK0D,EAEzB,GACE34N,EAAI,GAGJy1N,EAAMtlJ,EAAQ1e,EAAI6xH,EAAKs1C,EAAIJ,IAGjB,GAGRC,EAAOn1C,EAAI,GACPs1C,GAAMJ,IAAMC,EAAOA,EAAOxD,GAAQ3xC,EAAI,IAAM,KAGhDtjL,EAAIy4N,EAAOE,EAAM,GAUT,GACF34N,GAAKi1N,IAAMj1N,EAAIi1N,EAAO,GAWf,IAHXQ,EAAMtlJ,EALNmoJ,EAAOH,EAAgB1mK,EAAIzxD,GAKPsjL,EAJpBi1C,EAAQD,EAAK/3N,OACbi4N,EAAOl1C,EAAI/iL,WAOTP,IAGAw3B,EAAS8gM,EAAMM,EAAKL,EAAQM,EAAKpnK,EAAI8mK,MAO9B,GAALv4N,IAAQy1N,EAAMz1N,EAAI,GACtBs4N,EAAO7mK,EAAGrtD,UAGZm0N,EAAQD,EAAK/3N,QACDi4N,GAAMF,EAAK/5J,QAAQ,GAG/B/mC,EAAS8rJ,EAAKg1C,EAAME,IAGR,GAAR/C,IAIFA,EAAMtlJ,EAAQ1e,EAAI6xH,EAAKs1C,EAHvBJ,EAAOl1C,EAAI/iL,SAMD,IACRP,IAGAw3B,EAAS8rJ,EAAKs1C,EAAKJ,EAAOK,EAAKpnK,EAAI+mK,IAIvCA,EAAOl1C,EAAI/iL,QACM,IAARk1N,IACTz1N,IACAsjL,EAAM,CAAC,IAIT5yH,EAAGpwD,KAAON,EAGNy1N,GAAOnyC,EAAI,GACbA,EAAIk1C,KAAUhnK,EAAGoa,IAAO,GAExB03G,EAAM,CAAC9xH,EAAGoa,IACV4sJ,EAAO,UAGD5sJ,IAAO8sJ,QAAiB,IAAXp1C,EAAI,KAAkB5xH,IAC/C,CAOA,OAJKhB,EAAG,IAAIA,EAAGxB,QAEfpY,EAAElqB,EAAIA,EAEC2K,EAAMuf,EAAG++K,EAAKp6B,EAAKy6B,EAAkBp/K,GAAK,EAAI2kJ,EACvD,CACF,CAhOc,GAyPd,SAASr1E,EAAIr8F,EAAG2nC,GACd,IAAIonK,EAAoBzyG,EAAK1U,EAAK7+E,EAAGgkM,EACnCx2N,EAAI,EACJN,EAAI,EACJo7C,EAAOrxB,EAAE/nB,YACTy5L,EAAKrgJ,EAAK/I,UAEZ,GAAI6jL,EAAkBnsM,GAAK,GAAI,MAAMjnB,MAAM+xN,EAAqBqB,EAAkBnsM,IAGlF,IAAKA,EAAEgJ,EAAG,OAAO,IAAIqoB,EAAK+4K,GAW1B,IATU,MAANziK,GACFgjK,GAAW,EACXoC,EAAMr7B,GAENq7B,EAAMplK,EAGR5+B,EAAI,IAAIsoB,EAAK,QAENrxB,EAAEtkB,MAAM4gG,IAAI,KACjBt8E,EAAIA,EAAE+iB,MAAMha,GACZ9yB,GAAK,EASP,IAJA82N,GADQl2N,KAAKqrD,IAAI8oK,EAAQ,EAAG/0N,IAAMY,KAAK6zN,KAAO,EAAI,EAAI,EAEtDqE,EAAczyG,EAAM1U,EAAM,IAAIv2D,EAAK+4K,GACnC/4K,EAAK/I,UAAYykL,IAER,CAKP,GAJAzwG,EAAM9uF,EAAM8uF,EAAIv5E,MAAM/iB,GAAI+sM,GAC1BgC,EAAcA,EAAYhsL,QAAQxsC,GAG9B+0N,GAFJviM,EAAI6+E,EAAI2lH,KAAK1tH,EAAOyc,EAAKyyG,EAAahC,KAEjB9wN,GAAG5B,MAAM,EAAG0yN,KAASzB,EAAe1jH,EAAI3rG,GAAG5B,MAAM,EAAG0yN,GAAM,CAC7E,KAAO92N,KAAK2xG,EAAMp6E,EAAMo6E,EAAI7kE,MAAM6kE,GAAMmlH,GAExC,OADA17K,EAAK/I,UAAYopJ,EACJ,MAAN/pI,GAAcgjK,GAAW,EAAMn9L,EAAMo6E,EAAK8pF,IAAO9pF,CAC1D,CAEAA,EAAM7+E,CACR,CACF,CAIA,SAASojM,EAAkBnsM,GAKzB,IAJA,IAAI6C,EAzuCO,EAyuCH7C,EAAE6C,EACRhhB,EAAIme,EAAE/jB,EAAE,GAGH4F,GAAK,GAAIA,GAAK,GAAIghB,IACzB,OAAOA,CACT,CAGA,SAASmsM,EAAQ39K,EAAMsW,EAAI+pI,GAEzB,GAAI/pI,EAAKtW,EAAKq5K,KAAK/iK,KAMjB,MAFAgjK,GAAW,EACPj5B,IAAIrgJ,EAAK/I,UAAYopJ,GACnB34L,MAAM6xN,EAAe,iCAG7B,OAAOp9L,EAAM,IAAI6jB,EAAKA,EAAKq5K,MAAO/iK,EACpC,CAGA,SAAS6jK,EAAcv1N,GAErB,IADA,IAAIg5N,EAAK,GACFh5N,KAAMg5N,GAAM,IACnB,OAAOA,CACT,CAUA,SAAS14C,EAAGnsJ,EAAGu9B,GACb,IAAIl4C,EAAGm3K,EAAImoC,EAAalsM,EAAGqsM,EAAWtnH,EAAK7+E,EAAGgkM,EAAKhnL,EACjDznC,EAAI,EAEJ0hB,EAAIoK,EACJq9B,EAAKznC,EAAE/jB,EACPo1C,EAAOrxB,EAAE/nB,YACTy5L,EAAKrgJ,EAAK/I,UAIZ,GAAItoB,EAAEgJ,EAAI,EAAG,MAAMjwB,MAAM6xN,GAAgB5qM,EAAEgJ,EAAI,MAAQ,cAGvD,GAAIhJ,EAAE+rB,GAAGq+K,GAAM,OAAO,IAAI/4K,EAAK,GAS/B,GAPU,MAANsW,GACFgjK,GAAW,EACXoC,EAAMr7B,GAENq7B,EAAMplK,EAGJ3nC,EAAE+rB,GAAG,IAEP,OADU,MAAN4b,IAAYgjK,GAAW,GACpBqE,EAAQ39K,EAAM07K,GASvB,GANAA,GAzBU,GA0BV17K,EAAK/I,UAAYykL,EAEjBnmC,GADAn3K,EAAI67M,EAAe7jK,IACZ7vC,OAAO,GACdiL,EAAIspM,EAAkBnsM,KAElBnpB,KAAK6E,IAAImnB,GAAK,OAqChB,OAJAkG,EAAIimM,EAAQ39K,EAAM07K,EAAM,EAAGr7B,GAAI3uJ,MAAMlgB,EAAI,IACzC7C,EAAIu2J,EAAG,IAAIllI,EAAKu1I,EAAK,IAAMn3K,EAAEpV,MAAM,IAAK0yN,EAjEhC,IAiE6CQ,KAAKxkM,GAE1DsoB,EAAK/I,UAAYopJ,EACJ,MAAN/pI,GAAcgjK,GAAW,EAAMn9L,EAAMxN,EAAG0xK,IAAO1xK,EAxBtD,KAAO4mK,EAAK,GAAW,GAANA,GAAiB,GAANA,GAAWn3K,EAAEmI,OAAO,GAAK,GAGnDgvK,GADAn3K,EAAI67M,GADJtrM,EAAIA,EAAE+iB,MAAM3Y,IACSnuB,IACd2b,OAAO,GACdtZ,IAgCJ,IA7BEukB,EAAIspM,EAAkBnsM,GAElB4mK,EAAK,GACP5mK,EAAI,IAAIqxB,EAAK,KAAO5hC,GACpBoT,KAEA7C,EAAI,IAAIqxB,EAAKu1I,EAAK,IAAMn3K,EAAEpV,MAAM,IAmBpCutG,EAAMsnH,EAAYlvM,EAAI6/E,EAAO7/E,EAAEgtM,MAAM5C,GAAMpqM,EAAEutM,KAAKnD,GAAM2C,GACxDhnL,EAAKvY,EAAMxN,EAAE+iB,MAAM/iB,GAAI+sM,GACvBgC,EAAc,IAEL,CAIP,GAHAG,EAAY1hM,EAAM0hM,EAAUnsL,MAAMgD,GAAKgnL,GAGnCzB,GAFJviM,EAAI6+E,EAAI2lH,KAAK1tH,EAAOqvH,EAAW,IAAI79K,EAAK09K,GAAchC,KAEjC9wN,GAAG5B,MAAM,EAAG0yN,KAASzB,EAAe1jH,EAAI3rG,GAAG5B,MAAM,EAAG0yN,GAQvE,OAPAnlH,EAAMA,EAAI7kE,MAAM,GAGN,IAANlgB,IAAS+kF,EAAMA,EAAI2lH,KAAKyB,EAAQ39K,EAAM07K,EAAM,EAAGr7B,GAAI3uJ,MAAMlgB,EAAI,MACjE+kF,EAAM/H,EAAO+H,EAAK,IAAIv2D,EAAK/yC,GAAIyuN,GAE/B17K,EAAK/I,UAAYopJ,EACJ,MAAN/pI,GAAcgjK,GAAW,EAAMn9L,EAAMo6E,EAAK8pF,IAAO9pF,EAG1DA,EAAM7+E,EACNgmM,GAAe,CACjB,CACF,CAMA,SAASI,EAAanvM,EAAGqoB,GACvB,IAAIxlB,EAAGtsB,EAAGujB,EAmBV,KAhBK+I,EAAIwlB,EAAItuC,QAAQ,OAAS,IAAGsuC,EAAMA,EAAIt/B,QAAQ,IAAK,MAGnDxS,EAAI8xC,EAAI6lB,OAAO,OAAS,GAGvBrrC,EAAI,IAAGA,EAAItsB,GACfssB,IAAMwlB,EAAIhuC,MAAM9D,EAAI,GACpB8xC,EAAMA,EAAI5kB,UAAU,EAAGltB,IACdssB,EAAI,IAGbA,EAAIwlB,EAAI7xC,QAILD,EAAI,EAAyB,KAAtB8xC,EAAI1wB,WAAWphB,MAAcA,EAGzC,IAAKujB,EAAMuuB,EAAI7xC,OAAoC,KAA5B6xC,EAAI1wB,WAAWmC,EAAM,MAAcA,EAG1D,GAFAuuB,EAAMA,EAAIhuC,MAAM9D,EAAGujB,GAEV,CAaP,GAZAA,GAAOvjB,EACPssB,EAAIA,EAAItsB,EAAI,EACZypB,EAAE6C,EAAIkoM,EAAUloM,EAv5CP,GAw5CT7C,EAAE/jB,EAAI,GAMN1F,GAAKssB,EAAI,GA95CA,EA+5CLA,EAAI,IAAGtsB,GA/5CF,GAi6CLA,EAAIujB,EAAK,CAEX,IADIvjB,GAAGypB,EAAE/jB,EAAE/E,MAAMmxC,EAAIhuC,MAAM,EAAG9D,IACzBujB,GAn6CE,EAm6CevjB,EAAIujB,GAAMkG,EAAE/jB,EAAE/E,MAAMmxC,EAAIhuC,MAAM9D,EAAGA,GAn6ChD,IAq6CPA,EAr6CO,GAo6CP8xC,EAAMA,EAAIhuC,MAAM9D,IACGC,MACrB,MACED,GAAKujB,EAGP,KAAOvjB,KAAM8xC,GAAO,IAGpB,GAFAroB,EAAE/jB,EAAE/E,MAAMmxC,GAENsiL,IAAa3qM,EAAE6C,EAAIsoM,GAASnrM,EAAE6C,GAAKsoM,GAAQ,MAAMpyN,MAAM+xN,EAAqBjoM,EAClF,MAGE7C,EAAEgJ,EAAI,EACNhJ,EAAE6C,EAAI,EACN7C,EAAE/jB,EAAI,CAAC,GAGT,OAAO+jB,CACT,CAMC,SAASwN,EAAMxN,EAAG2nC,EAAI6xJ,GACrB,IAAIjjN,EAAG2c,EAAGjd,EAAGqI,EAAGsoD,EAAIwoK,EAASvtN,EAAGwtN,EAC9B5nK,EAAKznC,EAAE/jB,EAWT,IAAKqC,EAAI,EAAGrI,EAAIwxD,EAAG,GAAIxxD,GAAK,GAAIA,GAAK,GAAIqI,IAIzC,IAHA/H,EAAIoxD,EAAKrpD,GAGD,EACN/H,GA/8CS,EAg9CT2c,EAAIy0C,EACJ9lD,EAAI4lD,EAAG4nK,EAAM,OACR,CAGL,IAFAA,EAAMx4N,KAAK6K,MAAMnL,EAAI,GAn9CZ,MAo9CTN,EAAIwxD,EAAGjxD,QACO,OAAOwpB,EAIrB,IAHAne,EAAI5L,EAAIwxD,EAAG4nK,GAGN/wN,EAAI,EAAGrI,GAAK,GAAIA,GAAK,GAAIqI,IAO9B4U,GAJA3c,GA59CS,KAg+CU+H,CACrB,CAwBA,QAtBW,IAAPk7M,IAIF5yJ,EAAK/kD,GAHL5L,EAAI+0N,EAAQ,GAAI1sN,EAAI4U,EAAI,IAGX,GAAK,EAGlBk8M,EAAUznK,EAAK,QAAqB,IAAhBF,EAAG4nK,EAAM,IAAiBxtN,EAAI5L,EAMlDm5N,EAAU5V,EAAK,GACV5yJ,GAAMwoK,KAAmB,GAAN5V,GAAWA,IAAOx5L,EAAEgJ,EAAI,EAAI,EAAI,IACpD49B,EAAK,GAAW,GAANA,IAAkB,GAAN4yJ,GAAW4V,GAAiB,GAAN5V,IAG1CjjN,EAAI,EAAI2c,EAAI,EAAIrR,EAAImpN,EAAQ,GAAI1sN,EAAI4U,GAAK,EAAIu0C,EAAG4nK,EAAM,IAAM,GAAM,GAClE7V,IAAOx5L,EAAEgJ,EAAI,EAAI,EAAI,KAGzB2+B,EAAK,IAAMF,EAAG,GAkBhB,OAjBI2nK,GACFn5N,EAAIk2N,EAAkBnsM,GACtBynC,EAAGjxD,OAAS,EAGZmxD,EAAKA,EAAK1xD,EAAI,EAGdwxD,EAAG,GAAKujK,EAAQ,IAlgDT,EAkgDyBrjK,EAlgDzB,MAmgDP3nC,EAAE6C,EAAIkoM,GAAWpjK,EAngDV,IAmgD4B,IAEnCF,EAAGjxD,OAAS,EAGZixD,EAAG,GAAKznC,EAAE6C,EAAI7C,EAAEgJ,EAAI,GAGfhJ,EAiBT,GAbS,GAALzpB,GACFkxD,EAAGjxD,OAAS64N,EACZp5N,EAAI,EACJo5N,MAEA5nK,EAAGjxD,OAAS64N,EAAM,EAClBp5N,EAAI+0N,EAAQ,GArhDH,EAqhDkBz0N,GAI3BkxD,EAAG4nK,GAAOn8M,EAAI,GAAKrR,EAAImpN,EAAQ,GAAI1sN,EAAI4U,GAAK83M,EAAQ,GAAI93M,GAAK,GAAKjd,EAAI,GAGpEm5N,EACF,OAAS,CAGP,GAAW,GAAPC,EAAU,EACP5nK,EAAG,IAAMxxD,IAAMi1N,IAClBzjK,EAAG,GAAK,IACNznC,EAAE6C,GAGN,KACF,CAEE,GADA4kC,EAAG4nK,IAAQp5N,EACPwxD,EAAG4nK,IAAQnE,EAAM,MACrBzjK,EAAG4nK,KAAS,EACZp5N,EAAI,CAER,CAIF,IAAKM,EAAIkxD,EAAGjxD,OAAoB,IAAZixD,IAAKlxD,IAAWkxD,EAAG8/B,MAEvC,GAAIojI,IAAa3qM,EAAE6C,EAAIsoM,GAASnrM,EAAE6C,GAAKsoM,GACrC,MAAMpyN,MAAM+xN,EAAqBqB,EAAkBnsM,IAGrD,OAAOA,CACT,CAGA,SAASyN,EAASzN,EAAGoK,GACnB,IAAInuB,EAAG4mB,EAAGtsB,EAAG2c,EAAGjd,EAAG6jB,EAAK2tC,EAAI0H,EAAImgK,EAAM5nK,EACpCrW,EAAOrxB,EAAE/nB,YACTy5L,EAAKrgJ,EAAK/I,UAIZ,IAAKtoB,EAAEgJ,IAAMoB,EAAEpB,EAGb,OAFIoB,EAAEpB,EAAGoB,EAAEpB,GAAKoB,EAAEpB,EACboB,EAAI,IAAIinB,EAAKrxB,GACX2qM,EAAWn9L,EAAMpD,EAAGsnK,GAAMtnK,EAcnC,GAXAq9B,EAAKznC,EAAE/jB,EACPyrD,EAAKt9B,EAAEnuB,EAIP4mB,EAAIuH,EAAEvH,EACNssC,EAAKnvC,EAAE6C,EACP4kC,EAAKA,EAAGptD,QACRpE,EAAIk5D,EAAKtsC,EAGF,CAyBL,KAxBAysM,EAAOr5N,EAAI,IAGTgG,EAAIwrD,EACJxxD,GAAKA,EACL6jB,EAAM4tC,EAAGlxD,SAETyF,EAAIyrD,EACJ7kC,EAAIssC,EACJr1C,EAAM2tC,EAAGjxD,QAQPP,GAFJM,EAAIM,KAAKwhB,IAAIxhB,KAAK6K,KAAKgwL,EAnmDd,GAmmD8B53K,GAAO,KAG5C7jB,EAAIM,EACJ0F,EAAEzF,OAAS,GAIbyF,EAAEwlF,UACGlrF,EAAIN,EAAGM,KAAM0F,EAAE/E,KAAK,GACzB+E,EAAEwlF,SAGJ,KAAO,CASL,KAHA6tI,GAFA/4N,EAAIkxD,EAAGjxD,SACPsjB,EAAM4tC,EAAGlxD,WAECsjB,EAAMvjB,GAEXA,EAAI,EAAGA,EAAIujB,EAAKvjB,IACnB,GAAIkxD,EAAGlxD,IAAMmxD,EAAGnxD,GAAI,CAClB+4N,EAAO7nK,EAAGlxD,GAAKmxD,EAAGnxD,GAClB,KACF,CAGFN,EAAI,CACN,CAaA,IAXIq5N,IACFrzN,EAAIwrD,EACJA,EAAKC,EACLA,EAAKzrD,EACLmuB,EAAEpB,GAAKoB,EAAEpB,GAGXlP,EAAM2tC,EAAGjxD,OAIJD,EAAImxD,EAAGlxD,OAASsjB,EAAKvjB,EAAI,IAAKA,EAAGkxD,EAAG3tC,KAAS,EAGlD,IAAKvjB,EAAImxD,EAAGlxD,OAAQD,EAAIN,GAAI,CAC1B,GAAIwxD,IAAKlxD,GAAKmxD,EAAGnxD,GAAI,CACnB,IAAK2c,EAAI3c,EAAG2c,GAAiB,IAAZu0C,IAAKv0C,IAAWu0C,EAAGv0C,GAAKg4M,EAAO,IAC9CzjK,EAAGv0C,GACLu0C,EAAGlxD,IAAM20N,CACX,CAEAzjK,EAAGlxD,IAAMmxD,EAAGnxD,EACd,CAGA,KAAqB,IAAdkxD,IAAK3tC,IAAa2tC,EAAG8/B,MAG5B,KAAiB,IAAV9/B,EAAG,GAAUA,EAAGtC,UAAWtiC,EAGlC,OAAK4kC,EAAG,IAERr9B,EAAEnuB,EAAIwrD,EACNr9B,EAAEvH,EAAIA,EAGC8nM,EAAWn9L,EAAMpD,EAAGsnK,GAAMtnK,GANd,IAAIinB,EAAK,EAO9B,CAGA,SAAShuC,EAAS2c,EAAGuvM,EAAO5nK,GAC1B,IAAI1xD,EACF4sB,EAAIspM,EAAkBnsM,GACtBqoB,EAAMijL,EAAetrM,EAAE/jB,GACvB6d,EAAMuuB,EAAI7xC,OAwBZ,OAtBI+4N,GACE5nK,IAAO1xD,EAAI0xD,EAAK7tC,GAAO,EACzBuuB,EAAMA,EAAIzwB,OAAO,GAAK,IAAMywB,EAAIhuC,MAAM,GAAKmxN,EAAcv1N,GAChD6jB,EAAM,IACfuuB,EAAMA,EAAIzwB,OAAO,GAAK,IAAMywB,EAAIhuC,MAAM,IAGxCguC,EAAMA,GAAOxlB,EAAI,EAAI,IAAM,MAAQA,GAC1BA,EAAI,GACbwlB,EAAM,KAAOmjL,GAAe3oM,EAAI,GAAKwlB,EACjCsf,IAAO1xD,EAAI0xD,EAAK7tC,GAAO,IAAGuuB,GAAOmjL,EAAcv1N,KAC1C4sB,GAAK/I,GACduuB,GAAOmjL,EAAc3oM,EAAI,EAAI/I,GACzB6tC,IAAO1xD,EAAI0xD,EAAK9kC,EAAI,GAAK,IAAGwlB,EAAMA,EAAM,IAAMmjL,EAAcv1N,OAE3DA,EAAI4sB,EAAI,GAAK/I,IAAKuuB,EAAMA,EAAIhuC,MAAM,EAAGpE,GAAK,IAAMoyC,EAAIhuC,MAAMpE,IAC3D0xD,IAAO1xD,EAAI0xD,EAAK7tC,GAAO,IACrB+I,EAAI,IAAM/I,IAAKuuB,GAAO,KAC1BA,GAAOmjL,EAAcv1N,KAIlB+pB,EAAEgJ,EAAI,EAAI,IAAMqf,EAAMA,CAC/B,CAIA,SAAS2gE,EAAS04C,EAAK5nI,GACrB,GAAI4nI,EAAIlrJ,OAASsjB,EAEf,OADA4nI,EAAIlrJ,OAASsjB,GACN,CAEX,CAgIA,SAASmtB,EAAOnvC,GACd,IAAKA,GAAsB,kBAARA,EACjB,MAAMiB,MAAM6xN,EAAe,mBAE7B,IAAIr0N,EAAGmmB,EAAG6N,EACRilM,EAAK,CACH,YAAa,EAAGnF,EAChB,WAAY,EAAG,EACf,YAAY,IAAQ,EACpB,WAAY,EAAG,KAGnB,IAAK9zN,EAAI,EAAGA,EAAIi5N,EAAGh5N,OAAQD,GAAK,EAC9B,QAA6B,KAAxBg0B,EAAIzyB,EAAI4kB,EAAI8yM,EAAGj5N,KAAiB,CACnC,KAAIw0N,EAAUxgM,KAAOA,GAAKA,GAAKilM,EAAGj5N,EAAI,IAAMg0B,GAAKilM,EAAGj5N,EAAI,IACnD,MAAMwC,MAAM8xN,EAAkBnuM,EAAI,KAAO6N,GADcl1B,KAAKqnB,GAAK6N,CAExE,CAGF,QAA8B,KAAzBA,EAAIzyB,EAAI4kB,EAAI,SAAqB,CAClC,GAAI6N,GAAK1zB,KAAK6zN,KACT,MAAM3xN,MAAM8xN,EAAkBnuM,EAAI,KAAO6N,GAD1Bl1B,KAAKqnB,GAAK,IAAIrnB,KAAKk1B,EAE3C,CAEA,OAAOl1B,IACT,CAIAi1N,EA5IA,SAASntN,EAAMrF,GACb,IAAIvB,EAAGmmB,EAAG8yM,EASV,SAASlF,EAAQr2N,GACf,IAAI+rB,EAAI3qB,KAGR,KAAM2qB,aAAasqM,GAAU,OAAO,IAAIA,EAAQr2N,GAOhD,GAHA+rB,EAAE/nB,YAAcqyN,EAGZr2N,aAAiBq2N,EAInB,OAHAtqM,EAAEgJ,EAAI/0B,EAAM+0B,EACZhJ,EAAE6C,EAAI5uB,EAAM4uB,OACZ7C,EAAE/jB,GAAKhI,EAAQA,EAAMgI,GAAKhI,EAAMoG,QAAUpG,GAI5C,GAAqB,kBAAVA,EAAoB,CAG7B,GAAY,EAARA,IAAc,EAChB,MAAM8E,MAAM8xN,EAAkB52N,GAGhC,GAAIA,EAAQ,EACV+rB,EAAEgJ,EAAI,MACD,MAAI/0B,EAAQ,GAOjB,OAHA+rB,EAAEgJ,EAAI,EACNhJ,EAAE6C,EAAI,OACN7C,EAAE/jB,EAAI,CAAC,IALPhI,GAASA,EACT+rB,EAAEgJ,GAAK,CAMT,CAGA,OAAI/0B,MAAYA,GAASA,EAAQ,KAC/B+rB,EAAE6C,EAAI,OACN7C,EAAE/jB,EAAI,CAAChI,KAIFk7N,EAAanvM,EAAG/rB,EAAMoP,WAC/B,CAAO,GAAqB,kBAAVpP,EAChB,MAAM8E,MAAM8xN,EAAkB52N,GAWhC,GAP4B,KAAxBA,EAAM0jB,WAAW,IACnB1jB,EAAQA,EAAMoG,MAAM,GACpB2lB,EAAEgJ,GAAK,GAEPhJ,EAAEgJ,EAAI,GAGJiiM,EAAU54M,KAAKpe,GACd,MAAM8E,MAAM8xN,EAAkB52N,GADRk7N,EAAanvM,EAAG/rB,EAE7C,CAkBA,GAhBAq2N,EAAQp1N,UAAY+f,EAEpBq1M,EAAQmF,SAAW,EACnBnF,EAAQoF,WAAa,EACrBpF,EAAQqF,WAAa,EACrBrF,EAAQsF,YAAc,EACtBtF,EAAQuF,cAAgB,EACxBvF,EAAQwF,gBAAkB,EAC1BxF,EAAQyF,gBAAkB,EAC1BzF,EAAQ0F,gBAAkB,EAC1B1F,EAAQ2F,iBAAmB,EAE3B3F,EAAQntN,MAAQA,EAChBmtN,EAAQrjL,OAASqjL,EAAQtrN,IAAMioC,OAEnB,IAARnvC,IAAgBA,EAAM,CAAC,GACvBA,EAEF,IADA03N,EAAK,CAAC,YAAa,WAAY,WAAY,WAAY,QAClDj5N,EAAI,EAAGA,EAAIi5N,EAAGh5N,QAAcsB,EAAIa,eAAe+jB,EAAI8yM,EAAGj5N,QAAOuB,EAAI4kB,GAAKrnB,KAAKqnB,IAKlF,OAFA4tM,EAAQrjL,OAAOnvC,GAERwyN,CACT,CA6CUntN,CAAMmtN,GAEhBA,EAAiB,QAAIA,EAAQA,QAAUA,EAGvCF,EAAM,IAAIE,EAAQ,QAUf,KAFDx/G,EAAAA,WACE,OAAOw/G,CACR,+BAeJ,CA59DA,mBCDD,IAAIxyH,EAAUp1E,EAAQ,MAyBtB3uB,EAAOC,QAZP,SAAuBu5C,GACrB,IAAIjnC,EAASwxF,EAAQvqD,GAAM,SAASpzC,GAIlC,OAfmB,MAYfi2E,EAAM14D,MACR04D,EAAMmT,QAEDppF,CACT,IAEIi2E,EAAQ9pE,EAAO8pE,MACnB,OAAO9pE,CACT,kBCvBA,IAAI6nF,EAAWzrE,EAAQ,MACnBra,EAAiBqa,EAAQ,MACzBgM,EAAWhM,EAAQ,MAUnBwrE,EAAmB7lF,EAA4B,SAASklC,EAAM5kC,GAChE,OAAON,EAAeklC,EAAM,WAAY,CACtC,cAAgB,EAChB,YAAc,EACd,MAAS4gD,EAASxlF,GAClB,UAAY,GAEhB,EAPwC+lB,EASxC36B,EAAOC,QAAUk6F,+BCVjB,IAAIg7H,EAAQxmM,EAAQ,MAIpB,IAAIwtM,EAAW,oBAAsB70N,OAAOyiD,GAAKziD,OAAOyiD,GAHxD,SAAY99B,EAAGoK,GACb,OAAQpK,IAAMoK,IAAM,IAAMpK,GAAK,EAAIA,IAAM,EAAIoK,IAAQpK,IAAMA,GAAKoK,IAAMA,CACxE,EAEE64C,EAAuBimJ,EAAMjmJ,qBAC7BN,EAASumJ,EAAMvmJ,OACfN,EAAY6mJ,EAAM7mJ,UAClBI,EAAUymJ,EAAMzmJ,QAChBI,EAAgBqmJ,EAAMrmJ,cACxB7uE,EAAQm8N,iCAAmC,SACzC5sM,EACA28C,EACAkwJ,EACAC,EACA5qH,GAEA,IAAI6qH,EAAU3tJ,EAAO,MACrB,GAAI,OAAS2tJ,EAAQh1L,QAAS,CAC5B,IAAIi1L,EAAO,CAAEC,UAAU,EAAIv8N,MAAO,MAClCq8N,EAAQh1L,QAAUi1L,CACpB,MAAOA,EAAOD,EAAQh1L,QACtBg1L,EAAU7tJ,GACR,WACE,SAASguJ,EAAiBC,GACxB,IAAKC,EAAS,CAIZ,GAHAA,GAAU,EACVC,EAAmBF,EACnBA,EAAeL,EAASK,QACpB,IAAWjrH,GAAW8qH,EAAKC,SAAU,CACvC,IAAIK,EAAmBN,EAAKt8N,MAC5B,GAAIwxG,EAAQorH,EAAkBH,GAC5B,OAAQI,EAAoBD,CAChC,CACA,OAAQC,EAAoBJ,CAC9B,CAEA,GADAG,EAAmBC,EACfZ,EAASU,EAAkBF,GAAe,OAAOG,EACrD,IAAIE,EAAgBV,EAASK,GAC7B,YAAI,IAAWjrH,GAAWA,EAAQorH,EAAkBE,IAC1CH,EAAmBF,EAAeG,IAC5CD,EAAmBF,EACXI,EAAoBC,EAC9B,CACA,IACEH,EACAE,EAFEH,GAAU,EAGZK,OACE,IAAWZ,EAAoB,KAAOA,EAC1C,MAAO,CACL,WACE,OAAOK,EAAiBvwJ,IAC1B,EACA,OAAS8wJ,OACL,EACA,WACE,OAAOP,EAAiBO,IAC1B,EAER,GACA,CAAC9wJ,EAAakwJ,EAAmBC,EAAU5qH,IAE7C,IAAIxxG,EAAQgvE,EAAqB1/C,EAAW+sM,EAAQ,GAAIA,EAAQ,IAShE,OARAjuJ,GACE,WACEkuJ,EAAKC,UAAW,EAChBD,EAAKt8N,MAAQA,CACf,GACA,CAACA,IAEH4uE,EAAc5uE,GACPA,CACT,kBCnFA,IAAIi/C,EAAgBxwB,EAAQ,MACxBw7D,EAAYx7D,EAAQ,KACpBu7D,EAAgBv7D,EAAQ,MAiB5B3uB,EAAOC,QANP,SAAqBkT,EAAOjT,EAAOoR,GACjC,OAAOpR,IAAUA,EACbgqF,EAAc/2E,EAAOjT,EAAOoR,GAC5B6tC,EAAchsC,EAAOg3E,EAAW74E,EACtC,kBCjBA,IAAItN,EAAS2qB,EAAQ,MACjB0wB,EAAW1wB,EAAQ,KACnBnb,EAAUmb,EAAQ,MAClBjK,EAAWiK,EAAQ,MAMnBy/D,EAAcpqF,EAASA,EAAO7C,eAAYoN,EAC1C+a,EAAiB8kE,EAAcA,EAAY9+E,cAAWf,EA0B1DvO,EAAOC,QAhBP,SAASq4C,EAAap4C,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAIsT,EAAQtT,GAEV,OAAOm/C,EAASn/C,EAAOo4C,GAAgB,GAEzC,GAAI5zB,EAASxkB,GACX,OAAOopB,EAAiBA,EAAejoB,KAAKnB,GAAS,GAEvD,IAAIqS,EAAUrS,EAAQ,GACtB,MAAkB,KAAVqS,GAAkB,EAAIrS,IAAU,IAAa,KAAOqS,CAC9D,kBClCA,IAAIs9E,EAAgBlhE,EAAQ,MACxB6oE,EAAW7oE,EAAQ,MACnBspB,EAActpB,EAAQ,MAkC1B3uB,EAAOC,QAJP,SAAcyV,GACZ,OAAOuiC,EAAYviC,GAAUm6E,EAAcn6E,GAAU8hF,EAAS9hF,EAChE,kBClCA,IAAIwnN,EAAYvuM,EAAQ,MACpBwuM,EAAaxuM,EAAQ,MACrByuM,EAAUzuM,EAAQ,MAClB0uM,EAAU1uM,EAAQ,MAClB2uM,EAAU3uM,EAAQ,MAStB,SAAS4gE,EAAK73E,GACZ,IAAIlG,GAAS,EACT/O,EAAoB,MAAXiV,EAAkB,EAAIA,EAAQjV,OAG3C,IADAnB,KAAKkuF,UACIh+E,EAAQ/O,GAAQ,CACvB,IAAIuvB,EAAQta,EAAQlG,GACpBlQ,KAAK2J,IAAI+mB,EAAM,GAAIA,EAAM,GAC3B,CACF,CAGAu9D,EAAKpuF,UAAUquF,MAAQ0tI,EACvB3tI,EAAKpuF,UAAkB,OAAIg8N,EAC3B5tI,EAAKpuF,UAAU2N,IAAMsuN,EACrB7tI,EAAKpuF,UAAUgT,IAAMkpN,EACrB9tI,EAAKpuF,UAAU8J,IAAMqyN,EAErBt9N,EAAOC,QAAUsvF,kBC/BjB,IAAIzyC,EAAenuB,EAAQ,MAMvB/pB,EAHc0C,OAAOnG,UAGQyD,eAgBjC5E,EAAOC,QALP,SAAiBmG,GACf,IAAIyX,EAAOvc,KAAKm2C,SAChB,OAAOqF,OAA8BvuC,IAAdsP,EAAKzX,GAAsBxB,EAAevD,KAAKwc,EAAMzX,EAC9E,6BClBAkB,OAAOgN,eAAerU,EAAS,aAAc,CAC3CC,OAAO,IAMTD,EAAAA,QAJW,SAAcg1B,GACvByH,QAAQqY,KAAK,cAAe9f,EAC9B,+BCJEj1B,EAAOC,QAAU,EAAjBD,sBCHF,IAAI+8C,EAAWpuB,EAAQ,MACnBspB,EAActpB,EAAQ,MAoB1B3uB,EAAOC,QAVP,SAAiB+8C,EAAYjoB,GAC3B,IAAIvjB,GAAS,EACTe,EAAS0lC,EAAY+E,GAAc76C,MAAM66C,EAAWv6C,QAAU,GAKlE,OAHAs6C,EAASC,GAAY,SAAS98C,EAAOkG,EAAK42C,GACxCzqC,IAASf,GAASujB,EAAS70B,EAAOkG,EAAK42C,EACzC,IACOzqC,CACT,YCAAvS,EAAOC,QAXP,SAAmBkT,EAAOwE,GAKxB,IAJA,IAAInG,GAAS,EACT/O,EAASkV,EAAOlV,OAChB25D,EAASjpD,EAAM1Q,SAEV+O,EAAQ/O,GACf0Q,EAAMipD,EAAS5qD,GAASmG,EAAOnG,GAEjC,OAAO2B,CACT,mCCVgCpP,EAJhC9D,EAAQ,OAAU,EAMlB,IAAIs9N,GAAW,IAFiBx5N,EAFe4qB,EAAQ,QAEF5qB,EAAI2vB,WAAa3vB,EAAM,CAAE7C,QAAS6C,IAElD7C,SAAS,SAE9CjB,EAAQ,EAAUs9N,kBCXlB,IAAI7tI,EAAW/gE,EAAQ,MACnB6uM,EAAc7uM,EAAQ,MACtB8uM,EAAc9uM,EAAQ,MAU1B,SAASghE,EAASh4E,GAChB,IAAInG,GAAS,EACT/O,EAAmB,MAAVkV,EAAiB,EAAIA,EAAOlV,OAGzC,IADAnB,KAAKm2C,SAAW,IAAIi4C,IACXl+E,EAAQ/O,GACfnB,KAAKw1B,IAAInf,EAAOnG,GAEpB,CAGAm+E,EAASxuF,UAAU21B,IAAM64D,EAASxuF,UAAUgC,KAAOq6N,EACnD7tI,EAASxuF,UAAUgT,IAAMspN,EAEzBz9N,EAAOC,QAAU0vF,oBC1BmD3vF,EAAOC,QAA4J,WAAW,aAAa,IAAI6uB,EAAE,CAACkkI,IAAI,YAAYhzI,GAAG,SAAS6pD,EAAE,aAAaopF,GAAG,eAAeC,IAAI,sBAAsBC,KAAK,6BAA6Bn+H,EAAE,gGAAgGzqB,EAAE,KAAK3J,EAAE,OAAO4B,EAAE,QAAQoxB,EAAE,qBAAqBqB,EAAE,CAAC,EAAEzZ,EAAE,SAASsT,GAAG,OAAOA,GAAGA,IAAIA,EAAE,GAAG,KAAK,IAAI,EAAMre,EAAE,SAASqe,GAAG,OAAO,SAASkG,GAAG1zB,KAAKwtB,IAAIkG,CAAC,CAAC,EAAEjnB,EAAE,CAAC,sBAAsB,SAAS+gB,IAAIxtB,KAAK4uK,OAAO5uK,KAAK4uK,KAAK,CAAC,IAAI9zG,OAAO,SAASttC,GAAG,IAAIA,EAAE,OAAO,EAAE,GAAG,MAAMA,EAAE,OAAO,EAAE,IAAIkG,EAAElG,EAAE5U,MAAM,gBAAgB3P,EAAE,GAAGyqB,EAAE,KAAKA,EAAE,IAAI,GAAG,OAAO,IAAIzqB,EAAE,EAAE,MAAMyqB,EAAE,IAAIzqB,EAAEA,CAAC,CAAhI,CAAkIukB,EAAE,GAAGoG,EAAE,SAASpG,GAAG,IAAIkG,EAAEC,EAAEnG,GAAG,OAAOkG,IAAIA,EAAEhvB,QAAQgvB,EAAEA,EAAEC,EAAEnvB,OAAOkvB,EAAEvkB,GAAG,EAAEvI,EAAE,SAAS4mB,EAAEkG,GAAG,IAAIzqB,EAAE3J,EAAEq0B,EAAEc,SAAS,GAAGn1B,GAAG,IAAI,IAAI4B,EAAE,EAAEA,GAAG,GAAGA,GAAG,EAAE,GAAGssB,EAAE9oB,QAAQpF,EAAE4B,EAAE,EAAEwyB,KAAK,EAAE,CAACzqB,EAAE/H,EAAE,GAAG,KAAK,OAAO+H,EAAEukB,KAAKkG,EAAE,KAAK,MAAM,OAAOzqB,CAAC,EAAEmR,EAAE,CAACmD,EAAE,CAAC+U,EAAE,SAAS9E,GAAGxtB,KAAKo8N,UAAUx1N,EAAE4mB,GAAE,EAAG,GAAGtT,EAAE,CAACoY,EAAE,SAAS9E,GAAGxtB,KAAKo8N,UAAUx1N,EAAE4mB,GAAE,EAAG,GAAGmI,EAAE,CAAC1sB,EAAE,SAASukB,GAAGxtB,KAAKu1B,MAAM,GAAG/H,EAAE,GAAG,CAAC,GAAGha,EAAE,CAACvK,EAAE,SAASukB,GAAGxtB,KAAK+zJ,aAAa,KAAKvmI,CAAC,GAAG6uM,GAAG,CAAC/8N,EAAE,SAASkuB,GAAGxtB,KAAK+zJ,aAAa,IAAIvmI,CAAC,GAAG8uM,IAAI,CAAC,QAAQ,SAAS9uM,GAAGxtB,KAAK+zJ,cAAcvmI,CAAC,GAAGmG,EAAE,CAACzyB,EAAEiO,EAAE,YAAYsjJ,GAAG,CAACvxJ,EAAEiO,EAAE,YAAY8lB,EAAE,CAAC/zB,EAAEiO,EAAE,YAAYujJ,GAAG,CAACxxJ,EAAEiO,EAAE,YAAY+xD,EAAE,CAAChgE,EAAEiO,EAAE,UAAU1C,EAAE,CAACvL,EAAEiO,EAAE,UAAUotN,GAAG,CAACr7N,EAAEiO,EAAE,UAAUo3D,GAAG,CAACrlE,EAAEiO,EAAE,UAAUsmB,EAAE,CAACv0B,EAAEiO,EAAE,QAAQqtN,GAAG,CAACl9N,EAAE6P,EAAE,QAAQstN,GAAG,CAACnqM,EAAE,SAAS9E,GAAG,IAAIkG,EAAEC,EAAEe,QAAQzrB,EAAEukB,EAAE5U,MAAM,OAAO,GAAG5Y,KAAKszJ,IAAIrqJ,EAAE,GAAGyqB,EAAE,IAAI,IAAIp0B,EAAE,EAAEA,GAAG,GAAGA,GAAG,EAAEo0B,EAAEp0B,GAAGoU,QAAQ,SAAS,MAAM8Z,IAAIxtB,KAAKszJ,IAAIh0J,EAAE,GAAGkN,EAAE,CAACtL,EAAEiO,EAAE,SAASwjJ,GAAG,CAACrzJ,EAAE6P,EAAE,SAAS6lB,EAAE,CAAC9zB,EAAEiO,EAAE,UAAUyjJ,GAAG,CAACtzJ,EAAE6P,EAAE,UAAUutN,IAAI,CAACpqM,EAAE,SAAS9E,GAAG,IAAIkG,EAAEE,EAAE,UAAU3qB,GAAG2qB,EAAE,gBAAgBF,EAAErmB,KAAK,SAASmgB,GAAG,OAAOA,EAAExoB,MAAM,EAAE,EAAE,KAAKN,QAAQ8oB,GAAG,EAAE,GAAGvkB,EAAE,EAAE,MAAM,IAAIvF,MAAM1D,KAAKu1B,MAAMtsB,EAAE,IAAIA,CAAC,GAAG0zN,KAAK,CAACrqM,EAAE,SAAS9E,GAAG,IAAIkG,EAAEE,EAAE,UAAUlvB,QAAQ8oB,GAAG,EAAE,GAAGkG,EAAE,EAAE,MAAM,IAAIhwB,MAAM1D,KAAKu1B,MAAM7B,EAAE,IAAIA,CAAC,GAAGyjD,EAAE,CAAC,WAAWhoE,EAAE,SAASytN,GAAG,CAACt9N,EAAE,SAASkuB,GAAGxtB,KAAKs1B,KAAKpb,EAAEsT,EAAE,GAAGqvM,KAAK,CAAC,QAAQ1tN,EAAE,SAASioE,EAAE3qE,EAAEqwN,GAAGrwN,GAAG,SAAS3K,EAAEmH,GAAG,IAAI3J,EAAE4B,EAAE5B,EAAE2J,EAAE/H,EAAEyyB,GAAGA,EAAEM,QAAQ,IAAI,IAAI3B,GAAGrpB,EAAE3J,EAAEoU,QAAQ,qCAAqC,SAASggB,EAAEzqB,EAAE3J,GAAG,IAAIgzB,EAAEhzB,GAAGA,EAAE4zB,cAAc,OAAOjqB,GAAG/H,EAAE5B,IAAIkuB,EAAEluB,IAAI4B,EAAEoxB,GAAG5e,QAAQ,kCAAkC,SAAS8Z,EAAEkG,EAAEzqB,GAAG,OAAOyqB,GAAGzqB,EAAEjE,MAAM,EAAE,GAAG,KAAK4T,MAAM8a,GAAGxZ,EAAEoY,EAAEnxB,OAAOgO,EAAE,EAAEA,EAAE+K,EAAE/K,GAAG,EAAE,CAAC,IAAI1C,EAAE6lB,EAAEnjB,GAAGykB,EAAExZ,EAAE3N,GAAG7F,EAAEgtB,GAAGA,EAAE,GAAG9xB,EAAE8xB,GAAGA,EAAE,GAAGtB,EAAEnjB,GAAGrN,EAAE,CAACo1J,MAAMtwJ,EAAE47H,OAAO1gI,GAAG2K,EAAEiH,QAAQ,WAAW,GAAG,CAAC,OAAO,SAAS8Z,GAAG,IAAI,IAAIkG,EAAE,CAAC,EAAEzqB,EAAE,EAAE3J,EAAE,EAAE2J,EAAEiR,EAAEjR,GAAG,EAAE,CAAC,IAAI/H,EAAEoxB,EAAErpB,GAAG,GAAG,iBAAiB/H,EAAE5B,GAAG4B,EAAEC,WAAW,CAAC,IAAIwyB,EAAEzyB,EAAEg2J,MAAM/nJ,EAAEjO,EAAEshI,OAAO/1H,EAAE+gB,EAAExoB,MAAM1F,GAAGs0B,EAAED,EAAE3Z,KAAKvN,GAAG,GAAG0C,EAAEpP,KAAK2zB,EAAEE,GAAGpG,EAAEA,EAAE9Z,QAAQkgB,EAAE,GAAG,CAAC,CAAC,OAAO,SAASpG,GAAG,IAAIkG,EAAElG,EAAE4uM,UAAU,QAAG,IAAS1oM,EAAE,CAAC,IAAIzqB,EAAEukB,EAAEqmI,MAAMngI,EAAEzqB,EAAE,KAAKukB,EAAEqmI,OAAO,IAAI,KAAK5qJ,IAAIukB,EAAEqmI,MAAM,UAAUrmI,EAAE4uM,SAAS,CAAC,CAAxH,CAA0H1oM,GAAGA,CAAC,CAAC,CAAC,OAAO,SAASlG,EAAEkG,EAAEzqB,GAAGA,EAAEoe,EAAE01M,mBAAkB,EAAGvvM,GAAGA,EAAEsrI,oBAAoB5+I,EAAEsT,EAAEsrI,mBAAmB,IAAIx5J,EAAEo0B,EAAE7zB,UAAUqB,EAAE5B,EAAEkK,MAAMlK,EAAEkK,MAAM,SAASgkB,GAAG,IAAIkG,EAAElG,EAAE6H,KAAK/1B,EAAEkuB,EAAEsI,IAAIxD,EAAE9E,EAAErD,KAAKnqB,KAAK+1B,GAAGz2B,EAAE,IAAI4a,EAAEoY,EAAE,GAAG,GAAG,iBAAiBpY,EAAE,CAAC,IAAI/K,GAAE,IAAKmjB,EAAE,GAAG7lB,GAAE,IAAK6lB,EAAE,GAAGsB,EAAEzkB,GAAG1C,EAAE7F,EAAE0rB,EAAE,GAAG7lB,IAAI7F,EAAE0rB,EAAE,IAAIqB,EAAE3zB,KAAK6zB,WAAW1kB,GAAGvI,IAAI+sB,EAAE1qB,EAAE8qB,GAAGntB,IAAI5G,KAAKk2B,GAAG,SAAS1I,EAAEkG,EAAEzqB,EAAE3J,GAAG,IAAI,GAAG,CAAC,IAAI,KAAKoF,QAAQgvB,IAAI,EAAE,OAAO,IAAIyC,MAAM,MAAMzC,EAAE,IAAI,GAAGlG,GAAG,IAAItsB,EAAEY,EAAE4xB,EAAF5xB,CAAK0rB,GAAG8E,EAAEpxB,EAAEo0B,KAAK3B,EAAEzyB,EAAEq0B,MAAMrb,EAAEhZ,EAAEoyJ,IAAInkJ,EAAEjO,EAAE2yJ,MAAMpnJ,EAAEvL,EAAE+yJ,QAAQrgI,EAAE1yB,EAAEmzJ,QAAQztJ,EAAE1F,EAAE6yJ,aAAa35I,EAAElZ,EAAE0tK,KAAK35I,EAAE/zB,EAAE83D,KAAKhkC,EAAE,IAAImB,KAAKghD,EAAEj9D,IAAIoY,GAAGqB,EAAE,EAAEqB,EAAE2B,WAAWtP,EAAEiL,GAAG0C,EAAEuB,cAAcrB,EAAE,EAAE5C,IAAIqB,IAAIuB,EAAEvB,EAAE,EAAEA,EAAE,EAAEqB,EAAEyB,YAAY,IAAIhB,EAAEjpB,EAAE2C,GAAG,EAAEymB,EAAEnpB,GAAG,EAAEsoB,EAAEnB,GAAG,EAAE20C,EAAE3hE,GAAG,EAAE,OAAOwT,EAAE,IAAI+b,KAAKA,KAAKC,IAAI/O,EAAE6N,EAAEiiD,EAAE3qE,EAAEopB,EAAEb,EAAEwzC,EAAE,GAAGnuD,EAAE0gD,OAAO,MAAM7xD,EAAE,IAAIktB,KAAKA,KAAKC,IAAI/O,EAAE6N,EAAEiiD,EAAE3qE,EAAEopB,EAAEb,EAAEwzC,KAAK9yC,EAAE,IAAIU,KAAK9O,EAAE6N,EAAEiiD,EAAE3qE,EAAEopB,EAAEb,EAAEwzC,GAAGtzC,IAAIQ,EAAEn2B,EAAEm2B,GAAGujC,KAAK/jC,GAAG+C,UAAUvC,EAAE,CAAC,MAAMjI,GAAG,OAAO,IAAI2I,KAAK,GAAG,CAAC,CAAzf,CAA2fzC,EAAExZ,EAAE5a,EAAE2J,GAAGjJ,KAAKq2B,OAAOzvB,IAAG,IAAKA,IAAI5G,KAAK61B,GAAG71B,KAAKg0B,OAAOptB,GAAGivB,IAAIjC,GAAGF,GAAG1zB,KAAKiD,OAAOiX,KAAKla,KAAKk2B,GAAG,IAAIC,KAAK,KAAKxC,EAAE,CAAC,CAAC,MAAM,GAAGzZ,aAAarZ,MAAM,IAAI,IAAIuZ,EAAEF,EAAE/Y,OAAO8zB,EAAE,EAAEA,GAAG7a,EAAE6a,GAAG,EAAE,CAAC3C,EAAE,GAAGpY,EAAE+a,EAAE,GAAG,IAAID,EAAE/rB,EAAEoR,MAAMra,KAAKsyB,GAAG,GAAG0C,EAAEuC,UAAU,CAACv3B,KAAKk2B,GAAGlB,EAAEkB,GAAGl2B,KAAK61B,GAAGb,EAAEa,GAAG71B,KAAKq2B,OAAO,KAAK,CAACpB,IAAI7a,IAAIpa,KAAKk2B,GAAG,IAAIC,KAAK,IAAI,MAAMj1B,EAAEnB,KAAKC,KAAKwtB,EAAE,CAAC,CAAC,CAAhtHkG,mBCAnF,IAuCIpiB,EAvCa+b,EAAQ,KAuCdiwE,CAtCKjwE,EAAQ,OAwCxB3uB,EAAOC,QAAU2S,kBCzCjB,IAAI+tE,EAAWhyD,EAAQ,MACnB8xD,EAAc9xD,EAAQ,MACtBnb,EAAUmb,EAAQ,MAClBupB,EAAUvpB,EAAQ,MAClBq0E,EAAWr0E,EAAQ,MACnBiyD,EAAQjyD,EAAQ,KAiCpB3uB,EAAOC,QAtBP,SAAiByV,EAAQoC,EAAMirF,GAO7B,IAJA,IAAIvxF,GAAS,EACT/O,GAHJqV,EAAO6oE,EAAS7oE,EAAMpC,IAGJjT,OACd8P,GAAS,IAEJf,EAAQ/O,GAAQ,CACvB,IAAI2D,EAAMw6E,EAAM9oE,EAAKtG,IACrB,KAAMe,EAAmB,MAAVmD,GAAkBqtF,EAAQrtF,EAAQtP,IAC/C,MAEFsP,EAASA,EAAOtP,EAClB,CACA,OAAImM,KAAYf,GAAS/O,EAChB8P,KAET9P,EAAmB,MAAViT,EAAiB,EAAIA,EAAOjT,SAClBugG,EAASvgG,IAAWy1C,EAAQ9xC,EAAK3D,KACjD+Q,EAAQkC,IAAW+qE,EAAY/qE,GACpC,kBCpCA,IAAI4hF,EAAc3oE,EAAQ,MACtB0oE,EAAsB1oE,EAAQ,MAC9BgM,EAAWhM,EAAQ,MACnBnb,EAAUmb,EAAQ,MAClB4oE,EAAW5oE,EAAQ,MA0BvB3uB,EAAOC,QAjBP,SAAsBC,GAGpB,MAAoB,mBAATA,EACFA,EAEI,MAATA,EACKy6B,EAEW,iBAATz6B,EACFsT,EAAQtT,GACXm3F,EAAoBn3F,EAAM,GAAIA,EAAM,IACpCo3F,EAAYp3F,GAEXq3F,EAASr3F,EAClB,kBC5BA,IAAI0rF,EAAej9D,EAAQ,MACvBu8D,EAAav8D,EAAQ,MACrBg9D,EAAiBh9D,EAAQ,KAe7B3uB,EAAOC,QANP,SAAuB2U,GACrB,OAAOs2E,EAAWt2E,GACd+2E,EAAe/2E,GACfg3E,EAAah3E,EACnB,kBCfA,IAAI4sE,EAAW7yD,EAAQ,MAmCvB3uB,EAAOC,QAPP,SAAmBC,GACjB,IAAIqS,EAASivE,EAASthF,GAClB8oG,EAAYz2F,EAAS,EAEzB,OAAOA,IAAWA,EAAUy2F,EAAYz2F,EAASy2F,EAAYz2F,EAAU,CACzE,kBCjCA,IAAI4jC,EAAaxnB,EAAQ,MACrBynB,EAAeznB,EAAQ,MAoC3B3uB,EAAOC,QALP,SAAkBC,GAChB,MAAuB,iBAATA,GACXk2C,EAAal2C,IA9BF,mBA8BYi2C,EAAWj2C,EACvC,YClCA,IAGIwlF,EAAW,mBAoBf1lF,EAAOC,QAVP,SAAiBC,EAAOuC,GACtB,IAAI6F,SAAcpI,EAGlB,SAFAuC,EAAmB,MAAVA,EAfY,iBAewBA,KAGlC,UAAR6F,GACU,UAARA,GAAoBo9E,EAASpnE,KAAKpe,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQuC,CACjD,oBCtBoEzC,EAAOC,QAAkJ,WAAW,aAAa,OAAO,SAAS6uB,EAAEkG,GAAGA,EAAE7zB,UAAU0zJ,QAAQ,SAAS/lI,GAAG,IAAIkG,EAAE1zB,KAAK6zB,UAAUC,WAAW,EAAE5yB,EAAElB,KAAK42B,GAAG3tB,GAAG/H,EAAEwyB,EAAExyB,EAAE,EAAEA,GAAGwyB,EAAE,OAAO1zB,KAAKs3B,SAAS1D,EAAEpG,GAAGvkB,EAAEjJ,KAAKo4B,SAASnvB,EAAE,OAAOusB,IAAIhI,EAAE,MAAM,CAAC,CAAC,CAApVkG,mBCAnF,IAAIgiE,EAAcroE,EAAQ,MACtBmpE,EAAenpE,EAAQ,MACvBopE,EAA0BppE,EAAQ,MAmBtC3uB,EAAOC,QAVP,SAAqBiN,GACnB,IAAI+pF,EAAYa,EAAa5qF,GAC7B,OAAwB,GAApB+pF,EAAUx0F,QAAew0F,EAAU,GAAG,GACjCc,EAAwBd,EAAU,GAAG,GAAIA,EAAU,GAAG,IAExD,SAASvhF,GACd,OAAOA,IAAWxI,GAAU8pF,EAAYthF,EAAQxI,EAAQ+pF,EAC1D,CACF,kBCnBA,IAAI7gE,EAAazH,EAAQ,MAezB3uB,EAAOC,QAJP,SAAqBmG,GACnB,OAAOgwB,EAAW90B,KAAM8E,GAAK+N,IAAI/N,EACnC,kBCbA,IAAIguF,EAAiBzlE,EAAQ,MACzBojE,EAAapjE,EAAQ,MACrBpnB,EAAOonB,EAAQ,MAanB3uB,EAAOC,QAJP,SAAoByV,GAClB,OAAO0+E,EAAe1+E,EAAQnO,EAAMwqF,EACtC,kBCbA,IAAI3hF,EAAWue,EAAQ,MAcvB3uB,EAAOC,QAJP,SAA4BC,GAC1B,OAAOA,IAAUA,IAAUkQ,EAASlQ,EACtC,kBCZA,IAAImpF,EAAc16D,EAAQ,MACtBm0E,EAAYn0E,EAAQ,MAMpBzS,EAHc5U,OAAOnG,UAGc+a,qBAGnC+wE,EAAmB3lF,OAAOiX,sBAS1BwzE,EAAc9E,EAA+B,SAASv3E,GACxD,OAAc,MAAVA,EACK,IAETA,EAASpO,OAAOoO,GACT2zE,EAAY4D,EAAiBv3E,IAAS,SAAS8I,GACpD,OAAOtC,EAAqB7a,KAAKqU,EAAQ8I,EAC3C,IACF,EARqCskF,EAUrC9iG,EAAOC,QAAU8xF,YC5BjB,IAAIhF,EAAajqF,KAAK6K,KAClByxC,EAAYt8C,KAAKwhB,IAyBrBtkB,EAAOC,QAZP,SAAmBkkB,EAAOC,EAAKs9D,EAAMD,GAKnC,IAJA,IAAIjwE,GAAS,EACT/O,EAAS28C,EAAU2tC,GAAY3oE,EAAMD,IAAUu9D,GAAQ,IAAK,GAC5DnvE,EAASpQ,MAAMM,GAEZA,KACL8P,EAAOkvE,EAAYh/E,IAAW+O,GAAS2S,EACvCA,GAASu9D,EAEX,OAAOnvE,CACT,YCDAvS,EAAOC,QAJP,SAAeC,GACb,OAAgB,MAATA,CACT,kBCtBA,IAAIwkB,EAAWiK,EAAQ,MA+BvB3uB,EAAOC,QAnBP,SAAsBkT,EAAO4hB,EAAUinB,GAIrC,IAHA,IAAIxqC,GAAS,EACT/O,EAAS0Q,EAAM1Q,SAEV+O,EAAQ/O,GAAQ,CACvB,IAAIvC,EAAQiT,EAAM3B,GACd+1B,EAAUxS,EAAS70B,GAEvB,GAAe,MAAXqnC,SAAiCh5B,IAAb8kF,EACf9rD,IAAYA,IAAY7iB,EAAS6iB,GAClCyU,EAAWzU,EAAS8rD,IAE1B,IAAIA,EAAW9rD,EACXh1B,EAASrS,CAEjB,CACA,OAAOqS,CACT,kBC7BA,IAGIvO,EAHO2qB,EAAQ,MAGD3qB,OAElBhE,EAAOC,QAAU+D,kBCLjB,IAAImyC,EAAaxnB,EAAQ,MACrBynB,EAAeznB,EAAQ,MA2B3B3uB,EAAOC,QALP,SAAkBC,GAChB,MAAuB,iBAATA,GACXk2C,EAAal2C,IArBF,mBAqBYi2C,EAAWj2C,EACvC,kBC1BA,IAAIk1F,EAAczmE,EAAQ,MAkC1B3uB,EAAOC,QAJP,SAAiBC,EAAOC,GACtB,OAAOi1F,EAAYl1F,EAAOC,EAC5B,kBChCA,IAAIomG,EAAW53E,EAAQ,MACnBve,EAAWue,EAAQ,MAmEvB3uB,EAAOC,QAlBP,SAAkBu5C,EAAMw5C,EAAMxuF,GAC5B,IAAIsiG,GAAU,EACVxI,GAAW,EAEf,GAAmB,mBAAR9kD,EACT,MAAM,IAAItpC,UAnDQ,uBAyDpB,OAJIE,EAAS5L,KACXsiG,EAAU,YAAatiG,IAAYA,EAAQsiG,QAAUA,EACrDxI,EAAW,aAAc95F,IAAYA,EAAQ85F,SAAWA,GAEnDiI,EAAS/sD,EAAMw5C,EAAM,CAC1B,QAAW8T,EACX,QAAW9T,EACX,SAAYsL,GAEhB,kBClEA,IAAIriD,EAAettB,EAAQ,MAMvB8iB,EAHatvC,MAAMhB,UAGCswC,OA4BxBzxC,EAAOC,QAjBP,SAAyBmG,GACvB,IAAIyX,EAAOvc,KAAKm2C,SACZjmC,EAAQyqC,EAAap+B,EAAMzX,GAE/B,QAAIoL,EAAQ,KAIRA,GADYqM,EAAKpb,OAAS,EAE5Bob,EAAK21E,MAEL/hD,EAAOpwC,KAAKwc,EAAMrM,EAAO,KAEzBlQ,KAAKqiB,MACA,EACT,kBChCA,IAAI3f,EAAS2qB,EAAQ,MACjB+xD,EAAa/xD,EAAQ,MACrBqpB,EAAKrpB,EAAQ,MACbknE,EAAclnE,EAAQ,MACtBw8D,EAAax8D,EAAQ,MACrB28D,EAAa38D,EAAQ,MAqBrBy/D,EAAcpqF,EAASA,EAAO7C,eAAYoN,EAC1C8/E,EAAgBD,EAAcA,EAAY/rE,aAAU9T,EAoFxDvO,EAAOC,QAjEP,SAAoByV,EAAQvV,EAAO6T,EAAKi9E,EAASC,EAAYmE,EAAWzpF,GACtE,OAAQoI,GACN,IAzBc,oBA0BZ,GAAK0B,EAAO28E,YAAclyF,EAAMkyF,YAC3B38E,EAAO08E,YAAcjyF,EAAMiyF,WAC9B,OAAO,EAET18E,EAASA,EAAOy8E,OAChBhyF,EAAQA,EAAMgyF,OAEhB,IAlCiB,uBAmCf,QAAKz8E,EAAO28E,YAAclyF,EAAMkyF,aAC3BgD,EAAU,IAAI3U,EAAWhrE,GAAS,IAAIgrE,EAAWvgF,KAKxD,IAnDU,mBAoDV,IAnDU,gBAoDV,IAjDY,kBAoDV,OAAO63C,GAAItiC,GAASvV,GAEtB,IAxDW,iBAyDT,OAAOuV,EAAOnG,MAAQpP,EAAMoP,MAAQmG,EAAOo7D,SAAW3wE,EAAM2wE,QAE9D,IAxDY,kBAyDZ,IAvDY,kBA2DV,OAAOp7D,GAAWvV,EAAQ,GAE5B,IAjES,eAkEP,IAAIwK,EAAUwgF,EAEhB,IAjES,eAkEP,IAAI2K,EA5EiB,EA4EL7E,EAGhB,GAFAtmF,IAAYA,EAAU2gF,GAElB51E,EAAOiO,MAAQxjB,EAAMwjB,OAASmyE,EAChC,OAAO,EAGT,IAAIpD,EAAU9mF,EAAMkD,IAAI4G,GACxB,GAAIg9E,EACF,OAAOA,GAAWvyF,EAEpB8wF,GAtFuB,EAyFvBrlF,EAAMX,IAAIyK,EAAQvV,GAClB,IAAIoS,EAASsjF,EAAYlrF,EAAQ+K,GAAS/K,EAAQxK,GAAQ8wF,EAASC,EAAYmE,EAAWzpF,GAE1F,OADAA,EAAc,OAAE8J,GACTnD,EAET,IAnFY,kBAoFV,GAAI87E,EACF,OAAOA,EAAchtF,KAAKqU,IAAW24E,EAAchtF,KAAKlB,GAG9D,OAAO,CACT,kBC7GA,IAAIg4C,EAAexpB,EAAQ,MACvBspB,EAActpB,EAAQ,MACtBpnB,EAAOonB,EAAQ,MAsBnB3uB,EAAOC,QAbP,SAAoB4+F,GAClB,OAAO,SAAS7hD,EAAYzF,EAAWjmC,GACrC,IAAI8sF,EAAW92F,OAAO01C,GACtB,IAAK/E,EAAY+E,GAAa,CAC5B,IAAIjoB,EAAWojB,EAAaZ,EAAW,GACvCyF,EAAaz1C,EAAKy1C,GAClBzF,EAAY,SAASnxC,GAAO,OAAO2uB,EAASqpE,EAASh4F,GAAMA,EAAKg4F,EAAW,CAC7E,CACA,IAAI5sF,EAAQqtF,EAAc7hD,EAAYzF,EAAWjmC,GACjD,OAAOE,GAAS,EAAI4sF,EAASrpE,EAAWioB,EAAWxrC,GAASA,QAASjD,CACvE,CACF,ICrBI+kB,EAA2B,CAAC,EAGhC,SAAS3yB,EAAoB4yB,GAE5B,IAAIC,EAAeF,EAAyBC,GAC5C,QAAqBhlB,IAAjBilB,EACH,OAAOA,EAAavzB,QAGrB,IAAID,EAASszB,EAAyBC,GAAY,CACjDxO,GAAIwO,EACJ+qM,QAAQ,EACRr+N,QAAS,CAAC,GAUX,OANAO,EAAoB+yB,GAAUlyB,KAAKrB,EAAOC,QAASD,EAAQA,EAAOC,QAASU,GAG3EX,EAAOs+N,QAAS,EAGTt+N,EAAOC,OACf,CAGAU,EAAoB41B,EAAI/1B,EC3BxBG,EAAoB4J,EAAKvK,IACxB,IAAIyzB,EAASzzB,GAAUA,EAAO0zB,WAC7B,IAAO1zB,EAAiB,QACxB,IAAM,EAEP,OADAW,EAAoBuH,EAAEurB,EAAQ,CAAEjY,EAAGiY,IAC5BA,CAAM,QCNd,IACI8qM,EADAC,EAAWl3N,OAAOmN,eAAkB1Q,GAASuD,OAAOmN,eAAe1Q,GAASA,GAASA,EAAa,UAQtGpD,EAAoBq0B,EAAI,SAAS90B,EAAOoF,GAEvC,GADU,EAAPA,IAAUpF,EAAQoB,KAAKpB,IAChB,EAAPoF,EAAU,OAAOpF,EACpB,GAAoB,kBAAVA,GAAsBA,EAAO,CACtC,GAAW,EAAPoF,GAAapF,EAAMwzB,WAAY,OAAOxzB,EAC1C,GAAW,GAAPoF,GAAoC,oBAAfpF,EAAMqB,KAAqB,OAAOrB,CAC5D,CACA,IAAIu+N,EAAKn3N,OAAO4D,OAAO,MACvBvK,EAAoBC,EAAE69N,GACtB,IAAIC,EAAM,CAAC,EACXH,EAAiBA,GAAkB,CAAC,KAAMC,EAAS,CAAC,GAAIA,EAAS,IAAKA,EAASA,IAC/E,IAAI,IAAIj3L,EAAiB,EAAPjiC,GAAYpF,EAAyB,iBAAXqnC,KAAyBg3L,EAAev4N,QAAQuhC,GAAUA,EAAUi3L,EAASj3L,GACxHjgC,OAAOia,oBAAoBgmB,GAASnlC,SAASgE,GAASs4N,EAAIt4N,GAAO,IAAOlG,EAAMkG,KAI/E,OAFAs4N,EAAa,QAAI,IAAM,EACvB/9N,EAAoBuH,EAAEu2N,EAAIC,GACnBD,CACR,MCxBA99N,EAAoBuH,EAAI,CAACjI,EAAS0zB,KACjC,IAAI,IAAIvtB,KAAOutB,EACXhzB,EAAoBizB,EAAED,EAAYvtB,KAASzF,EAAoBizB,EAAE3zB,EAASmG,IAC5EkB,OAAOgN,eAAerU,EAASmG,EAAK,CAAEwP,YAAY,EAAM9G,IAAK6kB,EAAWvtB,IAE1E,ECNDzF,EAAoB8P,EAAI,CAAC,EAGzB9P,EAAoBmuB,EAAK6vM,GACjBr0N,QAAQjE,IAAIiB,OAAOC,KAAK5G,EAAoB8P,GAAG8vB,QAAO,CAACq+L,EAAUx4N,KACvEzF,EAAoB8P,EAAErK,GAAKu4N,EAASC,GAC7BA,IACL,KCNJj+N,EAAoBu0B,EAAKypM,GAEjB,aAAeA,EAAU,IAAM,CAAC,IAAM,WAAW,IAAM,WAAW,IAAM,YAAYA,GAAW,YCFvGh+N,EAAoBk+N,SAAYF,IAEf,ECHjBh+N,EAAoBu2B,EAAI,WACvB,GAA0B,kBAAfnb,WAAyB,OAAOA,WAC3C,IACC,OAAOza,MAAQ,IAAImH,SAAS,cAAb,EAChB,CAAE,MAAOqmB,GACR,GAAsB,kBAAXjoB,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBlG,EAAoBizB,EAAI,CAAC7vB,EAAKpC,IAAU2F,OAAOnG,UAAUyD,eAAevD,KAAK0C,EAAKpC,SCAlF,IAAIm9N,EAAa,CAAC,EACdC,EAAoB,kBAExBp+N,EAAoByC,EAAI,CAACI,EAAK+iB,EAAMngB,EAAKu4N,KACxC,GAAGG,EAAWt7N,GAAQs7N,EAAWt7N,GAAKL,KAAKojB,OAA3C,CACA,IAAIwmI,EAAQiyE,EACZ,QAAWzwN,IAARnI,EAEF,IADA,IAAI2C,EAAUH,SAASI,qBAAqB,UACpCxG,EAAI,EAAGA,EAAIuG,EAAQtG,OAAQD,IAAK,CACvC,IAAIyyB,EAAIlsB,EAAQvG,GAChB,GAAGyyB,EAAEkvG,aAAa,QAAU3gI,GAAOyxB,EAAEkvG,aAAa,iBAAmB46F,EAAoB34N,EAAK,CAAE2mJ,EAAS93H,EAAG,KAAO,CACpH,CAEG83H,IACHiyE,GAAa,GACbjyE,EAASnkJ,SAASf,cAAc,WAEzBknM,QAAU,QACjBhiD,EAAO/T,QAAU,IACbr4I,EAAoBk7M,IACvB9uD,EAAOtrG,aAAa,QAAS9gD,EAAoBk7M,IAElD9uD,EAAOtrG,aAAa,eAAgBs9K,EAAoB34N,GAExD2mJ,EAAOzhJ,IAAM9H,GAEds7N,EAAWt7N,GAAO,CAAC+iB,GACnB,IAAI04M,EAAmB,CAAC/gM,EAAMw8B,KAE7BqyF,EAAOlvG,QAAUkvG,EAAOpvG,OAAS,KACjC0jB,aAAa23E,GACb,IAAIkmF,EAAUJ,EAAWt7N,GAIzB,UAHOs7N,EAAWt7N,GAClBupJ,EAAOhlJ,YAAcglJ,EAAOhlJ,WAAWkB,YAAY8jJ,GACnDmyE,GAAWA,EAAQ98N,SAASsN,GAAQA,EAAGgrD,KACpCx8B,EAAM,OAAOA,EAAKw8B,EAAM,EAExBs+E,EAAUxqH,WAAWywM,EAAiBpwN,KAAK,UAAMN,EAAW,CAAEjG,KAAM,UAAW+D,OAAQ0gJ,IAAW,MACtGA,EAAOlvG,QAAUohL,EAAiBpwN,KAAK,KAAMk+I,EAAOlvG,SACpDkvG,EAAOpvG,OAASshL,EAAiBpwN,KAAK,KAAMk+I,EAAOpvG,QACnDqhL,GAAcp2N,SAASm1B,KAAKr0B,YAAYqjJ,EApCkB,CAoCX,MCvChDpsJ,EAAoBC,EAAKX,IACH,qBAAX+D,QAA0BA,OAAO6vB,aAC1CvsB,OAAOgN,eAAerU,EAAS+D,OAAO6vB,YAAa,CAAE3zB,MAAO,WAE7DoH,OAAOgN,eAAerU,EAAS,aAAc,CAAEC,OAAO,GAAO,ECL9DS,EAAoBw+N,IAAOn/N,IAC1BA,EAAO4wF,MAAQ,GACV5wF,EAAOylD,WAAUzlD,EAAOylD,SAAW,IACjCzlD,GCHRW,EAAoBgoB,EAAI,UCKxB,IAAIy2M,EAAkB,CACrB,IAAK,GAGNz+N,EAAoB8P,EAAE0O,EAAI,CAACw/M,EAASC,KAElC,IAAIS,EAAqB1+N,EAAoBizB,EAAEwrM,EAAiBT,GAAWS,EAAgBT,QAAWpwN,EACtG,GAA0B,IAAvB8wN,EAGF,GAAGA,EACFT,EAASz7N,KAAKk8N,EAAmB,QAC3B,CAGL,IAAIl0N,EAAU,IAAIb,SAAQ,CAACM,EAAS6lB,IAAY4uM,EAAqBD,EAAgBT,GAAW,CAAC/zN,EAAS6lB,KAC1GmuM,EAASz7N,KAAKk8N,EAAmB,GAAKl0N,GAGtC,IAAI3H,EAAM7C,EAAoBgoB,EAAIhoB,EAAoBu0B,EAAEypM,GAEpDxyN,EAAQ,IAAInH,MAgBhBrE,EAAoByC,EAAEI,GAfFk3D,IACnB,GAAG/5D,EAAoBizB,EAAEwrM,EAAiBT,KAEf,KAD1BU,EAAqBD,EAAgBT,MACRS,EAAgBT,QAAWpwN,GACrD8wN,GAAoB,CACtB,IAAIC,EAAY5kK,IAAyB,SAAfA,EAAMpyD,KAAkB,UAAYoyD,EAAMpyD,MAChEi3N,EAAU7kK,GAASA,EAAMruD,QAAUquD,EAAMruD,OAAOf,IACpDa,EAAM2kE,QAAU,iBAAmB6tJ,EAAU,cAAgBW,EAAY,KAAOC,EAAU,IAC1FpzN,EAAMoD,KAAO,iBACbpD,EAAM7D,KAAOg3N,EACbnzN,EAAMqzN,QAAUD,EAChBF,EAAmB,GAAGlzN,EACvB,CACD,GAEwC,SAAWwyN,EAASA,EAE/D,CACD,EAcF,IAAIc,EAAuB,CAACC,EAA4B7hN,KACvD,IAKI0V,EAAUorM,EALVgB,EAAW9hN,EAAK,GAChB+hN,EAAc/hN,EAAK,GACnBgiN,EAAUhiN,EAAK,GAGIrb,EAAI,EAC3B,GAAGm9N,EAASjtN,MAAMqS,GAAgC,IAAxBq6M,EAAgBr6M,KAAa,CACtD,IAAIwO,KAAYqsM,EACZj/N,EAAoBizB,EAAEgsM,EAAarsM,KACrC5yB,EAAoB41B,EAAEhD,GAAYqsM,EAAYrsM,IAGhD,GAAGssM,EAAsBA,EAAQl/N,EAClC,CAEA,IADG++N,GAA4BA,EAA2B7hN,GACrDrb,EAAIm9N,EAASl9N,OAAQD,IACzBm8N,EAAUgB,EAASn9N,GAChB7B,EAAoBizB,EAAEwrM,EAAiBT,IAAYS,EAAgBT,IACrES,EAAgBT,GAAS,KAE1BS,EAAgBT,GAAW,CAC5B,EAIGmB,EAAqBz/N,KAAiC,2BAAIA,KAAiC,4BAAK,GACpGy/N,EAAmB19N,QAAQq9N,EAAqB5wN,KAAK,KAAM,IAC3DixN,EAAmB38N,KAAOs8N,EAAqB5wN,KAAK,KAAMixN,EAAmB38N,KAAK0L,KAAKixN,mzBChF3EC,EAAAA,sQAAAA,EAAAA,IAAAA,EAsBX,KAdC,UAOAA,EAAA,YAMAA,EAAA,kBAsKF,MAAMC,EAAoB,WAySV,SAAAC,EAAU//N,EAAY4wE,GACpC,IAAc,IAAV5wE,GAA6B,OAAVA,GAAmC,qBAAVA,EAC9C,MAAM,IAAI8E,MAAM8rE,EAEpB,CAEgB,SAAAovJ,EAAQzzH,EAAW37B,GACjC,IAAK27B,EAAM,CAEc,qBAAZ/vE,SAAyBA,QAAQqY,KAAK+7B,GAEjD,IAME,MAAM,IAAI9rE,MAAM8rE,EAEjB,CAAC,MAAOhiD,GAAI,CACd,CACH,CASA,SAASqxM,EAAgB3xN,EAAoBgD,GAC3C,MAAO,CACL4uN,IAAK5xN,EAAS7C,MACdvF,IAAKoI,EAASpI,IACdi6N,IAAK7uN,EAET,CAKM,SAAU8uN,EACd/4L,EACAn7B,EACAT,EACAvF,GAcA,YAfA,IAAAuF,IAAAA,EAAa,MAGD40N,EAAA,CACVC,SAA6B,kBAAZj5L,EAAuBA,EAAUA,EAAQi5L,SAC1DrmK,OAAQ,GACRsmK,KAAM,IACY,kBAAPr0N,EAAkBs0N,EAAUt0N,GAAMA,EAAE,CAC/CT,QAKAvF,IAAMgG,GAAOA,EAAgBhG,KAAQA,GAjChCtD,KAAKmiB,SAAS3V,SAAS,IAAIgqI,OAAO,EAAG,IAoC9C,CAKgB,SAAAqnF,EAAUp0E,GAIV,IAJW,SACzBi0E,EAAW,IAAG,OACdrmK,EAAS,GAAE,KACXsmK,EAAO,IACOl0E,EAKd,OAJIpyF,GAAqB,MAAXA,IACZqmK,GAAiC,MAArBrmK,EAAOt2C,OAAO,GAAas2C,EAAS,IAAMA,GACpDsmK,GAAiB,MAATA,IACVD,GAA+B,MAAnBC,EAAK58M,OAAO,GAAa48M,EAAO,IAAMA,GAC7CD,CACT,CAKM,SAAUE,EAAU5oN,GACxB,IAAI8oN,EAA4B,CAAC,EAEjC,GAAI9oN,EAAM,CACR,IAAI+oN,EAAY/oN,EAAK9R,QAAQ,KACzB66N,GAAa,IACfD,EAAWH,KAAO3oN,EAAKwhI,OAAOunF,GAC9B/oN,EAAOA,EAAKwhI,OAAO,EAAGunF,IAGxB,IAAIC,EAAchpN,EAAK9R,QAAQ,KAC3B86N,GAAe,IACjBF,EAAWzmK,OAASriD,EAAKwhI,OAAOwnF,GAChChpN,EAAOA,EAAKwhI,OAAO,EAAGwnF,IAGpBhpN,IACF8oN,EAAWJ,SAAW1oN,EAEzB,CAED,OAAO8oN,CACT,CASA,SAASG,EACPC,EACAC,EACAC,EACA18N,QAAA,IAAAA,IAAAA,EAA6B,CAAC,GAE9B,IAAI,OAAEqC,EAAS+B,SAASq0D,YAAY,SAAEkkK,GAAW,GAAU38N,EACvD48N,EAAgBv6N,EAAOw6N,QACvB51J,EAASs0J,EAAOuB,IAChB/hK,EAA4B,KAE5B/tD,EAAQ+vN,IASZ,SAASA,IAEP,OADYH,EAAcz1N,OAAS,CAAE00N,IAAK,OAC7BA,GACf,CAEA,SAASmB,IACP/1J,EAASs0J,EAAOuB,IAChB,IAAI19G,EAAY29G,IACZn2G,EAAqB,MAAbxH,EAAoB,KAAOA,EAAYpyG,EACnDA,EAAQoyG,EACJrkD,GACFA,EAAS,CAAEkM,SAAQj9D,SAAU6yN,EAAQ7yN,SAAU48G,SAEnD,CA+CA,SAASq2G,EAAUr1N,GAIjB,IAAIg9C,EACyB,SAA3BviD,EAAO2H,SAASkwC,OACZ73C,EAAO2H,SAASkwC,OAChB73C,EAAO2H,SAAS/K,KAElBA,EAAqB,kBAAP2I,EAAkBA,EAAKu0N,EAAWv0N,GASpD,OALA3I,EAAOA,EAAKuR,QAAQ,KAAM,OAC1BirN,EACE72K,EACsE,sEAAA3lD,GAEjE,IAAI66C,IAAI76C,EAAM2lD,EACvB,CApFa,MAAT53C,IACFA,EAAQ,EACR4vN,EAAcM,aAAYnB,EAAM,GAAAa,EAAcz1N,MAAO,CAAA00N,IAAK7uN,IAAS,KAoFrE,IAAI6vN,EAAmB,CACrB,UAAI51J,GACF,OAAOA,GAET,YAAIj9D,GACF,OAAOwyN,EAAYn6N,EAAQu6N,IAE7BO,MAAAA,CAAOjyN,GACL,GAAI6vD,EACF,MAAM,IAAIv6D,MAAM,8CAKlB,OAHA6B,EAAOgD,iBAAiBm2N,EAAmBwB,GAC3CjiK,EAAW7vD,EAEJ,KACL7I,EAAOukD,oBAAoB40K,EAAmBwB,GAC9CjiK,EAAW,IAAI,GAGnB0hK,WAAW70N,GACF60N,EAAWp6N,EAAQuF,GAE5Bq1N,YACAG,cAAAA,CAAex1N,GAEb,IAAI5I,EAAMi+N,EAAUr1N,GACpB,MAAO,CACLo0N,SAAUh9N,EAAIg9N,SACdrmK,OAAQ32D,EAAI22D,OACZsmK,KAAMj9N,EAAIi9N,OAGdt9N,KAlGF,SAAciJ,EAAQT,GACpB8/D,EAASs0J,EAAO8B,KAChB,IAAIrzN,EAAW8xN,EAAee,EAAQ7yN,SAAUpC,EAAIT,GAChDu1N,GAAkBA,EAAiB1yN,EAAUpC,GAEjDoF,EAAQ+vN,IAAa,EACrB,IAAIO,EAAe3B,EAAgB3xN,EAAUgD,GACzChO,EAAM69N,EAAQJ,WAAWzyN,GAG7B,IACE4yN,EAAcW,UAAUD,EAAc,GAAIt+N,GAC1C,MAAO2I,GAKP,GAAIA,aAAiB61N,cAA+B,mBAAf71N,EAAMoD,KACzC,MAAMpD,EAIRtF,EAAO2H,SAAS9D,OAAOlH,EACxB,CAEG29N,GAAY5hK,GACdA,EAAS,CAAEkM,SAAQj9D,SAAU6yN,EAAQ7yN,SAAU48G,MAAO,GAE1D,EAuEEp2G,QArEF,SAAiB5I,EAAQT,GACvB8/D,EAASs0J,EAAOkC,QAChB,IAAIzzN,EAAW8xN,EAAee,EAAQ7yN,SAAUpC,EAAIT,GAChDu1N,GAAkBA,EAAiB1yN,EAAUpC,GAEjDoF,EAAQ+vN,IACR,IAAIO,EAAe3B,EAAgB3xN,EAAUgD,GACzChO,EAAM69N,EAAQJ,WAAWzyN,GAC7B4yN,EAAcM,aAAaI,EAAc,GAAIt+N,GAEzC29N,GAAY5hK,GACdA,EAAS,CAAEkM,SAAQj9D,SAAU6yN,EAAQ7yN,SAAU48G,MAAO,GAE1D,EAyDE82G,GAAG33N,GACM62N,EAAcc,GAAG33N,IAI5B,OAAO82N,CACT,CC7tBA,IAAYc,EAAAA,KAAAA,IAAAA,EAKX,KAJC,YACAA,EAAA,oBACAA,EAAA,oBACAA,EAAA,cA2RgC,IAAI/lL,IAAuB,CAC3D,OACA,gBACA,OACA,KACA,QACA,aAoNI,SAAUgmL,EAGdC,EACAC,EACAC,GAEA,YAFQ,IAARA,IAAAA,EAAW,KAEJC,EAAgBH,EAAQC,EAAaC,GAAU,EACxD,CAEM,SAAUC,EAGdH,EACAC,EACAC,EACAE,GAEA,IAGIjC,EAAWkC,GAFU,kBAAhBJ,EAA2B5B,EAAU4B,GAAeA,GAEvB9B,UAAY,IAAK+B,GAEvD,GAAgB,MAAZ/B,EACF,OAAO,KAGT,IAAImC,EAAWC,EAAcP,IAmM/B,SAA2BM,GACzBA,EAASxsM,MAAK,CAAC3a,EAAGC,IAChBD,EAAE0uJ,QAAUzuJ,EAAEyuJ,MACVzuJ,EAAEyuJ,MAAQ1uJ,EAAE0uJ,MAyCpB,SAAwB1uJ,EAAaC,GACnC,IAAIonN,EACFrnN,EAAE/Y,SAAWgZ,EAAEhZ,QAAU+Y,EAAElV,MAAM,GAAI,GAAGqM,OAAM,CAACpI,EAAG/H,IAAM+H,IAAMkR,EAAEjZ,KAElE,OAAOqgO,EAKHrnN,EAAEA,EAAE/Y,OAAS,GAAKgZ,EAAEA,EAAEhZ,OAAS,GAG/B,CACN,CArDQqgO,CACEtnN,EAAEunN,WAAWp0N,KAAK86C,GAASA,EAAKu5K,gBAChCvnN,EAAEsnN,WAAWp0N,KAAK86C,GAASA,EAAKu5K,kBAG1C,CA3MEC,CAAkBN,GAElB,IAAI30H,EAAU,KACd,IAAK,IAAIxrG,EAAI,EAAc,MAAXwrG,GAAmBxrG,EAAImgO,EAASlgO,SAAUD,EAAG,CAO3D,IAAI0gO,EAAUC,EAAW3C,GACzBxyH,EAAUo1H,EACRT,EAASngO,GACT0gO,EACAT,EAEH,CAED,OAAOz0H,CACT,CAyCA,SAAS40H,EAGPP,EACAM,EACAU,EACAC,QAF2C,IAA3CX,IAAAA,EAA2C,SAC3C,IAAAU,IAAAA,EAA4C,SAClC,IAAVC,IAAAA,EAAa,IAEb,IAAIC,EAAeA,CACjBC,EACAhyN,EACAiyN,KAEA,IAAIh6K,EAAmC,CACrCg6K,kBACmBl1N,IAAjBk1N,EAA6BD,EAAM1rN,MAAQ,GAAK2rN,EAClDC,eAAuC,IAAxBF,EAAME,cACrBV,cAAexxN,EACfgyN,SAGE/5K,EAAKg6K,aAAa7vH,WAAW,OAC/BqsH,EACEx2K,EAAKg6K,aAAa7vH,WAAW0vH,GAC7B,wBAAwB75K,EAAKg6K,aAA7B,wBACMH,EADN,4GAKF75K,EAAKg6K,aAAeh6K,EAAKg6K,aAAan9N,MAAMg9N,EAAW7gO,SAGzD,IAAIqV,EAAO6rN,EAAU,CAACL,EAAY75K,EAAKg6K,eACnCV,EAAaM,EAAYv9N,OAAO2jD,GAKhC+5K,EAAM/9K,UAAY+9K,EAAM/9K,SAAShjD,OAAS,IAC5Cw9N,GAGkB,IAAhBuD,EAAMhyN,MACN,4FACuCsG,EAAI,MAE7C8qN,EAAcY,EAAM/9K,SAAUk9K,EAAUI,EAAYjrN,KAKpC,MAAd0rN,EAAM1rN,MAAiB0rN,EAAMhyN,QAIjCmxN,EAASx/N,KAAK,CACZ2U,OACAoyJ,MAAO05D,EAAa9rN,EAAM0rN,EAAMhyN,OAChCuxN,cACA,EAaJ,OAXAV,EAAOjgO,SAAQ,CAACohO,EAAOhyN,KAAS,IAAAqyN,EAE9B,GAAmB,KAAfL,EAAM1rN,MAA0B,OAAX+rN,EAACL,EAAM1rN,OAAN+rN,EAAYpyN,SAAS,KAG7C,IAAK,IAAIqyN,KAAYC,EAAwBP,EAAM1rN,MACjDyrN,EAAaC,EAAOhyN,EAAOsyN,QAH7BP,EAAaC,EAAOhyN,EAKrB,IAGImxN,CACT,CAgBA,SAASoB,EAAwBjsN,GAC/B,IAAIksN,EAAWlsN,EAAK2C,MAAM,KAC1B,GAAwB,IAApBupN,EAASvhO,OAAc,MAAO,GAElC,IAAKghB,KAAUirF,GAAQs1H,EAGnBC,EAAaxgN,EAAMmtF,SAAS,KAE5B6S,EAAWhgG,EAAMzO,QAAQ,MAAO,IAEpC,GAAoB,IAAhB05F,EAAKjsG,OAGP,OAAOwhO,EAAa,CAACxgH,EAAU,IAAM,CAACA,GAGxC,IAAIygH,EAAeH,EAAwBr1H,EAAKnoG,KAAK,MAEjDgM,EAAmB,GAqBvB,OAZAA,EAAOpP,QACF+gO,EAAav1N,KAAKw1N,GACP,KAAZA,EAAiB1gH,EAAW,CAACA,EAAU0gH,GAAS59N,KAAK,QAKrD09N,GACF1xN,EAAOpP,QAAQ+gO,GAIV3xN,EAAO5D,KAAKm1N,GACjBhsN,EAAK87F,WAAW,MAAqB,KAAbkwH,EAAkB,IAAMA,GAEpD,CAaA,MAAMM,EAAU,YACVC,EAAsB,EACtBC,EAAkB,EAClBC,EAAoB,EACpBC,EAAqB,GACrBC,GAAgB,EAChBC,EAAWzvM,GAAoB,MAANA,EAE/B,SAAS2uM,EAAa9rN,EAActG,GAClC,IAAIwyN,EAAWlsN,EAAK2C,MAAM,KACtBkqN,EAAeX,EAASvhO,OAS5B,OARIuhO,EAAStxN,KAAKgyN,KAChBC,GAAgBF,GAGdjzN,IACFmzN,GAAgBL,GAGXN,EACJvxN,QAAQwiB,IAAOyvM,EAAQzvM,KACvBsL,QACC,CAAC2pI,EAAOz/B,IACNy/B,GACCk6D,EAAQ9lN,KAAKmsH,GACV45F,EACY,KAAZ55F,EACA85F,EACAC,IACNG,EAEN,CAiBA,SAASvB,EAIPwB,EACApE,EACAiC,QAAY,IAAZA,IAAAA,GAAe,GAEf,IAAI,WAAEM,GAAe6B,EAEjBC,EAAgB,CAAC,EACjBC,EAAkB,IAClB92H,EAA2D,GAC/D,IAAK,IAAIxrG,EAAI,EAAGA,EAAIugO,EAAWtgO,SAAUD,EAAG,CAC1C,IAAIinD,EAAOs5K,EAAWvgO,GAClB4hB,EAAM5hB,IAAMugO,EAAWtgO,OAAS,EAChCsiO,EACkB,MAApBD,EACItE,EACAA,EAASl6N,MAAMw+N,EAAgBriO,SAAW,IAC5CyX,EAAQ8qN,EACV,CAAEltN,KAAM2xC,EAAKg6K,aAAcC,cAAej6K,EAAKi6K,cAAet/M,OAC9D2gN,GAGEvB,EAAQ/5K,EAAK+5K,MAkBjB,IAfGtpN,GACDkK,GACAq+M,IACCM,EAAWA,EAAWtgO,OAAS,GAAG+gO,MAAMhyN,QAEzC0I,EAAQ8qN,EACN,CACEltN,KAAM2xC,EAAKg6K,aACXC,cAAej6K,EAAKi6K,cACpBt/M,KAAK,GAEP2gN,KAIC7qN,EACH,OAAO,KAGT5S,OAAOoD,OAAOm6N,EAAe3qN,EAAM+qN,QAEnCj3H,EAAQ7qG,KAAK,CAEX8hO,OAAQJ,EACRrE,SAAUmD,EAAU,CAACmB,EAAiB5qN,EAAMsmN,WAC5C0E,aAAcC,EACZxB,EAAU,CAACmB,EAAiB5qN,EAAMgrN,gBAEpC1B,UAGyB,MAAvBtpN,EAAMgrN,eACRJ,EAAkBnB,EAAU,CAACmB,EAAiB5qN,EAAMgrN,eAEvD,CAED,OAAOl3H,CACT,CAiHgB,SAAAg3H,EAIdp6H,EACA41H,GAEuB,kBAAZ51H,IACTA,EAAU,CAAE9yF,KAAM8yF,EAAS84H,eAAe,EAAOt/M,KAAK,IAGxD,IAAK6nJ,EAASm5D,GA4ChB,SACEttN,EACA4rN,EACAt/M,QADa,IAAbs/M,IAAAA,GAAgB,QACb,IAAHt/M,IAAAA,GAAM,GAEN87M,EACW,MAATpoN,IAAiBA,EAAK84F,SAAS,MAAQ94F,EAAK84F,SAAS,MACrD,eAAe94F,EAAf,oCACMA,EAAK9C,QAAQ,MAAO,MAD1B,qIAGsC8C,EAAK9C,QAAQ,MAAO,MAAK,MAGjE,IAAIiwN,EAA8B,GAC9BI,EACF,IACAvtN,EACG9C,QAAQ,UAAW,IACnBA,QAAQ,OAAQ,KAChBA,QAAQ,qBAAsB,QAC9BA,QACC,qBACA,CAACyd,EAAW6yM,EAAmBrB,KAC7BgB,EAAO9hO,KAAK,CAAEmiO,YAAWrB,WAA0B,MAAdA,IAC9BA,EAAa,eAAiB,gBAIzCnsN,EAAK84F,SAAS,MAChBq0H,EAAO9hO,KAAK,CAAEmiO,UAAW,MACzBD,GACW,MAATvtN,GAAyB,OAATA,EACZ,QACA,qBACGsM,EAETihN,GAAgB,QACE,KAATvtN,GAAwB,MAATA,IAQxButN,GAAgB,iBAKlB,IAAIp5D,EAAU,IAAIhoJ,OAAOohN,EAAc3B,OAAgBn1N,EAAY,KAEnE,MAAO,CAAC09J,EAASg5D,EACnB,CAjGkCM,CAC9B36H,EAAQ9yF,KACR8yF,EAAQ84H,cACR94H,EAAQxmF,KAGNlK,EAAQsmN,EAAStmN,MAAM+xJ,GAC3B,IAAK/xJ,EAAO,OAAO,KAEnB,IAAI4qN,EAAkB5qN,EAAM,GACxBgrN,EAAeJ,EAAgB9vN,QAAQ,UAAW,MAClDwwN,EAAgBtrN,EAAM5T,MAAM,GAuBhC,MAAO,CACL2+N,OAvBmBG,EAAe7kM,QAClC,CAACy4E,EAAIuzC,EAA6B/6I,KAAS,IAApC,UAAE8zN,EAAS,WAAErB,GAAY13E,EAG9B,GAAkB,MAAd+4E,EAAmB,CACrB,IAAIG,EAAaD,EAAch0N,IAAU,GACzC0zN,EAAeJ,EACZx+N,MAAM,EAAGw+N,EAAgBriO,OAASgjO,EAAWhjO,QAC7CuS,QAAQ,UAAW,KACvB,CAED,MAAM9U,EAAQslO,EAAch0N,GAM5B,OAJEwnG,EAAKssH,GADHrB,IAAe/jO,OACCqO,GAECrO,GAAS,IAAI8U,QAAQ,OAAQ,KAE3CgkG,CAAI,GAEb,CAAC,GAKDwnH,SAAUsE,EACVI,eACAt6H,UAEJ,CA2DM,SAAUu4H,EAAWjjO,GACzB,IACE,OAAOA,EACJua,MAAM,KACN9L,KAAK6nB,GAAMkvM,mBAAmBlvM,GAAGxhB,QAAQ,MAAO,SAChDzO,KAAK,KACR,MAAO4F,GAQP,OAPA+zN,GACE,EACA,iBAAiBhgO,EAAjB,oHAEeiM,EAAK,MAGfjM,CACR,CACH,CAKgB,SAAAwiO,EACdlC,EACA+B,GAEA,GAAiB,MAAbA,EAAkB,OAAO/B,EAE7B,IAAKA,EAAS/7N,cAAcmvG,WAAW2uH,EAAS99N,eAC9C,OAAO,KAKT,IAAIkhO,EAAapD,EAAS3xH,SAAS,KAC/B2xH,EAAS9/N,OAAS,EAClB8/N,EAAS9/N,OACTmjO,EAAWpF,EAAS38M,OAAO8hN,GAC/B,OAAIC,GAAyB,MAAbA,EAEP,KAGFpF,EAASl6N,MAAMq/N,IAAe,GACvC,CA2CA,SAASE,EACPtlK,EACAhtB,EACAymG,EACAliI,GAEA,MACE,qBAAqByoD,EAArB,2CACQhtB,EAAK,YAAa1oC,KAAKE,UAC7B+M,GAFF,yCAIQkiI,EAJR,2HAOJ,CAyBM,SAAU8rF,EAEd93H,GACA,OAAOA,EAAQv7F,QACb,CAACyH,EAAO1I,IACI,IAAVA,GAAgB0I,EAAMspN,MAAM1rN,MAAQoC,EAAMspN,MAAM1rN,KAAKrV,OAAS,GAEpE,CAIgB,SAAAsjO,EAEd/3H,EAAcg4H,GACd,IAAIC,EAAcH,EAA2B93H,GAK7C,OAAIg4H,EACKC,EAAYt3N,KAAI,CAACuL,EAAOmmN,IAC7BA,IAAQ4F,EAAYxjO,OAAS,EAAIyX,EAAMsmN,SAAWtmN,EAAMgrN,eAIrDe,EAAYt3N,KAAKuL,GAAUA,EAAMgrN,cAC1C,CAKM,SAAUgB,EACdC,EACAC,EACAC,EACAC,GAEA,IAAIl6N,OAFU,IAAdk6N,IAAAA,GAAiB,GAGI,kBAAVH,EACT/5N,EAAKs0N,EAAUyF,IAEf/5N,EAAEm0N,EAAQ,GAAA4F,GAEVlG,GACG7zN,EAAGo0N,WAAap0N,EAAGo0N,SAAS/uN,SAAS,KACtCo0N,EAAoB,IAAK,WAAY,SAAUz5N,IAEjD6zN,GACG7zN,EAAGo0N,WAAap0N,EAAGo0N,SAAS/uN,SAAS,KACtCo0N,EAAoB,IAAK,WAAY,OAAQz5N,IAE/C6zN,GACG7zN,EAAG+tD,SAAW/tD,EAAG+tD,OAAO1oD,SAAS,KAClCo0N,EAAoB,IAAK,SAAU,OAAQz5N,KAI/C,IAGIH,EAHAs6N,EAAwB,KAAVJ,GAAgC,KAAhB/5N,EAAGo0N,SACjCgG,EAAaD,EAAc,IAAMn6N,EAAGo0N,SAaxC,GAAkB,MAAdgG,EACFv6N,EAAOo6N,MACF,CACL,IAAII,EAAqBL,EAAe3jO,OAAS,EAMjD,IAAK6jO,GAAkBE,EAAW5yH,WAAW,MAAO,CAClD,IAAI8yH,EAAaF,EAAW/rN,MAAM,KAElC,KAAyB,OAAlBisN,EAAW,IAChBA,EAAWt1K,QACXq1K,GAAsB,EAGxBr6N,EAAGo0N,SAAWkG,EAAWngO,KAAK,IAC/B,CAED0F,EAAOw6N,GAAsB,EAAIL,EAAeK,GAAsB,GACvE,CAED,IAAI3uN,WAzKsB1L,EAAQu6N,QAAY,IAAZA,IAAAA,EAAe,KACjD,IACEnG,SAAUgG,EAAU,OACpBrsK,EAAS,GAAE,KACXsmK,EAAO,IACS,kBAAPr0N,EAAkBs0N,EAAUt0N,GAAMA,EAEzCo0N,EAAWgG,EACXA,EAAW5yH,WAAW,KACpB4yH,EAWR,SAAyB/C,EAAsBkD,GAC7C,IAAI3C,EAAW2C,EAAa3xN,QAAQ,OAAQ,IAAIyF,MAAM,KAYtD,OAXuBgpN,EAAahpN,MAAM,KAEzBrY,SAASqoI,IACR,OAAZA,EAEEu5F,EAASvhO,OAAS,GAAGuhO,EAASxwI,MACb,MAAZi3C,GACTu5F,EAAS7gO,KAAKsnI,EACf,IAGIu5F,EAASvhO,OAAS,EAAIuhO,EAASz9N,KAAK,KAAO,GACpD,CAxBQqgO,CAAgBJ,EAAYG,GAC9BA,EAEJ,MAAO,CACLnG,WACArmK,OAAQ0sK,EAAgB1sK,GACxBsmK,KAAMqG,EAAcrG,GAExB,CAuJasG,CAAY36N,EAAIH,GAGvB+6N,EACFR,GAA6B,MAAfA,GAAsBA,EAAW51H,SAAS,KAEtDq2H,GACDV,GAA8B,MAAfC,IAAuBH,EAAiBz1H,SAAS,KAQnE,OANG94F,EAAK0oN,SAAS5vH,SAAS,OACvBo2H,IAA4BC,IAE7BnvN,EAAK0oN,UAAY,KAGZ1oN,CACT,OAiBa6rN,EAAa/yI,GACxBA,EAAMrqF,KAAK,KAAKyO,QAAQ,SAAU,KAKvBmwN,EAAqB3E,GAChCA,EAASxrN,QAAQ,OAAQ,IAAIA,QAAQ,OAAQ,KAKlC6xN,EAAmB1sK,GAC7BA,GAAqB,MAAXA,EAEPA,EAAOy5C,WAAW,KAClBz5C,EACA,IAAMA,EAHN,GAQO2sK,EAAiBrG,GAC3BA,GAAiB,MAATA,EAAoBA,EAAK7sH,WAAW,KAAO6sH,EAAO,IAAMA,EAAzC,GAwDgBz7N,MAySpC,SAAUkiO,EAAqB/6N,GACnC,OACW,MAATA,GACwB,kBAAjBA,EAAM4xC,QACe,kBAArB5xC,EAAMg7N,YACa,mBAAnBh7N,EAAMxI,UACb,SAAUwI,CAEd,CCngCA,MAAMi7N,EAAgD,CACpD,OACA,MACA,QACA,UAMIC,GAJuB,IAAIjrL,IAC/BgrL,GAG2C,CAC3C,SACGA,IAEuB,IAAIhrL,IAAgBirL,GAEpB,IAAIjrL,IAAI,CAAC,IAAK,IAAK,IAAK,IAAK,MACf,IAAIA,IAAI,CAAC,IAAK,MAsqFlBp4C,OAAO,gPC5xGtC,MAAMsjO,EACXnS,EAAAA,cAAoD,MAK/C,MAAMoS,EAAyBpS,EAAAA,cAEpC,MA8CK,MAAMqS,EAAoBrS,EAAAA,cAC/B,MAYK,MAAMsS,EAAkBtS,EAAAA,cAC7B,YAaWuS,EAAevS,EAAAA,cAAwC,CAClEwS,OAAQ,KACR35H,QAAS,GACT45H,aAAa,IAOR,MAAMC,EAAoB1S,EAAAA,cAAyB,MCjFnD,SAAS2S,KACd,OAA4C,MAArC3S,EAAAA,WAAiBsS,EAC1B,CAYO,SAASM,KAQd,OANED,MADFE,GAAU,GAOH7S,EAAAA,WAAiBsS,GAAiBj5N,QAC3C,CAkDA,SAASy5N,GACPljL,GAEeowK,EAAAA,WAAiBqS,GAAmBU,QAKjD/S,EAAAA,gBAAsBpwK,EAE1B,CAQO,SAASojL,KACd,IAAI,YAAEP,GAAgBzS,EAAAA,WAAiBuS,GAGvC,OAAOE,EA24BT,WACE,IAAI,OAAEQ,GAAWC,GAAqBC,GAAeC,mBACjDxjN,EAAKyjN,GAAkBC,GAAoBF,mBAE3CG,EAAYvT,EAAAA,QAAa,GAsB7B,OArBA8S,IAA0B,KACxBS,EAAUnhM,SAAU,CAAI,IAGO4tL,EAAAA,aAC/B,SAAC/oN,EAAiB5H,QAAwB,IAAxBA,IAAAA,EAA2B,CAAC,GAKvCkkO,EAAUnhM,UAEG,kBAAPn7B,EACTg8N,EAAOO,SAASv8N,GAEhBg8N,EAAOO,SAASv8N,EAAEm0N,EAAA,CAAIqI,YAAa7jN,GAAOvgB,IAE9C,GACA,CAAC4jO,EAAQrjN,GAIb,CAt6BuB8jN,GAGvB,WAEIf,MADFE,GAAU,GAOV,IAAIc,EAAoB3T,EAAAA,WAAiBmS,IACrC,SAAE/E,EAAQ,OAAE1uE,EAAM,UAAEz1G,GAAc+2K,EAAAA,WAAiBqS,IACnD,QAAEx5H,GAAYmnH,EAAAA,WAAiBuS,IAC7BlH,SAAU6F,GAAqB0B,KAEjCgB,EAAqBl+N,KAAKE,UAC5Bi+N,EAAoBh7H,EAAS6lD,EAAOmyE,uBAGlC0C,EAAYvT,EAAAA,QAAa,GAqD7B,OApDA8S,IAA0B,KACxBS,EAAUnhM,SAAU,CAAI,IAGO4tL,EAAAA,aAC/B,SAAC/oN,EAAiB5H,GAKhB,QALwC,IAAxBA,IAAAA,EAA2B,CAAC,IAKvCkkO,EAAUnhM,QAAS,OAExB,GAAkB,kBAAPn7B,EAET,YADAgyC,EAAU8jL,GAAG91N,GAIf,IAAI0L,EAAOouN,EACT95N,EACAvB,KAAKC,MAAMi+N,GACX1C,EACqB,SAArB7hO,EAAQykO,UASe,MAArBH,GAA0C,MAAbvG,IAC/BzqN,EAAK0oN,SACe,MAAlB1oN,EAAK0oN,SACD+B,EACAoB,EAAU,CAACpB,EAAUzqN,EAAK0oN,aAG/Bh8N,EAAQwQ,QAAUopC,EAAUppC,QAAUopC,EAAUj7C,MACjD2U,EACAtT,EAAQmH,MACRnH,EAEJ,GACA,CACE+9N,EACAnkL,EACA2qL,EACA1C,EACAyC,GAKN,CA1E6CI,EAC7C,CA4GO,SAASC,KAKd,IAAI,QAAEn7H,GAAYmnH,EAAAA,WAAiBuS,GAC/B0B,EAAap7H,EAAQA,EAAQvrG,OAAS,GAC1C,OAAO2mO,EAAcA,EAAWnE,OAAiB,CAAC,CACpD,CAOO,SAASoE,GACdj9N,EAAMk9N,GAEA,IADN,SAAEL,QAA8C,IAAAK,EAAG,CAAC,EAACA,GAEjD,OAAEz1E,GAAWshE,EAAAA,WAAiBqS,IAC9B,QAAEx5H,GAAYmnH,EAAAA,WAAiBuS,IAC7BlH,SAAU6F,GAAqB0B,KACjCgB,EAAqBl+N,KAAKE,UAC5Bi+N,EAAoBh7H,EAAS6lD,EAAOmyE,uBAGtC,OAAO7Q,EAAAA,SACL,IACE+Q,EACE95N,EACAvB,KAAKC,MAAMi+N,GACX1C,EACa,SAAb4C,IAEJ,CAAC78N,EAAI28N,EAAoB1C,EAAkB4C,GAE/C,CAkBO,SAASM,GACdlH,EACAC,EACAkH,EACA31E,GAGEi0E,MADFE,GAAU,GAOV,IAAI,UAAE5pL,EAAW8pL,OAAQuB,GAAatU,EAAAA,WAAiBqS,IACjDx5H,QAAS07H,GAAkBvU,EAAAA,WAAiBuS,GAC9C0B,EAAaM,EAAcA,EAAcjnO,OAAS,GAClDknO,EAAeP,EAAaA,EAAWnE,OAAS,CAAC,EAEjD2E,GADiBR,GAAaA,EAAW5I,SACpB4I,EAAaA,EAAWlE,aAAe,KAC9CkE,GAAcA,EAAW5F,MAqC3C,IAEIh1N,EAFAq7N,EAAsB9B,KAG1B,GAAIzF,EAAa,KAAAwH,EACf,IAAIC,EACqB,kBAAhBzH,EAA2B5B,EAAU4B,GAAeA,EAGpC,MAAvBsH,IAC4B,OADFE,EACxBC,EAAkBvJ,eAAQ,EAA1BsJ,EAA4Bl2H,WAAWg2H,KAF3C5B,GAAU,GASVx5N,EAAWu7N,CACb,MACEv7N,EAAWq7N,EAGb,IAAIrJ,EAAWhyN,EAASgyN,UAAY,IAEhCuE,EAAoBvE,EACxB,GAA2B,MAAvBoJ,EAA4B,CAe9B,IAAII,EAAiBJ,EAAmB50N,QAAQ,MAAO,IAAIyF,MAAM,KAEjEsqN,EAAoB,IADLvE,EAASxrN,QAAQ,MAAO,IAAIyF,MAAM,KACdnU,MAAM0jO,EAAevnO,QAAQ8D,KAAK,IACvE,CAEA,IAAIynG,GACDy7H,GACDD,GACAA,EAAgBx7H,SAChBw7H,EAAgBx7H,QAAQvrG,OAAS,EAC5B+mO,EAAgBx7H,QACjBo0H,EAAYC,EAAQ,CAAE7B,SAAUuE,IAmBtC,IAAIkF,EAAkBC,GACpBl8H,GACEA,EAAQr/F,KAAKuL,GACX5S,OAAOoD,OAAO,CAAC,EAAGwP,EAAO,CACvB+qN,OAAQ39N,OAAOoD,OAAO,CAAC,EAAGi/N,EAAczvN,EAAM+qN,QAC9CzE,SAAUmD,EAAU,CAClBiG,EAEAxrL,EAAUwjL,eACNxjL,EAAUwjL,eAAe1nN,EAAMsmN,UAAUA,SACzCtmN,EAAMsmN,WAEZ0E,aACyB,MAAvBhrN,EAAMgrN,aACF0E,EACAjG,EAAU,CACRiG,EAEAxrL,EAAUwjL,eACNxjL,EAAUwjL,eAAe1nN,EAAMgrN,cAAc1E,SAC7CtmN,EAAMgrN,mBAIxBwE,EACAF,EACA31E,GAMF,OAAIyuE,GAAe2H,EAEf9U,EAAAA,cAACsS,EAAgBlvH,SAAQ,CACvBr4G,MAAO,CACLsO,SAAQ+xN,EAAA,CACNC,SAAU,IACVrmK,OAAQ,GACRsmK,KAAM,GACN90N,MAAO,KACPvF,IAAK,WACFoI,GAEL27N,eAAgBpK,EAAeuB,MAGhC2I,GAKAA,CACT,CAEA,SAASG,KACP,IAAIj+N,EA0cC,WAAkC,IAAAk+N,EACvC,IAAIl+N,EAAQgpN,EAAAA,WAAiB0S,GACzBl8N,EAAQ2+N,GAAmB7B,GAAoB8B,eAC/CC,EAAUhC,GAAkBC,GAAoB8B,eAIpD,QAAch8N,IAAVpC,EACF,OAAOA,EAIT,OAAO,OAAPk+N,EAAO1+N,EAAM8+N,aAAN,EAAAJ,EAAeG,EACxB,CAvdcE,GACR55J,EAAUo2J,EAAqB/6N,GAC5BA,EAAM4xC,OAAU,IAAA5xC,EAAMg7N,WACzBh7N,aAAiBnH,MACjBmH,EAAM2kE,QACNjmE,KAAKE,UAAUoB,GACfP,EAAQO,aAAiBnH,MAAQmH,EAAMP,MAAQ,KAC/Co/K,EAAY,yBACZ2/C,EAAY,CAAE9nM,QAAS,SAAU91B,gBAAiBi+K,GAsBtD,OACEmqC,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAI,2CACJA,EAAAA,cAAA,MAAIvuN,MAAO,CAAEy6B,UAAW,WAAayvC,GACpCllE,EAAQupN,EAAAA,cAAA,OAAKvuN,MAAO+jO,GAAY/+N,GAAe,KAvBtC,KA2BhB,CAEA,MAAMg/N,GAAsBzV,EAAAA,cAACiV,GAAqB,MAgB3C,MAAMS,WAA4B1V,EAAAA,UAIvCjxN,WAAAA,CAAYi1C,GACV2xL,MAAM3xL,GACN73C,KAAKqK,MAAQ,CACX6C,SAAU2qC,EAAM3qC,SAChBu8N,aAAc5xL,EAAM4xL,aACpB5+N,MAAOgtC,EAAMhtC,MAEjB,CAEA,+BAAOolE,CAAyBplE,GAC9B,MAAO,CAAEA,MAAOA,EAClB,CAEA,+BAAOqkE,CACLr3B,EACAxtC,GAUA,OACEA,EAAM6C,WAAa2qC,EAAM3qC,UACD,SAAvB7C,EAAMo/N,cAAkD,SAAvB5xL,EAAM4xL,aAEjC,CACL5+N,MAAOgtC,EAAMhtC,MACbqC,SAAU2qC,EAAM3qC,SAChBu8N,aAAc5xL,EAAM4xL,cAQjB,CACL5+N,WAAuBoC,IAAhB4qC,EAAMhtC,MAAsBgtC,EAAMhtC,MAAQR,EAAMQ,MACvDqC,SAAU7C,EAAM6C,SAChBu8N,aAAc5xL,EAAM4xL,cAAgBp/N,EAAMo/N,aAE9C,CAEAv5J,iBAAAA,CAAkBrlE,EAAY6+N,GAC5BtuM,QAAQvwB,MACN,wDACAA,EACA6+N,EAEJ,CAEA3nL,MAAAA,GACE,YAA4B90C,IAArBjN,KAAKqK,MAAMQ,MAChBgpN,EAAAA,cAACuS,EAAanvH,SAAQ,CAACr4G,MAAOoB,KAAK63C,MAAM8xL,cACvC9V,EAAAA,cAAC0S,EAAkBtvH,SAAQ,CACzBr4G,MAAOoB,KAAKqK,MAAMQ,MAClBs5C,SAAUnkD,KAAK63C,MAAM+xL,aAIzB5pO,KAAK63C,MAAMsM,QAEf,EASF,SAAS0lL,GAAa5+E,GAAwD,IAAvD,aAAE0+E,EAAY,MAAE/wN,EAAK,SAAEurC,GAA8B8mG,EACtEu8E,EAAoB3T,EAAAA,WAAiBmS,GAazC,OAREwB,GACAA,EAAkBZ,QAClBY,EAAkBsC,gBACjBlxN,EAAMspN,MAAM6H,cAAgBnxN,EAAMspN,MAAM8H,iBAEzCxC,EAAkBsC,cAAcG,2BAA6BrxN,EAAMspN,MAAMz+M,IAIzEowM,EAAAA,cAACuS,EAAanvH,SAAQ,CAACr4G,MAAO+qO,GAC3BxlL,EAGP,CAEO,SAASykL,GACdl8H,EACA07H,EACAF,EACA31E,GAC2B,IAAA23E,EAC3B,QAJ2B,IAA3B9B,IAAAA,EAA8B,SACc,IAA5CF,IAAAA,EAA+C,WACX,IAApC31E,IAAAA,EAAuC,MAExB,MAAX7lD,EAAiB,KAAAy9H,EACnB,IAAKjC,EACH,OAAO,KAGT,GAAIA,EAAgBiB,OAGlBz8H,EAAUw7H,EAAgBx7H,YACrB,MACL,OAAAy9H,EAAA53E,IAAA43E,EAAQC,qBACiB,IAAzBhC,EAAcjnO,SACb+mO,EAAgBmC,aACjBnC,EAAgBx7H,QAAQvrG,OAAS,GAUjC,OAAO,KAFPurG,EAAUw7H,EAAgBx7H,OAG5B,CACF,CAEA,IAAIi8H,EAAkBj8H,EAGlBy8H,EAAS,OAAHe,EAAGhC,QAAA,EAAAgC,EAAiBf,OAC9B,GAAc,MAAVA,EAAgB,CAClB,IAAImB,EAAa3B,EAAgBp3N,WAC9B0jB,GAAMA,EAAEitM,MAAMz+M,SAA+BxW,KAAnB,MAANk8N,OAAM,EAANA,EAASl0M,EAAEitM,MAAMz+M,OAGtC6mN,GAAc,GADhB5D,GAAU,GAMViC,EAAkBA,EAAgB3jO,MAChC,EACAxD,KAAKyhB,IAAI0lN,EAAgBxnO,OAAQmpO,EAAa,GAElD,CAIA,IAAIC,GAAiB,EACjBC,GAAiB,EACrB,GAAItC,GAAmB31E,GAAUA,EAAO63E,oBACtC,IAAK,IAAIlpO,EAAI,EAAGA,EAAIynO,EAAgBxnO,OAAQD,IAAK,CAC/C,IAAI0X,EAAQ+vN,EAAgBznO,GAM5B,IAJI0X,EAAMspN,MAAMuI,iBAAmB7xN,EAAMspN,MAAMwI,0BAC7CF,EAAgBtpO,GAGd0X,EAAMspN,MAAMz+M,GAAI,CAClB,IAAI,WAAEknN,EAAU,OAAExB,GAAWjB,EACzB0C,EACFhyN,EAAMspN,MAAM2I,aACmB59N,IAA/B09N,EAAW/xN,EAAMspN,MAAMz+M,OACrB0lN,QAAqCl8N,IAA3Bk8N,EAAOvwN,EAAMspN,MAAMz+M,KACjC,GAAI7K,EAAMspN,MAAMzqH,MAAQmzH,EAAkB,CAIxCL,GAAiB,EAEf5B,EADE6B,GAAiB,EACD7B,EAAgB3jO,MAAM,EAAGwlO,EAAgB,GAEzC,CAAC7B,EAAgB,IAErC,KACF,CACF,CACF,CAGF,OAAOA,EAAgB72H,aAAY,CAACu0H,EAAQztN,EAAO1I,KAEjD,IAAIrF,EACAigO,GAA8B,EAC9Bf,EAAuC,KACvCW,EAAiD,KA0VzD,IAAqB5lO,EAzVbojO,IACFr9N,EAAQs+N,GAAUvwN,EAAMspN,MAAMz+M,GAAK0lN,EAAOvwN,EAAMspN,MAAMz+M,SAAMxW,EAC5D88N,EAAenxN,EAAMspN,MAAM6H,cAAgBT,GAEvCiB,IACEC,EAAgB,GAAe,IAAVt6N,GAoVZpL,EAlVT,kBACA,GAkVIimO,GAAcjmO,KAC1BimO,GAAcjmO,IAAO,GAhVfgmO,GAA8B,EAC9BJ,EAAyB,MAChBF,IAAkBt6N,IAC3B46N,GAA8B,EAC9BJ,EAAyB9xN,EAAMspN,MAAMwI,wBAA0B,QAKrE,IAAIh+H,EAAU07H,EAAc5jO,OAAOmkO,EAAgB3jO,MAAM,EAAGkL,EAAQ,IAChE86N,EAAcA,KAChB,IAAI7mL,EAkBJ,OAhBEA,EADEt5C,EACSk/N,EACFe,EACEJ,EACF9xN,EAAMspN,MAAM3rH,UAOVs9G,EAAAA,cAACj7M,EAAMspN,MAAM3rH,UAAS,MACxB39F,EAAMspN,MAAMtiM,QACVhnB,EAAMspN,MAAMtiM,QAEZymM,EAGXxS,EAAAA,cAACgW,GAAa,CACZjxN,MAAOA,EACP+wN,aAAc,CACZtD,SACA35H,UACA45H,YAAgC,MAAnB4B,GAEf/jL,SAAUA,GACV,EAMN,OAAO+jL,IACJtvN,EAAMspN,MAAM8H,eAAiBpxN,EAAMspN,MAAM6H,cAA0B,IAAV75N,GAC1D2jN,EAAAA,cAAC0V,GAAmB,CAClBr8N,SAAUg7N,EAAgBh7N,SAC1Bu8N,aAAcvB,EAAgBuB,aAC9BG,UAAWG,EACXl/N,MAAOA,EACPs5C,SAAU6mL,IACVrB,aAAc,CAAEtD,OAAQ,KAAM35H,UAAS45H,aAAa,KAGtD0E,GACD,GACA,KACL,CAAC,IAEIhE,GAAc,SAAdA,GAAc,OAAdA,EAAc,wBAAdA,EAAc,gCAAdA,EAAc,gCAAdA,CAAc,EAAdA,IAAc,IAMdG,GAAmB,SAAnBA,GAAmB,OAAnBA,EAAmB,wBAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,8BAAnBA,EAAmB,wCAAnBA,EAAmB,wBAAnBA,EAAmB,gCAAnBA,EAAmB,gCAAnBA,EAAmB,wBAAnBA,CAAmB,EAAnBA,IAAmB,IAmBxB,SAASJ,GAAqBkE,GAC5B,IAAInkG,EAAM+sF,EAAAA,WAAiBmS,GAE3B,OADUl/F,GAAV4/F,GAAU,GACH5/F,CACT,CAEA,SAASkiG,GAAmBiC,GAC1B,IAAI5gO,EAAQwpN,EAAAA,WAAiBoS,GAE7B,OADU57N,GAAVq8N,GAAU,GACHr8N,CACT,CASA,SAAS68N,GAAkB+D,GACzB,IAAI/I,EARN,WACE,IAAIA,EAAQrO,EAAAA,WAAiBuS,GAE7B,OADUlE,GAAVwE,GAAU,GACHxE,CACT,CAIcgJ,GACRC,EAAYjJ,EAAMx1H,QAAQw1H,EAAMx1H,QAAQvrG,OAAS,GAKrD,OAHEgqO,EAAUjJ,MAAMz+M,IADlBijN,GAAU,GAIHyE,EAAUjJ,MAAMz+M,EACzB,CA4NA,MAAMsnN,GAAyC,CAAC,EC7kCzC,SAASK,GACdC,EACAC,GAEI,MAAAD,GAAAA,EAAcE,wBASuBt+N,KAA3B,MAAZo+N,OAAY,EAAZA,EAAc3G,yBACZ4G,GAAiBA,EAAa5G,sBAS9B4G,IACEA,EAAaE,kBAQbF,EAAaG,uBAQbH,EAAalB,oBAQbkB,EAAaI,+BAQrB,CCY4B7X,EAAsB,gBAsM3C,SAAS8X,GAAQC,GAKA,IALC,GACvB9gO,EAAE,QACF4I,EAAO,MACPrJ,EAAK,SACLs9N,GACciE,EAEZpF,MADFE,GAAU,GAOV,IAAI,OAAEn0E,EAAQq0E,OAAQuB,GAAatU,EAAAA,WAAiBqS,IAShD,QAAEx5H,GAAYmnH,EAAAA,WAAiBuS,IAC7BlH,SAAU6F,GAAqB0B,KACjCY,EAAWR,KAIXrwN,EAAOouN,EACT95N,EACA48N,EAAoBh7H,EAAS6lD,EAAOmyE,sBACpCK,EACa,SAAb4C,GAEEkE,EAAWtiO,KAAKE,UAAU+M,GAO9B,OALAq9M,EAAAA,WACE,IAAMwT,EAAS99N,KAAKC,MAAMqiO,GAAW,CAAEn4N,UAASrJ,QAAOs9N,cACvD,CAACN,EAAUwE,EAAUlE,EAAUj0N,EAASrJ,IAGnC,IACT,CAgEO,SAASyhO,GAAMC,GACpBrF,GAAU,EAKZ,CAqBO,SAASsF,GAAMC,GAQqB,IAPzChL,SAAUiL,EAAe,IAAG,SAC5B/nL,EAAW,KACXj3C,SAAUi/N,EAAY,eACtBtD,EAAiBpK,EAAeuB,IAAG,UACnCljL,EACA8pL,OAAQwF,GAAa,EAAK,OAC1B75E,GACY05E,EAETzF,MADHE,GAAU,GAQV,IAAIzF,EAAWiL,EAAax4N,QAAQ,OAAQ,KACxC24N,EAAoBxY,EAAAA,SACtB,KAAM,CACJoN,WACAnkL,YACA8pL,OAAQwF,EACR75E,OAAM0sE,EAAA,CACJyF,sBAAsB,GACnBnyE,MAGP,CAAC0uE,EAAU1uE,EAAQz1G,EAAWsvL,IAGJ,kBAAjBD,IACTA,EAAe/M,EAAU+M,IAG3B,IAAI,SACFjN,EAAW,IAAG,OACdrmK,EAAS,GAAE,KACXsmK,EAAO,GAAE,MACT90N,EAAQ,KAAI,IACZvF,EAAM,WACJqnO,EAEAG,EAAkBzY,EAAAA,SAAc,KAClC,IAAI0Y,EAAmBnL,EAAclC,EAAU+B,GAE/C,OAAwB,MAApBsL,EACK,KAGF,CACLr/N,SAAU,CACRgyN,SAAUqN,EACV1zK,SACAsmK,OACA90N,QACAvF,OAEF+jO,iBACD,GACA,CAAC5H,EAAU/B,EAAUrmK,EAAQsmK,EAAM90N,EAAOvF,EAAK+jO,IASlD,OAAuB,MAAnByD,EACK,KAIPzY,EAAAA,cAACqS,EAAkBjvH,SAAQ,CAACr4G,MAAOytO,GACjCxY,EAAAA,cAACsS,EAAgBlvH,SAAQ,CAAC9yD,SAAUA,EAAUvlD,MAAO0tO,IAG3D,CAaO,SAASE,GAAMC,GAGqB,IAHpB,SACrBtoL,EAAQ,SACRj3C,GACYu/N,EACZ,OF1KOxE,GE0KUyE,GAAyBvoL,GAAWj3C,EACvD,CAuC4B,IAAIlE,SAAQ,SAEP6qN,EAAAA,UAkH1B,SAAS6Y,GACdvoL,EACA69K,QAAoB,IAApBA,IAAAA,EAAuB,IAEvB,IAAIjB,EAAwB,GA6D5B,OA3DAlN,EAAAA,SAAe/yN,QAAQqjD,GAAU,CAACvkB,EAAS1vB,KACzC,IAAK2jN,EAAAA,eAAqBj0L,GAGxB,OAGF,IAAI+sM,EAAW,IAAI3K,EAAY9xN,GAE/B,GAAI0vB,EAAQ54B,OAAS6sN,EAAAA,SAMnB,YAJAkN,EAAOl/N,KAAKwY,MACV0mN,EACA2L,GAAyB9sM,EAAQiY,MAAMsM,SAAUwoL,IAMnD/sM,EAAQ54B,OAAS8kO,IADnBpF,GAAU,GAQP9mM,EAAQiY,MAAM3nC,OAAU0vB,EAAQiY,MAAMsM,UADzCuiL,GAAU,GAKV,IAAIxE,EAAqB,CACvBz+M,GAAImc,EAAQiY,MAAMp0B,IAAMkpN,EAAS1nO,KAAK,KACtCm9N,cAAexiM,EAAQiY,MAAMuqL,cAC7BxiM,QAASA,EAAQiY,MAAMjY,QACvB22E,UAAW32E,EAAQiY,MAAM0+D,UACzBrmG,MAAO0vB,EAAQiY,MAAM3nC,MACrBsG,KAAMopB,EAAQiY,MAAMrhC,KACpBq0N,OAAQjrM,EAAQiY,MAAMgzL,OACtB1gK,OAAQvqC,EAAQiY,MAAMsyB,OACtB4/J,aAAcnqM,EAAQiY,MAAMkyL,aAC5BC,cAAepqM,EAAQiY,MAAMmyL,cAC7B4C,iBACiC,MAA/BhtM,EAAQiY,MAAMmyL,eACgB,MAA9BpqM,EAAQiY,MAAMkyL,aAChB8C,iBAAkBjtM,EAAQiY,MAAMg1L,iBAChCC,OAAQltM,EAAQiY,MAAMi1L,OACtBr1H,KAAM73E,EAAQiY,MAAM4/D,MAGlB73E,EAAQiY,MAAMsM,WAChB+9K,EAAM/9K,SAAWuoL,GACf9sM,EAAQiY,MAAMsM,SACdwoL,IAIJ5L,EAAOl/N,KAAKqgO,EAAM,IAGbnB,CACT,2YC1fgD,IAAIjmL,IAAI,CACtD,oCACA,sBACA,sICeF,IACEv1C,OAAOwnO,qBAHT,GAIC,CAAC,MAAOv/M,KACP,CAgJiE,IAAIukB,IAkCvE,MACMi7L,GAAsBnZ,EAAsB,gBAE5BoZ,GAAmB,UAEvBpZ,EAAY,MAiWxB,SAAUqZ,GAAatB,GAKR,IALS,SAC5B3K,EAAQ,SACR98K,EAAQ,OACRouG,EAAM,OACNhtJ,GACmBqmO,EACfuB,EAAatZ,EAAAA,SRlbH,IACd3wN,EQkb0B,MAAtBiqO,EAAWlnM,UACbknM,EAAWlnM,cRnbb,KAAA/iC,EQmb4C,CAAEqC,SAAQs6N,UAAU,MRnbhE38N,EAAiC,CAAC,GAoB3Bu8N,GAlBP,SACEl6N,EACAu6N,GAEA,IAAI,SAAEZ,EAAQ,OAAErmK,EAAM,KAAEsmK,GAAS55N,EAAO2H,SACxC,OAAO8xN,EACL,GACA,CAAEE,WAAUrmK,SAAQsmK,QAEnBW,EAAcz1N,OAASy1N,EAAcz1N,MAAMy0N,KAAQ,KACnDgB,EAAcz1N,OAASy1N,EAAcz1N,MAAMvF,KAAQ,UAExD,IAEA,SAA2BS,EAAgBuF,GACzC,MAAqB,kBAAPA,EAAkBA,EAAKu0N,EAAWv0N,EAClD,GAKE,KACA5H,KQ8ZF,IAAI68N,EAAUoN,EAAWlnM,SACpB57B,EAAO+iO,GAAgBvZ,EAAAA,SAAe,CACzC1pJ,OAAQ41J,EAAQ51J,OAChBj9D,SAAU6yN,EAAQ7yN,YAEhB,mBAAEq+N,GAAuBh5E,GAAU,CAAC,EACpCr8C,EAAW29G,EAAAA,aACZwZ,IACC9B,GAAsByB,GAClBA,IAAoB,IAAMI,EAAaC,KACvCD,EAAaC,EAAS,GAE5B,CAACD,EAAc7B,IAOjB,OAJA1X,EAAAA,iBAAsB,IAAMkM,EAAQM,OAAOnqH,IAAW,CAAC6pH,EAAS7pH,IAEhE29G,EAAAA,WAAgB,IAAMyZ,GAAyB/6E,IAAS,CAACA,IAGvDshE,EAAAA,cAACmY,GAAM,CACL/K,SAAUA,EACV98K,SAAUA,EACVj3C,SAAU7C,EAAM6C,SAChB27N,eAAgBx+N,EAAM8/D,OACtBrtB,UAAWijL,EACXxtE,OAAQA,GAGd,CAyHA,MAAMg7E,GACc,qBAAXhoO,QACoB,qBAApBA,OAAO+B,UAC2B,qBAAlC/B,OAAO+B,SAASf,cAEnBinO,GAAqB,gCAKdC,GAAO5Z,EAAAA,YAClB,SAAoB6Z,EAalBn2L,GAAG,IAKCo2L,GAjBJ,QACEx5J,EAAO,SACPwzJ,EAAQ,eACRiG,EAAc,QACdl6N,EAAO,MACPrJ,EAAK,OACLU,EAAM,GACND,EAAE,mBACF+iO,EAAkB,eAClBC,GAEDJ,EADItgI,EAAI2gI,GAAAL,EAAAM,KAIL,SAAE/M,GAAapN,EAAAA,WAAiBoa,GAIhCC,GAAa,EAEjB,GAAkB,kBAAPpjO,GAAmB0iO,GAAmBxwN,KAAKlS,KAEpD6iO,EAAe7iO,EAGXyiO,IACF,IACE,IAAIY,EAAa,IAAInxL,IAAIz3C,OAAO2H,SAAS/K,MACrCisO,EAAYtjO,EAAGwnG,WAAW,MAC1B,IAAIt1D,IAAImxL,EAAW/3F,SAAWtrI,GAC9B,IAAIkyC,IAAIlyC,GACR0L,EAAO4qN,EAAcgN,EAAUlP,SAAU+B,GAEzCmN,EAAUhxL,SAAW+wL,EAAW/wL,QAAkB,MAAR5mC,EAE5C1L,EAAK0L,EAAO43N,EAAUv1K,OAASu1K,EAAUjP,KAEzC+O,GAAa,EAEf,MAAO1gN,KAOR,CAKL,IAAIrrB,EJ17BD,SACL2I,EAAMujO,GAEE,IADR,SAAE1G,QAA8C,IAAA0G,EAAG,CAAC,EAACA,EAGnD7H,MADFE,GAAU,GAOV,IAAI,SAAEzF,EAAQ,UAAEnkL,GAAc+2K,EAAAA,WAAiBqS,IAC3C,KAAE/G,EAAI,SAAED,EAAQ,OAAErmK,GAAWkvK,GAAgBj9N,EAAI,CAAE68N,aAEnD2G,EAAiBpP,EAWrB,MALiB,MAAb+B,IACFqN,EACe,MAAbpP,EAAmB+B,EAAWoB,EAAU,CAACpB,EAAU/B,KAGhDpiL,EAAU6iL,WAAW,CAAET,SAAUoP,EAAgBz1K,SAAQsmK,QAClE,CIg6BeoP,CAAQzjO,EAAI,CAAE68N,aAErB6G,EAoZF,SACJ1jO,EAAMujO,GAeA,IAdN,OACEtjO,EACA2I,QAAS+6N,EAAW,MACpBpkO,EAAK,mBACLwjO,EAAkB,SAClBlG,EAAQ,eACRmG,cAQE,CAAC,EAACO,EAEFhH,EAAWR,KACX35N,EAAWu5N,KACXjwN,EAAOuxN,GAAgBj9N,EAAI,CAAE68N,aAEjC,OAAO9T,EAAAA,aACJz6J,IACC,GD93CU,SACdA,EACAruD,GAEA,OACmB,IAAjBquD,EAAMtF,UACJ/oD,GAAqB,UAAXA,KAVhB,SAAyBquD,GACvB,SAAUA,EAAMzF,SAAWyF,EAAM1F,QAAU0F,EAAM5F,SAAW4F,EAAM3F,SACpE,CASKi7K,CAAgBt1K,EAErB,CCq3CUu1K,CAAuBv1K,EAAOruD,GAAS,CACzCquD,EAAMrH,iBAIN,IAAIr+C,OACczG,IAAhBwhO,EACIA,EACApP,EAAWnyN,KAAcmyN,EAAW7oN,GAE1C6wN,EAASv8N,EAAI,CACX4I,UACArJ,QACAwjO,qBACAlG,WACAmG,kBAEH,IAEH,CACE5gO,EACAm6N,EACA7wN,EACAi4N,EACApkO,EACAU,EACAD,EACA+iO,EACAlG,EACAmG,GAGN,CA5c0Bc,CAAoB9jO,EAAI,CAC5C4I,UACArJ,QACAU,SACA8iO,qBACAlG,WACAmG,mBAWF,OAEEja,EAAAA,cAAA,IAAAoL,GAAA,GACM7xH,EAAI,CACRjrG,KAAMwrO,GAAgBxrO,EACtBgyE,QAAS+5J,GAAcN,EAAiBz5J,EAd5C,SACE/a,GAEI+a,GAASA,EAAQ/a,GAChBA,EAAMxH,kBACT48K,EAAgBp1K,EAEpB,EAQI7hB,IAAKA,EACLxsC,OAAQA,IAGd,IAgVF,IAAKi8N,GAAAA,GAQAG,GAAAA,IARAH,GAAAA,KAAAA,GAMJ,KALC,4CACAA,GAAA,sBACAA,GAAA,oCACAA,GAAA,wBACAA,GAAA,iDAGGG,GAAAA,KAAAA,GAIJ,KAHC,wBACAA,GAAA,0BACAA,GAAA,4CC32CF,SAAS,KACP,OAAO,GAAWnhO,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUtE,GACjE,IAAK,IAAIukB,EAAI,EAAGA,EAAI/d,UAAUtO,OAAQqsB,IAAK,CACzC,IAAIkG,EAAIjkB,UAAU+d,GAClB,IAAK,IAAIluB,KAAKo0B,GAAG,CAAG,GAAEpwB,eAAevD,KAAK2zB,EAAGp0B,KAAO2J,EAAE3J,GAAKo0B,EAAEp0B,GAC/D,CACA,OAAO2J,CACT,EAAG,GAASoR,MAAM,KAAM5K,UAC1B,gBCPA,SAAS,GAAQ+d,EAAGluB,GAClB,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GACpB,GAAIxnB,OAAOiX,sBAAuB,CAChC,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GACrCluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAC3B,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAC/C,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EACvB,CACA,OAAOoB,CACT,CACA,SAAS,GAAelG,GACtB,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CACzC,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAC/CA,EAAI,EAAI,GAAQ0G,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,IAC/C,KAAc,YAChB,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM,GAAQ1tB,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAC7I0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GACjE,GACF,CACA,OAAOkuB,CACT,CCrBA,SAAS,GAAkBluB,EAAG4a,IAC3B,MAAQA,GAAKA,EAAI5a,EAAE6B,UAAY+Y,EAAI5a,EAAE6B,QACtC,IAAK,IAAIqsB,EAAI,EAAGvkB,EAAIpI,MAAMqZ,GAAIsT,EAAItT,EAAGsT,IAAKvkB,EAAEukB,GAAKluB,EAAEkuB,GACnD,OAAOvkB,CACT,CCJA,SAAS,GAAiB3J,GACxB,GAAI,oBAAsBoD,QAAU,MAAQpD,EAAEoD,OAAOC,WAAa,MAAQrD,EAAE,cAAe,OAAOuB,MAAM8J,KAAKrL,EAC/G,CCDA,SAAS,GAA4BA,EAAG4a,GACtC,GAAI5a,EAAG,CACL,GAAI,iBAAmBA,EAAG,OAAO,GAAiBA,EAAG4a,GACrD,IAAIwZ,EAAI,CAAC,EAAE1lB,SAASjO,KAAKT,GAAG0F,MAAM,GAAI,GACtC,MAAO,WAAa0uB,GAAKp0B,EAAEsD,cAAgB8wB,EAAIp0B,EAAEsD,YAAYqL,MAAO,QAAUylB,GAAK,QAAUA,EAAI7yB,MAAM8J,KAAKrL,GAAK,cAAgBo0B,GAAK,2CAA2C1W,KAAK0W,GAAK,GAAiBp0B,EAAG4a,QAAK,CACtN,CACF,CCHA,SAAS,GAAmB5a,GAC1B,OCJF,SAA4BA,GAC1B,GAAIuB,MAAMqR,QAAQ5S,GAAI,OAAO,GAAiBA,EAChD,CDES,CAAkBA,IAAM,GAAgBA,IAAM,GAA2BA,IELlF,WACE,MAAM,IAAIsP,UAAU,uIACtB,CFGwF,EACxF,CGNA,SAAS,GAAgBtP,GACvB,GAAIuB,MAAMqR,QAAQ5S,GAAI,OAAOA,CAC/B,CCFA,SAAS,KACP,MAAM,IAAIsP,UAAU,4IACtB,CCEA,SAAS,GAAetP,EAAGkuB,GACzB,OAAO,GAAeluB,ICLxB,SAA+BA,EAAGwC,GAChC,IAAI4xB,EAAI,MAAQp0B,EAAI,KAAO,oBAAsBoD,QAAUpD,EAAEoD,OAAOC,WAAarD,EAAE,cACnF,GAAI,MAAQo0B,EAAG,CACb,IAAIlG,EACFvkB,EACA/H,EACA0yB,EACA1Z,EAAI,GACJ/K,GAAI,EACJmjB,GAAI,EACN,IACE,GAAIpxB,GAAKwyB,EAAIA,EAAE3zB,KAAKT,IAAI4U,KAAM,IAAMpS,EAAG,CACrC,GAAIkE,OAAO0tB,KAAOA,EAAG,OACrBvkB,GAAI,CACN,MAAO,OAASA,GAAKqe,EAAItsB,EAAEnB,KAAK2zB,IAAIzO,QAAU/K,EAAErY,KAAK2rB,EAAE5uB,OAAQsb,EAAE/Y,SAAWW,GAAIqN,GAAI,GACtF,CAAE,MAAO7P,GACPgzB,GAAI,EAAIrpB,EAAI3J,CACd,CAAE,QACA,IACE,IAAK6P,GAAK,MAAQukB,EAAU,SAAME,EAAIF,EAAU,SAAK1tB,OAAO4tB,KAAOA,GAAI,MACzE,CAAE,QACA,GAAItB,EAAG,MAAMrpB,CACf,CACF,CACA,OAAOiR,CACT,CACF,CDrB8B,CAAqB5a,EAAGkuB,IAAM,GAA2BluB,EAAGkuB,IAAM,IAChG,CELA,SAAS,GAAyBA,EAAGkG,GACnC,GAAI,MAAQlG,EAAG,MAAO,CAAC,EACvB,IAAI8E,EACFhzB,EACA4B,ECLJ,SAAuC5B,EAAGkuB,GACxC,GAAI,MAAQluB,EAAG,MAAO,CAAC,EACvB,IAAIo0B,EAAI,CAAC,EACT,IAAK,IAAIzqB,KAAK3J,EAAG,GAAI,CAAC,EAAEgE,eAAevD,KAAKT,EAAG2J,GAAI,CACjD,IAAK,IAAMukB,EAAE9oB,QAAQuE,GAAI,SACzByqB,EAAEzqB,GAAK3J,EAAE2J,EACX,CACA,OAAOyqB,CACT,CDHQ,CAA6BlG,EAAGkG,GACtC,GAAI1tB,OAAOiX,sBAAuB,CAChC,IAAIhU,EAAIjD,OAAOiX,sBAAsBuQ,GACrC,IAAKluB,EAAI,EAAGA,EAAI2J,EAAE9H,OAAQ7B,IAAKgzB,EAAIrpB,EAAE3J,IAAK,IAAMo0B,EAAEhvB,QAAQ4tB,IAAM,CAAC,EAAE1X,qBAAqB7a,KAAKytB,EAAG8E,KAAOpxB,EAAEoxB,GAAK9E,EAAE8E,GAClH,CACA,OAAOpxB,CACT,sCEVI4tO,GAAwBpsO,OAAO00C,IAAI,iBACnC23L,GAAwBrsO,OAAO00C,IAAI,8BACnC43L,GAAsBtsO,OAAO00C,IAAI,kBAKtB,SAASghE,GAAWhkG,GACjC,OAEEA,GAA8B,YAApB5R,EAAAA,GAAAA,GAAQ4R,KAElBA,EAAOwjC,WAAak3L,IAAyB16N,EAAOwjC,WAAam3L,KAEjE36N,EAAOpN,OAASgoO,EAEpB,CCfe,SAASxnI,GAAQrjD,GAC9B,IAAI8mF,EAASx7H,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9E48J,EAAM,GAaV,OAZAwnD,EAAAA,SAAe/yN,QAAQqjD,GAAU,SAAUl8C,SAC1BgF,IAAVhF,GAAiC,OAAVA,GAAoBgjI,EAAOgkG,aAGnDpuO,MAAMqR,QAAQjK,GAChBokK,EAAMA,EAAI7nK,OAAOgjG,GAAQv/F,IAChBmwG,GAAWnwG,IAAUA,EAAM4vC,MACpCw0H,EAAMA,EAAI7nK,OAAOgjG,GAAQv/F,EAAM4vC,MAAMsM,SAAU8mF,IAE/CohC,EAAIxqK,KAAKoG,GAEb,IACOokK,CACT,CCjBA,IAAI6iE,GAAS,CAAC,EACVC,GAAgB,GAqBb,SAASvQ,GAAQwQ,EAAO5/J,GAS/B,CAGO,SAAS6/J,GAAKD,EAAO5/J,GAS5B,CAIO,SAASzvE,GAAKkS,EAAQm9N,EAAO5/J,GAC7B4/J,GAAUF,GAAO1/J,KACpBv9D,GAAO,EAAOu9D,GACd0/J,GAAO1/J,IAAW,EAEtB,CAGO,SAAS8/J,GAAYF,EAAO5/J,GACjCzvE,GAAK6+N,GAASwQ,EAAO5/J,EACvB,CAMA8/J,GAAYC,WAxDY,SAAoBnhO,GAC1C+gO,GAActtO,KAAKuM,EACrB,EAuDAkhO,GAAYE,YApBL,WACLN,GAAS,CAAC,CACZ,EAmBAI,GAAYG,SALL,SAAkBL,EAAO5/J,GAC9BzvE,GAAKsvO,GAAMD,EAAO5/J,EACpB,EAIA,YChEO,SAASkgK,GAAM9nO,GAGpB,OAAOA,aAAgB41C,aAAe51C,aAAgB+nO,UACxD,CAKO,SAASC,GAAOhoO,GACrB,OAAIA,GAA0B,YAAlBpF,EAAAA,GAAAA,GAAQoF,IAAsB8nO,GAAM9nO,EAAKioO,eAC5CjoO,EAAKioO,cAEVH,GAAM9nO,GACDA,EAEF,IACT,CAKe,SAAS42E,GAAY52E,GAClC,IAKMkoO,EALFC,EAAUH,GAAOhoO,GACrB,OAAImoO,IAGAnoO,aAAgBisN,EAAAA,UAEwC,QAAlDic,EAAwB7C,GAAAA,mBAA4D,IAA1B6C,OAAmC,EAASA,EAAsB/vO,KAAKktO,GAAUrlO,GAE9I,KACT,gBClCe,SAASwlE,GAAQ3qB,EAAUutL,EAAWC,GACnD,IAAIC,EAAWrc,EAAAA,OAAa,CAAC,GAK7B,MAJM,UAAWqc,EAASjqM,UAAYgqM,EAAaC,EAASjqM,QAAQ+pM,UAAWA,KAC7EE,EAASjqM,QAAQrnC,MAAQ6jD,IACzBytL,EAASjqM,QAAQ+pM,UAAYA,GAExBE,EAASjqM,QAAQrnC,KAC1B,CCHA,IAAIuxO,GAAoBjpO,OAAO2R,EAAAA,QAAQM,MAAM,KAAK,IACvCi3N,GAAU,SAAiB74L,EAAK3vC,GACtB,oBAAR2vC,EACTA,EAAI3vC,GACsB,YAAjBpF,EAAAA,GAAAA,GAAQ+0C,IAAqBA,GAAO,YAAaA,IAC1DA,EAAItR,QAAUr+B,EAElB,EAKWyoO,GAAa,WACtB,IAAK,IAAIC,EAAO7gO,UAAUtO,OAAQsjE,EAAO,IAAI5jE,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9rK,EAAK8rK,GAAQ9gO,UAAU8gO,GAEzB,IAAIC,EAAU/rK,EAAKtzD,OAAOY,SAC1B,OAAIy+N,EAAQrvO,QAAU,EACbqvO,EAAQ,GAEV,SAAU5oO,GACf68D,EAAK3jE,SAAQ,SAAUy2C,GACrB64L,GAAQ74L,EAAK3vC,EACf,GACF,CACF,EACW6oO,GAAgB,WACzB,IAAK,IAAIC,EAAQjhO,UAAUtO,OAAQsjE,EAAO,IAAI5jE,MAAM6vO,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFlsK,EAAKksK,GAASlhO,UAAUkhO,GAE1B,OAAOvjK,IAAQ,WACb,OAAOijK,GAAWh2N,WAAM,EAAQoqD,EAClC,GAAGA,GAAM,SAAU7nC,EAAM1oB,GACvB,OAAO0oB,EAAKz7B,SAAW+S,EAAK/S,QAAUy7B,EAAKvrB,OAAM,SAAUkmC,EAAKr2C,GAC9D,OAAOq2C,IAAQrjC,EAAKhT,EACtB,GACF,GACF,EACW0vO,GAAa,SAAoBC,GAC1C,IAAIC,EAAiBC,EACrB,IAAKF,EACH,OAAO,EAIT,GAAIG,GAAeH,IAAoBV,IAAqB,GAC1D,OAAO,EAET,IAAInpO,GAAOqxG,EAAAA,GAAAA,QAAOw4H,GAAmBA,EAAgB7pO,KAAKA,KAAO6pO,EAAgB7pO,KAGjF,SAAoB,oBAATA,GAAgE,QAAtC8pO,EAAkB9pO,EAAKnH,iBAA2C,IAApBixO,GAA8BA,EAAgB/uL,QAAW/6C,EAAK4wC,WAAaugE,GAAAA,gBAK/H,oBAApB04H,GAA4F,QAAvDE,EAAwBF,EAAgBhxO,iBAAiD,IAA1BkxO,GAAoCA,EAAsBhvL,QAAW8uL,EAAgBj5L,WAAaugE,GAAAA,WAInN,EACA,SAAS64H,GAAeppO,GACtB,OAAoB4vG,EAAAA,EAAAA,gBAAe5vG,KAAUwwG,GAAWxwG,EAC1D,CACO,IASIqpO,GAAa,SAAoBrpO,GAC1C,GAAIA,GAAQopO,GAAeppO,GAAO,CAChC,IAAIspO,EAAMtpO,EAIV,OAAOspO,EAAIr5L,MAAMj9B,qBAAqB,OAASs2N,EAAIr5L,MAAMN,IAAM25L,EAAI35L,GACrE,CACA,OAAO,IACT,ECtFW45L,GAAiCtd,EAAAA,cAAoB,MCMhE,IAAIud,GAAW,WACX,GAAmB,qBAARr/L,IACP,OAAOA,IASX,SAASkuL,EAAS5zE,EAAKvnJ,GACnB,IAAImM,GAAU,EAQd,OAPAo7I,EAAIj7I,MAAK,SAAUsf,EAAOxgB,GACtB,OAAIwgB,EAAM,KAAO5rB,IACbmM,EAASf,GACF,EAGf,IACOe,CACX,CACA,OAAsB,WAClB,SAASogO,IACLrxO,KAAKsxO,YAAc,EACvB,CAsEA,OArEAtrO,OAAOgN,eAAeq+N,EAAQxxO,UAAW,OAAQ,CAI7C2N,IAAK,WACD,OAAOxN,KAAKsxO,YAAYnwO,MAC5B,EACAmT,YAAY,EACZlF,cAAc,IAMlBiiO,EAAQxxO,UAAU2N,IAAM,SAAU1I,GAC9B,IAAIoL,EAAQ+vN,EAASjgO,KAAKsxO,YAAaxsO,GACnC4rB,EAAQ1wB,KAAKsxO,YAAYphO,GAC7B,OAAOwgB,GAASA,EAAM,EAC1B,EAMA2gN,EAAQxxO,UAAU8J,IAAM,SAAU7E,EAAKlG,GACnC,IAAIsR,EAAQ+vN,EAASjgO,KAAKsxO,YAAaxsO,IAClCoL,EACDlQ,KAAKsxO,YAAYphO,GAAO,GAAKtR,EAG7BoB,KAAKsxO,YAAYzvO,KAAK,CAACiD,EAAKlG,GAEpC,EAKAyyO,EAAQxxO,UAAUkvD,OAAS,SAAUjqD,GACjC,IAAIsR,EAAUpW,KAAKsxO,YACfphO,EAAQ+vN,EAAS7pN,EAAStR,IACzBoL,GACDkG,EAAQ+5B,OAAOjgC,EAAO,EAE9B,EAKAmhO,EAAQxxO,UAAUgT,IAAM,SAAU/N,GAC9B,SAAUm7N,EAASjgO,KAAKsxO,YAAaxsO,EACzC,EAIAusO,EAAQxxO,UAAUquF,MAAQ,WACtBluF,KAAKsxO,YAAYnhM,OAAO,EAC5B,EAMAkhM,EAAQxxO,UAAUiB,QAAU,SAAUkqB,EAAU87G,QAChC,IAARA,IAAkBA,EAAM,MAC5B,IAAK,IAAI3rG,EAAK,EAAGmB,EAAKt8B,KAAKsxO,YAAan2M,EAAKmB,EAAGn7B,OAAQg6B,IAAM,CAC1D,IAAIzK,EAAQ4L,EAAGnB,GACfnQ,EAASjrB,KAAK+mI,EAAKp2G,EAAM,GAAIA,EAAM,GACvC,CACJ,EACO2gN,CACX,CA1EsB,EA2E1B,CAjGe,GAsGX9D,GAA8B,qBAAXhoO,QAA8C,qBAAb+B,UAA4B/B,OAAO+B,WAAaA,SAGpGiqO,GACsB,qBAAX76N,EAAAA,GAA0BA,EAAAA,EAAOlV,OAASA,KAC1CkV,EAAAA,EAES,qBAAT3X,MAAwBA,KAAKyC,OAASA,KACtCzC,KAEW,qBAAXwG,QAA0BA,OAAO/D,OAASA,KAC1C+D,OAGJ4B,SAAS,cAATA,GASPqqO,GACqC,oBAA1BC,sBAIAA,sBAAsBlkO,KAAKgkO,IAE/B,SAAUvmN,GAAY,OAAOkC,YAAW,WAAc,OAAOlC,EAASmL,KAAKw8B,MAAQ,GAAG,IAAO,GAAK,EAqE7G,IAGI++K,GAAiB,CAAC,MAAO,QAAS,SAAU,OAAQ,QAAS,SAAU,OAAQ,UAE/EC,GAAwD,qBAArBhmN,iBAInCimN,GAA0C,WAM1C,SAASA,IAML5xO,KAAK6xO,YAAa,EAMlB7xO,KAAK8xO,sBAAuB,EAM5B9xO,KAAK+xO,mBAAqB,KAM1B/xO,KAAKgyO,WAAa,GAClBhyO,KAAKiyO,iBAAmBjyO,KAAKiyO,iBAAiB1kO,KAAKvN,MACnDA,KAAKkyO,QAjGb,SAAmBlnN,EAAUs7E,GACzB,IAAI6rI,GAAc,EAAOC,GAAe,EAAO9sI,EAAe,EAO9D,SAAS+sI,IACDF,IACAA,GAAc,EACdnnN,KAEAonN,GACAl7F,GAER,CAQA,SAASo7F,IACLd,GAAwBa,EAC5B,CAMA,SAASn7F,IACL,IAAIxkF,EAAYv8B,KAAKw8B,MACrB,GAAIw/K,EAAa,CAEb,GAAIz/K,EAAY4yC,EA7CN,EA8CN,OAMJ8sI,GAAe,CACnB,MAEID,GAAc,EACdC,GAAe,EACfllN,WAAWolN,EAAiBhsI,GAEhChB,EAAe5yC,CACnB,CACA,OAAOwkF,CACX,CA4CuBjpC,CAASjuG,KAAKkyO,QAAQ3kO,KAAKvN,MAzC9B,GA0ChB,CA+JA,OAxJA4xO,EAAyB/xO,UAAU0yO,YAAc,SAAU/lN,IACjDxsB,KAAKgyO,WAAWttO,QAAQ8nB,IAC1BxsB,KAAKgyO,WAAWnwO,KAAK2qB,GAGpBxsB,KAAK6xO,YACN7xO,KAAKwyO,UAEb,EAOAZ,EAAyB/xO,UAAU4yO,eAAiB,SAAUjmN,GAC1D,IAAIkmN,EAAY1yO,KAAKgyO,WACjB9hO,EAAQwiO,EAAUhuO,QAAQ8nB,IAEzBtc,GACDwiO,EAAUviM,OAAOjgC,EAAO,IAGvBwiO,EAAUvxO,QAAUnB,KAAK6xO,YAC1B7xO,KAAK2yO,aAEb,EAOAf,EAAyB/xO,UAAUqyO,QAAU,WACnBlyO,KAAK4yO,oBAIvB5yO,KAAKkyO,SAEb,EASAN,EAAyB/xO,UAAU+yO,iBAAmB,WAElD,IAAIC,EAAkB7yO,KAAKgyO,WAAW7gO,QAAO,SAAUqb,GACnD,OAAOA,EAASsmN,eAAgBtmN,EAASumN,WAC7C,IAOA,OADAF,EAAgB/xO,SAAQ,SAAU0rB,GAAY,OAAOA,EAASwmN,iBAAmB,IAC1EH,EAAgB1xO,OAAS,CACpC,EAOAywO,EAAyB/xO,UAAU2yO,SAAW,WAGrCjF,KAAavtO,KAAK6xO,aAMvBvqO,SAASiB,iBAAiB,gBAAiBvI,KAAKiyO,kBAChD1sO,OAAOgD,iBAAiB,SAAUvI,KAAKkyO,SACnCP,IACA3xO,KAAK+xO,mBAAqB,IAAIpmN,iBAAiB3rB,KAAKkyO,SACpDlyO,KAAK+xO,mBAAmBtlN,QAAQnlB,SAAU,CACtC2rO,YAAY,EACZC,WAAW,EACXxmN,eAAe,EACfymN,SAAS,MAIb7rO,SAASiB,iBAAiB,qBAAsBvI,KAAKkyO,SACrDlyO,KAAK8xO,sBAAuB,GAEhC9xO,KAAK6xO,YAAa,EACtB,EAOAD,EAAyB/xO,UAAU8yO,YAAc,WAGxCpF,IAAcvtO,KAAK6xO,aAGxBvqO,SAASwiD,oBAAoB,gBAAiB9pD,KAAKiyO,kBACnD1sO,OAAOukD,oBAAoB,SAAU9pD,KAAKkyO,SACtClyO,KAAK+xO,oBACL/xO,KAAK+xO,mBAAmBqB,aAExBpzO,KAAK8xO,sBACLxqO,SAASwiD,oBAAoB,qBAAsB9pD,KAAKkyO,SAE5DlyO,KAAK+xO,mBAAqB,KAC1B/xO,KAAK8xO,sBAAuB,EAC5B9xO,KAAK6xO,YAAa,EACtB,EAQAD,EAAyB/xO,UAAUoyO,iBAAmB,SAAU31M,GAC5D,IAAIC,EAAKD,EAAGmjB,aAAcA,OAAsB,IAAPljB,EAAgB,GAAKA,EAEvCm1M,GAAetgO,MAAK,SAAUtM,GACjD,SAAU26C,EAAa/6C,QAAQI,EACnC,KAEI9E,KAAKkyO,SAEb,EAMAN,EAAyByB,YAAc,WAInC,OAHKrzO,KAAKszO,YACNtzO,KAAKszO,UAAY,IAAI1B,GAElB5xO,KAAKszO,SAChB,EAMA1B,EAAyB0B,UAAY,KAC9B1B,CACX,CAjM8C,GA0M1C2B,GAAsB,SAAUxoO,EAAQ8sC,GACxC,IAAK,IAAI1c,EAAK,EAAGmB,EAAKt2B,OAAOC,KAAK4xC,GAAQ1c,EAAKmB,EAAGn7B,OAAQg6B,IAAM,CAC5D,IAAIr2B,EAAMw3B,EAAGnB,GACbn1B,OAAOgN,eAAejI,EAAQjG,EAAK,CAC/BlG,MAAOi5C,EAAM/yC,GACbwP,YAAY,EACZC,UAAU,EACVnF,cAAc,GAEtB,CACA,OAAOrE,CACX,EAQIyoO,GAAe,SAAUzoO,GAOzB,OAHkBA,GAAUA,EAAO44C,eAAiB54C,EAAO44C,cAAcgY,aAGnD41K,EAC1B,EAGIkC,GAAYC,GAAe,EAAG,EAAG,EAAG,GAOxC,SAASC,GAAQ/0O,GACb,OAAO2jC,WAAW3jC,IAAU,CAChC,CAQA,SAASg1O,GAAe93M,GAEpB,IADA,IAAI+3M,EAAY,GACP14M,EAAK,EAAGA,EAAK1rB,UAAUtO,OAAQg6B,IACpC04M,EAAU14M,EAAK,GAAK1rB,UAAU0rB,GAElC,OAAO04M,EAAU50M,QAAO,SAAU5c,EAAMhX,GAEpC,OAAOgX,EAAOsxN,GADF73M,EAAO,UAAYzwB,EAAW,UAE9C,GAAG,EACP,CAkCA,SAASyoO,GAA0B/oO,GAG/B,IAAImvG,EAAcnvG,EAAOmvG,YAAaG,EAAetvG,EAAOsvG,aAS5D,IAAKH,IAAgBG,EACjB,OAAOo5H,GAEX,IAAI33M,EAAS03M,GAAYzoO,GAAQvF,iBAAiBuF,GAC9CgpO,EA3CR,SAAqBj4M,GAGjB,IAFA,IACIi4M,EAAW,CAAC,EACP54M,EAAK,EAAG64M,EAFD,CAAC,MAAO,QAAS,SAAU,QAED74M,EAAK64M,EAAY7yO,OAAQg6B,IAAM,CACrE,IAAI9vB,EAAW2oO,EAAY74M,GACvBv8B,EAAQk9B,EAAO,WAAazwB,GAChC0oO,EAAS1oO,GAAYsoO,GAAQ/0O,EACjC,CACA,OAAOm1O,CACX,CAkCmBE,CAAYn4M,GACvBo4M,EAAWH,EAAS1yO,KAAO0yO,EAASvoO,MACpC2oO,EAAUJ,EAASzyO,IAAMyyO,EAAS3tO,OAKlCnE,EAAQ0xO,GAAQ73M,EAAO75B,OAAQN,EAASgyO,GAAQ73M,EAAOn6B,QAqB3D,GAlByB,eAArBm6B,EAAOs4M,YAOH5yO,KAAK22B,MAAMl2B,EAAQiyO,KAAch6H,IACjCj4G,GAAS2xO,GAAe93M,EAAQ,OAAQ,SAAWo4M,GAEnD1yO,KAAK22B,MAAMx2B,EAASwyO,KAAa95H,IACjC14G,GAAUiyO,GAAe93M,EAAQ,MAAO,UAAYq4M,KAoDhE,SAA2BppO,GACvB,OAAOA,IAAWyoO,GAAYzoO,GAAQzD,SAASk0D,eACnD,CA/CS64K,CAAkBtpO,GAAS,CAK5B,IAAIupO,EAAgB9yO,KAAK22B,MAAMl2B,EAAQiyO,GAAYh6H,EAC/Cq6H,EAAiB/yO,KAAK22B,MAAMx2B,EAASwyO,GAAW95H,EAMpB,IAA5B74G,KAAK6E,IAAIiuO,KACTryO,GAASqyO,GAEoB,IAA7B9yO,KAAK6E,IAAIkuO,KACT5yO,GAAU4yO,EAElB,CACA,OAAOb,GAAeK,EAAS1yO,KAAM0yO,EAASzyO,IAAKW,EAAON,EAC9D,CAOA,IAAI6yO,GAGkC,qBAAvBC,mBACA,SAAU1pO,GAAU,OAAOA,aAAkByoO,GAAYzoO,GAAQ0pO,kBAAoB,EAKzF,SAAU1pO,GAAU,OAAQA,aAAkByoO,GAAYzoO,GAAQ4kO,YAC3C,oBAAnB5kO,EAAO2pO,OAAyB,EAiB/C,SAASC,GAAe5pO,GACpB,OAAKwiO,GAGDiH,GAAqBzpO,GAhH7B,SAA2BA,GACvB,IAAI09M,EAAO19M,EAAO2pO,UAClB,OAAOhB,GAAe,EAAG,EAAGjrB,EAAKxmN,MAAOwmN,EAAK9mN,OACjD,CA8GeizO,CAAkB7pO,GAEtB+oO,GAA0B/oO,GALtB0oO,EAMf,CAiCA,SAASC,GAAe/oN,EAAGoK,EAAG9yB,EAAON,GACjC,MAAO,CAAEgpB,EAAGA,EAAGoK,EAAGA,EAAG9yB,MAAOA,EAAON,OAAQA,EAC/C,CAMA,IAAIkzO,GAAmC,WAMnC,SAASA,EAAkB9pO,GAMvB/K,KAAK80O,eAAiB,EAMtB90O,KAAK+0O,gBAAkB,EAMvB/0O,KAAKg1O,aAAetB,GAAe,EAAG,EAAG,EAAG,GAC5C1zO,KAAK+K,OAASA,CAClB,CAyBA,OAlBA8pO,EAAkBh1O,UAAUo1O,SAAW,WACnC,IAAI31M,EAAOq1M,GAAe30O,KAAK+K,QAE/B,OADA/K,KAAKg1O,aAAe11M,EACZA,EAAKr9B,QAAUjC,KAAK80O,gBACxBx1M,EAAK39B,SAAW3B,KAAK+0O,eAC7B,EAOAF,EAAkBh1O,UAAUq1O,cAAgB,WACxC,IAAI51M,EAAOt/B,KAAKg1O,aAGhB,OAFAh1O,KAAK80O,eAAiBx1M,EAAKr9B,MAC3BjC,KAAK+0O,gBAAkBz1M,EAAK39B,OACrB29B,CACX,EACOu1M,CACX,CApDuC,GAsDnCM,GAOA,SAA6BpqO,EAAQqqO,GACjC,IAAIC,EA/FZ,SAA4B/4M,GACxB,IAAI3R,EAAI2R,EAAG3R,EAAGoK,EAAIuH,EAAGvH,EAAG9yB,EAAQq6B,EAAGr6B,MAAON,EAAS26B,EAAG36B,OAElD2zO,EAAoC,qBAApBC,gBAAkCA,gBAAkBvvO,OACpEs5B,EAAOt5B,OAAO4D,OAAO0rO,EAAOz1O,WAShC,OAPA0zO,GAAmBj0M,EAAM,CACrB3U,EAAGA,EAAGoK,EAAGA,EAAG9yB,MAAOA,EAAON,OAAQA,EAClCL,IAAKyzB,EACLvpB,MAAOmf,EAAI1oB,EACXmE,OAAQzE,EAASozB,EACjB1zB,KAAMspB,IAEH2U,CACX,CAiF0Bk2M,CAAmBJ,GAOrC7B,GAAmBvzO,KAAM,CAAE+K,OAAQA,EAAQsqO,YAAaA,GAC5D,EAIAI,GAAmC,WAWnC,SAASA,EAAkBzqN,EAAU0qN,EAAYC,GAc7C,GAPA31O,KAAK41O,oBAAsB,GAM3B51O,KAAK61O,cAAgB,IAAIzE,GACD,oBAAbpmN,EACP,MAAM,IAAIpc,UAAU,2DAExB5O,KAAK81O,UAAY9qN,EACjBhrB,KAAK+1O,YAAcL,EACnB11O,KAAKg2O,aAAeL,CACxB,CAmHA,OA5GAF,EAAkB51O,UAAU4sB,QAAU,SAAU1hB,GAC5C,IAAK0E,UAAUtO,OACX,MAAM,IAAIyN,UAAU,4CAGxB,GAAuB,qBAAZgqK,SAA6BA,mBAAmB5yK,OAA3D,CAGA,KAAM+E,aAAkByoO,GAAYzoO,GAAQ6tK,SACxC,MAAM,IAAIhqK,UAAU,yCAExB,IAAIqnO,EAAej2O,KAAK61O,cAEpBI,EAAapjO,IAAI9H,KAGrBkrO,EAAatsO,IAAIoB,EAAQ,IAAI8pO,GAAkB9pO,IAC/C/K,KAAK+1O,YAAYxD,YAAYvyO,MAE7BA,KAAK+1O,YAAY7D,UAZjB,CAaJ,EAOAuD,EAAkB51O,UAAUq2O,UAAY,SAAUnrO,GAC9C,IAAK0E,UAAUtO,OACX,MAAM,IAAIyN,UAAU,4CAGxB,GAAuB,qBAAZgqK,SAA6BA,mBAAmB5yK,OAA3D,CAGA,KAAM+E,aAAkByoO,GAAYzoO,GAAQ6tK,SACxC,MAAM,IAAIhqK,UAAU,yCAExB,IAAIqnO,EAAej2O,KAAK61O,cAEnBI,EAAapjO,IAAI9H,KAGtBkrO,EAAalnL,OAAOhkD,GACfkrO,EAAa5zN,MACdriB,KAAK+1O,YAAYtD,eAAezyO,MAXpC,CAaJ,EAMAy1O,EAAkB51O,UAAUuzO,WAAa,WACrCpzO,KAAKm2O,cACLn2O,KAAK61O,cAAc3nJ,QACnBluF,KAAK+1O,YAAYtD,eAAezyO,KACpC,EAOAy1O,EAAkB51O,UAAUizO,aAAe,WACvC,IAAIr4M,EAAQz6B,KACZA,KAAKm2O,cACLn2O,KAAK61O,cAAc/0O,SAAQ,SAAUs1O,GAC7BA,EAAYnB,YACZx6M,EAAMm7M,oBAAoB/zO,KAAKu0O,EAEvC,GACJ,EAOAX,EAAkB51O,UAAUmzO,gBAAkB,WAE1C,GAAKhzO,KAAK+yO,YAAV,CAGA,IAAIjsG,EAAM9mI,KAAKg2O,aAEX5/N,EAAUpW,KAAK41O,oBAAoBvoO,KAAI,SAAU+oO,GACjD,OAAO,IAAIjB,GAAoBiB,EAAYrrO,OAAQqrO,EAAYlB,gBACnE,IACAl1O,KAAK81O,UAAU/1O,KAAK+mI,EAAK1wH,EAAS0wH,GAClC9mI,KAAKm2O,aAPL,CAQJ,EAMAV,EAAkB51O,UAAUs2O,YAAc,WACtCn2O,KAAK41O,oBAAoBzlM,OAAO,EACpC,EAMAslM,EAAkB51O,UAAUkzO,UAAY,WACpC,OAAO/yO,KAAK41O,oBAAoBz0O,OAAS,CAC7C,EACOs0O,CACX,CAnJuC,GAwJnC/C,GAA+B,qBAAZh3N,QAA0B,IAAIA,QAAY,IAAI01N,GAKjEiF,GAOA,SAASA,EAAerrN,GACpB,KAAMhrB,gBAAgBq2O,GAClB,MAAM,IAAIznO,UAAU,sCAExB,IAAKa,UAAUtO,OACX,MAAM,IAAIyN,UAAU,4CAExB,IAAI8mO,EAAa9D,GAAyByB,cACtC7mN,EAAW,IAAIipN,GAAkBzqN,EAAU0qN,EAAY11O,MAC3D0yO,GAAU/oO,IAAI3J,KAAMwsB,EACxB,EAIJ,CACI,UACA,YACA,cACF1rB,SAAQ,SAAUmR,GAChBokO,GAAex2O,UAAUoS,GAAU,WAC/B,IAAIqqB,EACJ,OAAQA,EAAKo2M,GAAUllO,IAAIxN,OAAOiS,GAAQoI,MAAMiiB,EAAI7sB,UACxD,CACJ,IAUA,SAN2C,qBAA5B8hO,GAAS8E,eACT9E,GAAS8E,eAEbA,GC15BX,IAAIC,GAAmB,IAAIvkM,IAY3B,IAAIwkM,GAAiB,IAAIF,IAXzB,SAAkBG,GAChBA,EAAS11O,SAAQ,SAAU21O,GACzB,IAAIC,EACA3rO,EAAS0rO,EAAO1rO,OACuC,QAA1D2rO,EAAwBJ,GAAiB9oO,IAAIzC,UAA+C,IAA1B2rO,GAAoCA,EAAsB51O,SAAQ,SAAUm9D,GAC7I,OAAOA,EAASlzD,EAClB,GACF,GACF,ICXA,SAAS,GAAgBmP,EAAGjR,GAC1B,KAAMiR,aAAajR,GAAI,MAAM,IAAI2F,UAAU,oCAC7C,eCDA,SAAS,GAAkB4e,EAAGluB,GAC5B,IAAK,IAAIo0B,EAAI,EAAGA,EAAIp0B,EAAE6B,OAAQuyB,IAAK,CACjC,IAAIpB,EAAIhzB,EAAEo0B,GACVpB,EAAEhe,WAAage,EAAEhe,aAAc,EAAIge,EAAEljB,cAAe,EAAI,UAAWkjB,IAAMA,EAAE/d,UAAW,GAAKvO,OAAOgN,eAAewa,GAAG,KAAa,YACnI,CACF,CACA,SAAS,GAAaA,EAAGluB,EAAGo0B,GAC1B,OAAOp0B,GAAK,GAAkBkuB,EAAE3tB,UAAWP,GAAIo0B,GAAK,GAAkBlG,EAAGkG,GAAI1tB,OAAOgN,eAAewa,EAAG,YAAa,CACjHjZ,UAAU,IACRiZ,CACN,CCXA,SAAS,GAAgBkG,EAAGlG,GAC1B,OAAO,GAAkBxnB,OAAO4O,eAAiB5O,OAAO4O,eAAerH,OAAS,SAAUmmB,EAAGlG,GAC3F,OAAOkG,EAAE3pB,UAAYyjB,EAAGkG,CAC1B,EAAG,GAAgBA,EAAGlG,EACxB,CCHA,SAAS,GAAUkG,EAAGlG,GACpB,GAAI,mBAAqBA,GAAK,OAASA,EAAG,MAAM,IAAI5e,UAAU,sDAC9D8kB,EAAE7zB,UAAYmG,OAAO4D,OAAO4jB,GAAKA,EAAE3tB,UAAW,CAC5C+C,YAAa,CACXhE,MAAO80B,EACPnf,UAAU,EACVnF,cAAc,KAEdpJ,OAAOgN,eAAe0gB,EAAG,YAAa,CACxCnf,UAAU,IACRiZ,GAAK,GAAekG,EAAGlG,EAC7B,CCZA,SAAS,GAAgBkG,GACvB,OAAO,GAAkB1tB,OAAO4O,eAAiB5O,OAAOmN,eAAe5F,OAAS,SAAUmmB,GACxF,OAAOA,EAAE3pB,WAAa/D,OAAOmN,eAAeugB,EAC9C,EAAG,GAAgBA,EACrB,CCJA,SAAS,KACP,IACE,IAAIA,GAAK3hB,QAAQlS,UAAUkhB,QAAQhhB,KAAK4hD,QAAQC,UAAU7vC,QAAS,IAAI,WAAa,IACtF,CAAE,MAAO2hB,GAAI,CACb,OAAQ,GAA4B,WAClC,QAASA,CACX,IACF,CCPA,SAAS,GAAuBlG,GAC9B,QAAI,IAAWA,EAAG,MAAM,IAAImpN,eAAe,6DAC3C,OAAOnpN,CACT,CCDA,SAAS,GAA2BkG,EAAGlG,GACrC,GAAIA,IAAM,WAAY,QAAQA,IAAM,mBAAqBA,GAAI,OAAOA,EACpE,QAAI,IAAWA,EAAG,MAAM,IAAI5e,UAAU,4DACtC,OAAO,GAAsB8kB,EAC/B,CCHA,SAAS,GAAaA,GACpB,IAAIp0B,EAAI,KACR,OAAO,WACL,IAAIkuB,EACF8E,EAAI,GAAeoB,GACrB,GAAIp0B,EAAG,CACL,IAAIq0B,EAAI,GAAe3zB,MAAM4C,YAC7B4qB,EAAIm0B,QAAQC,UAAUtvB,EAAG7iB,UAAWkkB,EACtC,MAAOnG,EAAI8E,EAAEjY,MAAMra,KAAMyP,WACzB,OAAO,GAA0BzP,KAAMwtB,EACzC,CACF,CCNA,IAAIopN,GAA0B,SAAUC,GACtCC,GAAUF,EAAYC,GACtB,IAAIx8M,EAAS08M,GAAaH,GAC1B,SAASA,IAEP,OADAI,GAAgBh3O,KAAM42O,GACfv8M,EAAOhgB,MAAMra,KAAMyP,UAC5B,CAOA,OANAwnO,GAAaL,EAAY,CAAC,CACxB9xO,IAAK,SACLlG,MAAO,WACL,OAAOoB,KAAK63C,MAAMsM,QACpB,KAEKyyL,CACT,CAd8B,CAc5B/iB,EAAAA,WCdF,SAASqjB,GAAer/L,EAAON,GAC7B,IAAI4M,EAAWtM,EAAMsM,SACnBH,EAAWnM,EAAMmM,SACfmzL,EAAatjB,EAAAA,OAAa,MAC1BujB,EAAavjB,EAAAA,OAAa,MAC1BwjB,EAAqBxjB,EAAAA,WAAiBsd,IAGtCmG,EAAoC,oBAAbnzL,EACvBozL,EAAiBD,EAAgBnzL,EAASgzL,GAAchzL,EAGxDqzL,EAAU3jB,EAAAA,OAAa,CACzB5xN,OAAQ,EACRN,QAAS,EACTs4G,aAAc,EACdG,cAAe,IAIbq9H,GAAUH,GAA8BzjB,EAAAA,eAAqB0jB,IAAmB3G,GAAW2G,GAC3FG,EAAYD,EAASxG,GAAWsG,GAAkB,KAClDI,EAAYlH,GAAciH,EAAWP,GACrCS,EAAS,WACX,IAAIC,EACJ,OAAOr5J,GAAY24J,EAAWlxM,WAE9BkxM,EAAWlxM,SAA2C,YAAhCzjC,EAAAA,GAAAA,GAAQ20O,EAAWlxM,SAAwBu4C,GAA2D,QAA9Cq5J,EAAsBV,EAAWlxM,eAA6C,IAAxB4xM,OAAiC,EAASA,EAAoBhI,eAAiB,OAASrxJ,GAAY44J,EAAWnxM,QACrP,EACA4tL,EAAAA,oBAA0Bt8K,GAAK,WAC7B,OAAOqgM,GACT,IAGA,IAAIE,EAAWjkB,EAAAA,OAAah8K,GAC5BigM,EAAS7xM,QAAU4R,EAGnB,IAAIkgM,EAAmBlkB,EAAAA,aAAkB,SAAU9oN,GACjD,IAAIitO,EAAoBF,EAAS7xM,QAC/BgyM,EAAWD,EAAkBC,SAC7B17N,EAAOy7N,EAAkBz7N,KACvB27N,EAAwBntO,EAAOrK,wBACjCuB,EAAQi2O,EAAsBj2O,MAC9BN,EAASu2O,EAAsBv2O,OAC7Bs4G,EAAclvG,EAAOkvG,YACvBG,EAAervG,EAAOqvG,aAOpB+9H,EAAa32O,KAAKC,MAAMQ,GACxBm2O,EAAc52O,KAAKC,MAAME,GAC7B,GAAI61O,EAAQvxM,QAAQhkC,QAAUk2O,GAAcX,EAAQvxM,QAAQtkC,SAAWy2O,GAAeZ,EAAQvxM,QAAQg0E,cAAgBA,GAAeu9H,EAAQvxM,QAAQm0E,eAAiBA,EAAc,CAClL,IAAI/3F,EAAO,CACTpgB,MAAOk2O,EACPx2O,OAAQy2O,EACRn+H,YAAaA,EACbG,aAAcA,GAEhBo9H,EAAQvxM,QAAU5jB,EAGlB,IAAIg2N,EAAoBp+H,IAAgBz4G,KAAK22B,MAAMl2B,GAASA,EAAQg4G,EAChEq+H,EAAqBl+H,IAAiB54G,KAAK22B,MAAMx2B,GAAUA,EAASy4G,EACpEm+H,EAAWC,GAAcA,GAAc,CAAC,EAAGn2N,GAAO,CAAC,EAAG,CACxD43F,YAAao+H,EACbj+H,aAAck+H,IAIO,OAAvBjB,QAAsD,IAAvBA,GAAiCA,EAAmBkB,EAAUxtO,EAAQwR,GACjG07N,GAEFjvO,QAAQM,UAAUrJ,MAAK,WACrBg4O,EAASM,EAAUxtO,EACrB,GAEJ,CACF,GAAG,IAcH,OAXA8oN,EAAAA,WAAgB,WACd,IXxEoBj0L,EAAS5U,EWwEzBytN,EAAiBb,IAIrB,OAHIa,IAAmBz0L,IXzEHpkB,EW0EV64M,EX1EmBztN,EW0EH+sN,EXzEvBzB,GAAiBzjO,IAAI+sB,KACxB02M,GAAiB3sO,IAAIi2B,EAAS,IAAIkb,KAClCy7L,GAAe9pN,QAAQmT,IAEzB02M,GAAiB9oO,IAAIoyB,GAASpK,IAAIxK,IWuEzB,WACL,OXtEC,SAAmB4U,EAAS5U,GAC7BsrN,GAAiBzjO,IAAI+sB,KACvB02M,GAAiB9oO,IAAIoyB,GAASmvB,OAAO/jC,GAChCsrN,GAAiB9oO,IAAIoyB,GAASvd,OACjCk0N,GAAeL,UAAUt2M,GACzB02M,GAAiBvnL,OAAOnvB,IAG9B,CW8Das2M,CAAUuC,EAAgBV,EACnC,CACF,GAAG,CAACZ,EAAWlxM,QAAS+d,IAGJ6vK,EAAAA,cAAoB+iB,GAAY,CAClDr/L,IAAK6/L,GACJK,EAAsB5jB,EAAAA,aAAmB0jB,EAAgB,CAC1DhgM,IAAKogM,IACFJ,EACP,CAKA,SAJqC1jB,EAAAA,WAAiBqjB,ICnGtD,SAASb,GAAex+L,EAAON,GAC7B,IAAI4M,EAAWtM,EAAMsM,SASrB,OARqC,oBAAbA,EAA0B,CAACA,GAAYqjD,GAAQrjD,IAQrD92C,KAAI,SAAUpF,EAAOiI,GACrC,IAAIpL,GAAiB,OAAVmD,QAA4B,IAAVA,OAAmB,EAASA,EAAMnD,MAAQ,GAAGN,OAfpD,kBAegF,KAAKA,OAAO0L,GAClH,OAAoB2jN,EAAAA,cAAoBqjB,GAAgBjY,GAAS,CAAC,EAAGpnL,EAAO,CAC1E/yC,IAAKA,EACLyyC,IAAe,IAAVrnC,EAAcqnC,OAAMtqC,IACvBhF,EACN,GACF,CACA,IAAIywO,GAAiC7kB,EAAAA,WAAiBwiB,IAItDqC,GAAkBpuN,Wd3BX,SAAoB2gI,GACzB,IAAI9mG,EAAW8mG,EAAK9mG,SAClBw0L,EAAgB1tF,EAAK0tF,cACnBC,EAAc/kB,EAAAA,OAAa,GAC3BglB,EAAiBhlB,EAAAA,OAAa,IAC9BwjB,EAAqBxjB,EAAAA,WAAiBsd,IACtC8G,EAAWpkB,EAAAA,aAAkB,SAAUxxM,EAAMud,EAASrjB,GACxDq8N,EAAY3yM,SAAW,EACvB,IAAI6yM,EAAYF,EAAY3yM,QAC5B4yM,EAAe5yM,QAAQpkC,KAAK,CAC1BwgB,KAAMA,EACNud,QAASA,EACTrjB,KAAMA,IAERvT,QAAQM,UAAUrJ,MAAK,WACjB64O,IAAcF,EAAY3yM,UACV,OAAlB0yM,QAA4C,IAAlBA,GAA4BA,EAAcE,EAAe5yM,SACnF4yM,EAAe5yM,QAAU,GAE7B,IAGuB,OAAvBoxM,QAAsD,IAAvBA,GAAiCA,EAAmBh1N,EAAMud,EAASrjB,EACpG,GAAG,CAACo8N,EAAetB,IACnB,OAAoBxjB,EAAAA,cAAoBsd,GAAkBl6H,SAAU,CAClEr4G,MAAOq5O,GACN9zL,EACL,EcCA,YCjCe,SAAS40L,KACtB,QAA4B,qBAAXxzO,SAA0BA,OAAO+B,WAAY/B,OAAO+B,SAASf,cAChF,CCIA,IAAIyyO,GAA6DD,KAAcllB,EAAAA,gBAAwBA,EAAAA,UACnG1mJ,GAAkB,SAAyBniD,EAAUygD,GACvD,IAAIwtK,EAAgBplB,EAAAA,QAAa,GACjCmlB,IAAwB,WACtB,OAAOhuN,EAASiuN,EAAchzM,QAChC,GAAGwlC,GAGHutK,IAAwB,WAEtB,OADAC,EAAchzM,SAAU,EACjB,WACLgzM,EAAchzM,SAAU,CAC1B,CACF,GAAG,GACL,EACWizM,GAAwB,SAA+BluN,EAAUygD,GAC1E0B,IAAgB,SAAUgsK,GACxB,IAAKA,EACH,OAAOnuN,GAEX,GAAGygD,EACL,EACA,YCzBA,IAAIuiK,GAAY,CAAC,YAAa,aAAc,OAAQ,aAAc,aAAc,qBAAsB,eAAgB,UAAW,YAAa,QAAS,WAAY,UAAW,QAAS,aAKnLoL,QAAYnsO,EAChB,SAASosO,GAAaxhM,EAAON,GAC3B,IAAI+hM,EAAYzhM,EAAMyhM,UACpBC,EAAa1hM,EAAM0hM,WACnBrnM,EAAO2F,EAAM3F,KACbsnM,EAAa3hM,EAAM2hM,WACnBC,EAAa5hM,EAAM4hM,WACnBC,EAAqB7hM,EAAM6hM,mBAC3BC,EAAe9hM,EAAM8hM,aACrBC,EAAU/hM,EAAM+hM,QAChBryO,EAAYswC,EAAMtwC,UAClBjC,EAAQuyC,EAAMvyC,MACd6+C,EAAWtM,EAAMsM,SACjB39C,EAAUqxC,EAAMrxC,QAChBkgD,EAAQ7O,EAAM6O,MACdmzL,EAAmBhiM,EAAM+xL,UACzBrzH,OAAiC,IAArBsjI,EAA8B,MAAQA,EAClDC,EAAYC,GAAyBliM,EAAOm2L,IAC1CgM,EAAeP,IAAejzO,EAGlC,SAASyzO,EAAqBh4O,GAC5B03O,EAAaC,EAAS33O,EACxB,CACA4xN,EAAAA,WAAgB,WACd,OAAO,WACLomB,EAAqB,KACvB,CACF,GAAG,IAGH,IAGIC,EAHAvuG,EAAY6tG,GAActnM,IAASknM,GAAYI,EAAWtnM,EAAM,CAClEhiC,MAAOw2C,IACJvC,EAEAo1L,IACHW,EAAgB,CACdvuO,QAASquO,EAAe,EAAI,EAC5Br4O,OAAQq4O,EAAe,EAAIZ,GAC3Bt3G,UAAWk4G,EAAe,SAAWZ,GACrC1yL,MAAO+yL,EAAa/yL,EAAQ0yL,GAC5Be,cAAeH,EAAe,OAASZ,GACvC/tO,SAAU2uO,EAAe,WAAaZ,KAG1C,IAAIgB,EAAgB,CAAC,EACjBJ,IACFI,EAAc,gBAAiB,GAEjC,IAAIC,EAAwBxmB,EAAAA,cAAoBt9G,EAAW0oH,GAAS,CAClE13N,UAAWisN,MAAY+lB,GAAcD,EAAW/xO,GAChDjC,MAAOkzO,GAAcA,GAAc,CAAC,EAAG0B,GAAgB50O,IACtD80O,EAAeN,EAAW,CAC3BviM,IAAKA,IACHo0F,GAUJ,OATI8tG,IACFY,EAAwBxmB,EAAAA,cAAoBwiB,GAAgB,CAC1D4B,SAAU,SAAkBhtF,GAE1BgvF,EADkBhvF,EAAKhxC,YAEzB,EACAj2D,SAAU01L,GACTW,IAEEA,CACT,CACA,IAAIC,GAAoBzmB,EAAAA,WAAiBwlB,IACzCiB,GAAKz4L,YAAc,OACnB,YC3Ee,SAAS04L,GAASvvN,GAC/B,IAAIwvN,EAAQ3mB,EAAAA,SACZ2mB,EAAMv0M,QAAUjb,EAChB,IAAIyvN,EAAS5mB,EAAAA,aAAkB,WAE7B,IADA,IAAI6mB,EACKpK,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAEzB,OAA4C,QAApCmK,EAAiBF,EAAMv0M,eAAwC,IAAnBy0M,OAA4B,EAASA,EAAe36O,KAAKsa,MAAMqgO,EAAgB,CAACF,GAAOh2O,OAAO2lB,GACpJ,GAAG,IACH,OAAOswN,CACT,CCZA,IAAIE,GAAM,SAAa3vN,GACrB,OAAQkC,WAAWlC,EAAU,GAC/B,EACI4vN,GAAM,SAAaC,GACrB,OAAO96K,aAAa86K,EACtB,EACsB,qBAAXt1O,QAA0B,0BAA2BA,SAC9Do1O,GAAM,SAAa3vN,GACjB,OAAOzlB,OAAOksO,sBAAsBzmN,EACtC,EACA4vN,GAAM,SAAa9N,GACjB,OAAOvnO,OAAOu1O,qBAAqBhO,EACrC,GAEF,IAAIiO,GAAU,EACVC,GAAS,IAAIjpM,IACjB,SAASkpM,GAAQx3N,GACfu3N,GAAOjsL,OAAOtrC,EAChB,CACA,IAAIy3N,GAAa,SAAoBlwN,GACnC,IAEIvH,EADJs3N,IAAW,EAoBX,OAlBA,SAASI,EAAQC,GACf,GAAkB,IAAdA,EAEFH,GAAQx3N,GAGRuH,QACK,CAEL,IAAIqwN,EAASV,IAAI,WACfQ,EAAQC,EAAY,EACtB,IAGAJ,GAAOrxO,IAAI8Z,EAAI43N,EACjB,CACF,CACAF,CApBY1rO,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GAqBzEgU,CACT,EACAy3N,GAAW90I,OAAS,SAAU3iF,GAC5B,IAAI43N,EAASL,GAAOxtO,IAAIiW,GAExB,OADAw3N,GAAQx3N,GACDm3N,GAAIS,EACb,EAMA,YC7CO,SAASC,KAEd,IAAIC,EAAgB1nB,EAAAA,OAAa,MAiBjC,OAdyB,SAA4B7oM,GAC9CuwN,EAAct1M,UACjBs1M,EAAct1M,QAAU,GCdf,SAAuBjb,GACpC,GAA8B,qBAAnBiB,eACT0uN,GAAI3vN,OACC,CACL,IAAI4B,EAAU,IAAIX,eAClBW,EAAQC,MAAMC,UAAY,WACxB,OAAO9B,GACT,EACA4B,EAAQG,MAAMC,iBAAY/f,EAC5B,CACF,CDKMuuO,EAAc,YACZx8J,EAAAA,GAAAA,0BAAwB,WACtBu8J,EAAct1M,QAAQnlC,SAAQ,SAAUsN,GACtCA,GACF,IACAmtO,EAAct1M,QAAU,IAC1B,GACF,KAEFs1M,EAAct1M,QAAQpkC,KAAKmpB,EAC7B,CAEF,CAKe,SAASywN,GAAeC,EAAoBn9M,GAEzD,IACEo9M,EAAmBC,GADC/nB,EAAAA,SAAet1L,GACgB,GACnDs9M,EAAaF,EAAiB,GAC9BG,EAAgBH,EAAiB,GAQnC,MAAO,CAACE,EALWtB,IAAS,SAAUwB,GACpCL,GAAmB,WACjBI,EAAcC,EAChB,GACF,IAEF,CE9CO,IAAIC,GAA+BnoB,EAAAA,cAAoB,MCC1Dma,GAAY,CAAC,aACfiO,GAAa,CAAC,aACdC,GAAa,CAAC,aAKZC,GAAkB,SAAyBtkM,EAAON,GACpD,IAAI4uB,EAAU0tJ,EAAAA,WAAiBmoB,IAG/B,IAAK71K,EAAS,CACZ,IAAI0zK,EAAmBhiM,EAAM+xL,UAC3BrzH,OAAiC,IAArBsjI,EAA8B,MAAQA,EAClDuC,EAAarC,GAAyBliM,EAAOm2L,IAC/C,OAAoBna,EAAAA,cAAoBt9G,EAAW0oH,GAAS,CAAC,EAAGmd,EAAY,CAC1E7kM,IAAKA,IAET,CACA,IAAI8kM,EAAmBl2K,EAAQ5+D,UAC7B+0O,EAAcvC,GAAyB5zK,EAAS81K,IAC9C10O,EAAYswC,EAAMtwC,UACpBuyO,EAAYC,GAAyBliM,EAAOqkM,IAG9C,OAAoBroB,EAAAA,cAAoBmoB,GAAgB/kI,SAAU,CAChEr4G,MAAO,MACOi1N,EAAAA,cAAoBymB,GAAMrb,GAAS,CACjD1nL,IAAKA,EACLhwC,UAAWisN,KAAW6oB,EAAkB90O,IACvC+0O,EAAaxC,IAClB,EACIyC,GAAuB1oB,EAAAA,WAAiBsoB,IAC5CI,GAAQ16L,YAAc,UACtB,YChCA,IAAImsL,GAAY,CAAC,YAAa,OAAQ,aAAc,gBAAiB,UAAW,YAAa,MAAO,QAAS,YAAa,WAAY,aAAc,gBAAiB,SAAU,YAAa,gBAAiB,mBAUzMwO,GAAa,aACbC,GAAa,aAEjB,SAASC,GAAkBC,GACzB,MAAO,KAAKn4O,OAAOm4O,EAAax7O,OAAQ,OAC1C,CACA,SAASy7O,GAAS/kM,EAAON,GACvB,IAAIslM,EAAmBhlM,EAAMyhM,UAC3BA,OAAiC,IAArBuD,EAA8B,cAAgBA,EAC1DC,EAAcjlM,EAAMt7B,KACpBA,OAAuB,IAAhBugO,EAAyB,GAAKA,EACrCtD,EAAa3hM,EAAM2hM,WACnBuD,EAAgBllM,EAAMklM,cACtBnD,EAAU/hM,EAAM+hM,QAChBoD,EAAmBnlM,EAAMolM,UACzBA,OAAiC,IAArBD,EAA8B,GAAKA,EAC/CE,EAAMrlM,EAAMqlM,IACZ53O,EAAQuyC,EAAMvyC,MACdiC,EAAYswC,EAAMtwC,UAClB41O,EAAWtlM,EAAMslM,SACjBC,EAAavlM,EAAMulM,WACnBC,EAAgBxlM,EAAMwlM,cACtBjvG,EAASv2F,EAAMu2F,OACfyrG,EAAmBhiM,EAAM+xL,UACzBrzH,OAAiC,IAArBsjI,EAA8B,MAAQA,EAClDyD,EAAgBzlM,EAAMylM,cACtBC,EAAkB1lM,EAAM0lM,gBACxBzD,EAAYC,GAAyBliM,EAAOm2L,IAC1CwP,EAAmB,SAARN,EACXxB,EAAqBJ,KAEvBmC,EAAmB7B,GADCH,GAAeC,EAAoB,MACJ,GACnDgC,EAAiBD,EAAiB,GAClCE,EAAoBF,EAAiB,GACnCG,EAAuBF,GAAkB,EAE3CG,EAAmBjC,GADEH,GAAeC,EAAoB,IAAI3pM,KACR,GACpD+rM,EAAaD,EAAiB,GAC9BE,EAAgBF,EAAiB,GAEjCG,EAAmBpC,GADEH,GAAeC,EAAoB,GACJ,GACpDuC,EAAgBD,EAAiB,GACjCE,EAAmBF,EAAiB,GAEpCG,EAAmBvC,GADEH,GAAeC,EAAoB,GACJ,GACpD0C,EAAYD,EAAiB,GAC7BE,EAAeF,EAAiB,GAEhCG,EAAoB1C,GADCH,GAAeC,EAAoB,GACH,GACrD6C,EAAcD,EAAkB,GAChCE,EAAiBF,EAAkB,GAEnCG,EAAa7C,IADCruK,EAAAA,EAAAA,UAAS,MACgB,GACvCmxK,EAAmBD,EAAW,GAC9BE,EAAsBF,EAAW,GAEjCG,EAAahD,IADEruK,EAAAA,EAAAA,UAAS,MACgB,GACxCsxK,EAAeD,EAAW,GAC1BE,EAAkBF,EAAW,GAC3BG,EAAqBlrB,EAAAA,SAAc,WACrC,OAAqB,OAAjBgrB,GAAyBrB,EACpBt2O,OAAOid,iBAET06N,GAAgB,CACzB,GAAG,CAACA,EAAcnB,IAEhBsB,EAAapD,IADEruK,EAAAA,EAAAA,WAAS,GACgB,GACxC0xK,EAAYD,EAAW,GACvBE,EAAeF,EAAW,GACxBG,EAAgB,GAAG36O,OAAO80O,EAAW,SAGrC8F,EAAkB59O,KAAKwhB,IAAIi7N,EAAeG,GAG1CiB,GAAelC,IAAaX,GAC5B8C,GAAmB/iO,EAAKpb,QAAUk+O,GAClC9F,GAAa4D,IAAaV,GAK1B8C,GAAWD,IAAwC,kBAAbnC,GAAyB5gO,EAAKpb,OAASg8O,EAC7EqC,IAAapyK,EAAAA,EAAAA,UAAQ,WACvB,IAAIqyK,EAAQljO,EAUZ,OATI+iO,GAEAG,EADqB,OAAnB/B,GAA2BF,EACrBjhO,EAEAA,EAAKvX,MAAM,EAAGxD,KAAKyhB,IAAI1G,EAAKpb,OAAQy8O,EAAuBX,IAExC,kBAAbE,IAChBsC,EAAQljO,EAAKvX,MAAM,EAAGm4O,IAEjBsC,CACT,GAAG,CAACljO,EAAM0gO,EAAWS,EAAgBP,EAAUmC,KAC3C3C,IAAevvK,EAAAA,EAAAA,UAAQ,WACzB,OAAIkyK,GACK/iO,EAAKvX,MAAM+5O,EAAqB,GAElCxiO,EAAKvX,MAAMw6O,GAAWr+O,OAC/B,GAAG,CAACob,EAAMijO,GAAYF,GAAkBP,IAGpCW,IAAS5yK,EAAAA,EAAAA,cAAY,SAAU56B,EAAMhiC,GACvC,IAAI+6I,EACJ,MAAuB,oBAAZ2uF,EACFA,EAAQ1nM,GAE0E,QAAnF+4G,EAAO2uF,IAAqB,OAAT1nM,QAA0B,IAATA,OAAkB,EAASA,EAAK0nM,WAAgC,IAAT3uF,EAAkBA,EAAO/6I,CAC9H,GAAG,CAAC0pO,IACA+F,IAAmB7yK,EAAAA,EAAAA,aAAY0sK,GAAc,SAAUtnM,GACzD,OAAOA,CACT,EAAG,CAACsnM,IACJ,SAASoG,GAAmB5rM,EAAO6rM,EAAqBC,IAIlDjB,IAAiB7qM,QAAkC/mC,IAAxB4yO,GAAqCA,IAAwBnB,KAG5FI,EAAgB9qM,GACX8rM,IACHZ,EAAalrM,EAAQz3B,EAAKpb,OAAS,GACf,OAApBo8O,QAAgD,IAApBA,GAA8BA,EAAgBvpM,SAEhD/mC,IAAxB4yO,GACFlB,EAAoBkB,GAExB,CAMA,SAASlG,GAAa70O,EAAK7C,GACzB87O,GAAc,SAAU3gM,GACtB,IAAIt1C,EAAQ,IAAIiqC,IAAIqL,GAMpB,OALc,OAAVn7C,EACF6F,EAAMinD,OAAOjqD,GAEbgD,EAAM6B,IAAI7E,EAAK7C,GAEV6F,CACT,GACF,CAUA,SAASi4O,GAAa7vO,GACpB,OAAO4tO,EAAWtwO,IAAIkyO,GAAOF,GAAWtvO,GAAQA,GAClD,CACAi9D,IAAgB,WACd,GAAIywK,GAAmD,kBAApBwB,GAAgCI,GAAY,CAC7E,IAAIQ,EAAazB,EACb95N,EAAM+6N,GAAWr+O,OACjBixC,EAAY3tB,EAAM,EAGtB,IAAKA,EAEH,YADAm7N,GAAmB,EAAG,MAGxB,IAAK,IAAI1+O,EAAI,EAAGA,EAAIujB,EAAKvjB,GAAK,EAAG,CAC/B,IAAI++O,EAAmBF,GAAa7+O,GAQpC,GALIs8O,IACFyC,EAAmBA,GAAoB,QAIhBhzO,IAArBgzO,EAAgC,CAClCL,GAAmB1+O,EAAI,OAAG+L,GAAW,GACrC,KACF,CAIA,GADA+yO,GAAcC,EAGA,IAAd7tM,GAAmB4tM,GAAcpC,GAEjC18O,IAAMkxC,EAAY,GAAK4tM,EAAaD,GAAa3tM,IAAcwrM,EAAsB,CAEnFgC,GAAmBxtM,EAAW,MAC9B,KACF,CAAO,GAAI4tM,EAAaZ,EAAkBxB,EAAsB,CAE9DgC,GAAmB1+O,EAAI,EAAG8+O,EAAaC,EAAmB1B,EAAcH,GACxE,KACF,CACF,CACIhwG,GAAU2xG,GAAa,GAAKxB,EAAcX,GAC5Ce,EAAoB,KAExB,CACF,GAAG,CAACf,EAAsBE,EAAYM,EAAWG,EAAamB,GAAQF,KAGtE,IAAIU,GAAcjB,KAAetC,GAAax7O,OAC1Cg/O,GAAc,CAAC,EACM,OAArBzB,GAA6BY,KAC/Ba,GAAc,CACZ90O,SAAU,WACVhK,KAAMq9O,EACNp9O,IAAK,IAGT,IAAI8+O,GAAkB,CACpB9G,UAAW6F,EACX1F,WAAY6F,GACZ1V,UAAW0T,EACX/D,WAAYA,IAIV8G,GAAyBtD,EAAgB,SAAU7qM,EAAMhiC,GAC3D,IAAIpL,EAAM46O,GAAOxtM,EAAMhiC,GACvB,OAAoB2jN,EAAAA,cAAoBmoB,GAAgB/kI,SAAU,CAChEnyG,IAAKA,EACLlG,MAAO45O,GAAcA,GAAc,CAAC,EAAG4H,IAAkB,CAAC,EAAG,CAC3D15L,MAAOx2C,EACPgiC,KAAMA,EACN0nM,QAAS90O,EACT60O,aAAcA,GACdnzO,QAAS0J,GAAS6uO,KAEnBhC,EAAc7qM,EAAMhiC,GACzB,EAAI,SAAUgiC,EAAMhiC,GAClB,IAAIpL,EAAM46O,GAAOxtM,EAAMhiC,GACvB,OAAoB2jN,EAAAA,cAAoBymB,GAAMrb,GAAS,CAAC,EAAGmhB,GAAiB,CAC1E15L,MAAOx2C,EACPpL,IAAKA,EACLotC,KAAMA,EACNsnM,WAAYmG,GACZ/F,QAAS90O,EACT60O,aAAcA,GACdnzO,QAAS0J,GAAS6uO,IAEtB,EAGIuB,GAAmB,CACrB55L,MAAOw5L,GAAcnB,EAAqB73O,OAAOid,iBACjD5c,UAAW,GAAG/C,OAAO26O,EAAe,SACpCxF,aA1GF,SAA8BxoN,EAAGlvB,GAC/Bo8O,EAAap8O,GACbi8O,EAAiBE,EACnB,EAwGE53O,QAAS05O,IAEPK,GAAmBnD,GAAcV,GACjC8D,GAAWnD,EAA6BxpB,EAAAA,cAAoBmoB,GAAgB/kI,SAAU,CACxFr4G,MAAO45O,GAAcA,GAAc,CAAC,EAAG4H,IAAkBE,KACxDjD,EAAcV,KAA8B9oB,EAAAA,cAAoBymB,GAAMrb,GAAS,CAAC,EAAGmhB,GAAiBE,IAA+C,oBAArBC,GAAkCA,GAAiB5D,IAAgB4D,IAChME,GAA4B5sB,EAAAA,cAAoBt9G,EAAW0oH,GAAS,CACtE13N,UAAWisN,MAAY+lB,IAAcD,EAAW/xO,GAChDjC,MAAOA,EACPiyC,IAAKA,GACJuiM,GAAY0F,GAAWnyO,IAAIgzO,IAAyBd,GAAWiB,GAAW,KAAMpyG,GAAuBylF,EAAAA,cAAoBymB,GAAMrb,GAAS,CAAC,EAAGmhB,GAAiB,CAChK3G,WAAY4F,GACZ3F,oBAAqB4F,GACrB54L,MAAOq4L,EACPx3O,UAAW,GAAG/C,OAAO26O,EAAe,WACpCxF,aAtHF,SAA4BxoN,EAAGlvB,GAC7Bu8O,EAAev8O,EACjB,EAqHEuE,SAAS,EACTlB,MAAO66O,KACL/xG,IACJ,OAAOixG,GAA4BxrB,EAAAA,cAAoBwiB,GAAgB,CACrE4B,SA7IF,SAA0B9mN,EAAGyO,GAC3B+9M,EAAkB/9M,EAAQs6E,YAC5B,EA4IEl2D,UAAWs7L,IACVmB,IAAgBA,EACrB,CACA,IAAIC,GAA+B7sB,EAAAA,WAAiB+oB,IACpD8D,GAAgB7+L,YAAc,WAC9B6+L,GAAgBpG,KAAOiC,GACvBmE,GAAgBlE,WAAaA,GAC7BkE,GAAgBjE,WAAaA,GAG7B,MCzSA,GDySA,GEnSe,SAASkE,GAAapiN,GACnC,IAAIqiN,EAAa/sB,EAAAA,QAAa,GAE5B8nB,EAAmBC,GADC/nB,EAAAA,SAAet1L,GACgB,GACnD3/B,EAAQ+8O,EAAiB,GACzBj5L,EAAWi5L,EAAiB,GAa9B,OAZA9nB,EAAAA,WAAgB,WAEd,OADA+sB,EAAW36M,SAAU,EACd,WACL26M,EAAW36M,SAAU,CACvB,CACF,GAAG,IAOI,CAACrnC,EANR,SAAsBiwE,EAASgyK,GACzBA,GAAiBD,EAAW36M,SAGhCyc,EAASmsB,EACX,EAEF,CCrBA,SAASssJ,GAASv8N,GAChB,YAAiBqO,IAAVrO,CACT,CAMe,SAASkiP,GAAeC,EAAmB91G,GACxD,IAAIggB,EAAOhgB,GAAU,CAAC,EACpB1sG,EAAe0sH,EAAK1sH,aACpB3/B,EAAQqsJ,EAAKrsJ,MACboiP,EAAW/1F,EAAK+1F,SAChBC,EAAYh2F,EAAKg2F,UAYjBxC,EAAa7C,GATCruK,IAAS,WACrB,OAAI4tJ,GAASv8N,GACJA,EACEu8N,GAAS58L,GACa,oBAAjBA,EAA8BA,IAAiBA,EAEzB,oBAAtBwiN,EAAmCA,IAAsBA,CAE3E,IACuC,GACvCG,EAAazC,EAAW,GACxB0C,EAAgB1C,EAAW,GACzB2C,OAAwBn0O,IAAVrO,EAAsBA,EAAQsiP,EAC5CG,EAAkBJ,EAAYA,EAAUG,GAAeA,EAGvDE,EAAa/G,GAASyG,GAExBpC,EAAahD,GADEruK,GAAS,CAAC6zK,IACe,GACxCG,EAAY3C,EAAW,GACvB4C,EAAe5C,EAAW,GAoB5B,OAnBA1F,IAAsB,WACpB,IAAIt8M,EAAO2kN,EAAU,GACjBL,IAAetkN,GACjB0kN,EAAWJ,EAAYtkN,EAE3B,GAAG,CAAC2kN,IAGJrI,IAAsB,WACf/d,GAASv8N,IACZuiP,EAAcviP,EAElB,GAAG,CAACA,IAOG,CAACyiP,EAJY9G,IAAS,SAAU1rK,EAASgyK,GAC9CM,EAActyK,EAASgyK,GACvBW,EAAa,CAACJ,GAAcP,EAC9B,IAEF,CCRA,SA5CA,SAAiBY,EAAMC,GACrB,IAAIC,EAAUlyO,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAEzEmyO,EAAS,IAAI9mM,IAuCjB,OAtCA,SAAS+mM,EAAU3nO,EAAGC,GACpB,IAAI2qK,EAAQr1K,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EAC5EqyO,EAAWF,EAAO/uO,IAAIqH,GAE1B,GADA0kN,IAASkjB,EAAU,6CACfA,EACF,OAAO,EAET,GAAI5nO,IAAMC,EACR,OAAO,EAET,GAAIwnO,GAAW78D,EAAQ,EACrB,OAAO,EAET88D,EAAOpsN,IAAItb,GACX,IAAI6nO,EAAWj9D,EAAQ,EACvB,GAAIjkL,MAAMqR,QAAQgI,GAAI,CACpB,IAAKrZ,MAAMqR,QAAQiI,IAAMD,EAAE/Y,SAAWgZ,EAAEhZ,OACtC,OAAO,EAET,IAAK,IAAID,EAAI,EAAGA,EAAIgZ,EAAE/Y,OAAQD,IAC5B,IAAK2gP,EAAU3nO,EAAEhZ,GAAIiZ,EAAEjZ,GAAI6gP,GACzB,OAAO,EAGX,OAAO,CACT,CACA,GAAI7nO,GAAKC,GAAoB,YAAf3X,EAAAA,GAAAA,GAAQ0X,IAAkC,YAAf1X,EAAAA,GAAAA,GAAQ2X,GAAiB,CAChE,IAAIlU,EAAOD,OAAOC,KAAKiU,GACvB,OAAIjU,EAAK9E,SAAW6E,OAAOC,KAAKkU,GAAGhZ,QAG5B8E,EAAKoL,OAAM,SAAUvM,GAC1B,OAAO+8O,EAAU3nO,EAAEpV,GAAMqV,EAAErV,GAAMi9O,EACnC,GACF,CAEA,OAAO,CACT,CACOF,CAAUJ,EAAMC,EACzB,ECpDO,IAAIM,GAAyBnuB,EAAAA,cAAoB,MACjD,SAASouB,GAAUC,EAAMC,GAC9B,YAAal1O,IAATi1O,EACK,KAEF,GAAG19O,OAAO09O,EAAM,KAAK19O,OAAO29O,EACrC,CAKO,SAASC,GAAUD,GAExB,OAAOF,GADEpuB,EAAAA,WAAiBmuB,IACLG,EACvB,CCbA,IAAInU,GAAY,CAAC,WAAY,UAIlBqU,GAA2BxuB,EAAAA,cAAoB,MAW3C,SAASyuB,GAA2Br3F,GACjD,IAAI9mG,EAAW8mG,EAAK9mG,SAClBo+L,EAASt3F,EAAKs3F,OACdzI,EAAYC,GAAyB9uF,EAAM+iF,IACzC7nK,EAAU0tJ,EAAAA,WAAiBwuB,IAC3BG,EAAqBp1K,IAAQ,WAC/B,OAhBJ,SAAoBhwB,EAAQryC,GAC1B,IAAIjD,EAAQ0wO,GAAc,CAAC,EAAGp7L,GAO9B,OANAp3C,OAAOC,KAAK8E,GAAQjK,SAAQ,SAAUgE,GACpC,IAAIlG,EAAQmM,EAAOjG,QACLmI,IAAVrO,IACFkJ,EAAMhD,GAAOlG,EAEjB,IACOkJ,CACT,CAOW26O,CAAWt8K,EAAS2zK,EAC7B,GAAG,CAAC3zK,EAAS2zK,IAAY,SAAUl9M,EAAM1oB,GACvC,OAAQquO,IAAW3lN,EAAK,KAAO1oB,EAAK,KAAOk8F,GAAQxzE,EAAK,GAAI1oB,EAAK,IAAI,GACvE,IACA,OAAoB2/M,EAAAA,cAAoBwuB,GAAYprI,SAAU,CAC5Dr4G,MAAO4jP,GACNr+L,EACL,CC5BA,IAAIu+L,GAAY,GAILC,GAAmC9uB,EAAAA,cAAoB,MAC3D,SAAS+uB,KACd,OAAO/uB,EAAAA,WAAiB8uB,GAC1B,CAGO,IAAIE,GAAkChvB,EAAAA,cAAoB6uB,IAC1D,SAASI,GAAYX,GAC1B,IAAIY,EAAgBlvB,EAAAA,WAAiBgvB,IACrC,OAAOhvB,EAAAA,SAAc,WACnB,YAAoB5mN,IAAbk1O,EAAyB,GAAG39O,OAAOw+O,GAAmBD,GAAgB,CAACZ,IAAaY,CAC7F,GAAG,CAACA,EAAeZ,GACrB,CAIO,IAAIc,GAA+BpvB,EAAAA,cAAoB,MCpB9D,SADkCA,EAAAA,cAAoB,CAAC,GCDvD,YAA0Bj0L,GACxB,IAAKA,EACH,OAAO,EAET,GAAIA,aAAmBg5I,QAAS,CAC9B,GAAIh5I,EAAQsjN,aACV,OAAO,EAET,GAAItjN,EAAQ80M,QAAS,CACnB,IAAIyO,EAAWvjN,EAAQ80M,UACrBzyO,EAAQkhP,EAASlhP,MACjBN,EAASwhP,EAASxhP,OACpB,GAAIM,GAASN,EACX,OAAO,CAEX,CACA,GAAIi+B,EAAQl/B,sBAAuB,CACjC,IAAI0iP,EAAwBxjN,EAAQl/B,wBAClC2iP,EAASD,EAAsBnhP,MAC/BqhP,EAAUF,EAAsBzhP,OAClC,GAAI0hP,GAAUC,EACZ,OAAO,CAEX,CACF,CACA,OAAO,CACR,ECxBD,SAASC,GAAU37O,GACjB,IAAI47O,EAAkB/zO,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GACrF,GAAIuyH,GAAUp6H,GAAO,CACnB,IAAIO,EAAWP,EAAKO,SAAShF,cACzBsgP,EAEJ,CAAC,QAAS,SAAU,WAAY,UAAUtzO,SAAShI,IAEnDP,EAAK87O,mBAEQ,MAAbv7O,KAAsBP,EAAKi7H,aAAa,QAGpC8gH,EAAe/7O,EAAKi7H,aAAa,YACjC+gH,EAAc18O,OAAOy8O,GAGrBE,EAAW,KAWf,OAVIF,IAAiBz8O,OAAOic,MAAMygO,GAChCC,EAAWD,EACFH,GAAmC,OAAbI,IAC/BA,EAAW,GAITJ,GAAsB77O,EAAKo8C,WAC7B6/L,EAAW,MAEO,OAAbA,IAAsBA,GAAY,GAAKL,GAAmBK,EAAW,EAC9E,CACA,OAAO,CACT,CACO,SAASC,GAAiBl8O,GAC/B,IAAI47O,EAAkB/zO,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GACjFmzB,EAAMogN,GAAmBp7O,EAAKrH,iBAAiB,MAAM4Q,QAAO,SAAUlJ,GACxE,OAAOs7O,GAAUt7O,EAAOu7O,EAC1B,IAIA,OAHID,GAAU37O,EAAM47O,IAClB5gN,EAAIu8B,QAAQv3D,GAEPg7B,CACT,CCrCA,IAAImhN,GAAU,CAIZC,UAAW,EAIXj/H,UAAW,EAIXk/H,IAAK,EAILC,WAAY,GAKZC,MAAO,GAIPC,MAAO,GAIPC,KAAM,GAINC,IAAK,GAILC,MAAO,GAIPC,UAAW,GAIXC,IAAK,GAIL1hI,MAAO,GAIP2hI,QAAS,GAKTC,UAAW,GAKXC,IAAK,GAKLC,KAAM,GAKNC,KAAM,GAKNC,GAAI,GAKJC,MAAO,GAKPC,KAAM,GAKNC,aAAc,GAIdC,OAAQ,GAKRhgI,OAAQ,GAKRE,KAAM,GAIN0vG,IAAK,GAILqwB,IAAK,GAILC,MAAO,GAIPC,KAAM,GAINC,KAAM,GAINC,IAAK,GAILC,MAAO,GAIPC,MAAO,GAIPC,KAAM,GAINzhI,cAAe,GAKf3mG,EAAG,GAIHC,EAAG,GAIHpL,EAAG,GAIHqjB,EAAG,GAIH/Q,EAAG,GAIHxR,EAAG,GAIH8tD,EAAG,GAIHE,EAAG,GAIHmC,EAAG,GAIH9E,EAAG,GAIHiJ,EAAG,GAIHe,EAAG,GAIHvzC,EAAG,GAIHi0C,EAAG,GAIHh5D,EAAG,GAIH2P,EAAG,GAIH+V,EAAG,GAIHvO,EAAG,GAIH5T,EAAG,GAIHmK,EAAG,GAIHg3D,EAAG,GAIHl0D,EAAG,GAIHs0D,EAAG,GAIHY,EAAG,GAIHwB,EAAG,GAIHC,EAAG,GAIHwuK,KAAM,GAKNC,cAAe,GAIfC,aAAc,GAIdC,SAAU,GAIVC,QAAS,GAITC,QAAS,GAITC,UAAW,GAIXC,SAAU,IAIVC,SAAU,IAIVC,QAAS,IAITC,UAAW,IAIXC,UAAW,IAIXC,SAAU,IAIVC,aAAc,IAIdC,SAAU,IAIVC,UAAW,IAIXC,WAAY,IAIZC,aAAc,IAIdC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,GAAI,IAIJC,IAAK,IAILC,IAAK,IAILC,IAAK,IAILC,QAAS,IAIT9iI,UAAW,IAKX+iI,KAAM,IAKNC,OAAQ,IAKRljI,MAAO,IAKPmjI,OAAQ,IAKRC,MAAO,IAKPzkI,WAAY,IAKZ0kI,aAAc,IAKdC,oBAAqB,IAKrBC,UAAW,IAKXC,qBAAsB,IAKtBC,QAAS,IAITC,YAAa,IAKbC,QAAS,IAKTC,wBAAyB,SAAiC96N,GACxD,IAAI2jC,EAAU3jC,EAAE2jC,QAChB,GAAI3jC,EAAEkmC,SAAWlmC,EAAEgmC,SAAWhmC,EAAEmmC,SAEhCxC,GAAW4yL,GAAQ+C,IAAM31L,GAAW4yL,GAAQ0D,IAC1C,OAAO,EAKT,OAAQt2L,GACN,KAAK4yL,GAAQO,IACb,KAAKP,GAAQS,UACb,KAAKT,GAAQ+B,aACb,KAAK/B,GAAQM,KACb,KAAKN,GAAQkB,KACb,KAAKlB,GAAQa,IACb,KAAKb,GAAQU,IACb,KAAKV,GAAQc,KACb,KAAKd,GAAQoB,OACb,KAAKpB,GAAQe,KACb,KAAKf,GAAQqE,YACb,KAAKrE,GAAQ6B,KACb,KAAK7B,GAAQ2D,QACb,KAAK3D,GAAQG,WACb,KAAKH,GAAQY,UACb,KAAKZ,GAAQW,QACb,KAAKX,GAAQQ,MACb,KAAKR,GAAQmB,aACb,KAAKnB,GAAQiB,MACb,KAAKjB,GAAQK,MACb,KAAKL,GAAQgB,GACb,KAAKhB,GAAQoE,QACb,KAAKpE,GAAQ8B,cACX,OAAO,EACT,QACE,OAAO,EAEb,EAIA0C,eAAgB,SAAwBp3L,GACtC,GAAIA,GAAW4yL,GAAQ1+H,MAAQl0D,GAAW4yL,GAAQ4B,KAChD,OAAO,EAET,GAAIx0L,GAAW4yL,GAAQgC,UAAY50L,GAAW4yL,GAAQ0C,aACpD,OAAO,EAET,GAAIt1L,GAAW4yL,GAAQxmO,GAAK4zC,GAAW4yL,GAAQ3sK,EAC7C,OAAO,EAIT,IAAsD,IAAlD7xE,OAAOu3C,UAAUhkC,UAAUpU,QAAQ,WAAgC,IAAZysD,EACzD,OAAO,EAET,OAAQA,GACN,KAAK4yL,GAAQhhI,MACb,KAAKghI,GAAQ7/H,cACb,KAAK6/H,GAAQ2C,SACb,KAAK3C,GAAQ4C,UACb,KAAK5C,GAAQ6C,WACb,KAAK7C,GAAQ8C,aACb,KAAK9C,GAAQn/H,UACb,KAAKm/H,GAAQ4D,KACb,KAAK5D,GAAQ6D,OACb,KAAK7D,GAAQr/H,MACb,KAAKq/H,GAAQ8D,OACb,KAAK9D,GAAQ+D,MACb,KAAK/D,GAAQ1gI,WACb,KAAK0gI,GAAQgE,aACb,KAAKhE,GAAQiE,oBACb,KAAKjE,GAAQkE,UACb,KAAKlE,GAAQmE,qBACX,OAAO,EACT,QACE,OAAO,EAEb,GAEF,YClhBA,IAAIpD,GAAOf,GAAQe,KACjBE,GAAQjB,GAAQiB,MAChBD,GAAKhB,GAAQgB,GACbE,GAAOlB,GAAQkB,KACfd,GAAQJ,GAAQI,MAChBM,GAAMV,GAAQU,IACdI,GAAOd,GAAQc,KACfD,GAAMb,GAAQa,IACZ4D,GAAY,CAACzD,GAAIE,GAAMH,GAAME,IAkF1B,SAASyD,GAAqBroP,EAAW6iI,GAE9C,OADW6gH,GAAiB1jP,GAAW,GAC3B+Q,QAAO,SAAU+/N,GAC3B,OAAOjuG,EAASpwH,IAAIq+N,EACtB,GACF,CACA,SAASwX,GAAoBC,EAAsB1lH,EAAU2lH,GAC3D,IAAI9tL,EAASrrD,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EAEjF,IAAKk5O,EACH,OAAO,KAIT,IAAIE,EAAoCJ,GAAqBE,EAAsB1lH,GAG/EjvF,EAAQ60M,EAAkC1nP,OAC1C2nP,EAAaD,EAAkCt3O,WAAU,SAAU2/N,GACrE,OAAO0X,IAAqB1X,CAC9B,IAaA,OAZIp2K,EAAS,GACS,IAAhBguL,EACFA,EAAa90M,EAAQ,EAErB80M,GAAc,EAEPhuL,EAAS,IAClBguL,GAAc,GAKTD,EAHPC,GAAcA,EAAa90M,GAASA,EAItC,CACO,IAAI+0M,GAAkB,SAAyB9iP,EAAMwd,GAC1D,IAAIw/G,EAAW,IAAInoF,IACfkuM,EAAc,IAAIj3M,IAClBk3M,EAAc,IAAIl3M,IAStB,OARA9rC,EAAKnF,SAAQ,SAAUgE,GACrB,IAAI86B,EAAUt4B,SAASw+B,cAAc,kBAAkBthC,OAAOy9O,GAAUx+N,EAAI3e,GAAM,OAC9E86B,IACFqjG,EAASztG,IAAIoK,GACbqpN,EAAYt/O,IAAIi2B,EAAS96B,GACzBkkP,EAAYr/O,IAAI7E,EAAK86B,GAEzB,IACO,CACLqjG,SAAUA,EACV+lH,YAAaA,EACbC,YAAaA,EAEjB,EACO,SAASC,GAAiBllP,EAAMmlP,EAAWC,EAAO3lO,EAAI4lO,EAAcC,EAASC,EAAYC,EAAkBC,EAA0BC,GAC1I,IAAIC,EAAS91B,EAAAA,SACTuT,EAAYvT,EAAAA,SAChBuT,EAAUnhM,QAAUkjN,EACpB,IAAIS,EAAW,WACbjP,GAAIv0I,OAAOujJ,EAAO1jN,QACpB,EAMA,OALA4tL,EAAAA,WAAgB,WACd,OAAO,WACL+1B,GACF,CACF,GAAG,IACI,SAAUp8N,GACf,IAAI+oC,EAAQ/oC,EAAE+oC,MACd,GAAI,GAAG/xD,OAAOgkP,GAAW,CAACrE,GAAOM,GAAKI,GAAMD,KAAMz0O,SAASomD,GAAQ,CACjE,IAAItwD,EAAOqjP,IACPO,EAAoBd,GAAgB9iP,EAAMwd,GAC1CqmO,EAAqBD,EACvB5mH,EAAW6mH,EAAmB7mH,SAC9B+lH,EAAcc,EAAmBd,YACjCC,EAAca,EAAmBb,YAI/BL,EA3FV,SAAyB71N,EAAekwG,GAEtC,IADA,IAAIh9F,EAAUlT,GAAiBzrB,SAASyrB,cACjCkT,GAAS,CACd,GAAIg9F,EAASpwH,IAAIozB,GACf,OAAOA,EAETA,EAAUA,EAAQ7E,aACpB,CACA,OAAO,IACT,CAkF6B2oN,CADHf,EAAYx7O,IAAI27O,GACkBlmH,GAClD+mH,EAAef,EAAYz7O,IAAIo7O,GAC/BqB,EAhKV,SAAmBjmP,EAAMkmP,EAAad,EAAO7yL,GAC3C,IAAI4zL,EACAvtN,EAAO,OACP1oB,EAAO,OACPiwC,EAAW,WACXx2B,EAAS,SAGb,GAAa,WAAT3pB,GAAqBuyD,IAAU4tL,GACjC,MAAO,CACLiG,eAAe,GAGnB,IAAIC,GAASxyI,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAGktI,GAAInoN,GAAOqoN,GAAM/wO,GAC9DyqB,GAAak5E,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAGitI,GAAMsE,EAAQl1O,EAAO0oB,GAAOooN,GAAOoE,EAAQxsN,EAAO1oB,GAAO+wO,GAAM9gM,GAAWggM,GAAOhgM,GAClKzlB,GAAWm5E,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAGktI,GAAInoN,GAAOqoN,GAAM/wO,GAAOiwO,GAAOhgM,GAAWsgM,GAAK92N,GAASm3N,GAAMsE,EAAQjlM,EAAWx2B,GAASq3N,GAAOoE,EAAQz7N,EAASw2B,GAUrO,OADsF,QAA1EgmM,EARE,CACZE,OAAQA,EACR1rN,WAAYA,EACZD,SAAUA,EACV4rN,UAAWD,EACXE,cAAe7rN,EACf8rN,YAAa9rN,GAEgB,GAAGl6B,OAAOR,GAAMQ,OAAO0lP,EAAc,GAAK,eAAkC,IAAbC,OAAsB,EAASA,EAAS5zL,IAEpI,KAAK35B,EACH,MAAO,CACLk+B,QAAS,EACT/P,SAAS,GAEb,KAAK72C,EACH,MAAO,CACL4mD,OAAQ,EACR/P,SAAS,GAEb,KAAKp9B,EACH,MAAO,CACLmtC,QAAS,EACT/P,SAAS,GAEb,KAAK5G,EACH,MAAO,CACL2W,OAAQ,EACR/P,SAAS,GAEb,QACE,OAAO,KAEb,CA+GsB0/L,CAAUzmP,EAAgD,IAA1CulP,EAAWS,GAAc,GAAM7oP,OAAcioP,EAAO7yL,GAGpF,IAAK0zL,GAAa1zL,IAAUsuL,IAAQtuL,IAAUquL,GAC5C,QAIE4D,GAAUr4O,SAASomD,IAAU,CAACsuL,GAAMD,IAAKz0O,SAASomD,KACpD/oC,EAAEukC,iBAEJ,IAAI24L,EAAW,SAAkBC,GAC/B,GAAIA,EAAa,CACf,IAAIC,EAAqBD,EAGrB5pP,EAAO4pP,EAAY7kN,cAAc,KACxB,OAAT/kC,QAA0B,IAATA,GAAmBA,EAAK8hI,aAAa,UACxD+nH,EAAqB7pP,GAEvB,IAAI8pP,EAAY5B,EAAYz7O,IAAIm9O,GAChCnB,EAAiBqB,GAOjBjB,IACAD,EAAO1jN,QAAU00M,IAAI,WACfvT,EAAUnhM,UAAY4kN,GACxBD,EAAmBr3N,OAEvB,GACF,CACF,EACA,GAAI,CAACsxN,GAAMD,IAAKz0O,SAASomD,IAAU0zL,EAAUl/L,UAAY69L,EAAkB,CAGzE,IAAID,EAQAmC,EACAC,EAAoBtC,GALtBE,EAHGC,GAA6B,WAAT5kP,EAtJjC,SAAyB47B,GAEvB,IADA,IAAIqG,EAAUrG,EACPqG,GAAS,CACd,GAAIA,EAAQ48F,aAAa,kBACvB,OAAO58F,EAETA,EAAUA,EAAQ7E,aACpB,CAIA,OAAO,IACT,CA6IiC4pN,CAAgBpC,GAFhBS,EAAapjN,QAO6Bg9F,GAEjE6nH,EADEv0L,IAAUsuL,GACIkG,EAAkB,GACzBx0L,IAAUquL,GACHmG,EAAkBA,EAAkB5pP,OAAS,GAE7CunP,GAAoBC,EAAsB1lH,EAAU2lH,EAAkBqB,EAAUnvL,QAGlG4vL,EAASI,EAGX,MAAO,GAAIb,EAAUG,cAEnBX,EAAyBO,QAEpB,GAAIC,EAAUnvL,OAAS,EAC5B2uL,EAAyBO,GAAc,GACvCJ,IACAD,EAAO1jN,QAAU00M,IAAI,WAEnBkP,EAAoBd,GAAgB9iP,EAAMwd,GAC1C,IAAIwnO,EAAYrC,EAAiB/lH,aAAa,iBAI1CioH,EAAgBpC,GAHIphP,SAAS4jP,eAAeD,GAGWpB,EAAkB5mH,UAG7EynH,EAASI,EACX,GAAG,QACE,GAAIb,EAAUnvL,OAAS,EAAG,CAC/B,IAAIqwL,EAAU5B,EAAWS,GAAc,GACnCoB,EAAYD,EAAQA,EAAQhqP,OAAS,GACrCkqP,EAAoBrC,EAAYx7O,IAAI49O,GAGxC3B,EAAyB2B,GAAW,GACpCV,EAASW,EACX,CACF,CAGoB,OAApB3B,QAAgD,IAApBA,GAA8BA,EAAgBl8N,EAC5E,CACF,CCvQA,IAAI89N,GAAa,yBACbC,GAAa,SAAoBJ,GACnC,OAAOA,EAAQlmP,KAAKqmP,GACtB,EAIWE,GAAe,eACX,SAASC,KACtB,IAEEC,EADmB9P,GADC/nB,EAAAA,SAAe,CAAC,GACe,GACZ,GACrC83B,GAAcr+K,EAAAA,EAAAA,QAAO,IAAIv7B,KACzB65M,GAAct+K,EAAAA,EAAAA,QAAO,IAAIv7B,KAE3B85M,EAAmBjQ,GADE/nB,EAAAA,SAAe,IACgB,GACpDi4B,EAAeD,EAAiB,GAChCE,EAAkBF,EAAiB,GACjCG,GAAY1+K,EAAAA,EAAAA,QAAO,GACnBszK,GAAatzK,EAAAA,EAAAA,SAAO,GAMpB2+K,GAAen/K,EAAAA,EAAAA,cAAY,SAAUhoE,EAAKqmP,GAO5C,IAAIe,EAAgBX,GAAWJ,GAC/BS,EAAY3lN,QAAQt8B,IAAIuiP,EAAepnP,GACvC6mP,EAAY1lN,QAAQt8B,IAAI7E,EAAKonP,GAC7BF,EAAU/lN,SAAW,EACrB,IC1CsBjb,ED0ClBvH,EAAKuoO,EAAU/lN,QC1CGjb,ED2CZ,WACJvH,IAAOuoO,EAAU/lN,UAjBlB26M,EAAW36M,SACdylN,EAAoB,CAAC,GAmBvB,EC7CF1iP,QAAQM,UAAUrJ,KAAK+qB,ED8CvB,GAAG,IACCmhO,GAAiBr/K,EAAAA,EAAAA,cAAY,SAAUhoE,EAAKqmP,GAC9C,IAAIe,EAAgBX,GAAWJ,GAC/BS,EAAY3lN,QAAQ8oB,OAAOm9L,GAC3BP,EAAY1lN,QAAQ8oB,OAAOjqD,EAC7B,GAAG,IACCsnP,GAAsBt/K,EAAAA,EAAAA,cAAY,SAAU7mE,GAC9C8lP,EAAgB9lP,EAClB,GAAG,IACCsjP,GAAaz8K,EAAAA,EAAAA,cAAY,SAAUq1K,EAAUkK,GAC/C,IAAIC,EAAWX,EAAY1lN,QAAQz4B,IAAI20O,IAAa,GAChDl8O,EAAmBqmP,EAhDPnzO,MAAMmyO,IAoDtB,OAHIe,GAAmBP,EAAa37O,SAASlK,EAAK,KAChDA,EAAKk5D,QAAQqsL,IAERvlP,CACT,GAAG,CAAC6lP,IACAS,GAAez/K,EAAAA,EAAAA,cAAY,SAAU0/K,EAAUrK,GACjD,OAAOqK,EAASr7O,QAAO,SAAU+gC,GAC/B,YAAgBjlC,IAATilC,CACT,IAAG9gC,MAAK,SAAUq7O,GAEhB,OADkBlD,EAAWkD,GAAS,GACnBt8O,SAASgyO,EAC9B,GACF,GAAG,CAACoH,IAYAmD,GAAiB5/K,EAAAA,EAAAA,cAAY,SAAUhoE,GACzC,IAAIonP,EAAgB,GAAG1nP,OAAOmnP,EAAY1lN,QAAQz4B,IAAI1I,IAAMN,OAAO8mP,IAC/DkB,EAAW,IAAI1xM,IAMnB,OALAkoM,GAAmB4I,EAAY3lN,QAAQhgC,QAAQnF,SAAQ,SAAU2rP,GAC3DA,EAAQn6I,WAAW45I,IACrBM,EAASh3N,IAAIo2N,EAAY3lN,QAAQz4B,IAAIi/O,GAEzC,IACOD,CACT,GAAG,IAMH,OALA34B,EAAAA,WAAgB,WACd,OAAO,WACL+sB,EAAW36M,SAAU,CACvB,CACF,GAAG,IACI,CAELgmN,aAAcA,EACdE,eAAgBA,EAChBC,oBAAqBA,EAErBG,aAAcA,EACdhD,WAAYA,EACZD,QAlCY,WACZ,IAAIrjP,EAAO+8O,GAAmB2I,EAAY1lN,QAAQhgC,QAIlD,OAHI6lP,EAAa3qP,QACf8E,EAAKpE,KAAK2pP,IAELvlP,CACT,EA6BEymP,eAAgBA,EAEpB,CExGe,SAASC,GAAgBz0M,GACtC,IAAI00M,EAAS/4B,EAAAA,OAAa37K,GAC1B00M,EAAO3mN,QAAUiS,EACjB,IAAIltB,EAAW6oM,EAAAA,aAAkB,WAE/B,IADA,IAAIg5B,EACKvc,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAEzB,OAA8C,QAAtCsc,EAAkBD,EAAO3mN,eAAyC,IAApB4mN,OAA6B,EAASA,EAAgB9sP,KAAKsa,MAAMwyO,EAAiB,CAACD,GAAQpoP,OAAO2lB,GAC1J,GAAG,IACH,OAAO+tB,EAAOltB,OAAW/d,CAC3B,CCdA,IAAI6/O,GAAetrP,KAAKmiB,SAASo0J,QAAQ,GAAG/pK,WAAWhJ,MAAM,GACzD+nP,GAAa,ECJF,SAASxkJ,GAAK9lG,EAAKqjM,GAChC,IAAIh+L,EAAQ9B,OAAOoD,OAAO,CAAC,EAAG3G,GAM9B,OALI5B,MAAMqR,QAAQ4zL,IAChBA,EAAOhlM,SAAQ,SAAUgE,UAChBgD,EAAMhD,EACf,IAEKgD,CACT,CCNe,SAASklP,GAAU7K,EAAUn+L,EAAUipM,EAAcC,GAClE,IAAIC,EAAoBt5B,EAAAA,WAAiBwuB,IACvC8G,EAAYgE,EAAkBhE,UAC9BiE,EAAWD,EAAkBC,SAC7BC,EAAaF,EAAkBE,WAC7BhhF,EAAM,CACRv5I,OAAQq2N,IAAchH,GAoBxB,OAhBKn+L,IACHqoH,EAAI4gF,aAAe,SAAUK,GACV,OAAjBL,QAA0C,IAAjBA,GAA2BA,EAAa,CAC/DnoP,IAAKq9O,EACLmL,SAAUA,IAEZF,EAASjL,EACX,EACA91E,EAAI6gF,aAAe,SAAUI,GACV,OAAjBJ,QAA0C,IAAjBA,GAA2BA,EAAa,CAC/DpoP,IAAKq9O,EACLmL,SAAUA,IAEZD,EAAWlL,EACb,GAEK91E,CACT,CC3Be,SAASkhF,GAAkBzoE,GACxC,IAAIqoE,EAAoBt5B,EAAAA,WAAiBwuB,IACvCr+O,EAAOmpP,EAAkBnpP,KACzBwpP,EAAML,EAAkBK,IACxBC,EAAeN,EAAkBM,aACnC,GAAa,WAATzpP,EACF,OAAO,KAGT,OAAOwpP,EAAM,CACX/rN,aAFQqjJ,EAEY2oE,GAClB,CACF9rN,YAJQmjJ,EAIW2oE,EAEvB,CCde,SAASC,GAAKziG,GAC3B,IAGI0iG,EAHA17C,EAAOhnD,EAAKgnD,KACdp6J,EAAQozG,EAAKpzG,MACbsM,EAAW8mG,EAAK9mG,SAElB,OAAa,OAAT8tJ,IAA0B,IAATA,EACZ,MAEW,oBAATA,EACT07C,EAAwB95B,EAAAA,cAAoB5hB,EAAMumC,GAAc,CAAC,EAAG3gM,IAC3C,mBAATo6J,IAEhB07C,EAAW17C,GAEN07C,GAAYxpM,GAAY,KACjC,CChBA,IAAI6pL,GAAY,CAAC,QAOV,SAAS4f,GAAa3iG,GAC3B,IAAI/4G,EAAO+4G,EAAK/4G,KACd27M,EAAW9T,GAAyB9uF,EAAM+iF,IAO5C,OANAhoO,OAAOgN,eAAe66O,EAAU,OAAQ,CACtCrgP,IAAK,WAEH,OADAoxN,IAAQ,EAAO,uHACR1sL,CACT,IAEK27M,CACT,CCTA,IAAI7f,GAAY,CAAC,QAAS,YAAa,cACrCiO,GAAa,CAAC,QAAS,YAAa,WAAY,UAAW,WAAY,WAAY,WAAY,OAAQ,eAAgB,eAAgB,UAAW,YAAa,WAC/JC,GAAa,CAAC,UAmBZ4R,GAA8B,SAAUjX,GAC1CC,GAAUgX,EAAgBjX,GAC1B,IAAIx8M,EAAS08M,GAAa+W,GAC1B,SAASA,IAEP,OADA9W,GAAgBh3O,KAAM8tP,GACfzzN,EAAOhgB,MAAMra,KAAMyP,UAC5B,CAuBA,OAtBAwnO,GAAa6W,EAAgB,CAAC,CAC5BhpP,IAAK,SACLlG,MAAO,WACL,IAAImvP,EAAc/tP,KAAK63C,MACrB9L,EAAQgiN,EAAYhiN,MACpBx4B,EAAYw6O,EAAYx6O,UACxB4jO,EAAa4W,EAAY5W,WAOvB6W,EAAczlJ,GANJwxI,GAAyBgU,EAAa/f,IAMlB,CAAC,WAAY,iBAAkB,cAAe,iBAEhF,OADApP,IAASrrN,EAAW,2EACAsgN,EAAAA,cAAoB+oB,GAAStC,KAAMrb,GAAS,CAAC,EAAG1rN,EAAW,CAC7Ew4B,MAAwB,kBAAVA,EAAqBA,OAAQ9+B,GAC1C+gP,EAAa,CACdz2M,IAAK4/L,IAET,KAEK2W,CACT,CA9BkC,CA8BhCj6B,EAAAA,WAIEo6B,GAAgCp6B,EAAAA,YAAiB,SAAUh8K,EAAON,GACpE,IAAIjyC,EAAQuyC,EAAMvyC,MAChBiC,EAAYswC,EAAMtwC,UAClB46O,EAAWtqM,EAAMsqM,SAEjBn+L,GADUnM,EAAMq2M,QACLr2M,EAAMmM,UACjBmqM,EAAWt2M,EAAMs2M,SACjBhqM,EAAWtM,EAAMsM,SACjBiqM,EAAOv2M,EAAMu2M,KACbnB,EAAep1M,EAAMo1M,aACrBC,EAAer1M,EAAMq1M,aACrB/4K,EAAUt8B,EAAMs8B,QAChBk6K,EAAYx2M,EAAMw2M,UAClBC,EAAUz2M,EAAMy2M,QAChBxU,EAAYC,GAAyBliM,EAAOokM,IAC1CsS,EAAYnM,GAAUD,GACtBgL,EAAoBt5B,EAAAA,WAAiBwuB,IACvC/I,EAAY6T,EAAkB7T,UAC9BkV,EAAcrB,EAAkBqB,YAChCC,EAAkBtB,EAAkBnpM,SACpC0qM,EAAmBvB,EAAkBuB,iBACrCC,EAAkBxB,EAAkBgB,SACpCS,EAAezB,EAAkByB,aACjCxB,EAAWD,EAAkBC,SAE7ByB,EADuBh7B,EAAAA,WAAiBi7B,IACKD,wBAC3CE,EAAU,GAAGvqP,OAAO80O,EAAW,SAC/B0V,EAAoBn7B,EAAAA,SACpBsjB,EAAatjB,EAAAA,SACbo7B,EAAiBR,GAAmBzqM,EACpCkrM,EAAeze,GAAcl5L,EAAK4/L,GAClCgY,EAAgBrM,GAAYX,GAQhC,IAAIiN,EAAe,SAAsB5hO,GACvC,MAAO,CACL1oB,IAAKq9O,EAELgJ,QAASnI,GAAmBmM,GAAe/iK,UAC3Cl6C,KAAM88M,EAAkB/oN,QACxBqnN,SAAU9/N,EAEd,EAGI6hO,EAAiBlB,GAAYQ,EAG7BW,EAAatC,GAAU7K,EAAU8M,EAAgBhC,EAAcC,GACjEp6N,EAASw8N,EAAWx8N,OACpBy8N,EAAcxV,GAAyBuV,EAAYpT,IAGjDp4L,EAAW8qM,EAAaz+O,SAASgyO,GAGjCqN,EAAiBjC,GAAkB4B,EAAchuP,QAgCjDsuP,EAAkB,CAAC,EACJ,WAAf53M,EAAMu2M,OACRqB,EAAgB,iBAAmB3rM,GAErC,IAAI4+F,EAA0BmxE,EAAAA,cAAoBi6B,GAAgB7uB,GAAS,CACzE1nL,IAAKy3M,EACL7X,WAAY+X,EACZd,KAAe,OAATA,EAAgB,OAASA,GAAQ,WACvCvK,SAAU7/L,EAAW,MAAQ,EAC7B,eAAgB0qM,GAAoBH,EAAY,KAAOA,GACtDhmJ,GAAKuxI,EAAW,CAAC,UAAWyV,EAAaE,EAAiB,CAC3D7lB,UAAW,KACX,gBAAiB5lL,EACjB1+C,MAAOkzO,GAAcA,GAAc,CAAC,EAAGgX,GAAiBlqP,GACxDiC,UAAWisN,KAAWu7B,GAASl3I,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAOuqP,EAAS,WAAYj8N,GAAS,GAAGtuB,OAAOuqP,EAAS,aAAcjrM,GAAW,GAAGt/C,OAAOuqP,EAAS,aAAcE,GAAiB1nP,GACzN4sE,QA5CoB,SAAyB3mD,GAC7C,IAAIyhO,EAAJ,CAGA,IAAIz8G,EAAO48G,EAAa5hO,GACZ,OAAZ2mD,QAAgC,IAAZA,GAAsBA,EAAQy5K,GAAap7G,IAC/Dg8G,EAAYh8G,EAHZ,CAIF,EAsCE67G,UArCsB,SAA2B7gO,GAEjD,GADc,OAAd6gO,QAAoC,IAAdA,GAAwBA,EAAU7gO,GACpDA,EAAE+oC,QAAUwtL,GAAQI,MAAO,CAC7B,IAAI3xG,EAAO48G,EAAa5hO,GAGZ,OAAZ2mD,QAAgC,IAAZA,GAAsBA,EAAQy5K,GAAap7G,IAC/Dg8G,EAAYh8G,EACd,CACF,EA6BE87G,QAvBoB,SAAyB9gO,GAC7C4/N,EAASjL,GACG,OAAZmM,QAAgC,IAAZA,GAAsBA,EAAQ9gO,EACpD,IAqBI22B,EAAuB0vK,EAAAA,cAAoB65B,GAAM,CACnD71M,MAAO2gM,GAAcA,GAAc,CAAC,EAAG3gM,GAAQ,CAAC,EAAG,CACjD63M,WAAY5rM,IAEdmuJ,KAAMo9C,KAOR,OALIR,IACFnsG,EAAamsG,EAAwBnsG,EAAY7qG,EAAO,CACtDiM,SAAUA,KAGP4+F,CACT,IACA,SAASitG,GAAS93M,EAAON,GACvB,IAAI4qM,EAAWtqM,EAAMsqM,SAGjByN,EAAUhN,KACViN,EAAmB/M,GAAYX,GAWnC,OARAtuB,EAAAA,WAAgB,WACd,GAAI+7B,EAEF,OADAA,EAAQ3D,aAAa9J,EAAU0N,GACxB,WACLD,EAAQzD,eAAehK,EAAU0N,EACnC,CAEJ,GAAG,CAACA,IACAD,EACK,KAIW/7B,EAAAA,cAAoBo6B,GAAkBhvB,GAAS,CAAC,EAAGpnL,EAAO,CAC5EN,IAAKA,IAET,CACA,SAA4Bs8K,EAAAA,WAAiB87B,ICnN7C,IAAI3hB,GAAY,CAAC,YAAa,YAI1B8hB,GAAsB,SAA6B7kG,EAAM1zG,GAC3D,IAAIhwC,EAAY0jJ,EAAK1jJ,UACnB48C,EAAW8mG,EAAK9mG,SAChB21L,EAAYC,GAAyB9uF,EAAM+iF,IACzCmf,EAAoBt5B,EAAAA,WAAiBwuB,IACvC/I,EAAY6T,EAAkB7T,UAC9Bt1O,EAAOmpP,EAAkBnpP,KACzBwpP,EAAML,EAAkBK,IAC1B,OAAoB35B,EAAAA,cAAoB,KAAMoL,GAAS,CACrD13N,UAAWisN,KAAW8lB,EAAWkU,GAAO,GAAGhpP,OAAO80O,EAAW,QAAS,GAAG90O,OAAO80O,EAAW,QAAS,GAAG90O,OAAO80O,EAAW,KAAK90O,OAAgB,WAATR,EAAoB,SAAW,YAAauD,GACjL6mP,KAAM,QACLtU,EAAW,CACZ,kBAAkB,EAClBviM,IAAKA,IACH4M,EACN,EACI4rM,GAA2Bl8B,EAAAA,WAAiBi8B,IAChDC,GAAYluM,YAAc,cAC1B,YCrBO,SAASmuM,GAAc7rM,EAAUgnM,GACtC,OAAO3jJ,GAAQrjD,GAAU92C,KAAI,SAAUpF,EAAOiI,GAC5C,GAAkB2jN,EAAAA,eAAqB5rN,GAAQ,CAC7C,IAAIgoP,EAAWC,EACXprP,EAAMmD,EAAMnD,IACZq9O,EAA+H,QAAnH8N,EAA6C,QAAhCC,EAAejoP,EAAM4vC,aAAoC,IAAjBq4M,OAA0B,EAASA,EAAa/N,gBAAoC,IAAd8N,EAAuBA,EAAYnrP,GAClJ,OAAbq9O,QAAkCl1O,IAAbk1O,KAElCA,EAAW,WAAW39O,OAAO,GAAGA,OAAOw+O,GAAmBmI,GAAU,CAACj7O,IAAQjL,KAAK,OAEpF,IAAIkrP,EAAa,CACfrrP,IAAKq9O,EACLA,SAAUA,GAKZ,OAAoBtuB,EAAAA,aAAmB5rN,EAAOkoP,EAChD,CACA,OAAOloP,CACT,GACF,CCtBA,SADgC4rN,EAAAA,cAAoB,MCKpD,IAAIu8B,GAAa,GCNF,SAASrkP,GAAS3H,EAAM6E,GACrC,IAAK7E,EACH,OAAO,EAIT,GAAIA,EAAK2H,SACP,OAAO3H,EAAK2H,SAAS9C,GAKvB,IADA,IAAIrB,EAAOqB,EACJrB,GAAM,CACX,GAAIA,IAASxD,EACX,OAAO,EAETwD,EAAOA,EAAKnB,UACd,CACA,OAAO,CACT,CChBA,ICDI4pP,GDCAC,GAAe,gBACfC,GAAkB,mBAElBC,GAAiB,IAAIz+M,IACzB,SAAS0+M,KACP,IACE1mG,GADSt6I,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,GAClEs6I,KACd,OAAIA,EACKA,EAAKz3C,WAAW,SAAWy3C,EAAO,QAAQvlJ,OAAOulJ,GAN7C,aASf,CACA,SAAS2mG,GAAazlH,GACpB,OAAIA,EAAO0lH,SACF1lH,EAAO0lH,SAELrpP,SAASw+B,cAAc,SACnBx+B,SAASuE,IAC1B,CAWA,SAAS+kP,GAAWxwP,GAClB,OAAOS,MAAM8J,MAAM6lP,GAAehjP,IAAIpN,IAAcA,GAAW+jD,UAAUhzC,QAAO,SAAUvJ,GACxF,MAAwB,UAAjBA,EAAKP,OACd,GACF,CACO,SAASwpP,GAAUlsP,GACxB,IAAIsmI,EAASx7H,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,IAAKspO,KACH,OAAO,KAET,IAAI+X,EAAM7lH,EAAO6lH,IACfC,EAAU9lH,EAAO8lH,QACjBC,EAAmB/lH,EAAOx7E,SAC1BA,OAAgC,IAArBuhM,EAA8B,EAAIA,EAC3CC,EAxBN,SAAkBF,GAChB,MAAgB,UAAZA,EACK,eAEFA,EAAU,UAAY,QAC/B,CAmBoBG,CAASH,GACvBI,EAAiC,iBAAhBF,EACjBG,EAAY9pP,SAASf,cAAc,SACvC6qP,EAAUjxM,aAAamwM,GAAcW,GACjCE,GAAkB1hM,GACpB2hM,EAAUjxM,aAAaowM,GAAiB,GAAG/rP,OAAOirD,IAExC,OAARqhM,QAAwB,IAARA,GAAkBA,EAAIO,QACxCD,EAAUC,MAAgB,OAARP,QAAwB,IAARA,OAAiB,EAASA,EAAIO,OAElED,EAAU5pP,UAAY7C,EACtB,IAAIvE,EAAYswP,GAAazlH,GACzB/iI,EAAa9H,EAAU8H,WAC3B,GAAI6oP,EAAS,CAEX,GAAII,EAAgB,CAClB,IAAIG,GAAcrmH,EAAOnvG,QAAU80N,GAAWxwP,IAAY+Q,QAAO,SAAUvJ,GAEzE,IAAK,CAAC,UAAW,gBAAgBuI,SAASvI,EAAKi7H,aAAaytH,KAC1D,OAAO,EAIT,IAAIiB,EAAerqP,OAAOU,EAAKi7H,aAAa0tH,KAAoB,GAChE,OAAO9gM,GAAY8hM,CACrB,IACA,GAAID,EAAWnwP,OAEb,OADAf,EAAUsG,aAAa0qP,EAAWE,EAAWA,EAAWnwP,OAAS,GAAGwF,aAC7DyqP,CAEX,CAGAhxP,EAAUsG,aAAa0qP,EAAWlpP,EACpC,MACE9H,EAAUgI,YAAYgpP,GAExB,OAAOA,CACT,CACA,SAASI,GAAc1sP,GACrB,IAAImmI,EAASx7H,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9ErP,EAAYswP,GAAazlH,GAC7B,OAAQA,EAAOnvG,QAAU80N,GAAWxwP,IAAYkR,MAAK,SAAU1J,GAC7D,OAAOA,EAAKi7H,aAAa4tH,GAAQxlH,MAAanmI,CAChD,GACF,CACO,SAAS2sP,GAAU3sP,GACxB,IAAImmI,EAASx7H,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9EiiP,EAAYF,GAAc1sP,EAAKmmI,GAC/BymH,GACchB,GAAazlH,GACnBtjI,YAAY+pP,EAE1B,CAuBO,SAASC,GAAUhtP,EAAKG,GAC7B,IAAI8sP,EAAeniP,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACpFrP,EAAYswP,GAAakB,GACzB91N,EAAS80N,GAAWxwP,GACpB6qI,EAASutG,GAAcA,GAAc,CAAC,EAAGoZ,GAAe,CAAC,EAAG,CAC9D91N,OAAQA,KAvBZ,SAA2B17B,EAAW6qI,GACpC,IAAI4mH,EAAsBrB,GAAehjP,IAAIpN,GAG7C,IAAKyxP,IAAwB9lP,GAASzE,SAAUuqP,GAAsB,CACpE,IAAIC,EAAmBjB,GAAU,GAAI5lH,GACjCxkI,EAAaqrP,EAAiBrrP,WAClC+pP,GAAe7mP,IAAIvJ,EAAWqG,GAC9BrG,EAAUuH,YAAYmqP,EACxB,CACF,CAiBEC,CAAkB3xP,EAAW6qI,GAC7B,IAAIymH,EAAYF,GAAc1sP,EAAKmmI,GACnC,GAAIymH,EAAW,CACb,IAAIM,EAAaC,EAEXC,EADN,GAAmC,QAA9BF,EAAc/mH,EAAO6lH,WAAiC,IAAhBkB,GAA0BA,EAAYX,OAASK,EAAUL,SAA2C,QAA/BY,EAAehnH,EAAO6lH,WAAkC,IAAjBmB,OAA0B,EAASA,EAAaZ,OAErMK,EAAUL,MAAwC,QAA/Ba,EAAejnH,EAAO6lH,WAAkC,IAAjBoB,OAA0B,EAASA,EAAab,MAK5G,OAHIK,EAAUlqP,YAAc7C,IAC1B+sP,EAAUlqP,UAAY7C,GAEjB+sP,CACT,CACA,IAAIS,EAAUtB,GAAUlsP,EAAKsmI,GAE7B,OADAknH,EAAQhyM,aAAaswM,GAAQxlH,GAASnmI,GAC/BqtP,CACT,CChJA,SAASC,GAAqBlhB,GAC5B,IAAImhB,EAAW,wBAAwB7tP,OAAOhD,KAAKmiB,SAAS3V,SAAS,IAAIogB,UAAU,IAC/EkkO,EAAahrP,SAASf,cAAc,OACxC+rP,EAAW7uO,GAAK4uO,EAGhB,IASIE,EACAC,EAVAC,EAAeH,EAAWhtP,MAW9B,GAVAmtP,EAAapnP,SAAW,WACxBonP,EAAapxP,KAAO,IACpBoxP,EAAanxP,IAAM,IACnBmxP,EAAaxwP,MAAQ,QACrBwwP,EAAa9wP,OAAS,QACtB8wP,EAAannP,SAAW,SAKpB4lO,EAAK,CACP,IAAIwhB,EAAcltP,iBAAiB0rO,GACnCuhB,EAAaE,eAAiBD,EAAYC,eAC1CF,EAAaG,eAAiBF,EAAYE,eAG1C,IAAIC,EAAuBrtP,iBAAiB0rO,EAAK,uBAC7CjvO,EAAQykB,SAASmsO,EAAqB5wP,MAAO,IAC7CN,EAAS+kB,SAASmsO,EAAqBlxP,OAAQ,IAGnD,IACE,IAAImxP,EAAa7wP,EAAQ,UAAUuC,OAAOquP,EAAqB5wP,MAAO,KAAO,GACzE8wP,EAAcpxP,EAAS,WAAW6C,OAAOquP,EAAqBlxP,OAAQ,KAAO,GACjFgwP,GAAU,MAAMntP,OAAO6tP,EAAU,2BAA2B7tP,OAAOsuP,EAAY,MAAMtuP,OAAOuuP,EAAa,OAAQV,EACnH,CAAE,MAAO7kO,KAEP4N,QAAQvwB,MAAM2iB,KAGd+kO,EAAgBtwP,EAChBuwP,EAAiB7wP,CACnB,CACF,CACA2F,SAASuE,KAAKzD,YAAYkqP,GAG1B,IAAIt4I,EAAck3H,GAAOqhB,IAAkBpvO,MAAMovO,GAAiBA,EAAgBD,EAAWr4I,YAAcq4I,EAAWp4I,YAClHC,EAAe+2H,GAAOshB,IAAmBrvO,MAAMqvO,GAAkBA,EAAiBF,EAAWl4I,aAAek4I,EAAWj4I,aAK3H,OAFA/yG,SAASuE,KAAKlE,YAAY2qP,GAC1Bb,GAAUY,GACH,CACLpwP,MAAO+3G,EACPr4G,OAAQw4G,EAEZ,CACe,SAAS64I,GAAiBC,GACvC,MAAwB,qBAAb3rP,SACF,IAEL2rP,QAAoBhmP,IAAXojP,MACXA,GAAS+B,MAEJ/B,GAAOpuP,MAChB,CACO,SAASixP,GAAuBnoP,GACrC,MAAwB,qBAAbzD,UAA6ByD,GAAYA,aAAkB6tK,QAM/Dw5E,GAAqBrnP,GALnB,CACL9I,MAAO,EACPN,OAAQ,EAId,CCrEA,IAAIwxP,GAAY,kBAAkB3uP,OAAO2xB,KAAKw8B,OAC1CuvL,GAAO,EACI,SAASkR,GAAgBC,GACtC,IAAIC,IAAeD,EAMjB5vO,EADmBm4N,GAJC/nB,EAAAA,UAAe,WAEjC,OADAquB,IAAQ,EACD,GAAG19O,OAAO2uP,GAAW,KAAK3uP,OAAO09O,GAC1C,IACmD,GAC7B,GACxB/0K,IAAgB,WACd,GAAImmL,EAAY,CACd,IAAIC,EAAgBL,GAAuB5rP,SAASuE,MAAM5J,MACtDuxP,ECfDlsP,SAASuE,KAAKsuG,cAAgB50G,OAAOqjJ,aAAethJ,SAASk0D,gBAAgB6+C,eAAiB90G,OAAOmjJ,WAAaphJ,SAASuE,KAAKouG,YDgBnI03I,GAAU,2CAA2CntP,OAAOgvP,EAAa,sBAAsBhvP,OAAO+uP,EAAe,QAAU,GAAI,OAAQ9vO,EAC7I,MACEguO,GAAUhuO,GAEZ,OAAO,WACLguO,GAAUhuO,EACZ,CACF,GAAG,CAAC6vO,EAAY7vO,GAClB,CE5BO,IAAI4mO,IAAS,ECUpB,IAAIoJ,GAAqB,SAA4B/C,GACnD,OAAqB,IAAjBA,IAGC3X,MAAgB2X,EAGO,kBAAjBA,EACFppP,SAASw+B,cAAc4qN,GAEJ,oBAAjBA,EACFA,IAEFA,EARE,KASX,EACIgD,GAAsB7/B,EAAAA,YAAiB,SAAUh8K,EAAON,GAC1D,IAAIh4B,EAAOs4B,EAAMt4B,KACfo0O,EAAW97M,EAAM87M,SACjBjD,EAAe74M,EAAM64M,aAErBkD,GADQ/7M,EAAMs/F,MACOt/F,EAAMg8M,aAC3BA,OAAqC,IAAvBD,GAAuCA,EACrDzvM,EAAWtM,EAAMsM,SAEjBw3L,EAAmBC,GADC/nB,EAAAA,SAAet0M,GACgB,GACnDu0O,EAAenY,EAAiB,GAChCoY,EAAkBpY,EAAiB,GACjCqY,EAAeF,GAAgBv0O,EAQnCs0M,EAAAA,WAAgB,YACVggC,GAAet0O,IACjBw0O,EAAgBx0O,EAEpB,GAAG,CAACA,EAAMs0O,IAGV,IAGEhI,EAAmBjQ,GAHE/nB,EAAAA,UAAe,WAClC,OAAO4/B,GAAmB/C,EAC5B,IACoD,GACpDuD,EAAiBpI,EAAiB,GAClCqI,EAAoBrI,EAAiB,GACvCh4B,EAAAA,WAAgB,WACd,IAAIsgC,EAAqBV,GAAmB/C,GAG5CwD,EAAyC,OAAvBC,QAAsD,IAAvBA,EAAgCA,EAAqB,KACxG,IACA,IAAIC,EPpDS,SAAgBryM,GAC7B,IAWEmvL,EADmB0K,GAVC/nB,EAAAA,UAAe,WACjC,OAAKklB,KAGYzxO,SAASf,cAAc,OAF/B,IAOX,IACmD,GAC5B,GAGrB8tP,EAAcxgC,EAAAA,QAAa,GAC3BygC,EAAczgC,EAAAA,WAAiB0gC,IAEjC1I,EAAmBjQ,GADE/nB,EAAAA,SAAeu8B,IACgB,GACpDnlO,EAAQ4gO,EAAiB,GACzB2I,EAAW3I,EAAiB,GAC1B4I,EAAoBH,IAAgBD,EAAYpuN,aAAUh5B,EAAY,SAAUynP,GAClFF,GAAS,SAAUp3M,GAEjB,MADe,CAACs3M,GAAUlwP,OAAOw+O,GAAmB5lM,GAEtD,GACF,GAGA,SAASu3M,IACFzjB,EAAI9vM,eACP95B,SAASuE,KAAKzD,YAAY8oO,GAE5BmjB,EAAYpuN,SAAU,CACxB,CACA,SAASg1M,IACP,IAAI2Z,EACyC,QAA5CA,EAAqB1jB,EAAI9vM,qBAAkD,IAAvBwzN,GAAyCA,EAAmBjtP,YAAYupO,GAC7HmjB,EAAYpuN,SAAU,CACxB,CAqBA,OApBAknC,IAAgB,WAUd,OATIprB,EACEuyM,EACFA,EAAYK,GAEZA,IAGF1Z,IAEKA,CACT,GAAG,CAACl5L,IACJorB,IAAgB,WACVliD,EAAM9pB,SACR8pB,EAAMnqB,SAAQ,SAAU4zP,GACtB,OAAOA,GACT,IACAF,EAASpE,IAEb,GAAG,CAACnlO,IACG,CAACimN,EAAKujB,EACf,COTgBI,CAAOb,IAAiBC,GACpCa,EAAWlZ,GAAewY,EAAS,GACnCW,EAAmBD,EAAS,GAC5BR,EAAcQ,EAAS,GACrBE,EAAqC,OAAnBf,QAA8C,IAAnBA,EAA4BA,EAAiBc,EAG9F3B,GAAgBO,GAAYp0O,GAAQw5N,OAAgBic,IAAoBD,GAAoBC,IAAoB1tP,SAASuE,OAGzH,IAAIopP,EAAW,KACX9wM,GAAYysL,GAAWzsL,IAAa5M,IAEtC09M,EADW9wM,EACK5M,KAElB,IAAIogM,EAAYlH,GAAcwkB,EAAU19M,GAKxC,IAAKy8M,IAAiBjb,WAAkC9rO,IAAnBgnP,EACnC,OAAO,KAIT,IDxFyBiB,ECwFrBC,GAAmC,IAApBH,IDvFO,mBAAfE,IACT7K,GAAS6K,GAEJ7K,ICqFH+K,EAAiBjxM,EAMrB,OALI5M,IACF69M,EAA8BvhC,EAAAA,aAAmB1vK,EAAU,CACzD5M,IAAKogM,KAGW9jB,EAAAA,cAAoB0gC,GAAat9I,SAAU,CAC7Dr4G,MAAO01P,GACNa,EAAeC,GAA8Bh3K,EAAAA,GAAAA,cAAag3K,EAAgBJ,GAC/E,IAIA,MCpGA,GDoGA,GEvGA,SAASK,GAAQnkB,GACf,IAAIokB,EACJ,OAAe,OAARpkB,QAAwB,IAARA,GAA2D,QAAxCokB,EAAmBpkB,EAAIqkB,mBAA8C,IAArBD,OAA8B,EAASA,EAAiBv1P,KAAKmxO,EACzJ,CAYO,SAASskB,GAActkB,GAC5B,OARK,SAAkBA,GACvB,OAAOmkB,GAAQnkB,aAAgBukB,UACjC,CAMSC,CAASxkB,GAAOmkB,GAAQnkB,GAAO,IACxC,CCTA,IAAIgR,GAAO,EAQX,IAAIyT,GAXcnd,GAAc,CAAC,EAAG3kB,GACjBhmJ,MAWnB,SAAe8nL,GAEf,SAAelyO,GACb,IAAImyO,EAAUD,KAGd,OAAIlyO,GAQGmyO,CACT,EAEA,SAAqBnyO,GAEnB,IACEk4N,EAAmBC,GADC/nB,EAAAA,SAAe,UACgB,GACnDgiC,EAAUla,EAAiB,GAC3Bma,EAAana,EAAiB,GAQhC,OAPA9nB,EAAAA,WAAgB,WACd,IAAI1jM,EAAS+xN,GACbA,IAAQ,EACR4T,EAAW,aAAatxP,OAAO2rB,GACjC,GAAG,IAGC1M,GAUGoyO,CACT,EC1DA,cACE,GAAyB,qBAAd/4M,WAA+C,qBAAXv3C,OAC7C,OAAO,EAET,IAAIwwP,EAAQj5M,UAAUhkC,WAAagkC,UAAUk5M,QAAUzwP,OAAO0wP,MAC9D,MAAO,sVAAsVj5O,KAAK+4O,IAAU,4hDAA4hD/4O,KAAe,OAAV+4O,QAA4B,IAAVA,OAAmB,EAASA,EAAM/9G,OAAO,EAAG,GAC58D,ECLD,IAAIg2F,GAAY,CAAC,YAEN/lF,GAAuB4rE,EAAAA,cAAoB,CAAC,GACxC,SAASqiC,GAAejrG,GACrC,IAAI9mG,EAAW8mG,EAAK9mG,SAClBtM,EAAQkiM,GAAyB9uF,EAAM+iF,IACzC,OAAoBna,EAAAA,cAAoB5rE,GAAQhxC,SAAU,CACxDr4G,MAAOi5C,GACNsM,EACL,CCUA,SAf8B,SAAU0yL,GACtCC,GAAUF,EAAYC,GACtB,IAAIx8M,EAAS08M,GAAaH,GAC1B,SAASA,IAEP,OADAI,GAAgBh3O,KAAM42O,GACfv8M,EAAOhgB,MAAMra,KAAMyP,UAC5B,CAOA,OANAwnO,GAAaL,EAAY,CAAC,CACxB9xO,IAAK,SACLlG,MAAO,WACL,OAAOoB,KAAK63C,MAAMsM,QACpB,KAEKyyL,CACT,CAd8B,CAc5B/iB,EAAAA,WCnBa,SAASrmN,GAAIipO,EAAQjgO,GAElC,IADA,IAAIyvB,EAAUwwM,EACLv1O,EAAI,EAAGA,EAAIsV,EAAKrV,OAAQD,GAAK,EAAG,CACvC,GAAgB,OAAZ+kC,QAAgCh5B,IAAZg5B,EACtB,OAEFA,EAAUA,EAAQzvB,EAAKtV,GACzB,CACA,OAAO+kC,CACT,CCLA,SAAS,GAAS3mC,GAChB,OAAO,GAAeA,IAAM,GAAgBA,IAAM,GAA2BA,IAAM,IACrF,CCDA,SAAS62P,GAAY1f,EAAQnnJ,EAAO1wF,EAAOw3P,GACzC,IAAK9mK,EAAMnuF,OACT,OAAOvC,EAET,IAGIkJ,EAHAuuP,EAASC,GAAShnK,GACpB94E,EAAO6/O,EAAO,GACdE,EAAWF,EAAOrxP,MAAM,GAgB1B,OAXE8C,EAHG2uO,GAA0B,kBAATjgO,EAEX3V,MAAMqR,QAAQukO,GACfuM,GAAmBvM,GAEnB+B,GAAc,CAAC,EAAG/B,GAJlB,GAQN2f,QAA+BnpP,IAAVrO,GAA2C,IAApB23P,EAASp1P,cAChD2G,EAAM0O,GAAM+/O,EAAS,IAE5BzuP,EAAM0O,GAAQ2/O,GAAYruP,EAAM0O,GAAO+/O,EAAU33P,EAAOw3P,GAEnDtuP,CACT,CACe,SAAS6B,GAAI8sO,EAAQnnJ,EAAO1wF,GACzC,IAAIw3P,EAAoB3mP,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAEvF,OAAI6/E,EAAMnuF,QAAUi1P,QAA+BnpP,IAAVrO,IAAwB4O,GAAIipO,EAAQnnJ,EAAMtqF,MAAM,GAAI,IACpFyxO,EAEF0f,GAAY1f,EAAQnnJ,EAAO1wF,EAAOw3P,EAC3C,CAIA,SAASI,GAAY5qP,GACnB,OAAO/K,MAAMqR,QAAQtG,GAAU,GAAK,CAAC,CACvC,CACA,IAAI3F,GAA0B,qBAAZ07C,QAA0B37C,OAAOC,KAAO07C,QAAQ7uC,QAK3D,SAASw1F,KACd,IAAK,IAAIgoI,EAAO7gO,UAAUtO,OAAQy7F,EAAU,IAAI/7F,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClF3zI,EAAQ2zI,GAAQ9gO,UAAU8gO,GAE5B,IAAIzoO,EAAQ0uP,GAAY55J,EAAQ,IA4BhC,OA3BAA,EAAQ97F,SAAQ,SAAUkJ,IACxB,SAASysP,EAAcjgP,EAAMkgP,GAC3B,IAlBYj0P,EAkBRk0P,EAAU,IAAI77M,IAAI47M,GAClB93P,EAAQ4O,GAAIxD,EAAKwM,GACjBmpE,EAAQ9+E,MAAMqR,QAAQtT,GAC1B,GAAI+gF,IArBQl9E,EAqBU7D,EApBF,YAAjB4D,EAAAA,GAAAA,GAAQC,IAA6B,OAARA,GAAgBuD,OAAOmN,eAAe1Q,KAASuD,OAAOnG,YAsBpF,IAAK82P,EAAQ9jP,IAAIjU,GAAQ,CACvB+3P,EAAQnhO,IAAI52B,GACZ,IAAIg4P,EAAcppP,GAAI1F,EAAO0O,GACzBmpE,EAEF73E,EAAQ6B,GAAI7B,EAAO0O,EAAM,IACfogP,GAAwC,YAAzBp0P,EAAAA,GAAAA,GAAQo0P,KAEjC9uP,EAAQ6B,GAAI7B,EAAO0O,EAAMggP,GAAY53P,KAEvCqH,GAAKrH,GAAOkC,SAAQ,SAAUgE,GAC5B2xP,EAAc,GAAGjyP,OAAOw+O,GAAmBxsO,GAAO,CAAC1R,IAAO6xP,EAC5D,GACF,OAEA7uP,EAAQ6B,GAAI7B,EAAO0O,EAAM5X,EAE7B,CACA63P,CAAc,GAChB,IACO3uP,CACT,CCjFO,IAAI+uP,GAAc,OACdC,GAAgB,SAChBC,GAAe,QACfC,GAAe,QACfC,GAAY,OACZC,GAAe,UACfC,GAAa,QACbC,GAAc,SACdC,GAAiB,MAKjBC,GAAgB,WCT3B,SAASC,GAAcC,EAAWC,GAChC,IAAIC,EAAW,CAAC,EAMhB,OALAA,EAASF,EAAUr0P,eAAiBs0P,EAAUt0P,cAC9Cu0P,EAAS,SAASlzP,OAAOgzP,IAAc,SAAShzP,OAAOizP,GACvDC,EAAS,MAAMlzP,OAAOgzP,IAAc,MAAMhzP,OAAOizP,GACjDC,EAAS,KAAKlzP,OAAOgzP,IAAc,KAAKhzP,OAAOizP,GAC/CC,EAAS,IAAIlzP,OAAOgzP,IAAc,IAAIhzP,OAAOizP,EAAUt0P,eAChDu0P,CACT,CAgBA,IAAIC,GAfG,SAA2BC,EAAY1xN,GAC5C,IAAIwxN,EAAW,CACb/6L,aAAc46L,GAAc,YAAa,gBACzCz6L,cAAey6L,GAAc,aAAc,kBAU7C,OARIK,IACI,mBAAoB1xN,UACjBwxN,EAAS/6L,aAAaO,UAEzB,oBAAqBh3B,UAClBwxN,EAAS56L,cAAcvM,YAG3BmnM,CACT,CACqBG,CAAkB9jC,KAA+B,qBAAXxuN,OAAyBA,OAAS,CAAC,GAC1FD,GAAQ,CAAC,EACb,GAAIyuN,KAAa,CACf,IAAI+jC,GAAwBxwP,SAASf,cAAc,OACnDjB,GAAQwyP,GAAsBxyP,KAChC,CACA,IAAIyyP,GAAqB,CAAC,EACnB,SAASC,GAA2BP,GACzC,GAAIM,GAAmBN,GACrB,OAAOM,GAAmBN,GAE5B,IAAIQ,EAAYN,GAAeF,GAC/B,GAAIQ,EAGF,IAFA,IAAIC,EAAgBlyP,OAAOC,KAAKgyP,GAC5BxzO,EAAMyzO,EAAc/2P,OACfD,EAAI,EAAGA,EAAIujB,EAAKvjB,GAAK,EAAG,CAC/B,IAAIs2P,EAAYU,EAAch3P,GAC9B,GAAI8E,OAAOnG,UAAUyD,eAAevD,KAAKk4P,EAAWT,IAAcA,KAAalyP,GAE7E,OADAyyP,GAAmBN,GAAaQ,EAAUT,GACnCO,GAAmBN,EAE9B,CAEF,MAAO,EACT,CACA,IAAIU,GAA2BH,GAA2B,gBACtDI,GAA4BJ,GAA2B,iBAChDK,MAAuBF,KAA4BC,IACnDE,GAAmBH,IAA4B,eAC/CI,GAAoBH,IAA6B,gBACrD,SAASI,GAAkBC,EAAgBC,GAChD,OAAKD,EAC2B,YAA5Bj2P,EAAAA,GAAAA,GAAQi2P,GAIHA,EAHIC,EAAehlP,QAAQ,QAAQ,SAAUkF,GAClD,OAAOA,EAAM,GAAGsa,aAClB,KAGK,GAAG1uB,OAAOi0P,EAAgB,KAAKj0P,OAAOk0P,GAPjB,IAQ9B,CC9DA,SADgC3f,KAAc5rK,EAAAA,gBAAkBH,EAAAA,UCEhE,IAAI2rL,GAAkB,CAACzB,GAAcC,GAAYC,GAAaC,IAC1DuB,GAAoB,CAAC1B,GAAcI,IAG5BuB,IAAW,EAGf,SAAS5jB,GAAS70J,GACvB,OAAOA,IAASg3K,IAAeh3K,IAASi3K,EAC1C,CACA,kBAA0B56M,EAAQq8M,EAAa9tO,GAC7C,IACEyzN,EAAa7C,GADCruK,GAAS0pL,IACgB,GACvC72K,EAAOq+J,EAAW,GAClBsa,EAAUta,EAAW,GACnBua,ECnBN,WACE,IAAIC,EAAeplC,EAAAA,OAAa,MAChC,SAASqlC,IACPve,GAAIv0I,OAAO6yJ,EAAahzN,QAC1B,CAsBA,OALA4tL,EAAAA,WAAgB,WACd,OAAO,WACLqlC,GACF,CACF,GAAG,IACI,CArBP,SAASC,EAAUnuO,GACjB,IAAIs7E,EAAQ72F,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EAChFypP,IACA,IAAIE,EAAcze,IAAI,WAChBr0I,GAAS,EACXt7E,EAAS,CACPquO,WAAY,WACV,OAAOD,IAAgBH,EAAahzN,OACtC,IAGFkzN,EAAUnuO,EAAUs7E,EAAQ,EAEhC,IACA2yJ,EAAahzN,QAAUmzN,CACzB,EAMmBF,EACpB,CDRqBI,GAClBC,EAAiB3d,GAAeod,EAAe,GAC/CG,EAAYI,EAAe,GAC3BL,EAAkBK,EAAe,GAInC,IAAIC,EAAaV,EAAcF,GAAoBD,GAgCnD,OA/BAhyB,IAA0B,WACxB,GAAIvmJ,IAAS62K,IAAa72K,IAASi3K,GAAgB,CACjD,IAAInnP,EAAQspP,EAAW90P,QAAQ07E,GAC3Bq5K,EAAWD,EAAWtpP,EAAQ,GAC9Be,EAAS+Z,EAASo1D,GAClBnvE,IAAW4nP,GAEbE,EAAQU,GAAU,GACTA,GAETN,GAAU,SAAU3mH,GAClB,SAASknH,IAEHlnH,EAAK6mH,cACTN,EAAQU,GAAU,EACpB,EACe,IAAXxoP,EACFyoP,IAGA1wP,QAAQM,QAAQ2H,GAAQhR,KAAKy5P,EAEjC,GAEJ,CACF,GAAG,CAACj9M,EAAQ2jC,IACZyzI,EAAAA,WAAgB,WACd,OAAO,WACLqlC,GACF,CACF,GAAG,IACI,CAnCP,WACEH,EAAQ7B,IAAc,EACxB,EAiCoB92K,EACrB,EEjDc,SAASu5K,GAAUC,EAAeC,EAASC,EAAY7uG,GACpE,IAAI8uG,EAAmB9uG,EAAK+uG,YAC1BA,OAAmC,IAArBD,GAAqCA,EACnDE,EAAoBhvG,EAAKivG,aACzBA,OAAqC,IAAtBD,GAAsCA,EACrDE,EAAmBlvG,EAAKmvG,YACxBA,OAAmC,IAArBD,GAAqCA,EACnDE,EAAiBpvG,EAAKovG,eACtBC,EAAyBrvG,EAAKqvG,uBAC9BC,EAAkBtvG,EAAKsvG,gBACvBC,EAAiBvvG,EAAKuvG,eACtBC,EAAiBxvG,EAAKwvG,eACtBC,EAAgBzvG,EAAKyvG,cACrBC,EAAe1vG,EAAK0vG,aACpBC,EAAe3vG,EAAK2vG,aACpBC,EAAiB5vG,EAAK4vG,eACtBC,EAAgB7vG,EAAK6vG,cACrBC,EAAgB9vG,EAAK8vG,cACrBC,EAAc/vG,EAAK+vG,YACnBC,EAAahwG,EAAKgwG,WAClBC,EAAajwG,EAAKiwG,WAClBC,EAAmBlwG,EAAKkwG,iBAGxB1c,EAAa7C,GADCruK,KACyB,GACvC6tL,EAAe3c,EAAW,GAC1B4c,EAAkB5c,EAAW,GAC3B6c,EC/BS,SAAsB/8N,GACnC,IAIE43E,EADqBylI,GAHC/nB,EAAAA,YAAiB,SAAUlpM,GAC/C,OAAOA,EAAI,CACb,GAAG,GACoD,GACtB,GAC/B4wO,EAAkB1nC,EAAAA,OAAat1L,GAQnC,MAAO,CAPQg8M,IAAS,WACtB,OAAOghB,EAAgBt1N,OACzB,IACes0M,IAAS,SAAU1rK,GAChC0sL,EAAgBt1N,QAA6B,oBAAZ4oC,EAAyBA,EAAQ0sL,EAAgBt1N,SAAW4oC,EAC7FsnC,GACF,IAEF,CDgBsBqlJ,CAAa3E,IAC/B4E,EAAiB7f,GAAe0f,EAAe,GAC/CI,EAAYD,EAAe,GAC3BE,EAAYF,EAAe,GAE3B7c,EAAahD,GADEruK,GAAS,MACgB,GACxCjoE,EAAQs5O,EAAW,GACnBgd,EAAWhd,EAAW,GACpBid,EAAgBH,IAChBI,GAAaxuL,EAAAA,EAAAA,SAAO,GACpByuL,GAAczuL,EAAAA,EAAAA,QAAO,MAGzB,SAAS0uL,IACP,OAAOlC,GACT,CAGA,IAAI1yB,GAAY95J,EAAAA,EAAAA,SAAO,GAKvB,SAAS2uL,IACPN,EAAU9E,IACV+E,EAAS,MAAM,EACjB,CACA,IAAIM,EAAsB3hB,IAAS,SAAUnhL,GAC3C,IAAI3c,EAASi/M,IAGb,GAAIj/M,IAAWo6M,GAAf,CAGA,IAAIj3N,EAAUo8N,IACd,IAAI5iM,GAAUA,EAAM+iM,UAAY/iM,EAAMruD,SAAW60B,EAAjD,CAMA,IACIw8N,EADAC,EAAgBj1B,EAAUnhM,QAE1BwW,IAAWq6M,IAAiBuF,EAC9BD,EAAyB,OAAhBpB,QAAwC,IAAhBA,OAAyB,EAASA,EAAYp7N,EAASw5B,GAC/E3c,IAAWs6M,IAAgBsF,EACpCD,EAAwB,OAAfnB,QAAsC,IAAfA,OAAwB,EAASA,EAAWr7N,EAASw5B,GAC5E3c,IAAWu6M,IAAgBqF,IACpCD,EAAwB,OAAflB,QAAsC,IAAfA,OAAwB,EAASA,EAAWt7N,EAASw5B,IAInFijM,IAA4B,IAAXD,GACnBH,GAbF,CAPA,CAsBF,IACIK,EE5FN,SAA0BJ,GACxB,IAAIK,GAAkBjvL,EAAAA,EAAAA,UAGtB,SAASkvL,EAAmB58N,GACtBA,IACFA,EAAQkqB,oBAAoByuM,GAAmB2D,GAC/Ct8N,EAAQkqB,oBAAoBwuM,GAAkB4D,GAElD,CAsBA,OALAroC,EAAAA,WAAgB,WACd,OAAO,WACL2oC,EAAmBD,EAAgBt2N,QACrC,CACF,GAAG,IACI,CAnBP,SAA2BrG,GACrB28N,EAAgBt2N,SAAWs2N,EAAgBt2N,UAAYrG,GACzD48N,EAAmBD,EAAgBt2N,SAEjCrG,GAAWA,IAAY28N,EAAgBt2N,UACzCrG,EAAQr3B,iBAAiBgwP,GAAmB2D,GAC5Ct8N,EAAQr3B,iBAAiB+vP,GAAkB4D,GAG3CK,EAAgBt2N,QAAUrG,EAE9B,EAQ2B48N,EAC5B,CF4D2BC,CAAmBP,GAE3CQ,EADuB9gB,GAAe0gB,EAAqB,GAClB,GAGvCK,EAAmB,SAA0BC,GAC/C,OAAQA,GACN,KAAK9F,GACH,OAAOj/I,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAGq/I,GAAcqD,GAAkBpD,GAAYuD,GAAgBtD,GAAayD,GACtI,KAAK9D,GACH,OAAOl/I,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAGq/I,GAAcsD,GAAiBrD,GAAYwD,GAAevD,GAAa0D,GACpI,KAAK9D,GACH,OAAOn/I,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAGq/I,GAAcuD,GAAiBtD,GAAYyD,GAAexD,GAAa2D,GACpI,QACE,MAAO,CAAC,EAEd,EACI8B,EAAgBhpC,EAAAA,SAAc,WAChC,OAAO8oC,EAAiBd,EAC1B,GAAG,CAACA,IAiCFiB,EAAiBlhB,GAhCCmhB,GAAalB,GAAgBjC,GAAe,SAAUoD,GAEtE,GAAIA,IAAY9F,GAAc,CAC5B,IAAI+F,EAAYJ,EAAc3F,IAC9B,OAAK+F,EAGEA,EAAUjB,KAFRnD,EAGX,CAIE,IAAIqE,EADF98K,KAAQy8K,GAEVjB,GAA0D,QAA/CsB,EAAsBL,EAAcz8K,UAA2C,IAAxB88K,OAAiC,EAASA,EAAoBn9P,KAAK88P,EAAeb,IAAiB,QAAU,MAiBjL,OAfI57K,IAASg3K,IAAeyE,IAAkBhF,KAE5C6F,EAAkBV,KACd3B,EAAiB,IACnBt6L,aAAag8L,EAAY91N,SACzB81N,EAAY91N,QAAU/Y,YAAW,WAC/BgvO,EAAoB,CAClBC,UAAU,GAEd,GAAG9B,KAGHj6K,IAASk3K,IACX2E,IFnIY,IEsIhB,IAC+C,GAC/CkB,EAAYL,EAAe,GAC3B18K,EAAO08K,EAAe,GACpBhqO,EAASmiN,GAAS70J,GACtBgnJ,EAAUnhM,QAAUnT,EAGpB,IAAIsqO,GAAa9vL,EAAAA,EAAAA,QAAO,MAGxBq5J,IAA0B,WAIxB,IAAIm1B,EAAW71N,SAAWm3N,EAAWn3N,UAAY4zN,EAAjD,CAGAwB,EAAgBxB,GAChB,IAOIwD,EAPAlvL,EAAY2tL,EAAW71N,QAC3B61N,EAAW71N,SAAU,GAShBkoC,GAAa0rL,GAAWK,IAC3BmD,EAAavG,IAIX3oL,GAAa0rL,GAAWG,IAC1BqD,EAAatG,KAIX5oL,IAAc0rL,GAAWO,IAAgBjsL,GAAamsL,IAA2BT,GAAWO,KAC9FiD,EAAarG,IAEf,IAAIsG,EAAoBX,EAAiBU,GAGrCA,IAAezD,GAAiB0D,EAAkBpG,MACpDyE,EAAU0B,GACVF,KAGAxB,EAAU9E,IAEZuG,EAAWn3N,QAAU4zN,CAnCrB,CAoCF,GAAG,CAACA,KAIJ7sL,EAAAA,EAAAA,YAAU,YAGR6uL,IAAkB/E,KAAkBoD,GAEpC2B,IAAkB9E,KAAiBiD,GAEnC6B,IAAkB7E,KAAiBoD,IACjCuB,EAAU9E,GAEd,GAAG,CAACqD,EAAcF,EAAaI,KAC/BptL,EAAAA,EAAAA,YAAU,WACR,OAAO,WACL8uL,EAAW71N,SAAU,EACrB85B,aAAag8L,EAAY91N,QAC3B,CACF,GAAG,IAGH,IAAIs3N,EAAsB1pC,EAAAA,QAAa,IACvC7mJ,EAAAA,EAAAA,YAAU,WAEJouL,IACFmC,EAAoBt3N,SAAU,QAEXh5B,IAAjBmuP,GAA8BS,IAAkBhF,MAE9C0G,EAAoBt3N,SAAWm1N,KACZ,OAArBD,QAAkD,IAArBA,GAA+BA,EAAiBC,IAE/EmC,EAAoBt3N,SAAU,EAElC,GAAG,CAACm1N,EAAcS,IAGlB,IAAI2B,EAAcl4P,EAMlB,OALIu3P,EAAc3F,KAAiB92K,IAAS+2K,KAC1CqG,EAAchlB,GAAc,CAC1BjoL,WAAY,QACXitM,IAEE,CAAC3B,EAAez7K,EAAMo9K,EAA8B,OAAjBpC,QAA0C,IAAjBA,EAA0BA,EAAevB,EAC9G,CG7GA,SApHO,SAAsBjoN,GAC3B,IAAI6rN,EAAoB7rN,EACA,YAApBpvC,EAAAA,GAAAA,GAAQovC,KACV6rN,EAAoB7rN,EAAO6rN,mBAK7B,IAAIC,EAAyB7pC,EAAAA,YAAiB,SAAUh8K,EAAON,GAC7D,IAAIomN,EAAiB9lN,EAAMgiN,QACzBA,OAA6B,IAAnB8D,GAAmCA,EAC7CC,EAAuB/lN,EAAMgmN,cAC7BA,OAAyC,IAAzBD,GAAyCA,EACzDE,EAAcjmN,EAAMimN,YACpB35M,EAAWtM,EAAMsM,SACjB45M,EAAalmN,EAAMkmN,WACnBC,EAAkBnmN,EAAMmmN,gBACxBC,EAAapmN,EAAMomN,WAGjBrE,EAfN,SAA6B/hN,EAAOqmN,GAClC,SAAUrmN,EAAMkmN,aAAcN,IAAuC,IAAlBS,EACrD,CAasBC,CAAoBtmN,EAFhBg8K,EAAAA,WAAiB5rE,IACLm2G,QAIhCC,GAAU/wL,EAAAA,EAAAA,UAEVgxL,GAAiBhxL,EAAAA,EAAAA,UAarB,IACEixL,EAAc3iB,GADC+d,GAAUC,EAAeC,GAZ1C,WACE,IAKE,OAAOwE,EAAQp4N,mBAAmBuX,YAAc6gN,EAAQp4N,QAAUu4C,GAAY8/K,EAAer4N,QAC/F,CAAE,MAAOzY,KAEP,OAAO,IACT,CACF,GACkEqqB,GACvB,GACzC4E,EAAS8hN,EAAY,GACrBC,EAAaD,EAAY,GACzBE,EAAcF,EAAY,GAC1BG,EAAgBH,EAAY,GAI1BI,EAAc9qC,EAAAA,OAAa6qC,GAC3BA,IACFC,EAAY14N,SAAU,GAIxB,IAMI24N,EANAC,EAAahrC,EAAAA,aAAkB,SAAUjsN,GAC3Cy2P,EAAQp4N,QAAUr+B,EAClBwoO,GAAQ74L,EAAK3vC,EACf,GAAG,CAAC2vC,IAIAunN,EAActmB,GAAcA,GAAc,CAAC,EAAGylB,GAAa,CAAC,EAAG,CACjEpE,QAASA,IAEX,GAAK11M,EAGE,GAAI1H,IAAWo6M,GAGlB+H,EADEF,EACev6M,EAASq0L,GAAc,CAAC,EAAGsmB,GAAcD,IAChDhB,GAAiBc,EAAY14N,SAAW+3N,EACjC75M,EAASq0L,GAAcA,GAAc,CAAC,EAAGsmB,GAAc,CAAC,EAAG,CAC1Ev3P,UAAWy2P,IACTa,GACKf,IAAgBD,IAAkBG,EAC1B75M,EAASq0L,GAAcA,GAAc,CAAC,EAAGsmB,GAAc,CAAC,EAAG,CAC1Ex5P,MAAO,CACLkB,QAAS,UAETq4P,GAEa,SAEd,CAEL,IAAIE,EACAP,IAAetH,GACjB6H,EAAe,UACN9pB,GAASupB,GAClBO,EAAe,SACNP,IAAerH,KACxB4H,EAAe,SAEjB,IAAIC,EAAYxG,GAAkBuF,EAAY,GAAGv5P,OAAOi4C,EAAQ,KAAKj4C,OAAOu6P,IAC5EH,EAAiBz6M,EAASq0L,GAAcA,GAAc,CAAC,EAAGsmB,GAAc,CAAC,EAAG,CAC1Ev3P,UAAWisN,KAAWglC,GAAkBuF,EAAYthN,IAASo7D,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAGmnJ,EAAWA,GAAaD,GAAehB,EAAkC,kBAAfA,IAC3Jz4P,MAAOm5P,IACLI,EACN,MAjCED,EAAiB,KAoCD/qC,EAAAA,eAAqB+qC,IAAmBhuB,GAAWguB,KAC/C3tB,GAAW2tB,KAE7BA,EAA8B/qC,EAAAA,aAAmB+qC,EAAgB,CAC/DrnN,IAAKsnN,MAIX,OAAoBhrC,EAAAA,cAAoB+iB,GAAY,CAClDr/L,IAAK+mN,GACJM,EACL,IAEA,OADAlB,EAAU77M,YAAc,YACjB67M,CACT,CACA,CAA4BrF,ICtIrB,IAAI4G,GAAa,MACbC,GAAc,OACdC,GAAgB,SAChBC,GAAiB,UACrB,SAASC,GAAgBv6P,GAC9B,IAAIw6P,EAQJ,OAAO9mB,GAAcA,GAAc,CAAC,EANlC8mB,EADEx6P,GAAwB,YAAjBtC,EAAAA,GAAAA,GAAQsC,IAAqB,QAASA,EACtCA,EAEA,CACPA,IAAKA,IAGuC,CAAC,EAAG,CAClDA,IAAKmC,OAAOq4P,EAAOx6P,MAEvB,CACO,SAASy6P,KAEd,OADW9vP,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,IACnEpC,IAAIgyP,GAClB,CCbA,IAAIrxB,GAAY,CAAC,YAAa,WAAY,mBAAoB,gBAC5DiO,GAAa,CAAC,UAMZujB,GAAoB,CAAC,aAAc,UAAW,WAAY,aAAc,eAAgB,cAAe,cAAe,yBAA0B,iBAAkB,gBAAiB,kBAAmB,kBAAmB,gBAAiB,iBAAkB,cAAe,eAAgB,gBAAiB,aAAc,eAAgB,gBAAiB,cAqH/V,SA/GO,WACL,IAAI9B,EAAYjuP,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAKgwP,GAChFC,EAA6B,SAAU7oB,GACzCC,GAAU4oB,EAAe7oB,GACzB,IAAIx8M,EAAS08M,GAAa2oB,GAC1B,SAASA,IACP,IAAIjlO,EACJu8M,GAAgBh3O,KAAM0/P,GACtB,IAAK,IAAIpvB,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GA6BzB,OA3BA91M,EAAQJ,EAAOt6B,KAAKsa,MAAMggB,EAAQ,CAACr6B,MAAMwE,OAAO2lB,KAChD0tF,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,QAAS,CACtDmlO,YAAa,MAGf/nJ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,aAAa,SAAUolO,GACpEplO,EAAMy7E,UAAS,SAAU4pJ,GAOvB,MAAO,CACLF,YAPoBE,EAAUF,YAAYvyP,KAAI,SAAUopO,GACxD,OAAIA,EAAO3xO,MAAQ+6P,EAAkBppB,EAC9B+B,GAAcA,GAAc,CAAC,EAAG/B,GAAS,CAAC,EAAG,CAClDh6L,OAAQ2iN,IAEZ,IAIF,IAAG,WAMqB,IALJ3kO,EAAMpwB,MAAMu1P,YACEzuP,QAAO,SAAU85I,GAE/C,OADaA,EAAKxuG,SACA2iN,EACpB,IAAGj+P,QACwBs5B,EAAMod,MAAMkoN,cACrCtlO,EAAMod,MAAMkoN,cAEhB,GACF,IACOtlO,CACT,CAiEA,OAhEAw8M,GAAayoB,EAAe,CAAC,CAC3B56P,IAAK,SACLlG,MAAO,WACL,IAAIohQ,EAAShgQ,KACT4/P,EAAc5/P,KAAKqK,MAAMu1P,YACzB7R,EAAc/tP,KAAK63C,MACrB+xL,EAAYmkB,EAAYnkB,UACxBzlL,EAAW4pM,EAAY5pM,SACvB87M,EAAoBlS,EAAYoN,iBAEhCrhB,GADeiU,EAAYgS,aACfhmB,GAAyBgU,EAAa/f,KAChDz3H,EAAYqzH,GAAa/V,EAAAA,SACzBqsC,EAAc,CAAC,EAMnB,OALAV,GAAkB1+P,SAAQ,SAAUT,GAClC6/P,EAAY7/P,GAAQy5O,EAAUz5O,UACvBy5O,EAAUz5O,EACnB,WACOy5O,EAAU7zO,KACG4tN,EAAAA,cAAoBt9G,EAAWujI,EAAW8lB,EAAYvyP,KAAI,SAAUqvK,EAAOxsK,GAC7F,IAAIusC,EAASigI,EAAMjgI,OACjBwhN,EAAalkB,GAAyBr9D,EAAOu/D,IAC3C4d,EAAUp9M,IAAWwiN,IAAcxiN,IAAWyiN,GAClD,OAAoBrrC,EAAAA,cAAoB6pC,EAAWz+B,GAAS,CAAC,EAAGihC,EAAa,CAC3Ep7P,IAAKm5P,EAAWn5P,IAChB+0P,QAASA,EACToE,WAAYA,EACZ9C,iBAAkB,SAA0BgF,GACpB,OAAtBF,QAAoD,IAAtBA,GAAgCA,EAAkBE,EAAgB,CAC9Fr7P,IAAKm5P,EAAWn5P,MAEbq7P,GACHH,EAAOH,UAAU5B,EAAWn5P,IAEhC,KACE,SAAU+yC,EAAON,GACnB,OAAO4M,EAASq0L,GAAcA,GAAc,CAAC,EAAG3gM,GAAQ,CAAC,EAAG,CAC1D3nC,MAAOA,IACLqnC,EACN,GACF,IACF,IACE,CAAC,CACHzyC,IAAK,2BACLlG,MAAO,SAAkCwhQ,EAAOx0B,GAC9C,IAAI3lO,EAAOm6P,EAAMn6P,KACb25P,EAAch0B,EAAMg0B,YACpBS,EAAmBd,GAAUt5P,GAC7Bq6P,EDtFL,WACL,IAAIC,EAAW9wP,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GAC/E+wP,EAAc/wP,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GAClFgxP,EAAO,GACPr/I,EAAe,EACfs/I,EAAaF,EAAYr/P,OACzBw/P,EAAiBpB,GAAUgB,GAC3BK,EAAoBrB,GAAUiB,GAGlCG,EAAe7/P,SAAQ,SAAUw+P,GAE/B,IADA,IAAIuB,GAAM,EACD3/P,EAAIkgH,EAAclgH,EAAIw/P,EAAYx/P,GAAK,EAAG,CACjD,IAAI4/P,EAAgBF,EAAkB1/P,GACtC,GAAI4/P,EAAch8P,MAAQw6P,EAAOx6P,IAAK,CAEhCs8G,EAAelgH,IACjBu/P,EAAOA,EAAKj8P,OAAOo8P,EAAkB57P,MAAMo8G,EAAclgH,GAAGmM,KAAI,SAAU5K,GACxE,OAAO+1O,GAAcA,GAAc,CAAC,EAAG/1O,GAAM,CAAC,EAAG,CAC/Cg6C,OAAQwiN,IAEZ,KACA79I,EAAelgH,GAEjBu/P,EAAK5+P,KAAK22O,GAAcA,GAAc,CAAC,EAAGsoB,GAAgB,CAAC,EAAG,CAC5DrkN,OAAQyiN,MAEV99I,GAAgB,EAChBy/I,GAAM,EACN,KACF,CACF,CAGKA,GACHJ,EAAK5+P,KAAK22O,GAAcA,GAAc,CAAC,EAAG8mB,GAAS,CAAC,EAAG,CACrD7iN,OAAQ0iN,KAGd,IAGI/9I,EAAes/I,IACjBD,EAAOA,EAAKj8P,OAAOo8P,EAAkB57P,MAAMo8G,GAAc/zG,KAAI,SAAU5K,GACrE,OAAO+1O,GAAcA,GAAc,CAAC,EAAG/1O,GAAM,CAAC,EAAG,CAC/Cg6C,OAAQwiN,IAEZ,MAOF,IAAIh5P,EAAO,CAAC,EAwBZ,OAvBAw6P,EAAK3/P,SAAQ,SAAUmqJ,GACrB,IAAInmJ,EAAMmmJ,EAAKnmJ,IACfmB,EAAKnB,IAAQmB,EAAKnB,IAAQ,GAAK,CACjC,IACqBkB,OAAOC,KAAKA,GAAMkL,QAAO,SAAUrM,GACtD,OAAOmB,EAAKnB,GAAO,CACrB,IACehE,SAAQ,SAAUigQ,IAE/BN,EAAOA,EAAKtvP,QAAO,SAAUurK,GAC3B,IAAI53K,EAAM43K,EAAM53K,IACd23C,EAASigI,EAAMjgI,OACjB,OAAO33C,IAAQi8P,GAAYtkN,IAAW0iN,EACxC,KAGKr+P,SAAQ,SAAU8G,GACjBA,EAAK9C,MAAQi8P,IAEfn5P,EAAK60C,OAASyiN,GAElB,GACF,IACOuB,CACT,CCO+BO,CAASpB,EAAaS,GAC7C,MAAO,CACLT,YAAaU,EAAiBnvP,QAAO,SAAUslO,GAC7C,IAAIwqB,EAAarB,EAAYtuP,MAAK,SAAU26N,GAC1C,IAAInnO,EAAMmnO,EAAMnnO,IAChB,OAAO2xO,EAAO3xO,MAAQA,CACxB,IAGA,OAAIm8P,GAAcA,EAAWxkN,SAAW2iN,IAAkB3oB,EAAOh6L,SAAW0iN,EAI9E,IAEJ,KAEKO,CACT,CAvGiC,CAuG/B7rC,EAAAA,WAIF,OAHAh8G,EAAAA,GAAAA,GAAgB6nJ,EAAe,eAAgB,CAC7C91B,UAAW,QAEN81B,CACT,CACA,CAAgCrH,ICjIhC,MCFe,SAAS6I,GAAMrpN,GAC5B,IAAIyhM,EAAYzhM,EAAMyhM,UACpBt7M,EAAQ6Z,EAAM7Z,MACdmjO,EAAQtpN,EAAMspN,MACdC,EAAWvpN,EAAMupN,SACfn2G,EAAOk2G,GAAS,CAAC,EACnB55P,EAAY0jJ,EAAK1jJ,UACjBkX,EAAUwsI,EAAKxsI,QACb4iP,EAAcD,EAASz2O,EACzBA,OAAoB,IAAhB02O,EAAyB,EAAIA,EACjCC,EAAcF,EAASrsO,EACvBA,OAAoB,IAAhBusO,EAAyB,EAAIA,EAC/BC,EAAW1tC,EAAAA,SAGf,IAAK71L,IAAUA,EAAMwjO,OACnB,OAAO,KAET,IAAIC,EAAa,CACfp2P,SAAU,YAIZ,IAAwB,IAApB2yB,EAAM0jO,UAAqB,CAC7B,IAAIC,EAAc3jO,EAAMwjO,OAAO,GAC3BI,EAAe5jO,EAAMwjO,OAAO,GAC5BK,EAAUF,EAAY,GACtBG,EAAUH,EAAY,GACtBI,EAAWH,EAAa,GACxBI,EAAWJ,EAAa,GAGxBC,IAAYE,GAAa,CAAC,IAAK,KAAK5xP,SAAS0xP,GAE1B,MAAZA,EACTJ,EAAWngQ,IAAM,EAEjBmgQ,EAAWr7P,OAAS,EAJpBq7P,EAAWngQ,IAAMyzB,EAQf+sO,IAAYE,GAAa,CAAC,IAAK,KAAK7xP,SAAS2xP,GAE1B,MAAZA,EACTL,EAAWpgQ,KAAO,EAElBogQ,EAAWj2P,MAAQ,EAJnBi2P,EAAWpgQ,KAAOspB,CAMtB,CACA,OAAoBkpM,EAAAA,cAAoB,MAAO,CAC7Ct8K,IAAKgqN,EACLh6P,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,UAAW/xO,GACtDjC,MAAOm8P,GACNhjP,EACL,CCpDe,SAASwjP,GAAKpqN,GAC3B,IAAIyhM,EAAYzhM,EAAMyhM,UACpB/5N,EAAOs4B,EAAMt4B,KACbhU,EAASssC,EAAMtsC,OACfg5I,EAAO1sG,EAAM0sG,KACb65G,EAASvmN,EAAMumN,OACjB,OAAK75G,EAGesvE,EAAAA,cAAoB6pC,GAAWz+B,GAAS,CAAC,EAAGm/B,EAAQ,CACtElE,cAAc,EACdL,QAASt6O,EACTs+O,eAAe,KACb,SAAU5yG,GACZ,IAAI1jJ,EAAY0jJ,EAAK1jJ,UACrB,OAAoBssN,EAAAA,cAAoB,MAAO,CAC7CvuN,MAAO,CACLiG,OAAQA,GAEVhE,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,SAAU/xO,IAEzD,IAdS,IAeX,CChBA,SATgCssN,EAAAA,MAAW,SAAU5oE,GAEnD,OADeA,EAAK9mG,QAEtB,IAAG,SAAUhzB,EAAGjd,GACd,OAAOA,EAAK6mE,KACd,ICoLA,SA9KyB84I,EAAAA,YAAiB,SAAUh8K,EAAON,GACzD,IAAI2qN,EAAQrqN,EAAMqqN,MAChB36P,EAAYswC,EAAMtwC,UAClB+xO,EAAYzhM,EAAMyhM,UAClBh0O,EAAQuyC,EAAMvyC,MACdyF,EAAS8sC,EAAM9sC,OACfk1P,EAAoBpoN,EAAMsjN,iBAC1B57O,EAAOs4B,EAAMt4B,KACb4iP,EAAUtqN,EAAMsqN,QAChBlP,EAAQp7M,EAAMo7M,MACd9+K,EAAUt8B,EAAMs8B,QAChBowE,EAAO1sG,EAAM0sG,KACb48G,EAAQtpN,EAAMspN,MACdC,EAAWvpN,EAAMupN,SACjBpjO,EAAQ6Z,EAAM7Z,MACdogO,EAASvmN,EAAMumN,OACfgE,EAAavqN,EAAMuqN,WACnBtE,EAAcjmN,EAAMimN,YACpBuE,EAAoBxqN,EAAMwqN,kBAC1BxO,EAAch8M,EAAMg8M,YACpBH,EAAS77M,EAAMyqN,OACf/2P,EAASssC,EAAMtsC,OACf0hP,EAAep1M,EAAMo1M,aACrBC,EAAer1M,EAAMq1M,aACrBqV,EAAiB1qN,EAAM0qN,eACvBC,EAAuB3qN,EAAM2qN,qBAC7BnxH,EAAQx5F,EAAMw5F,MACdvS,EAAUjnF,EAAMinF,QAChBC,EAAUlnF,EAAMknF,QAChB0jI,EAAU5qN,EAAM4qN,QAChBC,EAAU7qN,EAAM6qN,QAChBC,EAAU9qN,EAAM8qN,QAChB1F,EAAYplN,EAAMolN,UAClBvrD,EAAU75J,EAAM65J,QAChBkxD,EAAc/qN,EAAM+qN,YACpBC,EAAehrN,EAAMgrN,aACnBl3H,EAA6B,oBAAVu2H,EAAuBA,IAAUA,EAGpDY,EAAgBvjP,GAAQ4iP,EAGxBY,GAAqD,OAAtBV,QAAoD,IAAtBA,OAA+B,EAASA,EAAkBlhQ,QAAU,EAEnIw6O,EAAmBC,GADC/nB,EAAAA,UAAgBwuC,IAAsBU,GACP,GACnDC,EAAOrnB,EAAiB,GACxBsnB,EAAUtnB,EAAiB,GAU7B,GAPAxuK,IAAgB,YACT61L,GAAQD,GAA+Bh4P,GAC1Ck4P,GAAQ,EAEZ,GAAG,CAACD,EAAMD,EAA6Bh4P,KAGlCi4P,EACH,OAAO,KAIT,IAAI3iH,EAAO,OACP6iH,EAAc,CAChB7hQ,KAAM,UACNC,IAAK,UACLkK,MAAO60I,EACPj6I,OAAQi6I,GAIV,GAAIhP,IAAU9xH,EAAM,CAClB,IAAI4jP,EACA3B,EAASxjO,EAAMwjO,OACf4B,EAAeplO,EAAMolO,eAA2D,QAAzCD,EAAgBnlO,EAAMmlO,qBAA6C,IAAlBA,OAA2B,EAASA,EAAcC,cAC1IC,EAAaD,GAAiC,MAAjB5B,EAAO,GAAG,GACvC8B,EAAcF,GAAiC,MAAjB5B,EAAO,GAAG,GACxC6B,GACFH,EAAY13P,MAAQi3P,EACpBS,EAAY7hQ,KAAOg/I,IAEnB6iH,EAAY7hQ,KAAOy9H,EACnBokI,EAAY13P,MAAQ60I,GAElBijH,GACFJ,EAAY98P,OAASs8P,EACrBQ,EAAY5hQ,IAAM++I,IAElB6iH,EAAY5hQ,IAAMy9H,EAClBmkI,EAAY98P,OAASi6I,EAEzB,CAGA,IAAIkjH,EAAY,CAAC,EAgBjB,OAfI7xD,IACEA,EAAQvhM,SAAS,WAAa0yP,EAChCU,EAAU5hQ,OAASkhQ,EACVnxD,EAAQvhM,SAAS,cAAgB0yP,IAC1CU,EAAUC,UAAYX,GAEpBnxD,EAAQvhM,SAAS,UAAYyyP,EAC/BW,EAAUthQ,MAAQ2gQ,EACTlxD,EAAQvhM,SAAS,aAAeyyP,IACzCW,EAAUz3N,SAAW82N,IAGpBrjP,IACHgkP,EAAUppB,cAAgB,QAERtmB,EAAAA,cAAoB6/B,EAAQ,CAC9Cn0O,KAAMu+O,GAAegF,EACrBpS,aAAc2R,GAAqB,WACjC,OAAOA,EAAkBt3P,EAC3B,EACA8oP,YAAaA,GACChgC,EAAAA,cAAoBouC,GAAM,CACxC3oB,UAAWA,EACX/5N,KAAMA,EACNhU,OAAQA,EACRg5I,KAAMA,EACN65G,OAAQgE,IACOvuC,EAAAA,cAAoBwiB,GAAgB,CACnD4B,SAAU0qB,EACV3+M,UAAWzkC,IACV,SAAUkkP,GACX,OAAoB5vC,EAAAA,cAAoB6pC,GAAWz+B,GAAS,CAC1Di7B,cAAc,EACdF,aAAa,EACbI,aAAa,EACbyD,eAAe,EACfC,YAAaA,EACbE,gBAAiB,GAAGx5P,OAAO80O,EAAW,YACrC8kB,EAAQ,CACT7D,gBAAiB0C,EACjBzC,eAAgByC,EAChBpD,QAASt6O,EACT47O,iBAAkB,SAA0BuI,GAC1C,IAAIC,EACO,OAAXvF,QAA8B,IAAXA,GAA2E,QAArDuF,EAAwBvF,EAAOjD,wBAAwD,IAA1BwI,GAAoCA,EAAsB5jQ,KAAKq+P,EAAQsF,GAC7KzD,EAAkByD,EACpB,KACE,SAAUz4G,EAAM24G,GAClB,IAAIC,EAAkB54G,EAAK1jJ,UACzBu8P,EAAc74G,EAAK3lJ,MACjBo8K,EAAM8xC,KAAW8lB,EAAWuqB,EAAiBt8P,GACjD,OAAoBssN,EAAAA,cAAoB,MAAO,CAC7Ct8K,IAAK84L,GAAWozB,EAAmBlsN,EAAKqsN,GACxCr8P,UAAWm6K,EACXp8K,MAAOkzO,GAAcA,GAAcA,GAAcA,GAAc,CAC7D,YAAa,GAAGh0O,OAAO48P,EAASz2O,GAAK,EAAG,MACxC,YAAa,GAAGnmB,OAAO48P,EAASrsO,GAAK,EAAG,OACvCmuO,GAAcK,GAAYO,GAAc,CAAC,EAAG,CAC7C1vB,UAAW,aACX7oO,OAAQA,GACPjG,GACH2nP,aAAcA,EACdC,aAAcA,EACdqV,eAAgBA,EAChBpuL,QAASA,EACTquL,qBAAsBA,GACrBrB,GAAsBttC,EAAAA,cAAoBqtC,GAAO,CAClD5nB,UAAWA,EACX6nB,MAAOA,EACPC,SAAUA,EACVpjO,MAAOA,IACQ61L,EAAAA,cAAoBkwC,GAAc,CACjDhpL,OAAQx7D,IAAS0zO,GAChBtnH,GACL,GACF,IACF,ICnKA,SAjBkCkoF,EAAAA,YAAiB,SAAUh8K,EAAON,GAClE,IAAI4M,EAAWtM,EAAMsM,SACnB6/M,EAAoBnsN,EAAMmsN,kBACxBC,EAAYrzB,GAAWzsL,GAGvB+/M,EAASrwC,EAAAA,aAAkB,SAAUjsN,GACvCwoO,GAAQ74L,EAAKysN,EAAoBA,EAAkBp8P,GAAQA,EAC7D,GAAG,CAACo8P,IACArsB,EAAYlH,GAAcyzB,EAAQjzB,GAAW9sL,IACjD,OAAO8/M,EAAyBpwC,EAAAA,aAAmB1vK,EAAU,CAC3D5M,IAAKogM,IACFxzL,CACP,ICbA,SADkC0vK,EAAAA,cAAoB,MCAtD,SAASrsH,GAAQ7+F,GACf,OAAOA,EAAM9H,MAAMqR,QAAQvJ,GAAOA,EAAM,CAACA,GAAO,EAClD,CCFA,SAASw7P,KACP,IAAI56I,EAAK95G,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GACzE+5G,EAAK/5G,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GAE7E,OADmBA,UAAUtO,OAAS,EAAIsO,UAAU,QAAKxC,GAEhDs8G,EAAG,KAAOC,EAAG,GAEfD,EAAG,KAAOC,EAAG,IAAMD,EAAG,KAAOC,EAAG,EACzC,CAeO,SAAS46I,GAAU9qB,EAAW8kB,EAAQlhM,EAAWu7L,GACtD,OAAI2F,IAGAlhM,EACK,CACL6gM,WAAY,GAAGv5P,OAAO80O,EAAW,KAAK90O,OAAO04D,IAG7Cu7L,EACK,CACLsF,WAAYtF,GAGT,KACT,CACO,SAAS4L,GAAOnzB,GACrB,OAAOA,EAAIvtL,cAAcgY,WAC3B,CAOO,SAAS2oM,GAAgBpzB,GAI9B,IAHA,IAAIqzB,EAAe,GACft+N,EAAkB,OAARirM,QAAwB,IAARA,OAAiB,EAASA,EAAI9vM,cACxDojO,EAAc,CAAC,SAAU,SAAU,OAAQ,QACxCv+N,GAAS,CACd,IAAIw+N,EAAwBJ,GAAOp+N,GAASzgC,iBAAiBygC,GAIzD,CAHUw+N,EAAsB5iI,UACtB4iI,EAAsB3iI,UACvB2iI,EAAsBn5P,UACE8F,MAAK,SAAUkhB,GAClD,OAAOkyO,EAAYr0P,SAASmiB,EAC9B,KACEiyO,EAAa1iQ,KAAKokC,GAEpBA,EAAUA,EAAQ7E,aACpB,CACA,OAAOmjO,CACT,CACO,SAASG,GAAM7pB,GACpB,IAAIt8M,EAAe9uB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EACvF,OAAOvI,OAAOic,MAAM03N,GAAOt8M,EAAes8M,CAC5C,CACA,SAAS8pB,GAAWh8P,GAClB,OAAO+7P,GAAMniO,WAAW55B,GAAM,EAChC,CAuBO,SAASi8P,GAAeC,EAAUN,GACvC,IAAIO,EAActsB,GAAc,CAAC,EAAGqsB,GAuDpC,OAtDCN,GAAgB,IAAIzjQ,SAAQ,SAAUowO,GACrC,KAAIA,aAAe6zB,iBAAmB7zB,aAAe8zB,iBAArD,CAKA,IAAIC,EAAyBZ,GAAOnzB,GAAK1rO,iBAAiB0rO,GACxD5lO,EAAW25P,EAAuB35P,SAClC45P,EAAqBD,EAAuBC,mBAC5ChjO,EAAiB+iO,EAAuB/iO,eACxCC,EAAoB8iO,EAAuB9iO,kBAC3CE,EAAkB4iO,EAAuB5iO,gBACzCD,EAAmB6iO,EAAuB7iO,iBACxC+iO,EAAUj0B,EAAIxwO,wBACd0kQ,EAAel0B,EAAI92H,aACrBirJ,EAAiBn0B,EAAI72H,aACrBirJ,EAAcp0B,EAAIj3H,YAClBsrJ,EAAgBr0B,EAAIh3H,YAClBsrJ,EAAeb,GAAWziO,GAC1BujO,EAAkBd,GAAWxiO,GAC7BujO,EAAgBf,GAAWtiO,GAC3BsjO,EAAiBhB,GAAWviO,GAC5BiyK,EAASqwD,GAAMljQ,KAAK22B,MAAMgtO,EAAQljQ,MAAQqjQ,EAAc,KAAQ,KAChEM,EAASlB,GAAMljQ,KAAK22B,MAAMgtO,EAAQxjQ,OAASyjQ,EAAe,KAAQ,KAGlES,GAAkBP,EAAcC,EAAgBG,EAAgBC,GAAkBtxD,EAClFyxD,GAAmBV,EAAeC,EAAiBG,EAAeC,GAAmBG,EAGrFG,EAAuBP,EAAeI,EACtCI,EAA0BP,EAAkBG,EAC5CK,EAAwBP,EAAgBrxD,EACxC6xD,EAAyBP,EAAiBtxD,EAG1C8xD,EAAkB,EAClBC,EAAmB,EACvB,GAAiB,SAAb96P,EAAqB,CACvB,IAAI+6P,EAAU1B,GAAWO,GACzBiB,EAAkBE,EAAUhyD,EAC5B+xD,EAAmBC,EAAUT,CAC/B,CAGA,IAAIU,EAAUnB,EAAQx6O,EAAIs7O,EAAwBE,EAC9CI,EAASpB,EAAQpwO,EAAIgxO,EAAuBK,EAC5CI,EAAWF,EAAUnB,EAAQljQ,MAAQ,EAAIkkQ,EAAkBF,EAAwBC,EAAyBL,EAC5GY,EAAYF,EAASpB,EAAQxjQ,OAAS,EAAIykQ,EAAmBL,EAAuBC,EAA0BF,EAClHhB,EAAYzjQ,KAAOG,KAAKwhB,IAAI8hP,EAAYzjQ,KAAMilQ,GAC9CxB,EAAYxjQ,IAAME,KAAKwhB,IAAI8hP,EAAYxjQ,IAAKilQ,GAC5CzB,EAAYt5P,MAAQhK,KAAKyhB,IAAI6hP,EAAYt5P,MAAOg7P,GAChD1B,EAAY1+P,OAAS5E,KAAKyhB,IAAI6hP,EAAY1+P,OAAQqgQ,EAjDlD,CAkDF,IACO3B,CACT,CCjJA,SAAS4B,GAAcrkP,GACrB,IACIskP,EAAY,GAAGniQ,OADNiL,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GAE7Ey1B,EAAQyhO,EAAU/tP,MAAM,YAC5B,OAAIssB,EACK7iB,GAAQkgB,WAAW2C,EAAM,IAAM,KAEjC3C,WAAWokO,EACpB,CACA,SAASC,GAAgBtnO,EAAMw7B,GAC7B,IACE4hH,EAAQk/D,GADC9gL,GAAU,GACU,GAC7BgkE,EAAU49C,EAAM,GAChB39C,EAAU29C,EAAM,GAClB,MAAO,CAACgqF,GAAcpnO,EAAKr9B,MAAO68H,GAAU4nI,GAAcpnO,EAAK39B,OAAQo9H,GACzE,CACA,SAAS8nI,KACP,IAAIrF,EAAS/xP,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GACjF,MAAO,CAAC+xP,EAAO,GAAIA,EAAO,GAC5B,CACA,SAASsF,GAAcxnO,EAAMkiO,GAC3B,IAGIzsO,EAHAgyO,EAAYvF,EAAO,GACnBwF,EAAYxF,EAAO,GAqBvB,OAfEzsO,EADgB,MAAdgyO,EACEznO,EAAKvK,EACc,MAAdgyO,EACLznO,EAAKvK,EAAIuK,EAAK39B,OAEd29B,EAAKvK,EAAIuK,EAAK39B,OAAS,EAWtB,CACLgpB,EARgB,MAAdq8O,EACE1nO,EAAK3U,EACc,MAAdq8O,EACL1nO,EAAK3U,EAAI2U,EAAKr9B,MAEdq9B,EAAK3U,EAAI2U,EAAKr9B,MAAQ,EAI1B8yB,EAAGA,EAEP,CACA,SAASkyO,GAAczF,EAAQtxP,GAC7B,IAAIg3P,EAAa,CACfxzO,EAAG,IACHvZ,EAAG,IACHrY,EAAG,IACHxC,EAAG,KAEL,OAAOkiQ,EAAOn0P,KAAI,SAAUma,EAAOtmB,GACjC,OAAIA,IAAMgP,EACDg3P,EAAW1/O,IAAU,IAEvBA,CACT,IAAGviB,KAAK,GACV,CClEA,IAAI+oO,GAAY,CAAC,YAAa,WAAY,SAAU,aAAc,aAAc,eAAgB,sBAAuB,uBAAwB,0BAA2B,kBAAmB,kBAAmB,aAAc,YAAa,OAAQ,eAAgB,oBAAqB,cAAe,cAAe,qBAAsB,QAAS,iBAAkB,aAAc,iBAAkB,oBAAqB,aAAc,SAAU,UAAW,6BAA8B,QAAS,aAAc,eAAgB,eAAgB,QAAS,cAAe,aAAc,sBAAuB,iBAAkB,qBAAsB,gBAAiB,YAAa,qBAqhBvpB,SA3fO,WACL,IAAIm5B,EAAkB13P,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAKikP,GAwf1F,OAvf2B7/B,EAAAA,YAAiB,SAAUh8K,EAAON,GAC3D,IAAIslM,EAAmBhlM,EAAMyhM,UAC3BA,OAAiC,IAArBuD,EAA8B,mBAAqBA,EAC/D14L,EAAWtM,EAAMsM,SACjBijN,EAAgBvvN,EAAMsyB,OACtBA,OAA2B,IAAlBi9L,EAA2B,QAAUA,EAC9CC,EAAaxvN,EAAMwvN,WACnBC,EAAazvN,EAAMyvN,WACnBC,EAAe1vN,EAAM0vN,aACrBC,EAAsB3vN,EAAM2vN,oBAC5BC,EAAuB5vN,EAAM4vN,qBAC7BC,EAA0B7vN,EAAM6vN,wBAChCC,EAAkB9vN,EAAM8vN,gBACxBC,EAAwB/vN,EAAMgwN,gBAC9BA,OAA4C,IAA1BD,EAAmC,GAAMA,EAC3DE,EAAajwN,EAAMiwN,WACnBC,EAAYlwN,EAAMkwN,UAClBxjH,EAAO1sG,EAAM0sG,KACbyjH,EAAsBnwN,EAAMowN,aAC5BA,OAAuC,IAAxBD,GAAwCA,EACvD3F,EAAoBxqN,EAAMwqN,kBAC1BvE,EAAcjmN,EAAMimN,YACpBjK,EAAch8M,EAAMg8M,YACpBqU,EAAqBrwN,EAAMqwN,mBAC3BhG,EAAQrqN,EAAMqqN,MACdiG,EAAiBtwN,EAAMswN,eACvBC,EAAavwN,EAAMuwN,WACnBC,EAAiBxwN,EAAMwwN,eACvBC,EAAwBzwN,EAAM0wN,kBAC9BA,OAA8C,IAA1BD,EAAmC,CAAC,EAAIA,EAC5DE,EAAa3wN,EAAM2wN,WACnBj9P,EAASssC,EAAMtsC,OACfmmM,EAAU75J,EAAM65J,QAChB+2D,EAA6B5wN,EAAM4wN,2BACnCxV,EAAQp7M,EAAMo7M,MACdyV,EAAa7wN,EAAM6wN,WACnBC,EAAe9wN,EAAM8wN,aACrBC,EAAe/wN,EAAM+wN,aACrBzH,EAAQtpN,EAAMspN,MACd0H,EAAchxN,EAAMgxN,YACpBzG,EAAavqN,EAAMuqN,WACnB0G,EAAsBjxN,EAAMixN,oBAC5BC,EAAiBlxN,EAAMkxN,eACvBC,EAAqBnxN,EAAMmxN,mBAC3BC,EAAgBpxN,EAAMoxN,cACtB1hQ,EAAYswC,EAAMtwC,UAClBy8P,EAAoBnsN,EAAMmsN,kBAC1BlqB,EAAYC,GAAyBliM,EAAOm2L,IAC1Ck7B,EAAoBrV,GAAeqU,IAAsB,EAI3DvsB,EAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnDs1C,EAASxtB,EAAiB,GAC1BytB,GAAYztB,EAAiB,GAC/BxuK,IAAgB,WACdi8L,GAAUC,KACZ,GAAG,IAGH,IAAIC,GAAmBz1C,EAAAA,OAAa,CAAC,GACjC01C,GAAgB11C,EAAAA,WAAiB21C,IACjCrjM,GAAU0tJ,EAAAA,SAAc,WAC1B,MAAO,CACL41C,iBAAkB,SAA0BhmP,EAAIimP,GAC9CJ,GAAiBrjO,QAAQxiB,GAAMimP,EACb,OAAlBH,SAA4C,IAAlBA,IAA4BA,GAAcE,iBAAiBhmP,EAAIimP,EAC3F,EAEJ,GAAG,CAACH,KAGA9lP,GAAKoqD,KAEPg+K,GAAmBjQ,GADE/nB,EAAAA,SAAe,MACgB,GACpD81C,GAAW9d,GAAiB,GAC5B+d,GAAc/d,GAAiB,GAG7Bge,GAAmBh2C,EAAAA,OAAa,MAChCi2C,GAAcvvB,IAAS,SAAU3yO,GACnCiiQ,GAAiB5jO,QAAUr+B,EACvB8nO,GAAM9nO,IAAS+hQ,KAAa/hQ,GAC9BgiQ,GAAYhiQ,GAEI,OAAlB2hQ,SAA4C,IAAlBA,IAA4BA,GAAcE,iBAAiBhmP,GAAI7b,EAC3F,IAKEmiQ,GAAmBnuB,GADE/nB,EAAAA,SAAe,MACgB,GACpDm2C,GAAYD,GAAiB,GAC7BE,GAAeF,GAAiB,GAG9BG,GAAqBr2C,EAAAA,OAAa,MAClCs2C,GAAe5vB,IAAS,SAAU3yO,GAChC8nO,GAAM9nO,IAASoiQ,KAAcpiQ,IAC/BqiQ,GAAariQ,GACbsiQ,GAAmBjkO,QAAUr+B,EAEjC,IAGIK,GAAQ4rN,EAAAA,SAAev9G,KAAKnyD,GAC5BimN,IAA8B,OAAVniQ,SAA4B,IAAVA,QAAmB,EAASA,GAAM4vC,QAAU,CAAC,EACnFs4M,GAAa,CAAC,EACdka,GAAiB9vB,IAAS,SAAUrJ,GACtC,IAAIo5B,EAAgBC,EAChBC,EAAWR,GACf,OAAqB,OAAbQ,QAAkC,IAAbA,OAAsB,EAASA,EAASz+P,SAASmlO,MAAyD,QAA9Co5B,EAAiB9U,GAAcgV,UAA0C,IAAnBF,OAA4B,EAASA,EAAeG,QAAUv5B,GAAOA,IAAQs5B,IAA0B,OAAbb,SAAkC,IAAbA,QAAsB,EAASA,GAAS59P,SAASmlO,MAA0D,QAA/Cq5B,EAAkB/U,GAAcmU,WAA2C,IAApBY,OAA6B,EAASA,EAAgBE,QAAUv5B,GAAOA,IAAQy4B,IAAY3jQ,OAAOqQ,OAAOizP,GAAiBrjO,SAAS70B,MAAK,SAAUs4P,GACjgB,OAAwB,OAAhBA,QAAwC,IAAhBA,OAAyB,EAASA,EAAY39P,SAASmlO,KAASA,IAAQw4B,CAC1G,GACF,IAGIgB,GAAmBtG,GAAU9qB,EAAWuvB,EAAaE,EAAgBD,GACrE6B,GAAkBvG,GAAU9qB,EAAW8oB,EAAY6G,EAAeD,GAIpE4B,GAAmBhvB,GADE/nB,EAAAA,SAAe2zC,IAAuB,GACP,GACpDqD,GAAeD,GAAiB,GAChCE,GAAkBF,GAAiB,GAGjCG,GAA8B,OAAjBxD,QAA0C,IAAjBA,EAA0BA,EAAesD,GAG/EG,GAAgBzwB,IAAS,SAAU0wB,QAChBh+P,IAAjBs6P,GACFuD,GAAgBG,EAEpB,IACA99L,IAAgB,WACd29L,GAAgBvD,IAAgB,EAClC,GAAG,CAACA,IACJ,IAAI2D,GAAUr3C,EAAAA,OAAak3C,IAC3BG,GAAQjlO,QAAU8kO,GAClB,IAAII,GAAiBt3C,EAAAA,OAAa,IAClCs3C,GAAellO,QAAU,GACzB,IAAImlO,GAAsB7wB,IAAS,SAAU0wB,GAC3C,IAAII,EACJL,GAAcC,IAK+E,QAAvFI,EAAwBF,GAAellO,QAAQklO,GAAellO,QAAQ9kC,OAAS,UAA0C,IAA1BkqQ,EAAmCA,EAAwBN,MAAgBE,IAC9KE,GAAellO,QAAQpkC,KAAKopQ,GACH,OAAzBxD,QAA0D,IAAzBA,GAAmCA,EAAqBwD,GAE7F,IAGIK,GAAWz3C,EAAAA,SACX03C,GAAa,WACfxrM,aAAaurM,GAASrlO,QACxB,EACIulO,GAAc,SAAqBP,GACrC,IAAI3kK,EAAQ72F,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EAChF87P,KACc,IAAVjlK,EACF8kK,GAAoBH,GAEpBK,GAASrlO,QAAU/Y,YAAW,WAC5Bk+O,GAAoBH,EACtB,GAAW,IAAR3kK,EAEP,EACAutH,EAAAA,WAAgB,WACd,OAAO03C,EACT,GAAG,IAGH,IACEE,GAAoB7vB,GADC/nB,EAAAA,UAAe,GACiB,GACrD63C,GAAWD,GAAkB,GAC7BE,GAAcF,GAAkB,GAClCt+L,IAAgB,SAAUgsK,GACnBA,IAAc4xB,IACjBY,IAAY,EAEhB,GAAG,CAACZ,KACJ,IACEa,GAAoBhwB,GADE/nB,EAAAA,SAAe,MACiB,GACtDg4C,GAAuBD,GAAkB,GACzCE,GAA0BF,GAAkB,GAI5CG,GAAoBnwB,GADE/nB,EAAAA,SAAe,MACiB,GACtDm4C,GAAWD,GAAkB,GAC7BE,GAAcF,GAAkB,GAC9BG,GAAqB,SAA4B9yM,GACnD6yM,GAAY,CAAC7yM,EAAMhG,QAASgG,EAAM/F,SACpC,EACI84M,GD/JO,SAAkB5sP,EAAMoqP,EAAU5+P,EAAQqhQ,EAAW7D,EAAmBC,EAAYI,GACjG,IAYEjtB,EAAmBC,GAZC/nB,EAAAA,SAAe,CACjCxiF,OAAO,EACPvS,QAAS,EACTC,QAAS,EACT0jI,QAAS,EACTC,QAAS,EACT2J,OAAQ,EACRC,OAAQ,EACRj4D,OAAQ,EACRuxD,OAAQ,EACR5nO,MAAOuqO,EAAkB6D,IAAc,CAAC,IAES,GACnDG,EAAa5wB,EAAiB,GAC9B6wB,EAAgB7wB,EAAiB,GAC/B8wB,EAAgB54C,EAAAA,OAAa,GAC7B0wC,EAAe1wC,EAAAA,SAAc,WAC/B,OAAK81C,EAGErF,GAAgBqF,GAFd,EAGX,GAAG,CAACA,IAKA+C,EAAc74C,EAAAA,OAAa,CAAC,GAI3Bt0M,IAFHmtP,EAAYzmO,QAAU,CAAC,GAOzB,IAAI08N,EAAUpoB,IAAS,WACrB,GAAIovB,GAAY5+P,GAAUwU,EAAM,CAC9B,IAAIotP,EAAuBC,EAAcC,EAAcC,EAkCnDC,EAjCAC,EAAerD,EACf7vO,EAAMkzO,EAAarpN,cAEnBspN,EADM5I,GAAO2I,GACexnQ,iBAAiBwnQ,GAC/C/qQ,EAAQgrQ,EAAsBhrQ,MAC9BN,EAASsrQ,EAAsBtrQ,OAC/BurQ,EAAgBD,EAAsB5hQ,SACpC8hQ,EAAaH,EAAa1nQ,MAAMjE,KAChC+rQ,EAAYJ,EAAa1nQ,MAAMhE,IAC/B+rQ,EAAcL,EAAa1nQ,MAAMkG,MACjC8hQ,EAAeN,EAAa1nQ,MAAMc,OAClCmnQ,EAAiBP,EAAa1nQ,MAAMgG,SAGpCkiQ,EAAgBh1B,GAAcA,GAAc,CAAC,EAAG+vB,EAAkB6D,IAAa5D,GAG/EiF,EAAqB3zO,EAAIvzB,cAAc,OAiB3C,GAhByD,QAAxDomQ,EAAwBK,EAAa5rO,qBAAqD,IAA1BurO,GAAoCA,EAAsBvkQ,YAAYqlQ,GACvIA,EAAmBnoQ,MAAMjE,KAAO,GAAGmD,OAAOwoQ,EAAaU,WAAY,MACnED,EAAmBnoQ,MAAMhE,IAAM,GAAGkD,OAAOwoQ,EAAazrH,UAAW,MACjEksH,EAAmBnoQ,MAAM+F,SAAW6hQ,EACpCO,EAAmBnoQ,MAAM3D,OAAS,GAAG6C,OAAOwoQ,EAAa5yJ,aAAc,MACvEqzJ,EAAmBnoQ,MAAMrD,MAAQ,GAAGuC,OAAOwoQ,EAAa/yJ,YAAa,MAGrE+yJ,EAAa1nQ,MAAMjE,KAAO,IAC1B2rQ,EAAa1nQ,MAAMhE,IAAM,IACzB0rQ,EAAa1nQ,MAAMkG,MAAQ,OAC3BwhQ,EAAa1nQ,MAAMc,OAAS,OAC5B4mQ,EAAa1nQ,MAAMgG,SAAW,SAI1BzK,MAAMqR,QAAQnH,GAChBgiQ,EAAa,CACXpiP,EAAG5f,EAAO,GACVgqB,EAAGhqB,EAAO,GACV9I,MAAO,EACPN,OAAQ,OAEL,CACL,IAAIgsQ,EAASC,EACTtuO,EAAOv0B,EAAOrK,wBAClB4+B,EAAK3U,EAA2B,QAAtBgjP,EAAUruO,EAAK3U,SAA2B,IAAZgjP,EAAqBA,EAAUruO,EAAKj+B,KAC5Ei+B,EAAKvK,EAA2B,QAAtB64O,EAAUtuO,EAAKvK,SAA2B,IAAZ64O,EAAqBA,EAAUtuO,EAAKh+B,IAC5EyrQ,EAAa,CACXpiP,EAAG2U,EAAK3U,EACRoK,EAAGuK,EAAKvK,EACR9yB,MAAOq9B,EAAKr9B,MACZN,OAAQ29B,EAAK39B,OAEjB,CACA,IAAIksQ,EAAYb,EAAatsQ,wBAC7BmtQ,EAAUljP,EAAqC,QAAhCiiP,EAAeiB,EAAUljP,SAAgC,IAAjBiiP,EAA0BA,EAAeiB,EAAUxsQ,KAC1GwsQ,EAAU94O,EAAqC,QAAhC83O,EAAegB,EAAU94O,SAAgC,IAAjB83O,EAA0BA,EAAegB,EAAUvsQ,IAC1G,IAAIwsQ,EAAuBh0O,EAAI0hC,gBAC7B0+C,EAAc4zJ,EAAqB5zJ,YACnCG,EAAeyzJ,EAAqBzzJ,aACpCL,EAAc8zJ,EAAqB9zJ,YACnCG,EAAe2zJ,EAAqB3zJ,aACpC3xG,EAAYslQ,EAAqBtlQ,UACjCC,EAAaqlQ,EAAqBrlQ,WAChCslQ,EAAcF,EAAUlsQ,OACxBqsQ,EAAaH,EAAU5rQ,MACvB4gQ,EAAekK,EAAWprQ,OAC1BihQ,EAAcmK,EAAW9qQ,MAGzBgsQ,EAAgB,CAClB5sQ,KAAM,EACNC,IAAK,EACLkK,MAAO0uG,EACP9zG,OAAQi0G,GAEN6zJ,EAAe,CACjB7sQ,MAAOoH,EACPnH,KAAMkH,EACNgD,MAAOwuG,EAAcvxG,EACrBrC,OAAQ+zG,EAAe3xG,GAErB2lQ,EAAaX,EAAcW,WAC3BC,EAAU,UACVC,EAAgB,eACD,WAAfF,GAA2BA,IAAeE,IAC5CF,EAAaC,GAEf,IAAIE,EAAiBH,IAAeE,EAChCE,EAAmB3J,GAAesJ,EAAc3J,GAChDiK,EAAoB5J,GAAeqJ,EAAe1J,GAClDO,EAAcqJ,IAAeC,EAAUI,EAAoBD,EAI3DE,EAAyBH,EAAiBE,EAAoB1J,EAGlEkI,EAAa1nQ,MAAMjE,KAAO,OAC1B2rQ,EAAa1nQ,MAAMhE,IAAM,OACzB0rQ,EAAa1nQ,MAAMkG,MAAQ,IAC3BwhQ,EAAa1nQ,MAAMc,OAAS,IAC5B,IAAIsoQ,EAAkB1B,EAAatsQ,wBAGnCssQ,EAAa1nQ,MAAMjE,KAAO8rQ,EAC1BH,EAAa1nQ,MAAMhE,IAAM8rQ,EACzBJ,EAAa1nQ,MAAMkG,MAAQ6hQ,EAC3BL,EAAa1nQ,MAAMc,OAASknQ,EAC5BN,EAAa1nQ,MAAMgG,SAAWiiQ,EAC4B,QAAzDT,EAAyBE,EAAa5rO,qBAAsD,IAA3B0rO,GAAqCA,EAAuBnlQ,YAAY8lQ,GAG1I,IAAIkB,GAAUjK,GAAMljQ,KAAK22B,MAAM61O,EAAazrO,WAAWtgC,GAAS,KAAQ,KACpE2sQ,GAAUlK,GAAMljQ,KAAK22B,MAAM41O,EAAcxrO,WAAW5gC,GAAU,KAAQ,KAG1E,GAAgB,IAAZgtQ,IAA6B,IAAZC,IAAiBl/B,GAAM3kO,KAAYi3H,GAAUj3H,GAChE,OAIF,IAAI+vD,GAAS0yM,EAAc1yM,OACzB+zM,GAAerB,EAAcqB,aAE7BC,GAAoBlzB,GADCgrB,GAAgBiH,EAAW/yM,IACK,GACrDi0M,GAAeD,GAAkB,GACjCE,GAAeF,GAAkB,GAEjCG,GAAoBrzB,GADEgrB,GAAgBmG,EAAY8B,IACI,GACtDK,GAAgBD,GAAkB,GAClCE,GAAgBF,GAAkB,GACpClC,EAAWpiP,GAAKukP,GAChBnC,EAAWh4O,GAAKo6O,GAGhB,IACEvjC,GAAQgQ,GADE4xB,EAAchM,QAAU,GACJ,GAC9B4N,GAAaxjC,GAAM,GAEjBg2B,GAAeiF,GADHj7B,GAAM,IAElB+1B,GAAckF,GAAYuI,IAC1BC,GAAmBvI,GAAciG,EAAYnL,IAC7C0N,GAAkBxI,GAAc+G,EAAWlM,IAG3C4N,GAAgB/2B,GAAc,CAAC,EAAGg1B,GAGlCgC,GAAcH,GAAiB1kP,EAAI2kP,GAAgB3kP,EAAIokP,GACvDU,GAAcJ,GAAiBt6O,EAAIu6O,GAAgBv6O,EAAIi6O,GAI3D,SAASU,GAA2B5wI,EAASC,GAC3C,IAAIl3E,EAAOp4C,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAKq1P,EAC3EhjQ,EAAI+rQ,EAAUljP,EAAIm0G,EAClBprG,EAAIm6O,EAAU94O,EAAIgqG,EAClBz/H,EAAIwC,EAAIksQ,EACR7zP,EAAIuZ,EAAIq6O,EACR4B,EAAWnuQ,KAAKwhB,IAAIlhB,EAAG+lD,EAAKxmD,MAC5BuuQ,EAAWpuQ,KAAKwhB,IAAI0Q,EAAGm0B,EAAKvmD,KAC5BuuQ,EAAWruQ,KAAKyhB,IAAI3jB,EAAGuoD,EAAKr8C,OAC5BskQ,EAAWtuQ,KAAKyhB,IAAI9I,EAAG0tC,EAAKzhD,QAChC,OAAO5E,KAAKwhB,IAAI,GAAI6sP,EAAWF,IAAaG,EAAWF,GACzD,CACA,IAuBIG,GACAC,GACAC,GACAC,GA1BAC,GAAgCT,GAA2BF,GAAaC,IAGxEW,GAAkCV,GAA2BF,GAAaC,GAAajB,GAGvF6B,GAAqBvJ,GAAciG,EAAY,CAAC,IAAK,MACrDuD,GAAoBxJ,GAAc+G,EAAW,CAAC,IAAK,MACnD0C,GAAqBzJ,GAAciG,EAAY,CAAC,IAAK,MACrDyD,GAAoB1J,GAAc+G,EAAW,CAAC,IAAK,MACnDviQ,GAAWkiQ,EAAcliQ,UAAY,CAAC,EACtCmlQ,GAAUnlQ,GAASmlQ,QACrBC,GAAUplQ,GAASolQ,QACnBC,GAASrlQ,GAASqlQ,OAClBC,GAAStlQ,GAASslQ,OAChBC,GAAgB,SAAuBloQ,GACzC,MAAmB,mBAARA,EACFA,EAEFA,GAAO,CAChB,EAOA,SAASmoQ,KACPf,GAAalC,EAAU94O,EAAI06O,GAC3BO,GAAkBD,GAAahC,EAC/BkC,GAAapC,EAAUljP,EAAI6kP,GAC3BU,GAAiBD,GAAajC,CAChC,CACA8C,KAGA,IAAIC,GAAcF,GAAcH,IAC5BM,GAASrP,GAAY,KAAOC,GAAa,GAG7C,GAAImP,IAAkC,MAAnBpP,GAAY,KAAeqO,GAAkBvB,EAAuBroQ,QAAUsmQ,EAAYzmO,QAAQo5I,IAAK,CACxH,IAAI4xF,GAAiBxB,GACjBuB,GACFC,IAAkBlD,EAAclL,EAEhCoO,GAAiBZ,GAAmBt7O,EAAIy7O,GAAkBz7O,EAAIi6O,GAEhE,IAAIkC,GAAiBxB,GAA2BF,GAAayB,IACzDE,GAA0BzB,GAA2BF,GAAayB,GAAgBzC,GAGtF0C,GAAiBf,IAAiCe,KAAmBf,MAAmC7B,GAExG6C,IAA2Bf,KACzB1D,EAAYzmO,QAAQo5I,IAAK,EACzBowF,GAAcwB,GACdjC,IAAgBA,GAChBO,GAAc/N,OAAS,CAACyF,GAActF,GAAa,GAAIsF,GAAcrF,GAAc,KAEnF8K,EAAYzmO,QAAQo5I,IAAK,CAE7B,CAGA,GAAI0xF,IAAkC,MAAnBpP,GAAY,KAAeoO,GAAatB,EAAuBntQ,KAAOorQ,EAAYzmO,QAAQ0hB,IAAK,CAChH,IAAIypN,GAAkB3B,GAClBuB,GACFI,IAAmBrD,EAAclL,EAEjCuO,GAAkBb,GAAmBx7O,EAAIu7O,GAAkBv7O,EAAIi6O,GAEjE,IAAIqC,GAAkB3B,GAA2BF,GAAa4B,IAC1DE,GAA2B5B,GAA2BF,GAAa4B,GAAiB5C,GAGxF6C,GAAkBlB,IAAiCkB,KAAoBlB,MAAmC7B,GAE1GgD,IAA4BlB,KAC1B1D,EAAYzmO,QAAQ0hB,IAAK,EACzB8nN,GAAc2B,GACdpC,IAAgBA,GAChBO,GAAc/N,OAAS,CAACyF,GAActF,GAAa,GAAIsF,GAAcrF,GAAc,KAEnF8K,EAAYzmO,QAAQ0hB,IAAK,CAE7B,CAGA,IAAI4pN,GAAcV,GAAcJ,IAG5Be,GAAS7P,GAAY,KAAOC,GAAa,GAG7C,GAAI2P,IAAkC,MAAnB5P,GAAY,KAAeuO,GAAiBzB,EAAuBjjQ,OAASkhQ,EAAYzmO,QAAQ+1C,IAAK,CACtH,IAAIy1L,GAAiBjC,GACjBgC,GACFC,IAAkBzD,EAAapL,EAE/B6O,GAAiBpB,GAAmB1lP,EAAI6lP,GAAkB7lP,EAAIokP,GAEhE,IAAI2C,GAAmBhC,GAA2B+B,GAAgBhC,IAC9DkC,GAA4BjC,GAA2B+B,GAAgBhC,GAAajB,GAGxFkD,GAAmBvB,IAAiCuB,KAAqBvB,MAAmC7B,GAE5GqD,IAA6BvB,KAC3B1D,EAAYzmO,QAAQ+1C,IAAK,EACzBwzL,GAAciC,GACd1C,IAAgBA,GAChBQ,GAAc/N,OAAS,CAACyF,GAActF,GAAa,GAAIsF,GAAcrF,GAAc,KAEnF8K,EAAYzmO,QAAQ+1C,IAAK,CAE7B,CAGA,GAAIu1L,IAAkC,MAAnB5P,GAAY,KAAesO,GAAaxB,EAAuBptQ,MAAQqrQ,EAAYzmO,QAAQi4J,IAAK,CACjH,IAAI0zE,GAAkBpC,GAClBgC,GACFI,IAAmB5D,EAAapL,EAEhCgP,GAAkBrB,GAAmB5lP,EAAI2lP,GAAkB3lP,EAAIokP,GAEjE,IAAI8C,GAAmBnC,GAA2BkC,GAAiBnC,IAC/DqC,GAA4BpC,GAA2BkC,GAAiBnC,GAAajB,GAGzFqD,GAAmB1B,IAAiC0B,KAAqB1B,MAAmC7B,GAE5GwD,IAA6B1B,KAC3B1D,EAAYzmO,QAAQi4J,IAAK,EACzBsxE,GAAcoC,GACd7C,IAAgBA,GAChBQ,GAAc/N,OAAS,CAACyF,GAActF,GAAa,GAAIsF,GAAcrF,GAAc,KAEnF8K,EAAYzmO,QAAQi4J,IAAK,CAE7B,CAGA4yE,KACA,IAAIiB,IAAuB,IAAXpB,GAAkB,EAAIA,GACb,kBAAdoB,KAEL9B,GAAazB,EAAkBntQ,OACjCmuQ,IAAeS,GAAazB,EAAkBntQ,KAAO0tQ,GACjDhC,EAAWpiP,EAAIi4O,EAAc4L,EAAkBntQ,KAAO0wQ,KACxDvC,IAAezC,EAAWpiP,EAAI6jP,EAAkBntQ,KAAOuhQ,EAAcmP,KAKrE7B,GAAiB1B,EAAkBhjQ,QACrCgkQ,IAAeU,GAAiB1B,EAAkBhjQ,MAAQujQ,GACtDhC,EAAWpiP,EAAI6jP,EAAkBhjQ,MAAQumQ,KAC3CvC,IAAezC,EAAWpiP,EAAI6jP,EAAkBhjQ,MAAQumQ,MAI9D,IAAIC,IAAuB,IAAXpB,GAAkB,EAAIA,GACb,kBAAdoB,KAELjC,GAAavB,EAAkBltQ,MACjCmuQ,IAAeM,GAAavB,EAAkBltQ,IAAM0tQ,GAIhDjC,EAAWh4O,EAAI8tO,EAAe2L,EAAkBltQ,IAAM0wQ,KACxDvC,IAAe1C,EAAWh4O,EAAIy5O,EAAkBltQ,IAAMuhQ,EAAemP,KAKrEhC,GAAkBxB,EAAkBpoQ,SACtCqpQ,IAAeO,GAAkBxB,EAAkBpoQ,OAAS4oQ,GACxDjC,EAAWh4O,EAAIy5O,EAAkBpoQ,OAAS4rQ,KAC5CvC,IAAe1C,EAAWh4O,EAAIy5O,EAAkBpoQ,OAAS4rQ,MAO/D,IAAIC,GAAYpE,EAAUljP,EAAI6kP,GAC1B0C,GAAaD,GAAYjE,EACzBmE,GAAWtE,EAAU94O,EAAI06O,GACzB2C,GAAcD,GAAWpE,EACzBsE,GAAatF,EAAWpiP,EACxB2nP,GAAcD,GAAazP,EAC3B2P,GAAYxF,EAAWh4O,EACvBy9O,GAAeD,GAAY1P,EAI3B4P,IAHUjxQ,KAAKwhB,IAAIivP,GAAWI,IACnB7wQ,KAAKyhB,IAAIivP,GAAYI,KACC,EACVL,GAIvBS,IAHSlxQ,KAAKwhB,IAAImvP,GAAUI,IAChB/wQ,KAAKyhB,IAAImvP,GAAaI,KACD,EACVL,GACV,OAAjBvJ,QAA0C,IAAjBA,GAA2BA,EAAae,EAAU4F,IAG3E,IAAIoD,GAAgBjE,EAAgBljQ,MAAQqiQ,EAAUljP,GAAK6kP,GAAc3B,EAAU5rQ,OAC/E2wQ,GAAiBlE,EAAgBtoQ,OAASynQ,EAAU94O,GAAK06O,GAAc5B,EAAUlsQ,QACrE,IAAZgtQ,KACFa,GAAchuQ,KAAK22B,MAAMq3O,IACzBmD,GAAgBnxQ,KAAK22B,MAAMw6O,KAEb,IAAZ/D,KACFa,GAAcjuQ,KAAK22B,MAAMs3O,IACzBmD,GAAiBpxQ,KAAK22B,MAAMy6O,KAc9BpG,EAZqB,CACnBn7H,OAAO,EACPvS,QAAS0wI,GAAcb,GACvB5vI,QAAS0wI,GAAcb,GACvBnM,QAASkQ,GAAgBhE,GACzBjM,QAASkQ,GAAiBhE,GAC1BvC,OAAQoG,GAAa9D,GACrBrC,OAAQoG,GAAa9D,GACrBv6D,OAAQs6D,GACR/I,OAAQgJ,GACR5wO,MAAOuxO,IAGX,CACF,IAcIsD,EAAa,WACfrG,GAAc,SAAUsG,GACtB,OAAOt6B,GAAcA,GAAc,CAAC,EAAGs6B,GAAM,CAAC,EAAG,CAC/CzhI,OAAO,GAEX,GACF,EAOA,OANAlkE,GAAgB0lM,EAAY,CAACzG,IAC7Bj/L,IAAgB,WACT5tD,GACHszP,GAEJ,GAAG,CAACtzP,IACG,CAACgtP,EAAWl7H,MAAOk7H,EAAWztI,QAASytI,EAAWxtI,QAASwtI,EAAW9J,QAAS8J,EAAW7J,QAAS6J,EAAWF,OAAQE,EAAWD,OAAQC,EAAWl4D,OAAQk4D,EAAW3G,OAAQ2G,EAAWvuO,MA1B9K,WACjByuO,EAAcxmO,SAAW,EACzB,IAAIxiB,EAAKgpP,EAAcxmO,QAGvBj9B,QAAQM,UAAUrJ,MAAK,WACjBwsQ,EAAcxmO,UAAYxiB,GAC5Bk/O,GAEJ,GACF,EAiBF,CC7SoBoQ,CAAShI,GAAYpB,GAAUjB,GAA2B,OAAbsD,GAAoBA,GAAWhC,GAAW3B,EAAgBE,EAAmBC,EAAYI,GACpJoK,GAAap3B,GAAeuwB,GAAW,IACvC96H,GAAQ2hI,GAAW,GACnBl0I,GAAUk0I,GAAW,GACrBj0I,GAAUi0I,GAAW,GACrBvQ,GAAUuQ,GAAW,GACrBtQ,GAAUsQ,GAAW,GACrB3G,GAAS2G,GAAW,GACpB1G,GAAS0G,GAAW,GACpB3+D,GAAS2+D,GAAW,GACpBpN,GAASoN,GAAW,GACpBC,GAAYD,GAAW,GACvBrQ,GAAUqQ,GAAW,IACnBE,GH9OO,SAAmB/J,EAAQh/L,EAAQk9L,EAAYC,GAC5D,OAAOzzC,EAAAA,SAAc,WACnB,IAAIs/C,EAAmB3rK,GAAuB,OAAf6/J,QAAsC,IAAfA,EAAwBA,EAAal9L,GACvFipM,EAAmB5rK,GAAuB,OAAf8/J,QAAsC,IAAfA,EAAwBA,EAAan9L,GACvFkpM,EAAgB,IAAIv4N,IAAIq4N,GACxBG,EAAgB,IAAIx4N,IAAIs4N,GAW5B,OAVIjK,IACEkK,EAAcxgQ,IAAI,WACpBwgQ,EAActkN,OAAO,SACrBskN,EAAc79O,IAAI,UAEhB89O,EAAczgQ,IAAI,WACpBygQ,EAAcvkN,OAAO,SACrBukN,EAAc99O,IAAI,WAGf,CAAC69O,EAAeC,EACzB,GAAG,CAACnK,EAAQh/L,EAAQk9L,EAAYC,GAClC,CG4NqBiM,CAAUpK,EAAQh/L,EAAQk9L,EAAYC,GACrDkM,GAAc53B,GAAes3B,GAAY,GACzCO,GAAcD,GAAY,GAC1BE,GAAcF,GAAY,GACxBG,GAAcF,GAAY5gQ,IAAI,SAC9B+gQ,GAAcF,GAAY7gQ,IAAI,UAAY6gQ,GAAY7gQ,IAAI,eAC1DghQ,GAAet5B,IAAS,WACrBmxB,IACH/I,IAEJ,KCzPW,SAAkBpjP,EAAMxU,EAAQm3P,EAAOS,EAASmR,GAC7D3mM,IAAgB,WACd,GAAI5tD,GAAQxU,GAAUm3P,EAAO,CAC3B,IACI8K,EAAe9K,EACf6R,EAAmBzP,GAFHv5P,GAGhBipQ,EAAkB1P,GAAgB0I,GAClC9mO,EAAMm+N,GAAO2I,GACbiH,EAAa,IAAIn5N,IAAI,CAAC5U,GAAK1hC,OAAOw+O,GAAmB+wB,GAAmB/wB,GAAmBgxB,KAC/F,SAASE,IACPvR,IACAmR,GACF,CAYA,OAXAG,EAAWnzQ,SAAQ,SAAUqzQ,GAC3BA,EAAS5rQ,iBAAiB,SAAU2rQ,EAAc,CAChD51M,SAAS,GAEb,IACAp4B,EAAI39B,iBAAiB,SAAU2rQ,EAAc,CAC3C51M,SAAS,IAIXqkM,IACO,WACLsR,EAAWnzQ,SAAQ,SAAUqzQ,GAC3BA,EAASrqN,oBAAoB,SAAUoqN,GACvChuO,EAAI4jB,oBAAoB,SAAUoqN,EACpC,GACF,CACF,CACF,GAAG,CAAC30P,EAAMxU,EAAQm3P,GACpB,CD+NIkS,CAASrJ,GAAYf,GAAWL,GAAUkK,IAL3B,WACT3I,GAAQjlO,SAAWyiO,GAAckL,IACnCpI,IAAY,EAEhB,IAEAr+L,IAAgB,WACd0mM,IACF,GAAG,CAAC7H,GAAU3D,IAGdl7L,IAAgB,YACV49L,IAAsC,OAAtBxC,QAAoD,IAAtBA,GAAgCA,EAAkBF,IAClGwL,IAEJ,GAAG,CAACtqQ,KAAKE,UAAU++P,KACnB,IAAI6L,GAAmBxgD,EAAAA,SAAc,WACnC,IAAIygD,EFpQH,SAAgC/L,EAAmBjvB,EAAWt7M,EAAOu2O,GAG1E,IAFA,IAAI/S,EAASxjO,EAAMwjO,OACfgT,EAAaxuQ,OAAOC,KAAKsiQ,GACpBrnQ,EAAI,EAAGA,EAAIszQ,EAAWrzQ,OAAQD,GAAK,EAAG,CAC7C,IAAIuzQ,EACArI,EAAYoI,EAAWtzQ,GAC3B,GAAIijQ,GAAsE,QAA1DsQ,EAAwBlM,EAAkB6D,UAAkD,IAA1BqI,OAAmC,EAASA,EAAsBjT,OAAQA,EAAQ+S,GAClK,MAAO,GAAG/vQ,OAAO80O,EAAW,eAAe90O,OAAO4nQ,EAEtD,CACA,MAAO,EACT,CEyP0BsI,CAAuBnM,EAAmBjvB,EAAW25B,GAAWvK,GACpF,OAAOl1C,KAAW8gD,EAA8C,OAA/B7L,QAAsE,IAA/BA,OAAwC,EAASA,EAA2BwK,IACtJ,GAAG,CAACA,GAAWxK,EAA4BF,EAAmBjvB,EAAWovB,IAGzE70C,EAAAA,oBAA0Bt8K,GAAK,WAC7B,MAAO,CACLs4L,cAAeq6B,GAAmBjkO,QAClC+mO,aAAcnD,GAAiB5jO,QAC/B0uO,WAAYd,GAEhB,IAGA,IACEe,GAAoBh5B,GADE/nB,EAAAA,SAAe,GACiB,GACtD+uC,GAAcgS,GAAkB,GAChCC,GAAiBD,GAAkB,GAEnCE,GAAoBl5B,GADE/nB,EAAAA,SAAe,GACiB,GACtDgvC,GAAeiS,GAAkB,GACjCC,GAAkBD,GAAkB,GAClCE,GAAiB,WACnB,GAAItjE,GAAWs4D,GAAW,CACxB,IAAI1qO,EAAO0qO,GAAUtpQ,wBACrBm0Q,GAAev1O,EAAKr9B,OACpB8yQ,GAAgBz1O,EAAK39B,OACvB,CACF,EAkCA,SAASszQ,GAAcxd,EAAWwT,EAAU3kK,EAAO4uK,GACjD/kB,GAAWsH,GAAa,SAAUr+L,GAChC,IAAI+7M,EACS,OAAbD,QAAkC,IAAbA,GAAuBA,EAAS97M,GACrDoyM,GAAYP,EAAU3kK,GAGtB,IAAK,IAAIgqI,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClGpmN,EAAKomN,EAAO,GAAK9gO,UAAU8gO,GAE6B,QAAzD4kC,EAAwB/K,GAAiB3S,UAAkD,IAA1B0d,GAAoCA,EAAsBp1Q,KAAKsa,MAAM86P,EAAuB,CAAC/K,GAAkBhxM,GAAO50D,OAAO2lB,GACjM,CACF,CAxBAgjD,IAAgB,WACV0+L,KACFlJ,KACAkJ,KACAC,GAAwB,MAE5B,GAAG,CAACD,MAqBA8H,IAAeC,MACjBzjB,GAAWh8K,QAAU,SAAU/a,GAC7B,IAAIg8M,EACAlK,GAAQjlO,SAAW2tO,GACrBpI,IAAY,IACFN,GAAQjlO,SAAW0tO,KAC7BzH,GAAmB9yM,GACnBoyM,IAAY,IAId,IAAK,IAAI96B,EAAQjhO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAM6vO,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGxmN,EAAKwmN,EAAQ,GAAKlhO,UAAUkhO,GAEyB,QAAtDykC,EAAwBhL,GAAiBj2L,eAA+C,IAA1BihM,GAAoCA,EAAsBr1Q,KAAKsa,MAAM+6P,EAAuB,CAAChL,GAAkBhxM,GAAO50D,OAAO2lB,GAC9L,GAIF,IAKIkrP,GACAC,GANAC,GE1WO,SAAqBh2P,EAAMq0P,EAAa5J,EAAWL,EAAUplH,EAAM0jH,EAAcoC,EAAgBmB,GAC9G,IAAIN,EAAUr3C,EAAAA,OAAat0M,GAC3B2rP,EAAQjlO,QAAU1mB,EAClB,IAAIi2P,EAAsB3hD,EAAAA,QAAa,GA+CvC,OA5CAA,EAAAA,WAAgB,WACd,GAAI+/C,GAAejK,KAAcplH,GAAQ0jH,GAAe,CACtD,IAAIwN,EAAgB,WAClBD,EAAoBvvO,SAAU,CAChC,EACIyvO,EAAiB,SAAwBloP,GAC3C,IAAImoP,GACAzK,EAAQjlO,SAAYokO,GAAuD,QAAtCsL,EAAkBnoP,EAAEooP,oBAA8C,IAApBD,GAA8E,QAA/CA,EAAkBA,EAAgB51Q,KAAKytB,UAAoC,IAApBmoP,OAA6B,EAASA,EAAgB,KAAOnoP,EAAEziB,SAAYyqQ,EAAoBvvO,SAC1QulO,GAAY,EAEhB,EACItlO,EAAMm+N,GAAOsF,GACjBzjO,EAAI39B,iBAAiB,cAAektQ,GAAe,GACnDvvO,EAAI39B,iBAAiB,YAAamtQ,GAAgB,GAClDxvO,EAAI39B,iBAAiB,cAAemtQ,GAAgB,GAGpD,IAAIG,EAAmBrgB,GAAcwU,GAarC,OAZI6L,IACFA,EAAiBttQ,iBAAiB,YAAamtQ,GAAgB,GAC/DG,EAAiBttQ,iBAAiB,cAAemtQ,GAAgB,IAU5D,WACLxvO,EAAI4jB,oBAAoB,cAAe2rN,GAAe,GACtDvvO,EAAI4jB,oBAAoB,YAAa4rN,GAAgB,GACrDxvO,EAAI4jB,oBAAoB,cAAe4rN,GAAgB,GACnDG,IACFA,EAAiB/rN,oBAAoB,YAAa4rN,GAAgB,GAClEG,EAAiB/rN,oBAAoB,cAAe4rN,GAAgB,GAExE,CACF,CACF,GAAG,CAAC9B,EAAa5J,EAAWL,EAAUplH,EAAM0jH,IAC5C,WACEuN,EAAoBvvO,SAAU,CAChC,CAEF,CFuT6B6vO,CAAY/K,GAAY6I,GAAa5J,GAAWL,GAAUplH,EAAM0jH,EAAcoC,GAAgBmB,IAGnHuK,GAActC,GAAY5gQ,IAAI,SAC9BmjQ,GAActC,GAAY7gQ,IAAI,SAG9BkjQ,KAEFd,GAAc,gBAAgB,EAAMtN,GAAiB,SAAUvuM,GAC7D8yM,GAAmB9yM,EACrB,IACA67M,GAAc,kBAAkB,EAAMtN,GAAiB,SAAUvuM,GAC/D8yM,GAAmB9yM,EACrB,IACAi8M,GAAoB,SAA2Bj8M,IAExC2xM,IAAcW,KAA0B,OAAb/B,SAAkC,IAAbA,IAAuBA,GAAS59P,SAASqtD,EAAMruD,SAClGygQ,IAAY,EAAM7D,EAEtB,EAGIe,IACFvY,GAAW8lB,YAAc,SAAU78M,GACjC,IAAI88M,EAEuD,QAA1DA,EAAwB9L,GAAiB6L,mBAAmD,IAA1BC,GAAoCA,EAAsBn2Q,KAAKqqQ,GAAkBhxM,EACtJ,IAGA48M,KACFf,GAAc,gBAAgB,EAAOpN,GACrCoN,GAAc,kBAAkB,EAAOpN,GACvCyN,GAAoB,WAClB9J,IAAY,EAAO3D,EACrB,GAIE4L,GAAY5gQ,IAAI,UAClBoiQ,GAAc,WAAW,EAAMnN,GAE7B4L,GAAY7gQ,IAAI,UAClBoiQ,GAAc,UAAU,EAAOlN,GAI7B0L,GAAY5gQ,IAAI,iBAClBs9O,GAAWgmB,cAAgB,SAAU/8M,GACnC,IAAIg9M,EACAlL,GAAQjlO,SAAWytO,GAAY7gQ,IAAI,eACrC24P,IAAY,IAEZU,GAAmB9yM,GACnBoyM,IAAY,IAEdpyM,EAAMrH,iBAGN,IAAK,IAAIskN,EAAQ5mQ,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMw1Q,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGnsP,EAAKmsP,EAAQ,GAAK7mQ,UAAU6mQ,GAEgC,QAA7DF,EAAyBhM,GAAiB+L,qBAAsD,IAA3BC,GAAqCA,EAAuBr2Q,KAAKsa,MAAM+7P,EAAwB,CAAChM,GAAkBhxM,GAAO50D,OAAO2lB,GACxM,GAIE5iB,IACF4oP,GAAW5oP,UAAYisN,KAAW42C,GAAiB7iQ,UAAWA,IAIhE,IAAIgvQ,GAAsB/9B,GAAcA,GAAc,CAAC,EAAG4xB,IAAmBja,IAGzEnC,GAAc,CAAC,EACG,CAAC,gBAAiB,UAAW,cAAe,eAAgB,eAAgB,eAAgB,UAAW,UAC7GltP,SAAQ,SAAU22P,GAC5B3d,EAAU2d,KACZzJ,GAAYyJ,GAAa,WAEvB,IADA,IAAI+e,EACKC,EAAQhnQ,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAM41Q,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFvsP,EAAKusP,GAASjnQ,UAAUinQ,GAEmC,QAA5DF,EAAwBD,GAAoB9e,UAAkD,IAA1B+e,GAAoCA,EAAsBz2Q,KAAKsa,MAAMm8P,EAAuB,CAACD,IAAqB/xQ,OAAO2lB,IAC9L2vN,EAAU2d,GAAWp9O,MAAMy/N,EAAW3vN,EACxC,EAEJ,IAGA,IAAIwsP,GAA2B9iD,EAAAA,aAAmB5rN,GAAOuwO,GAAcA,GAAc,CAAC,EAAG+9B,IAAsBvoB,KAC3GoT,GAAW,CACbz2O,EAAG0hP,GACHt3O,EAAGu3O,IAEDsK,GAAazV,EAAQ3oB,GAAc,CAAC,GAAa,IAAV2oB,EAAiBA,EAAQ,CAAC,GAAK,KAG1E,OAAoBttC,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoBwiB,GAAgB,CAC7GryL,UAAW+mN,GACXxzN,IAAK4yN,GACLlyB,SA1KmB,WACnB+8B,KACAnB,IACF,GAwKgBhgD,EAAAA,cAAoBgjD,GAAgB,CAClD7S,kBAAmBA,GAClB2S,KAA4B9iD,EAAAA,cAAoB21C,GAAevyJ,SAAU,CAC1Er4G,MAAOunE,IACO0tJ,EAAAA,cAAoBijD,GAAO,CACzCxU,OAAQ6E,EACR5vN,IAAKuyN,GACLxwB,UAAWA,EACX4oB,MAAOA,EACP36P,UAAWisN,KAAW20C,EAAgBkM,IACtC/uQ,MAAO8iQ,EACPr9P,OAAQi/P,GACR/c,aAAcooB,GACdnoB,aAAcooB,GAGd/S,eAAgB8S,GAChB9pQ,OAAQA,EAGRgU,KAAMwrP,GACN5I,QAASuJ,GACTzY,MAAOA,EAGP9+K,QAASw0L,EACTnG,qBAAsB+S,GAGtBhxH,KAAMA,EAGN65G,OAAQsM,GACRtI,WAAYuI,GACZxP,iBAvMqB,SAA0BtB,GAC/C8R,IAAY,GACZhJ,KAC4B,OAA5B+E,QAAgE,IAA5BA,GAAsCA,EAAwB7N,EACpG,EAoMEoD,UAjMc,WACd,OAAO,IAAIj0P,SAAQ,SAAUM,GAC3B0rQ,KACAlJ,IAAwB,WACtB,OAAOxiQ,CACT,GACF,GACF,EA6LEw0P,YAAaA,EACbjK,YAAaqV,EACb7G,kBAAmBA,EAGnBrkO,MAAOi1O,GACP9R,MAAOyV,GACPxV,SAAUA,GAGV/vH,MAAOA,GACPvS,QAASA,GACTC,QAASA,GACT0jI,QAASA,GACTC,QAASA,GACTC,QAASkR,GAGTniE,QAASA,EACTkxD,YAAaA,GAAcvuD,GAC3BwuD,aAAcA,GAAe+C,MAEjC,GAKF,CACA,CAA+BlS,IGxhB/B,IAAIqjB,GAAqB,CACvBtG,QAAS,EACTC,QAAS,GAEA8D,GAAa,CACtBwC,QAAS,CACPxV,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,IAEZE,SAAU,CACRzV,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,IAEZG,WAAY,CACV1V,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,IAEZI,YAAa,CACX3V,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,IAEZK,QAAS,CACP5V,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,IAEZM,WAAY,CACV7V,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,IAEZO,SAAU,CACR9V,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,IAEZQ,YAAa,CACX/V,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,KAGHS,GAAgB,CACzBR,QAAS,CACPxV,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,IAEZE,SAAU,CACRzV,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,IAEZG,WAAY,CACV1V,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,IAEZI,YAAa,CACX3V,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,IAEZO,SAAU,CACR9V,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,IAEZQ,YAAa,CACX/V,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,IAEZK,QAAS,CACP5V,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,IAEZM,WAAY,CACV7V,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,KCrEP,SAAS3S,GAAUpgQ,EAAMo6P,EAAQqZ,GACtC,OAAIrZ,IAGAqZ,EACKA,EAAezzQ,IAASyzQ,EAAe54Q,WADhD,EAIF,CCEA,IAAI64Q,GAAoB,CACtB/4O,WAAY,aACZD,SAAU,WACV,gBAAiB,WACjB,iBAAkB,WAEL,SAASi5O,GAAa1sH,GACnC,IAAIquF,EAAYruF,EAAKquF,UACnBugB,EAAU5uG,EAAK4uG,QACf11M,EAAW8mG,EAAK9mG,SAChB+9M,EAAQj3G,EAAKi3G,MACbkG,EAAan9G,EAAKm9G,WAClBD,EAAiBl9G,EAAKk9G,eACtByP,EAAc3sH,EAAK2sH,YACnB5zN,EAAWinG,EAAKjnG,SAChBhgD,EAAOinJ,EAAKjnJ,KACZu5O,EAAkBtyF,EAAKsyF,gBACrB4P,EAAoBt5B,EAAAA,WAAiBwuB,IACvCggB,EAAoBlV,EAAkBkV,kBACtC7U,EAAML,EAAkBK,IACxBqqB,EAAmB1qB,EAAkB0qB,iBACrCC,EAAoB3qB,EAAkB2qB,kBACtCvP,EAAoBpb,EAAkBob,kBACtCwP,EAAuB5qB,EAAkB4qB,qBACzCC,EAAqB7qB,EAAkB6qB,mBACvCC,EAAgB9qB,EAAkB8qB,cAClC7Z,EAASjR,EAAkBiR,OAC3BqZ,EAAiBtqB,EAAkBsqB,eAEnC97B,EAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnDqkD,EAAev8B,EAAiB,GAChCw8B,EAAkBx8B,EAAiB,GACjCywB,EAAkB5zB,GAAcA,GAAc,CAAC,EAAnCgV,EAAsCgqB,GAAqEhD,IAArDjM,GAClEF,EAAiBqP,GAAkB1zQ,GACnCo0Q,EAAehU,GAAUpgQ,EAAMo6P,EAAQqZ,GACvCY,EAAkBxkD,EAAAA,OAAaukD,GACtB,WAATp0Q,IAKFq0Q,EAAgBpyO,QAAUmyO,GAE5B,IAAIE,EAAe9/B,GAAcA,GAAc,CAAC,EAAG6/B,EAAgBpyO,SAAU,CAAC,EAAG,CAC/E+3N,gBAAiB,GAAGx5P,OAAO80O,EAAW,WACtCukB,eAAe,EACf3D,cAAc,IAIZkD,EAAavpC,EAAAA,SASjB,OARAA,EAAAA,WAAgB,WAId,OAHAupC,EAAWn3N,QAAU00M,IAAI,WACvBw9B,EAAgBte,EAClB,IACO,WACLlf,GAAIv0I,OAAOg3J,EAAWn3N,QACxB,CACF,GAAG,CAAC4zN,IACgBhmC,EAAAA,cAAoB0kD,GAAS,CAC/Cj/B,UAAWA,EACX6uB,eAAgB30C,KAAW,GAAGhvN,OAAO80O,EAAW,WAAWzhI,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,QAASkU,GAAM2a,EAAgB8P,GACnIvmE,QAAkB,eAAT1tM,EAAwB,WAAa,KAC9Cq+P,kBAAmBA,EACnBkG,kBAAmB6D,EACnB/D,eAAgBA,EAChBd,aAAc2Q,EACdhW,MAAOA,EACPkG,WAAYA,EACZI,WAAYoP,GAAe,CACzB98M,OAAQ88M,GAEVztM,OAAQnmB,EAAW,GAAK,CAAC+zN,GACzBpQ,gBAAiBkQ,EACjBhQ,gBAAiBiQ,EACjBrQ,qBAAsBlqB,EACtBugB,YAAaka,EACbnP,YAAayP,EACbrlB,OAAO,GACN9uM,EACL,CClFe,SAASq0N,GAAkBvtH,GACxC,IAAIxnI,EAAKwnI,EAAKxnI,GACZlE,EAAO0rI,EAAK1rI,KACZ4rO,EAAUlgG,EAAKkgG,QACfhnM,EAAW8mG,EAAK9mG,SACds0N,EAAY,SACZtrB,EAAoBt5B,EAAAA,WAAiBwuB,IACvC/I,EAAY6T,EAAkB7T,UAC9B0+B,EAAqB7qB,EAAkB6qB,mBACvC5Z,EAASjR,EAAkBiR,OAC3BqZ,EAAiBtqB,EAAkBsqB,eACnCzzQ,EAAOmpP,EAAkBnpP,KAGvB00Q,EAAc7kD,EAAAA,QAAa,GAC/B6kD,EAAYzyO,QAAUjiC,IAASy0Q,EAI/B,IACE98B,EAAmBC,GADC/nB,EAAAA,UAAgB6kD,EAAYzyO,SACG,GACnDulC,EAAUmwK,EAAiB,GAC3Bg9B,EAAah9B,EAAiB,GAC5BovB,IAAa2N,EAAYzyO,SAAU1mB,EAIvCs0M,EAAAA,WAAgB,WACV6kD,EAAYzyO,SACd0yO,GAAW,EAEf,GAAG,CAAC30Q,IAGJ,IAAIs0Q,EAAe9/B,GAAc,CAAC,EAAG4rB,GAAUqU,EAAWra,EAAQqZ,IAG9DtsB,EAAQhqP,OAAS,IACnBm3Q,EAAape,cAAe,GAI9B,IAAI0e,EAAyBN,EAAand,iBAO1C,OANAmd,EAAand,iBAAmB,SAAU0d,GAIxC,OAHKH,EAAYzyO,SAAY4yO,GAC3BF,GAAW,GAEqB,OAA3BC,QAA8D,IAA3BA,OAAoC,EAASA,EAAuBC,EAChH,EACIrtM,EACK,KAEWqoJ,EAAAA,cAAoBilD,GAAqB,CAC3D90Q,KAAMy0Q,EACNl2B,QAASm2B,EAAYzyO,SACP4tL,EAAAA,cAAoB6pC,GAAWz+B,GAAS,CACtD46B,QAASkR,GACRuN,EAAc,CACfxa,YAAaka,EACbna,eAAe,EACfG,gBAAiB,GAAGx5P,OAAO80O,EAAW,cACpC,SAAU58D,GACZ,IAAImnF,EAAkBnnF,EAAMn1K,UAC1Bu8P,EAAcpnF,EAAMp3K,MACtB,OAAoBuuN,EAAAA,cAAoBk8B,GAAa,CACnDtsO,GAAIA,EACJlc,UAAWs8P,EACXv+P,MAAOw+P,GACN3/M,EACL,IACF,CCzEA,IAAI6pL,GAAY,CAAC,QAAS,YAAa,QAAS,WAAY,UAAW,WAAY,qBAAsB,WAAY,WAAY,aAAc,iBAAkB,cAAe,aAAc,UAAW,eAAgB,eAAgB,eAAgB,oBAAqB,qBAC5QiO,GAAa,CAAC,UAkBZ88B,GAA+BllD,EAAAA,YAAiB,SAAUh8K,EAAON,GACnE,IAAIjyC,EAAQuyC,EAAMvyC,MAChBiC,EAAYswC,EAAMtwC,UAClBwkC,EAAQ8L,EAAM9L,MACdo2M,EAAWtqM,EAAMsqM,SAEjBn+L,GADUnM,EAAMq2M,QACLr2M,EAAMmM,UACjBg1N,EAAqBnhO,EAAMmhO,mBAC3B70N,EAAWtM,EAAMsM,SACjBgqM,EAAWt2M,EAAMs2M,SACjB8qB,EAAaphO,EAAMohO,WACnB9Q,EAAiBtwN,EAAMswN,eACvByP,EAAc//N,EAAM+/N,YACpBxP,EAAavwN,EAAMuwN,WACnBj0L,EAAUt8B,EAAMs8B,QAChB84K,EAAep1M,EAAMo1M,aACrBC,EAAer1M,EAAMq1M,aACrBgsB,EAAerhO,EAAMqhO,aACrBC,EAAoBthO,EAAMshO,kBAC1BC,EAAoBvhO,EAAMuhO,kBAC1Bt/B,EAAYC,GAAyBliM,EAAOm2L,IAC1CugB,EAAYnM,GAAUD,GACtBgL,EAAoBt5B,EAAAA,WAAiBwuB,IACvC/I,EAAY6T,EAAkB7T,UAC9Bt1O,EAAOmpP,EAAkBnpP,KACzBq1Q,EAAWlsB,EAAkBksB,SAC7B5qB,EAAkBtB,EAAkBnpM,SACpC0qM,EAAmBvB,EAAkBuB,iBACrCvF,EAAYgE,EAAkBhE,UAC9ByF,EAAezB,EAAkByB,aACjCD,EAAkBxB,EAAkBgB,SACpCmrB,EAAoBnsB,EAAkB8rB,WACtCzqB,EAAcrB,EAAkBqB,YAChC+qB,EAAepsB,EAAkBosB,aACjCnsB,EAAWD,EAAkBC,SAE7BosB,EADuB3lD,EAAAA,WAAiBi7B,IACQ0qB,2BAEhDjtB,EADuB14B,EAAAA,WAAiBovB,IACNsJ,aAChCL,EAAgBpJ,KAChB22B,EAAmB,GAAGj1Q,OAAO80O,EAAW,YACxC2V,EAAiBR,GAAmBzqM,EACpCmzL,EAAatjB,EAAAA,SACb6lD,EAAW7lD,EAAAA,SAQf,IAAIw7B,EAA8B,OAAblB,QAAkC,IAAbA,EAAsBA,EAAWQ,EACvEgrB,EAAkC,OAAfV,QAAsC,IAAfA,EAAwBA,EAAaK,EAG/EM,EAAaP,EAASlpQ,SAASgyO,GAC/B5iO,GAAQmvO,GAAoBkrB,EAG5BC,EAAmBttB,EAAaqC,EAAczM,GAG9CmN,EAAatC,GAAU7K,EAAU8M,EAAgBkqB,EAAmBC,GACtEtmP,EAASw8N,EAAWx8N,OACpBy8N,EAAcxV,GAAyBuV,EAAYrT,IAInDN,EAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnDimD,EAAiBn+B,EAAiB,GAClCo+B,EAAoBp+B,EAAiB,GACnCq+B,GAAwB,SAA+BC,GACpDhrB,GACH8qB,EAAkBE,EAEtB,EAeIC,GAAermD,EAAAA,SAAc,WAC/B,OAAI/gM,GAGS,WAAT9uB,IACK81Q,GAAkBvtB,EAAa,CAACpD,GAAYhH,GAGvD,GAAG,CAACn+O,EAAM8uB,EAAQq2N,EAAW2wB,EAAgB33B,EAAUoK,IAGnDiD,GAAiBjC,GAAkBrB,EAAc/qP,QAqBjDg5Q,GAAoBxtB,IAAgB,SAAUn6G,GACpC,OAAZr+D,QAAgC,IAAZA,GAAsBA,EAAQy5K,GAAap7G,IAC/Dg8G,EAAYh8G,EACd,IAkBI4nI,GAAU7rB,GAAa,GAAG/pP,OAAO+pP,EAAW,UAG5C8rB,GAAyBxmD,EAAAA,cAAoB,MAAOoL,GAAS,CAC/DmvB,KAAM,WACN9oP,MAAOkqP,GACPjoP,UAAW,GAAG/C,OAAOi1Q,EAAkB,UACvC51B,SAAUoL,EAAiB,MAAQ,EACnC13M,IAAK4/L,EACLprM,MAAwB,kBAAVA,EAAqBA,EAAQ,KAC3C,eAAgB2iN,GAAoBH,EAAY,KAAOA,EACvD,gBAAiBhvO,EACjB,iBAAiB,EACjB,gBAAiB66P,GACjB,gBAAiBnrB,EACjB96K,QArDyB,SAA8B3mD,GAEnDyhO,IAGa,OAAjBiqB,QAA0C,IAAjBA,GAA2BA,EAAa,CAC/Dp0Q,IAAKq9O,EACLmL,SAAU9/N,IAIC,WAATxpB,GACFu1Q,EAAap3B,GAAWy3B,GAE5B,EAwCEtrB,QArBoB,WACpBlB,EAASjL,EACX,GAoBGoN,GAAcxjN,EAAoB8nL,EAAAA,cAAoB65B,GAAM,CAC7Dz7C,KAAe,eAATjuM,EAAwB21Q,OAAmB1sQ,EACjD4qC,MAAO2gM,GAAcA,GAAc,CAAC,EAAG3gM,GAAQ,CAAC,EAAG,CACjDyiO,OAAQ/6P,EAERg7P,WAAW,KAEC1mD,EAAAA,cAAoB,IAAK,CACvCtsN,UAAW,GAAG/C,OAAOi1Q,EAAkB,cAIrCe,GAAiB3mD,EAAAA,OAAa7vN,GAMlC,GALa,WAATA,GAAqBkoP,EAAc/qP,OAAS,EAC9Cq5Q,GAAev0O,QAAU,WAEzBu0O,GAAev0O,QAAUjiC,GAEtB0qP,EAAkB,CACrB,IAAI+rB,GAAcD,GAAev0O,QAIjCo0O,GAAyBxmD,EAAAA,cAAoB8jD,GAAc,CACzD3zQ,KAAMy2Q,GACNnhC,UAAWmgC,EACX5f,SAAUmf,GAAsBz5P,GAAiB,WAATvb,EACxCmkQ,eAAgBA,EAChByP,YAAaA,EACbxP,WAAYA,EACZlG,MAAoBruC,EAAAA,cAAoBilD,GAEtC,CACA90Q,KAAsB,eAAhBy2Q,GAA+B,WAAaA,IACpC5mD,EAAAA,cAAoBk8B,GAAa,CAC/CtsO,GAAI22P,GACJ7iO,IAAKmiO,GACJv1N,IACHH,SAAUirM,EACV1R,gBAvEuB,SAA8Bs7B,GAC1C,WAAT70Q,GACFu1Q,EAAap3B,EAAU02B,EAE3B,GAoEKwB,GACL,CAGA,IAAIK,GAAwB7mD,EAAAA,cAAoB+oB,GAAStC,KAAMrb,GAAS,CACtE1nL,IAAKA,EACL62M,KAAM,QACLtU,EAAW,CACZlQ,UAAW,KACXtkO,MAAOA,EACPiC,UAAWisN,KAAWimD,EAAkB,GAAGj1Q,OAAOi1Q,EAAkB,KAAKj1Q,OAAOR,GAAOuD,GAAWswG,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAOi1Q,EAAkB,SAAUl6P,GAAO,GAAG/a,OAAOi1Q,EAAkB,WAAYS,IAAe,GAAG11Q,OAAOi1Q,EAAkB,aAAcI,GAAmB,GAAGr1Q,OAAOi1Q,EAAkB,aAAcxqB,IACjXhC,aAvIyB,SAA8BK,GACvD0sB,IAAsB,GACL,OAAjB/sB,QAA0C,IAAjBA,GAA2BA,EAAa,CAC/DnoP,IAAKq9O,EACLmL,SAAUA,GAEd,EAkIEJ,aAjIyB,SAA8BI,GACvD0sB,IAAsB,GACL,OAAjB9sB,QAA0C,IAAjBA,GAA2BA,EAAa,CAC/DpoP,IAAKq9O,EACLmL,SAAUA,GAEd,IA4HI+sB,IAAY3rB,GAAiC76B,EAAAA,cAAoB2kD,GAAmB,CACtF/0P,GAAI22P,GACJ76P,KAAMA,EACN4rO,QAASe,GACR/nM,IAWH,OAVIq1N,IACFkB,GAAWlB,EAA2BkB,GAAU7iO,EAAO,CACrDiM,SAAU+1N,EACV/mP,OAAQonP,GACR36P,KAAMA,EACNykC,SAAUirM,KAKMp7B,EAAAA,cAAoBilD,GAAqB,CAC3DtqB,YAAa2rB,GACbn2Q,KAAe,eAATA,EAAwB,WAAaA,EAC3CmqP,SAAUkB,EACV4pB,WAAYU,GACXe,GACL,IAoCA,SAnC2B7mD,EAAAA,YAAiB,SAAUh8K,EAAON,GAC3D,IAiBImrG,EAjBAy/F,EAAWtqM,EAAMsqM,SACnBh+L,EAAWtM,EAAMsM,SACf0rM,EAAmB/M,GAAYX,GAC/BjP,EAAY8c,GAAc7rM,EAAU0rM,GAGpCD,EAAUhN,KAqBd,OAlBA/uB,EAAAA,WAAgB,WACd,GAAI+7B,EAEF,OADAA,EAAQ3D,aAAa9J,EAAU0N,GACxB,WACLD,EAAQzD,eAAehK,EAAU0N,EACnC,CAEJ,GAAG,CAACA,IAKFntG,EADEktG,EACW1c,EAEarf,EAAAA,cAAoBklD,GAAiB95C,GAAS,CACtE1nL,IAAKA,GACJM,GAAQq7L,GAEOrf,EAAAA,cAAoBgvB,GAAmB5rI,SAAU,CACnEr4G,MAAOixP,GACNntG,EACL,IC9Re,SAASi4H,GAAQ1vH,GAC9B,IAAI1jJ,EAAY0jJ,EAAK1jJ,UACnBjC,EAAQ2lJ,EAAK3lJ,MAEbg0O,EADsBzlB,EAAAA,WAAiBwuB,IACT/I,UAEhC,OADcsJ,KAEL,KAEW/uB,EAAAA,cAAoB,KAAM,CAC5Cu6B,KAAM,YACN7mP,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,iBAAkB/xO,GAC7DjC,MAAOA,GAEX,CChBA,IAAI0oO,GAAY,CAAC,YAAa,QAAS,WAAY,YAO/C4sC,GAAqC/mD,EAAAA,YAAiB,SAAUh8K,EAAON,GACzE,IAAIhwC,EAAYswC,EAAMtwC,UACpBwkC,EAAQ8L,EAAM9L,MAEdoY,GADWtM,EAAMsqM,SACNtqM,EAAMsM,UACjB21L,EAAYC,GAAyBliM,EAAOm2L,IAE5CsL,EADsBzlB,EAAAA,WAAiBwuB,IACT/I,UAC5BuhC,EAAiB,GAAGr2Q,OAAO80O,EAAW,eAC1C,OAAoBzlB,EAAAA,cAAoB,KAAMoL,GAAS,CACrD1nL,IAAKA,EACL62M,KAAM,gBACLtU,EAAW,CACZ3lK,QAAS,SAAiB3mD,GACxB,OAAOA,EAAEojC,iBACX,EACArpD,UAAWisN,KAAWqnD,EAAgBtzQ,KACvBssN,EAAAA,cAAoB,MAAO,CAC1Cu6B,KAAM,eACN7mP,UAAW,GAAG/C,OAAOq2Q,EAAgB,UACrC9uO,MAAwB,kBAAVA,EAAqBA,OAAQ9+B,GAC1C8+B,GAAqB8nL,EAAAA,cAAoB,KAAM,CAChDu6B,KAAM,QACN7mP,UAAW,GAAG/C,OAAOq2Q,EAAgB,UACpC12N,GACL,IAiBA,SAhBiC0vK,EAAAA,YAAiB,SAAUh8K,EAAON,GACjE,IAAI4qM,EAAWtqM,EAAMsqM,SAGjBjP,EAAY8c,GAFHn4M,EAAMsM,SACI2+L,GAAYX,IAGnC,OADcS,KAEL1P,EAEWrf,EAAAA,cAAoB+mD,GAAuB37C,GAAS,CACtE1nL,IAAKA,GACJgxD,GAAK1wD,EAAO,CAAC,aAAcq7L,EAChC,IC3CA,IAAIlF,GAAY,CAAC,QAAS,WAAY,MAAO,OAAQ,SAOrD,SAAS8sC,GAAoBra,EAAMsa,EAAYzhC,GAC7C,IAAI0hC,EAAiBD,EAAW7oO,KAC9B+oO,EAAsBF,EAAWn3K,MACjCs3K,EAAgBH,EAAWI,QAC3BC,EAAgBL,EAAWM,QAC7B,OAAQ5a,GAAQ,IAAIpzP,KAAI,SAAUnN,EAAKgQ,GACrC,GAAIhQ,GAAwB,YAAjBsC,EAAAA,GAAAA,GAAQtC,GAAmB,CACpC,IAAI+qJ,EAAO/qJ,EACT44G,EAAQmyC,EAAKnyC,MACb30D,EAAW8mG,EAAK9mG,SAChBr/C,EAAMmmJ,EAAKnmJ,IACXkC,EAAOikJ,EAAKjkJ,KACZwzG,EAAQywC,EAAKzwC,MACbs/H,EAAYC,GAAyB9uF,EAAM+iF,IACzCstC,EAAoB,OAARx2Q,QAAwB,IAARA,EAAiBA,EAAM,OAAON,OAAO0L,GAGrE,OAAIi0C,GAAqB,UAATn9C,EACD,UAATA,EAEkB6sN,EAAAA,cAAoBonD,EAAqBh8C,GAAS,CACpEn6N,IAAKw2Q,GACJxhC,EAAW,CACZ/tM,MAAO+sE,IACLgiK,GAAoB32N,EAAU42N,EAAYzhC,IAI5BzlB,EAAAA,cAAoBqnD,EAAej8C,GAAS,CAC9Dn6N,IAAKw2Q,GACJxhC,EAAW,CACZ/tM,MAAO+sE,IACLgiK,GAAoB32N,EAAU42N,EAAYzhC,IAInC,YAATtyO,EACkB6sN,EAAAA,cAAoBunD,EAAen8C,GAAS,CAC9Dn6N,IAAKw2Q,GACJxhC,IAEejmB,EAAAA,cAAoBmnD,EAAgB/7C,GAAS,CAC/Dn6N,IAAKw2Q,GACJxhC,EAAW,CACZt/H,MAAOA,IACL1B,KAAU0B,GAAmB,IAAVA,IAA6Bq5G,EAAAA,cAAoB,OAAQ,CAC9EtsN,UAAW,GAAG/C,OAAO80O,EAAW,gBAC/B9+H,GACL,CACA,OAAO,IACT,IAAGrpG,QAAO,SAAUjR,GAClB,OAAOA,CACT,GACF,CACO,SAASq7Q,GAAWp3N,EAAUs7L,EAAO0L,EAAS4vB,EAAYzhC,GAC/D,IAAIjkG,EAAalxF,EACbq3N,EAAmBhjC,GAAc,CACnC6iC,QAASV,GACTzoO,KAAMy9M,GACN/rJ,MAAO63K,GACPN,QAASO,IACRX,GAIH,OAHIt7B,IACFpqG,EAAaylI,GAAoBr7B,EAAO+7B,EAAkBliC,IAErD0W,GAAc36G,EAAY81G,EACnC,CCvEA,IAAInd,GAAY,CAAC,YAAa,gBAAiB,QAAS,YAAa,WAAY,QAAS,WAAY,YAAa,KAAM,OAAQ,kBAAmB,WAAY,mBAAoB,mBAAoB,oBAAqB,qBAAsB,kBAAmB,WAAY,YAAa,qBAAsB,aAAc,WAAY,sBAAuB,eAAgB,WAAY,aAAc,eAAgB,SAAU,iBAAkB,uBAAwB,oBAAqB,WAAY,aAAc,sBAAuB,oCAAqC,oBAAqB,UAAW,eAAgB,YAAa,gBAAiB,qBAAsB,0BAA2B,6BAA8B,uBAoCxtBoiB,GAAa,GClCjB,IAAIurB,GDmCoB9nD,EAAAA,YAAiB,SAAUh8K,EAAON,GACxD,IAAIqkO,EACA3wH,EAAOpzG,EACTgkO,EAAiB5wH,EAAKquF,UACtBA,OAA+B,IAAnBuiC,EAA4B,UAAYA,EACpD5D,EAAgBhtH,EAAKgtH,cACrB3yQ,EAAQ2lJ,EAAK3lJ,MACbiC,EAAY0jJ,EAAK1jJ,UACjBu0Q,EAAgB7wH,EAAK44F,SACrBA,OAA6B,IAAlBi4B,EAA2B,EAAIA,EAC1Cr8B,EAAQx0F,EAAKw0F,MACbt7L,EAAW8mG,EAAK9mG,SAChBs5E,EAAYwtB,EAAKxtB,UACjBh6G,EAAKwnI,EAAKxnI,GACVs4P,EAAY9wH,EAAKjnJ,KACjBA,OAAqB,IAAd+3Q,EAAuB,WAAaA,EAC3CC,EAAkB/wH,EAAK+wH,gBACvBh4N,EAAWinG,EAAKjnG,SAChBi4N,EAAmBhxH,EAAKgxH,iBACxBC,EAAwBjxH,EAAK4sH,iBAC7BA,OAA6C,IAA1BqE,EAAmC,GAAMA,EAC5DC,EAAwBlxH,EAAK6sH,kBAC7BA,OAA8C,IAA1BqE,EAAmC,GAAMA,EAC7DnE,EAAqB/sH,EAAK+sH,mBAC1BoE,EAAkBnxH,EAAKmxH,gBACvB/C,EAAWpuH,EAAKouH,SAChBlwB,EAAYl+F,EAAKk+F,UACjBkzB,EAAqBpxH,EAAKoxH,mBAC1BC,EAAkBrxH,EAAKsxH,WACvBA,OAAiC,IAApBD,GAAoCA,EACjDE,EAAgBvxH,EAAKh3E,SACrBA,OAA6B,IAAlBuoM,GAAmCA,EAC9CC,EAAsBxxH,EAAKwxH,oBAC3B7tB,EAAe3jG,EAAK2jG,aACpB8tB,EAAWzxH,EAAKyxH,SAChBC,EAAa1xH,EAAK0xH,WAClBC,EAAoB3xH,EAAKwiG,aACzBA,OAAqC,IAAtBmvB,EAA+B,GAAKA,EACnDxe,EAASnzG,EAAKmzG,OACdqZ,EAAiBxsH,EAAKwsH,eACtBoF,EAAwB5xH,EAAK8sH,qBAC7BA,OAAiD,IAA1B8E,EAAmC,QAAUA,EACpEtU,EAAoBt9G,EAAKs9G,kBACzBpa,EAAWljG,EAAKkjG,SAChB8qB,EAAahuH,EAAKguH,WAClB6D,EAAwB7xH,EAAK8xH,oBAC7BA,OAAgD,IAA1BD,EAAmC,MAAQA,EACjEE,EAAoC/xH,EAAK+xH,kCACzC3a,EAAoBp3G,EAAKo3G,kBACzBluL,EAAU82E,EAAK92E,QACfolM,EAAetuH,EAAKsuH,aACpBlrB,EAAYpjG,EAAKojG,UAGjBQ,IAFgB5jG,EAAKgyH,cACAhyH,EAAKiyH,mBACAjyH,EAAK4jG,yBAC/B2qB,GAA6BvuH,EAAKuuH,2BAClC2D,GAAsBlyH,EAAKkyH,oBAC3BrjC,GAAYC,GAAyB9uF,EAAM+iF,IAI3CovC,GAAkBxhC,GAHC/nB,EAAAA,SAAc,WAC/B,MAAO,CAAC0nD,GAAWp3N,EAAUs7L,EAAO2Q,GAAY+sB,GAAqB7jC,GAAYiiC,GAAWp3N,EAAUs7L,EAAO2Q,GAAY,CAAC,EAAG9W,GAC/H,GAAG,CAACn1L,EAAUs7L,EAAO09B,KAC4B,GACjDjqC,GAAYkqC,GAAgB,GAC5BC,GAAmBD,GAAgB,GAEnCzhC,GAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnDypD,GAAU3hC,GAAiB,GAC3B4hC,GAAa5hC,GAAiB,GAC5B0N,GAAex1B,EAAAA,SACfquB,G3D3GS,SAAiBz+N,GAC9B,IAGE+5P,EAAmB5hC,GAHCkF,GAAer9N,EAAI,CACrC7kB,MAAO6kB,IAE0C,GACnDy+N,EAAOs7B,EAAiB,GACxBC,EAAUD,EAAiB,GAM7B,OALA3pD,EAAAA,WAAgB,WACdk5B,IAAc,EACd,IAAI2wB,EAAmD,GAAGl5Q,OAAOsoP,GAAc,KAAKtoP,OAAOuoP,IAC3F0wB,EAAQ,gBAAgBj5Q,OAAOk5Q,GACjC,GAAG,IACIx7B,CACT,C2D8Fay7B,CAAQl6P,GACf2lO,GAAsB,QAAd3rH,EAQZ,IAME+/I,GAAmB5hC,GANCkF,GAAes7B,EAAiB,CAClDx9Q,MAAOy6Q,EACPp4B,UAAW,SAAmBh7O,GAC5B,OAAOA,GAAQmqP,EACjB,IAEiD,GACnDwtB,GAAiBJ,GAAiB,GAClCK,GAAoBL,GAAiB,GAInCM,GAAkB,SAAyB73Q,GAE7C,SAAS83Q,IACPF,GAAkB53Q,GACD,OAAjBszQ,QAA0C,IAAjBA,GAA2BA,EAAatzQ,EACnE,CAJiBwJ,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,IAM9EgvE,EAAAA,GAAAA,WAAUs/L,GAEVA,GAEJ,EAIElyB,GAAmBjQ,GADE/nB,EAAAA,SAAe+pD,IACgB,GACpDI,GAAsBnyB,GAAiB,GACvCoyB,GAAyBpyB,GAAiB,GACxCqyB,GAAWrqD,EAAAA,QAAa,GAS1BsqD,GAAkBviC,GANE/nB,EAAAA,SAAc,WAChC,MAAc,WAAT7vN,GAA8B,aAATA,IAAwBg4Q,EAG3C,CAACh4Q,GAAM,GAFL,CAAC,WAAYg4Q,EAGxB,GAAG,CAACh4Q,EAAMg4Q,IACwC,GAClDoC,GAAaD,GAAgB,GAC7BE,GAAwBF,GAAgB,GACtCG,GAA8B,WAAfF,GAEjBrU,GAAmBnuB,GADE/nB,EAAAA,SAAeuqD,IACgB,GACpDG,GAAexU,GAAiB,GAChCyU,GAAkBzU,GAAiB,GAEnCa,GAAmBhvB,GADE/nB,EAAAA,SAAewqD,IACgB,GACpDI,GAA0B7T,GAAiB,GAC3C8T,GAA6B9T,GAAiB,GAChD/2C,EAAAA,WAAgB,WACd2qD,GAAgBJ,IAChBM,GAA2BL,IACtBH,GAASj4O,UAIVq4O,GACFT,GAAkBG,IAGlBF,GAAgB1tB,IAEpB,GAAG,CAACguB,GAAYC,KAGhB,IACE5S,GAAoB7vB,GADC/nB,EAAAA,SAAe,GACiB,GACrD8qD,GAAmBlT,GAAkB,GACrCmT,GAAsBnT,GAAkB,GACtCoT,GAAaF,IAAoBzrC,GAAU/xO,OAAS,GAAsB,eAAjBo9Q,IAAiCtC,EAG9FpoD,EAAAA,WAAgB,WACVyqD,IACFL,GAAuBL,GAE3B,GAAG,CAACA,KACJ/pD,EAAAA,WAAgB,WAEd,OADAqqD,GAASj4O,SAAU,EACZ,WACLi4O,GAASj4O,SAAU,CACrB,CACF,GAAG,IAGH,IAAI64O,GAAiBrzB,KACnBQ,GAAe6yB,GAAe7yB,aAC9BE,GAAiB2yB,GAAe3yB,eAChCC,GAAsB0yB,GAAe1yB,oBACrCG,GAAeuyB,GAAevyB,aAC9BhD,GAAau1B,GAAev1B,WAC5BD,GAAUw1B,GAAex1B,QACzBoD,GAAiBoyB,GAAepyB,eAC9BqyB,GAAsBlrD,EAAAA,SAAc,WACtC,MAAO,CACLo4B,aAAcA,GACdE,eAAgBA,GAEpB,GAAG,CAACF,GAAcE,KACd6yB,GAAkBnrD,EAAAA,SAAc,WAClC,MAAO,CACL04B,aAAcA,GAElB,GAAG,CAACA,KACJ14B,EAAAA,WAAgB,WACdu4B,GAAoByyB,GAAazuB,GAAald,GAAUluO,MAAM25Q,GAAmB,GAAGtxQ,KAAI,SAAUpF,GAChG,OAAOA,EAAMnD,GACf,IACF,GAAG,CAAC65Q,GAAkBE,KAGtB,IAGEI,GAAmBrjC,GAHEkF,GAAeqI,GAAakzB,IAAwD,QAAhCT,EAAc1oC,GAAU,UAAgC,IAAhB0oC,OAAyB,EAASA,EAAY92Q,KAAM,CACnKlG,MAAOuqP,IAE2C,GACpD+1B,GAAkBD,GAAiB,GACnCE,GAAqBF,GAAiB,GACpC7xB,GAAWT,IAAgB,SAAU7nP,GACvCq6Q,GAAmBr6Q,EACrB,IACIuoP,GAAaV,IAAgB,WAC/BwyB,QAAmBlyQ,EACrB,KACAggE,EAAAA,EAAAA,qBAAoB11B,GAAK,WACvB,MAAO,CACLkpN,KAAMpX,GAAapjN,QACnB1S,MAAO,SAAerwB,GACpB,IAAIk8Q,EAYEC,EAXFp5Q,EAAOqjP,KACPg2B,EAAmBv2B,GAAgB9iP,EAAMi8O,IAC3Cj/G,EAAWq8I,EAAiBr8I,SAC5B+lH,EAAcs2B,EAAiBt2B,YAC/BC,EAAcq2B,EAAiBr2B,YAC7B8B,EAAoBtC,GAAqBY,GAAapjN,QAASg9F,GAC/Ds8I,EAAqC,OAApBL,SAAgD,IAApBA,GAA6BA,GAAkBn0B,EAAkB,GAAK9B,EAAYz7O,IAAIu9O,EAAkB,IAEjJ,QAFwJq0B,EAAkBlsC,GAAU5hO,MAAK,SAAU1J,GACzM,OAAQA,EAAKiwC,MAAMmM,QACrB,WAAoC,IAApBo7N,OAA6B,EAASA,EAAgBt6Q,IAClE06Q,EAAiBx2B,EAAYx7O,IAAI+xQ,GACjCA,GAAkBC,IAED,OAAnBA,QAA8C,IAAnBA,GAAgF,QAAlDH,EAAwBG,EAAejsP,aAA6C,IAA1B8rP,GAAoCA,EAAsBt/Q,KAAKy/Q,EAAgBt8Q,GAEtM,EAEJ,IAIA,IAaEu8Q,GAAmB7jC,GAbEkF,GAAe27B,GAAuB,GAAI,CAC7D79Q,MAAOgwP,EAEP3N,UAAW,SAAmBh7O,GAC5B,OAAIpF,MAAMqR,QAAQjM,GACTA,EAEI,OAATA,QAA0BgH,IAAThH,EACZmqP,GAEF,CAACnqP,EACV,IAEkD,GACpDy5Q,GAAmBD,GAAiB,GACpCE,GAAsBF,GAAiB,GA2CrCG,GAAkBjzB,IAAgB,SAAUn6G,GAClC,OAAZr+D,QAAgC,IAAZA,GAAsBA,EAAQy5K,GAAap7G,IAzC1C,SAA0BA,GAC/C,GAAI+pI,EAAY,CAEd,IAEIsD,EAFAh1B,EAAYr4G,EAAK1tI,IACjBg7Q,EAAQJ,GAAiBvvQ,SAAS06O,GAIlCg1B,EAFA5rM,EACE6rM,EACcJ,GAAiBvuQ,QAAO,SAAUrM,GAChD,OAAOA,IAAQ+lP,CACjB,IAEgB,GAAGrmP,OAAOw+O,GAAmB08B,IAAmB,CAAC70B,IAGnD,CAACA,GAEnB80B,GAAoBE,GAGpB,IAAIE,EAAavnC,GAAcA,GAAc,CAAC,EAAGhmG,GAAO,CAAC,EAAG,CAC1Do8G,aAAcixB,IAEZC,EACa,OAAfnD,QAAsC,IAAfA,GAAyBA,EAAWoD,GAE9C,OAAbrD,QAAkC,IAAbA,GAAuBA,EAASqD,EAEzD,EAGK9rM,GAAY2pM,GAAez8Q,QAA2B,WAAjBo9Q,IACxCT,GAAgB1tB,GAEpB,CAQE4vB,CAAiBxtI,EACnB,IACIytI,GAAuBtzB,IAAgB,SAAU7nP,EAAKya,GACxD,IAAI2gQ,EAActC,GAAezsQ,QAAO,SAAUvQ,GAChD,OAAOA,IAAMkE,CACf,IACA,GAAIya,EACF2gQ,EAAYr+Q,KAAKiD,QACZ,GAAqB,WAAjBy5Q,GAA2B,CAEpC,IAAI4B,EAAczzB,GAAe5nP,GACjCo7Q,EAAcA,EAAY/uQ,QAAO,SAAUvQ,GACzC,OAAQu/Q,EAAYttQ,IAAIjS,EAC1B,GACF,CACKwvG,GAAQwtK,GAAgBsC,GAAa,IACxCpC,GAAgBoC,GAAa,EAEjC,IAOIE,GAAoBl3B,GAAiBq1B,GAAcW,GAAiB91B,GAAOlH,GAAMmH,GAAcC,GAASC,GAAY41B,IAJzF,SAAkCr6Q,EAAKya,GACpE,IAAI0rP,EAAoB,OAAT1rP,QAA0B,IAATA,EAAkBA,GAAQq+P,GAAeztQ,SAASrL,GAClFm7Q,GAAqBn7Q,EAAKmmQ,EAC5B,GACsK5c,GAGtKx6B,EAAAA,WAAgB,WACd0pD,IAAW,EACb,GAAG,IAGH,IAAI8C,GAAiBxsD,EAAAA,SAAc,WACjC,MAAO,CACLg7B,wBAAyBA,GACzB2qB,2BAA4BA,GAEhC,GAAG,CAAC3qB,GAAyB2qB,KAKzB8G,GAAoC,eAAjB/B,IAAiCtC,EAAmB/oC,GAE3EA,GAAU7lO,KAAI,SAAUpF,EAAOiI,GAC7B,OAGE2jN,EAAAA,cAAoBilD,GAAqB,CACvCh0Q,IAAKmD,EAAMnD,IACX4pP,iBAAkBx+O,EAAQyuQ,IACzB12Q,EAEP,IAGI7H,GAAyByzN,EAAAA,cAAoB+oB,GAAU3d,GAAS,CAClEx7M,GAAIA,EACJ8zB,IAAK8xM,GACL/P,UAAW,GAAG90O,OAAO80O,EAAW,aAChC1P,UAAW,KACX0T,cAAeqS,GACfpoP,UAAWisN,KAAW8lB,EAAW,GAAG90O,OAAO80O,EAAW,SAAU,GAAG90O,OAAO80O,EAAW,KAAK90O,OAAO+5Q,IAAeh3Q,GAAWswG,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,qBAAsBmlC,IAA0B,GAAGj6Q,OAAO80O,EAAW,QAAS8P,IAAQ6uB,GAC1QhjK,IAAKwoB,EACLn4H,MAAOA,EACP8oP,KAAM,OACNvK,SAAUA,EACVtnO,KAAM+jQ,GACNvjC,cAAe,SAAuBn1O,GACpC,OAAOA,CACT,EACAy1O,cAAe,SAAuBkjC,GAEpC,IAAI97P,EAAM87P,EAAUp/Q,OAChBq/Q,EAAkB/7P,EAAMyuN,GAAUluO,OAAOyf,GAAO,KACpD,OAAoBovM,EAAAA,cAAoB6nD,GAAS,CAC/Cv5B,SAAUqJ,GACVz/M,MAAOgxO,EACP/4N,SAAU66N,GACV7F,mBAA4B,IAARv0P,EACpB0jP,eAAgB6U,GACfwD,EACL,EACArjC,SAA2B,eAAjBohC,IAAiCtC,EAAmBr/B,GAASH,WAAaG,GAASJ,WAC7FU,IAAK,OACL,kBAAkB,EAClBK,gBAAiB,SAAyBkjC,GACxC7B,GAAoB6B,EACtB,EACApyB,UAAW+xB,IACVtmC,KAGH,OAAoBjmB,EAAAA,cAAoBi7B,GAAe73I,SAAU,CAC/Dr4G,MAAOyhR,IACOxsD,EAAAA,cAAoBmuB,GAAU/qI,SAAU,CACtDr4G,MAAOsjP,IACOruB,EAAAA,cAAoBilD,GAAqB,CACvDx/B,UAAWA,EACX2+B,cAAeA,EACfj0Q,KAAMu6Q,GACNlF,SAAUuE,GACVpwB,IAAKpE,GAGLplM,SAAUA,EAGVo6M,OAAQkf,GAAUlf,EAAS,KAC3BqZ,eAAgB6F,GAAU7F,EAAiB,KAG3CtuB,UAAW+1B,GACX9xB,SAAUA,GACVC,WAAYA,GAGZuB,aAAc8wB,GAGdjyB,aAAcA,EAGdoqB,iBAAkBA,EAClBC,kBAAmBA,EACnBE,mBAAoBA,EACpBzP,kBAAmBA,EACnBwP,qBAAsBA,EACtB1V,kBAAmBA,EAGnBlU,SAAUA,EACV8qB,WAAYA,EAGZzqB,YAAaoxB,GACbrG,aAAc0G,IACApsD,EAAAA,cAAoBovB,GAAgBhsI,SAAU,CAC5Dr4G,MAAOogR,IACN5+Q,IAAyByzN,EAAAA,cAAoB,MAAO,CACrDvuN,MAAO,CACLkB,QAAS,QAEX,eAAe,GACDqtN,EAAAA,cAAoB8uB,GAAoB1rI,SAAU,CAChEr4G,MAAOmgR,IACN1B,OACL,ICtdA1B,GAAWrhC,KAAOqV,GAClBgsB,GAAWD,QAAUA,GACrBC,GAAW+E,UAAYjF,GACvBE,GAAWhB,QAAUA,GACrB,YCXA,SADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,wYAA4Y,KAAQ,OAAQ,MAAS,YCAzjBxiP,GAAQ32B,KAAK22B,MAYnB,SAASwoP,GAAc3tO,EAAK4tO,GAC1B,MAAMhoQ,EAAQo6B,EAEbt/B,QAAQ,eAAgB,MAExBA,QAAQ,OAAQ,IAAIkF,MAAM,iBAAmB,GACxCioQ,EAAUjoQ,EAAMvL,KAAI6kC,GAAQ3P,WAAW2P,KAC7C,IAAK,IAAIhxC,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1B2/Q,EAAQ3/Q,GAAK0/Q,EAASC,EAAQ3/Q,IAAM,EAAG0X,EAAM1X,IAAM,GAAIA,GAUzD,OANI0X,EAAM,GACRioQ,EAAQ,GAAKjoQ,EAAM,GAAGzI,SAAS,KAAO0wQ,EAAQ,GAAK,IAAMA,EAAQ,GAGjEA,EAAQ,GAAK,EAERA,CACT,CACA,MAAMC,GAAgBA,CAACjmC,EAAK1pN,EAAGjhB,IAAoB,IAAVA,EAAc2qO,EAAMA,EAAM,IAGnE,SAASkmC,GAAWniR,EAAOokB,GACzB,MAAMg+P,EAAYh+P,GAAO,IACzB,OAAIpkB,EAAQoiR,EACHA,EAELpiR,EAAQ,EACH,EAEFA,CACT,CACO,MAAMqiR,GACXr+Q,WAAAA,CAAYie,GAmCV,SAASqgQ,EAAYluO,GACnB,OAAOA,EAAI,KAAMnyB,GAASmyB,EAAI,KAAMnyB,GAASmyB,EAAI,KAAMnyB,CACzD,CACA,IAlCAg3F,EAAAA,GAAAA,GAAgB73G,KAAM,WAAW,IAIjC63G,EAAAA,GAAAA,GAAgB73G,KAAM,IAAK,IAI3B63G,EAAAA,GAAAA,GAAgB73G,KAAM,IAAK,IAI3B63G,EAAAA,GAAAA,GAAgB73G,KAAM,IAAK,IAI3B63G,EAAAA,GAAAA,GAAgB73G,KAAM,IAAK,IAE3B63G,EAAAA,GAAAA,GAAgB73G,KAAM,UAAM,IAC5B63G,EAAAA,GAAAA,GAAgB73G,KAAM,UAAM,IAC5B63G,EAAAA,GAAAA,GAAgB73G,KAAM,UAAM,IAC5B63G,EAAAA,GAAAA,GAAgB73G,KAAM,UAAM,IAE5B63G,EAAAA,GAAAA,GAAgB73G,KAAM,YAAQ,IAC9B63G,EAAAA,GAAAA,GAAgB73G,KAAM,YAAQ,IAC9B63G,EAAAA,GAAAA,GAAgB73G,KAAM,mBAAe,GAShC6gB,EAEE,GAAqB,kBAAVA,EAAoB,CACpC,MAAMsgQ,EAAUtgQ,EAAMkC,OACtB,SAASq+P,EAAYptK,GACnB,OAAOmtK,EAAQ7uK,WAAW0B,EAC5B,CACI,oBAAoBh3F,KAAKmkQ,GAC3BnhR,KAAKqhR,cAAcF,GACVC,EAAY,OACrBphR,KAAKshR,cAAcH,GACVC,EAAY,OACrBphR,KAAKuhR,cAAcJ,IACVC,EAAY,QAAUA,EAAY,SAC3CphR,KAAKwhR,cAAcL,EAEvB,MAAO,GAAItgQ,aAAiBogQ,GAC1BjhR,KAAKV,EAAIuhB,EAAMvhB,EACfU,KAAK41B,EAAI/U,EAAM+U,EACf51B,KAAKma,EAAI0G,EAAM1G,EACfna,KAAKka,EAAI2G,EAAM3G,EACfla,KAAK2nC,GAAK9mB,EAAM8mB,GAChB3nC,KAAKupJ,GAAK1oI,EAAM0oI,GAChBvpJ,KAAK8nC,GAAKjnB,EAAMinB,GAChB9nC,KAAKyhR,GAAK5gQ,EAAM4gQ,QACX,GAAIP,EAAY,OACrBlhR,KAAKV,EAAIyhR,GAAWlgQ,EAAMvhB,GAC1BU,KAAK41B,EAAImrP,GAAWlgQ,EAAM+U,GAC1B51B,KAAKma,EAAI4mQ,GAAWlgQ,EAAM1G,GAC1Bna,KAAKka,EAAuB,kBAAZ2G,EAAM3G,EAAiB6mQ,GAAWlgQ,EAAM3G,EAAG,GAAK,OAC3D,GAAIgnQ,EAAY,OACrBlhR,KAAK0hR,QAAQ7gQ,OACR,KAAIqgQ,EAAY,OAGrB,MAAM,IAAIx9Q,MAAM,6CAA+C6F,KAAKE,UAAUoX,IAF9E7gB,KAAK2hR,QAAQ9gQ,EAGf,MACF,CAIA+gQ,IAAAA,CAAKhjR,GACH,OAAOoB,KAAK6hR,IAAI,IAAKjjR,EACvB,CACAkjR,IAAAA,CAAKljR,GACH,OAAOoB,KAAK6hR,IAAI,IAAKjjR,EACvB,CACAmjR,IAAAA,CAAKnjR,GACH,OAAOoB,KAAK6hR,IAAI,IAAKjjR,EACvB,CACAojR,IAAAA,CAAKpjR,GACH,OAAOoB,KAAK6hR,IAAI,IAAKjjR,EAAO,EAC9B,CACAqjR,MAAAA,CAAOrjR,GACL,MAAMsjR,EAAMliR,KAAKmiR,QAEjB,OADAD,EAAIz1Q,EAAI7N,EACDoB,KAAKw+B,GAAG0jP,EACjB,CAOAE,YAAAA,GACE,SAASC,EAAYh3O,GACnB,MAAM1iC,EAAM0iC,EAAM,IAClB,OAAO1iC,GAAO,OAAUA,EAAM,MAAQnH,KAAKylH,KAAKt+G,EAAM,MAAS,MAAO,IACxE,CAIA,MAAO,MAHG05Q,EAAYriR,KAAKV,GAGP,MAFV+iR,EAAYriR,KAAK41B,GAEM,MADvBysP,EAAYriR,KAAKma,EAE7B,CACAmoQ,MAAAA,GACE,GAAuB,qBAAZtiR,KAAK2nC,GAAoB,CAClC,MAAMmiF,EAAQ9pH,KAAKuiR,SAAWviR,KAAKwiR,SAEjCxiR,KAAK2nC,GADO,IAAVmiF,EACQ,EAEA3xF,GAAM,IAAMn4B,KAAKV,IAAMU,KAAKuiR,UAAYviR,KAAK41B,EAAI51B,KAAKma,GAAK2vG,GAAS9pH,KAAK41B,EAAI51B,KAAKma,EAAI,EAAI,GAAKna,KAAK41B,IAAM51B,KAAKuiR,UAAYviR,KAAKma,EAAIna,KAAKV,GAAKwqH,EAAQ,GAAK9pH,KAAKV,EAAIU,KAAK41B,GAAKk0F,EAAQ,GAEpM,CACA,OAAO9pH,KAAK2nC,EACd,CACA86O,aAAAA,GACE,GAAuB,qBAAZziR,KAAKupJ,GAAoB,CAClC,MAAMz/B,EAAQ9pH,KAAKuiR,SAAWviR,KAAKwiR,SAEjCxiR,KAAKupJ,GADO,IAAVz/B,EACQ,EAEAA,EAAQ9pH,KAAKuiR,QAE3B,CACA,OAAOviR,KAAKupJ,EACd,CACAm5H,YAAAA,GAIE,MAHuB,qBAAZ1iR,KAAK8nC,KACd9nC,KAAK8nC,IAAM9nC,KAAKuiR,SAAWviR,KAAKwiR,UAAY,KAEvCxiR,KAAK8nC,EACd,CACA2a,QAAAA,GAIE,MAHuB,qBAAZziD,KAAKyhR,KACdzhR,KAAKyhR,GAAKzhR,KAAKuiR,SAAW,KAErBviR,KAAKyhR,EACd,CAOAkB,aAAAA,GAIE,MAHgC,qBAArB3iR,KAAK4iR,cACd5iR,KAAK4iR,aAAwB,IAAT5iR,KAAKV,EAAmB,IAATU,KAAK41B,EAAmB,IAAT51B,KAAKma,GAAW,KAE7Dna,KAAK4iR,WACd,CAIAC,MAAAA,GAAoB,IAAbr4J,EAAM/6G,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,GACd,MAAMhD,EAAIzM,KAAKsiR,SACT3uP,EAAI3zB,KAAKyiR,gBACf,IAAI3gR,EAAI9B,KAAK0iR,eAAiBl4J,EAAS,IAIvC,OAHI1oH,EAAI,IACNA,EAAI,GAEC9B,KAAKw+B,GAAG,CACb/xB,IACAknB,IACA7xB,IACAoY,EAAGla,KAAKka,GAEZ,CACA4oQ,OAAAA,GAAqB,IAAbt4J,EAAM/6G,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,GACf,MAAMhD,EAAIzM,KAAKsiR,SACT3uP,EAAI3zB,KAAKyiR,gBACf,IAAI3gR,EAAI9B,KAAK0iR,eAAiBl4J,EAAS,IAIvC,OAHI1oH,EAAI,IACNA,EAAI,GAEC9B,KAAKw+B,GAAG,CACb/xB,IACAknB,IACA7xB,IACAoY,EAAGla,KAAKka,GAEZ,CAMA6oQ,GAAAA,CAAIliQ,GAAoB,IAAb2pG,EAAM/6G,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,GAClB,MAAMwxB,EAAQjhC,KAAKw+B,GAAG3d,GAChBwG,EAAImjG,EAAS,IACbw4J,EAAOl+Q,IAAQm8B,EAAMn8B,GAAO9E,KAAK8E,IAAQuiB,EAAIrnB,KAAK8E,GAClDk8B,EAAO,CACX1hC,EAAG64B,GAAM6qP,EAAK,MACdptP,EAAGuC,GAAM6qP,EAAK,MACd7oQ,EAAGge,GAAM6qP,EAAK,MACd9oQ,EAAGie,GAAkB,IAAZ6qP,EAAK,MAAc,KAE9B,OAAOhjR,KAAKw+B,GAAGwC,EACjB,CAMAiiP,IAAAA,GAAkB,IAAbz4J,EAAM/6G,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,GACZ,OAAOzP,KAAK+iR,IAAI,CACdzjR,EAAG,IACHs2B,EAAG,IACHzb,EAAG,IACHD,EAAG,GACFswG,EACL,CAMA04J,KAAAA,GAAmB,IAAb14J,EAAM/6G,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,GACb,OAAOzP,KAAK+iR,IAAI,CACdzjR,EAAG,EACHs2B,EAAG,EACHzb,EAAG,EACHD,EAAG,GACFswG,EACL,CACA24J,YAAAA,CAAa3nJ,GACX,MAAMr6F,EAAKnhC,KAAKw+B,GAAGg9F,GACbxN,EAAQhuH,KAAKka,EAAIinB,EAAGjnB,GAAK,EAAIla,KAAKka,GAClC8oQ,EAAOl+Q,GACJqzB,IAAOn4B,KAAK8E,GAAO9E,KAAKka,EAAIinB,EAAGr8B,GAAOq8B,EAAGjnB,GAAK,EAAIla,KAAKka,IAAM8zG,GAEtE,OAAOhuH,KAAKw+B,GAAG,CACbl/B,EAAG0jR,EAAK,KACRptP,EAAGotP,EAAK,KACR7oQ,EAAG6oQ,EAAK,KACR9oQ,EAAG8zG,GAEP,CAGAo1J,MAAAA,GACE,OAAOpjR,KAAK2iR,gBAAkB,GAChC,CACAU,OAAAA,GACE,OAAOrjR,KAAK2iR,iBAAmB,GACjC,CAGA//E,MAAAA,CAAO/jM,GACL,OAAOmB,KAAKV,IAAMT,EAAMS,GAAKU,KAAK41B,IAAM/2B,EAAM+2B,GAAK51B,KAAKma,IAAMtb,EAAMsb,GAAKna,KAAKka,IAAMrb,EAAMqb,CAC5F,CACApS,KAAAA,GACE,OAAO9H,KAAKw+B,GAAGx+B,KACjB,CAGAo9L,WAAAA,GACE,IAAIxyE,EAAM,IACV,MAAM04J,GAAQtjR,KAAKV,GAAK,GAAG0O,SAAS,IACpC48G,GAAuB,IAAhB04J,EAAKniR,OAAemiR,EAAO,IAAMA,EACxC,MAAMC,GAAQvjR,KAAK41B,GAAK,GAAG5nB,SAAS,IACpC48G,GAAuB,IAAhB24J,EAAKpiR,OAAeoiR,EAAO,IAAMA,EACxC,MAAMC,GAAQxjR,KAAKma,GAAK,GAAGnM,SAAS,IAEpC,GADA48G,GAAuB,IAAhB44J,EAAKriR,OAAeqiR,EAAO,IAAMA,EAClB,kBAAXxjR,KAAKka,GAAkBla,KAAKka,GAAK,GAAKla,KAAKka,EAAI,EAAG,CAC3D,MAAMupQ,EAAOtrP,GAAe,IAATn4B,KAAKka,GAASlM,SAAS,IAC1C48G,GAAuB,IAAhB64J,EAAKtiR,OAAesiR,EAAO,IAAMA,CAC1C,CACA,OAAO74J,CACT,CAGA84J,KAAAA,GACE,MAAO,CACLj3Q,EAAGzM,KAAKsiR,SACR3uP,EAAG3zB,KAAKyiR,gBACR3gR,EAAG9B,KAAK0iR,eACRxoQ,EAAGla,KAAKka,EAEZ,CAGAypQ,WAAAA,GACE,MAAMl3Q,EAAIzM,KAAKsiR,SACT3uP,EAAIwE,GAA6B,IAAvBn4B,KAAKyiR,iBACf3gR,EAAIq2B,GAA4B,IAAtBn4B,KAAK0iR,gBACrB,OAAkB,IAAX1iR,KAAKka,EAAU,QAAQzN,KAAKknB,MAAM7xB,MAAM9B,KAAKka,KAAO,OAAOzN,KAAKknB,MAAM7xB,KAC/E,CAGAqgR,KAAAA,GACE,MAAO,CACL11Q,EAAGzM,KAAKsiR,SACR3uP,EAAG3zB,KAAKyiR,gBACRvtP,EAAGl1B,KAAKyiD,WACRvoC,EAAGla,KAAKka,EAEZ,CACA0pQ,KAAAA,GACE,MAAO,CACLtkR,EAAGU,KAAKV,EACRs2B,EAAG51B,KAAK41B,EACRzb,EAAGna,KAAKma,EACRD,EAAGla,KAAKka,EAEZ,CACA2pQ,WAAAA,GACE,OAAkB,IAAX7jR,KAAKka,EAAU,QAAQla,KAAKV,KAAKU,KAAK41B,KAAK51B,KAAKma,KAAKna,KAAKka,KAAO,OAAOla,KAAKV,KAAKU,KAAK41B,KAAK51B,KAAKma,IAC1G,CACAnM,QAAAA,GACE,OAAOhO,KAAK6jR,aACd,CAIAhC,GAAAA,CAAIxzJ,EAAKzvH,EAAOokB,GACd,MAAMlb,EAAQ9H,KAAK8H,QAEnB,OADAA,EAAMumH,GAAO0yJ,GAAWniR,EAAOokB,GACxBlb,CACT,CACA02B,EAAAA,CAAG3d,GACD,OAAO,IAAI7gB,KAAK4C,YAAYie,EAC9B,CACA0hQ,MAAAA,GAIE,MAHyB,qBAAdviR,KAAK8jR,OACd9jR,KAAK8jR,KAAOtiR,KAAKwhB,IAAIhjB,KAAKV,EAAGU,KAAK41B,EAAG51B,KAAKma,IAErCna,KAAK8jR,IACd,CACAtB,MAAAA,GAIE,MAHyB,qBAAdxiR,KAAK+jR,OACd/jR,KAAK+jR,KAAOviR,KAAKyhB,IAAIjjB,KAAKV,EAAGU,KAAK41B,EAAG51B,KAAKma,IAErCna,KAAK+jR,IACd,CACA1C,aAAAA,CAAcF,GACZ,MAAM6C,EAAgB7C,EAAQztQ,QAAQ,IAAK,IAC3C,SAASuwQ,EAAWC,EAAQC,GAC1B,OAAOz9P,SAASs9P,EAAcE,GAAUF,EAAcG,GAAUD,GAAS,GAC3E,CACIF,EAAc7iR,OAAS,GAEzBnB,KAAKV,EAAI2kR,EAAW,GACpBjkR,KAAK41B,EAAIquP,EAAW,GACpBjkR,KAAKma,EAAI8pQ,EAAW,GACpBjkR,KAAKka,EAAI8pQ,EAAc,GAAKC,EAAW,GAAK,IAAM,IAGlDjkR,KAAKV,EAAI2kR,EAAW,EAAG,GACvBjkR,KAAK41B,EAAIquP,EAAW,EAAG,GACvBjkR,KAAKma,EAAI8pQ,EAAW,EAAG,GACvBjkR,KAAKka,EAAI8pQ,EAAc,GAAKC,EAAW,EAAG,GAAK,IAAM,EAEzD,CACAvC,OAAAA,CAAOz2H,GAKJ,IALK,EACNx+I,EAAC,EACDknB,EAAC,EACD7xB,EAAC,EACDoY,GACD+wI,EAKC,GAJAjrJ,KAAK2nC,GAAKl7B,EAAI,IACdzM,KAAKupJ,GAAK51H,EACV3zB,KAAK8nC,GAAKhmC,EACV9B,KAAKka,EAAiB,kBAANA,EAAiBA,EAAI,EACjCyZ,GAAK,EAAG,CACV,MAAM06F,EAAMl2F,GAAU,IAAJr2B,GAClB9B,KAAKV,EAAI+uH,EACTruH,KAAK41B,EAAIy4F,EACTruH,KAAKma,EAAIk0G,CACX,CACA,IAAI/uH,EAAI,EACNs2B,EAAI,EACJzb,EAAI,EACN,MAAMiqQ,EAAW33Q,EAAI,GACf43Q,GAAU,EAAI7iR,KAAK6E,IAAI,EAAIvE,EAAI,IAAM6xB,EACrC2wP,EAAkBD,GAAU,EAAI7iR,KAAK6E,IAAI+9Q,EAAW,EAAI,IAC1DA,GAAY,GAAKA,EAAW,GAC9B9kR,EAAI+kR,EACJzuP,EAAI0uP,GACKF,GAAY,GAAKA,EAAW,GACrC9kR,EAAIglR,EACJ1uP,EAAIyuP,GACKD,GAAY,GAAKA,EAAW,GACrCxuP,EAAIyuP,EACJlqQ,EAAImqQ,GACKF,GAAY,GAAKA,EAAW,GACrCxuP,EAAI0uP,EACJnqQ,EAAIkqQ,GACKD,GAAY,GAAKA,EAAW,GACrC9kR,EAAIglR,EACJnqQ,EAAIkqQ,GACKD,GAAY,GAAKA,EAAW,IACrC9kR,EAAI+kR,EACJlqQ,EAAImqQ,GAEN,MAAMC,EAAwBziR,EAAIuiR,EAAS,EAC3CrkR,KAAKV,EAAI64B,GAAoC,KAA7B74B,EAAIilR,IACpBvkR,KAAK41B,EAAIuC,GAAoC,KAA7BvC,EAAI2uP,IACpBvkR,KAAKma,EAAIge,GAAoC,KAA7Bhe,EAAIoqQ,GACtB,CACA5C,OAAAA,CAAOjlG,GAKJ,IALK,EACNjwK,EAAC,EACDknB,EAAC,EACDuB,EAAC,EACDhb,GACDwiK,EACC18K,KAAK2nC,GAAKl7B,EAAI,IACdzM,KAAKupJ,GAAK51H,EACV3zB,KAAKyhR,GAAKvsP,EACVl1B,KAAKka,EAAiB,kBAANA,EAAiBA,EAAI,EACrC,MAAMsqQ,EAAKrsP,GAAU,IAAJjD,GAIjB,GAHAl1B,KAAKV,EAAIklR,EACTxkR,KAAK41B,EAAI4uP,EACTxkR,KAAKma,EAAIqqQ,EACL7wP,GAAK,EACP,OAEF,MAAM4yC,EAAK95D,EAAI,GACTvL,EAAIM,KAAKC,MAAM8kE,GACf9I,EAAK8I,EAAKrlE,EACVmmB,EAAI8Q,GAAMjD,GAAK,EAAMvB,GAAK,KAC1B+jB,EAAIvf,GAAMjD,GAAK,EAAMvB,EAAI8pC,GAAM,KAC/B/pC,EAAIyE,GAAMjD,GAAK,EAAMvB,GAAK,EAAM8pC,IAAO,KAC7C,OAAQv8D,GACN,KAAK,EACHlB,KAAK41B,EAAIlC,EACT1zB,KAAKma,EAAIkN,EACT,MACF,KAAK,EACHrnB,KAAKV,EAAIo4C,EACT13C,KAAKma,EAAIkN,EACT,MACF,KAAK,EACHrnB,KAAKV,EAAI+nB,EACTrnB,KAAKma,EAAIuZ,EACT,MACF,KAAK,EACH1zB,KAAKV,EAAI+nB,EACTrnB,KAAK41B,EAAI8hB,EACT,MACF,KAAK,EACH13C,KAAKV,EAAIo0B,EACT1zB,KAAK41B,EAAIvO,EACT,MAEF,QACErnB,KAAK41B,EAAIvO,EACTrnB,KAAKma,EAAIu9B,EAGf,CACA8pO,aAAAA,CAAcL,GACZ,MAAMj8O,EAAQy7O,GAAcQ,EAASL,IACrC9gR,KAAK2hR,QAAQ,CACXl1Q,EAAGy4B,EAAM,GACTvR,EAAGuR,EAAM,GACThQ,EAAGgQ,EAAM,GACThrB,EAAGgrB,EAAM,IAEb,CACAq8O,aAAAA,CAAcJ,GACZ,MAAMj8O,EAAQy7O,GAAcQ,EAASL,IACrC9gR,KAAK0hR,QAAQ,CACXj1Q,EAAGy4B,EAAM,GACTvR,EAAGuR,EAAM,GACTpjC,EAAGojC,EAAM,GACThrB,EAAGgrB,EAAM,IAEb,CACAo8O,aAAAA,CAAcH,GACZ,MAAMj8O,EAAQy7O,GAAcQ,GAAS,CAACtmC,EAAK4pC,IAE3CA,EAAIt0Q,SAAS,KAAOgoB,GAAM0iN,EAAM,IAAM,KAAOA,IAC7C76O,KAAKV,EAAI4lC,EAAM,GACfllC,KAAK41B,EAAIsP,EAAM,GACfllC,KAAKma,EAAI+qB,EAAM,GACfllC,KAAKka,EAAIgrB,EAAM,EACjB,EClhBF,IASIw/O,GAAe,CAAC,CAClBx0Q,MAAO,EACPs6G,OAAQ,IACP,CACDt6G,MAAO,EACPs6G,OAAQ,IACP,CACDt6G,MAAO,EACPs6G,OAAQ,IACP,CACDt6G,MAAO,EACPs6G,OAAQ,IACP,CACDt6G,MAAO,EACPs6G,OAAQ,IACP,CACDt6G,MAAO,EACPs6G,OAAQ,IACP,CACDt6G,MAAO,EACPs6G,OAAQ,IACP,CACDt6G,MAAO,EACPs6G,OAAQ,IACP,CACDt6G,MAAO,EACPs6G,OAAQ,IACP,CACDt6G,MAAO,EACPs6G,OAAQ,KAEV,SAAS83J,GAAOJ,EAAKhhR,EAAGyjR,GACtB,IAAIl2J,EAYJ,OATEA,EADEjtH,KAAK22B,MAAM+pP,EAAIz1Q,IAAM,IAAMjL,KAAK22B,MAAM+pP,EAAIz1Q,IAAM,IAC5Ck4Q,EAAQnjR,KAAK22B,MAAM+pP,EAAIz1Q,GA5CnB,EA4CkCvL,EAAIM,KAAK22B,MAAM+pP,EAAIz1Q,GA5CrD,EA4CoEvL,EAExEyjR,EAAQnjR,KAAK22B,MAAM+pP,EAAIz1Q,GA9CnB,EA8CkCvL,EAAIM,KAAK22B,MAAM+pP,EAAIz1Q,GA9CrD,EA8CoEvL,GAEtE,EACRutH,GAAO,IACEA,GAAO,MAChBA,GAAO,KAEFA,CACT,CACA,SAASg0J,GAAcP,EAAKhhR,EAAGyjR,GAE7B,OAAc,IAAVzC,EAAIz1Q,GAAqB,IAAVy1Q,EAAIvuP,EACduuP,EAAIvuP,IAIXg7F,EADEg2J,EACWzC,EAAIvuP,EA7DA,IA6DqBzyB,EAxDrB,IAyDRA,EACIghR,EAAIvuP,EA/DA,IAiEJuuP,EAAIvuP,EAhEC,IAgEqBzyB,GAGxB,IACfytH,EAAa,GAGXg2J,GApEgB,IAoEPzjR,GAAyBytH,EAAa,KACjDA,EAAa,IAEXA,EAAa,MACfA,EAAa,KAERntH,KAAK22B,MAAmB,IAAbw2F,GAAoB,KAnBtC,IAAIA,CAoBN,CACA,SAASlsE,GAASy/N,EAAKhhR,EAAGyjR,GACxB,IAAI/lR,EAQJ,OANEA,EADE+lR,EACMzC,EAAIhtP,EAjFM,IAiFgBh0B,EAE1BghR,EAAIhtP,EAlFM,IAkFgBh0B,EAGpCtC,EAAQ4C,KAAKwhB,IAAI,EAAGxhB,KAAKyhB,IAAI,EAAGrkB,IACzB4C,KAAK22B,MAAc,IAARv5B,GAAe,GACnC,CACe,SAASgmR,GAAS3jP,GAK/B,IAJA,IAAImD,EAAO30B,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC5Eo1Q,EAAW,GACXC,EAAS,IAAI7D,GAAUhgP,GACvBihP,EAAM4C,EAAO3C,QACRjhR,EA5FW,EA4FUA,EAAI,EAAGA,GAAK,EAAG,CAC3C,IAAIkZ,EAAI,IAAI6mQ,GAAU,CACpBx0Q,EAAG61Q,GAAOJ,EAAKhhR,GAAG,GAClByyB,EAAG8uP,GAAcP,EAAKhhR,GAAG,GACzBg0B,EAAGutB,GAASy/N,EAAKhhR,GAAG,KAEtB2jR,EAAShjR,KAAKuY,EAChB,CACAyqQ,EAAShjR,KAAKijR,GACd,IAAK,IAAI3pP,EAAK,EAAGA,GApGE,EAoGoBA,GAAM,EAAG,CAC9C,IAAIqD,EAAK,IAAIyiP,GAAU,CACrBx0Q,EAAG61Q,GAAOJ,EAAK/mP,GACfxH,EAAG8uP,GAAcP,EAAK/mP,GACtBjG,EAAGutB,GAASy/N,EAAK/mP,KAEnB0pP,EAAShjR,KAAK28B,EAChB,CAGA,MAAmB,SAAf4F,EAAKqE,MACAi8O,GAAar3Q,KAAI,SAAU49I,GAChC,IAAI/6I,EAAQ+6I,EAAK/6I,MACfs6G,EAASygC,EAAKzgC,OAChB,OAAO,IAAIy2J,GAAU78O,EAAK34B,iBAAmB,WAAWs3Q,IAAI8B,EAAS30Q,GAAQs6G,GAAQ4yE,aACvF,IAEKynF,EAASx3Q,KAAI,SAAU+M,GAC5B,OAAOA,EAAEgjL,aACX,GACF,CC7HO,IAAI2nF,GAAsB,CAC/B,IAAO,UACP,QAAW,UACX,OAAU,UACV,KAAQ,UACR,OAAU,UACV,KAAQ,UACR,MAAS,UACT,KAAQ,UACR,KAAQ,UACR,SAAY,UACZ,OAAU,UACV,QAAW,UACX,KAAQ,WAEC52J,GAAM,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACrHA,GAAI62J,QAAU72J,GAAI,GACX,IAAI82J,GAAU,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACzHA,GAAQD,QAAUC,GAAQ,GACnB,IAAIt5F,GAAS,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACxHA,GAAOq5F,QAAUr5F,GAAO,GACjB,IAAInD,GAAO,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACtHA,GAAKw8F,QAAUx8F,GAAK,GACb,IAAI0F,GAAS,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACxHA,GAAO82F,QAAU92F,GAAO,GACjB,IAAI9D,GAAO,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACtHA,GAAK46F,QAAU56F,GAAK,GACb,IAAIl8D,GAAQ,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACvHA,GAAM82J,QAAU92J,GAAM,GACf,IAAIy4D,GAAO,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACtHA,GAAKq+F,QAAUr+F,GAAK,GACb,IAAI14D,GAAO,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACtHA,GAAK+2J,QAAU/2J,GAAK,GACb,IAAIi3J,GAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC1HA,GAASF,QAAUE,GAAS,GACrB,IAAI14F,GAAS,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACxHA,GAAOw4F,QAAUx4F,GAAO,GACjB,IAAIjC,GAAU,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACzHA,GAAQy6F,QAAUz6F,GAAQ,GACnB,IAAI46F,GAAO,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACtHA,GAAKH,QAAUG,GAAK,GACb,IACIC,GAAiB,CAC1Bj3J,IAAKA,GACL82J,QAASA,GACTt5F,OAAQA,GACRnD,KAAMA,GACN0F,OAAQA,GACR9D,KAAMA,GACNl8D,MAAOA,GACPy4D,KAAMA,GACN14D,KAAMA,GACNi3J,SAAUA,GACV14F,OAAQA,GACRjC,QAASA,GACT46F,KAAMA,IAEGE,GAAU,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACzHA,GAAQL,QAAUK,GAAQ,GACnB,IAAIC,GAAc,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC7HA,GAAYN,QAAUM,GAAY,GAC3B,IAAIC,GAAa,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC5HA,GAAWP,QAAUO,GAAW,GACzB,IAAIC,GAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC1HA,GAASR,QAAUQ,GAAS,GACrB,IAAIC,GAAa,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC5HA,GAAWT,QAAUS,GAAW,GACzB,IAAIC,GAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC1HA,GAASV,QAAUU,GAAS,GACrB,IAAIC,GAAY,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC3HA,GAAUX,QAAUW,GAAU,GACvB,IAAIC,GAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC1HA,GAASZ,QAAUY,GAAS,GACrB,IAAIC,GAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC1HA,GAASb,QAAUa,GAAS,GACrB,IAAIC,GAAe,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC9HA,GAAad,QAAUc,GAAa,GAC7B,IAAIC,GAAa,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC5HA,GAAWf,QAAUe,GAAW,GACzB,IAAIC,GAAc,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC7HA,GAAYhB,QAAUgB,GAAY,GAC3B,IAAIC,GAAW,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAC1HA,GAASjB,QAAUiB,GAAS,GClF5B,UAD+BnvK,EAAAA,EAAAA,eAAc,CAAC,GCevC,SAASovK,GAAiBn7Q,GAC/B,MAA2B,YAApBvI,EAAAA,GAAAA,GAAQuI,IAA+C,kBAAhBA,EAAOkD,MAA6C,kBAAjBlD,EAAO09B,QAAgD,YAAzBjmC,EAAAA,GAAAA,GAAQuI,EAAOknM,OAA6C,oBAAhBlnM,EAAOknM,KACpK,CACO,SAASk0E,KACd,IAAIC,EAAQ32Q,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACjF,OAAOzJ,OAAOC,KAAKmgR,GAAOnnP,QAAO,SAAUuL,EAAK1lC,GAC9C,IAde+b,EAcXlY,EAAMy9Q,EAAMthR,GAChB,GACO,UADCA,EAEJ0lC,EAAIjjC,UAAYoB,SACT6hC,EAAI67O,kBAGJ77O,EAAI1lC,GACX0lC,GAtBW3pB,EAsBG/b,EArBb+b,EAAMnN,QAAQ,SAAS,SAAUkF,EAAOgd,GAC7C,OAAOA,EAAE1C,aACX,MAmB4BvqB,EAE1B,OAAO6hC,CACT,GAAG,CAAC,EACN,CACO,SAASo6O,GAASh9Q,EAAM9C,EAAKwhR,GAClC,OAAKA,EAOezyD,EAAAA,cAAoBjsN,EAAK8K,IAAK8lO,GAAcA,GAAc,CAC5E1zO,IAAKA,GACJqhR,GAAev+Q,EAAKw+Q,QAASE,IAAa1+Q,EAAKu8C,UAAY,IAAI92C,KAAI,SAAUpF,EAAOiI,GACrF,OAAO00Q,GAAS38Q,EAAO,GAAGzD,OAAOM,EAAK,KAAKN,OAAOoD,EAAK8K,IAAK,KAAKlO,OAAO0L,GAC1E,KAVsB2jN,EAAAA,cAAoBjsN,EAAK8K,IAAK8lO,GAAc,CAC9D1zO,IAAKA,GACJqhR,GAAev+Q,EAAKw+Q,SAAUx+Q,EAAKu8C,UAAY,IAAI92C,KAAI,SAAUpF,EAAOiI,GACzE,OAAO00Q,GAAS38Q,EAAO,GAAGzD,OAAOM,EAAK,KAAKN,OAAOoD,EAAK8K,IAAK,KAAKlO,OAAO0L,GAC1E,IAOJ,CACO,SAASq2Q,GAAkBC,GAEhC,OAAOC,GAAcD,GAAc,EACrC,CACO,SAASE,GAAuBC,GACrC,OAAKA,EAGE9lR,MAAMqR,QAAQy0Q,GAAgBA,EAAe,CAACA,GAF5C,EAGX,CAIO,IC5DH34C,GAAY,CAAC,OAAQ,YAAa,UAAW,QAAS,eAAgB,kBAGtE44C,GAAsB,CACxBJ,aAAc,OACdK,eAAgB,UAChBC,YAAY,GAYd,IAAIC,GAAW,SAAkBlvO,GAC/B,IDRsBu3L,EAAO5/J,ECQzByiI,EAAOp6J,EAAMo6J,KACf1qM,EAAYswC,EAAMtwC,UAClB4sE,EAAUt8B,EAAMs8B,QAChB7uE,EAAQuyC,EAAMvyC,MACdkhR,EAAe3uO,EAAM2uO,aACrBK,EAAiBhvO,EAAMgvO,eACvB/sC,EAAYC,GAAyBliM,EAAOm2L,IAC1Cg5C,EAASnzD,EAAAA,SACTxkC,EAASu3F,GASb,GARIJ,IACFn3F,EAAS,CACPm3F,aAAcA,EACdK,eAAgBA,GAAkBN,GAAkBC,KDqC7B,SAAyBS,GACpD,IAAIC,GAAcn6M,EAAAA,EAAAA,YAAWo6M,IAC3Br2B,EAAMo2B,EAAYp2B,IAClBxX,EAAY4tC,EAAY5tC,UACxB8tC,EAAQF,EAAYE,MAClBC,EANkB,g9BAOlB/tC,IACF+tC,EAAiBA,EAAe3zQ,QAAQ,WAAY4lO,IAElD8tC,IACFC,EAAiB,UAAU7iR,OAAO4iR,EAAO,QAAQ5iR,OAAO6iR,EAAgB,SAE1Er6M,EAAAA,EAAAA,YAAU,WACR,IACIq/D,EAAampH,GADPyxB,EAAOhhP,SAEjB0rN,GAAU01B,EAAgB,oBAAqB,CAC7Ct2B,SAAUq2B,EACVt2B,IAAKA,EACLH,SAAUtkH,GAEd,GAAG,GACL,CCvDEi7I,CAAgBN,GDvBM53C,ECwBd82C,GAAiBj0E,GDxBIziI,ECwBG,0CAA0ChrE,OAAOytM,GDvBjFx+J,GAAK27L,EAAO,uBAAuB5qO,OAAOgrE,KCwBrC02M,GAAiBj0E,GACpB,OAAO,KAET,IAAIlnM,EAASknM,EAMb,OALIlnM,GAAiC,oBAAhBA,EAAOknM,OAC1BlnM,EAASytO,GAAcA,GAAc,CAAC,EAAGztO,GAAS,CAAC,EAAG,CACpDknM,KAAMlnM,EAAOknM,KAAK5iB,EAAOm3F,aAAcn3F,EAAOw3F,mBAG3CjC,GAAS75Q,EAAOknM,KAAM,OAAOztM,OAAOuG,EAAOkD,MAAOuqO,GAAcA,GAAc,CACnFjxO,UAAWA,EACX4sE,QAASA,EACT7uE,MAAOA,EACP,YAAayF,EAAOkD,KACpBhM,MAAO,MACPN,OAAQ,MACRiqG,KAAM,eACN,cAAe,QACdkuI,GAAY,CAAC,EAAG,CACjBviM,IAAKyvO,IAET,EACAD,GAASllO,YAAc,YACvBklO,GAASQ,iBA5CT,WACE,OAAO/uC,GAAc,CAAC,EAAGouC,GAC3B,EA2CAG,GAASS,iBApDT,SAA0Bv8H,GACxB,IAAIu7H,EAAev7H,EAAKu7H,aACtBK,EAAiB57H,EAAK47H,eACxBD,GAAoBJ,aAAeA,EACnCI,GAAoBC,eAAiBA,GAAkBN,GAAkBC,GACzEI,GAAoBE,aAAeD,CACrC,EA+CA,YC5DO,SAASY,GAAgBd,GAC9B,IACEe,EAAyB9rC,GADC8qC,GAAuBC,GACc,GAC/DH,EAAekB,EAAuB,GACtCb,EAAiBa,EAAuB,GAC1C,OAAOC,GAAUH,iBAAiB,CAChChB,aAAcA,EACdK,eAAgBA,GAEpB,CCNA,IAAI74C,GAAY,CAAC,YAAa,OAAQ,OAAQ,SAAU,WAAY,UAAW,gBAU/Ey5C,GAAgBx5J,GAAK+2J,SAIrB,IAAIt3B,GAAoB75B,EAAAA,YAAiB,SAAUh8K,EAAON,GACxD,IAAIhwC,EAAYswC,EAAMtwC,UACpB0qM,EAAOp6J,EAAMo6J,KACb21E,EAAO/vO,EAAM+vO,KACbjwF,EAAS9/I,EAAM8/I,OACfksD,EAAWhsM,EAAMgsM,SACjB1vK,EAAUt8B,EAAMs8B,QAChBwyM,EAAe9uO,EAAM8uO,aACrB7sC,EAAYC,GAAyBliM,EAAOm2L,IAC1Cmf,EAAoBt5B,EAAAA,WAAiB5rE,IACvC4/H,EAAwB16B,EAAkB7T,UAC1CA,OAAsC,IAA1BuuC,EAAmC,UAAYA,EAC3D5P,EAAgB9qB,EAAkB8qB,cAChC6P,EAAct0D,KAAWykD,EAAe3+B,GAAWzhI,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,KAAK90O,OAAOytM,EAAKhkM,QAASgkM,EAAKhkM,MAAO,GAAGzJ,OAAO80O,EAAW,WAAYsuC,GAAsB,YAAd31E,EAAKhkM,MAAqB1G,GACrNwgR,EAAelkC,OACE52O,IAAjB86Q,GAA8B5zM,IAChC4zM,GAAgB,GAElB,IAAIC,EAAWrwF,EAAS,CACtBswF,YAAa,UAAUzjR,OAAOmzL,EAAQ,QACtCp4G,UAAW,UAAU/6E,OAAOmzL,EAAQ,cAClC1qL,EAEFy6Q,EAAyB9rC,GADC8qC,GAAuBC,GACc,GAC/DH,EAAekB,EAAuB,GACtCb,EAAiBa,EAAuB,GAC1C,OAAoB7zD,EAAAA,cAAoB,OAAQoL,GAAS,CACvDmvB,KAAM,MACN,aAAcn8C,EAAKhkM,MAClB6rO,EAAW,CACZviM,IAAKA,EACLssM,SAAUkkC,EACV5zM,QAASA,EACT5sE,UAAWugR,IACIj0D,EAAAA,cAAoB8zD,GAAW,CAC9C11E,KAAMA,EACNu0E,aAAcA,EACdK,eAAgBA,EAChBvhR,MAAO0iR,IAEX,IACAt6B,GAAK7rM,YAAc,WACnB6rM,GAAKw6B,gBDjDE,WACL,IAAI74F,EAASs4F,GAAUJ,mBACvB,OAAKl4F,EAAOy3F,WAGL,CAACz3F,EAAOm3F,aAAcn3F,EAAOw3F,gBAF3Bx3F,EAAOm3F,YAGlB,EC4CA94B,GAAK+5B,gBAAkBA,GACvB,YCzDA,IAAIU,GAAe,SAAsBtwO,EAAON,GAC9C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMo2E,KAEV,EAOA,SAJ2Bx0D,EAAAA,WAAiBs0D,ICb5C,SADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,4LAAgM,KAAQ,OAAQ,MAAS,YCMnX,IAAIG,GAAe,SAAsBzwO,EAAON,GAC9C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMs2E,KAEV,EAOA,SAJ2B10D,EAAAA,WAAiBy0D,ICb5C,SADoB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,6LAAiM,KAAQ,QAAS,MAAS,YCMtX,IAAIE,GAAgB,SAAuB3wO,EAAON,GAChD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMw2E,KAEV,EAOA,SAJ2B50D,EAAAA,WAAiB20D,ICd/BE,GAAmB,MACnBC,GAAuB,UACvBC,GAAW,CAAC,WAAY,aAAc,SAAU,cAQhDC,GAA6Bh1D,EAAAA,cAAoB,CAE5Di1D,aAT0BC,CAACC,EAAWC,IAClCA,IAGGD,EAAY,GAAGN,MAAoBM,IAAcN,IAMxDQ,cAAeP,MAGfzxK,SAAUiyK,IACRN,GACEO,GAAe,CAAC,EASf,SAASC,GAAmBhwO,GACjC,MAAM8sB,EAAU0tJ,EAAAA,WAAiBg1D,KAC3B,aACJC,EAAY,UACZrrJ,EAAS,kBACT4kI,GACEl8L,EACEmjN,EAAYnjN,EAAQ9sB,GAC1B,OAAOrzC,OAAOoD,OAAOpD,OAAOoD,OAAO,CACjCoqN,WAAY41D,GACZttP,OAAQstP,IACPE,GAAY,CACbR,eACArrJ,YACA4kI,qBAEJ,CC3CO,MAAMknB,GAA6B11D,EAAAA,cAAoB,CAC5D21D,UAAW,CACTC,SAAUA,IAAM,KAChBC,YAAaA,IAAM,QCkDvB,SAnDA,SAAiB12O,GAYf,IANA,IAEIpyC,EAFA6L,EAAI,EAGJvL,EAAI,EACJujB,EAAMuuB,EAAI7xC,OAEPsjB,GAAO,IAAKvjB,EAAGujB,GAAO,EAE3B7jB,EAEe,YAAV,OAHLA,EAAwB,IAApBoyC,EAAI1wB,WAAWphB,IAAmC,IAAtB8xC,EAAI1wB,aAAaphB,KAAc,GAA2B,IAAtB8xC,EAAI1wB,aAAaphB,KAAc,IAA4B,IAAtB8xC,EAAI1wB,aAAaphB,KAAc,MAG9F,OAAZN,IAAM,KAAgB,IAIpD6L,EAEe,YAAV,OALL7L,GAEAA,IAAM,MAGoC,OAAZA,IAAM,KAAgB,IAErC,YAAV,MAAJ6L,IAAyC,OAAZA,IAAM,KAAgB,IAItD,OAAQgY,GACN,KAAK,EACHhY,IAA8B,IAAxBumC,EAAI1wB,WAAWphB,EAAI,KAAc,GAEzC,KAAK,EACHuL,IAA8B,IAAxBumC,EAAI1wB,WAAWphB,EAAI,KAAc,EAEzC,KAAK,EAEHuL,EAEe,YAAV,OAHLA,GAAyB,IAApBumC,EAAI1wB,WAAWphB,MAGsB,OAAZuL,IAAM,KAAgB,IASxD,SAHAA,EAEe,YAAV,OAHLA,GAAKA,IAAM,MAG+B,OAAZA,IAAM,KAAgB,KACvCA,IAAM,MAAQ,GAAGuB,SAAS,GACzC,EC5CO,SAASy+O,GAAQxmP,GACtB,OAAOA,EAAKhB,KAJF,IAKZ,CA0CA,SAzC0B,WACxB,SAAS0kR,EAAOC,GACd5yC,GAAgBh3O,KAAM2pR,IACtB9xK,EAAAA,GAAAA,GAAgB73G,KAAM,kBAAc,IAEpC63G,EAAAA,GAAAA,GAAgB73G,KAAM,QAAS,IAAI+xC,KACnC/xC,KAAK4pR,WAAaA,CACpB,CAgCA,OA/BA3yC,GAAa0yC,EAAQ,CAAC,CACpB7kR,IAAK,MACLlG,MAAO,SAAaqH,GAClB,OAAOjG,KAAK6pR,MAAMp9B,GAAQxmP,GAC5B,GAGC,CACDnB,IAAK,QACLlG,MAAO,SAAekrR,GACpB,OAAO9pR,KAAK+6E,MAAMvtE,IAAIs8Q,IAAe,IACvC,GACC,CACDhlR,IAAK,SACLlG,MAAO,SAAgBqH,EAAM8jR,GAC3B,OAAO/pR,KAAKgqR,SAASv9B,GAAQxmP,GAAO8jR,EACtC,GAGC,CACDjlR,IAAK,WACLlG,MAAO,SAAkBkrR,EAAYC,GACnC,IACIhuC,EAAYguC,EADA/pR,KAAK+6E,MAAMvtE,IAAIs8Q,IAEb,OAAd/tC,EACF/7O,KAAK+6E,MAAMhsB,OAAO+6N,GAElB9pR,KAAK+6E,MAAMpxE,IAAImgR,EAAY/tC,EAE/B,KAEK4tC,CACT,CAxC0B,GCT1B,IAKWM,GAAa,kBACbC,GAAY,gBAIZC,GAAqB,uBACzB,SAASC,KACd,IAAIC,EAAoB7oR,KAAKmiB,SAAS3V,SAAS,IAAIhJ,MAAM,GAIzD,GAAwB,qBAAbsC,UAA4BA,SAASm1B,MAAQn1B,SAASuE,KAAM,CACrE,IAAIiwB,EAASx0B,SAASuE,KAAKtL,iBAAiB,SAASiE,OAAO0lR,GAAW,OAAS,GAC5EhiR,EAAaZ,SAASm1B,KAAKv0B,WAC/BrH,MAAM8J,KAAKmxB,GAAQh7B,SAAQ,SAAUwE,GACnCA,EAAM6kR,IAAsB7kR,EAAM6kR,KAAuBE,EAGrD/kR,EAAM6kR,MAAwBE,GAChC/iR,SAASm1B,KAAK/1B,aAAapB,EAAO4C,EAEtC,IAGA,IAAIoiR,EAAY,CAAC,EACjBzpR,MAAM8J,KAAKrD,SAAS/G,iBAAiB,SAASiE,OAAO0lR,GAAW,OAAOppR,SAAQ,SAAUwE,GACvF,IAGQilR,EAHJprD,EAAO75N,EAAMu9H,aAAaqnJ,IAC1BI,EAAUnrD,GACR75N,EAAM6kR,MAAwBE,IAEW,QAA1CE,EAAoBjlR,EAAMmB,kBAA8C,IAAtB8jR,GAAgCA,EAAkB5iR,YAAYrC,IAGnHglR,EAAUnrD,IAAQ,CAEtB,GACF,CACA,OAAO,IAAIqrD,GAAYH,EACzB,CACA,IAAII,GAA4B52D,EAAAA,cAAoB,CAClD62D,aAAc,MACd3vM,MAAOqvM,KACPO,cAAc,IAyBhB,YClEA,IAAIC,GAAY,YACH,IAAIjoQ,OAAOioQ,GAAW,KCQnC,IAAIC,GAA0B,WAC5B,SAASA,IACP7zC,GAAgBh3O,KAAM6qR,IACtBhzK,EAAAA,GAAAA,GAAgB73G,KAAM,aAAS,IAC/B63G,EAAAA,GAAAA,GAAgB73G,KAAM,YAAQ,IAC9B63G,EAAAA,GAAAA,GAAgB73G,KAAM,sBAAkB,GACxCA,KAAK+6E,MAAQ,IAAIhpC,IACjB/xC,KAAKiG,KAAO,GACZjG,KAAK8qR,eAAiB,CACxB,CAgHA,OA/GA7zC,GAAa4zC,EAAY,CAAC,CACxB/lR,IAAK,OACLlG,MAAO,WACL,OAAOoB,KAAKiG,KAAK9E,MACnB,GACC,CACD2D,IAAK,cACLlG,MAAO,SAAqBmsR,GAC1B,IAAIC,EAASC,EACTC,EAAkBz7Q,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GACjFsrE,EAAQ,CACV1tE,IAAKrN,KAAK+6E,OAaZ,OAXAgwM,EAAiBjqR,SAAQ,SAAUqqR,GAI/B,IAAIx0I,EAHD57D,EAIHA,EAA6B,QAApB47D,EAAS57D,SAA8B,IAAX47D,GAA+C,QAAzBA,EAASA,EAAOtpI,WAA4B,IAAXspI,OAAoB,EAASA,EAAOnpI,IAAI29Q,GAHpIpwM,OAAQ9tE,CAKZ,IAC0B,QAArB+9Q,EAAUjwM,SAA+B,IAAZiwM,GAAsBA,EAAQpsR,OAASssR,IACvEnwM,EAAMn8E,MAAM,GAAKoB,KAAK8qR,kBAEK,QAArBG,EAAUlwM,SAA+B,IAAZkwM,OAAqB,EAASA,EAAQrsR,KAC7E,GACC,CACDkG,IAAK,MACLlG,MAAO,SAAamsR,GAClB,IAAIK,EACJ,OAA0E,QAAlEA,EAAoBprR,KAAKqrR,YAAYN,GAAkB,UAAyC,IAAtBK,OAA+B,EAASA,EAAkB,EAC9I,GACC,CACDtmR,IAAK,MACLlG,MAAO,SAAamsR,GAClB,QAAS/qR,KAAKqrR,YAAYN,EAC5B,GACC,CACDjmR,IAAK,MACLlG,MAAO,SAAamsR,EAAkBnsR,GACpC,IAAI67B,EAAQz6B,KAEZ,IAAKA,KAAK6S,IAAIk4Q,GAAmB,CAC/B,GAAI/qR,KAAKqiB,OAAS,EAAIwoQ,EAAWS,eAAiBT,EAAWU,iBAAkB,CAC7E,IAAIC,EAAoBxrR,KAAKiG,KAAKg5B,QAAO,SAAUhuB,EAAQnM,GACvD,IACE2mR,EADY7vC,GAAe3qO,EAAQ,GACf,GACtB,OAAIwpB,EAAM4wP,YAAYvmR,GAAK,GAAK2mR,EACvB,CAAC3mR,EAAK21B,EAAM4wP,YAAYvmR,GAAK,IAE/BmM,CACT,GAAG,CAACjR,KAAKiG,KAAK,GAAIjG,KAAK8qR,iBAEvBjgC,EADqBjP,GAAe4vC,EAAmB,GACxB,GACjCxrR,KAAK+uD,OAAO87L,EACd,CACA7qP,KAAKiG,KAAKpE,KAAKkpR,EACjB,CACA,IAAIhwM,EAAQ/6E,KAAK+6E,MACjBgwM,EAAiBjqR,SAAQ,SAAUqqR,EAAYj7Q,GAC7C,GAAIA,IAAU66Q,EAAiB5pR,OAAS,EACtC45E,EAAMpxE,IAAIwhR,EAAY,CACpBvsR,MAAO,CAACA,EAAO67B,EAAMqwP,wBAElB,CACL,IAAIY,EAAa3wM,EAAMvtE,IAAI29Q,GACtBO,EAIOA,EAAWr+Q,MACrBq+Q,EAAWr+Q,IAAM,IAAI0kC,KAJrBgpC,EAAMpxE,IAAIwhR,EAAY,CACpB99Q,IAAK,IAAI0kC,MAKbgpC,EAAQA,EAAMvtE,IAAI29Q,GAAY99Q,GAChC,CACF,GACF,GACC,CACDvI,IAAK,eACLlG,MAAO,SAAsB+sR,EAAcC,GACzC,IAEMC,EAFF9wM,EAAQ4wM,EAAan+Q,IAAIo+Q,EAAY,IACzC,GAA2B,IAAvBA,EAAYzqR,OASd,OAPK45E,EAAM1tE,IAGTs+Q,EAAahiR,IAAIiiR,EAAY,GAAI,CAC/Bv+Q,IAAK0tE,EAAM1tE,MAHbs+Q,EAAa58N,OAAO68N,EAAY,IAMM,QAAhCC,EAAe9wM,EAAMn8E,aAAoC,IAAjBitR,OAA0B,EAASA,EAAa,GAElG,IAAI56Q,EAASjR,KAAK8rR,aAAa/wM,EAAM1tE,IAAKu+Q,EAAY5mR,MAAM,IAI5D,OAHM+1E,EAAM1tE,KAA0B,IAAnB0tE,EAAM1tE,IAAIgV,MAAgB04D,EAAMn8E,OACjD+sR,EAAa58N,OAAO68N,EAAY,IAE3B36Q,CACT,GACC,CACDnM,IAAK,SACLlG,MAAO,SAAiBmsR,GAEtB,GAAI/qR,KAAK6S,IAAIk4Q,GAIX,OAHA/qR,KAAKiG,KAAOjG,KAAKiG,KAAKkL,QAAO,SAAU+gC,GACrC,OA7HH,SAA8B7wC,EAAMmK,GACzC,GAAInK,EAAKF,SAAWqK,EAAMrK,OACxB,OAAO,EAET,IAAK,IAAID,EAAI,EAAGA,EAAIG,EAAKF,OAAQD,IAC/B,GAAIG,EAAKH,KAAOsK,EAAMtK,GACpB,OAAO,EAGX,OAAO,CACT,CAmHkB6qR,CAAqB75O,EAAM64O,EACrC,IACO/qR,KAAK8rR,aAAa9rR,KAAK+6E,MAAOgwM,EAGzC,KAEKF,CACT,CA1H8B,IA2H9BhzK,EAAAA,GAAAA,GAAgBgzK,GAAY,iBAAkB,KAC9ChzK,EAAAA,GAAAA,GAAgBgzK,GAAY,mBAAoB,GCzIhD,IAAI3oC,GAAO,EAMP8pC,GAAqB,WACvB,SAASA,EAAMJ,GACb50C,GAAgBh3O,KAAMgsR,IACtBn0K,EAAAA,GAAAA,GAAgB73G,KAAM,mBAAe,IACrC63G,EAAAA,GAAAA,GAAgB73G,KAAM,UAAM,GAC5BA,KAAK4rR,YAAc/qR,MAAMqR,QAAQ05Q,GAAeA,EAAc,CAACA,GAC/D5rR,KAAKyjB,GAAKy+N,GACiB,IAAvB0pC,EAAYzqR,QACNyqR,EAAYzqR,OAEtB+gP,IAAQ,CACV,CASA,OARAjL,GAAa+0C,EAAO,CAAC,CACnBlnR,IAAK,qBACLlG,MAAO,SAA4B+pH,GACjC,OAAO3oH,KAAK4rR,YAAY3sP,QAAO,SAAUhuB,EAAQk6Q,GAC/C,OAAOA,EAAWxiK,EAAO13G,EAC3B,QAAGhE,EACL,KAEK++Q,CACT,CArByB,GCRrBC,GAAc,IAAIpB,GAKP,SAASqB,GAAYN,GAClC,IAAIO,EAAgBtrR,MAAMqR,QAAQ05Q,GAAeA,EAAc,CAACA,GAOhE,OALKK,GAAYp5Q,IAAIs5Q,IACnBF,GAAYtiR,IAAIwiR,EAAe,IAAIH,GAAMG,IAIpCF,GAAYz+Q,IAAI2+Q,EACzB,CCLA,IAAIC,GAAc,IAAI1wQ,QAClB2wQ,GAAe,CAAC,EAiBpB,IAAIC,GAAoB,IAAI5wQ,QAKrB,SAAS6wQ,GAAa5jK,GAC3B,IAAI31E,EAAMs5O,GAAkB9+Q,IAAIm7G,IAAU,GAqB1C,OApBK31E,IACHhtC,OAAOC,KAAK0iH,GAAO7nH,SAAQ,SAAUgE,GACnC,IAAIlG,EAAQ+pH,EAAM7jH,GAClBkuC,GAAOluC,EACHlG,aAAiBotR,GACnBh5O,GAAOp0C,EAAM6kB,GACJ7kB,GAA4B,YAAnB4D,EAAAA,GAAAA,GAAQ5D,GAC1Bo0C,GAAOu5O,GAAa3tR,GAEpBo0C,GAAOp0C,CAEX,IAIAo0C,EAAMmsL,GAAKnsL,GAGXs5O,GAAkB3iR,IAAIg/G,EAAO31E,IAExBA,CACT,CAKO,SAASw5O,GAAU7jK,EAAO8jK,GAC/B,OAAOttD,GAAK,GAAG36N,OAAOioR,EAAM,KAAKjoR,OAAO+nR,GAAa5jK,IACvD,CACwB,UAAUnkH,OAAO2xB,KAAKw8B,MAAO,KAAKnuD,OAAOhD,KAAKmiB,UAAUjQ,QAAQ,MAAO,IAsDxF,IAAIg5Q,GAAe3zC,KACnB,SAAS/1O,GAAK63O,GACnB,MAAmB,kBAARA,EACF,GAAGr2O,OAAOq2O,EAAK,MAEjBA,CACT,CACO,SAAS8xC,GAAWrnR,EAAOsnR,EAAUC,GAC1C,IAAIC,EAGJ,GADYr9Q,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAEzE,OAAOnK,EAET,IAAI8gR,EAAQ5tC,GAAcA,GAAc,CAAC,EALpB/oO,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,GAK7B,CAAC,GAAIq9Q,EAAiB,CAAC,GAAGj1K,EAAAA,GAAAA,GAAgBi1K,EAAgB7C,GAAY2C,IAAW/0K,EAAAA,GAAAA,GAAgBi1K,EAAgB5C,GAAW2C,GAAUC,IAC/LC,EAAU/mR,OAAOC,KAAKmgR,GAAO/4Q,KAAI,SAAU4mI,GAC7C,IAAItrI,EAAMy9Q,EAAMnyI,GAChB,OAAOtrI,EAAM,GAAGnE,OAAOyvI,EAAM,MAAOzvI,OAAOmE,EAAK,KAAQ,IAC1D,IAAGwI,QAAO,SAAU+jB,GAClB,OAAOA,CACT,IAAGjwB,KAAK,KACR,MAAO,UAAUT,OAAOuoR,EAAS,KAAKvoR,OAAOc,EAAO,WACtD,CC5IO,IAAI0nR,GAAe,SAAsBrkK,GAC9C,IAAI3U,EAASvkG,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GACjF,MAAO,KAAKjL,OAAOwvG,EAAS,GAAGxvG,OAAOwvG,EAAQ,KAAO,IAAIxvG,OAAOmkH,GAAOj1G,QAAQ,qBAAsB,SAASA,QAAQ,4BAA6B,SAASA,QAAQ,qBAAsB,SAASvQ,aACrM,EACW8pR,GAAkB,SAAyBC,EAASC,EAAQjqR,GACrE,OAAK8C,OAAOC,KAAKinR,GAAS/rR,OAGnB,IAAIqD,OAAO2oR,GAAQ3oR,OAAmB,OAAZtB,QAAgC,IAAZA,GAAsBA,EAAQ+6L,MAAQ,IAAIz5L,OAAOtB,EAAQ+6L,OAAS,GAAI,KAAKz5L,OAAOwB,OAAOoQ,QAAQ82Q,GAAS7/Q,KAAI,SAAU49I,GAC3K,IAAIyxB,EAAQk/D,GAAe3wF,EAAM,GAC/BnmJ,EAAM43K,EAAM,GACZ99K,EAAQ89K,EAAM,GAChB,MAAO,GAAGl4K,OAAOM,EAAK,KAAKN,OAAO5F,EAAO,IAC3C,IAAGqG,KAAK,IAAK,KAPJ,EAQX,EACWmoR,GAAiB,SAAwBzkK,EAAO0kK,EAAUz7O,GACnE,IAAIs7O,EAAU,CAAC,EACXj8Q,EAAS,CAAC,EAed,OAdAjL,OAAOoQ,QAAQuyG,GAAO7nH,SAAQ,SAAUs/P,GACtC,IAAIktB,EAAkBC,EAClB3hD,EAAQgQ,GAAewkB,EAAO,GAChCt7P,EAAM8mO,EAAM,GACZhtO,EAAQgtO,EAAM,GAChB,GAAe,OAAXh6L,QAA8B,IAAXA,GAA8D,QAAxC07O,EAAmB17O,EAAO47O,gBAA2C,IAArBF,GAA+BA,EAAiBxoR,GAC3ImM,EAAOnM,GAAOlG,OACT,IAAsB,kBAAVA,GAAuC,kBAAVA,KAAoC,OAAXgzC,QAA8B,IAAXA,GAA0D,QAApC27O,EAAiB37O,EAAO67O,cAAuC,IAAnBF,IAA6BA,EAAezoR,IAAO,CAC/M,IAAI4oR,EACAC,EAASX,GAAaloR,EAAgB,OAAX8sC,QAA8B,IAAXA,OAAoB,EAASA,EAAOoiE,QACtFk5K,EAAQS,GAA2B,kBAAV/uR,GAAmC,OAAXgzC,QAA8B,IAAXA,GAA8D,QAAxC87O,EAAmB97O,EAAOg8O,gBAA2C,IAArBF,GAA+BA,EAAiB5oR,GAAiCmC,OAAOrI,GAAhC,GAAG4F,OAAO5F,EAAO,MACnNqS,EAAOnM,GAAO,OAAON,OAAOmpR,EAAQ,IACtC,CACF,IACO,CAAC18Q,EAAQg8Q,GAAgBC,EAASG,EAAU,CACjDpvF,MAAkB,OAAXrsJ,QAA8B,IAAXA,OAAoB,EAASA,EAAOqsJ,QAElE,EC5BI/wH,GADYsrK,GAAc,CAAC,EAAG3kB,GACC3mJ,mBAyBnC,SANmCA,GAAqB,SAAU2gN,EAActxI,EAAQ9wE,GACtF,OAAOyB,IAAmB,WAExB,OADA2gN,IACOtxI,GACT,GAAG9wE,EACL,EAjBiC,SAAoCoiN,EAActxI,EAAQ9wE,GACzFooJ,EAAAA,QAAcg6D,EAAcpiN,GAC5B0B,IAAgB,WACd,OAAOovE,GAAO,EAChB,GAAG9wE,EACL,ECqBA,SAD6D,qBArC7C+sK,GAAc,CAAC,EAAG3kB,GACC3mJ,mBAGV,SAA4BzB,GACnD,IAAIqiN,EAAiB,GACjBC,GAAc,EAsBlB,OAZAl6D,EAAAA,WAAgB,WAGd,OADAk6D,GAAc,EACP,WACLA,GAAc,EACVD,EAAe3sR,QACjB2sR,EAAehtR,SAAQ,SAAUsN,GAC/B,OAAOA,GACT,GAEJ,CACF,GAAGq9D,GApBH,SAAkBr9D,GACZ2/Q,GAMJD,EAAejsR,KAAKuM,EACtB,CAcF,EACa,WACX,OAAO,SAAUA,GACfA,GACF,CACF,EC9BA,SAPA,WACE,OAAO,CACT,ECMe,SAAS4/Q,GAAeh6K,EAAQm3I,EAAS8iC,EAASC,EAEjEC,GACE,IACEC,EADsBv6D,EAAAA,WAAiB42D,IACP1vM,MAE9BszM,EAAc5hC,GADH,CAACz4I,GAAQxvG,OAAOw+O,GAAmBmI,KAE9CmjC,EAAWC,GAAyB,CAACF,IAErCG,GADYC,KACC,SAAoB5/M,GACnCu/M,EAAYpE,SAASqE,GAAa,SAAUK,GAC1C,IACEhyG,EAAQk/D,GADC8yC,GAAa,MAACzhR,OAAWA,GACL,GAC7B0hR,EAASjyG,EAAM,GAUjB,IACIngK,EAAO,MAVU,IAAXoyQ,EAAoB,EAAIA,EACxBjyG,EAAM,IAQcuxG,KAI9B,OAAOp/M,EAAUA,EAAQtyD,GAAQA,CACnC,GACF,GAGAs3M,EAAAA,SAAc,WACZ26D,GACF,GACA,CAACH,IAYD,IAAIO,EATcR,EAAYvE,MAAMwE,GASL,GA0C/B,OAvCAQ,IAA6B,WACT,OAAlBV,QAA4C,IAAlBA,GAA4BA,EAAcS,EACtE,IAAG,SAAUn9P,GAaX,OATA+8P,GAAW,SAAUpuB,GACnB,IAAIx0B,EAAQgQ,GAAewkB,EAAO,GAChC1yN,EAAQk+L,EAAM,GACd7wJ,EAAQ6wJ,EAAM,GAIhB,OAHIn6M,GAAsB,IAAVic,IACI,OAAlBygP,QAA4C,IAAlBA,GAA4BA,EAAcS,IAE/D,CAAClhP,EAAQ,EAAGqtC,EACrB,IACO,WACLqzM,EAAYpE,SAASqE,GAAa,SAAUK,GAC1C,IACEjiD,EAAQmP,GADE8yC,GAAa,GACO,GAC9BI,EAASriD,EAAM,GACf/+L,OAAmB,IAAXohP,EAAoB,EAAIA,EAChC/zM,EAAQ0xJ,EAAM,GAEhB,OAAkB,IADF/+L,EAAQ,GAGtB4gP,GAAS,YAIH78P,GAAa28P,EAAYvE,MAAMwE,IACf,OAAlBH,QAA4C,IAAlBA,GAA4BA,EAAcnzM,GAAO,EAE/E,IACO,MAEF,CAACrtC,EAAQ,EAAGqtC,EACrB,GACF,CACF,GAAG,CAACszM,IACGO,CACT,CCxFA,IAAIG,GAAiB,CAAC,EAKlBC,GAAY,IAAIj9O,IAkBpB,SAASk9O,GAAgBrC,EAAUhD,GACjCoF,GAAUrlR,IAAIijR,GAAWoC,GAAUxhR,IAAIo/Q,IAAa,GAAK,GACzD,IAAIsC,EAAeruR,MAAM8J,KAAKqkR,GAAU/oR,QACpCkpR,EAAmBD,EAAa/9Q,QAAO,SAAUrM,GAEnD,OADYkqR,GAAUxhR,IAAI1I,IAAQ,IAClB,CAClB,IAGIoqR,EAAa/tR,OAASguR,EAAiBhuR,OAZvB,GAalBguR,EAAiBruR,SAAQ,SAAUgE,IAxBvC,SAAyBA,EAAK8kR,GACJ,qBAAbtiR,UACIA,SAAS/G,iBAAiB,SAASiE,OAAOylR,GAAY,MAAOzlR,OAAOM,EAAK,OAC/EhE,SAAQ,SAAUwE,GAErB,IAAIilR,EADFjlR,EAAM6kR,MAAwBP,IAEW,QAA1CW,EAAoBjlR,EAAMmB,kBAA8C,IAAtB8jR,GAAgCA,EAAkB5iR,YAAYrC,GAErH,GAEJ,CAeM8pR,CAAgBtqR,EAAK8kR,GACrBoF,GAAUjgO,OAAOjqD,EACnB,GAEJ,CACO,IAYIuqR,GAAe,QAQX,SAASC,GAAc7mP,EAAOigF,GAC3C,IAAIuiB,EAASx7H,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9Ey3Q,GAAcn6M,EAAAA,EAAAA,YAAW09M,IAC3Bb,EAAa1C,EAAYnsM,MAAM6uM,WAC/BxpR,EAAY8mR,EAAY9mR,UACtBmvR,EAAetkJ,EAAOwhJ,KACxBA,OAAwB,IAAjB8C,EAA0B,GAAKA,EACtCC,EAAmBvkJ,EAAOwkJ,SAC1BA,OAAgC,IAArBD,EAA8BT,GAAiBS,EAC1DE,EAAczkJ,EAAOykJ,YACrBC,EAAU1kJ,EAAO2kJ,iBACjBjC,EAAS1iJ,EAAO0iJ,OAGdkC,ENtEC,SAAoB7kQ,EAAUygD,GAEnC,IADA,IAAIxlC,EAAUmmP,GACLlrR,EAAI,EAAGA,EAAIuqE,EAAKtqE,OAAQD,GAAK,EAAG,CACvC,IAAI4uR,EAAMrkN,EAAKvqE,GACV+kC,EAAQpzB,IAAIi9Q,IACf7pP,EAAQt8B,IAAImmR,EAAK,IAAIp0Q,SAEvBuqB,EAAUA,EAAQz4B,IAAIsiR,EACxB,CAIA,OAHK7pP,EAAQpzB,IAAIw5Q,KACfpmP,EAAQt8B,IAAI0iR,GAAcrhQ,KAErBib,EAAQz4B,IAAI6+Q,GACrB,CMyDoB0D,EAAW,WAC3B,OAAO/pR,OAAOoD,OAAOiR,MAAMrU,OAAQ,CAAC,CAAC,GAAGxB,OAAOw+O,GAAmBt6H,IACpE,GAAGA,GACCsnK,EAAWzD,GAAasD,GACxBI,EAAmB1D,GAAakD,GAChCS,EAAYvC,EAASpB,GAAaoB,GAAU,GAC5CwC,EAAcnC,GAAeqB,GAAc,CAAC5C,EAAMhkP,EAAMhlB,GAAIusQ,EAAUC,EAAkBC,IAAY,WACtG,IAAIE,EACAC,EAAwBV,EAAUA,EAAQE,EAAaJ,EAAUhnP,GA1C3C,SAA0B6nP,EAAaC,EAAe9nP,EAAOxlC,GACzF,IAGIotR,EAAwB73C,GAAcA,GAAc,CAAC,EAHnC/vM,EAAM+nP,mBAAmBF,IAG+BC,GAM9E,OAHIttR,IACFotR,EAAwBptR,EAAOotR,IAE1BA,CACT,CA+BkFT,CAAiBC,EAAaJ,EAAUhnP,EAAOinP,GAGzHe,EAAcj4C,GAAc,CAAC,EAAG63C,GAChCK,EAAa,GACjB,GAAM/C,EAAQ,CACZ,IAMIgD,EAAmB/0C,GANDwxC,GAAeiD,EAAuB1C,EAAO7oR,IAAK,CACtEkvG,OAAQ25K,EAAO35K,OACfy5K,OAAQE,EAAOF,OACfG,SAAUD,EAAOC,SACjBJ,SAAUG,EAAOH,WAEoC,GACvD6C,EAAwBM,EAAiB,GACzCD,EAAaC,EAAiB,EAChC,CAGA,IAAI/D,EAAWJ,GAAU6D,EAAuB5D,GAChD4D,EAAsBO,UAAYhE,EAClC6D,EAAYG,UAAYpE,GAAUiE,EAAahE,GAC/C,IAAIY,EAA0F,QAA9E+C,EAAyB,OAAXzC,QAA8B,IAAXA,OAAoB,EAASA,EAAO7oR,WAAiC,IAAhBsrR,EAAyBA,EAAcxD,EAC7IyD,EAAsBQ,UAAYxD,EAjGtC,SAA0BT,GACxBoC,GAAUrlR,IAAIijR,GAAWoC,GAAUxhR,IAAIo/Q,IAAa,GAAK,EAC3D,CAgGIkE,CAAiBzD,GACjB,IAAIF,EAAS,GAAG3oR,OArGsE,MAqGnD,KAAKA,OAAO26N,GAAKytD,IAGpD,OAFAyD,EAAsBU,QAAU5D,EAEzB,CAACkD,EAAuBlD,EAAQsD,EAAaC,GAAwB,OAAX/C,QAA8B,IAAXA,OAAoB,EAASA,EAAO7oR,MAAQ,GAClI,IAAG,SAAUi2E,GAEXk0M,GAAgBl0M,EAAM,GAAG81M,UAAWjH,EACtC,IAAG,SAAU3+H,GACX,IAAIyxB,EAAQk/D,GAAe3wF,EAAM,GAC/BtiC,EAAQ+zD,EAAM,GACdg0G,EAAah0G,EAAM,GACrB,GAAIixG,GAAU+C,EAAY,CACxB,IAAIprR,EAAQqsP,GAAU++B,EAAYvxD,GAAK,iBAAiB36N,OAAOmkH,EAAMkoK,YAAa,CAChF9mI,KAAMmgI,GACNn5B,QAAS,QACTJ,SAAUvwP,EACVqvD,UAAW,MAEbnqD,EAAM6kR,IAAsBP,EAG5BtkR,EAAM66C,aAAa8pO,GAAYthK,EAAMkoK,UACvC,CACF,IACA,OAAOV,CACT,CC3FA,SAjDmB,CACjBlrO,wBAAyB,EACzBE,kBAAmB,EACnBC,iBAAkB,EAClBC,iBAAkB,EAClBC,QAAS,EACTC,aAAc,EACdC,gBAAiB,EACjBC,YAAa,EACbpqB,QAAS,EACTqqB,KAAM,EACNC,SAAU,EACVC,aAAc,EACdC,WAAY,EACZC,aAAc,EACdC,UAAW,EACXE,QAAS,EACTC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,WAAY,EACZC,cAAe,EACfC,eAAgB,EAChBC,gBAAiB,EACjBwqO,UAAW,EACXC,cAAe,EACfC,aAAc,EACdC,iBAAkB,EAClBtuP,WAAY,EACZvF,WAAY,EACZ3xB,QAAS,EACT+6C,MAAO,EACPC,QAAS,EACTC,QAAS,EACTC,OAAQ,EACRt7C,OAAQ,EACRu7C,KAAM,EACNsqO,gBAAiB,EAEjBrqO,YAAa,EACbC,aAAc,EACdC,YAAa,EACbC,gBAAiB,EACjBC,iBAAkB,EAClBC,iBAAkB,EAClBC,cAAe,EACfC,YAAa,GC9CR,IAII+pO,GAAU,OACVC,GAAU,OACVC,GAAc,OCFdlrR,GAAM7E,KAAK6E,IAMXsE,GAAO1D,OAAOk0C,aAMLn1C,OAAOoD,OAepB,SAAS2Z,GAAMnkB,GACrB,OAAOA,EAAMmkB,MACd,CAiBO,SAASrP,GAAS9U,EAAO0qG,EAASltF,GACxC,OAAOxd,EAAM8U,QAAQ41F,EAASltF,EAC/B,CAQO,SAASo1Q,GAAS5yR,EAAOi6D,EAAQxtD,GACvC,OAAOzM,EAAM8F,QAAQm0D,EAAQxtD,EAC9B,CAOO,SAASomR,GAAQ7yR,EAAOsR,GAC9B,OAAiC,EAA1BtR,EAAM0jB,WAAWpS,EACzB,CAQO,SAAS8nI,GAAQp5I,EAAO81M,EAAO5xL,GACrC,OAAOlkB,EAAMoG,MAAM0vM,EAAO5xL,EAC3B,CAMO,SAAS4uQ,GAAQ9yR,GACvB,OAAOA,EAAMuC,MACd,CAeO,SAASwzP,GAAQ/1P,EAAOiT,GAC9B,OAAOA,EAAMhQ,KAAKjD,GAAQA,CAC3B,CClGO,SAAS+yR,GAAWxtO,EAAUn5B,GAGpC,IAFA,IAAIle,EAAS,GAEJ5L,EAAI,EAAGA,EAAIijD,EAAShjD,OAAQD,IACpC4L,GAAUke,EAASm5B,EAASjjD,GAAIA,EAAGijD,EAAUn5B,IAAa,GAE3D,OAAOle,CACR,CASO,SAASrD,GAAWm2B,EAAS1vB,EAAOi0C,EAAUn5B,GACpD,OAAQ4U,EAAQ54B,MACf,IFNiB,SEML,GAAI44B,EAAQukB,SAAShjD,OAAQ,MACzC,IFjBkB,UEiBL,IFZQ,aEYQ,KAAKowR,GAAa,OAAO3xP,EAAQ6qB,OAAS7qB,EAAQ6qB,QAAU7qB,EAAQhhC,MACjG,KAAKyyR,GAAS,MAAO,GACrB,IFbqB,aEaL,OAAOzxP,EAAQ6qB,OAAS7qB,EAAQhhC,MAAQ,IAAM+yR,GAAU/xP,EAAQukB,SAAUn5B,GAAY,IACtG,KAAKsmQ,GAAS,IAAKI,GAAO9xP,EAAQhhC,MAAQghC,EAAQiY,MAAM5yC,KAAK,MAAO,MAAO,GAG5E,OAAOysR,GAAOvtO,EAAWwtO,GAAU/xP,EAAQukB,SAAUn5B,IAAa4U,EAAQ6qB,OAAS7qB,EAAQhhC,MAAQ,IAAMulD,EAAW,IAAM,EAC3H,CChCO,IAAIvT,GAAO,EACPpW,GAAS,EACTr5B,GAAS,EACTkK,GAAW,EACXumR,GAAY,EACZC,GAAa,GAYjB,SAASjqR,GAAMhJ,EAAOwF,EAAMupB,EAAQ3mB,EAAM6wC,EAAOsM,EAAUhjD,EAAQogO,GACzE,MAAO,CAAC3iO,MAAOA,EAAOwF,KAAMA,EAAMupB,OAAQA,EAAQ3mB,KAAMA,EAAM6wC,MAAOA,EAAOsM,SAAUA,EAAUvT,KAAMA,GAAMpW,OAAQA,GAAQr5B,OAAQA,EAAQspD,OAAQ,GAAI82K,SAAUA,EACnK,CA2CO,SAASrtN,KAMf,OALA09Q,GAAYvmR,GAAWlK,GAASswR,GAAOI,GAAYxmR,MAAc,EAE7DmvB,KAAwB,KAAdo3P,KACbp3P,GAAS,EAAGoW,MAENghP,EACR,CAKO,SAASl9D,KACf,OAAO+8D,GAAOI,GAAYxmR,GAC3B,CAKO,SAASymR,KACf,OAAOzmR,EACR,CAOO,SAASrG,GAAO0vM,EAAO5xL,GAC7B,OAAOk1H,GAAO65I,GAAYn9E,EAAO5xL,EAClC,CAMO,SAAS6lG,GAAO3hH,GACtB,OAAQA,GAEP,KAAK,EAAG,KAAK,EAAG,KAAK,GAAI,KAAK,GAAI,KAAK,GACtC,OAAO,EAER,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,IAE3D,KAAK,GAAI,KAAK,IAAK,KAAK,IACvB,OAAO,EAER,KAAK,GACJ,OAAO,EAER,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAC/B,OAAO,EAER,KAAK,GAAI,KAAK,GACb,OAAO,EAGT,OAAO,CACR,CAMO,SAAS+qR,GAAOnzR,GACtB,OAAOgyC,GAAOpW,GAAS,EAAGr5B,GAASuwR,GAAOG,GAAajzR,GAAQyM,GAAW,EAAG,EAC9E,CAMO,SAAS2mR,GAASpzR,GACxB,OAAOizR,GAAa,GAAIjzR,CACzB,CAMO,SAASqzR,GAASjrR,GACxB,OAAO+b,GAAK/d,GAAMqG,GAAW,EAAG6mR,GAAmB,KAATlrR,EAAcA,EAAO,EAAa,KAATA,EAAcA,EAAO,EAAIA,IAC7F,CAcO,SAASyb,GAAYzb,GAC3B,MAAO4qR,GAAYl9D,OACdk9D,GAAY,IACf19Q,KAIF,OAAOy0G,GAAM3hH,GAAQ,GAAK2hH,GAAMipK,IAAa,EAAI,GAAK,GACvD,CAwBO,SAASO,GAAUjiR,EAAO8jC,GAChC,OAASA,GAAS9/B,QAEb09Q,GAAY,IAAMA,GAAY,KAAQA,GAAY,IAAMA,GAAY,IAAQA,GAAY,IAAMA,GAAY,MAG/G,OAAO5sR,GAAMkL,EAAO4hR,MAAW99O,EAAQ,GAAe,IAAV0gL,MAA0B,IAAVxgN,MAC7D,CAMO,SAASg+Q,GAAWlrR,GAC1B,KAAOkN,aACE09Q,IAEP,KAAK5qR,EACJ,OAAOqE,GAER,KAAK,GAAI,KAAK,GACA,KAATrE,GAAwB,KAATA,GAClBkrR,GAAUN,IACX,MAED,KAAK,GACS,KAAT5qR,GACHkrR,GAAUlrR,GACX,MAED,KAAK,GACJkN,KAIH,OAAO7I,EACR,CAOO,SAAS+mR,GAAWprR,EAAMkJ,GAChC,KAAOgE,MAEFlN,EAAO4qR,KAAc,KAGhB5qR,EAAO4qR,KAAc,IAAsB,KAAXl9D,QAG1C,MAAO,KAAO1vN,GAAMkL,EAAO7E,GAAW,GAAK,IAAMV,GAAc,KAAT3D,EAAcA,EAAOkN,KAC5E,CAMO,SAASm+Q,GAAYniR,GAC3B,MAAQy4G,GAAM+rG,OACbxgN,KAED,OAAOlP,GAAMkL,EAAO7E,GACrB,CCxPO,SAASinR,GAAS1zR,GACxB,OAAOozR,GAAQxoR,GAAM,GAAI,KAAM,KAAM,KAAM,CAAC,IAAK5K,EAAQmzR,GAAMnzR,GAAQ,EAAG,CAAC,GAAIA,GAChF,CAcO,SAAS4K,GAAO5K,EAAOwF,EAAMupB,EAAQ0kH,EAAMhtI,EAAOktR,EAAUC,EAAQhxB,EAAQixB,GAiBlF,IAhBA,IAAIviR,EAAQ,EACR4qD,EAAS,EACT35D,EAASqxR,EACTE,EAAS,EACTz8L,EAAW,EACXt6D,EAAW,EACXphB,EAAW,EACXo4Q,EAAW,EACXC,EAAY,EACZhB,EAAY,EACZ5qR,EAAO,GACP6wC,EAAQxyC,EACR8+C,EAAWouO,EACXtwL,EAAYowC,EACZw/I,EAAa7qR,EAEV2rR,UACEh3P,EAAWi2P,EAAWA,EAAY19Q,MAEzC,KAAK,GACJ,GAAgB,KAAZynB,GAAqD,IAAlC81P,GAAOI,EAAY1wR,EAAS,GAAU,EACsD,GAA9GqwR,GAAQK,GAAcn+Q,GAAQu+Q,GAAQL,GAAY,IAAK,OAAQ,MAAOvrR,GAAI6J,EAAQsxP,EAAOtxP,EAAQ,GAAK,MACzG0iR,GAAa,GACd,KACD,CAED,KAAK,GAAI,KAAK,GAAI,KAAK,GACtBf,GAAcI,GAAQL,GACtB,MAED,KAAK,EAAG,KAAK,GAAI,KAAK,GAAI,KAAK,GAC9BC,GAAcpvQ,GAAWkZ,GACzB,MAED,KAAK,GACJk2P,GAAcM,GAASL,KAAU,EAAG,GACpC,SAED,KAAK,GACJ,OAAQp9D,MACP,KAAK,GAAI,KAAK,GACbigC,GAAO5xD,GAAQqvF,GAAUl+Q,KAAQ49Q,MAAU1tR,EAAMupB,EAAQ8kQ,GAAeA,GAC3C,GAAxB9pK,GAAMhtF,GAAY,IAAiC,GAAtBgtF,GAAM+rG,MAAU,KAAYg9D,GAAOG,IAAkD,MAAnC75I,GAAO65I,GAAa,OAAG,KAAiBA,GAAc,KAC1I,MACD,QACCA,GAAc,IAEhB,MAED,KAAK,IAAMt3Q,EACVinP,EAAOtxP,KAAWwhR,GAAOG,GAAce,EAExC,KAAK,IAAMr4Q,EAAU,KAAK,GAAI,KAAK,EAClC,OAAQq3Q,GAEP,KAAK,EAAG,KAAK,IAAKe,EAAW,EAE7B,KAAK,GAAK73N,GAA0B,GAAd83N,IAAiBf,EAAan+Q,GAAQm+Q,EAAY,MAAO,KAC1E57L,EAAW,IAAMy7L,GAAOG,GAAc1wR,GAAwB,IAAboZ,GAA+B,KAAbohB,IACtEg5N,GAAO1+J,EAAW,GAAKwrC,GAAYowJ,EAAa,IAAKx/I,EAAM1kH,EAAQxsB,EAAS,EAAGsxR,GAAgBhxJ,GAAY/tH,GAAQm+Q,EAAY,IAAK,IAAM,IAAKx/I,EAAM1kH,EAAQxsB,EAAS,EAAGsxR,GAAeA,GACzL,MAED,KAAK,GAAIZ,GAAc,IAEvB,QAGC,GAFAl9B,GAAO1yJ,EAAY4wL,GAAQhB,EAAYztR,EAAMupB,EAAQzd,EAAO4qD,EAAQz1D,EAAOm8P,EAAQx6P,EAAM6wC,EAAQ,GAAIsM,EAAW,GAAIhjD,EAAQoxR,GAAWA,GAErH,MAAdX,EACH,GAAe,IAAX92N,EACHtxD,GAAMqoR,EAAYztR,EAAM69F,EAAWA,EAAWpqD,EAAO06O,EAAUpxR,EAAQqgQ,EAAQr9M,OAC3E,CACJ,OAAQuuO,GAEP,KAAK,GACJ,GAA8B,MAA1BjB,GAAOI,EAAY,GAAY,MAEpC,KAAK,IACJ,GAA8B,KAA1BJ,GAAOI,EAAY,GAAW,MACnC,QACC/2N,EAAS,EAEV,KAAK,IAAK,KAAK,IAAK,KAAK,KAEtBA,EAAQtxD,GAAM5K,EAAOqjG,EAAWA,EAAWowC,GAAQsiH,GAAOk+B,GAAQj0R,EAAOqjG,EAAWA,EAAW,EAAG,EAAG58F,EAAOm8P,EAAQx6P,EAAM3B,EAAOwyC,EAAQ,GAAI12C,EAAQgjD,GAAWA,GAAW9+C,EAAO8+C,EAAUhjD,EAAQqgQ,EAAQnvH,EAAOx6F,EAAQsM,GAC1N36C,GAAMqoR,EAAY5vL,EAAWA,EAAWA,EAAW,CAAC,IAAK99C,EAAU,EAAGq9M,EAAQr9M,EACpF,EAGHj0C,EAAQ4qD,EAASm7B,EAAW,EAAG17E,EAAWq4Q,EAAY,EAAG5rR,EAAO6qR,EAAa,GAAI1wR,EAASqxR,EAC1F,MAED,KAAK,GACJrxR,EAAS,EAAIuwR,GAAOG,GAAa57L,EAAWt6D,EAC7C,QACC,GAAIphB,EAAW,EACd,GAAiB,KAAbq3Q,IACDr3Q,OACE,GAAiB,KAAbq3Q,GAAkC,GAAdr3Q,KAA6B,MDrE9Dq3Q,GAAYvmR,GAAW,EAAIomR,GAAOI,KAAcxmR,IAAY,EAExDmvB,KAAwB,KAAdo3P,KACbp3P,GAAS,EAAGoW,MAENghP,ICiEF,SAEF,OAAQC,GAAclnR,GAAKinR,GAAYA,EAAYr3Q,GAElD,KAAK,GACJq4Q,EAAY93N,EAAS,EAAI,GAAK+2N,GAAc,MAAO,GACnD,MAED,KAAK,GACJrwB,EAAOtxP,MAAYwhR,GAAOG,GAAc,GAAKe,EAAWA,EAAY,EACpE,MAED,KAAK,GAEW,KAAXl+D,OACHm9D,GAAcI,GAAQ/9Q,OAEvBw+Q,EAASh+D,KAAQ55J,EAAS35D,EAASuwR,GAAO1qR,EAAO6qR,GAAcQ,GAAWP,OAAWF,IACrF,MAED,KAAK,GACa,KAAbj2P,GAAyC,GAAtB+1P,GAAOG,KAC7Bt3Q,EAAW,IAIjB,OAAOg4Q,CACR,CAiBO,SAASM,GAASj0R,EAAOwF,EAAMupB,EAAQzd,EAAO4qD,EAAQz1D,EAAOm8P,EAAQx6P,EAAM6wC,EAAOsM,EAAUhjD,EAAQogO,GAK1G,IAJA,IAAI/9C,EAAO1oH,EAAS,EAChBu3E,EAAkB,IAAXv3E,EAAez1D,EAAQ,CAAC,IAC/Bgd,EH3EE,SAAiBzjB,GACvB,OAAOA,EAAMuC,MACd,CGyEY2xR,CAAOzgJ,GAETnxI,EAAI,EAAG2c,EAAI,EAAGjd,EAAI,EAAGM,EAAIgP,IAAShP,EAC1C,IAAK,IAAIypB,EAAI,EAAGoK,EAAIijH,GAAOp5I,EAAO4kL,EAAO,EAAGA,EAAOn9K,GAAIwX,EAAI2jP,EAAOtgQ,KAAMi0B,EAAIv2B,EAAO+rB,EAAItI,IAAQsI,GAC1FwK,EAAIpS,GAAKlF,EAAI,EAAIw0H,EAAK1nH,GAAK,IAAMoK,EAAIrhB,GAAQqhB,EAAG,OAAQs9G,EAAK1nH,QAChEktB,EAAMj3C,KAAOu0B,GAEhB,OAAOvtB,GAAKhJ,EAAOwF,EAAMupB,EAAmB,IAAXmtC,EAAew2N,GAAUtqR,EAAM6wC,EAAOsM,EAAUhjD,EAAQogO,EAC1F,CASO,SAASx+B,GAASnkM,EAAOwF,EAAMupB,EAAQ4zM,GAC7C,OAAO35N,GAAKhJ,EAAOwF,EAAMupB,EAAQ0jQ,GAAS1mR,GD9InCinR,IC8IiD55I,GAAOp5I,EAAO,GAAI,GAAI,EAAG2iO,EAClF,CAUO,SAAS9/F,GAAa7iI,EAAOwF,EAAMupB,EAAQxsB,EAAQogO,GACzD,OAAO35N,GAAKhJ,EAAOwF,EAAMupB,EAAQ4jQ,GAAav5I,GAAOp5I,EAAO,EAAGuC,GAAS62I,GAAOp5I,EAAOuC,EAAS,GAAI,GAAIA,EAAQogO,EAChH,CCtMO,IAaHwxD,GAbOC,GAAiB,8BAMjBC,GAAiB,gBAQ5B,IAAIC,IAAc,EA2CX,SAASC,GAAU38Q,GAExB,OAnCK,WACL,IAAKu8Q,KACHA,GAAe,CAAC,EACZh6C,MAAa,CACf,IAAIpiB,EAAMrvN,SAASf,cAAc,OACjCowN,EAAIpvN,UAAYyrR,GAChBr8D,EAAIrxN,MAAM+F,SAAW,QACrBsrN,EAAIrxN,MAAMu6H,WAAa,SACvB82F,EAAIrxN,MAAMhE,IAAM,UAChBgG,SAASuE,KAAKzD,YAAYuuN,GAC1B,IAAIl4M,EAAUjZ,iBAAiBmxN,GAAKl4M,SAAW,IAC/CA,EAAUA,EAAQ/K,QAAQ,KAAM,IAAIA,QAAQ,KAAM,KAG1CyF,MAAM,KAAKrY,SAAQ,SAAUoxC,GACnC,IACEkhP,EAAex3C,GADC1pM,EAAK/4B,MAAM,KACgB,GAC3C3C,EAAO48Q,EAAa,GACpBj0D,EAAOi0D,EAAa,GACtBL,GAAav8Q,GAAQ2oN,CACvB,IAGA,IAEMk0D,EAFFC,EAAiBhsR,SAASw+B,cAAc,SAASthC,OAAOwuR,GAAgB,MACxEM,IAEFJ,IAAc,EAC0C,QAAvDG,EAAwBC,EAAe7sR,kBAAkD,IAA1B4sR,GAAoCA,EAAsB1rR,YAAY2rR,IAExIhsR,SAASuE,KAAKlE,YAAYgvN,EAC5B,CAEJ,CAEE48D,KACSR,GAAav8Q,EACxB,CC9CA,IACIg9Q,GAAc,gBAKX,SAASC,GAAeC,GAE7B,OADiB/B,GAAUW,GAAQoB,GAAWjqR,IAC5BiK,QAAQ,iBAAkB,IAC9C,CAMA,SAASigR,GAAmB7uR,EAAKqoR,EAAQzC,GACvC,IAAKyC,EACH,OAAOroR,EAET,IAAI8uR,EAAgB,IAAIpvR,OAAO2oR,GAC3B0G,EAAgC,QAAjBnJ,EAAyB,UAAUlmR,OAAOovR,EAAe,KAAOA,EAanF,OAVW9uR,EAAIqU,MAAM,KAAK9L,KAAI,SAAUzM,GACtC,IAAIkzR,EACAxnC,EAAW1rP,EAAEmiB,OAAO5J,MAAM,OAG1B46Q,EAAYznC,EAAS,IAAM,GAC3B0nC,GAAgE,QAAhDF,EAAmBC,EAAUn7Q,MAAM,eAA0C,IAArBk7Q,OAA8B,EAASA,EAAiB,KAAO,GAE3I,MAAO,CADPC,EAAY,GAAGvvR,OAAOwvR,GAAaxvR,OAAOqvR,GAAcrvR,OAAOuvR,EAAU/uR,MAAMgvR,EAAY7yR,UACxEqD,OAAOw+O,GAAmBsJ,EAAStnP,MAAM,KAAKC,KAAK,IACxE,IACYA,KAAK,IACnB,CAEO,IAAIgvR,GAAa,SAASA,EAAWC,GAC1C,IAAItiP,EAASniC,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9Ew7I,EAAOx7I,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAC3ErL,MAAM,EACN+vR,gBAAiB,IAEnB/vR,EAAO6mJ,EAAK7mJ,KACZgwR,EAAanpI,EAAKmpI,WAClBD,EAAkBlpI,EAAKkpI,gBACrBhH,EAASv7O,EAAOu7O,OAClB/F,EAAQx1O,EAAOw1O,MAEfsD,GADO94O,EAAOp7B,KACCo7B,EAAO84O,cACtB2J,EAAuBziP,EAAO0iP,aAC9BA,OAAwC,IAAzBD,EAAkC,GAAKA,EAGpDX,GAFgB9hP,EAAO2iP,QAEZ,IACXC,EAAc,CAAC,EACnB,SAASC,EAAeC,GACtB,IAAIhgO,EAAgBggO,EAAUC,QAAQxH,GACtC,IAAKqH,EAAY9/N,GAAgB,CAC/B,IAKEkgO,EADeh5C,GAJCq4C,EAAWS,EAAUpvR,MAAOssC,EAAQ,CAClDxtC,MAAM,EACN+vR,gBAAiBA,IAEwB,GACjB,GAC5BK,EAAY9/N,GAAiB,cAAclwD,OAAOkwR,EAAUC,QAAQxH,IAAS3oR,OAAOowR,EACtF,CACF,CAYA,IAAIC,EAXJ,SAASC,EAAYr0B,GACnB,IAAIs0B,EAAWtlR,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GAQnF,OAPAgxP,EAAK3/P,SAAQ,SAAUoxC,GACjBrxC,MAAMqR,QAAQggC,GAChB4iP,EAAY5iP,EAAM6iP,GACT7iP,GACT6iP,EAASlzR,KAAKqwC,EAElB,IACO6iP,CACT,CACuBD,CAAYj0R,MAAMqR,QAAQgiR,GAAiBA,EAAgB,CAACA,IAiHnF,OAhHAW,EAAiB/zR,SAAQ,SAAUk0R,GAEjC,IAAI1vR,EAA+B,kBAAhB0vR,GAA6B5wR,EAAY4wR,EAAL,CAAC,EACxD,GAAqB,kBAAV1vR,EACTouR,GAAY,GAAGlvR,OAAOc,EAAO,WACxB,GAAIA,EAAM2vR,UAEfR,EAAenvR,OACV,CACL,IAAIk4P,EAAc82B,EAAar1P,QAAO,SAAUrC,EAAMs4P,GACpD,IAAIC,EACJ,OAAkB,OAAVD,QAA4B,IAAVA,GAAqD,QAAhCC,EAAeD,EAAME,aAAoC,IAAjBD,OAA0B,EAASA,EAAap1R,KAAKm1R,EAAOt4P,KAAUA,CAC/J,GAAGt3B,GAGHU,OAAOC,KAAKu3P,GAAa18P,SAAQ,SAAUgE,GACzC,IAAIlG,EAAQ4+P,EAAY14P,GACxB,GAAuB,YAAnBtC,EAAAA,GAAAA,GAAQ5D,KAAuBA,GAAkB,kBAARkG,GAA4BlG,EAAMq2R,WAtFvF,SAA+Br2R,GAC7B,MAA0B,YAAnB4D,EAAAA,GAAAA,GAAQ5D,IAAuBA,IAXvB,iBAW+CA,GAAS40R,MAAe50R,EACxF,CAoFsGy2R,CAAsBz2R,GAuC7G,CACL,IAAI4pH,EACJ,SAAS8sK,EAAYC,EAAQC,GAY3B,IAAIC,EAAYF,EAAO7hR,QAAQ,UAAU,SAAUkF,GACjD,MAAO,IAAIpU,OAAOoU,EAAMzV,cAC1B,IAGIuyR,EAAcF,EACb5H,GAAS2H,IAAkC,kBAAhBG,GAA4C,IAAhBA,IAC1DA,EAAc,GAAGlxR,OAAOkxR,EAAa,OAIxB,kBAAXH,GAA2C,OAAbC,QAAkC,IAAbA,GAAuBA,EAASP,YACrFR,EAAee,GACfE,EAAcF,EAASb,QAAQxH,IAEjCuG,GAAY,GAAGlvR,OAAOixR,EAAW,KAAKjxR,OAAOkxR,EAAa,IAC5D,CACA,IAAIC,EAAuF,QAAxEntK,EAAmB,OAAV5pH,QAA4B,IAAVA,OAAmB,EAASA,EAAMA,aAA8B,IAAX4pH,EAAoBA,EAAS5pH,EACzG,YAAnB4D,EAAAA,GAAAA,GAAQ5D,IAAiC,OAAVA,QAA4B,IAAVA,GAAoBA,EAAM40R,KAAgB3yR,MAAMqR,QAAQyjR,GAC3GA,EAAY70R,SAAQ,SAAUoxC,GAC5BojP,EAAYxwR,EAAKotC,EACnB,IAEAojP,EAAYxwR,EAAK6wR,EAErB,KA9E4H,CAC1H,IAAIC,GAAgB,EAGhBta,EAAYx2Q,EAAIie,OAEhB8yQ,GAAW,GAGVzxR,GAAQgwR,IAAejH,EACtB7R,EAAUhpK,WAAW,KAEvBsjL,GAAgB,EAGhBta,EAAYqY,GAFW,MAAdrY,EAEsB,GAGAx2Q,EAHIqoR,EAAQzC,IAKpCtmR,GAAS+oR,GAAyB,MAAd7R,GAAmC,KAAdA,IAMlDA,EAAY,GACZua,GAAW,GAEb,IAKEC,EAAel6C,GALEq4C,EAAWr1R,EAAOgzC,EAAQ,CACzCxtC,KAAMyxR,EACNzB,WAAYwB,EACZzB,gBAAiB,GAAG3vR,OAAOw+O,GAAmBmxC,GAAkB,CAAC7Y,MAEvB,GAC5Cya,EAAcD,EAAa,GAC3BE,EAAmBF,EAAa,GAClCtB,EAAch8C,GAAcA,GAAc,CAAC,EAAGg8C,GAAcwB,GAC5DtC,GAAY,GAAGlvR,OAAO82Q,GAAW92Q,OAAOuxR,EAC1C,CAwCF,GACF,CACF,IACK3xR,EAEMgjR,IAELsM,IACFA,EAAW,UAAUlvR,OAAO4iR,EAAMn5Q,KAAM,MAAMzJ,OAAOkvR,EAAU,MAE7DtM,EAAMthN,eACR0uN,EAAY,UAAUhwR,OAAO4iR,EAAMn5Q,OAASm5Q,EAAMthN,aAAaz4D,KAAI,SAAUo+D,GAC3E,MAAO,UAAUjnE,OAAOinE,EAAM,MAAMjnE,OAAO4iR,EAAMn5Q,KAAM,IACzD,IAAGhJ,KAAK,QATVyuR,EAAW,IAAIlvR,OAAOkvR,EAAU,KAY3B,CAACA,EAAUc,EACpB,EAKO,SAASyB,GAAWz/Q,EAAMk9Q,GAC/B,OAAOv0D,GAAK,GAAG36N,OAAOgS,EAAKvR,KAAK,MAAMT,OAAOkvR,GAC/C,CACA,SAASwC,KACP,OAAO,IACT,CACO,IAAIC,GAAe,QAIX,SAASC,GAAiB5jJ,EAAM6jJ,GAC7C,IAAI1tK,EAAQ6pB,EAAK7pB,MACfnyG,EAAOg8H,EAAKh8H,KACZ22Q,EAAS36I,EAAK26I,OACd/F,EAAQ50I,EAAK40I,MACb/1B,EAAQ7+G,EAAK6+G,MACbilC,EAAa9jJ,EAAK8jJ,WAClBC,EAAc/jJ,EAAK9rF,MACnBA,OAAwB,IAAhB6vO,EAAyB,EAAIA,EACnCppC,EAAoBt5B,EAAAA,WAAiB42D,IACvC+L,EAAYrpC,EAAkBqpC,UAE9B7L,GADOx9B,EAAkBspC,KACVtpC,EAAkBw9B,cACjCD,EAAev9B,EAAkBu9B,aACjCtqR,EAAY+sP,EAAkB/sP,UAC9Bs2R,EAAYvpC,EAAkBupC,UAC9BpC,EAAennC,EAAkBmnC,aACjCC,EAAUpnC,EAAkBonC,QAC5Bx5M,EAAQoyK,EAAkBpyK,MAC1B47M,EAAcxpC,EAAkBi6B,MAC9BwF,EAAWjkK,EAAMioK,UACjBtkC,EAAW,CAACsgC,GACZ+J,GACFrqC,EAASzqP,KAAK,SAEhByqP,EAASzqP,KAAKwY,MAAMiyO,EAAUtJ,GAAmBxsO,IAGjD,IAAIogR,EAAqBlK,GAIzB,IAAImK,EAAkB7I,GAAemI,GAAc7pC,GAEjD,WACE,IAAIwqC,EAAYxqC,EAASrnP,KAAK,KAG9B,GAAIkuR,GAAU2D,GAAY,CACxB,IAAIC,EDvML,SAAyBvgR,GAC9B,IAAI2oN,EAAO4zD,GAAav8Q,GACpBk9Q,EAAW,KACf,GAAIv0D,GAAQ4Z,KACV,GAAIm6C,GACFQ,EAAWT,OACN,CACL,IAAI+D,EAAS1vR,SAASw+B,cAAc,SAASthC,OAAO0lR,GAAW,MAAO1lR,OAAOuuR,GAAav8Q,GAAO,OAC7FwgR,EACFtD,EAAWsD,EAAOxvR,iBAGXurR,GAAav8Q,EAExB,CAEF,MAAO,CAACk9Q,EAAUv0D,EACpB,CCsL+B83D,CAAgBH,GACrCI,EAAoBt7C,GAAem7C,EAAkB,GACrDI,EAAsBD,EAAkB,GACxC5M,EAAY4M,EAAkB,GAChC,GAAIC,EACF,MAAO,CAACA,EAAqBvK,EAAUtC,EAAW,CAAC,EAAGgM,EAAY5vO,EAEtE,CAGA,IAAI0wO,EAAWf,IASbgB,EAAez7C,GAREq4C,GAAWmD,EAAU,CACpCjK,OAAQA,EACRzC,aAAcA,EACdtD,MAAOuP,EAAcvP,OAAQn6Q,EAC7BuJ,KAAMA,EAAKvR,KAAK,KAChBqvR,aAAcA,EACdC,QAASA,IAEiC,GAC5C+C,EAAcD,EAAa,GAC3B7C,EAAc6C,EAAa,GACzB3D,EAAWD,GAAe6D,GAC1BzK,EAAUoJ,GAAW3pC,EAAUonC,GACnC,MAAO,CAACA,EAAU9G,EAAUC,EAAS2H,EAAa8B,EAAY5vO,EAChE,IAEA,SAAUg2H,EAAO66G,GACf,IACE1K,EADUjxC,GAAel/D,EAAO,GAChB,IACb66G,GAAWf,IAAc9J,IAC5Bj7B,GAAUo7B,EAAS,CACjB9iI,KAAMmgI,IAGZ,IAEA,SAAUt+C,GACR,IAAIK,EAAQ2P,GAAehQ,EAAO,GAChC8nD,EAAWznD,EAAM,GAEjB4gD,GADI5gD,EAAM,GACAA,EAAM,IAChBuoD,EAAcvoD,EAAM,GACtB,GAAI2qD,GAAsBlD,IAAaT,GAAgB,CACrD,IAAIuE,EAAkB,CACpBztI,KAAMmgI,GACNn5B,SAAS4lC,GAAsB,QAC/BhmC,SAAUvwP,EACVqvD,SAAU/I,GAER+wO,EAA4B,oBAAVpmC,EAAuBA,IAAUA,EACnDomC,IACFD,EAAgB1mC,IAAM,CACpBO,MAAOomC,IAMX,IAAIC,EAAkB,GAClBC,EAAiB,GACrB3xR,OAAOC,KAAKuuR,GAAa1zR,SAAQ,SAAUgE,GACrCA,EAAIwtG,WAAW,UACjBolL,EAAgB71R,KAAKiD,GAErB6yR,EAAe91R,KAAKiD,EAExB,IAIA4yR,EAAgB52R,SAAQ,SAAU82R,GAChCjmC,GAAU8hC,GAAee,EAAYoD,IAAa,UAAUpzR,OAAOozR,GAAYp/C,GAAcA,GAAc,CAAC,EAAGg/C,GAAkB,CAAC,EAAG,CACnIzmC,SAAS,IAEb,IAIA,IAAIzrP,EAAQqsP,GAAU+hC,EAAU7G,EAAS2K,GACzClyR,EAAM6kR,IAAsBpvM,EAAM6uM,WAGlCtkR,EAAM66C,aAAa8pO,GAAY2C,GAS/B+K,EAAe72R,SAAQ,SAAU82R,GAC/BjmC,GAAU8hC,GAAee,EAAYoD,IAAa,WAAWpzR,OAAOozR,GAAYJ,EAClF,GACF,CACF,IACAK,EAAmBj8C,GAAei7C,EAAiB,GACnDiB,EAAiBD,EAAiB,GAClCE,EAAiBF,EAAiB,GAClCG,EAAgBH,EAAiB,GACnC,OAAO,SAAUjwR,GACf,IAAIwpP,EAIE3kB,EAHDiqD,IAAaE,GAAuBjM,EAIvCv5B,EAAyBv9B,EAAAA,cAAoB,QAASoL,GAAS,CAAC,GAAIwN,EAAQ,CAAC,GAAG50H,EAAAA,GAAAA,GAAgB40H,EAAOw9C,GAAY8N,IAAiBlgL,EAAAA,GAAAA,GAAgB40H,EAAOy9C,GAAW8N,GAAgBvrD,GAAQ,CAC5LvoL,wBAAyB,CACvB0b,OAAQk4N,MALZ1mC,EAAyBv9B,EAAAA,cAAoBqiE,GAAO,MAStD,OAAoBriE,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMu9B,EAAWxpP,EAC3E,CACF,CACO,IClXIqwR,GAAiB,SA4E5B,SA3EwB,SAA2BrmP,EAAQxjC,GACzD,IAAItJ,EAAM8sC,EAAO9sC,IACfkvG,EAASpiE,EAAOoiE,OAChB45K,EAAWh8O,EAAOg8O,SAClBH,EAAS77O,EAAO67O,OAChB9kK,EAAQ/2E,EAAO+2E,MACfuvK,EAAgBtmP,EAAOqsJ,MACvBA,OAA0B,IAAlBi6F,EAA2B,GAAKA,EACtChR,GAAcn6M,EAAAA,EAAAA,YAAW09M,IAC3Bb,EAAa1C,EAAYnsM,MAAM6uM,WAC/BxpR,EAAY8mR,EAAY9mR,UACtBwsR,EAAWjkK,EAAMioK,UACjBuH,EAAY,GAAG3zR,OAAOw+O,GAAmBpxM,EAAOp7B,MAAO,CAAC1R,EAAKm5L,EAAO2uF,IAwCxE,OAvCYoB,GAAeiK,GAAgBE,GAAW,WACpD,IAAI7H,EAAcliR,IAOhBuiR,EAAmB/0C,GANCwxC,GAAekD,EAAaxrR,EAAK,CACnDkvG,OAAQA,EACR45K,SAAUA,EACVH,OAAQA,EACRxvF,MAAOA,IAE0C,GACnD4xF,EAAcc,EAAiB,GAC/BD,EAAaC,EAAiB,GAEhC,MAAO,CAACd,EAAaa,EADPuF,GAAWkC,EAAWzH,GACM5rR,EAC5C,IAAG,SAAUmmJ,GACX,IACE4hI,EADUjxC,GAAe3wF,EAAM,GACf,GACdyhI,IACFj7B,GAAUo7B,EAAS,CACjB9iI,KAAMmgI,IAGZ,IAAG,SAAU9pB,GACX,IAAIx0B,EAAQgQ,GAAewkB,EAAO,GAChCswB,EAAa9kD,EAAM,GACnBihD,EAAUjhD,EAAM,GAClB,GAAK8kD,EAAL,CAGA,IAAIprR,EAAQqsP,GAAU++B,EAAY7D,EAAS,CACzC9iI,KAAMmgI,GACNn5B,QAAS,QACTJ,SAAUvwP,EACVqvD,UAAW,MAEbnqD,EAAM6kR,IAAsBP,EAG5BtkR,EAAM66C,aAAa8pO,GAAYnlR,EAV/B,CAWF,GAEF,EC7DA,IAAIszR,GAMmBA,GAAmB,CAAC,GAAGvgL,EAAAA,GAAAA,GAAgBugL,GAAkBjC,IFmX3D,SAAiBp7M,EAAOs9M,EAAcn1R,GACzD,IAAIyzI,EAASilG,GAAe7gK,EAAO,GACjC24M,EAAW/8I,EAAO,GAClBi2I,EAAWj2I,EAAO,GAClBk2I,EAAUl2I,EAAO,GACjB69I,EAAc79I,EAAO,GACrB2/I,EAAa3/I,EAAO,GACpBjwF,EAAQiwF,EAAO,GAEfl2G,GADUv9B,GAAW,CAAC,GACRu9B,MAGhB,GAAI61P,EACF,OAAO,KAET,IAAIgC,EAAe5E,EAIf6E,EAAc,CAChB,gBAAiB,eACjB,mBAAoB,GAAG/zR,OAAOkiD,IAsBhC,OAlBA4xO,EAAe3L,GAAW+G,EAAU9G,EAAUC,EAAS0L,EAAa93P,GAGhE+zP,GACFxuR,OAAOC,KAAKuuR,GAAa1zR,SAAQ,SAAU82R,GAEzC,IAAKS,EAAaT,GAAY,CAC5BS,EAAaT,IAAa,EAC1B,IACIY,EAAkB7L,GADD8G,GAAee,EAAYoD,IACChL,EAAU,WAAWpoR,OAAOozR,GAAYW,EAAa93P,GAClGm3P,EAAUtlL,WAAW,UACvBgmL,EAAeE,EAAkBF,EAEjCA,GAAgBE,CAEpB,CACF,IAEK,CAAC9xO,EAAOmmO,EAASyL,EAC1B,KE/ZkHzgL,EAAAA,GAAAA,GAAgBugL,GAAkB/I,IVqI/H,SAAiBt0M,EAAOs9M,EAAcn1R,GACzD,IAAIyzI,EAASilG,GAAe7gK,EAAO,GACjC09M,EAAY9hJ,EAAO,GACnB+8I,EAAW/8I,EAAO,GAClB+hJ,EAAY/hJ,EAAO,GAEnBl2G,GADUv9B,GAAW,CAAC,GACRu9B,MAChB,IAAKizP,EACH,OAAO,KAET,IAAI7G,EAAU4L,EAAU7H,UAUxB,MAAO,EATK,IASG/D,EADCF,GAAW+G,EAAUgF,EAAW7L,EAJ9B,CAChB,gBAAiB,eACjB,mBAAoB,GAAGroR,QANb,MAQ0Di8B,GAExE,KU1JsLo3E,EAAAA,GAAAA,GAAgBugL,GAAkBH,IDwDnM,SAAiBl9M,EAAOs9M,EAAcn1R,GACzD,IAAIyzI,EAASilG,GAAe7gK,EAAO,GACjC24M,EAAW/8I,EAAO,GAClBk2I,EAAUl2I,EAAO,GACjB+hJ,EAAY/hJ,EAAO,GAEnBl2G,GADUv9B,GAAW,CAAC,GACRu9B,MAChB,IAAKizP,EACH,OAAO,KAWT,MAAO,EATK,IASG7G,EADCF,GAAW+G,EAAUgF,EAAW7L,EAJ9B,CAChB,gBAAiB,eACjB,mBAAoB,GAAGroR,QANb,MAQ0Di8B,GAExE,IE/DA,SAlB4B,WAC1B,SAASk4P,EAAS1qR,EAAM3I,GACtB0xO,GAAgBh3O,KAAM24R,IACtB9gL,EAAAA,GAAAA,GAAgB73G,KAAM,YAAQ,IAC9B63G,EAAAA,GAAAA,GAAgB73G,KAAM,aAAS,IAC/B63G,EAAAA,GAAAA,GAAgB73G,KAAM,aAAa,GACnCA,KAAKiO,KAAOA,EACZjO,KAAKsF,MAAQA,CACf,CAQA,OAPA2xO,GAAa0hD,EAAU,CAAC,CACtB7zR,IAAK,UACLlG,MAAO,WACL,IAAIuuR,EAAS19Q,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GACjF,OAAO09Q,EAAS,GAAG3oR,OAAO2oR,EAAQ,KAAK3oR,OAAOxE,KAAKiO,MAAQjO,KAAKiO,IAClE,KAEK0qR,CACT,CAjB4B,GCuB5B,SAASC,GAAQn4B,GAEf,OADAA,EAAKo4B,UAAW,EACTp4B,CACT,CAyBem4B,GAAQ,CAAC,YAAa,iBACjBA,GAAQ,CAAC,cACXA,GAAQ,CAAC,iBACXA,GAAQ,CAAC,aAAc,gBAClBA,GAAQ,CAAC,eACXA,GAAQ,CAAC,gBCtD5B,SAHsC3hD,IAAa,SAAS6hD,IAC1D9hD,GAAgBh3O,KAAM84R,EACxB,ICIA,IAAIlO,GAAY,YACZ1iQ,GAAS,IAAIvF,OAAOioQ,GAAW,KACnC,SAAS5nR,GAAKpE,GACZ,MAAqB,kBAAVA,EACF,GAAG4F,OAAO5F,GAAO4F,OAAOomR,IAE1BhsR,CACT,CACA,IAAIm6R,GAA6B,SAAUC,GACzCliD,GAAUiiD,EAAeC,GACzB,IAAI3+P,EAAS08M,GAAagiD,GAC1B,SAASA,EAAcl+C,EAAKo+C,GAC1B,IAAIx+P,EACJu8M,GAAgBh3O,KAAM+4R,GACtBt+P,EAAQJ,EAAOt6B,KAAKC,OACpB63G,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,SAAU,KACzDo9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,sBAAkB,IACjEo9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,mBAAe,GAC9D,IAAIy+P,GAAU12R,EAAAA,GAAAA,GAAQq4O,GAStB,OARApgN,EAAMw+P,eAAiBA,EACnBp+C,aAAek+C,EACjBt+P,EAAMxpB,OAAS,IAAIzM,OAAOq2O,EAAI5pO,OAAQ,KACjB,WAAZioR,EACTz+P,EAAMxpB,OAASjO,GAAK63O,GACC,WAAZq+C,IACTz+P,EAAMxpB,OAAS4pO,GAEVpgN,CACT,CA6EA,OA5EAw8M,GAAa8hD,EAAe,CAAC,CAC3Bj0R,IAAK,MACLlG,MAAO,SAAai8O,GAOlB,OANIA,aAAek+C,EACjB/4R,KAAKiR,OAAS,GAAGzM,OAAOxE,KAAKiR,OAAQ,OAAOzM,OAAOq2O,EAAIs+C,aAC/B,kBAARt+C,GAAmC,kBAARA,IAC3C76O,KAAKiR,OAAS,GAAGzM,OAAOxE,KAAKiR,OAAQ,OAAOzM,OAAOxB,GAAK63O,KAE1D76O,KAAKo5R,aAAc,EACZp5R,IACT,GACC,CACD8E,IAAK,MACLlG,MAAO,SAAai8O,GAOlB,OANIA,aAAek+C,EACjB/4R,KAAKiR,OAAS,GAAGzM,OAAOxE,KAAKiR,OAAQ,OAAOzM,OAAOq2O,EAAIs+C,aAC/B,kBAARt+C,GAAmC,kBAARA,IAC3C76O,KAAKiR,OAAS,GAAGzM,OAAOxE,KAAKiR,OAAQ,OAAOzM,OAAOxB,GAAK63O,KAE1D76O,KAAKo5R,aAAc,EACZp5R,IACT,GACC,CACD8E,IAAK,MACLlG,MAAO,SAAai8O,GAUlB,OATI76O,KAAKo5R,cACPp5R,KAAKiR,OAAS,IAAIzM,OAAOxE,KAAKiR,OAAQ,MAEpC4pO,aAAek+C,EACjB/4R,KAAKiR,OAAS,GAAGzM,OAAOxE,KAAKiR,OAAQ,OAAOzM,OAAOq2O,EAAIs+C,WAAU,IACzC,kBAARt+C,GAAmC,kBAARA,IAC3C76O,KAAKiR,OAAS,GAAGzM,OAAOxE,KAAKiR,OAAQ,OAAOzM,OAAOq2O,IAErD76O,KAAKo5R,aAAc,EACZp5R,IACT,GACC,CACD8E,IAAK,MACLlG,MAAO,SAAai8O,GAUlB,OATI76O,KAAKo5R,cACPp5R,KAAKiR,OAAS,IAAIzM,OAAOxE,KAAKiR,OAAQ,MAEpC4pO,aAAek+C,EACjB/4R,KAAKiR,OAAS,GAAGzM,OAAOxE,KAAKiR,OAAQ,OAAOzM,OAAOq2O,EAAIs+C,WAAU,IACzC,kBAARt+C,GAAmC,kBAARA,IAC3C76O,KAAKiR,OAAS,GAAGzM,OAAOxE,KAAKiR,OAAQ,OAAOzM,OAAOq2O,IAErD76O,KAAKo5R,aAAc,EACZp5R,IACT,GACC,CACD8E,IAAK,YACLlG,MAAO,SAAmBy6R,GACxB,OAAOr5R,KAAKo5R,aAAeC,EAAQ,IAAI70R,OAAOxE,KAAKiR,OAAQ,KAAOjR,KAAKiR,MACzE,GACC,CACDnM,IAAK,QACLlG,MAAO,SAAesE,GACpB,IAAI88P,EAAShgQ,KAEXs5R,GADSp2R,GAAW,CAAC,GACNF,KACbu2R,GAAa,EASjB,MARuB,mBAAZD,EACTC,EAAaD,EACJz4R,MAAM8J,KAAK3K,KAAKi5R,gBAAgB7nR,MAAK,SAAUu8Q,GACxD,OAAO3tB,EAAO/uP,OAAOd,SAASw9Q,EAChC,MACE4L,GAAa,GAEfv5R,KAAKiR,OAASjR,KAAKiR,OAAOyC,QAAQwU,GAAQqxQ,EAAa,KAAO,IAC9B,qBAArBv5R,KAAKo5R,YACP,QAAQ50R,OAAOxE,KAAKiR,OAAQ,KAE9BjR,KAAKiR,MACd,KAEK8nR,CACT,CAlGiC,CAkG/BD,IC5CF,SA/DiC,SAAUE,GACzCliD,GAAU0iD,EAAeR,GACzB,IAAI3+P,EAAS08M,GAAayiD,GAC1B,SAASA,EAAc3+C,GACrB,IAAIpgN,EASJ,OARAu8M,GAAgBh3O,KAAMw5R,GACtB/+P,EAAQJ,EAAOt6B,KAAKC,OACpB63G,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,SAAU,GACrDogN,aAAe2+C,EACjB/+P,EAAMxpB,OAAS4pO,EAAI5pO,OACK,kBAAR4pO,IAChBpgN,EAAMxpB,OAAS4pO,GAEVpgN,CACT,CA+CA,OA9CAw8M,GAAauiD,EAAe,CAAC,CAC3B10R,IAAK,MACLlG,MAAO,SAAai8O,GAMlB,OALIA,aAAe2+C,EACjBx5R,KAAKiR,QAAU4pO,EAAI5pO,OACK,kBAAR4pO,IAChB76O,KAAKiR,QAAU4pO,GAEV76O,IACT,GACC,CACD8E,IAAK,MACLlG,MAAO,SAAai8O,GAMlB,OALIA,aAAe2+C,EACjBx5R,KAAKiR,QAAU4pO,EAAI5pO,OACK,kBAAR4pO,IAChB76O,KAAKiR,QAAU4pO,GAEV76O,IACT,GACC,CACD8E,IAAK,MACLlG,MAAO,SAAai8O,GAMlB,OALIA,aAAe2+C,EACjBx5R,KAAKiR,QAAU4pO,EAAI5pO,OACK,kBAAR4pO,IAChB76O,KAAKiR,QAAU4pO,GAEV76O,IACT,GACC,CACD8E,IAAK,MACLlG,MAAO,SAAai8O,GAMlB,OALIA,aAAe2+C,EACjBx5R,KAAKiR,QAAU4pO,EAAI5pO,OACK,kBAAR4pO,IAChB76O,KAAKiR,QAAU4pO,GAEV76O,IACT,GACC,CACD8E,IAAK,QACLlG,MAAO,WACL,OAAOoB,KAAKiR,MACd,KAEKuoR,CACT,CA9DiC,CA8D/BV,IC7DF,SANc,SAAiB9xR,EAAMiyR,GACnC,IAAIQ,EAAsB,QAATzyR,EAAiB+xR,GAAgBS,GAClD,OAAO,SAAU3+C,GACf,OAAO,IAAI4+C,EAAW5+C,EAAKo+C,EAC7B,CACF,ECJA,SAHuB,SAA0BrvD,EAAW51H,GAC1D,MAAO,GAAGxvG,OAAO,CAACwvG,EAAQ41H,EAAUl2N,QAAQ,yBAA0B,SAASA,QAAQ,kBAAmB,UAAUvC,OAAOY,SAAS9M,KAAK,KAC3I,EC8BA,SA7BA,SAA2B2kO,EAAWjhH,EAAO+wK,EAAcx2R,GACzD,IAAIy2R,EAAcnhD,GAAc,CAAC,EAAG7vH,EAAMihH,IAC1B,OAAZ1mO,QAAgC,IAAZA,GAAsBA,EAAQ02R,kBAC7B12R,EAAQ02R,iBACd94R,SAAQ,SAAUmqJ,GACjC,IASM4uI,EATFn9G,EAAQk/D,GAAe3wF,EAAM,GAC/B6uI,EAAcp9G,EAAM,GACpBq9G,EAAcr9G,EAAM,IAMF,OAAhBi9G,QAAwC,IAAhBA,GAA0BA,EAAYG,IAAgC,OAAhBH,QAAwC,IAAhBA,GAA0BA,EAAYI,MAEvF,QAAtDF,EAAwBF,EAAYI,UAAoD,IAA1BF,IAA2DF,EAAYI,GAA+B,OAAhBJ,QAAwC,IAAhBA,OAAyB,EAASA,EAAYG,IAE/N,IAEF,IAAIjK,EAAcr3C,GAAcA,GAAc,CAAC,EAAGkhD,GAAeC,GAQjE,OALA3zR,OAAOC,KAAK4pR,GAAa/uR,SAAQ,SAAUgE,GACrC+qR,EAAY/qR,KAAS6jH,EAAM7jH,WACtB+qR,EAAY/qR,EAEvB,IACO+qR,CACT,EC7BA,IAAImK,GAAwF,qBAAtBC,kBAClEC,IAAY,EAMT,SAAS5xL,KACd,IAAK,IAAIgoI,EAAO7gO,UAAUtO,OAAQg5R,EAAO,IAAIt5R,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E4pD,EAAK5pD,GAAQ9gO,UAAU8gO,GAGzB,IAAKypD,GACH,OAAOh0R,OAAOoD,OAAOiR,MAAMrU,OAAQ,CAAC,CAAC,GAAGxB,OAAO21R,IAEjDD,IAAY,EACZ,IAAI7tH,EAAM,CAAC,EAiBX,OAhBA8tH,EAAKr5R,SAAQ,SAAU2B,GACA,YAAjBD,EAAAA,GAAAA,GAAQC,IAGDuD,OAAOC,KAAKxD,GAClB3B,SAAQ,SAAUgE,GACrBkB,OAAOgN,eAAeq5J,EAAKvnK,EAAK,CAC9BsK,cAAc,EACdkF,YAAY,EACZ9G,IAAK,WACH,OAAO/K,EAAIqC,EACb,GAEJ,GACF,IACAo1R,IAAY,EACL7tH,CACT,CAGO,IAAI+tH,GAAY,CAAC,EAMxB,SAASxsQ,KAAQ,CAgCjB,SA7BqB,SAAwB+6F,GAC3C,IAAIqmK,EACA93I,EAAQvuB,EACRz9F,EAAQ0C,GAoBZ,OAnBIosQ,IAAoC,qBAAVK,QAC5BrL,EAAY,IAAIl0O,IAChBo8F,EAAQ,IAAImjJ,MAAM1xK,EAAO,CACvBn7G,IAAK,SAAa/K,EAAKpC,GAEnB,IAAIi6R,EADFJ,KAE2B,QAA5BI,EAAatL,SAAsC,IAAfsL,GAAyBA,EAAW9kQ,IAAIn1B,IAE/E,OAAOoC,EAAIpC,EACb,IAEF6qB,EAAQ,SAAeouB,EAAeihP,GACpC,IAAIC,EACJJ,GAAU9gP,GAAiB,CACzB5iC,OAAQ7V,MAAM8J,KAAKqkR,GACnBplD,UAAW4O,GAAcA,GAAc,CAAC,EAA0D,QAAtDgiD,EAAwBJ,GAAU9gP,UAAsD,IAA1BkhP,OAAmC,EAASA,EAAsB5wD,WAAY2wD,GAE5L,GAEK,CACL5xK,MAAOuuB,EACPjxI,KAAM+oR,EACN9jQ,MAAOA,EAEX,ECpEA,SAPA,SAAkC0+M,EAAWjhH,EAAO8xK,GAEhD,IAAIC,EADN,MAA+B,oBAApBD,EAEFA,EAAgBE,GAAWhyK,EAAiD,QAAzC+xK,EAAmB/xK,EAAMihH,UAA6C,IAArB8wD,EAA8BA,EAAmB,CAAC,IAEpH,OAApBD,QAAgD,IAApBA,EAA6BA,EAAkB,CAAC,CACrF,ECoBA,SA1BA,SAAmBzzR,GACjB,MAAa,OAATA,EACK,CACLgc,IAAKxhB,KAAKwhB,IACVC,IAAKzhB,KAAKyhB,KAGP,CACLD,IAAK,WACH,IAAK,IAAIstN,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAEzB,MAAO,OAAO/rO,OAAO2lB,EAAK9c,KAAI,SAAUzO,GACtC,OAAOoE,GAAKpE,EACd,IAAGqG,KAAK,KAAM,IAChB,EACAge,IAAK,WACH,IAAK,IAAIytN,EAAQjhO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAM6vO,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFxmN,EAAKwmN,GAASlhO,UAAUkhO,GAE1B,MAAO,OAAOnsO,OAAO2lB,EAAK9c,KAAI,SAAUzO,GACtC,OAAOoE,GAAKpE,EACd,IAAGqG,KAAK,KAAM,IAChB,EAEJ,ECrBA,IAMI21R,GAA2B,WAC7B,SAASA,IACP5jD,GAAgBh3O,KAAM46R,IACtB/iL,EAAAA,GAAAA,GAAgB73G,KAAM,MAAO,IAAI+xC,MAEjC8lE,EAAAA,GAAAA,GAAgB73G,KAAM,cAAe,IAAI0b,UACzCm8F,EAAAA,GAAAA,GAAgB73G,KAAM,SAAU,IAChC63G,EAAAA,GAAAA,GAAgB73G,KAAM,iBAAkB,IAAI+xC,MAE5C8lE,EAAAA,GAAAA,GAAgB73G,KAAM,aAAc,EACtC,CA4DA,OA3DAi3O,GAAa2jD,EAAa,CAAC,CACzB91R,IAAK,MACLlG,MAAO,SAAaqH,EAAMrH,GAExBoB,KAAKkuF,QAGL,IAAI2sM,EAAe76R,KAAK86R,gBAAgB70R,GACxCjG,KAAKqN,IAAI1D,IAAIkxR,EAAcj8R,GAC3BoB,KAAK+6R,eAAepxR,IAAIkxR,EAAc1kQ,KAAKw8B,MAC7C,GACC,CACD7tD,IAAK,MACLlG,MAAO,SAAaqH,GAClB,IAAI40R,EAAe76R,KAAK86R,gBAAgB70R,GACpC80E,EAAQ/6E,KAAKqN,IAAIG,IAAIqtR,GAGzB,OAFA76R,KAAK+6R,eAAepxR,IAAIkxR,EAAc1kQ,KAAKw8B,OAC3C3yD,KAAKg7R,YAAc,EACZjgN,CACT,GACC,CACDj2E,IAAK,kBACLlG,MAAO,SAAyBqH,GAC9B,IAAIw0B,EAAQz6B,KAOZ,OANUiG,EAAKoH,KAAI,SAAUvI,GAC3B,OAAIA,GAAwB,YAAjBtC,EAAAA,GAAAA,GAAQsC,GACV,OAAON,OAAOi2B,EAAMwgQ,YAAYn2R,IAElC,GAAGN,QAAOhC,EAAAA,GAAAA,GAAQsC,GAAM,KAAKN,OAAOM,EAC7C,IACWG,KAAK,IAClB,GACC,CACDH,IAAK,cACLlG,MAAO,SAAqB6D,GAC1B,GAAIzC,KAAKk7R,YAAYroR,IAAIpQ,GACvB,OAAOzC,KAAKk7R,YAAY1tR,IAAI/K,GAE9B,IAAIghB,EAAKzjB,KAAKm7R,OAGd,OAFAn7R,KAAKk7R,YAAYvxR,IAAIlH,EAAKghB,GAC1BzjB,KAAKm7R,QAAU,EACR13Q,CACT,GACC,CACD3e,IAAK,QACLlG,MAAO,WACL,IAAIohQ,EAAShgQ,KACb,GAAIA,KAAKg7R,WAAa,IAAO,CAC3B,IAAIroO,EAAMx8B,KAAKw8B,MACf3yD,KAAK+6R,eAAej6R,SAAQ,SAAUs6R,EAAMt2R,GACtC6tD,EAAMyoO,EAnEH,MAoELp7B,EAAO3yP,IAAI0hD,OAAOjqD,GAClBk7P,EAAO+6B,eAAehsO,OAAOjqD,GAEjC,IACA9E,KAAKg7R,WAAa,CACpB,CACF,KAEKJ,CACT,CAvE+B,GAwE3BS,GAAY,IAAIT,GAgBpB,SAXA,SAAuBngD,EAAQhvK,GAC7B,OAAOooJ,EAAAA,SAAc,WACnB,IAAIynE,EAAcD,GAAU7tR,IAAIi+D,GAChC,GAAI6vN,EACF,OAAOA,EAET,IAAIrkM,EAAWwjJ,IAEf,OADA4gD,GAAU1xR,IAAI8hE,EAAMwrB,GACbA,CACT,GAAGxrB,EACL,EC5FA,SAHoB,WAClB,MAAO,CAAC,CACV,EC+OA,SAtOA,SAAuB75B,GAErB,IAAI2pP,EAAiB3pP,EAAO4pP,OAC1BA,OAA4B,IAAnBD,EAA4BE,GAAgBF,EACrDG,EAAW9pP,EAAO8pP,SAClBC,EAAY/pP,EAAO+pP,UACnBC,EAAiBhqP,EAAOgqP,eACxBC,EAAiBjqP,EAAOiqP,eACxBC,EAAkBlqP,EAAOkqP,gBAkF3B,SAASC,EAAsBziP,EAAe+8O,EAASoE,GACrD,IAAIv3R,EAAUuM,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Ey1B,EAAQrkC,MAAMqR,QAAQonC,GAAiBA,EAAgB,CAACA,EAAeA,GAEzEswL,EADWgS,GAAe12M,EAAO,GACd,GACjB82P,EAAkB92P,EAAMjgC,KAAK,KAC7Bg3R,EAAcrqP,EAAOw1O,OAAS,CAChCn5Q,KAAM,QAIR,OAAO,SAAUqrO,GACf,IAAI4iD,EAAUzsR,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK6pO,EAC9E6iD,EAAaT,IACfjzP,EAAQ0zP,EAAW1zP,MACnBgwP,EAAY0D,EAAW1D,UACvBtL,EAASgP,EAAWhP,OACpBxkK,EAAQwzK,EAAWxzK,MACnBglK,EAASwO,EAAWxO,OAClByO,EAAaT,IACfU,EAAgBD,EAAWC,cAC3BnT,EAAgBkT,EAAWlT,cACzBp4B,EAAM0qC,IACNx0R,EAAO2mR,EAAS,MAAQ,KAGxB3K,EAAOsZ,IAAc,WACvB,IAAIrD,EAAiB,IAAIn+O,IASzB,OARI6yO,GACF3nR,OAAOC,KAAK/C,EAAQ0qR,UAAY,CAAC,GAAG9sR,SAAQ,SAAUgE,GAGpDm0R,EAAezjQ,IAAIw3P,GAAaloR,EAAK6oR,EAAO35K,SAC5CilL,EAAezjQ,IAAIw3P,GAAaloR,EAAKy3R,GAAiB3yD,EAAW+jD,EAAO35K,SAC1E,IAEKwoL,GAAQx1R,EAAMiyR,EACvB,GAAG,CAACjyR,EAAM4iO,EAAsB,OAAX+jD,QAA8B,IAAXA,OAAoB,EAASA,EAAO35K,SACxEyoL,EAAaC,GAAU11R,GACzBgc,EAAMy5Q,EAAWz5Q,IACjBC,EAAMw5Q,EAAWx5Q,IAGf05Q,EAAe,CACjBl0P,MAAOA,EACPkgF,MAAOA,EACPwkK,OAAQA,EACR97B,MAAO,WACL,OAAOP,EAAIO,KACb,EACAilC,WAAYpzR,EAAQozR,WACpBlP,MAAO6U,EAEPv1O,MAAOxjD,EAAQwjD,QAAU,KA2D3B,MAvD8B,oBAAnBk1O,GAETxF,GAAiB59C,GAAcA,GAAc,CAAC,EAAGmkD,GAAe,CAAC,EAAG,CAClErG,YAAY,EACZ9/Q,KAAM,CAAC,SAAU6lR,MACf,WACF,OAAOT,EAAejzK,EAAO,CAC3B3U,OAAQ,CACNqoL,cAAeA,EACfnT,cAAeA,GAEjBp4B,IAAKA,GAET,IA0CK,CAxCOslC,GAAiB59C,GAAcA,GAAc,CAAC,EAAGmkD,GAAe,CAAC,EAAG,CAChFnmR,KAAM,CAACwlR,EAAiB1iD,EAAW4vC,MACjC,WACF,IAA4B,IAAxBhmR,EAAQ05R,YACV,MAAO,GAET,IAAIC,EAAkBC,GAAen0K,GACnCo0K,EAAaF,EAAgBl0K,MAC7Bz9F,EAAQ2xQ,EAAgB3xQ,MACtB8xQ,EAAwBC,GAAyBrzD,EAAW6uD,EAAWgC,GACvEyC,EAAe,IAAI14R,OAAO80O,GAC1BihD,EAAiB4C,GAAkBvzD,EAAW6uD,EAAWuE,EAAuB,CAClFpD,iBAAkB12R,EAAQ02R,mBAExBjM,GAAUqP,GAA4D,YAAnCx6R,EAAAA,GAAAA,GAAQw6R,IAC7Ch3R,OAAOC,KAAK+2R,GAAuBl8R,SAAQ,SAAUgE,GACnDk4R,EAAsBl4R,GAAO,OAAON,OAAOwoR,GAAaloR,EAAKy3R,GAAiB3yD,EAAW+jD,EAAO35K,SAAU,IAC5G,IAEF,IAAI67K,EAAc8K,GAAWoC,EAAY,CACvCG,aAAcA,EACd5jD,UAAWA,EACX8jD,QAAS,IAAI54R,OAAO0kR,GACpBmU,OAAQ,IAAI74R,OAAO63R,GACnBrZ,KAAMA,EAENhgQ,IAAKA,EAELC,IAAKA,GACJ0qQ,EAASqP,EAAwBzC,GAChC+C,EAAqBjH,EAAQxG,EAAa,CAC5C1C,OAAQA,EACR7zC,UAAWA,EACX+iD,cAAeA,EACfnT,cAAeA,IAEjBh+P,EAAM0+M,EAAW2wD,GACjB,IAAIgD,EAAwC,oBAAnB1B,EAAgCA,EAAehM,EAAav2C,EAAW4iD,EAASh5R,EAAQs6R,WAAa,KAC9H,MAAO,EAAwB,IAAvBt6R,EAAQu6R,WAAuB,KAAOF,EAAaD,EAC7D,IACiBnQ,EACnB,CACF,CAoBA,MAAO,CACLuQ,cAxNF,SAAuB9zD,EAAWysD,EAASoE,EAAiBv3R,GAC1D,IAAIo2C,EAAgBz4C,MAAMqR,QAAQ03N,GAAaA,EAAU,GAAKA,EAC9D,SAAS+zD,EAAY74R,GACnB,MAAO,GAAGN,OAAOyC,OAAOqyC,IAAgB90C,OAAOM,EAAIE,MAAM,EAAG,GAAGkuB,eAAe1uB,OAAOM,EAAIE,MAAM,GACjG,CAGA,IAAI44R,GAA8B,OAAZ16R,QAAgC,IAAZA,OAAqB,EAASA,EAAQ0qR,WAAa,CAAC,EAE1FiQ,EAAerlD,GAAcA,GAAc,CAAC,EADI,oBAApBsjD,EAAiCA,EAAgBlyD,GAAa,CAAC,GACvB,CAAC,GAAG/xH,EAAAA,GAAAA,GAAgB,CAAC,EAAG8lL,EAAY,gBAAgB,IAC5H33R,OAAOC,KAAK23R,GAAgB98R,SAAQ,SAAUgE,GAC5C+4R,EAAaF,EAAY74R,IAAQ84R,EAAe94R,EAClD,IAGA,IAAIg5R,EAAgBtlD,GAAcA,GAAc,CAAC,EAAGt1O,GAAU,CAAC,EAAG,CAChE0qR,SAAUiQ,EACVF,YAAaA,IAIXI,EAAWhC,EAAsBnyD,EAAWysD,EAASoE,EAAiBqD,GACtEE,EAaN,SAA2Bp0D,EAAW6wD,EAAiBv3R,GACrD,IAAI26R,EAAe36R,EAAQ0qR,SACzBqQ,EAAuB/6R,EAAQ05R,YAC/BA,OAAuC,IAAzBqB,GAAyCA,EACvDN,EAAcz6R,EAAQy6R,YACtBlQ,EAASvqR,EAAQuqR,OACfyQ,EAAiB,SAAwBjzI,GAC3C,IAAIixI,EAAUjxI,EAAKixI,QACjBiC,EAAclzI,EAAK0iI,OACnBA,OAAyB,IAAhBwQ,EAAyB,CAAC,EAAIA,EAEvC1F,EADciD,IACQjD,UAoBxB,OAnBA2F,GAAkB,CAChB5nR,KAAM,CAACozN,GACP51H,OAAQ25K,EAAO35K,OACflvG,IAAK6oR,EAAO7oR,IACZ8oR,SAAUiQ,EACVpQ,OAAQA,EACR9kK,MAAO8vK,EACPx6F,MAAOi+F,IACN,WACD,IAAIxC,EAAeuD,GAAyBrzD,EAAW6uD,EAAWgC,GAC9DF,EAAiB4C,GAAkBvzD,EAAW6uD,EAAWiB,EAAc,CACzEE,iBAA8B,OAAZ12R,QAAgC,IAAZA,OAAqB,EAASA,EAAQ02R,mBAM9E,OAJA5zR,OAAOC,KAAKyzR,GAAc54R,SAAQ,SAAUgE,GAC1Cy1R,EAAeoD,EAAY74R,IAAQy1R,EAAez1R,UAC3Cy1R,EAAez1R,EACxB,IACOy1R,CACT,IACO,IACT,EACIyD,EAAY,SAAmB9B,GACjC,IACEvO,EADe+N,IACK/N,OACtB,MAAO,CAAC,SAAU/lR,GAChB,OAAOg1R,GAAejP,EAAsB95D,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoBqqE,EAAgB,CACrIhC,QAASA,EACTvO,OAAQA,EACR/jD,UAAWA,IACThiO,GAAQA,CACd,EAAc,OAAX+lR,QAA8B,IAAXA,OAAoB,EAASA,EAAO7oR,IAC5D,EACA,OAAOk5R,CACT,CA1DkBK,CAAkB/kP,EAAemhP,EAAiBqD,GAClE,OAAO,SAAUxkD,GACf,IAAI4iD,EAAUzsR,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK6pO,EAGhF6zC,EADavxC,GADCmiD,EAASzkD,EAAW4iD,GACK,GACnB,GAEpBoC,EAAc1iD,GADCoiD,EAAU9B,GACgB,GAG3C,MAAO,CAFQoC,EAAY,GAEPnR,EADNmR,EAAY,GAE5B,CACF,EAuLEC,qBArBF,SAA8BjlP,EAAe+8O,EAASoE,GACpD,IACIsD,EAAWhC,EAAsBziP,EAAe+8O,EAASoE,EAAiBjiD,GAAc,CAC1FilD,YAAY,EAEZ/2O,OAAQ,KAJIj3C,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,IAgBnF,OAVsB,SAAyBitK,GAC7C,IAAI48D,EAAY58D,EAAM48D,UACpBklD,EAAgB9hH,EAAMw/G,QAGxB,OADA6B,EAASzkD,OADqB,IAAlBklD,EAA2BllD,EAAYklD,GAE5C,IACT,CAKF,EAIEzC,sBAAuBA,EAE3B,EChPa0C,GAAe,CAC1BnzR,SAAU,SACV+1I,WAAY,SACZq9I,aAAc,YAEHC,GAAiB,SAAUh2K,GACtC,IAAIi2K,EAAwBnvR,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAC3F,MAAO,CACL2kO,UAAW,aACXxyO,OAAQ,EACR2/B,QAAS,EACTN,MAAO0nF,EAAMk2K,UACbzhQ,SAAUurF,EAAMvrF,SAEhBE,WAAYqrF,EAAMrrF,WAClBwhQ,UAAW,OAEX/7P,WAAY67P,EAAwB,UAAYj2K,EAAM5lF,WAE1D,EAkCag8P,GAAep2K,IAAS,CACnCzuG,EAAG,CACD+mB,MAAO0nF,EAAMq2K,UACbj9J,eAAgBpZ,EAAMs2K,eACtBxzR,gBAAiB,cAEjBgqM,QAAS,OACTz7K,OAAQ,UACRu2B,WAAY,SAASo4D,EAAMu2K,qBAC3B,+BAAgC,UAEhC,UAAW,CACTj+P,MAAO0nF,EAAMw2K,gBAEf,WAAY,CACVl+P,MAAO0nF,EAAMy2K,iBAEf,oBAAqB,CACnBr9J,eAAgBpZ,EAAM02K,oBACtB5pF,QAAS,GAGX,UAAW,CACT1zE,eAAgBpZ,EAAM22K,oBACtB7pF,QAAS,GAEX,cAAe,CACbx0K,MAAO0nF,EAAM42K,kBACbvlQ,OAAQ,kBA0BDwlQ,GAAkBA,CAAC72K,EAAO7tD,KAAW,CAChD26I,QAAS,GAAGzyM,GAAK2lH,EAAM82K,yBAAyB92K,EAAM+2K,qBACtDC,cAA0B,OAAX7kO,QAA8B,IAAXA,EAAoBA,EAAS,EAC/DvK,WAAY,kCAEDqvO,GAAgBA,CAACj3K,EAAO7tD,KAAW,CAC9C,kBAAmB90D,OAAOoD,OAAO,CAAC,EAAGo2R,GAAgB72K,EAAO7tD,MAEjD+kO,GAAe3W,IAAiB,CAC3C,CAAC,IAAIA,KAAkBljR,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAhG7B,CACvB5C,QAAS,cACTs5R,WAAY,SACZ7+P,MAAO,UACPlB,UAAW,SACXzC,WAAY,EACZoF,UAAW,SACXs8F,cAAe,OAEfr8F,cAAe,WACfo9P,cAAe,qBACf,yBAA0B,cAC1B,0BAA2B,YAC3B,MAAO,CACLziQ,WAAY,GAEd4pG,IAAK,CACH1gI,QAAS,kBA+E0D,CACnE,CAAC,IAAI0iR,MAAkBA,UAAuB,CAC5C1iR,QAAS,aAIFw5R,GAAgBr3K,GAAS3iH,OAAOoD,OAAOpD,OAAOoD,OAAO,CAGhE63B,MAAO0nF,EAAMq2K,UACbj9J,eAAgBpZ,EAAMs2K,eACtBxpF,QAAS,OACTz7K,OAAQ,UACRu2B,WAAY,OAAOo4D,EAAMu2K,qBACzBpqJ,OAAQ,EACRvzG,QAAS,EACTi6F,WAAY,OACZ6uB,WAAY,QACXu1I,GAAcj3K,IAAS,CACxB,mBAAoB,CAClB1nF,MAAO0nF,EAAMw2K,gBAEf,WAAY,CACVl+P,MAAO0nF,EAAMy2K,mBC9IJa,GAAsB,CACjChyK,KAAM,UACNu+D,OAAQ,UACR7F,KAAM,UACNz4D,MAAO,UACPq8D,QAAS,UAIT8B,KAAM,UACNl+D,IAAK,UACLw9D,OAAQ,UACRuC,OAAQ,UACR+2F,QAAS,UACTC,SAAU,UACV18F,KAAM,UACN4B,KAAM,WAkDR,GAhDkBpkL,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG62R,IAAsB,CAEtEC,aAAc,UACdC,aAAc,UACdC,aAAc,UACdC,WAAY,UACZC,UAAW,UACXtB,UAAW,GACXuB,cAAe,GACfC,YAAa,GAEbz9P,WAAY,0LAGZ09P,eAAgB,2EAChBrjQ,SAAU,GAEVc,UAAW,EACXwiQ,SAAU,QAEVC,WAAY,GACZC,WAAY,EACZC,kBAAmB,oCACnBC,oBAAqB,uCACrBC,cAAe,sCACfC,gBAAiB,uCACjBC,kBAAmB,sCACnBC,iBAAkB,uCAClBC,kBAAmB,yCACnBC,mBAAoB,iCAEpBC,aAAc,EAEdC,SAAU,EACVC,SAAU,EACVC,eAAgB,GAEhBC,cAAe,GAEfC,WAAY,EACZC,gBAAiB,IAEjBC,aAAc,EAEdC,WAAW,EAEXzjC,QAAQ,IC3DG0jC,GAAgB,CAC3Bn5K,MAAOo5K,GACPtS,SAAU,CACRA,SAAUsS,IAEZC,QAAQ,GAEGC,GAAkCpuE,EAAAA,cAAoBiuE,ICZnE,MA6CA,GA7CkBI,IAChB,IAAIC,EAAWD,EACXE,EAAWF,EACXG,EAAWH,EACXI,EAAcJ,EAiClB,OA/BIA,EAAa,GAAKA,GAAc,EAClCC,EAAWD,EAAa,EACfA,EAAa,IAAMA,GAAc,EAC1CC,EAAWD,EAAa,EACfA,GAAc,KACvBC,EAAW,IAGTD,EAAa,GAAKA,GAAc,EAClCE,EAAW,EACFF,EAAa,GAAKA,GAAc,EACzCE,EAAW,EACFF,EAAa,IAAMA,GAAc,EAC1CE,EAAW,EACFF,EAAa,IAAMA,GAAc,GAC1CE,EAAW,EACFF,GAAc,KACvBE,EAAW,GAGTF,EAAa,GAAKA,GAAc,EAClCG,EAAW,EACFH,GAAc,IACvBG,EAAW,GAGTH,EAAa,GAAKA,EAAa,EACjCI,EAAc,EACLJ,GAAc,IACvBI,EAAc,GAET,CACLjB,aAAca,EACdK,eAAgBF,EAChBG,eAAgBJ,EAChBK,eAAgBN,EAChBO,kBAAmBJ,EACpB,EC3CH,MAUA,GAVyB35K,IACvB,MAAM,cACJ84K,GACE94K,EACJ,MAAO,CACLg6K,gBAAiC,IAAhBlB,EACjBmB,gBAAiC,GAAhBnB,EACjBoB,gBAAiC,KAAhBpB,EAClB,ECRI,SAASh9P,GAAcrH,GAC5B,OAAQA,EAAW,GAAKA,CAC1B,CCDA,MAiCA,GAjCwBA,IACtB,MAAM0lQ,EDEO,SAAsBh7O,GACnC,MAAMi7O,EAAY,IAAIliS,MAAM,IAAI+qG,KAAK,MAAMv+F,KAAI,CAAC8jB,EAAGjhB,KACjD,MAAMhP,EAAIgP,EAAQ,EACZ8yR,EAAWl7O,EAAOtmD,KAAKylH,IAAIzlH,KAAKkjB,EAAGxjB,EAAI,GACvC+hS,EAAU/yR,EAAQ,EAAI1O,KAAKC,MAAMuhS,GAAYxhS,KAAK6K,KAAK22R,GAE7D,OAAiC,EAA1BxhS,KAAKC,MAAMwhS,EAAU,EAAM,IAGpC,OADAF,EAAU,GAAKj7O,EACRi7O,EAAU11R,KAAIgV,IAAQ,CAC3BA,OACAib,WAAYmH,GAAcpiB,MAE9B,CCfwB6gR,CAAa9lQ,GAC7B2lQ,EAAYD,EAAcz1R,KAAIizF,GAAQA,EAAKj+E,OAC3C8gR,EAAcL,EAAcz1R,KAAIizF,GAAQA,EAAKhjE,aAC7C8lQ,EAAaL,EAAU,GACvBM,EAAaN,EAAU,GACvBO,EAAaP,EAAU,GACvBzlQ,EAAa6lQ,EAAY,GACzBI,EAAeJ,EAAY,GAC3BK,EAAeL,EAAY,GACjC,MAAO,CACLE,aACAjmQ,SAAUgmQ,EACVE,aACAG,WAAYV,EAAU,GACtBW,iBAAkBX,EAAU,GAC5BY,iBAAkBZ,EAAU,GAC5Ba,iBAAkBb,EAAU,GAC5Bc,iBAAkBd,EAAU,GAC5Be,iBAAkBf,EAAU,GAC5BzlQ,aACAkmQ,eACAD,eACAQ,WAAYviS,KAAK22B,MAAMmF,EAAa8lQ,GACpCY,aAAcxiS,KAAK22B,MAAMqrQ,EAAeF,GACxCW,aAAcziS,KAAK22B,MAAMorQ,EAAeF,GACxCa,mBAAoBf,EAAY,GAChCgB,mBAAoBhB,EAAY,GAChCiB,mBAAoBjB,EAAY,GAChCkB,mBAAoBlB,EAAY,GAChCmB,mBAAoBnB,EAAY,GACjC,EC/BI,MAAMoB,GAAgBA,CAACC,EAAWx2K,IAAU,IAAIizJ,GAAUujB,GAAWxiB,KAAKh0J,GAAO61J,cAC3E4gB,GAAgBA,CAACD,EAAWE,IACtB,IAAIzjB,GAAUujB,GACf3hB,OAAO6hB,GAAYtnG,cCFxBunG,GAAwBH,IACnC,MAAMn1G,EAASu1F,GAAS4f,GACxB,MAAO,CACL,EAAGn1G,EAAO,GACV,EAAGA,EAAO,GACV,EAAGA,EAAO,GACV,EAAGA,EAAO,GACV,EAAGA,EAAO,GACV,EAAGA,EAAO,GACV,EAAGA,EAAO,GACV,EAAGA,EAAO,GACV,EAAGA,EAAO,GACV,GAAIA,EAAO,GAIZ,EAEUu1G,GAA+BA,CAACC,EAAaC,KACxD,MAAMtE,EAAcqE,GAAe,OAC7BtE,EAAgBuE,GAAiB,OACvC,MAAO,CACLtE,cACAD,gBACA1B,UAAW0F,GAAchE,EAAe,KACxCwE,mBAAoBR,GAAchE,EAAe,KACjDyE,kBAAmBT,GAAchE,EAAe,KAChD0E,oBAAqBV,GAAchE,EAAe,KAClD2E,UAAWX,GAAchE,EAAe,KACxC4E,mBAAoBZ,GAAchE,EAAe,KACjD6E,kBAAmBb,GAAchE,EAAe,KAChD8E,oBAAqBd,GAAchE,EAAe,KAClD+E,aAAcf,GAAchE,EAAe,GAC3CgF,kBAAmBhB,GAAchE,EAAe,KAChDiF,mBAAoBjB,GAAchE,EAAe,KACjDkF,cAAehB,GAAcjE,EAAa,GAC1CkF,iBAAkBjB,GAAcjE,EAAa,GAC7CmF,gBAAiBlB,GAAcjE,EAAa,GAC5CoF,iBAAkBrB,GAAchE,EAAe,KAC/CsF,YAAa,cACbC,YAAarB,GAAcjE,EAAa,IACxCuF,qBAAsBtB,GAAcjE,EAAa,GAClD,EC1CH,MACA,GADqBtU,ICMN,SAAoBvjK,GAEjCo8J,GAAoB14F,KAAO04F,GAAoBx6F,QAC/C66F,GAAe/4F,KAAO+4F,GAAe76F,QACrC,MAAMy7G,EAAgBhgS,OAAOC,KAAKg6R,IAAqB5yR,KAAI44R,IACzD,MAAM52G,EAAS1mE,EAAMs9K,KAAclhB,GAAoBkhB,GAAY7gB,GAAe6gB,GAAYrhB,GAASj8J,EAAMs9K,IAC7G,OAAO,IAAIplS,MAAM,IAAI+qG,KAAK,GAAG3sE,QAAO,CAACrC,EAAMzL,EAAGjwB,KAC5C07B,EAAK,GAAGqpQ,KAAY/kS,EAAI,KAAOmuL,EAAOnuL,GACtC07B,EAAK,GAAGqpQ,IAAW/kS,EAAI,KAAOmuL,EAAOnuL,GAC9B07B,IACN,CAAC,EAAE,IACLqC,QAAO,CAACrC,EAAMspQ,IAEftpQ,EAAO52B,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGwzB,GAAOspQ,IAE7C,CAAC,GACJ,OAAOlgS,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu/G,GAAQq9K,GCvBxG,SAA0BG,EAAMl7I,GAC7C,IAAI,sBACF05I,EAAqB,6BACrBC,GACE35I,EACJ,MACEk1I,aAAciG,EACdhG,aAAciG,EACdhG,WAAYiG,EACZhG,UAAWiG,EACXrG,aAAcsG,EAAgB,YAC9BhG,EAAW,cACXD,GACE4F,EACEM,EAAgB9B,EAAsB6B,GACtCE,EAAgB/B,EAAsByB,GACtCO,EAAgBhC,EAAsB0B,GACtCO,EAAcjC,EAAsB2B,GACpCO,EAAalC,EAAsB4B,GACnCO,EAAgBlC,EAA6BpE,EAAaD,GAG1DwG,EAAapC,EADDwB,EAAKnH,WAAamH,EAAK7F,WAEnC0G,EAA0B,IAAI/lB,GAAU2lB,EAAY,IAAI7jB,IAAI,IAAI9B,GAAU2lB,EAAY,IAAK,IAAIxpG,cACrG,OAAOp3L,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG09R,GAAgB,CACrDG,eAAgBR,EAAc,GAC9BS,oBAAqBT,EAAc,GACnC/G,mBAAoB+G,EAAc,GAClCU,wBAAyBV,EAAc,GACvCW,kBAAmBX,EAAc,GACjCvG,aAAcuG,EAAc,GAC5BY,mBAAoBZ,EAAc,GAClCa,sBAAuBb,EAAc,GACrCc,iBAAkBd,EAAc,GAChCe,uBAAwBf,EAAc,IACtCgB,eAAgBf,EAAc,GAC9BgB,oBAAqBhB,EAAc,GACnCiB,mBAAoBjB,EAAc,GAClCkB,wBAAyBlB,EAAc,GACvCmB,kBAAmBnB,EAAc,GACjCvG,aAAcuG,EAAc,GAC5BoB,mBAAoBpB,EAAc,GAClCqB,sBAAuBrB,EAAc,GACrCsB,iBAAkBtB,EAAc,GAChCuB,uBAAwBvB,EAAc,IACtCwB,aAActB,EAAY,GAC1BuB,kBAAmBvB,EAAY,GAC/BI,0BACAoB,mBAAoBxB,EAAY,GAChCyB,iBAAkBzB,EAAY,GAC9B0B,sBAAuB1B,EAAY,GACnC2B,gBAAiB3B,EAAY,GAC7BvG,WAAYuG,EAAY,GACxB4B,iBAAkB5B,EAAY,GAC9B6B,oBAAqB7B,EAAY,GACjC8B,eAAgB9B,EAAY,GAC5B+B,qBAAsB/B,EAAY,IAClCgC,eAAgBjC,EAAc,GAC9BkC,oBAAqBlC,EAAc,GACnCmC,mBAAoBnC,EAAc,GAClCoC,wBAAyBpC,EAAc,GACvCqC,kBAAmBrC,EAAc,GACjCvG,aAAcuG,EAAc,GAC5BsC,mBAAoBtC,EAAc,GAClCuC,sBAAuBvC,EAAc,GACrCwC,iBAAkBxC,EAAc,GAChCyC,uBAAwBzC,EAAc,IACtC0C,YAAaxC,EAAW,GACxByC,iBAAkBzC,EAAW,GAC7B0C,gBAAiB1C,EAAW,GAC5B2C,qBAAsB3C,EAAW,GACjC4C,eAAgB5C,EAAW,GAC3BvG,UAAWuG,EAAW,GACtB6C,gBAAiB7C,EAAW,GAC5B8C,mBAAoB9C,EAAW,GAC/B+C,cAAe/C,EAAW,GAC1BgD,oBAAqBhD,EAAW,IAChC1H,eAAgB4H,EAAW,GAC3B/H,UAAW+H,EAAW,GACtB3H,gBAAiB2H,EAAW,GAC5B+C,YAAa,IAAI7oB,GAAU,QAAQe,KAAK,KAAM6B,cAC9CkmB,WAAY,QAEhB,CD5DuIC,CAAiBrhL,EAAO,CAC3Jg8K,sBAAqB,GACrBC,6BAA4BA,MACzBqF,GAAgBthL,EAAMvrF,WE3Bd,SAAyBurF,GACtC,MAAM,SACJ24K,EAAQ,SACRC,GACE54K,EACJ,MAAO,CACLuhL,QAAS5I,GAAYC,EAAW,GAEhC4I,OAAQ7I,GAAYC,EAAW,GAE/B6I,OAAQ9I,GAAYC,EAAW,GAE/B8I,OAAQ/I,GAAYC,EAAW,GAE/B+I,OAAQhJ,EAAWC,EAEnBl/Q,KAAMi/Q,EAAWC,EAEjBgJ,OAAQjJ,GAAYC,EAAW,GAE/BiJ,OAAQlJ,GAAYC,EAAW,GAE/BkJ,QAASnJ,GAAYC,EAAW,GAEpC,CFGyCmJ,CAAgB/hL,IAASgiL,GAAiBhiL,IG1BpE,SAA2BA,GACxC,MAAM,WACJg4K,EAAU,WACVC,EAAU,aACVS,EAAY,UACZnjQ,GACEyqF,EACJ,OAAO3iH,OAAOoD,OAAO,CAEnBwhS,mBAAoB,IAAIhK,EAAaD,GAAY5oH,QAAQ,MACzD8yH,kBAAmB,IAAIjK,EAA0B,EAAbD,GAAgB5oH,QAAQ,MAC5DmnH,mBAAoB,IAAI0B,EAA0B,EAAbD,GAAgB5oH,QAAQ,MAE7D+yH,cAAe5sQ,EAAY,GAC1B6sQ,GAAU1J,GACf,CHW4F2J,CAAkBriL,GAC9G,II3BA,SAASsiL,GAAchqQ,GACrB,OAAOA,GAAS,GAAKA,GAAS,GAChC,CAsCA,SArCA,SAAuBiqQ,EAAYz/R,GACjC,MACEnM,EAAG6rS,EACHv1Q,EAAGw1Q,EACHjxR,EAAGkxR,EACHnxR,EAAGoxR,GACD,IAAIrqB,GAAUiqB,GAAYtnB,QAC9B,GAAI0nB,EAAc,EAChB,OAAOJ,EAET,MACE5rS,EAAGisS,EACH31Q,EAAG41Q,EACHrxR,EAAGsxR,GACD,IAAIxqB,GAAUx1Q,GAAiBm4Q,QACnC,IAAK,IAAI8nB,EAAK,IAAMA,GAAM,EAAGA,GAAM,IAAM,CACvC,MAAMpsS,EAAIkC,KAAK22B,OAAOgzQ,EAAKI,GAAM,EAAIG,IAAOA,GACtC91Q,EAAIp0B,KAAK22B,OAAOizQ,EAAKI,GAAM,EAAIE,IAAOA,GACtCvxR,EAAI3Y,KAAK22B,OAAOkzQ,EAAKI,GAAM,EAAIC,IAAOA,GAC5C,GAAIT,GAAc3rS,IAAM2rS,GAAcr1Q,IAAMq1Q,GAAc9wR,GACxD,OAAO,IAAI8mQ,GAAU,CACnB3hR,IACAs2B,IACAzb,IACAD,EAAG1Y,KAAK22B,MAAW,IAALuzQ,GAAY,MACzB7nB,aAEP,CAGA,OAAO,IAAI5C,GAAU,CACnB3hR,EAAG6rS,EACHv1Q,EAAGw1Q,EACHjxR,EAAGkxR,EACHnxR,EAAG,IACF2pQ,aACL,ECxCA,IAAI8nB,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EASe,SAASg8P,GAAYkc,GAClC,MAAM,SACFnc,GACEmc,EACJC,EAAYF,GAAOC,EAAiB,CAAC,aACjCE,EAAiB9lS,OAAOoD,OAAO,CAAC,EAAGqmR,GACzCzpR,OAAOC,KAAK8lS,IAAWjrS,SAAQ6nH,WACtBmjL,EAAenjL,EAAM,IAE9B,MAAMknK,EAAc7pR,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyiS,GAAYC,GAK1DE,EAAW,KACXC,EAAY,KAElB,IAA2B,IAAvBpc,EAAYzxB,OAAkB,CAChC,MAAM8tC,EAAe,KACrBrc,EAAY+a,mBAAqBsB,EACjCrc,EAAYgb,kBAAoBqB,EAChCrc,EAAYqP,mBAAqBgN,CACnC,CAwIA,OAtImBlmS,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGymR,GAAc,CAE7Esc,iBAAkBtc,EAAYsV,mBAC9BiH,sBAAuBvc,EAAYqV,UACnCmH,eAAgBxc,EAAYwV,oBAC5BiH,yBAA0Bzc,EAAYuV,kBAEtCmH,cAAe1c,EAAY6V,iBAC3B8G,WAAYjI,GAAc1U,EAAYkW,qBAAsBlW,EAAY6V,kBAExE+G,qBAAsB5c,EAAYoV,oBAClC1F,kBAAmB1P,EAAYoV,oBAC/ByH,iBAAkB7c,EAAYgP,UAC9B8N,eAAgB9c,EAAYkV,mBAC5B6H,qBAAsB/c,EAAYmV,kBAClC6H,oBAAqBhd,EAAYka,WACjC+C,eAAgBjd,EAAYwQ,WAC5B0M,iBAAkBld,EAAYsV,mBAC9B6H,kBAAmBnd,EAAYqV,UAC/B+H,UAAWpd,EAAYmV,kBACvBkI,eAAgBrd,EAAYgP,UAC5BsO,kBAAmB5I,GAAc1U,EAAYqY,aAAcrY,EAAY6V,kBACvE0H,oBAAqB7I,GAAc1U,EAAY+Y,eAAgB/Y,EAAY6V,kBAE3E2H,aAAcxd,EAAYwT,WAE1B5D,eAAwC,EAAxB5P,EAAY3xP,UAE5BA,UAAW2xP,EAAY3xP,UACvBovQ,oBAA6C,EAAxBzd,EAAY3xP,UAEjCqvQ,uBAAwB1d,EAAY4R,cAAgB,EACpD+L,mBAAoB3d,EAAYuV,kBAChCqI,oBAAqB5d,EAAYoX,eACjCyG,yBAA0B7d,EAAYqX,oBACtCyG,4BAA6B9d,EAAYqV,UACzC0I,kBAAmB/d,EAAYwV,oBAC/BwI,eAAgBtJ,GAAc1U,EAAYoX,eAAgBpX,EAAY6V,kBACtEhF,SAAU7Q,EAAY6Q,SACtBW,aAAcxR,EAAYwR,aAC1BkB,eAAgB1S,EAAY0S,eAC5BC,eAAgB3S,EAAY2S,eAC5BC,eAAgB5S,EAAY4S,eAC5BqL,iBAAkB,IAClBC,eAAgB,IAChB9O,eAAgB,OAChBI,oBAAqB,OACrBC,oBAAqB,OACrB0O,yBAA0B,GAC1BC,2BAA4B,EAC5BC,WAAYre,EAAY4a,QACxB0D,UAAWte,EAAY2a,OACvB4D,UAAWve,EAAY0a,OACvBhpQ,QAASsuP,EAAYxtQ,KACrBgsR,UAAWxe,EAAYwa,OACvBiE,UAAWze,EAAYua,OACvBmE,UAAW1e,EAAYsa,OACvBqE,2BAA4B3e,EAAYua,OACxCqE,yBAA0B5e,EAAYya,OACtCoE,yBAA0B7e,EAAYya,OACtCqE,uBAAwB9e,EAAY0a,OACpCqE,2BAA4B/e,EAAYxtQ,KACxCwsR,yBAA0Bhf,EAAY2a,OACtCsE,UAAWjf,EAAY4a,QACvBsE,SAAUlf,EAAY2a,OACtBwE,SAAUnf,EAAY0a,OACtB3oS,OAAQiuR,EAAYxtQ,KACpB4sR,SAAUpf,EAAYwa,OACtB6E,SAAUrf,EAAYua,OACtB+E,SAAUtf,EAAYsa,OACtBiF,UAAWvf,EAAYqa,QACvBhpK,UAAW,uIAKXmuK,mBAAoB,uIAKpBC,kBAAmB,mIAKnBC,SApGe,IAqGfC,YArGe,IAsGfC,YAAaC,IACbA,SAtGe,IAuGfC,YAvGe,IAwGfC,YAAaC,IACbA,SAxGe,IAyGfC,YAzGe,IA0GfC,YAAaC,IACbA,SA1Ge,IA2GfC,YA3Ge,IA4GfC,YAAalE,KACbA,WACAmE,YAAanE,EACboE,YAAanE,KACbA,YACAoE,aAAcpE,EACdqE,sBAAuB,kCACvBC,cAAe,0BACI,IAAItvB,GAAU,uBAAuB4C,qCACxC,IAAI5C,GAAU,uBAAuB4C,wCAClC,IAAI5C,GAAU,uBAAuB4C,sBAExD2sB,qBAAsB,0IAKtBC,oBAAqB,uIAKrBC,kBAAmB,uIAKnBC,oBAAqB,0IAKrBC,0BAA2B,4CAC3BC,2BAA4B,6CAC5BC,yBAA0B,4CAC1BC,4BAA6B,+CAC3BjF,EAEN,CC/KA,IAAIH,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAOO,MAAMk6P,GAAW,CACtBtwP,YAAY,EACZimQ,cAAc,EACdC,cAAc,EACdU,oBAAoB,EACpBC,oBAAoB,EACpBC,oBAAoB,EACpBC,oBAAoB,EACpBC,oBAAoB,EACpByJ,gBAAgB,EAChBD,kBAAkB,EAClBnM,iBAAiB,EACjBD,YAAY,EACZE,cAAc,GAEHnU,GAAS,CACpBprQ,MAAM,EACNkoR,QAAQ,EACRH,QAAQ,EACRC,QAAQ,EACRG,QAAQ,EACRC,SAAS,EACTH,QAAQ,EACRH,QAAQ,EACRD,SAAS,EACT5I,UAAU,EACVC,UAAU,EACVX,YAAY,EACZD,YAAY,GAERnT,GAAW,CACf+hB,UAAU,EACVC,aAAa,EACbC,aAAa,EACbC,UAAU,EACVC,aAAa,EACbC,aAAa,EACbC,UAAU,EACVC,aAAa,EACbC,aAAa,EACbC,UAAU,EACVC,aAAa,EACbC,aAAa,EACblE,UAAU,EACVmE,aAAa,EACbC,aAAa,EACbnE,WAAW,EACXoE,cAAc,GAEHzgB,GAAmBA,CAACU,EAAaC,EAAe9nP,KAC3D,MAAMmjQ,EAAkBnjQ,EAAM+nP,mBAAmBF,IAC3C,SACFb,GACEc,EACJxV,EAAa4wB,GAAOpb,EAAe,CAAC,aAEtC,IAAIF,EAAwBrqR,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGwiS,GAAkB,CAC5Enc,aAoBF,OAjBAY,EAAwBX,GAAYW,GAChCtV,GACF/0Q,OAAOoQ,QAAQ2kQ,GAAYj6Q,SAAQmqJ,IACjC,IAAKnmJ,EAAKlG,GAASqsJ,EACnB,MACIxiH,MAAOuoQ,GACLpyS,EACJqyS,EAAkBtF,GAAO/sS,EAAO,CAAC,UACnC,IAAIsyS,EAAuBD,EACvBD,IACFE,EAAuBthB,GAAiB5pR,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGinR,GAAwB4gB,GAAkB,CAChHxhB,SAAUwhB,GACTD,IAEL3gB,EAAsBvrR,GAAOosS,CAAoB,IAG9C7gB,CAAqB,EAGf,SAASqL,KACtB,MACE/yK,MAAOwoL,EAAe,OACtBnP,EAAM,MACNv5P,EAAK,SACLgnP,EAAQ,OACR9B,GACE95D,EAAAA,WAAiBouE,IACfxV,EAAO,UAAcuV,GAAU,KAC/BoP,EAAc3oQ,GAAS4oQ,IACtB1oL,EAAOwkK,EAAQsL,GAAanJ,GAAc8hB,EAAa,CAACrP,GAAkBoP,GAAkB,CACjG1kB,OACAgD,WACAG,iBAAgB,GAGhBF,YAAW,GACX/B,OAAQA,GAAU,CAChB35K,OAAQ25K,EAAO35K,OACflvG,IAAK6oR,EAAO7oR,IACZ8oR,SAAQ,GACRH,OAAM,GACND,SAAQA,MAGZ,MAAO,CAAC4jB,EAAa3Y,EAAWuJ,EAAS7U,EAAS,GAAIxkK,EAAOglK,EAC/D,CCnHO,MACL+P,cAAa,GACb3B,sBAAqB,GACrBwC,qBAAoBA,IAClB+S,GAAc,CAChB3V,UAAWA,KACT,MAAM,aACJ7S,EAAY,cACZI,IACEn8M,EAAAA,EAAAA,YAAW87M,IAEf,MAAO,CACLwT,cAFoBvT,IAGpBI,gBACD,EAEHwS,SAAUA,KACR,MAAOjzP,EAAOgwP,EAAWtL,EAAQxkK,EAAOglK,GAAU4jB,KAClD,MAAO,CACL9oQ,QACAgwP,YACAtL,SACAxkK,QACAglK,SACD,EAEH6N,OAAQA,KACN,MAAM,IACJ1qC,IACE/jL,EAAAA,EAAAA,YAAW87M,IACf,OAAe,OAAR/3B,QAAwB,IAARA,EAAiBA,EAAM,CAAC,CAAC,EAElD8qC,eAAgBA,CAACjzK,EAAO/2E,KACtB,IAAItV,EACJ,MAAO,CAAC,CACN,IAAKyiQ,GAAap2K,IACjBk3K,GAAoG,QAAtFvjQ,EAAgB,OAAXsV,QAA8B,IAAXA,OAAoB,EAASA,EAAOoiE,OAAOk1K,qBAAkC,IAAP5sP,EAAgBA,EAAKqsP,IAAsB,EAE5JkT,ejB6C4B2V,CAAC7oL,EAAO8oL,EAAoBvV,EAASsB,KACjE,MAAMkU,EAAiB,YAAYD,kBAAmCA,MAChEE,EAAqBzV,EAAU,IAAIA,IAAYwV,EAC/CjU,EAAa,CACjBrpD,UAAW,aACX,sBAAuB,CACrBA,UAAW,eAGf,IAAIw9D,EAAiB,CAAC,EAOtB,OANkB,IAAdpU,IACFoU,EAAiB,CACf7uQ,WAAY4lF,EAAM5lF,WAClB3F,SAAUurF,EAAMvrF,WAGb,CACL,CAACu0Q,GAAqB3rS,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGwoS,GAAiBnU,GAAa,CAChG,CAACiU,GAAiBjU,IAErB,EiBhED3B,gBAAiBA,IAAMlO,KC1CnBikB,GAAiBlpL,IACrB,MAAM,OACJ00K,EAAM,aAENH,EAAY,UAEZ2B,EAAS,SACTiT,EAAQ,aACRC,EAAY,cACZC,EAAa,YACbC,EAAW,cACXC,EAAa,SACb90Q,EAAQ,OACR+0Q,EAAM,SACNC,GACEzpL,EACJ,MAAO,CACL,CAACu0K,GAAe,CACd12R,QAAS,OACTk/C,KAAM,OACN2sP,cAAe,SAEf7uC,UAAW,EACXhoI,WAAY22K,EACZ,OAAQ,CACN/9D,UAAW,cAEb,CAAC,IAAI8oD,eAA2B,CAC9BmV,cAAe,MACf,CAAC,KAAKnV,QAAmBA,aAAyB,CAEhDj7R,MAAO,IAGX,CAAC,GAAGi7R,cAAyBA,YAAwB,CACnDx3O,KAAM,YAGR,QAAS,CACP+3E,UAAW,QAIf,CAAC,GAAGy/J,YAAwB,CAC1Bv7R,OAAQowS,EACRxwQ,QAASywQ,EACT/wQ,MAAOgxQ,EACP30Q,WAAYt6B,GAAK+uS,GACjBv2K,WAAY42K,EAGZ,CAAC,GAAG/U,UAAgB,CAClB//P,WAAY,YAIhB,CAAC,GAAG4/P,YAAwB,CAC1B37P,QAAS2wQ,EACTjxQ,MAAO49P,EACPzhQ,WACAo+F,WAAYs2K,GAGd,CAAC,GAAG5U,aAAyB,CAC3Bx3O,KAAM,OACNzkB,MAAO49P,EAEPr7B,UAAW,GAEd,EAEU8uC,GAAwB3pL,IACnC,MAAM,cACJ88K,EAAa,cACbhE,EAAa,gBACboB,EAAe,UACfhE,EAAS,gBACT8D,EAAe,UACfmM,EAAS,oBACTjC,EAAmB,iBACnBnH,GACE/8K,EACE4pL,EAAkC,KAAlB1P,EACtB,MAAO,CAEL2P,cAAe,UACfC,YAAahN,EACbiN,eAAgB,UAChBP,OAAQ1M,EACR2M,SAAU,UACVL,aAA8B,EAAhBtQ,EACduQ,cAAe,KAAKO,MACpBN,YAAapT,EACbqT,cAAe,GAAGvP,OAAqB4P,MACvCT,SAAUrM,EACVkN,QAAS,UACTC,cAAe/P,EAA8B,EAAZiM,EACjC+D,UAAW,UACXC,aAAcjG,EACdkG,iBAAkBlQ,EAClBmQ,kBAAmBnQ,EACnBoQ,aAAcvN,EACdwN,eAAgBxN,EAChByN,kBAAmBtU,EACpB,EAGUuU,GAAoB,CAAC,CAAC,cAAe,UAAW,CAAC,gBAAiB,YAAa,CAAC,iBAAkB,cAC/G,GAAe1V,GAAc,UAAU/0K,GAAS,CAACkpL,GAAelpL,KAAS2pL,GAAuB,CAC9F1Y,iBAAkBwZ,KC5GdC,GAAgB1qL,IACpB,MAAM,aACJu0K,EAAY,QACZyV,EAAO,kBACP9H,EAAiB,mBACjB3L,EAAkB,OAClB7B,EAAM,cACNuV,EAAa,aACbE,EAAY,UACZD,EAAS,aACTd,EAAY,iBACZgB,EAAgB,kBAChBC,EAAiB,eACjBvQ,EAAc,aACdwQ,EAAY,kBACZE,EAAiB,eACjBD,EAAc,OACdf,GACExpL,EACJ,MAAO,CACL,CAACu0K,GAAe,CACd7xR,SAAU,WAEVygC,SAAU,EACV0vF,WAAYm3K,EACZpiP,WAAY,OAAOs6O,mBACnB,gBAAiB,CACfnpQ,cAAekxQ,GAEjB,UAAW,CACTlsP,MAAO,GAET,CAAC,GAAGw2O,cAA0B,CAC5Bv7R,OAAQ,OAIR28H,WAAY,GACZ98F,WAAY,GACZ,CAAC,GAAG67P,SAAcA,2BAAiC,CACjDp7R,MAAO,SAGX,CAAC,GAAGi7R,aAAyB,CAC3B7xR,SAAU,QACVjF,OAAQ,EACRmF,OAAQ,EACR5J,OAAQixS,EACR3xQ,MAAO6xQ,EACPx1Q,WAAYt6B,GAAK4vS,GACjBlwQ,UAAW,SACX84F,WAAYq3K,EACZ74Q,OAAQ,UACRu2B,WAAY,OAAOs6O,KAErB,CAAC,GAAG3N,gBAA4B,CAC9B,MAAO,CACL5xR,SAAU,UAEZ,YAAa,CACXD,SAAU,WACV/J,IAAKywS,EACLuB,eAAgB3qL,EAAMq6J,KAAK+vB,GAAkB16E,KAAK,GAAGp/C,QACrD1tK,OAAQ,EACRtJ,MAAO8wS,EACPpxS,OAAQqxS,EACR/xQ,MAAO6xQ,EACP11Q,SAAUurF,EAAM86K,WAChBj9R,QAAS,OACTs5R,WAAY,SACZyT,eAAgB,SAChB/3K,WAAYm3K,EACZtR,aAAc,KAAKr+R,GAAKy/R,MAAmBz/R,GAAKy/R,OAChDzoQ,OAAQ,UACRu2B,WAAY,cAAc2uO,SAC1B,WAAY,CACV7zR,SAAU,WACV81H,MAAO,EACP3F,WAAY,cACZjrE,WAAY,OAAO2uO,IACnBzgR,QAAS,MAEX,iBAAkB,CAChB+8G,WAAY,4BAEd,UAAW,CACTg4K,iBAAkB7qL,EAAMq6J,KAAK+vB,GAAkB16E,KAAK,GAAGp/C,QACvDooH,aAAc,GAAGr+R,GAAKy/R,UAAuBz/R,GAAKy/R,QAKxD,UAAW,CACTjnK,WAAYy3K,EACZ,CAAC,GAAG/V,aAAyB,CAC3Bj8P,MAAOkyQ,EACP33K,WAAY03K,GAEd,CAAC,GAAGhW,wBAAoC,CACtCj8P,MAAOkyQ,EACP33K,WAAY03K,EACZp+J,OAAQ,aAAaq9J,IAErBsB,kBAAmB,KAI1B,EAEH,GAAe/V,GAAc,CAAC,SAAU,UAAU/0K,GAAS,CAAC0qL,GAAc1qL,KAAS2pL,GAAuB,CACxG1Y,iBAAkBwZ,KC/GpB,IAAIzH,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAWA,MAAMggR,GAAkB,CACtBC,GAAI,WACJC,GAAI,WACJ5iP,GAAI,WACJuR,GAAI,WACJsxO,GAAI,YACJC,IAAK,aAGMC,GAA4BlgF,EAAAA,cAAoB,CAAC,GACxDmgF,GAAa,MACjB,IAAI9yS,EAAI,EACR,OAAO,WAGL,OADAA,GAAK,EACE,GAFMuO,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,KAE9DvO,GACrB,CACD,EAPkB,GAmJnB,SA3I2B2yN,EAAAA,YAAiB,CAACh8K,EAAON,KAClD,MACI+hM,UAAW2vC,EAAkB,UAC7B1hR,EAAS,QACT0sS,EAAO,SACP9vP,EAAQ,iBACR+vP,GAAmB,EAAK,MACxBzrQ,EAAQ,OAAM,MACdnjC,EAAQ,CAAC,EAAC,YACV6uS,GAAc,EAAK,aACnBC,GAAe,EAAK,MACpBnyS,EAAQ,IAAG,eACXoyS,EAAiB,GAAE,sBACnBC,EAAqB,WACrBC,EAAU,WACVC,EAAU,aACVC,GACE58P,EACJ68P,EAAa/I,GAAO9zP,EAAO,CAAC,YAAa,YAAa,UAAW,WAAY,mBAAoB,QAAS,QAAS,cAAe,eAAgB,QAAS,iBAAkB,wBAAyB,aAAc,aAAc,kBAC9N,UACJ2xO,IACEz8M,EAAAA,EAAAA,YAAWw8M,KACRorB,EAAWC,IAAgBrnO,EAAAA,EAAAA,UAAS,cAAe11B,EAAQA,EAAM88P,UAAYT,IAC7EW,EAAOC,IAAYvnO,EAAAA,EAAAA,WAAS,IACnCP,EAAAA,EAAAA,YAAU,KACJ,cAAen1B,GACjB+8P,EAAa/8P,EAAM88P,UACrB,GACC,CAAC98P,EAAM88P,YACV,MAAMI,EAAqBA,CAACn2S,EAAOoI,KAC3B,cAAe6wC,GACnB+8P,EAAah2S,GAEA,OAAf41S,QAAsC,IAAfA,GAAiCA,EAAW51S,EAAOoI,EAAK,GAG3E,aACJ8hR,EAAY,UACZrrJ,IACE1wD,EAAAA,EAAAA,YAAW87M,IACTvvC,EAAYwvC,EAAa,eAAgBG,IACxC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAE3C47D,GAAuB5nO,EAAAA,EAAAA,QAAO,MACpC4nO,EAAqBjvQ,QAAUkvQ,IAC7BL,EAASK,EAAIzoM,SACI,OAAjB+nM,QAA0C,IAAjBA,GAAmCA,EAAaU,EAAIzoM,SACzEioM,IAAcQ,EAAIzoM,SACpBqoM,EAAmBI,EAAIzoM,QAAS,aAClC,GAEF1/B,EAAAA,EAAAA,YAAU,KACR,SAASooO,EAAkBD,GACzB,OAAOD,EAAqBjvQ,QAAQkvQ,EACtC,CACA,IAAIA,EACJ,GAAsB,qBAAX5vS,OAAwB,CACjC,MAAM,WACJ8vS,GACE9vS,OACJ,GAAI8vS,GAAcd,GAAcA,KAAcb,GAAiB,CAC7DyB,EAAME,EAAW,0BAA0B3B,GAAgBa,OAC3D,IACEY,EAAI5sS,iBAAiB,SAAU6sS,EACjC,CAAE,MAAO94Q,GACP64Q,EAAIv6H,YAAYw6H,EAClB,CACAA,EAAkBD,EACpB,CACF,CACA,MAAO,KACL,IACU,OAARA,QAAwB,IAARA,GAA0BA,EAAIrrP,oBAAoB,SAAUsrP,EAC9E,CAAE,MAAO94Q,GACC,OAAR64Q,QAAwB,IAARA,GAA0BA,EAAI55H,eAAe65H,EAC/D,EACD,GACA,CAACb,KACJvnO,EAAAA,EAAAA,YAAU,KACR,MAAM+mC,EAAWigM,GAAW,cAE5B,OADAxqB,EAAUC,SAAS11K,GACZ,IAAMy1K,EAAUE,YAAY31K,EAAS,GAC3C,IACH,MAAMuhM,EAASA,KACbP,GAAoBJ,EAAW,eAAe,EAE1CY,EAAWhtM,GAAKmsM,EAAY,CAAC,cAC7Bc,EAAWb,EAAYN,EAAiBpyS,EAExCwzS,GAnGU72S,EAmGa42S,GAnGHtuS,OAAOic,MAAMjc,OAAOq7B,WAAW3jC,KAAWktF,SAASltF,GAmGpC,GAAG42S,MAAevuS,OAAOuuS,IAnGlD52S,MAqGhB,MAAM82S,EAA+D,IAA5CnzQ,WAAWt7B,OAAOotS,GAAkB,IAA0BxgF,EAAAA,cAAoB,OAAQ,CACjH1/I,QAASmhO,EACT/tS,UAAWisN,KAAW,GAAG8lB,uBAAgC,GAAGA,wBAAgC86D,EAAe,QAAU,UACrH9uS,MAAOgvS,GACNL,GAAwBpgF,EAAAA,cAAoBs0D,GAAc,OAAU,KACjEwtB,EAA4B,QAAdl4K,KAAyB22K,EAMvCwB,EALU,CACdC,SAAUF,EAA2B9hF,EAAAA,cAAoB20D,GAAe,MAAqB30D,EAAAA,cAAoBy0D,GAAc,MAC/HqsB,UAAWgB,EAA2B9hF,EAAAA,cAAoBy0D,GAAc,MAAqBz0D,EAAAA,cAAoB20D,GAAe,OAEnHmsB,EAAY,YAAc,YAEnCmB,EAAyB,OAAZ7B,EAAmByB,GAAkC7hF,EAAAA,cAAoB,MAAO,CACjGtsN,UAAW,GAAG+xO,YACdnlK,QAASmhO,EACThwS,MAAO,CACLrD,MAAOwzS,IAERxB,GAAW2B,GAAmB,KAC3BG,EAAW/vS,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG9D,GAAQ,CACvDogD,KAAM,OAAO+vP,IACb13Q,SAAU03Q,EACV3pQ,SAAU2pQ,EACVxzS,MAAOwzS,IAEHO,EAAWxiF,KAAW8lB,EAAW,GAAGA,KAAa7wM,IAAS,CAC9D,CAAC,GAAG6wM,iBAA0Bq7D,EAC9B,CAAC,GAAGr7D,iBAA0B66D,GAA2B,OAAZF,IAAqByB,EAClE,CAAC,GAAGp8D,aAAsBu7D,EAC1B,CAAC,GAAGv7D,gBAAoD,IAA3B/2M,WAAWkzQ,IACvCluS,EAAW4lR,EAAQ8nB,GAChBgB,EAAepiF,EAAAA,SAAc,KAAM,CACvCqiF,eAAgBvB,KACd,CAACA,IACL,OAAOK,EAAwBnhF,EAAAA,cAAoBkgF,GAAa98L,SAAU,CACxEr4G,MAAOq3S,GACOpiF,EAAAA,cAAoB,QAAS7tN,OAAOoD,OAAO,CACzD7B,UAAWyuS,GACVT,EAAU,CACXjwS,MAAOywS,EACPx+P,IAAKA,IACUs8K,EAAAA,cAAoB,MAAO,CAC1CtsN,UAAW,GAAG+xO,cACbn1L,GAAWgwP,GAAeU,GAASa,EAAmBI,EAAa,OAAO,IC1K/E,SADuB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,iIAAqI,KAAQ,WAAY,MAAS,YCMhU,IAAIK,GAAmB,SAA0Bt+P,EAAON,GACtD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMmkG,KAEV,EAOA,SAJ2BviF,EAAAA,WAAiBsiF,ICbtCE,GAAqBA,KAAA,CACzB10S,OAAQ,EACRgK,QAAS,IAEL2qS,GAAgB1uS,IACpB,MAAM,aACJuyG,GACEvyG,EACJ,MAAO,CACLjG,OAAQw4G,EACRxuG,QAAS,EACV,EAEG4qS,GAAmB3uS,IAAQ,CAC/BjG,OAAQiG,EAAOA,EAAKwyG,aAAe,IAE/Bo8L,GAAwBA,CAACrlR,EAAGioC,KAA6E,KAAxD,OAAVA,QAA4B,IAAVA,OAAmB,EAASA,EAAM+iM,WAA6C,WAAvB/iM,EAAM3Z,aAkBvH+4M,GAAoBA,CAAC6jC,EAAej+B,EAAQ3F,SACzBxrP,IAAnBwrP,EACKA,EAEF,GAAG4jC,KAAiBj+B,IAG7B,GAxB2B,WAEzB,MAAO,CACLL,WAAY,GAFAtuP,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAKi5Q,qBAGhFhuB,cAAe27C,GACf17C,aAAc07C,GACdx7C,eAAgBy7C,GAChBx7C,cAAew7C,GACf17C,aAAc27C,GACdx7C,cAAes7C,GACfr7C,YAAaw7C,GACbv7C,WAAYu7C,GACZt7C,WAAYs7C,GACZn8C,eAAgB,IAEpB,ECjCO,SAASjiJ,GAAWnwG,GACzB,OAAOA,GAAsB4rN,EAAAA,eAAqB5rN,IAAUA,EAAMjB,OAAS6sN,EAAAA,QAC7E,CACO,MAAM4iF,GAAiBA,CAAC72Q,EAASxjB,EAAay7B,IAChCg8K,EAAAA,eAAqBj0L,GAGpBi0L,EAAAA,aAAmBj0L,EAA0B,oBAAViY,EAAuBA,EAAMjY,EAAQiY,OAAS,CAAC,GAAKA,GAFlGz7B,EAIJ,SAASy6F,GAAaj3E,EAASiY,GACpC,OAAO4+P,GAAe72Q,EAASA,EAASiY,EAC1C,CCNA,MAIA,GAJqByhM,IACnB,MAAO,CAAC,CAAC,CAAC,CAAEq0C,GAAU+N,KACtB,OAAO/N,EAAS,GAAGr0C,YAAsB,EAAE,ECA7C,IALiCxiI,EAAAA,EAAAA,eAAc,CAC7CwiI,UAAW,GACXo9D,YAAY,EACZ16B,iBAAiB,ICJnB,IAAI2vB,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAKA,MAkBA,GAlBoBmkB,IAClB,MACIyhM,UAAW2vC,EAAkB,UAC7B1hR,EAAS,OACTovS,GACE9+P,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,YAAa,YACjD,aACJixO,GACEj1D,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,OAAQG,GACjCnB,EAAct0D,KAAW,CAC7B,CAAC,GAAG8lB,2BAAoCq9D,GACvCpvS,GACH,OAAoBssN,EAAAA,cAAoB8mD,GAAS30Q,OAAOoD,OAAO,CAC7D7B,UAAWugR,GACVhuC,GAAW,EC5BD,SAASg9B,GAAMj/N,GAC5B,IAAIsM,EAAWtM,EAAMsM,SACnBm1L,EAAYzhM,EAAMyhM,UAClB71N,EAAKo0B,EAAMp0B,GACXmzR,EAAa/+P,EAAMg/P,kBACnBC,EAAgBj/P,EAAMi/P,cACtBvvS,EAAYswC,EAAMtwC,UAClBjC,EAAQuyC,EAAMvyC,MAChB,OAAoBuuN,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,YAAa/xO,GACxDjC,MAAOA,GACOuuN,EAAAA,cAAoB,MAAO,CACzCtsN,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,UAAWw9D,GACtDrzR,GAAIA,EACJ2qO,KAAM,UACN9oP,MAAOsxS,GACc,oBAAbzyP,EAA0BA,IAAaA,GACnD,CCnBA,IAAI4yP,GAA8B,CAChCpmC,OAAQ,GACRD,QAAS,GAEPsmC,GAA8B,CAChCvmC,QAAS,EACTG,QAAQ,GAEN/B,GAAe,CAAC,EAAG,GACZ2F,GAAa,CACtBnzQ,KAAM,CACJmgQ,OAAQ,CAAC,KAAM,MACfl2P,SAAU0rS,GACVl8O,OAAQ,EAAE,EAAG,GACb+zM,aAAcA,IAEhBrjQ,MAAO,CACLg2P,OAAQ,CAAC,KAAM,MACfl2P,SAAU0rS,GACVl8O,OAAQ,CAAC,EAAG,GACZ+zM,aAAcA,IAEhBvtQ,IAAK,CACHkgQ,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrS,GACVj8O,OAAQ,CAAC,GAAI,GACb+zM,aAAcA,IAEhBzoQ,OAAQ,CACNo7P,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrS,GACVj8O,OAAQ,CAAC,EAAG,GACZ+zM,aAAcA,IAEhBmI,QAAS,CACPxV,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrS,GACVj8O,OAAQ,CAAC,GAAI,GACb+zM,aAAcA,IAEhBuI,QAAS,CACP5V,OAAQ,CAAC,KAAM,MACfl2P,SAAU0rS,GACVl8O,OAAQ,EAAE,EAAG,GACb+zM,aAAcA,IAEhBoI,SAAU,CACRzV,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrS,GACVj8O,OAAQ,CAAC,GAAI,GACb+zM,aAAcA,IAEhByI,SAAU,CACR9V,OAAQ,CAAC,KAAM,MACfl2P,SAAU0rS,GACVl8O,OAAQ,CAAC,EAAG,GACZ+zM,aAAcA,IAEhBsI,YAAa,CACX3V,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrS,GACVj8O,OAAQ,CAAC,EAAG,GACZ+zM,aAAcA,IAEhB0I,YAAa,CACX/V,OAAQ,CAAC,KAAM,MACfl2P,SAAU0rS,GACVl8O,OAAQ,CAAC,EAAG,GACZ+zM,aAAcA,IAEhBqI,WAAY,CACV1V,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrS,GACVj8O,OAAQ,CAAC,EAAG,GACZ+zM,aAAcA,IAEhBwI,WAAY,CACV7V,OAAQ,CAAC,KAAM,MACfl2P,SAAU0rS,GACVl8O,OAAQ,EAAE,EAAG,GACb+zM,aAAcA,KC7ElB,IAAI7gC,GAAY,CAAC,mBAAoB,UAAW,kBAAmB,kBAAmB,eAAgB,YAAa,WAAY,kBAAmB,qBAAsB,iBAAkB,YAAa,SAAU,YAAa,QAAS,uBAAwB,iBAAkB,sBAAuB,oBAAqB,eAAgB,UAAW,KAAM,YAAa,aAAc,UAQrXipE,GAAU,SAAiBp/P,EAAON,GACpC,IAAI2/P,EAAmBr/P,EAAMq/P,iBAC3BC,EAAiBt/P,EAAMo8P,QACvBA,OAA6B,IAAnBkD,EAA4B,CAAC,SAAWA,EAClDC,EAAwBv/P,EAAM8vN,gBAC9BA,OAA4C,IAA1ByvC,EAAmC,EAAIA,EACzDxvC,EAAwB/vN,EAAMgwN,gBAC9BA,OAA4C,IAA1BD,EAAmC,GAAMA,EAC3DyvC,EAAex/P,EAAMw/P,aACrBx6D,EAAmBhlM,EAAMyhM,UACzBA,OAAiC,IAArBuD,EAA8B,aAAeA,EACzD14L,EAAWtM,EAAMsM,SACjBo5L,EAAkB1lM,EAAM0lM,gBACxB+5D,EAAqBz/P,EAAMy/P,mBAC3B7+C,EAAiB5gN,EAAM4gN,eACvBv7L,EAAYrlB,EAAMqlB,UAClBkhM,EAASvmN,EAAMumN,OACfm5C,EAAmB1/P,EAAMu0N,UACzBA,OAAiC,IAArBmrC,EAA8B,QAAUA,EACpDC,EAAe3/P,EAAM7Z,MACrBA,OAAyB,IAAjBw5Q,EAA0B,CAAC,EAAIA,EACvCC,EAAwB5/P,EAAM6/P,qBAC9BA,OAAiD,IAA1BD,GAA2CA,EAClEE,EAAiB9/P,EAAM8/P,eACvBC,EAAsB//P,EAAM+/P,oBAC5Bf,EAAoBh/P,EAAMg/P,kBAE1B5sS,GADe4tC,EAAMggQ,aACXhgQ,EAAM5tC,SAChBwZ,EAAKo0B,EAAMp0B,GACXq0R,EAAmBjgQ,EAAMkgQ,UACzBA,OAAiC,IAArBD,GAAqCA,EACjDE,EAAoBngQ,EAAM27K,WAC1BykF,EAAgBpgQ,EAAM/b,OACtBg+M,EAAYC,GAAyBliM,EAAOm2L,IAC1CkqE,EAAWrqO,GAAMpqD,GACjB00R,GAAa7qO,EAAAA,EAAAA,QAAO,OACxBL,EAAAA,EAAAA,qBAAoB11B,GAAK,WACvB,OAAO4gQ,EAAWlyQ,OACpB,IACA,IAAImyQ,EAAa5/D,GAAc,CAAC,EAAGsB,GAC/B,YAAajiM,IACfugQ,EAAW7wC,aAAe1vN,EAAMgiN,SAmBlC,OAAoBhmC,EAAAA,cAAoB0kD,GAASt5C,GAAS,CACxDkpC,eAAgB30C,KAAW0jF,EAAwC,OAAtBc,QAAoD,IAAtBA,OAA+B,EAASA,EAAkB5zS,MACrIk1O,UAAWA,EACX4oB,MApBoB,WACpB,OAAoBruC,EAAAA,cAAoBijD,GAAO,CAC7ChyQ,IAAK,UACLw0O,UAAWA,EACX71N,GAAIy0R,EACJpB,cAAqC,OAAtBkB,QAAoD,IAAtBA,OAA+B,EAASA,EAAkBnsS,KACvGgrS,kBAAmBr+D,GAAcA,GAAc,CAAC,EAAGq+D,GAAsC,OAAlBoB,QAA4C,IAAlBA,OAA2B,EAASA,EAAcpsS,OAClJ5B,EACL,EAaEkgE,OAAQ8pO,EACR1rC,kBAAmBiM,GACnBnM,eAAgB+D,EAChB70N,IAAK4gQ,EACL3vC,WAAYxqO,EACZqkO,kBAAmBu1C,EACnBnwC,qBAAsBlqB,EACtBmqB,wBAAyB4vC,EACzBxuC,oBAAqBrQ,EACrBsQ,eAAgB7rM,EAChB2rM,YAAazK,EACboJ,oBAAqBmwC,EACrB9jD,YAAa6jD,EACb7vC,gBAAiBA,EACjBO,WAAY5vB,GAAcA,GAAc,CAAC,EAAG6+D,GAAiC,OAAlBY,QAA4C,IAAlBA,OAA2B,EAASA,EAAc7zS,MACvIujQ,gBAAiBA,EACjBxG,MAAO42C,GACNK,GA7Be,WAChB,IAAInwS,EAAQ4rN,EAAAA,SAAev9G,KAAKnyD,GAE5Bk0P,EAAa7/D,GAAcA,GAAc,CAAC,GADf,OAAVvwO,QAA4B,IAAVA,OAAmB,EAASA,EAAM4vC,QAAU,CAAC,GACnB,CAAC,EAAG,CACnE,mBAAoB5tC,EAAUiuS,EAAW,OAE3C,OAAoBrkF,EAAAA,aAAmB1vK,EAAUk0P,EACnD,CAsBgBrtE,GAClB,EACA,MC3FA,ID2F4BzzH,EAAAA,EAAAA,YAAW0/L,IE7FvC,SAAS,KAEP,GAAsB,WACpB,OAAOzpR,CACT,EACA,IAAIkG,EACFlG,EAAI,CAAC,EACLluB,EAAI0G,OAAOnG,UACXoJ,EAAI3J,EAAEgE,eACNgvB,EAAItsB,OAAOgN,gBAAkB,SAAU0gB,EAAGlG,EAAGluB,GAC3Co0B,EAAElG,GAAKluB,EAAEV,KACX,EACAsC,EAAI,mBAAqBwB,OAASA,OAAS,CAAC,EAC5CwX,EAAIhZ,EAAEyB,UAAY,aAClByX,EAAIlZ,EAAEo3S,eAAiB,kBACvB1kR,EAAI1yB,EAAEqxB,aAAe,gBACvB,SAASkjF,EAAO/hF,EAAGlG,EAAGluB,GACpB,OAAO0G,OAAOgN,eAAe0gB,EAAGlG,EAAG,CACjC5uB,MAAOU,EACPgV,YAAY,EACZlF,cAAc,EACdmF,UAAU,IACRmf,EAAElG,EACR,CACA,IACEioF,EAAO,CAAC,EAAG,GACb,CAAE,MAAO/hF,GACP+hF,EAAS,SAAgB/hF,EAAGlG,EAAGluB,GAC7B,OAAOo0B,EAAElG,GAAKluB,CAChB,CACF,CACA,SAASiqB,EAAKmK,EAAGlG,EAAGluB,EAAG2J,GACrB,IAAI/H,EAAIssB,GAAKA,EAAE3tB,qBAAqB04S,EAAY/qR,EAAI+qR,EAClDr+R,EAAIlU,OAAO4D,OAAO1I,EAAErB,WACpBua,EAAI,IAAI6tI,EAAQh/I,GAAK,IACvB,OAAOqpB,EAAEpY,EAAG,UAAW,CACrBtb,MAAO45S,EAAiB9kR,EAAGp0B,EAAG8a,KAC5BF,CACN,CACA,SAASu+R,EAAS/kR,EAAGlG,EAAGluB,GACtB,IACE,MAAO,CACL0H,KAAM,SACNmV,IAAKuX,EAAE3zB,KAAKytB,EAAGluB,GAEnB,CAAE,MAAOo0B,GACP,MAAO,CACL1sB,KAAM,QACNmV,IAAKuX,EAET,CACF,CACAlG,EAAEjE,KAAOA,EACT,IAAI9c,EAAI,iBACN3K,EAAI,iBACJqN,EAAI,YACJwkB,EAAI,YACJoB,EAAI,CAAC,EACP,SAASwjR,IAAa,CACtB,SAASG,IAAqB,CAC9B,SAASC,IAA8B,CACvC,IAAItxR,EAAI,CAAC,EACTouF,EAAOpuF,EAAGnN,GAAG,WACX,OAAOla,IACT,IACA,IAAI4G,EAAIZ,OAAOmN,eACb+hB,EAAItuB,GAAKA,EAAEA,EAAEyP,EAAO,MACtB6e,GAAKA,IAAM51B,GAAK2J,EAAElJ,KAAKm1B,EAAGhb,KAAOmN,EAAI6N,GACrC,IAAIU,EAAI+iR,EAA2B94S,UAAY04S,EAAU14S,UAAYmG,OAAO4D,OAAOyd,GACnF,SAASuxR,EAAsBllR,GAC7B,CAAC,OAAQ,QAAS,UAAU5yB,SAAQ,SAAU0sB,GAC5CioF,EAAO/hF,EAAGlG,GAAG,SAAUkG,GACrB,OAAO1zB,KAAK64S,QAAQrrR,EAAGkG,EACzB,GACF,GACF,CACA,SAASolR,EAAcplR,EAAGlG,GACxB,SAAS66E,EAAO/oG,EAAGgzB,EAAGpxB,EAAGgZ,GACvB,IAAIE,EAAIq+R,EAAS/kR,EAAEp0B,GAAIo0B,EAAGpB,GAC1B,GAAI,UAAYlY,EAAEpT,KAAM,CACtB,IAAI4sB,EAAIxZ,EAAE+B,IACR1P,EAAImnB,EAAEh1B,MACR,OAAO6N,GAAK,WAAY,QAAQA,IAAMxD,EAAElJ,KAAK0M,EAAG,WAAa+gB,EAAElkB,QAAQmD,EAAEssS,SAAS94S,MAAK,SAAUyzB,GAC/F20E,EAAO,OAAQ30E,EAAGxyB,EAAGgZ,EACvB,IAAG,SAAUwZ,GACX20E,EAAO,QAAS30E,EAAGxyB,EAAGgZ,EACxB,IAAKsT,EAAElkB,QAAQmD,GAAGxM,MAAK,SAAUyzB,GAC/BE,EAAEh1B,MAAQ80B,EAAGxyB,EAAE0yB,EACjB,IAAG,SAAUF,GACX,OAAO20E,EAAO,QAAS30E,EAAGxyB,EAAGgZ,EAC/B,GACF,CACAA,EAAEE,EAAE+B,IACN,CACA,IAAI7c,EACJgzB,EAAEtyB,KAAM,UAAW,CACjBpB,MAAO,SAAe80B,EAAGzqB,GACvB,SAAS+vS,IACP,OAAO,IAAIxrR,GAAE,SAAUA,EAAGluB,GACxB+oG,EAAO30E,EAAGzqB,EAAGukB,EAAGluB,EAClB,GACF,CACA,OAAOA,EAAIA,EAAIA,EAAEW,KAAK+4S,EAA4BA,GAA8BA,GAClF,GAEJ,CACA,SAASR,EAAiBhrR,EAAGluB,EAAG2J,GAC9B,IAAIqpB,EAAI7lB,EACR,OAAO,SAAUvL,EAAGgZ,GAClB,GAAIoY,IAAMnjB,EAAG,MAAMzL,MAAM,gCACzB,GAAI4uB,IAAMqB,EAAG,CACX,GAAI,UAAYzyB,EAAG,MAAMgZ,EACzB,MAAO,CACLtb,MAAO80B,EACPzO,MAAM,EAEV,CACA,IAAKhc,EAAEgJ,OAAS/Q,EAAG+H,EAAEkT,IAAMjC,IAAK,CAC9B,IAAIE,EAAInR,EAAEgwS,SACV,GAAI7+R,EAAG,CACL,IAAIwZ,EAAIslR,EAAoB9+R,EAAGnR,GAC/B,GAAI2qB,EAAG,CACL,GAAIA,IAAMmB,EAAG,SACb,OAAOnB,CACT,CACF,CACA,GAAI,SAAW3qB,EAAEgJ,OAAQhJ,EAAE8vG,KAAO9vG,EAAEkwS,MAAQlwS,EAAEkT,SAAS,GAAI,UAAYlT,EAAEgJ,OAAQ,CAC/E,GAAIqgB,IAAM7lB,EAAG,MAAM6lB,EAAIqB,EAAG1qB,EAAEkT,IAC5BlT,EAAEmwS,kBAAkBnwS,EAAEkT,IACxB,KAAO,WAAalT,EAAEgJ,QAAUhJ,EAAEowS,OAAO,SAAUpwS,EAAEkT,KACrDmW,EAAInjB,EACJ,IAAIkY,EAAIoxR,EAASjrR,EAAGluB,EAAG2J,GACvB,GAAI,WAAaoe,EAAErgB,KAAM,CACvB,GAAIsrB,EAAIrpB,EAAEgc,KAAO0O,EAAI7xB,EAAGulB,EAAElL,MAAQ4Y,EAAG,SACrC,MAAO,CACLn2B,MAAOyoB,EAAElL,IACT8I,KAAMhc,EAAEgc,KAEZ,CACA,UAAYoC,EAAErgB,OAASsrB,EAAIqB,EAAG1qB,EAAEgJ,OAAS,QAAShJ,EAAEkT,IAAMkL,EAAElL,IAC9D,CACF,CACF,CACA,SAAS+8R,EAAoB1rR,EAAGluB,GAC9B,IAAI2J,EAAI3J,EAAE2S,OACRqgB,EAAI9E,EAAE7qB,SAASsG,GACjB,GAAIqpB,IAAMoB,EAAG,OAAOp0B,EAAE25S,SAAW,KAAM,UAAYhwS,GAAKukB,EAAE7qB,SAAiB,SAAMrD,EAAE2S,OAAS,SAAU3S,EAAE6c,IAAMuX,EAAGwlR,EAAoB1rR,EAAGluB,GAAI,UAAYA,EAAE2S,SAAW,WAAahJ,IAAM3J,EAAE2S,OAAS,QAAS3S,EAAE6c,IAAM,IAAIvN,UAAU,oCAAsC3F,EAAI,aAAc8rB,EAC1R,IAAI7zB,EAAIu3S,EAASnmR,EAAG9E,EAAE7qB,SAAUrD,EAAE6c,KAClC,GAAI,UAAYjb,EAAE8F,KAAM,OAAO1H,EAAE2S,OAAS,QAAS3S,EAAE6c,IAAMjb,EAAEib,IAAK7c,EAAE25S,SAAW,KAAMlkR,EACrF,IAAI7a,EAAIhZ,EAAEib,IACV,OAAOjC,EAAIA,EAAE+K,MAAQ3lB,EAAEkuB,EAAE8rR,YAAcp/R,EAAEtb,MAAOU,EAAE4U,KAAOsZ,EAAE+rR,QAAS,WAAaj6S,EAAE2S,SAAW3S,EAAE2S,OAAS,OAAQ3S,EAAE6c,IAAMuX,GAAIp0B,EAAE25S,SAAW,KAAMlkR,GAAK7a,GAAK5a,EAAE2S,OAAS,QAAS3S,EAAE6c,IAAM,IAAIvN,UAAU,oCAAqCtP,EAAE25S,SAAW,KAAMlkR,EAC9P,CACA,SAASykR,EAAa9lR,GACpB,IAAIlG,EAAI,CACNisR,OAAQ/lR,EAAE,IAEZ,KAAKA,IAAMlG,EAAEksR,SAAWhmR,EAAE,IAAK,KAAKA,IAAMlG,EAAEmsR,WAAajmR,EAAE,GAAIlG,EAAEosR,SAAWlmR,EAAE,IAAK1zB,KAAK65S,WAAWh4S,KAAK2rB,EAC1G,CACA,SAASssR,EAAcpmR,GACrB,IAAIlG,EAAIkG,EAAEqmR,YAAc,CAAC,EACzBvsR,EAAExmB,KAAO,gBAAiBwmB,EAAErR,IAAKuX,EAAEqmR,WAAavsR,CAClD,CACA,SAASy6H,EAAQv0H,GACf1zB,KAAK65S,WAAa,CAAC,CACjBJ,OAAQ,SACN/lR,EAAE5yB,QAAQ04S,EAAcx5S,MAAOA,KAAK4gI,OAAM,EAChD,CACA,SAASvqH,EAAOmX,GACd,GAAIA,GAAK,KAAOA,EAAG,CACjB,IAAIluB,EAAIkuB,EAAEtT,GACV,GAAI5a,EAAG,OAAOA,EAAES,KAAKytB,GACrB,GAAI,mBAAqBA,EAAEtZ,KAAM,OAAOsZ,EACxC,IAAKrK,MAAMqK,EAAErsB,QAAS,CACpB,IAAImxB,GAAK,EACPpxB,EAAI,SAASgT,IACX,OAASoe,EAAI9E,EAAErsB,QAAS,GAAI8H,EAAElJ,KAAKytB,EAAG8E,GAAI,OAAOpe,EAAKtV,MAAQ4uB,EAAE8E,GAAIpe,EAAK+Q,MAAO,EAAI/Q,EACpF,OAAOA,EAAKtV,MAAQ80B,EAAGxf,EAAK+Q,MAAO,EAAI/Q,CACzC,EACF,OAAOhT,EAAEgT,KAAOhT,CAClB,CACF,CACA,MAAM,IAAI0N,WAAU,QAAQ4e,GAAK,mBACnC,CACA,OAAOkrR,EAAkB74S,UAAY84S,EAA4BrmR,EAAEsD,EAAG,cAAe,CACnFh3B,MAAO+5S,EACPvpS,cAAc,IACZkjB,EAAEqmR,EAA4B,cAAe,CAC/C/5S,MAAO85S,EACPtpS,cAAc,IACZspS,EAAkB72P,YAAc4zD,EAAOkjM,EAA4B/kR,EAAG,qBAAsBpG,EAAEwsR,oBAAsB,SAAUtmR,GAChI,IAAIlG,EAAI,mBAAqBkG,GAAKA,EAAE9wB,YACpC,QAAS4qB,IAAMA,IAAMkrR,GAAqB,uBAAyBlrR,EAAEq0B,aAAer0B,EAAEvf,MACxF,EAAGuf,EAAEu8H,KAAO,SAAUr2H,GACpB,OAAO1tB,OAAO4O,eAAiB5O,OAAO4O,eAAe8e,EAAGilR,IAA+BjlR,EAAE3pB,UAAY4uS,EAA4BljM,EAAO/hF,EAAGE,EAAG,sBAAuBF,EAAE7zB,UAAYmG,OAAO4D,OAAOgsB,GAAIlC,CACvM,EAAGlG,EAAEysR,MAAQ,SAAUvmR,GACrB,MAAO,CACLqlR,QAASrlR,EAEb,EAAGklR,EAAsBE,EAAcj5S,WAAY41G,EAAOqjM,EAAcj5S,UAAWua,GAAG,WACpF,OAAOpa,IACT,IAAIwtB,EAAEsrR,cAAgBA,EAAetrR,EAAE+nL,MAAQ,SAAU7hL,EAAGp0B,EAAG2J,EAAGqpB,EAAGpxB,QACnE,IAAWA,IAAMA,EAAI8H,SACrB,IAAIkR,EAAI,IAAI4+R,EAAcvvR,EAAKmK,EAAGp0B,EAAG2J,EAAGqpB,GAAIpxB,GAC5C,OAAOssB,EAAEwsR,oBAAoB16S,GAAK4a,EAAIA,EAAEhG,OAAOjU,MAAK,SAAUyzB,GAC5D,OAAOA,EAAEzO,KAAOyO,EAAE90B,MAAQsb,EAAEhG,MAC9B,GACF,EAAG0kS,EAAsBhjR,GAAI6/E,EAAO7/E,EAAGhC,EAAG,aAAc6hF,EAAO7/E,EAAG1b,GAAG,WACnE,OAAOla,IACT,IAAIy1G,EAAO7/E,EAAG,YAAY,WACxB,MAAO,oBACT,IAAIpI,EAAEvnB,KAAO,SAAUytB,GACrB,IAAIlG,EAAIxnB,OAAO0tB,GACbp0B,EAAI,GACN,IAAK,IAAI2J,KAAKukB,EAAGluB,EAAEuC,KAAKoH,GACxB,OAAO3J,EAAE8sF,UAAW,SAASl4E,IAC3B,KAAO5U,EAAE6B,QAAS,CAChB,IAAIuyB,EAAIp0B,EAAE4yF,MACV,GAAIx+D,KAAKlG,EAAG,OAAOtZ,EAAKtV,MAAQ80B,EAAGxf,EAAK+Q,MAAO,EAAI/Q,CACrD,CACA,OAAOA,EAAK+Q,MAAO,EAAI/Q,CACzB,CACF,EAAGsZ,EAAEnX,OAASA,EAAQ4xI,EAAQpoJ,UAAY,CACxC+C,YAAaqlJ,EACbrnB,MAAO,SAAepzG,GACpB,GAAIxtB,KAAK48B,KAAO,EAAG58B,KAAKkU,KAAO,EAAGlU,KAAK+4G,KAAO/4G,KAAKm5S,MAAQzlR,EAAG1zB,KAAKilB,MAAO,EAAIjlB,KAAKi5S,SAAW,KAAMj5S,KAAKiS,OAAS,OAAQjS,KAAKmc,IAAMuX,EAAG1zB,KAAK65S,WAAW/4S,QAAQg5S,IAAiBtsR,EAAG,IAAK,IAAIluB,KAAKU,KAAM,MAAQV,EAAEijB,OAAO,IAAMtZ,EAAElJ,KAAKC,KAAMV,KAAO6jB,OAAO7jB,EAAE0F,MAAM,MAAQhF,KAAKV,GAAKo0B,EACtR,EACA0kG,KAAM,WACJp4H,KAAKilB,MAAO,EACZ,IAAIyO,EAAI1zB,KAAK65S,WAAW,GAAGE,WAC3B,GAAI,UAAYrmR,EAAE1sB,KAAM,MAAM0sB,EAAEvX,IAChC,OAAOnc,KAAKk6S,IACd,EACAd,kBAAmB,SAA2B5rR,GAC5C,GAAIxtB,KAAKilB,KAAM,MAAMuI,EACrB,IAAIluB,EAAIU,KACR,SAAS8sO,EAAO7jO,EAAGqpB,GACjB,OAAOpY,EAAElT,KAAO,QAASkT,EAAEiC,IAAMqR,EAAGluB,EAAE4U,KAAOjL,EAAGqpB,IAAMhzB,EAAE2S,OAAS,OAAQ3S,EAAE6c,IAAMuX,KAAMpB,CACzF,CACA,IAAK,IAAIA,EAAItyB,KAAK65S,WAAW14S,OAAS,EAAGmxB,GAAK,IAAKA,EAAG,CACpD,IAAIpxB,EAAIlB,KAAK65S,WAAWvnR,GACtBpY,EAAIhZ,EAAE64S,WACR,GAAI,SAAW74S,EAAEu4S,OAAQ,OAAO3sE,EAAO,OACvC,GAAI5rO,EAAEu4S,QAAUz5S,KAAK48B,KAAM,CACzB,IAAIxiB,EAAInR,EAAElJ,KAAKmB,EAAG,YAChB0yB,EAAI3qB,EAAElJ,KAAKmB,EAAG,cAChB,GAAIkZ,GAAKwZ,EAAG,CACV,GAAI5zB,KAAK48B,KAAO17B,EAAEw4S,SAAU,OAAO5sE,EAAO5rO,EAAEw4S,UAAU,GACtD,GAAI15S,KAAK48B,KAAO17B,EAAEy4S,WAAY,OAAO7sE,EAAO5rO,EAAEy4S,WAChD,MAAO,GAAIv/R,GACT,GAAIpa,KAAK48B,KAAO17B,EAAEw4S,SAAU,OAAO5sE,EAAO5rO,EAAEw4S,UAAU,OACjD,CACL,IAAK9lR,EAAG,MAAMlwB,MAAM,0CACpB,GAAI1D,KAAK48B,KAAO17B,EAAEy4S,WAAY,OAAO7sE,EAAO5rO,EAAEy4S,WAChD,CACF,CACF,CACF,EACAN,OAAQ,SAAgB3lR,EAAGlG,GACzB,IAAK,IAAIluB,EAAIU,KAAK65S,WAAW14S,OAAS,EAAG7B,GAAK,IAAKA,EAAG,CACpD,IAAIgzB,EAAItyB,KAAK65S,WAAWv6S,GACxB,GAAIgzB,EAAEmnR,QAAUz5S,KAAK48B,MAAQ3zB,EAAElJ,KAAKuyB,EAAG,eAAiBtyB,KAAK48B,KAAOtK,EAAEqnR,WAAY,CAChF,IAAIz4S,EAAIoxB,EACR,KACF,CACF,CACApxB,IAAM,UAAYwyB,GAAK,aAAeA,IAAMxyB,EAAEu4S,QAAUjsR,GAAKA,GAAKtsB,EAAEy4S,aAAez4S,EAAI,MACvF,IAAIgZ,EAAIhZ,EAAIA,EAAE64S,WAAa,CAAC,EAC5B,OAAO7/R,EAAElT,KAAO0sB,EAAGxZ,EAAEiC,IAAMqR,EAAGtsB,GAAKlB,KAAKiS,OAAS,OAAQjS,KAAKkU,KAAOhT,EAAEy4S,WAAY5kR,GAAK/0B,KAAKi1I,SAAS/6H,EACxG,EACA+6H,SAAU,SAAkBvhH,EAAGlG,GAC7B,GAAI,UAAYkG,EAAE1sB,KAAM,MAAM0sB,EAAEvX,IAChC,MAAO,UAAYuX,EAAE1sB,MAAQ,aAAe0sB,EAAE1sB,KAAOhH,KAAKkU,KAAOwf,EAAEvX,IAAM,WAAauX,EAAE1sB,MAAQhH,KAAKk6S,KAAOl6S,KAAKmc,IAAMuX,EAAEvX,IAAKnc,KAAKiS,OAAS,SAAUjS,KAAKkU,KAAO,OAAS,WAAawf,EAAE1sB,MAAQwmB,IAAMxtB,KAAKkU,KAAOsZ,GAAIuH,CAC1N,EACAolR,OAAQ,SAAgBzmR,GACtB,IAAK,IAAIlG,EAAIxtB,KAAK65S,WAAW14S,OAAS,EAAGqsB,GAAK,IAAKA,EAAG,CACpD,IAAIluB,EAAIU,KAAK65S,WAAWrsR,GACxB,GAAIluB,EAAEq6S,aAAejmR,EAAG,OAAO1zB,KAAKi1I,SAAS31I,EAAEy6S,WAAYz6S,EAAEs6S,UAAWE,EAAcx6S,GAAIy1B,CAC5F,CACF,EACA,MAAS,SAAgBrB,GACvB,IAAK,IAAIlG,EAAIxtB,KAAK65S,WAAW14S,OAAS,EAAGqsB,GAAK,IAAKA,EAAG,CACpD,IAAIluB,EAAIU,KAAK65S,WAAWrsR,GACxB,GAAIluB,EAAEm6S,SAAW/lR,EAAG,CAClB,IAAIzqB,EAAI3J,EAAEy6S,WACV,GAAI,UAAY9wS,EAAEjC,KAAM,CACtB,IAAIsrB,EAAIrpB,EAAEkT,IACV29R,EAAcx6S,EAChB,CACA,OAAOgzB,CACT,CACF,CACA,MAAM5uB,MAAM,wBACd,EACA02S,cAAe,SAAuB5sR,EAAGluB,EAAG2J,GAC1C,OAAOjJ,KAAKi5S,SAAW,CACrBt2S,SAAU0T,EAAOmX,GACjB8rR,WAAYh6S,EACZi6S,QAAStwS,GACR,SAAWjJ,KAAKiS,SAAWjS,KAAKmc,IAAMuX,GAAIqB,CAC/C,GACCvH,CACL,eC5SW6sR,GAAY,yBAGnBC,GAAc,WAChB17E,IAAQ,EAAO,wEACjB,EAmCA,SAlC2B/K,EAAAA,cAAoB,CAC7C0mF,cAAeD,GACfE,eAAgBF,GAChBG,cAAeH,GACfI,gBAAiBJ,GACjBK,eAAgBL,GAChBM,gBAAiBN,GACjBO,eAAgBP,GAChBQ,kBAAmBR,GACnBS,mBAAoBT,GACpBU,YAAaV,GACbW,UAAWX,GACXY,cAAeZ,GACfa,eAAgBb,GAChBc,eAAgBd,GAChBe,OAAQf,GACRgB,iBAAkB,WAEhB,OADAhB,KACO,CACL/vO,SAAU+vO,GACViB,gBAAiBjB,GACjBkB,cAAelB,GACfmB,aAAcnB,GACdoB,iBAAkBpB,GAClBqB,YAAarB,GACbsB,aAActB,GACduB,cAAevB,GACfwB,UAAWxB,GACXyB,oBAAqBzB,GACrB0B,YAAa1B,GACb2B,gBAAiB3B,GAErB,ICtCF,SAD+BzmF,EAAAA,cAAoB,MCD5C,SAASrsH,GAAQ5oG,GACtB,YAAcqO,IAAVrO,GAAiC,OAAVA,EAClB,GAEFiC,MAAMqR,QAAQtT,GAASA,EAAQ,CAACA,EACzC,CCLO,SAASs9S,KACd,MAAO,CACLt8S,QAAS,+BACTuiH,SAAU,iBACVg6L,KAAM,uBACN15R,WAAY,qBACZ4S,KAAM,CACJpyB,OAAQ,sCACRuG,MAAO,8CACPsjK,QAAS,yBAEXhmF,MAAO,CACLxzE,OAAQ,iBACRrB,OAAQ,4BACRJ,MAAO,kBACPuC,OAAQ,kBACR0lC,OAAQ,iBACRzkB,KAAM,iBACN+mR,QAAS,iBACTl5R,QAAS,kBACT06G,MAAO,iBACP11G,OAAQ,uBACRywC,MAAO,uBACPz2D,IAAK,uBACL0oH,IAAK,wBAEPt3G,OAAQ,CACNmR,IAAK,mCACLxB,IAAK,oCACLD,IAAK,yCACLqQ,MAAO,2CAETymB,OAAQ,CACNr1B,IAAK,mBACLxB,IAAK,4BACLD,IAAK,+BACLqQ,MAAO,gCAETxhB,MAAO,CACL4S,IAAK,kCACLxB,IAAK,sCACLD,IAAK,yCACLqQ,MAAO,0CAETi2E,QAAS,CACP+yM,SAAU,yCAEZv0S,MAAO,WACL,IAAIw0S,EAAS/yS,KAAKC,MAAMD,KAAKE,UAAUzJ,OAEvC,OADAs8S,EAAOx0S,MAAQ9H,KAAK8H,MACbw0S,CACT,EAEJ,CACO,IAAIC,GAAWL,KClDtB,SAAS,GAAiBxoR,GACxB,IAAIp0B,EAAI,mBAAqByyC,IAAM,IAAIA,SAAQ,EAC/C,OAAO,GAAmB,SAA0Bre,GAClD,GAAI,OAASA,ICPjB,SAA2BA,GACzB,IACE,OAAQ,IAAMvsB,SAAS6G,SAASjO,KAAK2zB,GAAGhvB,QAAQ,gBAClD,CAAE,MAAOuE,GACP,MAAO,mBAAqByqB,CAC9B,CACF,CDCuB,CAAiBA,GAAI,OAAOA,EAC/C,GAAI,mBAAqBA,EAAG,MAAM,IAAI9kB,UAAU,sDAChD,QAAI,IAAWtP,EAAG,CAChB,GAAIA,EAAEuT,IAAI6gB,GAAI,OAAOp0B,EAAEkO,IAAIkmB,GAC3Bp0B,EAAEqK,IAAI+pB,EAAG5Y,EACX,CACA,SAASA,IACP,OEZN,SAAoB4Y,EAAGlG,EAAGluB,GACxB,GAAI,KAA4B,OAAOqiD,QAAQC,UAAUvnC,MAAM,KAAM5K,WACrE,IAAI6iB,EAAI,CAAC,MACTA,EAAEzwB,KAAKwY,MAAMiY,EAAG9E,GAChB,IAAInG,EAAI,IAAKqM,EAAEnmB,KAAK8M,MAAMqZ,EAAGpB,IAC7B,OAAOhzB,GAAK,GAAe+nB,EAAG/nB,EAAEO,WAAYwnB,CAC9C,CFMa,CAAUqM,EAAGjkB,UAAW,GAAezP,MAAM4C,YACtD,CACA,OAAOkY,EAAQjb,UAAYmG,OAAO4D,OAAO8pB,EAAE7zB,UAAW,CACpD+C,YAAa,CACXhE,MAAOkc,EACPxG,YAAY,EACZC,UAAU,EACVnF,cAAc,KAEd,GAAe0L,EAAS4Y,EAC9B,EAAG,GAAiBA,EACtB,CGbA,IAAI8oR,GAAe,WAeZ,SAASC,GAAmBtzE,GACjC,IAAKA,IAAWA,EAAOhoO,OAAQ,OAAO,KACtC,IAAI2kM,EAAS,CAAC,EAMd,OALAqjC,EAAOroO,SAAQ,SAAU+J,GACvB,IAAIonC,EAAQpnC,EAAMonC,MAClB6zJ,EAAO7zJ,GAAS6zJ,EAAO7zJ,IAAU,GACjC6zJ,EAAO7zJ,GAAOpwC,KAAKgJ,EACrB,IACOi7L,CACT,CACO,SAAS7iM,GAAOa,GACrB,IAAK,IAAIwsO,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClGpmN,EAAKomN,EAAO,GAAK9gO,UAAU8gO,GAE7B,IAAIrvO,EAAI,EACJujB,EAAM0F,EAAKhpB,OACf,MAAwB,oBAAb2C,EAEFA,EAASuW,MAAM,KAAM8P,GAEN,kBAAbrmB,EACCA,EAAS4P,QAAQ8oS,IAAc,SAAU7xR,GACjD,GAAU,OAANA,EACF,MAAO,IAET,GAAIzpB,GAAKujB,EACP,OAAOkG,EAET,OAAQA,GACN,IAAK,KACH,OAAO1jB,OAAOkjB,EAAKjpB,MACrB,IAAK,KACH,OAAOgG,OAAOijB,EAAKjpB,MACrB,IAAK,KACH,IACE,OAAOqI,KAAKE,UAAU0gB,EAAKjpB,KAC7B,CAAE,MAAOiwB,GACP,MAAO,YACT,CACA,MACF,QACE,OAAOxG,EAEb,IAGK7mB,CACT,CAIO,SAAS44S,GAAa99S,EAAOoI,GAClC,YAAciG,IAAVrO,GAAiC,OAAVA,MAGd,UAAToI,IAAoBnG,MAAMqR,QAAQtT,IAAWA,EAAMuC,YAPzD,SAA4B6F,GAC1B,MAAgB,WAATA,GAA8B,QAATA,GAA2B,QAATA,GAA2B,UAATA,GAA6B,SAATA,GAA4B,YAATA,CACzG,CAQM21S,CAAmB31S,IAA0B,kBAAVpI,GAAuBA,GAIhE,CAmBA,SAASg+S,GAAiBvwJ,EAAKn0G,EAAMltB,GACnC,IAAI9a,EAAQ,EACRgvF,EAAYmtD,EAAIlrJ,QACpB,SAAS+S,EAAKi1N,GACZ,GAAIA,GAAUA,EAAOhoO,OACnB6pB,EAASm+M,OADX,CAIA,IAAI0zE,EAAW3sS,EACfA,GAAgB,EACZ2sS,EAAW39M,EACbhnD,EAAKm0G,EAAIwwJ,GAAW3oS,GAEpB8W,EAAS,GANX,CAQF,CACA9W,CAAK,GACP,CAQO,IAAI4oS,GAAoC,SAAUC,GACvDjmE,GAAUgmE,EAAsBC,GAChC,IAAI1iR,EAAS08M,GAAa+lE,GAC1B,SAASA,EAAqB3zE,EAAQrjC,GACpC,IAAIrrK,EAOJ,OANAu8M,GAAgBh3O,KAAM88S,GACtBriR,EAAQJ,EAAOt6B,KAAKC,KAAM,2BAC1B63G,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,cAAU,IACzDo9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,cAAU,GACzDA,EAAM0uM,OAASA,EACf1uM,EAAMqrK,OAASA,EACRrrK,CACT,CACA,OAAOw8M,GAAa6lE,EACtB,CAd+C,CAc/BE,GAAiBt5S,QAC1B,SAASu5S,GAASC,EAAQjyK,EAAQ/yF,EAAMltB,EAAUpf,GACvD,GAAIq/H,EAAO9oH,MAAO,CAChB,IAAIg7R,EAAW,IAAIn0S,SAAQ,SAAUM,EAAS6lB,GAC5C,IAIIiuR,EA7BV,SAAuBF,GACrB,IAAI7wI,EAAM,GAIV,OAHArmK,OAAOC,KAAKi3S,GAAQp8S,SAAQ,SAAUF,GACpCyrK,EAAIxqK,KAAKwY,MAAMgyJ,EAAK22E,GAAmBk6D,EAAOt8S,IAAM,IACtD,IACOyrK,CACT,CAuBuBgxI,CAAcH,GAC/BN,GAAiBQ,EAAYllQ,GALlB,SAAcixL,GAEvB,OADAn+M,EAASm+M,GACFA,EAAOhoO,OAASguB,EAAO,IAAI2tR,GAAqB3zE,EAAQszE,GAAmBtzE,KAAY7/N,EAAQsC,EACxG,GAGF,IAIA,OAHAuxS,EAAS5rR,OAAM,SAAU/D,GACvB,OAAOA,CACT,IACO2vR,CACT,CACA,IAAIG,GAAqC,IAAvBryK,EAAOqyK,YAAuBt3S,OAAOC,KAAKi3S,GAAUjyK,EAAOqyK,aAAe,GACxFC,EAAav3S,OAAOC,KAAKi3S,GACzBM,EAAeD,EAAWp8S,OAC1B+pC,EAAQ,EACRi1F,EAAU,GACVn5D,EAAU,IAAIh+D,SAAQ,SAAUM,EAAS6lB,GAC3C,IAAIjb,EAAO,SAAci1N,GAIvB,GAFAhpG,EAAQt+H,KAAKwY,MAAM8lH,EAASgpG,KAC5Bj+L,IACcsyQ,EAEZ,OADAxyR,EAASm1G,GACFA,EAAQh/H,OAASguB,EAAO,IAAI2tR,GAAqB38K,EAASs8K,GAAmBt8K,KAAa72H,EAAQsC,EAE7G,EACK2xS,EAAWp8S,SACd6pB,EAASm1G,GACT72H,EAAQsC,IAEV2xS,EAAWz8S,SAAQ,SAAUgE,GAC3B,IAAIunJ,EAAM6wJ,EAAOp4S,IACiB,IAA9Bw4S,EAAY54S,QAAQI,GACtB83S,GAAiBvwJ,EAAKn0G,EAAMhkC,GA5FpC,SAA4Bm4I,EAAKn0G,EAAMltB,GACrC,IAAIm1G,EAAU,GACVj1F,EAAQ,EACRg0D,EAAYmtD,EAAIlrJ,OACpB,SAAS6yC,EAAMm1L,GACbhpG,EAAQt+H,KAAKwY,MAAM8lH,EAAS6iH,GAAmB7Z,GAAU,OACzDj+L,IACcg0D,GACZl0E,EAASm1G,EAEb,CACAksB,EAAIvrJ,SAAQ,SAAUoZ,GACpBg+B,EAAKh+B,EAAG85B,EACV,GACF,CAgFQypQ,CAAmBpxJ,EAAKn0G,EAAMhkC,EAElC,GACF,IAIA,OAHA8yD,EAAQz1C,OAAM,SAAU/D,GACtB,OAAOA,CACT,IACOw5C,CACT,CAcO,SAAS02O,GAAgBrrK,EAAMzmI,GACpC,OAAO,SAAUutD,GACf,IAAIwkP,EAfYl7S,EAqBhB,OAJEk7S,EADEtrK,EAAKurK,WAbb,SAAkBh/S,EAAO4X,GAEvB,IADA,IAAI0e,EAAIt2B,EACCsC,EAAI,EAAGA,EAAIsV,EAAKrV,OAAQD,IAAK,CACpC,QAAS+L,GAALioB,EACF,OAAOA,EAETA,EAAIA,EAAE1e,EAAKtV,GACb,CACA,OAAOg0B,CACT,CAKmButB,CAAS72C,EAAQymI,EAAKurK,YAEtBhyS,EAAOutD,EAAGlnB,OAASogG,EAAKwrK,YAnBvBp7S,EAqBD02D,SApBgBlsD,IAAhBxK,EAAI+sE,SAqBjBrW,EAAGlnB,MAAQknB,EAAGlnB,OAASogG,EAAKwrK,UAC5B1kP,EAAGwkP,WAAaA,EACTxkP,GAEF,CACLqW,QAAuB,oBAAPrW,EAAoBA,IAAOA,EAC3CwkP,WAAYA,EACZ1rQ,MAAOknB,EAAGlnB,OAASogG,EAAKwrK,UAE5B,CACF,CACO,SAASC,GAAU/yS,EAAQa,GAChC,GAAIA,EACF,IAAK,IAAI+nB,KAAK/nB,EACZ,GAAIA,EAAOtI,eAAeqwB,GAAI,CAC5B,IAAI/0B,EAAQgN,EAAO+nB,GACI,YAAnBnxB,EAAAA,GAAAA,GAAQ5D,IAA8C,YAAvB4D,EAAAA,GAAAA,GAAQuI,EAAO4oB,IAChD5oB,EAAO4oB,GAAK6kN,GAAcA,GAAc,CAAC,EAAGztO,EAAO4oB,IAAK/0B,GAExDmM,EAAO4oB,GAAK/0B,CAEhB,CAGJ,OAAOmM,CACT,CClPA,IAAIgzS,GAAO,OCKX,SALe,SAAkB1rK,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,EAAS8D,IACjEqrI,EAAKlwB,UAAcv2G,EAAOtI,eAAe+uI,EAAKpgG,SAAUyqQ,GAAa99S,EAAOoI,GAAQqrI,EAAKrrI,OAC3FmiO,EAAOtnO,KAAKoB,GAAOC,EAAQq5S,SAASp6L,SAAUkwB,EAAKwrK,WAEvD,ECJA,IAAIG,GCKJ,IAAI10M,GAEK,uOAFLA,GAOG,iCAEHxiB,GAAQ,CACV5jE,QAAS,SAAiBtkB,GACxB,OAAOkoF,GAAMhtC,OAAOl7C,IAAU8nB,SAAS9nB,EAAO,MAAQA,CACxD,EACAg/H,MAAO,SAAeh/H,GACpB,OAAOkoF,GAAMhtC,OAAOl7C,KAAWkoF,GAAM5jE,QAAQtkB,EAC/C,EACAiT,MAAO,SAAejT,GACpB,OAAOiC,MAAMqR,QAAQtT,EACvB,EACAspB,OAAQ,SAAgBtpB,GACtB,GAAIA,aAAiB+jB,OACnB,OAAO,EAET,IACE,QAAS,IAAIA,OAAO/jB,EACtB,CAAE,MAAO4uB,KACP,OAAO,CACT,CACF,EACA6H,KAAM,SAAcz2B,GAClB,MAAgC,oBAAlBA,EAAMm5B,SAAoD,oBAAnBn5B,EAAM63B,UAAoD,oBAAlB73B,EAAMq/S,UAA2B96R,MAAMvkB,EAAMm5B,UAC5I,EACA+hB,OAAQ,SAAgBl7C,GACtB,OAAIukB,MAAMvkB,IAGc,kBAAVA,CAChB,EACAwV,OAAQ,SAAgBxV,GACtB,MAA0B,YAAnB4D,EAAAA,GAAAA,GAAQ5D,KAAwBkoF,GAAMj1E,MAAMjT,EACrD,EACAqT,OAAQ,SAAgBrT,GACtB,MAAwB,oBAAVA,CAChB,EACA+5D,MAAO,SAAe/5D,GACpB,MAAwB,kBAAVA,GAAsBA,EAAMuC,QAAU,OAASvC,EAAMga,MAAM0wF,GAC3E,EACApnG,IAAK,SAAatD,GAChB,MAAwB,kBAAVA,GAAsBA,EAAMuC,QAAU,QAAUvC,EAAMga,MDpDxE,WACE,GAAIolS,GACF,OAAOA,GAET,IAAIl1M,EAAO,eACP3uF,EAAI,SAAWjX,GACjB,OAAOA,GAAWA,EAAQg7S,kBAAoB,mBAAmB15S,OAAOskG,EAAM,UAAUtkG,OAAOskG,EAAM,eAAiB,EACxH,EACIq1M,EAAK,iGACLC,EAAQ,mBACRC,EAAS,CAAC,MAAM75S,OAAO45S,EAAO,YAAY55S,OAAO45S,EAAO,OAC5D,MAAM55S,OAAO45S,EAAO,YAAY55S,OAAO25S,EAAI,MAAM35S,OAAO45S,EAAO,OAC/D,MAAM55S,OAAO45S,EAAO,aAAa55S,OAAO25S,EAAI,SAAS35S,OAAO45S,EAAO,aACnE,MAAM55S,OAAO45S,EAAO,gBAAgB55S,OAAO45S,EAAO,WAAW55S,OAAO25S,EAAI,SAAS35S,OAAO45S,EAAO,aAC/F,MAAM55S,OAAO45S,EAAO,gBAAgB55S,OAAO45S,EAAO,WAAW55S,OAAO25S,EAAI,SAAS35S,OAAO45S,EAAO,aAC/F,MAAM55S,OAAO45S,EAAO,gBAAgB55S,OAAO45S,EAAO,WAAW55S,OAAO25S,EAAI,SAAS35S,OAAO45S,EAAO,aAC/F,MAAM55S,OAAO45S,EAAO,gBAAgB55S,OAAO45S,EAAO,WAAW55S,OAAO25S,EAAI,SAAS35S,OAAO45S,EAAO,aAC/F,cAAc55S,OAAO45S,EAAO,WAAW55S,OAAO25S,EAAI,SAAS35S,OAAO45S,EAAO,eAIrEE,EAAK,MAAM95S,OAAO65S,EAAOp5S,KAAK,KAAM,KAAKT,OAFhC,yBAKT+5S,EAAW,IAAI57R,OAAO,OAAOne,OAAO25S,EAAI,WAAW35S,OAAO85S,EAAI,OAC9DE,EAAU,IAAI77R,OAAO,IAAIne,OAAO25S,EAAI,MACpCM,EAAU,IAAI97R,OAAO,IAAIne,OAAO85S,EAAI,MACpCI,EAAK,SAAYx7S,GACnB,OAAOA,GAAWA,EAAQq3C,MAAQgkQ,EAAW,IAAI57R,OAAO,MAAMne,OAAO2V,EAAEjX,IAAUsB,OAAO25S,GAAI35S,OAAO2V,EAAEjX,GAAU,SAASsB,OAAO2V,EAAEjX,IAAUsB,OAAO85S,GAAI95S,OAAO2V,EAAEjX,GAAU,KAAM,IACjL,EACAw7S,EAAGP,GAAK,SAAUj7S,GAChB,OAAOA,GAAWA,EAAQq3C,MAAQikQ,EAAU,IAAI77R,OAAO,GAAGne,OAAO2V,EAAEjX,IAAUsB,OAAO25S,GAAI35S,OAAO2V,EAAEjX,IAAW,IAC9G,EACAw7S,EAAGJ,GAAK,SAAUp7S,GAChB,OAAOA,GAAWA,EAAQq3C,MAAQkkQ,EAAU,IAAI97R,OAAO,GAAGne,OAAO2V,EAAEjX,IAAUsB,OAAO85S,GAAI95S,OAAO2V,EAAEjX,IAAW,IAC9G,EACA,IAEIy7S,EAAOD,EAAGP,KAAKvyS,OACfgzS,EAAOF,EAAGJ,KAAK1yS,OAMfsrJ,EAAQ,MAAM1yJ,OATH,qBASoB,YAAYA,OARpC,uBAQiD,iBAAiBA,OAAOm6S,EAAM,KAAKn6S,OAAOo6S,EAAM,KAAKp6S,OALtG,iEAKmHA,OAJjH,kEAIgIA,OAHnI,sCAG+I,KAAKA,OAFnJ,kBAEgKA,OADhK,sBAGX,OADAw5S,GAAS,IAAIr7R,OAAO,OAAOne,OAAO0yJ,EAAO,MAAO,IAEjD,CCI6E2nJ,GAC5E,EACAj0L,IAAK,SAAahsH,GAChB,MAAwB,kBAAVA,KAAwBA,EAAMga,MAAM0wF,GACpD,GAkBF,SAhBW,SAAc+oC,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,GACpD,GAAImvI,EAAKlwB,eAAsBl1G,IAAVrO,EACnBujH,GAASkwB,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,OADxC,CAIA,IACI47S,EAAWzsK,EAAKrrI,KADP,CAAC,UAAW,QAAS,QAAS,SAAU,SAAU,SAAU,QAAS,SAAU,OAAQ,MAAO,OAEhGtC,QAAQo6S,IAAa,EACzBh4N,GAAMg4N,GAAUlgT,IACnBuqO,EAAOtnO,KAAKoB,GAAOC,EAAQq5S,SAASz1N,MAAMg4N,GAAWzsK,EAAKwrK,UAAWxrK,EAAKrrI,OAGnE83S,IAAYt8S,EAAAA,GAAAA,GAAQ5D,KAAWyzI,EAAKrrI,MAC7CmiO,EAAOtnO,KAAKoB,GAAOC,EAAQq5S,SAASz1N,MAAMg4N,GAAWzsK,EAAKwrK,UAAWxrK,EAAKrrI,MAT5E,CAWF,ECzDA,MCZA,IACEm7G,SAAUA,GACV1/F,WDKe,SAAoB4vH,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,IAC5D,QAAQ8Z,KAAKpe,IAAoB,KAAVA,IACzBuqO,EAAOtnO,KAAKoB,GAAOC,EAAQq5S,SAAS95R,WAAY4vH,EAAKwrK,WAEzD,ECRE72S,KAAMA,GACNqsB,MCTU,SAAeg/G,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,GACtD,IAAIuhB,EAA0B,kBAAb4tH,EAAK5tH,IAClBxB,EAA0B,kBAAbovH,EAAKpvH,IAClBD,EAA0B,kBAAbqvH,EAAKrvH,IAGlBra,EAAM/J,EACNkG,EAAM,KACN+1O,EAAuB,kBAAVj8O,EACbo0C,EAAuB,kBAAVp0C,EACbytJ,EAAMxrJ,MAAMqR,QAAQtT,GAWxB,GAVIi8O,EACF/1O,EAAM,SACGkuC,EACTluC,EAAM,SACGunJ,IACTvnJ,EAAM,UAKHA,EACH,OAAO,EAELunJ,IACF1jJ,EAAM/J,EAAMuC,QAEV6xC,IAEFrqC,EAAM/J,EAAM8U,QAxBC,kCAwBiB,KAAKvS,QAEjCsjB,EACE9b,IAAQ0pI,EAAK5tH,KACf0kN,EAAOtnO,KAAKoB,GAAOC,EAAQq5S,SAASz3S,GAAK2f,IAAK4tH,EAAKwrK,UAAWxrK,EAAK5tH,MAE5DxB,IAAQD,GAAOra,EAAM0pI,EAAKpvH,IACnCkmN,EAAOtnO,KAAKoB,GAAOC,EAAQq5S,SAASz3S,GAAKme,IAAKovH,EAAKwrK,UAAWxrK,EAAKpvH,MAC1DD,IAAQC,GAAOta,EAAM0pI,EAAKrvH,IACnCmmN,EAAOtnO,KAAKoB,GAAOC,EAAQq5S,SAASz3S,GAAKke,IAAKqvH,EAAKwrK,UAAWxrK,EAAKrvH,MAC1DC,GAAOD,IAAQra,EAAM0pI,EAAKpvH,KAAOta,EAAM0pI,EAAKrvH,MACrDmmN,EAAOtnO,KAAKoB,GAAOC,EAAQq5S,SAASz3S,GAAKuuB,MAAOg/G,EAAKwrK,UAAWxrK,EAAKpvH,IAAKovH,EAAKrvH,KAEnF,EDhCEm5R,KLTe,SAAoB9pK,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,GAChEmvI,EAAK0rK,IAAQl9S,MAAMqR,QAAQmgI,EAAK0rK,KAAS1rK,EAAK0rK,IAAQ,IACnB,IAA/B1rK,EAAK0rK,IAAMr5S,QAAQ9F,IACrBuqO,EAAOtnO,KAAKoB,GAAOC,EAAQq5S,SAASwB,IAAO1rK,EAAKwrK,UAAWxrK,EAAK0rK,IAAM94S,KAAK,OAE/E,EKKEqkG,QEXY,SAAiB+oC,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,GAC1D,GAAImvI,EAAK/oC,QACP,GAAI+oC,EAAK/oC,mBAAmB3mF,OAI1B0vH,EAAK/oC,QAAQl3D,UAAY,EACpBigG,EAAK/oC,QAAQtsF,KAAKpe,IACrBuqO,EAAOtnO,KAAKoB,GAAOC,EAAQq5S,SAASjzM,QAAQ+yM,SAAUhqK,EAAKwrK,UAAWj/S,EAAOyzI,EAAK/oC,eAE/E,GAA4B,kBAAjB+oC,EAAK/oC,QAAsB,CAC5B,IAAI3mF,OAAO0vH,EAAK/oC,SACjBtsF,KAAKpe,IACjBuqO,EAAOtnO,KAAKoB,GAAOC,EAAQq5S,SAASjzM,QAAQ+yM,SAAUhqK,EAAKwrK,UAAWj/S,EAAOyzI,EAAK/oC,SAEtF,CAEJ,GCDA,SAfW,SAAc+oC,EAAMzzI,EAAOosB,EAAUpf,EAAQ1I,GACtD,IAAI47S,EAAWzsK,EAAKrrI,KAChBmiO,EAAS,GAEb,GADe92F,EAAKlwB,WAAakwB,EAAKlwB,UAAYv2G,EAAOtI,eAAe+uI,EAAKpgG,OAC/D,CACZ,GAAIyqQ,GAAa99S,EAAOkgT,KAAczsK,EAAKlwB,SACzC,OAAOn3F,IAET3lB,GAAM88G,SAASkwB,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,EAAS47S,GAChDpC,GAAa99S,EAAOkgT,IACvBz5S,GAAM2B,KAAKqrI,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,EAE5C,CACA8nB,EAASm+M,EACX,ECDA,IACE71N,OCdW,SAAgB++H,EAAMzzI,EAAOosB,EAAUpf,EAAQ1I,GAC1D,IAAIimO,EAAS,GAEb,GADe92F,EAAKlwB,WAAakwB,EAAKlwB,UAAYv2G,EAAOtI,eAAe+uI,EAAKpgG,OAC/D,CACZ,GAAIyqQ,GAAa99S,EAAO,YAAcyzI,EAAKlwB,SACzC,OAAOn3F,IAET3lB,GAAM88G,SAASkwB,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,EAAS,UAChDw5S,GAAa99S,EAAO,YACvByG,GAAM2B,KAAKqrI,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,GACxCmC,GAAMguB,MAAMg/G,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,GACzCmC,GAAMikG,QAAQ+oC,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,IACnB,IAApBmvI,EAAK5vH,YACPpd,GAAMod,WAAW4vH,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,GAGpD,CACA8nB,EAASm+M,EACX,EDHEl3N,OEfW,SAAgBogI,EAAMzzI,EAAOosB,EAAUpf,EAAQ1I,GAC1D,IAAIimO,EAAS,GAEb,GADe92F,EAAKlwB,WAAakwB,EAAKlwB,UAAYv2G,EAAOtI,eAAe+uI,EAAKpgG,OAC/D,CACZ,GAAIyqQ,GAAa99S,KAAWyzI,EAAKlwB,SAC/B,OAAOn3F,IAET3lB,GAAM88G,SAASkwB,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,QAC9B+J,IAAVrO,GACFyG,GAAM2B,KAAKqrI,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,EAE5C,CACA8nB,EAASm+M,EACX,EFGErvL,OGhBW,SAAgBu4F,EAAMzzI,EAAOosB,EAAUpf,EAAQ1I,GAC1D,IAAIimO,EAAS,GAEb,GADe92F,EAAKlwB,WAAakwB,EAAKlwB,UAAYv2G,EAAOtI,eAAe+uI,EAAKpgG,OAC/D,CAKZ,GAJc,KAAVrzC,IAEFA,OAAQqO,GAENyvS,GAAa99S,KAAWyzI,EAAKlwB,SAC/B,OAAOn3F,IAET3lB,GAAM88G,SAASkwB,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,QAC9B+J,IAAVrO,IACFyG,GAAM2B,KAAKqrI,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,GACxCmC,GAAMguB,MAAMg/G,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,GAE7C,CACA8nB,EAASm+M,EACX,EHDEizE,QIjBY,SAAiB/pK,EAAMzzI,EAAOosB,EAAUpf,EAAQ1I,GAC5D,IAAIimO,EAAS,GAEb,GADe92F,EAAKlwB,WAAakwB,EAAKlwB,UAAYv2G,EAAOtI,eAAe+uI,EAAKpgG,OAC/D,CACZ,GAAIyqQ,GAAa99S,KAAWyzI,EAAKlwB,SAC/B,OAAOn3F,IAET3lB,GAAM88G,SAASkwB,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,QAC9B+J,IAAVrO,GACFyG,GAAM2B,KAAKqrI,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,EAE5C,CACA8nB,EAASm+M,EACX,EJKEjhN,OKlBW,SAAgBmqH,EAAMzzI,EAAOosB,EAAUpf,EAAQ1I,GAC1D,IAAIimO,EAAS,GAEb,GADe92F,EAAKlwB,WAAakwB,EAAKlwB,UAAYv2G,EAAOtI,eAAe+uI,EAAKpgG,OAC/D,CACZ,GAAIyqQ,GAAa99S,KAAWyzI,EAAKlwB,SAC/B,OAAOn3F,IAET3lB,GAAM88G,SAASkwB,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,GACvCw5S,GAAa99S,IAChByG,GAAM2B,KAAKqrI,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,EAE5C,CACA8nB,EAASm+M,EACX,ELMEjmN,QMnBY,SAAiBmvH,EAAMzzI,EAAOosB,EAAUpf,EAAQ1I,GAC5D,IAAIimO,EAAS,GAEb,GADe92F,EAAKlwB,WAAakwB,EAAKlwB,UAAYv2G,EAAOtI,eAAe+uI,EAAKpgG,OAC/D,CACZ,GAAIyqQ,GAAa99S,KAAWyzI,EAAKlwB,SAC/B,OAAOn3F,IAET3lB,GAAM88G,SAASkwB,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,QAC9B+J,IAAVrO,IACFyG,GAAM2B,KAAKqrI,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,GACxCmC,GAAMguB,MAAMg/G,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,GAE7C,CACA8nB,EAASm+M,EACX,ENMEvrG,MOpBY,SAAiByU,EAAMzzI,EAAOosB,EAAUpf,EAAQ1I,GAC5D,IAAIimO,EAAS,GAEb,GADe92F,EAAKlwB,WAAakwB,EAAKlwB,UAAYv2G,EAAOtI,eAAe+uI,EAAKpgG,OAC/D,CACZ,GAAIyqQ,GAAa99S,KAAWyzI,EAAKlwB,SAC/B,OAAOn3F,IAET3lB,GAAM88G,SAASkwB,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,QAC9B+J,IAAVrO,IACFyG,GAAM2B,KAAKqrI,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,GACxCmC,GAAMguB,MAAMg/G,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,GAE7C,CACA8nB,EAASm+M,EACX,EPOEt3N,MQtBU,SAAewgI,EAAMzzI,EAAOosB,EAAUpf,EAAQ1I,GACxD,IAAIimO,EAAS,GAEb,GADe92F,EAAKlwB,WAAakwB,EAAKlwB,UAAYv2G,EAAOtI,eAAe+uI,EAAKpgG,OAC/D,CACZ,SAAehlC,IAAVrO,GAAiC,OAAVA,KAAoByzI,EAAKlwB,SACnD,OAAOn3F,IAET3lB,GAAM88G,SAASkwB,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,EAAS,cACvC+J,IAAVrO,GAAiC,OAAVA,IACzByG,GAAM2B,KAAKqrI,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,GACxCmC,GAAMguB,MAAMg/G,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,GAE7C,CACA8nB,EAASm+M,EACX,ERSE/0N,OStBW,SAAgBi+H,EAAMzzI,EAAOosB,EAAUpf,EAAQ1I,GAC1D,IAAIimO,EAAS,GAEb,GADe92F,EAAKlwB,WAAakwB,EAAKlwB,UAAYv2G,EAAOtI,eAAe+uI,EAAKpgG,OAC/D,CACZ,GAAIyqQ,GAAa99S,KAAWyzI,EAAKlwB,SAC/B,OAAOn3F,IAET3lB,GAAM88G,SAASkwB,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,QAC9B+J,IAAVrO,GACFyG,GAAM2B,KAAKqrI,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,EAE5C,CACA8nB,EAASm+M,EACX,ETUEgzE,KUtBe,SAAoB9pK,EAAMzzI,EAAOosB,EAAUpf,EAAQ1I,GAClE,IAAIimO,EAAS,GAEb,GADe92F,EAAKlwB,WAAakwB,EAAKlwB,UAAYv2G,EAAOtI,eAAe+uI,EAAKpgG,OAC/D,CACZ,GAAIyqQ,GAAa99S,KAAWyzI,EAAKlwB,SAC/B,OAAOn3F,IAET3lB,GAAM88G,SAASkwB,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,QAC9B+J,IAAVrO,GACFyG,GAAU,KAAEgtI,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,EAE7C,CACA8nB,EAASm+M,EACX,EVUE7/H,QWxBY,SAAiB+oC,EAAMzzI,EAAOosB,EAAUpf,EAAQ1I,GAC5D,IAAIimO,EAAS,GAEb,GADe92F,EAAKlwB,WAAakwB,EAAKlwB,UAAYv2G,EAAOtI,eAAe+uI,EAAKpgG,OAC/D,CACZ,GAAIyqQ,GAAa99S,EAAO,YAAcyzI,EAAKlwB,SACzC,OAAOn3F,IAET3lB,GAAM88G,SAASkwB,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,GACvCw5S,GAAa99S,EAAO,WACvByG,GAAMikG,QAAQ+oC,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,EAE/C,CACA8nB,EAASm+M,EACX,EXYE9zM,KYzBS,SAAcg9G,EAAMzzI,EAAOosB,EAAUpf,EAAQ1I,GAEtD,IAAIimO,EAAS,GAGb,GAFe92F,EAAKlwB,WAAakwB,EAAKlwB,UAAYv2G,EAAOtI,eAAe+uI,EAAKpgG,OAE/D,CACZ,GAAIyqQ,GAAa99S,EAAO,UAAYyzI,EAAKlwB,SACvC,OAAOn3F,IAIP,IAAI+zR,EADN,GADA15S,GAAM88G,SAASkwB,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,IACvCw5S,GAAa99S,EAAO,QAGrBmgT,EADEngT,aAAiBu3B,KACNv3B,EAEA,IAAIu3B,KAAKv3B,GAExByG,GAAM2B,KAAKqrI,EAAM0sK,EAAYnzS,EAAQu9N,EAAQjmO,GACzC67S,GACF15S,GAAMguB,MAAMg/G,EAAM0sK,EAAWhnR,UAAWnsB,EAAQu9N,EAAQjmO,EAG9D,CACA8nB,EAASm+M,EACX,EZEEjnO,IAAK8E,GACL4jH,IAAK5jH,GACL2xD,MAAO3xD,GACPm7G,Sa7Ba,SAAkBkwB,EAAMzzI,EAAOosB,EAAUpf,EAAQ1I,GAC9D,IAAIimO,EAAS,GACTniO,EAAOnG,MAAMqR,QAAQtT,GAAS,SAAU4D,EAAAA,GAAAA,GAAQ5D,GACpDyG,GAAM88G,SAASkwB,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,EAAS8D,GACrDgkB,EAASm+M,EACX,EbyBEpvL,Ic9BQ,SAAas4F,EAAMzzI,EAAOosB,EAAUpf,EAAQ1I,GACpD,IAAIimO,EAAS,GAEb,GADe92F,EAAKlwB,WAAakwB,EAAKlwB,UAAYv2G,EAAOtI,eAAe+uI,EAAKpgG,OAC/D,CACZ,GAAIyqQ,GAAa99S,KAAWyzI,EAAKlwB,SAC/B,OAAOn3F,IAET3lB,GAAM88G,SAASkwB,EAAMzzI,EAAOgN,EAAQu9N,EAAQjmO,EAC9C,CACA8nB,EAASm+M,EACX,GCKA,IAAI61E,GAAsB,WACxB,SAASA,EAAOvlS,GACdu9N,GAAgBh3O,KAAMg/S,IAEtBnnM,EAAAA,GAAAA,GAAgB73G,KAAM,QAAS,OAC/B63G,EAAAA,GAAAA,GAAgB73G,KAAM,YAAai/S,IACnCj/S,KAAKy1G,OAAOh8F,EACd,CA+PA,OA9PAw9N,GAAa+nE,EAAQ,CAAC,CACpBl6S,IAAK,SACLlG,MAAO,SAAgByG,GACrB,IAAIo1B,EAAQz6B,KACZ,IAAKqF,EACH,MAAM,IAAI3B,MAAM,2CAElB,GAAuB,YAAnBlB,EAAAA,GAAAA,GAAQ6C,IAAuBxE,MAAMqR,QAAQ7M,GAC/C,MAAM,IAAI3B,MAAM,2BAElB1D,KAAKqF,MAAQ,CAAC,EACdW,OAAOC,KAAKZ,GAAOvE,SAAQ,SAAUmN,GACnC,IAAIikC,EAAO7sC,EAAM4I,GACjBwsB,EAAMp1B,MAAM4I,GAAQpN,MAAMqR,QAAQggC,GAAQA,EAAO,CAACA,EACpD,GACF,GACC,CACDptC,IAAK,WACLlG,MAAO,SAAkBsgT,GAIvB,OAHIA,IACFl/S,KAAKk/S,UAAYpB,GAAU5B,KAAegD,IAErCl/S,KAAKk/S,SACd,GACC,CACDp6S,IAAK,WACLlG,MAAO,SAAkBugT,GACvB,IAAIn/C,EAAShgQ,KAGT4L,EAASuzS,EACTj8S,EAHIuM,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAIzEub,EAHKvb,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,WAAa,EAQ1F,GAJuB,oBAAZvM,IACT8nB,EAAW9nB,EACXA,EAAU,CAAC,IAERlD,KAAKqF,OAA4C,IAAnCW,OAAOC,KAAKjG,KAAKqF,OAAOlE,OAIzC,OAHI6pB,GACFA,EAAS,KAAMpf,GAEV5C,QAAQM,QAAQsC,GAuBzB,GAAI1I,EAAQq5S,SAAU,CACpB,IAAIA,EAAWv8S,KAAKu8S,WAChBA,IAAa0C,KACf1C,EAAWL,MAEb4B,GAAUvB,EAAUr5S,EAAQq5S,UAC5Br5S,EAAQq5S,SAAWA,CACrB,MACEr5S,EAAQq5S,SAAWv8S,KAAKu8S,WAE1B,IAAI6C,EAAS,CAAC,GACHl8S,EAAQ+C,MAAQD,OAAOC,KAAKjG,KAAKqF,QACvCvE,SAAQ,SAAUq0B,GACrB,IAAIk3H,EAAM2zG,EAAO36P,MAAM8vB,GACnBv2B,EAAQgN,EAAOupB,GACnBk3H,EAAIvrJ,SAAQ,SAAUxB,GACpB,IAAI+yI,EAAO/yI,EACmB,oBAAnB+yI,EAAK9yD,YACV3zE,IAAWuzS,IACbvzS,EAAS4sO,GAAc,CAAC,EAAG5sO,SAGfqB,KADdrO,EAAQgN,EAAOupB,GAAKk9G,EAAK9yD,UAAU3gF,KACE,OAAVA,IACzByzI,EAAKrrI,KAAOqrI,EAAKrrI,OAASnG,MAAMqR,QAAQtT,GAAS,SAAU4D,EAAAA,GAAAA,GAAQ5D,OAIrEyzI,EADkB,oBAATA,EACF,CACLgtK,UAAWhtK,GAGNmmG,GAAc,CAAC,EAAGnmG,IAItBgtK,UAAYr/C,EAAOs/C,oBAAoBjtK,GACvCA,EAAKgtK,YAGVhtK,EAAKpgG,MAAQ9c,EACbk9G,EAAKwrK,UAAYxrK,EAAKwrK,WAAa1oR,EACnCk9G,EAAKrrI,KAAOg5P,EAAOp1P,QAAQynI,GAC3B+sK,EAAOjqR,GAAKiqR,EAAOjqR,IAAM,GACzBiqR,EAAOjqR,GAAGtzB,KAAK,CACbwwI,KAAMA,EACNzzI,MAAOA,EACPgN,OAAQA,EACRqmC,MAAO9c,IAEX,GACF,IACA,IAAIoqR,EAAc,CAAC,EACnB,OAAOtC,GAASmC,EAAQl8S,GAAS,SAAUqZ,EAAMijS,GAC/C,IAuEI58Q,EAvEAyvG,EAAO91H,EAAK81H,KACZotK,GAAsB,WAAdptK,EAAKrrI,MAAmC,UAAdqrI,EAAKrrI,QAA+C,YAAzBxE,EAAAA,GAAAA,GAAQ6vI,EAAKyzD,SAAuD,YAA/BtjM,EAAAA,GAAAA,GAAQ6vI,EAAKqtK,eAGnH,SAASC,EAAa76S,EAAK86S,GACzB,OAAOpnE,GAAcA,GAAc,CAAC,EAAGonE,GAAS,CAAC,EAAG,CAClD/B,UAAW,GAAGr5S,OAAO6tI,EAAKwrK,UAAW,KAAKr5S,OAAOM,GACjD84S,WAAYvrK,EAAKurK,WAAa,GAAGp5S,OAAOw+O,GAAmB3wG,EAAKurK,YAAa,CAAC94S,IAAQ,CAACA,IAE3F,CACA,SAAS2+C,IACP,IAAIj2B,EAAI/d,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GACxEowS,EAAYh/S,MAAMqR,QAAQsb,GAAKA,EAAI,CAACA,IACnCtqB,EAAQ48S,iBAAmBD,EAAU1+S,QACxC69S,EAAOpgF,QAAQ,mBAAoBihF,GAEjCA,EAAU1+S,aAA2B8L,IAAjBolI,EAAK7iE,UAC3BqwO,EAAY,GAAGr7S,OAAO6tI,EAAK7iE,UAI7B,IAAIuwO,EAAeF,EAAUxyS,IAAIqwS,GAAgBrrK,EAAMzmI,IACvD,GAAI1I,EAAQif,OAAS49R,EAAa5+S,OAEhC,OADAo+S,EAAYltK,EAAKpgG,OAAS,EACnButQ,EAAKO,GAEd,GAAKN,EAEE,CAIL,GAAIptK,EAAKlwB,WAAa5lG,EAAK3d,MAMzB,YALqBqO,IAAjBolI,EAAK7iE,QACPuwO,EAAe,GAAGv7S,OAAO6tI,EAAK7iE,SAASniE,IAAIqwS,GAAgBrrK,EAAMzmI,IACxD1I,EAAQ2H,QACjBk1S,EAAe,CAAC78S,EAAQ2H,MAAMwnI,EAAMpvI,GAAOC,EAAQq5S,SAASp6L,SAAUkwB,EAAKpgG,UAEtEutQ,EAAKO,GAEd,IAAIC,EAAe,CAAC,EAChB3tK,EAAKqtK,cACP15S,OAAOC,KAAKsW,EAAK3d,OAAOyO,KAAI,SAAUvI,GACpCk7S,EAAal7S,GAAOutI,EAAKqtK,YAC3B,IAEFM,EAAexnE,GAAcA,GAAc,CAAC,EAAGwnE,GAAezjS,EAAK81H,KAAKyzD,QACxE,IAAIm6G,EAAoB,CAAC,EACzBj6S,OAAOC,KAAK+5S,GAAcl/S,SAAQ,SAAUmxC,GAC1C,IAAIiuQ,EAAcF,EAAa/tQ,GAC3BkuQ,EAAkBt/S,MAAMqR,QAAQguS,GAAeA,EAAc,CAACA,GAClED,EAAkBhuQ,GAASkuQ,EAAgB9yS,IAAIsyS,EAAapyS,KAAK,KAAM0kC,GACzE,IACA,IAAI2tQ,EAAS,IAAIZ,EAAOiB,GACxBL,EAAOrD,SAASr5S,EAAQq5S,UACpBhgS,EAAK81H,KAAKnvI,UACZqZ,EAAK81H,KAAKnvI,QAAQq5S,SAAWr5S,EAAQq5S,SACrChgS,EAAK81H,KAAKnvI,QAAQ2H,MAAQ3H,EAAQ2H,OAEpC+0S,EAAOQ,SAAS7jS,EAAK3d,MAAO2d,EAAK81H,KAAKnvI,SAAWA,GAAS,SAAUm9S,GAClE,IAAIC,EAAc,GACdP,GAAgBA,EAAa5+S,QAC/Bm/S,EAAYz+S,KAAKwY,MAAMimS,EAAat9D,GAAmB+8D,IAErDM,GAAQA,EAAKl/S,QACfm/S,EAAYz+S,KAAKwY,MAAMimS,EAAat9D,GAAmBq9D,IAEzDb,EAAKc,EAAYn/S,OAASm/S,EAAc,KAC1C,GACF,MA1CEd,EAAKO,EA2CT,CAEA,GAtEAN,EAAOA,IAASptK,EAAKlwB,WAAakwB,EAAKlwB,UAAY5lG,EAAK3d,OACxDyzI,EAAKpgG,MAAQ11B,EAAK01B,MAqEdogG,EAAKkuK,eACP39Q,EAAMyvG,EAAKkuK,eAAeluK,EAAM91H,EAAK3d,MAAO6kD,EAAIlnC,EAAK3Q,OAAQ1I,QACxD,GAAImvI,EAAKgtK,UAAW,CACzB,IACEz8Q,EAAMyvG,EAAKgtK,UAAUhtK,EAAM91H,EAAK3d,MAAO6kD,EAAIlnC,EAAK3Q,OAAQ1I,EAC1D,CAAE,MAAO2H,GACP,IAAI21S,EAAgBC,EAC8B,QAAjDD,GAAkBC,EAAWrlR,SAASvwB,aAAsC,IAAnB21S,GAA6BA,EAAezgT,KAAK0gT,EAAU51S,GAEhH3H,EAAQw9S,wBACXxzR,YAAW,WACT,MAAMriB,CACR,GAAG,GAEL44C,EAAG54C,EAAM2kE,QACX,EACY,IAAR5sC,EACF6gB,KACiB,IAAR7gB,EACT6gB,EAA2B,oBAAjB4uF,EAAK7iE,QAAyB6iE,EAAK7iE,QAAQ6iE,EAAKwrK,WAAaxrK,EAAKpgG,OAASogG,EAAK7iE,SAAW,GAAGhrE,OAAO6tI,EAAKwrK,WAAaxrK,EAAKpgG,MAAO,WACpIrP,aAAe/hC,MACxB4iD,EAAG7gB,GACMA,aAAel/B,OACxB+/C,EAAG7gB,EAAI4sC,QAEX,CACI5sC,GAAOA,EAAI3iC,MACb2iC,EAAI3iC,MAAK,WACP,OAAOwjD,GACT,IAAG,SAAUj2B,GACX,OAAOi2B,EAAGj2B,EACZ,GAEJ,IAAG,SAAU2yG,IAnLb,SAAkBA,GAChB,IAAIgpG,EAAS,GACTrjC,EAAS,CAAC,EACd,SAAStwK,EAAIhI,GAET,IAAImzR,EADF9/S,MAAMqR,QAAQsb,GAEhB27M,GAAUw3E,EAAUx3E,GAAQ3kO,OAAO6V,MAAMsmS,EAAS39D,GAAmBx1N,IAErE27M,EAAOtnO,KAAK2rB,EAEhB,CACA,IAAK,IAAItsB,EAAI,EAAGA,EAAIi/H,EAAQh/H,OAAQD,IAClCs0B,EAAI2qG,EAAQj/H,IAETioO,EAAOhoO,QAGV2kM,EAAS22G,GAAmBtzE,GAC5Bn+M,EAASm+M,EAAQrjC,IAHjB96K,EAAS,KAAMpf,EAKnB,CAgKEqpI,CAAS9U,EACX,GAAGv0H,EACL,GACC,CACD9G,IAAK,UACLlG,MAAO,SAAiByzI,GAItB,QAHkBplI,IAAdolI,EAAKrrI,MAAsBqrI,EAAK/oC,mBAAmB3mF,SACrD0vH,EAAKrrI,KAAO,WAEgB,oBAAnBqrI,EAAKgtK,WAA4BhtK,EAAKrrI,OAAS45S,GAAWt9S,eAAe+uI,EAAKrrI,MACvF,MAAM,IAAItD,MAAMT,GAAO,uBAAwBovI,EAAKrrI,OAEtD,OAAOqrI,EAAKrrI,MAAQ,QACtB,GACC,CACDlC,IAAK,sBACLlG,MAAO,SAA6ByzI,GAClC,GAA8B,oBAAnBA,EAAKgtK,UACd,OAAOhtK,EAAKgtK,UAEd,IAAIp5S,EAAOD,OAAOC,KAAKosI,GACnBwuK,EAAe56S,EAAKvB,QAAQ,WAIhC,OAHsB,IAAlBm8S,GACF56S,EAAKkqC,OAAO0wQ,EAAc,GAER,IAAhB56S,EAAK9E,QAA4B,aAAZ8E,EAAK,GACrB26S,GAAWz+L,SAEby+L,GAAW5gT,KAAK4K,QAAQynI,UAAUplI,CAC3C,KAEK+xS,CACT,CAvQ0B,IAyQ1BnnM,EAAAA,GAAAA,GAAgBmnM,GAAQ,YAAY,SAAkBh4S,EAAMq4S,GAC1D,GAAyB,oBAAdA,EACT,MAAM,IAAI37S,MAAM,oEAElBk9S,GAAW55S,GAAQq4S,CACrB,KACAxnM,EAAAA,GAAAA,GAAgBmnM,GAAQ,WzBnRH,WAAoB,KyBoRzCnnM,EAAAA,GAAAA,GAAgBmnM,GAAQ,WAAYC,KACpCpnM,EAAAA,GAAAA,GAAgBmnM,GAAQ,aAAc4B,IClStC,IAAIE,GAAe,mCACRC,GAA0B,CACnCnhT,QAAS,sCACTuiH,SAAU,wBACVg6L,KAAM,qCACN15R,WAAY,4BACZ4S,KAAM,CACJpyB,OAAQ,uCACRuG,MAAO,wCACPsjK,QAAS,6BAEXhmF,MAAO,CACLxzE,OAAQwtS,GACR7uS,OAAQ6uS,GACRjvS,MAAOivS,GACP1sS,OAAQ0sS,GACRhnQ,OAAQgnQ,GACRzrR,KAAMyrR,GACN1E,QAAS0E,GACT59R,QAAS49R,GACTljL,MAAOkjL,GACP54R,OAAQ44R,GACRnoP,MAAOmoP,GACP5+S,IAAK4+S,GACLl2L,IAAKk2L,IAEPxtS,OAAQ,CACNmR,IAAK,8CACLxB,IAAK,+CACLD,IAAK,oDACLqQ,MAAO,0DAETymB,OAAQ,CACNr1B,IAAK,8BACLxB,IAAK,uCACLD,IAAK,0CACLqQ,MAAO,+CAETxhB,MAAO,CACL4S,IAAK,6CACLxB,IAAK,iDACLD,IAAK,oDACLqQ,MAAO,yDAETi2E,QAAS,CACP+yM,SAAU,gDCjCV2E,GFuRJ,GEjRA,SAASC,GAAen9S,EAAUo9S,GAChC,OAAOp9S,EAAS4P,QAAQ,iBAAiB,SAAUs/B,GACjD,GAAIA,EAAIs/D,WAAW,MACjB,OAAOt/D,EAAIhuC,MAAM,GAEnB,IAAIF,EAAMkuC,EAAIhuC,MAAM,GAAI,GACxB,OAAOk8S,EAAGp8S,EACZ,GACF,CACA,IAAIq8S,GAAmB,mBACvB,SAASC,GAAaC,EAAIC,EAAKC,EAAKC,EAAKC,GACvC,OAAOC,GAAcrnS,MAAMra,KAAMyP,UACnC,CAKA,SAASiyS,KA2FP,OA1FAA,IAAgB1oR,EAAAA,GAAAA,GAAgC2oR,KAAsB53J,MAAK,SAAS63J,EAAS3zS,EAAMrP,EAAOyzI,EAAMnvI,EAAS2+S,GACvH,IAAIC,EAAWC,EAAiBC,EAAc3C,EAAW9C,EAAUtrS,EAAQgxS,EAAYf,EAAIgB,EAC3F,OAAOP,KAAsBp4R,MAAK,SAAmB44R,GACnD,cAAkBA,EAAUvlR,KAAOulR,EAAUjuS,MAC3C,KAAK,EAkCH,cAjCA4tS,EAAYtpE,GAAc,CAAC,EAAGnmG,IAGb+vK,UAGjBpB,GAAepiF,QAAU,WAEzB,EACIkjF,EAAUzC,YACZ0C,EAAkBD,EAAUzC,UAC5ByC,EAAUzC,UAAY,WACpB,IACE,OAAO0C,EAAgB1nS,WAAM,EAAQ5K,UACvC,CAAE,MAAO5E,GAEP,OADAuwB,QAAQvwB,MAAMA,GACP7B,QAAQmmB,OAAOgyR,GACxB,CACF,GAIFa,EAAe,KACXF,GAAgC,UAAnBA,EAAU96S,MAAoB86S,EAAUpC,eACvDsC,EAAeF,EAAUpC,oBAClBoC,EAAUpC,cAEnBL,EAAY,IAAI2B,IAAenpM,EAAAA,GAAAA,GAAgB,CAAC,EAAG5pG,EAAM,CAAC6zS,KAC1DvF,EAAWj0M,GAAMy4M,GAAyB79S,EAAQm/S,kBAClDhD,EAAU9C,SAASA,GACnBtrS,EAAS,GACTkxS,EAAUvlR,KAAO,GACjBulR,EAAUjuS,KAAO,GACVlL,QAAQM,QAAQ+1S,EAAUe,UAASvoM,EAAAA,GAAAA,GAAgB,CAAC,EAAG5pG,EAAMrP,GAAQ45O,GAAc,CAAC,EAAGt1O,KAChG,KAAK,GACHi/S,EAAUjuS,KAAO,GACjB,MACF,KAAK,GACHiuS,EAAUvlR,KAAO,GACjBulR,EAAUG,GAAKH,EAAiB,MAAE,IAC9BA,EAAUG,GAAGn5E,SACfl4N,EAASkxS,EAAUG,GAAGn5E,OAAO97N,KAAI,SAAUu+N,EAAO17N,GAChD,IAAIs/D,EAAUo8J,EAAMp8J,QAChB+yO,EAAgB/yO,IAAY2xO,GAAmB5E,EAAS38S,QAAU4vE,EACtE,OAAoBqkJ,EAAAA,eAAqB0uF,GAGzC1uF,EAAAA,aAAmB0uF,EAAe,CAChCz9S,IAAK,SAASN,OAAO0L,KAClBqyS,CACP,KAEJ,KAAK,GACH,GAAOtxS,EAAO9P,SAAU6gT,EAAe,CACrCG,EAAUjuS,KAAO,GACjB,KACF,CAEA,OADAiuS,EAAUjuS,KAAO,GACVlL,QAAQjE,IAAInG,EAAMyO,KAAI,SAAUgkF,EAAUnwF,GAC/C,OAAOkgT,GAAa,GAAG58S,OAAOyJ,EAAM,KAAKzJ,OAAOtD,GAAImwF,EAAU2wN,EAAc9+S,EAAS2+S,EACvF,KACF,KAAK,GAEH,OADAI,EAAaE,EAAUppM,KAChBopM,EAAU9I,OAAO,SAAU4I,EAAWhjR,QAAO,SAAUrC,EAAMusM,GAClE,MAAO,GAAG3kO,OAAOw+O,GAAmBpmN,GAAOomN,GAAmB7Z,GAChE,GAAG,KACL,KAAK,GAYH,OAVA+3E,EAAK1oE,GAAcA,GAAc,CAAC,EAAGnmG,GAAO,CAAC,EAAG,CAC9CpkI,KAAMA,EACNkuS,MAAO9pK,EAAK8pK,MAAQ,IAAIl3S,KAAK,OAC5B48S,GACHK,EAAqBjxS,EAAO5D,KAAI,SAAUxC,GACxC,MAAqB,kBAAVA,EACFo2S,GAAep2S,EAAOq2S,GAExBr2S,CACT,IACOs3S,EAAU9I,OAAO,SAAU6I,GACpC,KAAK,GACL,IAAK,MACH,OAAOC,EAAU/pL,OAEvB,GAAGwpL,EAAU,KAAM,CAAC,CAAC,GAAI,KAC3B,KACOF,GAAcrnS,MAAMra,KAAMyP,UACnC,CACO,SAAS+yS,GAAcC,EAAU7jT,EAAOyG,EAAOnC,EAASw/S,EAAeb,GAC5E,IA+DIc,EA/DA10S,EAAOw0S,EAASx9S,KAAK,KAGrB29S,EAAcv9S,EAAMgI,KAAI,SAAUw1S,EAAaT,GACjD,IAAIU,EAAsBD,EAAYxD,UAClCyC,EAAYtpE,GAAcA,GAAc,CAAC,EAAGqqE,GAAc,CAAC,EAAG,CAChET,UAAWA,IAwCb,OApCIU,IACFhB,EAAUzC,UAAY,SAAUhtK,EAAM1pI,EAAKqiB,GACzC,IAAI+3R,GAAa,EAiBbl5S,EAAUi5S,EAAoBzwK,EAAM1pI,GAdlB,WACpB,IAAK,IAAI2nO,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAGzBvnO,QAAQM,UAAUrJ,MAAK,WACrB2+N,IAASmkF,EAAY,qFAChBA,GACH/3R,EAAS3Q,WAAM,EAAQ8P,EAE3B,GACF,IAIA44R,EAAal5S,GAAmC,oBAAjBA,EAAQ5J,MAAgD,oBAAlB4J,EAAQ0nB,MAM7EqtM,GAAQmkF,EAAY,8DAChBA,GACFl5S,EAAQ5J,MAAK,WACX+qB,GACF,IAAGuG,OAAM,SAAU9tB,GACjBunB,EAASvnB,GAAO,IAClB,GAEJ,GAEKq+S,CACT,IAAGjtR,MAAK,SAAUo2H,EAAMyxB,GACtB,IAAIsmI,EAAK/3J,EAAKg4J,YACZpiI,EAAK51B,EAAKm3J,UACRc,EAAKxmI,EAAMumI,YACbniI,EAAKpE,EAAM0lI,UACb,QAAMY,MAASE,EAENriI,EAAKC,EAEVkiI,EACK,GAED,CACV,IAIA,IAAsB,IAAlBN,EAEFC,EAAiB,IAAI35S,QAAsB,WACzC,IAAIo3P,GAAQpnO,EAAAA,GAAAA,GAAgC2oR,KAAsB53J,MAAK,SAASo5J,EAAQ75S,EAAS6lB,GAC/F,IAAIjuB,EAAGmxI,EAAM82F,EACb,OAAOw4E,KAAsBp4R,MAAK,SAAkB04B,GAClD,cAAkBA,EAASrlB,KAAOqlB,EAAS/tC,MACzC,KAAK,EACHhT,EAAI,EACN,KAAK,EACH,KAAMA,EAAI0hT,EAAYzhT,QAAS,CAC7B8gD,EAAS/tC,KAAO,GAChB,KACF,CAGA,OAFAm+H,EAAOuwK,EAAY1hT,GACnB+gD,EAAS/tC,KAAO,EACTktS,GAAanzS,EAAMrP,EAAOyzI,EAAMnvI,EAAS2+S,GAClD,KAAK,EAEH,KADA14E,EAASlnL,EAAS82D,MACN53G,OAAQ,CAClB8gD,EAAS/tC,KAAO,EAChB,KACF,CAKA,OAJAib,EAAO,CAAC,CACNg6M,OAAQA,EACR92F,KAAMA,KAEDpwF,EAASo3P,OAAO,UACzB,KAAK,EACHn4S,GAAK,EACL+gD,EAAS/tC,KAAO,EAChB,MACF,KAAK,GAGH5K,EAAQ,IACV,KAAK,GACL,IAAK,MACH,OAAO24C,EAASm2E,OAEtB,GAAG+qL,EACL,KACA,OAAO,SAAUC,EAAKC,GACpB,OAAOjjD,EAAM/lP,MAAMra,KAAMyP,UAC3B,CACF,CA3C2C,QA4CtC,CAEL,IAAI6zS,EAAeV,EAAYv1S,KAAI,SAAUglI,GAC3C,OAAO+uK,GAAanzS,EAAMrP,EAAOyzI,EAAMnvI,EAAS2+S,GAAkB5hT,MAAK,SAAUkpO,GAC/E,MAAO,CACLA,OAAQA,EACR92F,KAAMA,EAEV,GACF,IACAswK,GAAkBD,EAiCtB,SAA6Ba,GAC3B,OAAOC,GAAqBnpS,MAAMra,KAAMyP,UAC1C,CAnCsCg0S,CAAoBH,GAY1D,SAA2BI,GACzB,OAAOC,GAAmBtpS,MAAMra,KAAMyP,UACxC,CAd0Em0S,CAAkBN,IAAerjT,MAAK,SAAUkpO,GAEpH,OAAOngO,QAAQmmB,OAAOg6M,EACxB,GACF,CAMA,OAHAw5E,EAAepxR,OAAM,SAAU/D,GAC7B,OAAOA,CACT,IACOm1R,CACT,CAIA,SAASgB,KAgBP,OAfAA,IAAqB3qR,EAAAA,GAAAA,GAAgC2oR,KAAsB53J,MAAK,SAAS85J,EAASP,GAChG,OAAO3B,KAAsBp4R,MAAK,SAAmBu6R,GACnD,cAAkBA,EAAUlnR,KAAOknR,EAAU5vS,MAC3C,KAAK,EACH,OAAO4vS,EAAUzK,OAAO,SAAUrwS,QAAQjE,IAAIu+S,GAAcrjT,MAAK,SAAU8jT,GACzE,IAAI93E,EAEJ,OADcA,EAAQ,IAAIznO,OAAO6V,MAAM4xN,EAAO+W,GAAmB+gE,GAEnE,KACF,KAAK,EACL,IAAK,MACH,OAAOD,EAAU1rL,OAEvB,GAAGyrL,EACL,MAC0BxpS,MAAMra,KAAMyP,UACxC,CAIA,SAAS+zS,KA0BP,OAzBAA,IAAuBxqR,EAAAA,GAAAA,GAAgC2oR,KAAsB53J,MAAK,SAASi6J,EAASV,GAClG,IAAItvQ,EACJ,OAAO2tQ,KAAsBp4R,MAAK,SAAmB06R,GACnD,cAAkBA,EAAUrnR,KAAOqnR,EAAU/vS,MAC3C,KAAK,EAEH,OADA8/B,EAAQ,EACDiwQ,EAAU5K,OAAO,SAAU,IAAIrwS,SAAQ,SAAUM,GACtDg6S,EAAaxiT,SAAQ,SAAU+I,GAC7BA,EAAQ5J,MAAK,SAAUikT,GACjBA,EAAU/6E,OAAOhoO,QACnBmI,EAAQ,CAAC46S,KAEXlwQ,GAAS,KACKsvQ,EAAaniT,QACzBmI,EAAQ,GAEZ,GACF,GACF,KACF,KAAK,EACL,IAAK,MACH,OAAO26S,EAAU7rL,OAEvB,GAAG4rL,EACL,MAC4B3pS,MAAMra,KAAMyP,UAC1C,CC1SO,SAAS00S,GAAY3tS,GAC1B,OAAOgxF,GAAQhxF,EACjB,CACO,SAAS4tS,GAAoBnpS,EAAOopS,GACzC,IAAIC,EAAW,CAAC,EAKhB,OAJAD,EAAavjT,SAAQ,SAAU2hT,GAC7B,IAAI7jT,EAAQ6jD,GAASxnC,EAAOwnS,GAC5B6B,EAAW5hQ,GAAS4hQ,EAAU7B,EAAU7jT,EAC1C,IACO0lT,CACT,CAQO,SAASC,GAAiBF,EAAc5B,GAC7C,IAAI+B,EAAe/0S,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAClF,OAAO40S,GAAgBA,EAAajzS,MAAK,SAAUoF,GACjD,OAAOiuS,GAAchC,EAAUjsS,EAAMguS,EACvC,GACF,CAQO,SAASC,GAAchC,EAAUiC,GAEtC,SAAKjC,IAAaiC,SADCj1S,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,KAI7DgzS,EAASthT,SAAWujT,EAAYvjT,SAG9CujT,EAAYrzS,OAAM,SAAUszS,EAAUzjT,GAC3C,OAAOuhT,EAASvhT,KAAOyjT,CACzB,IACF,CA0BO,SAASC,GAAyBC,GACvC,IAAIzrP,EAAQ3pD,UAAUtO,QAAU,OAAI8L,EAAYwC,UAAU,GAC1D,OAAI2pD,GAASA,EAAMruD,QAAoC,YAA1BvI,EAAAA,GAAAA,GAAQ42D,EAAMruD,SAAwB85S,KAAiBzrP,EAAMruD,OACjFquD,EAAMruD,OAAO85S,GAEfzrP,CACT,CAYO,SAAS0rP,GAAKjzS,EAAOkzS,EAAWC,GACrC,IAAI7jT,EAAS0Q,EAAM1Q,OACnB,GAAI4jT,EAAY,GAAKA,GAAa5jT,GAAU6jT,EAAU,GAAKA,GAAW7jT,EACpE,OAAO0Q,EAET,IAAIqgC,EAAOrgC,EAAMkzS,GACbxsR,EAAOwsR,EAAYC,EACvB,OAAIzsR,EAAO,EAEF,GAAG/zB,OAAOw+O,GAAmBnxO,EAAM7M,MAAM,EAAGggT,IAAW,CAAC9yQ,GAAO8wM,GAAmBnxO,EAAM7M,MAAMggT,EAASD,IAAa/hE,GAAmBnxO,EAAM7M,MAAM+/S,EAAY,EAAG5jT,KAEvKo3B,EAAO,EAEF,GAAG/zB,OAAOw+O,GAAmBnxO,EAAM7M,MAAM,EAAG+/S,IAAa/hE,GAAmBnxO,EAAM7M,MAAM+/S,EAAY,EAAGC,EAAU,IAAK,CAAC9yQ,GAAO8wM,GAAmBnxO,EAAM7M,MAAMggT,EAAU,EAAG7jT,KAE5K0Q,CACT,CCxGA,IAAIm8N,GAAY,CAAC,QAUbi3E,GAAe,GACnB,SAASC,GAAcj1E,EAAcrzM,EAAM1oB,EAAMqtO,EAAWxF,EAAWvpG,GACrE,MAA4B,oBAAjBy9F,EACFA,EAAarzM,EAAM1oB,EAAM,WAAYs+H,EAAO,CACjD5mI,OAAQ4mI,EAAK5mI,QACX,CAAC,GAEA21O,IAAcxF,CACvB,CAIA,IAAIopE,GAAqB,SAAUtuE,GACjCC,GAAUquE,EAAOtuE,GACjB,IAAIx8M,EAAS08M,GAAaouE,GAE1B,SAASA,EAAMttQ,GACb,IAAIpd,GACJu8M,GAAgBh3O,KAAMmlT,GACtB1qR,EAAQJ,EAAOt6B,KAAKC,KAAM63C,IAG1BggE,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,QAAS,CACtD2qR,WAAY,KAEdvtM,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,qBAAsB,OACrEo9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,WAAW,IAK1Do9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,WAAW,IAM1Do9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,SAAS,IACxDo9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,uBAAmB,IAClEo9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,sBAAkB,IACjEo9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,SAAUwqR,KACzDptM,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,WAAYwqR,KAC3DptM,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,kBAAkB,WAC/D,IAAIszN,EAActzN,EAAMod,MACtB21O,EAAWz/B,EAAYy/B,SACvB63B,EAAct3D,EAAYs3D,YAC1Bp3S,EAAO8/O,EAAY9/O,KACjBwsB,EAAM6qR,oBACR7qR,EAAM6qR,mBAAmBD,EAAa73B,EAAU22B,GAAYl2S,IAE9DwsB,EAAM6qR,mBAAqB,IAC7B,KAEAztM,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,eAAe,WAC5D,IAAI8qR,EAAe9qR,EAAMod,MACvB5pC,EAAOs3S,EAAat3S,KAElBu3S,EADaD,EAAaE,aACWC,WAEzC,YAAgBz4S,IAATgB,EAAqB,GAAGzJ,OAAOw+O,QADG,IAA1BwiE,EAAmC,GAAKA,GACexiE,GAAmB/0O,IAAS,EACpG,KACA4pG,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,YAAY,WACzD,IAAIkrR,EAAelrR,EAAMod,MACvB+tQ,EAAqBD,EAAatgT,MAClCA,OAA+B,IAAvBugT,EAAgC,GAAKA,EAC7CH,EAAeE,EAAaF,aAC9B,OAAOpgT,EAAMgI,KAAI,SAAUglI,GACzB,MAAoB,oBAATA,EACFA,EAAKozK,GAEPpzK,CACT,GACF,KACAx6B,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,WAAW,WACnDA,EAAM6iP,SAKX7iP,EAAMy7E,UAAS,SAAU+0C,GAEvB,MAAO,CACLm6J,WAFen6J,EAAKm6J,WAEK,EAE7B,GACF,KAEAvtM,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,YAAa,OAC5Do9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,oBAAoB,SAAU+wC,GAC3E,IAAIq6O,EAAeprR,EAAMod,MAAMguQ,aAC/B,GAAIA,EAAc,CAChB,IAAIC,EAAQttE,GAAcA,GAAc,CAAC,EAAG/9M,EAAMsrR,WAAY,CAAC,EAAG,CAChEv6O,QAASA,IAEN4kC,GAAQ31E,EAAMurR,UAAWF,IAC5BD,EAAaC,GAEfrrR,EAAMurR,UAAYF,CACpB,MACErrR,EAAMurR,UAAY,IAEtB,KAGAnuM,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,iBAAiB,SAAUwrR,EAAW5B,EAAc7xK,GACjG,IAAI0zK,EAAezrR,EAAMod,MACvBo4L,EAAei2E,EAAaj2E,aAC5Bk2E,EAAwBD,EAAapgP,aACrCA,OAAyC,IAA1BqgP,EAAmC,GAAKA,EACvDC,EAAUF,EAAaE,QACrBnrS,EAAQu3H,EAAKv3H,MACbwnS,EAAWhoR,EAAM0pR,cACjB5iE,EAAY9mN,EAAMgoB,SAASwjQ,GAC3BI,EAAW5rR,EAAMgoB,SAASxnC,GAC1BqrS,EAAgBjC,GAAgBE,GAAiBF,EAAc5B,GAWnE,OARkB,gBAAdjwK,EAAKxrI,MAA0C,aAAhBwrI,EAAK5mI,QAA0BwkG,GAAQmxI,EAAW8kE,KACnF5rR,EAAM8rR,SAAU,EAChB9rR,EAAM+rR,OAAQ,EACd/rR,EAAMgsR,gBAAkB,KACxBhsR,EAAM0uM,OAAS87E,GACfxqR,EAAMisR,SAAWzB,GACjBxqR,EAAMksR,oBAEAn0K,EAAKxrI,MACX,IAAK,QACH,IAAKq9S,GAAgBiC,EAUnB,OARA7rR,EAAM8rR,SAAU,EAChB9rR,EAAM+rR,OAAQ,EACd/rR,EAAMgsR,qBAAkBx5S,EACxBwtB,EAAM0uM,OAAS87E,GACfxqR,EAAMisR,SAAWzB,GACjBxqR,EAAMksR,mBACM,OAAZP,QAAgC,IAAZA,GAAsBA,SAC1C3rR,EAAMy3M,UAGR,MAQF,IAAK,SAED,GAAIjC,GAAgBi1E,GAAcj1E,EAAcg2E,EAAWhrS,EAAOsmO,EAAW8kE,EAAU7zK,GAErF,YADA/3G,EAAMmsR,WAGR,MAEJ,IAAK,WAED,IAAIrqS,EAAOi2H,EAAKj2H,KAChB,GAAI+pS,EAgBF,MAfI,YAAa/pS,IACfke,EAAM8rR,QAAUhqS,EAAKgqS,SAEnB,eAAgBhqS,KAAU,kBAAmBA,KAC/Cke,EAAMgsR,gBAAkBlqS,EAAKsqS,WAAa79S,QAAQM,QAAQ,IAAM,MAE9D,WAAYiT,IACdke,EAAM0uM,OAAS5sN,EAAK4sN,QAAU87E,IAE5B,aAAc1oS,IAChBke,EAAMisR,SAAWnqS,EAAKmqS,UAAYzB,IAEpCxqR,EAAM+rR,OAAQ,EACd/rR,EAAMksR,wBACNlsR,EAAMmsR,WAED,GAAI,UAAWrqS,GAAQgoS,GAAiBF,EAAc5B,GAAU,GAGrE,YADAhoR,EAAMmsR,WAKR,GAAI32E,IAAiBwyE,EAASthT,QAAU+jT,GAAcj1E,EAAcg2E,EAAWhrS,EAAOsmO,EAAW8kE,EAAU7zK,GAEzG,YADA/3G,EAAMmsR,WAGR,MAEJ,IAAK,qBASD,GAJqB9gP,EAAaz4D,IAAI82S,IAInB/yS,MAAK,SAAU01S,GAChC,OAAOvC,GAAiB/xK,EAAKu0K,cAAeD,EAC9C,IAEE,YADArsR,EAAMmsR,WAGR,MAEJ,QAWE,GAAIN,KAAmBxgP,EAAa3kE,QAAUshT,EAASthT,QAAU8uO,IAAiBi1E,GAAcj1E,EAAcg2E,EAAWhrS,EAAOsmO,EAAW8kE,EAAU7zK,GAEnJ,YADA/3G,EAAMmsR,YAKS,IAAjB32E,GACFx1M,EAAMmsR,UAEV,KACA/uM,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,iBAAiB,SAAUv3B,GAExE,IAAIu/S,EAAWhoR,EAAM0pR,cACjB6C,EAAevsR,EAAMgoB,WACrBi6H,EAAQx5K,GAAW,CAAC,EACtB+jT,EAAcvqI,EAAMuqI,YACpBC,EAAqBxqI,EAAMyqI,aAC3BA,OAAsC,IAAvBD,GAAwCA,EAGrDE,EAAcp+S,QAAQM,UAAUrJ,MAAmB+4B,EAAAA,GAAAA,GAAgC2oR,KAAsB53J,MAAK,SAASo5J,IACzH,IAAIkE,EAAcC,EAAuB5E,EAAeb,EAAkB0F,EAAkBC,EAAe39S,EAC3G,OAAO83S,KAAsBp4R,MAAK,SAAkB04B,GAClD,cAAkBA,EAASrlB,KAAOqlB,EAAS/tC,MACzC,KAAK,EACH,GAAIumB,EAAM6iP,QAAS,CACjBr7N,EAAS/tC,KAAO,EAChB,KACF,CACA,OAAO+tC,EAASo3P,OAAO,SAAU,IACnC,KAAK,EAiBH,GAhBAgO,EAAe5sR,EAAMod,MAAOyvQ,EAAwBD,EAAa3E,cAAeA,OAA0C,IAA1B4E,GAA2CA,EAAuBzF,EAAmBwF,EAAaxF,iBAAkB0F,EAAmBF,EAAaE,iBACpPC,EAAgB/sR,EAAMgtR,WAClBR,IACFO,EAAgBA,EAAcr2S,QAAO,SAAUkhI,GAC7C,OAAOA,CACT,IAAGlhI,QAAO,SAAUkhI,GAClB,IAAIq1K,EAAkBr1K,EAAKq1K,gBAC3B,OAAKA,GAGalgN,GAAQkgN,GACPv3S,SAAS82S,EAC9B,MAIIM,IAAoBN,EAAc,CACtChlQ,EAAS/tC,KAAO,GAChB,KACF,CAEA,OADA+tC,EAAS/tC,KAAO,EACT,IAAIlL,SAAQ,SAAUM,GAC3B4jB,WAAW5jB,EAASi+S,EACtB,IACF,KAAK,EACH,GAAM9sR,EAAMgsR,kBAAoBW,EAAc,CAC5CnlQ,EAAS/tC,KAAO,GAChB,KACF,CACA,OAAO+tC,EAASo3P,OAAO,SAAU,IACnC,KAAK,GA6BH,OA5BAxvS,EAAU24S,GAAcC,EAAUuE,EAAcQ,EAAetkT,EAASw/S,EAAeb,IAC/EtwR,OAAM,SAAU/D,GACtB,OAAOA,CACT,IAAGvtB,MAAK,WACN,IAAI0nT,EAAal4S,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAKw1S,GACrF,GAAIxqR,EAAMgsR,kBAAoBW,EAAa,CACzC,IAAIQ,EACJntR,EAAMgsR,gBAAkB,KAGxB,IAAIoB,EAAa,GACbC,EAAe,GAC4B,QAA9CF,EAAsBD,EAAW7mT,eAA6C,IAAxB8mT,GAAkCA,EAAoB7nT,KAAK4nT,GAAY,SAAU/7E,GACtI,IAAIq3E,EAAcr3E,EAAMv5F,KAAK4wK,YAC3B8E,EAAen8E,EAAMzC,OACrBA,OAA0B,IAAjB4+E,EAA0B9C,GAAe8C,EAChD9E,EACF6E,EAAajmT,KAAKwY,MAAMytS,EAAc9kE,GAAmB7Z,IAEzD0+E,EAAWhmT,KAAKwY,MAAMwtS,EAAY7kE,GAAmB7Z,GAEzD,IACA1uM,EAAM0uM,OAAS0+E,EACfptR,EAAMisR,SAAWoB,EACjBrtR,EAAMksR,mBACNlsR,EAAMmsR,UACR,CACF,IACO3kQ,EAASo3P,OAAO,SAAUxvS,GACnC,KAAK,GACL,IAAK,MACH,OAAOo4C,EAASm2E,OAEtB,GAAG+qL,EACL,MACA,OAAIgE,IAGJ1sR,EAAMgsR,gBAAkBW,EACxB3sR,EAAM+rR,OAAQ,EACd/rR,EAAM0uM,OAAS87E,GACfxqR,EAAMisR,SAAWzB,GACjBxqR,EAAMksR,mBAGNlsR,EAAMmsR,YATGQ,CAWX,KACAvvM,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,qBAAqB,WAClE,QAASA,EAAMgsR,eACjB,KACA5uM,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,kBAAkB,WAC/D,OAAOA,EAAM8rR,OACf,KACA1uM,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,gBAAgB,WAE7D,SAAIA,EAAM+rR,YAAsCv5S,IAA7BwtB,EAAMod,MAAMwL,oBAQcp2C,KAAzCgvS,EAHexhR,EAAMod,MAAM4tQ,aACUnK,iBAAiBjB,IAChB4B,iBACtBxhR,EAAM0pR,cAI5B,KACAtsM,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,aAAa,WAC1D,OAAOA,EAAM0uM,MACf,KACAtxH,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,eAAe,WAC5D,OAAOA,EAAMisR,QACf,KACA7uM,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,eAAe,WAC5D,OAAOA,EAAMod,MAAMwtQ,WACrB,KACAxtM,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,UAAU,WACvD,OAAOA,EAAMod,MAAMmwQ,MACrB,KACAnwM,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,cAAc,WAC3D,OAAOA,EAAMod,MAAM21O,QACrB,KAEA31K,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,WAAW,WAWxD,OATAA,EAAMwtR,eAAiBxtR,EAAMqgR,oBAClB,CACTyL,QAAS9rR,EAAMogR,iBACfgM,WAAYpsR,EAAMwtR,eAClB9+E,OAAQ1uM,EAAM0uM,OACdu9E,SAAUjsR,EAAMisR,SAChBz4S,KAAMwsB,EAAM0pR,cACZ+D,UAAqC,OAA1BztR,EAAMgsR,gBAGrB,KAEA5uM,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,gBAAgB,SAAU0pB,GAEvE,GAAwB,oBAAbA,EAAyB,CAClC,IAAIgkQ,EAAS1tR,EAAMsrR,UACnB,OAAOvtE,GAAcA,GAAc,CAAC,EAAG/9M,EAAM2tR,aAAajkQ,EAAS1pB,EAAM4tR,gBAAiBF,EAAQ1tR,EAAMod,MAAM4tQ,gBAAiB,CAAC,EAAG,CACjI76R,YAAY,GAEhB,CAGA,IAAIsoN,EAAYo1E,GAAgBnkQ,GAChC,OAAyB,IAArB+uL,EAAU/xO,QAA+B0yN,EAAAA,eAAqBqf,EAAU,IAMrE,CACLjrO,MAAOirO,EAAU,GACjBtoN,YAAY,GAPL,CACL3iB,MAAOirO,EACPtoN,YAAY,EAOlB,KAEAitF,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,YAAY,SAAUxf,GACnE,IAAIu/R,EAAiB//Q,EAAMod,MAAM4tQ,aAAajL,eAC1CiI,EAAWhoR,EAAM0pR,cACrB,OAAO1hQ,GAASxnC,GAASu/R,GAAe,GAAOiI,EACjD,KACA5qM,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,iBAAiB,WAC9D,IAAI49Q,EAAa5oS,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF84S,EAAe9tR,EAAMod,MACvB5pC,EAAOs6S,EAAat6S,KACpBgmS,EAAUsU,EAAatU,QACvByT,EAAkBa,EAAab,gBAC/Bc,EAAoBD,EAAaC,kBACjChsS,EAAY+rS,EAAa/rS,UACzBqoS,EAAgB0D,EAAa1D,cAC7B4D,EAAgBF,EAAaE,cAC7BhD,EAAe8C,EAAa9C,aAC1BiD,OAA4Cz7S,IAApBy6S,EAAgCA,EAAkBjC,EAAaiC,gBACvFjF,EAAWhoR,EAAM0pR,cACjB7I,EAAmBmK,EAAanK,iBAClCd,EAAiBiL,EAAajL,eAE9BjwO,EADsB+wO,EAAiBjB,IACV9vO,SAC3B3rE,EAAQ67B,EAAMgoB,WACdkmQ,EAAsBF,GAAiB,SAAU9/S,GACnD,OAAOkvG,EAAAA,GAAAA,GAAgB,CAAC,EAAGgtM,EAAel8S,EAC5C,EACIigT,EAAoBvQ,EAAWpE,GAC/B4U,OAAsB57S,IAATgB,EAAqB06S,EAAoB/pT,GAAS,CAAC,EAQpE,IAAIkqT,EAAUtwE,GAAcA,GAAc,CAAC,EAAG6/D,GAAawQ,GAuD3D,OApDAC,EAAQ7U,GAAW,WAKjB,IAAIh9M,EAHJx8D,EAAM8rR,SAAU,EAChB9rR,EAAM+rR,OAAQ,EACd/rR,EAAMksR,mBAEN,IAAK,IAAIr2E,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAGvBt5I,EADEuxN,EACSA,EAAkBnuS,WAAM,EAAQ8P,GAEhCy6R,GAAyBvqS,WAAM,EAAQ,CAACwqS,GAAergT,OAAO2lB,IAEvE3N,IACFy6E,EAAWz6E,EAAUy6E,EAAUr4F,EAAO47S,GAAe,KAEnDvjN,IAAar4F,GACf2rE,EAAS,CACPvjE,KAAM,cACNy7S,SAAUA,EACV7jT,MAAOq4F,IAGP2xN,GACFA,EAAkBvuS,WAAM,EAAQ8P,EAEpC,EAG0Bq9E,GAAQkhN,GAAyB,IACvC5nT,SAAQ,SAAUmmT,GAEpC,IAAI8B,EAAgBD,EAAQ7B,GAC5B6B,EAAQ7B,GAAe,WACjB8B,GACFA,EAAc1uS,WAAM,EAAQ5K,WAI9B,IAAIpK,EAAQo1B,EAAMod,MAAMxyC,MACpBA,GAASA,EAAMlE,QAGjBopE,EAAS,CACPvjE,KAAM,gBACNy7S,SAAUA,EACVwE,YAAaA,GAGnB,CACF,IACO6B,CACT,IACIjxQ,EAAM4tQ,gBAIRlK,GAFyBD,EADFzjQ,EAAM4tQ,aAAanK,kBACAjB,IACHkB,iBACvB57C,GAAuBllO,IAEzC,OAAOA,CACT,CA2DA,OA1DAw8M,GAAakuE,EAAO,CAAC,CACnBrgT,IAAK,oBACLlG,MAAO,WACL,IAAIoqT,EAAehpT,KAAK63C,MACtBo4L,EAAe+4E,EAAa/4E,aAC5Bw1E,EAAeuD,EAAavD,aAI9B,GAHAzlT,KAAKs9Q,SAAU,EAGXmoC,EAAc,CAChB,IAEEjK,GADuBF,EADFmK,EAAanK,kBACMjB,IACLmB,cACrCx7S,KAAKslT,mBAAqB9J,EAAcx7S,KAC1C,EAGqB,IAAjBiwO,GACFjwO,KAAK4mT,UAET,GACC,CACD9hT,IAAK,uBACLlG,MAAO,WACLoB,KAAKipT,iBACLjpT,KAAK2mT,kBAAiB,GACtB3mT,KAAKs9Q,SAAU,CACjB,GACC,CACDx4Q,IAAK,WACLlG,MAAO,WACAoB,KAAKs9Q,SACVt9Q,KAAKm2G,aACP,GACC,CACDrxG,IAAK,SACLlG,MAAO,WACL,IAOIsqT,EAPA9D,EAAaplT,KAAKqK,MAAM+6S,WACxBjhQ,EAAWnkD,KAAK63C,MAAMsM,SACtBglQ,EAAqBnpT,KAAKooT,aAAajkQ,GACzCl8C,EAAQkhT,EAAmBlhT,MAa7B,OAZekhT,EAAmBv+R,WAKhCs+R,EAAkBjhT,EACK4rN,EAAAA,eAAqB5rN,GAC5CihT,EAA+Br1F,EAAAA,aAAmB5rN,EAAOjI,KAAKqoT,cAAcpgT,EAAM4vC,SAElF+mL,IAAS32N,EAAO,qDAChBihT,EAAkBjhT,GAEA4rN,EAAAA,cAAoBA,EAAAA,SAAgB,CACtD/uN,IAAKsgT,GACJ8D,EACL,KAEK/D,CACT,CAniByB,CAmiBvBtxF,EAAAA,YACFh8G,EAAAA,GAAAA,GAAgBstM,GAAO,cAAeiE,KACtCvxM,EAAAA,GAAAA,GAAgBstM,GAAO,eAAgB,CACrClR,QAAS,WACT4Q,cAAe,UA4BjB,SA1BA,SAAsBp4E,GACpB,IAAI48E,EACAp7S,EAAOw+N,EAAMx+N,KACf6rO,EAAYC,GAAyBtN,EAAOuB,IAC1Cy3E,EAAe5xF,EAAAA,WAAiBu1F,IAChCE,EAAcz1F,EAAAA,WAAiB01F,IAC/B9G,OAAoBx1S,IAATgB,EAAqBk2S,GAAYl2S,QAAQhB,EACpDu8S,EAAwE,QAAnDH,EAAwBvvE,EAAUurE,mBAAmD,IAA1BgE,EAAmCA,IAA0BC,EAC7IxkT,EAAM,OAUV,OATK0kT,IACH1kT,EAAM,IAAIN,QAAQi+S,GAAY,IAAIx9S,KAAK,OAQrB4uN,EAAAA,cAAoBsxF,GAAOlmF,GAAS,CACtDn6N,IAAKA,EACLmJ,KAAMw0S,EACN4C,YAAamE,GACZ1vE,EAAW,CACZ2rE,aAAcA,IAElB,EChdA,SA5IA,SAAcx6J,GACZ,IAAIh9I,EAAOg9I,EAAKh9I,KACdo1C,EAAe4nG,EAAK5nG,aACpBc,EAAW8mG,EAAK9mG,SAChB9+C,EAAQ4lJ,EAAK5lJ,MACbqiT,EAAkBz8J,EAAKy8J,gBACvBrC,EAAcp6J,EAAKo6J,YACjBl/O,EAAU0tJ,EAAAA,WAAiBu1F,IAC3BK,EAAqB51F,EAAAA,WAAiB01F,IAKtCG,EAJS71F,EAAAA,OAAa,CACxB5tN,KAAM,GACNwd,GAAI,IAEkBwiB,QACpBy/Q,EAAa7xF,EAAAA,SAAc,WAC7B,IAAI81F,EAAmBxF,GAAYh+O,EAAQu/O,aAAe,GAC1D,MAAO,GAAGlhT,OAAOw+O,GAAmB2mE,GAAmB3mE,GAAmBmhE,GAAYl2S,IACxF,GAAG,CAACk4D,EAAQu/O,WAAYz3S,IACpBw3S,EAAe5xF,EAAAA,SAAc,WAC/B,OAAO2kB,GAAcA,GAAc,CAAC,EAAGryK,GAAU,CAAC,EAAG,CACnDu/O,WAAYA,GAEhB,GAAG,CAACv/O,EAASu/O,IAGT4D,EAAcz1F,EAAAA,SAAc,WAC9B,MAAO,CACL6rB,OAAQ,SAAgB+iE,GACtB,IAAIh+R,EAAMihS,EAAWvkT,OACjByoT,EAAWnH,EAASh+R,GACxB,MAAO,CAACilS,EAAWzjT,KAAK2jT,GAAWnH,EAASz9S,MAAMyf,EAAM,GAC1D,EAEJ,GAAG,CAACihS,IAGJ,MAAwB,oBAAbvhQ,GACTy6K,IAAQ,EAAO,gDACR,MASW/K,EAAAA,cAAoB01F,GAAYtyM,SAAU,CAC5Dr4G,MAAO0qT,GACOz1F,EAAAA,cAAoBu1F,GAAanyM,SAAU,CACzDr4G,MAAO6mT,GACO5xF,EAAAA,cAAoBsxF,GAAO,CACzCl3S,KAAM,GACNgiO,aAbiB,SAAsBsR,EAAWxF,EAAWr/D,GAE7D,MAAe,aADFA,EAAM9wK,QAIZ21O,IAAcxF,CACvB,EAQE12O,MAAOA,EACPqiT,gBAAiBA,EACjBrkQ,aAAcA,EACd2kQ,QAAQ,EACR3C,YAA6B,OAAhBA,QAAwC,IAAhBA,EAAyBA,IAAgBoE,IAC7E,SAAUrpD,EAAOj4M,GAClB,IAAI0hQ,EAAczpD,EAAMxhQ,MACtBA,OAAwB,IAAhBirT,EAAyB,GAAKA,EACtC7oE,EAAWof,EAAMpf,SACfu5D,EAAgBp0O,EAAQo0O,cACxBuP,EAAc,WAEhB,OADavP,EAAcmL,GAAc,KACxB,EACnB,EAIIqE,EAAa,CACfv0R,IAAK,SAAa+I,EAAcruB,GAE9B,IAAI+mF,EAAW6yN,IACX55S,GAAS,GAAKA,GAAS+mF,EAAS91F,QAClCuoT,EAAWzjT,KAAO,GAAGzB,OAAOw+O,GAAmB0mE,EAAWzjT,KAAKjB,MAAM,EAAGkL,IAAS,CAACw5S,EAAWjmS,IAAKu/N,GAAmB0mE,EAAWzjT,KAAKjB,MAAMkL,KAC3I8wO,EAAS,GAAGx8O,OAAOw+O,GAAmB/rJ,EAASjyF,MAAM,EAAGkL,IAAS,CAACquB,GAAeykN,GAAmB/rJ,EAASjyF,MAAMkL,QAKnHw5S,EAAWzjT,KAAO,GAAGzB,OAAOw+O,GAAmB0mE,EAAWzjT,MAAO,CAACyjT,EAAWjmS,KAC7Eu9N,EAAS,GAAGx8O,OAAOw+O,GAAmB/rJ,GAAW,CAAC14D,MAEpDmrR,EAAWjmS,IAAM,CACnB,EACA0pF,OAAQ,SAAgBj9F,GACtB,IAAI+mF,EAAW6yN,IACXE,EAAW,IAAIlvQ,IAAIj6C,MAAMqR,QAAQhC,GAASA,EAAQ,CAACA,IACnD85S,EAAS3nS,MAAQ,IAGrBqnS,EAAWzjT,KAAOyjT,EAAWzjT,KAAKkL,QAAO,SAAUggB,EAAG84R,GACpD,OAAQD,EAASn3S,IAAIo3S,EACvB,IAGAjpE,EAAS/pJ,EAAS9lF,QAAO,SAAUggB,EAAG+4R,GACpC,OAAQF,EAASn3S,IAAIq3S,EACvB,KACF,EACApF,KAAM,SAAcn6S,EAAMG,GACxB,GAAIH,IAASG,EAAb,CAGA,IAAImsF,EAAW6yN,IAGXn/S,EAAO,GAAKA,GAAQssF,EAAS91F,QAAU2J,EAAK,GAAKA,GAAMmsF,EAAS91F,SAGpEuoT,EAAWzjT,KAAOkkT,GAAMT,EAAWzjT,KAAM0E,EAAMG,GAG/Ck2O,EAASmpE,GAAMlzN,EAAUtsF,EAAMG,IAV/B,CAWF,GAEE4zI,EAAY9/I,GAAS,GAOzB,OANKiC,MAAMqR,QAAQwsI,KACjBA,EAAY,IAKPv6F,EAASu6F,EAAUrxI,KAAI,SAAUssB,EAAIzpB,GAC1C,IAAIpL,EAAM4kT,EAAWzjT,KAAKiK,GAM1B,YALYjD,IAARnI,IACF4kT,EAAWzjT,KAAKiK,GAASw5S,EAAWjmS,GACpC3e,EAAM4kT,EAAWzjT,KAAKiK,GACtBw5S,EAAWjmS,IAAM,GAEZ,CACLxV,KAAMiC,EACNpL,IAAKA,EACLugT,aAAa,EAEjB,IAAI0E,EAAY5hQ,EAClB,KACF,EC7IA,IAAIiiQ,GAAQ,mBAKZ,SAAS5tS,GAAUimS,GACjB,OAAOA,EAASp1S,KAAI,SAAUitB,GAC5B,MAAO,GAAG91B,QAAOhC,EAAAA,GAAAA,GAAQ83B,GAAO,KAAK91B,OAAO81B,EAC9C,IAECr1B,KAAKmlT,GACR,CAyEA,SApE2B,WACzB,SAASC,IACPrzE,GAAgBh3O,KAAMqqT,IACtBxyM,EAAAA,GAAAA,GAAgB73G,KAAM,MAAO,IAAI+xC,IACnC,CA8DA,OA7DAklM,GAAaozE,EAAS,CAAC,CACrBvlT,IAAK,MACLlG,MAAO,SAAakG,EAAKlG,GACvBoB,KAAKsqT,IAAI3gT,IAAI6S,GAAU1X,GAAMlG,EAC/B,GACC,CACDkG,IAAK,MACLlG,MAAO,SAAakG,GAClB,OAAO9E,KAAKsqT,IAAI98S,IAAIgP,GAAU1X,GAChC,GACC,CACDA,IAAK,SACLlG,MAAO,SAAgBkG,EAAK+pE,GAC1B,IACI36D,EAAO26D,EADE7uE,KAAKwN,IAAI1I,IAEjBoP,EAGHlU,KAAK2J,IAAI7E,EAAKoP,GAFdlU,KAAK+uD,OAAOjqD,EAIhB,GACC,CACDA,IAAK,SACLlG,MAAO,SAAiBkG,GACtB9E,KAAKsqT,IAAIv7P,OAAOvyC,GAAU1X,GAC5B,GAGC,CACDA,IAAK,MACLlG,MAAO,SAAaosB,GAClB,OAAOg4N,GAAmBhjP,KAAKsqT,IAAIl0S,WAAW/I,KAAI,SAAU49I,GAC1D,IAAIyxB,EAAQk/D,GAAe3wF,EAAM,GAC/BnmJ,EAAM43K,EAAM,GACZ99K,EAAQ89K,EAAM,GACZx3I,EAAQpgC,EAAIqU,MAAMixS,IACtB,OAAOp/R,EAAS,CACdlmB,IAAKogC,EAAM73B,KAAI,SAAUitB,GACvB,IACEiwR,EAAe3uE,GADCthN,EAAK1hB,MAAM,kBACgB,GAC3C5R,EAAOujT,EAAa,GACpBvnT,EAAOunT,EAAa,GACtB,MAAgB,WAATvjT,EAAoBE,OAAOlE,GAAQA,CAC5C,IACApE,MAAOA,GAEX,GACF,GACC,CACDkG,IAAK,SACLlG,MAAO,WACL,IAAI4rT,EAAO,CAAC,EAOZ,OANAxqT,KAAKqN,KAAI,SAAU+yP,GACjB,IAAIt7P,EAAMs7P,EAAMt7P,IACdlG,EAAQwhQ,EAAMxhQ,MAEhB,OADA4rT,EAAK1lT,EAAIG,KAAK,MAAQrG,EACf,IACT,IACO4rT,CACT,KAEKH,CACT,CAnE2B,GCd3B,IAAIr8E,GAAY,CAAC,QASNy8E,GAAyBxzE,IAAa,SAASwzE,EAAUC,GAClE,IAAIjwR,EAAQz6B,KACZg3O,GAAgBh3O,KAAMyqT,IACtB5yM,EAAAA,GAAAA,GAAgB73G,KAAM,cAAc,IACpC63G,EAAAA,GAAAA,GAAgB73G,KAAM,uBAAmB,IACzC63G,EAAAA,GAAAA,GAAgB73G,KAAM,gBAAgB,IACtC63G,EAAAA,GAAAA,GAAgB73G,KAAM,QAAS,CAAC,IAChC63G,EAAAA,GAAAA,GAAgB73G,KAAM,gBAAiB,KACvC63G,EAAAA,GAAAA,GAAgB73G,KAAM,gBAAiB,CAAC,IACxC63G,EAAAA,GAAAA,GAAgB73G,KAAM,YAAa,CAAC,IACpC63G,EAAAA,GAAAA,GAAgB73G,KAAM,mBAAoB,OAC1C63G,EAAAA,GAAAA,GAAgB73G,KAAM,WAAY,OAClC63G,EAAAA,GAAAA,GAAgB73G,KAAM,sBAAuB,OAC7C63G,EAAAA,GAAAA,GAAgB73G,KAAM,WAAW,WAC/B,MAAO,CACLu6S,cAAe9/Q,EAAM8/Q,cACrBC,eAAgB//Q,EAAM+/Q,eACtBC,cAAehgR,EAAMggR,cACrBC,gBAAiBjgR,EAAMigR,gBACvBC,eAAgBlgR,EAAMkgR,eACtBC,gBAAiBngR,EAAMmgR,gBACvBC,eAAgBpgR,EAAMogR,eACtBC,kBAAmBrgR,EAAMqgR,kBACzBC,mBAAoBtgR,EAAMsgR,mBAC1BC,YAAavgR,EAAMugR,YACnBC,UAAWxgR,EAAMwgR,UACjBC,cAAezgR,EAAMygR,cACrBC,eAAgB1gR,EAAM0gR,eACtBC,eAAgB3gR,EAAM2gR,eACtBC,OAAQ5gR,EAAM4gR,OACdl5P,OAAO,EACPm5P,iBAAkB7gR,EAAM6gR,iBAE5B,KAEAzjM,EAAAA,GAAAA,GAAgB73G,KAAM,oBAAoB,SAAU8E,GAClD,OAAIA,IAAQu1S,IACV5/Q,EAAMkwR,YAAa,EACZ,CACLpgP,SAAU9vC,EAAM8vC,SAChBgxO,gBAAiB9gR,EAAM8gR,gBACvBC,cAAe/gR,EAAM+gR,cACrBC,aAAchhR,EAAMghR,aACpBC,iBAAkBjhR,EAAMihR,iBACxBC,YAAalhR,EAAMkhR,YACnBC,aAAcnhR,EAAMmhR,aACpBG,oBAAqBthR,EAAMshR,oBAC3BD,UAAWrhR,EAAMqhR,UACjBE,YAAavhR,EAAMuhR,YACnBC,gBAAiBxhR,EAAMwhR,gBACvBJ,cAAephR,EAAMohR,iBAGzBj9E,IAAQ,EAAO,mEACR,KACT,KACA/mH,EAAAA,GAAAA,GAAgB73G,KAAM,gBAAgB,SAAU4qT,GAC9CnwR,EAAMmwR,aAAeA,CACvB,KAKA/yM,EAAAA,GAAAA,GAAgB73G,KAAM,uBAAwB,OAI9C63G,EAAAA,GAAAA,GAAgB73G,KAAM,oBAAoB,SAAU6qT,EAAex0R,GAEjE,GADAoE,EAAMowR,cAAgBA,GAAiB,CAAC,EACpCx0R,EAAM,CACR,IAAIy0R,EACAC,EAAYziN,GAAMuiN,EAAepwR,EAAMxf,OAKc,QAAxD6vS,EAAwBrwR,EAAMuwR,4BAA4D,IAA1BF,GAAoCA,EAAsBz9S,KAAI,SAAU49I,GACvI,IAAIw3J,EAAWx3J,EAAKnmJ,IACpBimT,EAAYroQ,GAASqoQ,EAAWtI,EAAUhgQ,GAASooQ,EAAepI,GACpE,IACAhoR,EAAMuwR,qBAAuB,KAC7BvwR,EAAMwwR,YAAYF,EACpB,CACF,KACAlzM,EAAAA,GAAAA,GAAgB73G,KAAM,eAAe,SAAUkrT,GAC7C,GAAIA,EAEFzwR,EAAMwwR,YAAY,CAAC,OACd,CAEL,IAAID,EAAuB,IAAIX,GAC/B5vR,EAAM0wR,kBAAiB,GAAMrqT,SAAQ,SAAU21O,GACxCh8M,EAAM2wR,iBAAiB30E,EAAO40E,eACjCL,EAAqBrhT,IAAI8sO,EAAO0tE,eAAe,EAEnD,IACA1pR,EAAMuwR,qBAAuBA,CAC/B,CACF,KACAnzM,EAAAA,GAAAA,GAAgB73G,KAAM,mBAAmB,SAAUyiT,GACjD,IAAI6I,EAAY7oQ,GAAShoB,EAAMowR,cAAepI,GAG9C,OAAOA,EAASthT,OAASmnG,GAAMgjN,GAAaA,CAC9C,KACAzzM,EAAAA,GAAAA,GAAgB73G,KAAM,gBAAgB,SAAUurT,GAC9C9wR,EAAM8wR,UAAYA,CACpB,KACA1zM,EAAAA,GAAAA,GAAgB73G,KAAM,uBAAuB,SAAUqiT,GACrD5nR,EAAM4nR,iBAAmBA,CAC3B,KACAxqM,EAAAA,GAAAA,GAAgB73G,KAAM,eAAe,SAAUwtR,GAC7C/yP,EAAM+yP,SAAWA,CACnB,KAEA31K,EAAAA,GAAAA,GAAgB73G,KAAM,YAAa,KACnC63G,EAAAA,GAAAA,GAAgB73G,KAAM,iBAAiB,SAAUgrB,GAE/C,OADAyP,EAAM+wR,UAAU3pT,KAAKmpB,GACd,WACLyP,EAAM+wR,UAAY/wR,EAAM+wR,UAAUr6S,QAAO,SAAU/C,GACjD,OAAOA,IAAO4c,CAChB,GACF,CACF,KACA6sF,EAAAA,GAAAA,GAAgB73G,KAAM,eAAe,WACnC,IAAIyiT,EAAWhzS,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GAEnF,GAAIgrB,EAAM+wR,UAAUrqT,OAAQ,CAC1B,IAAIkV,EAASokB,EAAM+/Q,iBACfiR,EAAYhxR,EAAM+/Q,gBAAe,GACrC//Q,EAAM+wR,UAAU1qT,SAAQ,SAAUkqB,GAChCA,EAAS3U,EAAQo1S,EAAWhJ,EAC9B,GACF,CACF,KAEA5qM,EAAAA,GAAAA,GAAgB73G,KAAM,YAAa,OACnC63G,EAAAA,GAAAA,GAAgB73G,KAAM,mBAAmB,WACnC+Y,CAQN,KAEA8+F,EAAAA,GAAAA,GAAgB73G,KAAM,eAAe,SAAU+qT,GAC7CtwR,EAAMxf,MAAQ8vS,CAChB,KAMAlzM,EAAAA,GAAAA,GAAgB73G,KAAM,oBAAoB,WAExC,OADWyP,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAInEgrB,EAAMixR,cAAcv6S,QAAO,SAAU8gC,GAC1C,OAAOA,EAAMkyQ,cAAchjT,MAC7B,IAJSs5B,EAAMixR,aAKjB,KACA7zM,EAAAA,GAAAA,GAAgB73G,KAAM,gBAAgB,WACpC,IAAI2rT,EAAOl8S,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GACtEsrE,EAAQ,IAAIsvO,GAKhB,OAJA5vR,EAAM0wR,iBAAiBQ,GAAM7qT,SAAQ,SAAUmxC,GAC7C,IAAIwwQ,EAAWxwQ,EAAMkyQ,cACrBppO,EAAMpxE,IAAI84S,EAAUxwQ,EACtB,IACO8oC,CACT,KACA88B,EAAAA,GAAAA,GAAgB73G,KAAM,mCAAmC,SAAU4rT,GACjE,IAAKA,EACH,OAAOnxR,EAAM0wR,kBAAiB,GAEhC,IAAIpwO,EAAQtgD,EAAMoxR,cAAa,GAC/B,OAAOD,EAASv+S,KAAI,SAAUY,GAC5B,IAAIw0S,EAAW0B,GAAYl2S,GAC3B,OAAO8sE,EAAMvtE,IAAIi1S,IAAa,CAC5BqJ,qBAAsB3H,GAAYl2S,GAEtC,GACF,KACA4pG,EAAAA,GAAAA,GAAgB73G,KAAM,kBAAkB,SAAU4rT,EAAUG,GAI1D,IAAIC,EACAC,EACAC,EAQJ,GAbAzxR,EAAM0xR,mBAMW,IAAbP,GAAqB/qT,MAAMqR,QAAQ05S,IACrCI,EAAiBJ,EACjBK,EAAmBF,GACVH,GAAkC,YAAtBppT,EAAAA,GAAAA,GAAQopT,KAC7BM,EAAeN,EAASp/J,OACxBy/J,EAAmBL,EAASz6S,SAEP,IAAnB66S,IAA4BC,EAC9B,OAAOxxR,EAAMxf,MAEf,IAAIywS,EAAgBjxR,EAAM2xR,gCAAgCvrT,MAAMqR,QAAQ85S,GAAkBA,EAAiB,MACvGK,EAAmB,GAwBvB,OAvBAX,EAAc5qT,SAAQ,SAAU21O,GAC9B,IAAI61E,EAAclsD,EAMZmsD,EAAS7vI,EALX+lI,EAAW,yBAA0BhsE,EAASA,EAAOq1E,qBAAuBr1E,EAAO0tE,cAIvF,GAAI+H,GAEF,GAA4C,QAAvCK,GAAW7vI,EAAQ+5D,GAAQuxE,cAAgC,IAAZuE,GAAsBA,EAAQxsT,KAAK28K,GACrF,YAEG,IAAKsvI,GAAoE,QAAjDM,GAAgBlsD,EAAQ3pB,GAAQ4uE,mBAA0C,IAAjBiH,GAA2BA,EAAavsT,KAAKqgQ,GACnI,OAEF,GAAK6rD,EAEE,CACL,IAAI9jQ,EAAO,YAAasuL,EAASA,EAAOsvE,UAAY,KAChDkG,EAAiB9jQ,IACnBkkQ,EAAiBxqT,KAAK4gT,EAE1B,MANE4J,EAAiBxqT,KAAK4gT,EAO1B,IACO2B,GAAoB3pR,EAAMxf,MAAOoxS,EAAiBh/S,IAAI82S,IAC/D,KACAtsM,EAAAA,GAAAA,GAAgB73G,KAAM,iBAAiB,SAAUiO,GAC/CwsB,EAAM0xR,kBACN,IAAI1J,EAAW0B,GAAYl2S,GAC3B,OAAOw0C,GAAShoB,EAAMxf,MAAOwnS,EAC/B,KACA5qM,EAAAA,GAAAA,GAAgB73G,KAAM,kBAAkB,SAAU4rT,GAGhD,OAFAnxR,EAAM0xR,kBACc1xR,EAAM2xR,gCAAgCR,GACrCv+S,KAAI,SAAUopO,EAAQvmO,GACzC,OAAIumO,KAAY,yBAA0BA,GACjC,CACLxoO,KAAMwoO,EAAO0tE,cACbh7E,OAAQsN,EAAO+1E,YACf9F,SAAUjwE,EAAOg2E,eAGd,CACLx+S,KAAMk2S,GAAYyH,EAAS17S,IAC3Bi5N,OAAQ,GACRu9E,SAAU,GAEd,GACF,KACA7uM,EAAAA,GAAAA,GAAgB73G,KAAM,iBAAiB,SAAUiO,GAC/CwsB,EAAM0xR,kBACN,IAAI1J,EAAW0B,GAAYl2S,GAE3B,OADiBwsB,EAAMkgR,eAAe,CAAC8H,IAAW,GAChCt5E,MACpB,KACAtxH,EAAAA,GAAAA,GAAgB73G,KAAM,mBAAmB,SAAUiO,GACjDwsB,EAAM0xR,kBACN,IAAI1J,EAAW0B,GAAYl2S,GAE3B,OADiBwsB,EAAMkgR,eAAe,CAAC8H,IAAW,GAChCiE,QACpB,KACA7uM,EAAAA,GAAAA,GAAgB73G,KAAM,mBAAmB,WACvCy6B,EAAM0xR,kBACN,IAAK,IAAI77E,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAEzB,IAEI8zE,EAFAqI,EAAOviS,EAAK,GACdwiS,EAAOxiS,EAAK,GAEVyiS,GAAqB,EACL,IAAhBziS,EAAKhpB,OACPkjT,EAAe,KACU,IAAhBl6R,EAAKhpB,OACVN,MAAMqR,QAAQw6S,IAChBrI,EAAeqI,EAAKr/S,IAAI82S,IACxByI,GAAqB,IAErBvI,EAAe,KACfuI,EAAqBF,IAGvBrI,EAAeqI,EAAKr/S,IAAI82S,IACxByI,EAAqBD,GAEvB,IAAIjB,EAAgBjxR,EAAM0wR,kBAAiB,GACvCtQ,EAAiB,SAAwB5oQ,GAC3C,OAAOA,EAAM4oQ,gBACf,EAGA,IAAKwJ,EACH,OAAOuI,EAAqBlB,EAAcr6S,OAAM,SAAUolO,GACxD,OAAOokE,EAAepkE,IAAWA,EAAOuxE,QAC1C,IAAK0D,EAAct6S,KAAKypS,GAI1B,IAAIxtS,EAAM,IAAIg9S,GACdhG,EAAavjT,SAAQ,SAAU+rT,GAC7Bx/S,EAAI1D,IAAIkjT,EAAe,GACzB,IACAnB,EAAc5qT,SAAQ,SAAUmxC,GAC9B,IAAI66Q,EAAgB76Q,EAAMkyQ,cAG1BE,EAAavjT,SAAQ,SAAU+rT,GACzBA,EAAcx7S,OAAM,SAAUszS,EAAUzjT,GAC1C,OAAO4rT,EAAc5rT,KAAOyjT,CAC9B,KACEt3S,EAAIohG,OAAOo+M,GAAe,SAAUpsD,GAClC,MAAO,GAAGj8P,OAAOw+O,GAAmByd,GAAO,CAACxuN,GAC9C,GAEJ,GACF,IAGA,IAAI86Q,EAAwB,SAA+Bv2E,GACzD,OAAOA,EAASplO,KAAKypS,EACvB,EACImS,EAAuB3/S,EAAIA,KAAI,SAAUu+N,GAE3C,OADYA,EAAMhtO,KAEpB,IACA,OAAOguT,EAAqBI,EAAqB37S,MAAM07S,GAAyBC,EAAqB57S,KAAK27S,EAC5G,KACAl1M,EAAAA,GAAAA,GAAgB73G,KAAM,kBAAkB,SAAUiO,GAEhD,OADAwsB,EAAM0xR,kBACC1xR,EAAMmgR,gBAAgB,CAAC3sS,GAChC,KACA4pG,EAAAA,GAAAA,GAAgB73G,KAAM,sBAAsB,SAAU4rT,GACpDnxR,EAAM0xR,kBACN,IAAIT,EAAgBjxR,EAAM0wR,mBAC1B,IAAKS,EACH,OAAOF,EAAct6S,MAAK,SAAU67S,GAClC,OAAOA,EAAUnS,mBACnB,IAEF,IAAIuJ,EAAeuH,EAASv+S,IAAI82S,IAChC,OAAOuH,EAAct6S,MAAK,SAAU67S,GAClC,IAAIH,EAAgBG,EAAU9I,cAC9B,OAAOI,GAAiBF,EAAcyI,IAAkBG,EAAUnS,mBACpE,GACF,KACAjjM,EAAAA,GAAAA,GAAgB73G,KAAM,qBAAqB,SAAUiO,GAEnD,OADAwsB,EAAM0xR,kBACC1xR,EAAMsgR,mBAAmB,CAAC9sS,GACnC,KAKA4pG,EAAAA,GAAAA,GAAgB73G,KAAM,8BAA8B,WAClD,IAAIwyI,EAAO/iI,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE5EsrE,EAAQ,IAAIsvO,GACZqB,EAAgBjxR,EAAM0wR,kBAAiB,GAC3CO,EAAc5qT,SAAQ,SAAUmxC,GAC9B,IAAIoR,EAAepR,EAAM4F,MAAMwL,aAC3Bo/P,EAAWxwQ,EAAMkyQ,cAGrB,QAAqBl3S,IAAjBo2C,EAA4B,CAC9B,IAAI6pQ,EAAUnyO,EAAMvtE,IAAIi1S,IAAa,IAAI3nQ,IACzCoyQ,EAAQ13R,IAAI,CACVihN,OAAQxkM,EACRrzC,MAAOykD,IAET03B,EAAMpxE,IAAI84S,EAAUyK,EACtB,CACF,IAGA,IA2BIC,EACA36K,EAAKgkG,SACP22E,EAAwB36K,EAAKgkG,SACpBhkG,EAAK6xK,cACd8I,EAAwB,GACxB36K,EAAK6xK,aAAavjT,SAAQ,SAAU2hT,GAClC,IAEM2K,EAFFF,EAAUnyO,EAAMvtE,IAAIi1S,GACpByK,IAEDE,EAAwBD,GAAuBtrT,KAAKwY,MAAM+yS,EAAuBpqE,GAAmBA,GAAmBkqE,GAAS7/S,KAAI,SAAU/N,GAC7I,OAAOA,EAAEm3O,MACX,KAEJ,KAEA02E,EAAwBzB,EAEVyB,EA3CLrsT,SAAQ,SAAUmxC,GAEzB,QAAqBhlC,IADFglC,EAAM4F,MAAMwL,aACC,CAC9B,IAAIo/P,EAAWxwQ,EAAMkyQ,cAErB,QAAyBl3S,IADFwtB,EAAMwhR,gBAAgBwG,GAG3C7jF,IAAQ,EAAO,+CAA+Cp6N,OAAOi+S,EAASx9S,KAAK,KAAM,uCACpF,CACL,IAAIioT,EAAUnyO,EAAMvtE,IAAIi1S,GACxB,GAAIyK,GAAWA,EAAQ7qS,KAAO,EAE5Bu8M,IAAQ,EAAO,6BAA6Bp6N,OAAOi+S,EAASx9S,KAAK,KAAM,iEAClE,GAAIioT,EAAS,CAClB,IAAIt2D,EAAcn8N,EAAM8/Q,cAAckI,GACpBxwQ,EAAMozQ,eAGF7yK,EAAK66K,gBAA6BpgT,IAAhB2pP,GACtCn8N,EAAMwwR,YAAYvoQ,GAASjoB,EAAMxf,MAAOwnS,EAAUz/D,GAAmBkqE,GAAS,GAAGtuT,OAErF,CACF,CACF,CACF,GAoBJ,KACAi5G,EAAAA,GAAAA,GAAgB73G,KAAM,eAAe,SAAU4rT,GAC7CnxR,EAAM0xR,kBACN,IAAIlG,EAAYxrR,EAAMxf,MACtB,IAAK2wS,EAOH,OANAnxR,EAAMwwR,YAAY3iN,GAAM7tE,EAAMowR,gBAC9BpwR,EAAM6yR,6BACN7yR,EAAM8yR,gBAAgBtH,EAAW,KAAM,CACrCj/S,KAAM,eAERyzB,EAAM+yR,cAKR,IAAInJ,EAAeuH,EAASv+S,IAAI82S,IAChCE,EAAavjT,SAAQ,SAAU2hT,GAC7B,IAAIp/P,EAAe5oB,EAAMwhR,gBAAgBwG,GACzChoR,EAAMwwR,YAAYvoQ,GAASjoB,EAAMxf,MAAOwnS,EAAUp/P,GACpD,IACA5oB,EAAM6yR,2BAA2B,CAC/BjJ,aAAcA,IAEhB5pR,EAAM8yR,gBAAgBtH,EAAW5B,EAAc,CAC7Cr9S,KAAM,UAERyzB,EAAM+yR,YAAYnJ,EACpB,KACAxsM,EAAAA,GAAAA,GAAgB73G,KAAM,aAAa,SAAU8lM,GAC3CrrK,EAAM0xR,kBACN,IAAIlG,EAAYxrR,EAAMxf,MAClBopS,EAAe,GACnBv+G,EAAOhlM,SAAQ,SAAU2sT,GACvB,IAAIx/S,EAAOw/S,EAAUx/S,KACnBsO,EAAOw9N,GAAyB0zE,EAAWz/E,IACzCy0E,EAAW0B,GAAYl2S,GAC3Bo2S,EAAaxiT,KAAK4gT,GAGd,UAAWlmS,GACbke,EAAMwwR,YAAYvoQ,GAASjoB,EAAMxf,MAAOwnS,EAAUlmS,EAAK3d,QAEzD67B,EAAM8yR,gBAAgBtH,EAAW,CAACxD,GAAW,CAC3Cz7S,KAAM,WACNuV,KAAMkxS,GAEV,IACAhzR,EAAM+yR,YAAYnJ,EACpB,KACAxsM,EAAAA,GAAAA,GAAgB73G,KAAM,aAAa,WAcjC,OAbey6B,EAAM0wR,kBAAiB,GAChB99S,KAAI,SAAU4kC,GAClC,IAAIwwQ,EAAWxwQ,EAAMkyQ,cAEjBsJ,EAAYj1E,GAAcA,GAAc,CAAC,EADlCvmM,EAAM8zQ,WACsC,CAAC,EAAG,CACzD93S,KAAMw0S,EACN7jT,MAAO67B,EAAM8/Q,cAAckI,KAK7B,OAHAz8S,OAAOgN,eAAey6S,EAAW,gBAAiB,CAChD7uT,OAAO,IAEF6uT,CACT,GAEF,KAKA51M,EAAAA,GAAAA,GAAgB73G,KAAM,mBAAmB,SAAUy2O,GACjD,IAAIpzL,EAAeozL,EAAO5+L,MAAMwL,aAChC,QAAqBp2C,IAAjBo2C,EAA4B,CAC9B,IAAIo/P,EAAWhsE,EAAO0tE,mBAEJl3S,IADFw1C,GAAShoB,EAAMxf,MAAOwnS,IAEpChoR,EAAMwwR,YAAYvoQ,GAASjoB,EAAMxf,MAAOwnS,EAAUp/P,GAEtD,CACF,KACAw0D,EAAAA,GAAAA,GAAgB73G,KAAM,oBAAoB,SAAU0tT,GAClD,IAAIC,OAAmC1gT,IAAlBygT,EAA8BA,EAAgBjzR,EAAM+yP,SACzE,OAA0B,OAAnBmgC,QAA8C,IAAnBA,GAA4BA,CAChE,KACA91M,EAAAA,GAAAA,GAAgB73G,KAAM,iBAAiB,SAAUy2O,GAC/Ch8M,EAAMixR,cAAc7pT,KAAK40O,GACzB,IAAIgsE,EAAWhsE,EAAO0tE,cAItB,GAHA1pR,EAAM+yR,YAAY,CAAC/K,SAGex1S,IAA9BwpO,EAAO5+L,MAAMwL,aAA4B,CAC3C,IAAI4iQ,EAAYxrR,EAAMxf,MACtBwf,EAAM6yR,2BAA2B,CAC/B92E,SAAU,CAACC,GACX42E,WAAW,IAEb5yR,EAAM8yR,gBAAgBtH,EAAW,CAACxvE,EAAO0tE,eAAgB,CACvDn9S,KAAM,cACN4E,OAAQ,YAEZ,CAGA,OAAO,SAAUy5S,EAAa73B,GAC5B,IAAIk3B,EAAcj1S,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GAMtF,GALAgrB,EAAMixR,cAAgBjxR,EAAMixR,cAAcv6S,QAAO,SAAU+gC,GACzD,OAAOA,IAASukM,CAClB,KAGKh8M,EAAM2wR,iBAAiB59B,MAAe63B,GAAeX,EAAYvjT,OAAS,GAAI,CACjF,IAAIo9B,EAAe8mR,OAAcp4S,EAAYwtB,EAAMwhR,gBAAgBwG,GACnE,GAAIA,EAASthT,QAAUs5B,EAAM8/Q,cAAckI,KAAclkR,GAAgB9D,EAAMixR,cAAcr6S,OAAM,SAAU4gC,GAC3G,OAEGwyQ,GAAcxyQ,EAAMkyQ,cAAe1B,EAExC,IAAI,CACF,IAAImL,EAAanzR,EAAMxf,MACvBwf,EAAMwwR,YAAYvoQ,GAASkrQ,EAAYnL,EAAUlkR,GAAc,IAG/D9D,EAAM8yR,gBAAgBK,EAAY,CAACnL,GAAW,CAC5Cz7S,KAAM,WAIRyzB,EAAMozR,0BAA0BD,EAAYnL,EAC9C,CACF,CACAhoR,EAAM+yR,YAAY,CAAC/K,GACrB,CACF,KACA5qM,EAAAA,GAAAA,GAAgB73G,KAAM,YAAY,SAAUmqE,GAC1C,OAAQA,EAAOnjE,MACb,IAAK,cAED,IAAIy7S,EAAWt4O,EAAOs4O,SACpB7jT,EAAQurE,EAAOvrE,MACjB67B,EAAMqzR,YAAYrL,EAAU7jT,GAC5B,MAEJ,IAAK,gBAED,IAAImvT,EAAY5jP,EAAOs4O,SACrBwE,EAAc98O,EAAO88O,YACvBxsR,EAAM2gR,eAAe,CAAC2S,GAAY,CAChC9G,YAAaA,IAOvB,KACApvM,EAAAA,GAAAA,GAAgB73G,KAAM,mBAAmB,SAAUimT,EAAW5B,EAAc7xK,GAC1E,GAAI/3G,EAAMmwR,aAAc,CACtB,IAAIoD,EAAax1E,GAAcA,GAAc,CAAC,EAAGhmG,GAAO,CAAC,EAAG,CAC1Dv3H,MAAOwf,EAAM+/Q,gBAAe,KAE9B//Q,EAAM0wR,mBAAmBrqT,SAAQ,SAAUmrO,IAEzCgiF,EADoBhiF,EAAMgiF,eACZhI,EAAW5B,EAAc2J,EACzC,GACF,MACEvzR,EAAMiwR,iBAEV,KAKA7yM,EAAAA,GAAAA,GAAgB73G,KAAM,6BAA6B,SAAUimT,EAAWxD,GACtE,IAAIyL,EAAiBzzR,EAAM0zR,4BAA4B1L,GAQvD,OAPIyL,EAAe/sT,QACjBs5B,EAAM2gR,eAAe8S,GAEvBzzR,EAAM8yR,gBAAgBtH,EAAWiI,EAAgB,CAC/ClnT,KAAM,qBACN+/S,cAAe,CAACtE,GAAUj+S,OAAOw+O,GAAmBkrE,MAE/CA,CACT,KACAr2M,EAAAA,GAAAA,GAAgB73G,KAAM,eAAe,SAAUiO,EAAMrP,GACnD,IAAI6jT,EAAW0B,GAAYl2S,GACvBg4S,EAAYxrR,EAAMxf,MACtBwf,EAAMwwR,YAAYvoQ,GAASjoB,EAAMxf,MAAOwnS,EAAU7jT,IAClD67B,EAAM8yR,gBAAgBtH,EAAW,CAACxD,GAAW,CAC3Cz7S,KAAM,cACN4E,OAAQ,aAEV6uB,EAAM+yR,YAAY,CAAC/K,IAGnB,IAAIyL,EAAiBzzR,EAAMozR,0BAA0B5H,EAAWxD,GAG5D2L,EAAiB3zR,EAAM8wR,UAAU6C,eACjCA,GAEFA,EADoBhK,GAAoB3pR,EAAMxf,MAAO,CAACwnS,IACxBhoR,EAAM+/Q,kBAEtC//Q,EAAM4zR,sBAAsB,CAAC5L,GAAUj+S,OAAOw+O,GAAmBkrE,IACnE,KAEAr2M,EAAAA,GAAAA,GAAgB73G,KAAM,kBAAkB,SAAUib,GAChDwf,EAAM0xR,kBACN,IAAIlG,EAAYxrR,EAAMxf,MACtB,GAAIA,EAAO,CACT,IAAI8vS,EAAYziN,GAAM7tE,EAAMxf,MAAOA,GACnCwf,EAAMwwR,YAAYF,EACpB,CACAtwR,EAAM8yR,gBAAgBtH,EAAW,KAAM,CACrCj/S,KAAM,cACN4E,OAAQ,aAEV6uB,EAAM+yR,aACR,KACA31M,EAAAA,GAAAA,GAAgB73G,KAAM,iBAAiB,SAAUiO,EAAMrP,GACrD67B,EAAMwgR,UAAU,CAAC,CACfhtS,KAAMA,EACNrP,MAAOA,EACPuqO,OAAQ,GACRu9E,SAAU,KAEd,KACA7uM,EAAAA,GAAAA,GAAgB73G,KAAM,+BAA+B,SAAUsuT,GAC7D,IAAInqQ,EAAW,IAAIrJ,IACfozQ,EAAiB,GACjBK,EAAsB,IAAIlE,GAM9B5vR,EAAM0wR,mBAAmBrqT,SAAQ,SAAUmxC,IACtBA,EAAM4F,MAAMiuB,cACd,IAAIhlE,SAAQ,SAAUgmT,GACrC,IAAI0H,EAAqBrK,GAAY2C,GACrCyH,EAAoB9/M,OAAO+/M,GAAoB,WAC7C,IAAI1oH,EAASr2L,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,IAAIqrC,IAErF,OADAgrJ,EAAOtwK,IAAIyc,GACJ6zJ,CACT,GACF,GACF,IAeA,OAdmB,SAAS2oH,EAAahM,IAC1B8L,EAAoB/gT,IAAIi1S,IAAa,IAAI3nQ,KAC/Ch6C,SAAQ,SAAUmxC,GACvB,IAAKkS,EAAStxC,IAAIo/B,GAAQ,CACxBkS,EAAS3uB,IAAIyc,GACb,IAAI66Q,EAAgB76Q,EAAMkyQ,cACtBlyQ,EAAMy8Q,gBAAkB5B,EAAc3rT,SACxC+sT,EAAersT,KAAKirT,GACpB2B,EAAa3B,GAEjB,CACF,GACF,CACA2B,CAAaH,GACNJ,CACT,KACAr2M,EAAAA,GAAAA,GAAgB73G,KAAM,yBAAyB,SAAUqkT,EAAcsK,GACrE,IAAIC,EAAiBn0R,EAAM8wR,UAAUqD,eACrC,GAAIA,EAAgB,CAClB,IAAI9oH,EAASrrK,EAAMqhR,YAKnB,GAAI6S,EAAa,CACf,IAAI5zO,EAAQ,IAAIsvO,GAChBsE,EAAY7tT,SAAQ,SAAU2rO,GAC5B,IAAIx+N,EAAOw+N,EAAMx+N,KACfk7N,EAASsD,EAAMtD,OACjBpuJ,EAAMpxE,IAAIsE,EAAMk7N,EAClB,IACArjC,EAAOhlM,SAAQ,SAAUmxC,GAEvBA,EAAMk3L,OAASpuJ,EAAMvtE,IAAIykC,EAAMhkC,OAASgkC,EAAMk3L,MAChD,GACF,CACA,IAAI0lF,EAAgB/oH,EAAO30L,QAAO,SAAUu8N,GAC1C,IAAIohF,EAAYphF,EAAMz/N,KACtB,OAAOs2S,GAAiBF,EAAcyK,EACxC,IACID,EAAc1tT,QAChBytT,EAAeC,EAAe/oH,EAElC,CACF,KAEAjuF,EAAAA,GAAAA,GAAgB73G,KAAM,kBAAkB,SAAU2sT,EAAMoC,GAEtD,IAAInD,EACA1oT,EAFJu3B,EAAM0xR,kBAGFtrT,MAAMqR,QAAQy6S,IAAyB,kBAATA,GAAqC,kBAAToC,GAC5DnD,EAAWe,EACXzpT,EAAU6rT,GAEV7rT,EAAUypT,EAEZ,IAAIqC,IAAoBpD,EACpBvH,EAAe2K,EAAkBpD,EAASv+S,IAAI82S,IAAe,GAG7D8K,EAAc,GAGdC,EAAYjoT,OAAOkvB,KAAKw8B,OACxBw8P,EAAuB,IAAIr0Q,IAC3Bs0Q,EAAQlsT,GAAW,CAAC,EACtBmsT,EAAYD,EAAMC,UAClB7I,EAAQ4I,EAAM5I,MAChB/rR,EAAM0wR,kBAAiB,GAAMrqT,SAAQ,SAAUmxC,GAO7C,GALK+8Q,GACH3K,EAAaxiT,KAAKowC,EAAMkyQ,eAIrBlyQ,EAAM4F,MAAMxyC,OAAU4sC,EAAM4F,MAAMxyC,MAAMlE,UAKzCqlT,GAAUv0Q,EAAMy8Q,gBAApB,CAGA,IAAI5B,EAAgB76Q,EAAMkyQ,cAI1B,GAHAgL,EAAqB35R,IAAIs3R,EAAc7nT,KAAKiqT,KAGvCF,GAAmBzK,GAAiBF,EAAcyI,EAAeuC,GAAY,CAChF,IAAIxlT,EAAUooC,EAAMuwQ,cAAchqE,GAAc,CAC9C6pE,iBAAkB7pE,GAAcA,GAAc,CAAC,EAAGuoE,IAA0BtmR,EAAM4nR,mBACjFn/S,IAGH+rT,EAAYptT,KAAKgI,EAAQ5J,MAAK,WAC5B,MAAO,CACLgO,KAAM6+S,EACN3jF,OAAQ,GACRu9E,SAAU,GAEd,IAAGn1R,OAAM,SAAUo2R,GACjB,IAAIC,EACA0H,EAAe,GACfC,EAAiB,GAUrB,OAT+C,QAA9C3H,EAAsBD,EAAW7mT,eAA6C,IAAxB8mT,GAAkCA,EAAoB7nT,KAAK4nT,GAAY,SAAU6H,GACtI,IAAIvM,EAAcuM,EAAMn9K,KAAK4wK,YAC3B95E,EAASqmF,EAAMrmF,OACb85E,EACFsM,EAAe1tT,KAAKwY,MAAMk1S,EAAgBvsE,GAAmB7Z,IAE7DmmF,EAAaztT,KAAKwY,MAAMi1S,EAActsE,GAAmB7Z,GAE7D,IACImmF,EAAanuT,OACR6H,QAAQmmB,OAAO,CACpBlhB,KAAM6+S,EACN3jF,OAAQmmF,EACR5I,SAAU6I,IAGP,CACLthT,KAAM6+S,EACN3jF,OAAQmmF,EACR5I,SAAU6I,EAEd,IACF,CA3CA,CA4CF,IACA,IAAI5M,EC3yBD,SAA0BsM,GAC/B,IAAIQ,GAAW,EACXz7Q,EAAQi7Q,EAAY9tT,OACpBg/H,EAAU,GACd,OAAK8uL,EAAY9tT,OAGV,IAAI6H,SAAQ,SAAUM,EAAS6lB,GACpC8/R,EAAYnuT,SAAQ,SAAU+I,EAASqG,GACrCrG,EAAQ0nB,OAAM,SAAU/D,GAEtB,OADAiiS,GAAW,EACJjiS,CACT,IAAGvtB,MAAK,SAAUgR,GAChB+iC,GAAS,EACTmsF,EAAQjwH,GAASe,EACb+iC,EAAQ,IAGRy7Q,GACFtgS,EAAOgxG,GAET72H,EAAQ62H,GACV,GACF,GACF,IAnBSn3H,QAAQM,QAAQ,GAoB3B,CDkxByBomT,CAAiBT,GACtCx0R,EAAMk1R,oBAAsBhN,EAG5BA,EAAepxR,OAAM,SAAU4uG,GAC7B,OAAOA,CACT,IAAGlgI,MAAK,SAAUkgI,GAChB,IAAIyvL,EAAqBzvL,EAAQ9yH,KAAI,SAAUwiT,GAE7C,OADWA,EAAO5hT,IAEpB,IACAwsB,EAAM8yR,gBAAgB9yR,EAAMxf,MAAO20S,EAAoB,CACrD5oT,KAAM,mBAERyzB,EAAM4zR,sBAAsBuB,EAAoBzvL,EAClD,IACA,IAAIyjE,EAAgB++G,EAAe1iT,MAAK,WACtC,OAAIw6B,EAAMk1R,sBAAwBhN,EACzB35S,QAAQM,QAAQmxB,EAAM+/Q,eAAe6J,IAEvCr7S,QAAQmmB,OAAO,GACxB,IAAGoC,OAAM,SAAU4uG,GACjB,IAAI0/K,EAAY1/K,EAAQhvH,QAAO,SAAUF,GACvC,OAAOA,GAAUA,EAAOk4N,OAAOhoO,MACjC,IACA,OAAO6H,QAAQmmB,OAAO,CACpB9Y,OAAQokB,EAAM+/Q,eAAe6J,GAC7B9E,YAAaM,EACbiQ,UAAWr1R,EAAMk1R,sBAAwBhN,GAE7C,IAGA/+G,EAAcryK,OAAM,SAAU/D,GAC5B,OAAOA,CACT,IAGA,IAAIuiS,EAAsB1L,EAAalzS,QAAO,SAAUsxS,GACtD,OAAO0M,EAAqBt8S,IAAI4vS,EAASx9S,KAAKiqT,GAChD,IAEA,OADAz0R,EAAM4zR,sBAAsB0B,GACrBnsH,CACT,KAEA/rF,EAAAA,GAAAA,GAAgB73G,KAAM,UAAU,WAC9By6B,EAAM0xR,kBACN1xR,EAAM2gR,iBAAiBn7S,MAAK,SAAUoW,GACpC,IAAI25S,EAAWv1R,EAAM8wR,UAAUyE,SAC/B,GAAIA,EACF,IACEA,EAAS35S,EACX,CAAE,MAAO5S,GAEP23B,QAAQvwB,MAAMpH,EAChB,CAEJ,IAAG8tB,OAAM,SAAU/D,GACjB,IAAIyiS,EAAiBx1R,EAAM8wR,UAAU0E,eACjCA,GACFA,EAAeziS,EAEnB,GACF,IACAxtB,KAAK0qT,gBAAkBA,CACzB,IAoBA,SAnBA,SAAiBtuO,GACf,IAAI8zO,EAAUr8F,EAAAA,SAGZ19G,EADmBylI,GADC/nB,EAAAA,SAAe,CAAC,GACe,GACpB,GACjC,IAAKq8F,EAAQjqR,QACX,GAAIm2C,EACF8zO,EAAQjqR,QAAUm2C,MACb,CAEL,IAGI+zO,EAAY,IAAI1F,IAHA,WAClBt0M,EAAY,CAAC,EACf,IAEA+5M,EAAQjqR,QAAUkqR,EAAUC,SAC9B,CAEF,MAAO,CAACF,EAAQjqR,QAClB,EE53BA,IAAIoqR,GAA2Bx8F,EAAAA,cAAoB,CACjDy8F,kBAAmB,WAA8B,EACjDC,kBAAmB,WAA8B,EACjDC,aAAc,WAAyB,EACvCC,eAAgB,WAA2B,IAEzCC,GAAe,SAAsBzlK,GACvC,IAAIo3J,EAAmBp3J,EAAKo3J,iBAC1BsO,EAAe1lK,EAAK0lK,aACpBC,EAAe3lK,EAAK2lK,aACpBzsQ,EAAW8mG,EAAK9mG,SACd0sQ,EAAch9F,EAAAA,WAAiBw8F,IAC/BS,EAAWj9F,EAAAA,OAAa,CAAC,GAC7B,OAAoBA,EAAAA,cAAoBw8F,GAAYp5M,SAAU,CAC5Dr4G,MAAO45O,GAAcA,GAAc,CAAC,EAAGq4E,GAAc,CAAC,EAAG,CACvDxO,iBAAkB7pE,GAAcA,GAAc,CAAC,EAAGq4E,EAAYxO,kBAAmBA,GAIjFiO,kBAAmB,SAA2BriT,EAAM4gT,GAC9C8B,GACFA,EAAa1iT,EAAM,CACjB4gT,cAAeA,EACfkC,MAAOD,EAAS7qR,UAGpB4qR,EAAYP,kBAAkBriT,EAAM4gT,EACtC,EACA0B,kBAAmB,SAA2BtiT,EAAMoI,GAC9Cu6S,GACFA,EAAa3iT,EAAM,CACjBoI,OAAQA,EACR06S,MAAOD,EAAS7qR,UAGpB4qR,EAAYN,kBAAkBtiT,EAAMoI,EACtC,EACAm6S,aAAc,SAAsBviT,EAAMmuE,GACpCnuE,IACF6iT,EAAS7qR,QAAUuyM,GAAcA,GAAc,CAAC,EAAGs4E,EAAS7qR,SAAU,CAAC,GAAG4xE,EAAAA,GAAAA,GAAgB,CAAC,EAAG5pG,EAAMmuE,KAEtGy0O,EAAYL,aAAaviT,EAAMmuE,EACjC,EACAq0O,eAAgB,SAAwBxiT,GACtC,IAAI+iT,EAAWx4E,GAAc,CAAC,EAAGs4E,EAAS7qR,gBACnC+qR,EAAS/iT,GAChB6iT,EAAS7qR,QAAU+qR,EACnBH,EAAYJ,eAAexiT,EAC7B,KAEDk2C,EACL,EAEA,YCpDA,IAAI6pL,GAAY,CAAC,OAAQ,gBAAiB,SAAU,OAAQ,WAAY,WAAY,YAAa,mBAAoB,kBAAmB,iBAAkB,iBAAkB,WAAY,iBAAkB,kBA8I1M,SAvIW,SAAc/iF,EAAM1zG,GAC7B,IAAItpC,EAAOg9I,EAAKh9I,KACd48S,EAAgB5/J,EAAK4/J,cACrB/kH,EAAS76C,EAAK66C,OACd1pH,EAAO6uE,EAAK7uE,KACZoxM,EAAWviI,EAAKuiI,SAChBrpO,EAAW8mG,EAAK9mG,SAChB8sQ,EAAiBhmK,EAAK2+E,UACtBrzH,OAA+B,IAAnB06M,EAA4B,OAASA,EACjD5O,EAAmBp3J,EAAKo3J,iBACxB6O,EAAuBjmK,EAAKy8J,gBAC5BA,OAA2C,IAAzBwJ,EAAkC,WAAaA,EACjE9C,EAAiBnjK,EAAKmjK,eACtB+C,EAAkBlmK,EAAK2jK,eACvBwC,EAAYnmK,EAAK+kK,SACjBC,EAAiBhlK,EAAKglK,eACtB/E,EAAiBjgK,EAAKigK,eACtBpxE,EAAYC,GAAyB9uF,EAAM+iF,IACzCqjF,EAAmBx9F,EAAAA,OAAa,MAChCg9F,EAAch9F,EAAAA,WAAiBw8F,IAMjCiB,EADY11E,GADC21E,GAAQn1O,GACgB,GACZ,GACvBo1O,EAAoBF,EAAahW,iBAAiBjB,IACpDoB,EAAe+V,EAAkB/V,aACjCC,EAAmB8V,EAAkB9V,iBACrCE,EAAe4V,EAAkB5V,aACjCG,EAAsByV,EAAkBzV,oBACxCC,EAAcwV,EAAkBxV,YAChCL,EAAc6V,EAAkB7V,YAGlC9nF,EAAAA,oBAA0Bt8K,GAAK,WAC7B,OAAOihM,GAAcA,GAAc,CAAC,EAAG84E,GAAe,CAAC,EAAG,CACxDzhF,cAAewhF,EAAiBprR,SAEpC,IAGA4tL,EAAAA,WAAgB,WAEd,OADAg9F,EAAYL,aAAaviT,EAAMqjT,GACxB,WACLT,EAAYJ,eAAexiT,EAC7B,CACF,GAAG,CAAC4iT,EAAaS,EAAcrjT,IAG/B8tS,EAAoBvjE,GAAcA,GAAc,CAAC,EAAGq4E,EAAYxO,kBAAmBA,IACnFzG,EAAa,CACXwS,eAAgBA,EAChBQ,eAAgB,SAAwBC,GAEtC,GADAgC,EAAYP,kBAAkBriT,EAAM4gT,GAChCsC,EAAiB,CACnB,IAAK,IAAI7gF,EAAO7gO,UAAUtO,OAAQisG,EAAO,IAAIvsG,MAAMyvO,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClGnjI,EAAKmjI,EAAO,GAAK9gO,UAAU8gO,GAE7B4gF,EAAgB92S,WAAM,EAAQ,CAACw0S,GAAerqT,OAAO4oG,GACvD,CACF,EACA4iN,SAAU,SAAkB35S,GAC1Bw6S,EAAYN,kBAAkBtiT,EAAMoI,GAChC+6S,GACFA,EAAU/6S,EAEd,EACA45S,eAAgBA,IAElBjU,EAAYxuB,GAGZ,IAcIikC,EAdAvzC,EAAWrqD,EAAAA,OAAa,MAC5B6nF,EAAiBmP,GAAgB3sC,EAASj4O,SACrCi4O,EAASj4O,UACZi4O,EAASj4O,SAAU,GAErB4tL,EAAAA,WAAgB,WACd,OAAO,WACL,OAAO8nF,EAAYuP,EACrB,CACF,GAEA,IAIA,IAAIwG,EAA0C,oBAAbvtQ,EAC7ButQ,EAEFD,EAAettQ,EADDmtQ,EAAa9W,gBAAe,GACT8W,GAEjCG,EAAettQ,EAIjBs3P,GAAciW,GAGd,IAAIC,EAAgB99F,EAAAA,SACpBA,EAAAA,WAAgB,YPpDX,SAAmBjoN,EAAQb,GAChC,GAAIa,IAAWb,EACb,OAAO,EAET,IAAKa,GAAUb,GAAUa,IAAWb,EAClC,OAAO,EAET,IAAKa,IAAWb,GAA8B,YAApBvI,EAAAA,GAAAA,GAAQoJ,IAA4C,YAApBpJ,EAAAA,GAAAA,GAAQuI,GAChE,OAAO,EAET,IAAI6mT,EAAa5rT,OAAOC,KAAK2F,GACzBimT,EAAa7rT,OAAOC,KAAK8E,GAE7B,OAAOi4O,GADI,IAAIloM,IAAI,GAAGt2C,OAAOotT,EAAYC,KACTxgT,OAAM,SAAUvM,GAC9C,IAAIgtT,EAAclmT,EAAO9G,GACrBitT,EAAchnT,EAAOjG,GACzB,MAA2B,oBAAhBgtT,GAAqD,oBAAhBC,GAGzCD,IAAgBC,CACzB,GACF,EOgCSC,CAAUL,EAAc1rR,SAAW,GAAI6/J,GAAU,KACpDwrH,EAAarW,UAAUn1G,GAAU,IAEnC6rH,EAAc1rR,QAAU6/J,CAC1B,GAAG,CAACA,EAAQwrH,IACZ,IAAIW,EAAmBp+F,EAAAA,SAAc,WACnC,OAAO2kB,GAAcA,GAAc,CAAC,EAAG84E,GAAe,CAAC,EAAG,CACxD5J,gBAAiBA,GAErB,GAAG,CAAC4J,EAAc5J,IACdwK,EAA2Br+F,EAAAA,cAAoB01F,GAAYtyM,SAAU,CACvEr4G,MAAO,MACOi1N,EAAAA,cAAoBu1F,GAAanyM,SAAU,CACzDr4G,MAAOqzT,GACNR,IACH,OAAkB,IAAdl7M,EACK27M,EAEWr+F,EAAAA,cAAoBt9G,EAAW0oH,GAAS,CAAC,EAAG6a,EAAW,CACzEviM,IAAK85Q,EACLc,SAAU,SAAkB/4P,GAC1BA,EAAMrH,iBACNqH,EAAMxI,kBACN0gQ,EAAajW,QACf,EACA+K,QAAS,SAAiBhtP,GACxB,IAAIg5P,EACJh5P,EAAMrH,iBACNu/P,EAAatW,cACgC,QAA5CoX,EAAqBt4E,EAAUssE,eAA4C,IAAvBgM,GAAiCA,EAAmBryT,KAAK+5O,EAAW1gL,EAC3H,IACE84P,EACN,EC3IO,SAASzoT,GAAU7K,GACxB,IACE,OAAO2K,KAAKE,UAAU7K,EACxB,CAAE,MAAO6E,GACP,OAAOjC,KAAKmiB,QACd,CACF,CACA,IAAI0uS,GAIA,WAAa,EA6EjB,SAvEA,WACE,IAAK,IAAI/hF,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAEzB,IAAIzqK,EAAe37C,EAAK,GACtBmoS,EAASnoS,EAAK,GACdooS,OAAmB,IAAXD,EAAoB,CAAC,EAAIA,EAC/BpvT,EzCxBC,SAAwBk5E,GAC7B,OAAOA,KAAUA,EAAKj6B,KACxB,CyCsBgBqwQ,CAAeD,GAAS,CACpCn2O,KAAMm2O,GACJA,EACAn2O,EAAOl5E,EAAQk5E,KAEjBqiK,EAAa7C,IADCruK,EAAAA,EAAAA,YACyB,GACvC3uE,EAAQ6/O,EAAW,GACnB/7L,EAAW+7L,EAAW,GACpBg0E,GAAWrlP,EAAAA,EAAAA,UAAQ,WACrB,OAAO3jE,GAAU7K,EACnB,GAAG,CAACA,IACA8zT,GAAcplP,EAAAA,EAAAA,QAAOmlP,GACzBC,EAAYzsR,QAAUwsR,EACtB,IAAIhN,GAAe14O,EAAAA,EAAAA,YAAWq8O,IAC1BkI,EAAel1O,GAAQqpO,EACvBkN,EAAcrB,GAAgBA,EAAanvQ,MAM3CsgQ,EAAW0B,GAAYr+O,GACvB8sP,GAActlP,EAAAA,EAAAA,QAAOm1O,GAwCzB,OAvCAmQ,EAAY3sR,QAAUw8Q,EACtB4P,GAAgB5P,IAChBz1O,EAAAA,EAAAA,YAAU,WAER,GAAK2lP,EAAL,CAGA,IAAInY,EAAiB8W,EAAa9W,eAGhCqB,GADsBP,EADHgW,EAAahW,kBACOjB,IACLwB,cAChCgX,EAAgB,SAAuBx8S,EAAQo1S,GACjD,IAAIqH,EAAa5vT,EAAQsqR,SAAWi+B,EAAYp1S,EAChD,MAA+B,oBAAjByvD,EAA8BA,EAAagtP,GAAcrwQ,GAASqwQ,EAAYF,EAAY3sR,QAC1G,EACIgjR,EAAiBpN,GAAc,SAAUxlS,EAAQo1S,GACnD,IAAIx0N,EAAW47N,EAAcx8S,EAAQo1S,GACjCsH,EAAetpT,GAAUwtF,GAGzBy7N,EAAYzsR,UAAY8sR,IAC1BL,EAAYzsR,QAAU8sR,EACtBrwQ,EAASu0C,GAEb,IAGI5zC,EAAewvQ,EAAcrY,IAAkBA,GAAe,IAOlE,OAHI57S,IAAUykD,GACZX,EAASW,GAEJ4lQ,CA5BP,CA6BF,GAGA,CAAC0J,IACM/zT,CACT,ECpFA,IACIo0T,GAD4Bn/F,EAAAA,WAAiBo/F,IAEjDD,GAAQtC,aAAeA,GACvBsC,GAAQ7N,MAAQA,GAChB6N,GAAQE,KAAOA,GACfF,GAAQzB,QAAUA,GAClByB,GAAQ5+C,SAAWA,GAEnB,YCZai8C,GAA2Bx8F,EAAAA,cAAoB,CAC1Ds/F,WAAY,QACZz0R,UAAU,EACV00R,QAASA,SAEEC,GAAkCx/F,EAAAA,cAAoB,MACtD68F,GAAe74Q,IAC1B,MAAMy7Q,EAAgB/qN,GAAK1wD,EAAO,CAAC,cACnC,OAAoBg8K,EAAAA,cAAoB0/F,GAAgBvtT,OAAOoD,OAAO,CAAC,EAAGkqT,GAAe,EAE9EE,GAAqC3/F,EAAAA,cAAoB,CACpEylB,UAAW,KAEAm6E,GAAoC5/F,EAAAA,cAAoB,CAAC,GAI/D,MAAM6/F,GAAczoK,IACzB,IAAI,SACF9mG,EAAQ,OACR1H,EAAM,SACNgzO,GACExkI,EACJ,MAAM0oK,EAAuB9/F,EAAAA,WAAiB4/F,IACxCG,EAA0B//F,EAAAA,SAAc,KAC5C,MAAMggG,EAAa7tT,OAAOoD,OAAO,CAAC,EAAGuqT,GASrC,OARIlkC,UACKokC,EAAWC,gBAEhBr3Q,WACKo3Q,EAAWp3Q,cACXo3Q,EAAWE,mBACXF,EAAWG,cAEbH,CAAU,GAChB,CAACp3Q,EAAQgzO,EAAUkkC,IACtB,OAAoB9/F,EAAAA,cAAoB4/F,GAAqBx8M,SAAU,CACrEr4G,MAAOg1T,GACNzvQ,EAAS,EAED8vQ,GAA8BpgG,EAAAA,mBAAoB5mN,GC1CzDinT,GAA2BrgG,EAAAA,mBAAoB5mN,GACxCknT,GAAsBlpK,IACjC,IAAI,SACF9mG,EAAQ,KACR9hC,GACE4oI,EACJ,MAAMmpK,EAAavgG,EAAAA,WAAiBqgG,IACpC,OAAoBrgG,EAAAA,cAAoBqgG,GAAYj9M,SAAU,CAC5Dr4G,MAAOyjB,GAAQ+xS,GACdjwQ,EAAS,EAEd,MCIA,GAhBgBkwQ,IACd,MAAMhyS,EAAOwxM,EAAAA,WAAiBqgG,IAa9B,OAZmBrgG,EAAAA,SAAc,IAC1BwgG,EAGqB,kBAAfA,EACa,OAAfA,QAAsC,IAAfA,EAAwBA,EAAahyS,EAEjEgyS,aAAsBltT,SACjBktT,EAAWhyS,GAEbA,EAREA,GASR,CAACgyS,EAAYhyS,GACC,ECCnB,GAjB6BsmG,IAC3B,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAACu0K,GAAe,CACd,UAAW,CACT12R,QAAS,OACTvE,MAAO,QAET,aAAc,CACZowS,cAAe,WAGpB,ECZGiiB,GAAgB3rM,IACpB,MAAM,aACJu0K,EAAY,OACZG,GACE10K,EACJ,MAAO,CACL,CAACu0K,GAAe,CACd12R,QAAS,cACT,QAAS,CACPi3H,UAAW,OAEb,aAAc,CACZ40K,cAAe,UAEjB,UAAW,CACTA,cAAe,SACf,WAAY,CACVvS,WAAY,UAEd,UAAW,CACTA,WAAY,cAEd,QAAS,CACPA,WAAY,YAEd,aAAc,CACZA,WAAY,aAGhB,CAAC,GAAG5C,gBAA4B,CAC9B12R,QAAS,QAGX,CAAC,GAAG02R,YAAuBG,oCAA0C,CACnE72R,QAAS,UAGd,EAEG+tT,GAAmB5rM,IACvB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAACu0K,GAAe,CACd,kBAAmB,CACjBs3B,OAAQ7rM,EAAM8rM,mBAEhB,mBAAoB,CAClBD,OAAQ7rM,EAAM+rM,oBAEhB,kBAAmB,CACjBF,OAAQ7rM,EAAMgsM,mBAEhB,kBAAmB,CACjBC,UAAWjsM,EAAM8rM,mBAEnB,mBAAoB,CAClBG,UAAWjsM,EAAM+rM,oBAEnB,kBAAmB,CACjBE,UAAWjsM,EAAMgsM,oBAGtB,EAIH,GAAej3B,GAAc,SAAS/0K,IACpC,MAAMksM,EAAal6B,GAAWhyK,EAAO,CACnC8rM,kBAAmB9rM,EAAMwlL,UACzBumB,mBAAoB/rM,EAAMpnF,QAC1BozR,kBAAmBhsM,EAAM2lL,YAE3B,MAAO,CAACgmB,GAAcO,GAAaN,GAAiBM,GAAaC,GAAqBD,GAAY,IACjG,KAAM,CAAG,IAAG,CAGbp3B,YAAY,IC9Ed,IAAIkO,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAOO,MAAMqhS,GAAuClhG,EAAAA,cAAoB,MAC3DmhG,GAAwBA,CAAC17E,EAAW77G,KAC/C,MAAMw3L,EAAqBphG,EAAAA,WAAiBkhG,IACtCG,EAAwBrhG,EAAAA,SAAc,KAC1C,IAAKohG,EACH,MAAO,GAET,MAAM,iBACJE,EAAgB,YAChBC,EAAW,WACXC,GACEJ,EACE5vS,EAAiC,aAArB8vS,EAAkC,aAAe,IACnE,OAAO3hG,KAAW,GAAG8lB,YAAoBj0N,QAAiB,CACxD,CAAC,GAAGi0N,YAAoBj0N,eAAwB+vS,EAChD,CAAC,GAAG97E,YAAoBj0N,cAAuBgwS,EAC/C,CAAC,GAAG/7E,YAAoBj0N,aAAoC,QAAdo4G,GAC9C,GACD,CAAC67G,EAAW77G,EAAWw3L,IAC1B,MAAO,CACLK,YAAoC,OAAvBL,QAAsD,IAAvBA,OAAgC,EAASA,EAAmBK,YACxGH,iBAAyC,OAAvBF,QAAsD,IAAvBA,OAAgC,EAASA,EAAmBE,iBAC7GD,wBACD,EAEUK,GAAiB19Q,IAC5B,MAAM,SACJsM,GACEtM,EACJ,OAAoBg8K,EAAAA,cAAoBkhG,GAAwB99M,SAAU,CACxEr4G,MAAO,MACNulD,EAAS,EAERqxQ,GAAc39Q,IAClB,MAAM,SACFsM,GACEtM,EACJ49Q,EAAS9pB,GAAO9zP,EAAO,CAAC,aAC1B,OAAoBg8K,EAAAA,cAAoBkhG,GAAwB99M,SAAU,CACxEr4G,MAAOi1N,EAAAA,SAAc,IAAM4hG,GAAQ,CAACA,KACnCtxQ,EAAS,EA6Cd,GA3CgBtM,IACd,MAAM,aACJixO,EACArrJ,UAAWi4L,GACT7hG,EAAAA,WAAiBg1D,KACf,KACFxmQ,EAAI,UACJo7G,EAAS,MACT/R,EACA4tH,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,SACb9zN,GACEtM,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,OAAQ,YAAa,QAAS,YAAa,YAAa,gBAAiB,aAChG89Q,EAAaC,IAAQ9uL,GAAgB,OAATzkH,QAA0B,IAATA,EAAkBA,EAAOykH,IACtEwyG,EAAYwvC,EAAa,gBAAiBG,IACzC+rB,EAAY7nB,GAAU4Q,GAASzkD,GAChCu8E,EAAMriG,KAAW8lB,EAAW6zC,EAAQ,CACxC,CAAC,GAAG7zC,SAAsC,QAApBo8E,EACtB,CAAC,GAAGp8E,WAAoB5tH,EACxB,CAAC,GAAG4tH,cAAqC,aAAd77G,GAC1Bl2H,EAAW0wQ,GACRg9C,EAAqBphG,EAAAA,WAAiBkhG,IACtC1/K,EAAa7tC,GAAQrjD,GACrB2xQ,EAAQjiG,EAAAA,SAAc,IAAMx+E,EAAWhoI,KAAI,CAACpF,EAAO/G,KACvD,MAAM4D,GAAiB,OAAVmD,QAA4B,IAAVA,OAAmB,EAASA,EAAMnD,MAAQ,GAAGw0O,UAAkBp4O,IAC9F,OAAoB2yN,EAAAA,cAAoB2hG,GAAa,CACnD1wT,IAAKA,EACLwwT,YAAaK,EACbR,iBAAkB13L,EAClB23L,YAAmB,IAANl0T,KAAa+zT,IAA8C,OAAvBA,QAAsD,IAAvBA,OAAgC,EAASA,EAAmBG,cAC5IC,WAAYn0T,IAAMm0I,EAAWl0I,OAAS,KAAO8zT,IAA8C,OAAvBA,QAAsD,IAAvBA,OAAgC,EAASA,EAAmBI,cAC9JptT,EAAM,KACP,CAACoa,EAAMgzH,EAAY4/K,IAEvB,OAA0B,IAAtB5/K,EAAWl0I,OACN,KAEF6zS,EAAwBnhF,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CACtE7B,UAAWsuT,GACV/7E,GAAYg8E,GAAO,ECzExB,GArBwBj+Q,IACtB,MAAM,MACJ5tB,EAAK,KACLmyD,EAAI,SACJj4B,GACEtM,EACJ,QAAiB5qC,IAAbk3C,GAAuC,OAAbA,EAC5B,OAAO,KAET,IAAIlzC,EAASkzC,EAUb,OATIi4B,IACFnrE,EAAsB4iN,EAAAA,cAAoB6/F,GAAa,CACrDjkC,UAAU,EACVhzO,QAAQ,GACPxrC,IAEDgZ,IACFhZ,EAAsB4iN,EAAAA,cAAoB0hG,GAAgB,KAAMtkT,IAE3DA,CAAM,ECnBf,SAJmC4iN,EAAAA,mBAAoB5mN,GCOjD8oT,GAAmB,IAEZC,GAAuBD,IAOvBE,GAA4B,CACvCC,MAAOH,GACPI,OAAQJ,GACRK,QAASL,GACTM,WAAYN,GACZ9e,QAAS8e,GACTO,KAAMP,GACNQ,YAAaR,IAEFS,GAA2B,CACtCC,WAAY,GACZC,SAAU,GACVC,WAAY,GACZjhQ,KAAM,GACNkhQ,aAAc,GAKT,MAAMC,GAAYA,CAACC,EAAeC,KACvC,MAAO,CAAEpuM,GAAS+yK,KACZs7B,EAAenjG,EAAAA,WAAiBojG,IAChCC,EAA8BJ,KALrBb,GAMf,IAAIhlT,EACJ,QAAqBhE,IAAjB8pT,EACF9lT,EAAS,CAAC8lT,EAAcA,OACnB,CACL,IAAIxrT,EAA0B,OAAjByrT,QAA0C,IAAjBA,EAA0BA,EAAe,EAE7EzrT,GADE2rT,GAGDF,EAAe,EAAIruM,EAAMg5K,iBAE1Bs0B,GAA0Ba,GAEhBN,GAAyBM,GAErC7lT,EAAS,MAAkBhE,IAAjB+pT,EAA6BD,EAAexrT,EAAQA,EAChE,CAOA,OAAO0F,CAAM,EC7DR,SAASkmT,GAAcxuM,GAC5B,MAAM,eACJ64K,EAAc,eACde,EAAc,kBACdG,GACE/5K,EACEyuM,EAAY51B,EAAiB,EAE7B61B,EAAKD,EACLE,EAAyB,EAApB50B,EAAwBlhS,KAAKs4H,KAAK,GACvCy9L,EAAKH,EAAY10B,GAAqB,EAAI,EAAIlhS,KAAKs4H,KAAK,IACxDG,EAAKm9L,EAAY70B,GAAkB,EAAI/gS,KAAKs4H,KAAK,IACjDI,EAAKwoK,GAAqBlhS,KAAKs4H,KAAK,GAAK,GAAKyoK,GAAkB,EAAI/gS,KAAKs4H,KAAK,IAC9E09L,EAAK,EAAIJ,EAAYn9L,EACrBw9L,EAAKv9L,EACL05F,EAAK,EAAIwjG,EAAYE,EACrBI,EAAKH,EACLI,EAAK,EAAIP,EAVJ,EAWL/zG,EAAKg0G,EACLO,EAAcR,EAAY51T,KAAKs4H,KAAK,GAAK4oK,GAAqBlhS,KAAKs4H,KAAK,GAAK,GAC7E+9L,EAAgBn1B,GAAqBlhS,KAAKs4H,KAAK,GAAK,GAG1D,MAAO,CACLg+L,iBAAkBF,EAClBG,UAHgB,aAAiBV,OAAQ30B,KAAqBA,WAA2B40B,KAAMC,OAAQt9L,KAAMC,OAAQqoK,KAAkBA,WAAwBi1B,KAAMC,OAAQ7jG,KAAM8jG,OAAQh1B,KAAqBA,WAA2Bi1B,KAAMt0G,QAIjP20G,aALmB,WAAWH,iBAA6BA,QAAoB,EAAIT,EAAYS,aAAyBA,YAO5H,CACO,MAAMI,GAAkBA,CAACtvM,EAAOuvM,EAASh3L,KAC9C,MAAM,eACJsgK,EAAc,aACdw2B,EAAY,UACZD,EAAS,iBACTD,EAAgB,eAChBv1B,EAAc,KACdvf,GACEr6J,EACJ,MAAO,CACLwxH,cAAe,OACfl4O,MAAOu/R,EACP7/R,OAAQ6/R,EACRl2R,SAAU,SACV,YAAa,CACXD,SAAU,WACVjF,OAAQ,EACRotS,iBAAkB,EAClBvxS,MAAOu/R,EACP7/R,OAAQqhR,EAAKwe,GAAgB7qE,IAAI,GAAG19C,QACpCz9C,WAAY08L,EACZC,SAAU,CACRC,eAAe,EACfx5T,MAAO,CAACo5T,EAAcD,IAExBt5S,QAAS,MAEX,WAAY,CACVA,QAAS,KACTpT,SAAU,WACVpJ,MAAO61T,EACPn2T,OAAQm2T,EACR1xT,OAAQ,EACRiyT,YAAa,EACbz2T,OAAQ,OACRy/R,aAAc,CACZi3B,cAAc,EACd15T,MAAO,OAAOoE,GAAKu/R,QAErBhjN,UAAW,kCACX2hD,YACA31H,OAAQ,EACRiwH,WAAY,eAEf,ECvEI,SAAS+8L,GAAoBr1T,GAClC,MAAM,cACJs1T,EAAa,oBACbC,GACEv1T,EACEw1T,EAAcF,EAAgB,GAAKA,EAAgB,EAAI,GAE7D,MAAO,CACLG,sBAAuBD,EACvBE,oBAH0BH,EAPa,EAOuCC,EAKlF,CACA,SAASG,GAASzpF,EAAO5oN,GACvB,OAAK4oN,EAGE5oN,EAFE,CAAC,CAGZ,CACe,SAASsyS,GAAcnwM,EAAOowM,EAAS71T,GACpD,MAAM,aACJg6R,EAAY,sBACZoT,EAAqB,oBACrBsoB,EAAmB,sBACnBD,GACEhwM,GACE,cACJqwM,EAAgB,EAAC,eACjBC,EAAiB,CACf53T,MAAM,EACNmK,OAAO,EACPlK,KAAK,EACL8E,QAAQ,IAERlD,GAAW,CAAC,EAChB,MAAO,CACL,CAACg6R,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAEtE,CAAC,GAAG8zR,WAAuB,CAACl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CACtDiC,SAAU,WACVE,OAAQ,EACR/E,QAAS,SACRyxT,GAAgBtvM,EAAOowM,EAASzoB,IAAyB,CAC1D,WAAY,CACV90K,WAAYu9L,OAGfF,KAAWI,EAAe33T,IAAK,CAChC,CAAC,CAAC,qBAAqB47R,UAAsB,yBAAyBA,UAAsB,0BAA0BA,WAAsBj4R,KAAK,MAAO,CACtJmB,OAAQ4yT,EACRz5O,UAAW,mCAEb,CAAC,qBAAqB29M,WAAuB,CAC3C77R,KAAM,CACJi3T,cAAc,EACd15T,MAAO,OAET2gF,UAAW,oDAEb,sBAAuB,CACrB,4BAA6Bo5O,EAC7B,CAAC,KAAKz7B,WAAuB,CAC3B77R,KAAM,CACJi3T,cAAc,EACd15T,MAAO+5T,KAIb,uBAAwB,CACtB,4BAA6B,eAAe31T,GAAK21T,MACjD,CAAC,KAAKz7B,WAAuB,CAC3B1xR,MAAO,CACL8sT,cAAc,EACd15T,MAAO+5T,QAIVE,KAAWI,EAAe7yT,OAAQ,CACrC,CAAC,CAAC,wBAAwB82R,UAAsB,4BAA4BA,UAAsB,6BAA6BA,WAAsBj4R,KAAK,MAAO,CAC/J3D,IAAK03T,EACLz5O,UAAW,qBAEb,CAAC,wBAAwB29M,WAAuB,CAC9C77R,KAAM,CACJi3T,cAAc,EACd15T,MAAO,OAET2gF,UAAW,sCAEb,yBAA0B,CACxB,4BAA6Bo5O,EAC7B,CAAC,KAAKz7B,WAAuB,CAC3B77R,KAAM,CACJi3T,cAAc,EACd15T,MAAO+5T,KAIb,0BAA2B,CACzB,4BAA6B,eAAe31T,GAAK21T,MACjD,CAAC,KAAKz7B,WAAuB,CAC3B1xR,MAAO,CACL8sT,cAAc,EACd15T,MAAO+5T,QAIVE,KAAWI,EAAe53T,KAAM,CACnC,CAAC,CAAC,sBAAsB67R,UAAsB,yBAAyBA,UAAsB,4BAA4BA,WAAsBj4R,KAAK,MAAO,CACzJuG,MAAO,CACL8sT,cAAc,EACd15T,MAAOo6T,GAETz5O,UAAW,kCAEb,CAAC,sBAAsB29M,WAAuB,CAC5C57R,IAAK,CACHg3T,cAAc,EACd15T,MAAO,OAET2gF,UAAW,mDAEb,CAAC,yBAAyB29M,WAAuB,CAC/C57R,IAAKs3T,GAEP,CAAC,4BAA4B17B,WAAuB,CAClD92R,OAAQwyT,MAEPC,KAAWI,EAAeztT,MAAO,CACpC,CAAC,CAAC,uBAAuB0xR,UAAsB,0BAA0BA,UAAsB,6BAA6BA,WAAsBj4R,KAAK,MAAO,CAC5J5D,KAAM,CACJi3T,cAAc,EACd15T,MAAOo6T,GAETz5O,UAAW,oCAEb,CAAC,uBAAuB29M,WAAuB,CAC7C57R,IAAK,CACHg3T,cAAc,EACd15T,MAAO,OAET2gF,UAAW,qDAEb,CAAC,0BAA0B29M,WAAuB,CAChD57R,IAAKs3T,GAEP,CAAC,6BAA6B17B,WAAuB,CACnD92R,OAAQwyT,MAIhB,CCvHA,MAAMM,GAAoB,CACxB73T,KAAM,CACJmgQ,OAAQ,CAAC,KAAM,OAEjBh2P,MAAO,CACLg2P,OAAQ,CAAC,KAAM,OAEjBlgQ,IAAK,CACHkgQ,OAAQ,CAAC,KAAM,OAEjBp7P,OAAQ,CACNo7P,OAAQ,CAAC,KAAM,OAEjBwV,QAAS,CACPxV,OAAQ,CAAC,KAAM,OAEjB4V,QAAS,CACP5V,OAAQ,CAAC,KAAM,OAEjByV,SAAU,CACRzV,OAAQ,CAAC,KAAM,OAEjB8V,SAAU,CACR9V,OAAQ,CAAC,KAAM,OAEjB2V,YAAa,CACX3V,OAAQ,CAAC,KAAM,OAEjB+V,YAAa,CACX/V,OAAQ,CAAC,KAAM,OAEjB0V,WAAY,CACV1V,OAAQ,CAAC,KAAM,OAEjB6V,WAAY,CACV7V,OAAQ,CAAC,KAAM,QAGb23D,GAA+B,CACnCniD,QAAS,CACPxV,OAAQ,CAAC,KAAM,OAEjB4V,QAAS,CACP5V,OAAQ,CAAC,KAAM,OAEjByV,SAAU,CACRzV,OAAQ,CAAC,KAAM,OAEjB8V,SAAU,CACR9V,OAAQ,CAAC,KAAM,OAEjB2V,YAAa,CACX3V,OAAQ,CAAC,KAAM,OAEjB+V,YAAa,CACX/V,OAAQ,CAAC,KAAM,OAEjB0V,WAAY,CACV1V,OAAQ,CAAC,KAAM,OAEjB6V,WAAY,CACV7V,OAAQ,CAAC,KAAM,QAGb43D,GAAuB,IAAIt+Q,IAAI,CAAC,UAAW,WAAY,aAAc,cAAe,UAAW,aAAc,WAAY,gBAChH,SAASu+Q,GAAcznR,GACpC,MAAM,WACJ0nR,EAAU,mBACVviD,EAAkB,mBAClBwiD,EAAkB,OAClBz+P,EAAM,aACNumO,EAAY,aACZm4B,GACE5nR,EACE6nR,EAAiBH,EAAa,EAC9BI,EAAe,CAAC,EAmEtB,OAlEA1zT,OAAOC,KAAKizT,IAAmBp4T,SAAQgE,IACrC,MAAMhB,EAAWy1T,GAAsBJ,GAA6Br0T,IAAQo0T,GAAkBp0T,GACxF0oQ,EAAgBxnQ,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGtF,GAAW,CAC/Dg3D,OAAQ,CAAC,EAAG,GACZsoM,cAAc,IAQhB,OANAs2D,EAAa50T,GAAO0oQ,EAEhB4rD,GAAqBvmT,IAAI/N,KAC3B0oQ,EAAc9L,WAAY,GAGpB58P,GACN,IAAK,MACL,IAAK,UACL,IAAK,WACH0oQ,EAAc1yM,OAAO,IAAM2+P,EAAiB3+P,EAC5C,MACF,IAAK,SACL,IAAK,aACL,IAAK,cACH0yM,EAAc1yM,OAAO,GAAK2+P,EAAiB3+P,EAC3C,MACF,IAAK,OACL,IAAK,UACL,IAAK,aACH0yM,EAAc1yM,OAAO,IAAM2+P,EAAiB3+P,EAC5C,MACF,IAAK,QACL,IAAK,WACL,IAAK,cACH0yM,EAAc1yM,OAAO,GAAK2+P,EAAiB3+P,EAI/C,MAAM49P,EAAcH,GAAoB,CACtCC,cAAen3B,EACfo3B,qBAAqB,IAEvB,GAAIc,EACF,OAAQz0T,GACN,IAAK,UACL,IAAK,aACH0oQ,EAAc1yM,OAAO,IAAM49P,EAAYC,sBAAwBc,EAC/D,MACF,IAAK,WACL,IAAK,cACHjsD,EAAc1yM,OAAO,GAAK49P,EAAYC,sBAAwBc,EAC9D,MACF,IAAK,UACL,IAAK,WACHjsD,EAAc1yM,OAAO,GAA0C,GAApC49P,EAAYC,sBAA4Bc,EACnE,MACF,IAAK,aACL,IAAK,cACHjsD,EAAc1yM,OAAO,GAAyC,EAApC49P,EAAYC,sBAA4Bc,EAKxEjsD,EAAcliQ,SAzKX,SAA4B8gQ,EAAWssD,EAAaY,EAAYviD,GACrE,IAA2B,IAAvBA,EACF,MAAO,CACLtG,SAAS,EACTC,SAAS,GAGb,MAAMplQ,EAAWyrQ,GAAoD,kBAAvBA,EAAkCA,EAAqB,CAAC,EAChG4iD,EAAe,CAAC,EACtB,OAAQvtD,GACN,IAAK,MACL,IAAK,SACHutD,EAAahpD,OAA6C,EAApC+nD,EAAYC,sBAA4BW,EAC9DK,EAAa/oD,QAAS,EACtB+oD,EAAajpD,SAAU,EACvB,MACF,IAAK,OACL,IAAK,QACHipD,EAAa/oD,OAA2C,EAAlC8nD,EAAYE,oBAA0BU,EAC5DK,EAAahpD,QAAS,EACtBgpD,EAAalpD,SAAU,EAG3B,MAAMmpD,EAAiB5zT,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGuwT,GAAeruT,GAQtE,OANKsuT,EAAejpD,SAClBipD,EAAenpD,SAAU,GAEtBmpD,EAAehpD,SAClBgpD,EAAelpD,SAAU,GAEpBkpD,CACT,CAyI6BC,CAAmB/0T,EAAK4zT,EAAaY,EAAYviD,GAEtEyiD,IACFhsD,EAAcW,WAAa,eAC7B,IAEKurD,CACT,CC/KO,SAAS9rS,KAAQ,CAiBjB,MAAMksS,GAA8BjmG,EAAAA,cAAoB,CAAC,GAMnDkmG,GA4BT,KACF,MAAMC,EAAcA,OAEpB,OADAA,EAAYhwR,WAAapc,GAClBosS,CAAW,ECxDdC,GAAmBp5L,IAAY,CACnCa,kBAAmBb,EACnBq5L,kBAAmB,SAGfC,GAAwBt5L,IAAY,CACxCa,kBAAmBb,EACnBq5L,kBAAmB,SAERE,GAAa,SAAUp7D,EAAWq7D,EAAaC,EAAcz5L,GAExE,MAAM05L,EADU9qT,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAC3C,IAAM,GAC1C,MAAO,CACL,CAAC,WACG8qT,IAAkBv7D,mBAClBu7D,IAAkBv7D,kBAClBh5P,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG6wT,GAAiBp5L,IAAY,CAC/D25L,mBAAoB,WAEtB,CAAC,GAAGD,IAAkBv7D,WAAoBh5P,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG+wT,GAAsBt5L,IAAY,CAC1G25L,mBAAoB,WAEtB,CAAC,WACGD,IAAkBv7D,UAAkBA,0BACpCu7D,IAAkBv7D,WAAmBA,yBACrC,CACFtqM,cAAe2lQ,EACfG,mBAAoB,WAEtB,CAAC,GAAGD,IAAkBv7D,UAAkBA,kBAA2B,CACjEtqM,cAAe4lQ,EACfE,mBAAoB,UACpBrgF,cAAe,QAGrB,ECjCasgF,GAAS,IAAIC,GAAU,YAAa,CAC/C,KAAM,CACJn7O,UAAW,aACX5zE,QAAS,GAEX,OAAQ,CACN4zE,UAAW,WACX5zE,QAAS,KAGAgvT,GAAU,IAAID,GAAU,aAAc,CACjD,KAAM,CACJn7O,UAAW,YAEb,OAAQ,CACNA,UAAW,aACX5zE,QAAS,KAGAivT,GAAY,IAAIF,GAAU,eAAgB,CACrD,KAAM,CACJn7O,UAAW,aACX5zE,QAAS,GAEX,OAAQ,CACN4zE,UAAW,WACX5zE,QAAS,KAGAkvT,GAAa,IAAIH,GAAU,gBAAiB,CACvD,KAAM,CACJn7O,UAAW,YAEb,OAAQ,CACNA,UAAW,aACX5zE,QAAS,KAGAmvT,GAAW,IAAIJ,GAAU,cAAe,CACnD,KAAM,CACJn7O,UAAW,aACXogD,gBAAiB,SACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,WACXogD,gBAAiB,YAGRo7L,GAAY,IAAIL,GAAU,eAAgB,CACrD,KAAM,CACJn7O,UAAW,WACXogD,gBAAiB,UAEnB,OAAQ,CACNpgD,UAAW,aACXogD,gBAAiB,SACjBh0H,QAAS,KAGAqvT,GAAa,IAAIN,GAAU,gBAAiB,CACvD,KAAM,CACJn7O,UAAW,aACXogD,gBAAiB,SACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,WACXogD,gBAAiB,YAGRs7L,GAAc,IAAIP,GAAU,iBAAkB,CACzD,KAAM,CACJn7O,UAAW,WACXogD,gBAAiB,UAEnB,OAAQ,CACNpgD,UAAW,aACXogD,gBAAiB,SACjBh0H,QAAS,KAGAuvT,GAAc,IAAIR,GAAU,iBAAkB,CACzD,KAAM,CACJn7O,UAAW,aACXogD,gBAAiB,WACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,WACXogD,gBAAiB,cAGRw7L,GAAe,IAAIT,GAAU,kBAAmB,CAC3D,KAAM,CACJn7O,UAAW,WACXogD,gBAAiB,YAEnB,OAAQ,CACNpgD,UAAW,aACXogD,gBAAiB,WACjBh0H,QAAS,KAGAyvT,GAAa,IAAIV,GAAU,gBAAiB,CACvD,KAAM,CACJn7O,UAAW,aACXogD,gBAAiB,WACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,WACXogD,gBAAiB,cAGR07L,GAAc,IAAIX,GAAU,iBAAkB,CACzD,KAAM,CACJn7O,UAAW,WACXogD,gBAAiB,YAEnB,OAAQ,CACNpgD,UAAW,aACXogD,gBAAiB,WACjBh0H,QAAS,KAGP2vT,GAAa,CACjBx0Q,KAAM,CACJuzQ,YAAaI,GACbH,aAAcK,IAEhB,WAAY,CACVN,YAAaO,GACbN,aAAcO,IAEhB,gBAAiB,CACfR,YAAaO,GACbN,aAAcO,IAEhB,YAAa,CACXR,YAAaW,GACbV,aAAcW,IAEhB,aAAc,CACZZ,YAAaa,GACbZ,aAAca,IAEhB,UAAW,CACTd,YAAaS,GACbR,aAAcS,IAEhB,YAAa,CACXV,YAAae,GACbd,aAAce,KAGLE,GAAiBA,CAAC5yM,EAAOo1I,KACpC,MAAM,OACJs/B,GACE10K,EACEq2I,EAAY,GAAGq+B,KAAUt/B,KACzB,YACJs8D,EAAW,aACXC,GACEgB,GAAWv9D,GACf,MAAO,CAACq8D,GAAWp7D,EAAWq7D,EAAaC,EAA6B,kBAAfv8D,EAAiCp1I,EAAMiiL,mBAAqBjiL,EAAMkiL,mBAAoB,CAC7I,CAAC,aACK7rC,qBACAA,oBACA,CACJz/K,UAAW,WACX5zE,QAAS,EACT6vT,wBAAyB7yM,EAAMk4K,kBAC/B,YAAa,CACXthN,UAAW,SAGf,CAAC,GAAGy/K,WAAoB,CACtBw8D,wBAAyB7yM,EAAMm4K,sBAEjC,ECtLS26B,GAAe,CAAC,OAAQ,SAAU,OAAQ,QAAS,UAAW,OAAQ,MAAO,SAAU,SAAU,UAAW,WAAY,OAAQ,QCC9H,SAASC,GAAe/yM,EAAOgzM,GAC5C,OAAOF,GAAax8R,QAAO,CAACrC,EAAMqpQ,KAChC,MAAM21B,EAAajzM,EAAM,GAAGs9K,MACtB41B,EAAmBlzM,EAAM,GAAGs9K,MAC5B61B,EAAYnzM,EAAM,GAAGs9K,MACrBjmQ,EAAY2oF,EAAM,GAAGs9K,MAC3B,OAAOjgS,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGwzB,GAAO++R,EAAO11B,EAAU,CAC7D21B,aACAC,mBACAC,YACA97R,cACC,GACF,CAAC,EACN,CCRA,MAAM+7R,GAAkBpzM,IACtB,MAAM,KACJq6J,EAAI,aACJka,EAAY,gBAEZ8+B,EAAe,aACfC,EAAY,UACZC,EAAS,oBACTC,EAAmB,YACnBC,EAAW,cACX36B,EAAa,mBACb4N,EAAkB,UAClBjB,EAAS,UACTD,EAAS,sBACTwqB,EAAqB,eACrBn3B,GACE74K,EAEE0zM,EAAoBr5C,EAAKm5C,GAAqB3mS,IAAIgsQ,GAAgBhsQ,IAAImjS,GAAuB1/I,QAE7FqjJ,EAAsBt5C,EAAKm5C,GAAqB9jG,IAAI,GAAG7iM,IAAIgsQ,GAAgBvoH,QACjF,MAAO,CAAC,CACN,CAACikH,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CAClGt9G,SAAU,WACVE,OAAQ6wT,EACR51T,QAAS,QACTvE,MAAO,cACP87B,SAAUi+R,EACVn8L,WAAY,UAEZ,mBAAoB,iDACpBF,gBAAiB,CAAC,6BAA8B,uBAAuB16H,KAAK,KAC5E,WAAY,CACVuB,QAAS,QAEX,gCAAiC01T,EAEjC,CAAC,GAAGh/B,WAAuB,CACzBpxP,SAAUwwR,EACV94D,UAAWi+B,EACXlgQ,QAAS,GAAGv+B,GAAK2lH,EAAMq6J,KAAKorB,GAAWz3E,IAAI,GAAG19C,YAAYj2K,GAAKmrS,KAC/DltQ,MAAOg7R,EACPv5R,UAAW,QACXq/F,eAAgB,OAChBw6L,SAAU,aACV9wT,gBAAiBywT,EACjB76B,aAAc86B,EACdj7L,UAAWmuK,EACXj7D,UAAW,cAGb,CAAC,CAAC,sBAAuB,uBAAwB,yBAA0B,2BAA2BnvO,KAAK,MAAO,CAChH6mC,SAAUuwR,GAGZ,CAAC,CAAC,mBAAoB,sBAAuB,yBAA0B,oBAAqB,uBAAwB,2BAA2Bp3T,KAAK,MAAO,CACzJ,CAAC,GAAGi4R,WAAuB,CACzBmE,aAAc14K,EAAM1lG,IAAIk5S,EP7DS,KOgErC,CAAC,GAAGj/B,aAAyB,CAC3B7xR,SAAU,cAEVqwT,GAAe/yM,GAAO,CAACs9K,EAAUh7I,KACnC,IAAI,UACF6wK,GACE7wK,EACJ,MAAO,CACL,CAAC,IAAIiyI,KAAgB+I,KAAa,CAChC,CAAC,GAAG/I,WAAuB,CACzBzxR,gBAAiBqwT,GAEnB,CAAC,GAAG5+B,WAAuB,CACzB,gCAAiC4+B,IAGtC,KACE,CAEH,QAAS,CACPr+L,UAAW,UAKjBq7L,GAAcnwM,EAAO,sCAErB,CACE,CAAC,GAAGu0K,UAAsB,CACxB7xR,SAAU,WACV0yB,SAAU,OACVn8B,OAAQ+mH,EAAM64K,iBAEhB,EAGS8Q,GAAwB3pL,GAAS3iH,OAAOoD,OAAOpD,OAAOoD,OAAO,CACxEgzT,YAAazzM,EAAMg5K,gBAAkB,IACpC42B,GAAoB,CACrBC,cAAe7vM,EAAM04K,aACrBo3B,qBAAqB,KAClBtB,GAAcx8B,GAAWhyK,EAAO,CACnC+5K,kBAAmBlhS,KAAKyhB,IAAI0lG,EAAM+5K,kBAAmB,OAEvD,YAA0BppD,GAqBxB,OAnBiBokD,GAAc,WAAW/0K,IACxC,MAAM,aACJ04K,EAAY,oBACZwL,EAAmB,iBACnBjH,GACEj9K,EACE6zM,EAAe7hC,GAAWhyK,EAAO,CAErCqzM,gBAAiB,IACjBC,aAAcpvB,EACdsvB,oBAAqB96B,EACrB66B,UAAWt2B,IAEb,MAAO,CAACm2B,GAAgBS,GAAejB,GAAe5yM,EAAO,iBAAiB,GAC7E2pL,GAAuB,CACxB7U,YAAY,EAEZb,cAlBgBntR,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,KAAmBA,UAAU,IAoB1EsuR,CAASzkD,EACjB,EClIKmjF,GAAgBhB,GAAapuT,KAAI4zB,GAAS,GAAGA,cACtCy7R,GAAyB,CAAC,UAAW,aAAc,QAAS,UAAW,WAM7E,SAASC,GAAc17R,GAE5B,QADqBxxB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,KAAmBA,UAAU,GAE3E,GAAGjL,OAAOw+O,GAAmBy5E,IAAgBz5E,GAAmBy4E,KAAetrT,SAAS8wB,GAE1Fw6R,GAAatrT,SAAS8wB,EAC/B,CCbO,SAASL,GAAW04M,EAAWr4M,GACpC,MAAM27R,EAAkBD,GAAc17R,GAChC15B,EAAYisN,KAAW,CAC3B,CAAC,GAAG8lB,KAAar4M,KAAUA,GAAS27R,IAEhCvlB,EAAe,CAAC,EAChBwlB,EAAa,CAAC,EAMpB,OALI57R,IAAU27R,IACZvlB,EAAa77K,WAAav6F,EAE1B47R,EAAW,iCAAmC57R,GAEzC,CACL15B,YACA8vS,eACAwlB,aAEJ,CCVA,MA8BA,GA9BkBhlR,IAChB,MACEyhM,UAAW2vC,EAAkB,UAC7B1hR,EAAS,UACT6kQ,EAAY,MAAK,MACjBrgO,EAAK,MACL9K,EAAK,kBACL41Q,GACEh/P,GACE,aACJixO,GACEj1D,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,UAAWG,IACnC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAE3CgnD,EAAY1/P,GAAW04M,EAAWr4M,GAClC67R,EAAoBx8B,EAAUu8B,WAC9BE,EAA6B/2T,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGytS,GAAoBvW,EAAU+W,cAC3F31H,EAAM8xC,KAAW25D,EAAQ8nB,EAAW37D,EAAW,GAAGA,SAAkB,GAAGA,eAAuB8yB,IAAa7kQ,EAAW+4R,EAAU/4R,WACtI,OAAOytS,EAAwBnhF,EAAAA,cAAoB,MAAO,CACxDtsN,UAAWm6K,EACXp8K,MAAOw3T,GACOjpG,EAAAA,cAAoB,MAAO,CACzCtsN,UAAW,GAAG+xO,YACCzlB,EAAAA,cAAoBijD,GAAO9wQ,OAAOoD,OAAO,CAAC,EAAGyuC,EAAO,CACnEtwC,UAAW4lR,EACX7zC,UAAWA,EACXu9D,kBAAmBkmB,IACjBhxR,IAAQ,ECnCd,IAAI4/P,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAiBA,MAuKMujR,GAvK+BpjF,EAAAA,YAAiB,CAACh8K,EAAON,KAC5D,IAAIjb,EAAIC,EACR,MACI+8M,UAAW2vC,EAAkB,cAC7B+zC,EAAa,oBACbplB,EAAmB,MACnB32Q,EAAK,kBACL41Q,EAAiB,SACjB1yP,EAAQ,gBACR84Q,EAAe,mBACf3lB,EAAkB,qBAClBI,EAAoB,MACpBv2C,GAAQ,EAAI,MACZp1N,EAAK,QACL9hC,EAAO,kBACPs+P,EAAiB,mBACjBgxD,GAAqB,EAAK,mBAC1BxiD,GAAqB,EAAI,OACzB3Y,EAAM,kBACNiE,EAAiB,UACjB+J,EAAY,MAAK,gBACjBzE,EAAkB,GAAG,gBACrBE,EAAkB,GAAG,aACrBwvC,EAAY,cACZp/B,EAAa,iBACbi/B,EAAgB,OAChBp7Q,EACA03L,WAAYwkF,GACVngQ,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,gBAAiB,sBAAuB,QAAS,oBAAqB,WAAY,kBAAmB,qBAAsB,uBAAwB,QAAS,QAAS,UAAW,oBAAqB,qBAAsB,qBAAsB,SAAU,oBAAqB,YAAa,kBAAmB,kBAAmB,eAAgB,gBAAiB,mBAAoB,SAAU,eACtaqlR,IAAoB/7D,GACnB,CAAEx4I,GAAS+yK,MAEhBr5B,kBAAmB86D,EAAwB,aAC3Cr0C,EAAY,UACZrrJ,EACAl2H,UAAW80O,EACX/2O,MAAO83T,EACP5pG,WAAY6pG,EACZvhS,OAAQwhS,GACNj0C,GAAmB,WAEjBzqD,EAAUm7F,GAAc,WACxBwD,EAAa1pG,EAAAA,OAAa,MAC1B8gD,EAAaA,KACjB,IAAIr4O,EAC0B,QAA7BA,EAAKihS,EAAWt3R,eAA4B,IAAP3J,GAAyBA,EAAGq4O,YAAY,EAEhF9gD,EAAAA,oBAA0Bt8K,GAAK,KAC7B,IAAIjb,EAAIC,EACR,MAAO,CACLo4O,aACA6oD,gBAAiBA,KACf5+F,EAAQ50L,YAAW,EAAO,kBAAmB,cAC7C2qO,GAAY,EAEd9kC,cAA6C,QAA7BvzM,EAAKihS,EAAWt3R,eAA4B,IAAP3J,OAAgB,EAASA,EAAGuzM,cACjFm9B,aAA4C,QAA7BzwO,EAAKghS,EAAWt3R,eAA4B,IAAP1J,OAAgB,EAASA,EAAGywO,aACjF,IAYH,MAAOztP,EAAMk+S,GAAW38E,IAAe,EAAO,CAC5CliP,MAA6B,QAArB09B,EAAKub,EAAMt4B,YAAyB,IAAP+c,EAAgBA,EAAKub,EAAMgiN,QAChEt7N,aAA2C,QAA5BhC,EAAKsb,EAAM6lR,mBAAgC,IAAPnhS,EAAgBA,EAAKsb,EAAM8/P,iBAE1EgmB,GAAW5xR,IAAU9hC,GAAqB,IAAV8hC,EAShC6xR,EAAoB/pG,EAAAA,SAAc,KACtC,IAAIv3L,EAAIC,EACR,IAAIshS,EAA2BtE,EAI/B,MAHqB,kBAAVp4D,IACT08D,EAA2H,QAA/FthS,EAAoC,QAA9BD,EAAK6kO,EAAM28D,qBAAkC,IAAPxhS,EAAgBA,EAAK6kO,EAAMo4D,0BAAuC,IAAPh9R,EAAgBA,EAAKg9R,GAEnJhxD,GAAqB8wD,GAAc,CACxCE,mBAAoBsE,EACpB9mD,qBACAuiD,WAAY4D,EAAkBv0M,EAAM64K,eAAiB,EACrDH,aAAc14K,EAAM04K,aACpBvmO,OAAQ6tD,EAAMmmL,UACd0qB,cAAc,GACd,GACD,CAACD,EAAoBp4D,EAAOoH,EAAmB5/I,IAC5Co1M,EAAclqG,EAAAA,SAAc,IAClB,IAAV9nL,EACKA,EAEF9hC,GAAW8hC,GAAS,IAC1B,CAAC9hC,EAAS8hC,IACPiyR,EAAkCnqG,EAAAA,cAAoBoqG,GAAiB,CAC3Eh0S,OAAO,GACiB,oBAAhB8zS,EAA6BA,IAAgBA,GACjDzkF,EAAYwvC,EAAa,UAAWG,GACpCoT,EAAgBvT,IAChBo1C,EAAoBrmR,EAAM,uBAChC,IAAIsmR,EAAW5+S,EAET,SAAUs4B,GAAY,YAAaA,IAAU8lR,IACjDQ,GAAW,GAGb,MAAMl2T,EAAqB4rN,EAAAA,eAAqB1vK,KAAci0D,GAAWj0D,GAAYA,EAAwB0vK,EAAAA,cAAoB,OAAQ,KAAM1vK,GACzIk0P,GAAapwS,EAAM4vC,MACnBumR,GAAY/lB,GAAW9wS,WAA6C,kBAAzB8wS,GAAW9wS,UAAkG8wS,GAAW9wS,UAApFisN,KAAW6kF,GAAW9wS,UAAWy1T,GAAiB,GAAG1jF,WAEnI07D,GAAY7nB,GAAQ8nB,IAAalX,GAASzkD,GAAY4kF,GAEvD59B,GAAY1/P,GAAW04M,EAAWr4M,GAClC67R,GAAoBx8B,GAAUu8B,WAC9BwB,GAAiB7qG,KAAW0jF,EAAkB,CAClD,CAAC,GAAG59D,SAAgC,QAAd77G,GACrB6iK,GAAU/4R,UAAW0wQ,EAAekV,GAAQ8nB,GAAW54D,EAAkBghF,EAAkBj5T,KAA4B,OAAtB4zS,QAAoD,IAAtBA,OAA+B,EAASA,EAAkB5zS,MACtLk6T,GAAiB9qG,KAAW6pG,EAAkBxxT,KAA4B,OAAtBmsS,QAAoD,IAAtBA,OAA+B,EAASA,EAAkBnsS,OAE3IN,GAAQgzT,IAAiB1H,GAAU,UAAW/8E,EAAUvuO,QACzDkT,GAAuBo1M,EAAAA,cAAoB2qG,GAAWx4T,OAAOoD,OAAO,CAAC,EAAG0wO,EAAW,CACvFvuO,OAAQA,GACRwsS,UAAWmlB,EACX9wD,UAAWA,EACXzE,gBAAiBA,EACjBE,gBAAiBA,EACjBvuB,UAAWA,EACX9lB,WAAY,CACVpvN,KAAMi6T,GACNxyT,KAAMyyT,IAERxiS,OAAQ,CACN13B,KAAM4B,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG0zT,IAAoBQ,EAAcl5T,MAAOg5T,GAAe/lB,GAA0B,OAAXv7Q,QAA8B,IAAXA,OAAoB,EAASA,EAAO13B,MAC9MyH,KAAM7F,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGk0T,EAAczxT,MAAOgrS,GAA+B,OAAX/6Q,QAA8B,IAAXA,OAAoB,EAASA,EAAOjwB,MAAOy0R,GAAU+W,eAErLO,oBAAqBv1C,GAAqBu1C,GAAuBulB,EACjE5lR,IAAKgmR,EACLh1D,kBAAmBq1D,EACnB3zT,QAAS+zT,EACTnkE,QAASskE,EACT5gF,gBA3EmBkhF,IACnB,IAAIniS,EAAIC,EACRkhS,GAAQE,GAAkBc,GACrBd,IAC2B,QAA7BrhS,EAAKub,EAAM0hO,oBAAiC,IAAPj9O,GAAyBA,EAAGv8B,KAAK83C,EAAO4mR,GAC7C,QAAhCliS,EAAKsb,EAAM0lM,uBAAoC,IAAPhhN,GAAyBA,EAAGx8B,KAAK83C,EAAO4mR,GACnF,EAsEAnnB,mBAAwC,OAApB2lB,QAAgD,IAApBA,EAA6BA,EAAkB3lB,EAC/FO,aAA2BhkF,EAAAA,cAAoB,OAAQ,CACrDtsN,UAAW,GAAG+xO,oBAEhB8kB,OAAQ,CACNL,WAAYvF,GAAkB6jC,EAAe,gBAAiBxkP,EAAM4gN,gBACpE4B,eAAgB,KAElBq9C,uBAAwBA,IACtBymB,EAAWtnN,GAAa5uG,EAAO,CACjCV,UAAW62T,KACRn2T,GACL,OAAO+sS,GAAwBnhF,EAAAA,cAAoBojG,GAAchgN,SAAU,CACzEr4G,MAAO2/T,IACN9/S,IAAS,IAMdw4R,GAAQynB,uCAAyCC,GACjD,YClHA,GAzEiB9mR,IACf,IAAIvb,EACJ,MAAM,UACJ/0B,EAAS,SACT48C,EAAQ,KACR8tJ,EAAI,MACJlmK,EAAK,OACL6yR,EAAM,MACNpkN,GACE3iE,GACE,UACJyhM,EAAS,WACTo9D,EAAU,UACVj5K,EAAS,4BACTohM,EACA7iD,gBAAiB8iD,GACfjrG,EAAAA,WAAiBwuB,KAmBf,eACJ6zD,GACEriF,EAAAA,WAAiBkgF,IACrB,IAAIgrB,EAAehzR,EACE,qBAAVA,EACTgzR,EAAeroB,EAAavyP,EAAW,IACpB,IAAVpY,IACTgzR,EAAe,IAEjB,MAAMC,EAAe,CACnBjzR,MAAOgzR,GAEJ7oB,GAAmB4oB,IACtBE,EAAajzR,MAAQ,KAGrBizR,EAAaz/S,MAAO,GAEtB,MAAM0/S,EAAiBz3N,GAAQrjD,GAAUhjD,OACzC,IAAI+9T,EAA0BrrG,EAAAA,cAAoBymB,GAAMt0O,OAAOoD,OAAO,CAAC,EAAGm/F,GAAK1wD,EAAO,CAAC,QAAS,OAAQ,WAAY,CAClHtwC,UAAWisN,KAAW,CACpB,CAAC,GAAG8lB,iBAA0BslF,EAC9B,CAAC,GAAGtlF,qBAA+E,KAAhDrnC,EAAOgtH,EAAiB,EAAIA,IAC9D13T,GACHwkC,MAAwB,kBAAVA,EAAqBA,OAAQ9+B,IACzC4pG,GAAao7F,EAAM,CACrB1qM,UAAWisN,KAAwBK,EAAAA,eAAqB5hB,GAA8B,QAArB31K,EAAK21K,EAAKp6J,aAA0B,IAAPvb,OAAgB,EAASA,EAAG/0B,UAAY,GAAI,GAAG+xO,iBA5CpH0iC,KACzB,MAAMljK,EAAqB,OAAb30D,QAAkC,IAAbA,OAAsB,EAASA,EAAS,GACrEg7Q,EAAwBtrG,EAAAA,cAAoB,OAAQ,CACxDtsN,UAAWisN,KAAW,GAAG8lB,kBAA2B,CAClD,CAAC,GAAGA,gCAAyC9+H,GAAmB,IAAVA,KAEvDr2D,GAGH,QAAK8tJ,GAAqB4hB,EAAAA,eAAqB1vK,IAA+B,SAAlBA,EAASn9C,OAC/Dm9C,GAAY63N,GAAmB06B,GAA+B,kBAAV59L,EAClC+6G,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAW,GAAG+xO,6BACbxgI,EAAMv2F,OAAO,IAGb48S,CAAQ,EA6BbC,CAAmBN,IASvB,OARKD,IACHK,EAA0BrrG,EAAAA,cAAoBojF,GAASjxS,OAAOoD,OAAO,CAAC,EAAG41T,EAAc,CACrF5yD,UAAyB,QAAd3uI,EAAsB,OAAS,QAC1C+1F,WAAY,CACVpvN,KAAM,GAAGk1O,gCAET4lF,IAECA,CAAU,EChFnB,IAAIvzB,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAIA,MAAM2rS,GAA+BxrG,EAAAA,cAAoB,MAE5CyrG,GAAgCzrG,EAAAA,YAAiB,CAACh8K,EAAON,KACpE,MAAM,SACF4M,GACEtM,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,aACvB43O,EAAW57D,EAAAA,WAAiBwrG,IAC5Bl5P,EAAU0tJ,EAAAA,SAAc,IAAM7tN,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGqmR,GAAW31C,IAAY,CAAC21C,EAAU31C,EAAUR,UAEhHQ,EAAU91O,KAAM81O,EAAUyiC,WAAYziC,EAAUm+B,gBAG1CxgC,EjQ4CCzG,GAD2CppO,EiQ3CpBu8C,IjQ4CCysL,GAAWhpO,GADhB,IAAwBA,EiQ1ClD,MAAM+vO,EAAYlH,GAAcl5L,EAAKkgM,EAASxG,GAAW9sL,GAAY,MACrE,OAAoB0vK,EAAAA,cAAoBwrG,GAAgBpoN,SAAU,CAChEr4G,MAAOunE,GACO0tJ,EAAAA,cAAoBoqG,GAAiB,CACnDh0S,OAAO,GACNwtN,EAAsB5jB,EAAAA,aAAmB1vK,EAAU,CACpD5M,IAAKogM,IACFxzL,GAAU,IAGjB,MCpBA,GAjB0BwkE,IAAS,CACjC,CAACA,EAAMu0K,cAAe,CAEpB,CAAC,GAAGv0K,EAAM00K,iCAAkC,CAC1C/xR,SAAU,SACV,WAAY,CACVilD,WAAY,UAAUo4D,EAAMkiL,qBAAqBliL,EAAMq4K,qCAC7Cr4K,EAAMkiL,qBAAqBliL,EAAMq4K,+BAG/C,CAAC,GAAGr4K,EAAM00K,0BAA2B,CACnC/xR,SAAU,SACVilD,WAAY,UAAUo4D,EAAMkiL,qBAAqBliL,EAAMq4K,qCAC3Cr4K,EAAMkiL,qBAAqBliL,EAAMq4K,iCCXtCu+B,GAAY,IAAI7E,GAAU,eAAgB,CACrD,KAAM,CACJn7O,UAAW,cACXogD,gBAAiB,QACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,YACXogD,gBAAiB,QACjBh0H,QAAS,KAGA6zT,GAAa,IAAI9E,GAAU,gBAAiB,CACvD,KAAM,CACJn7O,UAAW,YACXogD,gBAAiB,QACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,cACXogD,gBAAiB,QACjBh0H,QAAS,KAGA8zT,GAAc,IAAI/E,GAAU,iBAAkB,CACzD,KAAM,CACJn7O,UAAW,cACXogD,gBAAiB,YACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,YACXogD,gBAAiB,YACjBh0H,QAAS,KAGA+zT,GAAe,IAAIhF,GAAU,kBAAmB,CAC3D,KAAM,CACJn7O,UAAW,YACXogD,gBAAiB,YACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,cACXogD,gBAAiB,YACjBh0H,QAAS,KAGAg0T,GAAc,IAAIjF,GAAU,iBAAkB,CACzD,KAAM,CACJn7O,UAAW,cACXogD,gBAAiB,QACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,YACXogD,gBAAiB,QACjBh0H,QAAS,KAGAi0T,GAAe,IAAIlF,GAAU,kBAAmB,CAC3D,KAAM,CACJn7O,UAAW,YACXogD,gBAAiB,QACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,cACXogD,gBAAiB,QACjBh0H,QAAS,KAGAk0T,GAAe,IAAInF,GAAU,kBAAmB,CAC3D,KAAM,CACJn7O,UAAW,cACXogD,gBAAiB,UACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,YACXogD,gBAAiB,UACjBh0H,QAAS,KAGAm0T,GAAgB,IAAIpF,GAAU,mBAAoB,CAC7D,KAAM,CACJn7O,UAAW,YACXogD,gBAAiB,UACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,cACXogD,gBAAiB,UACjBh0H,QAAS,KAGPo0T,GAAc,CAClB,WAAY,CACV1F,YAAakF,GACbjF,aAAckF,IAEhB,aAAc,CACZnF,YAAaoF,GACbnF,aAAcoF,IAEhB,aAAc,CACZrF,YAAasF,GACbrF,aAAcsF,IAEhB,cAAe,CACbvF,YAAawF,GACbvF,aAAcwF,KAGLE,GAAkBA,CAACr3M,EAAOo1I,KACrC,MAAM,OACJs/B,GACE10K,EACEq2I,EAAY,GAAGq+B,KAAUt/B,KACzB,YACJs8D,EAAW,aACXC,GACEyF,GAAYhiE,GAChB,MAAO,CAACq8D,GAAWp7D,EAAWq7D,EAAaC,EAAc3xM,EAAMkiL,mBAAoB,CACjF,CAAC,WACG7rC,mBACAA,kBACA,CACFz/K,UAAW,WACXogD,gBAAiB,QACjBh0H,QAAS,EACT6vT,wBAAyB7yM,EAAMy4K,mBAC/B,YAAa,CACX7hN,UAAW,aAGf,CAAC,GAAGy/K,WAAoB,CACtBw8D,wBAAyB7yM,EAAMw4K,oBAEjC,EChGJ,GA5C2Bx4K,IACzB,MAAM,aACJu0K,EAAY,mBACZgC,EAAkB,qBAClB+gC,EAAoB,WACpBzzB,EAAU,UACVtuQ,EAAS,SACTwiQ,EAAQ,kBACRw/B,GACEv3M,EACJ,MAAO,CACL,CAAC,GAAGu0K,gBAA4B,CAC9B5/P,WAAY2iS,EACZnrL,OAAQ,EACRqrL,aAAc,GAAGn9T,GAAKk7B,MAAcwiQ,KAAY8L,IAChDtrK,UAAW,OACX,WAAY,CACV16H,QAAS,QACT0nF,MAAO,OACPvsF,OAAQ,EACR8c,QAAS,UAGX,CAAC,GAAGy+Q,WAAsBA,aAAyB,CACjD7xR,SAAU,WACV7E,QAAS,eACTm8B,cAAe,SACf4vQ,cAAe2tB,GAEjB,CAAC,KAAKhjC,4BACAA,6BACAA,aAAwBA,yBAAqC,CACjEzxR,gBAAiB,eAEnB,CAAC,GAAGyxR,WAAsBA,mBAA+B,CACvD3sO,WAAY,CAAC,gBAAgB2uO,IAAsB,cAAcA,KAAsBj6R,KAAK,MAG9F,CAAC,GAAGi4R,mBAA+B,CACjC12R,QAAS,SAGd,ECfH,GA3BoBykJ,IAClB,IAAI,aACFiyI,EAAY,gBACZkjC,EAAe,KACfp9C,GACE/3H,EACJ,MAAO,CACL,CAAC,GAAGiyI,SAAqB,CACvBz/J,UAAW,OAEb,CAAC,GAAGy/J,iBAA6B,CAC/Bv9J,gBAAiB,UAGnB,CAAC,GAAGu9J,QAAmBA,oBACrBA,iBAA4BA,cAA0B,CACtD,CAAC,GAAGA,mBAA+B,CACjC,YAAa,CACX39M,UAAW,6BAA6Bv8E,GAAKggR,EAAKo9C,GAAiB/nG,KAAK,GAAGp/C,aAE7E,WAAY,CACV15F,UAAW,4BAA4Bv8E,GAAKo9T,SAInD,ECxBGC,GAAqB13M,GAAS3iH,OAAOoD,OAAO,CAAC,EAAGo2R,GAAgB72K,IAqNtE,GApNsB23M,CAAC33M,EAAO43M,KAC5B,MAAM,aACJrjC,EAAY,UACZsjC,EAAS,kBACTC,EAAiB,yBACjBC,EAAwB,gBACxBC,EAAe,OACfC,EAAM,cACNC,EAAa,eACbC,EAAc,gBACdC,EAAe,eACfC,EAAc,qBACdC,EAAoB,mBACpB/hC,EAAkB,gBAClB8B,EAAe,cACfD,EAAa,kBACbm/B,EAAiB,kBACjBr1B,EAAiB,eACjBq2B,EAAc,SACdxgC,EAAQ,WACR8L,EAAU,kBAEV20B,EAAiB,gBAEjBC,EAAe,qBACfC,EAAoB,wBACpBC,EAAuB,mBACvBC,EAAkB,qBAClBC,EAAoB,QAEpBC,EAAO,YACPC,EAAW,aACXC,EAAY,cACZC,EAAa,4BAEbC,EAA2B,yBAC3BC,EAAwB,2BACxBC,EAA0B,sBAC1BC,GACEr5M,EACJ,MAAO,CACL,CAAC,GAAGu0K,KAAgBqjC,MAAgBrjC,KAAgBqjC,OAAiBrjC,KAAiB,CACpFj8P,MAAOu/R,EACPhlM,WAAYolM,EACZ,CAAC,IAAI1jC,wBAAoCl3R,OAAOoD,OAAO,CAAC,EAAGi3T,GAAmB13M,IAE9E,CAAC,GAAGu0K,UAAsB,CACxB,yBAA0B,CACxBj8P,MAAO0/R,IAGX,CAAC,GAAGzjC,wBAAmCA,mBAA+B,CACpEj8P,MAAOy/R,GAET,CAAC,GAAGxjC,WAAsBA,mBAA+B,CACvDj8P,MAAOu/R,EACP,CAAC,SAAStjC,kCAA8Cl3R,OAAOoD,OAAO,CAAC,EAAGi3T,GAAmB13M,KAG/F,CAAC,GAAGu0K,oBAA+BA,sBAAkC,CACnEj8P,MAAO,GAAGkgS,gBAGZ,CAAC,GAAGjkC,cAAyBA,wBAAmCA,uBAAmC,CACjG,CAAC,cAAcA,yBAAqC,CAClDj8P,MAAOigS,IAGX,CAAC,SAAShkC,iBAA6B,CACrC,CAAC,GAAGA,cAAyBA,oBAAgC,CAC3D,UAAW,CACTzxR,gBAAiBi2T,GAEnB,WAAY,CACVj2T,gBAAiBk2T,IAGrB,CAAC,GAAGzkC,mBAA+B,CACjC,UAAW,CACTzxR,gBAAiBi2T,GAEnB,WAAY,CACVj2T,gBAAiBk2T,KAKvB,CAAC,GAAGzkC,iBAA6B,CAC/Bj8P,MAAOmgS,EACP,CAAC,IAAIlkC,gBAA4B,CAC/B,CAAC,SAASA,wBAAmCA,uBAAmC,CAC9Ej8P,MAAOogS,IAGX,CAAC,IAAInkC,iBAA6B,CAChC1hK,WAAY+lM,IAGhB,CAAC,GAAGrkC,YAAwB,CAC1B,aAAc,CACZj8P,MAAO,YAGX,CAAC,GAAGi8P,mBAA+B,CACjCj8P,MAAOw/R,EAEP,CAAC,IAAIvjC,iBAA6B,CAChCj8P,MAAOqgS,GAET,aAAc,CACZrgS,MAAO,YAGX,CAAC,KAAKi8P,mBAA+B,CACnCzxR,gBAAiBq1T,EAEjB,CAAC,IAAI5jC,iBAA6B,CAChCzxR,gBAAiB+1T,IAGrB,CAAC,IAAItkC,eAA0BA,KAAiB,CAC9CzxR,gBAAiBm2T,GAInB,CAAC,IAAI1kC,aAAwBA,KAAiB,CAC5CzxR,gBAAiBg2T,GAEnB,CAAC,IAAIvkC,qBAAgCA,KAAiB,CACpDzxR,gBAAiBg2T,GAInB,CAAC,IAAIvkC,gBAA4Bl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAmB,SAAhBm3T,EAAyB,CACxFJ,aAAc,GACZ,CAAC,GAAI,CACP,CAAC,KAAKjjC,aAAwBA,aAAyB,CACrD57R,IAAK2/T,EACL3iM,UAAW3V,EAAMq6J,KAAKi+C,GAAsB5oG,KAAK,GAAGp/C,QACpDz6C,aAAc,EACd6iK,aAAc0gC,EACd,WAAY,CACV12T,SAAU,WACVgtT,YAAa6H,EACb95T,OAAQ,EACR+5T,aAAc,GAAGn9T,GAAK+9T,uBACtBxwQ,WAAY,gBAAgB2uO,KAAsB8B,IAClDviR,QAAS,MAEX,4BAA6B,CAC3B+8G,WAAYwmM,EACZ,WAAY,CACV7/R,kBAAmB4+R,EACnBnkM,kBAAmBilM,IAGvB,aAAc,CACZ5gS,MAAO4gS,EACPp2T,gBAAiBq2T,EACjB,UAAW,CACTr2T,gBAAiBq2T,GAEnB,WAAY,CACV3/R,kBAAmB4+R,EACnBnkM,kBAAmBilM,OAO3B,CAAC,IAAI3kC,UAAsB,CACzB,CAAC,IAAIA,cAAyBA,cAA0B,CACtD+kC,gBAAiB,GAAGj/T,GAAKi+T,MAAyBvgC,KAAY8L,MAIlE,CAAC,IAAItP,YAAwB,CAE3B,CAAC,GAAGA,QAAmBA,YAAwB,CAC7C1hK,WAAYqlM,GAEd,CAAC,GAAG3jC,UAAsB,CACxB7xR,SAAU,WACV,WAAY,CACVA,SAAU,WACV62T,WAAY,EACZ5uB,eAAgB,EAChB2uB,gBAAiB,GAAGj/T,GAAKg+T,YAAyBP,IAClDlhP,UAAW,iBACX5zE,QAAS,EACT4kD,WAAY,CAAC,aAAas6O,KAAqB9J,IAAiB,WAAW8J,KAAqB9J,KAAiB97R,KAAK,KACtHwZ,QAAS,MAGX,CAAC,IAAIy+Q,iBAA6B,CAChC,WAAY,CACVilC,qBAAsBb,KAI5B,CAAC,GAAGpkC,eAA0BA,mBAA+B,CAC3D,WAAY,CACV39M,UAAW,YACX5zE,QAAS,EACT4kD,WAAY,CAAC,aAAas6O,KAAqB7J,IAAmB,WAAW6J,KAAqB7J,KAAmB/7R,KAAK,SAKnI,ECnNGm9T,GAAyBz5M,IAC7B,MAAM,aACJu0K,EAAY,WACZmlC,EAAU,iBACVC,EAAgB,QAChB/gS,EAAO,cACPghS,EAAa,SACbxzB,EAAQ,gBACRyzB,EAAe,UACfvlF,EAAS,kBACTijF,GACEv3M,EACE85M,EAAmB95M,EAAMq6J,KAAKu/C,GAAe/sS,IAAI+L,GAAS/L,IAAIu5Q,GAAU91H,QAC9E,MAAO,CACL,CAAC,GAAGikH,UAAsB,CACxB7xR,SAAU,WACVC,SAAU,UAEZ,CAAC,GAAG4xR,WAAsBA,mBAA+B,CACvDv7R,OAAQ0gU,EACR/kS,WAAYt6B,GAAKq/T,GACjB9vB,cAAe2tB,EACf50T,SAAU,SACVozR,aAAc,WACdgkC,aAAcJ,EACdK,YAAaH,EACbvgU,MAAOg7O,GAET,CAAC,KAAKigD,0BACMA,eAA0BA,mBAA+B,CACnEv7R,OAAQ0gU,EACR/kS,WAAYt6B,GAAKq/T,IAEnB,CAAC,GAAGnlC,qBAAgCA,iCAC1BA,mBAA+B,CACvC0lC,iBAAkBH,GAErB,EAkJH,GAhJyB95M,IACvB,MAAM,aACJu0K,EAAY,QACZE,EAAO,WACPilC,EAAU,oBACVx1B,EAAmB,cACnBg2B,EAAa,gBACbhgC,EAAe,cACf9B,EAAa,UACbwN,EAAS,iBACT+zB,EAAgB,WAChBh/B,EAAU,mBACVsH,EAAkB,mBAClB1L,EAAkB,UAClBiP,EAAS,mBACTkB,EAAkB,eAClBgF,EAAc,kBACdyuB,GACEn6M,EACEo6M,EAAkB,CACtBphU,OAAQ0gU,EACR/kS,WAAYt6B,GAAKq/T,GACjBlkM,kBAAmB,SACnBC,cAAe,QAEjB,MAAO,CAAC,CACN,CAAC8+J,GAAe,CACd,uBAAwBl3R,OAAOoD,OAAO,CACpC,CAAC,IAAI8zR,UAAsB,CACzBh8J,UAAW,SAEZkhM,GAAuBz5M,KAE5B,CAAC,GAAGu0K,mBAA+B,CACjC,CAAC,GAAGA,cAA0Bl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg5T,GAAuBz5M,IAAS,CAC5FuY,UAAWmuK,MAKjB,CACE,CAAC,GAAGnS,mBAA8BA,aAAwBA,SAAqB,CAC7EpxP,SAAU+2R,EACVG,UAAW,gBAAgBhgU,GAAK2lH,EAAMq6J,KAAK6f,GAAiBxqE,IAAI,KAAKp/C,YACrE13I,QAAS,IACTj2B,SAAU,SACV22T,gBAAiB,EAGjB,4BAA6B,CAC3BpgM,UAAW,SACXC,UAAW,UAKjB,CACE,CAAC,GAAGo7J,YAAwB,CAC1Bj7R,MAAO,OAEP,CAAC,IAAIi7R,UAAsB,CACzB,CAAC,GAAGA,WAAsBA,mBAA+B,CACvD12R,QAAS,OACTs5R,WAAY,SACZvvO,WAAY,CAAC,gBAAgB2uO,IAAsB,cAAcA,IAAsB,WAAW0L,KAAsB7J,KAAiB97R,KAAK,KAC9I,CAAC,KAAKi4R,mBAA+B,CACnCx3O,KAAM,OACN5Z,SAAU,EACVxgC,SAAU,SACVozR,aAAc,YAEhB,MAAO,CACLh5O,KAAM,UAKZ,CAAC,GAAGw3O,QAAmBA,YAAwB,CAC7C37P,QAAS,EACTuzG,OAAQ,EACRusJ,aAAc,EACdngK,UAAW,OACX,CAAC,OAAOg8J,eAA0BA,mBAA+B6lC,EACjE,CAAC,KAAK7lC,sBAAkC,CACtC+lC,mBAAoB10B,IAIxB,CAAC,GAAGrR,UAAsB6lC,IAI9B,CACE,CAAC,GAAG7lC,sBAAkC,CACpCj7R,MAAOoyS,EACP,CAAC,IAAInX,UAAsB,CACzB,CAAC,GAAGA,WAAsBA,aAAwBA,mBAA+B,CAC/E,CAAC,KAAKA,6BAAyC,CAC7C9/P,SAAUkmQ,EACV5gQ,UAAW,YAIjB,CAAC,KAAKw6P,wBACEA,kBAA6BA,uBAAkCA,wBAC/DA,kBAA6BA,uBAAkCA,eAA0BA,iCACzFA,eAA0BA,mBAA+B,CAC/DsW,iBAAkB,EAClBjB,cAAe,cAAcvvS,GAAK2lH,EAAMq6J,KAAK8/C,GAAmBnsG,IAAI,GAAG19C,cAAcj2K,GAAKs/T,MAC1F5jC,aAAc,OACd,CAAC,iBACKxB,iCACAA,qCACA,CACJvxR,QAAS,GAEX,CAAC,GAAGuxR,gBAA2BE,KAAY,CACzCx7R,OAAQ,EACRw7B,SAAU0lS,EACVxlS,WAAYt6B,GAAKq/T,GACjB,SAAU,CACR77T,QAAS,eACTmF,QAAS,KAIf,CAAC,GAAGuxR,gBAA2BE,KAAY,CACzC52R,QAAS,gBAEX,YAAa,CACX2zO,cAAe,OACf,CAAC,GAAG+iD,gBAA2BE,KAAY,CACzC52R,QAAS,QAEX,aAAc,CACZy6B,MAAO4rQ,IAGX,CAAC,GAAG3P,sBAAkCl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGq1R,IAAe,CACnF8T,cAAepE,MAGnB,EC9KE+0B,GAAmBv6M,IACvB,MAAM,aACJu0K,EAAY,mBACZgC,EAAkB,kBAClB2L,EAAiB,gBACjB7J,EAAe,cACfD,EAAa,QACb3D,EAAO,SACP+lC,EAAQ,oBACRC,GACEz6M,EACJ,MAAO,CAEL,CAAC,GAAGu0K,WAAsBA,mBAA+B,CACvD7xR,SAAU,WACV7E,QAAS,QACT5E,OAAQ,EACRy/I,WAAY,SACZrnH,OAAQ,UACRu2B,WAAY,CAAC,gBAAgB2uO,IAAsB,cAAcA,IAAsB,gBAAgBA,aAA8B8B,KAAmB/7R,KAAK,KAC7J,CAAC,GAAGi4R,gBAA2BE,KAAY,CACzCtxP,SAAUq3R,EACV/lS,SAAU+lS,EACV5yQ,WAAY,CAAC,aAAas6O,KAAqB9J,IAAiB,UAAU7B,KAAsB8B,IAAmB,SAAS9B,KAAsBj6R,KAAK,KACvJ,SAAU,CACRo+T,kBAAmBD,EACnBz3T,QAAS,EACT4kD,WAAY,CAAC,WAAW2uO,KAAsB8B,IAAmB,UAAU9B,IAAsB,SAASA,KAAsBj6R,KAAK,OAGzI,CAAC,GAAGi4R,eAA2Bl3R,OAAOoD,OAAO,CAAC,E5GhB3B,CACvB5C,QAAS,cACTs5R,WAAY,SACZ7+P,MAAO,UACPlB,UAAW,SACXzC,WAAY,EACZoF,UAAW,SACXs8F,cAAe,OAEfr8F,cAAe,WACfo9P,cAAe,qBACf,yBAA0B,cAC1B,0BAA2B,YAC3B,MAAO,CACLziQ,WAAY,GAEd4pG,IAAK,CACH1gI,QAAS,kB4GAP,CAAC,IAAI02R,qBAAiC,CACpC,CAAC,KAAKE,QAAcF,eAA2B,CAC7ComC,gBAAiB,KAKvB,CAAC,GAAGpmC,oBAA+BA,sBAAkC,CACnE1hK,WAAY,kBACZxhG,OAAQ,cACR,WAAY,CACVwI,YAAa,0BAEftoB,EAAG,CACD+mB,MAAO,qBACPjH,OAAQ,cACRmgN,cAAe,QAEjB,CAAC,KAAK+iD,mBAA+B,CACnCj8P,MAAO,qBACPjH,OAAQ,gBAGb,EAEGupS,GAAuB56M,IAC3B,MAAM,aACJu0K,EAAY,mBACZgC,EAAkB,gBAClB8B,EAAe,aACfK,EAAY,cACZkhC,EAAa,gBACbnC,GACEz3M,EACJ,MAAO,CACL,CAAC,GAAGu0K,aAAyB,CAC3B,yBAA0B,CACxB7xR,SAAU,WACV/J,IAAK,MACLgyS,eAAgB3qL,EAAM/mH,OACtBK,MAAOsgU,EACPthS,MAAO,eACPs+C,UAAW,mBACXhvB,WAAY,aAAa2uO,KAAsB8B,cAA4B9B,KAE7E,UAAW,CAET,sBAAuB,CACrB7zR,SAAU,WACVpJ,MAAO0mH,EAAMq6J,KAAKu/C,GAAelqG,IAAI,IAAKp/C,QAC1Ct3K,OAAQgnH,EAAMq6J,KAAKu/C,GAAelqG,IAAI,KAAMp/C,QAC5CxtK,gBAAiB,eACjB41R,eACA9wO,WAAY,CAAC,cAAc2uO,KAAsB8B,IAAmB,aAAa9B,KAAsB8B,IAAmB,OAAO9B,KAAsB8B,IAAmB,SAAS9B,KAAsB8B,KAAmB/7R,KAAK,KACjOwZ,QAAS,MAEX,YAAa,CACX8gE,UAAW,4BAA4Bv8E,GAAK2lH,EAAMq6J,KAAKo9C,GAAiB/nG,KAAK,GAAGp/C,aAElF,WAAY,CACV15F,UAAW,6BAA6Bv8E,GAAKo9T,SAIpD,EAGGoD,GAAe76M,IACnB,MAAM,OACJ00K,EAAM,aACNH,EAAY,SACZ9/P,EAAQ,mBACR8hQ,EAAkB,kBAClB2L,EAAiB,gBACjB7J,EAAe,UACfmN,EAAS,QACT5sQ,EAAO,WACPirQ,EAAU,UACVtuQ,EAAS,YACTk+R,EAAW,eACX35B,EAAc,wBACdghC,EAAuB,cACvBlB,EAAa,gBACbnC,EAAe,SACf1/B,EAAQ,qBACRgjC,EAAoB,mBACpBC,GACEh7M,EACJ,MAAO,CAEP,CACE,GAAI,CACF,CAACu0K,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,E5GzF3B,CAEtB,YAAa,CACX5C,QAAS,QACTiY,QAAS,MAEX,WAAY,CAEVjY,QAAS,QACT0nF,MAAO,OACPzvE,QAAS,Q4G+EsD,CAE3D,WAAY,CACVjY,QAAS,WAIf,CAAC,GAAG02R,oBAAgC,CAClC12R,QAAS,SAEV,CACD,CAAC02R,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,I5GpGjH,CAEtB,YAAa,CACXniH,QAAS,QACTiY,QAAS,MAEX,WAAY,CAEVjY,QAAS,QACT0nF,MAAO,OACPzvE,QAAS,Q4G0FkJ,CACzJ+/G,aAAc,EACdykM,mBAAoB,EAEpB7lS,WACAE,WAAY,EACZwhQ,UAAW,OACXrpF,QAAS,OAETllJ,WAAY,SAAS2uO,kCACrB,SAAU,CACRt9R,OAAQ,EACR2/B,QAAS,EACTu9P,UAAW,QAGb,aAAc,CACZt4R,QAAS,OACT,CAAC,GAAG02R,UAAsB,CACxBx3O,KAAM,SAGV,CAAC,GAAGw3O,WAAsBA,cAAyBA,mBAA+B,CAChFmE,aAAc14K,EAAMi7M,kBAEtB,CAAC,GAAG1mC,sBAAkC,CACpC37P,QAAS,GAAGv+B,GAAKmrS,MAAcnrS,GAAKu+B,KACpCnE,SAAUumS,EACVrmS,WAAYomS,EACZnzQ,WAAY,OAAO2uO,KAErB,CAAC,gBAAgBhC,aAAyB,CACxC3sO,WAAY,CAAC,gBAAgB2uO,KAAsB8B,IAAmB,cAAc9B,KAAsB8B,KAAmB/7R,KAAK,MAEpI,CAAC,GAAGi4R,cAAyBA,oBAAgC,CAC3D3sO,WAAY,CAAC,gBAAgB2uO,KAAsB8B,IAAmB,cAAc9B,KAAsB8B,IAAmB,WAAW6J,KAAqB7J,KAAmB/7R,KAAK,MAEvL,CAAC,GAAGi4R,aAAwBA,SAAqB,CAC/CljQ,OAAQ,UACRu2B,WAAY,CAAC,cAAc2uO,KAAsB8B,IAAmB,WAAW9B,KAAsB8B,KAAmB/7R,KAAK,MAE/H,CAAC,GAAGi4R,mBAA+B,CACjC3sO,WAAY,SAAS2uO,IACrB,eAAgB,CACd14R,QAAS,cACTs5R,WAAY,SACZ79R,MAAO,QAGT,CAAC,KAAKo7R,qCAA2C,CAC/C72R,QAAS,SACTm8B,cAAe,SAEjB,CAAC,GAAGu6P,gBAA4B,CAC9BmmC,kBAAmB,OACnBJ,mBAAoBt6M,EAAMpnF,UAG9B,CAAC,GAAG27P,YAAwB,CAC1B,YAAa,CACX7xR,SAAU,WACV81H,MAAO,EACP11H,gBAAiB,cACjBgT,QAAS,OAMb,CAAC,GAAGy+Q,kBAA8B,CAChC5xR,SAAU,SACVgyB,WAAY,EACZkF,YAAagqQ,EACbq3B,YAAanjC,EACbp+P,YAAa,EACbJ,eAAgBhE,EAChBykS,YAAazkS,EACbqD,QAAS,EACT,WAAY,CACVsiS,YAAa,aAGfX,GAAiBv6M,IAAS,CAC5B,CAAC,GAAGu0K,gBAA4B,CAC9B,CAAC,GAAGA,qBAAiC,CACnCt7R,OAAQ,EACR2/B,QAAS,EACT,CAAC,GAAG27P,WAAsBA,mBAA+B,CACvDqV,cAAe,GAAGvvS,GAAK2lH,EAAMq6J,KAAK5lP,GAAUi7L,IAAI,GAAGp/C,YAAYj2K,GAAKu+B,QAK1E,YAAa,CACX,UAAW,CACTl2B,SAAU,WACVE,OAAQ6wT,EACR/6B,aAAcoB,EACdvhK,UAAW,OACXvB,gBAAiB,MACjB,CAAC,IAAIu9J,aAAyB,CAC5B1hK,WAAY,eAGd,YAAa,CACXnwH,SAAU,WACV81H,MAAO,EACP51H,QAAS,EACTtJ,MAAO,OACPN,OAAQ,OACRgK,QAAS,EACT8S,QAAS,MAEX,CAAC,KAAKy+Q,KAAiBl3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC/Di4R,aAAcoB,GACbygC,GAAiBv6M,IAAS46M,GAAqB56M,IAAS,CACzD,CAAC,GAAGu0K,WAAsBA,eAA0BA,mBAA+B,CACjFmE,aAAcoiC,GAEhB,CAAC,GAAGvmC,0BAAsC,CACxC3sO,WAAY,aAAa2uO,KAAsB8B,QAIrD,mFAGM,CACJrhK,gBAAiB,UAEnB,mFAGM,CACJA,gBAAiB,aAEnB,mFAGM,CACJA,gBAAiB,UAEnB,mFAGM,CACJA,gBAAiB,OAEnB,iFAGM,CACJijM,iBAAkBj6M,EAAMwlL,WAE1B,mFAGM,CACJ80B,mBAAoBt6M,EAAMwlL,WAE5B,+EAGM,CACJzsQ,cAAeinF,EAAMwlL,WAEvB,qFAGM,CACJ3sQ,WAAYmnF,EAAMwlL,cAGpBo1B,GAAqB56M,IAAS,CAChC,CAAC,sBAAsBu0K,sCACVA,mBAA+B,CAE1C,YAAa,CACX39M,UAAW,6BAA6Bv8E,GAAKo9T,OAE/C,WAAY,CACV7gP,UAAW,4BAA4Bv8E,GAAK2lH,EAAMq6J,KAAKo9C,GAAiB/nG,KAAK,GAAGp/C,cAGpF,CAAC,GAAGikH,iBAA4BA,sBAAiCA,qBAAgCA,mBAA+B,CAE9H39M,UAAW,cAAcv8E,GAAK2lH,EAAMq6J,KAAKu/C,GAAelqG,IAAI,IAAKA,KAAK,GAAGp/C,YACzE,WAAY,CACV15F,UAAW,6BAA6Bv8E,GAAK2lH,EAAMq6J,KAAKo9C,GAAiB/nG,KAAK,GAAGp/C,aAEnF,YAAa,CACX15F,UAAW,4BAA4Bv8E,GAAKo9T,WAMpD,CACE,CAAC,GAAG/iC,mBAAyB,CAC3B,CAACH,GAAe,CACd5/P,WAAY,aAGhB,EAESg1Q,GAAwB3pL,IACnC,IAAIrsF,EAAIC,EAAIiC,EACZ,MAAM,aACJ0hQ,EAAY,WACZG,EAAU,kBACVd,EAAiB,aACjB2I,EAAY,UACZrJ,EAAS,qBACT+N,EAAoB,iBACpBlH,EAAgB,eAChB2G,EAAc,iBACdF,EAAgB,UAChBjuQ,EAAS,cACT4sQ,EAAa,oBACb2C,EAAmB,iBACnBV,EAAgB,gBAChBlK,EAAe,WACfvlQ,EAAU,gBACVqoQ,EAAe,UACfmJ,EAAS,QACTvtQ,EAAO,SACPnE,EAAQ,gBACRulQ,EAAe,WACfW,EAAU,oBACVuJ,EAAmB,gBACnBtE,GACE5/K,EACEq4M,EAAiD,QAA/B1kS,EAAKqsF,EAAMq4M,sBAAmC,IAAP1kS,EAAgBA,EAAK,EAC9E2kS,EAA6D,QAArC1kS,EAAKosF,EAAMs4M,4BAAyC,IAAP1kS,EAAgBA,EAAK2B,EAC1FokS,EAAqD,QAAjC9jS,EAAKmqF,EAAM25M,wBAAqC,IAAP9jS,EAAgBA,EAAKmqF,EAAMmmL,UACxFg1B,EAAgB,IAAI7iD,GAAU4rB,GAAqB7qB,KAAK,KAAM6B,cACpE,MAAO,CACLg/C,cAAe,IACfzG,YAAazzM,EAAMg5K,gBAAkB,GACrCoiC,WAAYp7M,EAAM85K,eAClBmhC,iBAAkBj7M,EAAM85K,eACxBuhC,kBAAmBr7M,EAAM65K,eACzBihC,wBAAyB96M,EAAM65K,eAC/ByhC,cAAeplC,EACf2hC,UAAW3hC,EACXqlC,mBAAoBrlC,EACpBqiC,eAAgBriC,EAChBslC,6BAA8BjkC,EAC9BkkC,yBAA0BlkC,EAC1BmkC,gBAAiBz3B,EACjB+zB,gBAAiB/zB,EACjB03B,sBAAuBpkC,EACvBugC,kBAAmBvgC,EACnBwgC,yBAA0BxgC,EAC1BqkC,gCAAiCrkC,EACjC2hC,4BAA6B3hC,EAC7BskC,YAAa9+B,EACbk7B,OAAQl7B,EACR++B,iBAAkB13B,EAClB20B,YAAa30B,EACb23B,kBAAmBv4B,EACnBw1B,aAAcl0B,EACdk3B,eAAgBt4B,EAChBw0B,cAAex0B,EACfu4B,oBAAqBn3B,EACrBqzB,eAAgBrzB,EAChBo3B,8BAA+B,cAC/B/C,yBAA0B,cAC1BgD,oBAAqB,EACrB9D,iBACA+D,qBAAsBj6B,EACtBi2B,gBAAiBj2B,EACjBk6B,yBAA0B9mS,EAC1B+iS,uBAEAgE,sBAAuB1lC,EACvB4hC,kBAAmB5hC,EAEnB2lC,oBAAqB7kC,EACrB+gC,gBAAiB/gC,EACjB8kC,yBAA0B9kC,EAC1BghC,qBAAsBhhC,EACtB+kC,4BAA6B/kC,EAC7BihC,wBAAyBjhC,EACzBglC,wBAAyBn9B,EACzBq5B,mBAAoBr5B,EACpBo9B,0BAA2Bp9B,EAC3Bs5B,qBAAsBt5B,EACtBo6B,mBACAP,2BAA4B,EAC5BC,sBAAuB,cACvBK,WAAYx/B,EACZ6gC,qBAAsBpmS,EACtB+2Q,eAAkC,EAAlBxR,EAChB4+B,QAAS97B,EACT68B,gBAAiB1zB,EACjBoxB,kBAAmB3+R,EACnB0+R,qBAA2C,KAAlBp9B,EAAH,KACtBsgC,SAAU/lS,EACVgmS,oBAAqBzgC,EAAkBvlQ,EACvC0lS,kBAAmBx/B,EACnBqgC,mBAAoBvmS,EAEpBmoS,sBAAuB,IAAItkD,GAAU4rB,GAAqB7qB,KAAK,KAAM6B,cAErE2hD,cAAe1B,EACf2B,oBAAqBplC,EACrBqlC,WAAY,UACZC,YAAa,UACbC,kBAAmB,UACnBC,sBAAuBh5B,EACvBi5B,mBAAoB5lC,EACpB6lC,yBAA0B1lC,EAC1B2lC,gBAAiB,cACjBC,oBAAqBnC,EACrBoC,mBAAoBr5B,EACpBs5B,yBAA0B59B,EAC1B69B,4BAA6Bv5B,EAC7Bw5B,uBAAwBhmC,EAExBpjD,UAAW+jF,EAAiB,eAAeC,OAA4B,eAAkC,EAAnBqB,OACvF,ECxZH,GA/CgBzqR,IACd,IAAIvb,EACJ,MAAM,eACJ6rO,EAAc,KACdl2D,EAAI,MACJlmK,EACAtD,MAAO69R,GACLzuR,EACEsuB,EAAU0tJ,EAAAA,WAAiBwuB,KAC3B,UACJ/I,EAAS,gBACT0iC,EACAvzO,MAAO89R,GACLpgQ,EACE67J,EAAa8gB,KACnB,IAAIu3B,EACJ,GAAKpoE,EAME,CAGL,MAAMu0H,EAA2B3yG,EAAAA,eAAqB9nL,IAAyB,SAAfA,EAAM/kC,KACtEqzQ,EAAyBxmD,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMh9G,GAAao7F,EAAM,CACpF1qM,UAAWisN,KAAwBK,EAAAA,eAAqB5hB,GAA8B,QAArB31K,EAAK21K,EAAKp6J,aAA0B,IAAPvb,OAAgB,EAASA,EAAG/0B,UAAY,GAAI,GAAG+xO,iBAC3IktF,EAAcz6R,EAAqB8nL,EAAAA,cAAoB,OAAQ,CACjEtsN,UAAW,GAAG+xO,mBACbvtM,GACL,MAdEsuO,EAAY2B,IAAoBh6C,EAAW7gO,QAAU4qC,GAA0B,kBAAVA,EAAmC8nL,EAAAA,cAAoB,MAAO,CACjItsN,UAAW,GAAG+xO,6BACbvtM,EAAMxpB,OAAO,IAAqBsxM,EAAAA,cAAoB,OAAQ,CAC/DtsN,UAAW,GAAG+xO,mBACbvtM,GAWL,MAAMkqQ,EAAepiF,EAAAA,SAAc,IAAM7tN,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG+8D,GAAU,CACjFuwO,YAAY,KACV,CAACvwO,KAEE56D,GAAUsrT,GAAU,QAC3B,OAAoBhjG,EAAAA,cAAoBwuB,GAAYprI,SAAU,CAC5Dr4G,MAAOq3S,GACOpiF,EAAAA,cAAoB4yG,GAAWzgU,OAAOoD,OAAO,CAAC,EAAGm/F,GAAK1wD,EAAO,CAAC,SAAU,CACtF9L,MAAOsuO,EACPlS,eAAgB30C,KAAW8lB,EAAW6uB,EAAgB,GAAG7uB,KAAagtF,GAAeC,KACrFn+D,WAAYpiQ,OAAOoD,OAAO,CACxBmC,UACCssC,EAAMuwN,eACP,ECpDN,IAAIujC,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAmBA,SAASgzS,GAAYz0H,GACnB,OAAgB,OAATA,IAA0B,IAATA,CAC1B,CACA,MAAM00H,GAAkB,CACtBz0R,KAAMy9M,GACNwrB,QAASO,GACTL,QAASV,IAsHX,IApHkCpjK,EAAAA,EAAAA,aAAW,CAAC1/D,EAAON,KACnD,IAAIjb,EACJ,MAAMmzP,EAAW57D,EAAAA,WAAiBwrG,IAC5BuH,EAAcn3C,GAAY,CAAC,GAC3B,aACJ3G,EAAY,kBACZzmB,EAAiB,UACjB5kI,EAAS,KACTy0E,GACE2hB,EAAAA,WAAiBg1D,IACfwT,EAAgBvT,KAElBxvC,UAAW2vC,EAAkB,UAC7B1hR,EAAS,MACTjC,EAAK,MACLmjC,EAAQ,QAAO,WACfwwO,EAAU,qCACV4tD,EAAoC,gBACpC7qD,EAAe,eACfk6B,EAAc,cACdj+B,EAAa,KACbj0Q,EAAI,WACJu4Q,EAAU,QACVpoM,EAAO,kCACP6oM,GACEnlO,EAEAm2M,EAAczlJ,GADNojM,GAAO9zP,EAAO,CAAC,YAAa,YAAa,QAAS,QAAS,aAAc,uCAAwC,kBAAmB,iBAAkB,gBAAiB,OAAQ,aAAc,UAAW,sCAClL,CAAC,mBAOJ,QAAhCvb,EAAKsqS,EAAYvnB,iBAA8B,IAAP/iR,GAAyBA,EAAGv8B,KAAK6mU,EAAa,CACrF5iU,SAIF,MAAMwqP,EAAcjU,IAAS,WAC3B,IAAIj+M,EACQ,OAAZ63C,QAAgC,IAAZA,GAA8BA,EAAQ95D,WAAM,EAAQ5K,WACzC,QAA9B6sB,EAAKsqS,EAAYzyP,eAA4B,IAAP73C,GAAyBA,EAAGv8B,KAAK6mU,EAC1E,IAEMxoD,EAAawoD,EAAY5iU,MAAQA,EAEjC8iU,EAAkC,OAAfvqD,QAAsC,IAAfA,EAAwBA,EAAaqqD,EAAYrqD,WAG3F8B,EAA4C,OAApBrC,QAAgD,IAApBA,EAA6BA,EAAkBk6B,EACnGz+B,EAAiB,CACrB94O,WAAY,CACVo/N,WAAY,GAAGs+B,cAEjBhyC,OAAQ08E,GAAmB1qC,GAC3Bx9R,MAAO,CACLk/P,WAAY,GAAGs+B,eAGb/iD,EAAYwvC,EAAa,OAAQG,GAAsB29C,EAAYttF,WACnE4iD,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GFiX7B,SAA0B37D,GACxB,IAAI4iD,EAAUzsR,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK6pO,EAoFlF,OAlFiBokD,GAAc,QAAQ/0K,IACrC,MAAM,gBACJg9K,EAAe,gBACf9C,EAAe,SACfzlQ,EAAQ,cACRooS,EAAa,oBACbC,EAAmB,WACnBC,EAAU,kBACVE,EAAiB,sBACjBC,EAAqB,mBACrBC,EAAkB,yBAClBC,EAAwB,gBACxBC,EAAe,oBACfC,EAAmB,mBACnBC,EAAkB,sBAClBX,EAAqB,yBACrBY,EAAwB,4BACxBC,EAA2B,uBAC3BC,EAAsB,QACtB5E,EAAO,YACPkE,GACEh9M,EACE45M,EAAgB55M,EAAMq6J,KAAK5lP,GAAUu5L,IAAI,GAAG0B,IAAI,GAAGp/C,QAEnDguJ,EAAYtsC,GAAWhyK,EAAO,CAClC45M,gBACA2E,qBAAsBv+M,EAAMq6J,KAAK6f,GAAiBxqE,IAAI,MAAMp/C,QAC5DmnJ,gBAAiBz3M,EAAMq6J,KAAKu/C,GAAelqG,IAAI,KAAMp/C,QACrD2oJ,cAAej8B,EACf3iB,KAAMr6J,EAAMq6J,KACZy+C,YAEI0F,EAAgBxsC,GAAWssC,EAAW,CAC1CzG,UAAWgF,EACXtE,eAAgBgF,EAChBvF,gBAAiBsF,EACjBxF,kBAAmBoF,EACnBnF,yBAA0BmF,EAC1BjF,OAAQ8E,EACRjE,QAASkE,EACT9E,cAAe+E,EACfjE,aAAc,cACdb,eAAgBgF,EAChB/E,gBAAiB,EACjBE,qBAAsB,EACtBS,YAAasE,EAEb7E,kBAAmBoE,EAEnBnE,gBAAiBqE,EACjBpE,qBAAsB8E,EACtB7E,wBAAyB8E,EACzB7E,mBAAoB8E,EACpB7E,qBAAsBuE,EACtBnE,cAAegE,EAEf/D,4BAA6BgE,EAC7B/D,yBAA0BgE,IAE5B,MAAO,CAEPtC,GAAayD,GAEbG,GAAmBH,GAGnBI,GAAiBJ,GAGjB3G,GAAc2G,EAAW,SAAU3G,GAAc6G,EAAe,QAEhEG,GAAYL,GAEZM,GAAkBN,GAAYjH,GAAgBiH,EAAW,YAAajH,GAAgBiH,EAAW,cAAe1L,GAAe0L,EAAW,YAAY,GACrJ30B,GAAuB,CACxB1Y,iBAAkB,CAAC,CAAC,kBAAmB,mBAAoB,CAAC,aAAc,oBAAqB,CAAC,oBAAqB,2BAA4B,CAAC,gBAAiB,aAAc,CAAC,qBAAsB,kBAAmB,CAAC,+BAAgC,4BAA6B,CAAC,wBAAyB,qBAAsB,CAAC,kCAAmC,+BAAgC,CAAC,wBAAyB,qBAAsB,CAAC,sBAAuB,mBAAoB,CAAC,2BAA4B,wBAAyB,CAAC,8BAA+B,2BAA4B,CAAC,0BAA2B,sBAAuB,CAAC,4BAA6B,wBAAyB,CAAC,cAAe,UAAW,CAAC,mBAAoB,eAAgB,CAAC,iBAAkB,iBAAkB,CAAC,oBAAqB,gBAAiB,CAAC,gCAAiC,4BAA6B,CAAC,sBAAuB,kBAAmB,CAAC,uBAAwB,mBAAoB,CAAC,2BAA4B,wBAAyB,CAAC,sBAAuB,mBAEtjCgD,cA9EgBntR,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,KAAmBA,UAAU,GA+E/Em+Q,SAAU,CACR81C,sBAAsB,IAGnB3lC,CAASzkD,EAAW4iD,EAC5B,CEvcyC6B,CAASzkD,EAAW4iD,GAAUzM,GAChE+3C,EAAgBh0G,KAAW,GAAG8lB,KAAa7wM,IAAkB,OAATypK,QAA0B,IAATA,OAAkB,EAASA,EAAK3qM,UAAWA,GAEhHoyQ,EAAmB9lD,EAAAA,SAAc,KACrC,IAAIv3L,EAAIC,EACR,GAA0B,oBAAf08O,GAA6BytD,GAAYztD,GAClD,OAAOA,GAAc,KAEvB,GAAsC,oBAA3B2tD,EAAY3tD,YAA6BytD,GAAYE,EAAY3tD,YAC1E,OAAO2tD,EAAY3tD,YAAc,KAEnC,GAA6E,oBAAxD,OAAT/mE,QAA0B,IAATA,OAAkB,EAASA,EAAK+mE,aAA8BytD,GAAqB,OAATx0H,QAA0B,IAATA,OAAkB,EAASA,EAAK+mE,YACtJ,OAAiB,OAAT/mE,QAA0B,IAATA,OAAkB,EAASA,EAAK+mE,aAAe,KAE1E,MAAMwuD,EAAqK,QAAvJnrS,EAAoB,OAAf28O,QAAsC,IAAfA,EAAwBA,EAA6B,OAAhB2tD,QAAwC,IAAhBA,OAAyB,EAASA,EAAY3tD,kBAA+B,IAAP38O,EAAgBA,EAAc,OAAT41K,QAA0B,IAATA,OAAkB,EAASA,EAAK+mE,WACzP,OAAOpiK,GAAa4wN,EAAY,CAC9BlgU,UAAWisN,KAAW,GAAG8lB,wBAA8CzlB,EAAAA,eAAqB4zG,GAA0C,QAA3BlrS,EAAKkrS,EAAW5vR,aAA0B,IAAPtb,OAAgB,EAASA,EAAGh1B,eAAY0F,IACtL,GACD,CAACgsQ,EAA4B,OAAhB2tD,QAAwC,IAAhBA,OAAyB,EAASA,EAAY3tD,WAAqB,OAAT/mE,QAA0B,IAATA,OAAkB,EAASA,EAAK+mE,WAAY3/B,IAEzJ28D,EAAepiF,EAAAA,SAAc,KAAM,CACvCylB,YACA0iC,gBAAiBqC,IAAyB,EAC1C5gJ,YACAi5K,YAAY,EACZjuQ,QACAzkC,KAAMo6Q,EACNygD,4BAA6BgI,KAC3B,CAACvtF,EAAW+kC,EAAuB5gJ,EAAWopM,EAAsCp+R,IAExF,OAAOusQ,EAAwBnhF,EAAAA,cAAoBwrG,GAAgBpoN,SAAU,CAC3Er4G,MAAO,MACOi1N,EAAAA,cAAoBwuB,GAAYprI,SAAU,CACxDr4G,MAAOq3S,GACOpiF,EAAAA,cAAoB6zG,GAAQ1hU,OAAOoD,OAAO,CACxDi5P,kBAAmBA,EACnB0a,oBAAkClpD,EAAAA,cAAoBsiF,GAAkB,MACxEn5B,kCAAmCxpD,KAAW8lB,EAAW,GAAGA,KAAa7wM,IAASu0O,GAClFh5Q,KAAMo6Q,EACN7B,WAAYuqD,EACZ3yP,QAASq6K,GACRR,EAAa,CACdguB,gBAAiBqC,EACjB/4Q,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAY,OAAT8oM,QAA0B,IAATA,OAAkB,EAASA,EAAK5sM,OAAQA,GAChGiC,UAAWigU,EACXluF,UAAWA,EACX77G,UAAWA,EACXg6I,eAAgBA,EAChBwB,WAAYU,EACZpiO,IAAKA,EACL0gO,cAAezkD,KAAWykD,EAAekV,EAAQy5C,EAAY3uD,cAAeg9B,EAAW/Y,GACvF/e,oBAAqBwpD,QACjB,IC5IFjxQ,IAAoB6hD,EAAAA,EAAAA,aAAW,CAAC1/D,EAAON,KAC3C,MAAMowR,GAAUr6P,EAAAA,EAAAA,QAAO,MACjBnH,EAAU0tJ,EAAAA,WAAiBkgF,IAQjC,OAPA9mO,EAAAA,EAAAA,qBAAoB11B,GAAK,KAAM,CAC7B26J,KAAMy1H,EAAQ1hS,QACd1S,MAAOrwB,IACL,IAAIo5B,EACuB,QAA1BA,EAAKqrS,EAAQ1hS,eAA4B,IAAP3J,GAAyBA,EAAG/I,MAAMrwB,EAAQ,MAG7D2wN,EAAAA,cAAoB+zG,GAAc5hU,OAAOoD,OAAO,CAClEmuC,IAAKowR,GACJ9vR,EAAOsuB,GAAS,IAErBzQ,GAAK4kL,KAAOA,GACZ5kL,GAAKgmN,QAAUA,GACfhmN,GAAKilN,QAAUktD,GACfnyQ,GAAKgrN,UAAYA,GAIjB,YC5BA,IAAIj8B,GAAMV,GAAQU,IAChBR,GAAMF,GAAQE,ICkBhB,UApB2B1sI,EAAAA,EAAAA,aAAW,SAAU1/D,EAAON,GACrD,IAAIttC,EAAU4tC,EAAM5tC,QAClBk3P,EAAQtpN,EAAMspN,MACd7nB,EAAYzhM,EAAMyhM,UAChBwuF,GAAc16P,EAAAA,EAAAA,UAAQ,WAOxB,MALuB,oBAAZnjE,EACQA,IAEAA,CAGrB,GAAG,CAACA,IACA89T,EAAc13F,GAAW94L,EAAK05L,GAAW62F,IAC7C,OAAoBj0G,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMstC,GAAsBttC,EAAAA,cAAoB,MAAO,CAC7GtsN,UAAW,GAAG/C,OAAO80O,EAAW,YACjBzlB,EAAAA,aAAmBi0G,EAAa,CAC/CvwR,IAAKq5L,GAAWk3F,GAAeC,OAAc96T,IAEjD,ICrBA,IAAI8pQ,GAAqB,CACvBtG,QAAS,EACTC,QAAS,GAEP7B,GAAe,CAAC,EAAG,GAuCvB,SAtCiB,CACfmI,QAAS,CACPxV,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,GACVj8M,OAAQ,CAAC,GAAI,GACb+zM,aAAcA,IAEhBvtQ,IAAK,CACHkgQ,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,GACVj8M,OAAQ,CAAC,GAAI,GACb+zM,aAAcA,IAEhBoI,SAAU,CACRzV,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,GACVj8M,OAAQ,CAAC,GAAI,GACb+zM,aAAcA,IAEhBqI,WAAY,CACV1V,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,GACVj8M,OAAQ,CAAC,EAAG,GACZ+zM,aAAcA,IAEhBzoQ,OAAQ,CACNo7P,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,GACVj8M,OAAQ,CAAC,EAAG,GACZ+zM,aAAcA,IAEhBsI,YAAa,CACX3V,OAAQ,CAAC,KAAM,MACfl2P,SAAUyrQ,GACVj8M,OAAQ,CAAC,EAAG,GACZ+zM,aAAcA,KCpClB,IAAI7gC,GAAY,CAAC,QAAS,YAAa,iBAAkB,YAAa,QAAS,YAAa,aAAc,oBAAqB,aAAc,aAAc,mBAAoB,eAAgB,UAAW,UAAW,YAAa,UAAW,WAAY,mBAQzP,SAAS0oF,GAAS7+Q,EAAON,GACvB,IAAIywR,EACAC,EAAepwR,EAAMspN,MACvBA,OAAyB,IAAjB8mE,GAAkCA,EAC1CprF,EAAmBhlM,EAAMyhM,UACzBA,OAAiC,IAArBuD,EAA8B,cAAgBA,EAC1D4b,EAAiB5gN,EAAM4gN,eACvBv7L,EAAYrlB,EAAMqlB,UAClBl/B,EAAQ6Z,EAAM7Z,MACdu5Q,EAAmB1/P,EAAMu0N,UACzBA,OAAiC,IAArBmrC,EAA8B,aAAeA,EACzD2wB,EAAoBrwR,EAAM28N,WAC1BA,OAAmC,IAAtB0zD,EAA+BC,GAAaD,EACzD7lE,EAAoBxqN,EAAMwqN,kBAC1BgF,EAAaxvN,EAAMwvN,WACnBC,EAAazvN,EAAMyvN,WACnB4vC,EAAmBr/P,EAAMq/P,iBACzBG,EAAex/P,EAAMw/P,aACrBx9C,EAAUhiN,EAAMgiN,QAChBs9C,EAAiBt/P,EAAMo8P,QACvBA,OAA6B,IAAnBkD,EAA4B,CAAC,SAAWA,EAClD7iO,EAAYz8B,EAAMy8B,UAClBrqE,EAAU4tC,EAAM5tC,QAChBk6C,EAAWtM,EAAMsM,SACjBo5L,EAAkB1lM,EAAM0lM,gBACxBm3D,EAAa36D,GAAyBliM,EAAOm2L,IAE7C2N,EAAmBC,GADC/nB,EAAAA,WAC+B,GACnDu0G,EAAiBzsF,EAAiB,GAClC0sF,EAAoB1sF,EAAiB,GACnC+iB,EAAgB,YAAa7mN,EAAQgiN,EAAUuuE,EAC/CjwB,EAAatkF,EAAAA,OAAa,MAC1By0G,EAAaz0G,EAAAA,OAAa,MAC1BohC,EAAWphC,EAAAA,OAAa,MAC5BA,EAAAA,oBAA0Bt8K,GAAK,WAC7B,OAAO4gQ,EAAWlyQ,OACpB,IACA,IAAIsiS,EAAsB,SAA6B1vD,GACrDwvD,EAAkBxvD,GACE,OAApBt7B,QAAgD,IAApBA,GAA8BA,EAAgBs7B,EAC5E,GH/Ca,SAA0B5tH,GACvC,IAAI4uG,EAAU5uG,EAAK4uG,QACjBs+C,EAAaltJ,EAAKktJ,WAClB56D,EAAkBtyF,EAAKsyF,gBACvBjpK,EAAY22E,EAAK32E,UACjBg0P,EAAar9K,EAAKq9K,WAChBE,EAAe30G,EAAAA,QAAa,GAC5B40G,EAAgC,WAEhC,IAAIC,EAAqBC,EADvB9uE,IAE6C,QAA9C6uE,EAAsBvwB,EAAWlyQ,eAA6C,IAAxByiS,GAA0F,QAAvDC,EAAwBD,EAAoBn1S,aAA6C,IAA1Bo1S,GAAoCA,EAAsB5oU,KAAK2oU,GACpM,OAApBnrF,QAAgD,IAApBA,GAA8BA,GAAgB,GAE9E,EACIqrF,EAAY,WACd,IAAIC,EACJ,QAAmD,QAA9CA,EAAsBP,EAAWriS,eAA6C,IAAxB4iS,IAAkCA,EAAoBt1S,SAC/G+0S,EAAWriS,QAAQ1S,QACnBi1S,EAAaviS,SAAU,GAChB,EAGX,EACI6iS,EAAgB,SAAuB1vQ,GACzC,OAAQA,EAAMjI,SACZ,KAAKszL,GACHgkF,IACA,MACF,KAAKxkF,GAED,IAAI8kF,GAAc,EACbP,EAAaviS,UAChB8iS,EAAcH,KAEZG,EACF3vQ,EAAMrH,iBAEN02Q,IAKV,EACA50G,EAAAA,WAAgB,WACd,OAAIgmC,GACFt0P,OAAOgD,iBAAiB,UAAWugU,GAC/Bx0P,GAEFqmK,GAAIiuF,EAAW,GAEV,WACLrjU,OAAOukD,oBAAoB,UAAWg/Q,GACtCN,EAAaviS,SAAU,CACzB,GAEK,WACLuiS,EAAaviS,SAAU,CACzB,CACF,GAAG,CAAC4zN,GACN,CGXE3Q,CAAiB,CACf2Q,QAAS6E,EACTy5C,WAAYljD,EACZ1X,gBAAiBgrF,EACjBj0P,UAAWA,EACXg0P,WAAYA,IAEd,IAOIU,EAAiB,WACnB,OAAoBn1G,EAAAA,cAAoBo1G,GAAS,CAC/C1xR,IAAK+wR,EACLr+T,QAASA,EACTqvO,UAAWA,EACX6nB,MAAOA,GAEX,EAsBIswD,EAA4B59F,EAAAA,aAAmB1vK,EAAU,CAC3D58C,UAAWisN,KAAkD,QAAtCw0G,EAAkB7jR,EAAStM,aAAuC,IAApBmwR,OAA6B,EAASA,EAAgBzgU,UAAWm3P,GARjH,WACrB,IAAIs+D,EAAgBnlR,EAAMmlR,cAC1B,YAAsB/vT,IAAlB+vT,EACKA,EAEF,GAAGx4T,OAAO80O,EAAW,QAC9B,CAEyJ4vF,IACvJ3xR,IAAKq5L,GAAWzsL,GAAYksL,GAAW4kB,EAAUhkB,GAAW9sL,SAAal3C,IAEvEk8T,EAAoB7hE,EAIxB,OAHK6hE,IAAyD,IAApCl1B,EAAQvvS,QAAQ,iBACxCykU,EAAoB,CAAC,UAEHt1G,EAAAA,cAAoB0kD,GAASt5C,GAAS,CACxDspC,kBAAmBiM,GAClBkgC,EAAY,CACbp7D,UAAWA,EACX/hM,IAAK4gQ,EACLhwC,eAAgB30C,KAAW0jF,GAAkBr/L,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,eAAgB6nB,IACtGiH,WAAYivC,EACZltO,OAAQ8pO,EACR5sC,WAAYA,EACZC,WAAY6hE,EACZ9gE,eAAgB+D,EAChB5D,WAAYxqO,EACZ8qO,oBAAqBrQ,EACrBsQ,eAAgB7rM,EAChBqqM,aAAc7I,EACdhtD,QAtCmC,WACnC,IAAI03H,EAA8BvxR,EAAMuxR,4BACtC1gE,EAAa7wN,EAAM6wN,WACrB,MAAI,gCAAiC7wN,EAC5BuxR,GAED1gE,CACV,CA+BW2gE,GAAmC,WAAa,GACzDnnE,MA5CuB,oBAAZj4P,EACF++T,EAEFA,IA0CPvhE,qBAAsB8gE,EACtB5/D,aA9DY,SAAiBn7O,GAC7B,IAAI87S,EAAiBzxR,EAAMyxR,eAC3BjB,GAAkB,GACdiB,GACFA,EAAe97S,EAEnB,EAyDE60O,kBAAmBA,IACjBovD,EACN,CACA,MC7HA,GD6H4B59F,EAAAA,WAAiB6iG,IE7H7C,GADoB93T,GAA0B,kBAAVA,GAAuC,oBAAVA,GAAkC,OAAVA,ECMzF,IAA4Bk4G,EAAAA,EAAAA,oBAAc7pG,GCS1C,SAfa,CAEXs8T,eAAgB,SAChBC,QAAS,QACTC,gBAAiB,UACjBloU,KAAM,OAENmoU,UAAW,gBACXC,UAAW,YACXC,OAAQ,mBACRC,OAAQ,eACRC,OAAQ,mBACRC,OAAQ,eACRC,UAAW,aCgBb,SA3BaxxF,GAAcA,GAAc,CAAC,ECFhB,CACxByxF,WAAY,OACZC,UAAW,IACXC,mBAAoB,IACpBC,iBAAiB,IDFyC,CAAC,EAAG,CAC9Dp2S,OAAQ,QACRq2S,MAAO,QACP13Q,IAAK,MACL23Q,YAAa,gBACbpzP,GAAI,KACJgX,MAAO,QACPl1B,KAAM,OACNzjC,MAAO,QACPD,KAAM,OACNi1S,WAAY,cACZC,WAAY,cACZC,WAAY,gBACZC,YAAa,iBACbC,WAAY,gBACZC,aAAc,kBACdzlK,WAAY,WACZ0lK,eAAgB,oBAChBC,cAAe,0BACfC,UAAW,wBACXC,aAAc,6BACdC,SAAU,8BACVC,eAAgB,cAChBC,WAAY,cACZC,gBAAiB,eACjBC,YAAa,iBEvBf,GAJe,CACbthP,YAAa,cACbuhP,iBAAkB,CAAC,aAAc,aCkBnC,GAjBe,CACbj8J,KAAMrpK,OAAOoD,OAAO,CAClB2gF,YAAa,cACbwhP,gBAAiB,cACjBC,mBAAoB,iBACpBC,iBAAkB,eAClBC,gBAAiB,cACjBJ,iBAAkB,CAAC,aAAc,YACjCK,qBAAsB,CAAC,aAAc,YACrCC,wBAAyB,CAAC,gBAAiB,eAC3CC,sBAAuB,CAAC,cAAe,aACvCC,qBAAsB,CAAC,aAAc,aACpCC,IACHC,iBAAkBhmU,OAAOoD,OAAO,CAAC,EAAG6iU,KCZhCnrB,GAAe,kCA6IrB,GA5IqB,CACnB9sR,OAAQ,KACRk4S,WAAU,GACVvV,WAAU,GACVwV,WAAU,GACVC,SCTF,GDUE11T,OAAQ,CACNqzE,YAAa,iBAEf1/C,MAAO,CACLgiS,YAAa,cACbC,cAAe,KACfC,YAAa,QACbC,gBAAiB,aACjBC,eAAgB,mBAChBC,wBAAyB,oBACzBC,UAAW,UACXC,UAAW,sBACXC,aAAc,sBACdC,WAAY,iBACZC,aAAc,kBACdC,UAAW,OACXC,OAAQ,aACRC,SAAU,eACVC,YAAa,2BACbC,WAAY,0BACZC,WAAY,2BAEd/W,KAAM,CACJgX,KAAM,OACNC,SAAU,WACVC,OAAQ,UAEVtX,MAAO,CACLuX,OAAQ,KACRC,WAAY,SACZC,WAAY,MAEdtX,WAAY,CACVoX,OAAQ,KACRC,WAAY,UAEdE,SAAU,CACRC,OAAQ,CAAC,GAAI,IACbC,kBAAmB,cACnBC,SAAU,OACVC,UAAW,QACX7gO,OAAQ,SACR8gO,cAAe,sBACfC,cAAe,sBACftB,UAAW,kBACXuB,YAAa,oBACbC,UAAW,kBACXvB,aAAc,uBAEhBwB,OAAQ,CACNC,UAAW,eACXC,WAAY,cACZC,YAAa,eACbC,YAAa,eACbC,aAAc,iBAEhBx4C,MAAO,CACLtuQ,YAAa,WAEf8lO,KAAM,CACJz7C,KAAM,QAER08H,KAAM,CACJnnI,KAAM,OACNrsG,KAAM,OACNyzO,OAAQ,SACR3B,OAAQ,SACRC,SAAU,YAEZ2B,KAAM,CACJC,SAAU,aACV/tB,wBAAyB,CACvBnhT,QAAS,sCACTuiH,SAAU,wBACVg6L,KAAM,oCACN15R,WAAY,uCACZ4S,KAAM,CACJpyB,OAAQ,kCACRuG,MAAO,yCACPsjK,QAAS,+BAEXhmF,MAAO,CACLxzE,OAAQwtS,GACR7uS,OAAQ6uS,GACRjvS,MAAOivS,GACP1sS,OAAQ0sS,GACRhnQ,OAAQgnQ,GACRzrR,KAAMyrR,GACN1E,QAAS0E,GACT59R,QAAS49R,GACTljL,MAAOkjL,GACP54R,OAAQ44R,GACRnoP,MAAOmoP,GACP5+S,IAAK4+S,GACLl2L,IAAKk2L,IAEPxtS,OAAQ,CACNmR,IAAK,qCACLxB,IAAK,8CACLD,IAAK,2CACLqQ,MAAO,qDAETymB,OAAQ,CACNr1B,IAAK,mCACLxB,IAAK,kCACLD,IAAK,kCACLqQ,MAAO,0CAETxhB,MAAO,CACL4S,IAAK,0BACLxB,IAAK,2BACLD,IAAK,0BACLqQ,MAAO,wDAETi2E,QAAS,CACP+yM,SAAU,oDAIhB31K,MAAO,CACL2kB,QAAS,WAEX0jL,OAAQ,CACNC,QAAS,kBACT98F,QAAS,UACT+8F,QAAS,WAEXC,YAAa,CACXC,YAAa,QACbC,YAAa,cACbC,YAAa,SACbC,cAAe,aE7InB,IAAIC,GAAgBvpU,OAAOoD,OAAO,CAAC,EAAGomU,GAActZ,OAChDuZ,GAAa,GACjB,MAAMC,GAAiBA,IAAMD,GAAWxwS,QAAO,CAAC0wS,EAAQ37S,IAAWhuB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGumU,GAAS37S,IAASw7S,GAActZ,OAa5H,SAAS0Z,KACd,OAAOL,EACT,CCjBA,MACA,IADmCz4N,EAAAA,EAAAA,oBAAc7pG,GC+BjD,SAxBuB4qC,IACrB,MAAM,OACJ7jB,EAAS,CAAC,EAAC,SACXmwB,EAAQ,YACR0rR,GACEh4R,EAKJg8K,EAAAA,WAAgB,KACd,MAAMi8G,EFfH,SAA6BC,GAClC,GAAIA,EAAW,CACb,MAAMC,EAAchqU,OAAOoD,OAAO,CAAC,EAAG2mU,GAGtC,OAFAN,GAAW5tU,KAAKmuU,GAChBT,GAAgBG,KACT,KACLD,GAAaA,GAAWt+T,QAAO6iB,GAAUA,IAAWg8S,IACpDT,GAAgBG,IAAgB,CAEpC,CACAH,GAAgBvpU,OAAOoD,OAAO,CAAC,EAAGomU,GAActZ,MAClD,CEIwB+Z,CAA+B,OAAXj8S,QAA8B,IAAXA,OAAoB,EAASA,EAAOkiS,OAC/F,OAAO4Z,CAAW,GACjB,CAAC97S,IACJ,MAAMk8S,EAA0Br8G,EAAAA,SAAc,IAAM7tN,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG4qB,GAAS,CAC3F8rP,OAAO,KACL,CAAC9rP,IACL,OAAoB6/L,EAAAA,cAAoBs8G,GAAcl5N,SAAU,CAC9Dr4G,MAAOsxU,GACN/rR,EAAS,ECtBRisR,GAAmB,QAAQj6S,KAAKw8B,SAASnxD,KAAKmiB,WA8D7C,SAAS0sT,GAAcC,EAAiB7nS,GAC7C,MAAMnjC,EA9DD,SAAkBgrU,EAAiB7nS,GACxC,MAAM8nS,EAAY,CAAC,EACbC,EAAcA,CAACvvS,EAAO4tC,KAC1B,IAAI/mE,EAAQm5B,EAAMn5B,QAElB,OADAA,GAAqB,OAAZ+mE,QAAgC,IAAZA,OAAqB,EAASA,EAAQ/mE,KAAWA,EACvEA,EAAM+7Q,aAAa,EAEtB1lP,EAAYA,CAACsyS,EAAUzpU,KAC3B,MAAMw9R,EAAY,IAAIvjB,GAAUwvD,GAC1BzqC,EAAgBphB,GAAS4f,EAAU3gB,eACzC0sD,EAAU,GAAGvpU,WAAgBwpU,EAAYhsC,GACzC+rC,EAAU,GAAGvpU,oBAAyBg/R,EAAc,GACpDuqC,EAAU,GAAGvpU,iBAAsBg/R,EAAc,GACjDuqC,EAAU,GAAGvpU,kBAAuBg/R,EAAc,GAClDuqC,EAAU,GAAGvpU,mBAAwBw9R,EAAU18R,QAAQk6Q,KAAK,IAAK6B,cACjE0sD,EAAU,GAAGvpU,yBAA8Bg/R,EAAc,GACzDuqC,EAAU,GAAGvpU,6BAAkCg/R,EAAc,EAAE,EAGjE,GAAIv9P,EAAM+9O,aAAc,CACtBroP,EAAUsK,EAAM+9O,aAAc,WAC9B,MAAMA,EAAe,IAAIvF,GAAUx4O,EAAM+9O,cACnCigB,EAAgB7hB,GAAS4B,EAAa3C,eAE5C4iB,EAAc3lS,SAAQ,CAACmgC,EAAO/wB,KAC5BqgU,EAAU,WAAWrgU,EAAQ,KAAO+wB,CAAK,IAG3CsvS,EAAU,iCAAmCC,EAAYhqD,GAAcpsQ,GAAKA,EAAE0oQ,QAAQ,MACtFytD,EAAU,iCAAmCC,EAAYhqD,GAAcpsQ,GAAKA,EAAE0oQ,QAAQ,MACtFytD,EAAU,iCAAmCC,EAAYhqD,GAAcpsQ,GAAKA,EAAE6oQ,KAAK,MACnFstD,EAAU,iCAAmCC,EAAYhqD,GAAcpsQ,GAAKA,EAAE6oQ,KAAK,MACnFstD,EAAU,iCAAmCC,EAAYhqD,GAAcpsQ,GAAKA,EAAE4nQ,KAAW,IAAN5nQ,EAAEF,KACrF,MAAMw2T,EAAqB,IAAIzvD,GAAUwlB,EAAc,IACvD8pC,EAAU,wCAA0CC,EAAYE,GAAoBt2T,GAAKA,EAAE4nQ,KAAW,GAAN5nQ,EAAEF,KAClGq2T,EAAU,wCAA0CC,EAAYE,GAAoBt2T,GAAKA,EAAEyoQ,OAAO,IACpG,CAmBA,OAjBIp6O,EAAMkoS,cACRxyS,EAAUsK,EAAMkoS,aAAc,WAG5BloS,EAAMmoS,cACRzyS,EAAUsK,EAAMmoS,aAAc,WAG5BnoS,EAAMooS,YACR1yS,EAAUsK,EAAMooS,WAAY,SAG1BpoS,EAAMqoS,WACR3yS,EAAUsK,EAAMqoS,UAAW,QAItB,oBADS9qU,OAAOC,KAAKsqU,GAAWljU,KAAIvI,GAAO,KAAKwrU,KAAmBxrU,MAAQyrU,EAAUzrU,QAGhFG,KAAK,iBAEf8d,MACJ,CAEgBu8K,CAASgxI,EAAiB7nS,GACpCswM,MACF4Y,GAAUrsP,EAAO,GAAG8qU,mBAIxB,CCvEA,MAAMW,GAA+Bl9G,EAAAA,eAAoB,GAC5Cm9G,GAA0B/lL,IACrC,IAAI,SACF9mG,EAAQ,SACRH,GACEinG,EACJ,MAAMgmL,EAAiBp9G,EAAAA,WAAiBk9G,IACxC,OAAoBl9G,EAAAA,cAAoBk9G,GAAgB95N,SAAU,CAChEr4G,MAAoB,OAAbolD,QAAkC,IAAbA,EAAsBA,EAAWitR,GAC5D9sR,EAAS,EAEd,MCHA,SARA,WAGE,MAAO,CACL+sR,mBAHwBnkQ,EAAAA,EAAAA,YAAWgkQ,IAInCI,eAHoBpkQ,EAAAA,EAAAA,YAAWmnP,IAKnC,ECTMkd,GAAYprU,OAAOoD,OAAO,CAAC,EAAGyqN,IAElChmJ,MAAKA,IACHujQ,GAGJ,GADqC,qBAAVvjQ,GADRwjQ,IAAM,GACuCxjQ,GCDjD,SAASyjQ,GAAcz5R,GACpC,MAAM,SACJsM,GACEtM,GACG,CAAE8wE,GAAS+yK,MACZ,OACJt9B,GACEz1I,EACE4oN,EAA4B19G,EAAAA,QAAa,GAE/C,OADA09G,EAA0BtrS,QAAUsrS,EAA0BtrS,UAAsB,IAAXm4N,EACrEmzE,EAA0BtrS,QACR4tL,EAAAA,cAAoBqiC,GAAgB,CACtDkI,OAAQA,GACPj6M,GAEEA,CACT,CCFA,SAAqE,IAAM,KCF3E,GAd0BqtR,CAACtoD,EAAep4B,KACxC,MAAOroN,EAAOkgF,GAAS+yK,KAEvB,OAAOtF,GAAiB,CACtB3tP,QACAkgF,QACAwkK,OAAQ,GACR32Q,KAAM,CAAC,mBAAoB0yQ,GAC3B73B,MAAOA,IAAc,OAARP,QAAwB,IAARA,OAAiB,EAASA,EAAIO,MAC3D+1B,MAAO,CACLn5Q,KAAM,UAEP,IAAM,CAAC4xR,GAAa3W,KAAgB,ECbzC,IAAIyiB,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EA4BO,MAOD+9S,GAAe,CAAC,qBAAsB,oBAAqB,cAAe,QAAS,aAAc,OAAQ,SAAU,UACzH,IAAInB,GACAoB,GACAC,GACAC,GACJ,SAASC,KACP,OAAOvB,IAAmB5nD,EAC5B,CACA,SAASopD,KACP,OAAOJ,IAAuB/oD,EAChC,CAIA,MAyBaopD,GAAeA,KAAA,CAC1BjpD,aAAcA,CAACE,EAAWC,IACpBA,IAGGD,EAAY,GAAG6oD,QAAwB7oD,IAAc6oD,MAE9DG,iBAAkBF,GAClBG,iBAAkBA,IAEZ3B,IAIGuB,KAETpyS,SAAUA,IAAMkyS,GAChBO,aAAcN,KAEVO,GAAmBt6R,IACvB,MAAM,SACJsM,EACA2sM,IAAKshF,EAAS,wBACdC,EAAuB,MACvB50I,EAAK,OACLhvB,EAAM,KACNryF,EAAI,OACJpoD,EAAM,cACNm9S,EAAa,UACb1zM,EAAS,MACTxzG,EAAK,SACLqoT,EAAQ,QACRC,EAAO,yBACPC,EAAwB,sBACxBC,EAAqB,cACrBC,EAAa,aACbC,EAAY,cACZppE,EACA2f,cAAe0pD,EAAmB,MAClCnqS,EAAK,kBACLyoS,EAAiB,UACjB2B,EAAS,UACTz4C,EAAS,KACTxS,EAAI,SACJt3H,EAAQ,SACRwiL,EAAQ,SACRC,EAAQ,SACR7F,EAAQ,WACR8F,EAAU,SACVC,EAAQ,aACRC,EAAY,QACZ73D,EAAO,OACP83D,EAAM,SACNC,EAAQ,MACRC,EAAK,MACL7oU,EAAK,OACL8oU,EAAM,KACN7yE,EAAI,SACJ8yE,EAAQ,MACRC,EAAK,SACLppU,EAAQ,OACR6G,EAAM,OACNwiU,EAAM,WACNC,EAAU,KACVxhI,EAAI,WACJyhI,EAAU,MACV9yT,EAAK,SACL+yT,EAAQ,MACRjnL,EAAK,MACLknL,EAAK,MACLlsI,EAAK,KACLmsI,EACAC,OAAQC,EAAM,SACdC,GAAQ,OACRC,GAAM,QACN1kQ,GAAO,IACP98D,GAAG,MACHqnB,GAAK,KACLo6S,GAAI,KACJC,GAAI,SACJC,GAAQ,WACRC,GAAU,OACVC,GAAM,aACNC,GAAY,KACZnpM,GAAI,YACJopM,GAAW,WACXC,GAAU,YACVC,GAAW,KACXjvR,GAAI,KACJkvR,GAAI,SACJC,GACAj2G,QAASk2G,GAAa,KACtBC,GAAI,QACJC,GAAO,QACPC,GAAO,WACPC,GAAU,iBACVC,GAAgB,QAChBjyL,GAAO,YACPkyL,GAAW,WACXC,IACEx9R,EAEEixO,GAAej1D,EAAAA,aAAkB,CAACm1D,EAAWC,KACjD,MAAM,UACJ3vC,GACEzhM,EACJ,GAAIoxO,EACF,OAAOA,EAET,MAAMqsD,EAAkBh8F,GAAaiwB,EAAcuf,aAAa,IAChE,OAAOE,EAAY,GAAGssD,KAAmBtsD,IAAcssD,CAAe,GACrE,CAAC/rE,EAAcuf,aAAcjxO,EAAMyhM,YAChC4vC,GAAgB0pD,GAAuBrpE,EAAc2f,eAAiBP,GACtE73B,GAAMshF,GAAa7oE,EAAczY,IACvCitC,GAAS7U,GAAep4B,IACxB,MAAMsgD,GCjMO,SAAkB3oQ,EAAO8sS,EAAa3jS,GACnD,IAAItV,EACYy9R,GAAc,kBAA9B,MACMyb,EAAc/sS,GAAS,CAAC,EACxBgtS,GAA4C,IAAxBD,EAAY1rU,SAAsByrU,EAGvDA,EAHqEvvU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG04R,IAAgB,CACxHE,OAAgG,QAAvF1lQ,EAAqB,OAAhBi5S,QAAwC,IAAhBA,OAAyB,EAASA,EAAYvzC,cAA2B,IAAP1lQ,EAAgBA,EAAKwlQ,GAAcE,OAC3IrU,OAAwB,OAAhB4nD,QAAwC,IAAhBA,OAAyB,EAASA,EAAY5nD,SAE1EN,EAAWqoD,KAMjB,OAAOtoQ,IAAQ,KACb,IAAI9wC,EAAIC,EACR,IAAKkM,EACH,OAAO8sS,EAGT,MAAM/5D,EAAmBx1Q,OAAOoD,OAAO,CAAC,EAAGqsU,EAAkB16D,YAC7D/0Q,OAAOC,KAAKwiC,EAAMsyO,YAAc,CAAC,GAAGj6Q,SAAQw4C,IAC1CkiO,EAAiBliO,GAAiBtzC,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGoyQ,EAAiBliO,IAAiB7Q,EAAMsyO,WAAWzhO,GAAe,IAEtI,MAAMo/O,EAAY,WAAWrL,EAAS35Q,QAAQ,KAAM,MAC9CiiU,GAA8C,QAA7Br5S,EAAKk5S,EAAY7nD,cAA2B,IAAPrxP,EAAgBA,EAAKm5S,EAAkB9nD,SAAW3nR,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CACtJ4qG,OAAmB,OAAXpiE,QAA8B,IAAXA,OAAoB,EAASA,EAAO0nM,WAC1B,kBAA7Bm8F,EAAkB9nD,OAAsB8nD,EAAkB9nD,OAAS,CAAC,GAAkC,kBAAvB6nD,EAAY7nD,OAAsB6nD,EAAY7nD,OAAS,CAAC,GAAI,CACnJ7oR,IAAmC,kBAAvB0wU,EAAY7nD,SAAsD,QAA7BpxP,EAAKi5S,EAAY7nD,cAA2B,IAAPpxP,OAAgB,EAASA,EAAGz3B,MAAQ4zR,IAG5H,OAAO1yR,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGqsU,GAAoBD,GAAc,CACrF7sN,MAAO3iH,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGqsU,EAAkB9sN,OAAQ6sN,EAAY7sN,OAC7EoyJ,WAAYS,EACZmS,OAAQgoD,GACR,GACD,CAACH,EAAaC,IAAoB,CAAC74S,EAAM1oB,IAAS0oB,EAAKxrB,MAAK,CAACwkU,EAAW1lU,KACzE,MAAM2lU,EAAY3hU,EAAKhE,GACvB,OAAQkgG,GAAQwlO,EAAWC,GAAW,EAAK,KAE/C,CDyJsBC,CAASrtS,EAAO8gO,EAAc9gO,MAAO,CACvD6wM,UAAWwvC,GAAa,MAK1B,MAAM1mH,GAAa,CACjB0uF,OACAuhF,0BACA50I,QACAhvB,SACAz6I,OAAQA,GAAU2+S,EAClBl1M,YACAxzG,QACAqoT,WACAC,UACAE,sBAAiD,OAA1BA,QAA4D,IAA1BA,EAAmCA,EAAwBD,EACpHE,gBACA5pD,gBACAI,iBACAzgP,MAAO2oQ,GACPyhC,YACAz4C,YACAxS,OACAt3H,WACAwiL,WACAC,WACA7F,WACA8F,aACAC,WACAC,eACA73D,UACA83D,SACAC,WACAC,QACA7oU,QACAqW,QACA+yT,WACAN,SACA7yE,OACA8yE,WACAC,QACAppU,WACA6G,SACAwiU,SACAC,aACAxhI,OACAyhI,aACAhnL,QACAknL,QACAlsI,QACAmsI,OACAC,OAAQC,EACRC,YACAC,UACA1kQ,WACA98D,OACAqnB,SACAo6S,QACAC,QACAC,YACAC,cACAC,UACAC,gBACAnpM,QACAopM,eACAC,cACAC,eACAjvR,QACAkvR,QACAC,YACAj2G,QAASk2G,GACTC,QACAC,WACAC,WACAC,cACAC,oBACAjyL,WACAkyL,eACAC,eAMF,MAAMzjS,GAAS5rC,OAAOoD,OAAO,CAAC,EAAGmgQ,GACjCvjQ,OAAOC,KAAKm8J,IAAYthK,SAAQgE,SACNmI,IAApBm1J,GAAWt9J,KACb8sC,GAAO9sC,GAAOs9J,GAAWt9J,GAC3B,IAIF2sU,GAAa3wU,SAAQu4C,IACnB,MAAMiwO,EAAYzxO,EAAMwB,GACpBiwO,IACF13O,GAAOyH,GAAYiwO,EACrB,IAEqC,qBAA5B+oD,IAETzgS,GAAOkiB,OAAS9tD,OAAOoD,OAAO,CAC5B2sU,gBAAiB1D,GAChBzgS,GAAOkiB,SAGZ,MAAMkiR,GAAe5oQ,IAAQ,IAAMx7B,IAAQA,IAAQ,CAACqkS,EAAYC,KAC9D,MAAM31E,EAAWv6P,OAAOC,KAAKgwU,GACvBz1E,EAAcx6P,OAAOC,KAAKiwU,GAChC,OAAO31E,EAASp/P,SAAWq/P,EAAYr/P,QAAUo/P,EAASnvP,MAAKtM,GAAOmxU,EAAWnxU,KAASoxU,EAAcpxU,IAAK,KAEzG,MACJsiR,IACEvzD,EAAAA,WAAiBsiH,IACfC,GAAuBviH,EAAAA,SAAc,KAAM,CAC/CylB,UAAW4vC,GACXp4B,OACAs2B,MAAOA,GAAQ,YAASn6Q,KACtB,CAACi8Q,GAAep4B,GAAKs2B,KACzB,IAAIz7I,GAAyBkoF,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoBwiH,GAAa,CACnH7D,yBAA0BA,IACxBruR,GACJ,MAAMk+P,GAAmBxuF,EAAAA,SAAc,KACrC,IAAIv3L,EAAIC,EAAIiC,EAAIC,EAChB,OAAO6pE,IAAqC,QAA7BhsE,EAAKkzS,GAAcX,YAAyB,IAAPvyS,OAAgB,EAASA,EAAGykR,0BAA4B,CAAC,GAAuF,QAAlFviR,EAAoC,QAA9BjC,EAAKy5S,GAAahiT,cAA2B,IAAPuI,OAAgB,EAASA,EAAGsyS,YAAyB,IAAPrwS,OAAgB,EAASA,EAAGuiR,0BAA4B,CAAC,GAAiC,QAA5BtiR,EAAKu3S,GAAa55P,YAAyB,IAAP39C,OAAgB,EAASA,EAAG4jR,mBAAqB,CAAC,GAAa,OAATjmO,QAA0B,IAATA,OAAkB,EAASA,EAAKimO,mBAAqB,CAAC,EAAE,GAC5a,CAAC2zB,GAAuB,OAAT55P,QAA0B,IAATA,OAAkB,EAASA,EAAKimO,mBAC/Dr8S,OAAOC,KAAKo8S,IAAkBlhT,OAAS,IACzCwqI,GAAyBkoF,EAAAA,cAAoByiH,GAAwBr/N,SAAU,CAC7Er4G,MAAOyjT,IACN12K,KAED33G,IACF23G,GAAyBkoF,EAAAA,cAAoB0iH,GAAgB,CAC3DviT,OAAQA,EACR67S,YRrUkB,gBQsUjBlkM,MAEDu9I,IAAiBp4B,MACnBnlH,GAAyBkoF,EAAAA,cAAoBszD,GAAYlwK,SAAU,CACjEr4G,MAAOw3U,IACNzqM,KAEDwlM,IACFxlM,GAAyBkoF,EAAAA,cAAoBsgG,GAAqB,CAChE9xS,KAAM8uT,GACLxlM,KAGLA,GAAyBkoF,EAAAA,cAAoBy9G,GAAe,KAAM3lM,IAElE,MAAM6qM,GAAY3iH,EAAAA,SAAc,KAC9B,MAAMv3L,EAAK80Q,IAAe,CAAC,GACzB,UACEqlC,EAAS,MACT9tN,EAAK,WACLoyJ,EAAU,OACV4S,GACErxP,EACJ8wE,EAAOu+L,GAAOrvQ,EAAI,CAAC,YAAa,QAAS,aAAc,WACnDo6S,EAAWD,KAAe51U,MAAMqR,QAAQukU,IAAcA,EAAUt1U,OAAS,GAAK+qR,GAAYuqD,GAAaplC,GACvGslC,EAAmB,CAAC,EAC1B3wU,OAAOoQ,QAAQ2kQ,GAAc,CAAC,GAAGj6Q,SAAQmqJ,IACvC,IAAK3xG,EAAeihP,GAAkBtvI,EACtC,MAAM2rL,EAAc5wU,OAAOoD,OAAO,CAAC,EAAGmxR,GAClC,cAAeq8C,KACa,IAA1BA,EAAYH,UACdG,EAAYnuS,MAAQiuS,GACX71U,MAAMqR,QAAQ0kU,EAAYH,YAA+C,oBAA1BG,EAAYH,aACpEG,EAAYnuS,MAAQyjP,GAAY0qD,EAAYH,mBAEvCG,EAAYH,WAErBE,EAAiBr9R,GAAiBs9R,CAAW,IAE/C,MAAM/mD,EAAc7pR,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG24R,IAAmBp5K,GACvE,OAAO3iH,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGgkG,GAAO,CAC5C3kE,MAAOiuS,EACP/tN,MAAOknK,EACP9U,WAAY47D,EACZlnD,SAAUzpR,OAAOoD,OAAO,CACtBqmR,SAAUI,GACT8mD,GACHhpD,OAAQA,GACR,GACD,CAACyjB,KAkBJ,OAjBI3oQ,IACFkjG,GAAyBkoF,EAAAA,cAAoBouE,GAAmBhrL,SAAU,CACxEr4G,MAAO43U,IACN7qM,KAGDqqM,GAAap3G,UACfjzF,GAAyBkoF,EAAAA,cAAoBimG,GAAe7iN,SAAU,CACpEr4G,MAAOo3U,GAAap3G,SACnBjzF,UAGqB1+H,IAAtBikU,IACFvlM,GAAyBkoF,EAAAA,cAAoBm9G,GAAyB,CACpEhtR,SAAUktR,GACTvlM,KAEekoF,EAAAA,cAAoBg1D,GAAc5xK,SAAU,CAC9Dr4G,MAAOo3U,IACNrqM,GAAU,EAETkrM,GAAiBh/R,IACrB,MAAMsuB,EAAU0tJ,EAAAA,WAAiBg1D,IAC3BiuD,EAAYjjH,EAAAA,WAAiBs8G,IACnC,OAAoBt8G,EAAAA,cAAoBs+G,GAAkBnsU,OAAOoD,OAAO,CACtEmgQ,cAAepjM,EACfwsQ,aAAcmE,GACbj/R,GAAO,EAEZg/R,GAAehuD,cAAgBA,GAC/BguD,GAAe3iB,YAAcA,GAC7B2iB,GAAejlS,OApWSiG,IACtB,MAAM,UACJyhM,EAAS,cACT4vC,EAAa,MACbzgP,EAAK,aACLypS,GACEr6R,OACc5qC,IAAdqsO,IACFg3F,GAAkBh3F,QAEErsO,IAAlBi8Q,IACFwoD,GAAsBxoD,GAEpB,iBAAkBrxO,IACpB+5R,GAAqBM,GAEnBzpS,KAnBN,SAAuBA,GACrB,OAAOziC,OAAOC,KAAKwiC,GAAOr3B,MAAKtM,GAAOA,EAAIwqG,SAAS,UACrD,CAkBQynO,CAActuS,GAIhBkpS,GAAclpS,EAFd4nS,GAAcwB,KAAsBppS,GAIxC,EA8UFouS,GAAeG,UAAYA,GAC3BhxU,OAAOgN,eAAe6jU,GAAgB,cAAe,CACnDrpU,IAAKA,IAEI0mT,KAMX,YEpaO,SAAS+iB,GAAoB1gO,GAClC,OAAO1+D,GAAuBg8K,EAAAA,cAAoBgjH,GAAgB,CAChEpuS,MAAO,CACLkgF,MAAO,CACLy1I,QAAQ,EACRujC,gBAAiB,KAGP9tE,EAAAA,cAAoBt9G,EAAWvwG,OAAOoD,OAAO,CAAC,EAAGyuC,IACnE,CAEA,MAyEA,GAzEqBq/R,CAAC3gO,EAAW4gO,EAAeC,EAAW1uD,EAAkB2uD,IAuEpEJ,IAtEWp/R,IAChB,MACEyhM,UAAW2vC,EAAkB,MAC7B3jR,GACEuyC,EACEy/R,EAAYzjH,EAAAA,OAAa,OACxBk6C,EAAawpE,GAAkB1jH,EAAAA,SAAe,IAC9Cm6C,EAAYwpE,GAAiB3jH,EAAAA,SAAe,IAC5Ct0M,EAAMk+S,GAAW38E,IAAe,EAAO,CAC5CliP,MAAOi5C,EAAMt4B,QAET,aACJupQ,GACEj1D,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAaJ,GAAoB,SAAUO,GAC7Dp1D,EAAAA,WAAgB,KAGd,GADA4pG,GAAQ,GACsB,qBAAnBpnF,eAAgC,CACzC,MAAME,EAAiB,IAAIF,gBAAejgO,IACxC,MAAMwpB,EAAUxpB,EAAQ,GAAGrL,OAC3BwsU,EAAe33S,EAAQw6E,aAAe,GACtCo9N,EAAc53S,EAAQq6E,YAAY,IAE9Bk7B,EAAWC,aAAY,KAC3B,IAAI94G,EACJ,MAAMm7S,EAAcJ,EAAiB,IAAIA,EAAe/9F,KAAe,IAAIA,aACrE4oB,EAAqC,QAA5B5lO,EAAKg7S,EAAUrxS,eAA4B,IAAP3J,OAAgB,EAASA,EAAGwJ,cAAc2xS,GACzFv1E,IACF3sH,cAAcJ,GACdohG,EAAe9pN,QAAQy1O,GACzB,GACC,IACH,MAAO,KACL3sH,cAAcJ,GACdohG,EAAenD,YAAY,CAE/B,IACC,IACH,IAAI0rB,EAAc94P,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyuC,GAAQ,CACxDvyC,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG9D,GAAQ,CAC7C1D,OAAQ,IAEV2d,OACAs6O,QAASt6O,EACT8iP,kBAAmBA,IAAMi1E,EAAUrxS,UAEjCmxS,IACFt4E,EAAcs4E,EAAUt4E,IAEtBq4E,GACFnxU,OAAOoD,OAAO01P,EAAa,CACzB,CAACq4E,GAAgB,CACf7rU,SAAU,CACRmlQ,SAAS,EACTC,SAAS,MAKjB,MAAMlT,EAAc,CAClB97N,cAAeqsO,EACf1iQ,SAAU,WACVygC,SAAUkiO,GAEZ,OAAoBn6C,EAAAA,cAAoB,MAAO,CAC7Ct8K,IAAK+/R,EACLhyU,MAAOk4P,GACO3pC,EAAAA,cAAoBt9G,EAAWvwG,OAAOoD,OAAO,CAAC,EAAG01P,IAAc,ICnFtE44E,GAAa,IAAIhd,GAAU,gBAAiB,CACvD,KAAM,CACJn7O,UAAW,0BACXogD,gBAAiB,MACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,uBACXogD,gBAAiB,MACjBh0H,QAAS,KAGAgsU,GAAc,IAAIjd,GAAU,iBAAkB,CACzD,KAAM,CACJn7O,UAAW,uBACXogD,gBAAiB,MACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,0BACXogD,gBAAiB,MACjBh0H,QAAS,KAGAisU,GAAa,IAAIld,GAAU,gBAAiB,CACvD,KAAM,CACJn7O,UAAW,2BACXogD,gBAAiB,MACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,uBACXogD,gBAAiB,MACjBh0H,QAAS,KAGAksU,GAAc,IAAInd,GAAU,iBAAkB,CACzD,KAAM,CACJn7O,UAAW,uBACXogD,gBAAiB,MACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,2BACXogD,gBAAiB,MACjBh0H,QAAS,KAGAmsU,GAAc,IAAIpd,GAAU,iBAAkB,CACzD,KAAM,CACJn7O,UAAW,0BACXogD,gBAAiB,MACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,uBACXogD,gBAAiB,MACjBh0H,QAAS,KAGAosU,GAAe,IAAIrd,GAAU,kBAAmB,CAC3D,KAAM,CACJn7O,UAAW,uBACXogD,gBAAiB,MACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,0BACXogD,gBAAiB,MACjBh0H,QAAS,KA2BPqsU,GAAa,CACjB,UAAW,CACT3d,YA1BoB,IAAIK,GAAU,cAAe,CACnD,KAAM,CACJn7O,UAAW,2BACXogD,gBAAiB,MACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,uBACXogD,gBAAiB,MACjBh0H,QAAS,KAkBT2uT,aAfqB,IAAII,GAAU,eAAgB,CACrD,KAAM,CACJn7O,UAAW,uBACXogD,gBAAiB,MACjBh0H,QAAS,GAEX,OAAQ,CACN4zE,UAAW,2BACXogD,gBAAiB,MACjBh0H,QAAS,MAQX,YAAa,CACX0uT,YAAaqd,GACbpd,aAAcqd,IAEhB,YAAa,CACXtd,YAAaud,GACbtd,aAAcud,IAEhB,aAAc,CACZxd,YAAayd,GACbxd,aAAcyd,KAGLE,GAAiBA,CAACtvN,EAAOo1I,KACpC,MAAM,OACJs/B,GACE10K,EACEq2I,EAAY,GAAGq+B,KAAUt/B,KACzB,YACJs8D,EAAW,aACXC,GACE0d,GAAWj6E,GACf,MAAO,CAACq8D,GAAWp7D,EAAWq7D,EAAaC,EAAc3xM,EAAMkiL,mBAAoB,CACjF,CAAC,aACK7rC,qBACAA,oBACA,CACJrzP,QAAS,EACT6vT,wBAAyB7yM,EAAMk4K,mBAEjC,CAAC,GAAG7hC,WAAoB,CACtBw8D,wBAAyB7yM,EAAMm4K,sBAEjC,EClHJ,GAtBuBn4K,IACrB,MAAM,aACJu0K,EAAY,QACZg7C,EAAO,WACP73C,EAAU,oBACVwM,GACElkL,EACEomI,EAAU,GAAGmpF,SACnB,MAAO,CACL,CAAC,GAAGh7C,MAAiBA,kBAA8B,CACjD,CAAC,GAAGg7C,KAAWnpF,KAAY,CACzB,CAAC,IAAIA,gBAAsBA,eAAsB,CAC/C9tN,MAAOo/P,EACP,UAAW,CACTp/P,MAAO4rQ,EACPphS,gBAAiB40R,MAK1B,ECZG83C,GAAexvN,IACnB,MAAM,aACJu0K,EAAY,QACZg7C,EAAO,YACP9b,EAAW,sBACXgc,EAAqB,eACrB52C,EAAc,OACdnE,EAAM,QACND,EAAO,kBACPyN,EAAiB,aACjBwtC,EAAY,SACZj7S,EAAQ,yBACRk7S,EAAwB,kBACxB/4C,EAAiB,aACjB8N,EAAY,yBACZW,EAAwB,gBACxBrI,GACEh9K,EACJ,MAAO,CAAC,CACN,CAACu0K,GAAe,CACd7xR,SAAU,WACV/J,KAAM,KACND,KAAM,CACJi3T,cAAc,EACd15T,OAAQ,MAEV2M,OAAQ6wT,EACR51T,QAAS,QAET,YAAa,CACX6E,SAAU,WACV62T,WAAYv5M,EAAMq6J,KAAKwe,GAAgB7qE,IAAI,GAAGiB,IAAIwgH,GAAuBn/J,QAEzE1tK,QAAS,KACTI,QAAS,KACT8S,QAAS,MAGX,kBAAmB,CACjBukT,UAAW,QACXlhM,UAAW,QAEb,CAAC,YAAYu7J,SAAe,CAC1B,CAAC,OAAOD,eAAqBC,gBAAqBD,UAAiB,CACjEhgQ,SAAUiwQ,IAGd,CAAC,GAAGnQ,UAAsB,CACxB7xR,SAAU,WACV,CAAC,GAAGgyR,WAAgBD,UAAiB,CACnChgQ,SAAUiwQ,GAEZ,CAAC,GAAGjQ,kBAAyB,CAC3B7sO,WAAY,aAAas6O,MAG7B,CAAC,GAAG3N,eAA2B,CAC7B,CAAC,GAAGE,kBAAyB,CAC3B79M,UAAW,mBAGf,qFAII,CACF/4E,QAAS,QAOX,CAAC,IAAI62R,qBAA0BA,4BAAiCH,uCACzDG,sBAA2BA,6BAAkCH,uCAC7DG,qBAA0BA,4BAAiCH,mCAC3DG,sBAA2BA,6BAAkCH,mCAC7DG,qBAA0BA,4BAAiCH,wCAC3DG,sBAA2BA,6BAAkCH,2BAAuC,CACzGxoO,cAAe6qQ,IAEjB,CAAC,IAAIliC,mBAAwBA,0BAA+BH,oCACrDG,oBAAyBA,2BAAgCH,oCACzDG,mBAAwBA,0BAA+BH,gCACvDG,oBAAyBA,2BAAgCH,gCACzDG,mBAAwBA,0BAA+BH,qCACvDG,oBAAyBA,2BAAgCH,wBAAoC,CAClGxoO,cAAe+qQ,IAEjB,CAAC,IAAIpiC,qBAA0BA,4BAAiCH,uCACzDG,qBAA0BA,4BAAiCH,mCAC3DG,qBAA0BA,4BAAiCH,2BAAuC,CACvGxoO,cAAe8qQ,IAEjB,CAAC,IAAIniC,mBAAwBA,0BAA+BH,oCACrDG,mBAAwBA,0BAA+BH,gCACvDG,mBAAwBA,0BAA+BH,wBAAoC,CAChGxoO,cAAegrQ,MAOrB5G,GAAcnwM,EAAOg9K,EAAiB,CACpCszB,eAAgB,CACd33T,KAAK,EACL8E,QAAQ,KAER,CAIF,CAAC,GAAG82R,KAAgBg7C,KAAY,CAC9B7sU,SAAU,WACVzJ,OAAQ,GAEV,CAAC,GAAGs2U,mBAA0B,CAC5B7sU,SAAU,WACVE,OAAQ6wT,EACR5gM,WAAY,cACZ0F,UAAW,OACXvB,gBAAiB,MACjB,SAAU,CACRm/J,UAAW,OACXl9R,OAAQ,IAGZ,CAAC,GAAGs7R,MAAiBA,kBAA8Bl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACzG,CAACuvN,GAAUlyU,OAAOoD,OAAOpD,OAAOoD,OAAO,CACrCm4B,QAAS+2S,EACTl6M,cAAe,OACf3yH,gBAAiBk6R,EACjBztK,eAAgB,cAChBmpK,aAAc14K,EAAM85K,eACpBhtF,QAAS,OACTv0E,UAAWvY,EAAM0mL,oBAChBzP,GAAcj3K,IAAS,CACxB,UAAW,CACTpnF,QAAS,EACT2/F,UAAW,QAEb,CAAC,GAAGg3M,sBAA6B,CAC/B32S,QAAS,GAAGv+B,GAAKq1U,MAAiBr1U,GAAKgrS,KACvC/sQ,MAAO0nF,EAAMikL,qBACbr8O,WAAY,OAAOs6O,KAGrB,CAAC,GAAGqtC,UAAiB,CACnB7sU,SAAU,WACV7E,QAAS,OACTs5R,WAAY,UAEd,CAAC,GAAGo4C,eAAsB,CACxBpsS,SAAU1O,EACVkmS,gBAAiB36M,EAAMomL,SACvB3xQ,SAAUurF,EAAM06K,YAElB,CAAC,GAAG60C,mBAA0B,CAC5BxyR,KAAM,OACN,eAAgB,CACdl/C,QAAS,cACTs5R,WAAY,SACZ79R,MAAO,QAET,MAAO,CACLg/B,MAAO,UACPsvB,WAAY,OAAOs6O,IACnB,UAAW,CACT5pQ,MAAO,WAET,WAAY,CACV51B,SAAU,WACV81H,MAAO,EACP1iH,QAAS,OAGb,CAAC,GAAGy5T,gBAAuB,CACzBjV,mBAAoBt6M,EAAMpnF,QAC1B8hS,kBAAmB,OACnBjmS,SAAUurF,EAAM06K,WAChBpiQ,MAAO0nF,EAAMikL,uBAIjB,CAAC,GAAGsrC,WAAiBA,mBAA0BlyU,OAAOoD,OAAOpD,OAAOoD,OAAO,CACzE5C,QAAS,OACT5E,OAAQ,EACR2/B,QAAS,GAAGv+B,GAAKq1U,MAAiBr1U,GAAKgrS,KACvC/sQ,MAAO0nF,EAAMk2K,UACbh8P,WAAY,SACZzF,WACAE,WAAYqrF,EAAMrrF,WAClBtD,OAAQ,UACRu2B,WAAY,OAAOs6O,IACnBxJ,aAAc14K,EAAM65K,eACpB,oBAAqB,CACnB/2R,gBAAiBk9G,EAAM6kL,qBAExB5N,GAAcj3K,IAAS,CACxB,aAAc,CACZ1nF,MAAO0nF,EAAMu3K,aACbz0R,gBAAiBk9G,EAAM8kL,oBACvB,oBAAqB,CACnBhiS,gBAAiBk9G,EAAM+kL,2BAG3B,aAAc,CACZzsQ,MAAOs+P,EACPvlQ,OAAQ,cACR,UAAW,CACTiH,MAAOs+P,EACP9zR,gBAAiBk6R,EACjB3rQ,OAAQ,eAEV9f,EAAG,CACDigO,cAAe,SAGnB,YAAa,CACXx4O,OAAQ,EAERC,OAAQ,GAAGoB,GAAK2lH,EAAMmmL,eACtBxjS,SAAU,SACVgyB,WAAY,EACZ7xB,gBAAiBk9G,EAAM6jL,YAEzB,CAAC,GAAGtP,8BAA0C,CAC5C7xR,SAAU,WACVioS,eAAgB3qL,EAAMwlL,UACtB,CAAC,GAAGjR,6BAAyC,CAC3ComC,gBAAiB,eACjBriS,MAAO0nF,EAAMikL,qBACbxvQ,SAAUiwQ,EACVttQ,UAAW,aAIjB,CAAC,GAAGm4S,qBAA4B,CAC9Bt2U,OAAQ,KAAKoB,GAAK2lH,EAAMomL,YACxBxtQ,QAAS,EACTu9P,UAAW,QAEb,CAAC,GAAGo5C,mBAA0B,CAC5BtV,iBAAkBj6M,EAAMq6J,KAAKgrB,GAA0Bx4Q,IAAImzF,EAAM06K,YAAYpqH,SAE/E,CAAC,GAAGi/J,sBAA6B,CAC/B7sU,SAAU,YAEZ,CAAC,GAAG6sU,YAAkBA,sBAA4Bh7C,wBAAoC,CACpF,CAAC,MAAMA,6BAAyC,CAC9Cj8P,MAAOs+P,EACP9zR,gBAAiBk6R,EACjB3rQ,OAAQ,gBAIZ,CAAC,GAAGk+S,sBAA4Bh7C,wBAAoC,CAClEj8P,MAAO0nF,EAAMu3K,mBAMrB,CAAC8/B,GAAgBr3M,EAAO,YAAaq3M,GAAgBr3M,EAAO,cAAesvN,GAAetvN,EAAO,WAAYsvN,GAAetvN,EAAO,aAAc4yM,GAAe5yM,EAAO,aAAa,EAUtL,GAAe+0K,GAAc,YAAY/0K,IACvC,MAAM,UACJmmL,EAAS,eACTtN,EAAc,WACd0M,EAAU,aACVhR,GACEv0K,EACE4vN,EAAgB59C,GAAWhyK,EAAO,CACtCuvN,QAAS,GAAGh7C,SACZk7C,sBAAuBzvN,EAAMq6J,KAAKwe,GAAgB7qE,IAAI,GAAGnhM,IAAIs5Q,GAAW71H,QACxEq/J,yBAA0BpqC,IAE5B,MAAO,CAACiqC,GAAaI,GAAgBC,GAAeD,GAAe,IAnBhC5vN,GAAS3iH,OAAOoD,OAAOpD,OAAOoD,OAAO,CACxEgzT,YAAazzM,EAAMg5K,gBAAkB,GACrC02C,cAAe1vN,EAAM84K,cAAgB94K,EAAMvrF,SAAWurF,EAAMrrF,YAAc,GACzEi7R,GAAoB,CACrBC,cAAe7vM,EAAM85K,eACrBg2B,qBAAqB,KAClBtB,GAAcxuM,KAcO,CACxB80K,YAAY,ICjRRi5B,GAAW7+Q,IACf,IAAIvb,EACJ,MAAM,KACJ41K,EAAI,MACJivD,EACA7nB,UAAW2vC,EAAkB,SAC7B9kO,EAAQ,QACR8vP,EAAO,SACPjwP,EAAQ,eACRy0R,EAAc,kBACdp2E,EAAiB,iBACjB60C,EAAgB,cAChBj/B,EAAa,aACbo/B,EAAY,KACZ93R,EAAI,aACJg6P,EAAY,QAEZ1f,EAAO,gBACPtc,EAAe,gBACfoqB,EAAkB,IAAI,gBACtBE,EAAkB,GAAG,mBACrBkP,GAAqB,EAAI,UACzB3K,EAAY,GAAE,QACdniQ,EAAO,eACPwuP,GACE5gN,GAEFwqN,kBAAmB86D,EAAwB,aAC3Cr0C,EAAY,UACZrrJ,EAAS,SACTo3M,GACEhhH,EAAAA,WAAiBg1D,IAELkxC,GAAc,YAQ9B,MAAM2e,EAAqB7kH,EAAAA,SAAc,KACvC,MAAMwoE,EAAgBvT,IACtB,YAAuB77Q,IAAnBwrP,EACKA,EAEL2T,EAAUj8P,SAAS,OACd,GAAGksR,eAEL,GAAGA,YAAwB,GACjC,CAACvT,EAAc1c,EAAW3T,IACvBkgF,EAAgB9kH,EAAAA,SAAc,IAC7Bu4C,EAGDA,EAAUj8P,SAAS,UACdi8P,EAAUpnQ,MAAM,EAAGonQ,EAAU1nQ,QAAQ,WAEvC0nQ,EALgB,QAAd3uI,EAAsB,cAAgB,cAM9C,CAAC2uI,EAAW3uI,IAWf,MAAM67G,EAAYwvC,EAAa,WAAYG,GACrCiT,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,IACrD,CAAEvzK,GAAS+yK,KACZzzR,EAAQ4rN,EAAAA,SAAev9G,KAAKsiO,GAAYz0R,GAAyB0vK,EAAAA,cAAoB,OAAQ,KAAM1vK,GAAYA,GAC/G00R,EAAkBhiO,GAAa5uG,EAAO,CAC1CV,UAAWisN,KAAW,GAAG8lB,YAAqB,CAC5C,CAAC,GAAGA,SAAgC,QAAd77G,GACrBx1H,EAAM4vC,MAAMtwC,WACfy8C,SAA0C,QAA/B1nB,EAAKr0B,EAAM4vC,MAAMmM,gBAA6B,IAAP1nB,EAAgBA,EAAK0nB,IAEnE80R,EAAiB90R,EAAW,GAAKiwP,EACjCvrC,KAAmC,OAAnBowE,QAA8C,IAAnBA,OAA4B,EAASA,EAAe3oU,SAAS,iBAEvG46P,EAAY0yD,GAAW38E,IAAe,EAAO,CAClDliP,MAAgB,OAAT2gB,QAA0B,IAATA,EAAkBA,EAAOs6O,IAE7Ck/E,EAAoBx+F,IAAS0wB,IAChB,OAAjBsO,QAA0C,IAAjBA,GAAmCA,EAAatO,EAAU,CACjFr/P,OAAQ,YAEU,OAApB2xO,QAAgD,IAApBA,GAAsCA,EAAgB0tB,GAClFwyD,EAAQxyD,EAAS,IAGb+tE,EAA6BxlH,KAAW0jF,EAAkBj/B,EAAekV,EAAQ8nB,EAAW/Y,EAAsB,OAAb24C,QAAkC,IAAbA,OAAsB,EAASA,EAASttU,UAAW,CACjL,CAAC,GAAG+xO,SAAgC,QAAd77G,IAElB8qI,EAAoB8wD,GAAc,CACtCE,mBAAqC,kBAAVp4D,GAAsBA,EAAM28D,cACvD/mD,qBACAj8M,OAAQ6tD,EAAMmmL,UACdwqB,WAAYn4D,EAAQx4I,EAAM64K,eAAiB,EAC3CH,aAAc14K,EAAM04K,eAEhB43C,EAAcplH,EAAAA,aAAkB,MACtB,OAAT3hB,QAA0B,IAATA,OAAkB,EAASA,EAAKqqE,cAAyB,OAATrqE,QAA0B,IAATA,OAAkB,EAASA,EAAKj+H,YAGtG,OAAjBslM,QAA0C,IAAjBA,GAAmCA,GAAa,EAAO,CAC9E3tQ,OAAQ,SAEV6xT,GAAQ,GAAM,GACb,CAAU,OAATvrH,QAA0B,IAATA,OAAkB,EAASA,EAAKqqE,WAAqB,OAATrqE,QAA0B,IAATA,OAAkB,EAASA,EAAKj+H,YAqC3G1oE,EAAQgzT,GAAiB1H,GAAU,WAA6B,OAAjBxf,QAA0C,IAAjBA,OAA0B,EAASA,EAAa9rS,QAE/H,IAAIm3I,EAA0BmxE,EAAAA,cAAoBqlH,GAAYlzU,OAAOoD,OAAO,CAC1Es/P,WAAYA,GACXngK,GAAK1wD,EAAO,CAAC,kBAAmB,CACjC8vN,gBAAiBA,EACjBE,gBAAiBA,EACjBhO,QAASkR,EACTxC,kBAAmBA,EACnBpH,QAASA,EACT+1C,iBAAkB8hC,EAClB1/F,UAAWA,EACX+oB,kBAAmBA,GAAqB86D,EACxC1kE,eAAgBigF,EAChBzkC,QAAS6kC,EACT7uU,QAnDoBkvU,KAGpB,IAAIrR,EAYJ,OAVEA,GADW,OAAT51H,QAA0B,IAATA,OAAkB,EAASA,EAAKutC,OACxB5rB,EAAAA,cAAoBn+J,GAAM1vD,OAAOoD,OAAO,CAAC,EAAG8oM,IAC3C,oBAAZjoM,EACFA,IAEAA,EAEZwuU,IACF3Q,EAAc2Q,EAAe3Q,IAE/BA,EAAcj0G,EAAAA,SAAev9G,KAA4B,kBAAhBwxN,EAAwCj0G,EAAAA,cAAoB,OAAQ,KAAMi0G,GAAeA,GAC9Gj0G,EAAAA,cAAoByrG,GAAkB,CACxDhmF,UAAW,GAAGA,SACd2+B,cAAezkD,KAAWyhF,EAAW/Y,GACrCjjB,WAAyBplD,EAAAA,cAAoB,OAAQ,CACnDtsN,UAAW,GAAG+xO,wBACAzlB,EAAAA,cAAoB20D,GAAe,CACjDjhR,UAAW,GAAG+xO,+BAEhBt1O,KAAM,WACNu4Q,YAAY,EACZpoM,QAAS8kQ,EACT55B,UAAWj/C,IACT,IAAI,KACFp8P,GACEo8P,CAEmJ,GAExJ0nE,EAAY,EAmBf17D,UAAWusE,EACXp7F,gBAAiBw7F,EACjB1hC,aAAcrxS,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAgB,OAAbyrU,QAAkC,IAAbA,OAAsB,EAASA,EAASvvU,OAAQ+xS,GAAe,CAC9I9rS,aAEAstU,GAMJ,OALIttU,IACFm3I,EAA0BmxE,EAAAA,cAAoBojG,GAAchgN,SAAU,CACpEr4G,MAAO2/T,GACN77K,IAEEsyJ,EAAWtyJ,EAAW,EAGzBi8K,GAAYuY,GAAaxgB,GAAU,aAASzpT,EAAW,YAAYqsO,GAAaA,IAGtFo9E,GAASgI,uCADa7mR,GAAuBg8K,EAAAA,cAAoB8qG,GAAW34T,OAAOoD,OAAO,CAAC,EAAGyuC,GAAqBg8K,EAAAA,cAAoB,OAAQ,OAK/I,YCjNMulH,GAAezwN,IACnB,MAAM,aACJu0K,EAAY,aACZgD,GACEv3K,EACJ,MAAO,CACL,CAACu0K,GAAe,CACd7xR,SAAU,WACVmwH,WAAY,cACZ2+G,cAAe,OACf/F,UAAW,aACXnzM,MAAO,qBAAqBi/P,KAC5Bh/J,UAAW,uBACXv1H,QAAS,GAET,uBAAwB,CACtB4kD,WAAY,CAAC,mBAAmBo4D,EAAMk4K,oBAAqB,cAAcl4K,EAAMk4K,qBAAqB57R,KAAK,KACzG,WAAY,CACVi8H,UAAW,yBACXv1H,QAAS,GAEX,eAAgB,CACd4kD,WAAY,CAAC,cAAco4D,EAAMu2K,sBAAsBv2K,EAAMq4K,kBAAmB,WAAWr4K,EAAMu2K,sBAAsBv2K,EAAMq4K,mBAAmB/7R,KAAK,QAI5J,EAEH,GAAe82R,GAAsB,QAAQpzK,GAAS,CAACywN,GAAazwN,MC5BvD0wN,GAAa,GAAG3wD,iBCK7B,IAIIpqM,GAJA8yP,GAAY54F,GAAc,CAAC,EAAGvL,IAC9Bp0N,GAAUu4T,GAAUv4T,QACtBygU,GAAclI,GAAUrvR,OACxBg9B,GAAyBqyP,GAAUryP,uBAErC,IACoB73E,QAAQ2R,IAAW,IAAIM,MAAM,KAAK,KACjC,KACjBmlE,GAAa8yP,GAAU9yP,WAE3B,CAAE,MAAO9wD,KACP,CAEF,SAAS+rT,GAAchqP,GACrB,IAAIl4C,EAAqD+5R,GAAU/5R,mDAC/DA,GAAsH,YAAhE70C,EAAAA,GAAAA,GAAQ60C,KAChEA,EAAmDilC,sBAAwBiT,EAE/E,CACA,IAAIiqP,GAAO,oBAqBJ,SAASz3R,GAAOn6C,EAAMxH,GACvBk+E,GAlBN,SAAsB12E,EAAMxH,GAC1Bm5U,IAAc,GACd,IAAIn1U,EAAOhE,EAAUo5U,KAASl7P,GAAWl+E,GACzCm5U,IAAc,GACdn1U,EAAK29C,OAAOn6C,GACZxH,EAAUo5U,IAAQp1U,CACpB,CAaIq1U,CAAa7xU,EAAMxH,GAZvB,SAAsBwH,EAAMxH,GACV,OAAhBk5U,SAAwC,IAAhBA,IAA0BA,GAAY1xU,EAAMxH,EACtE,CAaEs5U,CAAa9xU,EAAMxH,EACrB,CAGA,SAASu5U,GAAct4B,GACrB,OAAOu4B,GAAev/T,MAAMra,KAAMyP,UACpC,CACA,SAASmqU,KAgBP,OAfAA,IAAiB5gT,EAAAA,GAAAA,GAAgC2oR,KAAsB53J,MAAK,SAASo5J,EAAQ/iT,GAC3F,OAAOuhT,KAAsBp4R,MAAK,SAAkB04B,GAClD,cAAkBA,EAASrlB,KAAOqlB,EAAS/tC,MACzC,KAAK,EACH,OAAO+tC,EAASo3P,OAAO,SAAUrwS,QAAQM,UAAUrJ,MAAK,WACtD,IAAI45U,EACoC,QAAvCA,EAAkBz5U,EAAUo5U,WAAuC,IAApBK,GAA8BA,EAAgB39P,iBACvF97E,EAAUo5U,GACnB,KACF,KAAK,EACL,IAAK,MACH,OAAOv3R,EAASm2E,OAEtB,GAAG+qL,EACL,MACsB9oS,MAAMra,KAAMyP,UACpC,CACA,SAASqqU,GAAc15U,GACrB2+E,GAAuB3+E,EACzB,CAWA,SAAS25U,KAkBP,OAjBAA,IAAW/gT,EAAAA,GAAAA,GAAgC2oR,KAAsB53J,MAAK,SAAS63J,EAASxhT,GACtF,OAAOuhT,KAAsBp4R,MAAK,SAAmB44R,GACnD,cAAkBA,EAAUvlR,KAAOulR,EAAUjuS,MAC3C,KAAK,EACH,QAAqBjH,IAAfqxE,GAA2B,CAC/B6jO,EAAUjuS,KAAO,EACjB,KACF,CACA,OAAOiuS,EAAU9I,OAAO,SAAUsgC,GAAcv5U,IAClD,KAAK,EACH05U,GAAc15U,GAChB,KAAK,EACL,IAAK,MACH,OAAO+hT,EAAU/pL,OAEvB,GAAGwpL,EACL,MACgBvnS,MAAMra,KAAMyP,UAC9B,CCzFA,IAAIuqU,GAbuBC,CAACryU,EAAMxH,KAQhC2hD,GAAOn6C,EAAMxH,GACN,IDuEF,SAAiBkhT,GACtB,OAAOy4B,GAAS1/T,MAAMra,KAAMyP,UAC9B,CCxEWysE,CAAQ97E,IAYZ,SAAS85U,KACd,OAAOF,EACT,CC9BO,SAASG,GAAiBl5S,GAC/B,OAAOA,GAAmB,SAAVA,GAA8B,YAAVA,GAAiC,uBAAVA,GAA4C,2BAAVA,IAAuC,wBAAwBjkB,KAAKikB,IAEvJ,gBAAVA,CACF,CCMA,SAASm5S,GAAYx7U,GACnB,OAAOsI,OAAOic,MAAMvkB,GAAS,EAAIA,CACnC,CACA,MAAMy7U,GAAaxiS,IACjB,MAAM,UACJtwC,EAAS,OACTwD,EAAM,UACN6+N,EAAS,gBACT0wG,GACEziS,EACE0iS,EAAS1mH,EAAAA,OAAa,MAEtB2mH,EAAa3mH,EAAAA,OAAa,MAChCA,EAAAA,WAAgB,KACd2mH,EAAWv0S,QAAUq0S,GAAiB,GACrC,IAEH,MAAOr5S,EAAOw5S,GAAgB5mH,EAAAA,SAAe,OACtCwtE,EAAcq5C,GAAmB7mH,EAAAA,SAAe,KAChDxyN,EAAMs5U,GAAW9mH,EAAAA,SAAe,IAChCvyN,EAAKs5U,GAAU/mH,EAAAA,SAAe,IAC9B5xN,EAAOoiM,GAAYwvB,EAAAA,SAAe,IAClClyN,EAAQ2iM,GAAauvB,EAAAA,SAAe,IACpC9rE,EAAS8yL,GAAchnH,EAAAA,UAAe,GACvCinH,EAAY,CAChBz5U,OACAC,MACAW,QACAN,SACA0/R,aAAcA,EAAah0R,KAAIsmM,GAAU,GAAGA,QAAY1uM,KAAK,MAK/D,SAAS81U,IACP,MAAMC,EAAYx1U,iBAAiBuF,GAEnC0vU,ED1CG,SAA4B7yU,GACjC,MAAM,eACJ80H,EAAc,YACdl6F,EAAW,gBACX/2B,GACEjG,iBAAiBoC,GACrB,OAAIuyU,GAAiBz9M,GACZA,EAELy9M,GAAiB33S,GACZA,EAEL23S,GAAiB1uU,GACZA,EAEF,IACT,CC0BiBwvU,CAAmBlwU,IAChC,MAAMo9N,EAAkC,WAAvB6yG,EAAU3vU,UAErB,gBACJg3B,EAAe,eACfH,GACE84S,EACJL,EAAQxyG,EAAWp9N,EAAO2iQ,WAAa0sE,IAAa73S,WAAWF,KAC/Du4S,EAAOzyG,EAAWp9N,EAAOw2I,UAAY64L,IAAa73S,WAAWL,KAC7DmiK,EAASt5L,EAAOkvG,aAChBqqF,EAAUv5L,EAAOqvG,cAEjB,MAAM,oBACJ2iB,EAAmB,qBACnBC,EAAoB,uBACpBE,EAAsB,wBACtBD,GACE+9M,EACJN,EAAgB,CAAC39M,EAAqBC,EAAsBC,EAAyBC,GAAwB7vH,KAAIsmM,GAAUymI,GAAY73S,WAAWoxK,MACpJ,CAqBA,GA9CI1yK,IACF65S,EAAU,gBAAkB75S,GAyB9B4yL,EAAAA,WAAgB,KACd,GAAI9oN,EAAQ,CAGV,MAAM0Y,EAAKk3N,IAAI,KACbogG,IACAF,GAAW,EAAK,IAGlB,IAAItkG,EAKJ,MAJ8B,qBAAnBF,iBACTE,EAAiB,IAAIF,eAAe0kG,GACpCxkG,EAAe9pN,QAAQ1hB,IAElB,KACL4vO,GAAIv0I,OAAO3iF,GACQ,OAAnB8yN,QAA8C,IAAnBA,GAAqCA,EAAenD,YAAY,CAE/F,IACC,KACErrF,EACH,OAAO,KAET,MAAMmzL,GAAkC,aAAdtxG,GAA0C,UAAdA,KAAsC,OAAX7+N,QAA8B,IAAXA,OAAoB,EAASA,EAAOowU,UAAUpvU,SAASstU,KAC3J,OAAoBxlH,EAAAA,cAAoB6pC,GAAW,CACjD7D,SAAS,EACTK,cAAc,EACd6D,WAAY,cACZ1D,eAAgB,IAChBW,YAAaA,CAAC7pO,EAAGioC,KACf,IAAI98B,EAAIC,EACR,GAAI68B,EAAM+iM,UAAmC,YAAvB/iM,EAAM3Z,aAA4B,CACtD,MAAM27R,EAAmC,QAAzB9+S,EAAKi+S,EAAOt0S,eAA4B,IAAP3J,OAAgB,EAASA,EAAG8E,cAC/C,QAA7B7E,EAAKi+S,EAAWv0S,eAA4B,IAAP1J,GAAyBA,EAAGx8B,KAAKy6U,GAAYv6U,MAAK,KAC3E,OAAXm7U,QAA8B,IAAXA,GAA6BA,EAAOjuO,QAAQ,GAEnE,CACA,OAAO,CAAK,IAEb,CAAC89C,EAAM1zG,KACR,IACEhwC,UAAWs8P,GACT54G,EACJ,OAAoB4oE,EAAAA,cAAoB,MAAO,CAC7Ct8K,IAAK84L,GAAWkqG,EAAQhjS,GACxBhwC,UAAWisN,KAAWjsN,EAAWs8P,EAAiB,CAChD,aAAcq3E,IAEhB51U,MAAOw1U,GACP,GACF,EA2BJ,GAzBuBO,CAACtwU,EAAQynI,KAC9B,IAAIl2G,EACJ,MAAM,UACJstM,GACEp3F,EAEJ,GAAkB,aAAdo3F,KAAuE,QAAxCttM,EAAKvxB,EAAO+6B,cAAc,gBAA6B,IAAPxJ,OAAgB,EAASA,EAAGwmB,SAC7G,OAGF,MAAMs4R,EAAS9zU,SAASf,cAAc,OACtC60U,EAAO91U,MAAM+F,SAAW,WACxB+vU,EAAO91U,MAAMjE,KAAO,MACpB+5U,EAAO91U,MAAMhE,IAAM,MACR,OAAXyJ,QAA8B,IAAXA,GAA6BA,EAAOrE,aAAa00U,EAAmB,OAAXrwU,QAA8B,IAAXA,OAAoB,EAASA,EAAO7C,YACnI,MAAMoxU,EAAcY,KACpB,IAAIoB,EAAkB,KAItBA,EAAkBhC,EAAyBzlH,EAAAA,cAAoBwmH,GAAYr0U,OAAOoD,OAAO,CAAC,EAAGopI,EAAM,CACjGznI,OAAQA,EACRuvU,gBALF,WACE,OAAOgB,CACT,KAIKF,EAAO,ECtGd,GAjCgBG,CAACl9E,EAAS92P,EAAWqiO,KACnC,MAAM,KACJgrG,GACE/gH,EAAAA,WAAiBg1D,KACd,CAAElgK,EAAOwkK,GAAUuO,KACpB8/C,EAAWjhG,IAASnhL,IACxB,MAAMxxD,EAAOy2P,EAAQp4N,QACrB,IAAc,OAAT2uS,QAA0B,IAATA,OAAkB,EAASA,EAAK5wR,YAAcp8C,EAClE,OAEF,MAAM6zU,EAAa7zU,EAAKk+B,cAAc,IAAIuzS,OAAiBzxU,GACrD,WACJ8zU,GACE9G,GAAQ,CAAC,GAEZ8G,GAAcL,IAAgBI,EAAY,CACzCl0U,YACAohH,QACAihH,YACAxwK,QACA+zN,UACA,IAEEwuD,EAAQ9nH,EAAAA,OAAa,MAQ3B,OANyBz6J,IACvBuhL,GAAIv0I,OAAOu1O,EAAM11S,SACjB01S,EAAM11S,QAAU00M,IAAI,KAClB6gG,EAASpiR,EAAM,GACf,CAEmB,ECmBzB,SAjDavhB,IACX,MAAM,SACJsM,EAAQ,SACRH,EAAQ,UACR4lL,GACE/xL,GACE,aACJixO,IACE/7M,EAAAA,EAAAA,YAAW87M,IACTx/B,GAAe/7K,EAAAA,EAAAA,QAAO,MAEtBgsK,EAAYwvC,EAAa,SACxB,CAAEqE,GAAU4Q,GAASzkD,GAEtBkiG,EAAWD,GAAQlyF,EAAc71B,KAAW8lB,EAAW6zC,GAASvjD,GAwBtE,GAtBA/V,EAAAA,WAAgB,KACd,MAAMjsN,EAAOyhP,EAAapjN,QAC1B,IAAKr+B,GAA0B,IAAlBA,EAAKR,UAAkB48C,EAClC,OAGF,MAAMmwB,EAAU3mD,KAETw0G,GAAUx0G,EAAEziB,UAEhBnD,EAAKi7H,cAAgBj7H,EAAKi7H,aAAa,aAAej7H,EAAKo8C,UAAYp8C,EAAKL,UAAU4I,SAAS,aAAevI,EAAKL,UAAU4I,SAAS,WAGvIqrU,EAAShuT,EAAE,EAIb,OADA5lB,EAAKW,iBAAiB,QAAS4rE,GAAS,GACjC,KACLvsE,EAAKkiD,oBAAoB,QAASqqB,GAAS,EAAK,CACjD,GACA,CAACnwB,KAEe6vK,EAAAA,eAAqB1vK,GACtC,OAAoB,OAAbA,QAAkC,IAAbA,EAAsBA,EAAW,KAG/D,OAAO0yD,GAAa1yD,EAAU,CAC5B5M,IAFUq5L,GAAWzsL,GAAYksL,GAAWY,GAAW9sL,GAAWklM,GAAgBA,GAGlF,EClDJ,IAAIsiD,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAMO,MAAMkoT,GAAgC/nH,EAAAA,mBAAoB5mN,GAuCjE,GAtCoB4qC,IAClB,MAAM,aACJixO,EAAY,UACZrrJ,GACEo2F,EAAAA,WAAiBg1D,KAEjBvvC,UAAW2vC,EAAkB,KAC7B5mQ,EAAI,UACJ9a,GACEswC,EACJ49Q,EAAS9pB,GAAO9zP,EAAO,CAAC,YAAa,OAAQ,cACzCyhM,EAAYwvC,EAAa,YAAaG,IACrC,CAAC,CAAEkE,GAAUuO,KACdmgD,EAAUhoH,EAAAA,SAAc,KAC5B,OAAQxxM,GACN,IAAK,QACH,MAAO,KACT,IAAK,QACH,MAAO,KACT,QACE,MAAO,GACX,GACC,CAACA,IAMJ,MAAMoxM,EAAUD,KAAW8lB,EAAW,CACpC,CAAC,GAAGA,KAAauiG,KAAYA,EAC7B,CAAC,GAAGviG,SAAgC,QAAd77G,GACrBl2H,EAAW4lR,GACd,OAAoBt5D,EAAAA,cAAoB+nH,GAAiB3kO,SAAU,CACjEr4G,MAAOyjB,GACOwxM,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CAAC,EAAGqsT,EAAQ,CACnEluT,UAAWksN,KACT,EC9CAqoH,GAAc,uBACPC,GAAcD,GAAY9+T,KAAKzP,KAAKuuU,IAC1C,SAASE,GAAmBh1U,GACjC,MAAa,WAATA,EACK,CACL43T,QAAQ,GAGL,CACL53T,OAEJ,CACO,SAASqgG,GAASr0D,GACvB,MAAsB,kBAARA,CAChB,CACO,SAASipS,GAA0Bj1U,GACxC,MAAgB,SAATA,GAA4B,SAATA,CAC5B,CAmBO,SAASk1U,GAAc/3R,EAAUg4R,GACtC,IAAIC,GAAkB,EACtB,MAAMlpG,EAAY,GAalB,OAZArf,EAAAA,SAAe/yN,QAAQqjD,GAAUl8C,IAC/B,MAAMjB,SAAciB,EACdo0U,EAA8B,WAATr1U,GAA8B,WAATA,EAChD,GAAIo1U,GAAmBC,EAAoB,CACzC,MAAMjqS,EAAY8gM,EAAU/xO,OAAS,EAC/B4jD,EAAYmuL,EAAU9gM,GAC5B8gM,EAAU9gM,GAAa,GAAG2S,IAAY98C,GACxC,MACEirO,EAAUrxO,KAAKoG,GAEjBm0U,EAAkBC,CAAkB,IAE/BxoH,EAAAA,SAAexmN,IAAI6lO,GAAWjrO,GAjCvC,SAA6BA,EAAOk0U,GAClC,GAAc,OAAVl0U,QAA4BgF,IAAVhF,EACpB,OAEF,MAAM86G,EAAQo5N,EAAe,IAAM,GACnC,MAAqB,kBAAVl0U,GAAuC,kBAAVA,GAAsBo/F,GAASp/F,EAAMjB,OAAS+0U,GAAY9zU,EAAM4vC,MAAMsM,UACrG0yD,GAAa5uG,EAAO,CACzBk8C,SAAUl8C,EAAM4vC,MAAMsM,SAAShrC,MAAM,IAAIlU,KAAK89G,KAG9C1b,GAASp/F,GACJ8zU,GAAY9zU,GAAsB4rN,EAAAA,cAAoB,OAAQ,KAAM5rN,EAAMkR,MAAM,IAAIlU,KAAK89G,IAAuB8wG,EAAAA,cAAoB,OAAQ,KAAM5rN,GAEvJmwG,GAAWnwG,GACO4rN,EAAAA,cAAoB,OAAQ,KAAM5rN,GAEjDA,CACT,CAgBgDq0U,CAAoBr0U,EAAOk0U,IAC3E,CAKiC,CAAC,UAAW,UAAW,UAAU33U,OAAOw+O,GAAmBy4E,KC7D5F,SADsB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,kUAAsU,KAAQ,UAAW,MAAS,YCM/f,IAAI8gB,GAAkB,SAAyB1kS,EAAON,GACpD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMuqI,KAEV,EAOA,SAJ2B3oH,EAAAA,WAAiB0oH,ICG5C,IAdiChlO,EAAAA,EAAAA,aAAW,CAAC1/D,EAAON,KAClD,MAAM,UACJhwC,EAAS,MACTjC,EAAK,SACL6+C,EAAQ,UACRm1L,GACEzhM,EACE4kS,EAAiBjpH,KAAW,GAAG8lB,SAAkB/xO,GACvD,OAAoBssN,EAAAA,cAAoB,OAAQ,CAC9Ct8K,IAAKA,EACLhwC,UAAWk1U,EACXn3U,MAAOA,GACN6+C,EAAS,ICTRu4R,IAAgCnlO,EAAAA,EAAAA,aAAW,CAAC1/D,EAAON,KACvD,MAAM,UACJ+hM,EAAS,UACT/xO,EAAS,MACTjC,EAAK,cACLq3U,GACE9kS,EACE+kS,EAAgBppH,KAAW,GAAG8lB,iBAA0B/xO,GAC9D,OAAoBssN,EAAAA,cAAoBgpH,GAAa,CACnDvjG,UAAWA,EACX/xO,UAAWq1U,EACXt3U,MAAOA,EACPiyC,IAAKA,GACSs8K,EAAAA,cAAoB0oH,GAAiB,CACnDh1U,UAAWo1U,IACV,IAECG,GAAoBA,KAAA,CACxB76U,MAAO,EACP0J,QAAS,EACT4zE,UAAW,aAEPw9P,GAAen1U,IAAQ,CAC3B3F,MAAO2F,EAAKoyG,YACZruG,QAAS,EACT4zE,UAAW,aA+Cb,GA7C2B1nC,IACzB,MAAM,UACJyhM,EAAS,QACTtnG,EAAO,UACPgrM,EAAS,UACTz1U,EAAS,MACTjC,EAAK,MACL23U,GACEplS,EACEgiN,IAAY7nH,EAClB,OAAIgrM,EACkBnpH,EAAAA,cAAoB6oH,GAAkB,CACxDpjG,UAAWA,EACX/xO,UAAWA,EACXjC,MAAOA,IAGSuuN,EAAAA,cAAoB6pC,GAAW,CACjD7D,QAASA,EAETkE,WAAY,GAAGzkB,wBACf4gB,cAAe+iF,EACfjjF,aAAcijF,EACd7iF,aAAc6iF,EACdp/E,eAAe,EACfnD,cAAeoiF,GACfjiF,eAAgBkiF,GAChBpiF,aAAcmiF,GACdhiF,cAAeiiF,GACfniF,aAAcmiF,GACdhiF,cAAe+hF,KACd,CAAC7xL,EAAM1zG,KACR,IACEhwC,UAAWy3P,EACX15P,MAAOw+P,GACL74G,EACJ,MAAMuyG,EAAcx3P,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG9D,GAAQw+P,GAC5D,OAAoBjwC,EAAAA,cAAoB6oH,GAAkB,CACxDpjG,UAAWA,EACX/xO,UAAWisN,KAAWjsN,EAAWy3P,GACjC15P,MAAOk4P,EACPjmN,IAAKA,GACL,GACF,EC7EE2lS,GAAuBA,CAACC,EAAe36S,KAAgB,CAE3D,CAAC,aAAa26S,KAAkB,CAC9B,qBAAsB,CACpB,CAAC,UAAUA,KAAkB,CAC3B,mBAAoB,CAClBhb,qBAAsB3/R,KAI5B,sBAAuB,CACrB,CAAC,UAAU26S,KAAkB,CAC3B,mBAAoB,CAClBC,uBAAwB56S,QAoDlC,GA9CsBmmF,IACpB,MAAM,aACJu0K,EAAY,SACZ9/P,EAAQ,UACRc,EAAS,iBACTm/S,EAAgB,gBAChB90C,GACE5/K,EACJ,MAAO,CACL,CAAC,GAAGu0K,WAAuB,CAAC,CAC1B7xR,SAAU,WACV7E,QAAS,cAET,CAAC,aAAa02R,KAAiB,CAC7B,qBAAsB,CACpB,CAAC,UAAUA,KAAiB,CAC1BogD,qBAAsB,EACtBC,mBAAoB,IAGxB,sBAAuB,CACrBla,kBAAmB16M,EAAMq6J,KAAK9kP,GAAWm6L,KAAK,GAAGp/C,QACjD,CAAC,UAAUikH,KAAiB,CAC1BsgD,uBAAwB,EACxBC,qBAAsB,KAI5B,CAACvgD,GAAe,CACd7xR,SAAU,WACVE,OAAQ,EACR,6BAA8B,CAC5BA,OAAQ,GAEV,cAAe,CACbA,OAAQ,IAGZ,CAAC,GAAG2xR,eAA2B,CAC7B9/P,aAIJ8/S,GAAqB,GAAGhgD,YAAwBmgD,GAAmBH,GAAqB,GAAGhgD,WAAuBqL,IACnH,ECxDH,IAAIv6D,GAAY,CAAC,KACfiO,GAAa,CAAC,KAELyhG,GAAiB,SAAwB9+U,GAClD,OAAO4C,KAAK22B,MAAMjxB,OAAOtI,GAAS,GACpC,EAkBW++U,GAAqB,SAAUC,GACxC9mG,GAAU6mG,EAAOC,GACjB,IAAIvjT,EAAS08M,GAAa4mG,GAC1B,SAASA,EAAM18S,GAEb,OADA+1M,GAAgBh3O,KAAM29U,GACftjT,EAAOt6B,KAAKC,KAtBF,SAAwBihC,GAC3C,GAAIA,aAAiBggP,GACnB,OAAOhgP,EAET,GAAIA,GAA4B,YAAnBz+B,EAAAA,GAAAA,GAAQy+B,IAAuB,MAAOA,GAAS,MAAOA,EAAO,CACxE,IAAIgqH,EAAOhqH,EACT9mB,EAAI8wI,EAAK9wI,EAEX,OAAOq+N,GAAcA,GAAc,CAAC,EADzBuB,GAAyB9uF,EAAM+iF,KACM,CAAC,EAAG,CAClD94M,EAAG/a,GAEP,CACA,MAAqB,kBAAV8mB,GAAsB,MAAMjkB,KAAKikB,GACnCA,EAAMvtB,QAAQ,MAAO,OAEvButB,CACT,CAM6B48S,CAAe58S,GAC1C,CAyBA,OAxBAg2M,GAAa0mG,EAAO,CAAC,CACnB74U,IAAK,cACLlG,MAAO,WACL,IAAIgmN,EAAM5kN,KAAK89U,QACXnvN,EAAa+uN,GAAuB,IAAR94H,EAAIjxL,GAChCi7F,EAAY8uN,GAAuB,IAAR94H,EAAIzqM,GAC/Bs0G,EAAMivN,GAAe94H,EAAIn4M,GACzBuhH,EAAQ42F,EAAI1qM,EACZ6jU,EAAY,OAAOv5U,OAAOiqH,EAAK,MAAMjqH,OAAOmqH,EAAY,OAAOnqH,OAAOoqH,EAAW,MACjFovN,EAAa,QAAQx5U,OAAOiqH,EAAK,MAAMjqH,OAAOmqH,EAAY,OAAOnqH,OAAOoqH,EAAW,OAAOpqH,OAAOwpH,EAAM+pD,QAAkB,IAAV/pD,EAAc,EAAI,GAAI,KACzI,OAAiB,IAAVA,EAAc+vN,EAAYC,CACnC,GACC,CACDl5U,IAAK,QACLlG,MAAO,WACL,IAAIq/U,EAAcj+U,KAAKmiR,QACrBjtP,EAAI+oT,EAAY/oT,EAElB,OAAOsjN,GAAcA,GAAc,CAAC,EADzBuB,GAAyBkkG,EAAahiG,KACD,CAAC,EAAG,CAClD9hO,EAAG+a,EACHhb,EAAGla,KAAKka,GAEZ,KAEKyjU,CACT,CAhCgC,CAgC9B18D,IC3DSwF,GAAgB,SAAuBxlP,GAChD,OAAIA,aAAiB08S,GACZ18S,EAEF,IAAI08S,GAAM18S,EACnB,EAC0BwlP,GAAc,WCJjC,IAAIy3D,GAAgC,WAoCzC,OAAOjnG,IAnCP,SAASinG,EAAiBj9S,GAExB,IAAI3E,EAGJ,GAJA06M,GAAgBh3O,KAAMk+U,GAEtBl+U,KAAKm+U,SAAU,EAEXl9S,aAAiBi9S,EAOnB,OANAl+U,KAAKo+U,UAAYn9S,EAAMm9S,UAAUt2U,QACjC9H,KAAKqvL,OAAiC,QAAvB/yJ,EAAK2E,EAAMouJ,cAA2B,IAAP/yJ,OAAgB,EAASA,EAAGjvB,KAAImlI,IAAQ,CACpFvxG,MAAO,IAAIi9S,EAAiB1rM,EAAKvxG,OACjCo9S,QAAS7rM,EAAK6rM,iBAEhBr+U,KAAKm+U,QAAUl9S,EAAMk9S,SAGvB,MAAMjsU,EAAUrR,MAAMqR,QAAQ+uB,GAC1B/uB,GAAW+uB,EAAM9/B,QACnBnB,KAAKqvL,OAASpuJ,EAAM5zB,KAAI49I,IACtB,IACEhqH,MAAO7mB,EAAC,QACRikU,GACEpzL,EACJ,MAAO,CACLhqH,MAAO,IAAIi9S,EAAiB9jU,GAC5BikU,UACD,IAEHr+U,KAAKo+U,UAAY,IAAIE,GAAQt+U,KAAKqvL,OAAO,GAAGpuJ,MAAMm9S,YAElDp+U,KAAKo+U,UAAY,IAAIE,GAAQpsU,EAAU,GAAK+uB,KAEzCA,GAAS/uB,IAAYlS,KAAKqvL,UAC7BrvL,KAAKo+U,UAAYp+U,KAAKo+U,UAAUp8D,KAAK,GACrChiR,KAAKm+U,SAAU,EAEnB,GACsC,CAAC,CACrCr5U,IAAK,QACLlG,MAAO,WACL,OAAOoB,KAAKo+U,UAAUN,OACxB,GACC,CACDh5U,IAAK,cACLlG,MAAO,WACL,OAAOoB,KAAKo+U,UAAUG,aACxB,GACC,CACDz5U,IAAK,QACLlG,MAAO,WACL,OAlDiBA,EAkDHoB,KAAKo9L,cAlDKpvE,EAkDUhuH,KAAKo+U,UAAUlkU,EAAI,EAlDnBtb,EADb4/U,EAAC5/U,EAAOovH,KAAqB,OAAVpvH,QAA4B,IAAVA,OAAmB,EAASA,EAAM8U,QAAQ,UAAW,IAAI1O,MAAM,EAAGgpH,EAAQ,EAAI,KAAO,GACrGwwN,CAAY5/U,EAAOovH,GAAS,GAAtDywN,IAAC7/U,EAAOovH,CAmD1B,GACC,CACDlpH,IAAK,cACLlG,MAAO,WACL,OAAOoB,KAAKo+U,UAAUhhJ,aACxB,GACC,CACDt4L,IAAK,QACLlG,MAAO,WACL,OAAOoB,KAAKo+U,UAAUx6D,OACxB,GACC,CACD9+Q,IAAK,cACLlG,MAAO,WACL,OAAOoB,KAAKo+U,UAAUv6D,aACxB,GACC,CACD/+Q,IAAK,aACLlG,MAAO,WACL,QAASoB,KAAKqvL,SAAWrvL,KAAKm+U,OAChC,GACC,CACDr5U,IAAK,YACLlG,MAAO,WACL,OAAOoB,KAAKqvL,QAAU,CAAC,CACrBpuJ,MAAOjhC,KACPq+U,QAAS,GAEb,GACC,CACDv5U,IAAK,cACLlG,MAAO,WACL,MAAM,OACJywL,GACErvL,KAEJ,GAAIqvL,EAAQ,CAEV,MAAO,0BADWA,EAAOhiL,KAAI+M,GAAK,GAAGA,EAAE6mB,MAAM4iP,iBAAiBzpQ,EAAEikU,aAAYp5U,KAAK,QAEnF,CACA,OAAOjF,KAAKo+U,UAAUv6D,aACxB,GACC,CACD/+Q,IAAK,SACLlG,MAAO,SAAgBqiC,GACrB,SAAKA,GAASjhC,KAAK0+U,eAAiBz9S,EAAMy9S,gBAGrC1+U,KAAK0+U,aAGH1+U,KAAKqvL,OAAOluL,SAAW8/B,EAAMouJ,OAAOluL,QAAUnB,KAAKqvL,OAAOh+K,OAAM,CAAC+I,EAAGlZ,KACzE,MAAM6J,EAASk2B,EAAMouJ,OAAOnuL,GAC5B,OAAOkZ,EAAEikU,UAAYtzU,EAAOszU,SAAWjkU,EAAE6mB,MAAM2hK,OAAO73L,EAAOk2B,MAAM,IAJ5DjhC,KAAKo9L,gBAAkBn8J,EAAMm8J,cAMxC,IAEJ,CA3G2C,GCK3C,MAIauhJ,GAAWA,CAAC//U,EAAOggV,KAC9B,MAAM,EACJt/U,EAAC,EACDs2B,EAAC,EACDzb,EAAC,EACDD,GACEtb,EAAMglR,QACJ1B,EAAM,IAAIo8D,GAAQ1/U,EAAMilR,eAAeV,aAAay7D,GAAcz8D,QACxE,OAAIjoQ,GAAK,GAEAgoQ,EAAIhtP,EAAI,GAEN,KAAJ51B,EAAgB,KAAJs2B,EAAgB,KAAJzb,EAAY,GAAG,ECpBnC0kU,GAAel2N,IAC1B,MAAM,cACJ4pL,EAAa,aACbusC,GACEn2N,EAMJ,OALoBgyK,GAAWhyK,EAAO,CACpCo2N,wBAAyBxsC,EACzBysC,sBAAuB,EACvBC,uBAAwBH,GAER,EAEPxsC,GAAwB3pL,IACnC,IAAIrsF,EAAIC,EAAIiC,EAAIC,EAAI+I,EAAIC,EACxB,MAAMy3S,EAAmD,QAAhC5iT,EAAKqsF,EAAMu2N,uBAAoC,IAAP5iT,EAAgBA,EAAKqsF,EAAMvrF,SACtF+hT,EAAuD,QAAlC5iT,EAAKosF,EAAMw2N,yBAAsC,IAAP5iT,EAAgBA,EAAKosF,EAAMvrF,SAC1FgiT,EAAuD,QAAlC5gT,EAAKmqF,EAAMy2N,yBAAsC,IAAP5gT,EAAgBA,EAAKmqF,EAAM26K,WAC1F+7C,EAAuD,QAAlC5gT,EAAKkqF,EAAM02N,yBAAsC,IAAP5gT,EAAgBA,EAAKgG,GAAcy6S,GAClGI,EAA2D,QAApC93S,EAAKmhF,EAAM22N,2BAAwC,IAAP93S,EAAgBA,EAAK/C,GAAc06S,GACtGI,EAA2D,QAApC93S,EAAKkhF,EAAM42N,2BAAwC,IAAP93S,EAAgBA,EAAKhD,GAAc26S,GACtGI,EAAiBb,GAAS,IAAIT,GAAiBv1N,EAAM28K,cAAe,QAAU,OAAS,OACvFm6C,EAAoBhkB,GAAax8R,QAAO,CAACrC,EAAMqpQ,IAAajgS,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGwzB,GAAO,CACvG,CAAC,GAAGqpQ,gBAAwB,KAAKjjS,GAAK2lH,EAAM2kL,0BAA0B/I,GAAc57K,EAAM,GAAGs9K,MAAct9K,EAAM+8K,uBAC/G,CAAC,GACL,OAAO1/R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGq2U,GAAoB,CACzD58S,WAAY,IACZ68S,cAAe,KAAK/2N,EAAM2kL,2BAA2B3kL,EAAMilL,oBAC3D+xC,cAAe,KAAKh3N,EAAM2kL,2BAA2B3kL,EAAMklL,iBAC3D+xC,aAAc,KAAKj3N,EAAM2kL,2BAA2B3kL,EAAMwkL,oBAC1D3mB,aAAc79J,EAAMkkL,oBACpBgzC,YAAal3N,EAAMkkL,oBACnBizC,oBAAqBn3N,EAAMm9K,YAC3Bi6C,kBAAmBp3N,EAAM+8K,iBACzBs6C,QAAS,cACTC,wBAAyBt3N,EAAM+8K,iBAC/B6M,cAAe5pL,EAAM+lL,yBAA2B/lL,EAAMzqF,UACtDgiT,gBAAiBv3N,EAAM+lL,yBAA2B/lL,EAAMzqF,UACxDiiT,gBAAiB,EAAIx3N,EAAMzqF,UAC3B4gT,aAAc,UACdsB,eAAgB,UAChBC,eAAgB,UAChBhD,iBAAkB10N,EAAMy+K,kBACxBk5C,YAAa,cACbC,cAAe53N,EAAMk2K,UACrB2hD,mBAAoB73N,EAAMk2K,UAC1B4hD,oBAAqB93N,EAAMk2K,UAC3B6hD,YAAa/3N,EAAMy8K,kBACnBu7C,aAAch4N,EAAMk2K,UACpB+hD,UAAWj4N,EAAM+8K,iBACjBm7C,mBAAoBl4N,EAAMm9K,YAC1Bg7C,2BAA4Bn4N,EAAMm9K,YAClCi7C,eAAgBp4N,EAAM+8K,iBACtBs7C,kBAAmBr4N,EAAMy+K,kBACzB65C,wBAAyBt4N,EAAMy+K,kBAC/B85C,gBAAiBv4N,EAAM+8K,iBACvBy7C,mBAAoBx4N,EAAM0+K,mBAC1B+5C,yBAA0Bz4N,EAAM0+K,mBAChCm4C,iBACAN,kBACAC,oBACAC,oBACAC,oBACAC,sBACAC,sBACAlH,aAAc72U,KAAKwhB,KAAK2lG,EAAM84K,cAAgBy9C,EAAkBG,GAAqB,EAAI12N,EAAMzqF,UAAW,GAC1GmjT,eAAgB7/U,KAAKwhB,KAAK2lG,EAAMg6K,gBAAkBw8C,EAAoBG,GAAuB,EAAI32N,EAAMzqF,UAAW,GAClHojT,eAAgB9/U,KAAKwhB,KAAK2lG,EAAMk6K,gBAAkBu8C,EAAoBG,GAAuB,EAAI52N,EAAMzqF,UAAW,IAClH,EClEEqjT,GAAuB54N,IAC3B,MAAM,aACJu0K,EAAY,QACZE,EAAO,WACPv6P,EAAU,eACVkrQ,EAAc,mBACd7O,EAAkB,gBAClB8B,EAAe,SACf+N,EAAQ,KACR/rB,GACEr6J,EACJ,MAAO,CACL,CAACu0K,GAAe,CACdznF,QAAS,OACTpqM,SAAU,WACV7E,QAAS,cACTg7U,IAAK74N,EAAMomL,SACXjP,WAAY,SACZyT,eAAgB,SAChB1wQ,aACAw+G,WAAY,SACZ3+G,UAAW,SACXs5F,gBAAiB,OACjBR,WAAY,cACZsZ,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,uBAC1C1mQ,OAAQ,UACRu2B,WAAY,OAAOo4D,EAAMkiL,qBAAqBliL,EAAMq4K,kBACpD32I,WAAY,OACZo3L,YAAa,eACbxgT,MAAO0nF,EAAMk2K,UACb,iBAAkB,CAChB1kD,cAAe,QAGjB,CAAC,GAAG+iD,gBnKlBe,CACvB12R,QAAS,cACTs5R,WAAY,SACZ7+P,MAAO,UACPlB,UAAW,SACXzC,WAAY,EACZoF,UAAW,SACXs8F,cAAe,OAEfr8F,cAAe,WACfo9P,cAAe,qBACf,yBAA0B,cAC1B,0BAA2B,YAC3B,MAAO,CACLziQ,WAAY,GAEd4pG,IAAK,CACH1gI,QAAS,iBmKEP,MAAO,CACLy6B,MAAO,gBAET,mBAAoB2+P,GAAcj3K,GAClC,CAAC,IAAIu0K,qCAAiD,CACpDr/J,cAAe,UAEjB,CAAC,IAAIq/J,+BAA0CE,MAAa,CAC1DkmC,gBAAiB,UACjBzlM,cAAe,UAEjB,CAAC,IAAIq/J,eAA2B,CAC9BqV,cAAe,EAEf,CAAC,IAAIrV,kBAA8B,CACjCx3O,KAAM,QAER,CAAC,IAAIw3O,WAAuB,CAC1Bj7R,MAAO,SAIX,CAAC,IAAIi7R,aAAyB,CAC5BvxR,QAASoiS,EACT/zQ,OAAQ,WAEV,CAAC,GAAGkjQ,kBAA8B,CAChC3sO,WAAY,CAAC,QAAS,UAAW,UAAUljD,KAAIkjD,GAAc,GAAGA,KAAc2uO,KAAsB8B,MAAmB/7R,KAAK,MAG9H,CAAC,SAASi4R,eAA2B,CACnC,CAAC,GAAGA,yBAAqC,CACvC,gCAAiC,CAC/BomC,gBAAiBtgD,EAAK+rB,GAAU12E,KAAK,GAAGp/C,SAE1C,kCAAmC,CACjCqqJ,gBAAiB,GAEnB,gBAAiB,CACfA,gBAAiB,GAEnB,iBAAkB,CAChBA,gBAAiBtgD,EAAK+rB,GAAU12E,KAAK,GAAGp/C,WAI9C,aAAc,CACZo5H,cAAe,cACf,CAAC,GAAGnV,yBAAqC,CACvC,gCAAiC,CAC/BmmC,kBAAmBrgD,EAAK+rB,GAAU12E,KAAK,GAAGp/C,SAE5C,kCAAmC,CACjCoqJ,kBAAmB,GAErB,gBAAiB,CACfA,kBAAmB,GAErB,iBAAkB,CAChBA,kBAAmBrgD,EAAK+rB,GAAU12E,KAAK,GAAGp/C,YAKnD,EAEGyoK,GAA4BA,CAACC,EAAQC,EAAYC,KAAgB,CACrE,CAAC,wBAAwBF,eAAqB,CAC5C,UAAWC,EACX,WAAYC,KAIVC,GAAuBn5N,IAAS,CACpC78E,SAAU68E,EAAM84K,cAChBwhC,mBAAoB,EACpBL,iBAAkB,EAClBvhC,aAAc,QAEV0gD,GAAsBp5N,IAAS,CACnC04K,aAAc14K,EAAM84K,cACpBwhC,mBAAoBt6M,EAAMq6J,KAAKr6J,EAAM84K,eAAe9qE,IAAI,GAAG19C,QAC3D2pJ,iBAAkBj6M,EAAMq6J,KAAKr6J,EAAM84K,eAAe9qE,IAAI,GAAG19C,UAErD+oK,GAAmBr5N,IAAS,CAChC3uF,OAAQ,cACRwI,YAAammF,EAAMm3N,oBACnB7+S,MAAO0nF,EAAM42K,kBACb/jK,WAAY7S,EAAM2jL,yBAClBprK,UAAW,SAEP+gN,GAAsBA,CAACN,EAAQnmN,EAAYx7F,EAAWwC,EAAa0/S,EAAmBpC,EAAqB8B,EAAYC,KAAgB,CAC3I,CAAC,IAAIF,sBAA4B37U,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC3D63B,MAAOjB,QAAa/yB,EACpBuuH,aACAh5F,YAAaA,QAAev1B,EAC5Bi0H,UAAW,QACVwgN,GAA0BC,EAAQ37U,OAAOoD,OAAO,CACjDoyH,cACComN,GAAa57U,OAAOoD,OAAO,CAC5BoyH,cACCqmN,KAAgB,CACjB,aAAc,CACZ7nT,OAAQ,cACRiH,MAAOihT,QAAqBj1U,EAC5Bu1B,YAAas9S,QAAuB7yU,OAIpCk1U,GAA8Bx5N,IAAS,CAC3C,CAAC,gBAAgBA,EAAMu0K,yBAA0Bl3R,OAAOoD,OAAO,CAAC,EAAG44U,GAAiBr5N,MAEhFy5N,GAA6Bz5N,IAAS,CAC1C,CAAC,gBAAgBA,EAAMu0K,yBAA0B,CAC/CljQ,OAAQ,cACRiH,MAAO0nF,EAAM42K,qBAIX8iD,GAAwBA,CAAC15N,EAAOi5N,EAAYC,EAAa3+L,KAC7D,MACMo/L,EADiBp/L,GAAW,CAAC,OAAQ,QAAQ/yI,SAAS+yI,GACZk/L,GAA6BD,GAC7E,OAAOn8U,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGk5U,EAAuB35N,IAAS+4N,GAA0B/4N,EAAMu0K,aAAc0kD,EAAYC,GAAa,EAE1IU,GAAsBA,CAAC55N,EAAO3oF,EAAWw7F,EAAYomN,EAAYC,KAAgB,CACrF,CAAC,IAAIl5N,EAAMu0K,8BAA+Bl3R,OAAOoD,OAAO,CACtD63B,MAAOjB,EACPw7F,cACC6mN,GAAsB15N,EAAOi5N,EAAYC,MAExCW,GAA+BA,CAAC75N,EAAOnmF,EAAag5F,EAAYomN,EAAYC,KAAgB,CAChG,CAAC,IAAIl5N,EAAMu0K,mCAAmCv0K,EAAMu0K,+BAAgCl3R,OAAOoD,OAAO,CAChGo5B,cACAg5F,cACC6mN,GAAsB15N,EAAOi5N,EAAYC,MAExCY,GAAuB95N,IAAS,CACpC,CAAC,IAAIA,EAAMu0K,+BAAgC,CACzC2mC,YAAa,YAGX6e,GAAuBA,CAAC/5N,EAAO6S,EAAYomN,EAAYC,KAAgB,CAC3E,CAAC,IAAIl5N,EAAMu0K,+BAAgCl3R,OAAOoD,OAAO,CACvD83H,UAAW,OACX1F,cACC6mN,GAAsB15N,EAAOi5N,EAAYC,MAExCc,GAAyBA,CAACh6N,EAAO3oF,EAAWkjH,EAAS0+L,EAAYC,KAAgB,CACrF,CAAC,IAAIl5N,EAAMu0K,wBAAwBh6I,KAAYl9I,OAAOoD,OAAO,CAC3D63B,MAAOjB,EACPkhG,UAAW,QACVmhN,GAAsB15N,EAAOi5N,EAAYC,EAAa3+L,MAgDrD0/L,GAAwBj6N,GAAS3iH,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC3G63B,MAAO0nF,EAAMg4N,aACbz/M,UAAWvY,EAAM+2N,eAChB6C,GAAoB55N,EAAOA,EAAM62N,eAAgB72N,EAAM28K,aAAc,CACtErkQ,MAAO0nF,EAAM62N,eACbhkN,WAAY7S,EAAM48K,mBACjB,CACDtkQ,MAAO0nF,EAAM62N,eACbhkN,WAAY7S,EAAM68K,sBACfi9C,GAAqB95N,IAAS+5N,GAAqB/5N,EAAOA,EAAMy8K,kBAAmB,CACtF5pK,WAAY7S,EAAMw8K,oBACjB,CACD3pK,WAAY7S,EAAMu8K,aACfy9C,GAAuBh6N,EAAOA,EAAM43N,cAAe,OAAQ,CAC9Dt/S,MAAO0nF,EAAMw2K,eACb3jK,WAAY7S,EAAM23N,aACjB,CACDr/S,MAAO0nF,EAAMy2K,mBACV6iD,GAAoBt5N,EAAMu0K,aAAcv0K,EAAMq3N,QAASr3N,EAAMo3N,kBAAmBp3N,EAAMs3N,wBAAyBt3N,EAAM42K,kBAAmB52K,EAAMm9K,cAC7I+8C,GAAwBl6N,GAAS3iH,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC3G63B,MAAO0nF,EAAMu3K,aACbh/J,UAAWvY,EAAMg3N,eAChB6C,GAA6B75N,EAAOA,EAAMu3K,aAAcv3K,EAAM+8K,iBAAkB,CACjFzkQ,MAAO0nF,EAAM2+K,sBACb9kQ,YAAammF,EAAMy+K,kBACnB5rK,WAAY7S,EAAM+8K,kBACjB,CACDzkQ,MAAO0nF,EAAM6+K,uBACbhlQ,YAAammF,EAAM0+K,mBACnB7rK,WAAY7S,EAAM+8K,oBACf+8C,GAAqB95N,IAAS+5N,GAAqB/5N,EAAOA,EAAMs+K,eAAgB,CACnFzrK,WAAY7S,EAAMu+K,qBACjB,CACD1rK,WAAY7S,EAAM+2K,sBACfijD,GAAuBh6N,EAAOA,EAAMq2K,UAAW,OAAQ,CAC1D/9P,MAAO0nF,EAAM2+K,sBACb9rK,WAAY7S,EAAMs+K,gBACjB,CACDhmQ,MAAO0nF,EAAM6+K,uBACbhsK,WAAY7S,EAAM+2K,sBACfuiD,GAAoBt5N,EAAMu0K,aAAcv0K,EAAMq3N,QAASr3N,EAAMu3K,aAAcv3K,EAAMu3K,aAAcv3K,EAAM42K,kBAAmB52K,EAAMm9K,YAAa,CAC9I7kQ,MAAO0nF,EAAMy+K,kBACb5kQ,YAAammF,EAAMy+K,mBAClB,CACDnmQ,MAAO0nF,EAAM0+K,mBACb7kQ,YAAammF,EAAM0+K,sBAEfy7C,GAAoBn6N,GAAS3iH,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CACnI63B,MAAO0nF,EAAM03K,WACbn/J,UAAWvY,EAAMi3N,cAChB2C,GAAoB55N,EAAOA,EAAMk3N,YAAal3N,EAAM03K,WAAY,CACjE7kK,WAAY7S,EAAM4/K,iBACjB,CACD/sK,WAAY7S,EAAM6/K,oBACfg6C,GAA6B75N,EAAOA,EAAM03K,WAAY13K,EAAM+8K,iBAAkB,CACjFzkQ,MAAO0nF,EAAM4/K,gBACb/lQ,YAAammF,EAAM2/K,uBAClB,CACDrnQ,MAAO0nF,EAAM6/K,iBACbhmQ,YAAammF,EAAM6/K,oBAChBi6C,GAAqB95N,IAAS+5N,GAAqB/5N,EAAOA,EAAMu/K,aAAc,CACjF1sK,WAAY7S,EAAMq+K,yBACjB,CACDxrK,WAAY7S,EAAMy/K,sBACfu6C,GAAuBh6N,EAAOA,EAAM03K,WAAY,OAAQ,CAC3Dp/P,MAAO0nF,EAAM4/K,gBACb/sK,WAAY7S,EAAMu/K,cACjB,CACDjnQ,MAAO0nF,EAAM4/K,gBACb/sK,WAAY7S,EAAMy/K,sBACfu6C,GAAuBh6N,EAAOA,EAAM03K,WAAY,OAAQ,CAC3Dp/P,MAAO0nF,EAAM4/K,iBACZ,CACDtnQ,MAAO0nF,EAAM6/K,oBACVy5C,GAAoBt5N,EAAMu0K,aAAcv0K,EAAMq3N,QAASr3N,EAAM03K,WAAY13K,EAAM03K,WAAY13K,EAAM42K,kBAAmB52K,EAAMm9K,YAAa,CAC1I7kQ,MAAO0nF,EAAM4/K,gBACb/lQ,YAAammF,EAAM4/K,iBAClB,CACDtnQ,MAAO0nF,EAAM6/K,iBACbhmQ,YAAammF,EAAM6/K,oBAEfu6C,GAAsBp6N,IAC1B,MAAM,aACJu0K,GACEv0K,EACJ,OAAO3iH,OAAOoD,OAAO,CACnB,CAAC,GAAG8zR,mBAA+B0lD,GAAsBj6N,GACzD,CAAC,GAAGu0K,mBAA+B2lD,GAAsBl6N,GACzD,CAAC,GAAGu0K,qBAAiC4lD,GAAkBn6N,IArI/BA,KAC1B,MAAM,aACJu0K,GACEv0K,EACJ,OAAO8yM,GAAax8R,QAAO,CAACrC,EAAMqpQ,KAChC,MAAM61B,EAAYnzM,EAAM,GAAGs9K,MACrB21B,EAAajzM,EAAM,GAAGs9K,MACtB+8C,EAAar6N,EAAM,GAAGs9K,MACtBg9C,EAAkBt6N,EAAM,GAAGs9K,MAC3B41B,EAAmBlzM,EAAM,GAAGs9K,MAC5Bi9C,EAAcv6N,EAAM,GAAGs9K,MAC7B,OAAOjgS,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGwzB,GAAO,CAC5C,CAAC,IAAIsgQ,WAAsB+I,KAAajgS,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC1H63B,MAAO66R,EACP56L,UAAWvY,EAAM,GAAGs9K,iBACnBs8C,GAAoB55N,EAAOA,EAAMkkL,oBAAqBivB,EAAW,CAClEtgM,WAAYwnN,GACX,CACDxnN,WAAY0nN,KACTV,GAA6B75N,EAAOmzM,EAAWnzM,EAAM+8K,iBAAkB,CAC1EzkQ,MAAO+hT,EACPxgT,YAAawgT,EACbxnN,WAAY7S,EAAM+8K,kBACjB,CACDzkQ,MAAOiiT,EACP1gT,YAAa0gT,EACb1nN,WAAY7S,EAAM+8K,oBACf+8C,GAAqB95N,IAAS+5N,GAAqB/5N,EAAOizM,EAAY,CACzEpgM,WAAYynN,GACX,CACDznN,WAAYqgM,KACT8mB,GAAuBh6N,EAAOmzM,EAAW,OAAQ,CACpD76R,MAAO+hT,GACN,CACD/hT,MAAOiiT,KACJP,GAAuBh6N,EAAOmzM,EAAW,OAAQ,CACpD76R,MAAO+hT,EACPxnN,WAAYogM,GACX,CACD36R,MAAOiiT,EACP1nN,WAAYqgM,MAEd,GACD,CAAC,EAAE,EA2FHsnB,CAAoBx6N,GAAO,EAG1By6N,GAA2Bz6N,GAAS3iH,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGo5U,GAA6B75N,EAAOA,EAAMk4N,mBAAoBl4N,EAAMi4N,UAAW,CACnL3/S,MAAO0nF,EAAMq4N,kBACbx+S,YAAammF,EAAMs4N,wBACnBzlN,WAAY7S,EAAMo4N,gBACjB,CACD9/S,MAAO0nF,EAAMw4N,mBACb3+S,YAAammF,EAAMy4N,yBACnB5lN,WAAY7S,EAAMu4N,mBACfyB,GAAuBh6N,EAAOA,EAAM43N,cAAe,OAAQ,CAC9Dt/S,MAAO0nF,EAAM63N,mBACbhlN,WAAY7S,EAAM+3N,aACjB,CACDz/S,MAAO0nF,EAAM83N,oBACbjlN,WAAY7S,EAAMqkL,qBACfu1C,GAAoB55N,EAAOA,EAAM69J,aAAc79J,EAAMu3K,aAAc,CACtE1kK,WAAY7S,EAAMy+K,kBAClBnmQ,MAAO0nF,EAAM69J,cACZ,CACDhrJ,WAAY7S,EAAM0+K,mBAClBpmQ,MAAO0nF,EAAM69J,gBACVm8D,GAAuBh6N,EAAOA,EAAMq2K,UAAW,OAAQ,CAC1D/9P,MAAO0nF,EAAMw2K,eACb3jK,WAAY7S,EAAM23N,aACjB,CACDr/S,MAAO0nF,EAAMy2K,mBAGTikD,GAAiB,SAAU16N,GAC/B,IAAI2wH,EAAY7pO,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GACpF,MAAM,aACJytR,EAAY,cACZuE,EAAa,SACbrkQ,EAAQ,aACRikQ,EAAY,wBACZ09C,EAAuB,QACvB3hD,EAAO,sBACP4hD,EAAqB,uBACrBC,GACEt2N,EACJ,MAAO,CAAC,CACN,CAAC2wH,GAAY,CACXl8M,WACAz7B,OAAQ8/R,EACRlgQ,QAAS,GAAGv+B,GAAKg8U,MAA0Bh8U,GAAK+7U,KAChD19C,eACA,CAAC,IAAInE,eAA2B,CAC9Bj7R,MAAOw/R,EACP,CAACrE,GAAU,CACThgQ,SAAU6hT,MAMlB,CACE,CAAC,GAAG/hD,IAAeA,WAAsB5jD,KAAcwoG,GAAqBn5N,IAC3E,CACD,CAAC,GAAGu0K,IAAeA,UAAqB5jD,KAAcyoG,GAAoBp5N,IAE9E,EACM26N,GAAyB36N,IAC7B,MAAM46N,EAAY5oD,GAAWhyK,EAAO,CAClCvrF,SAAUurF,EAAMu2N,kBAElB,OAAOmE,GAAeE,EAAW56N,EAAMu0K,aAAa,EAEhDsmD,GAA0B76N,IAC9B,MAAM86N,EAAa9oD,GAAWhyK,EAAO,CACnC84K,cAAe94K,EAAMg6K,gBACrBvlQ,SAAUurF,EAAMw2N,kBAChB59S,QAASonF,EAAMwlL,UACf4wC,wBAAyBp2N,EAAMw3N,gBAC/BnB,sBAAuB,EACvB39C,aAAc14K,EAAM65K,eACpBy8C,uBAAwBt2N,EAAMy3N,iBAEhC,OAAOiD,GAAeI,EAAY,GAAG96N,EAAMu0K,kBAAkB,EAEzDwmD,GAA0B/6N,IAC9B,MAAMg7N,EAAahpD,GAAWhyK,EAAO,CACnC84K,cAAe94K,EAAMk6K,gBACrBzlQ,SAAUurF,EAAMy2N,kBAChBL,wBAAyBp2N,EAAMu3N,gBAC/BlB,sBAAuB,EACvB39C,aAAc14K,EAAM85K,eACpBw8C,uBAAwBt2N,EAAM03N,iBAEhC,OAAOgD,GAAeM,EAAY,GAAGh7N,EAAMu0K,kBAAkB,EAEzD0mD,GAAsBj7N,IAC1B,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAACu0K,GAAe,CACd,CAAC,IAAIA,WAAuB,CAC1Bj7R,MAAO,SAGZ,EAGH,GAAey7R,GAAc,UAAU/0K,IACrC,MAAMk7N,EAAchF,GAAal2N,GACjC,MAAO,CAEP44N,GAAqBsC,GAErBP,GAAuBO,GAAcL,GAAwBK,GAAcH,GAAwBG,GAEnGD,GAAoBC,GAEpBd,GAAoBc,GAEpBT,GAAyBS,GAEzBC,GAAcD,GAAa,GAC1BvxC,GAAuB,CACxB1kB,SAAU,CACR/qP,YAAY,EACZw8S,mBAAmB,EACnBC,qBAAqB,EACrBC,qBAAqB,KCtczB,SAASwE,GAAkBp7N,EAAOq7N,EAAW9gV,GAC3C,MAAM,WACJ+gV,EAAU,MACV1wT,EAAK,YACL2wT,GACEhhV,EACEihV,EAAkBD,EAAc,MAAQ,GACxCE,EAAe,CAAC,QAAS7wT,EAAQ,QAAU,KAAM,UAAUpiB,OAAOY,SAAS1E,KAAIpE,GAAK,KAAKA,KAAKk7U,MAAmBl/U,KAAK,KAC5H,MAAO,CACL,CAAC,cAAc++U,gBAAyB,CACtC1gB,gBAAiB36M,EAAMq6J,KAAKr6J,EAAMzqF,WAAWm6L,KAAK,GAAGp/C,SAEvD,SAAUjzK,OAAOoD,OAAOpD,OAAOoD,OAAO,CACpC,CAACg7U,GAAe,CACd74U,OAAQ,IAET04U,EAAa,CACd,CAAC,IAAIA,KAAe,CAClB14U,OAAQ,IAER,CAAC,GAAI,CACP,CAAC,eAAe44U,KAAoB,CAClC54U,OAAQ,KAIhB,CAEA,SAAS84U,GAAwB/qG,EAAW0qG,EAAW9gV,GACrD,MAAM,YACJghV,GACEhhV,EACEihV,EAAkBD,EAAc,KAAKA,IAAgB,GAC3D,MAAO,CACL,CAAC,cAAcF,qBAA6BA,gBAAwBG,KAAoB,CACtF9iD,aAAc,GAEhB,CAAC,cAAc2iD,eAAuBA,gBAAyB,CAC7D,CAAC,KAAKG,OAAqB7qG,QAAgB6qG,OAAqB7qG,QAAgB6qG,KAAoB,CAClG7G,qBAAsB,EACtBC,mBAAoB,IAGxB,CAAC,cAAcyG,gBAAwBA,eAAwB,CAC7D,CAAC,KAAKG,OAAqB7qG,QAAgB6qG,OAAqB7qG,QAAgB6qG,KAAoB,CAClG3G,uBAAwB,EACxBC,qBAAsB,IAI9B,CACO,SAAS6G,GAAoB37N,GAClC,IAAIzlH,EAAUuM,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAChF8jB,OAAO,GAET,MAAM,aACJ2pQ,GACEv0K,EACE47N,EAAa,GAAGrnD,YACtB,MAAO,CACL,CAACqnD,GAAav+U,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG26U,GAAkBp7N,EAAO47N,EAAYrhV,IAAWmhV,GAAwBnnD,EAAcqnD,EAAYrhV,IAEpJ,CC/DA,SAASshV,GAA0B77N,EAAOq7N,GACxC,MAAO,CAEL,CAAC,cAAcA,gBAAyB,CACtCxlN,aAAc7V,EAAMq6J,KAAKr6J,EAAMzqF,WAAWm6L,KAAK,GAAGp/C,SAEpD,SAAU,CACR,2BAA4B,CAC1B1tK,OAAQ,GAEV,cAAe,CACbA,OAAQ,IAIhB,CAoBO,SAASk5U,GAA4B97N,GAC1C,MAAM47N,EAAa,GAAG57N,EAAMu0K,gCAC5B,MAAO,CACL,CAACqnD,GAAav+U,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGo7U,GAA0B77N,EAAO47N,KAtB1CjrG,EAsBwF3wH,EAAMu0K,aAtBnF8mD,EAsBiGO,EArB5I,CACL,CAAC,cAAcP,qBAA6BA,gBAAyB,CACnE3iD,aAAc,GAEhB,CAAC,SAAS2iD,oBAA4BA,gBAAyB,CAC7D,CAAC,OAAO1qG,UAAkBA,QAAiB,CACzCikG,mBAAoB,EACpBE,qBAAsB,IAG1B,CAAC,SAASuG,mBAA2BA,iBAA0B,CAC7D,CAAC,OAAO1qG,UAAkBA,QAAiB,CACzCkkG,uBAAwB,EACxBF,qBAAsB,QAd9B,IAAyChkG,EAAW0qG,CAwBpD,CCpCA,MAAMU,GAAwB/7N,IAC5B,MAAM,aACJu0K,EAAY,kBACZkK,EAAiB,UACjBlpQ,EAAS,KACT8kP,GACEr6J,EACEg8N,EAAc3hE,EAAK9kP,GAAWm6L,KAAK,GAAGp/C,QACtC2rK,EAAwBlmT,IAC5B,MAAMs8L,EAAW,GAAGkiE,YAAuBx+P,EAAW,YAAc,UAAUw+P,4BAC9E,MAAO,CACL,CAAC,GAAGliE,OAAcA,aAAqB,CACrC3vN,SAAU,WACV/J,IAAKo9B,EAAWimT,EAAc,EAC9BnxC,iBAAkB90Q,EAAW,EAAIimT,EACjCl5U,gBAAiB27R,EACjB3oR,QAAS,KACTxc,MAAOy8B,EAAW,OAASR,EAC3Bv8B,OAAQ+8B,EAAWR,EAAY,QAElC,EAGH,OAAOl4B,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGw7U,KAA0BA,GAAsB,GAAM,EAG/F,GAAermD,GAAqB,CAAC,SAAU,YAAY51K,IACzD,MAAMk7N,EAAchF,GAAal2N,GACjC,MAAO,CAEP27N,GAAoBT,GAAcY,GAA4BZ,GAAca,GAAsBb,GAAa,GAC9GvxC,ICjCH,IAAI3G,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EA+BA,MAAMmxT,GAAgB,CACpBjlV,QAAS,CAAC,UAAW,YACrBolR,QAAS,CAAC,UAAW,SACrB2xB,OAAQ,CAAC,UAAW,UACpB51S,KAAM,CAAC,UAAW,QAClB86B,KAAM,CAAC,UAAW,SAuNdsuK,GArNwC0pB,EAAAA,YAAiB,CAACh8K,EAAON,KACrE,IAAIjb,EAAIC,EACR,MAAM,QACFy1G,GAAU,EACVsnG,UAAW2vC,EAAkB,MAC7BhoP,EAAK,QACLiiH,EAAO,KACPl8I,EAAI,OACJ43T,GAAS,EAAK,MACdtkR,EAAQ,UACRj4B,KAAMyiU,EAAa,OACnBhpT,EACAkoB,SAAU+gS,EAAc,UACxBx9U,EAAS,cACT0wQ,EAAa,SACb9zN,EAAQ,KACR8tJ,EAAI,aACJ+yI,EAAe,QAAO,MACtBC,GAAQ,EAAK,MACbv5N,GAAQ,EAAK,SAEbw5N,EAAW,SACX1xH,WAAY2xH,EACZ7/U,MAAO8/U,EAAc,CAAC,EAAC,gBACvBrP,EAAe,UACfzhQ,GACEz8B,EACJu1D,EAAOu+L,GAAO9zP,EAAO,CAAC,UAAW,YAAa,QAAS,UAAW,OAAQ,SAAU,QAAS,OAAQ,SAAU,WAAY,YAAa,gBAAiB,WAAY,OAAQ,eAAgB,QAAS,QAAS,WAAY,aAAc,QAAS,kBAAmB,cAGjQwtS,EAAar+U,GAAQ,WACpBs+U,EAAaC,IAAiBn4Q,EAAAA,EAAAA,UAAQ,KAC3C,GAAInsC,GAASiiH,EACX,MAAO,CAACjiH,EAAOiiH,GAEjB,MAAMsiM,EAAmBX,GAAcQ,IAAe,GACtD,OAAIzmB,EACK,CAAC,SAAU4mB,EAAiB,IAE9BA,CAAgB,GACtB,CAACx+U,EAAMi6B,EAAOiiH,EAAS07K,IAEpB6mB,EAD2B,WAAhBH,EACkB,YAAcA,GAC3C,aACJx8D,EAAY,UACZrrJ,EACAs4M,gBAAiB2P,EACjBn+U,UAAW80O,EACX/2O,MAAO83T,EACP5pG,WAAY6pG,EACZvhS,OAAQwhS,GACNj0C,GAAmB,UACjBs8D,EAAiI,QAA5GrpT,EAAyB,OAApBy5S,QAAgD,IAApBA,EAA6BA,EAAkB2P,SAA2C,IAAPppT,GAAgBA,EACzJg9M,EAAYwvC,EAAa,MAAOG,IAC/B+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3Ct1L,GAAW+oB,EAAAA,EAAAA,YAAWgkQ,IACtB9hF,EAAoC,OAAnB81F,QAA8C,IAAnBA,EAA4BA,EAAiB/gS,EACzF4hS,GAAY74Q,EAAAA,EAAAA,YAAW6uQ,IACvBiK,GAAiBz4Q,EAAAA,EAAAA,UAAQ,IA/EjC,SAA0B4kE,GACxB,GAAuB,kBAAZA,GAAwBA,EAAS,CAC1C,IAAI1rC,EAAoB,OAAZ0rC,QAAgC,IAAZA,OAAqB,EAASA,EAAQ1rC,MAEtE,OADAA,EAASp/F,OAAOic,MAAMmjF,IAA2B,kBAAVA,EAA6B,EAARA,EACrD,CACL0rC,QAAS1rC,GAAS,EAClBA,QAEJ,CACA,MAAO,CACL0rC,UAAWA,EACX1rC,MAAO,EAEX,CAkEuCw/O,CAAiB9zM,IAAU,CAACA,KAC1D+zM,EAAcC,IAAcz4Q,EAAAA,EAAAA,UAASs4Q,EAAe7zM,UACpDi0M,EAAcC,IAAmB34Q,EAAAA,EAAAA,WAAS,GAC3C44Q,GAAY74Q,EAAAA,EAAAA,QAAO,MACnBqqK,EAAYlH,GAAcl5L,EAAK4uS,GAC/BhK,GAA4C,IAA7B9lO,EAAAA,SAASriE,MAAMmQ,KAAoB8tJ,IAASgqI,GAA0BsJ,GAIrFa,IAAa94Q,EAAAA,EAAAA,SAAO,GAC1BumJ,EAAAA,WAAgB,KACduyH,GAAWngT,SAAU,EACd,KACLmgT,GAAWngT,SAAU,CAAI,IAE1B,KAGH+mC,EAAAA,EAAAA,YAAU,KACR,IAAIq5Q,EAAa,KAejB,OAdIR,EAAev/O,MAAQ,EACzB+/O,EAAan5T,YAAW,KACtBm5T,EAAa,KACbL,GAAW,EAAK,GACfH,EAAev/O,OAElB0/O,EAAWH,EAAe7zM,SAE5B,WACMq0M,IACFtmR,aAAasmR,GACbA,EAAa,KAEjB,CACmB,GAClB,CAACR,KAEJ74Q,EAAAA,EAAAA,YAAU,KAER,IAAKm5Q,EAAUlgT,UAAY0/S,EACzB,OAEF,MAAMW,EAAaH,EAAUlgT,QAAQN,aAAe,GAChDw2S,IAAgBJ,GAAYuK,GACzBL,GACHC,GAAgB,GAETD,GACTC,GAAgB,EAClB,KAGFl5Q,EAAAA,EAAAA,YAAU,KACJsH,GAAa6xQ,EAAUlgT,SACzBkgT,EAAUlgT,QAAQ1S,OACpB,GACC,IAEH,MAAMgzT,GAAc1yH,EAAAA,aAAkBrmM,IACpC,IAAI8O,EAEAypT,GAAgB92F,EAClBzhO,EAAEukC,iBAGqB,QAAxBz1B,EAAKub,EAAMs8B,eAA4B,IAAP73C,GAAyBA,EAAGv8B,KAAK83C,EAAyBrqB,EAAM,GAChG,CAACqqB,EAAMs8B,QAAS4xQ,EAAc92F,IAQjC,MAAM,YACJqmE,GAAW,sBACXJ,IACEF,GAAsB17E,EAAW77G,GAC/B+oN,GAAmB,CACvBC,MAAO,KACPC,MAAO,KACPllM,YAAQv0I,GAEJ05U,GAAe/wB,IAAQgxB,IAC3B,IAAItqT,EAAIC,EACR,OAAqJ,QAA7IA,EAAiG,QAA3FD,EAAuB,OAAlBwoT,QAA4C,IAAlBA,EAA2BA,EAAgBxvB,UAAgC,IAAPh5R,EAAgBA,EAAKspT,SAA8B,IAAPrpT,EAAgBA,EAAKqqT,CAAO,IAErL/K,GAAU8K,IAAyD,QAAzCpqT,EAAKiqT,GAAiBG,WAAkC,IAAPpqT,EAAgBA,EAAU,GACrGsqT,GAAWd,EAAe,UAAY9zI,EACtC60I,GAAsBv+O,GAAK6E,EAAM,CAAC,aAElCqmH,GAAUD,KAAW8lB,EAAW6zC,EAAQ8nB,EAAW,CACvD,CAAC,GAAG37D,KAAah/L,KAAoB,YAAVA,GAAuBA,EAElD,CAAC,GAAGg/L,KAAa+rG,KAAeA,EAChC,CAAC,GAAG/rG,eAAwBslF,EAC5B,CAAC,GAAGtlF,WAAmBmsG,KAAoBA,EAC3C,CAAC,GAAGnsG,aAAqBisG,KAAkBA,EAC3C,CAAC,GAAGjsG,KAAauiG,MAAYA,GAC7B,CAAC,GAAGviG,gBAAyBn1L,GAAyB,IAAbA,KAAoB0iS,GAC7D,CAAC,GAAGvtG,sBAA+B2rG,IAAUhJ,GAA0BsJ,GACvE,CAAC,GAAGjsG,aAAsBysG,EAC1B,CAAC,GAAGzsG,uBAAgC2sG,GAAgBN,IAAsBI,EAC1E,CAAC,GAAGzsG,WAAoB5tH,EACxB,CAAC,GAAG4tH,SAAgC,QAAd77G,EACtB,CAAC,GAAG67G,cAAwC,QAAjB0rG,GAC1B9vB,GAAuB3tT,EAAW0wQ,EAAe57B,GAC9C0qG,GAAY/gV,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg0T,GAAegoB,GAC3D4B,GAAcxzH,KAAgC,OAArB2xH,QAAkD,IAArBA,OAA8B,EAASA,EAAiBlzI,KAAMorH,EAAkBprH,MACtIg1I,GAAYjhV,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,GAAe,OAAX0yB,QAA8B,IAAXA,OAAoB,EAASA,EAAOm2K,OAAS,CAAC,GAAIqrH,EAAcrrH,MAAQ,CAAC,GACzI07C,GAAW17C,IAAS8zI,EAA6BlyH,EAAAA,cAAoBgpH,GAAa,CACtFvjG,UAAWA,EACX/xO,UAAWy/U,GACX1hV,MAAO2hV,IACNh1I,GAASjgE,GAA8B,kBAAZA,GAAwBA,EAAQigE,KAAqB4hB,EAAAA,cAAoBgpH,GAAa,CAClHvjG,UAAWA,EACX/xO,UAAWy/U,GACX1hV,MAAO2hV,IACNj1M,EAAQigE,MAAuB4hB,EAAAA,cAAoBqzH,GAAoB,CACxElK,YAAa/qI,EACbqnC,UAAWA,EACXtnG,QAAS+zM,EACT9I,MAAOmJ,GAAWngT,UAEdkhT,GAAOhjS,GAAyB,IAAbA,EAAiB+3R,GAAc/3R,EAAUg4R,IAAgBwJ,GAAqB,KACvG,QAAiC14U,IAA7B65U,GAAoB3kV,KACtB,OAAO6yS,EAAwBnhF,EAAAA,cAAoB,IAAK7tN,OAAOoD,OAAO,CAAC,EAAG09U,GAAqB,CAC7Fv/U,UAAWisN,KAAWC,GAAS,CAC7B,CAAC,GAAG6lB,cAAuB2V,IAE7B9sP,KAAM8sP,OAAiBhiP,EAAY65U,GAAoB3kV,KACvDmD,MAAOyhV,GACP5yQ,QAASoyQ,GACThvS,IAAKogM,EACLkM,SAAUoL,GAAkB,EAAI,IAC9BtB,GAAUw5F,KAEhB,IAAIC,GAA0BvzH,EAAAA,cAAoB,SAAU7tN,OAAOoD,OAAO,CAAC,EAAGgkG,EAAM,CAClFpmG,KAAMk+U,EACN39U,UAAWksN,GACXnuN,MAAOyhV,GACP5yQ,QAASoyQ,GACTviS,SAAUirM,EACV13M,IAAKogM,IACHgW,GAAUw5F,GAAMjyB,IAAsCrhG,EAAAA,cAAoBwzH,GAAS,CACrF/tG,UAAWA,KAQb,OANK2iG,GAA0BsJ,KAC7B6B,GAA0BvzH,EAAAA,cAAoByzH,GAAM,CAClD19G,UAAW,SACX5lL,SAAU+hS,GACTqB,KAEEpyC,EAAWoyC,GAAW,IAG/Bj9I,GAAOo9I,MAAQA,GACfp9I,GAAOq9I,cAAe,EAItB,MCtQA,GDsQA,GE1QO,SAASC,GAAaplU,GAC3B,MAAO,CAAC,QAAS,SAAU,SAASlS,SAASkS,EAC/C,CACO,SAASqlU,GAAiBrlU,GAC/B,QAAKA,IAIkB,kBAATA,IAAsBnb,OAAOic,MAAMd,GACnD,CCRO,MAAMslU,GAA4B9zH,EAAAA,cAAoB,CAC3D+zH,YAAa,IAEFC,GAAuBF,GAAa1wO,SCqBjD,GArBag0C,IACX,IAAI,UACF1jJ,EAAS,MACT2I,EAAK,SACLi0C,EAAQ,MACRhrC,EAAK,MACL7T,GACE2lJ,EACJ,MAAM,YACJ28L,GACE/zH,EAAAA,WAAiB8zH,IACrB,OAAiB,OAAbxjS,QAAkCl3C,IAAbk3C,EAChB,KAEW0vK,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoB,MAAO,CACpGtsN,UAAWA,EACXjC,MAAOA,GACN6+C,GAAWj0C,EAAQ03U,GAAezuU,GAAsB06M,EAAAA,cAAoB,OAAQ,CACrFtsN,UAAW,GAAGA,WACb4R,GAAO,ECrBZ,IAAIwyR,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAWA,MAqFMo0T,GArF6Bj0H,EAAAA,YAAiB,CAACh8K,EAAON,KAC1D,IAAIjb,EACJ,MAAM,aACJwsP,EACArrJ,UAAWi4L,EACXrzS,KAAM0lU,EACNxgV,UAAW80O,EACX/2O,MAAO83T,EACP5pG,WAAY6pG,EACZvhS,OAAQwhS,GACNj0C,GAAmB,UACjB,KACFhnQ,GAAuB,OAAhB0lU,QAAwC,IAAhBA,EAAyBA,EAAc,SAAO,MAC7E/pT,EAAK,UACLz2B,EAAS,cACT0wQ,EAAa,SACb9zN,EAAQ,UACRs5E,EAAY,aACZ67G,UAAW2vC,EAAkB,MAC7B9vQ,EAAK,MACL7T,EAAK,KACLikB,GAAO,EACPiqM,WAAY2xH,EAAgB,OAC5BrpT,GACE+b,EACJ68P,EAAa/I,GAAO9zP,EAAO,CAAC,OAAQ,QAAS,YAAa,gBAAiB,WAAY,YAAa,YAAa,QAAS,QAAS,OAAQ,aAAc,YACpJmwS,EAAgBC,GAAgBpnV,MAAMqR,QAAQmQ,GAAQA,EAAO,CAACA,EAAMA,GACrE6lU,EAAuBT,GAAaQ,GACpCE,EAAyBV,GAAaO,GACtCI,EAAsBV,GAAiBO,GACvCI,EAAwBX,GAAiBM,GACzC3yM,EAAa7tC,GAAQrjD,EAAU,CACnC8qL,WAAW,IAEPq5G,OAAwBr7U,IAAV+wB,GAAqC,eAAdy/F,EAA6B,SAAWz/F,EAC7Es7M,EAAYwvC,EAAa,QAASG,IACjC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3C53D,EAAM8xC,KAAW8lB,EAAW+C,EAAkB8wC,EAAQ,GAAG7zC,KAAa77G,IAAa,CACvF,CAAC,GAAG67G,SAAsC,QAApBo8E,EACtB,CAAC,GAAGp8E,WAAmBgvG,KAAgBA,EACvC,CAAC,GAAGhvG,aAAqB2uG,KAAiBC,EAC1C,CAAC,GAAG5uG,aAAqB0uG,KAAmBG,GAC3C5gV,EAAW0wQ,EAAeg9B,GACvBszC,EAAgB/0H,KAAW,GAAG8lB,SAAuH,QAApGh9M,EAA0B,OAArB6oT,QAAkD,IAArBA,OAA8B,EAASA,EAAiBjzS,YAAyB,IAAP5V,EAAgBA,EAAK+gS,EAAkBnrR,MAE1M,IAAI01S,EAAc,EAClB,MAAM9xB,EAAQzgL,EAAWhoI,KAAI,CAACpF,EAAO/G,KACnC,IAAIo7B,EACU,OAAVr0B,QAA4BgF,IAAVhF,IACpB2/U,EAAc1mV,GAEhB,MAAM4D,GAAiB,OAAVmD,QAA4B,IAAVA,OAAmB,EAASA,EAAMnD,MAAQ,GAAGyjV,KAAiBrnV,IAC7F,OAAoB2yN,EAAAA,cAAoBymB,GAAM,CAC5C/yO,UAAWghV,EACXzjV,IAAKA,EACLoL,MAAOhP,EACPiY,MAAOA,EACP7T,MAA8E,QAAtEg3B,EAAgB,OAAXR,QAA8B,IAAXA,OAAoB,EAASA,EAAOoW,YAAyB,IAAP5V,EAAgBA,EAAKghS,EAAcprR,MACxHjqC,EAAM,IAELugV,EAAe30H,EAAAA,SAAc,KAAM,CACvC+zH,iBACE,CAACA,IAEL,GAA0B,IAAtBvyM,EAAWl0I,OACb,OAAO,KAET,MAAMsnV,EAAW,CAAC,EAUlB,OATIl/T,IACFk/T,EAASC,SAAW,SAEjBP,GAA0BE,IAC7BI,EAAS7zB,UAAYozB,IAElBE,GAAwBE,IAC3BK,EAASj0B,OAASyzB,GAEbjzC,EAAwBnhF,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CACtEmuC,IAAKA,EACLhwC,UAAWm6K,EACXp8K,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGq/U,GAAWrrB,GAAe93T,IAC9EovS,GAA0B7gF,EAAAA,cAAoBg0H,GAAsB,CACrEjpV,MAAO4pV,GACN1yB,IAAQ,IAGbgyB,GAAMT,QAAUA,GAIhB,YC5GA,IAAI17C,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EASA,MAAMi1T,GAAiB9wS,IACrB,MACEwqN,kBAAmB86D,EAAwB,aAC3Cr0C,EAAY,UACZrrJ,GACEo2F,EAAAA,WAAiBg1D,KAEjBvvC,UAAW2vC,EAAkB,KAC7BjiR,EAAO,UAAS,OAChB43T,EAAM,SACN56Q,EAAQ,QACRguF,EAAO,QACP79D,EAAO,SACP+wQ,EAAQ,SACR/gS,EAAQ,UACR58C,EAAS,KACT2qM,EAAI,MACJivD,EAAK,UACL7sL,EAAS,QACTrqE,EAAO,QACPgqS,EAAO,MACPj2Q,EAAK,KACLze,EAAI,aACJg6P,EAAY,UACZnN,EAAS,kBACT/J,EAAiB,KACjBlgQ,EAAI,KACJ8vM,EAAoB4hB,EAAAA,cAAoBsiF,GAAkB,MAAK,MAC/DpqQ,EAAK,cACL68S,EAAgB70R,GAAWA,EAAO,gBAClC4zM,EAAe,gBACfE,EAAe,iBACfqvC,EAAgB,aAChBG,EAAY,mBACZnvC,EAAkB,eAClBuwE,GACE5gS,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,OAAQ,SAAU,WAAY,UAAW,UAAW,WAAY,WAAY,YAAa,OAAQ,QAAS,YAAa,UAAW,UAAW,QAAS,OAAQ,eAAgB,YAAa,oBAAqB,OAAQ,OAAQ,QAAS,gBAAiB,kBAAmB,kBAAmB,mBAAoB,eAAgB,qBAAsB,mBAC9XyhM,EAAYwvC,EAAa,WAAYG,GACrC4/D,EAAkB,GAAGvvG,WACrBwvG,EAAgB,CACpB52I,OACAivD,QACA7sL,YACAt2C,QACAgmB,WACAiwP,QAASjwP,EAAW,GAAKiwP,EACzB16B,eACAlX,kBAAmBA,GAAqB86D,EACxCx1D,kBACAE,kBACAqvC,mBACAG,eACAnvC,qBACAuwE,mBAEI,YACJnjB,EAAW,sBACXJ,GACEF,GAAsB17E,EAAW77G,GAC/Bg2F,EAAUD,KAAWq1H,EAAiB3zB,EAAuB3tT,GAC/D,YAAaswC,IACfixS,EAAc7+U,QAAUA,GAEtB,SAAU4tC,IACZixS,EAAcvpU,KAAOA,GAGrBupU,EAAc18E,UADZ,cAAev0N,EACSu0N,EAEc,QAAd3uI,EAAsB,aAAe,cAEjE,MAAMsrN,EAA0Bl1H,EAAAA,cAAoB1pB,GAAQ,CAC1DnjM,KAAMA,EACN43T,OAAQA,EACR56Q,SAAUA,EACVguF,QAASA,EACT79D,QAASA,EACT+wQ,SAAUA,EACV/iV,KAAMA,EACN4pC,MAAOA,GACNoY,GACG6kS,EAA2Bn1H,EAAAA,cAAoB1pB,GAAQ,CAC3DnjM,KAAMA,EACN43T,OAAQA,EACR3sH,KAAMA,KAEDg3I,EAAoBC,GAAuBN,EAAc,CAACG,EAAYC,IAC7E,OAAoBn1H,EAAAA,cAAoBi0H,GAAMT,QAASrhV,OAAOoD,OAAO,CACnE7B,UAAWksN,EACXpxM,KAAMizS,EACN5pM,OAAO,GACNouH,GAAYmvG,EAAiCp1H,EAAAA,cAAoB6iG,GAAU1wT,OAAOoD,OAAO,CAAC,EAAG0/U,GAAgBI,GAAqB,EAEvIP,GAAenB,cAAe,EAC9B,YC7GM9wB,GAAWyyB,GACjBzyB,GAASvsH,OAASw+I,GAClB,YCJaS,GAAkB,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MAqChD,SAASC,KACtB,MAAO,CAAE1gO,GAAS+yK,KACZ4tD,EAtCiB3gO,KAAS,CAChCgrL,GAAI,eAAehrL,EAAM8mL,iBACzBmE,GAAI,eAAejrL,EAAM+mL,cACzB1+O,GAAI,eAAe23D,EAAMknL,cACzBttO,GAAI,eAAeomD,EAAMqnL,cACzB6D,GAAI,eAAelrL,EAAMqjL,cACzB8H,IAAK,eAAenrL,EAAMsjL,iBAgCJs9C,CA1BI5gO,KAC1B,MAAM6gO,EAAiB7gO,EACjB8gO,EAAiB,GAAGjlV,OAAO4kV,IAAiBh9P,UAoBlD,OAnBAq9P,EAAe3oV,SAAQ,CAACyzS,EAAYrzS,KAClC,MAAMwoV,EAAkBn1C,EAAWrhR,cAC7By2T,EAAY,SAASD,OACrBE,EAAS,SAASF,IACxB,KAAMF,EAAeG,IAAcH,EAAeI,IAChD,MAAM,IAAIlmV,MAAM,GAAGimV,MAAcC,eAAoBJ,EAAeG,OAAeH,EAAeI,OAEpG,GAAI1oV,EAAIuoV,EAAetoV,OAAS,EAAG,CACjC,MAAM0oV,EAAY,SAASH,OAC3B,KAAMF,EAAeI,IAAWJ,EAAeK,IAC7C,MAAM,IAAInmV,MAAM,GAAGkmV,MAAWC,eAAuBL,EAAeI,OAAYJ,EAAeK,OAEjG,MACMC,EAAgB,SADSL,EAAevoV,EAAI,GAAGgyB,mBAErD,KAAMs2T,EAAeK,IAAcL,EAAeM,IAChD,MAAM,IAAIpmV,MAAM,GAAGmmV,MAAcC,eAA2BN,EAAeK,OAAeL,EAAeM,MAE7G,KAEKnhO,CAAK,EAI2BohO,CAAoBphO,IAE3D,OAAOkrG,EAAAA,SAAc,KACnB,MAAMjkM,EAAc,IAAImiB,IACxB,IAAIi4S,GAAU,EACVC,EAAU,CAAC,EACf,MAAO,CACLC,cAAe,CAAC,EAChB3/Q,SAAS4/Q,IACPF,EAAUE,EACVv6T,EAAY9uB,SAAQo3C,GAAQA,EAAK+xS,KAC1Br6T,EAAYvN,MAAQ,GAE7B6L,SAAAA,CAAUgqB,GAOR,OANKtoB,EAAYvN,MACfriB,KAAKsuR,WAEP07D,GAAU,EACVp6T,EAAYjmB,IAAIqgV,EAAQ9xS,GACxBA,EAAK+xS,GACED,CACT,EACAh7J,WAAAA,CAAYo7J,GACVx6T,EAAYm/B,OAAOq7R,GACdx6T,EAAYvN,MACfriB,KAAKqqV,YAET,EACAA,UAAAA,GACErkV,OAAOC,KAAKqjV,GAAexoV,SAAQ8oV,IACjC,MAAMU,EAAkBhB,EAAcM,GAChC7+S,EAAU/qC,KAAKkqV,cAAcI,GACvB,OAAZv/S,QAAgC,IAAZA,GAA8BA,EAAQoqQ,IAAI55H,eAA2B,OAAZxwI,QAAgC,IAAZA,OAAqB,EAASA,EAAQkzB,SAAS,IAElJruC,EAAYs+D,OACd,EACAogM,QAAAA,GACEtoR,OAAOC,KAAKqjV,GAAexoV,SAAQ8oV,IACjC,MAAMU,EAAkBhB,EAAcM,GAChC3rR,EAAWgtF,IACf,IAAI,QACFv+C,GACEu+C,EACJjrJ,KAAKuqE,SAASvkE,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG6gV,GAAU,CACtD,CAACL,GAASl9O,IACT,EAECyoM,EAAM5vS,OAAO8vS,WAAWi1C,GAC9Bn1C,EAAIv6H,YAAY38G,GAChBj+D,KAAKkqV,cAAcI,GAAmB,CACpCn1C,MACAl3O,YAEFA,EAASk3O,EAAI,GAEjB,EACAm0C,gBACD,GACA,CAAC3gO,GACN,CCnGe,SAAS4hO,KACtB,MAAO,CAAEp0O,GAAe09G,EAAAA,YAAiBlpM,GAAKA,EAAI,GAAG,GACrD,OAAOwrF,CACT,CCkBA,SAhBA,WACE,IAAIq0O,IAAkB/6U,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,KAAmBA,UAAU,GACrF,MAAMg7U,GAAan9Q,EAAAA,EAAAA,QAAO,CAAC,GACrB6oC,EAAco0O,KACdG,EAAqBrB,KAU3B,OATAl8Q,IAAgB,KACd,MAAMw7C,EAAQ+hO,EAAmBx8T,WAAUy8T,IACzCF,EAAWxkT,QAAU0kT,EACjBH,GACFr0O,GACF,IAEF,MAAO,IAAMu0O,EAAmB17J,YAAYrmE,EAAM,GACjD,IACI8hO,EAAWxkT,OACpB,ECnBA,GADmC4tL,EAAAA,cAAoB,CAAC,GCElDskH,GAAexvN,IACnB,MAAM,OACJ00K,EAAM,aACNH,EAAY,QACZE,EAAO,SACPwtD,EAAQ,YACRC,EAAW,cACXC,EAAa,gBACbC,EAAe,gBACfC,EAAe,aACfC,EAAY,eACZC,EAAc,eACdC,EAAc,aACd9pD,EAAY,eACZoB,EAAc,eACdD,EAAc,UACdtkQ,EAAS,SACTwiQ,GACE/3K,EAEEyiO,EAAkBA,CAAC/oU,EAAM+a,EAAUu2K,KAAW,CAClD1xM,MAAOogB,EACP1gB,OAAQ0gB,EACRg/Q,aAAc,MACd,CAAC,IAAInE,YAAwB,CAC3BmE,aAAc1tF,GAEhB,CAAC,IAAIupF,UAAsB,CACzB9/P,WACA,CAAC,KAAKggQ,KAAY,CAChBx7R,OAAQ,MAId,MAAO,CACL,CAACs7R,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CAClGt9G,SAAU,WACV7E,QAAS,cACT+sS,eAAgB,SAChBzT,WAAY,SACZx0R,SAAU,SACV21B,MAAO4pT,EACPxpM,WAAY,SACZ3+G,UAAW,SACXC,cAAe,SACf64F,WAAYovN,EACZ91M,OAAQ,GAAG9xI,GAAKk7B,MAAcwiQ,gBAC9B,UAAW,CACTllK,WAAY,eAEd,CAAC,GAAG6hK,eAAqB,CACvB72R,QAAS,WAET4kV,EAAgBN,EAAeG,EAAc5pD,IAAgB,CAC/D,OAAQr7R,OAAOoD,OAAO,CAAC,EAAGgiV,EAAgBL,EAAiBG,EAAgBzoD,IAC3E,OAAQz8R,OAAOoD,OAAO,CAAC,EAAGgiV,EAAgBJ,EAAiBG,EAAgB3oD,IAC3E,QAAS,CACPh8R,QAAS,QACTvE,MAAO,OACPN,OAAQ,OACR0pV,UAAW,WAGhB,EAEGvH,GAAgBn7N,IACpB,MAAM,aACJu0K,EAAY,iBACZmgD,EAAgB,iBAChBiO,EAAgB,WAChBC,GACE5iO,EACJ,MAAO,CACL,CAAC,GAAGu0K,WAAuB,CACzB12R,QAAS,cACT,CAAC02R,GAAe,CACd16P,YAAa66S,GAEf,wBAAyB,CACvBha,kBAAmBioB,IAGvB,CAAC,GAAGpuD,mBAA+B,CACjC,CAAC,GAAGA,OAAkBA,KAAiB,CACrCmmC,kBAAmBkoB,IAGxB,EA2BH,GAAe7tD,GAAc,UAAU/0K,IACrC,MAAM,oBACJkkL,EAAmB,qBACnBJ,GACE9jL,EACE6iO,EAAc7wD,GAAWhyK,EAAO,CACpCiiO,SAAUn+C,EACVo+C,YAAah+C,IAEf,MAAO,CAACsrC,GAAaqT,GAAc1H,GAAc0H,GAAa,IAlC3B7iO,IACnC,MAAM,cACJ84K,EAAa,gBACboB,EAAe,gBACfF,EAAe,SACfvlQ,EAAQ,WACRkmQ,EAAU,WACVG,EAAU,iBACVG,EAAgB,SAChBmL,EAAQ,UACRD,EAAS,cACTvC,GACE5jL,EACJ,MAAO,CACLmiO,cAAerpD,EACfspD,gBAAiBloD,EACjBmoD,gBAAiBroD,EACjBsoD,aAAczpV,KAAK22B,OAAOmrQ,EAAaG,GAAc,GACrDynD,eAAgBtnD,EAChBunD,eAAgB/tT,EAChBmuT,WAAYz8C,EACZw8C,kBAAmBv8C,EACnBsuC,iBAAkB9wC,EACnB,ICjHH,IAAIZ,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAaA,MAAM+3T,GAAiBA,CAAC5zS,EAAON,KAC7B,MAAOuqG,EAAO4pM,GAAY73H,EAAAA,SAAe,IAClCypD,EAASC,GAAc1pD,EAAAA,UAAe,IACtC83H,EAAYC,GAAiB/3H,EAAAA,UAAe,GAC7Cg4H,EAAgBh4H,EAAAA,OAAa,MAC7Bi4H,EAAoBj4H,EAAAA,OAAa,MACjCk4H,EAAsB17G,GAAW94L,EAAKs0S,IACtC,aACJ/iE,EAAY,OACZorD,GACErgH,EAAAA,WAAiBg1D,IACfmjE,EAAYn4H,EAAAA,WAAiBo4H,IAC7BC,EAAgBA,KACpB,IAAKJ,EAAkB7lT,UAAY4lT,EAAc5lT,QAC/C,OAEF,MAAMkmT,EAAgBL,EAAkB7lT,QAAQg0E,YAC1CmyO,EAAYP,EAAc5lT,QAAQg0E,YAExC,GAAsB,IAAlBkyO,GAAqC,IAAdC,EAAiB,CAC1C,MAAM,IACJ5K,EAAM,GACJ3pS,EACM,EAAN2pS,EAAU4K,GACZV,EAASU,EAAkB,EAAN5K,EAAU2K,GAAiBC,EAAkB,EAAN5K,GAAW2K,EAAgB,EAE3F,GAEFt4H,EAAAA,WAAgB,KACd0pD,GAAW,EAAK,GACf,IACH1pD,EAAAA,WAAgB,KACd+3H,GAAc,GACdF,EAAS,EAAE,GACV,CAAC7zS,EAAM7tC,MACV6pN,EAAAA,UAAgBq4H,EAAe,CAACr0S,EAAM2pS,MACtC,MAAM6K,EAAqBA,KACzB,MAAM,QACJriS,GACEnS,GAEc,KADY,OAAZmS,QAAgC,IAAZA,OAAqB,EAASA,MAElE4hS,GAAc,EAChB,GAGEtyG,UAAW2vC,EAAkB,MAC7B3uO,EACAj4B,KAAMgyS,EAAU,IAChBrqT,EAAG,OACHsiV,EAAM,KACNr6I,EAAI,UACJ1qM,EAAS,cACT0wQ,EAAa,IACbs0E,EAAG,UACHC,EAAS,SACTroS,EAAQ,YACRwiF,GACE9uF,EACJ49Q,EAAS9pB,GAAO9zP,EAAO,CAAC,YAAa,QAAS,OAAQ,MAAO,SAAU,OAAQ,YAAa,gBAAiB,MAAO,YAAa,WAAY,gBACzIx1B,EAAOuzS,IAAQgxB,IACnB,IAAItqT,EAAIC,EACR,OAAmM,QAA3LA,EAAiJ,QAA3ID,EAAoB,OAAf+3R,QAAsC,IAAfA,EAAwBA,EAA2B,OAAd23B,QAAoC,IAAdA,OAAuB,EAASA,EAAU3pU,YAAyB,IAAPia,EAAgBA,EAAKsqT,SAA4B,IAAPrqT,EAAgBA,EAAK,SAAS,IAErOkwT,EAAiBzmV,OAAOC,KAAqB,kBAAToc,GAAoBA,GAAa,CAAC,GAAGjR,MAAKtM,GAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,OAAOqL,SAASrL,KACpImlV,EAAUyC,GAAcD,GACxBE,EAAsB94H,EAAAA,SAAc,KACxC,GAAoB,kBAATxxM,EACT,MAAO,CAAC,EAEV,MAAMuqU,EAAoBxD,GAAgB93U,MAAKs4U,GAAUK,EAAQL,KAC3DiD,EAAcxqU,EAAKuqU,GACzB,OAAOC,EAAc,CACnB5qV,MAAO4qV,EACPlrV,OAAQkrV,EACRzvT,SAAUyvT,IAAgB56I,GAAQ9tJ,GAAY0oS,EAAc,EAAI,IAC9D,CAAC,CAAC,GACL,CAAC5C,EAAS5nU,IAKb,MAAMi3N,EAAYwvC,EAAa,SAAUG,GACnCiT,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GACtD2/C,EAAUroH,KAAW,CACzB,CAAC,GAAG8lB,QAA0B,UAATj3N,EACrB,CAAC,GAAGi3N,QAA0B,UAATj3N,IAEjByqU,EAA+Bj5H,EAAAA,eAAqB7pN,GACpD+iV,EAAczyS,IAAwB,OAAd0xS,QAAoC,IAAdA,OAAuB,EAASA,EAAU1xS,QAAU,SAClGwtO,EAAct0D,KAAW8lB,EAAWuiG,EAAoB,OAAX3H,QAA8B,IAAXA,OAAoB,EAASA,EAAO3sU,UAAW,GAAG+xO,KAAayzG,IAAe,CAClJ,CAAC,GAAGzzG,WAAoBwzG,GAAmB9iV,GAAO2hV,EAClD,CAAC,GAAGryG,YAAqBrnC,GACxBgjG,EAAW/Y,EAAS30R,EAAW0wQ,EAAekV,GAC3C6/D,EAA4B,kBAAT3qU,EAAoB,CAC3CpgB,MAAOogB,EACP1gB,OAAQ0gB,EACR+a,SAAU60K,EAAO5vL,EAAO,EAAI,IAC1B,CAAC,EACL,IAAI4qU,EACJ,GAAmB,kBAARjjV,GAAoB2hV,EAC7BsB,EAAgCp5H,EAAAA,cAAoB,MAAO,CACzD7pN,IAAKA,EACLwiV,UAAWA,EACXF,OAAQA,EACRtiS,QAASqiS,EACTE,IAAKA,EACL5lN,YAAaA,SAEV,GAAImmN,EACTG,EAAmBjjV,OACd,GAAIioM,EACTg7I,EAAmBh7I,OACd,GAAIqrE,GAAqB,IAAVx7H,EAAa,CACjC,MAAMorM,EAAkB,SAASprM,KAC3BqrM,EAAgB,CACpBllE,YAAailE,EACbE,gBAAiBF,EACjB3tQ,UAAW2tQ,GAEbD,EAAgCp5H,EAAAA,cAAoBwiB,GAAgB,CAClE4B,SAAUi0G,GACIr4H,EAAAA,cAAoB,OAAQ,CAC1CtsN,UAAW,GAAG+xO,WACd/hM,IAAKu0S,EACLxmV,MAAOU,OAAOoD,OAAO,CAAC,EAAG+jV,IACxBhpS,GACL,MACE8oS,EAAgCp5H,EAAAA,cAAoB,OAAQ,CAC1DtsN,UAAW,GAAG+xO,WACdh0O,MAAO,CACLqG,QAAS,GAEX4rC,IAAKu0S,GACJ3nS,GAML,cAFOsxQ,EAAOzrQ,eACPyrQ,EAAO+rB,IACPxsC,EAAwBnhF,EAAAA,cAAoB,OAAQ7tN,OAAOoD,OAAO,CAAC,EAAGqsT,EAAQ,CACnFnwT,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG4jV,GAAYL,GAAiC,OAAXzY,QAA8B,IAAXA,OAAoB,EAASA,EAAO5uU,OAAQmwT,EAAOnwT,OAC3KiC,UAAWugR,EACXvwO,IAAKw0S,IACHkB,GAAkB,EAMxB,SAJ4Bp5H,EAAAA,WAAiB43H,ICzKhC4B,GAAqB/jE,GAC3BA,EAGuB,oBAAdA,EAA2BA,IAAcA,EAF9C,KCGL6uD,GAAexvN,IACnB,MAAM,aACJu0K,EAAY,aACZowD,EAAY,cACZC,EAAa,iBACbz/C,EAAgB,aAChB0/C,EAAY,mBACZn+C,EAAkB,iBAClB3C,EAAgB,eAChBjK,EAAc,YACd25B,EAAW,kBACXqxB,EAAiB,gBACjB9nD,EAAe,UACf+nD,EAAS,kBACTC,EAAiB,oBACjBC,EAAmB,aACnBC,GACEllO,EACJ,MAAO,CAAC,CACN,CAACu0K,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACtEt9G,SAAU,WACV/J,IAAK,EAELD,KAAM,CACJi3T,cAAc,EACd15T,MAAO,GAET2M,OAAQ6wT,EACRv5R,WAAY,SACZw+G,WAAY,SACZ3+G,UAAW,QACX1I,OAAQ,OACRqwH,WAAY,OAEZ,mBAAoB,iDACpB1qB,gBAAiB,CAAC,6BAA8B,uBAAuB16H,KAAK,KAC5E,gCAAiC0gS,EACjC1jS,MAAO,cACP87B,SAAU,QACV,QAAS,CACP0/F,UAAW,OAEb,WAAY,CACVj3H,QAAS,QAEX,CAAC,GAAG02R,aAAyB,CAC3B7xR,SAAU,YAEZ,CAAC,GAAG6xR,WAAuB,CACzBzxR,gBAAiBiiV,EACjBx1N,eAAgB,cAChBmpK,aAAcoB,EACdvhK,UAAWmuK,EACX9tQ,QAASisT,GAEX,CAAC,GAAGtwD,WAAuB,CACzBpxP,SAAUyhT,EACV/uN,aAAcivN,EACdxsT,MAAOyrQ,EACP7pQ,WAAYirQ,EACZqyB,aAAcwtB,EACdpsT,QAASssT,GAEX,CAAC,GAAG3wD,mBAA+B,CACjCj8P,MAAOqsT,EACP/rT,QAASqsT,MAKf90B,GAAcnwM,EAAO,sCAErB,CACE,CAAC,GAAGu0K,UAAsB,CACxB7xR,SAAU,WACV0yB,SAAU,OACVn8B,OAAQ+mH,EAAM64K,eACdh7R,QAAS,eACT,CAAC,GAAG02R,aAAyB,CAC3B12R,QAAS,kBAGb,EAEEsnV,GAAgBnlO,IACpB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAACu0K,GAAeu+B,GAAapuT,KAAI44R,IAC/B,MAAM21B,EAAajzM,EAAM,GAAGs9K,MAC5B,MAAO,CACL,CAAC,IAAI/I,KAAgB+I,KAAa,CAChC,gCAAiC21B,EACjC,CAAC,GAAG1+B,WAAuB,CACzBzxR,gBAAiBmwT,GAEnB,CAAC,GAAG1+B,WAAuB,CACzB1hK,WAAY,gBAGjB,IAEJ,EAmCH,GAAekiK,GAAc,WAAW/0K,IACtC,MAAM,gBACJg9K,EAAe,UACf9G,GACEl2K,EACEolO,EAAepzD,GAAWhyK,EAAO,CACrC+kO,UAAW/nD,EACX2nD,aAAczuD,IAEhB,MAAO,CAACs5C,GAAa4V,GAAeD,GAAcC,GAAexyB,GAAewyB,EAAc,YAAY,IA1CvEplO,IACnC,MAAM,UACJzqF,EAAS,cACTujQ,EAAa,WACbsC,EAAU,QACVxiQ,EAAO,UACPsgQ,EAAS,gBACTF,EAAe,eACfc,EAAc,SACdsM,EAAQ,SACRrO,EAAQ,WACR8L,EAAU,UACV4B,GACEzlL,EACEqlO,EAAwBvsD,EAAgBsC,EACxCkqD,EAA8BD,EAAwB,EACtDE,EAAiCF,EAAwB,EAAI9vT,EAC7DiwT,EAA2B5sT,EACjC,OAAOv7B,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC/CmkV,cAAe,IACfnxB,YAAaz6B,EAAkB,IAC9Bw1B,GAAcxuM,IAAS4vM,GAAoB,CAC5CC,cAAe/1B,EACfg2B,qBAAqB,KAClB,CAEH+0B,aAAc3rD,EAAY,EAAI,GAC9B4rD,kBAAmB5rD,EAAY,EAAIkN,EACnC8+C,aAAchsD,EAAY,GAAGosD,OAAiCE,OAA8BD,MAAqC,EACjIP,kBAAmB9rD,EAAY,GAAG3jQ,OAAewiQ,KAAY8L,IAAe,OAC5EohD,oBAAqB/rD,EAAY,GAAGuM,OAAe+/C,MAA+B,GAClF,GAYsB,CACxB1wD,YAAY,EACZ7D,iBAAkB,CAAC,CAAC,QAAS,iBAAkB,CAAC,WAAY,oBCzJ9D,IAAI+R,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAOO,MAAMu1S,GAAUh+K,IACrB,IAAI,MACFl/G,EAAK,QACLttB,EAAO,UACP66N,GACEruF,EACJ,OAAKl/G,GAAUttB,EAGKo1M,EAAAA,cAAoBA,EAAAA,SAAgB,KAAM9nL,GAAsB8nL,EAAAA,cAAoB,MAAO,CAC7GtsN,UAAW,GAAG+xO,WACbvtM,GAAQttB,GAAwBo1M,EAAAA,cAAoB,MAAO,CAC5DtsN,UAAW,GAAG+xO,mBACb76N,IANM,IAMG,EAED2vU,GAAev2S,IAC1B,MAAM,OACJs1O,EAAM,UACN7zC,EAAS,UACT/xO,EAAS,MACTjC,EAAK,UACL8mQ,EAAY,MAAK,MACjBrgO,EAAK,QACLttB,EAAO,SACP0lC,GACEtM,EACEwiO,EAAYgzE,GAAmBthT,GAC/BsiT,EAAchB,GAAmB5uU,GACjCijK,EAAM8xC,KAAW25D,EAAQ7zC,EAAW,GAAGA,SAAkB,GAAGA,eAAuB8yB,IAAa7kQ,GACtG,OAAoBssN,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAWm6K,EACXp8K,MAAOA,GACOuuN,EAAAA,cAAoB,MAAO,CACzCtsN,UAAW,GAAG+xO,YACCzlB,EAAAA,cAAoBijD,GAAO9wQ,OAAOoD,OAAO,CAAC,EAAGyuC,EAAO,CACnEtwC,UAAW4lR,EACX7zC,UAAWA,IACTn1L,GAAyB0vK,EAAAA,cAAoBo1G,GAAS,CACxD3vF,UAAWA,EACXvtM,MAAOsuO,EACP57P,QAAS4vU,KACP,EAmBN,GAjBkBx2S,IAChB,MACIyhM,UAAW2vC,EAAkB,UAC7B1hR,GACEswC,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,eACpC,aACJixO,GACEj1D,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,UAAWG,IACnC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GACjD,OAAO07D,EAAwBnhF,EAAAA,cAAoBu6H,GAAcpoV,OAAOoD,OAAO,CAAC,EAAG0wO,EAAW,CAC5FR,UAAWA,EACX6zC,OAAQA,EACR5lR,UAAWisN,KAAWjsN,EAAW0tS,MAC/B,ECxEN,IAAItJ,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAaA,MAmFM0iS,GAnF+BviG,EAAAA,YAAiB,CAACh8K,EAAON,KAC5D,IAAIjb,EAAIC,EACR,MACI+8M,UAAW2vC,EAAkB,MAC7Bl9O,EAAK,QACLttB,EAAO,iBACPy4R,EAAgB,UAChB9qC,EAAY,MAAK,QACjB6nC,EAAU,QAAO,SACjB9vP,EAAQ,gBACRwjN,EAAkB,GAAG,gBACrBE,EAAkB,GAAG,aACrB0R,EAAY,aACZ89B,EAAe,CAAC,EAAC,OACjBv7Q,EACA03L,WAAY86H,GACVz2S,EACJ68P,EAAa/I,GAAO9zP,EAAO,CAAC,YAAa,QAAS,UAAW,mBAAoB,YAAa,UAAW,WAAY,kBAAmB,kBAAmB,eAAgB,eAAgB,SAAU,gBACjM,aACJixO,EACAvhR,UAAW80O,EACX/2O,MAAO83T,EACP5pG,WAAY6pG,EACZvhS,OAAQwhS,GACNj0C,GAAmB,WACjB/vC,EAAYwvC,EAAa,UAAWG,IACnC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3C+iD,EAAgBvT,IAChBu1C,EAAiB7qG,KAAW0jF,EAAkB/pB,EAAQ8nB,EAAW54D,EAAkBghF,EAAkBj5T,KAA4B,OAAtBkqV,QAAoD,IAAtBA,OAA+B,EAASA,EAAkBlqV,MACnMk6T,EAAiB9qG,KAAW6pG,EAAkBxxT,KAA4B,OAAtByiV,QAAoD,IAAtBA,OAA+B,EAASA,EAAkBziV,OAC3I0T,EAAMk+S,GAAW38E,IAAe,EAAO,CAC5CliP,MAA6B,QAArB09B,EAAKub,EAAMt4B,YAAyB,IAAP+c,EAAgBA,EAAKub,EAAMgiN,QAChEt7N,aAA2C,QAA5BhC,EAAKsb,EAAM6lR,mBAAgC,IAAPnhS,EAAgBA,EAAKsb,EAAM8/P,iBAE1E42C,EAAcA,CAAC3vV,EAAO4uB,KAC1BiwS,EAAQ7+T,GAAO,GACE,OAAjB26Q,QAA0C,IAAjBA,GAAmCA,EAAa36Q,EAAO4uB,EAAE,EAU9E6sP,EAAYgzE,GAAmBthT,GAC/BsiT,EAAchB,GAAmB5uU,GACvC,OAAOu2R,EAAwBnhF,EAAAA,cAAoBojF,GAASjxS,OAAOoD,OAAO,CACxEgjQ,UAAWA,EACX6nC,QAASA,EACTtsC,gBAAiBA,EACjBE,gBAAiBA,GAChB6sC,EAAY,CACbp7D,UAAWA,EACX9lB,WAAY,CACVpvN,KAAMi6T,EACNxyT,KAAMyyT,GAERxiS,OAAQ,CACN13B,KAAM4B,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGk0T,EAAcl5T,MAAOg5T,GAAe/lB,GAA0B,OAAXv7Q,QAA8B,IAAXA,OAAoB,EAASA,EAAO13B,MAC5KyH,KAAM7F,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGk0T,EAAczxT,MAAkB,OAAXiwB,QAA8B,IAAXA,OAAoB,EAASA,EAAOjwB,OAEpH0rC,IAAKA,EACLh4B,KAAMA,EACNg6P,aAtB2B36Q,IAC3B2vV,EAAY3vV,EAAM,EAsBlBqL,QAASowQ,GAAag0E,EAA4Bx6H,EAAAA,cAAoBo1G,GAAS,CAC7E3vF,UAAWA,EACXvtM,MAAOsuO,EACP57P,QAAS4vU,IACL,KACN51F,eAAgBD,GAAkB6jC,EAAe,WAAYqY,EAAWj8C,gBACxE,uBAAuB,IACrB5hJ,GAAa1yD,EAAU,CACzBkqM,UAAW7gO,IACT,IAAI8O,EAAIC,EACSs3L,EAAAA,eAAqB1vK,KAC2D,QAA9F5nB,EAAkB,OAAb4nB,QAAkC,IAAbA,OAAsB,GAAU7nB,EAAK6nB,EAAStM,OAAOw2M,iBAA8B,IAAP9xN,GAAyBA,EAAGx8B,KAAKu8B,EAAI9O,IAvChIA,KACZA,EAAE2jC,UAAY4yL,GAAQU,KACxB8pG,GAAY,EAAO/gU,EACrB,EAsCE6gO,CAAU7gO,EAAE,KAEZ,IAGN4oS,GAAQsI,uCAAyCC,GAIjD,YCjGM6vB,GAAwB32S,IAC5B,MAAM,KACJx1B,EAAI,MACJi4B,GACEu5K,EAAAA,WAAiBo4H,IACfwC,EAAqB56H,EAAAA,SAAc,KAAM,CAC7CxxM,KAAMw1B,EAAMx1B,MAAQA,EACpBi4B,MAAOzC,EAAMyC,OAASA,KACpB,CAACzC,EAAMx1B,KAAMw1B,EAAMyC,MAAOj4B,EAAMi4B,IACpC,OAAoBu5K,EAAAA,cAAoBo4H,GAAch1O,SAAU,CAC9Dr4G,MAAO6vV,GACN52S,EAAMsM,SAAS,EA+EpB,GA7EoBtM,IAClB,IAAIvb,EAAIC,EAAIiC,EAAIC,EAChB,MAAM,aACJqqP,EAAY,UACZrrJ,GACEo2F,EAAAA,WAAiBg1D,KAEnBvvC,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,MACb3yQ,EAAK,SACL63O,EAAQ,SACRuxG,EAAQ,KACRrsU,EAAI,MACJi4B,EAAK,oBACLq0S,EAAmB,kBACnBC,EAAiB,SACjBzqS,EAAQ,IACRnhC,GACE60B,EAQJ,MAAMyhM,EAAYwvC,EAAa,SAAUG,GACnCpO,EAAiB,GAAGvhC,UACpB4iD,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GACtDx6G,EAAM8xC,KAAWqnD,EAAgB,CACrC,CAAC,GAAGA,SAAqC,QAAdp9I,GAC1Bw3K,EAAW/Y,EAAS30R,EAAW0wQ,EAAekV,GAC3C0hE,EAAoBrnP,GAAQrjD,GAAU92C,KAAI,CAACpF,EAAOiI,IAAU2mG,GAAa5uG,EAAO,CAEpFnD,IAAK,cAAcoL,QAEf4+U,GAAsB,OAAR9rU,QAAwB,IAARA,OAAiB,EAASA,EAAIgxB,QAAUmpM,EACtE4xG,EAAgBF,EAAkB1tV,OACxC,GAAI2tV,GAAcA,EAAaC,EAAe,CAC5C,MAAMC,EAAeH,EAAkB7pV,MAAM,EAAG8pV,GAC1CG,EAAiBJ,EAAkB7pV,MAAM8pV,EAAYC,GACrDG,GAAsB,OAARlsU,QAAwB,IAARA,OAAiB,EAASA,EAAI1d,QAAUopV,EACtES,GAAwF,QAAhE7yT,EAAa,OAARtZ,QAAwB,IAARA,OAAiB,EAASA,EAAIiyT,eAA4B,IAAP34S,OAAgB,EAASA,EAAG23Q,UAAY26C,GAAqB,QAC7JQ,GAA0F,QAAhE7yT,EAAa,OAARvZ,QAAwB,IAARA,OAAiB,EAASA,EAAIiyT,eAA4B,IAAP14S,OAAgB,EAASA,EAAG6vO,YAAcuiF,GAAuB,MACnKlsG,EAAaz8O,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC7CqV,QAASwwU,GACA,OAARjsU,QAAwB,IAARA,OAAiB,EAASA,EAAIiyT,SAAU,CACzDzhH,WAAY,CACVpvN,KAAMovN,KAAW,GAAGqnD,YAAqJ,QAA1Hp8O,EAAsE,QAAhED,EAAa,OAARxb,QAAwB,IAARA,OAAiB,EAASA,EAAIiyT,eAA4B,IAAPz2S,OAAgB,EAASA,EAAGg1L,kBAA+B,IAAP/0L,OAAgB,EAASA,EAAGr6B,OAE/MgoQ,UAAWgjF,EACXn7C,QAASk7C,IAQX,OANAH,EAAantV,KAAkBgyN,EAAAA,cAAoBuiG,GAASpwT,OAAOoD,OAAO,CACxEtE,IAAK,qBACL4yS,sBAAsB,GACrBj1D,GAA0B5uB,EAAAA,cAAoBw7H,GAAQ,CACvD/pV,MAAO4pV,GACN,KAAIH,EAAgBD,MAChB95C,EAAwBnhF,EAAAA,cAAoB26H,GAAuB,CACxEl0S,MAAOA,EACPj4B,KAAMA,GACQwxM,EAAAA,cAAoB,MAAO,CACzCtsN,UAAWm6K,EACXp8K,MAAOA,GACN0pV,IACL,CACA,OAAOh6C,EAAwBnhF,EAAAA,cAAoB26H,GAAuB,CACxEl0S,MAAOA,EACPj4B,KAAMA,GACQwxM,EAAAA,cAAoB,MAAO,CACzCtsN,UAAWm6K,EACXp8K,MAAOA,GACNupV,IAAoB,ECjGnBQ,GAAS5D,GACf4D,GAAO9H,MAAQ+H,GACf,YCHMC,GAAsB,IAAI70B,GAAU,sBAAuB,CAC/D,KAAM,CACJn7O,UAAW,aACX5zE,QAAS,IAEX,OAAQ,CACN4zE,UAAW,aACX5zE,QAAS,KAGP6jV,GAAiB,IAAI90B,GAAU,iBAAkB,CACrD,KAAM,CACJn7O,UAAW,gCACX5zE,QAAS,GAEX,OAAQ,CACN4zE,UAAW,mCAGTkwQ,GAAkB,IAAI/0B,GAAU,kBAAmB,CACvD,KAAM,CACJn7O,UAAW,iCAEb,OAAQ,CACNA,UAAW,gCACX5zE,QAAS,KAGP+jV,GAA0B,IAAIh1B,GAAU,0BAA2B,CACvE,KAAM,CACJn7O,UAAW,WACX5zE,QAAS,GAEX,OAAQ,CACN4zE,UAAW,cAGTowQ,GAA2B,IAAIj1B,GAAU,2BAA4B,CACzE,KAAM,CACJn7O,UAAW,YAEb,OAAQ,CACNA,UAAW,WACX5zE,QAAS,KAGPikV,GAAwB,IAAIl1B,GAAU,wBAAyB,CACnE,KAAM,CACJ/6L,gBAAiB,OAEnB,OAAQ,CACNpgD,UAAW,sCACXogD,gBAAiB,SAiORk/M,GAAel2N,IAC1B,MAAM,WACJo7K,EAAU,UACV7lQ,EAAS,SACT6wQ,EAAQ,cACRxC,GACE5jL,EAmBJ,OAbmBgyK,GAAWhyK,EAAO,CACnCknO,gBANsB9rD,EAOtB+rD,gBANsB5xT,EAOtB6xT,eANqBpnO,EAAMkkL,oBAO3BmjD,WANiBrnO,EAAM03K,WAOvB4vD,gBANsBtnO,EAAM4/K,gBAO5B2nD,iBAAkB3jD,EAClB4jD,wBAAyB,OACzBC,kBAAmBrhD,EAEnBshD,2BAA4B,eAC5BC,wBAAyB,mBAEV,EAENh+C,GAAwB3pL,IACnC,MAAM,SACJvrF,EAAQ,WACRE,EAAU,WACV+lQ,EAAU,UACVnlQ,GACEyqF,EACJ,MAAO,CACL4nO,gBAAiB,OACjBC,gBAAiBhvV,KAAK22B,MAAMiF,EAAWE,GAAc,EAAIY,EACzDuyT,kBAAmBrzT,EACnBszT,QAASrtD,EAAa,EACtB4nD,aAAc5nD,EACd8nD,eAAgB9nD,EAChBstD,eAAgB,SAChBC,WAAYvtD,EAAa,EAC1B,EAEH,GAAe3F,GAAc,SAAS/0K,GA3QVA,KAC1B,MAAM,aACJu0K,EAAY,QACZE,EAAO,OACPC,EAAM,gBACNyyD,EAAe,aACf7E,EAAY,eACZE,EAAc,WACdyF,EAAU,QACVF,EAAO,eACPC,EAAc,gBACdH,EAAe,kBACfC,EAAiB,SACjB1hD,EAAQ,KACR/rB,GACEr6J,EACEkoO,EAAkB,GAAGxzD,kBACrByzD,EAAcp1B,GAAe/yM,GAAO,CAACs9K,EAAUh7I,KACnD,IAAI,UACF6wK,GACE7wK,EACJ,MAAO,CACL,CAAC,IAAIiyI,KAAgBA,WAAsB+I,KAAa,CACtDzqK,WAAYsgM,EACZ,CAAC,SAAS5+B,YAAwB,CAChCj8P,MAAO66R,GAET,YAAa,CACXtgM,WAAYsgM,IAGjB,IAEH,MAAO,CACL,CAAC5+B,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CAClGt9G,SAAU,WACV7E,QAAS,eACTvE,MAAO,cACPq7B,WAAY,EACZ,CAAC,GAAG4/P,WAAuB,CACzB12R,QAAS,cACT+sS,eAAgB,SAChBhoS,OAAQo9G,EAAM4nO,gBACdzkT,SAAU0kT,EACV7uV,OAAQ6uV,EACRvvT,MAAO0nF,EAAMonO,eACbltT,WAAY8tT,EACZvzT,SAAU6tT,EACV3tT,WAAYt6B,GAAKwtV,GACjBnvM,WAAY,SACZ3+G,UAAW,SACX84F,WAAY7S,EAAMqnO,WAClB3uD,aAAcre,EAAKwtE,GAAiB75H,IAAI,GAAG19C,QAC3C/3C,UAAW,SAASl+H,GAAK8sV,MAAoBnnO,EAAMunO,mBACnD3/R,WAAY,cAAco4D,EAAMkiL,oBAChC3wR,EAAG,CACD+mB,MAAO0nF,EAAMonO,gBAEf,UAAW,CACT9uT,MAAO0nF,EAAMonO,gBAEf,YAAa,CACXv0N,WAAY7S,EAAMsnO,kBAGtB,CAAC,GAAG/yD,cAA0B,CAC5BpxP,SAAU2kT,EACV9uV,OAAQ8uV,EACRrzT,SAAU+tT,EACV7tT,WAAYt6B,GAAKytV,GACjBpvD,aAAcre,EAAKytE,GAAmB95H,IAAI,GAAG19C,SAE/C,CAAC,GAAGikH,oBAAgC,CAClC37P,QAAS,KAAKv+B,GAAK2lH,EAAMwlL,aACzB4iD,IAAK,CACHC,YAAa,cAGjB,CAAC,GAAG9zD,SAAqB,CACvB3xR,OAAQo9G,EAAM4nO,gBACdtuV,MAAOyuV,EACP5kT,SAAU4kT,EACV/uV,OAAQ+uV,EACRl1N,WAAY7S,EAAMqnO,WAClB3uD,aAAc,OACdngK,UAAW,SAASl+H,GAAK8sV,MAAoBnnO,EAAMunO,oBAErD,CAAC,GAAGhzD,YAAuBA,UAAqB2zD,sBAAqC,CACnFxlV,SAAU,WACV/J,IAAK,EACLgyS,eAAgB,EAChB/zN,UAAW,uBACXogD,gBAAiB,UACjB,CAAC,IAAIy9J,UAAiB,CACpB1oO,cAAek7R,GACfluN,kBAAmB,KACnBz8E,wBAAyB,WACzBu2Q,wBAAyB,WAG7B,CAAC,IAAIt+B,YAAwB,CAC3B5/P,WAAY,UACZqF,cAAe,WACf,CAAC,GAAGu6P,gBAA4B,CAC9B7xR,SAAU,WACV/J,KAAM,EAENkF,QAAS,eACTvE,MAAO2uV,EACPjvV,OAAQivV,EACRjuT,cAAe,SACf0+P,aAAc,OAEhB,CAAC,GAAGnE,oBAAgC,CAClCzxR,gBAAiBk9G,EAAMw3K,cAEzB,CAAC,GAAGjD,uBAAmC,CACrC5xR,SAAU,UACV21B,MAAO0nF,EAAM23K,UACb70R,gBAAiBk9G,EAAM23K,UACvB99P,YAAa,eACb,WAAY,CACVn3B,SAAU,WACV/J,IAAK,EACLkyS,iBAAkB,EAClBvxS,MAAO,OACPN,OAAQ,OACR2gC,YAAawtT,EACbjsB,YAAa,QACbrhS,YAAa,UACb6+P,aAAc,MACd3sO,cAAe66R,GACf7tN,kBAAmB/Y,EAAMwnO,wBACzBlrS,wBAAyB,WACzBu2Q,wBAAyB,cACzB/8S,QAAS,OAGb,CAAC,GAAGy+Q,oBAAgC,CAClCzxR,gBAAiBk9G,EAAM8jL,sBAEzB,CAAC,GAAGvP,kBAA8B,CAChCzxR,gBAAiBk9G,EAAM03K,YAEzB,CAAC,GAAGnD,oBAAgC,CAClCzxR,gBAAiBk9G,EAAMy3K,cAEzB,CAAC,GAAGlD,iBAA6B,CAC/BmmC,kBAAmBt0B,EACnB9tQ,MAAO0nF,EAAMk2K,UACbzhQ,SAAUurF,EAAMvrF,aAGlB0zT,GAAc,CAChB,CAAC,GAAG5zD,kBAA6BA,gBAA4B,CAC3DxoO,cAAe86R,GACf9tN,kBAAmB/Y,EAAMu2K,mBACzBs8B,wBAAyB7yM,EAAMs4K,kBAC/Bi5B,kBAAmB,QAErB,CAAC,GAAGh9B,gBAA4B,CAC9BxoO,cAAe+6R,GACf/tN,kBAAmB/Y,EAAMu2K,mBACzBs8B,wBAAyB7yM,EAAMs4K,kBAC/Bi5B,kBAAmB,QAErB,CAAC,IAAIh9B,mBAA+B,CAClC,CAAC,GAAGA,kBAA6BA,gBAA4B,CAC3DxoO,cAAeg7R,GACfhuN,kBAAmB/Y,EAAMu2K,mBACzBs8B,wBAAyB7yM,EAAMs4K,mBAEjC,CAAC,GAAG/D,gBAA4B,CAC9BxoO,cAAei7R,GACfjuN,kBAAmB/Y,EAAMu2K,mBACzBs8B,wBAAyB7yM,EAAMs4K,mBAEjC,CAAC,SAAS/D,aAAyB,CACjCv6P,cAAe,UAEjB,CAAC,GAAGkuT,uBAAqC3zD,WAAuB,CAC9D39M,UAAW,QAEb,CAAC,GAAGsxQ,uBAAqCA,KAAoB,CAC3DxlV,SAAU,WACV/J,IAAK,OACLkF,QAAS,QACTm5H,gBAAiB,YAGrB,CAACkxN,GAAkB,CACjBvlV,SAAU,SACVilD,WAAY,OAAOo4D,EAAMkiL,qBAAqBliL,EAAMs4K,oBACpD,CAAC,GAAG4vD,UAAyB,CAC3BxlV,SAAU,WACV7E,QAAS,eACT7E,OAAQ6uV,EACRjgS,WAAY,OAAOo4D,EAAMu2K,sBAAsBv2K,EAAMs4K,oBACrDgwD,qBAAsB,cACtBC,yBAA0B,SAC1B,CAAC,MAAML,eAA8B,CACnClvV,OAAQ6uV,EACR5uV,OAAQ,EACRqvV,qBAAsB,cACtBC,yBAA0B,WAG9B,CAAC,GAAGL,YAA2B,CAC7BluT,cAAe,QAInB,QAAS,CACP86F,UAAW,MACX,CAAC,GAAGy/J,YAAuBA,UAAqB2zD,sBAAqC,CACnFtxQ,UAAW,4BAIlB,EAkDM4xQ,CADYtS,GAAal2N,KAE/B2pL,ICxPH,GAAe5U,GAAc,CAAC,QAAS,WAAW/0K,GA3E3BA,KACrB,MAAM,OACJ00K,EAAM,gBACNwyD,EAAe,SACf9gD,EAAQ,kBACRqhD,EAAiB,KACjBptE,GACEr6J,EACEyoO,EAAkB,GAAG/zD,WACrBg0D,EAAyB,GAAGh0D,mBAC5Bi0D,EAAqB51B,GAAe/yM,GAAO,CAACs9K,EAAUh7I,KAC1D,IAAI,UACF6wK,GACE7wK,EACJ,MAAO,CACL,CAAC,IAAImmM,WAAyBnrD,KAAa,CACzCzqK,WAAYsgM,EACZ76R,MAAO66R,GAEV,IAEH,MAAO,CACL,CAACu1B,GAAyB,CACxBhmV,SAAU,YAEZ,CAAC+lV,GAAkBprV,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACrGt9G,SAAU,WACV/J,IAAKytS,EACLxtQ,QAAS,KAAKv+B,GAAK2lH,EAAMwlL,aACzBltQ,MAAO0nF,EAAMu3K,aACb5iQ,WAAYt6B,GAAK6sV,GACjBxuM,WAAY,SACZ51I,gBAAiBk9G,EAAMu3K,aACvBmB,aAAc14K,EAAM65K,eACpB,CAAC,GAAG4uD,UAAyB,CAC3BnwT,MAAO0nF,EAAMonO,gBAEf,CAAC,GAAGqB,YAA2B,CAC7B/lV,SAAU,WACV/J,IAAK,OACLW,MAAOmuV,EACPzuV,OAAQyuV,EACRnvT,MAAO,eACP6zG,OAAQ,GAAG9xI,GAAKggR,EAAKotE,GAAmBz5H,IAAI,GAAG19C,iBAC/C15F,UAAWopC,EAAM0nO,2BACjB1wN,gBAAiB,MACjBxuH,OAAQw3G,EAAM2nO,2BAEdgB,GAAqB,CACvB,CAAC,IAAIF,mBAAkC,CACrC99C,eAAgBtwB,EAAKotE,GAAmB/3H,KAAK,GAAGp/C,QAChDskK,mBAAoB,EACpB,CAAC,GAAG6T,YAA2B,CAC7B99C,eAAgB,EAChB6uB,qBAAsB,cACtBovB,oBAAqB,gBAGzB,CAAC,IAAIH,qBAAoC,CACvC59C,iBAAkBxwB,EAAKotE,GAAmB/3H,KAAK,GAAGp/C,QAClDwkK,qBAAsB,EACtB,CAAC,GAAG2T,YAA2B,CAC7B59C,iBAAkB,EAClB+9C,oBAAqB,cACrBnU,uBAAwB,gBAI5B,QAAS,CACP3/M,UAAW,SAGhB,EAKM+zN,CADY3S,GAAal2N,KAE/B2pL,IChCH,SA5Cez6P,IACb,MAAM,UACJtwC,EACA+xO,UAAW2vC,EAAkB,MAC7B3jR,EAAK,MACL27B,EAAK,SACLkjB,EAAQ,KACRtoB,EAAI,UACJuwO,EAAY,MAAK,cACjB6L,GACEpgO,GACE,aACJixO,EAAY,UACZrrJ,GACEo2F,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,SAAUG,GACnCwoE,EAAa,GAAGn4G,aACf07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAWm4G,GACtDC,EAAgB/0B,GAAc17R,GAAO,GACrC0wT,EAAYn+H,KAAW8lB,EAAW,GAAGA,eAAuB8yB,IAAa,CAC7E,CAAC,GAAG9yB,SAAgC,QAAd77G,EACtB,CAAC,GAAG67G,WAAmBr4M,KAAUywT,GAChCnqV,GACGqqV,EAAa,CAAC,EACdC,EAAmB,CAAC,EAK1B,OAJI5wT,IAAUywT,IACZE,EAAWp2N,WAAav6F,EACxB4wT,EAAiB5wT,MAAQA,GAEpB+zQ,EAAwBnhF,EAAAA,cAAoB,MAAO,CACxDtsN,UAAWisN,KAAWi+H,EAAYx5E,EAAekV,EAAQ8nB,IACxD9wP,EAAuB0vK,EAAAA,cAAoB,MAAO,CACnDtsN,UAAWisN,KAAWm+H,EAAWxkE,GACjC7nR,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGwoV,GAAatsV,IACtCuuN,EAAAA,cAAoB,OAAQ,CAC1CtsN,UAAW,GAAG+xO,UACbz9M,GAAoBg4L,EAAAA,cAAoB,MAAO,CAChDtsN,UAAW,GAAG+xO,WACdh0O,MAAOusV,MACJ,EC1CDC,GAAaj6S,IACjB,MAAM,UACJyhM,EAAS,MACT16O,EAAK,QACLqnC,EAAO,OACP60B,EAAS,GACPjjB,EACJ,IAAIvyC,EAQJ,OAPIw1D,IACFx1D,EAAQ,CACN+F,SAAU,WACV/J,IAAK,GAAGw5D,OACRz5D,KAAM,IAGUwyN,EAAAA,cAAoB,OAAQ,CAC9CvuN,MAAOA,EACPiC,UAAWisN,KAAW,GAAG8lB,cAAuB,CAC9CrzM,aAEDrnC,EAAM,EAEX,SAAS6rP,GAAU5nO,EAAOC,EAAK9f,GAC7B,IAAIkN,EAAQ2S,EACRi4C,EAAS,EACb,MAAQ5qD,EAAQ,IAAM,KAAO4S,GAC3B5S,GAASlN,EACT83D,GAAU93D,EAEZ,OAAO83D,CACT,CACA,MAkEA,GAlEqBjjB,IACnB,MAAM,UACJyhM,EACAtlM,MAAO+9S,EACPnzV,MAAOg4P,GACL/+M,EACEj5C,EAAQsI,OAAO0vP,GACf5iN,EAAQxyC,KAAK6E,IAAI0rV,IAChBxwG,EAAWC,GAAgB3tB,EAAAA,SAAej1N,IAC1CozV,EAAWC,GAAgBp+H,EAAAA,SAAe7/K,GAE3Ck+S,EAAkBA,KACtB1wG,EAAa5iP,GACbqzV,EAAaj+S,EAAM,EASrB,IAAIm+S,EACAjvF,EACJ,GARArvC,EAAAA,WAAgB,KACd,MAAMu+H,EAAQllU,WAAWglU,EAAiB,KAC1C,MAAO,IAAMnyR,aAAaqyR,EAAM,GAC/B,CAACxzV,IAKA2iP,IAAc3iP,GAASsI,OAAOic,MAAMvkB,IAAUsI,OAAOic,MAAMo+N,GAE7D4wG,EAAY,CAAct+H,EAAAA,cAAoBi+H,GAAY9rV,OAAOoD,OAAO,CAAC,EAAGyuC,EAAO,CACjF/yC,IAAKlG,EACLqnC,SAAS,MAEXi9N,EAAc,CACZ3yM,WAAY,YAET,CACL4hS,EAAY,GAEZ,MAAMrvU,EAAMlkB,EAAQ,GACdyzV,EAAiB,GACvB,IAAK,IAAIniV,EAAQtR,EAAOsR,GAAS4S,EAAK5S,GAAS,EAC7CmiV,EAAexwV,KAAKqO,GAEtB,MAAMlN,EAAOgvV,EAAYh+S,EAAQ,GAAK,EAEhC4tE,EAAYywO,EAAe9gV,WAAUtI,GAAKA,EAAI,KAAOs4O,IAG3D4wG,GAD0BnvV,EAAO,EAAIqvV,EAAertV,MAAM,EAAG48G,EAAY,GAAKywO,EAAertV,MAAM48G,IACrEv0G,KAAI,CAACpE,EAAGiH,KACpC,MAAMoiV,EAAarpV,EAAI,GACvB,OAAoB4qN,EAAAA,cAAoBi+H,GAAY9rV,OAAOoD,OAAO,CAAC,EAAGyuC,EAAO,CAC3E/yC,IAAKmE,EACLrK,MAAO0zV,EACPx3R,OAAQ93D,EAAO,EAAIkN,EAAQ0xG,EAAY1xG,EACvC+1B,QAAS/1B,IAAU0xG,IAClB,IAGLshJ,EAAc,CACZ3jL,UAAW,eAAekrK,GAAUlJ,EAAW3iP,EAAOoE,SAE1D,CACA,OAAoB6wN,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAW,GAAG+xO,SACdh0O,MAAO49P,EACPgvF,gBAAiBA,GAChBC,EAAU,ECjGf,IAAIxmD,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAMA,MAqDA,GArDkCmgM,EAAAA,YAAiB,CAACh8K,EAAON,KACzD,MACI+hM,UAAW2vC,EAAkB,MAC7Bj1O,EAAK,UACLzsC,EAAS,gBACTs8P,EAAe,MACfv+P,EAAK,MACLymC,EAAK,KACLi3N,EACAp5B,UAAWrzH,EAAY,MAAK,SAC5BpyD,GACEtM,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,QAAS,YAAa,kBAAmB,QAAS,QAAS,OAAQ,YAAa,cACpH,aACJixO,GACEj1D,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,gBAAiBG,GAE1CspE,EAAWvsV,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG0wO,GAAY,CAC3D,YAAakpB,EACb19P,QACAiC,UAAWisN,KAAW8lB,EAAW/xO,EAAWs8P,GAC5C93N,MAAOA,IAGT,IAAIymT,EAAcx+S,EAClB,GAAIA,GAAS9sC,OAAO8sC,GAAS,IAAM,EAAG,CACpC,MAAMy+S,EAAaxrV,OAAO+sC,GAAO76B,MAAM,IACvCq5U,EAA2B3+H,EAAAA,cAAoB,MAAO,KAAM4+H,EAAWplV,KAAI,CAACwtO,EAAK35O,IAAoB2yN,EAAAA,cAAoB6+H,GAAc,CACrIp5G,UAAWA,EACXtlM,MAAO9sC,OAAO8sC,GACdp1C,MAAOi8O,EAEP/1O,IAAK2tV,EAAWtxV,OAASD,MAE7B,CASA,OALc,OAAVoE,QAA4B,IAAVA,OAAmB,EAASA,EAAMk9B,eACtD+vT,EAASjtV,MAAQU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG9D,GAAQ,CACvD47H,UAAW,aAAa57H,EAAMk9B,uBAG9B2hB,EACK0yD,GAAa1yD,GAAUwuS,IAAY,CACxCprV,UAAWisN,KAAW,GAAG8lB,qBAA2C,OAAbq5G,QAAkC,IAAbA,OAAsB,EAASA,EAASprV,UAAWs8P,OAG/GhwC,EAAAA,cAAoBt9G,EAAWvwG,OAAOoD,OAAO,CAAC,EAAGmpV,EAAU,CAC7Eh7S,IAAKA,IACHi7S,EAAY,IChElB,IAAI7mD,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAWA,MAgKMk/T,GAhK6B/+H,EAAAA,YAAiB,CAACh8K,EAAON,KAC1D,IAAIjb,EAAIC,EAAIiC,EAAIC,EAAI+I,EACpB,MACI8xM,UAAW2vC,EACX4pE,sBAAuBC,EAA8B,SACrD3uS,EAAQ,OACR1H,EAAM,KACN5gB,EAAI,MACJoF,EAAK,MACL+S,EAAQ,KAAI,cACZ++S,EAAgB,GAAE,IAClBC,GAAM,EAAK,KACX3wU,EAAO,UAAS,MAChB0pB,EAAK,OACL+uB,EAAM,MACNx1D,EAAK,UACLiC,EAAS,cACT0wQ,EAAa,WACbzkD,EAAU,OACV13L,EAAM,SACNm3T,GAAW,GACTp7S,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,wBAAyB,WAAY,SAAU,OAAQ,QAAS,QAAS,gBAAiB,MAAO,OAAQ,QAAS,SAAU,QAAS,YAAa,gBAAiB,aAAc,SAAU,cAC/N,aACJixO,EAAY,UACZrrJ,EAAS,MACTo2M,GACEhgH,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,QAASG,IACjC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAE3C45G,EAAuBl/S,EAAQ++S,EAAgB,GAAGA,KAAmB/+S,EACrEsjL,EAAkC,MAAzB47H,GAAyD,IAAzBA,EAEzCC,GAAwB,OAAX12S,QAA8BxvC,IAAXwvC,GAAkC,OAAVxb,QAA4Bh0B,IAAVg0B,KADlD,OAAV+S,GAAkBsjL,IAAW27H,GAE3CG,EAAYJ,IAAQ17H,EACpB+7H,EAAcD,EAAY,GAAKF,EAC/B58Q,GAAWlJ,EAAAA,EAAAA,UAAQ,KACS,OAAhBimR,QAAwCpmV,IAAhBomV,GAA6C,KAAhBA,GAClD/7H,IAAW27H,KAAcG,GAC3C,CAACC,EAAa/7H,EAAQ27H,EAAUG,IAE7BE,GAAWhmR,EAAAA,EAAAA,QAAOt5B,GACnBsiC,IACHg9Q,EAASrtT,QAAU+N,GAErB,MAAMu/S,EAAcD,EAASrtT,QAEvButT,GAAkBlmR,EAAAA,EAAAA,QAAO+lR,GAC1B/8Q,IACHk9Q,EAAgBvtT,QAAUotT,GAE5B,MAAMx0G,EAAe20G,EAAgBvtT,QAE/BwtT,GAAWnmR,EAAAA,EAAAA,QAAO8lR,GACnB98Q,IACHm9Q,EAASxtT,QAAUmtT,GAGrB,MAAM51F,GAAcpwL,EAAAA,EAAAA,UAAQ,KAC1B,IAAKtS,EACH,OAAO90D,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAa,OAAVyqU,QAA4B,IAAVA,OAAmB,EAASA,EAAMvuU,OAAQA,GAErG,MAAM49P,EAAc,CAClB5kI,UAAWxjE,EAAO,IAOpB,MALkB,QAAd2iE,EACFylI,EAAY7hQ,KAAOqlB,SAASo0C,EAAO,GAAI,IAEvCooM,EAAY13P,OAASkb,SAASo0C,EAAO,GAAI,IAEpC90D,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG85P,GAAwB,OAAV2wE,QAA4B,IAAVA,OAAmB,EAASA,EAAMvuU,OAAQA,EAAM,GACpI,CAACm4H,EAAW3iE,EAAQx1D,EAAiB,OAAVuuU,QAA4B,IAAVA,OAAmB,EAASA,EAAMvuU,QAG5E+0Q,EAAsB,OAAVtuO,QAA4B,IAAVA,EAAmBA,EAA+B,kBAAhBwnT,GAAmD,kBAAhBA,EAA2BA,OAActmV,EAE5IymV,EAAiBp9Q,IAAaz6C,EAAO,KAAoBg4L,EAAAA,cAAoB,OAAQ,CACzFtsN,UAAW,GAAG+xO,iBACbz9M,GAEG83T,EAAeJ,GAAsC,kBAAhBA,EAAuC18O,GAAa08O,GAAaZ,IAAY,CACtHrtV,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGo0P,GAAcm1F,EAASrtV,gBADM2H,EAIhE2vT,EAAkBD,GAAc17R,GAAO,GAEvC2yT,EAAYC,KAA0B,OAAfrgI,QAAsC,IAAfA,OAAwB,EAASA,EAAWsgI,UAAqF,QAAzEx3T,EAAe,OAAVu3S,QAA4B,IAAVA,OAAmB,EAASA,EAAMrgH,kBAA+B,IAAPl3L,OAAgB,EAASA,EAAGw3T,UAAW,CAClO,CAAC,GAAGx6G,gBAAyB65G,EAC7B,CAAC,GAAG75G,YAAoB78L,OAAaA,EACrC,CAAC,GAAG68L,WAAmBr4M,KAAU27R,IAE7Bn+D,EAAc,CAAC,EACjBx9N,IAAU27R,IACZn+D,EAAYx9N,MAAQA,EACpBw9N,EAAYjjI,WAAav6F,GAE3B,MAAM8yT,EAAiBF,KAAWv6G,EAAW,CAC3C,CAAC,GAAGA,YAAqB65G,EACzB,CAAC,GAAG75G,oBAA6Bn1L,EACjC,CAAC,GAAGm1L,SAAgC,QAAd77G,GACrBl2H,EAAW0wQ,EAAyB,OAAV47D,QAA4B,IAAVA,OAAmB,EAASA,EAAMtsU,UAAqF,QAAzEg1B,EAAe,OAAVs3S,QAA4B,IAAVA,OAAmB,EAASA,EAAMrgH,kBAA+B,IAAPj3L,OAAgB,EAASA,EAAGn4B,KAAqB,OAAfovN,QAAsC,IAAfA,OAAwB,EAASA,EAAWpvN,KAAM+oR,EAAQ8nB,GAEjS,IAAK9wP,GAAYgvS,EAAW,CAC1B,MAAMa,EAAkBx2F,EAAYv8N,MACpC,OAAO+zQ,EAAwBnhF,EAAAA,cAAoB,OAAQ7tN,OAAOoD,OAAO,CAAC,EAAG0wO,EAAW,CACtFvyO,UAAWwsV,EACXzuV,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAc,OAAX0yB,QAA8B,IAAXA,OAAoB,EAASA,EAAO13B,MAA6E,QAArEo6B,EAAe,OAAVq1S,QAA4B,IAAVA,OAAmB,EAASA,EAAM/3S,cAA2B,IAAP0C,OAAgB,EAASA,EAAGp6B,MAAOo5P,KACrN3pC,EAAAA,cAAoB,OAAQ,CAC3CtsN,UAAWqsV,EACXtuV,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAc,OAAX0yB,QAA8B,IAAXA,OAAoB,EAASA,EAAOg4T,WAAkF,QAArEr1T,EAAe,OAAVo1S,QAA4B,IAAVA,OAAmB,EAASA,EAAM/3S,cAA2B,IAAP2C,OAAgB,EAASA,EAAGq1T,WAAYr1F,KAC5O5iO,GAAsBg4L,EAAAA,cAAoB,OAAQ,CACpDvuN,MAAO,CACL27B,MAAO+yT,GAETzsV,UAAW,GAAG+xO,iBACbz9M,IACL,CACA,OAAOm5Q,EAAwBnhF,EAAAA,cAAoB,OAAQ7tN,OAAOoD,OAAO,CACvEmuC,IAAKA,GACJuiM,EAAW,CACZvyO,UAAWwsV,EACXzuV,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAyE,QAArEo+B,EAAe,OAAVqsS,QAA4B,IAAVA,OAAmB,EAASA,EAAM/3S,cAA2B,IAAP0L,OAAgB,EAASA,EAAGpjC,MAAkB,OAAX03B,QAA8B,IAAXA,OAAoB,EAASA,EAAO13B,QAC7M+/C,EAAuB0vK,EAAAA,cAAoB6pC,GAAW,CACxD7D,SAAUvjL,EACVynL,WAAY,GAAGzkB,SACf4gB,cAAc,EACdG,eAAgB,MACfpvG,IACD,IACE1jJ,UAAWs8P,GACT54G,EACJ,IAAI3uH,EAAIC,EACR,MAAMs2T,EAAwB/pE,EAAa,gBAAiBgqE,GACtDmB,EAAQR,EAASxtT,QACjBiuT,EAAkBL,KAA0B,OAAfrgI,QAAsC,IAAfA,OAAwB,EAASA,EAAWsgI,UAAqF,QAAzEx3T,EAAe,OAAVu3S,QAA4B,IAAVA,OAAmB,EAASA,EAAMrgH,kBAA+B,IAAPl3L,OAAgB,EAASA,EAAGw3T,UAAW,CACxO,CAAC,GAAGx6G,SAAkB26G,EACtB,CAAC,GAAG36G,YAAqB26G,EACzB,CAAC,GAAG36G,cAAgC,UAATj3N,EAC3B,CAAC,GAAGi3N,qBAA8B26G,GAASp1G,GAAgBA,EAAa7wO,WAAW7M,OAAS,EAC5F,CAAC,GAAGm4O,YAAoB78L,OAAaA,EACrC,CAAC,GAAG68L,WAAmBr4M,KAAU27R,IAEnC,IAAIu3B,EAAoBnuV,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAc,OAAX0yB,QAA8B,IAAXA,OAAoB,EAASA,EAAOg4T,WAAkF,QAArEv3T,EAAe,OAAVs3S,QAA4B,IAAVA,OAAmB,EAASA,EAAM/3S,cAA2B,IAAPS,OAAgB,EAASA,EAAGu3T,WAAYt2F,GAK/P,OAJIv8N,IAAU27R,IACZu3B,EAAoBA,GAAqB,CAAC,EAC1CA,EAAkB34N,WAAav6F,GAEb4yL,EAAAA,cAAoBugI,GAAc,CACpD96G,UAAWu5G,EACX7vF,MAAO1sL,EACPutL,gBAAiBA,EACjBt8P,UAAW2sV,EACXlgT,MAAO6qM,EACP9yM,MAAOsuO,EACP/0Q,MAAO6uV,EACPrvV,IAAK,gBACJ6uV,EAAY,IACbD,GAAgB,IAGtBd,GAAMyB,OAASA,GAIf,YCvLA,SADwB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,wRAA4R,KAAQ,eAAgB,MAAS,UCM5d,IAAIC,GAAoB,SAA2Bz8S,EAAON,GACxD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMsiJ,KAEV,EAOA,SAJ2B1gI,EAAAA,WAAiBygI,ICb5C,SADwB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,YAAa,UAAW,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,qsBAAysB,KAAQ,eAAgB,MAAS,UCMj6B,IAAIE,GAAoB,SAA2B38S,EAAON,GACxD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMwiJ,KAEV,EAOA,SAJ2B5gI,EAAAA,WAAiB2gI,ICb5C,SAD8B,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,uOAA2O,KAAQ,qBAAsB,MAAS,UCMvb,IAAIE,GAA0B,SAAiC78S,EAAON,GACpE,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM0iJ,KAEV,EAOA,SAJ2B9gI,EAAAA,WAAiB6gI,ICb5C,SADuB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,uOAA2O,KAAQ,cAAe,MAAS,UCMza,IAAIE,GAAmB,SAA0B/8S,EAAON,GACtD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM4iJ,KAEV,EAOA,SAJ2BhhI,EAAAA,WAAiB+gI,ICM5C,GAlBkBE,CAACx7S,EAAek2R,KAChC,MAAMulB,EAAalhI,EAAAA,WAAiBs8G,IAepC,MAAO,CAdWt8G,EAAAA,SAAc,KAC9B,IAAIv3L,EACJ,MAAMtI,EAASw7S,GAAiBwlB,GAAkB17S,GAC5C27S,EAAiH,QAA5F34T,EAAoB,OAAfy4T,QAAsC,IAAfA,OAAwB,EAASA,EAAWz7S,UAAmC,IAAPhd,EAAgBA,EAAK,CAAC,EACrJ,OAAOt2B,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAqB,oBAAX4qB,EAAwBA,IAAWA,GAASihU,GAAqB,CAAC,EAAE,GACjH,CAAC37S,EAAek2R,EAAeulB,IACZlhI,EAAAA,SAAc,KAClC,MAAMqhI,EAA4B,OAAfH,QAAsC,IAAfA,OAAwB,EAASA,EAAW/gU,OAEtF,OAAoB,OAAf+gU,QAAsC,IAAfA,OAAwB,EAASA,EAAWj1E,SAAWo1E,EAC1EF,GAAkBhhU,OAEpBkhU,CAAU,GAChB,CAACH,IAC6B,ECbnC,SAASI,GAAWC,GAClB,SAAoB,OAAVA,QAA4B,IAAVA,OAAmB,EAASA,EAAMn1V,KAChE,CACA,MA6FA,GA7FqB43C,IACnB,MAAM,KACJ7wC,EAAI,SACJm9C,EAAQ,UACRm1L,EAAS,YACT+7G,EAAW,MACXx2U,EAAK,UACLy1D,EAAS,UACTghR,EAAS,SACTC,EAAQ,yBACRC,EAAwB,SACxBC,GACE59S,EACE69S,EAAa7hI,EAAAA,QAAa,GAC1BsyH,EAAYtyH,EAAAA,OAAa,OACxB7hF,EAASg0M,GAAcz4Q,IAAS,GACjCooR,EAAkB,WACZ,OAAV92U,QAA4B,IAAVA,GAA4BA,EAAMxE,WAAM,EAAQ5K,UACpE,EACAokN,EAAAA,WAAgB,KACd,IAAI+hI,EAAY,KAShB,OARIthR,IACFshR,EAAY1oU,YAAW,KACrB,IAAIoP,EACyB,QAA5BA,EAAK6pT,EAAUlgT,eAA4B,IAAP3J,GAAyBA,EAAG/I,MAAM,CACrEsiU,eAAe,GACf,KAGC,KACDD,GACF71R,aAAa61R,EACf,CACD,GACA,IAmDH,OAAoB/hI,EAAAA,cAAoB1pB,GAAQnkM,OAAOoD,OAAO,CAAC,EAAG4yU,GAAmBh1U,GAAO,CAC1FmtE,QA/Bc3mD,IACd,GAAIkoU,EAAWzvT,QACb,OAGF,GADAyvT,EAAWzvT,SAAU,GAChBwvT,EAEH,YADAE,IAGF,IAAIG,EACJ,GAAIR,GAEF,GADAQ,EAAoBL,EAASjoU,GACzBgoU,IAA6BL,GAAWW,GAG1C,OAFAJ,EAAWzvT,SAAU,OACrB0vT,EAAgBnoU,QAGb,GAAIioU,EAASt0V,OAClB20V,EAAoBL,EAAS52U,GAE7B62U,EAAWzvT,SAAU,OAGrB,GADA6vT,EAAoBL,KACfN,GAAWW,GAEd,YADAH,IA5CoBG,KACnBX,GAAWW,KAGhB9P,GAAW,GACX8P,EAAkB71V,MAAK,WACrB+lV,GAAW,GAAO,GAClB2P,EAAgBt7U,WAAM,EAAQ5K,WAC9BimV,EAAWzvT,SAAU,CACvB,IAAGzY,IAKD,GAHAw4T,GAAW,GAAO,GAClB0P,EAAWzvT,SAAU,IAEJ,OAAbsvT,QAAkC,IAAbA,OAAsB,EAASA,KAGxD,OAAOvsV,QAAQmmB,OAAO3B,EAAE,IACxB,EA8BFuoU,CAAkBD,EAAkB,EAIpC9jN,QAASA,EACTsnG,UAAWA,GACV+7G,EAAa,CACd99S,IAAK4uS,IACHhiS,EAAS,ECnGF6xS,GAA4BniI,EAAAA,cAAoB,CAAC,IAE5D58G,SAAUg/O,IACRD,GCyBJ,GAxByBE,KACvB,MAAM,gBACJC,EAAe,kBACfC,EAAiB,iBACjBC,EAAgB,SAChBd,EAAQ,eACRe,EAAc,cACdj6D,EAAa,MACbx9Q,EAAK,SACL03U,EAAQ,UACRC,IACEzpR,EAAAA,EAAAA,YAAWipR,IACf,OAAOM,EAA+BziI,EAAAA,cAAoB4iI,GAAc,CACtElB,SAAUA,EACVE,SAAUc,EACV13U,MAAO,WACK,OAAVA,QAA4B,IAAVA,GAA4BA,EAAMxE,WAAM,EAAQ5K,WACpD,OAAd+mV,QAAoC,IAAdA,GAAgCA,GAAU,EAClE,EACAliR,UAA+B,WAApB6hR,EACXd,YAAae,EACb98G,UAAW,GAAG+iD,SACbg6D,GAAqB,IAAI,ECG9B,GAzBqBK,KACnB,MAAM,gBACJP,EAAe,MACft3U,EAAK,SACL02U,EAAQ,cACRoB,EAAa,cACbt6D,EAAa,aACbu6D,EAAY,OACZC,EAAM,UACNL,EAAS,KACTM,IACE/pR,EAAAA,EAAAA,YAAWipR,IACf,OAAoBniI,EAAAA,cAAoB4iI,GAAc,CACpDlB,SAAUA,EACVvuV,KAAM6vV,GAAU,UAChBpB,SAAUqB,EACVj4U,MAAO,WACK,OAAVA,QAA4B,IAAVA,GAA4BA,EAAMxE,WAAM,EAAQ5K,WACpD,OAAd+mV,QAAoC,IAAdA,GAAgCA,GAAU,EAClE,EACAliR,UAA+B,OAApB6hR,EACXd,YAAasB,EACbr9G,UAAW,GAAG+iD,SACbu6D,EAAa,EC1BlB,SADoB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,YAAa,UAAW,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,goBAAooB,KAAQ,QAAS,MAAS,YCMj1B,IAAIG,GAAgB,SAAuBl/S,EAAON,GAChD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM+kJ,KAEV,EAOA,SAJ2BnjI,EAAAA,WAAiBkjI,ICdrC,IAAIE,GAA0BpjI,EAAAA,cAAoB,CAAC,GCEtDqjI,GAAW,GAAG1yV,OAFD,ogCAEoB,KAAKA,OADzB,0tBAC4C2U,MAAM,WAKnE,SAASP,GAAM9T,EAAKkvG,GAClB,OAA+B,IAAxBlvG,EAAIJ,QAAQsvG,EACrB,CAMe,SAASmjP,GAAUt/S,GAChC,IACIu/S,EADAC,EAAW5nV,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAG5E2nV,GADe,IAAbC,EACa,CACbC,MAAM,EACN/6U,MAAM,EACN03H,MAAM,IAEc,IAAbojN,EACM,CACbC,MAAM,GAGO9+G,GAAc,CAAC,EAAG6+G,GAEnC,IAAIjxE,EAAQ,CAAC,EAYb,OAXApgR,OAAOC,KAAK4xC,GAAO/2C,SAAQ,SAAUgE,IAGnCsyV,EAAaE,OAAiB,SAARxyV,GAAkB8T,GAAM9T,EA9BjC,WAgCbsyV,EAAa76U,MAAQ3D,GAAM9T,EA/Bd,UAiCbsyV,EAAanjN,MAAQijN,GAAS/mV,SAASrL,MACrCshR,EAAMthR,GAAO+yC,EAAM/yC,GAEvB,IACOshR,CACT,CC5CO,SAASmxE,GAAcj+G,EAAWmf,EAAgB/jM,GACvD,IAAIqpM,EAAatF,EAIjB,OAHKsF,GAAcrpM,IACjBqpM,EAAa,GAAGv5P,OAAO80O,EAAW,KAAK90O,OAAOkwD,IAEzCqpM,CACT,CAGA,SAASy5F,GAAUhrV,EAAGlL,GACpB,IAAI+qK,EAAM7/J,EAAE,OAAOhI,OAAOlD,EAAM,IAAM,IAAK,WACvC2Q,EAAS,SAASzN,OAAOlD,EAAM,MAAQ,QAC3C,GAAmB,kBAAR+qK,EAAkB,CAC3B,IAAIzlK,EAAI4F,EAAElF,SAES,kBADnB+kK,EAAMzlK,EAAE40D,gBAAgBvpD,MAEtBo6J,EAAMzlK,EAAEiF,KAAKoG,GAEjB,CACA,OAAOo6J,CACT,CCpBA,SAA4BwnD,EAAAA,MAAW,SAAU5oE,GAE/C,OADeA,EAAK9mG,QAEtB,IAAG,SAAUhzB,EAAGurJ,GAEd,OADmBA,EAAMuzD,YAE3B,ICEA,IAAIwnH,GAAgB,CAClBx1V,MAAO,EACPN,OAAQ,EACR2J,SAAU,SACVmqM,QAAS,QAEPiiJ,GAAc,CAChBjiJ,QAAS,QAmIX,SAjIyBoe,EAAAA,YAAiB,SAAUh8K,EAAON,GACzD,IAAI+hM,EAAYzhM,EAAMyhM,UACpB/xO,EAAYswC,EAAMtwC,UAClBjC,EAAQuyC,EAAMvyC,MACdymC,EAAQ8L,EAAM9L,MACd4rT,EAAS9/S,EAAM8/S,OACf7pT,EAAS+J,EAAM/J,OACf8pT,EAAW//S,EAAM+/S,SACjBC,EAAYhgT,EAAMggT,UAClBC,EAAUjgT,EAAMigT,QAChB3zS,EAAWtM,EAAMsM,SACjB4zS,EAAYlgT,EAAMkgT,UAClBC,EAAYngT,EAAMmgT,UAClBC,EAAcpgT,EAAMogT,YACpBC,EAAcrgT,EAAMqgT,YACpBC,EAAYtgT,EAAMsgT,UAClB7gB,EAAYz/R,EAAMy/R,UAClBz9E,EAAUhiN,EAAMgiN,QAChBiE,EAAcjmN,EAAMimN,YACpB77P,EAAQ41C,EAAM51C,MACdN,EAASk2C,EAAMl2C,OACfy2V,EAAkBvgT,EAAM27K,WACxB6kI,EAAcxgT,EAAM/b,OAIpBw8T,EADsBzkI,EAAAA,WAAiBojI,IACVsB,MAC3B5gH,EAAYlH,GAAc6mG,EAAWghB,GACrCE,GAAmBlrR,EAAAA,EAAAA,UACnBmrR,GAAiBnrR,EAAAA,EAAAA,UACrBumJ,EAAAA,oBAA0Bt8K,GAAK,WAC7B,MAAO,CACLhkB,MAAO,WACL,IAAImlU,EACmD,QAAtDA,EAAwBF,EAAiBvyT,eAA+C,IAA1ByyT,GAAoCA,EAAsBnlU,MAAM,CAC7HsiU,eAAe,GAEnB,EACA8C,aAAc,SAAsBzkV,GAClC,IACE6e,EADczrB,SACYyrB,cACxB7e,GAAQ6e,IAAkB0lU,EAAexyT,QAC3CuyT,EAAiBvyT,QAAQ1S,MAAM,CAC7BsiU,eAAe,IAEP3hV,GAAQ6e,IAAkBylU,EAAiBvyT,SACrDwyT,EAAexyT,QAAQ1S,MAAM,CAC3BsiU,eAAe,GAGrB,EAEJ,IAGA,IAAI+C,EAAe,CAAC,OACN3rV,IAAVhL,IACF22V,EAAa32V,MAAQA,QAERgL,IAAXtL,IACFi3V,EAAaj3V,OAASA,GAGxB,IAAIk3V,EAAa/qT,EAAsB+lL,EAAAA,cAAoB,MAAO,CAChEtsN,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,WAAgC,OAApB8+G,QAAgD,IAApBA,OAA6B,EAASA,EAAgBtqT,QACzIxoC,MAAOkzO,GAAc,CAAC,EAAmB,OAAhB6/G,QAAwC,IAAhBA,OAAyB,EAASA,EAAYvqT,SAC9FA,GAAU,KACTgrT,EAAa/sT,EAAqB8nL,EAAAA,cAAoB,MAAO,CAC/DtsN,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,WAAgC,OAApB8+G,QAAgD,IAApBA,OAA6B,EAASA,EAAgBvqT,QACzIvoC,MAAOkzO,GAAc,CAAC,EAAmB,OAAhB6/G,QAAwC,IAAhBA,OAAyB,EAASA,EAAYxqT,SACjFgmL,EAAAA,cAAoB,MAAO,CACzCtsN,UAAW,GAAG/C,OAAO80O,EAAW,UAChC71N,GAAIk0U,GACH5rT,IAAU,KACTgtT,GAAc3rR,EAAAA,EAAAA,UAAQ,WACxB,MAA0B,YAAtB5qE,EAAAA,GAAAA,GAAQo1V,IAAuC,OAAbA,EAC7BA,EAELA,EACK,CACLC,UAAyB,OAAdA,QAAoC,IAAdA,EAAuBA,EAAyBhkI,EAAAA,cAAoB,OAAQ,CAC3GtsN,UAAW,GAAG/C,OAAO80O,EAAW,eAI/B,CAAC,CACV,GAAG,CAACs+G,EAAUC,EAAWv+G,IACrB0/G,EAAY7B,GAAU4B,GAAa,GACnCE,EAA2C,YAAtBz2V,EAAAA,GAAAA,GAAQo1V,IAA0BA,EAAS5zS,SAChEk1S,EAAatB,EAAwB/jI,EAAAA,cAAoB,SAAUoL,GAAS,CAC9Ej4N,KAAM,SACNmtE,QAAS2jR,EACT,aAAc,SACbkB,EAAW,CACZzxV,UAAW,GAAG/C,OAAO80O,EAAW,UAChCt1L,SAAUi1S,IACRF,EAAYlB,WAAa,KACzBp5U,EAAuBo1M,EAAAA,cAAoB,MAAO,CACpDtsN,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,YAAiC,OAApB8+G,QAAgD,IAApBA,OAA6B,EAASA,EAAgB35U,SAC1InZ,MAAuB,OAAhB+yV,QAAwC,IAAhBA,OAAyB,EAASA,EAAY55U,SAC5Ey6U,EAAYJ,EAAyBjlI,EAAAA,cAAoB,MAAOoL,GAAS,CAC1E13N,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,SAA8B,OAApB8+G,QAAgD,IAApBA,OAA6B,EAASA,EAAgBvsV,MACvIvG,MAAOkzO,GAAcA,GAAc,CAAC,EAAGu/G,GAA4B,OAAhBM,QAAwC,IAAhBA,OAAyB,EAASA,EAAYxsV,OACxHmsV,GAAY7zS,GAAW00S,GAC1B,OAAoBhlI,EAAAA,cAAoB,MAAO,CAC7C/uN,IAAK,iBACLspP,KAAM,SACN,kBAAmBriN,EAAQ4rT,EAAS,KACpC,aAAc,OACdpgT,IAAKogM,EACLryO,MAAOkzO,GAAcA,GAAc,CAAC,EAAGlzO,GAAQszV,GAC/CrxV,UAAWisN,KAAW8lB,EAAW/xO,GACjC2wV,YAAaA,EACbC,UAAWA,GACGtkI,EAAAA,cAAoB,MAAO,CACzCt8K,IAAKihT,EACL30G,SAAU,EACVv+O,MAAOoyV,IACO7jI,EAAAA,cAAoBslI,GAAc,CAChDlpH,aAAc4pB,GAAWiE,GACxBm6F,EAAcA,EAAYx5U,GAAWA,IAAwBo1M,EAAAA,cAAoB,MAAO,CACzFgwB,SAAU,EACVtsM,IAAKkhT,EACLnzV,MAAOmyV,KAEX,ICtIA,IAAI2B,GAAuBvlI,EAAAA,YAAiB,SAAUh8K,EAAON,GAC3D,IAAI+hM,EAAYzhM,EAAMyhM,UACpBvtM,EAAQ8L,EAAM9L,MACdzmC,EAAQuyC,EAAMvyC,MACdiC,EAAYswC,EAAMtwC,UAClBsyP,EAAUhiN,EAAMgiN,QAChBiE,EAAcjmN,EAAMimN,YACpBu7F,EAAiBxhT,EAAMwhT,eACvBt7F,EAAalmN,EAAMkmN,WACnB45F,EAAS9/S,EAAM8/S,OACfx8F,EAAmBtjN,EAAMsjN,iBACzBm+F,EAAgBzhT,EAAMyhT,cACpBC,GAAYjsR,EAAAA,EAAAA,UAIdquK,EAAmBC,GADC/nB,EAAAA,WAC+B,GACnDl0F,EAAkBg8G,EAAiB,GACnC69G,EAAqB79G,EAAiB,GACpCi9G,EAAe,CAAC,EAIpB,SAAS37F,IACP,IAAIw8F,EHXD,SAAgBr0V,GACrB,IAAIk6B,EAAOl6B,EAAG1E,wBACVwhB,EAAM,CACR7gB,KAAMi+B,EAAKj+B,KACXC,IAAKg+B,EAAKh+B,KAERw4B,EAAM10B,EAAGu+C,cACTn3C,EAAIstB,EAAI6hC,aAAe7hC,EAAI/a,aAG/B,OAFAmD,EAAI7gB,MAAQm2V,GAAUhrV,GACtB0V,EAAI5gB,KAAOk2V,GAAUhrV,GAAG,GACjB0V,CACT,CGAwB44C,CAAOy+R,EAAUtzT,SACrCuzT,EAAmBF,IAAkBA,EAAc3uU,GAAK2uU,EAAcvkU,GAAK,GAAGvwB,OAAO80V,EAAc3uU,EAAI8uU,EAAcp4V,KAAM,OAAOmD,OAAO80V,EAAcvkU,EAAI0kU,EAAcn4V,IAAK,MAAQ,GACxL,CAGA,OATIq+H,IACFi5N,EAAaj5N,gBAAkBA,GAQbk0F,EAAAA,cAAoB6pC,GAAW,CACjD7D,QAASA,EACTsB,iBAAkBA,EAClBZ,gBAAiB0C,EACjBzC,eAAgByC,EAChBa,YAAaA,EACbC,WAAYA,EACZF,cAAew7F,EACf9hT,IAAKgiT,IACJ,SAAUtuM,EAAM24G,GACjB,IAAIC,EAAkB54G,EAAK1jJ,UACzBu8P,EAAc74G,EAAK3lJ,MACrB,OAAoBuuN,EAAAA,cAAoB6lI,GAAOz6H,GAAS,CAAC,EAAGpnL,EAAO,CACjEN,IAAKA,EACLxL,MAAOA,EACP4rT,OAAQA,EACRr+G,UAAWA,EACXg+F,UAAW1zE,EACXt+P,MAAOkzO,GAAcA,GAAcA,GAAc,CAAC,EAAGsrB,GAAcx+P,GAAQszV,GAC3ErxV,UAAWisN,KAAWjsN,EAAWs8P,KAErC,GACF,IACAu1F,GAAQv3S,YAAc,UACtB,YCnCA,SAtBW,SAAchK,GACvB,IAAIyhM,EAAYzhM,EAAMyhM,UACpBh0O,EAAQuyC,EAAMvyC,MACdu0P,EAAUhiN,EAAMgiN,QAChB8/F,EAAY9hT,EAAM8hT,UAClB57F,EAAalmN,EAAMkmN,WACnBx2P,EAAYswC,EAAMtwC,UACpB,OAAoBssN,EAAAA,cAAoB6pC,GAAW,CACjD54P,IAAK,OACL+0P,QAASA,EACTkE,WAAYA,EACZC,gBAAiB,GAAGx5P,OAAO80O,EAAW,kBACrC,SAAUruF,EAAM1zG,GACjB,IAAIssN,EAAkB54G,EAAK1jJ,UACzBu8P,EAAc74G,EAAK3lJ,MACrB,OAAoBuuN,EAAAA,cAAoB,MAAOoL,GAAS,CACtD1nL,IAAKA,EACLjyC,MAAOkzO,GAAcA,GAAc,CAAC,EAAGsrB,GAAcx+P,GACrDiC,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,SAAUuqB,EAAiBt8P,IACrEoyV,GACL,GACF,EC8KA,SA1La,SAAgB9hT,GAC3B,IAAIglM,EAAmBhlM,EAAMyhM,UAC3BA,OAAiC,IAArBuD,EAA8B,YAAcA,EACxDtxO,EAASssC,EAAMtsC,OACfoyP,EAAiB9lN,EAAMgiN,QACvBA,OAA6B,IAAnB8D,GAAoCA,EAC9Ci8F,EAAkB/hT,EAAMgiT,SACxBA,OAA+B,IAApBD,GAAoCA,EAC/CE,EAAwBjiT,EAAMkiT,uBAC9BA,OAAmD,IAA1BD,GAA0CA,EACnEE,EAAYniT,EAAMmiT,UAClBC,EAAgBpiT,EAAMoiT,cACtBC,EAAYriT,EAAMqiT,UAClBpC,EAAUjgT,EAAMigT,QAChB76B,EAAkBplR,EAAMolR,gBACxBk9B,EAAatiT,EAAMsiT,WACnB1hG,EAAiB5gN,EAAM4gN,eACvBv7L,EAAYrlB,EAAMqlB,UAClBk9R,EAAkBviT,EAAM+/S,SACxBA,OAA+B,IAApBwC,GAAoCA,EAC/CC,EAAcxiT,EAAM0sG,KACpBA,OAAuB,IAAhB81M,GAAgCA,EACvCrxF,EAAqBnxN,EAAMmxN,mBAC3BC,EAAgBpxN,EAAMoxN,cACtBjB,EAAsBnwN,EAAMowN,aAC5BA,OAAuC,IAAxBD,GAAwCA,EACvDsyF,EAAYziT,EAAMyiT,UAClBX,EAAY9hT,EAAM8hT,UAClB1hF,EAAgBpgO,EAAMogO,cACtBmgF,EAAkBvgT,EAAM27K,WACxB6kI,EAAcxgT,EAAM/b,OAUtB,IAAIy+T,GAA8BjtR,EAAAA,EAAAA,UAC9B8pK,GAAa9pK,EAAAA,EAAAA,UACbktR,GAAaltR,EAAAA,EAAAA,UAEfquK,EAAmBC,GADC/nB,EAAAA,SAAegmC,GACgB,GACnD4gG,EAAkB9+G,EAAiB,GACnC++G,EAAqB/+G,EAAiB,GAGpCg8G,EAAS9pR,KAuCb,SAAS8nR,EAAgBnoU,GACX,OAAZsqU,QAAgC,IAAZA,GAAsBA,EAAQtqU,EACpD,CAGA,IAAImtU,GAAkBrtR,EAAAA,EAAAA,SAAO,GACzBstR,GAAoBttR,EAAAA,EAAAA,UAepButR,EAAiB,KACjB5yF,IACF4yF,EAAiB,SAAwBrtU,GACnCmtU,EAAgB10T,QAClB00T,EAAgB10T,SAAU,EACjBmxM,EAAWnxM,UAAYzY,EAAEziB,QAClC4qV,EAAgBnoU,EAEpB,IAgBFw/C,EAAAA,EAAAA,YAAU,WACJ6sL,IACF6gG,GAAmB,GApFhB3uV,GAASqrO,EAAWnxM,QAAS3+B,SAASyrB,iBACzCwnU,EAA4Bt0T,QAAU3+B,SAASyrB,eAsFnD,GAAG,CAAC8mO,KAGJ7sL,EAAAA,EAAAA,YAAU,WACR,OAAO,WACLjN,aAAa66R,EAAkB30T,QACjC,CACF,GAAG,IACH,IAAIu3N,EAAchlB,GAAcA,GAAcA,GAAc,CAC1DjtO,OAAQA,GACPyuV,GAA4B,OAAhB3B,QAAwC,IAAhBA,OAAyB,EAASA,EAAYx6P,SAAU,CAAC,EAAG,CACjGr3F,QAAUi0V,EAA2B,KAAT,SAI9B,OAAoB5mI,EAAAA,cAAoB,MAAOoL,GAAS,CACtD13N,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,SAAU2+B,IACpDk/E,GAAUt/S,EAAO,CAClBt7B,MAAM,KACUs3M,EAAAA,cAAoBouC,GAAM,CAC1C3oB,UAAWA,EACXugB,QAASt1G,GAAQs1G,EACjBkE,WAAYw5F,GAAcj+G,EAAW0vB,EAAoBC,GACzD3jQ,MAAOkzO,GAAcA,GAAc,CACjCjtO,OAAQA,GACP+uV,GAA4B,OAAhBjC,QAAwC,IAAhBA,OAAyB,EAASA,EAAY9zM,MACrFo1M,UAAWA,EACXpyV,UAA+B,OAApB6wV,QAAgD,IAApBA,OAA6B,EAASA,EAAgB7zM,OAC9EsvE,EAAAA,cAAoB,MAAOoL,GAAS,CACnD4kB,UAAW,EACXwK,UAjDF,SAA0B7gO,GACxB,GAAIqsU,GAAYrsU,EAAE2jC,UAAY4yL,GAAQU,IAGpC,OAFAj3N,EAAEojC,uBACF+kS,EAAgBnoU,GAKdqsO,GAAWrsO,EAAE2jC,UAAY4yL,GAAQE,KACnCu2G,EAAWv0T,QAAQ0yT,cAAcnrU,EAAEimC,SAEvC,EAuCElsD,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,SAAU2gH,EAAmC,OAApB7B,QAAgD,IAApBA,OAA6B,EAASA,EAAgBv6P,SACtJtmD,IAAK6/L,EACLjjK,QAAS0mR,EACTv1V,MAAOk4P,GACN08F,GAAyBrmI,EAAAA,cAAoBulI,GAASn6H,GAAS,CAAC,EAAGpnL,EAAO,CAC3EqgT,YA7EuB,WACvBn4R,aAAa66R,EAAkB30T,SAC/B00T,EAAgB10T,SAAU,CAC5B,EA2EEkyT,UA1EqB,WACrByC,EAAkB30T,QAAU/Y,YAAW,WACrCytU,EAAgB10T,SAAU,CAC5B,GACF,EAuEEsR,IAAKijT,EACL5C,SAAUA,EACVD,OAAQA,EACRr+G,UAAWA,EACXugB,QAASA,GAAW4gG,EACpB3C,QAASnC,EACTx6F,iBAvHF,SAAgC0d,GAE9B,GAAIA,GAVN,WAEI,IAAIiiF,EADD/uV,GAASqrO,EAAWnxM,QAAS3+B,SAASyrB,gBAEM,QAA9C+nU,EAAsBN,EAAWv0T,eAA6C,IAAxB60T,GAAkCA,EAAoBvnU,OAEjH,CAMIwnU,OACK,CAGL,GADAL,GAAmB,GACfn2M,GAAQg2M,EAA4Bt0T,SAAW8zT,EAAwB,CACzE,IACEQ,EAA4Bt0T,QAAQ1S,MAAM,CACxCsiU,eAAe,GAEnB,CAAE,MAAOroU,KACP,CAEF+sU,EAA4Bt0T,QAAU,IACxC,CAGIw0T,IACa,OAAfN,QAAsC,IAAfA,GAAyBA,IAEpD,CACoB,OAApBl9B,QAAgD,IAApBA,GAA8BA,EAAgBpkD,EAC5E,EAgGE9a,WAAYw5F,GAAcj+G,EAAWmf,EAAgBv7L,OAEzD,ECxLA,IAAI89R,GAAa,SAAoBnjT,GACnC,IAAIgiN,EAAUhiN,EAAMgiN,QAClBnJ,EAAe74M,EAAM64M,aACrBoN,EAAcjmN,EAAMimN,YACpBm9F,EAAwBpjT,EAAMwhT,eAC9BA,OAA2C,IAA1B4B,GAA2CA,EAC5DC,EAAcrjT,EAAMsiT,WACpB7B,EAAWzgT,EAAMygT,SAEjB38G,EAAmBC,GADC/nB,EAAAA,SAAegmC,GACgB,GACnD4gG,EAAkB9+G,EAAiB,GACnC++G,EAAqB/+G,EAAiB,GACpCw/G,EAAatnI,EAAAA,SAAc,WAC7B,MAAO,CACL0kI,MAAOD,EAEX,GAAG,CAACA,IAQJ,OAPAzkI,EAAAA,WAAgB,WACVgmC,GACF6gG,GAAmB,EAEvB,GAAG,CAAC7gG,IAGCiE,IAAeu7F,GAAmBoB,EAGnB5mI,EAAAA,cAAoBojI,GAAWhgP,SAAU,CAC3Dr4G,MAAOu8V,GACOtnI,EAAAA,cAAoB6/B,GAAQ,CAC1Cn0O,KAAMs6O,GAAWiE,GAAe28F,EAChC5mG,aAAa,EACbnD,aAAcA,EACdiD,SAAUkG,GAAW4gG,GACP5mI,EAAAA,cAAoBunI,GAAQn8H,GAAS,CAAC,EAAGpnL,EAAO,CAC9DwhT,eAAgBA,EAChBc,WAAY,WACM,OAAhBe,QAAwC,IAAhBA,GAA0BA,IAClDR,GAAmB,EACrB,OAdO,IAgBX,EACAM,GAAWn5S,YAAc,SACzB,MCvDA,GDuDA,GErDO,SAASw5S,GAAal1R,GAC3B,GAAKA,EAGL,MAAO,CACLyxR,SAAUzxR,EAAQyxR,SAClBC,UAAW1xR,EAAQ0xR,UAEvB,CAEA,SAASyD,GAAkBC,GACzB,MAAM,SACJ3D,EAAQ,UACRC,GACE0D,GAAsB,CAAC,EAC3B,OAAO1nI,EAAAA,SAAc,KACnB,IAEC+jI,KAA0B,IAAbA,IAAoC,IAAdC,GAAqC,OAAdA,GACzD,OAAO,EAET,QAAiB5qV,IAAb2qV,QAAwC3qV,IAAd4qV,EAC5B,OAAO,KAET,IAAI2D,EAAiB,CACnB3D,UAAgC,mBAAdA,GAAyC,OAAdA,EAAqBA,OAAY5qV,GAKhF,OAHI2qV,GAAgC,kBAAbA,IACrB4D,EAAiBx1V,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGoyV,GAAiB5D,IAE7D4D,CAAc,GACpB,CAAC5D,EAAUC,GAChB,CAKA,SAAS4D,KACP,MAAM1wV,EAAS,CAAC,EAChB,IAAK,IAAIulO,EAAO7gO,UAAUtO,OAAQu6V,EAAU,IAAI76V,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClFmrH,EAAQnrH,GAAQ9gO,UAAU8gO,GAW5B,OATAmrH,EAAQ56V,SAAQ2B,IACVA,GACFuD,OAAOC,KAAKxD,GAAK3B,SAAQgE,SACNmI,IAAbxK,EAAIqC,KACNiG,EAAOjG,GAAOrC,EAAIqC,GACpB,GAEJ,IAEKiG,CACT,CAEA,MAAM4wV,GAA+B,CAAC,EACvB,SAASC,GAAYC,EAAqBC,GACvD,IAAIC,EAA0BtsV,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAKksV,GAElG,MAAMK,EAAkBV,GAAkBO,GACpCI,EAAqBX,GAAkBQ,GACvC7C,EAAgD,mBAApB+C,MAAuD,OAApBA,QAAgD,IAApBA,OAA6B,EAASA,EAAgBh4S,UACjJk4S,EAAgCroI,EAAAA,SAAc,IAAM7tN,OAAOoD,OAAO,CACtEyuV,UAAwBhkI,EAAAA,cAAoBkjI,GAAe,OAC1DgF,IAA0B,CAACA,IAExBI,EAAuBtoI,EAAAA,SAAc,KAGjB,IAApBmoI,IAGAA,EACKP,GAAuBS,EAA+BD,EAAoBD,IAIxD,IAAvBC,IAGAA,EACKR,GAAuBS,EAA+BD,KAGvDC,EAA8BtE,UAAmBsE,KACxD,CAACF,EAAiBC,EAAoBC,IAEzC,OAAOroI,EAAAA,SAAc,KACnB,IAA6B,IAAzBsoI,EACF,MAAO,EAAC,EAAO,KAAMlD,GAEvB,MAAM,gBACJmD,GACEF,GACE,UACJrE,GACEsE,EACJ,IAAIE,EAAkBxE,EACtB,GAAwB,OAApBwE,QAAgDpvV,IAApBovV,EAA+B,CAEzDD,IACFC,EAAkBD,EAAgBvE,IAGpC,MAAMmB,EAAY7B,GAAUgF,GAAsB,GAC9Cn2V,OAAOC,KAAK+yV,GAAW73V,SACzBk7V,EAA+BxoI,EAAAA,eAAqBwoI,GAAiCxoI,EAAAA,aAAmBwoI,EAAiBrD,GAA4BnlI,EAAAA,cAAoB,OAAQ7tN,OAAOoD,OAAO,CAAC,EAAG4vV,GAAYqD,GAEnN,CACA,MAAO,EAAC,EAAMA,EAAiBpD,EAAmB,GACjD,CAACkD,EAAsBD,GAC5B,CCjHO,MC6BP,GA3BgBrkT,IACd,MAAM,UACJyhM,EAAS,UACT/xO,EAAS,MACTjC,EAAK,KACL+c,EAAI,MACJi4B,GACEzC,EACEgkS,EAAUroH,KAAW,CACzB,CAAC,GAAG8lB,QAA0B,UAATj3N,EACrB,CAAC,GAAGi3N,QAA0B,UAATj3N,IAEjBi6U,EAAW9oI,KAAW,CAC1B,CAAC,GAAG8lB,YAA+B,WAAVh/L,EACzB,CAAC,GAAGg/L,YAA+B,WAAVh/L,EACzB,CAAC,GAAGg/L,WAA8B,UAAVh/L,IAEpB0yS,EAAYn5H,EAAAA,SAAc,IAAsB,kBAATxxM,EAAoB,CAC/DpgB,MAAOogB,EACP1gB,OAAQ0gB,EACRib,WAAY,GAAGjb,OACb,CAAC,GAAG,CAACA,IACT,OAAoBwxM,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAWisN,KAAW8lB,EAAWuiG,EAASygB,EAAU/0V,GACpDjC,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG4jV,GAAY1nV,IACnD,EC3BEi3V,GAAqB,IAAI7hC,GAAU,uBAAwB,CAC/D,KAAM,CACJx+L,mBAAoB,YAEtB,OAAQ,CACNA,mBAAoB,WAGlBsgO,GAA+Bn6U,IAAQ,CAC3C1gB,OAAQ0gB,EACRib,WAAYt6B,GAAKqf,KAEbo6U,GAA+Bp6U,GAAQrc,OAAOoD,OAAO,CACzDnH,MAAOogB,GACNm6U,GAA6Bn6U,IAC1Bq6U,GAAmB/zO,IAAS,CAChC6S,WAAY7S,EAAMg0O,0BAClBrgO,eAAgB,YAChB5nE,cAAe6nS,GACf76N,kBAAmB/Y,EAAMi0O,8BACzBphC,wBAAyB,OACzBv2Q,wBAAyB,aAErB43S,GAA8BA,CAACx6U,EAAM2gQ,IAASh9Q,OAAOoD,OAAO,CAChEnH,MAAO+gR,EAAK3gQ,GAAMg2M,IAAI,GAAGp/C,QACzBntI,SAAUk3O,EAAK3gQ,GAAMg2M,IAAI,GAAGp/C,SAC3BujL,GAA6Bn6U,IAC1By6U,GAA2Bn0O,IAC/B,MAAM,kBACJo0O,EAAiB,kBACjBC,EAAiB,cACjBv7D,EAAa,gBACboB,EAAe,gBACfF,GACEh6K,EACJ,MAAO,CACL,CAACo0O,GAAoB/2V,OAAOoD,OAAO,CACjC5C,QAAS,eACTm8B,cAAe,MACf64F,WAAYwhO,GACXP,GAA6Bh7D,IAChC,CAAC,GAAGs7D,IAAoBA,YAA6B,CACnD17D,aAAc,OAEhB,CAAC,GAAG07D,IAAoBA,QAAyB/2V,OAAOoD,OAAO,CAAC,EAAGqzV,GAA6B55D,IAChG,CAAC,GAAGk6D,IAAoBA,QAAyB/2V,OAAOoD,OAAO,CAAC,EAAGqzV,GAA6B95D,IACjG,EAEGs6D,GAA0Bt0O,IAC9B,MAAM,cACJ84K,EAAa,eACbe,EAAc,iBACd06D,EAAgB,gBAChBr6D,EAAe,gBACfF,EAAe,kBACfq6D,EAAiB,KACjBh6E,GACEr6J,EACJ,MAAO,CACL,CAACu0O,GAAmBl3V,OAAOoD,OAAO,CAChC5C,QAAS,eACTm8B,cAAe,MACf64F,WAAYwhO,EACZ37D,aAAcmB,GACbq6D,GAA4Bp7D,EAAeze,IAC9C,CAAC,GAAGk6E,QAAwBl3V,OAAOoD,OAAO,CAAC,EAAGyzV,GAA4Bh6D,EAAiB7f,IAC3F,CAAC,GAAGk6E,QAAwBl3V,OAAOoD,OAAO,CAAC,EAAGyzV,GAA4Bl6D,EAAiB3f,IAC5F,EAEGm6E,GAA8B96U,GAAQrc,OAAOoD,OAAO,CACxDnH,MAAOogB,GACNm6U,GAA6Bn6U,IAC1B+6U,GAA0Bz0O,IAC9B,MAAM,iBACJ00O,EAAgB,cAChBC,EAAa,kBACbN,EAAiB,eACjBx6D,EAAc,KACdxf,GACEr6J,EACJ,MAAO,CACL,CAAC00O,GAAmBr3V,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC9C5C,QAAS,cACTs5R,WAAY,SACZyT,eAAgB,SAChB5wQ,cAAe,SACf64F,WAAYwhO,EACZ37D,aAAcmB,GACb26D,GAA4Bn6E,EAAKs6E,GAAejlI,IAAI,GAAGp/C,UAAW,CACnE,CAAC,GAAGokL,UAA0B,CAC5BzxP,KAAM,WAER,CAAC,GAAGyxP,SAAyBr3V,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG+zV,GAA4BG,IAAiB,CACxGv/T,SAAUilP,EAAKs6E,GAAejlI,IAAI,GAAGp/C,QACrC+pJ,UAAWhgD,EAAKs6E,GAAejlI,IAAI,GAAGp/C,UAExC,CAAC,GAAGokL,QAAuBA,gBAAgC,CACzDh8D,aAAc,SAGlB,CAAC,GAAGg8D,IAAmBA,YAA4B,CACjDh8D,aAAc,OAEjB,EAEGk8D,GAAgCA,CAAC50O,EAAOtmG,EAAMm7U,KAClD,MAAM,kBACJC,GACE90O,EACJ,MAAO,CACL,CAAC,GAAG60O,IAAYC,YAA6B,CAC3Cx7V,MAAOogB,EACPypB,SAAUzpB,EACVg/Q,aAAc,OAEhB,CAAC,GAAGm8D,IAAYC,WAA4B,CAC1Cp8D,aAAch/Q,GAEjB,EAEGq7U,GAA+BA,CAACr7U,EAAM2gQ,IAASh9Q,OAAOoD,OAAO,CACjEnH,MAAO+gR,EAAK3gQ,GAAMg2M,IAAI,GAAGp/C,QACzBntI,SAAUk3O,EAAK3gQ,GAAMg2M,IAAI,GAAGp/C,SAC3BujL,GAA6Bn6U,IAC1Bs7U,GAA2Bh1O,IAC/B,MAAM,eACJ65K,EAAc,kBACdi7D,EAAiB,cACjBh8D,EAAa,gBACboB,EAAe,gBACfF,EAAe,kBACfq6D,EAAiB,KACjBh6E,GACEr6J,EACJ,OAAO3iH,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC3E,CAACq0V,GAAoBz3V,OAAOoD,OAAO,CACjC5C,QAAS,eACTm8B,cAAe,MACf64F,WAAYwhO,EACZ37D,aAAcmB,EACdvgS,MAAO+gR,EAAKye,GAAeppE,IAAI,GAAGp/C,QAClCntI,SAAUk3O,EAAKye,GAAeppE,IAAI,GAAGp/C,SACpCykL,GAA6Bj8D,EAAeze,KAC9Cu6E,GAA8B50O,EAAO84K,EAAeg8D,IAAqB,CAC1E,CAAC,GAAGA,QAAyBz3V,OAAOoD,OAAO,CAAC,EAAGs0V,GAA6B76D,EAAiB7f,MAC3Fu6E,GAA8B50O,EAAOk6K,EAAiB,GAAG46D,SAA0B,CACrF,CAAC,GAAGA,QAAyBz3V,OAAOoD,OAAO,CAAC,EAAGs0V,GAA6B/6D,EAAiB3f,MAC3Fu6E,GAA8B50O,EAAOg6K,EAAiB,GAAG86D,QAAwB,EAGjFtlB,GAAexvN,IACnB,MAAM,aACJu0K,EAAY,kBACZ6/D,EAAiB,iBACjBa,EAAgB,qBAChBC,EAAoB,kBACpBJ,EAAiB,iBACjBP,EAAgB,iBAChBG,EAAgB,cAChB57D,EAAa,gBACboB,EAAe,gBACfF,EAAe,kBACfq6D,EAAiB,QACjBz7T,EAAO,SACPytQ,EAAQ,aACR3N,EAAY,YACZy8D,EAAW,YACXC,EAAW,kBACXC,EAAiB,gBACjBp7D,EAAe,mBACfq7D,GACEt1O,EACJ,MAAO,CACL,CAACu0K,GAAe,CACd12R,QAAS,QACTvE,MAAO,OACP,CAAC,GAAGi7R,YAAwB,CAC1B12R,QAAS,aACTo8T,iBAAkBrhS,EAClBoB,cAAe,MAEf,CAACo6T,GAAoB/2V,OAAOoD,OAAO,CACjC5C,QAAS,eACTm8B,cAAe,MACf64F,WAAYwhO,GACXP,GAA6Bh7D,IAChC,CAAC,GAAGs7D,YAA6B,CAC/B17D,aAAc,OAEhB,CAAC,GAAG07D,QAAyB/2V,OAAOoD,OAAO,CAAC,EAAGqzV,GAA6B55D,IAC5E,CAAC,GAAGk6D,QAAyB/2V,OAAOoD,OAAO,CAAC,EAAGqzV,GAA6B95D,KAE9E,CAAC,GAAGzF,aAAyB,CAC3B12R,QAAS,aACTvE,MAAO,OACP0gC,cAAe,MAEf,CAACi7T,GAAmB,CAClB37V,MAAO,OACPN,OAAQm8V,EACRtiO,WAAYwhO,EACZ37D,aAAc08D,EACd,CAAC,KAAKF,KAAyB,CAC7BK,iBAAkBv7D,IAItB,CAACk7D,GAAuB,CACtBt8T,QAAS,EACT,OAAQ,CACNt/B,MAAO,OACPN,OAAQq8V,EACRl/D,UAAW,OACXtjK,WAAYwhO,EACZ37D,aAAc08D,EACd,OAAQ,CACNG,iBAAkBt7D,KAIxB,CAAC,GAAGi7D,yDAA6E,CAC/E57V,MAAO,QAGX,CAAC,WAAWi7R,aAAyB,CACnC,CAAC,GAAG0gE,MAAqBC,UAA8B,CACrDx8D,kBAIN,CAAC,GAAGnE,iBAA4BA,aAAyB,CAEvD,CAAC0gE,GAAmB,CAClBM,iBAAkBlvD,EAClB,CAAC,KAAK6uD,KAAyB,CAC7BK,iBAAkBD,KAKxB,CAAC,GAAG/gE,IAAeA,aAAyBl3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAClG5C,QAAS,eACTvE,MAAO,QACN07V,GAAyBh1O,IAASm0O,GAAyBn0O,IAASs0O,GAAwBt0O,IAASy0O,GAAwBz0O,IAEhI,CAAC,GAAGu0K,IAAeA,WAAuB,CACxCj7R,MAAO,OACP,CAACw7V,GAAoB,CACnBx7V,MAAO,QAET,CAACi7V,GAAmB,CAClBj7V,MAAO,SAIX,CAAC,GAAGi7R,IAAeA,YAAwB,CACzC,CAAC,aACG0gE,eACAC,oBACAd,eACAU,eACAP,eACAG,aACAr3V,OAAOoD,OAAO,CAAC,EAAGszV,GAAiB/zO,KAE1C,EAqBH,GAAe+0K,GAAc,YAAY/0K,IACvC,MAAM,aACJu0K,EAAY,KACZla,GACEr6J,EACEw1O,EAAgBxjE,GAAWhyK,EAAO,CACtCo0O,kBAAmB,GAAG7/D,WACtB0gE,iBAAkB,GAAG1gE,UACrB2gE,qBAAsB,GAAG3gE,cACzBugE,kBAAmB,GAAGvgE,WACtBggE,iBAAkB,GAAGhgE,UACrBmgE,iBAAkB,GAAGngE,UACrBogE,cAAet6E,EAAKr6J,EAAM84K,eAAeppE,IAAI,KAAKp/C,QAClDooH,aAAc,IAEds7D,0BAA2B,0BAA0Bh0O,EAAMq0O,0BAA0Br0O,EAAMy1O,wBAAwBz1O,EAAMq0O,yBACzHJ,8BAA+B,SAEjC,MAAO,CAACzkB,GAAagmB,GAAe,IApCDx1O,IACnC,MAAM,iBACJwjL,EAAgB,UAChBjH,GACEv8K,EAGJ,MAAO,CACL1nF,MAHwBkrQ,EAIxBkyD,iBAHsBn5D,EAItB83D,kBALwB7wD,EAMxBiyD,gBALsBl5D,EAMtB44D,YAAan1O,EAAM84K,cAAgB,EACnCs8D,YAAap1O,EAAM65K,eACnBy7D,mBAAoBt1O,EAAMumL,SAAWvmL,EAAMmmL,UAC3CkvD,kBAAmBr1O,EAAM84K,cAAgB,EAC1C,GAqBuB,CACxB7H,iBAAkB,CAAC,CAAC,QAAS,qBAAsB,CAAC,mBAAoB,sBClR1E,GA1BuB/hP,IACrB,MACEyhM,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,OACbnlP,EAAM,MACNwnB,EAAQ,SAAQ,KAChBj4B,EAAO,WACLw1B,GACE,aACJixO,GACEj1D,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,WAAYG,IACpC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3Co7D,EAAansM,GAAK1wD,EAAO,CAAC,YAAa,cACvC6pI,EAAM8xC,KAAW8lB,EAAW,GAAGA,YAAqB,CACxD,CAAC,GAAGA,YAAqBxmN,GACxBvrB,EAAW0wQ,EAAekV,EAAQ8nB,GACrC,OAAOD,EAAwBnhF,EAAAA,cAAoB,MAAO,CACxDtsN,UAAWm6K,GACGmyC,EAAAA,cAAoBj7C,GAAS5yK,OAAOoD,OAAO,CACzDkwO,UAAW,GAAGA,WACdh/L,MAAOA,EACPj4B,KAAMA,GACLqyR,KAAc,ECKnB,GA9BsB78P,IACpB,MACEyhM,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,MACb3yQ,EAAK,OACLwtB,GACE+kB,GACE,aACJixO,GACEj1D,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,WAAYG,IACpC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3C53D,EAAM8xC,KAAW8lB,EAAW,GAAGA,YAAqB,CACxD,CAAC,GAAGA,YAAqBxmN,GACxBvrB,EAAW0wQ,EAAekV,EAAQ8nB,GACrC,OAAOD,EAAwBnhF,EAAAA,cAAoB,MAAO,CACxDtsN,UAAWm6K,GACGmyC,EAAAA,cAAoB,MAAO,CACzCtsN,UAAWisN,KAAW,GAAG8lB,UAAmB/xO,GAC5CjC,MAAOA,GACOuuN,EAAAA,cAAoB,MAAO,CACzCyqI,QAAS,gBACTh3N,MAAO,6BACP//H,UAAW,GAAG+xO,eACAzlB,EAAAA,cAAoB,QAAS,KAAM,qBAAmCA,EAAAA,cAAoB,OAAQ,CAChHjtN,EA3BS,k3BA4BTW,UAAW,GAAG+xO,oBACV,ECDR,GA1BsBzhM,IACpB,MACEyhM,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,OACbnlP,EAAM,MACN44F,EAAK,KACLrpG,EAAO,WACLw1B,GACE,aACJixO,GACEj1D,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,WAAYG,IACpC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3Co7D,EAAansM,GAAK1wD,EAAO,CAAC,cAC1B6pI,EAAM8xC,KAAW8lB,EAAW,GAAGA,YAAqB,CACxD,CAAC,GAAGA,YAAqBxmN,EACzB,CAAC,GAAGwmN,WAAoB5tH,GACvBnkH,EAAW0wQ,EAAekV,EAAQ8nB,GACrC,OAAOD,EAAwBnhF,EAAAA,cAAoB,MAAO,CACxDtsN,UAAWm6K,GACGmyC,EAAAA,cAAoBj7C,GAAS5yK,OAAOoD,OAAO,CACzDkwO,UAAW,GAAGA,UACdj3N,KAAMA,GACLqyR,KAAc,ECFnB,GAxBqB78P,IACnB,MACEyhM,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,MACb3yQ,EAAK,OACLwtB,EAAM,SACNqxB,GACEtM,GACE,aACJixO,GACEj1D,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,WAAYG,IACpC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3C53D,EAAM8xC,KAAW8lB,EAAW,GAAGA,YAAqB,CACxD,CAAC,GAAGA,YAAqBxmN,GACxBq6P,EAAQ5lR,EAAW0wQ,EAAeg9B,GACrC,OAAOD,EAAwBnhF,EAAAA,cAAoB,MAAO,CACxDtsN,UAAWm6K,GACGmyC,EAAAA,cAAoB,MAAO,CACzCtsN,UAAWisN,KAAW,GAAG8lB,UAAmB/xO,GAC5CjC,MAAOA,GACN6+C,IAAW,ECvBV5kB,GAAWA,CAACrvB,EAAO2nC,KACvB,MAAM,MACJ51C,EAAK,KACLy6B,EAAO,GACLmb,EACJ,OAAIh3C,MAAMqR,QAAQjQ,GACTA,EAAMiO,GAGXwsB,EAAO,IAAMxsB,EACRjO,OADT,CAGgB,EAuBlB,GArBkB41C,IAChB,MAAM,UACJyhM,EAAS,UACT/xO,EAAS,MACTjC,EAAK,KACLo3B,GACEmb,EACE0mT,EAAUv7G,GAAmB,IAAIniP,MAAM67B,IAAOrvB,KAAI,CAAC8jB,EAAGjhB,IAG5D2jN,EAAAA,cAAoB,KAAM,CACxB/uN,IAAKoL,EACL5K,MAAO,CACLrD,MAAOs9B,GAASrvB,EAAO2nC,QAG3B,OAAoBg8K,EAAAA,cAAoB,KAAM,CAC5CtsN,UAAWisN,KAAW8lB,EAAW/xO,GACjCjC,MAAOA,GACNi5V,EAAQ,ECfb,GAlBctzM,IACZ,IAAI,UACFquF,EAAS,UACT/xO,EAAS,MACTtF,EAAK,MACLqD,GACE2lJ,EACJ,OAGE4oE,EAAAA,cAAoB,KAAM,CACxBtsN,UAAWisN,KAAW8lB,EAAW/xO,GACjCjC,MAAOU,OAAOoD,OAAO,CACnBnH,SACCqD,IACH,ECNN,SAASk5V,GAAkBn+V,GACzB,OAAIA,GAAwB,kBAATA,EACVA,EAEF,CAAC,CACV,CAyCA,MAAMo+V,GAAW5mT,IACf,MACEyhM,UAAW2vC,EAAkB,QAC7Bj3I,EAAO,UACPzqI,EAAS,cACT0wQ,EAAa,MACb3yQ,EAAK,SACL6+C,EAAQ,OACR+vR,GAAS,EAAK,MACdnoS,GAAQ,EAAI,UACZ2yT,GAAY,EAAI,OAChB5rU,EAAM,MACNqF,GACE0f,GACE,aACJixO,EAAY,UACZrrJ,EACAl2H,UAAW80O,EACX/2O,MAAO83T,GACL/zC,GAAmB,YACjB/vC,EAAYwvC,EAAa,WAAYG,IACpC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GACjD,GAAItnG,KAAa,YAAan6F,GAAQ,CACpC,MAAM8mT,IAAczqB,EACd0qB,IAAa7yT,EACb8yT,IAAiBH,EAEvB,IAAII,EAUAzQ,EATJ,GAAIsQ,EAAW,CACb,MAAMI,EAAc/4V,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC9CkwO,UAAW,GAAGA,YAtEtB,SAA6BslH,EAAUC,GACrC,OAAID,IAAaC,EAER,CACLx8U,KAAM,QACNi4B,MAAO,UAGJ,CACLj4B,KAAM,QACNi4B,MAAO,SAEX,CA2DS0kT,CAAoBJ,EAAUC,IAAgBL,GAAkBtqB,IAEnE4qB,EAA0BjrI,EAAAA,cAAoB,MAAO,CACnDtsN,UAAW,GAAG+xO,YACAzlB,EAAAA,cAAoBj7C,GAAS5yK,OAAOoD,OAAO,CAAC,EAAG21V,IACjE,CAEA,GAAIH,GAAYC,EAAc,CAE5B,IAAII,EAQAC,EAPJ,GAAIN,EAAU,CACZ,MAAMO,EAAan5V,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC7CkwO,UAAW,GAAGA,WAtExB,SAA4BqlH,EAAWE,GACrC,OAAKF,GAAaE,EACT,CACL58V,MAAO,OAGP08V,GAAaE,EACR,CACL58V,MAAO,OAGJ,CAAC,CACV,CA2DWm9V,CAAmBT,EAAWE,IAAgBL,GAAkBzyT,IACnEkzT,EAAsBprI,EAAAA,cAAoBwrI,GAAOr5V,OAAOoD,OAAO,CAAC,EAAG+1V,GACrE,CAGA,GAAIN,EAAc,CAChB,MAAMS,EAAiBt5V,OAAOoD,OAAOpD,OAAOoD,OAAO,CACjDkwO,UAAW,GAAGA,eAjExB,SAAgCqlH,EAAWC,GACzC,MAAMW,EAAa,CAAC,EAWpB,OATKZ,GAAcC,IACjBW,EAAWt9V,MAAQ,OAInBs9V,EAAW7iU,MADRiiU,GAAaC,EACE,EAEA,EAEbW,CACT,CAqDWC,CAAuBb,EAAWC,IAAYJ,GAAkBE,IACnEQ,EAA6BrrI,EAAAA,cAAoB4rI,GAAWz5V,OAAOoD,OAAO,CAAC,EAAGk2V,GAChF,CACAjR,EAA2Bx6H,EAAAA,cAAoB,MAAO,CACpDtsN,UAAW,GAAG+xO,aACb2lH,EAAQC,EACb,CACA,MAAMx9K,EAAM8xC,KAAW8lB,EAAW,CAChC,CAAC,GAAGA,iBAA0BqlH,EAC9B,CAAC,GAAGrlH,YAAqBxmN,EACzB,CAAC,GAAGwmN,SAAgC,QAAd77G,EACtB,CAAC,GAAG67G,WAAoBnhN,GACvBkkN,EAAkB90O,EAAW0wQ,EAAekV,EAAQ8nB,GACvD,OAAOD,EAAwBnhF,EAAAA,cAAoB,MAAO,CACxDtsN,UAAWm6K,EACXp8K,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg0T,GAAe93T,IACrDw5V,EAAYzQ,GACjB,CACA,OAAoB,OAAblqS,QAAkC,IAAbA,EAAsBA,EAAW,IAAI,EAEnEs6S,GAASt0J,OC5HctyJ,IACrB,MACEyhM,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,OACbnlP,EAAM,MACN44F,GAAQ,EAAK,KACbrpG,EAAO,WACLw1B,GACE,aACJixO,GACEj1D,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,WAAYG,IACpC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3Co7D,EAAansM,GAAK1wD,EAAO,CAAC,cAC1B6pI,EAAM8xC,KAAW8lB,EAAW,GAAGA,YAAqB,CACxD,CAAC,GAAGA,YAAqBxmN,EACzB,CAAC,GAAGwmN,WAAoB5tH,GACvBnkH,EAAW0wQ,EAAekV,EAAQ8nB,GACrC,OAAOD,EAAwBnhF,EAAAA,cAAoB,MAAO,CACxDtsN,UAAWm6K,GACGmyC,EAAAA,cAAoBj7C,GAAS5yK,OAAOoD,OAAO,CACzDkwO,UAAW,GAAGA,WACdj3N,KAAMA,GACLqyR,KAAc,EDqGnB+pD,GAASpP,OAASqQ,GAClBjB,GAASkB,MAAQC,GACjBnB,GAAS/3N,MAAQm5N,GACjBpB,GAASzxN,KAAO8yN,GAIhB,MEzIA,GFyIA,GG1IA,SAASC,KAAY,CACrB,MAAMC,GAAgCnsI,EAAAA,cAAoB,CACxDr+L,IAAKuqU,GACL5yP,OAAQ4yP,KAEH,SAASE,GAAYC,GAC1B,MAAMC,EAAYtsI,EAAAA,WAAiBmsI,IAC7BI,EAAcvsI,EAAAA,OAAa,MAUjC,OATiB0mB,IAASrJ,IACxB,GAAIA,EAAK,CACP,MAAMmvH,EAAkBH,EAAgBhvH,EAAIprM,cAAco6T,GAAiBhvH,EAC3EivH,EAAU3qU,IAAI6qU,GACdD,EAAYn6T,QAAUo6T,CACxB,MACEF,EAAUhzP,OAAOizP,EAAYn6T,QAC/B,GAGJ,CACA,MCNA,GAVwBq6T,KACtB,MAAM,kBACJlK,EAAiB,iBACjBC,EAAgB,SAChBE,IACExpR,EAAAA,EAAAA,YAAWipR,IACf,OAAoBniI,EAAAA,cAAoB1pB,GAAQnkM,OAAOoD,OAAO,CAC5D+qE,QAASoiR,GACRH,GAAoBC,EAAiB,ECM1C,GAboBkK,KAClB,MAAM,eACJC,EAAc,cACd7J,EAAa,OACbE,EAAM,aACND,EAAY,KACZE,IACE/pR,EAAAA,EAAAA,YAAWipR,IACf,OAAoBniI,EAAAA,cAAoB1pB,GAAQnkM,OAAOoD,OAAO,CAAC,EAAG4yU,GAAmB6a,GAAS,CAC5F7kN,QAASwuN,EACTrsR,QAAS2iR,GACRH,GAAgBC,EAAa,ECN3B,SAAS6J,GAAgBnnH,EAAWu+G,GACzC,OAAoBhkI,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAW,GAAG+xO,aACbu+G,GAA0BhkI,EAAAA,cAAoBkjI,GAAe,CAC9DxvV,UAAW,GAAG+xO,iBAElB,CACO,MAAMonH,GAAS7oT,IACpB,MAAM,OACJ41R,EAAM,OACNopB,EAAS,UAAS,WAClBnpB,EAAU,eACV8yB,EAAc,KACd1J,EAAI,SACJP,EAAQ,cACRI,EAAa,kBACbP,EAAiB,OACjBtoT,GACE+J,GACG7jB,GAAU8gU,GAAU,QAASllB,MAK9B+wB,EAAc,CAClBH,iBACA7J,gBACAP,oBACAQ,aAPmBnpB,IAAsB,OAAXz5S,QAA8B,IAAXA,OAAoB,EAASA,EAAOy5S,QAQrF4oB,iBAPuB3oB,IAA0B,OAAX15S,QAA8B,IAAXA,OAAoB,EAASA,EAAO05S,YAQ7FmpB,SACAC,OACAP,YAEIqK,EAAkB/sI,EAAAA,SAAc,IAAM8sI,GAAa39G,GAAmBh9O,OAAOqQ,OAAOsqV,KAC1F,IAAI9H,EAeJ,MAdsB,oBAAX/qT,GAA2C,qBAAXA,GACzC+qT,EAA0BhlI,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoBysI,GAAiB,MAAoBzsI,EAAAA,cAAoB0sI,GAAa,OACrJ,oBAAXzyT,IACT+qT,EAAa/qT,EAAO+qT,EAAY,CAC9BgI,MAAON,GACPO,UAAWR,MAGfzH,EAA0BhlI,EAAAA,cAAoBoiI,GAAsB,CAClEr3V,MAAOgiW,GACN/H,IAEHA,EAAa/qT,EAEK+lL,EAAAA,cAAoBm9G,GAAyB,CAC/DhtR,UAAU,GACT60S,EAAW,ECRVkI,GAAkBp4O,IACtB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CAEL,CAACu0K,GAAe,CACd7xR,SAAU,WACV0yB,SAAU,OAEVylO,UAAW,GAEd,EAkEGw9F,GAAeA,CAACr4O,EAAOkzN,IAhEGolB,EAACt4O,EAAOkzN,KACtC,MAAM,UACJviG,EAAS,aACT4jD,EAAY,YACZgkE,GACEv4O,EACEw4O,EAAmB,CAAC,EAC1B,IAAK,IAAIjgW,EAAIggW,EAAahgW,GAAK,EAAGA,IACtB,IAANA,GACFigW,EAAiB,GAAGjkE,IAAe2+C,KAAW36U,KAAO,CACnDsF,QAAS,QAEX26V,EAAiB,GAAGjkE,UAAqBh8R,KAAO,CAC9CsyS,iBAAkB,QAEpB2tD,EAAiB,GAAGjkE,UAAqBh8R,KAAO,CAC9CoyS,eAAgB,QAElB6tD,EAAiB,GAAGjkE,IAAe2+C,UAAgB36U,KAAO,CACxDsyS,iBAAkB,QAEpB2tD,EAAiB,GAAGjkE,IAAe2+C,UAAgB36U,KAAO,CACxDoyS,eAAgB,QAElB6tD,EAAiB,GAAGjkE,IAAe2+C,YAAkB36U,KAAO,CAC1DmiU,kBAAmB,GAErB89B,EAAiB,GAAGjkE,IAAe2+C,WAAiB36U,KAAO,CACzDwlD,MAAO,KAGTy6S,EAAiB,GAAGjkE,IAAe2+C,KAAW36U,KAAO,CAIrD,CACE,gBAAmB,QAEnBsF,QAAS,SACR,CACDA,QAAS,qBACTk/C,KAAM,OAAOxkD,EAAIggW,EAAc,OAC/BnjU,SAAa78B,EAAIggW,EAAc,IAArB,MAEZC,EAAiB,GAAGjkE,IAAe2+C,UAAgB36U,KAAO,CACxDsyS,iBAAqBtyS,EAAIggW,EAAc,IAArB,KAEpBC,EAAiB,GAAGjkE,IAAe2+C,UAAgB36U,KAAO,CACxDoyS,eAAmBpyS,EAAIggW,EAAc,IAArB,KAElBC,EAAiB,GAAGjkE,IAAe2+C,YAAkB36U,KAAO,CAC1DmiU,kBAAsBniU,EAAIggW,EAAc,IAArB,KAErBC,EAAiB,GAAGjkE,IAAe2+C,WAAiB36U,KAAO,CACzDwlD,MAAOxlD,IAQb,OAHAigW,EAAiB,GAAGjkE,IAAe2+C,UAAkB,CACnDn2R,KAAM,SAAS4zL,IAAYuiG,WAEtBslB,CAAgB,EAEgBF,CAAwBt4O,EAAOkzN,GAO3DulB,GAAc1jE,GAAc,QAzIjB/0K,IACtB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CAEL,CAACu0K,GAAe,CACd12R,QAAS,OACT66V,SAAU,WACVv1T,SAAU,EACV,sBAAuB,CACrBtlC,QAAS,QAEX,YAAa,CACXkiV,SAAU,UAGZ,UAAW,CACTn1C,eAAgB,cAGlB,WAAY,CACVA,eAAgB,UAGlB,QAAS,CACPA,eAAgB,YAElB,kBAAmB,CACjBA,eAAgB,iBAElB,iBAAkB,CAChBA,eAAgB,gBAElB,iBAAkB,CAChBA,eAAgB,gBAGlB,QAAS,CACPzT,WAAY,cAGd,WAAY,CACVA,WAAY,UAEd,WAAY,CACVA,WAAY,aAGjB,IAqFqCwhE,KAAA,CAAS,KAIpCC,GAAe54O,IACJ,CACpBgrL,GAAIhrL,EAAM6mL,YACVoE,GAAIjrL,EAAMgnL,YACV3+O,GAAI23D,EAAMmnL,YACVvtO,GAAIomD,EAAMsnL,YACV4D,GAAIlrL,EAAMwnL,YACV2D,IAAKnrL,EAAM0nL,eAIFmxD,GAAc9jE,GAAc,QAAQ/0K,IAC/C,MAAM84O,EAAY9mE,GAAWhyK,EAAO,CAClCu4O,YAAa,KAETQ,EAAoBH,GAAaE,GAEvC,cADOC,EAAkB/tD,GAClB,CAACotD,GAAgBU,GAAYT,GAAaS,EAAW,IAAKT,GAAaS,EAAW,OAAQz7V,OAAOC,KAAKy7V,GAAmBr0V,KAAIvI,GAxB5G68V,EAACh5O,EAAOi5O,EAAY/lB,KAAY,CACxD,CAAC,sBAAsB74U,GAAK4+V,OAAiB57V,OAAOoD,OAAO,CAAC,EAAG43V,GAAar4O,EAAOkzN,MAuBwD8lB,CAAkBF,EAAWC,EAAkB58V,GAAM,IAAIA,OAAQm6B,QAAO,CAACskJ,EAAK2iH,IAAQlgS,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGm6K,GAAM2iH,IAAM,CAAC,GAAG,IApB3O27D,KAAA,CAAS,KCxIpCC,GAAS,IAAIpnC,GAAU,YAAa,CAC/C,KAAM,CACJ/uT,QAAS,GAEX,OAAQ,CACNA,QAAS,KAGAo2V,GAAU,IAAIrnC,GAAU,aAAc,CACjD,KAAM,CACJ/uT,QAAS,GAEX,OAAQ,CACNA,QAAS,KAGAq2V,GAAiB,SAAUr5O,GACtC,IAAIs5O,EAAYxyV,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAC/E,MAAM,OACJ4tR,GACE10K,EACEq2I,EAAY,GAAGq+B,SACfk9B,EAAkB0nC,EAAY,IAAM,GAC1C,MAAO,CAAC7nC,GAAWp7D,EAAW8iG,GAAQC,GAASp5O,EAAMkiL,kBAAmBo3D,GAAY,CAClF,CAAC,aACK1nC,IAAkBv7D,qBAClBu7D,IAAkBv7D,oBAClB,CACJrzP,QAAS,EACT6vT,wBAAyB,UAE3B,CAAC,GAAGjB,IAAkBv7D,WAAoB,CACxCw8D,wBAAyB,WAG/B,EC/BA,SAASx3K,GAAI34I,GACX,MAAO,CACLA,WACA81H,MAAO,EAEX,CACO,MAAM+gO,GAAoBv5O,IAC/B,MAAM,aACJu0K,EAAY,OACZG,GACE10K,EACJ,MAAO,CAAC,CACN,CAAC,GAAGu0K,UAAsB,CACxB,CAAC,GAAGA,IAAeG,iBAAsBH,IAAeG,iBAAuB,CAE7E99M,UAAW,OACX5zE,QAAS,EACT+1H,kBAAmB/Y,EAAMu2K,mBAEzB70I,WAAY,QAId,CAAC,GAAG6yI,IAAeG,gBAAqBH,aAAyB,CAC/D/iD,cAAe,QAEjB,CAAC,GAAG+iD,UAAsBl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG46I,GAAI,UAAW,CACvEz4I,OAAQo9G,EAAMg5K,gBACdhgS,OAAQ,OACR8J,gBAAiBk9G,EAAMmhL,YACvB3vD,cAAe,OACf,CAAC,GAAG+iD,YAAwB,CAC1B12R,QAAS,UAGb,CAAC,GAAG02R,UAAsBl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG46I,GAAI,UAAW,CACvEz4I,OAAQo9G,EAAMg5K,gBACdr2R,SAAU,OACVmqM,QAAS,EACT0sJ,wBAAyB,YAG5B,CACD,CAAC,GAAGjlE,UAAsB8kE,GAAer5O,IACzC,EAEEy5O,GAAgBz5O,IACpB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CAEP,CACE,CAAC,GAAGu0K,UAAsB,CACxB,CAAC,GAAGA,cAA0B,CAC5Bz/J,UAAW,OAEb,CAAC,GAAGy/J,cAA0B,CAC5Bx6P,UAAW,SACX,YAAa,CACXl8B,QAAS,eACTvE,MAAO,EACPN,OAAQ,OACRghC,cAAe,SACflkB,QAAS,MAEX,CAACy+Q,GAAe,CACd57R,IAAK,EACLkF,QAAS,eACTk7B,cAAe,EACfgB,UAAW,QACXC,cAAe,WAGnB,CAAC,sBAAsBgmF,EAAMinL,kBAAmB,CAC9C,CAAC1S,GAAe,CACdn/P,SAAU,qBACVn8B,OAAQ,GAAGoB,GAAK2lH,EAAMomL,kBAExB,CAAC,GAAG7R,cAA0B,CAC5B,CAACA,GAAe,CACdx3O,KAAM,OAOhB,CACE,CAACw3O,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACtEwxH,cAAe,OACf9uO,SAAU,WACV/J,IAAK,IACLW,MAAO,OACP87B,SAAU,gBAAgB/6B,GAAK2lH,EAAMq6J,KAAKr6J,EAAM/mH,QAAQy2N,IAAI,GAAGp/C,YAC/Dr3K,OAAQ,SACR8/B,cAAeinF,EAAM2lL,UACrB,CAAC,GAAGpR,WAAuB,CACzBt7R,OAAQ,EACRq/B,MAAO0nF,EAAM05O,WACbx/T,WAAY8lF,EAAMmlL,iBAClB1wQ,SAAUurF,EAAM25O,cAChBhlU,WAAYqrF,EAAM45O,gBAClBhmC,SAAU,cAEZ,CAAC,GAAGr/B,aAAyB,CAC3B7xR,SAAU,WACVI,gBAAiBk9G,EAAM65O,UACvBtqO,eAAgB,cAChB4c,OAAQ,EACRusJ,aAAc14K,EAAM85K,eACpBvhK,UAAWvY,EAAMuY,UACjBi5G,cAAe,OACf54M,QAASonF,EAAM85O,gBAEjB,CAAC,GAAGvlE,WAAuBl3R,OAAOoD,OAAO,CACvCiC,SAAU,WACV/J,IAAKqnH,EAAMq6J,KAAKr6J,EAAM+5O,mBAAmB9qI,IAAIjvG,EAAMg6O,mBAAmBhsI,IAAI,GAAG19C,QAC7Eq6H,eAAgB3qL,EAAMq6J,KAAKr6J,EAAM+5O,mBAAmB9qI,IAAIjvG,EAAMg6O,mBAAmBhsI,IAAI,GAAG19C,QACxF1tK,OAAQo9G,EAAMq6J,KAAKr6J,EAAMg5K,iBAAiBnsQ,IAAI,IAAIyjJ,QAClD13I,QAAS,EACTN,MAAO0nF,EAAMi6O,oBACb//T,WAAY8lF,EAAMmlL,iBAClBxwQ,WAAY,EACZykG,eAAgB,OAChBvG,WAAY,cACZ6lK,aAAc14K,EAAM65K,eACpBvgS,MAAO0mH,EAAMg6O,kBACbhhW,OAAQgnH,EAAMg6O,kBACd7tN,OAAQ,EACR2gE,QAAS,EACTz7K,OAAQ,UACRu2B,WAAY,SAASo4D,EAAMkiL,uCAAuCliL,EAAMkiL,oBACxE,MAAO,CACLrkS,QAAS,OACT42B,SAAUurF,EAAM26K,WAChBvjQ,UAAW,SACXzC,WAAYt6B,GAAK2lH,EAAMg6O,mBACvBpvD,eAAgB,SAChBv0K,cAAe,OACf+gK,cAAe,QAEjB,aAAc,CACZ5lD,cAAe,QAEjB,UAAW,CACTl5M,MAAO0nF,EAAMk6O,yBACbp3V,gBAAiBk9G,EAAMokL,iBACvBhrK,eAAgB,QAElB,WAAY,CACVt2H,gBAAiBk9G,EAAMqkL,oBAExBpN,GAAcj3K,IACjB,CAAC,GAAGu0K,YAAwB,CAC1Bj8P,MAAO0nF,EAAMk2K,UACbrjK,WAAY7S,EAAMypL,SAClB/Q,aAAc,GAAGr+R,GAAK2lH,EAAM85K,mBAAmBz/R,GAAK2lH,EAAM85K,sBAC1DjkK,aAAc7V,EAAMm6O,mBACpBvhU,QAASonF,EAAMqpL,cACfmuB,aAAcx3M,EAAMo6O,oBAEtB,CAAC,GAAG7lE,UAAsB,CACxB9/P,SAAUurF,EAAMvrF,SAChBE,WAAYqrF,EAAMrrF,WAClBi/R,SAAU,aACVh7R,QAASonF,EAAMq6O,YACf,CAAC,GAAG9lE,mBAA+B,CACjCj7R,MAAO,OACPN,OAAQ,OACR6E,QAAS,OACT+sS,eAAgB,SAChBzT,WAAY,SACZl+R,OAAQ,GAAGoB,GAAK2lH,EAAM/mH,iBAG1B,CAAC,GAAGs7R,YAAwB,CAC1Bx6P,UAAW,MACX84F,WAAY7S,EAAMmpL,SAClBxzK,UAAW3V,EAAMs6O,gBACjB1hU,QAASonF,EAAMupL,cACfgxD,UAAWv6O,EAAMw6O,gBACjB9hE,aAAc14K,EAAMy6O,mBACpB,CAAC,KAAKz6O,EAAM00K,gBAAgB10K,EAAM00K,cAAe,CAC/CgmC,kBAAmB16M,EAAMomL,WAG7B,CAAC,GAAG7R,UAAsB,CACxB5xR,SAAU,aAKhB,CACE,CAAC,GAAG4xR,gBAA4B,CAC9B57R,IAAK,OACLigC,QAAS,EACT/6B,QAAS,OACT6rS,cAAe,SACf,CAAC,GAAGnV,yBACEA,sBACAA,0BAAsC,CAC1C12R,QAAS,OACT6rS,cAAe,SACf3sP,KAAM,QAER,CAAC,GAAGw3O,kBAA8B,CAChC1+J,aAAc,UAGlB,EAEE6kO,GAAc16O,IAClB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAAC,GAAGu0K,UAAsB,CACxB,CAAC,GAAGA,cAA0B,CAC5Bz/J,UAAW,MACX,CAAC,GAAGy/J,kBAA8B,CAChCz/J,UAAW,SAIlB,EAEG6lO,GAA0B36O,IAC9B,MAAM,aACJu0K,GACEv0K,EACE+4O,EAAoBH,GAAa54O,UAChC+4O,EAAkB/tD,GACzB,MAAM4vD,EAAmBv9V,OAAOC,KAAKy7V,GAAmBr0V,KAAIvI,IAAO,CACjE,CAAC,sBAAsB9B,GAAK0+V,EAAkB58V,QAAW,CACvD7C,MAAO,SAASi7R,EAAaxpR,QAAQ,IAAK,OAAO5O,gBAGrD,MAAO,CACL,CAAC,GAAGo4R,UAAsB,CACxB,CAACA,GAAe,CAAC,CACfj7R,MAAO,SAASi7R,EAAaxpR,QAAQ,IAAK,kBACzClP,OAAOw+O,GAAmBugH,KAEhC,EAGU1kB,GAAel2N,IAC1B,MAAM66O,EAAwB76O,EAAMpnF,QAC9BkiU,EAAiB96O,EAAMm7K,iBACvB4/D,EAAmB/6O,EAAM27K,mBAY/B,OAXmB3J,GAAWhyK,EAAO,CACnC+5O,kBAAmB/5O,EAAMq6J,KAAKr6J,EAAMq6J,KAAK0gF,GAAkBrrI,IAAIorI,GAAgBxqL,SAASzjJ,IAAImzF,EAAMq6J,KAAKwgF,GAAuBnrI,IAAI,GAAGp/C,SAASA,QAC9I0qL,4BAA6Bh7O,EAAM6jL,WACnCo3D,uBAAwBj7O,EAAM+3K,SAC9BmjE,uBAAwBl7O,EAAMzqF,UAC9B0kU,oBAAqBj6O,EAAMskL,UAC3B41D,yBAA0Bl6O,EAAMukL,eAChCy1D,kBAAmBh6O,EAAM84K,cACzBqiE,qBAAsBn7O,EAAMo7K,WAC5BggE,iBAAkBp7O,EAAMq6J,KAAKr6J,EAAM25O,eAAejqI,IAAI1vG,EAAM45O,iBAAiBtpL,SAE9D,EAENq5H,GAAwB3pL,IAAS,CAC5CmpL,SAAU,cACVM,SAAUzpL,EAAMg9K,gBAChB48D,gBAAiB55O,EAAM27K,mBACvBg+D,cAAe35O,EAAMm7K,iBACrB0+D,UAAW75O,EAAMg9K,gBACjB08D,WAAY15O,EAAM+jL,iBAElB+1D,eAAgB95O,EAAMk5K,UAAY,EAAI,GAAG7+R,GAAK2lH,EAAM0lL,cAAcrrS,GAAK2lH,EAAM6lL,8BAC7EwD,cAAerpL,EAAMk5K,UAAY,GAAG7+R,GAAK2lH,EAAMpnF,YAAYv+B,GAAK2lH,EAAM2lL,aAAe,EACrFy0D,mBAAoBp6O,EAAMk5K,UAAY,GAAG7+R,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAM6jL,aAAe,OACzGs2D,mBAAoBn6O,EAAMk5K,UAAY,EAAIl5K,EAAMomL,SAChDi0D,YAAar6O,EAAMk5K,UAAYl5K,EAAM2lL,UAAY,EACjD4D,cAAevpL,EAAMk5K,UAAY,GAAG7+R,GAAK2lH,EAAMwlL,cAAcnrS,GAAK2lH,EAAMpnF,WAAa,EACrF4hU,gBAAiBx6O,EAAMk5K,UAAY,GAAG7+R,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAM6jL,aAAe,OACtG42D,mBAAoBz6O,EAAMk5K,UAAY,OAAO7+R,GAAK2lH,EAAM85K,mBAAmBz/R,GAAK2lH,EAAM85K,kBAAoB,EAC1GwgE,gBAAiBt6O,EAAMk5K,UAAY,EAAIl5K,EAAMqmL,SAC7Cg1D,mBAAoBr7O,EAAMk5K,UAAY,GAAG7+R,GAAqB,EAAhB2lH,EAAMpnF,YAAgBv+B,GAAqB,EAAhB2lH,EAAMpnF,YAAgBv+B,GAAK2lH,EAAM2lL,aAAe,EACzH21D,2BAA4Bt7O,EAAMk5K,UAAYl5K,EAAM/mH,OAAS+mH,EAAMqmL,SACnEk1D,qBAAsBv7O,EAAMk5K,UAAYl5K,EAAMumL,SAAWvmL,EAAMqmL,WAEjE,GAAetR,GAAc,SAAS/0K,IACpC,MAAMw7O,EAAatlB,GAAal2N,GAChC,MAAO,CAACy5O,GAAc+B,GAAad,GAAYc,GAAajC,GAAkBiC,GAAa5oC,GAAe4oC,EAAY,QAASb,GAAwBa,GAAY,GAClK7xD,GAAuB,CACxB1kB,SAAU,CACR20E,iBAAiB,KCtSrB,IAAI52D,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAkBA,IAAI4lU,GAEJ,MAAM8K,GAAmB52U,IACvB8rU,GAAgB,CACd3uU,EAAG6C,EAAE8lC,MACLv+B,EAAGvH,EAAE+lC,OAKPrmC,YAAW,KACTosU,GAAgB,IAAI,GACnB,IAAI,EnBrC6BvgH,MAAexzO,OAAO+B,SAASk0D,iBmByCnEl0D,SAASk0D,gBAAgBjzD,iBAAiB,QAAS67V,IAAkB,GAEvE,MAoIA,GApIcvsT,IACZ,IAAIvb,EACJ,MACE+lO,kBAAmB86D,EAAwB,aAC3Cr0C,EAAY,UACZrrJ,EACA+1M,MAAO6wB,GACLxwI,EAAAA,WAAiBg1D,IACfy7E,EAAe92U,IACnB,MAAM,SACJ+oU,GACE1+S,EACS,OAAb0+S,QAAkC,IAAbA,GAA+BA,EAAS/oU,EAAE,EAejE,MACI8rN,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,KACb14P,EAAI,cACJ06U,EAAa,SACbsK,EAAQ,aACR7zG,EAAY,uBACZqpG,GAAyB,EAAI,MAC7Bz0V,EAAK,QAELu0P,EAAO,MACP53P,EAAQ,IAAG,OACX6rC,EACA0lL,WAAY4kI,EACZt8T,OAAQu8T,EAAW,SACnBl0S,EAAQ,QACR6tF,GACEn6F,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,YAAa,gBAAiB,OAAQ,gBAAiB,WAAY,eAAgB,yBAA0B,QAAS,UAAW,QAAS,SAAU,aAAc,SAAU,WAAY,YAC5NyhM,EAAYwvC,EAAa,QAASG,GAClCoT,EAAgBvT,IAEhBoT,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GACtDsoE,EAAwBhxI,KAAWymI,EAAe,CACtD,CAAC,GAAG3gH,cAAoC,OAAbirH,QAAkC,IAAbA,EAAsBA,EAA4B,OAAjBF,QAA0C,IAAjBA,OAA0B,EAASA,EAAaE,SAC1J,CAAC,GAAGjrH,cAAqC,QAAd77G,IAEvBgnO,EAA0B,OAAX32T,GAAoBkkG,EAGlC,KAH0D6hF,EAAAA,cAAoB6sI,GAAQ16V,OAAOoD,OAAO,CAAC,EAAGyuC,EAAO,CACpHi/S,KA3CetpU,IACf,MAAM,KACJspU,GACEj/S,EACK,OAATi/S,QAA0B,IAATA,GAA2BA,EAAKtpU,EAAE,EAwCnD+oU,SAAU+N,MAELI,EAAgBrI,EAAiBpD,GAAsB2C,GAAYP,GAAaxjT,GAAQwjT,GAAagJ,GAAe,CACzHzM,UAAU,EACVC,UAAwBhkI,EAAAA,cAAoBkjI,GAAe,CACzDxvV,UAAW,GAAG+xO,iBAEhB8iH,gBAAiBnqJ,GAAQwuJ,GAAgBnnH,EAAWrnC,KAIhDqmJ,EAAW2H,GAAY,IAAI3mH,cAE1B/tO,EAAQgzT,GAAiB1H,GAAU,QAAS/8E,EAAUvuO,SAEtDo5V,EAAUC,GAAmB/wI,EAAAA,SAAc,IAC5C5xN,GAA0B,kBAAVA,EACX,MAACgL,EAAWhL,GAEd,CAACA,OAAOgL,IACd,CAAChL,IACE4iW,EAAsBhxI,EAAAA,SAAc,KACxC,MAAMixI,EAAO,CAAC,EASd,OARIF,GACF5+V,OAAOC,KAAK2+V,GAAiB9jW,SAAQyzS,IACnC,MAAMwwD,EAAkBH,EAAgBrwD,QAChBtnS,IAApB83V,IACFD,EAAK,KAAKxrH,KAAai7D,WAAiD,kBAApBwwD,EAA+B,GAAGA,MAAsBA,EAC9G,IAGGD,CAAI,GACV,CAACF,IAEJ,OAAO5vD,EAAwBnhF,EAAAA,cAAoBoqG,GAAiB,CAClE7hP,MAAM,EACNnyD,OAAO,GACO4pM,EAAAA,cAAoBojG,GAAchgN,SAAU,CAC1Dr4G,MAAO2/T,GACO1qG,EAAAA,cAAoBunI,GAAQp1V,OAAOoD,OAAO,CACxDnH,MAAO0iW,GACN7qH,EAAW,CACZvuO,OAAQA,EACRmlP,kBAA+BzjP,IAAjByjP,EAA6BysE,EAA2BzsE,EACtEpX,UAAWA,EACX2+B,cAAezkD,KAAW25D,EAAQlV,EAAeg9B,EAAW/Y,GAC5DpuP,OAAQ22T,EACR5qG,QAAkB,OAATt6O,QAA0B,IAATA,EAAkBA,EAAOs6O,EACnDy/F,cAAkD,QAAlCh9T,EAAKw9M,EAAUw/G,qBAAkC,IAAPh9T,EAAgBA,EAAKg9T,GAC/ExB,QAASwM,EACT1M,SAAU8M,EAAiB,CACzB1gT,SAAUi1S,EACVpB,UAAWwE,GACTqI,EACJ7M,UAAWwE,EACXtC,uBAAwBA,EACxBthG,eAAgBD,GAAkB6jC,EAAe,OAAQxkP,EAAM4gN,gBAC/DuQ,mBAAoBxQ,GAAkB6jC,EAAe,OAAQxkP,EAAMmxN,oBACnEzhQ,UAAWisN,KAAW25D,EAAQ5lR,EAA4B,OAAjB88V,QAA0C,IAAjBA,OAA0B,EAASA,EAAa98V,WAClHjC,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAoB,OAAjBi7V,QAA0C,IAAjBA,OAA0B,EAASA,EAAa/+V,OAAQA,GAAQu/V,GAC9IrxI,WAAYxtN,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAoB,OAAjBi7V,QAA0C,IAAjBA,OAA0B,EAASA,EAAa7wI,YAAa4kI,GAAkB,CAChKv6P,QAAS21H,KAAWgxI,EAA2C,OAApBpM,QAAgD,IAApBA,OAA6B,EAASA,EAAgBv6P,WAE/H/hE,OAAQ91B,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAoB,OAAjBi7V,QAA0C,IAAjBA,OAA0B,EAASA,EAAavoU,QAASu8T,GAC1HC,SAAUA,IACRtmN,EAAwB6hF,EAAAA,cAAoB4qI,GAAU,CACxD3rU,QAAQ,EACRiZ,OAAO,EACP2yT,UAAW,CACThiU,KAAM,GAERn1B,UAAW,GAAG+xO,oBACVn1L,KAAY,ECzKd6gT,GAAuBr8O,IAC3B,MAAM,aACJu0K,EAAY,cACZolE,EAAa,gBACbC,EAAe,qBACfuB,EAAoB,SACpB1mU,EAAQ,WACRE,EAAU,iBACVymU,EAAgB,WAChBhgE,EAAU,mBACVigE,GACEr7O,EACEs8O,EAAsB,GAAG/nE,YAC/B,MAAO,CACL,CAAC+nE,GAAsB,CACrB,QAAS,CACPxnO,UAAW,OAEb,CAAC,GAAG9U,EAAM00K,uBAAwB,CAChC72R,QAAS,QAEX,CAAC,GAAGy+V,kBAAqCj/V,OAAOoD,OAAO,CAAC,E/OgBtC,CAEtB,YAAa,CACX5C,QAAS,QACTiY,QAAS,MAEX,WAAY,CAEVjY,QAAS,QACT0nF,MAAO,OACPzvE,QAAS,Q+OzBP,CAAC,IAAIy+Q,KAAgBA,UAAsB,CACzC37P,QAASyiU,GAGX,CAAC,GAAGiB,UAA6B,CAC/Bz+V,QAAS,OACTkiV,SAAU,SACV5oD,WAAY,QACZ,CAAC,KAAKn3K,EAAMy0K,WAAY,CACtB13O,KAAM,OACNtoB,SAAU0mU,EACVxgC,gBAAiB36M,EAAMs7O,2BACvB3lO,UAAW3V,EAAMq6J,KAAKr6J,EAAMq6J,KAAK+gB,GAAYnsE,IAAIksI,GAAsB7qL,SAAS09C,IAAI,GAAG19C,SAEzF,CAAC,iBAAiBtwD,EAAMy0K,WAAY,CAClC9+J,UAAW3V,EAAMq6J,KAAKr6J,EAAMq6J,KAAK+gF,GAAkBnsI,IAAIksI,GAAsB7qL,SAAS09C,IAAI,GAAG19C,UAGjG,CAAC,GAAGgsL,eAAkC,CACpCz+V,QAAS,OACT6rS,cAAe,SACf3sP,KAAM,OACN8uQ,OAAQ7rM,EAAMomL,SAEdhxQ,SAAU,eAAe/6B,GAAK2lH,EAAMqmL,cAGtC,CAAC,GAAGrmL,EAAMy0K,aAAa6nE,eAAkC,CACvDlnU,SAAU,eAAe/6B,GAAK2lH,EAAMq6J,KAAKr6J,EAAMm7O,sBAAsBtuU,IAAImzF,EAAMqmL,UAAU/1H,aAE3F,CAAC,GAAGgsL,WAA8B,CAChChkU,MAAO0nF,EAAM+jL,iBACb7pQ,WAAY8lF,EAAMmlL,iBAClB1wQ,SAAUklU,EACVhlU,WAAYilU,GAEd,CAAC,GAAG0C,aAAgC,CAClChkU,MAAO0nF,EAAMk2K,UACbzhQ,WACAE,cAGF,CAAC,GAAG2nU,UAA6B,CAC/BviU,UAAW,MACX47F,UAAW3V,EAAMu7O,qBACjB,CAAC,GAAGv7O,EAAM00K,gBAAgB10K,EAAM00K,cAAe,CAC7C7+J,aAAc,EACd6kM,kBAAmB16M,EAAMomL,YAI/B,CAAC,GAAGk2D,WAA6BA,YAA8Bt8O,EAAMy0K,WAAY,CAC/En8P,MAAO0nF,EAAM03K,YAEf,CAAC,GAAG4kE,aAA+BA,YAA8Bt8O,EAAMy0K,qBACjE6nE,aAA+BA,YAA8Bt8O,EAAMy0K,WAAY,CACnFn8P,MAAO0nF,EAAMy3K,cAEf,CAAC,GAAG6kE,UAA4BA,YAA8Bt8O,EAAMy0K,WAAY,CAC9En8P,MAAO0nF,EAAM23K,WAEf,CAAC,GAAG2kE,aAA+BA,YAA8Bt8O,EAAMy0K,WAAY,CACjFn8P,MAAO0nF,EAAMw3K,cAEhB,EAGH,GAAe5B,GAAqB,CAAC,QAAS,YAAY51K,IACxD,MAAMw7O,EAAatlB,GAAal2N,GAChC,MAAO,CAACq8O,GAAqBb,GAAY,GACxC7xD,GAAuB,CAExB5rP,OAAQ,MCjGV,IAAIilP,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAkBO,SAASwxU,GAAertT,GAC7B,MAAM,UACFyhM,EAAS,KACTrnC,EAAI,OACJw7H,EAAM,WACNC,EAAU,iBACVy3B,EAAgB,KAChBn+V,EAAI,SACJo+V,EAAQ,OACRt3T,EAEA9Z,OAAQqxU,GACNxtT,EACJytT,EAAa35D,GAAO9zP,EAAO,CAAC,YAAa,OAAQ,SAAU,aAAc,mBAAoB,OAAQ,WAAY,SAAU,WAM7H,IAAI4vR,EAAax1H,EAEjB,IAAKA,GAAiB,OAATA,EACX,OAAQjrM,GACN,IAAK,OACHygU,EAA0B5zG,EAAAA,cAAoB+gI,GAAkB,MAChE,MACF,IAAK,UACHntB,EAA0B5zG,EAAAA,cAAoBygI,GAAmB,MACjE,MACF,IAAK,QACH7sB,EAA0B5zG,EAAAA,cAAoB2gI,GAAmB,MACjE,MACF,QACE/sB,EAA0B5zG,EAAAA,cAAoB6gI,GAAyB,MAI7E,MAAM4B,EAA8B,OAAb8O,QAAkC,IAAbA,EAAsBA,EAAoB,YAATp+V,EACvEmvV,EAA4C,OAA1Bt+S,EAAMs+S,kBAAmCt+S,EAAMs+S,iBAAmB,OACnFniU,GAAU8gU,GAAU,SACrByQ,EAAeF,GAAgBrxU,EAE/B4iU,EAAenpB,IAAW6oB,EAAkC,OAAjBiP,QAA0C,IAAjBA,OAA0B,EAASA,EAAa93B,OAA0B,OAAjB83B,QAA0C,IAAjBA,OAA0B,EAASA,EAAa53B,YACtM0oB,EAAmB3oB,IAAgC,OAAjB63B,QAA0C,IAAjBA,OAA0B,EAASA,EAAa73B,YAE3GizB,EAAc36V,OAAOoD,OAAO,CAChC+sV,kBACAE,mBACAO,eACAN,kBACCgP,GACG1E,EAAkB/sI,EAAAA,SAAc,IAAM8sI,GAAa39G,GAAmBh9O,OAAOqQ,OAAOsqV,KAEpF6E,EAAgC3xI,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoBitI,GAAW,MAAoBjtI,EAAAA,cAAoBgtI,GAAO,OACrKjC,OAA2B3xV,IAAhB4qC,EAAM9L,OAAuC,OAAhB8L,EAAM9L,MAC9C05T,EAAU,GAAGN,SACnB,OAAoBtxI,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAW,GAAG49V,kBACAtxI,EAAAA,cAAoB,MAAO,CACzCtsN,UAAWisN,KAAWiyI,EAAS,CAC7B,CAAC,GAAGA,eAAsB7G,KAE3Bn3B,EAAyB5zG,EAAAA,cAAoB,MAAO,CACrDtsN,UAAW,GAAG49V,eACbvG,GAAyB/qI,EAAAA,cAAoB,OAAQ,CACtDtsN,UAAW,GAAG49V,WACbttT,EAAM9L,OAAqB8nL,EAAAA,cAAoB,MAAO,CACvDtsN,UAAW,GAAG49V,aACbttT,EAAMp5B,gBAAuBxR,IAAX6gC,GAA0C,oBAAXA,EAAsC+lL,EAAAA,cAAoBoiI,GAAsB,CAClIr3V,MAAOgiW,GACO/sI,EAAAA,cAAoB,MAAO,CACzCtsN,UAAW,GAAG49V,UACK,oBAAXr3T,EAAwBA,EAAO03T,EAAkB,CACzD3E,MAAK,GACLC,UAASA,KACN0E,IAAsB13T,EAAqB+lL,EAAAA,cAAoB6xI,GAAS,CAC3EpsH,UAAWA,IAEf,CACA,MAAMqsH,GAAgB9tT,IACpB,MAAM,MACJh5B,EAAK,OACLtT,EAAM,UACN+uV,EAAS,UACT78N,EAAS,UACT67G,EAAS,cACT2gH,EAAa,cACb59D,EAAa,UACb07D,EAAS,SACTH,GAAW,EAAK,UAChBpB,EAAS,OACT16T,GACE+b,EAQJ,MAAMstT,EAAmB,GAAG7rH,YACtBr3O,EAAQ41C,EAAM51C,OAAS,IACvBqD,EAAQuyC,EAAMvyC,OAAS,CAAC,EACxBi/I,OAAsBt3I,IAAf4qC,EAAM0sG,MAA4B1sG,EAAM0sG,KAE/C0jH,OAAsCh7P,IAAvB4qC,EAAMowN,cAAqCpwN,EAAMowN,aAChE6f,EAAct0D,KAAW2xI,EAAkB,GAAGA,KAAoBttT,EAAM7wC,OAAQ,CACpF,CAAC,GAAGm+V,SAAuC,QAAd1nO,GAC5B5lF,EAAMtwC,YAEF,CAAEohH,GAAS+yK,KACZkqE,EAAe/xI,EAAAA,SAAc,SAClB5mN,IAAX1B,EACKA,EAGFo9G,EAAMg5K,gBAAkBq0B,IAC9B,CAACzqT,EAAQo9G,IAEZ,OAAoBkrG,EAAAA,cAAoBqiG,GAAOlwT,OAAOoD,OAAO,CAAC,EAAGyuC,EAAO,CACtEtwC,UAAWugR,EACXmyE,cAAezmI,KAAW,CACxB,CAAC,GAAG2xI,gBAAgCttT,EAAM0sT,UACzCtK,GACH1D,SAAUA,KACE,OAAV13U,QAA4B,IAAVA,GAA4BA,EAAM,CAClDgnV,eAAe,IAEH,OAAdrP,QAAoC,IAAdA,GAAgCA,GAAU,EAAM,EAExEzqT,MAAO,GACP+B,OAAQ,KACR2qN,eAAgBD,GAAkB6jC,GAAiB,GAAI,OAAQxkP,EAAM4gN,gBACrEuQ,mBAAoBxQ,GAAkB6jC,GAAiB,GAAI,OAAQxkP,EAAMmxN,oBACzEzkH,KAAMA,EACN0jH,aAAcA,EACd3iQ,MAAOA,EACPw2B,OAAQ91B,OAAOoD,OAAO,CACpByC,KAAMksV,EACNxzM,KAAM+1M,GACLx+T,GACH75B,MAAOA,EACPsJ,OAAQq6V,EACRhO,SAAUA,IACK/jI,EAAAA,cAAoBqxI,GAAgBl/V,OAAOoD,OAAO,CAAC,EAAGyuC,EAAO,CAC5EstT,iBAAkBA,KAChB,EAoBN,SAlB6BttT,IAC3B,MAAM,cACJwkP,EAAa,cACbnT,EAAa,UACbzrJ,EAAS,MACTh1F,GACEoP,EACJ,OAAoBg8K,EAAAA,cAAoBgjH,GAAgB,CACtDv9F,UAAW+iD,EACXnT,cAAeA,EACfzrJ,UAAWA,EACXh1F,MAAOA,GACOorL,EAAAA,cAAoB8xI,GAAe3/V,OAAOoD,OAAO,CAAC,EAAGyuC,IAAQ,EC3L/E,GADmB,GCUnB,IAAIiuT,GAAuB,GAC3B,SAAS7zB,KACP,OAAO6zB,EACT,CACA,MAAMC,GAAuBluT,IAC3B,IAAIvb,EAAIC,EACR,MACE+8M,UAAW2vC,EAAkB,aAC7Bv4B,EAAY,UACZjzH,GACE5lF,EACE03R,EAAgBK,KAChBh+R,GAASm7B,EAAAA,EAAAA,YAAW87M,IACpBwT,EAAgB41C,MAAsBrgS,EAAOk3O,eAE7CxvC,EAAY2vC,GAAsB,GAAGoT,UAC3C,IAAI2pE,EAAqBt1G,EAOzB,OAN2B,IAAvBs1G,IACFA,OAAqB/4V,GAKH4mN,EAAAA,cAAoB8xI,GAAe3/V,OAAOoD,OAAO,CAAC,EAAGyuC,EAAO,CAC9EwkP,cAAeA,EACf/iD,UAAWA,EACX4vC,cAAet3O,EAAOs3O,cACtBzgP,MAAOmJ,EAAOnJ,MACdg1F,UAAyB,OAAdA,QAAoC,IAAdA,EAAuBA,EAAY7rF,EAAO6rF,UAC3EzpG,OAAsF,QAA7EuI,EAA8B,QAAxBD,EAAKsV,EAAO5d,cAA2B,IAAPsI,OAAgB,EAASA,EAAG45R,aAA0B,IAAP35R,EAAgBA,EAAKgzS,EACnH7+E,aAAcs1G,IACb,EAEU,SAASC,GAAQr0T,GAC9B,MAAMl7B,EAASq7T,KAIf,MAAM3xU,EAAYkH,SAAS4+V,yBAC3B,IAIItQ,EACAuQ,EALAjwB,EAAgBlwU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGwoC,GAAS,CAC3D/yB,QACAU,MAAM,IAIR,SAASisD,IAEP,IADA,IAAIlvC,EACKg0M,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAIvB,IAAI61H,EAFgBj8U,EAAK/Y,MAAKg3C,GAAmB,OAAVA,QAA4B,IAAVA,OAAmB,EAASA,EAAMy9S,kBAGhE,QAA1BvpU,EAAKsV,EAAO2kT,gBAA6B,IAAPj6T,IAA0B8pU,EAAM9pU,GAAIv8B,KAAKsa,MAAM+rV,EAAK,CAACx0T,EAAQ,QAAUptC,OAAOw+O,GAAmB74N,EAAKnlB,MAAM,OAEjJ,IAAK,IAAI9D,EAAI,EAAGA,EAAImlW,GAAWllW,OAAQD,IAAK,CAE1C,GADWmlW,GAAWnlW,KACX2d,EAAO,CAChBwnV,GAAWl2T,OAAOjvC,EAAG,GACrB,KACF,CACF,CACAilW,GACF,CACA,SAASpkT,EAAOlK,GACdkoB,aAAa61R,GAMbA,EAAY1oU,YAAW,KACrB,MAAMmvQ,EAAgB3lR,EAAOoyQ,kBAAa77Q,EAAWglU,MAC/C/oD,EAAgBxyQ,EAAOs7T,mBACvBvpS,EAAQ/xB,EAAO+oB,WACf6mU,EAAmBzyI,EAAAA,cAAoBkyI,GAAsB//V,OAAOoD,OAAO,CAAC,EAAGyuC,IAC/EyhS,EAAcY,KACpBisB,EAAe7sB,EAAyBzlH,EAAAA,cAAoBgjH,GAAgB,CAC1Ev9F,UAAW+iD,EACXnT,cAAeA,EACfzgP,MAAOA,GACN/xB,EAAOw7T,aAAex7T,EAAOw7T,aAAao0B,GAAOA,GAAMlmW,EAAU,GAExE,CACA,SAASye,IACP,IAAK,IAAI6xN,EAAQjhO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAM6vO,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFxmN,EAAKwmN,GAASlhO,UAAUkhO,GAE1BulG,EAAgBlwU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG8sU,GAAgB,CAC9D32T,MAAM,EACN46U,WAAYA,KACuB,oBAAtBvoT,EAAOuoT,YAChBvoT,EAAOuoT,aAGT3uR,EAAQnxD,MAAMra,KAAMmqB,EAAK,IAIzB+rT,EAAcr8E,gBACTq8E,EAAcr8E,QAEvB93M,EAAOm0R,EACT,CAWA,OAFAn0R,EAAOm0R,GACPmwB,GAAWxkW,KAAKgd,GACT,CACL2sD,QAAS3sD,EACT4vF,OAZF,SAAgB83P,GAEZrwB,EAD0B,oBAAjBqwB,EACOA,EAAarwB,GAEblwU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG8sU,GAAgBqwB,GAElExkT,EAAOm0R,EACT,EAOF,CACO,SAASswB,GAAS3uT,GACvB,OAAO7xC,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyuC,GAAQ,CAC7C7wC,KAAM,WAEV,CACO,SAASy/V,GAAS5uT,GACvB,OAAO7xC,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyuC,GAAQ,CAC7C7wC,KAAM,QAEV,CACO,SAAS0/V,GAAY7uT,GAC1B,OAAO7xC,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyuC,GAAQ,CAC7C7wC,KAAM,WAEV,CACO,SAAS2/V,GAAU9uT,GACxB,OAAO7xC,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyuC,GAAQ,CAC7C7wC,KAAM,SAEV,CACO,SAAS4/V,GAAY/uT,GAC1B,OAAO7xC,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyuC,GAAQ,CAC7C7wC,KAAM,WAEV,CCvJA,IAAI2kS,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAUA,MAkDA,GAAeujT,IAlDGp/R,IAChB,MACIyhM,UAAW2vC,EAAkB,UAC7B1hR,EAAS,UACTswV,EAAS,SACTD,EAAQ,KACR5wV,EAAI,MACJ+kC,EAAK,SACLoY,EAAQ,OACRrW,GACE+J,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,YAAa,YAAa,WAAY,OAAQ,QAAS,WAAY,YACvG,aACJixO,GACEj1D,EAAAA,WAAiBg1D,IACfwT,EAAgBvT,IAChBxvC,EAAY2vC,GAAsBH,EAAa,SAC/CoT,EAAU8qC,GAAa3qC,IACtB2Y,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GACtDipE,EAAmB,GAAG7rH,YAE5B,IAAIutH,EAAkB,CAAC,EAqBvB,OAnBEA,EADE7/V,EACgB,CAChB4wV,SAAuB,OAAbA,QAAkC,IAAbA,GAAsBA,EACrD7rT,MAAO,GACP+B,OAAQ,GACRqW,SAAwB0vK,EAAAA,cAAoBqxI,GAAgBl/V,OAAOoD,OAAO,CAAC,EAAGyuC,EAAO,CACnFyhM,UAAWA,EACX6rH,iBAAkBA,EAClB9oE,cAAeA,EACf59Q,QAAS0lC,MAIK,CAChByzS,SAAuB,OAAbA,QAAkC,IAAbA,GAAsBA,EACrD7rT,QACA+B,OAAmB,OAAXA,GAAgC+lL,EAAAA,cAAoB6sI,GAAQ16V,OAAOoD,OAAO,CAAC,EAAGyuC,IACtFsM,YAGG6wP,EAAwBnhF,EAAAA,cAAoB6lI,GAAO1zV,OAAOoD,OAAO,CACtEkwO,UAAWA,EACX/xO,UAAWisN,KAAW25D,EAAQ,GAAG7zC,eAAwBtyO,GAAQm+V,EAAkBn+V,GAAQ,GAAGm+V,KAAoBn+V,IAAQO,EAAW0tS,EAAW/Y,IAC/IpiD,EAAW,CACZ+9G,UAAW4I,GAAgBnnH,EAAWu+G,GACtCD,SAAUA,GACTiP,IAAkB,IChEvB,IAAIl7D,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAMA,MAAMozU,GAAYA,CAACxqU,EAAIib,KACrB,IAAIhb,GAEA49T,WAAY4M,EAAc,OAC1Bn1T,GACEtV,EACJw9M,EAAY6xD,GAAOrvQ,EAAI,CAAC,aAAc,WACxC,MAAO/c,EAAMk+S,GAAW5pG,EAAAA,UAAe,IAChCmzI,EAAaC,GAAkBpzI,EAAAA,SAAejiL,IAC/C,UACJ6rF,EAAS,aACTqrJ,GACEj1D,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,SACzBuT,EAAgBvT,IAMhBjqQ,EAAQ,WACZ,IAAIyd,EACJmhS,GAAQ,GACR,IAAK,IAAIntF,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAIvB,IAAI61H,EAFgBj8U,EAAK/Y,MAAKg3C,GAAmB,OAAVA,QAA4B,IAAVA,OAAmB,EAASA,EAAMy9S,kBAG3D,QAA/BvpU,EAAK0qU,EAAYzQ,gBAA6B,IAAPj6T,IAA0B8pU,EAAM9pU,GAAIv8B,KAAKsa,MAAM+rV,EAAK,CAACY,EAAa,QAAUxiW,OAAOw+O,GAAmB74N,EAAKnlB,MAAM,MAE7J,EACA6uN,EAAAA,oBAA0Bt8K,GAAK,KAAM,CACnCi0B,QAAS3sD,EACT4vF,OAAQy4P,IACND,GAAeE,GAAgBnhW,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG+9V,GAAeD,IAAW,MAG7F,MAAM5Q,EAAiD,QAA/B/5T,EAAKyqU,EAAY5B,gBAA6B,IAAP7oU,EAAgBA,EAA0B,YAArByqU,EAAYhgW,MACzFogW,GAAiBtS,GAAU,QAAStlB,GAActZ,OACzD,OAAoBriG,EAAAA,cAAoB8xI,GAAe3/V,OAAOoD,OAAO,CACnEkwO,UAAWA,EACX+iD,cAAeA,GACd2qE,EAAa,CACdnoV,MAAOA,EACPU,KAAMA,EACN46U,WA/BiBA,KACjB,IAAI79T,EACJyqU,IACkC,QAAjCzqU,EAAK0qU,EAAY7M,kBAA+B,IAAP79T,GAAyBA,EAAGv8B,KAAKinW,EAAY,EA6BvFv5B,OAAQu5B,EAAYv5B,SAAW6oB,EAAmC,OAAlB8Q,QAA4C,IAAlBA,OAA2B,EAASA,EAAc35B,OAA2B,OAAlB25B,QAA4C,IAAlBA,OAA2B,EAASA,EAAcz5B,YACjNlwM,UAAWupO,EAAYvpO,WAAaA,EACpCiwM,WAAYs5B,EAAYt5B,aAAiC,OAAlB05B,QAA4C,IAAlBA,OAA2B,EAASA,EAAc15B,aAClH5zF,GAAW,EAEhB,GAA4BjmB,EAAAA,WAAiBizI,IC5D7C,IAAI5kH,GAAO,EACX,MAAMmlH,GAA8BxzI,EAAAA,KAAwBA,EAAAA,YAAiB,CAACkY,EAAQx0L,KACpF,MAAO0rF,EAAUqkO,GCRJ,WACb,MAAOrkO,EAAUskO,GAAe1zI,EAAAA,SAAe,IAU/C,MAAO,CAAC5wF,EATa4wF,EAAAA,aAAkBj0L,IAErC2nU,GAAYC,GAAkB,GAAGhjW,OAAOw+O,GAAmBwkH,GAAiB,CAAC5nU,MAGtE,KACL2nU,GAAYC,GAAkBA,EAAer2V,QAAO+/N,GAAOA,IAAQtxM,KAAS,IAE7E,IAEL,CDJmC6nU,GAIjC,OAHA5zI,EAAAA,oBAA0Bt8K,GAAK,KAAM,CACnC+vT,kBACE,IACgBzzI,EAAAA,cAAoBA,EAAAA,SAAgB,KAAM5wF,EAAS,KAqFzE,SAnFA,WACE,MAAMq0M,EAAYzjH,EAAAA,OAAa,OAExB6zI,EAAaC,GAAkB9zI,EAAAA,SAAe,IACrDA,EAAAA,WAAgB,KACd,GAAI6zI,EAAYvmW,OAAQ,CACH6hP,GAAmB0kH,GAC3B5mW,SAAQqpE,IACjBA,GAAQ,IAEVw9R,EAAe,GACjB,IACC,CAACD,IAEJ,MAAME,EAAiB/zI,EAAAA,aAAkBg0I,GAAY,SAAqBj2T,GACxE,IAAItV,EACJ4lN,IAAQ,EACR,MAAM4lH,EAAwBj0I,EAAAA,YAE9B,IAAIk0I,EACJ,MAAMl+V,EAAU,IAAIb,SAAQM,IAC1By+V,EAAiBz+V,CAAO,IAE1B,IACI0+V,EADAC,GAAS,EAEb,MAAMz0B,EAAqB3/G,EAAAA,cAAoBizI,GAAW,CACxDhiW,IAAK,SAASo9O,KACdtwM,OAAQi2T,EAASj2T,GACjB2F,IAAKuwT,EACL3N,WAAYA,KACI,OAAd6N,QAAoC,IAAdA,GAAgCA,GAAW,EAEnEzS,SAAUA,IAAM0S,EAChBzR,UAAW0R,IACTH,EAAeG,EAAU,IAG7BF,EAAyC,QAA5B1rU,EAAKg7S,EAAUrxS,eAA4B,IAAP3J,OAAgB,EAASA,EAAGgrU,aAAa9zB,GACtFw0B,GACF3B,GAAWxkW,KAAKmmW,GAElB,MAAMhqS,EAAW,CACfwN,QAASA,KACP,SAAS28R,IACP,IAAI7rU,EACwB,QAA3BA,EAAKwrU,EAAS7hU,eAA4B,IAAP3J,GAAyBA,EAAGkvC,SAClE,CACIs8R,EAAS7hU,QACXkiU,IAEAR,GAAe/qU,GAAQ,GAAGp4B,OAAOw+O,GAAmBpmN,GAAO,CAACurU,KAC9D,EAEF15P,OAAQy4P,IACN,SAASkB,IACP,IAAI9rU,EACwB,QAA3BA,EAAKwrU,EAAS7hU,eAA4B,IAAP3J,GAAyBA,EAAGmyE,OAAOy4P,EACzE,CACIY,EAAS7hU,QACXmiU,IAEAT,GAAe/qU,GAAQ,GAAGp4B,OAAOw+O,GAAmBpmN,GAAO,CAACwrU,KAC9D,EAEFnoW,KAAMqJ,IACJ2+V,GAAS,EACFp+V,EAAQ5J,KAAKqJ,KAGxB,OAAO00D,CACT,GAAG,IAQH,MAAO,CAPK61J,EAAAA,SAAc,KAAM,CAC9BrhF,KAAMo1N,EAAenB,IACrBz8M,QAAS49M,EAAelB,IACxB77V,MAAO+8V,EAAejB,IACtB/nI,QAASgpI,EAAepB,IACxBP,QAAS2B,EAAehB,OACtB,IACsB/yI,EAAAA,cAAoBwzI,GAAgB,CAC5DviW,IAAK,eACLyyC,IAAK+/R,IAET,EE3FA,SAAS+wB,GAAUxwT,GACjB,OAAOouT,GAAQO,GAAS3uT,GAC1B,CACA,MAAMq+Q,GAAQoyC,GACdpyC,GAAMqyC,SAAWA,GACjBryC,GAAM1jL,KAAO,SAAgB36F,GAC3B,OAAOouT,GAAQQ,GAAS5uT,GAC1B,EACAq+Q,GAAMlsK,QAAU,SAAmBnyG,GACjC,OAAOouT,GAAQS,GAAY7uT,GAC7B,EACAq+Q,GAAMrrT,MAAQ,SAAiBgtC,GAC7B,OAAOouT,GAAQU,GAAU9uT,GAC3B,EACAq+Q,GAAMt3F,QAAUypI,GAChBnyC,GAAMziR,KAAO40T,GACbnyC,GAAM+vC,QAAU,SAAmBpuT,GACjC,OAAOouT,GAAQW,GAAY/uT,GAC7B,EACAq+Q,GAAMsyC,WAAa,WACjB,KAAOnC,GAAWllW,QAAQ,CACxB,MAAM0d,EAAQwnV,GAAWn0Q,MACrBrzE,GACFA,GAEJ,CACF,EACAq3S,GAAMtkR,OLwHC,SAA2Bq5G,GAChC,IAAI,cACFoxI,GACEpxI,EAEJ66M,GAAuBzpE,CACzB,EK7HA65B,GAAMwI,uCAAyCC,GAI/C,YCrCA,SADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,6qBAAirB,KAAQ,OAAQ,MAAS,YCMp2B,IAAI8pC,GAAe,SAAsB5wT,EAAON,GAC9C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMy2J,KAEV,EAOA,SAJ2B70I,EAAAA,WAAiB40I,ICb5C,SADuB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,ufAA2f,KAAQ,YAAa,MAAS,YCMvrB,IAAIE,GAAmB,SAA0B9wT,EAAON,GACtD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM22J,KAEV,EAOA,SAJ2B/0I,EAAAA,WAAiB80I,ICb5C,SADqB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,6vBAAiwB,KAAQ,SAAU,MAAS,YCMx7B,IAAIE,GAAiB,SAAwBhxT,EAAON,GAClD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM62J,KAEV,EAOA,SAJ2Bj1I,EAAAA,WAAiBg1I,ICb5C,SADoB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAC,EAAG,SAAY,CAAC,CAAE,IAAO,QAAS,MAAS,CAAC,KAAQ,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,8wBAAkxB,KAAQ,QAAS,MAAS,YCMthC,IAAIE,GAAgB,SAAuBlxT,EAAON,GAChD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM+2J,KAEV,EAOA,SAJ2Bn1I,EAAAA,WAAiBk1I,ICb5C,SADsB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,u2BAA22B,KAAQ,WAAY,MAAS,YCMriC,IAAIE,GAAkB,SAAyBpxT,EAAON,GACpD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMi3J,KAEV,EAOA,SAJ2Br1I,EAAAA,WAAiBo1I,ICb5C,SADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,wXAA4X,KAAQ,OAAQ,MAAS,YCM/iB,IAAIE,GAAe,SAAsBtxT,EAAON,GAC9C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMm3J,KAEV,EAOA,SAJ2Bv1I,EAAAA,WAAiBs1I,ICb5C,SADqB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,ugBAA2gB,KAAQ,SAAU,MAAS,YCMlsB,IAAIE,GAAiB,SAAwBxxT,EAAON,GAClD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMq3J,KAEV,EAOA,SAJ2Bz1I,EAAAA,WAAiBw1I,ICb5C,SAD2B,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,m0BAAu0B,KAAQ,gBAAiB,MAAS,YCM3gC,IAAIE,GAAuB,SAA8B1xT,EAAON,GAC9D,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMu3J,KAEV,EAOA,SAJ2B31I,EAAAA,WAAiB01I,mBCdrC,SAASE,GAAiBz+U,GAC/BA,GACF,CCwFA,IAAM0+U,GAAgB,CACpBC,MAAAA,GAAU,EACVn8V,IAAKA,IAAM,IAGN,SAASo8V,GAAmB3uV,EAAY4uV,GAC7C,IAAI76K,EACA31H,EAAgCqwS,GAGhCI,EAAsB,EAGtBC,GAAiB,EAsBrB,SAASC,IACHC,EAAaC,eACfD,EAAaC,eAEjB,CAMA,SAASC,IACPL,IACK96K,IACHA,EAAc66K,EACVA,EAAUO,aAAaJ,GACvB/uV,EAAMiT,UAAU87U,GAEpB3wS,EAjIN,WACE,IAAIl3C,EAAyB,KACzBsxD,EAAwB,KAE5B,MAAO,CACLya,KAAAA,GACE/rE,EAAQ,KACRsxD,EAAO,IACT,EAEAk2R,MAAAA,GACEF,IAAM,KACJ,IAAIxrS,EAAW97C,EACf,KAAO87C,GACLA,EAASjzC,WACTizC,EAAWA,EAAS/pD,IACtB,GAEJ,EAEA1G,GAAAA,GACE,MAAM6rD,EAAwB,GAC9B,IAAI4E,EAAW97C,EACf,KAAO87C,GACL5E,EAAUx3D,KAAKo8D,GACfA,EAAWA,EAAS/pD,KAEtB,OAAOmlD,CACT,EAEAnrC,SAAAA,CAAUlD,GACR,IAAI03L,GAAe,EAEnB,MAAMzkJ,EAAsBwV,EAAO,CACjCzoD,WACA9W,KAAM,KACN0oB,KAAM62C,GASR,OANIxV,EAASrhC,KACXqhC,EAASrhC,KAAK1oB,KAAO+pD,EAErB97C,EAAQ87C,EAGH,WACAykJ,GAA0B,OAAVvgM,IACrBugM,GAAe,EAEXzkJ,EAAS/pD,KACX+pD,EAAS/pD,KAAK0oB,KAAOqhC,EAASrhC,KAE9B62C,EAAOxV,EAASrhC,KAEdqhC,EAASrhC,KACXqhC,EAASrhC,KAAK1oB,KAAO+pD,EAAS/pD,KAE9BiO,EAAQ87C,EAAS/pD,KAErB,CACF,EAEJ,CAmEkBm2V,GAEhB,CAEA,SAASC,IACPR,IACI96K,GAAuC,IAAxB86K,IACjB96K,IACAA,OAAc,EACd31H,EAAU60B,QACV70B,EAAYqwS,GAEhB,CAgBA,MAAMO,EAA6B,CACjCG,aAlEF,SAAsBnsS,GACpBksS,IAEA,MAAMI,EAAkBlxS,EAAUnrC,UAAU+vC,GAG5C,IAAIusS,GAAU,EACd,MAAO,KACAA,IACHA,GAAU,EACVD,IACAD,IACF,CAEJ,EAqDEG,iBAnDF,WACEpxS,EAAUswS,QACZ,EAkDEK,sBACAtnJ,aA3CF,WACE,OAAOqnJ,CACT,EA0CEI,aAnBF,WACOJ,IACHA,GAAiB,EACjBI,IAEJ,EAeEG,eAbF,WACMP,IACFA,GAAiB,EACjBO,IAEJ,EASEI,aAAcA,IAAMrxS,GAGtB,OAAO4wS,CACT,CC1KA,IAOMv6H,GAPY3b,OAEI,qBAAXxuN,QACoB,qBAApBA,OAAO+B,UAC2B,qBAAlC/B,OAAO+B,SAASf,eAGGwtN,GAcxB42I,GAHyBC,KACR,qBAAd9tT,WAAmD,gBAAtBA,UAAU+tT,QAEVD,GAKzBjkI,GAHwBmkI,KACnCp7H,IAASi7H,GAAgB92I,EAAAA,gBAAwBA,EAAAA,UAGjCi3I,GC4CK9kW,OAAOgN,eACFhN,OAAOia,oBACLja,OAAOiX,sBACJjX,OAAOiN,yBACjBjN,OAAOmN,eACNnN,OAAOnG,UCzE/B,IAAMkrW,GAA6BroW,OAAO00C,IAAI,uBACxC4zT,GAMkB,qBAAfvwV,WACHA,WAAA,CAC6F,EAGnG,SAASpS,KACP,IAAKwrN,EAAAA,cAAqB,MAAO,CAAC,EAElC,MAAMo3I,EAAcD,GAAGD,MAAgB,IAAIh5T,IAI3C,IAAIm5T,EAAcD,EAAWz9V,IAAIqmN,EAAAA,eAUjC,OATKq3I,IACHA,EAAcr3I,EAAAA,cACZ,MAKFo3I,EAAWthW,IAAIkqN,EAAAA,cAAqBq3I,IAE/BA,CACT,CAEO,IAAMC,GAAkC9iW,KCyD/C,IAAO+iW,GAhDP,SACE93C,GAEA,MAAM,SAAEnvQ,EAAA,QAAUgiB,EAAA,YAASklS,EAAA,MAAapwV,GAAUq4S,EAE5Crd,EAAepiF,EAAAA,SAAc,KACjC,MAAMo2I,EAAeL,GAAmB3uV,GAStC,MAPuB,CACvBA,QACAgvV,eACAqB,eAAgBD,EAAc,IAAMA,OAAc,EAK5C,GASP,CAACpwV,EAAOowV,IAELE,EAAgB13I,EAAAA,SAAc,IAAM54M,EAAMuwV,YAAY,CAACvwV,IAE7D0rN,IAA0B,KACxB,MAAM,aAAEsjI,GAAiBh0D,EAOzB,OANAg0D,EAAaC,cAAgBD,EAAaQ,iBAC1CR,EAAaE,eAEToB,IAAkBtwV,EAAMuwV,YAC1BvB,EAAaQ,mBAER,KACLR,EAAaK,iBACbL,EAAaC,mBAAgB,EAC9B,GACA,CAACj0D,EAAcs1D,IAElB,MAAMtjN,EAAU9hF,GAAWglS,GAE3B,OAAOt3I,EAAAA,cAAC5rE,EAAQhxC,SAAR,CAAiBr4G,MAAOq3S,GAAe9xP,EACjD,EC3FO,SAASsnT,KAAoD,IAA7BtlS,EAAA12D,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAU07V,GAC/C,OAAO,WASL,OARqBt3I,EAAAA,WAAiB1tJ,EASxC,CACF,CAkBO,IAAMulS,GAAgCD,KCuCtC,SAASE,KASd,IAJAxlS,EAAA12D,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAGY07V,GAEZ,MAAMS,EACJzlS,IAAYglS,GACRO,GAEAD,GAAuBtlS,GACvB0lS,EAAWC,KACf,MAAM,MAAE7wV,GAAU2wV,IAClB,OAAO3wV,CAAA,EAOT,OAJAjV,OAAOoD,OAAOyiW,EAAU,CACtBE,UAAWA,IAAMF,IAGZA,CACT,CAiBO,IAAMC,GAAyBH,KCjE/B,SAASK,KASd,IAJA7lS,EAAA12D,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAGY07V,GAEZ,MAAMU,EACJ1lS,IAAYglS,GAAoBW,GAAkBH,GAAgBxlS,GAE9D8lS,EAAcC,IACJL,IACDthS,SAOf,OAJAvkE,OAAOoD,OAAO6iW,EAAa,CACzBF,UAAWA,IAAME,IAGZA,CACT,CAuBO,IAAMC,GAA4BF,KCenCG,GAA+BA,CAACjyV,EAAGC,IAAMD,IAAMC,EAQ9C,SAASiyV,KAKD,IAJbjmS,EAAA12D,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAGY07V,GAEZ,MAAMS,EACJzlS,IAAYglS,GACRO,GACAD,GAAuBtlS,GAEvBkmS,EAAc,SAClBrxI,GAIa,IAHbsxI,EAAA78V,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAE4C,CAAC,EAE7C,MAAM,WAAE88V,EAAaJ,IACY,oBAAxBG,EACH,CAAEC,WAAYD,GACdA,EAeN,MAAME,EAAeZ,KAEf,MAAE3wV,EAAA,aAAOgvV,EAAA,eAAcqB,GAAmBkB,EAI1CC,GAFW54I,EAAAA,QAAa,GAENA,EAAAA,YACtB,CACE,CAACmH,EAAS/sN,MAAM5D,GACG2wN,EAAS3wN,IAoE5B2wN,EAAS/sN,MACX,CAAC+sN,KAGG0xI,GAAgB5xI,EAAAA,GAAAA,kCACpBmvI,EAAaG,aACbnvV,EAAMuwV,SACNF,GAAkBrwV,EAAMuwV,SACxBiB,EACAF,GAKF,OAFA14I,EAAAA,cAAoB64I,GAEbA,CACT,EAMA,OAJA1mW,OAAOoD,OAAOijW,EAAa,CACzBN,UAAWA,IAAMM,IAGZA,CACT,CAyBO,IAAMM,GAA4BP,KCtRlC,SAASQ,GAAuBpmV,GACrC,MAAO,yBAAyBA,6CAAgDA,kFAClF,CCJA,IACOqmV,GAD8B,KAAwB,oBAAXnqW,QAAyBA,OAAOoqW,YAAc,eAA3D,GCE/BC,GAAeA,IAAMvrW,KAAKmiB,SAAS3V,SAAS,IAAIogB,UAAU,GAAGjV,MAAM,IAAIlU,KAAK,KAM3E+nW,GALa,CAClBC,KAAM,eAA8BF,OACpCG,QAAS,kBAAiCH,OAC1CI,qBAAsBA,IAAM,+BAA+BJ,QCP9C,SAAR31Q,GAA+B30F,GACpC,GAAmB,kBAARA,GAA4B,OAARA,EAAc,OAAO,EACpD,IAAI6T,EAAQ7T,EACZ,KAAwC,OAAjCuD,OAAOmN,eAAemD,IAC3BA,EAAQtQ,OAAOmN,eAAemD,GAEhC,OAAOtQ,OAAOmN,eAAe1Q,KAAS6T,GAAwC,OAA/BtQ,OAAOmN,eAAe1Q,EACvE,CC8DO,SAAS2qW,GAAoGC,EAAwCC,EAA4EC,GACtO,GAAuB,oBAAZF,EACT,MAAM,IAAI3pW,MAA8CkpW,GAAwB,IAElF,GAA8B,oBAAnBU,GAAqD,oBAAbC,GAA+C,oBAAbA,GAAmD,oBAAjB99V,UAAU,GAC/H,MAAM,IAAI/L,MAA8CkpW,GAAyB,IAMnF,GAJ8B,oBAAnBU,GAAqD,qBAAbC,IACjDA,EAAYD,EACZA,OAAiB,GAEK,qBAAbC,EAA0B,CACnC,GAAwB,oBAAbA,EACT,MAAM,IAAI7pW,MAA8CkpW,GAAyB,IAEnF,OAAOW,EAASH,GAATG,CAAsBF,EAAUC,EACzC,CACA,IAAIE,EAAiBH,EACjBI,EAAgDH,EAChDI,EAAyD,IAAI37T,IAC7D47T,EAAgBD,EAChBE,EAAoB,EACpBC,GAAgB,EASpB,SAASC,IACHH,IAAkBD,IACpBC,EAAgB,IAAI57T,IACpB27T,EAAiB5sW,SAAQ,CAACm9D,EAAUn5D,KAClC6oW,EAAchkW,IAAI7E,EAAKm5D,EAAS,IAGtC,CAOA,SAASutS,IACP,GAAIqC,EACF,MAAM,IAAInqW,MAA8CkpW,GAAyB,IAEnF,OAAQa,CACV,CAyBA,SAASv/U,EAAU+vC,GACjB,GAAwB,oBAAbA,EACT,MAAM,IAAIv6D,MAA8CkpW,GAAyB,IAEnF,GAAIiB,EACF,MAAM,IAAInqW,MAA8CkpW,GAAyB,IAEnF,IAAIlqJ,GAAe,EACnBorJ,IACA,MAAMC,EAAaH,IAEnB,OADAD,EAAchkW,IAAIokW,EAAY9vS,GACvB,WACL,GAAKykJ,EAAL,CAGA,GAAImrJ,EACF,MAAM,IAAInqW,MAA8CkpW,GAAyB,IAEnFlqJ,GAAe,EACforJ,IACAH,EAAc5+S,OAAOg/S,GACrBL,EAAmB,IAPnB,CAQF,CACF,CA2BA,SAASnjS,EAASJ,GAChB,IAAKitB,GAAcjtB,GACjB,MAAM,IAAIzmE,MAA8CkpW,GAAyB,IAEnF,GAA2B,qBAAhBziS,EAAOnjE,KAChB,MAAM,IAAItD,MAA8CkpW,GAAyB,IAEnF,GAA2B,kBAAhBziS,EAAOnjE,KAChB,MAAM,IAAItD,MAA8CkpW,GAA0B,KAEpF,GAAIiB,EACF,MAAM,IAAInqW,MAA8CkpW,GAA0B,IAEpF,IACEiB,GAAgB,EAChBJ,EAAeD,EAAeC,EAActjS,EAC9C,CAAE,QACA0jS,GAAgB,CAClB,CAKA,OAJkBH,EAAmBC,GAC3B7sW,SAAQm9D,IAChBA,GAAU,IAELkM,CACT,CAoEAI,EAAU,CACRvjE,KAAMgmW,GAAYC,OASpB,MAPgB,CACd1iS,WACAr8C,YACAs9U,WACAwC,eAhEF,SAAwBC,GACtB,GAA2B,oBAAhBA,EACT,MAAM,IAAIvqW,MAA8CkpW,GAA0B,KAEpFY,EAAmBS,EAMnB1jS,EAAU,CACRvjE,KAAMgmW,GAAYE,SAEtB,EAoDE,CAACL,IA5CH,WACE,MAAMqB,EAAiBhgV,EACvB,MAAO,CASLA,SAAAA,CAAU1B,GACR,GAAwB,kBAAbA,GAAsC,OAAbA,EAClC,MAAM,IAAI9oB,MAA8CkpW,GAA0B,KAEpF,SAASuB,IACP,MAAMC,EAAsB5hV,EACxB4hV,EAAmBl6V,MACrBk6V,EAAmBl6V,KAAKs3V,IAE5B,CACA2C,IAEA,MAAO,CACLn/K,YAFkBk/K,EAAeC,GAIrC,EACA,CAACtB,MACC,OAAO7sW,IACT,EAEJ,EAgBF,CCxOe,SAARquW,GAAiCC,GAGtC,MAAMC,EAAcvoW,OAAOC,KAAKqoW,GAC1BE,EAEF,CAAC,EACL,IAAK,IAAIttW,EAAI,EAAGA,EAAIqtW,EAAYptW,OAAQD,IAAK,CAC3C,MAAM4D,EAAMypW,EAAYrtW,GACpB6X,EAKyB,oBAAlBu1V,EAASxpW,KAClB0pW,EAAc1pW,GAAOwpW,EAASxpW,GAElC,CACA,MAAM2pW,EAAmBzoW,OAAOC,KAAKuoW,GAIrC,IAMIE,EACJ,KAnEF,SAA4BJ,GAG1BtoW,OAAOC,KAAKqoW,GAAUxtW,SAAQgE,IAC5B,MAAMuoW,EAAUiB,EAASxpW,GAIzB,GAA4B,qBAHPuoW,OAAQ,EAAW,CACtCrmW,KAAMgmW,GAAYC,OAGlB,MAAM,IAAIvpW,MAA8CkpW,GAAwB,KAElF,GAEO,qBAFIS,OAAQ,EAAW,CAC5BrmW,KAAMgmW,GAAYG,yBAElB,MAAM,IAAIzpW,MAA8CkpW,GAAyB,IACnF,GAEJ,CAmDI+B,CAAmBH,EACrB,CAAE,MAAOhhV,KACPkhV,EAAsBlhV,GACxB,CACA,OAAO,WAA8F,IAAzEnjB,EAAAoF,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAqD,CAAC,EAAG06D,EAAA16D,UAAAtO,OAAA,EAAAsO,UAAA,QAAAxC,EACnF,GAAIyhW,EACF,MAAMA,EAQR,IAAIE,GAAa,EACjB,MAAMC,EAAyD,CAAC,EAChE,IAAK,IAAI3tW,EAAI,EAAGA,EAAIutW,EAAiBttW,OAAQD,IAAK,CAChD,MAAM4D,EAAM2pW,EAAiBvtW,GACvBmsW,EAAUmB,EAAc1pW,GACxBgqW,EAAsBzkW,EAAMvF,GAC5BiqW,EAAkB1B,EAAQyB,EAAqB3kS,GACrD,GAA+B,qBAApB4kS,EAAiC,CACvB5kS,GAAUA,EAAOnjE,KACpC,MAAM,IAAItD,MAA8CkpW,GAAyB,IACnF,CACAiC,EAAU/pW,GAAOiqW,EACjBH,EAAaA,GAAcG,IAAoBD,CACjD,CAEA,OADAF,EAAaA,GAAcH,EAAiBttW,SAAW6E,OAAOC,KAAKoE,GAAOlJ,OACnEytW,EAAaC,EAAYxkW,CAClC,CACF,CCvGe,SAAR2kW,KAA+C,QAAAt+H,EAAAjhO,UAAAtO,OAAnBu8F,EAAA,IAAA78F,MAAA6vO,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAAjzI,EAAAizI,GAAAlhO,UAAAkhO,GACjC,OAAqB,IAAjBjzI,EAAMv8F,OAEIgb,GAAWA,EAEJ,IAAjBuhF,EAAMv8F,OACDu8F,EAAM,GAERA,EAAMz+D,QAAO,CAAC/kB,EAAGC,IAAM,kBAAkBD,EAAEC,KAAE1K,WAAS,GAC/D,CCnCA,SAASw/V,GAAsBC,GAO7B,OANmBjkN,IAAA,IAAC,SAAE1gF,EAAQ,SAAEihS,GAAUvgN,EAAA,OAAM/2I,GAAUi2D,GAClC,oBAAXA,EACFA,EAAOI,EAAUihS,EAAU0D,GAE7Bh7V,EAAKi2D,EACb,CAEH,CACA,IAAIglS,GAAQF,KACRG,GAAoBH,GCNXI,GAAyB3sW,OAAO00C,IAAI,iBAUpCk4T,GAA2B5sW,OAAO00C,IAAI,mBAEtCm4T,GAA6B7sW,OAAO00C,IAAI,eCqB9C,SAASo4T,GAAI3kW,GAMnB,MAAM,IAAInH,MACT,8BAA8BmH,2CAEhC,CCjCO,IAAMsI,GAAiBnN,OAAOmN,eAI9B,SAASs8V,GAAQ7wW,GACvB,QAASA,KAAWA,EAAM2wW,GAC3B,CAIO,SAASG,GAAY9wW,GAC3B,QAAKA,IAEJw4F,GAAcx4F,IACdiC,MAAMqR,QAAQtT,MACZA,EAAM0wW,OACN1wW,EAAMgE,cAAc0sW,KACtBjoR,GAAMzoF,IACN6oF,GAAM7oF,GAER,CAEA,IAAMm9C,GAAmB/1C,OAAOnG,UAAU+C,YAAYoL,WAE/C,SAASopF,GAAcx4F,GAC7B,IAAKA,GAA0B,kBAAVA,EAAoB,OAAO,EAChD,MAAM0X,EAAQnD,GAAevU,GAC7B,GAAc,OAAV0X,EACH,OAAO,EAER,MAAM0lC,EACLh2C,OAAO1C,eAAevD,KAAKuW,EAAO,gBAAkBA,EAAM1T,YAE3D,OAAIo5C,IAASh2C,QAGG,mBAARg2C,GACP70C,SAAS6G,SAASjO,KAAKi8C,KAAUD,EAEnC,CAmBO,SAASk4D,GAAKxxG,EAAUktW,GACL,IAArBC,GAAYntW,GACfk/C,QAAQ7uC,QAAQrQ,GAAK3B,SAAQgE,IAC5B6qW,EAAK7qW,EAAKrC,EAAIqC,GAAMrC,EAAI,IAGzBA,EAAI3B,SAAQ,CAAC4vB,EAAYxgB,IAAey/V,EAAKz/V,EAAOwgB,EAAOjuB,IAE7D,CAGO,SAASmtW,GAAYxa,GAC3B,MAAM/qV,EAAgC+qV,EAAMma,IAC5C,OAAOllW,EACJA,EAAMwlW,MACNhvW,MAAMqR,QAAQkjV,GAAK,EAEnB/tQ,GAAM+tQ,GAAK,EAEX3tQ,GAAM2tQ,GAAK,GAGf,CAGO,SAASviV,GAAIuiV,EAAY/0V,GAC/B,OAA8B,IAAvBuvW,GAAYxa,GAChBA,EAAMviV,IAAIxS,GACV2F,OAAOnG,UAAUyD,eAAevD,KAAKq1V,EAAO/0V,EAChD,CASO,SAASsJ,GAAIyrV,EAAY0a,EAA6BlxW,GAC5D,MAAM80B,EAAIk8U,GAAYxa,GAClB,IAAA1hU,EAAoB0hU,EAAMzrV,IAAImmW,EAAgBlxW,GACzC,IAAA80B,EACR0hU,EAAM5/T,IAAI52B,GACJw2V,EAAM0a,GAAkBlxW,CAChC,CAaO,SAASyoF,GAAMt8E,GACrB,OAAOA,aAAkBgnC,GAC1B,CAGO,SAAS01C,GAAM18E,GACrB,OAAOA,aAAkB+vC,GAC1B,CAEO,SAASi1T,GAAO1lW,GACtB,OAAOA,EAAM2lW,OAAS3lW,EAAM4lW,KAC7B,CAGO,SAASC,GAAYpoT,EAAW0kG,GACtC,GAAInlE,GAAMv/B,GACT,OAAO,IAAI/V,IAAI+V,GAEhB,GAAI2/B,GAAM3/B,GACT,OAAO,IAAIhN,IAAIgN,GAEhB,GAAIjnD,MAAMqR,QAAQ41C,GAAO,OAAOjnD,MAAMhB,UAAUmF,MAAMjF,KAAK+nD,GAE3D,MAAMqoT,EAAU/4Q,GAActvC,GAE9B,IAAe,IAAX0kG,GAA+B,eAAXA,IAA4B2jN,EAAU,CAE7D,MAAMC,EAAcpqW,OAAO6oO,0BAA0B/mL,UAC9CsoT,EAAYb,IACnB,IAAItpW,EAAO07C,QAAQ7uC,QAAQs9V,GAC3B,IAAK,IAAIlvW,EAAI,EAAGA,EAAI+E,EAAK9E,OAAQD,IAAK,CACrC,MAAM4D,EAAWmB,EAAK/E,GAChBinB,EAAOioV,EAAYtrW,IACH,IAAlBqjB,EAAK5T,WACR4T,EAAK5T,UAAW,EAChB4T,EAAK/Y,cAAe,IAKjB+Y,EAAK3a,KAAO2a,EAAKxe,OACpBymW,EAAYtrW,GAAO,CAClBsK,cAAc,EACdmF,UAAU,EACVD,WAAY6T,EAAK7T,WACjB1V,MAAOkpD,EAAKhjD,IAEf,CACA,OAAOkB,OAAO4D,OAAOuJ,GAAe20C,GAAOsoT,EAC5C,CAAO,CAEN,MAAM95V,EAAQnD,GAAe20C,GAC7B,GAAc,OAAVxxC,GAAkB65V,EACrB,MAAO,IAAIroT,GAEZ,MAAMrlD,EAAMuD,OAAO4D,OAAO0M,GAC1B,OAAOtQ,OAAOoD,OAAO3G,EAAKqlD,EAC3B,CACD,CAUO,SAASuoT,GAAU5tW,GAAoC,IAA1Bg9S,EAAAhwS,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,IAAAA,UAAA,GACnC,OAAIu+I,GAASvrJ,IAAQgtW,GAAQhtW,KAASitW,GAAYjtW,KAC9CmtW,GAAYntW,GAAO,IACtBA,EAAIkH,IAAMlH,EAAI+yB,IAAM/yB,EAAIyrF,MAAQzrF,EAAIssD,OAASuhT,IAE9CtqW,OAAOqqW,OAAO5tW,GACVg9S,GAGHz5S,OAAOoQ,QAAQ3T,GAAK3B,SAAQmqJ,IAAA,IAAEnmJ,EAAKlG,GAAKqsJ,EAAA,OAAMolN,GAAOzxW,GAAO,EAAK,KARH6D,CAUhE,CAEA,SAAS6tW,KACRd,GAAI,EACL,CAEO,SAASxhN,GAASvrJ,GACxB,OAAOuD,OAAOgoJ,SAASvrJ,EACxB,CC5MA,ICYI8tW,GDZEC,GAoBF,CAAC,EAIE,SAASC,GACfC,GAEA,MAAMC,EAASH,GAAQE,GAKvB,OAJKC,GACJnB,GAAI,GAGEmB,CACR,CCnBO,SAASC,KACf,OAAOL,EACR,CAiBO,SAASM,GACf5yK,EACA6yK,GAEIA,IACHL,GAAU,WACVxyK,EAAM8yK,SAAW,GACjB9yK,EAAM+yK,gBAAkB,GACxB/yK,EAAMgzK,eAAiBH,EAEzB,CAEO,SAASI,GAAYjzK,GAC3BkzK,GAAWlzK,GACXA,EAAMmzK,QAAQtwW,QAAQuwW,IAEtBpzK,EAAMmzK,QAAU,IACjB,CAEO,SAASD,GAAWlzK,GACtBA,IAAUsyK,KACbA,GAAetyK,EAAMqzK,QAEvB,CAEO,SAASC,GAAWC,GAC1B,OAAQjB,GArCD,CACNa,QAAS,GACTE,QAmCkCf,GAlClCkB,OAkCgDD,EA/BhDE,gBAAgB,EAChBC,mBAAoB,EA+BtB,CAEA,SAASN,GAAYO,GACpB,MAAMvnW,EAAoBunW,EAAMrC,IACtB,IAANllW,EAAMwlW,OAAmC,IAANxlW,EAAMwlW,MAC5CxlW,EAAMwnW,UACFxnW,EAAMynW,UAAW,CACvB,CC3DO,SAASC,GAAc9gW,EAAagtL,GAC1CA,EAAM0zK,mBAAqB1zK,EAAMmzK,QAAQjwW,OACzC,MAAM6wW,EAAY/zK,EAAMmzK,QAAS,GA4BjC,YA3B8B,IAAXngW,GAAwBA,IAAW+gW,GAEjDA,EAAUzC,IAAa0C,YAC1Bf,GAAYjzK,GACZuxK,GAAI,IAEDE,GAAYz+V,KAEfA,EAASihW,GAASj0K,EAAOhtL,GACpBgtL,EAAMqzK,SAASa,GAAYl0K,EAAOhtL,IAEpCgtL,EAAM8yK,UACTN,GAAU,WAAW2B,4BACpBJ,EAAUzC,IAAaU,MACvBh/V,EACAgtL,EAAM8yK,SACN9yK,EAAM+yK,kBAKR//V,EAASihW,GAASj0K,EAAO+zK,EAAW,IAErCd,GAAYjzK,GACRA,EAAM8yK,UACT9yK,EAAMgzK,eAAgBhzK,EAAM8yK,SAAU9yK,EAAM+yK,iBAEtC//V,IAAWo+V,GAAUp+V,OAAS,CACtC,CAEA,SAASihW,GAASG,EAAuBzzW,EAAY4X,GAEpD,GAAIw3I,GAASpvJ,GAAQ,OAAOA,EAE5B,MAAMyL,EAAoBzL,EAAM2wW,IAEhC,IAAKllW,EAIJ,OAHA4pG,GAAKr1G,GAAO,CAACkG,EAAKwtW,IACjBC,GAAiBF,EAAWhoW,EAAOzL,EAAOkG,EAAKwtW,EAAY97V,KAErD5X,EAGR,GAAIyL,EAAMmoW,SAAWH,EAAW,OAAOzzW,EAEvC,IAAKyL,EAAM4nW,UAEV,OADAE,GAAYE,EAAWhoW,EAAM4lW,OAAO,GAC7B5lW,EAAM4lW,MAGd,IAAK5lW,EAAMooW,WAAY,CACtBpoW,EAAMooW,YAAa,EACnBpoW,EAAMmoW,OAAOb,qBACb,MAAM1gW,EAAS5G,EAAM2lW,MAKrB,IAAI0C,EAAazhW,EACb0hW,GAAQ,EACF,IAANtoW,EAAMwlW,QACT6C,EAAa,IAAI53T,IAAI7pC,GACrBA,EAAOi9E,QACPykR,GAAQ,GAET1+P,GAAKy+P,GAAY,CAAC5tW,EAAKwtW,IACtBC,GAAiBF,EAAWhoW,EAAO4G,EAAQnM,EAAKwtW,EAAY97V,EAAMm8V,KAGnER,GAAYE,EAAWphW,GAAQ,GAE3BuF,GAAQ67V,EAAUtB,UACrBN,GAAU,WAAWmC,iBACpBvoW,EACAmM,EACA67V,EAAUtB,SACVsB,EAAUrB,gBAGb,CACA,OAAO3mW,EAAM2lW,KACd,CAEA,SAASuC,GACRF,EACAQ,EACAC,EACAzyW,EACAiyW,EACAS,EACAC,GAIA,GAAIvD,GAAQ6C,GAAa,CACxB,MAQM1vU,EAAMsvU,GAASG,EAAWC,EAP/BS,GACAF,GACa,IAAbA,EAAahD,QACZh9V,GAAKggW,EAA8CI,UAAY5yW,GAC7D0yW,EAAUvuW,OAAOnE,QACjB,GAMJ,GAHAsJ,GAAImpW,EAAczyW,EAAMuiC,IAGpB6sU,GAAQ7sU,GAEL,OADNyvU,EAAUX,gBAAiB,CAE7B,MAAWsB,GACVF,EAAat9U,IAAI88U,GAGlB,GAAI5C,GAAY4C,KAAgBtkN,GAASskN,GAAa,CACrD,IAAKD,EAAUZ,OAAOyB,aAAeb,EAAUV,mBAAqB,EAMnE,OAEDO,GAASG,EAAWC,GAKjBO,GAAgBA,EAAYL,OAAOlB,SACrB,kBAATjxW,IACP2F,OAAOnG,UAAU+a,qBAAqB7a,KAAK+yW,EAAczyW,IAEzD8xW,GAAYE,EAAWC,EACzB,CACD,CAEA,SAASH,GAAYl0K,EAAmBr/L,GAA0B,IAAd6gT,EAAAhwS,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,IAAAA,UAAA,IAE9CwuL,EAAMqzK,SAAWrzK,EAAMwzK,OAAOyB,aAAej1K,EAAMyzK,gBACvDrB,GAAOzxW,EAAO6gT,EAEhB,CC/DO,IAAM0zD,GAAwC,CACpD3lW,GAAAA,CAAInD,EAAOhK,GACV,GAAIA,IAASkvW,GAAa,OAAOllW,EAEjC,MAAMuB,EAASmkW,GAAO1lW,GACtB,IAAKwI,GAAIjH,EAAQvL,GAEhB,OAyIH,SAA2BgK,EAAmBuB,EAAavL,GAC1D,MAAM8nB,EAAOirV,GAAuBxnW,EAAQvL,GAC5C,OAAO8nB,EACJ,UAAWA,EACVA,EAAKvpB,MAGLupB,EAAK3a,KAAKzN,KAAKsK,EAAMgpW,aACtB,CACJ,CAlJUC,CAAkBjpW,EAAOuB,EAAQvL,GAEzC,MAAMzB,EAAQgN,EAAOvL,GACrB,OAAIgK,EAAMooW,aAAe/C,GAAY9wW,GAC7BA,EAIJA,IAAU81N,GAAKrqN,EAAM4lW,MAAO5vW,IAC/BkzW,GAAYlpW,GACJA,EAAM2lW,MAAO3vW,GAAemzW,GAAY50W,EAAOyL,IAEjDzL,CACR,EACAiU,IAAG,CAACxI,EAAOhK,IACHA,KAAQ0vW,GAAO1lW,GAEvByI,QAAQzI,GACAs3C,QAAQ7uC,QAAQi9V,GAAO1lW,IAE/BV,GAAAA,CACCU,EACAhK,EACAzB,GAEA,MAAMupB,EAAOirV,GAAuBrD,GAAO1lW,GAAQhK,GACnD,GAAI8nB,GAAMxe,IAIT,OADAwe,EAAKxe,IAAI5J,KAAKsK,EAAMgpW,OAAQz0W,IACrB,EAER,IAAKyL,EAAM4nW,UAAW,CAGrB,MAAMwB,EAAU/+I,GAAKq7I,GAAO1lW,GAAQhK,GAE9BotW,EAAiCgG,IAAUlE,IACjD,GAAI9B,GAAgBA,EAAawC,QAAUrxW,EAG1C,OAFAyL,EAAM2lW,MAAO3vW,GAAQzB,EACrByL,EAAM4oW,UAAU5yW,IAAQ,GACjB,EAER,KJhCgBsqB,EIgCT/rB,MJhCiBm2B,EIgCV0+U,GJ7BF,IAAN9oV,GAAW,EAAIA,IAAM,EAAIoK,EAEzBpK,IAAMA,GAAKoK,IAAMA,UI2Bc,IAAVn2B,GAAuBiU,GAAIxI,EAAM4lW,MAAO5vW,IAClE,OAAO,EACRkzW,GAAYlpW,GACZqpW,GAAYrpW,EACb,CJpCK,IAAYsgB,EAAQoK,EIsCzB,OACE1qB,EAAM2lW,MAAO3vW,KAAUzB,SAEZ,IAAVA,GAAuByB,KAAQgK,EAAM2lW,QAEtC9oW,OAAOic,MAAMvkB,IAAUsI,OAAOic,MAAM9Y,EAAM2lW,MAAO3vW,MAKnDgK,EAAM2lW,MAAO3vW,GAAQzB,EACrByL,EAAM4oW,UAAU5yW,IAAQ,IAJhB,CAMT,EACAszW,eAAc,CAACtpW,EAAOhK,UAEW,IAA5Bq0N,GAAKrqN,EAAM4lW,MAAO5vW,IAAuBA,KAAQgK,EAAM4lW,OAC1D5lW,EAAM4oW,UAAU5yW,IAAQ,EACxBkzW,GAAYlpW,GACZqpW,GAAYrpW,WAGLA,EAAM4oW,UAAU5yW,GAEpBgK,EAAM2lW,cACF3lW,EAAM2lW,MAAM3vW,IAEb,GAIR4S,wBAAAA,CAAyB5I,EAAOhK,GAC/B,MAAMm+I,EAAQuxN,GAAO1lW,GACf8d,EAAOw5B,QAAQ1uC,yBAAyBurI,EAAOn+I,GACrD,OAAK8nB,EACE,CACN5T,UAAU,EACVnF,aAAoB,IAAN/E,EAAMwlW,OAAqC,WAATxvW,EAChDiU,WAAY6T,EAAK7T,WACjB1V,MAAO4/I,EAAMn+I,IALI8nB,CAOnB,EACAnV,cAAAA,GACCw8V,GAAI,GACL,EACAr8V,eAAe9I,GACP8I,GAAe9I,EAAM4lW,OAE7Br7V,cAAAA,GACC46V,GAAI,GACL,GAOKoE,GAA8C,CAAC,EAyBrD,SAASl/I,GAAKk9I,EAAgBvxW,GAC7B,MAAMgK,EAAQunW,EAAMrC,IAEpB,OADellW,EAAQ0lW,GAAO1lW,GAASunW,GACzBvxW,EACf,CAaA,SAAS+yW,GACRxnW,EACAvL,GAGA,KAAMA,KAAQuL,GAAS,OACvB,IAAI0K,EAAQnD,GAAevH,GAC3B,KAAO0K,GAAO,CACb,MAAM6R,EAAOniB,OAAOiN,yBAAyBqD,EAAOjW,GACpD,GAAI8nB,EAAM,OAAOA,EACjB7R,EAAQnD,GAAemD,EACxB,CAED,CAEO,SAASo9V,GAAYrpW,GACtBA,EAAM4nW,YACV5nW,EAAM4nW,WAAY,EACd5nW,EAAMinW,SACToC,GAAYrpW,EAAMinW,SAGrB,CAEO,SAASiC,GAAYlpW,GAKtBA,EAAM2lW,QACV3lW,EAAM2lW,MAAQE,GACb7lW,EAAM4lW,MACN5lW,EAAMmoW,OAAOf,OAAOoC,uBAGvB,CA5EA5/P,GAAKk/P,IAAa,CAACruW,EAAKsJ,KAEvBwlW,GAAW9uW,GAAO,WAEjB,OADA2K,UAAU,GAAKA,UAAU,GAAG,GACrBrB,EAAGiM,MAAMra,KAAMyP,UACvB,CAAC,IAEFmkW,GAAWD,eAAiB,SAAStpW,EAAOhK,GAI3C,OAAOuzW,GAAWjqW,IAAK5J,KAAKC,KAAMqK,EAAOhK,OAAM,EAChD,EACAuzW,GAAWjqW,IAAM,SAASU,EAAOhK,EAAMzB,GAOtC,OAAOu0W,GAAYxpW,IAAK5J,KAAKC,KAAMqK,EAAM,GAAIhK,EAAMzB,EAAOyL,EAAM,GACjE,ECjCO,SAASmpW,GACf50W,EACA+uB,GAGA,MAAMikV,EAAiBvqR,GAAMzoF,GAC1B6xW,GAAU,UAAUqD,UAAUl1W,EAAO+uB,GACrC85D,GAAM7oF,GACN6xW,GAAU,UAAUsD,UAAUn1W,EAAO+uB,GDhKlC,SACNm6B,EACAn6B,GAEA,MAAMzb,EAAUrR,MAAMqR,QAAQ41C,GACxBz9C,EAAoB,CACzBwlW,MAAO39V,EAAA,IAEPsgW,OAAQ7kV,EAASA,EAAO6kV,OAAS5B,KAEjCqB,WAAW,EAEXQ,YAAY,EAEZQ,UAAW,CAAC,EAEZ3B,QAAS3jV,EAETsiV,MAAOnoT,EAEPurT,OAAQ,KAERrD,MAAO,KAEP6B,QAAS,KACTmC,WAAW,GASZ,IAAIjpW,EAAYV,EACZ4pW,EAA2Cd,GAC3CjhW,IACHnH,EAAS,CAACV,GACV4pW,EAAQL,IAGT,MAAM,OAACM,EAAA,MAAQh9N,GAASmjJ,MAAM85E,UAAUppW,EAAQkpW,GAGhD,OAFA5pW,EAAMgpW,OAASn8N,EACf7sI,EAAMwnW,QAAUqC,EACTh9N,CACR,CCoHIk9N,CAAiBx1W,EAAO+uB,GAI3B,OAFcA,EAASA,EAAO6kV,OAAS5B,MACjCQ,QAAQvvW,KAAK+vW,GACZA,CACR,CCtMA,SAASyC,GAAYz1W,GACpB,IAAK8wW,GAAY9wW,IAAUovJ,GAASpvJ,GAAQ,OAAOA,EACnD,MAAMyL,EAAgCzL,EAAM2wW,IAC5C,IAAIp0Q,EACJ,GAAI9wF,EAAO,CACV,IAAKA,EAAM4nW,UAAW,OAAO5nW,EAAM4lW,MAEnC5lW,EAAMooW,YAAa,EACnBt3Q,EAAO+0Q,GAAYtxW,EAAOyL,EAAMmoW,OAAOf,OAAOoC,sBAC/C,MACC14Q,EAAO+0Q,GAAYtxW,GAAO,GAS3B,OANAq1G,GAAK9Y,GAAM,CAACr2F,EAAKwtW,KAChB3oW,GAAIwxF,EAAMr2F,EAAKuvW,GAAY/B,GAAY,IAEpCjoW,IACHA,EAAMooW,YAAa,GAEbt3Q,CACR,CCbA,IAAMm5Q,GAAQ,IFSP,MAIN1xW,WAAAA,CAAYgvC,GAGT,IAAAnX,EAAA,KANH,KAAAy4U,aAAuB,EACvB,KAAAW,uBAAoC,EA+BpC,KAAAU,QAAoB,CAACzsT,EAAW0sT,EAAc1D,KAE7C,GAAoB,oBAAThpT,GAAyC,oBAAX0sT,EAAuB,CAC/D,MAAMC,EAAcD,EACpBA,EAAS1sT,EAET,MAAM/oD,EAAOiB,KACb,OAAO,WAIL,IAFD00W,EAAAjlW,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAOglW,EAAA,QAAA/jI,EAAAjhO,UAAAtO,OACJgpB,EAAA,IAAAtpB,MAAA6vO,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAAxmN,EAAAwmN,EAAA,GAAAlhO,UAAAkhO,GAEH,OAAO5xO,EAAKw1W,QAAQG,GAAO9C,GAAmB4C,EAAOz0W,KAAKC,KAAM4xW,KAAUznV,IAC3E,CACD,CAMA,IAAIlZ,EAGJ,GAPsB,oBAAXujW,GAAuBhF,GAAI,QAChB,IAAlBsB,GAAwD,oBAAlBA,GACzCtB,GAAI,GAKDE,GAAY5nT,GAAO,CACtB,MAAMm2I,EAAQszK,GAAWvxW,MACnBk3I,EAAQs8N,GAAY1rT,OAAM,GAChC,IAAI2nQ,GAAW,EACf,IACCx+S,EAASujW,EAAOt9N,GAChBu4K,GAAW,CACZ,CAAE,QAEGA,EAAUyhD,GAAYjzK,GACrBkzK,GAAWlzK,EACjB,CAEA,OADA4yK,GAAkB5yK,EAAO6yK,GAClBiB,GAAc9gW,EAAQgtL,EAC9B,CAAO,IAAKn2I,GAAwB,kBAATA,EAAmB,CAK7C,GAJA72C,EAASujW,EAAO1sT,QACD,IAAX72C,IAAsBA,EAAS62C,GAC/B72C,IAAWo+V,KAASp+V,OAAS,GAC7BjR,KAAKkzW,aAAa7C,GAAOp/V,GAAQ,GACjC6/V,EAAe,CAClB,MAAMzpV,EAAa,GACbq3R,EAAc,GACpB+xD,GAAU,WAAW2B,4BAA4BtqT,EAAM72C,EAAQoW,EAAGq3R,GAClEoyD,EAAczpV,EAAGq3R,EAClB,CACA,OAAOztS,CACR,CAAOu+V,GAAI,EAAQ,EAGpB,KAAAmF,mBAA0C,CAAC7sT,EAAW0sT,KAErD,GAAoB,oBAAT1sT,EACV,OAAO,SAACz9C,GAAA,QAAAgsQ,EAAA5mQ,UAAAtO,OAAegpB,EAAA,IAAAtpB,MAAAw1Q,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAAnsP,EAAAmsP,EAAA,GAAA7mQ,UAAA6mQ,GAAA,OACtB77O,EAAKk6U,mBAAmBtqW,GAAQunW,GAAe9pT,EAAK8pT,KAAUznV,IAAK,EAGrE,IAAIyqV,EAAkBC,EAKtB,MAAO,CAJQ70W,KAAKu0W,QAAQzsT,EAAM0sT,GAAQ,CAACntV,EAAYq3R,KACtDk2D,EAAUvtV,EACVwtV,EAAiBn2D,CAAA,IAEFk2D,EAAUC,EAAgB,EAzFR,mBAAvBjjU,GAAQkjU,YAClB90W,KAAK+0W,cAAcnjU,EAAQkjU,YACgB,mBAAjCljU,GAAQojU,sBAClBh1W,KAAKi1W,wBAAwBrjU,EAAQojU,qBACvC,CAwFAE,WAAAA,CAAiCptT,GAC3B4nT,GAAY5nT,IAAO0nT,GAAI,GACxBC,GAAQ3nT,KAAOA,EC3Hd,SAAiBlpD,GAClB6wW,GAAQ7wW,IAAQ4wW,GAAI,IACzB,OAAO6E,GAAYz1W,EACpB,CDwH4BqnC,CAAQ6hB,IAClC,MAAMm2I,EAAQszK,GAAWvxW,MACnBk3I,EAAQs8N,GAAY1rT,OAAM,GAGhC,OAFAovF,EAAMq4N,IAAayE,WAAY,EAC/B7C,GAAWlzK,GACJ/mD,CACR,CAEAi+N,WAAAA,CACCvD,EACAd,GAEA,MAAMzmW,EAAoBunW,GAAUA,EAAcrC,IAC7CllW,GAAUA,EAAM2pW,WAAWxE,GAAI,GACpC,MAAOgD,OAAQv0K,GAAS5zL,EAExB,OADAwmW,GAAkB5yK,EAAO6yK,GAClBiB,QAAc,EAAW9zK,EACjC,CAOA82K,aAAAA,CAAcn2W,GACboB,KAAKkzW,YAAct0W,CACpB,CAOAq2W,uBAAAA,CAAwBr2W,GACvBoB,KAAK6zW,sBAAwBj1W,CAC9B,CAEAw2W,YAAAA,CAAkCttT,EAAS8sT,GAG1C,IAAI1zW,EACJ,IAAKA,EAAI0zW,EAAQzzW,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACzC,MAAMm0W,EAAQT,EAAQ1zW,GACtB,GAA0B,IAAtBm0W,EAAM7+V,KAAKrV,QAA6B,YAAbk0W,EAAMl8P,GAAkB,CACtDrxD,EAAOutT,EAAMz2W,MACb,KACD,CACD,CAGIsC,GAAK,IACR0zW,EAAUA,EAAQ5vW,MAAM9D,EAAI,IAG7B,MAAMo0W,EAAmB7E,GAAU,WAAW8E,cAC9C,OAAI9F,GAAQ3nT,GAEJwtT,EAAiBxtT,EAAM8sT,GAGxB50W,KAAKu0W,QAAQzsT,GAAO8pT,GAC1B0D,EAAiB1D,EAAOgD,IAE1B,GEzJYL,GAAoBD,GAAMC,QAMgBD,GAAMK,mBAAmBpnW,KAC/E+mW,IAQ4BA,GAAMS,cAAcxnW,KAAK+mW,IAOfA,GAAMW,wBAAwB1nW,KAAK+mW,IAO9CA,GAAMc,aAAa7nW,KAAK+mW,IAMzBA,GAAMY,YAAY3nW,KAAK+mW,IAUvBA,GAAMa,YAAY5nW,KAAK+mW,IC1F3C,ICiNMkB,GAA6D,qBAAXjwW,QAA2BA,OAAekwW,qCAAwClwW,OAAekwW,qCAAuC,WACrM,GAAyB,IAArBhmW,UAAUtO,OACd,MAA4B,kBAAjBsO,UAAU,GAAwBu/V,GACtCA,GAAQ30V,MAAM,KAAM5K,UAC7B,EChIaimW,IDuIS,qBAAXnwW,QAA2BA,OAAeowW,8BAAgCpwW,OAAeowW,6BCvI/DzgV,GAC5BA,GAAiD,oBAApCA,EAA0Btc,OC6GzC,SAASg9V,GAAa5uW,EAAc6uW,GACzC,SAASC,IACP,GAAID,EAAe,CACjB,IAAIE,EAAWF,KAAcpmW,WAC7B,IAAKsmW,EACH,MAAM,IAAIryW,MAA8CkpW,GAAwB,IAElF,MAAO,CACL5lW,OACAsgE,QAASyuS,EAASzuS,WACd,SAAUyuS,GAAY,CACxB5tT,KAAM4tT,EAAS5tT,SAEb,UAAW4tT,GAAY,CACzBlrW,MAAOkrW,EAASlrW,OAGtB,CACA,MAAO,CACL7D,OACAsgE,QAAA73D,UAAAtO,QAAA,OAAA8L,EAAAwC,UAAA,GAEJ,CAIA,OAHAqmW,EAAc9nW,SAAW,IAAM,GAAGhH,IAClC8uW,EAAc9uW,KAAOA,EACrB8uW,EAAcl9V,MAASuxD,GC5NV,SAAkBA,GAC/B,OAAOitB,GAAcjtB,IAAW,SAAUA,GAA8D,kBAA5CA,EAAmCnjE,IACjG,CD0NsEgvW,CAAS7rS,IAAWA,EAAOnjE,OAASA,EACjG8uW,CACT,CEvMO,IAAMG,GAAN,MAAMC,UAAyDr1W,MAGpE+B,WAAAA,GACE4mO,SAAM/5N,WACNzJ,OAAO4O,eAAe5U,KAAMk2W,EAAMr2W,UACpC,CACA,WAAqB6C,OAAOyzW,WAC1B,OAAOD,CACT,CAIS1xW,MAAAA,GAAsB,QAAAksO,EAAAjhO,UAAAtO,OAAZkrJ,EAAA,IAAAxrJ,MAAA6vO,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAAtkF,EAAAskF,GAAAlhO,UAAAkhO,GACjB,OAAOnH,MAAMhlO,OAAO6V,MAAMra,KAAMqsJ,EAClC,CAIA0kG,OAAAA,GAAuB,QAAAslB,EAAA5mQ,UAAAtO,OAAZkrJ,EAAA,IAAAxrJ,MAAAw1Q,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAAjqH,EAAAiqH,GAAA7mQ,UAAA6mQ,GACT,OAAmB,IAAfjqH,EAAIlrJ,QAAgBN,MAAMqR,QAAQm6I,EAAI,IACjC,IAAI6pN,KAAS7pN,EAAI,GAAG7nJ,OAAOxE,OAE7B,IAAIk2W,KAAS7pN,EAAI7nJ,OAAOxE,MACjC,GAEK,SAASo2W,GAAmBztW,GACjC,OAAO+mW,GAAY/mW,GAAO0tW,GAAgB1tW,GAAK,SAAYA,CAC7D,CASO,SAAS2tW,GAAyCjpW,EAAgCvI,EAAQ6qR,GAC/F,OAAItiR,EAAIwF,IAAI/N,GAAauI,EAAIG,IAAI1I,GAC1BuI,EAAI1D,IAAI7E,EAAK6qR,EAAQ7qR,IAAM0I,IAAI1I,EACxC,CC1BO,ICtCMyxW,GAAmB,gBAU1BC,GAAwB9+N,GACpBiyN,IACNz8U,WAAWy8U,EAAQjyN,EAAQ,ECDlB++N,GAAyDC,GAEvC,SAA6BxzW,GAC1D,MAAM,UACJyzW,GAAY,GACVzzW,GAAW,CAAC,EAChB,IAAI0zW,EAAgB,IAAIX,GAAuBS,GAI/C,OAHIC,GACFC,EAAc/0W,KD8Be,eAACqB,EAAAuM,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAA4B,CAC5DzI,KAAM,OACR,OAAqBkN,GAAQ,WAC3B,MAAM+G,EAAQ/G,KAAKzE,WACnB,IAAIonW,GAAY,EACZC,GAA0B,EAC1BC,GAAqB,EACzB,MAAM19S,EAAY,IAAIve,IAChBk8T,EAAiC,SAAjB9zW,EAAQ8D,KAAkBk5D,eAAkC,QAAjBh9D,EAAQ8D,KAEvD,qBAAXzB,QAA0BA,OAAOksO,sBAAwBlsO,OAAOksO,sBAAwB+kI,GAAqB,IAAuB,aAAjBtzW,EAAQ8D,KAAsB9D,EAAQ+zW,kBAAoBT,GAAqBtzW,EAAQw0I,SAC3Mw/N,EAAkBA,KAGtBH,GAAqB,EACjBD,IACFA,GAA0B,EAC1Bz9S,EAAUv4D,SAAQgB,GAAKA,MACzB,EAEF,OAAOkE,OAAOoD,OAAO,CAAC,EAAG6R,EAAO,CAG9BiT,SAAAA,CAAUipV,GAKR,MACMnoL,EAAc/zK,EAAMiT,WADekpV,IAAMP,GAAaM,MAG5D,OADA99S,EAAU7jC,IAAI2hV,GACP,KACLnoL,IACA31H,EAAUtK,OAAOooT,EAAS,CAE9B,EAGA5sS,QAAAA,CAASJ,GACP,IAsBE,OAnBA0sS,GAAa1sS,GAAQhiB,OAAOouT,IAG5BO,GAA2BD,EACvBC,IAIGC,IACHA,GAAqB,EACrBC,EAAcE,KASXj8V,EAAMsvD,SAASJ,EACxB,CAAE,QAEA0sS,GAAY,CACd,CACF,GAEJ,EClGuBQ,CAAuC,kBAAdV,EAAyBA,OAAY,IAE5EC,CACT,ECmFO,SAASU,GAAiCC,GAC/C,MAAMC,EAAmC,CAAC,EACpCC,EAAwD,GAC9D,IAAIC,EACJ,MAAMC,EAAU,CACdC,OAAAA,CAAQC,EAAuDxK,GAc7D,MAAMrmW,EAAsC,kBAAxB6wW,EAAmCA,EAAsBA,EAAoB7wW,KACjG,IAAKA,EACH,MAAM,IAAItD,MAA8CkpW,GAAyB,KAEnF,GAAI5lW,KAAQwwW,EACV,MAAM,IAAI9zW,MAA8CkpW,GAAyB,KAGnF,OADA4K,EAAWxwW,GAAQqmW,EACZsK,CACT,EACAG,WAAU,CAAIntM,EAAuB0iM,KAMnCoK,EAAe51W,KAAK,CAClB8oK,UACA0iM,YAEKsK,GAETI,eAAe1K,IAMbqK,EAAqBrK,EACdsK,IAIX,OADAJ,EAAgBI,GACT,CAACH,EAAYC,EAAgBC,EACtC,CCtJA,IAAMhrQ,GAAUA,CAACi+D,EAAuBxgG,IAClCurS,GAAiB/qM,GACZA,EAAQ/xJ,MAAMuxD,GAEdwgG,EAAQxgG,GAaZ,SAAS6tS,KAAgE,QAAAvhG,EAAAhnQ,UAAAtO,OAApB82W,EAAA,IAAAp3W,MAAA41Q,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAAuhG,EAAAvhG,GAAAjnQ,UAAAinQ,GAC1D,OAAQvsM,GACC8tS,EAAS7mW,MAAKu5J,GAAWj+D,GAAQi+D,EAASxgG,IAErD,CC3BA,IAMW+tS,GAAS,WAAe,IAC7Bz0V,EAAK,GAELviB,EAHeuO,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAO,GAI1B,KAAOvO,KAELuiB,GAZc,mEAYoB,GAAhBjiB,KAAKmiB,SAAgB,GAEzC,OAAOF,CACT,ECSM00V,GAAiD,CAAC,OAAQ,UAAW,QAAS,QAC9EC,GAAN,MAMEx1W,WAAAA,CAA4B0kE,EAAkCnf,GAAlC,KAAAmf,QAAAA,EAAkC,KAAAnf,KAAAA,CAAqB,CADlEkwT,OAGbC,GAAN,MAME11W,WAAAA,CAA4B0kE,EAAkCnf,GAAlC,KAAAmf,QAAAA,EAAkC,KAAAnf,KAAAA,CAAsB,CADnEkwT,OAUNE,GAAsB35W,IACjC,GAAqB,kBAAVA,GAAgC,OAAVA,EAAgB,CAC/C,MAAM45W,EAA+B,CAAC,EACtC,IAAK,MAAMviR,KAAYkiR,GACU,kBAApBv5W,EAAMq3F,KACfuiR,EAAYviR,GAAYr3F,EAAMq3F,IAGlC,OAAOuiR,CACT,CACA,MAAO,CACLhpS,QAASvoE,OAAOrI,GACjB,EAmMU65W,GAAmC,MAC9C,SAASC,EAA8EC,EAAoBC,EAA8E11W,GAKvL,MAAMy1G,EAAkFi9P,GAAa+C,EAAa,cAAc,CAACrxS,EAAmBuxS,EAAmB18V,EAAegsC,KAAA,CACpLmf,UACAnf,KAAM,IACAA,GAAe,CAAC,EACpBhsC,MACA08V,YACAC,cAAe,iBAGb9xS,EAAoE4uS,GAAa+C,EAAa,YAAY,CAACE,EAAmB18V,EAAegsC,KAAA,CACjJmf,aAAS,EACTnf,KAAM,IACAA,GAAe,CAAC,EACpBhsC,MACA08V,YACAC,cAAe,eAGblgQ,EAAsEg9P,GAAa+C,EAAa,aAAa,CAAC9tW,EAAqBguW,EAAmB18V,EAAemrD,EAAyBnf,KAAA,CAClMmf,UACAz8D,OAAQ3H,GAAWA,EAAQ61W,gBAAkBR,IAAoB1tW,GAAS,YAC1Es9C,KAAM,IACAA,GAAe,CAAC,EACpBhsC,MACA08V,YACAG,oBAAqB1xS,EACrBwxS,cAAe,WACfG,QAAyB,eAAhBpuW,GAAOoD,KAChB+hO,UAA2B,mBAAhBnlO,GAAOoD,UAgGtB,OAAOjI,OAAOoD,QA7Fd,SAAuB+S,GACrB,MAAO,CAACouD,EAAUihS,EAAUhxP,KAC1B,MAAMq+P,EAAY31W,GAASg2W,YAAch2W,EAAQg2W,YAAY/8V,GAAO+7V,KAC9DiB,EAAkB,IAAIC,gBAC5B,IAAIC,EACAC,EACJ,SAASC,EAAMrqV,GACboqV,EAAcpqV,EACdiqV,EAAgBI,OAClB,CACA,MAAM1vW,EAAU0rM,iBACd,IAAIikK,EACJ,IACE,IAAIC,EAAkBv2W,GAAS8sO,YAAY7zN,EAAK,CAC9CqvV,WACAhxP,UAKF,GA2GO,QADC57G,EA7GO66W,IA8GiB,kBAAV76W,GAA4C,oBAAfA,EAAMqB,OA7GvDw5W,QAAwBA,IAEF,IAApBA,GAA6BN,EAAgBO,OAAOT,QAEtD,KAAM,CACJhrW,KAAM,iBACNuhE,QAAS,sDAGb,MAAMmqS,EAAiB,IAAI3wW,SAAe,CAACmoB,EAAGhC,KAC5CkqV,EAAeA,KACblqV,EAAO,CACLlhB,KAAM,aACNuhE,QAAS8pS,GAAe,WACxB,EAEJH,EAAgBO,OAAOnxW,iBAAiB,QAAS8wW,EAAa,IAEhE9uS,EAASvD,EAAQ6xS,EAAW18V,EAAKjZ,GAAS02W,iBAAiB,CACzDf,YACA18V,OACC,CACDqvV,WACAhxP,YAEFg/P,QAAoBxwW,QAAQkoB,KAAK,CAACyoV,EAAgB3wW,QAAQM,QAAQsvW,EAAez8V,EAAK,CACpFouD,WACAihS,WACAhxP,QACAq+P,YACAa,OAAQP,EAAgBO,OACxBH,QACAM,gBAAkBA,CAACj7W,EAAsBupD,IAChC,IAAIiwT,GAAgBx5W,EAAOupD,GAEpC2xT,iBAAmBA,CAACl7W,EAAgBupD,IAC3B,IAAImwT,GAAgB15W,EAAOupD,MAElCloD,MAAKgR,IACP,GAAIA,aAAkBmnW,GACpB,MAAMnnW,EAER,OAAIA,aAAkBqnW,GACb3/P,EAAU1nG,EAAOq2D,QAASuxS,EAAW18V,EAAKlL,EAAOk3C,MAEnDwwD,EAAU1nG,EAAe4nW,EAAW18V,EAAI,KAEnD,CAAE,MAAO1Y,GACP+1W,EAAc/1W,aAAe20W,GAAkBx/P,EAAS,KAAMigQ,EAAW18V,EAAK1Y,EAAI6jE,QAAS7jE,EAAI0kD,MAAQywD,EAASn1G,EAAYo1W,EAAW18V,EACzI,CAAE,QACIk9V,GACFF,EAAgBO,OAAO5vT,oBAAoB,QAASuvT,EAExD,CAuDV,IAAoBz6W,EA7CV,OAJqBsE,IAAYA,EAAQ62W,4BAA8BnhQ,EAAShgG,MAAM4gW,IAAiBA,EAAoBrxT,KAAK6nL,WAE9HzlK,EAASivS,GAEJA,CACT,CAxEgBjkK,GAyEhB,OAAOvvM,OAAOoD,OAAOS,EAA6B,CAChD0vW,QACAV,YACA18V,MACA69V,OAAM,IACGnwW,EAAQ5J,KAAUg6W,KAE3B,CAEN,GACmG,CACjGjzS,UACA4xC,WACAD,YACA9oF,QAASmoV,GAAQp/P,EAAUD,GAC3BggQ,cAEJ,CAEA,OADAD,EAAiB3M,UAAY,IAAM2M,EAC5BA,CACR,EA5I+C,GAyJzC,SAASuB,GAA0C9vS,GACxD,GAAIA,EAAOhiB,MAAQgiB,EAAOhiB,KAAK6wT,kBAC7B,MAAM7uS,EAAO7C,QAEf,GAAI6C,EAAOt/D,MACT,MAAMs/D,EAAOt/D,MAEf,OAAOs/D,EAAO7C,OAChB,CCrZA,IAAM4yS,GAAkCx3W,OAAO00C,IAAI,8BAkUnD,SAASxsC,GAAQ5F,EAAem1W,GAC9B,MAAO,GAAGn1W,KAASm1W,GACrB,CAMO,SAASC,KAEgB,IAFC,SAC/BC,GACF5qW,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAA4B,CAAC,EAC3B,MAAM6qW,EAAMD,GAAUE,aAAaL,IACnC,OAAO,SAA4Kh3W,GACjL,MAAM,KACJ+K,EAAA,YACAusW,EAAcvsW,GACZ/K,EACJ,IAAK+K,EACH,MAAM,IAAIvK,MAA8CkpW,GAAwB,KAOlF,MAAM0B,GAAwC,oBAArBprW,EAAQorW,SAA0BprW,EAAQorW,SAwOvE,WACE,SAASiM,EAAW3B,EAAoDhnU,GACtE,MAAO,CACL6oU,uBAAwB,aACxB7B,oBACGhnU,EAEP,CAEA,OADA2oU,EAAWxO,UAAY,IAAMwO,EACtB,CACLlN,QAAQqN,GACC10W,OAAOoD,OAAO,CAGnB,CAACsxW,EAAYzsW,QACX,OAAOysW,KAAYjrW,UACrB,GACAirW,EAAYzsW,MAAO,CACnBwsW,uBAAwB,YAG5BE,gBAAe,CAACpnF,EAAS85E,KAChB,CACLoN,uBAAwB,qBACxBlnF,UACA85E,YAGJkN,aAEJ,CAtQgFK,IAAiC13W,EAAQorW,WAAa,CAAC,EAC7HuM,EAAe70W,OAAOC,KAAKqoW,GAC3BnoS,EAAyC,CAC7C20S,wBAAyB,CAAC,EAC1BC,wBAAyB,CAAC,EAC1BC,eAAgB,CAAC,EACjBC,cAAe,IAEXC,EAAuD,CAC3DtD,OAAAA,CAAQC,EAAuDsD,GAC7D,MAAMn0W,EAAsC,kBAAxB6wW,EAAmCA,EAAsBA,EAAoB7wW,KACjG,IAAKA,EACH,MAAM,IAAItD,MAA8CkpW,GAAyB,KAEnF,GAAI5lW,KAAQm/D,EAAQ40S,wBAClB,MAAM,IAAIr3W,MAA8CkpW,GAAyB,KAGnF,OADAzmS,EAAQ40S,wBAAwB/zW,GAAQm0W,EACjCD,CACT,EACApD,WAAU,CAACntM,EAASwwM,KAClBh1S,EAAQ80S,cAAcp5W,KAAK,CACzB8oK,UACA0iM,QAAA8N,IAEKD,GAETE,aAAY,CAACC,EAAMvF,KACjB3vS,EAAQ60S,eAAeK,GAAQvF,EACxBoF,GAETI,kBAAiB,CAACD,EAAMF,KACtBh1S,EAAQ20S,wBAAwBO,GAAQF,EACjCD,IAgBX,SAASK,IAMP,MAAOC,EAAgB,CAAC,EAAG/D,EAAiB,GAAIC,GAAmE,oBAA1Bx0W,EAAQs4W,cAA+BlE,GAA8Bp0W,EAAQs4W,eAAiB,CAACt4W,EAAQs4W,eAC1LC,EAAoB,IACrBD,KACAr1S,EAAQ40S,yBAEb,OCxSC,SAAmDW,EAA6BC,GAMrF,IAGIC,GAHCpE,EAAYqE,EAAqBC,GAA2BxE,GAA8BqE,GAI/F,GAhFoB,oBAgFAD,EAClBE,EAAkBA,IAAMxF,GAAgBsF,SACnC,CACL,MAAMK,EAAqB3F,GAAgBsF,GAC3CE,EAAkBA,IAAMG,CAC1B,CACA,SAAS1O,IAAmD,IAA3ChjW,EAAAoF,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAQmsW,IAAmBzxS,EAAA16D,UAAAtO,OAAA,EAAAsO,UAAA,QAAAxC,EACtC+uW,EAAe,CAACxE,EAAWrtS,EAAOnjE,SAAU60W,EAAoB1qW,QAAOurK,IAAA,IAAC,QAC1E/R,GACF+R,EAAA,OAAM/R,EAAQxgG,EAAO,IAAE98D,KAAI+yP,IAAA,IACzBitG,QAAA8N,GACF/6G,EAAA,OAAM+6G,CAAO,KAIb,OAH+C,IAA3Ca,EAAa7qW,QAAO8uL,KAAQA,IAAI9+L,SAClC66W,EAAe,CAACF,IAEXE,EAAa/8U,QAAO,CAACssU,EAAemP,KACzC,GAAIA,EAAa,CACf,GAAIuB,GAAQ1Q,GAAgB,CAI1B,MACMt6V,EAASypW,EADDnP,EACoBphS,GAClC,YAAe,IAAXl5D,EACKs6V,EAEFt6V,CACT,CAAO,GAAKirW,GAAY3Q,GAetB,OAAO4Q,GAAgB5Q,GAAgBqG,GAC9B8I,EAAY9I,EAAOznS,KAhBU,CAGtC,MAAMl5D,EAASypW,EAAYnP,EAAsBphS,GACjD,QAAe,IAAXl5D,EAAsB,CACxB,GAAsB,OAAlBs6V,EACF,OAAOA,EAET,MAAM7nW,MAAM,oEACd,CACA,OAAOuN,CACT,CAQF,CACA,OAAOs6V,CAAA,GACNlhW,EACL,CAEA,OADAgjW,EAAQuO,gBAAkBA,EACnBvO,CACT,CD0Oa+O,CAAcl5W,EAAQw4W,cAAc/D,IACzC,IAAK,IAAI7yW,KAAO22W,EACd9D,EAAQC,QAAQ9yW,EAAK22W,EAAkB32W,IAEzC,IAAK,IAAIu3W,KAAMl2S,EAAQ80S,cACrBtD,EAAQG,WAAWuE,EAAG1xM,QAAS0xM,EAAGhP,SAEpC,IAAK,IAAIp4U,KAAKwiV,EACZE,EAAQG,WAAW7iV,EAAE01I,QAAS11I,EAAEo4U,SAE9BqK,GACFC,EAAQI,eAAeL,EACzB,GAEJ,CAtCAmD,EAAa/5W,SAAQw7W,IACnB,MAAMC,EAAoBjO,EAASgO,GAC7BE,EAAiC,CACrCF,cACAt1W,KAAM4D,GAAQqD,EAAMquW,GACpBG,eAA4C,oBAArBv5W,EAAQorW,WAmPvC,SAAmDiO,GACjD,MAAoD,eAA7CA,EAAkB9B,sBAC3B,CAnPUiC,CAA0CH,GA4NpD,SAAS3wI,EAIU+wI,EAGuDx2S,GAA+C,IACnHu0S,EACAkC,GATwC,KAC5C51W,EAAA,YACAs1W,EAAA,eACAG,GACF7wI,EAME,GAAI,YAAa+wI,EAAyB,CACxC,GAAIF,IAaR,SAAmDF,GACjD,MAAoD,uBAA7CA,EAAkB9B,sBAC3B,CAf2BoC,CAAmCF,GACxD,MAAM,IAAIj5W,MAA8CkpW,GAAyB,KAEnF8N,EAAciC,EAAwBtP,QACtCuP,EAAkBD,EAAwBppF,OAC5C,MACEmnF,EAAciC,EAEhBx2S,EAAQyxS,QAAQ5wW,EAAM0zW,GAAaY,kBAAkBgB,EAAa5B,GAAaU,aAAakB,EAAaM,EAAkBhH,GAAa5uW,EAAM41W,GAAmBhH,GAAa5uW,GAChL,CA7OQ81W,CAAqCN,EAAgBD,EAA0BrB,GAoPvF,SAASjvI,EAGUswI,EAA2Ep2S,EAA+Cm0S,GAA2C,IAHvI,KAC/CtzW,EAAA,YACAs1W,GACFrwI,EACE,IAAKquI,EACH,MAAM,IAAI52W,MAA8CkpW,GAAyB,KAEnF,MAAM,eACJgM,EAAA,UACAjgQ,EAAA,QACA3xC,EAAA,SACA4xC,EAAA,QACA/oF,EAAA,QACA3sB,GACEq5W,EACEpN,EAAQmL,EAAItzW,EAAM4xW,EAAgB11W,GACxCijE,EAAQi1S,aAAakB,EAAanN,GAC9Bx2P,GACFxyC,EAAQyxS,QAAQzI,EAAMx2P,UAAWA,GAE/B3xC,GACFb,EAAQyxS,QAAQzI,EAAMnoS,QAASA,GAE7B4xC,GACFzyC,EAAQyxS,QAAQzI,EAAMv2P,SAAUA,GAE9B/oF,GACFs2C,EAAQ2xS,WAAW3I,EAAMt/U,QAASA,GAEpCs2C,EAAQm1S,kBAAkBgB,EAAa,CACrC3jQ,UAAWA,GAAa/qF,GACxBo5C,QAASA,GAAWp5C,GACpBgrF,SAAUA,GAAYhrF,GACtBiC,QAASA,GAAWjC,IAExB,CAzRQmvV,CAAiCP,EAAgBD,EAAmBrB,EAAgBZ,EAGtF,IA4BF,MAAM0C,EAAc3yW,GAAiBA,EAC/B4yW,EAAwB,IAAIlrU,IAClC,IAAImrU,EACJ,SAAS7P,EAAQhjW,EAA0B8/D,GAEzC,OADK+yS,IAAUA,EAAW3B,KACnB2B,EAAS7yW,EAAO8/D,EACzB,CACA,SAASyxS,IAEP,OADKsB,IAAUA,EAAW3B,KACnB2B,EAAStB,iBAClB,CACA,SAASuB,EAAmEC,GAAwL,IAAvJC,EAAA5tW,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,IAAAA,UAAA,GAC3G,SAAS6tW,EAAYjzW,GACnB,IAAIkzW,EAAalzW,EAAM+yW,GAQvB,MAP0B,qBAAfG,GACLF,IACFE,EAAa3B,KAKV2B,CACT,CACA,SAASC,IAAkE,IAArDC,EAAAhuW,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAyCutW,EAC7D,MAAMU,EAAgBpH,GAAoB2G,EAAuBI,GAAU,IAAM,IAAI3hW,UACrF,OAAO46V,GAAoBoH,EAAeD,GAAa,KACrD,MAAMpwW,EAA0C,CAAC,EACjD,IAAK,MAAOguW,EAAMrgJ,KAAah1N,OAAOoQ,QAAQlT,EAAQy6W,WAAa,CAAC,GAClEtwW,EAAIguW,GAAQuC,GAAa5iJ,EAAUyiJ,EAAa7B,EAAiByB,GAEnE,OAAOhwW,CAAA,GAEX,CACA,MAAO,CACLmtW,YAAA4C,EACAI,eACA,aAAIG,GACF,OAAOH,EAAaF,EACtB,EACAA,cAEJ,CACA,MAAMt4W,EAAkE,CACtEiJ,OACAo/V,UACA5yQ,QAASt0B,EAAQ60S,eACjBgB,aAAc71S,EAAQ20S,wBACtBc,qBACGuB,EAAkB3C,GACrBqD,UAAAA,CAAWC,GAGH,IAFNtD,YAAauD,KACVnsU,GACLniC,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAI,CAAC,EACH,MAAMuuW,EAAiBD,GAAWvD,EAKlC,OAJAsD,EAAW3/R,OAAO,CAChBq8R,YAAawD,EACb3Q,WACCz7T,GACI,IACF5sC,KACAm4W,EAAkBa,GAAgB,GAEzC,GAEF,OAAOh5W,CACT,CACF,CACA,SAAS44W,GAAyD5iJ,EAAayiJ,EAAwC7B,EAA8ByB,GACnJ,SAASx/Q,EAAQogR,GACf,IAAIV,EAAaE,EAAYQ,GACH,qBAAfV,GACLF,IACFE,EAAa3B,KAIjB,QAAAsC,EAAAzuW,UAAAtO,OARuCgpB,EAAA,IAAAtpB,MAAAq9W,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAAh0V,EAAAg0V,EAAA,GAAA1uW,UAAA0uW,GASvC,OAAOnjJ,EAASuiJ,KAAepzV,EACjC,CAEA,OADA0zE,EAAQugR,UAAYpjJ,EACbn9H,CACT,CAUO,IAAMwgR,GAA6BjE,KAgK1C,SAASxsV,KAAQ,CEhoBV,IChCLxkB,OAAMA,IACJpD,OCyNmBtD,OAAO00C,IAAI,4BClO3B,SAASw1T,GAAuBpmV,GACrC,MAAO,iCAAiCA,qDAAwDA,kFAClG,CCPe,SAASjZ,GAAKa,EAAI+pC,GAC/B,OAAO,WACL,OAAO/pC,EAAGiM,MAAM89B,EAAS1oC,UAC3B,CACF,CCAA,MAAOzB,SAAQA,IAAIhI,OAAOnG,WACnBsT,eAAcA,IAAInN,OAEnBs4W,IAAUvjS,GAGb/0E,OAAO4D,OAAO,MAHQwrV,IACrB,MAAMpiT,EAAMhlC,GAASjO,KAAKq1V,GAC1B,OAAOr6Q,GAAM/nC,KAAS+nC,GAAM/nC,GAAOA,EAAIhuC,MAAM,GAAI,GAAG7B,cAAc,GAFvD,IAAC43E,GAKhB,MAAMwjS,GAAcv3W,IAClBA,EAAOA,EAAK7D,cACJiyV,GAAUkpB,GAAOlpB,KAAWpuV,GAGhCw3W,GAAax3W,GAAQouV,UAAgBA,IAAUpuV,GAS9CkL,QAAOA,IAAIrR,MASZ+vG,GAAc4tQ,GAAW,aAqB/B,MAAMv3R,GAAgBs3R,GAAW,eA2BjC,MAAMl3Q,GAAWm3Q,GAAW,UAQtB5zV,GAAa4zV,GAAW,YASxBp3Q,GAAWo3Q,GAAW,UAStB1vW,GAAYsmV,GAAoB,OAAVA,GAAmC,kBAAVA,EAiB/Ch+P,GAAiBzuF,IACrB,GAAoB,WAAhB21W,GAAO31W,GACT,OAAO,EAGT,MAAM9I,EAAYsT,GAAexK,GACjC,OAAsB,OAAd9I,GAAsBA,IAAcmG,OAAOnG,WAAkD,OAArCmG,OAAOmN,eAAetT,OAA0B6C,OAAO6vB,eAAe5pB,MAAUjG,OAAOC,YAAYgG,EAAI,EAUnKw+E,GAASo3R,GAAW,QASpBE,GAASF,GAAW,QASpBG,GAASH,GAAW,QASpBI,GAAaJ,GAAW,YAsCxBK,GAAoBL,GAAW,oBAE9BM,GAAkBC,GAAWC,GAAYC,IAAa,CAAC,iBAAkB,UAAW,WAAY,WAAW3xW,IAAIkxW,IA2BtH,SAASz9W,GAAQ2B,EAAK2L,GAA+B,IAM/ClN,EACAY,GAPoB,WAACm9W,GAAa,GAAMxvW,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEhD,GAAY,OAARhN,GAA+B,qBAARA,EAa3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGLyP,GAAQzP,GAEV,IAAKvB,EAAI,EAAGY,EAAIW,EAAItB,OAAQD,EAAIY,EAAGZ,IACjCkN,EAAGrO,KAAK,KAAM0C,EAAIvB,GAAIA,EAAGuB,OAEtB,CAEL,MAAMwD,EAAOg5W,EAAaj5W,OAAOia,oBAAoBxd,GAAOuD,OAAOC,KAAKxD,GAClEgiB,EAAMxe,EAAK9E,OACjB,IAAI2D,EAEJ,IAAK5D,EAAI,EAAGA,EAAIujB,EAAKvjB,IACnB4D,EAAMmB,EAAK/E,GACXkN,EAAGrO,KAAK,KAAM0C,EAAIqC,GAAMA,EAAKrC,EAEjC,CACF,CAEA,SAASgtG,GAAQhtG,EAAKqC,GACpBA,EAAMA,EAAI3B,cACV,MAAM8C,EAAOD,OAAOC,KAAKxD,GACzB,IACI8tO,EADArvO,EAAI+E,EAAK9E,OAEb,KAAOD,KAAM,GAEX,GADAqvO,EAAOtqO,EAAK/E,GACR4D,IAAQyrO,EAAKptO,cACf,OAAOotO,EAGX,OAAO,IACT,CAEA,MAAM2uI,GAEsB,qBAAfzkW,WAAmCA,WACvB,qBAAT1b,KAAuBA,KAA0B,qBAAXwG,OAAyBA,OAASmR,OAGlFyoW,GAAoBh5S,IAAayqC,GAAYzqC,IAAYA,IAAY+4S,GAoD3E,MA8HM1mU,IAAgB4mU,GAKG,qBAAfhgS,YAA8BjsE,GAAeisE,YAH9Cg2Q,GACEgqB,IAAchqB,aAAiBgqB,IAHrB,IAACA,GAetB,MAiCMC,GAAad,GAAW,mBAWxBj7W,GAAiB,CAAC2nJ,IAAA,IAAC,eAAC3nJ,GAAe2nJ,EAAA,MAAK,CAACxoJ,EAAKpC,IAASiD,EAAevD,KAAK0C,EAAKpC,EAAK,EAApE,CAAsE2F,OAAOnG,WAS9F0nF,GAAWg3R,GAAW,UAEtBe,GAAoBA,CAAC78W,EAAK4qW,KAC9B,MAAM+C,EAAcpqW,OAAO6oO,0BAA0BpsO,GAC/C88W,EAAqB,CAAC,EAE5Bz+W,GAAQsvW,GAAa,CAAC32V,EAAYxL,KAChC,IAAIo+J,GAC2C,KAA1CA,EAAMghM,EAAQ5zV,EAAYxL,EAAMxL,MACnC88W,EAAmBtxW,GAAQo+J,GAAO5yJ,EACpC,IAGFzT,OAAOgY,iBAAiBvb,EAAK88W,EAAmB,EAsD5CC,GAAQ,6BAERC,GAAQ,aAERC,GAAW,CACfD,MAAK,GACLD,MAAK,GACLG,YAAaH,GAAQA,GAAMtsV,cAAgBusV,IAwB7C,MA+BMG,GAAYrB,GAAW,iBAQvBsB,GAAgB,EAAEC,EAAuBC,KAC7C,OAAID,EACKjmM,aAGFkmM,GAAyBp3P,EAW7B,SAASnnH,KAAKmiB,WAXsB4nS,EAWV,GAV3B2zD,GAAQ32W,iBAAiB,WAAWm0K,IAAoB,IAAnB,OAAC9wK,EAAM,KAAE2Q,GAAKmgK,EAC7C9wK,IAAWszW,IAAW3iW,IAASosG,GACjC4iM,EAAUpqT,QAAUoqT,EAAUz7P,OAAVy7P,EACtB,IACC,GAEK9nQ,IACN8nQ,EAAU1pT,KAAK4hD,GACfy7T,GAAQlyV,YAAY27F,EAAO,IAAI,GAECllE,GAAOv2B,WAAWu2B,GAXxB,IAAEklE,EAAO4iM,CAYxC,EAjBqB,CAkBI,oBAAjB1xI,aACPjvJ,GAAWs0V,GAAQlyV,cAGfjC,GAAiC,qBAAnBm1C,eAClBA,eAAe3yD,KAAK2xW,IAAgC,qBAAZnmW,SAA2BA,QAAQoT,UAAY0zV,GAIzF,IACE3tW,QAAO,GACP+0E,cAAa,GACbxH,SAlpBF,SAAkB92E,GAChB,OAAe,OAARA,IAAiBioG,GAAYjoG,IAA4B,OAApBA,EAAI/F,cAAyBguG,GAAYjoG,EAAI/F,cACpFgoB,GAAWjiB,EAAI/F,YAAY68E,WAAa92E,EAAI/F,YAAY68E,SAAS92E,EACxE,EAgpBEq3W,WApgBkB5qB,IAClB,IAAIpwU,EACJ,OAAOowU,IACgB,oBAAb6qB,UAA2B7qB,aAAiB6qB,UAClDr1V,GAAWwqU,EAAMzgG,UACY,cAA1B3vO,EAAOs5V,GAAOlpB,KAEL,WAATpwU,GAAqB4F,GAAWwqU,EAAMpnV,WAAkC,sBAArBonV,EAAMpnV,YAG/D,EA2fD2/L,kBA9nBF,SAA2BhlM,GACzB,IAAIsI,EAMJ,OAJEA,EAD0B,qBAAhB0wF,aAAiCA,YAAYq3E,OAC9Cr3E,YAAYq3E,OAAOrwK,GAElBA,GAASA,EAAIkoF,QAAY5J,GAAct+E,EAAIkoF,QAEhD5/E,CACT,EAunBEo2F,SAAQ,GACRD,SAAQ,GACR6I,UA9kBgBmlP,IAAmB,IAAVA,IAA4B,IAAVA,EA+kB3CtmV,SAAQ,GACRsoF,cAAa,GACbynR,iBAAgB,GAChBC,UAAS,GACTC,WAAU,GACVC,UAAS,GACTpuQ,YAAW,GACXzpB,OAAM,GACNs3R,OAAM,GACNC,OAAM,GACNn3R,SAAQ,GACR38D,WAAU,GACVs1V,SA9hBgBv3W,GAAQmG,GAASnG,IAAQiiB,GAAWjiB,EAAIw3W,MA+hBxDvB,kBAAiB,GACjBpmU,aAAY,GACZmmU,WAAU,GACV79W,QAAO,GACPwnG,MAhaF,SAASA,IACP,MAAM,SAAC83Q,GAAYjB,GAAiBn/W,OAASA,MAAQ,CAAC,EAChDiR,EAAS,CAAC,EACV+9E,EAAcA,CAACrmF,EAAK7D,KACxB,MAAM+lP,EAAYu1H,GAAY3wQ,GAAQx+F,EAAQnM,IAAQA,EAClDsyF,GAAcnmF,EAAO45O,KAAezzJ,GAAczuF,GACpDsI,EAAO45O,GAAaviJ,EAAMr3F,EAAO45O,GAAYliP,GACpCyuF,GAAczuF,GACvBsI,EAAO45O,GAAaviJ,EAAM,CAAC,EAAG3/F,GACrBuJ,GAAQvJ,GACjBsI,EAAO45O,GAAaliP,EAAI3D,QAExBiM,EAAO45O,GAAaliP,CACtB,EAGF,IAAK,IAAIzH,EAAI,EAAGY,EAAI2N,UAAUtO,OAAQD,EAAIY,EAAGZ,IAC3CuO,UAAUvO,IAAMJ,GAAQ2O,UAAUvO,GAAI8tF,GAExC,OAAO/9E,CACT,EA6YE0nB,OAjYa,SAACze,EAAGC,EAAGg+B,GAA8B,IAArB,WAAC8mU,GAAWxvW,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAE,CAAC,EAQ5C,OAPA3O,GAAQqZ,GAAG,CAACxR,EAAK7D,KACXqzC,GAAWvtB,GAAWjiB,GACxBuR,EAAEpV,GAAOyI,GAAK5E,EAAKwvC,GAEnBj+B,EAAEpV,GAAO6D,CACX,GACC,CAACs2W,eACG/kW,CACT,EAyXE6I,KA7fYiwB,GAAQA,EAAIjwB,KACxBiwB,EAAIjwB,OAASiwB,EAAIt/B,QAAQ,qCAAsC,IA6f/D2sW,SAjXgB5hW,IACc,QAA1BA,EAAQ6D,WAAW,KACrB7D,EAAUA,EAAQzZ,MAAM,IAEnByZ,GA8WP6hW,SAlWeA,CAAC19W,EAAa29W,EAAkB1oU,EAAOu4T,KACtDxtW,EAAY/C,UAAYmG,OAAO4D,OAAO22W,EAAiB1gX,UAAWuwW,GAClExtW,EAAY/C,UAAU+C,YAAcA,EACpCoD,OAAOgN,eAAepQ,EAAa,QAAS,CAC1ChE,MAAO2hX,EAAiB1gX,YAE1Bg4C,GAAS7xC,OAAOoD,OAAOxG,EAAY/C,UAAWg4C,EAAM,EA6VpD2oU,aAjVmBA,CAACC,EAAWC,EAASvvW,EAAQwvW,KAChD,IAAI9oU,EACA32C,EACAb,EACJ,MAAMsvU,EAAS,CAAC,EAIhB,GAFA+wC,EAAUA,GAAW,CAAC,EAEL,MAAbD,EAAmB,OAAOC,EAE9B,EAAG,CAGD,IAFA7oU,EAAQ7xC,OAAOia,oBAAoBwgW,GACnCv/W,EAAI22C,EAAM12C,OACHD,KAAM,GACXb,EAAOw3C,EAAM32C,GACPy/W,IAAcA,EAAWtgX,EAAMogX,EAAWC,IAAc/wC,EAAOtvU,KACnEqgX,EAAQrgX,GAAQogX,EAAUpgX,GAC1BsvU,EAAOtvU,IAAQ,GAGnBogX,GAAuB,IAAXtvW,GAAoBgC,GAAestW,EACjD,OAASA,KAAetvW,GAAUA,EAAOsvW,EAAWC,KAAaD,IAAcz6W,OAAOnG,WAEtF,OAAO6gX,CAAO,EA2TdpC,OAAM,GACNC,WAAU,GACVjvQ,SAjTeA,CAACt8D,EAAK4tU,EAAcv1W,KACnC2nC,EAAM/rC,OAAO+rC,SACI/lC,IAAb5B,GAA0BA,EAAW2nC,EAAI7xC,UAC3CkK,EAAW2nC,EAAI7xC,QAEjBkK,GAAYu1W,EAAaz/W,OACzB,MAAMixC,EAAYY,EAAItuC,QAAQk8W,EAAcv1W,GAC5C,OAAsB,IAAf+mC,GAAoBA,IAAc/mC,CAAQ,EA2SjDm8F,QAhSe4tP,IACf,IAAKA,EAAO,OAAO,KACnB,GAAIljV,GAAQkjV,GAAQ,OAAOA,EAC3B,IAAIl0V,EAAIk0V,EAAMj0V,OACd,IAAKimG,GAASlmG,GAAI,OAAO,KACzB,MAAMmrJ,EAAM,IAAIxrJ,MAAMK,GACtB,KAAOA,KAAM,GACXmrJ,EAAInrJ,GAAKk0V,EAAMl0V,GAEjB,OAAOmrJ,CAAG,EAwRVw0N,aA7PmBA,CAACp+W,EAAK2L,KACzB,MAEMzL,GAFYF,GAAOA,EAAIC,OAAOC,WAET5C,KAAK0C,GAEhC,IAAIwO,EAEJ,MAAQA,EAAStO,EAASuR,UAAYjD,EAAOgU,MAAM,CACjD,MAAMq7E,EAAOrvF,EAAOrS,MACpBwP,EAAGrO,KAAK0C,EAAK69F,EAAK,GAAIA,EAAK,GAC7B,GAoPAwgR,SAzOeA,CAACC,EAAQ/tU,KACxB,IAAI05D,EACJ,MAAM2/C,EAAM,GAEZ,KAAwC,QAAhC3/C,EAAUq0Q,EAAO/mW,KAAKg5B,KAC5Bq5G,EAAIxqJ,KAAK6qG,GAGX,OAAO2/C,CAAG,EAkOVgzN,WAAU,GACV/7W,eAAc,GACd6oJ,WAAY7oJ,GACZg8W,kBAAiB,GACjB0B,cAzLqBv+W,IACrB68W,GAAkB78W,GAAK,CAACgX,EAAYxL,KAElC,GAAI2c,GAAWnoB,KAA6D,IAArD,CAAC,YAAa,SAAU,UAAUiC,QAAQuJ,GAC/D,OAAO,EAGT,MAAMrP,EAAQ6D,EAAIwL,GAEb2c,GAAWhsB,KAEhB6a,EAAWnF,YAAa,EAEpB,aAAcmF,EAChBA,EAAWlF,UAAW,EAInBkF,EAAW9P,MACd8P,EAAW9P,IAAM,KACf,MAAMjG,MAAM,qCAAwCuK,EAAO,IAAK,GAEpE,GACA,EAmKFgzW,YAhKkBA,CAACC,EAAehvF,KAClC,MAAMzvR,EAAM,CAAC,EAEPgzG,EAAU42C,IACdA,EAAIvrJ,SAAQlC,IACV6D,EAAI7D,IAAS,CAAI,GACjB,EAKJ,OAFAsT,GAAQgvW,GAAiBzrQ,EAAOyrQ,GAAiBzrQ,EAAOxuG,OAAOi6W,GAAe/nW,MAAM+4Q,IAE7EzvR,CAAG,EAsJV0+W,YAlOkBnuU,GACXA,EAAI7vC,cAAcuQ,QAAQ,yBAC/B,SAAkBuhB,EAAGxhB,EAAIi2H,GACvB,OAAOj2H,EAAGyf,cAAgBw2G,CAC5B,IA+NF97G,KApJWA,OAqJXwzV,eAnJqBA,CAACxiX,EAAO2/B,IACb,MAAT3/B,GAAiBsI,OAAO4kF,SAASltF,GAASA,GAASA,EAAQ2/B,EAmJlEkxE,QAAO,GACP/4F,OAAQwoW,GACRC,iBAAgB,GAChBO,SAAQ,GACR2B,eA1IqB,WAAgD,IAA/Ch/V,EAAI5S,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,GAAIgO,EAAQhO,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAGiwW,GAASC,YACjD3sU,EAAM,GACV,MAAM,OAAC7xC,GAAUsc,EACjB,KAAO4E,KACL2wB,GAAOv1B,EAASjc,KAAKmiB,SAAWxiB,EAAO,GAGzC,OAAO6xC,CACT,EAmIEsuU,oBA1HF,SAA6BlsB,GAC3B,SAAUA,GAASxqU,GAAWwqU,EAAMzgG,SAAyC,aAA9BygG,EAAM1yV,OAAO6vB,cAA+B6iU,EAAM1yV,OAAOC,UAC1G,EAyHE4+W,aAvHoB9+W,IACpB,MAAM6H,EAAQ,IAAIzJ,MAAM,IAElBu0R,EAAQA,CAACxpR,EAAQ1K,KAErB,GAAI4N,GAASlD,GAAS,CACpB,GAAItB,EAAM5F,QAAQkH,IAAW,EAC3B,OAGF,KAAK,WAAYA,GAAS,CACxBtB,EAAMpJ,GAAK0K,EACX,MAAMb,EAASmH,GAAQtG,GAAU,GAAK,CAAC,EASvC,OAPA9K,GAAQ8K,GAAQ,CAAChN,EAAOkG,KACtB,MAAM08W,EAAepsF,EAAMx2R,EAAOsC,EAAI,IACrC0vG,GAAY4wQ,KAAkBz2W,EAAOjG,GAAO08W,EAAa,IAG5Dl3W,EAAMpJ,QAAK+L,EAEJlC,CACT,CACF,CAEA,OAAOa,CAAM,EAGf,OAAOwpR,EAAM3yR,EAAK,EAAE,EA4FpBm9W,UAAS,GACTzqB,WAxFkBC,GAClBA,IAAUtmV,GAASsmV,IAAUxqU,GAAWwqU,KAAWxqU,GAAWwqU,EAAMn1V,OAAS2qB,GAAWwqU,EAAM7jU,OAwF9FsoJ,aAAcgmM,GACd90V,KAAIA,ICvuBN,SAAS02V,GAAWjyS,EAAShpD,EAAMorB,EAAQssL,EAAS5hL,GAClD54C,MAAM3D,KAAKC,MAEP0D,MAAM+6K,kBACR/6K,MAAM+6K,kBAAkBz+K,KAAMA,KAAK4C,aAEnC5C,KAAKsK,OAAS,IAAI5G,OAAS4G,MAG7BtK,KAAKwvE,QAAUA,EACfxvE,KAAKiO,KAAO,aACZuY,IAASxmB,KAAKwmB,KAAOA,GACrBorB,IAAW5xC,KAAK4xC,OAASA,GACzBssL,IAAYl+N,KAAKk+N,QAAUA,GACvB5hL,IACFt8C,KAAKs8C,SAAWA,EAChBt8C,KAAKy8C,OAASH,EAASG,OAASH,EAASG,OAAS,KAEtD,CAEAilU,GAAMpB,SAASmB,GAAY/9W,MAAO,CAChC80B,OAAQ,WACN,MAAO,CAELg3C,QAASxvE,KAAKwvE,QACdvhE,KAAMjO,KAAKiO,KAEX2Z,YAAa5nB,KAAK4nB,YAClBkyB,OAAQ95C,KAAK85C,OAEb6nU,SAAU3hX,KAAK2hX,SACfrxK,WAAYtwM,KAAKswM,WACjBsxK,aAAc5hX,KAAK4hX,aACnBt3W,MAAOtK,KAAKsK,MAEZsnC,OAAQ8vU,GAAMH,aAAavhX,KAAK4xC,QAChCprB,KAAMxmB,KAAKwmB,KACXi2B,OAAQz8C,KAAKy8C,OAEjB,IAGF,MAAM58C,GAAY4hX,GAAW5hX,UACvBuwW,GAAc,CAAC,EAErB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,eACA,kBACA,mBAEAtvW,SAAQ0lB,IACR4pV,GAAY5pV,GAAQ,CAAC5nB,MAAO4nB,EAAK,IAGnCxgB,OAAOgY,iBAAiByjW,GAAYrR,IACpCpqW,OAAOgN,eAAenT,GAAW,eAAgB,CAACjB,OAAO,IAGzD6iX,GAAW92W,KAAO,CAACE,EAAO2b,EAAMorB,EAAQssL,EAAS5hL,EAAUulU,KACzD,MAAMC,EAAa97W,OAAO4D,OAAO/J,IAgBjC,OAdA6hX,GAAMlB,aAAa31W,EAAOi3W,GAAY,SAAgBr/W,GACpD,OAAOA,IAAQiB,MAAM7D,SACvB,IAAGQ,GACe,iBAATA,IAGTohX,GAAW1hX,KAAK+hX,EAAYj3W,EAAM2kE,QAAShpD,EAAMorB,EAAQssL,EAAS5hL,GAElEwlU,EAAWC,MAAQl3W,EAEnBi3W,EAAW7zW,KAAOpD,EAAMoD,KAExB4zW,GAAe77W,OAAOoD,OAAO04W,EAAYD,GAElCC,CAAU,EAGnB,YCxFA,SAASE,GAAY5sB,GACnB,OAAOssB,GAAMtqR,cAAcg+P,IAAUssB,GAAMxvW,QAAQkjV,EACrD,CASA,SAAS6sB,GAAen9W,GACtB,OAAO48W,GAAMpyQ,SAASxqG,EAAK,MAAQA,EAAIE,MAAM,GAAI,GAAKF,CACxD,CAWA,SAASo9W,GAAU1rW,EAAM1R,EAAKq9W,GAC5B,OAAK3rW,EACEA,EAAKhS,OAAOM,GAAKuI,KAAI,SAAcs7G,EAAOznH,GAG/C,OADAynH,EAAQs5P,GAAet5P,IACfw5P,GAAQjhX,EAAI,IAAMynH,EAAQ,IAAMA,CAC1C,IAAG1jH,KAAKk9W,EAAO,IAAM,IALHr9W,CAMpB,CAaA,MAAMs9W,GAAaV,GAAMlB,aAAakB,GAAO,CAAC,EAAG,MAAM,SAAgBrhX,GACrE,MAAO,WAAW2c,KAAK3c,EACzB,IA8JA,SArIA,SAAoBoC,EAAK4/W,EAAUn/W,GACjC,IAAKw+W,GAAM5yW,SAASrM,GAClB,MAAM,IAAImM,UAAU,4BAItByzW,EAAWA,GAAY,IAAyBpC,SAYhD,MAAMqC,GATNp/W,EAAUw+W,GAAMlB,aAAat9W,EAAS,CACpCo/W,YAAY,EACZH,MAAM,EACNhqR,SAAS,IACR,GAAO,SAAiB8yC,EAAQr/H,GAEjC,OAAQ81W,GAAM9wQ,YAAYhlG,EAAOq/H,GACnC,KAE2Bq3O,WAErBC,EAAUr/W,EAAQq/W,SAAWC,EAC7BL,EAAOj/W,EAAQi/W,KACfhqR,EAAUj1F,EAAQi1F,QAElBsqR,GADQv/W,EAAQg5C,MAAwB,qBAATA,MAAwBA,OACpCwlU,GAAMJ,oBAAoBe,GAEnD,IAAKX,GAAM92V,WAAW23V,GACpB,MAAM,IAAI3zW,UAAU,8BAGtB,SAAS8zW,EAAa9jX,GACpB,GAAc,OAAVA,EAAgB,MAAO,GAE3B,GAAI8iX,GAAMv6R,OAAOvoF,GACf,OAAOA,EAAM65B,cAGf,IAAKgqV,GAAWf,GAAMhD,OAAO9/W,GAC3B,MAAM,IAAI6iX,GAAW,gDAGvB,OAAIC,GAAMz6R,cAAcroF,IAAU8iX,GAAMlpU,aAAa55C,GAC5C6jX,GAA2B,oBAATvmU,KAAsB,IAAIA,KAAK,CAACt9C,IAAUosF,OAAOrgF,KAAK/L,GAG1EA,CACT,CAYA,SAAS4jX,EAAe5jX,EAAOkG,EAAK0R,GAClC,IAAI61I,EAAMztJ,EAEV,GAAIA,IAAU4X,GAAyB,kBAAV5X,EAC3B,GAAI8iX,GAAMpyQ,SAASxqG,EAAK,MAEtBA,EAAMw9W,EAAax9W,EAAMA,EAAIE,MAAM,GAAI,GAEvCpG,EAAQ2K,KAAKE,UAAU7K,QAClB,GACJ8iX,GAAMxvW,QAAQtT,IAnGvB,SAAqBytJ,GACnB,OAAOq1N,GAAMxvW,QAAQm6I,KAASA,EAAIj7I,KAAK4wW,GACzC,CAiGiCW,CAAY/jX,KACnC8iX,GAAM/C,WAAW//W,IAAU8iX,GAAMpyQ,SAASxqG,EAAK,SAAWunJ,EAAMq1N,GAAMl6Q,QAAQ5oG,IAYhF,OATAkG,EAAMm9W,GAAen9W,GAErBunJ,EAAIvrJ,SAAQ,SAAcsE,EAAI8K,IAC1BwxW,GAAM9wQ,YAAYxrG,IAAc,OAAPA,GAAgBi9W,EAAS1tH,QAEtC,IAAZx8J,EAAmB+pR,GAAU,CAACp9W,GAAMoL,EAAOiyW,GAAqB,OAAZhqR,EAAmBrzF,EAAMA,EAAM,KACnF49W,EAAat9W,GAEjB,KACO,EAIX,QAAI48W,GAAYpjX,KAIhByjX,EAAS1tH,OAAOutH,GAAU1rW,EAAM1R,EAAKq9W,GAAOO,EAAa9jX,KAElD,EACT,CAEA,MAAM0L,EAAQ,GAERs4W,EAAiB58W,OAAOoD,OAAOg5W,GAAY,CAC/CI,iBACAE,eACAV,YAAWA,KAyBb,IAAKN,GAAM5yW,SAASrM,GAClB,MAAM,IAAImM,UAAU,0BAKtB,OA5BA,SAASi0W,EAAMjkX,EAAO4X,GACpB,IAAIkrW,GAAM9wQ,YAAYhyG,GAAtB,CAEA,IAA8B,IAA1B0L,EAAM5F,QAAQ9F,GAChB,MAAM8E,MAAM,kCAAoC8S,EAAKvR,KAAK,MAG5DqF,EAAMzI,KAAKjD,GAEX8iX,GAAM5gX,QAAQlC,GAAO,SAAcwG,EAAIN,IAKtB,OAJE48W,GAAM9wQ,YAAYxrG,IAAc,OAAPA,IAAgBm9W,EAAQxiX,KAChEsiX,EAAUj9W,EAAIs8W,GAAMr6Q,SAASviG,GAAOA,EAAIie,OAASje,EAAK0R,EAAMosW,KAI5DC,EAAMz9W,EAAIoR,EAAOA,EAAKhS,OAAOM,GAAO,CAACA,GAEzC,IAEAwF,EAAM4nF,KAlB8B,CAmBtC,CAMA2wR,CAAMpgX,GAEC4/W,CACT,EC5MA,SAASxpK,GAAO7lK,GACd,MAAM86K,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO,MAET,OAAOnvK,mBAAmB3L,GAAKt/B,QAAQ,oBAAoB,SAAkBkF,GAC3E,OAAOk1M,EAAQl1M,EACjB,GACF,CAUA,SAASkqW,GAAqBn/I,EAAQzgO,GACpClD,KAAK+iX,OAAS,GAEdp/I,GAAUq/I,GAAWr/I,EAAQ3jO,KAAMkD,EACrC,CAEA,MAAMrD,GAAYijX,GAAqBjjX,UAEvCA,GAAU80P,OAAS,SAAgB1mP,EAAMrP,GACvCoB,KAAK+iX,OAAOlhX,KAAK,CAACoM,EAAMrP,GAC1B,EAEAiB,GAAUmO,SAAW,SAAkBi1W,GACrC,MAAMC,EAAUD,EAAU,SAASrkX,GACjC,OAAOqkX,EAAQljX,KAAKC,KAAMpB,EAAOi6M,GACnC,EAAIA,GAEJ,OAAO74M,KAAK+iX,OAAO11W,KAAI,SAAcizF,GACnC,OAAO4iR,EAAQ5iR,EAAK,IAAM,IAAM4iR,EAAQ5iR,EAAK,GAC/C,GAAG,IAAIr7F,KAAK,IACd,EAEA,YC5CA,SAAS4zM,GAAOlwM,GACd,OAAOg2C,mBAAmBh2C,GACxB+K,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CAWe,SAASyvW,GAASjhX,EAAKyhO,EAAQzgO,GAE5C,IAAKygO,EACH,OAAOzhO,EAGT,MAAMghX,EAAUhgX,GAAWA,EAAQ21M,QAAUA,GAEzC6oK,GAAM92V,WAAW1nB,KACnBA,EAAU,CACRyuR,UAAWzuR,IAIf,MAAMkgX,EAAclgX,GAAWA,EAAQyuR,UAEvC,IAAI0xF,EAUJ,GAPEA,EADED,EACiBA,EAAYz/I,EAAQzgO,GAEpBw+W,GAAM9C,kBAAkBj7I,GACzCA,EAAO31N,WACP,IAAI80W,GAAqBn/I,EAAQzgO,GAAS8K,SAASk1W,GAGnDG,EAAkB,CACpB,MAAMC,EAAgBphX,EAAIwC,QAAQ,MAEX,IAAnB4+W,IACFphX,EAAMA,EAAI8C,MAAM,EAAGs+W,IAErBphX,KAA8B,IAAtBA,EAAIwC,QAAQ,KAAc,IAAM,KAAO2+W,CACjD,CAEA,OAAOnhX,CACT,CCEA,SAlEA,MACEU,WAAAA,GACE5C,KAAK6qC,SAAW,EAClB,CAUA04U,GAAAA,CAAI5qQ,EAAWC,EAAU11G,GAOvB,OANAlD,KAAK6qC,SAAShpC,KAAK,CACjB82G,YACAC,WACA4qQ,cAAatgX,GAAUA,EAAQsgX,YAC/BC,QAASvgX,EAAUA,EAAQugX,QAAU,OAEhCzjX,KAAK6qC,SAAS1pC,OAAS,CAChC,CASAuiX,KAAAA,CAAMjgW,GACAzjB,KAAK6qC,SAASpnB,KAChBzjB,KAAK6qC,SAASpnB,GAAM,KAExB,CAOAyqE,KAAAA,GACMluF,KAAK6qC,WACP7qC,KAAK6qC,SAAW,GAEpB,CAYA/pC,OAAAA,CAAQsN,GACNszW,GAAM5gX,QAAQd,KAAK6qC,UAAU,SAAwBp+B,GACzC,OAANA,GACF2B,EAAG3B,EAEP,GACF,GCjEF,IACEk3W,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,GCDvB,IACEt2I,WAAW,EACX9Z,QAAS,CACPqwJ,gBCJsC,qBAApBA,gBAAkCA,gBAAkBhB,GDKtE7C,SEN+B,qBAAbA,SAA2BA,SAAW,KFOxD/jU,KGP2B,qBAATA,KAAuBA,KAAO,MHSlD6nU,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO,SIXhDC,GAAkC,qBAAXz+W,QAA8C,qBAAb+B,SAExD28W,GAAkC,kBAAdnnU,WAA0BA,gBAAa7vC,EAmB3Di3W,GAAwBF,MAC1BC,IAAc,CAAC,cAAe,eAAgB,MAAMv/W,QAAQu/W,GAAWpZ,SAAW,GAWhFsZ,GAE2B,qBAAtBC,mBAEPrlX,gBAAgBqlX,mBACc,oBAAvBrlX,KAAKitB,cAIVoxB,GAAS4mU,IAAiBz+W,OAAO2H,SAAS/K,MAAQ,mBCvCxD,OACKu/W,KACA2C,ICyFL,SA9CA,SAAwBhC,GACtB,SAASiC,EAAU9tW,EAAM5X,EAAOmM,EAAQmF,GACtC,IAAIjC,EAAOuI,EAAKtG,KAEhB,GAAa,cAATjC,EAAsB,OAAO,EAEjC,MAAMs2W,EAAer9W,OAAO4kF,UAAU79E,GAChCu2W,EAASt0W,GAASsG,EAAKrV,OAG7B,GAFA8M,GAAQA,GAAQyzW,GAAMxvW,QAAQnH,GAAUA,EAAO5J,OAAS8M,EAEpDu2W,EAOF,OANI9C,GAAMv1N,WAAWphJ,EAAQkD,GAC3BlD,EAAOkD,GAAQ,CAAClD,EAAOkD,GAAOrP,GAE9BmM,EAAOkD,GAAQrP,GAGT2lX,EAGLx5W,EAAOkD,IAAUyzW,GAAM5yW,SAAS/D,EAAOkD,MAC1ClD,EAAOkD,GAAQ,IASjB,OANeq2W,EAAU9tW,EAAM5X,EAAOmM,EAAOkD,GAAOiC,IAEtCwxW,GAAMxvW,QAAQnH,EAAOkD,MACjClD,EAAOkD,GA/Cb,SAAuBo+I,GACrB,MAAM5pJ,EAAM,CAAC,EACPwD,EAAOD,OAAOC,KAAKomJ,GACzB,IAAInrJ,EACJ,MAAMujB,EAAMxe,EAAK9E,OACjB,IAAI2D,EACJ,IAAK5D,EAAI,EAAGA,EAAIujB,EAAKvjB,IACnB4D,EAAMmB,EAAK/E,GACXuB,EAAIqC,GAAOunJ,EAAIvnJ,GAEjB,OAAOrC,CACT,CAoCqBgiX,CAAc15W,EAAOkD,MAG9Bs2W,CACV,CAEA,GAAI7C,GAAM1B,WAAWqC,IAAaX,GAAM92V,WAAWy3V,EAASjsW,SAAU,CACpE,MAAM3T,EAAM,CAAC,EAMb,OAJAi/W,GAAMb,aAAawB,GAAU,CAACp0W,EAAMrP,KAClC0lX,EA1EN,SAAuBr2W,GAKrB,OAAOyzW,GAAMZ,SAAS,gBAAiB7yW,GAAMZ,KAAIuL,GAC3B,OAAbA,EAAM,GAAc,GAAKA,EAAM,IAAMA,EAAM,IAEtD,CAkEgB8rW,CAAcz2W,GAAOrP,EAAO6D,EAAK,EAAE,IAGxCA,CACT,CAEA,OAAO,IACT,ECzDA,MAAMu5B,GAAW,CAEf2oV,aAAcC,GAEdC,QAAS,CAAC,MAAO,OAAQ,SAEzBC,iBAAkB,CAAC,SAA0BvoW,EAAMwoW,GACjD,MAAMC,EAAcD,EAAQE,kBAAoB,GAC1CC,EAAqBF,EAAYtgX,QAAQ,qBAAuB,EAChEygX,EAAkBzD,GAAM5yW,SAASyN,GAEnC4oW,GAAmBzD,GAAMrC,WAAW9iW,KACtCA,EAAO,IAAI0jW,SAAS1jW,IAKtB,GAFmBmlW,GAAM1B,WAAWzjW,GAGlC,OAAO2oW,EAAqB37W,KAAKE,UAAU27W,GAAe7oW,IAASA,EAGrE,GAAImlW,GAAMz6R,cAAc1qE,IACtBmlW,GAAMjiS,SAASljE,IACfmlW,GAAMxB,SAAS3jW,IACfmlW,GAAMjD,OAAOliW,IACbmlW,GAAMhD,OAAOniW,IACbmlW,GAAM7C,iBAAiBtiW,GAEvB,OAAOA,EAET,GAAImlW,GAAM/zK,kBAAkBpxL,GAC1B,OAAOA,EAAKs0E,OAEd,GAAI6wR,GAAM9C,kBAAkBriW,GAE1B,OADAwoW,EAAQM,eAAe,mDAAmD,GACnE9oW,EAAKvO,WAGd,IAAI2wW,EAEJ,GAAIwG,EAAiB,CACnB,GAAIH,EAAYtgX,QAAQ,sCAAwC,EAC9D,OCvEO,SAA0B6X,EAAMrZ,GAC7C,OAAO8/W,GAAWzmW,EAAM,IAAI8nW,GAAS5wJ,QAAQqwJ,gBAAmB99W,OAAOoD,OAAO,CAC5Em5W,QAAS,SAAS3jX,EAAOkG,EAAK0R,EAAM8uW,GAClC,OAAIjB,GAASx4V,QAAU61V,GAAMjiS,SAAS7gF,IACpCoB,KAAK20P,OAAO7vP,EAAKlG,EAAMoP,SAAS,YACzB,GAGFs3W,EAAQ9C,eAAenoW,MAAMra,KAAMyP,UAC5C,GACCvM,GACL,CD4DeqiX,CAAiBhpW,EAAMvc,KAAKwlX,gBAAgBx3W,WAGrD,IAAK2wW,EAAa+C,GAAM/C,WAAWpiW,KAAUyoW,EAAYtgX,QAAQ,wBAA0B,EAAG,CAC5F,MAAM+gX,EAAYzlX,KAAK0lX,KAAO1lX,KAAK0lX,IAAIzF,SAEvC,OAAO+C,GACLrE,EAAa,CAAC,UAAWpiW,GAAQA,EACjCkpW,GAAa,IAAIA,EACjBzlX,KAAKwlX,eAET,CACF,CAEA,OAAIL,GAAmBD,GACrBH,EAAQM,eAAe,oBAAoB,GAxEjD,SAAyBM,EAAUnjP,EAAQygP,GACzC,GAAIvB,GAAMr6Q,SAASs+Q,GACjB,IAEE,OADCnjP,GAAUj5H,KAAKC,OAAOm8W,GAChBjE,GAAM3+V,KAAK4iW,EACpB,CAAE,MAAOn4V,KACP,GAAe,gBAAXA,IAAEvf,KACJ,MAAMuf,GAEV,CAGF,OAAQy1V,GAAW15W,KAAKE,WAAWk8W,EACrC,CA4DaC,CAAgBrpW,IAGlBA,CACT,GAEAspW,kBAAmB,CAAC,SAA2BtpW,GAC7C,MAAMooW,EAAe3kX,KAAK2kX,cAAgB3oV,GAAS2oV,aAC7Cf,EAAoBe,GAAgBA,EAAaf,kBACjDkC,EAAsC,SAAtB9lX,KAAKo8C,aAE3B,GAAIslU,GAAM3C,WAAWxiW,IAASmlW,GAAM7C,iBAAiBtiW,GACnD,OAAOA,EAGT,GAAIA,GAAQmlW,GAAMr6Q,SAAS9qF,KAAWqnW,IAAsB5jX,KAAKo8C,cAAiB0pU,GAAgB,CAChG,MACMC,IADoBpB,GAAgBA,EAAahB,oBACPmC,EAEhD,IACE,OAAOv8W,KAAKC,MAAM+S,EACpB,CAAE,MAAOiR,KACP,GAAIu4V,EAAmB,CACrB,GAAe,gBAAXv4V,IAAEvf,KACJ,MAAMwzW,GAAW92W,KAAK6iB,IAAGi0V,GAAWuE,iBAAkBhmX,KAAM,KAAMA,KAAKs8C,UAEzE,MAAM9uB,GACR,CACF,CACF,CAEA,OAAOjR,CACT,GAMAm7H,QAAS,EAETuuO,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EACnBC,eAAgB,EAEhBV,IAAK,CACHzF,SAAUoE,GAAS5wJ,QAAQwsJ,SAC3B/jU,KAAMmoU,GAAS5wJ,QAAQv3K,MAGzBmqU,eAAgB,SAAwB5pU,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEAsoU,QAAS,CACPuB,OAAQ,CACN,OAAU,oCACV,oBAAgBr5W,KAKtBy0W,GAAM5gX,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,UAAWmR,IAChE+pB,GAAS+oV,QAAQ9yW,GAAU,CAAC,CAAC,IAG/B,YE1JMs0W,GAAoB7E,GAAMT,YAAY,CAC1C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,eCLtBuF,GAAa9jX,OAAO,aAE1B,SAAS+jX,GAAgB54U,GACvB,OAAOA,GAAU5mC,OAAO4mC,GAAQ9qB,OAAO5f,aACzC,CAEA,SAASujX,GAAe9nX,GACtB,OAAc,IAAVA,GAA4B,MAATA,EACdA,EAGF8iX,GAAMxvW,QAAQtT,GAASA,EAAMyO,IAAIq5W,IAAkBz/W,OAAOrI,EACnE,CAgBA,SAAS+nX,GAAiBxgT,EAASvnE,EAAOivC,EAAQ18B,EAAQy1W,GACxD,OAAIlF,GAAM92V,WAAWzZ,GACZA,EAAOpR,KAAKC,KAAMpB,EAAOivC,IAG9B+4U,IACFhoX,EAAQivC,GAGL6zU,GAAMr6Q,SAASzoG,GAEhB8iX,GAAMr6Q,SAASl2F,IACiB,IAA3BvS,EAAM8F,QAAQyM,GAGnBuwW,GAAMn6R,SAASp2E,GACVA,EAAO6L,KAAKpe,QADrB,OANA,EASF,CAsBA,MAAMioX,GACJjkX,WAAAA,CAAYmiX,GACVA,GAAW/kX,KAAK2J,IAAIo7W,EACtB,CAEAp7W,GAAAA,CAAIkkC,EAAQi5U,EAAgBC,GAC1B,MAAMhoX,EAAOiB,KAEb,SAASgnX,EAAUx+P,EAAQy+P,EAASC,GAClC,MAAMC,EAAUV,GAAgBQ,GAEhC,IAAKE,EACH,MAAM,IAAIzjX,MAAM,0CAGlB,MAAMoB,EAAM48W,GAAMjyQ,QAAQ1wG,EAAMooX,KAE5BriX,QAAqBmI,IAAdlO,EAAK+F,KAAmC,IAAboiX,QAAmCj6W,IAAbi6W,IAAwC,IAAdnoX,EAAK+F,MACzF/F,EAAK+F,GAAOmiX,GAAWP,GAAel+P,GAE1C,CAEA,MAAM4+P,EAAaA,CAACrC,EAASmC,IAC3BxF,GAAM5gX,QAAQikX,GAAS,CAACv8P,EAAQy+P,IAAYD,EAAUx+P,EAAQy+P,EAASC,KAEzE,GAAIxF,GAAMtqR,cAAcvpD,IAAWA,aAAkB7tC,KAAK4C,YACxDwkX,EAAWv5U,EAAQi5U,QACd,GAAGpF,GAAMr6Q,SAASx5D,KAAYA,EAASA,EAAO9qB,UArEtB,iCAAiC/F,KAqEmB6wB,EArEV9qB,QAsEvEqkW,ED1EN,CAAeC,IACb,MAAMC,EAAS,CAAC,EAChB,IAAIxiX,EACA6D,EACAzH,EAsBJ,OApBAmmX,GAAcA,EAAWluW,MAAM,MAAMrY,SAAQ,SAAgB8vC,GAC3D1vC,EAAI0vC,EAAKlsC,QAAQ,KACjBI,EAAM8rC,EAAKxiB,UAAU,EAAGltB,GAAG6hB,OAAO5f,cAClCwF,EAAMioC,EAAKxiB,UAAUltB,EAAI,GAAG6hB,QAEvBje,GAAQwiX,EAAOxiX,IAAQyhX,GAAkBzhX,KAIlC,eAARA,EACEwiX,EAAOxiX,GACTwiX,EAAOxiX,GAAKjD,KAAK8G,GAEjB2+W,EAAOxiX,GAAO,CAAC6D,GAGjB2+W,EAAOxiX,GAAOwiX,EAAOxiX,GAAOwiX,EAAOxiX,GAAO,KAAO6D,EAAMA,EAE3D,IAEO2+W,CACR,EC+CgBC,CAAa15U,GAASi5U,QAC5B,GAAIpF,GAAM1C,UAAUnxU,GACzB,IAAK,MAAO/oC,EAAKlG,KAAUivC,EAAOz3B,UAChC4wW,EAAUpoX,EAAOkG,EAAKiiX,QAGd,MAAVl5U,GAAkBm5U,EAAUF,EAAgBj5U,EAAQk5U,GAGtD,OAAO/mX,IACT,CAEAwN,GAAAA,CAAIqgC,EAAQ20F,GAGV,GAFA30F,EAAS44U,GAAgB54U,GAEb,CACV,MAAM/oC,EAAM48W,GAAMjyQ,QAAQzvG,KAAM6tC,GAEhC,GAAI/oC,EAAK,CACP,MAAMlG,EAAQoB,KAAK8E,GAEnB,IAAK09H,EACH,OAAO5jI,EAGT,IAAe,IAAX4jI,EACF,OA5GV,SAAqBxvF,GACnB,MAAM01E,EAAS1iH,OAAO4D,OAAO,MACvB49W,EAAW,mCACjB,IAAI5uW,EAEJ,KAAQA,EAAQ4uW,EAASxtW,KAAKg5B,IAC5B01E,EAAO9vG,EAAM,IAAMA,EAAM,GAG3B,OAAO8vG,CACT,CAkGiB++P,CAAY7oX,GAGrB,GAAI8iX,GAAM92V,WAAW43G,GACnB,OAAOA,EAAOziI,KAAKC,KAAMpB,EAAOkG,GAGlC,GAAI48W,GAAMn6R,SAASi7C,GACjB,OAAOA,EAAOxoH,KAAKpb,GAGrB,MAAM,IAAIgQ,UAAU,yCACtB,CACF,CACF,CAEAiE,GAAAA,CAAIg7B,EAAQ88H,GAGV,GAFA98H,EAAS44U,GAAgB54U,GAEb,CACV,MAAM/oC,EAAM48W,GAAMjyQ,QAAQzvG,KAAM6tC,GAEhC,SAAU/oC,QAAqBmI,IAAdjN,KAAK8E,IAAwB6lK,IAAWg8M,GAAiB3mX,EAAMA,KAAK8E,GAAMA,EAAK6lK,GAClG,CAEA,OAAO,CACT,CAEA57G,OAAOlhB,EAAQ88H,GACb,MAAM5rK,EAAOiB,KACb,IAAI0nX,GAAU,EAEd,SAASC,EAAaV,GAGpB,GAFAA,EAAUR,GAAgBQ,GAEb,CACX,MAAMniX,EAAM48W,GAAMjyQ,QAAQ1wG,EAAMkoX,IAE5BniX,GAAS6lK,IAAWg8M,GAAiB5nX,EAAMA,EAAK+F,GAAMA,EAAK6lK,YACtD5rK,EAAK+F,GAEZ4iX,GAAU,EAEd,CACF,CAQA,OANIhG,GAAMxvW,QAAQ27B,GAChBA,EAAO/sC,QAAQ6mX,GAEfA,EAAa95U,GAGR65U,CACT,CAEAx5R,KAAAA,CAAMy8E,GACJ,MAAM1kK,EAAOD,OAAOC,KAAKjG,MACzB,IAAIkB,EAAI+E,EAAK9E,OACTumX,GAAU,EAEd,KAAOxmX,KAAK,CACV,MAAM4D,EAAMmB,EAAK/E,GACbypK,IAAWg8M,GAAiB3mX,EAAMA,KAAK8E,GAAMA,EAAK6lK,GAAS,YACtD3qK,KAAK8E,GACZ4iX,GAAU,EAEd,CAEA,OAAOA,CACT,CAEAlrW,SAAAA,CAAUvZ,GACR,MAAMlE,EAAOiB,KACP+kX,EAAU,CAAC,EAsBjB,OApBArD,GAAM5gX,QAAQd,MAAM,CAACpB,EAAOivC,KAC1B,MAAM/oC,EAAM48W,GAAMjyQ,QAAQs1Q,EAASl3U,GAEnC,GAAI/oC,EAGF,OAFA/F,EAAK+F,GAAO4hX,GAAe9nX,eACpBG,EAAK8uC,GAId,MAAM+5U,EAAa3kX,EA9JzB,SAAsB4qC,GACpB,OAAOA,EAAO9qB,OACX5f,cAAcuQ,QAAQ,mBAAmB,CAAClH,EAAGyyD,EAAMjsB,IAC3CisB,EAAK/rC,cAAgB8f,GAElC,CAyJkC60U,CAAah6U,GAAU5mC,OAAO4mC,GAAQ9qB,OAE9D6kW,IAAe/5U,UACV9uC,EAAK8uC,GAGd9uC,EAAK6oX,GAAclB,GAAe9nX,GAElCmmX,EAAQ6C,IAAc,CAAI,IAGrB5nX,IACT,CAEAwE,MAAAA,GAAmB,QAAA8rO,EAAA7gO,UAAAtO,OAAT2mX,EAAO,IAAAjnX,MAAAyvO,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAPu3I,EAAOv3I,GAAA9gO,UAAA8gO,GACf,OAAOvwO,KAAK4C,YAAY4B,OAAOxE,QAAS8nX,EAC1C,CAEAtvV,MAAAA,CAAOuvV,GACL,MAAMtlX,EAAMuD,OAAO4D,OAAO,MAM1B,OAJA83W,GAAM5gX,QAAQd,MAAM,CAACpB,EAAOivC,KACjB,MAATjvC,IAA2B,IAAVA,IAAoB6D,EAAIorC,GAAUk6U,GAAarG,GAAMxvW,QAAQtT,GAASA,EAAMqG,KAAK,MAAQrG,EAAM,IAG3G6D,CACT,CAEA,CAACC,OAAOC,YACN,OAAOqD,OAAOoQ,QAAQpW,KAAKw4B,UAAU91B,OAAOC,WAC9C,CAEAqL,QAAAA,GACE,OAAOhI,OAAOoQ,QAAQpW,KAAKw4B,UAAUnrB,KAAI49I,IAAA,IAAEp9G,EAAQjvC,GAAMqsJ,EAAA,OAAKp9G,EAAS,KAAOjvC,CAAK,IAAEqG,KAAK,KAC5F,CAEA,IAAKvC,OAAO6vB,eACV,MAAO,cACT,CAEA,WAAO5nB,CAAKyqV,GACV,OAAOA,aAAiBp1V,KAAOo1V,EAAQ,IAAIp1V,KAAKo1V,EAClD,CAEA,aAAO5wV,CAAO2d,GACZ,MAAM4vE,EAAW,IAAI/xF,KAAKmiB,GAAO,QAAAuuN,EAAAjhO,UAAAtO,OADX2mX,EAAO,IAAAjnX,MAAA6vO,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAPm3I,EAAOn3I,EAAA,GAAAlhO,UAAAkhO,GAK7B,OAFAm3I,EAAQhnX,SAASiK,GAAWgnF,EAASpoF,IAAIoB,KAElCgnF,CACT,CAEA,eAAOi2R,CAASn6U,GACd,MAIMo6U,GAJYjoX,KAAKwmX,IAAexmX,KAAKwmX,IAAc,CACvDyB,UAAW,CAAC,IAGcA,UACtBpoX,EAAYG,KAAKH,UAEvB,SAASqoX,EAAejB,GACtB,MAAME,EAAUV,GAAgBQ,GAE3BgB,EAAUd,MAtNrB,SAAwB1kX,EAAKorC,GAC3B,MAAMs6U,EAAezG,GAAMP,YAAY,IAAMtzU,GAE7C,CAAC,MAAO,MAAO,OAAO/sC,SAAQi8F,IAC5B/2F,OAAOgN,eAAevQ,EAAKs6F,EAAaorR,EAAc,CACpDvpX,MAAO,SAAS+tT,EAAMoC,EAAMq5D,GAC1B,OAAOpoX,KAAK+8F,GAAYh9F,KAAKC,KAAM6tC,EAAQ8+Q,EAAMoC,EAAMq5D,EACzD,EACAh5W,cAAc,GACd,GAEN,CA4MQi5W,CAAexoX,EAAWonX,GAC1BgB,EAAUd,IAAW,EAEzB,CAIA,OAFAzF,GAAMxvW,QAAQ27B,GAAUA,EAAO/sC,QAAQonX,GAAkBA,EAAer6U,GAEjE7tC,IACT,EAGF6mX,GAAamB,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,aAAc,kBAGpGtG,GAAMpC,kBAAkBuH,GAAahnX,WAAW,CAAA68K,EAAU53K,KAAQ,IAAjB,MAAClG,GAAM89K,EAClDx5E,EAASp+F,EAAI,GAAGouB,cAAgBpuB,EAAIE,MAAM,GAC9C,MAAO,CACLwI,IAAKA,IAAM5O,EACX+K,GAAAA,CAAI2+W,GACFtoX,KAAKkjG,GAAUolR,CACjB,EACD,IAGH5G,GAAMV,cAAc6F,IAEpB,YC/Re,SAAS0B,GAAcn7W,EAAKkvC,GACzC,MAAM1K,EAAS5xC,MAAQg8B,GACjBmqC,EAAU7pB,GAAY1K,EACtBmzU,EAAU8B,GAAal8W,KAAKw7D,EAAQ4+S,SAC1C,IAAIxoW,EAAO4pD,EAAQ5pD,KAQnB,OANAmlW,GAAM5gX,QAAQsM,GAAK,SAAmBgB,GACpCmO,EAAOnO,EAAGrO,KAAK6xC,EAAQr1B,EAAMwoW,EAAQvoW,YAAa8/B,EAAWA,EAASG,YAASxvC,EACjF,IAEA83W,EAAQvoW,YAEDD,CACT,CCzBe,SAASisW,GAAS5pX,GAC/B,SAAUA,IAASA,EAAM6pX,WAC3B,CCUA,SAASC,GAAcl5S,EAAS59B,EAAQssL,GAEtCujJ,GAAW1hX,KAAKC,KAAiB,MAAXwvE,EAAkB,WAAaA,EAASiyS,GAAWkH,aAAc/2U,EAAQssL,GAC/Fl+N,KAAKiO,KAAO,eACd,CAEAyzW,GAAMpB,SAASoI,GAAejH,GAAY,CACxCgH,YAAY,IAGd,YCXe,SAASG,GAAOt/W,EAAS6lB,EAAQmtB,GAC9C,MAAM+pU,EAAiB/pU,EAAS1K,OAAOy0U,eAClC/pU,EAASG,QAAW4pU,IAAkBA,EAAe/pU,EAASG,QAGjEttB,EAAO,IAAIsyV,GACT,mCAAqCnlU,EAASG,OAC9C,CAACglU,GAAWoH,gBAAiBpH,GAAWuE,kBAAkBxkX,KAAKC,MAAM66C,EAASG,OAAS,KAAO,GAC9FH,EAAS1K,OACT0K,EAAS4hL,QACT5hL,IAPFhzC,EAAQgzC,EAUZ,CC4BA,SA9CA,SAAqBwsU,EAAc7lW,GACjC6lW,EAAeA,GAAgB,GAC/B,MAAMptQ,EAAQ,IAAI76G,MAAMioX,GAClBC,EAAa,IAAIloX,MAAMioX,GAC7B,IAEIE,EAFAvsV,EAAO,EACPi3C,EAAO,EAKX,OAFAzwD,OAAchW,IAARgW,EAAoBA,EAAM,IAEzB,SAAcgmW,GACnB,MAAMt2T,EAAMx8B,KAAKw8B,MAEXu2T,EAAYH,EAAWr1S,GAExBs1S,IACHA,EAAgBr2T,GAGlB+oD,EAAMj/E,GAAQwsV,EACdF,EAAWtsV,GAAQk2B,EAEnB,IAAIzxD,EAAIwyE,EACJy1S,EAAa,EAEjB,KAAOjoX,IAAMu7B,GACX0sV,GAAcztQ,EAAMx6G,KACpBA,GAAQ4nX,EASV,GANArsV,GAAQA,EAAO,GAAKqsV,EAEhBrsV,IAASi3C,IACXA,GAAQA,EAAO,GAAKo1S,GAGlBn2T,EAAMq2T,EAAgB/lW,EACxB,OAGF,MAAMmmW,EAASF,GAAav2T,EAAMu2T,EAElC,OAAOE,EAAS5nX,KAAK22B,MAAmB,IAAbgxV,EAAoBC,QAAUn8W,CAC3D,CACF,ECTA,SArCA,SAAkBmB,EAAIi7W,GACpB,IAEInkR,EACAktP,EAHAk3B,EAAY,EACZjyM,EAAY,IAAOgyM,EAIvB,MAAMhhR,EAAS,SAACl+E,GAA2B,IAArBwoC,EAAGljD,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG0mB,KAAKw8B,MAC/B22T,EAAY32T,EACZuyC,EAAW,KACPktP,IACFryR,aAAaqyR,GACbA,EAAQ,MAEVhkV,EAAGiM,MAAM,KAAM8P,EACjB,EAoBA,MAAO,CAlBW,WAChB,MAAMwoC,EAAMx8B,KAAKw8B,MACXy2T,EAASz2T,EAAM22T,EAAU,QAAAh5I,EAAA7gO,UAAAtO,OAFXgpB,EAAI,IAAAtpB,MAAAyvO,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJpmN,EAAIomN,GAAA9gO,UAAA8gO,GAGnB64I,GAAU/xM,EACbhvE,EAAOl+E,EAAMwoC,IAEbuyC,EAAW/6E,EACNioU,IACHA,EAAQllU,YAAW,KACjBklU,EAAQ,KACR/pP,EAAOnD,EAAS,GACfmyE,EAAY+xM,IAGrB,EAEcl+V,IAAMg6E,GAAYmD,EAAOnD,GAGzC,ECrCaqkR,GAAuB,SAACtrT,EAAUurT,GAA+B,IAAbH,EAAI55W,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,EAClEg6W,EAAgB,EACpB,MAAMC,EAAeC,GAAY,GAAI,KAErC,OAAO17Q,IAASzgF,IACd,MAAMwvM,EAASxvM,EAAEwvM,OACX9xL,EAAQ1d,EAAEo8V,iBAAmBp8V,EAAE0d,WAAQj+B,EACvC48W,EAAgB7sJ,EAASysJ,EACzB31C,EAAO41C,EAAaG,GAG1BJ,EAAgBzsJ,EAchB/+J,EAZa,CACX++J,SACA9xL,QACA9gC,SAAU8gC,EAAS8xL,EAAS9xL,OAASj+B,EACrCyuG,MAAOmuQ,EACP/1C,KAAMA,QAAc7mU,EACpB68W,UAAWh2C,GAAQ5oS,GAVL8xL,GAAU9xL,GAUeA,EAAQ8xL,GAAU82G,OAAO7mU,EAChEmsD,MAAO5rC,EACPo8V,iBAA2B,MAAT1+U,EAClB,CAACs+U,EAAmB,WAAa,WAAW,GAGhC,GACbH,EACL,EAEaU,GAAyBA,CAAC7+U,EAAO8+U,KAC5C,MAAMJ,EAA4B,MAAT1+U,EAEzB,MAAO,CAAE8xL,GAAWgtJ,EAAU,GAAG,CAC/BJ,mBACA1+U,QACA8xL,WACEgtJ,EAAU,GAAG,EAGNC,GAAkB77W,GAAO,mBAAAkiO,EAAA7gO,UAAAtO,OAAIgpB,EAAI,IAAAtpB,MAAAyvO,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJpmN,EAAIomN,GAAA9gO,UAAA8gO,GAAA,OAAKmxI,GAAM32V,MAAK,IAAM3c,KAAM+b,IAAM,ECzChF,GAAek6V,GAASH,uBAA0B9mU,GAShD,IAAIJ,IAAIqnU,GAASjnU,QATuC8sU,GAUxD7F,GAASvnU,WAAa,kBAAkB9/B,KAAKqnW,GAASvnU,UAAUhkC,WAVI5W,IACpEA,EAAM,IAAI86C,IAAI96C,EAAKmiX,GAASjnU,QAG1BA,GAAOg5F,WAAal0I,EAAIk0I,UACxBh5F,GAAOqtN,OAASvoQ,EAAIuoQ,OACnBy/G,IAAU9sU,GAAOk5F,OAASp0I,EAAIo0I,QAK/B,KAAM,EAXsC,IAAEl5F,GAAQ8sU,GCC1D,SAAe7F,GAASH,sBAGtB,CACEtlW,KAAAA,CAAM3Q,EAAMrP,EAAOurX,EAAS3zW,EAAM0I,EAAQkrW,GACxC,MAAMC,EAAS,CAACp8W,EAAO,IAAM0wC,mBAAmB//C,IAEhD8iX,GAAMt6Q,SAAS+iR,IAAYE,EAAOxoX,KAAK,WAAa,IAAIs0B,KAAKg0V,GAASG,eAEtE5I,GAAMr6Q,SAAS7wF,IAAS6zW,EAAOxoX,KAAK,QAAU2U,GAE9CkrW,GAAMr6Q,SAASnoF,IAAWmrW,EAAOxoX,KAAK,UAAYqd,IAEvC,IAAXkrW,GAAmBC,EAAOxoX,KAAK,UAE/ByF,SAAS+iX,OAASA,EAAOplX,KAAK,KAChC,EAEAwjH,IAAAA,CAAKx6G,GACH,MAAM2K,EAAQtR,SAAS+iX,OAAOzxW,MAAM,IAAI+J,OAAO,aAAe1U,EAAO,cACrE,OAAQ2K,EAAQwrN,mBAAmBxrN,EAAM,IAAM,IACjD,EAEAu0F,MAAAA,CAAOl/F,GACLjO,KAAK4e,MAAM3Q,EAAM,GAAIkoB,KAAKw8B,MAAQ,MACpC,GAMF,CACE/zC,KAAAA,GAAS,EACT6pG,KAAIA,IACK,KAETtb,MAAAA,GAAU,GCxBC,SAASo9Q,GAAcC,EAASC,GAC7C,OAAID,ICHG,8BAA8BxtW,KDGPytW,GENjB,SAAqBD,EAASE,GAC3C,OAAOA,EACHF,EAAQ92W,QAAQ,SAAU,IAAM,IAAMg3W,EAAYh3W,QAAQ,OAAQ,IAClE82W,CACN,CFGWG,CAAYH,EAASC,GAEvBA,CACT,CGfA,MAAMG,GAAmBx1B,GAAUA,aAAiByxB,GAAe,IAAKzxB,GAAUA,EAWnE,SAASy1B,GAAYC,EAASC,GAE3CA,EAAUA,GAAW,CAAC,EACtB,MAAMn5U,EAAS,CAAC,EAEhB,SAASo5U,EAAejgX,EAAQa,EAAQvL,EAAM+/W,GAC5C,OAAIsB,GAAMtqR,cAAcrsF,IAAW22W,GAAMtqR,cAAcxrF,GAC9C81W,GAAMp5Q,MAAMvoG,KAAK,CAACqgX,YAAWr1W,EAAQa,GACnC81W,GAAMtqR,cAAcxrF,GACtB81W,GAAMp5Q,MAAM,CAAC,EAAG18F,GACd81W,GAAMxvW,QAAQtG,GAChBA,EAAO5G,QAET4G,CACT,CAGA,SAASq/W,EAAoB/wW,EAAGC,EAAG9Z,EAAO+/W,GACxC,OAAKsB,GAAM9wQ,YAAYz2F,GAEXunW,GAAM9wQ,YAAY12F,QAAvB,EACE8wW,OAAe/9W,EAAWiN,EAAG7Z,EAAO+/W,GAFpC4K,EAAe9wW,EAAGC,EAAG9Z,EAAO+/W,EAIvC,CAGA,SAAS8K,EAAiBhxW,EAAGC,GAC3B,IAAKunW,GAAM9wQ,YAAYz2F,GACrB,OAAO6wW,OAAe/9W,EAAWkN,EAErC,CAGA,SAASgxW,EAAiBjxW,EAAGC,GAC3B,OAAKunW,GAAM9wQ,YAAYz2F,GAEXunW,GAAM9wQ,YAAY12F,QAAvB,EACE8wW,OAAe/9W,EAAWiN,GAF1B8wW,OAAe/9W,EAAWkN,EAIrC,CAGA,SAASixW,EAAgBlxW,EAAGC,EAAG9Z,GAC7B,OAAIA,KAAQ0qX,EACHC,EAAe9wW,EAAGC,GAChB9Z,KAAQyqX,EACVE,OAAe/9W,EAAWiN,QAD5B,CAGT,CAEA,MAAMmxW,EAAW,CACfnpX,IAAKgpX,EACLj5W,OAAQi5W,EACR3uW,KAAM2uW,EACNV,QAASW,EACTrG,iBAAkBqG,EAClBtF,kBAAmBsF,EACnBG,iBAAkBH,EAClBzzO,QAASyzO,EACTI,eAAgBJ,EAChBK,gBAAiBL,EACjBM,cAAeN,EACftG,QAASsG,EACT/uU,aAAc+uU,EACdlF,eAAgBkF,EAChBjF,eAAgBiF,EAChBO,iBAAkBP,EAClBQ,mBAAoBR,EACpBS,WAAYT,EACZhF,iBAAkBgF,EAClB/E,cAAe+E,EACfU,eAAgBV,EAChBW,UAAWX,EACXY,UAAWZ,EACXa,WAAYb,EACZc,YAAad,EACbe,WAAYf,EACZgB,iBAAkBhB,EAClB9E,eAAgB+E,EAChBrG,QAASA,CAAC7qW,EAAGC,EAAI9Z,IAAS4qX,EAAoBL,GAAgB1wW,GAAI0wW,GAAgBzwW,GAAG9Z,GAAM,IAS7F,OANAqhX,GAAM5gX,QAAQkF,OAAOC,KAAKD,OAAOoD,OAAO,CAAC,EAAG0hX,EAASC,KAAW,SAA4B1qX,GAC1F,MAAMioG,EAAQ+iR,EAAShrX,IAAS4qX,EAC1BmB,EAAc9jR,EAAMwiR,EAAQzqX,GAAO0qX,EAAQ1qX,GAAOA,GACvDqhX,GAAM9wQ,YAAYw7Q,IAAgB9jR,IAAU8iR,IAAqBx5U,EAAOvxC,GAAQ+rX,EACnF,IAEOx6U,CACT,CChGA,SAAgBA,IACd,MAAMs1T,EAAY2jB,GAAY,CAAC,EAAGj5U,GAElC,IAaIozU,GAbA,KAACzoW,EAAI,cAAEkvW,EAAa,eAAEvF,EAAc,eAAED,EAAc,QAAElB,EAAO,KAAEx5N,GAAQ27M,EAe3E,GAbAA,EAAU6d,QAAUA,EAAU8B,GAAal8W,KAAKo6W,GAEhD7d,EAAUhlW,IAAMihX,GAASoH,GAAcrjB,EAAUsjB,QAAStjB,EAAUhlW,KAAM0vC,EAAO+xL,OAAQ/xL,EAAO05U,kBAG5F//N,GACFw5N,EAAQp7W,IAAI,gBAAiB,SAC3B6kL,MAAMjjC,EAAK8gO,UAAY,IAAM,KAAO9gO,EAAK3yF,SAAWk7C,SAASn1D,mBAAmB4sG,EAAK3yF,WAAa,MAMlG8oT,GAAM1B,WAAWzjW,GACnB,GAAI8nW,GAASH,uBAAyBG,GAASF,+BAC7CY,EAAQM,oBAAep4W,QAClB,IAAiD,KAA5C+3W,EAAcD,EAAQE,kBAA6B,CAE7D,MAAOj+W,KAAS0hH,GAAUs8P,EAAcA,EAAY7rW,MAAM,KAAK9L,KAAIs7G,GAASA,EAAM5lG,SAAQ5R,OAAOY,SAAW,GAC5GgzW,EAAQM,eAAe,CAACr+W,GAAQ,yBAA0B0hH,GAAQzjH,KAAK,MACzE,CAOF,GAAIo/W,GAASH,wBACXuH,GAAiB/J,GAAM92V,WAAW6gW,KAAmBA,EAAgBA,EAAcvkB,IAE/EukB,IAAoC,IAAlBA,GAA2Ba,GAAgBplB,EAAUhlW,MAAO,CAEhF,MAAMqqX,EAAYrG,GAAkBD,GAAkBuG,GAAQ/jQ,KAAKw9P,GAE/DsG,GACFxH,EAAQp7W,IAAIu8W,EAAgBqG,EAEhC,CAGF,OAAOrlB,CACR,EC1CD,GAFwD,qBAAnB/qT,gBAEG,SAAUvK,GAChD,OAAO,IAAI5oC,SAAQ,SAA4BM,EAAS6lB,GACtD,MAAMogI,EAAUk9N,GAAc76U,GAC9B,IAAI86U,EAAcn9N,EAAQhzI,KAC1B,MAAMowW,EAAiB9F,GAAal8W,KAAK4kJ,EAAQw1N,SAASvoW,YAC1D,IACIowW,EACAC,EAAiBC,EACjBC,EAAaC,GAHb,aAAC5wU,EAAY,iBAAEsvU,EAAgB,mBAAEC,GAAsBp8N,EAK3D,SAAStqI,IACP8nW,GAAeA,IACfC,GAAiBA,IAEjBz9N,EAAQ08N,aAAe18N,EAAQ08N,YAAYj9L,YAAY49L,GAEvDr9N,EAAQmqN,QAAUnqN,EAAQmqN,OAAO5vT,oBAAoB,QAAS8iU,EAChE,CAEA,IAAI1uJ,EAAU,IAAI/hL,eAOlB,SAASwB,IACP,IAAKugL,EACH,OAGF,MAAM+uJ,EAAkBpG,GAAal8W,KACnC,0BAA2BuzN,GAAWA,EAAQgvJ,yBAahDtE,IAAO,SAAkBhqX,GACvB0K,EAAQ1K,GACRqmB,GACF,IAAG,SAAiBxhB,GAClB0rB,EAAO1rB,GACPwhB,GACF,GAfiB,CACf1I,KAHoB6/B,GAAiC,SAAjBA,GAA4C,SAAjBA,EACxC8hL,EAAQ5hL,SAA/B4hL,EAAQjpB,aAGRx4J,OAAQyhL,EAAQzhL,OAChBopL,WAAY3H,EAAQ2H,WACpBk/I,QAASkI,EACTr7U,SACAssL,YAYFA,EAAU,IACZ,CAlCAA,EAAQ3+M,KAAKgwI,EAAQt9I,OAAOihB,cAAeq8H,EAAQrtJ,KAAK,GAGxDg8N,EAAQxmF,QAAU6X,EAAQ7X,QAiCtB,cAAewmF,EAEjBA,EAAQvgL,UAAYA,EAGpBugL,EAAQivJ,mBAAqB,WACtBjvJ,GAAkC,IAAvBA,EAAQ5oF,aAQD,IAAnB4oF,EAAQzhL,QAAkByhL,EAAQkvJ,aAAwD,IAAzClvJ,EAAQkvJ,YAAY1oX,QAAQ,WAKjFwoB,WAAWywB,EACb,EAIFugL,EAAQmvJ,QAAU,WACXnvJ,IAIL/uM,EAAO,IAAIsyV,GAAW,kBAAmBA,GAAW6L,aAAc17U,EAAQssL,IAG1EA,EAAU,KACZ,EAGAA,EAAQ3hL,QAAU,WAGhBptB,EAAO,IAAIsyV,GAAW,gBAAiBA,GAAW8L,YAAa37U,EAAQssL,IAGvEA,EAAU,IACZ,EAGAA,EAAQvmF,UAAY,WAClB,IAAI61O,EAAsBj+N,EAAQ7X,QAAU,cAAgB6X,EAAQ7X,QAAU,cAAgB,mBAC9F,MAAMitO,EAAep1N,EAAQo1N,cAAgBC,GACzCr1N,EAAQi+N,sBACVA,EAAsBj+N,EAAQi+N,qBAEhCr+V,EAAO,IAAIsyV,GACT+L,EACA7I,EAAad,oBAAsBpC,GAAWgM,UAAYhM,GAAW6L,aACrE17U,EACAssL,IAGFA,EAAU,IACZ,OAGgBjxN,IAAhBy/W,GAA6BC,EAAetH,eAAe,MAGvD,qBAAsBnnJ,GACxBwjJ,GAAM5gX,QAAQ6rX,EAAen0V,UAAU,SAA0B7vB,EAAK7D,GACpEo5N,EAAQwvJ,iBAAiB5oX,EAAK6D,EAChC,IAIG+4W,GAAM9wQ,YAAY2+C,EAAQi8N,mBAC7BttJ,EAAQstJ,kBAAoBj8N,EAAQi8N,iBAIlCpvU,GAAiC,SAAjBA,IAClB8hL,EAAQ9hL,aAAemzG,EAAQnzG,cAI7BuvU,KACAmB,EAAmBE,GAAiBzD,GAAqBoC,GAAoB,GAC/EztJ,EAAQ31N,iBAAiB,WAAYukX,IAInCpB,GAAoBxtJ,EAAQq2G,UAC5Bs4C,EAAiBE,GAAexD,GAAqBmC,GAEvDxtJ,EAAQq2G,OAAOhsU,iBAAiB,WAAYskX,GAE5C3uJ,EAAQq2G,OAAOhsU,iBAAiB,UAAWwkX,KAGzCx9N,EAAQ08N,aAAe18N,EAAQmqN,UAGjCkT,EAAaxmR,IACN83H,IAGL/uM,GAAQi3E,GAAUA,EAAOp/F,KAAO,IAAI0hX,GAAc,KAAM92U,EAAQssL,GAAW93H,GAC3E83H,EAAQq7I,QACRr7I,EAAU,KAAI,EAGhB3uE,EAAQ08N,aAAe18N,EAAQ08N,YAAY/9V,UAAU0+V,GACjDr9N,EAAQmqN,SACVnqN,EAAQmqN,OAAOT,QAAU2T,IAAer9N,EAAQmqN,OAAOnxW,iBAAiB,QAASqkX,KAIrF,MAAMx2O,ECvLK,SAAuBl0I,GACpC,MAAM0W,EAAQ,4BAA4BoB,KAAK9X,GAC/C,OAAO0W,GAASA,EAAM,IAAM,EAC9B,CDoLqB+0W,CAAcp+N,EAAQrtJ,KAEnCk0I,IAAsD,IAA1CiuO,GAASN,UAAUr/W,QAAQ0xI,GACzCjnH,EAAO,IAAIsyV,GAAW,wBAA0BrrO,EAAW,IAAKqrO,GAAWoH,gBAAiBj3U,IAM9FssL,EAAQ1hL,KAAKkwU,GAAe,KAC9B,GACF,EErJA,GA3CuBkB,CAACC,EAASn2O,KAC/B,MAAM,OAACv2I,GAAW0sX,EAAUA,EAAUA,EAAQ18W,OAAOY,SAAW,GAEhE,GAAI2lI,GAAWv2I,EAAQ,CACrB,IAEI83W,EAFAvjI,EAAa,IAAI0jI,gBAIrB,MAAMiU,EAAU,SAAUn+V,GACxB,IAAK+pV,EAAS,CACZA,GAAU,EACVjqL,IACA,MAAMvrL,EAAMyrB,aAAkBxrB,MAAQwrB,EAASlvB,KAAKkvB,OACpDwmN,EAAW6jI,MAAM91W,aAAeg+W,GAAah+W,EAAM,IAAIilX,GAAcjlX,aAAeC,MAAQD,EAAI+rE,QAAU/rE,GAC5G,CACF,EAEA,IAAI2uV,EAAQ16M,GAAWxqH,YAAW,KAChCklU,EAAQ,KACRi7B,EAAQ,IAAI5L,GAAW,WAAW/pO,mBAA0B+pO,GAAWgM,WAAW,GACjF/1O,GAEH,MAAMs3C,EAAcA,KACd6+L,IACFz7B,GAASryR,aAAaqyR,GACtBA,EAAQ,KACRy7B,EAAQ/sX,SAAQ44W,IACdA,EAAO1qL,YAAc0qL,EAAO1qL,YAAYq+L,GAAW3T,EAAO5vT,oBAAoB,QAASujU,EAAQ,IAEjGQ,EAAU,KACZ,EAGFA,EAAQ/sX,SAAS44W,GAAWA,EAAOnxW,iBAAiB,QAAS8kX,KAE7D,MAAM,OAAC3T,GAAUhkI,EAIjB,OAFAgkI,EAAO1qL,YAAc,IAAM0yL,GAAM32V,KAAKikK,GAE/B0qL,CACT,GC3CWoU,GAAc,UAAW7iR,EAAO8iR,GAC3C,IAAItpW,EAAMwmF,EAAMla,WAEhB,IAAKg9R,GAAatpW,EAAMspW,EAEtB,kBADM9iR,GAIR,IACInoF,EADAZ,EAAM,EAGV,KAAOA,EAAMuC,GACX3B,EAAMZ,EAAM6rW,QACN9iR,EAAMjmG,MAAMkd,EAAKY,GACvBZ,EAAMY,CAEV,EAQMkrW,GAAaz4K,gBAAiBhwB,GAClC,GAAIA,EAAO7iL,OAAO41S,eAEhB,kBADO/yH,GAIT,MAAM0oM,EAAS1oM,EAAO2oM,YACtB,IACE,OAAS,CACP,MAAM,KAACjpW,EAAI,MAAErmB,SAAeqvX,EAAOxlQ,OACnC,GAAIxjG,EACF,YAEIrmB,CACR,CACF,CAAE,cACMqvX,EAAO7nR,QACf,CACF,EAEa+nR,GAAcA,CAAC5oM,EAAQwoM,EAAWK,EAAYp+D,KACzD,MAAMrtT,EA3BiB4yM,gBAAiBz4G,EAAUixR,GAClD,UAAW,MAAM9iR,KAAS+iR,GAAWlxR,SAC5BgxR,GAAY7iR,EAAO8iR,EAE9B,CAuBmBM,CAAU9oM,EAAQwoM,GAEnC,IACI9oW,EADAy2F,EAAQ,EAER01M,EAAa5jS,IACVvI,IACHA,GAAO,EACP+qS,GAAYA,EAASxiS,GACvB,EAGF,OAAO,IAAI8gW,eAAe,CACxB,UAAMjrR,CAAKqyI,GACT,IACE,MAAM,KAACzwN,EAAI,MAAErmB,SAAe+D,EAASuR,OAErC,GAAI+Q,EAGF,OAFDmsS,SACC17E,EAAW72N,QAIb,IAAI4F,EAAM7lB,EAAMmyF,WAChB,GAAIq9R,EAAY,CACd,IAAIG,EAAc7yQ,GAASj3F,EAC3B2pW,EAAWG,EACb,CACA74I,EAAW84I,QAAQ,IAAIpvS,WAAWxgF,GACpC,CAAE,MAAO6E,GAEP,MADA2tT,EAAU3tT,GACJA,CACR,CACF,EACA2iG,OAAOl3E,IACLkiS,EAAUliS,GACHvsB,EAAS8nD,WAEjB,CACDgkU,cAAe,GACf,EC3EEC,GAAoC,oBAAV3mP,OAA2C,oBAAZ4mP,SAA8C,oBAAbC,SAC1FC,GAA4BH,IAA8C,oBAAnBJ,eAGvDQ,GAAaJ,KAA4C,oBAAhBK,aACzC9L,GAA0C,IAAI8L,YAAjC/7U,GAAQiwU,GAAQpqK,OAAO7lK,IACtCuiK,SAAe,IAAIn2H,iBAAiB,IAAIwvS,SAAS57U,GAAKooD,gBADtD,IAAE6nR,GAIN,MAAMjmW,GAAO,SAAC5O,GACZ,IAAI,QAAAkiO,EAAA7gO,UAAAtO,OADegpB,EAAI,IAAAtpB,MAAAyvO,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJpmN,EAAIomN,EAAA,GAAA9gO,UAAA8gO,GAErB,QAASniO,KAAM+b,EACjB,CAAE,MAAOqD,KACP,OAAO,CACT,CACF,EAEMwhW,GAAwBH,IAA6B7xW,IAAK,KAC9D,IAAIiyW,GAAiB,EAErB,MAAMC,EAAiB,IAAIP,QAAQtK,GAASjnU,OAAQ,CAClDvxC,KAAM,IAAIyiX,eACVr8W,OAAQ,OACR,UAAIk9W,GAEF,OADAF,GAAiB,EACV,MACT,IACClK,QAAQlyW,IAAI,gBAEf,OAAOo8W,IAAmBC,CAAc,IAKpCE,GAAyBP,IAC7B7xW,IAAK,IAAM0kW,GAAM7C,iBAAiB,IAAI+P,SAAS,IAAI/iX,QAG/CwjX,GAAY,CAChB9pM,OAAQ6pM,IAA0B,CAAExsV,GAAQA,EAAI/2B,OAG7B,IAAE+2B,GAAvB8rV,KAAuB9rV,GAOpB,IAAIgsV,SANL,CAAC,OAAQ,cAAe,OAAQ,WAAY,UAAU9tX,SAAQkG,KAC3DqoX,GAAUroX,KAAUqoX,GAAUroX,GAAQ06W,GAAM92V,WAAWgY,GAAI57B,IAAU47B,GAAQA,EAAI57B,KAChF,CAACmqB,EAAGygB,KACF,MAAM,IAAI6vU,GAAW,kBAAkBz6W,sBAA0By6W,GAAW6N,gBAAiB19U,EAAO,EACpG,KAIR,MA8BM29U,GAAoBh6K,MAAOwvK,EAASl5W,KACxC,MAAM1K,EAASugX,GAAMN,eAAe2D,EAAQyK,oBAE5C,OAAiB,MAAVruX,EAjCao0M,WACpB,GAAY,MAAR1pM,EACF,OAAO,EAGT,GAAG61W,GAAMhD,OAAO7yW,GACd,OAAOA,EAAKwW,KAGd,GAAGq/V,GAAMJ,oBAAoBz1W,GAAO,CAClC,MAAM4jX,EAAW,IAAId,QAAQtK,GAASjnU,OAAQ,CAC5CnrC,OAAQ,OACRpG,SAEF,aAAc4jX,EAASr0R,eAAerK,UACxC,CAEA,OAAG2wR,GAAM/zK,kBAAkB9hM,IAAS61W,GAAMz6R,cAAcp7E,GAC/CA,EAAKklF,YAGX2wR,GAAM9C,kBAAkB/yW,KACzBA,GAAc,IAGb61W,GAAMr6Q,SAASx7F,UACFijX,GAAWjjX,IAAOklF,gBADlC,EAEA,EAMwB2+R,CAAc7jX,GAAQ1K,CAAM,ECxFhDwuX,GAAgB,CACpBC,KCNF,KDOEt4O,IAAKu4O,GACL9nP,MDwFa2mP,IAAoB,OAACn5K,IAClC,IAAI,IACFrzM,EAAG,OACH+P,EAAM,KACNsK,EAAI,OACJm9V,EAAM,YACNuS,EAAW,QACXv0O,EAAO,mBACPi0O,EAAkB,iBAClBD,EAAgB,aAChBtvU,EAAY,QACZ2oU,EAAO,gBACPyG,EAAkB,cAAa,aAC/BsE,GACErD,GAAc76U,GAElBwK,EAAeA,GAAgBA,EAAe,IAAIj5C,cAAgB,OAElE,IAEI+6N,EAFA6xJ,EAAiBnC,GAAe,CAAClU,EAAQuS,GAAeA,EAAY+D,iBAAkBt4O,GAI1F,MAAMs3C,EAAc+gM,GAAkBA,EAAe/gM,aAAe,MAChE+gM,EAAe/gM,aAClB,GAED,IAAIihM,EAEJ,IACE,GACEvE,GAAoBsD,IAAoC,QAAX/8W,GAA+B,SAAXA,GACG,KAAnEg+W,QAA6BV,GAAkBxK,EAASxoW,IACzD,CACA,IAMI2zW,EANAT,EAAW,IAAId,QAAQzsX,EAAK,CAC9B+P,OAAQ,OACRpG,KAAM0Q,EACN4yW,OAAQ,SASV,GAJIzN,GAAM1B,WAAWzjW,KAAU2zW,EAAoBT,EAAS1K,QAAQv3W,IAAI,kBACtEu3W,EAAQM,eAAe6K,GAGrBT,EAAS5jX,KAAM,CACjB,MAAOuiX,EAAYljW,GAAS6+V,GAC1BkG,EACA1G,GAAqBU,GAAeyB,KAGtCnvW,EAAO4xW,GAAYsB,EAAS5jX,KA1GT,MA0GmCuiX,EAAYljW,EACpE,CACF,CAEKw2V,GAAMr6Q,SAASmkR,KAClBA,EAAkBA,EAAkB,UAAY,QAKlD,MAAM2E,EAAyB,gBAAiBxB,QAAQ9uX,UACxDq+N,EAAU,IAAIywJ,QAAQzsX,EAAK,IACtB4tX,EACHpW,OAAQqW,EACR99W,OAAQA,EAAOihB,cACf6xV,QAASA,EAAQvoW,YAAYgc,SAC7B3sB,KAAM0Q,EACN4yW,OAAQ,OACRiB,YAAaD,EAAyB3E,OAAkBv+W,IAG1D,IAAIqvC,QAAiByrF,MAAMm2F,GAE3B,MAAMmyJ,EAAmBjB,KAA4C,WAAjBhzU,GAA8C,aAAjBA,GAEjF,GAAIgzU,KAA2BzD,GAAuB0E,GAAoBrhM,GAAe,CACvF,MAAM9rL,EAAU,CAAC,EAEjB,CAAC,SAAU,aAAc,WAAWpC,SAAQT,IAC1C6C,EAAQ7C,GAAQi8C,EAASj8C,EAAK,IAGhC,MAAMiwX,EAAwB5O,GAAMN,eAAe9kU,EAASyoU,QAAQv3W,IAAI,oBAEjE4gX,EAAYljW,GAASygW,GAAsB5B,GAChDuG,EACA/G,GAAqBU,GAAe0B,IAAqB,KACtD,GAELrvU,EAAW,IAAIsyU,SACbT,GAAY7xU,EAASzwC,KAlJF,MAkJ4BuiX,GAAY,KACzDljW,GAASA,IACT8jK,GAAeA,GAAa,IAE9B9rL,EAEJ,CAEAk5C,EAAeA,GAAgB,OAE/B,IAAIm0U,QAAqBlB,GAAU3N,GAAMjyQ,QAAQ4/Q,GAAWjzU,IAAiB,QAAQE,EAAU1K,GAI/F,OAFCy+U,GAAoBrhM,GAAeA,UAEvB,IAAIhmL,SAAQ,CAACM,EAAS6lB,KACjCy5V,GAAOt/W,EAAS6lB,EAAQ,CACtB5S,KAAMg0W,EACNxL,QAAS8B,GAAal8W,KAAK2xC,EAASyoU,SACpCtoU,OAAQH,EAASG,OACjBopL,WAAYvpL,EAASupL,WACrBj0L,SACAssL,WACA,GAEN,CAAE,MAAOz6N,GAGP,GAFAurL,GAAeA,IAEXvrL,GAAoB,cAAbA,EAAIwK,MAAwB,SAAS+O,KAAKvZ,EAAI+rE,SACvD,MAAMxpE,OAAOoD,OACX,IAAIq4W,GAAW,gBAAiBA,GAAW8L,YAAa37U,EAAQssL,GAChE,CACE6jJ,MAAOt+W,EAAIs+W,OAASt+W,IAK1B,MAAMg+W,GAAW92W,KAAKlH,EAAKA,GAAOA,EAAI+iB,KAAMorB,EAAQssL,EACtD,CACD,ICtNDwjJ,GAAM5gX,QAAQ6uX,IAAe,CAACvhX,EAAIxP,KAChC,GAAIwP,EAAI,CACN,IACEpI,OAAOgN,eAAe5E,EAAI,OAAQ,CAACxP,SACrC,CAAE,MAAO4uB,KACP,CAEFxnB,OAAOgN,eAAe5E,EAAI,cAAe,CAACxP,SAC5C,KAGF,MAAM4xX,GAAgBthW,GAAW,KAAKA,IAEhCuhW,GAAoB5L,GAAYnD,GAAM92V,WAAWi6V,IAAwB,OAAZA,IAAgC,IAAZA,EAEvF,GACe6L,IACXA,EAAWhP,GAAMxvW,QAAQw+W,GAAYA,EAAW,CAACA,GAEjD,MAAM,OAACvvX,GAAUuvX,EACjB,IAAIC,EACA9L,EAEJ,MAAM+L,EAAkB,CAAC,EAEzB,IAAK,IAAI1vX,EAAI,EAAGA,EAAIC,EAAQD,IAAK,CAE/B,IAAIuiB,EAIJ,GALAktW,EAAgBD,EAASxvX,GAGzB2jX,EAAU8L,GAELF,GAAiBE,KACpB9L,EAAU8K,IAAelsW,EAAKxc,OAAO0pX,IAAgBxtX,oBAErC8J,IAAZ43W,GACF,MAAM,IAAIpD,GAAW,oBAAoBh+V,MAI7C,GAAIohW,EACF,MAGF+L,EAAgBntW,GAAM,IAAMviB,GAAK2jX,CACnC,CAEA,IAAKA,EAAS,CAEZ,MAAMgM,EAAU7qX,OAAOoQ,QAAQw6W,GAC5BvjX,KAAI49I,IAAA,IAAExnI,EAAIpZ,GAAM4gJ,EAAA,MAAK,WAAWxnI,OACpB,IAAVpZ,EAAkB,sCAAwC,gCAAgC,IAG/F,IAAIspB,EAAIxyB,EACL0vX,EAAQ1vX,OAAS,EAAI,YAAc0vX,EAAQxjX,IAAImjX,IAAcvrX,KAAK,MAAQ,IAAMurX,GAAaK,EAAQ,IACtG,0BAEF,MAAM,IAAIpP,GACR,wDAA0D9tV,EAC1D,kBAEJ,CAEA,OAAOkxV,CAAO,EE3DlB,SAASiM,GAA6Bl/U,GAKpC,GAJIA,EAAOq6U,aACTr6U,EAAOq6U,YAAY8E,mBAGjBn/U,EAAO8nU,QAAU9nU,EAAO8nU,OAAOT,QACjC,MAAM,IAAIyP,GAAc,KAAM92U,EAElC,CASe,SAASo/U,GAAgBp/U,GACtCk/U,GAA6Bl/U,GAE7BA,EAAOmzU,QAAU8B,GAAal8W,KAAKinC,EAAOmzU,SAG1CnzU,EAAOr1B,KAAOgsW,GAAcxoX,KAC1B6xC,EACAA,EAAOkzU,mBAGgD,IAArD,CAAC,OAAQ,MAAO,SAASpgX,QAAQktC,EAAO3/B,SAC1C2/B,EAAOmzU,QAAQM,eAAe,qCAAqC,GAKrE,OAFgBqL,GAAoB9+U,EAAOizU,SAAW7oV,GAAS6oV,QAExDA,CAAQjzU,GAAQ3xC,MAAK,SAA6Bq8C,GAYvD,OAXAw0U,GAA6Bl/U,GAG7B0K,EAAS//B,KAAOgsW,GAAcxoX,KAC5B6xC,EACAA,EAAOi0U,kBACPvpU,GAGFA,EAASyoU,QAAU8B,GAAal8W,KAAK2xC,EAASyoU,SAEvCzoU,CACT,IAAG,SAA4BptB,GAe7B,OAdKs5V,GAASt5V,KACZ4hW,GAA6Bl/U,GAGzB1iB,GAAUA,EAAOotB,WACnBptB,EAAOotB,SAAS//B,KAAOgsW,GAAcxoX,KACnC6xC,EACAA,EAAOi0U,kBACP32V,EAAOotB,UAETptB,EAAOotB,SAASyoU,QAAU8B,GAAal8W,KAAKukB,EAAOotB,SAASyoU,WAIzD/7W,QAAQmmB,OAAOD,EACxB,GACF,CChFO,MAAMilF,GAAU,QCKjBysM,GAAa,CAAC,EAGpB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAU9/S,SAAQ,CAACkG,EAAM9F,KAC7E0/S,GAAW55S,GAAQ,SAAmBouV,GACpC,cAAcA,IAAUpuV,GAAQ,KAAO9F,EAAI,EAAI,KAAO,KAAO8F,CAC/D,CAAC,IAGH,MAAMiqX,GAAqB,CAAC,EAW5BrwE,GAAW+jE,aAAe,SAAsBtlE,EAAWxmS,EAAS22D,GAClE,SAAS0hT,EAAchxX,EAAKioB,GAC1B,MAAO,uCAAoDjoB,EAAM,IAAOioB,GAAQqnD,EAAU,KAAOA,EAAU,GAC7G,CAGA,MAAO,CAAC5wE,EAAOsB,EAAKkkC,KAClB,IAAkB,IAAdi7Q,EACF,MAAM,IAAIoiE,GACRyP,EAAchxX,EAAK,qBAAuB2Y,EAAU,OAASA,EAAU,KACvE4oW,GAAW0P,gBAef,OAXIt4W,IAAYo4W,GAAmB/wX,KACjC+wX,GAAmB/wX,IAAO,EAE1Bk7B,QAAQqY,KACNy9U,EACEhxX,EACA,+BAAiC2Y,EAAU,8CAK1CwmS,GAAYA,EAAUzgT,EAAOsB,EAAKkkC,EAAY,CAEzD,EAEAw8Q,GAAWwwE,SAAW,SAAkBC,GACtC,MAAO,CAACzyX,EAAOsB,KAEbk7B,QAAQqY,KAAK,GAAGvzC,gCAAkCmxX,MAC3C,EAEX,EAmCA,UACEC,cAxBF,SAAuBpuX,EAAS08S,EAAQ2xE,GACtC,GAAuB,kBAAZruX,EACT,MAAM,IAAIu+W,GAAW,4BAA6BA,GAAW+P,sBAE/D,MAAMvrX,EAAOD,OAAOC,KAAK/C,GACzB,IAAIhC,EAAI+E,EAAK9E,OACb,KAAOD,KAAM,GAAG,CACd,MAAMhB,EAAM+F,EAAK/E,GACXm+S,EAAYO,EAAO1/S,GACzB,GAAIm/S,EAAJ,CACE,MAAMzgT,EAAQsE,EAAQhD,GAChB+Q,OAAmBhE,IAAVrO,GAAuBygT,EAAUzgT,EAAOsB,EAAKgD,GAC5D,IAAe,IAAX+N,EACF,MAAM,IAAIwwW,GAAW,UAAYvhX,EAAM,YAAc+Q,EAAQwwW,GAAW+P,qBAG5E,MACA,IAAqB,IAAjBD,EACF,MAAM,IAAI9P,GAAW,kBAAoBvhX,EAAKuhX,GAAWgQ,eAE7D,CACF,EAIE7wE,WAAUA,ICtFNA,GAAavB,GAAUuB,WAS7B,MAAM8wE,GACJ9uX,WAAAA,CAAY+uX,GACV3xX,KAAKg8B,SAAW21V,EAChB3xX,KAAK4xX,aAAe,CAClB1zJ,QAAS,IAAI2zJ,GACbv1U,SAAU,IAAIu1U,GAElB,CAUA,aAAM3zJ,CAAQ4zJ,EAAalgV,GACzB,IACE,aAAa5xC,KAAKyvX,SAASqC,EAAalgV,EAC1C,CAAE,MAAOnuC,GACP,GAAIA,aAAeC,MAAO,CACxB,IAAImX,EAAQ,CAAC,EAEbnX,MAAM+6K,kBAAoB/6K,MAAM+6K,kBAAkB5jK,GAAUA,EAAQ,IAAInX,MAGxE,MAAM4G,EAAQuQ,EAAMvQ,MAAQuQ,EAAMvQ,MAAMoJ,QAAQ,QAAS,IAAM,GAC/D,IACOjQ,EAAI6G,MAGEA,IAAUrD,OAAOxD,EAAI6G,OAAOglG,SAAShlG,EAAMoJ,QAAQ,YAAa,OACzEjQ,EAAI6G,OAAS,KAAOA,GAHpB7G,EAAI6G,MAAQA,CAKhB,CAAE,MAAOkjB,KACP,CAEJ,CAEA,MAAM/pB,CACR,CACF,CAEAgsX,QAAAA,CAASqC,EAAalgV,GAGO,kBAAhBkgV,GACTlgV,EAASA,GAAU,CAAC,GACb1vC,IAAM4vX,EAEblgV,EAASkgV,GAAe,CAAC,EAG3BlgV,EAASi5U,GAAY7qX,KAAKg8B,SAAU4V,GAEpC,MAAM,aAAC+yU,EAAY,iBAAE2G,EAAgB,QAAEvG,GAAWnzU,OAE7B3kC,IAAjB03W,GACFtlE,GAAUiyE,cAAc3M,EAAc,CACpChB,kBAAmB/iE,GAAW+jE,aAAa/jE,GAAWxE,SACtDwnE,kBAAmBhjE,GAAW+jE,aAAa/jE,GAAWxE,SACtDynE,oBAAqBjjE,GAAW+jE,aAAa/jE,GAAWxE,WACvD,GAGmB,MAApBkvE,IACE5J,GAAM92V,WAAW0gW,GACnB15U,EAAO05U,iBAAmB,CACxB35F,UAAW25F,GAGbjsE,GAAUiyE,cAAchG,EAAkB,CACxCzyK,OAAQ+nG,GAAWmxE,SACnBpgG,UAAWivB,GAAWmxE,WACrB,IAIP1yE,GAAUiyE,cAAc1/U,EAAQ,CAC9BogV,QAASpxE,GAAWwwE,SAAS,WAC7Ba,cAAerxE,GAAWwwE,SAAS,mBAClC,GAGHx/U,EAAO3/B,QAAU2/B,EAAO3/B,QAAUjS,KAAKg8B,SAAS/pB,QAAU,OAAO9O,cAGjE,IAAI+uX,EAAiBnN,GAAWrD,GAAMp5Q,MACpCy8Q,EAAQuB,OACRvB,EAAQnzU,EAAO3/B,SAGjB8yW,GAAWrD,GAAM5gX,QACf,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WACjDmR,WACQ8yW,EAAQ9yW,EAAO,IAI1B2/B,EAAOmzU,QAAU8B,GAAariX,OAAO0tX,EAAgBnN,GAGrD,MAAMoN,EAA0B,GAChC,IAAIC,GAAiC,EACrCpyX,KAAK4xX,aAAa1zJ,QAAQp9N,SAAQ,SAAoCujG,GACjC,oBAAxBA,EAAYo/Q,UAA0D,IAAhCp/Q,EAAYo/Q,QAAQ7xU,KAIrEwgV,EAAiCA,GAAkC/tR,EAAYm/Q,YAE/E2O,EAAwBhzT,QAAQklC,EAAYsU,UAAWtU,EAAYuU,UACrE,IAEA,MAAMy5Q,EAA2B,GAKjC,IAAIxoX,EAJJ7J,KAAK4xX,aAAat1U,SAASx7C,SAAQ,SAAkCujG,GACnEguR,EAAyBxwX,KAAKwiG,EAAYsU,UAAWtU,EAAYuU,SACnE,IAGA,IACIn0F,EADAvjB,EAAI,EAGR,IAAKkxX,EAAgC,CACnC,MAAMhuR,EAAQ,CAAC4sR,GAAgBzjX,KAAKvN,WAAOiN,GAO3C,IANAm3F,EAAMjlC,QAAQ9kD,MAAM+pF,EAAO+tR,GAC3B/tR,EAAMviG,KAAKwY,MAAM+pF,EAAOiuR,GACxB5tW,EAAM2/E,EAAMjjG,OAEZ0I,EAAUb,QAAQM,QAAQsoC,GAEnB1wC,EAAIujB,GACT5a,EAAUA,EAAQ5J,KAAKmkG,EAAMljG,KAAMkjG,EAAMljG,MAG3C,OAAO2I,CACT,CAEA4a,EAAM0tW,EAAwBhxX,OAE9B,IAAI+lW,EAAYt1T,EAIhB,IAFA1wC,EAAI,EAEGA,EAAIujB,GAAK,CACd,MAAM9W,EAAcwkX,EAAwBjxX,KACtC0M,EAAaukX,EAAwBjxX,KAC3C,IACEgmW,EAAYv5V,EAAYu5V,EAC1B,CAAE,MAAOr8V,GACP+C,EAAW7N,KAAKC,KAAM6K,GACtB,KACF,CACF,CAEA,IACEhB,EAAUmnX,GAAgBjxX,KAAKC,KAAMknW,EACvC,CAAE,MAAOr8V,GACP,OAAO7B,QAAQmmB,OAAOtkB,EACxB,CAKA,IAHA3J,EAAI,EACJujB,EAAM4tW,EAAyBlxX,OAExBD,EAAIujB,GACT5a,EAAUA,EAAQ5J,KAAKoyX,EAAyBnxX,KAAMmxX,EAAyBnxX,MAGjF,OAAO2I,CACT,CAEAyoX,MAAAA,CAAO1gV,GAGL,OAAOuxU,GADUoH,IADjB34U,EAASi5U,GAAY7qX,KAAKg8B,SAAU4V,IACE44U,QAAS54U,EAAO1vC,KAC5B0vC,EAAO+xL,OAAQ/xL,EAAO05U,iBAClD,EAIF5J,GAAM5gX,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6BmR,GAE/Ey/W,GAAM7xX,UAAUoS,GAAU,SAAS/P,EAAK0vC,GACtC,OAAO5xC,KAAKk+N,QAAQ2sJ,GAAYj5U,GAAU,CAAC,EAAG,CAC5C3/B,SACA/P,MACAqa,MAAOq1B,GAAU,CAAC,GAAGr1B,OAEzB,CACF,IAEAmlW,GAAM5gX,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BmR,GAGrE,SAASsgX,EAAmBC,GAC1B,OAAO,SAAoBtwX,EAAKqa,EAAMq1B,GACpC,OAAO5xC,KAAKk+N,QAAQ2sJ,GAAYj5U,GAAU,CAAC,EAAG,CAC5C3/B,SACA8yW,QAASyN,EAAS,CAChB,eAAgB,uBACd,CAAC,EACLtwX,MACAqa,SAEJ,CACF,CAEAm1W,GAAM7xX,UAAUoS,GAAUsgX,IAE1Bb,GAAM7xX,UAAUoS,EAAS,QAAUsgX,GAAmB,EACxD,IAEA,YC7NA,MAAME,GACJ7vX,WAAAA,CAAY8vX,GACV,GAAwB,oBAAbA,EACT,MAAM,IAAI9jX,UAAU,gCAGtB,IAAIm5V,EAEJ/nW,KAAK6J,QAAU,IAAIb,SAAQ,SAAyBM,GAClDy+V,EAAiBz+V,CACnB,IAEA,MAAMq/G,EAAQ3oH,KAGdA,KAAK6J,QAAQ5J,MAAKmmG,IAChB,IAAKuiB,EAAMgqQ,WAAY,OAEvB,IAAIzxX,EAAIynH,EAAMgqQ,WAAWxxX,OAEzB,KAAOD,KAAM,GACXynH,EAAMgqQ,WAAWzxX,GAAGklG,GAEtBuiB,EAAMgqQ,WAAa,IAAI,IAIzB3yX,KAAK6J,QAAQ5J,KAAO2yX,IAClB,IAAIC,EAEJ,MAAMhpX,EAAU,IAAIb,SAAQM,IAC1Bq/G,EAAMz6F,UAAU5kB,GAChBupX,EAAWvpX,CAAO,IACjBrJ,KAAK2yX,GAMR,OAJA/oX,EAAQu8F,OAAS,WACfuiB,EAAMqmE,YAAY6jM,EACpB,EAEOhpX,CAAO,EAGhB6oX,GAAS,SAAgBljT,EAAS59B,EAAQssL,GACpCv1G,EAAMz5F,SAKVy5F,EAAMz5F,OAAS,IAAIw5V,GAAcl5S,EAAS59B,EAAQssL,GAClD6pI,EAAep/O,EAAMz5F,QACvB,GACF,CAKA6hW,gBAAAA,GACE,GAAI/wX,KAAKkvB,OACP,MAAMlvB,KAAKkvB,MAEf,CAMAhB,SAAAA,CAAU+vC,GACJj+D,KAAKkvB,OACP+uC,EAASj+D,KAAKkvB,QAIZlvB,KAAK2yX,WACP3yX,KAAK2yX,WAAW9wX,KAAKo8D,GAErBj+D,KAAK2yX,WAAa,CAAC10T,EAEvB,CAMA+wH,WAAAA,CAAY/wH,GACV,IAAKj+D,KAAK2yX,WACR,OAEF,MAAMziX,EAAQlQ,KAAK2yX,WAAWjuX,QAAQu5D,IACvB,IAAX/tD,GACFlQ,KAAK2yX,WAAWxiV,OAAOjgC,EAAO,EAElC,CAEA8/W,aAAAA,GACE,MAAMt6I,EAAa,IAAI0jI,gBAEjBG,EAAS91W,IACbiyO,EAAW6jI,MAAM91W,EAAI,EAOvB,OAJAzD,KAAKkuB,UAAUqrV,GAEf7jI,EAAWgkI,OAAO1qL,YAAc,IAAMhvL,KAAKgvL,YAAYuqL,GAEhD7jI,EAAWgkI,MACpB,CAMA,aAAO9tW,GACL,IAAIw6F,EAIJ,MAAO,CACLuiB,MAJY,IAAI8pQ,IAAY,SAAkBr4W,GAC9CgsF,EAAShsF,CACX,IAGEgsF,SAEJ,EAGF,YCtIA,MAAM0sR,GAAiB,CACrBC,SAAU,IACVC,mBAAoB,IACpBC,WAAY,IACZC,WAAY,IACZ75S,GAAI,IACJ85S,QAAS,IACTC,SAAU,IACVC,4BAA6B,IAC7BC,UAAW,IACXC,aAAc,IACdC,eAAgB,IAChBC,YAAa,IACbC,gBAAiB,IACjBC,OAAQ,IACRC,gBAAiB,IACjBC,iBAAkB,IAClBC,MAAO,IACPC,SAAU,IACVC,YAAa,IACbC,SAAU,IACVC,OAAQ,IACRC,kBAAmB,IACnBC,kBAAmB,IACnBC,WAAY,IACZC,aAAc,IACdC,gBAAiB,IACjBC,UAAW,IACXC,SAAU,IACVC,iBAAkB,IAClBC,cAAe,IACfC,4BAA6B,IAC7BC,eAAgB,IAChBC,SAAU,IACVC,KAAM,IACNC,eAAgB,IAChBC,mBAAoB,IACpBC,gBAAiB,IACjBC,WAAY,IACZC,qBAAsB,IACtBC,oBAAqB,IACrBC,kBAAmB,IACnBC,UAAW,IACXC,mBAAoB,IACpBC,oBAAqB,IACrBC,OAAQ,IACRC,iBAAkB,IAClBC,SAAU,IACVC,gBAAiB,IACjBC,qBAAsB,IACtBC,gBAAiB,IACjBC,4BAA6B,IAC7BC,2BAA4B,IAC5BC,oBAAqB,IACrBC,eAAgB,IAChBC,WAAY,IACZC,mBAAoB,IACpBC,eAAgB,IAChBC,wBAAyB,IACzBC,sBAAuB,IACvBC,oBAAqB,IACrBC,aAAc,IACdC,YAAa,IACbC,8BAA+B,KAGjC5wX,OAAOoQ,QAAQ08W,IAAgBhyX,SAAQmqJ,IAAkB,IAAhBnmJ,EAAKlG,GAAMqsJ,EAClD6nO,GAAel0X,GAASkG,CAAG,IAG7B,YCxBA,MAAM+xX,GAnBN,SAASC,EAAeh1F,GACtB,MAAM37N,EAAU,IAAIurT,GAAM5vF,GACpB9jO,EAAWzwD,GAAKmkX,GAAM7xX,UAAUq+N,QAAS/3J,GAa/C,OAVAu7S,GAAM/oV,OAAOqlC,EAAU0zT,GAAM7xX,UAAWsmE,EAAS,CAAC84S,YAAY,IAG9DyC,GAAM/oV,OAAOqlC,EAAUmI,EAAS,KAAM,CAAC84S,YAAY,IAGnDjhT,EAASp0D,OAAS,SAAgB+nX,GAChC,OAAOmF,EAAejM,GAAY/oF,EAAe6vF,GACnD,EAEO3zT,CACT,CAGc84T,CAAe96V,IAG7B66V,GAAMnF,MAAQA,GAGdmF,GAAMnO,cAAgBA,GACtBmO,GAAMpE,YAAcA,GACpBoE,GAAMrO,SAAWA,GACjBqO,GAAM1iR,QAAUA,GAChB0iR,GAAM7T,WAAaA,GAGnB6T,GAAMpV,WAAaA,GAGnBoV,GAAME,OAASF,GAAMnO,cAGrBmO,GAAM9xX,IAAM,SAAau4N,GACvB,OAAOt0N,QAAQjE,IAAIu4N,EACrB,EAEAu5J,GAAMlpR,OC9CS,SAAgB3iF,GAC7B,OAAO,SAAcqhI,GACnB,OAAOrhI,EAAS3Q,MAAM,KAAMgyI,EAC9B,CACF,ED6CAwqO,GAAMG,aE7DS,SAAsB1vT,GACnC,OAAOo6S,GAAM5yW,SAASw4D,KAAsC,IAAzBA,EAAQ0vT,YAC7C,EF8DAH,GAAMhM,YAAcA,GAEpBgM,GAAMhQ,aAAeA,GAErBgQ,GAAMI,WAAa7hC,GAASgwB,GAAe1D,GAAMrC,WAAWjqB,GAAS,IAAI6qB,SAAS7qB,GAASA,GAE3FyhC,GAAMK,WAAaxG,GAEnBmG,GAAM/D,eAAiBA,GAEvB+D,GAAMj3X,QAAUi3X,GAGhB,YGvFA,IAAiBM,WADoB,qBAAXC,QAA0BA,OAAOD,YAAcC,OAAOD,WAAW5pX,KAAK6pX,SCAhG,IAAIC,GACJ,MAAMC,GAAQ,IAAIl4S,WAAW,ICA7B,MAAMm4S,GAAY,GAClB,IAAK,IAAIr2X,EAAI,EAAGA,EAAI,MAAOA,EACvBq2X,GAAU11X,MAAMX,EAAI,KAAO8M,SAAS,IAAIhJ,MAAM,IAE3C,SAASwyX,GAAgBnrO,GAAiB,IAAZvxF,EAAMrrD,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,EAC1C,OAAQ8nX,GAAUlrO,EAAIvxF,EAAS,IAC3By8T,GAAUlrO,EAAIvxF,EAAS,IACvBy8T,GAAUlrO,EAAIvxF,EAAS,IACvBy8T,GAAUlrO,EAAIvxF,EAAS,IACvB,IACAy8T,GAAUlrO,EAAIvxF,EAAS,IACvBy8T,GAAUlrO,EAAIvxF,EAAS,IACvB,IACAy8T,GAAUlrO,EAAIvxF,EAAS,IACvBy8T,GAAUlrO,EAAIvxF,EAAS,IACvB,IACAy8T,GAAUlrO,EAAIvxF,EAAS,IACvBy8T,GAAUlrO,EAAIvxF,EAAS,IACvB,IACAy8T,GAAUlrO,EAAIvxF,EAAS,KACvBy8T,GAAUlrO,EAAIvxF,EAAS,KACvBy8T,GAAUlrO,EAAIvxF,EAAS,KACvBy8T,GAAUlrO,EAAIvxF,EAAS,KACvBy8T,GAAUlrO,EAAIvxF,EAAS,KACvBy8T,GAAUlrO,EAAIvxF,EAAS,MAAM33D,aACrC,CCAA,SAvBA,SAAYD,EAAS27K,EAAK/jH,GACtB,GAAI7yC,GAAOkvW,aAAet4M,IAAQ37K,EAC9B,OAAO+kB,GAAOkvW,aAGlB,MAAMM,GADNv0X,EAAUA,GAAW,CAAC,GACDygB,QAAUzgB,EAAQw0X,SFN5B,WACX,IAAKL,GAAiB,CAClB,GAAsB,qBAAXD,SAA2BA,OAAOC,gBACzC,MAAM,IAAI3zX,MAAM,4GAEpB2zX,GAAkBD,OAAOC,gBAAgB9pX,KAAK6pX,OAClD,CACA,OAAOC,GAAgBC,GAC3B,CEFsDI,GAClD,GAAID,EAAKt2X,OAAS,GACd,MAAM,IAAIuC,MAAM,qCAIpB,GAFA+zX,EAAK,GAAgB,GAAVA,EAAK,GAAa,GAC7BA,EAAK,GAAgB,GAAVA,EAAK,GAAa,IACzB54M,EAAK,CAEL,IADA/jH,EAASA,GAAU,GACN,GAAKA,EAAS,GAAK+jH,EAAI19K,OAChC,MAAM,IAAIw2X,WAAW,mBAAmB78T,KAAUA,EAAS,8BAE/D,IAAK,IAAI55D,EAAI,EAAGA,EAAI,KAAMA,EACtB29K,EAAI/jH,EAAS55D,GAAKu2X,EAAKv2X,GAE3B,OAAO29K,CACX,CACA,OAAO24M,GAAgBC,EAC3B,ECpBMG,GAA2BA,KAC/B,MAAMC,EAAYC,aAAahiR,QAAQ,QACvC,OAAO+hR,EAAYtuX,KAAKC,MAAMquX,GAAa,EAAE,EAGzCE,GAA0BC,IAC9BF,aAAajiR,QAAQ,OAAQtsG,KAAKE,UAAUuuX,GAAM,EAI9Ctc,GAAe,CACnBsc,KAAMJ,KACNK,WAAYL,KAA2B34V,QAAO,CAACiM,EAAOgH,IAAShH,EAAQgH,EAAKgmV,UAAU,GACtFC,OAAQL,aAAahiR,QAAQ,WAAasiR,KAC1CpmP,SAAS,EACTnnI,MAAO,MAIIwtX,GAAY5f,GACvB,kBACAljK,MAAOrjK,EAAI+4G,KAA2B,IAAzB,gBAAE4uN,GAAiB5uN,EAC9B,IACE,IAAIktO,EAASL,aAAahiR,QAAQ,UAC7BqiR,IACHA,EAASC,KACTN,aAAajiR,QAAQ,SAAUsiR,IAGjC,MAAMG,EAAW,CACfH,SACAI,UAAWrmV,EAAKsmV,UAChBC,MAAOvmV,EAAKumV,MACZP,SAAUhmV,EAAKgmV,UAGX57U,QAAiBu6U,GAAMrzM,KAAK,kDAAmD80M,GACrF,MAAO,IAAKA,KAAah8U,EAAS//B,KACpC,CAAE,MAAO1R,GACP,OAAOgvW,EAAgBhvW,EAAMyxC,SAAWzxC,EAAMyxC,SAAS//B,KAAO1R,EAAM2kE,QACtE,KAISkpT,GAAcjgB,GACzB,oBACAljK,MAAO4iL,EAAMz7M,KAA2B,IAAzB,gBAAEm9L,GAAiBn9L,EAChC,IAEE,aADuBm6M,GAAMrpX,IAAI,oDAAoD2qX,MACrE57W,IAClB,CAAE,MAAO1R,GACP,OAAOgvW,EAAgBhvW,EAAM2kE,QAC/B,KAISmpT,GAAiBlgB,GAC5B,uBACAljK,MAAA6qD,EAAAx0B,KAAiE,IAA1D,OAAEusJ,EAAM,UAAEI,EAAS,SAAEL,GAAU93H,GAAE,gBAAEy5G,GAAiBjuI,EACzD,IAIE,aAHuBirJ,GAAMrzM,KAC3B,mDAAmD20M,KAAUI,KAAaL,MAE5D37W,IAClB,CAAE,MAAO1R,GACP,OAAOgvW,EAAgBhvW,EAAMyxC,SAAWzxC,EAAMyxC,SAAS//B,KAAO1R,EAAM2kE,QACtE,KAISopT,GAAiBngB,GAC5B,uBACAljK,MAAA02B,EAAAQ,KAAuD,IAAhD,OAAE0rJ,EAAM,UAAEI,GAAWtsJ,GAAE,gBAAE4tI,GAAiBptI,EAC/C,IAEE,aADMoqJ,GAAMrzM,KAAK,mDAAmD20M,KAAUI,KACvE,CAAEJ,SAAQI,YACnB,CAAE,MAAO1tX,GACP,OAAOgvW,EAAgBhvW,EAAM2kE,QAC/B,KAKEqpT,GAAYxa,GAAY,CAC5BpwW,KAAM,OACNytW,aAAY,GACZpN,SAAU,CACRwqB,QAASA,CAACzuX,EAAO8/D,KACf,MAAM4uT,EAAY1uX,EAAM2tX,KAAKzmX,WAAW2gC,GAASA,EAAKqmV,YAAcpuT,EAAO7C,QAAQixT,YAC/EQ,GAAa,EAEf1uX,EAAM2tX,KAAKe,GAAWb,UAAY/tT,EAAO7C,QAAQ4wT,SAGjD7tX,EAAM2tX,KAAKn2X,KAAK,IAAKsoE,EAAO7C,QAAS4wT,SAAU/tT,EAAO7C,QAAQ4wT,UAAY,IAI5E7tX,EAAM4tX,WAAa5tX,EAAM2tX,KAAK/4V,QAAO,CAACiM,EAAOgH,IAAShH,EAAQgH,EAAKgmV,UAAU,GAC7EH,GAAuB1tX,EAAM2tX,MAExBF,aAAahiR,QAAQ,WACxBgiR,aAAajiR,QAAQ,SAAUuiR,KACjC,EAEFY,eAAgBA,CAAC3uX,EAAO8/D,KACtB,MAAM4uT,EAAY1uX,EAAM2tX,KAAKzmX,WAAW2gC,GAASA,EAAKqmV,YAAcpuT,EAAO7C,QAAQixT,YAE/EQ,GAAa,IAEf1uX,EAAM4tX,YAAc5tX,EAAM2tX,KAAKe,GAAWb,SAG1C7tX,EAAM2tX,KAAK7nV,OAAO4oV,EAAW,GAC7BhB,GAAuB1tX,EAAM2tX,MAGH,IAAtB3tX,EAAM2tX,KAAK72X,SACbi6B,QAAQyxB,IAAI,6DACZirU,aAAa/hR,WAAW,UACxB+hR,aAAa/hR,WAAW,SAE5B,EAEFkjR,UAAY5uX,IACVA,EAAM2tX,KAAO,GACb3tX,EAAM4tX,WAAa,EACnB78V,QAAQyxB,IAAI,uDACZirU,aAAa/hR,WAAW,UACxB+hR,aAAa/hR,WAAW,OAAO,EAGjCmjR,aAAcA,CAAC7uX,EAAO8/D,KACpB9/D,EAAM2tX,KAAO7tT,EAAO7C,QACpBj9D,EAAM4tX,WAAa9tT,EAAO7C,QAAQroC,QAAO,CAACiM,EAAOgH,IAAShH,EAAQgH,EAAKgmV,UAAU,GACjFH,GAAuB1tX,EAAM2tX,KAAK,GAGtCxc,cAAgB7D,IACdA,EACGC,QAAQygB,GAAUrxT,SAAU38D,IAC3BA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQygB,GAAU1/Q,WAAW,CAACtuG,EAAO8/D,KACpC9/D,EAAM2nI,SAAU,EAChB,MAAMmnP,EAAoB9uX,EAAM2tX,KAAKzmX,WAAU2gC,GAAQA,EAAKqmV,YAAcpuT,EAAO7C,QAAQixT,YACrFY,GAAqB,EACvB9uX,EAAM2tX,KAAKmB,GAAmBjB,UAAY/tT,EAAO7C,QAAQ4wT,SAEzD7tX,EAAM2tX,KAAKn2X,KAAKsoE,EAAO7C,SAEzBj9D,EAAM4tX,WAAa5tX,EAAM2tX,KAAK/4V,QAAO,CAACiM,EAAOgH,IAAShH,EAAQgH,EAAKgmV,UAAU,GAC7EH,GAAuB1tX,EAAM2tX,KAAK,IAEnCpgB,QAAQygB,GAAUz/Q,UAAU,CAACvuG,EAAO8/D,KACnC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAO7C,SAAW6C,EAAOt/D,MAAM2kE,OAAO,IAErDooS,QAAQ8gB,GAAY1xT,SAAU38D,IAC7BA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQ8gB,GAAY//Q,WAAW,CAACtuG,EAAO8/D,KACtC9/D,EAAM2tX,KAAO7tT,EAAO7C,QACpBj9D,EAAM4tX,WAAa9tT,EAAO7C,QAAQroC,QAAO,CAACiM,EAAOgH,IAAShH,EAAQgH,EAAKgmV,UAAU,GACjF7tX,EAAM2nI,SAAU,EAChB+lP,GAAuB1tX,EAAM2tX,KAAK,IAEnCpgB,QAAQ8gB,GAAY9/Q,UAAU,CAACvuG,EAAO8/D,KACrC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAEnCooS,QAAQ+gB,GAAe3xT,SAAU38D,IAChCA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQ+gB,GAAehgR,WAAW,CAACtuG,EAAO8/D,KACzC,MAAM,UAAEouT,EAAS,SAAEL,GAAa/tT,EAAO7C,QACjCyxT,EAAY1uX,EAAM2tX,KAAKzmX,WAAU2gC,GAAQA,EAAKqmV,YAAcA,KAE/C,IAAfQ,IACF1uX,EAAM2tX,KAAKe,GAAWb,SAAWA,GAInC7tX,EAAM4tX,WAAa5tX,EAAM2tX,KAAK/4V,QAAO,CAACiM,EAAOgH,IAAShH,EAAQgH,EAAKgmV,UAAU,GAC7EH,GAAuB1tX,EAAM2tX,KAAK,IAEnCpgB,QAAQ+gB,GAAe//Q,UAAU,CAACvuG,EAAO8/D,KACxC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAEnCooS,QAAQghB,GAAe5xT,SAAU38D,IAChCA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQghB,GAAejgR,WAAW,CAACtuG,EAAO8/D,KACzC9/D,EAAM2nI,SAAU,EAEhB3nI,EAAM2tX,KAAO3tX,EAAM2tX,KAAK7mX,QAAO+gC,GAAQA,EAAKqmV,YAAcpuT,EAAO7C,QAAQixT,YACzEluX,EAAM4tX,WAAa5tX,EAAM2tX,KAAK/4V,QAAO,CAACiM,EAAOgH,IAAShH,EAAQgH,EAAKgmV,UAAU,GAC7EH,GAAuB1tX,EAAM2tX,KAAK,IAEnCpgB,QAAQghB,GAAehgR,UAAU,CAACvuG,EAAO8/D,KACxC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,GAClC,KAKOypT,UAAS,GAAEH,QAAO,GAAEE,eAAc,GAAEE,aAAa,IAAIL,GAAUp+R,QAC9E,GAAeo+R,GAAiB,QCnN1BO,GAAergX,iCAGRsgX,GAAiB5gB,GAC5B,4BACAljK,MAAO+jL,EAAYruO,KAA2B,IAAzB,gBAAE4uN,GAAiB5uN,EACtC,IAEE,aADuB4rO,GAAMrzM,KAAK,GAAG41M,yBAAoCE,IACzD/8W,IAClB,CAAE,MAAO1R,GAAQ,IAAD0uX,EACd,OAAO1f,GAA8B,QAAd0f,EAAA1uX,EAAMyxC,gBAAQ,IAAAi9U,OAAA,EAAdA,EAAgBh9W,OAAQ,6BACjD,KAKSi9W,GAAiB/gB,GAC5B,4BACAljK,MAAOpkL,EAACurJ,KAA2B,IAAzB,gBAAEm9L,GAAiBn9L,EAC3B,IAEE,aADuBm6M,GAAMrpX,IAAI,GAAG4rX,0BACpB78W,IAClB,CAAE,MAAO1R,GAAQ,IAAD4uX,EACd,OAAO5f,GAA8B,QAAd4f,EAAA5uX,EAAMyxC,gBAAQ,IAAAm9U,OAAA,EAAdA,EAAgBl9W,OAAQ,6BACjD,KAKSm9W,GAAgBjhB,GAC3B,2BACAljK,MAAA6qD,EAAAx0B,KAAuE,IAAhE,cAAE+tJ,EAAa,SAAE/gU,GAAUwnM,GAAE,SAAE71L,EAAQ,gBAAEsvS,GAAiBjuI,EAC/D,IACE,MAEMguJ,SAF6BrvT,EAASivT,MAAkBxf,UAEhB1oW,MAC3CuoX,GACCA,EAASF,gBAAkBA,GAAiBE,EAASjhU,WAAaA,IAGtE,OAAIghU,GAEF9B,aAAajiR,QAAQ,WAAYtsG,KAAKE,UAAUmwX,IACzCA,GAEA/f,EAAgB,mDAE3B,CAAE,MAAOhvW,GACP,OAAOgvW,EAAgBhvW,EAAM2kE,SAAW,6BAC1C,KAcEsqT,GAAgBzb,GAAY,CAChCpwW,KAAM,WACNytW,aAXmB,CACnBqe,gBAAiBxwX,KAAKC,MAAMsuX,aAAahiR,QAAQ,cAAgB,KACjEkkR,uBAAwB,KACxBC,aAAc,GACdjoP,SAAS,EACTnnI,MAAO,MAOPyjW,SAAU,CACR4rB,eAAiB7vX,IACfA,EAAM0vX,gBAAkB,KACxB1vX,EAAM2vX,uBAAyB,KAC/BlC,aAAa/hR,WAAW,WAAW,EAGrCokR,eAAiB9vX,IACfA,EAAM4vX,aAAe,EAAE,EAEzBG,YAAaA,CAAC/vX,EAAO8/D,KACnB9/D,EAAMgwX,iBAAmBlwT,EAAO7C,OAAO,EAEzCgzT,sBAAwBjwX,IACtBA,EAAMgwX,iBAAmB,IAAI,GAGjC7e,cAAgB7D,IACdA,EACGC,QAAQyhB,GAAeryT,SAAU38D,IAChCA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQyhB,GAAe1gR,WAAW,CAACtuG,EAAO8/D,KAGzC,GAFA9/D,EAAM2nI,SAAU,EAEZ7nE,EAAO7C,SAA2C,MAAhC6C,EAAO7C,QAAQizT,aAAsB,CACzD,MAAMC,EAAc,IACfrwT,EAAOhiB,KAAKhsC,OACZguD,EAAO7C,SAEZj9D,EAAM0vX,gBAAkBS,EACxB1C,aAAajiR,QAAQ,WAAYtsG,KAAKE,UAAU+wX,GAClD,MACEnwX,EAAMQ,MAAQ,4BAChB,IAED+sW,QAAQyhB,GAAezgR,UAAU,CAACvuG,EAAO8/D,KAAY,IAADswT,EACnDpwX,EAAM2nI,SAAU,EAChB3nI,EAAMQ,OAAoB,QAAZ4vX,EAAAtwT,EAAOt/D,aAAK,IAAA4vX,OAAA,EAAZA,EAAcjrT,UAAW,4BAA4B,IAEpEooS,QAAQ4hB,GAAexyT,SAAU38D,IAChCA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQ4hB,GAAe7gR,WAAW,CAACtuG,EAAO8/D,KACzC9/D,EAAM2nI,SAAU,EAChB3nI,EAAM4vX,aAAe9vT,EAAO7C,OAAO,IAEpCswS,QAAQ4hB,GAAe5gR,UAAU,CAACvuG,EAAO8/D,KAAY,IAADuwT,EACnDrwX,EAAM2nI,SAAU,EAChB3nI,EAAMQ,OAAoB,QAAZ6vX,EAAAvwT,EAAOt/D,aAAK,IAAA6vX,OAAA,EAAZA,EAAclrT,UAAW,4BAA4B,IAEpEooS,QAAQ8hB,GAAc1yT,SAAU38D,IAC/BA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQ8hB,GAAc/gR,WAAW,CAACtuG,EAAO8/D,KACxC9/D,EAAM2nI,SAAU,EAChB3nI,EAAM0vX,gBAAkB5vT,EAAO7C,QAC/Bj9D,EAAM2vX,uBAAyB7vT,EAAO7C,OAAO,IAE9CswS,QAAQ8hB,GAAc9gR,UAAU,CAACvuG,EAAO8/D,KACvC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAO7C,SAAW,eAAe,GAC/C,KAMO4yT,eAAc,GAAEC,eAAc,GAAEC,YAAW,GAAEE,sBAAsB,IAAIR,GAAcr/R,QAGpG,GAAeq/R,GAAqB,+GC1IhCa,GACM,iBADNA,GAEM,iBAFNA,GAGO,kBAGPC,GAAY,CACZ/kK,KAAM,OACNglK,KAAM,OACNC,KAAM,OACNC,KAAM,OACNC,KAAM,OACNp1I,KAAM,OACNq1I,SAAU,WACV58W,OAAQ,SACR68W,MAAO,QACPC,MAAO,SAOPC,IAJkBp1X,OAAOC,KAAK20X,IAAWvtX,KAAI,SAAUY,GACvD,OAAO2sX,GAAU3sX,EACrB,IAGa,WADTmtX,GAEU,UAFVA,GAGM,OAHNA,GAIW,aAJXA,GAKY,YALZA,GAMW,WANXA,GAOM,OAPNA,GAQU,WARVA,GASK,MATLA,GAUK,MAVLA,GAWQ,SAGRC,GAAgB,CAChBC,UAAW,YACX7tL,QAAS,UACT44E,MAAO,YACPk1G,gBAAiB,kBACjBC,YAAa,cACb,aAAc,YACdC,SAAU,WACVC,SAAU,YAGVC,GACe,eADfA,GAEO,QAFPA,GAG2B,0BAH3BA,GAIwB,sBAJxBA,GAKgB,gBAGhBC,GAAe51X,OAAOC,KAAKo1X,IAAep8V,QAAO,SAAUx8B,EAAKqC,GAEhE,OADArC,EAAI44X,GAAcv2X,IAAQA,EACnBrC,CACX,GAAG,CAAC,GAEAo5X,GAAoB,CAACjB,GAAUK,SAAUL,GAAUv8W,OAAQu8W,GAAUM,OAErEY,GAAmB,oBAEnBt5X,GAA4B,oBAAXE,QAAoD,kBAApBA,OAAOC,SAAwB,SAAUF,GAC5F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAyB,oBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAO7C,UAAY,gBAAkB4C,CAC3H,EAQIs5X,GAAc,WAChB,SAAS/9W,EAAiBjT,EAAQ8sC,GAChC,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CACrC,IAAIuY,EAAao+B,EAAM32C,GACvBuY,EAAWnF,WAAamF,EAAWnF,aAAc,EACjDmF,EAAWrK,cAAe,EACtB,UAAWqK,IAAYA,EAAWlF,UAAW,GACjDvO,OAAOgN,eAAejI,EAAQ0O,EAAW3U,IAAK2U,EAChD,CACF,CAEA,OAAO,SAAUgM,EAAau2W,EAAYC,GAGxC,OAFID,GAAYh+W,EAAiByH,EAAY5lB,UAAWm8X,GACpDC,GAAaj+W,EAAiByH,EAAaw2W,GACxCx2W,CACT,CACF,CAhBkB,GAkBdw5M,GAAWj5N,OAAOoD,QAAU,SAAU2B,GACxC,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CACzC,IAAI0K,EAAS6D,UAAUvO,GAEvB,IAAK,IAAI4D,KAAO8G,EACV5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAC/CiG,EAAOjG,GAAO8G,EAAO9G,GAG3B,CAEA,OAAOiG,CACT,EAkBImxX,GAA0B,SAAUz5X,EAAKwD,GAC3C,IAAI8E,EAAS,CAAC,EAEd,IAAK,IAAI7J,KAAKuB,EACRwD,EAAKvB,QAAQxD,IAAM,GAClB8E,OAAOnG,UAAUyD,eAAevD,KAAK0C,EAAKvB,KAC/C6J,EAAO7J,GAAKuB,EAAIvB,IAGlB,OAAO6J,CACT,EAUIoxX,GAA0B,SAAiCnpV,GAG3D,OAAe,OAFFvjC,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,KAAmBA,UAAU,IAGjExI,OAAO+rC,GAGX/rC,OAAO+rC,GAAKt/B,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,UAAUA,QAAQ,KAAM,SAChI,EAEI0oX,GAAwB,SAA+BC,GACvD,IAAIC,EAAiBC,GAAqBF,EAAWzB,GAAUO,OAC3DqB,EAAoBD,GAAqBF,EAAWV,IAExD,GAAIa,GAAqBF,EAErB,OAAOE,EAAkB9oX,QAAQ,OAAO,WACpC,OAAO7S,MAAMqR,QAAQoqX,GAAkBA,EAAer3X,KAAK,IAAMq3X,CACrE,IAGJ,IAAIG,EAAwBF,GAAqBF,EAAWV,IAE5D,OAAOW,GAAkBG,QAAyBxvX,CACtD,EAEIyvX,GAAyB,SAAgCL,GACzD,OAAOE,GAAqBF,EAAWV,KAAwC,WAAa,CAChG,EAEIgB,GAA6B,SAAoCC,EAASP,GAC1E,OAAOA,EAAUlrX,QAAO,SAAU0mC,GAC9B,MAAiC,qBAAnBA,EAAM+kV,EACxB,IAAGvvX,KAAI,SAAUwqC,GACb,OAAOA,EAAM+kV,EACjB,IAAG39V,QAAO,SAAU49V,EAAU52V,GAC1B,OAAOg5L,GAAS,CAAC,EAAG49J,EAAU52V,EAClC,GAAG,CAAC,EACR,EAEI62V,GAA0B,SAAiCC,EAAmBV,GAC9E,OAAOA,EAAUlrX,QAAO,SAAU0mC,GAC9B,MAAwC,qBAA1BA,EAAM+iV,GAAU/kK,KAClC,IAAGxoN,KAAI,SAAUwqC,GACb,OAAOA,EAAM+iV,GAAU/kK,KAC3B,IAAGzpI,UAAUntD,QAAO,SAAU+9V,EAAkBtqX,GAC5C,IAAKsqX,EAAiB77X,OAGlB,IAFA,IAAI8E,EAAOD,OAAOC,KAAKyM,GAEdxR,EAAI,EAAGA,EAAI+E,EAAK9E,OAAQD,IAAK,CAClC,IACI+7X,EADeh3X,EAAK/E,GACiBiC,cAEzC,IAA0D,IAAtD45X,EAAkBr4X,QAAQu4X,IAAiCvqX,EAAIuqX,GAC/D,OAAOD,EAAiBx4X,OAAOkO,EAEvC,CAGJ,OAAOsqX,CACX,GAAG,GACP,EAEIE,GAAuB,SAA8B71X,EAAS01X,EAAmBV,GAEjF,IAAIc,EAAmB,CAAC,EAExB,OAAOd,EAAUlrX,QAAO,SAAU0mC,GAC9B,QAAIh3C,MAAMqR,QAAQ2lC,EAAMxwC,MAGM,qBAAnBwwC,EAAMxwC,IACbosC,GAAK,WAAapsC,EAAU,mDAAwD7E,GAAQq1C,EAAMxwC,IAAY,MAE3G,EACX,IAAGgG,KAAI,SAAUwqC,GACb,OAAOA,EAAMxwC,EACjB,IAAG+kF,UAAUntD,QAAO,SAAUm+V,EAAcC,GACxC,IAAIC,EAAmB,CAAC,EAExBD,EAAalsX,QAAO,SAAUuB,GAG1B,IAFA,IAAI6qX,OAAsB,EACtBt3X,EAAOD,OAAOC,KAAKyM,GACdxR,EAAI,EAAGA,EAAI+E,EAAK9E,OAAQD,IAAK,CAClC,IAAIs8X,EAAev3X,EAAK/E,GACpB+7X,EAAwBO,EAAar6X,eAGiB,IAAtD45X,EAAkBr4X,QAAQu4X,IAAmCM,IAAwBnC,IAAiE,cAA3C1oX,EAAI6qX,GAAqBp6X,eAAoC85X,IAA0B7B,IAAmE,eAA7C1oX,EAAIuqX,GAAuB95X,gBACnPo6X,EAAsBN,IAGuB,IAA7CF,EAAkBr4X,QAAQ84X,IAAyBA,IAAiBpC,IAA6BoC,IAAiBpC,IAA2BoC,IAAiBpC,KAC9JmC,EAAsBC,EAE9B,CAEA,IAAKD,IAAwB7qX,EAAI6qX,GAC7B,OAAO,EAGX,IAAI3+X,EAAQ8T,EAAI6qX,GAAqBp6X,cAUrC,OARKg6X,EAAiBI,KAClBJ,EAAiBI,GAAuB,CAAC,GAGxCD,EAAiBC,KAClBD,EAAiBC,GAAuB,CAAC,IAGxCJ,EAAiBI,GAAqB3+X,KACvC0+X,EAAiBC,GAAqB3+X,IAAS,GACxC,EAIf,IAAGwtF,UAAUtrF,SAAQ,SAAU4R,GAC3B,OAAO0qX,EAAav7X,KAAK6Q,EAC7B,IAIA,IADA,IAAIzM,EAAOD,OAAOC,KAAKq3X,GACdp8X,EAAI,EAAGA,EAAI+E,EAAK9E,OAAQD,IAAK,CAClC,IAAIs8X,EAAev3X,EAAK/E,GACpBu8X,EAAWC,KAAa,CAAC,EAAGP,EAAiBK,GAAeF,EAAiBE,IAEjFL,EAAiBK,GAAgBC,CACrC,CAEA,OAAOL,CACX,GAAG,IAAIhxS,SACX,EAEImwS,GAAuB,SAA8BF,EAAWpmS,GAChE,IAAK,IAAI/0F,EAAIm7X,EAAUl7X,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC5C,IAAI22C,EAAQwkV,EAAUn7X,GAEtB,GAAI22C,EAAMv0C,eAAe2yF,GACrB,OAAOp+C,EAAMo+C,EAErB,CAEA,OAAO,IACX,EAoBI0nS,GAAc,WACd,IAAIC,EAAQznW,KAAKw8B,MAEjB,OAAO,SAAU3nC,GACb,IAAI6yW,EAAc1nW,KAAKw8B,MAEnBkrU,EAAcD,EAAQ,IACtBA,EAAQC,EACR7yW,EAAS6yW,IAET3wW,YAAW,WACPywW,GAAY3yW,EAChB,GAAG,EAEX,CACJ,CAfkB,GAiBd8yW,GAAc,SAAqBr6W,GACnC,OAAOs8C,aAAat8C,EACxB,EAEIguN,GAA0C,qBAAXlsO,OAAyBA,OAAOksO,uBAAyBlsO,OAAOksO,sBAAsBlkO,KAAKhI,SAAWA,OAAOw4X,6BAA+Bx4X,OAAOy4X,0BAA4BL,GAAcjnX,EAAAA,EAAO+6N,uBAAyBksJ,GAE5P7iJ,GAAyC,qBAAXv1O,OAAyBA,OAAOu1O,sBAAwBv1O,OAAO04X,4BAA8B14X,OAAO24X,yBAA2BJ,GAAcpnX,EAAAA,EAAOokO,sBAAwBgjJ,GAE1MrqV,GAAO,SAAcnlC,GACrB,OAAO8sB,SAAmC,oBAAjBA,QAAQqY,MAAuBrY,QAAQqY,KAAKnlC,EACzE,EAEI6vX,GAAkB,KAmBlBC,GAAmB,SAA0B/wJ,EAAU5pL,GACvD,IAAI46U,EAAUhxJ,EAASgxJ,QACnBC,EAAiBjxJ,EAASixJ,eAC1BC,EAAiBlxJ,EAASkxJ,eAC1BC,EAAWnxJ,EAASmxJ,SACpBC,EAAWpxJ,EAASoxJ,SACpBC,EAAerxJ,EAASqxJ,aACxBC,EAAsBtxJ,EAASsxJ,oBAC/BC,EAAavxJ,EAASuxJ,WACtBC,EAAYxxJ,EAASwxJ,UACrB9yV,EAAQshM,EAASthM,MACjB+yV,EAAkBzxJ,EAASyxJ,gBAE/BC,GAAiBnE,GAAUC,KAAMyD,GACjCS,GAAiBnE,GAAUG,KAAMwD,GAEjCS,GAAYjzV,EAAO+yV,GAEnB,IAAIG,EAAa,CACbZ,QAASa,GAAWtE,GAAU/kK,KAAMwoK,GACpCG,SAAUU,GAAWtE,GAAUI,KAAMwD,GACrCC,SAAUS,GAAWtE,GAAUh1I,KAAM64I,GACrCC,aAAcQ,GAAWtE,GAAUK,SAAUyD,GAC7CE,WAAYM,GAAWtE,GAAUv8W,OAAQugX,GACzCC,UAAWK,GAAWtE,GAAUM,MAAO2D,IAGvCM,EAAY,CAAC,EACbC,EAAc,CAAC,EAEnBp5X,OAAOC,KAAKg5X,GAAYn+X,SAAQ,SAAU87X,GACtC,IAAIyC,EAAsBJ,EAAWrC,GACjC0C,EAAUD,EAAoBC,QAC9BC,EAAUF,EAAoBE,QAG9BD,EAAQn+X,SACRg+X,EAAUvC,GAAW0C,GAErBC,EAAQp+X,SACRi+X,EAAYxC,GAAWqC,EAAWrC,GAAS2C,QAEnD,IAEA97U,GAAMA,IAENk7U,EAAoBtxJ,EAAU8xJ,EAAWC,EAC7C,EAEII,GAAe,SAAsBC,GACrC,OAAO5+X,MAAMqR,QAAQutX,GAAiBA,EAAcx6X,KAAK,IAAMw6X,CACnE,EAEIT,GAAc,SAAqBjzV,EAAOknM,GACrB,qBAAVlnM,GAAyBzkC,SAASykC,QAAUA,IACnDzkC,SAASykC,MAAQyzV,GAAazzV,IAGlCgzV,GAAiBnE,GAAUO,MAAOloJ,EACtC,EAEI8rJ,GAAmB,SAA0B13X,EAAS4rO,GACtD,IAAIysJ,EAAap4X,SAASI,qBAAqBL,GAAS,GAExD,GAAKq4X,EAAL,CASA,IALA,IAAIC,EAAwBD,EAAW78P,aAAai5P,IAChD8D,EAAmBD,EAAwBA,EAAsBxmX,MAAM,KAAO,GAC9E0mX,EAAqB,GAAGr7X,OAAOo7X,GAC/BE,EAAgB95X,OAAOC,KAAKgtO,GAEvB/xO,EAAI,EAAGA,EAAI4+X,EAAc3+X,OAAQD,IAAK,CAC3C,IAAIqS,EAAYusX,EAAc5+X,GAC1BtC,EAAQq0O,EAAW1/N,IAAc,GAEjCmsX,EAAW78P,aAAatvH,KAAe3U,GACvC8gY,EAAWv/U,aAAa5sC,EAAW3U,IAGM,IAAzCghY,EAAiBl7X,QAAQ6O,IACzBqsX,EAAiB/9X,KAAK0R,GAG1B,IAAIwsX,EAAcF,EAAmBn7X,QAAQ6O,IACxB,IAAjBwsX,GACAF,EAAmB1vV,OAAO4vV,EAAa,EAE/C,CAEA,IAAK,IAAI5kW,EAAK0kW,EAAmB1+X,OAAS,EAAGg6B,GAAM,EAAGA,IAClDukW,EAAWx/U,gBAAgB2/U,EAAmB1kW,IAG9CykW,EAAiBz+X,SAAW0+X,EAAmB1+X,OAC/Cu+X,EAAWx/U,gBAAgB47U,IACpB4D,EAAW78P,aAAai5P,MAAsBgE,EAAc76X,KAAK,MACxEy6X,EAAWv/U,aAAa27U,GAAkBgE,EAAc76X,KAAK,KAhCjE,CAkCJ,EAEIi6X,GAAa,SAAoBl4X,EAAMgkJ,GACvC,IAAIg1O,EAAc14X,SAASm1B,MAAQn1B,SAASw+B,cAAc80V,GAAUE,MAChEmF,EAAWD,EAAYz/X,iBAAiByG,EAAO,IAAM80X,GAAmB,KACxEyD,EAAU1+X,MAAMhB,UAAUmF,MAAMjF,KAAKkgY,GACrCX,EAAU,GACVY,OAAgB,EA4CpB,OA1CIl1O,GAAQA,EAAK7pJ,QACb6pJ,EAAKlqJ,SAAQ,SAAU4R,GACnB,IAAIytX,EAAa74X,SAASf,cAAcS,GAExC,IAAK,IAAIuM,KAAab,EAClB,GAAIA,EAAIpP,eAAeiQ,GACnB,GAAIA,IAAc6nX,GACd+E,EAAW34X,UAAYkL,EAAIlL,eACxB,GAAI+L,IAAc6nX,GACjB+E,EAAWC,WACXD,EAAWC,WAAW9tP,QAAU5/H,EAAI4/H,QAEpC6tP,EAAW/3X,YAAYd,SAASS,eAAe2K,EAAI4/H,cAEpD,CACH,IAAI1zI,EAAkC,qBAAnB8T,EAAIa,GAA6B,GAAKb,EAAIa,GAC7D4sX,EAAWhgV,aAAa5sC,EAAW3U,EACvC,CAIRuhY,EAAWhgV,aAAa27U,GAAkB,QAGtCyD,EAAQnuX,MAAK,SAAUivX,EAAanwX,GAEpC,OADAgwX,EAAgBhwX,EACTiwX,EAAWG,YAAYD,EAClC,IACId,EAAQpvV,OAAO+vV,EAAe,GAE9BZ,EAAQz9X,KAAKs+X,EAErB,IAGJZ,EAAQz+X,SAAQ,SAAU4R,GACtB,OAAOA,EAAIjM,WAAWkB,YAAY+K,EACtC,IACA4sX,EAAQx+X,SAAQ,SAAU4R,GACtB,OAAOstX,EAAY53X,YAAYsK,EACnC,IAEO,CACH6sX,QAASA,EACTD,QAASA,EAEjB,EAEIiB,GAAoC,SAA2CttJ,GAC/E,OAAOjtO,OAAOC,KAAKgtO,GAAYh0M,QAAO,SAAU+T,EAAKluC,GACjD,IAAImvI,EAAkC,qBAApBg/F,EAAWnuO,GAAuBA,EAAM,KAAQmuO,EAAWnuO,GAAO,IAAO,GAAKA,EAChG,OAAOkuC,EAAMA,EAAM,IAAMihG,EAAOA,CACpC,GAAG,GACP,EAyBIusP,GAAuC,SAA8CvtJ,GACrF,IAAIwtJ,EAAYhxX,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAErF,OAAOzJ,OAAOC,KAAKgtO,GAAYh0M,QAAO,SAAUx8B,EAAKqC,GAEjD,OADArC,EAAI44X,GAAcv2X,IAAQA,GAAOmuO,EAAWnuO,GACrCrC,CACX,GAAGg+X,EACP,EA8CIC,GAAmB,SAA0B15X,EAAMgkJ,EAAM6tD,GACzD,OAAQ7xM,GACJ,KAAK4zX,GAAUO,MACX,MAAO,CACHwF,YAAa,WACT,OAxCgB,SAAuC35X,EAAM+kC,EAAOknM,GACpF,IAAI2tJ,EAGAH,IAAaG,EAAa,CAC1B97X,IAAKinC,IACK+vV,KAAoB,EAAM8E,GACpC/oV,EAAQ2oV,GAAqCvtJ,EAAYwtJ,GAE7D,MAAO,CAAC5sK,EAAAA,cAAoB+mK,GAAUO,MAAOtjV,EAAO9L,GACxD,CA8B2B80V,CAA8B75X,EAAMgkJ,EAAKj/G,MAAOi/G,EAAK8zO,gBAChE,EACA9wX,SAAU,WACN,OApFQ,SAA+BhH,EAAM+kC,EAAOknM,EAAYp6B,GAChF,IAAIioL,EAAkBP,GAAkCttJ,GACpD8tJ,EAAiBvB,GAAazzV,GAClC,OAAO+0V,EAAkB,IAAM95X,EAAO,IAAM80X,GAAmB,WAAegF,EAAkB,IAAM3E,GAAwB4E,EAAgBloL,GAAU,KAAO7xM,EAAO,IAAM,IAAMA,EAAO,IAAM80X,GAAmB,WAAeK,GAAwB4E,EAAgBloL,GAAU,KAAO7xM,EAAO,GACrS,CAgF2Bg6X,CAAsBh6X,EAAMgkJ,EAAKj/G,MAAOi/G,EAAK8zO,gBAAiBjmL,EACzE,GAER,KAAK8hL,GACL,KAAKA,GACD,MAAO,CACHgG,YAAa,WACT,OAAOH,GAAqCx1O,EAChD,EACAh9I,SAAU,WACN,OAAOuyX,GAAkCv1O,EAC7C,GAER,QACI,MAAO,CACH21O,YAAa,WACT,OA/Ce,SAAsC35X,EAAMgkJ,GAC3E,OAAOA,EAAK39I,KAAI,SAAUqF,EAAKxR,GAC3B,IAAI+/X,EAEAC,IAAaD,EAAa,CAC1Bn8X,IAAK5D,IACK46X,KAAoB,EAAMmF,GAaxC,OAXAj7X,OAAOC,KAAKyM,GAAK5R,SAAQ,SAAUyS,GAC/B,IAAI4tX,EAAkB9F,GAAc9nX,IAAcA,EAElD,GAAI4tX,IAAoB/F,IAA6B+F,IAAoB/F,GAAyB,CAC9F,IAAI38W,EAAU/L,EAAIlL,WAAakL,EAAI4/H,QACnC4uP,EAAUh9U,wBAA0B,CAAE0b,OAAQnhD,EAClD,MACIyiX,EAAUC,GAAmBzuX,EAAIa,EAEzC,IAEOsgN,EAAAA,cAAoB7sN,EAAMk6X,EACrC,GACJ,CA0B2BE,CAA6Bp6X,EAAMgkJ,EAC9C,EACAh9I,SAAU,WACN,OAjGO,SAA8BhH,EAAMgkJ,EAAM6tD,GACjE,OAAO7tD,EAAK/rH,QAAO,SAAU+T,EAAKtgC,GAC9B,IAAI2uX,EAAgBr7X,OAAOC,KAAKyM,GAAKvB,QAAO,SAAUoC,GAClD,QAASA,IAAc6nX,IAA6B7nX,IAAc6nX,GACtE,IAAGn8V,QAAO,SAAU3rB,EAAQC,GACxB,IAAI0gI,EAAiC,qBAAnBvhI,EAAIa,GAA6BA,EAAYA,EAAY,KAAQ4oX,GAAwBzpX,EAAIa,GAAYslM,GAAU,IACrI,OAAOvlM,EAASA,EAAS,IAAM2gI,EAAOA,CAC1C,GAAG,IAECqtP,EAAa5uX,EAAIlL,WAAakL,EAAI4/H,SAAW,GAE7CivP,GAAqD,IAArC1F,GAAkBn3X,QAAQsC,GAE9C,OAAOgsC,EAAM,IAAMhsC,EAAO,IAAM80X,GAAmB,WAAeuF,GAAiBE,EAAgB,KAAO,IAAMD,EAAa,KAAOt6X,EAAO,IAC/I,GAAG,GACP,CAkF2Bw6X,CAAqBx6X,EAAMgkJ,EAAM6tD,EAC5C,GAGhB,EAEIqb,GAAmB,SAA0BjpE,GAC7C,IAAIozO,EAAUpzO,EAAKozO,QACfC,EAAiBrzO,EAAKqzO,eACtBzlL,EAAS5tD,EAAK4tD,OACd0lL,EAAiBtzO,EAAKszO,eACtBC,EAAWvzO,EAAKuzO,SAChBC,EAAWxzO,EAAKwzO,SAChBC,EAAezzO,EAAKyzO,aACpBE,EAAa3zO,EAAK2zO,WAClBC,EAAY5zO,EAAK4zO,UACjB4C,EAAax2O,EAAKl/G,MAClBA,OAAuB9+B,IAAfw0X,EAA2B,GAAKA,EACxC3C,EAAkB7zO,EAAK6zO,gBAC3B,MAAO,CACHh3U,KAAM44U,GAAiB9F,GAAU/kK,KAAMwoK,EAASxlL,GAChDylL,eAAgBoC,GAAiB/F,GAAsB2D,EAAgBzlL,GACvE0lL,eAAgBmC,GAAiB/F,GAAsB4D,EAAgB1lL,GACvE93M,KAAM2/X,GAAiB9F,GAAUI,KAAMwD,EAAU3lL,GACjD1wJ,KAAMu4U,GAAiB9F,GAAUh1I,KAAM64I,EAAU5lL,GACjD18B,SAAUukN,GAAiB9F,GAAUK,SAAUyD,EAAc7lL,GAC7DptD,OAAQi1O,GAAiB9F,GAAUv8W,OAAQugX,EAAY/lL,GACvDvzM,MAAOo7X,GAAiB9F,GAAUM,MAAO2D,EAAWhmL,GACpD9sK,MAAO20V,GAAiB9F,GAAUO,MAAO,CAAEpvV,MAAOA,EAAO+yV,gBAAiBA,GAAmBjmL,GAErG,EA0PI6oL,GAxPS,SAAgBnrR,GACzB,IAAIorR,EAAQtzJ,EAEZ,OAAOA,EAAQszJ,EAAS,SAAU9qJ,GAG9B,SAAS+qJ,IAEL,OAjlBS,SAAU5jU,EAAUv4C,GACvC,KAAMu4C,aAAoBv4C,GACxB,MAAM,IAAI7W,UAAU,oCAExB,CA4kBYizX,CAAe7hY,KAAM4hY,GA9gBD,SAAU7iY,EAAMgB,GAC9C,IAAKhB,EACH,MAAM,IAAI43O,eAAe,6DAG3B,OAAO52O,GAAyB,kBAATA,GAAqC,oBAATA,EAA8BhB,EAAPgB,CAC5E,CAygBmB+hY,CAA0B9hY,KAAM62O,EAAiBx8N,MAAMra,KAAMyP,WACxE,CA6LA,OAzuBO,SAAU+kN,EAAUC,GACjC,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7lN,UAAU,kEAAoE6lN,GAG1FD,EAAS30N,UAAYmG,OAAO4D,OAAO6qN,GAAcA,EAAW50N,UAAW,CACrE+C,YAAa,CACXhE,MAAO41N,EACPlgN,YAAY,EACZC,UAAU,EACVnF,cAAc,KAGdqlN,IAAYzuN,OAAO4O,eAAiB5O,OAAO4O,eAAe4/M,EAAUC,GAAcD,EAASzqN,UAAY0qN,EAC7G,CAyhBQ6rJ,CAASshB,EAAe/qJ,GAOxB+qJ,EAAc/hY,UAAU4uE,sBAAwB,SAA+BszT,GAC3E,OAAQ3xR,KAAQpwG,KAAK63C,MAAOkqV,EAChC,EAEAH,EAAc/hY,UAAUmiY,yBAA2B,SAAkC/5X,EAAOg6X,GACxF,IAAKA,EACD,OAAO,KAGX,OAAQh6X,EAAMjB,MACV,KAAK4zX,GAAUv8W,OACf,KAAKu8W,GAAUK,SACX,MAAO,CACHzzX,UAAWy6X,GAGnB,KAAKrH,GAAUM,MACX,MAAO,CACH5oP,QAAS2vP,GAIrB,MAAM,IAAIv+X,MAAM,IAAMuE,EAAMjB,KAAO,qGACvC,EAEA46X,EAAc/hY,UAAUqiY,yBAA2B,SAAkCj3O,GACjF,IAAIk3O,EAEAl6X,EAAQgjJ,EAAKhjJ,MACbm6X,EAAoBn3O,EAAKm3O,kBACzBC,EAAgBp3O,EAAKo3O,cACrBJ,EAAiBh3O,EAAKg3O,eAE1B,OAAOhjK,GAAS,CAAC,EAAGmjK,IAAoBD,EAAwB,CAAC,GAAyBl6X,EAAMjB,MAAQ,GAAGxC,OAAO49X,EAAkBn6X,EAAMjB,OAAS,GAAI,CAACi4N,GAAS,CAAC,EAAGojK,EAAeriY,KAAKgiY,yBAAyB/5X,EAAOg6X,MAAoBE,GACjP,EAEAP,EAAc/hY,UAAUyiY,sBAAwB,SAA+B5lN,GAC3E,IAAI6lN,EAAwBC,EAExBv6X,EAAQy0K,EAAMz0K,MACdsqV,EAAW71K,EAAM61K,SACjB8vC,EAAgB3lN,EAAM2lN,cACtBJ,EAAiBvlN,EAAMulN,eAE3B,OAAQh6X,EAAMjB,MACV,KAAK4zX,GAAUO,MACX,OAAOl8J,GAAS,CAAC,EAAGszH,IAAWgwC,EAAyB,CAAC,GAA0Bt6X,EAAMjB,MAAQi7X,EAAgBM,EAAuBzD,gBAAkB7/J,GAAS,CAAC,EAAGojK,GAAgBE,IAE3L,KAAK3H,GAAUC,KACX,OAAO57J,GAAS,CAAC,EAAGszH,EAAU,CAC1B+rC,eAAgBr/J,GAAS,CAAC,EAAGojK,KAGrC,KAAKzH,GAAUG,KACX,OAAO97J,GAAS,CAAC,EAAGszH,EAAU,CAC1BgsC,eAAgBt/J,GAAS,CAAC,EAAGojK,KAIzC,OAAOpjK,GAAS,CAAC,EAAGszH,IAAWiwC,EAAyB,CAAC,GAA0Bv6X,EAAMjB,MAAQi4N,GAAS,CAAC,EAAGojK,GAAgBG,GAClI,EAEAZ,EAAc/hY,UAAU4iY,4BAA8B,SAAqCL,EAAmB7vC,GAC1G,IAAImwC,EAAoBzjK,GAAS,CAAC,EAAGszH,GAQrC,OANAvsV,OAAOC,KAAKm8X,GAAmBthY,SAAQ,SAAU6hY,GAC7C,IAAIC,EAEJF,EAAoBzjK,GAAS,CAAC,EAAGyjK,IAAoBE,EAAyB,CAAC,GAA0BD,GAAkBP,EAAkBO,GAAiBC,GAClK,IAEOF,CACX,EAEAd,EAAc/hY,UAAUgjY,sBAAwB,SAA+B56X,EAAOg6X,GAmBlF,OAAO,CACX,EAEAL,EAAc/hY,UAAUijY,mBAAqB,SAA4B3+U,EAAUouS,GAC/E,IAAIvyF,EAAShgQ,KAEToiY,EAAoB,CAAC,EAyCzB,OAvCAvuK,EAAAA,SAAe/yN,QAAQqjD,GAAU,SAAUl8C,GACvC,GAAKA,GAAUA,EAAM4vC,MAArB,CAIA,IAAIq4M,EAAejoP,EAAM4vC,MACrBoqV,EAAiB/xI,EAAa/rM,SAG9Bk+U,EAhOoB,SAA2CxqV,GAC/E,IAAIkrV,EAAiBtzX,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE1F,OAAOzJ,OAAOC,KAAK4xC,GAAO5Y,QAAO,SAAUx8B,EAAKqC,GAE5C,OADArC,EAAIm5X,GAAa92X,IAAQA,GAAO+yC,EAAM/yC,GAC/BrC,CACX,GAAGsgY,EACP,CAyNoCC,CAFH9G,GAAwBhsI,EAAc,CAAC,cAMxD,OAFA8P,EAAO6iI,sBAAsB56X,EAAOg6X,GAE5Bh6X,EAAMjB,MACV,KAAK4zX,GAAUI,KACf,KAAKJ,GAAUh1I,KACf,KAAKg1I,GAAUK,SACf,KAAKL,GAAUv8W,OACf,KAAKu8W,GAAUM,MACXkH,EAAoBpiI,EAAOkiI,yBAAyB,CAChDj6X,MAAOA,EACPm6X,kBAAmBA,EACnBC,cAAeA,EACfJ,eAAgBA,IAEpB,MAEJ,QACI1vC,EAAWvyF,EAAOsiI,sBAAsB,CACpCr6X,MAAOA,EACPsqV,SAAUA,EACV8vC,cAAeA,EACfJ,eAAgBA,IA7B5B,CAiCJ,IAEA1vC,EAAWvyV,KAAKyiY,4BAA4BL,EAAmB7vC,EAEnE,EAEAqvC,EAAc/hY,UAAUkiD,OAAS,WAC7B,IAAIgqL,EAAS/rO,KAAK63C,MACdsM,EAAW4nL,EAAO5nL,SAClBtM,EAAQqkV,GAAwBnwJ,EAAQ,CAAC,aAEzCwmH,EAAWtzH,GAAS,CAAC,EAAGpnL,GAM5B,OAJIsM,IACAouS,EAAWvyV,KAAK8iY,mBAAmB3+U,EAAUouS,IAG1C1+H,EAAAA,cAAoBt9G,EAAWg8O,EAC1C,EAEAwpC,GAAY6F,EAAe,KAAM,CAAC,CAC9B98X,IAAK,YAyBL6E,IAAK,SAAgBoqN,GACjBx9G,EAAUw9G,UAAYA,CAC1B,KAEG6tK,CACX,CApMwB,CAoMtB/tK,EAAAA,WAAkB8tK,EAAOsB,UAAY,CACnCn7U,KAAMrN,KAAAA,OACN6jV,eAAgB7jV,KAAAA,OAChB0J,SAAU1J,KAAAA,UAAoB,CAACA,KAAAA,QAAkBA,KAAAA,MAAiBA,KAAAA,OAClEyoV,aAAczoV,KAAAA,OACd4rD,MAAO5rD,KAAAA,KACP0hV,wBAAyB1hV,KAAAA,KACzB8jV,eAAgB9jV,KAAAA,OAChB15C,KAAM05C,KAAAA,QAAkBA,KAAAA,QACxB0N,KAAM1N,KAAAA,QAAkBA,KAAAA,QACxB0hI,SAAU1hI,KAAAA,QAAkBA,KAAAA,QAC5BkkV,oBAAqBlkV,KAAAA,KACrBgxG,OAAQhxG,KAAAA,QAAkBA,KAAAA,QAC1Bn1C,MAAOm1C,KAAAA,QAAkBA,KAAAA,QACzB1O,MAAO0O,KAAAA,OACPqkV,gBAAiBrkV,KAAAA,OACjB0oV,cAAe1oV,KAAAA,QAChBknV,EAAOhqV,aAAe,CACrB0uD,OAAO,EACP81R,yBAAyB,GAC1BwF,EAAOjtK,KAAOn+G,EAAUm+G,KAAMitK,EAAOhtK,OAAS,WAC7C,IAAIyuK,EAAc7sR,EAAUo+G,SAkB5B,OAjBKyuK,IAEDA,EAAclvK,GAAiB,CAC3BmqK,QAAS,GACTC,eAAgB,CAAC,EACjBnC,yBAAyB,EACzBoC,eAAgB,CAAC,EACjBC,SAAU,GACVC,SAAU,GACVC,aAAc,GACdE,WAAY,GACZC,UAAW,GACX9yV,MAAO,GACP+yV,gBAAiB,CAAC,KAInBsE,CACX,EAAG/0J,CACP,CAQmBg1J,CAFKC,MAnmBC,SAA4BjH,GACjD,MAAO,CACHgC,QAASvB,GAAwB,CAAC1B,GAAqBA,IAAwBiB,GAC/EiC,eAAgB3B,GAA2BhC,GAAsB0B,GACjEh2R,MAAOk2R,GAAqBF,EAAWV,IACvC9iL,OAAQ0jL,GAAqBF,EAAWV,IACxC4C,eAAgB5B,GAA2BhC,GAAsB0B,GACjEmC,SAAUtB,GAAqBtC,GAAUI,KAAM,CAACI,GAAoBA,IAAsBiB,GAC1FoC,SAAUvB,GAAqBtC,GAAUh1I,KAAM,CAACw1I,GAAqBA,GAAwBA,GAA0BA,GAAyBA,IAA2BiB,GAC3KqC,aAAcxB,GAAqBtC,GAAUK,SAAU,CAACG,IAA4BiB,GACpFsC,oBAAqBjC,GAAuBL,GAC5CuC,WAAY1B,GAAqBtC,GAAUv8W,OAAQ,CAAC+8W,GAAoBA,IAA4BiB,GACpGwC,UAAW3B,GAAqBtC,GAAUM,MAAO,CAACE,IAA0BiB,GAC5EtwV,MAAOqwV,GAAsBC,GAC7ByC,gBAAiBnC,GAA2BhC,GAAuB0B,GAE3E,IAiC8B,SAAiChvJ,GACvD8wJ,IACArjJ,GAAqBqjJ,IAGrB9wJ,EAAShnI,MACT83R,GAAkB1sJ,IAAsB,WACpC2sJ,GAAiB/wJ,GAAU,WACvB8wJ,GAAkB,IACtB,GACJ,KAEAC,GAAiB/wJ,GACjB8wJ,GAAkB,KAE1B,GAmiBoFjqK,GAA5DovK,EAJJ,WAChB,OAAO,IACX,KAKA5B,GAAa6B,aAAe7B,GAAa/sK,OAEzC,YCh5BO,SAAS6uK,GAAe76Q,GAC7B,OAAOgyK,GAAWhyK,EAAO,CACvB86Q,kBAAmB96Q,EAAMulL,YAE7B,CACO,MAAMw1F,GAAqB/6Q,IAChC,MAAM,cACJ84K,EAAa,SACbrkQ,EAAQ,WACRE,EAAU,UACVY,EAAS,gBACTykQ,EAAe,gBACfE,EAAe,WACfS,EAAU,aACVE,EAAY,UACZ4K,EAAS,2BACTH,EAA0B,yBAC1BD,EAAwB,eACxB3B,EAAc,kBACdjF,EAAiB,aACjBlH,EAAY,oBACZoN,EAAmB,eACnBO,EAAc,kBACdV,EAAiB,oBACjBC,EAAmB,iBACnB1H,GACE/8K,EACJ,MAAO,CACL0vN,aAAc72U,KAAKwhB,IAAIxhB,KAAK22B,OAAOspQ,EAAgBrkQ,EAAWE,GAAc,EAAI,IAAM,GAAKY,EAAW,GACtGmjT,eAAgB7/U,KAAKwhB,IAAIxhB,KAAK22B,OAAOwqQ,EAAkBvlQ,EAAWE,GAAc,EAAI,IAAM,GAAKY,EAAW,GAC1GojT,eAAgB9/U,KAAK6K,MAAMw2R,EAAkBS,EAAaE,GAAgB,EAAI,IAAM,GAAKtlQ,EACzFq0Q,cAAenE,EAAYlwQ,EAC3BiiT,gBAAiBlyC,EAA6B/vQ,EAC9CgiT,gBAAiBlyC,EAA2B9vQ,EAC5CylW,QAASt3F,EACTu3F,kBAAmB1jG,EACnB2jG,iBAAkBz8F,EAClB08F,aAAc,SAASx2F,OAAyBO,IAChDk2F,kBAAmB,SAASz2F,OAAyBH,IACrD62F,oBAAqB,SAAS12F,OAAyBF,IACvD62F,QAASv+F,EACTw+F,SAAUx+F,EACVy+F,cAAe/mW,EACfgnW,gBAAiB9gG,EACjB+gG,gBAAiBjnW,EAClB,EC5CUknW,GAAgB37Q,IAAS,CACpCnmF,YAAammF,EAAMk7Q,iBACnBp4X,gBAAiBk9G,EAAMs7Q,UAEZjiD,GAAmBr5N,IAAS,CACvC1nF,MAAO0nF,EAAM42K,kBACb9zR,gBAAiBk9G,EAAM2jL,yBACvB9pQ,YAAammF,EAAMm9K,YACnB5kK,UAAW,OACXlnG,OAAQ,cACRruB,QAAS,EACT,sCAAuC,CACrCquB,OAAQ,eAEV,0BAA2Bh0B,OAAOoD,OAAO,CAAC,EAAGk7X,GAAc3pG,GAAWhyK,EAAO,CAC3Ek7Q,iBAAkBl7Q,EAAMm9K,YACxBm+F,QAASt7Q,EAAM2jL,+BAINi4F,GAAuBA,CAAC57Q,EAAOzlH,KAAY,CACtDs4H,WAAY7S,EAAM+8K,iBAClBpjQ,YAAaqmF,EAAMzqF,UACnB2lS,YAAal7M,EAAM+3K,SACnBl+P,YAAat/B,EAAQs/B,YACrB,UAAW,CACTA,YAAat/B,EAAQ2gY,iBACrBp4X,gBAAiBk9G,EAAMs7Q,SAEzB,0BAA2B,CACzBzhW,YAAat/B,EAAQ0gY,kBACrB1iQ,UAAWh+H,EAAQ4gY,aACnBruL,QAAS,EACThqM,gBAAiBk9G,EAAMu7Q,YAGrBM,GAAyBA,CAAC77Q,EAAOzlH,KAAY,CACjD,CAAC,IAAIylH,EAAMu0K,uBAAuBh6R,EAAQu5C,cAAcksE,EAAMu0K,0BAA2Bl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGm7X,GAAqB57Q,EAAOzlH,IAAW,CAC9J,CAAC,GAAGylH,EAAMu0K,wBAAwBv0K,EAAMu0K,uBAAwB,CAC9Dj8P,MAAO/9B,EAAQuhY,cAGnB,CAAC,IAAI97Q,EAAMu0K,uBAAuBh6R,EAAQu5C,SAASksE,EAAMu0K,yBAA0B,CACjF16P,YAAat/B,EAAQs/B,eAGZkiW,GAAmBA,CAAC/7Q,EAAOg8Q,KAAgB,CACtD,aAAc3+X,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGm7X,GAAqB57Q,EAAO,CAClHnmF,YAAammF,EAAMm9K,YACnB+9F,iBAAkBl7Q,EAAMk7Q,iBACxBD,kBAAmBj7Q,EAAMi7Q,kBACzBE,aAAcn7Q,EAAMm7Q,gBACjB,CACH,CAAC,IAAIn7Q,EAAMu0K,sCAAuCl3R,OAAOoD,OAAO,CAAC,EAAG44U,GAAiBr5N,MACnF67Q,GAAuB77Q,EAAO,CAChClsE,OAAQ,QACRja,YAAammF,EAAM03K,WACnBwjG,iBAAkBl7Q,EAAM2/K,sBACxBs7F,kBAAmBj7Q,EAAM03K,WACzByjG,aAAcn7Q,EAAMo7Q,kBACpBU,WAAY97Q,EAAM03K,cACfmkG,GAAuB77Q,EAAO,CACjClsE,OAAQ,UACRja,YAAammF,EAAMy3K,aACnByjG,iBAAkBl7Q,EAAMogL,wBACxB66F,kBAAmBj7Q,EAAMy3K,aACzB0jG,aAAcn7Q,EAAMq7Q,oBACpBS,WAAY97Q,EAAMy3K,gBACfukG,KAEDC,GAA8BA,CAACj8Q,EAAOzlH,KAAY,CACtD,CAAC,IAAIylH,EAAMu0K,qCAAqCh6R,EAAQu5C,UAAW,CACjE,CAAC,GAAGksE,EAAMu0K,4BAA6B,CACrC16P,YAAat/B,EAAQ2hY,iBACrB5jW,MAAO/9B,EAAQ4hY,eAIRC,GAAwBp8Q,IAAS,CAC5C,aAAc3iH,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CACtD,CAAC,GAAGu/G,EAAMu0K,sBAAuB,CAC/B,UAAW,CACT1hK,WAAY7S,EAAMg7Q,QAClB7uP,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMm9K,eAE9D,sBAAuB,CACrBm8B,gBAAiB,GAEnB,qBAAsB,CACpBxuB,kBAAmB,KAGtBmxF,GAA4Bj8Q,EAAO,CACpClsE,OAAQ,QACRooV,iBAAkBl8Q,EAAM03K,WACxBykG,WAAYn8Q,EAAM+/K,kBACfk8F,GAA4Bj8Q,EAAO,CACtClsE,OAAQ,UACRooV,iBAAkBl8Q,EAAMy3K,aACxB0kG,WAAYn8Q,EAAMwgL,oBACf,CACH,CAAC,IAAIxgL,EAAMu0K,uCAAwC,CACjD,CAAC,GAAGv0K,EAAMu0K,4BAA6Bl3R,OAAOoD,OAAO,CAAC,EAAG44U,GAAiBr5N,SAKnEq8Q,GAAqBA,CAACr8Q,EAAOg8Q,KACxC,MAAM,aACJznG,GACEv0K,EACJ,MAAO,CACL,eAAgB3iH,OAAOoD,OAAO,CAC5BoyH,WAAY,cACZsZ,OAAQ,OACR,0BAA2B,CACzB2gE,QAAS,QAGX,CAAC,IAAIynF,2BAAuC,CAC1Cj8P,MAAO0nF,EAAM42K,kBACbvlQ,OAAQ,eAGV,CAAC,IAAIkjQ,kBAA8B,CACjC,yBAA0B,CACxBj8P,MAAO0nF,EAAM03K,aAGjB,CAAC,IAAInD,oBAAgC,CACnC,yBAA0B,CACxBj8P,MAAO0nF,EAAMy3K,gBAGhBukG,GACJ,EAGGM,GAAqBA,CAACt8Q,EAAOzlH,KAAY,CAC7Cs4H,WAAYt4H,EAAQi+B,GACpBmB,YAAaqmF,EAAMzqF,UACnB2lS,YAAal7M,EAAM+3K,SACnBl+P,YAAa,cACb,yCAA0C,CACxCvB,MAAmB,OAAZ/9B,QAAgC,IAAZA,OAAqB,EAASA,EAAQgiY,YAEnE,UAAW,CACT1pQ,WAAYt4H,EAAQ+gY,SAEtB,0BAA2B,CACzBxuL,QAAS,EACTjzK,YAAat/B,EAAQ0gY,kBACrBn4X,gBAAiBk9G,EAAMu7Q,YAGrBiB,GAAuBA,CAACx8Q,EAAOzlH,KAAY,CAC/C,CAAC,IAAIylH,EAAMu0K,uBAAuBh6R,EAAQu5C,cAAcksE,EAAMu0K,0BAA2Bl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG67X,GAAmBt8Q,EAAOzlH,IAAW,CAC5J,CAAC,GAAGylH,EAAMu0K,wBAAwBv0K,EAAMu0K,uBAAwB,CAC9Dj8P,MAAO/9B,EAAQuhY,gBAIRW,GAAiBA,CAACz8Q,EAAOg8Q,KAAgB,CACpD,WAAY3+X,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG67X,GAAmBt8Q,EAAO,CAC9GxnF,GAAIwnF,EAAMy8K,kBACV6+F,QAASt7Q,EAAMw8K,mBACfy+F,kBAAmBj7Q,EAAMi7Q,qBACtB,CACH,CAAC,IAAIj7Q,EAAMu0K,sCAAuCl3R,OAAOoD,OAAO,CAAC,EAAG44U,GAAiBr5N,MACnFw8Q,GAAqBx8Q,EAAO,CAC9BlsE,OAAQ,QACRtb,GAAIwnF,EAAMu/K,aACV+7F,QAASt7Q,EAAMw/K,kBACfy7F,kBAAmBj7Q,EAAM03K,WACzB6kG,WAAYv8Q,EAAM+/K,eAClB+7F,WAAY97Q,EAAM03K,cACf8kG,GAAqBx8Q,EAAO,CAC/BlsE,OAAQ,UACRtb,GAAIwnF,EAAMigL,eACVq7F,QAASt7Q,EAAMkgL,oBACf+6F,kBAAmBj7Q,EAAMy3K,aACzB8kG,WAAYv8Q,EAAMwgL,iBAClBs7F,WAAY97Q,EAAMy3K,gBACfukG,KAEDU,GAA4BA,CAAC18Q,EAAOzlH,KAAY,CACpD,CAAC,IAAIylH,EAAMu0K,qCAAqCh6R,EAAQu5C,UAAW,CACjE,CAAC,GAAGksE,EAAMu0K,4BAA6B,CACrC1hK,WAAYt4H,EAAQygY,QACpB1iW,MAAO/9B,EAAQ4hY,eAIRQ,GAAsB38Q,IAAS,CAC1C,WAAY3iH,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CACpD,CAAC,GAAGu/G,EAAMu0K,sBAAuB,CAC/B,UAAW,CACT1hK,WAAY7S,EAAMy8K,mBAEpB,CAAC,GAAGz8K,EAAMu0K,sDAAuD,CAC/D,sBAAuB,CACrBuW,kBAAmB,GAAGzwS,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAM6jL,cAEzE,qBAAsB,CACpBy1B,gBAAiB,GAAGj/T,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAM6jL,iBAI1E64F,GAA0B18Q,EAAO,CAClClsE,OAAQ,QACRknV,QAASh7Q,EAAMu/K,aACf48F,WAAYn8Q,EAAM+/K,kBACf28F,GAA0B18Q,EAAO,CACpClsE,OAAQ,UACRknV,QAASh7Q,EAAMigL,eACfk8F,WAAYn8Q,EAAMwgL,oBACf,CACH,CAAC,IAAIxgL,EAAMu0K,uCAAwC,CACjD,CAAC,GAAGv0K,EAAMu0K,sBAAuB,CAC/B,UAAW,CACT1hK,WAAY7S,EAAMy8K,kBAClBnkQ,MAAO0nF,EAAM42K,mBAEf,sBAAuB,CACrBkU,kBAAmB,GAAGzwS,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMm9K,cACvEo9D,UAAW,GAAGlgW,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMm9K,cAC/Dq6B,aAAc,GAAGn9T,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMm9K,eAEpE,qBAAsB,CACpBm8B,gBAAiB,GAAGj/T,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMm9K,cACrEo9D,UAAW,GAAGlgW,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMm9K,cAC/Dq6B,aAAc,GAAGn9T,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMm9K,qBAQ/Dy/F,GAAyBA,CAAC58Q,EAAOzlH,KAAY,CACxDs4H,WAAY7S,EAAM+8K,iBAClBpjQ,YAAa,OAAOt/B,GAAK2lH,EAAMzqF,eAC/B2lS,YAAa,aAAal7M,EAAM+3K,gBAChCl+P,YAAat/B,EAAQs/B,YACrB6+P,aAAc,EACd,UAAW,CACT7+P,YAAat/B,EAAQ2gY,iBACrBp4X,gBAAiBk9G,EAAMs7Q,SAEzB,0BAA2B,CACzBzhW,YAAat/B,EAAQ0gY,kBACrBnuL,QAAS,EACThqM,gBAAiBk9G,EAAMu7Q,YAGrBsB,GAA2BA,CAAC78Q,EAAOzlH,KAAY,CACnD,CAAC,IAAIylH,EAAMu0K,uBAAuBh6R,EAAQu5C,cAAcksE,EAAMu0K,0BAA2Bl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGm8X,GAAuB58Q,EAAOzlH,IAAW,CAChK,CAAC,GAAGylH,EAAMu0K,wBAAwBv0K,EAAMu0K,uBAAwB,CAC9Dj8P,MAAO/9B,EAAQuhY,cAGnB,CAAC,IAAI97Q,EAAMu0K,uBAAuBh6R,EAAQu5C,SAASksE,EAAMu0K,yBAA0B,CACjF16P,YAAat/B,EAAQs/B,eAGZijW,GAAqBA,CAAC98Q,EAAOg8Q,KAAgB,CACxD,eAAgB3+X,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGm8X,GAAuB58Q,EAAO,CACtHnmF,YAAammF,EAAMm9K,YACnB+9F,iBAAkBl7Q,EAAMk7Q,iBACxBD,kBAAmBj7Q,EAAMi7Q,kBACzBE,aAAcn7Q,EAAMm7Q,gBACjB,CAEH,CAAC,IAAIn7Q,EAAMu0K,sCAAuC,CAChDj8P,MAAO0nF,EAAM42K,kBACbr+J,UAAW,OACXlnG,OAAQ,cACR,UAAW,CACTwI,YAAammF,EAAMm9K,cAGvB,sCAAuC,CACrC9rQ,OAAQ,iBAERwrW,GAAyB78Q,EAAO,CAClClsE,OAAQ,QACRja,YAAammF,EAAM03K,WACnBwjG,iBAAkBl7Q,EAAM2/K,sBACxBs7F,kBAAmBj7Q,EAAM03K,WACzByjG,aAAcn7Q,EAAMo7Q,kBACpBU,WAAY97Q,EAAM03K,cACfmlG,GAAyB78Q,EAAO,CACnClsE,OAAQ,UACRja,YAAammF,EAAMy3K,aACnByjG,iBAAkBl7Q,EAAMogL,wBACxB66F,kBAAmBj7Q,EAAMy3K,aACzB0jG,aAAcn7Q,EAAMq7Q,oBACpBS,WAAY97Q,EAAMy3K,gBACfukG,KCrSMe,GAAsBzkW,IAAS,CAE1C,sBAAuB,CACrBt1B,QAAS,GAEX,iBAAkB,CAChBs1B,QACAopH,WAAY,QAEd,sBAAuB,CACrBq0I,aAAc,cASZinG,GAAqBh9Q,IACzB,MAAM,eACJ24N,EAAc,aACd99C,EAAY,eACZf,EAAc,gBACdy9C,GACEv3N,EACJ,MAAO,CACLpnF,QAAS,GAAGv+B,GAAKs+U,MAAmBt+U,GAAKk9U,KACzC9iT,SAAUurF,EAAMy7Q,gBAChB9mW,WAAYkmQ,EACZnC,aAAcoB,EACf,EAEUmjG,GAAqBj9Q,IAAS,CACzCpnF,QAAS,GAAGv+B,GAAK2lH,EAAM04N,mBAAmBr+U,GAAK2lH,EAAMw3N,mBACrD/iT,SAAUurF,EAAM07Q,gBAChBhjG,aAAc14K,EAAM65K,iBAETqjG,GAAqBl9Q,GAAS3iH,OAAOoD,OAAOpD,OAAOoD,OAAO,CACrEiC,SAAU,WACV7E,QAAS,eACTvE,MAAO,OACP6pC,SAAU,EACVvK,QAAS,GAAGv+B,GAAK2lH,EAAM0vN,iBAAiBr1U,GAAK2lH,EAAM4pL,iBACnDtxQ,MAAO0nF,EAAMk2K,UACbzhQ,SAAUurF,EAAMw7Q,cAChB7mW,WAAYqrF,EAAMrrF,WAClB+jQ,aAAc14K,EAAM04K,aACpB9wO,WAAY,OAAOo4D,EAAMkiL,qBACxB66F,GAAoB/8Q,EAAM8jL,uBAAwB,CAEnD,YAAa,CACX1uQ,SAAU,OAEVp8B,OAAQ,OACR6hQ,UAAW76I,EAAM84K,cACjBnkQ,WAAYqrF,EAAMrrF,WAClBqF,cAAe,SACf4tB,WAAY,OAAOo4D,EAAMu2K,gCACzBlgH,OAAQ,YAGV,OAAQh5K,OAAOoD,OAAO,CAAC,EAAGu8X,GAAmBh9Q,IAC7C,OAAQ3iH,OAAOoD,OAAO,CAAC,EAAGw8X,GAAmBj9Q,IAE7C,wBAAyB,CACvB8U,UAAW,SAGFqoQ,GAAqBn9Q,IAChC,MAAM,aACJu0K,EAAY,OACZG,GACE10K,EACJ,MAAO,CACLt9G,SAAU,WACV7E,QAAS,QACTvE,MAAO,OACP8jY,eAAgB,WAChBC,cAAe,EAEf,mBAAoB,CAClBpjE,iBAAkBj6M,EAAMwlL,UACxB,eAAgB,CACdy0B,iBAAkB,IAItB,CAAC,QAAQ1lC,aAAwBA,iBAA6Bl3R,OAAOoD,OAAO,CAAC,EAAGu8X,GAAmBh9Q,IACnG,CAAC,QAAQu0K,aAAwBA,iBAA6Bl3R,OAAOoD,OAAO,CAAC,EAAGw8X,GAAmBj9Q,IAEnG,CAAC,QAAQ00K,mBAAwBA,qBAA2B,CAC1D17R,OAAQgnH,EAAMk6K,iBAEhB,CAAC,QAAQxF,mBAAwBA,qBAA2B,CAC1D17R,OAAQgnH,EAAMg6K,iBAEhB,CAAC,KAAKzF,KAAiB,CACrB12R,QAAS,aACT,uCAAwC,CACtC66R,aAAc,IAGlB,CAAC,GAAGnE,WAAuB,CACzB,kBAAmB,CACjB12R,QAAS,aACTvE,MAAO,EACPo/I,WAAY,SACZ1+G,cAAe,SACf,uCAAwC,CACtC0+P,aAAc,IAGlB,aAAc,CACZ76R,QAAS,oBAEX,UAAW,CACT6E,SAAU,WACVk2B,QAAS,KAAKv+B,GAAK2lH,EAAM4pL,iBACzBtxQ,MAAO0nF,EAAMk2K,UACbh8P,WAAY,SACZzF,SAAUurF,EAAMw7Q,cAChBzhW,UAAW,SACX2+P,aAAc14K,EAAM04K,aACpB9wO,WAAY,OAAOo4D,EAAMu2K,qBACzB5hQ,WAAY,EAEZ,CAAC,GAAG+/P,YAAkB,CACpBz7R,OAAQ,GAAGoB,GAAK2lH,EAAMq6J,KAAKr6J,EAAM0vN,cAAc7iT,IAAI,GAAG6iM,KAAK,GAAGp/C,YAAYj2K,GAAK2lH,EAAMq6J,KAAKr6J,EAAM4pL,eAAel6E,KAAK,GAAGp/C,WACvH,CAAC,IAAIokH,uBAA4BA,iCAAsCA,8BAAoC,CACzG,CAAC,GAAGA,qBAA2B,CAC7B5xR,gBAAiB,UACjBqpI,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,uBAC1Cx/J,UAAW,UAKjB,CAAC,GAAGm8J,qBAA2B,CAC7Bz7R,OAAQ,QAAQoB,GAAK2lH,EAAMq6J,KAAKr6J,EAAM4pL,eAAel6E,KAAK,GAAGp/C,WAC7DxtK,gBAAiB,cACjB,CAAC,GAAG4xR,oBAA0B,CAC5B36P,UAAW,QACXoyG,OAAQ,EACR5T,UAAW,WAKnB,CAACg8J,GAAe,CACdj7R,MAAO,OACPu8H,aAAc,EACd97F,UAAW,UACX,UAAW,CACTn3B,OAAQ,EAER06X,qBAAsB,GAExB,UAAW,CACT16X,OAAQ,EACR06X,qBAAsB,EACtB,CAAC,GAAG/oG,0BAAsC,CACxC3xR,OAAQ,KAKd,CAAC,KAAK2xR,kBAA6BA,6BAAyC,CAC1EogD,qBAAsB,EACtBC,mBAAoB,EAEpB,CAAC,GAAGlgD,YAAiBA,qBAA2B,CAC9CigD,qBAAsB,EACtBC,mBAAoB,IAGxB,CAAC,KAAKrgD,mBAA+B,CACnC,CAAC,uBAAuBA,KAAiB,CACvCsgD,uBAAwB,EACxBC,qBAAsB,GAExB,CAAC,sBAAsBvgD,KAAiB,CACtCogD,qBAAsB,EACtBC,mBAAoB,IAGxB,CAAC,KAAKrgD,iBAA4BA,4BAAwC,CACxEsgD,uBAAwB,EACxBC,qBAAsB,EAEtB,CAAC,GAAGpgD,YAAiBA,qBAA2B,CAC9CmgD,uBAAwB,EACxBC,qBAAsB,IAG1B,CAAC,GAAGvgD,mBAA+B,CACjC,qBAAsB,CACpBogD,qBAAsB,EACtBC,mBAAoB,EACpB,CAAC,GAAGrgD,cAA0B,CAC5BsgD,uBAAwB70N,EAAM04K,aAC9Bo8C,qBAAsB90N,EAAM04K,eAGhC,CAAC,wBAAwBnE,gCAA4C,CACnEsgD,uBAAwB,EACxBC,qBAAsB,IAG1B,CAAC,IAAIvgD,mBAA+Bl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC9D5C,QAAS,SjX9KS,CAEtB,YAAa,CACXA,QAAS,QACTiY,QAAS,MAEX,WAAY,CAEVjY,QAAS,QACT0nF,MAAO,OACPzvE,QAAS,QiXqKO,CACd,CAAC,GAAGy+Q,kBAA6BA,mBAA8BA,KAAiB,CAC9E,uCAAwC,CACtC+oG,qBAAsBt9Q,EAAMzqF,UAC5B,mBAAoB,CAClB3yB,OAAQ,KAId,QAAS,CACP/E,QAAS,cACTo3H,MAAO,OACPj7F,cAAe,MAEf0+P,aAAc,GAEhB,CAAC,iBACOnE,iCACAA,wCACAG,0BACJ,CACF72R,QAAS,eAEX,yBAA0B,CACxB88T,gBAAiB36M,EAAMq6J,KAAKr6J,EAAMzqF,WAAWm6L,KAAK,GAAGp/C,QACrDgtN,qBAAsBt9Q,EAAMzqF,WAG9B,CAACg/P,GAAe,CACdt/J,MAAO,QAGT,CAAC,OAAOy/J,cAAmBA,iCACrBA,0BAA+BH,iBAC/BG,qBAA0BH,iBAC1BA,mBAA8BA,KAAiB,CACnD+oG,qBAAsBt9Q,EAAMzqF,UAC5BmjQ,aAAc,EACd,mBAAoB,CAClB91R,OAAQ,IAGZ,CAAC,OAAO8xR,oBAA0B,CAChC9xR,OAAQ,GAGV,CAAC,OAAO8xR,cAAmBA,kBAAwB,CACjD9xR,OAAQ,GAEV,CAAC,iCACK8xR,0BAA+BA,iCAC/BA,sCAA2CH,iBAC3CG,iCAAsCH,KAAiB,CAC3DsgD,uBAAwB70N,EAAM04K,aAC9Bo8C,qBAAsB90N,EAAM04K,cAE9B,CAAC,gCACKhE,yBAA8BA,iCAC9BA,gCAAqCH,iBACrCG,wCAA6CH,KAAiB,CAClE+oG,qBAAsBt9Q,EAAMzqF,UAC5Bo/S,qBAAsB30N,EAAM04K,aAC5Bk8C,mBAAoB50N,EAAM04K,cAG5B,CAAC,OAAOhE,0BAA+BH,KAAiB,CACtDv6P,cAAe,OAEjB,CAAC,GAAGu6P,qBAAgCA,mBAA+B,CACjEmmC,kBAAmB16M,EAAMq6J,KAAKr6J,EAAMzqF,WAAWm6L,KAAK,GAAGp/C,QACvD,CAAC,GAAGikH,mBAA+B,CACjCmE,aAAc,IAGlB,CAAC,GAAGnE,oCAAgD,CAClD,CAAC,IAAIA,cAAyBA,WAAuB,CACnD,CAAC,OAAOA,mBAA8BA,mBAA+B,CACnEmE,aAAc,GAEhB,CAAC,OAAOnE,KAAiB,CACvBsgD,uBAAwB70N,EAAM04K,aAC9Bi8C,qBAAsB,EACtBC,mBAAoB,EACpBE,qBAAsB90N,EAAM04K,kBAKrC,EAEU6kG,GAAgBv9Q,IAC3B,MAAM,aACJu0K,EAAY,gBACZyF,EAAe,UACfzkQ,EAAS,KACT8kP,GACEr6J,EAEEw9Q,EAAoBnjH,EAAK2f,GAAiB/qE,IAAIorD,EAAK9kP,GAAWm6L,IAAI,IAAIT,IAD1C,IACyEjB,IAAI,GAAG19C,QAClH,MAAO,CACL,CAACikH,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAASk9Q,GAAmBl9Q,IAAS+7Q,GAAiB/7Q,IAASy8Q,GAAez8Q,IAASq8Q,GAAmBr8Q,IAAS88Q,GAAmB98Q,IAAS,CAClR,kBAAmB,CACjBhnH,OAAQgnH,EAAM84K,cACd,CAAC,IAAIvE,QAAoB,CACvBv7R,OAAQgnH,EAAMk6K,iBAEhB,CAAC,IAAI3F,QAAoB,CACvBv7R,OAAQghS,EACRnhQ,WAAY2kW,EACZzkW,cAAeykW,IAGnB,8FAA+F,CAC7F,qBAAsB,UAG3B,EAEGC,GAAqBz9Q,IACzB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CAEL,CAAC,GAAGu0K,gBAA4B,CAC9Bt7R,OAAQ,EACR2/B,QAAS,EACTjE,WAAY,EACZ2D,MAAO0nF,EAAMs8K,oBACb7nQ,SAAUurF,EAAM0kL,aAChB1qQ,eAAgB,EAGhB3I,OAAQ,UACRu2B,WAAY,SAASo4D,EAAMu2K,qBAC3BpqJ,OAAQ,OACR2gE,QAAS,OACThqM,gBAAiB,cACjB,UAAW,CACTw1B,MAAO0nF,EAAMq8K,mBAEf,WAAY,CACV/jQ,MAAO0nF,EAAMk2K,WAEf,WAAY,CACVh/J,WAAY,UAEd,eAAgB,CACdj+H,OAAQ,KAAKoB,GAAK2lH,EAAM86Q,uBAG7B,EAEU4C,GAAgB19Q,IAC3B,MAAM,aACJu0K,EAAY,kBACZumG,EAAiB,qBACjB72F,EAAoB,mBACpB1N,EAAkB,UAClB+N,EAAS,eACTC,EAAc,QACd9P,GACEz0K,EACE29Q,EAAW,GAAGppG,kBACdqpG,EAAmB,GAAGrpG,2BAC5B,MAAO,CACL,CAACopG,GAAWtgY,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGy8X,GAAmBl9Q,IAAS,CAClGniH,QAAS,cACT,CAAC,SAAS02R,qBAAiC,CACzC3xR,OAAQ,EACR,CAAC,GAAG2xR,0BAAsC,CACxC3xR,OAAQ,IAGZ,qBAAsB,CACpBA,OAAQ,GAEV,CAAC,UAAU2xR,KAAiB,CAC1B37P,QAAS,GAEX,CAAC,UAAU27P,gBAA2BA,KAAiB,CACrD9/P,SAAU,UACV03G,OAAQ,OACRusJ,aAAc,EACd5rF,QAAS,OACTj6E,WAAY,cACZv6F,MAAO,UACP,gBAAiB,CACfz6B,QAAS,QAEX,UAAW,CACT06H,UAAW,oBAGf,YAAa,CACX16H,QAAS,eACTvE,MAAO,EACP49H,WAAY,SACZphH,QAAS,UAEX,CAACy+Q,GAAe,CACd,qBAAsB,CACpB12R,QAAS,OACTk/C,KAAM,OACNo6O,WAAY,SACZ,uBAAwB,CACtBwjC,gBAAiB36M,EAAMwlL,YAG3B,sBAAuB,CACrBltQ,MAAO2rQ,GAET,0BAA2B,CACzB02B,gBAAiB36M,EAAMulL,YAEzB,WAAY,CACVo1B,gBAAiBmgE,GAEnB,WAAY,CACVpgE,kBAAmBogE,MAGrB2C,GAAmBz9Q,IAAS,CAE9B,CAAC,GAAGy0K,IAAUF,mBAA+B,CAC3Cj8P,MAAOgsQ,EACPjzQ,OAAQ,UACRu2B,WAAY,OAAO2uO,IACnB,UAAW,CACTj+P,MAAOisQ,MAKb,CAAC,GAAGhQ,gBAA4B,CAC9BmE,aAAc,GAEhB,CAACklG,GAAmB,CAElB,CAAC,GAAGnpG,IAAUF,mBAA+B,CAC3Cj8P,MAAOgsQ,EACPjzQ,OAAQ,cACR,UAAW,CACTiH,MAAOgsQ,KAId,EAEG62C,GAAgBn7N,IACpB,MAAM,aACJu0K,EAAY,eACZuF,EAAc,eACdD,GACE75K,EACJ,MAAO,CACL,CAAC,GAAGu0K,WAAuBl3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAASm9Q,GAAmBn9Q,IAAS,CAC3H,QAAS,CACP8U,UAAW,OAEb,YAAaz3H,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CACrD5C,QAAS,eACTvE,MAAO,OACPygC,UAAW,QACXC,cAAe,MACf,QAAS,CACP86F,UAAW,OAGb,OAAQ,CACN,CAAC,GAAGy/J,iBAA6B,CAC/BmE,aAAcoB,EACdrlQ,SAAUurF,EAAMy7Q,kBAGpB,OAAQ,CACN,CAAC,GAAGlnG,iBAA6B,CAC/BmE,aAAcmB,KAGjBuiG,GAAsBp8Q,IAAS28Q,GAAoB38Q,IAAS,CAQ7D,CAAC,SAASu0K,6BAAwCA,uBAAkCA,kBAA8B,CAChH,CAAC,GAAGA,MAAiBA,iBAA6B,CAChDmE,aAAc,IAGlB,CAAC,SAASnE,uBAAkCA,wBAAoC,CAC9E,CAAC,GAAGA,MAAiBA,iBAA6B,CAChDogD,qBAAsB,EACtBC,mBAAoB,IAGxB,CAAC,SAASrgD,wBAAmCA,uBAAmC,CAC9E,CAAC,GAAGA,MAAiBA,iBAA6B,CAChDsgD,uBAAwB,EACxBC,qBAAsB,IAK1B,CAAC,SAASvgD,uBAAkCA,kBAA8B,CACxE,CAAC,GAAGA,mBAA+B,CACjCogD,qBAAsB,EACtBC,mBAAoB,IAKxB,CAAC,SAASrgD,wBAAmCA,kBAA8B,CACzE,CAAC,GAAGA,mBAA+B,CACjCsgD,uBAAwB,EACxBC,qBAAsB,QAK/B,EAEG+oD,GAAsB79Q,IAC1B,MAAM,aACJu0K,EAAY,OACZG,GACE10K,EACE89Q,EAAkB,GAAGvpG,WAC3B,MAAO,CACL,CAACupG,GAAkB,CACjB,CAACvpG,GAAe,CACd,mBAAoB,CAClB,CAAC,KAAKA,iBAA4BupG,gBAA8BppG,kBAAwB,CACtF+/C,uBAAwBz0N,EAAMy+K,qBAIpC,CAAC,GAAGlK,mBAA+B,CACjCv7R,OAAQgnH,EAAM84K,cACdJ,aAAc,GAIhB,CAAC,GAAGnE,QAAoB,CACtB5/P,WAAYqrF,EAAMq6J,KAAKr6J,EAAM66K,cAAc5rE,IAAI,MAAQ3+C,SAEzD,CAAC,KAAKikH,WAAuB,CAC3B,CAAC,KAAKA,4BAAwC,CAC5CsW,kBAAmB,EACnBjyQ,QAAS,EACTuzG,OAAQ,EACR,CAAC,GAAG2xP,YAA2B,CAE7BnjE,iBAAkB,EAClBka,uBAAwB,EACxBC,qBAAsB,EACtBv8M,UAAW,QAEb,CAAC,GAAGulQ,gBAA8BppG,kBAAwB,CACxDp8P,MAAO0nF,EAAMikL,qBACb,UAAW,CACT3rQ,MAAO0nF,EAAMy+K,mBAEf,WAAY,CACVnmQ,MAAO0nF,EAAM0+K,oBAEf,CAAC,IAAIhK,yBAA+B,CAClCmW,iBAAkB,EAClBF,eAAgB,EAChBozF,gBAAiB,EACjBC,cAAe,MAKvB,CAAC,GAAGF,YAA2B,CAC7B9kY,OAAQgnH,EAAM84K,cACd,mBAAoB,CAClBl2R,OAAQ,IAGZ,UAAW,CACT,CAAC,GAAG2xR,oBAA+BupG,YAA2B,CAC5D9kY,OAAQgnH,EAAMk6K,kBAGlB,UAAW,CACT,CAAC,GAAG3F,oBAA+BupG,YAA2B,CAC5D9kY,OAAQgnH,EAAMg6K,kBAGlB,QAAS,CACPllK,UAAW,OAGb,CAAC,IAAIy/J,kBAA8B,CACjC,CAAC,SAASA,wBAAoC,CAC5C,CAAC,GAAGA,iBAA6B,CAC/B,CAAC,GAAGA,mBAA+B,CACjComC,gBAAiB36M,EAAMq6J,KAAKr6J,EAAMzqF,WAAWm6L,KAAK,GAAGp/C,QACrDooH,aAAc,KAIpB,CAAC,SAASnE,yBAAqC,CAC7C,CAAC,GAAGA,KAAgBA,mBAA+B,CACjDmE,aAAc,IAGlB,CAAC,KAAKnE,iBAA4BA,+BAC9BA,eACFA,mBAA+B,CAC/B,6BAA8B,CAC5B3xR,OAAQ,IAGZ,CAAC,KAAK2xR,2BAAuC,CAC3C3xR,OAAQ,KAIf,EAGGq7X,GAAgBj+Q,IACpB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAAC,GAAGu0K,kBAA8B,CAChC,CAAC,2BAA2BA,wBAAmCA,gBAA4B,CACzFj8P,MAAO0nF,EAAM03K,aAGlB,EAGUwmG,GAAiBnpG,GAAc,CAAC,QAAS,WAAW/0K,IAC/D,MAAMm+Q,EAAansG,GAAWhyK,EAAO66Q,GAAe76Q,IACpD,MAAO,CAACu9Q,GAAcY,GAAaT,GAAcS,GAAY,GAC5DpD,GAAoB,CACrBlmG,WAAW,IAEb,GAAeE,GAAc,CAAC,QAAS,cAAc/0K,IACnD,MAAMm+Q,EAAansG,GAAWhyK,EAAO66Q,GAAe76Q,IACpD,MAAO,CAACm7N,GAAcgjD,GAAaN,GAAoBM,GAAaF,GAAcE,GAIlFxiD,GAAoBwiD,GAAY,GAC/BpD,GAAoB,CACrBlmG,WAAW,ICjnBb,GArCc3lP,IACZ,MAAM,aACJixO,EAAY,UACZrrJ,IACE1wD,EAAAA,EAAAA,YAAW87M,KAEbvvC,UAAW2vC,EAAkB,UAC7B1hR,GACEswC,EACEyhM,EAAYwvC,EAAa,cAAeG,GACxC89G,EAAiBj+G,EAAa,UAC7BksB,EAAY7nB,GAAU4Q,GAASgpG,GAChCrlN,EAAM8xC,KAAW8lB,EAAW,CAChC,CAAC,GAAGA,QAAgC,UAAfzhM,EAAMx1B,KAC3B,CAAC,GAAGi3N,QAAgC,UAAfzhM,EAAMx1B,KAC3B,CAAC,GAAGi3N,aAAsBzhM,EAAMqzD,QAChC,CAAC,GAAGouI,SAAgC,QAAd77G,GACrB0vJ,EAAQ5lR,GACLy/X,GAAkBj6T,EAAAA,EAAAA,YAAW0mP,IAC7BwzE,GAAuB75T,EAAAA,EAAAA,UAAQ,IAAMpnE,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG49X,GAAkB,CAC3FlzE,iBAAiB,KACf,CAACkzE,IAKL,OAAOhyF,EAAwBnhF,EAAAA,cAAoB,OAAQ,CACzDtsN,UAAWm6K,EACXp8K,MAAOuyC,EAAMvyC,MACb2nP,aAAcp1M,EAAMo1M,aACpBC,aAAcr1M,EAAMq1M,aACpBoB,QAASz2M,EAAMy2M,QACf44I,OAAQrvV,EAAMqvV,QACArzK,EAAAA,cAAoB4/F,GAAqBx8M,SAAU,CACjEr4G,MAAOqoY,GACNpvV,EAAMsM,WAAW,ECrCtB,SAASgjV,GAAW/tU,EAAOruD,EAAQnM,GAIjC,IAAI8yD,EAAgB3mD,EAAOjE,WAAU,GAGjCsgY,EAAWphY,OAAO4D,OAAOwvD,EAAO,CAClCruD,OAAQ,CACNnM,MAAO8yD,GAETA,cAAe,CACb9yD,MAAO8yD,KAgBX,OAXAA,EAAc9yD,MAAQA,EAIe,kBAA1BmM,EAAO0wD,gBAA8D,kBAAxB1wD,EAAO2wD,eAC7DhK,EAAc+J,eAAiB1wD,EAAO0wD,eACtC/J,EAAcgK,aAAe3wD,EAAO2wD,cAEtChK,EAAc21U,kBAAoB,WAChCt8X,EAAOs8X,kBAAkBhtX,MAAMtP,EAAQ0E,UACzC,EACO23X,CACT,CACO,SAASE,GAAgBv8X,EAAQyiB,EAAGwzN,EAAU+wE,GACnD,GAAK/wE,EAAL,CAGA,IAAI5nL,EAAQ5rC,EACG,UAAXA,EAAExmB,KAqBc,SAAhB+D,EAAO/D,WAAmCiG,IAAhB8kT,EAK9B/wE,EAAS5nL,GAHP4nL,EADA5nL,EAAQ+tU,GAAW35W,EAAGziB,EAAQgnT,IAR9B/wE,EADA5nL,EAAQ+tU,GAAW35W,EAAGziB,EAAQ,IAfhC,CA6BF,CACO,SAASw8X,GAAa3nW,EAASqrG,GACpC,GAAKrrG,EAAL,CACAA,EAAQrM,MAAM03G,GAGd,IACEjxG,GADSixG,GAAU,CAAC,GACNjxG,OAChB,GAAIA,EAAQ,CACV,IAAIvV,EAAMmb,EAAQhhC,MAAMuC,OACxB,OAAQ64B,GACN,IAAK,QACH4F,EAAQynW,kBAAkB,EAAG,GAC7B,MACF,IAAK,MACHznW,EAAQynW,kBAAkB5iX,EAAKA,GAC/B,MACF,QACEmb,EAAQynW,kBAAkB,EAAG5iX,GAEnC,CAlBoB,CAmBtB,CCqCA,SAzH6BovM,EAAAA,YAAiB,SAAUh8K,EAAON,GAC7D,IAAIw0L,EAAQy7J,EAASC,EACjBC,EAAU7vV,EAAM8vV,aAClBxjV,EAAWtM,EAAMsM,SACjBm1L,EAAYzhM,EAAMyhM,UAClBtlI,EAASn8D,EAAMm8D,OACfo6B,EAASv2F,EAAMu2F,OACfw5P,EAAc/vV,EAAM+vV,YACpBC,EAAahwV,EAAMgwV,WACnBtgY,EAAYswC,EAAMtwC,UAClBjC,EAAQuyC,EAAMvyC,MACd0+C,EAAWnM,EAAMmM,SACjB8jV,EAAWjwV,EAAMiwV,SACjBC,EAAUlwV,EAAMkwV,QAChBR,EAAe1vV,EAAM0vV,aACrBS,EAAanwV,EAAMmwV,WACnBppY,EAAQi5C,EAAMj5C,MACdqpY,EAAcpwV,EAAMowV,YACpBh/V,EAAS4O,EAAM5O,OACfwqL,EAAU57K,EAAM47K,QAChBD,EAAa37K,EAAM27K,WACnB00K,EAAYrwV,EAAMqwV,UAClBpsW,EAAS+b,EAAM/b,OACfi/O,EAAaljO,EAAMkjO,WACnBotH,EAAUtwV,EAAMswV,QACdR,EAA4B,OAAbxjV,QAAkC,IAAbA,EAAsBA,EAAWujV,EACrEU,GAAwC,OAAfrtH,QAAsC,IAAfA,OAAwB,EAASA,EAAWstH,eAAiB,OAC7GC,GAAwC,OAAfvtH,QAAsC,IAAfA,OAAwB,EAASA,EAAWwtH,eAAiB,OAC7GC,GAAmC,OAAfztH,QAAsC,IAAfA,OAAwB,EAASA,EAAWl9K,UAAY,OACnG4qS,GAAsC,OAAf1tH,QAAsC,IAAfA,OAAwB,EAASA,EAAW2tH,aAAe,OACzGr/I,GAAe/7K,EAAAA,EAAAA,QAAO,MAOtBq7T,EDzCC,SAAyB9wV,GAC9B,SAAUA,EAAMm8D,QAAUn8D,EAAMu2F,QAAUv2F,EAAMmwV,WAClD,CCuCiBY,CAAgB/wV,GAC3BjY,GAAuBi3E,EAAAA,EAAAA,cAAa8wR,EAAc,CACpD/oY,MAAOA,EACP2I,UAAWshY,KAAuC,QAAjC98J,EAAS47J,EAAa9vV,aAA8B,IAAXk0L,OAAoB,EAASA,EAAOxkO,WAAYohY,IAA4B,OAAfn1K,QAAsC,IAAfA,OAAwB,EAASA,EAAWtwE,WAAa,OAIrM4lP,GAAWx7T,EAAAA,EAAAA,QAAO,MAQtB,GAPAumJ,EAAAA,oBAA0Bt8K,GAAK,WAC7B,MAAO,CACLs4L,cAAei5J,EAAS7iW,SAAWojN,EAAapjN,QAEpD,IAGI0iW,EAAU,CAEZ,IAAII,EAAY,KAChB,GAAIf,EAAY,CACd,IAAIgB,GAAahlV,IAAa8jV,GAAYlpY,EACtCqqY,EAAe,GAAGzkY,OAAO80O,EAAW,eACpCqU,EAAmC,YAAxBnrP,EAAAA,GAAAA,GAAQwlY,IAA2C,OAAfA,QAAsC,IAAfA,GAAyBA,EAAWe,UAAYf,EAAWe,UAAY,SACjJA,EAAyBl1K,EAAAA,cAAoB,SAAU,CACrD7sN,KAAM,SACNmtE,QAAS,SAAiB/a,GACR,OAAhB6uU,QAAwC,IAAhBA,GAA0BA,EAAY7uU,GAClD,OAAZ+uU,QAAgC,IAAZA,GAAsBA,GAC5C,EAIAjwC,YAAa,SAAqB1qU,GAChC,OAAOA,EAAEukC,gBACX,EACAxqD,UAAWshY,KAAKI,GAAcpxR,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAOykY,EAAc,YAAaD,GAAY,GAAGxkY,OAAOykY,EAAc,iBAAkB76P,KAC5Ju/G,EACL,CACA,IAAIu7I,EAAwB,GAAG1kY,OAAO80O,EAAW,kBAC7C6vJ,EAAkBN,KAAKK,GAAuBrxR,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,aAAct1L,GAAW,GAAGx/C,OAAO0kY,EAAuB,aAAcllV,GAAW,GAAGx/C,OAAO0kY,EAAuB,YAAanB,GAAU,GAAGvjY,OAAO0kY,EAAuB,aAAcpB,GAAW,GAAGtjY,OAAO0kY,EAAuB,yBAA0B96P,GAAU45P,GAAcppY,GAAoB,OAAZ60N,QAAgC,IAAZA,OAAqB,EAASA,EAAQ40K,aAA6B,OAAf70K,QAAsC,IAAfA,OAAwB,EAASA,EAAW60K,aAA6B,OAAf70K,QAAsC,IAAfA,OAAwB,EAASA,EAAWtwE,SACnpBkmP,GAAch7P,GAAU45P,IAA4Bn0K,EAAAA,cAAoB,OAAQ,CAClFtsN,UAAWshY,KAAK,GAAGrkY,OAAO80O,EAAW,WAA2B,OAAf9lB,QAAsC,IAAfA,OAAwB,EAASA,EAAWplF,QACpH9oI,MAAkB,OAAXw2B,QAA8B,IAAXA,OAAoB,EAASA,EAAOsyG,QAC7D26P,EAAW36P,GACdxuG,EAAuBi0L,EAAAA,cAAoBu0K,EAAuBnpK,GAAS,CACzE13N,UAAW4hY,EACX7jY,MAAkB,OAAXw2B,QAA8B,IAAXA,OAAoB,EAASA,EAAOusW,aAC9Dl0T,QApDe,SAAsB3mD,GACvC,IAAI67W,EACmD,QAAlDA,EAAwBhgJ,EAAapjN,eAA+C,IAA1BojW,GAAoCA,EAAsBt9X,SAASyhB,EAAEziB,UACjH,OAAjBw8X,QAA0C,IAAjBA,GAA2BA,IAExD,GAgDmB,OAAdW,QAAoC,IAAdA,OAAuB,EAASA,EAAUG,aAAc,CAC/E9wV,IAAK8xM,IACHr1I,GAAuB6/G,EAAAA,cAAoB,OAAQ,CACrDtsN,UAAWshY,KAAK,GAAGrkY,OAAO80O,EAAW,WAA2B,OAAf9lB,QAAsC,IAAfA,OAAwB,EAASA,EAAWx/G,QACpH1uG,MAAkB,OAAXw2B,QAA8B,IAAXA,OAAoB,EAASA,EAAOk4E,QAC7DA,GAASp0E,EAASwpW,EACvB,CAGA,GDpGK,SAAkBvxV,GACvB,SAAUA,EAAM+vV,cAAe/vV,EAAMgwV,WACvC,CCkGMyB,CAASzxV,GAAQ,CACnB,IAAI45S,EAAa,GAAGjtV,OAAO80O,EAAW,UAClCiwJ,EAAW,GAAG/kY,OAAOitV,EAAY,UACjC+3C,EAAkB,GAAGhlY,OAAOitV,EAAY,YACxCg4C,EAAyBZ,KAAK,GAAGrkY,OAAO80O,EAAW,YAAam4G,EAAwB,OAAZh+H,QAAgC,IAAZA,OAAqB,EAASA,EAAQ51H,QAAwB,OAAf21H,QAAsC,IAAfA,OAAwB,EAASA,EAAW31H,SAClN6rS,EAAuBb,KAAKW,GAAiB3xR,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAOglY,EAAiB,aAAcxlV,GAAuB,OAAZyvK,QAAgC,IAAZA,OAAqB,EAASA,EAAQ7vH,MAAsB,OAAf4vH,QAAsC,IAAfA,OAAwB,EAASA,EAAW+0K,cAI7P3oW,EAAuBi0L,EAAAA,cAAoBy0K,EAAuB,CAChE/gY,UAAWmiY,EACXnyV,IAAKuxV,GACSj1K,EAAAA,cAAoB20K,EAAkB,CACpDjhY,UAAWkiY,GACV7B,GAA4B/zK,EAAAA,cAAoB40K,EAAqB,CACtElhY,UAAWgiY,GACV3B,GAAchoW,EAASioW,GAA2Bh0K,EAAAA,cAAoB40K,EAAqB,CAC5FlhY,UAAWgiY,GACV1B,IACL,CAGA,OAAoBh0K,EAAAA,aAAmBj0L,EAAS,CAC9Cr4B,UAAWshY,KAAmC,QAA7BrB,EAAU5nW,EAAQiY,aAA+B,IAAZ2vV,OAAqB,EAASA,EAAQjgY,UAAWA,IAAc,KACrHjC,MAAOkzO,GAAcA,GAAc,CAAC,EAAiC,QAA7BivJ,EAAU7nW,EAAQiY,aAA+B,IAAZ4vV,OAAqB,EAASA,EAAQniY,OAAQA,GAC3H2jC,OAAQA,GAEZ,IC5HA,IAAI+kM,GAAY,CAAC,QAYF,SAAS27J,GAAS31V,EAAO41V,GACtC,OAAO/1K,EAAAA,SAAc,WACnB,IAAIujI,EAAe,CAAC,EAChBwyC,IACFxyC,EAAap0F,KAA8B,YAAvBxgQ,EAAAA,GAAAA,GAAQonY,IAA2BA,EAAUC,UAAYD,EAAUC,YAAcD,GAGvG,IAAI3+O,EADJmsM,EAAe5+G,GAAcA,GAAc,CAAC,EAAG4+G,GAAepjT,GAE5DgvN,EAAO/3G,EAAK+3G,KACZ51J,EAAO2sI,GAAyB9uF,EAAM+iF,IACxC,OAAOwK,GAAcA,GAAc,CAAC,EAAGprI,GAAO,CAAC,EAAG,CAChD41J,OAAQA,EACR8mI,cAA+B,oBAAT9mI,EAAsBA,OAAO/1P,EACnD88X,SAAU38R,EAAK28R,UAAY,SAAUnrY,GACnC,OAAOA,EAAMuC,MACf,GAEJ,GAAG,CAAC6yC,EAAO41V,GACb,CC3BA,IAAI57J,GAAY,CAAC,eAAgB,WAAY,UAAW,SAAU,eAAgB,YAAa,UAAW,YAAa,WAAY,WAAY,YAAa,YAAa,SAAU,YAAa,QAAS,OAAQ,UAAW,aAAc,SAAU,qBAAsB,oBAmO1Q,MCtOA,IDWyBz2H,EAAAA,EAAAA,aAAW,SAAU1/D,EAAON,GACnD,IAAIyyV,EAAenyV,EAAMmyV,aACvBhpJ,EAAWnpM,EAAMmpM,SACjBsN,EAAUz2M,EAAMy2M,QAChB44I,EAASrvV,EAAMqvV,OACf+C,EAAepyV,EAAMoyV,aACrB57I,EAAYx2M,EAAMw2M,UAClB67I,EAAUryV,EAAMqyV,QAChBrtJ,EAAmBhlM,EAAMyhM,UACzBA,OAAiC,IAArBuD,EAA8B,WAAaA,EACvD74L,EAAWnM,EAAMmM,SACjBmmV,EAAWtyV,EAAMsyV,SACjB5iY,EAAYswC,EAAMtwC,UAClBosF,EAAY97C,EAAM87C,UAClBy6C,EAASv2F,EAAMu2F,OACfw7P,EAAY/xV,EAAM+xV,UAClB51V,EAAQ6D,EAAM7D,MACdo2V,EAAcvyV,EAAM7wC,KACpBA,OAAuB,IAAhBojY,EAAyB,OAASA,EACzC32K,EAAU57K,EAAM47K,QAChBD,EAAa37K,EAAM27K,WACnB13L,EAAS+b,EAAM/b,OACfuuW,EAAsBxyV,EAAMyyV,mBAC5BC,EAAmB1yV,EAAM0yV,iBACzBn9R,EAAO2sI,GAAyBliM,EAAOm2L,IAEvCyQ,EAAa7C,IADCruK,EAAAA,EAAAA,WAAS,GACgB,GACvCw6T,EAAUtpJ,EAAW,GACrB+rJ,EAAa/rJ,EAAW,GACtBgsJ,GAAiBn9T,EAAAA,EAAAA,SAAO,GACxBo9T,GAAap9T,EAAAA,EAAAA,SAAO,GACpBq9T,GAAWr9T,EAAAA,EAAAA,QAAO,MAClBgqQ,GAAYhqQ,EAAAA,EAAAA,QAAO,MACnB/5C,EAAQ,SAAe03G,GACrB0/P,EAAS1kW,SACXshW,GAAaoD,EAAS1kW,QAASglG,EAEnC,EAMEuyI,EAAmB5hC,GAHCkF,GAAejpM,EAAMtZ,aAAc,CACrD3/B,MAAOi5C,EAAMj5C,QAEoC,GACnDA,EAAQ4+Q,EAAiB,GACzB96N,EAAW86N,EAAiB,GAC1BkY,OAAwBzoR,IAAVrO,GAAiC,OAAVA,EAAiB,GAAKqI,OAAOrI,GAIpEggP,EAAahD,IADEruK,EAAAA,EAAAA,UAAS,MACgB,GACxC56C,EAAYisN,EAAW,GACvBgsJ,EAAehsJ,EAAW,GAGxBisJ,EAAclB,GAAS31V,EAAO41V,GAC9B5oH,EAAY6pH,EAAY7nX,KAAO2wE,EAC/Bm3S,EAAcD,EAAYd,SAASr0G,GACnCq1G,IAAiB/pH,GAAa8pH,EAAc9pH,GAGhD/zM,EAAAA,EAAAA,qBAAoB11B,GAAK,WACvB,IAAIyzV,EACJ,MAAO,CACLz3W,MAAOA,EACPJ,KAAM,WACJ,IAAI83W,EACuC,QAA1CA,EAAoBN,EAAS1kW,eAA2C,IAAtBglW,GAAgCA,EAAkB93W,MACvG,EACAk0W,kBAAmB,SAA2BxkX,EAAOC,EAAK26G,GACxD,IAAIytQ,EACwC,QAA3CA,EAAqBP,EAAS1kW,eAA4C,IAAvBilW,GAAiCA,EAAmB7D,kBAAkBxkX,EAAOC,EAAK26G,EACxI,EACA54H,OAAQ,WACN,IAAIsmY,EACwC,QAA3CA,EAAqBR,EAAS1kW,eAA4C,IAAvBklW,GAAiCA,EAAmBtmY,QAC1G,EACAgc,MAAO8pX,EAAS1kW,QAChB4pM,eAA6D,QAA5Cm7J,EAAqB1zD,EAAUrxS,eAA4C,IAAvB+kW,OAAgC,EAASA,EAAmBn7J,gBAAkB86J,EAAS1kW,QAEhK,KACA+mC,EAAAA,EAAAA,YAAU,WACJ09T,EAAWzkW,UACbykW,EAAWzkW,SAAU,GAEvBukW,GAAW,SAAU5tW,GACnB,QAAOA,IAAQonB,IAAmBpnB,CACpC,GACF,GAAG,CAAConB,IACJ,IAAIonV,EAAgB,SAAuB59W,EAAGw5R,EAAcx0K,GAC1D,IAMQ64P,EAAoBC,EANxBC,EAAWvkF,EACf,IAAKyjF,EAAexkW,SAAW4kW,EAAYW,iBAAmBX,EAAY7nX,KAAO6nX,EAAYd,SAAS/iF,GAAgB6jF,EAAY7nX,IAI5HgkS,KAHJukF,EAAWV,EAAYW,gBAAgBxkF,EAAc,CACnDhkS,IAAK6nX,EAAY7nX,QAIjB4nX,EAAa,EAA8C,QAA3CS,EAAqBV,EAAS1kW,eAA4C,IAAvBolW,OAAgC,EAASA,EAAmB5vU,iBAAmB,GAAgD,QAA3C6vU,EAAqBX,EAAS1kW,eAA4C,IAAvBqlW,OAAgC,EAASA,EAAmB5vU,eAAiB,SAEpR,GAAoB,mBAAhB82E,EAAK5mI,OAGd,OAEF82C,EAAS6oV,GACLZ,EAAS1kW,SACXqhW,GAAgBqD,EAAS1kW,QAASzY,EAAGwzN,EAAUuqJ,EAEnD,GACAv+T,EAAAA,EAAAA,YAAU,WAEN,IAAIy+T,EADF94W,IAE0C,QAA3C84W,EAAqBd,EAAS1kW,eAA4C,IAAvBwlW,GAAiCA,EAAmBpE,kBAAkBhtX,MAAMoxX,EAAoBzoJ,GAAmBrwN,IAE3K,GAAG,CAACA,IACJ,IAAI+4W,EAAmB,SAA0Bl+W,GAC/C49W,EAAc59W,EAAGA,EAAEziB,OAAOnM,MAAO,CAC/BgN,OAAQ,UAEZ,EACI+/X,EAA2B,SAAkCn+W,GAC/Di9W,EAAexkW,SAAU,EACzBmlW,EAAc59W,EAAGA,EAAEkkC,cAAc9yD,MAAO,CACtCgN,OAAQ,mBAEW,OAArB2+X,QAAkD,IAArBA,GAA+BA,EAAiB/8W,EAC/E,EACIs7S,EAAgB,SAAuBt7S,GACrCy8W,GAA0B,UAAVz8W,EAAE1oB,MAAoB4lY,EAAWzkW,UACnDykW,EAAWzkW,SAAU,EACrBgkW,EAAaz8W,IAED,OAAd6gO,QAAoC,IAAdA,GAAwBA,EAAU7gO,EAC1D,EACIo+W,EAAc,SAAqBp+W,GACvB,UAAVA,EAAE1oB,MACJ4lY,EAAWzkW,SAAU,GAEX,OAAZikW,QAAgC,IAAZA,GAAsBA,EAAQ18W,EACpD,EACIq+W,EAAc,SAAqBr+W,GACrCg9W,GAAW,GACC,OAAZl8I,QAAgC,IAAZA,GAAsBA,EAAQ9gO,EACpD,EACIs+W,EAAa,SAAoBt+W,GAC/Bk9W,EAAWzkW,UACbykW,EAAWzkW,SAAU,GAEvBukW,GAAW,GACA,OAAXtD,QAA8B,IAAXA,GAAqBA,EAAO15W,EACjD,EAUIu+W,EAAgBhB,GAAgB,GAAGvmY,OAAO80O,EAAW,iBA6CzD,OAAoBzlB,EAAAA,cAAoBm4K,GAAW/sK,GAAS,CAAC,EAAG7xH,EAAM,CACpEksI,UAAWA,EACX/xO,UAAWshY,KAAKthY,EAAWwkY,GAC3B9D,YAzDgB,SAAqBz6W,GACrCk1B,EAAS,IACTnvB,IACIo3W,EAAS1kW,SACXqhW,GAAgBqD,EAAS1kW,QAASzY,EAAGwzN,EAEzC,EAoDEpiP,MAAO82R,EACPqyG,QAASA,EACTR,aAAch0W,EACd66G,OAzBc,WAEd,IAAI69P,EAAe/kY,OAAO85Q,GAAa,EACvC,GAAI5yI,GAAUy8P,EAAY7nI,KAAM,CAC9B,IAAIkpI,EAAYrB,EAAYf,cAAgBe,EAAYf,cAAc,CACpElrY,MAAO82R,EACP1hP,MAAO82V,EACPn3S,UAAWqtL,IACR,GAAGx8Q,OAAOsmY,GAAatmY,OAAOynY,EAAe,MAAMznY,OAAOw8Q,GAAa,IAC5E,OAAoBntD,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMg3K,EAAY7nI,MAAqBnvC,EAAAA,cAAoB,OAAQ,CACzHtsN,UAAWshY,KAAK,GAAGrkY,OAAO80O,EAAW,uBAAuBzhI,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,4BAA6BlrG,GAAwB,OAAfolF,QAAsC,IAAfA,OAAwB,EAASA,EAAWx/K,OAC9M1uC,MAAOkzO,GAAc,CAAC,EAAc,OAAX18M,QAA8B,IAAXA,OAAoB,EAASA,EAAOkY,QAC/Ek4V,GAAY99P,EACjB,CACA,OAAO,IACT,CAUU+9P,GACRnoV,SAAUA,EACVyvK,QAASA,EACTD,WAAYA,EACZ13L,OAAQA,IAvDY,WAEpB,IAAI44Q,EAAansM,GAAK1wD,EAAO,CAAC,YAAa,eAAgB,cAAe,aAAc,SAAU,SAAU,aAG5G,eAAgB,YAAa,QAAS,UAAW,WAAY,SAAU,aAAc,YACrF,OAAoBg8K,EAAAA,cAAoB,QAASoL,GAAS,CACxD+qK,aAAcA,GACbt1F,EAAY,CACb1zD,SAAU0qJ,EACVp9I,QAASu9I,EACT3E,OAAQ4E,EACRz9I,UAAWy6E,EACXohE,QAAS0B,EACTrkY,UAAWshY,KAAKvvJ,GAAWzhI,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,aAAct1L,GAA0B,OAAfwvK,QAAsC,IAAfA,OAAwB,EAASA,EAAW3yM,OAChKvb,MAAkB,OAAXw2B,QAA8B,IAAXA,OAAoB,EAASA,EAAOjb,MAC9D02B,IAAKozV,EACLtoX,KAAM8nX,EACNnjY,KAAMA,EACNsjY,mBAAoB,SAA4B98W,GAC9Ci9W,EAAexkW,SAAU,EACD,OAAxBokW,QAAwD,IAAxBA,GAAkCA,EAAoB78W,EACxF,EACA+8W,iBAAkBoB,IAEtB,CA+BIS,GACN,IEzNA,GAXsBpE,IACpB,IAAIqE,EAQJ,MAP0B,kBAAfrE,IAA2C,OAAfA,QAAsC,IAAfA,OAAwB,EAASA,EAAWe,WACxGsD,EAAmBrE,EACVA,IACTqE,EAAmB,CACjBtD,UAAwBl1K,EAAAA,cAAoB2gI,GAAmB,QAG5D63C,CAAgB,ECXlB,SAASC,GAAoBhzJ,EAAW78L,EAAQs3Q,GACrD,OAAOvgG,KAAW,CAChB,CAAC,GAAG8lB,oBAAwC,YAAX78L,EACjC,CAAC,GAAG68L,oBAAwC,YAAX78L,EACjC,CAAC,GAAG68L,kBAAsC,UAAX78L,EAC/B,CAAC,GAAG68L,uBAA2C,eAAX78L,EACpC,CAAC,GAAG68L,kBAA2By6E,GAEnC,CACO,MAAMw4E,GAAkBA,CAACC,EAAeC,IAAiBA,GAAgBD,ECgBhF,GArBmB,SAAU5iK,EAAW1mF,GACtC,IAAIwpP,EAAiBj9X,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,QAAKxC,EACzF,IAAIqvB,EAAIC,EACR,MACE2mH,QAASypP,EACT,CAAC/iK,GAAYgjK,GACX/4K,EAAAA,WAAiBg1D,IACfgkH,EAAah5K,EAAAA,WAAiBogG,IAC9B64E,EAA6C,OAApBF,QAAgD,IAApBA,OAA6B,EAASA,EAAgB1pP,QACjH,IAAIqiM,EAEFA,EADqB,qBAAZriM,EACOA,GACY,IAAnBwpP,EACO,aAGoJ,QAAnJnwW,EAAmG,QAA7FD,EAAoB,OAAfuwW,QAAsC,IAAfA,EAAwBA,EAAaC,SAA2C,IAAPxwW,EAAgBA,EAAKqwW,SAAkC,IAAPpwW,EAAgBA,EAAK,WAGnM,MAAO,CAACgpT,EADiB38D,GAASz4Q,SAASo1U,GAE7C,ECzBe,SAASwnD,GAAyBpC,EAAUqC,GACzD,MAAMC,GAA2B3/T,EAAAA,EAAAA,QAAO,IAClC4/T,EAAwBA,KAC5BD,EAAyBhnW,QAAQpkC,KAAKqrB,YAAW,KAC/C,IAAIoP,EAAIC,EAAIiC,EAAIC,GACiB,QAA3BnC,EAAKquW,EAAS1kW,eAA4B,IAAP3J,OAAgB,EAASA,EAAGzb,QAA2G,cAApE,QAA3B0b,EAAKouW,EAAS1kW,eAA4B,IAAP1J,OAAgB,EAASA,EAAG1b,MAAMgiH,aAAa,WAAwD,QAA3BrkG,EAAKmsW,EAAS1kW,eAA4B,IAAPzH,OAAgB,EAASA,EAAG3d,MAAMuyH,aAAa,YACpP,QAA3B30G,EAAKksW,EAAS1kW,eAA4B,IAAPxH,GAAyBA,EAAG5d,MAAMq/B,gBAAgB,SACxF,IACC,EAYL,OAVA8sB,EAAAA,EAAAA,YAAU,KACJggU,GACFE,IAEK,IAAMD,EAAyBhnW,QAAQnlC,SAAQsxV,IAChDA,GACFryR,aAAaqyR,EACf,MAED,IACI86C,CACT,CCpBA,IAAIvhG,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAwKA,UAnJ2B6jF,EAAAA,EAAAA,aAAW,CAAC1/D,EAAON,KAC5C,MACI+hM,UAAW2vC,EAAkB,SAC7BkkH,GAAW,EACX1wV,OAAQgwV,EACRpqX,KAAMgyS,EACNrwQ,SAAU+gS,EAAc,OACxBmiD,EAAM,QACN54I,EAAO,OACPlgH,EAAM,WACN45P,EAAU,WACVH,EAAU,YACVD,EAAW,UACXrgY,EAAS,MACTjC,EAAK,OACLw2B,EAAM,cACNm8O,EAAa,SACbj3B,EACAxtB,WAAYC,EACZvwE,QAASkqP,GACPv1V,EACJu1D,EAAOu+L,GAAO9zP,EAAO,CAAC,YAAa,WAAY,SAAU,OAAQ,WAAY,SAAU,UAAW,SAAU,aAAc,aAAc,cAAe,YAAa,QAAS,SAAU,gBAAiB,WAAY,aAAc,YAOpO,MAAM,aACJixO,EAAY,UACZrrJ,EACAuqQ,WAAYqF,EACZrD,aAAcsD,EACd/lY,UAAW80O,EACX/2O,MAAO83T,EACP5pG,WAAY6pG,EACZvhS,OAAQwhS,GACNj0C,GAAmB,SACjB/vC,EAAYwvC,EAAa,QAASG,GAClC0hH,GAAWr9T,EAAAA,EAAAA,QAAO,MAElB4uN,EAAU8qC,GAAa1tF,IACtBi0J,EAAkBpgH,EAAQ8nB,GAAa4xF,GAAevtJ,EAAW2+B,IACjE+8B,GAAcjX,GAASzkD,EAAW4iD,IAEnC,YACJo5B,EAAW,sBACXJ,GACEF,GAAsB17E,EAAW77G,GAE/Bk4L,EAAaC,IAAQ9uL,IACzB,IAAIxqG,EACJ,OAA0F,QAAlFA,EAAoB,OAAf+3R,QAAsC,IAAfA,EAAwBA,EAAaiB,SAAgC,IAAPh5R,EAAgBA,EAAKwqG,CAAG,IAGtH9iF,EAAW6vK,EAAAA,WAAiBk9G,IAC5B9hF,EAAoC,OAAnB81F,QAA8C,IAAnBA,EAA4BA,EAAiB/gS,GAG7FvH,OAAQ+vV,EAAa,YACrBz4E,EAAW,aACXC,IACEjnP,EAAAA,EAAAA,YAAW0mP,IACT+5E,EAAejB,GAAgBC,EAAeC,GAE9CgB,EC/FD,SAAyB51V,GAC9B,SAAUA,EAAMm8D,QAAUn8D,EAAMu2F,QAAUv2F,EAAMmwV,YAAcnwV,EAAM+xV,UACtE,CD6F+BhB,CAAgB/wV,MAAYk8Q,GAC7BzmP,EAAAA,EAAAA,QAAOmgU,GAcnC,MAAMP,EAAwBH,GAAyBpC,GAAU,GAa3DvB,GAAcr1E,GAAe3lL,IAAyBylF,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMzlF,EAAQ2lL,GAAeC,GACvHq4E,EAAmBqB,GAA6B,OAAf1F,QAAsC,IAAfA,EAAwBA,EAAaqF,IAC5FnqP,EAASyqP,GAAoBC,GAAW,QAASR,EAAeD,GACvE,OAAOI,EAAiBv4F,EAAwBnhF,EAAAA,cAAoBg6K,GAAS7nY,OAAOoD,OAAO,CACzFmuC,IAAK84L,GAAW94L,EAAKozV,GACrBrxJ,UAAWA,EACX0wJ,aAAcsD,GACblgS,EAAM,CACPppD,SAAUirM,EACVi4I,OArBiB15W,IACjB0/W,IACW,OAAXhG,QAA8B,IAAXA,GAA6BA,EAAO15W,EAAE,EAoBzD8gO,QAlBkB9gO,IAClB0/W,IACY,OAAZ5+I,QAAgC,IAAZA,GAA8BA,EAAQ9gO,EAAE,EAiB5DloB,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg0T,GAAe93T,GACtDw2B,OAAQ91B,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGk0T,GAAgBxhS,GACxDsyG,OAAQg7P,EACRpB,WAAYqE,EACZ9kY,UAAWisN,KAAWjsN,EAAW0wQ,EAAeg9B,EAAW/Y,EAASg5B,EAAuB74E,GAC3F2E,SApBmBxzN,IACnB0/W,IACa,OAAblsJ,QAAkC,IAAbA,GAA+BA,EAASxzN,EAAE,EAmB/Do6W,YAAaA,GAA6B/zK,EAAAA,cAAoBoqG,GAAiB,CAC7E7hP,MAAM,EACNnyD,OAAO,GACN29W,GACHC,WAAYA,GAA4Bh0K,EAAAA,cAAoBoqG,GAAiB,CAC3E7hP,MAAM,EACNnyD,OAAO,GACN49W,GACHr0K,WAAYxtN,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGqqN,GAAU4pG,GAAoB,CACtFx8S,MAAO2yM,KAAW,CAChB,CAAC,GAAG8lB,QAAgC,UAAfq8E,EACrB,CAAC,GAAGr8E,QAAgC,UAAfq8E,EACrB,CAAC,GAAGr8E,SAAgC,QAAd77G,GACT,OAAZg2F,QAAgC,IAAZA,OAAqB,EAASA,EAAQ5yM,MAAOw8S,EAAkBx8S,MAAOssQ,GAC7FjqI,QAASswE,KAAW,CAClB,CAAC,GAAG8lB,KAAap2F,KAAYyqP,GAC5BrB,GAAoBhzJ,EAAWk0J,IAClCnF,aAAc70K,KAAW,CACvB,CAAC,GAAG8lB,sBAA8C,UAAfq8E,EACnC,CAAC,GAAGr8E,sBAA8C,UAAfq8E,EACnC,CAAC,GAAGr8E,uBAA8C,QAAd77G,GACnC0vJ,GACHtvL,QAAS21H,KAAW,CAClB,CAAC,GAAG8lB,eAAsC,QAAd77G,GAC3B0vJ,GACHo7G,aAAc/0K,KAAW,CACvB,CAAC,GAAG8lB,sBAA8C,UAAfq8E,EACnC,CAAC,GAAGr8E,sBAA8C,UAAfq8E,EACnC,CAAC,GAAGr8E,uBAA8C,QAAd77G,EACpC,CAAC,GAAG67G,mBAA2Bp2F,KAAYyqP,GAC1CrB,GAAoB,GAAGhzJ,kBAA2Bk0J,EAAcz5E,GAAc5mC,SAEhF,IEzKD2gH,GAAcnlR,IAClB,MAAM,aACJu0K,EAAY,UACZiR,GACExlL,EACJ,MAAO,CACL,CAACu0K,GAAe,CACd12R,QAAS,cACTs5R,WAAY,SACZ4oD,SAAU,SACV9zB,UAAWzmB,EACX,QAAS,CACP1wK,UAAW,OAEb,CAAC,GAAGy/J,WAAuB,CACzBx6P,UAAW,SACX6vQ,cAAe5pL,EAAMulL,YAGvB,CAAC,IAAIhR,QAAmBA,WAAuB,CAC7CqV,cAAe5pL,EAAMq6J,KAAKr6J,EAAMulL,YAAYv3E,IAAI,GAAG19C,SAErD,CAAC,IAAIikH,QAAmBA,WAAuB,CAC7CqV,cAAe5pL,EAAMwlL,YAG1B,EAGH,GAAezQ,GAAc,CAAC,QAAS,QAAQ/0K,IAC7C,MAAMm+Q,EAAansG,GAAWhyK,EAAO66Q,GAAe76Q,IACpD,MAAO,CAACmlR,GAAYhH,GAAY,GAC/BpD,ICjCH,IAAI/3F,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAIA,MA8DA,GA9D8BmgM,EAAAA,YAAiB,CAACh8K,EAAON,KACrD,MAAM,MACF34C,EAAK,SACLoiP,EAAQ,eACR+sJ,EAAc,MACd79X,EAAK,KACLq0I,GACE1sG,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,QAAS,WAAY,iBAAkB,QAAS,SACvEm2V,EAAgBpvY,GAAyB,kBAAT2lJ,EAAoBA,EAAO3lJ,EAK3D+rY,EAAW92K,EAAAA,OAAa,MAC9BA,EAAAA,oBAA0Bt8K,GAAK,IAAMozV,EAAS1kW,UAE9C,MAAMgoW,EAAgBA,KACpBtzJ,IAAI,KACF,IAAIr+M,EACJ,MAAM4xW,EAAuC,QAA3B5xW,EAAKquW,EAAS1kW,eAA4B,IAAP3J,OAAgB,EAASA,EAAGzb,MAC7EvZ,SAASyrB,gBAAkBm7W,GAAYA,GACzCA,EAASrpY,QACX,GACA,EAyBJ,OAAoBgvN,EAAAA,cAAoB8rI,GAAO35V,OAAOoD,OAAO,CAC3DpC,MAAe,IAATu9I,EAAgB,WAAa,QAClCu1F,EAAW,CACZviM,IAAKozV,EACL/rY,MAAOovY,EACPG,QA5CuB3gX,IACvBwzN,EAAS9wO,EAAOsd,EAAEziB,OAAOnM,MAAM,EA4C/B0vP,QAAS2/I,EACT5/I,UA7BwBj1L,IACxB,MAAM,IACJt0D,EAAG,QACH0uD,EAAO,QACPG,GACEyF,EACQ,cAARt0D,EACFipY,EAAe79X,EAAQ,GACN,eAARpL,EACTipY,EAAe79X,EAAQ,GACN,MAARpL,IAAgB0uD,GAAWG,IACpCyF,EAAMrH,iBAERk8U,GAAe,EAiBf/D,QAfsB18W,IACR,cAAVA,EAAE1oB,KAAwBlG,GAC5BmvY,EAAe79X,EAAQ,GAEzB+9X,GAAe,EAYf/1C,YAAa+1C,EACb91C,UAAW81C,IACV,ICtEL,IAAItiG,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAaA,SAAS06W,GAASp7V,GAChB,OAAQA,GAAO,IAAI75B,MAAM,GAC3B,CACA,MA8KA,GA9KyB06M,EAAAA,YAAiB,CAACh8K,EAAON,KAChD,MACI+hM,UAAW2vC,EAAkB,OAC7B9nR,EAAS,EACTkhB,KAAMgyS,EAAU,aAChB91R,EAAY,MACZ3/B,EAAK,SACLoiP,EAAQ,UACR6oJ,EAAS,UACTxkX,EAAS,QACT69H,EAAO,SACPl/F,EACAvH,OAAQgwV,EAAY,UACpBn4T,EAAS,KACTiwE,EAAI,KACJv9I,EAAI,QACJmnY,EAAO,UACPE,GACEx2V,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,SAAU,OAAQ,eAAgB,QAAS,WAAY,YAAa,YAAa,UAAW,WAAY,SAAU,YAAa,OAAQ,OAAQ,UAAW,cAKpM,MAAM,aACJixO,EAAY,UACZrrJ,GACEo2F,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,MAAOG,GAChCqlH,EAAWn3C,GAAUr9G,EAAW,CACpCw9G,MAAM,EACN/6U,MAAM,EACN03H,MAAM,IAIFioJ,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GAEtDy5B,EAAaC,IAAQ9uL,GAAsB,OAAfutL,QAAsC,IAAfA,EAAwBA,EAAavtL,IAExF+pL,EAAch9F,EAAAA,WAAiB4/F,IAC/B+5E,EAAejB,GAAgB17E,EAAYp0Q,OAAQgwV,GACnD8B,EAAmB16K,EAAAA,SAAc,IAAM7tN,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGynT,GAAc,CACzFp0Q,OAAQ+wV,EACRz5E,aAAa,EACbC,aAAc,QACZ,CAACnD,EAAa28E,IAEZnkJ,EAAex1B,EAAAA,OAAa,MAC5BpvJ,EAAOovJ,EAAAA,OAAa,CAAC,GAC3BA,EAAAA,oBAA0Bt8K,GAAK,KAAM,CACnChkB,MAAOA,KACL,IAAI+I,EACuB,QAA1BA,EAAKmoC,EAAKx+B,QAAQ,UAAuB,IAAP3J,GAAyBA,EAAG/I,OAAO,EAExEJ,KAAMA,KACJ,IAAImJ,EACJ,IAAK,IAAIp7B,EAAI,EAAGA,EAAIC,EAAQD,GAAK,EACJ,QAA1Bo7B,EAAKmoC,EAAKx+B,QAAQ/kC,UAAuB,IAAPo7B,GAAyBA,EAAGnJ,MACjE,EAEF08M,cAAewZ,EAAapjN,YAG9B,MAAMuoW,EAAoB/pH,GAAOolH,EAAYA,EAAUplH,GAAOA,GAEvDgqH,EAAYC,GAAiB76K,EAAAA,SAAeu6K,GAASI,EAAkBjwW,GAAgB,MAC9Fs1L,EAAAA,WAAgB,UACA5mN,IAAVrO,GACF8vY,EAAcN,GAASxvY,GACzB,GACC,CAACA,IACJ,MAAM+vY,EAA0Bp0J,IAASq0J,IACvCF,EAAcE,GACVT,GACFA,EAAQS,GAGN5tJ,GAAY4tJ,EAAeztY,SAAWA,GAAUytY,EAAev9X,OAAM+I,GAAKA,KAAMw0X,EAAex9X,MAAK,CAACgJ,EAAGlK,IAAUu+X,EAAWv+X,KAAWkK,KAC1I4mO,EAAS4tJ,EAAe3pY,KAAK,IAC/B,IAEI4pY,EAAat0J,IAAS,CAACrqO,EAAOu0Q,KAClC,IAAIqqH,EAAY9rJ,GAAmByrJ,GAEnC,IAAK,IAAIvtY,EAAI,EAAGA,EAAIgP,EAAOhP,GAAK,EACzB4tY,EAAU5tY,KACb4tY,EAAU5tY,GAAK,IAGfujR,EAAItjR,QAAU,EAChB2tY,EAAU5+X,GAASu0Q,EAEnBqqH,EAAYA,EAAU9pY,MAAM,EAAGkL,GAAO1L,OAAO4pY,GAAS3pH,IAExDqqH,EAAYA,EAAU9pY,MAAM,EAAG7D,GAE/B,IAAK,IAAID,EAAI4tY,EAAU3tY,OAAS,EAAGD,GAAK,IAClC4tY,EAAU5tY,GAD2BA,GAAK,EAI9C4tY,EAAU58S,MAGZ,MAAM68S,EAAiBP,EAAkBM,EAAUzhY,KAAI+M,GAAKA,GAAK,MAAKnV,KAAK,KAO3E,OANA6pY,EAAYV,GAASW,GAAgB1hY,KAAI,CAAC+M,EAAGlZ,IACjC,MAANkZ,GAAc00X,EAAU5tY,GAGrBkZ,EAFE00X,EAAU5tY,KAId4tY,CAAS,IAGZE,EAAgBA,CAAC9+X,EAAOu0Q,KAC5B,IAAInoP,EACJ,MAAMwyW,EAAYD,EAAW3+X,EAAOu0Q,GAC9BniK,EAAY9gH,KAAKyhB,IAAI/S,EAAQu0Q,EAAItjR,OAAQA,EAAS,GACpDmhH,IAAcpyG,QAA8BjD,IAArB6hY,EAAU5+X,KACA,QAAlCosB,EAAKmoC,EAAKx+B,QAAQq8E,UAA+B,IAAPhmF,GAAyBA,EAAG/I,SAEzEo7W,EAAwBG,EAAU,EAE9BG,EAAsB3sR,IAC1B,IAAIhmF,EAC+B,QAAlCA,EAAKmoC,EAAKx+B,QAAQq8E,UAA+B,IAAPhmF,GAAyBA,EAAG/I,OAAO,EAG1E27W,EAAmB,CACvBhsP,UACAl/F,WACAvH,OAAQ+wV,EACRjpP,OACAv9I,OACAqnY,aAQF,OAAOr5F,EAAwBnhF,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CAAC,EAAGklY,EAAU,CACpF/2V,IAAK8xM,EACL9hP,UAAWisN,KAAW8lB,EAAW,CAC/B,CAAC,GAAGA,QAAgC,UAAfq8E,EACrB,CAAC,GAAGr8E,QAAgC,UAAfq8E,EACrB,CAAC,GAAGr8E,SAAgC,QAAd77G,GACrBw3K,EAAW9nB,KACCt5D,EAAAA,cAAoB4/F,GAAqBx8M,SAAU,CAClEr4G,MAAO2vY,GACN1tY,MAAM8J,KAAK,CACZxJ,WACCkM,KAAI,CAAC8jB,EAAGjhB,KACT,MAAMpL,EAAM,OAAOoL,IACbi/X,EAAcV,EAAWv+X,IAAU,GACzC,OAAoB2jN,EAAAA,cAAoBA,EAAAA,SAAgB,CACtD/uN,IAAKA,GACS+uN,EAAAA,cAAoBu7K,GAAUppY,OAAOoD,OAAO,CAC1DmuC,IAAK22V,IACHzpU,EAAKx+B,QAAQ/1B,GAASg+X,CAAQ,EAEhCh+X,MAAOA,EACPmS,KAAMszS,EACNw0E,SAAU,EACV5iY,UAAW,GAAG+xO,UACd0H,SAAUguJ,EACVpwY,MAAOuwY,EACPpB,eAAgBkB,EAChB36T,UAAqB,IAAVpkE,GAAeokE,GACzB46T,IAAoB7pX,GAAanV,EAAQ/O,EAAS,GAlC/B+O,KACtB,MAAMe,EAA8B,oBAAdoU,EAA2BA,EAAUnV,GAASmV,EACpE,OAAOpU,EAAsB4iN,EAAAA,cAAoB,OAAQ,CACvDtsN,UAAW,GAAG+xO,eACbroO,GAAU,IAAI,EA8ByCo+X,CAAgBn/X,GAAO,MAC9E,ICpMP,SAD2B,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,kqBAAqqB,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,0JAA8J,KAAQ,gBAAiB,MAAS,YCMxiC,IAAIo/X,GAAuB,SAA8Bz3V,EAAON,GAC9D,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMs9L,KAEV,EAOA,SAJ2B17K,EAAAA,WAAiBy7K,ICb5C,SADkB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,oeAAwe,KAAQ,MAAO,MAAS,YCMzpB,IAAIE,GAAc,SAAqB33V,EAAON,GAC5C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMw9L,KAEV,EAOA,SAJ2B57K,EAAAA,WAAiB27K,ICb5C,IAAI7jG,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAYA,MAAMg8W,GAAoB71I,GAAWA,EAAuBhmC,EAAAA,cAAoB27K,GAAa,MAAqB37K,EAAAA,cAAoBy7K,GAAsB,MACtJK,GAAY,CAChBC,MAAO,UACPC,MAAO,eAwFT,SAtF8Bh8K,EAAAA,YAAiB,CAACh8K,EAAON,KACrD,MACEyM,SAAU+gS,EAAc,OACxB56Q,EAAS,QAAO,iBAChB2lU,GAAmB,EAAI,WACvBC,EAAaL,IACX73V,EAEEmM,EAAW6vK,EAAAA,WAAiBk9G,IAC5B9hF,EAAoC,OAAnB81F,QAA8C,IAAnBA,EAA4BA,EAAiB/gS,EACzFgsV,EAAmD,kBAArBF,QAA8D7iY,IAA7B6iY,EAAiBj2I,SAC/EA,EAASo2I,IAAc1iU,EAAAA,EAAAA,WAAS,MAAMyiU,GAAuBF,EAAiBj2I,UAC/E8wI,GAAWr9T,EAAAA,EAAAA,QAAO,MACxBumJ,EAAAA,WAAgB,KACVm8K,GACFC,EAAWH,EAAiBj2I,QAC9B,GACC,CAACm2I,EAAsBF,IAE1B,MAAM5C,EAAwBH,GAAyBpC,GACjDptJ,EAAkBA,KACtB,IAAIjhN,EACJ,GAAI2yN,EACF,OAEE4K,GACFqzI,IAEF,MAAMxpI,GAAe7J,EACrBo2I,EAAWvsI,GACqB,kBAArBosI,IACmC,QAA3CxzW,EAAKwzW,EAAiBvyJ,uBAAoC,IAAPjhN,GAAyBA,EAAGv8B,KAAK+vY,EAAkBpsI,GACzG,GAsBI,UACFn8P,EACA+xO,UAAW2vC,EACX89G,eAAgBmJ,EAAuB,KACvC7tX,GACEw1B,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,YAAa,iBAAkB,UACnE,aACJixO,GACEj1D,EAAAA,WAAiBg1D,IACfk+G,EAAiBj+G,EAAa,QAASonH,GACvC52J,EAAYwvC,EAAa,iBAAkBG,GAC3CknH,EAAaL,GAhCHx2J,KACd,MAAM82J,EAAcT,GAAUxlU,IAAW,GACnC8nI,EAAO89L,EAAWl2I,GAClBw2I,EAAY,CAChB,CAACD,GAAc7yJ,EACfh2O,UAAW,GAAG+xO,SACdx0O,IAAK,eACLozV,YAAa1qU,IAGXA,EAAEukC,gBAAgB,EAEpBomS,UAAW3qU,IAGTA,EAAEukC,gBAAgB,GAGtB,OAAoB8hK,EAAAA,aAAgCA,EAAAA,eAAqB5hB,GAAQA,EAAoB4hB,EAAAA,cAAoB,OAAQ,KAAM5hB,GAAOo+L,EAAU,EAcnHC,CAAQh3J,GACzCi3J,EAAiB/8K,KAAW8lB,EAAW/xO,EAAW,CACtD,CAAC,GAAG+xO,KAAaj3N,OAAWA,IAExBmuX,EAAexqY,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGm/F,GAAKuxI,EAAW,CAAC,SAAU,aAAc,sBAAuB,CACnH9yO,KAAM6yP,EAAU,OAAS,WACzBtyP,UAAWgpY,EACXj3J,UAAWytJ,EACX34P,OAAQ+hQ,IAKV,OAHI9tX,IACFmuX,EAAanuX,KAAOA,GAEFwxM,EAAAA,cAAoB8rI,GAAO35V,OAAOoD,OAAO,CAC3DmuC,IAAK84L,GAAW94L,EAAKozV,IACpB6F,GAAc,ICzGnB,IAAI7kG,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EA6IA,SAlI4BmgM,EAAAA,YAAiB,CAACh8K,EAAON,KACnD,MACI+hM,UAAW2vC,EACX89G,eAAgBmJ,EAAuB,UACvC3oY,EACA8a,KAAMyiU,EAAa,OACnB12M,EAAM,YACNqiQ,GAAc,EAAK,WACnB5I,EAAU,QACV71P,EAAO,SACPhuF,EACA0sV,SAAUC,EACV3vJ,SAAU4vJ,EAAc,mBACxBtG,EAAkB,iBAClBC,GACE1yV,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,iBAAkB,YAAa,OAAQ,SAAU,cAAe,aAAc,UAAW,WAAY,WAAY,WAAY,qBAAsB,sBACvL,aACJixO,EAAY,UACZrrJ,GACEo2F,EAAAA,WAAiBg1D,IACfk/C,EAAcl0G,EAAAA,QAAa,GAC3BylB,EAAYwvC,EAAa,eAAgBG,GACzC89G,EAAiBj+G,EAAa,QAASonH,IACvC,YACJ56E,GACEN,GAAsB17E,EAAW77G,GAC/Bp7G,EAAOuzS,IAAQ9uL,IACnB,IAAIxqG,EACJ,OAAmG,QAA3FA,EAAuB,OAAlBwoT,QAA4C,IAAlBA,EAA2BA,EAAgBxvB,SAAgC,IAAPh5R,EAAgBA,EAAKwqG,CAAG,IAE/H6jQ,EAAW92K,EAAAA,OAAa,MASxBqkI,EAAc1qU,IAClB,IAAI8O,EACAh1B,SAASyrB,iBAA+C,QAA3BuJ,EAAKquW,EAAS1kW,eAA4B,IAAP3J,OAAgB,EAASA,EAAGzb,QAC9F2M,EAAEukC,gBACJ,EAEI2+U,EAAWljX,IACf,IAAI8O,EAAIC,EACJo0W,GACFA,EAAgG,QAAhFp0W,EAAiC,QAA3BD,EAAKquW,EAAS1kW,eAA4B,IAAP3J,OAAgB,EAASA,EAAGzb,aAA0B,IAAP0b,OAAgB,EAASA,EAAG39B,MAAO4uB,EAAG,CAC5I5hB,OAAQ,SAEZ,EAQIilY,EAAoC,mBAAhBJ,EAAyC58K,EAAAA,cAAoBw1I,GAAgB,MAAQ,KACzGynC,EAAe,GAAGx3J,WACxB,IAAIxlL,EACJ,MAAMi9U,EAAuBN,GAAe,CAAC,EACvCO,EAAeD,EAAqB/pY,OAAmD,IAA3C+pY,EAAqB/pY,KAAKwgV,aAE1E1zR,EADEk9U,GAA8C,WAA9BD,EAAqB/pY,KAC9B6vG,GAAak6R,EAAsB/qY,OAAOoD,OAAO,CACxD8uV,cACA/jR,QAAS3mD,IACP,IAAI8O,EAAIC,EACiK,QAAxKA,EAAuH,QAAjHD,EAA8B,OAAzBy0W,QAA0D,IAAzBA,OAAkC,EAASA,EAAqBl5V,aAA0B,IAAPvb,OAAgB,EAASA,EAAG63C,eAA4B,IAAP53C,GAAyBA,EAAGx8B,KAAKu8B,EAAI9O,GACtNkjX,EAASljX,EAAE,EAEb1oB,IAAK,eACJksY,EAAe,CAChBzpY,UAAWupY,EACXzuX,QACE,CAAC,IAEiBwxM,EAAAA,cAAoB1pB,GAAQ,CAChD5iM,UAAWupY,EACX9pY,KAAMypY,EAAc,eAAYxjY,EAChCoV,KAAMA,EACN2hC,SAAUA,EACVl/C,IAAK,cACLozV,YAAaA,EACb/jR,QAASu8T,EACT1+P,QAASA,EACTigE,KAAM4+L,GACLJ,GAED5I,IACF/zU,EAAS,CAACA,EAAQ+iD,GAAagxR,EAAY,CACzC/iY,IAAK,iBAGT,MAAM48K,EAAM8xC,KAAW8lB,EAAW,CAChC,CAAC,GAAGA,SAAgC,QAAd77G,EACtB,CAAC,GAAG67G,KAAaj3N,OAAWA,EAC5B,CAAC,GAAGi3N,mBAA4Bm3J,GAC/BlpY,GACGgrV,EAAWvsV,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG0wO,GAAY,CAC3DvyO,UAAWm6K,EACX43D,UAAWytJ,EACX//X,KAAM,WAUR,OAAoB6sN,EAAAA,cAAoB8rI,GAAO35V,OAAOoD,OAAO,CAC3DmuC,IAAK84L,GAAWs6J,EAAUpzV,GAC1B0yV,aA9DmBz8W,IACfu6S,EAAY9hS,SAAW+rG,GAG3B0+P,EAASljX,EAAE,GA2DV+kU,EAAU,CACXlwU,KAAMA,EACNioX,mBAb+B98W,IAC/Bu6S,EAAY9hS,SAAU,EACC,OAAvBqkW,QAAsD,IAAvBA,GAAyCA,EAAmB98W,EAAE,EAY7F+8W,iBAV6B/8W,IAC7Bu6S,EAAY9hS,SAAU,EACD,OAArBskW,QAAkD,IAArBA,GAAuCA,EAAiB/8W,EAAE,EASvFq6W,WAAY/zU,EACZs6E,OAAQA,EACR4yG,SA3FexzN,KACJ,OAANA,QAAoB,IAANA,OAAe,EAASA,EAAEziB,SAAsB,UAAXyiB,EAAExmB,MAAoB2pY,GAC5EA,EAAenjX,EAAEziB,OAAOnM,MAAO4uB,EAAG,CAChC5hB,OAAQ,UAGO,OAAnBglY,QAA8C,IAAnBA,GAAqCA,EAAepjX,EAAE,EAsFjFw2B,SAAUA,IACT,IC3IL,IAGIitV,GAFAC,GAAe,CAAC,iBAAkB,cAAe,cAAe,iBAAkB,cAAe,cAAe,YAAa,eAAgB,iBAAkB,iBAAkB,QAAS,cAAe,eAAgB,gBAAiB,eAAgB,aAAc,aAAc,eACtRC,GAAqB,CAAC,EA0BX,SAASC,GAAuBC,GAC7C,IAAIC,EAAW7hY,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAC1E8hY,EAAU9hY,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,KAC9E+hY,EAAU/hY,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,KAC7EwhY,MACHA,GAAiB3pY,SAASf,cAAc,aACzB45C,aAAa,YAAa,MACzC8wV,GAAe9wV,aAAa,cAAe,QAI3C8wV,GAAe9wV,aAAa,OAAQ,kBACpC74C,SAASuE,KAAKzD,YAAY6oY,KAKxBI,EAAWxuQ,aAAa,QAC1BouQ,GAAe9wV,aAAa,OAAQkxV,EAAWxuQ,aAAa,SAE5DouQ,GAAe/wV,gBAAgB,QAKjC,IAAIuxV,EAjDC,SAA8B7pY,GACnC,IAAI0pY,EAAW7hY,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAC1E4uP,EAAUz2P,EAAKi7H,aAAa,OAASj7H,EAAKi7H,aAAa,iBAAmBj7H,EAAKi7H,aAAa,QAChG,GAAIyuQ,GAAYH,GAAmB9yI,GACjC,OAAO8yI,GAAmB9yI,GAE5B,IAAI/4P,EAAQC,OAAOC,iBAAiBoC,GAChCwsO,EAAY9uO,EAAMmwI,iBAAiB,eAAiBnwI,EAAMmwI,iBAAiB,oBAAsBnwI,EAAMmwI,iBAAiB,sBACxHi8P,EAAcnvW,WAAWj9B,EAAMmwI,iBAAiB,mBAAqBlzG,WAAWj9B,EAAMmwI,iBAAiB,gBACvGk8P,EAAapvW,WAAWj9B,EAAMmwI,iBAAiB,wBAA0BlzG,WAAWj9B,EAAMmwI,iBAAiB,qBAI3Gm8P,EAAW,CACbC,YAJgBX,GAAa7jY,KAAI,SAAUY,GAC3C,MAAO,GAAGzJ,OAAOyJ,EAAM,KAAKzJ,OAAOc,EAAMmwI,iBAAiBxnI,GAC5D,IAAGhJ,KAAK,KAGNysY,YAAaA,EACbC,WAAYA,EACZv9J,UAAWA,GAKb,OAHIk9J,GAAYjzI,IACd8yI,GAAmB9yI,GAAWuzI,GAEzBA,CACT,CA0B8BE,CAAqBT,EAAYC,GAC3DI,EAAcD,EAAsBC,YACpCC,EAAaF,EAAsBE,WACnCv9J,EAAYq9J,EAAsBr9J,UAClCy9J,EAAcJ,EAAsBI,YAKtCZ,GAAe9wV,aAAa,QAAS,GAAG37C,OAAOqtY,EAAa,KAAKrtY,OA9DvC,wSA+D1BysY,GAAeryY,MAAQyyY,EAAWzyY,OAASyyY,EAAWtnT,aAAe,GACrE,IAEI+3C,EAFA0hI,OAAYv2P,EACZ+1T,OAAY/1T,EAEZtL,EAASsvY,GAAe92R,aAQ5B,GAPkB,eAAdi6H,EAEFzyO,GAAUgwY,EACa,gBAAdv9J,IAETzyO,GAAU+vY,GAEI,OAAZH,GAAgC,OAAZC,EAAkB,CAExCP,GAAeryY,MAAQ,IACvB,IAAImzY,EAAkBd,GAAe92R,aAAeu3R,EACpC,OAAZH,IACF/tI,EAAYuuI,EAAkBR,EACZ,eAAdn9J,IACFovB,EAAYA,EAAYkuI,EAAcC,GAExChwY,EAASH,KAAKwhB,IAAIwgP,EAAW7hQ,IAEf,OAAZ6vY,IACFxuE,EAAY+uE,EAAkBP,EACZ,eAAdp9J,IACF4uF,EAAYA,EAAY0uE,EAAcC,GAExC7vQ,EAAYngI,EAASqhU,EAAY,GAAK,SACtCrhU,EAASH,KAAKyhB,IAAI+/S,EAAWrhU,GAEjC,CACA,IAAI2D,EAAQ,CACV3D,OAAQA,EACRmgI,UAAWA,EACXk9C,OAAQ,QAQV,OANIwkF,IACFl+P,EAAMk+P,UAAYA,GAEhBw/D,IACF19T,EAAM09T,UAAYA,GAEb19T,CACT,CC3GA,IAAI0oO,GAAY,CAAC,YAAa,eAAgB,QAAS,WAAY,WAAY,YAAa,QAAS,WAAY,WAAY,sBA6K7H,SAlKqCna,EAAAA,YAAiB,SAAUh8K,EAAON,GACrE,IAAI0zG,EAAOpzG,EACTyhM,EAAYruF,EAAKquF,UACjB/6M,EAAe0sH,EAAK1sH,aACpB3/B,EAAQqsJ,EAAKrsJ,MACbiyM,EAAW5lD,EAAK4lD,SAChBonC,EAAWhtF,EAAKgtF,SAChB1wO,EAAY0jJ,EAAK1jJ,UACjBjC,EAAQ2lJ,EAAK3lJ,MACb0+C,EAAWinG,EAAKjnG,SAChBg9L,EAAW/1F,EAAK+1F,SAEhBlH,GADqB7uF,EAAK+mP,mBACdj4J,GAAyB9uF,EAAM+iF,KAS3CwvC,EAAmB5hC,GANCkF,GAAeviN,EAAc,CAC/C3/B,MAAOA,EACPqiP,UAAW,SAAmBt4O,GAC5B,OAAe,OAARA,QAAwB,IAARA,EAAiBA,EAAM,EAChD,IAEiD,GACnDy4O,EAAco8B,EAAiB,GAC/By0H,EAAiBz0H,EAAiB,GAOhC00H,EAAcr+K,EAAAA,SAClBA,EAAAA,oBAA0Bt8K,GAAK,WAC7B,MAAO,CACLq8R,SAAUs+D,EAAYjsW,QAE1B,IAGA,IAMEm3O,EAAkBxhC,GANC/nB,EAAAA,SAAc,WAC/B,OAAIhjB,GAAkC,YAAtBruM,EAAAA,GAAAA,GAAQquM,GACf,CAACA,EAAS0gM,QAAS1gM,EAAS2gM,SAE9B,EACT,GAAG,CAAC3gM,IAC6C,GACjD0gM,EAAUn0H,EAAgB,GAC1Bo0H,EAAUp0H,EAAgB,GACxB+0H,IAAiBthM,EA+BnB8qC,EAAmBC,GADC/nB,EAAAA,SA9EJ,GA+EmC,GACnDu+K,EAAcz2J,EAAiB,GAC/B02J,EAAiB12J,EAAiB,GAElCkQ,EAAmBjQ,GADE/nB,EAAAA,WAC+B,GACpDy+K,EAAgBzmJ,EAAiB,GACjC0mJ,EAAmB1mJ,EAAiB,GAClC2mJ,EAAc,WAChBH,EAzFe,EA6FjB,EAGAllU,IAAgB,WACVglU,GACFK,GAEJ,GAAG,CAAC5zY,EAAO2yY,EAASC,EAASW,IAC7BhlU,IAAgB,WACd,GAtGe,IAsGXilU,EACFC,EAtGiB,QAuGZ,GAvGY,IAuGRD,EAAkC,CAC3C,IAAIK,EAAiBrB,GAAuBc,EAAYjsW,SAAS,EAAOsrW,EAASC,GAcjFa,EArHc,GAsHdE,EAAiBE,EACnB,MAnEyB,WACzB,IAEE,GAAInrY,SAASyrB,gBAAkBm/W,EAAYjsW,QAAS,CAClD,IAAIysW,EAAuBR,EAAYjsW,QACrCw1B,EAAiBi3U,EAAqBj3U,eACtCC,EAAeg3U,EAAqBh3U,aACpClzD,EAAYkqY,EAAqBlqY,UAQnC0pY,EAAYjsW,QAAQohW,kBAAkB5rU,EAAgBC,GACtDw2U,EAAYjsW,QAAQz9B,UAAYA,CAClC,CACF,CAAE,MAAOglB,KAGP,CAEJ,CA6CImlX,EAEJ,GAAG,CAACP,IAGJ,IAAIQ,EAAe/+K,EAAAA,SACf+1B,EAAW,WACbjP,GAAIv0I,OAAOwsS,EAAa3sW,QAC1B,EAYA4tL,EAAAA,WAAgB,WACd,OAAO+1B,CACT,GAAG,IAGH,IAAIipJ,EAAsBV,EAAeG,EAAgB,KACrD90I,EAAchlB,GAAcA,GAAc,CAAC,EAAGlzO,GAAQutY,GAK1D,OAzJiB,IAqJbT,GApJiB,IAoJeA,IAClC50I,EAAY17H,UAAY,SACxB07H,EAAY37H,UAAY,UAENgyF,EAAAA,cAAoBwiB,GAAgB,CACtD4B,SAvBqB,SAA0B51N,GAjI/B,IAkIZ+vX,IACW,OAAbn6J,QAAkC,IAAbA,GAAuBA,EAAS51N,GACjDwuL,IACF+4C,IACAgpJ,EAAa3sW,QAAU00M,IAAI,WACzB63J,GACF,KAGN,EAcExuV,WAAY6sJ,GAAYonC,IACVpkB,EAAAA,cAAoB,WAAYoL,GAAS,CAAC,EAAG6a,EAAW,CACtEviM,IAAK26V,EACL5sY,MAAOk4P,EACPj2P,UAAWisN,KAAW8lB,EAAW/xO,GAAWswG,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,aAAct1L,IACnGA,SAAUA,EACVplD,MAAOwiP,EACPJ,SAvIqB,SAA0B5nL,GAC/C64U,EAAe74U,EAAMruD,OAAOnM,OACf,OAAboiP,QAAkC,IAAbA,GAAuBA,EAAS5nL,EACvD,KAsIF,IC5KA,IAAI40K,GAAY,CAAC,eAAgB,QAAS,UAAW,SAAU,WAAY,aAAc,YAAa,qBAAsB,mBAAoB,SAAU,YAAa,YAAa,QAAS,YAAa,QAAS,WAAY,SAAU,aAAc,SAAU,WAAY,UAAW,eAAgB,WAAY,WAAY,aA6NhU,MCjOA,GDY4Bna,EAAAA,YAAiB,SAAU5oE,EAAM1zG,GAC3D,IAAIu7V,EACAv0W,EAAe0sH,EAAK1sH,aACtBw0W,EAAc9nP,EAAKrsJ,MACnB0vP,EAAUrjG,EAAKqjG,QACf44I,EAASj8O,EAAKi8O,OACdlmJ,EAAW/1F,EAAK+1F,SAChBgnJ,EAAa/8O,EAAK+8O,WAClBr0S,EAAYs3D,EAAKt3D,UACjB22S,EAAqBr/O,EAAKq/O,mBAC1BC,EAAmBt/O,EAAKs/O,iBACxBn8P,EAAS6c,EAAK7c,OACdytI,EAAiB5wH,EAAKquF,UACtBA,OAA+B,IAAnBuiC,EAA4B,cAAgBA,EACxD+tH,EAAY3+O,EAAK2+O,UACjB51V,EAAQi3G,EAAKj3G,MACbzsC,EAAY0jJ,EAAK1jJ,UACjBjC,EAAQ2lJ,EAAK3lJ,MACb0+C,EAAWinG,EAAKjnG,SAChB/a,EAASgiH,EAAKhiH,OACduqL,EAAavoE,EAAKuoE,WAClB13L,EAASmvH,EAAKnvH,OACdm8M,EAAWhtF,EAAKgtF,SAChBkwJ,EAAUl9O,EAAKk9O,QACf8B,EAAeh/O,EAAKg/O,aACpBnC,EAAW78O,EAAK68O,SAChBj3L,EAAW5lD,EAAK4lD,SAChBw9C,EAAYpjG,EAAKojG,UACjBjhJ,EAAO2sI,GAAyB9uF,EAAM+iF,IAKtCwvC,EAAmB5hC,GAJCkF,GAAeviN,EAAc,CAC/C3/B,MAAOm0Y,EACPx0W,aAAcA,IAEmC,GACnD3/B,EAAQ4+Q,EAAiB,GACzB96N,EAAW86N,EAAiB,GAC1BkY,OAAwBzoR,IAAVrO,GAAiC,OAAVA,EAAiB,GAAKqI,OAAOrI,GAEpE+8O,EAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnDk0K,EAAUpsJ,EAAiB,GAC3B6uJ,EAAa7uJ,EAAiB,GAC5B8uJ,EAAiB52K,EAAAA,QAAa,GAEhCg4B,EAAmBjQ,GADE/nB,EAAAA,SAAe,MACgB,GACpDm/K,EAAkBnnJ,EAAiB,GACnConJ,EAAqBpnJ,EAAiB,GAGpCyrF,GAAYhqQ,EAAAA,EAAAA,QAAO,MACnB4lU,GAAuB5lU,EAAAA,EAAAA,QAAO,MAC9B6lU,EAAc,WAChB,IAAIC,EACJ,OAAkE,QAA1DA,EAAwBF,EAAqBjtW,eAA+C,IAA1BmtW,OAAmC,EAASA,EAAsBx/D,QAC9I,EACIrgT,EAAQ,WACV4/W,IAAc5/W,OAChB,GACA05C,EAAAA,EAAAA,qBAAoB11B,GAAK,WACvB,IAAIyzV,EACJ,MAAO,CACLqI,kBAAmBH,EAAqBjtW,QACxC1S,MAAOA,EACPJ,KAAM,WACJggX,IAAchgX,MAChB,EACA08M,eAA6D,QAA5Cm7J,EAAqB1zD,EAAUrxS,eAA4C,IAAvB+kW,OAAgC,EAASA,EAAmBn7J,gBAAkBsjK,IAEvJ,KACAnmU,EAAAA,EAAAA,YAAU,WACRw9T,GAAW,SAAU5tW,GACnB,OAAQonB,GAAYpnB,CACtB,GACF,GAAG,CAAConB,IAGJ,IACE+lN,EAAmBnuB,GADE/nB,EAAAA,SAAe,MACgB,GACpDlhM,EAAYo3O,EAAiB,GAC7B6gI,EAAe7gI,EAAiB,GAClCl2C,EAAAA,WAAgB,WAEZ,IAAIy/K,EADF3gX,IAED2gX,EAAeH,KAAe9L,kBAAkBhtX,MAAMi5X,EAActwJ,GAAmBrwN,GAE5F,GAAG,CAACA,IAGJ,IA0DIu5W,EA1DArB,EAAclB,GAAS31V,EAAO41V,GAC9B5oH,EAAqD,QAAxC8xH,EAAmBjI,EAAY7nX,WAAsC,IAArB8vX,EAA8BA,EAAmBn/S,EAG9Gs4S,EAAe/kY,OAAO85Q,GAAa,EACnC8pH,EAAcD,EAAYd,SAASr0G,GACnCq1G,KAAiB/pH,GAAa8pH,EAAc9pH,EAG5CoqH,GAAgB,SAAuB59W,EAAGw5R,GAC5C,IAAIukF,EAAWvkF,GACVyjF,EAAexkW,SAAW4kW,EAAYW,iBAAmBX,EAAY7nX,KAAO6nX,EAAYd,SAAS/iF,GAAgB6jF,EAAY7nX,KAI5HgkS,KAHJukF,EAAWV,EAAYW,gBAAgBxkF,EAAc,CACnDhkS,IAAK6nX,EAAY7nX,QAGjB4nX,EAAa,CAACuI,IAAc13U,gBAAkB,EAAG03U,IAAcz3U,cAAgB,IAGnFhZ,EAAS6oV,GACTjE,GAAgB95W,EAAEkkC,cAAelkC,EAAGwzN,EAAUuqJ,EAChD,EAoCInC,GAAah7P,EAEby8P,EAAY7nI,OAEZkpI,EADErB,EAAYf,cACFe,EAAYf,cAAc,CACpClrY,MAAO82R,EACP1hP,MAAO82V,EACPn3S,UAAWqtL,IAGD,GAAGx8Q,OAAOsmY,GAAatmY,OAAOynY,EAAe,MAAMznY,OAAOw8Q,GAAa,IAErFooH,GAA0Bv1K,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMu1K,GAAyBv1K,EAAAA,cAAoB,OAAQ,CACvHtsN,UAAWshY,KAAK,GAAGrkY,OAAO80O,EAAW,eAA+B,OAAf9lB,QAAsC,IAAfA,OAAwB,EAASA,EAAWx/K,OACxH1uC,MAAkB,OAAXw2B,QAA8B,IAAXA,OAAoB,EAASA,EAAOkY,OAC7Dk4V,KAEL,IAOIqH,IAAkB1iM,IAAa+4L,IAAc5B,EACjD,OAAoBn0K,EAAAA,cAAoBm4K,GAAW,CACjDz0V,IAAK+/R,EACL14U,MAAO82R,EACPsyG,WAAYA,EACZC,YAlCgB,SAAqBz6W,GACrCk1B,EAAS,IACTnvB,IACA+zW,GAAgB6L,IAAe3lX,EAAGwzN,EACpC,EA+BE5yG,OAAQg7P,GACR9vJ,UAAWA,EACX9lB,WAAYglB,GAAcA,GAAc,CAAC,EAAGhlB,GAAa,CAAC,EAAG,CAC3D60K,aAAcQ,KAAoB,OAAfr1K,QAAsC,IAAfA,OAAwB,EAASA,EAAW60K,cAAcxwR,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,eAAgBswJ,GAAY,GAAGplY,OAAO80O,EAAW,yBAA0B0uJ,MAE1OhkV,SAAUA,EACV+jV,QAASA,EACTxgY,UAAWshY,KAAKthY,EAAWwjY,IAAgB,GAAGvmY,OAAO80O,EAAW,kBAChEh0O,MAAOkzO,GAAcA,GAAc,CAAC,EAAGlzO,GAAQ0tY,IAAoBO,GAAiB,CAClF5xY,OAAQ,QACN,CAAC,GACLumY,UAAW,CACTG,aAAc,CACZ,aAAmC,kBAAd6D,EAAyBA,OAAYj/X,IAG9Dg8B,OAAQA,EACR6+V,SAAUA,EACVK,QAASA,GACKt0K,EAAAA,cAAoB2/K,GAAmBv0K,GAAS,CAAC,EAAG7xH,EAAM,CACxEyjG,SAAUA,EACVl9G,UAAWA,EACX06J,UAzEkB,SAAuB7gO,GAC3B,UAAVA,EAAE1oB,KAAmBmlY,GACvBA,EAAaz8W,GAED,OAAd6gO,QAAoC,IAAdA,GAAwBA,EAAU7gO,EAC1D,EAqEEwzN,SA7EqB,SAA0BxzN,GAC/C49W,GAAc59W,EAAGA,EAAEziB,OAAOnM,MAC5B,EA4EE0vP,QArEgB,SAAqB9gO,GACrCg9W,GAAW,GACC,OAAZl8I,QAAgC,IAAZA,GAAsBA,EAAQ9gO,EACpD,EAmEE05W,OAlEe,SAAoB15W,GACnCg9W,GAAW,GACA,OAAXtD,QAA8B,IAAXA,GAAqBA,EAAO15W,EACjD,EAgEE88W,mBAzF+B,SAAoC98W,GACnEi9W,EAAexkW,SAAU,EACF,OAAvBqkW,QAAsD,IAAvBA,GAAiCA,EAAmB98W,EACrF,EAuFE+8W,iBAtF6B,SAAkC/8W,GAC/Di9W,EAAexkW,SAAU,EACzBmlW,GAAc59W,EAAGA,EAAEkkC,cAAc9yD,OACZ,OAArB2rY,QAAkD,IAArBA,GAA+BA,EAAiB/8W,EAC/E,EAmFEjmB,UAAWshY,KAAoB,OAAfr1K,QAAsC,IAAfA,OAAwB,EAASA,EAAWigL,UACnFnuY,MAAOkzO,GAAcA,GAAc,CAAC,EAAc,OAAX18M,QAA8B,IAAXA,OAAoB,EAASA,EAAO23W,UAAW,CAAC,EAAG,CAC3Gz0N,OAAkB,OAAV15K,QAA4B,IAAVA,OAAmB,EAASA,EAAM05K,SAE9Dh7H,SAAUA,EACVs1L,UAAWA,EACXrB,SA/CiB,SAAsB51N,GACvC,IAAIqxX,EACS,OAAbz7J,QAAkC,IAAbA,GAAuBA,EAAS51N,GACb,QAAnCqxX,EAAgBP,WAA6C,IAAlBO,GAA4BA,EAAcpuY,MAAM3D,QAC9FsxY,GAAmB,EAEvB,EA0CE17V,IAAK27V,EACLpL,SAAUA,KAEd,IE/NM6L,GAAmBhrR,IACvB,MAAM,aACJu0K,EAAY,UACZoR,GACE3lL,EACEirR,EAAoB,GAAG12G,aAC7B,MAAO,CACL,CAAC02G,GAAoB,CACnBvoY,SAAU,WACV,eAAgB,CAEd,CAAC,KAAK6xR,KAAiB,CACrBv7R,OAAQ,QAEV,CAAC,GAAGu7R,gBAA4B,CAC9B7xR,SAAU,WACVjF,OAAQuiH,EAAMq6J,KAAKr6J,EAAMvrF,UAAUi7L,IAAI1vG,EAAMrrF,YAAY+6L,KAAK,GAAGp/C,QACjEq6H,eAAgB,EAChBryQ,MAAO0nF,EAAMikL,qBACbvrJ,WAAY,SACZ84F,cAAe,SAGnB,CAAC,6BACmB+iD,8BACD02G,kBAAkC12G,aACjD,CACF0lC,iBAAkBt0B,GAEpB,CAAC,kBAAkBpR,mBAA+B,CAChD37P,QAAS,EACT,CAAC,aAAa27P,KAAiB,CAC7B9/P,SAAU,UACV03G,OAAQ,OACR2gE,QAAS,OACTj6E,WAAY,cACZgoI,UAAW76I,EAAMq6J,KAAKr6J,EAAM84K,eAAe7pE,IAAIjvG,EAAMq6J,KAAKr6J,EAAMzqF,WAAWm6L,IAAI,IAAIp/C,QACnF,UAAW,CACT/3C,UAAW,oBAGf,CAAC,GAAGg8J,YAAwB,CAC1Bt7R,OAAQ,EACR,uBAAwB,CACtB8gU,aAAc,GAGhB,CAAC,GAAGxlC,gBAA4B,CAC9B7xR,SAAU,WACVioS,eAAgB3qL,EAAM4pL,cACtBm0F,gBAAiB/9Q,EAAMwlL,WAGzB,CAAC,GAAGylG,YAA6B,CAC/BvoY,SAAU,WACV/J,IAAK,EACLgyS,eAAgB3qL,EAAM4pL,cACtBnsS,OAAQ,EACRmF,OAAQ,EACR/E,QAAS,cACTs5R,WAAY,SACZl+R,OAAQ,OACRu4O,cAAe,UAIrB,CAAC,kBAAkB+iD,sBAAkC,CACnD,CAAC,GAAGA,YAAwB,CAC1B,CAAC,GAAGA,gBAA4B,CAC9BoW,eAAgB3qL,EAAMw3N,oBAK/B,EAGH,GAAeziD,GAAc,CAAC,QAAS,aAAa/0K,IAClD,MAAMm+Q,EAAansG,GAAWhyK,EAAO66Q,GAAe76Q,IACpD,MAAO,CAACgrR,GAAiB7M,GAAY,GACpCpD,GAAoB,CACrBlmG,WAAW,IClFb,IAAImO,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAkBA,MA0GA,IA1G8B6jF,EAAAA,EAAAA,aAAW,CAAC1/D,EAAON,KAC/C,IAAIjb,EACJ,MACIg9M,UAAW2vC,EAAkB,SAC7BkkH,GAAW,EACX9qX,KAAMyiU,EACN9gS,SAAU+gS,EACVtoS,OAAQgwV,EAAY,WACpBzE,EACAx0K,WAAYC,EAAO,cACnBwkD,EAAa,UACb1wQ,EAAS,MACTjC,EAAK,OACLw2B,EACAonH,QAASkqP,GACPv1V,EACJu1D,EAAOu+L,GAAO9zP,EAAO,CAAC,YAAa,WAAY,OAAQ,WAAY,SAAU,aAAc,aAAc,gBAAiB,YAAa,QAAS,SAAU,YAO5J,MAAM,aACJixO,EAAY,UACZrrJ,EACAuqQ,WAAYqF,EACZrD,aAAcsD,EACd/lY,UAAW80O,EACX/2O,MAAO83T,EACP5pG,WAAY6pG,EACZvhS,OAAQwhS,GACNj0C,GAAmB,YAEjBrlO,EAAW6vK,EAAAA,WAAiBk9G,IAC5B9hF,EAAoC,OAAnB81F,QAA8C,IAAnBA,EAA4BA,EAAiB/gS,GAG7FvH,OAAQ+vV,EAAa,YACrBz4E,EAAW,aACXC,GACEngG,EAAAA,WAAiB4/F,IACf+5E,EAAejB,GAAgBC,EAAeC,GAE9CoH,EAAWhgL,EAAAA,OAAa,MAC9BA,EAAAA,oBAA0Bt8K,GAAK,KAC7B,IAAIjb,EACJ,MAAO,CACL+2W,kBAA+C,QAA3B/2W,EAAKu3W,EAAS5tW,eAA4B,IAAP3J,OAAgB,EAASA,EAAG+2W,kBACnF9/W,MAAO03G,IACL,IAAI3uG,EAAIC,EACRgrW,GAA0G,QAA5FhrW,EAAiC,QAA3BD,EAAKu3W,EAAS5tW,eAA4B,IAAP3J,OAAgB,EAASA,EAAG+2W,yBAAsC,IAAP92W,OAAgB,EAASA,EAAGq3S,SAAU3oM,EAAO,EAEjK93G,KAAMA,KACJ,IAAImJ,EACJ,OAAmC,QAA3BA,EAAKu3W,EAAS5tW,eAA4B,IAAP3J,OAAgB,EAASA,EAAGnJ,MAAM,EAEhF,IAEH,MAAMmmN,EAAYwvC,EAAa,QAASG,GAElCiT,EAAU8qC,GAAa1tF,IACtBi0J,EAAkBpgH,EAAQ8nB,GAAa4xF,GAAevtJ,EAAW2+B,IACjE+8B,GAAcjX,GAASzkD,EAAW4iD,IAEnC,YACJo5B,EAAW,sBACXJ,GACEF,GAAsB17E,EAAW77G,GAE/Bk4L,EAAaC,IAAQ9uL,IACzB,IAAIxqG,EACJ,OAAmG,QAA3FA,EAAuB,OAAlBwoT,QAA4C,IAAlBA,EAA2BA,EAAgBxvB,SAAgC,IAAPh5R,EAAgBA,EAAKwqG,CAAG,KAE9Hoc,EAASyqP,GAAoBC,GAAW,WAAYR,EAAeD,GACpEd,EAAmBqB,GAA6B,OAAf1F,QAAsC,IAAfA,EAAwBA,EAAaqF,GACnG,OAAOE,EAAiBv4F,EAAwBnhF,EAAAA,cAAoBigL,GAAY9tY,OAAOoD,OAAO,CAC5F4gY,aAAcsD,GACblgS,EAAM,CACP9nG,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg0T,GAAe93T,GACtDw2B,OAAQ91B,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGk0T,GAAgBxhS,GACxDkoB,SAAUirM,EACV+4I,WAAYqE,EACZ9kY,UAAWisN,KAAWyhF,EAAW/Y,EAAS30R,EAAW0wQ,EAAei9C,EAAuB74E,GAC3F7oB,WAAYxtN,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGqqN,GAAU4pG,GAAoB,CACtFo2E,SAAUjgL,KAAW,CACnB,CAAC,GAAG8lB,QAAgC,UAAfq8E,EACrB,CAAC,GAAGr8E,QAAgC,UAAfq8E,GACpBxoC,EAAoB,OAAZ15D,QAAgC,IAAZA,OAAqB,EAASA,EAAQggL,SAAUp2E,EAAkBo2E,UACjGvwP,QAASswE,KAAW,CAClB,CAAC,GAAG8lB,KAAap2F,KAAYyqP,GAC5BrB,GAAoBhzJ,EAAWk0J,IAClCnF,aAAc70K,KAAW,GAAG8lB,2BAAoC,CAC9D,CAAC,GAAGA,uBAA8C,QAAd77G,EACpC,CAAC,GAAG67G,sBAA8C,UAAfq8E,EACnC,CAAC,GAAGr8E,sBAA8C,UAAfq8E,EACnC,CAAC,GAAGr8E,yBAAkCzhM,EAAM+xV,YAAqC,QAAtBttW,EAAKub,EAAM7D,aAA0B,IAAP1X,OAAgB,EAASA,EAAG0mO,OACpHmqB,KAEL7zC,UAAWA,EACXlrG,OAAQ2lL,GAA4BlgG,EAAAA,cAAoB,OAAQ,CAC9DtsN,UAAW,GAAG+xO,qBACb06E,GACHz8Q,IAAKs8V,MACF,IC3HDl0C,GAAQo0C,GACdp0C,GAAMpY,MAAQA,GACdoY,GAAMq0C,OAASA,GACfr0C,GAAMs0C,SAAWA,GACjBt0C,GAAMu0C,SAAWA,GACjBv0C,GAAMw0C,IAAMA,GACZ,YCCA,GAfsB,WACpB,MAAMljY,EAASjL,OAAOoD,OAAO,CAAC,EAAGqG,UAAUtO,QAAU,OAAI8L,EAAYwC,UAAU,IAC/E,IAAK,IAAIvO,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CACzC,MAAMuB,EAAMvB,EAAI,GAAKuO,UAAUtO,QAAUD,OAAI+L,EAAYwC,UAAUvO,GAC/DuB,GACFuD,OAAOC,KAAKxD,GAAK3B,SAAQgE,IACvB,MAAM6D,EAAMlG,EAAIqC,QACJmI,IAARtE,IACFsI,EAAOnM,GAAO6D,EAChB,GAGN,CACA,OAAOsI,CACT,ECiDA,SAzDcilR,KACZ,MAAO,CAAEvtK,GAAS+yK,MACX1nQ,GAAU8gU,GAAU,SAGrBs/C,EAFU,IAAInzH,GAAUt4J,EAAM63K,aAET9c,QAAQ5hR,EAAI,GAAM,CAC3C6J,QAAS,KACP,CAAC,EACL,OAAoBkoN,EAAAA,cAAoB,MAAO,CAC7CvuN,MAAO8uY,EACPnyY,MAAO,MACPN,OAAQ,MACR28V,QAAS,cACTh3N,MAAO,8BACOusF,EAAAA,cAAoB,QAAS,MAAkB,OAAX7/L,QAA8B,IAAXA,OAAoB,EAASA,EAAOpM,cAAgB,SAAuBisM,EAAAA,cAAoB,IAAK,CACzKjoH,KAAM,OACNyoS,SAAU,WACIxgL,EAAAA,cAAoB,IAAK,CACvCt0I,UAAW,uBACGs0I,EAAAA,cAAoB,UAAW,CAC7C9sK,YAAa,KACb6kD,KAAM,UACNquB,GAAI,SACJC,GAAI,SACJK,GAAI,SACJC,GAAI,WACWq5F,EAAAA,cAAoB,OAAQ,CAC3CjtN,EAAG,+IACHglG,KAAM,YACSioH,EAAAA,cAAoB,OAAQ,CAC3CjtN,EAAG,2IACHglG,KAAM,yBACNrsB,UAAW,qBACIs0I,EAAAA,cAAoB,OAAQ,CAC3CjtN,EAAG,0FACHglG,KAAM,YACSioH,EAAAA,cAAoB,OAAQ,CAC3CjtN,EAAG,ujBACHglG,KAAM,aACUioH,EAAAA,cAAoB,OAAQ,CAC5CjtN,EAAG,yOACHglG,KAAM,YACSioH,EAAAA,cAAoB,IAAK,CACxCt0I,UAAW,2BACXqsB,KAAM,QACQioH,EAAAA,cAAoB,UAAW,CAC7C55F,GAAI,SACJC,GAAI,QACJK,GAAI,QACJC,GAAI,UACWq5F,EAAAA,cAAoB,OAAQ,CAC3CjtN,EAAG,2DACA,ECLP,SA9Ce0tY,KACb,MAAO,CAAE3rR,GAAS+yK,MACX1nQ,GAAU8gU,GAAU,UACrB,UACJ5vD,EAAS,kBACTE,EAAiB,oBACjBC,EAAmB,iBACnBK,GACE/8K,GACE,YACJnmF,EAAW,YACX+gH,EAAW,aACXgxP,IACEnnU,EAAAA,EAAAA,UAAQ,KAAM,CAChB5qC,YAAa,IAAIy+O,GAAUikB,GAAW/hB,aAAauiB,GAAkBtoG,cACrE75C,YAAa,IAAI09H,GAAUmkB,GAAmBjiB,aAAauiB,GAAkBtoG,cAC7Em3M,aAAc,IAAItzH,GAAUokB,GAAqBliB,aAAauiB,GAAkBtoG,iBAC9E,CAAC8nG,EAAWE,EAAmBC,EAAqBK,IACxD,OAAoB7xE,EAAAA,cAAoB,MAAO,CAC7C5xN,MAAO,KACPN,OAAQ,KACR28V,QAAS,YACTh3N,MAAO,8BACOusF,EAAAA,cAAoB,QAAS,MAAkB,OAAX7/L,QAA8B,IAAXA,OAAoB,EAASA,EAAOpM,cAAgB,SAAuBisM,EAAAA,cAAoB,IAAK,CACzKt0I,UAAW,iBACXqsB,KAAM,OACNyoS,SAAU,WACIxgL,EAAAA,cAAoB,UAAW,CAC7CjoH,KAAM23C,EACNtpB,GAAI,KACJC,GAAI,KACJK,GAAI,KACJC,GAAI,MACWq5F,EAAAA,cAAoB,IAAK,CACxCwgL,SAAU,UACV9sP,OAAQ/kH,GACMqxL,EAAAA,cAAoB,OAAQ,CAC1CjtN,EAAG,kHACYitN,EAAAA,cAAoB,OAAQ,CAC3CjtN,EAAG,gPACHglG,KAAM2oS,MACH,EC9CDC,GAAsB7rR,IAC1B,MAAM,aACJu0K,EAAY,OACZt7R,EAAM,SACNmtS,EAAQ,SACRI,EAAQ,SACR/xQ,EAAQ,WACRE,GACEqrF,EACJ,MAAO,CACL,CAACu0K,GAAe,CACdwlC,aAAc3zB,EACd3xQ,WACAE,aACAoF,UAAW,SAEX,CAAC,GAAGw6P,WAAuB,CACzBv7R,OAAQgnH,EAAM8rR,eACdj2Q,aAAcuwK,EACdpjS,QAASg9G,EAAMi5K,aACfz3R,IAAK,CACHxI,OAAQ,QAEVulI,IAAK,CACHnpG,SAAU,OACVp8B,OAAQ,OACRC,OAAQ,SAGZ,CAAC,GAAGs7R,iBAA6B,CAC/Bj8P,MAAO0nF,EAAMikL,sBAGf,CAAC,GAAG1P,YAAwB,CAC1B5+J,UAAW18H,GAEb,WAAY,CACV+gU,YAAaxzB,EACbluQ,MAAO0nF,EAAMikL,qBACb,CAAC,GAAG1P,iBAA6B,CAC/Bj8P,MAAO0nF,EAAMikL,sBAEf,CAAC,GAAG1P,WAAuB,CACzBv7R,OAAQgnH,EAAM+rR,mBAGlB,UAAW,CACT/xE,YAAa5zB,EACb9tQ,MAAO0nF,EAAMikL,qBACb,CAAC,GAAG1P,WAAuB,CACzBv7R,OAAQgnH,EAAMgsR,oBAIrB,EAGH,GAAej3G,GAAc,SAAS/0K,IACpC,MAAM,aACJu0K,EAAY,gBACZ2F,EAAe,KACf7f,GACEr6J,EACEisR,EAAaj6G,GAAWhyK,EAAO,CACnCksR,YAAa,GAAG33G,QAChBu3G,eAAgBzxH,EAAK6f,GAAiBxqE,IAAI,KAAKp/C,QAC/Cy7N,iBAAkB7xG,EAClB8xG,iBAAkB3xH,EAAK6f,GAAiBxqE,IAAI,MAAOp/C,UAErD,MAAO,CAACu7N,GAAoBI,GAAY,ICrE1C,IAAIjpG,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EASA,MAAMohX,GAA+BjhL,EAAAA,cAAoBkhL,GAAiB,MACpEC,GAA8BnhL,EAAAA,cAAoBohL,GAAgB,MAClE/+G,GAAQr+O,IACZ,MAAM,UACFtwC,EAAS,cACT0wQ,EACA3+B,UAAW2vC,EAAkB,MAC7Bz+Q,EAAQsqY,GAAe,YACvBltX,EAAW,SACXu8B,EAAQ,WACR+wV,EAAU,MACV5vY,EACAkuN,WAAY2hL,EAAe,OAC3Br5W,GACE+b,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,gBAAiB,YAAa,QAAS,cAAe,WAAY,aAAc,QAAS,aAAc,YAC3I,aACJixO,EAAY,UACZrrJ,EACAl2H,UAAW80O,EACX/2O,MAAO83T,EACP5pG,WAAY6pG,EACZvhS,OAAQwhS,GACNj0C,GAAmB,SACjB/vC,EAAYwvC,EAAa,QAASG,IACjC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,IAC1CtlN,GAAU8gU,GAAU,SACrBsgD,EAA6B,qBAAhBxtX,EAA8BA,EAAyB,OAAXoM,QAA8B,IAAXA,OAAoB,EAASA,EAAOpM,YAChH2kU,EAAqB,kBAAR6oD,EAAmBA,EAAM,QAC5C,IAAIC,EAAY,KAiBhB,OAfEA,EADmB,kBAAV7qY,EACgBqpN,EAAAA,cAAoB,MAAO,CAClD04H,IAAKA,EACLviV,IAAKQ,IAGKA,EAUPwqS,EAAwBnhF,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CACtE7B,UAAWisN,KAAW25D,EAAQ8nB,EAAW37D,EAAW+C,EAAkB,CACpE,CAAC,GAAG/C,YAAqB9uO,IAAUwqY,GACnC,CAAC,GAAG17J,SAAgC,QAAd77G,GACrBl2H,EAAW0wQ,EAAeolD,EAAkBj5T,KAA0B,OAApB+wY,QAAgD,IAApBA,OAA6B,EAASA,EAAgB/wY,MACvIkB,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGk0T,EAAcl5T,MAAOg5T,GAA0B,OAAXthS,QAA8B,IAAXA,OAAoB,EAASA,EAAO13B,MAAOkB,IACpKw0O,GAAyBjmB,EAAAA,cAAoB,MAAO,CACrDtsN,UAAWisN,KAAW,GAAG8lB,UAAmB+jF,EAAkB7yT,MAA2B,OAApB2qY,QAAgD,IAApBA,OAA6B,EAASA,EAAgB3qY,OACvJlF,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG8rY,GAAa53E,EAAc9yT,OAAmB,OAAXsxB,QAA8B,IAAXA,OAAoB,EAASA,EAAOtxB,QAC9I6qY,GAAYD,GAAqBvhL,EAAAA,cAAoB,MAAO,CAC7DtsN,UAAWisN,KAAW,GAAG8lB,gBAAyB+jF,EAAkBz1S,YAAiC,OAApButX,QAAgD,IAApBA,OAA6B,EAASA,EAAgBvtX,aACnKtiB,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGk0T,EAAc11S,aAAyB,OAAXkU,QAA8B,IAAXA,OAAoB,EAASA,EAAOlU,cACzHwtX,GAAOjxV,GAA0B0vK,EAAAA,cAAoB,MAAO,CAC7DtsN,UAAWisN,KAAW,GAAG8lB,WAAoB+jF,EAAkBvvR,OAA4B,OAApBqnW,QAAgD,IAApBA,OAA6B,EAASA,EAAgBrnW,QACzJxoC,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGk0T,EAAcxvR,QAAoB,OAAXhS,QAA8B,IAAXA,OAAoB,EAASA,EAAOgS,SACpHqW,IAAY,EAEjB+xO,GAAMo/G,wBAA0BR,GAChC5+G,GAAMq/G,uBAAyBP,GAI/B,YC7CA,GApC2Bn9V,IACzB,MAAM,cACJyB,GACEzB,GACE,aACJixO,IACE/7M,EAAAA,EAAAA,YAAW87M,IACT70K,EAAS80K,EAAa,SAC5B,OAAQxvO,GACN,IAAK,QACL,IAAK,OACH,OAAoBu6K,EAAAA,cAAoBqiE,GAAO,CAC7C1rR,MAAO0rR,GAAMq/G,yBAEjB,IAAK,SACL,IAAK,aACL,IAAK,WACL,IAAK,WACL,IAAK,WACH,OAAoB1hL,EAAAA,cAAoBqiE,GAAO,CAC7C1rR,MAAO0rR,GAAMq/G,uBACbhuY,UAAW,GAAGysG,YAOlB,IAAK,eAEH,OAAO,KACT,QAEE,OAAoB6/G,EAAAA,cAAoBqiE,GAAO,MACnD,ECrCF,IADgCp/K,EAAAA,EAAAA,eAAc,CAAC,GCC/C,IAAI60L,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EASA,SAAS8hX,GAAsBC,EAAS7rD,GACtC,MAAOvpV,EAAMq1Y,GAAW7hL,EAAAA,SAAkC,kBAAZ4hL,EAAuBA,EAAU,IAwB/E,OAHA5hL,EAAAA,WAAgB,KApBiB8hL,MAI/B,GAHuB,kBAAZF,GACTC,EAAQD,GAEa,kBAAZA,EAGX,IAAK,IAAIv0Y,EAAI,EAAGA,EAAIkoV,GAAgBjoV,OAAQD,IAAK,CAC/C,MAAMqzS,EAAa60C,GAAgBloV,GAEnC,IAAK0oV,EAAOr1C,GACV,SAEF,MAAMqhG,EAASH,EAAQlhG,GACvB,QAAetnS,IAAX2oY,EAEF,YADAF,EAAQE,EAGZ,GAGAD,EAA0B,GACzB,CAACpsY,KAAKE,UAAUgsY,GAAU7rD,IACtBvpV,CACT,CAwGA,SAvGyBwzN,EAAAA,YAAiB,CAACh8K,EAAON,KAChD,MACI+hM,UAAW2vC,EAAkB,QAC7B4sH,EAAO,MACP73W,EAAK,UACLz2B,EAAS,MACTjC,EAAK,SACL6+C,EAAQ,OACR2xV,EAAS,EAAC,KACVvsX,GACEsuB,EACJ49Q,EAAS9pB,GAAO9zP,EAAO,CAAC,YAAa,UAAW,QAAS,YAAa,QAAS,WAAY,SAAU,UACjG,aACJixO,EAAY,UACZrrJ,GACEo2F,EAAAA,WAAiBg1D,KACdohE,EAAS8rD,GAAcliL,EAAAA,SAAe,CAC3C8/E,IAAI,EACJC,IAAI,EACJ5iP,IAAI,EACJuR,IAAI,EACJsxO,IAAI,EACJC,KAAK,KAGAkiG,EAAYC,GAAiBpiL,EAAAA,SAAe,CACjD8/E,IAAI,EACJC,IAAI,EACJ5iP,IAAI,EACJuR,IAAI,EACJsxO,IAAI,EACJC,KAAK,IAGDw0C,EAAcktD,GAAsBx3W,EAAOg4W,GAC3CE,EAAgBV,GAAsBK,EAASG,GAC/CG,EAAYtiL,EAAAA,OAAaiiL,GACzBprD,EAAqBrB,KAE3Bx1H,EAAAA,WAAgB,KACd,MAAMlrG,EAAQ+hO,EAAmBx8T,WAAU07T,IACzCqsD,EAAcrsD,GACd,MAAMwsD,EAAgBD,EAAUlwW,SAAW,IACtCplC,MAAMqR,QAAQkkY,IAA2C,kBAAlBA,GAA8Bv1Y,MAAMqR,QAAQkkY,KAA+C,kBAArBA,EAAc,IAA+C,kBAArBA,EAAc,MACtKL,EAAWnsD,EACb,IAEF,MAAO,IAAMc,EAAmB17J,YAAYrmE,EAAM,GACjD,IAEH,MAkBM2wH,EAAYwvC,EAAa,MAAOG,IAC/B+rB,EAAY7nB,EAAQ8nB,GAAamsD,GAAY9nH,GAC9C+8J,EApBYC,MAChB,MAAMn2Q,EAAU,MAAClzH,OAAWA,GAe5B,OAdyBpM,MAAMqR,QAAQ4jY,GAAUA,EAAS,CAACA,OAAQ7oY,IAClDnM,SAAQ,CAAC80B,EAAG1lB,KAC3B,GAAiB,kBAAN0lB,EACT,IAAK,IAAI10B,EAAI,EAAGA,EAAIkoV,GAAgBjoV,OAAQD,IAAK,CAC/C,MAAMqzS,EAAa60C,GAAgBloV,GACnC,GAAI+oV,EAAQ11C,SAAiCtnS,IAAlB2oB,EAAE2+Q,GAA2B,CACtDp0K,EAAQjwH,GAAS0lB,EAAE2+Q,GACnB,KACF,CACF,MAEAp0K,EAAQjwH,GAAS0lB,CACnB,IAEKuqG,CAAO,EAIAm2Q,GACV7iL,EAAUD,KAAW8lB,EAAW,CACpC,CAAC,GAAGA,cAA+B,IAAT/vN,EAC1B,CAAC,GAAG+vN,KAAa48J,KAAkBA,EACnC,CAAC,GAAG58J,KAAagvG,KAAgBA,EACjC,CAAC,GAAGhvG,SAAgC,QAAd77G,GACrBl2H,EAAW4lR,EAAQ8nB,GAEhBshG,EAAW,CAAC,EACZC,EAAiC,MAAdH,EAAQ,IAAcA,EAAQ,GAAK,EAAIA,EAAQ,IAAM,OAAIppY,EAC9EupY,IACFD,EAAS93Q,WAAa+3Q,EACtBD,EAASh4Q,YAAci4Q,GAIzB,MAAOC,EAASC,GAAWL,EAC3BE,EAAS/hF,OAASkiF,EAClB,MAAMC,EAAa9iL,EAAAA,SAAc,KAAM,CACrCiiL,OAAQ,CAACW,EAASC,GAClBntX,UACE,CAACktX,EAASC,EAASntX,IACvB,OAAOyrR,EAAwBnhF,EAAAA,cAAoB+iL,GAAW3/R,SAAU,CACtEr4G,MAAO+3Y,GACO9iL,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CAAC,EAAGqsT,EAAQ,CACnEluT,UAAWksN,EACXnuN,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGmtY,GAAWjxY,GAClDiyC,IAAKA,IACH4M,IAAW,IC7IjB,SADyB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,qXAAyX,KAAQ,cAAe,MAAS,YCMzjB,IAAI0yV,GAAqB,SAA4Bh/V,EAAON,GAC1D,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM6kM,KAEV,EAOA,SAJ2BjjL,EAAAA,WAAiBgjL,ICb5C,SAD0B,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,uXAA2X,KAAQ,eAAgB,MAAS,YCM7jB,IAAIE,GAAsB,SAA6Bl/V,EAAON,GAC5D,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM+kM,KAEV,EAOA,SAJ2BnjL,EAAAA,WAAiBkjL,ICA5C,SAfa,CAEXxtE,eAAgB,gBAChBC,QAAS,eACTC,gBAAiB,eACjBloU,KAAM,SAENmoU,UAAW,qBACXC,UAAW,qBACXC,OAAQ,wBACRC,OAAQ,wBACRC,OAAQ,wBACRC,OAAQ,wBACRC,UAAW,gBCVb,IAAIitE,GAAyB,CAAC,GAAI,GAAI,GAAI,KA0H1C,SAzHc,SAAiBp/V,GAC7B,IAAIq/V,EAAwBr/V,EAAMs/V,gBAChCA,OAA4C,IAA1BD,EAAmCD,GAAyBC,EAC9EljX,EAAS6jB,EAAM7jB,OACfojX,EAAav/V,EAAMu/V,WACnBz2Y,EAAWk3C,EAAMl3C,SACjB02Y,EAAWx/V,EAAMw/V,SACjBC,EAAUz/V,EAAMy/V,QAChBj7G,EAAgBxkP,EAAMwkP,cACtBr4O,EAAWnM,EAAMmM,SACjBuzV,EAAkB1/V,EAAM0/V,gBACxBC,EAAkB3/V,EAAM2/V,gBACxBC,EAAoB5/V,EAAM4/V,kBAE1B97J,EAAmBC,GADC/nB,EAAAA,SAAe,IACgB,GACnD6jL,EAAc/7J,EAAiB,GAC/Bg8J,EAAiBh8J,EAAiB,GAChCi8J,EAAgB,WAClB,OAAQF,GAAexwY,OAAOic,MAAMu0X,QAAezqY,EAAY/F,OAAOwwY,EACxE,EACIG,EAAkD,oBAApBN,EAAiCA,EAAkB,SAAU34Y,GAC7F,MAAO,GAAG4F,OAAO5F,EAAO,KAAK4F,OAAOwvB,EAAOu1S,eAC7C,EAcI3oG,EAAK,SAAYpzM,GACC,KAAhBkqX,IAGAlqX,EAAE2jC,UAAY2mV,GAAQ3zJ,OAAoB,UAAX32N,EAAExmB,OACnC2wY,EAAe,IACH,OAAZL,QAAgC,IAAZA,GAAsBA,EAAQM,MAEtD,EAcIt+J,EAAY,GAAG90O,OAAO63R,EAAe,YAIzC,IAAKm7G,IAAoBF,EACvB,OAAO,KAET,IAAIS,EAAe,KACfC,EAAU,KACVC,EAAa,KA+CjB,OA5CIT,GAAmBC,IACrBM,EAAeN,EAAkB,CAC/BzzV,SAAUA,EACV3hC,KAAM1hB,EACNu3Y,aAAc,SAAsBn8J,GACnB,OAAfq7J,QAAsC,IAAfA,GAAyBA,EAAWlwY,OAAO60O,GACpE,EACA,aAAc/nN,EAAOg2S,UACrBziU,UAAW,GAAG/C,OAAO80O,EAAW,iBAChCp2O,SAjCEi0Y,EAAgB/lY,MAAK,SAAU65H,GACjC,OAAOA,EAAOj9H,aAAerN,EAASqN,UACxC,IACSmpY,EAEFA,EAAgB3yY,OAAO,CAAC7D,IAAWk0B,MAAK,SAAU3a,EAAGC,GAG1D,OAFcjT,OAAOic,MAAMjc,OAAOgT,IAAM,EAAIhT,OAAOgT,KACrChT,OAAOic,MAAMjc,OAAOiT,IAAM,EAAIjT,OAAOiT,GAErD,KAwBgC9M,KAAI,SAAUnN,GAC1C,MAAO,CACL44G,MAAO++R,EAAqB33Y,GAC5BtB,MAAOsB,EAEX,OAKAo3Y,IACED,IACFY,EAAiC,mBAAbZ,EAAsCxjL,EAAAA,cAAoB,SAAU,CACtF7sN,KAAM,SACNmtE,QAASysJ,EACTspK,QAAStpK,EACT58K,SAAUA,EACVz8C,UAAW,GAAG/C,OAAO80O,EAAW,yBAC/BtlN,EAAOy1S,iBAAgC51G,EAAAA,cAAoB,OAAQ,CACpE1/I,QAASysJ,EACTspK,QAAStpK,GACRy2K,IAELW,EAAuBnkL,EAAAA,cAAoB,MAAO,CAChDtsN,UAAW,GAAG/C,OAAO80O,EAAW,kBAC/BtlN,EAAOw1S,QAAsB31G,EAAAA,cAAoB,QAAS,CAC3D7vK,SAAUA,EACVh9C,KAAM,OACNpI,MAAO84Y,EACP12J,SArFe,SAAsBxzN,GACvCmqX,EAAenqX,EAAEziB,OAAOnM,MAC1B,EAoFIsrY,QAAStpK,EACTsmK,OApFa,SAAoB15W,GAC/B6pX,GAA4B,KAAhBK,IAGhBC,EAAe,IACXnqX,EAAEwmC,gBAAkBxmC,EAAEwmC,cAAczsD,UAAU7C,QAAQ,GAAGF,OAAO63R,EAAe,gBAAkB,GAAK7uQ,EAAEwmC,cAAczsD,UAAU7C,QAAQ,GAAGF,OAAO63R,EAAe,WAAa,IAGtK,OAAZi7G,QAAgC,IAAZA,GAAsBA,EAAQM,KACpD,EA4EI,aAAc5jX,EAAOzyB,OACnByyB,EAAOzyB,KAAM02Y,IAECpkL,EAAAA,cAAoB,KAAM,CAC5CtsN,UAAW+xO,GACVy+J,EAAcC,EACnB,ECtFA,SA/BY,SAAengW,GACzB,IAAIwkP,EAAgBxkP,EAAMwkP,cACxB96R,EAAOs2C,EAAMt2C,KACbuxB,EAAS+kB,EAAM/kB,OACfvrB,EAAYswC,EAAMtwC,UAClB4wY,EAAYtgW,EAAMsgW,UAClBhkU,EAAUt8B,EAAMs8B,QAChBikU,EAAavgW,EAAMugW,WACnBC,EAAaxgW,EAAMwgW,WACjB/+J,EAAY,GAAG90O,OAAO63R,EAAe,SACrC36G,EAAM8xC,KAAW8lB,EAAW,GAAG90O,OAAO80O,EAAW,KAAK90O,OAAOjD,IAAOs2G,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,WAAYxmN,GAAS,GAAGtuB,OAAO80O,EAAW,cAAe/3O,GAAOgG,GAO7L+wY,EAAQD,EAAW92Y,EAAM,OAAqBsyN,EAAAA,cAAoB,IAAK,CACzE12K,IAAK,YACJ57C,IACH,OAAO+2Y,EAAqBzkL,EAAAA,cAAoB,KAAM,CACpD9nL,MAAOosW,EAAYlxY,OAAO1F,GAAQ,KAClCgG,UAAWm6K,EACXvtG,QAZgB,WAChBA,EAAQ5yE,EACV,EAWE8sP,UAVmB,SAAwB7gO,GAC3C4qX,EAAW5qX,EAAG2mD,EAAS5yE,EACzB,EASEsiP,SAAU,GACTy0J,GAAS,IACd,ECjBA,IAAIC,GAAoB,SAA2Bh3Y,EAAMyF,EAAM44B,GAC7D,OAAOA,CACT,EACA,SAAShS,KAAQ,CACjB,SAASu5E,GAAUjyE,GACjB,IAAIt2B,EAAQsI,OAAOguB,GACnB,MAAwB,kBAAVt2B,IAAuBsI,OAAOic,MAAMvkB,IAAUktF,SAASltF,IAAU4C,KAAKC,MAAM7C,KAAWA,CACvG,CACA,SAAS45Y,GAAcnxX,EAAG1mB,EAAUuqC,GAClC,IAAIutW,EAAyB,qBAANpxX,EAAoB1mB,EAAW0mB,EACtD,OAAO7lB,KAAKC,OAAOypC,EAAQ,GAAKutW,GAAa,CAC/C,CAuaA,SAtaiB,SAAoB5gW,GACnC,IAAIglM,EAAmBhlM,EAAMyhM,UAC3BA,OAAiC,IAArBuD,EAA8B,gBAAkBA,EAC5D67J,EAAwB7gW,EAAM8gW,gBAC9BA,OAA4C,IAA1BD,EAAmC,YAAcA,EACnEnxY,EAAYswC,EAAMtwC,UAClBqxY,EAAc/gW,EAAM5R,QACpB4yW,EAAwBhhW,EAAMihW,eAC9BA,OAA2C,IAA1BD,EAAmC,EAAIA,EACxDE,EAAelhW,EAAM3M,MACrBA,OAAyB,IAAjB6tW,EAA0B,EAAIA,EACtCC,EAAenhW,EAAMl3C,SACrBs4Y,EAAwBphW,EAAMqhW,gBAC9BA,OAA4C,IAA1BD,EAAmC,GAAKA,EAC1DE,EAAkBthW,EAAMmpM,SACxBA,OAA+B,IAApBm4J,EAA6BvrX,GAAOurX,EAC/CC,EAAmBvhW,EAAMuhW,iBACzBp7W,EAAQ6Z,EAAM7Z,MACdq7W,EAAwBxhW,EAAMyhW,oBAC9BA,OAAgD,IAA1BD,GAA0CA,EAChEE,EAAkB1hW,EAAM0hW,gBACxBC,EAAgB3hW,EAAM2hW,cACtBC,EAAmB5hW,EAAMsgW,UACzBA,OAAiC,IAArBsB,GAAqCA,EACjDC,EAAwB7hW,EAAM8hW,iBAC9BA,OAA6C,IAA1BD,EAAmC9rX,GAAO8rX,EAC7DE,EAAgB/hW,EAAM7jB,OACtBA,OAA2B,IAAlB4lX,EAA2BC,GAAOD,EAC3Ct0Y,EAAQuyC,EAAMvyC,MACdw0Y,EAAwBjiW,EAAMkiW,6BAC9BA,OAAyD,IAA1BD,EAAmC,GAAKA,EACvE91V,EAAWnM,EAAMmM,SACjB1iC,EAASu2B,EAAMv2B,OACf04X,EAAYniW,EAAMmiW,UAClBC,EAAwBpiW,EAAM2/V,gBAC9BA,OAA4C,IAA1ByC,EAAmC/uW,EAAQ6uW,EAA+BE,EAC5FxC,EAAoB5/V,EAAM4/V,kBAC1BN,EAAkBt/V,EAAMs/V,gBACxB+C,EAAoBriW,EAAMwgW,WAC1BA,OAAmC,IAAtB6B,EAA+B3B,GAAoB2B,EAChEC,EAAetiW,EAAMsiW,aACrBC,EAAeviW,EAAMuiW,aACrBC,EAAWxiW,EAAMwiW,SACjBC,EAAWziW,EAAMyiW,SACfC,EAAgB1mL,EAAAA,OAAa,MAK/B2pD,EAAmB5hC,GAJCkF,GAAe,GAAI,CACrCliP,MAAOo6Y,EACPz6W,aAAc26W,IAEmC,GACnDv4Y,EAAW68Q,EAAiB,GAC5BryQ,EAAcqyQ,EAAiB,GAQ/ByB,EAAmBrjC,GAPEkF,GAAe,EAAG,CACrCliP,MAAOg6Y,EACPr6W,aAAcu6W,EACd73J,UAAW,SAAmB7mO,GAC5B,OAAO5Y,KAAKwhB,IAAI,EAAGxhB,KAAKyhB,IAAI7I,EAAGo+X,QAAcvrY,EAAWtM,EAAUuqC,IACpE,IAEkD,GACpDjF,EAAUg5O,EAAiB,GAC3Bu7H,EAAav7H,EAAiB,GAE9BtjC,EAAmBC,GADC/nB,EAAAA,SAAe5tL,GACgB,GACnDw0W,EAAmB9+J,EAAiB,GACpC++J,GAAsB/+J,EAAiB,IACzC3uK,EAAAA,EAAAA,YAAU,WACR0tU,GAAoBz0W,EACtB,GAAG,CAACA,IAMJ,IAAI00W,GAAen5Y,KAAKwhB,IAAI,EAAGijB,GAAWuzW,EAAgB,EAAI,IAC1DoB,GAAep5Y,KAAKyhB,IAAIu1X,QAAcvrY,EAAWtM,EAAUuqC,GAAQjF,GAAWuzW,EAAgB,EAAI,IACtG,SAASqB,GAAY5oM,EAAMn5F,GACzB,IAAI60I,EAAW17C,GAAqB4hB,EAAAA,cAAoB,SAAU,CAChE7sN,KAAM,SACN,aAAc8xG,EACdvxG,UAAW,GAAG/C,OAAO80O,EAAW,gBAKlC,MAHoB,oBAATrnC,IACT07C,EAAwB95B,EAAAA,cAAoB5hB,EAAMumC,GAAc,CAAC,EAAG3gM,KAE/D81M,CACT,CACA,SAASiqJ,GAAcpqX,GACrB,IAAIstX,EAAattX,EAAEziB,OAAOnM,MACtBm8Y,EAAWvC,QAAcvrY,EAAWtM,EAAUuqC,GAWlD,MATmB,KAAf4vW,EACMA,EACC5zY,OAAOic,MAAMjc,OAAO4zY,IACrBL,EACCK,GAAcC,EACfA,EAEA7zY,OAAO4zY,EAGnB,CAIA,IAAIE,GAA2B9vW,EAAQvqC,GAAW44Y,EAWlD,SAAS3N,GAAYxyU,GACnB,IAAIx6D,EAAQg5Y,GAAcx+U,GAI1B,OAHIx6D,IAAU67Y,GACZC,GAAoB97Y,GAEdw6D,EAAMjI,SACZ,KAAK4yL,GAAQI,MACX82J,GAAar8Y,GACb,MACF,KAAKmlP,GAAQgB,GACXk2J,GAAar8Y,EAAQ,GACrB,MACF,KAAKmlP,GAAQkB,KACXg2J,GAAar8Y,EAAQ,GAK3B,CAaA,SAASq8Y,GAAa15Y,GACpB,GA9CF,SAAiBA,GACf,OAAO4lG,GAAU5lG,IAASA,IAAS0kC,GAAWkhE,GAAUj8D,IAAUA,EAAQ,CAC5E,CA4CM3T,CAAQh2B,KAAUyiD,EAAU,CAC9B,IAAI3b,EAAcmwW,QAAcvrY,EAAWtM,EAAUuqC,GACjDgwW,EAAU35Y,EAWd,OAVIA,EAAO8mC,EACT6yW,EAAU7yW,EACD9mC,EAAO,IAChB25Y,EAAU,GAERA,IAAYT,GACdC,GAAoBQ,GAEtBV,EAAWU,GACE,OAAbl6J,QAAkC,IAAbA,GAAuBA,EAASk6J,EAASv6Y,GACvDu6Y,CACT,CACA,OAAOj1W,CACT,CACA,IAAIk1W,GAAUl1W,EAAU,EACpBm1W,GAAUn1W,EAAUuyW,QAAcvrY,EAAWtM,EAAUuqC,GAC3D,SAASmwW,KACHF,IAASF,GAAah1W,EAAU,EACtC,CACA,SAASq1W,KACHF,IAASH,GAAah1W,EAAU,EACtC,CACA,SAASs1W,KACPN,GAAaN,GACf,CACA,SAASa,KACPP,GAAaL,GACf,CACA,SAASa,GAAWriV,EAAOpuC,GACzB,GAAkB,UAAdouC,EAAMt0D,KAAmBs0D,EAAMhI,WAAa2yL,GAAQI,OAAS/qL,EAAMjI,UAAY4yL,GAAQI,MAAO,CAChG,IAAK,IAAI7T,EAAO7gO,UAAUtO,OAAQu6Y,EAAa,IAAI76Y,MAAMyvO,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IACxGmrK,EAAWnrK,EAAO,GAAK9gO,UAAU8gO,GAEnCvlN,EAAS3Q,WAAM,EAAQqhY,EACzB,CACF,CAyBA,SAASC,GAAWviV,GACC,UAAfA,EAAMpyD,MAAoBoyD,EAAMjI,UAAY4yL,GAAQI,OACtD82J,GAAaR,EAEjB,CACA,IAAImB,GAAW,KACXC,GAA2B1kD,GAAUt/S,EAAO,CAC9Cy/S,MAAM,EACN/6U,MAAM,IAEJu/X,GAAY9B,GAA0BnmL,EAAAA,cAAoB,KAAM,CAClEtsN,UAAW,GAAG/C,OAAO80O,EAAW,gBAC/B0gK,EAAU9uW,EAAO,CAAW,IAAVA,EAAc,GAAKjF,EAAU,GAAKtlC,EAAW,EAAGslC,EAAUtlC,EAAWuqC,EAAQA,EAAQjF,EAAUtlC,KAChHo7Y,GAAW,KACXhB,GAAWvC,QAAcvrY,EAAWtM,EAAUuqC,GAIlD,GAAIkuW,GAAoBluW,GAASvqC,EAC/B,OAAO,KAET,IAAIq7Y,GAAY,GACZC,GAAa,CACf5/G,cAAe/iD,EACfnlK,QAAS8mU,GACT7C,WAAYqD,GACZtD,UAAWA,EACXE,WAAYA,EACZ92Y,MAAO,GAEL26Y,GAAWj2W,EAAU,EAAI,EAAIA,EAAU,EAAI,EAC3C+K,GAAW/K,EAAU,EAAI80W,GAAW90W,EAAU,EAAI80W,GAClD1D,GAAWkC,GAAmBA,EAAgBlC,SAI9C8E,GAAiC,YAApB35Y,EAAAA,GAAAA,GAAQ8e,GAAuBA,EAAOwmX,UAAYxmX,EAC/D22X,GAAaZ,GACb+E,GAAc,KACd96X,IAEE+1X,KAEAY,GADsB,mBAAbZ,GACiBxjL,EAAAA,cAAoB,SAAU,CACtD7sN,KAAM,SACNmtE,QAASwnU,GACTzR,QAASyR,IACR3nX,EAAOy1S,iBAEgB51G,EAAAA,cAAoB,OAAQ,CACpD1/I,QAASwnU,GACTzR,QAASyR,IACRtE,IAELY,GAA0BpkL,EAAAA,cAAoB,KAAM,CAClD9nL,MAAOosW,EAAY,GAAG3zY,OAAOwvB,EAAOw1S,SAAShlU,OAAOyhC,EAAS,KAAKzhC,OAAOu2Y,IAAY,KACrFxzY,UAAW,GAAG/C,OAAO80O,EAAW,kBAC/B2+J,KAELmE,GAA2BvoL,EAAAA,cAAoB,KAAM,CACnD9nL,MAAOosW,EAAY,GAAG3zY,OAAOyhC,EAAS,KAAKzhC,OAAOu2Y,IAAY,KAC9DxzY,UAAW,GAAG/C,OAAO80O,EAAW,kBAC/B6iK,GAAa1B,EAAgC5mL,EAAAA,cAAoB,QAAS,CAC3E7sN,KAAM,OACN,aAAcgtB,EAAOw1S,QACrB5qU,MAAO67Y,EACPz2V,SAAUA,EACVqqM,UAvKJ,SAAuBj1L,GACjBA,EAAMjI,UAAY4yL,GAAQgB,IAAM3rL,EAAMjI,UAAY4yL,GAAQkB,MAC5D7rL,EAAMrH,gBAEV,EAoKIm4U,QAAS0B,GACT5qJ,SAAU4qJ,GACV1E,OAlJJ,SAAoB9tU,GAClB6hV,GAAarD,GAAcx+U,GAC7B,EAiJI/2C,KAAM,IACSwxM,EAAAA,cAAoB,OAAQ,CAC3CtsN,UAAW,GAAG/C,OAAO80O,EAAW,WAC/B,KAAMyhK,KAIX,IAAIsB,GAAiB7C,EAAgB,EAAI,EACzC,GAAIuB,IAAY,EAAqB,EAAjBsB,GAAoB,CACjCtB,IACHiB,GAAUn6Y,KAAmBgyN,EAAAA,cAAoByoL,GAAOr9K,GAAS,CAAC,EAAGg9K,GAAY,CAC/En3Y,IAAK,UACLvD,KAAM,EACNgG,UAAW,GAAG/C,OAAO80O,EAAW,sBAGpC,IAAK,IAAIp4O,GAAI,EAAGA,IAAK65Y,GAAU75Y,IAAK,EAClC86Y,GAAUn6Y,KAAmBgyN,EAAAA,cAAoByoL,GAAOr9K,GAAS,CAAC,EAAGg9K,GAAY,CAC/En3Y,IAAK5D,GACLK,KAAML,GACN4xB,OAAQmT,IAAY/kC,MAG1B,KAAO,CACL,IAAIq7Y,GAAgB/C,EAAgBxlX,EAAO81S,OAAS91S,EAAO41S,OACvD4yE,GAAgBhD,EAAgBxlX,EAAO+1S,OAAS/1S,EAAO61S,OACvD4yE,GAAkBpE,EAAWsC,GAAc,YAAaE,GAAYV,EAAc,cAClFuC,GAAkBrE,EAAWuC,GAAc,YAAaC,GAAYT,EAAc,cAClFd,IACFsC,GAAWa,GAA+B5oL,EAAAA,cAAoB,KAAM,CAClE9nL,MAAOosW,EAAYoE,GAAgB,KACnCz3Y,IAAK,OACLqvE,QAASonU,GACT13J,SAAU,EACVwK,UA3HN,SAA4Bj1L,GAC1BqiV,GAAWriV,EAAOmiV,GACpB,EA0HMh0Y,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,eAAezhI,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,4BAA6B6gK,KAC/HsC,IAAmB,KACtBV,GAAWW,GAA+B7oL,EAAAA,cAAoB,KAAM,CAClE9nL,MAAOosW,EAAYqE,GAAgB,KACnC13Y,IAAK,OACLqvE,QAASqnU,GACT33J,SAAU,EACVwK,UAhIN,SAA4Bj1L,GAC1BqiV,GAAWriV,EAAOoiV,GACpB,EA+HMj0Y,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,eAAezhI,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,4BAA6B8gK,KAC/HsC,IAAmB,MAExB,IAAIr7Y,GAAOG,KAAKwhB,IAAI,EAAGijB,EAAUo2W,IAC7B7wY,GAAQhK,KAAKyhB,IAAIgjB,EAAUo2W,GAAgBtB,IAC3C90W,EAAU,GAAKo2W,KACjB7wY,GAAQ,EAAqB,EAAjB6wY,IAEVtB,GAAW90W,GAAWo2W,KACxBh7Y,GAAO05Y,GAA4B,EAAjBsB,IAEpB,IAAK,IAAIlhX,GAAK95B,GAAM85B,IAAM3vB,GAAO2vB,IAAM,EACrC6gX,GAAUn6Y,KAAmBgyN,EAAAA,cAAoByoL,GAAOr9K,GAAS,CAAC,EAAGg9K,GAAY,CAC/En3Y,IAAKq2B,GACL55B,KAAM45B,GACNrI,OAAQmT,IAAY9K,OASxB,GANI8K,EAAU,GAAsB,EAAjBo2W,IAAkC,IAAZp2W,IACvC+1W,GAAU,GAAkBnoL,EAAAA,aAAmBmoL,GAAU,GAAI,CAC3Dz0Y,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,yBAA0B0iK,GAAU,GAAGnkW,MAAMtwC,aAE1Fy0Y,GAAU78U,QAAQy8U,KAEhBb,GAAW90W,GAA4B,EAAjBo2W,IAAsBp2W,IAAY80W,GAAW,EAAG,CACxE,IAAI4B,GAAUX,GAAUA,GAAU76Y,OAAS,GAC3C66Y,GAAUA,GAAU76Y,OAAS,GAAkB0yN,EAAAA,aAAmB8oL,GAAS,CACzEp1Y,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,0BAA2BqjK,GAAQ9kW,MAAMtwC,aAEtFy0Y,GAAUn6Y,KAAKk6Y,GACjB,CACa,IAAT16Y,IACF26Y,GAAU78U,QAAsB00J,EAAAA,cAAoByoL,GAAOr9K,GAAS,CAAC,EAAGg9K,GAAY,CAClFn3Y,IAAK,EACLvD,KAAM,MAGNiK,KAAUuvY,IACZiB,GAAUn6Y,KAAmBgyN,EAAAA,cAAoByoL,GAAOr9K,GAAS,CAAC,EAAGg9K,GAAY,CAC/En3Y,IAAKi2Y,GACLx5Y,KAAMw5Y,MAGZ,CACA,IAAIn+W,GA1KJ,SAAoBs/W,GAClB,IAAIU,EAAavE,EAAW6D,EAAU,OAAQrB,GAAYR,EAAU,cACpE,OAAoBxmL,EAAAA,eAAqB+oL,GAA2B/oL,EAAAA,aAAmB+oL,EAAY,CACjG54V,UAAWm3V,KACRyB,CACP,CAqKWC,CAAWX,IACtB,GAAIt/W,GAAM,CACR,IAAIkgX,IAAgB3B,KAAYJ,GAChCn+W,GAAoBi3L,EAAAA,cAAoB,KAAM,CAC5C9nL,MAAOosW,EAAYnkX,EAAO01S,UAAY,KACtCv1P,QAASknU,GACTx3J,SAAUi5J,GAAe,KAAO,EAChCzuJ,UA7LJ,SAAwBj1L,GACtBqiV,GAAWriV,EAAOiiV,GACpB,EA4LI9zY,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,UAAUzhI,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,aAAcwjK,KAC5G,gBAAiBA,IAChBlgX,GACL,CACA,IAEMmgX,GAAcC,GAFhB9oY,GAhLJ,SAAoB88B,GAClB,IAAIisW,EAAa5E,EAAWrnW,EAAU,OAAQ6pW,GAAYP,EAAU,cACpE,OAAoBzmL,EAAAA,eAAqBopL,GAA2BppL,EAAAA,aAAmBopL,EAAY,CACjGj5V,UAAWo3V,KACR6B,CACP,CA2KWC,CAAWlsW,IAClB98B,KAEEoN,GACFy7X,IAAgB3B,GAChB4B,GAAe7B,GAAU,EAAI,MAG7B6B,IADAD,IAAgB3B,KAAYL,IACE,KAAO,EAEvC7mY,GAAoB2/M,EAAAA,cAAoB,KAAM,CAC5C9nL,MAAOosW,EAAYnkX,EAAO21S,UAAY,KACtCx1P,QAASmnU,GACTz3J,SAAUm5J,GACV3uJ,UA7MJ,SAAwBj1L,GACtBqiV,GAAWriV,EAAOkiV,GACpB,EA4MI/zY,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,UAAUzhI,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,aAAcyjK,KAC5G,gBAAiBA,IAChB7oY,KAEL,IAAIwtK,GAAM8xC,KAAW8lB,EAAW/xO,GAAWswG,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,UAAqB,UAAVt7M,GAAoB,GAAGx5B,OAAO80O,EAAW,WAAsB,WAAVt7M,GAAqB,GAAGx5B,OAAO80O,EAAW,QAAmB,QAAVt7M,GAAkB,GAAGx5B,OAAO80O,EAAW,WAAYh4N,GAAS,GAAG9c,OAAO80O,EAAW,aAAct1L,IACtW,OAAoB6vK,EAAAA,cAAoB,KAAMoL,GAAS,CACrD13N,UAAWm6K,GACXp8K,MAAOA,EACPiyC,IAAKgjW,GACJsB,IAA2BC,GAAWl/W,GAAMtb,EAAS86X,GAAcJ,GAAW9nY,GAAmB2/M,EAAAA,cAAoBspL,GAAS,CAC/HnpX,OAAQA,EACRqoQ,cAAe/iD,EACft1L,SAAUA,EACV20V,gBAAiBA,EACjBvB,WAhRF,SAAwB/0X,GACtB,IAAI+6X,EAAa5E,GAAcn2X,EAAM1hB,EAAUuqC,GAC3CmyW,EAAcp3W,EAAUm3W,GAA6B,IAAfA,EAAmBA,EAAan3W,EAC1E96B,EAAYkX,GACZq4X,GAAoB2C,GACC,OAArB1D,QAAkD,IAArBA,GAA+BA,EAAiB1zW,EAAS5jB,GACtFm4X,EAAW6C,GACE,OAAbr8J,QAAkC,IAAbA,GAAuBA,EAASq8J,EAAah7X,EACpE,EAyQE1hB,SAAUA,EACVw2Y,gBAAiBA,EACjBG,QAAS0D,GAA2BC,GAAe,KACnD5D,SAAUY,GACVT,gBAAiBA,EACjBC,kBAAmBA,IAEvB,EC/ZA,SA3Be,SAAkB5/V,GAC/B,IAAItwC,EAAYswC,EAAMtwC,UACpB+1Y,EAAgBzlW,EAAMylW,cACtBC,EAAqB1lW,EAAM0lW,mBAC3Bp5V,EAAWtM,EAAMsM,SACjBq5V,EAAe3lW,EAAMqgT,YACrB/jR,EAAUt8B,EAAMs8B,QACd89H,EAAgC,oBAAlBqrM,EAA+BA,EAAcC,GAAsBD,EACrF,OAAoBzpL,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAWA,EACX2wV,YAAa,SAAqB9+R,GAChCA,EAAMrH,iBACW,OAAjByrV,QAA0C,IAAjBA,GAA2BA,EAAapkV,EACnE,EACA9zD,MAAO,CACL+kJ,WAAY,OACZozP,iBAAkB,QAEpBC,aAAc,KACdvpU,QAASA,EACT,eAAe,QACLlnE,IAATglM,EAAqBA,EAAoB4hB,EAAAA,cAAoB,OAAQ,CACtEtsN,UAAWisN,KAAWjsN,EAAU4R,MAAM,OAAO9L,KAAI,SAAUq0K,GACzD,MAAO,GAAGl9K,OAAOk9K,EAAK,QACxB,MACCv9H,GACL,ECzBO,ICGIw5V,GAAiC9pL,EAAAA,cAAoB,MCEjD,SAAS+pL,KACtB,IAAI/8Q,EAAWpxH,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,IAC/EouY,EAAUhqL,EAAAA,OAAa,MACvBiqL,EAAajqL,EAAAA,OAAa,MAiB9B,OAdAA,EAAAA,WAAgB,WACd,OAAO,WACLtuN,OAAOw6D,aAAa+9U,EAAW73W,QACjC,CACF,GAAG,IAUI,CAAC,WACN,OAAO43W,EAAQ53W,OACjB,EAXA,SAAgBs8M,IACVA,GAA8B,OAApBs7J,EAAQ53W,WACpB43W,EAAQ53W,QAAUs8M,GAEpBh9O,OAAOw6D,aAAa+9U,EAAW73W,SAC/B63W,EAAW73W,QAAU1gC,OAAO2nB,YAAW,WACrC2wX,EAAQ53W,QAAU,IACpB,GAAG46F,EACL,EAIF,CC1BA,IAAI8+N,GAAQ,SAAe9nT,EAAON,GAChC,IAAIwmW,EACAzkK,EAAYzhM,EAAMyhM,UACpB71N,EAAKo0B,EAAMp0B,GACXkkX,EAAe9vV,EAAM8vV,aACrB3jV,EAAWnM,EAAMmM,SACjB6/L,EAAWhsM,EAAMgsM,SACjBvvK,EAAYz8B,EAAMy8B,UAClB01T,EAAenyV,EAAMmyV,aACrBgU,EAAWnmW,EAAMmmW,SACjBC,EAAqBpmW,EAAMomW,mBAC3Br/Y,EAAQi5C,EAAMj5C,MACd+0F,EAAY97C,EAAM87C,UAClBuqT,EAAarmW,EAAMw2M,UACnBmvJ,EAAe3lW,EAAMqgT,YACrBimD,EAAYtmW,EAAMmpM,SAClBo9J,EAAUvmW,EAAMumW,QAChB/T,EAAsBxyV,EAAMyyV,mBAC5B+T,EAAoBxmW,EAAM0yV,iBAC1B+T,EAAUzmW,EAAMqvV,OAChB3nX,EAAOs4B,EAAMt4B,KACb6mQ,EAAQvuO,EAAMuuO,MACZm4H,EAAY5W,GAA6B9zK,EAAAA,cAAoB,QAAS,MACtE2qL,EAAaD,EACf7mK,EAAY8mK,EAAWjnW,IACvBknW,EAAcD,EAAW3mW,MACvB6mW,EAAkBD,EAAYpwJ,UAChCswJ,EAAiBF,EAAYz9J,SAC7B49J,EAAoBH,EAAYvmD,YAChC2mD,EAA2BJ,EAAYnU,mBACvCwU,EAAyBL,EAAYlU,iBACrCwU,EAAeN,EAAYvX,OAC3B5hY,EAAQm5Y,EAAYn5Y,MAkEtB,OAjEyBi5Y,EAAU1mW,MACnC0mW,EAAyB1qL,EAAAA,aAAmB0qL,EAAW/lK,GAAcA,GAAcA,GAAc,CAC/FxxO,KAAM,UACLy3Y,GAAc,CAAC,EAAG,CAEnBh7X,GAAIA,EACJ8zB,IAAK84L,GAAW94L,EAAKmgM,GACrB1zL,SAAUA,EACV6/L,SAAUA,EACVmmJ,aAAcA,GAAgB,MAC9B11T,UAAWA,EACX/sE,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,2BAA0D,QAA7BykK,EAAcQ,SAAuC,IAAhBR,GAAgE,QAArCA,EAAcA,EAAYlmW,aAAmC,IAAhBkmW,OAAyB,EAASA,EAAYx2Y,WACnO6mP,KAAM,WACN,gBAAiB7uO,IAAQ,EACzB,gBAAiB,UACjB,YAAa,GAAG/a,OAAOif,EAAI,SAC3B,oBAAqB,OACrB,gBAAiB,GAAGjf,OAAOif,EAAI,SAC/B,wBAAyBlE,EAAO0+X,OAAqBhxY,GACpDm5Q,GAAQ,CAAC,EAAG,CACbxnR,MAAOo/Y,EAAWp/Y,EAAQ,GAC1B+0F,UAAWA,EACXm0S,UAAWkW,EACXN,aAAeM,EAAkB,KAAP,KAC1B14Y,MAAOkzO,GAAcA,GAAc,CAAC,EAAGlzO,GAAQ,CAAC,EAAG,CACjDqG,QAASqyY,EAAW,KAAO,IAE7B3vJ,UAAW,SAAmBj1L,GAC5B8kV,EAAW9kV,GACPslV,GACFA,EAAgBtlV,EAEpB,EACA8+R,YAAa,SAAqB9+R,GAChCokV,EAAapkV,GACTwlV,GACFA,EAAkBxlV,EAEtB,EACA4nL,SAAU,SAAkB5nL,GAC1B+kV,EAAU/kV,GACNulV,GACFA,EAAevlV,EAEnB,EACAkxU,mBAAoB,SAA4BlxU,GAC9CixU,EAAoBjxU,GAChBylV,GACFA,EAAyBzlV,EAE7B,EACAmxU,iBAAkB,SAA0BnxU,GAC1CilV,EAAkBjlV,GACd0lV,GACFA,EAAuB1lV,EAE3B,EACAglV,QAASA,EACTlX,OAAQ,SAAgB9tU,GACtBklV,EAAQllV,GACJ2lV,GACFA,EAAa3lV,EAEjB,IAGJ,EAKA,SAJ4By6J,EAAAA,WAAiB8rI,ICxGtC,SAASn4P,GAAQ5oG,GACtB,OAAIiC,MAAMqR,QAAQtT,GACTA,OAEQqO,IAAVrO,EAAsB,CAACA,GAAS,EACzC,CACO,IAGIogZ,GAH6B,qBAAXz5Y,QAA0BA,OAAO+B,UAAY/B,OAAO+B,SAASk0D,gBAY1F,SAASyjV,GAAYlzW,GACnB,MAAO,CAAC,SAAU,UAAU57B,UAAS3N,EAAAA,GAAAA,GAAQupC,GAC/C,CACO,SAASmzW,GAAShtW,GACvB,IAAInG,OAAQ9+B,EAQZ,OAPIilC,IACE+sW,GAAY/sW,EAAKnG,OACnBA,EAAQmG,EAAKnG,MAAM/9B,WACVixY,GAAY/sW,EAAK4mE,SAC1B/sE,EAAQmG,EAAK4mE,MAAM9qG,aAGhB+9B,CACT,CCrBA,SAAS6tM,GAAQh7O,GACf,IAAIugZ,EACJ,OAAoC,QAA5BA,EAAavgZ,EAAMkG,WAAgC,IAAfq6Y,EAAwBA,EAAavgZ,EAAMA,KACzF,CACA,IAAIwgZ,GAAqB,SAA4BhmV,GACnDA,EAAMrH,iBACNqH,EAAMxI,iBACR,EA6KA,SA5KqB,SAAwB/Y,GAC3C,ICbsC0kG,EAAQ9wE,EDa1ChoD,EAAKo0B,EAAMp0B,GACb61N,EAAYzhM,EAAMyhM,UAClBjjO,EAASwhC,EAAMxhC,OACfkJ,EAAOs4B,EAAMt4B,KACb8/X,EAAcxnW,EAAMwnW,YACpBC,EAAuBznW,EAAMynW,qBAC7B3U,EAAW9yV,EAAM8yV,SACjB5gT,EAAclyC,EAAMkyC,YACpB/lC,EAAWnM,EAAMmM,SACjBhgD,EAAO6zC,EAAM7zC,KACbu7Y,EAAa1nW,EAAM0nW,WACnBjrU,EAAYz8B,EAAMy8B,UAClB01T,EAAenyV,EAAMmyV,aACrBiU,EAAqBpmW,EAAMomW,mBAC3Bp6J,EAAWhsM,EAAMgsM,SACjB27J,EAAa3nW,EAAM2nW,WACnBC,EAAc5nW,EAAM4nW,YACpBC,EAAmB7nW,EAAM6nW,iBACzBC,EAAwB9nW,EAAM+nW,kBAC9BA,OAA8C,IAA1BD,EAAmC,SAAUE,GAC/D,MAAO,KAAKr7Y,OAAOq7Y,EAAc1+Y,OAAQ,OAC3C,EAAIw+Y,EACJG,EAAYjoW,EAAMioW,UAClBC,EAAeloW,EAAMkoW,aACrBC,EAAWnoW,EAAMmoW,SACjBhR,EAAgBn3V,EAAMm3V,cACtBiR,EAAepoW,EAAMooW,aACrBC,EAAiBroW,EAAMqoW,eACvBC,EAAmBtoW,EAAMsoW,iBACzBC,EAA0BvoW,EAAMuoW,wBAChCC,EAAwBxoW,EAAMwoW,sBAC9BC,EAAczoW,EAAMyoW,YAClBC,EAAa1sL,EAAAA,OAAa,MAE5B4qB,EAAa7C,IADCruK,EAAAA,EAAAA,UAAS,GACgB,GACvCizU,EAAa/hK,EAAW,GACxBgiK,EAAgBhiK,EAAW,GAE3BG,EAAahD,IADEruK,EAAAA,EAAAA,WAAS,GACgB,GACxCw6T,EAAUnpJ,EAAW,GACrB4rJ,EAAa5rJ,EAAW,GACtB8hK,EAAqB,GAAGl8Y,OAAO80O,EAAW,cAG1CwhK,EAAav7X,GAAiB,aAATvb,IAAgD,IAAzBs7Y,GAA2C,SAATt7Y,EAAkBq7Y,EAAc,GAC9GsB,EAAyB,SAAT38Y,GAA4B,aAATA,IAAgD,IAAzBs7Y,GAAkCC,IAAehgY,GAAQwoX,GC1DjFxrP,ED6DtB,WACdkkQ,EAAcF,EAAWt6W,QAAQ+zE,YACnC,EC/D8CvuC,ED+D3C,CAACqvU,GC7DAkE,GAEFnrL,EAAAA,gBAAsBt3E,EAAQ9wE,GAE9BooJ,EAAAA,UAAgBt3E,EAAQ9wE,GD6D1B,IAAIm1U,EAAwB,SAA+B1uW,EAAMzzB,EAASoiY,EAAcjpD,EAAUE,GAChG,OAAoBjkI,EAAAA,cAAoB,OAAQ,CAC9C9nL,MAAOmzW,GAAShtW,GAChB3qC,UAAWisN,KAAW,GAAGhvN,OAAOk8Y,EAAoB,UAAU7oS,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAOk8Y,EAAoB,kBAAmBG,KACrHhtL,EAAAA,cAAoB,OAAQ,CAC1CtsN,UAAW,GAAG/C,OAAOk8Y,EAAoB,kBACxCjiY,GAAUm5U,GAAyB/jI,EAAAA,cAAoBitL,GAAU,CAClEv5Y,UAAW,GAAG/C,OAAOk8Y,EAAoB,gBACzCxoD,YAAaknD,GACbjrU,QAAS2jR,EACTwlD,cAAekC,GACd,QACL,EACIuB,EAA0B,SAAiCniZ,EAAO6f,EAASoiY,EAAcjpD,EAAUE,EAASkpD,GAK9G,OAAoBntL,EAAAA,cAAoB,OAAQ,CAC9CqkI,YALgB,SAAqB1qU,GACrC4xX,GAAmB5xX,GACnBuyX,GAAcxgY,EAChB,GAGGugY,EAAU,CACXhnS,MAAOr6F,EACP7f,MAAOA,EACPolD,SAAU68V,EACVjpD,SAAUA,EACVE,QAASA,EACTkpD,WAAYA,IAEhB,EAmCIzC,EAAyB1qL,EAAAA,cAAoB,MAAO,CACtDtsN,UAAW,GAAG/C,OAAOk8Y,EAAoB,WACzCp7Y,MAAO,CACLrD,MAAOu+Y,GAETlyJ,QAAS,WACPk8I,GAAW,EACb,EACAtD,OAAQ,WACNsD,GAAW,EACb,GACc32K,EAAAA,cAAoB8rI,GAAO,CACzCpoT,IAAKozV,EACLprX,KAAMA,EACN+5N,UAAWA,EACX71N,GAAIA,EACJkkX,aAAc,KACd3jV,SAAUA,EACVswB,UAAWA,EACX01T,aAAcA,EACdgU,SAAU2C,EACV1C,mBAAoBA,EACpBr/Y,MAAOk8Y,EACPzsJ,UAAW6xJ,EACXhoD,YAAaioD,EACbn/J,SAAUguJ,EACVoP,QAAS6B,EACT3V,mBAAoB8V,EACpB7V,iBAAkB8V,EAClBnZ,OAAQoZ,EACRz8J,SAAUA,EACVuiC,MAAO+wE,GAAUt/S,GAAO,KACTg8K,EAAAA,cAAoB,OAAQ,CAC3Ct8K,IAAKgpW,EACLh5Y,UAAW,GAAG/C,OAAOk8Y,EAAoB,kBACzC,eAAe,GACd5F,EAAY,SAGXmG,EAA6BptL,EAAAA,cAAoB+oB,GAAU,CAC7DtD,UAAW,GAAG90O,OAAOk8Y,EAAoB,aACzCnkY,KAAMlG,EACNmjO,WA5Ee,SAAoB0nK,GACnC,IAAIL,EAAeK,EAAUl9V,SAC3B80D,EAAQooS,EAAUpoS,MAClBl6G,EAAQsiZ,EAAUtiZ,MAChBg5V,GAAY5zS,IAAa68V,EACzBM,EAAeroS,EACnB,GAAgC,kBAArB4mS,IACY,kBAAV5mS,GAAuC,kBAAVA,GAAoB,CAC1D,IAAIsoS,EAAWn6Y,OAAOk6Y,GAClBC,EAASjgZ,OAASu+Y,IACpByB,EAAe,GAAG38Y,OAAO48Y,EAASp8Y,MAAM,EAAG06Y,GAAmB,OAElE,CAEF,IAAI5nD,EAAU,SAAiB1+R,GACzBA,GACFA,EAAMxI,kBAERovV,EAASkB,EACX,EACA,MAA4B,oBAAdpB,EAA2BiB,EAAwBniZ,EAAOuiZ,EAAcN,EAAcjpD,EAAUE,GAAW8oD,EAAsBM,EAAWC,EAAcN,EAAcjpD,EAAUE,EAClM,EAwDE16G,WAvDe,SAAoByiK,GAEnC,IAAKxpY,EAAOlV,OACV,OAAO,KAET,IAAIsd,EAAuC,oBAAtBmhY,EAAmCA,EAAkBC,GAAiBD,EAC3F,MAA4B,oBAAdE,EAA2BiB,OAAwB9zY,EAAWwR,GAAS,GAAO,OAAOxR,GAAW,GAAQ2zY,EAAsB,CAC1I70W,MAAOttB,GACNA,GAAS,EACd,EA+CE2vH,OAAQmwQ,EACR3kK,QAASA,GACTuD,SAAUsiK,IAEZ,OAAoB5rL,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAW,GAAG/C,OAAOk8Y,EAAoB,UACxCO,GAAgB5qY,EAAOlV,SAAW25Y,GAA2BjnL,EAAAA,cAAoB,OAAQ,CAC1FtsN,UAAW,GAAG/C,OAAOk8Y,EAAoB,iBACxC32T,GACL,EErFA,SApGqB,SAAwBlyC,GAC3C,IAAI8vV,EAAe9vV,EAAM8vV,aACvBruJ,EAAYzhM,EAAMyhM,UAClB71N,EAAKo0B,EAAMp0B,GACXknX,EAAW9yV,EAAM8yV,SACjB3mV,EAAWnM,EAAMmM,SACjBswB,EAAYz8B,EAAMy8B,UAClB01T,EAAenyV,EAAMmyV,aACrBiU,EAAqBpmW,EAAMomW,mBAC3Bj6Y,EAAO6zC,EAAM7zC,KACbub,EAAOs4B,EAAMt4B,KACblJ,EAASwhC,EAAMxhC,OACf0zE,EAAclyC,EAAMkyC,YACpB85J,EAAWhsM,EAAMgsM,SACjB07J,EAAa1nW,EAAM0nW,WACnBF,EAAcxnW,EAAMwnW,YACpBgC,EAAcxpW,EAAMwpW,YACpB1tT,EAAY97C,EAAM87C,UAClBusT,EAAiBroW,EAAMqoW,eACvBC,EAAmBtoW,EAAMsoW,iBACzBnR,EAAgBn3V,EAAMm3V,cACtBiR,EAAepoW,EAAMooW,aACrBG,EAA0BvoW,EAAMuoW,wBAChCC,EAAwBxoW,EAAMwoW,sBAC9BC,EAAczoW,EAAMyoW,YACpBv0W,EAAQ8L,EAAM9L,MAEd4vM,EAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnDytL,EAAe3lK,EAAiB,GAChC4lK,EAAkB5lK,EAAiB,GACjC6lK,EAAoB,aAATx9Y,EACX28Y,EAAgBa,GAAYjC,EAC5BrtW,EAAO77B,EAAO,GACdykY,EAAauE,GAAe,GAC5BmC,GAAYH,IAAgBC,IAC9BxG,EAAauG,GAEfxtL,EAAAA,WAAgB,WACV2tL,GACFD,GAAgB,EAEpB,GAAG,CAACC,EAAUH,IAGd,IAAII,IAAwB,aAATz9Y,IAAwBub,IAASggY,MAAuBzE,EAGvE4G,OAA2Bz0Y,IAAV8+B,EAAsBmzW,GAAShtW,GAAQnG,EACxD41W,EAAkB9tL,EAAAA,SAAc,WAClC,OAAI3hL,EACK,KAEW2hL,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAW,GAAG/C,OAAO80O,EAAW,0BAChCh0O,MAAOm8Y,EAAe,CACpB5hR,WAAY,eACV5yH,GACH88E,EACL,GAAG,CAAC73C,EAAMuvW,EAAc13T,EAAauvJ,IACrC,OAAoBzlB,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAW,GAAG/C,OAAO80O,EAAW,oBAClBzlB,EAAAA,cAAoB,OAAQ,CAC1CtsN,UAAW,GAAG/C,OAAO80O,EAAW,sBAClBzlB,EAAAA,cAAoB8rI,GAAO,CACzCpoT,IAAKozV,EACLrxJ,UAAWA,EACX71N,GAAIA,EACJlE,KAAMA,EACNooX,aAAcA,EACd3jV,SAAUA,EACVswB,UAAWA,EACX01T,aAAcA,EACdgU,SAAU2C,EACV1C,mBAAoBA,EACpBr/Y,MAAOk8Y,EACPzsJ,UAAW6xJ,EACXhoD,YAAaioD,EACbn/J,SAAU,SAAkBxzN,GAC1B+zX,GAAgB,GAChBvS,EAAcxhX,EAChB,EACA4wX,QAAS6B,EACT3V,mBAAoB8V,EACpB7V,iBAAkB8V,EAClBnZ,OAAQoZ,EACRz8J,SAAUA,EACVuiC,MAAO+wE,GAAUt/S,GAAO,GACxB87C,UAAW6tT,EAAW7tT,OAAY1mF,MAC9Bu0Y,GAAYtvW,EAAoB2hL,EAAAA,cAAoB,OAAQ,CAChEtsN,UAAW,GAAG/C,OAAO80O,EAAW,mBAChCvtM,MAAO21W,EAKPp8Y,MAAOm8Y,EAAe,CACpB5hR,WAAY,eACV5yH,GACHilC,EAAK4mE,OAAS,KAAM6oS,EACzB,ECrFA,IAAIC,GAAW,SAAkB/pW,EAAON,GACtC,IAAIozV,GAAWr9T,EAAAA,EAAAA,QAAO,MAClBu0U,GAAuBv0U,EAAAA,EAAAA,SAAO,GAC9BgsK,EAAYzhM,EAAMyhM,UACpB/5N,EAAOs4B,EAAMt4B,KACbvb,EAAO6zC,EAAM7zC,KACbu7Y,EAAa1nW,EAAM0nW,WACnBuC,EAAiBjqW,EAAMiqW,eACvB99V,EAAWnM,EAAMmM,SACjBgwD,EAASn8D,EAAMm8D,OACfsrS,EAAuBznW,EAAMynW,qBAC7B5O,EAAW74V,EAAM64V,SACjBqR,EAAiBlqW,EAAMkqW,eACvBhC,EAAeloW,EAAMkoW,aACrBG,EAAiBroW,EAAMqoW,eACvBI,EAAczoW,EAAMyoW,YACpB0B,EAASnqW,EAAMmqW,OAGjBnuL,EAAAA,oBAA0Bt8K,GAAK,WAC7B,MAAO,CACLhkB,MAAO,SAAerwB,GACpBynY,EAAS1kW,QAAQ1S,MAAMrwB,EACzB,EACAiwB,KAAM,WACJw3W,EAAS1kW,QAAQ9S,MACnB,EAEJ,IAGA,IACE8uX,EAAYrmK,GADCgiK,GAAQ,GACgB,GACrCsE,EAAoBD,EAAU,GAC9BE,EAAoBF,EAAU,GAmC5BG,GAAgB90U,EAAAA,EAAAA,QAAO,MACvB+0U,EAAkB,SAAyBzjZ,IACe,IAAxD8xY,EAAS9xY,GAAO,EAAMijZ,EAAqB57W,UAC7C85W,GAAa,EAEjB,EA6DIuC,EAAc,CAChB3X,SAAUA,EACVuV,eAtG2B,SAAgC9mV,GAC3D,ICpD8BmpV,EDoD1BhsV,EAAQ6C,EAAM7C,MAGdisV,EAAoB7X,EAAS1kW,mBAAmBw8W,qBAC/CD,IAAqBjjY,GAASg3C,IAAUwtL,GAAQgB,IAAMxuL,IAAUwtL,GAAQkB,MAC3E7rL,EAAMrH,iBAEJmuV,GACFA,EAAe9mV,GAEb7C,IAAUwtL,GAAQI,OAAkB,SAATngP,GAAoB69Y,EAAqB57W,SAAY1mB,GAG/D,OAAnBwiY,QAA8C,IAAnBA,GAA6BA,EAAe3oV,EAAMruD,OAAOnM,OAGlF4jZ,IAAsBjjY,IAAS,CAACwkO,GAAQgB,GAAIhB,GAAQkB,KAAMlB,GAAQe,KAAMf,GAAQiB,OAAOtgP,QAAQ6xD,MCpErEgsV,EDuERhsV,KCjErB,CAEDwtL,GAAQU,IAAKV,GAAQK,MAAOL,GAAQh/H,UAAWg/H,GAAQE,IAAKF,GAAQoE,QAASpE,GAAQO,IAAKP,GAAQ6B,KAAM7B,GAAQ8B,cAAe9B,GAAQM,KAAMN,GAAQn/H,UAAWm/H,GAAQ6D,OAAQ7D,GAAQS,UAAWT,GAAQ+B,aAE3M/B,GAAQ+C,GAAI/C,GAAQgD,GAAIhD,GAAQiD,GAAIjD,GAAQkD,GAAIlD,GAAQmD,GAAInD,GAAQoD,GAAIpD,GAAQqD,GAAIrD,GAAQsD,GAAItD,GAAQuD,GAAIvD,GAAQwD,IAAKxD,GAAQyD,IAAKzD,GAAQ0D,KAAKt3O,SAASoyY,ID8D1JxC,GAAa,EAEjB,EAgFEI,iBA1E6B,WAC7BgC,GAAkB,EACpB,EAyEEnT,cArDkB,SAAuB51U,GACzC,IAAIx6D,EAAQw6D,EAAMruD,OAAOnM,MAGzB,GAAIkjZ,GAAkBM,EAAcn8W,SAAW,SAASjpB,KAAKolY,EAAcn8W,SAAU,CAEnF,IAAIy8W,EAAeN,EAAcn8W,QAAQvyB,QAAQ,WAAY,IAAIA,QAAQ,QAAS,KAAKA,QAAQ,UAAW,KAC1G9U,EAAQA,EAAM8U,QAAQgvY,EAAcN,EAAcn8W,QACpD,CACAm8W,EAAcn8W,QAAU,KACxBo8W,EAAgBzjZ,EAClB,EA2CEqhZ,aA1CiB,SAAsBzyX,GACvC,IAAIsnC,EAAgBtnC,EAAEsnC,cAClBl2D,EAA0B,OAAlBk2D,QAA4C,IAAlBA,OAA2B,EAASA,EAAckpC,QAAQ,QAChGokT,EAAcn8W,QAAUrnC,GAAS,EACnC,EAuCEwhZ,wBAlE4B,WAC5ByB,EAAqB57W,SAAU,CACjC,EAiEEo6W,sBAhE0B,SAA+B7yX,GACzDq0X,EAAqB57W,SAAU,EAGlB,aAATjiC,GACFq+Y,EAAgB70X,EAAEziB,OAAOnM,MAE7B,EA0DE0hZ,YAAaA,GAEXr6Q,EAAsB,aAATjiI,GAAgC,SAATA,EAA+B6vN,EAAAA,cAAoB8uL,GAAkB1jL,GAAS,CAAC,EAAGpnL,EAAOyqW,IAA6BzuL,EAAAA,cAAoB+uL,GAAgB3jL,GAAS,CAAC,EAAGpnL,EAAOyqW,IACtN,OAAoBzuL,EAAAA,cAAoB,MAAO,CAC7Ct8K,IAAKyqW,EACLz6Y,UAAW,GAAG/C,OAAO80O,EAAW,aAChCnlK,QA9CY,SAAiB82E,GAChBA,EAAKlgJ,SACH4/X,EAAS1kW,eAE2Bh5B,IAAtC3F,SAASuE,KAAKvG,MAAMu9Y,cAE7B31X,YAAW,WACTy9W,EAAS1kW,QAAQ1S,OACnB,IAEAo3W,EAAS1kW,QAAQ1S,QAGvB,EAkCE2kU,YAjCgB,SAAqB9+R,GACrC,IAAI0pV,EAAiBZ,IAKjB9oV,EAAMruD,SAAW4/X,EAAS1kW,SAAY68W,GAA6B,aAAT9+Y,GAAuBggD,GACnFoV,EAAMrH,kBAEK,aAAT/tD,GAAyBu7Y,GAAeuD,IAAoBvjY,IAC1DA,IAAiC,IAAzB+/X,GACV5O,EAAS,IAAI,GAAM,GAErBqP,IAEJ,GAmBG/rS,GAAuB6/G,EAAAA,cAAoB,MAAO,CACnDtsN,UAAW,GAAG/C,OAAO80O,EAAW,YAC/BtlI,GAASiyB,EACd,EAKA,SAJmC4tF,EAAAA,WAAiB+tL,IE1KpD,IAAI5zK,GAAY,CAAC,YAAa,WAAY,UAAW,WAAY,eAAgB,YAAa,iBAAkB,gBAAiB,oBAAqB,YAAa,YAAa,oBAAqB,2BAA4B,iBAAkB,gBAAiB,oBAAqB,QAAS,oBAAqB,uBAAwB,qBA8C3U+0K,GAAgB,SAAuBlrW,EAAON,GAChD,IAAI+hM,EAAYzhM,EAAMyhM,UAEpBugB,GADWhiN,EAAMmM,SACPnM,EAAMgiN,SAChB11M,EAAWtM,EAAMsM,SACjB6oN,EAAen1N,EAAMm1N,aACrB9vM,EAAYrlB,EAAMqlB,UAClBu7L,EAAiB5gN,EAAM4gN,eACvBuqJ,EAAgBnrW,EAAMmrW,cACtBC,EAAoBprW,EAAMorW,kBAC1BC,EAAmBrrW,EAAM4lF,UACzBA,OAAiC,IAArBylR,EAA8B,MAAQA,EAClD92I,EAAYv0N,EAAMu0N,UAClB7D,EAAoB1wN,EAAM0wN,kBAC1BiqE,EAA2B36R,EAAM26R,yBACjCiG,EAAiB5gS,EAAM4gS,eACvB0qE,EAAgBtrW,EAAMsrW,cACtB9gJ,EAAoBxqN,EAAMwqN,kBAC1B11G,EAAQ90G,EAAM80G,MACdq3G,EAAoBnsN,EAAMmsN,kBAC1ByD,EAAuB5vN,EAAM4vN,qBAC7B4N,EAAoBx9N,EAAMw9N,kBAC1Bv7B,EAAYC,GAAyBliM,EAAOm2L,IAC1Co1K,EAAoB,GAAG5+Y,OAAO80O,EAAW,aACzC+pK,EAAYr2I,EACZyrE,IACF4qE,EAAY5qE,EAAezrE,IAE7B,IAAIs2I,EAA0BzvL,EAAAA,SAAc,WAC1C,OAAO00C,GAvEgB,SAA8BiqE,GAEvD,IAAI/hE,GAAuC,IAA7B+hE,EAAoC,EAAI,EACtD,MAAO,CACLt7D,WAAY,CACV1V,OAAQ,CAAC,KAAM,MACf1mM,OAAQ,CAAC,EAAG,GACZxvD,SAAU,CACRmlQ,QAASA,EACTC,QAAS,GAEXvC,WAAY,UAEdgJ,YAAa,CACX3V,OAAQ,CAAC,KAAM,MACf1mM,OAAQ,CAAC,EAAG,GACZxvD,SAAU,CACRmlQ,QAASA,EACTC,QAAS,GAEXvC,WAAY,UAEd6I,QAAS,CACPxV,OAAQ,CAAC,KAAM,MACf1mM,OAAQ,CAAC,GAAI,GACbxvD,SAAU,CACRmlQ,QAASA,EACTC,QAAS,GAEXvC,WAAY,UAEd8I,SAAU,CACRzV,OAAQ,CAAC,KAAM,MACf1mM,OAAQ,CAAC,GAAI,GACbxvD,SAAU,CACRmlQ,QAASA,EACTC,QAAS,GAEXvC,WAAY,UAGlB,CA8BgCo1I,CAAqB/wE,EACnD,GAAG,CAACjqE,EAAmBiqE,IAGnBgxE,EAAuBtmV,EAAY,GAAG14D,OAAO4+Y,EAAmB,KAAK5+Y,OAAO04D,GAAau7L,EAGzFgrJ,EAAyD,kBAA7BjxE,EAC5B9gI,EAAUmiB,EAAAA,SAAc,WAC1B,OAAI4vL,EACK,MAE2B,IAA7BjxE,EAAqC,WAAa,OAC3D,GAAG,CAACA,EAA0BixE,IAC1Br7I,EAAa46I,EACbS,IACFr7I,EAAa5vB,GAAcA,GAAc,CAAC,EAAG4vB,GAAa,CAAC,EAAG,CAC5DnmQ,MAAOuwU,KAKX,IAAIkxE,EAAkB7vL,EAAAA,OAAa,MASnC,OARAA,EAAAA,oBAA0Bt8K,GAAK,WAC7B,MAAO,CACLosW,gBAAiB,WACf,IAAIC,EACJ,OAA6D,QAArDA,EAAwBF,EAAgBz9W,eAA+C,IAA1B29W,OAAmC,EAASA,EAAsB52I,YACzI,EAEJ,IACoBn5C,EAAAA,cAAoB0kD,GAASt5C,GAAS,CAAC,EAAG6a,EAAW,CACvEutB,WAAYI,EAAuB,CAAC,SAAW,GAC/CH,WAAYG,EAAuB,CAAC,SAAW,GAC/CY,eAAgB+D,IAA4B,QAAd3uI,EAAsB,cAAgB,cACpE8qI,kBAAmB+6I,EACnBhqK,UAAW8pK,EACXt6I,oBAAqB06I,EACrBthJ,MAAoBruC,EAAAA,cAAoB,MAAO,CAC7Co5B,aAAcooB,GACbguI,GACH9rW,IAAKmsW,EACLhyM,QAASA,EACT82D,WAAY26I,EACZ57I,aAAc1N,EACdwI,kBAAmBA,EACnB8F,eAAgB30C,KAAWyvL,GAAmBprS,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO4+Y,EAAmB,UAAWz2P,IAC1Gy7G,WAAYA,EACZpE,kBAAmBA,EACnByD,qBAAsBA,IACpBtjN,EACN,EAKA,SAJoC0vK,EAAAA,WAAiBkvL,IC/HrD,SAASrjK,GAAOnjO,EAAMrM,GACpB,IACItR,EADAkG,EAAMyX,EAAKzX,IAKf,MAHI,UAAWyX,IACb3d,EAAQ2d,EAAK3d,OAEH,OAARkG,QAAwBmI,IAARnI,EACXA,OAEKmI,IAAVrO,EACKA,EAEF,gBAAgB4F,OAAO0L,EAChC,CACO,SAAS2zY,GAAajlZ,GAC3B,MAAwB,qBAAVA,IAA0BsI,OAAOic,MAAMvkB,EACvD,CACO,SAASklZ,GAAeC,EAAYC,GACzC,IAAI/4P,EAAO84P,GAAc,CAAC,EAKtBE,EAJMh5P,EAAKnyC,QAIakrS,EAAiB,WAAa,SAC1D,MAAO,CACLlrS,MAAOmrS,EACPrlZ,MANQqsJ,EAAKrsJ,OAMG,QAChBsE,QANU+nJ,EAAK/nJ,SAMK,UACpBghZ,WANaj5P,EAAKi5P,YAMQD,EAE9B,CAyDO,SAASE,GAAsBl5Q,GACpC,IAAIm5Q,EAAY5rK,GAAc,CAAC,EAAGvtG,GASlC,MARM,UAAWm5Q,GACfp+Y,OAAOgN,eAAeoxY,EAAW,QAAS,CACxC52Y,IAAK,WAEH,OADAoxN,IAAQ,EAAO,iHACRwlL,CACT,IAGGA,CACT,CCjGA,SADiCvwL,EAAAA,cAAoB,MCFtC,SAASwwL,GAAOxsW,GAC7B,IAAIgiN,EAAUhiN,EAAMgiN,QAClBxjP,EAASwhC,EAAMxhC,OACjB,IAAKwjP,EACH,OAAO,KAKT,OAAoBhmC,EAAAA,cAAoB,OAAQ,CAC9C,YAAa,SACbvuN,MAAO,CACLrD,MAAO,EACPN,OAAQ,EACR0J,SAAU,WACVC,SAAU,SACVK,QAAS,IAEV,GAAGnH,OAAO6R,EAAOrR,MAAM,EAVV,IAUwBqI,KAAI,SAAU49I,GACpD,IAAInyC,EAAQmyC,EAAKnyC,MACfl6G,EAAQqsJ,EAAKrsJ,MACf,MAAO,CAAC,SAAU,UAAUuR,UAAS3N,EAAAA,GAAAA,GAAQs2G,IAAUA,EAAQl6G,CACjE,IAAGqG,KAAK,OAAQoR,EAAOlV,OAdP,GAc4B,QAAU,KACxD,CCnBA,IAAI6sO,GAAY,CAAC,KAAM,YAAa,YAAa,aAAc,YAAa,YAAa,eAAgB,gBAAiB,wBAAyB,eAAgB,kBAAmB,UAAW,OAAQ,WAAY,UAAW,kBAAmB,qBAAsB,OAAQ,cAAe,0BAA2B,cAAe,sBAAuB,qBAAsB,cAAe,uBAAwB,WAAY,gBAAiB,kBAAmB,aAAc,SAAU,aAAc,YAAa,aAAc,YAAa,iBAAkB,gBAAiB,oBAAqB,2BAA4B,iBAAkB,gBAAiB,YAAa,oBAAqB,oBAAqB,aAAc,UAAW,SAAU,UAAW,YAAa,eAkBjwBs2K,GAAqB,CAAC,QAAS,WAAY,aAAc,cAAe,YAAa,cAAe,mBAAoB,oBAAqB,uBAAwB,iBAAkB,gBAAiB,YACjMC,GAAa,SAAoBvgZ,GAC1C,MAAgB,SAATA,GAA4B,aAATA,CAC5B,EA2jBA,SA1jB8B6vN,EAAAA,YAAiB,SAAUh8K,EAAON,GAC9D,IAAIitW,EACA/gY,EAAKo0B,EAAMp0B,GACb61N,EAAYzhM,EAAMyhM,UAClB/xO,EAAYswC,EAAMtwC,UAClBg4Y,EAAa1nW,EAAM0nW,WACnBO,EAAYjoW,EAAMioW,UAClBriR,EAAY5lF,EAAM4lF,UAClBgnR,EAAe5sW,EAAM4sW,aACrBC,EAAgB7sW,EAAM6sW,cACtBC,EAAwB9sW,EAAM8sW,sBAC9BC,EAAe/sW,EAAM+sW,aACrBC,EAAwBhtW,EAAMitW,gBAC9BA,OAA4C,IAA1BD,EAAmC,YAAcA,EACnE1c,EAAUtwV,EAAMswV,QAChBnkY,EAAO6zC,EAAM7zC,KACbggD,EAAWnM,EAAMmM,SACjBguF,EAAUn6F,EAAMm6F,QAChBo6P,EAAkBv0V,EAAMu0V,gBACxB2Y,EAAqBltW,EAAMktW,mBAC3BxlY,EAAOs4B,EAAMt4B,KACbm+S,EAAc7lR,EAAM6lR,YACpBsnF,EAA0BntW,EAAMmtW,wBAChC3D,EAAcxpW,EAAMwpW,YACpB4D,EAAsBptW,EAAMotW,oBAC5BhH,EAAqBpmW,EAAMomW,mBAC3BoB,EAAcxnW,EAAMwnW,YACpBC,EAAuBznW,EAAMynW,qBAC7B5O,EAAW74V,EAAM64V,SACjBwU,EAAgBrtW,EAAMqtW,cACtBC,EAAkBttW,EAAMstW,gBACxBnd,EAAanwV,EAAMmwV,WACnBh0R,EAASn8D,EAAMm8D,OACfm8R,EAAat4V,EAAMs4V,WACnBpH,EAAYlxV,EAAMkxV,UAClBqc,EAAavtW,EAAMutW,WACnBloV,EAAYrlB,EAAMqlB,UAClBu7L,EAAiB5gN,EAAM4gN,eACvBuqJ,EAAgBnrW,EAAMmrW,cACtBC,EAAoBprW,EAAMorW,kBAC1BzwE,EAA2B36R,EAAM26R,yBACjCiG,EAAiB5gS,EAAM4gS,eACvB0qE,EAAgBtrW,EAAMsrW,cACtB/2I,EAAYv0N,EAAMu0N,UAClB7D,EAAoB1wN,EAAM0wN,kBAC1BlG,EAAoBxqN,EAAMwqN,kBAC1BgjJ,EAAoBxtW,EAAMwvN,WAC1BA,OAAmC,IAAtBg+I,EAA+B,GAAKA,EACjD/2J,EAAUz2M,EAAMy2M,QAChB44I,EAASrvV,EAAMqvV,OACfgD,EAAUryV,EAAMqyV,QAChB77I,EAAYx2M,EAAMw2M,UAClB6pG,GAAcrgT,EAAMqgT,YACpBp+G,GAAYC,GAAyBliM,EAAOm2L,IAG1C/5J,GAAWswU,GAAWvgZ,GACtBshZ,SAAmCr4Y,IAAfsyY,EAA2BA,EAAatrU,KAAsB,aAATjwE,EACzEuhZ,GAAW/sK,GAAc,CAAC,EAAGsB,IACjCwqK,GAAmBxjZ,SAAQ,SAAUu4C,UAC5BksW,GAASlsW,EAClB,IACiB,OAAjBorW,QAA0C,IAAjBA,GAA2BA,EAAa3jZ,SAAQ,SAAUu4C,UAC1EksW,GAASlsW,EAClB,IAGA,IACEsiM,GAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnDs1C,GAASxtB,GAAiB,GAC1BytB,GAAYztB,GAAiB,GAC/B9nB,EAAAA,WAAgB,WAEdu1C,GAAUC,KACZ,GAAG,IAGH,IAAIhgB,GAAex1B,EAAAA,OAAa,MAC5B2xL,GAAiB3xL,EAAAA,OAAa,MAC9BskF,GAAatkF,EAAAA,OAAa,MAC1B4xL,GAAc5xL,EAAAA,OAAa,MAC3B6xL,GAAU7xL,EAAAA,OAAa,MACvB8xL,GAAU9xL,EAAAA,QAAa,GAGvB+xL,GC1GS,WACb,IAAIluQ,EAAUjoI,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GAEhFksO,EAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnDh6K,EAAO8hM,EAAiB,GACxBkqK,EAAUlqK,EAAiB,GACzB2vB,EAAWz3C,EAAAA,OAAa,MACxBiyL,EAAe,WACjBvgZ,OAAOw6D,aAAaurM,EAASrlO,QAC/B,EAaA,OAZA4tL,EAAAA,WAAgB,WACd,OAAOiyL,CACT,GAAG,IAUI,CAACjsW,EATW,SAAsBj7C,EAAOosB,GAC9C86X,IACAx6I,EAASrlO,QAAU1gC,OAAO2nB,YAAW,WACnC24X,EAAQjnZ,GACJosB,GACFA,GAEJ,GAAG0sH,EACL,EAC4BouQ,EAC9B,CDmFuBC,GACnBC,GAAkBpqK,GAAegqK,GAAgB,GACjDK,GAAcD,GAAgB,GAC9BE,GAAiBF,GAAgB,GACjCG,GAAuBH,GAAgB,GAGzCnyL,EAAAA,oBAA0Bt8K,GAAK,WAC7B,IAAI6uW,EAAsBC,EAC1B,MAAO,CACL9yX,MAAwD,QAAhD6yX,EAAuBX,GAAYx/W,eAA8C,IAAzBmgX,OAAkC,EAASA,EAAqB7yX,MAChIJ,KAAwD,QAAjDkzX,EAAwBZ,GAAYx/W,eAA+C,IAA1BogX,OAAmC,EAASA,EAAsBlzX,KAClI69G,SAAU,SAAkB70H,GAC1B,IAAImqY,EACJ,OAAgD,QAAxCA,EAAmBZ,GAAQz/W,eAA0C,IAArBqgX,OAA8B,EAASA,EAAiBt1Q,SAAS70H,EAC3H,EACA0zN,cAAewZ,GAAapjN,SAAWu/W,GAAev/W,QAE1D,IAGA,IAAIsgX,GAAoB1yL,EAAAA,SAAc,WACpC,IAAI2yL,EACJ,GAAa,aAATxiZ,EACF,OAAOq7Y,EAET,IAAI12Y,EAA+C,QAAxC69Y,EAAkB9B,EAAc,UAAoC,IAApB8B,OAA6B,EAASA,EAAgB5nZ,MACjH,MAAsB,kBAAR+J,GAAmC,kBAARA,EAAmB1B,OAAO0B,GAAO,EAC5E,GAAG,CAAC02Y,EAAar7Y,EAAM0gZ,IAInB+B,GAAiC,aAATziZ,GAAkD,oBAApBooY,GAAkCA,KAAqB,KAG7Gsa,GAAyD,oBAAvB3B,GAAqCA,IACvE4B,GAAuBl2K,GAAc+0K,GAA6C,OAA7BkB,SAAkE,IAA7BA,IAAoG,QAA5DlC,EAAwBkC,GAAyB7uW,aAA6C,IAA1B2sW,OAAmC,EAASA,EAAsBjtW,KAK1Qs0M,GAAmBjQ,GADE/nB,EAAAA,UAAe,GACgB,GACpD+yL,GAAW/6J,GAAiB,GAC5Bg7J,GAAch7J,GAAiB,GACjC1+K,IAAgB,WACd05U,IAAY,EACd,GAAG,IACH,IAIErpI,GAAmB5hC,GAJCkF,IAAe,EAAO,CACxCviN,aAAcm/R,EACd9+T,MAAO2gB,IAE0C,GACnDunY,GAAYtpI,GAAiB,GAC7BupI,GAAevpI,GAAiB,GAC9BzS,KAAa67I,IAAWE,GAGxBE,IAAoBlC,GAAmBF,GACvC5gW,GAAYgjW,IAAoBj8I,IAAuB,aAAT/mQ,KAChD+mQ,IAAa,GAEf,IAAIS,IAAcw7I,IAA2Bj8I,GACzCg1I,GAAelsL,EAAAA,aAAkB,SAAUozL,GAC7C,IAAIh8I,OAAuBh+P,IAAZg6Y,EAAwBA,GAAWl8I,GAC7C/mN,IACH+iW,GAAa97I,GACTF,KAAeE,IACW,OAA5B+5I,QAAgE,IAA5BA,GAAsCA,EAAwB/5I,IAGxG,GAAG,CAACjnN,EAAU+mN,GAAYg8I,GAAc/B,IAGpClD,GAAiBjuL,EAAAA,SAAc,WACjC,OAAQsxL,GAAmB,IAAI/zY,MAAK,SAAU81Y,GAC5C,MAAO,CAAC,KAAM,QAAQ/2Y,SAAS+2Y,EACjC,GACF,GAAG,CAAC/B,IACAl6P,GAAO4oE,EAAAA,WAAiBszL,KAAkB,CAAC,EAC7ChqK,GAAWlyF,GAAKkyF,SAChBiqK,GAAYn8P,GAAKm8P,UACfC,GAAmB,SAA0BC,EAAYC,EAAYC,GACvE,KAAIvzU,IAAY4vU,GAAa1mK,MAA4B,OAAdiqK,SAAoC,IAAdA,QAAuB,EAASA,GAAU/kY,OAAS86N,IAApH,CAGA,IAAI9wE,GAAM,EACNo7O,EAAgBH,EACI,OAAxBrC,QAAwD,IAAxBA,GAAkCA,EAAoB,MACtF,IAAIyC,EHlGyB,SAA6B7rX,EAAM6sF,EAAQ5lG,GAC1E,IAAK4lG,IAAWA,EAAOvnH,OACrB,OAAO,KAET,IAAIyX,GAAQ,EAcR6nP,EAbW,SAASknJ,EAAS30W,EAAKotN,GACpC,IAAIx0B,EAAQ0qB,GAAS8J,GACnBz3I,EAAQijH,EAAM,GACdg8K,EAAah8K,EAAM5mO,MAAM,GAC3B,IAAK2jH,EACH,MAAO,CAAC31E,GAEV,IAAIytN,EAAOztN,EAAI75B,MAAMwvG,GAErB,OADA/vG,EAAQA,GAAS6nP,EAAKt/P,OAAS,EACxBs/P,EAAKxhO,QAAO,SAAU4oX,EAAUC,GACrC,MAAO,GAAGtjZ,OAAOw+O,GAAmB6kK,GAAW7kK,GAAmB2kK,EAASG,EAASF,IACtF,GAAG,IAAIz2Y,OAAOY,QAChB,CACW41Y,CAAS9rX,EAAM6sF,GAC1B,OAAI9vG,EACoB,qBAARkK,EAAsB29O,EAAKz7P,MAAM,EAAG8d,GAAO29O,EAElD,IAEX,CG0EwBsnJ,CAAoBT,EAAYnC,EAAiBtB,GAAa1mK,IAAYA,GAAWiqK,GAAU/kY,UAAOpV,GAGtH+6Y,EAAcR,EAAgB,KAAOE,EAkBzC,MAfa,aAAT1jZ,GAAuBgkZ,IACzBP,EAAgB,GACE,OAAlBvC,QAA4C,IAAlBA,GAA4BA,EAAc8C,GAGpEjI,IAAa,GAGb1zO,GAAM,GAEJqkO,GAAY6V,KAAsBkB,GACpC/W,EAAS+W,EAAe,CACtB77Y,OAAQ27Y,EAAa,SAAW,WAG7Bl7O,CAzBP,CA0BF,EAgBAwnD,EAAAA,WAAgB,WACTk3C,IAAe92L,IAAqB,aAATjwE,GAC9BqjZ,GAAiB,IAAI,GAAO,EAEhC,GAAG,CAACt8I,KAIJl3C,EAAAA,WAAgB,WACVizL,IAAa9iW,GACf+iW,IAAa,GAIX/iW,IAAa2hW,GAAQ1/W,SACvBigX,IAAe,EAEnB,GAAG,CAACliW,IASJ,IACEi+V,GAAYrmK,GADCgiK,KACwB,GACrCqK,GAAehG,GAAU,GACzBiG,GAAejG,GAAU,GACvBvX,GAAa72K,EAAAA,QAAa,GAqF1Bs0L,GAAWt0L,EAAAA,QAAa,GA4CxBu0L,GAAmB,GACvBv0L,EAAAA,WAAgB,WACd,OAAO,WACLu0L,GAAiBtnZ,SAAQ,SAAU80V,GACjC,OAAO71R,aAAa61R,EACtB,IACAwyD,GAAiBj4W,OAAO,EAAGi4W,GAAiBjnZ,OAC9C,CACF,GAAG,IACH,IAoCIknZ,GAPFlyS,GADmBylI,GADE/nB,EAAAA,SAAe,CAAC,GACe,GACrB,GAQ7B6yL,KACF2B,GAAyB,SAAgCpB,GACvDlH,GAAakH,EACf,GE9bW,SAAiChkR,EAAU1jH,EAAMisP,EAAa88I,GAC3E,IAAIxwK,EAAWjkB,EAAAA,OAAa,MAC5BikB,EAAS7xM,QAAU,CACjB1mB,KAAMA,EACNisP,YAAaA,EACb88I,kBAAmBA,GAErBz0L,EAAAA,WAAgB,WACd,SAAS00L,EAAkBnvV,GACzB,IAAI4+K,EAEJ,GAA+C,QAA1CA,EAAoBF,EAAS7xM,eAA2C,IAAtB+xM,IAAgCA,EAAkBswK,kBAAzG,CAGA,IAAIv9Y,EAASquD,EAAMruD,OACfA,EAAOshI,YAAcjzE,EAAMovV,WAC7Bz9Y,EAASquD,EAAMw8M,eAAe,IAAM7qQ,GAElC+sO,EAAS7xM,QAAQ1mB,MAAQ0jH,IAAW9xH,QAAO,SAAUyuB,GACvD,OAAOA,CACT,IAAGvuB,OAAM,SAAUuuB,GACjB,OAAQA,EAAQ7zB,SAAShB,IAAW60B,IAAY70B,CAClD,KAEE+sO,EAAS7xM,QAAQulO,aAAY,EAX/B,CAaF,CAEA,OADAjmQ,OAAOgD,iBAAiB,YAAaggZ,GAC9B,WACL,OAAOhjZ,OAAOukD,oBAAoB,YAAay+V,EACjD,CACF,GAAG,GACL,CFkaEE,EAAwB,WACtB,IAAIC,EACJ,MAAO,CAACr/J,GAAapjN,QAAyD,QAA/CyiX,EAAuBvwG,GAAWlyQ,eAA8C,IAAzByiX,OAAkC,EAASA,EAAqB/E,kBACxJ,GAAGn4I,GAAau0I,KAAgB2G,IAGhC,IAkBIiC,GAlBAC,GAAoB/0L,EAAAA,SAAc,WACpC,OAAO2kB,GAAcA,GAAc,CAAC,EAAG3gM,GAAQ,CAAC,EAAG,CACjDitW,gBAAiBA,EACjBvlY,KAAMwrP,GACNS,YAAaA,GACb/nP,GAAIA,EACJ87X,WAAY+F,GACZrxU,SAAUA,GACV40U,WAAY9I,IAEhB,GAAG,CAACloW,EAAOitW,EAAiBt5I,GAAaT,GAAYtnP,EAAI6hY,GAAkBrxU,GAAU8rU,KAOjF+I,KAAmB3Y,GAAcn+P,EAEjC82Q,KACFH,GAAyB90L,EAAAA,cAAoBitL,GAAU,CACrDv5Y,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,WAAWzhI,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,kBAAmBtnG,IAClHsrQ,cAAenN,EACfoN,mBAAoB,CAClBvrQ,QAASA,EACTqtQ,YAAakH,GACbhnY,KAAMwrP,GACNg9H,QAASke,GACT1G,WAAY+F,OAMlB,IA8EI5iQ,GApEAqmQ,GdlfqB,SAAuBzvK,EAAW0vK,EAAkBtE,EAAe1c,EAAYe,GACxG,IAAI/kV,EAAWv0C,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAC1E82Y,EAAoB92Y,UAAUtO,OAAS,EAAIsO,UAAU,QAAKxC,EAC1DjJ,EAAOyL,UAAUtO,OAAS,EAAIsO,UAAU,QAAKxC,EAC7Cg8Y,EAAkBp1L,EAAAA,SAAc,WAClC,MAA4B,YAAxBrxN,EAAAA,GAAAA,GAAQwlY,GACHA,EAAWe,UAEhBA,QAAJ,CAGF,GAAG,CAACf,EAAYe,IAOhB,MAAO,CACLf,WAPqBn0K,EAAAA,SAAc,WACnC,QAAK7vK,IAAcgkV,IAAe0c,EAAcvjZ,SAAUolZ,GAAiC,aAATviZ,GAA6C,KAAtBuiZ,EAI3G,GAAG,CAACve,EAAYhkV,EAAU0gW,EAAcvjZ,OAAQolZ,EAAmBviZ,IAGjE+kY,UAAwBl1K,EAAAA,cAAoBitL,GAAU,CACpDv5Y,UAAW,GAAG/C,OAAO80O,EAAW,UAChC4+G,YAAa8wD,EACb1L,cAAe2L,GACd,QAEP,CcwduBC,CAAc5vK,GAVZ,WACrB,IAAI6vK,EACQ,OAAZhhB,QAAgC,IAAZA,GAAsBA,IACQ,QAAjDghB,EAAwB1D,GAAYx/W,eAA+C,IAA1BkjX,GAAoCA,EAAsB51X,QACpHoxX,EAAsB,GAAI,CACxB39Y,KAAM,QACNqP,OAAQquY,IAEV2C,GAAiB,IAAI,GAAO,EAC9B,GACgE3C,EAAe1c,EAAYe,EAAW/kV,EAAUuiW,GAAmBviZ,GACjIqoY,GAAmB0c,GAAe/gB,WAClCohB,GAAYL,GAAehgB,UAGzBsgB,GAA0Bx1L,EAAAA,cAAoBuxL,EAAY,CAC5D7tW,IAAKmuW,KAIH4D,GAAkB91L,KAAW8lB,EAAW/xO,GAAWswG,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,YAAa2sK,IAAc,GAAGzhZ,OAAO80O,EAAW,aAAcrlK,IAAW,GAAGzvE,OAAO80O,EAAW,YAAarlK,IAAW,GAAGzvE,OAAO80O,EAAW,gBAAiB0uJ,GAAa,GAAGxjY,OAAO80O,EAAW,eAAgBwvK,IAAiB,GAAGtkZ,OAAO80O,EAAW,aAAct1L,GAAW,GAAGx/C,OAAO80O,EAAW,YAAatnG,GAAU,GAAGxtI,OAAO80O,EAAW,SAAUyxB,IAAa,GAAGvmQ,OAAO80O,EAAW,oBAAqBmtK,IAAwB,GAAGjiZ,OAAO80O,EAAW,gBAAiBgsK,KAGzrBiE,GAA4B11L,EAAAA,cAAoBkvL,GAAe,CACjExrW,IAAK4gQ,GACLn0P,SAAUA,EACVs1L,UAAWA,EACXugB,QAAS2R,GACTwB,aAAcq8I,GACdnsV,UAAWA,EACXu7L,eAAgBA,EAChBuqJ,cAAeA,EACfC,kBAAmBA,EACnBxlR,UAAWA,EACX+0M,yBAA0BA,EAC1BiG,eAAgBA,EAChB0qE,cAAeA,EACf/2I,UAAWA,EACX7D,kBAAmBA,EACnBlG,kBAAmBA,EACnB11G,MAAOi4P,EACP5gJ,kBAAmB,SAA2Bp8P,GAC5C,OAIE49Y,GAAev/W,SAAWr+B,CAE9B,EACA6/P,qBAAsB4gJ,GACtBhzI,kBAvGF,WACEl/J,GAAY,CAAC,EACf,GAsGGuwS,GAA0C7yL,EAAAA,aAAmB6yL,GAA0B,CACxFnvW,IAAKovW,KACY9yL,EAAAA,cAAoB+tL,GAAU3iL,GAAS,CAAC,EAAGpnL,EAAO,CACnEmqW,OAAQwD,GACRlsK,UAAWA,EACXquJ,aAAc8e,GACdlvW,IAAKkuW,GACLhiY,GAAIA,EACJuwF,OAAQA,EACRurS,WAAY+F,GACZhG,qBAAsBA,EACtBt7Y,KAAMA,EACNi6Y,mBAAoBA,EACpB6B,UAAWA,EACXzpY,OAAQquY,EACRnlY,KAAMwrP,GACNg1I,aAAcA,GACdsB,YAAaA,EACbhC,YAAakH,GACb7V,SAAU2W,GACVtF,eA9U2B,SAAgCuF,GAEtDA,GAAeA,EAAWvkY,QAG/B2tX,EAAS4W,EAAY,CACnB17Y,OAAQ,UAEZ,EAuUEo0Y,SAjOqB,SAA0Br3Y,GAC/C,IAAI6gZ,EAAY9E,EAAcvzY,QAAO,SAAUjQ,GAC7C,OAAOA,IAAMyH,CACf,IACAg8Y,EAAsB6E,EAAW,CAC/BxiZ,KAAM,SACNqP,OAAQ,CAAC1N,IAEb,EA0NEm5Y,eAAgBA,GAChBxB,YA1NgB,WAEhB5V,GAAWzkW,SAAU,CACvB,MA+OA,OAhBEy8G,GADEgkQ,GACW6C,GAEa11L,EAAAA,cAAoB,MAAOoL,GAAS,CAC5D13N,UAAW+hZ,IACV/D,GAAU,CACXhuW,IAAK8xM,GACL6uG,YA5KsB,SAA6B9+R,GACrD,IAAIsvQ,EACA39T,EAASquD,EAAMruD,OACfiiQ,EAA8D,QAA9C07D,EAAsBvwB,GAAWlyQ,eAA6C,IAAxByiS,OAAiC,EAASA,EAAoBi7E,kBAGxI,GAAI32I,GAAgBA,EAAajhQ,SAAShB,GAAS,CACjD,IAAI6qV,EAAY1oU,YAAW,WACzB,IAMMu8X,EANFv5Y,EAAQk4Y,GAAiB1jZ,QAAQkxV,IACtB,IAAX1lV,GACFk4Y,GAAiBj4W,OAAOjgC,EAAO,GAEjCi2Y,KACKh9I,IAAW6D,EAAajhQ,SAASzE,SAASyrB,gBAEK,QAAjD02X,EAAwBhE,GAAYx/W,eAA+C,IAA1BwjX,GAAoCA,EAAsBl2X,OAExH,IACA60X,GAAiBvmZ,KAAK+zV,EACxB,CACA,IAAK,IAAIv/E,EAAQ5mQ,UAAUtO,OAAQuoZ,EAAW,IAAI7oZ,MAAMw1Q,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IAC5GozI,EAASpzI,EAAQ,GAAK7mQ,UAAU6mQ,GAElB,OAAhB4hF,SAAwC,IAAhBA,IAA0BA,GAAY79U,WAAM,EAAQ,CAAC++C,GAAO50D,OAAOklZ,GAC7F,EAqJIr7J,UApToB,SAA2Bj1L,GACjD,IAuCMuwV,EAvCFC,EAAY3B,KACZnjZ,EAAMs0D,EAAMt0D,IACZ+kZ,EAAqB,UAAR/kZ,EAejB,GAdI+kZ,IAEW,aAAT7lZ,GACFo1D,EAAMrH,iBAIHg5M,IACHg1I,IAAa,IAGjBmI,KAAe3B,IAGH,cAARzhZ,IAAwB8kZ,GAAa31U,KAAasyU,IAAqB7B,EAAcvjZ,OAAQ,CAG/F,IAFA,IAAI2oZ,EAAqB9mK,GAAmB0hK,GACxCqF,EAAsB,KACjB7oZ,EAAI4oZ,EAAmB3oZ,OAAS,EAAGD,GAAK,EAAGA,GAAK,EAAG,CAC1D,IAAI+kC,EAAU6jX,EAAmB5oZ,GACjC,IAAK+kC,EAAQ+d,SAAU,CACrB8lW,EAAmB35W,OAAOjvC,EAAG,GAC7B6oZ,EAAsB9jX,EACtB,KACF,CACF,CACI8jX,GACFpF,EAAsBmF,EAAoB,CACxC9iZ,KAAM,SACNqP,OAAQ,CAAC0zY,IAGf,CACA,IAAK,IAAIz5K,EAAO7gO,UAAUtO,OAAQisG,EAAO,IAAIvsG,MAAMyvO,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClGnjI,EAAKmjI,EAAO,GAAK9gO,UAAU8gO,IAEzBw6B,IAAgB8+I,GAAenf,GAAWzkW,UAGxC4jX,IACFnf,GAAWzkW,SAAU,GAEmB,QAAzC0jX,EAAoBjE,GAAQz/W,eAA2C,IAAtB0jX,GAAgCA,EAAkBt7J,UAAUh0O,MAAMsvY,EAAmB,CAACvwV,GAAO50D,OAAO4oG,KAE1I,OAAdihJ,QAAoC,IAAdA,GAAwBA,EAAUh0O,WAAM,EAAQ,CAAC++C,GAAO50D,OAAO4oG,GACvF,EAqQI88R,QAlQkB,SAAyB9wU,GAC7C,IAAK,IAAIs3K,EAAQjhO,UAAUtO,OAAQisG,EAAO,IAAIvsG,MAAM6vO,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGvjI,EAAKujI,EAAQ,GAAKlhO,UAAUkhO,GAG5B,IAAIq5K,EADFj/I,KAEwC,QAAzCi/I,EAAoBtE,GAAQz/W,eAA2C,IAAtB+jX,GAAgCA,EAAkB9f,QAAQ7vX,MAAM2vY,EAAmB,CAAC5wV,GAAO50D,OAAO4oG,KAEpI,UAAdh0C,EAAMt0D,MACR4lY,GAAWzkW,SAAU,GAEX,OAAZikW,QAAgC,IAAZA,GAAsBA,EAAQ7vX,WAAM,EAAQ,CAAC++C,GAAO50D,OAAO4oG,GACjF,EAuPIkhJ,QAnOmB,WACrB43J,IAAe,GACVliW,IACCsqM,IAAY65J,GAASliX,SACvBqoN,EAAQj0O,WAAM,EAAQ5K,WAIpB43P,EAAWl3P,SAAS,UACtB4vY,IAAa,IAGjBoI,GAASliX,SAAU,CACrB,EAuNIihW,OAtNkB,WACpBye,GAAQ1/W,SAAU,EAClBigX,IAAe,GAAO,WACpBiC,GAASliX,SAAU,EACnB0/W,GAAQ1/W,SAAU,EAClB85W,IAAa,EACf,IACI/7V,IAGAuiW,KAEW,SAATviZ,EACF0sY,EAAS6V,GAAmB,CAC1B36Y,OAAQ,WAEQ,aAAT5H,GAET0sY,EAAS,GAAI,CACX9kY,OAAQ,UAIVs7X,GACFA,EAAO7sX,WAAM,EAAQ5K,WAEzB,IA6LmBokN,EAAAA,cAAoBwwL,GAAQ,CAC3CxqJ,QAASosJ,KAAgBl7I,GACzB10P,OAAQquY,IACN6E,GAAcZ,GAAWtc,IAAoB+c,IAE/Bv1L,EAAAA,cAAoB8pL,GAAkB1mS,SAAU,CAClEr4G,MAAOgqZ,IACNlmQ,GACL,IG7kBA,IAAIunQ,GAAW,WACb,OAAO,IACT,EACAA,GAASC,kBAAmB,EAC5B,YCJA,IAAIC,GAAS,WACX,OAAO,IACT,EACAA,GAAOC,gBAAiB,EACxB,YCEA,IAAIC,GAAsBx2L,EAAAA,YAAiB,SAAU5oE,EAAM1zG,GACzD,IAAI51C,EAASspJ,EAAKtpJ,OAChBo9H,EAAUksB,EAAKlsB,QACfD,EAAUmsB,EAAKnsB,QACf36E,EAAW8mG,EAAK9mG,SAChBm1L,EAAYruF,EAAKquF,UACjBgxK,EAAgBr/P,EAAKq/P,cACrBC,EAAat/P,EAAKs/P,WAClB/8J,EAAMviG,EAAKuiG,IACXhzI,EAAQywC,EAAKzwC,MACXgwS,EAAa,CAAC,EACd5zG,EAAa,CACfpwS,QAAS,OACT6rS,cAAe,UAajB,YAXgBplS,IAAZ8xH,IAEFyrR,EAAa,CACX7oZ,OAAQA,EACR0J,SAAU,WACVC,SAAU,UAEZsrS,EAAap+D,GAAcA,GAAc,CAAC,EAAGo+D,GAAa,CAAC,GAAG/+L,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAC5It4B,UAAW,cAAc/6E,OAAOu6H,EAAS,QACxCyuH,EAAM,cAAgB,cAAe1uH,GAAU,WAAY,YAAa,OAAQ,GAAI,QAAS,GAAI,MAAO,KAEzF+0F,EAAAA,cAAoB,MAAO,CAC7CvuN,MAAOklZ,GACO32L,EAAAA,cAAoBwiB,GAAgB,CAClD4B,SAAU,SAAkBv7D,GACPA,EAAMtiE,cACLkwS,GAClBA,GAEJ,GACcz2L,EAAAA,cAAoB,MAAOoL,GAAS,CAClD35N,MAAOsxS,EACPrvS,UAAWisN,MAAW37G,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,iBAAkBA,IACjF/hM,IAAKA,GACJgzW,GAAapmW,EAAUq2D,IAC5B,IACA6vS,GAAOxoW,YAAc,SACrB,YClDO,SAASy4L,GAAKrvF,GACnB,IAAI9mG,EAAW8mG,EAAK9mG,SAClB+/M,EAASj5G,EAAKi5G,OACZumJ,EAAU52L,EAAAA,aAAkB,SAAUjsN,GACxCs8P,EAAOt8P,EACT,GAAG,IACH,OAAoBisN,EAAAA,aAAmB1vK,EAAU,CAC/C5M,IAAKkzW,GAET,CCPe,SAASC,GAAYnuY,EAAMmjO,EAAQirK,GAChD,IACEhvK,EAAmBC,GADC/nB,EAAAA,SAAet3M,GACgB,GACnDquY,EAAWjvK,EAAiB,GAC5BkvK,EAAclvK,EAAiB,GAE/BkQ,EAAmBjQ,GADE/nB,EAAAA,SAAe,MACgB,GACpDi3L,EAAWj/J,EAAiB,GAC5Bk/J,EAAcl/J,EAAiB,GASjC,OARAh4B,EAAAA,WAAgB,WACd,IAAIt7L,ECyBD,SAA2ByyX,EAAYC,EAAYvrK,GACxD,IAEIwrK,EACAC,EAHAC,EAAYJ,EAAW7pZ,OACvBkqZ,EAAYJ,EAAW9pZ,OAG3B,GAAkB,IAAdiqZ,GAAiC,IAAdC,EACrB,OAAO,KAELD,EAAYC,GACdH,EAAYF,EACZG,EAAWF,IAEXC,EAAYD,EACZE,EAAWH,GAEb,IAAIM,EAAc,CAChBC,gBAAgB,GAElB,SAASC,EAAWt5W,GAClB,YAAajlC,IAATilC,EACKwtM,EAAOxtM,GAETo5W,CACT,CAKA,IAFA,IAAIG,EAAY,KACZx3U,EAA+C,IAApCzyE,KAAK6E,IAAI+kZ,EAAYC,GAC3BnqZ,EAAI,EAAGA,EAAIiqZ,EAAShqZ,OAAQD,GAAK,EAAG,CAC3C,IAAIwqZ,EAAWF,EAAWN,EAAUhqZ,IAEpC,GAAIwqZ,IADUF,EAAWL,EAASjqZ,IACR,CACxBuqZ,EAAYvqZ,EACZ+yE,EAAWA,GAAYy3U,IAAaF,EAAWL,EAASjqZ,EAAI,IAC5D,KACF,CACF,CACA,OAAqB,OAAduqZ,EAAqB,KAAO,CACjCv7Y,MAAOu7Y,EACPx3U,SAAUA,EAEd,CDlEe03U,CAAkBf,GAAY,GAAIruY,GAAQ,GAAImjO,QACQzyO,KAAnD,OAATsrB,QAA0B,IAATA,OAAkB,EAASA,EAAKroB,SACzC,OAAXy6Y,QAA8B,IAAXA,GAAqBA,EAAOpyX,EAAKroB,OACpD66Y,EAAYxuY,EAAKgc,EAAKroB,SAExB26Y,EAAYtuY,EACd,GAAG,CAACA,IACG,CAACuuY,EACV,CEnBA,SADqF,YAApD,qBAAdhuW,UAA4B,aAAct6C,EAAAA,GAAAA,GAAQs6C,aAA4B,WAAW9/B,KAAK8/B,UAAUhkC,WCA3H,YAA0B8yY,EAAeC,EAAkBC,EAAgBC,GAEzE,IAAIlO,GAAUvwU,EAAAA,EAAAA,SAAO,GACjB0+U,GAAiB1+U,EAAAA,EAAAA,QAAO,MAU5B,IAAI2+U,GAAgB3+U,EAAAA,EAAAA,QAAO,CACzBhsE,IAAKsqZ,EACLxlZ,OAAQylZ,EACRxqZ,KAAMyqZ,EACNtgZ,MAAOugZ,IAMT,OAJAE,EAAchmX,QAAQ3kC,IAAMsqZ,EAC5BK,EAAchmX,QAAQ7/B,OAASylZ,EAC/BI,EAAchmX,QAAQ5kC,KAAOyqZ,EAC7BG,EAAchmX,QAAQz6B,MAAQugZ,EACvB,SAAUG,EAAcpiS,GAC7B,IAAIqiS,EAAe18Y,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAC9E28Y,EAAeF,EAEnBpiS,EAAQ,GAAKmiS,EAAchmX,QAAQ5kC,MAEnCyoH,EAAQ,GAAKmiS,EAAchmX,QAAQz6B,MACjCs+G,EAAQ,GAAKmiS,EAAchmX,QAAQ3kC,KAErCwoH,EAAQ,GAAKmiS,EAAchmX,QAAQ7/B,OAQnC,OAPI+lZ,GAAgBC,GAElBrsV,aAAaisV,EAAe/lX,SAC5B43W,EAAQ53W,SAAU,GACRmmX,IAAgBvO,EAAQ53W,UAhCpC85B,aAAaisV,EAAe/lX,SAC5B43W,EAAQ53W,SAAU,EAClB+lX,EAAe/lX,QAAU/Y,YAAW,WAClC2wX,EAAQ53W,SAAU,CACpB,GAAG,MA+BK43W,EAAQ53W,SAAWmmX,CAC7B,CACD,ECvCc,SAASC,GAAcC,EAAWV,EAAeC,EAAkBC,EAAgBC,EAAiBQ,EAInHC,GACE,IAAIC,GAAYn/U,EAAAA,EAAAA,QAAO,GACnB2rL,GAAe3rL,EAAAA,EAAAA,QAAO,MAGtBo/U,GAAgBp/U,EAAAA,EAAAA,QAAO,MACvBq/U,GAAmBr/U,EAAAA,EAAAA,SAAO,GAG1B8+U,EAAeQ,GAAgBhB,EAAeC,EAAkBC,EAAgBC,GAqCpF,IAAIc,GAAoBv/U,EAAAA,EAAAA,QAAO,MAC3Bw/U,GAAyBx/U,EAAAA,EAAAA,QAAO,MAoCpC,MAAO,CAnCP,SAAiBlU,GACf,GAAKkzV,EAAL,CAGA3xK,GAAIv0I,OAAO0mT,EAAuB7mX,SAClC6mX,EAAuB7mX,QAAU00M,IAAI,WACnCkyK,EAAkB5mX,QAAU,IAC9B,GAAG,GACH,IAAIsxB,EAAS6B,EAAM7B,OACjBE,EAAS2B,EAAM3B,OACfhE,EAAW2F,EAAM3F,SACfs5V,EAAex1V,EACfy1V,EAAev1V,GACe,OAA9Bo1V,EAAkB5mX,UAAqB4mX,EAAkB5mX,SAAYwtB,GAAsBgE,IAAWF,KACxGw1V,EAAet1V,EACfu1V,EAAe,EACfH,EAAkB5mX,QAAU,MAE9B,IAAIgnX,EAAOzrZ,KAAK6E,IAAI0mZ,GAChBG,EAAO1rZ,KAAK6E,IAAI2mZ,GACc,OAA9BH,EAAkB5mX,UACpB4mX,EAAkB5mX,QAAUsmX,GAAoBU,EAAOC,EAAO,IAAM,KAEpC,MAA9BL,EAAkB5mX,QA7DxB,SAAkBzY,EAAGiqC,GAInB,GAHAkjL,GAAIv0I,OAAO6yJ,EAAahzN,UAGpBmmX,GAAa,EAAO30V,GAAxB,CAGA,IAAI2B,EAAQ5rC,EACP4rC,EAAM+zV,kBACT/zV,EAAM+zV,iBAAkB,EAI1BV,EAAUxmX,SAAWwxB,EACrBi1V,EAAczmX,QAAUwxB,EAGnB21V,IACHh0V,EAAMrH,iBAERknM,EAAahzN,QAAU00M,IAAI,WAGzB,IAAI0yK,EAAgBV,EAAiB1mX,QAAU,GAAK,EACpDumX,EAAaC,EAAUxmX,QAAUonX,GAAe,GAChDZ,EAAUxmX,QAAU,CACtB,IAtBuC,CAuBzC,CAmCIqnX,CAASl0V,EAAO4zV,GAlCpB,SAAkB5zV,EAAO7B,GACvBi1V,EAAaj1V,GAAQ,GAChB61V,IACHh0V,EAAMrH,gBAEV,CA+BIw7V,CAASn0V,EAAO2zV,EAzBI,CA2BxB,EAGA,SAAyB3zV,GAClBkzV,IACLK,EAAiB1mX,QAAUmzB,EAAMtpC,SAAW48X,EAAczmX,QAC5D,EAEF,CChDA,SAxC4B,WAC1B,SAASunX,IACPx2K,GAAgBh3O,KAAMwtZ,IACtB31S,EAAAA,GAAAA,GAAgB73G,KAAM,YAAQ,IAG9B63G,EAAAA,GAAAA,GAAgB73G,KAAM,KAAM,IAC5B63G,EAAAA,GAAAA,GAAgB73G,KAAM,WAAY,IAAI86C,KACtC96C,KAAKytZ,KAAOznZ,OAAO4D,OAAO,KAC5B,CA6BA,OA5BAqtO,GAAau2K,EAAU,CAAC,CACtB1oZ,IAAK,MACLlG,MAAO,SAAakG,EAAKlG,GACvBoB,KAAKytZ,KAAK3oZ,GAAOlG,EACjBoB,KAAKyjB,IAAM,EACXzjB,KAAKghQ,SAASxrO,IAAI1wB,EACpB,GACC,CACDA,IAAK,MACLlG,MAAO,SAAakG,GAClB,OAAO9E,KAAKytZ,KAAK3oZ,EACnB,GAMC,CACDA,IAAK,cACLlG,MAAO,WACLoB,KAAKghQ,SAAS9yK,OAChB,GACC,CACDppF,IAAK,YACLlG,MAAO,WACL,OAAOoB,KAAKghQ,QACd,KAEKwsJ,CACT,CAvC4B,GCC5B,SAASE,GAAY9uZ,GACnB,IAAIi8O,EAAMt4M,WAAW3jC,GACrB,OAAOukB,MAAM03N,GAAO,EAAIA,CAC1B,CCNA,IAAI8yK,GAAa,GAAK,GCAtB,SAASC,GAAmB9yV,GAC1B,OAAOt5D,KAAKC,MAAMD,KAAKylH,IAAInsD,EAAQ,IACrC,CACO,SAAS+yV,GAAUrgY,EAAGmR,GAE3B,OADU,YAAanR,EAAIA,EAAE0pC,QAAQ,GAAK1pC,GAC/BmR,EAAa,QAAU,SAAWp5B,OAAOo5B,EAAa,UAAY,UAC/E,CCoPA,SArP6Bk1L,EAAAA,YAAiB,SAAUh8K,EAAON,GAC7D,IAAI+hM,EAAYzhM,EAAMyhM,UACpBkU,EAAM31M,EAAM21M,IACZsgK,EAAej2W,EAAMi2W,aACrBC,EAAcl2W,EAAMk2W,YACpBC,EAAcn2W,EAAMm2W,YACpBC,EAAap2W,EAAMo2W,WACnBn6I,EAAWj8N,EAAMi8N,SACjBn1O,EAAakZ,EAAMlZ,WACnBuvX,EAAWr2W,EAAMq2W,SACjBpjE,EAAgBjzS,EAAMizS,cACtBxlV,EAAQuyC,EAAMvyC,MACd6oZ,EAAkBt2W,EAAMu2W,WACxBC,EAAgBx2W,EAAMw2W,cAEtB1yK,EAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnDy6L,EAAW3yK,EAAiB,GAC5B4yK,EAAc5yK,EAAiB,GAE/BkQ,EAAmBjQ,GADE/nB,EAAAA,SAAe,MACgB,GACpD26L,EAAS3iK,EAAiB,GAC1B4iK,EAAY5iK,EAAiB,GAE7Bke,EAAmBnuB,GADE/nB,EAAAA,SAAe,MACgB,GACpD66L,EAAW3kJ,EAAiB,GAC5B4kJ,EAAc5kJ,EAAiB,GAC7B6kJ,GAASphK,EAGTqhK,EAAeh7L,EAAAA,SACfi7L,EAAWj7L,EAAAA,SAIb+2C,EAAmBhvB,GADE/nB,EAAAA,SAAew6L,GACgB,GACpDx0J,EAAU+Q,EAAiB,GAC3BqlI,EAAarlI,EAAiB,GAC5BmkJ,EAAoBl7L,EAAAA,SACpBm7L,EAAc,YACM,IAAlBX,IAA4C,IAAlBA,IAC9BtuV,aAAagvV,EAAkB9oX,SAC/BgqW,GAAW,GACX8e,EAAkB9oX,QAAU/Y,YAAW,WACrC+iX,GAAW,EACb,GAAG,KACL,EAGIgf,EAAoBlB,EAAcjjE,GAAiB,EACnDokE,EAAoBpkE,EAAgBojE,GAAY,EAGhD5sZ,EAAMuyN,EAAAA,SAAc,WACtB,OAAqB,IAAjBi6L,GAA4C,IAAtBmB,EACjB,EAECnB,EAAemB,EACZC,CACf,GAAG,CAACpB,EAAcmB,EAAmBC,IASjCC,EAAWt7L,EAAAA,OAAa,CAC1BvyN,IAAKA,EACLgtZ,SAAUA,EACV/6V,MAAOi7V,EACPE,SAAUA,IAEZS,EAASlpX,QAAU,CACjB3kC,IAAKA,EACLgtZ,SAAUA,EACV/6V,MAAOi7V,EACPE,SAAUA,GAEZ,IAAIU,EAAmB,SAA0B5hY,GAC/C+gY,GAAY,GACZE,EAAUZ,GAAUrgY,EAAGmR,IACvBgwX,EAAYQ,EAASlpX,QAAQ3kC,KAC7B0sZ,IACAxgY,EAAEojC,kBACFpjC,EAAEukC,gBACJ,EAOA8hK,EAAAA,WAAgB,WACd,IAAIw7L,EAAwB,SAA+B7hY,GACzDA,EAAEukC,gBACJ,EACIu9V,EAAeT,EAAa5oX,QAC5BspX,EAAWT,EAAS7oX,QAOxB,OANAqpX,EAAa/mZ,iBAAiB,aAAc8mZ,EAAuB,CACjE/wV,SAAS,IAEXixV,EAAShnZ,iBAAiB,aAAc6mZ,EAAkB,CACxD9wV,SAAS,IAEJ,WACLgxV,EAAaxlW,oBAAoB,aAAculW,GAC/CE,EAASzlW,oBAAoB,aAAcslW,EAC7C,CACF,GAAG,IAGH,IAAII,EAAuB37L,EAAAA,SAC3B27L,EAAqBvpX,QAAUgpX,EAC/B,IAAIQ,EAAuB57L,EAAAA,SAC3B47L,EAAqBxpX,QAAUipX,EAC/Br7L,EAAAA,WAAgB,WACd,GAAIy6L,EAAU,CACZ,IAAIoB,EACAz5I,EAAc,SAAqBzoP,GACrC,IAAImiY,EAAoBR,EAASlpX,QAC/B2pX,EAAgBD,EAAkBrB,SAClCuB,EAAaF,EAAkBp8V,MAC/Bu8V,EAAgBH,EAAkBjB,SACpC/zK,GAAIv0I,OAAOspT,GACX,IAAIpwX,EAAOuvX,EAAa5oX,QAAQvlC,wBAC5BohJ,EAAQgpM,GAAiBnsT,EAAaW,EAAKr9B,MAAQq9B,EAAK39B,QAC5D,GAAIiuZ,EAAe,CACjB,IAAI90V,GAAU+yV,GAAUrgY,EAAGmR,GAAckxX,GAAc/tQ,EACnDiuQ,EAASD,GACRlB,GAASjwX,EACZoxX,GAAUj1V,EAEVi1V,GAAUj1V,EAEZ,IAAIk1V,EAAuBR,EAAqBvpX,QAC5CgqX,EAAuBR,EAAqBxpX,QAC5CiqX,EAAMD,EAAuBF,EAASE,EAAuB,EAC7DE,EAAe3uZ,KAAK6K,KAAK6jZ,EAAMF,GACnCG,EAAe3uZ,KAAKwhB,IAAImtY,EAAc,GACtCA,EAAe3uZ,KAAKyhB,IAAIktY,EAAcH,GACtCN,EAAY/0K,IAAI,WACdm5B,EAASq8I,EAAcxxX,EACzB,GACF,CACF,EACIw5T,EAAY,WACdo2D,GAAY,GACZN,GACF,EAaA,OAZA1oZ,OAAOgD,iBAAiB,YAAa0tQ,EAAa,CAChD33M,SAAS,IAEX/4D,OAAOgD,iBAAiB,YAAa0tQ,EAAa,CAChD33M,SAAS,IAEX/4D,OAAOgD,iBAAiB,UAAW4vV,EAAW,CAC5C75R,SAAS,IAEX/4D,OAAOgD,iBAAiB,WAAY4vV,EAAW,CAC7C75R,SAAS,IAEJ,WACL/4D,OAAOukD,oBAAoB,YAAamsN,GACxC1wQ,OAAOukD,oBAAoB,YAAamsN,GACxC1wQ,OAAOukD,oBAAoB,UAAWquS,GACtC5yV,OAAOukD,oBAAoB,WAAYquS,GACvCx9G,GAAIv0I,OAAOspT,EACb,CACF,CACF,GAAG,CAACpB,IACJz6L,EAAAA,WAAgB,WAEd,OADAm7L,IACO,WACLjvV,aAAagvV,EAAkB9oX,QACjC,CACF,GAAG,CAAC6nX,IAGJj6L,EAAAA,oBAA0Bt8K,GAAK,WAC7B,MAAO,CACLy3W,YAAaA,EAEjB,IAGA,IAAIoB,EAAqB,GAAG5rZ,OAAO80O,EAAW,cAC1C+2K,EAAiB,CACnBhlZ,SAAU,WACVw0H,WAAYg6H,EAAU,KAAO,UAE3Bu0J,EAAa,CACf/iZ,SAAU,WACVmwH,WAAY,qBACZ6lK,aAAc,GACdrnQ,OAAQ,UACRqwH,WAAY,QAiCd,OA/BI1rH,GAEF0xX,EAAe1uZ,OAAS,EACxB0uZ,EAAehvZ,KAAO,EACtBgvZ,EAAe7kZ,MAAQ,EACvB6kZ,EAAejqZ,OAAS,EAGxBgoZ,EAAWzsZ,OAAS,OACpBysZ,EAAWnsZ,MAAQisZ,EACfU,EACFR,EAAW/sZ,KAAOC,EAElB8sZ,EAAW5iZ,MAAQlK,IAIrB+uZ,EAAepuZ,MAAQ,EACvBouZ,EAAe/uZ,IAAM,EACrB+uZ,EAAejqZ,OAAS,EACpBwoZ,EACFyB,EAAe7kZ,MAAQ,EAEvB6kZ,EAAehvZ,KAAO,EAIxB+sZ,EAAWnsZ,MAAQ,OACnBmsZ,EAAWzsZ,OAASusZ,EACpBE,EAAW9sZ,IAAMA,GAECuyN,EAAAA,cAAoB,MAAO,CAC7Ct8K,IAAKs3W,EACLtnZ,UAAWisN,KAAW48L,GAAoBv4S,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO4rZ,EAAoB,eAAgBzxX,GAAa,GAAGn6B,OAAO4rZ,EAAoB,cAAezxX,GAAa,GAAGn6B,OAAO4rZ,EAAoB,YAAav2J,IAC9Pv0P,MAAOkzO,GAAcA,GAAc,CAAC,EAAG63K,GAAiB/qZ,GACxD4yV,YA5KyB,SAA8B1qU,GACvDA,EAAEojC,kBACFpjC,EAAEukC,gBACJ,EA0KEkkN,YAAa+4I,GACCn7L,EAAAA,cAAoB,MAAO,CACzCt8K,IAAKu3W,EACLvnZ,UAAWisN,KAAW,GAAGhvN,OAAO4rZ,EAAoB,WAAWv4S,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO4rZ,EAAoB,iBAAkB9B,IACnIhpZ,MAAOkzO,GAAcA,GAAc,CAAC,EAAG41K,GAAaD,GACpDj2D,YAAak3D,IAEjB,ICvPO,SAASkB,KACd,IAAIxlE,EAAgBr7U,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EAEpFuzR,EAAW8nD,GADGr7U,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GACzCq7U,EAK7C,OAJI3nU,MAAM6/Q,KACRA,EAAW,GAEbA,EAAWxhS,KAAKwhB,IAAIggR,EARP,IASNxhS,KAAKC,MAAMuhS,EACpB,CCJA,IAAIh1D,GAAY,CAAC,YAAa,YAAa,SAAU,aAAc,aAAc,QAAS,OAAQ,WAAY,UAAW,UAAW,YAAa,cAAe,YAAa,WAAY,kBAAmB,kBAAmB,aAAc,cAAe,SAAU,iBAoBlQuiL,GAAa,GACbC,GAAc,CAChB1uR,UAAW,OACX2uR,eAAgB,QAEX,SAASC,GAAQ74W,EAAON,GAC7B,IAAIslM,EAAmBhlM,EAAMyhM,UAC3BA,OAAiC,IAArBuD,EAA8B,kBAAoBA,EAC9Dt1O,EAAYswC,EAAMtwC,UAClB5F,EAASk2C,EAAMl2C,OACf0gU,EAAaxqR,EAAMwqR,WACnBsuF,EAAoB94W,EAAM+4W,WAC1BA,OAAmC,IAAtBD,GAAsCA,EACnDrrZ,EAAQuyC,EAAMvyC,MACdiX,EAAOs7B,EAAMt7B,KACb4nC,EAAWtM,EAAMsM,SACjBy1L,EAAU/hM,EAAM+hM,QAChB24F,EAAU16R,EAAM06R,QAChB90M,EAAY5lF,EAAM4lF,UAClBzjB,EAAcniE,EAAMmiE,YACpB6/H,EAAmBhiM,EAAM+xL,UACzBrzH,OAAiC,IAArBsjI,EAA8B,MAAQA,EAClDi6B,EAAWj8N,EAAMi8N,SACjB+8I,EAAkBh5W,EAAMg5W,gBACxBtzK,EAAkB1lM,EAAM0lM,gBACxBgtK,EAAa1yW,EAAM0yW,WACnBuG,EAAcj5W,EAAMi5W,YACpBh1X,EAAS+b,EAAM/b,OACfi1X,EAAuBl5W,EAAMw2W,cAC7BA,OAAyC,IAAzB0C,EAAkC,WAAaA,EAC/Dj3K,EAAYC,GAAyBliM,EAAOm2L,IAG1C0R,EAAS7rB,EAAAA,aAAkB,SAAU3hL,GACvC,MAAuB,oBAAZ0nM,EACFA,EAAQ1nM,GAED,OAATA,QAA0B,IAATA,OAAkB,EAASA,EAAK0nM,EAC1D,GAAG,CAACA,IAGAo3K,EL1DS,SAAoBtxK,EAAQuxK,EAAWC,GACpD,IACEv1K,EAAmBC,GADC/nB,EAAAA,SAAe,GACgB,GACnDs9L,EAAcx1K,EAAiB,GAC/By1K,EAAiBz1K,EAAiB,GAChC01K,GAAc/jV,EAAAA,EAAAA,QAAO,IAAIv7B,KACzBu/W,GAAahkV,EAAAA,EAAAA,QAAO,IAAIkgV,IACxB+D,GAAejkV,EAAAA,EAAAA,QAAO,GAC1B,SAASkkV,IACPD,EAAatrX,SAAW,CAC1B,CACA,SAASwrX,IACP,IAAIC,EAAOjiZ,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAC1E+hZ,IACA,IAAIG,EAAY,WACd,IAAIC,GAAU,EACdP,EAAYprX,QAAQnlC,SAAQ,SAAU8+B,EAAS96B,GAC7C,GAAI86B,GAAWA,EAAQsjN,aAAc,CACnC,IAAI8wC,EAAcx1M,GAAY5+C,GAC1Bw6E,EAAe45K,EAAY55K,aAC3By3S,EAAoBrsZ,iBAAiBwuR,GACvC11J,EAAYuzR,EAAkBvzR,UAC9BE,EAAeqzR,EAAkBrzR,aAG/BszR,EAAc13S,EAFCszS,GAAYpvR,GACTovR,GAAYlvR,GAE9B8yR,EAAWrrX,QAAQz4B,IAAI1I,KAASgtZ,IAClCR,EAAWrrX,QAAQt8B,IAAI7E,EAAKgtZ,GAC5BF,GAAU,EAEd,CACF,IAGIA,GACFR,GAAe,SAAUh3Y,GACvB,OAAOA,EAAI,CACb,GAEJ,EACA,GAAIs3Y,EACFC,QACK,CACLJ,EAAatrX,SAAW,EACxB,IAAIxiB,EAAK8tY,EAAatrX,QACtBj9B,QAAQM,UAAUrJ,MAAK,WACjBwjB,IAAO8tY,EAAatrX,SACtB0rX,GAEJ,GACF,CACF,CAuBA,OAHA3kV,EAAAA,EAAAA,YAAU,WACR,OAAOwkV,CACT,GAAG,IACI,CAtBP,SAAwBt/W,EAAM8rB,GAC5B,IAAIl5D,EAAM46O,EAAOxtM,GACbkL,EAASi0W,EAAYprX,QAAQz4B,IAAI1I,GACjCk5D,GACFqzV,EAAYprX,QAAQt8B,IAAI7E,EAAKk5D,GAC7ByzV,KAEAJ,EAAYprX,QAAQ8oB,OAAOjqD,IAIxBs4C,KAAY4gB,IACXA,EACY,OAAdizV,QAAoC,IAAdA,GAAwBA,EAAU/+W,GAEvC,OAAjBg/W,QAA0C,IAAjBA,GAA2BA,EAAah/W,GAGvE,EAIwBu/W,EAAeH,EAAWrrX,QAASkrX,EAC7D,CKjBoBY,CAAWryK,EAAQ,KAAM,MACzCsyK,EAAep2K,GAAeo1K,EAAa,GAC3CiB,EAAiBD,EAAa,GAC9BP,EAAgBO,EAAa,GAC7BE,EAAUF,EAAa,GACvBG,EAAoBH,EAAa,GAG/BI,KAA4B,IAAZ7/E,IAAqB5wU,IAAU0gU,GAC/CgwF,EAAkBx+L,EAAAA,SAAc,WAClC,OAAO7tN,OAAOqQ,OAAO67Y,EAAQzE,MAAMxuX,QAAO,SAAUiM,EAAOonX,GACzD,OAAOpnX,EAAQonX,CACjB,GAAG,EACL,GAAG,CAACJ,EAAQzuY,GAAIyuY,EAAQzE,OACpBnB,EAAY8F,GAAc71Y,IAAS/a,KAAKwhB,IAAIq/S,EAAa9lT,EAAKpb,OAAQkxZ,GAAmB1wZ,KAAYq4G,GACrGu4S,EAAsB,QAAd90R,EACR6rR,EAAkB91L,KAAW8lB,GAAWzhI,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,QAASi5K,GAAQhrZ,GAClGi4O,EAAajjO,GAAQg0Y,GACrBiC,GAAellV,EAAAA,EAAAA,UACfmlV,GAAiBnlV,EAAAA,EAAAA,UACjB+7K,GAAe/7K,EAAAA,EAAAA,UAKjBmxK,EAAa7C,IADCruK,EAAAA,EAAAA,UAAS,GACgB,GACvCg0E,EAAYk9F,EAAW,GACvBi0K,EAAej0K,EAAW,GAE1BG,EAAahD,IADEruK,EAAAA,EAAAA,UAAS,GACgB,GACxCmgM,EAAa9uB,EAAW,GACxB+zK,EAAgB/zK,EAAW,GAE3BI,EAAapD,IADEruK,EAAAA,EAAAA,WAAS,GACgB,GACxCqlV,EAAe5zK,EAAW,GAC1B6zK,EAAkB7zK,EAAW,GAC3B8zK,EAAuB,WACzBD,GAAgB,EAClB,EACIE,GAAsB,WACxBF,GAAgB,EAClB,EACIl2H,GAAe,CACjBj9C,OAAQA,GAIV,SAASszK,GAAcjD,GACrB2C,GAAa,SAAUt1W,GACrB,IAMI61W,EAyIR,SAAqB9C,GACnB,IAAIJ,EAASI,EACRjpZ,OAAOic,MAAM+vY,GAAmBjtX,WACnC8pX,EAASvuZ,KAAKyhB,IAAI8sY,EAAQmD,GAAmBjtX,UAG/C,OADA8pX,EAASvuZ,KAAKwhB,IAAI+sY,EAAQ,GACnBA,CACT,CAhJqBoD,CALK,oBAAXpD,EACDA,EAAO3yW,GAEP2yW,GAIV,OADAyC,EAAavsX,QAAQz9B,UAAYyqZ,EAC1BA,CACT,GACF,CAIA,IAAIG,IAAW9lV,EAAAA,EAAAA,QAAO,CACpBzqD,MAAO,EACPC,IAAK08N,EAAWr+O,SAEdkyZ,IAAc/lV,EAAAA,EAAAA,UAGhBw9U,GADgBlvK,GADC8uK,GAAYlrK,EAAYE,GACI,GACpB,GAC3B2zK,GAAYptX,QAAU6kX,GAGtB,IAAIwI,GAAiBz/L,EAAAA,SAAc,WAC/B,IAAKu+L,EACH,MAAO,CACLj4S,kBAAcltG,EACd4V,MAAO,EACPC,IAAK08N,EAAWr+O,OAAS,EACzB25D,YAAQ7tD,GAMV,IAAIsmZ,EADN,IAAKjH,EAEH,MAAO,CACLnyS,cAAoE,QAApDo5S,EAAwBd,EAAexsX,eAA+C,IAA1BstX,OAAmC,EAASA,EAAsBn5S,eAAiB,EAC/Jv3F,MAAO,EACPC,IAAK08N,EAAWr+O,OAAS,EACzB25D,YAAQ7tD,GAQZ,IALA,IACIo3N,EACAmvL,EACAC,EAHAC,EAAU,EAIVC,EAAUn0K,EAAWr+O,OAChBD,EAAI,EAAGA,EAAIyyZ,EAASzyZ,GAAK,EAAG,CACnC,IAAI0yZ,EAAQp0K,EAAWt+O,GACnB4D,EAAM46O,EAAOk0K,GACbC,EAAc3B,EAAQ1kZ,IAAI1I,GAC1BgvZ,EAAoBJ,QAA2BzmZ,IAAhB4mZ,EAA4BxxF,EAAawxF,GAGxEC,GAAqBvyQ,QAA4Bt0I,IAAfo3N,IACpCA,EAAanjO,EACbsyZ,EAAcE,GAIZI,EAAoBvyQ,EAAY5/I,QAAuBsL,IAAbwmZ,IAC5CA,EAAWvyZ,GAEbwyZ,EAAUI,CACZ,CAcA,YAXmB7mZ,IAAfo3N,IACFA,EAAa,EACbmvL,EAAc,EACdC,EAAWjyZ,KAAK6K,KAAK1K,EAAS0gU,SAEfp1T,IAAbwmZ,IACFA,EAAWj0K,EAAWr+O,OAAS,GAK1B,CACLg5G,aAAcu5S,EACd7wY,MAAOwhN,EACPvhN,IAJF2wY,EAAWjyZ,KAAKyhB,IAAIwwY,EAAW,EAAGj0K,EAAWr+O,OAAS,GAKpD25D,OAAQ04V,EAEZ,GAAG,CAAClH,EAAW8F,EAAY7wQ,EAAWi+F,EAAY2yK,EAAmBxwZ,IACrEw4G,GAAem5S,GAAen5S,aAC9Bt3F,GAAQywY,GAAezwY,MACvBC,GAAMwwY,GAAexwY,IACrBixY,GAAeT,GAAex4V,OAChCs4V,GAASntX,QAAQpjB,MAAQA,GACzBuwY,GAASntX,QAAQnjB,IAAMA,GAKvB+wM,EAAAA,iBAAsB,WACpB,IAAImgM,EAAgB9B,EAAQ+B,YAC5B,GAA2B,IAAvBD,EAAc3xY,KAAY,CAC5B,IAAI6xY,EAAYrzZ,MAAM8J,KAAKqpZ,GAAe,GAE1C,GADoBt0K,EAAOF,EAAW38N,OAChBqxY,EAAW,CAC/B,IACIC,EADkBjC,EAAQ1kZ,IAAI0mZ,GACC7xF,EACnC2wF,IAAc,SAAUlgJ,GACtB,OAAOA,EAAMqhJ,CACf,GACF,CACF,CACAjC,EAAQkC,aACV,GAAG,CAACj6S,KAGJ,IAIEwhI,GAAmBC,GAJC/nB,EAAAA,SAAe,CACjC5xN,MAAO,EACPN,OAAQA,IAEyC,GACnD0gB,GAAOs5N,GAAiB,GACxB04K,GAAU14K,GAAiB,GASzB24K,IAAuBhnV,EAAAA,EAAAA,UACvBinV,IAAyBjnV,EAAAA,EAAAA,UACzBknV,GAA8B3gM,EAAAA,SAAc,WAC9C,OAAOy8L,GAAYjuY,GAAKpgB,MAAO+3G,EACjC,GAAG,CAAC33F,GAAKpgB,MAAO+3G,IACZy6S,GAA4B5gM,EAAAA,SAAc,WAC5C,OAAOy8L,GAAYjuY,GAAK1gB,OAAQw4G,GAClC,GAAG,CAAC93F,GAAK1gB,OAAQw4G,KAGbu6S,GAAkBv6S,GAAex4G,EACjCuxZ,IAAqB5lV,EAAAA,EAAAA,QAAOonV,IAChCxB,GAAmBjtX,QAAUyuX,GAS7B,IAAI9I,GAAgBrqQ,GAAa,EAC7BsqQ,GAAmBtqQ,GAAamzQ,GAChC5I,GAAiBp+I,GAAc,EAC/Bq+I,GAAkBr+I,GAAc1zJ,EAChCoyS,GAAeQ,GAAgBhB,GAAeC,GAAkBC,GAAgBC,IAGhF4I,GAAuB,WACzB,MAAO,CACLhqY,EAAG4nY,GAAS7kJ,EAAaA,EACzB34O,EAAGwsH,EAEP,EACIqzQ,IAA2BtnV,EAAAA,EAAAA,QAAOqnV,MAClCE,GAAgBt6K,IAAS,SAAU5W,GACrC,GAAIktL,EAAiB,CACnB,IAAIiE,EAAWt8K,GAAcA,GAAc,CAAC,EAAGm8K,MAAyBhxL,GAGpEixL,GAAyB3uX,QAAQtb,IAAMmqY,EAASnqY,GAAKiqY,GAAyB3uX,QAAQlR,IAAM+/X,EAAS//X,IACvG87X,EAAgBiE,GAChBF,GAAyB3uX,QAAU6uX,EAEvC,CACF,IACA,SAASC,GAAYC,EAAiBr2X,GACpC,IAAIs2X,EAAYD,EACZr2X,IACF8/C,EAAAA,GAAAA,YAAU,WACRk0U,EAAcsC,EAChB,IACAJ,MAEA7B,GAAciC,EAElB,CAaA,IAAIC,GAAwB,SAA+BC,GACzD,IAAIC,EAAgBD,EAChBnyY,EAAQg3F,EAAcA,EAAc33F,GAAKpgB,MAAQ,EAGrD,OAFAmzZ,EAAgB5zZ,KAAKwhB,IAAIoyY,EAAe,GACxCA,EAAgB5zZ,KAAKyhB,IAAImyY,EAAepyY,EAE1C,EACIwpY,GAAejyK,IAAS,SAAU86K,EAAUC,GAC1CA,IACF72U,EAAAA,GAAAA,YAAU,WACRk0U,GAAc,SAAUtxZ,GAEtB,OAAO6zZ,GADc7zZ,GAAQkxZ,GAAS8C,EAAWA,GAEnD,GACF,IACAR,MAEA7B,IAAc,SAAU1xZ,GAEtB,OADaA,EAAM+zZ,CAErB,GAEJ,IAIEE,GAAkB35K,GADCywK,GAAc+F,EAAYxG,GAAeC,GAAkBC,GAAgBC,KAAmB/xS,EAAawyS,IAC7E,GACjDgJ,GAAaD,GAAgB,GAC7BE,GAAkBF,GAAgB,IJpVvB,SAA4BjJ,EAAW5G,EAAS16X,GAC7D,IASI0qY,EATAC,GAAaroV,EAAAA,EAAAA,SAAO,GACpBsoV,GAAYtoV,EAAAA,EAAAA,QAAO,GACnBuoV,GAAYvoV,EAAAA,EAAAA,QAAO,GACnB6pK,GAAa7pK,EAAAA,EAAAA,QAAO,MAGpBwoV,GAAcxoV,EAAAA,EAAAA,QAAO,MAIrByoV,EAAc,SAAqBvoY,GACrC,GAAImoY,EAAW1vX,QAAS,CACtB,IAAI+vX,EAAWx0Z,KAAK6K,KAAKmhB,EAAE0pC,QAAQ,GAAG5D,OAClC2iW,EAAWz0Z,KAAK6K,KAAKmhB,EAAE0pC,QAAQ,GAAG3D,OAClCurE,EAAU82R,EAAU3vX,QAAU+vX,EAC9Bj3R,EAAU82R,EAAU5vX,QAAUgwX,EAC9BC,EAAgB10Z,KAAK6E,IAAIy4H,GAAWt9H,KAAK6E,IAAI04H,GAC7Cm3R,EACFN,EAAU3vX,QAAU+vX,EAEpBH,EAAU5vX,QAAUgwX,EAEtB,IAAIE,EAAgBnrY,EAASkrY,EAAeA,EAAgBp3R,EAAUC,GAAS,EAAOvxG,GAClF2oY,GACF3oY,EAAEukC,iBAIJwjF,cAAcugR,EAAY7vX,SACtBkwX,IACFL,EAAY7vX,QAAUmvG,aAAY,WAC5B8gR,EACFp3R,GAAW6uR,GAEX5uR,GAAW4uR,GAEb,IAAI7yV,EAASt5D,KAAKC,MAAMy0Z,EAAgBp3R,EAAUC,KAC7C/zG,EAASkrY,EAAep7V,GAAQ,IAASt5D,KAAK6E,IAAIy0D,IAAW,KAChEy6E,cAAcugR,EAAY7vX,QAE9B,GAAG,IAEP,CACF,EACImwX,EAAa,WACfT,EAAW1vX,SAAU,EACrByvX,GACF,EACIW,EAAe,SAAsB7oY,GACvCkoY,IACyB,IAArBloY,EAAE0pC,QAAQ/1D,QAAiBw0Z,EAAW1vX,UACxC0vX,EAAW1vX,SAAU,EACrB2vX,EAAU3vX,QAAUzkC,KAAK6K,KAAKmhB,EAAE0pC,QAAQ,GAAG5D,OAC3CuiW,EAAU5vX,QAAUzkC,KAAK6K,KAAKmhB,EAAE0pC,QAAQ,GAAG3D,OAC3C4jL,EAAWlxM,QAAUzY,EAAEziB,OACvBosO,EAAWlxM,QAAQ19B,iBAAiB,YAAawtZ,EAAa,CAC5Dz3V,SAAS,IAEX64K,EAAWlxM,QAAQ19B,iBAAiB,WAAY6tZ,EAAY,CAC1D93V,SAAS,IAGf,EACAo3V,EAAgB,WACVv+K,EAAWlxM,UACbkxM,EAAWlxM,QAAQ6jB,oBAAoB,YAAaisW,GACpD5+K,EAAWlxM,QAAQ6jB,oBAAoB,WAAYssW,GAEvD,EACAjpV,IAAgB,WAMd,OALIm/U,GACF5G,EAAQz/W,QAAQ19B,iBAAiB,aAAc8tZ,EAAc,CAC3D/3V,SAAS,IAGN,WACL,IAAIgoV,EACqC,QAAxCA,EAAmBZ,EAAQz/W,eAA0C,IAArBqgX,GAA+BA,EAAiBx8V,oBAAoB,aAAcusW,GACnIX,IACAngR,cAAcugR,EAAY7vX,QAC5B,CACF,GAAG,CAACqmX,GACN,CIoQEgK,CAAmBlE,EAAYI,GAAc,SAAUtG,EAAcpiS,EAAOqiS,EAAc3+X,GACxF,IAAI4rC,EAAQ5rC,EACZ,OAAI4+X,GAAaF,EAAcpiS,EAAOqiS,OAKjC/yV,IAAUA,EAAM+zV,mBACf/zV,IACFA,EAAM+zV,iBAAkB,GAE1BqI,GAAW,CACTzjW,eAAgB,WAA2B,EAC3CwF,OAAQ20V,EAAepiS,EAAQ,EAC/BryD,OAAQy0V,EAAe,EAAIpiS,KAEtB,GAGX,IHpWa,SAAuBwiS,EAAWkG,EAAc+D,GAC7D1iM,EAAAA,WAAgB,WACd,IAAIqd,EAAMshL,EAAavsX,QACvB,GAAIqmX,GAAap7K,EAAK,CACpB,IACIyqG,EACAhtL,EAFA6nQ,GAAgB,EAGhBC,EAAa,WACf97K,GAAIv0I,OAAOu1O,EACb,EACI+6E,EAAiB,SAASA,IAC5BD,IACA96E,EAAQhhG,IAAI,WACV47K,EAAe5nQ,GACf+nQ,GACF,GACF,EACIx+D,EAAc,SAAqB1qU,GAErC,IAAIA,EAAEziB,OAAOyhV,UAAb,CAIA,IAAIpzR,EAAQ5rC,EACP4rC,EAAM+zV,kBACT/zV,EAAM+zV,iBAAkB,EACxBqJ,GAAgB,EALlB,CAOF,EACIr+D,EAAY,WACdq+D,GAAgB,EAChBC,GACF,EACIxgJ,EAAc,SAAqBzoP,GACrC,GAAIgpY,EAAe,CACjB,IAAIG,EAAS9I,GAAUrgY,GAAG,GACtBopY,EAAwB1lL,EAAIxwO,wBAC9BY,EAAMs1Z,EAAsBt1Z,IAC5B8E,EAASwwZ,EAAsBxwZ,OAC7BuwZ,GAAUr1Z,GAEZqtJ,GAAWi/P,GADAtsZ,EAAMq1Z,GAEjBD,KACSC,GAAUvwZ,GAEnBuoJ,EAAUi/P,GADE+I,EAASvwZ,GAErBswZ,KAEAD,GAEJ,CACF,EAIA,OAHAvlL,EAAI3oO,iBAAiB,YAAa2vV,GAClChnH,EAAIvtL,cAAcp7C,iBAAiB,UAAW4vV,GAC9CjnH,EAAIvtL,cAAcp7C,iBAAiB,YAAa0tQ,GACzC,WACL/kC,EAAIpnL,oBAAoB,YAAaouS,GACrChnH,EAAIvtL,cAAcmG,oBAAoB,UAAWquS,GACjDjnH,EAAIvtL,cAAcmG,oBAAoB,YAAamsN,GACnDwgJ,GACF,CACF,CACF,GAAG,CAACnK,GACN,CGwSEuK,CAAcvK,EAAWkG,GAAc,SAAU13V,GAC/Ck4V,IAAc,SAAU1xZ,GACtB,OAAOA,EAAMw5D,CACf,GACF,IACAqS,IAAgB,WAEd,SAAS2pV,EAAsBtpY,GAE7B,IAAIupY,EAAmBnL,IAAiBp+X,EAAEsC,OAAS,EAC/CknY,EAAwBnL,IAAoBr+X,EAAEsC,OAAS,GACvDsiY,GAAe2E,GAAqBC,GACtCxpY,EAAEukC,gBAEN,CACA,IAAIklW,EAAezE,EAAavsX,QAUhC,OATAgxX,EAAa1uZ,iBAAiB,QAASitZ,GAAY,CACjDl3V,SAAS,IAEX24V,EAAa1uZ,iBAAiB,iBAAkBktZ,GAAiB,CAC/Dn3V,SAAS,IAEX24V,EAAa1uZ,iBAAiB,sBAAuBuuZ,EAAuB,CAC1Ex4V,SAAS,IAEJ,WACL24V,EAAantW,oBAAoB,QAAS0rW,IAC1CyB,EAAantW,oBAAoB,iBAAkB2rW,IACnDwB,EAAantW,oBAAoB,sBAAuBgtW,EAC1D,CACF,GAAG,CAAC1E,EAAYxG,GAAeC,KAG/B1+U,IAAgB,WACd,GAAI6sC,EAAa,CACf,IAAIk9S,EAAgBhC,GAAsBxnJ,GAC1CilJ,EAAcuE,GACdrC,GAAc,CACZlqY,EAAGusY,GAEP,CACF,GAAG,CAAC70Y,GAAKpgB,MAAO+3G,IAGhB,IAAIm9S,GAAqB,WACvB,IAAIC,EAAuBC,EACgC,QAA1DD,EAAwB9C,GAAqBruX,eAA+C,IAA1BmxX,GAAoCA,EAAsBpI,cAChE,QAA5DqI,EAAwB9C,GAAuBtuX,eAA+C,IAA1BoxX,GAAoCA,EAAsBrI,aACjI,EACIsI,GCxZS,SAAqBjuK,EAAc9sO,EAAM21Y,EAAS7vF,EAAY3iF,EAAQ+xK,EAAeuB,EAAeuE,GACjH,IAAIC,EAAY3jM,EAAAA,SAEd8nB,EAAmBC,GADC/nB,EAAAA,SAAe,MACgB,GACnD4jM,EAAY97K,EAAiB,GAC7B+7K,EAAe/7K,EAAiB,GAiGlC,OA9FAxuK,IAAgB,WACd,GAAIsqV,GAAaA,EAAU/pX,MAVf,GAUkC,CAE5C,IAAK27M,EAAapjN,QAIhB,YAHAyxX,GAAa,SAAU5kJ,GACrB,OAAOt6B,GAAc,CAAC,EAAGs6B,EAC3B,IAGF2+I,IACA,IAAIkG,EAAcF,EAAUE,YAC1BC,EAAcH,EAAUG,YACxB1nZ,EAAQunZ,EAAUvnZ,MAClB4qD,EAAS28V,EAAU38V,OACjBn5D,EAAS0nP,EAAapjN,QAAQo0E,aAC9Bw9S,GAAoB,EACpBC,EAAiBH,EACjBplJ,EAAY,KAGhB,GAAI5wQ,EAAQ,CAQV,IAPA,IAAI2mV,EAAcqvE,GAAeC,EAG7BG,EAAW,EACXrE,EAAU,EACVsE,EAAa,EACbC,EAASz2Z,KAAKyhB,IAAI1G,EAAKpb,OAAS,EAAG+O,GAC9BhP,EAAI,EAAGA,GAAK+2Z,EAAQ/2Z,GAAK,EAAG,CACnC,IAAI4D,EAAM46O,EAAOnjO,EAAKrb,IACtBwyZ,EAAUqE,EACV,IAAIlE,EAAc3B,EAAQ1kZ,IAAI1I,GAE9BizZ,EADAC,EAAatE,QAA2BzmZ,IAAhB4mZ,EAA4BxxF,EAAawxF,EAEnE,CAIA,IADA,IAAIn6Q,EAA6B,QAAhB4uM,EAAwBxtR,EAASn5D,EAASm5D,EAClD3/B,EAAK88X,EAAQ98X,GAAM,EAAGA,GAAM,EAAG,CACtC,IAAIo1M,EAAOmP,EAAOnjO,EAAK4e,IACnB+8X,EAAehG,EAAQ1kZ,IAAI+iO,GAC/B,QAAqBtjO,IAAjBirZ,EAA4B,CAC9BL,GAAoB,EACpB,KACF,CAEA,IADAn+Q,GAAcw+Q,IACI,EAChB,KAEJ,CAGA,OAAQ5vE,GACN,IAAK,MACH/1E,EAAYmhJ,EAAU54V,EACtB,MACF,IAAK,SACHy3M,EAAYylJ,EAAar2Z,EAASm5D,EAClC,MACF,QAEI,IAAItyD,EAAY6gP,EAAapjN,QAAQz9B,UAEjCkrZ,EAAUlrZ,EACZsvZ,EAAiB,MACRE,EAHQxvZ,EAAY7G,IAI7Bm2Z,EAAiB,UAIP,OAAdvlJ,GACFygJ,EAAczgJ,GAIZA,IAAcklJ,EAAUU,UAC1BN,GAAoB,EAExB,CAGIA,GACFH,EAAal/K,GAAcA,GAAc,CAAC,EAAGi/K,GAAY,CAAC,EAAG,CAC3D/pX,MAAO+pX,EAAU/pX,MAAQ,EACzBiqX,YAAaG,EACbK,QAAS5lJ,IAGf,CAGF,GAAG,CAACklJ,EAAWpuK,EAAapjN,UAGrB,SAAU9pB,GAEf,GAAY,OAARA,QAAwBlP,IAARkP,GAOpB,GADAw+N,GAAIv0I,OAAOoxT,EAAUvxX,SACF,kBAAR9pB,EACT62Y,EAAc72Y,QACT,GAAIA,GAAwB,YAAjB3Z,EAAAA,GAAAA,GAAQ2Z,GAAmB,CAC3C,IAAIjM,EACA8tB,EAAQ7hB,EAAI6hB,MAEd9tB,EADE,UAAWiM,EACLA,EAAIjM,MAEJqM,EAAKhL,WAAU,SAAU2gC,GAC/B,OAAOwtM,EAAOxtM,KAAU/1B,EAAIrX,GAC9B,IAEF,IAAIszZ,EAAcj8Y,EAAI2+C,OAEtB48V,EAAa,CACXhqX,MAAO,EACPx9B,MAAOA,EACP4qD,YAJyB,IAAhBs9V,EAAyB,EAAIA,EAKtCR,YAAa55X,GAEjB,OA1BEu5X,GA2BJ,CACF,CDmRkBc,CAAY7F,EAAchzK,EAAY0yK,EAAS7vF,EAAY3iF,GAAQ,WACjF,OAAO+xK,GAAc,EACvB,GAAGuB,GAAemE,IAClBtjM,EAAAA,oBAA0Bt8K,GAAK,WAC7B,MAAO,CACLs4L,cAAewZ,EAAapjN,QAC5BqyX,cAAe3D,GACf3jR,SAAU,SAAkBp/F,GAC1B,IAAqBz1B,KAGLy1B,IAFiB,YAAjBpvC,EAAAA,GAAAA,GAAQ2Z,KAAsB,SAAUA,GAAO,QAASA,SAIlDlP,IAAhB2kC,EAAOvwC,MACTsxZ,EAAcuC,GAAsBtjX,EAAOvwC,OAI7Ci2Z,GAAU1lX,EAAOtwC,MAEjBg2Z,GAAU1lX,EAEd,EAEJ,IAIAu7B,IAAgB,WACd,GAAIowK,EAAiB,CACnB,IAAIg7K,EAAa/4K,EAAWx6O,MAAM6d,GAAOC,GAAM,GAC/Cy6N,EAAgBg7K,EAAY/4K,EAC9B,CACF,GAAG,CAAC38N,GAAOC,GAAK08N,IAGhB,IAAIg5K,GE9bC,SAAoBh5K,EAAYE,EAAQwyK,EAAS7vF,GACtD,IAGEjlD,EAAkBxhC,GAHC/nB,EAAAA,SAAc,WAC/B,MAAO,CAAC,IAAI9hL,IAAO,GACrB,GAAG,CAACytM,EAAY0yK,EAAQzuY,GAAI4+S,IACqB,GACjDo2F,EAAYr7I,EAAgB,GAC5Bs7I,EAAat7I,EAAgB,GAiC/B,OAhCc,SAAiBu7I,GAC7B,IAAIC,EAASnpZ,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAKkpZ,EAE7Et0L,EAAao0L,EAAUjrZ,IAAImrZ,GAC3BlF,EAAWgF,EAAUjrZ,IAAIorZ,GAG7B,QAAmB3rZ,IAAfo3N,QAAyCp3N,IAAbwmZ,EAE9B,IADA,IAAIE,EAAUn0K,EAAWr+O,OAChBD,EAAIw3Z,EAAWv3Z,OAAQD,EAAIyyZ,EAASzyZ,GAAK,EAAG,CACnD,IAAI23Z,EACA3mX,EAAOstM,EAAWt+O,GAClB4D,EAAM46O,EAAOxtM,GACjBumX,EAAU9uZ,IAAI7E,EAAK5D,GACnB,IAAI2yZ,EAAoD,QAArCgF,EAAe3G,EAAQ1kZ,IAAI1I,UAAmC,IAAjB+zZ,EAA0BA,EAAex2F,EAQzG,GAPAq2F,EAAWx3Z,IAAMw3Z,EAAWx3Z,EAAI,IAAM,GAAK2yZ,EACvC/uZ,IAAQ6zZ,IACVt0L,EAAanjO,GAEX4D,IAAQ8zZ,IACVnF,EAAWvyZ,QAEM+L,IAAfo3N,QAAyCp3N,IAAbwmZ,EAC9B,KAEJ,CAEF,MAAO,CACLnyZ,IAAKo3Z,EAAWr0L,EAAa,IAAM,EACnCj+N,OAAQsyZ,EAAWjF,GAEvB,CAEF,CFsZgBqF,CAAWt5K,EAAYE,EAAQwyK,EAAS7vF,GAClD02F,GAA+B,OAAhBjI,QAAwC,IAAhBA,OAAyB,EAASA,EAAY,CACvFjuY,MAAOA,GACPC,IAAKA,GACLyvT,QAAS+5E,EACTxtR,QAAS4uI,EACT3uI,QAASg1R,GACTvmK,IAAK+kK,EACLiG,QAASA,KAIPQ,GG/cS,SAAqBv4J,EAAMp8B,EAAYovL,EAAUz5S,EAAa8kB,EAAS+/H,EAAYo6J,EAAYhuQ,GAC5G,IAAIy0F,EAASz0F,EAAKy0F,OAClB,OAAO+gB,EAAKz7P,MAAMq/N,EAAYovL,EAAW,GAAGpmZ,KAAI,SAAU6kC,EAAMhiC,GAC9D,IACItI,EAAOqxZ,EAAW/mX,EADPmyL,EAAan0N,EACU,CACpC5K,MAAO,CACLrD,MAAO+3G,GAET8kB,QAASA,IAEPh6H,EAAM46O,EAAOxtM,GACjB,OAAoB2hL,EAAAA,cAAoBymB,GAAM,CAC5Cx1O,IAAKA,EACLo/P,OAAQ,SAAgBhzB,GACtB,OAAO2tB,EAAW3sN,EAAMg/L,EAC1B,GACCtpO,EACL,GACF,CH6bqBsxZ,CAAY15K,EAAY38N,GAAOC,GAAKk3F,EAAa0zJ,EAAYukJ,EAAgB9tW,EAAUw4O,IACtGw8H,GAAiB,KACjBx3Z,IACFw3Z,GAAiB3gL,IAAc3gI,EAAAA,GAAAA,GAAgB,CAAC,EAAG+4S,EAAa,SAAW,YAAajvZ,GAAS6uZ,IAC7F4B,IACF+G,GAAer3R,UAAY,SACvB9nB,IACFm/S,GAAet3R,UAAY,UAEzB+wR,IACFuG,GAAeh/K,cAAgB,UAIrC,IAAIi/K,GAAiB,CAAC,EAItB,OAHI7G,IACF6G,GAAenkT,IAAM,OAEH4+G,EAAAA,cAAoB,MAAOoL,GAAS,CACtD1nL,IAAK8xM,EACL/jP,MAAOkzO,GAAcA,GAAc,CAAC,EAAGlzO,GAAQ,CAAC,EAAG,CACjD+F,SAAU,aAEZ9D,UAAW+hZ,GACV8P,GAAgBt/K,GAAyBjmB,EAAAA,cAAoBwiB,GAAgB,CAC9E4B,SA5PmB,SAAwBM,GAC3C87K,GAAQ,CACNpyZ,MAAOs2O,EAASt+H,YAChBt4G,OAAQ42O,EAASn+H,cAErB,GAwPgBy5G,EAAAA,cAAoBt9G,EAAW,CAC7ChvG,UAAW,GAAG/C,OAAO80O,EAAW,WAChCh0O,MAAO6zZ,GACP5hX,IAAKi7W,EACL1+I,SA9LF,SAA0BtmP,GACxB,IAAI2iY,EAAe3iY,EAAEkkC,cAAclpD,UAC/B2nZ,IAAiB5uQ,GACnByxQ,GAAc7C,GAIH,OAAbr8I,QAAkC,IAAbA,GAAuBA,EAAStmP,GACrDqnY,IACF,EAsLE5nK,aAAckqK,IACAtjM,EAAAA,cAAoBw2L,GAAQ,CAC1C/wK,UAAWA,EACX33O,OAAQw4G,GACR2kB,QAAS4uI,EACT3uI,QAASg1R,GACT/5S,YAAaA,EACbswS,cAAemH,EACfl6W,IAAKk7W,EACLlI,WAAYA,EACZ/8J,IAAK+kK,EACL/3S,MAAOu+S,IACNC,MAAiB1M,GAAanyS,GAAex4G,GAAuBkyN,EAAAA,cAAoBwlM,GAAW,CACpG9hX,IAAK+8W,GACLh7K,UAAWA,EACXw0K,aAAcvsQ,EACdwsQ,YAAa5zS,GACbqzI,IAAK+kK,EACLz+I,SAAUihJ,GACV/G,YAAa8E,EACb7E,WAAY8E,GACZ7E,SAAUuG,GACV3pE,cAAezoU,GAAK1gB,OACpB2D,MAAkB,OAAXw2B,QAA8B,IAAXA,OAAoB,EAASA,EAAOw9X,kBAC9DlL,WAAuB,OAAXtyX,QAA8B,IAAXA,OAAoB,EAASA,EAAOy9X,uBACnElL,cAAeA,IACb/B,GAAatyS,EAAc33F,GAAKpgB,OAAsB4xN,EAAAA,cAAoBwlM,GAAW,CACvF9hX,IAAKg9W,GACLj7K,UAAWA,EACXw0K,aAAcpgJ,EACdqgJ,YAAa/zS,EACbwzI,IAAK+kK,EACLz+I,SAAUihJ,GACV/G,YAAa8E,EACb7E,WAAY8E,GACZ7E,SAAUsG,GACV1pE,cAAezoU,GAAKpgB,MACpB08B,YAAY,EACZr5B,MAAkB,OAAXw2B,QAA8B,IAAXA,OAAoB,EAASA,EAAO09X,oBAC9DpL,WAAuB,OAAXtyX,QAA8B,IAAXA,OAAoB,EAASA,EAAO29X,yBACnEpL,cAAeA,IAEnB,CACA,IAAIn7F,GAAoBr/F,EAAAA,WAAiB68L,IACzCx9F,GAAKrxQ,YAAc,OACnB,MI5hBA,GJ4hBA,GKxhBA,IAAImsL,GAAY,CAAC,WAAY,QAAS,WAAY,QAAS,aAiB3D,SAASixK,GAAYxgY,GACnB,MAA0B,kBAAZA,GAA2C,kBAAZA,CAC/C,CAMA,IAAI2mY,GAAa,SAAoBj0X,EAAGomB,GACtC,IAAImiX,EpCvBG7lM,EAAAA,WAAiB8pL,IoCwBtBrkK,EAAYogL,EAAcpgL,UAC1B71N,EAAKi2Y,EAAcj2Y,GACnBlE,EAAOm6Y,EAAcn6Y,KACrB00D,EAAWylV,EAAczlV,SACzBjwE,EAAO01Z,EAAc11Z,KACrBq7Y,EAAcqa,EAAcra,YAC5BwJ,EAAa6Q,EAAc7Q,WAC3B/D,EAAkB4U,EAAc5U,gBAChC6U,EAAgBD,EAAcC,cAC5BxsK,EAAoBt5B,EAAAA,WAAiBszL,IACvChqK,EAAWgQ,EAAkBhQ,SAC7By8K,EAAiBzsK,EAAkBysK,eACnCC,EAAgB1sK,EAAkB0sK,cAClCC,EAA2B3sK,EAAkB2sK,yBAC7Cp9I,EAAWvvB,EAAkBuvB,SAC7Bq9I,EAAuB5sK,EAAkB4sK,qBACzC3S,EAAYj6J,EAAkBi6J,UAC9BrD,EAAa52J,EAAkB42J,WAC/BxxE,EAAUplF,EAAkBolF,QAC5B90M,EAAY0vH,EAAkB1vH,UAC9Bu8R,EAAa7sK,EAAkB6sK,WAC/BC,EAAiB9sK,EAAkB8sK,eACnCC,EAAe/sK,EAAkB+sK,aAC/B/6K,EAAgB,GAAG36O,OAAO80O,EAAW,SACrC6gL,EAAqB/sV,IAAQ,WAC/B,OAAOwsV,CACT,GAAG,CAACr6Y,EAAMq6Y,IAAiB,SAAUh9X,EAAM1oB,GACzC,OAAOA,EAAK,IAAM0oB,EAAK,KAAO1oB,EAAK,EACrC,IAGIwxY,EAAU7xL,EAAAA,OAAa,MACvBumM,EAAevmM,EAAAA,SAAc,WAC/B,OAAO5/I,GAAY4vU,GAAa1mK,KAA4B,OAAdiqK,QAAoC,IAAdA,OAAuB,EAASA,EAAU/kY,OAAS86N,CACzH,GAAG,CAAClpK,EAAUkpK,EAAwB,OAAdiqK,QAAoC,IAAdA,OAAuB,EAASA,EAAU/kY,OACpFg4Y,EAAkB,SAAyBjhW,GAC7CA,EAAMrH,gBACR,EACIuoW,EAAiB,SAAwBnwY,GAC3C,IAAIm8X,EACqC,QAAxCA,EAAmBZ,EAAQz/W,eAA0C,IAArBqgX,GAA+BA,EAAiBt1Q,SAAyB,kBAAT7mH,EAAoB,CACnIja,MAAOia,GACLA,EACN,EAGIulO,EAAa77B,EAAAA,aAAkB,SAAUj1N,GAC3C,MAAa,aAAToF,GAGGojZ,EAAUv0Y,IAAIjU,EACvB,GAAG,CAACoF,EAAMg/O,GAAmBokK,GAAWp5Y,WAAYo5Y,EAAU/kY,OAG1Dk4Y,EAAwB,SAA+BrqZ,GAGzD,IAFA,IAAI4qD,EAASrrD,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EAC7EgV,EAAM01Y,EAAmBh5Z,OACpBD,EAAI,EAAGA,EAAIujB,EAAKvjB,GAAK,EAAG,CAC/B,IAAI+kC,GAAW/1B,EAAQhP,EAAI45D,EAASr2C,GAAOA,EACvCwmI,EAAOkvQ,EAAmBl0X,IAAY,CAAC,EACzC29D,EAAQqnD,EAAKrnD,MACbrnF,EAAO0uI,EAAK1uI,KACd,IAAKqnF,IAAoB,OAATrnF,QAA0B,IAATA,IAAmBA,EAAKynC,YAAc0rM,EAAWnzO,EAAK3d,SAAWw7Z,GAChG,OAAOn0X,CAEX,CACA,OAAQ,CACV,EAIE01M,EAAmBC,GAHC/nB,EAAAA,UAAe,WACjC,OAAO0mM,EAAsB,EAC/B,IACmD,GACnDC,EAAc7+K,EAAiB,GAC/B8+K,EAAiB9+K,EAAiB,GAChC++K,EAAY,SAAmBxqZ,GACjC,IAAIyqZ,EAAelrZ,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAClFgrZ,EAAevqZ,GACf,IAAIsiI,EAAO,CACT5mI,OAAQ+uZ,EAAe,WAAa,SAIlCC,EAAcT,EAAmBjqZ,GAChC0qZ,EAILf,EAAce,EAAYh8Z,MAAOsR,EAAOsiI,GAHtCqnR,EAAc,MAAO,EAAGrnR,EAI5B,GAGAxlE,EAAAA,EAAAA,YAAU,WACR0tV,GAAuC,IAA7BZ,EAAqCS,EAAsB,IAAM,EAC7E,GAAG,CAACJ,EAAmBh5Z,OAAQk+Y,IAG/B,IAAIwb,EAAiBhnM,EAAAA,aAAkB,SAAUj1N,GAC/C,MAAa,aAAToF,EACKiD,OAAOrI,GAAOuE,gBAAkBk8Y,EAAYl8Y,cAE9CikZ,EAAUv0Y,IAAIjU,EACvB,GAAG,CAACoF,EAAMq7Y,EAAar8J,GAAmBokK,GAAWp5Y,WAAYo5Y,EAAU/kY,QAG3E2qD,EAAAA,EAAAA,YAAU,WAMR,IAgBM28U,EAhBF/zD,EAAY1oU,YAAW,WACzB,IAAK+mD,GAAY10D,GAA2B,IAAnB6nY,EAAU/kY,KAAY,CAC7C,IAAIzjB,EAAQiC,MAAM8J,KAAKy8Y,GAAW,GAC9Bl3Y,EAAQiqZ,EAAmB5oZ,WAAU,SAAUmrK,GAEjD,OADWA,EAAMngK,KACL3d,QAAUA,CACxB,KACe,IAAXsR,IACFwqZ,EAAUxqZ,GACVoqZ,EAAepqZ,GAEnB,CACF,IAGIqP,IAEwC,QAAzCoqY,EAAoBjE,EAAQz/W,eAA2C,IAAtB0jX,GAAgCA,EAAkB34Q,cAAS/jI,IAE/G,OAAO,WACL,OAAO8yD,aAAa61R,EACtB,CACF,GAAG,CAACr2U,EAAM8/X,IAGV,IAAIyb,EAAgB,SAAuBl8Z,QAC3BqO,IAAVrO,GACF89Q,EAAS99Q,EAAO,CACdklD,UAAWsjW,EAAUv0Y,IAAIjU,KAKxBq1E,GACH40U,GAAW,EAEf,EAuEA,GApEAh1L,EAAAA,oBAA0Bt8K,GAAK,WAC7B,MAAO,CACL82M,UAAW,SAAmBj1L,GAC5B,IAAI7C,EAAQ6C,EAAM7C,MAChB/C,EAAU4F,EAAM5F,QAClB,OAAQ+C,GAEN,KAAKwtL,GAAQ96K,EACb,KAAK86K,GAAQnkO,EACb,KAAKmkO,GAAQgB,GACb,KAAKhB,GAAQkB,KAET,IAAInqL,EAAS,EAYb,GAXIvE,IAAUwtL,GAAQgB,GACpBjqL,GAAU,EACDvE,IAAUwtL,GAAQkB,KAC3BnqL,EAAS,ECnMhB,uBAAuB99C,KAAK8/B,UAAUi+W,aDoMHvnW,IACxB+C,IAAUwtL,GAAQ96K,EACpBnO,EAAS,EACAvE,IAAUwtL,GAAQnkO,IAC3Bk7C,GAAU,IAGC,IAAXA,EAAc,CAChB,IAAIkgW,EAAkBT,EAAsBC,EAAc1/V,EAAQA,GAClEw/V,EAAeU,GACfN,EAAUM,GAAiB,EAC7B,CACA,MAIJ,KAAKj3K,GAAQE,IACb,KAAKF,GAAQI,MAET,IAAI82K,EAEA/oX,EAAOioX,EAAmBK,IAC1BtoX,GAAmB,OAATA,QAA0B,IAATA,GAAgD,QAA5B+oX,EAAa/oX,EAAK31B,YAAiC,IAAf0+Y,GAAyBA,EAAWj3W,UAAco2W,EAGvIU,OAAc7tZ,GAFd6tZ,EAAc5oX,EAAKtzC,OAIjB2gB,GACF65C,EAAMrH,iBAER,MAIJ,KAAKgyL,GAAQU,IAETokK,GAAW,GACPtpY,GACF65C,EAAMxI,kBAIhB,EACAs5U,QAAS,WAAoB,EAC7Bl5P,SAAU,SAAkB9gI,GAC1BoqZ,EAAepqZ,EACjB,EAEJ,IAGkC,IAA9BiqZ,EAAmBh5Z,OACrB,OAAoB0yN,EAAAA,cAAoB,MAAO,CAC7Cu6B,KAAM,UACN3qO,GAAI,GAAGjf,OAAOif,EAAI,SAClBlc,UAAW,GAAG/C,OAAO26O,EAAe,UACpC+4G,YAAamiE,GACZvV,GAEL,IAAIoW,EAAoBl1Z,OAAOC,KAAK89Y,GAAY12Y,KAAI,SAAUvI,GAC5D,OAAOi/Y,EAAWj/Y,EACpB,IACIq2Z,EAAW,SAAkBjpX,GAC/B,OAAOA,EAAK4mE,KACd,EACA,SAASsiT,EAAiBlpX,EAAMhiC,GAE9B,MAAO,CACLk+O,KAFUl8M,EAAK0xD,MAED,eAAiB,SAC/BngF,GAAI,GAAGjf,OAAOif,EAAI,UAAUjf,OAAO0L,GAEvC,CACA,IAAIspO,EAAa,SAAoBtpO,GACnC,IAAIgiC,EAAOioX,EAAmBjqZ,GAC9B,IAAKgiC,EACH,OAAO,KAET,IAAImpX,EAAWnpX,EAAK31B,MAAQ,CAAC,EACzB3d,EAAQy8Z,EAASz8Z,MACjBglG,EAAQ1xD,EAAK0xD,MACbwiL,EAAQ+wE,GAAUkkE,GAAU,GAC5BpX,EAAckX,EAASjpX,GAC3B,OAAOA,EAAoB2hL,EAAAA,cAAoB,MAAOoL,GAAS,CAC7D,aAAqC,kBAAhBglL,GAA6BrgT,EAAsB,KAAdqgT,GACzD79H,EAAO,CACRthR,IAAKoL,GACJkrZ,EAAiBlpX,EAAMhiC,GAAQ,CAChC,gBAAiB2qZ,EAAej8Z,KAC9BA,GAAS,IACf,EACI08Z,EAAY,CACdltK,KAAM,UACN3qO,GAAI,GAAGjf,OAAOif,EAAI,UAEpB,OAAoBowM,EAAAA,cAAoBA,EAAAA,SAAgB,KAAM0+G,GAAwB1+G,EAAAA,cAAoB,MAAOoL,GAAS,CAAC,EAAGq8L,EAAW,CACvIh2Z,MAAO,CACL3D,OAAQ,EACRM,MAAO,EACPqJ,SAAU,YAEVkuO,EAAWghL,EAAc,GAAIhhL,EAAWghL,GAAchhL,EAAWghL,EAAc,IAAkB3mM,EAAAA,cAAoBq/F,GAAM,CAC7Ht5E,QAAS,MACTriM,IAAKmuW,EACLnpY,KAAM49Y,EACNx4Z,OAAQq4Z,EACR33F,WAAY43F,EACZrJ,YAAY,EACZ14D,YAAamiE,EACbvmJ,SAAU6lJ,EACVpnF,QAASA,EACT90M,UAAWA,EACX8sR,WAAYh4E,EAAU,KAAO+oF,IAC5B,SAAUppX,EAAM6mV,GACjB,IAAIn1R,EAAQ1xD,EAAK0xD,MACf23T,EAAcrpX,EAAKqpX,YACnBh/Y,EAAO21B,EAAK31B,KACZu8F,EAAQ5mE,EAAK4mE,MACbl6G,EAAQszC,EAAKtzC,MACXkG,EAAMyX,EAAKzX,IAGf,GAAI8+F,EAAO,CACT,IAAI43T,EACAC,EAA4C,QAA9BD,EAAcj/Y,EAAKwvB,aAAmC,IAAhByvX,EAAyBA,EAAcvc,GAAYnmS,GAASA,EAAM9qG,gBAAaf,EACvI,OAAoB4mN,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAWisN,KAAW2rB,EAAe,GAAG36O,OAAO26O,EAAe,UAAW5iO,EAAKhV,WAC9EwkC,MAAO0vX,QACIxuZ,IAAV6rG,EAAsBA,EAAQh0G,EACnC,CACA,IAAIk/C,EAAWznC,EAAKynC,SAClBjY,EAAQxvB,EAAKwvB,MAEbzmC,GADWiX,EAAK4nC,SACR5nC,EAAKjX,OACbiC,EAAYgV,EAAKhV,UAEfymP,EAAczlJ,GADHwxI,GAAyBx9N,EAAMyxN,IACXktL,GAG/Bp3W,EAAW4rM,EAAW9wP,GACtBqwP,EAAiBjrM,IAAaF,GAAYs2W,EAC1CsB,EAAkB,GAAGl3Z,OAAO26O,EAAe,WAC3Cw8K,EAAkBnoM,KAAW2rB,EAAeu8K,EAAiBn0Z,GAAWswG,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAOk3Z,EAAiB,YAAaH,GAAc,GAAG/2Z,OAAOk3Z,EAAiB,WAAYlB,IAAgBzhC,IAAc9pI,GAAiB,GAAGzqP,OAAOk3Z,EAAiB,aAAczsK,GAAiB,GAAGzqP,OAAOk3Z,EAAiB,aAAc53W,IAC3XmgW,EAAckX,EAASjpX,GACvB0pX,GAAe7B,GAAwD,oBAAzBA,GAAuCj2W,EAGrFrlC,EAAiC,kBAAhBwlY,EAA2BA,EAAcA,GAAerlZ,EAEzEi9Z,EAAc5c,GAAYxgY,GAAWA,EAAQzQ,gBAAaf,EAI9D,YAHcA,IAAV8+B,IACF8vX,EAAc9vX,GAEI8nL,EAAAA,cAAoB,MAAOoL,GAAS,CAAC,EAAGk4H,GAAUnpG,GAAeukF,EAA8C,CAAC,EAArC6oF,EAAiBlpX,EAAM6mV,GAAiB,CACrI,gBAAiB8hC,EAAej8Z,GAChC2I,UAAWo0Z,EACX5vX,MAAO8vX,EACP5lJ,YAAa,WACPukJ,IAAgBzhC,GAAa9pI,GAGjCyrK,EAAU3hC,EACZ,EACA5kT,QAAS,WACF86K,GACH6rK,EAAcl8Z,EAElB,EACA0G,MAAOA,IACQuuN,EAAAA,cAAoB,MAAO,CAC1CtsN,UAAW,GAAG/C,OAAOk3Z,EAAiB,aACb,oBAAjBxB,EAA8BA,EAAahoX,EAAM,CACzDhiC,MAAO6oX,IACJt6W,GAAuBo1M,EAAAA,eAAqBkmM,IAAyBj2W,EAAU83W,GAA4B/nM,EAAAA,cAAoBitL,GAAU,CAC5Iv5Y,UAAW,GAAG/C,OAAO26O,EAAe,iBACpCm+J,cAAeyc,EACfxc,mBAAoB,CAClB3+Y,MAAOA,EACPolD,SAAUirM,EACVS,WAAY5rM,IAEbA,EAAW,SAAM,MACtB,IACF,EAKA,SAJiC+vK,EAAAA,WAAiBuxL,IExXlD,SAASj1Y,GAAS6M,EAAM67C,GACtB,OAAO2uC,GAAQxqF,GAAM/X,KAAK,IAAIiuB,cAAc/iB,SAAS0oD,EACvD,CCJA,IAAIqpL,GAAO,EAGA88J,GAAqDjmK,KAgBjD,SAASlrK,GAAMpqD,GAE5B,IACEk4N,EAAmBC,GADC/nB,EAAAA,WAC+B,GACnDgiC,EAAUla,EAAiB,GAC3Bma,EAAana,EAAiB,GAIhC,OAHA9nB,EAAAA,WAAgB,WACdiiC,EAAW,aAAatxP,OApBrB,WACL,IAAIs3Z,EAUJ,OANI9c,IACF8c,EAAQ55K,GACRA,IAAQ,GAER45K,EAAQ,cAEHA,CACT,CAQmCC,IACjC,GAAG,IACIt4Y,GAAMoyO,CACf,CC9BA,IAAI7nB,GAAY,CAAC,WAAY,SAC3BiO,GAAa,CAAC,YAgBT,SAAS+/K,GAAsBlmG,GACpC,IAAImmG,EAAaxsZ,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAChF,OAAO+3F,GAAQsuN,GAAOzoT,KAAI,SAAUzF,EAAMsI,GACxC,IAAmB2jN,EAAAA,eAAqBjsN,KAAUA,EAAKZ,KACrD,OAAO,KAET,IAAI01K,EAAQ90K,EACVsiZ,EAAmBxtO,EAAM11K,KAAKkjZ,iBAC9BplZ,EAAM43K,EAAM53K,IACZo3Z,EAAcx/O,EAAM7kI,MACpBsM,EAAW+3W,EAAY/3W,SACvB21L,EAAYC,GAAyBmiL,EAAajgL,IACpD,OAAIggL,IAAe/R,EAzBvB,SAA6BtiZ,GAC3B,IAAIqjJ,EAAOrjJ,EACT9C,EAAMmmJ,EAAKnmJ,IACXq3Z,EAAalxQ,EAAKpzG,MAClBsM,EAAWg4W,EAAWh4W,SACtBvlD,EAAQu9Z,EAAWv9Z,MAErB,OAAO45O,GAAc,CACnB1zO,IAAKA,EACLlG,WAAiBqO,IAAVrO,EAAsBA,EAAQkG,EACrCq/C,SAAUA,GAJE41L,GAAyBoiL,EAAYnuL,IAMrD,CAcaouL,CAAoBx0Z,GAEtB4wO,GAAcA,GAAc,CACjC1zO,IAAK,oBAAoBN,OAAe,OAARM,EAAeoL,EAAQpL,EAAK,MAC5Dg0G,MAAOh0G,GACNg1O,GAAY,CAAC,EAAG,CACjB52O,QAAS84Z,GAAsB73W,IAEnC,IAAGhzC,QAAO,SAAUoL,GAClB,OAAOA,CACT,GACF,CCEA,SAtCiB,SAAoBrZ,EAASihD,EAAU4/V,EAAYsY,EAAkBC,GACpF,OAAOzoM,EAAAA,SAAc,WACnB,IAAIiqE,EAAgB56R,GACEA,IAEpB46R,EAAgBk+H,GAAsB73W,IAExC,IAAIo4W,EAAe,IAAIxqX,IACnByqX,EAAe,IAAIzqX,IACnB0qX,EAAkB,SAAyBC,EAAiBzxR,EAAQnmI,GAClEA,GAAsB,kBAARA,GAChB43Z,EAAgB/yZ,IAAIshI,EAAOnmI,GAAMmmI,EAErC,EAkBA,OAjBU,SAAS0xR,EAAItT,GAGrB,IAFA,IAAIuT,EAAantZ,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAEvEvO,EAAI,EAAGA,EAAImoZ,EAAWloZ,OAAQD,GAAK,EAAG,CAC7C,IAAI+pI,EAASo+Q,EAAWnoZ,IACnB+pI,EAAO84Q,EAAW7gZ,UAAY05Z,GACjCL,EAAa5yZ,IAAIshI,EAAO84Q,EAAWnlZ,OAAQqsI,GAC3CwxR,EAAgBD,EAAcvxR,EAAQ84Q,EAAWjrS,OAEjD2jT,EAAgBD,EAAcvxR,EAAQoxR,GACtCI,EAAgBD,EAAcvxR,EAAQqxR,IAEtCK,EAAI1xR,EAAO84Q,EAAW7gZ,UAAU,EAEpC,CACF,CACAy5Z,CAAI7+H,GACG,CACL56R,QAAS46R,EACTy+H,aAAcA,EACdC,aAAcA,EAElB,GAAG,CAACt5Z,EAASihD,EAAU4/V,EAAYsY,EAAkBC,GACvD,ECtCe,SAASO,GAAW7xY,GACjC,IAAI8xY,EAAUjpM,EAAAA,SACdipM,EAAQ72X,QAAUjb,EAClB,IAAIijQ,EAAUp6D,EAAAA,aAAkB,WAC9B,OAAOipM,EAAQ72X,QAAQ5rB,MAAMyiZ,EAASrtZ,UACxC,GAAG,IACH,OAAOw+Q,CACT,CCNA,IAAIjgD,GAAY,CAAC,KAAM,OAAQ,YAAa,WAAY,aAAc,aAAc,cAAe,WAAY,uBAAwB,WAAY,aAAc,2BAA4B,eAAgB,aAAc,mBAAoB,kBAAmB,UAAW,eAAgB,WAAY,2BAA4B,uBAAwB,UAAW,YAAa,aAAc,iBAAkB,cAAe,QAAS,eAAgB,eAAgB,WAAY,YAgDrd+uL,GAAiB,CAAC,cA8dtB,IAAIC,GA1dsBnpM,EAAAA,YAAiB,SAAUh8K,EAAON,GAC1D,IAAI9zB,EAAKo0B,EAAMp0B,GACbzf,EAAO6zC,EAAM7zC,KACb64O,EAAmBhlM,EAAMyhM,UACzBA,OAAiC,IAArBuD,EAA8B,YAAcA,EACxDogL,EAAWplX,EAAMolX,SACjBlZ,EAAalsW,EAAMksW,WACnBjJ,EAAajjW,EAAMijW,WACnBuE,EAAcxnW,EAAMwnW,YACpB3O,EAAW74V,EAAM64V,SACjBwsB,EAAwBrlX,EAAMynW,qBAC9BA,OAAiD,IAA1B4d,GAA0CA,EACjExgJ,EAAW7kO,EAAM6kO,SACjBC,EAAa9kO,EAAM8kO,WACnBwgJ,EAAwBtlX,EAAM26R,yBAC9BA,OAAqD,IAA1B2qF,GAA0CA,EACrEC,EAAevlX,EAAMulX,aACrBC,EAAaxlX,EAAMwlX,WACnBhB,EAAmBxkX,EAAMwkX,iBACzBC,EAAkBzkX,EAAMykX,gBACxBp5Z,EAAU20C,EAAM30C,QAChBg3Z,EAAeriX,EAAMqiX,aACrB/1W,EAAWtM,EAAMsM,SACjB21W,EAA2BjiX,EAAMiiX,yBACjCC,EAAuBliX,EAAMkiX,qBAC7BxnF,EAAU16R,EAAM06R,QAChB90M,EAAY5lF,EAAM4lF,UAClB6/R,EAAoBzlX,EAAMmiX,WAC1BA,OAAmC,IAAtBsD,EAA+B,IAAMA,EAClDC,EAAwB1lX,EAAMoiX,eAC9BA,OAA2C,IAA1BsD,EAAmC,GAAKA,EACzDC,EAAc3lX,EAAM2lX,YACpB5+Z,EAAQi5C,EAAMj5C,MACd2/B,EAAesZ,EAAMtZ,aACrBk/X,EAAe5lX,EAAM4lX,aACrBz8K,EAAWnpM,EAAMmpM,SACjB7D,EAAWtlM,EAAMslM,SACjBrD,EAAYC,GAAyBliM,EAAOm2L,IAC1CkqE,EAAWrqO,GAAMpqD,GACjBwwD,EAAWswU,GAAWvgZ,GACtBggZ,IAAqB9gZ,IAAWihD,GAChCu5W,EAAqB7pM,EAAAA,SAAc,WACrC,YAAqB5mN,IAAjBmwZ,GAAuC,aAATp5Z,IAG3Bo5Z,CACT,GAAG,CAACA,EAAcp5Z,IAGd25Z,EAAmB9pM,EAAAA,SAAc,WACnC,OAAOiwL,GAAeC,EAAYC,EACpC,GACA,CAEAz6Y,KAAKE,UAAUs6Y,GAAaC,IAU1BxmI,EAAmB5hC,GANCkF,GAAe,GAAI,CACrCliP,WAAuBqO,IAAhBoyY,EAA4BA,EAAcvE,EACjD75J,UAAW,SAAmBpoL,GAC5B,OAAOA,GAAU,EACnB,IAEiD,GACnD0tV,EAAoB/oI,EAAiB,GACrCogJ,EAAiBpgJ,EAAiB,GAGhCqgJ,EAAgBC,GAAW56Z,EAASihD,EAAUw5W,EAAkBtB,EAAkBC,GAClFC,EAAesB,EAActB,aAC/BC,EAAeqB,EAAcrB,aAC7B1+H,EAAgB+/H,EAAc36Z,QAG5B66Z,EAAsBlqM,EAAAA,aAAkB,SAAUmqM,GAKpD,OAHgBx2T,GAAQw2T,GAGP3wZ,KAAI,SAAU1E,GAC7B,IAAIg9W,EACAs4C,EACAC,EACAC,EACAC,EAMEC,GA9FZ,SAAoBz/Z,GAClB,OAAQA,GAA4B,YAAnB4D,EAAAA,GAAAA,GAAQ5D,EAC3B,EAyFU0/Z,CAAW31Z,GACbg9W,EAAWh9W,GAGXu1Z,EAASv1Z,EAAI7D,IACbm5Z,EAAWt1Z,EAAImwG,MACf6sQ,EAAwC,QAA5B04C,EAAa11Z,EAAI/J,aAAkC,IAAfy/Z,EAAwBA,EAAaH,GAEvF,IAEMK,EAFFtzR,EAASsxR,EAAa/uZ,IAAIm4W,GAC1B16O,SAGeh+H,IAAbgxZ,IAAwBA,EAAsB,OAAXhzR,QAA8B,IAAXA,OAAoB,EAASA,EAAOqxR,GAAmBqB,EAAiB7kT,aACnH7rG,IAAXixZ,IAAsBA,EAAwF,QAA9EK,EAAyB,OAAXtzR,QAA8B,IAAXA,OAAoB,EAASA,EAAOnmI,WAAiC,IAAhBy5Z,EAAyBA,EAAc54C,GACjKw4C,EAAyB,OAAXlzR,QAA8B,IAAXA,OAAoB,EAASA,EAAOjnF,SACrEo6W,EAAsB,OAAXnzR,QAA8B,IAAXA,OAAoB,EAASA,EAAOl/F,OAUpE,MAAO,CACL+sE,MAAOmlT,EACPr/Z,MAAO+mX,EACP7gX,IAAKo5Z,EACLl6W,SAAUm6W,EACVpyX,MAAOqyX,EAEX,GACF,GAAG,CAACT,EAAkBrB,EAAiBC,IAMrCt9I,EAAmBrjC,GAHEkF,GAAeviN,EAAc,CAChD3/B,MAAOA,IAE2C,GACpDovY,GAAgB/uH,EAAiB,GACjCu/I,GAAmBv/I,EAAiB,GAGlCw/I,GAAmB5qM,EAAAA,SAAc,WACnC,IAAI6qM,EAEAroZ,EAAS0nZ,EADU9pV,GAA8B,OAAlB+5T,GAAyB,GAAKA,IAIjE,MAAa,aAAThqY,GxCrLD,SAAwBpF,GAC7B,OAAQA,GAAmB,IAAVA,CACnB,CwCmL+B+/Z,CAA0C,QAA1BD,EAAWroZ,EAAO,UAA6B,IAAbqoZ,OAAsB,EAASA,EAAS9/Z,OAC5G,GAEFyX,CACT,GAAG,CAAC23X,GAAe+vB,EAAqB/5Z,EAAMiwE,IAG1C2qV,GCvMN,SAA0BC,EAAetC,GACvC,IAAIrsL,EAAWrc,EAAAA,OAAa,CAC1Bx9M,OAAQ,IAAI07B,IACZ7uC,QAAS,IAAI6uC,MAgCf,MAAO,CA9BmB8hL,EAAAA,SAAc,WACtC,IAAIirM,EAAoB5uL,EAASjqM,QAC/B84X,EAAiBD,EAAkBzoZ,OACnC2oZ,EAAkBF,EAAkB57Z,QAGlC+7Z,EAAgBJ,EAAcxxZ,KAAI,SAAU6kC,GAE5C,IAAIgtX,EADN,YAAmBjyZ,IAAfilC,EAAK4mE,MAEA0/H,GAAcA,GAAc,CAAC,EAAGtmM,GAAO,CAAC,EAAG,CAChD4mE,MAAkE,QAA1DomT,EAAsBH,EAAevxZ,IAAI0kC,EAAKtzC,cAA4C,IAAxBsga,OAAiC,EAASA,EAAoBpmT,QAGrI5mE,CACT,IAGIitX,EAAa,IAAIptX,IACjBqtX,EAAc,IAAIrtX,IAOtB,OANAktX,EAAcn+Z,SAAQ,SAAUoxC,GAC9BitX,EAAWx1Z,IAAIuoC,EAAKtzC,MAAOszC,GAC3BktX,EAAYz1Z,IAAIuoC,EAAKtzC,MAAO29Z,EAAa/uZ,IAAI0kC,EAAKtzC,QAAUoga,EAAgBxxZ,IAAI0kC,EAAKtzC,OACvF,IACAsxO,EAASjqM,QAAQ5vB,OAAS8oZ,EAC1BjvL,EAASjqM,QAAQ/iC,QAAUk8Z,EACpBH,CACT,GAAG,CAACJ,EAAetC,IACH1oM,EAAAA,aAAkB,SAAUlrN,GAC1C,OAAO4zZ,EAAa/uZ,IAAI7E,IAAQunO,EAASjqM,QAAQ/iC,QAAQsK,IAAI7E,EAC/D,GAAG,CAAC4zZ,IAEL,CDmKiBjrB,CAASmtB,GAAkBlC,GACzC8C,GAAazjL,GAAegjL,GAAW,GACvCU,GAAeD,GAAW,GAC1BE,GAAiBF,GAAW,GAC1B3a,GAAgB7wL,EAAAA,SAAc,WAGhC,IAAK7vN,GAAgC,IAAxBs7Z,GAAan+Z,OAAc,CACtC,IAAIq+Z,EAAaF,GAAa,GAC9B,GAAyB,OAArBE,EAAW5ga,QAAwC,OAArB4ga,EAAW1mT,YAAuC7rG,IAArBuyZ,EAAW1mT,OACxE,MAAO,EAEX,CACA,OAAOwmT,GAAajyZ,KAAI,SAAU6kC,GAChC,IAAI+4G,EACJ,OAAOutF,GAAcA,GAAc,CAAC,EAAGtmM,GAAO,CAAC,EAAG,CAChD4mE,MAAuF,QAA/EmyC,EAA8B,oBAAhBuyQ,EAA6BA,EAAYtrX,GAAQA,EAAK4mE,aAA4B,IAATmyC,EAAkBA,EAAO/4G,EAAKtzC,OAEjI,GACF,GAAG,CAACoF,EAAMs7Z,GAAc9B,IAGpBpW,GAAYvzL,EAAAA,SAAc,WAC5B,OAAO,IAAI/4K,IAAIwkX,GAAajyZ,KAAI,SAAU1E,GACxC,OAAOA,EAAI/J,KACb,IACF,GAAG,CAAC0ga,KACJzrM,EAAAA,WAAgB,WACd,GAAa,aAAT7vN,EAAqB,CACvB,IAAIy7Z,EACAC,EAAkD,QAAtCD,EAAiBH,GAAa,UAAmC,IAAnBG,OAA4B,EAASA,EAAe7ga,MAClHg/Z,ExChOC,SAAkBh/Z,GACvB,YAAiBqO,IAAVrO,GAAiC,OAAVA,CAChC,CwC8NqBu8N,CAASukM,GAAYz4Z,OAAOy4Z,GAAY,GACzD,CACF,GAAG,CAACJ,KAIJ,IAAIK,GAAkB9C,IAAW,SAAUl0Z,EAAKmwG,GAC9C,IAAImrS,EAAwB,OAAVnrS,QAA4B,IAAVA,EAAmBA,EAAQnwG,EAC/D,OAAOkvG,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG8lT,EAAiB/+Z,MAAO+J,GAAMg1Z,EAAiB7kT,MAAOmrS,EACnG,IA2BI2b,GLvQN,SAA0B18Z,EAAS6gZ,EAAY1E,EAAa+d,EAAcf,GACxE,OAAOxoM,EAAAA,SAAc,WACnB,IAAKwrL,IAAgC,IAAjB+d,EAClB,OAAOl6Z,EAET,IAAI28Z,EAAe9b,EAAW7gZ,QAC5B48Z,EAAa/b,EAAWjrS,MACxB6kM,EAAaomG,EAAWnlZ,MACtBgha,EAAkB,GAClBG,EAA0C,oBAAjB3C,EACzB4C,EAAc3gB,EAAYnsX,cAC1B64R,EAAag0G,EAAkB3C,EAAe,SAAUjsY,EAAG85G,GAE7D,OAAIoxR,EACKlsZ,GAAS86H,EAAOoxR,GAAmB2D,GAIxC/0R,EAAO40R,GAEF1vZ,GAAS86H,EAAsB,aAAf60R,EAA4BA,EAAa,SAAUE,GAErE7vZ,GAAS86H,EAAO0yK,GAAaqiH,EACtC,EACIC,EAAaF,EAAkB,SAAU7/Z,GAC3C,OAAOikZ,GAAsBjkZ,EAC/B,EAAI,SAAUA,GACZ,OAAOA,CACT,EAuBA,OAtBAgD,EAAQpC,SAAQ,SAAUoxC,GAExB,GAAIA,EAAK2tX,GAGP,GADiB9zG,EAAWszF,EAAa4gB,EAAW/tX,IAElD0tX,EAAgB/9Z,KAAKqwC,OAChB,CAEL,IAAIguX,EAAahuX,EAAK2tX,GAAc1uZ,QAAO,SAAUgvZ,GACnD,OAAOp0G,EAAWszF,EAAa4gB,EAAWE,GAC5C,IACID,EAAW/+Z,QACby+Z,EAAgB/9Z,KAAK22O,GAAcA,GAAc,CAAC,EAAGtmM,GAAO,CAAC,GAAG2lE,EAAAA,GAAAA,GAAgB,CAAC,EAAGgoT,EAAcK,IAEtG,MAGEn0G,EAAWszF,EAAa4gB,EAAW/tX,KACrC0tX,EAAgB/9Z,KAAKqwC,EAEzB,IACO0tX,CACT,GAAG,CAAC18Z,EAASk6Z,EAAcf,EAAkBhd,EAAa0E,GAC3D,CKkNuBqc,CAxBCvsM,EAAAA,SAAc,WACnC,GAAa,SAAT7vN,EACF,OAAO85R,EAIT,IAAIh1I,EAAek6F,GAAmB86C,GAgBtC,OARA96C,GAAmBs8K,IAAczqY,MAAK,SAAU3a,EAAGC,GACjD,OAAOD,EAAEtb,MAAQub,EAAEvb,OAAS,EAAI,CAClC,IAAGkC,SAAQ,SAAUoxC,GACnB,IAAIvpC,EAAMupC,EAAKtzC,OARE,SAAsB+J,GACvC,OAAO4zZ,EAAa1pZ,IAAIlK,EAC1B,EAOO03Z,CAAa13Z,IAChBmgJ,EAAajnJ,KAAK89Z,GAAgBh3Z,EAAKupC,EAAK4mE,OAEhD,IACOgwC,CACT,GAAG,CAAC62Q,GAAiB7hI,EAAey+H,EAAc+C,GAAct7Z,IACP25Z,EAAkBpX,EAAmBmX,EAAoBrB,GAG9GiE,GAAsBzsM,EAAAA,SAAc,WACtC,MAAa,SAAT7vN,IAAoBuiZ,GAAqBqZ,GAAgBxuZ,MAAK,SAAU8gC,GAC1E,OAAOA,EAAKmqX,GAAoB,WAAa9V,CAC/C,KAIIqZ,GAAgBxuZ,MAAK,SAAU8gC,GACjC,OAAOA,EAAKyrX,EAAiB/+Z,SAAW2nZ,CAC1C,IALSqZ,GASF,CAACD,GAAgBpZ,IAAoB/hZ,OAAOw+O,GAAmB48K,IACxE,GAAG,CAACD,GAAiBtD,EAAkBr4Z,EAAM47Z,GAAiBrZ,EAAmBoX,IAC7E4C,GAAS,SAASA,EAAOC,GAM3B,OALoBx9K,GAAmBw9K,GAAc3rY,MAAK,SAAU3a,EAAGC,GACrE,OAAOkjZ,EAAWnjZ,EAAGC,EAAG,CACtBklY,YAAakH,GAEjB,IACqBl5Y,KAAI,SAAU6kC,GACjC,OAAIrxC,MAAMqR,QAAQggC,EAAKhvC,SACds1O,GAAcA,GAAc,CAAC,EAAGtmM,GAAO,CAAC,EAAG,CAChDhvC,QAASgvC,EAAKhvC,QAAQ/B,OAAS,EAAIo/Z,EAAOruX,EAAKhvC,SAAWgvC,EAAKhvC,UAG5DgvC,CACT,GACF,EACIuuX,GAAyB5sM,EAAAA,SAAc,WACzC,OAAKwpM,EAGEkD,GAAOD,IAFLA,EAGX,GAAG,CAACA,GAAqBjD,EAAY9W,IACjCma,GAAiB7sM,EAAAA,SAAc,WACjC,OjC9QG,SAAwB3wN,GAC7B,IAAIw5K,EAAQjtK,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Es0Y,EAAarnO,EAAMqnO,WACnBC,EAAiBtnO,EAAMsnO,eACrBlvH,EAAc,GACd6rI,EAAkB7c,GAAeC,GAAY,GAC/C+b,EAAaa,EAAgB7nT,MAC7B6kM,EAAagjH,EAAgB/ha,MAC7Biha,EAAec,EAAgBz9Z,QAC/BghZ,EAAayc,EAAgBzc,WAmC/B,OAlCA,SAASyY,EAAIl8J,EAAMmgK,GACZ//Z,MAAMqR,QAAQuuP,IAGnBA,EAAK3/P,SAAQ,SAAUyb,GACrB,GAAIqkZ,KAAmBf,KAAgBtjZ,GAAO,CAC5C,IAAI3d,EAAQ2d,EAAKohS,GAGjB7oB,EAAYjzR,KAAK,CACfiD,IAAK46O,GAAOnjO,EAAMu4Q,EAAY3zR,QAC9Bo6Z,YAAaqF,EACbrkZ,KAAMA,EACNu8F,MAAOv8F,EAAKujZ,GACZlha,MAAOA,GAEX,KAAO,CACL,IAAIiia,EAAWtkZ,EAAK2nY,QACHj3Y,IAAb4zZ,GAA0B7c,IAC5B6c,EAAWtkZ,EAAKu8F,OAIlBg8K,EAAYjzR,KAAK,CACfiD,IAAK46O,GAAOnjO,EAAMu4Q,EAAY3zR,QAC9ByiG,OAAO,EACPrnF,KAAMA,EACNu8F,MAAO+nT,IAETlE,EAAIpgZ,EAAKsjZ,IAAe,EAC1B,CACF,GACF,CACAlD,CAAIz5Z,GAAS,GACN4xR,CACT,CiCiOW8kI,CAAe6G,GAAwB,CAC5C1c,WAAY4Z,EACZ3Z,eAAgBA,GAEpB,GAAG,CAACyc,GAAwB9C,EAAkB3Z,IAG1C5Y,GAAgB,SAAuB/0X,GACzC,IAAIwoZ,EAAgBd,EAAoB1nZ,GAExC,GADAmoZ,GAAiBK,GACb79K,IAEJ69K,EAAc19Z,SAAWm+Z,GAAan+Z,QAAU09Z,EAAcztZ,MAAK,SAAU0vZ,EAAQ5wZ,GACnF,IAAI6wZ,EACJ,OAAwD,QAA/CA,EAAsBzB,GAAapvZ,UAA4C,IAAxB6wZ,OAAiC,EAASA,EAAoBnia,UAAuB,OAAXkia,QAA8B,IAAXA,OAAoB,EAASA,EAAOlia,MACnM,KAAK,CACH,IAAIoia,EAAevD,EAAeoB,EAAgBA,EAAcxxZ,KAAI,SAAU6nB,GAC5E,OAAOA,EAAEt2B,KACX,IACIqia,EAAgBpC,EAAcxxZ,KAAI,SAAU6nB,GAC9C,OAAOivX,GAAsBob,GAAerqY,EAAEt2B,OAChD,IACAoiP,EAEA/sK,EAAW+sV,EAAeA,EAAa,GAEvC/sV,EAAWgtV,EAAgBA,EAAc,GAC3C,CACF,EAIEtlL,GAAmBC,GADC/nB,EAAAA,SAAe,MACgB,GACnDwtL,GAAc1lK,GAAiB,GAC/BulL,GAAiBvlL,GAAiB,GAElCkQ,GAAmBjQ,GADE/nB,EAAAA,SAAe,GACgB,GACpDstM,GAAqBt1K,GAAiB,GACtCu1K,GAAwBv1K,GAAiB,GACvCw1K,QAA8Dp0Z,IAA7B6sZ,EAAyCA,EAAoC,aAAT91Z,EACrG61Z,GAAgBhmM,EAAAA,aAAkB,SAAU/gM,EAAQ5iB,GACtD,IACEoxZ,GADU7xZ,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,GAC1D7D,OACrBA,OAA0B,IAAjB01Z,EAA0B,WAAaA,EAClDF,GAAsBlxZ,GAClB+sZ,GAAqB,aAATj5Z,GAAkC,OAAX8uB,GAA8B,aAAXlnB,GACxDs1Z,GAAej6Z,OAAO6rB,GAE1B,GAAG,CAACmqY,EAAUj5Z,IAGVu9Z,GAAgB,SAAuB54Z,EAAKm7C,EAAU98C,GACxD,IAAIw6Z,EAAe,WACjB,IAAIC,EACAx2R,EAASs0R,GAAe52Z,GAC5B,MAAO,CAAC80Z,EAAe,CACrB3kT,MAAkB,OAAXmyB,QAA8B,IAAXA,OAAoB,EAASA,EAAO0yR,EAAiB7kT,OAC/El6G,MAAO+J,EACP7D,IAAqF,QAA/E28Z,EAA0B,OAAXx2R,QAA8B,IAAXA,OAAoB,EAASA,EAAOnmI,WAAkC,IAAjB28Z,EAA0BA,EAAe94Z,GACpIA,EAAKw7Y,GAAsBl5Q,GACjC,EACA,GAAInnF,GAAY44N,EAAU,CACxB,IACEglJ,EAAiB9lL,GADC4lL,IAC6B,GAC/CG,EAAeD,EAAe,GAC9BE,EAAUF,EAAe,GAC3BhlJ,EAASilJ,EAAcC,EACzB,MAAO,IAAK99W,GAAY64N,GAAuB,UAAT31Q,EAAkB,CACtD,IACE66Z,EAAiBjmL,GADE4lL,IAC6B,GAChDM,EAAgBD,EAAe,GAC/BE,EAAWF,EAAe,GAC5BllJ,EAAWmlJ,EAAeC,EAC5B,CACF,EAGIC,GAAmBnF,IAAW,SAAUl0Z,EAAK6pI,GAC/C,IAAIyvR,EAGAC,GAAejuV,GAAWu+D,EAAK1uF,SAEjCm+W,EADEC,EACYjuV,EAAW,GAAGzvE,OAAOw+O,GAAmBs8K,IAAe,CAAC32Z,IAAQ,CAACA,GAEjE22Z,GAAanuZ,QAAO,SAAU+jB,GAC1C,OAAOA,EAAEt2B,QAAU+J,CACrB,IAEFyiY,GAAc62B,GACdV,GAAc54Z,EAAKu5Z,GAGN,aAATl+Z,EAEFk9Z,GAAe,IACL3c,KAAcjF,IACxBse,EAAe,IACfsD,GAAe,IAEnB,IAyDIiB,GAAgBtuM,EAAAA,SAAc,WAChC,IAAIuuM,GAA0B,IAAZ7vF,IAAkD,IAA7BC,EACvC,OAAOh6F,GAAcA,GAAc,CAAC,EAAGqlL,GAAgB,CAAC,EAAG,CACzDjE,eAAgB8G,GAChB7G,cAAeA,GACfC,yBAA0BuH,GAC1B3kJ,SAAUslJ,GACVjI,qBAAsBA,EACtB3S,UAAWA,GACXrD,WAAY4Z,EACZprF,QAAS6vF,EACT3kS,UAAWA,EACXu8R,WAAYA,EACZC,eAAgBA,EAChBjW,eAAgBA,EAChB7mK,SAAUA,EACV+8K,aAAcA,GAElB,GAAG,CAAC/8K,EAAU0gL,EAAe6C,GAAgB7G,GAAewH,GAAgCW,GAAkBjI,EAAsB3S,GAAWuW,EAAkBprF,EAASC,EAA0B/0M,EAAWu8R,EAAYC,EAAgBjW,EAAgBkW,IAW3P,OAAoBrmM,EAAAA,cAAoBszL,GAAclwS,SAAU,CAC9Dr4G,MAAOuja,IACOtuM,EAAAA,cAAoBwuM,GAAYpjM,GAAS,CAAC,EAAG6a,EAAW,CAEtEr2N,GAAIy0R,EACJ5+D,UAAWA,EACX/hM,IAAKA,EACLktW,aAAcsY,GACd/4Z,KAAMA,EAGN0gZ,cAAeA,GACfC,sBA9F0B,SAA+B2d,EAAY9vR,GACrE44P,GAAck3B,GACd,IAAIt7Z,EAAOwrI,EAAKxrI,KACdqP,EAASm8H,EAAKn8H,OACH,WAATrP,GAA8B,UAATA,GACvBqP,EAAOvV,SAAQ,SAAUoxC,GACvBqvX,GAAcrvX,EAAKtzC,OAAO,EAAOoI,EACnC,GAEJ,EAwFEy2H,UAAWA,EAGX4hR,YAAakH,EACb7V,SAzFqB,SAA0B4W,EAAY90Q,GAK3D,GAJAorR,EAAetW,GACf4Z,GAAe,MAGK,WAAhB1uR,EAAK5mI,OAWW,SAAhB4mI,EAAK5mI,SACM,aAAT5H,GACFonY,GAAckc,GAEH,OAAb5W,QAAkC,IAAbA,GAAuBA,EAAS4W,QAfvD,CACE,IAAIib,GAAajb,GAAc,IAAIvkY,OAEnC,GAAIw/Y,EAAW,CACb,IAAIC,EAAe3ha,MAAM8J,KAAK,IAAImwC,IAAI,GAAGt2C,OAAOw+O,GAAmBokK,IAAY,CAACmb,MAChFn3B,GAAco3B,GACdjB,GAAcgB,GAAW,GACzB3E,EAAe,GACjB,CAEF,CAOF,EAoEEte,qBAAsBA,EACtB4F,cApE0B,SAA+BhoT,GACzD,IAAIulU,EAAcvlU,EACL,SAATl5F,IACFy+Z,EAAcvlU,EAAM7vF,KAAI,SAAUy7F,GAChC,IAAI5oG,EAAMs8Z,EAAahvZ,IAAIs7F,GAC3B,OAAe,OAAR5oG,QAAwB,IAARA,OAAiB,EAASA,EAAItB,KACvD,IAAGuS,QAAO,SAAUxI,GAClB,YAAesE,IAARtE,CACT,KAEF,IAAI65Z,EAAe3ha,MAAM8J,KAAK,IAAImwC,IAAI,GAAGt2C,OAAOw+O,GAAmBokK,IAAYpkK,GAAmBy/K,MAClGr3B,GAAco3B,GACdA,EAAa1ha,SAAQ,SAAU4ha,GAC7BnB,GAAcmB,GAAa,EAC7B,GACF,EAsDElwF,yBAA0BA,EAG1B4yE,WAAYA,GACZR,cAAe8b,GAAev/Z,OAG9BkgZ,YAAaA,GACbpD,mBAAoB,GAAGz5Y,OAAO0zS,EAAU,UAAU1zS,OAAO28Z,OAE7D,IAKAnE,GAAY7S,OAASA,GACrB6S,GAAY/S,SAAWA,GACvB,MElhBA,GFkhBA,GGvfA,SAHA,SAAiC0Y,EAAmBjwF,GAClD,OAAOiwF,GA/BoBjwF,KAC3B,MACM/1C,EAAe,CACnBrxR,SAAU,CACRmlQ,SAAS,EACTC,SAAS,EACTE,QAAQ,GAEVzC,WAPmC,WAAlBukE,EAA6B,SAAW,UAQzDtvE,cAAc,GAEhB,MAAO,CACL8T,WAAYlxQ,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGuzR,GAAe,CACzDn7B,OAAQ,CAAC,KAAM,MACf1mM,OAAQ,CAAC,EAAG,KAEdq8M,YAAanxQ,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGuzR,GAAe,CAC1Dn7B,OAAQ,CAAC,KAAM,MACf1mM,OAAQ,CAAC,EAAG,KAEdk8M,QAAShxQ,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGuzR,GAAe,CACtDn7B,OAAQ,CAAC,KAAM,MACf1mM,OAAQ,CAAC,GAAI,KAEfm8M,SAAUjxQ,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGuzR,GAAe,CACvDn7B,OAAQ,CAAC,KAAM,MACf1mM,OAAQ,CAAC,GAAI,KAEhB,EAG2ByoV,CAAqB7wE,EACnD,EC9BMkwF,GAAej6S,IACnB,MAAM,aACJk6S,EAAY,eACZC,EAAc,iBACdC,EAAgB,cAChBC,GACEr6S,EACJ,MAAO,CACLt9G,SAAU,WACV7E,QAAS,QACTg9P,UAAWq/J,EACXthY,QAASyhY,EACT/hY,MAAO0nF,EAAMk2K,UACbh8P,WAAY,SACZzF,SAAU0lY,EACVxlY,WAAYylY,EACZ3uL,UAAW,aACZ,EAyHH,GAvHuBzrH,IACrB,MAAM,OACJ00K,EAAM,aACNH,GACEv0K,EACEs6S,EAAgB,GAAG/lI,SACnBgmI,EAAqB,IAAI7lI,mBAAwBA,0BACjD8lI,EAAsB,IAAI9lI,oBAAyBA,2BACnD+lI,EAAqB,IAAI/lI,mBAAwBA,0BACjDgmI,EAAuB,GAAGnmI,wBAC1BomI,EAAkB,GAAGL,oBAC3B,MAAO,CAAC,CACN,CAAC,GAAG/lI,cAA0Bl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACpFt9G,SAAU,WACV/J,KAAM,KACNiK,OAAQo9G,EAAMyzM,YACdhoF,UAAW,aACX7yM,QAASonF,EAAMulL,WACf5iS,SAAU,SACV8xB,SAAUurF,EAAMvrF,SAIhBgjG,YAAa,UACb30H,gBAAiBk9G,EAAMg9K,gBACvBtE,aAAc14K,EAAM85K,eACpBhtF,QAAS,OACTv0E,UAAWvY,EAAM0mL,mBACjB,CAAC,eACK6zH,IAAqBG,2BACrBF,IAAsBE,yBACtB,CACJ3uW,cAAe6qQ,IAEjB,CAAC,eACK2jG,IAAqBG,wBACrBF,IAAsBE,wBACtBH,IAAqBG,yBACrBF,IAAsBE,uBACtB,CACJ3uW,cAAe+qQ,IAEjB,CAAC,GAAG2jG,IAAqBC,eAAmC,CAC1D3uW,cAAe8qQ,IAEjB,CAAC,eACK4jG,IAAqBC,wBACrBD,IAAqBC,uBACrB,CACJ3uW,cAAegrQ,IAEjB,WAAY,CACVl5T,QAAS,QAEX,CAACy8Z,GAAgBj9Z,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGw5Z,GAAaj6S,IAAS,CACrE3uF,OAAQ,UACRu2B,WAAY,cAAco4D,EAAMu2K,0BAChCmC,aAAc14K,EAAM65K,eAEpB,UAAW,CACTvhQ,MAAO0nF,EAAMikL,qBACbxvQ,SAAUurF,EAAM06K,WAChBrpQ,OAAQ,WAGV,WAAY,CACVxzB,QAAS,OACT,YAAaR,OAAOoD,OAAO,CACzBs8C,KAAM,QACL+4O,IACH,UAAW,CACT/4O,KAAM,OACNl/C,QAAS,OACTs5R,WAAY,UAEd,CAAC,gBAAgBmjI,sBAAmC,CAClDx3Z,gBAAiBk9G,EAAM46S,gBAEzB,CAAC,kBAAkBN,sBAAmC,CACpDhiY,MAAO0nF,EAAM66S,oBACb3gY,WAAY8lF,EAAM86S,yBAClBh4Z,gBAAiBk9G,EAAM+6S,iBACvB,CAAC,GAAGT,kBAA+B,CACjChiY,MAAO0nF,EAAMu3K,eAGjB,aAAc,CACZ,CAAC,IAAI+iI,qBAAkC,CACrCx3Z,gBAAiBk9G,EAAM2jL,0BAEzBrrQ,MAAO0nF,EAAM42K,kBACbvlQ,OAAQ,eAEV,YAAa,CACXipS,mBAAoBt6M,EAAMq6J,KAAKr6J,EAAMqlL,0BAA0B31E,IAAI,GAAGp/C,UAG1E,UAAWjzK,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGw5Z,GAAaj6S,IAAS,CAC/D1nF,MAAO0nF,EAAM42K,sBAIjB,CAAC,GAAG+jI,WAAyBA,MAAqB,CAChD7lF,qBAAsB,EACtBF,mBAAoB,EACpB,CAAC,OAAO+lF,KAAoB,CAC1B9lF,uBAAwB,EACxBF,qBAAsB,IAI1B,QAAS,CACP7/M,UAAW,UAKjBuiM,GAAgBr3M,EAAO,YAAaq3M,GAAgBr3M,EAAO,cAAesvN,GAAetvN,EAAO,WAAYsvN,GAAetvN,EAAO,aAAa,ECtHpIg7S,GAA0Bh7S,IACrC,MAAM,yBACJi7S,EAAwB,WACxB11H,EAAU,UACVhwQ,EAAS,2BACT2lY,GACEl7S,EACEm7S,EAAcn7S,EAAM3lG,IAAI2lG,EAAMq6J,KAAKkrB,GAAYt2E,IAAI15L,GAAW+6I,QAAS,GAE7E,MAAO,CACL6qP,cACAC,iBAHuBp7S,EAAM3lG,IAAI2lG,EAAMq6J,KAAK8gJ,GAAalsM,IAAIisM,GAA4B5qP,QAAS,GAIlGopJ,WAAYr/T,GAAK4ga,GACjBI,eAAgBhha,GAAK2lH,EAAMq6J,KAAK4gJ,GAA0BhsM,IAAIjvG,EAAMq6J,KAAKr6J,EAAMzqF,WAAWm6L,IAAI,IAAIp/C,SACnG,EAeUgrP,GAAmBt7S,IAC9B,MAAM,aACJu0K,EAAY,QACZE,EAAO,eACPoF,EAAc,mBACdtD,EAAkB,UAClBiP,EAAS,0BACT+1H,EAAyB,gCACzBC,EAA+B,UAC/Bl3H,EAAS,eACTC,EAAc,2BACd22H,GACEl7S,EACEy7S,EAA0B,GAAGlnI,uBACnC,MAAO,CAML,CAACknI,GAA0B,CACzB/4Z,SAAU,WACV7E,QAAS,OACTk/C,KAAM,OACNgjS,SAAU,OACV3qT,SAAU,OACV,SAAU,CACR2nB,KAAM,OACN2+W,UAAW,SACXtmY,SAAU,OACVv3B,QAAS,eAGX,CAAC,GAAG02R,oBAAgC,CAClC12R,QAAS,OACT69Z,UAAW,SACX3+W,KAAM,OACN0uL,UAAW,aACXr2M,SAAU,OACV4kS,YAAakhG,EACbxiI,aAAcmB,EACdxoQ,OAAQ,UACRu2B,WAAY,aAAa2uO,kBAAmCA,aAA8BA,IAC1FokC,gBAAiB36M,EAAMq6J,KAAK6gJ,GAA4BxrM,IAAI,GAAGp/C,QAC/DgqJ,mBAAoB90B,EACpBy0B,iBAAkBj6M,EAAMq6J,KAAKmrB,GAAWx3E,IAAI,GAAG19C,QAC/C,CAAC,GAAGikH,eAA2B,CAC7Bj8P,MAAOijY,EACP1hY,YAAa2hY,EACbnqY,OAAQ,eAGV,YAAa,CACXxzB,QAAS,eACT88T,gBAAiB36M,EAAMq6J,KAAKmrB,GAAWx3E,IAAI,GAAG19C,QAC9C3tK,SAAU,SACV+1I,WAAY,MAEZq9I,aAAc,YAEhB,WAAY14R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EhdtFxB,CACvB5C,QAAS,cACTs5R,WAAY,SACZ7+P,MAAO,UACPlB,UAAW,SACXzC,WAAY,EACZoF,UAAW,SACXs8F,cAAe,OAEfr8F,cAAe,WACfo9P,cAAe,qBACf,yBAA0B,cAC1B,0BAA2B,YAC3B,MAAO,CACLziQ,WAAY,GAEd4pG,IAAK,CACH1gI,QAAS,kBgdqEqD,CACxDA,QAAS,cACTs5R,WAAY,SACZ7+P,MAAOgsQ,EACPpqQ,WAAY,OACZzF,SAAU,GACVE,WAAY,UACZtD,OAAQ,UACR,CAAC,KAAKojQ,KAAY,CAChBz6P,cAAe,UAEjB,UAAW,CACT1B,MAAOisQ,OAKhB,EAEGo3H,GAAoBA,CAAC37S,EAAOylB,KAChC,MAAM,aACJ8uJ,EAAY,2BACZ2mI,GACEl7S,EACEy7S,EAA0B,GAAGlnI,uBAC7BqnI,EAAmB57S,EAAMi7S,yBACzBY,EAnGmB77S,KACzB,MAAM,yBACJi7S,EAAwB,aACxBa,EAAY,UACZvmY,GACEyqF,EAEJ,OADuBA,EAAMq6J,KAAKyhJ,GAAc7sM,IAAIgsM,GAA0BjtM,IAAI,GAAGiB,IAAI15L,GAAW+6I,OAC/E,EA4FEyrP,CAAmB/7S,GACpCqgK,EAAY56I,EAAS,GAAG8uJ,KAAgB9uJ,IAAW,GACnDu2R,EAAuBhB,GAAwBh7S,GACrD,MAAO,CACL,CAAC,GAAGu0K,aAAwBlU,KAAchjR,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG66Z,GAAiBt7S,IAAS,CAElG,CAAC,GAAGu0K,cAA0B,CAC5B12R,QAAS,OACTs5R,WAAY,SACZ79R,MAAO,OACPN,OAAQ,OAER4wS,cAAeoyH,EAAqBb,YACpCzrF,aAAcssF,EAAqBZ,iBACnC1iI,aAAc14K,EAAM04K,aACpB,CAAC,GAAGnE,eAA2B,CAC7B1hK,WAAY7S,EAAMi8S,2BAClB5qY,OAAQ,eAEV,UAAW,CACTxzB,QAAS,eACTvE,MAAO,EACPL,OAAQ,GAAGoB,GAAK6ga,OAChBvmY,WAAYt6B,GAAKuha,GACjB1kS,WAAY,SACZphH,QAAS,WAIb,CAAC,GAAGy+Q,oBAAgC,CAClCv7R,OAAQgja,EAAqBtiG,WAC7B/kS,WAAYt6B,GAAK2ha,EAAqBX,iBAGxC,CAAC,GAAG9mI,oBAAgC,CAClCmnI,UAAW,aACX,UAAW,CACT/mY,WAAYt6B,GAAKuha,GACjB5hG,YAAakhG,IAIjB,CAAC,GAAG3mI,YAAwB,CAC1BmmC,kBAAmB16M,EAAMq6J,KAAKr6J,EAAMk8S,4BAA4BjtM,IAAI+sM,EAAqBb,aAAa7qP,SAExG,CAAC,GAAGmrP,YAAkCA,oBAClClnI,cAAyBA,4BACzB,CACF,CAAC,GAAGA,sBAAkC,CACpCmmC,kBAAmB,GAErB,CAAC,GAAGnmC,2BAAuC,CACzCsW,iBAAkB,IAKtB,CAAC,GAAG4wH,iBAAwC,CAC1C5gK,UAAWmhK,EAAqBtiG,WAChCM,YAAakhG,GAEf,CAAC,GAAG3mI,sBAAkC,CACpC12R,QAAS,cACT6E,SAAU,WACV0yB,SAAU,OACVslS,kBAAmB16M,EAAMq6J,KAAKr6J,EAAMk8S,4BAA4BjtM,IAAI4sM,GAAgBvrP,QACpF,qDAGI,CACFt3K,OAAQ4ia,EACRxhY,WAAY4lF,EAAM5lF,WAClBzF,WAAYt6B,GAAKuha,GACjBh0W,WAAY,OAAOo4D,EAAMu2K,sBAE3B,UAAW,CACTj9R,MAAO,OACP6pC,SAAU,KAEZ,WAAY,CACVzgC,SAAU,WACV/J,IAAK,EACLkyS,iBAAkB,EAClBF,eAAgB,OAChB/nS,OAAQ,IACR81I,WAAY,MAEZxhB,WAAY,WAIhB,CAAC,GAAGq9J,2BAAuC,CACzC7xR,SAAU,WACV/J,IAAK,MACLkyS,iBAAkB7qL,EAAMq6J,KAAKr6J,EAAMk8S,4BAA4BjtM,IAAI+sM,EAAqBb,aAAa7qP,QACrGq6H,eAAgB3qL,EAAMk8S,2BACtBtlV,UAAW,mBACXhvB,WAAY,OAAOo4D,EAAMu2K,wBAG9B,EAEH,SAAS4lI,GAAan8S,EAAOylB,GAC3B,MAAM,aACJ8uJ,GACEv0K,EACEqgK,EAAY56I,EAAS,GAAG8uJ,KAAgB9uJ,IAAW,GACnD22R,EAAW,CACf,CAAC,GAAG7nI,aAAwBlU,KAAc,CACxC5rP,SAAUurF,EAAMvrF,SAEhB,CAAC,GAAG8/P,cAA0B,CAC5B,CAAC,GAAGA,kBAA8B,CAChCljQ,OAAQ,SAGZ,CAAC,cACIkjQ,gBAA2BA,yBAC3BA,iBAA4BA,sBAC7B,CACF0lC,iBAAkBj6M,EAAMq6J,KAAKr6J,EAAM0kL,cAAc73Q,IAAImzF,EAAMqlL,0BAA0B/0H,WAI3F,MAAO,CAACqrP,GAAkB37S,EAAOylB,GAAS22R,EAC5C,CACA,MAmCA,GAnCyBp8S,IACvB,MAAM,aACJu0K,GACEv0K,EACE86N,EAAa9oD,GAAWhyK,EAAO,CACnC87S,aAAc97S,EAAMg6K,gBACpBihI,yBAA0Bj7S,EAAMq8S,qBAChC3jI,aAAc14K,EAAM65K,eACpBA,eAAgB75K,EAAM45K,iBAElBohD,EAAahpD,GAAWhyK,EAAO,CACnCvrF,SAAUurF,EAAM26K,WAChBmhI,aAAc97S,EAAMk6K,gBACpB+gI,yBAA0Bj7S,EAAMs8S,qBAChC5jI,aAAc14K,EAAM85K,eACpBD,eAAgB75K,EAAM04K,eAExB,MAAO,CAACyjI,GAAan8S,GAErBm8S,GAAarhF,EAAY,MAEzB,CACE,CAAC,GAAGvmD,aAAwBA,QAAoB,CAC9C,CAAC,GAAGA,2BAAuC,CACzCm7B,YAAa1vM,EAAMq6J,KAAKr6J,EAAMslL,4BAA4Br2E,IAAIjvG,EAAMzqF,WAAW+6I,SAGjF,CAAC,GAAGikH,sBAAkC,CACpCmmC,kBAAmB,KAKzByhG,GAAanhF,EAAY,MAAM,ECnSjC,SAASmhF,GAAan8S,EAAOylB,GAC3B,MAAM,aACJ8uJ,EAAY,2BACZ2nI,EAA0B,aAC1BxjI,GACE14K,EACEu8S,EAA4Bv8S,EAAMq6J,KAAKr6J,EAAM84K,eAAe7pE,IAAIjvG,EAAMq6J,KAAKr6J,EAAMzqF,WAAWm6L,IAAI,IAAIp/C,QACpG+vG,EAAY56I,EAAS,GAAG8uJ,KAAgB9uJ,IAAW,GACzD,MAAO,CACL,CAAC,GAAG8uJ,WAAsBlU,KAAc,CACtC5rP,SAAUurF,EAAMvrF,SAChBz7B,OAAQgnH,EAAM84K,cAEd,CAAC,GAAGvE,cAA0Bl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,GAAO,IAAQ,CAC1FniH,QAAS,OACT66R,eACA37O,KAAM,WACN,CAAC,GAAGw3O,sBAAkC,CACpC7xR,SAAU,WACV81H,MAAO,EACPl/H,MAAO,OACP,UAAW,CACTA,MAAO,OACPkja,iBAAkB,cAGtB,CAAC,eACGjoI,gCACAA,qCACA,CACF12R,QAAS,QACT+6B,QAAS,EACTjE,WAAYt6B,GAAKkia,GACjB30W,WAAY,OAAOo4D,EAAMu2K,oCACzBmlI,UAAW,UAEb,CAAC,GAAGnnI,2BAAuC,CACzC3sO,WAAY,OACZ4pL,cAAe,QAGjB,CAAC,CAAC,UACF,GAAG+iD,+BACH,GAAGA,uCAAkDj4R,KAAK,MAAO,CAC/DuB,QAAS,eACTvE,MAAO,EACP49H,WAAY,SACZphH,QAAS,YAGb,CAAC,cACIy+Q,gBAA2BA,+BAC3BA,gBAA2BA,iCAC3BA,gBAA2BA,mCAC5B,CACF0lC,iBAAkBj6M,EAAMy8S,2BAG1B,CAAC,IAAIloI,UAAqBA,oBAAgC,CACxDj8P,MAAO0nF,EAAM8jL,sBAKf,CAAC,SAASvP,sBAAkC,CAC1C,CAAC,GAAGA,cAA0B,CAC5Bj7R,MAAO,OACPN,OAAQ,OACRm+R,WAAY,SACZv+P,QAAS,KAAKv+B,GAAK6ha,KACnB,CAAC,GAAG3nI,4BAAwC,CAC1Cv7R,OAAQuja,GAEV,UAAW,CACT5nY,WAAYt6B,GAAKkia,MAIvB,CAAC,IAAIhoI,qBAAiC,CACpC,CAAC,GAAGA,cAA0B,CAC5B,UAAW,CACT12R,QAAS,QAEX,CAAC,GAAG02R,sBAAkC,CACpC7xR,SAAU,SACVpJ,MAAO,QAET,CAAC,GAAGi7R,2BAAuC,CACzC7xR,SAAU,WACVmoS,iBAAkB,EAClBF,eAAgB,EAChB/xQ,QAAS,KAAKv+B,GAAK6ha,KACnB,UAAW,CACTr+Z,QAAS,YAOvB,CACe,SAAS6+Z,GAAe18S,GACrC,MAAM,aACJu0K,GACEv0K,EACE28S,EAA2B38S,EAAMq6J,KAAKr6J,EAAMslL,4BAA4Br2E,IAAIjvG,EAAMzqF,WAAW+6I,QACnG,MAAO,CAAC6rP,GAAan8S,GAGrBm8S,GAAanqI,GAAWhyK,EAAO,CAC7B84K,cAAe94K,EAAMg6K,gBACrBtB,aAAc14K,EAAM65K,iBAClB,MAEJ,CACE,CAAC,GAAGtF,WAAsBA,QAAoB,CAC5C,CAAC,SAASA,sBAAkC,CAC1C,CAAC,GAAGA,cAA0B,CAC5B37P,QAAS,KAAKv+B,GAAKsia,MAGrB,CAAC,IAAIpoI,gBAA2BA,sBAAkC,CAChEoW,eAAgB3qL,EAAMq6J,KAAKsiJ,GAA0B9vY,IAAImzF,EAAMq6J,KAAKr6J,EAAMvrF,UAAUi7L,IAAI,MAAMp/C,SAEhG,CAAC,kBACMikH,gBAA2BA,mCAC3BA,gBAA2BA,uCAC5B,CACJ0lC,iBAAkBj6M,EAAMq6J,KAAKr6J,EAAMvrF,UAAUi7L,IAAI,KAAKp/C,YAO9D6rP,GAAanqI,GAAWhyK,EAAO,CAC7B84K,cAAe94K,EAAM48S,mBACrBnoY,SAAUurF,EAAM26K,WAChBjC,aAAc14K,EAAM85K,iBAClB,MACN,CC/IO,MCID8hG,GAAuBA,CAAC57Q,EAAOzlH,KACnC,MAAM,aACJg6R,EAAY,OACZG,EAAM,oBACNiQ,GACE3kL,EACJ,MAAO,CACL,CAAC,SAASu0K,sBAAiCA,cAA0B,CACnEpoJ,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAYx9R,EAAQs/B,cAC9Dg5F,WAAY7S,EAAM68S,YAEpB,CAAC,SAAStoI,mBAA8BA,0BAAqCG,8BAAoC,CAC/G,CAAC,WAAWH,cAA0B,CACpC16P,YAAat/B,EAAQuia,kBAEvB,CAAC,GAAGvoI,cAAyBA,cAA0B,CACrD16P,YAAat/B,EAAQ0gY,kBACrB1iQ,UAAW,SAASl+H,GAAKsqS,MAAwBpqS,EAAQwia,qBACzDjwN,QAAS,GAEX,CAAC,GAAGynF,YAAwB,CAC1Bj8P,MAAO/9B,EAAQ+9B,QAGpB,EAEGujW,GAAyBA,CAAC77Q,EAAOzlH,KAAY,CACjD,CAAC,IAAIylH,EAAMu0K,uBAAuBh6R,EAAQu5C,UAAWz2C,OAAOoD,OAAO,CAAC,EAAGm7X,GAAqB57Q,EAAOzlH,MAE/FwhY,GAAmB/7Q,IAAS,CAChC,aAAc3iH,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGm7X,GAAqB57Q,EAAO,CACpGnmF,YAAammF,EAAMm9K,YACnB2/H,iBAAkB98S,EAAMk7Q,iBACxBD,kBAAmBj7Q,EAAMi7Q,kBACzB8hC,mBAAoB/8S,EAAM+8S,mBAC1BzkY,MAAO0nF,EAAMk2K,aACV2lG,GAAuB77Q,EAAO,CACjClsE,OAAQ,QACRja,YAAammF,EAAM03K,WACnBolI,iBAAkB98S,EAAM4/K,gBACxBq7F,kBAAmBj7Q,EAAM03K,WACzBqlI,mBAAoB/8S,EAAMwkL,kBAC1BlsQ,MAAO0nF,EAAM03K,cACVmkG,GAAuB77Q,EAAO,CACjClsE,OAAQ,UACRja,YAAammF,EAAMy3K,aACnBqlI,iBAAkB98S,EAAMqgL,kBACxB46F,kBAAmBj7Q,EAAMy3K,aACzBslI,mBAAoB/8S,EAAMykL,oBAC1BnsQ,MAAO0nF,EAAMy3K,gBACV,CACH,CAAC,IAAIz3K,EAAMu0K,yBAA0B,CACnC,CAAC,SAASv0K,EAAMu0K,iCAAiCv0K,EAAMu0K,yBAA0B,CAC/E1hK,WAAY7S,EAAM2jL,yBAClBrrQ,MAAO0nF,EAAM42K,oBAGjB,CAAC,IAAI52K,EAAMu0K,yBAAyBv0K,EAAMu0K,+BAAgC,CACxE1hK,WAAY7S,EAAMg9S,eAClB7wR,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMi9S,+BAO5D3gC,GAAqBA,CAACt8Q,EAAOzlH,KACjC,MAAM,aACJg6R,EAAY,OACZG,GACE10K,EACJ,MAAO,CACL,CAAC,SAASu0K,sBAAiCA,cAA0B,CACnE1hK,WAAYt4H,EAAQi+B,GACpB2zG,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,uBAC1Cz/P,MAAO/9B,EAAQ+9B,OAEjB,CAAC,SAASi8P,mBAA8BA,0BAAqCG,8BAAoC,CAC/G,CAAC,WAAWH,cAA0B,CACpC1hK,WAAYt4H,EAAQ+gY,SAEtB,CAAC,GAAG/mG,cAAyBA,cAA0B,CACrD1hK,WAAY7S,EAAM68S,WAClBhjY,YAAat/B,EAAQ0gY,kBACrBnuL,QAAS,IAGd,EAEG0vL,GAAuBA,CAACx8Q,EAAOzlH,KAAY,CAC/C,CAAC,IAAIylH,EAAMu0K,uBAAuBh6R,EAAQu5C,UAAWz2C,OAAOoD,OAAO,CAAC,EAAG67X,GAAmBt8Q,EAAOzlH,MAE7FkiY,GAAiBz8Q,IAAS,CAC9B,WAAY3iH,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG67X,GAAmBt8Q,EAAO,CAChGxnF,GAAIwnF,EAAMy8K,kBACV6+F,QAASt7Q,EAAMw8K,mBACfy+F,kBAAmBj7Q,EAAMi7Q,kBACzB3iW,MAAO0nF,EAAMk2K,aACVsmG,GAAqBx8Q,EAAO,CAC/BlsE,OAAQ,QACRtb,GAAIwnF,EAAMu/K,aACV+7F,QAASt7Q,EAAMw/K,kBACfy7F,kBAAmBj7Q,EAAM03K,WACzBp/P,MAAO0nF,EAAM03K,cACV8kG,GAAqBx8Q,EAAO,CAC/BlsE,OAAQ,UACRtb,GAAIwnF,EAAMigL,eACVq7F,QAASt7Q,EAAMkgL,oBACf+6F,kBAAmBj7Q,EAAMy3K,aACzBn/P,MAAO0nF,EAAMy3K,gBACV,CACH,CAAC,IAAIz3K,EAAMu0K,yBAA0B,CACnC,CAAC,SAASv0K,EAAMu0K,iCAAiCv0K,EAAMu0K,yBAA0B,CAC/E16P,YAAammF,EAAMm9K,YACnBtqK,WAAY7S,EAAM2jL,yBAClBrrQ,MAAO0nF,EAAM42K,oBAGjB,CAAC,IAAI52K,EAAMu0K,yBAAyBv0K,EAAMu0K,+BAAgC,CACxE1hK,WAAY7S,EAAM+8K,iBAClB5wJ,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAM6jL,kBAO5Dw4F,GAAqBr8Q,IAAS,CAClC,eAAgB,CACd,CAAC,GAAGA,EAAMu0K,yBAA0B,CAClC1hK,WAAY,cACZsZ,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,wBAE5C,CAAC,IAAI/3K,EAAMu0K,yBAA0B,CACnC,CAAC,SAASv0K,EAAMu0K,iCAAiCv0K,EAAMu0K,yBAA0B,CAC/Ej8P,MAAO0nF,EAAM42K,oBAGjB,CAAC,IAAI52K,EAAMu0K,yBAAyBv0K,EAAMu0K,+BAAgC,CACxE1hK,WAAY7S,EAAMg9S,eAClB7wR,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMi9S,2BAG9D,CAAC,IAAIj9S,EAAMu0K,6BAA8B,CACvC,CAAC,GAAGv0K,EAAMu0K,wBAAwBv0K,EAAMu0K,+BAAgC,CACtEj8P,MAAO0nF,EAAM03K,aAGjB,CAAC,IAAI13K,EAAMu0K,+BAAgC,CACzC,CAAC,GAAGv0K,EAAMu0K,wBAAwBv0K,EAAMu0K,+BAAgC,CACtEj8P,MAAO0nF,EAAMy3K,kBAQfmlG,GAAyBA,CAAC58Q,EAAOzlH,KACrC,MAAM,aACJg6R,EAAY,OACZG,GACE10K,EACJ,MAAO,CACL,CAAC,SAASu0K,sBAAiCA,cAA0B,CACnE56P,YAAa,OAAOt/B,GAAK2lH,EAAMzqF,eAC/B2lS,YAAa,aAAal7M,EAAM+3K,gBAChCl+P,YAAat/B,EAAQs/B,YACrBg5F,WAAY7S,EAAM68S,WAClBnkI,aAAc,GAEhB,CAAC,SAASnE,mBAA8BA,0BAAqCG,8BAAoC,CAC/G,CAAC,WAAWH,cAA0B,CACpC16P,YAAat/B,EAAQuia,kBAEvB,CAAC,GAAGvoI,cAAyBA,cAA0B,CACrD16P,YAAat/B,EAAQ0gY,kBACrBnuL,QAAS,GAEX,CAAC,GAAGynF,YAAwB,CAC1Bj8P,MAAO/9B,EAAQ+9B,QAGpB,EAEGukW,GAA2BA,CAAC78Q,EAAOzlH,KAAY,CACnD,CAAC,IAAIylH,EAAMu0K,uBAAuBh6R,EAAQu5C,UAAWz2C,OAAOoD,OAAO,CAAC,EAAGm8X,GAAuB58Q,EAAOzlH,MAEjGuiY,GAAqB98Q,IAAS,CAClC,eAAgB3iH,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGm8X,GAAuB58Q,EAAO,CACxGnmF,YAAammF,EAAMm9K,YACnB2/H,iBAAkB98S,EAAMk7Q,iBACxBD,kBAAmBj7Q,EAAMi7Q,kBACzB8hC,mBAAoB/8S,EAAM+8S,mBAC1BzkY,MAAO0nF,EAAMk2K,aACV2mG,GAAyB78Q,EAAO,CACnClsE,OAAQ,QACRja,YAAammF,EAAM03K,WACnBolI,iBAAkB98S,EAAM4/K,gBACxBq7F,kBAAmBj7Q,EAAM03K,WACzBqlI,mBAAoB/8S,EAAMwkL,kBAC1BlsQ,MAAO0nF,EAAM03K,cACVmlG,GAAyB78Q,EAAO,CACnClsE,OAAQ,UACRja,YAAammF,EAAMy3K,aACnBqlI,iBAAkB98S,EAAMqgL,kBACxB46F,kBAAmBj7Q,EAAMy3K,aACzBslI,mBAAoB/8S,EAAMykL,oBAC1BnsQ,MAAO0nF,EAAMy3K,gBACV,CACH,CAAC,IAAIz3K,EAAMu0K,yBAA0B,CACnC,CAAC,SAASv0K,EAAMu0K,iCAAiCv0K,EAAMu0K,yBAA0B,CAC/Ej8P,MAAO0nF,EAAM42K,oBAGjB,CAAC,IAAI52K,EAAMu0K,yBAAyBv0K,EAAMu0K,+BAAgC,CACxE1hK,WAAY7S,EAAMg9S,eAClB7wR,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMi9S,+BAOlE,GAHyBj9S,IAAS,CAChC,CAACA,EAAMu0K,cAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGs7X,GAAiB/7Q,IAASy8Q,GAAez8Q,IAASq8Q,GAAmBr8Q,IAAS88Q,GAAmB98Q,MCzN/Kk9S,GAAmBl9S,IACvB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACLt9G,SAAU,WACVklD,WAAY,OAAOo4D,EAAMkiL,qBAAqBliL,EAAMq4K,kBACpDngR,MAAO,CACLmZ,OAAQ,WAEV,CAAC,GAAGkjQ,kBAA8B,CAChCljQ,OAAQ,OACRnZ,MAAO,CACLmZ,OAAQ,OACRiH,MAAO,UACPt/B,OAAQ,SAGZ,CAAC,GAAGu7R,eAA2B,CAC7BljQ,OAAQ,cACRnZ,MAAO,CACLmZ,OAAQ,gBAGb,EAIG8rY,GAAmCn9S,IACvC,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAAC,GAAGu0K,4BAAwC,CAC1Ct7R,OAAQ,EACR2/B,QAAS,EACTi6F,WAAY,cACZsZ,OAAQ,OACR2gE,QAAS,OACTswN,WAAY,OACZhjY,WAAY,UACZ,kCAAmC,CACjCv8B,QAAS,OACT,qBAAsB,SAG3B,EAGG2xU,GAAexvN,IACnB,MAAM,OACJ00K,EAAM,aACNH,EAAY,2BACZ2nI,EAA0B,QAC1BznI,GACEz0K,EACJ,MAAO,CACL,CAACu0K,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACtEt9G,SAAU,WACV7E,QAAS,cACTwzB,OAAQ,UACR,CAAC,SAASkjQ,sBAAiCA,cAA0Bl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGy8Z,GAAiBl9S,IAASm9S,GAAiCn9S,IAEhK,CAAC,GAAGu0K,oBAAgCl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC9Ds8C,KAAM,EACN7iB,WAAY,SACZx3B,SAAU,WACVg/I,WAAY,QACXo0I,IAAe,CAEhB,CAAC,KAAKpB,gBAAsB,CAC1B72R,QAAS,YAIb,CAAC,GAAG02R,2BAAuCl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGq1R,IAAe,CACxF/4O,KAAM,EACNzkB,MAAO0nF,EAAM8jL,qBACbtyD,cAAe,SAGjB,CAAC,GAAG+iD,WAAuBl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EpdnErC,CACvB5C,QAAS,cACTs5R,WAAY,SACZ7+P,MAAO,UACPlB,UAAW,SACXzC,WAAY,EACZoF,UAAW,SACXs8F,cAAe,OAEfr8F,cAAe,WACfo9P,cAAe,qBACf,yBAA0B,cAC1B,0BAA2B,YAC3B,MAAO,CACLziQ,WAAY,GAEd4pG,IAAK,CACH1gI,QAAS,kBodkDkE,CACvE6E,SAAU,WACV/J,IAAK,MACLkyS,iBAAkB,OAClBF,eAAgBuxH,EAChBlja,OAAQgnH,EAAM0kL,aACd/uK,UAAW3V,EAAMq6J,KAAKr6J,EAAM0kL,cAAch1E,KAAK,GAAG1B,IAAI,GAAG19C,QACzDh4I,MAAO0nF,EAAMs8K,oBACb7nQ,SAAUurF,EAAM0kL,aAChB/vQ,WAAY,EACZoF,UAAW,SACXy3M,cAAe,OACf3zO,QAAS,OACTs5R,WAAY,SACZvvO,WAAY,WAAWo4D,EAAMu2K,0BAC7B,CAAC9B,GAAU,CACTz6P,cAAe,MACf4tB,WAAY,aAAao4D,EAAMu2K,qBAC/B,QAAS,CACPv8P,cAAe,OAEjB,CAAC,SAASu6P,aAAyB,CACjC/iD,cAAe,SAGnB,CAAC,GAAG+iD,gBAA4B,CAC9BljQ,OAAQ,eAEV,uBAAwB,CACtBspS,gBAAiB,KAIrB,CAAC,GAAGpmC,oBAAgC,CAClC12R,QAAS,OACTvE,MAAO,OACPoJ,SAAU,WACVygC,SAAU,EAEV,UAAW,CACTrtB,QAAS,SACTxc,MAAO,EACPqJ,SAAU,WAId,CAAC,GAAG4xR,YAAwB,CAC1Bx3O,KAAM,OACN49Q,gBAAiB36M,EAAMq9S,oBAGzB,CAAC,GAAG9oI,WAAuB,CACzB7xR,SAAU,WACV/J,IAAK,MACLkyS,iBAAkB,OAClBF,eAAgBuxH,EAChBt5Z,OAAQ,EACR/E,QAAS,eACTvE,MAAO0mH,EAAM0kL,aACb1rS,OAAQgnH,EAAM0kL,aACd/uK,UAAW3V,EAAMq6J,KAAKr6J,EAAM0kL,cAAch1E,KAAK,GAAG1B,IAAI,GAAG19C,QACzDh4I,MAAO0nF,EAAMs8K,oBACb7nQ,SAAUurF,EAAM0kL,aAChBttQ,UAAW,SACXzC,WAAY,EACZoF,UAAW,SACXs8F,cAAe,OACfhlG,OAAQ,UACRruB,QAAS,EACT4kD,WAAY,SAASo4D,EAAMkiL,mCAAmCliL,EAAMu2K,0BACpEa,cAAe,OACf,WAAY,CACVv5R,QAAS,SAEX,UAAW,CACTy6B,MAAO0nF,EAAMq8K,oBAGjB,CAAC,WAAW9H,WAAuB,CACjCvxR,QAAS,EACT6vH,WAAY7S,EAAM63K,YAClBa,aAAc,SAIlB,CAAC,GAAGnE,YAAwB,CAC1B,8CAA+C,CAC7C,CAAC,IAAIA,kBAA8B,CACjC,CAAC,GAAGA,WAAuB,CACzBoW,eAAgB3qL,EAAMq6J,KAAK6hJ,GAA4BrvY,IAAImzF,EAAMvrF,UAAU5H,IAAImzF,EAAMwlL,WAAWl1H,YAKzG,EAGGgtP,GAAiBt9S,IACrB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CAAC,CACN,CAACu0K,GAAe,CAEd,CAAC,IAAIA,kBAA8B,CACjCj7R,MAAO,UAQbk2U,GAAaxvN,GAEb08S,GAAe18S,GAEfu9S,GAAiBv9S,GAEjBw9S,GAAiBx9S,GAIjB,CACE,CAAC,GAAGu0K,SAAqB,CACvBz/J,UAAW,QAMf6mN,GAAoB37N,EAAO,CACzBu7N,YAAa,GAAGhnD,aAChB+mD,WAAY,GAAG/mD,cACd,EAGL,GAAeQ,GAAc,UAAU,CAAC/0K,EAAOsiC,KAC7C,IAAI,cACFoxI,GACEpxI,EACJ,MAAMm7Q,EAAczrI,GAAWhyK,EAAO,CACpC0zK,gBACAwoI,2BAA4Bl8S,EAAMq6J,KAAKr6J,EAAMylL,WAAWx2E,IAAI,GAAG3+C,QAC/D2qP,yBAA0Bj7S,EAAM09S,mBAChC5B,aAAc97S,EAAM84K,gBAEtB,MAAO,CAACwkI,GAAeG,GAAcE,GAAiBF,GAAa,IF7OhCz9S,IACnC,MAAM,SACJvrF,EAAQ,WACRE,EAAU,UACVY,EAAS,cACTujQ,EAAa,gBACbkB,EAAe,gBACfE,EAAe,WACfqL,EAAU,yBACVF,EAAwB,gBACxBrM,EAAe,UACf9C,EAAS,iBACTiP,EAAgB,oBAChBL,EAAmB,mBACnBD,EAAkB,iBAClB9H,EAAgB,mBAChBP,EAAkB,yBAClBmH,EAAwB,kBACxB/M,EAAiB,kBACjB6H,EAAiB,aACjBlH,EAAY,eACZ2N,GACEllL,EAIE49S,EAA6B,EAAbr4H,EAChBs4H,EAA2B,EAAZtoY,EACfmoY,EAAqB7ka,KAAKyhB,IAAIw+Q,EAAgB8kI,EAAe9kI,EAAgB+kI,GAC7ExB,EAAuBxja,KAAKyhB,IAAI0/Q,EAAkB4jI,EAAe5jI,EAAkB6jI,GACnFvB,EAAuBzja,KAAKyhB,IAAI4/Q,EAAkB0jI,EAAe1jI,EAAkB2jI,GAGzF,MAAO,CACL3C,2BAFiCria,KAAKC,MAAMysS,EAAa,GAGzDkuB,YAAaz6B,EAAkB,GAC/B6hI,oBAAqB3kI,EACrB4kI,yBAA0B31H,EAC1B41H,iBAAkBj2H,EAClB81H,eAAgB/1H,EAChBw1H,cAAe,IAAIvhI,EAAgBrkQ,EAAWE,GAAc,OAAO0wQ,MACnE80H,eAAgB1lY,EAChB2lY,iBAAkBzlY,EAClBulY,aAAcphI,EACd+jI,WAAY9/H,EACZ+gI,QAAS/gI,EACT6/H,mBAAoB1iI,EACpB8iI,eAAgBxgI,EAChBygI,wBAAyB,cACzBS,qBACArB,uBACAC,uBACAL,2BAA4Bt4H,EAC5B43H,0BAA2B3kI,EAC3B4kI,gCAAiC,cACjCiB,0BAA2B5ja,KAAK6K,KAAsB,KAAjBs8G,EAAMvrF,UAC3CymW,iBAAkBz8F,EAClBw8F,kBAAmB1jG,EACnBwlI,mBAAoB73H,EACpBm4H,mBAAoB93H,EACrB,GEkLuB,CACxBtgB,SAAU,CACRm1I,kBAAkB,EAClBU,0BAA0B,KC/O9B,SADoB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,+LAAmM,KAAQ,QAAS,MAAS,YCMxX,IAAIiD,GAAgB,SAAuB7uX,EAAON,GAChD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM00N,KAEV,EAOA,SAJ2B9yM,EAAAA,WAAiB6yM,ICb5C,SADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,gMAAoM,KAAQ,OAAQ,MAAS,YCMvX,IAAIE,GAAe,SAAsB/uX,EAAON,GAC9C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM40N,KAEV,EAOA,SAJ2BhzM,EAAAA,WAAiB+yM,ICL7B,SAASE,GAAS77Q,GAC/B,IAAI,WACFklP,EAAU,UACVpH,EAAS,qBACTgxB,EAAoB,WACpBva,EAAU,QACVxtQ,EAAO,SACP/9D,EAAQ,YACR8/O,EAAW,UACXz6E,EAAS,eACTwvK,EAAc,aACd90F,EAAY,UACZjc,EAAS,cACTz+P,GACE2xG,EAMJ,MAAMg+P,EAAgC,OAAdlgB,QAAoC,IAAdA,EAAuBA,EAAyBl1K,EAAAA,cAAoB2gI,GAAmB,MAE/HuyE,EAAoBC,GACL,OAAf72B,GAAwBp8E,GAAgBhc,EAGxBlkF,EAAAA,cAAoBA,EAAAA,SAAgB,MAAyB,IAAnBi1L,GAA4Bke,EAAWjzG,GAAeC,GAF3G,KAKX,IAAIizG,EAAmB,KACvB,QAAmBh6Z,IAAfkjY,EACF82B,EAAmBF,EAAkB52B,QAChC,GAAIn+P,EACTi1R,EAAmBF,EAA+BlzM,EAAAA,cAAoB0oH,GAAiB,CACrF30D,MAAM,SAEH,CACL,MAAMwV,EAAU,GAAG9jD,WACnB2tL,EAAmBvqP,IACjB,IAAI,KACFn9J,EAAI,WACJggY,GACE7iO,EACJ,OACSqqP,EADLxnZ,GAAQggY,EAC4B1rL,EAAAA,cAAoBw1I,GAAgB,CACxE9hW,UAAW61R,IAGuBvpE,EAAAA,cAAoB+yM,GAAc,CACtEr/Z,UAAW61R,IACV,CAEP,CAEA,IAAI/tC,EAAiB,KAEnBA,OAD2BpiP,IAAzB8sZ,EACeA,EACR9lV,EACqB4/I,EAAAA,cAAoB6yM,GAAe,MAEhD,KAEnB,IAAIQ,EAAmB,KAMvB,OAJEA,OADiBj6Z,IAAfuyY,EACiBA,EAEa3rL,EAAAA,cAAoBkjI,GAAe,MAE9D,CACLgyC,UAAWkgB,EACX9Y,WAAY82B,EACZ94K,SAAUkB,EACVmwJ,WAAY0nB,EAEhB,CClFA,IAAIv7H,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAyBA,MAAMyzY,GAAkC,kCAClCC,GAAiBA,CAACvvX,EAAON,KAC7B,IAAIjb,EACJ,MACIg9M,UAAW2vC,EAAkB,SAC7BkkH,EAAQ,UACR5lY,EAAS,cACT0wQ,EAAa,kBACb5V,EAAiB,eACjB8F,EAAc,kBACd86I,EAAiB,WACjB+W,EAAa,IAAG,UAChB5tJ,EACA6tJ,eAAgBoN,EAChBhlZ,KAAMyiU,EACN9gS,SAAU+gS,EAAc,gBACxB+/D,EACAroW,OAAQgwV,EAAY,kBACpBlkI,EAAiB,yBACjBiqE,EAAwB,sBACxBC,EACAh1M,UAAW6pS,EAAa,MACxBhia,EAAK,WACL0iY,EACA9kP,QAASqkR,EAAgB,cACzBvkB,EAAa,eACbvqJ,EAAc,UACdqnJ,EAAS,SACT3iK,EAAQ,OACRnpI,GACEn8D,EACJu1D,EAAOu+L,GAAO9zP,EAAO,CAAC,YAAa,WAAY,YAAa,gBAAiB,oBAAqB,iBAAkB,oBAAqB,aAAc,YAAa,iBAAkB,OAAQ,WAAY,kBAAmB,SAAU,oBAAqB,2BAA4B,wBAAyB,YAAa,QAAS,aAAc,UAAW,gBAAiB,iBAAkB,YAAa,WAAY,YAE5ZwqN,kBAAmB86D,EAAwB,aAC3Cr0C,EAAY,YACZ0+I,EACA/pS,UAAWgqS,EAAgB,QAC3Bl1F,EACAE,sBAAuBi1F,EAA4B,cACnDh1F,GACE7+G,EAAAA,WAAiBg1D,IACf8+I,EAAgBt+I,GAAmB,WAClC,CAAE1gK,GAAS+yK,KACZu+H,EAA0C,OAAzBoN,QAA0D,IAAzBA,EAAkCA,EAAiC,OAAV1+S,QAA4B,IAAVA,OAAmB,EAASA,EAAM84K,cAC/JnoD,EAAYwvC,EAAa,SAAUG,GACnCoT,EAAgBvT,IAChBrrJ,EAA8B,OAAlB6pS,QAA4C,IAAlBA,EAA2BA,EAAgBG,GACjF,YACJnyG,EAAW,sBACXJ,GACEF,GAAsB17E,EAAW77G,IAC9BylB,EAASyqP,GAAoBi6B,GAAY,SAAUL,EAAkBp6B,GACtEjxG,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GACtDl4R,EAAO6vN,EAAAA,SAAc,KACzB,MACE7vN,KAAMixB,GACJ4iB,EACJ,GAAU,aAAN5iB,EAGJ,OAAIA,IAAMkyY,GACD,WAEFlyY,CAAC,GACP,CAAC4iB,EAAM7zC,OACJugZ,EAAsB,aAATvgZ,GAAgC,SAATA,EACpC8kZ,GC/FO,SAAsB3Y,EAAYp4F,GAC/C,YAAqB9qS,IAAd8qS,EAA0BA,EAA2B,OAAfo4F,CAC/C,CD6FyB03B,CAAahwX,EAAMs4V,WAAYt4V,EAAMkgQ,WACtD+vH,GAA+J,QAAhIxrY,EAA+B,OAA1Bm2S,QAA4D,IAA1BA,EAAmCA,EAAwBD,SAA6C,IAAPl2S,EAAgBA,EAAKorY,GAGhMjrX,OAAQ+vV,GAAa,YACrBz4E,GAAW,gBACXD,GAAe,aACfE,IACEngG,EAAAA,WAAiB4/F,IACf+5E,GAAejB,GAAgBC,GAAeC,GAEpD,IAAIs7B,GAEFA,QADsB96Z,IAApB63Y,EACeA,EACC,aAAT9gZ,EACQ,MAEiB,OAAhBwja,QAAwC,IAAhBA,OAAyB,EAASA,EAAY,YAA2B3zM,EAAAA,cAAoBm0M,GAAoB,CACzJ1uX,cAAe,WAInB,MAAM,WACJ62V,GAAU,SACVhiJ,GAAQ,WACRqxJ,GAAU,UACVzW,IACE+9B,GAAS9ga,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGgkG,GAAO,CAClDn5B,SAAUswU,EACVxwF,eACAC,gBACA80F,kBACAxvK,YACAhgM,cAAe,YAEX+yV,IAAkC,IAAfrE,EAAsB,CAC7Ce,cACEf,EACEigC,GAAc1/T,GAAK6E,EAAM,CAAC,aAAc,aACxC86T,GAAuB10M,KAAW20C,GAAkB86I,EAAmB,CAC3E,CAAC,GAAG3pK,cAAsB77G,KAA4B,QAAdA,GACvCw6I,EAAeg9B,EAAW/Y,EAAS/O,GAChCwoC,GAAaC,IAAQ9uL,IACzB,IAAIxqG,EACJ,OAAmG,QAA3FA,EAAuB,OAAlBwoT,QAA4C,IAAlBA,EAA2BA,EAAgBxvB,SAAgC,IAAPh5R,EAAgBA,EAAKwqG,CAAG,IAG/H9iF,GAAW6vK,EAAAA,WAAiBk9G,IAC5B9hF,GAAoC,OAAnB81F,QAA8C,IAAnBA,EAA4BA,EAAiB/gS,GACzFslW,GAAkB91L,KAAW,CACjC,CAAC,GAAG8lB,QAAgC,UAAfq8E,GACrB,CAAC,GAAGr8E,QAAgC,UAAfq8E,GACrB,CAAC,GAAGr8E,SAAgC,QAAd77G,EACtB,CAAC,GAAG67G,KAAap2F,KAAYyqP,EAC7B,CAAC,GAAGr0J,kBAA2Bw6E,IAC9Bw4E,GAAoBhzJ,EAAWk0J,GAAcz5E,IAAcmB,EAAuByyG,EAAcpga,UAAWA,EAAW0wQ,EAAeg9B,EAAW/Y,EAAS/O,GAEtJwrD,GAAgB9kH,EAAAA,SAAc,SAChB5mN,IAAdm/P,EACKA,EAEY,QAAd3uI,EAAsB,cAAgB,cAC5C,CAAC2uI,EAAW3uI,IAWf,MAAOlyH,IAAUsrT,GAAU,aAAgC,OAAlBmsF,QAA4C,IAAlBA,OAA2B,EAASA,EAAcz3Y,QAErH,OAAOypS,EAAwBnhF,EAAAA,cAAoBs0M,GAAUnia,OAAOoD,OAAO,CACzEmuC,IAAKA,EACLg7R,QAASA,EACTgtE,WAAYooB,EAAcpoB,YACzB0oB,GAAa,CACd3ia,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu+Z,EAAcria,OAAQA,GAC7DktU,yBAA0Bs1F,GAC1BrvK,eAAgBD,GAAkB6jC,EAAe,WAAY5jC,GAC7D8P,kBAAmB+6I,GAAwB/6I,EAAmBmqE,GAC9DsnF,WAAYA,EACZC,eAAgBA,EAChBj2Z,KAAMA,EACNs1O,UAAWA,EACX8yB,UAAWusE,GACXl7M,UAAWA,EACXzpB,OAAQA,EACRm8R,WAAYA,GACZ4pB,qBAAsB5rK,GACtBqxJ,WAAYA,GACZxX,WAAYqE,GACZyY,gBAAiBijB,GACjBxga,UAAW+hZ,GACXjnJ,kBAAmBA,GAAqB86D,EACxC8lF,kBAAmBilB,GACnBlkX,SAAUirM,GACV+zJ,cAAeh9Y,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG45Y,GAAgB,CAC7Dz3Y,YAEF4xO,SAAUonK,EAAapnK,OAAWlwO,EAClC6yY,UAAWyE,EAAazE,OAAY7yY,KAClC,EAKN,MAAMm7Z,GAAsBv0M,EAAAA,WAAiBuzM,IAGvCzoG,GAAYuY,GAAakxF,GAAQ,iBACvCA,GAAOjB,gCAAkCA,GACzCiB,GAAOje,OAASA,GAChBie,GAAOne,SAAWA,GAClBme,GAAO1pG,uCAAyCC,GAIhD,YEzNM0pG,GAA6B1/S,IACjC,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAAC,GAAGu0K,cAA0B,CAC5B,aAAc,CACZljQ,OAAQ,cACR,CAAC,GAAGkjQ,eAA2B,CAC7Bj8P,MAAO0nF,EAAM42K,kBACbvlQ,OAAQ,gBAGZ,kBAAmB,CACjBA,OAAQ,cACR,CAAC,GAAGkjQ,eAA2B,CAC7Bj8P,MAAO0nF,EAAM42K,kBACbvlQ,OAAQ,iBAId,CAAC,IAAIkjQ,cAA0B,CAC7BljQ,OAAQ,cACR,CAAC,GAAGkjQ,UAAsB,CACxBljQ,OAAQ,cACR,oBAAqB,CACnBvuB,gBAAiB,eAEnByO,EAAG,CACD+mB,MAAO0nF,EAAM42K,kBACb9zR,gBAAiB,cACjBqpI,OAAQ,OACR96G,OAAQ,eAEV,WAAY,CACVwI,YAAammF,EAAMm9K,YACnBr6R,gBAAiBk9G,EAAM2/S,qBACvB,oBAAqB,CACnB78Z,gBAAiBk9G,EAAM2/S,sBAEzBpuZ,EAAG,CACD+mB,MAAO0nF,EAAM4/S,2BAInB,CAAC,GAAGrrI,eAA2B,CAC7Bj8P,MAAO0nF,EAAM42K,kBACbvlQ,OAAQ,cACR,oBAAqB,CACnBvuB,gBAAiB,eAEnB,CAAC,GAAGyxR,aAAyB,CAC3BzxR,gBAAiB,cACjB,oBAAqB,CACnBA,gBAAiB,iBAIvB,CAAC,GAAGyxR,kBAA8B,CAChCj8P,MAAO0nF,EAAM42K,mBAEf,CAAC,GAAGrC,gBAA2BA,eAA2B,CACxD,CAAC,GAAGA,oBAAgC,CAClCvxR,QAAS,GAEX,CAAC,GAAGuxR,mBAA+B,CACjCvxR,QAAS,KAIf,CAAC,IAAIuxR,YAAwB,CAC3B,CAAC,GAAGA,WAAsBA,UAAsB,CAC9C,CAAC,IAAIA,cAAyBA,eAA2B,CACvD,oBAAqB,CACnBzxR,gBAAiB,kBAK1B,EAEG+8Z,GAAyB7/S,IAC7B,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAAC,IAAIu0K,UAAqBA,kBAA6BA,UAAqBA,kBAA8B,CACxGv7R,OAAQgnH,EAAM8/S,WACdnrY,WAAYt6B,GAAK2lH,EAAM8/S,aAEzB,CAAC,IAAIvrI,UAAqBA,UAAsB,CAC9CpxP,SAAU68E,EAAM8/S,WAChB9ma,OAAQgnH,EAAM8/S,WACd7ma,OAAQ,EACR07B,WAAYt6B,GAAK2lH,EAAMq6J,KAAKr6J,EAAM8/S,YAAY7wM,IAAI,GAAG3+C,UAEvD,CAAC,IAAIikH,cAAyBA,eAA0BA,cAAyBA,kBAA8B,CAC7GzxR,gBAAiB,cACjB+2B,YAAa,cACb,UAAW,CACT/2B,gBAAiBk9G,EAAMokL,kBAEzB,WAAY,CACVthS,gBAAiBk9G,EAAMqkL,oBAG3B,CAAC,IAAI9P,UAAqBA,YAAuBA,UAAqBA,UAAsB,CAC1FpxP,SAAU68E,EAAM8/S,WAChB9ma,OAAQgnH,EAAM8/S,WACd7ma,OAAQ,EACR07B,WAAYt6B,GAAK2lH,EAAM8/S,aAEzB,CAAC,IAAIvrI,cAAyBA,eAA2B,CACvD,CAAC,GAAGA,WAAsBA,UAAsB,CAC9C,CAAC,WAAWA,eAA2B,CACrCzxR,gBAAiBk9G,EAAMokL,kBAEzB,CAAC,YAAY7P,eAA2B,CACtCzxR,gBAAiBk9G,EAAMqkL,mBAEzB,CAAC,IAAI9P,oBAA+BA,eAA2B,CAC7DzxR,gBAAiB,iBAIvB,CAAC,UACEyxR,UAAqBA,UAAqBA,sBAC1CA,UAAqBA,UAAqBA,qBACzC,CACFzxR,gBAAiB,cACjB+2B,YAAa,cACb,WAAY,CACV7gC,OAAQgnH,EAAM8/S,WACdnrY,WAAYt6B,GAAK2lH,EAAM8/S,cAG3B,CAAC,IAAIvrI,UAAqBA,iBAA4BA,UAAqBA,eAA2B,CACpGv7R,OAAQgnH,EAAM8/S,WACdnlG,gBAAiB,EACjBhmS,WAAYt6B,GAAK2lH,EAAM8/S,aAEzB,CAAC,IAAIvrI,UAAqBA,aAAyB,CACjDmmC,kBAAmB16M,EAAM+/S,uCACzB,iBAAkB,CAChBpna,IAAKqnH,EAAMggT,2BAEb,iBAAkB,CAChBhna,OAAQgnH,EAAM8/S,WACdnrY,WAAYt6B,GAAK2lH,EAAM8/S,YACvB5nZ,MAAO7a,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGw8X,GAAmBj9Q,IAAS,CACjE1mH,MAAO0mH,EAAMigT,oCACbjna,OAAQgnH,EAAMg6K,oBAIrB,EAEGkmI,GAA2BlgT,IAC/B,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAAC,UACEu0K,YAAuBA,iBACvBA,YAAuBA,gBACtB,CACFv7R,OAAQgnH,EAAM8/S,WACdnrY,WAAYt6B,GAAK2lH,EAAM8/S,YACvB9lY,cAAe,MACf,CAAC,GAAGu6P,eAA2B,CAC7Bv7R,OAAQgnH,EAAM8/S,WACdh9Z,gBAAiB,cACjBqpI,OAAQ,EACR,UAAW,CACTrpI,gBAAiBk9G,EAAMokL,kBAEzB,WAAY,CACVthS,gBAAiBk9G,EAAMqkL,mBAEzB,WAAY,CACVrrS,OAAQgnH,EAAM8/S,WACdnrY,WAAYt6B,GAAK2lH,EAAM8/S,eAI7B,CAAC,IAAIvrI,YAAuBA,kBAA8B,CACxD12R,QAAS,eACT7E,OAAQgnH,EAAM8/S,WACdnlG,gBAAiB36M,EAAMomL,SACvBluR,MAAO,CACLuzN,UAAW,aACXzyO,OAAQ,OACR4/B,QAAS,KAAKv+B,GAAK2lH,EAAMmgT,+BACzBpmY,UAAW,SACXj3B,gBAAiBk9G,EAAMogT,YACvBj0R,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMm9K,cAC5DzE,aAAc14K,EAAM04K,aACpB5rF,QAAS,OACTllJ,WAAY,gBAAgBo4D,EAAMkiL,oBAClC5pQ,MAAO,UACP,UAAW,CACTuB,YAAammF,EAAMu3K,cAErB,UAAW,CACT19P,YAAammF,EAAMy+K,kBACnBlmK,UAAW,GAAGl+H,GAAK2lH,EAAMqgT,yBAAyBhma,GAAK2lH,EAAM2kL,wBAAwB3kL,EAAMklL,kBAE7F,cAAe,CACb5sQ,MAAO0nF,EAAM42K,kBACb9zR,gBAAiBk9G,EAAM2jL,yBACvB9pQ,YAAammF,EAAMm9K,YACnB9rQ,OAAQ,iBAIf,EAEGivY,GAAyBtgT,IAC7B,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAAC,GAAGu0K,gBAA2BA,eAA2B,CACxDznF,QAAS,EACT,CAAC,GAAGynF,oBAAgC,CAClC7xR,SAAU,WACV,CAAC,GAAG6xR,oBAAgC,CAClCj8P,MAAO0nF,EAAMu3K,aACb9iQ,SAAUurF,EAAM06K,WAChB13R,QAAS,EACT4kD,WAAY,OAAOo4D,EAAMkiL,oBACzB,QAAS,CACPvpS,IAAK,EACLgyS,eAAgB,EAChBltS,OAAQ,EACRotS,iBAAkB,EAClB5xS,OAAQ,SAGZ,CAAC,GAAGs7R,mBAA+B,CACjC7xR,SAAU,WACV/J,IAAK,EACLgyS,eAAgB,EAChBltS,OAAQ,EACRotS,iBAAkB,EAClBhtS,QAAS,QACT5E,OAAQ,OACRq/B,MAAO0nF,EAAM42K,kBACb1hK,cAAelV,EAAMugT,gCACrBxmY,UAAW,SACX8iL,WAAY78F,EAAMwgT,6BAClBx9Z,QAAS,EACT4kD,WAAY,OAAOo4D,EAAMkiL,sBAG7B,UAAW,CACT,CAAC,GAAG3N,oBAAgC,CAClCvxR,QAAS,GAEX,CAAC,GAAGuxR,mBAA+B,CACjCvxR,QAAS,KAIf,CAAC,SACCuxR,gBACAA,qBACAA,qBACE,CACFomC,gBAAiB36M,EAAMomL,UAEzB,CAAC,SACC7R,gBACAA,gBACAA,qBACAA,qBACE,CACF12R,QAAS,eACTslC,SAAU68E,EAAMygT,SAChBzna,OAAQgnH,EAAMygT,SACdnoY,MAAO0nF,EAAMk2K,UACb97P,WAAY4lF,EAAM5lF,WAClBzF,WAAYt6B,GAAK2lH,EAAMygT,UACvB1mY,UAAW,SACXC,cAAe,SACfm8P,UAAW,OACXuC,aAAc14K,EAAM04K,aACpBrnQ,OAAQ,UACRu2B,WAAY,OAAOo4D,EAAMkiL,qBAE3B,CAAC,GAAG3N,WAAsBA,UAAsB,CAC9CznF,QAAS,EACT3hJ,OAAQ,CACN7yB,MAAO0nF,EAAMk2K,UACb7kQ,OAAQ,UACRqwH,WAAY,QAEd,CAAC,GAAG6yI,eAA2B,CAC7B12R,QAAS,QACTvE,MAAO,OACPN,OAAQ,OACR4/B,QAAS,EACTnE,SAAUurF,EAAM06K,WAChB3gQ,UAAW,SACXj3B,gBAAiB,cACjBqpI,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,uBAC1CW,aAAc14K,EAAM04K,aACpB5rF,QAAS,OACTllJ,WAAY,OAAOo4D,EAAMkiL,qBAE3B,CAAC,WAAW3N,eAA2B,CACrCzxR,gBAAiBk9G,EAAMokL,kBAEzB,CAAC,YAAY7P,eAA2B,CACtCzxR,gBAAiBk9G,EAAMqkL,mBAEzB,CAAC,IAAI9P,oBAAgC,CACnC,CAAC,GAAGA,eAA2B,CAC7BzxR,gBAAiB,iBAIvB,CAAC,GAAGyxR,WAAuB,CACzBomC,gBAAiB36M,EAAM0gT,+BACvBhmG,kBAAmB16M,EAAM2gT,kCAE3B,CAAC,GAAGpsI,aAAyB,CAC3B12R,QAAS,eACT68T,kBAAmB16M,EAAM/mH,OACzB+gC,cAAe,SACf,iBAAkB,CAChBn8B,QAAS,eACTvE,MAAO,QAET,iBAAkB,CAChBuE,QAAS,eACT7E,OAAQgnH,EAAM84K,cACd4hC,kBAAmB16M,EAAMomL,SACzBzxQ,WAAYt6B,GAAK2lH,EAAM84K,eACvB9+P,cAAe,MACf9hB,MAAO7a,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGy8X,GAAmBl9Q,IAAS47Q,GAAqB57Q,EAAO,CAC3GnmF,YAAammF,EAAMm9K,YACnB+9F,iBAAkBl7Q,EAAMy+K,kBACxBw8F,kBAAmBj7Q,EAAMu3K,aACzB4jG,aAAcn7Q,EAAMm7Q,gBACjB,CACH,cAAe99X,OAAOoD,OAAO,CAAC,EAAG44U,GAAiBr5N,IAClD1mH,MAAO0mH,EAAMq6J,KAAKr6J,EAAMk6K,iBAAiBxqE,IAAI,MAAMp/C,QACnDt3K,OAAQgnH,EAAM84K,cACdrtD,UAAW,aACXxyO,OAAQ,EACRyhU,kBAAmB16M,EAAMomL,SACzBu0B,gBAAiB36M,EAAMomL,aAI9B,EAEGw6H,GAAyB5gT,IAC7B,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAAC,GAAGu0K,UAAsB,CACxB12R,QAAS,eACTslC,SAAU68E,EAAMygT,SAChBzna,OAAQgnH,EAAMygT,SACd9lG,gBAAiB36M,EAAMomL,SACvBhsQ,WAAY4lF,EAAM5lF,WAClBzF,WAAYt6B,GAAK2lH,EAAMq6J,KAAKr6J,EAAMygT,UAAUxxM,IAAI,GAAG3+C,SACnDv2I,UAAW,SACXC,cAAe,SACfm8P,UAAW,OACXrzR,gBAAiBk9G,EAAMi4M,OACvB9rL,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,uBAC1CW,aAAc14K,EAAM04K,aACpB5rF,QAAS,EACTz7K,OAAQ,UACRqwH,WAAY,OACZnwI,EAAG,CACD1T,QAAS,QACT+6B,QAAS,KAAKv+B,GAAK2lH,EAAMmgT,+BACzB7nY,MAAO0nF,EAAMk2K,UACb,UAAW,CACT98J,eAAgB,SAGpB,CAAC,SAASm7J,kBAA8B,CACtC,UAAW,CACT3sO,WAAY,OAAOo4D,EAAMkiL,oBACzBp/R,gBAAiBk9G,EAAMokL,kBAEzB,WAAY,CACVthS,gBAAiBk9G,EAAMqkL,oBAG3B,WAAY,CACVnqQ,WAAY8lF,EAAMmlL,iBAClBriS,gBAAiBk9G,EAAMg5M,aACvBn/R,YAAammF,EAAMu3K,aACnBhmR,EAAG,CACD+mB,MAAO0nF,EAAMu3K,cAEf,UAAW,CACT19P,YAAammF,EAAMy+K,mBAErB,YAAa,CACXnmQ,MAAO0nF,EAAMy+K,qBAIpB,EAEGoiI,GAAqB7gT,IACzB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAACu0K,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CAC1JniH,QAAS,OACT,UAAW,CACT+sS,eAAgB,SAElB,WAAY,CACVA,eAAgB,UAElB,QAAS,CACPA,eAAgB,OAElB,SAAU,CACR3xS,OAAQ,EACR2/B,QAAS,EACTu9P,UAAW,QAEb,WAAY,CACVt4R,QAAS,QACT0nF,MAAO,OACPvsF,OAAQ,EACR2J,SAAU,SACVu0H,WAAY,SACZphH,QAAS,MAEX,CAAC,GAAGy+Q,gBAA4B,CAC9B12R,QAAS,eACT7E,OAAQgnH,EAAMygT,SACd9lG,gBAAiB36M,EAAMomL,SACvBzxQ,WAAYt6B,GAAK2lH,EAAMq6J,KAAKr6J,EAAMygT,UAAUxxM,IAAI,GAAG3+C,SACnDt2I,cAAe,YAEf4mY,GAAuB5gT,IAASsgT,GAAuBtgT,IAASkgT,GAAyBlgT,IAAS6/S,GAAuB7/S,IAAS0/S,GAA2B1/S,IAAS,CAExK,CAAC,sCAAsCA,EAAMqnL,eAAgB,CAC3D,CAAC,GAAG9S,UAAsB,CACxB,wCAAyC,CACvC12R,QAAS,UAIf,CAAC,sCAAsCmiH,EAAM+mL,eAAgB,CAC3D,CAAC,GAAGxS,aAAyB,CAC3B12R,QAAS,WAKf,CAAC,IAAImiH,EAAMu0K,oBAAqB,CAC9Bz/J,UAAW,OAEd,EAEGgsS,GAA0B9gT,IAC9B,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAAC,GAAGu0K,SAAoBA,eAA2B,CACjD,CAAC,GAAGA,UAAsBl3R,OAAOoD,OAAO,CAAC,EAAGw2R,GAAcj3K,IAC1D,CAAC,GAAGu0K,gBAA2BA,eAA2B,CACxD,kBAAmBl3R,OAAOoD,OAAO,CAC/B,CAAC,GAAG8zR,oBAAgC,CAClCvxR,QAAS,GAEX,CAAC,GAAGuxR,mBAA+B,CACjCvxR,QAAS,IAEV6zR,GAAgB72K,KAErB,CAAC,GAAGu0K,WAAsBA,UAAsB,CAC9C,CAAC,mBAAmBA,eAA2Bl3R,OAAOoD,OAAO,CAAC,EAAGo2R,GAAgB72K,MAGtF,EAEU2pL,GAAwB3pL,GAAS3iH,OAAOoD,OAAO,CAC1Dw3T,OAAQj4M,EAAM+8K,iBACd0jI,SAAUzgT,EAAM84K,cAChBgnI,WAAY9/S,EAAMg6K,gBAClBg/B,aAAch5M,EAAM+8K,iBACpBgkI,WAAY/gT,EAAM+8K,iBAClB6iI,wBAAyB5/S,EAAM42K,kBAC/B+oI,qBAAsB3/S,EAAMglL,4BAC5Bo7H,YAAapgT,EAAM+8K,iBACnBijI,0BAA2B,GAC1BjlC,GAAmB/6Q,IACTk2N,GAAel2N,GAASgyK,GAAWhyK,EAAO,CACrDqgT,mBAAoB,EACpBN,uCAAwC//S,EAAMq6J,KAAKr6J,EAAMmmL,WAAWn4E,IAAI,GAAG19C,QAC3E2vP,oCAAqCjgT,EAAMq6J,KAAKr6J,EAAMk6K,iBAAiBxqE,IAAI,KAAKp/C,QAChF6vP,4BAA6BngT,EAAMq6J,KAAKr6J,EAAMmmL,WAAWz2E,IAAI,KAAKp/C,QAClEiwP,gCAAiCvgT,EAAMq6J,KAAKr6J,EAAMmmL,WAAWn4E,IAAI,GAAG19C,QACpEqwP,iCAAkC3gT,EAAMqmL,SACxCq6H,+BAAgC1gT,EAAMqmL,SACtCm6H,6BAA8B,UAC7B3lC,GAAe76Q,IAElB,GAAe+0K,GAAc,cAAc/0K,IACzC,MAAMghT,EAAkB9qF,GAAal2N,GACrC,MAAO,CAAC6gT,GAAmBG,GAAkBF,GAAwBE,GAAiB,GACrFr3H,ICxgBGs3H,GAAmBjhT,IACvB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAAC,GAAGu0K,IAAeA,aAAwBA,kBAA6BA,WAAuB,CAC7F,aAAc,CACZ,CAAC,GAAGA,eAA2B,CAC7B16P,YAAammF,EAAMm9K,cAGvB,kBAAmB,CACjB,CAAC,GAAG5I,eAA2B,CAC7B16P,YAAammF,EAAMm9K,cAGvB,CAAC,GAAG5I,WAAsBA,eAA2B,CACnDzxR,gBAAiBk9G,EAAM2jL,yBACvB9pQ,YAAammF,EAAMm9K,YACnB,CAAC,eAAe5I,kBAA8B,CAC5CzxR,gBAAiBk9G,EAAM2jL,yBACvB9pQ,YAAammF,EAAMm9K,YACnB5rR,EAAG,CACD+mB,MAAO0nF,EAAM42K,oBAGjB,CAAC,IAAIrC,iBAA6B,CAChCzxR,gBAAiBk9G,EAAM2/S,uBAG3B,CAAC,GAAGprI,WAAsBA,UAAsB,CAC9C,iBAAkB,CAChBzxR,gBAAiBk9G,EAAM2jL,yBACvB9pQ,YAAammF,EAAMm9K,YACnB7kQ,MAAO0nF,EAAM42K,mBAEf,CAAC,GAAGrC,eAA2B,CAC7BzxR,gBAAiBk9G,EAAM2jL,yBACvB9pQ,YAAammF,EAAMm9K,eAIzB,CAAC,GAAG5I,IAAeA,kBAA6BA,WAAuB,CACrE,CAAC,GAAGA,WAAsBA,UAAsB,CAC9C,iBAAkB,CAChB16P,YAAammF,EAAMy+K,kBACnB37R,gBAAiBk9G,EAAMi4M,QAEzB,CAAC,GAAG1jC,eAA2B,CAC7BzxR,gBAAiBk9G,EAAM+gT,WACvBlnY,YAAammF,EAAMm9K,aAErB,CAAC,WAAW5I,eAA2B,CACrC16P,YAAammF,EAAMu3K,aACnBz0R,gBAAiBk9G,EAAMi4M,OACvB3/R,MAAO0nF,EAAMu3K,cAEf,CAAC,IAAIhD,cAA0B,CAC7B,CAAC,GAAGA,eAA2B,CAC7B16P,YAAammF,EAAMm9K,YACnB7kQ,MAAO0nF,EAAM42K,qBAInB,CAAC,GAAGrC,UAAsB,CACxBzxR,gBAAiBk9G,EAAMi4M,OACvB9rL,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMm9K,cAC5D,CAAC,eAAe5I,kBAA8B,CAC5C16P,YAAammF,EAAMu3K,aACnBz0R,gBAAiBk9G,EAAMi4M,OACvB1mT,EAAG,CACD+mB,MAAO0nF,EAAMu3K,eAGjB,WAAY,CACV19P,YAAammF,EAAMu3K,gBAI1B,EAEH,GAAe3B,GAAqB,CAAC,aAAc,aAAa51K,IAC9D,MAAMghT,EAAkB9qF,GAAal2N,GACrC,MAAO,CAACihT,GAAiBD,GAAiB,GACzCr3H,ICtFY,SAASu3H,GAAmBryB,GACzC,OAAOpqU,EAAAA,EAAAA,UAAQ,IACkB,mBAApBoqU,EACF,CAACA,EAAiB,CAAC,GAExBA,GAA8C,kBAApBA,EACrB,EAAC,EAAMA,GAET,MAACvqY,OAAWA,IAClB,CAACuqY,GACN,CCTA,IAAI7rG,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAgLA,MCtLA,GDyBmBmkB,IACjB,MAAM,MACF7Z,EACAs7M,UAAW2vC,EACX0vH,gBAAiBmxB,EAAwB,UACzCvia,EAAS,cACT0wQ,EAAa,MACb3yQ,EACA+c,KAAMyiU,EACN9wT,OAAQ+1Y,EAAY,WACpBtwL,EAAU,gBACV+9J,EAAe,qBACfwyB,EAAoB,gBACpB7yB,GACEt/V,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,QAAS,YAAa,kBAAmB,YAAa,gBAAiB,QAAS,OAAQ,SAAU,aAAc,kBAAmB,uBAAwB,qBAClL,GACJ87P,GACE+4C,GAAcjzG,IACX,CAAE9wH,GAAS+yK,MACZ,aACJ5S,EAAY,UACZrrJ,EACA+5Q,gBAAiByyB,EACjB1ia,UAAW80O,EACX/2O,MAAO83T,GACL/zC,GAAmB,cACjB/vC,EAAYwvC,EAAa,aAAcG,IAEtC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAE3Cq8E,EAAaC,GAAQkvB,GACrBolF,EAAyB,UAAfv0G,MAA6BhiB,GAAOgiB,IAAcl8E,IAE3D2tH,GAAiBtS,GAAU,aAAcq1E,IAC1Cn2Y,EAAShuB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg+V,GAAgB2iE,IAGxDK,EAAqBC,GAA8BR,GAAmBryB,IACtE8yB,EAAwBC,GAAiCV,GAAmBI,GAC7EO,EAAgD,OAAxBJ,QAAwD,IAAxBA,EAAiCA,EAAsBE,EAC/GG,EAAkE,OAA/BJ,QAAsE,IAA/BA,EAAwCA,EAA6BE,EAC/IG,EAAcV,GAAwB5B,GAEtCuC,EAAwB92M,EAAAA,SAAc,IACnCsjL,EAAkBA,EAAgB9pY,KAAI49H,GAAU/jI,OAAO+jI,UAAWh+H,GACxE,CAACkqY,IA0CJ,MAAMyzB,EAAa/2M,EAAAA,SAAc,KAC/B,MAAMg3M,EAAwBh3M,EAAAA,cAAoB,OAAQ,CACxDtsN,UAAW,GAAG+xO,mBACb,sBAmCH,MAAO,CACL+gK,SAnC4BxmL,EAAAA,cAAoB,SAAU,CAC1DtsN,UAAW,GAAG+xO,cACdtyO,KAAM,SACN68O,UAAW,GACI,QAAdpmH,EAAmCo2F,EAAAA,cAAoB20D,GAAe,MAAqB30D,EAAAA,cAAoBy0D,GAAc,OAgC9HgyH,SA/B4BzmL,EAAAA,cAAoB,SAAU,CAC1DtsN,UAAW,GAAG+xO,cACdtyO,KAAM,SACN68O,UAAW,GACI,QAAdpmH,EAAmCo2F,EAAAA,cAAoBy0D,GAAc,MAAqBz0D,EAAAA,cAAoB20D,GAAe,OA4B9H2xH,aAxBFtmL,EAAAA,cAAoB,IAAK,CACvBtsN,UAAW,GAAG+xO,eACAzlB,EAAAA,cAAoB,MAAO,CACzCtsN,UAAW,GAAG+xO,oBACC,QAAd77G,EAAoCo2F,EAAAA,cAAoBkjL,GAAqB,CAC9ExvY,UAAW,GAAG+xO,qBACIzlB,EAAAA,cAAoBgjL,GAAoB,CAC1DtvY,UAAW,GAAG+xO,qBACXuxL,IAiBHzwB,aAbFvmL,EAAAA,cAAoB,IAAK,CACvBtsN,UAAW,GAAG+xO,eACAzlB,EAAAA,cAAoB,MAAO,CACzCtsN,UAAW,GAAG+xO,oBACC,QAAd77G,EAAoCo2F,EAAAA,cAAoBgjL,GAAoB,CAC7EtvY,UAAW,GAAG+xO,qBACIzlB,EAAAA,cAAoBkjL,GAAqB,CAC3DxvY,UAAW,GAAG+xO,qBACXuxL,IAMJ,GACA,CAACptS,EAAW67G,IACTq/J,EAAkB7vH,EAAa,SAAUghJ,GACzCgB,EAAoBt3M,KAAW,CACnC,CAAC,GAAG8lB,KAAat7M,OAAYA,EAC7B,CAAC,GAAGs7M,UAAmB4wL,EACvB,CAAC,GAAG5wL,SAAgC,QAAd77G,EACtB,CAAC,GAAG67G,cAAuB3wH,EAAMk5K,WAChCxlD,EAAkB90O,EAAW0wQ,EAAekV,EAAQ8nB,GACjDz3C,EAAcx3P,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg0T,GAAe93T,GACnE,OAAO0vS,EAAwBnhF,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMlrG,EAAMk5K,WAA0BhuE,EAAAA,cAAoBk3M,GAAe,CAC1IzxL,UAAWA,IACIzlB,EAAAA,cAAoBm3M,GAAchla,OAAOoD,OAAO,CAAC,EAAGwha,EAAY9wL,EAAW,CAC1Fx0O,MAAOk4P,EACPlkB,UAAWA,EACXq/J,gBAAiBA,EACjBpxY,UAAWuja,EACX92Y,OAAQA,EACRmjX,gBAAiBwzB,EACjBnzB,gBAAiBgzB,EACjB/yB,kBAvGwBjlQ,IACxB,IAAIl2G,EACJ,MAAM,SACJ0nB,EACA3hC,KAAM1hB,EAAQ,aACdu3Y,EACA,aAAc+yB,EACd1ja,UAAW2ja,EAAoB,QAC/Bhoa,GACEsvI,GAEFjrI,UAAW4ja,EACXnqL,SAAUoqL,GACRX,GAAoC,CAAC,EAInCY,EAA6F,QAA5E/uY,EAAKp5B,EAAQoO,MAAK25H,GAAUhkI,OAAOgkI,EAAOrsI,SAAWqI,OAAOtG,YAA+B,IAAP27B,OAAgB,EAASA,EAAG19B,MACvI,OAAoBi1N,EAAAA,cAAoB62M,EAAa1ka,OAAOoD,OAAO,CACjE46C,SAAUA,EACVu7V,YAAY,EACZ9sE,uBAAuB,EACvBpwE,kBAAmBsU,GAAeA,EAAYlwQ,WAC9C,aAAcwka,EACd/na,QAASA,GACRuna,EAAkC,CACnC7ra,MAAOysa,EACPrqL,SAAUA,CAACsqL,EAAUrgS,KACF,OAAjBitQ,QAA0C,IAAjBA,GAAmCA,EAAaozB,GAC7C,OAA5BF,QAAgE,IAA5BA,GAA8CA,EAAwBE,EAAUrgS,EAAO,EAE7H5oH,KAAM6nZ,EAAU,QAAU,SAC1B3ia,UAAWisN,KAAW03M,EAAsBC,KAC3C,MAuEA,EEjKQ,SAAAlmU,GAAUqB,EAAOt7E,EAAU9nB,GACzC,IAAyCqoa,GAAbroa,GAAW,CAAC,GAAhCsoa,QACR,OCEc,SAAUllU,EAAOt7E,EAAU9nB,GACzC,IAUIuoa,EAVJxgR,EAII/nJ,GAAW,CAAC,EAACwoa,EAAAzgR,EAHhB0gR,WAAAA,OAAa,IAAHD,GAAQA,EAAAE,EAAA3gR,EAClB4gR,UAAAA,OAAY,IAAHD,GAAQA,EAAAE,EAAA7gR,EACjB8gR,aAAAA,OAAe,IAAHD,OAAG7+Z,EAAS6+Z,EAQrBE,GAAY,EAGZC,EAAW,EAGf,SAASC,IACJT,GACH1rW,aAAa0rW,EAEf,CAcA,SAAS5tU,IAAuB,QAAAyyI,EAAA7gO,UAAAtO,OAAZgra,EAAU,IAAAtra,MAAAyvO,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAV47L,EAAU57L,GAAA9gO,UAAA8gO,GAC7B,IAAIxxO,EAAOiB,KACPosa,EAAUj2Y,KAAKw8B,MAAQs5W,EAO3B,SAASjyZ,IACRiyZ,EAAW91Y,KAAKw8B,MAChB3nC,EAAS3Q,MAAMtb,EAAMota,EACtB,CAMA,SAASj+U,IACRu9U,OAAYx+Z,CACb,CAhBI++Z,IAkBCH,IAAaE,GAAiBN,GAMlCzxZ,IAGDkyZ,SAEqBj/Z,IAAjB8+Z,GAA8BK,EAAU9lU,EACvCulU,GAMHI,EAAW91Y,KAAKw8B,MACXg5W,IACJF,EAAYv+Y,WAAW6+Y,EAAe79U,EAAQl0E,EAAMssF,KAOrDtsF,KAEwB,IAAf2xZ,IAYVF,EAAYv+Y,WACX6+Y,EAAe79U,EAAQl0E,OACN/M,IAAjB8+Z,EAA6BzlU,EAAQ8lU,EAAU9lU,IAGlD,CAKA,OAHAzI,EAAQuI,OAjFR,SAAgBljG,GACf,IAA8Cmpa,GAAbnpa,GAAW,CAAC,GAArCopa,aAAAA,OAAe,IAAHD,GAAQA,EAC5BH,IACAF,GAAaM,CACd,EAgFOzuU,CACR,CDhHQoQ,CAAS3H,EAAOt7E,EAAU,CAAE+gZ,cAA0B,UAD3C,IAAHR,GAAQA,IAExB,CEjBA,MAGMgB,GAAgB54N,GAAanyM,KAAK2rH,GAElCq/S,GAAe30X,IACnB,MAAM,aACJ40X,EAAY,MACZnna,EAAK,aACLona,GACE70X,EACJ,OAAoBg8K,EAAAA,cAAoB,SAAU,CAChDtsN,UAAWisN,KAAW,GAAGi5M,WAAuB,CAC9C,CAAC,GAAGA,eAA2BC,IAEjCpta,EAbWqta,GAcX1yS,GAZa,GAabC,GAba,GAcb5yE,YAjBgBqlX,GAkBhBrna,MAAOA,GACP,EA4CJ,GA1CiB2lJ,IACf,IAAI,QACFozL,EAAO,UACP/kG,GACEruF,EACJ,MAAMwhR,EAAe,GAAGnzL,QAClBszL,EAAkB,GAAGH,WACrBI,EAAgB,GAAGD,YAClB7qX,EAAQ+qX,GAAaj5M,EAAAA,UAAe,GAE3C1mJ,IAAgB,KACE,IAAZkxQ,GACFyuF,GAAU,EACZ,GACC,CAAa,IAAZzuF,IAEJ,MAAM0uF,EAAUvra,KAAKwhB,IAAIxhB,KAAKyhB,IAAIo7T,EAAS,KAAM,GAEjD,IAAKt8R,EACH,OAAO,KAET,MAAMirX,EAAc,CAClB7lX,iBAAkB,GAAGolX,GAAgB,EACrCrlX,gBAAiB,GAAGqlX,GAAgBQ,EAAU,OAAOR,IAAiB,IAAMQ,GAAW,OAEzF,OAAoBl5M,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAWisN,KAAWo5M,EAAiB,GAAGH,aAAyBM,GAAW,GAAKF,IACrEh5M,EAAAA,cAAoB,MAAO,CACzCyqI,QAAS,cAETlwG,KAAM,cACN,gBAAiB,EACjB,gBAAiB,IACjB,gBAAiB2+K,GACHl5M,EAAAA,cAAoB24M,GAAc,CAChDC,aAAcA,EACdC,cAAc,IACC74M,EAAAA,cAAoB24M,GAAc,CACjDC,aAAcA,EACdnna,MAAO0na,KACL,EC9DS,SAASC,GAAOp1X,GAC7B,MAAM,UACJyhM,EAAS,QACT+kG,EAAU,GACRxmS,EACE40X,EAAe,GAAGnzL,QAClBszL,EAAkB,GAAGH,WACrBI,EAAgB,GAAGD,WAEzB,OAAoB/4M,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoB,OAAQ,CACrGtsN,UAAWisN,KAAWo5M,EAAiBvuF,EAAU,GAAKwuF,IACxCh5M,EAAAA,cAAoB,OAAQ,CAC1CtsN,UAAWisN,KAAWi5M,EAAc,GAAGnzL,eACtC,CAAC,EAAG,EAAG,EAAG,GAAGjsO,KAAInM,GAAmB2yN,EAAAA,cAAoB,IAAK,CAC9DtsN,UAAW,GAAG+xO,aACdx0O,IAAK5D,QACc2yN,EAAAA,cAAoBq5M,GAAU,CACjD5zL,UAAWA,EACX+kG,QAASA,IAEb,CCnBe,SAAS8uF,GAAUt1X,GAChC,MAAM,UACJyhM,EAAS,UACTw6G,EAAS,QACTzV,GACExmS,EACE40X,EAAe,GAAGnzL,QACxB,OAAIw6G,GAA0BjgI,EAAAA,eAAqBigI,GAC1Cj9O,GAAai9O,EAAW,CAC7BvsV,UAAWisN,KAAWsgI,EAAUj8S,MAAMtwC,UAAWkla,GACjDpuF,YAGgBxqH,EAAAA,cAAoBo5M,GAAQ,CAC9C3zL,UAAWA,EACX+kG,QAASA,GAEb,CCpBA,MAAM+uF,GAAc,IAAI1yG,GAAU,cAAe,CAC/C5vT,GAAI,CACFa,QAAS,KAGP0ha,GAAY,IAAI3yG,GAAU,YAAa,CAC3C5vT,GAAI,CACFy0E,UAAW,oBAGT+tV,GAAe3kT,IACnB,MAAM,aACJu0K,EAAY,KACZla,GACEr6J,EACJ,MAAO,CACL,CAACu0K,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACtEt9G,SAAU,WACV7E,QAAS,OACTy6B,MAAO0nF,EAAMu3K,aACb9iQ,SAAU,EACVsF,UAAW,SACXC,cAAe,SACfh3B,QAAS,EACT4kD,WAAY,aAAao4D,EAAMu2K,sBAAsBv2K,EAAMm4K,sBAC3D,aAAc,CACZz1R,SAAU,WACV7E,QAAS,eACTmF,QAAS,GAEX,CAAC,GAAGuxR,UAAsB,CACxB9/P,SAAUurF,EAAMvrF,SAChBoE,WAAYwhP,EAAKA,EAAKr6J,EAAM+nO,SAAS94H,IAAIjvG,EAAMvrF,WAAWu5L,IAAI,GAAGnhM,IAAI,GAAGyjJ,SAE1E,eAAgB,CACd5tK,SAAU,QACVpJ,MAAO,QACPN,OAAQ,QACR8J,gBAAiBk9G,EAAMmhL,YACvBv+R,OAAQo9G,EAAMg5K,gBACdxgK,MAAO,EACP36H,QAAS,OACTs5R,WAAY,SACZuS,cAAe,SACfkB,eAAgB,SAChB5nS,QAAS,EACTk0H,WAAY,SACZtvE,WAAY,OAAOo4D,EAAMkiL,oBACzB,SAAU,CACRl/R,QAAS,EACTk0H,WAAY,WAEd,CAACq9J,GAAe,CACd,CAAC,GAAGA,gBAA4B,CAC9Bj8P,MAAO0nF,EAAMohL,YAEf,CAAC,GAAG7M,UAAsB,CACxBj8P,MAAO0nF,EAAMkkL,uBAInB,mBAAoB,CAClBxhS,SAAU,WACV,CAAC,WAAW6xR,KAAiB,CAC3B7xR,SAAU,WACV/J,IAAK,EACLkyS,iBAAkB,EAClBjoS,OAAQ,EACR/E,QAAS,QACTvE,MAAO,OACPN,OAAQ,OACRqhU,UAAWr6M,EAAMh9E,cACjB,CAAC,GAAGuxP,SAAqB,CACvB7xR,SAAU,WACV/J,IAAK,MACLkyS,iBAAkB,MAClB5xS,OAAQohR,EAAKr6J,EAAM+nO,SAASr4H,KAAK,GAAG1B,IAAI,GAAG19C,SAE7C,CAAC,GAAGikH,UAAsB,CACxB7xR,SAAU,WACV/J,IAAK,MACLW,MAAO,OACP28H,WAAY,aAAajW,EAAM+8K,oBAEjC,CAAC,IAAIxI,eAA0BA,SAAqB,CAClD5+J,UAAW0kJ,EAAKr6J,EAAM+nO,SAAS/5H,IAAI,GAAG0B,KAAK,GAAGT,IAAI,IAAI3+C,SAExD,OAAQ,CACN,CAAC,GAAGikH,SAAqB,CACvBt7R,OAAQohR,EAAKr6J,EAAM4kT,WAAWl1M,KAAK,GAAG1B,IAAI,GAAG19C,SAE/C,CAAC,GAAGikH,UAAsB,CACxB17P,WAAYwhP,EAAKA,EAAKr6J,EAAM4kT,WAAW31M,IAAIjvG,EAAMvrF,WAAWu5L,IAAI,GAAGnhM,IAAI,GAAGyjJ,SAE5E,CAAC,IAAIikH,eAA0BA,SAAqB,CAClD5+J,UAAW0kJ,EAAKr6J,EAAM4kT,WAAW52M,IAAI,GAAG0B,KAAK,GAAGT,IAAI,IAAI3+C,UAG5D,OAAQ,CACN,CAAC,GAAGikH,SAAqB,CACvBt7R,OAAQohR,EAAKr6J,EAAM6kT,WAAWn1M,KAAK,GAAG1B,IAAI,GAAG19C,SAE/C,CAAC,GAAGikH,UAAsB,CACxB17P,WAAYwhP,EAAKA,EAAKr6J,EAAM6kT,WAAW51M,IAAIjvG,EAAMvrF,WAAWu5L,IAAI,GAAGnhM,IAAI,GAAGyjJ,SAE5E,CAAC,IAAIikH,eAA0BA,SAAqB,CAClD5+J,UAAW0kJ,EAAKr6J,EAAM6kT,WAAW72M,IAAI,GAAG0B,KAAK,GAAGT,IAAI,IAAI3+C,WAI9D,CAAC,GAAGikH,eAA2B,CAC7B7xR,SAAU,WACVklD,WAAY,WAAWo4D,EAAMu2K,qBAC7B,WAAY,CACV7zR,SAAU,WACV/J,IAAK,EACLgyS,eAAgB,EAChBltS,OAAQ,EACRotS,iBAAkB,EAClBjoS,OAAQ,GACRtJ,MAAO,OACPN,OAAQ,OACR65H,WAAY7S,EAAM+8K,iBAClB/5R,QAAS,EACT4kD,WAAY,OAAOo4D,EAAMu2K,qBACzBzgR,QAAS,KACT07N,cAAe,SAGnB,CAAC,GAAG+iD,UAAsB,CACxBhvM,MAAO,OACPviF,QAAS,GACT0+I,WAAY,OACZ8vF,cAAe,OACf,WAAY,CACVxuO,QAAS,GACTwuO,cAAe,UAMrB,QAAS,CACPl5M,MAAO0nF,EAAM8kT,gBAIf,CAAC,GAAGvwI,gBAA4B,CAC9Bj7R,MAAO,MACPN,OAAQ,MACRy7B,SAAUurF,EAAM+nO,QAChBlqV,QAAS,eACT+pD,WAAY,aAAao4D,EAAMu2K,oCAAoCv2K,EAAMu2K,0BACzEv/J,gBAAiB,UACjBriG,WAAY,EACZ2D,MAAO0nF,EAAMu3K,aACb,WAAY,CACV3gN,UAAW,aACX5zE,QAAS,IAKb,CAAC,GAAGuxR,kBAA8B,CAChC7xR,SAAU,WACV81H,MAAO,GAIT,CAAC,GAAG+7J,SAAqB,CACvB7xR,SAAU,WACV7E,QAAS,eACT42B,SAAUurF,EAAM+nO,QAChBzuV,MAAO,MACPN,OAAQ,MACR,SAAU,CACR0J,SAAU,WACV7E,QAAS,QACTvE,MAAO+gR,EAAKr6J,EAAM+nO,SAAS94H,IAAIorD,EAAKr6J,EAAMmmL,WAAWn4E,IAAI,IAAIA,IAAI,GAAG19C,QACpEt3K,OAAQqhR,EAAKr6J,EAAM+nO,SAAS94H,IAAIorD,EAAKr6J,EAAMmmL,WAAWn4E,IAAI,IAAIA,IAAI,GAAG19C,QACrEz9C,WAAY,eACZ6lK,aAAc,OACd9hN,UAAW,cACXogD,gBAAiB,UACjBh0H,QAAS,GACT+oD,cAAe04W,GACf1rS,kBAAmB,KACnBz8E,wBAAyB,WACzBu2Q,wBAAyB,SACzBkyG,mBAAoB,YACpB,iBAAkB,CAChBpsa,IAAK,EACLkyS,iBAAkB,EAClBm6H,eAAgB,MAElB,iBAAkB,CAChBrsa,IAAK,EACLgyS,eAAgB,EAChBq6H,eAAgB,QAElB,iBAAkB,CAChBr6H,eAAgB,EAChBltS,OAAQ,EACRuna,eAAgB,QAElB,iBAAkB,CAChBvna,OAAQ,EACRotS,iBAAkB,EAClBm6H,eAAgB,SAGpB,SAAU,CACRpuV,UAAW,gBACX7qB,cAAe24W,GACf3rS,kBAAmB,OACnBz8E,wBAAyB,WACzBu2Q,wBAAyB,UAE3B,WAAY,CACVoyG,cAAe,QACfr9W,WAAY,CAAC,oBAAqB,mBAAoB,SAAU,eAAgB,WAAWljD,KAAI6kC,GAAQ,GAAGA,KAAQy2E,EAAMu2K,4BAA2Bj6R,KAAK,KACxJ8hD,YAAa,EACbwgG,OAAQ,gBAEV,cAAe,CACbA,OAAQ5+B,EAAMw8K,qBAIlB,CAAC,QAAQjI,SAAqB,CAC5B,cAAe,CACb9/P,SAAUurF,EAAM4kT,YAGpB,CAAC,QAAQrwI,gBAA4B,CACnCh8R,EAAG,CACDe,MAAO+gR,EAAKA,EAAKr6J,EAAM4kT,WAAW31M,IAAIorD,EAAKr6J,EAAMmmL,WAAWn4E,IAAI,KAAKA,IAAI,GAAG19C,QAC5Et3K,OAAQqhR,EAAKA,EAAKr6J,EAAM4kT,WAAW31M,IAAIorD,EAAKr6J,EAAMmmL,WAAWn4E,IAAI,KAAKA,IAAI,GAAG19C,UAIjF,CAAC,QAAQikH,SAAqB,CAC5B,cAAe,CACb9/P,SAAUurF,EAAM6kT,YAGpB,CAAC,QAAQtwI,gBAA4B,CACnCh8R,EAAG,CACDe,MAAO+gR,EAAKA,EAAKr6J,EAAM6kT,WAAW51M,IAAIjvG,EAAMmmL,YAAYn4E,IAAI,GAAG19C,QAC/Dt3K,OAAQqhR,EAAKA,EAAKr6J,EAAM6kT,WAAW51M,IAAIjvG,EAAMmmL,YAAYn4E,IAAI,GAAG19C,UAGpE,CAAC,IAAIikH,eAA0BA,UAAsB,CACnD12R,QAAS,WAGd,EAeH,GAAek3R,GAAc,QAAQ/0K,IACnC,MAAMklT,EAAYlzI,GAAWhyK,EAAO,CAClC8kT,eAAgB9kT,EAAMikL,uBAExB,MAAO,CAAC0gI,GAAaO,GAAW,IAjBGllT,IACnC,MAAM,gBACJk6K,EAAe,cACfpB,GACE94K,EACJ,MAAO,CACLh9E,cAAe,IACf+kT,QAAS7tD,EAAkB,EAC3B0qI,UAA6B,IAAlB1qI,EACX2qI,UAAW/rI,EACZ,IC7QGqsI,GAAe,CAAC,CAAC,GAAI,KAAO,CAAC,GAAI,KAAO,CAAC,GAAI,MCAnD,IAAIniI,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAWA,IAAIq6Y,GAIJ,MAAMC,GAAOn2X,IACX,IAAIvb,EACJ,MACIg9M,UAAW2vC,EACXglJ,SAAUC,GAAiB,EAAI,MAC/B5nU,EAAQ,EAAC,UACT/+F,EAAS,cACT0wQ,EAAa,KACb51P,EAAO,UAAS,IAChB8rZ,EAAG,iBACHC,EAAgB,MAChB9oa,EAAK,SACL6+C,EAAQ,WACRkqX,GAAa,EAAK,UAClBv6E,EAAS,QACTzV,GACExmS,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,WAAY,QAAS,YAAa,gBAAiB,OAAQ,MAAO,mBAAoB,QAAS,WAAY,aAAc,YAAa,aAC1K,aACJixO,EAAY,UACZrrJ,EACAl2H,UAAW80O,EACX/2O,MAAO83T,EACP02B,UAAWw6E,GACTjlJ,GAAmB,QACjB/vC,EAAYwvC,EAAa,OAAQG,IAChC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,IAC1C20L,EAAUM,GAAe16M,EAAAA,UAAe,IAAMq6M,IA9BvD,SAAqBD,EAAU3nU,GAC7B,QAAS2nU,KAAc3nU,IAAUp/F,OAAOic,MAAMjc,OAAOo/F,GACvD,CA4B0EkoU,CAAYN,EAAgB5nU,KAC9FmoU,EDjDO,SAAoBR,EAAU5vF,GAC3C,MAAOqwF,EAAaC,GAAkB96M,EAAAA,SAAe,GAC/C+6M,EAAkB/6M,EAAAA,OAAa,MAC/BzzE,EAAqB,SAAZi+L,EAqBf,OApBAxqH,EAAAA,WAAgB,KACVzzE,GAAU6tR,IACZU,EAAe,GACfC,EAAgB3oY,QAAUmvG,aAAY,KACpCu5R,GAAe/xY,IACb,MAAMiyY,EAAU,IAAMjyY,EACtB,IAAK,IAAI17B,EAAI,EAAGA,EAAI4sa,GAAa3sa,OAAQD,GAAK,EAAG,CAC/C,MAAOwsG,EAAOohU,GAAWhB,GAAa5sa,GACtC,GAAI07B,GAAQ8wE,EACV,OAAO9wE,EAAOiyY,EAAUC,CAE5B,CACA,OAAOlyY,CAAI,GACX,GAnBY,MAsBX,KACL24G,cAAcq5R,EAAgB3oY,QAAQ,IAEvC,CAACm6G,EAAQ6tR,IACL7tR,EAASsuR,EAAcrwF,CAChC,CCwBwB0wF,CAAWd,EAAU5vF,GAC3CxqH,EAAAA,WAAgB,KACd,GAAIq6M,EAAgB,CAClB,MAAMc,EAAe/pU,GAASqB,GAAO,KACnCioU,GAAY,EAAK,IAGnB,OADAS,IACO,KACL,IAAI1yY,EACuF,QAA1FA,EAAsB,OAAjB0yY,QAA0C,IAAjBA,OAA0B,EAASA,EAAa5oU,cAA2B,IAAP9pE,GAAyBA,EAAGv8B,KAAKiva,EAAa,CAErJ,CACAT,GAAY,EAAM,GACjB,CAACjoU,EAAO4nU,IACX,MAAMe,EAAkBp7M,EAAAA,SAAc,IAA0B,qBAAb1vK,IAA6BkqX,GAAY,CAAClqX,EAAUkqX,IAKvG,MAAMa,EAAgB17M,KAAW8lB,EAAW+C,EAAkB,CAC5D,CAAC,GAAG/C,QAA0B,UAATj3N,EACrB,CAAC,GAAGi3N,QAA0B,UAATj3N,EACrB,CAAC,GAAGi3N,cAAuB20L,EAC3B,CAAC,GAAG30L,iBAA0B60L,EAC9B,CAAC,GAAG70L,SAAgC,QAAd77G,GACrBl2H,GAAY8ma,GAAcp2J,EAAekV,EAAQ8nB,GAC9Ck6H,EAAqB37M,KAAW,GAAG8lB,cAAuB,CAC9D,CAAC,GAAGA,UAAmB20L,IAEnBmB,EAAuG,QAApF9yY,EAAmB,OAAdw3T,QAAoC,IAAdA,EAAuBA,EAAYw6E,SAAqC,IAAPhyY,EAAgBA,EAAKyxY,GACpIvwK,EAAcx3P,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg0T,GAAe93T,GAC7D+pa,EAA2Bx7M,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CAAC,EAAG0wO,EAAW,CACvFx0O,MAAOk4P,EACPj2P,UAAW2na,EACX,YAAa,SACb,YAAajB,IACEp6M,EAAAA,cAAoBs5M,GAAW,CAC9C7zL,UAAWA,EACXw6G,UAAWs7E,EACX/wF,QAASowF,IACPN,IAAQc,GAAmBZ,GAA4Bx6M,EAAAA,cAAoB,MAAO,CACpFtsN,UAAW,GAAG+xO,UACb60L,GAAQ,MACX,OACSn5H,EADLi6H,EAC6Bp7M,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CAAC,EAAG0wO,EAAW,CACrFvyO,UAAWisN,KAAW,GAAG8lB,mBAA4B80L,EAAkBjhJ,EAAQ8nB,KAC7Eg5H,GAAyBp6M,EAAAA,cAAoB,MAAO,CACtD/uN,IAAK,WACJuqa,GAA2Bx7M,EAAAA,cAAoB,MAAO,CACvDtsN,UAAW4na,EACXrqa,IAAK,aACJq/C,IAEDkqX,EAC6Bx6M,EAAAA,cAAoB,MAAO,CACxDtsN,UAAWisN,KAAW,GAAG8lB,eAAwB,CAC/C,CAAC,GAAGA,qBAA8B20L,GACjCh2J,EAAekV,EAAQ8nB,IACzBo6H,GAEaA,EAAY,EAEhCrB,GAAKsB,oBAAsBx7E,IACzBi6E,GAAmBj6E,CAAS,EAK9B,YCvHavqC,GAA2B11F,EAAAA,cAAoB,CAAC,GACjC01F,GAAYryM,SCAxC,IAAIy0L,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAMA,SAAS67Y,GAAU7pX,GACjB,MAAoB,kBAATA,EACF,GAAGA,KAAQA,SAEhB,6BAA6B1oC,KAAK0oC,GAC7B,OAAOA,IAETA,CACT,CACA,MAAM8pX,GAAQ,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,OAoF7C,SAnFyB37M,EAAAA,YAAiB,CAACh8K,EAAON,KAChD,MAAM,aACJuxO,EAAY,UACZrrJ,GACEo2F,EAAAA,WAAiBg1D,KACf,OACJitH,EAAM,KACNvsX,GACEsqM,EAAAA,WAAiB+iL,KAEjBt9J,UAAW2vC,EAAkB,KAC7B7nI,EAAI,MACJ16F,EAAK,OACLoU,EAAM,KACNj5D,EAAI,KACJwhG,EAAI,UACJ97F,EAAS,SACT48C,EAAQ,KACRuB,EAAI,MACJpgD,GACEuyC,EACJ49Q,EAAS9pB,GAAO9zP,EAAO,CAAC,YAAa,OAAQ,QAAS,SAAU,OAAQ,OAAQ,YAAa,WAAY,OAAQ,UAC7GyhM,EAAYwvC,EAAa,MAAOG,IAC/B+rB,EAAY7nB,EAAQ8nB,GAAausD,GAAYloH,GAE9C0zG,EAAY,CAAC,EACnB,IAAIyiF,EAAe,CAAC,EACpBD,GAAM1ua,SAAQuhB,IACZ,IAAIqtZ,EAAY,CAAC,EACjB,MAAMC,EAAW93X,EAAMx1B,GACC,kBAAbstZ,EACTD,EAAUtuR,KAAOuuR,EACY,kBAAbA,IAChBD,EAAYC,GAAY,CAAC,UAEpBl6G,EAAOpzS,GACdotZ,EAAezpa,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGqma,GAAe,CAC5D,CAAC,GAAGn2L,KAAaj3N,KAAQqtZ,EAAUtuR,aAA4Bn0I,IAAnByia,EAAUtuR,KACtD,CAAC,GAAGk4F,KAAaj3N,WAAcqtZ,EAAUhpX,SAAUgpX,EAAUhpX,OAA6B,IAApBgpX,EAAUhpX,MAChF,CAAC,GAAG4yL,KAAaj3N,YAAeqtZ,EAAU50W,UAAW40W,EAAU50W,QAA+B,IAArB40W,EAAU50W,OACnF,CAAC,GAAGw+K,KAAaj3N,UAAaqtZ,EAAU7ta,QAAS6ta,EAAU7ta,MAA2B,IAAnB6ta,EAAU7ta,KAC7E,CAAC,GAAGy3O,KAAaj3N,UAAaqtZ,EAAUrsU,QAASqsU,EAAUrsU,MAA2B,IAAnBqsU,EAAUrsU,KAC7E,CAAC,GAAGi2I,SAAgC,QAAd77G,IAGpBiyS,EAAUhqX,OACZ+pX,EAAa,GAAGn2L,KAAaj3N,WAAe,EAC5C2qU,EAAU,KAAK1zG,KAAaj3N,UAAektZ,GAAUG,EAAUhqX,MACjE,IAGF,MAAM+tK,EAAUD,KAAW8lB,EAAW,CACpC,CAAC,GAAGA,KAAal4F,UAAkBn0I,IAATm0I,EAC1B,CAAC,GAAGk4F,WAAmB5yL,KAAUA,EACjC,CAAC,GAAG4yL,YAAoBx+K,KAAWA,EACnC,CAAC,GAAGw+K,UAAkBz3O,KAASA,EAC/B,CAAC,GAAGy3O,UAAkBj2I,KAASA,GAC9B97F,EAAWkoa,EAActiJ,EAAQ8nB,GAC9Bz3C,EAAc,CAAC,EAErB,GAAIs4I,GAAUA,EAAO,GAAK,EAAG,CAC3B,MAAMU,EAAmBV,EAAO,GAAK,EACrCt4I,EAAY77N,YAAc60W,EAC1Bh5I,EAAY/7N,aAAe+0W,CAC7B,CAUA,OATI9wV,IACF83M,EAAY93M,KAAO6pX,GAAU7pX,IAGhB,IAATn8B,GAAmBi0O,EAAY1xN,WACjC0xN,EAAY1xN,SAAW,IAIpBkpQ,EAAwBnhF,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CAAC,EAAGqsT,EAAQ,CAClFnwT,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGo0P,GAAcl4P,GAAQ0nV,GAC3EzlV,UAAWksN,EACXl8K,IAAKA,IACH4M,GAAU,ICrGhB,IAAIwnP,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAOO,MA0GD4mN,GA/E4BzmB,EAAAA,YAAiB,CAACh8K,EAAON,KACzD,MACI+hM,UAAW2vC,EAAkB,SAC7B9kO,EAAQ,QACRs2C,EAAO,MACP+f,EAAK,OACL1+E,EAAM,UACNv0B,EACAisN,WAAYo8M,EAAmB,SAC/BC,GACEh4X,EACJ49Q,EAAS9pB,GAAO9zP,EAAO,CAAC,YAAa,WAAY,UAAW,QAAS,SAAU,YAAa,aAAc,cACtG,KACJrX,EAAI,WACJsvY,IACE/iW,EAAAA,EAAAA,YAAWw8O,KACT,aACJzgC,EAAY,KACZroB,IACE1zL,EAAAA,EAAAA,YAAW87M,IACTknJ,EAAcC,IAClB,IAAI1zY,EAAIC,EACR,OAAOi3L,KAAsI,QAA1Hj3L,EAAsE,QAAhED,EAAc,OAATmkO,QAA0B,IAATA,OAAkB,EAASA,EAAKvuN,YAAyB,IAAP5V,OAAgB,EAASA,EAAGk3L,kBAA+B,IAAPj3L,OAAgB,EAASA,EAAGyzY,GAAqC,OAAxBJ,QAAwD,IAAxBA,OAAiC,EAASA,EAAoBI,GAAY,EAEpSC,EAAcD,IAClB,IAAI1zY,EAAIC,EACR,OAAOv2B,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAA0H,QAAtHmzB,EAAsE,QAAhED,EAAc,OAATmkO,QAA0B,IAATA,OAAkB,EAASA,EAAKvuN,YAAyB,IAAP5V,OAAgB,EAASA,EAAGR,cAA2B,IAAPS,OAAgB,EAASA,EAAGyzY,IAAyB,OAAXl0Y,QAA8B,IAAXA,OAAoB,EAASA,EAAOk0Y,GAAY,EAiB/Q12L,EAAYwvC,EAAa,OAAQG,GACjCinJ,EAAiBz1U,GAAWA,EAAQt5F,OAAS,GAAmB0yN,EAAAA,cAAoB,KAAM,CAC9FtsN,UAAWisN,KAAW,GAAG8lB,gBAAyBy2L,EAAY,YAC9Djra,IAAK,UACLQ,MAAO2qa,EAAY,YAClBx1U,EAAQptF,KAAI,CAAC88D,EAAQjpE,IAGxB2yN,EAAAA,cAAoB,KAAM,CACxB/uN,IAAK,GAAGw0O,iBAAyBp4O,KAChCipE,EAAQjpE,IAAMu5F,EAAQt5F,OAAS,GAAkB0yN,EAAAA,cAAoB,KAAM,CAC5EtsN,UAAW,GAAG+xO,4BAEV1gE,EAAUp4I,EAAO,MAAQ,KACzB2vY,EAA4Bt8M,EAAAA,cAAoBj7C,EAAS5yK,OAAOoD,OAAO,CAAC,EAAGqsT,EAASj1R,EAEtF,CAAC,EAF4F,CAC/F+W,OACM,CACNhwC,UAAWisN,KAAW,GAAG8lB,SAAkB,CACzC,CAAC,GAAGA,oBAvBa,aAAfw2L,EACOt1T,GAXgC41T,MAC3C,IAAIn/Z,GAAS,EAMb,OALAolG,EAAAA,SAASv1G,QAAQqjD,GAAUvkB,IACF,kBAAZA,IACT3uB,GAAS,EACX,IAEKA,GAAUolG,EAAAA,SAASriE,MAAMmQ,GAAY,CAAC,EAMrCisX,KAqBL7oa,KACc,aAAfuoa,GAA6Bt1T,EAAQ,CAAcq5G,EAAAA,cAAoB,MAAO,CAChFtsN,UAAW,GAAG+xO,cACdx0O,IAAK,WACJq/C,EAAU+rX,GAA8Br8M,EAAAA,cAAoB,MAAO,CACpEtsN,UAAWisN,KAAW,GAAG8lB,eAAwBy2L,EAAY,UAC7Djra,IAAK,QACLQ,MAAO2qa,EAAY,UAClBz1T,IAAU,CAACr2D,EAAU+rX,EAAgBr5T,GAAa2D,EAAO,CAC1D11G,IAAK,YAEP,OAAO07B,EAAqBqzL,EAAAA,cAAoBw8M,GAAK,CACnD94X,IAAKA,EACLmO,KAAM,EACNpgD,MAAOuqa,GACNM,GAAiBA,CAAY,IAGlC71L,GAAKpkL,KA3Ge55B,IAClB,IACIg9M,UAAW2vC,EAAkB,UAC7B1hR,EAAS,OACT2sU,EAAM,MACNnoS,EAAK,YACLnkB,GACE0U,EACJm5R,EAAS9pB,GAAOrvQ,EAAI,CAAC,YAAa,YAAa,SAAU,QAAS,gBACpE,MAAM,aACJwsP,IACE/7M,EAAAA,EAAAA,YAAW87M,IACTvvC,EAAYwvC,EAAa,OAAQG,GACjCnB,EAAct0D,KAAW,GAAG8lB,cAAuB/xO,GACnDkX,EAAuBo1M,EAAAA,cAAoB,MAAO,CACtDtsN,UAAW,GAAG+xO,uBACbvtM,GAAsB8nL,EAAAA,cAAoB,KAAM,CACjDtsN,UAAW,GAAG+xO,qBACbvtM,GAAQnkB,GAA4BisM,EAAAA,cAAoB,MAAO,CAChEtsN,UAAW,GAAG+xO,2BACb1xN,IACH,OAAoBisM,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CAAC,EAAGqsT,EAAQ,CACvEluT,UAAWugR,IACTosD,GAAuBrgH,EAAAA,cAAoB,MAAO,CACpDtsN,UAAW,GAAG+xO,sBACb46F,IAAUnoS,GAASnkB,IAAgBnJ,EAAQ,EAmFhD,YCzHMmrZ,GAAmBjhT,IACvB,MAAM,gBACJ2nT,EAAe,aACfpzI,EAAY,UACZoR,EAAS,OACT1sS,EAAM,cACN2ua,EAAa,cACbC,EAAa,SACbthI,EAAQ,eACRzM,GACE95K,EACJ,MAAO,CACL,CAAC2nT,GAAkB,CACjBx7R,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMm9K,cAC5DzE,aAAcoB,EACd,CAAC,GAAGvF,YAAuBA,YAAuBA,UAAsB,CACtEqV,cAAejE,GAEjB,CAAC,GAAGpR,gBAA4B,CAC9Bt7R,OAAQ,GAAGoB,GAAKpB,MAAWoB,GAAKksS,OAGpC,CAAC,GAAGohI,IAAkBpzI,QAAoB,CACxC,CAAC,GAAGA,UAAqBA,YAAuBA,YAAwB,CACtE37P,QAASgvY,IAGb,CAAC,GAAGD,IAAkBpzI,QAAoB,CACxC,CAAC,GAAGA,UAAqBA,YAAuBA,YAAwB,CACtE37P,QAASivY,IAGd,EAEGC,GAAqB9nT,IACzB,MAAM,aACJu0K,EAAY,SACZwS,EAAQ,SACRG,EAAQ,SACRX,EAAQ,SACRF,EAAQ,OACRptS,GACE+mH,EACJ,MAAO,CACL,CAAC,gCAAgCknL,QAAgB,CAC/C,CAAC3S,GAAe,CACd,CAAC,GAAGA,UAAsB,CACxB,CAAC,GAAGA,iBAA6B,CAC/BmmC,kBAAmBn0B,KAIzB,CAAC,GAAGhS,cAA0B,CAC5B,CAAC,GAAGA,UAAsB,CACxB,CAAC,GAAGA,gBAA4B,CAC9BmmC,kBAAmBn0B,MAK3B,CAAC,iCAAiCQ,QAAgB,CAChD,CAACxS,GAAe,CACd,CAAC,GAAGA,UAAsB,CACxBwrD,SAAU,OACV,CAAC,GAAGxrD,YAAwB,CAC1BmmC,kBAAmBr0B,KAIzB,CAAC,GAAG9R,cAA0B,CAC5B,CAAC,GAAGA,UAAsB,CACxBwrD,SAAU,eACV,CAAC,GAAGxrD,eAA2B,CAC7BpxP,SAAU68E,EAAM/8E,cAElB,CAAC,GAAGsxP,gBAA4B,CAC9Bt7R,OAAQ,aAAaoB,GAAKpB,SAKnC,EAGGu2U,GAAexvN,IACnB,MAAM,aACJu0K,EAAY,OACZG,EAAM,cACNoE,EAAa,UACbj+B,EAAS,UACT4qC,EAAS,SACTc,EAAQ,QACR3tQ,EAAO,YACPmvY,EAAW,aACXxwI,EAAY,cACZqwI,EAAa,cACbC,EAAa,UACbriI,EAAS,OACTvsS,EAAM,UACNi9R,EAAS,qBACT+N,EAAoB,mBACpB1N,EAAkB,UAClBhhQ,EAAS,SACTk0Q,EAAQ,SACRN,EAAQ,iBACR6+H,EAAgB,iBAChBC,EAAgB,kBAChBC,EAAiB,kBACjBpjF,EAAiB,oBACjBqjF,GACEnoT,EACJ,MAAO,CACL,CAACu0K,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACtEt9G,SAAU,WACV,IAAK,CACHoqM,QAAS,QAEX,CAAC,GAAGynF,YAAwB,CAC1B1hK,WAAY42K,GAEd,CAAC,GAAGlV,YAAwB,CAC1B1hK,WAAYs2K,GAEd,CAAC,GAAG5U,aAAwBA,YAAwB,CAClDm7C,aAAcjqC,GAEhB,CAAC,GAAGlR,gBAA4B,CAC9BghE,iBAAkBhvD,EAElB,CAAC,GAAG7R,wBAA8B,CAChC36P,UAAW,UAGf,CAAC,GAAGw6P,UAAsB,CACxB15B,YACA9gO,UAAW,UAEb,CAAC,GAAGw6P,WAAuB,CACzBt7R,OAAQ,EACR2/B,QAAS,EACTu9P,UAAW,QAEb,CAAC,GAAG5B,UAAsB,CACxB12R,QAAS,OACTs5R,WAAY,SACZyT,eAAgB,gBAChBhyQ,QAASmvY,EACTzvY,MAAO49P,EACP,CAAC,GAAG3B,eAA2B,CAC7B12R,QAAS,OACTk/C,KAAM,EACNo6O,WAAY,aACZ/hQ,SAAU,OACV,CAAC,GAAGm/P,sBAAkC,CACpComC,gBAAiButG,GAEnB,CAAC,GAAG3zI,uBAAmC,CACrCx3O,KAAM,MACNzjD,MAAO,EACPg/B,MAAO49P,GAET,CAAC,GAAG3B,qBAAiC,CACnCt7R,OAAQ,OAAOoB,GAAK2lH,EAAMmmL,eAC1B7tQ,MAAO49P,EACPzhQ,SAAUurF,EAAMvrF,SAChBE,WAAYqrF,EAAMrrF,WAClB,MAAO,CACL2D,MAAO49P,EACPtuO,WAAY,OAAO2uO,IACnB,UAAW,CACTj+P,MAAOi/P,KAIb,CAAC,GAAGhD,2BAAuC,CACzCj8P,MAAO2rQ,EACPxvQ,SAAU0zY,EACVxzY,WAAYqrF,EAAMrrF,aAGtB,CAAC,GAAG4/P,iBAA6B,CAC/Bx3O,KAAM,WACN29Q,kBAAmB16M,EAAMymL,UACzB7tQ,QAAS,EACTnE,SAAU,EACV0hQ,UAAW,OACX,SAAU,CACRzzR,SAAU,WACV7E,QAAS,eACT+6B,QAAS,KAAKv+B,GAAKmrS,KACnBltQ,MAAO2rQ,EACPxvQ,SAAUurF,EAAMvrF,SAChBE,WAAYqrF,EAAMrrF,WAClBoF,UAAW,SACX,gBAAiB,CACfugS,mBAAoB,IAGxB,CAAC,GAAG/lC,uBAAmC,CACrC7xR,SAAU,WACVq7X,gBAAiB,MACjBpzF,eAAgB,EAChBrxS,MAAOi8B,EACPv8B,OAAQgnH,EAAMq6J,KAAKr6J,EAAMo7K,YAAYnsE,IAAIjvG,EAAMq6J,KAAKr6J,EAAMmmL,WAAWz2E,IAAI,IAAIp/C,QAC7E15F,UAAW,mBACX9zE,gBAAiBk9G,EAAM6jL,cAI7B,CAAC,GAAGtP,WAAuB,CACzB37P,QAAS,GAAGv+B,GAAKu+B,OACjBN,MAAO2rQ,EACPxvQ,SAAUurF,EAAM06K,WAChB3gQ,UAAW,UAEb,CAAC,GAAGw6P,gBAA4B,CAC9B37P,QAASovY,EACT1vY,MAAO0nF,EAAM42K,kBACbniQ,SAAUurF,EAAMvrF,SAChBsF,UAAW,UAGb,CAAC,GAAGw6P,kBAA8B,CAChC12R,QAAS,WAGb,CAAC,GAAG02R,UAAqBG,WAAgBH,UAAsB,CAC7D12R,QAAS,QACTu3B,SAAU,OACVgzY,eAAgBnva,EAChBy2U,aAAc,EACd24F,eAAgB,QAElB,CAAC,GAAG9zI,cAAyBA,UAAsB,CACjD4C,WAAY,UACZ,CAAC,GAAG5C,eAA2B,CAC7B12R,QAAS,QACTk/C,KAAM,GAER,CAAC,GAAGw3O,gBAA4B,CAC9BmmC,kBAAmBn0B,GAErB,CAAC,GAAGhS,eAA2B,CAC7B6zI,eAAgBH,EAChB,CAAC,GAAG1zI,qBAAiC,CACnCghE,iBAAkB,EAClB6yE,eAAgBtjF,EAChBxsT,MAAO49P,EACPzhQ,SAAUurF,EAAM26K,WAChBhmQ,WAAYqrF,EAAM66K,eAGtB,CAAC,GAAGtG,iBAA6B,CAC/BghE,iBAAkB38T,EAClB8hS,kBAAmB,OACnB,OAAQ,CACN9hS,QAAS,KAAKv+B,GAAKu+B,KACnB,gBAAiB,CACf0hS,mBAAoB,MAK5B,CAAC,GAAG/lC,WAAsBA,UAAsB,CAC9C8zI,eAAgB,GAAGhua,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAM6jL,aACpE,eAAgB,CACdwkI,eAAgB,SAGpB,CAAC,GAAG9zI,WAAsBA,YAAwB,CAChD8zI,eAAgB,GAAGhua,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAM6jL,cAEtE,CAAC,GAAGtP,UAAqBA,WAAsBA,YAAwB,CACrEgmE,UAAW,GAAGlgW,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAM6jL,cAEjE,CAAC,GAAGtP,aAAwBA,yBAAqC,CAC/D15B,UAAWi+B,GAEb,CAAC,GAAGvE,UAAqBA,+BAA0CG,sBAA2BH,aAAwBA,qBAAiC,CACrJ8zI,eAAgB,GAAGhua,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAM6jL,cAEtE,CAAC,GAAGtP,QAAmBA,UAAsB,CAC3C37P,QAASivY,GAEX,CAAC,GAAGtzI,QAAmBA,UAAsB,CAC3C37P,QAASgvY,GAGX,CAAC,GAAGrzI,SAAoBA,eAA2B,CACjD,CAAC,GAAGA,kBAA8B,CAChC,CAAC,GAAGA,iBAA6B,CAC/Bt/J,MAAO,WAId,EAgBH,GAAe8/J,GAAc,QAAQ/0K,IACnC,MAAMsoT,EAAYt2I,GAAWhyK,EAAO,CAClC2nT,gBAAiB,GAAG3nT,EAAMu0K,wBAC1B15B,UAAW76I,EAAMk6K,kBAEnB,MAAO,CAACs1C,GAAa84F,GAAYrH,GAAiBqH,GAAYR,GAAmBQ,GAAW,IAnBzDtoT,IAAS,CAC5C/8E,aAAc,IACd8kY,YAAa,GAAG1ta,GAAK2lH,EAAMgmL,4BAC3B4hI,cAAe,GAAGvta,GAAK2lH,EAAMkmL,6BAA6B7rS,GAAK2lH,EAAM+lL,4BACrE8hI,cAAe,GAAGxta,GAAK2lH,EAAM8lL,6BAA6BzrS,GAAK2lH,EAAM6lL,8BACrE4D,SAAU,cACVN,SAAU,cACV6+H,iBAAkBhoT,EAAMpnF,QACxBqvY,iBAAkBjoT,EAAMpnF,QACxBsvY,kBAAmBloT,EAAMpnF,QACzBksT,kBAAmB9kO,EAAMylL,UACzB0iI,oBAAqBnoT,EAAMvrF,aCpT7B,IAAIuuQ,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAgBA,SAASw9Y,GAAa50Y,EAAIib,GACxB,IAAI,WACAo8R,GAAa,EACbr6F,UAAW2vC,EAAkB,SAC7BkkH,GAAW,EAAK,MAChBh0X,GAAQ,EAAI,UACZ5R,EAAS,cACT0wQ,EAAa,MACb3yQ,EAAK,SACL6+C,EAAQ,WACR2rX,EAAU,SACVqB,EAAQ,KACR3wY,EAAI,WACJ4wY,EAAa,GACb/uZ,KAAMyiU,EAAa,OACnBj3S,EAAM,OACNC,EAAM,QACNkkG,GAAU,EAAK,OACfq/R,EAAM,WACN73L,EAAU,OACVxlN,GACEsI,EACJ8wE,EAAOu+L,GAAOrvQ,EAAI,CAAC,aAAc,YAAa,WAAY,QAAS,YAAa,gBAAiB,QAAS,WAAY,aAAc,WAAY,OAAQ,aAAc,OAAQ,SAAU,SAAU,UAAW,SAAU,aAAc,WACvO,MAAMg1Y,EAAgB39F,GAAoC,kBAAfA,EAA0BA,EAAa,CAAC,GAC5E49F,EAAmBC,GAAwB39M,EAAAA,SAAey9M,EAAcx4B,gBAAkB,IAC1F24B,EAAgBC,GAAqB79M,EAAAA,SAAey9M,EAAcp4B,iBAAmB,KACtF,aACJpwH,EAAY,UACZrrJ,EACAl2H,UAAW80O,EACX/2O,MAAO83T,GACL/zC,GAAmB,SACjB,YACJm+I,GACE3zM,EAAAA,WAAiBg1D,IAKf8oJ,EAAyBl6K,GAAa,CAACl2P,EAAMZ,KACjD,IAAI27B,EACJk1Y,EAAqBjwa,GACrBmwa,EAAkB/wa,GACdgzU,IACuF,QAAxFr3S,EAAoB,OAAfq3S,QAAsC,IAAfA,OAAwB,EAASA,EAAWl8E,UAA+B,IAAPn7N,GAAyBA,EAAGv8B,KAAK4zU,EAAYpyU,EAAMZ,GACtJ,EAEIixa,EAAqBD,EAAuB,YAC5CE,EAA6BF,EAAuB,oBAmBpDr4L,EAAYwvC,EAAa,OAAQG,IAEhC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GACjD,IAAIw4L,EAAc9/R,EACS,mBAAhB8/R,IACTA,EAAc,CACZ7D,SAAU6D,IAGd,MAAMC,KAA+B,OAAhBD,QAAwC,IAAhBA,OAAyB,EAASA,EAAY7D,UAI3F,IAAIpyF,EAAU,GACd,OAJmBjmB,GAAQkvB,IAKzB,IAAK,QACHjJ,EAAU,KACV,MACF,IAAK,QACHA,EAAU,KAKd,MAAM/zD,EAAct0D,KAAW8lB,EAAW,CACxC,CAAC,GAAGA,cAAsC,aAAfw2L,EAC3B,CAAC,GAAGx2L,KAAauiG,KAAYA,EAC7B,CAAC,GAAGviG,WAAoBngO,EACxB,CAAC,GAAGmgO,cAAuB6zJ,EAC3B,CAAC,GAAG7zJ,aAAsBy4L,EAC1B,CAAC,GAAGz4L,YAAqB94M,EACzB,CAAC,GAAG84M,kCAhCoC63L,GAAYx9F,GAAc7lS,GAiClE,CAAC,GAAGwrM,SAAgC,QAAd77G,GACrB4+G,EAAkB90O,EAAW0wQ,EAAekV,EAAQ8nB,GACjD+8H,EAAkBC,GAlEO,CAC7BhsY,QAAS,EACTiF,MAAO,GAgEqD,CAC5DA,MAAOkmY,EAAWjwa,OAClB8kC,QAASsrY,EACT5wa,SAAU8wa,GACT99F,GAAc,CAAC,GACZu+F,EAAc1wa,KAAK6K,KAAK2la,EAAgB9mY,MAAQ8mY,EAAgBrxa,UAClEqxa,EAAgB/rY,QAAUisY,IAC5BF,EAAgB/rY,QAAUisY,GAE5B,MAAMC,EAAoBx+F,GAA4B9/G,EAAAA,cAAoB,MAAO,CAC/EtsN,UAAWisN,KAAW,GAAG8lB,iBACXzlB,EAAAA,cAAoBq4G,GAAYlmU,OAAOoD,OAAO,CAC5D40B,MAAO,OACNg0Y,EAAiB,CAClBhxL,SAAU4wL,EACVj4B,iBAAkBk4B,MAEpB,IAAIO,EAAkBpvL,GAAmBouL,GACrCz9F,GACEy9F,EAAWjwa,QAAU6wa,EAAgB/rY,QAAU,GAAK+rY,EAAgBrxa,WACtEyxa,EAAkBpvL,GAAmBouL,GAAYjhY,QAAQ6hY,EAAgB/rY,QAAU,GAAK+rY,EAAgBrxa,SAAUqxa,EAAgBrxa,WAGtI,MAAM8rV,EAAiBzmV,OAAOC,KAAKu6B,GAAQ,CAAC,GAAGpvB,MAAKtM,GAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,OAAOqL,SAASrL,KACpGmlV,EAAUyC,GAAcD,GACxBG,EAAoB/4H,EAAAA,SAAc,KACtC,IAAK,IAAI3yN,EAAI,EAAGA,EAAIkoV,GAAgBjoV,OAAQD,GAAK,EAAG,CAClD,MAAMqzS,EAAa60C,GAAgBloV,GACnC,GAAI+oV,EAAQ11C,GACV,OAAOA,CAEX,CACgB,GACf,CAAC01C,IACE4lF,EAAWh8M,EAAAA,SAAc,KAC7B,IAAKrzL,EACH,OAEF,MAAMilB,EAAcmnS,GAAqBpsT,EAAKosT,GAAqBpsT,EAAKosT,GAAqBpsT,EAAKhG,OAClG,OAAIirB,EACK,CACLxjD,MAAU,IAAMwjD,EAAT,IACP1nB,SAAa,IAAM0nB,EAAT,UAHd,CAKA,GACC,CAACl8C,KAAKE,UAAU+2B,GAAOosT,IAC1B,IAAIylF,EAAkBN,GAA0Bl+M,EAAAA,cAAoB,MAAO,CACzEvuN,MAAO,CACLk+P,UAAW,MAGf,GAAI4uK,EAAgBjxa,OAAS,EAAG,CAC9B,MAAMs+O,EAAQ2yL,EAAgB/ka,KAAI,CAAC6kC,EAAMhiC,IAxGnBoia,EAACpgY,EAAMhiC,KAC7B,IAAKspO,EAAY,OAAO,KACxB,IAAI10O,EAWJ,OATEA,EADoB,oBAAXusa,EACHA,EAAOn/X,GACJm/X,EACHn/X,EAAKm/X,GAELn/X,EAAKptC,IAERA,IACHA,EAAM,aAAaoL,KAED2jN,EAAAA,cAAoBA,EAAAA,SAAgB,CACtD/uN,IAAKA,GACJ00O,EAAWtnM,EAAMhiC,GAAO,EAyFwBoia,CAAgBpgY,EAAMhiC,KACzEmia,EAAkB7xY,EAAqBqzL,EAAAA,cAAoBzpL,GAAK,CAC9D0rW,OAAQt1W,EAAKs1W,QACZjiL,EAAAA,SAAexmN,IAAIoyO,GAAOx3O,GAAuB4rN,EAAAA,cAAoB,MAAO,CAC7E/uN,IAAe,OAAVmD,QAA4B,IAAVA,OAAmB,EAASA,EAAMnD,IACzDQ,MAAOuqa,GACN5na,MAA2B4rN,EAAAA,cAAoB,KAAM,CACtDtsN,UAAW,GAAG+xO,WACbmG,EACL,MAAYt7L,GAAa4tX,IACvBM,EAA+Bx+M,EAAAA,cAAoB,MAAO,CACxDtsN,UAAW,GAAG+xO,iBACD,OAAXtlN,QAA8B,IAAXA,OAAoB,EAASA,EAAO24S,aAA+B,OAAhB66F,QAAwC,IAAhBA,OAAyB,EAASA,EAAY,UAAyB3zM,EAAAA,cAAoBm0M,GAAoB,CAC/M1uX,cAAe,WAGnB,MAAMi5X,EAAqBP,EAAgB3ma,UAAY,SACjD4qS,GAAepiF,EAAAA,SAAc,KAAM,CACvCrzL,OACAsvY,gBACE,CAACvma,KAAKE,UAAU+2B,GAAOsvY,IAC3B,OAAO96H,EAAwBnhF,EAAAA,cAAoB01F,GAAYtyM,SAAU,CACvEr4G,MAAOq3S,IACOpiF,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CACvDmuC,IAAKA,EACLjyC,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg0T,GAAe93T,GACtDiC,UAAWugR,GACV16K,IAA+B,QAAvBmlU,GAAuD,SAAvBA,IAAkCJ,EAAmBtkY,GAAuBgmL,EAAAA,cAAoB,MAAO,CAChJtsN,UAAW,GAAG+xO,YACbzrM,GAAsBgmL,EAAAA,cAAoBm6M,GAAMhoa,OAAOoD,OAAO,CAAC,EAAG0oa,GAAcO,EAAiBluX,GAAWrW,GAAuB+lL,EAAAA,cAAoB,MAAO,CAC/JtsN,UAAW,GAAG+xO,YACbxrM,GAASqjY,IAAoC,WAAvBoB,GAA0D,SAAvBA,IAAkCJ,IAChG,CAKA,MAAMj/G,GAJkCr/F,EAAAA,WAAiBq9M,IAKzDh+G,GAAK54E,KAAOA,GACZ,YCtNM8+I,GAAergX,iCAGRy5Z,GAAa/5D,GAAiB,uBAAuBljK,gBACzCshL,GAAMrzM,KAAK,GAAG41M,0BAAqCq5C,IAC1Dl2Z,OAMLm2Z,GAAgBj6D,GAAiB,0BAA0BljK,UACtE,MAAM,UAAEo9N,KAAcC,GAAaH,EAYnC,aAVuB57C,GAAMrzM,KAC3B,sDAAsDmvP,IACtDC,EACA,CACE7tD,QAAS,CACP,OAAU,aACV,eAAgB,uBAINxoW,IAAI,IAITs2Z,GAAqBp6D,GAChC,+BACAljK,UAAqC,IAA9B,UAAEijL,EAAS,UAAEs6C,GAAW7nR,EAC7B,MAAMo3N,EAAW,IAAIpC,SACrBoC,EAAS1tH,OAAO,YAAa6jI,GAC7BnW,EAAS1tH,OAAO,YAAam+K,GAQ7B,aANuBj8C,GAAMrzM,KAAK,GAAG41M,gCAA2C/W,EAAU,CACxF0C,QAAS,CACP,eAAgB,0BAIJxoW,IAAI,IAKXw2Z,GAAmBt6D,GAC9B,6BACAljK,gBACyBshL,GAAMrpX,IAAI,GAAG4rX,2BAGV78W,KAGVsY,MAAK,CAAC3a,EAAGC,IAAM,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,iBAI3DC,GAAgBx6D,GAC3B,0BACAljK,UACE,IACE,MAGM29N,SAHiBr8C,GAAMrpX,IAAI,GAAG4rX,2BAGV78W,KAS1B,OANyB22Z,EACtB/ha,QAAO05V,GAA6B,GAAlBA,EAAQpuT,SAC1B5nB,MAAK,CAAC3a,EAAGC,IAAM,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,cAKzD,CAAE,MAAOnoa,GAEP,MADAuwB,QAAQvwB,MAAM,2BAA4BA,GACpCA,CACR,KAISsoa,GAAe16D,GAC1B,yBACAljK,UACE,IACE,MACM29N,SADiBr8C,GAAMrpX,IAAI,GAAG4rX,2BACV78W,KAQ1B,OALyB22Z,EACtB/ha,QAAO05V,GAA6B,GAAlBA,EAAQpuT,SAC1B5nB,MAAK,CAAC3a,EAAGC,IAAM,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,eACpDhua,MAAM,EAAG,GAGd,CAAE,MAAO6F,GAEP,MADAuwB,QAAQvwB,MAAM,2BAA4BA,GACpCA,CACR,KAGSuoa,GAAyB36D,GACpC,mCACAljK,MAAA74B,EAAA0jF,KAA+D,IAAxD,WAAEnmO,EAAU,SAAEt5B,EAAW,IAAI+7K,GAAE,gBAAEm9L,GAAiBz5G,EACvD,IACE,MAAM9jN,QAAiBu6U,GAAMrpX,IAC3B,GAAG4rX,mCACH,CACEz1J,OAAQ,CAAE0vM,WAAYp5Y,EAAYq5Y,SAAU3ya,KAQhD,OAHmB27C,EAAS//B,KAAKsY,MAAK,CAAC3a,EAAGC,IAAM,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,cAIvF,CAAE,MAAOnoa,GAIP,OAHAuwB,QAAQvwB,MAAM,qCAAsCA,GAG7CgvW,EAAgBhvW,EAAMyxC,SAAWzxC,EAAMyxC,SAAS//B,KAAO1R,EAAM2kE,QACtE,KAKS+jW,GAA0B96D,GACrC,oCACAljK,UAES,CAAEi+N,aAAYN,gBADEr8C,GAAMrpX,IAAI,GAAG4rX,sCAAgDo6C,MAC5Cj3Z,SAO/Bk3Z,GAAuBh7D,GAAiB,iCAAiCljK,gBAC7DshL,GAAMrpX,IAAI,GAAG4rX,mCAA6Cs6C,MACjEn3Z,KAAKsY,MAAK,CAAC3a,EAAGC,IAAM,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,iBAG9DW,GAA0Bl7D,GAAiB,oCAAoCljK,UAEnF,CAAEq+N,aAAYV,gBADEr8C,GAAMrpX,IAAI,GAAG4rX,sCAAgDw6C,MAC5Cr3Z,KAAKsY,MAAK,CAAC3a,EAAGC,IAAM,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,mBAItFa,GAAmBp7D,GAAiB,6BAA6BljK,gBACrDshL,GAAMrpX,IAAI,GAAG4rX,wCAAkDb,MACtEh8W,OAELu3Z,GAAsBr7D,GAAiB,gCAAgCljK,gBAC3DshL,GAAMrpX,IAAI,GAAG4rX,kCACpB78W,OAGLw3Z,GAAwBt7D,GAAiB,kCAAkCljK,gBAC/DshL,GAAMrpX,IAAI,GAAG4rX,6BACpB78W,OAGLy3Z,GAAkCv7D,GAC7C,4CACAljK,UAA2C,IAApC,aAAE0+N,EAAY,aAAEC,GAActoM,EACnC,IACE,MAAMtvL,QAAiBu6U,GAAMrpX,IAAI,GAAG4rX,kDAA6D,CAC/Fz1J,OAAQ,CACNwwM,aAAcF,EACdG,aAAcF,KASlB,MAAO,CAAED,eAAcf,SAJA52X,EAAS//B,KAAKsY,MAAK,CAAC3a,EAAGC,IAC5C,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,eAIzC,CAAE,MAAOnoa,GAEP,MADAuwB,QAAQvwB,MAAM,wDAAyDA,GACjEA,CACR,KAMEwpa,GAAeh2D,GAAY,CAC/BpwW,KAAM,WACNytW,aAAc,CACZw3D,SAAU,GACV7qY,YAAa,EACbisY,iBAAkB,GAClBC,mBAAoB,CAAC,EACrBC,mBAAoB,CAAC,EACrBC,eAAgB,KAChBziS,SAAS,EACTnnI,MAAO,MAETyjW,SAAU,CACRtsW,QAASA,CAACqI,EAAO8/D,KACf9/D,EAAMg+B,YAAc8hC,EAAO7C,OAAO,EAEpCotW,cAAgBrqa,IACdA,EAAM6oa,SAAW,GACjB7oa,EAAMiqa,iBAAmB,GACzBjqa,EAAMkqa,mBAAqB,CAAC,EAC5Blqa,EAAMoqa,eAAiB,KACvBpqa,EAAMQ,MAAQ,IAAI,EAGpB8pa,iBAAkBA,CAACtqa,EAAO8/D,KACxB,MAAM,QAAEupW,EAAO,SAAER,GAAa/oW,EAAO7C,QACrCj9D,EAAMuqa,cAAclB,GAAWR,CAAQ,EAGzC2B,cAAgBxqa,IACdA,EAAM6oa,SAAW,EAAE,GAGvB13D,cAAgB7D,IACdA,EACGC,QAAQ46D,GAAWxrW,SAAU38D,IAC5BA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQ46D,GAAW75T,WAAW,CAACtuG,EAAO8/D,KACrC9/D,EAAM2nI,SAAU,EAChB3nI,EAAM6oa,SAASrxa,KAAKsoE,EAAO7C,QAAQ,IAEpCswS,QAAQ46D,GAAW55T,UAAU,CAACvuG,EAAO8/D,KACpC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAEnCooS,QAAQ86D,GAAc1rW,SAAU38D,IAC/BA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQ86D,GAAc/5T,WAAW,CAACtuG,EAAO8/D,KACxC9/D,EAAM2nI,SAAU,EAChB,MAAM8iS,EAAiB3qW,EAAO7C,QAGxBp3D,EAAQ7F,EAAM6oa,SAAS3ha,WAAU2gC,GAAQA,EAAKygY,WAAamC,EAAet8C,aAEjE,IAAXtoX,IACF7F,EAAM6oa,SAAShja,GAAS4ka,EAC1B,IAGDl9D,QAAQ86D,GAAc95T,UAAU,CAACvuG,EAAO8/D,KACvC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAGnCooS,QAAQi7D,GAAmBl6T,WAAW,CAACtuG,EAAO8/D,KAC7C9/D,EAAM2nI,SAAU,EAChB,MAAM9hI,EAAQ7F,EAAM6oa,SAAS3ha,WAAU2gC,GAAQA,EAAKygY,YAAcxoW,EAAO7C,QAAQqrW,aAClE,IAAXzia,IACF7F,EAAM6oa,SAAShja,GAASi6D,EAAO7C,QACjC,IAEDswS,QAAQi7D,GAAmBj6T,UAAU,CAACvuG,EAAO8/D,KAC5C9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAEnCooS,QAAQq7D,GAAcjsW,SAAU38D,IAC/BA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQq7D,GAAct6T,WAAW,CAACtuG,EAAO8/D,KACxC9/D,EAAM2nI,SAAU,EAChB3nI,EAAM6oa,SAAW/oW,EAAO7C,OAAO,IAEhCswS,QAAQq7D,GAAcr6T,UAAU,CAACvuG,EAAO8/D,KACvC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAEnCooS,QAAQu7D,GAAansW,SAAU38D,IAC9BA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQu7D,GAAax6T,WAAW,CAACtuG,EAAO8/D,KACvC9/D,EAAM2nI,SAAU,EAChB3nI,EAAM6oa,SAAW/oW,EAAO7C,OAAO,IAEhCswS,QAAQu7D,GAAav6T,UAAU,CAACvuG,EAAO8/D,KACtC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAEnCooS,QAAQm7D,GAAiB/rW,SAAU38D,IAClCA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQm7D,GAAiBp6T,WAAW,CAACtuG,EAAO8/D,KAC3C9/D,EAAM2nI,SAAU,EAChB3nI,EAAM6oa,SAAW/oW,EAAO7C,OAAO,IAEhCswS,QAAQm7D,GAAiBn6T,UAAU,CAACvuG,EAAO8/D,KAC1C9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAEnCooS,QAAQ67D,GAAqBzsW,SAAU38D,IACtCA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQ67D,GAAqB96T,WAAW,CAACtuG,EAAO8/D,KAC/C9/D,EAAM2nI,SAAU,EAChB3nI,EAAM6oa,SAAW/oW,EAAO7C,OAAO,IAEhCswS,QAAQ67D,GAAqB76T,UAAU,CAACvuG,EAAO8/D,KAC9C9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAEnCooS,QAAQ27D,GAAwBvsW,SAAU38D,IACzCA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQ27D,GAAwB56T,WAAW,CAACtuG,EAAO8/D,KAClD9/D,EAAMmqa,mBAAmBrqW,EAAO7C,QAAQksW,YAAcrpW,EAAO7C,QAAQ4rW,SACrE7oa,EAAM2nI,SAAU,CAAK,IAEtB4lO,QAAQ27D,GAAwB36T,UAAU,CAACvuG,EAAO8/D,KACjD9/D,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,QAC3BnlE,EAAM2nI,SAAU,CAAK,IAGtB4lO,QAAQ+7D,GAAwB3sW,SAAU38D,IACzCA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQ+7D,GAAwBh7T,WAAW,CAACtuG,EAAO8/D,KAClD9/D,EAAM2nI,SAAU,EAChB,MAAM,WAAE4hS,EAAU,SAAEV,GAAa/oW,EAAO7C,QACxCj9D,EAAMkqa,mBAAmBX,GAAcV,CAAQ,IAEhDt7D,QAAQ+7D,GAAwB/6T,UAAU,CAACvuG,EAAO8/D,KACjD9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAEnCooS,QAAQi8D,GAAiB7sW,SAAU38D,IAClCA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQi8D,GAAiBl7T,WAAW,CAACtuG,EAAO8/D,KAC3C9/D,EAAM2nI,SAAU,EAChB3nI,EAAMoqa,eAAiBtqW,EAAO7C,OAAO,IAEtCswS,QAAQi8D,GAAiBj7T,UAAU,CAACvuG,EAAO8/D,KAC1C9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAEnCooS,QAAQw7D,GAAuBpsW,SAAU38D,IACxCA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQw7D,GAAuBz6T,WAAW,CAACtuG,EAAO8/D,KACjD9/D,EAAM2nI,SAAU,EAChB3nI,EAAM6oa,SAAW/oW,EAAO7C,OAAO,IAEhCswS,QAAQw7D,GAAuBx6T,UAAU,CAACvuG,EAAO8/D,KAChD9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAO7C,SAAW,0BAA0B,IAI3DswS,QAAQk8D,GAAoB9sW,SAAU38D,IACrCA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQk8D,GAAoBn7T,WAAW,CAACtuG,EAAO8/D,KAC9C9/D,EAAM2nI,SAAU,EAChB3nI,EAAM0qa,eAAiB5qW,EAAO7C,OAAO,IAEtCswS,QAAQk8D,GAAoBl7T,UAAU,CAACvuG,EAAO8/D,KAC7C9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAEnCooS,QAAQm8D,GAAsB/sW,SAAU38D,IACvCA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQm8D,GAAsBp7T,WAAW,CAACtuG,EAAO8/D,KAChD9/D,EAAM2nI,SAAU,EAChB3nI,EAAM2qa,iBAAmB7qW,EAAO7C,OAAO,IAExCswS,QAAQm8D,GAAsBn7T,UAAU,CAACvuG,EAAO8/D,KAC/C9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAGnCooS,QAAQo8D,GAAgChtW,SAAU38D,IACjDA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQo8D,GAAgCr7T,WAAW,CAACtuG,EAAO8/D,KAC1D,MAAM,aAAE8pW,EAAY,SAAEf,GAAa/oW,EAAO7C,QAC1Cj9D,EAAMkqa,mBAAmBN,GAAgBf,EACzC7oa,EAAM2nI,SAAU,CAAK,IAEtB4lO,QAAQo8D,GAAgCp7T,UAAU,CAACvuG,EAAO8/D,KACzD9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,GAClC,KAKOklW,cAAa,GAAEO,oBAAmB,GAAEN,iBAAgB,GAAG3ya,QAAO,GAAE6ya,cAAc,IAAIR,GAAa55U,QAC9G,GAAe45U,GAAoB,iCC7YnC,MAsIA,GApIoBppR,IAA2B,IAA1B,QAAE4uG,EAAO,QAAEi+F,GAAS7sM,EACvC,MAAM1gF,EAAW2hS,KACX7kI,EAAWR,MACVquM,EAAaC,IAAkB5nW,EAAAA,EAAAA,UAAS,KACzC,SAAE2lW,EAAW,GAAE,QAAElhS,GAAY26N,IAAatiW,GAAUA,EAAM6oa,YAGhElmW,EAAAA,EAAAA,YAAU,KACJ6sL,GAA+B,IAApBq5K,EAAS/xa,QACtBopE,EAAS0oW,KACX,GACC,CAAC1oW,EAAUsvL,EAASq5K,EAAS/xa,UAGhC6rE,EAAAA,EAAAA,YAAU,KACH6sL,GACHs7K,EAAe,GACjB,GACC,CAACt7K,IAGJ,MAAMu7K,GAAiBtoW,EAAAA,EAAAA,cACrBm4B,EAAAA,GAAAA,WAAUrmG,GAAUu2a,EAAev2a,IAAQ,KAC3C,IAUI01a,EAAmBY,EACrBhC,EACG/ha,QAAQ05V,GAA+B,IAAnBA,EAAQpuT,SAC5BtrC,QAAQ05V,IAAO,IAAAwqE,EAAA,OACK,QADLA,EACdxqE,EAAQyqE,mBAAW,IAAAD,OAAA,EAAnBA,EAAqBlya,cAAcgN,SAAS+ka,EAAY/xa,cAAc,IAE1E+va,EAAS/ha,QAAQ05V,GAA+B,IAAnBA,EAAQpuT,SAGnC84X,EAAiB15Y,IACrB,MAAMq7H,EAAQ,IAAIv0I,OAAO,IAAIuyZ,KAAgB,MAC7C,OAAOr5Y,EAAKnoB,QAAQwjJ,EAAO,oDAAoD,EAUjF,OACEs+Q,EAAAA,GAAAA,MAACt/G,GAAK,CACJnqR,MAAM,sBACN8tN,QAASA,EACT08F,SAAUuB,EACVhqT,OAAQ,KACR7rC,MAAO,IAAIkiD,SAAA,EAEXsxX,EAAAA,GAAAA,KAAC91E,GAAK,CACJ51Q,YAAY,uBACZi3J,SAtCsBxzN,IAC1B4nZ,EAAe5nZ,EAAEziB,OAAOnM,MAAM,EAsC1B0G,MAAO,CAAEk5H,aAAc,OAAQ6iK,aAAc,QAC7CrtL,QAAQyhU,EAAAA,GAAAA,KAACpsE,GAAc,MAExBr3N,GAECyjS,EAAAA,GAAAA,KAACviH,GAAI,CACHk+G,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,GACzB53L,WAAYA,KACVi8L,EAAAA,GAAAA,KAACviH,GAAK54E,KAAI,CAAAn2L,UACRsxX,EAAAA,GAAAA,KAACh3E,GAAQ,CAACvqB,QAAM,EAACnoS,MAAO,CAAE9pC,MAAO,OAAS6wB,QAAM,QAI7B,KAAvBoiZ,EAAYnyZ,QACd0yZ,EAAAA,GAAAA,KAACv/I,GAAK,CAACtuQ,YAAY,wCACW,IAA5B0sZ,EAAiBnza,QACnBs0a,EAAAA,GAAAA,KAACv/I,GAAK,CAACtuQ,YAAY,sBAEnB6tZ,EAAAA,GAAAA,KAAA,OAAKnwa,MAAO,CAAE09T,UAAW,QAASlhM,UAAW,OAAQrgG,aAAc,QAAS0iB,UAC1EsxX,EAAAA,GAAAA,KAACviH,GAAI,CACHk+G,WAAYkD,EACZ96L,WAAatnM,IACXujY,SAAAA,GAAAA,KAACviH,GAAK54E,KAAI,CAERnmK,QAASA,KAvCrBkzJ,EAAS,YAuCoCn1L,EAvChBsmV,kBAC7B1gC,KAuCYxyV,MAAO,CACL66T,aAAc,oBACd5+R,QAAS,SACT91B,gBAAiB,UACjB41R,aAAc,MACd7iK,aAAc,OACdxkG,OAAQ,UACRu2B,WAAY,yBAEdhpD,UAAU,oBAAmB48C,UAE7BsxX,EAAAA,GAAAA,KAACviH,GAAK54E,KAAKpkL,KAAI,CACbg+Q,QACEuhG,EAAAA,GAAAA,KAACpmF,GAAM,CACLrlV,IAAK,wDAA2CkoC,EAAKwjY,aAClDv8Z,MAAM,MACN+4E,UAGPnmD,OACE0pY,EAAAA,GAAAA,KAAA,QACEvxX,wBAAyB,CACvB0b,OAAQ21W,EAAcrjY,EAAKojY,aAAe,KAE5Chwa,MAAO,CAAE27B,MAAO,UAAW4B,WAAY,UAG3Cjb,aACE4tZ,EAAAA,GAAAA,MAAA,QAAMlwa,MAAO,CAAE27B,MAAO,WAAYkjB,SAAA,CAAC,WAvFhCs0U,EAwFmBvmV,EAAKumV,MAxFd,SAAIA,EAAMk9C,uBAwFW,YA/BjCzjY,EAAKsmV,WAzDHC,KA6FT,QAIF,uGCxIZ,SADuB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,mgBAAugB,KAAQ,WAAY,MAAS,YCMlsB,IAAIm9C,GAAmB,SAA0B/9X,EAAON,GACtD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM4jO,KAEV,EAOA,SAJ2BhiN,EAAAA,WAAiB+hN,ICb5C,SADwB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,yHAA6H,KAAQ,aAAc,MAAS,YCM3T,IAAIE,GAAoB,SAA2Bj+X,EAAON,GACxD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM8jO,KAEV,EAOA,SAJ2BliN,EAAAA,WAAiBiiN,ICb5C,SADkB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,0ZAA8Z,KAAQ,MAAO,MAAS,YCM/kB,IAAIE,GAAc,SAAqBn+X,EAAON,GAC5C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMgkO,KAEV,EAOA,SAJ2BpiN,EAAAA,WAAiBmiN,ICb5C,SADyB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,2HAA+H,KAAQ,cAAe,MAAS,YCM/T,IAAIE,GAAqB,SAA4Br+X,EAAON,GAC1D,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMkkO,KAEV,EAOA,SAJ2BtiN,EAAAA,WAAiBqiN,ICb5C,SADoB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,ouBAAwuB,KAAQ,QAAS,MAAS,YCM75B,IAAIE,GAAgB,SAAuBv+X,EAAON,GAChD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMokO,KAEV,EAOA,SAJ2BxiN,EAAAA,WAAiBuiN,ICb5C,SADuB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAC,EAAG,SAAY,CAAC,CAAE,IAAO,QAAS,MAAS,CAAC,KAAQ,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,yfAA4f,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,4xBAAgyB,KAAQ,YAAa,MAAS,YCMxkD,IAAIE,GAAmB,SAA0Bz+X,EAAON,GACtD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMskO,KAEV,EAOA,SAJ2B1iN,EAAAA,WAAiByiN,ICXtCl9C,GAAergX,iCAERy9Z,GAAkB/9D,GAAiB,4BAA4BljK,gBACjDshL,GAAMrpX,IAAI,GAAG4rX,6BACpB78W,OAGPk6Z,GAAch+D,GAAiB,wBAAwBljK,UAChE,IACI,MAAMj5J,QAAiBu6U,GAAMrzM,KAAK,GAAG41M,6BAAwCs9C,GAE7E,OADAt7Y,QAAQyxB,IAAI,6BAA8BvQ,EAAS//B,MAC5C+/B,EAAS//B,IACpB,CAAE,MAAO1R,GAEL,MADAuwB,QAAQvwB,MAAM,yBAA0BA,GAClCA,CACV,KAIS8ra,GAAiBl+D,GAAiB,2BAA2BljK,UAAyC,IAAlC,WAAEi+N,EAAU,aAAEkD,GAAczrR,EACzG,IACI,MAAM3uG,QAAiBu6U,GAAMrzM,KAAK,GAAG41M,4BAAsCo6C,IAAckD,GAEzF,OADAt7Y,QAAQyxB,IAAI,gCAAiCvQ,EAAS//B,MAC/C+/B,EAAS//B,IACpB,CAAE,MAAO1R,GAEL,MADAuwB,QAAQvwB,MAAM,2BAA4BA,GACpCA,CACV,KA0DJ,GAvDsBwzW,GAAY,CAC9BpwW,KAAM,aACNytW,aAAc,CACVz6P,WAAY,GACZ+wB,SAAS,EACTnnI,MAAO,MAEXyjW,SAAU,CAAC,EACXkN,cAAgB7D,IACZA,EACKC,QAAQ4+D,GAAgBxvW,SAAU38D,IAC/BA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAErB+sW,QAAQ4+D,GAAgB79T,WAAW,CAACtuG,EAAO8/D,KACxC9/D,EAAM2nI,SAAU,EAChB3nI,EAAM42G,WAAa92C,EAAO7C,OAAO,IAEpCswS,QAAQ4+D,GAAgB59T,UAAU,CAACvuG,EAAO8/D,KACvC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAErCooS,QAAQ6+D,GAAYzvW,SAAU38D,IAC3BA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAErB+sW,QAAQ6+D,GAAY99T,WAAW,CAACtuG,EAAO8/D,KACpC9/D,EAAM2nI,SAAU,EAChB3nI,EAAM42G,WAAWp/G,KAAKsoE,EAAO7C,QAAQ,IAExCswS,QAAQ6+D,GAAY79T,UAAU,CAACvuG,EAAO8/D,KACnC9/D,EAAM2nI,SAAU,EAChB52G,QAAQvwB,MAAM,+BAAgCs/D,EAAOt/D,OACrDR,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAErCooS,QAAQ++D,GAAe3vW,SAAU38D,IAC9BA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAErB+sW,QAAQ++D,GAAeh+T,WAAW,CAACtuG,EAAO8/D,KACvC9/D,EAAM2nI,SAAU,EAChB,MAAM9hI,EAAQ7F,EAAM42G,WAAW1vG,WAAWqla,GAAaA,EAASpD,aAAerpW,EAAO7C,QAAQksW,cAC/E,IAAXtja,IACA7F,EAAM42G,WAAW/wG,GAAS,IAAK7F,EAAM42G,WAAW/wG,MAAWi6D,EAAO7C,SACtE,IAGHswS,QAAQ++D,GAAe/9T,UAAU,CAACvuG,EAAO8/D,KACtC9/D,EAAM2nI,SAAU,EAChB52G,QAAQvwB,MAAM,iCAAkCs/D,EAAOt/D,OACvDR,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,GACpC,IAIsB,QCpF9B4pT,GAAergX,iCAGR89Z,GAAcp+D,GAAiB,qBAAqBljK,gBACxCshL,GAAMrpX,IAAI,GAAG4rX,uBACpB78W,OAILu6Z,GAAWr+D,GAAiB,kBAAkBljK,UAEzD,IAAKwhO,EAAUvpa,IAAI,aAAc,MAAM,IAAI9J,MAAM,0BACjD,IAAKqza,EAAUvpa,IAAI,cAAe,MAAM,IAAI9J,MAAM,2BAClD,IAAKqza,EAAUvpa,IAAI,YAAa,MAAM,IAAI9J,MAAM,yBAQhD,aANuBmzX,GAAMrzM,KAC3B,GAAG41M,uBACH29C,EACA,CAAEhyD,QAAS,CAAE,eAAgB,0BAGfxoW,IAAI,IAKTy6Z,GAAcv+D,GACzB,qBACAljK,MAAAtqD,EAAAyxB,KAAkD,IAA3C,GAAEj5J,EAAE,SAAE4+V,GAAUp3N,GAAE,gBAAE4uN,GAAiBn9L,EAC1C,IACE,IAAKj5J,EACH,MAAM,IAAI/f,MAAM,6CAOlB,aALuBmzX,GAAMrzM,KAC3B,GAAG41M,sBAAgC31W,IACnC4+V,EACA,CAAE0C,QAAS,CAAE,eAAgB,0BAEfxoW,IAClB,CAAE,MAAO1R,GAAQ,IAAD0uX,EAAA09C,EACd,OAAOp9D,GACS,QAAd0f,EAAA1uX,EAAMyxC,gBAAQ,IAAAi9U,GAAM,QAAN09C,EAAd19C,EAAgBh9W,YAAI,IAAA06Z,OAAN,EAAdA,EAAsBznW,UAAW,yBAErC,KA2DJ,GArDmB6uS,GAAY,CAC7BpwW,KAAM,SACNytW,aAAc,CACZw7D,OAAQ,GACRllS,SAAS,EACTnnI,MAAO,MAETyjW,SAAU,CAAC,EACXkN,cAAgB7D,IACdA,EACGC,QAAQi/D,GAAY7vW,SAAU38D,IAC7BA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQi/D,GAAYl+T,WAAW,CAACtuG,EAAO8/D,KACtC9/D,EAAM2nI,SAAU,EAChB3nI,EAAM6sa,OAAS/sW,EAAO7C,OAAO,IAE9BswS,QAAQi/D,GAAYj+T,UAAU,CAACvuG,EAAO8/D,KACrC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAEnCooS,QAAQk/D,GAAS9vW,SAAU38D,IAC1BA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQk/D,GAASn+T,WAAW,CAACtuG,EAAO8/D,KACnC9/D,EAAM2nI,SAAU,EAChB3nI,EAAM6sa,OAAOr1a,KAAKsoE,EAAO7C,QAAQ,IAElCswS,QAAQk/D,GAASl+T,UAAU,CAACvuG,EAAO8/D,KAClC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAEnCooS,QAAQo/D,GAAYhwW,SAAU38D,IAC7BA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQo/D,GAAYr+T,WAAW,CAACtuG,EAAO8/D,KACtC,MAAMj6D,EAAQ7F,EAAM6sa,OAAO3la,WACxB4la,GAAUA,EAAMzD,UAAYvpW,EAAO7C,QAAQosW,WAE/B,IAAXxja,IACF7F,EAAM6sa,OAAOhna,GAASi6D,EAAO7C,QAC/B,IAEDswS,QAAQo/D,GAAYp+T,UAAU,CAACvuG,EAAO8/D,KACrC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAO7C,SAAW6C,EAAOt/D,MAAM2kE,OAAO,GACpD,IAIyB,QC8BjC,GA3HmB4nW,KACjB,MAAM7sW,EAAW2hS,KACX7kI,EAAWR,MACX,WAAE5lH,GAAe0rP,IAAatiW,GAAUA,EAAM42G,cAC9C,OAAEi2T,GAAWvqE,IAAatiW,GAAUA,EAAM6sa,UAEzCG,EAAkBC,IAAuB/pW,EAAAA,EAAAA,UAAS,OAClDgqW,EAAgBC,IAAqBjqW,EAAAA,EAAAA,WAAS,GAC/CkqW,GAAcnqW,EAAAA,EAAAA,QAAO,MAsB3B,OApBAN,EAAAA,EAAAA,YAAU,KACRzC,EAASisW,MACTjsW,EAASssW,KAAc,GACtB,CAACtsW,KAGJyC,EAAAA,EAAAA,YAAU,KACR,MAAM0qW,EAAsBt+W,IACtBq+W,EAAYxxY,UAAYwxY,EAAYxxY,QAAQl6B,SAASqtD,EAAMruD,UAC7Dysa,GAAkB,GAClBF,EAAoB,MACtB,EAIF,OADAhwa,SAASiB,iBAAiB,YAAamva,GAChC,KACLpwa,SAASwiD,oBAAoB,YAAa4tX,EAAmB,CAC9D,GACA,KAGDjC,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,8BAA6B48C,UAC1CqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,oEAAmE48C,SAAA,EAEhFqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,0BAA0BgwC,IAAKkgY,EAAYtzX,SAAA,EACxDqxX,EAAAA,GAAAA,MAAA,UACEjua,UAAU,qGACV4sE,QAASA,IAAMqjW,GAAmBD,GAAgBpzX,SAAA,EAElDsxX,EAAAA,GAAAA,KAACG,GAAgB,IAAG,kBAEpBH,EAAAA,GAAAA,KAACK,GAAiB,OAGnByB,IACT9B,EAAAA,GAAAA,KAAA,OAAKnwa,MAAO,CAAC09T,UAAU,SAAUz7T,UAAU,gIAA+H48C,SAEvK88D,EACE9vG,QAAQyla,GAAsC,0BAAzBA,EAASe,aAAqE,0BAA1Bf,EAASgB,eAClFvqa,KAAKupa,IACJpB,EAAAA,GAAAA,MAAA,OAEEjua,UAAW,+EACT8va,IAAqBT,EAASpD,WAAa,0BAA4B,sBAEzEr/V,QAASA,IACPmjW,EACED,IAAqBT,EAASpD,WAAa,KAAOoD,EAASpD,YAE9DrvX,SAAA,EAGDqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,0BAAyB48C,SAAA,EACtCsxX,EAAAA,GAAAA,KAACO,GAAW,CAACzua,UAAU,oBACvBkua,EAAAA,GAAAA,KAAA,QAAAtxX,SAAOyyX,EAASgB,mBAElBnC,EAAAA,GAAAA,KAACS,GAAkB,MAfdU,EAASpD,gBAqBvB6D,IACC5B,EAAAA,GAAAA,KAAA,OAAKnwa,MAAO,CAAC09T,UAAU,SAAUz7T,UAAU,6HAA4H48C,SAEpK+yX,EACE/la,QAAQgma,GAAUA,EAAM3D,aAAe6D,IACvChqa,KAAK8pa,IACJ1B,EAAAA,GAAAA,KAAA,OAEElua,UAAU,+EACV4sE,QAASA,KACPkzJ,EAAS,UAAU8vM,EAAMzD,WACzB8D,GAAkB,GAClBF,EAAoB,KAAK,EACzBnzX,SAEDgzX,EAAMU,WARFV,EAAMzD,iBAiBb8B,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,qFAAoF48C,SAAA,EACjGsxX,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,8CAA6C48C,SAAC,4BAC3DqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,0BAAyB48C,SAAA,EACtCqxX,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,uCAAsC48C,SAAA,EACjDsxX,EAAAA,GAAAA,KAACW,GAAa,CAAC7ua,UAAU,UACzBkua,EAAAA,GAAAA,KAAA,KAAGtza,KAAK,oBAAoBoF,UAAU,4CAA2C48C,SAAC,sBAIpFqxX,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,uCAAsC48C,SAAA,EACjDsxX,EAAAA,GAAAA,KAACa,GAAgB,CAAC/ua,UAAU,UAC5Bkua,EAAAA,GAAAA,KAAA,KACEtza,KAAK,8BACL4I,OAAO,SACPoyC,IAAI,sBACJ51C,UAAU,4CAA2C48C,SACtD,+BAOL,EC7GJ2zX,GAAkB7sR,IAAiD,IAAhD,SAAE8sR,EAAQ,SAAEl+C,EAAQ,QAAE/hC,EAAUA,QAAU7sM,EACjE,MAAMo8E,EAAWR,KAwBjB,OACE2uM,EAAAA,GAAAA,MAAC9/W,GAAI,CAACye,QAAS2jR,EAAQ3zS,SAAA,EACrBsxX,EAAAA,GAAAA,KAAC//W,GAAK4kL,KAAI,CAAAn2L,UACRsxX,EAAAA,GAAAA,KAAA,UAAAtxX,SAAS01U,EAASm+C,UAAY,IAAMn+C,EAASo+C,YADhC,cAGfxC,EAAAA,GAAAA,KAAC//W,GAAKilN,QAAO,KACb86J,EAAAA,GAAAA,KAAC//W,GAAK4kL,KAAI,CAACroC,MAAMwjO,EAAAA,GAAAA,KAAChtE,GAAY,IAAKt0R,QAhBP+jW,KAC9B7wM,EAAS,YACTywH,GAAS,EAc6D3zS,SAAC,aAGrEsxX,EAAAA,GAAAA,KAAC//W,GAAK4kL,KAAI,CAACroC,MAAMwjO,EAAAA,GAAAA,KAAC9sE,GAAgB,IAAKx0R,QA/BZgkW,KAC7B,MAAMC,EAAkB7ua,KAAKC,MAAMsuX,aAAahiR,QAAQ,cAAgB,CAAC,EACnEuiU,EAA6B,OAAfD,QAAe,IAAfA,OAAe,EAAfA,EAAiBC,YAGnChxM,EADkB,UAAhBgxM,EACO,0BAEA,kBAEXvgF,GAAS,EAsBgE3zS,SAAC,YAGxEsxX,EAAAA,GAAAA,KAAC//W,GAAK4kL,KAAI,CAACroC,MAAMwjO,EAAAA,GAAAA,KAAC5sE,GAAc,IAAK10R,QAjBpBmkW,KACnBP,IACAjgF,GAAS,EAeoD3zS,SAAC,aAGvD,EAsMX,GAlMeo0X,KAAO,IAADC,EACnB,MAAOC,EAAmBC,IAAwBnrW,EAAAA,EAAAA,WAAS,IACpDorW,EAA0BC,IAA6BrrW,EAAAA,EAAAA,WAAS,IAChEsrW,EAAqBC,IAA0BvrW,EAAAA,EAAAA,WAAS,GAEzDhD,EAAW2hS,KACX7kI,EAAWR,KAEXoxJ,EAAatrB,IAAatiW,GAAUA,EAAM2tX,KAAKC,aAC/C8B,EAAkBptB,IAAatiW,GAAUA,EAAMwvX,SAASE,mBAE9D/sT,EAAAA,EAAAA,YAAU,KAER,GADe8qT,aAAahiR,QAAQ,UACxB,CACV,MAAMqiR,EAASL,aAAahiR,QAAQ,UAChCqiR,GACF5tT,EAASmuT,GAAYP,GAEzB,IACC,CAAC5tT,IAEJ,MAQM6tW,EACJr+C,GAAmBxwX,KAAKC,MAAMsuX,aAAahiR,QAAQ,qBAAuB,CAAC,EACvEijU,EAAqC,OAApBh/C,EACjBi/C,GAA0B,OAAfZ,QAAe,IAAfA,GAA0B,QAAXI,EAAfJ,EAAiBJ,iBAAS,IAAAQ,OAAX,EAAfA,EAA6B,KAAM,GAE9CS,EAAgBA,KACpBzD,EAAAA,GAAAA,MAAC9/W,GAAI,CAAAvR,SAAA,EACHsxX,EAAAA,GAAAA,KAAC//W,GAAK4kL,KAAI,CAERroC,MAAMwjO,EAAAA,GAAAA,KAAC1sE,GAAa,IACpB50R,QAASA,IAAMkzJ,EAAS,YAAYljL,SACrC,SAHK,UAMNsxX,EAAAA,GAAAA,KAAC//W,GAAK4kL,KAAI,CAERroC,MAAMwjO,EAAAA,GAAAA,KAACxsE,GAAe,IACtB90R,QAASA,IAAMkzJ,EAAS,YAAYljL,SACrC,YAHK,eAUZ,OACEqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,qCAAoC48C,SAAA,EACjDqxX,EAAAA,GAAAA,MAACnyC,GAAM,CAAAl/U,SAAA,EACLsxX,EAAAA,GAAAA,KAAA,QACExna,KAAK,cACLwQ,QAAQ,gJAEVg3Z,EAAAA,GAAAA,KAAA,QACExna,KAAK,WACLwQ,QAAQ,gLAEVg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,SAASwQ,QAAQ,kCAE9Bg3Z,EAAAA,GAAAA,KAAC2B,GAAU,KACX3B,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,+BAA8B48C,UAC3CqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,sDAAqD48C,SAAA,EAElEsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,mCAAkC48C,UAC/CsxX,EAAAA,GAAAA,KAAChoM,GAAI,CAAC3iO,GAAG,IAAGq5C,UACVsxX,EAAAA,GAAAA,KAAA,OACEzra,IAAKkva,GACL3xa,UAAU,0CACVglV,IAAI,wBAMVkpF,EAAAA,GAAAA,KAACx+H,GAAO,CAAClrQ,MAAM,sBAAqBoY,UAClCqxX,EAAAA,GAAAA,MAAA,OACEjua,UAAU,yCACV4sE,QAASA,IAAM2kW,GAAuB,GAAM30X,SAAA,EAE5CsxX,EAAAA,GAAAA,KAAA,OACEzra,IAAK29L,GACLpgM,UAAU,8CACVglV,IAAI,yBAENkpF,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,qCAAoC48C,SAAC,mBAKzDqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,0BAAyB48C,SAAA,EAEtCsxX,EAAAA,GAAAA,KAACx+H,GAAO,CAAClrQ,MAAM,OAAMoY,UACnBsxX,EAAAA,GAAAA,KAACtsE,GAAY,CACX5hW,UAAU,6CACV4sE,QAASA,IAAMkzJ,EAAS,UAK5BouM,EAAAA,GAAAA,KAACx+H,GAAO,CAAClrQ,MAAM,SAAQoY,UACrBqxX,EAAAA,GAAAA,MAAA,OACEjua,UAAU,kGACV4sE,QAASA,IAAMukW,GAAqB,GAAMv0X,SAAA,EAE1CsxX,EAAAA,GAAAA,KAACpsE,GAAc,CAAC9hW,UAAU,kEAC1Bkua,EAAAA,GAAAA,KAAA,SACEzua,KAAK,OACLO,UAAU,+EACVwiF,YAAY,oBAMlByrV,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,mCAAkC48C,SAAA,CAC9C40X,GACCtD,EAAAA,GAAAA,KAAC/+G,GAAQ,CACPzsT,SACEwra,EAAAA,GAAAA,KAACqC,GAAe,CACdC,SA1GGO,KACnBxgD,aAAa/hR,WAAW,UACxB+hR,aAAa/hR,WAAW,UACxB+hR,aAAa/hR,WAAW,mBACxBxrC,EAAS2vT,MACT7yJ,EAAS,QAAQ,EAsGDwyJ,SAAUu+C,IAGdnkI,QAAS,CAAC,SACVp6C,QAAS8+K,EACTp7L,gBAAkBsc,GAChB++K,EAA0B/+K,GAC3B11M,UAEDsxX,EAAAA,GAAAA,KAACx+H,GAAO,CAAClrQ,MAAM,aAAYoY,UACzBsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,mCAAkC48C,UAC/CsxX,EAAAA,GAAAA,KAACpmF,GAAM,CAAC9nV,UAAU,eAAc48C,SAAE60X,WAKxCvD,EAAAA,GAAAA,KAAC/+G,GAAQ,CAACzsT,SAASwra,EAAAA,GAAAA,KAACwD,EAAa,IAAKhlI,QAAS,CAAC,SAAS9vP,UACvDsxX,EAAAA,GAAAA,KAACx+H,GAAO,CAAClrQ,MAAM,sBAAqBoY,UAClCsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,mCAAkC48C,UAC/CsxX,EAAAA,GAAAA,KAACpmF,GAAM,CAACp9I,MAAMwjO,EAAAA,GAAAA,KAAChtE,GAAY,IAAKlhW,UAAU,wBAKlDkua,EAAAA,GAAAA,KAACx+H,GAAO,CAAClrQ,MAAM,OAAMoY,UACnBsxX,EAAAA,GAAAA,KAAC7iF,GAAK,CACJ5+S,MAAOikV,EACP9jT,QAASA,IACPkzJ,EAAS,SAASywJ,aAAahiR,QAAQ,aAEzCxwG,MAAO,CAAE00B,OAAQ,WAAYmqB,UAE7BsxX,EAAAA,GAAAA,KAAClsE,GAAoB,CAAChiW,UAAU,iDAS5Ckua,EAAAA,GAAAA,KAAC0D,GAAW,CACVt/K,QAAS4+K,EACT3gF,QAASA,IAAM4gF,GAAqB,MAItCjD,EAAAA,GAAAA,KAACv/G,GAAK,CACJnqR,MAAM,sBACN8tN,QAASg/K,EACTtiF,SAAUA,IAAMuiF,GAAuB,GACvChrY,OAAQ,KAAKqW,UAEbsxX,EAAAA,GAAAA,KAAA,KACEtza,KAAK,qEACL4I,OAAO,SACPoyC,IAAI,sBACJ51C,UAAU,yBAAwB48C,SACnC,6BAIC,ECnOR,SA/BmB,CACjBi1X,WAAW,EACXC,YAAa,KACbC,iBAAkB,EAClBC,YAAa,KACbC,aAAc,EACd/7S,UAAW,EACX6wR,UAAU,EACVmrB,aAAa,EACbpvM,aAAa,EACbqvM,eAAgB,GAChB1f,WAAY,KACZ2f,UAAW,KACX5kS,WAAW,EACX6kS,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,UAAW,KACXC,QAAQ,EAERC,SAAS,EACTC,YAAa,CACXtzR,OAAQ,EACR1+G,OAAQ,EACRiyY,KAAM,EACNC,KAAM,GAERC,WAAY,CAAC,EACbC,WAAY,EACZC,YAAa,GCiCf,SA7DmB,CACjBC,eAAe,EACfC,gBAAgB,EAChBC,YAAa,KACbC,WAAY,SAAoBx4D,GAC9B,OAAoBtuJ,EAAAA,cAAoB,KAAM,CAC5CvuN,MAAO,CACLkB,QAAS,UAEV27W,EACL,EACAy4D,QAAQ,EACRC,UAAU,EACVC,cAAe,IACfC,aAAc,KACdC,YAAY,EACZC,cAAe,OACf1za,UAAW,GACX2za,QAAS,OACTC,aAAc,SAAsBj6a,GAClC,OAAoB2yN,EAAAA,cAAoB,SAAU,KAAM3yN,EAAI,EAC9D,EACAihX,MAAM,EACNi5D,UAAW,aACX5uF,WAAW,EACX6uF,OAAQ,SACRC,aAAc,IACdC,MAAM,EACNC,eAAe,EACfC,UAAU,EACVC,aAAc,EACdC,SAAU,KACVC,UAAW,KACXC,OAAQ,KACRC,OAAQ,KACRC,gBAAiB,KACjBC,SAAU,KACVC,kBAAkB,EAClBC,cAAc,EACdC,cAAc,EACdC,UAAW,KACX3iM,WAAY,KACZ/8M,KAAM,EACN8wN,KAAK,EACL6uL,MAAO,MACPC,aAAc,EACdC,eAAgB,EAChBC,aAAc,EACdC,MAAO,IACPC,OAAO,EACPC,WAAY,KACZC,cAAc,EACdC,WAAW,EACXC,eAAgB,EAChBC,QAAQ,EACRC,cAAc,EACdC,eAAe,EACfv+Y,UAAU,EACVw+Y,gBAAgB,EAChBC,SAAU,MCzDL,SAASnuU,GAAMl1D,EAAQsjY,EAAYC,GACxC,OAAO77a,KAAKwhB,IAAIo6Z,EAAY57a,KAAKyhB,IAAI62B,EAAQujY,GAC/C,CACO,IAAIC,GAAqB,SAA4BlkX,GACtC,CAAC,eAAgB,cAAe,WACjCjpD,SAASipD,EAAM5H,aAChC4H,EAAMrH,gBAEV,EACWwrX,GAAwB,SAA+BC,GAIhE,IAHA,IAAIC,EAAiB,GACjBp5M,EAAaq5M,GAAeF,GAC5B/pB,EAAWkqB,GAAaH,GACnBI,EAAav5M,EAAYu5M,EAAanqB,EAAUmqB,IACnDJ,EAAK9D,eAAeh1a,QAAQk5a,GAAc,GAC5CH,EAAe57a,KAAK+7a,GAGxB,OAAOH,CACT,EAcWC,GAAiB,SAAwBF,GAClD,OAAOA,EAAKhE,aAAeqE,GAAiBL,EAC9C,EACWG,GAAe,SAAsBH,GAC9C,OAAOA,EAAKhE,aAAesE,GAAkBN,EAC/C,EACWK,GAAmB,SAA0BL,GACtD,OAAOA,EAAKxC,WAAax5a,KAAKC,MAAM+7a,EAAKhB,aAAe,IAAM91Z,SAAS82Z,EAAKvC,eAAiB,EAAI,EAAI,GAAK,CAC5G,EACW6C,GAAoB,SAA2BN,GACxD,OAAOA,EAAKxC,WAAax5a,KAAKC,OAAO+7a,EAAKhB,aAAe,GAAK,GAAK,GAAK91Z,SAAS82Z,EAAKvC,eAAiB,EAAI,EAAI,GAAKuC,EAAKhB,YAC3H,EAGWj9Y,GAAW,SAAkB2B,GACtC,OAAOA,GAAQA,EAAK+4E,aAAe,CACrC,EACWz1E,GAAY,SAAmBtD,GACxC,OAAOA,GAAQA,EAAKk5E,cAAgB,CACtC,EACW2jU,GAAoB,SAA2B7D,GACxD,IACI8D,EAAOC,EAAO3+a,EAAG4+a,EADjBC,EAAkB1ua,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GASrF,OAPAuua,EAAQ9D,EAAYtzR,OAASszR,EAAYC,KACzC8D,EAAQ/D,EAAYhyY,OAASgyY,EAAYE,KACzC96a,EAAIkC,KAAK23H,MAAM8kT,EAAOD,IACtBE,EAAa18a,KAAK22B,MAAU,IAAJ74B,EAAUkC,KAAK2rH,KACtB,IACf+wT,EAAa,IAAM18a,KAAK6E,IAAI63a,IAE1BA,GAAc,IAAMA,GAAc,GAAKA,GAAc,KAAOA,GAAc,IACrE,OAELA,GAAc,KAAOA,GAAc,IAC9B,SAEe,IAApBC,EACED,GAAc,IAAMA,GAAc,IAC7B,KAEA,OAGJ,UACT,EAGWE,GAAY,SAAmBZ,GACxC,IAAIa,GAAQ,EAQZ,OAPKb,EAAK/B,WACJ+B,EAAKxC,YAAcwC,EAAKhE,cAAgBgE,EAAK5D,WAAa,GAEnD4D,EAAK5D,YAAc4D,EAAKhB,cAAgBgB,EAAKhE,cAAgBgE,EAAK5D,WAAa4D,EAAKhB,gBAD7F6B,GAAQ,GAKLA,CACT,EAGWC,GAAgB,SAAuBd,EAAMv3a,GACtD,IAAI+yL,EAAY,CAAC,EAIjB,OAHA/yL,EAAKnF,SAAQ,SAAUgE,GACrB,OAAOk0L,EAAUl0L,GAAO04a,EAAK14a,EAC/B,IACOk0L,CACT,EAsYWulP,GAAiB,SAAwBf,EAAMtta,GACxD,IAAIsua,EAb2B,SAA6BhB,GAK5D,IAJA,IAAIx6Z,EAAMw6Z,EAAK/B,SAA6B,EAAlB+B,EAAK5D,WAAiB4D,EAAK5D,WACjDrlI,EAAaipI,EAAK/B,UAAgC,EAArB+B,EAAKhB,aAAoB,EACtDh8S,EAAUg9S,EAAK/B,UAAgC,EAArB+B,EAAKhB,aAAoB,EACnDrkV,EAAU,GACPo8M,EAAavxR,GAClBm1E,EAAQt2F,KAAK0yS,GACbA,EAAa/zK,EAAUg9S,EAAKjB,eAC5B/7S,GAAWh/H,KAAKyhB,IAAIu6Z,EAAKjB,eAAgBiB,EAAKhB,cAEhD,OAAOrkV,CACT,CAEmBsmV,CAAoBjB,GACjCkB,EAAgB,EACpB,GAAIxua,EAAQsua,EAAWA,EAAWr9a,OAAS,GACzC+O,EAAQsua,EAAWA,EAAWr9a,OAAS,QAEvC,IAAK,IAAI8H,KAAKu1a,EAAY,CACxB,GAAItua,EAAQsua,EAAWv1a,GAAI,CACzBiH,EAAQwua,EACR,KACF,CACAA,EAAgBF,EAAWv1a,EAC7B,CAEF,OAAOiH,CACT,EACWyua,GAAgB,SAAuBnB,GAChD,IAAIoB,EAAepB,EAAKxC,WAAawC,EAAK1D,WAAat4a,KAAKC,MAAM+7a,EAAKhB,aAAe,GAAK,EAC3F,GAAIgB,EAAKZ,aAAc,CACrB,IAAIiC,EACAC,EAAYtB,EAAK93B,QACjBq5B,EAASD,EAAUv+a,kBAAoBu+a,EAAUv+a,iBAAiB,iBAAmB,GAezF,GAdAM,MAAM8J,KAAKo0a,GAAQ1ta,OAAM,SAAUgra,GACjC,GAAKmB,EAAK9+Y,UAMR,GAAI29Y,EAAM96R,UAAY/8G,GAAU63Y,GAAS,GAAsB,EAAlBmB,EAAKzD,UAEhD,OADA8E,EAAcxC,GACP,OAPT,GAAIA,EAAM3uK,WAAakxK,EAAer/Y,GAAS88Y,GAAS,GAAsB,EAAlBmB,EAAKzD,UAE/D,OADA8E,EAAcxC,GACP,EAQX,OAAO,CACT,KACKwC,EACH,OAAO,EAET,IAAIz9T,GAA4B,IAAbo8T,EAAKhwL,IAAegwL,EAAK5D,WAAa4D,EAAKhE,aAAegE,EAAKhE,aAElF,OADsBh4a,KAAK6E,IAAIw4a,EAAYhsW,QAAQ3iE,MAAQkxG,IAAiB,CAE9E,CACE,OAAOo8T,EAAKjB,cAEhB,EACWyC,GAAgB,SAAuBxB,EAAMyB,GACtD,OAEEA,EAAUhgZ,QAAO,SAAUrgC,EAAOkG,GAChC,OAAOlG,GAAS4+a,EAAKl6a,eAAewB,EACtC,IAAG,GAAQ,KAAOs2B,QAAQvwB,MAAM,gBAAiB2ya,EAErD,EACW0B,GAAc,SAAqB1B,GAE5C,IAAIlD,EAAY6E,GADhBH,GAAcxB,EAAM,CAAC,OAAQ,gBAAiB,aAAc,eAAgB,eAEvEA,EAAK9+Y,UAIRygZ,GADoB3B,EAAK4B,QAAU5B,EAAK5D,WAAa4D,EAAK5D,WAAa,EAAI4D,EAAKhB,cAClDgB,EAAK3D,YAHnCS,EAAa+E,GAAe7B,GAAQA,EAAK1D,WAK3C,IAAIx0a,EAAQ,CACVqG,QAAS,EACT4kD,WAAY,GACZ+uX,iBAAkB,IAEpB,GAAI9B,EAAKR,aAAc,CACrB,IAAI5vF,EAAmBowF,EAAK9+Y,SAA0D,oBAAsB8+Y,EAAKn8a,KAAO,WAAjF,eAAiBm8a,EAAKn8a,KAAO,gBAChEk+E,EAAai+V,EAAK9+Y,SAA0D,oBAAsB8+Y,EAAKn8a,KAAO,WAAjF,eAAiBm8a,EAAKn8a,KAAO,gBAC1D4mR,EAAeu1J,EAAK9+Y,SAA+C,cAAgB8+Y,EAAKn8a,KAAO,MAAhE,cAAgBm8a,EAAKn8a,KAAO,MAC/DiE,EAAQkzO,GAAcA,GAAc,CAAC,EAAGlzO,GAAQ,CAAC,EAAG,CAClD8nV,gBAAiBA,EACjB7tQ,UAAWA,EACX0oM,YAAaA,GAEjB,MACMu1J,EAAK9+Y,SACPp5B,EAAW,IAAIk4a,EAAKn8a,KAEpBiE,EAAY,KAAIk4a,EAAKn8a,KAiBzB,OAdIm8a,EAAKjC,OAAMj2a,EAAQ,CACrBqG,QAAS,IAEP2ua,IAAYh1a,EAAMrD,MAAQq4a,GAC1B6E,IAAa75a,EAAM3D,OAASw9a,GAG5B55a,SAAWA,OAAOgD,kBAAoBhD,OAAO+0D,cAC1CkjX,EAAK9+Y,SAGRp5B,EAAMg5H,UAAYk/S,EAAKn8a,KAAO,KAF9BiE,EAAMm5H,WAAa++S,EAAKn8a,KAAO,MAK5BiE,CACT,EACWi6a,GAAqB,SAA4B/B,GAC1DwB,GAAcxB,EAAM,CAAC,OAAQ,gBAAiB,aAAc,eAAgB,aAAc,QAAS,YACnG,IAAIl4a,EAAQ45a,GAAY1B,GAYxB,OAVIA,EAAKR,cACP13a,EAAMg6a,iBAAmB,qBAAuB9B,EAAKf,MAAQ,MAAQe,EAAKtC,QAC1E51a,EAAMirD,WAAa,aAAeitX,EAAKf,MAAQ,MAAQe,EAAKtC,SAExDsC,EAAK9+Y,SACPp5B,EAAMirD,WAAa,OAASitX,EAAKf,MAAQ,MAAQe,EAAKtC,QAEtD51a,EAAMirD,WAAa,QAAUitX,EAAKf,MAAQ,MAAQe,EAAKtC,QAGpD51a,CACT,EACWk6a,GAAe,SAAsBhC,GAC9C,GAAIA,EAAK4B,QACP,OAAO,EAETJ,GAAcxB,EAAM,CAAC,aAAc,WAAY,WAAY,aAAc,aAAc,eAAgB,iBAAkB,aAAc,YAAa,gBAAiB,gBACrK,IAcInrK,EACAkoK,EAfAqD,EAAaJ,EAAKI,WACpB6B,EAAWjC,EAAKiC,SAChBhE,EAAW+B,EAAK/B,SAChBT,EAAawC,EAAKxC,WAClBpB,EAAa4D,EAAK5D,WAClB4C,EAAegB,EAAKhB,aACpBD,EAAiBiB,EAAKjB,eACtBzC,EAAa0D,EAAK1D,WAClBH,EAAY6D,EAAK7D,UACjBsD,EAAgBO,EAAKP,cACrBpD,EAAc2D,EAAK3D,YACnB0B,EAAOiC,EAAKjC,KACZ78Y,EAAW8+Y,EAAK9+Y,SAKlB,GAAI68Y,GAA4B,IAApBiC,EAAK5D,WACf,OAAO,EAET,IAAI8F,EAAiB,EA0BrB,GAzBIjE,GACFiE,GAAkBC,GAAanC,GAE3B5D,EAAa2C,IAAmB,GAAKqB,EAAarB,EAAiB3C,IACrE8F,IAAmB9B,EAAahE,EAAa4C,GAAgBoB,EAAahE,GAAcA,EAAa2C,IAGnGvB,IACF0E,GAAkBh5Z,SAAS81Z,EAAe,MAGxC5C,EAAa2C,IAAmB,GAAKqB,EAAarB,EAAiB3C,IACrE8F,EAAiBlD,EAAe5C,EAAa2C,GAE3CvB,IACF0E,EAAiBh5Z,SAAS81Z,EAAe,KAQ3CnqK,EAHG3zO,EAGUk/Y,EAAa/D,GAAe,EAJ1B6F,EAAiB7F,EAEnB+D,EAAa9D,GAAc,EAH5B4F,EAAiB5F,GAOT,IAAlBmD,EAAwB,CAC1B,IAAI2C,EACAC,EAAYJ,GAAYA,EAAS73a,KAIrC,GAHAg4a,EAAmBhC,EAAa+B,GAAanC,GAE7CnrK,GADAkoK,EAAcsF,GAAaA,EAAUxqS,WAAWuqS,KACK,EAA1BrF,EAAY7sK,WAAkB,GACtC,IAAfstK,EAAqB,CACvB4E,EAAmBnE,EAAWmC,EAAa+B,GAAanC,GAAQI,EAChErD,EAAcsF,GAAaA,EAAU17X,SAASy7X,GAC9CvtK,EAAa,EACb,IAAK,IAAIgqK,EAAQ,EAAGA,EAAQuD,EAAkBvD,IAC5ChqK,GAAcwtK,GAAaA,EAAU17X,SAASk4X,IAAUwD,EAAU17X,SAASk4X,GAAOpiU,YAEpFo4J,GAAc3rP,SAAS82Z,EAAKvC,eAC5B5oK,GAAckoK,IAAgBZ,EAAYY,EAAYtgU,aAAe,CACvE,CACF,CACA,OAAOo4J,CACT,EACWstK,GAAe,SAAsBnC,GAC9C,OAAIA,EAAK4B,UAAY5B,EAAK/B,SACjB,EAEL+B,EAAKP,cACAO,EAAK5D,WAEP4D,EAAKhB,cAAgBgB,EAAKxC,WAAa,EAAI,EACpD,EACW8E,GAAgB,SAAuBtC,GAChD,OAAIA,EAAK4B,UAAY5B,EAAK/B,SACjB,EAEF+B,EAAK5D,UACd,EACWyF,GAAiB,SAAwB7B,GAClD,OAA2B,IAApBA,EAAK5D,WAAmB,EAAI+F,GAAanC,GAAQA,EAAK5D,WAAakG,GAActC,EAC1F,EACWuC,GAAmB,SAA0BvC,GACtD,OAAIA,EAAKjD,YAAciD,EAAKhE,aACtBgE,EAAKjD,YAAciD,EAAKhE,aAAewG,GAAcxC,GAChD,OAEF,QAEHA,EAAKjD,YAAciD,EAAKhE,aAAeyG,GAAazC,GAC/C,QAEF,MAEX,EACWwC,GAAgB,SAAuB/0R,GAChD,IAAIuxR,EAAevxR,EAAKuxR,aACtBxB,EAAa/vR,EAAK+vR,WAClBxtL,EAAMviG,EAAKuiG,IACXytL,EAAgBhwR,EAAKgwR,cAEvB,GAAID,EAAY,CACd,IAAIxva,GAASgxa,EAAe,GAAK,EAAI,EAGrC,OAFI91Z,SAASu0Z,GAAiB,IAAGzva,GAAS,GACtCgiP,GAAOgvL,EAAe,IAAM,IAAGhxa,GAAS,GACrCA,CACT,CACA,OAAIgiP,EACK,EAEFgvL,EAAe,CACxB,EACWyD,GAAe,SAAsBvjQ,GAC9C,IAAI8/P,EAAe9/P,EAAM8/P,aACvBxB,EAAat+P,EAAMs+P,WACnBxtL,EAAM9wE,EAAM8wE,IACZytL,EAAgBv+P,EAAMu+P,cAExB,GAAID,EAAY,CACd,IAAI35a,GAAQm7a,EAAe,GAAK,EAAI,EAGpC,OAFI91Z,SAASu0Z,GAAiB,IAAG55a,GAAQ,GACpCmsP,GAAOgvL,EAAe,IAAM,IAAGn7a,GAAQ,GACrCA,CACT,CACA,OAAImsP,EACKgvL,EAAe,EAEjB,CACT,EACWzoN,GAAY,WACrB,QAA4B,qBAAXxuN,SAA0BA,OAAO+B,WAAY/B,OAAO+B,SAASf,cAChF,EACW25a,GAAgBl6a,OAAOC,KAAK0xC,ICztBvC,IAAIwoY,GAAkB,SAAyB3C,GAC7C,IAAI4C,EAAaC,EAAaC,EAC1B1B,EAAc1ua,EAyBlB,OAnBAowa,GAJEpwa,EADEsta,EAAKhwL,IACCgwL,EAAK5D,WAAa,EAAI4D,EAAKtta,MAE3Bsta,EAAKtta,OAEO,GAAKA,GAASsta,EAAK5D,WACrC4D,EAAKxC,YACP4D,EAAep9a,KAAKC,MAAM+7a,EAAKhB,aAAe,GAC9C6D,GAAenwa,EAAQsta,EAAKhE,cAAgBgE,EAAK5D,aAAe,EAC5D1pa,EAAQsta,EAAKhE,aAAeoF,EAAe,GAAK1ua,GAASsta,EAAKhE,aAAeoF,IAC/EwB,GAAc,IAGhBA,EAAc5C,EAAKhE,cAAgBtpa,GAASA,EAAQsta,EAAKhE,aAAegE,EAAKhB,aAWxE,CACL,eAAe,EACf,eAAgB4D,EAChB,eAAgBC,EAChB,eAAgBC,EAChB,gBANiBpwa,KAPfsta,EAAKjD,YAAc,EACNiD,EAAKjD,YAAciD,EAAK5D,WAC9B4D,EAAKjD,aAAeiD,EAAK5D,WACnB4D,EAAKjD,YAAciD,EAAK5D,WAExB4D,EAAKjD,aAUxB,EAqBI76L,GAAS,SAAgBz3O,EAAOs4a,GAClC,OAAOt4a,EAAMnD,IAAM,IAAMy7a,CAC3B,EACIC,GAAe,SAAsBhD,GACvC,IAAI14a,EACAi6a,EAAS,GACT0B,EAAiB,GACjBC,EAAkB,GAClBC,EAAgB9sN,EAAAA,SAAe7/K,MAAMwpY,EAAKr5X,UAC1CkgL,EAAaq5M,GAAeF,GAC5B/pB,EAAWkqB,GAAaH,GA0F5B,OAzFA3pN,EAAAA,SAAe/yN,QAAQ08a,EAAKr5X,UAAU,SAAUjjB,EAAMhxB,GACpD,IAAIjI,EACA24a,EAAsB,CACxBpxW,QAAS,WACTt/D,MAAOA,EACPqsa,eAAgBiB,EAAKjB,eACrB/C,aAAcgE,EAAKhE,cAKnBvxa,GADGu1a,EAAK7B,UAAY6B,EAAK7B,UAAY6B,EAAK9D,eAAeh1a,QAAQwL,IAAU,EACnEgxB,EAEa2yL,EAAAA,cAAoB,MAAO,MAElD,IAAIgtN,EA9CY,SAAuBrD,GACzC,IAAIl4a,EAAQ,CAAC,EAiBb,YAhB2B2H,IAAvBuwa,EAAKP,gBAAsD,IAAvBO,EAAKP,gBAC3C33a,EAAMrD,MAAQu7a,EAAK1D,YAEjB0D,EAAKjC,OACPj2a,EAAM+F,SAAW,WACbmya,EAAK9+Y,UAAY8+Y,EAAK3D,YACxBv0a,EAAMhE,KAAOk8a,EAAKtta,MAAQwW,SAAS82Z,EAAK3D,aAExCv0a,EAAMjE,MAAQm8a,EAAKtta,MAAQwW,SAAS82Z,EAAK1D,YAE3Cx0a,EAAMqG,QAAU6xa,EAAKhE,eAAiBgE,EAAKtta,MAAQ,EAAI,EACvD5K,EAAMiG,OAASiya,EAAKhE,eAAiBgE,EAAKtta,MAAQ,IAAM,IACpDsta,EAAKT,SACPz3a,EAAMirD,WAAa,WAAaitX,EAAKf,MAAQ,MAAQe,EAAKtC,QAAvC,gBAAwEsC,EAAKf,MAAQ,MAAQe,EAAKtC,UAGlH51a,CACT,CA2BqBw7a,CAActoM,GAAcA,GAAc,CAAC,EAAGglM,GAAO,CAAC,EAAG,CACxEtta,MAAOA,KAEL6wa,EAAa94a,EAAM4vC,MAAMtwC,WAAa,GACtCy5a,EAAeb,GAAgB3nM,GAAcA,GAAc,CAAC,EAAGglM,GAAO,CAAC,EAAG,CAC5Etta,MAAOA,KAqBT,GAlBA6ua,EAAOl9a,KAAmBgyN,EAAAA,aAAmB5rN,EAAO,CAClDnD,IAAK,WAAa46O,GAAOz3O,EAAOiI,GAChC,aAAcA,EACd3I,UAAWssV,KAAWmtF,EAAcD,GACpCl9L,SAAU,KACV,eAAgBm9L,EAAa,gBAC7B17a,MAAOkzO,GAAcA,GAAc,CACjC/iC,QAAS,QACRxtM,EAAM4vC,MAAMvyC,OAAS,CAAC,GAAIu7a,GAC7B1sW,QAAS,SAAiB3mD,GACxBvlB,EAAM4vC,OAAS5vC,EAAM4vC,MAAMs8B,SAAWlsE,EAAM4vC,MAAMs8B,QAAQ3mD,GACtDgwZ,EAAKhC,eACPgC,EAAKhC,cAAcoF,EAEvB,KAIEpD,EAAK/B,UAAYkF,EAAgB,IAAmB,IAAdnD,EAAKjC,OAAmBiC,EAAK4B,QAAS,CAC9E,IAAI6B,EAAaN,EAAgBzwa,EAC7B+wa,GAActB,GAAanC,MAC7B14a,GAAOm8a,IACI58M,IACTp8N,EAAQi5B,GAEV8/Y,EAAeb,GAAgB3nM,GAAcA,GAAc,CAAC,EAAGglM,GAAO,CAAC,EAAG,CACxEtta,MAAOpL,KAET27a,EAAe5+a,KAAmBgyN,EAAAA,aAAmB5rN,EAAO,CAC1DnD,IAAK,YAAc46O,GAAOz3O,EAAOnD,GACjC,aAAcA,EACd++O,SAAU,KACVt8O,UAAWssV,KAAWmtF,EAAcD,GACpC,eAAgBC,EAAa,gBAC7B17a,MAAOkzO,GAAcA,GAAc,CAAC,EAAGvwO,EAAM4vC,MAAMvyC,OAAS,CAAC,GAAIu7a,GACjE1sW,QAAS,SAAiB3mD,GACxBvlB,EAAM4vC,OAAS5vC,EAAM4vC,MAAMs8B,SAAWlsE,EAAM4vC,MAAMs8B,QAAQ3mD,GACtDgwZ,EAAKhC,eACPgC,EAAKhC,cAAcoF,EAEvB,OAGJ97a,EAAM67a,EAAgBzwa,GACZujZ,IACRxrZ,EAAQi5B,GAEV8/Y,EAAeb,GAAgB3nM,GAAcA,GAAc,CAAC,EAAGglM,GAAO,CAAC,EAAG,CACxEtta,MAAOpL,KAET47a,EAAgB7+a,KAAmBgyN,EAAAA,aAAmB5rN,EAAO,CAC3DnD,IAAK,aAAe46O,GAAOz3O,EAAOnD,GAClC,aAAcA,EACd++O,SAAU,KACVt8O,UAAWssV,KAAWmtF,EAAcD,GACpC,eAAgBC,EAAa,gBAC7B17a,MAAOkzO,GAAcA,GAAc,CAAC,EAAGvwO,EAAM4vC,MAAMvyC,OAAS,CAAC,GAAIu7a,GACjE1sW,QAAS,SAAiB3mD,GACxBvlB,EAAM4vC,OAAS5vC,EAAM4vC,MAAMs8B,SAAWlsE,EAAM4vC,MAAMs8B,QAAQ3mD,GACtDgwZ,EAAKhC,eACPgC,EAAKhC,cAAcoF,EAEvB,IAEJ,CACF,IACIpD,EAAKhwL,IACAizL,EAAej8a,OAAOu6a,EAAQ2B,GAAiBt0V,UAE/Cq0V,EAAej8a,OAAOu6a,EAAQ2B,EAEzC,EACWQ,GAAqB,SAAUC,GACxC,SAASD,IACP,IAAIzmZ,EAzKY/G,EAAGpB,EAAG9E,EA0KtBwpN,GAAgBh3O,KAAMkhb,GACtB,IAAK,IAAI5wM,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAOzB,OAnLgB78M,EA8KG1zB,KA9KAsyB,EA8KM4uZ,EA9KH1zZ,EA8KU,GAAGhpB,OAAO2lB,GA9KRmI,EAAI8uZ,GAAgB9uZ,GA8KtDmI,EA9K0D4mZ,GAA2B3tZ,EAAG4tZ,KAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,GAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,KA+KjMqqF,EAAAA,GAAAA,GAAgBp9E,EAAO,OAAQ,OAC/Bo9E,EAAAA,GAAAA,GAAgBp9E,EAAO,aAAa,SAAU8c,GAC5C9c,EAAM7yB,KAAO2vC,CACf,IACO9c,CACT,CAEA,OADAq8M,GAAUoqM,EAAOC,GACVlqM,GAAaiqM,EAAO,CAAC,CAC1Bp8a,IAAK,SACLlG,MAAO,WACL,IAAImgb,EAASyB,GAAaxgb,KAAK63C,OAC3Bk2M,EAAc/tP,KAAK63C,MAInB0pY,EAAc,CAChBt0L,aAJec,EAAYd,aAK3Bu0L,YAJczzL,EAAYyzL,YAK1Bt0L,aAJea,EAAYb,cAM7B,OAAoBr5B,EAAAA,cAAoB,MAAOoL,GAAS,CACtD1nL,IAAKv3C,KAAKyhb,UACVl6a,UAAW,cACXjC,MAAOtF,KAAK63C,MAAMwiY,YACjBkH,GAAcxC,EACnB,IAEJ,CAnCgC,CAmC9BlrN,EAAAA,eCxMF,IASW6tN,GAAoB,SAAUP,GACvC,SAASO,IAEP,OADA1qM,GAAgBh3O,KAAM0hb,GAfNhuZ,EAgBE1zB,KAhBIwtB,EAgBQ/d,UAhBI6iB,EAAI8uZ,GAAnB9uZ,EAgBKovZ,GAhBkCL,GAA2B3tZ,EAAG4tZ,KAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,GAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,IAArM,IAAoBkG,EAAGpB,EAAG9E,CAiBxB,CAEA,OADAspN,GAAU4qM,EAAMP,GACTlqM,GAAayqM,EAAM,CAAC,CACzB58a,IAAK,eACLlG,MAAO,SAAsBsE,EAASsqB,GAGpCA,EAAEukC,iBACF/xD,KAAK63C,MAAM8pY,aAAaz+a,EAC1B,GACC,CACD4B,IAAK,SACLlG,MAAO,WAsBL,IArBA,IA1BiC4+a,EA0B7BzvL,EAAc/tP,KAAK63C,MACrBo1M,EAAec,EAAYd,aAC3Bu0L,EAAczzL,EAAYyzL,YAC1Bt0L,EAAea,EAAYb,aAC3BuuL,EAAW1tL,EAAY0tL,SACvBc,EAAiBxuL,EAAYwuL,eAC7BC,EAAezuL,EAAYyuL,aAC3B5C,EAAa7rL,EAAY6rL,WACzBJ,EAAezrL,EAAYyrL,aACzBoI,GAnC6BpE,EAmCN,CACzB5D,WAAYA,EACZ2C,eAAgBA,EAChBC,aAAcA,EACdf,SAAUA,IArCPA,SACAj6a,KAAK6K,KAAKmxa,EAAK5D,WAAa4D,EAAKjB,gBAEjC/6a,KAAK6K,MAAMmxa,EAAK5D,WAAa4D,EAAKhB,cAAgBgB,EAAKjB,gBAAkB,EAoC1EgF,EAAc,CAChBt0L,aAAcA,EACdu0L,YAAaA,EACbt0L,aAAcA,GAEZi1H,EAAO,GACFjhX,EAAI,EAAGA,EAAI0gb,EAAU1gb,IAAK,CACjC,IAAI2gb,GAAe3gb,EAAI,GAAKq7a,EAAiB,EACzCuF,EAAarG,EAAWoG,EAAc7yU,GAAM6yU,EAAa,EAAGjI,EAAa,GACzEmI,EAAaD,GAAcvF,EAAiB,GAC5CyF,EAAYvG,EAAWsG,EAAa/yU,GAAM+yU,EAAY,EAAGnI,EAAa,GACtErya,EAAYssV,KAAW,CACzB,eAAgB4nF,EAAWjC,GAAgBwI,GAAaxI,GAAgBsI,EAAatI,IAAiBwI,IAEpGC,EAAa,CACfzyW,QAAS,OACTt/D,MAAOhP,EACPq7a,eAAgBA,EAChB/C,aAAcA,GAEZrlW,EAAUn0E,KAAK2hb,aAAap0a,KAAKvN,KAAMiib,GAC3C9/D,EAAOA,EAAK39W,OAAqBqvN,EAAAA,cAAoB,KAAM,CACzD/uN,IAAK5D,EACLqG,UAAWA,GACGssN,EAAAA,aAAmB7zN,KAAK63C,MAAMsjY,aAAaj6a,GAAI,CAC7DizE,QAASA,KAEb,CACA,OAAoB0/I,EAAAA,aAAmB7zN,KAAK63C,MAAM8iY,WAAWx4D,GAAO3pI,GAAc,CAChFjxO,UAAWvH,KAAK63C,MAAMujY,WACrBmG,GACL,IAEJ,CAjE+B,CAiE7B1tN,EAAAA,eC7EF,SAASquN,GAAWxuZ,EAAGpB,EAAG9E,GAAK,OAAO8E,EAAI8uZ,GAAgB9uZ,GAAI+uZ,GAA2B3tZ,EAAG4tZ,KAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,GAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,GAAK,CAInM,IAAI20Z,GAAyB,SAAUhB,GAC5C,SAASgB,IAEP,OADAnrM,GAAgBh3O,KAAMmib,GACfD,GAAWlib,KAAMmib,EAAW1ya,UACrC,CAEA,OADAqnO,GAAUqrM,EAAWhB,GACdlqM,GAAakrM,EAAW,CAAC,CAC9Br9a,IAAK,eACLlG,MAAO,SAAsBsE,EAASsqB,GAChCA,GACFA,EAAEukC,iBAEJ/xD,KAAK63C,MAAM8pY,aAAaz+a,EAASsqB,EACnC,GACC,CACD1oB,IAAK,SACLlG,MAAO,WACL,IAAIwjb,EAAc,CAChB,eAAe,EACf,cAAc,GAEZC,EAAcrib,KAAK2hb,aAAap0a,KAAKvN,KAAM,CAC7CwvE,QAAS,cAENxvE,KAAK63C,MAAM4jY,WAAyC,IAA5Bz7a,KAAK63C,MAAM2hY,cAAsBx5a,KAAK63C,MAAM+hY,YAAc55a,KAAK63C,MAAM2kY,gBAChG4F,EAAY,mBAAoB,EAChCC,EAAc,MAEhB,IAAIC,EAAiB,CACnBx9a,IAAK,IACL,YAAa,OACbyC,UAAWssV,KAAWuuF,GACtB98a,MAAO,CACLkB,QAAS,SAEX2tE,QAASkuW,GAEPxgE,EAAc,CAChB23D,aAAcx5a,KAAK63C,MAAM2hY,aACzBI,WAAY55a,KAAK63C,MAAM+hY,YAWzB,OARI55a,KAAK63C,MAAMukY,UACYvoN,EAAAA,aAAmB7zN,KAAK63C,MAAMukY,UAAW5jM,GAAcA,GAAc,CAAC,EAAG8pM,GAAiBzgE,IAE1FhuJ,EAAAA,cAAoB,SAAUoL,GAAS,CAC9Dn6N,IAAK,IACLkC,KAAM,UACLs7a,GAAiB,IAAK,WAG7B,IAEJ,CArDoC,CAqDlCzuN,EAAAA,eACS0uN,GAAyB,SAAUC,GAC5C,SAASD,IAEP,OADAvrM,GAAgBh3O,KAAMuib,GACfL,GAAWlib,KAAMuib,EAAW9ya,UACrC,CAEA,OADAqnO,GAAUyrM,EAAWC,GACdvrM,GAAasrM,EAAW,CAAC,CAC9Bz9a,IAAK,eACLlG,MAAO,SAAsBsE,EAASsqB,GAChCA,GACFA,EAAEukC,iBAEJ/xD,KAAK63C,MAAM8pY,aAAaz+a,EAASsqB,EACnC,GACC,CACD1oB,IAAK,SACLlG,MAAO,WACL,IAAI6jb,EAAc,CAChB,eAAe,EACf,cAAc,GAEZC,EAAc1ib,KAAK2hb,aAAap0a,KAAKvN,KAAM,CAC7CwvE,QAAS,SAEN4uW,GAAUp+a,KAAK63C,SAClB4qY,EAAY,mBAAoB,EAChCC,EAAc,MAEhB,IAAIC,EAAiB,CACnB79a,IAAK,IACL,YAAa,OACbyC,UAAWssV,KAAW4uF,GACtBn9a,MAAO,CACLkB,QAAS,SAEX2tE,QAASuuW,GAEP7gE,EAAc,CAChB23D,aAAcx5a,KAAK63C,MAAM2hY,aACzBI,WAAY55a,KAAK63C,MAAM+hY,YAWzB,OARI55a,KAAK63C,MAAM+jY,UACY/nN,EAAAA,aAAmB7zN,KAAK63C,MAAM+jY,UAAWpjM,GAAcA,GAAc,CAAC,EAAGmqM,GAAiB9gE,IAE1FhuJ,EAAAA,cAAoB,SAAUoL,GAAS,CAC9Dn6N,IAAK,IACLkC,KAAM,UACL27a,GAAiB,IAAK,OAG7B,IAEJ,CArDoC,CAqDlC9uN,EAAAA,eC5GEma,GAAY,CAAC,aAWV,IAAI40M,GAA2B,SAAU/rM,GAC9C,SAAS+rM,EAAY/qY,GACnB,IAAIpd,EAZY/G,EAAGpB,EAAG9E,EAatBwpN,GAAgBh3O,KAAM4ib,GAbNlvZ,EAcG1zB,KAdGwtB,EAcgB,CAACqqB,GAdLvlB,EAAI8uZ,GAAnB9uZ,EAcMswZ,GAAzBnoZ,EAd0D4mZ,GAA2B3tZ,EAAG4tZ,KAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,GAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,KAejMqqF,EAAAA,GAAAA,GAAgBp9E,EAAO,kBAAkB,SAAU8c,GACjD,OAAO9c,EAAMgmO,KAAOlpN,CACtB,KACAsgE,EAAAA,GAAAA,GAAgBp9E,EAAO,mBAAmB,SAAU8c,GAClD,OAAO9c,EAAM4tB,MAAQ9Q,CACvB,KACAsgE,EAAAA,GAAAA,GAAgBp9E,EAAO,eAAe,WACpC,GAAIA,EAAMod,MAAM4iY,gBAAkBhgZ,EAAMgmO,KAAM,CAC5C,IAAIv/N,EAAOzG,EAAMgmO,KAAK36N,cAAc,gBAAiBthC,OAAOi2B,EAAMpwB,MAAMmva,aAAc,OACtF/+Y,EAAMgmO,KAAKn7P,MAAM3D,OAAS6iC,GAAUtD,GAAQ,IAC9C,CACF,KACA22E,EAAAA,GAAAA,GAAgBp9E,EAAO,qBAAqB,WAE1C,GADAA,EAAMod,MAAMikY,QAAUrhZ,EAAMod,MAAMikY,SAC9BrhZ,EAAMod,MAAM8jY,SAAU,CACxB,IAAIkH,EAAetF,GAAsB/kM,GAAcA,GAAc,CAAC,EAAG/9M,EAAMod,OAAQpd,EAAMpwB,QACzFw4a,EAAa1hb,OAAS,IACxBs5B,EAAMy7E,UAAS,SAAU4pJ,GACvB,MAAO,CACL45K,eAAgB55K,EAAU45K,eAAel1a,OAAOq+a,GAEpD,IACIpoZ,EAAMod,MAAMirY,YACdroZ,EAAMod,MAAMirY,WAAWD,GAG7B,CACA,IAAIrF,EAAOhlM,GAAc,CACvBktK,QAASjrX,EAAMgmO,KACfg/K,SAAUhlZ,EAAM4tB,OACf5tB,EAAMod,OACTpd,EAAMsoZ,YAAYvF,GAAM,GAAM,WAC5B/iZ,EAAMuoZ,cACNvoZ,EAAMod,MAAMgjY,UAAYpgZ,EAAMwoZ,SAAS,UACzC,IAC6B,gBAAzBxoZ,EAAMod,MAAM8jY,WACdlhZ,EAAMyoZ,cAAgB9tS,YAAY36G,EAAM0oZ,oBAAqB,MAE/D1oZ,EAAM2pL,GAAK,IAAIiyB,IAAe,WACxB57M,EAAMpwB,MAAM+ua,WACd3+Y,EAAM2oZ,iBAAgB,GACtB3oZ,EAAM4oZ,eAAexhb,KAAKqrB,YAAW,WACnC,OAAOuN,EAAM2oZ,iBACf,GAAG3oZ,EAAMod,MAAM4kY,SAEfhiZ,EAAM2oZ,iBAEV,IACA3oZ,EAAM2pL,GAAG33L,QAAQgO,EAAMgmO,MACvBn5P,SAAS/G,kBAAoBM,MAAMhB,UAAUiB,QAAQf,KAAKuH,SAAS/G,iBAAiB,iBAAiB,SAAU87a,GAC7GA,EAAMiH,QAAU7oZ,EAAMod,MAAMqkY,aAAezhZ,EAAM8oZ,aAAe,KAChElH,EAAMmH,OAAS/oZ,EAAMod,MAAMqkY,aAAezhZ,EAAMgpZ,YAAc,IAChE,IACIl+a,OAAOgD,iBACThD,OAAOgD,iBAAiB,SAAUkyB,EAAM2oZ,iBAExC79a,OAAO+0D,YAAY,WAAY7/B,EAAM2oZ,gBAEzC,KACAvrU,EAAAA,GAAAA,GAAgBp9E,EAAO,wBAAwB,WACzCA,EAAMipZ,sBACR3jX,aAAatlC,EAAMipZ,sBAEjBjpZ,EAAMyoZ,eACR3tS,cAAc96G,EAAMyoZ,eAElBzoZ,EAAM4oZ,eAAelib,SACvBs5B,EAAM4oZ,eAAevib,SAAQ,SAAUsxV,GACrC,OAAOryR,aAAaqyR,EACtB,IACA33T,EAAM4oZ,eAAiB,IAErB99a,OAAOgD,iBACThD,OAAOukD,oBAAoB,SAAUrvB,EAAM2oZ,iBAE3C79a,OAAO40D,YAAY,WAAY1/B,EAAM2oZ,iBAEnC3oZ,EAAMkpZ,eACRpuS,cAAc96G,EAAMkpZ,eAEtBlpZ,EAAM2pL,GAAGgvB,YACX,KACAv7H,EAAAA,GAAAA,GAAgBp9E,EAAO,sBAAsB,SAAUmpZ,GAGrD,GAFAnpZ,EAAMopZ,kBACNppZ,EAAMod,MAAMmkY,UAAYvhZ,EAAMod,MAAMmkY,WAChCvhZ,EAAMod,MAAM8jY,SAAU,CACxB,IAAIkH,EAAetF,GAAsB/kM,GAAcA,GAAc,CAAC,EAAG/9M,EAAMod,OAAQpd,EAAMpwB,QACzFw4a,EAAa1hb,OAAS,IACxBs5B,EAAMy7E,UAAS,SAAU4pJ,GACvB,MAAO,CACL45K,eAAgB55K,EAAU45K,eAAel1a,OAAOq+a,GAEpD,IACIpoZ,EAAMod,MAAMirY,YACdroZ,EAAMod,MAAMirY,WAAWD,GAG7B,CAIApoZ,EAAMuoZ,cACN,IAAIxF,EAAOhlM,GAAcA,GAAc,CACrCktK,QAASjrX,EAAMgmO,KACfg/K,SAAUhlZ,EAAM4tB,OACf5tB,EAAMod,OAAQpd,EAAMpwB,OACnBy5a,EAAgBrpZ,EAAMspZ,eAAeH,GACzCE,GAAiBrpZ,EAAMsoZ,YAAYvF,EAAMsG,GAAe,WAClDrpZ,EAAMpwB,MAAMmva,cAAgB3lN,EAAAA,SAAe7/K,MAAMvZ,EAAMod,MAAMsM,WAC/D1pB,EAAMupZ,YAAY,CAChBx0W,QAAS,QACTt/D,MAAO2jN,EAAAA,SAAe7/K,MAAMvZ,EAAMod,MAAMsM,UAAY1pB,EAAMod,MAAM2kY,aAChEhD,aAAc/+Y,EAAMpwB,MAAMmva,eAG1BoK,EAAU/I,WAAapgZ,EAAMod,MAAMgjY,UAAY+I,EAAU9I,gBAAkBrgZ,EAAMod,MAAMijY,iBACpF8I,EAAU/I,UAAYpgZ,EAAMod,MAAMgjY,SACrCpgZ,EAAMwoZ,SAAS,WACNxoZ,EAAMod,MAAMgjY,SACrBpgZ,EAAMwoZ,SAAS,UAEfxoZ,EAAMwpZ,MAAM,UAGlB,GACF,KACApsU,EAAAA,GAAAA,GAAgBp9E,EAAO,mBAAmB,SAAUqpZ,GAC9CrpZ,EAAMypZ,iBAAiBzpZ,EAAMypZ,gBAAgB99U,SACjD3rE,EAAMypZ,gBAAkBj/U,GAAS,IAAI,WACnC,OAAOxqE,EAAM0pZ,aAAaL,EAC5B,IACArpZ,EAAMypZ,iBACR,KACArsU,EAAAA,GAAAA,GAAgBp9E,EAAO,gBAAgB,WACrC,IAAIqpZ,IAAgBr0a,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,KAAmBA,UAAU,GAGnF,GAFqBsC,QAAQ0oB,EAAM4tB,OAAS5tB,EAAM4tB,MAAMzgD,MAExD,CACA,IAAI41a,EAAOhlM,GAAcA,GAAc,CACrCktK,QAASjrX,EAAMgmO,KACfg/K,SAAUhlZ,EAAM4tB,OACf5tB,EAAMod,OAAQpd,EAAMpwB,OACvBowB,EAAMsoZ,YAAYvF,EAAMsG,GAAe,WACjCrpZ,EAAMod,MAAMgjY,SAAUpgZ,EAAMwoZ,SAAS,UAAexoZ,EAAMwpZ,MAAM,SACtE,IAEAxpZ,EAAMy7E,SAAS,CACbkjU,WAAW,IAEbr5W,aAAatlC,EAAMipZ,6BACZjpZ,EAAMipZ,oBAbc,CAc7B,KACA7rU,EAAAA,GAAAA,GAAgBp9E,EAAO,eAAe,SAAU+iZ,EAAMsG,EAAe94Z,GACnE,IAAIo5Z,EJ7EoB,SAA0B5G,GAEtD,IAKI1D,EALAF,EAAa/lN,EAAAA,SAAe7/K,MAAMwpY,EAAKr5X,UACvCu2N,EAAW8iK,EAAK93B,QAChBi0B,EAAYn4a,KAAK6K,KAAKkzB,GAASm7O,IAC/B2pK,EAAY7G,EAAKiC,UAAYjC,EAAKiC,SAAS73a,KAC3C0ya,EAAa94a,KAAK6K,KAAKkzB,GAAS8kZ,IAEpC,GAAK7G,EAAK9+Y,SAORo7Y,EAAaH,MAPK,CAClB,IAAI2K,EAAmB9G,EAAKxC,YAA6C,EAA/Bt0Z,SAAS82Z,EAAKvC,eACtB,kBAAvBuC,EAAKvC,eAA+D,MAAjCuC,EAAKvC,cAAcj2a,OAAO,KACtEs/a,GAAoB3K,EAAY,KAElCG,EAAat4a,KAAK6K,MAAMsta,EAAY2K,GAAoB9G,EAAKhB,aAC/D,CAGA,IAAI3C,EAAcn/J,GAAYl2O,GAAUk2O,EAAS50O,cAAc,qBAC3Dk0X,EAAa6f,EAAc2D,EAAKhB,aAChChD,OAAqCvsa,IAAtBuwa,EAAKhE,aAA6BgE,EAAK9B,aAAe8B,EAAKhE,aAC1EgE,EAAKhwL,UAA6BvgP,IAAtBuwa,EAAKhE,eACnBA,EAAeI,EAAa,EAAI4D,EAAK9B,cAEvC,IAAIhC,EAAiB8D,EAAK9D,gBAAkB,GACxCmJ,EAAetF,GAAsB/kM,GAAcA,GAAc,CAAC,EAAGglM,GAAO,CAAC,EAAG,CAClFhE,aAAcA,EACdE,eAAgBA,KAGdrva,EAAQ,CACVuva,WAAYA,EACZE,WAAYA,EACZH,UAAWA,EACXW,WAAYA,EACZd,aAAcA,EACdK,YAAaA,EACb7f,WAAYA,EACZ0f,eATFA,EAAiBA,EAAel1a,OAAOq+a,IAcvC,OAHyB,OAArBrF,EAAKnE,aAAwBmE,EAAK3C,WACpCxwa,EAAmB,YAAI,WAElBA,CACT,CIkCyBk6a,CAAiB/G,GACpCA,EAAOhlM,GAAcA,GAAcA,GAAc,CAAC,EAAGglM,GAAO4G,GAAe,CAAC,EAAG,CAC7ExG,WAAYwG,EAAa5K,eAE3B,IAAInnK,EAAamtK,GAAahC,GAC9BA,EAAOhlM,GAAcA,GAAc,CAAC,EAAGglM,GAAO,CAAC,EAAG,CAChDn8a,KAAMgxQ,IAER,IAAIgoK,EAAa6E,GAAY1B,IACzBsG,GAAiBjwN,EAAAA,SAAe7/K,MAAMvZ,EAAMod,MAAMsM,YAAc0vK,EAAAA,SAAe7/K,MAAMwpY,EAAKr5X,aAC5FigY,EAAyB,WAAI/J,GAE/B5/Y,EAAMy7E,SAASkuU,EAAcp5Z,EAC/B,KACA6sF,EAAAA,GAAAA,GAAgBp9E,EAAO,WAAW,WAChC,GAAIA,EAAMod,MAAMolY,cAAe,CAC7B,IAAIuH,EAAc,EAChBC,EAAa,EACXC,EAAiB,GACjBC,EAAYhF,GAAannM,GAAcA,GAAcA,GAAc,CAAC,EAAG/9M,EAAMod,OAAQpd,EAAMpwB,OAAQ,CAAC,EAAG,CACzGuva,WAAYn/Y,EAAMod,MAAMsM,SAAShjD,UAE/Byjb,EAAa9E,GAActnM,GAAcA,GAAcA,GAAc,CAAC,EAAG/9M,EAAMod,OAAQpd,EAAMpwB,OAAQ,CAAC,EAAG,CAC3Guva,WAAYn/Y,EAAMod,MAAMsM,SAAShjD,UAEnCs5B,EAAMod,MAAMsM,SAASrjD,SAAQ,SAAUmH,GACrCy8a,EAAe7ib,KAAKoG,EAAM4vC,MAAMvyC,MAAMrD,OACtCuib,GAAev8a,EAAM4vC,MAAMvyC,MAAMrD,KACnC,IACA,IAAK,IAAIf,EAAI,EAAGA,EAAIyjb,EAAWzjb,IAC7Bujb,GAAcC,EAAeA,EAAevjb,OAAS,EAAID,GACzDsjb,GAAeE,EAAeA,EAAevjb,OAAS,EAAID,GAE5D,IAAK,IAAIi6B,EAAK,EAAGA,EAAKypZ,EAAYzpZ,IAChCqpZ,GAAeE,EAAevpZ,GAEhC,IAAK,IAAI0pZ,EAAM,EAAGA,EAAMpqZ,EAAMpwB,MAAMmva,aAAcqL,IAChDJ,GAAcC,EAAeG,GAE/B,IAAIC,EAAc,CAChB7ib,MAAOuib,EAAc,KACrBnjb,MAAOojb,EAAa,MAEtB,GAAIhqZ,EAAMod,MAAMmjY,WAAY,CAC1B,IAAI+J,EAAe,GAAGvgb,OAAOkgb,EAAejqZ,EAAMpwB,MAAMmva,cAAe,MACvEsL,EAAYzjb,KAAO,QAAQmD,OAAOsgb,EAAYzjb,KAAM,eAAemD,OAAOugb,EAAc,WAC1F,CACA,MAAO,CACL1K,WAAYyK,EAEhB,CACA,IAAInE,EAAgB9sN,EAAAA,SAAe7/K,MAAMvZ,EAAMod,MAAMsM,UACjDq5X,EAAOhlM,GAAcA,GAAcA,GAAc,CAAC,EAAG/9M,EAAMod,OAAQpd,EAAMpwB,OAAQ,CAAC,EAAG,CACvFuva,WAAY+G,IAEV/G,EAAa+F,GAAanC,GAAQsC,GAActC,GAAQmD,EACxDrG,EAAa,IAAM7/Y,EAAMod,MAAM2kY,aAAe5C,EAC9CE,EAAa,IAAMF,EACnBoL,GAAalL,GAAc6F,GAAanC,GAAQ/iZ,EAAMpwB,MAAMmva,cAAgBc,EAAa,IAQ7F,OAPI7/Y,EAAMod,MAAMmjY,aACdgK,IAAc,IAAMlL,EAAaQ,EAAa,KAAO,GAMhD,CACLR,WAAYA,EAAa,IACzBO,WANe,CACfp4a,MAAOq4a,EAAa,IACpBj5a,KAAM2jb,EAAY,KAMtB,KACAntU,EAAAA,GAAAA,GAAgBp9E,EAAO,mBAAmB,WACxC,IAAIy6G,EAASz6G,EAAMgmO,MAAQhmO,EAAMgmO,KAAKlgQ,kBAAoBk6B,EAAMgmO,KAAKlgQ,iBAAiB,qBAAuB,GACzG0kb,EAAc/vS,EAAO/zI,OACvB+jb,EAAc,EAChBrkb,MAAMhB,UAAUiB,QAAQf,KAAKm1I,GAAQ,SAAU1qI,GAC7C,IAAIugC,EAAU,WACZ,QAASm6Y,GAAeA,GAAeD,GAAexqZ,EAAM2oZ,iBAC9D,EACA,GAAK54a,EAAM4pE,QAIJ,CACL,IAAI+wW,EAAmB36a,EAAM4pE,QAC7B5pE,EAAM4pE,QAAU,SAAU5mD,GACxB23Z,EAAiB33Z,GACjBhjB,EAAM/D,WAAW8sB,OACnB,CACF,MATE/oB,EAAM4pE,QAAU,WACd,OAAO5pE,EAAM/D,WAAW8sB,OAC1B,EAQG/oB,EAAM6xC,SACL5hB,EAAMod,MAAM8jY,SACdnxa,EAAM6xC,OAAS,WACb5hB,EAAMuoZ,cACNvoZ,EAAM4oZ,eAAexhb,KAAKqrB,WAAWuN,EAAM2oZ,gBAAiB3oZ,EAAMod,MAAM4kY,OAC1E,GAEAjya,EAAM6xC,OAAStR,EACfvgC,EAAM+xC,QAAU,WACdxR,IACAtQ,EAAMod,MAAMkkY,iBAAmBthZ,EAAMod,MAAMkkY,iBAC7C,GAGN,GACF,KACAlkU,EAAAA,GAAAA,GAAgBp9E,EAAO,uBAAuB,WAG5C,IAFA,IAAIooZ,EAAe,GACfrF,EAAOhlM,GAAcA,GAAc,CAAC,EAAG/9M,EAAMod,OAAQpd,EAAMpwB,OACtD6F,EAAQuqB,EAAMpwB,MAAMmva,aAActpa,EAAQuqB,EAAMpwB,MAAMuva,WAAakG,GAActC,GAAOtta,IAC/F,GAAIuqB,EAAMpwB,MAAMqva,eAAeh1a,QAAQwL,GAAS,EAAG,CACjD2ya,EAAahhb,KAAKqO,GAClB,KACF,CAEF,IAAK,IAAIk1a,EAAS3qZ,EAAMpwB,MAAMmva,aAAe,EAAG4L,IAAWzF,GAAanC,GAAO4H,IAC7E,GAAI3qZ,EAAMpwB,MAAMqva,eAAeh1a,QAAQ0gb,GAAU,EAAG,CAClDvC,EAAahhb,KAAKujb,GAClB,KACF,CAEEvC,EAAa1hb,OAAS,GACxBs5B,EAAMy7E,UAAS,SAAU7rG,GACvB,MAAO,CACLqva,eAAgBrva,EAAMqva,eAAel1a,OAAOq+a,GAEhD,IACIpoZ,EAAMod,MAAMirY,YACdroZ,EAAMod,MAAMirY,WAAWD,IAGrBpoZ,EAAMyoZ,gBACR3tS,cAAc96G,EAAMyoZ,sBACbzoZ,EAAMyoZ,cAGnB,KACArrU,EAAAA,GAAAA,GAAgBp9E,EAAO,gBAAgB,SAAUvqB,GAC/C,IAAIm1a,EAAc51a,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAC7Es+O,EAActzN,EAAMod,MACtBslY,EAAWpvL,EAAYovL,SACvBpC,EAAehtL,EAAYgtL,aAC3B+H,EAAa/0L,EAAY+0L,WACzBrG,EAAQ1uL,EAAY0uL,MACpB/B,EAAc3sL,EAAY2sL,YAExBlB,EAAe/+Y,EAAMpwB,MAAMmva,aAC3B8L,EJpLgB,SAAsB9H,GAC9C,IAAIN,EAAiBM,EAAKN,eACxB9D,EAAYoE,EAAKpE,UACjBmC,EAAOiC,EAAKjC,KACZE,EAAW+B,EAAK/B,SAChBvra,EAAQsta,EAAKtta,MACb0pa,EAAa4D,EAAK5D,WAClB+B,EAAW6B,EAAK7B,SAChBnC,EAAegE,EAAKhE,aACpBwB,EAAawC,EAAKxC,WAClBuB,EAAiBiB,EAAKjB,eACtBC,EAAegB,EAAKhB,aACpBO,EAASS,EAAKT,OACZrD,EAAiB8D,EAAK9D,eAC1B,GAAIwD,GAAkB9D,EAAW,MAAO,CAAC,EACzC,IACEmM,EACAC,EACAC,EAHEC,EAAiBx1a,EAIjB7F,EAAQ,CAAC,EACXwkW,EAAY,CAAC,EACX0rE,EAAckB,EAAWvra,EAAQ8+F,GAAM9+F,EAAO,EAAG0pa,EAAa,GAClE,GAAI2B,EAAM,CACR,IAAKE,IAAavra,EAAQ,GAAKA,GAAS0pa,GAAa,MAAO,CAAC,EACzD1pa,EAAQ,EACVw1a,EAAiBx1a,EAAQ0pa,EAChB1pa,GAAS0pa,IAClB8L,EAAiBx1a,EAAQ0pa,GAEvB+B,GAAYjC,EAAeh1a,QAAQghb,GAAkB,IACvDhM,EAAiBA,EAAel1a,OAAOkhb,IAEzCr7a,EAAQ,CACN+ua,WAAW,EACXI,aAAckM,EACdhM,eAAgBA,EAChBa,YAAamL,GAEf72E,EAAY,CACVuqE,WAAW,EACXmB,YAAamL,EAEjB,MACEH,EAAaG,EACTA,EAAiB,GACnBH,EAAaG,EAAiB9L,EACzB6B,EAAkC7B,EAAa2C,IAAmB,IAAGgJ,EAAa3L,EAAaA,EAAa2C,GAAlGgJ,EAAa,IAClBnH,GAAUZ,IAASkI,EAAiBlM,EAC9CkM,EAAiBH,EAAa/L,EACrBwB,GAAc0K,GAAkB9L,GACzC8L,EAAiBjK,EAAW7B,EAAaA,EAAa,EACtD2L,EAAa9J,EAAW,EAAI7B,EAAa,GAChC8L,GAAkB9L,IAC3B2L,EAAaG,EAAiB9L,EACzB6B,EAA0D7B,EAAa2C,IAAmB,IAAGgJ,EAAa,GAAhGA,EAAa3L,EAAa4C,IAEtCf,GAAYiK,EAAiBlJ,GAAgB5C,IAChD2L,EAAa3L,EAAa4C,GAE5BgJ,EAAgBhG,GAAahnM,GAAcA,GAAc,CAAC,EAAGglM,GAAO,CAAC,EAAG,CACtEI,WAAY8H,KAEdD,EAAYjG,GAAahnM,GAAcA,GAAc,CAAC,EAAGglM,GAAO,CAAC,EAAG,CAClEI,WAAY2H,KAET9J,IACC+J,IAAkBC,IAAWC,EAAiBH,GAClDC,EAAgBC,GAEd9J,IACFjC,EAAiBA,EAAel1a,OAAO+4a,GAAsB/kM,GAAcA,GAAc,CAAC,EAAGglM,GAAO,CAAC,EAAG,CACtGhE,aAAckM,OAGb3I,GAUH1ya,EAAQ,CACN+ua,WAAW,EACXI,aAAc+L,EACdlL,WAAYkF,GAAmB/mM,GAAcA,GAAc,CAAC,EAAGglM,GAAO,CAAC,EAAG,CACxEn8a,KAAMmkb,KAER9L,eAAgBA,EAChBa,YAAaA,GAEf1rE,EAAY,CACVuqE,WAAW,EACXI,aAAc+L,EACdlL,WAAY6E,GAAY1mM,GAAcA,GAAc,CAAC,EAAGglM,GAAO,CAAC,EAAG,CACjEn8a,KAAMokb,KAER1L,UAAW,KACXQ,YAAaA,IAzBflwa,EAAQ,CACNmva,aAAc+L,EACdlL,WAAY6E,GAAY1mM,GAAcA,GAAc,CAAC,EAAGglM,GAAO,CAAC,EAAG,CACjEn8a,KAAMokb,KAER/L,eAAgBA,EAChBa,YAAaA,GAuBnB,MAAO,CACLlwa,MAAOA,EACPwkW,UAAWA,EAEf,CIwE0B82E,CAAantM,GAAcA,GAAcA,GAAc,CACvEtoO,MAAOA,GACNuqB,EAAMod,OAAQpd,EAAMpwB,OAAQ,CAAC,EAAG,CACjCo1a,SAAUhlZ,EAAM4tB,MAChB00X,OAAQtiZ,EAAMod,MAAMklY,SAAWsI,KAEjCh7a,EAAQi7a,EAAcj7a,MACtBwkW,EAAYy2E,EAAcz2E,UAC5B,GAAKxkW,EAAL,CACA0wa,GAAgBA,EAAavB,EAAcnva,EAAMmva,cACjD,IAAIqJ,EAAex4a,EAAMqva,eAAevoa,QAAO,SAAUvS,GACvD,OAAO67B,EAAMpwB,MAAMqva,eAAeh1a,QAAQ9F,GAAS,CACrD,IACAkkb,GAAcD,EAAa1hb,OAAS,GAAK2hb,EAAWD,IAC/CpoZ,EAAMod,MAAMqlY,gBAAkBziZ,EAAMipZ,uBACvC3jX,aAAatlC,EAAMipZ,sBACnBhJ,GAAeA,EAAYlB,UACpB/+Y,EAAMipZ,sBAEfjpZ,EAAMy7E,SAAS7rG,GAAO,WAEhB8ya,GAAY1iZ,EAAMmrZ,gBAAkB11a,IACtCuqB,EAAMmrZ,cAAgB11a,EACtBita,EAAS0I,YAAYF,aAAaz1a,IAE/B2+V,IACLp0U,EAAMipZ,qBAAuBx2Z,YAAW,WACtC,IAAIksZ,EAAYvqE,EAAUuqE,UACxB0M,EAAa/rM,GAAyB80H,EAAW7gI,IACnDvzM,EAAMy7E,SAAS4vU,GAAY,WACzBrrZ,EAAM4oZ,eAAexhb,KAAKqrB,YAAW,WACnC,OAAOuN,EAAMy7E,SAAS,CACpBkjU,UAAWA,GAEf,GAAG,KACHsB,GAAeA,EAAYrwa,EAAMmva,qBAC1B/+Y,EAAMipZ,oBACf,GACF,GAAGjH,GACL,GA/BkB,CAgCpB,KACA5kU,EAAAA,GAAAA,GAAgBp9E,EAAO,eAAe,SAAUv3B,GAC9C,IAAImib,EAAc51a,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAE7E8qa,EJnHe,SAAqBiD,EAAMt6a,GAClD,IAAI6ib,EAAaC,EAAaC,EAA2B1L,EACrDgC,EAAiBiB,EAAKjB,eACxBC,EAAegB,EAAKhB,aACpB5C,EAAa4D,EAAK5D,WAClBJ,EAAegE,EAAKhE,aACpB0M,EAAsB1I,EAAKjD,YAC3BoB,EAAW6B,EAAK7B,SAChBF,EAAW+B,EAAK/B,SAGlB,GADAsK,EADenM,EAAa2C,IAAmB,EAClB,GAAK3C,EAAaJ,GAAgB+C,EACvC,aAApBr5a,EAAQssE,QAEV+qW,EAAcf,GADdyM,EAA8B,IAAhBF,EAAoBxJ,EAAiBC,EAAeuJ,GAE9DpK,IAAaF,IAEflB,GAA+B,KAD/ByL,EAAcxM,EAAeyM,GACMrM,EAAa,EAAIoM,GAEjDvK,IACHlB,EAAc2L,EAAsB3J,QAEjC,GAAwB,SAApBr5a,EAAQssE,QAEjB+qW,EAAcf,GADdyM,EAA8B,IAAhBF,EAAoBxJ,EAAiBwJ,GAE/CpK,IAAaF,IACflB,GAAef,EAAe+C,GAAkB3C,EAAamM,GAE1DtK,IACHlB,EAAc2L,EAAsB3J,QAEjC,GAAwB,SAApBr5a,EAAQssE,QAEjB+qW,EAAcr3a,EAAQgN,MAAQhN,EAAQq5a,oBACjC,GAAwB,aAApBr5a,EAAQssE,SAGjB,GADA+qW,EAAcr3a,EAAQgN,MAClBura,EAAU,CACZ,IAAIh+S,EAAYsiT,GAAiBvnM,GAAcA,GAAc,CAAC,EAAGglM,GAAO,CAAC,EAAG,CAC1EjD,YAAaA,KAEXA,EAAcr3a,EAAQs2a,cAA8B,SAAd/7S,EACxC88S,GAA4BX,EACnBW,EAAcr3a,EAAQs2a,cAA8B,UAAd/7S,IAC/C88S,GAA4BX,EAEhC,MAC6B,UAApB12a,EAAQssE,UACjB+qW,EAAcrza,OAAOhE,EAAQgN,QAE/B,OAAOqqa,CACT,CIiEwByJ,CADPxrM,GAAcA,GAAc,CAAC,EAAG/9M,EAAMod,OAAQpd,EAAMpwB,OAC3BnH,GACpC,IAAoB,IAAhBq3a,GAAsBA,MACN,IAAhB8K,EACF5qZ,EAAMkrZ,aAAapL,EAAa8K,GAEhC5qZ,EAAMkrZ,aAAapL,GAErB9/Y,EAAMod,MAAMgjY,UAAYpgZ,EAAMwoZ,SAAS,UACnCxoZ,EAAMod,MAAM2jY,eAAe,CAC7B,IAAI1lH,EAAQr7R,EAAMgmO,KAAKlgQ,iBAAiB,kBACxCu1T,EAAM,IAAMA,EAAM,GAAGviS,OACvB,CACF,KACAskF,EAAAA,GAAAA,GAAgBp9E,EAAO,gBAAgB,SAAUjN,IACvB,IAApBiN,EAAM0rZ,YACR34Z,EAAEojC,kBACFpjC,EAAEukC,kBAEJt3B,EAAM0rZ,WAAY,CACpB,KACAtuU,EAAAA,GAAAA,GAAgBp9E,EAAO,cAAc,SAAUjN,GAC7C,IAAIynF,EJrFc,SAAoBznF,EAAGgtZ,EAAehtL,GAC5D,OAAIhgO,EAAEziB,OAAO1D,QAAQuR,MAAM,2BAA6B4ha,EAAsB,GAC5D,KAAdhtZ,EAAE2jC,QAAuBq8L,EAAM,OAAS,WAC1B,KAAdhgO,EAAE2jC,QAAuBq8L,EAAM,WAAa,OACzC,EACT,CIgFgB44L,CAAW54Z,EAAGiN,EAAMod,MAAM2iY,cAAe//Y,EAAMod,MAAM21M,KACvD,KAARv4I,GAAcx6E,EAAMupZ,YAAY,CAC9Bx0W,QAASylC,GAEb,KACA4C,EAAAA,GAAAA,GAAgBp9E,EAAO,iBAAiB,SAAUv3B,GAChDu3B,EAAMupZ,YAAY9gb,EACpB,KACA20G,EAAAA,GAAAA,GAAgBp9E,EAAO,qBAAqB,WAM1Cl1B,OAAO8gb,YALc,SAAwB74Z,IAC3CA,EAAIA,GAAKjoB,OAAO6zD,OACVrH,gBAAgBvkC,EAAEukC,iBACxBvkC,EAAEqkC,aAAc,CAClB,CAEF,KACAgmD,EAAAA,GAAAA,GAAgBp9E,EAAO,oBAAoB,WACzCl1B,OAAO8gb,YAAc,IACvB,KACAxuU,EAAAA,GAAAA,GAAgBp9E,EAAO,cAAc,SAAUjN,GACzCiN,EAAMod,MAAMsmY,iBACd1jZ,EAAM6rZ,oBAER,IAAIj8a,EJtGc,SAAoBmjB,EAAGkvZ,EAAOlwF,GAEpD,MADqB,QAArBh/T,EAAEziB,OAAO1D,SAAqBi2a,GAAmB9vZ,IAC5CkvZ,IAAUlwF,IAA0C,IAA7Bh/T,EAAExmB,KAAKtC,QAAQ,SAAwB,GAC5D,CACL4pZ,UAAU,EACV4rB,YAAa,CACXtzR,OAAQp5H,EAAE0pC,QAAU1pC,EAAE0pC,QAAQ,GAAG5D,MAAQ9lC,EAAE4lC,QAC3ClrB,OAAQ1a,EAAE0pC,QAAU1pC,EAAE0pC,QAAQ,GAAG3D,MAAQ/lC,EAAE6lC,QAC3C8mX,KAAM3sZ,EAAE0pC,QAAU1pC,EAAE0pC,QAAQ,GAAG5D,MAAQ9lC,EAAE4lC,QACzCgnX,KAAM5sZ,EAAE0pC,QAAU1pC,EAAE0pC,QAAQ,GAAG3D,MAAQ/lC,EAAE6lC,SAG/C,CI0FkBkzX,CAAW/4Z,EAAGiN,EAAMod,MAAM6kY,MAAOjiZ,EAAMod,MAAM20S,WAC/C,KAAVniV,GAAgBowB,EAAMy7E,SAAS7rG,EACjC,KACAwtG,EAAAA,GAAAA,GAAgBp9E,EAAO,aAAa,SAAUjN,GAC5C,IAAInjB,EJ7Fa,SAAmBmjB,EAAGgwZ,GAE3C,IAAIzoS,EAAYyoS,EAAKzoS,UACnBqkS,EAAYoE,EAAKpE,UACjB16Y,EAAW8+Y,EAAK9+Y,SAChBk+Y,EAAeY,EAAKZ,aACpBuB,EAAkBX,EAAKW,gBACvB3wL,EAAMgwL,EAAKhwL,IACXgsL,EAAegE,EAAKhE,aACpB8B,EAAekC,EAAKlC,aACpB7B,EAAc+D,EAAK/D,YACnBoC,EAAS2B,EAAK3B,OACd7B,EAASwD,EAAKxD,OACdC,EAAUuD,EAAKvD,QACfL,EAAa4D,EAAK5D,WAClB2C,EAAiBiB,EAAKjB,eACtBd,EAAW+B,EAAK/B,SAChBvB,EAAcsD,EAAKtD,YACnByC,EAAaa,EAAKb,WAClB3iB,EAAawjB,EAAKxjB,WAClB2f,EAAY6D,EAAK7D,UACnB,IAAI5kS,EAAJ,CACA,GAAIqkS,EAAW,OAAOkE,GAAmB9vZ,GACrCkR,GAAYk+Y,GAAgBuB,GAAiBb,GAAmB9vZ,GACpE,IAAIusZ,EACF1va,EAAQ,CAAC,EACPm8a,EAAUhH,GAAahC,GAC3BtD,EAAYC,KAAO3sZ,EAAE0pC,QAAU1pC,EAAE0pC,QAAQ,GAAG5D,MAAQ9lC,EAAE4lC,QACtD8mX,EAAYE,KAAO5sZ,EAAE0pC,QAAU1pC,EAAE0pC,QAAQ,GAAG3D,MAAQ/lC,EAAE6lC,QACtD6mX,EAAYuM,YAAcjlb,KAAK22B,MAAM32B,KAAKs4H,KAAKt4H,KAAKylH,IAAIizT,EAAYC,KAAOD,EAAYtzR,OAAQ,KAC/F,IAAI8/R,EAAsBllb,KAAK22B,MAAM32B,KAAKs4H,KAAKt4H,KAAKylH,IAAIizT,EAAYE,KAAOF,EAAYhyY,OAAQ,KAC/F,IAAKi2Y,IAAoBlE,GAAWyM,EAAsB,GACxD,MAAO,CACL3xS,WAAW,GAGXopS,IAAiBjE,EAAYuM,YAAcC,GAC/C,IAAIC,GAAmBn5L,GAAW,EAAL,IAAW0sL,EAAYC,KAAOD,EAAYtzR,OAAS,GAAK,GACjFu3R,IAAiBwI,EAAiBzM,EAAYE,KAAOF,EAAYhyY,OAAS,GAAK,GACnF,IAAI05Y,EAAWpgb,KAAK6K,KAAKuta,EAAa2C,GAClCqK,EAAiB7I,GAAkBP,EAAKtD,YAAaiE,GACrD0I,EAAmB3M,EAAYuM,YAiCnC,OAhCKhL,IACkB,IAAjBjC,IAA0C,UAAnBoN,GAAiD,SAAnBA,IAA8BpN,EAAe,GAAKoI,IAAgC,SAAnBgF,GAAgD,OAAnBA,KAA6BxI,GAAUZ,KAA6B,SAAnBoJ,GAAgD,OAAnBA,MACjOC,EAAmB3M,EAAYuM,YAAcnL,GACzB,IAAhB7B,GAAyBoC,IAC3BA,EAAO+K,GACPv8a,EAAmB,aAAI,KAIxB2va,GAAU2C,IACbA,EAAWiK,GACXv8a,EAAc,QAAI,GASlB0va,EAPGr7Y,EAOS8nZ,EAAUK,GAAoB7sB,EAAa2f,GAAagN,EAN/Dn5L,EAGSg5L,EAAUK,EAAmBF,EAF7BH,EAAUK,EAAmBF,EAOzCxI,IACFpE,EAAYyM,EAAUK,EAAmBF,GAE3Ct8a,EAAQmuO,GAAcA,GAAc,CAAC,EAAGnuO,GAAQ,CAAC,EAAG,CAClD6va,YAAaA,EACbH,UAAWA,EACXM,WAAY6E,GAAY1mM,GAAcA,GAAc,CAAC,EAAGglM,GAAO,CAAC,EAAG,CACjEn8a,KAAM04a,OAGNv4a,KAAK6E,IAAI6za,EAAYC,KAAOD,EAAYtzR,QAA4D,GAAlDplJ,KAAK6E,IAAI6za,EAAYE,KAAOF,EAAYhyY,SAG1FgyY,EAAYuM,YAAc,KAC5Bp8a,EAAe,SAAI,EACnBiza,GAAmB9vZ,IAJZnjB,CAtDY,CA6DvB,CIWkBy8a,CAAUt5Z,EAAGgrN,GAAcA,GAAcA,GAAc,CAAC,EAAG/9M,EAAMod,OAAQpd,EAAMpwB,OAAQ,CAAC,EAAG,CACrGo1a,SAAUhlZ,EAAM4tB,MAChBq9V,QAASjrX,EAAMgmO,KACfm9K,WAAYnjZ,EAAMpwB,MAAMmva,gBAErBnva,IACDA,EAAe,UACjBowB,EAAM0rZ,WAAY,GAEpB1rZ,EAAMy7E,SAAS7rG,GACjB,KACAwtG,EAAAA,GAAAA,GAAgBp9E,EAAO,YAAY,SAAUjN,GAC3C,IAAInjB,EJtBY,SAAkBmjB,EAAGgwZ,GACzC,IAAIlvB,EAAWkvB,EAAKlvB,SAClBouB,EAAQc,EAAKd,MACbxC,EAAcsD,EAAKtD,YACnBP,EAAY6D,EAAK7D,UACjBmD,EAAiBU,EAAKV,eACtBqB,EAAkBX,EAAKW,gBACvBnkB,EAAawjB,EAAKxjB,WAClB4iB,EAAeY,EAAKZ,aACpB7nS,EAAYyoS,EAAKzoS,UACjBgyS,EAAUvJ,EAAKuJ,QACfxM,EAAciD,EAAKjD,YACnBf,EAAegE,EAAKhE,aACpBiC,EAAW+B,EAAK/B,SAClB,IAAKntB,EAEH,OADIouB,GAAOY,GAAmB9vZ,GACvB,CAAC,EAEV,IAAIw5Z,EAAW7I,EAAkBnkB,EAAa8iB,EAAiBnD,EAAYmD,EACvE8J,EAAiB7I,GAAkB7D,EAAaiE,GAEhD9za,EAAQ,CACVikZ,UAAU,EACVmrB,aAAa,EACb1kS,WAAW,EACXklS,SAAS,EACTD,QAAQ,EACRD,UAAW,KACXG,YAAa,CAAC,GAEhB,GAAInlS,EACF,OAAO1qI,EAET,IAAK6va,EAAYuM,YACf,OAAOp8a,EAET,GAAI6va,EAAYuM,YAAcO,EAAU,CAKtC,IAAIpN,EAAYqN,EAJhB3J,GAAmB9vZ,GACfu5Z,GACFA,EAAQH,GAGV,IAAIM,EAAczL,EAAWjC,EAAee,EAC5C,OAAQqM,GACN,IAAK,OACL,IAAK,KACHK,EAAWC,EAAcvI,GAAcnB,GACvC5D,EAAagD,EAAe2B,GAAef,EAAMyJ,GAAYA,EAC7D58a,EAAwB,iBAAI,EAC5B,MACF,IAAK,QACL,IAAK,OACH48a,EAAWC,EAAcvI,GAAcnB,GACvC5D,EAAagD,EAAe2B,GAAef,EAAMyJ,GAAYA,EAC7D58a,EAAwB,iBAAI,EAC5B,MACF,QACEuva,EAAasN,EAEjB78a,EAA2B,oBAAIuva,CACjC,KAAO,CAEL,IAAIL,EAAciG,GAAahC,GAC/Bnza,EAAkB,WAAIk1a,GAAmB/mM,GAAcA,GAAc,CAAC,EAAGglM,GAAO,CAAC,EAAG,CAClFn8a,KAAMk4a,IAEV,CACA,OAAOlva,CACT,CI9CkB88a,CAAS35Z,EAAGgrN,GAAcA,GAAcA,GAAc,CAAC,EAAG/9M,EAAMod,OAAQpd,EAAMpwB,OAAQ,CAAC,EAAG,CACpGo1a,SAAUhlZ,EAAM4tB,MAChBq9V,QAASjrX,EAAMgmO,KACfm9K,WAAYnjZ,EAAMpwB,MAAMmva,gBAE1B,GAAKnva,EAAL,CACA,IAAI+8a,EAAsB/8a,EAA2B,2BAC9CA,EAA2B,oBAClCowB,EAAMy7E,SAAS7rG,QACa4C,IAAxBm6a,IACJ3sZ,EAAMkrZ,aAAayB,GACf3sZ,EAAMod,MAAMsmY,iBACd1jZ,EAAM4sZ,mBAPU,CASpB,KACAxvU,EAAAA,GAAAA,GAAgBp9E,EAAO,YAAY,SAAUjN,GAC3CiN,EAAM0sZ,SAAS35Z,GACfiN,EAAM0rZ,WAAY,CACpB,KACAtuU,EAAAA,GAAAA,GAAgBp9E,EAAO,aAAa,WAIlCA,EAAM4oZ,eAAexhb,KAAKqrB,YAAW,WACnC,OAAOuN,EAAMupZ,YAAY,CACvBx0W,QAAS,YAEb,GAAG,GACL,KACAqoC,EAAAA,GAAAA,GAAgBp9E,EAAO,aAAa,WAClCA,EAAM4oZ,eAAexhb,KAAKqrB,YAAW,WACnC,OAAOuN,EAAMupZ,YAAY,CACvBx0W,QAAS,QAEb,GAAG,GACL,KACAqoC,EAAAA,GAAAA,GAAgBp9E,EAAO,aAAa,SAAU4hZ,GAC5C,IAAIgJ,EAAc51a,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAEjF,GADA4sa,EAAQn1a,OAAOm1a,GACXl5Z,MAAMk5Z,GAAQ,MAAO,GACzB5hZ,EAAM4oZ,eAAexhb,KAAKqrB,YAAW,WACnC,OAAOuN,EAAMupZ,YAAY,CACvBx0W,QAAS,QACTt/D,MAAOmsa,EACP7C,aAAc/+Y,EAAMpwB,MAAMmva,cACzB6L,EACL,GAAG,GACL,KACAxtU,EAAAA,GAAAA,GAAgBp9E,EAAO,QAAQ,WAC7B,IAAI6nF,EACJ,GAAI7nF,EAAMod,MAAM21M,IACdlrI,EAAY7nF,EAAMpwB,MAAMmva,aAAe/+Y,EAAMod,MAAM0kY,mBAC9C,CACL,IAAI6B,GAAU5lM,GAAcA,GAAc,CAAC,EAAG/9M,EAAMod,OAAQpd,EAAMpwB,QAGhE,OAAO,EAFPi4G,EAAY7nF,EAAMpwB,MAAMmva,aAAe/+Y,EAAMod,MAAM0kY,cAIvD,CACA9hZ,EAAMkrZ,aAAarjU,EACrB,KACAzK,EAAAA,GAAAA,GAAgBp9E,EAAO,YAAY,SAAU6sZ,GACvC7sZ,EAAMkpZ,eACRpuS,cAAc96G,EAAMkpZ,eAEtB,IAAItK,EAAc5+Y,EAAMpwB,MAAMgva,YAC9B,GAAiB,WAAbiO,GACF,GAAoB,YAAhBjO,GAA6C,YAAhBA,GAA6C,WAAhBA,EAC5D,YAEG,GAAiB,UAAbiO,GACT,GAAoB,WAAhBjO,GAA4C,YAAhBA,EAC9B,YAEG,GAAiB,SAAbiO,IACW,WAAhBjO,GAA4C,YAAhBA,GAC9B,OAGJ5+Y,EAAMkpZ,cAAgBvuS,YAAY36G,EAAM8sZ,KAAM9sZ,EAAMod,MAAMijY,cAAgB,IAC1ErgZ,EAAMy7E,SAAS,CACbmjU,YAAa,WAEjB,KACAxhU,EAAAA,GAAAA,GAAgBp9E,EAAO,SAAS,SAAU+sZ,GACpC/sZ,EAAMkpZ,gBACRpuS,cAAc96G,EAAMkpZ,eACpBlpZ,EAAMkpZ,cAAgB,MAExB,IAAItK,EAAc5+Y,EAAMpwB,MAAMgva,YACZ,WAAdmO,EACF/sZ,EAAMy7E,SAAS,CACbmjU,YAAa,WAEQ,YAAdmO,EACW,YAAhBnO,GAA6C,YAAhBA,GAC/B5+Y,EAAMy7E,SAAS,CACbmjU,YAAa,YAKG,YAAhBA,GACF5+Y,EAAMy7E,SAAS,CACbmjU,YAAa,WAIrB,KACAxhU,EAAAA,GAAAA,GAAgBp9E,EAAO,cAAc,WACnC,OAAOA,EAAMod,MAAMgjY,UAAYpgZ,EAAMwpZ,MAAM,UAC7C,KACApsU,EAAAA,GAAAA,GAAgBp9E,EAAO,eAAe,WACpC,OAAOA,EAAMod,MAAMgjY,UAAwC,YAA5BpgZ,EAAMpwB,MAAMgva,aAA6B5+Y,EAAMwoZ,SAAS,QACzF,KACAprU,EAAAA,GAAAA,GAAgBp9E,EAAO,eAAe,WACpC,OAAOA,EAAMod,MAAMgjY,UAAYpgZ,EAAMwpZ,MAAM,UAC7C,KACApsU,EAAAA,GAAAA,GAAgBp9E,EAAO,gBAAgB,WACrC,OAAOA,EAAMod,MAAMgjY,UAAwC,YAA5BpgZ,EAAMpwB,MAAMgva,aAA6B5+Y,EAAMwoZ,SAAS,QACzF,KACAprU,EAAAA,GAAAA,GAAgBp9E,EAAO,gBAAgB,WACrC,OAAOA,EAAMod,MAAMgjY,UAAYpgZ,EAAMwpZ,MAAM,UAC7C,KACApsU,EAAAA,GAAAA,GAAgBp9E,EAAO,eAAe,WACpC,OAAOA,EAAMod,MAAMgjY,UAAwC,YAA5BpgZ,EAAMpwB,MAAMgva,aAA6B5+Y,EAAMwoZ,SAAS,OACzF,KACAprU,EAAAA,GAAAA,GAAgBp9E,EAAO,UAAU,WAC/B,IAaI0nV,EAYAi6D,EAAWR,EAzBXr0a,EAAYssV,KAAW,eAAgBp5T,EAAMod,MAAMtwC,UAAW,CAChE,iBAAkBkzB,EAAMod,MAAMnZ,SAC9B,qBAAqB,IAEnB8+Y,EAAOhlM,GAAcA,GAAc,CAAC,EAAG/9M,EAAMod,OAAQpd,EAAMpwB,OAC3Do9a,EAAanJ,GAAcd,EAAM,CAAC,OAAQ,UAAW,QAAS,WAAY,aAAc,gBAAiB,eAAgB,WAAY,iBAAkB,MAAO,aAAc,cAAe,aAAc,WAAY,eAAgB,iBAAkB,aAAc,aAAc,gBAAiB,UAAW,gBAAiB,cAAe,WAC/UrB,EAAe1hZ,EAAMod,MAAMskY,aAQ/B,GAPAsL,EAAajvM,GAAcA,GAAc,CAAC,EAAGivM,GAAa,CAAC,EAAG,CAC5Dx6L,aAAckvL,EAAe1hZ,EAAMitZ,YAAc,KACjDx6L,aAAcivL,EAAe1hZ,EAAMktZ,aAAe,KAClDnG,YAAarF,EAAe1hZ,EAAMitZ,YAAc,KAChDlM,cAAe/gZ,EAAMod,MAAM2jY,eAAiB/gZ,EAAM0rZ,UAAY1rZ,EAAMmtZ,cAAgB,QAG7D,IAArBntZ,EAAMod,MAAMsqU,MAAiB1nV,EAAMpwB,MAAMuva,YAAcn/Y,EAAMod,MAAM2kY,aAAc,CACnF,IAAIqL,EAAWvJ,GAAcd,EAAM,CAAC,YAAa,aAAc,eAAgB,eAAgB,iBAAkB,eAAgB,WAAY,eAAgB,WAAY,eACrKvB,EAAmBxhZ,EAAMod,MAAMokY,iBACnC4L,EAAWrvM,GAAcA,GAAc,CAAC,EAAGqvM,GAAW,CAAC,EAAG,CACxDlG,aAAclnZ,EAAMupZ,YACpB/2L,aAAcgvL,EAAmBxhZ,EAAMqtZ,YAAc,KACrDtG,YAAavF,EAAmBxhZ,EAAMstZ,WAAa,KACnD76L,aAAc+uL,EAAmBxhZ,EAAMqtZ,YAAc,OAEvD3lE,EAAoBtuJ,EAAAA,cAAoB6tN,GAAMmG,EAChD,CAEA,IAAIG,EAAa1J,GAAcd,EAAM,CAAC,WAAY,aAAc,eAAgB,aAAc,eAAgB,YAAa,cAC3HwK,EAAWrG,aAAelnZ,EAAMupZ,YAC5BvpZ,EAAMod,MAAM+iY,SACdwB,EAAyBvoN,EAAAA,cAAoBsuN,GAAW6F,GACxDpM,EAAyB/nN,EAAAA,cAAoB0uN,GAAWyF,IAE1D,IAAIC,EAAsB,KACtBxtZ,EAAMod,MAAMnZ,WACdupZ,EAAsB,CACpBtmb,OAAQ84B,EAAMpwB,MAAM2vZ,aAGxB,IAAIkuB,EAAqB,MACI,IAAzBztZ,EAAMod,MAAMnZ,UACiB,IAA3BjE,EAAMod,MAAMmjY,aACdkN,EAAqB,CACnB3mZ,QAAS,OAAS9G,EAAMod,MAAMojY,iBAIH,IAA3BxgZ,EAAMod,MAAMmjY,aACdkN,EAAqB,CACnB3mZ,QAAS9G,EAAMod,MAAMojY,cAAgB,SAI3C,IAAIn8I,EAAYtmD,GAAcA,GAAc,CAAC,EAAGyvM,GAAsBC,GAClErL,EAAYpiZ,EAAMod,MAAMglY,UACxBsL,EAAY,CACd5gb,UAAW,aACXjC,MAAOw5R,EACP3qN,QAAS15C,EAAMknZ,aACfzpF,YAAa2kF,EAAYpiZ,EAAM8rZ,WAAa,KAC5CtwK,YAAax7O,EAAMpwB,MAAMikZ,UAAYuuB,EAAYpiZ,EAAMqsZ,UAAY,KACnE3uF,UAAW0kF,EAAYpiZ,EAAM0sZ,SAAW,KACxCj6L,aAAczyN,EAAMpwB,MAAMikZ,UAAYuuB,EAAYpiZ,EAAM0sZ,SAAW,KACnE9wB,aAAcwmB,EAAYpiZ,EAAM8rZ,WAAa,KAC7CxwB,YAAat7X,EAAMpwB,MAAMikZ,UAAYuuB,EAAYpiZ,EAAMqsZ,UAAY,KACnE1wB,WAAYymB,EAAYpiZ,EAAM2tZ,SAAW,KACzCC,cAAe5tZ,EAAMpwB,MAAMikZ,UAAYuuB,EAAYpiZ,EAAM0sZ,SAAW,KACpE94L,UAAW5zN,EAAMod,MAAM2iY,cAAgB//Y,EAAM2rZ,WAAa,MAExDkC,EAAmB,CACrB/gb,UAAWA,EACX0tG,IAAK,MACL3vG,MAAOm1B,EAAMod,MAAMvyC,OAWrB,OATIm1B,EAAMod,MAAMunY,UACd+I,EAAY,CACV5gb,UAAW,cAEb+gb,EAAmB,CACjB/gb,UAAWA,EACXjC,MAAOm1B,EAAMod,MAAMvyC,QAGHuuN,EAAAA,cAAoB,MAAOy0N,EAAmB7tZ,EAAMod,MAAMunY,QAAsB,GAAZhD,EAA6BvoN,EAAAA,cAAoB,MAAOoL,GAAS,CACvJ1nL,IAAK9c,EAAM8tZ,gBACVJ,GAAyBt0N,EAAAA,cAAoBqtN,GAAOjiN,GAAS,CAC9D1nL,IAAK9c,EAAM+tZ,iBACVf,GAAahtZ,EAAMod,MAAMsM,WAAa1pB,EAAMod,MAAMunY,QAAsB,GAAZxD,EAAiBnhZ,EAAMod,MAAMunY,QAAiB,GAAPj9D,EACxG,IACA1nV,EAAMgmO,KAAO,KACbhmO,EAAM4tB,MAAQ,KACd5tB,EAAMpwB,MAAQmuO,GAAcA,GAAc,CAAC,EAAGkjI,IAAe,CAAC,EAAG,CAC/D89D,aAAc/+Y,EAAMod,MAAM6jY,aAC1BnB,YAAa9/Y,EAAMod,MAAM6jY,aAAejhZ,EAAMod,MAAM6jY,aAAe,EACnE9B,WAAY/lN,EAAAA,SAAe7/K,MAAMvZ,EAAMod,MAAMsM,YAE/C1pB,EAAM4oZ,eAAiB,GACvB5oZ,EAAM0rZ,WAAY,EAClB1rZ,EAAMypZ,gBAAkB,KACxB,IAAIuE,EAAWhuZ,EAAMiuZ,UAErB,OADAjuZ,EAAMpwB,MAAQmuO,GAAcA,GAAc,CAAC,EAAG/9M,EAAMpwB,OAAQo+a,GACrDhuZ,CACT,CAEA,OADAq8M,GAAU8rM,EAAa/rM,GAChBI,GAAa2rM,EAAa,CAAC,CAChC99a,IAAK,iBACLlG,MAAO,SAAwBglb,GAE7B,IADA,IAAIE,GAAgB,EACX6E,EAAM,EAAGC,EAAe5ib,OAAOC,KAAKjG,KAAK63C,OAAQ8wY,EAAMC,EAAaznb,OAAQwnb,IAAO,CAC1F,IAAI7jb,EAAM8jb,EAAaD,GAEvB,IAAK/E,EAAUtgb,eAAewB,GAAM,CAClCg/a,GAAgB,EAChB,KACF,CACA,GAAgC,YAA5Bthb,EAAAA,GAAAA,GAAQohb,EAAU9+a,KAAgD,oBAAnB8+a,EAAU9+a,KAAuBqe,MAAMyga,EAAU9+a,KAGhG8+a,EAAU9+a,KAAS9E,KAAK63C,MAAM/yC,GAAM,CACtCg/a,GAAgB,EAChB,KACF,CACF,CACA,OAAOA,GAAiBjwN,EAAAA,SAAe7/K,MAAMh0C,KAAK63C,MAAMsM,YAAc0vK,EAAAA,SAAe7/K,MAAM4vY,EAAUz/X,SACvG,IAEJ,CAtpBsC,CAspBpC0vK,EAAAA,iCC7qBF,SCgB0B,SAAUgjB,GAClC,SAASgyM,EAAOhxY,GACd,IAAIpd,EARY/G,EAAGpB,EAAG9E,EAkCtB,OAzBAwpN,GAAgBh3O,KAAM6ob,GATNn1Z,EAUG1zB,KAVGwtB,EAUW,CAACqqB,GAVAvlB,EAAI8uZ,GAAnB9uZ,EAUMu2Z,GAAzBpuZ,EAV0D4mZ,GAA2B3tZ,EAAG4tZ,KAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,GAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,KAWjMqqF,EAAAA,GAAAA,GAAgBp9E,EAAO,yBAAyB,SAAU8c,GACxD,OAAO9c,EAAMorZ,YAActuY,CAC7B,KACAsgE,EAAAA,GAAAA,GAAgBp9E,EAAO,aAAa,WAClC,OAAOA,EAAMorZ,YAAYiD,WAC3B,KACAjxU,EAAAA,GAAAA,GAAgBp9E,EAAO,aAAa,WAClC,OAAOA,EAAMorZ,YAAYkD,WAC3B,KACAlxU,EAAAA,GAAAA,GAAgBp9E,EAAO,aAAa,SAAU4hZ,GAC5C,IAAIgJ,EAAc51a,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GACjF,OAAOgrB,EAAMorZ,YAAYmD,UAAU3M,EAAOgJ,EAC5C,KACAxtU,EAAAA,GAAAA,GAAgBp9E,EAAO,cAAc,WACnC,OAAOA,EAAMorZ,YAAY5B,MAAM,SACjC,KACApsU,EAAAA,GAAAA,GAAgBp9E,EAAO,aAAa,WAClC,OAAOA,EAAMorZ,YAAY5C,SAAS,OACpC,IACAxoZ,EAAMpwB,MAAQ,CACZkqS,WAAY,MAEd95Q,EAAMwuZ,yBAA2B,GAC1BxuZ,CACT,CAEA,OADAq8M,GAAU+xM,EAAQhyM,GACXI,GAAa4xM,EAAQ,CAAC,CAC3B/jb,IAAK,QACLlG,MAAO,SAAek6C,EAAO/N,GAE3B,IAAIoqQ,EAAM5vS,OAAO8vS,WAAWv8P,GACxBmlB,EAAW,SAAkBgtF,GACjBA,EAAKv+C,SAEjB3hE,GAEJ,EACAoqQ,EAAIv6H,YAAY38G,GAChBA,EAASk3O,GACTn1S,KAAKipb,yBAAyBpnb,KAAK,CACjCszS,IAAKA,EACLr8P,MAAOA,EACPmlB,SAAUA,GAEd,GAGC,CACDn5D,IAAK,oBACLlG,MAAO,WACL,IAAIohQ,EAAShgQ,KAMb,GAAIA,KAAK63C,MAAM4hM,WAAY,CACzB,IAAIyvM,EAAclpb,KAAK63C,MAAM4hM,WAAWpsO,KAAI,SAAU87a,GACpD,OAAOA,EAAQ50I,UACjB,IAEA20I,EAAYr0Z,MAAK,SAAUlK,EAAGoK,GAC5B,OAAOpK,EAAIoK,CACb,IACAm0Z,EAAYpob,SAAQ,SAAUyzS,EAAYrkS,GAExC,IAAIk5a,EAEFA,EADY,IAAVl5a,EACOm5a,KAAQ,CACfv9Y,SAAU,EACV/N,SAAUw2Q,IAGH80I,KAAQ,CACfv9Y,SAAUo9Y,EAAYh5a,EAAQ,GAAK,EACnC6tB,SAAUw2Q,IAIdxgF,MAAeisC,EAAOspL,MAAMF,GAAQ,WAClCppL,EAAO9pJ,SAAS,CACdq+L,WAAYA,GAEhB,GACF,IAIA,IAAIz7P,EAAQuwY,KAAQ,CAClBv9Y,SAAUo9Y,EAAYlkb,OAAO,GAAG,KAElC+uN,MAAe/zN,KAAKspb,MAAMxwY,GAAO,WAC/BknN,EAAO9pJ,SAAS,CACdq+L,WAAY,MAEhB,GACF,CACF,GACC,CACDzvS,IAAK,uBACLlG,MAAO,WACLoB,KAAKipb,yBAAyBnob,SAAQ,SAAU2B,GAC9CA,EAAI0yS,IAAI55H,eAAe94K,EAAIw7D,SAC7B,GACF,GACC,CACDn5D,IAAK,SACLlG,MAAO,WACL,IACIu7B,EACAo4T,EAFAg3F,EAASvpb,MAOXm6B,EAJEn6B,KAAKqK,MAAMkqS,WAIuB,aAHpCg+C,EAAWvyV,KAAK63C,MAAM4hM,WAAWtoO,QAAO,SAAUq4a,GAChD,OAAOA,EAAKj1I,aAAeg1I,EAAOl/a,MAAMkqS,UAC1C,KACoB,GAAGp6Q,SAAyB,UAAYq+M,GAAcA,GAAcA,GAAc,CAAC,EAAG7gM,IAAe33C,KAAK63C,OAAQ06S,EAAS,GAAGp4T,UAEvIq+M,GAAcA,GAAc,CAAC,EAAG7gM,IAAe33C,KAAK63C,QAIpDmjY,aACP7gZ,EAASoiZ,eAGbpiZ,EAASoiZ,eAAiB,GAGxBpiZ,EAASohZ,OACPphZ,EAASqiZ,aAGTriZ,EAASoiZ,eAGbpiZ,EAASqiZ,aAAe,EACxBriZ,EAASoiZ,eAAiB,GAI5B,IAAIp4X,EAAW0vK,EAAAA,SAAersH,QAAQxnG,KAAK63C,MAAMsM,UAIjDA,EAAWA,EAAShzC,QAAO,SAAUlJ,GACnC,MAAqB,kBAAVA,IACAA,EAAM8a,SAER9a,CACX,IAGIkyB,EAAS8iZ,gBAAkB9iZ,EAASuC,KAAO,GAAKvC,EAASmiZ,aAAe,KAC1ElhZ,QAAQqY,KAAK,0EACbtZ,EAAS8iZ,eAAgB,GAI3B,IAFA,IAAIwM,EAAc,GACd1E,EAAe,KACV7jb,EAAI,EAAGA,EAAIijD,EAAShjD,OAAQD,GAAKi5B,EAASuC,KAAOvC,EAASmiZ,aAAc,CAE/E,IADA,IAAI2K,EAAW,GACNppa,EAAI3c,EAAG2c,EAAI3c,EAAIi5B,EAASuC,KAAOvC,EAASmiZ,aAAcz+Z,GAAKsc,EAASmiZ,aAAc,CAEzF,IADA,IAAI/hZ,EAAM,GACD35B,EAAIid,EAAGjd,EAAIid,EAAIsc,EAASmiZ,eAC3BniZ,EAAS8iZ,eAAiB94X,EAASvjD,GAAGi3C,MAAMvyC,QAC9Cy/a,EAAe5gY,EAASvjD,GAAGi3C,MAAMvyC,MAAMrD,SAErCrB,GAAKujD,EAAShjD,SAJ2BP,GAAK,EAKlD25B,EAAI14B,KAAmBgyN,EAAAA,aAAmB1vK,EAASvjD,GAAI,CACrDkE,IAAK,IAAM5D,EAAI,GAAK2c,EAAIjd,EACxBijP,UAAW,EACXv+O,MAAO,CACLrD,MAAO,GAAGuC,OAAO,IAAM21B,EAASmiZ,aAAc,KAC9C91a,QAAS,mBAIfygb,EAASplb,KAAmBgyN,EAAAA,cAAoB,MAAO,CACrD/uN,IAAK,GAAK5D,EAAI2c,GACb0c,GACL,CACIJ,EAAS8iZ,cACXwM,EAAY5nb,KAAmBgyN,EAAAA,cAAoB,MAAO,CACxD/uN,IAAK5D,EACLoE,MAAO,CACLrD,MAAO8ib,IAERkC,IAEHwC,EAAY5nb,KAAmBgyN,EAAAA,cAAoB,MAAO,CACxD/uN,IAAK5D,GACJ+lb,GAEP,CACA,GAAiB,YAAb9sZ,EAAwB,CAC1B,IAAI5yB,EAAY,mBAAqBvH,KAAK63C,MAAMtwC,WAAa,IAC7D,OAAoBssN,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAWA,GACV48C,EACL,CAGA,OAHWslY,EAAYtob,QAAUg5B,EAASqiZ,eAAiBriZ,EAASshZ,WAClEthZ,EAASilZ,SAAU,GAEDvrN,EAAAA,cAAoB+uN,GAAa3jN,GAAS,CAC5D35N,MAAOtF,KAAK63C,MAAMvyC,MAClBiyC,IAAKv3C,KAAK0pb,uBN0gBX,SAAwBvvZ,GAC7B,OAAO+lZ,GAAcjhZ,QAAO,SAAUuL,EAAKm/Y,GAIzC,OAHIxvZ,EAAS72B,eAAeqmb,KAC1Bn/Y,EAAIm/Y,GAAexvZ,EAASwvZ,IAEvBn/Y,CACT,GAAG,CAAC,EACN,CMhhBSo/Y,CAAezvZ,IAAYsvZ,EAChC,IAEJ,CApN0B,CAoNxB51N,EAAAA,WClOWg2N,GAAc,iBACrBC,GAAmBnhU,IACvB,MAAM,aACJu0K,EAAY,OACZG,GACE10K,EACJ,MAAO,CACL,CAACu0K,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACtE,gBAAiB,CACft9G,SAAU,WACV7E,QAAS,QACT4tO,UAAW,aACXqtG,YAAa,QACbsoG,mBAAoB,OACpBC,wBAAyB,cACzB,4BAA6B,CAC3BzqW,UAAW,uBACXkiQ,YAAa,UAGjB,cAAe,CACbp2U,SAAU,WACV7E,QAAS,QACT5E,OAAQ,EACR2/B,QAAS,EACTj2B,SAAU,SACV,UAAW,CACTmqM,QAAS,QAEX,aAAc,CACZz7K,OAAQ,WAEV,eAAgB,CACdmgN,cAAe,OAEf,CAAC,QAAQkjD,uBAA4BA,oBAA0B,CAC7Dx9J,WAAY,UAEd,iBAAkB,CAChBs6G,cAAe,OACf,CAAC,QAAQkjD,uBAA4BA,oBAA0B,CAC7Dx9J,WAAY,YAMhB,cAAe,CACbl9F,cAAe,YAIrB,eAAgB,CACdt3B,SAAU,WACV/J,IAAK,EACLkyS,iBAAkB,EAClBhtS,QAAS,QACT,sBAAuB,CACrBA,QAAS,QACTiY,QAAS,MAEX,WAAY,CACVyvE,MAAO,SAGX,eAAgB,CACd1nF,QAAS,OACTo3H,MAAO,OACPj8H,OAAQ,OACR6hQ,UAAW,EACXr5P,IAAK,CACH3D,QAAS,SAEX,iBAAkB,CAChB2zO,cAAe,SAGnB,kCAAmC,CACjC3zO,QAAS,SAEX,+BAAgC,CAC9BA,QAAS,QACT7E,OAAQ,UAGb,EAEGsob,GAAiBthU,IACrB,MAAM,aACJu0K,EAAY,mBACZgC,EAAkB,UAClBgrJ,EAAS,YACTxxH,GACE/vM,EACEwhU,EAAcxhU,EAAMq6J,KAAKknK,GAAWvzN,IAAIn1N,KAAK++L,OAAOtnB,QAC1D,MAAO,CAAC,CACN,CAACikH,GAAe,CAEd,2BAA4B,CAC1B7xR,SAAU,WACV/J,IAAK,MACLW,MAAOiob,EACPvob,OAAQuob,EACR3qW,UAAW,mBACXt+C,MAAO,OACPt1B,QAAS,GACT6vH,WAAY,cACZj6F,QAAS,EACTjE,WAAY,EACZw3G,OAAQ,EACR2gE,QAAS,OACTz7K,OAAQ,UACRzuB,OAAQ,EACRglD,WAAY,WAAW2uO,IACvB,mBAAoB,CAClBvzR,QAAS,GAEX,mBAAoB,CAClBwuO,cAAe,OACfxuO,QAAS,GAEX,WAAY,CACVyoO,UAAW,aACX/oO,SAAU,WACV/J,IAAKqnH,EAAMq6J,KAAKknK,GAAWtyN,IAAIuyN,GAAaxzN,IAAI,GAAG19C,QACnDu6H,iBAAkB7qL,EAAMq6J,KAAKknK,GAAWtyN,IAAIuyN,GAAaxzN,IAAI,GAAG19C,QAChEzyK,QAAS,eACTvE,MAAOkob,EACPxob,OAAQwob,EACRr1S,OAAQ,uBACRs1S,kBAAmB,QACnBC,iBAAkB,QAClBhpJ,aAAc,EACd5iR,QAAS,OAGb,cAAe,CACb+0R,iBAAkBklB,EAClB,WAAY,CACVn5O,UAAW,mBAGf,cAAe,CACb+zN,eAAgBolB,EAChB,WAAY,CACVn5O,UAAW,qBAIjB,EAEE+qW,GAAe3hU,IACnB,MAAM,aACJu0K,EAAY,UACZqtJ,EAAS,SACTC,EAAQ,UACRC,EAAS,OACTC,EAAM,iBACNhlJ,EAAgB,mBAChBxG,GACEv2K,EACJ,MAAO,CAAC,CACN,CAACu0K,GAAe,CACd,cAAe,CACb7xR,SAAU,WACVioS,eAAgB,EAChBltS,OAAQ,EACRotS,iBAAkB,EAClBjoS,OAAQ,GACR/E,QAAS,kBACT+sS,eAAgB,SAChB0vB,mBAAoB,EACpBrhU,OAAQ,EACRk9R,UAAW,OACX,WAAY,CACV14R,OAAQmkb,GAEV,QAAS,CACPjpb,IAAKipb,EACLnkb,OAAQ,QAEVwlE,GAAI,CACFvgE,SAAU,WACV7E,QAAS,eACTk/C,KAAM,WACN0uL,UAAW,cACXnyO,MAAOuob,EACP7ob,OAAQ8ob,EACR/nH,aAAcgoH,EACdnpZ,QAAS,EACTmB,UAAW,SACX8iL,YAAa,IACb7iL,cAAe,MACf4tB,WAAY,OAAO2uO,IACnB,WAAY,CACV14R,QAAS,QACT6E,SAAU,WACV/J,IAAK,EACLkyS,iBAAkB,EAClBvxS,MAAO,EACPN,OAAQ8ob,EACRhsa,QAAS,KACT+8G,WAAYkqK,EACZrE,aAAcopJ,EACd9+a,QAAS,EACT8pM,QAAS,OACTz7K,OAAQ,WAEV85B,OAAQ,CACNzoD,SAAU,WACV7E,QAAS,QACTvE,MAAO,OACPN,OAAQ8ob,EACRlpZ,QAAS,EACTN,MAAO,cACP7D,SAAU,EACVo+F,WAAYkqK,EACZ5wJ,OAAQ,EACRusJ,aAAcopJ,EACdh1O,QAAS,OACTz7K,OAAQ,UACRruB,QAAS,GACT4kD,WAAY,OAAO2uO,IACnB,WAAY,CACVvzR,QAAS,KAEX,WAAY,CACVN,SAAU,WACV81H,MAAOxY,EAAMq6J,KAAK0nK,GAAQryN,KAAK,GAAGp/C,QAClCx6J,QAAS,OAGb,iBAAkB,CAChBxc,MAAO0mH,EAAMgiU,eACbt/a,SAAU,WACV,WAAY,CACVM,QAAS,GAEX,WAAY,CACV1J,MAAO,OACPuE,QAAS,QACTiY,QAAS,KACTpT,SAAU,WACVmoS,iBAAkB,EAClBlyS,IAAK,EACLk6H,WAAYkqK,EACZ/5R,QAAS,EACT01R,aAAcopJ,EACdl6X,WAAY,aAAas5X,qBAMnC,EAEEe,GAA2BjiU,IAC/B,MAAM,aACJu0K,EAAY,UACZqtJ,EAAS,YACT7xH,EAAW,UACX5pB,GACEnmL,EACEkiU,EAAmB,CACvB5ob,MAAO0mH,EAAM8hU,UACb9ob,OAAQgnH,EAAM6hU,UAEhB,MAAO,CACL,CAAC,GAAGttJ,cAA0B,CAC5B,2BAA4B,CAC1BsW,iBAAkB,MAClB0qD,iBAAkB,QAClB3+Q,UAAW,oBAEb,cAAe,CACbmnT,gBAAiBhuE,EACjBllB,iBAAkB,MAClB,WAAY,CACVj0N,UAAW,kBAGf,cAAe,CACbmnT,gBAAiB,OACjBC,cAAejuE,EACf,WAAY,CACVn5O,UAAW,oBAGf,cAAe,CACbj+E,IAAK,MACL8E,OAAQ,OACRisS,cAAe,SACfpwS,MAAO0mH,EAAM8hU,UACb9ob,OAAQ,OACRC,OAAQ,EACR29E,UAAW,mBACX,SAAU,CACR+zN,eAAgB,OAChBE,iBAAkB+2I,GAEpB,UAAW,CACTj3I,eAAgBi3I,EAChB/2I,iBAAkB,QAEpB5nO,GAAI5lE,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyhb,GAAmB,CACrDjpb,OAAQ,GAAGoB,GAAK8rS,OAChBnsQ,cAAe,WACfmxB,OAAQ+2X,EACR,WAAY7kb,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyhb,GAAmB,CAC7Dlpb,OAAQ,IAEV,iBAAkBqE,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyhb,GAAmB,CACnE/2X,OAAQ+2X,EACR,WAAY7kb,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyhb,GAAmB,CAC7Dt6X,WAAY,cAAcs5X,uBAMrC,EAEGiB,GAAsBniU,IAC1B,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CAAC,CACN,CAAC,GAAGu0K,SAAqB,CACvBz/J,UAAW,MAEX,cAAe,CACb,CAAC,GAAGy/J,UAAsB,CACxBmV,cAAe,kBAIpB,CACD,CAAC,GAAGnV,cAA0B,CAC5B,cAAe,CACb,CAAC,GAAGA,UAAsB,CACxBmV,cAAe,aAIrB,EAgBJ,GAAe3U,GAAc,YAAY/0K,GAAS,CAACmhU,GAAiBnhU,GAAQshU,GAAethU,GAAQ2hU,GAAa3hU,GAAQiiU,GAAyBjiU,GAAQmiU,GAAoBniU,MAdxIA,IAE5B,CACLuhU,UAAW,GACXxxH,YAAa/vM,EAAMomL,SACnBy7I,SAAU,GACVC,UAAW,EACXC,OAAQ/hU,EAAMmmL,UACdy7I,UAAW,GACXQ,eARqB,GASrBJ,eATqB,MAaoL,CAC3M/wJ,iBAAkB,CAAC,CAAC,iBAAkB,qBC1WxC,IAAI+R,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAMA,MAAM0nZ,GAAY,aACZ4P,GAAc1uZ,IAClB,IAAI,aACAk9Y,EAAY,WACZI,GACEt9Y,EACJ8wE,EAAOu+L,GAAOrvQ,EAAI,CAAC,eAAgB,eACrC,OAAoBu3L,EAAAA,cAAoB,SAAU7tN,OAAOoD,OAAO,CAC9DpC,KAAM,UACLomG,GAAM,EA4FX,SA1F8BymH,EAAAA,YAAiB,CAACh8K,EAAON,KACrD,MAAM,KACF4qU,GAAO,EAAI,OACXy4D,GAAS,EAAK,UACdwB,EAAyBvoN,EAAAA,cAAoBm3N,GAAa,CACxD,aAAc,SACd,UACFpP,EAAyB/nN,EAAAA,cAAoBm3N,GAAa,CACxD,aAAc,SACd,UACFx+F,GAAY,EAAK,eACjB0wF,GAAiB,EAAK,YACtB+N,EAAc,SAAQ,SACtBvsZ,EAA2B,SAAhBusZ,GAA0C,UAAhBA,EAAuB,cAC5DhzK,EACA1wQ,UAAW2jb,EAAe,MAC1B5lb,EAAK,GACLme,EAAE,SACFo3Z,GAAW,GACThjY,EACJ68P,EAAa/I,GAAO9zP,EAAO,CAAC,OAAQ,SAAU,YAAa,YAAa,YAAa,iBAAkB,cAAe,WAAY,gBAAiB,YAAa,QAAS,KAAM,cAC3K,aACJixO,EAAY,UACZrrJ,EACAl2H,UAAW80O,EACX/2O,MAAO83T,GACL/zC,GAAmB,YACjB8hK,EAAWt3N,EAAAA,OAAa,MACxBu3N,EAAO,SAAU/O,GACrB,IAAIgJ,EAAc51a,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GACjF07a,EAASllZ,QAAQ+iZ,UAAU3M,EAAOgJ,EACpC,EACAxxN,EAAAA,oBAA0Bt8K,GAAK,KAAM,CACnC6zY,OACAnI,SAAUkI,EAASllZ,QAAQ4/Y,YAAY5C,SACvC4C,YAAasF,EAASllZ,QAAQ4/Y,YAC9BjpZ,KAAMuuZ,EAASllZ,QAAQ6iZ,UACvB50a,KAAMi3a,EAASllZ,QAAQ8iZ,aACrB,CAACoC,EAASllZ,UACd,MAAM+rT,EAAYn+H,EAAAA,OAAaA,EAAAA,SAAe7/K,MAAM6D,EAAMsM,WAC1D0vK,EAAAA,WAAgB,KACVm+H,EAAU/rT,UAAY4tL,EAAAA,SAAe7/K,MAAM6D,EAAMsM,YACnDinY,EAAKvzY,EAAM6jY,cAAgB,GAAG,GAC9B1pF,EAAU/rT,QAAU4tL,EAAAA,SAAe7/K,MAAM6D,EAAMsM,UACjD,GACC,CAACtM,EAAMsM,WACV,MAAMouS,EAAWvsV,OAAOoD,OAAO,CAC7Bs1B,WACAn3B,UAAWisN,KAAW03N,EAAiB7uM,GACvC/2O,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg0T,GAAe93T,GACtDu1a,WAAYA,GACXnmI,GACqB,SAApB69C,EAASh2M,SACXg2M,EAASgpF,MAAO,GAElB,MAAMjiM,EAAYwvC,EAAa,WAAYypE,EAASj5G,WAC9C+xM,IAAelpE,EACfmpE,EAAU93N,KAAW4nN,GAAW,GAAGA,MAAa6P,IAA+B,mBAAT9oE,IAAsC,OAATA,QAA0B,IAATA,OAAkB,EAASA,EAAK56W,aACnJytS,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3C/xO,EAAYisN,KAAW8lB,EAAW,CACtC,CAAC,GAAGA,SAAgC,QAAd77G,EACtB,CAAC,GAAG67G,cAAuBi5G,EAAS7zT,UACnCyuP,EAAQ8nB,EAAWh9B,IAChB,cACJ6iK,EAAgB,KACdjjY,EAEE0zY,EADqB1Q,GAAiC,kBAAbA,GAAwBA,EAAS2Q,YAClC,CAC5C,CAAC3B,IAAiB/O,EAAgB,IAAnB,KACb,CAAC,EACL,OAAO9lI,EAAwBnhF,EAAAA,cAAoB,MAAO,CACxDtsN,UAAWA,EACXkc,GAAIA,EACJne,MAAOimb,GACO13N,EAAAA,cAAoB43N,GAAezlb,OAAOoD,OAAO,CAC/DmuC,IAAK4zY,GACJ54F,EAAU,CACX4vB,KAAMkpE,EACNjQ,UAAWkQ,EACX1Q,OAAQA,EACRwB,UAAWA,EACXR,UAAWA,EACXpvF,UAAWA,EACX2xF,gBAAiBz/Y,EACjBw+Y,eAAgBA,MACb,IC9GP,IAAIwO,GAA6B73N,EAAAA,cAAoB,MAC1CojI,GAA0BpjI,EAAAA,cAAoB,CAAC,GAC1D,YCDA,IAAIma,GAAY,CAAC,YAAa,YAAa,gBA8B3C,SAxBkB,SAAqBn2L,GACrC,IAAIyhM,EAAYzhM,EAAMyhM,UACpB/xO,EAAYswC,EAAMtwC,UAClB8hP,EAAexxM,EAAMwxM,aACrBvP,EAAYC,GAAyBliM,EAAOm2L,IAE5CsqH,EADsBzkI,EAAAA,WAAiBojI,IACVsB,MAC3B5gH,EAAYlH,GAAc6nH,EAAUjvG,GAIxC,OAAoBx1B,EAAAA,cAAoB,MAAOoL,GAAS,CACtD13N,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,YAAa/xO,GACxD6mP,KAAM,SACN72M,IAAKogM,GACJw/G,GAAUt/S,EAAO,CAClBy/S,MAAM,IACJ,CACF,aAAc,QACbx9G,GACL,EC1BO,SAAS6xM,GAAiB/sb,GAC/B,MAAqB,kBAAVA,GAAsBqI,OAAOC,OAAOtI,MAAYA,GACzDggO,IAAQ,EAAO,kFACR13N,OAAOtI,IAETA,CACT,CCIA,IAAI64V,GAAgB,CAClBx1V,MAAO,EACPN,OAAQ,EACR2J,SAAU,SACVmqM,QAAS,OACTpqM,SAAU,YAEZ,SAASugb,GAAY/zY,EAAON,GAC1B,IAAI0zG,EAAM4gS,EAAsBC,EAC5BxyM,EAAYzhM,EAAMyhM,UACpB/5N,EAAOs4B,EAAMt4B,KACb6sP,EAAYv0N,EAAMu0N,UAClB/hB,EAASxyM,EAAMwyM,OACfxoP,EAAOg2C,EAAMh2C,KACbi8P,EAAcjmN,EAAMimN,YACpBxpL,EAAYz8B,EAAMy8B,UAClBulR,EAAWhiT,EAAMgiT,SACjBkyF,EAAmBl0Y,EAAM27K,WACzBykD,EAAgBpgO,EAAMogO,cACtB+zK,EAAYn0Y,EAAMm0Y,UAClBzgb,EAASssC,EAAMtsC,OACfhE,EAAYswC,EAAMtwC,UAClBkc,EAAKo0B,EAAMp0B,GACXne,EAAQuyC,EAAMvyC,MACd84P,EAASvmN,EAAMumN,OACfn8P,EAAQ41C,EAAM51C,MACdN,EAASk2C,EAAMl2C,OACfwiD,EAAWtM,EAAMsM,SACjBogG,EAAO1sG,EAAM0sG,KACb0jH,EAAepwN,EAAMowN,aACrB7F,EAAavqN,EAAMuqN,WACnB6pL,EAAgBp0Y,EAAMo0Y,cACtB3xF,EAAYziT,EAAMyiT,UAClBr9B,EAAkBplR,EAAMolR,gBACxB66B,EAAUjgT,EAAMigT,QAChB7qG,EAAep1M,EAAMo1M,aACrBu0L,EAAc3pY,EAAM2pY,YACpBt0L,EAAer1M,EAAMq1M,aACrB/4K,EAAUt8B,EAAMs8B,QAChBk6K,EAAYx2M,EAAMw2M,UAClB67I,EAAUryV,EAAMqyV,QAChBpuW,EAAS+b,EAAM/b,OACfowZ,EAAer0Y,EAAMq0Y,aAGnB5zF,EAAWzkI,EAAAA,SACX2kI,EAAmB3kI,EAAAA,SACnB4kI,EAAiB5kI,EAAAA,SACrBA,EAAAA,oBAA0Bt8K,GAAK,WAC7B,OAAO+gT,EAASryT,OAClB,IAsCA4tL,EAAAA,WAAgB,WAEZ,IAAIs4N,EADF5sa,GAAQ+0D,IAEiC,QAA1C63W,EAAoB7zF,EAASryT,eAA2C,IAAtBkmZ,GAAgCA,EAAkB54Z,MAAM,CACzGsiU,eAAe,IAGrB,GAAG,CAACt2U,IAGJ,IACEo8N,EAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnDu4N,EAASzwM,EAAiB,GAC1B0wM,EAAY1wM,EAAiB,GAC3B4tB,EAAgB11C,EAAAA,WAAiB63N,IAWjCY,EAAiT,QAAjSrhS,EAAkI,QAA1H4gS,EAAsD,QAA9BC,EAPhC,mBAATjqb,EACIA,EAAO,CAAC,EAAI,CACvBg4H,SAAU,GAGCh4H,GAAQ,CAAC,SAEkF,IAAhBiqb,OAAyB,EAASA,EAAYjyT,gBAA+C,IAAzBgyT,EAAkCA,EAAyC,OAAlBtiL,QAA4C,IAAlBA,OAA2B,EAASA,EAAc+iL,oBAAmC,IAATrhS,EAAkBA,EAAO,IAClVshS,EAAgB14N,EAAAA,SAAc,WAChC,MAAO,CACLy4N,aAAcA,EACdzqb,KAAM,WACJwqb,GAAU,EACZ,EACAhpV,KAAM,WACJgpV,GAAU,EACZ,EAEJ,GAAG,CAACC,IAIJz4N,EAAAA,WAAgB,WAEZ,IAAI24N,EAGAC,EAJFlta,EAEgB,OAAlBgqP,QAA4C,IAAlBA,GAA2E,QAA9CijL,EAAsBjjL,EAAc1nQ,YAA0C,IAAxB2qb,GAAkCA,EAAoBzsb,KAAKwpQ,GAGtJ,OAAlBA,QAA4C,IAAlBA,GAA2E,QAA9CkjL,EAAsBljL,EAAclmK,YAA0C,IAAxBopV,GAAkCA,EAAoB1sb,KAAKwpQ,EAE5K,GAAG,CAAChqP,IAGJs0M,EAAAA,WAAgB,WACd,OAAO,WACL,IAAI64N,EACc,OAAlBnjL,QAA4C,IAAlBA,GAA4E,QAA/CmjL,EAAuBnjL,EAAclmK,YAA2C,IAAzBqpV,GAAmCA,EAAqB3sb,KAAKwpQ,EAC7K,CACF,GAAG,IAGH,IAAIojL,EAAWpoS,GAAqBsvE,EAAAA,cAAoB6pC,GAAWz+B,GAAS,CAC1En6N,IAAK,QACJs9P,EAAY,CACbvI,QAASt6O,KACP,SAAUm9J,EAAOkwQ,GACnB,IAAIC,EAAsBnwQ,EAAMn1K,UAC9Bulb,EAAkBpwQ,EAAMp3K,MAC1B,OAAoBuuN,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,SAAUuzM,EAA0C,OAArBd,QAAkD,IAArBA,OAA8B,EAASA,EAAiBxnS,KAAM0nS,GACrK3mb,MAAOkzO,GAAcA,GAAcA,GAAc,CAAC,EAAGs0M,GAAkBxyF,GAAuB,OAAXx+T,QAA8B,IAAXA,OAAoB,EAASA,EAAOyoH,MAC1IpwE,QAAS8zL,GAAgB1oP,EAAOu4U,OAAU7qV,EAC1CsqC,IAAKq1Y,GAET,IAGI1sL,EAAgC,oBAAX9B,EAAwBA,EAAOgO,GAAahO,EACjE2uL,EAAe,CAAC,EACpB,GAAIX,GAAUE,EACZ,OAAQlgL,GACN,IAAK,MACH2gL,EAAaxtW,UAAY,cAAc/6E,OAAO8nb,EAAc,OAC5D,MACF,IAAK,SACHS,EAAaxtW,UAAY,cAAc/6E,QAAQ8nb,EAAc,OAC7D,MACF,IAAK,OACHS,EAAaxtW,UAAY,cAAc/6E,OAAO8nb,EAAc,OAC5D,MACF,QACES,EAAaxtW,UAAY,cAAc/6E,QAAQ8nb,EAAc,OAIjD,SAAdlgL,GAAsC,UAAdA,EAC1B2gL,EAAa9qb,MAAQ0pb,GAAiB1pb,GAEtC8qb,EAAaprb,OAASgqb,GAAiBhqb,GAEzC,IAAIk7P,EAAgB,CAClB5P,aAAcA,EACdu0L,YAAaA,EACbt0L,aAAcA,EACd/4K,QAASA,EACTk6K,UAAWA,EACX67I,QAASA,GAEP8iD,EAAyBn5N,EAAAA,cAAoB6pC,GAAWz+B,GAAS,CACnEn6N,IAAK,SACJo7P,EAAa,CACdrG,QAASt6O,EACTu+O,YAAaA,EACb3C,iBAAkB,SAA0BuI,GACtB,OAApBu5D,QAAgD,IAApBA,GAA8BA,EAAgBv5D,EAC5E,EACA7F,eAAe,EACfG,gBAAiB,GAAGx5P,OAAO80O,EAAW,8BACpC,SAAU8mB,EAAOwD,GACnB,IAAIC,EAAkBzD,EAAM74P,UAC1Bu8P,EAAc1D,EAAM96P,MAClBmZ,EAAuBo1M,EAAAA,cAAoBo5N,GAAahuN,GAAS,CACnEx7M,GAAIA,EACJ4lO,aAAcua,EACdtqB,UAAWA,EACX/xO,UAAWisN,KAAWjsN,EAAgC,OAArBwkb,QAAkD,IAArBA,OAA8B,EAASA,EAAiBtta,SACtHnZ,MAAOkzO,GAAcA,GAAc,CAAC,EAAGlzO,GAAmB,OAAXw2B,QAA8B,IAAXA,OAAoB,EAASA,EAAOrd,UACrG04U,GAAUt/S,EAAO,CAClBy/S,MAAM,IACJz6F,GAAgB14M,GACpB,OAAoB0vK,EAAAA,cAAoB,MAAOoL,GAAS,CACtD13N,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,oBAA0C,OAArByyM,QAAkD,IAArBA,OAA8B,EAASA,EAAiBluV,QAASgmK,GAC9Jv+P,MAAOkzO,GAAcA,GAAcA,GAAc,CAAC,EAAGu0M,GAAejpL,GAAyB,OAAXhoO,QAA8B,IAAXA,OAAoB,EAASA,EAAO+hE,UACxIs5P,GAAUt/S,EAAO,CAClBt7B,MAAM,KACH2va,EAAeA,EAAazta,GAAWA,EAC9C,IAGI4xY,GAAiB73K,GAAc,CAAC,EAAGwzM,GAIvC,OAHIzgb,IACF8kZ,GAAe9kZ,OAASA,GAENsoN,EAAAA,cAAoB63N,GAAcz0U,SAAU,CAC9Dr4G,MAAO2tb,GACO14N,EAAAA,cAAoB,MAAO,CACzCtsN,UAAWisN,KAAW8lB,EAAW,GAAG90O,OAAO80O,EAAW,KAAK90O,OAAO4nQ,GAAY6L,GAAepgK,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,SAAU/5N,GAAO,GAAG/a,OAAO80O,EAAW,WAAY+Q,IACxM/kP,MAAO+qZ,GACPxsK,UAAW,EACXtsM,IAAK+gT,EACLjqG,UAzLmB,SAAwBj1L,GAC3C,IAAIjI,EAAUiI,EAAMjI,QAClBsC,EAAW2F,EAAM3F,SACnB,OAAQtC,GAEN,KAAK4yL,GAAQE,IAIL,IAAIy0G,EAFR,GAAIvnS,IAAY4yL,GAAQE,IACtB,GAAKxwL,GAAYnsD,SAASyrB,gBAAkB0lU,EAAexyT,SAKpD,GAAIwtB,GAAYnsD,SAASyrB,gBAAkBylU,EAAiBvyT,QAAS,CAC1E,IAAIinZ,EACiD,QAApDA,EAAwBz0F,EAAexyT,eAA+C,IAA1BinZ,GAAoCA,EAAsB35Z,MAAM,CAC3HsiU,eAAe,GAEnB,OARyD,QAAtD6C,EAAwBF,EAAiBvyT,eAA+C,IAA1ByyT,GAAoCA,EAAsBnlU,MAAM,CAC7HsiU,eAAe,IASrB,MAIJ,KAAK9xG,GAAQU,IAELqzG,GAAW+B,IACbzgS,EAAMxI,kBACNknS,EAAQ1+R,IAKlB,GAyJGuzX,EAAuB94N,EAAAA,cAAoB,MAAO,CACnDgwB,SAAU,EACVtsM,IAAKihT,EACLlzV,MAAOmyV,GACP,cAAe,OACf,gBAAiB,UACfu1F,EAAwBn5N,EAAAA,cAAoB,MAAO,CACrDgwB,SAAU,EACVtsM,IAAKkhT,EACLnzV,MAAOmyV,GACP,cAAe,OACf,gBAAiB,SAErB,CAKA,SAJkC5jI,EAAAA,WAAiB+3N,IC7InD,MCxHA,GDMa,SAAgB/zY,GAC3B,IAAIs1Y,EAAct1Y,EAAMt4B,KACtBA,OAAuB,IAAhB4ta,GAAiCA,EACxCtwM,EAAmBhlM,EAAMyhM,UACzBA,OAAiC,IAArBuD,EAA8B,YAAcA,EACxD06D,EAAmB1/P,EAAMu0N,UACzBA,OAAiC,IAArBmrC,EAA8B,QAAUA,EACpD61I,EAAmBv1Y,EAAMy8B,UACzBA,OAAiC,IAArB84W,GAAqCA,EACjDxzF,EAAkB/hT,EAAMgiT,SACxBA,OAA+B,IAApBD,GAAoCA,EAC/CyzF,EAAex1Y,EAAM51C,MACrBA,OAAyB,IAAjBorb,EAA0B,IAAMA,EACxChzF,EAAcxiT,EAAM0sG,KACpBA,OAAuB,IAAhB81M,GAAgCA,EACvCryF,EAAsBnwN,EAAMowN,aAC5BA,OAAuC,IAAxBD,GAAwCA,EACvDtX,EAAe74M,EAAM64M,aACrBoN,EAAcjmN,EAAMimN,YACpBm/D,EAAkBplR,EAAMolR,gBACxBo8B,EAAiBxhT,EAAMwhT,eACvBpsG,EAAep1M,EAAMo1M,aACrBu0L,EAAc3pY,EAAM2pY,YACpBt0L,EAAer1M,EAAMq1M,aACrB/4K,EAAUt8B,EAAMs8B,QAChBk6K,EAAYx2M,EAAMw2M,UAClB67I,EAAUryV,EAAMqyV,QAChB5xC,EAAWzgT,EAAMygT,SAEjB38G,EAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnD4mI,EAAkB9+G,EAAiB,GACnC++G,EAAqB/+G,EAAiB,GAQxC,IACEkQ,EAAmBjQ,GADE/nB,EAAAA,UAAe,GACgB,GACpDypD,EAAUzxB,EAAiB,GAC3B0xB,EAAa1xB,EAAiB,GAChC1+K,IAAgB,WACdowM,GAAW,EACb,GAAG,IACH,IAAIxS,IAAauS,GAAU/9P,EAGvBm6P,EAAW7lD,EAAAA,SACXy5N,EAAgBz5N,EAAAA,SACpB1mJ,IAAgB,WACV49L,IACFuiL,EAAcrnZ,QAAU3+B,SAASyrB,cAErC,GAAG,CAACg4O,IAGJ,IAaIowF,EAAatnI,EAAAA,SAAc,WAC7B,MAAO,CACL0kI,MAAOD,EAEX,GAAG,CAACA,IAGJ,IAAKx6F,IAAgB28F,IAAoB1vF,GAAcsuF,EACrD,OAAO,KAET,IAAIx8F,EAAgB,CAClB5P,aAAcA,EACdu0L,YAAaA,EACbt0L,aAAcA,EACd/4K,QAASA,EACTk6K,UAAWA,EACX67I,QAASA,GAEPqjD,EAAmB/0M,GAAcA,GAAc,CAAC,EAAG3gM,GAAQ,CAAC,EAAG,CACjEt4B,KAAMwrP,EACNzxB,UAAWA,EACX8yB,UAAWA,EACX93L,UAAWA,EACXulR,SAAUA,EACV53V,MAAOA,EACPsiJ,KAAMA,EACN0jH,aAAcA,EACd5d,QAAyB,IAAjBqG,EACRusE,gBAzC4B,SAAiCv5D,GAC7D,IAAI8pL,EAIEC,GAHN/yF,EAAmBh3F,GACC,OAApBu5D,QAAgD,IAApBA,GAA8BA,EAAgBv5D,GACrEA,IAAe4pL,EAAcrnZ,SAAwD,QAA1CunZ,EAAoB9zK,EAASzzO,eAA2C,IAAtBunZ,GAAgCA,EAAkBzhb,SAASuhb,EAAcrnZ,YAErH,QAAnDwnZ,EAAwBH,EAAcrnZ,eAA+C,IAA1BwnZ,GAAoCA,EAAsBl6Z,MAAM,CAC1HsiU,eAAe,IAGrB,EAgCEt+S,IAAKmiO,GACJ7c,GACH,OAAoBhpC,EAAAA,cAAoBojI,GAAWhgP,SAAU,CAC3Dr4G,MAAOu8V,GACOtnI,EAAAA,cAAoB6/B,GAAQ,CAC1Cn0O,KAAMwrP,GAAcjN,GAAe28F,EACnC5mG,aAAa,EACbnD,aAAcA,EACdiD,SAAUpvG,IAASwmH,GAAc0vF,IACnB5mI,EAAAA,cAAoB+3N,GAAa2B,IACnD,EE3CA,GApEoB11Y,IAClB,IAAIvb,EAAIC,EACR,MAAM,UACJ+8M,EAAS,MACTvtM,EAAK,OACL+B,EAAM,MACN0sE,EAAK,QACLw3B,EAAO,QACP8lN,EAAO,YACP41F,EAAW,UACX31F,EAAS,YACT41F,EAAW,SACXxpY,EACAqvK,WAAYu4N,EACZjwZ,OAAQ8xZ,GACN/1Y,EACEg2Y,EAAgBxkK,GAAmB,UACnCykK,EAAwBj6N,EAAAA,aAAkB5hB,GAAsB4hB,EAAAA,cAAoB,SAAU,CAClG7sN,KAAM,SACNmtE,QAAS2jR,EACT,aAAc,QACdvwV,UAAW,GAAG+xO,WACbrnC,IAAQ,CAAC6lJ,KACL4M,EAAgBrI,GAAmBT,GAAYP,GAAaxjT,GAAQwjT,GAAawyF,GAAgB,CACtGj2F,UAAU,EACVwE,gBAAiB0xF,IAEbh1F,EAAajlI,EAAAA,SAAc,KAC/B,IAAIv3L,EAAIC,EACR,OAAKwP,GAAU24T,EAGK7wI,EAAAA,cAAoB,MAAO,CAC7CvuN,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAmC,QAA/BkzB,EAAKuxZ,EAAc/xZ,cAA2B,IAAPQ,OAAgB,EAASA,EAAGuR,QAAS6/Y,GAA+B,OAAjBE,QAA0C,IAAjBA,OAA0B,EAASA,EAAa//Y,QACzNtmC,UAAWisN,KAAW,GAAG8lB,WAAoB,CAC3C,CAAC,GAAGA,uBAAgCorH,IAAmB34T,IAAUyuE,GAC5B,QAAnCj+E,EAAKsxZ,EAAcr6N,kBAA+B,IAAPj3L,OAAgB,EAASA,EAAGsR,OAA6B,OAArBk+Y,QAAkD,IAArBA,OAA8B,EAASA,EAAiBl+Y,SAC1JgmL,EAAAA,cAAoB,MAAO,CACzCtsN,UAAW,GAAG+xO,kBACb+iH,EAAiBtwT,GAAsB8nL,EAAAA,cAAoB,MAAO,CACnEtsN,UAAW,GAAG+xO,WACbvtM,IAASyuE,GAAsBq5G,EAAAA,cAAoB,MAAO,CAC3DtsN,UAAW,GAAG+xO,WACb9+H,IAbM,IAaC,GACT,CAACkqP,EAAgBrI,EAAiB7hP,EAAOkzU,EAAap0M,EAAWvtM,IAC9D8sT,EAAahlI,EAAAA,SAAc,KAC/B,IAAIv3L,EAAIC,EACR,IAAKuR,EACH,OAAO,KAET,MAAMigZ,EAAkB,GAAGz0M,WAC3B,OAAoBzlB,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAWisN,KAAWu6N,EAAqD,QAAnCzxZ,EAAKuxZ,EAAcr6N,kBAA+B,IAAPl3L,OAAgB,EAASA,EAAGwR,OAA6B,OAArBi+Y,QAAkD,IAArBA,OAA8B,EAASA,EAAiBj+Y,QAC5MxoC,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAmC,QAA/BmzB,EAAKsxZ,EAAc/xZ,cAA2B,IAAPS,OAAgB,EAASA,EAAGuR,QAAS6/Y,GAA+B,OAAjBC,QAA0C,IAAjBA,OAA0B,EAASA,EAAa9/Y,SACxNA,EAAO,GACT,CAACA,EAAQ6/Y,EAAar0M,IACzB,OAAoBzlB,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMilI,EAAyBjlI,EAAAA,cAAoB,MAAO,CAChHtsN,UAAWisN,KAAW,GAAG8lB,SAAuC,OAArByyM,QAAkD,IAArBA,OAA8B,EAASA,EAAiBlgb,KAA0C,QAAnCywB,EAAKuxZ,EAAcr6N,kBAA+B,IAAPl3L,OAAgB,EAASA,EAAGzwB,MAC9MvG,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAmC,QAA/BmzB,EAAKsxZ,EAAc/xZ,cAA2B,IAAPS,OAAgB,EAASA,EAAG1wB,MAAOksV,GAA6B,OAAjB61F,QAA0C,IAAjBA,OAA0B,EAASA,EAAa/hb,OACpNmmI,EAAwB6hF,EAAAA,cAAoB4qI,GAAU,CACvD3rU,QAAQ,EACRiZ,OAAO,EACP2yT,UAAW,CACThiU,KAAM,GAERn1B,UAAW,GAAG+xO,oBACVn1L,GAAW00S,EAAW,ECzExBm1F,GAAmBvwT,IACvB,MAAM7+H,EAAQ,OACd,MAAO,CACLyC,KAAM,eAAezC,KACrB4M,MAAO,cAAc5M,KACrB0C,IAAK,eAAe1C,KACpBwH,OAAQ,cAAcxH,MACtB6+H,EAAU,EAERwwT,GAAqBA,CAACC,EAAYC,KAAa,CACnD,oBAAqBnob,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG8kb,GAAa,CAChE,WAAYC,IAEd,UAAWnob,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG+kb,GAAW,CACpD,WAAYD,MAGVE,GAAeA,CAACzjb,EAAMk2H,IAAa76H,OAAOoD,OAAO,CACrD,6BAA8B,CAC5B,UAAW,CACTmnD,WAAY,QAEd,WAAY,CACVA,WAAY,OAAOswE,OAGtBotT,GAAmB,CACpBtib,QAAShB,GACR,CACDgB,QAAS,KAEL0ib,GAAuBA,CAAC5wT,EAAWoD,IAAa,CAACutT,GAAa,GAAKvtT,GAAWotT,GAAmB,CACrG1uW,UAAWyuW,GAAiBvwT,IAC3B,CACDl+C,UAAW,UAkBb,GAhBuBopC,IACrB,MAAM,aACJu0K,EAAY,mBACZgC,GACEv2K,EACJ,MAAO,CACL,CAACu0K,GAAe,CAEd,CAAC,GAAGA,iBAA6BkxJ,GAAa,EAAGlvJ,GAEjD,CAAC,GAAGhC,kBAA8B,CAAC,OAAQ,QAAS,MAAO,UAAUj+P,QAAO,CAACx8B,EAAKg7H,IAAcz3H,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG3G,GAAM,CACpI,CAAC,KAAKg7H,KAAc4wT,GAAqB5wT,EAAWyhK,MAClD,CAAC,IAER,EC7CGovJ,GAAiB3lU,IACrB,MAAM,eACJ65K,EAAc,aACdtF,EAAY,YACZk/B,EAAW,YACXtyB,EAAW,gBACXnE,EAAe,mBACfzG,EAAkB,kBAClB2L,EAAiB,UACjBsD,EAAS,QACT5sQ,EAAO,UACP+sQ,EAAS,WACThL,EAAU,aACVE,EAAY,UACZtlQ,EAAS,SACTwiQ,EAAQ,WACR8L,EAAU,SACVuC,EAAQ,UACR9B,EAAS,eACTC,EAAc,iBACdH,EAAgB,kBAChBC,EAAiB,UACjBnO,EAAS,iBACTiP,EAAgB,mBAChBygJ,EAAkB,oBAClBC,EAAmB,KACnBxrK,GACEr6J,EACE8oO,EAAa,GAAGv0D,oBACtB,MAAO,CACL,CAACA,GAAe,CACd7xR,SAAU,QACV81H,MAAO,EACP51H,OAAQ6wT,EACRjiF,cAAe,OACfl5M,MAAO49P,EACP,SAAU,CACRxzR,SAAU,WACVmwH,WAAYmqK,EACZn/R,QAAS,OACT6rS,cAAe,SACf,CAAC,IAAInV,UAAsB,CACzBh8J,UAAWvY,EAAM8nL,qBAEnB,CAAC,IAAIvT,WAAuB,CAC1Bh8J,UAAWvY,EAAM6nL,sBAEnB,CAAC,IAAItT,SAAqB,CACxBh8J,UAAWvY,EAAM+nL,mBAEnB,CAAC,IAAIxT,YAAwB,CAC3Bh8J,UAAWvY,EAAMgoL,sBAGrB,WAAY,CACVtlS,SAAU,YAGZ,CAAC,GAAG6xR,UAAsB,CACxB7xR,SAAU,WACV81H,MAAO,EACP51H,OAAQ6wT,EACR5gM,WAAYsuK,EACZ3vD,cAAe,QAGjB,CAACs3G,GAAa,CACZpmV,SAAU,WACVE,OAAQ6wT,EACRr+R,SAAU,QACVwyB,WAAY,OAAO2uO,IACnB,WAAY,CACV14R,QAAS,SAIb,CAAC,YAAYirV,KAAe,CAC1BnwV,IAAK,EACL8E,OAAQ,EACR/E,KAAM,CACJi3T,cAAc,EACd15T,MAAO,GAETsiI,UAAWvY,EAAM8nL,qBAEnB,CAAC,aAAaghD,KAAe,CAC3BnwV,IAAK,EACLkK,MAAO,CACL8sT,cAAc,EACd15T,MAAO,GAETwH,OAAQ,EACR86H,UAAWvY,EAAM6nL,sBAEnB,CAAC,WAAWihD,KAAe,CACzBnwV,IAAK,EACL+2T,YAAa,EACbn3L,UAAWvY,EAAM+nL,mBAEnB,CAAC,cAAc+gD,KAAe,CAC5BrrV,OAAQ,EACRiyT,YAAa,EACbn3L,UAAWvY,EAAMgoL,qBAEnB,CAAC,GAAGzT,aAAyB,CAC3B12R,QAAS,OACT6rS,cAAe,SACfpwS,MAAO,OACPN,OAAQ,OACR2J,SAAU,OACVkwH,WAAYmqK,EACZxrD,cAAe,QAGjB,CAAC,GAAG+iD,YAAwB,CAC1B12R,QAAS,OACTk/C,KAAM,EACNo6O,WAAY,SACZv+P,QAAS,GAAGv+B,GAAKu+B,MAAYv+B,GAAKsrS,KAClClxQ,SAAUkmQ,EACVhmQ,WAAYkmQ,EACZ28B,aAAc,GAAGn9T,GAAKk7B,MAAcwiQ,KAAY8L,IAChD,UAAW,CACThmS,QAAS,OACTk/C,KAAM,EACNo6O,WAAY,SACZh0P,SAAU,EACV03N,UAAW,IAGf,CAAC,GAAG05B,WAAuB,CACzBx3O,KAAM,QAER,CAAC,GAAGw3O,WAAuBl3R,OAAOoD,OAAO,CACvC5C,QAAS,cACTvE,MAAO+gR,EAAKsgB,GAAY9tQ,IAAI24Q,GAAWl1H,QACvCt3K,OAAQqhR,EAAKsgB,GAAY9tQ,IAAI24Q,GAAWl1H,QACxCooH,aAAcmB,EACd+Q,eAAgB,SAChBzT,WAAY,SACZwjC,gBAAiBv0B,EACjB9tQ,MAAOgsQ,EACPpqQ,WAAYirQ,EACZ1wQ,SAAUkmQ,EACVvjQ,UAAW,SACXzC,WAAY,EACZoF,UAAW,SACXs8F,cAAe,OACf+C,eAAgB,OAChBvG,WAAY,cACZsZ,OAAQ,EACR96G,OAAQ,UACRu2B,WAAY,OAAOs6O,IACnB9K,cAAe,OACf,UAAW,CACT9+P,MAAOisQ,EACPzhS,gBAAiBshS,EACjBhrK,eAAgB,QAElB,WAAY,CACVt2H,gBAAiBuhS,IAElBpN,GAAcj3K,IACjB,CAAC,GAAGu0K,WAAuB,CACzBx3O,KAAM,EACN9jD,OAAQ,EACRihC,WAAY8lF,EAAMmlL,iBAClB1wQ,SAAUkmQ,EACVhmQ,WAAYkmQ,GAGd,CAAC,GAAGtG,UAAsB,CACxBx3O,KAAM,EACN5Z,SAAU,EACV03N,UAAW,EACXjiO,QAAS+sQ,EACThjS,SAAU,OACV,CAAC,GAAG4xR,mBAA+B,CACjCj7R,MAAO,OACPN,OAAQ,OACR6E,QAAS,OACT+sS,eAAgB,WAIpB,CAAC,GAAGrW,YAAwB,CAC1Br3O,WAAY,EACZtkB,QAAS,GAAGv+B,GAAKurb,MAAuBvrb,GAAKwrb,KAC7CtrF,UAAW,GAAGlgW,GAAKk7B,MAAcwiQ,KAAY8L,KAG/C,QAAS,CACP/uK,UAAW,QAGhB,EAQH,GAAeigK,GAAc,UAAU/0K,IACrC,MAAM8lU,EAAc9zJ,GAAWhyK,EAAO,CAAC,GACvC,MAAO,CAAC2lU,GAAeG,GAAcC,GAAeD,GAAa,IAR9B9lU,IAAS,CAC5CyzM,YAAazzM,EAAMg5K,gBACnB4sJ,mBAAoB5lU,EAAMwlL,UAC1BqgJ,oBAAqB7lU,EAAMpnF,YC3M7B,IAAIoqQ,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAcA,MACMi7Z,GAAmB,CACvB90T,SAAU,KAENs8L,GAASt+Q,IAEb,MAAM,cACFogO,EAAa,MACbh2Q,EAAK,OACLN,EAAM,KACN0gB,EAAO,UAAS,KAChBkiI,GAAO,EAAI,KACX1iJ,EAAO8sb,GAAgB,KACvBpva,EAAI,gBACJ09S,EAAe,QACf66B,EACAx+G,UAAW2vC,EACXv4B,aAAck+L,EAAqB,MACnCtpb,EAAK,UACLiC,EAAS,QAETsyP,EAAO,mBACPy9C,EAAkB,UAClBgjD,EAAS,YACTu0F,EAAW,oBACXC,GACEj3Y,EACJu1D,EAAOu+L,GAAO9zP,EAAO,CAAC,gBAAiB,QAAS,SAAU,OAAQ,OAAQ,OAAQ,OAAQ,kBAAmB,UAAW,YAAa,eAAgB,QAAS,YAAa,UAAW,qBAAsB,YAAa,cAAe,yBACpO,kBACJwqN,EAAiB,aACjBymB,EAAY,UACZrrJ,EACAl2H,UAAW80O,EACX/2O,MAAO83T,EACP5pG,WAAY6pG,EACZvhS,OAAQwhS,GACNj0C,GAAmB,UACjB/vC,EAAYwvC,EAAa,SAAUG,IAClC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3CoX,OAEoBzjP,IAA1B2hb,GAAuCvsL,EAAoB,IAAMA,EAAkB/6P,SAASuE,MAAQ+ib,EAC9FG,EAAkBv7N,KAAW,CACjC,WAAYjvE,EACZ,CAAC,GAAG+0F,SAAgC,QAAd77G,GACrBw6I,EAAekV,EAAQ8nB,GAa1B,MAAM+5I,EAAcn7N,EAAAA,SAAc,IAAgB,OAAV5xN,QAA4B,IAAVA,EAAmBA,EAAiB,UAATogB,EAAmB,IAAM,KAAK,CAACpgB,EAAOogB,IACrH4sa,EAAep7N,EAAAA,SAAc,IAAiB,OAAXlyN,QAA8B,IAAXA,EAAoBA,EAAkB,UAAT0gB,EAAmB,IAAM,KAAK,CAAC1gB,EAAQ0gB,IAE1H+/O,EAAa,CACjBrE,WAAYvF,GAAkBlf,EAAW,eACzC4gB,cAAc,EACdF,aAAa,EACbI,aAAa,EACbC,eAAgB,KAWZi+F,EAAW2H,MAEV10V,EAAQgzT,GAAiB1H,GAAU,SAAUzpN,EAAK7hG,SAGvDioN,WAAY07N,EAAiB,CAAC,EAC9BpzZ,OAAQqzZ,EAAa,CAAC,GACpB/hV,EACJ,OAAO4nM,EAAwBnhF,EAAAA,cAAoBoqG,GAAiB,CAClE7hP,MAAM,EACNnyD,OAAO,GACO4pM,EAAAA,cAAoBojG,GAAchgN,SAAU,CAC1Dr4G,MAAO2/T,GACO1qG,EAAAA,cAAoBu7N,GAAUppb,OAAOoD,OAAO,CAC1DkwO,UAAWA,EACXw+G,QAASA,EACT11F,WAAYA,EACZhE,OA1BkBixL,IAAmB,CACrCtxL,WAAYvF,GAAkBlf,EAAW,gBAAgB+1M,KACzDn1L,cAAc,EACdF,aAAa,EACbI,aAAa,EACbC,eAAgB,OAsBfjtJ,EAAM,CACPomH,WAAY,CACVjvE,KAAMivE,KAAW07N,EAAe3qS,KAAM84K,EAAkB94K,MACxD9lI,QAAS+0M,KAAW07N,EAAezwa,QAAS4+S,EAAkB5+S,SAC9Do/E,QAAS21H,KAAW07N,EAAerxV,QAASw/N,EAAkBx/N,UAEhE/hE,OAAQ,CACNyoH,KAAMv+I,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG+lb,EAAW5qS,MAAO+1M,GAAYh9B,EAAc/4K,MAChG9lI,QAASzY,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG+lb,EAAW1wa,SAAUowa,GAAcvxH,EAAc7+S,SACxGo/E,QAAS73F,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG+lb,EAAWtxV,SAAUixV,GAAsBxxH,EAAcz/N,UAElHt+E,KAAe,OAATA,QAA0B,IAATA,EAAkBA,EAAOs6O,EAChDt1G,KAAMA,EACN1iJ,KAAMA,EACNI,MAAO+sb,EACPrtb,OAAQstb,EACR3pb,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg0T,GAAe93T,GACtDiC,UAAWisN,KAAW6oB,EAAkB90O,GACxC0wQ,cAAe82K,EACfr+L,aAAcA,EACdusE,gBAAqC,OAApBA,QAAgD,IAApBA,EAA6BA,EAAkB3lB,EAC5FghD,SAAUA,EACV/sV,OAAQA,IACOsoN,EAAAA,cAAoBo5N,GAAajnb,OAAOoD,OAAO,CAC9DkwO,UAAWA,GACVlsI,EAAM,CACP0qP,QAASA,QACJ,EAwBT3hC,GAAOuI,uCArBW7mR,IAChB,MACIyhM,UAAW2vC,EAAkB,MAC7B3jR,EAAK,UACLiC,EAAS,UACT6kQ,EAAY,SACVv0N,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,QAAS,YAAa,eAC1D,aACJixO,GACEj1D,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,SAAUG,IAClC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3C53D,EAAM8xC,KAAW8lB,EAAW,GAAGA,SAAkB,GAAGA,KAAa8yB,IAAa+gB,EAAQ8nB,EAAW1tS,GACvG,OAAOytS,EAAwBnhF,EAAAA,cAAoB,MAAO,CACxDtsN,UAAWm6K,EACXp8K,MAAOA,GACOuuN,EAAAA,cAAoBo5N,GAAajnb,OAAOoD,OAAO,CAC7DkwO,UAAWA,GACVQ,KAAa,EAMlB,YC3KA,SADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,8QAAkR,KAAQ,OAAQ,MAAS,YCMrc,IAAIw1M,GAAe,SAAsBz3Y,EAAON,GAC9C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMs9O,KAEV,EAOA,SAJ2B17N,EAAAA,WAAiBy7N,ICZtCl2D,GAAergX,iCAIRy2a,GAAmB/2E,GAC9B,iCACAljK,MAAO8sK,EAAQp3N,KAA2B,IAAzB,gBAAE4uN,GAAiB5uN,EAClC,IAIE,aAHuB4rO,GAAMrzM,KAAK,GAAG41M,mCAA8C/W,EAAU,CAC3F0C,QAAS,CAAE,eAAgB,0BAEbxoW,IAClB,CAAE,MAAO1R,GAAQ,IAAD0uX,EACd,OAAO1f,GAA8B,QAAd0f,EAAA1uX,EAAMyxC,gBAAQ,IAAAi9U,OAAA,EAAdA,EAAgBh9W,OAAQ1R,EAAM2kE,QACvD,KAGSigX,GAAkBh3E,GAC7B,oBACAljK,MAAOm6O,EAAOhzQ,KAA2B,IAAzB,gBAAEm9L,GAAiBn9L,EACjC,IACE,MAAMpgI,QAAiBu6U,GAAMrpX,IAC3B,uEAAuEmxC,mBAAmB+wY,MAQ5F,OAJsB7ub,MAAMqR,QAAQoqC,EAAS//B,MACzC+/B,EAAS//B,KAAKvX,MAAM,GACpB,EAGN,CAAE,MAAO6F,GAAQ,IAAD4uX,EACd,OAAO5f,GAA8B,QAAd4f,EAAA5uX,EAAMyxC,gBAAQ,IAAAm9U,OAAA,EAAdA,EAAgBl9W,OAAQ,iCACjD,KAISoza,GAA4Bl3E,GACvC,8BACAljK,MAAOpkL,EAACivO,KAA2B,IAAzB,gBAAEy5G,GAAiBz5G,EAC3B,IACE,MAAM9jN,QAAiBu6U,GAAMrpX,IAC3B,uEAAuEmxC,mBAAmB,aAM5F,OAFsB99C,MAAMqR,QAAQoqC,EAAS//B,MAAQ+/B,EAAS//B,KAAKvX,MAAM,GAAK,EAGhF,CAAE,MAAO6F,GAAQ,IAAD+kb,EACd,OAAO/1E,GAA8B,QAAd+1E,EAAA/kb,EAAMyxC,gBAAQ,IAAAszY,OAAA,EAAdA,EAAgBrza,OAAQ,2CACjD,KAISsza,GAA0Bp3E,GACrC,4BACAljK,MAAOpkL,EAACy6M,KAA2B,IAAzB,gBAAEiuI,GAAiBjuI,EAC3B,IACE,MAAMtvL,QAAiBu6U,GAAMrpX,IAC3B,uEAAuEmxC,mBAAmB,gBAQ5F,OAJsB99C,MAAMqR,QAAQoqC,EAAS//B,MACzC+/B,EAAS//B,KAAKvX,MAAM,GACpB,EAGN,CAAE,MAAO6F,GAAQ,IAADilb,EACd,OAAOj2E,GAA8B,QAAdi2E,EAAAjlb,EAAMyxC,gBAAQ,IAAAwzY,OAAA,EAAdA,EAAgBvza,OAAQ,2CACjD,KAQSwza,GAAkBt3E,GAC7B,gCACAljK,MAAA02B,EAAAQ,KAAoF,IAA7E,OAAEujN,EAAM,QAAEN,EAAO,WAAEO,EAAU,QAAEC,EAAO,SAAEC,GAAUlkN,GAAE,gBAAE4tI,GAAiBptI,EAC5E,IACE,IAAKujN,IAAWG,EACd,MAAM,IAAIzsb,MAAM,qCAGlB,MAAM0sb,EAAeD,EAASE,eAAiBF,EAGzCG,EAAc,IAAIxsE,gBAAgB,CACtCksE,SACAN,UACAO,aACAC,YACClib,WAGGq0W,EAAW,IAAIpC,SACrBoC,EAAS1tH,OAAO,WAAYy7L,GAG5Bh1Z,QAAQyxB,IAAI,mBAAoB,GAAGusU,mCAA6Ck3D,KAChFl1Z,QAAQyxB,IAAI,wBACZ,IAAK,IAAK/nD,EAAKlG,KAAUyjX,EAASjsW,UAChCglB,QAAQyxB,IAAI/nD,EAAKlG,GAGnB,MAAM09C,QAAiBu6U,GAAMrzM,KAC3B,GAAG41M,mCAA6Ck3D,IAChDjuE,EACA,CACE0C,QAAS,CACP,eAAgB,yBAMtB,OADA3pV,QAAQyxB,IAAI,gBAAiBvQ,EAAS//B,MAC/B+/B,EAAS//B,IAClB,CAAE,MAAO1R,GAAQ,IAAD0lb,EAAAC,EAEd,OADAp1Z,QAAQvwB,MAAM,cAA4B,QAAd0lb,EAAA1lb,EAAMyxC,gBAAQ,IAAAi0Y,OAAA,EAAdA,EAAgBh0a,OAAQ1R,EAAM2kE,SACnDqqS,GAA8B,QAAd22E,EAAA3lb,EAAMyxC,gBAAQ,IAAAk0Y,OAAA,EAAdA,EAAgBj0a,OAAQ1R,EAAM2kE,QACvD,KAuFJ,GA/E0B6uS,GAAY,CACpCpwW,KAAM,eACNytW,aAAc,CACZ+0E,cAAe,GACfz+S,SAAS,EACTnnI,MAAO,MAETyjW,SAAU,CAAC,EACXkN,cAAgB7D,IACdA,EACGC,QAAQ43E,GAAiBxoX,SAAU38D,IAClCA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQ43E,GAAiB72U,WAAW,CAACtuG,EAAO8/D,KAC3C9/D,EAAM2nI,SAAU,EAChB3nI,EAAMomb,cAAc5ub,KAAKsoE,EAAO7C,QAAQ,IAEzCswS,QAAQ43E,GAAiB52U,UAAU,CAACvuG,EAAO8/D,KAC1C9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAO7C,OAAO,IAE7BswS,QAAQ63E,GAAgBzoX,SAAU38D,IACjCA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQ63E,GAAgB92U,WAAW,CAACtuG,EAAO8/D,KAC1C9/D,EAAM2nI,SAAU,EAChB3nI,EAAMomb,cAAgBtmX,EAAO7C,OAAO,IAErCswS,QAAQ63E,GAAgB72U,UAAU,CAACvuG,EAAO8/D,KACzC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAO7C,OAAO,IAE7BswS,QAAQi4E,GAAwB7oX,SAAU38D,IACzCA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQi4E,GAAwBl3U,WAAW,CAACtuG,EAAO8/D,KAClD9/D,EAAM2nI,SAAU,EAChB3nI,EAAMomb,cAAgBtmX,EAAO7C,OAAO,IAErCswS,QAAQi4E,GAAwBj3U,UAAU,CAACvuG,EAAO8/D,KACjD9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAO7C,OAAO,IAE7BswS,QAAQ+3E,GAA0B3oX,SAAU38D,IAC3CA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQ+3E,GAA0Bh3U,WAAW,CAACtuG,EAAO8/D,KACpD9/D,EAAM2nI,SAAU,EAChB3nI,EAAMomb,cAAgBtmX,EAAO7C,OAAO,IAGrCswS,QAAQ+3E,GAA0B/2U,UAAU,CAACvuG,EAAO8/D,KACnD9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAO7C,OAAO,IAG7BswS,QAAQm4E,GAAgB/oX,SAAU38D,IACjCA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQm4E,GAAgBp3U,WAAW,CAACtuG,EAAO8/D,KAC1C9/D,EAAM2nI,SAAU,EAChB,MAAM9hI,EAAQ7F,EAAMomb,cAAcl/a,WAAU0+C,GAAMA,EAAG+/X,SAAW7lX,EAAO7C,QAAQ0oX,UAChE,IAAX9/a,IACF7F,EAAMomb,cAAcvgb,GAASi6D,EAAO7C,QACtC,IAEDswS,QAAQm4E,GAAgBn3U,UAAU,CAACvuG,EAAO8/D,KACzC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAO7C,OAAO,GAC5B,IAKgC,0DC1MlCopX,GAAiB,iCAyJvB,GAvJeC,KACb,MAAOC,EAAYC,IAAiBtjX,EAAAA,EAAAA,WAAS,IACtCujX,EAAoBC,IAAyBxjX,EAAAA,EAAAA,UAAS,OACtDykE,EAASg0M,IAAcz4Q,EAAAA,EAAAA,WAAS,IAChCyjX,EAAaC,IAAkB1jX,EAAAA,EAAAA,UAAS,IAEzChD,EAAW2hS,KACX7kI,EAAWR,MACX,WAAE5lH,GAAe0rP,IAAatiW,GAAUA,EAAM42G,cAC9C,OAAEi2T,GAAWvqE,IAAatiW,GAAUA,EAAM6sa,UAC1C,cAAEuZ,EAAgB,IAAO9jF,IAAatiW,GAAUA,EAAM6mb,eAiB5D,OAfAlkX,EAAAA,EAAAA,YAAU,KACRzC,EAASisW,MACTjsW,EAASssW,MAETtsW,EAASolX,MACN1vb,MAAMq8C,IACDA,EAASgrB,SAAWhrB,EAASgrB,QAAQnmE,OAAS,EAChD8vb,EAAe30Y,EAASgrB,SAExB2pX,EAAe,GACjB,IAEDz/Z,SAAQ,IAAMw0T,GAAW,IAAO,GAClC,CAACz7Q,KAGFkrW,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,wBAAuB48C,UACpCqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,gDAA+C48C,SAAA,EAG9DsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yBAAwB48C,SAC1C6tF,GAI0B,IAAvBg/S,EAAY7vb,QAHds0a,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,iDAAgD48C,UAC7DsxX,EAAAA,GAAAA,KAAA,OAAKzra,IAAKmnb,GAAK5kG,IAAI,aAAahlV,UAAU,6CAO5Ckua,EAAAA,GAAAA,KAAC2b,GAAQ,CAACvW,UAAQ,EAAA12X,SACnB6sY,EACE7/a,QAAQ8+C,GAAoB,IAAbA,EAAG//C,QAClB7C,KAAI,CAAC4iD,EAAI//C,KACRula,EAAAA,GAAAA,KAAA,OAA0Blua,UAAU,WAAU48C,UAC5CsxX,EAAAA,GAAAA,KAAA,OACEzra,IAAK,GAAG0mb,gBAA4BzgY,EAAG0xT,SAASxoW,MAAM,MAAM+4E,QAC5Dq6P,IAAK,UAAUr8U,EAAQ,IACvB3I,UAAU,gCAJJ0oD,EAAGxsC,IAAMvT,UAcjBsla,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,0CAAyC48C,SAAA,EACtDsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,+EAA8E48C,UAC3FsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACLnjM,KAAK,OACLirM,MAAMwjO,EAAAA,GAAAA,KAAC6Z,GAAY,IACnBn7W,QAASA,IAAM08W,GAAc,GAC7Btpb,UAAU,kEAAiE48C,UAE3EsxX,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,OAAM48C,SAAC,oBAK3BsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,gCAA+B48C,SAErD6tF,GAAkC,IAAvBg/S,EAAY7vb,QACvBs0a,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,iDAAgD48C,UAC/DsxX,EAAAA,GAAAA,KAAA,OAAKzra,IAAKmnb,GAAK5kG,IAAI,aAAahlV,UAAU,6CAGzCkua,EAAAA,GAAAA,KAAC2b,GAAQ,CAACvW,UAAQ,EAAA12X,SACf6sY,EACE7/a,QAAO,CAACggB,EAAGjhB,IAAoB,IAAVA,IACrB7C,KAAI,CAAC4iD,EAAI//C,KACRula,EAAAA,GAAAA,KAAA,OAAiBlua,UAAU,WAAU48C,UACnCsxX,EAAAA,GAAAA,KAAA,OACEzra,IAAK,GAAG0mb,gBAA4BzgY,EAAG0xT,SAASxoW,MAAM,MAAM+4E,QAC5Dq6P,IAAK,UAAUr8U,EAAQ,IACvB3I,UAAU,gCAJJ2I,aAcZula,EAAAA,GAAAA,KAACt/G,GAAM,CACLpqR,MAAM,aACNqgO,UAAU,OACVnqQ,MAAO,IACP61V,QAASA,IAAM+4F,GAAc,GAC7Btxa,KAAMqxa,EACNlD,YAAa,CAAEjib,gBAAiB,UAAWw1B,MAAO,SAClD82T,UAAW,CAAEx2T,QAAS,GAAI4iB,SAEzB88D,EACE9vG,QAAQyla,GAAuC,0BAA1BA,EAASgB,eAC9Bvqa,KAAKupa,IACJpB,EAAAA,GAAAA,MAAA,OAA+Bjua,UAAU,uBAAsB48C,SAAA,EAC7DqxX,EAAAA,GAAAA,MAAA,OACEjua,UAAW,sGACTupb,IAAuBla,EAASpD,WAC5B,wBACA,mDAENr/V,QAASA,IACP48W,EAAsBD,IAAuBla,EAASpD,WAAa,KAAOoD,EAASpD,YACpFrvX,SAAA,EAEDqxX,EAAAA,GAAAA,MAAA,QAAMjua,UAAU,oBAAmB48C,SAAA,EACjCsxX,EAAAA,GAAAA,KAACG,GAAgB,CAACrua,UAAU,aAC5Bkua,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,OAAM48C,SAAEyyX,EAASgB,kBAElCkZ,IAAuBla,EAASpD,YAAaiC,EAAAA,GAAAA,KAAC1+E,GAAa,KAAM0+E,EAAAA,GAAAA,KAACK,GAAiB,OAErFgb,IAAuBla,EAASpD,aAC/BiC,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,iDAAgD48C,SAC5D+yX,EACE/la,QAAQgma,GAAUA,EAAM3D,aAAeoD,EAASpD,aAChDnma,KAAK8pa,IACJ1B,EAAAA,GAAAA,KAAA,OAEElua,UAAU,+FACV4sE,QAASA,IAAMkzJ,EAAS,UAAU8vM,EAAMzD,WACxCpua,MAAO,CAAEmG,gBAAiB,WAAY04C,UAEtCsxX,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,qBAAoB48C,SAAEgzX,EAAMU,aALvCV,EAAMzD,eAvBbkD,EAASpD,oBAqCvB,EC9JV,SADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,uVAA2V,KAAQ,OAAQ,MAAS,YCM9gB,IAAI6d,GAAe,SAAsBx5Y,EAAON,GAC9C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMq/O,KAEV,EAOA,SAJ2Bz9N,EAAAA,WAAiBw9N,ICb5C,SADuB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,wSAA4S,KAAQ,WAAY,MAAS,YCMve,IAAIE,GAAmB,SAA0B15Y,EAAON,GACtD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMu/O,KAEV,EAOA,SAJ2B39N,EAAAA,WAAiB09N,ICb5C,SADsB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,+jBAAmkB,KAAQ,UAAW,MAAS,YCM5vB,IAAIE,GAAkB,SAAyB55Y,EAAON,GACpD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMy/O,KAEV,EAOA,SAJ2B79N,EAAAA,WAAiB49N,ICfrC,ICCIE,GAAiB,CAC1B1wZ,WAAOh0B,EACPoV,UAAMpV,EACN1F,eAAW0F,EACX3H,WAAO2H,EACPgnI,UAAMhnI,GAEGk6Q,GAActzD,EAAAA,eAAoCA,EAAAA,cAAoB89N,ICR7E3jN,GAAY,CAAC,OAAQ,OAAQ,SACjC,SAAS+L,GAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAE3e,SAASk0N,KAAiS,OAApRA,GAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,GAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASqD,GAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,GAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,GAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,GAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,GAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,GAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,iBAAmBo0B,IAAMA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,iBAAmB4B,EAAG,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADlRo+Z,CAAap+Z,EAAG,UAAW,MAAO,iBAAmBxyB,EAAIA,EAAIA,EAAI,EAAI,CADxD6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAK3O,SAASuvb,GAAa3mT,GACpB,OAAOA,GAAQA,EAAKh+H,KAAI,CAACzF,EAAM1G,IAAmB2yN,EAAAA,cAAoBjsN,EAAK8K,IAAK8lO,GAAc,CAC5F1zO,IAAK5D,GACJ0G,EAAKqsI,MAAO+9S,GAAapqb,EAAKK,SACnC,CACO,SAASgqb,GAAQ11a,GACtB,OAAOs7B,GAAsBg8K,EAAAA,cAAoBkzD,GAAU9nD,GAAS,CAClEhrF,KAAMukG,GAAc,CAAC,EAAGj8N,EAAK03H,OAC5Bp8F,GAAQm6Y,GAAaz1a,EAAKtU,OAC/B,CACO,SAAS8+Q,GAASlvO,GACvB,IAAI3W,EAAOgxZ,IACT,IAOI3qb,GAPA,KACA0sI,EAAI,KACJ5xH,EAAI,MACJ0pB,GACE8L,EACJs6Y,EAAWp4M,GAAyBliM,EAAOm2L,IACzCokN,EAAe/va,GAAQ6va,EAAK7va,MAAQ,MAIxC,OAFI6va,EAAK3qb,YAAWA,EAAY2qb,EAAK3qb,WACjCswC,EAAMtwC,YAAWA,GAAaA,EAAYA,EAAY,IAAM,IAAMswC,EAAMtwC,WACxDssN,EAAAA,cAAoB,MAAOoL,GAAS,CACtD13E,OAAQ,eACR37C,KAAM,eACNtkD,YAAa,KACZ4qY,EAAKj+S,KAAMA,EAAMk+S,EAAU,CAC5B5qb,UAAWA,EACXjC,MAAOkzO,GAAcA,GAAc,CACjCv3M,MAAO4W,EAAM5W,OAASixZ,EAAKjxZ,OAC1BixZ,EAAK5sb,OAAQuyC,EAAMvyC,OACtB3D,OAAQywb,EACRnwb,MAAOmwb,EACP9qT,MAAO,+BACLv7F,GAAsB8nL,EAAAA,cAAoB,QAAS,KAAM9nL,GAAQ8L,EAAMsM,SAAS,EAEtF,YAAuBl3C,IAAhBk6Q,GAAyCtzD,EAAAA,cAAoBszD,GAAYjwK,SAAU,MAAMg7U,GAAQhxZ,EAAKgxZ,KAAShxZ,EAAKywZ,GAC7H,CCiBO,SAASU,GAASx6Y,GACvB,OAAOo6Y,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,ubAAub,MAAQ,MAAxhBA,CAA+hBp6Y,EACxiB,CAieO,SAASy6Y,GAAcz6Y,GAC5B,OAAOo6Y,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,0PAA0P,MAAQ,MAA3VA,CAAkWp6Y,EAC3W,CA2mBO,SAAS06Y,GAAU16Y,GACxB,OAAOo6Y,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,+NAA+N,MAAQ,MAAhUA,CAAuUp6Y,EAChV,CAyHO,SAAS26Y,GAAY36Y,GAC1B,OAAOo6Y,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,03BAA03B,MAAQ,MAA39BA,CAAk+Bp6Y,EAC3+B,CC9wCA,IAsCI46Y,GAtCAC,GAAY1sb,OAAOgN,eACnB2/a,GAAsB3sb,OAAOiX,sBAC7B21a,GAAe5sb,OAAOnG,UAAUyD,eAChCuvb,GAAe7sb,OAAOnG,UAAU+a,qBAChCk4a,GAAkBA,CAACrwb,EAAKqC,EAAKlG,IAAUkG,KAAOrC,EAAMiwb,GAAUjwb,EAAKqC,EAAK,CAAEwP,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,EAAM3V,UAAW6D,EAAIqC,GAAOlG,EACtJm0b,GAAiBA,CAAC74a,EAAGC,KACvB,IAAK,IAAI9Z,KAAQ8Z,IAAMA,EAAI,CAAC,GACtBy4a,GAAa7yb,KAAKoa,EAAG9Z,IACvByyb,GAAgB54a,EAAG7Z,EAAM8Z,EAAE9Z,IAC/B,GAAIsyb,GACF,IAAK,IAAItyb,KAAQsyb,GAAoBx4a,GAC/B04a,GAAa9yb,KAAKoa,EAAG9Z,IACvByyb,GAAgB54a,EAAG7Z,EAAM8Z,EAAE9Z,IAEjC,OAAO6Z,CAAC,EAEN84a,GAAYA,CAACpnb,EAAQqnb,KACvB,IAAIlob,EAAS,CAAC,EACd,IAAK,IAAI1K,KAAQuL,EACXgnb,GAAa7yb,KAAK6L,EAAQvL,IAAS4yb,EAAQvub,QAAQrE,GAAQ,IAC7D0K,EAAO1K,GAAQuL,EAAOvL,IAC1B,GAAc,MAAVuL,GAAkB+mb,GACpB,IAAK,IAAItyb,KAAQsyb,GAAoB/mb,GAC/Bqnb,EAAQvub,QAAQrE,GAAQ,GAAKwyb,GAAa9yb,KAAK6L,EAAQvL,KACzD0K,EAAO1K,GAAQuL,EAAOvL,IAE5B,OAAO0K,CAAM,EAaf,CAAEmob,IACA,MAAMC,EAAU,MAAMA,EAMpBvwb,WAAAA,CAAYiW,EAASu6a,EAAsBC,EAAeC,GAQxD,GAPAtzb,KAAK6Y,QAAUA,EACf7Y,KAAKozb,qBAAuBA,EAG5Bpzb,KAAKuzb,QAAU,GAEfvzb,KAAK4qB,WAAa,GACd/R,EAAUs6a,EAAQK,aAAe36a,EAAUs6a,EAAQM,YACrD,MAAM,IAAI97D,WAAW,8BACvB,GAAI27D,GAAO,GAAKA,EAAM,EACpB,MAAM,IAAI37D,WAAW,2BACvB33X,KAAKqiB,KAAiB,EAAVxJ,EAAc,GAC1B,IAAI0hB,EAAM,GACV,IAAK,IAAIr5B,EAAI,EAAGA,EAAIlB,KAAKqiB,KAAMnhB,IAC7Bq5B,EAAI14B,MAAK,GACX,IAAK,IAAIX,EAAI,EAAGA,EAAIlB,KAAKqiB,KAAMnhB,IAC7BlB,KAAKuzb,QAAQ1xb,KAAK04B,EAAIv1B,SACtBhF,KAAK4qB,WAAW/oB,KAAK04B,EAAIv1B,SAE3BhF,KAAK0zb,uBACL,MAAMC,EAAe3zb,KAAK4zb,oBAAoBP,GAE9C,GADArzb,KAAK6zb,cAAcF,IACP,GAARL,EAAW,CACb,IAAIQ,EAAa,IACjB,IAAK,IAAI5yb,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1BlB,KAAK+zb,UAAU7yb,GACflB,KAAKg0b,eAAe9yb,GACpB,MAAM+yb,EAAUj0b,KAAKk0b,kBACjBD,EAAUH,IACZR,EAAMpyb,EACN4yb,EAAaG,GAEfj0b,KAAK+zb,UAAU7yb,EACjB,CACF,CACAizb,EAAO,GAAKb,GAAOA,GAAO,GAC1Btzb,KAAKukJ,KAAO+uS,EACZtzb,KAAK+zb,UAAUT,GACftzb,KAAKg0b,eAAeV,GACpBtzb,KAAK4qB,WAAa,EACpB,CAOA,iBAAOkkW,CAAWjzV,EAAMu4Z,GACtB,MAAMC,EAAOnB,EAAWoB,UAAUC,aAAa14Z,GAC/C,OAAOs3Z,EAAQqB,eAAeH,EAAMD,EACtC,CAKA,mBAAOK,CAAal4a,EAAM63a,GACxB,MAAMM,EAAMxB,EAAWoB,UAAUK,UAAUp4a,GAC3C,OAAO42a,EAAQqB,eAAe,CAACE,GAAMN,EACvC,CAWA,qBAAOI,CAAeH,EAAMD,GAAkE,IAGxFv7a,EACA+7a,EAJ2BC,EAAUplb,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,EAAGqlb,EAAUrlb,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,GAAI80I,EAAI90I,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,IAAI,EAAGslb,IAAQtlb,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,KAAAA,UAAA,GACnF,KAAM0jb,EAAQK,aAAeqB,GAAcA,GAAcC,GAAcA,GAAc3B,EAAQM,cAAgBlvS,GAAQ,GAAKA,EAAO,EAC/H,MAAM,IAAIozO,WAAW,iBAGvB,IAAK9+W,EAAUg8a,GAAch8a,IAAW,CACtC,MAAMm8a,EAAgE,EAA5C7B,EAAQ8B,oBAAoBp8a,EAASu7a,GACzDc,EAAWZ,EAAUa,aAAad,EAAMx7a,GAC9C,GAAIq8a,GAAYF,EAAmB,CACjCJ,EAAeM,EACf,KACF,CACA,GAAIr8a,GAAWi8a,EACb,MAAM,IAAIn9D,WAAW,gBACzB,CACA,IAAK,MAAMy9D,IAAU,CAACjC,EAAQkC,IAAIloP,OAAQgmP,EAAQkC,IAAIC,SAAUnC,EAAQkC,IAAIE,MACtER,GAAYH,GAA+D,EAA/CzB,EAAQ8B,oBAAoBp8a,EAASu8a,KACnEhB,EAAMgB,GAEV,IAAI5xY,EAAK,GACT,IAAK,MAAMkxY,KAAOL,EAAM,CACtBmB,EAAWd,EAAI1wb,KAAKyxb,SAAU,EAAGjyY,GACjCgyY,EAAWd,EAAIgB,SAAUhB,EAAI1wb,KAAK2xb,iBAAiB98a,GAAU2qC,GAC7D,IAAK,MAAMrpC,KAAKu6a,EAAI12V,UAClBx6C,EAAG3hD,KAAKsY,EACZ,CACAg6a,EAAO3wY,EAAGriD,QAAUyzb,GACpB,MAAMgB,EAA+D,EAA5CzC,EAAQ8B,oBAAoBp8a,EAASu7a,GAC9DD,EAAO3wY,EAAGriD,QAAUy0b,GACpBJ,EAAW,EAAGh0b,KAAKyhB,IAAI,EAAG2ya,EAAmBpyY,EAAGriD,QAASqiD,GACzDgyY,EAAW,GAAI,EAAIhyY,EAAGriD,OAAS,GAAK,EAAGqiD,GACvC2wY,EAAO3wY,EAAGriD,OAAS,GAAK,GACxB,IAAK,IAAI00b,EAAU,IAAKryY,EAAGriD,OAASy0b,EAAkBC,GAAW,IAC/DL,EAAWK,EAAS,EAAGryY,GACzB,IAAI6vY,EAAgB,GACpB,KAA8B,EAAvBA,EAAclyb,OAAaqiD,EAAGriD,QACnCkyb,EAAcxxb,KAAK,GAErB,OADA2hD,EAAG1iD,SAAQ,CAACqZ,EAAGjZ,IAAMmyb,EAAcnyb,IAAM,IAAMiZ,GAAK,GAAS,EAAJjZ,KAClD,IAAIiyb,EAAQt6a,EAASu7a,EAAKf,EAAe9uS,EAClD,CAKAuxS,SAAAA,CAAUnra,EAAGoK,GACX,OAAO,GAAKpK,GAAKA,EAAI3qB,KAAKqiB,MAAQ,GAAK0S,GAAKA,EAAI/0B,KAAKqiB,MAAQriB,KAAKuzb,QAAQx+Z,GAAGpK,EAC/E,CAEAora,UAAAA,GACE,OAAO/1b,KAAKuzb,OACd,CAGAG,oBAAAA,GACE,IAAK,IAAIxyb,EAAI,EAAGA,EAAIlB,KAAKqiB,KAAMnhB,IAC7BlB,KAAKg2b,kBAAkB,EAAG90b,EAAGA,EAAI,GAAK,GACtClB,KAAKg2b,kBAAkB90b,EAAG,EAAGA,EAAI,GAAK,GAExClB,KAAKi2b,kBAAkB,EAAG,GAC1Bj2b,KAAKi2b,kBAAkBj2b,KAAKqiB,KAAO,EAAG,GACtCriB,KAAKi2b,kBAAkB,EAAGj2b,KAAKqiB,KAAO,GACtC,MAAM6za,EAAcl2b,KAAKm2b,+BACnBC,EAAWF,EAAY/0b,OAC7B,IAAK,IAAID,EAAI,EAAGA,EAAIk1b,EAAUl1b,IAC5B,IAAK,IAAI2c,EAAI,EAAGA,EAAIu4a,EAAUv4a,IACjB,GAAL3c,GAAe,GAAL2c,GAAe,GAAL3c,GAAU2c,GAAKu4a,EAAW,GAAKl1b,GAAKk1b,EAAW,GAAU,GAALv4a,GAC5E7d,KAAKq2b,qBAAqBH,EAAYh1b,GAAIg1b,EAAYr4a,IAG5D7d,KAAKg0b,eAAe,GACpBh0b,KAAKs2b,aACP,CAGAtC,cAAAA,CAAezvS,GACb,MAAMhoI,EAAOvc,KAAKozb,qBAAqBmD,YAAc,EAAIhyS,EACzD,IAAI2/B,EAAM3nK,EACV,IAAK,IAAIrb,EAAI,EAAGA,EAAI,GAAIA,IACtBgjL,EAAMA,GAAO,EAAkB,MAAbA,IAAQ,GAC5B,MAAMhG,EAA4B,OAApB3hK,GAAQ,GAAK2nK,GAC3BiwQ,EAAOj2Q,IAAS,IAAM,GACtB,IAAK,IAAIh9K,EAAI,EAAGA,GAAK,EAAGA,IACtBlB,KAAKg2b,kBAAkB,EAAG90b,EAAG+jM,EAAO/mB,EAAMh9K,IAC5ClB,KAAKg2b,kBAAkB,EAAG,EAAG/wP,EAAO/mB,EAAM,IAC1Cl+K,KAAKg2b,kBAAkB,EAAG,EAAG/wP,EAAO/mB,EAAM,IAC1Cl+K,KAAKg2b,kBAAkB,EAAG,EAAG/wP,EAAO/mB,EAAM,IAC1C,IAAK,IAAIh9K,EAAI,EAAGA,EAAI,GAAIA,IACtBlB,KAAKg2b,kBAAkB,GAAK90b,EAAG,EAAG+jM,EAAO/mB,EAAMh9K,IACjD,IAAK,IAAIA,EAAI,EAAGA,EAAI,EAAGA,IACrBlB,KAAKg2b,kBAAkBh2b,KAAKqiB,KAAO,EAAInhB,EAAG,EAAG+jM,EAAO/mB,EAAMh9K,IAC5D,IAAK,IAAIA,EAAI,EAAGA,EAAI,GAAIA,IACtBlB,KAAKg2b,kBAAkB,EAAGh2b,KAAKqiB,KAAO,GAAKnhB,EAAG+jM,EAAO/mB,EAAMh9K,IAC7DlB,KAAKg2b,kBAAkB,EAAGh2b,KAAKqiB,KAAO,GAAG,EAC3C,CAGAi0a,WAAAA,GACE,GAAIt2b,KAAK6Y,QAAU,EACjB,OACF,IAAIqrK,EAAMlkL,KAAK6Y,QACf,IAAK,IAAI3X,EAAI,EAAGA,EAAI,GAAIA,IACtBgjL,EAAMA,GAAO,EAAmB,MAAdA,IAAQ,IAC5B,MAAMhG,EAAOl+K,KAAK6Y,SAAW,GAAKqrK,EAClCiwQ,EAAOj2Q,IAAS,IAAM,GACtB,IAAK,IAAIh9K,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,MAAM+/B,EAAQgkK,EAAO/mB,EAAMh9K,GACrBgZ,EAAIla,KAAKqiB,KAAO,GAAKnhB,EAAI,EACzBiZ,EAAI3Y,KAAKC,MAAMP,EAAI,GACzBlB,KAAKg2b,kBAAkB97a,EAAGC,EAAG8mB,GAC7BjhC,KAAKg2b,kBAAkB77a,EAAGD,EAAG+mB,EAC/B,CACF,CAGAg1Z,iBAAAA,CAAkBtra,EAAGoK,GACnB,IAAK,IAAI0iS,GAAM,EAAGA,GAAM,EAAGA,IACzB,IAAK,IAAID,GAAM,EAAGA,GAAM,EAAGA,IAAM,CAC/B,MAAMg/H,EAAOh1b,KAAKwhB,IAAIxhB,KAAK6E,IAAImxT,GAAKh2T,KAAK6E,IAAIoxT,IACvCg/H,EAAK9ra,EAAI6sS,EACT3kK,EAAK99H,EAAI0iS,EACX,GAAKg/H,GAAMA,EAAKz2b,KAAKqiB,MAAQ,GAAKwwI,GAAMA,EAAK7yJ,KAAKqiB,MACpDriB,KAAKg2b,kBAAkBS,EAAI5jS,EAAY,GAAR2jS,GAAqB,GAARA,EAChD,CAEJ,CAGAH,oBAAAA,CAAqB1ra,EAAGoK,GACtB,IAAK,IAAI0iS,GAAM,EAAGA,GAAM,EAAGA,IACzB,IAAK,IAAID,GAAM,EAAGA,GAAM,EAAGA,IACzBx3T,KAAKg2b,kBAAkBrra,EAAI6sS,EAAIziS,EAAI0iS,EAA4C,GAAxCj2T,KAAKwhB,IAAIxhB,KAAK6E,IAAImxT,GAAKh2T,KAAK6E,IAAIoxT,IAE7E,CAGAu+H,iBAAAA,CAAkBrra,EAAGoK,EAAGquP,GACtBpjR,KAAKuzb,QAAQx+Z,GAAGpK,GAAKy4P,EACrBpjR,KAAK4qB,WAAWmK,GAAGpK,IAAK,CAC1B,CAIAipa,mBAAAA,CAAoBr3a,GAClB,MAAMm6a,EAAM12b,KAAK6Y,QACXu7a,EAAMp0b,KAAKozb,qBACjB,GAAI72a,EAAKpb,QAAUgyb,EAAQ8B,oBAAoByB,EAAKtC,GAClD,MAAM,IAAIz8D,WAAW,oBACvB,MAAMg/D,EAAYxD,EAAQyD,4BAA4BxC,EAAI1/Z,SAASgia,GAC7DG,EAAc1D,EAAQ2D,wBAAwB1C,EAAI1/Z,SAASgia,GAC3DK,EAAev1b,KAAKC,MAAM0xb,EAAQ6D,qBAAqBN,GAAO,GAC9DO,EAAiBN,EAAYI,EAAeJ,EAC5CO,EAAgB11b,KAAKC,MAAMs1b,EAAeJ,GAChD,IAAIQ,EAAS,GACb,MAAMC,EAAQjE,EAAQkE,0BAA0BR,GAChD,IAAK,IAAI31b,EAAI,EAAGN,EAAI,EAAGM,EAAIy1b,EAAWz1b,IAAK,CACzC,IAAIy9K,EAAMpiK,EAAKvX,MAAMpE,EAAGA,EAAIs2b,EAAgBL,GAAe31b,EAAI+1b,EAAiB,EAAI,IACpFr2b,GAAK+9K,EAAIx9K,OACT,MAAMm2b,EAAMnE,EAAQoE,4BAA4B54Q,EAAKy4Q,GACjDl2b,EAAI+1b,GACNt4Q,EAAI98K,KAAK,GACXs1b,EAAOt1b,KAAK88K,EAAIn6K,OAAO8yb,GACzB,CACA,IAAIrmb,EAAS,GACb,IAAK,IAAI/P,EAAI,EAAGA,EAAIi2b,EAAO,GAAGh2b,OAAQD,IACpCi2b,EAAOr2b,SAAQ,CAAC4qH,EAAO7tG,MACjB3c,GAAKg2b,EAAgBL,GAAeh5a,GAAKo5a,IAC3Chmb,EAAOpP,KAAK6pH,EAAMxqH,GAAG,IAI3B,OADAizb,EAAOljb,EAAO9P,QAAU41b,GACjB9lb,CACT,CAGA4ib,aAAAA,CAAct3a,GACZ,GAAIA,EAAKpb,QAAUK,KAAKC,MAAM0xb,EAAQ6D,qBAAqBh3b,KAAK6Y,SAAW,GACzE,MAAM,IAAI8+W,WAAW,oBACvB,IAAIz2X,EAAI,EACR,IAAK,IAAIsK,EAAQxL,KAAKqiB,KAAO,EAAG7W,GAAS,EAAGA,GAAS,EAAG,CACzC,GAATA,IACFA,EAAQ,GACV,IAAK,IAAIgsb,EAAO,EAAGA,EAAOx3b,KAAKqiB,KAAMm1a,IACnC,IAAK,IAAI35a,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,MAAM8M,EAAInf,EAAQqS,EAEZkX,EAD4B,IAAlBvpB,EAAQ,EAAI,GACTxL,KAAKqiB,KAAO,EAAIm1a,EAAOA,GACrCx3b,KAAK4qB,WAAWmK,GAAGpK,IAAMzpB,EAAkB,EAAdqb,EAAKpb,SACrCnB,KAAKuzb,QAAQx+Z,GAAGpK,GAAKs6K,EAAO1oL,EAAKrb,IAAM,GAAI,GAAS,EAAJA,IAChDA,IAEJ,CAEJ,CACAizb,EAAOjzb,GAAmB,EAAdqb,EAAKpb,OACnB,CAMA4yb,SAAAA,CAAUxvS,GACR,GAAIA,EAAO,GAAKA,EAAO,EACrB,MAAM,IAAIozO,WAAW,2BACvB,IAAK,IAAI5iW,EAAI,EAAGA,EAAI/0B,KAAKqiB,KAAM0S,IAC7B,IAAK,IAAIpK,EAAI,EAAGA,EAAI3qB,KAAKqiB,KAAMsI,IAAK,CAClC,IAAIw9E,EACJ,OAAQo8C,GACN,KAAK,EACHp8C,GAAUx9E,EAAIoK,GAAK,GAAK,EACxB,MACF,KAAK,EACHozE,EAASpzE,EAAI,GAAK,EAClB,MACF,KAAK,EACHozE,EAASx9E,EAAI,GAAK,EAClB,MACF,KAAK,EACHw9E,GAAUx9E,EAAIoK,GAAK,GAAK,EACxB,MACF,KAAK,EACHozE,GAAU3mG,KAAKC,MAAMkpB,EAAI,GAAKnpB,KAAKC,MAAMszB,EAAI,IAAM,GAAK,EACxD,MACF,KAAK,EACHozE,EAASx9E,EAAIoK,EAAI,EAAIpK,EAAIoK,EAAI,GAAK,EAClC,MACF,KAAK,EACHozE,GAAUx9E,EAAIoK,EAAI,EAAIpK,EAAIoK,EAAI,GAAK,GAAK,EACxC,MACF,KAAK,EACHozE,IAAWx9E,EAAIoK,GAAK,EAAIpK,EAAIoK,EAAI,GAAK,GAAK,EAC1C,MACF,QACE,MAAM,IAAIrxB,MAAM,gBAEf1D,KAAK4qB,WAAWmK,GAAGpK,IAAMw9E,IAC5BnoG,KAAKuzb,QAAQx+Z,GAAGpK,IAAM3qB,KAAKuzb,QAAQx+Z,GAAGpK,GAC1C,CAEJ,CAGAupa,eAAAA,GACE,IAAIjjb,EAAS,EACb,IAAK,IAAI8jB,EAAI,EAAGA,EAAI/0B,KAAKqiB,KAAM0S,IAAK,CAClC,IAAI0ia,GAAW,EACXC,EAAO,EACPC,EAAa,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACpC,IAAK,IAAIhta,EAAI,EAAGA,EAAI3qB,KAAKqiB,KAAMsI,IACzB3qB,KAAKuzb,QAAQx+Z,GAAGpK,IAAM8sa,GACxBC,IACY,GAARA,EACFzmb,GAAUkib,EAAQyE,WACXF,EAAO,GACdzmb,MAEFjR,KAAK63b,wBAAwBH,EAAMC,GAC9BF,IACHxmb,GAAUjR,KAAK83b,2BAA2BH,GAAcxE,EAAQ4E,YAClEN,EAAWz3b,KAAKuzb,QAAQx+Z,GAAGpK,GAC3B+sa,EAAO,GAGXzmb,GAAUjR,KAAKg4b,+BAA+BP,EAAUC,EAAMC,GAAcxE,EAAQ4E,UACtF,CACA,IAAK,IAAIpta,EAAI,EAAGA,EAAI3qB,KAAKqiB,KAAMsI,IAAK,CAClC,IAAI8sa,GAAW,EACXQ,EAAO,EACPN,EAAa,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACpC,IAAK,IAAI5ia,EAAI,EAAGA,EAAI/0B,KAAKqiB,KAAM0S,IACzB/0B,KAAKuzb,QAAQx+Z,GAAGpK,IAAM8sa,GACxBQ,IACY,GAARA,EACFhnb,GAAUkib,EAAQyE,WACXK,EAAO,GACdhnb,MAEFjR,KAAK63b,wBAAwBI,EAAMN,GAC9BF,IACHxmb,GAAUjR,KAAK83b,2BAA2BH,GAAcxE,EAAQ4E,YAClEN,EAAWz3b,KAAKuzb,QAAQx+Z,GAAGpK,GAC3Bsta,EAAO,GAGXhnb,GAAUjR,KAAKg4b,+BAA+BP,EAAUQ,EAAMN,GAAcxE,EAAQ4E,UACtF,CACA,IAAK,IAAIhja,EAAI,EAAGA,EAAI/0B,KAAKqiB,KAAO,EAAG0S,IACjC,IAAK,IAAIpK,EAAI,EAAGA,EAAI3qB,KAAKqiB,KAAO,EAAGsI,IAAK,CACtC,MAAMsW,EAAQjhC,KAAKuzb,QAAQx+Z,GAAGpK,GAC1BsW,GAASjhC,KAAKuzb,QAAQx+Z,GAAGpK,EAAI,IAAMsW,GAASjhC,KAAKuzb,QAAQx+Z,EAAI,GAAGpK,IAAMsW,GAASjhC,KAAKuzb,QAAQx+Z,EAAI,GAAGpK,EAAI,KACzG1Z,GAAUkib,EAAQ+E,WACtB,CAEF,IAAIC,EAAO,EACX,IAAK,MAAM59Z,KAAOv6B,KAAKuzb,QACrB4E,EAAO59Z,EAAI0E,QAAO,CAACszE,EAAKtxE,IAAUsxE,GAAOtxE,EAAQ,EAAI,IAAIk3Z,GAC3D,MAAMjtZ,EAAQlrC,KAAKqiB,KAAOriB,KAAKqiB,KACzBzhB,EAAIY,KAAK6K,KAAK7K,KAAK6E,IAAW,GAAP8xb,EAAoB,GAARjtZ,GAAcA,GAAS,EAIhE,OAHAipZ,EAAO,GAAKvzb,GAAKA,GAAK,GACtBqQ,GAAUrQ,EAAIuyb,EAAQiF,WACtBjE,EAAO,GAAKljb,GAAUA,GAAU,SACzBA,CACT,CAKAklb,4BAAAA,GACE,GAAoB,GAAhBn2b,KAAK6Y,QACP,MAAO,GACJ,CACH,MAAMu9a,EAAW50b,KAAKC,MAAMzB,KAAK6Y,QAAU,GAAK,EAC1CunE,EAAuB,IAAhBpgF,KAAK6Y,QAAgB,GAA8D,EAAzDrX,KAAK6K,MAAqB,EAAfrM,KAAK6Y,QAAc,IAAiB,EAAXu9a,EAAe,IAC1F,IAAInlb,EAAS,CAAC,GACd,IAAK,IAAIiR,EAAMliB,KAAKqiB,KAAO,EAAGpR,EAAO9P,OAASi1b,EAAUl0a,GAAOk+D,EAC7DnvE,EAAOk/B,OAAO,EAAG,EAAGjuB,GACtB,OAAOjR,CACT,CACF,CAIA,2BAAO+lb,CAAqBN,GAC1B,GAAIA,EAAMvD,EAAQK,aAAekD,EAAMvD,EAAQM,YAC7C,MAAM,IAAI97D,WAAW,+BACvB,IAAI1mX,GAAU,GAAKylb,EAAM,KAAOA,EAAM,GACtC,GAAIA,GAAO,EAAG,CACZ,MAAMN,EAAW50b,KAAKC,MAAMi1b,EAAM,GAAK,EACvCzlb,IAAW,GAAKmlb,EAAW,IAAMA,EAAW,GACxCM,GAAO,IACTzlb,GAAU,GACd,CAEA,OADAkjb,EAAO,KAAOljb,GAAUA,GAAU,OAC3BA,CACT,CAIA,0BAAOgkb,CAAoByB,EAAKtC,GAC9B,OAAO5yb,KAAKC,MAAM0xb,EAAQ6D,qBAAqBN,GAAO,GAAKvD,EAAQ2D,wBAAwB1C,EAAI1/Z,SAASgia,GAAOvD,EAAQyD,4BAA4BxC,EAAI1/Z,SAASgia,EAClK,CAGA,gCAAOW,CAA0BgB,GAC/B,GAAIA,EAAS,GAAKA,EAAS,IACzB,MAAM,IAAI1gE,WAAW,uBACvB,IAAI1mX,EAAS,GACb,IAAK,IAAI/P,EAAI,EAAGA,EAAIm3b,EAAS,EAAGn3b,IAC9B+P,EAAOpP,KAAK,GACdoP,EAAOpP,KAAK,GACZ,IAAIuC,EAAO,EACX,IAAK,IAAIlD,EAAI,EAAGA,EAAIm3b,EAAQn3b,IAAK,CAC/B,IAAK,IAAI2c,EAAI,EAAGA,EAAI5M,EAAO9P,OAAQ0c,IACjC5M,EAAO4M,GAAKs1a,EAAQmF,oBAAoBrnb,EAAO4M,GAAIzZ,GAC/CyZ,EAAI,EAAI5M,EAAO9P,SACjB8P,EAAO4M,IAAM5M,EAAO4M,EAAI,IAE5BzZ,EAAO+ub,EAAQmF,oBAAoBl0b,EAAM,EAC3C,CACA,OAAO6M,CACT,CAEA,kCAAOsmb,CAA4Bh7a,EAAMmuF,GACvC,IAAIz5F,EAASy5F,EAAQr9F,KAAK8jB,GAAM,IAChC,IAAK,MAAMhX,KAAKoC,EAAM,CACpB,MAAMg8a,EAASp+a,EAAIlJ,EAAO6+C,QAC1B7+C,EAAOpP,KAAK,GACZ6oG,EAAQ5pG,SAAQ,CAAC03b,EAAMt3b,IAAM+P,EAAO/P,IAAMiyb,EAAQmF,oBAAoBE,EAAMD,IAC9E,CACA,OAAOtnb,CACT,CAGA,0BAAOqnb,CAAoB3ta,EAAGoK,GAC5B,GAAIpK,IAAM,GAAK,GAAKoK,IAAM,GAAK,EAC7B,MAAM,IAAI4iW,WAAW,qBACvB,IAAIxiW,EAAI,EACR,IAAK,IAAIj0B,EAAI,EAAGA,GAAK,EAAGA,IACtBi0B,EAAIA,GAAK,EAAgB,KAAXA,IAAM,GACpBA,IAAMJ,IAAM7zB,EAAI,GAAKypB,EAGvB,OADAwpa,EAAOh/Z,IAAM,GAAK,GACXA,CACT,CAGA2ia,0BAAAA,CAA2BH,GACzB,MAAM1ub,EAAI0ub,EAAW,GACrBxD,EAAOlrb,GAAiB,EAAZjJ,KAAKqiB,MACjB,MAAMo2a,EAAOxvb,EAAI,GAAK0ub,EAAW,IAAM1ub,GAAK0ub,EAAW,IAAU,EAAJ1ub,GAAS0ub,EAAW,IAAM1ub,GAAK0ub,EAAW,IAAM1ub,EAC7G,OAAQwvb,GAAQd,EAAW,IAAU,EAAJ1ub,GAAS0ub,EAAW,IAAM1ub,EAAI,EAAI,IAAMwvb,GAAQd,EAAW,IAAU,EAAJ1ub,GAAS0ub,EAAW,IAAM1ub,EAAI,EAAI,EACtI,CAEA+ub,8BAAAA,CAA+BU,EAAiBC,EAAkBhB,GAOhE,OANIe,IACF14b,KAAK63b,wBAAwBc,EAAkBhB,GAC/CgB,EAAmB,GAErBA,GAAoB34b,KAAKqiB,KACzBriB,KAAK63b,wBAAwBc,EAAkBhB,GACxC33b,KAAK83b,2BAA2BH,EACzC,CAEAE,uBAAAA,CAAwBc,EAAkBhB,GACnB,GAAjBA,EAAW,KACbgB,GAAoB34b,KAAKqiB,MAC3Bs1a,EAAWzlW,MACXylW,EAAWx4X,QAAQw5X,EACrB,GAIFxF,EAAQK,YAAc,EAEtBL,EAAQM,YAAc,GAEtBN,EAAQyE,WAAa,EACrBzE,EAAQ+E,WAAa,EACrB/E,EAAQ4E,WAAa,GACrB5E,EAAQiF,WAAa,GACrBjF,EAAQ2D,wBAA0B,CAGhC,EAAE,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEhK,EAAE,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEjK,EAAE,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEjK,EAAE,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAGnK3D,EAAQyD,4BAA8B,CAGpC,EAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAE1I,EAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEnJ,EAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEtJ,EAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAKzJ,SAASpB,EAAW7sb,EAAK8b,EAAK++B,GAC5B,GAAI/+B,EAAM,GAAKA,EAAM,IAAM9b,IAAQ8b,GAAO,EACxC,MAAM,IAAIkzW,WAAW,sBACvB,IAAK,IAAIz2X,EAAIujB,EAAM,EAAGvjB,GAAK,EAAGA,IAC5BsiD,EAAG3hD,KAAK8G,IAAQzH,EAAI,EACxB,CACA,SAAS+jM,EAAOt6K,EAAGzpB,GACjB,OAAwB,IAAhBypB,IAAMzpB,EAAI,EACpB,CACA,SAASizb,EAAOhpV,GACd,IAAKA,EACH,MAAM,IAAIznG,MAAM,kBACpB,CAbAwvb,EAAW0F,OAASzF,EAcpB,MAAM0F,EAAa,MAAMA,EAKvBj2b,WAAAA,CAAYoB,EAAM0xb,EAAUoD,GAI1B,GAHA94b,KAAKgE,KAAOA,EACZhE,KAAK01b,SAAWA,EAChB11b,KAAK84b,QAAUA,EACXpD,EAAW,EACb,MAAM,IAAI/9D,WAAW,oBACvB33X,KAAK84b,QAAUA,EAAQ9zb,OACzB,CAKA,gBAAO2vb,CAAUp4a,GACf,IAAIinC,EAAK,GACT,IAAK,MAAMrpC,KAAKoC,EACdi5a,EAAWr7a,EAAG,EAAGqpC,GACnB,OAAO,IAAIq1Y,EAAWA,EAAWE,KAAKC,KAAMz8a,EAAKpb,OAAQqiD,EAC3D,CAEA,kBAAOy1Y,CAAY1ya,GACjB,IAAKsya,EAAWrqT,UAAUjoH,GACxB,MAAM,IAAIoxW,WAAW,0CACvB,IAAIn0U,EAAK,GACT,IAAK,IAAItiD,EAAI,EAAGA,EAAIqlB,EAAOplB,QAAU,CACnC,MAAM8H,EAAIzH,KAAKyhB,IAAIsD,EAAOplB,OAASD,EAAG,GACtCs0b,EAAW9ua,SAASH,EAAO6H,UAAUltB,EAAGA,EAAI+H,GAAI,IAAS,EAAJA,EAAQ,EAAGu6C,GAChEtiD,GAAK+H,CACP,CACA,OAAO,IAAI4vb,EAAWA,EAAWE,KAAKG,QAAS3ya,EAAOplB,OAAQqiD,EAChE,CAIA,uBAAO21Y,CAAiBt9Z,GACtB,IAAKg9Z,EAAWO,eAAev9Z,GAC7B,MAAM,IAAI87V,WAAW,+DACvB,IACIz2X,EADAsiD,EAAK,GAET,IAAKtiD,EAAI,EAAGA,EAAI,GAAK26B,EAAK16B,OAAQD,GAAK,EAAG,CACxC,IAAI4d,EAAiE,GAA1D+5a,EAAWQ,qBAAqB30b,QAAQm3B,EAAKtZ,OAAOrhB,IAC/D4d,GAAQ+5a,EAAWQ,qBAAqB30b,QAAQm3B,EAAKtZ,OAAOrhB,EAAI,IAChEs0b,EAAW12a,EAAM,GAAI0kC,EACvB,CAGA,OAFItiD,EAAI26B,EAAK16B,QACXq0b,EAAWqD,EAAWQ,qBAAqB30b,QAAQm3B,EAAKtZ,OAAOrhB,IAAK,EAAGsiD,GAClE,IAAIq1Y,EAAWA,EAAWE,KAAKO,aAAcz9Z,EAAK16B,OAAQqiD,EACnE,CAGA,mBAAO+wY,CAAa14Z,GAClB,MAAY,IAARA,EACK,GACAg9Z,EAAWrqT,UAAU3yG,GACrB,CAACg9Z,EAAWI,YAAYp9Z,IACxBg9Z,EAAWO,eAAev9Z,GAC1B,CAACg9Z,EAAWM,iBAAiBt9Z,IAE7B,CAACg9Z,EAAWlE,UAAUkE,EAAWU,gBAAgB19Z,IAC5D,CAGA,cAAO29Z,CAAQC,GACb,IAAIj2Y,EAAK,GACT,GAAIi2Y,EAAY,EACd,MAAM,IAAI9hE,WAAW,qCAClB,GAAI8hE,EAAY,IACnBjE,EAAWiE,EAAW,EAAGj2Y,QACtB,GAAIi2Y,EAAY,MACnBjE,EAAW,EAAG,EAAGhyY,GACjBgyY,EAAWiE,EAAW,GAAIj2Y,OACrB,MAAIi2Y,EAAY,KAIrB,MAAM,IAAI9hE,WAAW,qCAHrB69D,EAAW,EAAG,EAAGhyY,GACjBgyY,EAAWiE,EAAW,GAAIj2Y,EAE+B,CAC3D,OAAO,IAAIq1Y,EAAWA,EAAWE,KAAKW,IAAK,EAAGl2Y,EAChD,CAGA,gBAAOgrF,CAAU3yG,GACf,OAAOg9Z,EAAWc,cAAc38a,KAAK6e,EACvC,CAIA,qBAAOu9Z,CAAev9Z,GACpB,OAAOg9Z,EAAWe,mBAAmB58a,KAAK6e,EAC5C,CAGAmiE,OAAAA,GACE,OAAOh+F,KAAK84b,QAAQ9zb,OACtB,CAGA,mBAAOmwb,CAAad,EAAMx7a,GACxB,IAAI5H,EAAS,EACb,IAAK,MAAMyjb,KAAOL,EAAM,CACtB,MAAMwF,EAASnF,EAAI1wb,KAAK2xb,iBAAiB98a,GACzC,GAAI67a,EAAIgB,UAAY,GAAKmE,EACvB,OAAOniX,IACTzmE,GAAU,EAAI4ob,EAASnF,EAAIoE,QAAQ33b,MACrC,CACA,OAAO8P,CACT,CAEA,sBAAOsob,CAAgBvmZ,GACrBA,EAAM8mZ,UAAU9mZ,GAChB,IAAI/hC,EAAS,GACb,IAAK,IAAI/P,EAAI,EAAGA,EAAI8xC,EAAI7xC,OAAQD,IACT,KAAjB8xC,EAAIzwB,OAAOrhB,GACb+P,EAAOpP,KAAKmxC,EAAI1wB,WAAWphB,KAE3B+P,EAAOpP,KAAK6kB,SAASssB,EAAI5kB,UAAUltB,EAAI,EAAGA,EAAI,GAAI,KAClDA,GAAK,GAGT,OAAO+P,CACT,GAIF4nb,EAAWc,cAAgB,WAE3Bd,EAAWe,mBAAqB,wBAGhCf,EAAWQ,qBAAuB,gDAClC,IAAI/E,EAAYuE,EAChB3F,EAAWoB,UAAYuE,CACxB,EA9pBD,CA8pBGpG,KAAcA,GAAY,CAAC,IAC9B,CAAES,IACA,IAAI0F,EACJ,CAAEmB,IACA,MAAMC,EAAO,MAGXp3b,WAAAA,CAAY8xB,EAAS6ha,GACnBv2b,KAAK00B,QAAUA,EACf10B,KAAKu2b,WAAaA,CACpB,GAGFyD,EAAKC,IAAM,IAAID,EAAK,EAAG,GAEvBA,EAAK7sP,OAAS,IAAI6sP,EAAK,EAAG,GAE1BA,EAAK1E,SAAW,IAAI0E,EAAK,EAAG,GAE5BA,EAAKzE,KAAO,IAAIyE,EAAK,EAAG,GAExBD,EAAQ1E,IAAM2E,CACf,EAnBD,CAmBGpB,EAAS1F,EAAW0F,SAAW1F,EAAW0F,OAAS,CAAC,GACxD,EAtBD,CAsBGnG,KAAcA,GAAY,CAAC,IAC9B,CAAES,IACA,IAAIoB,EACJ,CAAE4F,IACA,MAAMC,EAAQ,MAEZv3b,WAAAA,CAAY6yb,EAAU2E,GACpBp6b,KAAKy1b,SAAWA,EAChBz1b,KAAKo6b,iBAAmBA,CAC1B,CAIAzE,gBAAAA,CAAiBe,GACf,OAAO12b,KAAKo6b,iBAAiB54b,KAAKC,OAAOi1b,EAAM,GAAK,IACtD,GAGFyD,EAAMjB,QAAU,IAAIiB,EAAM,EAAG,CAAC,GAAI,GAAI,KACtCA,EAAMb,aAAe,IAAIa,EAAM,EAAG,CAAC,EAAG,GAAI,KAC1CA,EAAMnB,KAAO,IAAImB,EAAM,EAAG,CAAC,EAAG,GAAI,KAClCA,EAAME,MAAQ,IAAIF,EAAM,EAAG,CAAC,EAAG,GAAI,KACnCA,EAAMT,IAAM,IAAIS,EAAM,EAAG,CAAC,EAAG,EAAG,IAEhCD,EAAWnB,KAAOoB,CACnB,EAtBD,CAsBG7F,EAAYpB,EAAWoB,YAAcpB,EAAWoB,UAAY,CAAC,GACjE,EAzBD,CAyBG7B,KAAcA,GAAY,CAAC,IAC9B,IAAI6H,GAAoB7H,GAQpB8H,GAAkB,CACpBhyX,EAAG+xX,GAAkB1B,OAAOvD,IAAI4E,IAChCjla,EAAGsla,GAAkB1B,OAAOvD,IAAIloP,OAChCx3K,EAAG2ka,GAAkB1B,OAAOvD,IAAIC,SAChCp0X,EAAGo5X,GAAkB1B,OAAOvD,IAAIE,MAE9BiF,GAAe,IACfC,GAAgB,IAChBC,GAAkB,UAClBC,GAAkB,UAClBC,IAAwB,EACxBC,GAAqB,EAIzB,SAASC,GAAavH,GAAqB,IAAZ3xb,EAAM6N,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,EACtC,MAAMwpG,EAAM,GA6BZ,OA5BAs6U,EAAQzyb,SAAQ,SAASy5B,EAAKxF,GAC5B,IAAIlS,EAAQ,KACZ0X,EAAIz5B,SAAQ,SAASw5B,EAAM3P,GACzB,IAAK2P,GAAkB,OAAVzX,EAKX,OAJAo2F,EAAIp3G,KACF,IAAIghB,EAAQjhB,KAAUmzB,EAAInzB,KAAU+oB,EAAI9H,OAAWA,EAAQjhB,WAE7DihB,EAAQ,MAGV,GAAI8H,IAAM4P,EAAIp5B,OAAS,EAanBm5B,GAAkB,OAAVzX,IACVA,EAAQ8H,OAdV,CACE,IAAK2P,EACH,OAEY,OAAVzX,EACFo2F,EAAIp3G,KAAK,IAAI8oB,EAAI/oB,KAAUmzB,EAAInzB,UAAe+oB,EAAI/oB,MAElDq3G,EAAIp3G,KACF,IAAIghB,EAAQjhB,KAAUmzB,EAAInzB,MAAW+oB,EAAI,EAAI9H,OAAWA,EAAQjhB,KAItE,CAIF,GACF,IACOq3G,EAAIh0G,KAAK,GAClB,CACA,SAAS81b,GAAgBxH,EAASyH,GAChC,OAAOzH,EAAQvub,QAAQqI,KAAI,CAACktB,EAAKxF,IAC3BA,EAAIima,EAAWjma,GAAKA,GAAKima,EAAWjma,EAAIima,EAAWvub,EAC9C8tB,EAEFA,EAAIltB,KAAI,CAACitB,EAAM3P,KAChBA,EAAIqwa,EAAWrwa,GAAKA,GAAKqwa,EAAWrwa,EAAIqwa,EAAWxub,IAC9C8tB,KAKf,CA8BA,SAAS2ga,GAAShwS,GASf,IATgB,MACjBrsJ,EAAK,MACLkmL,EAAK,WACL+vQ,EAAU,cACVqG,EAAa,WACbC,EAAU,cACVC,EAAa,KACb/4a,EAAI,WACJg5a,GACDpwS,EACKqwS,EAASznO,EAAAA,SAAc,KACzB,MACM6O,GADS7hO,MAAMqR,QAAQtT,GAASA,EAAQ,CAACA,IACvBqgC,QAAO,CAACs8Z,EAAOrma,KACrCqma,EAAM15b,QAAQy4b,GAAkBhG,UAAUC,aAAar/Z,IAChDqma,IACN,IACH,OAAOjB,GAAkB1B,OAAOpE,eAC9B9xN,EACA63N,GAAgBz1Q,GAChB+vQ,OACA,OACA,EACAwG,EACD,GACA,CAACz8b,EAAOkmL,EAAO+vQ,EAAYwG,IAC9B,MAAM,MAAEn2Z,EAAK,OAAEtjC,EAAM,SAAE45b,EAAQ,wBAAEC,GAA4B5nO,EAAAA,SAAc,KACzE,IAAI6nO,EAASJ,EAAOvF,aACpB,MAAM4F,EAjCV,SAAuBT,EAAeC,GACpC,OAAkB,MAAdA,EACK35b,KAAKwhB,IAAIxhB,KAAKC,MAAM05b,GAAa,GAEnCD,EA3Ec,EACG,CA2E1B,CA4BoBU,CAAcV,EAAeC,GACvCU,EAAYH,EAAOv6b,OAAmB,EAAVw6b,EAC5BG,EA1DV,SAA0B52Z,EAAO7iB,EAAMzgB,EAAQw5b,GAC7C,GAAqB,MAAjBA,EACF,OAAO,KAET,MAAMI,EAAWt2Z,EAAM/jC,OAAkB,EAATS,EAC1Bm6b,EAAcv6b,KAAKC,MAnDH,GAmDS4gB,GACzBy/H,EAAQ05S,EAAWn5a,EACnB7V,GAAK4ub,EAAcn5b,OAAS85b,GAAej6S,EAC3Cr1I,GAAK2ub,EAAcz5b,QAAUo6b,GAAej6S,EAC5Cn3H,EAAuB,MAAnBywa,EAAczwa,EAAYua,EAAM/jC,OAAS,EAAIqL,EAAI,EAAI4ub,EAAczwa,EAAIm3H,EAC3E/sH,EAAuB,MAAnBqma,EAAcrma,EAAYmQ,EAAM/jC,OAAS,EAAIsL,EAAI,EAAI2ub,EAAcrma,EAAI+sH,EAC3En2I,EAAmC,MAAzByvb,EAAczvb,QAAkB,EAAIyvb,EAAczvb,QAClE,IAAIqvb,EAAa,KACjB,GAAII,EAAcY,SAAU,CAC1B,IAAIC,EAASz6b,KAAKC,MAAMkpB,GACpBuxa,EAAS16b,KAAKC,MAAMszB,GAGxBima,EAAa,CAAErwa,EAAGsxa,EAAQlna,EAAGmna,EAAQ1vb,EAFzBhL,KAAK6K,KAAKG,EAAIme,EAAIsxa,GAEiBxvb,EADnCjL,KAAK6K,KAAKI,EAAIsoB,EAAImna,GAEhC,CAEA,MAAO,CAAEvxa,IAAGoK,IAAGtoB,IAAGD,IAAGwub,aAAYrvb,UAASg7H,YADtBy0T,EAAcz0T,YAEpC,CAoCqCw1T,CAC/BT,EACAr5a,EACAs5a,EACAP,GAEF,MAAO,CACLl2Z,MAAOw2Z,EACP95b,OAAQ+5b,EACRH,SAAUK,EACVJ,wBAAyBK,EAC1B,GACA,CAACR,EAAQj5a,EAAM+4a,EAAeF,EAAeC,IAChD,MAAO,CACLG,SACA15b,SACAsjC,QACAs2Z,WACAC,0BAEJ,CACA,IAAIW,GAAkB,WACpB,KACE,IAAIC,QAASC,QAAQ,IAAID,OAC3B,CAAE,MAAO7ua,KACP,OAAO,CACT,CACA,OAAO,CACT,CAPsB,GAQlB+ua,GAAe1oO,EAAAA,YACjB,SAAuBh8K,EAAO2kZ,GAC5B,MAAMlga,EAAKub,GAAO,MAChBj5C,EAAK,KACLyjB,EAAOm4a,GAAY,MACnB11Q,EAAQ21Q,GAAa,QACrBviI,EAAUwiI,GAAe,QACzB+B,EAAU9B,GAAe,cACzBO,EAAgBN,GAAqB,WACrC/F,EAAagG,GAAkB,WAC/BQ,EAAU,WACVF,EAAU,cACVC,GACE9+Z,EAYEC,EAZey2Z,GAAU12Z,EAAI,CACjC,QACA,OACA,QACA,UACA,UACA,gBACA,aACA,aACA,aACA,mBAEqB,MAAEh3B,GAAUi3B,EAAIm4Q,EAAas+I,GAAUz2Z,EAAI,CAAC,UAC7Dmga,EAA0B,MAAjBtB,OAAwB,EAASA,EAAcpxb,IACxDkmM,EAAU2jB,EAAAA,OAAa,MACvB8oO,EAAS9oO,EAAAA,OAAa,MACtB+oO,EAAe/oO,EAAAA,aAClBjsN,IACCsoM,EAAQjqK,QAAUr+B,EACU,oBAAjB40b,EACTA,EAAa50b,GACJ40b,IACTA,EAAav2Z,QAAUr+B,EACzB,GAEF,CAAC40b,KAEIK,EAAaC,GAAoBjpO,EAAAA,UAAe,IACjD,OAAEjyN,EAAM,MAAEsjC,EAAK,SAAEs2Z,EAAQ,wBAAEC,GAA4BR,GAAU,CACrEr8b,QACAkmL,QACA+vQ,aACAwG,aACAH,gBACAC,aACAC,gBACA/4a,SAEFwxM,EAAAA,WAAgB,KACd,GAAuB,MAAnB3jB,EAAQjqK,QAAiB,CAC3B,MAAM/7B,EAASgmM,EAAQjqK,QACjB6gG,EAAM58H,EAAO7B,WAAW,MAC9B,IAAKy+H,EACH,OAEF,IAAIi2T,EAAc73Z,EAClB,MAAM16B,EAAQmyb,EAAO12Z,QACf+2Z,EAA+C,MAA3BvB,GAA6C,OAAVjxb,GAAkBA,EAAMyqI,UAAoC,IAAxBzqI,EAAMw/H,eAA8C,IAAvBx/H,EAAMs/H,aAChIkzT,GACwC,MAAtCvB,EAAwBT,aAC1B+B,EAAchC,GACZ71Z,EACAu2Z,EAAwBT,aAI9B,MAAMiC,EAAa13b,OAAO6jJ,kBAAoB,EAC9Cl/I,EAAOvI,OAASuI,EAAOjI,MAAQogB,EAAO46a,EACtC,MAAMn7S,EAAQz/H,EAAOm5a,EAAWyB,EAChCn2T,EAAIgb,MAAMA,EAAOA,GACjBhb,EAAIp6H,UAAYwrT,EAChBpxL,EAAIn6H,SAAS,EAAG,EAAG6ub,EAAUA,GAC7B10T,EAAIp6H,UAAY+vb,EACZL,GACFt1T,EAAIl7B,KAAK,IAAIywV,OAAOvB,GAAaiC,EAAan7b,KAE9CsjC,EAAMpkC,SAAQ,SAASy5B,EAAK2ia,GAC1B3ia,EAAIz5B,SAAQ,SAASw5B,EAAM6ia,GACrB7ia,GACFwsG,EAAIn6H,SAASwwb,EAAMv7b,EAAQs7b,EAAMt7b,EAAQ,EAAG,EAEhD,GACF,IAEE65b,IACF30T,EAAIub,YAAco5S,EAAwB9vb,SAExCqxb,GACFl2T,EAAIx+H,UACFkC,EACAixb,EAAwB9wa,EAAI/oB,EAC5B65b,EAAwB1ma,EAAInzB,EAC5B65b,EAAwBjvb,EACxBivb,EAAwBhvb,EAG9B,KAEFonN,EAAAA,WAAgB,KACdipO,GAAiB,EAAM,GACtB,CAACJ,IACJ,MAAMU,EAAcrK,GAAe,CAAEpxb,OAAQ0gB,EAAMpgB,MAAOogB,GAAQ/c,GAClE,IAAI6E,EAAM,KAgBV,OAfc,MAAVuyb,IACFvyb,EAAsB0pN,EAAAA,cACpB,MACA,CACE7pN,IAAK0yb,EACL53b,IAAK43b,EACLp3b,MAAO,CAAEkB,QAAS,QAClB62b,OAAQA,KACNP,GAAiB,EAAK,EAExBvlZ,IAAKolZ,EACLh2T,YAAwC,MAA3B80T,OAAkC,EAASA,EAAwB90T,eAI/DktF,EAAAA,cAAoBA,EAAAA,SAAgB,KAAsBA,EAAAA,cAC/E,SACAk/N,GAAe,CACbztb,MAAO83b,EACPz7b,OAAQ0gB,EACRpgB,MAAOogB,EACPk1B,IAAKqlZ,EACLxuM,KAAM,OACLsmD,IACFvqS,EACL,IAEFoyb,GAAa16Y,YAAc,eACXgyK,EAAAA,YACd,SAAoBh8K,EAAO2kZ,GACzB,MAAMlga,EAAKub,GAAO,MAChBj5C,EAAK,KACLyjB,EAAOm4a,GAAY,MACnB11Q,EAAQ21Q,GAAa,QACrBviI,EAAUwiI,GAAe,QACzB+B,EAAU9B,GAAe,cACzBO,EAAgBN,GAAqB,WACrC/F,EAAagG,GAAkB,WAC/BQ,EAAU,MACVtvZ,EAAK,WACLovZ,EAAU,cACVC,GACE9+Z,EAAIo4Q,EAAas+I,GAAU12Z,EAAI,CACjC,QACA,OACA,QACA,UACA,UACA,gBACA,aACA,aACA,QACA,aACA,mBAEI,OAAE16B,EAAM,MAAEsjC,EAAK,SAAEs2Z,EAAQ,wBAAEC,GAA4BR,GAAU,CACrEr8b,QACAkmL,QACA+vQ,aACAwG,aACAH,gBACAC,aACAC,gBACA/4a,SAEF,IAAI06a,EAAc73Z,EACd16B,EAAQ,KACS,MAAjB4wb,GAAoD,MAA3BK,IACe,MAAtCA,EAAwBT,aAC1B+B,EAAchC,GACZ71Z,EACAu2Z,EAAwBT,aAG5Bxwb,EAAwBqpN,EAAAA,cACtB,QACA,CACE1xN,KAAMi5b,EAAcpxb,IACpBrI,OAAQ85b,EAAwBhvb,EAChCxK,MAAOw5b,EAAwBjvb,EAC/Bme,EAAG8wa,EAAwB9wa,EAAI/oB,EAC/BmzB,EAAG0ma,EAAwB1ma,EAAInzB,EAC/B07b,oBAAqB,OACrB3xb,QAAS8vb,EAAwB9vb,QACjCg7H,YAAa80T,EAAwB90T,eAI3C,MAAM42T,EAASzC,GAAaiC,EAAan7b,GACzC,OAAuBiyN,EAAAA,cACrB,MACAk/N,GAAe,CACbpxb,OAAQ0gB,EACRpgB,MAAOogB,EACPi8U,QAAS,OAAOk9F,KAAYA,IAC5BjkZ,IAAKilZ,EACLpuM,KAAM,OACLsmD,KACD3oQ,GAAyB8nL,EAAAA,cAAoB,QAAS,KAAM9nL,GAC9C8nL,EAAAA,cACd,OACA,CACEjoH,KAAMssN,EACNtxT,EAAG,SAAS40b,KAAYA,OACxBgC,eAAgB,eAGJ3pO,EAAAA,cAAoB,OAAQ,CAAEjoH,KAAM6wV,EAAS71b,EAAG22b,EAAQC,eAAgB,eACxFhzb,EAEJ,IAEQq3C,YAAc,YCrmCxB,MAwIA,GAxIe6+S,KAEX80E,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,0CAAyC48C,SAAA,EAEtDsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yBAAwB48C,UACrCqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,iFAAgF48C,SAAA,EAC7FqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,qBAAoB48C,SAAA,EACjCqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,0BAAyB48C,SAAA,EACtCsxX,EAAAA,GAAAA,KAAC4b,GAAY,CAAC9pb,UAAU,eACxBkua,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,sBAAqB48C,SAAC,2BAEtCsxX,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,UAAS48C,SAAC,wCAEzBqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,8BAA6B48C,SAAA,EAC1CsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAAC51Q,YAAY,aAAaxiF,UAAU,2CAC1Ckua,EAAAA,GAAAA,KAACtrO,GAAM,CAACnjM,KAAK,UAAUO,UAAU,4DAA2D48C,SAAC,uBAQnGqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,oEAAmE48C,SAAA,EAEhFqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,gBAAe48C,SAAA,EAC5BsxX,EAAAA,GAAAA,KAAA,OAAKzra,IAAKqjB,EAAQ,MAAgCk/T,IAAI,iBAAiBhlV,UAAU,eACjFkua,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,qCAAoC48C,SAAC,mDAGlDqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,OAAM48C,SAAA,EACnBsxX,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,wBAAuB48C,SAAC,qBACrCsxX,EAAAA,GAAAA,KAAA,KAAGtza,KAAK,oBAAoBoF,UAAU,+BAA8B48C,SAAC,sBAGrEqxX,EAAAA,GAAAA,MAACrrO,GAAM,CACLnjM,KAAK,UACLqb,KAAK,QACL9a,UAAU,8DACV4sE,QAASA,IAAM5uE,OAAOga,KAAK,2BAA4B,UAAU4kC,SAAA,EAEjEsxX,EAAAA,GAAAA,KAAC+c,GAAU,CAACjrb,UAAU,uBAAuB,iBAOnDiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,gDAA+C48C,SAAA,EAC5DqxX,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EACEsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,qBAAoB48C,SAAC,aACnCqxX,EAAAA,GAAAA,MAAA,MAAIjua,UAAU,YAAW48C,SAAA,EACvBsxX,EAAAA,GAAAA,KAAA,MAAAtxX,UAAIsxX,EAAAA,GAAAA,KAAChoM,GAAI,CAAC3iO,GAAG,SAASvD,UAAU,iCAAgC48C,SAAC,aACjEsxX,EAAAA,GAAAA,KAAA,MAAAtxX,UAAIsxX,EAAAA,GAAAA,KAAChoM,GAAI,CAAC3iO,GAAG,WAAWvD,UAAU,iCAAgC48C,SAAC,eACnEsxX,EAAAA,GAAAA,KAAA,MAAAtxX,UAAIsxX,EAAAA,GAAAA,KAAChoM,GAAI,CAAC3iO,GAAG,SAASvD,UAAU,iCAAgC48C,SAAC,mBAIrEqxX,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EACEsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,qBAAoB48C,SAAC,aACnCqxX,EAAAA,GAAAA,MAAA,MAAIjua,UAAU,YAAW48C,SAAA,EACvBsxX,EAAAA,GAAAA,KAAA,MAAAtxX,UAAIsxX,EAAAA,GAAAA,KAAChoM,GAAI,CAAC3iO,GAAG,WAAWvD,UAAU,iCAAgC48C,SAAC,eACnEsxX,EAAAA,GAAAA,KAAA,MAAAtxX,UAAIsxX,EAAAA,GAAAA,KAAChoM,GAAI,CAAC3iO,GAAG,WAAWvD,UAAU,iCAAgC48C,SAAC,qBAIvEqxX,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EACEsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,qBAAoB48C,SAAC,YACnCsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,YAAW48C,UACvBsxX,EAAAA,GAAAA,KAAA,MAAAtxX,UAAIsxX,EAAAA,GAAAA,KAAChoM,GAAI,CAAC3iO,GAAG,iBAAiBvD,UAAU,iCAAgC48C,SAAC,6BAOvFqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,OAAM48C,SAAA,EACnBsxX,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,6BAA4B48C,SAAC,+DAG1CqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,uBAAsB48C,SAAA,EACnCqxX,EAAAA,GAAAA,MAAA,KACErza,KAAK,4DACL4I,OAAO,SACPoyC,IAAI,sBACJ51C,UAAU,qGAAoG48C,SAAA,EAE9GsxX,EAAAA,GAAAA,KAAC4c,GAAO,CAAC9qb,UAAU,iBAAiB,2BAEtCiua,EAAAA,GAAAA,MAAA,KACErza,KAAK,sEACL4I,OAAO,SACPoyC,IAAI,sBACJ51C,UAAU,0GAAyG48C,SAAA,EAEnHsxX,EAAAA,GAAAA,KAAC6c,GAAY,CAAC/qb,UAAU,iBAAiB,gCAK7Ciua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,OAAM48C,SAAA,EACnBsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,wCAAuC48C,SAAC,yBACtDqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,0BAAyB48C,SAAA,EACtCqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,6BAA4B48C,SAAA,EACzCsxX,EAAAA,GAAAA,KAAC8mB,GAAY,CAAC39b,MAAM,sEAAsEyjB,KAAM,MAChGozZ,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,6BAA4B48C,SAAC,gBAE/CqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,6BAA4B48C,SAAA,EACzCsxX,EAAAA,GAAAA,KAAC8mB,GAAY,CAAC39b,MAAM,4DAA4DyjB,KAAM,MACtFozZ,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,6BAA4B48C,SAAC,wBAS/CqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,sHAAqH48C,SAAA,EAClIsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,gBAAe48C,SAAC,mCAC/BqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,0BAAyB48C,SAAA,EACtCsxX,EAAAA,GAAAA,KAAA,KAAGtza,KAAK,mDAAmD4I,OAAO,SAASoyC,IAAI,sBAAqBgH,UAClGsxX,EAAAA,GAAAA,KAAC8b,GAAgB,CAAChqb,UAAU,mCAE9Bkua,EAAAA,GAAAA,KAAA,KAAGtza,KAAK,+BAA+B4I,OAAO,SAASoyC,IAAI,sBAAqBgH,UAC9EsxX,EAAAA,GAAAA,KAACgc,GAAe,CAAClqb,UAAU,mCAE7Bkua,EAAAA,GAAAA,KAAA,KAAGtza,KAAK,wCAAwC4I,OAAO,SAASoyC,IAAI,sBAAqBgH,UACvFsxX,EAAAA,GAAAA,KAAC8c,GAAQ,CAAChrb,UAAU,q7qCC5BhC,GA7F2Bk2b,KACzB,MAAMp2N,EAAWR,MACV62N,EAAYC,IAAiBpwX,EAAAA,EAAAA,WAAS,IAE7CP,EAAAA,EAAAA,YAAU,KACR,MAAM5sE,EAAYkH,SAASw+B,cAAc,2BACnC83Z,EAAwBA,KAC5BD,EAAcv9b,EAAU45G,YAAc55G,EAAU85G,YAAY,EAM9D,OAHA0jV,IACAr4b,OAAOgD,iBAAiB,SAAUq1b,GAE3B,IAAMr4b,OAAOukD,oBAAoB,SAAU8zY,EAAsB,GACvE,IAoBH,OACEnoB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yBAAwB48C,UACrCqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,6EAA4E48C,SAAA,EACzFsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,8CAA6C48C,SAAC,8BAE5DqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,WAAU48C,SAAA,CAEtBu5Y,IACCloB,EAAAA,GAAAA,MAAAqoB,GAAAA,SAAA,CAAA15Y,SAAA,EACEsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACntJ,GAAY,IACnBhuO,MAAM,SACN/yC,UAAU,2HACV4sE,QA3BK1rE,KACjBnB,SAASw+B,cAAc,2BAA2Bg4Z,SAAS,CACzDz8b,MAAO,IACP08b,SAAU,UACV,KAyBQtoB,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACjtJ,GAAa,IACpBluO,MAAM,SACN/yC,UAAU,4HACV4sE,QA1BM6pX,KAClB12b,SAASw+B,cAAc,2BAA2Bg4Z,SAAS,CACzDz8b,KAAM,IACN08b,SAAU,UACV,QA6BNtoB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,+FAA8F48C,SAC1G,CACC,CAAE1gC,GAAI,uCAAwCw6a,KAAMC,GAAajwb,KAAM,WACvE,CAAEwV,GAAI,uCAAwCw6a,KAAME,GAAalwb,KAAM,WACvE,CAAEwV,GAAI,uCAAwCw6a,KAAMG,GAASnwb,KAAM,OACnE,CAAEwV,GAAI,uCAAwCw6a,KAAMI,GAAWpwb,KAAM,SACrE,CAAEwV,GAAI,uCAAwCw6a,KAAMK,GAAWrwb,KAAM,SACrE,CAAEwV,GAAI,uCAAwCw6a,KAAMM,GAAYtwb,KAAM,UACtE,CAACwV,GAAI,uCAAwCw6a,KAAMO,GAAUvwb,KAAM,QACnE,CAAEwV,GAAI,uCAAwCw6a,KAAMQ,GAAQxwb,KAAM,MAClE,CAAEwV,GAAI,uCAAwCw6a,KAAMS,GAASzwb,KAAM,aAEnEZ,KAAK8pa,IACL1B,EAAAA,GAAAA,KAAA,OAEEthW,QAASA,KAAMwqX,OA3DMjrB,EA2DUyD,EAAM1zZ,QA1DvC4jN,EAAS,UAAUqsM,KADIA,KA2DoB,EACzCnsa,UAAU,8MAA6M48C,UAEvNsxX,EAAAA,GAAAA,KAAA,OACEzra,IAAKmta,EAAM8mB,KACX1xG,IAAK4qF,EAAMlpa,KACX1G,UAAU,sCAPP4va,EAAM1zZ,eAeP,EC7DV,GAtCmBm7a,KACjB,MAAMr0X,EAAW2hS,MACX,cAAEukF,GAAkB9jF,IAAatiW,GAAUA,EAAM6mb,gBAIhD2N,EAAYC,IAAiBvxX,EAAAA,EAAAA,UAAS,OAE7CP,EAAAA,EAAAA,YAAU,KACRzC,EAASslX,GAAwB,aAAa,GAC7C,CAACtlX,KAEJyC,EAAAA,EAAAA,YAAU,KAER,MAAM+xX,EAAatO,EAAcn/a,MAAM2+C,GAVpB,yCAU2BA,EAAG+uY,SAC7CD,GACFD,EAAcC,EAChB,GACC,CAACtO,IAEJ,MAAMwO,EAAWJ,EACb,4CAA+BA,EAAWl9E,SAASxoW,MAAM,MAAM+4E,QAC/D,uCAEJ,OACEujV,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,8BAA6B48C,UAE1CsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,uDAAsD48C,UACnEsxX,EAAAA,GAAAA,KAAA,OACEzra,IAAKi1b,EACL1yG,IAAI,uBACJhlV,UAAU,kCAGV,sNCvBJ05G,GAAa,CACjB,CAAEx9F,GAAI,EAAGjZ,wzKAAiBsuG,MAAO,SAAUtiG,KAAM,WACjD,CAAEiN,GAAI,EAAGjZ,wvKAAoBsuG,MAAO,YAAatiG,KAAM,cACvD,CAAEiN,GAAI,EAAGjZ,gjRAAcsuG,MAAO,mBAAoBtiG,KAAM,kBACxD,CAAEiN,GAAI,EAAGjZ,MAAO00b,GAAYpmV,MAAO,gBAAiBtiG,KAAM,aAC1D,CAAEiN,GAAI,EAAGjZ,MAAO20b,GAAgBrmV,MAAO,cAAetiG,KAAM,gBAC5D,CAAEiN,GAAI,EAAGjZ,ohRAAcsuG,MAAO,aAActiG,KAAM,eAClD,CAAEiN,GAAI,EAAGjZ,yDAAkBsuG,MAAO,SAAUtiG,KAAM,iBAClD,CAAEiN,GAAI,EAAGjZ,MAAO40b,GAAYtmV,MAAO,aAActiG,KAAM,eACvD,CAAEiN,GAAI,GAAIjZ,MAAO60b,GAAQvmV,MAAO,MAAOtiG,KAAM,QAC7C,CAAEiN,GAAI,EAAGjZ,wDAAiBsuG,MAAO,QAAStiG,KAAM,WA6ElD,GA1E0B8ob,KACxB,MAAMj4N,EAAWR,MACV62N,EAAYC,IAAiBpwX,EAAAA,EAAAA,WAAS,GACvC87K,EAAex1B,EAAAA,OAAa,OAElC7mJ,EAAAA,EAAAA,YAAU,KACR,MAAM5sE,EAAYipP,EAAapjN,QACzB23Z,EAAwBA,KACxBx9b,GACFu9b,EAAcv9b,EAAU45G,YAAc55G,EAAU85G,YAClD,EAKF,OAFA0jV,IACAr4b,OAAOgD,iBAAiB,SAAUq1b,GAC3B,IAAMr4b,OAAOukD,oBAAoB,SAAU8zY,EAAsB,GACvE,IAUH,OACEnoB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yBAAwB48C,UACrCqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,6EAA4E48C,SAAA,EACzFsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,mCAAkC48C,SAAC,sBACjDqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,gBAAe48C,SAAA,CAC3Bu5Y,IACCloB,EAAAA,GAAAA,MAAAqoB,GAAAA,SAAA,CAAA15Y,SAAA,EACEsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACntJ,GAAY,IACnBhuO,MAAM,SACN/yC,UAAU,+HACV4sE,QAnBK1rE,KAAO,IAAD4gY,EACH,QAApBA,EAAAhgJ,EAAapjN,eAAO,IAAAojW,GAApBA,EAAsBy0D,SAAS,CAAEz8b,MAAO,IAAK08b,SAAU,UAAW,KAoBxDtoB,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACjtJ,GAAa,IACpBluO,MAAM,SACN/yC,UAAU,gIACV4sE,QArBM6pX,KAAO,IAADuB,EACJ,QAApBA,EAAAl2M,EAAapjN,eAAO,IAAAs5Z,GAApBA,EAAsBzB,SAAS,CAAEz8b,KAAM,IAAK08b,SAAU,UAAW,QAwB3DtoB,EAAAA,GAAAA,KAAA,OACEl+X,IAAK8xM,EACL9hP,UAAU,mEAAkE48C,SAE3E88D,GAAW5zG,KAAKupa,IACfpB,EAAAA,GAAAA,MAAA,OAEErhW,QAASA,IAAMkzJ,EAASuvM,EAASpga,MACjCjP,UAAU,wNAAuN48C,SAAA,EAEjOsxX,EAAAA,GAAAA,KAAA,OACEzra,IAAK4sa,EAASpsa,MACd+hV,IAAKqqF,EAAS99T,MACdvxG,UAAU,2CAEZkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,2GAA0G48C,SACtHyyX,EAAS99T,UAVP89T,EAASnzZ,eAiBpB,EC9FJ21W,GAAergX,iCAGRymb,GAAiB/mF,GAAiB,4BAA4BljK,UACzE,IAEE,aADuBshL,GAAMrpX,IAAI,GAAG4rX,6BACpB78W,IAClB,CAAE,MAAO1R,GAAQ,IAAD0uX,EAAA09C,EACd,MAAoB,QAAd19C,EAAA1uX,EAAMyxC,gBAAQ,IAAAi9U,GAAM,QAAN09C,EAAd19C,EAAgBh9W,YAAI,IAAA06Z,OAAN,EAAdA,EAAsBznW,UAAW,2BACzC,KAIWiwX,GAAyBhnF,GAAiB,oCAAoCljK,UACzF,IAEE,aADuBshL,GAAMrpX,IAAI,GAAG4rX,qCACpB78W,IAClB,CAAE,MAAO1R,GAAQ,IAAD4uX,EAAAimE,EACd,MAAoB,QAAdjmE,EAAA5uX,EAAMyxC,gBAAQ,IAAAm9U,GAAM,QAANimE,EAAdjmE,EAAgBl9W,YAAI,IAAAmjb,OAAN,EAAdA,EAAsBlwX,UAAW,qCACzC,KAIWmwX,GAAclnF,GAAiB,yBAAyBljK,UACnE,IAME,aALuBshL,GAAMrzM,KAAK,GAAG41M,6BAAwCwmE,EAAc,CACzF76E,QAAS,CACP,eAAgB,uBAGJxoW,IAClB,CAAE,MAAO1R,GAAQ,IAAD+kb,EAAAiQ,EACd,MAAoB,QAAdjQ,EAAA/kb,EAAMyxC,gBAAQ,IAAAszY,GAAM,QAANiQ,EAAdjQ,EAAgBrza,YAAI,IAAAsjb,OAAN,EAAdA,EAAsBrwX,UAAW,wBACzC,KAIWswX,GAAiBrnF,GAC5B,4BACAljK,UAA4C,IAArC,WAAEwqP,KAAeH,GAAc30S,EACpC,IAQE,aAPuB4rO,GAAMrzM,KAC3B,GAAG41M,4BAAsC2mE,IACzCH,EACA,CACE76E,QAAS,CAAE,eAAgB,uBAGfxoW,IAClB,CAAE,MAAO1R,GAAQ,IAADilb,EAAAkQ,EACd,MAAoB,QAAdlQ,EAAAjlb,EAAMyxC,gBAAQ,IAAAwzY,GAAM,QAANkQ,EAAdlQ,EAAgBvza,YAAI,IAAAyjb,OAAN,EAAdA,EAAsBxwX,UAAW,2BACzC,KAMEywX,GAAgB5hF,GAAY,CAChCpwW,KAAM,YACNytW,aAAc,CACZwkF,UAAW,GACXC,kBAAmB,GACnBnuT,SAAS,EACTnnI,MAAO,MAETyjW,SAAU,CACR8xF,eAAiB/1b,IACfA,EAAM61b,UAAY,GAClB71b,EAAM81b,kBAAoB,GAC1B91b,EAAMQ,MAAQ,IAAI,GAGtB2wW,cAAgB7D,IACdA,EACGC,QAAQ4nF,GAAex4X,SAAU38D,IAChCA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQ4nF,GAAe7mV,WAAW,CAACtuG,EAAO8/D,KACzC9/D,EAAM2nI,SAAU,EAChB3nI,EAAM61b,UAAY/1X,EAAO7C,OAAO,IAEjCswS,QAAQ4nF,GAAe5mV,UAAU,CAACvuG,EAAO8/D,KACxC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAEnCooS,QAAQ6nF,GAAuBz4X,SAAU38D,IACxCA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQ6nF,GAAuB9mV,WAAW,CAACtuG,EAAO8/D,KACjD9/D,EAAM2nI,SAAU,EAChB3nI,EAAM81b,kBAAoBh2X,EAAO7C,OAAO,IAEzCswS,QAAQ6nF,GAAuB7mV,UAAU,CAACvuG,EAAO8/D,KAChD9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAEnCooS,QAAQ+nF,GAAY34X,SAAU38D,IAC7BA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQ+nF,GAAYhnV,WAAW,CAACtuG,EAAO8/D,KACtC9/D,EAAM2nI,SAAU,EAChB3nI,EAAM61b,UAAUr+b,KAAKsoE,EAAO7C,QAAQ,IAErCswS,QAAQ+nF,GAAY/mV,UAAU,CAACvuG,EAAO8/D,KACrC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAEnCooS,QAAQkoF,GAAe94X,SAAU38D,IAChCA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQkoF,GAAennV,WAAW,CAACtuG,EAAO8/D,KACzC9/D,EAAM2nI,SAAU,EAChB,MAAM9hI,EAAQ7F,EAAM61b,UAAU3ub,WAAU8ub,GAAYA,EAASzsB,aAAezpW,EAAO7C,QAAQssW,cAC5E,IAAX1ja,IACF7F,EAAM61b,UAAUhwb,GAASi6D,EAAO7C,QAClC,IAEDswS,QAAQkoF,GAAelnV,UAAU,CAACvuG,EAAO8/D,KACxC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,GAClC,KAKO4wX,eAAe,IAAIH,GAAcxlW,QAChD,GAAewlW,GAAqB,QCyCpC,GApKuBK,KACrB,MAAM/1X,EAAW2hS,KACX7kI,EAAWR,MAEX,kBAAEs5N,GAAsBxzF,IAAatiW,GAAUA,EAAM61b,aACrD,mBAAE3rB,EAAkB,QAAEviS,GAAY26N,IAAatiW,GAAUA,EAAM6oa,YAE9DqtB,EAAcC,IAAmBjzX,EAAAA,EAAAA,UAAS,CAAC,IAC3CmwX,EAAYC,IAAiBpwX,EAAAA,EAAAA,UAAS,CAAC,GACxCkzX,GAAgBnzX,EAAAA,EAAAA,QAAO,CAAC,IAE9BN,EAAAA,EAAAA,YAAU,KACRzC,EAASk1X,KAAyB,GACjC,CAACl1X,KAEJyC,EAAAA,EAAAA,YAAU,MACa,OAAjBmzX,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBh/b,QAAS,GAC9Bg/b,EAAkBr/b,SAASu/b,IACzB91X,EAASypW,GAAgC,CAAEC,aAAcosB,EAASzsB,WAAYM,aAAc,KAAM,GAEtG,GACC,CAAC3pW,EAAU41X,KAEdnzX,EAAAA,EAAAA,YAAU,KACR,MAAM4wX,EAAwBA,KAC5B53b,OAAOC,KAAKw6b,EAAcx6Z,SAASnlC,SAAS2iB,IACtCg9a,EAAcx6Z,QAAQxiB,IACxBk6a,GAAe/ga,IAAI,IACdA,EACH,CAACnZ,GAAKg9a,EAAcx6Z,QAAQxiB,GAAIu2F,YAAcymV,EAAcx6Z,QAAQxiB,GAAIy2F,eAE5E,GACA,EAIJ,OAFA0jV,IACAr4b,OAAOgD,iBAAiB,SAAUq1b,GAC3B,IAAMr4b,OAAOukD,oBAAoB,SAAU8zY,EAAsB,GACvE,CAACrpB,IAkBJ,OACEiB,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,8BAA6B48C,SAAA,EACxB,OAAjBg8Y,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBh/b,QAAS,EAC3Bg/b,EAAkB9yb,KAAKgzb,IAAQ,IAAAK,EAAA,OAC7BlrB,EAAAA,GAAAA,MAAA,OAA+Bjua,UAAU,OAAM48C,SAAA,EAC7CqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,qEAAoE48C,SAAA,EACjFqxX,EAAAA,GAAAA,MAAA,MAAIjua,UAAU,uCAAsC48C,SAAA,EAClDsxX,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,OAAM48C,SAAC,iBACtBk8Y,EAASM,iBAEZnrB,EAAAA,GAAAA,MAAA,UACEjua,UAAU,uDACV4sE,QAASA,IAAMkzJ,EAAS,aAAag5N,EAASzsB,cAAczvX,SAAA,CAC7D,cACWsxX,EAAAA,GAAAA,KAACjtJ,GAAa,CAACjhR,UAAU,gBAIvCiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,WAAU48C,SAAA,CACtBu5Y,EAAW2C,EAASzsB,cACnB4B,EAAAA,GAAAA,MAAAqoB,GAAAA,SAAA,CAAA15Y,SAAA,EACEsxX,EAAAA,GAAAA,KAAA,UACElua,UAAU,4IACV4sE,QAASA,IAvCP1wD,KAAQ,IAADm9a,EACA,QAAzBA,EAAAH,EAAcx6Z,QAAQxiB,UAAG,IAAAm9a,GAAzBA,EAA2B9C,SAAS,CAAEz8b,MAAO,IAAK08b,SAAU,UAAW,EAsCxCt1b,CAAW43b,EAASzsB,YAAYzvX,UAE/CsxX,EAAAA,GAAAA,KAACntJ,GAAY,OAEfmtJ,EAAAA,GAAAA,KAAA,UACElua,UAAU,6IACV4sE,QAASA,IAzCN1wD,KAAQ,IAADo9a,EACD,QAAzBA,EAAAJ,EAAcx6Z,QAAQxiB,UAAG,IAAAo9a,GAAzBA,EAA2B/C,SAAS,CAAEz8b,KAAM,IAAK08b,SAAU,UAAW,EAwCvCC,CAAYqC,EAASzsB,YAAYzvX,UAEhDsxX,EAAAA,GAAAA,KAACjtJ,GAAa,UAIpBitJ,EAAAA,GAAAA,KAAA,OACEl+X,IAAMnyC,GAAQq7b,EAAcx6Z,QAAQo6Z,EAASzsB,YAAcxua,EAC3DmC,UAAU,8DAA6D48C,SAEtE6tF,EACC,IAAInxI,MAAM,IAAIwM,KAAI,CAAC8jB,EAAGjhB,KACpBsla,EAAAA,GAAAA,MAAA,OAAiBjua,UAAU,kGAAiG48C,SAAA,EAC1HsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,sDACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,wCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yCAHP2I,MAMQ,OAAlBqka,QAAkB,IAAlBA,GAAyC,QAAvBmsB,EAAlBnsB,EAAqB8rB,EAASzsB,mBAAW,IAAA8sB,OAAvB,EAAlBA,EAA2Cv/b,QAAS,EACtDoza,EAAmB8rB,EAASzsB,YAAY5ua,MAAM,EAAG,IAAIqI,KAAKw9V,IACxD2qE,EAAAA,GAAAA,MAAA,OAEAjua,UAAU,iMACV4sE,QAASA,IAAMkzJ,EAAS,YAAYwjI,EAAQ2tB,aAAar0U,SAAA,CAExD0mT,EAAQi2F,SAAW,IAClBrrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6EAA4E48C,SACxF,GAAG3iD,KAAK22B,OAAQ0yU,EAAQi2F,SAAWj2F,EAAQ4tB,OAAS5tB,EAAQi2F,SAAY,eAG7ErrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6DAA4D48C,SACxEo8Y,EAAa11F,EAAQ2tB,YACpBi9C,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,oEAEfkua,EAAAA,GAAAA,KAAA,OACEzra,IAAK,wDAAwD6gW,EAAQ6qE,aAAav8Z,MAAM,MAAM+4E,QAC9Fq6P,IAAKse,EAAQyqE,YACb/ta,UAAU,+CACV81b,OAAQA,KAAM0D,OA3EbxoE,EA2E6B1tB,EAAQ2tB,eA1E5DgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAD5BA,KA2EgD,EACjDvuU,QAASA,KAAMg3Y,OAxEbzoE,EAwE8B1tB,EAAQ2tB,eAvE9DgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAD3BA,KAwEiD,OAIzDk9C,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,wBAAuB48C,SAAE0mT,EAAQyqE,eAE9CG,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,uBAAsB48C,SAChC,IAAIikF,KAAK64T,aAAa,QAAS,CAAE37b,MAAO,WAAY47b,SAAU,QAASj+b,OAAO4nW,EAAQ4tB,OAAS,KAEjG5tB,EAAQi2F,SAAW,IAClBrrB,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,qCAAoC48C,SAC9C,IAAIikF,KAAK64T,aAAa,QAAS,CAAE37b,MAAO,WAAY47b,SAAU,QAASj+b,OAAO4nW,EAAQi2F,cA7BtFj2F,EAAQ2tB,cAoCfi9C,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,aAAY48C,SAAC,8BAlFxBk8Y,EAASzsB,WAsFb,KAGR6B,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,aAAY48C,SAAC,6BAG5BsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,gCAA+B48C,UAC5CqxX,EAAAA,GAAAA,MAAA,UACErhW,QAASA,IAAMkzJ,EAAS,aACxB9/N,UAAU,gIAA+H48C,SAAA,EAEzIsxX,EAAAA,GAAAA,KAAClsE,GAAoB,CAAChiW,UAAU,YAAY,kBAI5C,ECTV,GAvJmB45b,KACjB,MAAM52X,EAAW2hS,KACX7kI,EAAWR,KACXwiB,GAAe/7K,EAAAA,EAAAA,QAAO,OACrBowX,EAAYC,IAAiBpwX,EAAAA,EAAAA,WAAS,IACtCgzX,EAAcC,IAAmBjzX,EAAAA,EAAAA,UAAS,CAAC,GAC5C6zX,EAAsB,wCACtB,mBAAE5sB,EAAqB,CAAC,EAAC,QAAExiS,GAAY26N,IAAatiW,GAAUA,EAAM6oa,YACnEmuB,EAAUC,IAAe/zX,EAAAA,EAAAA,UAAS,KAEzCP,EAAAA,EAAAA,YAAU,KACRzC,EAASgpW,GAAwB6tB,IAEjC,MAAMjsT,EAAWC,aAAY,KAC3BksT,EAAYC,IAAe,GAC1B,KACH,MAAO,IAAMhsT,cAAcJ,EAAS,GACnC,CAAC5qE,KAEJyC,EAAAA,EAAAA,YAAU,KACR,MAAMw0X,EAAeA,KACfn4M,EAAapjN,SACf03Z,EAAct0M,EAAapjN,QAAQ+zE,YAAcqvI,EAAapjN,QAAQi0E,YACxE,EAIF,OAFAsnV,IACAj8b,OAAOgD,iBAAiB,SAAUi5b,GAC3B,IAAMj8b,OAAOukD,oBAAoB,SAAU03Y,EAAa,GAC9D,CAAChtB,IAEJ,MAAM+sB,EAAeA,KACnB,MAEMhpa,GAFa,IAAIpC,MAAOikI,SAAS,GAAI,GAAI,GAAI,KACvC,IAAIjkI,KAKhB,MAAO,GAHO30B,KAAKC,MAAM82B,EAAI,YACb/2B,KAAKC,MAAO82B,EAAI,IAAkB,UAClC/2B,KAAKC,MAAO82B,EAAO,IAAQ,MACG,EAS1Ckpa,EAAej3U,GACnBA,EAAOmrT,oBAAe1oa,EAAW,CAAEy0b,sBAAuB,EAAGC,sBAAuB,IAStF,OACEnsB,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,8BAA6B48C,SAAA,EAE1CqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,qEAAoE48C,SAAA,EACjFqxX,EAAAA,GAAAA,MAAA,MAAIjua,UAAU,uCAAsC48C,SAAA,EACpDsxX,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,OAAM48C,SAAC,uBAAU,qCAKjCqxX,EAAAA,GAAAA,MAAA,UACEjua,UAAU,uDACV4sE,QAASA,IAAMkzJ,EAAS,WAAWljL,SAAA,CACpC,cACWsxX,EAAAA,GAAAA,KAACjtJ,GAAa,CAACjhR,UAAU,gBAKvCiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,WAAU48C,SAAA,CACtBu5Y,IACCloB,EAAAA,GAAAA,MAAAqoB,GAAAA,SAAA,CAAA15Y,SAAA,EACEsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACH8H,MAAMwjO,EAAAA,GAAAA,KAACntJ,GAAY,IACnBhuO,MAAM,SACN/yC,UAAU,+HACV4sE,QA1CK1rE,KAAA,IAAA4gY,EAAA,OAA0B,QAA1BA,EAAMhgJ,EAAapjN,eAAO,IAAAojW,OAAA,EAApBA,EAAsBy0D,SAAS,CAAEz8b,MAAO,IAAK08b,SAAU,UAAW,KA4C/EtoB,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACjtJ,GAAa,IACpBluO,MAAM,SACN/yC,UAAU,gIACV4sE,QA/CM6pX,KAAA,IAAAuB,EAAA,OAA0B,QAA1BA,EAAMl2M,EAAapjN,eAAO,IAAAs5Z,OAAA,EAApBA,EAAsBzB,SAAS,CAAEz8b,KAAM,IAAK08b,SAAU,UAAW,QAmDrFtoB,EAAAA,GAAAA,KAAA,OACEl+X,IAAK8xM,EACL9hP,UAAU,8DAA6D48C,SAEzE6tF,EACN,IAAInxI,MAAM,IAAIwM,KAAI,CAAC8jB,EAAGjhB,KACpBsla,EAAAA,GAAAA,MAAA,OAAiBjua,UAAU,kGAAiG48C,SAAA,EAC1HsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,sDACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,wCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yCAHP2I,MAOXska,EAAmB4sB,IAAwB,IACzCp8b,QACA6vB,MAAK,CAAC3a,EAAGC,IAAM,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,eACpD3la,KAAK6kC,IACJsjY,SAAAA,GAAAA,MAAA,OAEEjua,UAAU,iMACV4sE,QAASA,IAAMkzJ,EAAS,YAAYn1L,EAAKsmV,aAAar0U,SAAA,CAGrDjS,EAAK4uZ,SAAW,IACfrrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6EAA4E48C,SACxF,GAAG3iD,KAAK22B,OAAQ+Z,EAAK4uZ,SAAW5uZ,EAAKumV,OAASvmV,EAAK4uZ,SAAY,eAIpErrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6DAA4D48C,SACxEo8Y,EAAaruZ,EAAKsmV,YACjBi9C,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,oEAEfkua,EAAAA,GAAAA,KAAA,OACEzra,KA7Ec43b,EA6EQ1vZ,EAAKwjY,aA5EhCksB,EACEA,EAAUzxb,SAAS,MACtB,wDAAwDyxb,EAAUzob,MAAM,MAAM+4E,QAC9E0vW,EAHmB,qBA6Ebr1G,IAAKr6S,EAAKojY,YACV/ta,UAAU,+CACV81b,OAAQA,KAAM0D,OAtFDxoE,EAsFiBrmV,EAAKsmV,UAtFRgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAAjEA,KAsFiC,EAC9CvuU,QAASA,KAAMg3Y,OAtFDzoE,EAsFkBrmV,EAAKsmV,UAtFTgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAAjEA,KAsFkC,OAItDk9C,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,uBAAsB48C,SAAEjS,EAAKojY,eAC1CE,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,uBAAsB48C,SAAA,CAAC,YAAKs9Y,EAAYvvZ,EAAKumV,UACzDvmV,EAAK4uZ,SAAW,IACftrB,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,qCAAoC48C,SAAA,CAAC,YAC3Cs9Y,EAAYvvZ,EAAK4uZ,eA5BrB5uZ,EAAKsmV,WA7DUopE,KA6FvB,WAKK,ECEV,GArJoBC,KAClB,MAAMt3X,EAAW2hS,KACX7kI,EAAWR,KACXwiB,GAAe/7K,EAAAA,EAAAA,QAAO,OACrBowX,EAAYC,IAAiBpwX,EAAAA,EAAAA,WAAS,IACtCgzX,EAAcC,IAAmBjzX,EAAAA,EAAAA,UAAS,CAAC,GAC5C6zX,EAAsB,wCACtB,mBAAE5sB,EAAqB,CAAC,EAAC,QAAExiS,GAAY26N,IAAatiW,GAAUA,EAAM6oa,YACnEmuB,EAAUC,IAAe/zX,EAAAA,EAAAA,UAAS,KAEzCP,EAAAA,EAAAA,YAAU,KACRzC,EAASgpW,GAAwB6tB,IAEjC,MAAMjsT,EAAWC,aAAY,KAC3BksT,EAAYC,IAAe,GAC1B,KACH,MAAO,IAAMhsT,cAAcJ,EAAS,GACnC,CAAC5qE,KAEJyC,EAAAA,EAAAA,YAAU,KACR,MAAMw0X,EAAeA,KACfn4M,EAAapjN,SACf03Z,EAAct0M,EAAapjN,QAAQ+zE,YAAcqvI,EAAapjN,QAAQi0E,YACxE,EAIF,OAFAsnV,IACAj8b,OAAOgD,iBAAiB,SAAUi5b,GAC3B,IAAMj8b,OAAOukD,oBAAoB,SAAU03Y,EAAa,GAC9D,CAAChtB,IAEJ,MAAM+sB,EAAeA,KACnB,MAEMhpa,GAFa,IAAIpC,MAAOikI,SAAS,GAAI,GAAI,GAAI,KACvC,IAAIjkI,KAKhB,MAAO,GAHO30B,KAAKC,MAAM82B,EAAI,YACb/2B,KAAKC,MAAO82B,EAAI,IAAkB,UAClC/2B,KAAKC,MAAO82B,EAAO,IAAQ,MACG,EAS1Ckpa,EAAej3U,GACnBA,EAAOmrT,oBAAe1oa,EAAW,CAAEy0b,sBAAuB,EAAGC,sBAAuB,IAStF,OACEnsB,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,8BAA6B48C,SAAA,EAE1CqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,qEAAoE48C,SAAA,EACjFqxX,EAAAA,GAAAA,MAAA,MAAIjua,UAAU,uCAAsC48C,SAAA,EAClDsxX,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,OAAM48C,SAAC,uBAAU,4BAGnCqxX,EAAAA,GAAAA,MAAA,UACEjua,UAAU,uDACV4sE,QAASA,IAAMkzJ,EAAS,cAAcljL,SAAA,CACvC,cACWsxX,EAAAA,GAAAA,KAACjtJ,GAAa,CAACjhR,UAAU,gBAKvCiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,WAAU48C,SAAA,CACtBu5Y,IACCloB,EAAAA,GAAAA,MAAAqoB,GAAAA,SAAA,CAAA15Y,SAAA,EACEsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACH8H,MAAMwjO,EAAAA,GAAAA,KAACntJ,GAAY,IACnBhuO,MAAM,SACN/yC,UAAU,+HACV4sE,QAxCK1rE,KAAA,IAAA4gY,EAAA,OAA0B,QAA1BA,EAAMhgJ,EAAapjN,eAAO,IAAAojW,OAAA,EAApBA,EAAsBy0D,SAAS,CAAEz8b,MAAO,IAAK08b,SAAU,UAAW,KA0C/EtoB,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACjtJ,GAAa,IACpBluO,MAAM,SACN/yC,UAAU,gIACV4sE,QA7CM6pX,KAAA,IAAAuB,EAAA,OAA0B,QAA1BA,EAAMl2M,EAAapjN,eAAO,IAAAs5Z,OAAA,EAApBA,EAAsBzB,SAAS,CAAEz8b,KAAM,IAAK08b,SAAU,UAAW,QAiDrFtoB,EAAAA,GAAAA,KAAA,OACEl+X,IAAK8xM,EACL9hP,UAAU,8DAA6D48C,SAEzE6tF,EACN,IAAInxI,MAAM,IAAIwM,KAAI,CAAC8jB,EAAGjhB,KACpBsla,EAAAA,GAAAA,MAAA,OAAiBjua,UAAU,kGAAiG48C,SAAA,EAC1HsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,sDACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,wCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yCAHP2I,MAOXska,EAAmB4sB,IAAwB,IACzCp8b,QACA6vB,MAAK,CAAC3a,EAAGC,IAAM,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,eACpD3la,KAAK6kC,IACJsjY,SAAAA,GAAAA,MAAA,OAEEjua,UAAU,iMACV4sE,QAASA,IAAMkzJ,EAAS,YAAYn1L,EAAKsmV,aAAar0U,SAAA,CAGrDjS,EAAK4uZ,SAAW,IACfrrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6EAA4E48C,SACxF,GAAG3iD,KAAK22B,OAAQ+Z,EAAK4uZ,SAAW5uZ,EAAKumV,OAASvmV,EAAK4uZ,SAAY,eAIpErrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6DAA4D48C,SACxEo8Y,EAAaruZ,EAAKsmV,YACjBi9C,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,oEAEfkua,EAAAA,GAAAA,KAAA,OACEzra,KA3Ec43b,EA2EQ1vZ,EAAKwjY,aA1EhCksB,EACEA,EAAUzxb,SAAS,MACtB,wDAAwDyxb,EAAUzob,MAAM,MAAM+4E,QAC9E0vW,EAHmB,qBA2Ebr1G,IAAKr6S,EAAKojY,YACV/ta,UAAU,+CACV81b,OAAQA,KAAM0D,OApFDxoE,EAoFiBrmV,EAAKsmV,UApFRgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAAjEA,KAoFiC,EAC9CvuU,QAASA,KAAMg3Y,OApFDzoE,EAoFkBrmV,EAAKsmV,UApFTgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAAjEA,KAoFkC,OAItDk9C,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,uBAAsB48C,SAAEjS,EAAKojY,eAC1CE,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,uBAAsB48C,SAAA,CAAC,YAAKs9Y,EAAYvvZ,EAAKumV,UACzDvmV,EAAK4uZ,SAAW,IACftrB,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,qCAAoC48C,SAAA,CAAC,YAC3Cs9Y,EAAYvvZ,EAAK4uZ,eA5BrB5uZ,EAAKsmV,WA3DUopE,KA2FvB,WAKK,ECIV,GArJ0BE,KACxB,MAAMv3X,EAAW2hS,KACX7kI,EAAWR,KACXwiB,GAAe/7K,EAAAA,EAAAA,QAAO,OACrBowX,EAAYC,IAAiBpwX,EAAAA,EAAAA,WAAS,IACtCgzX,EAAcC,IAAmBjzX,EAAAA,EAAAA,UAAS,CAAC,GAC5C6zX,EAAsB,wCACtB,mBAAE5sB,EAAqB,CAAC,EAAC,QAAExiS,GAAY26N,IAAatiW,GAAUA,EAAM6oa,YACnEmuB,EAAUC,IAAe/zX,EAAAA,EAAAA,UAAS,KAEzCP,EAAAA,EAAAA,YAAU,KACRzC,EAASgpW,GAAwB6tB,IAEjC,MAAMjsT,EAAWC,aAAY,KAC3BksT,EAAYC,IAAe,GAC1B,KACH,MAAO,IAAMhsT,cAAcJ,EAAS,GACnC,CAAC5qE,KAEJyC,EAAAA,EAAAA,YAAU,KACR,MAAMw0X,EAAeA,KACfn4M,EAAapjN,SACf03Z,EAAct0M,EAAapjN,QAAQ+zE,YAAcqvI,EAAapjN,QAAQi0E,YACxE,EAIF,OAFAsnV,IACAj8b,OAAOgD,iBAAiB,SAAUi5b,GAC3B,IAAMj8b,OAAOukD,oBAAoB,SAAU03Y,EAAa,GAC9D,CAAChtB,IAEJ,MAAM+sB,EAAeA,KACnB,MAEMhpa,GAFa,IAAIpC,MAAOikI,SAAS,GAAI,GAAI,GAAI,KACvC,IAAIjkI,KAKhB,MAAO,GAHO30B,KAAKC,MAAM82B,EAAI,YACb/2B,KAAKC,MAAO82B,EAAI,IAAkB,UAClC/2B,KAAKC,MAAO82B,EAAO,IAAQ,MACG,EAS1Ckpa,EAAej3U,GACnBA,EAAOmrT,oBAAe1oa,EAAW,CAAEy0b,sBAAuB,EAAGC,sBAAuB,IAStF,OACEnsB,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,8BAA6B48C,SAAA,EAE1CqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,qEAAoE48C,SAAA,EACjFqxX,EAAAA,GAAAA,MAAA,MAAIjua,UAAU,uCAAsC48C,SAAA,EAClDsxX,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,OAAM48C,SAAC,uBAAU,wCAGnCqxX,EAAAA,GAAAA,MAAA,UACEjua,UAAU,uDACV4sE,QAASA,IAAMkzJ,EAAS,iBAAiBljL,SAAA,CAC1C,cACWsxX,EAAAA,GAAAA,KAACjtJ,GAAa,CAACjhR,UAAU,gBAKvCiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,WAAU48C,SAAA,CACtBu5Y,IACCloB,EAAAA,GAAAA,MAAAqoB,GAAAA,SAAA,CAAA15Y,SAAA,EACGsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACJ8H,MAAMwjO,EAAAA,GAAAA,KAACntJ,GAAY,IACnBhuO,MAAM,SACN/yC,UAAU,+HACV4sE,QAxCK1rE,KAAA,IAAA4gY,EAAA,OAA0B,QAA1BA,EAAMhgJ,EAAapjN,eAAO,IAAAojW,OAAA,EAApBA,EAAsBy0D,SAAS,CAAEz8b,MAAO,IAAK08b,SAAU,UAAW,KA0C/EtoB,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACjtJ,GAAa,IACpBluO,MAAM,SACN/yC,UAAU,gIACV4sE,QA7CM6pX,KAAA,IAAAuB,EAAA,OAA0B,QAA1BA,EAAMl2M,EAAapjN,eAAO,IAAAs5Z,OAAA,EAApBA,EAAsBzB,SAAS,CAAEz8b,KAAM,IAAK08b,SAAU,UAAW,QAiDrFtoB,EAAAA,GAAAA,KAAA,OACEl+X,IAAK8xM,EACL9hP,UAAU,8DAA6D48C,SAEzE6tF,EACN,IAAInxI,MAAM,IAAIwM,KAAI,CAAC8jB,EAAGjhB,KACpBsla,EAAAA,GAAAA,MAAA,OAAiBjua,UAAU,kGAAiG48C,SAAA,EAC1HsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,sDACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,wCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yCAHP2I,MAOXska,EAAmB4sB,IAAwB,IACzCp8b,QACA6vB,MAAK,CAAC3a,EAAGC,IAAM,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,eACpD3la,KAAK6kC,IACJsjY,SAAAA,GAAAA,MAAA,OAEEjua,UAAU,iMACV4sE,QAASA,IAAMkzJ,EAAS,YAAYn1L,EAAKsmV,aAAar0U,SAAA,CAGrDjS,EAAK4uZ,SAAW,IACfrrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6EAA4E48C,SACxF,GAAG3iD,KAAK22B,OAAQ+Z,EAAK4uZ,SAAW5uZ,EAAKumV,OAASvmV,EAAK4uZ,SAAY,eAIpErrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6DAA4D48C,SACxEo8Y,EAAaruZ,EAAKsmV,YACjBi9C,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,oEAEfkua,EAAAA,GAAAA,KAAA,OACEzra,KA3Ec43b,EA2EQ1vZ,EAAKwjY,aA1EhCksB,EACEA,EAAUzxb,SAAS,MACtB,wDAAwDyxb,EAAUzob,MAAM,MAAM+4E,QAC9E0vW,EAHmB,qBA2Ebr1G,IAAKr6S,EAAKojY,YACV/ta,UAAU,+CACV81b,OAAQA,KAAM0D,OApFDxoE,EAoFiBrmV,EAAKsmV,UApFRgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAAjEA,KAoFiC,EAC9CvuU,QAASA,KAAMg3Y,OApFDzoE,EAoFkBrmV,EAAKsmV,UApFTgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAAjEA,KAoFkC,OAItDk9C,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,uBAAsB48C,SAAEjS,EAAKojY,eAC1CE,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,uBAAsB48C,SAAA,CAAC,YAAKs9Y,EAAYvvZ,EAAKumV,UACzDvmV,EAAK4uZ,SAAW,IACftrB,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,qCAAoC48C,SAAA,CAAC,YAC3Cs9Y,EAAYvvZ,EAAK4uZ,eA5BrB5uZ,EAAKsmV,WA3DUopE,KA2FvB,WAKK,ECIV,GArJwBG,KACtB,MAAMx3X,EAAW2hS,KACX7kI,EAAWR,KACXwiB,GAAe/7K,EAAAA,EAAAA,QAAO,OACrBowX,EAAYC,IAAiBpwX,EAAAA,EAAAA,WAAS,IACtCgzX,EAAcC,IAAmBjzX,EAAAA,EAAAA,UAAS,CAAC,GAC5C6zX,EAAsB,wCACtB,mBAAE5sB,EAAqB,CAAC,EAAC,QAAExiS,GAAY26N,IAAatiW,GAAUA,EAAM6oa,YACnEmuB,EAAUC,IAAe/zX,EAAAA,EAAAA,UAAS,KAEzCP,EAAAA,EAAAA,YAAU,KACRzC,EAASgpW,GAAwB6tB,IAEjC,MAAMjsT,EAAWC,aAAY,KAC3BksT,EAAYC,IAAe,GAC1B,KACH,MAAO,IAAMhsT,cAAcJ,EAAS,GACnC,CAAC5qE,KAEJyC,EAAAA,EAAAA,YAAU,KACR,MAAMw0X,EAAeA,KACfn4M,EAAapjN,SACf03Z,EAAct0M,EAAapjN,QAAQ+zE,YAAcqvI,EAAapjN,QAAQi0E,YACxE,EAIF,OAFAsnV,IACAj8b,OAAOgD,iBAAiB,SAAUi5b,GAC3B,IAAMj8b,OAAOukD,oBAAoB,SAAU03Y,EAAa,GAC9D,CAAChtB,IAEJ,MAAM+sB,EAAeA,KACnB,MAEMhpa,GAFa,IAAIpC,MAAOikI,SAAS,GAAI,GAAI,GAAI,KACvC,IAAIjkI,KAKhB,MAAO,GAHO30B,KAAKC,MAAM82B,EAAI,YACb/2B,KAAKC,MAAO82B,EAAI,IAAkB,UAClC/2B,KAAKC,MAAO82B,EAAO,IAAQ,MACG,EAS1Ckpa,EAAej3U,GACnBA,EAAOmrT,oBAAe1oa,EAAW,CAAEy0b,sBAAuB,EAAGC,sBAAuB,IAStF,OACEnsB,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,8BAA6B48C,SAAA,EAE1CqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,qEAAoE48C,SAAA,EACjFqxX,EAAAA,GAAAA,MAAA,MAAIjua,UAAU,uCAAsC48C,SAAA,EAClDsxX,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,OAAM48C,SAAC,uBAAU,qCAGnCqxX,EAAAA,GAAAA,MAAA,UACEjua,UAAU,uDACV4sE,QAASA,IAAMkzJ,EAAS,eAAeljL,SAAA,CACxC,cACWsxX,EAAAA,GAAAA,KAACjtJ,GAAa,CAACjhR,UAAU,gBAKvCiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,WAAU48C,SAAA,CACtBu5Y,IACCloB,EAAAA,GAAAA,MAAAqoB,GAAAA,SAAA,CAAA15Y,SAAA,EACAsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACD8H,MAAMwjO,EAAAA,GAAAA,KAACntJ,GAAY,IACnBhuO,MAAM,SACN/yC,UAAU,+HACV4sE,QAxCK1rE,KAAA,IAAA4gY,EAAA,OAA0B,QAA1BA,EAAMhgJ,EAAapjN,eAAO,IAAAojW,OAAA,EAApBA,EAAsBy0D,SAAS,CAAEz8b,MAAO,IAAK08b,SAAU,UAAW,KA0C/EtoB,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACjtJ,GAAa,IACpBluO,MAAM,SACN/yC,UAAU,gIACV4sE,QA7CM6pX,KAAA,IAAAuB,EAAA,OAA0B,QAA1BA,EAAMl2M,EAAapjN,eAAO,IAAAs5Z,OAAA,EAApBA,EAAsBzB,SAAS,CAAEz8b,KAAM,IAAK08b,SAAU,UAAW,QAiDrFtoB,EAAAA,GAAAA,KAAA,OACEl+X,IAAK8xM,EACL9hP,UAAU,8DAA6D48C,SAEzE6tF,EACN,IAAInxI,MAAM,IAAIwM,KAAI,CAAC8jB,EAAGjhB,KACpBsla,EAAAA,GAAAA,MAAA,OAAiBjua,UAAU,kGAAiG48C,SAAA,EAC1HsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,sDACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,wCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yCAHP2I,MAOXska,EAAmB4sB,IAAwB,IACzCp8b,QACA6vB,MAAK,CAAC3a,EAAGC,IAAM,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,eACpD3la,KAAK6kC,IACJsjY,SAAAA,GAAAA,MAAA,OAEEjua,UAAU,iMACV4sE,QAASA,IAAMkzJ,EAAS,YAAYn1L,EAAKsmV,aAAar0U,SAAA,CAGrDjS,EAAK4uZ,SAAW,IACfrrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6EAA4E48C,SACxF,GAAG3iD,KAAK22B,OAAQ+Z,EAAK4uZ,SAAW5uZ,EAAKumV,OAASvmV,EAAK4uZ,SAAY,eAIpErrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6DAA4D48C,SACxEo8Y,EAAaruZ,EAAKsmV,YACjBi9C,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,oEAEfkua,EAAAA,GAAAA,KAAA,OACEzra,KA3Ec43b,EA2EQ1vZ,EAAKwjY,aA1EhCksB,EACEA,EAAUzxb,SAAS,MACtB,wDAAwDyxb,EAAUzob,MAAM,MAAM+4E,QAC9E0vW,EAHmB,qBA2Ebr1G,IAAKr6S,EAAKojY,YACV/ta,UAAU,+CACV81b,OAAQA,KAAM0D,OApFDxoE,EAoFiBrmV,EAAKsmV,UApFRgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAAjEA,KAoFiC,EAC9CvuU,QAASA,KAAMg3Y,OApFDzoE,EAoFkBrmV,EAAKsmV,UApFTgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAAjEA,KAoFkC,OAItDk9C,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,uBAAsB48C,SAAEjS,EAAKojY,eAC1CE,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,uBAAsB48C,SAAA,CAAC,YAAKs9Y,EAAYvvZ,EAAKumV,UACzDvmV,EAAK4uZ,SAAW,IACftrB,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,qCAAoC48C,SAAA,CAAC,YAC3Cs9Y,EAAYvvZ,EAAK4uZ,eA5BrB5uZ,EAAKsmV,WA3DUopE,KA2FvB,WAKK,ECGV,GArJwBI,KACtB,MAAMz3X,EAAW2hS,KACX7kI,EAAWR,KACXwiB,GAAe/7K,EAAAA,EAAAA,QAAO,OACrBowX,EAAYC,IAAiBpwX,EAAAA,EAAAA,WAAS,IACtCgzX,EAAcC,IAAmBjzX,EAAAA,EAAAA,UAAS,CAAC,GAC5C6zX,EAAsB,wCACtB,mBAAE5sB,EAAqB,CAAC,EAAC,QAAExiS,GAAY26N,IAAatiW,GAAUA,EAAM6oa,YACnEmuB,EAAUC,IAAe/zX,EAAAA,EAAAA,UAAS,KAEzCP,EAAAA,EAAAA,YAAU,KACRzC,EAASgpW,GAAwB6tB,IAEjC,MAAMjsT,EAAWC,aAAY,KAC3BksT,EAAYC,IAAe,GAC1B,KACH,MAAO,IAAMhsT,cAAcJ,EAAS,GACnC,CAAC5qE,KAEJyC,EAAAA,EAAAA,YAAU,KACR,MAAMw0X,EAAeA,KACfn4M,EAAapjN,SACf03Z,EAAct0M,EAAapjN,QAAQ+zE,YAAcqvI,EAAapjN,QAAQi0E,YACxE,EAIF,OAFAsnV,IACAj8b,OAAOgD,iBAAiB,SAAUi5b,GAC3B,IAAMj8b,OAAOukD,oBAAoB,SAAU03Y,EAAa,GAC9D,CAAChtB,IAEJ,MAAM+sB,EAAeA,KACnB,MAEMhpa,GAFa,IAAIpC,MAAOikI,SAAS,GAAI,GAAI,GAAI,KACvC,IAAIjkI,KAKhB,MAAO,GAHO30B,KAAKC,MAAM82B,EAAI,YACb/2B,KAAKC,MAAO82B,EAAI,IAAkB,UAClC/2B,KAAKC,MAAO82B,EAAO,IAAQ,MACG,EAS1Ckpa,EAAej3U,GACnBA,EAAOmrT,oBAAe1oa,EAAW,CAAEy0b,sBAAuB,EAAGC,sBAAuB,IAStF,OACEnsB,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,8BAA6B48C,SAAA,EAE1CqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,qEAAoE48C,SAAA,EACjFqxX,EAAAA,GAAAA,MAAA,MAAIjua,UAAU,uCAAsC48C,SAAA,EAClDsxX,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,OAAM48C,SAAC,uBAAU,6BAGnCqxX,EAAAA,GAAAA,MAAA,UACEjua,UAAU,uDACV4sE,QAASA,IAAMkzJ,EAAS,eAAeljL,SAAA,CACxC,cACWsxX,EAAAA,GAAAA,KAACjtJ,GAAa,CAACjhR,UAAU,gBAKvCiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,WAAU48C,SAAA,CACtBu5Y,IACCloB,EAAAA,GAAAA,MAAAqoB,GAAAA,SAAA,CAAA15Y,SAAA,EACGsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACJ8H,MAAMwjO,EAAAA,GAAAA,KAACntJ,GAAY,IACnBhuO,MAAM,SACN/yC,UAAU,+HACV4sE,QAxCK1rE,KAAA,IAAA4gY,EAAA,OAA0B,QAA1BA,EAAMhgJ,EAAapjN,eAAO,IAAAojW,OAAA,EAApBA,EAAsBy0D,SAAS,CAAEz8b,MAAO,IAAK08b,SAAU,UAAW,KA0C/EtoB,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACjtJ,GAAa,IACpBluO,MAAM,SACN/yC,UAAU,gIACV4sE,QA7CM6pX,KAAA,IAAAuB,EAAA,OAA0B,QAA1BA,EAAMl2M,EAAapjN,eAAO,IAAAs5Z,OAAA,EAApBA,EAAsBzB,SAAS,CAAEz8b,KAAM,IAAK08b,SAAU,UAAW,QAiDrFtoB,EAAAA,GAAAA,KAAA,OACEl+X,IAAK8xM,EACL9hP,UAAU,8DAA6D48C,SAEzE6tF,EACN,IAAInxI,MAAM,IAAIwM,KAAI,CAAC8jB,EAAGjhB,KACpBsla,EAAAA,GAAAA,MAAA,OAAiBjua,UAAU,kGAAiG48C,SAAA,EAC1HsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,sDACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,wCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yCAHP2I,MAOXska,EAAmB4sB,IAAwB,IACzCp8b,QACA6vB,MAAK,CAAC3a,EAAGC,IAAM,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,eACpD3la,KAAK6kC,IACJsjY,SAAAA,GAAAA,MAAA,OAEEjua,UAAU,iMACV4sE,QAASA,IAAMkzJ,EAAS,YAAYn1L,EAAKsmV,aAAar0U,SAAA,CAGrDjS,EAAK4uZ,SAAW,IACfrrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6EAA4E48C,SACxF,GAAG3iD,KAAK22B,OAAQ+Z,EAAK4uZ,SAAW5uZ,EAAKumV,OAASvmV,EAAK4uZ,SAAY,eAIpErrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6DAA4D48C,SACxEo8Y,EAAaruZ,EAAKsmV,YACjBi9C,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,oEAEfkua,EAAAA,GAAAA,KAAA,OACEzra,KA3Ec43b,EA2EQ1vZ,EAAKwjY,aA1EhCksB,EACEA,EAAUzxb,SAAS,MACtB,wDAAwDyxb,EAAUzob,MAAM,MAAM+4E,QAC9E0vW,EAHmB,qBA2Ebr1G,IAAKr6S,EAAKojY,YACV/ta,UAAU,+CACV81b,OAAQA,KAAM0D,OApFDxoE,EAoFiBrmV,EAAKsmV,UApFRgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAAjEA,KAoFiC,EAC9CvuU,QAASA,KAAMg3Y,OApFDzoE,EAoFkBrmV,EAAKsmV,UApFTgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAAjEA,KAoFkC,OAItDk9C,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,uBAAsB48C,SAAEjS,EAAKojY,eAC1CE,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,uBAAsB48C,SAAA,CAAC,YAAKs9Y,EAAYvvZ,EAAKumV,UACzDvmV,EAAK4uZ,SAAW,IACftrB,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,qCAAoC48C,SAAA,CAAC,YAC3Cs9Y,EAAYvvZ,EAAK4uZ,eA5BrB5uZ,EAAKsmV,WA3DUopE,KA2FvB,WAKK,ECMV,GAtJqBK,KACnB,MAAM13X,EAAW2hS,KACX7kI,EAAWR,KACXwiB,GAAe/7K,EAAAA,EAAAA,QAAO,OACrBowX,EAAYC,IAAiBpwX,EAAAA,EAAAA,WAAS,IACtCgzX,EAAcC,IAAmBjzX,EAAAA,EAAAA,UAAS,CAAC,GAC5C6zX,EAAsB,wCAEtB,mBAAE5sB,EAAqB,CAAC,EAAC,QAAExiS,GAAY26N,IAAatiW,GAAUA,EAAM6oa,YACnEmuB,EAAUC,IAAe/zX,EAAAA,EAAAA,UAAS,KAEzCP,EAAAA,EAAAA,YAAU,KACRzC,EAASgpW,GAAwB6tB,IAEjC,MAAMjsT,EAAWC,aAAY,KAC3BksT,EAAYC,IAAe,GAC1B,KACH,MAAO,IAAMhsT,cAAcJ,EAAS,GACnC,CAAC5qE,KAEJyC,EAAAA,EAAAA,YAAU,KACR,MAAMw0X,EAAeA,KACfn4M,EAAapjN,SACf03Z,EAAct0M,EAAapjN,QAAQ+zE,YAAcqvI,EAAapjN,QAAQi0E,YACxE,EAIF,OAFAsnV,IACAj8b,OAAOgD,iBAAiB,SAAUi5b,GAC3B,IAAMj8b,OAAOukD,oBAAoB,SAAU03Y,EAAa,GAC9D,CAAChtB,IAEJ,MAAM+sB,EAAeA,KACnB,MAEMhpa,GAFa,IAAIpC,MAAOikI,SAAS,GAAI,GAAI,GAAI,KACvC,IAAIjkI,KAKhB,MAAO,GAHO30B,KAAKC,MAAM82B,EAAI,YACb/2B,KAAKC,MAAO82B,EAAI,IAAkB,UAClC/2B,KAAKC,MAAO82B,EAAO,IAAQ,MACG,EAS1Ckpa,EAAej3U,GACnBA,EAAOmrT,oBAAe1oa,EAAW,CAAEy0b,sBAAuB,EAAGC,sBAAuB,IAStF,OACEnsB,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,8BAA6B48C,SAAA,EAE1CqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,qEAAoE48C,SAAA,EACjFqxX,EAAAA,GAAAA,MAAA,MAAIjua,UAAU,uCAAsC48C,SAAA,EAClDsxX,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,OAAM48C,SAAC,uBAAU,qBAGnCqxX,EAAAA,GAAAA,MAAA,UACEjua,UAAU,uDACV4sE,QAASA,IAAMkzJ,EAAS,aAAaljL,SAAA,CACtC,cACWsxX,EAAAA,GAAAA,KAACjtJ,GAAa,CAACjhR,UAAU,gBAKvCiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,WAAU48C,SAAA,CACtBu5Y,IACCloB,EAAAA,GAAAA,MAAAqoB,GAAAA,SAAA,CAAA15Y,SAAA,EACGsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACJ8H,MAAMwjO,EAAAA,GAAAA,KAACntJ,GAAY,IACnBhuO,MAAM,SACN/yC,UAAU,+HACV4sE,QAxCK1rE,KAAA,IAAA4gY,EAAA,OAA0B,QAA1BA,EAAMhgJ,EAAapjN,eAAO,IAAAojW,OAAA,EAApBA,EAAsBy0D,SAAS,CAAEz8b,MAAO,IAAK08b,SAAU,UAAW,KA0C/EtoB,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACjtJ,GAAa,IACpBluO,MAAM,SACN/yC,UAAU,gIACV4sE,QA7CM6pX,KAAA,IAAAuB,EAAA,OAA0B,QAA1BA,EAAMl2M,EAAapjN,eAAO,IAAAs5Z,OAAA,EAApBA,EAAsBzB,SAAS,CAAEz8b,KAAM,IAAK08b,SAAU,UAAW,QAiDrFtoB,EAAAA,GAAAA,KAAA,OACEl+X,IAAK8xM,EACL9hP,UAAU,8DAA6D48C,SAEzE6tF,EACN,IAAInxI,MAAM,IAAIwM,KAAI,CAAC8jB,EAAGjhB,KACpBsla,EAAAA,GAAAA,MAAA,OAAiBjua,UAAU,kGAAiG48C,SAAA,EAC1HsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,sDACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,wCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yCAHP2I,MAOXska,EAAmB4sB,IAAwB,IACzCp8b,QACA6vB,MAAK,CAAC3a,EAAGC,IAAM,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,eACpD3la,KAAK6kC,IACJsjY,SAAAA,GAAAA,MAAA,OAEEjua,UAAU,iMACV4sE,QAASA,IAAMkzJ,EAAS,YAAYn1L,EAAKsmV,aAAar0U,SAAA,CAGrDjS,EAAK4uZ,SAAW,IACfrrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6EAA4E48C,SACxF,GAAG3iD,KAAK22B,OAAQ+Z,EAAK4uZ,SAAW5uZ,EAAKumV,OAASvmV,EAAK4uZ,SAAY,eAIpErrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6DAA4D48C,SACxEo8Y,EAAaruZ,EAAKsmV,YACjBi9C,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,oEAEfkua,EAAAA,GAAAA,KAAA,OACEzra,KA3Ec43b,EA2EQ1vZ,EAAKwjY,aA1EhCksB,EACEA,EAAUzxb,SAAS,MACtB,wDAAwDyxb,EAAUzob,MAAM,MAAM+4E,QAC9E0vW,EAHmB,qBA2Ebr1G,IAAKr6S,EAAKojY,YACV/ta,UAAU,+CACV81b,OAAQA,KAAM0D,OApFDxoE,EAoFiBrmV,EAAKsmV,UApFRgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAAjEA,KAoFiC,EAC9CvuU,QAASA,KAAMg3Y,OApFDzoE,EAoFkBrmV,EAAKsmV,UApFTgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAAjEA,KAoFkC,OAItDk9C,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,uBAAsB48C,SAAEjS,EAAKojY,eAC1CE,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,uBAAsB48C,SAAA,CAAC,YAAKs9Y,EAAYvvZ,EAAKumV,UACzDvmV,EAAK4uZ,SAAW,IACftrB,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,qCAAoC48C,SAAA,CAAC,YAC3Cs9Y,EAAYvvZ,EAAK4uZ,eA5BrB5uZ,EAAKsmV,WA3DUopE,KA2FvB,WAKK,ECIV,GArJyBM,KACvB,MAAM33X,EAAW2hS,KACX7kI,EAAWR,KACXwiB,GAAe/7K,EAAAA,EAAAA,QAAO,OACrBowX,EAAYC,IAAiBpwX,EAAAA,EAAAA,WAAS,IACtCgzX,EAAcC,IAAmBjzX,EAAAA,EAAAA,UAAS,CAAC,GAC5C6zX,EAAsB,wCACtB,mBAAE5sB,EAAqB,CAAC,EAAC,QAAExiS,GAAY26N,IAAatiW,GAAUA,EAAM6oa,YACnEmuB,EAAUC,IAAe/zX,EAAAA,EAAAA,UAAS,KAEzCP,EAAAA,EAAAA,YAAU,KACRzC,EAASgpW,GAAwB6tB,IAEjC,MAAMjsT,EAAWC,aAAY,KAC3BksT,EAAYC,IAAe,GAC1B,KACH,MAAO,IAAMhsT,cAAcJ,EAAS,GACnC,CAAC5qE,KAEJyC,EAAAA,EAAAA,YAAU,KACR,MAAMw0X,EAAeA,KACfn4M,EAAapjN,SACf03Z,EAAct0M,EAAapjN,QAAQ+zE,YAAcqvI,EAAapjN,QAAQi0E,YACxE,EAIF,OAFAsnV,IACAj8b,OAAOgD,iBAAiB,SAAUi5b,GAC3B,IAAMj8b,OAAOukD,oBAAoB,SAAU03Y,EAAa,GAC9D,CAAChtB,IAEJ,MAAM+sB,EAAeA,KACnB,MAEMhpa,GAFa,IAAIpC,MAAOikI,SAAS,GAAI,GAAI,GAAI,KACvC,IAAIjkI,KAKhB,MAAO,GAHO30B,KAAKC,MAAM82B,EAAI,YACb/2B,KAAKC,MAAO82B,EAAI,IAAkB,UAClC/2B,KAAKC,MAAO82B,EAAO,IAAQ,MACG,EAS1Ckpa,EAAej3U,GACnBA,EAAOmrT,oBAAe1oa,EAAW,CAAEy0b,sBAAuB,EAAGC,sBAAuB,IAStF,OACEnsB,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,8BAA6B48C,SAAA,EAE1CqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,qEAAoE48C,SAAA,EACjFqxX,EAAAA,GAAAA,MAAA,MAAIjua,UAAU,uCAAsC48C,SAAA,EAClDsxX,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,OAAM48C,SAAC,uBAAU,mBAGnCqxX,EAAAA,GAAAA,MAAA,UACEjua,UAAU,uDACV4sE,QAASA,IAAMkzJ,EAAS,gBAAgBljL,SAAA,CACzC,cACWsxX,EAAAA,GAAAA,KAACjtJ,GAAa,CAACjhR,UAAU,gBAKvCiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,WAAU48C,SAAA,CACtBu5Y,IACCloB,EAAAA,GAAAA,MAAAqoB,GAAAA,SAAA,CAAA15Y,SAAA,EACGsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACJ8H,MAAMwjO,EAAAA,GAAAA,KAACntJ,GAAY,IACnBhuO,MAAM,SACN/yC,UAAU,+HACV4sE,QAxCK1rE,KAAA,IAAA4gY,EAAA,OAA0B,QAA1BA,EAAMhgJ,EAAapjN,eAAO,IAAAojW,OAAA,EAApBA,EAAsBy0D,SAAS,CAAEz8b,MAAO,IAAK08b,SAAU,UAAW,KA0C/EtoB,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACjtJ,GAAa,IACpBluO,MAAM,SACN/yC,UAAU,gIACV4sE,QA7CM6pX,KAAA,IAAAuB,EAAA,OAA0B,QAA1BA,EAAMl2M,EAAapjN,eAAO,IAAAs5Z,OAAA,EAApBA,EAAsBzB,SAAS,CAAEz8b,KAAM,IAAK08b,SAAU,UAAW,QAiDrFtoB,EAAAA,GAAAA,KAAA,OACEl+X,IAAK8xM,EACL9hP,UAAU,8DAA6D48C,SAEzE6tF,EACN,IAAInxI,MAAM,IAAIwM,KAAI,CAAC8jB,EAAGjhB,KACpBsla,EAAAA,GAAAA,MAAA,OAAiBjua,UAAU,kGAAiG48C,SAAA,EAC1HsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,sDACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,wCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yCAHP2I,MAOXska,EAAmB4sB,IAAwB,IACzCp8b,QACA6vB,MAAK,CAAC3a,EAAGC,IAAM,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,eACpD3la,KAAK6kC,IACJsjY,SAAAA,GAAAA,MAAA,OAEEjua,UAAU,iMACV4sE,QAASA,IAAMkzJ,EAAS,YAAYn1L,EAAKsmV,aAAar0U,SAAA,CAGrDjS,EAAK4uZ,SAAW,IACfrrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6EAA4E48C,SACxF,GAAG3iD,KAAK22B,OAAQ+Z,EAAK4uZ,SAAW5uZ,EAAKumV,OAASvmV,EAAK4uZ,SAAY,eAIpErrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6DAA4D48C,SACxEo8Y,EAAaruZ,EAAKsmV,YACjBi9C,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,oEAEfkua,EAAAA,GAAAA,KAAA,OACEzra,KA3Ec43b,EA2EQ1vZ,EAAKwjY,aA1EhCksB,EACEA,EAAUzxb,SAAS,MACtB,wDAAwDyxb,EAAUzob,MAAM,MAAM+4E,QAC9E0vW,EAHmB,qBA2Ebr1G,IAAKr6S,EAAKojY,YACV/ta,UAAU,+CACV81b,OAAQA,KAAM0D,OApFDxoE,EAoFiBrmV,EAAKsmV,UApFRgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAAjEA,KAoFiC,EAC9CvuU,QAASA,KAAMg3Y,OApFDzoE,EAoFkBrmV,EAAKsmV,UApFTgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAAjEA,KAoFkC,OAItDk9C,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,uBAAsB48C,SAAEjS,EAAKojY,eAC1CE,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,uBAAsB48C,SAAA,CAAC,YAAKs9Y,EAAYvvZ,EAAKumV,UACzDvmV,EAAK4uZ,SAAW,IACftrB,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,qCAAoC48C,SAAA,CAAC,YAC3Cs9Y,EAAYvvZ,EAAK4uZ,eA5BrB5uZ,EAAKsmV,WA3DUopE,KA2FvB,WAKK,ECzBV,GAvHqBO,KACnB,MAAM53X,EAAW2hS,KACX7kI,EAAWR,KACXwiB,GAAe/7K,EAAAA,EAAAA,QAAO,OACrBowX,EAAYC,IAAiBpwX,EAAAA,EAAAA,WAAS,IACtCgzX,EAAcC,IAAmBjzX,EAAAA,EAAAA,UAAS,CAAC,IAE5C,SAAE2lW,EAAQ,QAAElhS,GAAY26N,IAAatiW,GAAUA,EAAM6oa,YAE3DlmW,EAAAA,EAAAA,YAAU,KACRzC,EAASkpW,GAbI,wCAa2B,GACvC,CAAClpW,KAEJyC,EAAAA,EAAAA,YAAU,KACR,MAAMw0X,EAAeA,KACfn4M,EAAapjN,SACf03Z,EAAct0M,EAAapjN,QAAQ+zE,YAAcqvI,EAAapjN,QAAQi0E,YACxE,EAIF,OAFAsnV,IACAj8b,OAAOgD,iBAAiB,SAAUi5b,GAC3B,IAAMj8b,OAAOukD,oBAAoB,SAAU03Y,EAAa,GAC9D,CAACtuB,IAEJ,MAMMuuB,EAAehpE,GAAUA,EAAMk9C,oBAAe1oa,EAAW,CAAEy0b,sBAAuB,IAElFptB,EAAmBpB,EAAS/ha,QAAQ+gC,GAASA,EAAKsmV,YAExD,OACEg9C,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,8BAA6B48C,SAAA,EAE1CqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,qEAAoE48C,SAAA,EACjFqxX,EAAAA,GAAAA,MAAA,MAAIjua,UAAU,qDAAoD48C,SAAA,EAChEsxX,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,OAAM48C,SAAC,iBAAS,iCAElCqxX,EAAAA,GAAAA,MAAA,UAAQjua,UAAU,uDAAuD4sE,QAASA,IAAMkzJ,EAAS,oBAAoBljL,SAAA,CAAC,gBACxGsxX,EAAAA,GAAAA,KAACjtJ,GAAa,CAACjhR,UAAU,gBAKzCiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,WAAU48C,SAAA,CACtBu5Y,IACCloB,EAAAA,GAAAA,MAAAqoB,GAAAA,SAAA,CAAA15Y,SAAA,EACKsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACN8H,MAAMwjO,EAAAA,GAAAA,KAACntJ,GAAY,IACnBhuO,MAAM,SACN/yC,UAAU,+HACV4sE,QA9BK1rE,KAAA,IAAA4gY,EAAA,OAA0B,QAA1BA,EAAMhgJ,EAAapjN,eAAO,IAAAojW,OAAA,EAApBA,EAAsBy0D,SAAS,CAAEz8b,MAAO,IAAK08b,SAAU,UAAW,KAgC/EtoB,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACjtJ,GAAa,IACpBluO,MAAM,SACN/yC,UAAU,gIACV4sE,QAnCM6pX,KAAA,IAAAuB,EAAA,OAA0B,QAA1BA,EAAMl2M,EAAapjN,eAAO,IAAAs5Z,OAAA,EAApBA,EAAsBzB,SAAS,CAAEz8b,KAAM,IAAK08b,SAAU,UAAW,QAuCrFtoB,EAAAA,GAAAA,KAAA,OAAKl+X,IAAK8xM,EAAc9hP,UAAU,8DAA6D48C,SAC5F6tF,EACC,IAAInxI,MAAM,IAAIwM,KAAI,CAAC8jB,EAAGjhB,KACpBsla,EAAAA,GAAAA,MAAA,OAAiBjua,UAAU,kGAAiG48C,SAAA,EAC1HsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,sDACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,wCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yCAHP2I,KAOZoka,EACGtva,QACA6vB,MAAK,CAAC3a,EAAGC,IAAM,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,eACpD3la,KAAK6kC,IACJsjY,EAAAA,GAAAA,MAAA,OAEEjua,UAAU,6PACV4sE,QAASA,IAAMkzJ,EAAS,YAAYn1L,EAAKsmV,aAAar0U,SAAA,CAGrDjS,EAAK4uZ,SAAW,IACfrrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,uFAAsF48C,SAClG,GAAG3iD,KAAK22B,OAAQ+Z,EAAK4uZ,SAAW5uZ,EAAKumV,OAASvmV,EAAK4uZ,SAAY,eAIpErrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6DAA4D48C,SACxEo8Y,EAAaruZ,EAAKsmV,YACjBi9C,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,oEAEfkua,EAAAA,GAAAA,KAAA,OACEzra,IAAK,wDAA2CkoC,EAAKwjY,aAAav8Z,MAAM,MAAM+4E,QAC9Eq6P,IAAKr6S,EAAKojY,YACV/ta,UAAU,iGACV81b,OAAQA,KAAM0D,OAvEXxoE,EAuE2BrmV,EAAKsmV,UAvElBgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAAjEA,KAuE2C,EAC9CvuU,QAASA,KAAMg3Y,OAvEXzoE,EAuE4BrmV,EAAKsmV,UAvEnBgoE,GAAiB5ja,IAAI,IAAWA,EAAM,CAAC27V,IAAY,MAAjEA,KAuE4C,OAItDk9C,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,qCAAoC48C,SAAEjS,EAAKojY,eACxDE,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,iCAAgC48C,SAAA,CAAC,YAAKs9Y,EAAYvvZ,EAAKumV,UACnEvmV,EAAK4uZ,SAAW,IACftrB,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,qCAAoC48C,SAAA,CAAC,YAC3Cs9Y,EAAYvvZ,EAAK4uZ,eA5BrB5uZ,EAAKsmV,oBAoClB,ECvGK,SAAS4pE,KAStB,OARAj1X,EAAAA,EAAAA,kBAAgB,KAEd5nE,OAAOyrI,SAAS,CACd1vI,IAAK,EACLy8b,SAAU,UACV,GACD,KAGDvoB,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EACEqxX,EAAAA,GAAAA,MAACnyC,GAAM,CAAAl/U,SAAA,EACLsxX,EAAAA,GAAAA,KAAA,SAAAtxX,SAAO,+DAEPsxX,EAAAA,GAAAA,KAAA,QACExna,KAAK,cACLwQ,QAAQ,kIAEVg3Z,EAAAA,GAAAA,KAAA,QACExna,KAAK,WACLwQ,QAAQ,kIAEVg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,SAASwQ,QAAQ,+BAC5Bg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,SAASwQ,QAAQ,mBAC5Bg3Z,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,WAAWx3E,QAAQ,2BAClCg3Z,EAAAA,GAAAA,KAAA,QACEx/U,SAAS,iBACTx3E,QAAQ,kKAEXg3Z,EAAAA,GAAAA,KAAA,QACLx/U,SAAS,WACTx3E,QAAS,GAAGlZ,OAAO2H,SAASkwC,kCAGtBq4X,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,SAASx3E,QAAQ,mCAChCg3Z,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,UAAUx3E,QAAQ,aACjCg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,eAAewQ,QAAQ,yBAClCg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,gBAAgBwQ,QAAQ,2BACnCg3Z,EAAAA,GAAAA,KAAA,QACExna,KAAK,sBACLwQ,QAAQ,6IAEVg3Z,EAAAA,GAAAA,KAAA,QACExna,KAAK,gBACLwQ,QAAQ,yDAEVg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,WAAWwQ,QAAQ,8CAGhCg3Z,EAAAA,GAAAA,KAACkb,GAAM,KACPlb,EAAAA,GAAAA,KAAC6pB,GAAiB,KAKlB7pB,EAAAA,GAAAA,KAAC0rB,GAAU,KACb1rB,EAAAA,GAAAA,KAACosB,GAAW,KACZpsB,EAAAA,GAAAA,KAACqsB,GAAiB,KAClBrsB,EAAAA,GAAAA,KAACssB,GAAe,KAChBtsB,EAAAA,GAAAA,KAACusB,GAAe,KAChBvsB,EAAAA,GAAAA,KAACysB,GAAgB,KACjBzsB,EAAAA,GAAAA,KAACwsB,GAAY,KACbxsB,EAAAA,GAAAA,KAACgoB,GAAkB,KACnBhoB,EAAAA,GAAAA,KAAC0sB,GAAY,KACX1sB,EAAAA,GAAAA,KAACmpB,GAAU,KACXnpB,EAAAA,GAAAA,KAAC4sB,GAAK,KAGN5sB,EAAAA,GAAAA,KAAC/0E,GAAM,MAGb,CCzFA,MAAM4hG,GAAoBA,CAACpqI,EAAS11R,EAAa+/Z,EAAW55U,EAAO65U,KAAa,CAC9EhnU,WAAY08L,EACZpjL,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAYl+P,IACtD,CAAC,GAAGgga,UAAkB,CACpBvha,MAAOsha,KAGEpqH,GAAexvN,IAC1B,MAAM,aACJu0K,EACAgC,mBAAoBr+J,EAAQ,SAC5BkuK,EAAQ,SACRC,EAAQ,SACR5xQ,EAAQ,WACRkmQ,EAAU,WACVhmQ,EACAmlQ,eAAgBpB,EAAY,oBAC5BP,EAAmB,wBACnB2hK,EAAuB,UACvB5jK,EAAS,iBACT6N,EAAgB,uBAChBg2J,EAAsB,eACtBC,GACEh6U,EACJ,MAAO,CACL,CAACu0K,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACtEt9G,SAAU,WACV7E,QAAS,OACTs5R,WAAY,SACZv+P,QAASoha,EACTpmI,SAAU,aACVl7B,eACA,CAAC,IAAInE,SAAqB,CACxBz/J,UAAW,OAEb,CAAC,GAAGy/J,aAAyB,CAC3Bx3O,KAAM,EACN5Z,SAAU,GAEZ,CAAC,GAAGoxP,UAAsB,CACxBomC,gBAAiBv0B,EACjBzxQ,WAAY,GAEd,gBAAiB,CACf92B,QAAS,OACT42B,WACAE,cAEF,YAAa,CACX2D,MAAOyrQ,GAET,CAAC,IAAIxP,kBAA8B,CACjC5xR,SAAU,SACVK,QAAS,EACT4kD,WAAY,cAAcswE,KAAYigK,cAAgCjgK,KAAYigK,2BACpEjgK,KAAYigK,qBAAuCjgK,KAAYigK,6BAC7DjgK,KAAYigK,KAE9B,CAAC,IAAI5D,yBAAqC,CACxC8lC,UAAW,EACXxkM,aAAc,eACdh9F,WAAY,EACZE,cAAe,EACf/1B,QAAS,KAGb,CAAC,GAAGuxR,sBAAkC,CACpC4C,WAAY,aACZv+P,QAASmha,EACT,CAAC,GAAGxlK,UAAsB,CACxBomC,gBAAiBt0B,EACjB5xQ,SAAUqla,EACVnla,WAAY,GAEd,CAAC,GAAG4/P,aAAyB,CAC3B12R,QAAS,QACTg4H,aAAcuwK,EACd9tQ,MAAOyrQ,EACPtvQ,SAAUkmQ,GAEZ,CAAC,GAAGpG,iBAA6B,CAC/B12R,QAAS,QACTy6B,MAAO49P,IAGX,CAAC,GAAG3B,YAAwB,CAC1B1+J,aAAc,EACdsW,OAAQ,eACRusJ,aAAc,GAEjB,EAEUuhK,GAAej6U,IAC1B,MAAM,aACJu0K,EAAY,aACZiD,EAAY,mBACZwH,EAAkB,eAClBF,EAAc,aACdrH,EAAY,mBACZ0I,EAAkB,eAClBF,EAAc,WACdvI,EAAU,iBACVgI,EAAgB,aAChBH,EAAY,UACZ5H,EAAS,gBACTiJ,EAAe,YACfF,GACE1gL,EACJ,MAAO,CACL,CAACu0K,GAAe,CACd,YAAaolK,GAAkB76J,EAAgBE,EAAoBxH,EAAcx3K,EAAOu0K,GACxF,SAAUolK,GAAkBj5J,EAAaE,EAAiBjJ,EAAW33K,EAAOu0K,GAC5E,YAAaolK,GAAkB15J,EAAgBE,EAAoB1I,EAAcz3K,EAAOu0K,GACxF,UAAWl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGk5b,GAAkBp6J,EAAcG,EAAkBhI,EAAY13K,EAAOu0K,IAAgB,CAC9H,CAAC,GAAGA,uBAAmC,CACrCt7R,OAAQ,EACR2/B,QAAS,MAIhB,EAEUsha,GAAiBl6U,IAC5B,MAAM,aACJu0K,EAAY,QACZE,EAAO,kBACPyN,EAAiB,SACjBkE,EAAQ,aACR1B,EAAY,UACZJ,EAAS,eACTC,GACEvkL,EACJ,MAAO,CACL,CAACu0K,GAAe,CACd,WAAY,CACVmmC,kBAAmBt0B,GAErB,CAAC,GAAG7R,gBAA4B,CAC9BmmC,kBAAmBt0B,EACnBxtQ,QAAS,EACTj2B,SAAU,SACV8xB,SAAUiwQ,EACV/vQ,WAAYt6B,GAAKqqS,GACjB5hS,gBAAiB,cACjBqpI,OAAQ,OACR2gE,QAAS,OACTz7K,OAAQ,UACR,CAAC,GAAGojQ,WAAkB,CACpBn8P,MAAOgsQ,EACP18O,WAAY,SAASs6O,IACrB,UAAW,CACT5pQ,MAAOisQ,KAIb,eAAgB,CACdjsQ,MAAOgsQ,EACP18O,WAAY,SAASs6O,IACrB,UAAW,CACT5pQ,MAAOisQ,KAId,EAUH,GAAexP,GAAc,SAAS/0K,GAAS,CAACwvN,GAAaxvN,GAAQi6U,GAAaj6U,GAAQk6U,GAAel6U,MARpEA,IAE5B,CACL85U,wBAAyB95U,EAAMi7K,iBAC/B++J,eAAgB,GAAGh6U,EAAMkmL,kCACzB6zJ,uBAAwB,GAAG/5U,EAAM0lL,eAAe1lL,EAAM6lL,mCC3K1D,IAAI7C,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAeA,MAAMova,GAAgB,CACpB94S,QAASsqM,GACT9hN,KAAMoiN,GACN/pV,MAAO2pV,GACP51H,QAAS81H,IAELquG,GAAWlrZ,IACf,MAAM,KACJo6J,EAAI,UACJqnC,EAAS,KACTtyO,GACE6wC,EACEgvS,EAAWi8G,GAAc97b,IAAS,KACxC,OAAIirM,EACKwkG,GAAexkG,EAAmB4hB,EAAAA,cAAoB,OAAQ,CACnEtsN,UAAW,GAAG+xO,UACbrnC,IAAO,KAAM,CACd1qM,UAAWisN,KAAW,GAAG8lB,SAAkBrnC,EAAKp6J,MAAMtwC,eAGtCssN,EAAAA,cAAoBgzH,EAAU,CAChDt/U,UAAW,GAAG+xO,UACd,EAEE0pN,GAAgBnrZ,IACpB,MAAM,WACJorZ,EAAU,UACV3pN,EAAS,UACTu+G,EAAS,YACTqrG,EAAW,UACXlqG,GACEnhT,EACEwkT,GAAgC,IAAdxE,QAAoC5qV,IAAd4qV,EAAuChkI,EAAAA,cAAoBkjI,GAAe,MAAQc,EAChI,OAAOorG,EAA2BpvO,EAAAA,cAAoB,SAAU7tN,OAAOoD,OAAO,CAC5EpC,KAAM,SACNmtE,QAAS+uX,EACT37b,UAAW,GAAG+xO,eACduK,SAAU,GACTm1G,GAAYqD,GAAoB,IAAI,EA4JzC,SA1J2BxoI,EAAAA,YAAiB,CAACh8K,EAAON,KAClD,MAAM,YACF3vB,EACA0xN,UAAW2vC,EAAkB,QAC7Bz5M,EAAO,OACP2zX,EAAM,UACN57b,EAAS,cACT0wQ,EAAa,MACb3yQ,EAAK,aACL2nP,EAAY,aACZC,EAAY,QACZ/4K,EAAO,WACPgmR,EAAU,SACVipG,EAAQ,SACRxrG,EAAQ,UACRyrG,EAAS,UACTxrG,EAAS,OACT1tR,EAAM,GACN1mD,GACEo0B,EACJ68P,EAAa/I,GAAO9zP,EAAO,CAAC,cAAe,YAAa,UAAW,SAAU,YAAa,gBAAiB,QAAS,eAAgB,eAAgB,UAAW,aAAc,WAAY,WAAY,YAAa,YAAa,SAAU,QACpOyrZ,EAAQC,GAAa1vO,EAAAA,UAAe,GAK3C,MAAM2vO,EAAc3vO,EAAAA,OAAa,MACjCA,EAAAA,oBAA0Bt8K,GAAK,KAAM,CACnCs4L,cAAe2zN,EAAYv9Z,YAE7B,MAAM,aACJ6iP,EAAY,UACZrrJ,EACAm6N,SAAU6rG,EACV5rG,UAAW6rG,EACXn8b,UAAW80O,EACX/2O,MAAO83T,GACL/zC,GAAmB,SACjB/vC,EAAYwvC,EAAa,QAASG,IACjC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3C4pN,EAAc11a,IAClB,IAAI8O,EACJina,GAAU,GACe,QAAxBjna,EAAKub,EAAMigT,eAA4B,IAAPx7T,GAAyBA,EAAGv8B,KAAK83C,EAAOrqB,EAAE,EAEvExmB,EAAO6sN,EAAAA,SAAc,SACN5mN,IAAf4qC,EAAM7wC,KACD6wC,EAAM7wC,KAGRm8b,EAAS,UAAY,QAC3B,CAACtrZ,EAAM7wC,KAAMm8b,IAEVF,EAAapvO,EAAAA,SAAc,MACP,kBAAb+jI,IAAyBA,EAASC,eACzCwrG,IAGoB,mBAAbzrG,EACFA,GAGS,IAAdC,GAAqC,OAAdA,QAAoC5qV,IAAd4qV,KAGxC4rG,KACR,CAACJ,EAAWxrG,EAAWD,EAAU6rG,IAE9BE,KAAaR,QAAuBl2b,IAAbm2b,IAAgCA,EACvDZ,EAAWhvO,KAAW8lB,EAAW,GAAGA,KAAatyO,IAAQ,CAC7D,CAAC,GAAGsyO,wBAAiC1xN,EACrC,CAAC,GAAG0xN,cAAuBqqN,EAC3B,CAAC,GAAGrqN,cAAuB6pN,EAC3B,CAAC,GAAG7pN,SAAgC,QAAd77G,GACrB4+G,EAAkB90O,EAAW0wQ,EAAeg9B,EAAW9nB,GACpDrzC,EAAYq9G,GAAUziD,EAAY,CACtC4iD,MAAM,EACN/6U,MAAM,IAEF8/U,EAAkBxoI,EAAAA,SAAc,IACZ,kBAAb+jI,GAAyBA,EAASC,UACpCD,EAASC,UAEdwrG,SAGcp2b,IAAd4qV,EACKA,EAEsB,kBAApB4rG,GAAgCA,EAAgB5rG,UAClD4rG,EAAgB5rG,UAElB6rG,IACN,CAAC7rG,EAAWD,EAAUyrG,EAAWK,IAC9BE,EAAkB/vO,EAAAA,SAAc,KACpC,MAAM87G,EAAsB,OAAbioB,QAAkC,IAAbA,EAAsBA,EAAW6rG,EACrE,GAAsB,kBAAX9zH,EAAqB,CAC9B,MACIkoB,UAAW1mU,GACTw+S,EAEN,OADchkC,GAAOgkC,EAAQ,CAAC,aAEhC,CACA,MAAO,CAAC,CAAC,GACR,CAACioB,EAAU6rG,IACd,OAAOzuJ,EAAwBnhF,EAAAA,cAAoB6pC,GAAW,CAC5D7D,SAAUypM,EACVvlM,WAAY,GAAGzkB,WACf4gB,cAAc,EACdF,aAAa,EACbY,aAAchzP,IAAQ,CACpBo7T,UAAWp7T,EAAKwyG,eAElB8gJ,WAAYi/F,IACX,CAAClvM,EAAMi5G,KACR,IACE38P,UAAWs8P,EACXv+P,MAAOw+P,GACL74G,EACJ,OAAoB4oE,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CAC3Dqa,GAAIA,EACJ8zB,IAAK84L,GAAWmzN,EAAat/L,GAC7B,aAAco/L,EACd/7b,UAAWisN,KAAWgvO,EAAU3+L,GAChCv+P,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg0T,GAAe93T,GAAQw+P,GAC5E7W,aAAcA,EACdC,aAAcA,EACd/4K,QAASA,EACTi6K,KAAM,SACLtU,GAAY6pN,EAA2B9vO,EAAAA,cAAoBkvO,GAAU,CACtEn7a,YAAaA,EACbqqL,KAAMp6J,EAAMo6J,KACZqnC,UAAWA,EACXtyO,KAAMA,IACF,KAAmB6sN,EAAAA,cAAoB,MAAO,CAClDtsN,UAAW,GAAG+xO,aACb9pK,EAAuBqkJ,EAAAA,cAAoB,MAAO,CACnDtsN,UAAW,GAAG+xO,aACb9pK,GAAW,KAAM5nD,EAA2BisM,EAAAA,cAAoB,MAAO,CACxEtsN,UAAW,GAAG+xO,iBACb1xN,GAAe,MAAOuiD,EAAsB0pJ,EAAAA,cAAoB,MAAO,CACxEtsN,UAAW,GAAG+xO,YACbnvK,GAAU,KAAmB0pJ,EAAAA,cAAoBmvO,GAAe,CACjEC,WAAYA,EACZ3pN,UAAWA,EACXu+G,UAAWwE,EACX6mG,YAAaA,EACblqG,UAAW4qG,IACV,IACF,ICtJL,SAvDiC,SAAU/sN,GACzC,SAAS7M,IACP,IAAIvvM,ECPY/G,EAAGpB,EAAG9E,EDgBtB,OARAwpN,GAAgBh3O,KAAMgqO,GCRNt2M,EDSG1zB,KCTGwtB,EDSkB/d,UCRnC6iB,EAAI,GADUA,EDSM03M,IAAzBvvM,ECR4B,GAA0B/G,EAAG,KAA6BiuB,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI,GAAekG,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,KDS1JnjB,MAAQ,CACZQ,WAAOoC,EACPulI,KAAM,CACJpiE,eAAgB,KAGb31C,CACT,CAEA,OADAq8M,GAAU9M,EAAe6M,GAClBI,GAAajN,EAAe,CAAC,CAClCllO,IAAK,oBACLlG,MAAO,SAA2BiM,EAAO2nI,GACvCxyI,KAAKk2G,SAAS,CACZrrG,QACA2nI,QAEJ,GACC,CACD1tI,IAAK,SACLlG,MAAO,WACL,MAAM,QACJ4wE,EAAO,YACP5nD,EAAW,GACXnE,EAAE,SACF0gC,GACEnkD,KAAK63C,OACH,MACJhtC,EAAK,KACL2nI,GACExyI,KAAKqK,MACH+lE,GAA2B,OAAToiE,QAA0B,IAATA,OAAkB,EAASA,EAAKpiE,iBAAmB,KACtFyzX,EAAkC,qBAAZr0X,GAA2B3kE,GAAS,IAAImD,WAAawhE,EAC3Es0X,EAA0C,qBAAhBl8a,EAA8BwoD,EAAiBxoD,EAC/E,OAAI/c,EACkBgpN,EAAAA,cAAoBkwO,GAAO,CAC7Ctgb,GAAIA,EACJzc,KAAM,QACNwoE,QAASq0X,EACTj8a,YAA0BisM,EAAAA,cAAoB,MAAO,CACnDvuN,MAAO,CACL83B,SAAU,QACVykG,UAAW,SAEZiiU,KAGA3/Y,CACT,IAEJ,CAtDiC,CAsD/B0vK,EAAAA,WE1DIkwO,GAAQC,GACdD,GAAM/5N,cAAgBA,GACtB,YCJA,SADiB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,wLAA4L,KAAQ,KAAM,MAAS,YCM3W,IAAIi6N,GAAa,SAAoBpsZ,EAAON,GAC1C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMiyP,KAEV,EAOA,SAJ2BrwO,EAAAA,WAAiBowO,ICfrC,SAASE,KACd,MAAyB,oBAAXC,MAChB,CCDO,SAASj0V,GAAQvxG,GACtB,OAAQA,GAAmB,IAAVA,IAAgBsI,OAAOic,MAAMvkB,KAAWqI,OAAOrI,GAAOmkB,MACzE,CAKO,SAASshb,GAAWC,GACzB,IAAItxZ,EAAMsxZ,EAAOvhb,OACbwhb,EAAWvxZ,EAAIs/D,WAAW,KAC1BiyV,IACFvxZ,EAAMA,EAAIhuC,MAAM,KAElBguC,EAAMA,EAELt/B,QAAQ,iBAAkB,MAE1BA,QAAQ,QAAS,IAEjBA,QAAQ,MAAO,KACR4+F,WAAW,OACjBt/D,EAAM,IAAIxuC,OAAOwuC,IAEnB,IAAImuO,EAAUnuO,GAAO,IACjBwxZ,EAAcrjL,EAAQhoQ,MAAM,KAC5Bsrb,EAAaD,EAAY,IAAM,IAC/BE,EAAaF,EAAY,IAAM,IAChB,MAAfC,GAAqC,MAAfC,IACxBH,GAAW,GAEb,IAAII,EAAcJ,EAAW,IAAM,GACnC,MAAO,CACLA,SAAUA,EACVI,YAAaA,EACbxjL,QAASA,EACTsjL,WAAYA,EACZC,WAAYA,EACZE,QAAS,GAAGpgc,OAAOmgc,GAAangc,OAAO28Q,GAE3C,CACO,SAAS0jL,GAAI/qZ,GAClB,IAAI9G,EAAM/rC,OAAO6yC,GACjB,OAAQ5yC,OAAOic,MAAMjc,OAAO8rC,KAASA,EAAI7iC,SAAS,IACpD,CAMO,SAAS20b,GAAmBhrZ,GACjC,IAAIwqZ,EAASr9b,OAAO6yC,GACpB,GAAI+qZ,GAAI/qZ,GAAS,CACf,IAAI7G,EAAY/rC,OAAOo9b,EAAOt/b,MAAMs/b,EAAO5/b,QAAQ,MAAQ,IACvDqgc,EAAeT,EAAO1rb,MAAM,WAIhC,OAHqB,OAAjBmsb,QAA0C,IAAjBA,GAA2BA,EAAa,KACnE9xZ,GAAa8xZ,EAAa,GAAG5jc,QAExB8xC,CACT,CACA,OAAOqxZ,EAAOn0b,SAAS,MAAQ60b,GAAeV,GAAUA,EAAOnjc,OAASmjc,EAAO5/b,QAAQ,KAAO,EAAI,CACpG,CAKO,SAASugc,GAAQnrZ,GACtB,IAAIwqZ,EAASr9b,OAAO6yC,GACpB,GAAI+qZ,GAAI/qZ,GAAS,CACf,GAAIA,EAAS5yC,OAAOid,iBAClB,OAAOld,OAAOk9b,KAAkBC,OAAOtqZ,GAAQ9rC,WAAa9G,OAAOid,kBAErE,GAAI21B,EAAS5yC,OAAOg+b,iBAClB,OAAOj+b,OAAOk9b,KAAkBC,OAAOtqZ,GAAQ9rC,WAAa9G,OAAOg+b,kBAErEZ,EAASxqZ,EAAOi+H,QAAQ+sR,GAAmBR,GAC7C,CACA,OAAOD,GAAWC,GAAQM,OAC5B,CACO,SAASI,GAAenqN,GAC7B,MAAmB,kBAARA,GACD3zO,OAAOic,MAAM03N,KAIlBA,IAKH,wBAAwB79N,KAAK69N,IAE7B,kBAAkB79N,KAAK69N,IAEvB,kBAAkB79N,KAAK69N,GAE3B,CC5FA,IAAIsqN,GAA6B,WAG/B,SAASA,EAAcvmc,GASrB,GARAo4O,GAAgBh3O,KAAMmlc,IACtBttV,EAAAA,GAAAA,GAAgB73G,KAAM,SAAU,KAChC63G,EAAAA,GAAAA,GAAgB73G,KAAM,gBAAY,IAClC63G,EAAAA,GAAAA,GAAgB73G,KAAM,eAAW,IACjC63G,EAAAA,GAAAA,GAAgB73G,KAAM,eAAW,IACjC63G,EAAAA,GAAAA,GAAgB73G,KAAM,kBAAc,IACpC63G,EAAAA,GAAAA,GAAgB73G,KAAM,aAAS,IAC/B63G,EAAAA,GAAAA,GAAgB73G,KAAM,WAAO,GACzBmwG,GAAQvxG,GACVoB,KAAK2sJ,OAAQ,OAMf,GAHA3sJ,KAAKo9C,OAASn2C,OAAOrI,GAGP,MAAVA,GAAiBsI,OAAOic,MAAMvkB,GAChCoB,KAAKolc,KAAM,MADb,CAIA,IAAIhkN,EAAcxiP,EAOlB,GAJIimc,GAAIzjN,KACNA,EAAcl6O,OAAOk6O,IAGnB4jN,GADJ5jN,EAAqC,kBAAhBA,EAA2BA,EAAc6jN,GAAQ7jN,IACrC,CAC/B,IAAIikN,EAAUhB,GAAWjjN,GACzBphP,KAAKukc,SAAWc,EAAQd,SACxB,IAAIr1T,EAAUm2T,EAAQlkL,QAAQhoQ,MAAM,KACpCnZ,KAAKkjB,QAAUkhb,OAAOl1T,EAAQ,IAC9B,IAAIw1T,EAAax1T,EAAQ,IAAM,IAC/BlvI,KAAKslc,QAAUlB,OAAOM,GACtB1kc,KAAKulc,WAAab,EAAWvjc,MAC/B,MACEnB,KAAKolc,KAAM,CAjBb,CAmBF,CAiIA,OAhIAnuN,GAAakuN,EAAe,CAAC,CAC3Brgc,IAAK,UACLlG,MAAO,WACL,OAAOoB,KAAKukc,SAAW,IAAM,EAC/B,GACC,CACDz/b,IAAK,gBACLlG,MAAO,WACL,OAAOoB,KAAKkjB,QAAQlV,UACtB,GAKC,CACDlJ,IAAK,gBACLlG,MAAO,WACL,OAAOoB,KAAKslc,QAAQt3b,WAAW4jG,SAAS5xG,KAAKulc,WAAY,IAC3D,GAMC,CACDzgc,IAAK,eACLlG,MAAO,SAAsB4mc,GAC3B,IAAIxyZ,EAAM,GAAGxuC,OAAOxE,KAAKywP,WAAWjsP,OAAOxE,KAAKylc,iBAAiBjhc,OAAOxE,KAAK0lc,gBAAgB/zV,OAAO6zV,EAAe,MACnH,OAAOpB,OAAOpxZ,EAChB,GACC,CACDluC,IAAK,SACLlG,MAAO,WACL,IAAIkJ,EAAQ,IAAIq9b,EAAcnlc,KAAKgO,YAEnC,OADAlG,EAAMy8b,UAAYz8b,EAAMy8b,SACjBz8b,CACT,GACC,CACDhD,IAAK,MACLlG,MAAO,SAAak8D,EAAQ6qY,EAAYC,GACtC,IAAIC,EAAmBrkc,KAAKwhB,IAAIhjB,KAAK0lc,gBAAgBvkc,OAAQ25D,EAAO4qY,gBAAgBvkc,QAGhFsxT,EAAWkzI,EAFQ3lc,KAAK8lc,aAAaD,GACd/qY,EAAOgrY,aAAaD,IACmB73b,WAC9D+3b,EAAoBH,EAAcC,GAGlCG,EAAc3B,GAAW5xI,GAC3BkyI,EAAcqB,EAAYrB,YAC1BxjL,EAAU6kL,EAAY7kL,QACpB8kL,EAAkB,GAAGzhc,OAAOmgc,GAAangc,OAAO28Q,EAAQvvK,SAASm0V,EAAoB,EAAG,MAC5F,OAAO,IAAIZ,EAAc,GAAG3gc,OAAOyhc,EAAgBjhc,MAAM,GAAI+gc,GAAoB,KAAKvhc,OAAOyhc,EAAgBjhc,OAAO+gc,IACtH,GACC,CACDjhc,IAAK,MACLlG,MAAO,SAAaA,GAClB,GAAIoB,KAAKkmc,eACP,OAAO,IAAIf,EAAcvmc,GAE3B,IAAIk8D,EAAS,IAAIqqY,EAAcvmc,GAC/B,OAAIk8D,EAAOorY,eACFlmc,KAEFA,KAAKmmc,IAAIrrY,GAAQ,SAAUsrY,EAAMC,GACtC,OAAOD,EAAOC,CAChB,IAAG,SAAU5hb,GACX,OAAOA,CACT,GACF,GACC,CACD3f,IAAK,QACLlG,MAAO,SAAeA,GACpB,IAAImM,EAAS,IAAIo6b,EAAcvmc,GAC/B,OAAIoB,KAAKkmc,gBAAkBn7b,EAAOm7b,eACzB,IAAIf,EAAc1+a,KAEpBzmB,KAAKmmc,IAAIp7b,GAAQ,SAAUq7b,EAAMC,GACtC,OAAOD,EAAOC,CAChB,IAAG,SAAU5hb,GACX,OAAa,EAANA,CACT,GACF,GACC,CACD3f,IAAK,UACLlG,MAAO,WACL,OAAOoB,KAAK2sJ,KACd,GACC,CACD7nJ,IAAK,QACLlG,MAAO,WACL,OAAOoB,KAAKolc,GACd,GACC,CACDtgc,IAAK,eACLlG,MAAO,WACL,OAAOoB,KAAKmwG,WAAanwG,KAAKmjB,OAChC,GACC,CACDre,IAAK,SACLlG,MAAO,SAAgBmM,GACrB,OAAO/K,KAAKgO,cAA2B,OAAXjD,QAA8B,IAAXA,OAAoB,EAASA,EAAOiD,WACrF,GACC,CACDlJ,IAAK,aACLlG,MAAO,SAAoBmM,GACzB,OAAO/K,KAAKw1B,IAAIzqB,EAAO07F,SAASz4F,YAAYmY,YAAc,CAC5D,GACC,CACDrhB,IAAK,WACLlG,MAAO,WACL,OAAIoB,KAAKmjB,QACAsD,IAEFvf,OAAOlH,KAAKgO,WACrB,GACC,CACDlJ,IAAK,WACLlG,MAAO,WAEL,QADW6Q,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,KAAmBA,UAAU,GAItEzP,KAAKkmc,eACA,GAEF7B,GAAW,GAAG7/b,OAAOxE,KAAKywP,WAAWjsP,OAAOxE,KAAKylc,gBAAiB,KAAKjhc,OAAOxE,KAAK0lc,kBAAkBd,QALnG5kc,KAAKo9C,MAMhB,KAEK+nZ,CACT,CA3KiC,GCI7BmB,GAA6B,WAC/B,SAASA,EAAc1nc,GACrBo4O,GAAgBh3O,KAAMsmc,IACtBzuV,EAAAA,GAAAA,GAAgB73G,KAAM,SAAU,KAChC63G,EAAAA,GAAAA,GAAgB73G,KAAM,cAAU,IAChC63G,EAAAA,GAAAA,GAAgB73G,KAAM,aAAS,GAC3BmwG,GAAQvxG,GACVoB,KAAK2sJ,OAAQ,GAGf3sJ,KAAKo9C,OAASn2C,OAAOrI,GACrBoB,KAAK85C,OAAS5yC,OAAOtI,GACvB,CA0FA,OAzFAq4O,GAAaqvN,EAAe,CAAC,CAC3Bxhc,IAAK,SACLlG,MAAO,WACL,OAAO,IAAI0nc,GAAetmc,KAAKmmB,WACjC,GACC,CACDrhB,IAAK,MACLlG,MAAO,SAAaA,GAClB,GAAIoB,KAAKkmc,eACP,OAAO,IAAII,EAAc1nc,GAE3B,IAAImM,EAAS7D,OAAOtI,GACpB,GAAIsI,OAAOic,MAAMpY,GACf,OAAO/K,KAET,IAAI85C,EAAS95C,KAAK85C,OAAS/uC,EAG3B,GAAI+uC,EAAS5yC,OAAOid,iBAClB,OAAO,IAAImib,EAAcp/b,OAAOid,kBAElC,GAAI21B,EAAS5yC,OAAOg+b,iBAClB,OAAO,IAAIoB,EAAcp/b,OAAOg+b,kBAElC,IAAIqB,EAAe/kc,KAAKwhB,IAAI8hb,GAAmB9kc,KAAK85C,QAASgrZ,GAAmB/5b,IAChF,OAAO,IAAIu7b,EAAcxsZ,EAAOi+H,QAAQwuR,GAC1C,GACC,CACDzhc,IAAK,QACLlG,MAAO,SAAeA,GACpB,IAAImM,EAAS7D,OAAOtI,GACpB,GAAIoB,KAAKkmc,gBAAkBh/b,OAAOic,MAAMpY,GACtC,OAAO,IAAIu7b,EAAc7/a,KAE3B,IAAIqzB,EAAS95C,KAAK85C,OAAS/uC,EAG3B,GAAI+uC,EAAS5yC,OAAOid,iBAClB,OAAO,IAAImib,EAAcp/b,OAAOid,kBAElC,GAAI21B,EAAS5yC,OAAOg+b,iBAClB,OAAO,IAAIoB,EAAcp/b,OAAOg+b,kBAElC,IAAIqB,EAAe/kc,KAAKwhB,IAAI8hb,GAAmB9kc,KAAK85C,QAASgrZ,GAAmB/5b,IAChF,OAAO,IAAIu7b,EAAcxsZ,EAAOi+H,QAAQwuR,GAC1C,GACC,CACDzhc,IAAK,UACLlG,MAAO,WACL,OAAOoB,KAAK2sJ,KACd,GACC,CACD7nJ,IAAK,QACLlG,MAAO,WACL,OAAOsI,OAAOic,MAAMnjB,KAAK85C,OAC3B,GACC,CACDh1C,IAAK,eACLlG,MAAO,WACL,OAAOoB,KAAKmwG,WAAanwG,KAAKmjB,OAChC,GACC,CACDre,IAAK,SACLlG,MAAO,SAAgBmM,GACrB,OAAO/K,KAAKmmB,cAA2B,OAAXpb,QAA8B,IAAXA,OAAoB,EAASA,EAAOob,WACrF,GACC,CACDrhB,IAAK,aACLlG,MAAO,SAAoBmM,GACzB,OAAO/K,KAAKw1B,IAAIzqB,EAAO07F,SAASz4F,YAAYmY,YAAc,CAC5D,GACC,CACDrhB,IAAK,WACLlG,MAAO,WACL,OAAOoB,KAAK85C,MACd,GACC,CACDh1C,IAAK,WACLlG,MAAO,WAEL,QADW6Q,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,KAAmBA,UAAU,GAItEzP,KAAKkmc,eACA,GAEFjB,GAAQjlc,KAAK85C,QALX95C,KAAKo9C,MAMhB,KAEKkpZ,CACT,CAvGiC,GCClB,SAASE,GAAe5nc,GAGrC,OAAIulc,KACK,IAAIgB,GAAcvmc,GAEpB,IAAI0nc,GAAc1nc,EAC3B,CAMO,SAASm5K,GAAQusR,EAAQmC,EAAcxzZ,GAC5C,IAAIyzZ,EAAUj3b,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAC7E,GAAe,KAAX60b,EACF,MAAO,GAET,IAAI0B,EAAc3B,GAAWC,GAC3BK,EAAcqB,EAAYrB,YAC1BF,EAAauB,EAAYvB,WACzBC,EAAasB,EAAYtB,WACvBiC,EAAsB,GAAGnic,OAAOiic,GAAcjic,OAAOkgc,GACrDkC,EAAuB,GAAGpic,OAAOmgc,GAAangc,OAAOigc,GACzD,GAAIxxZ,GAAa,EAAG,CAElB,IAAI4zZ,EAAc3/b,OAAOw9b,EAAWzxZ,IACpC,OAAI4zZ,GAAe,IAAMH,EAEhB3uR,GADeyuR,GAAelC,GAAQ9ua,IAAI,GAAGhxB,OAAOmgc,EAAa,MAAMngc,OAAO,IAAI8xD,OAAOrjB,IAAYzuC,OAAO,GAAKqic,IACzF74b,WAAYy4b,EAAcxzZ,EAAWyzZ,GAEpD,IAAdzzZ,EACK2zZ,EAEF,GAAGpic,OAAOoic,GAAsBpic,OAAOiic,GAAcjic,OAAOkgc,EAAW/yV,OAAO1+D,EAAW,KAAKjuC,MAAM,EAAGiuC,GAChH,CACA,MAA4B,OAAxB0zZ,EACKC,EAEF,GAAGpic,OAAOoic,GAAsBpic,OAAOmic,EAChD,CC7CA,YCeA,SAVgB,WACd,IACEloN,EAAa7C,IADCruK,EAAAA,EAAAA,WAAS,GACgB,GACvC47L,EAAS1qB,EAAW,GACpB2qB,EAAY3qB,EAAW,GAIzB,OAHAtxK,IAAgB,WACdi8L,EAAUC,KACZ,GAAG,IACIF,CACT,ECDe,SAAS29L,GAAY77S,GAClC,IAAIquF,EAAYruF,EAAKquF,UACnBytN,EAAS97S,EAAK87S,OACdC,EAAW/7S,EAAK+7S,SAChBC,EAAah8S,EAAKg8S,WAClBC,EAAej8S,EAAKi8S,aACpBC,EAASl8S,EAAKk8S,OAEZC,EAAiBvzO,EAAAA,SACjBwzO,EAAWxzO,EAAAA,OAAa,IACxByzO,EAAYzzO,EAAAA,SAChByzO,EAAUrha,QAAUkha,EACpB,IAAII,EAAa,WACfxnY,aAAaqnY,EAAenha,QAC9B,EAGIuha,EAAkB,SAAyBh6a,EAAGi6a,GAChDj6a,EAAEukC,iBACFw1Y,IACAD,EAAUrha,QAAQwha,GASlBL,EAAenha,QAAU/Y,YANzB,SAASw6a,IACPJ,EAAUrha,QAAQwha,GAClBL,EAAenha,QAAU/Y,WAAWw6a,EA/BtB,IAgChB,GA3Ba,IA+Bf,EAYA,GAXA7zO,EAAAA,WAAgB,WACd,OAAO,WACL0zO,IACAF,EAASpha,QAAQnlC,SAAQ,SAAU2iB,GACjC,OAAOk3N,GAAIv0I,OAAO3iF,EACpB,GACF,CACF,GAAG,IAGYkkb,KAEb,OAAO,KAET,IAAIC,EAAmB,GAAGpjc,OAAO80O,EAAW,YACxCuuN,EAAcr0O,KAAWo0O,EAAkB,GAAGpjc,OAAOojc,EAAkB,QAAQ/vV,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAOojc,EAAkB,gBAAiBX,IAChJa,EAAgBt0O,KAAWo0O,EAAkB,GAAGpjc,OAAOojc,EAAkB,UAAU/vV,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAOojc,EAAkB,kBAAmBV,IAOtJa,EAAiB,WACnB,OAAOV,EAASpha,QAAQpkC,KAAK84O,GAAI4sN,GACnC,EACIS,EAAqB,CACvBtqD,aAAc,KACdtvJ,KAAM,SACN+pG,UAAW4vG,EACX76M,aAAc66M,GAEhB,OAAoBl0O,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAW,GAAG/C,OAAOojc,EAAkB,UACzB/zO,EAAAA,cAAoB,OAAQoL,GAAS,CAAC,EAAG+oO,EAAoB,CAC3E9vG,YAAa,SAAqB1qU,GAChCg6a,EAAgBh6a,GAAG,EACrB,EACA,aAAc,iBACd,gBAAiBy5a,EACjB1/b,UAAWsgc,IACTd,GAAuBlzO,EAAAA,cAAoB,OAAQ,CACrD6pL,aAAc,KACdn2Y,UAAW,GAAG/C,OAAO80O,EAAW,wBAChBzlB,EAAAA,cAAoB,OAAQoL,GAAS,CAAC,EAAG+oO,EAAoB,CAC7E9vG,YAAa,SAAqB1qU,GAChCg6a,EAAgBh6a,GAAG,EACrB,EACA,aAAc,iBACd,gBAAiB05a,EACjB3/b,UAAWugc,IACTd,GAAyBnzO,EAAAA,cAAoB,OAAQ,CACvD6pL,aAAc,KACdn2Y,UAAW,GAAG/C,OAAO80O,EAAW,0BAEpC,CCtGO,SAAS2uN,GAAgB7nX,GAC9B,IAAI8nX,EAA0B,kBAAT9nX,EAAoB6kX,GAAQ7kX,GAAQikX,GAAWjkX,GAAMwkX,QAE1E,OADesD,EAAQ/3b,SAAS,KAIzBk0b,GAAW6D,EAAQx0b,QAAQ,cAAe,UAAUkxb,QAFlDxkX,EAAO,GAGlB,CCHA,IAAI4tJ,GAAY,CAAC,YAAa,YAAa,QAAS,MAAO,MAAO,OAAQ,eAAgB,QAAS,WAAY,WAAY,YAAa,cAAe,WAAY,gBAAiB,WAAY,aAAc,aAAc,SAAU,YAAa,YAAa,mBAAoB,WAAY,UAAW,eAAgB,SAAU,eAAgB,UACnViO,GAAa,CAAC,WAAY,QAAS,YAAa,QAAS,SAAU,SAAU,cAAe,aAAc,YAAa,cAwBrHksN,GAAkB,SAAyBC,EAAYC,GACzD,OAAID,GAAcC,EAAal4V,UACtBk4V,EAAar6b,WAEfq6b,EAAalib,UACtB,EACImib,GAAuB,SAA8B1pc,GACvD,IAAI0mc,EAAUkB,GAAe5nc,GAC7B,OAAO0mc,EAAQY,eAAiB,KAAOZ,CACzC,EACIiD,GAAmC10O,EAAAA,YAAiB,SAAUh8K,EAAON,GACvE,IAAI+hM,EAAYzhM,EAAMyhM,UACpB/xO,EAAYswC,EAAMtwC,UAClBjC,EAAQuyC,EAAMvyC,MACd2d,EAAM40B,EAAM50B,IACZD,EAAM60B,EAAM70B,IACZwlb,EAAc3wZ,EAAMuoC,KACpBA,OAAuB,IAAhBooX,EAAyB,EAAIA,EACpCjqa,EAAesZ,EAAMtZ,aACrB3/B,EAAQi5C,EAAMj5C,MACdolD,EAAWnM,EAAMmM,SACjB8jV,EAAWjwV,EAAMiwV,SACjB2gE,EAAY5wZ,EAAM4wZ,UAClBC,EAAc7wZ,EAAM6wZ,YACpB7uG,EAAWhiT,EAAMgiT,SACjB8uG,EAAuB9wZ,EAAM+wZ,cAC7BA,OAAyC,IAAzBD,GAA0CA,EAC1DE,EAAkBhxZ,EAAMixZ,SACxBA,OAA+B,IAApBD,GAAoCA,EAE/CT,GADavwZ,EAAM27K,WACN37K,EAAMuwZ,YACnB5lU,EAAS3qF,EAAM2qF,OACfqnQ,EAAYhyV,EAAMgyV,UAClB52V,EAAY4E,EAAM5E,UAClB81Z,EAAmBlxZ,EAAMkxZ,iBACzB/nN,EAAWnpM,EAAMmpM,SACjBmtJ,EAAUt2V,EAAMs2V,QAChBlE,EAAepyV,EAAMoyV,aACrBk9D,EAAStvZ,EAAMsvZ,OACf6B,EAAsBnxZ,EAAMoxZ,aAC5BA,OAAuC,IAAxBD,GAAwCA,EACvDhnD,EAASnqW,EAAMmqW,OACfknD,EAAanvN,GAAyBliM,EAAOm2L,IAC3CuiK,EAAiB,GAAG/rY,OAAO80O,EAAW,UACtCqxJ,EAAW92K,EAAAA,OAAa,MAE1B8nB,EAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnDtgM,EAAQooN,EAAiB,GACzBwtN,EAAWxtN,EAAiB,GAC1BytN,EAAgBv1O,EAAAA,QAAa,GAC7B42K,EAAiB52K,EAAAA,QAAa,GAC9Bw1O,EAAcx1O,EAAAA,QAAa,GAO7Bg4B,EAAmBjQ,GAHE/nB,EAAAA,UAAe,WAClC,OAAO2yO,GAAyB,OAAV5nc,QAA4B,IAAVA,EAAmBA,EAAQ2/B,EACrE,IACoD,GACpD8pa,EAAex8M,EAAiB,GAChCy9M,EAAkBz9M,EAAiB,GAmBrC,IAAI09M,EAAe11O,EAAAA,aAAkB,SAAUywO,EAAQkF,GACrD,IAAIA,EAGJ,OAAIv2Z,GAAa,EACRA,EAEFzxC,KAAKwhB,IAAI8hb,GAAmBR,GAASQ,GAAmB1kX,GACjE,GAAG,CAACntC,EAAWmtC,IAGXqpX,EAAe51O,EAAAA,aAAkB,SAAUgnB,GAC7C,IAAIypN,EAASr9b,OAAO4zO,GACpB,GAAIr4G,EACF,OAAOA,EAAO8hU,GAEhB,IAAIoF,EAAYpF,EAMhB,OALIyE,IACFW,EAAYA,EAAUh2b,QAAQq1b,EAAkB,MAI3CW,EAAUh2b,QAAQ,YAAa,GACxC,GAAG,CAAC8uH,EAAQumU,IAGRY,EAAgB91O,EAAAA,OAAa,IAC7B+1O,EAAkB/1O,EAAAA,aAAkB,SAAU/5K,EAAQ0vZ,GACxD,GAAI3/D,EACF,OAAOA,EAAU/vV,EAAQ,CACvB0vZ,WAAYA,EACZ3ob,MAAO5Z,OAAO0ic,EAAc1ja,WAGhC,IAAI+M,EAAwB,kBAAX8G,EAAsBmrZ,GAAQnrZ,GAAUA,EAGzD,IAAK0vZ,EAAY,CACf,IAAIK,EAAkBN,EAAav2Z,EAAKw2Z,GACxC,GAAIxE,GAAehyZ,KAAS+1Z,GAAoBc,GAAmB,GAGjE72Z,EAAM+kI,GAAQ/kI,EADK+1Z,GAAoB,IACNc,EAErC,CACA,OAAO72Z,CACT,GAAG,CAAC62V,EAAW0/D,EAAcR,IAmB3Bh/L,EAAmBnuB,GAPE/nB,EAAAA,UAAe,WAClC,IAAIy3F,EAA6B,OAAjB/sR,QAA0C,IAAjBA,EAA0BA,EAAe3/B,EAClF,OAAIypc,EAAanC,gBAAkB,CAAC,SAAU,UAAU/1b,UAAS3N,EAAAA,GAAAA,GAAQ8oT,IAChEpkT,OAAOic,MAAMmoS,GAAa,GAAKA,EAEjCs+I,EAAgBvB,EAAar6b,YAAY,EAClD,IACoD,GACpD8sY,EAAa/wI,EAAiB,GAC9B+/L,EAAwB//L,EAAiB,GAI3C,SAASggM,EAAc9yW,EAAUuyW,GAC/BM,EAAsBF,EAItB3yW,EAASivW,eAAiBjvW,EAASjpF,UAAS,GAASipF,EAASjpF,UAAUw7b,GAAaA,GACvF,CATAG,EAAc1ja,QAAU60W,EAYxB,IAAIkvD,EAAan2O,EAAAA,SAAc,WAC7B,OAAOy0O,GAAqBtlb,EAC9B,GAAG,CAACA,EAAKiwB,IACLg3Z,GAAap2O,EAAAA,SAAc,WAC7B,OAAOy0O,GAAqBrlb,EAC9B,GAAG,CAACA,EAAKgwB,IACLg0Z,GAAapzO,EAAAA,SAAc,WAC7B,SAAKm2O,IAAe3B,GAAgBA,EAAanC,iBAG1C8D,EAAWE,WAAW7B,EAC/B,GAAG,CAAC2B,EAAY3B,IACZnB,GAAerzO,EAAAA,SAAc,WAC/B,SAAKo2O,KAAe5B,GAAgBA,EAAanC,iBAG1CmC,EAAa6B,WAAWD,GACjC,GAAG,CAACA,GAAY5B,IAGZ8B,GC3MS,SAAmBtpb,EAAOknX,GACvC,IAAIqiE,GAAe98X,EAAAA,EAAAA,QAAO,MAsD1B,MAAO,CArDP,WAEE,IACE,IAAIzqD,EAAQhC,EAAM46C,eAChB34C,EAAMjC,EAAM66C,aACZ98D,EAAQiiB,EAAMjiB,MACZyrc,EAAYzrc,EAAMwvB,UAAU,EAAGvL,GAC/Bynb,EAAW1rc,EAAMwvB,UAAUtL,GAC/Bsnb,EAAanka,QAAU,CACrBpjB,MAAOA,EACPC,IAAKA,EACLlkB,MAAOA,EACPyrc,UAAWA,EACXC,SAAUA,EAEd,CAAE,MAAO98a,KAGP,CAEJ,EAOA,WACE,GAAI3M,GAASupb,EAAanka,SAAW8hW,EACnC,IACE,IAAInpY,EAAQiiB,EAAMjiB,MACd2rc,EAAwBH,EAAanka,QACvCoka,EAAYE,EAAsBF,UAClCC,EAAWC,EAAsBD,SACjCznb,EAAQ0nb,EAAsB1nb,MAC5Bqc,EAAWtgC,EAAMuC,OACrB,GAAIvC,EAAM0zG,WAAW+3V,GACnBnra,EAAWmra,EAAUlpc,YAChB,GAAIvC,EAAM0wG,SAASg7V,GACxBpra,EAAWtgC,EAAMuC,OAASipc,EAAanka,QAAQqka,SAASnpc,WACnD,CACL,IAAIqpc,EAAiBH,EAAUxnb,EAAQ,GACnC4nb,EAAW7rc,EAAM8F,QAAQ8lc,EAAgB3nb,EAAQ,IACnC,IAAd4nb,IACFvra,EAAWura,EAAW,EAE1B,CACA5pb,EAAMwmX,kBAAkBnoW,EAAUA,EACpC,CAAE,MAAO1R,KACPoxM,IAAQ,EAAO,sEAAsEp6N,OAAOgpB,IAAEgiD,SAChG,CAEJ,EAEF,CDmJmBk7X,CAAU//D,EAAS1kW,QAAS1S,GAC3Co3a,GAAc/uN,GAAeuuN,GAAY,GACzCS,GAAeD,GAAY,GAC3BE,GAAgBF,GAAY,GAU1BG,GAAgB,SAAuB//b,GAEzC,OAAIi/b,IAAej/b,EAAOm/b,WAAWF,GAC5BA,EAILC,KAAeA,GAAWC,WAAWn/b,GAChCk/b,GAEF,IACT,EAKIc,GAAY,SAAmBhgc,GACjC,OAAQ+/b,GAAc//b,EACxB,EAMIigc,GAAqB,SAA4B/zW,EAAUuyW,GAC7D,IA5JmCyB,EA4J/Bn9I,EAAc72N,EACdi0W,EAAkBH,GAAUj9I,IAAgBA,EAAY39M,UAU5D,GALK29M,EAAY39M,WAAcq5V,IAE7B17I,EAAcg9I,GAAch9I,IAAgBA,EAC5Co9I,GAAkB,IAEfpjE,IAAa9jV,GAAYknZ,EAAiB,CAC7C,IAAI5G,EAASx2I,EAAY9/S,WACrB67b,EAAkBN,EAAajF,EAAQkF,GAqB3C,OApBIK,GAAmB,IACrB/7I,EAAc04I,GAAezuR,GAAQusR,EAAQ,IAAKuF,IAI7CkB,GAAUj9I,KACbA,EAAc04I,GAAezuR,GAAQusR,EAAQ,IAAKuF,GAAiB,MAKlE/7I,EAAYlrH,OAAOylQ,KArLS4C,EAsLHn9I,OArLlB7gT,IAAVrO,GACF0qc,EAAgB2B,GAqLD,OAAbjqN,QAAkC,IAAbA,GAAuBA,EAAS8sE,EAAY39M,UAAY,KAAOg4V,GAAgBC,EAAYt6I,SAGlG7gT,IAAVrO,GACFmrc,EAAcj8I,EAAa07I,IAGxB17I,CACT,CACA,OAAOu6I,CACT,EAGI8C,GEzRN,WACE,IAAIC,GAAQ99X,EAAAA,EAAAA,QAAO,GACf+9X,EAAU,WACZ1wN,GAAIv0I,OAAOglW,EAAMnla,QACnB,EAIA,OAHA+mC,EAAAA,EAAAA,YAAU,WACR,OAAOq+X,CACT,GAAG,IACI,SAAUrgb,GACfqgb,IACAD,EAAMnla,QAAU00M,IAAI,WAClB3vN,GACF,GACF,CACD,CF2QqBsgb,GAGhBC,GAAoB,SAASA,EAAkBC,GASjD,GARAZ,KAIAjB,EAAc1ja,QAAUula,EACxB1B,EAAsB0B,IAGjB/gE,EAAexkW,QAAS,CAC3B,IAAIwla,EAAahC,EAAa+B,GAC1BE,EAAelF,GAAeiF,GAC7BC,EAAavob,SAChB6nb,GAAmBU,GAAc,EAErC,CAGY,OAAZv9D,QAAgC,IAAZA,GAAsBA,EAAQq9D,GAIlDL,IAAc,WACZ,IAAIQ,EAAeH,EACdhpU,IACHmpU,EAAeH,EAAS93b,QAAQ,UAAM,MAEpCi4b,IAAiBH,GACnBD,EAAkBI,EAEtB,GACF,EAiBIC,GAAiB,SAAwBnE,GAC3C,IAAIx8D,EAEJ,KAAIw8D,GAAMR,KAAeQ,GAAMP,IAA/B,CAMAkC,EAAcnja,SAAU,EACxB,IAAI4la,EAAcrF,GAAe6C,EAAYpja,QAAUgia,GAAgB7nX,GAAQA,GAC1EqnX,IACHoE,EAAcA,EAAYplW,UAE5B,IAAI17F,GAAUs9b,GAAgB7B,GAAe,IAAIhxa,IAAIq2a,EAAY79b,YAC7D89b,EAAed,GAAmBjgc,GAAQ,GACnC,OAAXo8b,QAA8B,IAAXA,GAAqBA,EAAOgB,GAAgBC,EAAY0D,GAAe,CACxFhxY,OAAQuuY,EAAYpja,QAAUgia,GAAgB7nX,GAAQA,EACtDp5E,KAAMygc,EAAK,KAAO,SAEuB,QAA1Cx8D,EAAoBN,EAAS1kW,eAA2C,IAAtBglW,GAAgCA,EAAkB13W,OAfrG,CAgBF,EAQIw4a,GAAkB,SAAyBvC,GAC7C,IACI9zK,EADAs2K,EAAcxF,GAAeiD,EAAa3uD,IAO5CplH,EALGs2K,EAAY7ob,QAKD6nb,GAAmB3C,EAAcmB,GAFjCwB,GAAmBgB,EAAaxC,QAIlCv8b,IAAVrO,EAEFmrc,EAAc1B,GAAc,GAClB3yK,EAAYvyQ,SAEtB4mb,EAAcr0K,GAAa,EAE/B,EAgCA7hE,EAAAA,WAAgB,WACd,GAAI+0O,GAAiBr1a,EAAO,CAC1B,IAAI04a,EAAU,SAAiB7yY,GAG7BwyY,GAAexyY,EAAM3B,OAAS,GAC9B2B,EAAMrH,gBACR,EACIlxC,EAAQ8pX,EAAS1kW,QACrB,GAAIplB,EAOF,OAHAA,EAAMtY,iBAAiB,QAAS0jc,EAAS,CACvC3tY,SAAS,IAEJ,WACL,OAAOz9C,EAAMipC,oBAAoB,QAASmiZ,EAC5C,CAEJ,CACF,IAyCA,OA5BA/yN,IAAsB,WACfmvN,EAAanC,gBAChB6D,EAAc1B,GAAc,EAEhC,GAAG,CAACp1Z,EAAW42V,IAGf3wJ,IAAsB,WACpB,IAAIjiJ,EAAWuvW,GAAe5nc,GAC9B0qc,EAAgBryW,GAChB,IAAIi1W,EAAqB1F,GAAeiD,EAAa3uD,IAIhD7jT,EAAS2rG,OAAOspQ,IAAwB9C,EAAcnja,UAAW4jW,GAEpEkgE,EAAc9yW,EAAUmyW,EAAcnja,QAE1C,GAAG,CAACrnC,IAGJs6O,IAAsB,WAChB2wJ,GACFghE,IAEJ,GAAG,CAAC/vD,IAGgBjnL,EAAAA,cAAoB,MAAO,CAC7Ct8K,IAAKyqW,EACLz6Y,UAAWshY,KAAKvvJ,EAAW/xO,GAAWswG,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,YAAa/lN,GAAQ,GAAG/uB,OAAO80O,EAAW,aAAct1L,GAAW,GAAGx/C,OAAO80O,EAAW,aAAcwuJ,GAAW,GAAGtjY,OAAO80O,EAAW,iBAAkB+uN,EAAallb,SAAU,GAAG3e,OAAO80O,EAAW,kBAAmB+uN,EAAanC,iBAAmB6E,GAAU1C,KAChZ/ic,MAAOA,EACPgpP,QAAS,WACP66M,GAAS,EACX,EACAjiE,OA7CW,WACP+hE,GACF8C,IAAgB,GAElB5C,GAAS,GACTC,EAAcnja,SAAU,CAC1B,EAwCEooN,UAhGc,SAAmBj1L,GACjC,IAAIt0D,EAAMs0D,EAAMt0D,IACd2uD,EAAW2F,EAAM3F,SACnB21Y,EAAcnja,SAAU,EACxBoja,EAAYpja,QAAUwtB,EACV,UAAR3uD,IACG2lY,EAAexkW,UAClBmja,EAAcnja,SAAU,GAE1B8la,IAAgB,GACC,OAAjB9hE,QAA0C,IAAjBA,GAA2BA,EAAa7wU,KAElD,IAAbygS,IAKC4wC,EAAexkW,SAAW,CAAC,KAAM,UAAW,OAAQ,aAAa91B,SAASrL,KAC7E8mc,GAAuB,OAAR9mc,GAAwB,YAARA,GAC/Bs0D,EAAMrH,iBAEV,EA4EEm4U,QA3EY,WACZk/D,EAAcnja,SAAU,EACxBoja,EAAYpja,SAAU,CACxB,EAyEEqkW,mBApKuB,WACvBG,EAAexkW,SAAU,CAC3B,EAmKEskW,iBAlKqB,WACrBE,EAAexkW,SAAU,EACzBsla,GAAkB5gE,EAAS1kW,QAAQrnC,MACrC,EAgKEutc,cAvGkB,WAClB/C,EAAcnja,SAAU,CAC1B,GAsGG6ia,GAAyBj1O,EAAAA,cAAoBizO,GAAa,CAC3DxtN,UAAWA,EACXytN,OAAQ0B,EACRzB,SAAU0B,EACVzB,WAAYA,GACZC,aAAcA,GACdC,OAAQyE,KACO/3O,EAAAA,cAAoB,MAAO,CAC1CtsN,UAAW,GAAG/C,OAAO+rY,EAAgB,UACvB18K,EAAAA,cAAoB,QAASoL,GAAS,CACpD+qK,aAAc,MACd57I,KAAM,aACN,gBAAiBnrO,EACjB,gBAAiBD,EACjB,gBAAiBqlb,EAAanC,eAAiB,KAAOmC,EAAar6b,WACnEoyE,KAAMA,GACL8oX,EAAY,CACb3xZ,IAAK84L,GAAWs6J,EAAUpzV,GAC1BhwC,UAAWgpY,EACX3xY,MAAOk8Y,EACP95J,SAlLoB,SAAyBxzN,GAC7C+9a,GAAkB/9a,EAAEziB,OAAOnM,MAC7B,EAiLEolD,SAAUA,EACV8jV,SAAUA,MAEd,IA0DA,MG5jBA,GHmgB+Bj0K,EAAAA,YAAiB,SAAUh8K,EAAON,GAC/D,IAAIyM,EAAWnM,EAAMmM,SACnB1+C,EAAQuyC,EAAMvyC,MACdu3O,EAAmBhlM,EAAMyhM,UACzBA,OAAiC,IAArBuD,EAA8B,kBAAoBA,EAC9Dj+O,EAAQi5C,EAAMj5C,MACdo1G,EAASn8D,EAAMm8D,OACfo6B,EAASv2F,EAAMu2F,OACfw5P,EAAc/vV,EAAM+vV,YACpBC,EAAahwV,EAAMgwV,WACnBtgY,EAAYswC,EAAMtwC,UAClBisN,EAAa37K,EAAM27K,WACnBpmH,EAAO2sI,GAAyBliM,EAAOokM,IACrCq7F,EAAYzjH,EAAAA,OAAa,MACzBu4O,EAAoBv4O,EAAAA,OAAa,MACjCw4O,EAAgBx4O,EAAAA,OAAa,MAC7BtgM,EAAQ,SAAe03G,GACrBohU,EAAcpma,SAChBshW,GAAa8kE,EAAcpma,QAASglG,EAExC,EAOA,OANA4oF,EAAAA,oBAA0Bt8K,GAAK,WAC7B,OIvhBgC90C,EJuhBb4pc,EAAcpma,QIvhBIqma,EJuhBK,CACxC/4a,MAAOA,EACPs8M,cAAeynG,EAAUrxS,QAAQ4pM,eAAiBu8N,EAAkBnma,SIxhBnD,qBAAVo0P,OAAyB53R,EAC3B,IAAI43R,MAAM53R,EAAK,CACpB+K,IAAK,SAAazC,EAAQ1K,GACxB,GAAIisc,EAAYjsc,GACd,OAAOisc,EAAYjsc,GAIrB,IAAIksc,EAAaxhc,EAAO1K,GACxB,MAA6B,oBAAfksc,EAA4BA,EAAWh/b,KAAKxC,GAAUwhc,CACtE,IAGG9pc,EAdM,IAAqBA,EAAK6pc,CJ2hBvC,IACoBz4O,EAAAA,cAAoBm4K,GAAW,CACjDzkY,UAAWA,EACXggY,aAAch0W,EACd+lN,UAAWA,EACX16O,MAAOA,EACPolD,SAAUA,EACV1+C,MAAOA,EACP0uG,OAAQA,EACRo6B,OAAQA,EACRy5P,WAAYA,EACZD,YAAaA,EACbp0K,WAAYA,EACZunD,WAAY,CACVstH,aAAc,MACdE,aAAc,MACd1qS,QAAS,MACT6qS,WAAY,OAEdnxV,IAAK+/R,GACSzjH,EAAAA,cAAoB00O,GAAqBtpO,GAAS,CAChEqa,UAAWA,EACXt1L,SAAUA,EACVzM,IAAK80Z,EACLrqD,OAAQoqD,EACR7kc,UAA0B,OAAfisN,QAAsC,IAAfA,OAAwB,EAASA,EAAW3yM,OAC7EusF,IACL,IKljBao/V,GAAiBA,CAACvhT,EAAM5oI,KACnC,IAAI,aACF66Q,EAAY,eACZsF,EAAc,eACdC,GACEx3I,EACJ,MAAMo2I,EAAwB,OAATh/Q,EAAgBogR,EAAiBD,EACtD,MAAO,CACL,CAAC,KAAKngR,KAAS,CACb,CAAC,GAAG66Q,kBAA8B,CAChCogD,qBAAsBj8C,EACtBk8C,mBAAoBl8C,GAEtB,CAAC,GAAGnE,gBAA4B,CAC9BogD,qBAAsBj8C,GAExB,CAAC,GAAGnE,kBAA8B,CAChCqgD,mBAAoBl8C,IAGzB,EAEGorK,GAAuB9jV,IAC3B,MAAM,aACJu0K,EAAY,UACZh/P,EAAS,SACTwiQ,EAAQ,aACRW,EAAY,gBACZgjG,EAAe,gBACfD,EAAe,gBACfvhG,EAAe,gBACfF,EAAe,WACftC,EAAU,gBACV8/C,EAAe,eACfkB,EAAc,eACdC,EAAc,gBACdpB,EAAe,qBACftzC,EAAoB,kBACpB/B,EAAiB,iBACjB6hK,EAAgB,cAChBC,EAAa,cACbp6J,EAAa,aACb8lC,EAAY,SACZu0H,EAAQ,eACRC,EAAc,kBACdttK,EAAiB,eACjBiD,EAAc,eACdC,EAAc,aACdqqK,EAAY,kBACZC,EAAiB,eACjBC,EAAc,aACdxpK,EAAY,KACZxgB,GACEr6J,EACJ,MAAO,CAAC,CACN,CAACu0K,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAASk9Q,GAAmBl9Q,IAAS,CACtLniH,QAAS,eACTvE,MAAO6qc,EACPlrc,OAAQ,EACR2/B,QAAS,EACT8/P,iBACEqjG,GAAiB/7Q,EAAO,CAC1B,CAAC,GAAGu0K,kBAA8B,CAChC1hK,WAAYoxU,EACZ,CAAC,GAAG1vK,kBAA8B,CAChC+vK,iBAAkB,GAAGjqc,GAAKk7B,MAAcwiQ,KAAYqsK,SAGrD3nE,GAAez8Q,EAAO,CACzB,CAAC,GAAGu0K,kBAA8B,CAChC1hK,WAAYwxU,EACZ,CAAC,GAAG9vK,kBAA8B,CAChC+vK,iBAAkB,GAAGjqc,GAAKk7B,MAAcwiQ,KAAYqsK,MAGxD,iBAAkB,CAChB,CAAC,GAAG7vK,kBAA8B,CAChC1hK,WAAYoxU,OAGbnnE,GAAmB98Q,EAAO,CAC7B,CAAC,GAAGu0K,kBAA8B,CAChC1hK,WAAYoxU,EACZ,CAAC,GAAG1vK,kBAA8B,CAChC+vK,iBAAkB,GAAGjqc,GAAKk7B,MAAcwiQ,KAAYqsK,SAGrD/nE,GAAmBr8Q,IAAS,CAC/B,QAAS,CACP8U,UAAW,MACX,CAAC,GAAGy/J,WAAuB,CACzBz/J,UAAW,QAGf,OAAQ,CACNl8F,QAAS,EACTnE,SAAUgnW,EACV9mW,WAAYkmQ,EACZnC,aAAcoB,EACd,CAAC,QAAQvF,WAAuB,CAC9Bv7R,OAAQqhR,EAAK6f,GAAiBjrE,IAAIorD,EAAK9kP,GAAWm6L,IAAI,IAAIp/C,QAC1D13I,QAAS,GAAGv+B,GAAKs+U,MAAmBt+U,GAAKk9U,OAG7C,OAAQ,CACN3+S,QAAS,EACTnE,SAAUinW,EACVhjG,aAAcmB,EACd,CAAC,QAAQtF,WAAuB,CAC9Bv7R,OAAQqhR,EAAK2f,GAAiB/qE,IAAIorD,EAAK9kP,GAAWm6L,IAAI,IAAIp/C,QAC1D13I,QAAS,GAAGv+B,GAAKq+U,MAAmBr+U,GAAKm9U,OAI7C,iBAAkB,CAChB,CAAC,GAAGjjD,gBAA4B,CAC9Br8Q,MAAO,CACLogB,MAAOo/P,KAKb,UAAWr6R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAASm9Q,GAAmBn9Q,IAAS,CAC3G,YAAa3iH,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CACrD5C,QAAS,eACTk8B,UAAW,QACXC,cAAe,MACf,CAAC,GAAGu6P,mBAA+B,CACjCj7R,MAAO,QAGT,OAAQ,CACN,CAAC,GAAGi7R,iBAA6B,CAC/BmE,aAAcoB,EACdrlQ,SAAUurF,EAAM26K,aAGpB,OAAQ,CACN,CAAC,GAAGpG,iBAA6B,CAC/BmE,aAAcmB,KAGjBuiG,GAAsBp8Q,IAAS28Q,GAAoB38Q,IAAS,CAG7D,CAAC,SAASu0K,6BAAwCA,uBAAkCA,kBAA8B,CAChH,CAAC,GAAGA,MAAiBA,iBAA6B,CAChDmE,aAAc,IAGlB,CAAC,SAASnE,uBAAkCA,wBAAoC,CAC9E,CAAC,GAAGA,MAAiBA,iBAA6B,CAChDogD,qBAAsB,EACtBC,mBAAoB,IAGxB,CAAC,SAASrgD,wBAAmCA,uBAAmC,CAC9E,CAAC,GAAGA,MAAiBA,iBAA6B,CAChDsgD,uBAAwB,EACxBC,qBAAsB,QAK9B,CAAC,cAAcvgD,WAAuB,CACpCljQ,OAAQ,eAEV,CAACkjQ,GAAe,CACd,UAAWl3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CAC7F1mH,MAAO,OACPs/B,QAAS,GAAGv+B,GAAKq1U,MAAiBr1U,GAAKuvS,KACvC7vQ,UAAW,QACXj3B,gBAAiB,cACjBqpI,OAAQ,EACRusJ,eACA5rF,QAAS,EACTllJ,WAAY,OAAOs6O,WACnBk7H,WAAY,YACZ3oY,SAAU,YACRsoW,GAAoB/8Q,EAAM8jL,uBAAwB,CACpD,2FAA4F,CAC1F7qS,OAAQ,EACRsrc,iBAAkB,OAClBnnC,WAAY,WAIlB,CAAC,WAAW7oI,6BAAwCA,kBAA8B,CAChFj7R,MAAO0mH,EAAMwkV,YACbxhc,QAAS,MAKf,CACE,CAACuxR,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CACxD,CAAC,GAAG8zR,kBAA8B,CAChC7xR,SAAU,WACVq7X,gBAAiB,EACjBpzF,eAAgB,EAChBrxS,MAAO0mH,EAAMykV,mBACbzhc,QAASghc,EACThrc,OAAQ,OACR67U,uBAAwB,EACxBF,qBAAsBj8C,EACtBk8C,mBAAoBl8C,EACpBo8C,qBAAsB,EACtBj3U,QAAS,OACT6rS,cAAe,SACfvS,WAAY,UACZvvO,WAAY,OAAOs6O,IACnBv/R,SAAU,SAIV,CAAC,GAAG4xR,aAAyB,CAC3B12R,QAAS,OACTs5R,WAAY,SACZyT,eAAgB,SAChB7tP,KAAM,OACN/jD,OAAQ,MACR,CAAC,mBACKu7R,sCACAA,sCACA,CACJomC,gBAAiB,EACjBlmS,SAAUurF,EAAM0kV,kBAItB,CAAC,GAAGnwK,aAAyB,CAC3Bv7R,OAAQ,MACR2J,SAAU,SACV21B,MAAO2rQ,EACP/pQ,WAAY,OACZvF,WAAY,EACZoF,UAAW,SACX1I,OAAQ,UACRy5Q,kBAAmB,GAAGzwS,GAAKk7B,MAAcwiQ,KAAYqsK,IACrDx8Y,WAAY,OAAOs6O,WACnB,WAAY,CACVrvK,WAAYqxU,GAGd,UAAW,CACTlrc,OAAQ,MACR,CAAC,mBACKu7R,sCACAA,sCACA,CACJj8P,MAAOyra,IAGX,2BAA4B1mc,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,ExkB7OxC,CACvB5C,QAAS,cACTs5R,WAAY,SACZ7+P,MAAO,UACPlB,UAAW,SACXzC,WAAY,EACZoF,UAAW,SACXs8F,cAAe,OAEfr8F,cAAe,WACfo9P,cAAe,qBACf,yBAA0B,cAC1B,0BAA2B,YAC3B,MAAO,CACLziQ,WAAY,GAEd4pG,IAAK,CACH1gI,QAAS,kBwkB4NqE,CACxEy6B,MAAO2rQ,EACPr8O,WAAY,OAAOs6O,WACnBxgJ,WAAY,UAGhB,CAAC,GAAG6yI,gBAA4B,CAC9BogD,qBAAsBj8C,GAExB,CAAC,GAAGnE,kBAA8B,CAChCqgD,mBAAoBl8C,IAErBmrK,GAAe7jV,EAAO,OAAQ6jV,GAAe7jV,EAAO,OAAQ,CAE7D,yBAA0B,CACxB,CAAC,GAAGu0K,kBAA8B,CAChC12R,QAAS,QAEX,CAAC,GAAG02R,WAAuB,CACzBj8P,MAAO,YAGX,CAAC,eACKi8P,qCACAA,qCACA,CACJljQ,OAAQ,eAEV,CAAC,eACKkjQ,8DACAA,gEACA,CACJj8P,MAAOs+P,MAGX,EAEE+tK,GAAwB3kV,IAC5B,MAAM,aACJu0K,EAAY,aACZm7C,EAAY,cACZ9lC,EAAa,kBACbkxF,EAAiB,aACjBqpE,EAAY,eACZrqK,EAAc,eACdD,EAAc,gBACd09C,EAAe,gBACfC,EAAe,eACfmB,EAAc,eACdD,EAAc,kBACdx2C,GACEliL,EACJ,MAAO,CACL,CAAC,GAAGu0K,mBAA+Bl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC7D,CAAC,QAAQ8zR,WAAuB,CAC9B37P,QAAS,GAAGv+B,GAAKq1U,SAElBwtD,GAAmBl9Q,IAAS,CAE7Bt9G,SAAU,WACV7E,QAAS,cACTs5R,WAAY,SACZ79R,MAAO6qc,EACPvra,QAAS,EACT0hS,mBAAoB1wB,EACpB,OAAQ,CACNlR,aAAcoB,EACdwgC,mBAAoBid,EACpB,CAAC,QAAQhjD,WAAuB,CAC9B37P,QAAS,GAAGv+B,GAAKs+U,SAGrB,OAAQ,CACNjgD,aAAcmB,EACdygC,mBAAoBkd,EACpB,CAAC,QAAQjjD,WAAuB,CAC9B37P,QAAS,GAAGv+B,GAAKq+U,SAGrB,CAAC,SAASnkD,qBAAiC,CACzC3xR,OAAQ,GAEV,qBAAsB,CACpBA,OAAQ,GAEV,CAAC,gBAAgB2xR,cAA0B,CACzC1hK,WAAY,eAEd,CAAC,QAAQ0hK,KAAiB,CACxBj7R,MAAO,OACP6yI,OAAQ,OACR2gE,QAAS,OACT,CAAC,IAAIynF,aAAyB,CAC5Bh8J,UAAW,oBAGf,YAAa,CACX16H,QAAS,eACTvE,MAAO,EACP49H,WAAY,SACZphH,QAAS,UAEX,CAAC,GAAGy+Q,kBAA8B,CAChC3xR,OAAQ,GAEV,CAAC2xR,GAAe,CACd7xR,SAAU,SACV41B,MAAO,UACP,qBAAsB,CACpBz6B,QAAS,OACTk/C,KAAM,OACNo6O,WAAY,SACZ3lD,cAAe,QAEjB,WAAY,CACVmpF,gBAAiBmgE,GAEnB,WAAY,CACViD,gBAAiB,EACjBpzF,eAAgB,EAChB3xS,OAAQ,OACR2hU,gBAAiB/wB,EACjB8wB,kBAAmBogE,EACnBlzU,WAAY,UAAUs6O,MAG1B,CAAC,WAAW3N,6BAAwCA,kBAA8B,CAChFj7R,MAAO0mH,EAAMwkV,YACbxhc,QAAS,GAEX,CAAC,SAASuxR,2CAAsDA,YAAwB,CACtFomC,gBAAiB36M,EAAMq6J,KAAKr6J,EAAMwkV,aAAa33a,IAAI+8Q,GAAet5H,WAGvE,EAEH,GAAeykH,GAAc,eAAe/0K,IAC1C,MAAM4kV,EAAmB5yK,GAAWhyK,EAAO66Q,GAAe76Q,IAC1D,MAAO,CAAC8jV,GAAqBc,GAAmBD,GAAsBC,GAItEjpH,GAAoBipH,GAAkB,IChZH5kV,IACnC,IAAIrsF,EACJ,MAAMkxa,EAA+C,QAA9Blxa,EAAKqsF,EAAM6kV,qBAAkC,IAAPlxa,EAAgBA,EAAK,OAC5E6wa,EAAcxkV,EAAMg6K,gBAAoC,EAAlBh6K,EAAMzqF,UAClD,OAAOl4B,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGs6X,GAAmB/6Q,IAAS,CACjEmkV,aAAc,GACdK,cACAE,eAAgB1kV,EAAMvrF,SAAW,EACjCowa,gBACAX,eAAgBlkV,EAAM0jL,eACtBugK,SAAUjkV,EAAM+8K,iBAChBsnK,eAAgB,IAAI/rL,GAAUt4J,EAAMw8K,oBAAoBhiB,aAAax6J,EAAM+8K,kBAAkBtoG,cAC7FsvQ,iBAAkB/jV,EAAMu3K,aACxB6sK,kBAAmBpkV,EAAMm9K,YACzB6mK,eAAiC,IAAlBa,EAAyB,EAAI,EAC5CJ,oBAAsC,IAAlBI,EAAyBL,EAAc,GAC3D,GDiYsB,CACxBv/K,SAAU,CACR++K,eAAe,KEnZnB,IAAIhhK,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAiBA,MAAM+5a,GAA2B55O,EAAAA,YAAiB,CAACh8K,EAAON,KAMxD,MAAM,aACJuxO,EAAY,UACZrrJ,GACEo2F,EAAAA,WAAiBg1D,IACf8hH,EAAW92K,EAAAA,OAAa,MAC9BA,EAAAA,oBAA0Bt8K,GAAK,IAAMozV,EAAS1kW,UAC9C,MAAM,UACF1+B,EAAS,cACT0wQ,EACA51P,KAAMyiU,EACN9gS,SAAU+gS,EACVzrG,UAAW2vC,EAAkB,YAC7B2+G,EAAW,WACXC,EAAU,OACV7zR,EAAM,OACNo6B,EAAM,SACN++P,EAAQ,SACRrF,EACArrV,OAAQgwV,EAAY,SACpBq8D,EACA5lT,QAASkqP,GACPv1V,EACJ49Q,EAAS9pB,GAAO9zP,EAAO,CAAC,YAAa,gBAAiB,OAAQ,WAAY,YAAa,cAAe,aAAc,SAAU,SAAU,WAAY,WAAY,SAAU,WAAY,YAClLyhM,EAAYwvC,EAAa,eAAgBG,GAEzCiT,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,IACtD,YACJo5B,EAAW,sBACXJ,GACEF,GAAsB17E,EAAW77G,GACrC,IAAIiwU,EAAsB75O,EAAAA,cAAoBowO,GAAY,CACxD18b,UAAW,GAAG+xO,uBAEZq0N,EAAwB95O,EAAAA,cAAoB+yM,GAAc,CAC5Dr/Z,UAAW,GAAG+xO,yBAEhB,MAAMs0N,EAAmC,mBAAb9E,EAAyBA,OAAW77b,EACxC,kBAAb67b,IACT4E,EAAoC,qBAApB5E,EAAS4E,OAAyBA,EAAuB75O,EAAAA,cAAoB,OAAQ,CACnGtsN,UAAW,GAAG+xO,sBACbwvN,EAAS4E,QACZC,EAAwC,qBAAtB7E,EAAS6E,SAA2BA,EAAyB95O,EAAAA,cAAoB,OAAQ,CACzGtsN,UAAW,GAAG+xO,wBACbwvN,EAAS6E,WAEd,MAAM,YACJ55I,EACAt3Q,OAAQ+vV,EAAa,gBACrB14E,EAAe,aACfE,GACEngG,EAAAA,WAAiB4/F,IACf+5E,EAAejB,GAAgBC,EAAeC,GAC9C92E,EAAaC,IAAQ9uL,IACzB,IAAIxqG,EACJ,OAAmG,QAA3FA,EAAuB,OAAlBwoT,QAA4C,IAAlBA,EAA2BA,EAAgBxvB,SAAgC,IAAPh5R,EAAgBA,EAAKwqG,CAAG,IAG/H9iF,EAAW6vK,EAAAA,WAAiBk9G,IAC5B9hF,EAAoC,OAAnB81F,QAA8C,IAAnBA,EAA4BA,EAAiB/gS,GACxFk/F,EAASyqP,GAAoBC,GAAW,cAAeR,EAAeD,GACvE/D,EAAar1E,GAA4BlgG,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMmgG,GACnF65I,EAAmBr6O,KAAW,CAClC,CAAC,GAAG8lB,QAAgC,UAAfq8E,EACrB,CAAC,GAAGr8E,QAAgC,UAAfq8E,EACrB,CAAC,GAAGr8E,SAAgC,QAAd77G,EACtB,CAAC,GAAG67G,kBAA2Bw6E,GAC9B3mC,GACGihJ,EAAmB,GAAG90L,UA0C5B,OAAO07D,EAzCsBnhF,EAAAA,cAAoBi6O,GAAe9nc,OAAOoD,OAAO,CAC5EmuC,IAAKozV,EACL3mV,SAAUirM,EACV1nP,UAAWisN,KAAWyhF,EAAW/Y,EAAS30R,EAAW0wQ,EAAei9C,GACpEuzI,UAAWiF,EACXhF,YAAaiF,EACbr0N,UAAWA,EACXwuJ,SAAUA,EACVghE,SAAU8E,EACV55V,OAAQA,EACRo6B,OAAQg7P,GAAch7P,EACtBw5P,YAAaA,GAA6B/zK,EAAAA,cAAoBoqG,GAAiB,CAC7E7hP,MAAM,EACNnyD,OAAO,GACN29W,GACHC,WAAYA,GAA4Bh0K,EAAAA,cAAoBoqG,GAAiB,CAC3E7hP,MAAM,EACNnyD,OAAO,GACN49W,GACHr0K,WAAY,CACV3yM,MAAOgtb,EACP3qT,QAASswE,KAAW,CAClB,CAAC,GAAG8lB,KAAap2F,KAAYyqP,GAC5BrB,GAAoBhzJ,EAAWk0J,EAAcz5E,IAChDs0E,aAAc70K,KAAW,CACvB,CAAC,GAAG8lB,sBAA8C,UAAfq8E,EACnC,CAAC,GAAGr8E,sBAA8C,UAAfq8E,EACnC,CAAC,GAAGr8E,uBAA8C,QAAd77G,EACpC,CAAC,GAAG67G,qCAA0D,IAAbwvN,GAChD37K,GACHtvL,QAAS21H,KAAW,CAClB,CAAC,GAAG46M,SAAuC,QAAd3wS,GAC5B0vJ,GACHo7G,aAAc/0K,KAAW,CACvB,CAAC,GAAG8lB,sBAA8C,UAAfq8E,EACnC,CAAC,GAAGr8E,sBAA8C,UAAfq8E,EACnC,CAAC,GAAGr8E,uBAA8C,QAAd77G,EACpC,CAAC,GAAG67G,mBAA2Bp2F,KAAYyqP,GAC1CrB,GAAoB,GAAGhzJ,kBAA2Bk0J,EAAcz5E,GAAc5mC,KAElFsoC,IACuB,IAEtBs4I,GAAmBN,GAczBM,GAAiBrvI,uCAZO7mR,GAAuBg8K,EAAAA,cAAoBgjH,GAAgB,CACjFpuS,MAAO,CACLsyO,WAAY,CACV0yL,YAAa,CACXD,eAAe,MAIP35O,EAAAA,cAAoB45O,GAAaznc,OAAOoD,OAAO,CAAC,EAAGyuC,KAKnE,YC3JMm2Z,GAAwBrlV,IAC5B,MAAM,aACJu0K,EAAY,0BACZ+wK,EAAyB,WACzBzhK,EAAU,UACVtuQ,EAAS,kBACTgwa,EAAiB,kBACjBC,EAAiB,qBACjBC,GACEzlV,EACJ,MAAO,CACL,CAACu0K,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACtEskV,iBAAkB,GAAGjqc,GAAKk7B,YAAoBsuQ,IAE9C,aAAc,CACZnhS,SAAU,WACV/J,IAAK,UACLkF,QAAS,eACT7E,OAAQ,QACR+gU,aAAc0rI,EACdzrI,YAAa,EACbhgS,cAAe,SACfugU,UAAW,EACXzvD,kBAAmB,GAAGzwS,GAAKk7B,YAAoBsuQ,KAEjD,eAAgB,CACdhmS,QAAS,OACT0nF,MAAO,OACPjsF,MAAO,OACP6pC,SAAU,OAEVlqC,OAAQ,GAAGoB,GAAK2lH,EAAM0lV,oCAExB,CAAC,eAAenxK,eAA2B,CACzC12R,QAAS,OACTs5R,WAAY,SACZl+R,OAAQ,GAAGoB,GAAK2lH,EAAM2lV,2CACtBrta,MAAO0nF,EAAM+jL,iBACb7pQ,WAAY,IACZzF,SAAUurF,EAAM26K,WAChBjiJ,WAAY,SACZ3+G,UAAW,SACXuqa,iBAAkB,KAAKzgK,IACvB,sBAAuB,CACrBnhS,SAAU,WACVpJ,MAAO,MACPgrc,iBAAkB,GAAGjqc,GAAKk7B,uBAE1Bqwa,sBAAuB,UACvBv9B,eAAgB,EAChBzxV,UAAW,kBACX9gE,QAAS,OAGb,CAAC,eAAey+Q,qBAAiC,CAC/C,YAAa,CACXj7R,MAAO,QAAQksc,aAEjB,WAAY,CACVlsc,MAAO,eAAeksc,cAG1B,CAAC,eAAejxK,mBAA+B,CAC7C,YAAa,CACXj7R,MAAO,eAAeksc,aAExB,WAAY,CACVlsc,MAAO,QAAQksc,cAGnB,CAAC,GAAGjxK,gBAA4B,CAC9B12R,QAAS,eACT6xU,aAAc,EACd9lC,cAAe27J,GAEjB,WAAY,CACV1yU,WAAY,OACZh5F,YAAagqQ,EACbq3B,YAAa,SACbvhS,YAAa,GAAGt/B,GAAKk7B,UAEvB,CAAC,eAAeg/P,cAAyBA,YAAwB,CAC/D,sBAAuB,CACrB2mC,YAAa,qBAGjB,CAAC,aAAa3mC,YAAwB,CACpCsxK,uBAAwBtwa,EACxB+jS,gBAAiB,EACjBgrI,iBAAkB,EAClBj8B,eAAgB,GAElB,WAAY,CACVx1S,WAAY,OACZh5F,YAAagqQ,EACbq3B,YAAa,SACbvhS,YAAa,GAAGt/B,GAAKk7B,UAEvB,CAAC,eAAeg/P,cAAyBA,YAAwB,CAC/D,sBAAuB,CACrB2mC,YAAa,qBAGjB,CAAC,aAAa3mC,YAAwB,CACpCsxK,uBAAwBtwa,EACxB+jS,gBAAiB,EACjBgrI,iBAAkB,EAClBj8B,eAAgB,GAElB,CAAC,UAAU9zI,eAA2B,CACpCj8P,MAAO0nF,EAAMk2K,UACbh8P,WAAY,SACZzF,SAAUurF,EAAMvrF,UAElB,CAAC,eAAe8/P,oBAA+BA,yCAAqD,CAClG,YAAa,CACXj7R,MAAO,GAET,WAAY,CACVA,MAAO,QAET,CAAC,GAAGi7R,gBAA4B,CAC9B+lC,mBAAoBgrI,IAGxB,CAAC,eAAe/wK,kBAA6BA,uCAAmD,CAC9F,YAAa,CACXj7R,MAAO,QAET,WAAY,CACVA,MAAO,GAET,CAAC,GAAGi7R,gBAA4B,CAC9B0lC,iBAAkBqrI,MAIzB,EAQH,GAAevwK,GAAc,WAAW/0K,IACtC,MAAM8lV,EAAe9zK,GAAWhyK,EAAO,CACrC2lV,sCAAuC3lV,EAAM/mH,OAC7Cysc,8BAA+B1lV,EAAMumL,SACrC++J,0BAA2B,IAE7B,MAAO,CAACD,GAAsBS,GAAc,IAZT9lV,IAAS,CAC5CulV,kBAAmB,MACnBC,kBAAmB,IACnBC,qBAAsBzlV,EAAMomL,YAUJ,CACxBnhB,SAAU,CACRugL,mBAAmB,KC5JvB,IAAIxiK,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAkFA,SA5EgBmkB,IACd,MAAM,aACJixO,EAAY,UACZrrJ,EACAl2H,UAAWmnc,EACXppc,MAAOqpc,GACLtlL,GAAmB,YAEnB/vC,UAAW2vC,EAAkB,KAC7BjiR,EAAO,aAAY,YACnBjE,EAAc,SAAQ,kBACtBorc,EAAiB,UACjB5mc,EAAS,cACT0wQ,EAAa,SACb9zN,EAAQ,OACRwyP,EAAM,QACNzzJ,EAAU,QAAO,MACjBziH,EAAK,MACLn7B,GACEuyC,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,OAAQ,cAAe,oBAAqB,YAAa,gBAAiB,WAAY,SAAU,UAAW,QAAS,UACxJyhM,EAAYwvC,EAAa,UAAWG,IACnC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3Cs1N,IAAgBzqZ,EAChB0qZ,EAAoBh7O,EAAAA,SAAc,IAClB,SAAhB9wN,EACmB,QAAd06H,EAAsB,MAAQ,QAEnB,UAAhB16H,EACmB,QAAd06H,EAAsB,QAAU,MAElC16H,GACN,CAAC06H,EAAW16H,IACT+rc,EAAuC,UAAtBD,GAAsD,MAArBV,EAClDY,EAAqC,QAAtBF,GAAoD,MAArBV,EAC9CrmL,EAAct0D,KAAW8lB,EAAWo1N,EAAkBvhL,EAAQ8nB,EAAW,GAAG37D,KAAatyO,IAAQ,CACrG,CAAC,GAAGsyO,eAAwBs1N,EAC5B,CAAC,GAAGt1N,eAAuBu1N,KAAsBD,EACjD,CAAC,GAAGt1N,cAAuBq9D,EAC3B,CAAC,GAAGr9D,KAAap2F,KAAwB,UAAZA,EAC7B,CAAC,GAAGo2F,aAAsB74M,EAC1B,CAAC,GAAG64M,SAAgC,QAAd77G,EACtB,CAAC,GAAG67G,yCAAkDw1N,EACtD,CAAC,GAAGx1N,uCAAgDy1N,GACnDxnc,EAAW0wQ,GACR+2L,EAA4Bn7O,EAAAA,SAAc,IACb,kBAAtBs6O,EACFA,EAEL,QAAQnxb,KAAKmxb,GACRjnc,OAAOinc,GAETA,GACN,CAACA,IACEv3J,EAAa,CACjBysB,kBAAmByrI,EAAiBE,OAA4B/hc,EAChEq2T,gBAAiByrI,EAAeC,OAA4B/hc,GAO9D,OAAO+nS,EAAwBnhF,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CACtE7B,UAAWugR,EACXxiR,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGulc,GAAerpc,IACrDw0O,EAAW,CACZsU,KAAM,cACJjqM,GAAqB,aAATn9C,GAAqC6sN,EAAAA,cAAoB,OAAQ,CAC/EtsN,UAAW,GAAG+xO,eACdh0O,MAAOsxS,GACNzyP,IAAY,ECpFjB,SADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,uZAA2Z,KAAQ,OAAQ,MAAS,YCM9kB,IAAI8qZ,GAAe,SAAsBp3Z,EAAON,GAC9C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMi9P,KAEV,EAOA,SAJ2Br7O,EAAAA,WAAiBo7O,ICb5C,SADqB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,0VAA8V,KAAQ,SAAU,MAAS,YCMrhB,IAAIE,GAAiB,SAAwBt3Z,EAAON,GAClD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMm9P,KAEV,EAOA,SAJ2Bv7O,EAAAA,WAAiBs7O,ICqE5C,GA/EwBlkT,IAAiE,IAAhE,QAAE4uG,EAAO,QAAEi+F,EAAO,UAAEygC,EAAS,gBAAE82E,EAAe,SAAEC,GAAUrkT,EACjF,MAAM1gF,EAAW2hS,KACXl6N,EAAU26N,IAAatiW,GAAUA,EAAM2tX,KAAKhmP,UAC5CnnI,EAAQ8hW,IAAatiW,GAAUA,EAAM2tX,KAAKntX,SACzCqtX,EAAUq3E,IAAehiY,EAAAA,EAAAA,UAAS8hY,IAGzCriY,EAAAA,EAAAA,YAAU,KACRuiY,EAAYF,EAAgB,GAC3B,CAACx1M,EAASw1M,IA0Bb,OACE55B,EAAAA,GAAAA,KAACv/G,GAAK,CACJnqR,MAAM,mBACN8tN,QAASA,EACT08F,SAAUuB,EACVhqT,OAAQ,EACN2nY,EAAAA,GAAAA,KAACtrO,GAAM,CAAch2H,QAAS2jR,EAAQ3zS,SAAC,UAA3B,WAGZsxX,EAAAA,GAAAA,KAACtrO,GAAM,CAAcnjM,KAAK,UAAUmtE,QAjCrBohI,UACnB,MAAM4iL,EAASL,aAAahiR,QAAQ,UAG/BqiR,EAKDD,GAAY,EACdz6L,MAAM,yCAKFlzH,EAASouT,GAAe,CAAER,SAAQI,YAAWL,cAGnDo3E,IAGAx3G,KAhBEr6J,MAAM,qBAgBC,EAYsDz5I,SAAUguF,EAAQ7tF,SAAC,UAAlE,WAGZA,SAED6tF,GACCyjS,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,mCAAkC48C,UAC/CsxX,EAAAA,GAAAA,KAACzH,GAAI,CAAC3rZ,KAAK,aAGbmzZ,EAAAA,GAAAA,MAAAqoB,GAAAA,SAAA,CAAA15Y,SAAA,CACGt5C,IACC4qa,EAAAA,GAAAA,KAACsuB,GAAK,CACJv0X,QAAQ,QACR5nD,YAAa/c,EACb7D,KAAK,QACLo8b,UAAQ,EACR77b,UAAU,UAGdiua,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EACEqxX,EAAAA,GAAAA,MAAA,KAAArxX,SAAA,CAAG,qBAAmBkrZ,MACtB55B,EAAAA,GAAAA,KAACg4B,GAAW,CACVxqb,IAAK,EACLrkB,MAAOs5X,EACPl3I,SAAWpiP,GAAU2wc,EAAY3wc,GACjC2I,UAAU,kBAKZ,sDCuJZ,GA7Naioc,KACX,MAAMjlY,EAAW2hS,KACX7kI,EAAWR,MACX,kBAAE4oO,GAAsB5nO,KACxB6nO,EAAY/iG,IAAatiW,GAAUA,EAAM2tX,KAAKA,OAC9Ck7C,EAAWvmE,IAAatiW,GAAUA,EAAM6oa,SAASA,WACjDlhS,EAAU26N,IAAatiW,GAAUA,EAAM2tX,KAAKhmP,UAC5CnnI,EAAQ8hW,IAAatiW,GAAUA,EAAM2tX,KAAKntX,SACzC8kc,EAAiBC,IAAsBriY,EAAAA,EAAAA,WAAS,IAChDsiY,EAAgBC,IAAqBviY,EAAAA,EAAAA,WAAS,IAC9CwiY,EAAmBC,IAAwBziY,EAAAA,EAAAA,UAAS,OACpD0iY,EAAkBC,IAAuB3iY,EAAAA,EAAAA,UAAS,IAClD4iY,EAAmBC,IAAwB7iY,EAAAA,EAAAA,UAAS,OAE3DP,EAAAA,EAAAA,YAAU,KACJyiY,GACFllY,EAASmuT,GAAY+2E,IAEvBllY,EAAS0oW,KAAgB,GACxB,CAAC1oW,EAAUklY,IAEd,MAsCMY,EAAezO,IACnB,IAAKA,EACH,OAAOnsB,EAAAA,GAAAA,KAAA,OAAKzra,IAAI,gCAAgCuiV,IAAI,cAAchlV,UAAU,+BAE9E,MACM03b,EAAW,wDAA2C2C,EAAUzob,MAAM,MAAM+4E,QAClF,OAAOujV,EAAAA,GAAAA,KAAA,OAAKzra,IAAKi1b,EAAU1yG,IAAI,UAAUhlV,UAAU,8BAA+B,EAG9Ek6b,EAAehpE,GACZ,IAAIrwP,KAAK64T,aAAa,QAAS,CACpC37b,MAAO,WACP47b,SAAU,MACVQ,sBAAuB,EACvBC,sBAAuB,IACtB1+b,OAAOw1X,GAGN63E,EAAaZ,EAAUzwa,QAAO,CAACuL,EAAK0H,IAAS1H,EAAM0H,EAAKumV,MAAQvmV,EAAKgmV,UAAU,GAAGngN,QAAQ,GAG1Fw4R,EAAiB,IAAIr9B,GAC1Br+Y,MAAK,CAAC3a,EAAGC,IAAM,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,eACpDhua,MAAM,EAAG,GAEV,OACEwwa,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,wBAAuB48C,SAAA,EACpCsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,0BAAyB48C,SAAC,eAEvC6tF,GACCyjS,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,YAAW48C,UACxBqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,2DAA0D48C,SAAA,EACvEsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,2CACfiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,YAAW48C,SAAA,EACxBsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,mCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,0CAInBsD,GACF4qa,EAAAA,GAAAA,KAACsuB,GAAK,CAACv0X,QAAQ,QAAQ5nD,YAAa/c,EAAO7D,KAAK,QAAQo8b,UAAQ,IACzC,IAArBsM,EAAUvuc,QACZq0a,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,6DAA4D48C,SAAA,EACzEsxX,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,kDAAiD48C,SAAC,yBAC/DsxX,EAAAA,GAAAA,KAAA,OAAKzra,IAAKwmc,GAAKjkH,IAAI,aAAahlV,UAAU,qDAC1Ckua,EAAAA,GAAAA,KAACtrO,GAAM,CAACnjM,KAAK,UAAUmtE,QAASA,IAAMkzJ,EAAS,aAAc9/N,UAAU,6DAA4D48C,SAAC,iBAKtIqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,4BAA2B48C,SAAA,EACxCqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,oBAAmB48C,SAAA,CAC/BurZ,EAAUric,KAAK6kC,IACdsjY,EAAAA,GAAAA,MAAA,OAA0Bjua,UAAU,qEAAoE48C,SAAA,EACtGsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,YAAW48C,SAAEksZ,EAAYn+Z,EAAK0vZ,cAC7CpsB,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,cAAa48C,SAAA,EAC1BsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,qBAAoB48C,SAAEjS,EAAKojY,eACzCE,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,yBAAwB48C,SAAA,CAAC,UAAQs9Y,EAAYvvZ,EAAKumV,cAEjEg9C,EAAAA,GAAAA,KAACg4B,GAAW,CACVxqb,IAAK,EACLsb,aAAc2T,EAAKgmV,SACnBl3I,SAAWpiP,GAAUsxc,EAAoBtxc,GACzC2I,UAAU,UAEZkua,EAAAA,GAAAA,KAACtrO,GAAM,CACLnjM,KAAK,OACLirM,MAAMwjO,EAAAA,GAAAA,KAACw5B,GAAY,IACnB96X,QAASA,KACP67X,EAAqB99Z,EAAKqmV,WAC1Bu3E,GAAkB,EAAK,EAEzBvoc,UAAU,oBAEZkua,EAAAA,GAAAA,KAACtrO,GAAM,CACLnjM,KAAK,OACLirM,MAAMwjO,EAAAA,GAAAA,KAAC05B,GAAc,IACrBh7X,QAASA,KAAMs8X,OA7GTl4E,EA6GsBrmV,EAAKqmV,eA5G/C63E,EAAqB73E,GADDA,KA6GsC,EAC5ChxX,UAAU,mBAzBJ2qC,EAAKqmV,cA6BjBk9C,EAAAA,GAAAA,KAAC96J,GAAO,CAACr1Q,MAAO,CAAEk9B,YAAa,UAE/BgzY,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,yCAAwC48C,SAAA,EACrDqxX,EAAAA,GAAAA,MAAA,MAAIjua,UAAU,kDAAiD48C,SAAA,CAAC,gBAAcs9Y,EAAY6O,OAC1F76B,EAAAA,GAAAA,KAACtrO,GAAM,CAAC9nL,KAAK,QAAQ8xD,QA3GDu8X,KAC9Bd,GAAmB,GACnB1ib,YAAW,KACT,MAAMirW,EAASL,aAAahiR,QAAQ,QAC9BwjR,EAAe/vX,KAAKC,MAAMsuX,aAAahiR,QAAQ,aAC/C66V,EAAar3E,EAAeA,EAAas3E,sBAAwB,KAE9C,IAArBlB,EAAUvuc,QACZ22X,aAAa/hR,WAAW,QAMxBsxH,EAHG8wJ,GAAWw4E,EAGL,YAFA,YAIXf,GAAmB,EAAM,GACxB,IAAK,EA0FyDroc,UAAU,2CAA2CyqI,QAAS29T,EAAgBxrZ,SAAC,+BAK1IqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,kFAAiF48C,SAAA,EACxGsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,sCAAqC48C,SAAC,wBAEnD6tF,GACCyjS,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,YAAW48C,UACxBqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,2DAA0D48C,SAAA,EACvEsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,2CACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,mCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,wCAInBkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,YAAW48C,SACvBosZ,EAAeljc,KAAI,CAACw9V,EAAS36V,KAC5Bula,EAAAA,GAAAA,KAAA,OAEElua,UAAU,sJACV4sE,QAASA,KAEPkzJ,EAAS,YAAYwjI,EAAQ2tB,YAAY,EACzCr0U,UAEFqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,0BAAyB48C,SAAA,EACtCsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,wEAAuE48C,SACnFksZ,EAAYxlG,EAAQ6qE,iBAEvBF,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EACEsxX,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,kDAAiD48C,SAAE0mT,EAAQyqE,eACxEG,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,uBAAsB48C,SAAEs9Y,EAAY52F,EAAQ4tB,UACzDg9C,EAAAA,GAAAA,KAACtrO,GAAM,CACnBnjM,KAAK,OACLmtE,QAAU3mD,IACRA,EAAEojC,kBAEFy2K,EAAS,YAAYwjI,EAAQ2tB,YAAY,EAE3CjxX,UAAU,qCAAoC48C,SAC/C,gBAtBc0mT,EAAQ2tB,WAAatoX,cAoC9Bula,EAAAA,GAAAA,KAACo7B,GAAe,CACdh3M,QAASg2M,EACT/3G,QAASA,IAAMg4G,GAAkB,GACjCv3E,UAAWw3E,EACXV,gBAAiBY,EACjBX,SAzLmBwB,KACnBrB,GACFllY,EAASmuT,GAAY+2E,GACvB,KAyLEh6B,EAAAA,GAAAA,KAACv/G,GAAK,CACJnqR,MAAM,mBACN8tN,QAA+B,OAAtBs2M,EACTr5G,KArLgBi6G,KAChBZ,IACF5lY,EAASquT,GAAe,CAAET,OAAQs3E,EAAmBl3E,UAAW43E,KAChEC,EAAqB,MACvB,EAkLI75G,SAAUA,IAAM65G,EAAqB,MAAMjsZ,UAE3CsxX,EAAAA,GAAAA,KAAA,KAAAtxX,SAAG,kEAED,EC/NJi1U,GAAergX,iCAGRi4b,GAAoBv4F,GAC/B,4BACAljK,MAAAtqD,EAAAyxB,KAA8C,IAAvC,KAAE/xK,EAAI,GAAEG,GAAImgJ,GAAE,gBAAE4uN,GAAiBn9L,EACtC,IAIE,aAHuBm6M,GAAMrpX,IAC3B,GAAG4rX,4BAAsCzuX,KAAQG,MAEnCyR,IAClB,CAAE,MAAO1R,GAAQ,IAAD0uX,EAEd,OADAn+V,QAAQvwB,MAAM,iCAAkCA,GACzCgvW,GACS,QAAd0f,EAAA1uX,EAAMyxC,gBAAQ,IAAAi9U,OAAA,EAAdA,EAAgBh9W,OAAQ,iCAE5B,KAIS00b,GAAgBx4F,GAC3B,wBACAljK,MAAA6qD,EAAAx0B,KAGM,IAFJ,OAAEslO,EAAM,UAAEC,EAAS,WAAER,EAAU,YAAES,EAAW,eAAEC,EAAc,qBAAGC,EAAoB,oBAAEC,GAAqBnxM,GAC1G,gBAAEy5G,GAAiBjuI,EAEnB,IAEE,MAAMtkK,EAAU,CACd4pY,OAAQA,EACRC,UAAWA,EACXR,WAAYA,EACZS,YAAaA,EACbC,eAAgBA,EAChBC,qBAAsBA,EACtBC,oBAAqBA,GAUvB,aANuB16E,GAAMrzM,KAC3B,GAAG41M,0BACH9xT,IAIc/qD,IAClB,CAAE,MAAO1R,GAAQ,IAAD4uX,EAEd,OAAO5f,GACS,QAAd4f,EAAA5uX,EAAMyxC,gBAAQ,IAAAm9U,OAAA,EAAdA,EAAgBl9W,OAAQ,2BAE5B,KAISi1b,GAAwB/4F,GACnC,uCACAljK,MAAA02B,EAAAQ,KAA0D,IAAnD,KAAE9hO,EAAI,GAAEG,EAAE,WAAE6lc,GAAY1kO,GAAE,gBAAE4tI,GAAiBptI,EAClD,IASE,aARuBoqJ,GAAMrpX,IAC3B,GAAG4rX,8BACH,CACEz1J,OAAQ,CAAEh5N,OAAMG,KAAI6lc,iBAKRp0b,MAAQ,EAC1B,CAAE,MAAO1R,GAAQ,IAAD+kb,EAId,OAHAx0Z,QAAQvwB,MAAM,qCAAsCA,GAG7CgvW,GACS,QAAd+1E,EAAA/kb,EAAMyxC,gBAAQ,IAAAszY,OAAA,EAAdA,EAAgBrza,OAAQ1R,EAAM2kE,SAAW,qCAE7C,KAISiiY,GAA0Bh5F,GACrC,kCACAljK,MAAAm4B,EAAA0hF,KAAuE,IAAhE,KAAEzkT,EAAI,GAAEG,EAAE,wBAAE4mc,GAAyBhkO,GAAE,gBAAEmsI,GAAiBzqD,EAC/D,IAOE,aANuBynE,GAAMrpX,IAC3B,GAAG4rX,gCACH,CACEz1J,OAAQ,CAAEh5N,OAAMG,KAAI4mc,8BAGRn1b,IAClB,CAAE,MAAO1R,GAAQ,IAADilb,EAEd,OADA10Z,QAAQvwB,MAAM,mCAAoCA,GAC3CgvW,GACS,QAAdi2E,EAAAjlb,EAAMyxC,gBAAQ,IAAAwzY,OAAA,EAAdA,EAAgBvza,OAAQ,mCAE5B,KAGSo1b,GAAwBl5F,GACnC,gCACAljK,MAAAi6G,EAAAK,KAAwD,IAAjD,UAAE+hJ,EAAS,QAAEC,GAASriJ,GAAE,gBAAEqqD,GAAiBhqD,EAChD,IACEz0R,QAAQyxB,IAAI,4CAA6C+kZ,GACzDx2a,QAAQyxB,IAAI,0CAA2CglZ,GAEvD,MAAMv1Z,QAAiBu6U,GAAMrzM,KAC3B,GAAG41M,kCAA4Cw4E,KAAaC,KAG9D,IAAKv1Z,EAAS//B,KACZ,MAAM,IAAI7Y,MAAM,2BAGlB,OAAO44C,EAAS//B,IAClB,CAAE,MAAO1R,GAAQ,IAAD0lb,EAEd,OADAn1Z,QAAQvwB,MAAM,kCAAmCA,GAC1CgvW,GACS,QAAd02E,EAAA1lb,EAAMyxC,gBAAQ,IAAAi0Y,OAAA,EAAdA,EAAgBh0a,OAAQ,oCAE5B,KAISu1b,GAAsBr5F,GACjC,8BACAljK,MAAOpkL,EAAC4gb,KAA2B,IAAzB,gBAAEl4F,GAAiBk4F,EAC3B,IAIE,aAHuBl7E,GAAMrpX,IAC3B,GAAG4rX,gCAEW78W,IAClB,CAAE,MAAO1R,GAAQ,IAAD2lb,EACd,OAAO32E,GACS,QAAd22E,EAAA3lb,EAAMyxC,gBAAQ,IAAAk0Y,OAAA,EAAdA,EAAgBj0a,OAAQ,kCAE5B,KAISy1b,GAAsBv5F,GACjC,8BACAljK,MAAO08P,EAAOC,KAA2B,IAAzB,gBAAEr4F,GAAiBq4F,EACjC,IAIE,aAHuBr7E,GAAMrpX,IAC3B,GAAG4rX,0BAAoC64E,MAEzB11b,IAClB,CAAE,MAAO1R,GAAQ,IAADsnc,EACd,OAAOt4F,GACS,QAAds4F,EAAAtnc,EAAMyxC,gBAAQ,IAAA61Z,OAAA,EAAdA,EAAgB51b,OAAQ,8BAE5B,KAIS61b,GAAsB35F,GACjC,8BACAljK,MAAA88P,EAAAC,KAAmI,IAA5H,UAAEnB,EAAS,QAAEoB,EAAO,cAAEC,EAAa,uBAAEC,EAAsB,UAAEC,EAAS,YAAEC,EAAW,WAAGC,GAAWP,GAAE,gBAAEx4F,GAAiBy4F,EAC3H,IAkBE,aAjBuBz7E,GAAMrzM,KAC3B,GAAG41M,gCAA0C+3E,IAC7C,CACEyB,aACAJ,gBACAC,yBACAtB,YACAoB,UACAI,cACAD,aAEF,CACE3tF,QAAS,CACP,eAAgB,uBAINxoW,IAClB,CAAE,MAAO1R,GAAQ,IAADgoc,EACd,OAAOh5F,GACS,QAAdg5F,EAAAhoc,EAAMyxC,gBAAQ,IAAAu2Z,OAAA,EAAdA,EAAgBt2b,OAAQ,kCAE5B,KAMSu2b,GAAer6F,GAC1B,uBACAljK,MAAAw9P,EAAAC,KAGM,IAFJ,WAAErC,EAAU,UAAEsC,EAAS,QAAEV,EAAO,YAAEI,EAAW,cAAEO,EAAa,uBAAEC,EAAsB,UAAET,GAAUK,GAChG,gBAAEl5F,GAAiBm5F,EAEnB,IAEE,MAAMtmF,EAAc,CAElBikF,aACAsC,YACAV,UACAI,cAAYO,gBAAcC,yBAAwBT,aAQpD,aAHuB77E,GAAMrzM,KAAK,GAAG41M,wBAAmC1M,IAGxDnwW,IAClB,CAAE,MAAO1R,GAAQ,IAADuoc,EAEd,OAAOv5F,GACS,QAAdu5F,EAAAvoc,EAAMyxC,gBAAQ,IAAA82Z,OAAA,EAAdA,EAAgB72b,OAAQ,iCAE5B,KAIS82b,GAA4B56F,GACvC,oCACAljK,MAAO09P,EAASK,KAA2B,IAAzB,gBAAEz5F,GAAiBy5F,EACnC,IAIE,aAHuBz8E,GAAMrpX,IAC3B,GAAG4rX,oCAA8C65E,MAEnC12b,IAClB,CAAE,MAAO1R,GAAQ,IAAD0oc,EACd,OAAO15F,GACS,QAAd05F,EAAA1oc,EAAMyxC,gBAAQ,IAAAi3Z,OAAA,EAAdA,EAAgBh3b,OAAQ,mCAE5B,KAKEi3b,GAAan1F,GAAY,CAC7BpwW,KAAM,QACNytW,aAAc,CACZr9T,OAAQ,GACRo1Z,WAAY,GACZC,gBAAiB,GAEjBC,gBAAiBpqc,KAAKC,MAAMsuX,aAAahiR,QAAQ,qBAAuB,CAAC,EACzE89V,oBAAqBrqc,KAAKC,MAAMsuX,aAAahiR,QAAQ,yBAA2B,CAAC,EACjFk8B,QAAS,CACP3zF,QAAQ,EACRq1Z,iBAAiB,EACjBG,gBAAgB,GAElBhpc,MAAO,CACLwzC,OAAQ,KACRy1Z,UAAW,KACXJ,gBAAiB,KACjBG,eAAgB,OAGpBvlG,SAAU,CAERylG,kBAAoB1pc,IAClBytX,aAAa/hR,WAAW,mBACxB+hR,aAAa/hR,WAAW,uBACxB+hR,aAAa/hR,WAAW,cACxB1rG,EAAMspc,gBAAkB,KACxBtpc,EAAMupc,oBAAsB,KAC5Bvpc,EAAMg0C,OAAS,EAAE,EAInB21Z,oBAAqBA,CAAC3pc,EAAO8/D,KAC3B,MAAMwpY,EAAkBxpY,EAAO7C,QAC/Bj9D,EAAMspc,gBAAkBA,EAGxB77E,aAAajiR,QAAQ,kBAAmBtsG,KAAKE,UAAUkqc,GAAiB,EAI1EM,mBAAoBA,CAAC5pc,EAAO8/D,KAC1B,MAAMypY,EAAsBzpY,EAAO7C,QACnCj9D,EAAMupc,oBAAsBA,EAG5B97E,aAAajiR,QAAQ,sBAAuBtsG,KAAKE,UAAUmqc,GAAqB,EAIlFM,gBAAiBA,CAAC7pc,EAAO8/D,KACvB,MAAM,OAAEgqY,EAAM,QAAElC,GAAY9nY,EAAO7C,QAC7B8sY,EAAe7qc,KAAKC,MAAMsuX,aAAahiR,QAAQ,gBAAkB,GAGjEu+V,EAAqBD,EAAa7ic,WACrCm1C,GAAUA,EAAMytZ,SAAWA,GAAUztZ,EAAMurZ,UAAYA,KAG9B,IAAxBoC,EACFD,EAAaC,GAAsBlqY,EAAO7C,QAE1C8sY,EAAavyc,KAAKsoE,EAAO7C,SAI3Bj9D,EAAMg0C,OAAS+1Z,EACft8E,aAAajiR,QAAQ,aAActsG,KAAKE,UAAU2qc,GAAc,EAIlEE,kBAAmBA,CAACjqc,EAAO8/D,KACzB,MAAMgqY,EAAShqY,EAAO7C,QAChB8sY,EAAe7qc,KAAKC,MAAMsuX,aAAahiR,QAAQ,gBAAkB,GACvEzrG,EAAMg0C,OAAS+1Z,EAAajjc,QAAQu1C,GAAUA,EAAMytZ,SAAWA,GAAO,EAIxEI,YAAclqc,IACZA,EAAMg0C,OAAS,GACfh0C,EAAMopc,WAAa,GACnBppc,EAAMqpc,gBAAkB,GACxBrpc,EAAM2nI,QAAU,CACd3zF,QAAQ,EACRq1Z,iBAAiB,EACjBG,gBAAgB,GAElBxpc,EAAMQ,MAAQ,CACZwzC,OAAQ,KACRy1Z,UAAW,KACXJ,gBAAiB,KACjBG,eAAgB,KACjB,GAGLr4F,cAAgB7D,IACdA,EACCC,QAAQo5F,GAAkBhqY,SAAU38D,IACnCA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQo5F,GAAkBr4V,WAAW,CAACtuG,EAAO8/D,KAC5C9/D,EAAMg0C,OAAS8rB,EAAO7C,QACtBj9D,EAAM2nI,SAAU,CAAK,IAEtB4lO,QAAQo5F,GAAkBp4V,UAAWvuG,IACpCA,EAAM2nI,SAAU,CAAK,IAEtB4lO,QAAQ+5F,GAAsB3qY,SAAU38D,IACvCA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQ+5F,GAAsBh5V,WAAW,CAACtuG,EAAO8/D,KAChD9/D,EAAM2nI,SAAU,EAChB,MAAMwiU,EAAerqY,EAAO7C,QACtBp3D,EAAQ7F,EAAMg0C,OAAO9sC,WACxBm1C,GAAUA,EAAMyqZ,YAAcqD,EAAarD,aAE/B,IAAXjhc,IACF7F,EAAMg0C,OAAOnuC,GAASskc,EACxB,IAED58F,QAAQ+5F,GAAsB/4V,UAAU,CAACvuG,EAAO8/D,KAC/C9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,SAAW,gCAAgC,IAErEooS,QAAQk6F,GAAoBn5V,WAAW,CAACtuG,EAAO8/D,KAC9C9/D,EAAM2nI,QAAQ8hU,WAAY,EAC1Bzpc,EAAMypc,UAAY3pY,EAAO7C,OAAO,IAEjCswS,QAAQk6F,GAAoBl5V,UAAU,CAACvuG,EAAO8/D,KAC7C9/D,EAAM2nI,QAAQ8hU,WAAY,EAC1Bzpc,EAAMQ,MAAMipc,UAAY3pY,EAAO7C,OAAO,IAEvCswS,QAAQq5F,GAAcjqY,SAAU38D,IAC/BA,EAAM2nI,QAAU3nI,EAAM2nI,SAAW,CAAC,EAClC3nI,EAAM2nI,QAAQ3zF,QAAS,EACvBh0C,EAAMQ,MAAQR,EAAMQ,OAAS,CAAC,EAC9BR,EAAMQ,MAAMwzC,OAAS,IAAI,IAE1Bu5T,QAAQq5F,GAAct4V,WAAW,CAACtuG,EAAO8/D,KACxC9/D,EAAM2nI,QAAQ3zF,QAAS,EACvBh0C,EAAMg0C,OAASx9C,MAAMqR,QAAQi4D,EAAO7C,SAAW6C,EAAO7C,QAAU,EAAE,IAEnEswS,QAAQq5F,GAAcr4V,UAAU,CAACvuG,EAAO8/D,KACvC9/D,EAAM2nI,QAAQ3zF,QAAS,EACvBh0C,EAAMQ,MAAMwzC,OAAS8rB,EAAO7C,OAAO,IAGpCswS,QAAQk7F,GAAa9rY,SAAU38D,IAC9BA,EAAM2nI,QAAQ0hU,iBAAkB,EAChCrpc,EAAMQ,MAAM6oc,gBAAkB,IAAI,IAEnC97F,QAAQk7F,GAAan6V,WAAW,CAACtuG,EAAO8/D,KACvC9/D,EAAM2nI,QAAQ0hU,iBAAkB,EAChCrpc,EAAMqpc,gBAAkBvpY,EAAO7C,OAAO,IAEvCswS,QAAQk7F,GAAal6V,UAAU,CAACvuG,EAAO8/D,KACtC9/D,EAAM2nI,QAAQ0hU,iBAAkB,EAChCrpc,EAAMQ,MAAM6oc,gBAAkBvpY,EAAO7C,OAAO,IAG7CswS,QAAQy7F,GAA0B16V,WAAW,CAACtuG,EAAO8/D,KAEhDA,EAAO7C,QACTj9D,EAAMqpc,gBAAkBvpY,EAAO7C,QAE/Bj9D,EAAMqpc,gBAAkB,IAC1B,IAED97F,QAAQy7F,GAA0Bz6V,UAAU,CAACvuG,EAAO8/D,KACnD9/D,EAAMQ,MAAQs/D,EAAO7C,OAAO,IAG7BswS,QAAQw6F,GAAoBprY,SAAU38D,IACrCA,EAAM2nI,QAAQ6hU,gBAAiB,EAC/Bxpc,EAAMQ,MAAMgpc,eAAiB,IAAI,IAElCj8F,QAAQw6F,GAAoBz5V,WAAW,CAACtuG,EAAO8/D,KAC9C9/D,EAAM2nI,QAAQ6hU,gBAAiB,EAC/Bxpc,EAAMwpc,eAAiB1pY,EAAO7C,OAAO,IAEtCswS,QAAQw6F,GAAoBx5V,UAAU,CAACvuG,EAAO8/D,KAC7C9/D,EAAM2nI,QAAQ6hU,gBAAiB,EAC/Bxpc,EAAMQ,MAAMgpc,eAAiB1pY,EAAO7C,OAAO,IAE5CswS,QAAQo6F,GAAoBhrY,SAAU38D,IACrCA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQo6F,GAAoBr5V,WAAW,CAACtuG,EAAO8/D,KAC9C9/D,EAAM2nI,SAAU,EAChB3nI,EAAMopc,WAAatpY,EAAO7C,OAAO,IAElCswS,QAAQo6F,GAAoBp5V,UAAU,CAACvuG,EAAO8/D,KAC7C9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAO7C,SAAW,6BAA6B,IAG9DswS,QAAQ45F,GAAsBxqY,SAAU38D,IACvCA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQ45F,GAAsB74V,WAAW,CAACtuG,EAAO8/D,KAChD9/D,EAAM2nI,SAAU,EAChB3nI,EAAMg0C,OAAS8rB,EAAO7C,SAAW,EAAE,IAEpCswS,QAAQ45F,GAAsB54V,UAAU,CAACvuG,EAAO8/D,KAC/C9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,OAAO,IAEnCooS,QAAQ65F,GAAwBzqY,SAAU38D,IACzCA,EAAM2nI,QAAQ3zF,QAAS,EACvBh0C,EAAMQ,MAAMwzC,OAAS,IAAI,IAE1Bu5T,QAAQ65F,GAAwB94V,WAAW,CAACtuG,EAAO8/D,KAClD9/D,EAAM2nI,QAAQ3zF,QAAS,EACvBh0C,EAAMg0C,OAAS8rB,EAAO7C,OAAO,IAE9BswS,QAAQ65F,GAAwB74V,UAAU,CAACvuG,EAAO8/D,KAGjD9/D,EAAM2nI,QAAQ3zF,QAAS,CAAK,GAC5B,KAIO61Z,gBAAe,GAAEI,kBAAiB,GAAEC,YAAW,GAAEP,oBAAmB,GAAEC,mBAAkB,IAAIT,GAAW/4W,QACtH,GAAe+4W,GAAkB,QCldjC,IAAIiB,GAAqB,SAA4Bh/K,GACnD,GAAI18C,MAAexzO,OAAO+B,SAASk0D,gBAAiB,CAClD,IAAIk5Y,EAAgB7zc,MAAMqR,QAAQujR,GAAaA,EAAY,CAACA,GACxDj6N,EAAkBj2D,OAAO+B,SAASk0D,gBACtC,OAAOk5Y,EAActjc,MAAK,SAAUnD,GAClC,OAAOA,KAAQutD,EAAgBl2D,KACjC,GACF,CACA,OAAO,CACT,EAUO,SAASqvc,GAAel/K,EAAWm/K,GACxC,OAAK/zc,MAAMqR,QAAQujR,SAA6BxoR,IAAf2nc,EAG1BH,GAAmBh/K,GAbF,SAA6BA,EAAW72R,GAChE,IAAK61c,GAAmBh/K,GACtB,OAAO,EAET,IAAIvkD,EAAM5pO,SAASf,cAAc,OAC7B62C,EAAS8zL,EAAI5rO,MAAMmwR,GAEvB,OADAvkD,EAAI5rO,MAAMmwR,GAAa72R,EAChBsyO,EAAI5rO,MAAMmwR,KAAer4O,CAClC,CAGWy3Z,CAAoBp/K,EAAWm/K,EAG1C,CCvBA,SADoB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,iLAAqL,KAAQ,QAAS,MAAS,YCM1W,IAAIE,GAAgB,SAAuBj9Z,EAAON,GAChD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM8iQ,KAEV,EAOA,SAJ2BlhP,EAAAA,WAAiBihP,ICU/BE,GAAiBrsV,IAC5B,MACM7sF,EAAS,CAAC,EAShB,MAViB,CAAC,EAAG,EAAG,EAAG,EAAG,GAErBh7B,SAAQm0c,IACfn5a,EAAO,YACFm5a,oBACKA,mBACAA,yBACLA,WArBaC,EAAC93a,EAAUE,EAAY2D,EAAO0nF,KAClD,MAAM,kBACJ8kO,EAAiB,iBACjB3/C,GACEnlL,EACJ,MAAO,CACL6V,aAAcivN,EACdxsT,QACA4B,WAAYirQ,EACZ1wQ,WACAE,aACD,EAWM43a,CAAcvsV,EAAM,kBAAkBssV,KAAiBtsV,EAAM,oBAAoBssV,KAAiBtsV,EAAM+jL,iBAAkB/jL,EAAM,IAEhI7sF,CAAM,EAEFq5a,GAAgBxsV,IAC3B,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,QAAS3iH,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG42R,GAAcr3K,IAAS,CAC9D0hC,WAAY,OACZ,CAAC,iBAAiB6yI,cAA0B,CAC1Cj8P,MAAO0nF,EAAM42K,kBACbvlQ,OAAQ,cACR,oBAAqB,CACnBiH,MAAO0nF,EAAM42K,mBAEf,WAAY,CACVplD,cAAe,WAItB,EAEUyhD,GAAiBjzK,IAAS,CACrCniG,KAAM,CACJ5kB,OAAQ,UACR2wS,cAAe,QACf8lC,aAAc,cACdj7S,SAAU,MACV2F,WAAY4lF,EAAM83K,eAClBjlK,WAAY,2BACZsZ,OAAQ,qCACRusJ,aAAc,GAEhB+zK,IAAK,CACHxzc,OAAQ,UACR2wS,cAAe,QACf8lC,aAAc,eACdj7S,SAAU,MACV2F,WAAY4lF,EAAM83K,eAClBjlK,WAAY,4BACZsZ,OAAQ,qCACR3yG,kBAAmB,EACnBk/P,aAAc,GAEhBt3I,KAAM,CACJxoH,QAAS,EAET91B,gBAAiB+8K,GAAK,IAExB,SAAU,CACRzmD,eAAgB,YAChBszU,sBAAuB,QAEzB,SAAU,CACRtzU,eAAgB,gBAElBuzU,OAAQ,CACNzya,WAAY,KAGd,SAAU,CACR6/R,aAAc,EACdC,YAAa,QACbphS,QAAS,EACTqqC,GAAI,CACF82P,aAAc,SACdC,YAAa,EACbpwB,cAAe,QACf8lC,aAAc,IAGlBz7P,GAAI,CACFwhD,cAAe,SACfxhD,GAAI,CACFwhD,cAAe,SAGnBtiD,GAAI,CACFsiD,cAAe,WAGjB,kBAAmB,CACjBx8H,OAAQ,SAEV2hL,IAAK,CACHhiJ,QAAS,cACT8/G,WAAY,WACZk7K,SAAU,aACV/gM,WAAY,2BACZsZ,OAAQ,qCACRusJ,aAAc,EACdt+P,WAAY4lF,EAAM83K,eAElBj6Q,KAAM,CACJhgB,QAAS,SACT5E,OAAQ,EACR2/B,QAAS,EACTnE,SAAU,UACV2F,WAAY,UACZy4F,WAAY,cACZsZ,OAAQ,IAGZygU,WAAY,CACVhjK,cAAe,UACf8lC,aAAc,EACd5kC,kBAAmB,qCACnB9nS,QAAS,OAGA6pc,GAAoB7sV,IAC/B,MAAM,aACJu0K,EAAY,UACZkR,GACEzlL,EACE8sV,EAAarnK,EACnB,MAAO,CACL,iBAAkB,CAChB/iS,SAAU,WACV,OAAQ,CACNmoS,iBAAkB7qL,EAAMq6J,KAAKr6J,EAAMylL,WAAW/1E,KAAK,GAAGp/C,QACtD36C,UAAW3V,EAAMq6J,KAAKyyL,GAAYp9O,KAAK,GAAGp/C,QAC1Cz6C,aAAc,cAAcx7H,GAAKyyc,OAEnC,CAAC,GAAGv4K,0BAAsC,CACxC7xR,SAAU,WACVioS,eAAgB3qL,EAAMq6J,KAAKr6J,EAAMomL,UAAUv5Q,IAAI,GAAGyjJ,QAClD0tN,cAAeh+Q,EAAMomL,SACrB9tQ,MAAO0nF,EAAMikL,qBAEb/pQ,WAAY,SACZzF,SAAUurF,EAAMvrF,SAChB2C,UAAW,SACXo6M,cAAe,QAEjBs5J,SAAU,CACR7xY,OAAQ,cAER8zc,cAAe,OACf/zc,OAAQ,QAGb,EAEUg0c,GAAoBhtV,IAAS,CACxC,CAAC,GAAGA,EAAMu0K,6BAA8B,CACtC,sCAGW,CACTj8P,MAAO0nF,EAAMw3K,eAGjB,CAAC,GAAGx3K,EAAMu0K,+BAAgC,CACxCmmC,kBAAmB,KC3LjBuyI,GAAqBjtV,IACzB,MAAM,aACJu0K,EAAY,eACZ24K,GACEltV,EACJ,MAAO,CACL,CAACu0K,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC5I63B,MAAO0nF,EAAMk2K,UACb/8K,UAAW,aACXxkF,WAAYqrF,EAAMrrF,WAClB,CAAC,IAAI4/P,eAA2B,CAC9Bj8P,MAAO0nF,EAAMikL,sBAEf,CAAC,IAAI1P,aAAyB,CAC5Bj8P,MAAO0nF,EAAMw3K,cAEf,CAAC,IAAIjD,aAAyB,CAC5Bj8P,MAAO0nF,EAAMy3K,cAEf,CAAC,IAAIlD,YAAwB,CAC3Bj8P,MAAO0nF,EAAM03K,WACb,sBAAuB,CACrBp/P,MAAO0nF,EAAM6/K,kBAEf,WAAY,CACVvnQ,MAAO0nF,EAAM4/K,kBAGjB,CAAC,IAAIrL,cAA0B,CAC7Bj8P,MAAO0nF,EAAM42K,kBACbvlQ,OAAQ,cACRqwH,WAAY,QAEd,qCAGI,CACF7rB,aAAc,QAEfw2U,GAAersV,IAAS,CACzB,CAAC,iBACOu0K,mBACAA,mBACAA,mBACAA,mBACAA,aACJ,CACF5+J,UAAWu3U,GAEb,qGASM,CACJ,uFAMI,CACFv3U,UAAWu3U,MAGbj6K,GAAejzK,IAASwsV,GAAcxsV,IAAS,CAEjD,CAAC,aACGu0K,sBACAA,wBACAA,oBACAA,kBACAl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG42R,GAAcr3K,IAAS,CACzD06M,kBAAmB16M,EAAMmmL,cAEzB0mK,GAAkB7sV,IAASgtV,GAAkBhtV,ID+GpB,CAC/B,yCAGI,CACFniH,QAAS,eACTu3B,SAAU,QAEZ,yBAA0B,CACxBsjH,WAAY,SACZ/1I,SAAU,SACVozR,aAAc,WAEd,YAAa,CACX/7P,cAAe,UAEjB,SAAU,CACR01S,aAAc,EACdt6S,SAAU,qBACVv3B,QAAS,eACT8E,SAAU,SACVozR,aAAc,WACd/7P,cAAe,SAEfyxM,UAAW,gBAGf,2BAA4B,CAC1B5tO,QAAS,cACT8E,SAAU,SACV8lR,gBAAiB,EACjB0kL,gBAAiB,cC9I+D,CAC9E,QAAS,CACPr4U,UAAW,SAGhB,EAOH,GAAeigK,GAAc,cAAc/0K,GAAS,CAACitV,GAAmBjtV,MALnC2pL,KAAA,CACnCujK,eAAgB,QAChBpoH,kBAAmB,YCwBrB,GA1GiB51S,IACf,MAAM,UACJyhM,EACA,aAAc2xL,EAAS,UACvB1ja,EAAS,MACTjC,EAAK,UACLm4H,EAAS,UACT9pC,EAAS,SACTk9G,GAAW,EAAI,MACfjyM,EAAK,OACLm3c,EAAM,SACNx/G,EAAQ,MACRy/G,EAAK,UACLpsO,EAAS,UACTqsO,EAAyBpiP,EAAAA,cAAoBihP,GAAe,OAC1Dj9Z,EACEN,EAAMs8K,EAAAA,OAAa,MACnBqiP,EAAgBriP,EAAAA,QAAa,GAC7BsiP,EAActiP,EAAAA,OAAa,OAC1B5tL,EAASu0W,GAAc3mL,EAAAA,SAAej1N,GAC7Ci1N,EAAAA,WAAgB,KACd2mL,EAAW57Y,EAAM,GAChB,CAACA,IACJi1N,EAAAA,WAAgB,KACd,IAAIv3L,EACJ,GAA2B,QAAtBA,EAAKib,EAAItR,eAA4B,IAAP3J,OAAgB,EAASA,EAAG+2W,kBAAmB,CAChF,MAAM,SACJz/D,GACEr8R,EAAItR,QAAQotW,kBAChBz/D,EAASrgT,QACT,MAAM,OACJpyB,GACEyyU,EAASh1U,MACbg1U,EAASyzD,kBAAkBlmY,EAAQA,EACrC,IACC,IACH,MAoBMi1c,EAAgBA,KACpBL,EAAO9va,EAAQljB,OAAO,GAwBjBiyR,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3C+8N,EAAoB7iP,KAAW8lB,EAAW,GAAGA,iBAA0B,CAC3E,CAAC,GAAGA,SAAgC,QAAd77G,EACtB,CAAC,GAAG67G,KAAa1P,OAAgBA,GAChCriO,EAAW4lR,EAAQ8nB,GACtB,OAAOD,EAAwBnhF,EAAAA,cAAoB,MAAO,CACxDtsN,UAAW8uc,EACX/wc,MAAOA,GACOuuN,EAAAA,cAAoBogL,GAAU,CAC5C18V,IAAKA,EACLo8C,UAAWA,EACX/0F,MAAOqnC,EACP+6M,SAzDe/1F,IACf,IAAI,OACFlgJ,GACEkgJ,EACJuvP,EAAWzvY,EAAOnM,MAAM8U,QAAQ,UAAW,IAAI,EAsD/C26O,UA9CgB3xE,IAChB,IAAI,QACFvrH,GACEurH,EAEAw5R,EAAcjwa,UAClBkwa,EAAYlwa,QAAUkrB,EAAO,EAyC7B+4U,QApCc9pI,IACd,IAAI,QACFjvM,EAAO,QACPqC,EAAO,OACPE,EAAM,QACNC,EAAO,SACPF,GACE2sM,EAEA+1M,EAAYlwa,UAAYkrB,GAAW+kZ,EAAcjwa,SAAWutB,GAAWE,GAAUC,GAAWF,IAG5FtC,IAAY4yL,GAAQI,OACtBiyN,IACU,OAAVJ,QAA4B,IAAVA,GAA4BA,KACrC7kZ,IAAY4yL,GAAQU,KAC7B8xG,IACF,EAoBA+zC,mBAtDyBA,KACzB4rE,EAAcjwa,SAAU,CAAI,EAsD5BskW,iBApDuBA,KACvB2rE,EAAcjwa,SAAU,CAAK,EAoD7BihW,OApBaA,KACbkvE,GAAe,EAoBf,aAAcnrC,EACdvuY,KAAM,EACNm0K,SAAUA,IACM,OAAdolQ,EAAqBp/V,GAAao/V,EAAW,CAC/C1uc,UAAW,GAAG+xO,2BACX,MAAM,4BCjHb,IAAI/gI,GAAsC,SAAUpgE,EAASqgE,EAAY54F,EAAG64F,GAM1E,OAAO,IAAK74F,IAAMA,EAAI5W,WAAU,SAAUM,EAAS6lB,GACjD,SAASwpF,EAAU/5G,GACjB,IACEwhF,EAAKq4B,EAAUvkG,KAAKtV,GACtB,CAAE,MAAO4uB,KACP2B,EAAO3B,IACT,CACF,CACA,SAASorF,EAASh6G,GAChB,IACEwhF,EAAKq4B,EAAiB,MAAE75G,GAC1B,CAAE,MAAO4uB,KACP2B,EAAO3B,IACT,CACF,CACA,SAAS4yD,EAAKnvE,GApBhB,IAAerS,EAqBXqS,EAAOgU,KAAO3b,EAAQ2H,EAAOrS,QArBlBA,EAqBiCqS,EAAOrS,MApB9CA,aAAiBghB,EAAIhhB,EAAQ,IAAIghB,GAAE,SAAUtW,GAClDA,EAAQ1K,EACV,KAkB4DqB,KAAK04G,EAAWC,EAC5E,CACAx4B,GAAMq4B,EAAYA,EAAUp+F,MAAM89B,EAASqgE,GAAc,KAAKtkG,OAChE,GACF,EAKA,MA8CA,GA9CqB+2I,IACnB,IAAI,WACFqD,EAAU,SACVnqG,GACE8mG,EACJ,MAAO2jL,EAAQ0nI,GAAaziP,EAAAA,UAAe,IACpC0iP,EAAaC,GAAkB3iP,EAAAA,UAAe,GAC/C4iP,EAAY5iP,EAAAA,OAAa,MACzB6iP,EAAcA,KACdD,EAAUxwa,SACZ85B,aAAa02Y,EAAUxwa,QACzB,EAEI0wa,EAAc,CAAC,EACjBroT,EAAWrrJ,SACb0zc,EAAY1zc,OAASqrJ,EAAWrrJ,QAElC4wN,EAAAA,WAAgB,IAAM6iP,GAAa,IAuBnC,MAAO,CACL9nI,SACA2nI,cACApiY,QAxBcomK,IAAS/sN,GAAK+qF,QAAU,OAAQ,OAAQ,GAAQ,YAC9D,IAAIj8E,EACE,OAAN9O,QAAoB,IAANA,GAAwBA,EAAEukC,iBAClC,OAANvkC,QAAoB,IAANA,GAAwBA,EAAEojC,kBACxC4lZ,GAAe,GACf,IACE,MAAM36a,EAAkC,oBAApByyH,EAAWzyH,WAA4ByyH,EAAWzyH,OAASyyH,EAAWzyH,KAC1Fs/D,KAAKt/D,GCzDI,SAAgB+6a,GAE7B,OADgBnnc,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,UAC/CxC,IAAd2pc,GAAyC,OAAdA,GAA4B,GAClE/1c,MAAMqR,QAAQ0kc,GAAaA,EAAY,CAACA,EACjD,CDqDmBC,CAAO1yZ,GAAU,GAAMl/C,KAAK,KAAO,GAAI0xc,GACpDH,GAAe,GACfF,GAAU,GAEVI,IACAD,EAAUxwa,QAAU/Y,YAAW,KAC7Bopb,GAAU,EAAM,GACf,KAC0B,QAA5Bh6a,EAAKgyH,EAAW/D,cAA2B,IAAPjuH,GAAyBA,EAAGv8B,KAAKuuJ,EAAY9gI,EACpF,CAAE,MAAO3iB,GAEP,MADA2rc,GAAe,GACT3rc,CACR,CACF,MAKC,EE1EY,SAASisc,GAAgBC,EAAYC,GAClD,OAAOnjP,EAAAA,SAAc,KACnB,MAAMojP,IAAYF,EAClB,MAAO,CAACE,EAASjxc,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG4tc,GAAiBC,GAAiC,kBAAfF,EAA0BA,EAAa,MAAM,GAChI,CAACA,GACN,CCLA,MAOA,GAPoBn4c,IAClB,MAAM24C,GAAM+1B,EAAAA,EAAAA,aAAOrgE,GAInB,OAHA+/D,EAAAA,EAAAA,YAAU,KACRz1B,EAAItR,QAAUrnC,CAAK,IAEd24C,EAAItR,OAAO,ECepB,GApBwBixa,CAACliI,EAASmiI,EAAgBhzZ,KAAaipB,EAAAA,EAAAA,UAAQ,KACrD,IAAZ4nQ,EACK,CACLjpS,MAA0B,OAAnBora,QAA8C,IAAnBA,EAA4BA,EAAiBhzZ,IAGlEqzD,EAAAA,EAAAA,gBAAew9N,GACvB,CACLjpS,MAAOipS,GAGY,kBAAZA,EACFhvU,OAAOoD,OAAO,CACnB2iC,MAA0B,OAAnBora,QAA8C,IAAnBA,EAA4BA,EAAiBhzZ,GAC9E6wR,GAEE,CACLjpS,MAAOipS,IAER,CAACA,EAASmiI,EAAgBhzZ,IClB7B,IAAIwnP,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAkDA,SA3CgCmgM,EAAAA,YAAiB,CAACh8K,EAAON,KACvD,MACI+hM,UAAW2vC,EACXr/C,UAAWrzH,EAAY,UAAS,UAChChvG,EAAS,cACT0wQ,EAAa,cACbm/L,EAAa,SACbjzZ,EACAs5E,UAAW45U,EAAmB,MAC9B/xc,GACEuyC,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,YAAa,YAAa,gBAAiB,gBAAiB,WAAY,YAAa,WACzH,aACJixO,EACArrJ,UAAWgqS,EACXlga,UAAW80O,EACX/2O,MAAO83T,GACL/zC,GAAmB,cACjB5rJ,EAAoC,OAAxB45U,QAAwD,IAAxBA,EAAiCA,EAAsB5vC,EACnG9vL,EAAYy/N,EAAgB/mO,GAAW94L,EAAK6/Z,GAAiB7/Z,EAC7D+hM,EAAYwvC,EAAa,aAAcG,GAM7C,MAAO+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3Cg+N,EAAqB9jP,KAAW8lB,EAAW+C,EAAkB,CACjE,CAAC,GAAG/C,SAAgC,QAAd77G,GACrBl2H,EAAW0wQ,EAAekV,EAAQ8nB,GAC/Bz3C,EAAcx3P,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg0T,GAAe93T,GACnE,OAAO0vS,EAGPnhF,EAAAA,cAAoBt9G,EAAWvwG,OAAOoD,OAAO,CAC3C7B,UAAW+vc,EACXhyc,MAAOk4P,EACPjmN,IAAKogM,GACJmC,GAAY31L,GAAU,ICpD3B,SADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,8XAAkY,KAAQ,OAAQ,MAAS,YCMrjB,IAAIozZ,GAAe,SAAsB1/Z,EAAON,GAC9C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMulQ,KAEV,EAOA,SAJ2B3jP,EAAAA,WAAiB0jP,ICfrC,SAASV,GAAOluc,GACrB,OAAY,IAARA,EACK,EAAC,GAAO,GAEV9H,MAAMqR,QAAQvJ,GAAOA,EAAM,CAACA,EACrC,CACO,SAAS8uc,GAAQnxG,EAAKoxG,EAAaC,GACxC,OAAY,IAARrxG,QAAwBr5V,IAARq5V,EACXoxG,EAEFpxG,GAAOqxG,GAAWD,CAC3B,CA2BO,MAAME,GAAcjvc,GAAO,CAAC,SAAU,UAAUwH,gBAAgBxH,GCKvE,GAlCgBsiJ,IACd,IAAI,UACFquF,EAAS,OACTs1F,EAAM,OACN56S,EAAM,SACN6jb,EAAQ,SACRC,EAAQ,KACR7lQ,EAAI,SACJ4xC,EAAQ,OACRt5F,EACAvY,QAAS+lU,GACP9sT,EACJ,MAAM+sT,EAAenB,GAAOiB,GACtBG,EAAYpB,GAAO5kQ,IAEvB28H,OAAQspI,EACR/8W,KAAMg9W,GACO,OAAXnkb,QAA8B,IAAXA,EAAoBA,EAAS,CAAC,EAC/Cokb,EAAYxpI,EAASspI,EAAaC,EAClCE,EAAYZ,GAAQO,EAAappI,EAAS,EAAI,GAAIwpI,GAClDntC,EAAiC,kBAAdotC,EAAyBA,EAAYD,EAC9D,OAAoBvkP,EAAAA,cAAoBojF,GAAS,CAC/ClrQ,MAAOssa,GACOxkP,EAAAA,cAAoB,SAAU,CAC5C7sN,KAAM,SACNO,UAAWisN,KAAW,GAAG8lB,SAAkB,CACzC,CAAC,GAAGA,kBAA2Bs1F,EAC/B,CAAC,GAAGt1F,oBAA6Bu+N,IAEnC1jY,QAASo2E,EACT,aAAc0gR,EACdpnL,SAAUA,GACT+qF,EAAS6oI,GAAQQ,EAAU,GAAiBpkP,EAAAA,cAAoB6yM,GAAe,OAAO,GAAQ+wC,GAAQQ,EAAU,GAAIF,EAA0BlkP,EAAAA,cAAoB0oH,GAAiB,MAAqB1oH,EAAAA,cAAoB0jP,GAAc,OAAO,IAAO,EClCvPe,GAA2BzkP,EAAAA,YAAiB,CAAC5oE,EAAM1zG,KACvD,IAAI,MACFjyC,EAAK,SACL6+C,GACE8mG,EACJ,MAAMstT,EAAU1kP,EAAAA,OAAa,MAQ7B,OAPAA,EAAAA,oBAA0Bt8K,GAAK,KAAM,CACnCiha,SAAUA,KACR,MAAMp3T,EAAOm3T,EAAQtya,QACrB,OAAOm7G,EAAKjnC,aAAeinC,EAAK/mC,YAAY,EAE9C71E,UAAWA,IAAM+za,EAAQtya,QAAQo0E,iBAEfw5G,EAAAA,cAAoB,OAAQ,CAC9C,eAAe,EACft8K,IAAKgha,EACLjzc,MAAOU,OAAOoD,OAAO,CACnBiC,SAAU,QACV7E,QAAS,QACTnF,KAAM,EACNC,IAAK,EACL64O,cAAe,OACf1uO,gBAAiB,yBAChBnG,IACF6+C,EAAS,IAGd,SAASs0Z,GAAWC,EAAUj0b,GAC5B,IAAIk0b,EAAU,EACd,MAAMC,EAAkB,GACxB,IAAK,IAAI13c,EAAI,EAAGA,EAAIw3c,EAASv3c,OAAQD,GAAK,EAAG,CAE3C,GAAIy3c,IAAYl0b,EACd,OAAOm0b,EAET,MAAMhxc,EAAO8wc,EAASx3c,GAGhB23c,EAAUF,GAFDf,GAAYhwc,GACFX,OAAOW,GAAMzG,OAAS,GAI/C,GAAI03c,EAAUp0b,EAAK,CACjB,MAAMq0b,EAAUr0b,EAAMk0b,EAEtB,OADAC,EAAgB/2c,KAAKoF,OAAOW,GAAM5C,MAAM,EAAG8zc,IACpCF,CACT,CACAA,EAAgB/2c,KAAK+F,GACrB+wc,EAAUE,CACZ,CACA,OAAOH,CACT,CAEA,MAAMK,GAAsB,EAItBC,GAAkC,EAClCC,GAAgB,CACpBzyc,QAAS,cACT8E,SAAU,SACVwqc,gBAAiB,YAEJ,SAASoD,GAAgBrha,GACtC,MAAM,cACJsha,EAAa,MACbl3c,EAAK,KACL45B,EAAI,SACJsoB,EAAQ,KACRznB,EAAI,SACJm5Q,EAAQ,SACRujK,EAAQ,WACRC,GACExha,EACE6ga,EAAW7kP,EAAAA,SAAc,IAAMrsH,GAAQ3rE,IAAO,CAACA,IAC/Cy9a,EAAUzlP,EAAAA,SAAc,IAhDZ6kP,IAAYA,EAASz5a,QAAO,CAACs6a,EAAU3xc,IAAS2xc,GAAY3B,GAAYhwc,GAAQX,OAAOW,GAAMzG,OAAS,IAAI,GAgDxFq4c,CAAYd,IAAW,CAAC78a,IAGtD49a,EAAc5lP,EAAAA,SAAc,IAAM1vK,EAASu0Z,GAAU,IAAQ,CAAC78a,KAE7D69a,EAAkBC,GAAuB9lP,EAAAA,SAAe,MACzD+lP,EAAY/lP,EAAAA,OAAa,MAEzBgmP,EAAuBhmP,EAAAA,OAAa,MACpCimP,EAAkBjmP,EAAAA,OAAa,MAE/BkmP,EAAsBlmP,EAAAA,OAAa,MACnCmmP,EAAuBnmP,EAAAA,OAAa,OACnComP,EAAaC,GAAkBrmP,EAAAA,UAAe,IAC9CsmP,EAAcC,GAAmBvmP,EAAAA,SAAeklP,KAChDsB,EAAgBC,GAAqBzmP,EAAAA,SAAe,IACpD0mP,EAAkBC,GAAuB3mP,EAAAA,SAAe,MAE/D1mJ,IAAgB,KAEZitY,EADEjB,GAAiBl3c,GAASq3c,EAxCH,EA2CTP,GAClB,GACC,CAAC92c,EAAO45B,EAAMa,EAAMy8a,EAAeT,IAEtCvrY,IAAgB,KACd,IAAI7wC,EAAIC,EAAIiC,EAAIC,EAChB,GAjD2B,IAiDvB07a,EAAyC,CAC3CC,EAjDuB,GAmDvB,MAAMK,EAAiBZ,EAAqB5za,SAAWzgC,iBAAiBq0c,EAAqB5za,SAASo7G,WACtGm5T,EAAoBC,EACtB,MAAO,GArDkB,IAqDdN,EAAuC,CAChD,MAAM3mN,KAAmD,QAAlCl3N,EAAKw9a,EAAgB7za,eAA4B,IAAP3J,OAAgB,EAASA,EAAGk8a,YAC7F4B,EAAgB5mN,EAtDe,EAsD6BwlN,IAC5DW,EAAoBnmN,EAAa,CAAC,EAAG8lN,GAAW,MAChDY,EAAe1mN,GAEf,MAAMknN,GAA6D,QAAlCn+a,EAAKu9a,EAAgB7za,eAA4B,IAAP1J,OAAgB,EAASA,EAAGiI,cAAgB,EAEjHm2a,EAAkC,IAATj+a,EAAa,GAA4C,QAAtC8B,EAAKu7a,EAAoB9za,eAA4B,IAAPzH,OAAgB,EAASA,EAAGgG,cAAgB,EACtIo2a,GAAmE,QAAvCn8a,EAAKu7a,EAAqB/za,eAA4B,IAAPxH,OAAgB,EAASA,EAAG+F,cAAgB,EACvHq2a,EAAgBr5c,KAAKwhB,IAAI03b,EAE/BC,EAAyBC,GACzBN,EAAkBO,EAAgB,GAClCxB,EAAW7lN,EACb,IACC,CAAC2mN,IAEJ,MAAMW,EAAcpB,EAAmBl4c,KAAK6K,MAAMqtc,EAAiB,GAAKA,EAAiB,IAAM,GAAK,EACpGvsY,IAAgB,KACd,IAAI7wC,EACJ,MAAOy+a,EAAUC,GAAYtB,GAAoB,CAAC,EAAG,GACrD,GAAIqB,IAAaC,EAAU,CACzB,MACMxnN,IAD0C,QAA5Bl3N,EAAKs9a,EAAU3za,eAA4B,IAAP3J,OAAgB,EAASA,EAAGkI,cAAgB,GACrE61a,EAC/B,IAAIY,EAAiBH,EACjBE,EAAWD,IAAa,IAC1BE,EAAiBznN,EAAaunN,EAAWC,GAE3CrB,EAAoBnmN,EAAa,CAACunN,EAAUE,GAAkB,CAACA,EAAgBD,GACjF,IACC,CAACtB,EAAkBoB,IAEtB,MAAMI,EAAernP,EAAAA,SAAc,KAEjC,IAAKslP,EACH,OAAOh1Z,EAASu0Z,GAAU,GAE5B,GA1FiC,IA0F7ByB,IAAkDT,GAAoBA,EAAiB,KAAOA,EAAiB,GAAI,CACrH,MAAMj7b,EAAU0lC,EAASu0Z,GAAU,GAGnC,MAAI,CAACM,GAAiCD,IAAqB5oc,SAASgqc,GAC3D17b,EAEWo1M,EAAAA,cAAoB,OAAQ,CAC9CvuN,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG6vc,IAAgB,CACrD7nL,gBAAiB10P,KAElBje,EACL,CACA,OAAO0lC,EAAS0xP,EAAW6iK,EAAWD,GAAWC,EAAUgB,EAAiB,IAAKO,EAAY,GAC5F,CAACpkK,EAAUskK,EAAcT,EAAkBhB,GAAUl0c,OAAOw+O,GAAmBo2N,KAE5E3mN,EAAe,CACnBxwP,QACAL,OAAQ,EACR2/B,QAAS,EACT8/G,WAAiC,WAArBk5T,EAAgC,SAAW,WAEzD,OAAoB1mP,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMqnP,EAjHnC,IAiHiDf,GAAuDtmP,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoBykP,GAAa,CACzNhzc,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGqpP,GAAewmN,IAAgB,CAClF7nL,gBAAiB10P,IAEnB6a,IAAKuia,GACJL,GAA2B5lP,EAAAA,cAAoBykP,GAAa,CAC7Dhzc,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGqpP,GAAewmN,IAAgB,CAClF7nL,gBAAiB10P,EAAO,IAE1B6a,IAAKwia,GACJN,GAA2B5lP,EAAAA,cAAoBykP,GAAa,CAC7Dhzc,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGqpP,GAAewmN,IAAgB,CAClF7nL,gBAAiB,IAEnB75O,IAAKyia,GACJ71Z,EAAS,IAAI,KA/HmB,IA+HTg2Z,GAAiDT,GAAoBA,EAAiB,KAAOA,EAAiB,IAAoB7lP,EAAAA,cAAoBykP,GAAa,CAC3Lhzc,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGqpP,GAAe,CACpDnxP,IAAK,MAEPi2C,IAAKqia,GACJz1Z,EAASs0Z,GAAWC,EAAUoC,IAAc,IAtIlB,IAsI2BX,GAAyDtmP,EAAAA,cAAoB,OAAQ,CAC3IvuN,MAAO,CACL+7I,WAAY,WAEd9pG,IAAKsia,IAET,CCnLA,SAjBwB5uT,IACtB,IAAI,eACFkwT,EAAc,WACdC,EAAU,SACVj3Z,EAAQ,aACR66Q,GACE/zK,EACJ,OAAuB,OAAjB+zK,QAA0C,IAAjBA,OAA0B,EAASA,EAAajzR,QAAWova,EAGtEtnP,EAAAA,cAAoBojF,GAASjxS,OAAOoD,OAAO,CAC7DmW,OAAM67b,QAAanuc,GAClB+xT,GAAe76Q,GAJTA,CAIkB,ECd7B,IAAIwnP,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAkDA,MA2SA,GA1S0BmgM,EAAAA,YAAiB,CAACh8K,EAAON,KACjD,IAAIjb,EACJ,MACIg9M,UAAW2vC,EAAkB,UAC7B1hR,EAAS,MACTjC,EAAK,KACL0B,EAAI,SACJg9C,EAAQ,SACRG,EAAQ,SACR0mX,EAAQ,SACR7sB,EAAQ,SACRq9D,EAAQ,UACRzxO,EAAS,MACT79L,GACE8L,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,YAAa,QAAS,OAAQ,WAAY,WAAY,WAAY,WAAY,WAAY,YAAa,WAC3I,aACJixO,EAAY,UACZrrJ,GACEo2F,EAAAA,WAAiBg1D,KACdyyL,GAAcxmH,GAAU,QACzBymH,EAAgB1nP,EAAAA,OAAa,MAC7B2nP,EAAc3nP,EAAAA,OAAa,MAE3BylB,EAAYwvC,EAAa,aAAcG,GACvCwyL,EAAYlzW,GAAKuxI,EAAW,CAAC,OAAQ,OAAQ,SAAU,YAAa,SAAU,WAAY,YAEzF4hO,EAAYC,GAAc7E,GAAgB94D,IAC1C49D,EAASC,GAAc/6N,IAAe,EAAO,CAClDliP,MAAO+8c,EAAWC,WAEd,YACJE,EAAc,CAAC,SACbH,EACEI,EAAcv0Q,IAClB,IAAIlrK,EACAkrK,IAC4B,QAA7BlrK,EAAKq/a,EAAWK,eAA4B,IAAP1/a,GAAyBA,EAAGv8B,KAAK47c,IAEzEE,EAAWr0Q,EAAK,EAGZy0Q,EAAcC,GAAYN,GAChCzuY,IAAgB,KACd,IAAI7wC,GACCs/a,GAAWK,IACiB,QAA9B3/a,EAAKk/a,EAAYv1a,eAA4B,IAAP3J,GAAyBA,EAAG/I,QACrE,GACC,CAACqob,IACJ,MAAMO,EAAc3ub,IACZ,OAANA,QAAoB,IAANA,GAAwBA,EAAEukC,iBACxCgqZ,GAAY,EAAK,EAEbK,EAAex9c,IACnB,IAAI09B,EAC2B,QAA9BA,EAAKq/a,EAAW36N,gBAA6B,IAAP1kN,GAAyBA,EAAGv8B,KAAK47c,EAAY/8c,GACpFm9c,GAAY,EAAM,EAEdM,EAAeA,KACnB,IAAI//a,EAC2B,QAA9BA,EAAKq/a,EAAWplH,gBAA6B,IAAPj6T,GAAyBA,EAAGv8B,KAAK47c,GACxEI,GAAY,EAAM,GAGbO,EAAYhuT,GAAcwoT,GAAgBuE,IAC3C,OACJzsI,EAAM,YACN2nI,EACApiY,QAASooY,GACPC,GAAa,CACfluT,aACAnqG,cAGKs4Z,EAAoBC,GAAyB7oP,EAAAA,UAAe,IAC5D8oP,EAAuBC,GAA4B/oP,EAAAA,UAAe,IAClEgpP,EAAcC,GAAmBjpP,EAAAA,UAAe,IAChDkpP,EAAkBC,GAAuBnpP,EAAAA,UAAe,IACxDopP,EAAiBC,GAAsBrpP,EAAAA,UAAe,IACtDsnP,EAAgBgC,GAAkBrG,GAAgBjsC,EAAU,CACjEuyC,YAAY,EACZlgc,OAAQmgc,GAAcA,EAA4B,OAAf/B,QAAsC,IAAfA,OAAwB,EAASA,EAAWpuI,SAA0B,OAAfouI,QAAsC,IAAfA,OAAwB,EAASA,EAAWruI,UAE/Kp3B,EAAUynK,GAAex8N,GAAeq8N,EAAeI,kBAAmB,EAAO,CACtF3+c,MAAOu+c,EAAetnK,WAElB2nK,EAAuBrC,KAAoBtlK,GAA0C,gBAA9BsnK,EAAeC,aAEtE,KACJ1gb,EAAO,GACLygb,EACEM,GAAsB5pP,EAAAA,SAAc,IAE1C2pP,SAE0Bvwc,IAA1Bkwc,EAAe/uU,QAAwB+uU,EAAe9D,YAEtD8D,EAAeC,YAAc1B,GAAcY,IAAa,CAACkB,EAAsBL,EAAgBzB,EAAYY,IAC3GnvY,IAAgB,KACVguY,IAAmBsC,KACrBf,EAAsB/H,GAAe,oBACrCiI,EAAyBjI,GAAe,iBAC1C,GACC,CAAC8I,GAAqBtC,IACzB,MAAOuC,GAAaC,IAAkB9pP,EAAAA,SAAe2pP,GAC/CI,GAAoB/pP,EAAAA,SAAc,KAClC4pP,KAGS,IAAT/gb,EACKigb,EAEFF,IACN,CAACgB,GAAqBd,EAAuBF,IAGhDtvY,IAAgB,KACdwwY,GAAeC,IAAqBJ,EAAqB,GACxD,CAACI,GAAmBJ,IACvB,MAAMK,GAAmBL,IAAyBE,GAAcX,EAAmBF,GAC7EiB,GAAkBN,GAAiC,IAAT9gb,GAAcghb,GACxDK,GAAeP,GAAwB9gb,EAAO,GAAKghb,IAOlDM,GAAeC,IAAoBpqP,EAAAA,SAAe,GAQnDqqP,GAAeC,IACnB,IAAI7hb,EACJwgb,EAAgBqB,GAEZtB,IAAiBsB,IACkB,QAApC7hb,EAAK6gb,EAAe9D,kBAA+B,IAAP/8a,GAAyBA,EAAGv8B,KAAKo9c,EAAgBgB,GAChG,EAGFtqP,EAAAA,WAAgB,KACd,MAAMuqP,EAAU7C,EAAct1a,QAC9B,GAAIk1a,GAAkBuC,IAAeU,EAAS,CAC5C,MAAMC,EJ9LL,SAAuBntO,GAE5B,MAAMotO,EAAWh3c,SAASf,cAAc,MACxC2qO,EAAI9oO,YAAYk2c,GAKhB,MAAMh/a,EAAO4xM,EAAIxwO,wBACX69c,EAAYD,EAAS59c,wBAI3B,OAFAwwO,EAAIvpO,YAAY22c,GAIdh/a,EAAKj+B,KAAOk9c,EAAUl9c,MAAQk9c,EAAU/yc,MAAQ8zB,EAAK9zB,OAErD8zB,EAAKh+B,IAAMi9c,EAAUj9c,KAAOi9c,EAAUn4c,OAASk5B,EAAKl5B,MAExD,CI2K8Bo4c,CAAcJ,GAClCrB,IAAqBsB,GACvBrB,EAAoBqB,EAExB,IACC,CAAClD,EAAgBuC,GAAav5Z,EAAU45Z,GAAcd,EAAiBe,KAG1EnqP,EAAAA,WAAgB,KACd,MAAMuqP,EAAU7C,EAAct1a,QAC9B,GAAoC,qBAAzBw4a,uBAAyCL,IAAYV,KAAgBF,EAC9E,OAGF,MAAMhxb,EAAW,IAAIiyb,sBAAqB,KACxCvB,IAAqBkB,EAAQl7N,aAAa,IAG5C,OADA12N,EAASC,QAAQ2xb,GACV,KACL5xb,EAAS4mN,YAAY,CACtB,GACA,CAACsqO,GAAaF,IAEjB,MAAMx+I,GAAek4I,GAAgBiG,EAAenoI,QAAS2mI,EAAW9/a,KAAMsoB,GACxEu6Z,GAAe7qP,EAAAA,SAAc,KACjC,GAAKsnP,IAAkBuC,GAGvB,MAAO,CAAC/B,EAAW9/a,KAAMsoB,EAAUpY,EAAOizR,GAAajzR,OAAOz6B,KAAKsmc,GAAY,GAC9E,CAACuD,EAAgBuC,GAAa3xa,EAAOizR,GAAajzR,MAAO8xa,KAG5D,GAAIjC,EACF,OAAoB/nP,EAAAA,cAAoB8qP,GAAU,CAChD//c,MAAkC,QAA1B09B,EAAKq/a,EAAW9/a,YAAyB,IAAPS,EAAgBA,EAAyB,kBAAb6nB,EAAwBA,EAAW,GACzG4xZ,OAAQqG,EACR7lH,SAAU8lH,EACVrG,MAAO2F,EAAW3F,MAClB18N,UAAWA,EACX/xO,UAAWA,EACXjC,MAAOA,EACPm4H,UAAWA,EACXmsG,UAAWA,EACXj2I,UAAWgoX,EAAWhoX,UACtBk9G,SAAU8qQ,EAAW9qQ,SACrBolQ,UAAW0F,EAAW1F,YAK1B,MAAM2I,GAAeA,KACnB,MAAM,WACJxB,EAAU,OACVlgc,GACEigc,EACJ,OAAOC,EAA2BvpP,EAAAA,cAAoB,SAAU,CAC9D7sN,KAAM,SACNlC,IAAK,SACLyC,UAAW,GAAG+xO,KAAau8D,EAAW,WAAa,WACnD1hO,QAAS3mD,GApFSqxb,EAACrxb,EAAGglH,KACxB,IAAIl2G,EACJghb,EAAY9qU,EAAKqjK,UACkB,QAAlCv5Q,EAAK6gb,EAAe2B,gBAA6B,IAAPxib,GAAyBA,EAAGv8B,KAAKo9c,EAAgB3vb,EAAGglH,EAAK,EAiFpFqsU,CAAcrxb,EAAG,CAC7BqoR,UAAWA,IAEb,aAAcA,EAAWylK,EAAWpuI,SAA0B,OAAfouI,QAAsC,IAAfA,OAAwB,EAASA,EAAWruI,QAC/F,oBAAX/vT,EAAwBA,EAAO24R,GAAY34R,GAAW,IAAI,EAGhE6hc,GAAaA,KACjB,IAAKrD,EACH,OAEF,MAAM,KACJzpQ,EAAI,QACJ+iI,EAAO,SACPnxF,GACE83N,EACEqD,EAAYx3W,GAAQwtO,GAAS,KAAsB,OAAfsmI,QAAsC,IAAfA,OAAwB,EAASA,EAAW9zQ,MACvGyjO,EAAiC,kBAAd+zC,EAAyBA,EAAY,GAC9D,OAAOlD,EAAY3rc,SAAS,QAAwB0jN,EAAAA,cAAoBojF,GAAS,CAC/EnyS,IAAK,OACLinC,OAAmB,IAAZipS,EAAoB,GAAKgqI,GAClBnrP,EAAAA,cAAoB,SAAU,CAC5C7sN,KAAM,SACNuwC,IAAKika,EACLj0c,UAAW,GAAG+xO,SACdnlK,QAASgoY,EACT,aAAclxC,EACdpnL,SAAUA,GACT5xC,GAAqB4hB,EAAAA,cAAoBo7O,GAAc,CACxD7gN,KAAM,aACA,IAAI,EAkBR6wN,GAAmBhF,GAAe,CAACA,GAAe2E,KAAgBG,KAdjEzC,EAGezoP,EAAAA,cAAoBqrP,GAASl5c,OAAOoD,OAAO,CAC7DtE,IAAK,QACJwpJ,EAAY,CACbgrF,UAAWA,EACXs1F,OAAQA,EACR56S,OAAQsnb,EACR/wT,OAAQgyT,EACRvqU,QAASukU,EACTsB,SAAuB,OAAb1zZ,QAAkCl3C,IAAbk3C,KAVxB,MAkBX,OAAoB0vK,EAAAA,cAAoBwiB,GAAgB,CACtD4B,SApIev7D,IACf,IAAI,YACFziE,GACEyiE,EACJuhS,GAAiBhkW,EAAY,EAiI7Bj2D,UAAWw5Z,IACV2B,GAA2BtrP,EAAAA,cAAoBurP,GAAiB,CACjEpgJ,aAAcA,GACdm8I,eAAgBqC,EAChBpC,WAAYyC,IACEhqP,EAAAA,cAAoBwrP,GAAYr5c,OAAOoD,OAAO,CAC5D7B,UAAWisN,KAAW,CACpB,CAAC,GAAG8lB,KAAatyO,KAASA,EAC1B,CAAC,GAAGsyO,cAAuBt1L,EAC3B,CAAC,GAAGs1L,cAAuB6hO,EAC3B,CAAC,GAAG7hO,0BAAmCwkO,GACvC,CAAC,GAAGxkO,4BAAqCykO,IACxCx2c,GACH+xO,UAAW2vC,EACX3jR,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG9D,GAAQ,CAC7C8rR,gBAAiB2sL,GAAerhb,OAAOzvB,IAEzC28N,UAAWA,EACXryL,IAAK84L,GAAW8uO,EAAW5D,EAAehka,GAC1CkmF,UAAWA,EACXtpD,QAAS2nY,EAAY3rc,SAAS,QAAUgsc,OAAclvc,EACtD,aAA+B,OAAjByxc,SAA0C,IAAjBA,QAA0B,EAASA,GAAa1wc,WACvF+9B,MAAOA,GACN0va,GAAyB5nP,EAAAA,cAAoByrP,GAAU,CACxDnG,cAAeqE,IAAyBE,GACxC7hb,KAAMsoB,EACNznB,KAAMA,EACNz6B,MAAO+7c,GACP3E,WAAY6E,GACZroK,SAAUA,EACVujK,SAAU,CAACxqI,EAAQ/4B,EAAU0gK,EAAamF,EAAYY,EAAYhB,KACjE,CAAC1zc,EAAMqyc,IAhUZ,SAA4BhvT,EAAMxsI,GAChC,IAAI,KACFsrI,EAAI,KACJvjI,EAAI,UACJ+4b,EACAxwZ,OAAQywZ,EAAG,OACXlK,EAAM,SACNz7G,EAAQ,OACRvoJ,GACErmD,EACAw0T,EAAiBhhc,EACrB,SAAS8K,EAAK7W,EAAKgtc,GACZA,IAGLD,EAA8B5rP,EAAAA,cAAoBnhN,EAAK,CAAC,EAAG+sc,GAC7D,CAQA,OAPAl2b,EAAK,SAAU+rb,GACf/rb,EAAK,IAAKg2b,GACVh2b,EAAK,MAAOi2b,GACZj2b,EAAK,OAAQ/C,GACb+C,EAAK,OAAQwgI,GACbxgI,EAAK,MAAOswU,GACZtwU,EAAK,IAAK+nL,GACHmuQ,CACT,CAuS4BE,CAAmB9na,EAAoBg8K,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMjsN,EAAKzG,OAAS,GAAK84c,IAAgBpkK,GAAY6oK,GAA6B7qP,EAAAA,cAAoB,OAAQ,CACjN/uN,IAAK,eACL,eAAe,GACd8C,GAASA,EAxCWqyc,IAAe,CAACA,IAAgBpkK,GAA0BhiF,EAAAA,cAAoB,OAAQ,CAC3G,eAAe,EACf/uN,IAAK,YAnQY,OAoQAq4c,EAAe/uU,OAAQ6wU,GAAiBhF,IAqCzC2F,CAAe3F,UAAmB,IClWtD,IAAItuK,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAIA,MAqBA,GArB0BmgM,EAAAA,YAAiB,CAACv3L,EAAIib,KAC9C,IAAI,SACAszX,EAAQ,IACR1tX,GACE7gB,EACJw9M,EAAY6xD,GAAOrvQ,EAAI,CAAC,WAAY,QAKtC,MAAMwiO,EAAc94P,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG0wO,GAAY,CAC9D38L,SAAalwC,IAARkwC,GAA0C,WAArB28L,EAAU/uO,OAAsB,sBAAwBoyC,IAIpF,cADO2hN,EAAYz3B,SACCxT,EAAAA,cAAoBgsP,GAAM75c,OAAOoD,OAAO,CAAC,EAAG01P,EAAa,CAC3EvnN,IAAKA,EACLszX,WAAYA,EACZjhM,UAAW,MACV,ICvBL,GAL+B/V,EAAAA,YAAiB,CAACh8K,EAAON,IAAsBs8K,EAAAA,cAAoBgsP,GAAM75c,OAAOoD,OAAO,CACpHmuC,IAAKA,GACJM,EAAO,CACR+xL,UAAW,WCLb,IAAI+hE,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAKA,MAAMi7S,GAAOA,CAACryS,EAAIib,KAChB,IAAI,SACAszX,GACEvuY,EACJw9M,EAAY6xD,GAAOrvQ,EAAI,CAAC,aAC1B,MAAMwjb,EAAiBjsP,EAAAA,SAAc,IAC/Bg3M,GAAgC,kBAAbA,EACdtiU,GAAKsiU,EAAU,CAAC,aAAc,SAEhCA,GACN,CAACA,IAKJ,OAAoBh3M,EAAAA,cAAoBgsP,GAAM75c,OAAOoD,OAAO,CAC1DmuC,IAAKA,GACJuiM,EAAW,CACZ+wL,SAAUi1C,EACVl2O,UAAW,SACV,EAEL,GAA4B/V,EAAAA,WAAiB86G,IClC7C,IAAIhjC,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAIA,MAAMqsb,GAAiB,CAAC,EAAG,EAAG,EAAG,EAAG,GAiBpC,GAhB2BlsP,EAAAA,YAAiB,CAACh8K,EAAON,KAClD,MAAM,MACFutI,EAAQ,GACNjtI,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,UAK7B,MAAM+xL,EAAYm2O,GAAe5vc,SAAS20K,GAAS,IAAIA,IAAU,KACjE,OAAoB+uC,EAAAA,cAAoBgsP,GAAM75c,OAAOoD,OAAO,CAC1DmuC,IAAKA,GACJuiM,EAAW,CACZlQ,UAAWA,IACV,ICrBCy1O,GAAaW,GACnBX,GAAW1wI,KAAOA,GAClB0wI,GAAW5xO,KAAOA,GAClB4xO,GAAWhgH,MAAQA,GACnBggH,GAAW5/G,UAAYA,GACvB,YCXawgH,GAAgCpsP,EAAAA,cAAoB,CAAC,GCiJlE,SA1I0BA,EAAAA,YAAiB,SAAUh8K,EAAON,GAC1D,IAAI+hM,EAAYzhM,EAAMyhM,UACpBh0O,EAAQuyC,EAAMvyC,MACdiC,EAAYswC,EAAMtwC,UAClB24c,EAAkBroa,EAAMgpF,SACxBA,OAA+B,IAApBq/U,EAA6B,IAAMA,EAC9CC,EAAetoa,EAAMsoa,aACrBC,EAAsBvoa,EAAMskY,aAC5BA,OAAuC,IAAxBikC,GAAwCA,EACvDj+N,EAAWtqM,EAAMsqM,SACjB1jO,EAAUo5B,EAAMp5B,QAChBm5U,EAAW//S,EAAM+/S,SACjByoH,EAAmBxoa,EAAMggT,UACzBA,OAAiC,IAArBwoH,EAA8B,IAAMA,EAChD9qK,EAAW19P,EAAMA,MACjBs8B,EAAUt8B,EAAMs8B,QAChBmsY,EAAgBzoa,EAAMyoa,cACtB5ya,EAAQmK,EAAMnK,MACd6ya,EAAiB1oa,EAAM2oa,SAEvB7kO,EAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnD2sP,EAAW7kO,EAAiB,GAC5B8kO,EAAc9kO,EAAiB,GAE/BkQ,EAAmBjQ,GADE/nB,EAAAA,SAAe,GACgB,GACpDwqH,EAAUxyF,EAAiB,GAC3B60N,EAAa70N,EAAiB,GAE9Bke,EAAmBnuB,GADE/nB,EAAAA,SAAe,GACgB,GACpD8sP,EAAY52M,EAAiB,GAC7B62M,EAAe72M,EAAiB,GAC9B82M,EAAiBN,GAAkBC,EACnCM,EAAqBjgV,EAAW,GAAKs/U,EAGrCxqH,EAAkB,WACpB2qH,EAAcn+N,EAChB,EAQAtuB,EAAAA,WAAgB,WACd,IAAKgtP,GAAkBhgV,EAAW,EAAG,CACnC,IAAIh+G,EAAQsT,KAAKw8B,MAAQguZ,EACrBjpU,EAAUxqH,YAAW,WACvByoU,GACF,GAAc,IAAX90N,EAAkB8/U,GACrB,OAAO,WACDxkC,GACFp8W,aAAa23E,GAEfkpU,EAAazqb,KAAKw8B,MAAQ9vC,EAC5B,CACF,CAEF,GAAG,CAACg+G,EAAUggV,EAAgBnza,IAC9BmmL,EAAAA,WAAgB,WACd,IAAKgtP,GAAkBC,IAAuB3kC,GAA8B,IAAdwkC,GAAkB,CAC9E,IACII,EADAl+b,EAAQ+2J,YAAYjnH,MAcxB,OAZgB,SAASrf,IACvBwnM,qBAAqBimO,GACrBA,EAAiBtvO,uBAAsB,SAAU63I,GAC/C,IAAI/qJ,EAAU+qJ,EAAYq3F,EAAY99b,EAClCzY,EAAW5I,KAAKyhB,IAAIs7M,GAAsB,IAAX19F,GAAkB,GACrD6/U,EAAsB,IAAXt2c,GACPA,EAAW,GACbkpC,GAEJ,GACF,CACAA,GACO,WACD6oY,GACFrhM,qBAAqBimO,EAEzB,CACF,CAEF,GAAG,CAAClgV,EAAU8/U,EAAWE,EAAgBC,EAAoBpza,IAG7D,IAAIqrT,EAAcllI,EAAAA,SAAc,WAC9B,MAA0B,YAAtBrxN,EAAAA,GAAAA,GAAQo1V,IAAuC,OAAbA,EAC7BA,EAELA,EACK,CACLC,UAAWA,GAGR,CAAC,CACV,GAAG,CAACD,EAAUC,IACVmB,EAAY7B,GAAU4B,GAAa,GAGnCioH,EAAe,MAAQ3iI,GAAWA,EAAU,EAAI,EAAIA,EAAU,IAAM,IAAMA,GAG1E4iI,EAAkB,GAAGz8c,OAAO80O,EAAW,WAC3C,OAAoBzlB,EAAAA,cAAoB,MAAOoL,GAAS,CAAC,EAAGs2E,EAAU,CACpEh+P,IAAKA,EACLhwC,UAAWisN,KAAWytP,EAAiB15c,GAAWswG,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAOy8c,EAAiB,aAAcrpH,IAC/GtyV,MAAOA,EACP2nP,aAAc,SAAsBz/N,GAClC,IAAI0zb,EACJT,GAAY,GACC,OAAblrK,QAAkC,IAAbA,GAA2E,QAAnD2rK,EAAwB3rK,EAAStoD,oBAAoD,IAA1Bi0N,GAAoCA,EAAsBnhd,KAAKw1S,EAAU/nR,EACnL,EACA0/N,aAAc,SAAsB1/N,GAClC,IAAI2zb,EACJV,GAAY,GACC,OAAblrK,QAAkC,IAAbA,GAA2E,QAAnD4rK,EAAwB5rK,EAASroD,oBAAoD,IAA1Bi0N,GAAoCA,EAAsBphd,KAAKw1S,EAAU/nR,EACnL,EACA2mD,QAASA,IACM0/I,EAAAA,cAAoB,MAAO,CAC1CtsN,UAAW,GAAG/C,OAAOy8c,EAAiB,aACrCxic,GAAUm5U,GAAyB/jI,EAAAA,cAAoB,IAAKoL,GAAS,CACtE4kB,SAAU,EACVt8O,UAAW,GAAG/C,OAAOy8c,EAAiB,UACtC5yN,UAtFmB,SAAwB7gO,GAC7B,UAAVA,EAAE1oB,KAA8B,UAAX0oB,EAAEhH,MAAoBgH,EAAE2jC,UAAY4yL,GAAQI,OACnEwxG,GAEJ,EAmFE,aAAc,SACbqD,EAAW,CACZ7kR,QAAS,SAAiB3mD,GACxBA,EAAEukC,iBACFvkC,EAAEojC,kBACF+kS,GACF,IACEoD,EAAYlB,WAAYipH,GAAmCjtP,EAAAA,cAAoB,WAAY,CAC7FtsN,UAAW,GAAG/C,OAAOy8c,EAAiB,aACtCj+b,IAAK,MACLpkB,MAAOoid,GACNA,EAAe,KACpB,IChJO,IAAII,GAAmCvtP,EAAAA,cAAoB,CAAC,GAUnE,SAT2B,SAA8B5oE,GACvD,IAAI9mG,EAAW8mG,EAAK9mG,SAClBqvK,EAAavoE,EAAKuoE,WACpB,OAAoBK,EAAAA,cAAoButP,GAAoBnqW,SAAU,CACpEr4G,MAAO,CACL40N,WAAYA,IAEbrvK,EACL,ECQA,SAde,SAAkBvS,GAC/B,IAMMyva,EAAgBC,EAAmBC,EANrCtwc,EAAS,CACX6pD,OALiB,EAMjBu8G,UALoB,EAMpBmqK,IALc,IAOZ5vS,GAA8B,YAApBpvC,EAAAA,GAAAA,GAAQovC,KAEpB3gC,EAAO6pD,OAA8C,QAApCumZ,EAAiBzva,EAAOkpB,cAAuC,IAAnBumZ,EAA4BA,EAXxE,EAYjBpwc,EAAOomK,UAAuD,QAA1CiqS,EAAoB1va,EAAOylI,iBAA6C,IAAtBiqS,EAA+BA,EAXjF,EAYpBrwc,EAAOuwU,IAAqC,QAA9B+/H,EAAc3va,EAAO4vS,WAAiC,IAAhB+/H,EAAyBA,EAX/D,IAahB,MAAO,GAAG3va,EAAQ3gC,EACpB,ECXA,IAAI+8N,GAAY,CAAC,YAAa,QAAS,aAAc,UA8JrD,SAvJiB,SAAoBn2L,GACnC,IAAI2pa,EAAa3pa,EAAM2pa,WACrBp1M,EAAYv0N,EAAMu0N,UAClB9yB,EAAYzhM,EAAMyhM,UAClB/xO,EAAYswC,EAAMtwC,UAClBjC,EAAQuyC,EAAMvyC,MACd84P,EAASvmN,EAAMumN,OACfqjN,EAAqB5pa,EAAM4pa,mBAC3BnB,EAAgBzoa,EAAMyoa,cACtBoB,EAAc7pa,EAAMvtC,MAEpBq3c,GADgB50Y,EAAAA,EAAAA,YAAWq0Y,IACN5tP,WACnBouP,GAAUt0Y,EAAAA,EAAAA,QAAO,CAAC,GAEpBmxK,EAAa7C,IADCruK,EAAAA,EAAAA,UAAS,MACgB,GACvCs0Y,EAAepjO,EAAW,GAC1BqjO,EAAkBrjO,EAAW,GAE7BG,EAAahD,IADEruK,EAAAA,EAAAA,UAAS,IACgB,GACxCw0Y,EAAYnjO,EAAW,GACvBojO,EAAepjO,EAAW,GACxB34O,EAAOu7c,EAAWn0c,KAAI,SAAUukC,GAClC,MAAO,CACLA,OAAQA,EACR9sC,IAAKmC,OAAO2qC,EAAO9sC,KAEvB,IAEEm9c,EAAarmO,GADCsmO,GAASR,GACgB,GACvCp3c,EAAQ23c,EAAW,GACnBE,EAAcF,EAAW,GACzBnnZ,EAASqnZ,EAAYrnZ,OACrBu8G,EAAY8qS,EAAY9qS,UACxBmqK,EAAM2gI,EAAY3gI,IAChB3rC,EAAWvrS,IAAUy3c,EAAU5gd,OAAS,GAAK8E,EAAK9E,QAAUk2K,GAC5D+qS,EAAoC,oBAAXhkN,EAAwBA,EAAOgO,GAAahO,EAwBzE,OArBApxL,EAAAA,EAAAA,YAAU,WACJ1iE,GAASy3c,EAAU5gd,OAAS,GAC9B6gd,GAAa,SAAUplb,GACrB,OAAOA,EAAKzrB,QAAO,SAAUrM,GAC3B,OAAOmB,EAAKmL,MAAK,SAAU65I,GACzB,IAAI5hH,EAAU4hH,EAAKnmJ,IACnB,OAAOA,IAAQukC,CACjB,GACF,GACF,GAEJ,GAAG,CAAC04a,EAAW97c,EAAMqE,KAGrB0iE,EAAAA,EAAAA,YAAU,WACR,IAAIq1Y,EAEEC,EADFh4c,GAASs3c,EAAQ37a,QAA4C,QAAnCo8a,EAAQp8c,EAAKA,EAAK9E,OAAS,UAA0B,IAAVkhd,OAAmB,EAASA,EAAMv9c,MAEzGg9c,EAAgBF,EAAQ37a,QAA6C,QAApCq8a,EAASr8c,EAAKA,EAAK9E,OAAS,UAA2B,IAAXmhd,OAAoB,EAASA,EAAOx9c,KAErH,GAAG,CAACmB,EAAMqE,IACUupN,EAAAA,cAAoB6rC,GAAezgC,GAAS,CAC9Dn6N,IAAKsnQ,EACL7kQ,UAAWshY,KAAKvvJ,EAAW,GAAG90O,OAAO80O,EAAW,KAAK90O,OAAO4nQ,GAAuB,OAAXu1M,QAA8B,IAAXA,OAAoB,EAASA,EAAOlhN,KAAMl5P,GAAWswG,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,YAAahvO,GAAQ,GAAG9F,OAAO80O,EAAW,mBAAoBu8D,IACvQvwS,MAAOA,EACPW,KAAMA,EACNi0P,cAAc,GACbkoN,EAAiB,CAClBriN,aAAc,WACZ0hN,EAAmBr1M,EACrB,KACE,SAAU1vF,EAAO2hF,GACnB,IAAIzsN,EAAS8qI,EAAM9qI,OACjBiyN,EAAkBnnF,EAAMn1K,UACxBu8P,EAAcpnF,EAAMp3K,MACpBi9c,EAAc7lS,EAAMxsK,MAClBkwP,EAAQxuN,EACV9sC,EAAMs7P,EAAMt7P,IACZ4oC,EAAQ0yN,EAAM1yN,MACZ80a,EAASv7c,OAAOnC,GAChB8mO,EAAQh6L,EACV6wa,EAAkB72O,EAAMrkO,UACxBm7c,EAAc92O,EAAMtmO,MACpBq9c,EAAmB/2O,EAAMpY,WACzBovP,EAAeh3O,EAAM9vM,OACrB+mb,EAAa9oO,GAAyBnO,EAAOoC,IAC3C80O,EAAY78c,EAAKsL,WAAU,SAAU2gC,GACvC,OAAOA,EAAKptC,MAAQ09c,CACtB,IAIIO,EAAa,CAAC,EAClB,GAAIz4c,EAAO,CACT,IAAI4F,EAAQjK,EAAK9E,OAAS,GAAK2hd,GAAa,EAAIA,EAAYP,EAAc,GACtES,EAA2B,QAAd52M,GAAqC,WAAdA,EAAyB,OAAS,IAC1E,GAAIl8P,EAAQ,EAAG,CACb,IAAI+yc,EAAuBC,EAAwBC,EACnDJ,EAAWphd,OAASk0S,EAAiE,QAArDotK,EAAwBrB,EAAQ37a,QAAQu8a,UAA+C,IAA1BS,OAAmC,EAASA,EAAsB7oW,aAAgC,OAAjBynW,QAA0C,IAAjBA,OAA0B,EAASA,EAAaznW,aAIvP,IADA,IAAIgpW,EAAiB,EACZlid,EAAI,EAAGA,EAAIgP,EAAOhP,IAAK,CAC9B,IAAImid,EACJD,IAAgG,QAA5EC,EAAwBzB,EAAQ37a,QAAQhgC,EAAKA,EAAK9E,OAAS,EAAID,GAAG4D,YAA4C,IAA1Bu+c,OAAmC,EAASA,EAAsBjpW,cAAgBonO,CAC5L,CACA,IAAI8hI,GAAcztK,EAAWutK,EAAiBlzc,EAAQ4qD,IAAWsxM,EAAU95J,WAAW,OAAS,GAAK,GAChG+hG,GAAUwhG,GAA6B,OAAjBgsK,QAA0C,IAAjBA,GAA2BA,EAAa5nW,aAAsE,QAAtDipW,EAAyBtB,EAAQ37a,QAAQu8a,UAAgD,IAA3BU,GAAqCA,EAAuBjpW,cAAiC,OAAjB4nW,QAA0C,IAAjBA,OAA0B,EAASA,EAAa5nW,aAAwB,EAATn/C,GAAc5qD,EAAQ,EAAIA,EAAQ,KAA8D,QAAtDizc,EAAyBvB,EAAQ37a,QAAQu8a,UAAgD,IAA3BW,OAAoC,EAASA,EAAuBlpW,aAAe,EACxgB8oW,EAAWxjY,UAAY,eAAe/6E,OAAOw+c,EAAY,MAAMx+c,OAAO8+c,EAAY,kBAAkB9+c,OAAO6vM,EAAQ,IACrH,MACE0uQ,EAAWxjY,UAAY,eAAe/6E,OAAOw+c,EAAY,UAE7D,CACA,OAAoBnvP,EAAAA,cAAoB,MAAO,CAC7Ct8K,IAAK8mN,EACL92P,UAAWshY,KAAK,GAAGrkY,OAAO80O,EAAW,mBAAoBuqB,EAAsC,OAArB8+M,QAAkD,IAArBA,OAA8B,EAASA,EAAiB9kX,SAC/Jv4F,MAAOkzO,GAAcA,GAAcA,GAAc,CAAC,EAAGsrB,GAAci/M,GAA8B,OAAjBH,QAA0C,IAAjBA,OAA0B,EAASA,EAAa/kX,SACzJovJ,aAAc,WACZ,OAAO+0N,GAAa,SAAUplb,GAC5B,OAAOA,EAAKzsB,SAASqyc,GAAU5lb,EAAO,GAAGp4B,OAAOw+O,GAAmBpmN,GAAO,CAAC4lb,GAC7E,GACF,EACAt1N,aAAc,WACZ,OAAO80N,GAAa,SAAUplb,GAC5B,OAAOA,EAAKzrB,QAAO,SAAUvQ,GAC3B,OAAOA,IAAM4hd,CACf,GACF,GACF,GACc3uP,EAAAA,cAAoB0vP,GAAQtkP,GAAS,CAAC,EAAG4jP,EAAY,CACnEtra,IAAK,SAAa3vC,GACZk7c,GAAa,EACflB,EAAQ37a,QAAQu8a,GAAU56c,SAEnBg6c,EAAQ37a,QAAQu8a,EAE3B,EACAlpO,UAAWA,EACX9lB,WAAYmvP,EACZ7mb,OAAQ8mb,EACRr7c,UAAWshY,KAAK45E,EAA4B,OAAXd,QAA8B,IAAXA,OAAoB,EAASA,EAAO6B,QACxFl+c,MAAOo9c,EACPh1a,MAAOA,EACP5oC,IAAKA,EACLq9O,SAAUr9O,EACVw7c,cAAeA,EACfE,SAAUl2c,GAASy3c,EAAU5gd,OAAS,KAE1C,GACF,ECbA,SA5IiC0yN,EAAAA,YAAiB,SAAUh8K,EAAON,GACjE,IAAIslM,EAAmBhlM,EAAMyhM,UAC3BA,OAAiC,IAArBuD,EAA8B,kBAAoBA,EAC9Dz8O,EAAYy3C,EAAMz3C,UAClBg+P,EAASvmN,EAAMumN,OACfjhB,EAAWtlM,EAAMslM,SACjB51O,EAAYswC,EAAMtwC,UAClBjC,EAAQuyC,EAAMvyC,MACdy6P,EAAeloN,EAAMkoN,aACrBz1P,EAAQutC,EAAMvtC,MACdm5c,EAAsB5ra,EAAM4ra,oBAE5B9nO,EAAmBC,GADC/nB,EAAAA,SAAe,IACgB,GACnD2tP,EAAa7lO,EAAiB,GAC9B+nO,EAAgB/nO,EAAiB,GAG/B2kO,EAAgB,SAAuBx7c,GACzC,IAAI6+c,EAEA/xa,EAAS4va,EAAWlwc,MAAK,SAAU4gC,GACrC,OAAOA,EAAKptC,MAAQA,CACtB,IACW,OAAX8sC,QAA8B,IAAXA,GAA4D,QAAtC+xa,EAAkB/xa,EAAOkmT,eAAyC,IAApB6rH,GAA8BA,EAAgB5jd,KAAK6xC,GAC1I8xa,GAAc,SAAUjjN,GACtB,OAAOA,EAAKtvP,QAAO,SAAU+gC,GAC3B,OAAOA,EAAKptC,MAAQA,CACtB,GACF,GACF,EAGA+uN,EAAAA,oBAA0Bt8K,GAAK,WAC7B,MAAO,CACLh4B,KAAM,SAAcqyB,GAClB8xa,GAAc,SAAUjjN,GACtB,IAQMmjN,EARF97c,EAAQk7O,GAAmByd,GAG3BvwP,EAAQpI,EAAMyJ,WAAU,SAAU2gC,GACpC,OAAOA,EAAKptC,MAAQ8sC,EAAO9sC,GAC7B,IACIkiW,EAAcxuH,GAAc,CAAC,EAAG5mM,GAChC1hC,GAAS,GAEX82V,EAAYt5T,QAA0C,QAA/Bk2a,EAAcnjN,EAAKvwP,UAAoC,IAAhB0zc,OAAyB,EAASA,EAAYl2a,QAAU,GAAK,EAC3H5lC,EAAMoI,GAAS82V,IAEfA,EAAYt5T,MAAQ,EACpB5lC,EAAMjG,KAAKmlW,IAKb,OAHI7pH,EAAW,GAAKr1O,EAAM3G,OAASg8O,IACjCr1O,EAAQA,EAAM9C,OAAOm4O,IAEhBr1O,CACT,GACF,EACA+W,MAAO,SAAe/Z,GACpBw7c,EAAcx7c,EAChB,EACA0mE,QAAS,WACPk4Y,EAAc,GAChB,EAEJ,IAGA,IACE73N,EAAmBjQ,GADE/nB,EAAAA,SAAe,CAAC,GACe,GACpD2gD,EAAa3oB,EAAiB,GAC9Bg4N,EAAgBh4N,EAAiB,GACnCh4B,EAAAA,WAAgB,WACd,IAAIiwP,EAAiB,CAAC,EACtBtC,EAAW1gd,SAAQ,SAAU8wC,GAC3B,IAAImya,EAAoBnya,EAAOw6N,UAC7BA,OAAkC,IAAtB23M,EAA+B,WAAaA,EACtD33M,IACF03M,EAAe13M,GAAa03M,EAAe13M,IAAc,GACzD03M,EAAe13M,GAAWvqQ,KAAK+vC,GAEnC,IAGA5rC,OAAOC,KAAKuuQ,GAAY1zQ,SAAQ,SAAUsrQ,GACxC03M,EAAe13M,GAAa03M,EAAe13M,IAAc,EAC3D,IACAy3M,EAAcC,EAChB,GAAG,CAACtC,IAGJ,IAAIC,EAAqB,SAA4Br1M,GACnDy3M,GAAc,SAAUG,GACtB,IAAIl8c,EAAQ0wO,GAAc,CAAC,EAAGwrO,GAK9B,OAJWl8c,EAAMskQ,IAAc,IACrBjrQ,eACD2G,EAAMskQ,GAERtkQ,CACT,GACF,EAGIm8c,EAAWpwP,EAAAA,QAAa,GAW5B,GAVAA,EAAAA,WAAgB,WACV7tN,OAAOC,KAAKuuQ,GAAYrzQ,OAAS,EACnC8id,EAASh+a,SAAU,EACVg+a,EAASh+a,UAED,OAAjB85N,QAA0C,IAAjBA,GAA2BA,IACpDkkN,EAASh+a,SAAU,EAEvB,GAAG,CAACuuO,KAECp0Q,EACH,OAAO,KAET,IAAI8jd,EAAgBl+c,OAAOC,KAAKuuQ,GAChC,OAAoBp2L,EAAAA,GAAAA,cAA2By1I,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMqwP,EAAc72c,KAAI,SAAU++P,GACnH,IAAI+3M,EAAsB3vM,EAAWpI,GACjC3L,EAAoB5sC,EAAAA,cAAoBuwP,GAAY,CACtDt/c,IAAKsnQ,EACLo1M,WAAY2C,EACZ/3M,UAAWA,EACX9yB,UAAWA,EACX/xO,UAAyB,OAAdA,QAAoC,IAAdA,OAAuB,EAASA,EAAU6kQ,GAC3E9mQ,MAAiB,OAAVA,QAA4B,IAAVA,OAAmB,EAASA,EAAM8mQ,GAC3DhO,OAAQA,EACRkiN,cAAeA,EACfmB,mBAAoBA,EACpBn3c,MAAOA,IAET,OAAOm5c,EAAsBA,EAAoBhjN,EAAM,CACrDnnB,UAAWA,EACXx0O,IAAKsnQ,IACF3L,CACP,KAAKrgQ,EACP,IC5IA,IAAI4tO,GAAY,CAAC,eAAgB,SAAU,YAAa,WAAY,YAAa,QAAS,eAAgB,QAAS,uBAG/Gq2O,GAAsB,WACxB,OAAO/8c,SAASuE,IAClB,EACIy4c,GAAY,EAkBD,SAASC,KACtB,IAAIC,EAAa/0c,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClFg1c,EAAwBD,EAAW9zN,aACrCA,OAAyC,IAA1B+zN,EAAmCJ,GAAsBI,EACxErmN,EAASomN,EAAWpmN,OACpB9kB,EAAYkrO,EAAWlrO,UACvB6D,EAAWqnO,EAAWrnO,SACtB51O,EAAYi9c,EAAWj9c,UACvBjC,EAAQk/c,EAAWl/c,MACnBy6P,EAAeykN,EAAWzkN,aAC1Bz1P,EAAQk6c,EAAWl6c,MACnBm5c,EAAsBe,EAAWf,oBACjCiB,EAAc3qO,GAAyByqO,EAAYx2O,IAEnD2N,EAAmBC,GADC/nB,EAAAA,WAC+B,GACnDzzN,EAAYu7O,EAAiB,GAC7BgpO,EAAehpO,EAAiB,GAC9BipO,EAAmB/wP,EAAAA,SACnBgxP,EAA6BhxP,EAAAA,cAAoBixP,GAAe,CAClE1kd,UAAWA,EACXm3C,IAAKqta,EACLtrO,UAAWA,EACX8kB,OAAQA,EACRjhB,SAAUA,EACV51O,UAAWA,EACXjC,MAAOA,EACPy6P,aAAcA,EACdz1P,MAAOA,EACPm5c,oBAAqBA,IAGrB53N,EAAmBjQ,GADE/nB,EAAAA,SAAe,IACgB,GACpDkxP,EAAYl5N,EAAiB,GAC7Bm5N,EAAen5N,EAAiB,GAG9Bo5N,EAAMpxP,EAAAA,SAAc,WACtB,MAAO,CACLt0M,KAAM,SAAcqyB,GAClB,IAAIwlT,EAxDZ,WAEE,IADA,IAAItvV,EAAQ,CAAC,EACJwoO,EAAO7gO,UAAUtO,OAAQu6V,EAAU,IAAI76V,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClFmrH,EAAQnrH,GAAQ9gO,UAAU8gO,GAY5B,OAVAmrH,EAAQ56V,SAAQ,SAAU2B,GACpBA,GACFuD,OAAOC,KAAKxD,GAAK3B,SAAQ,SAAUgE,GACjC,IAAI6D,EAAMlG,EAAIqC,QACFmI,IAARtE,IACFb,EAAMhD,GAAO6D,EAEjB,GAEJ,IACOb,CACT,CAwC2B+iX,CAAY65F,EAAa9ya,GACnB,OAArBwlT,EAAatyV,UAAqCmI,IAArBmqV,EAAatyV,MAC5CsyV,EAAatyV,IAAM,mBAAmBN,OAAO8/c,IAC7CA,IAAa,GAEfU,GAAa,SAAU/5b,GACrB,MAAO,GAAGzmB,OAAOw+O,GAAmB/3N,GAAQ,CAAC,CAC3CjkB,KAAM,OACN4qC,OAAQwlT,IAEZ,GACF,EACAv4U,MAAO,SAAe/Z,GACpBkgd,GAAa,SAAU/5b,GACrB,MAAO,GAAGzmB,OAAOw+O,GAAmB/3N,GAAQ,CAAC,CAC3CjkB,KAAM,QACNlC,IAAKA,IAET,GACF,EACA0mE,QAAS,WACPw5Y,GAAa,SAAU/5b,GACrB,MAAO,GAAGzmB,OAAOw+O,GAAmB/3N,GAAQ,CAAC,CAC3CjkB,KAAM,YAEV,GACF,EAEJ,GAAG,IAoDH,OA/CA6sN,EAAAA,WAAgB,WACd8wP,EAAaj0N,IACf,IAGA78B,EAAAA,WAAgB,WAqBZ,IAAIqxP,EACAC,EApBFP,EAAiB3+a,SAAW8+a,EAAU5jd,SACxC4jd,EAAUjkd,SAAQ,SAAUskd,GAC1B,OAAQA,EAAKp+c,MACX,IAAK,OACH49c,EAAiB3+a,QAAQ1mB,KAAK6lc,EAAKxza,QACnC,MACF,IAAK,QACHgza,EAAiB3+a,QAAQpnB,MAAMumc,EAAKtgd,KACpC,MACF,IAAK,UACH8/c,EAAiB3+a,QAAQulC,UAG/B,IAcAw5Y,GAAa,SAAUK,GAOrB,OANIH,IAAiBG,GAAaF,IAChCD,EAAeG,EACfF,EAAeE,EAASl0c,QAAO,SAAUi0c,GACvC,OAAQL,EAAU50c,SAASi1c,EAC7B,KAEKD,CACT,IAEJ,GAAG,CAACJ,IAGG,CAACE,EAAKJ,EACf,CC/IA,MAAMS,GAAkB38V,IACtB,MAAM,aACJu0K,EAAY,QACZE,EAAO,UACPl8J,EAAS,UACT29J,EAAS,aACTsB,EAAY,WACZE,EAAU,aACVD,EAAY,UACZE,EAAS,WACTgD,EAAU,oBACVxC,EAAmB,mBACnB5B,EAAkB,SAClB6P,EAAQ,UACRZ,EAAS,eACT1L,EAAc,YACd25B,EAAW,eAEXqmC,EAAc,UACdD,GACE75O,EACE48V,EAAY,GAAGroL,WACfsoL,EAAgB,IAAI9qJ,GAAU,gBAAiB,CACnD,KAAM,CACJn5R,QAAS,EACTg+C,UAAW,oBACX5zE,QAAS,GAEX,OAAQ,CACN41B,QAAS4sQ,EACT5uN,UAAW,gBACX5zE,QAAS,KAGP85c,EAAiB,IAAI/qJ,GAAU,iBAAkB,CACrD,KAAM,CACJsI,UAAWr6M,EAAMhnH,OACjB4/B,QAAS4sQ,EACTxiS,QAAS,GAEX,OAAQ,CACNq3T,UAAW,EACXzhS,QAAS,EACT51B,QAAS,KAGP+5c,EAAc,CAClBnkb,QAAS4sQ,EACTzrQ,UAAW,SACX,CAAC,GAAGw6P,oBAAgC,CAClC12R,QAAS,OACTs5R,WAAY,UAEd,CAAC,GAAG5C,sBAAiCE,KAAY,CAC/CkmC,gBAAiBv0B,EAEjB3xQ,SAAUkmQ,GAEZ,CAAC,GAAGiiL,aAAsB,CACxB/+c,QAAS,eACT+6B,QAASkhU,EACTjnO,WAAYgnO,EACZnhE,aAAcoB,EACdvhK,YACAi5G,cAAe,OAEjB,CAAC,GAAG+iD,eAA0BE,KAAY,CACxCn8P,MAAOk/P,GAET,CAAC,GAAGjD,aAAwBE,KAAY,CACtCn8P,MAAOo/P,GAET,CAAC,GAAGnD,eAA0BE,KAAY,CACxCn8P,MAAOm/P,GAET,CAAC,GAAGlD,YAAuBE,aACvBF,eAA0BE,KAAY,CACxCn8P,MAAOq/P,IAGX,MAAO,CAEP,CACE,CAACpD,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACtE1nF,MAAO49P,EACPxzR,SAAU,QACV/J,IAAKytS,EACL9sS,MAAO,OACPk4O,cAAe,OACf5uO,OAAQ6wT,EACR,CAAC,GAAGl/B,aAAyB,CAC3Bg9B,kBAAmB,YAErB,CAAC,aACGh9B,8BACAA,2BACA,CACFxoO,cAAe8wZ,EACf9jV,kBAAmBw9J,EACnBs7B,mBAAoB,SACpBgB,wBAAyB16B,GAE3B,CAAC,aACG5D,mBAA8BA,qCAC9BA,kBAA6BA,kCAC7B,CACFs9B,mBAAoB,WAEtB,CAAC,GAAGt9B,mBAA+B,CACjCxoO,cAAe+wZ,EACf/jV,kBAAmBw9J,EACnBs7B,mBAAoB,SACpBgB,wBAAyB16B,GAE3B,CAAC,GAAG5D,kBAA6BA,0BAAsC,CACrEs9B,mBAAoB,WAEtB,QAAS,CACP/8L,UAAW,MACX2jB,KAAM,CACJ3jB,UAAW,WAMnB,CACE,CAACy/J,GAAe,CACd,CAAC,GAAGqoL,aAAsBv/c,OAAOoD,OAAO,CAAC,EAAGs8c,KAIhD,CACE,CAAC,GAAGxoL,uBAAmCl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGs8c,GAAc,CACnFnkb,QAAS,EACTmB,UAAW,WAEb,EAQJ,GAAeg7P,GAAc,WAAW/0K,IAEtC,MAAMg9V,EAAgBhrL,GAAWhyK,EAAO,CACtChnH,OAAQ,MAEV,MAAO,CAAC2jd,GAAgBK,GAAe,IAXJh9V,IAAS,CAC5CyzM,YAAazzM,EAAMg5K,gBAAkBq0B,GAAuB,GAC5DwsC,UAAW75O,EAAMg9K,gBACjB88D,eAAgB,IAAI95O,EAAMk6K,gBAAkBl6K,EAAMvrF,SAAWurF,EAAMrrF,YAAc,OAAOqrF,EAAMylL,kBChJhG,IAAIzC,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAYO,MAAMkyb,GAAW,CACtBpzU,KAAmBqhF,EAAAA,cAAoB+gI,GAAkB,MACzD5qM,QAAsB6pE,EAAAA,cAAoBygI,GAAmB,MAC7DzpV,MAAoBgpN,EAAAA,cAAoB2gI,GAAmB,MAC3D51H,QAAsB/K,EAAAA,cAAoB6gI,GAAyB,MACnE1iN,QAAsB6hF,EAAAA,cAAoB0oH,GAAiB,OAEhDspI,GAAc56T,IACzB,IAAI,UACFquF,EAAS,KACTtyO,EAAI,KACJirM,EAAI,SACJ9tJ,GACE8mG,EACJ,OAAoB4oE,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAWisN,KAAW,GAAG8lB,mBAA4B,GAAGA,KAAatyO,MACpEirM,GAAQ2zQ,GAAS5+c,GAAoB6sN,EAAAA,cAAoB,OAAQ,KAAM1vK,GAAU,EA8BtF,GA3BkBtM,IAChB,MACIyhM,UAAWwsO,EAAe,UAC1Bv+c,EAAS,KACTP,EAAI,KACJirM,EAAI,QACJxzL,GACEo5B,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,YAAa,OAAQ,OAAQ,aACjE,aACJixO,GACEj1D,EAAAA,WAAiBg1D,IACfvvC,EAAYwsO,GAAmBh9L,EAAa,WAC5CoT,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GAC5D,OAAO8Y,EAAwBnhF,EAAAA,cAAoB0vP,GAAQv9c,OAAOoD,OAAO,CAAC,EAAG0wO,EAAW,CACtFR,UAAWA,EACX/xO,UAAWisN,KAAWjsN,EAAW4lR,EAAQ,GAAG7zC,sBAA+B27D,EAAW/Y,GACtF/5C,SAAU,OACVthH,SAAU,KACVpiH,QAAsBo1M,EAAAA,cAAoBgyP,GAAa,CACrDvsO,UAAWA,EACXtyO,KAAMA,EACNirM,KAAMA,GACLxzL,MACD,EC3DC,SAASsnc,GAAcC,GAC5B,IAAIC,EACJ,MAAMC,EAAe,IAAIl9c,SAAQM,IAC/B28c,EAAUD,GAAO,KACf18c,GAAQ,EAAK,GACb,IAEE2H,EAASA,KACD,OAAZg1c,QAAgC,IAAZA,GAA8BA,GAAS,EAI7D,OAFAh1c,EAAOhR,KAAO,CAACkmd,EAAQvtW,IAAastW,EAAajmd,KAAKkmd,EAAQvtW,GAC9D3nG,EAAOpH,QAAUq8c,EACVj1c,CACT,CCjBA,IAAI06R,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAWA,MACM0yb,GAAmB,EACnBtrc,GAAUmwI,IACd,IAAI,SACF9mG,EAAQ,UACRm1L,GACEruF,EACJ,MAAMixI,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GAC5D,OAAO8Y,EAAwBnhF,EAAAA,cAAoBwyP,GAAsB,CACvE7yP,WAAY,CACVitC,KAAMjtC,KAAW25D,EAAQ8nB,EAAW/Y,KAErC/3O,GAAU,EAETs/Z,GAAsBA,CAAC77c,EAAM80K,KACjC,IAAI,UACF48D,EAAS,IACTx0O,GACE43K,EACJ,OAAoBm3C,EAAAA,cAAoB/4M,GAAS,CAC/Cw+N,UAAWA,EACXx0O,IAAKA,GACJ8C,EAAK,EAEJ0+c,GAAsBzyP,EAAAA,YAAiB,CAACh8K,EAAON,KACnD,MAAM,IACJj2C,EACAg4O,UAAWwsO,EACXp1N,aAAc61N,EAAkB,SAChCppO,EAAQ,SACRt8G,EAAWulV,GAAgB,IAC3B54N,EAAG,eACHiL,EAAc,aACdsH,GACEloN,GACE,aACJixO,EAAY,kBACZzmB,EAAiB,QACjB7yL,EAAO,UACPiuD,GACEo2F,EAAAA,WAAiBg1D,IACfvvC,EAAYwsO,GAAmBh9L,EAAa,WAa5CuzE,EAA+BxoI,EAAAA,cAAoB,OAAQ,CAC/DtsN,UAAW,GAAG+xO,aACAzlB,EAAAA,cAAoBkjI,GAAe,CACjDxvV,UAAW,GAAG+xO,mBAGT2rO,EAAK7pI,GAAUorI,GAAkB,CACtCltO,YACAh0O,MAnBeg6L,KAAA,CACfj+L,KAAM,MACNk+E,UAAW,mBACXj+E,IAAa,OAARA,QAAwB,IAARA,EAAiBA,EA/CnB,IAgEnBiG,UAfmBk/c,IAAMjzP,KAAW,CACpC,CAAC,GAAG8lB,SAA0B,OAARkU,QAAwB,IAARA,EAAiBA,EAAoB,QAAd/vH,IAe7D2gI,OAZ4BsoN,IDzEzB,SAAmBptO,EAAWmf,GACnC,MAAO,CACLsF,WAA+B,OAAnBtF,QAA8C,IAAnBA,EAA4BA,EAAiB,GAAGnf,YAE3F,CCqEsC8qB,CAAU9qB,EAAWmf,GAavDm/F,UAAU,EACVC,UAAWwE,EACXx7N,WACA6vH,aAAcA,KAA8B,OAAvB61N,QAAsD,IAAvBA,OAAgC,EAASA,OAAgD,OAAtBlkN,QAAoD,IAAtBA,OAA+B,EAASA,MAAwB/6P,SAASuE,KAC9NsxO,WACA4iB,eACA0jN,oBAAmBA,KAOrB,OAJA5vP,EAAAA,oBAA0Bt8K,GAAK,IAAMvxC,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG67c,GAAM,CACzE3rO,YACA9pK,cAEK4rQ,CAAM,IAKf,IAAIurI,GAAW,EACR,SAASC,GAAmBC,GACjC,MAAMvvI,EAAYzjH,EAAAA,OAAa,MACfkmG,GAAc,WA0G9B,MAAO,CAxGSlmG,EAAAA,SAAc,KAG5B,MAAMh1M,EAAQ/Z,IACZ,IAAIw3B,EACyB,QAA5BA,EAAKg7S,EAAUrxS,eAA4B,IAAP3J,GAAyBA,EAAGzd,MAAM/Z,EAAI,EAGvEya,EAAOqyB,IACX,IAAK0lS,EAAUrxS,QAAS,CAEtB,MAAM6gb,EAAaA,OAEnB,OADAA,EAAW7md,KAAO,OACX6md,CACT,CACA,MACEvnc,KAAMq6P,EAAU,UAChBtgC,EAAS,QACT9pK,GACE8nQ,EAAUrxS,QACRg7a,EAAkB,GAAG3nO,YACrB,QACF76N,EAAO,KACPwzL,EAAI,KACJjrM,EAAI,IACJlC,EAAG,UACHyC,EAAS,MACTjC,EAAK,QACLwyV,GACElmT,EACJixa,EAAal3K,GAAO/5P,EAAQ,CAAC,UAAW,OAAQ,OAAQ,MAAO,YAAa,QAAS,YACvF,IAAI0pO,EAAYx2Q,EAKhB,YAJkBmI,IAAdquQ,GAAyC,OAAdA,IAC7BqrM,IAAY,EACZrrM,EAAY,gBAAgBqrM,MAEvBZ,IAAcz8c,IACnBswQ,EAAW5zQ,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGy5c,GAAa,CACtD/9c,IAAKw2Q,EACL78P,QAAuBo1M,EAAAA,cAAoBgyP,GAAa,CACtDvsO,UAAWA,EACXtyO,KAAMA,EACNirM,KAAMA,GACLxzL,GACH2tP,UAAW,MACX7kQ,UAAWisN,KAAWxsN,GAAQ,GAAGi6c,KAAmBj6c,IAAQO,EAAuB,OAAZioE,QAAgC,IAAZA,OAAqB,EAASA,EAAQjoE,WACjIjC,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAe,OAAZomE,QAAgC,IAAZA,OAAqB,EAASA,EAAQlqE,OAAQA,GACzGwyV,QAASA,KACK,OAAZA,QAAgC,IAAZA,GAA8BA,IAClDxuV,GAAS,KAIN,KACLuV,EAAMy8P,EAAU,IAElB,EAWExzQ,EAAQ,CACZyX,OACAisD,QAVc1mE,IACd,IAAIw3B,OACQrvB,IAARnI,EACF+Z,EAAM/Z,GAEuB,QAA5Bw3B,EAAKg7S,EAAUrxS,eAA4B,IAAP3J,GAAyBA,EAAGkvC,SACnE,GAoCF,MA9Ba,CAAC,OAAQ,UAAW,UAAW,QAAS,WAChD1qE,SAAQkG,IA2BXc,EAAMd,GA1BW+/c,CAACC,EAAcnmV,EAAUi3N,KACxC,IAAIlmT,EASAq1a,EACAC,EARFt1a,EADEo1a,GAAwC,kBAAjBA,GAA6B,YAAaA,EAC1DA,EAEA,CACPvoc,QAASuoc,GAMW,oBAAbnmV,EACTqmV,EAAgBrmV,GAEhBomV,EAAiBpmV,EACjBqmV,EAAgBpvH,GAElB,MAAMV,EAAepxV,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC/C0uV,QAASovH,EACTrmV,SAAUomV,GACTr1a,GAAS,CACV5qC,SAEF,OAAOuY,EAAK63U,EAAa,CAEL,IAEjBtvV,CAAK,GACX,IAE2B+rN,EAAAA,cAAoByyP,GAAQtgd,OAAOoD,OAAO,CACtEtE,IAAK,kBACJ+hd,EAAe,CAChBtva,IAAK+/R,KAET,CChNA,IAAI9nQ,GAAU,KACVonC,GAAM5rF,GAAYA,IAClB+5b,GAAY,GACZoC,GAAsB,CAAC,EAC3B,SAASC,KACP,MAAM,aACJ12N,EAAY,SACZ7vH,EAAQ,IACR2sH,EAAG,SACHrQ,EAAQ,IACR77O,GACE6ld,GACEnyN,GAAoC,OAAjBtE,QAA0C,IAAjBA,OAA0B,EAASA,MAAmBppP,SAASuE,KACjH,MAAO,CACL6kP,aAAcA,IAAMsE,EACpBn0H,WACA2sH,MACArQ,WACA77O,MAEJ,CACA,MAAM+ld,GAA4BxzP,EAAAA,YAAiB,CAACh8K,EAAON,KACzD,MAAM,cACJsva,EAAa,KACbn1D,GACE75W,GACE,aACJixO,IACE/7M,EAAAA,EAAAA,YAAW87M,IACTvvC,EAAY6tO,GAAoB7tO,WAAawvC,EAAa,WAC1Dw+L,GAAYv6Y,EAAAA,EAAAA,YAAWkzY,KACtBgF,EAAK7pI,GAAUwrI,GAAmB5gd,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGy9c,GAAgB,CACrGvtO,cACEguO,EAAU93Y,UAcd,OAbAqkJ,EAAAA,oBAA0Bt8K,GAAK,KAC7B,MAAMymB,EAAWh4D,OAAOoD,OAAO,CAAC,EAAG67c,GAOnC,OANAj/c,OAAOC,KAAK+3D,GAAUl9D,SAAQmR,IAC5B+rD,EAAS/rD,GAAU,WAEjB,OADAy/Y,IACOuzD,EAAIhzc,GAAQoI,MAAM4qc,EAAKx1c,UAChC,CAAC,IAEI,CACLuuD,WACA0zV,OACD,IAEIt2E,CAAM,IAETmsI,GAAmC1zP,EAAAA,YAAiB,CAAC1iM,EAAGomB,KAC5D,MAAOsva,EAAeW,GAAoB3zP,EAAAA,SAAeuzP,IACnD11D,EAAOA,KACX81D,EAAiBJ,GAAiB,EAEpCvzP,EAAAA,UAAgB69L,EAAM,IACtB,MAAMh7Y,EAASq7T,KACT11C,EAAgB3lR,EAAOu7T,mBACvBw1I,EAAoB/wc,EAAOs7T,mBAC3BvpS,EAAQ/xB,EAAO+oB,WACf6mU,EAAmBzyI,EAAAA,cAAoBwzP,GAAc,CACzD9va,IAAKA,EACLm6W,KAAMA,EACNm1D,cAAeA,IAEjB,OAAoBhzP,EAAAA,cAAoBgjH,GAAgB,CACtDv9F,UAAW+iD,EACXnT,cAAeu+L,EACfh/a,MAAOA,GACN/xB,EAAOw7T,aAAex7T,EAAOw7T,aAAao0B,GAAOA,EAAI,IAE1D,SAASohH,KACP,IAAKl4Y,GAAS,CACZ,MAAMm4Y,EAAiBrgd,SAAS4+V,yBAC1B0hH,EAAa,CACjBC,SAAUF,GAuBZ,OArBAn4Y,GAAUo4Y,OAEVhxW,IAAI,KACkBsjO,IACpBZ,CAAyBzlH,EAAAA,cAAoB0zP,GAAqB,CAChEhwa,IAAK3vC,IACH,MAAM,SACJo2D,EAAQ,KACR0zV,GACE9pZ,GAAQ,CAAC,EAEboB,QAAQM,UAAUrJ,MAAK,MAChB2nd,EAAW5pZ,UAAYA,IAC1B4pZ,EAAW5pZ,SAAWA,EACtB4pZ,EAAWl2D,KAAOA,EAClBg2D,KACF,GACA,IAEFC,EAAe,GAGvB,CAEKn4Y,GAAQxR,WAIb+mZ,GAAUjkd,SAAQskd,IAChB,MAAM,KACJp+c,EAAI,QACJ6gK,GACEu9S,EAGJ,IAAKv9S,EACH,OAAQ7gK,GACN,IAAK,OAED4vG,IAAI,KACF,MAAMqvW,EAAUz2Y,GAAQxR,SAASz+C,KAAKvZ,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG+9c,IAAsB/B,EAAKxza,SACrF,OAAZq0a,QAAgC,IAAZA,GAA8BA,EAAQhmd,KAAKmld,EAAK97c,SACpE87c,EAAK0C,WAAW7B,EAAQ,IAE1B,MAEJ,IAAK,UACHrvW,IAAI,KACU,OAAZpnC,SAAgC,IAAZA,IAA8BA,GAAQxR,SAASwN,QAAQ45Y,EAAKtgd,IAAI,IAEtF,MAEF,QAEI8xG,IAAI,KACF,IAAImxW,EACJ,MAAM9B,GAAW8B,EAAoBv4Y,GAAQxR,UAAUh3D,GAAMqT,MAAM0tc,EAAmB/kO,GAAmBoiO,EAAKj7b,OAClG,OAAZ87b,QAAgC,IAAZA,GAA8BA,EAAQhmd,KAAKmld,EAAK97c,SACpE87c,EAAK0C,WAAW7B,EAAQ,IAIlC,IAGFlB,GAAY,GACd,CAkEA,MAeMiD,GAPoB,CACxBzoc,KA/DF,SAAcqyB,GACZ,MAAM3gC,EAAS80c,IAAcz8c,IAC3B,IAAI28c,EACJ,MAAMb,EAAO,CACXp+c,KAAM,OACN4qC,SACAtoC,UACAw+c,WAAY15c,IACV63c,EAAU73c,CAAE,GAIhB,OADA22c,GAAUljd,KAAKujd,GACR,KACDa,EACFrvW,IAAI,KACFqvW,GAAS,IAGXb,EAAKv9S,SAAU,CACjB,CACD,IAGH,OADA6/S,KACOz2c,CACT,EAwCEu6D,QAVc1mE,IACdigd,GAAUljd,KAAK,CACbmF,KAAM,UACNlC,QAEF4id,IAAa,EAMb91a,OAzEF,SAAgCA,GAC9Bu1a,GAAsBnhd,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG+9c,IAAsBv1a,GAE5EglE,IAAI,KACF,IAAIt6E,EACsE,QAAzEA,EAAiB,OAAZkzC,SAAgC,IAAZA,QAAqB,EAASA,GAAQkiV,YAAyB,IAAPp1X,GAAyBA,EAAGv8B,KAAKyvE,GAAQ,GAE/H,EAmEEy4Y,WDXa,SAAoBpB,GACjC,OAAOD,GAAmBC,EAC5B,ECUEnoJ,uCAAwCC,IAN1B,CAAC,UAAW,OAAQ,UAAW,QAAS,WAShD79T,SAAQkG,IACdghd,GAAchhd,GAAQ,WACpB,IAAK,IAAIspO,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAEzB,OAlDJ,SAAkBvpO,EAAMmjB,GACP4nT,KAIf,MAAM9gU,EAAS80c,IAAcz8c,IAC3B,IAAI28c,EACJ,MAAMb,EAAO,CACXp+c,OACAmjB,OACA7gB,UACAw+c,WAAY15c,IACV63c,EAAU73c,CAAE,GAIhB,OADA22c,GAAUljd,KAAKujd,GACR,KACDa,EACFrvW,IAAI,KACFqvW,GAAS,IAGXb,EAAKv9S,SAAU,CACjB,CACD,IAGH,OADA6/S,KACOz2c,CACT,CAsBW81c,CAAS//c,EAAMmjB,EACxB,CAAC,IAsBH,YCpQA,SADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,8DAAiE,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,gEAAoE,KAAQ,OAAQ,MAAS,YCMzV,IAAI+9b,GAAe,SAAsBrwa,EAAON,GAC9C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMk2Q,KAEV,EAOA,SAJ2Bt0P,EAAAA,WAAiBq0P,ICd5C,IAA4BpxW,EAAAA,EAAAA,eAAc,MCwE1C,SAtEmB,SAAsB5zG,GACvC,IAAIkld,EAAkBlld,EAAQkld,gBAC5Bzpb,EAAaz7B,EAAQy7B,WACrB6uN,EAAMtqP,EAAQsqP,IACd66N,EAAqBnld,EAAQ4wV,UAC7BA,OAAmC,IAAvBu0H,EAAgC,CAAC,EAAIA,EAC/Chmc,EAAOyxU,EAAUzxU,KACnBimc,EAAmBx0H,EAAU91T,MAC7BA,OAA6B,IAArBsqb,EAA8B,SAAWA,EAEjD7pO,EAAa7C,IADCruK,EAAAA,EAAAA,YACyB,GACvCg7Y,EAAW9pO,EAAW,GACtB+pO,EAAc/pO,EAAW,GACvBgqO,GAAen7Y,EAAAA,EAAAA,UACfo7Y,EAAY70P,EAAAA,aAAkB,SAAUz2K,GAC1C,MAAoB,oBAAT/6B,EACFA,EAAK+6B,GAEM,kBAAT/6B,EACFA,EAEF+6B,CACT,GAAG,CAAC/6B,IAGJ,SAASsmc,IACPhuO,GAAIv0I,OAAOqiX,EAAaxib,QAC1B,CAuCA,OAtCA+mC,EAAAA,EAAAA,YAAU,WACR,IAAI47Y,EAAc,CAAC,EACnB,GAAIR,EACF,GAAIzpb,EAAY,CACdiqb,EAAY3md,MAAQymd,EAAUN,EAAgBnmd,OAC9C,IAAI6C,EAAM0oP,EAAM,QAAU,OACZ,UAAVxvN,IACF4qb,EAAY9jd,GAAOsjd,EAAgBtjd,IAEvB,WAAVk5B,IACF4qb,EAAY9jd,GAAOsjd,EAAgBtjd,GAAOsjd,EAAgBnmd,MAAQ,EAClE2md,EAAYrpY,UAAYiuK,EAAM,kBAAoB,oBAEtC,QAAVxvN,IACF4qb,EAAY9jd,GAAOsjd,EAAgBtjd,GAAOsjd,EAAgBnmd,MAC1D2md,EAAYrpY,UAAY,oBAE5B,MACEqpY,EAAYjnd,OAAS+md,EAAUN,EAAgBzmd,QACjC,UAAVq8B,IACF4qb,EAAYtnd,IAAM8md,EAAgB9md,KAEtB,WAAV08B,IACF4qb,EAAYtnd,IAAM8md,EAAgB9md,IAAM8md,EAAgBzmd,OAAS,EACjEind,EAAYrpY,UAAY,oBAEZ,QAAVvhD,IACF4qb,EAAYtnd,IAAM8md,EAAgB9md,IAAM8md,EAAgBzmd,OACxDind,EAAYrpY,UAAY,qBAQ9B,OAJAopY,IACAF,EAAaxib,QAAU00M,IAAI,WACzB6tO,EAAYI,EACd,IACOD,CACT,GAAG,CAACP,EAAiBzpb,EAAY6uN,EAAKxvN,EAAO0qb,IACtC,CACLpjd,MAAOijd,EAEX,ECtEA,IAAI/tB,GAAe,CACjBv4b,MAAO,EACPN,OAAQ,EACRN,KAAM,EACNC,IAAK,GCJQ,SAASk6P,GAAaqtN,EAAc7nO,GACjD,IAAImuK,EAAWt7L,EAAAA,OAAag1P,GAG1B1yW,EADmBylI,GADC/nB,EAAAA,SAAe,CAAC,GACe,GACpB,GASjC,MAAO,CAACs7L,EAASlpX,QARjB,SAAkB4oC,GAChB,IAAIooB,EAA8B,oBAAZpoB,EAAyBA,EAAQsgV,EAASlpX,SAAW4oC,EACvEooB,IAAak4T,EAASlpX,SACxB+6M,EAAS/pJ,EAAUk4T,EAASlpX,SAE9BkpX,EAASlpX,QAAUgxD,EACnBkf,EAAY,CAAC,EACf,EAEF,CCbA,IAGI2yW,GAAqBtnd,KAAKylH,IAAI,KADX,ICGR,SAAS8hW,GAAU/9b,GAChC,IACEyzN,EAAa7C,IADCruK,EAAAA,EAAAA,UAAS,GACgB,GACvCv5B,EAAQyqM,EAAW,GACnBuqO,EAAWvqO,EAAW,GACpBwqO,GAAY37Y,EAAAA,EAAAA,QAAO,GACnB47Y,GAAc57Y,EAAAA,EAAAA,UAUlB,OATA47Y,EAAYjjb,QAAUjb,EAGtBkuN,IAAsB,WACpB,IAAIiwO,EAC6C,QAAhDA,EAAuBD,EAAYjjb,eAA8C,IAAzBkjb,GAAmCA,EAAqBppd,KAAKmpd,EACxH,GAAG,CAACl1a,IAGG,WACDi1a,EAAUhjb,UAAY+N,IAG1Bi1a,EAAUhjb,SAAW,EACrB+ib,EAASC,EAAUhjb,SACrB,CACF,CC9BA,IAAIu0Z,GAAe,CACjBv4b,MAAO,EACPN,OAAQ,EACRN,KAAM,EACNC,IAAK,EACLkK,MAAO,GCFF,SAAS/B,GAAUhH,GACxB,IAAI2md,EASJ,OARI3md,aAAesvC,KACjBq3a,EAAM,CAAC,EACP3md,EAAI3B,SAAQ,SAAUo0B,EAAGt0B,GACvBwod,EAAIxod,GAAKs0B,CACX,KAEAk0b,EAAM3md,EAED8G,KAAKE,UAAU2/c,EACxB,CAEO,SAASC,GAAevkd,GAC7B,OAAOmC,OAAOnC,GAAK4O,QAAQ,KAFF,UAG3B,CACO,SAAS41c,GAAa1xH,EAAUC,EAAWmmD,EAAUh6V,GAC1D,SAECg6V,GAEDh6V,IAEa,IAAb4zS,QAEa3qV,IAAb2qV,KAAyC,IAAdC,GAAqC,OAAdA,GAIpD,CCXA,SArB6BhkI,EAAAA,YAAiB,SAAUh8K,EAAON,GAC7D,IAAI+hM,EAAYzhM,EAAMyhM,UACpB0kK,EAAWnmW,EAAMmmW,SACjBhqX,EAAS6jB,EAAM7jB,OACf1uB,EAAQuyC,EAAMvyC,MAChB,OAAK04Y,IAAiC,IAArBA,EAASurE,QAGN11P,EAAAA,cAAoB,SAAU,CAChDt8K,IAAKA,EACLvwC,KAAM,SACNO,UAAW,GAAG/C,OAAO80O,EAAW,YAChCh0O,MAAOA,EACP,cAA0B,OAAX0uB,QAA8B,IAAXA,OAAoB,EAASA,EAAOw1b,eAAiB,UACvFr1Y,QAAS,SAAiB/a,GACxB4kV,EAASyrE,OAAO,MAAO,CACrBrwZ,MAAOA,GAEX,GACC4kV,EAAS0rE,SAAW,KAbd,IAcX,ICWA,SA9BgC71P,EAAAA,YAAiB,SAAUh8K,EAAON,GAChE,IAMI94B,EANApT,EAAWwsC,EAAMxsC,SACnBiuO,EAAYzhM,EAAMyhM,UAClB9+H,EAAQ3iE,EAAM2iE,MAChB,IAAKA,EACH,OAAO,KAKT,IAAImvW,EAAc,CAAC,EAYnB,MAXuB,YAAnBnnd,EAAAA,GAAAA,GAAQg4G,IAAsCq5G,EAAAA,eAAqBr5G,GAGrEmvW,EAAYn+c,MAAQgvG,EAFpBmvW,EAAcnvW,EAIC,UAAbnvG,IACFoT,EAAUkrc,EAAYn+c,OAEP,SAAbH,IACFoT,EAAUkrc,EAAYtod,MAEjBod,EAAuBo1M,EAAAA,cAAoB,MAAO,CACvDtsN,UAAW,GAAG/C,OAAO80O,EAAW,kBAChC/hM,IAAKA,GACJ94B,GAAW,IAChB,ICjBA,IAAImrc,GAA6B/1P,EAAAA,YAAiB,SAAUh8K,EAAON,GACjE,IAAI+hM,EAAYzhM,EAAMyhM,UACpB71N,EAAKo0B,EAAMp0B,GACX2wT,EAAOv8R,EAAMu8R,KACbpgT,EAAS6jB,EAAM7jB,OACfm1O,EAAStxN,EAAMsxN,OACf0gN,EAAchya,EAAMiya,KACpBC,OAA4B,IAAhBF,EAAyB,CAAC,EAAIA,EAC1Cvkd,EAAQuyC,EAAMvyC,MACdiC,EAAYswC,EAAMtwC,UAClBy2Y,EAAWnmW,EAAMmmW,SACjBgsE,EAAenya,EAAMmya,aACrBx8N,EAAM31M,EAAM21M,IACZy8N,EAAkBpya,EAAMoya,gBACxBC,EAAarya,EAAMqya,WACnB7nN,EAAoBxqN,EAAMwqN,kBAC1B8F,EAAiBtwN,EAAMswN,eAGvB1pB,EAAa7C,IADCruK,EAAAA,EAAAA,WAAS,GACgB,GACvChuD,EAAOk/N,EAAW,GAClBg/E,EAAUh/E,EAAW,GAErBG,EAAahD,IADEruK,EAAAA,EAAAA,UAAS,MACgB,GACxC48Y,EAAcvrO,EAAW,GACzBwrO,EAAiBxrO,EAAW,GAC1ByrO,EAAkBN,EAAU93Q,KAC9Bq4Q,OAA+B,IAApBD,EAA6B,OAASA,EAC/CjwM,EAAU,GAAG51Q,OAAOif,EAAI,eACxB8mc,EAAiB,GAAG/ld,OAAO80O,EAAW,aACtCkxO,EAAiC,OAAhBL,EAAuB,GAAG3ld,OAAO41Q,EAAS,KAAK51Q,OAAO2ld,GAAe,KACtFM,EAA+B,OAAXz2b,QAA8B,IAAXA,OAAoB,EAASA,EAAOy2b,kBAS/E,IAAIv4Q,EAAoB2hB,EAAAA,cAAoBn+J,GAAM,CAChDye,QAAS,SAAiB82E,GACxB,IAAInmJ,EAAMmmJ,EAAKnmJ,IACbwoP,EAAWriG,EAAKqiG,SAClB48N,EAAWpld,EAAKwoP,GAChBmwE,GAAQ,EACV,EACAnkF,UAAW,GAAG90O,OAAO+ld,EAAgB,SACrC9mc,GAAI22P,EACJv2B,UAAW,EACXuK,KAAM,UACN,wBAAyBo8N,EACzB57N,aAAc,CAACu7N,GACf,kBAAoCl9c,IAAtBw9c,EAAkCA,EAAoB,qBACnEr2I,EAAK/mU,KAAI,SAAUq9c,GACpB,IAAI9yH,EAAW8yH,EAAI9yH,SACjB5zS,EAAW0ma,EAAI1ma,SACf6zS,EAAY6yH,EAAI7yH,UAChB/yV,EAAM4ld,EAAI5ld,IACVg0G,EAAQ4xW,EAAI5xW,MACV6xW,EAAYrB,GAAa1xH,EAAUC,EAAWmmD,EAAUh6V,GAC5D,OAAoB6vK,EAAAA,cAAoB87B,GAAU,CAChD7qP,IAAKA,EACL2e,GAAI,GAAGjf,OAAO41Q,EAAS,KAAK51Q,OAAOM,GACnCspP,KAAM,SACN,gBAAiB3qO,GAAM,GAAGjf,OAAOif,EAAI,WAAWjf,OAAOM,GACvDk/C,SAAUA,GACI6vK,EAAAA,cAAoB,OAAQ,KAAM/6G,GAAQ6xW,GAA0B92P,EAAAA,cAAoB,SAAU,CAChH7sN,KAAM,SACN,aAAcijd,GAAmB,SACjCpmO,SAAU,EACVt8O,UAAW,GAAG/C,OAAO+ld,EAAgB,qBACrCp2Y,QAAS,SAAiB3mD,GACxBA,EAAEojC,kBAzCR,SAAqBwI,EAAOt0D,GAC1Bs0D,EAAMrH,iBACNqH,EAAMxI,kBACNotV,EAASyrE,OAAO,SAAU,CACxB3kd,IAAKA,EACLs0D,MAAOA,GAEX,CAmCMwxZ,CAAYp9b,EAAG1oB,EACjB,GACC+yV,GAAammD,EAASwB,YAAc,QACzC,KACA,SAASqrE,EAAa/vZ,GAQpB,IAPA,IAAIgwZ,EAAc12I,EAAKjjU,QAAO,SAAUu5c,GACtC,OAAQA,EAAI1ma,QACd,IACIknF,EAAgB4/U,EAAYv5c,WAAU,SAAUm5c,GAClD,OAAOA,EAAI5ld,MAAQqld,CACrB,KAAM,EACF1lc,EAAMqmc,EAAY3pd,OACbD,EAAI,EAAGA,EAAIujB,EAAKvjB,GAAK,EAAG,CAE/B,IAAIwpd,EAAMI,EADV5/U,GAAiBA,EAAgBpwE,EAASr2C,GAAOA,GAEjD,IAAKimc,EAAI1ma,SAEP,YADAoma,EAAeM,EAAI5ld,IAGvB,CACF,EAgCAkoE,EAAAA,EAAAA,YAAU,WAER,IAAIkkK,EAAM5pO,SAAS4jP,eAAes/N,GAC9Bt5O,GAAOA,EAAIopL,gBACbppL,EAAIopL,gBAAe,EAEvB,GAAG,CAAC6vD,KACJn9Y,EAAAA,EAAAA,YAAU,WACHztD,GACH6qc,EAAe,KAEnB,GAAG,CAAC7qc,IAGJ,IAAIwrc,GAAYlzW,EAAAA,GAAAA,GAAgB,CAAC,EAAG21I,EAAM,cAAgB,aAAcw8N,GACnE51I,EAAKjzU,SACR4pd,EAAUlrV,WAAa,SACvBkrV,EAAUrka,MAAQ,GAEpB,IAAIwwP,EAAmB1jF,MAAW37G,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO+ld,EAAgB,QAAS/8N,IACrFw9N,EAAW7hN,EAAS,KAAoBt1C,EAAAA,cAAoB6iG,GAAUz3F,GAAS,CACjFqa,UAAWixO,EACXtgd,QAASioM,EACT2nD,UAASu6E,EAAKjzU,QAASoe,EACvBg+N,gBAAiBkgF,EACjBvmB,iBAAkB1jF,KAAW0jF,EAAkB/uC,GAC/CR,gBAAiB,GACjBE,gBAAiB,GACjBxF,kBAAmBA,GAClB0nN,GAAyBl2P,EAAAA,cAAoB,SAAU,CACxD7sN,KAAM,SACNO,UAAW,GAAG/C,OAAO80O,EAAW,aAChCh0O,MAAOyld,EACP,gBAAiB,UACjB,gBAAiB3wM,EACjB32P,GAAI,GAAGjf,OAAOif,EAAI,SAClB,gBAAiBlE,EACjB8uO,UApEF,SAAmB7gO,GACjB,IAAI+oC,EAAQ/oC,EAAE+oC,MACd,GAAKh3C,EAOL,OAAQg3C,GACN,KAAKwtL,GAAQgB,GACX8lO,GAAc,GACdr9b,EAAEukC,iBACF,MACF,KAAKgyL,GAAQkB,KACX4lO,EAAa,GACbr9b,EAAEukC,iBACF,MACF,KAAKgyL,GAAQU,IACXg5E,GAAQ,GACR,MACF,KAAK15E,GAAQhhI,MACb,KAAKghI,GAAQI,MACS,OAAhBgmO,GACFD,EAAWC,EAAa38b,OArBxB,CAACu2N,GAAQkB,KAAMlB,GAAQhhI,MAAOghI,GAAQI,OAAOh0O,SAASomD,KACxDknQ,GAAQ,GACRjwS,EAAEukC,iBAuBR,GAyCGu4Z,IACH,OAAoBz2P,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,mBAAoB/xO,GAC/DjC,MAAOA,EACPiyC,IAAKA,GACJyza,EAAuBn3P,EAAAA,cAAoBo3P,GAAW,CACvD3xO,UAAWA,EACXtlN,OAAQA,EACRgqX,SAAUA,IAEd,IACA,SAA4BnqL,EAAAA,KAAW+1P,IAAe,SAAUz4b,EAAGjd,GACjE,OAGEA,EAAc,SAElB,IC3FA,SAjGc,SAAiB2jC,GAC7B,IAAIyhM,EAAYzhM,EAAMyhM,UACpB71N,EAAKo0B,EAAMp0B,GACXqP,EAAS+kB,EAAM/kB,OACfS,EAAQskB,EAAMtkB,MACd23b,EAAarza,EAAM6ya,IACnB5ld,EAAMomd,EAAWpmd,IACjBg0G,EAAQoyW,EAAWpyW,MACnB90D,EAAWkna,EAAWlna,SACtB6zS,EAAYqzH,EAAWrzH,UACvB5lJ,EAAOi5Q,EAAWj5Q,KAClB2lJ,EAAW//S,EAAM+/S,SACjBuzH,EAAgBtza,EAAMsza,cACtBlB,EAAkBpya,EAAMoya,gBACxBjsE,EAAWnmW,EAAMmmW,SACjB7pU,EAAUt8B,EAAMs8B,QAChBm6K,EAAUz2M,EAAMy2M,QAChB44I,EAASrvV,EAAMqvV,OACf74I,EAAYx2M,EAAMw2M,UAClB6pG,EAAcrgT,EAAMqgT,YACpBC,EAAYtgT,EAAMsgT,UAClB7yV,EAAQuyC,EAAMvyC,MACd8ld,EAAWvza,EAAMuza,SACjBC,EAAkBxza,EAAMwza,gBACtBC,EAAY,GAAG9md,OAAO80O,EAAW,QACjCqxO,EAAYrB,GAAa1xH,EAAUC,EAAWmmD,EAAUh6V,GAC5D,SAAS47N,EAAgBpyP,GACnBw2B,GAGJmwB,EAAQ3mD,EACV,CASA,IAAI+9b,EAAY13P,EAAAA,SAAc,WAC5B,OAAO5hB,GAAyB,kBAAVn5F,EAAkC+6G,EAAAA,cAAoB,OAAQ,KAAM/6G,GAASA,CACrG,GAAG,CAACA,EAAOm5F,IACPu5Q,EAAS33P,EAAAA,OAAa,MAC1BA,EAAAA,WAAgB,WACVtgM,GAASi4b,EAAOvlb,SAClBulb,EAAOvlb,QAAQ1S,OAEnB,GAAG,CAACA,IACJ,IAAI3rB,EAAoBisN,EAAAA,cAAoB,MAAO,CACjD/uN,IAAKA,EACL,gBAAiBukd,GAAevkd,GAChCyC,UAAWisN,KAAW83P,GAAWzzW,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO8md,EAAW,gBAAiBX,GAAY,GAAGnmd,OAAO8md,EAAW,WAAYx4b,GAAS,GAAGtuB,OAAO8md,EAAW,aAActna,GAAW,GAAGx/C,OAAO8md,EAAW,UAAW/3b,IAC/QjuB,MAAOA,EACP6uE,QAASyrM,GACK/rD,EAAAA,cAAoB,MAAO,CACzCt8K,IAAKi0a,EACLp9N,KAAM,MACN,gBAAiBt7N,EACjBrP,GAAIA,GAAM,GAAGjf,OAAOif,EAAI,SAASjf,OAAOM,GACxCyC,UAAW,GAAG/C,OAAO8md,EAAW,QAChC,gBAAiB7nc,GAAM,GAAGjf,OAAOif,EAAI,WAAWjf,OAAOM,GACvD,gBAAiBk/C,EACjB6/L,SAAU7/L,EAAW,KAAOlxB,EAAS,GAAK,EAC1CqhD,QAAS,SAAiB3mD,GACxBA,EAAEojC,kBACFgvN,EAAgBpyP,EAClB,EACA6gO,UAAWA,EACX6pG,YAAaA,EACbC,UAAWA,EACX7pG,QAASA,EACT44I,OAAQA,GACP3zW,GAAsBsgM,EAAAA,cAAoB,MAAO,CAClD,YAAa,SACbvuN,MAAO,CACLrD,MAAO,EACPN,OAAQ,EACR0J,SAAU,WACVC,SAAU,SACVK,QAAS,IAEV,OAAOnH,OAAO6md,EAAiB,QAAQ7md,OAAO4md,IAAYn5Q,GAAqB4hB,EAAAA,cAAoB,OAAQ,CAC5GtsN,UAAW,GAAG/C,OAAO8md,EAAW,UAC/Br5Q,GAAOn5F,GAASyyW,GAAYZ,GAA0B92P,EAAAA,cAAoB,SAAU,CACrF7sN,KAAM,SACNonP,KAAM,MACN,aAAc67N,GAAmB,SACjCpmO,SAAU/wN,EAAS,GAAK,EACxBvrB,UAAW,GAAG/C,OAAO8md,EAAW,WAChCn3Y,QAAS,SAAiB3mD,GA1D5B,IAAqB4rC,EA2DjB5rC,EAAEojC,mBA3DewI,EA4DL5rC,GA3DRukC,iBACNqH,EAAMxI,kBACNotV,EAASyrE,OAAO,SAAU,CACxB3kd,IAAKA,EACLs0D,MAAOA,GAwDT,GACCy+R,GAAammD,EAASwB,YAAc,SACvC,OAAO2rE,EAAgBA,EAAcvjd,GAAQA,CAC/C,EC5EA,IAkBI4wZ,GAAU,SAAiBizD,GAC7B,IAAIxgU,EAAOwgU,EAAOxlb,SAAW,CAAC,EAC5Bylb,EAAmBzgU,EAAKhxC,YACxBA,OAAmC,IAArByxW,EAA8B,EAAIA,EAChDC,EAAoB1gU,EAAK7wC,aACzBA,OAAqC,IAAtBuxW,EAA+B,EAAIA,EAGpD,GAAIF,EAAOxlb,QAAS,CAClB,IAAI2lb,EAAwBH,EAAOxlb,QAAQvlC,wBACzCuB,EAAQ2pd,EAAsB3pd,MAC9BN,EAASiqd,EAAsBjqd,OACjC,GAAIH,KAAK6E,IAAIpE,EAAQg4G,GAAe,EAClC,MAAO,CAACh4G,EAAON,EAEnB,CACA,MAAO,CAACs4G,EAAaG,EACvB,EAKIyxW,GAAe,SAAsBxpc,EAAMypc,GAC7C,OAAOzpc,EAAKypc,EAAyB,EAAI,EAC3C,EAuhBA,SAthB8Bj4P,EAAAA,YAAiB,SAAUh8K,EAAON,GAC9D,IAAIhwC,EAAYswC,EAAMtwC,UACpBjC,EAAQuyC,EAAMvyC,MACdme,EAAKo0B,EAAMp0B,GACXsoc,EAAWl0a,EAAMk0a,SACjB5iO,EAAYtxM,EAAMsxM,UAClBqE,EAAM31M,EAAM21M,IACZhzI,EAAQ3iE,EAAM2iE,MACdwjS,EAAWnmW,EAAMmmW,SACjBhqX,EAAS6jB,EAAM7jB,OACfg4b,EAAcn0a,EAAMm0a,YACpBhC,EAAenya,EAAMmya,aACrB7la,EAAWtM,EAAMsM,SACjB+la,EAAarya,EAAMqya,WACnB+B,EAAcp0a,EAAMo0a,YACpBn4H,EAAYj8S,EAAMi8S,UAChB3mG,EAAoBt5B,EAAAA,WAAiBq4P,IACvC5yO,EAAY6T,EAAkB7T,UAC9B86F,EAAOjnF,EAAkBinF,KACvB/qF,GAAe/7K,EAAAA,EAAAA,QAAO,MACtB6+Y,GAAe7+Y,EAAAA,EAAAA,QAAO,MACtB8+Y,GAAgB9+Y,EAAAA,EAAAA,QAAO,MACvB++Y,GAAiB/+Y,EAAAA,EAAAA,QAAO,MACxBg/Y,GAAah/Y,EAAAA,EAAAA,QAAO,MACpBi/Y,GAAgBj/Y,EAAAA,EAAAA,QAAO,MACvBk/Y,GAAoBl/Y,EAAAA,EAAAA,QAAO,MAC3Bw+Y,EAAyC,QAAhBE,GAAyC,WAAhBA,EAQpDvwN,EAAiB7f,GAPC4f,GAAa,GAAG,SAAUtnP,EAAM0oB,GAC5Ckvb,GAA0BG,GAC5BA,EAAY,CACVxuV,UAAWvpH,EAAO0oB,EAAO,OAAS,SAGxC,IAC+C,GAC/C6vb,EAAgBhxN,EAAe,GAC/BixN,EAAmBjxN,EAAe,GAQlCkxN,EAAiB/wO,GAPE4f,GAAa,GAAG,SAAUtnP,EAAM0oB,IAC5Ckvb,GAA0BG,GAC7BA,EAAY,CACVxuV,UAAWvpH,EAAO0oB,EAAO,MAAQ,UAGvC,IACgD,GAChDgwb,EAAeD,EAAe,GAC9BE,EAAkBF,EAAe,GAEjCluO,EAAa7C,IADCruK,EAAAA,EAAAA,UAAS,CAAC,EAAG,IACY,GACvCu/Y,EAA4BruO,EAAW,GACvCsuO,EAA+BtuO,EAAW,GAE1CG,EAAahD,IADEruK,EAAAA,EAAAA,UAAS,CAAC,EAAG,IACY,GACxCy/Y,EAAiBpuO,EAAW,GAC5BquO,EAAoBruO,EAAW,GAE/BI,EAAapD,IADEruK,EAAAA,EAAAA,UAAS,CAAC,EAAG,IACY,GACxC2/Y,EAAUluO,EAAW,GACrBmuO,EAAanuO,EAAW,GAExBouO,EAAaxxO,IADEruK,EAAAA,EAAAA,UAAS,CAAC,EAAG,IACY,GACxC8/Y,EAAgBD,EAAW,GAC3BE,EAAmBF,EAAW,GAC5BG,EPlGC,SAAwB1E,GAC7B,IAAI2E,GAAWlgZ,EAAAA,EAAAA,QAAO,IAGpB6oC,EADaylI,IADEruK,EAAAA,EAAAA,UAAS,CAAC,GACe,GACf,GACvBljE,GAAQijE,EAAAA,EAAAA,QAA+B,oBAAjBu7Y,EAA8BA,IAAiBA,GACrE4E,EAAc1E,IAAU,WAC1B,IAAI9ib,EAAU57B,EAAM47B,QACpBunb,EAASvnb,QAAQnlC,SAAQ,SAAUkqB,GACjCib,EAAUjb,EAASib,EACrB,IACAunb,EAASvnb,QAAU,GACnB57B,EAAM47B,QAAUA,EAChBkwE,EAAY,CAAC,EACf,IAKA,MAAO,CAAC9rG,EAAM47B,QAJd,SAAiBjb,GACfwic,EAASvnb,QAAQpkC,KAAKmpB,GACtByic,GACF,EAEF,CO8EwBC,CAAe,IAAI37a,KACvC47a,EAAmB/xO,GAAe2xO,EAAiB,GACnDK,EAAWD,EAAiB,GAC5BE,EAAcF,EAAiB,GAC7BG,EV9HS,SAAoB15I,EAAMw5I,EAAUG,GACjD,OAAO3gZ,EAAAA,EAAAA,UAAQ,WAKb,IAJA,IAAI4gZ,EACA3gd,EAAM,IAAI0kC,IACVk8a,EAAaL,EAASpgd,IAA2B,QAAtBwgd,EAAS55I,EAAK,UAA2B,IAAX45I,OAAoB,EAASA,EAAOlpd,MAAQ01b,GACrG0zB,EAAcD,EAAW5sd,KAAO4sd,EAAWhsd,MACtCf,EAAI,EAAGA,EAAIkzU,EAAKjzU,OAAQD,GAAK,EAAG,CACvC,IAKMitd,EALFrpd,EAAMsvU,EAAKlzU,GAAG4D,IACdyX,EAAOqxc,EAASpgd,IAAI1I,GAGnByX,IAEHA,EAAOqxc,EAASpgd,IAA8B,QAAzB2gd,EAAQ/5I,EAAKlzU,EAAI,UAA0B,IAAVitd,OAAmB,EAASA,EAAMrpd,MAAQ01b,IAElG,IAAI/jN,EAASppO,EAAIG,IAAI1I,IAAQ0zO,GAAc,CAAC,EAAGj8N,GAG/Ck6N,EAAOjrO,MAAQ0id,EAAcz3O,EAAOp1O,KAAOo1O,EAAOx0O,MAGlDoL,EAAI1D,IAAI7E,EAAK2xO,EACf,CACA,OAAOppO,CACT,GAAG,CAAC+mU,EAAK/mU,KAAI,SAAUq9c,GACrB,OAAOA,EAAI5ld,GACb,IAAGG,KAAK,KAAM2od,EAAUG,GAC1B,CUmGmBK,CAAWh6I,EAAMw5I,EAAUZ,EAAe,IAGvDqB,EAAiCxC,GAAaiB,EAA2BhB,GACzEwC,EAAsBzC,GAAamB,EAAgBlB,GACnDyC,GAAe1C,GAAaqB,EAASpB,GACrC0C,GAAqB3C,GAAawB,EAAevB,GACjD2C,GAAajtd,KAAKC,MAAM4sd,GAAkC7sd,KAAKC,MAAM6sd,EAAsBC,IAC3FG,GAAyBD,GAAaJ,EAAiCG,GAAqBH,EAAiCE,GAG7HI,GAA4B,GAAGnqd,OAAO80O,EAAW,0BACjDs1O,GAAe,EACfC,GAAe,EAWnB,SAASC,GAAalwd,GACpB,OAAIA,EAAQgwd,GACHA,GAELhwd,EAAQiwd,GACHA,GAEFjwd,CACT,CAlBKktd,GAGMt+N,GACTohO,GAAe,EACfC,GAAertd,KAAKwhB,IAAI,EAAGsrc,EAAsBI,MAJjDE,GAAeptd,KAAKyhB,IAAI,EAAGyrc,GAAyBJ,GACpDO,GAAe,GAmBjB,IAAIE,IAAiBzhZ,EAAAA,EAAAA,QAAO,MAE1B0hZ,GAAcpzO,IADCruK,EAAAA,EAAAA,YAC0B,GACzC0hZ,GAAgBD,GAAY,GAC5BE,GAAmBF,GAAY,GACjC,SAASG,KACPD,GAAiB/4b,KAAKw8B,MACxB,CACA,SAASy8Z,KACHL,GAAe9ob,SACjB85B,aAAagvZ,GAAe9ob,QAEhC,ER5Ka,SAAsBsR,EAAK83a,GACxC,IACE5wO,EAAa7C,IADCruK,EAAAA,EAAAA,YACyB,GACvC+hZ,EAAgB7wO,EAAW,GAC3B8wO,EAAmB9wO,EAAW,GAE9BG,EAAahD,IADEruK,EAAAA,EAAAA,UAAS,GACgB,GACxCiiZ,EAAgB5wO,EAAW,GAC3B6wO,EAAmB7wO,EAAW,GAE9BI,EAAapD,IADEruK,EAAAA,EAAAA,UAAS,GACgB,GACxCmiZ,EAAe1wO,EAAW,GAC1B2wO,EAAkB3wO,EAAW,GAE7BouO,EAAaxxO,IADEruK,EAAAA,EAAAA,YACyB,GACxC0gZ,EAAab,EAAW,GACxBwC,EAAgBxC,EAAW,GACzBxpN,GAAYt2L,EAAAA,EAAAA,UAiEZuiZ,GAAwBviZ,EAAAA,EAAAA,UAwBxBwiZ,GAAiBxiZ,EAAAA,EAAAA,QAAO,MAC5BwiZ,EAAe7pb,QAAU,CACvBowX,aAvFF,SAAsB7oY,GACpB,IAAIuic,EAAcvic,EAAE0pC,QAAQ,GAC1BhE,EAAU68Z,EAAY78Z,QACtBC,EAAU48Z,EAAY58Z,QACxBo8Z,EAAiB,CACf5kc,EAAGuoC,EACHn+B,EAAGo+B,IAEL5tD,OAAOgwI,cAAcquH,EAAU39N,QACjC,EA+EE8vX,YA9EF,SAAqBvoY,GACnB,GAAK8hc,EAAL,CAGA,IAAIU,EAAexic,EAAE0pC,QAAQ,GAC3BhE,EAAU88Z,EAAa98Z,QACvBC,EAAU68Z,EAAa78Z,QACzBo8Z,EAAiB,CACf5kc,EAAGuoC,EACHn+B,EAAGo+B,IAEL,IAAI2rE,EAAU5rE,EAAUo8Z,EAAc3kc,EAClCo0G,EAAU5rE,EAAUm8Z,EAAcv6b,EACtCs6b,EAASvwV,EAASC,GAClB,IAAIpsE,EAAMx8B,KAAKw8B,MACf88Z,EAAiB98Z,GACjBg9Z,EAAgBh9Z,EAAM68Z,GACtBI,EAAc,CACZjlc,EAAGm0G,EACH/pG,EAAGgqG,GAlBqB,CAoB5B,EA0DEq3R,WAzDF,WACE,GAAKk5D,IACLC,EAAiB,MACjBK,EAAc,MAGV3B,GAAY,CACd,IAAIgC,EAAYhC,EAAWtjc,EAAI+kc,EAC3BQ,EAAYjC,EAAWl5b,EAAI26b,EAC3BziE,EAAOzrZ,KAAK6E,IAAI4pd,GAChB/iE,EAAO1rZ,KAAK6E,IAAI6pd,GAGpB,GAAI1ud,KAAKwhB,IAAIiqY,EAAMC,GAxEA,GAwE4B,OAC/C,IAAI8I,EAAWi6D,EACXh6D,EAAWi6D,EACftsN,EAAU39N,QAAU1gC,OAAO6vI,aAAY,WACjC5zI,KAAK6E,IAAI2vZ,GA3EK,KA2E8Bx0Z,KAAK6E,IAAI4vZ,GA3EvC,IA4EhB1wZ,OAAOgwI,cAAcquH,EAAU39N,SAKjCopb,EAhFe,IA8Efr5D,GAAY8yD,IA9EG,IA+Ef7yD,GAAY6yD,IAEd,GAjFiB,GAkFnB,CACF,EAgCE7c,QA5BF,SAAiBz+a,GACf,IAAI+pC,EAAS/pC,EAAE+pC,OACbE,EAASjqC,EAAEiqC,OAGT04Z,EAAQ,EACRljE,EAAOzrZ,KAAK6E,IAAIkxD,GAChB21V,EAAO1rZ,KAAK6E,IAAIoxD,GAChBw1V,IAASC,EACXijE,EAA0C,MAAlCN,EAAsB5pb,QAAkBsxB,EAASE,EAChDw1V,EAAOC,GAChBijE,EAAQ54Z,EACRs4Z,EAAsB5pb,QAAU,MAEhCkqb,EAAQ14Z,EACRo4Z,EAAsB5pb,QAAU,KAE9Bopb,GAAUc,GAAQA,IACpB3ic,EAAEukC,gBAEN,GAUA8hK,EAAAA,WAAgB,WAId,SAASu8P,EAAiB5ic,GACxBsic,EAAe7pb,QAAQ8vX,YAAYvoY,EACrC,CACA,SAAS6ic,EAAgB7ic,GACvBsic,EAAe7pb,QAAQmwX,WAAW5oY,EACpC,CAkBA,OAdAlmB,SAASiB,iBAAiB,YAAa6nd,EAAkB,CACvD9xZ,SAAS,IAEXh3D,SAASiB,iBAAiB,WAAY8nd,EAAiB,CACrD/xZ,SAAS,IAIX/mB,EAAItR,QAAQ19B,iBAAiB,cApB7B,SAA2BilB,GACzBsic,EAAe7pb,QAAQowX,aAAa7oY,EACtC,GAkB8D,CAC5D8wC,SAAS,IAEX/mB,EAAItR,QAAQ19B,iBAAiB,SAd7B,SAAsBilB,GACpBsic,EAAe7pb,QAAQgma,QAAQz+a,EACjC,GAYoD,CAClD8wC,SAAS,IAEJ,WACLh3D,SAASwiD,oBAAoB,YAAasma,GAC1C9od,SAASwiD,oBAAoB,WAAYuma,EAC3C,CACF,GAAG,GACL,CQ4BEC,CAAajE,GAAgB,SAAUvtV,EAASC,GAC9C,SAASwxV,EAAOr6W,EAAUp7C,GACxBo7C,GAAS,SAAUt3G,GAEjB,OADekwd,GAAalwd,EAAQk8D,EAEtC,GACF,CAGA,QAAK2zZ,KAGD3C,EACFyE,EAAO7D,EAAkB5tV,GAEzByxV,EAAO1D,EAAiB9tV,GAE1BqwV,KACAD,MACO,EACT,KACAniZ,EAAAA,EAAAA,YAAU,WAOR,OANAoiZ,KACIH,KACFF,GAAe9ob,QAAU/Y,YAAW,WAClCgic,GAAiB,EACnB,GAAG,MAEEE,EACT,GAAG,CAACH,KAIJ,IAAIuB,GN/MS,SAAyB1C,EAAYY,EAAwBnvY,EAAW+uY,EAAqBmC,EAAkBC,EAAwBzlU,GACpJ,IAGI0lU,EACAtld,EACAuld,EALAx8I,EAAOnpL,EAAKmpL,KACd43I,EAAc/gU,EAAK+gU,YACnBx+N,EAAMviG,EAAKuiG,IAab,MATI,CAAC,MAAO,UAAUr9O,SAAS67c,IAC7B2E,EAAW,QACXtld,EAAWmiP,EAAM,QAAU,OAC3BojO,EAAgBpvd,KAAK6E,IAAIk5E,KAEzBoxY,EAAW,SACXtld,EAAW,MACXuld,GAAiBrxY,IAEZnS,EAAAA,EAAAA,UAAQ,WACb,IAAKgnQ,EAAKjzU,OACR,MAAO,CAAC,EAAG,GAIb,IAFA,IAAIsjB,EAAM2vT,EAAKjzU,OACXsyZ,EAAWhvY,EACNvjB,EAAI,EAAGA,EAAIujB,EAAKvjB,GAAK,EAAG,CAC/B,IAAI45D,EAASgzZ,EAAWtgd,IAAI4mU,EAAKlzU,GAAG4D,MAAQ01b,GAC5C,GAAIh5b,KAAKC,MAAMq5D,EAAOzvD,GAAYyvD,EAAO61Z,IAAanvd,KAAKC,MAAMmvd,EAAgBlC,GAAyB,CACxGj7D,EAAWvyZ,EAAI,EACf,KACF,CACF,CAEA,IADA,IAAImjO,EAAa,EACRlpM,EAAK1W,EAAM,EAAG0W,GAAM,EAAGA,GAAM,EAEpC,IADc2yb,EAAWtgd,IAAI4mU,EAAKj5S,GAAIr2B,MAAQ01b,IAClCnvb,GAAYuld,EAAe,CACrCvsP,EAAalpM,EAAK,EAClB,KACF,CAEF,OAAOkpM,GAAcovL,EAAW,CAAC,EAAG,GAAK,CAACpvL,EAAYovL,EACxD,GAAG,CAACq6D,EAAYY,EAAwBJ,EAAqBmC,EAAkBC,EAAwBE,EAAe5E,EAAa53I,EAAK/mU,KAAI,SAAUq9c,GACpJ,OAAOA,EAAI5ld,GACb,IAAGG,KAAK,KAAMuoP,GAChB,CMsKyBqjO,CAAgB/C,EAErCY,GAEA5C,EAAyBW,EAAgBG,EAEzC0B,EAEAC,GAEAC,GAAoBh2O,GAAcA,GAAc,CAAC,EAAG3gM,GAAQ,CAAC,EAAG,CAC9Du8R,KAAMA,KAER08I,GAAoBl1O,GAAe40O,GAAkB,GACrDO,GAAeD,GAAkB,GACjCE,GAAaF,GAAkB,GAG7BG,GAAc12O,IAAS,WACzB,IAAIz1O,EAAM2K,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK05O,EAC1E+nO,EAAYpD,EAAWtgd,IAAI1I,IAAQ,CACrC7C,MAAO,EACPN,OAAQ,EACRN,KAAM,EACNmK,MAAO,EACPlK,IAAK,GAEP,GAAIwqd,EAAwB,CAE1B,IAAIqF,EAAe1E,EAGfj/N,EACE0jO,EAAU1ld,MAAQihd,EACpB0E,EAAeD,EAAU1ld,MAChB0ld,EAAU1ld,MAAQ0ld,EAAUjvd,MAAQwqd,EAAgBiC,KAC7DyC,EAAeD,EAAU1ld,MAAQ0ld,EAAUjvd,MAAQysd,IAI9CwC,EAAU7vd,MAAQord,EACzB0E,GAAgBD,EAAU7vd,KACjB6vd,EAAU7vd,KAAO6vd,EAAUjvd,OAASwqd,EAAgBiC,KAC7DyC,IAAiBD,EAAU7vd,KAAO6vd,EAAUjvd,MAAQysd,KAEtD7B,EAAgB,GAChBH,EAAiBoC,GAAaqC,GAChC,KAAO,CAEL,IAAIC,EAAgBxE,EAChBsE,EAAU5vd,KAAOsrd,EACnBwE,GAAiBF,EAAU5vd,IAClB4vd,EAAU5vd,IAAM4vd,EAAUvvd,QAAUird,EAAe8B,KAC5D0C,IAAkBF,EAAU5vd,IAAM4vd,EAAUvvd,OAAS+sd,KAEvDhC,EAAiB,GACjBG,EAAgBiC,GAAasC,GAC/B,CACF,IAIEC,GAAcz1O,IADEruK,EAAAA,EAAAA,YAC0B,GAC1C+jZ,GAAWD,GAAY,GACvBE,GAAcF,GAAY,GAE1BG,GAAc51O,IADEruK,EAAAA,EAAAA,WAAS,GACiB,GAC1CkkZ,GAAUD,GAAY,GACtBE,GAAaF,GAAY,GACvB1G,GAAc12I,EAAKjjU,QAAO,SAAUu5c,GACtC,OAAQA,EAAI1ma,QACd,IAAG32C,KAAI,SAAUq9c,GACf,OAAOA,EAAI5ld,GACb,IACIuqd,GAAW,SAAkBv0Z,GAC/B,IAAIsmD,EAAe0pW,GAAYpmd,QAAQ4sd,IAAYnoO,GAC/C1kO,EAAMqmc,GAAY3pd,OAElBwwd,EAAS7G,IADI1pW,EAAetmD,EAASr2C,GAAOA,GAEhD8sc,GAAYI,EACd,EACI7oJ,GAAgB,SAAuBt7S,GACzC,IAAIhH,EAAOgH,EAAEhH,KACT+rY,EAAQ/kK,GAAOs+N,EACf8F,EAAkB9G,GAAY,GAC9B+G,EAAiB/G,GAAYA,GAAY3pd,OAAS,GACtD,OAAQqlB,GAEN,IAAK,YAEGslc,GACFuD,GAAS98D,EAAQ,GAAK,GAExB,MAIJ,IAAK,aAEGu5D,GACFuD,GAAS98D,GAAS,EAAI,GAExB,MAIJ,IAAK,UAED/kY,EAAEukC,iBACG+5Z,GACHuD,IAAU,GAEZ,MAIJ,IAAK,YAED7hc,EAAEukC,iBACG+5Z,GACHuD,GAAS,GAEX,MAIJ,IAAK,OAED7hc,EAAEukC,iBACFw/Z,GAAYK,GACZ,MAIJ,IAAK,MAEDpkc,EAAEukC,iBACFw/Z,GAAYM,GACZ,MAIJ,IAAK,QACL,IAAK,QAEDrkc,EAAEukC,iBACFm4Z,EAAWoH,GAAU9jc,GACrB,MAGJ,IAAK,YACL,IAAK,SAED,IAAIskc,EAAchH,GAAYpmd,QAAQ4sd,IAClCS,EAAY39I,EAAK9iU,MAAK,SAAUo5c,GAClC,OAAOA,EAAI5ld,MAAQwsd,EACrB,IACgBhI,GAA2B,OAAdyI,QAAoC,IAAdA,OAAuB,EAASA,EAAUn6H,SAAwB,OAAdm6H,QAAoC,IAAdA,OAAuB,EAASA,EAAUl6H,UAAWmmD,EAAwB,OAAd+zE,QAAoC,IAAdA,OAAuB,EAASA,EAAU/ta,YAE1Px2B,EAAEukC,iBACFvkC,EAAEojC,kBACFotV,EAASyrE,OAAO,SAAU,CACxB3kd,IAAKwsd,GACLl4Z,MAAO5rC,IAGLskc,IAAgBhH,GAAY3pd,OAAS,EACvCkud,IAAU,GAEVA,GAAS,IAMrB,EAGI2C,GAAe,CAAC,EAChBlG,EACFkG,GAAaxkO,EAAM,cAAgB,cAAgBw8N,EAEnDgI,GAAa1zV,UAAY0rV,EAE3B,IAAIiI,GAAW79I,EAAK/mU,KAAI,SAAUq9c,EAAKxpd,GACrC,IAAI4D,EAAM4ld,EAAI5ld,IACd,OAAoB+uN,EAAAA,cAAoBq+P,GAAS,CAC/Czuc,GAAIA,EACJ61N,UAAWA,EACXx0O,IAAKA,EACL4ld,IAAKA,EAELpld,MAAa,IAANpE,OAAU+L,EAAY+kd,GAC7Bp6H,SAAU8yH,EAAI9yH,SACdomD,SAAUA,EACVlrX,OAAQhuB,IAAQqkP,EAChB51N,MAAOzuB,IAAQwsd,GACfnG,cAAehna,EACf8la,gBAA4B,OAAXj2b,QAA8B,IAAXA,OAAoB,EAASA,EAAOi2b,gBACxEmB,SAAUN,GAAY3pd,OACtBkqd,gBAAiBnqd,EAAI,EACrBizE,QAAS,SAAiB3mD,GACxB08b,EAAWpld,EAAK0oB,EAClB,EACA6gO,UAAWy6E,GACXx6E,QAAS,WACFmjO,IACHF,GAAYzsd,GAEdmsd,GAAYnsd,GACZqqd,KACK9C,EAAepmb,UAIfunN,IACH6+N,EAAepmb,QAAQx9B,WAAa,GAEtC4jd,EAAepmb,QAAQz9B,UAAY,EACrC,EACA0+X,OAAQ,WACNqqF,QAAYtkd,EACd,EACAirV,YAAa,WACXw5H,IAAW,EACb,EACAv5H,UAAW,WACTu5H,IAAW,EACb,GAEJ,IAGIS,GAAiB,WACnB,OAAOtE,GAAY,WACjB,IAAIuE,EACAC,EAAW,IAAItgb,IACfugb,EAA0D,QAA9CF,EAAsB9F,EAAWrmb,eAA6C,IAAxBmsb,OAAiC,EAASA,EAAoB1xd,wBAoBpI,OAnBA0zU,EAAKtzU,SAAQ,SAAU47K,GACrB,IAAI61S,EACAztd,EAAM43K,EAAM53K,IACZ0td,EAA0D,QAA/CD,EAAuBjG,EAAWrmb,eAA8C,IAAzBssb,OAAkC,EAASA,EAAqBzsb,cAAc,mBAAoBthC,OAAO6kd,GAAevkd,GAAM,OACpM,GAAI0td,EAAS,CACX,IAAIC,EAlbG,SAAoB/H,EAAKlqd,GAExC,IAAIy5G,EAAcywW,EAAIzwW,YACpBG,EAAeswW,EAAItwW,aACnBmnC,EAAYmpU,EAAInpU,UAChBmsH,EAAag9M,EAAIh9M,WACfglN,EAAwBhI,EAAIhqd,wBAC9BuB,EAAQywd,EAAsBzwd,MAC9BN,EAAS+wd,EAAsB/wd,OAC/BN,EAAOqxd,EAAsBrxd,KAC7BC,EAAMoxd,EAAsBpxd,IAG9B,OAAIE,KAAK6E,IAAIpE,EAAQg4G,GAAe,EAC3B,CAACh4G,EAAON,EAAQN,EAAOb,EAAca,KAAMC,EAAMd,EAAcc,KAEjE,CAAC24G,EAAaG,EAAcszJ,EAAYnsH,EACjD,CAia4BoxU,CAAWH,EAASF,GACpCM,EAAeh3O,GAAe62O,EAAa,GAC3Cxwd,EAAQ2wd,EAAa,GACrBjxd,EAASixd,EAAa,GACtBvxd,EAAOuxd,EAAa,GACpBtxd,EAAMsxd,EAAa,GACrBP,EAAS1od,IAAI7E,EAAK,CAChB7C,MAAOA,EACPN,OAAQA,EACRN,KAAMA,EACNC,IAAKA,GAET,CACF,IACO+wd,CACT,GACF,GACArlZ,EAAAA,EAAAA,YAAU,WACRmlZ,IACF,GAAG,CAAC/9I,EAAK/mU,KAAI,SAAUq9c,GACrB,OAAOA,EAAI5ld,GACb,IAAGG,KAAK,OACR,IAAI4td,GAAqB9J,IAAU,WAEjC,IAAIj+H,EAAgB0tE,GAAQnvK,GACxBypO,EAAgBt6D,GAAQ2zD,GACxB4G,EAAiBv6D,GAAQ4zD,GAC7BW,EAA6B,CAACjiI,EAAc,GAAKgoI,EAAc,GAAKC,EAAe,GAAIjoI,EAAc,GAAKgoI,EAAc,GAAKC,EAAe,KAC5I,IAAIC,EAAax6D,GAAQg0D,GACzBW,EAAW6F,GACX,IAAIC,EAAmBz6D,GAAQ+zD,GAC/Be,EAAiB2F,GAGjB,IAAIC,EAAqB16D,GAAQ8zD,GACjCW,EAAkB,CAACiG,EAAmB,GAAKF,EAAW,GAAIE,EAAmB,GAAKF,EAAW,KAG7Fb,IACF,IAGIgB,GAAkB/+I,EAAKpvU,MAAM,EAAG+rd,IAChCqC,GAAgBh/I,EAAKpvU,MAAMgsd,GAAa,GACxCqC,GAAa,GAAG7ud,OAAOw+O,GAAmBmwO,IAAkBnwO,GAAmBowO,KAG/EhL,GAAkB0F,EAAWtgd,IAAI27O,GAOnCmqO,GANkBC,GAAa,CAC7BnL,gBAAiBA,GACjBzpb,WAAYmtb,EACZh4H,UAAWA,EACXtmG,IAAKA,IAEwBloP,OAGjC0nE,EAAAA,EAAAA,YAAU,WACRikZ,IACF,GAAG,CAAC9nO,EAAWylO,GAAcC,GAAcpld,GAAU2+c,IAAkB3+c,GAAUqkd,GAAahC,KAG9F9+Y,EAAAA,EAAAA,YAAU,WACR6lZ,IAEF,GAAG,CAACrlO,IAGJ,IAEIgmO,GACAC,GACAC,GACAC,GALAC,KAAgBP,GAAWlyd,OAC3B0yd,GAAa,GAAGrvd,OAAO80O,EAAW,aAiBtC,OAZIwyO,EACEt+N,GACFimO,GAAYhH,EAAgB,EAC5B+G,GAAW/G,IAAkBoC,KAE7B2E,GAAW/G,EAAgB,EAC3BgH,GAAYhH,IAAkBmC,KAGhC8E,GAAU9G,EAAe,EACzB+G,GAAa/G,IAAiBgC,IAEZ/6P,EAAAA,cAAoBwiB,GAAgB,CACtD4B,SAAU46O,IACIh/P,EAAAA,cAAoB,MAAO,CACzCt8K,IAAKk5L,GAAcl5L,EAAK8xM,GACxB+E,KAAM,UACN,mBAAoB09N,EAAyB,aAAe,WAC5Dvkd,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,QAAS/xO,GACpDjC,MAAOA,EACP+oP,UAAW,WAET8gO,IACF,GACct7P,EAAAA,cAAoBigQ,GAAc,CAChDv8a,IAAK40a,EACL9gd,SAAU,OACVmvG,MAAOA,EACP8+H,UAAWA,IACIzlB,EAAAA,cAAoBwiB,GAAgB,CACnD4B,SAAU46O,IACIh/P,EAAAA,cAAoB,MAAO,CACzCtsN,UAAWisN,KAAWqgQ,IAAYh8W,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAOqvd,GAAY,cAAeL,IAAW,GAAGhvd,OAAOqvd,GAAY,eAAgBJ,IAAY,GAAGjvd,OAAOqvd,GAAY,aAAcH,IAAU,GAAGlvd,OAAOqvd,GAAY,gBAAiBF,KAC7Rp8a,IAAK80a,GACSx4P,EAAAA,cAAoBwiB,GAAgB,CAClD4B,SAAU46O,IACIh/P,EAAAA,cAAoB,MAAO,CACzCt8K,IAAK+0a,EACL/kd,UAAW,GAAG/C,OAAO80O,EAAW,aAChCh0O,MAAO,CACLi6E,UAAW,aAAa/6E,OAAOiod,EAAe,QAAQjod,OAAOood,EAAc,OAC3Er8Z,WAAY0+Z,GAAgB,YAAShid,IAEtCgld,GAAuBp+P,EAAAA,cAAoBo3P,GAAW,CACvD1za,IAAKi1a,EACLlzO,UAAWA,EACXtlN,OAAQA,EACRgqX,SAAUA,EACV14Y,MAAOkzO,GAAcA,GAAc,CAAC,EAAuB,IAApBy5O,GAAS9wd,YAAe8L,EAAY+kd,IAAe,CAAC,EAAG,CAC5FnyV,WAAY+zV,GAAc,SAAW,SAExB//P,EAAAA,cAAoB,MAAO,CAC1CtsN,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,aAAazhI,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,qBAAsByyO,EAASgI,SAChIzud,MAAOgud,SACYz/P,EAAAA,cAAoB+1P,GAAe3qP,GAAS,CAAC,EAAGpnL,EAAO,CAC1Eoya,gBAA4B,OAAXj2b,QAA8B,IAAXA,OAAoB,EAASA,EAAOi2b,gBACxE1ya,IAAKg1a,EACLjzO,UAAWA,EACX86F,KAAMi/I,GACN9rd,WAAYqsd,IAAejF,GAC3BqF,YAAa/E,MACGp7P,EAAAA,cAAoBigQ,GAAc,CAClDv8a,IAAK60a,EACL/gd,SAAU,QACVmvG,MAAOA,EACP8+H,UAAWA,KAGf,IChkBA,SAtB2BzlB,EAAAA,YAAiB,SAAUh8K,EAAON,GAC3D,IAAI+hM,EAAYzhM,EAAMyhM,UACpB/xO,EAAYswC,EAAMtwC,UAClBjC,EAAQuyC,EAAMvyC,MACdme,EAAKo0B,EAAMp0B,GACXqP,EAAS+kB,EAAM/kB,OACfmhc,EAASp8a,EAAMo8a,OACf9va,EAAWtM,EAAMsM,SACnB,OAAoB0vK,EAAAA,cAAoB,MAAO,CAC7CpwM,GAAIA,GAAM,GAAGjf,OAAOif,EAAI,WAAWjf,OAAOyvd,GAC1C7lO,KAAM,WACNvK,SAAU/wN,EAAS,GAAK,EACxB,kBAAmBrP,GAAM,GAAGjf,OAAOif,EAAI,SAASjf,OAAOyvd,GACvD,eAAgBnhc,EAChBxtB,MAAOA,EACPiC,UAAWisN,KAAW8lB,EAAWxmN,GAAU,GAAGtuB,OAAO80O,EAAW,WAAY/xO,GAC5EgwC,IAAKA,GACJ4M,EACL,ICjBA,IAAI6pL,GAAY,CAAC,gBACfiO,GAAa,CAAC,QAAS,OAkCzB,SA1BwB,SAA2BhxF,GACjD,IAAIipU,EAAejpU,EAAKipU,aACtBp6O,EAAYC,GAAyB9uF,EAAM+iF,IAE3ComG,EADsBvgH,EAAAA,WAAiBq4P,IACd93I,KAC3B,OAAI8/I,EAcKA,EAbc17O,GAAcA,GAAc,CAAC,EAAGsB,GAAY,CAAC,EAAG,CAEnEq6O,MAAO//I,EAAK/mU,KAAI,SAAUqvK,GACxB,IAAI5jE,EAAQ4jE,EAAM5jE,MAChBh0G,EAAM43K,EAAM53K,IACZsvd,EAAer6O,GAAyBr9D,EAAOu/D,IACjD,OAAoBpoB,EAAAA,cAAoBwgQ,GAASp1P,GAAS,CACxDyrP,IAAK5xW,EACLh0G,IAAKA,EACLmvd,OAAQnvd,GACPsvd,GACL,MAEkCE,IAElBzgQ,EAAAA,cAAoBygQ,GAAYx6O,EACtD,EC9BA,IAAI9L,GAAY,CAAC,MAAO,cAAe,QAAS,YAAa,0BAmD7D,SA7CmB,SAAsBn2L,GACvC,IAAIp0B,EAAKo0B,EAAMp0B,GACb0lO,EAAYtxM,EAAMsxM,UAClB4iO,EAAWl0a,EAAMk0a,SACjBC,EAAcn0a,EAAMm0a,YACpBuI,EAAyB18a,EAAM08a,uBAC7BpnO,EAAoBt5B,EAAAA,WAAiBq4P,IACvC5yO,EAAY6T,EAAkB7T,UAC9B86F,EAAOjnF,EAAkBinF,KACvBogJ,EAAkBzI,EAAS0I,QAC3BC,EAAmB,GAAGlwd,OAAO80O,EAAW,YAC5C,OAAoBzlB,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,qBAC7BzlB,EAAAA,cAAoB,MAAO,CACzCtsN,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,YAAa,GAAG90O,OAAO80O,EAAW,aAAa90O,OAAOwnd,IAAcn0W,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,qBAAsBk7O,KAC7KpgJ,EAAK/mU,KAAI,SAAU6kC,GACpB,IAAIptC,EAAMotC,EAAKptC,IACbg5P,EAAc5rN,EAAK4rN,YACnB62N,EAAYzib,EAAK5sC,MACjBsvd,EAAgB1ib,EAAK3qC,UACrBstd,EAA6B3ib,EAAKqib,uBAClCH,EAAer6O,GAAyB7nM,EAAM87L,IAC5Cl7M,EAAShuB,IAAQqkP,EACrB,OAAoBt1B,EAAAA,cAAoB6pC,GAAWz+B,GAAS,CAC1Dn6N,IAAKA,EACL+0P,QAAS/mO,EACTgrO,YAAaA,EACbD,iBAAkB02N,IAA0BM,GAC5C72N,gBAAiB,GAAGx5P,OAAOkwd,EAAkB,YAC5C3I,EAAS+I,gBAAgB,SAAU7pU,EAAM1zG,GAC1C,IAAIusN,EAAc74G,EAAK3lJ,MACrBu+P,EAAkB54G,EAAK1jJ,UACzB,OAAoBssN,EAAAA,cAAoBwgQ,GAASp1P,GAAS,CAAC,EAAGm1P,EAAc,CAC1E96O,UAAWo7O,EACXjxc,GAAIA,EACJwwc,OAAQnvd,EACRind,SAAUyI,EACV1hc,OAAQA,EACRxtB,MAAOkzO,GAAcA,GAAc,CAAC,EAAGm8O,GAAY7wN,GACnDv8P,UAAWisN,KAAWohQ,EAAe/wN,GACrCtsN,IAAKA,IAET,GACF,KACF,EChDA,IAAIy2L,GAAY,CAAC,KAAM,YAAa,YAAa,QAAS,YAAa,YAAa,mBAAoB,WAAY,WAAY,cAAe,eAAgB,cAAe,qBAAsB,SAAU,OAAQ,yBAA0B,eAAgB,WAAY,aAAc,cAAe,oBAAqB,iBAAkB,aAsB5UkU,GAAO,EAsJX,MCjLA,GD4BwBruB,EAAAA,YAAiB,SAAUh8K,EAAON,GACxD,IAAI9zB,EAAKo0B,EAAMp0B,GACbo5N,EAAmBhlM,EAAMyhM,UACzBA,OAAiC,IAArBuD,EAA8B,UAAYA,EACtDt1O,EAAYswC,EAAMtwC,UAClBk4O,EAAQ5nM,EAAM4nM,MACdhiH,EAAY5lF,EAAM4lF,UAClB0rH,EAAYtxM,EAAMsxM,UAClB4rO,EAAmBl9a,EAAMk9a,iBACzB/2E,EAAWnmW,EAAMmmW,SACjB+tE,EAAWl0a,EAAMk0a,SACjBiJ,EAAqBn9a,EAAMm0a,YAC3BA,OAAqC,IAAvBgJ,EAAgC,MAAQA,EACtDhL,EAAenya,EAAMmya,aACrBiL,EAAcp9a,EAAMo9a,YACpBC,EAAqBr9a,EAAMq9a,mBAC3Blhc,EAAS6jB,EAAM7jB,OACf81b,EAAOjya,EAAMiya,KACbyK,EAAyB18a,EAAM08a,uBAC/BL,EAAer8a,EAAMq8a,aACrBlzO,EAAWnpM,EAAMmpM,SACjBkpO,EAAarya,EAAMqya,WACnB+B,EAAcp0a,EAAMo0a,YACpB5pN,EAAoBxqN,EAAMwqN,kBAC1B8F,EAAiBtwN,EAAMswN,eACvB2rF,EAAYj8S,EAAMi8S,UAClBh6G,EAAYC,GAAyBliM,EAAOm2L,IAC1ComG,EAAOvgH,EAAAA,SAAc,WACvB,OAAQ4rB,GAAS,IAAItuO,QAAO,SAAU+gC,GACpC,OAAOA,GAA0B,YAAlB1vC,EAAAA,GAAAA,GAAQ0vC,IAAsB,QAASA,CACxD,GACF,GAAG,CAACutM,IACA+N,EAAoB,QAAd/vH,EACN03V,EE3DS,WACb,IAIIA,EAJApJ,EAAWt8c,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CACjFskd,QAAQ,EACRU,SAAS,GA6BX,OAzBEU,GADe,IAAbpJ,EACe,CACfgI,QAAQ,EACRU,SAAS,IAEW,IAAb1I,EACQ,CACfgI,QAAQ,EACRU,SAAS,GAGMj8O,GAAc,CAC7Bu7O,QAAQ,GACe,YAAtBvxd,EAAAA,GAAAA,GAAQupd,GAAyBA,EAAW,CAAC,IAI/B+I,oBAA4C7nd,IAA3Bkod,EAAeV,UACjDU,EAAeV,SAAU,IAEtBU,EAAeL,eAAiBK,EAAeV,UAIlDU,EAAeV,SAAU,GAEpBU,CACT,CF0BuBC,CAAiBrJ,GAIpCttO,EAAa7C,IADCruK,EAAAA,EAAAA,WAAS,GACgB,GACvC47L,EAAS1qB,EAAW,GACpB2qB,EAAY3qB,EAAW,IACzBzxK,EAAAA,EAAAA,YAAU,WAERo8L,EAAUC,KACZ,GAAG,IAGH,IAOEmU,EAAmB5hC,GAPCkF,IAAe,WACjC,IAAIktO,EACJ,OAA8B,QAAtBA,EAAS55I,EAAK,UAA2B,IAAX45I,OAAoB,EAASA,EAAOlpd,GAC5E,GAAG,CACDlG,MAAOuqP,EACP5qN,aAAcw2b,IAEmC,GACnD71M,EAAkB1B,EAAiB,GACnC2B,EAAqB3B,EAAiB,GAMtC5+B,EAAahD,IALEruK,EAAAA,EAAAA,WAAS,WACtB,OAAO6mQ,EAAK7iU,WAAU,SAAUm5c,GAC9B,OAAOA,EAAI5ld,MAAQo6Q,CACrB,GACF,IACwC,GACxCs7I,EAAc57K,EAAW,GACzB67K,EAAiB77K,EAAW,IAG9B5xK,EAAAA,EAAAA,YAAU,WACR,IAIMqoZ,EAJFC,EAAiBlhJ,EAAK7iU,WAAU,SAAUm5c,GAC5C,OAAOA,EAAI5ld,MAAQo6Q,CACrB,KACwB,IAApBo2M,IAEFA,EAAiB9zd,KAAKwhB,IAAI,EAAGxhB,KAAKyhB,IAAIu3Y,EAAapmF,EAAKjzU,OAAS,IACjEg+Q,EAAqE,QAAjDk2M,EAAuBjhJ,EAAKkhJ,UAAsD,IAAzBD,OAAkC,EAASA,EAAqBvwd,MAE/I21Z,EAAe66D,EACjB,GAAG,CAAClhJ,EAAK/mU,KAAI,SAAUq9c,GACrB,OAAOA,EAAI5ld,GACb,IAAGG,KAAK,KAAMi6Q,EAAiBs7I,IAG/B,IAGEv7I,EAAmBrjC,GAHEkF,GAAe,KAAM,CACxCliP,MAAO6kB,IAE2C,GACpDy0R,EAAWj5B,EAAiB,GAC5Bs2M,EAAct2M,EAAiB,IAGjCjyM,EAAAA,EAAAA,YAAU,WACHvpD,IACH8xc,EAAY,WAAW/wd,OAAkD09O,KACzEA,IAAQ,EAEZ,GAAG,IAaH,IAAIogK,EAAc,CAChB7+X,GAAIy0R,EACJ/uD,UAAW+1B,EACX6sM,SAAUoJ,EACVnJ,YAAaA,EACbx+N,IAAKA,EACL2b,OAAQA,GAENqsN,EAAiBh9O,GAAcA,GAAc,CAAC,EAAG8pK,GAAc,CAAC,EAAG,CACrEtE,SAAUA,EACVhqX,OAAQA,EACR81b,KAAMA,EACNE,aAAcA,EACdE,WAvBF,SAA4Bpld,EAAK0oB,GAChB,OAAf08b,QAAsC,IAAfA,GAAyBA,EAAWpld,EAAK0oB,GAChE,IAAIioc,EAAkB3wd,IAAQo6Q,EAC9BC,EAAmBr6Q,GACf2wd,IACW,OAAbz0O,QAAkC,IAAbA,GAAuBA,EAASl8O,GAEzD,EAiBEmnd,YAAaA,EACbzxW,MAAO06W,EACP5vd,MAAO2vd,EACPd,MAAO,KACP9xN,kBAAmBA,EACnB8F,eAAgBA,EAChB2rF,UAAWA,IAEb,OAAoBjgI,EAAAA,cAAoBq4P,GAAWj1W,SAAU,CAC3Dr4G,MAAO,CACLw1U,KAAMA,EACN96F,UAAWA,IAECzlB,EAAAA,cAAoB,MAAOoL,GAAS,CAClD1nL,IAAKA,EACL9zB,GAAIA,EACJlc,UAAWisN,KAAW8lB,EAAW,GAAG90O,OAAO80O,EAAW,KAAK90O,OAAOwnd,IAAcn0W,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,WAAY6vB,GAAS,GAAG3kQ,OAAO80O,EAAW,aAAc0kK,GAAW,GAAGx5Y,OAAO80O,EAAW,QAASkU,GAAMjmP,IAC/PuyO,GAAyBjmB,EAAAA,cAAoB6hQ,GAAmBz2P,GAAS,CAAC,EAAGu2P,EAAgB,CAC9FtB,aAAcA,KACErgQ,EAAAA,cAAoB8hQ,GAAc12P,GAAS,CAC3Ds1P,uBAAwBA,GACvBjyE,EAAa,CACdypE,SAAUoJ,MAEd,IG7KM/2N,GAAS,CACblE,cAAc,EACdF,aAAa,EACbI,aAAa,GCJf,IAAIuxC,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,ECNA,MAoCA,GApCuBi1F,IACrB,MAAM,aACJu0K,EAAY,mBACZgC,GACEv2K,EACJ,MAAO,CAAC,CACN,CAACu0K,GAAe,CACd,CAAC,GAAGA,YAAwB,CAC1B,oBAAqB,CACnB3sO,WAAY,OACZ,UAAW,CACT5kD,QAAS,GAEX,WAAY,CACVA,QAAS,EACT4kD,WAAY,WAAW2uO,MAG3B,UAAW,CACT7zR,SAAU,WACVklD,WAAY,OACZ4wE,MAAO,EACP,UAAW,CACTx1H,QAAS,GAEX,WAAY,CACVA,QAAS,EACT4kD,WAAY,WAAW2uO,SAOjC,CAAC8gC,GAAgBr3M,EAAO,YAAaq3M,GAAgBr3M,EAAO,eAAe,EC/BvEitW,GAAejtW,IACnB,MAAM,aACJu0K,EAAY,gBACZ24L,EAAe,OACfC,EAAM,WACNC,EAAU,qBACVhwL,EAAoB,kBACpB06B,GACE93M,EACJ,MAAO,CACL,CAAC,GAAGu0K,UAAsB,CACxB,CAAC,KAAKA,kBAA6BA,SAAqB,CACtD,CAAC,GAAGA,SAAqB,CACvBt7R,OAAQ,EACR2/B,QAASs0b,EACTr6V,WAAYs6V,EACZhhV,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAYqF,IACtDx1O,WAAY,OAAOo4D,EAAMu2K,sBAAsBv2K,EAAMq4K,mBAEvD,CAAC,GAAG9D,gBAA4B,CAC9Bj8P,MAAOw/R,EACPjlM,WAAY7S,EAAM+8K,kBAEpB,CAAC,GAAGxI,eAA2Bl3R,OAAOoD,OAAO,CAAC,EAAGo2R,GAAgB72K,GAAQ,IACzE,CAAC,GAAGu0K,aAAyB,CAC3Br9J,WAAY,UAEd,CAAC,KAAKq9J,QAAmBA,eAA0BA,aAAyB,CAC1EznF,QAAS,SAIb,CAAC,IAAIynF,WAAsBA,YAAwB,CACjD,CAAC,KAAKA,kBAA6BA,SAAqB,CACtD,CAAC,GAAGA,WAAsBA,SAAqB,CAC7Cz+J,WAAY,CACV65L,cAAc,EACd15T,MAAOoE,GAAK+yd,OAKpB,CAAC,IAAI74L,SAAqB,CACxB,CAAC,KAAKA,kBAA6BA,SAAqB,CACtD,CAAC,GAAGA,SAAqB,CACvBmE,aAAc,GAAGr+R,GAAK2lH,EAAM85K,mBAAmBz/R,GAAK2lH,EAAM85K,uBAE5D,CAAC,GAAGvF,gBAA4B,CAC9BtgK,kBAAmBjU,EAAM+8K,oBAI/B,CAAC,IAAIxI,YAAwB,CAC3B,CAAC,KAAKA,kBAA6BA,SAAqB,CACtD,CAAC,GAAGA,SAAqB,CACvBmE,aAAc,OAAOr+R,GAAK2lH,EAAM85K,mBAAmBz/R,GAAK2lH,EAAM85K,mBAEhE,CAAC,GAAGvF,gBAA4B,CAC9BxgK,eAAgB/T,EAAM+8K,oBAK5B,CAAC,IAAIxI,YAAuBA,WAAuB,CACjD,CAAC,KAAKA,kBAA6BA,SAAqB,CACtD,CAAC,GAAGA,WAAsBA,SAAqB,CAC7C5+J,UAAWt7H,GAAK+yd,MAItB,CAAC,IAAI74L,UAAsB,CACzB,CAAC,KAAKA,kBAA6BA,SAAqB,CACtD,CAAC,GAAGA,SAAqB,CACvBmE,aAAc,CACZi3B,cAAc,EACd15T,MAAO,GAAGoE,GAAK2lH,EAAM85K,uBAAuBz/R,GAAK2lH,EAAM85K,oBAG3D,CAAC,GAAGvF,gBAA4B,CAC9BvgK,iBAAkB,CAChB27L,cAAc,EACd15T,MAAO+pH,EAAM+8K,qBAKrB,CAAC,IAAIxI,WAAuB,CAC1B,CAAC,KAAKA,kBAA6BA,SAAqB,CACtD,CAAC,GAAGA,SAAqB,CACvBmE,aAAc,CACZi3B,cAAc,EACd15T,MAAO,KAAKoE,GAAK2lH,EAAM85K,mBAAmBz/R,GAAK2lH,EAAM85K,sBAGzD,CAAC,GAAGvF,gBAA4B,CAC9BrgK,gBAAiB,CACfy7L,cAAc,EACd15T,MAAO+pH,EAAM+8K,sBAMxB,EAEGygI,GAAmBx9S,IACvB,MAAM,aACJu0K,EAAY,eACZgkC,EAAc,iCACd80J,GACErtW,EACJ,MAAO,CACL,CAAC,GAAGu0K,cAA0Bl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACpFt9G,SAAU,WACV/J,KAAM,KACND,KAAM,CACJi3T,cAAc,EACd15T,OAAQ,MAEV2M,OAAQo9G,EAAMyzM,YACd51T,QAAS,QACT,WAAY,CACVA,QAAS,QAEX,CAAC,GAAG02R,mBAA+B,CACjC8lC,UAAWr6M,EAAMstW,mBACjBr0d,OAAQ,EACR2/B,QAAS,GAAGv+B,GAAKgzd,OACjBn0V,UAAW,SACXC,UAAW,OACXp/F,UAAW,CACT41R,cAAc,EACd15T,MAAO,QAETw/H,cAAe,OACf3yH,gBAAiBk9G,EAAM+8K,iBACvBxtK,eAAgB,cAChBmpK,aAAc14K,EAAM85K,eACpBhtF,QAAS,OACTv0E,UAAWvY,EAAM0mL,mBACjB,SAAUrpS,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGq1R,IAAe,CACvDj4R,QAAS,OACTs5R,WAAY,SACZh0P,SAAU68E,EAAMutW,kBAChBt0d,OAAQ,EACR2/B,QAAS,GAAGv+B,GAAK2lH,EAAMulL,eAAelrS,GAAK2lH,EAAMylL,aACjDntQ,MAAO0nF,EAAMk2K,UACbh8P,WAAY,SACZzF,SAAUurF,EAAMvrF,SAChBE,WAAYqrF,EAAMrrF,WAClBtD,OAAQ,UACRu2B,WAAY,OAAOo4D,EAAMu2K,qBACzB,SAAU,CACRx5O,KAAM,EACN27F,WAAY,UAEd,WAAY,CACV37F,KAAM,OACN+4E,WAAY,CACV65L,cAAc,EACd15T,MAAO+pH,EAAMqmL,UAEf/tQ,MAAO0nF,EAAMikL,qBACbxvQ,SAAUurF,EAAM06K,WAChB7nK,WAAY,cACZsZ,OAAQ,EACR96G,OAAQ,UACR,UAAW,CACTiH,MAAOigS,IAGX,UAAW,CACT1lM,WAAY7S,EAAM6kL,oBAEpB,aAAc,CACZ,aAAc,CACZvsQ,MAAO0nF,EAAM42K,kBACb/jK,WAAY,cACZxhG,OAAQ,qBAMnB,EAEGm8b,GAAmBxtW,IACvB,MAAM,aACJu0K,EAAY,OACZt7R,EAAM,qBACNmkS,EAAoB,iBACpBqwL,EAAgB,oBAChBC,EAAmB,mBACnBC,EAAkB,KAClBtzM,GACEr6J,EACJ,MAAO,CAEL,CAAC,GAAGu0K,UAAqBA,YAAwB,CAC/CmV,cAAe,SACf,CAAC,KAAKnV,kBAA6BA,SAAqB,CACtDt7R,OAAQw0d,EACR,YAAa,CACX/qd,SAAU,WACVG,MAAO,CACL8sT,cAAc,EACd15T,MAAO,GAETyC,KAAM,CACJi3T,cAAc,EACd15T,MAAO,GAETuhU,aAAc,GAAGn9T,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAYqF,IAC5DtnR,QAAS,MAEX,CAAC,GAAGy+Q,aAAyB,CAC3Bv7R,OAAQgnH,EAAMmiL,cACd,aAAc,CACZv6O,WAAY,SAASo4D,EAAMu2K,4BAA4Bv2K,EAAMu2K,0CACrDv2K,EAAMu2K,uBAGlB,CAAC,GAAGhC,cAA0B,CAC5B,sBAAuB,CACrB57R,IAAK,EACL8E,OAAQ,EACRnE,MAAO0mH,EAAM84K,eAEf,YAAa,CACXpgS,KAAM,CACJi3T,cAAc,EACd15T,MAAO,GAETsiI,UAAWvY,EAAMioL,2BAEnB,WAAY,CACVplS,MAAO,CACL8sT,cAAc,EACd15T,MAAO,GAETsiI,UAAWvY,EAAMkoL,4BAEnB,CAAC,IAAI3T,gCAA4C,CAC/CvxR,QAAS,GAEX,CAAC,IAAIuxR,gCAA4C,CAC/CvxR,QAAS,MAKjB,CAAC,GAAGuxR,SAAqB,CACvB,CAAC,KAAKA,2BACMA,SAAqB,CAC/B,YAAa,CACX92R,OAAQ,GAEV,CAAC,GAAG82R,aAAyB,CAC3B92R,OAAQ,KAId,CAAC,GAAG82R,YAAwB,CAC1B,CAAC,KAAKA,kBAA6BA,SAAqB,CACtDx2O,MAAO,EACP43E,UAAW18H,EACX48H,aAAc,EACd,YAAa,CACXl9H,IAAK,GAEP,CAAC,GAAG47R,aAAyB,CAC3B57R,IAAK,IAGT,CAAC,KAAK47R,6BAAwCA,oBAAgC,CAC5Ex2O,MAAO,IAIX,CAAC,GAAGw2O,WAAsBA,WAAuB,CAC/C,CAAC,KAAKA,kBAA6BA,SAAqB,CACtDmV,cAAe,SACfvmQ,SAAUk3O,EAAKr6J,EAAM84K,eAAeppE,IAAI,MAAMp/C,QAE9C,CAAC,GAAGikH,SAAqB,CACvB37P,QAAS80b,EACT3zb,UAAW,UAEb,CAAC,GAAGw6P,WAAsBA,SAAqB,CAC7Ct7R,OAAQ00d,GAGV,CAAC,GAAGp5L,cAA0B,CAC5BmV,cAAe,SACf,sBAAuB,CACrB7mS,MAAO,CACL8sT,cAAc,EACd15T,MAAO,GAETyC,KAAM,CACJi3T,cAAc,EACd15T,MAAO,GAET+C,OAAQgnH,EAAM84K,eAEhB,YAAa,CACXngS,IAAK,EACL4/H,UAAWvY,EAAMmoL,0BAEnB,WAAY,CACV1qS,OAAQ,EACR86H,UAAWvY,EAAMooL,6BAEnB,CAAC,IAAI7T,+BAA2C,CAC9CvxR,QAAS,GAEX,CAAC,IAAIuxR,iCAA6C,CAChDvxR,QAAS,IAIb,CAAC,GAAGuxR,aAAyB,CAC3Bj7R,MAAO0mH,EAAMmiL,cACb,aAAc,CACZv6O,WAAY,UAAUo4D,EAAMu2K,2BAA2Bv2K,EAAMu2K,uBAGjE,CAAC,GAAGhC,eAA0BA,oBAAgC,CAC5Dx3O,KAAM,WAEN2sP,cAAe,YAIrB,CAAC,GAAGnV,UAAsB,CACxB,CAAC,KAAKA,kBAA6BA,SAAqB,CACtD,CAAC,GAAGA,aAAyB,CAC3B1xR,MAAO,CACL8sT,cAAc,EACd15T,MAAO,KAIb,CAAC,KAAKs+R,6BAAwCA,oBAAgC,CAC5Ez+J,WAAY,CACV65L,cAAc,EACd15T,MAAOoE,GAAKggR,EAAKr6J,EAAMzqF,WAAWm6L,KAAK,GAAGp/C,UAE5Cs9S,WAAY,CACVj+J,cAAc,EACd15T,MAAO,GAAGoE,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMm9K,eAE7D,CAAC,KAAK5I,eAA0BA,aAAyB,CACvDv7P,YAAa,CACX22R,cAAc,EACd15T,MAAO+pH,EAAM2lL,cAKrB,CAAC,GAAGpR,WAAuB,CACzB,CAAC,KAAKA,kBAA6BA,SAAqB,CACtDx2O,MAAO,EACP,CAAC,GAAGw2O,aAAyB,CAC3B77R,KAAM,CACJi3T,cAAc,EACd15T,MAAO,KAIb,CAAC,KAAKs+R,6BAAwCA,oBAAgC,CAC5Ex2O,MAAO,EACP63E,YAAa,CACX+5L,cAAc,EACd15T,MAAOokR,EAAKr6J,EAAMzqF,WAAWm6L,KAAK,GAAGp/C,SAEvCu9S,YAAa,CACXl+J,cAAc,EACd15T,MAAO,GAAGoE,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMm9K,eAE7D,CAAC,KAAK5I,eAA0BA,aAAyB,CACvDz7P,aAAc,CACZ62R,cAAc,EACd15T,MAAO+pH,EAAM2lL,cAKtB,EAEGw2H,GAAen8S,IACnB,MAAM,aACJu0K,EAAY,cACZu5L,EAAa,cACbC,EAAa,wBACbC,EAAuB,wBACvBC,GACEjuW,EACJ,MAAO,CACL,CAACu0K,GAAe,CACd,UAAW,CACT,CAAC,KAAKA,SAAqB,CACzB,CAAC,GAAGA,SAAqB,CACvB37P,QAASo1b,EACTv5b,SAAUurF,EAAMkuW,mBAItB,UAAW,CACT,CAAC,KAAK35L,SAAqB,CACzB,CAAC,GAAGA,SAAqB,CACvB37P,QAASq1b,EACTx5b,SAAUurF,EAAMmuW,oBAKxB,CAAC,GAAG55L,UAAsB,CACxB,CAAC,IAAIA,WAAuB,CAC1B,CAAC,KAAKA,SAAqB,CACzB,CAAC,GAAGA,SAAqB,CACvB37P,QAASk1b,IAGb,CAAC,IAAIv5L,YAAwB,CAC3B,CAAC,KAAKA,SAAoBA,SAAqB,CAC7CmE,aAAc,OAAOr+R,GAAK2lH,EAAM04K,iBAAiBr+R,GAAK2lH,EAAM04K,kBAGhE,CAAC,IAAInE,SAAqB,CACxB,CAAC,KAAKA,SAAoBA,SAAqB,CAC7CmE,aAAc,GAAGr+R,GAAK2lH,EAAM04K,iBAAiBr+R,GAAK2lH,EAAM04K,sBAG5D,CAAC,IAAInE,WAAuB,CAC1B,CAAC,KAAKA,SAAoBA,SAAqB,CAC7CmE,aAAc,CACZi3B,cAAc,EACd15T,MAAO,KAAKoE,GAAK2lH,EAAM04K,iBAAiBr+R,GAAK2lH,EAAM04K,qBAIzD,CAAC,IAAInE,UAAsB,CACzB,CAAC,KAAKA,SAAoBA,SAAqB,CAC7CmE,aAAc,CACZi3B,cAAc,EACd15T,MAAO,GAAGoE,GAAK2lH,EAAM04K,qBAAqBr+R,GAAK2lH,EAAM04K,oBAK7D,CAAC,IAAInE,WAAuB,CAC1B,CAAC,KAAKA,SAAqB,CACzB,CAAC,GAAGA,SAAqB,CACvB37P,QAASm1b,MAKlB,EAEGK,GAAcpuW,IAClB,MAAM,aACJu0K,EAAY,gBACZ85L,EAAe,eACf91J,EAAc,QACd9jC,EAAO,yBACP65L,EAAwB,sBACxBC,EAAqB,kBACrBz2J,EAAiB,UACjBD,GACE73M,EACEwuW,EAAS,GAAGj6L,QAClB,MAAO,CACL,CAACi6L,GAAS,CACR9rd,SAAU,WACV0+a,mBAAoB,OACpBC,wBAAyB,cACzBxjb,QAAS,cACTs5R,WAAY,SACZv+P,QAAS21b,EACT95b,SAAUurF,EAAM25O,cAChB9mO,WAAY,cACZsZ,OAAQ,EACR2gE,QAAS,OACTz7K,OAAQ,UACRiH,MAAOu/R,EACP,kBAAmB,CACjB,wCAAyC,CACvCv/R,MAAO+1b,IAGX,QAAS,CACPvhR,QAAS,OACTllJ,WAAY,OAAOo4D,EAAMu2K,qBACzB,CAAC,GAAGi4L,2BAAiC,CACnC7zJ,gBAAiB36M,EAAMqmL,WAG3B,WAAYhpS,OAAOoD,OAAO,CACxBs8C,KAAM,OACN64E,YAAa,CACX+5L,cAAc,EACd15T,MAAO+pH,EAAMq6J,KAAKr6J,EAAMmmL,WAAWz2E,KAAK,GAAGp/C,SAE7Cx6C,WAAY,CACV65L,cAAc,EACd15T,MAAO+pH,EAAMomL,UAEf9tQ,MAAO0nF,EAAMikL,qBACbxvQ,SAAUurF,EAAM06K,WAChB7nK,WAAY,cACZsZ,OAAQ,OACR2gE,QAAS,OACTz7K,OAAQ,UACRu2B,WAAY,OAAOo4D,EAAMu2K,qBACzB,UAAW,CACTj+P,MAAO0nF,EAAM+jL,mBAEd9M,GAAcj3K,IACjB,UAAW,CACT1nF,MAAOigS,GAET,CAAC,IAAIi2J,YAAiBA,SAAe,CACnCl2b,MAAOw/R,EACP7hM,WAAYjW,EAAMyuW,sBAEpB,CAAC,IAAID,WAAgBA,SAAenxd,OAAOoD,OAAO,CAAC,EAAGo2R,GAAgB72K,IACtE,CAAC,IAAIwuW,cAAoB,CACvBl2b,MAAO0nF,EAAM42K,kBACbvlQ,OAAQ,eAEV,CAAC,IAAIm9b,cAAmBA,WAAgBA,cAAmBj6L,YAAwB,CACjF,oBAAqB,CACnBj8P,MAAO0nF,EAAM42K,oBAGjB,CAAC,KAAK43L,YAAiB/5L,KAAY,CACjCx7R,OAAQ,GAEV,CAAC,GAAGw7R,sBAA6B,CAC/B7+J,YAAa,CACX+5L,cAAc,EACd15T,MAAO+pH,EAAMqmL,YAInB,CAAC,GAAGmoL,OAAYA,KAAW,CACzBv1d,OAAQ,CACN02T,cAAc,EACd15T,MAAOq4d,IAGZ,EAEGI,GAAc1uW,IAClB,MAAM,aACJu0K,EAAY,4BACZo6L,EAA2B,QAC3Bl6L,EAAO,WACP24L,EAAU,KACV/yM,GACEr6J,EACE4uW,EAAS,GAAGr6L,QAClB,MAAO,CACL,CAACq6L,GAAS,CACR95V,UAAW,MACX,CAAC,GAAGy/J,SAAqB,CACvB,CAAC,GAAGA,SAAqB,CACvBt7R,OAAQ,CACN02T,cAAc,EACd15T,MAAO04d,GAET,CAAC,GAAGp6L,sBAAkC,CACpCz+J,WAAY,CACV65L,cAAc,EACd15T,MAAO,IAGX,CAACw+R,GAAU,CACT7+J,YAAa,CACX+5L,cAAc,EACd15T,MAAO,GAET6/H,WAAY,CACV65L,cAAc,EACd15T,MAAOoE,GAAK2lH,EAAMqmL,YAGtB,CAAC,GAAG9R,gBAA4B,CAC9B3+J,YAAa,CACX+5L,cAAc,EACd15T,MAAOoE,GAAK2lH,EAAMomL,WAEpBtwK,WAAY,CACV65L,cAAc,EACd15T,MAAOoE,GAAKggR,EAAKr6J,EAAMmmL,WAAWz2E,KAAK,GAAGp/C,UAE5C,CAACmkH,GAAU,CACTx7R,OAAQ,MAKhB,CAAC,IAAIs7R,UAAsB,CACzB,CAAC,KAAKA,SAAqB,CACzBx2O,MAAO,GAET,CAAC,KAAKw2O,oBAAgC,CACpCx2O,MAAO,IAGX,CAAC,IAAIw2O,WAAuB,CAC1B,CAAC,KAAKA,SAAqB,CACzBx2O,MAAO,GAET,CAAC,KAAKw2O,oBAAgC,CACpCx2O,MAAO,IAIX,CAAC,IAAIw2O,SAAoBA,WAAsBA,SAAoBA,YAAwB,CACzF,CAAC,KAAKA,kBAA6BA,SAAqB,CACtD,CAAC,GAAGA,WAAsBA,SAAqB,CAC7C3+J,YAAa,CACX+5L,cAAc,EACd15T,MAAOm3d,GAETt3V,WAAY,CACV65L,cAAc,EACd15T,MAAO,OAMjB,CAAC,GAAGs+R,kBAA8B,CAChCz/J,UAAW,OAEb,CAAC,GAAGy/J,eAA2B,CAC7B,CAAC,GAAGA,kBAA8B,CAChCx6P,UAAW,CACT41R,cAAc,EACd15T,MAAO,WAId,EAEG44d,GAAe7uW,IACnB,MAAM,aACJu0K,EAAY,gBACZ24L,EAAe,WACf4B,EAAU,WACV1B,EAAU,eACV70J,EAAc,gBACd81J,EAAe,qBACfjxL,GACEp9K,EACJ,MAAO,CACL,CAACu0K,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CAClGniH,QAAS,OAET,CAAC,KAAK02R,kBAA6BA,SAAqB,CACtD7xR,SAAU,WACV7E,QAAS,OACTk/C,KAAM,OACNo6O,WAAY,SACZ,CAAC,GAAG5C,cAA0B,CAC5B7xR,SAAU,WACV7E,QAAS,OACTk/C,KAAM,OACN2+W,UAAW,UACX/4Z,SAAU,SACV+1I,WAAY,SACZ9hE,UAAW,eAGX,sBAAuB,CACrBl0E,SAAU,WACVE,OAAQ,EACRI,QAAS,EACT4kD,WAAY,WAAWo4D,EAAMu2K,qBAC7BzgR,QAAS,KACT07N,cAAe,SAGnB,CAAC,GAAG+iD,cAA0B,CAC5B7xR,SAAU,WACV7E,QAAS,OACT+pD,WAAY,WAAWo4D,EAAMu2K,sBAG/B,CAAC,GAAGhC,oBAAgC,CAClC12R,QAAS,OACT69Z,UAAW,WAEb,CAAC,GAAGnnI,2BAAuC,CACzC7xR,SAAU,WACVw0H,WAAY,SACZs6G,cAAe,QAEjB,CAAC,GAAG+iD,cAA0B,CAC5B7xR,SAAU,WACVk2B,QAASs0b,EACTr6V,WAAY,cACZsZ,OAAQ,EACR7zG,MAAO0nF,EAAMk2K,UACb,WAAY,CACVxzR,SAAU,WACVG,MAAO,CACL8sT,cAAc,EACd15T,MAAO,GAETwH,OAAQ,EACR/E,KAAM,CACJi3T,cAAc,EACd15T,MAAO,GAET+C,OAAQgnH,EAAMq6J,KAAKr6J,EAAMk6K,iBAAiBlsE,IAAI,GAAG19C,QACjD15F,UAAW,mBACX9gE,QAAS,OAGb,CAAC,GAAGy+Q,aAAyBl3R,OAAOoD,OAAO,CACzC0iC,SAAU2rb,EACVh5V,WAAY,CACV65L,cAAc,EACd15T,MAAOm3d,GAETx0b,QAASv+B,GAAK2lH,EAAMwlL,WACpB3yK,WAAY,cACZsZ,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAYqF,IACtD1E,aAAc,GAAGr+R,GAAK2lH,EAAM85K,mBAAmBz/R,GAAK2lH,EAAM85K,sBAC1DhtF,QAAS,OACTz7K,OAAQ,UACRiH,MAAO0nF,EAAMk2K,UACbtuO,WAAY,OAAOo4D,EAAMu2K,sBAAsBv2K,EAAMq4K,kBACrD,UAAW,CACT//P,MAAOigS,GAET,wCAAyC,CACvCjgS,MAAO+1b,IAERp3L,GAAcj3K,GAAQ,KAE3B,CAAC,GAAGu0K,mBAA+B,CACjCx3O,KAAM,QAGR,CAAC,GAAGw3O,aAAyB,CAC3B7xR,SAAU,WACVmwH,WAAY7S,EAAM+uW,YAClBv9O,cAAe,UAEf48O,GAAYpuW,IAAS,CAEvB,CAAC,GAAGu0K,aAAyB,CAC3B7xR,SAAU,WACVpJ,MAAO,QAET,CAAC,GAAGi7R,oBAAgC,CAClCx3O,KAAM,OACN5Z,SAAU,EACV03N,UAAW,GAEb,CAAC,GAAG05B,aAAyBl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGw2R,GAAcj3K,IAAS,CAClF,WAAY,CACVniH,QAAS,YAIf,CAAC,GAAG02R,cAA0B,CAC5B,CAAC,KAAKA,kBAA6BA,SAAqB,CACtD,CAAC,GAAGA,cAA0B,CAC5B,CAAC,kBAAkBA,wBAAmCA,cAA0B,CAC9Et7R,OAAQ,WAKjB,EAmCH,GAAe87R,GAAc,QAAQ/0K,IACnC,MAAMgvW,EAAYh9L,GAAWhyK,EAAO,CAElCktW,gBAAiBltW,EAAMivW,YACvB5B,iCAAkCrtW,EAAMulL,WACxCkpL,qBAAsB,0BACtBnB,mBAAoB,IACpBC,kBAAmB,IACnBe,yBAA0B,SAASj0d,GAAK2lH,EAAMkvW,wBAC9CP,4BAA6B,SAASt0d,GAAK2lH,EAAMkvW,0BAEnD,MAAO,CAAC/yD,GAAa6yD,GAAYN,GAAYM,GAAYxB,GAAiBwB,GAAYxxD,GAAiBwxD,GAAY/B,GAAa+B,GAAYH,GAAaG,GAAYjpC,GAAeipC,GAAW,IA5C5JhvW,IACnC,MAAM8uW,EAAa9uW,EAAMk6K,gBACzB,MAAO,CACLu5B,YAAazzM,EAAMg5K,gBAAkB,GACrCm0L,OAAQntW,EAAM0jL,eACdorL,aAEAG,YAAa,IAAIH,EAAaj2d,KAAK22B,MAAMwwF,EAAMvrF,SAAWurF,EAAMrrF,aAAe,EAAIqrF,EAAMzqF,eAAeyqF,EAAMpnF,YAC9Gk1b,cAAe,GAAsB,IAAnB9tW,EAAMulL,gBAAsBvlL,EAAMpnF,YACpDm1b,cAAe,GAAG/tW,EAAMwlL,eAAexlL,EAAMpnF,aAAgC,IAAnBonF,EAAMulL,eAChEo0D,cAAe35O,EAAMvrF,SACrB05b,gBAAiBnuW,EAAM26K,WACvBuzL,gBAAiBluW,EAAMvrF,SACvBs6b,YAAa/uW,EAAMu3K,aACnBk2L,iBAAkB,OAAOztW,EAAM/mH,aAC/Bi2d,qBAAsB,GAGtBC,qBAAsB,GACtBC,wBAAyB,GACzBb,sBAAuB,GAAGvuW,EAAMylL,gBAChCuoL,wBAAyB,GAAGhuW,EAAMwlL,gBAClCyoL,wBAAyB,GAAGjuW,EAAMpnF,cAClC80b,oBAAqB,GAAG1tW,EAAMwlL,eAAexlL,EAAM2lL,cACnDgoL,mBAAoB,GAAG3tW,EAAM/mH,iBAC7B4+T,UAAW73M,EAAMk2K,UACjB4hC,kBAAmB93M,EAAMu3K,aACzBghC,eAAgBv4M,EAAMy+K,kBACtB4vL,gBAAiBruW,EAAM0+K,mBACvB0uL,WAAYptW,EAAMmmL,UAAY,EAC/B,IC/yBH,IAAInD,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAeA,MAAMskc,GAAOngb,IACX,IAAIvb,EAAIC,EAAIiC,EAAIC,EAAI+I,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAC5C,MAAM,KACF9gC,EAAI,UACJO,EAAS,cACT0wQ,EACA51P,KAAMgyS,EAAU,OAChBo1J,EAAM,QACNwO,EAAO,SACP1zH,EAAQ,QACRmlH,EAAO,WACPlqE,EAAU,SACV8qE,EAAQ,KACRR,EAAI,eACJ3hN,EAAc,SACdhkN,EAAQ,MACRs7L,EAAK,SACLssO,EAAQ,MACRzmd,EAAK,cACL4yd,EAAa,UACbpkI,GACEj8S,EACJ68P,EAAa/I,GAAO9zP,EAAO,CAAC,OAAQ,YAAa,gBAAiB,OAAQ,SAAU,UAAW,WAAY,UAAW,aAAc,WAAY,OAAQ,iBAAkB,WAAY,QAAS,WAAY,QAAS,gBAAiB,eAErOyhM,UAAW2vC,GACTyrB,GACE,UACJj3K,EAAS,KACT22M,EAAI,aACJtrD,EAAY,kBACZzmB,GACExuC,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,OAAQG,GACjCiT,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GAC5D,IAAI8hH,EACS,kBAATh3Y,IACFg3Y,EAAW,CACTyrE,OAAQA,CAAC0O,EAAUltU,KACjB,IAAI,IACFnmJ,EAAG,MACHs0D,GACE6xF,EACO,OAAXw+T,QAA8B,IAAXA,GAA6BA,EAAoB,QAAb0O,EAAqB/+Z,EAAQt0D,EAAKqzd,EAAS,EAEpG34E,WAA+I,QAAlIljX,EAAoB,OAAfkjX,QAAsC,IAAfA,EAAwBA,EAAsB,OAATprE,QAA0B,IAATA,OAAkB,EAASA,EAAKorE,kBAA+B,IAAPljX,EAAgBA,EAAkBu3L,EAAAA,cAAoBkjI,GAAe,MAC5N2yH,SAAsB,OAAZA,QAAgC,IAAZA,EAAqBA,EAAmB,OAATt1I,QAA0B,IAATA,OAAkB,EAASA,EAAKs1I,UAAyB71P,EAAAA,cAAoBq0P,GAAc,MACzKqB,SAAqB,IAAZ0O,IAGb,MAAM57L,EAAgBvT,IAMtB,MAAMzmQ,EAAOuzS,GAAQvB,GACf+jK,EHnEO,SAAwB34O,EAAOt7L,GAK5C,OAAIs7L,GARN,SAAgBA,GACd,OAAOA,EAAMtuO,QAAO+gC,GAAQA,GAC9B,CA6BS/gC,CApBeq2F,GAAQrjD,GAAU92C,KAAIzF,IAC1C,GAAiBisN,EAAAA,eAAqBjsN,GAAO,CAC3C,MAAM,IACJ9C,EAAG,MACH+yC,GACEjwC,EACE00B,EAAKub,GAAS,CAAC,GACnB,IACE6ya,GACEpub,EACJw9M,EAAY6xD,GAAOrvQ,EAAI,CAAC,QAM1B,OALat2B,OAAOoD,OAAOpD,OAAOoD,OAAO,CACvCtE,IAAKmC,OAAOnC,IACXg1O,GAAY,CACbhhI,MAAO4xW,GAGX,CACA,OAAO,IAAI,IAGf,CGsCsB2N,CAAe54O,EAAOt7L,GACpCgxa,EJ5EO,SAA0B77O,GACvC,IAII67O,EAJApJ,EAAWt8c,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CACjFskd,QAAQ,EACRU,SAAS,GAuBX,OAnBEU,GADe,IAAbpJ,EACe,CACfgI,QAAQ,EACRU,SAAS,IAEW,IAAb1I,EACQ,CACfgI,QAAQ,EACRU,SAAS,GAGMzud,OAAOoD,OAAO,CAC7B2qd,QAAQ,GACa,kBAAbhI,EAAwBA,EAAW,CAAC,GAE5CoJ,EAAeV,UACjBU,EAAeL,cAAgB9ud,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg1P,IAAS,CACtEL,WAAYvF,GAAkBlf,EAAW,aAGtC67O,CACT,CIiDyBC,CAAiB97O,EAAWyyO,GAC7CvuN,EAAcx3P,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAY,OAATgrU,QAA0B,IAATA,OAAkB,EAASA,EAAK9uU,OAAQA,GACvG8pa,EAAkB,CACtBpxY,MAAwF,QAAhFzB,EAAmB,OAAdu3T,QAAoC,IAAdA,OAAuB,EAASA,EAAU91T,aAA0B,IAAPzB,EAAgBA,EAA2E,QAArEiC,EAAc,OAAT41S,QAA0B,IAATA,OAAkB,EAASA,EAAK0f,iBAA8B,IAAPt1T,OAAgB,EAASA,EAAGR,MAC/N3b,KAAmS,QAA5RqlB,EAA2I,QAArIF,EAAqF,QAA/E/I,EAAmB,OAAdq1T,QAAoC,IAAdA,OAAuB,EAASA,EAAUzxU,YAAyB,IAAPoc,EAAgBA,EAAKy5b,SAAkC,IAAP1wb,EAAgBA,EAA2E,QAArEC,EAAc,OAAT2sS,QAA0B,IAATA,OAAkB,EAASA,EAAK0f,iBAA8B,IAAPrsT,OAAgB,EAASA,EAAGplB,YAAyB,IAAPqlB,EAAgBA,EAAc,OAAT0sS,QAA0B,IAATA,OAAkB,EAASA,EAAK8jJ,eAEnX,OAAOljL,EAAwBnhF,EAAAA,cAAoBykQ,GAAQtyd,OAAOoD,OAAO,CACvEq0H,UAAWA,EACX4kI,kBAAmBA,GAClBqyC,EAAY,CACbj1D,MAAO24O,EACP7wd,UAAWisN,KAAW,CACpB,CAAC,GAAG8lB,KAAaj3N,KAASA,EAC1B,CAAC,GAAGi3N,UAAmB,CAAC,OAAQ,iBAAiBnpO,SAASnJ,GAC1D,CAAC,GAAGsyO,mBAAqC,kBAATtyO,EAChC,CAAC,GAAGsyO,cAAuBirH,GACjB,OAATnwB,QAA0B,IAATA,OAAkB,EAASA,EAAK7sU,UAAWA,EAAW0wQ,EAAekV,EAAQ8nB,EAAW/Y,GAC5G/zB,eAAgB30C,KAAW20C,EAAgBglB,EAAQ8nB,EAAW/Y,GAC9D52R,MAAOk4P,EACPwgJ,SAAUA,EACV8rE,KAAM9jd,OAAOoD,OAAO,CAClB6oM,KAA8Q,QAAvQnqK,EAA4N,QAAtND,EAA0H,QAApHD,EAAsE,QAAhED,EAAc,OAATysS,QAA0B,IAATA,OAAkB,EAASA,EAAK01I,YAAyB,IAAPnib,OAAgB,EAASA,EAAGsqK,YAAyB,IAAPrqK,EAAgBA,EAAc,OAATwsS,QAA0B,IAATA,OAAkB,EAASA,EAAKk2I,gBAA6B,IAAPzib,EAAgBA,EAAKyib,SAA6B,IAAPxib,EAAgBA,EAAkB+rL,EAAAA,cAAoBsiF,GAAkB,MAC9V19C,eAAgB,GAAG4jC,cAClBytL,GACHxwO,UAAWA,EACXyyO,SAAUoJ,EACVrhI,UAAWs7E,KACT,EAEN4oD,GAAK3D,QC/GWA,IAAM,KDmHtB,YEjHA,IAAI1oL,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAIA,MAkBA,GAlBa4I,IACX,IAAI,UACAg9M,EAAS,UACT/xO,EAAS,UACTgxd,GAAY,GACVj8b,EACJub,EAAQ8zP,GAAOrvQ,EAAI,CAAC,YAAa,YAAa,cAChD,MAAM,aACJwsP,GACEj1D,EAAAA,WAAiBg1D,IACf70K,EAAS80K,EAAa,OAAQxvC,GAC9BwuC,EAAct0D,KAAW,GAAGx/G,SAAezsG,EAAW,CAC1D,CAAC,GAAGysG,oBAA0BukX,IAEhC,OAAoB1kQ,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CAAC,EAAGyuC,EAAO,CACtEtwC,UAAWugR,IACV,ECxBC0wM,GAAmB7vW,IACvB,MAAM,OACJ00K,EAAM,aACNH,EAAY,aACZ6U,EAAY,cACZC,EAAa,iBACbymL,GACE9vW,EACJ,OAAO3iH,OAAOoD,OAAOpD,OAAOoD,OAAO,CACjC5C,QAAS,OACT+sS,eAAgB,SAChBlB,cAAe,SACf7uC,UAAWuuC,EACXvzK,cAAe,EACfj9F,QAAS,KAAKv+B,GAAKgvS,KACnB/wQ,MAAO0nF,EAAM+jL,iBACb7pQ,WAAY8lF,EAAMmlL,iBAClB1wQ,SAAUurF,EAAM86O,eAChBjoO,WAAY7S,EAAMypL,SAClB+tB,aAAc,GAAGn9T,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMo9K,uBAClE1E,aAAc,GAAGr+R,GAAK2lH,EAAM85K,mBAAmBz/R,GAAK2lH,EAAM85K,uBppBkBtC,CAEtB,YAAa,CACXj8R,QAAS,QACTiY,QAAS,MAEX,WAAY,CAEVjY,QAAS,QACT0nF,MAAO,OACPzvE,QAAS,QopB3BK,CACd,YAAa,CACXxc,MAAO,OACPuE,QAAS,OACTs5R,WAAY,UAEd,UAAW95R,OAAOoD,OAAOpD,OAAOoD,OAAO,CACrC5C,QAAS,eACTk/C,KAAM,GACL+4O,IAAe,CAChB,CAAC,iBACOvB,8BACAA,uCACF,CACJsW,iBAAkB,EAClBl1K,UAAW,EACXE,aAAc,KAGlB,CAAC,GAAG6+J,cAAoB,CACtBnvM,MAAO,OACPswC,aAAci6V,EACdx3b,MAAO0nF,EAAMk2K,UACbh8P,WAAY,SACZzF,SAAUurF,EAAMvrF,SAChB,QAAS,CACP+iS,aAAc,GAAGn9T,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMo9K,0BAGtE,EAGE2yL,GAAmB/vW,IACvB,MAAM,gBACJgwW,EAAe,qBACf5yL,EAAoB,WACpB6yL,EAAU,UACV16b,GACEyqF,EACJ,MAAO,CACL1mH,MAAO,SACPs/B,QAASo3b,EACT7jV,OAAQ,EACRusJ,aAAc,EACdngK,UAAW,WACPl+H,GAAKk7B,YAAoB6nQ,eACvB/iS,GAAKk7B,UAAkB6nQ,aACzB/iS,GAAKk7B,MAAcl7B,GAAKk7B,UAAkB6nQ,aAC1C/iS,GAAKk7B,YAAoB6nQ,qBACvB/iS,GAAKk7B,UAAkB6nQ,iBAE7Bx1O,WAAY,OAAOo4D,EAAMkiL,oBACzB,oBAAqB,CACnBx/R,SAAU,WACVE,OAAQ,EACR21H,UAAW03V,GAEd,EAGGC,GAAsBlwW,IAC1B,MAAM,aACJu0K,EAAY,QACZE,EAAO,gBACP07L,EAAe,oBACfC,EAAmB,qBACnBhzL,EAAoB,UACpBizL,GACErwW,EACJ,OAAO3iH,OAAOoD,OAAOpD,OAAOoD,OAAO,CACjCxH,OAAQ,EACR2/B,QAAS,EACTu9P,UAAW,OACXtjK,WAAYw9V,EACZ91H,UAAW,GAAGlgW,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAYqF,IACzDv/R,QAAS,OACT66R,aAAc,OAAOr+R,GAAK2lH,EAAM85K,mBAAmBz/R,GAAK2lH,EAAM85K,mBppB3D1C,CAEtB,YAAa,CACXj8R,QAAS,QACTiY,QAAS,MAEX,WAAY,CAEVjY,QAAS,QACT0nF,MAAO,OACPzvE,QAAS,QopBkDK,CACd,SAAU,CACR7c,OAAQk3d,EACR73b,MAAO0nF,EAAMikL,qBACblqQ,UAAW,SACX,SAAU,CACRr3B,SAAU,WACV7E,QAAS,QACTslC,SAAU68E,EAAMq6J,KAAKr6J,EAAMowW,qBAAqB1gQ,IAAI,GAAGp/C,QACvD77I,SAAUurF,EAAMvrF,SAChBE,WAAYqrF,EAAMrrF,WAClBtD,OAAQ,UACR,UAAW,CACTiH,MAAO0nF,EAAMu3K,aACb3vO,WAAY,SAASo4D,EAAMkiL,qBAE7B,CAAC,SAAS3N,aAAwBE,KAAY,CAC5C52R,QAAS,eACTvE,MAAO,OACPg/B,MAAO0nF,EAAMikL,qBACbtvQ,WAAYt6B,GAAK2lH,EAAMo7K,YACvBxzO,WAAY,SAASo4D,EAAMkiL,oBAC3B,UAAW,CACT5pQ,MAAO0nF,EAAMu3K,eAGjB,CAAC,KAAK9C,KAAY,CAChBhgQ,SAAU27b,EACVz7b,WAAYt6B,GAAK2lH,EAAMq6J,KAAK+1M,GAAqB1gQ,IAAI1vG,EAAMrrF,YAAY27I,WAG3E,qBAAsB,CACpBgpJ,gBAAiB,GAAGj/T,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAYqF,OAGnE,EAGEkzL,GAAmBtwW,GAAS3iH,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC5DxH,OAAQ,GAAGoB,GAAK2lH,EAAMq6J,KAAKr6J,EAAMmmL,WAAWz2E,KAAK,GAAGp/C,aACpDzyK,QAAS,QppBpGa,CAEtB,YAAa,CACXA,QAAS,QACTiY,QAAS,MAEX,WAAY,CAEVjY,QAAS,QACT0nF,MAAO,OACPzvE,QAAS,QopB2FG,CACd,WAAY,CACVmkT,iBAAkBj6M,EAAMpnF,SAE1B,WAAY,CACVj2B,SAAU,SACVo6C,KAAM,EACN,yBAA0B,CACxB84E,aAAc7V,EAAMomL,WAGxB,UAAW/oS,OAAOoD,OAAO,CACvB63B,MAAO0nF,EAAM+jL,iBACb7pQ,WAAY8lF,EAAMmlL,iBAClB1wQ,SAAUurF,EAAM26K,YACf7E,IACH,gBAAiB,CACfx9P,MAAO0nF,EAAMikL,wBAIXssL,GAAwBvwW,IAC5B,MAAM,aACJu0K,EAAY,eACZmP,EAAc,cACd2F,EAAa,YACbgxD,GACEr6O,EACJ,MAAO,CACL,CAAC,GAAGu0K,UAAsB,CACxB37P,QAAS,KAAKv+B,GAAKgvS,KACnBx2K,WAAY6wK,EACZ,UAAW,CACTjvQ,SAAUurF,EAAMvrF,WAGpB,CAAC,GAAG8/P,UAAsB,CACxB37P,QAAS,GAAGv+B,GAAK2lH,EAAMpnF,YAAYv+B,GAAKggW,MAE3C,EAGGm2H,GAAsBxwW,IAC1B,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACLr9G,SAAU,SACV,CAAC,GAAG4xR,UAAsB,CACxB7yI,WAAY,QAEf,EAGGurU,GAAejtW,IACnB,MAAM,aACJu0K,EAAY,WACZ07L,EAAU,gBACVQ,EAAe,qBACfrzL,EAAoB,kBACpBuJ,EAAiB,YACjB0zD,EAAW,WACXq2H,GACE1wW,EACJ,MAAO,CACL,CAACu0K,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACtEt9G,SAAU,WACVmwH,WAAY7S,EAAM+8K,iBAClBrE,aAAc14K,EAAM85K,eACpB,CAAC,SAASvF,eAA2B,CACnCh8J,UAAWouK,GAEb,CAAC,GAAGpS,UAAsBs7L,GAAiB7vW,GAC3C,CAAC,GAAGu0K,WAAuB,CAEzBmmC,kBAAmB,OACnBpiS,MAAOo4b,EACPx2b,WAAY,SACZzF,SAAUurF,EAAMvrF,UAElB,CAAC,GAAG8/P,UAAsBl3R,OAAOoD,OAAO,CACtCm4B,QAASyhU,EACT3hE,aAAc,OAAOr+R,GAAK2lH,EAAM85K,mBAAmBz/R,GAAK2lH,EAAM85K,mBppBvL9C,CAEtB,YAAa,CACXj8R,QAAS,QACTiY,QAAS,MAEX,WAAY,CAEVjY,QAAS,QACT0nF,MAAO,OACPzvE,QAAS,QopB+KP,CAAC,GAAGy+Q,UAAsBw7L,GAAiB/vW,GAC3C,CAAC,GAAGu0K,WAAuB,CACzB,MAAO,CACL12R,QAAS,QACTvE,MAAO,OACPo/R,aAAc,GAAGr+R,GAAK2lH,EAAM85K,mBAAmBz/R,GAAK2lH,EAAM85K,wBAG9D,CAAC,GAAGvF,aAAyB27L,GAAoBlwW,GACjD,CAAC,GAAGu0K,UAAsB+7L,GAAiBtwW,KAE7C,CAAC,GAAGu0K,cAA0B,CAC5BpoJ,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAYqF,IACtD,CAAC,GAAG7I,WAAuB,CACzB5+J,WAAY,EACZ+kM,mBAAoB,EACpBC,iBAAkB,IAGtB,CAAC,GAAGpmC,eAA2B,CAC7BljQ,OAAQ,UACRu2B,WAAY,cAAco4D,EAAMkiL,mCAAmCliL,EAAMkiL,oBACzE,UAAW,CACTroQ,YAAa,cACb0+F,UAAW03V,IAGf,CAAC,GAAG17L,kBAA8B,CAChCmE,aAAc,GAAGr+R,GAAK2lH,EAAM85K,mBAAmBz/R,GAAK2lH,EAAM85K,uBAC1D,CAAC,GAAGvF,UAAsB,CACxB12R,QAAS,OACTkiV,SAAU,QAEZ,CAAC,SAASxrD,cAAyBA,UAAsB,CACvDghE,iBAAkBv1O,EAAMq6J,KAAKr6J,EAAMzqF,WAAWm6L,KAAK,GAAGp/C,QACtDoqJ,kBAAmB16M,EAAMq6J,KAAKr6J,EAAMzqF,WAAWm6L,KAAK,GAAGp/C,QACvD13I,QAAS,IAGb,CAAC,GAAG27P,kBAA8B,CAChC,CAAC,QAAQA,UAAsB,CAC7B15B,UAAW,EACX,CAAC,GAAG05B,iBAA4BA,WAAuB,CACrD17P,WAAY43b,KAIlB,CAAC,GAAGl8L,gBAA4Bg8L,GAAsBvwW,GACtD,CAAC,GAAGu0K,aAAyBi8L,GAAoBxwW,GACjD,CAAC,GAAGu0K,SAAqB,CACvBz/J,UAAW,OAEd,EAGG67V,GAAmB3wW,IACvB,MAAM,aACJu0K,EAAY,cACZq8L,EAAa,gBACbC,EAAe,eACfC,EAAc,iBACdC,GACE/wW,EACJ,MAAO,CACL,CAAC,GAAGu0K,WAAuB,CACzB,CAAC,KAAKA,UAAsB,CAC1B15B,UAAWi2N,EACXl4b,QAAS,KAAKv+B,GAAKw2d,KACnBp8b,SAAUs8b,EACV,CAAC,KAAKx8L,kBAA8B,CAClC,CAAC,KAAKA,WAAuB,CAC3B9/P,SAAUurF,EAAMvrF,YAItB,CAAC,KAAK8/P,UAAsB,CAC1B37P,QAASg4b,IAGb,CAAC,GAAGr8L,UAAqBA,kBAA8B,CACrD,CAAC,KAAKA,UAAsB,CAC1B,CAAC,GAAGA,iBAA4BA,WAAuB,CACrD17P,WAAY,EACZh7B,QAAS,OACTs5R,WAAY,YAInB,EAsBH,GAAepC,GAAc,QAAQ/0K,IACnC,MAAMgxW,EAAYh/L,GAAWhyK,EAAO,CAClCiwW,WAAYjwW,EAAM4nL,cAClB6oL,gBAAiBzwW,EAAMpnF,QACvBo3b,gBAAiBhwW,EAAM2lL,UACvByqL,oBAAqBpwW,EAAMvrF,WAE7B,MAAO,CAEPw4b,GAAa+D,GAEbL,GAAiBK,GAAW,IA/BOhxW,IACnC,IAAIrsF,EAAIC,EACR,MAAO,CACL61Q,SAAU,cACVqxD,eAAgB96O,EAAM26K,WACtBo2L,iBAAkB/wW,EAAMvrF,SACxB20Q,aAAcppL,EAAM26K,WAAa36K,EAAM66K,aAA+B,EAAhB76K,EAAMpnF,QAC5Dk4b,eAAgB9wW,EAAMvrF,SAAWurF,EAAMrrF,WAA+B,EAAlBqrF,EAAMwlL,UAC1D6qL,UAAWrwW,EAAM+8K,iBACjBozL,gBAAiB,GAAGnwW,EAAMylL,gBAC1BqqL,kBAAmB9vW,EAAMpnF,QAAUonF,EAAMzqF,UACzCm7b,WAAY1wW,EAAMk2K,UAClB06L,cAAe,GAEfC,gBAAiB,GACjBx2H,YAA0C,QAA5B1mU,EAAKqsF,EAAMq6O,mBAAgC,IAAP1mU,EAAgBA,EAAKqsF,EAAM2lL,UAC7E0D,cAA8C,QAA9Bz1Q,EAAKosF,EAAMqpL,qBAAkC,IAAPz1Q,EAAgBA,EAAKosF,EAAM2lL,UAClF,IC7UH,IAAI3C,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAYA,MAAMkmc,GAAa/hb,IACjB,MAAM,cACJgib,EAAa,QACbp/X,EAAU,GAAE,YACZq/X,GACEjib,EACJ,OAAoBg8K,EAAAA,cAAoB,KAAM,CAC5CtsN,UAAWsyd,EACXv0d,MAAOw0d,GACNr/X,EAAQptF,KAAI,CAAC88D,EAAQj6D,KAItB,MAAMpL,EAAM,UAAUoL,IACtB,OAAoB2jN,EAAAA,cAAoB,KAAM,CAC5CvuN,MAAO,CACLrD,MAAU,IAAMw4F,EAAQt5F,OAAjB,KAET2D,IAAKA,GACS+uN,EAAAA,cAAoB,OAAQ,KAAM1pJ,GAAQ,IACzD,ECvCL,IAAIwhO,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAIA,MA8BA,GA9BamkB,IACX,MACIyhM,UAAW2vC,EAAkB,UAC7B1hR,EAAS,OACT2sU,EAAM,MACNnoS,EAAK,YACLnkB,GACEiwB,EACJ49Q,EAAS9pB,GAAO9zP,EAAO,CAAC,YAAa,YAAa,SAAU,QAAS,iBACjE,aACJixO,GACEj1D,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,OAAQG,GACjCnB,EAAct0D,KAAW,GAAG8lB,SAAkB/xO,GAC9Cwyd,EAAY7lJ,EAAuBrgH,EAAAA,cAAoB,MAAO,CAClEtsN,UAAW,GAAG+xO,iBACb46F,GAAW,KACR8lJ,EAAWjub,EAAsB8nL,EAAAA,cAAoB,MAAO,CAChEtsN,UAAW,GAAG+xO,gBACbvtM,GAAU,KACPkub,EAAiBryc,EAA4BisM,EAAAA,cAAoB,MAAO,CAC5EtsN,UAAW,GAAG+xO,sBACb1xN,GAAgB,KACbsyc,EAAaF,GAAYC,EAA+BpmQ,EAAAA,cAAoB,MAAO,CACvFtsN,UAAW,GAAG+xO,iBACb0gP,EAAUC,GAAmB,KAChC,OAAoBpmQ,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CAAC,EAAGqsT,EAAQ,CACvEluT,UAAWugR,IACTiyM,EAAWG,EAAW,ECpCtBC,GFsCoBtmQ,EAAAA,YAAiB,CAACh8K,EAAON,KACjD,MACI+hM,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,MACb3yQ,EAAK,MACLk1G,EAAK,UACL4/W,EAAY,CAAC,EAAC,UACdriI,EAAY,CAAC,EAAC,MACdhsT,EAAK,QACLimG,EAAO,SACPm7P,EACAjqP,QAASkqP,EACT/qX,KAAMyiU,EAAa,KACnB99U,EAAI,MACJqzd,EAAK,QACL5/X,EAAO,QACP6/X,EAAO,SACPn2a,EAAQ,aACRo2a,EAAY,oBACZC,EAAmB,mBACnBtF,EAAkB,UAClBqD,EAAS,SACTkC,EAAW,CAAC,EACZjnQ,WAAY2xH,EACZrpT,OAAQ4+b,GACN7ib,EACJ49Q,EAAS9pB,GAAO9zP,EAAO,CAAC,YAAa,YAAa,gBAAiB,QAAS,QAAS,YAAa,YAAa,QAAS,UAAW,WAAY,UAAW,OAAQ,OAAQ,QAAS,UAAW,UAAW,WAAY,eAAgB,sBAAuB,qBAAsB,YAAa,WAAY,aAAc,YACrT,aACJixO,EAAY,UACZrrJ,EAAS,KACT02M,GACEtgH,EAAAA,WAAiBg1D,KACd3lI,GAAW0qP,GAAW,OAAQR,EAAeD,GASpD,MAIM4iC,EAAcC,IAClB,IAAI1zY,EACJ,OAAOk3L,KAAkF,QAAtEl3L,EAAc,OAAT63S,QAA0B,IAATA,OAAkB,EAASA,EAAK3gH,kBAA+B,IAAPl3L,OAAgB,EAASA,EAAG0zY,GAAkC,OAArB7qF,QAAkD,IAArBA,OAA8B,EAASA,EAAiB6qF,GAAY,EAEvOC,EAAcD,IAClB,IAAI1zY,EACJ,OAAOt2B,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAsE,QAAlEkzB,EAAc,OAAT63S,QAA0B,IAATA,OAAkB,EAASA,EAAKr4S,cAA2B,IAAPQ,OAAgB,EAASA,EAAG0zY,IAA+B,OAAjB0qD,QAA0C,IAAjBA,OAA0B,EAASA,EAAa1qD,GAAY,EAE7O2qD,EAAgB9mQ,EAAAA,SAAc,KAClC,IAAI+mQ,GAAc,EAMlB,OALA/mQ,EAAAA,SAAe/yN,QAAQqjD,GAAUvkB,KACd,OAAZA,QAAgC,IAAZA,OAAqB,EAASA,EAAQ54B,QAAU6zd,KACvED,GAAc,EAChB,IAEKA,CAAW,GACjB,CAACz2a,IACEm1L,EAAYwvC,EAAa,OAAQG,IAChC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3CwhP,EAA4BjnQ,EAAAA,cAAoB4qI,GAAU,CAC9DzsN,SAAS,EACTl/G,QAAQ,EACR4rU,UAAW,CACThiU,KAAM,GAERqP,OAAO,GACNoY,GACG42a,OAAmC9td,IAAjBstd,EAClBniL,EAAapyS,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGqxd,GAAW,CAC5D,CAACM,EAAkB,YAAc,oBAAqBA,EAAkBR,EAAeC,EACvFtF,uBAEF,IAAIz4b,EACJ,MAAMk5R,EAAaC,GAAQkvB,GACrBl+R,EAAW+uQ,GAA6B,YAAfA,EAAqCA,EAAV,QACpDye,EAAOkmJ,EAAwBzmQ,EAAAA,cAAoBmkQ,GAAMhyd,OAAOoD,OAAO,CAC3EiZ,KAAMukC,GACLwxP,EAAY,CACb7wS,UAAW,GAAG+xO,cACd0H,SA3CkBl8O,IAClB,IAAIw3B,EACyB,QAA5BA,EAAKub,EAAMmjb,mBAAgC,IAAP1+b,GAAyBA,EAAGv8B,KAAK83C,EAAO/yC,EAAI,EA0CjF26O,MAAO66O,EAAQjtd,KAAIivB,IACjB,IAAI,IACAoub,GACEpub,EACJ4V,EAAOy5P,GAAOrvQ,EAAI,CAAC,QACrB,OAAOt2B,OAAOoD,OAAO,CACnB0vG,MAAO4xW,GACNx4a,EAAK,OAEL,KACP,GAAInG,GAASyuE,GAAS45N,EAAM,CAC1B,MAAM6mJ,EAAcznQ,KAAW,GAAG8lB,SAAkBy2L,EAAY,WAC1DmrD,EAAe1nQ,KAAW,GAAG8lB,eAAwBy2L,EAAY,UACjEorD,EAAe3nQ,KAAW,GAAG8lB,UAAmBy2L,EAAY,UAC5DqrD,EAAkBp1d,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGgxd,GAAYnqD,EAAY,WAChFxzY,EAAoBo3L,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAW0zd,EACX31d,MAAO81d,GACOvnQ,EAAAA,cAAoB,MAAO,CACzCtsN,UAAW,GAAG+xO,kBACbvtM,GAAuB8nL,EAAAA,cAAoB,MAAO,CACnDtsN,UAAW2zd,EACX51d,MAAO2qa,EAAY,UAClBlkY,GAASyuE,GAAuBq5G,EAAAA,cAAoB,MAAO,CAC5DtsN,UAAW4zd,EACX71d,MAAO2qa,EAAY,UAClBz1T,IAAU45N,EACf,CACA,MAAMinJ,EAAe7nQ,KAAW,GAAG8lB,UAAmBy2L,EAAY,UAC5DurD,EAAWjB,EAAsBxmQ,EAAAA,cAAoB,MAAO,CAChEtsN,UAAW8zd,EACX/1d,MAAO2qa,EAAY,UAClBoqD,GAAU,KACPkB,EAAc/nQ,KAAW,GAAG8lB,SAAkBy2L,EAAY,SAC1DyrD,EAAkBx1d,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG2uV,GAAYk4E,EAAY,SAC1Epka,EAAoBgoN,EAAAA,cAAoB,MAAO,CACnDtsN,UAAWg0d,EACXj2d,MAAOk2d,GACNxpV,EAAU8oV,EAAe32a,GACtB01a,EAAgBrmQ,KAAW,GAAG8lB,YAAqBy2L,EAAY,YAC/D0rD,GAAyB,OAAZhhY,QAAgC,IAAZA,OAAqB,EAASA,EAAQt5F,QAAwB0yN,EAAAA,cAAoB+lQ,GAAY,CACnIC,cAAeA,EACfC,YAAa7pD,EAAY,WACzBx1U,QAASA,IACL,KACA86M,EAAWhtM,GAAKktN,EAAQ,CAAC,gBACzB3tC,GAAct0D,KAAW8lB,EAAoB,OAAT66F,QAA0B,IAATA,OAAkB,EAASA,EAAK5sU,UAAW,CACpG,CAAC,GAAG+xO,aAAsBtnG,EAC1B,CAAC,GAAGsnG,cAAmC,eAAZp2F,EAC3B,CAAC,GAAGo2F,eAAwBi/O,EAC5B,CAAC,GAAGj/O,kBAA2BqhP,EAC/B,CAAC,GAAGrhP,kBAAuC,OAAZghP,QAAgC,IAAZA,OAAqB,EAASA,EAAQn5d,OACzF,CAAC,GAAGm4O,KAAaq8E,KAAeA,EAChC,CAAC,GAAGr8E,UAAkBtyO,OAAWA,EACjC,CAAC,GAAGsyO,SAAgC,QAAd77G,GACrBl2H,EAAW0wQ,EAAekV,EAAQ8nB,GAC/Bz3C,GAAcx3P,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAY,OAAT+qU,QAA0B,IAATA,OAAkB,EAASA,EAAK7uU,OAAQA,GAC7G,OAAO0vS,EAAwBnhF,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CACtEmuC,IAAKA,GACJg+P,EAAU,CACXhuS,UAAWugR,GACXxiR,MAAOk4P,KACL/gO,EAAM6+b,EAAUzvd,EAAM4vd,GAAW,IEzLvCtB,GAAKU,KAAOA,GACZV,GAAKjka,KAAOA,GAIZ,YCNA,IAAI83K,GAAY,CAAC,YAAa,YAAa,QAAS,UAAW,WAAY,iBAAkB,OAAQ,QAAS,YA+E9G,UA1EmCz2H,EAAAA,EAAAA,aAAW,SAAU1/D,EAAON,GAC7D,IAAIslM,EAAmBhlM,EAAMyhM,UAC3BA,OAAiC,IAArBuD,EAA8B,cAAgBA,EAC1Dt1O,EAAYswC,EAAMtwC,UAClBjC,EAAQuyC,EAAMvyC,MACdw9C,EAAUjL,EAAMiL,QAChBkB,EAAWnM,EAAMmM,SACjB03a,EAAwB7jb,EAAMoL,eAC9BA,OAA2C,IAA1By4a,GAA2CA,EAC5DtxF,EAAcvyV,EAAM7wC,KACpBA,OAAuB,IAAhBojY,EAAyB,WAAaA,EAC7Cr+V,EAAQ8L,EAAM9L,MACdi1M,EAAWnpM,EAAMmpM,SACjBkoN,EAAanvN,GAAyBliM,EAAOm2L,IAC3C28J,GAAWr9T,EAAAA,EAAAA,QAAO,MAClBgqQ,GAAYhqQ,EAAAA,EAAAA,QAAO,MAIrBkwM,EAAmB5hC,GAHCkF,GAAe79L,EAAgB,CACjDrkD,MAAOkkD,IAE0C,GACnD6iU,EAAWnoG,EAAiB,GAC5Bm+M,EAAcn+M,EAAiB,IACjCvwM,EAAAA,EAAAA,qBAAoB11B,GAAK,WACvB,MAAO,CACLhkB,MAAO,SAAerwB,GACpB,IAAI+nY,EACuC,QAA1CA,EAAoBN,EAAS1kW,eAA2C,IAAtBglW,GAAgCA,EAAkB13W,MAAMrwB,EAC7G,EACAiwB,KAAM,WACJ,IAAI+3W,EACwC,QAA3CA,EAAqBP,EAAS1kW,eAA4C,IAAvBilW,GAAiCA,EAAmB/3W,MAC1G,EACAtS,MAAO8pX,EAAS1kW,QAChB4pM,cAAeynG,EAAUrxS,QAE7B,IACA,IAAI6hP,EAAct0D,KAAW8lB,EAAW/xO,GAAWswG,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,YAAaqsI,GAAW,GAAGnhX,OAAO80O,EAAW,aAAct1L,IAsBvK,OAAoB6vK,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAWugR,EACX/7O,MAAOA,EACPzmC,MAAOA,EACPiyC,IAAK+/R,GACSzjH,EAAAA,cAAoB,QAASoL,GAAS,CAAC,EAAGiqO,EAAY,CACpE3hc,UAAW,GAAG/C,OAAO80O,EAAW,UAChC/hM,IAAKozV,EACL3pJ,SA7BiB,SAAsBxzN,GACnCw2B,IAGE,YAAanM,GACjB8jb,EAAYnuc,EAAEziB,OAAO+3C,SAEV,OAAbk+L,QAAkC,IAAbA,GAAuBA,EAAS,CACnDj2O,OAAQytO,GAAcA,GAAc,CAAC,EAAG3gM,GAAQ,CAAC,EAAG,CAClD7wC,KAAMA,EACN87C,QAASt1B,EAAEziB,OAAO+3C,UAEpB8N,gBAAiB,WACfpjC,EAAEojC,iBACJ,EACAmB,eAAgB,WACdvkC,EAAEukC,gBACJ,EACA7C,YAAa1hC,EAAE0hC,cAEnB,EAUElL,SAAUA,EACVlB,UAAW6iU,EACX3+W,KAAMA,KACU6sN,EAAAA,cAAoB,OAAQ,CAC5CtsN,UAAW,GAAG/C,OAAO80O,EAAW,YAEpC,ICjFA,GADkCzlB,EAAAA,cAAoB,MCGzC+nQ,GAAmBjzW,IAC9B,MAAM,YACJkzW,GACElzW,EACE8oO,EAAa,GAAGoqI,YACtB,MAAO,CAEP,CAEE,CAAC,GAAGA,WAAsB71d,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CAChFniH,QAAS,cACTkiV,SAAU,OACV9zB,UAAWjsM,EAAMomL,SAEjB,CAAC,KAAKpmL,EAAM00K,cAAe,CACzB33O,KAAM,KAIV,CAAC+rS,GAAazrV,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACpEniH,QAAS,cACTs5R,WAAY,WACZ9lQ,OAAQ,UAER,UAAW,CACTxzB,QAAS,eACTvE,MAAO,EACPqJ,SAAU,SACVmT,QAAS,UAGX,CAAC,OAAOgzU,KAAe,CACrBpuB,kBAAmB,GAErB,CAAC,IAAIouB,kBAA4B,CAC/B,yBAA0B,CACxBxvV,MAAO,GAEPN,OAAQ,OAKd,CAACk6d,GAAc71d,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACrEt9G,SAAU,WACVg2I,WAAY,SACZ/jH,WAAY,EACZtD,OAAQ,UACRqnQ,aAAc14K,EAAM65K,eAGpB6hI,UAAW,SAEX,CAAC,GAAGw3D,WAAsB,CACxBxwd,SAAU,WAIV81H,MAAO,EACP51H,OAAQ,EACRyuB,OAAQ,UACRruB,QAAS,EACT/J,OAAQ,EACR,CAAC,qBAAqBi6d,WAAsB71d,OAAOoD,OAAO,CAAC,EAAGo2R,GAAgB72K,KAGhF,CAAC,GAAGkzW,WAAsB,CACxBznP,UAAW,aACX5tO,QAAS,QACTvE,MAAO0mH,EAAMmzW,aACbn6d,OAAQgnH,EAAMmzW,aACdr+V,UAAW,MACXhyH,gBAAiBk9G,EAAM+8K,iBACvB5wJ,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMm9K,cAC5DzE,aAAc14K,EAAM65K,eACpBujG,eAAgB,WAChBx1U,WAAY,OAAOo4D,EAAMu2K,qBACzB,UAAW,CACT9qD,UAAW,aACX/oO,SAAU,WACV/J,IAAK,MACLkyS,iBAAkB,MAClBhtS,QAAS,QACTvE,MAAO0mH,EAAMq6J,KAAKr6J,EAAMmzW,cAAcnlQ,IAAI,IAAI0B,IAAI,GAAGp/C,QACrDt3K,OAAQgnH,EAAMq6J,KAAKr6J,EAAMmzW,cAAcnlQ,IAAI,IAAI0B,IAAI,GAAGp/C,QACtDnkC,OAAQ,GAAG9xI,GAAK2lH,EAAMmiL,wBAAwBniL,EAAMohL,aACpDm5D,UAAW,EACXzvD,kBAAmB,EACnBl0N,UAAW,8CACX5zE,QAAS,EACT8S,QAAS,KACT8xC,WAAY,OAAOo4D,EAAMiiL,sBAAsBjiL,EAAMu4K,6BAA6Bv4K,EAAMiiL,uBAI5F,WAAY,CACVq4B,mBAAoBt6M,EAAMwlL,UAC1By0B,iBAAkBj6M,EAAMwlL,cAK9B,CAEE,CAAC,aACKsjD,SAAkBA,yBAClBoqI,SAAmBA,uBACnB,CACJ,CAAC,WAAWA,WAAsB,CAChCr5b,YAAammF,EAAMu3K,eAGvB,CAAC,GAAGuxD,SAAkBA,eAAyB,CAC7C,CAAC,WAAWoqI,iBAA2BA,eAAyBA,WAAsB,CACpFpwd,gBAAiBk9G,EAAMy+K,kBACvB5kQ,YAAa,eAEf,CAAC,WAAWq5b,iBAA2BA,qBAAgC,CACrEr5b,YAAammF,EAAMy+K,qBAKzB,CAEE,CAAC,GAAGy0L,aAAwB,CAC1B,CAAC,GAAGA,WAAsB,CACxBpwd,gBAAiBk9G,EAAMu3K,aACvB19P,YAAammF,EAAMu3K,aACnB,UAAW,CACTv0R,QAAS,EACT4zE,UAAW,8CACXhvB,WAAY,OAAOo4D,EAAMkiL,qBAAqBliL,EAAMs4K,qBAAqBt4K,EAAMiiL,wBAIrF,CAAC,aACK6mD,iBAA0BA,yBAC1BoqI,iBAA2BA,uBAC3B,CACJ,CAAC,WAAWA,WAAsB,CAChCpwd,gBAAiBk9G,EAAMy+K,kBACvB5kQ,YAAa,iBAKnB,CACE,CAACq5b,GAAc,CACb,kBAAmB,CAEjB,CAAC,GAAGA,WAAsB,CACxBpwd,gBAAiB,GAAGk9G,EAAM+8K,8BAC1BljQ,YAAa,GAAGmmF,EAAMm9K,yBACtB,UAAW,CACTxkS,IAAK,MACLkyS,iBAAkB,MAClBvxS,MAAO0mH,EAAMq6J,KAAKr6J,EAAM26K,YAAY3sE,IAAI,GAAG19C,QAC3Ct3K,OAAQgnH,EAAMq6J,KAAKr6J,EAAM26K,YAAY3sE,IAAI,GAAG19C,QAC5CxtK,gBAAiBk9G,EAAMu3K,aACvBprJ,OAAQ,EACRv1D,UAAW,iCACX5zE,QAAS,EACT8S,QAAS,OAIb,CAAC,WAAWo9c,WAAsB,CAChCpwd,gBAAiB,GAAGk9G,EAAM+8K,8BAC1BljQ,YAAa,GAAGmmF,EAAMu3K,8BAM9B,CAEE,CAAC,GAAGuxD,cAAwB,CAC1Bz3T,OAAQ,eAGV,CAAC,GAAG6hc,cAAyB,CAE3B,CAAC,MAAMA,WAAsB,CAC3B7hc,OAAQ,cAGRmgN,cAAe,QAGjB,CAAC,GAAG0hP,WAAsB,CACxBrgW,WAAY7S,EAAM2jL,yBAClB9pQ,YAAammF,EAAMm9K,YACnB,UAAW,CACTtjQ,YAAammF,EAAM42K,oBAGvB,UAAW,CACT/4R,QAAS,QAEX,WAAY,CACVy6B,MAAO0nF,EAAM42K,mBAEf,CAAC,IAAIs8L,mBAA6BA,kBAA6B,CAC7DrgW,WAAY7S,EAAM42K,qBAGtB,EAGG,SAASjgG,GAASg6C,EAAW3wH,GAClC,MAAMozW,EAAgBphM,GAAWhyK,EAAO,CACtCkzW,YAAa,IAAIviP,IACjBwiP,aAAcnzW,EAAM4kL,yBAEtB,MAAO,CAACquL,GAAiBG,GAC3B,CACA,SAAer+L,GAAc,YAAY,CAAC/0K,EAAOsiC,KAC/C,IAAI,UACFquF,GACEruF,EACJ,MAAO,CAACq0C,GAASg6C,EAAW3wH,GAAO,IC1NtB,SAASqzW,GAAcC,GACpC,MAAMC,EAAoBroQ,EAAAA,OAAa,MACjC+1L,EAAYA,KAChBjvK,GAAIv0I,OAAO81X,EAAkBj2b,SAC7Bi2b,EAAkBj2b,QAAU,IAAI,EAelC,MAAO,CAbck2b,KACnBvyE,IACAsyE,EAAkBj2b,QAAU00M,IAAI,KAC9BuhP,EAAkBj2b,QAAU,IAAI,GAChC,EAEiBzY,IACf0uc,EAAkBj2b,UACpBzY,EAAEojC,kBACFg5V,KAEqB,OAAvBqyE,QAAsD,IAAvBA,GAAyCA,EAAmBzuc,EAAE,EAGjG,CCzBA,IAAIm+Q,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAeA,MAAM0oc,GAAmBA,CAACvkb,EAAON,KAC/B,IAAIjb,EACJ,MACIg9M,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,SACb9zN,EAAQ,cACRk4a,GAAgB,EAAK,MACrB/2d,EAAK,aACL2nP,EAAY,aACZC,EAAY,UACZovO,GAAY,EAAK,SACjBt4a,GACEnM,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,YAAa,gBAAiB,WAAY,gBAAiB,QAAS,eAAgB,eAAgB,YAAa,cACrJ,aACJixO,EAAY,UACZrrJ,EAAS,SACTw1M,GACEp/G,EAAAA,WAAiBg1D,IACf0zM,EAAgB1oQ,EAAAA,WAAiB2oQ,KACjC,gBACJ1oK,GACEjgG,EAAAA,WAAiB4/F,IACfhlE,EAAkB56B,EAAAA,WAAiBk9G,IACnC9hF,EAA+H,QAA7G3yN,GAAwB,OAAlBigc,QAA4C,IAAlBA,OAA2B,EAASA,EAAcv4a,WAAaA,SAA6B,IAAP1nB,EAAgBA,EAAKmyN,EAC5JlN,EAAY1tB,EAAAA,OAAaimB,EAAUl7O,OACnC69d,EAAc5oQ,EAAAA,OAAa,MAC3B8jB,EAAYtH,GAAW94L,EAAKklb,GAKlC5oQ,EAAAA,WAAgB,KACI,OAAlB0oQ,QAA4C,IAAlBA,GAAoCA,EAAcG,cAAc5iP,EAAUl7O,MAAM,GACzG,IACHi1N,EAAAA,WAAgB,KACd,IAAIyoQ,EAQJ,OALIxiP,EAAUl7O,QAAU2iP,EAAUt7M,UACd,OAAlBs2b,QAA4C,IAAlBA,GAAoCA,EAAcI,YAAYp7O,EAAUt7M,SAChF,OAAlBs2b,QAA4C,IAAlBA,GAAoCA,EAAcG,cAAc5iP,EAAUl7O,OACpG2iP,EAAUt7M,QAAU6zM,EAAUl7O,OAEzB,IAAwB,OAAlB29d,QAA4C,IAAlBA,OAA2B,EAASA,EAAcI,YAAY7iP,EAAUl7O,MAAM,GACpH,CAACk7O,EAAUl7O,QACdi1N,EAAAA,WAAgB,KACd,IAAIv3L,GAC+B,QAA9BA,EAAKmgc,EAAYx2b,eAA4B,IAAP3J,OAAgB,EAASA,EAAGzb,SACrE47c,EAAYx2b,QAAQplB,MAAMw7c,cAAgBA,EAC5C,GACC,CAACA,IACJ,MAAM/iP,EAAYwvC,EAAa,WAAYG,GACrCiT,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GACtD0gM,EAAgB52d,OAAOoD,OAAO,CAAC,EAAG0wO,GACpCyiP,IAAkBD,IACpBM,EAAc57O,SAAW,WACnBlH,EAAUkH,UACZlH,EAAUkH,SAAS3mO,MAAMy/N,EAAWrqO,WAElC8sd,EAAcM,cAChBN,EAAcM,aAAa,CACzB/jX,MAAO30D,EACPvlD,MAAOk7O,EAAUl7O,OAGvB,EACAg+d,EAAc3ud,KAAOsud,EAActud,KACnC2ud,EAAc95a,QAAUy5a,EAAc39d,MAAMuR,SAAS2pO,EAAUl7O,QAEjE,MAAMkpR,EAAct0D,KAAW,GAAG8lB,YAAqB,CACrD,CAAC,GAAGA,SAAgC,QAAd77G,EACtB,CAAC,GAAG67G,qBAA8BsjP,EAAc95a,QAChD,CAAC,GAAGw2L,sBAA+B2V,EACnC,CAAC,GAAG3V,0BAAmCw6E,GACzB,OAAbmf,QAAkC,IAAbA,OAAsB,EAASA,EAAS1rU,UAAWA,EAAW0wQ,EAAeg9B,EAAW/Y,EAAS/O,GACnH2vM,EAAgBtpQ,KAAW,CAC/B,CAAC,GAAG8lB,mBAA4B+iP,GAC/BhjJ,GAAYlsD,IAERgvM,EAAcY,GAAgBf,GAAcY,EAAczoZ,SAEjE,OAAO6gO,EAAwBnhF,EAAAA,cAAoByzH,GAAM,CACvD19G,UAAW,WACX5lL,SAAUirM,GACIp7B,EAAAA,cAAoB,QAAS,CAC3CtsN,UAAWugR,EACXxiR,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAgB,OAAb6pU,QAAkC,IAAbA,OAAsB,EAASA,EAAS3tU,OAAQA,GAC5G2nP,aAAcA,EACdC,aAAcA,EACd/4K,QAASgoZ,GACKtoQ,EAAAA,cAAoBmpQ,GAAYh3d,OAAOoD,OAAO,CAAC,EAAGwzd,EAAe,CAC/EzoZ,QAAS4oZ,EACTzjP,UAAWA,EACX/xO,UAAWu1d,EACX94a,SAAUirM,EACV13M,IAAKogM,UACW1qO,IAAbk3C,GAAuC0vK,EAAAA,cAAoB,OAAQ,CACtEtsN,UAAW,GAAG+xO,WACbn1L,KAAY,EAMjB,SAJ8B0vK,EAAAA,WAAiBuoQ,IC5H/C,IAAIzwL,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EASA,MA+FA,GA/FmCmgM,EAAAA,YAAiB,CAACh8K,EAAON,KAC1D,MAAM,aACFhZ,EAAY,SACZ4lB,EAAQ,QACRjhD,EAAU,GACVo2O,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,MACb3yQ,EAAK,SACL07O,GACEnpM,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,eAAgB,WAAY,UAAW,YAAa,YAAa,gBAAiB,QAAS,cAClH,aACJixO,EAAY,UACZrrJ,GACEo2F,EAAAA,WAAiBg1D,KACdjqR,EAAO8jD,GAAYmxK,EAAAA,SAAeimB,EAAUl7O,OAAS2/B,GAAgB,KACrE0+b,EAAkBC,GAAuBrpQ,EAAAA,SAAe,IAC/DA,EAAAA,WAAgB,KACV,UAAWimB,GACbp3L,EAASo3L,EAAUl7O,OAAS,GAC9B,GACC,CAACk7O,EAAUl7O,QACd,MAAMu+d,EAActpQ,EAAAA,SAAc,IAAM3wN,EAAQmK,KAAI49H,GAC5B,kBAAXA,GAAyC,kBAAXA,EAChC,CACLnyB,MAAOmyB,EACPrsI,MAAOqsI,GAGJA,KACL,CAAC/nI,IAwBCo2O,EAAYwvC,EAAa,WAAYG,GACrCpO,EAAiB,GAAGvhC,UACpB4iD,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GACtDqpH,EAAWh9S,GAAKuxI,EAAW,CAAC,QAAS,aACrC23E,EAAevuT,EAAQ/B,OAASg8d,EAAY9vd,KAAI49H,GAAwB4oF,EAAAA,cAAoBupQ,GAAU,CAC1G9jP,UAAWA,EACXx0O,IAAKmmI,EAAOrsI,MAAMoP,WAClBg2C,SAAU,aAAcinF,EAASA,EAAOjnF,SAAW81L,EAAU91L,SAC7DplD,MAAOqsI,EAAOrsI,MACdkkD,QAASlkD,EAAMuR,SAAS86H,EAAOrsI,OAC/BoiP,SAAU/1G,EAAO+1G,SACjBz5O,UAAW,GAAGszQ,SACdv1Q,MAAO2lI,EAAO3lI,MACdymC,MAAOk/F,EAAOl/F,MACdtoB,GAAIwnH,EAAOxnH,GACX0+F,SAAU8oB,EAAO9oB,UAChB8oB,EAAOnyB,SAAW30D,EACfgiB,EAAU,CACd02Z,aApCmB5xV,IACnB,MAAMoyV,EAAcz+d,EAAM8F,QAAQumI,EAAOrsI,OACnCq4F,EAAW+rJ,GAAmBpkP,IACf,IAAjBy+d,EACFpmY,EAASp1F,KAAKopI,EAAOrsI,OAErBq4F,EAAS9mD,OAAOktb,EAAa,GAEzB,UAAWvjP,GACfp3L,EAASu0C,GAEE,OAAb+pJ,QAAkC,IAAbA,GAA+BA,EAAS/pJ,EAAS9lF,QAAOxI,GAAOs0d,EAAiB9sd,SAASxH,KAAMksB,MAAK,CAAC3a,EAAGC,IAC5Ggjd,EAAY5rd,WAAUrR,GAAOA,EAAItB,QAAUsb,IAC3Cijd,EAAY5rd,WAAUrR,GAAOA,EAAItB,QAAUub,MAEzD,EAsBHvb,QACAolD,SAAU81L,EAAU91L,SACpB/1C,KAAM6rO,EAAU7rO,KAEhByud,cA5CoB/zd,IACpBu0d,GAAoBI,GAAc,GAAG94d,OAAOw+O,GAAmBs6O,GAAa,CAAC30d,KAAM,EA4CnFg0d,YAhDkBh0d,IAClBu0d,GAAoBI,GAAcA,EAAWnsd,QAAO+jB,GAAKA,IAAMvsB,KAAK,GAiDhEm/Q,EAAct0D,KAAWqnD,EAAgB,CAC7C,CAAC,GAAGA,SAAqC,QAAdp9I,GAC1Bl2H,EAAW0wQ,EAAeg9B,EAAW/Y,EAAS/O,GACjD,OAAO6nB,EAAwBnhF,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CACtE7B,UAAWugR,EACXxiR,MAAOA,GACNigZ,EAAU,CACXhuW,IAAKA,IACUs8K,EAAAA,cAAoB2oQ,GAAavlX,SAAU,CAC1Dr4G,MAAOunE,GACNsrP,IAAe,IC3Gd2rK,GAAWhB,GACjBgB,GAAS71I,MAAQA,GACjB61I,GAASG,gBAAiB,EAI1B,YCRA,SADyB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,+PAAmQ,KAAQ,cAAe,MAAS,YCMnc,IAAIC,GAAqB,SAA4B3lb,EAAON,GAC1D,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMwrR,KAEV,EAOA,SAJ2B5pQ,EAAAA,WAAiB2pQ,ICXtCpkG,GAAergX,iCAGR2kd,GAAyBjlH,GACpC,mCACAljK,MAAOpkL,EAAC85H,KAA2B,IAAzB,gBAAE4uN,GAAiB5uN,EAC3B,IAEE,aADuB4rO,GAAMrpX,IAAI,GAAG4rX,mCACpB78W,IAClB,CAAE,MAAO1R,GAAQ,IAAD0uX,EACd,OAAO1f,GAA8B,QAAd0f,EAAA1uX,EAAMyxC,gBAAQ,IAAAi9U,OAAA,EAAdA,EAAgBh9W,OAAQ,6BACjD,KAKSohd,GAAyBllH,GACpC,mCACAljK,MAAOqoR,EAAWlhT,KAA2B,IAAzB,gBAAEm9L,GAAiBn9L,EACrC,IAEE,aADuBm6M,GAAMrpX,IAAI,GAAG4rX,yCAAmDwkG,MACvErhd,IAClB,CAAE,MAAO1R,GAAQ,IAAD4uX,EACd,OAAO5f,GAA8B,QAAd4f,EAAA5uX,EAAMyxC,gBAAQ,IAAAm9U,OAAA,EAAdA,EAAgBl9W,OAAQ,6BACjD,KAKSshd,GAAyBplH,GACpC,mCACAljK,MAAOuoR,EAAY19N,KAA2B,IAAzB,gBAAEy5G,GAAiBz5G,EACtC,IAEE,aADuBy2H,GAAMrpX,IAAI,GAAG4rX,+BAAyC0kG,MAC7Dvhd,IAClB,CAAE,MAAO1R,GAAQ,IAAD+kb,EACd,OAAO/1E,GAA8B,QAAd+1E,EAAA/kb,EAAMyxC,gBAAQ,IAAAszY,OAAA,EAAdA,EAAgBrza,OAAQ,6BACjD,KAcEwhd,GAAgB1/G,GAAY,CAChCpwW,KAAM,WACNytW,aAXmB,CACnBsiH,UAAW,GACXC,UAAW,GACXC,UAAW,GACXlsV,SAAS,EACTnnI,MAAO,MAOPyjW,SAAU,CACR6vH,kBAAoB9zd,IAClBA,EAAM2zd,UAAY,GAClB3zd,EAAM4zd,UAAY,GAClB5zd,EAAM6zd,UAAY,EAAE,GAGxB1iH,cAAgB7D,IACdA,EAEGC,QAAQ8lH,GAAuB12Z,SAAU38D,IACxCA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQ8lH,GAAuB/kX,WAAW,CAACtuG,EAAO8/D,KACjD9/D,EAAM2nI,SAAU,EAChB3nI,EAAM2zd,UAAY7zZ,EAAO7C,OAAO,IAEjCswS,QAAQ8lH,GAAuB9kX,UAAU,CAACvuG,EAAO8/D,KAAY,IAADswT,EAC3DpwX,EAAM2nI,SAAU,EAChB3nI,EAAMQ,OAAoB,QAAZ4vX,EAAAtwT,EAAOt/D,aAAK,IAAA4vX,OAAA,EAAZA,EAAcjrT,UAAW,4BAA4B,IAIpEooS,QAAQ+lH,GAAuB32Z,SAAU38D,IACxCA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQ+lH,GAAuBhlX,WAAW,CAACtuG,EAAO8/D,KACjD9/D,EAAM2nI,SAAU,EAChB3nI,EAAM4zd,UAAY9zZ,EAAO7C,OAAO,IAEjCswS,QAAQ+lH,GAAuB/kX,UAAU,CAACvuG,EAAO8/D,KAAY,IAADuwT,EAC3DrwX,EAAM2nI,SAAU,EAChB3nI,EAAMQ,OAAoB,QAAZ6vX,EAAAvwT,EAAOt/D,aAAK,IAAA6vX,OAAA,EAAZA,EAAclrT,UAAW,4BAA4B,IAIpEooS,QAAQimH,GAAuB72Z,SAAU38D,IACxCA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQimH,GAAuBllX,WAAW,CAACtuG,EAAO8/D,KACjD9/D,EAAM2nI,SAAU,EAChB3nI,EAAM6zd,UAAY/zZ,EAAO7C,OAAO,IAEjCswS,QAAQimH,GAAuBjlX,UAAU,CAACvuG,EAAO8/D,KAAY,IAADi0Z,EAC3D/zd,EAAM2nI,SAAU,EAChB3nI,EAAMQ,OAAoB,QAAZuzd,EAAAj0Z,EAAOt/D,aAAK,IAAAuzd,OAAA,EAAZA,EAAc5uZ,UAAW,4BAA4B,GACnE,KAKO2uZ,kBAAkB,IAAIJ,GAActjY,QAGnD,GAAesjY,GAAqB,SC3G5B5zE,OAAO,IAAIie,GAgKnB,GA9J0Bn9Q,IAA6B,IAA5B,UAAEjpB,EAAS,QAAE81N,GAAS7sM,EAC/C,MAAM1gF,EAAW2hS,MAGX,UAAE8xH,EAAS,UAAEC,EAAS,UAAEC,EAAS,QAAElsV,GAAY26N,IAClDtiW,GAAUA,EAAMg0d,YAIZC,EAAiBC,IAAsBhxZ,EAAAA,EAAAA,UAAS,KAChDixZ,EAAkBC,IAAuBlxZ,EAAAA,EAAAA,UAAS,KAClDmxZ,EAAkBC,IAAuBpxZ,EAAAA,EAAAA,UAAS,KAClDqxZ,EAAiBC,IAAsBtxZ,EAAAA,EAAAA,UAAS,CAAC,IAGxDP,EAAAA,EAAAA,YAAU,KACRzC,EAASmzZ,KAAyB,GACjC,CAACnzZ,IA2CJ,OACEirW,EAAAA,GAAAA,MAACt/G,GAAK,CACJnqR,MAAM,mBACN8tN,QAAS73H,EACTu0N,SAAUuB,EACVhqT,OAAQ,KACRy2T,UAAQ,EACRxM,UAAW,CAAEx2T,QAAS,QAAS4iB,SAAA,CAE9B6tF,IAAWyjS,EAAAA,GAAAA,KAACzH,GAAI,CAACG,IAAI,8BAEtBqH,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEk5H,aAAc,QAASr6E,SAAA,EACnCsxX,EAAAA,GAAAA,KAAA,SACEqpD,QAAQ,UACRx5d,MAAO,CAAEu9B,WAAY,MAAO27F,aAAc,MAAOh4H,QAAS,SAAU29C,SACrE,oBAGDsxX,EAAAA,GAAAA,KAACrN,GAAM,CACL3kZ,GAAG,UACH7kB,MAAO0/d,EACPt9O,SA7DqB48O,IAC3BW,EAAmBX,GACnBa,EAAoB,IACpBE,EAAoB,IAChBf,GACFrzZ,EAASozZ,GAAuBC,GAClC,EAwDM7zY,YAAY,mBACZzkF,MAAO,CAAErD,MAAO,QAASkiD,SAExB65a,EAAU3wd,KAAK0xd,IACdtpD,EAAAA,GAAAA,KAACtrB,GAAM,CAA2BvrZ,MAAOmge,EAAQnB,YAAYz5a,SAC1D46a,EAAQC,aADED,EAAQnB,oBAO1BU,IACC9oD,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEk5H,aAAc,QAASr6E,SAAA,EACnCsxX,EAAAA,GAAAA,KAAA,SACEqpD,QAAQ,WACRx5d,MAAO,CAAEu9B,WAAY,MAAO27F,aAAc,MAAOh4H,QAAS,SAAU29C,SACrE,qBAGDsxX,EAAAA,GAAAA,KAACrN,GAAM,CACL3kZ,GAAG,WACH7kB,MAAO4/d,EACPx9O,SA1EoB88O,IAC5BW,EAAoBX,GACpBa,EAAoB,IAChBb,GACFvzZ,EAASszZ,GAAuBC,GAClC,EAsEQ/zY,YAAY,oBACZzkF,MAAO,CAAErD,MAAO,QAASkiD,SAExB85a,EAAU5wd,KAAK4xd,IACdxpD,EAAAA,GAAAA,KAACtrB,GAAM,CAA6BvrZ,MAAOqge,EAASnB,aAAa35a,SAC9D86a,EAASC,cADCD,EAASnB,qBAQ7BU,IACChpD,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEk5H,aAAc,QAASr6E,SAAA,EACnCsxX,EAAAA,GAAAA,KAAA,SACEqpD,QAAQ,WACRx5d,MAAO,CAAEu9B,WAAY,MAAO27F,aAAc,MAAOh4H,QAAS,SAAU29C,SACrE,iBAGDsxX,EAAAA,GAAAA,KAACrN,GAAM,CACL3kZ,GAAG,WACH7kB,MAAO8/d,EACP19O,SAAU29O,EACV50Y,YAAY,oBACZzkF,MAAO,CAAErD,MAAO,QAASkiD,SAEzB+5a,EAAU7wd,KAAKH,IACzBsoa,EAAAA,GAAAA,MAACrrB,GAAM,CAA6BvrZ,MAAOsO,EAASiyd,aAAah7a,SAAA,CAC9Dj3C,EAASkyd,aACmB,IAA5Blyd,EAASmyd,eAAuB,SAAW,YAAOnyd,EAASmyd,mBAFjDnyd,EAASiyd,sBAUlB1pD,EAAAA,GAAAA,KAACtrO,GAAM,CACLnjM,KAAK,UACLmtE,QA1G4BmrZ,KAChC,MAAMC,EAA0BrB,EAAU5sd,MACvCpE,GAAaA,EAASiyd,eAAiBT,IAEpCc,EAA0BvB,EAAU3sd,MACvC2td,GAAaA,EAASnB,eAAiBU,IAGpCt8X,EAAU,CACd68X,QAAST,EACTW,UAAiC,OAAvBO,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBN,eAAgB,GACnDhyd,UAAiC,OAAvBqyd,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBH,eAAgB,GACnDK,gBAAuC,OAAvBF,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBF,iBAAkB,GAG7DR,EAAmB38X,GACnB41R,aAAajiR,QAAQ,kBAAmBtsG,KAAKE,UAAUy4F,IACvD1yB,GAAQw6E,QAAQ,wCAChB8tM,GAAS,EAyFLxyV,MAAO,CACLrD,MAAO,OACPwJ,gBAAiB,UACjB+2B,YAAa,WACb2hB,SACH,4BAGK,ECkQL,SAASu7a,GAAW7nb,GACzB,OAAOo6Y,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,aAAa,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,KAAO,OAAO,YAAc,IAAI,EAAI,gXAAgX,MAAQ,MAA/eA,CAAsfp6Y,EAC/f,CCsgUO,SAAS8nb,GAAe9nb,GAC7B,OAAOo6Y,GAAQ,CAAC,IAAM,MAAM,KAAO,CAAC,QAAU,eAAe,MAAQ,CAAC,CAAC,IAAM,OAAO,KAAO,CAAC,EAAI,8mIAA8mI,MAAQ,MAA/sIA,CAAstIp6Y,EAC/tI,0BCl6UA,MAAQwnT,MAAK,GAAE1wB,KAAK,IAAI0wI,GAyhBxB,GAvhBqBugB,KACnB,MAAMr1Z,EAAW2hS,KACX7kI,EAAWR,MACV0rO,EAASstB,IAActyZ,EAAAA,EAAAA,UAAS,KAChCmlY,EAAWotB,IAAgBvyZ,EAAAA,EAAAA,UAAS,KACpCmiY,EAAWx2E,IAAgB3rT,EAAAA,EAAAA,UAAS,KACpCwyZ,EAAeC,IAAoBzyZ,EAAAA,EAAAA,UAAS,KAC5CsiY,EAAgBC,IAAqBviY,EAAAA,EAAAA,WAAS,IAC9C0yZ,EAAsBC,IAA2B3yZ,EAAAA,EAAAA,WAAS,IAC1D4yZ,EAAuBC,IAA4B7yZ,EAAAA,EAAAA,WAAS,IAC5DykE,EAASg0M,IAAcz4Q,EAAAA,EAAAA,WAAS,GACjC4qT,EAASL,aAAahiR,QAAQ,UAC9BwjR,EAAe/vX,KAAKC,MAAMsuX,aAAahiR,QAAQ,aAC/C66V,EAAyB,OAAZr3E,QAAY,IAAZA,OAAY,EAAZA,EAAcs3E,sBAC3BW,EAAkC,OAAZj4E,QAAY,IAAZA,OAAY,EAAZA,EAAc++C,aACnCgoD,EAAcC,IAAmB/yZ,EAAAA,EAAAA,WAAqB,OAAZ+rT,QAAY,IAAZA,OAAY,EAAZA,EAAc0+C,WAAY,KAAkB,OAAZ1+C,QAAY,IAAZA,OAAY,EAAZA,EAAc2+C,WAAY,KACpGsoD,EAAgBC,IAAqBjzZ,EAAAA,EAAAA,WAAqB,OAAZ+rT,QAAY,IAAZA,OAAY,EAAZA,EAAcK,iBAA6B,OAAZL,QAAY,IAAZA,OAAY,EAAZA,EAAcmnG,gBAAiB,KAE5GC,EAAaC,IAAkBpzZ,EAAAA,EAAAA,UAAS,IAG/CP,EAAAA,EAAAA,YAAU,KACR,MAAM4zZ,EAAar3d,KAAKC,MAAMsuX,aAAahiR,QAAQ,UAAY,GAC/DojR,EAAa0nG,GAEb,MAAMC,EAAwBt3d,KAAKC,MAAMsuX,aAAahiR,QAAQ,oBAC1D+qX,IACFhB,EAAWgB,EAAsB3zd,UACjCyzd,EAAeE,EAAsBpB,gBACvC,GACC,KAGHzyZ,EAAAA,EAAAA,YAAU,KACR,MAAM8zZ,EAAkB,CAAC,SAAU,SAAU,KAAM,MAAO,gBAAiB,aACpDpxB,EAAUt+b,MAAM8gC,GACrC4ub,EAAgB1vd,MAAM2vd,GAAY7ub,EAAKojY,YAAYnya,cAAcgN,SAAS4wd,QAI1EX,GAAyB,EAC3B,GACC,CAAC1wB,IAKJ,MAAMsxB,EAAuBA,IACVtxB,EAAUzwa,QAAO,CAACiM,EAAOgH,IAAShH,GAASgH,EAAKhH,OAAS,IAAI,GAC5Dw1b,EAoFdO,EAAwB1rR,MAAO08P,EAAS0B,EAAiButB,KAC7D,UACQC,EAAsBlvB,EAAS0B,SAC/BytB,EAAqBnvB,EAASivB,EACtC,CAAE,MAAOr2d,GACP,MAAM,IAAInH,MAAM,4CAClB,GAGIy9d,EAAwB5rR,MAAO08P,EAAS0B,KAC5C,IACE,MAAM0tB,EAAkB,CACtBlpG,OAAQL,aAAahiR,QAAQ,aAC1B69V,SAGCppY,EAAS0mY,GAAcowB,IAAkBrnH,QACjD,CAAE,MAAOnvW,GAEP,MADAuwB,QAAQvwB,MAAM,kBAAmBA,GAC3B,IAAInH,MAAM,2CAClB,GAGI09d,EAAuB7rR,MAAO08P,EAASivB,KAC3C,UACQ32Z,EAAS6nY,GAAoB8uB,IAAiBlnH,SACpDzvS,EAAS0uT,MACTnB,aAAa/hR,WAAW,QACxB+hR,aAAa/hR,WAAW,SAC1B,CAAE,MAAOlrG,GAEP,MADAuwB,QAAQvwB,MAAM,wBAAyBA,GACjC,IAAInH,MAAM,sDAClB,GAGI49d,EAAkB/rR,MAAOgsR,EAAa7xB,EAAWuC,KACrD,MAEMuvB,EAAqBhzS,KAAK,4CAE3BlnH,EAAU,CACjBi6Z,cACA35c,YAAa,eAAe8nb,EAAUric,KAAK6kC,GAASA,EAAKojY,cAAarwa,KAAK,QAC3Ew8d,YAAa,2CACbC,UAAW,2CAA2CzvB,IACtD0vB,sBAAuB,UACvBC,gBAAiB,4CACjBC,gBAAiB5vB,GAGnB,IACE,MAAM31Z,QAAiByrF,MAAM,gDAAiD,CAC5E91H,OAAQ,OACR8yW,QAAS,CACP,eAAgB,mBAChB+8G,cAAe,SAASN,KAE1B31d,KAAMtC,KAAKE,UAAU69D,KAGjBr2D,QAAeqrC,EAASkuQ,OAC9B,GAAsB,YAAlBv5S,EAAOwrC,OAAsB,OAAOxrC,EAAOsL,KAAKwld,YAEpD,MAAM,IAAIr+d,MAAM,8BAA8BuN,EAAOu+D,SAAW,kBAClE,CAAE,MAAO3kE,GACP,MAAM,IAAInH,MAAM,+CAClB,GAqBQ2sc,EAAezO,IACnB,MACM3C,EAAW,wDAA2C2C,EAAUzob,MAAM,MAAM+4E,QAElF,OACEujV,EAAAA,GAAAA,KAAA,OACEzra,IAAKi1b,EACL1yG,IAAI,UACJhlV,UAAU,qCACV,EAIN,OACEiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,0EAAyE48C,SAAA,CACrF6tF,IACCyjS,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,8EAA6E48C,UAC1FsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,+EAKnBiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,kBAAiB48C,SAAA,EACpCsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,uCAAsC48C,SAAC,yBACrDqxX,EAAAA,GAAAA,MAAC2kD,GAAI,CAAChtF,UAAU,EAAO5lY,UAAU,oCAAmC48C,SAAA,EAElEqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,OAAM48C,SAAA,EACnBsxX,EAAAA,GAAAA,KAAA,SAAOqpD,QAAQ,eAAev3d,UAAU,uCAAsC48C,SAAC,oBAG/EsxX,EAAAA,GAAAA,KAAA,SACEzua,KAAK,OACLyc,GAAG,eACH7kB,MAAOyhe,EACPr/O,SAAWxzN,GAAM8yc,EAAgB9yc,EAAEziB,OAAOnM,OAC1CmrF,YAAY,kBACZxiF,UAAU,sFAKdiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,OAAM48C,SAAA,EACnBsxX,EAAAA,GAAAA,KAAA,SAAOqpD,QAAQ,iBAAiBv3d,UAAU,uCAAsC48C,SAAC,oBAGjFsxX,EAAAA,GAAAA,KAAA,SACEzua,KAAK,OACLyc,GAAG,iBACH7kB,MAAO2he,EACPv/O,SAAWxzN,GAAMgzc,EAAkBhzc,EAAEziB,OAAOnM,OAC5CmrF,YAAY,4BACZxiF,UAAU,sFAKZiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,OAAM48C,SAAA,EACzBsxX,EAAAA,GAAAA,KAAA,SAAOqpD,QAAQ,UAAUv3d,UAAU,uCAAsC48C,SAAC,sBAG1EqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,sBAAqB48C,SAAA,EAElCqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,0BAAyB48C,SAAA,EACtCsxX,EAAAA,GAAAA,KAAA,SACEzua,KAAK,OACLyc,GAAG,UACH7kB,MAAO2zc,EACPzqE,UAAQ,EACRvgY,UAAU,8DAEZkua,EAAAA,GAAAA,KAACtrO,GAAM,CACLnjM,KAAK,UACLmtE,QAxFkB6tZ,KACtBlyB,GAAkB,EAAK,EAwFnBxqc,MAAO,CACLmG,gBAAiB,UACjB+2B,YAAa,UACbvB,MAAO,SAET15B,UAAU,+BAA8B48C,SAEvCouZ,EAAU,iBAAmB,oBAIlC/8B,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,4BAA2B48C,SAAA,EACxCsxX,EAAAA,GAAAA,KAAA,UAAAtxX,SAAQ,QAAY,mDAAiD,KACrEsxX,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,yCAAyC4sE,QAASA,IAAM5uE,OAAO2H,SAAS/K,KAAO,oBAAoBgiD,SAAC,4BAE5G,IAAI,uEAKZouZ,IACA98B,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,OAAM48C,UACnBsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACLnjM,KAAK,SACLmtE,QAASA,IAAM+rZ,GAAwB,GACvC56d,MAAO,CACLk9B,YAAa,UACbvB,MAAO,WAET15B,UAAU,+BAA8B48C,SACzC,2BAQJ87a,IACCxqD,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,OAAM48C,UACnBsxX,EAAAA,GAAAA,KAAC91E,GAAK,CACJ51Q,YAAY,8BACZnrF,MAAO2zc,EACPvxN,SAAWxzN,GAAMqyc,EAAWryc,EAAEziB,OAAOnM,OACrC2I,UAAU,0FASe,UAAxBgqc,IACC/7B,EAAAA,GAAAA,MAAAqoB,GAAAA,SAAA,CAAA15Y,SAAA,EACEsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,OAAM48C,UACnBsxX,EAAAA,GAAAA,KAAC91E,GAAK,CACJ51Q,YAAY,4BACZnrF,MAAO2zc,EACPvxN,SAAWxzN,GAAMqyc,EAAWryc,EAAEziB,OAAOnM,OACrC2I,UAAU,qFAGdkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,OAAM48C,UACnBsxX,EAAAA,GAAAA,KAAC91E,GAAK,CACJ34V,KAAK,SACL+iF,YAAY,eACZnrF,MAAO8he,EACP1/O,SAAWxzN,GAAMmzc,EAAep+b,WAAW/U,EAAEziB,OAAOnM,QAAU,GAC9D2I,UAAU,wFAOxBiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,OAAM48C,SAAA,EACnBsxX,EAAAA,GAAAA,KAAA,SAAOqpD,QAAQ,YAAYv3d,UAAU,uCAAsC48C,SAAC,gBAG5EsxX,EAAAA,GAAAA,KAAA,YACEhyZ,GAAG,YACH7kB,MAAO8zc,EACP1xN,SAAWxzN,GAAMsyc,EAAatyc,EAAEziB,OAAOnM,OACvCmrF,YAAY,iCACZxiF,UAAU,gFACVm1B,KAAK,gBAQP84Y,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,SAAQ48C,SAAA,EACrBsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,kDAAiD48C,SAAC,eAChEqxX,EAAAA,GAAAA,MAAC2kD,GAAI,CAAChtF,UAAU,EAAO5lY,UAAU,yBAAwB48C,SAAA,EACvDsxX,EAAAA,GAAAA,KAACviH,GAAI,CACHk+G,WAAYs+B,EACZl2N,WAAatnM,IACXujY,EAAAA,GAAAA,KAACviH,GAAK54E,KAAI,CAAC/yO,UAAU,eAAc48C,UACjCqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,2BAA0B48C,SAAA,EACvCsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,OAAM48C,SAAEksZ,EAAYn+Z,EAAK0vZ,cACxCpsB,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,uBAAsB48C,SAAA,EACnCsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,yBAAwB48C,SAAEjS,EAAKojY,eAC7CE,EAAAA,GAAAA,MAAA,QAAMjua,UAAU,yBAAwB48C,SAAA,CAAC,QAAMjS,EAAKgmV,aACpDs9C,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,yCAAwC48C,SAAA,EACrDqxX,EAAAA,GAAAA,MAAA,QAAMjua,UAAU,kCAAiC48C,SAAA,CAAC,SAAEjS,EAAKumV,MAAM,UAC/D+8C,EAAAA,GAAAA,MAAA,QAAMjua,UAAU,2BAA0B48C,SAAA,CAAC,SAAEjS,EAAKhH,MAAM,oBAOlE4C,QACE0nY,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,OAAM48C,SAAA,EAEjCqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,iDAAgD48C,SAAA,EAC7DsxX,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,GAAE48C,SAAC,kBAClBu8a,EAAc,GACblrD,EAAAA,GAAAA,MAAA,QAAArxX,SAAA,CAAM,SAAEu8a,EAAY3oT,QAAQ,OAE5B09P,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,gBAAe48C,SAAC,oCAKtBqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,mEAAkE48C,SAAA,EAC/EsxX,EAAAA,GAAAA,KAAA,QAAAtxX,SAAM,YACNqxX,EAAAA,GAAAA,MAAA,QAAArxX,SAAA,CAAM,SAAE68a,IAAuBjpT,QAAQ,eAO/C09P,EAAAA,GAAAA,KAAA,SAAOlua,UAAU,yCAAwC48C,SAAC,qBAG1DsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yBAAwB48C,SACtB,IAAhBu8a,IACTjrD,EAAAA,GAAAA,KAAC2nD,GAAQ,CACPt6a,QAA2B,qBAAlBi9a,EACT/+O,SAAUA,IAAMg/O,EAAiB,oBAAoB77a,UAErDqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,oBAAmB48C,SAAA,EAChCsxX,EAAAA,GAAAA,KAACiqD,GAAS,CAACp6d,MAAO,CAAE27B,MAAO,QAASs9F,YAAa,UACjDk3S,EAAAA,GAAAA,KAAA,QAAAtxX,SAAM,6BAQFsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yBAAwB48C,UACrCsxX,EAAAA,GAAAA,KAAC2nD,GAAQ,CACPt6a,QAA2B,iBAAlBi9a,EACT/+O,SAAUA,IAAMg/O,EAAiB,gBAAgB77a,UAEjDqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,oBAAmB48C,SAAA,EAChCsxX,EAAAA,GAAAA,KAAA,OACEzra,yuUACAuiV,IAAI,eACJjnV,MAAO,CAAErD,MAAO,OAAQN,OAAQ,OAAQ48H,YAAa,UAEvDk3S,EAAAA,GAAAA,KAAA,QAAAtxX,SAAM,yBAIZsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yBAAwB48C,UACrCsxX,EAAAA,GAAAA,KAAC2nD,GAAQ,CACPt6a,QAA2B,gBAAlBi9a,EACT/+O,SAAUA,IAAMg/O,EAAiB,eAAe77a,UAEhDqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,oBAAmB48C,SAAA,EAChCsxX,EAAAA,GAAAA,KAAC+nD,GAAkB,CACjBl4d,MAAO,CAAE83B,SAAU,OAAQmhG,YAAa,MAAOt9F,MAAO,cAExDw0Y,EAAAA,GAAAA,KAAA,QAAAtxX,SAAM,uBAIa,UAAxBotZ,IACT97B,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yBAAwB48C,UACrCsxX,EAAAA,GAAAA,KAAC2nD,GAAQ,CACPt6a,QAA2B,iBAAlBi9a,EACT/+O,SAAUA,IAAMg/O,EAAiB,gBAAgB77a,UAEjDqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,oBAAmB48C,SAAA,EAChCsxX,EAAAA,GAAAA,KAAEkqD,GAAa,CAACr6d,MAAO,CAAE27B,MAAO,QAASs9F,YAAa,OAAUl8G,KAAM,MACtEozZ,EAAAA,GAAAA,KAAA,QAAAtxX,SAAM,yBAOJsxX,EAAAA,GAAAA,KAACtrO,GAAM,CAELz+E,OAAK,EACLrpG,KAAK,QACL8xD,QAtbaohI,UACrB,IAAKwqR,EAAe,OAAOvwZ,GAAQovJ,QAAQ,8CAC3C,IAAK2zO,EAAS,OAAO/iY,GAAQovJ,QAAQ,kDACrC,GAAsB,qBAAlBmhQ,GAAwD,IAAhBW,EAC1C,OAAOlxZ,GAAQovJ,QAAQ,yCAGzBonH,GAAW,GACX,MAAMisH,EAAU75E,KACV6pG,GAAY,IAAI9rc,MAAOsC,cAE3BqjJ,KAAAA,UAAqB,CACnB3wB,UAAW,CACT/xF,MAAO,cACP64Y,QAASA,EACT8tB,cAAeA,EACfwB,YAAaP,IACbvhP,MAAOiwN,EAAUric,KAAK6kC,IAAI,CACxBjkC,KAAMikC,EAAKojY,YACX7xZ,GAAIyuB,EAAKqmV,UACTE,MAAOvmV,EAAKumV,MACZP,SAAUhmV,EAAKgmV,gBAMvB,MAAMy7E,EAAkB,CACtBzC,OAAQ/4E,EACRw4E,aACAQ,UAAWc,EACXb,YAAa2uB,EACbzuB,qBAAsBivB,EACtBhvB,sBACAF,eAAgB,MAChBkwB,YAAaP,IACbxuB,cAAe6tB,EACf5tB,uBAAwB8tB,EACxB7tB,UAAWA,GAAa,MACxBuvB,aAIIf,EAAiB,CACrB/vB,UAAWc,EACXM,UACAK,WAAYjC,EACZ6B,cAAe6tB,EACf5tB,uBAAwB8tB,EACxB7tB,UAAWA,GAAa,MACxBC,YAAa,OAGf,IACE,GAAI,CAAC,eAAgB,eAAexic,SAAS4vd,GAAgB,CA3DtBmC,EAACvuB,EAAiButB,KAC3DppG,aAAajiR,QAAQ,kBAAmBtsG,KAAKE,UAAUkqc,IACvD77E,aAAajiR,QAAQ,sBAAuBtsG,KAAKE,UAAUy3d,GAAgB,EA0DvEgB,CAAmCvuB,EAAiButB,GAGpD32Z,EAASypY,GAAoBL,IAC7BppY,EAAS0pY,GAAmBitB,IAE5B,MAAMiB,QAAmBb,EAAgBN,IAAwBtxB,EAAWuC,GACxEkwB,IAAY58d,OAAO2H,SAAS/K,KAAOgge,EACzC,YACQlB,EAAsBhvB,EAAS0B,EAAiButB,GACtD1xZ,GAAQw6E,QAAQ,4CAChBq9E,EAAS,kBAEb,CAAE,MAAOx8N,GACP2kE,GAAQ3kE,MAAM,qCAChB,CAAC,QACCm7U,GAAW,EACb,GA+WQhiS,SAAUguF,EACVA,QAASA,EACTzqI,UAAU,sDAAqD48C,SAE9D6tF,EAAU,gBAAkB,oBAGjCwjS,EAAAA,GAAAA,MAACt/G,GAAK,CACZnqR,OAAO0pY,EAAAA,GAAAA,KAACp2E,GAAK,CAACv6K,MAAO,EAAGx/K,MAAO,CAAE1D,OAAQ,EAAIq/B,MAAO,WAAWkjB,SAAC,uCAChE5kC,KAAM4gd,EACN5pI,SAAUA,IAAM6pI,GAAyB,GACzC77H,UAAQ,EACRz2T,OAAQ,EAEN2nY,EAAAA,GAAAA,KAACtrO,GAAM,CAELnjM,KAAK,UACL1B,MAAO,CAAEmG,gBAAiB,QAAS+2B,YAAa,SAChD2xC,QAASA,IAAMisZ,GAAyB,GAAOj8a,SAChD,UAJK,UAONA,SAAA,EAEFsxX,EAAAA,GAAAA,KAAC9mG,GAAI,CAAC3nU,KAAK,UAAUsuc,QAAM,KAG3B9/B,EAAAA,GAAAA,MAAA,KAAGlwa,MAAO,CAAEg5H,UAAW,IAAKn6E,SAAA,CAAC,kDACmBsxX,EAAAA,GAAAA,KAAA,UAAAtxX,SAAQ,+CAAmD,wCAKvGsxX,EAAAA,GAAAA,KAAC2sD,GAAiB,CAACpgW,UAAW6tU,EAAgB/3G,QAlUzBuqI,KACvBvyB,GAAkB,GAGlB,MAAM+wB,EAAwBt3d,KAAKC,MAAMsuX,aAAahiR,QAAQ,oBAC1D+qX,IACFhB,EAAWgB,EAAsB3zd,UACjCyzd,EAAeE,EAAsBpB,gBACvC,MA2TM,ECjiBV,SADqB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,4PAAgQ,KAAQ,SAAU,MAAS,YCMvb,IAAI6C,GAAiB,SAAwBzqb,EAAON,GAClD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMswR,KAEV,EAOA,SAJ2B1uQ,EAAAA,WAAiByuQ,ICiG5C,GA1GsBr3U,IAAoD,IAAnD,eAAEu3U,EAAc,gBAAEC,EAAe,SAAEp7P,GAAUp8E,EAClE,MAAMusQ,GAAYlqV,EAAAA,EAAAA,QAAO,OAClBo1Z,EAAeC,IAAoBp1Z,EAAAA,EAAAA,WAAS,IAC5Cq1Z,EAAgBC,IAAqBt1Z,EAAAA,EAAAA,WAAS,GAG/Cu1Z,GAAsB79X,EAAAA,GAAAA,WAAS,KACnC,MAAM89X,EAAgBvrE,EAAUvxX,QAChC,GAAI88b,EAAe,CACjB,MAAMC,EAAYD,EAAc/oX,YAAc+oX,EAAc9oX,YAC5D0oX,EAAiBI,EAAct6d,WAAa,GAC5Co6d,EACEG,GACAD,EAAct6d,WAAas6d,EAAc9oX,YAAc8oX,EAAc/oX,YAEzE,IACC,KA+BH,OArBAhtC,EAAAA,EAAAA,YAAU,KACR,MAAM+1Z,EAAgBvrE,EAAUvxX,QAE5B88b,IACFD,IACAC,EAAcx6d,iBAAiB,SAAUu6d,IAG3C,MAAMG,EAAeA,KACnBH,GAAqB,EAIvB,OAFAv9d,OAAOgD,iBAAiB,SAAU06d,GAE3B,KACDF,GACFA,EAAcj5a,oBAAoB,SAAUg5a,GAE9Cv9d,OAAOukD,oBAAoB,SAAUm5a,EAAa,CACnD,GACA,KAGDztD,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,OAAM48C,SAAA,EACnBsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,kDAAiD48C,SAAC,oBAChEqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,6BAA4B48C,SAAA,CACxCu+a,IACCjtD,EAAAA,GAAAA,KAACtrO,GAAM,CACL7vJ,MAAM,SACN23J,MAAMwjO,EAAAA,GAAAA,KAACntJ,GAAY,IACnBn0M,QArCS1rE,KACjB+uZ,EAAUvxX,QAAQ63Z,SAAS,CAAEz8b,MAAO,IAAK08b,SAAU,UAAW,EAqCtDx2b,UAAU,iEACV,aAAW,iBAGfkua,EAAAA,GAAAA,KAAA,OACEl+X,IAAKigX,EACLjwZ,UAAU,yDACVjC,MAAO,CACL49d,eAAgB,SAChBrhW,UAAW,UACX19E,SAEDq+a,EACRrxd,QACEgma,GACqB,uBAApBA,EAAMU,WACc,uBAApBV,EAAMU,YAETxqa,KAAK8pa,IACJ1B,EAAAA,GAAAA,KAAA,OAEElua,WACE4va,EAAMzD,UAAY+uD,EACd,wBACA,6BAHK,oEAKXn9d,MAAO,CAAEwmC,SAAU,SACnBqoC,QAASA,IAAMkzJ,EAAS,UAAU8vM,EAAMzD,WACxCtlL,KAAK,SACL,aAAY,SAAS+oL,EAAMU,YAAY1zX,SAEtCgzX,EAAMU,WAXFV,EAAMzD,aAgBRkvD,IACCntD,EAAAA,GAAAA,KAACtrO,GAAM,CACL7vJ,MAAM,SACN23J,MAAMwjO,EAAAA,GAAAA,KAACjtJ,GAAa,IACpBr0M,QA1EU6pX,KAClBxmC,EAAUvxX,QAAQ63Z,SAAS,CAAEz8b,KAAM,IAAK08b,SAAU,UAAW,EA0ErDx2b,UAAU,kEACV,aAAW,sBAIb,ECkKV,GApQc47d,KACZ,MAAM,QAAEzvD,GAAY7rM,KACdt9J,EAAW2hS,KACX7kI,EAAWR,MACX,SAAEqsM,EAAQ,QAAElhS,GAAY26N,IAAatiW,GAAUA,EAAM6oa,YACrD,OAAEgE,GAAWvqE,IAAatiW,GAAUA,EAAM6sa,UACzCksD,EAAUC,IAAe91Z,EAAAA,EAAAA,UAAS,IAClC+1Z,EAAUC,IAAeh2Z,EAAAA,EAAAA,UAAS,MAClCllC,EAAam7b,IAAkBj2Z,EAAAA,EAAAA,UAAS,IACxCk2Z,IAAgBl2Z,EAAAA,EAAAA,UAAS,KACzBm2Z,EAAiBC,IAAsBp2Z,EAAAA,EAAAA,UAAS,CAAC,GAElD/gD,GAAW8gD,EAAAA,EAAAA,WACjBN,EAAAA,EAAAA,YAAU,KACRznE,OAAOyrI,SAAS,EAAG,EAAE,GACpB,KAGHhkE,EAAAA,EAAAA,YAAU,KACRzC,EAASssW,MACTtsW,EAASkpW,GAAqBC,GAAS,GACtC,CAACnpW,EAAUmpW,IAEd,MAeMkwD,EAAgB1sD,EAAO5la,MAAM6la,GAAUA,EAAMzD,UAAYA,IACzD8uD,EAAiBoB,EACnB1sD,EAAO/la,QAAQgma,GAAUA,EAAM3D,aAAeowD,EAAcpwD,aAC5D,GAEEc,GAAoBpB,GAAY,IACnC/ha,QAAQ05V,GAAYA,EAAQ4tB,OAAS2qG,GAAYv4H,EAAQ4tB,OAAS6qG,IAClEzuc,MAAK,CAAC3a,EAAGC,IAAM,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,eAEjD6wD,GAAiB/2Z,EAAAA,EAAAA,cACpBllE,IACKoqI,IACAxlH,EAASyZ,SAASzZ,EAASyZ,QAAQmtM,aACvC5mN,EAASyZ,QAAU,IAAIw4a,sBAAsBroc,IACvCA,EAAQ,GAAG0td,gBACbN,GAAgBtnF,GAAaA,EAAW,GAC1C,IAEEt0Y,GAAM4kB,EAASyZ,QAAQxZ,QAAQ7kB,GAAK,GAE1C,CAACoqI,IAGG+xV,EAAkBzvD,EAAiBtva,MAAM,EAAGqjC,EAAco7b,GAI1DO,EAAa,CACjB,WAAY,qBACZ,QAAS,WACT,KAAQJ,EAAgB,GAAGA,EAAc/rD,qBAAuB,iBAEhE,gBAAmBksD,EAAgB12d,KAAI,CAACw9V,EAAS36V,KAAK,CACpD,QAAS,UACT,SAAYA,EAAQ,EACpB,KAAQ26V,EAAQyqE,YAChB,MAAS,wDAAwDzqE,EAAQ6qE,aAAav8Z,MAAM,MAAM+4E,QAClG,YAAe24Q,EAAQjjV,YACvB,MAAS,CACP,QAAS,QACT,KAAQg8c,EAAgBA,EAAc/rD,UAAY,WAEpD,OAAU,CACR,QAAS,QACT,cAAiB,MACjB,MAAShtE,EAAQ4tB,MACjB,aAAgB,6BAChB,IAAO,GAAGlzX,OAAO2H,SAASkwC,kBAAkBytT,EAAQ2tB,aAEtD,OAAU,CACR,QAAS,SACT,OAAU,CACR,QAAS,SACT,KAAQ,kBAEV,WAAc,kDACd,aAAgB,CACd,QAAS,SACT,YAAe,IACf,WAAc,MAGlB,gBAAmB,CACjB,QAAS,kBACT,YAAe,MACf,YAAe,YAIrB,OACEg9C,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,+BAA8B48C,SAAA,EAC/CqxX,EAAAA,GAAAA,MAACnyC,GAAM,CAAAl/U,SAAA,EACDsxX,EAAAA,GAAAA,KAAA,SAAAtxX,SAAQy/a,EAAgB,GAAGA,EAAc/rD,qBAAuB,oBAChEpC,EAAAA,GAAAA,KAAA,QACExna,KAAK,cACLwQ,QACEmld,EACI,sCAAsCA,EAAc/rD,aACpD,gDAGRpC,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,SAASwQ,QAAQ,mBAG5Bg3Z,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,WAAWx3E,QAASmld,EAAgB,GAAGA,EAAc/rD,qBAAuB,oBAC3FpC,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,iBAAiBx3E,QAAS,kCAAkCmld,EAAgBA,EAAc/rD,UAAY,uBACrHpC,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,WAAWx3E,QAAS,GAAGlZ,OAAO2H,SAASkwC,kCACtDq4X,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,SAASx3E,QAASlZ,OAAO2H,SAAS/K,QACjDsza,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,UAAUx3E,QAAQ,aAGjCg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,eAAewQ,QAAQ,yBAClCg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,gBAAgBwQ,QAASmld,EAAgB,GAAGA,EAAc/rD,qBAAuB,oBAC5FpC,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,sBAAsBwQ,QAAS,kCAAkCmld,EAAgBA,EAAc/rD,UAAY,uBACtHpC,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,gBAAgBwQ,QAAS,GAAGlZ,OAAO2H,SAASkwC,kCAGvDq4X,EAAAA,GAAAA,KAAA,QAAMt4X,IAAI,YAAY1+B,QAASlZ,OAAO2H,SAAS/K,QAG/Csza,EAAAA,GAAAA,KAAA,UAAQzua,KAAK,sBAAqBm9C,SAAE56C,KAAKE,UAAUu6d,SAGrDvuD,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,0CAAyC48C,SACpDy/a,EAAgB,GAAGA,EAAc/rD,qBAAuB,oBAG3DpC,EAAAA,GAAAA,KAACwuD,GAAa,CACZzB,eAAgBA,EAChBC,gBAAiB/uD,EACjBrsM,SAAUA,KAGZmuM,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,OAAM48C,SAAA,EACnBsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,wBAAuB48C,SAAC,qBACtCqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,8BAA6B48C,SAAA,EAC1CsxX,EAAAA,GAAAA,KAAC91E,GAAK,CACJ34V,KAAK,SACLpI,MAAOwke,EACPpiP,SAAWxzN,GAAM61c,EAAYn8d,OAAOsmB,EAAEziB,OAAOnM,QAC7CmrF,YAAY,YACZzkF,MAAO,CAAErD,MAAO,QAElBwza,EAAAA,GAAAA,KAAA,QAAAtxX,SAAM,OACNsxX,EAAAA,GAAAA,KAAC91E,GAAK,CACJ34V,KAAK,SACLpI,MAAO0ke,EACPtiP,SAAWxzN,GAAM+1c,EAAYr8d,OAAOsmB,EAAEziB,OAAOnM,QAC7CmrF,YAAY,YACZzkF,MAAO,CAAErD,MAAO,QAElBwza,EAAAA,GAAAA,KAACtrO,GAAM,CACL5iM,UAAU,wDACV0qM,MAAMwjO,EAAAA,GAAAA,KAAC6sD,GAAc,IAAIn+a,SAC1B,iBAMJ6tF,GACFyjS,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,uDAAsD48C,SACpEtjD,MAAM8J,KAAK,CAAExJ,OAAQ,KAAMkM,KAAI,CAAC8jB,EAAGjhB,KAClCsla,EAAAA,GAAAA,MAAA,OAEEjua,UAAU,kEAAiE48C,SAAA,EAE3EsxX,EAAAA,GAAAA,KAAA,OACElua,UAAU,qDACVjC,MAAO,CACL02H,gBAAiB,yBACjBM,eAAgB,OAChBJ,mBAAoB,oBAGxBu5S,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,iCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,wCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yCAbV2I,OAiBJ6zd,EAAgB5ie,OAAS,GAC3Bs0a,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,uDAAsD48C,SAClE4/a,EAAgB12d,KAAI,CAACw9V,EAAS36V,KAC7Bsla,SAAAA,GAAAA,MAAA,OACAj+X,IAAKrnC,IAAU6zd,EAAgB5ie,OAAS,EAAI0ie,EAAiB,KAE7Dt8d,UAAU,sJACV4sE,QAASA,KACPkzJ,EAAS,YAAYwjI,EAAQ2tB,YAAY,EACzCr0U,SAAA,EAGDsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6DAA4D48C,SAEpF0mT,EAAQ6qE,cAAuD,UAAvCguD,EAAgB74H,EAAQ2tB,YAGhDg9C,EAAAA,GAAAA,MAAAqoB,GAAAA,SAAA,CAAA15Y,SAAA,EAEIu/a,EAAgB74H,EAAQ2tB,aACxBi9C,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,oFAEjBkua,EAAAA,GAAAA,KAAA,OACEzra,IAAK,wDAAwD6gW,EAAQ6qE,aAClEv8Z,MAAM,MACN+4E,QACHq6P,IAAKse,EAAQyqE,YACb/ta,UAAW,iDACRm8d,EAAgB74H,EAAQ2tB,WAAwB,GAAX,UAExC6kE,OAAQA,KAAM0D,OA9MKxoE,EA8MW1tB,EAAQ2tB,eA7M1CmrG,GAAoB7jO,IAAS,IACxBA,EACH,CAACy4H,IAAY,MAHQA,KA8M8B,EACjDvuU,QAASA,KAAMg3Y,OAxMKzoE,EAwMY1tB,EAAQ2tB,eAvM5CmrG,GAAoB7jO,IAAS,IACxBA,EACH,CAACy4H,GAAY,YAHSA,KAwM+B,QAhBvDk9C,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,sFAsBLiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,0BAAyB48C,SAAA,EACtCsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,8DAA6D48C,SACxE0mT,EAAQyqE,eAEXE,EAAAA,GAAAA,MAAA,QAAMjua,UAAU,kCAAiC48C,SAAA,CAC9C,SAjLIs0U,EAiLY5tB,EAAQ4tB,MAjLVA,EAAMk9C,mBAiLa,cArCnC9qE,EAAQ2tB,WAAatoX,GA5IfuoX,KAqLZ,OAGHg9C,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,kDAAiD48C,UAC9DsxX,EAAAA,GAAAA,KAACv/I,GAAK,CACJtuQ,aAAa6tZ,EAAAA,GAAAA,KAAA,QAAAtxX,UAAMsxX,EAAAA,GAAAA,KAAA,UAAAtxX,SAAQ,wBAC3B35C,MAAO0rR,GAAMq/G,uBACbL,WAAY,CAAEvzY,OAAQ,IAAK68H,aAAc,SAI3C,ECxQV,SADuB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,snBAA0nB,KAAQ,YAAa,MAAS,YCMtzB,IAAI0lW,GAAmB,SAA0Brsb,EAAON,GACtD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMkyR,KAEV,EAOA,SAJ2BtwQ,EAAAA,WAAiBqwQ,ICoC5C,GAjD8BE,KAE1B5uD,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,sCAAqC48C,SAAA,EAElDqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,kCAAiC48C,SAAA,EAC9CsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,oDAGfiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,qBAAoB48C,SAAA,EACjCsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,kCAAsC,KACrDkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,kCAAsC,KAGrDiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,+BAA8B48C,SAAA,EAC3CsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,sCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,sCAIjBiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,iBAAgB48C,SAAA,EAC7BsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,mCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,oCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,oCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,sCAIjBiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,yCAAwC48C,SAAA,EACrDsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,kCAAsC,KACrDkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,kCAAsC,cAM3Diua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,OAAM48C,SAAA,EACnBsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,+CAA8C48C,UAC3DsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,qCAEjBkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,uDAAsD48C,SAClE,IAAItjD,MAAM,IAAIwM,KAAI,CAAC8jB,EAAGjhB,KACrBula,EAAAA,GAAAA,KAAA,OAAiBlua,UAAU,yCAAjB2I,aChChBuxb,GAAehpE,GACZA,EAAMzqX,WAAW0F,QAAQ,wBAAyB,KA8f3D,GA3fsB2wd,KACpB,MAAM,UAAE7rG,GAAc3wJ,KAChBt9J,EAAW2hS,KACX7kI,EAAWR,KAEX4tM,EAAiB9nE,IAAatiW,GAAUA,EAAM6oa,SAASuB,kBACvD,SAAEvB,EAAQ,QAAElhS,GAAY26N,IAAatiW,GAAUA,EAAM6oa,WACrDw8B,EAAY/iG,IAAatiW,GAAUA,EAAM2tX,KAAKA,OAC9CG,EAASxrB,IAAatiW,GAAUA,EAAM2tX,KAAKG,UAE1CmsG,EAAqBC,IAAwBh3Z,EAAAA,EAAAA,WAAS,IACtDi3Z,EAAqBC,IAAwBl3Z,EAAAA,EAAAA,WAAS,IACtDm3Z,EAAUC,IAAep3Z,EAAAA,EAAAA,WAAS,IAClCq3Z,EAAgBC,IAAqBt3Z,EAAAA,EAAAA,WAAS,IAC9Cu3Z,EAAgBC,IAAqBx3Z,EAAAA,EAAAA,UAAS,KAErDP,EAAAA,EAAAA,YAAU,KACRzC,EAAS0oW,MACT1oW,EAASspW,GAAiBr7C,IAC1BjzX,OAAOyrI,SAAS,EAAG,EAAE,GACpB,CAACzmE,EAAUiuT,KACdxrT,EAAAA,EAAAA,YAAU,KACR,GAAIynW,GAAkBA,EAAetza,OAAS,EAAG,CAC/C,MAAM0pW,EAAU4pE,EAAe,GACzBuwD,EAAS,CACbvhd,GAAIonV,EAAQ2tB,UACZvqX,KAAM48V,EAAQyqE,YACd78C,MAAO5tB,EAAQ4tB,MACfjuX,MAAO,wDAAwDqgW,EAAQ6qE,aAAav8Z,MAAM,MAAM+4E,SAI5F+yY,GADiB17d,KAAKC,MAAMsuX,aAAahiR,QAAQ,oBAAsB,IACxC3kG,QAAQ+gC,GAASA,EAAKzuB,KAAOuhd,EAAOvhd,KACzEwhd,EAAc9la,QAAQ6la,GACtBltG,aAAajiR,QAAQ,iBAAkBtsG,KAAKE,UAAUw7d,EAAcjge,MAAM,EAAG,KAC7E+/d,EAAkBE,EAAcjge,MAAM,EAAG,GAC3C,IACC,CAACyva,KAGJznW,EAAAA,EAAAA,YAAU,KACR,MAAMk4Z,EAAe37d,KAAKC,MAAMsuX,aAAahiR,QAAQ,oBAAsB,GAC3EivX,EAAkBG,EAAa,GAC9B,IAEH,MAAMC,EAAiBjyD,EAASlua,OAAO,IAGjCoge,EAAkBA,KAOtB,GAJwB11B,EAAUt+b,MAC/B8gC,GAASA,EAAKsmV,YAAci8C,EAAe,GAAGj8C,YAK/C,YADAhpT,GAAQovJ,QAAQ,mCAIlBimQ,GAAkB,GAClB,MAAMQ,EAAW,CACfltG,SACAK,UAAWi8C,EAAe,GAAGj8C,UAC7BC,MAAOg8C,EAAe,GAAGh8C,MACzBP,SAAU,GAGZ3tT,EAAS8tT,GAAUgtG,IAChBple,MAAK,KACJuvE,GAAQw6E,QAAQ,sCAAsC,IAGvDz4H,OAAO1mB,IACN2kE,GAAQ3kE,MAAM,kCAAkCA,EAAM2kE,UAAU,IAEjEh+C,SAAQ,KACPqzc,GAAkB,EAAM,IAG1Bt/d,OAAO4lJ,UAAY5lJ,OAAO4lJ,WAAa,GACvC5lJ,OAAO4lJ,UAAUtpJ,KAAK,CACpBu3D,MAAO,cACPksa,UAAW,CACT7lP,MAAO,CACL,CACE8lP,UAAW9wD,EAAe,GAAGa,YAC7BkwD,QAAS/wD,EAAe,GAAGj8C,UAC3BC,MAAOg8C,EAAe,GAAGh8C,MACzBP,SAAU,MAIhB,EAGAutG,EAAalge,OAAO2H,SAAS/K,KA+D7Buje,EAAqBA,KACrBnge,OAAOkrI,QAAU,IACnBk0V,GAAY,GAEZA,GAAY,EACd,EAWF,IARA33Z,EAAAA,EAAAA,YAAU,KACRznE,OAAOgD,iBAAiB,SAAUm9d,GAC3B,KACLnge,OAAOukD,oBAAoB,SAAU47a,EAAmB,IAEzD,IAGC1zV,EACF,OAAOyjS,EAAAA,GAAAA,KAAC2uD,GAAqB,IAGjC,IAAK3vD,GAA4C,IAA1BA,EAAetza,OAClC,OAAMs0a,EAAAA,GAAAA,KAAC2uD,GAAqB,IAI9B,MAAMv5H,EAAU4pE,EAAe,GAEzBwqB,EAAW,wDAA2Cp0F,EAAQ6qE,aAAav8Z,MAAM,MAAM+4E,QAEvFyzY,EAAqB96H,EAAQjjV,YAAYzO,MAAM,MAAM9L,KAAI,CAACwuB,EAAM3rB,KACpEula,EAAAA,GAAAA,KAAA,KAAelua,UAAU,OAAM48C,SAAEtoB,GAAzB3rB,KA6EV,OACEsla,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EAGJqxX,EAAAA,GAAAA,MAACnyC,GAAM,CAAAl/U,SAAA,EACLsxX,EAAAA,GAAAA,KAAA,SAAAtxX,SAAQ,IAAU,OAAP0mT,QAAO,IAAPA,OAAO,EAAPA,EAASyqE,cAAe,4BACnCG,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,cAAcwQ,QAAS,QAAc,OAAPosV,QAAO,IAAPA,OAAO,EAAPA,EAASyqE,cAAe,6BAAkC,OAAXmsB,SAAW,IAAXA,QAAW,EAAXA,GAAqB,OAAP52F,QAAO,IAAPA,OAAO,EAAPA,EAAS4tB,SAAU,qDACzHg9C,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,WAAWx3E,SAAgB,OAAPosV,QAAO,IAAPA,OAAO,EAAPA,EAASyqE,cAAe,aAC3DG,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,iBAAiBx3E,QAAS,QAAc,OAAPosV,QAAO,IAAPA,OAAO,EAAPA,EAASyqE,cAAe,6BAAkC,OAAXmsB,SAAW,IAAXA,QAAW,EAAXA,GAAqB,OAAP52F,QAAO,IAAPA,OAAO,EAAPA,EAAS4tB,SAAU,aAChIg9C,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,WAAWx3E,QAASwgb,GAAY,2BAC/CxpB,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,SAASx3E,QAASgnd,GAAc,+BAC/ChwD,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,eAAewQ,QAAQ,yBAClCg3Z,EAAAA,GAAAA,KAAA,QAAMt4X,IAAI,YAAYh7C,KAAM,sCAA4C,OAAP0oW,QAAO,IAAPA,OAAO,EAAPA,EAAS2tB,YAAa,oBAKzFi9C,EAAAA,GAAAA,KAAA,UAAQzua,KAAK,sBAAqBm9C,SAC/B56C,KAAKE,UAAU,CACd,WAAY,sBACZ,QAAS,UACT,KAAQohW,EAAQyqE,YAChB,MAAS2pB,EACT,YAAep0F,EAAQjjV,YACvB,IAAOijV,EAAQ2tB,UACf,MAAS,CACP,QAAS,QACT,KAAQ3tB,EAAQgtE,WAElB,OAAU,CACR,QAAS,QACT,cAAiB,MACjB,MAAShtE,EAAQ4tB,MACjB,gBAAmB,aACnB,cAAiB,kCAClB,aAAgB,6BACf,IAAO,qCAAqC5tB,EAAQ2tB,YACpD,OAAU,CACR,QAAS,eACT,KAAQ,kBAEV,gBAAmB,CACjB,QAAS,uBACT,aAAgB,CACd,QAAS,iBACT,SAAY,MACZ,MAAS,SAEX,oBAAuB,CACrB,QAAS,gBACT,eAAkB,MAEpB,aAAgB,CACd,QAAS,uBACT,aAAgB,CACd,QAAS,oBACT,SAAY,EACZ,SAAY,EACZ,SAAY,OAEd,YAAe,CACb,QAAS,oBACT,SAAY,EACZ,SAAY,EACZ,SAAY,SAIlB,wBAA2B,CACzB,QAAS,uBACT,qBAAwB,sDACxB,mBAAsB,GACtB,aAAgB,kCAChB,WAAc,gCACd,kBAAqB,OAGzB,gBAAmB,CACjB,QAAS,kBACT,YAAe,MACf,YAAe,OAEjB,OAAU,CACR,QAAS,SACT,OAAU,CACR,QAAS,SACT,KAAQ,YAEV,aAAgB,CACd,QAAS,SACT,YAAe,IACf,WAAc,WAOlBg9C,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,wBAAuB48C,SAAA,EACpCqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,kCAAiC48C,SAAA,EAE9CsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,WAAU48C,UACvBsxX,EAAAA,GAAAA,KAAA,OACEzra,IAAKi1b,EACL1yG,IAAKse,EAAQyqE,YACb/ta,UAAU,sCACV4sE,QAASA,IAAMowZ,GAAqB,GACpCj/d,MAAO,CAAErD,MAAO,OAAQN,OAAQ,OAAQ0pV,UAAW,QAAShqD,aAAc,YAK9Em0I,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,WAAU48C,SAAA,EACvBsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,qCAAoC48C,SAAE0mT,EAAQyqE,eAC5DE,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,8CAA6C48C,SAAA,EAC1DqxX,EAAAA,GAAAA,MAAA,QAAMjua,UAAU,qBAAoB48C,SAAA,CAAC,SAAEs9Y,GAAY52F,EAAQ4tB,OAAO,SACjE5tB,EAAQi2F,SAAW,IAClBtrB,EAAAA,GAAAA,MAAA,QAAMjua,UAAU,kCAAiC48C,SAAA,CAAC,SAC9Cs9Y,GAAY52F,EAAQi2F,UAAU,aAKtCrrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,2CAA0C48C,UACvDqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,0BAAyB48C,SAAA,EACtCsxX,EAAAA,GAAAA,KAACnhF,GAAiB,CAAC/sV,UAAU,oBAC7Bkua,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,cAAa48C,SAAC,mBAC9BsxX,EAAAA,GAAAA,KAAA,QAAMlua,UAAU,iBAAgB48C,SAAC,mBAIrCsxX,EAAAA,GAAAA,KAACuiD,GAAI,CACHv4O,MAAO,CACL,CACE36O,IAAK,IACLg0G,OAAO28T,EAAAA,GAAAA,KAAA,QAAMnwa,MAAO,CAAE27B,MAAO,OAAQkjB,SAAC,wBACtCA,UACEsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,MAAMjC,MAAO,CAAE09T,UAAW,QAASlhM,UAAW,QAAS39E,SACnEwhb,SAQXnwD,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,uEAAsE48C,SAAA,EACnFsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAAClsE,GAAoB,IAC3BlnV,KAAK,QACL9a,UAAU,4EACV4sE,QAASixZ,EACTpzV,QAAS4yV,EAAezgb,SACzB,iBAKDsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACyuD,GAAgB,CAAE5+d,MAAO,CAACi5H,YAAa,UAC9Ch3H,UAAU,kFACV4sE,QAASA,IAAMswZ,GAAqB,GAAMtgb,SAC3C,gCAxUJ2gb,GAA4C,IAA1BA,EAAe3je,QAEpCq0a,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,OAAM48C,SAAA,EACnBsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,gDAA+C48C,UAC5DsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,mCAAkC48C,SAAC,uBAEnDsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,uDAAsD48C,SACpE2gb,EAAez3d,KAAKw9V,IAC3B4qE,EAAAA,GAAAA,KAAC0kD,GAAI,CAEH5B,WAAS,EACThxd,UAAU,mGACV8yd,OACE5kD,EAAAA,GAAAA,KAAA,OACAthW,QAASA,KACF02R,GAAYA,EAAQpnV,IAGzB4jN,EAAS,YAAYwjI,EAAQpnV,KAAK,EAGpClc,UAAU,0BAAyB48C,UAEjCsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6DAA4D48C,UACzEsxX,EAAAA,GAAAA,KAAA,OACEzra,IAAK6gW,EAAQrgW,MACb+hV,IAAKse,EAAQ58V,KACb1G,UAAU,qDAIjB48C,UAEDsxX,EAAAA,GAAAA,KAAC0kD,GAAKjka,KAAI,CACRnqB,OAAO0pY,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,gDAA+C48C,SAAE0mT,EAAQ58V,OAC7E2Z,aAAa4tZ,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,4CAA2C48C,SAAA,CAAC,SAAEs9Y,GAAY52F,EAAQ4tB,OAAO,YA1BhG5tB,EAAQ2tB,kBAT8C,KA+FtD2sG,GAA4C,IAA1BA,EAAehke,QAEpCq0a,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,aAAY48C,SAAA,EACzBsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,gDAA+C48C,UAC5DsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,mCAAkC48C,SAAC,eAKnDsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,uDAAsD48C,SAClEghb,EAAe93d,KAAKw9V,IACnB2qE,EAAAA,GAAAA,MAAC2kD,GAAI,CAEH5B,WAAS,EACThxd,UAAU,mGACV8yd,OACE7kD,EAAAA,GAAAA,MAAA,OAAKrhW,QAASA,KACP02R,GAAYA,EAAQyqE,YAKzBjuM,EAAS,YAAYwjI,EAAQ2tB,aAJ3Bp9V,QAAQvwB,MAAM,uCAAwCggW,EAIf,EAE1CtjW,UAAU,0BAAyB48C,SAAA,CACjC0mT,EAAQi2F,SAAW,IAClBrrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,8FAGjBkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6DAA4D48C,UACzEsxX,EAAAA,GAAAA,KAAA,OACEzra,IAAK,wDAAwD6gW,EAAQ6qE,aAClEv8Z,MAAM,MACN+4E,QACHq6P,IAAKse,EAAQyqE,YACb/ta,UAAU,sDAIjB48C,SAAA,EAEDsxX,EAAAA,GAAAA,KAAC0kD,GAAKjka,KAAI,CACRnqB,OAAO0pY,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,gDAA+C48C,SAAE0mT,EAAQyqE,cAC7E1tZ,aACE4tZ,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,OAAM48C,SAAA,EACnBqxX,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,4CAA2C48C,SAAA,CAAE,SAAIs9Y,GAAY52F,EAAQ4tB,SAAS,SAC1F5tB,EAAQi2F,SAAW,IAClBtrB,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,6DAA4D48C,SAAA,CACtE,SAAIs9Y,GAAY52F,EAAQi2F,YAAY,eAM/CrrB,EAAAA,GAAAA,KAACtrO,GAAM,CACL7vJ,MAAM,SACN23J,MAAMwjO,EAAAA,GAAAA,KAAClsE,GAAoB,IAC3BhiW,UAAU,uGACV4sE,QAAU3mD,IACRA,EAAEojC,kBACFw0a,GAAwB,MAhDvBv6H,EAAQ2tB,kBAZoC,MAoPzDi9C,EAAAA,GAAAA,KAACv/G,GAAK,CACJr8D,QAASyqO,EACTx2b,OAAQ,KACRyoT,SAAUA,IAAMguI,GAAqB,GACrCtie,MAAO,IAAIkiD,UAEXsxX,EAAAA,GAAAA,KAAA,OAAKzra,IAAKi1b,EAAU1yG,IAAKse,EAAQyqE,YAAa/ta,UAAU,oCAI1Dkua,EAAAA,GAAAA,KAACv/G,GAAK,CACJnqR,MAAM,qBACN8tN,QAAS2qO,EACTjuI,SAAUA,IAAMkuI,GAAqB,GACrC32b,OAAQ,KAAKqW,UAEbqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,mDAAkD48C,SAAA,EAC/DsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAAC8b,GAAgB,IACvBlva,KAAK,QACL8xD,QA3TkByxZ,KAC1Brge,OAAOga,KACL,gDAAgDo/B,mBAAmB8mb,KACnE,SACD,EAwTEl+d,UAAU,2CAA0C48C,SAAI,uBAGrDsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACa,GAAgB,IACvBj0Z,KAAK,QACL8xD,QA1TkB0xZ,KAC1Btge,OAAOga,KACL,sCAAsCo/B,mBAAmB8mb,KACzD,SACD,EAuTEl+d,UAAU,4CAA2C48C,SAAI,4BAMzDsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,qEAAoE48C,UACpFqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,0CAAyC48C,SAAA,EAEtDsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAAClsE,GAAoB,IAC3BlnV,KAAK,QACL9a,UAAU,8DACV4sE,QAASixZ,EACTpzV,QAAS4yV,EAAezgb,SACzB,iBAMDsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,cAAa48C,UAC5BsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACD8H,MAAMwjO,EAAAA,GAAAA,KAACyuD,GAAgB,IACvB38d,UAAU,kFACV4sE,QAASA,IAAMswZ,GAAqB,GAAMtgb,SAC3C,mCASH,ECrgBH,IAAI2hb,GAAgB,CAAC,EACjBC,GAAiB,yBCKrB,SAASjvX,GAAcv4E,GAC5B,IAAI0pH,EAAuB4rE,EAAAA,mBAAoB5mN,GA2B/C,MAAO,CACLg7I,QAASA,EACThxC,SA5Ba,SAAkBg0C,GAC/B,IAAIrsJ,EAAQqsJ,EAAKrsJ,MACfulD,EAAW8mG,EAAK9mG,SACd6hb,EAAWnyQ,EAAAA,OAAaj1N,GAC5Bone,EAAS//b,QAAUrnC,EACnB,IASEunE,EADmBy1K,GARC/nB,EAAAA,UAAe,WACjC,MAAO,CACLpxK,SAAU,WACR,OAAOujb,EAAS//b,OAClB,EACAozB,UAAW,IAAIve,IAEnB,IACmD,GACxB,GAQ7B,OAPAqyB,IAAgB,YACd6R,EAAAA,GAAAA,0BAAwB,WACtB7Y,EAAQ9M,UAAUv4D,SAAQ,SAAUm9D,GAClCA,EAASr/D,EACX,GACF,GACF,GAAG,CAACA,IACgBi1N,EAAAA,cAAoB5rE,EAAQhxC,SAAU,CACxDr4G,MAAOunE,GACNhiB,EACL,EAIE5lB,aAAcA,EAElB,CAUO,SAASwuC,GAAWquQ,EAAQpgH,GACjC,IAAIirQ,EAAgB1rP,GAA6B,oBAAbvf,EAA0BA,EAAW,SAAUl0F,GACjF,QAAiB75H,IAAb+tN,EACF,OAAOl0F,EAET,IAAKjmI,MAAMqR,QAAQ8oN,GACjB,OAAOl0F,EAAIk0F,GAEb,IAAIv4N,EAAM,CAAC,EAIX,OAHAu4N,EAASl6N,SAAQ,SAAUgE,GACzBrC,EAAIqC,GAAOgiI,EAAIhiI,EACjB,IACOrC,CACT,GACI0jE,EAAU0tJ,EAAAA,WAA4B,OAAXunH,QAA8B,IAAXA,OAAoB,EAASA,EAAOnzL,SAClFy0B,EAAQv2G,GAAW,CAAC,EACtB9M,EAAYqjH,EAAMrjH,UAClB5W,EAAWi6H,EAAMj6H,SACfujb,EAAWnyQ,EAAAA,SACfmyQ,EAAS//b,QAAUggc,EAAc9/Z,EAAU1jB,IAAwB,OAAX24R,QAA8B,IAAXA,OAAoB,EAASA,EAAO78S,cAC/G,IAEE43E,EADmBylI,GADE/nB,EAAAA,SAAe,CAAC,GACe,GACrB,GAgBjC,OAfA1mJ,IAAgB,WACd,GAAKhH,EAUL,OADA9M,EAAU7jC,IAAIy+Q,GACP,WACL56O,EAAUtK,OAAOklP,EACnB,EATA,SAASA,EAAQl4D,GACf,IAAImqP,EAAoBD,EAAclqP,GACjC3rI,GAAQ41X,EAAS//b,QAASigc,GAAmB,IAChD/vX,EAAY,CAAC,EAEjB,CAKF,GAAG,CAAChwC,IACG6/Z,EAAS//b,OAClB,CClFe,SAASkgc,KACtB,IAAIC,EAAgCvyQ,EAAAA,cAAoB,MAOxD,SAASwyQ,IACP,OAAOxyQ,EAAAA,WAAiBuyQ,EAC1B,CAyDA,MAAO,CACLE,cAjDF,SAAuB/vX,EAAWgwX,GAChC,IAAIC,EAAU51P,GAAWr6H,GACrBkwX,EAAqB,SAA4B5ub,EAAON,GAC1D,IAAImvb,EAAWF,EAAU,CACvBjvb,IAAKA,GACH,CAAC,EACDovb,EAAiB9yQ,EAAAA,OAAa,GAC9B+vN,EAAY/vN,EAAAA,OAAah8K,GAI7B,OAAa,OADFwub,IAEWxyQ,EAAAA,cAAoBt9G,EAAW0oH,GAAS,CAAC,EAAGpnL,EAAO6ub,KAIxEH,IAAuBA,EAAoB3iD,EAAU39Y,QAAS4R,KAC7D8ub,EAAe1gc,SAAW,GAE5B29Y,EAAU39Y,QAAU4R,EACAg8K,EAAAA,cAAoBuyQ,EAAiBnvX,SAAU,CACjEr4G,MAAO+ne,EAAe1gc,SACR4tL,EAAAA,cAAoBt9G,EAAW0oH,GAAS,CAAC,EAAGpnL,EAAO6ub,KACrE,EAIA,OAAOF,EAAuB3yQ,EAAAA,WAAiB4yQ,GAAsBA,CACvE,EAsBEG,kBAhBF,SAA2BrwX,EAAWswX,GACpC,IAAIL,EAAU51P,GAAWr6H,GACrBkwX,EAAqB,SAA4B5ub,EAAON,GAC1D,IAAImvb,EAAWF,EAAU,CACvBjvb,IAAKA,GACH,CAAC,EAEL,OADA8ub,IACoBxyQ,EAAAA,cAAoBt9G,EAAW0oH,GAAS,CAAC,EAAGpnL,EAAO6ub,GACzE,EAIA,OAAOF,EAAuB3yQ,EAAAA,KAAyBA,EAAAA,WAAiB4yQ,GAAqBI,GAA8BhzQ,EAAAA,KAAW4yQ,EAAoBI,EAC5J,EAIER,iBAAkBA,EAEtB,CC1EA,IAAIS,GAAmBX,KCHnBW,IDIcA,GAAiBR,cACbQ,GAAiBF,kBAClBE,GAAiBT,iBCNfF,MACrBG,GAAgBQ,GAAiBR,cACjCM,GAAoBE,GAAiBF,kBACrCP,GAAmBS,GAAiBT,iBAGtC,SADmBvvX,KCDnB,SAH+B+8G,EAAAA,cAAoB,CACjDkzQ,iBAAiB,ICIZ,SAASC,GAAc3rc,GAC5B,IAAI4rc,EAAa,GACbhhe,EAAO,CAAC,EAYZ,OAXAo1B,EAAQv6B,SAAQ,SAAU05B,GAKxB,IAJA,IAVa6xH,EAUTpB,EAAOzwH,GAAU,CAAC,EACpB11B,EAAMmmJ,EAAKnmJ,IACXg+c,EAAY73T,EAAK63T,UACfxnM,EAAYx2Q,IAbHunJ,EAakBy2T,OAZrB71c,IAARo/I,GAA6B,OAARA,EAChB,GAEFxrJ,MAAMqR,QAAQm6I,GAAOA,EAAM,CAACA,IASSpnJ,KAAK,MAdzB,eAefgB,EAAKq1Q,IACVA,EAAY,GAAG92Q,OAAO82Q,EAAW,SAEnCr1Q,EAAKq1Q,IAAa,EAClB2rN,EAAWple,KAAKy5Q,EAClB,IACO2rN,CACT,CACO,SAASC,GAAcv+d,GAC5B,OAAe,OAARA,QAAwBsE,IAARtE,CACzB,CCZe,SAASw+d,GAAcC,EAAQtkB,EAAWukB,EAAaljb,EAAUpC,EAAQulb,GAEtF,IAAIC,EAAa1zQ,EAAAA,WAAiB2zQ,IA+ClC,OA3Ccp6Z,IAAQ,WACpB,GAAI85Z,GAAc/ib,GAChB,MAAO,CAACA,GAEV,IAbkB5nC,EAad/F,EAAqB,OAAdssc,QAAoC71c,IAAd61c,GAAyC,KAAdA,EAAmB,GAAKjid,MAAMqR,QAAQ4wc,GAAaA,EAAY,CAACA,GACxHlkd,EAAQ6jD,GAAS2kb,EAAQ5wd,GAGzB0yS,EAAkBtqT,EAClB6oe,OAAkBx6d,EACtB,GAAI80C,EAAQ,CACV,IAAI2lb,EAAa3lb,EAAOnjD,EAAOwoe,EAAQC,KApBvB9qd,EAqBCmrd,IApBY,YAAlBlle,EAAAA,GAAAA,GAAQ+Z,IAAuB1b,MAAMqR,QAAQqK,IAAwBs3M,EAAAA,eAAqBt3M,GA4BnG2sS,EAAkBw+K,GAJlBx+K,EAAkBw+K,EAAWvjb,SAC7Bsjb,EAAkBC,EAAW7vb,MAC7B0vb,EAAWR,iBAAkB,EAIjC,CACA,MAAO,CAAC79K,EAAiBu+K,EAC3B,GAAG,CA3BQpB,KA+BXe,EAAQjjb,EAAU2+Z,EAAW/ga,EAAQslb,IAAc,SAAUzqc,EAAM1oB,GACjE,GAAIozd,EAAkB,CACpB,IACEK,EADU/rP,GAAeh/M,EAAM,GACZ,GAEnBgrc,EADUhsP,GAAe1nO,EAAM,GACZ,GACrB,OAAOozd,EAAiBM,EAAYD,EACtC,CAGA,QAAIJ,EAAWR,kBAGP32X,GAAQxzE,EAAM1oB,GAAM,EAC9B,GAEF,CCjCA,SAASi2B,GAAK0N,GACZ,IAAI6kI,EAAO0jF,EAAOynO,EAAuBj8P,EAAOK,EAAO67P,EAAuBC,EAAuBC,EAIrG,IAAIzxX,EAAY1+D,EAAM+xL,UACpBzlL,EAAWtM,EAAMsM,SACjB0mX,EAAWhzX,EAAMgzX,SACjB5sO,EAAQpmJ,EAAMomJ,MACdq7C,EAAYzhM,EAAMyhM,UAClB/xO,EAAYswC,EAAMtwC,UAClBy2B,EAAQ6Z,EAAM7Z,MACdopc,EAASvvb,EAAMuvb,OACfrlb,EAASlK,EAAMkK,OACf+ga,EAAYjra,EAAMira,UAClBukB,EAAcxvb,EAAMwvb,YACpBC,EAAmBzvb,EAAMyvb,iBACzBp3d,EAAQ2nC,EAAM3nC,MACd+3d,EAAUpwb,EAAMowb,QAChB3ic,EAAUuS,EAAMvS,QAChBD,EAAUwS,EAAMxS,QAChB6ic,EAAUrwb,EAAMqwb,QAChBC,EAAWtwb,EAAMswb,SACjBC,EAAevwb,EAAMuwb,aACrBC,EAAcxwb,EAAMwwb,YACpBC,EAAgBzwb,EAAMywb,cACtBC,EAAe1wb,EAAM0wb,aACrBC,EAAa3wb,EAAM2wb,WACnBC,EAAwB5wb,EAAMgvT,gBAC9BA,OAA4C,IAA1B4hI,EAAmC,CAAC,EAAIA,EAC1D/D,EAAW7sb,EAAM6sb,SACfgE,EAAgB,GAAGlke,OAAO80O,EAAW,SACrC4tC,EAAcn6M,GAAW47Z,GAAc,CAAC,gBAAiB,sBAAuB,iBAClFC,EAAgB1hN,EAAY0hN,cAC5BC,EAAsB3hN,EAAY2hN,oBAClCC,EAAe5hN,EAAY4hN,aAI3BC,EAAkBntP,GADCurP,GAAcC,EAAQtkB,EAAWukB,EAAaljb,EAAUpC,EAAQulb,GAClC,GACjD37V,EAAYo9V,EAAgB,GAC5BC,EAAkBD,EAAgB,GAGhCE,EAAa,CAAC,EACdC,EAA+B,kBAAZhB,GAAwBU,EAC3CO,EAAiC,kBAAbhB,GAAyBS,EAC7CM,IACFD,EAAW59d,SAAW,SACtB49d,EAAW5ne,KAAO6me,GAEhBiB,IACFF,EAAW59d,SAAW,SACtB49d,EAAWz9d,MAAQ28d,GAIrB,IAAIiB,EAA0S,QAAzR1sT,EAAyO,QAAhO0jF,EAAgI,QAAvHynO,EAA4C,OAApBmB,QAAgD,IAApBA,OAA6B,EAASA,EAAgB1jc,eAA+C,IAA1Buic,EAAmCA,EAAwBhhI,EAAgBvhU,eAA+B,IAAV86N,EAAmBA,EAAQ96N,SAA+B,IAAVo3I,EAAmBA,EAAQ,EAC7U2sT,EAA0S,QAAzRz9P,EAAyO,QAAhOK,EAAgI,QAAvH67P,EAA4C,OAApBkB,QAAgD,IAApBA,OAA6B,EAASA,EAAgB3jc,eAA+C,IAA1Byic,EAAmCA,EAAwBjhI,EAAgBxhU,eAA+B,IAAV4mM,EAAmBA,EAAQ5mM,SAA+B,IAAVumM,EAAmBA,EAAQ,EAG7U09P,ECpFS,SAAuBn8b,EAAU9H,GAC9C,OAAO0nC,GAAW47Z,IAAc,SAAU7hW,GACxC,IANkByiW,EAAcC,EAAaC,EAAUC,EAOvD,MAAO,EAPWH,EAMUp8b,EANIq8b,EAMMnkc,GAAW,EANJokc,EAMO3iW,EAAI6iW,cANDD,EAMgB5iW,EAAI8iW,YAJtEL,GAAgBG,GADNH,EAAeC,EAAc,GACCC,GAK3B3iW,EAAI+iW,QACxB,GACF,CD+EuBC,CAAc55d,EAAOm5d,GACxCU,EAAkBnuP,GAAe0tP,EAAgB,GACjD9oB,EAAWupB,EAAgB,GAC3BF,EAAUE,EAAgB,GACxB98O,EAAe1S,IAAS,SAAUnhL,GACpC,IAAI4wa,EACA5C,GACFyC,EAAQ35d,EAAOA,EAAQm5d,EAAgB,GAErB,OAApBxiI,QAAgD,IAApBA,GAAyF,QAA1DmjI,EAAwBnjI,EAAgB55G,oBAAoD,IAA1B+8O,GAAoCA,EAAsBjqe,KAAK8mW,EAAiBztS,EAC/M,IACI8zL,GAAe3S,IAAS,SAAUnhL,GACpC,IAAI6wa,EACA7C,GACFyC,GAAS,GAAI,GAEK,OAApBhjI,QAAgD,IAApBA,GAA0F,QAA3DojI,EAAyBpjI,EAAgB35G,oBAAqD,IAA3B+8O,GAAqCA,EAAuBlqe,KAAK8mW,EAAiBztS,EAClN,IAGA,GAAsB,IAAlBgwa,GAAyC,IAAlBC,EACzB,OAAO,KAIT,IAAIt9b,GAA4D,QAAnDg8b,EAAwBlhI,EAAgB96T,aAA6C,IAA1Bg8b,EAAmCA,EAvGxE,SAAwC98U,GAC3E,IAGIl/G,EAHA8+X,EAAW5/Q,EAAK4/Q,SAClBo9D,EAAUh9U,EAAKg9U,QACf9jb,EAAW8mG,EAAK9mG,SAEdg5Z,GAA8B,IAAbtyC,EAAoB,CACvC1yB,WAAW,GACT0yB,EAQJ,OAPIsyC,IAAmBA,EAAehlE,WAAyB,WAAZ8vF,KACzB,kBAAb9jb,GAA6C,kBAAbA,EACzCpY,EAAQoY,EAASn2C,WACM6lN,EAAAA,eAAqB1vK,IAAgD,kBAA5BA,EAAStM,MAAMsM,WAC/EpY,EAAQoY,EAAStM,MAAMsM,WAGpBpY,CACT,CAuFqIm+b,CAA+B,CAChKjC,QAASA,EACTp9D,SAAUA,EACV1mX,SAAUwnF,IAIR29Q,GAAkB91L,KAAWk1Q,EAAenhe,GAAYyge,EAAc,CAAC,GAAGnwX,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgBmwX,EAAa,GAAGxje,OAAOkke,EAAe,aAAcQ,GAAaN,GAAgB,GAAGpke,OAAOkke,EAAe,mBAAoBN,GAAgBQ,GAAgB,GAAGpke,OAAOkke,EAAe,kBAAmBL,GAAeO,GAAgB,GAAGpke,OAAOkke,EAAe,iBAAkBL,GAAeQ,GAAuBD,GAAgB,GAAGpke,OAAOkke,EAAe,cAAeS,GAAcP,GAAgB,GAAGpke,OAAOkke,EAAe,oBAAqBJ,GAAiBM,GAAgB,GAAGpke,OAAOkke,EAAe,mBAAoBH,GAAgBK,GAAgB,GAAGpke,OAAOkke,EAAe,aAAc79D,GAAW,GAAGrma,OAAOkke,EAAe,gBAAiBF,GAAa,GAAGhke,OAAOkke,EAAe,gBAAiBQ,GAAaC,IAAezE,GAAYkE,IAAgB/wX,EAAAA,GAAAA,GAAgBmwX,EAAa,GAAGxje,OAAOkke,EAAe,eAAgBM,GAAmBxoB,IAAY35G,EAAgBt/V,UAA+B,OAApByhe,QAAgD,IAApBA,OAA6B,EAASA,EAAgBzhe,WAGnrCk6P,GAAa,CAAC,EACdzjO,IACFyjO,GAAW/+N,UAAY1E,GAKzB,IAAIw/N,GAAchlB,GAAcA,GAAcA,GAAcA,GAAc,CAAC,EAAuB,OAApBwwP,QAAgD,IAApBA,OAA6B,EAASA,EAAgB1je,OAAQ2je,GAAaxnO,IAAaolG,EAAgBvhW,OAG9M6ke,GAAkBx+V,EAWtB,MARiC,YAA7BnpI,EAAAA,GAAAA,GAAQ2ne,KAAkCtpe,MAAMqR,QAAQi4d,KAAmCt2Q,EAAAA,eAAqBs2Q,MAClHA,GAAkB,MAEhBt/D,IAAaw9D,GAAeC,KAC9B6B,GAA+Bt2Q,EAAAA,cAAoB,OAAQ,CACzDtsN,UAAW,GAAG/C,OAAOkke,EAAe,aACnCyB,KAEet2Q,EAAAA,cAAoBt9G,EAAW0oH,GAAS,CAAC,EAAG+pQ,EAAiBniI,EAAiB,CAChGt/V,UAAW+hZ,GACXhkZ,MAAOk4P,GAGPzxN,MAAOA,GACPkyJ,MAAOA,EAGPgvD,aAAc67O,EAAe77O,OAAehgP,EAC5CigP,aAAc47O,EAAe57O,QAAejgP,EAG5Cq4B,QAA2B,IAAlB8jc,EAAsBA,EAAgB,KAC/C/jc,QAA2B,IAAlBgkc,EAAsBA,EAAgB,OAC7Cb,EAAY2B,GAClB,CACA,SAA4Bt2Q,EAAAA,KAAW1pL,IEpKhC,SAASigc,GAAiBC,EAAUC,EAAQjvc,EAASkvc,EAAe9sW,GACzE,IAEIyqW,EACAC,EAHAqC,EAAcnvc,EAAQgvc,IAAa,CAAC,EACpCI,EAAYpvc,EAAQivc,IAAW,CAAC,EAGV,SAAtBE,EAAY74R,MACdu2R,EAAUqC,EAAclpe,KAAmB,QAAdo8H,EAAsB6sW,EAASD,GAC/B,UAApBI,EAAU94R,QACnBw2R,EAAWoC,EAAc/+d,MAAoB,QAAdiyH,EAAsB4sW,EAAWC,IAElE,IAAIjC,GAAc,EACdC,GAAgB,EAChBC,GAAe,EACfH,GAAe,EACfsC,EAAarvc,EAAQivc,EAAS,GAC9BK,EAAatvc,EAAQgvc,EAAW,GAGhCO,EAAaF,IAAeA,EAAW/4R,OAASg5R,IAAeA,EAAWh5R,OAASt2K,EAAQhqB,OAAM,SAAU85B,GAC7G,MAAqB,SAAdA,EAAIwmK,KACb,IACA,GAAkB,QAAdl0E,GACF,QAAgBxwH,IAAZi7d,EAEFE,IADkBuC,GAAmC,SAArBA,EAAWh5R,QACZi5R,OAC1B,QAAiB39d,IAAbk7d,EAAwB,CAEjCI,IADmBmC,GAAmC,UAArBA,EAAW/4R,QACZi5R,CAClC,OACK,QAAgB39d,IAAZi7d,EAAuB,CAEhCG,IADkBqC,GAAmC,SAArBA,EAAW/4R,QACbi5R,CAChC,MAAO,QAAiB39d,IAAbk7d,EAAwB,CAEjCG,IADmBqC,GAAmC,UAArBA,EAAWh5R,QACXi5R,CACnC,CACA,MAAO,CACL1C,QAASA,EACTC,SAAUA,EACVE,YAAaA,EACbC,cAAeA,EACfC,aAAcA,EACdH,aAAcA,EACd1D,SAAU6F,EAAc7F,SAE5B,CC3CA,SADkC7wQ,EAAAA,cAAoB,CAAC,GCAvD,IAAIma,GAAY,CAAC,YCIjB,SAAS68P,GAAQ5/U,GAEf,OADeA,EAAK9mG,QAEtB,CACA0mb,GAAQzgc,IDNO,SAAmB6gH,GAChC,IAAI9mG,EAAW8mG,EAAK9mG,SAClBtM,EAAQkiM,GAAyB9uF,EAAM+iF,IACzC,OAAoBna,EAAAA,cAAoB,KAAMh8K,EAAOsM,EACvD,ECGA0mb,GAAQ1gc,KCHO,SAAqB8gH,GAClC,IAAI1jJ,EAAY0jJ,EAAK1jJ,UACnB2I,EAAQ+6I,EAAK/6I,MACbi0C,EAAW8mG,EAAK9mG,SAChB2mb,EAAe7/U,EAAK3lH,QACpBA,OAA2B,IAAjBwlc,EAA0B,EAAIA,EACxCzlc,EAAU4lH,EAAK5lH,QACfrH,EAAQitH,EAAKjtH,MACXkpP,EAAcn6M,GAAW47Z,GAAc,CAAC,YAAa,cACvDrvP,EAAY4tC,EAAY5tC,UACxB77G,EAAYypJ,EAAYzpJ,UACtB0vH,EAAoBt5B,EAAAA,WAAiBk3Q,IACvCC,EAAoB79O,EAAkB69O,kBACtCT,EAAgBp9O,EAAkBo9O,cAGhCnB,EADYl5d,EAAQo1B,EAAU,EACF,IAAM0lc,EAAoB1lc,EAAU,EAAIA,EACpE2lc,EAAYb,GAAiBl6d,EAAOA,EAAQk5d,EAAgB,EAH7Cj8O,EAAkB+9O,eAG8CX,EAAe9sW,GAClG,OAAoBo2F,EAAAA,cAAoB1pL,GAAM80L,GAAS,CACrD13N,UAAWA,EACX2I,MAAOA,EACP05N,UAAW,KACX0P,UAAWA,EACX8tP,OAAQ,KACRtkB,UAAW,KACX9kb,MAAOA,EACPsH,QAAS8jc,EACT/jc,QAASA,EACT0c,OAAQ,WACN,OAAOoC,CACT,GACC8mb,GACL,ED5BA,YEkBA,SAAerE,IAvBf,SAAgB/ub,GAId,IAAIsM,EAAWtM,EAAMsM,SACnBomb,EAAgB1yb,EAAM0yb,cACtBW,EAAiBrzb,EAAMqzb,eACrB5xP,EAAYvsK,GAAW47Z,GAAc,aACrCwC,EAAkBD,EAAe/pe,OAAS,EAC1Ciqe,EAAeF,EAAeC,GAC9BE,EAAiBx3Q,EAAAA,SAAc,WACjC,MAAO,CACL02Q,cAAeA,EACfW,eAAgBA,EAChBF,kBAAoC,OAAjBI,QAA0C,IAAjBA,GAA2BA,EAAaE,UAAYH,EAAkB,KAEtH,GAAG,CAACC,EAAcF,EAAgBC,EAAiBZ,IACnD,OAAoB12Q,EAAAA,cAAoBk3Q,GAAe9zX,SAAU,CAC/Dr4G,MAAOyse,GACOx3Q,EAAAA,cAAoB,QAAS,CAC3CtsN,UAAW,GAAG/C,OAAO80O,EAAW,aAC/Bn1L,GACL,IAEO,IAAIonb,GAAmBV,GC5B9B,SAASW,GAAY/qO,EAAM2mO,EAAQqE,EAAQC,EAAoBC,EAAcC,EAAW17d,GACtFuwP,EAAK5+P,KAAK,CACRule,OAAQA,EACRqE,OAAQA,EACRv7d,MAAOA,IAET,IAAIpL,EAAM8me,EAAUxE,GAChBvxL,EAA4B,OAAjB81L,QAA0C,IAAjBA,OAA0B,EAASA,EAAa94d,IAAI/N,GAC5F,GAAIsie,GAAUvme,MAAMqR,QAAQk1d,EAAOsE,KAAwB71L,EAEzD,IAAK,IAAI30S,EAAI,EAAGA,EAAIkme,EAAOsE,GAAoBvqe,OAAQD,GAAK,EAC1Dsqe,GAAY/qO,EAAM2mO,EAAOsE,GAAoBxqe,GAAIuqe,EAAS,EAAGC,EAAoBC,EAAcC,EAAW1qe,EAGhH,CAYe,SAAS2qe,GAAkBtvd,EAAMmvd,EAAoBC,EAAcC,GAsBhF,OArBU/3Q,EAAAA,SAAc,WACtB,GAAqB,OAAjB83Q,QAA0C,IAAjBA,GAA2BA,EAAatpd,KAAM,CAIzE,IAHA,IAAIo+O,EAAO,GAGFv/P,EAAI,EAAGA,GAAc,OAATqb,QAA0B,IAATA,OAAkB,EAASA,EAAKpb,QAASD,GAAK,EAAG,CAIrFsqe,GAAY/qO,EAHClkP,EAAKrb,GAGQ,EAAGwqe,EAAoBC,EAAcC,EAAW1qe,EAC5E,CACA,OAAOu/P,CACT,CACA,OAAgB,OAATlkP,QAA0B,IAATA,OAAkB,EAASA,EAAKlP,KAAI,SAAU6kC,EAAMhiC,GAC1E,MAAO,CACLk3d,OAAQl1b,EACRu5b,OAAQ,EACRv7d,MAAOA,EAEX,GACF,GAAG,CAACqM,EAAMmvd,EAAoBC,EAAcC,GAE9C,CC7Ce,SAASE,GAAW1E,EAAQ/1D,EAAQ06D,EAAaN,GAC9D,IAkCIO,EAlCA7la,EAAU4G,GAAW47Z,GAAc,CAAC,YAAa,gBAAiB,iBAAkB,iBAAkB,mBAAoB,kBAAmB,eAAgB,uBAAwB,aAAc,aAAc,oBAAqB,wBAAyB,eAAgB,qBAAsB,gBAAiB,UACtTuC,EAAiB/ka,EAAQ+ka,eAC3Be,EAAiB9la,EAAQ8la,eACzBN,EAAexla,EAAQwla,aACvBD,EAAqBvla,EAAQula,mBAC7BQ,EAAkB/la,EAAQ+la,gBAC1BC,EAAgBhma,EAAQgma,cACxBC,EAAQjma,EAAQima,MAChBC,EAAmBlma,EAAQkma,iBAC3BC,EAAenma,EAAQmma,aAIrBC,EAAoC,SAAnBN,EACjBO,EAAsC,QAAnBP,KAA8BE,GAAiBA,EAAc/E,IAChFqF,EAAmBD,GAAoBD,EACvC12L,EAAW81L,GAAgBA,EAAa94d,IAAIw+Z,GAC5Cq7D,EAAkBhB,GAAsBtE,GAAUA,EAAOsE,GACzDiB,EAA0BpyP,GAAS2xP,GAGnCU,EAAqB,OAAVR,QAA4B,IAAVA,OAAmB,EAASA,EAAMhF,EAAQ2E,GACvEc,EAA0B,OAAbD,QAAkC,IAAbA,OAAsB,EAASA,EAASz4Z,QAalD,kBAAjBm4Z,EACTN,EAAsBM,EACW,oBAAjBA,IAChBN,EAAsBM,EAAalF,EAAQ2E,EAAaN,IAI1D,IAAIqB,EAAa9F,GAAckE,GAC/B,OAAO1yP,GAAcA,GAAc,CAAC,EAAGryK,GAAU,CAAC,EAAG,CACnD2ma,WAAYA,EACZP,eAAgBA,EAChB12L,SAAUA,EACV62L,gBAAiBA,EACjBtF,OAAQA,EACR8E,gBAAiBS,EACjBH,iBAAkBA,EAClBpvB,WAAYqvB,EACZG,SAAUp0P,GAAcA,GAAc,CAAC,EAAGo0P,GAAW,CAAC,EAAG,CACvDrle,UAAWisN,KAAWw4Q,EAAkC,OAAbY,QAAkC,IAAbA,OAAsB,EAASA,EAASrle,WACxG4sE,QA/BU,SAAiB/a,GACzBiza,GAAoBI,GACtBP,EAAgB9E,EAAQhua,GAE1B,IAAK,IAAIk3K,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClGpmN,EAAKomN,EAAO,GAAK9gO,UAAU8gO,GAEd,OAAfs8P,QAAsC,IAAfA,GAAyBA,EAAWxyd,WAAM,EAAQ,CAAC++C,GAAO50D,OAAO2lB,GAC1F,KA0BF,CChBA,SA3CA,SAAqB0tB,GAInB,IAAIyhM,EAAYzhM,EAAMyhM,UACpBn1L,EAAWtM,EAAMsM,SACjBoyD,EAAY1+D,EAAM+xL,UAClBmjQ,EAAgBl1b,EAAMk1b,cACtBxle,EAAYswC,EAAMtwC,UAClBsuS,EAAWh+P,EAAMg+P,SACjBvwQ,EAAUuS,EAAMvS,QAChB6qE,EAAUt4D,EAAMs4D,QACd+2K,EAAcn6M,GAAW47Z,GAAc,CAAC,gBAAiB,YAAa,YAAa,iBAAkB,kBACvGp1O,EAAgB2zB,EAAY3zB,cAC5By5O,EAAY9lN,EAAY8lN,UACxBC,EAAY/lN,EAAY+lN,UACxBC,EAAiBhmN,EAAYgmN,eAC7BC,EAAgBjmN,EAAYimN,cAG1B9+I,EAAclqS,EAYlB,OAXIgsD,EAAUg9X,GAAiBD,EAAiBD,KAC9C5+I,EAA2Bx6H,EAAAA,cAAoB,MAAO,CACpDvuN,MAAO,CACLrD,MAAOire,GAAkBF,IAAc78X,EAAUojJ,EAAgB,GACjEloP,SAAU,SACVhK,KAAM,EACNiK,SAAU,UAEZ/D,UAAW,GAAG/C,OAAO80O,EAAW,wBAC/B+0G,IAEex6H,EAAAA,cAAoBt9G,EAAW,CACjDhvG,UAAWA,EACXjC,MAAO,CACLkB,QAASqvS,EAAW,KAAO,SAEfhiF,EAAAA,cAAoB1pL,GAAM,CACxCy/L,UAAWmjQ,EACXzzP,UAAWA,EACXh0M,QAASA,GACR+oT,GACL,EC5CO,SAAS++I,GAAiBniV,GAC/B,IAAIquF,EAAYruF,EAAKquF,UACnB8tP,EAASn8U,EAAKm8U,OACdtoB,EAAW7zT,EAAK6zT,SAChBjpK,EAAW5qJ,EAAK4qJ,SAChBunK,EAAanyT,EAAKmyT,WAChBiwB,EAAkB,GAAG7oe,OAAO80O,EAAW,oBAC3C,IAAK8jO,EACH,OAAoBvpP,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAWisN,KAAW65Q,EAAiB,GAAG7oe,OAAO80O,EAAW,kBAOhE,OAAoBzlB,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAWisN,KAAW65Q,GAAiBx1X,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,iBAAkBu8D,GAAW,GAAGrxS,OAAO80O,EAAW,mBAAoBu8D,IACtK1hO,QANY,SAAiB/a,GAC7B0lZ,EAASsoB,EAAQhua,GACjBA,EAAMxI,iBACR,GAKF,CAYO,SAAS08a,GAA0B5rT,EAAK0lT,EAAQl3d,EAAOu7d,GAC5D,MAAmB,kBAAR/pT,EACFA,EAEU,oBAARA,EACFA,EAAI0lT,EAAQl3d,EAAOu7d,GAErB,EACT,CC7BO,SAAS8B,GAAaC,EAAShzc,EAAQizc,EAAUhC,EAAQv7d,GAC9D,IAeIw9d,EAeAC,EA9BAvG,EAASoG,EAAQpG,OACnB9tP,EAAYk0P,EAAQl0P,UACpBwzP,EAAaU,EAAQV,WACrBc,EAAgBJ,EAAQI,cACxBC,EAAwBL,EAAQK,sBAChCtB,EAAiBiB,EAAQjB,eACzBuB,EAAaN,EAAQM,WACrB70N,EAAau0N,EAAQv0N,WACrB48B,EAAW23L,EAAQ33L,SACnB62L,EAAkBc,EAAQd,gBAC1BR,EAAkBsB,EAAQtB,gBACxBpne,EAAMgoe,EAAWW,GACjBxC,EAAY2C,EAAcH,GAsB9B,OAlBIA,KAAcI,GAAyB,IAAMtB,IAC/CmB,EAA8B75Q,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoB,OAAQ,CAC/GvuN,MAAO,CACLq8B,YAAa,GAAGn9B,OAAOspe,EAAarC,EAAQ,OAE9Clke,UAAW,GAAG/C,OAAO80O,EAAW,6BAA6B90O,OAAOine,KAClExyN,EAAW,CACb3/B,UAAWA,EACXu8D,SAAUA,EACVunK,WAAYsvB,EACZtF,OAAQA,EACRtoB,SAAUotB,MAIV1xc,EAAOuzc,SACTJ,EAAsBnzc,EAAOuzc,OAAO3G,EAAQl3d,IAEvC,CACLpL,IAAKA,EACLmme,UAAWA,EACXyC,eAAgBA,EAChBC,oBAAqBA,GAAuB,CAAC,EAEjD,CA6FA,SAAe/G,IAxFf,SAAiB/ub,GAIf,IAAItwC,EAAYswC,EAAMtwC,UACpBjC,EAAQuyC,EAAMvyC,MACd8he,EAASvvb,EAAMuvb,OACfl3d,EAAQ2nC,EAAM3nC,MACdm3d,EAAcxvb,EAAMwvb,YACpBh2D,EAASx5X,EAAMw5X,OACf28D,EAAgBn2b,EAAM4zb,OACtBA,OAA2B,IAAlBuC,EAA2B,EAAIA,EACxCC,EAAep2b,EAAMq2b,aACrBnB,EAAgBl1b,EAAMk1b,cACtBoB,EAAqBt2b,EAAMs2b,mBACzBX,EAAU1B,GAAW1E,EAAQ/1D,EAAQnha,EAAOu7d,GAC5CnyP,EAAYk0P,EAAQl0P,UACtB4xP,EAAiBsC,EAAQtC,eACzBkD,EAAuBZ,EAAQY,qBAC/BC,EAAoBb,EAAQa,kBAC5BzB,EAAWY,EAAQZ,SACnB/2L,EAAW23L,EAAQ33L,SACnB22L,EAAmBgB,EAAQhB,iBAGzB8B,EAAcz6Q,EAAAA,QAAa,GAC/By6Q,EAAYroc,UAAYqoc,EAAYroc,QAAU4vQ,GAO9C,IAqCI04L,EArCAC,EAAkBlB,GAA0Bc,EAAsBhH,EAAQl3d,EAAOu7d,GAGjFgD,EAA2B56Q,EAAAA,cAAoBo6Q,EAAchvQ,GAAS,CAAC,EAAG2tQ,EAAU,CACtF,eAAgBv7D,EAChB9pa,UAAWisN,KAAWjsN,EAAW,GAAG/C,OAAO80O,EAAW,QAAS,GAAG90O,OAAO80O,EAAW,eAAe90O,OAAOine,GAAsB,OAAbmB,QAAkC,IAAbA,OAAsB,EAASA,EAASrle,WAAWswG,EAAAA,GAAAA,GAAgB,CAAC,EAAG22X,EAAiB/C,GAAU,IAC1Onme,MAAOkzO,GAAcA,GAAc,CAAC,EAAGlzO,GAAqB,OAAbsne,QAAkC,IAAbA,OAAsB,EAASA,EAAStne,SAC1G4le,EAAe79d,KAAI,SAAUmtB,EAAQizc,GACvC,IAAI1rb,EAASvnB,EAAOunB,OAClB+ga,EAAYtob,EAAOsob,UACnB4rB,EAAkBl0c,EAAOjzB,UACvBone,EAAgBpB,GAAaC,EAAShzc,EAAQizc,EAAUhC,EAAQv7d,GAClEpL,EAAM6pe,EAAc7pe,IACpBmme,EAAY0D,EAAc1D,UAC1ByC,EAAiBiB,EAAcjB,eAC/BC,EAAsBgB,EAAchB,oBACtC,OAAoB95Q,EAAAA,cAAoB1pL,GAAM80L,GAAS,CACrD13N,UAAWmne,EACX7jE,SAAUrwY,EAAOqwY,SACjB7sY,MAAOxD,EAAOwD,MACdigK,MAAOzjK,EAAOo0c,SACdhlQ,UAAWpvM,EAAOo0c,SAAWT,EAAqBpB,EAClDzzP,UAAWA,EACXx0O,IAAKA,EACLsie,OAAQA,EACRl3d,MAAOA,EACPm3d,YAAaA,EACbvkB,UAAWA,EACX/ga,OAAQA,EACRulb,iBAAkB9sc,EAAO8sc,kBACxB2D,EAAW,CACZzC,WAAYkF,EACZ7mI,gBAAiB8mI,IAErB,KAIA,GAAInB,IAAqB8B,EAAYroc,SAAW4vQ,GAAW,CACzD,IAAIg5L,EAAgBR,EAAkBjH,EAAQl3d,EAAOu7d,EAAS,EAAG51L,GACjE04L,EAA6B16Q,EAAAA,cAAoBi7Q,GAAa,CAC5Dj5L,SAAUA,EACVtuS,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,iBAAkB,GAAG90O,OAAO80O,EAAW,wBAAwB90O,OAAOine,EAAS,GAAI+C,GAC9Hl1P,UAAWA,EACX1P,UAAWqkQ,EACXlB,cAAeA,EACfznc,QAAS4lc,EAAe/pe,OACxBgvG,SAAS,GACR0+X,EACL,CACA,OAAoBh7Q,EAAAA,cAAoBA,EAAAA,SAAgB,KAAM46Q,EAAaF,EAC7E,IC9Ie,SAASQ,GAAY9jV,GAClC,IAAI+jV,EAAY/jV,EAAK+jV,UACnBC,EAAiBhkV,EAAKgkV,eACpBC,EAAUr7Q,EAAAA,SAMd,OALAA,EAAAA,WAAgB,WACVq7Q,EAAQjpc,SACVgpc,EAAeD,EAAWE,EAAQjpc,QAAQg0E,YAE9C,GAAG,IACiB45G,EAAAA,cAAoBwiB,GAAgB,CACtD95N,KAAMyyd,GACQn7Q,EAAAA,cAAoB,KAAM,CACxCt8K,IAAK23b,EACL5pe,MAAO,CACLi8B,QAAS,EACTuzG,OAAQ,EACRnzI,OAAQ,IAEIkyN,EAAAA,cAAoB,MAAO,CACzCvuN,MAAO,CACL3D,OAAQ,EACR2J,SAAU,WAEX,SACL,CCvBe,SAAS6je,GAAWlkV,GACjC,IAAIquF,EAAYruF,EAAKquF,UACnBwzP,EAAa7hV,EAAK6hV,WAClBmC,EAAiBhkV,EAAKgkV,eACxB,OAAoBp7Q,EAAAA,cAAoB,KAAM,CAC5C,cAAe,OACftsN,UAAW,GAAG/C,OAAO80O,EAAW,gBAChCh0O,MAAO,CACL3D,OAAQ,EACRy7B,SAAU,IAEEy2L,EAAAA,cAAoBwiB,GAAe/rN,WAAY,CAC7DquN,cAAe,SAAuBy2P,GACpCA,EAAStue,SAAQ,SAAU47K,GACzB,IAAIsyT,EAAYtyT,EAAMngK,KACpB8F,EAAOq6J,EAAMr6J,KACf4sd,EAAeD,EAAW3sd,EAAK43F,YACjC,GACF,GACC6yX,EAAWz/d,KAAI,SAAU2he,GAC1B,OAAoBn7Q,EAAAA,cAAoBk7Q,GAAa,CACnDjqe,IAAKkqe,EACLA,UAAWA,EACXC,eAAgBA,GAEpB,KACF,CCoDA,SAAerI,IAvEf,SAAc/ub,GAIZ,IAuBInb,EAvBAngB,EAAOs7B,EAAMt7B,KACf8yd,EAAqBx3b,EAAMw3b,mBACzBnoN,EAAcn6M,GAAW47Z,GAAc,CAAC,YAAa,eAAgB,iBAAkB,iBAAkB,YAAa,eAAgB,qBAAsB,cAC9JrvP,EAAY4tC,EAAY5tC,UACxBg2P,EAAepoN,EAAYooN,aAC3BL,EAAiB/nN,EAAY+nN,eAC7B/D,EAAiBhkN,EAAYgkN,eAC7BU,EAAY1kN,EAAY0kN,UACxBD,EAAezkN,EAAYykN,aAC3BD,EAAqBxkN,EAAYwkN,mBACjC6D,EAAYroN,EAAYqoN,UACtBC,EAAc3D,GAAkBtvd,EAAMmvd,EAAoBC,EAAcC,GAGxE6D,EAAU57Q,EAAAA,OAAa,CACzBkzQ,iBAAiB,IAIfv+F,EAAmB8mG,EAAa,CAAC,OAAQ,WAAY,SACrDI,EAAcJ,EAAa,CAAC,OAAQ,OAAQ,MAC5CK,EAAcL,EAAa,CAAC,OAAQ,QAAS,MAC7CM,EAAcN,EAAa,CAAC,OAAQ,QAAS,MAG/C5yc,EADEngB,EAAKpb,OACAque,EAAYnie,KAAI,SAAU6kC,EAAM6sL,GACrC,IAAIqoQ,EAASl1b,EAAKk1b,OAChBqE,EAASv5b,EAAKu5b,OACdpE,EAAcn1b,EAAKhiC,MACjBpL,EAAM8me,EAAUxE,EAAQroQ,GAC5B,OAAoBlL,EAAAA,cAAoBg8Q,GAAS,CAC/C/qe,IAAKA,EACLusa,OAAQvsa,EACRsie,OAAQA,EACRl3d,MAAO6uN,EACPsoQ,YAAaA,EACb6G,aAAcwB,EACd3C,cAAe4C,EACfxB,mBAAoByB,EACpBnE,OAAQA,GAEZ,IAEoB53Q,EAAAA,cAAoBi7Q,GAAa,CACnDj5L,UAAU,EACVtuS,UAAW,GAAG/C,OAAO80O,EAAW,gBAChCA,UAAWA,EACX1P,UAAW8lQ,EACX3C,cAAe4C,EACfrqc,QAAS4lc,EAAe/pe,OACxBgvG,SAAS,GACRo/X,GAEL,IAAIzC,EAAa9F,GAAckE,GAC/B,OAAoBr3Q,EAAAA,cAAoB2zQ,GAAYvwX,SAAU,CAC5Dr4G,MAAO6we,EAAQxpc,SACD4tL,EAAAA,cAAoB20K,EAAkB,CACpDjhY,UAAW,GAAG/C,OAAO80O,EAAW,WAC/B+1P,GAAmCx7Q,EAAAA,cAAoBs7Q,GAAY,CACpE71P,UAAWA,EACXwzP,WAAYA,EACZmC,eAAgBA,IACdvyc,GACN,IC3EA,IAAIsxM,GAAY,CAAC,cAEN8hQ,GAAsB,+BCFjC,IAAI9hQ,GAAY,CAAC,cA8CjB,SAzCA,SAAkB/iF,GAYhB,IAXA,IAAI8kV,EAAY9kV,EAAK8kV,UACnB10c,EAAU4vH,EAAK5vH,QACf20c,EAAa/kV,EAAK+kV,WAElBC,EADgBlja,GAAW47Z,GAAc,CAAC,gBAChBsH,YACxBC,EAAO,GAKPC,GAAa,EACRjve,GALC8ue,GAAc30c,EAAQl6B,QAKb,EAAGD,GAAK,EAAGA,GAAK,EAAG,CACpC,IAAIe,EAAQ8te,EAAU7ue,GAClBs5B,EAASa,GAAWA,EAAQn6B,GAC5B2lW,OAAkB,EAClB/6T,OAAW,EASf,GARItR,IACFqsU,EAAkBrsU,EAAOs1c,IAGL,SAAhBG,IACFnkc,EAAWtR,EAAOsR,WAGlB7pC,GAAS6pC,GAAY+6T,GAAmBspI,EAAY,CACtD,IAAIzzT,EAAQmqL,GAAmB,CAAC,EAE9BupI,GADa1zT,EAAM2zT,WACGt2P,GAAyBr9D,EAAOsxD,KACxDkiQ,EAAK/wa,QAAsB00J,EAAAA,cAAoB,MAAOoL,GAAS,CAC7Dn6N,IAAK5D,EACLoE,MAAO,CACLrD,MAAOA,EACP6pC,SAAUA,IAEXskc,KACHD,GAAa,CACf,CACF,CACA,OAAoBt8Q,EAAAA,cAAoB,WAAY,KAAMq8Q,EAC5D,EC3CA,IAAIliQ,GAAY,CAAC,YAAa,SAAU,UAAW,iBAAkB,YAAa,aAAc,gBAAiB,YAAa,YAAa,kBAAmB,qBAAsB,kBAAmB,WAAY,mBAAoB,YAuBvO,IAAIsiQ,GAA2Bz8Q,EAAAA,YAAiB,SAAUh8K,EAAON,GAI/D,IAAIhwC,EAAYswC,EAAMtwC,UACpBgpe,EAAS14b,EAAM04b,OACfl1c,EAAUwc,EAAMxc,QAChB6vc,EAAiBrzb,EAAMqzb,eACvB6E,EAAYl4b,EAAMk4b,UAClBC,EAAan4b,EAAMm4b,WACnBzF,EAAgB1yb,EAAM0yb,cACtB9sW,EAAY5lF,EAAM4lF,UAClBuvW,EAAYn1b,EAAMm1b,UAClBwD,EAAkB34b,EAAM24b,gBACxBC,EAAqB54b,EAAM44b,mBAC3BC,EAAkB74b,EAAM64b,gBACxB58N,EAAWj8N,EAAMi8N,SACjB68N,EAAmB94b,EAAM84b,iBACzBxsb,EAAWtM,EAAMsM,SACjB21L,EAAYC,GAAyBliM,EAAOm2L,IAC1Ck5C,EAAcn6M,GAAW47Z,GAAc,CAAC,YAAa,gBAAiB,WAAY,iBACpFrvP,EAAY4tC,EAAY5tC,UACxBia,EAAgB2zB,EAAY3zB,cAC5BmxO,EAAWx9M,EAAYw9M,SAErBkM,GAAiBtB,EADJpoN,EAAYooN,cACK,CAAC,SAAU,SAAU,SACnDuB,EAA2BnM,IAAasI,EAAY,EAAIz5O,EAGxDikK,EAAY3jM,EAAAA,OAAa,MACzBi9Q,EAAej9Q,EAAAA,aAAkB,SAAUj0L,GAC7CwwM,GAAQ74L,EAAK3X,GACbwwM,GAAQonL,EAAW53X,EACrB,GAAG,IACHi0L,EAAAA,WAAgB,WACd,IAAIk9Q,EACJ,SAAS9kC,EAAQz+a,GACf,IAAIy9H,EAAOz9H,EACTkkC,EAAgBu5F,EAAKv5F,cACrB6F,EAAS0zF,EAAK1zF,OACZA,IACFu8M,EAAS,CACPpiN,cAAeA,EACfjpD,WAAYipD,EAAcjpD,WAAa8uD,IAEzC/pC,EAAEukC,iBAEN,CAIA,OAH6C,QAA5Cg/a,EAAqBv5E,EAAUvxX,eAA4C,IAAvB8qc,GAAiCA,EAAmBxoe,iBAAiB,QAAS0jc,EAAS,CAC1I3tY,SAAS,IAEJ,WACL,IAAI0ya,EAC0C,QAA7CA,EAAsBx5E,EAAUvxX,eAA6C,IAAxB+qc,GAAkCA,EAAoBlnb,oBAAoB,QAASmiZ,EAC3I,CACF,GAAG,IAGH,IAAIglC,EAA6Bp9Q,EAAAA,SAAc,WAC7C,OAAOq3Q,EAAe75d,OAAM,SAAUmpB,GACpC,OAAOA,EAAOv4B,KAChB,GACF,GAAG,CAACipe,IAGAgG,EAAahG,EAAeA,EAAe/pe,OAAS,GACpDgwe,EAAkB,CACpBx/R,MAAOu/R,EAAaA,EAAWv/R,MAAQ,KACvC25R,WAAW,EACX8F,aAAc,WACZ,MAAO,CACL7pe,UAAW,GAAG/C,OAAO80O,EAAW,mBAEpC,GAEE+3P,GAAuBjka,EAAAA,EAAAA,UAAQ,WACjC,OAAOyja,EAA2B,GAAGrse,OAAOw+O,GAAmB3nN,GAAU,CAAC81c,IAAoB91c,CAChG,GAAG,CAACw1c,EAA0Bx1c,IAC1Bi2c,GAA8Blka,EAAAA,EAAAA,UAAQ,WACxC,OAAOyja,EAA2B,GAAGrse,OAAOw+O,GAAmBkoP,GAAiB,CAACiG,IAAoBjG,CACvG,GAAG,CAAC2F,EAA0B3F,IAG1BqG,GAAsBnka,EAAAA,EAAAA,UAAQ,WAChC,IAAI5hE,EAAQ++d,EAAc/+d,MACxBnK,EAAOkpe,EAAclpe,KACvB,OAAOm3O,GAAcA,GAAc,CAAC,EAAG+xP,GAAgB,CAAC,EAAG,CACzDlpe,KAAoB,QAAdo8H,EAAsB,GAAGj5H,OAAOw+O,GAAmB3hP,EAAKgM,KAAI,SAAUpL,GAC1E,OAAOA,EAAQ4ue,CACjB,KAAK,CAAC,IAAMxve,EACZmK,MAAqB,QAAdiyH,EAAsBjyH,EAAQ,GAAGhH,OAAOw+O,GAAmBx3O,EAAM6B,KAAI,SAAUpL,GACpF,OAAOA,EAAQ4ue,CACjB,KAAK,CAAC,IACNnM,SAAUA,GAEd,GAAG,CAACmM,EAA0BtG,EAAe7F,IACzC8M,EA9GN,SAAwBzB,EAAWC,GACjC,OAAO5ia,EAAAA,EAAAA,UAAQ,WAEb,IADA,IAAIqka,EAAe,GACVvwe,EAAI,EAAGA,EAAI8ue,EAAY9ue,GAAK,EAAG,CACtC,IAAIyH,EAAMone,EAAU7ue,GACpB,QAAY+L,IAARtE,EAGF,OAAO,KAFP8oe,EAAavwe,GAAKyH,CAItB,CACA,OAAO8oe,CACT,GAAG,CAAC1B,EAAU9qe,KAAK,KAAM+qe,GAC3B,CAiG0B0B,CAAe3B,EAAWC,GAClD,OAAoBn8Q,EAAAA,cAAoB,MAAO,CAC7CvuN,MAAOkzO,GAAc,CACnBltO,SAAU,UACTo5d,EAAW,CACZpje,IAAKkve,EACLpqe,OAAQqqe,GACN,CAAC,GACLl5b,IAAKu5b,EACLvpe,UAAWisN,KAAWjsN,GAAWswG,EAAAA,GAAAA,GAAgB,CAAC,EAAG64X,IAAmBA,KAC1D78Q,EAAAA,cAAoB+8Q,EAAgB,CAClDtre,MAAO,CACL2qe,YAAa,QACbpwW,WAAY0wW,GAAUiB,EAAoB,KAAO,aAEhDjB,IAAWI,GAAoBM,IAA4Cp9Q,EAAAA,cAAoB89Q,GAAU,CAC5G5B,UAAWyB,EAAoB,GAAGhte,OAAOw+O,GAAmBwuP,GAAoB,CAACX,IAA6B,GAC9Gb,WAAYA,EAAa,EACzB30c,QAASi2c,IACPntb,EAASq0L,GAAcA,GAAc,CAAC,EAAGsB,GAAY,CAAC,EAAG,CAC3DywP,cAAegH,EACfl2c,QAASg2c,EACTnG,eAAgBoG,MAEpB,IAOA,SAA4Bz9Q,EAAAA,KAAWy8Q,ICxGvC,SA3CgB,SAAmBz4b,GACjC,IAUI+0b,EAVA1nc,EAAQ2S,EAAM3S,MAChBqlc,EAAgB1yb,EAAM0yb,cACtBW,EAAiBrzb,EAAMqzb,eACvB+C,EAAep2b,EAAMq2b,aACrB0D,EAAgB/5b,EAAMk1b,cACtB8E,EAAch6b,EAAMg6b,YACpB3he,EAAQ2nC,EAAM3nC,MACZg3Q,EAAcn6M,GAAW47Z,GAAc,CAAC,YAAa,cACvDrvP,EAAY4tC,EAAY5tC,UACxB77G,EAAYypJ,EAAYzpJ,UAEtBo0W,IACFjF,EAAWiF,EAAY3sc,EAAM73B,KAAI,SAAUitB,GACzC,OAAOA,EAAKE,MACd,IAAItqB,IAEN,IAAI48d,EAAa9F,GAAc9hc,EAAM73B,KAAI,SAAUitB,GACjD,OAAOA,EAAKE,MACd,KACA,OAAoBq5L,EAAAA,cAAoBo6Q,EAAcrB,EAAU1nc,EAAM73B,KAAI,SAAUitB,EAAMw3c,GACxF,IAEIjrI,EAFArsU,EAASF,EAAKE,OACdywc,EAAYb,GAAiB9vc,EAAK+vc,SAAU/vc,EAAKgwc,OAAQY,EAAgBX,EAAe9sW,GAK5F,OAHIjjG,GAAUA,EAAO42c,eACnBvqI,EAAkBvsU,EAAKE,OAAO42c,aAAa52c,IAEzBq5L,EAAAA,cAAoB1pL,GAAM80L,GAAS,CAAC,EAAG3kM,EAAM,CAC/D2jK,MAAOzjK,EAAOuR,MAAQzR,EAAKgL,QAAU,EAAI,WAAa,MAAQ,KAC9DulY,SAAUrwY,EAAOqwY,SACjB7sY,MAAOxD,EAAOwD,MACd4rM,UAAWgoQ,EACXt4P,UAAWA,EACXx0O,IAAKgoe,EAAWgF,IACf7G,EAAW,CACZpkI,gBAAiBA,EACjBohI,QAAS,WAEb,IACF,ECgDA,SAAerB,IAjCF,SAAgB/ub,GAI3B,IAAI0yb,EAAgB1yb,EAAM0yb,cACxBlvc,EAAUwc,EAAMxc,QAChB6vc,EAAiBrzb,EAAMqzb,eACvB2G,EAAch6b,EAAMg6b,YAClB3qN,EAAcn6M,GAAW47Z,GAAc,CAAC,YAAa,iBACvDrvP,EAAY4tC,EAAY5tC,UACxBg2P,EAAepoN,EAAYooN,aACzB5yc,EAAOm3L,EAAAA,SAAc,WACvB,OApEJ,SAAyBk+Q,GACvB,IAAIr1c,EAAO,IACX,SAASs1c,EAAa32c,EAASoyc,GAC7B,IAAItgc,EAAW19B,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EAEnFitB,EAAKyQ,GAAYzQ,EAAKyQ,IAAa,GACnC,IAAI8kc,EAAkBxE,EA6BtB,OA5Bepyc,EAAQlqB,OAAOY,SAAS1E,KAAI,SAAUmtB,GACnD,IAAIF,EAAO,CACTx1B,IAAK01B,EAAO11B,IACZyC,UAAWizB,EAAOjzB,WAAa,GAC/B48C,SAAU3pB,EAAOuR,MACjBvR,OAAQA,EACR6vc,SAAU4H,GAER3sc,EAAU,EACV4sc,EAAa13c,EAAO2pB,SAiBxB,OAhBI+tb,GAAcA,EAAW/we,OAAS,IACpCmkC,EAAU0sc,EAAaE,EAAYD,EAAiB9kc,EAAW,GAAGlO,QAAO,SAAUiM,EAAO8I,GACxF,OAAO9I,EAAQ8I,CACjB,GAAG,GACH1Z,EAAK63c,eAAgB,GAEnB,YAAa33c,IACf8K,EAAU9K,EAAO8K,SAEf,YAAa9K,IACfF,EAAK+K,QAAU7K,EAAO6K,SAExB/K,EAAKgL,QAAUA,EACfhL,EAAKgwc,OAAShwc,EAAK+vc,SAAW/kc,EAAU,EACxC5I,EAAKyQ,GAAUtrC,KAAKy4B,GACpB23c,GAAmB3sc,EACZA,CACT,GAEF,CAGA0sc,CAAaD,EAAa,GAY1B,IATA,IAAIK,EAAW11c,EAAKv7B,OAChBkxe,EAAQ,SAAellc,GACzBzQ,EAAKyQ,GAAUrsC,SAAQ,SAAUw5B,GACzB,YAAaA,GAAUA,EAAK63c,gBAEhC73c,EAAK+K,QAAU+sc,EAAWjlc,EAE9B,GACF,EACSA,EAAW,EAAGA,EAAWilc,EAAUjlc,GAAY,EACtDklc,EAAMllc,GAER,OAAOzQ,CACT,CAaW41c,CAAgBj3c,EACzB,GAAG,CAACA,IACAmtW,EAAmB8mG,EAAa,CAAC,SAAU,WAAY,SACvDI,EAAcJ,EAAa,CAAC,SAAU,OAAQ,MAC9CM,EAAcN,EAAa,CAAC,SAAU,QAAS,MACnD,OAAoBz7Q,EAAAA,cAAoB20K,EAAkB,CACxDjhY,UAAW,GAAG/C,OAAO80O,EAAW,WAC/B58M,EAAKrvB,KAAI,SAAUktB,EAAK4S,GAWzB,OAV2B0mL,EAAAA,cAAoB0+Q,GAAW,CACxDzte,IAAKqoC,EACL+9b,eAAgBA,EAChBhmc,MAAO3K,EACPgwc,cAAeA,EACf2D,aAAcwB,EACd3C,cAAe6C,EACfiC,YAAaA,EACb3he,MAAOi9B,GAGX,IACF,IC3FA,SAASqlc,GAAcxyP,GACrB,IAAI/9O,EAAQwN,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GAChF,MAAqB,kBAAVxN,EACFA,EAELA,EAAMqtG,SAAS,KACV0wI,EAAaz9M,WAAWtgC,GAAS,IAEnC,IACT,CCLA,IAAI+rO,GAAY,CAAC,YACfiO,GAAa,CAAC,SAOT,SAASw2P,GAAyBtub,GACvC,OAAOqjD,GAAQrjD,GAAUhzC,QAAO,SAAUvJ,GACxC,OAAoBisN,EAAAA,eAAqBjsN,EAC3C,IAAGyF,KAAI,SAAU49I,GACf,IAAInmJ,EAAMmmJ,EAAKnmJ,IACb+yC,EAAQozG,EAAKpzG,MACX66b,EAAe76b,EAAMsM,SAErB3pB,EAASg+M,GAAc,CACzB1zO,IAAKA,GAFOi1O,GAAyBliM,EAAOm2L,KAO9C,OAHI0kQ,IACFl4c,EAAO2pB,SAAWsub,GAAyBC,IAEtCl4c,CACT,GACF,CACA,SAASm4c,GAAoBt3c,GAC3B,OAAOA,EAAQlqB,QAAO,SAAUqpB,GAC9B,OAAOA,GAA8B,YAApBh4B,EAAAA,GAAAA,GAAQg4B,KAAyBA,EAAOyO,MAC3D,IAAG57B,KAAI,SAAUmtB,GACf,IAAI03c,EAAa13c,EAAO2pB,SACxB,OAAI+tb,GAAcA,EAAW/we,OAAS,EAC7Bq3O,GAAcA,GAAc,CAAC,EAAGh+M,GAAS,CAAC,EAAG,CAClD2pB,SAAUwub,GAAoBT,KAG3B13c,CACT,GACF,CACA,SAASo4c,GAAYv3c,GACnB,IAAI+vN,EAAY37O,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,MACpF,OAAO4rB,EAAQlqB,QAAO,SAAUqpB,GAC9B,OAAOA,GAA8B,YAApBh4B,EAAAA,GAAAA,GAAQg4B,EAC3B,IAAGyE,QAAO,SAAUwhO,EAAMjmO,EAAQtqB,GAChC,IAAIyhM,EAAQn3K,EAAOm3K,MAEfkhS,GAAwB,IAAVlhS,EAAiB,OAASA,EACxC2pE,EAAY,GAAG92Q,OAAO4mP,EAAW,KAAK5mP,OAAO0L,GAC7Cgie,EAAa13c,EAAO2pB,SACxB,OAAI+tb,GAAcA,EAAW/we,OAAS,EAC7B,GAAGqD,OAAOw+O,GAAmByd,GAAOzd,GAAmB4vP,GAAYV,EAAY52N,GAAWjuQ,KAAI,SAAUyle,GAC7G,OAAOt6P,GAAc,CACnB7mC,MAAOkhS,GACNC,EACL,MAEK,GAAGtue,OAAOw+O,GAAmByd,GAAO,CAACjoB,GAAcA,GAAc,CACtE1zO,IAAKw2Q,GACJ9gP,GAAS,CAAC,EAAG,CACdm3K,MAAOkhS,KAEX,GAAG,GACL,CAkMA,SA5KA,SAAoBn2T,EAAOq2T,GACzB,IAAIz5P,EAAY58D,EAAM48D,UACpBj+M,EAAUqhJ,EAAMrhJ,QAChB8oB,EAAWu4H,EAAMv4H,SACjBi5Z,EAAa1gS,EAAM0gS,WACnBuuB,EAAejvT,EAAMivT,aACrBqH,EAAct2T,EAAMs2T,YACpBpH,EAAYlvT,EAAMkvT,UAClBM,EAAkBxvT,EAAMwvT,gBACxBjzN,EAAav8F,EAAMu8F,WACnBkzN,EAAgBzvT,EAAMyvT,cACtB0B,EAAwBnxT,EAAMmxT,sBAC9BpwW,EAAYi/C,EAAMj/C,UAClB4uW,EAAmB3vT,EAAM2vT,iBACzB1ic,EAAc+yI,EAAM/yI,YACpBgoK,EAAQj1B,EAAMi1B,MACd33F,EAAc0iE,EAAM1iE,YACpBE,EAAcwiE,EAAMxiE,YAClB+4X,EAAcp/Q,EAAAA,SAAc,WAE9B,OAAO8+Q,IADUt3c,GAAWo3c,GAAyBtub,IAAa,IAC5Bn/C,QACxC,GAAG,CAACq2B,EAAS8oB,IAGT+ub,EAAoBr/Q,EAAAA,SAAc,WACpC,GAAIupP,EAAY,CACd,IAAIq0B,EAAewB,EAAYjue,QAQ/B,IAAKyse,EAAathe,SAAS21d,IAAgB,CACzC,IAAIqN,EAAiBtF,GAAyB,EAC1CsF,GAAkB,IAAMA,GAA4B,SAAVxhS,IAAqBA,IACjE8/R,EAAathc,OAAOgjc,EAAgB,EAAGrN,IAE3B,UAAVn0R,GACF8/R,EAAathc,OAAO8ic,EAAY9xe,OAAQ,EAAG2ke,GAE/C,CAGI/sd,EAKJ,IAAIq6d,EAAoB3B,EAAa/se,QAAQohe,IAC7C2L,EAAeA,EAAatge,QAAO,SAAUqpB,EAAQtqB,GACnD,OAAOsqB,IAAWsrc,IAAiB51d,IAAUkje,CAC/C,IAGA,IACIC,EADA1I,EAAasI,EAAYG,GAG3BC,EADE1hS,IAGYg5R,EAAaA,EAAWh5R,MAAQ,MAIhD,IAAI2hS,GAAez7X,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAGi4X,GAAqB,CAC1Ivoe,UAAW,GAAG/C,OAAO80O,EAAW,oBAChC+2P,WAAY,kBACV,QAAS2C,GAAc,QAASK,GAAc,YAAa,GAAG7ue,OAAO80O,EAAW,0BAA2B,QAAS3vM,GAAc,UAAU,SAAgBxY,EAAGi2c,EAAQl3d,GACzK,IAAImha,EAASu6D,EAAUxE,EAAQl3d,GAC3B2lS,EAAW81L,EAAa94d,IAAIw+Z,GAC5BkiE,GAAmBpH,GAAgBA,EAAc/E,GACjDn1R,EAAOgnE,EAAW,CACpB3/B,UAAWA,EACXu8D,SAAUA,EACVunK,WAAYm2B,EACZnM,OAAQA,EACRtoB,SAAUotB,IAEZ,OAAIG,EACkBx4Q,EAAAA,cAAoB,OAAQ,CAC9C1/I,QAAS,SAAiB3mD,GACxB,OAAOA,EAAEojC,iBACX,GACCqhJ,GAEEA,CACT,IACA,OAAOw/R,EAAapke,KAAI,SAAU89B,GAChC,OAAOA,IAAQ26b,GAAgBwN,EAAenoc,CAChD,GACF,CAIA,OAAO8nc,EAAY9he,QAAO,SAAUg6B,GAClC,OAAOA,IAAQ26b,EACjB,GAEF,GAAG,CAAC1oB,EAAY61B,EAAarH,EAAWD,EAAc1yN,EAAYx7I,IAG9D+1W,EAAgB3/Q,EAAAA,SAAc,WAChC,IAAI4/Q,EAAeP,EAanB,OAZIH,IACFU,EAAeV,EAAiBU,IAI7BA,EAAatye,SAChBsye,EAAe,CAAC,CACd1xb,OAAQ,WACN,OAAO,IACT,KAGG0xb,CAET,GAAG,CAACV,EAAkBG,EAAmBz1W,IAGrCytW,EAAiBr3Q,EAAAA,SAAc,WACjC,MAAkB,QAAdp2F,EA/IR,SAAsBpiG,GACpB,OAAOA,EAAQhuB,KAAI,SAAUmtB,GAC3B,IAAIm3K,EAAQn3K,EAAOm3K,MAIfkhS,EAAclhS,EAMlB,MALc,SAAVA,EACFkhS,EAAc,QACK,UAAVlhS,IACTkhS,EAAc,QAETr6P,GAAc,CACnB7mC,MAAOkhS,GAVK94P,GAAyBv/M,EAAQyhN,IAYjD,GACF,CAgIay3P,CAAad,GAAYY,IAE3BZ,GAAYY,EAErB,GAAG,CAACA,EAAe/1W,EAAWzjB,IAG1B25X,EAAc9/Q,EAAAA,SAAc,WAG9B,IADA,IAAI+/Q,GAAiB,EACZ1ye,EAAIgqe,EAAe/pe,OAAS,EAAGD,GAAK,EAAGA,GAAK,EAAG,CACtD,IAAI2ye,EAAW3I,EAAehqe,GAAGywM,MACjC,GAAiB,SAAbkiS,IAAoC,IAAbA,EAAmB,CAC5CD,EAAgB1ye,EAChB,KACF,CACF,CACA,GAAI0ye,GAAiB,EACnB,IAAK,IAAIz4c,EAAK,EAAGA,GAAMy4c,EAAez4c,GAAM,EAAG,CAC7C,IAAI24c,EAAY5I,EAAe/vc,GAAIw2K,MACnC,GAAkB,SAAdmiS,IAAsC,IAAdA,EAC1B,OAAO,CAEX,CAIF,IAAIC,EAAkB7I,EAAe35d,WAAU,SAAU6uP,GAEvD,MAAoB,UADLA,EAAMzuD,KAEvB,IACA,GAAIoiS,GAAmB,EACrB,IAAK,IAAIlvD,EAAMkvD,EAAiBlvD,EAAMqmD,EAAe/pe,OAAQ0jb,GAAO,EAAG,CAErE,GAAmB,UADFqmD,EAAermD,GAAKlzO,MAEnC,OAAO,CAEX,CAEF,OAAO,CACT,GAAG,CAACu5R,IAIF8I,EAAoBp4P,GDhPT,SAAyBsvP,EAAgBlxX,EAAaE,GACnE,OAAO25G,EAAAA,SAAc,WAEnB,GAAI75G,GAAeA,EAAc,EAAG,CAClC,IAAIgmI,EAAa,EACbi0P,EAAiB,EAGrB/I,EAAepqe,SAAQ,SAAUqqC,GAC/B,IAAIgH,EAAWqgc,GAAcx4X,EAAa7uE,EAAIlpC,OAC1CkwC,EACF6tM,GAAc7tM,EAEd8hc,GAAkB,CAEtB,IAGA,IAAIC,EAAc1ye,KAAKwhB,IAAIg3F,EAAaE,GACpCkkI,EAAY58O,KAAKwhB,IAAIkxd,EAAcl0P,EAAYi0P,GAC/CE,EAAYF,EACZG,EAAWh2P,EAAY61P,EACvBI,EAAY,EACZC,EAAgBpJ,EAAe79d,KAAI,SAAU89B,GAC/C,IAAIrjC,EAAQ0wO,GAAc,CAAC,EAAGrtM,GAC1BgH,EAAWqgc,GAAcx4X,EAAalyG,EAAM7F,OAChD,GAAIkwC,EACFrqC,EAAM7F,MAAQkwC,MACT,CACL,IAAIoic,EAAc/ye,KAAKC,MAAM2ye,GAC7Btse,EAAM7F,MAAsB,IAAdkye,EAAkB/1P,EAAYm2P,EAC5Cn2P,GAAam2P,EACbJ,GAAa,CACf,CAEA,OADAE,GAAavse,EAAM7F,MACZ6F,CACT,IAIA,GAAIuse,EAAYH,EAAa,CAC3B,IAAIpyV,EAAQoyV,EAAcG,EAC1Bj2P,EAAY81P,EACZI,EAAcxze,SAAQ,SAAUqqC,EAAKj7B,GACnC,IAAIiiC,EAAW3wC,KAAKC,MAAM0pC,EAAIlpC,MAAQ6/I,GACtC32G,EAAIlpC,MAAQiO,IAAUoke,EAAcnze,OAAS,EAAIi9O,EAAYjsM,EAC7DisM,GAAajsM,CACf,GACF,CACA,MAAO,CAACmic,EAAe9ye,KAAKwhB,IAAIqxd,EAAWH,GAC7C,CACA,MAAO,CAAChJ,EAAgBlxX,EAC1B,GAAG,CAACkxX,EAAgBlxX,EAAaE,GACnC,CC0LyBs6X,CAAgBtJ,EAAgBlxX,EAAaE,GACb,GACrDo6X,EAAgBN,EAAkB,GAClCS,EAAkBT,EAAkB,GACtC,MAAO,CAACR,EAAec,EAAeG,EAAiBd,EACzD,EC5Pe,SAASe,GAAU78b,EAAO2nM,EAAYosP,GACnD,IAAI+I,EPJC,SAA4B98b,GACjC,IAEIjG,EAFAwra,EAAavla,EAAMula,WACrBw3B,EAAyB76P,GAAyBliM,EAAOm2L,IAe3D,OAHgC,KAT9Bp8L,EADE,eAAgBiG,EACT2gM,GAAcA,GAAc,CAAC,EAAGo8P,GAAyBx3B,GAOzDw3B,GAEAC,mBACTjjc,EAAOi8b,uBAAyB,GAE3Bj8b,CACT,COdyBkjc,CAAmBj9b,GACtCohO,EAAa07N,EAAiB17N,WAChC87N,EAAkBJ,EAAiBI,gBACnCC,EAAyBL,EAAiBK,uBAC1CC,EAAuBN,EAAiBM,qBACxC5G,EAAoBsG,EAAiBtG,kBACrCvvB,EAAW61B,EAAiB71B,SAC5Bo2B,EAAuBP,EAAiBO,qBAEtCv7N,EAAmBV,GAAcm0N,GACjC+H,EAFmBR,EAAiBjJ,oBAEa,WACjDO,EAAiBp4Q,EAAAA,SAAc,WACjC,OAAIw6Q,EACK,SAWLx2b,EAAMula,YAAcvla,EAAMu9b,gBAAkBrP,IAAkBlub,EAAMula,WAAWi4B,wBAA0B71P,EAAWpuO,MAAK,SAAUg2d,GACrI,OAAOA,GAA8B,YAApB5ke,EAAAA,GAAAA,GAAQ4ke,IAAwBA,EAAO+N,EAC1D,MACS,MAIX,GAAG,GAAG9G,EAAmB7uP,IACrB81P,EAAkBzhR,EAAAA,UAAe,WACjC,OAAImhR,IAGAC,EZrBH,SAA6B14d,EAAMqvd,EAAWF,GACnD,IAAIzle,EAAO,GAQX,OAPA,SAAS02Z,EAAIl8J,IACVA,GAAQ,IAAI3/P,SAAQ,SAAUoxC,EAAMhiC,GACnCjK,EAAKpE,KAAK+pe,EAAU15b,EAAMhiC,IAC1BysZ,EAAIzqX,EAAKw5b,GACX,GACF,CACA/uE,CAAIpgZ,GACGtW,CACT,CYYesve,CAAoB/1P,EAAYosP,EAAWuJ,GAE7C,GACT,IACAx5P,EAAmBC,GAAe05P,EAAiB,GACnDE,EAAoB75P,EAAiB,GACrC85P,EAAuB95P,EAAiB,GACtC+5P,EAAqB7hR,EAAAA,SAAc,WACrC,OAAO,IAAI/4K,IAAIi6b,GAAmBS,GAAqB,GACzD,GAAG,CAACT,EAAiBS,IACjBtJ,EAAkBr4Q,EAAAA,aAAkB,SAAUuzQ,GAChD,IACIuO,EADA7we,EAAM8me,EAAUxE,EAAQ5nP,EAAW96O,QAAQ0ie,IAE3CwO,EAASF,EAAmB7ie,IAAI/N,GAChC8we,GACFF,EAAmB3mb,OAAOjqD,GAC1B6we,EAAkB3yP,GAAmB0yP,IAErCC,EAAkB,GAAGnxe,OAAOw+O,GAAmB0yP,GAAqB,CAAC5we,IAEvE2we,EAAqBE,GACjB72B,GACFA,GAAU82B,EAAQxO,GAEhB8N,GACFA,EAAqBS,EAEzB,GAAG,CAAC/J,EAAW8J,EAAoBl2P,EAAYs/N,EAAUo2B,IAQzD,MAAO,CAACP,EAAkB1I,EAAgByJ,EAAoB/7N,EAAkBw7N,EAA0BjJ,EAC5G,CC7EO,SAAS2J,GAAehtB,GAC7B,IAAI15D,GAAW7hV,EAAAA,EAAAA,QAAOu7Y,GAGpB1yW,EADaylI,IADCruK,EAAAA,EAAAA,UAAS,CAAC,GACe,GACd,GACvBuoa,GAAiBxoa,EAAAA,EAAAA,QAAO,MACxByoa,GAAiBzoa,EAAAA,EAAAA,QAAO,IAyB5B,OALAN,EAAAA,EAAAA,YAAU,WACR,OAAO,WACL8oa,EAAe7vc,QAAU,IAC3B,CACF,GAAG,IACI,CAACkpX,EAASlpX,QAxBjB,SAAuB4oC,GACrBkna,EAAe9vc,QAAQpkC,KAAKgtE,GAC5B,IAAIhlE,EAAUb,QAAQM,UACtBwse,EAAe7vc,QAAUp8B,EACzBA,EAAQ5J,MAAK,WACX,GAAI61e,EAAe7vc,UAAYp8B,EAAS,CACtC,IAAImse,EAAYD,EAAe9vc,QAC3B65N,EAAYqvJ,EAASlpX,QACzB8vc,EAAe9vc,QAAU,GACzB+vc,EAAUl1e,SAAQ,SAAUm1e,GAC1B9mF,EAASlpX,QAAUgwc,EAAa9mF,EAASlpX,QAC3C,IACA6vc,EAAe7vc,QAAU,KACrB65N,IAAcqvJ,EAASlpX,SACzBkwE,EAAY,CAAC,EAEjB,CACF,GACF,EAOF,CCjCA,IAAI4+I,GAAmBhc,KAAcxzO,OAAS,KC0B9C,SA1BA,SAA0Bwqe,EAAW7E,EAAgBztW,GAwBnD,OAvBoBrwD,EAAAA,EAAAA,UAAQ,WAC1B,IAAI3nB,EAAcylb,EAAe/pe,OAC7B+0e,EAAa,SAAoB7xQ,EAAYovL,EAAU34V,GAGzD,IAFA,IAAI61J,EAAU,GACVzlL,EAAQ,EACHhqC,EAAImjO,EAAYnjO,IAAMuyZ,EAAUvyZ,GAAK45D,EAC5C61J,EAAQ9uN,KAAKqpC,GACTggc,EAAehqe,GAAGywM,QACpBzmK,GAAS6kc,EAAU7ue,IAAM,GAG7B,OAAOyvN,CACT,EACIwlR,EAAeD,EAAW,EAAGzwb,EAAa,GAC1C2wb,EAAaF,EAAWzwb,EAAc,GAAI,GAAI,GAAG2mC,UACrD,MAAqB,QAAdqxC,EAAsB,CAC3Bp8H,KAAM+0e,EACN5qe,MAAO2qe,GACL,CACF90e,KAAM80e,EACN3qe,MAAO4qe,EAEX,GAAG,CAACrG,EAAW7E,EAAgBztW,GAEjC,ECrBA,SAPA,SAAewtB,GACb,IAAI1jJ,EAAY0jJ,EAAK1jJ,UACnB48C,EAAW8mG,EAAK9mG,SAClB,OAAoB0vK,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAWA,GACV48C,EACL,ECNe,SAASkyb,GAAqBtre,EAAQure,EAAW7yb,EAAIwnF,GAElE,IAAIjgH,EAAWiiN,GAAAA,wBAAmC,SAAaz/M,GAC7Dy/M,GAAAA,wBAAiCxpL,EAAIj2B,EACvC,EAAIi2B,EAIJ,OAHe,OAAX14C,QAA8B,IAAXA,GAAqBA,EAAOxC,kBACjDwC,EAAOxC,iBAAiB+te,EAAWtrd,EAAUigH,GAExC,CACL99B,OAAQ,WACS,OAAXpiG,QAA8B,IAAXA,GAAqBA,EAAO++C,qBACjD/+C,EAAO++C,oBAAoBwsb,EAAWtrd,EAAUigH,EAEpD,EAEJ,CCbO,SAASw/G,GAAU7iP,GACxB,IACIo8I,EADU4rF,GAAOhoO,GACHlH,wBACd61e,EAAUjve,SAASk0D,gBAGvB,MAAO,CACLn6D,KAAM2iJ,EAAI3iJ,MAAQkE,OAAOirI,aAAe+lW,EAAQ9te,aAAe8te,EAAQC,YAAclve,SAASuE,KAAK2qe,YAAc,GACjHl1e,IAAK0iJ,EAAI1iJ,KAAOiE,OAAOmrI,aAAe6lW,EAAQ/te,YAAc+te,EAAQE,WAAanve,SAASuE,KAAK4qe,WAAa,GAEhH,CCDA,IAAIC,GAAkB,SAAyBzrV,EAAM1zG,GACnD,IAAIo/b,EAAuBC,EACvBC,EAAgB5rV,EAAK4rV,cACvB/iO,EAAW7oH,EAAK6oH,SAChBgjO,EAAe7rV,EAAK6rV,aACpB12e,EAAY6qJ,EAAK7qJ,UACjBq9H,EAAYwtB,EAAKxtB,UACf67G,EAAYvsK,GAAW47Z,GAAc,aACrCoO,GAAuE,QAAnDJ,EAAwBE,EAAc5wc,eAA+C,IAA1B0wc,OAAmC,EAASA,EAAsB38X,cAAgB,EACjKg9X,GAAkE,QAApDJ,EAAyBC,EAAc5wc,eAAgD,IAA3B2wc,OAAoC,EAASA,EAAuB18X,cAAgB,EAC9J+8X,EAAiBF,GAAmBC,GAAaA,EAAYD,GAC7DG,EAAerjR,EAAAA,SAKjBsjR,EAAmBv7P,GAJCi6P,GAAe,CACjCpte,WAAY,EACZ2ue,mBAAmB,IAE8B,GACnDC,EAAcF,EAAiB,GAC/BG,EAAiBH,EAAiB,GAChCI,EAAW1jR,EAAAA,OAAa,CAC1B/pG,MAAO,EACPn/F,EAAG,IAGHgxN,EAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnDohB,EAAW0G,EAAiB,GAC5B++K,EAAY/+K,EAAiB,GAC3BgO,EAAS91B,EAAAA,OAAa,MAC1BA,EAAAA,WAAgB,WACd,OAAO,WACL8mB,GAAIv0I,OAAOujJ,EAAO1jN,QACpB,CACF,GAAG,IACH,IAAIkyT,EAAY,WACduiE,GAAU,EACZ,EAQIzkJ,EAAc,SAAqB78M,GACrC,IAAIo+a,EAGFzjb,GADUqF,IAAiC,QAAtBo+a,EAAUjye,cAAgC,IAAZiye,OAAqB,EAASA,EAAQp+a,QACzErF,QAClB,GAAKkhL,GAAwB,IAAZlhL,EAAjB,CAOA,IAAI1yD,EAAOk2e,EAAStxc,QAAQtb,EAAIyuC,EAAM9F,MAAQikb,EAAStxc,QAAQtb,EAAI4sd,EAAStxc,QAAQ6jF,MAChFyoS,EAAsB,QAAd90R,EAEZp8H,EAAOG,KAAKwhB,IAAIuvY,EAAQ0kF,EAAiBD,EAAY,EAAGx1e,KAAKyhB,IAAIsvY,EAAQ,EAAIykF,EAAYC,EAAgB51e,MAErFkxZ,GAAS/wZ,KAAK6E,IAAIhF,GAAQG,KAAK6E,IAAI4we,GAAkBD,KAEvEljO,EAAS,CACPrrQ,WAAYpH,EAAO21e,GAAaD,EAAkB,KAEpDQ,EAAStxc,QAAQtb,EAAIyuC,EAAM9F,MAX7B,MAJM2hL,GACFylL,GAAU,EAgBhB,EACI+8E,EAAwB,WAC1B98P,GAAIv0I,OAAOujJ,EAAO1jN,SAClB0jN,EAAO1jN,QAAU00M,IAAI,WACnB,GAAKk8P,EAAc5wc,QAAnB,CAGA,IAAIyxc,EAAiBjtP,GAAUosP,EAAc5wc,SAAS3kC,IAClDq2e,EAAoBD,EAAiBb,EAAc5wc,QAAQm0E,aAC3Dw9X,EAAsBx3e,IAAcmF,OAAS+B,SAASk0D,gBAAgBhzD,UAAYjD,OAAOqjJ,YAAc6hG,GAAUrqP,GAAWkB,IAAMlB,EAAUi6G,aAC5Is9X,EAAoB3kP,MAAsB4kP,GAAuBF,GAAkBE,EAAsBd,EAC3GQ,GAAe,SAAUjte,GACvB,OAAOmuO,GAAcA,GAAc,CAAC,EAAGnuO,GAAQ,CAAC,EAAG,CACjD+se,mBAAmB,GAEvB,IAEAE,GAAe,SAAUjte,GACvB,OAAOmuO,GAAcA,GAAc,CAAC,EAAGnuO,GAAQ,CAAC,EAAG,CACjD+se,mBAAmB,GAEvB,GAfF,CAiBF,GACF,EACIS,EAAgB,SAAuBx2e,GACzCi2e,GAAe,SAAUjte,GACvB,OAAOmuO,GAAcA,GAAc,CAAC,EAAGnuO,GAAQ,CAAC,EAAG,CACjD5B,WAAYpH,EAAO01e,EAAkBC,GAAa,GAEtD,GACF,EAsDA,OArDAnjR,EAAAA,oBAA0Bt8K,GAAK,WAC7B,MAAO,CACLsgc,cAAeA,EACfJ,sBAAuBA,EAE3B,IACA5jR,EAAAA,WAAgB,WACd,IAAIikR,EAAoBvve,GAAiBjB,SAASuE,KAAM,UAAWssV,GAAW,GAC1E4/I,EAAsBxve,GAAiBjB,SAASuE,KAAM,YAAaoqQ,GAAa,GAEpF,OADAwhO,IACO,WACLK,EAAkB3qY,SAClB4qY,EAAoB5qY,QACtB,CACF,GAAG,CAAC8pY,EAAgBhiQ,IAGpBphB,EAAAA,WAAgB,WACd,GAAKgjR,EAAc5wc,QAAnB,CAGA,IAFA,IAAI+xc,EAAgB,GAChBrqd,EAASkpd,EAAc5wc,QACpBtY,GACLqqd,EAAcn2e,KAAK8rB,GACnBA,EAASA,EAAOyT,cAQlB,OANA42c,EAAcl3e,SAAQ,SAAUumB,GAC9B,OAAOA,EAAE9e,iBAAiB,SAAUkve,GAAuB,EAC7D,IACAlye,OAAOgD,iBAAiB,SAAUkve,GAAuB,GACzDlye,OAAOgD,iBAAiB,SAAUkve,GAAuB,GACzDr3e,EAAUmI,iBAAiB,SAAUkve,GAAuB,GACrD,WACLO,EAAcl3e,SAAQ,SAAUumB,GAC9B,OAAOA,EAAEyiC,oBAAoB,SAAU2tb,EACzC,IACAlye,OAAOukD,oBAAoB,SAAU2tb,GACrClye,OAAOukD,oBAAoB,SAAU2tb,GACrCr3e,EAAU0pD,oBAAoB,SAAU2tb,EAC1C,CApBkC,CAqBpC,GAAG,CAACr3e,IACJyzN,EAAAA,WAAgB,WACTwjR,EAAYD,mBACfE,GAAe,SAAUjte,GACvB,IAAI4te,EAAWpB,EAAc5wc,QAC7B,OAAKgyc,EAGEz/P,GAAcA,GAAc,CAAC,EAAGnuO,GAAQ,CAAC,EAAG,CACjD5B,WAAYwve,EAASxve,WAAawve,EAASj+X,YAAci+X,EAAS/9X,cAH3D7vG,CAKX,GAEJ,GAAG,CAACgte,EAAYD,oBACZL,GAAmBC,IAAcC,GAAkBI,EAAYD,kBAC1D,KAEWvjR,EAAAA,cAAoB,MAAO,CAC7CvuN,MAAO,CACL3D,OAAQqxP,KACR/wP,MAAO+0e,EACP5we,OAAQ0we,GAEVvve,UAAW,GAAG/C,OAAO80O,EAAW,mBAClBzlB,EAAAA,cAAoB,MAAO,CACzCqkI,YA/HgB,SAAqB9+R,GACrCA,EAAMnH,UACNslb,EAAStxc,QAAQ6jF,MAAQ1wD,EAAM9F,MAAQ+jb,EAAY5ue,WACnD8ue,EAAStxc,QAAQtb,EAAI,EACrB+vY,GAAU,GACVthW,EAAMrH,gBACR,EA0HExa,IAAK2/b,EACL3ve,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,uBAAuBzhI,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,6BAA8BrE,IACzI3vO,MAAO,CACLrD,MAAO,GAAGuC,OAAOyye,EAAgB,MACjC13Z,UAAW,eAAe/6E,OAAO6ye,EAAY5ue,WAAY,gBAG/D,EACA,SAA4BorN,EAAAA,WAAiB6iR,IC/K7C,SAHA,SAAgBvld,GACd,OAAO,IACT,ECCA,SAHA,SAAqBA,GACnB,OAAO,IACT,ECqDO,IAAI+md,GAAiB,WAGxB3nF,GAAa,GAGb4nF,GAAsB,CAAC,EAC3B,SAASC,KACP,MAAO,SACT,CACA,SAAS/tc,GAAMguc,EAAY9gc,GACzB,IAAIM,EAAQ2gM,GAAc,CACxB64L,OAAQ,MACR/3L,UAAW4+P,GACXvrK,UAAWyrK,IACVC,GACC/+P,EAAYzhM,EAAMyhM,UACpB/xO,EAAYswC,EAAMtwC,UAClB+ke,EAAez0b,EAAMy0b,aACrBhne,EAAQuyC,EAAMvyC,MACdiX,EAAOs7B,EAAMt7B,KACb80Z,EAASx5X,EAAMw5X,OACfinE,EAASzgc,EAAMygc,OACfrI,EAAcp4b,EAAMo4b,YACpBxyW,EAAY5lF,EAAM4lF,UAClB1xF,EAAQ8L,EAAM9L,MACd+B,EAAS+J,EAAM/J,OACfyqc,EAAU1gc,EAAM0gc,QAChB3wS,EAAU/vJ,EAAM+vJ,QAChBnkL,EAAKo0B,EAAMp0B,GACX+0d,EAAa3gc,EAAM2gc,WACnBz9N,EAAaljO,EAAMkjO,WACnB4xD,EAAY90R,EAAM80R,UAClBy/J,EAAQv0b,EAAMu0b,MACdyF,EAAch6b,EAAMg6b,YACpB/9N,EAAWj8N,EAAMi8N,SACjBshO,EAAgBv9b,EAAMu9b,cACtBrC,EAAmBl7b,EAAMk7b,iBACzB0F,EAAe5gc,EAAM4gc,aACrBC,EAAS7gc,EAAM6gc,OACfC,EAAoB9gc,EAAM8gc,kBAC1Bh3d,EAASk2B,EAAMl2B,OACfi3d,EAAsB/gc,EAAMixb,aAC5BA,OAAuC,IAAxB8P,GAAwCA,EACrDp5P,EAAajjO,GAAQg0Y,GACrBsoF,IAAYr5P,EAAWr+O,OACvB23e,EAAmB1D,IAAkBrP,GAWzC,IAAIuJ,EAAez7Q,EAAAA,aAAkB,SAAUr9M,EAAMuie,GACnD,OAAOt2b,GAASs4N,EAAYvkQ,IAASuie,CACvC,GAAG,CAACh+N,IACA6wN,EAAY/3Q,EAAAA,SAAc,WAC5B,MAAsB,oBAAXw9M,EACFA,EAEF,SAAU+1D,GAKf,OAJUA,GAAUA,EAAO/1D,EAK7B,CACF,GAAG,CAACA,IACA2nE,EAAsB1J,EAAa,CAAC,SAGpC2J,ECtIS,WACb,IACEt9P,EAAmBC,GADC/nB,EAAAA,UAAgB,GACe,GACnD41Q,EAAW9tP,EAAiB,GAC5Bu9P,EAAcv9P,EAAiB,GAE/BkQ,EAAmBjQ,GADE/nB,EAAAA,UAAgB,GACe,GACpD61Q,EAAS79O,EAAiB,GAC1BstP,EAAYttP,EAAiB,GAK/B,MAAO,CAAC49O,EAAUC,EAJJ71Q,EAAAA,aAAkB,SAAUhxM,EAAOC,GAC/Co2d,EAAYr2d,GACZs2d,EAAUr2d,EACZ,GAAG,IAEL,CDwHkBs2d,GACdC,EAAaz9P,GAAeq9P,EAAW,GACvCxP,EAAW4P,EAAW,GACtB3P,EAAS2P,EAAW,GACpBxP,EAAUwP,EAAW,GAIrBC,EAAc19P,GADC84P,GAAU78b,EAAO2nM,EAAYosP,GACH,GACzC+I,EAAmB2E,EAAY,GAC/BrN,EAAiBqN,EAAY,GAC7B5D,EAAqB4D,EAAY,GACjC3/N,EAAmB2/N,EAAY,GAC/BnE,EAA2BmE,EAAY,GACvCpN,EAAkBoN,EAAY,GAG5B/oW,EAAqB,OAAX+nW,QAA8B,IAAXA,OAAoB,EAASA,EAAO3td,EAEnEgxN,EAAmBC,GADC/nB,EAAAA,SAAe,GACgB,GACnDq5Q,EAAiBvxP,EAAiB,GAClC49P,EAAoB59P,EAAiB,GAcrC69P,GAAe59P,GAbC69P,GAAWjhQ,GAAcA,GAAcA,GAAc,CAAC,EAAG3gM,GAAQ88b,GAAmB,CAAC,EAAG,CACtGv3B,aAAcu3B,EAAiBtG,kBAC/B2E,YAAa2B,EAAiB3B,YAC9BrH,aAAc+J,EACd9J,UAAWA,EAEXM,gBAAiBA,EACjBjzN,WAAYU,EACZk0N,sBAAuB8G,EAAiB9G,sBACxCpwW,UAAWA,EACXzjB,YAAa8+X,GAAoBJ,GAA6B,kBAAZnoW,EAAuBA,EAAU,KACnFr2B,YAAagzX,IACX4L,EAAmB/F,EAAmB,MACC,GAC3C13c,GAAUm+c,GAAa,GACvBtO,GAAiBsO,GAAa,GAC9BE,GAAiBF,GAAa,GAC9B7F,GAAc6F,GAAa,GACzBG,GAAmC,OAAnBD,SAA8C,IAAnBA,GAA4BA,GAAiBnpW,EACxFqpW,GAAgB/lR,EAAAA,SAAc,WAChC,MAAO,CACLx4L,QAASA,GACT6vc,eAAgBA,GAEpB,GAAG,CAAC7vc,GAAS6vc,KAGT2O,GAAehmR,EAAAA,SACfimR,GAAkBjmR,EAAAA,SAClBgjR,GAAgBhjR,EAAAA,SAChBkmR,GAAyBlmR,EAAAA,SAC7BA,EAAAA,oBAA0Bt8K,GAAK,WAC7B,MAAO,CACLs4L,cAAegqQ,GAAa5zc,QAC5B+qG,SAAU,SAAkBp/F,GAC1B,IAAIooc,EnCvKqBp7e,EmCwKzB,GAAIi4e,GAAc5wc,mBAAmBuX,YAAa,CAEhD,IAAIttC,EAAQ0hC,EAAO1hC,MACjB5O,EAAMswC,EAAOtwC,IACbwD,EAAM8sC,EAAO9sC,IACf,GnC5KgB,kBADOlG,EmC6KF0C,InC5KQ4F,OAAOic,MAAMvkB,GmCiLnC,CACL,IAAIg4e,EACAt7N,EAAoB,OAARx2Q,QAAwB,IAARA,EAAiBA,EAAM8me,EAAUpsP,EAAWtvO,IACoC,QAA/G0me,EAAyBC,GAAc5wc,QAAQH,cAAc,kBAAmBthC,OAAO82Q,EAAW,cAAgD,IAA3Bs7N,GAAqCA,EAAuBt8E,gBACtL,KAT2B,CACzB,IAAIq8E,EACgD,QAAnDA,EAAwBE,GAAc5wc,eAA+C,IAA1B0wc,GAAoCA,EAAsB3lW,SAAS,CAC7H1vI,IAAKA,GAET,CAKF,MAAgE,QAApD04e,EAAyBnD,GAAc5wc,eAAgD,IAA3B+zc,GAAqCA,EAAuBhpW,UAElI6lW,GAAc5wc,QAAQ+qG,SAASp/F,EAEnC,EAEJ,IAGA,IA+CIqoc,GACAC,GACAC,GAjDAC,GAAmBvmR,EAAAA,SAErBg4B,GAAmBjQ,GADE/nB,EAAAA,UAAe,GACgB,GACpDwmR,GAAaxuP,GAAiB,GAC9ByuP,GAAgBzuP,GAAiB,GAEjCke,GAAmBnuB,GADE/nB,EAAAA,UAAe,GACgB,GACpD0mR,GAAcxwO,GAAiB,GAC/BywO,GAAiBzwO,GAAiB,GAElCotO,GAAmBv7P,GADCi6P,GAAe,IAAI9jc,KACY,GACnD0oc,GAAatD,GAAiB,GAC9BuD,GAAmBvD,GAAiB,GAIlCwD,GADW3T,GAAckE,IACA79d,KAAI,SAAU2he,GACzC,OAAOyL,GAAWjte,IAAIwhe,EACxB,IACIe,GAAYl8Q,EAAAA,SAAc,WAC5B,OAAO8mR,EACT,GAAG,CAACA,GAAc11e,KAAK,OACnBsle,GAAgBqQ,GAAiB7K,GAAW7E,GAAgBztW,GAC5DuvW,GAAYsL,GAAUpR,GAAcoR,EAAOvjd,GAC3Co4c,GAAgBmL,GAAUpR,GAAcyS,KAAkB5ne,QAAQ4ie,EAAiBhjS,OACnFs7R,GAAYE,IAAiBjC,GAAe95d,MAAK,SAAU65I,GAE7D,OADYA,EAAK0mD,KAEnB,IAGIkpS,GAAYhnR,EAAAA,SACZinR,GRnPS,SAAmBn5d,EAAQ23N,GACxC,IAAIruF,EAA2B,YAApBzoJ,EAAAA,GAAAA,GAAQmf,GAAuBA,EAAS,CAAC,EAClDo5d,EAAoB9vV,EAAK+vV,aACzBA,OAAqC,IAAtBD,EAA+B,EAAIA,EAClDE,EAAqBhwV,EAAKiwV,cAC1BA,OAAuC,IAAvBD,EAAgC,EAAIA,EACpDE,EAAoBlwV,EAAK6rV,aACzBA,OAAqC,IAAtBqE,EAA+B,EAAIA,EAClDC,EAAoBnwV,EAAKylG,aAIvBtwP,QAHmC,IAAtBg7e,EAA+B,WAC5C,OAAOrmP,EACT,EAAIqmP,MAC4BrmP,GAC9B2vO,IAAa/id,EACjB,OAAOkyM,EAAAA,SAAc,WACnB,MAAO,CACL6wQ,SAAUA,EACVgM,gBAAiBhM,EAAW,GAAGlge,OAAO80O,EAAW,kBAAoB,GACrE0hQ,aAAcA,EACdE,cAAeA,EACfpE,aAAcA,EACd12e,UAAWA,EAEf,GAAG,CAACske,EAAUoS,EAAckE,EAAcE,EAAe5hQ,EAAWl5O,GACtE,CQ2NmBi7e,CAAU15d,EAAQ23N,GACjCorP,GAAWoW,GAAWpW,SACtBsW,GAAeF,GAAWE,aAC1BE,GAAgBJ,GAAWI,cAC3BpE,GAAegE,GAAWhE,aAC1BpG,GAAkBoK,GAAWpK,gBAC7Btwe,GAAY06e,GAAW16e,UAGrBk7e,GAAcznR,EAAAA,SAAc,WAC9B,OAAmB,OAAZ0kR,QAAgC,IAAZA,OAAqB,EAASA,EAAQ/4P,EACnE,GAAG,CAAC+4P,EAAS/4P,IACT+7P,IAAavO,IAAatI,KAA0B7wQ,EAAAA,eAAqBynR,KAAgBA,GAAYt0e,OAAS6je,IAAWyQ,GAAYzjc,MAAM85J,MAM3Iq7R,KACFkN,GAAe,CACbp4W,UAAW+2W,EAAU,SAAW,OAChC71K,UAAWs1K,EAAOvjd,IAGlBo4c,KACF8M,GAAe,CACbp4W,UAAW,QAKRmrW,KACHkN,GAAe,CACbp4W,UAAW,WAGfq4W,GAAmB,CACjBl4e,OAAyB,IAAlB03e,GAAyB,OAASA,GACzC7tc,SAAU,SAGd,IAAImjc,GAAiBp7Q,EAAAA,aAAkB,SAAUm7Q,EAAW/se,GACtD+/H,GAAU63W,GAAa5zc,UACzBy0c,IAAiB,SAAUz1R,GACzB,GAAIA,EAAOz3M,IAAIwhe,KAAe/se,EAAO,CACnC,IAAIu5e,EAAY,IAAIzpc,IAAIkzK,GAExB,OADAu2R,EAAU7xe,IAAIqle,EAAW/se,GAClBu5e,CACT,CACA,OAAOv2R,CACT,GAEJ,GAAG,IAEDw2R,GAAmB7/P,GTxQhB,SAAwBitO,GAC7B,IAAI6yB,GAAWpua,EAAAA,EAAAA,QAAOu7Y,GAAgB,MAClC/qE,GAAaxwU,EAAAA,EAAAA,UACjB,SAAS+9X,IACP9lc,OAAOw6D,aAAa+9U,EAAW73W,QACjC,CAeA,OAHA+mC,EAAAA,EAAAA,YAAU,WACR,OAAOq+X,CACT,GAAG,IACI,CAdP,SAAkBh+N,GAChBquQ,EAASz1c,QAAUonM,EACnBg+N,IACAvtD,EAAW73W,QAAU1gC,OAAO2nB,YAAW,WACrCwud,EAASz1c,QAAU,KACnB63W,EAAW73W,aAAUh5B,CACvB,GAAG,IACL,EACA,WACE,OAAOyue,EAASz1c,OAClB,EAKF,CSkPwB01c,CAAe,MACgB,GACnDC,GAAkBH,GAAiB,GACnCI,GAAkBJ,GAAiB,GACrC,SAASK,GAAYrze,EAAYsC,GAC1BA,IAGiB,oBAAXA,EACTA,EAAOtC,GACEsC,EAAOtC,aAAeA,IAC/BsC,EAAOtC,WAAaA,EAIhBsC,EAAOtC,aAAeA,GACxBykB,YAAW,WACTniB,EAAOtC,WAAaA,CACtB,GAAG,IAGT,CACA,IAAIsze,GAAmBxhQ,IAAS,SAAU79D,GACxC,IAMMs/T,EANFtqb,EAAgBgrH,EAAMhrH,cACxBjpD,EAAai0K,EAAMj0K,WACjB8pZ,EAAsB,QAAd90R,EACRw+W,EAAyC,kBAAfxze,EAA0BA,EAAaipD,EAAcjpD,WAC/Eyze,EAAgBxqb,GAAiBymb,GAChC0D,MAAqBA,OAAsBK,IAE9CN,GAAgBM,GAChBJ,GAAYG,EAAkBnC,GAAgB7zc,SAC9C61c,GAAYG,EAAkBpF,GAAc5wc,SAC5C61c,GAAYG,EAAkB7B,GAAiBn0c,SAC/C61c,GAAYG,EAA+D,QAA5CD,EAAqBnB,GAAU50c,eAA4C,IAAvB+1c,OAAgC,EAASA,EAAmBnE,gBAEjJ,IAAIsE,EAAgBzqb,GAAiBoob,GAAgB7zc,QACrD,GAAIk2c,EAAe,CACjB,IAAIniY,EAEJ8+X,GAAoBJ,GAAmC,kBAAlBiB,GAA6BA,GAAgBwC,EAAcniY,YAC5FE,EAAciiY,EAAcjiY,YAEhC,GAAIF,IAAgBE,EAGlB,OAFAogY,IAAc,QACdE,IAAe,GAGbjoF,GACF+nF,IAAe2B,EAAmBjiY,EAAcE,GAChDsgY,IAAgByB,EAAmB,KAEnC3B,GAAc2B,EAAmB,GACjCzB,GAAeyB,EAAmBjiY,EAAcE,GAEpD,CACF,IACIkiY,GAAe7hQ,IAAS,SAAU/sN,GACpCuud,GAAiBvud,GACJ,OAAbsmP,QAAkC,IAAbA,GAAuBA,EAAStmP,EACvD,IACI6ud,GAAkB,WAElB,IAAIC,EADFnP,IAAiB0J,GAAc5wc,QAEjC81c,GAAiB,CACfrqb,cAAek+K,GAAOinQ,GAAc5wc,SACpCx9B,WAAiE,QAApD6ze,EAAyBzF,GAAc5wc,eAAgD,IAA3Bq2c,OAAoC,EAASA,EAAuB7ze,cAG/I6xe,IAAc,GACdE,IAAe,GAEnB,EAgBIl9N,GAAUzpD,EAAAA,QAAa,GAC3BA,EAAAA,WAAgB,WAGVypD,GAAQr3O,SACVo2c,IAEJ,GAAG,CAAClP,GAAe5wd,EAAM8e,GAAQl6B,SACjC0yN,EAAAA,WAAgB,WACdypD,GAAQr3O,SAAU,CACpB,GAAG,IAGH,IACE2kO,GAAmBhvB,GADE/nB,EAAAA,SAAe,GACgB,GACpD0/B,GAAgBqX,GAAiB,GACjC2xO,GAAmB3xO,GAAiB,GAEpCa,GAAoB7vB,GADC/nB,EAAAA,UAAe,GACiB,GACrD+0Q,GAAgBn9N,GAAkB,GAClC+wO,GAAmB/wO,GAAkB,GAEvC53C,EAAAA,WAAgB,WACT6kR,GAAWI,IACVjC,GAAc5wc,mBAAmB2yI,QACnC2jU,GAAiBrpP,GAAuB2jP,GAAc5wc,SAAShkC,OAE/Ds6e,GAAiBrpP,GAAuB6mP,GAAuB9zc,SAAShkC,QAG5Eu6e,GAAiB7nC,GAAe,WAAY,UAC9C,GAAG,IAGH9gP,EAAAA,WAAgB,WACVilR,GAAoBL,IACtBA,EAAa5se,KAAKo6B,QAAU4wc,GAAc5wc,QAE9C,IAMA,IA6BIw2c,GA7BAC,GAAyB7oR,EAAAA,aAAkB,SAAU8oR,GACvD,OAAoB9oR,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoB88N,GAAQgsD,GAAqC,QAAdpB,IAAoC1nR,EAAAA,cAAoB6sI,GAAQi8I,EAAsBrB,IACtN,GAAG,CAACC,GAAWD,KACXsB,GAAyB/oR,EAAAA,aAAkB,SAAU8oR,GACvD,OAAoB9oR,EAAAA,cAAoB6sI,GAAQi8I,EAAsBrB,GACxE,GAAG,CAACA,KAGA1K,GAAiBtB,EAAa,CAAC,SAAU,SAGzCuN,GAAoBhpR,EAAAA,SAAc,WACpC,OAAIo8Q,IAMAhD,GACuB,gBAAlB0M,GAAkC,OAAS,QAEhD3M,IAAatI,IAAYwG,GAAe95d,MAAK,SAAUw6N,GAEzD,OADeA,EAAMi/L,QAEvB,IACS,QAEF,OACT,GAAG,CAACmiE,GAAWC,GAAW/B,GAAgB+E,EAAavL,KAInDoY,GAAc,CAChB/M,UAAWA,GACXC,WAAY9E,GAAe/pe,OAC3Bope,cAAeA,GACfsH,YAAaA,EACb7E,UAAWA,GACXsL,OAAQA,GAIN/I,GAAY17Q,EAAAA,SAAc,WAC5B,OAAIglR,EACK,KAEgB,oBAAdlsK,EACFA,IAEFA,CACT,GAAG,CAACksK,EAASlsK,IAGTowK,GAAyBlpR,EAAAA,cAAoBmpR,GAAM,CACrDzge,KAAMijO,EACN6vP,mBAAoBrC,IAAaG,IAAiBzI,KAEhDuY,GAA4BppR,EAAAA,cAAoB89Q,GAAU,CAC5D5B,UAAW7E,GAAe79d,KAAI,SAAU4+N,GAEtC,OADYA,EAAMhqO,KAEpB,IACAo5B,QAAS6vc,KAEPgS,GAA6B,OAAZt1S,QAAgC36L,IAAZ26L,EAAqCisB,EAAAA,cAAoB,UAAW,CAC3GtsN,UAAW,GAAG/C,OAAO80O,EAAW,aAC/B1xC,QAAW36L,EACVkwe,GAAYhmJ,GAAUt/S,EAAO,CAC/Bt7B,MAAM,IAEJy8U,GAAY7B,GAAUt/S,EAAO,CAC/By/S,MAAM,IAER,GAAI01I,IAAatI,GAAU,CAEzB,IAAI0Y,GAC+B,oBAAxBpE,GACToE,GAAcpE,EAAoBx5P,EAAY,CAC5C+T,cAAeA,GACfh8M,IAAKs/b,GACL/iO,SAAUioO,KAEZe,GAAY/M,UAAY7E,GAAe79d,KAAI,SAAUo/N,EAAOv8N,GAC1D,IAAIjO,EAAQwqO,EAAMxqO,MACdkwC,EAAWjiC,IAAUg7d,GAAe/pe,OAAS,EAAIc,EAAQsxP,GAAgBtxP,EAC7E,MAAwB,kBAAbkwC,GAA0BjrC,OAAOic,MAAMgvB,GAM3C,EALEA,CAMX,KAEAirc,GAA2BvpR,EAAAA,cAAoB,MAAO,CACpDvuN,MAAOkzO,GAAcA,GAAc,CAAC,EAAGyhQ,IAAeC,IACtDpmO,SAAUsoO,GACV7kc,IAAKs/b,GACLtve,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,WAC7BzlB,EAAAA,cAAoB+8Q,GAAgB3xQ,GAAS,CAC3D35N,MAAOkzO,GAAcA,GAAc,CAAC,EAAG2hQ,IAAmB,CAAC,EAAG,CAC5DlK,YAAa4M,MAEd7jJ,IAAYkkJ,GAAgBD,GAAcF,IAAYxB,IAAaD,IAA4BznR,EAAAA,cAAoB6sI,GAAQ,CAC5H6pI,cAAeA,GACfW,eAAgBA,IACfoQ,MAIL,IAAI+B,GAAmB7kQ,GAAcA,GAAcA,GAAc,CAC/D+3P,QAAS/wP,EAAWr+O,OACpBwve,iBAAkBxD,IAAmC,gBAAlBwM,IAClCmD,IAAclD,IAAgB,CAAC,EAAG,CACnCn8W,UAAWA,EACXizW,gBAAiBA,GACjB58N,SAAUioO,KAEZU,GAA8B5oR,EAAAA,cAAoBA,EAAAA,SAAgB,MAAqB,IAAf2kR,GAAqC3kR,EAAAA,cAAoBy8Q,GAAarxQ,GAAS,CAAC,EAAGo+Q,GAAkB,CAC3K7M,gBAAiBwK,GACjBzze,UAAW,GAAG/C,OAAO80O,EAAW,WAChC/hM,IAAKuic,KACH4C,IAAyBU,GAAa7B,IAA2B,QAAdA,IAAoC1nR,EAAAA,cAAoBy8Q,GAAarxQ,GAAS,CAAC,EAAGo+Q,GAAkB,CACzJ5M,mBAAoByK,GACpB3ze,UAAW,GAAG/C,OAAO80O,EAAW,YAChC/hM,IAAK6ic,KACHwC,IAAyBlY,IAAYmS,GAAc5wc,SAAW4wc,GAAc5wc,mBAAmB2yI,SAAwBi7C,EAAAA,cAAoB6iR,GAAiB,CAC9Jn/b,IAAKsjc,GACL/D,aAAcA,GACdD,cAAeA,GACf/iO,SAAUioO,GACV37e,UAAWA,GACXq9H,UAAWA,IAEf,MAEEg/W,GAA8B5oR,EAAAA,cAAoB,MAAO,CACvDvuN,MAAOkzO,GAAcA,GAAc,CAAC,EAAGyhQ,IAAeC,IACtD3ye,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,aAC3Cw6B,SAAUioO,GACVxkc,IAAKs/b,IACShjR,EAAAA,cAAoB+8Q,GAAgB3xQ,GAAS,CAC3D35N,MAAOkzO,GAAcA,GAAc,CAAC,EAAG2hQ,IAAmB,CAAC,EAAG,CAC5DlK,YAAa4M,MAEd7jJ,IAAYkkJ,GAAgBD,IAA6B,IAAfzE,GAAqC3kR,EAAAA,cAAoB88N,GAAQ1xN,GAAS,CAAC,EAAG69Q,GAAalD,KAAiBmD,GAAWzB,IAA4BznR,EAAAA,cAAoB6sI,GAAQ,CAC1N6pI,cAAeA,GACfW,eAAgBA,IACfoQ,MAEL,IAAIgC,GAAyBzpR,EAAAA,cAAoB,MAAOoL,GAAS,CAC/D13N,UAAWisN,KAAW8lB,EAAW/xO,GAAWswG,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,QAAuB,QAAd77G,GAAsB,GAAGj5H,OAAO80O,EAAW,cAAe+gQ,IAAa,GAAG71e,OAAO80O,EAAW,eAAgBihQ,IAAc,GAAG/1e,OAAO80O,EAAW,iBAAkC,UAAhB22P,GAA0B,GAAGzre,OAAO80O,EAAW,iBAAkB0zP,IAAY,GAAGxoe,OAAO80O,EAAW,iBAAkB2zP,IAAY,GAAGzoe,OAAO80O,EAAW,wBAAyB2zP,IAAa0G,IAAc,GAAGnve,OAAO80O,EAAW,sBAAuB6zP,IAAgB,GAAG3oe,OAAO80O,EAAW,iBAAkB4xP,GAAe,IAAMA,GAAe,GAAGv5R,OAAQ,GAAGntM,OAAO80O,EAAW,kBAAmB4xP,GAAeA,GAAe/pe,OAAS,IAA0D,UAApD+pe,GAAeA,GAAe/pe,OAAS,GAAGwwM,QACz2BrsM,MAAOA,EACPme,GAAIA,EACJ8zB,IAAKsic,IACJsD,IAAYpxc,GAAsB8nL,EAAAA,cAAoB6lI,GAAO,CAC9DnyV,UAAW,GAAG/C,OAAO80O,EAAW,WAC/BvtM,EAAMyzM,IAA2B3rB,EAAAA,cAAoB,MAAO,CAC7Dt8K,IAAKwic,GACLxye,UAAW,GAAG/C,OAAO80O,EAAW,eAC/BmjQ,IAAiB3uc,GAAuB+lL,EAAAA,cAAoB6lI,GAAO,CACpEnyV,UAAW,GAAG/C,OAAO80O,EAAW,YAC/BxrM,EAAO0xM,KACN2tP,KACFmQ,GAAyBzpR,EAAAA,cAAoBwiB,GAAgB,CAC3D4B,SAhOoB,SAA2BmoB,GACjD,IAAIm9O,EACAt7e,EAAQm+P,EAAMn+P,MAC4B,QAA7Cs7e,EAAsB1C,GAAU50c,eAA6C,IAAxBs3c,GAAkCA,EAAoB9F,wBAC5G,IAAIzoD,EAAc6qD,GAAa5zc,QAAU4zc,GAAa5zc,QAAQg0E,YAAch4G,EACxE62e,GAAoBH,GAAqBkB,GAAa5zc,UACxD+oZ,EAAc2pD,EAAkBkB,GAAa5zc,QAAS+oZ,IAAgBA,GAEpEA,IAAgBk+C,IAClBmP,KACA9C,EAAkBvqD,GAEtB,GAqNKsuD,KAEL,IAAI1P,GExlBS,SAAsB1C,EAAgBX,EAAe9sW,GAClE,IAAImwW,EAAgB1C,EAAe79d,KAAI,SAAU8jB,EAAGs8c,GAClD,OAAOrD,GAAiBqD,EAAUA,EAAUvC,EAAgBX,EAAe9sW,EAC7E,IACA,OAAOrwD,IAAQ,WACb,OAAOwga,CACT,GAAG,CAACA,IAAgB,SAAUhxc,EAAM1oB,GAClC,OAAQk8F,GAAQxzE,EAAM1oB,EACxB,GACF,CF+kBsBspe,CAAatS,GAAgBX,GAAe9sW,GAC5DggX,GAAoB5pR,EAAAA,SAAc,WACpC,MAAO,CAELtjF,QAASopW,GAETrgQ,UAAWA,EACXg2P,aAAcA,EACd/7O,cAAeA,GACf91H,UAAWA,EACXmwW,cAAeA,GACflJ,SAAUA,GACVkE,cAAeA,GACfsE,eAAgBA,EAChBF,UAAWA,GACXC,UAAWA,GACXE,cAAeA,GAEf8C,YAAa4M,GACbvQ,aAAcA,EACd8B,qBAAsBuG,EAAiBvG,qBACvCn1N,WAAYU,EACZsyN,eAAgBA,EAChBI,iBAAkBsI,EAAiBtI,iBACnCgC,kBAAmBsG,EAAiBtG,kBACpCnC,gBAAiBA,EACjB2B,sBAAuB8G,EAAiB9G,sBACxCC,WAAY6G,EAAiB7G,WAC7BjF,oBAAqBqC,GAAe75d,OAAM,SAAU85B,GAClD,MAAqB,SAAdA,EAAIwmK,KACb,IACA49R,UAAWA,GAEXl0c,QAASA,GACT6vc,eAAgBA,GAChB+D,eAAgBA,GAEhBtF,cAAeF,EACfG,YAAaF,EACbG,QAASA,EACTsC,cAAewI,EAAiBxI,cAChCC,MAAOA,EACPR,UAAWA,EACXD,aAAc+J,EACdhK,mBAAoByJ,EACpBrM,aAAcA,EAElB,GAAG,CAEH6Q,GAEArgQ,EAAWg2P,EAAc/7O,GAAe91H,EAAWmwW,GAAelJ,GAAUkE,GAAesE,EAAgBF,GAAWC,GAAWE,GAEjI0P,GAAmBvQ,EAAcqI,EAAiBvG,qBAAsBz0N,EAAkBsyN,EAAgB0I,EAAiBtI,iBAAkBsI,EAAiBtG,kBAAmBnC,EAAiByI,EAAiB9G,sBAAuB8G,EAAiB7G,WAAYyB,GAEvQl0c,GAAS6vc,GAAgB+D,GAEzBxF,EAAUC,EAAQG,EAAS8K,EAAiBxI,cAAeC,EAAOR,EAAW8J,EAAoBP,EAA0BrM,IAC3H,OAAoBj1Q,EAAAA,cAAoB80Q,GAAa1xX,SAAU,CAC7Dr4G,MAAO6+e,IACNH,GACL,CACA,IAAII,GAAwB7pR,EAAAA,WAAiBxpL,IAItC,SAASszc,GAASpX,GACvB,OAAOD,GAAcoX,GAAUnX,EACjC,CACA,IAAIqX,GAAiBD,KACrBC,GAAe9X,cAAgBA,GAC/B8X,GAAe7X,eAAiBA,GAChC6X,GAAe1zc,OAASA,GACxB0zc,GAAeC,YAAcA,GAC7BD,GAAe/S,QAAUU,GACzB,YGrqBO,IAAIuS,GAAgBhnY,GAAc,MAC9BinY,GAAcjnY,GAAc,MC4GvC,SA9FA,SAAqBj/D,GACnB,IAAI21b,EAAU31b,EAAM21b,QAClBhzc,EAASqd,EAAMrd,OACfizc,EAAW51b,EAAM41b,SACjBhC,EAAS5zb,EAAM4zb,OACfv7d,EAAQ2nC,EAAM3nC,MACd05N,EAAY/xL,EAAM+xL,UAClBy9P,EAAcxvb,EAAMwvb,YACpBD,EAASvvb,EAAMuvb,OACf9he,EAAQuyC,EAAMvyC,MACdiC,EAAYswC,EAAMtwC,UAClBy2e,EAAUnmc,EAAMmmc,QAChBx5c,EAAYqT,EAAMrT,UAChBud,EAASvnB,EAAOunB,OAClB+ga,EAAYtob,EAAOsob,UACnB4rB,EAAkBl0c,EAAOjzB,UACzB4qC,EAAW3X,EAAOv4B,MAElBg8e,EADgBlxa,GAAWgxa,GAAa,CAAC,kBACbE,cAC1BtP,EAAgBpB,GAAaC,EAAShzc,EAAQizc,EAAUhC,EAAQv7d,GAClEpL,EAAM6pe,EAAc7pe,IACpBmme,EAAY0D,EAAc1D,UAC1ByC,EAAiBiB,EAAcjB,eAC/BC,EAAsBgB,EAAchB,oBAClCuQ,EAAYvQ,EAAoBroe,MAClC64e,EAAwBxQ,EAAoBroc,QAC5CA,OAAoC,IAA1B64c,EAAmC,EAAIA,EACjDC,EAAyBzQ,EAAoBtoc,QAC7CA,OAAqC,IAA3B+4c,EAAoC,EAAIA,EAKhDC,EArCC,SAAwB5Q,EAAUnoc,EAAS24c,GAEhD,OAAOA,EAAcxQ,GADDnoc,GAAW,KACmB24c,EAAcxQ,IAAa,EAC/E,CAkCuB6Q,CADD7Q,EAAW,EACoBnoc,EAAS24c,GAGxDM,EAAej5c,EAAU,EAAI6M,EAAWksc,EAAiB,EAGzD7gP,EAAchlB,GAAcA,GAAcA,GAAc,CAAC,EAAG0lQ,GAAY54e,GAAQ,CAAC,EAAG,CACtFogD,KAAM,OAAOlhD,OAAO65e,EAAgB,MACpCp8e,MAAO,GAAGuC,OAAO65e,EAAgB,MACjC9/W,YAAaggX,EACbpkQ,cAAe,SAIbqkQ,EAAW3qR,EAAAA,SAAc,WAC3B,OAAImqR,EACK34c,GAAW,EAEC,IAAZC,GAA6B,IAAZD,GAAiBA,EAAU,CAEvD,GAAG,CAACA,EAASC,EAAS04c,IAGlBQ,EACFhhP,EAAY39H,WAAa,SAChBm+W,IACTxgP,EAAY77P,OAAuB,OAAd6iC,QAAoC,IAAdA,OAAuB,EAASA,EAAUa,IAEvF,IAAI2uN,EAAewqP,EAAW,WAC5B,OAAO,IACT,EAAIz8b,EAGA08b,EAAW,CAAC,EAOhB,OAJgB,IAAZp5c,GAA6B,IAAZC,IACnBm5c,EAASp5c,QAAU,EACnBo5c,EAASn5c,QAAU,GAEDuuL,EAAAA,cAAoB1pL,GAAM80L,GAAS,CACrD13N,UAAWisN,KAAWk7Q,EAAiBnne,GACvCsja,SAAUrwY,EAAOqwY,SACjB7sY,MAAOxD,EAAOwD,MACdigK,MAAOzjK,EAAOo0c,SACdhlQ,UAAWA,EACX0P,UAAWk0P,EAAQl0P,UACnBx0O,IAAKA,EACLsie,OAAQA,EACRl3d,MAAOA,EACPm3d,YAAaA,EACbvkB,UAAWA,EACX/ga,OAAQiyM,EACRszO,iBAAkB9sc,EAAO8sc,kBACxB2D,EAAW,CACZzC,WAAYkF,EACZ7mI,gBAAiBruH,GAAcA,GAAc,CAAC,EAAGm1P,GAAsB,CAAC,EAAG,CACzEroe,MAAOk4P,GACNihP,KAEP,ECzGA,IAAIzwQ,GAAY,CAAC,OAAQ,QAAS,YAAa,SAAU,QAAS,QAAS,aAoG3E,SAJuB44P,GAtFK/yQ,EAAAA,YAAiB,SAAUh8K,EAAON,GAC5D,IA6BIg3b,EA7BAhyd,EAAOs7B,EAAMt7B,KACfrM,EAAQ2nC,EAAM3nC,MACd3I,EAAYswC,EAAMtwC,UAClB8pa,EAASx5X,EAAMw5X,OACf/ra,EAAQuyC,EAAMvyC,MACdk1G,EAAQ3iE,EAAM2iE,MACdh2E,EAAYqT,EAAMrT,UAClBs1M,EAAYC,GAAyBliM,EAAOm2L,IAC1Co5P,EAAS7qd,EAAK6qd,OAChBqE,EAASlvd,EAAKkvd,OACdpE,EAAc9qd,EAAKrM,MACjBg3Q,EAAcn6M,GAAW47Z,GAAc,CAAC,YAAa,iBAAkB,YAAa,iBAAkB,YACxGp4V,EAAU22I,EAAY32I,QACtB26V,EAAiBhkN,EAAYgkN,eAC7B5xP,EAAY4tC,EAAY5tC,UACxB2zP,EAAY/lN,EAAY+lN,UACxBC,EAAiBhmN,EAAYgmN,eAE7BoC,EADiBvia,GAAW+wa,GAAe,CAAC,iBAChBxO,aAC1B9B,EAAU1B,GAAW1E,EAAQ/1D,EAAQnha,EAAOu7d,GAC5CwC,EAAeqB,EAAa,CAAC,OAAQ,OAAQ,OAC7CvC,EAAgBuC,EAAa,CAAC,OAAQ,QAAS,OAG/C9C,EAAmBgB,EAAQhB,iBAC7B32L,EAAW23L,EAAQ33L,SACnB+2L,EAAWY,EAAQZ,SACnByB,EAAoBb,EAAQa,kBAC5BD,EAAuBZ,EAAQY,qBAEjC,GAAI5B,GAAoB32L,EAAU,CAChC,IAAIg5L,EAAgBR,EAAkBjH,EAAQl3d,EAAOu7d,EAAS,EAAG51L,GAC7D24L,EAAkBlB,GAA0Bc,EAAsBhH,EAAQl3d,EAAOu7d,GACjF5kI,EAAkB,CAAC,EACnBomI,IACFpmI,EAAkB,CAChBvhW,OAAOuyG,EAAAA,GAAAA,GAAgB,CAAC,EAAG,kBAAmB,GAAGrzG,OAAO0oe,EAAgB,SAG5E,IAAIwR,EAAa,GAAGl6e,OAAO80O,EAAW,sBACtCi1P,EAA6B16Q,EAAAA,cAAoBo6Q,EAAc,CAC7D1me,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,iBAAkB,GAAG90O,OAAO80O,EAAW,wBAAwB90O,OAAOine,EAAS,GAAI+C,IAChH36Q,EAAAA,cAAoB1pL,GAAM,CACxCy/L,UAAWmjQ,EACXzzP,UAAWA,EACX/xO,UAAWisN,KAAWkrR,GAAY7mY,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAOk6e,EAAY,UAAWzR,IACvFpmI,gBAAiBA,GAChBgoI,GACL,CAGA,IAAIt4F,EAAW/9J,GAAcA,GAAc,CAAC,EAAGlzO,GAAQ,CAAC,EAAG,CACzDrD,MAAOsuI,IAEL/1B,IACF+7R,EAASlrY,SAAW,WACpBkrY,EAASp8J,cAAgB,QAE3B,IAAIwkQ,EAAuB9qR,EAAAA,cAAoBo6Q,EAAchvQ,GAAS,CAAC,EAAG2tQ,EAAU9yP,EAAW,CAC7F,eAAgBu3L,EAChB95X,IAAKi1b,EAAmB,KAAOj1b,EAC/BhwC,UAAWisN,KAAWjsN,EAAW,GAAG/C,OAAO80O,EAAW,QAAsB,OAAbszP,QAAkC,IAAbA,OAAsB,EAASA,EAASrle,WAAWswG,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,cAAe9+H,IAC/Ll1G,MAAOkzO,GAAcA,GAAc,CAAC,EAAG+9J,GAAwB,OAAbq2F,QAAkC,IAAbA,OAAsB,EAASA,EAAStne,SAC7G4le,EAAe79d,KAAI,SAAUmtB,EAAQizc,GACvC,OAAoB55Q,EAAAA,cAAoB+qR,GAAa,CACnD95e,IAAK2oe,EACL7jQ,UAAWmjQ,EACXS,QAASA,EACThzc,OAAQA,EACRizc,SAAUA,EACVhC,OAAQA,EACRv7d,MAAOA,EACPm3d,YAAaA,EACbD,OAAQA,EACR4W,QAASxjY,EACTh2E,UAAWA,GAEf,KACA,OAAIgoc,EACkB34Q,EAAAA,cAAoB,MAAO,CAC7Ct8K,IAAKA,GACJonc,EAASpQ,GAEPoQ,CACT,KC6JA,SAJmB/X,GAnPK/yQ,EAAAA,YAAiB,SAAUh8K,EAAON,GACxD,IAAIh7B,EAAOs7B,EAAMt7B,KACfu3P,EAAWj8N,EAAMi8N,SACfoT,EAAcn6M,GAAW47Z,GAAc,CAAC,iBAAkB,iBAAkB,YAAa,YAAa,eAAgB,qBAAsB,UAAW,cACzJuC,EAAiBhkN,EAAYgkN,eAC7B+D,EAAiB/nN,EAAY+nN,eAC7BrD,EAAY1kN,EAAY0kN,UACxBD,EAAezkN,EAAYykN,aAC3BryP,EAAY4tC,EAAY5tC,UACxBoyP,EAAqBxkN,EAAYwkN,mBACjCn7V,EAAU22I,EAAY32I,QACtB9S,EAAYypJ,EAAYzpJ,UACtBohX,EAAe9xa,GAAW+wa,IAC5Bn8d,EAASk9d,EAAal9d,OACtB8uH,EAAUouW,EAAapuW,QACvBwpR,EAAiB4kF,EAAa5kF,eAC9Bq1E,EAAeuP,EAAavP,aAC5BwP,EAAoBD,EAAa/qO,SAG/B4xI,EAAU7xL,EAAAA,SAGV27Q,EAAc3D,GAAkBtvd,EAAMmvd,EAAoBC,EAAcC,GAGxEmT,EAAelrR,EAAAA,SAAc,WAC/B,IAAI3oL,EAAQ,EACZ,OAAOggc,EAAe79d,KAAI,SAAU49I,GAClC,IAAIhpJ,EAAQgpJ,EAAKhpJ,MAGjB,MAAO,CAFCgpJ,EAAKnmJ,IAEA7C,EADbipC,GAASjpC,EAEX,GACF,GAAG,CAACipe,IACA+S,EAAgBpqR,EAAAA,SAAc,WAChC,OAAOkrR,EAAa1xe,KAAI,SAAU8kC,GAChC,OAAOA,EAAS,EAClB,GACF,GAAG,CAAC4sc,IACJlrR,EAAAA,WAAgB,WACdkrR,EAAaj+e,SAAQ,SAAU47K,GAC7B,IAAI0jF,EAAQxkB,GAAel/D,EAAO,GAChC53K,EAAMs7P,EAAM,GACZn+P,EAAQm+P,EAAM,GAChB6uO,EAAenqe,EAAK7C,EACtB,GACF,GAAG,CAAC88e,IAGJlrR,EAAAA,oBAA0Bt8K,GAAK,WAC7B,IAAIoyW,EACAlnZ,EAAM,CACRuuI,SAAU,SAAkBp/F,GAC1B,IAAI00W,EACqC,QAAxCA,EAAmBZ,EAAQz/W,eAA0C,IAArBqgX,GAA+BA,EAAiBt1Q,SAASp/F,EAC5G,EACAi+L,cAAyD,QAAzC85K,EAAoBjE,EAAQz/W,eAA2C,IAAtB0jX,OAA+B,EAASA,EAAkB95K,eAc7H,OAZA7pO,OAAOgN,eAAevQ,EAAK,aAAc,CACvC+K,IAAK,WACH,IAAIw8Y,EACJ,OAAkD,QAAzCA,EAAoBtE,EAAQz/W,eAA2C,IAAtB+jX,OAA+B,EAASA,EAAkBsO,gBAAgB3tY,IAAM,CAC5I,EACAhhB,IAAK,SAAa/K,GAChB,IAAIogf,EACsC,QAAzCA,EAAoBt5F,EAAQz/W,eAA2C,IAAtB+4c,GAAgCA,EAAkBhuW,SAAS,CAC3G3vI,KAAMzC,GAEV,IAEK6D,CACT,IAGA,IAAIw8e,EAAa,SAAoBzkd,EAAQtqB,GAC3C,IAAIgve,EACA9X,EAAuD,QAA7C8X,EAAqB1P,EAAYt/d,UAA2C,IAAvBgve,OAAgC,EAASA,EAAmB9X,OAC3H2G,EAASvzc,EAAOuzc,OACpB,GAAIA,EAAQ,CACV,IAAIoR,EACAC,EAAYrR,EAAO3G,EAAQl3d,GAC/B,OAA0G,QAAlGive,EAAmC,OAAdC,QAAoC,IAAdA,OAAuB,EAASA,EAAU/5c,eAA4C,IAAvB85c,EAAgCA,EAAqB,CACzK,CACA,OAAO,CACT,EAkGIE,EAAcxrR,EAAAA,SAAc,WAC9B,MAAO,CACLoqR,cAAeA,EAEnB,GAAG,CAACA,IAGAqB,EAAe,GAAG96e,OAAO80O,EAAW,UAGpCimQ,EAAmBjQ,EAAa,CAAC,OAAQ,YAGzCkQ,EAA2B,CAAC,EAQhC,OAPI79d,IACF69d,EAAyBn0e,SAAW,SACpCm0e,EAAyBp5e,OAAS,EACV,YAApB5D,EAAAA,GAAAA,GAAQmf,IAAwBA,EAAOm1d,eACzC0I,EAAyBp5e,OAASub,EAAOm1d,eAGzBjjR,EAAAA,cAAoBkqR,GAAY9mY,SAAU,CAC5Dr4G,MAAOygf,GACOxrR,EAAAA,cAAoB4rR,GAAa,CAC/C7uF,YAAY,EACZr5W,IAAKmuW,EACLpsK,UAAW,GAAG90O,OAAO86e,EAAc,YACnCxjd,OAAQ,CACN09X,oBAAqBgmF,GAEvBj4e,UAAW+3e,EACX39e,OAAQ8uI,EACR4xL,WAAY43F,GAAkB,GAC9B19Y,KAAMizd,EACN51P,QAAS,SAAiB1nM,GACxB,OAAO05b,EAAU15b,EAAKk1b,OACxB,EACAx9P,UAAW21Q,EACXvlY,YAAau2B,EACb9S,UAAWA,EACXozR,gBAAiB,SAAyBjlL,GACxC,IAAI8zQ,EACA/0d,EAAIihN,EAAMjhN,EACdmpP,EAAS,CACPpiN,cAAyD,QAAzCgub,EAAoBh6F,EAAQz/W,eAA2C,IAAtBy5c,OAA+B,EAASA,EAAkB7vQ,cAC3HpnO,WAAYkiB,GAEhB,EACAmpP,SAAUgrO,EACVhuF,YAlJgB,SAAqBt+Q,GACrC,IAAI3vH,EAAQ2vH,EAAK3vH,MACfC,EAAM0vH,EAAK1vH,IACX01Y,EAAUhmR,EAAKgmR,QACfz5R,EAAUyT,EAAKzT,QAGjB,GAAIj8G,EAAM,EACR,OAAO,KAmBT,IAfA,IAAI68d,EAAsBzU,EAAe/5d,QAEzC,SAAUqpB,GACR,OAAqC,IAA9Bykd,EAAWzkd,EAAQ3X,EAC5B,IACIwhN,EAAaxhN,EACbwvd,EAAQ,SAAenxe,GAIzB,KAHAy+e,EAAsBA,EAAoBxue,QAAO,SAAUqpB,GACzD,OAAiC,IAA1Bykd,EAAWzkd,EAAQt5B,EAC5B,KACyBC,OAEvB,OADAkjO,EAAanjO,EACN,CAEX,EACSA,EAAI2hB,EAAO3hB,GAAK,IACnBmxe,EAAMnxe,GADgBA,GAAK,GAoBjC,IAfA,IAAI0+e,EAAqB1U,EAAe/5d,QAExC,SAAUqpB,GACR,OAAmC,IAA5Bykd,EAAWzkd,EAAQ1X,EAC5B,IACI2wY,EAAW3wY,EACX+8d,EAAS,SAAgB1kd,GAI3B,KAHAykd,EAAqBA,EAAmBzue,QAAO,SAAUqpB,GACvD,OAAkC,IAA3Bykd,EAAWzkd,EAAQW,EAC5B,KACwBh6B,OAEtB,OADAsyZ,EAAWjyZ,KAAKwhB,IAAImY,EAAK,EAAGrY,GACrB,CAEX,EACSqY,EAAKrY,EAAKqY,EAAKq0c,EAAYrue,SAC9B0+e,EAAO1kd,GAD+BA,GAAM,GAmBlD,IAdA,IAAI2kd,EAAY,GACZC,EAAS,SAAgBl7D,GAI3B,IAHW2qD,EAAY3qD,GAIrB,OAAO,EAELqmD,EAAe95d,MAAK,SAAUopB,GAChC,OAAOykd,EAAWzkd,EAAQqqZ,GAAO,CACnC,KACEi7D,EAAUj+e,KAAKgjb,EAEnB,EACSA,EAAMxgN,EAAYwgN,GAAOpxB,EAAUoxB,GAAO,EAC7Ck7D,EAAOl7D,GA0Bb,OAtBYi7D,EAAUzye,KAAI,SAAU6C,GAClC,IAAIgiC,EAAOs9b,EAAYt/d,GACnBmha,EAASu6D,EAAU15b,EAAKk1b,OAAQl3d,GAOhCqoO,EAAWigL,EAAQ6Y,GACvB,OAAoBx9M,EAAAA,cAAoBmsR,GAAU,CAChDl7e,IAAKoL,EACLqM,KAAM21B,EACNm/X,OAAQA,EACRnha,MAAOA,EACP5K,MAAO,CACLhE,KAAMy9H,EAAUw5G,EAASj3O,KAE3Bk5G,OAAO,EACPh2E,UAhBc,SAAmBa,GACjC,IAAI46c,EAAe/ve,EAAQm1B,EAAU,EACjC66c,EAAatU,EAAU4D,EAAYyQ,GAAc7Y,OAAQ6Y,GACzD1nQ,EAAWigL,EAAQ6Y,EAAQ6uE,GAC/B,OAAO3nQ,EAASnyO,OAASmyO,EAASj3O,GACpC,GAaF,GAEF,IAqDG,SAAU4wC,EAAMhiC,EAAOiwe,GACxB,IAAI9uE,EAASu6D,EAAU15b,EAAKk1b,OAAQl3d,GACpC,OAAoB2jN,EAAAA,cAAoBmsR,GAAU,CAChDzje,KAAM21B,EACNm/X,OAAQA,EACRnha,MAAOA,EACP5K,MAAO66e,EAAU76e,OAErB,IACF,KChPA,IAAI86e,GAAa,SAAoBr3R,EAASlxK,GAC5C,IAAIN,EAAMM,EAAMN,IACdu8N,EAAWj8N,EAAMi8N,SACnB,OAAoBjgD,EAAAA,cAAoBgnQ,GAAM,CAC5Ctjb,IAAKA,EACLh7B,KAAMwsM,EACN+qD,SAAUA,GAEd,EACA,SAASusO,GAAaxoc,EAAON,GAC3B,IAAIh7B,EAAOs7B,EAAMt7B,KACf8e,EAAUwc,EAAMxc,QAChBi9c,EAASzgc,EAAMygc,OACf32d,EAASk2B,EAAMl2B,OACfk7N,EAAmBhlM,EAAMyhM,UACzBA,OAAiC,IAArBuD,EAA8Bq7P,GAAiBr7P,EAC3Dt1O,EAAYswC,EAAMtwC,UAClB0yZ,EAAiBpiX,EAAMoiX,eACvBl/I,EAAaljO,EAAMkjO,WACnBjH,EAAWj8N,EAAMi8N,SACf7oH,EAAOqtV,GAAU,CAAC,EACpB/nW,EAAU0a,EAAKtgI,EACf8lH,EAAUwa,EAAKl2H,EAGM,kBAAZw7G,IAITA,EAAU,GAIW,kBAAZE,IACTA,EAAU,KAKZ,IAAI6+V,EAAe/0P,IAAS,SAAU/jO,EAAMuie,GAC1C,OAAOt2b,GAASs4N,EAAYvkQ,IAASuie,CACvC,IAGIgD,EAAmBxhQ,GAASu5B,GAG5B3tM,EAAU0tJ,EAAAA,SAAc,WAC1B,MAAO,CACLlyM,OAAQA,EACR8uH,QAASA,EACTwpR,eAAgBA,EAChBq1E,aAAcA,EACdx7N,SAAUioO,EAEd,GAAG,CAACp6d,EAAQ8uH,EAASwpR,EAAgBq1E,EAAcyM,IAGnD,OAAoBloR,EAAAA,cAAoBiqR,GAAc7mY,SAAU,CAC9Dr4G,MAAOunE,GACO0tJ,EAAAA,cAAoBxpL,GAAO40L,GAAS,CAAC,EAAGpnL,EAAO,CAC7DtwC,UAAWisN,KAAWjsN,EAAW,GAAG/C,OAAO80O,EAAW,aACtDg/P,OAAQ9/P,GAAcA,GAAc,CAAC,EAAG8/P,GAAS,CAAC,EAAG,CACnD3td,EAAG4lH,IAELwqI,WAAYviC,GAAcA,GAAc,CAAC,EAAGuiC,GAAa,CAAC,EAAG,CAE3DlvQ,KAAe,OAAT0Q,QAA0B,IAATA,GAAmBA,EAAKpb,OAASi/e,QAAanze,IAEvEouB,QAASA,EACT+5c,cAAerP,GACf2S,QAAQ,EACRnhc,IAAKA,KAET,CACA,IAAI+oc,GAA+BzsR,EAAAA,WAAiBwsR,IAI7C,SAASE,GAAgBha,GAC9B,OAAOD,GAAcga,GAAiB/Z,EACxC,CACega,KAAf,MC1FA,GADepvd,GAAK,KCCpB,GADoBA,GAAK,KCGlB,IAAIqvd,GAA2B3sR,EAAAA,cAAoB,MAG/C4sR,GAA+B5sR,EAAAA,cAAoB,CAAC,GCL3D6sR,GAAS,SAAgBz1V,GAO3B,IANA,IAAIquF,EAAYruF,EAAKquF,UACnBx0D,EAAQ75B,EAAK65B,MACb67T,EAAU11V,EAAK01V,QACfC,EAAQ31V,EAAK21V,MACXtsO,EAAgB,GAAG9vQ,OAAO80O,EAAW,gBACrCmnB,EAAO,GACFv/P,EAAI,EAAGA,EAAI4jL,EAAO5jL,GAAK,EAC9Bu/P,EAAK5+P,KAAmBgyN,EAAAA,cAAoB,OAAQ,CAClD/uN,IAAK5D,EACLqG,UAAWisN,KAAW8gD,GAAez8J,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO8vQ,EAAe,UAAWqsO,EAAQz/e,IAAK,GAAGsD,OAAO8vQ,EAAe,QAASssO,EAAM1/e,QAGtK,OAAoB2yN,EAAAA,cAAoB,OAAQ,CAC9C,cAAe,OACftsN,UAAW,GAAG/C,OAAO80O,EAAW,YAC/BmnB,EACL,EACA,SAA4B5sC,EAAAA,KAAW6sR,ICrBxB,SAASG,GAAUjhP,EAAa96P,GAC7C,OAAO86P,EAAY96P,EACrB,CCEA,IAAIkpO,GAAY,CAAC,YAKV,SAAS8yQ,GAAYh8T,EAAO50K,GACjC,MAAO,GAAG1L,OAAOsgL,EAAO,KAAKtgL,OAAO0L,EACtC,CAIO,SAASwvO,GAAO56O,EAAKod,GAC1B,OAAY,OAARpd,QAAwBmI,IAARnI,EACXA,EAEFod,CACT,CACO,SAAS4hY,GAAeC,GAC7B,IAAI94P,EAAO84P,GAAc,CAAC,EAKtBg9F,EAJM91V,EAAKl/G,OAIY,QAC3B,MAAO,CACLA,MAAOg1c,EACPC,OANS/1V,EAAK+1V,QAMI,CAACD,GACnBj8e,IANMmmJ,EAAKnmJ,KAMC,MACZq/C,SANW8mG,EAAK9mG,UAMM,WAE1B,CAyBO,SAAS88b,GAAkBC,GAyBhC,OAxBA,SAASvkF,EAAI/0Z,GAEX,OADgB4/F,GAAQ5/F,GACPyF,KAAI,SAAU8ze,GAE7B,IApDC,SAAoBv5e,GACzB,OAAOA,GAAQA,EAAKZ,MAAQY,EAAKZ,KAAKo6e,UACxC,CAkDWA,CAAWD,GAEd,OADAviR,IAASuiR,EAAU,uDACZ,KAET,IAAIr8e,EAAMq8e,EAASr8e,IACfu8e,EAAkBF,EAAStpc,MAC7BsM,EAAWk9b,EAAgBl9b,SAEzBm9b,EAAW9oQ,GAAc,CAC3B1zO,IAAKA,GAFEi1O,GAAyBsnQ,EAAiBrzQ,KAI/CuzQ,EAAiB5kF,EAAIx4W,GAIzB,OAHIo9b,EAAepgf,SACjBmgf,EAASn9b,SAAWo9b,GAEfD,CACT,IAAGnwe,QAAO,SAAUmwe,GAClB,OAAOA,CACT,GACF,CACO3kF,CAAIukF,EACb,CAQO,SAASM,GAAgBC,EAAc9V,EAAc5nF,GAC1D,IAAI4c,EAAkB7c,GAAeC,GACnC29F,EAAc/gF,EAAgBqgF,OAC9BW,EAAWhhF,EAAgB77Z,IAC3B88e,EAAgBjhF,EAAgBx8W,SAC9B09b,EAAiB,IAAI/mc,KAAqB,IAAjB6wb,EAAwB,GAAKA,GACtD72M,EAAc,GAyClB,OAxCA,SAAS6nI,EAAIl8J,GACX,IAAI9yO,EAASle,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,KACjF,OAAOgxP,EAAKpzP,KAAI,SAAU8ze,EAAUjxe,GAMlC,IALA,IAII6we,EAJA7+d,EAAM4+d,GAAYnzd,EAASA,EAAOzL,IAAM,IAAKhS,GAC7CorQ,EAAY57B,GAAOyhQ,EAASQ,GAAWz/d,GAIlChhB,EAAI,EAAGA,EAAIwgf,EAAYvgf,OAAQD,GAAK,EAAG,CAC9C,IAAI4gf,EAAaJ,EAAYxgf,GAC7B,QAA6B+L,IAAzBk0e,EAASW,GAA2B,CACtCf,EAAcI,EAASW,GACvB,KACF,CACF,CAIA,IAAIC,EAAc/7e,OAAOoD,OAAOm/F,GAAK44Y,EAAU,GAAG38e,OAAOw+O,GAAmB0+P,GAAc,CAACC,EAAUC,KAAkB,CACrH71c,MAAOg1c,EACPj8e,IAAKw2Q,EACL3tP,OAAQA,EACRzL,IAAKA,EACLiiC,SAAU,KACV5nC,KAAM4ke,EACNR,QAAS,GAAGn8e,OAAOw+O,GAAmBr1N,EAASA,EAAOgzd,QAAU,IAAK,CAAW,IAAVzwe,IACtE0we,MAAO,GAAGp8e,OAAOw+O,GAAmBr1N,EAASA,EAAOizd,MAAQ,IAAK,CAAC1we,IAAUuwP,EAAKt/P,OAAS,MAU5F,OARA2zR,EAAYjzR,KAAKkgf,IAGI,IAAjBpW,GAAyBkW,EAAehve,IAAIyoQ,GAC9CymO,EAAY59b,SAAWw4W,EAAIwkF,EAASS,IAAkB,GAAIG,GAE1DA,EAAY59b,SAAW,GAElB49b,CACT,GACF,CACAplF,CAAI8kF,GACG3sN,CACT,CAmFO,SAASktN,GAAsBC,GACpC,IAAIvlU,EAAQjtK,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/Eyye,EAAcxlU,EAAMwlU,YACpBC,EAAgBzlU,EAAMylU,cACtBC,EAAoB1lU,EAAM0lU,kBAC1BC,EAAiB3lU,EAAM2lU,eACvBC,EAAmB5lU,EAAM4lU,iBACzBv+F,EAAarnO,EAAMqnO,WAIjBw+F,EAAuBF,IAFJ5ye,UAAUtO,OAAS,EAAIsO,UAAU,QAAKxC,GAGzDu1e,EAAc,CAAC,EACf5iP,EAAc,CAAC,EACf/hK,EAAU,CACZ2kZ,YAAaA,EACb5iP,YAAaA,GA0Cf,OAxCIsiP,IACFrkZ,EAAUqkZ,EAAYrkZ,IAAYA,GAjG/B,SAA2BokZ,EAAWj3d,EAE7C4mB,GACE,IAqBI6wc,EAVAC,GAVoB,YAApBlgf,EAAAA,GAAAA,GAAQovC,GACKA,EAEA,CACbywc,eAAgBzwc,KAGW,CAAC,EAI9B0wc,EAAmBI,EAAcJ,iBACjCD,EAAiBK,EAAcL,eAE7BM,EAAmB7+F,GADR4+F,EAAc3+F,YAE3B49F,EAAWgB,EAAiB79e,IAC5B88e,EAAgBe,EAAiBx+b,SAC/By+b,EAAwBN,GAAoBV,EAI5CS,EAC4B,kBAAnBA,EACTI,EAAkB,SAAyB76e,GACzC,OAAOA,EAAKy6e,EACd,EACmC,oBAAnBA,IAChBI,EAAkB,SAAyB76e,GACzC,OAAOy6e,EAAez6e,EACxB,GAGF66e,EAAkB,SAAyB76e,EAAMsa,GAC/C,OAAOw9N,GAAO93O,EAAK+5e,GAAWz/d,EAChC,EAIF,SAAS2ge,EAAYj7e,EAAMsI,EAAOyd,EAAQm1d,GACxC,IAAI3+b,EAAWv8C,EAAOA,EAAKg7e,GAAyBX,EAChD//d,EAAMta,EAAOk5e,GAAYnzd,EAAOzL,IAAKhS,GAAS,IAC9C6ye,EAAen7e,EAAO,GAAGpD,OAAOw+O,GAAmB8/P,GAAY,CAACl7e,IAAS,GAG7E,GAAIA,EAAM,CACR,IAAI9C,EAAM29e,EAAgB76e,EAAMsa,GAC5B++H,EAAQ,CACVr5I,KAAMA,EACNsI,MAAOA,EACPgS,IAAKA,EACLpd,IAAKA,EACLk+e,UAAWr1d,EAAO/lB,KAAO+lB,EAAOzL,IAAM,KACtC4iK,MAAOn3J,EAAOm3J,MAAQ,EACtBgxI,MAAOitL,GAET/3d,EAASi2H,EACX,CAGI98F,GACFA,EAASrjD,SAAQ,SAAUmif,EAASC,GAClCL,EAAYI,EAASC,EAAU,CAC7Bt7e,KAAMA,EACNsa,IAAKA,EACL4iK,MAAOn3J,EAASA,EAAOm3J,MAAQ,GAAK,GACnCi+T,EACL,GAEJ,CACAF,CAAY,KACd,CAyBEM,CAAkBlB,GAAW,SAAU/vc,GACrC,IAAItqC,EAAOsqC,EAAKtqC,KACdsI,EAAQgiC,EAAKhiC,MACbgS,EAAMgwB,EAAKhwB,IACXpd,EAAMotC,EAAKptC,IACXk+e,EAAY9wc,EAAK8wc,UACjBl+T,EAAQ5yI,EAAK4yI,MAEX2xD,EAAS,CACX7uO,KAAMA,EACNkuT,MAHQ5jR,EAAK4jR,MAIb5lT,MAAOA,EACPpL,IAAKA,EACLod,IAAKA,EACL4iK,MAAOA,GAELw2F,EAAY57B,GAAO56O,EAAKod,GAC5Bsge,EAAYtge,GAAOu0N,EACnBmpB,EAAY0b,GAAa7kC,EAGzBA,EAAO9oN,OAAS60d,EAAYQ,GACxBvsQ,EAAO9oN,SACT8oN,EAAO9oN,OAAOw2B,SAAWsyL,EAAO9oN,OAAOw2B,UAAY,GACnDsyL,EAAO9oN,OAAOw2B,SAAStiD,KAAK40O,IAE1B0rQ,GACFA,EAAc1rQ,EAAQ54I,EAE1B,GAAG,CACDwkZ,eAAgBE,EAChBD,iBAAkBA,EAClBv+F,WAAYA,IAEVq+F,GACFA,EAAkBvkZ,GAEbA,CACT,CAIO,SAASulZ,GAAiBt+e,EAAKs7P,GACpC,IAAIurO,EAAevrO,EAAMurO,aACvB/8O,EAAewR,EAAMxR,aACrBy0P,EAAajjP,EAAMijP,WACnBC,EAAcljP,EAAMkjP,YACpBC,EAAcnjP,EAAMmjP,YACpBC,EAAkBpjP,EAAMojP,gBACxBC,EAAkBrjP,EAAMqjP,gBACxBC,EAAetjP,EAAMsjP,aAEnBjtQ,EAASoqQ,GADGzgP,EAAMR,YACc96P,GAiBpC,MAhBoB,CAClBq9O,SAAUr9O,EACV+wS,UAAyC,IAA/B81L,EAAajne,QAAQI,GAC/Bg/C,UAAyC,IAA/B8qM,EAAalqP,QAAQI,GAC/Bk4N,QAAqC,IAA7BqmR,EAAW3+e,QAAQI,GAC3BktI,SAAuC,IAA9BsxW,EAAY5+e,QAAQI,GAC7Bg+C,SAAuC,IAA9Bygc,EAAY7+e,QAAQI,GAC7B6+e,aAA+C,IAAlCH,EAAgB9+e,QAAQI,GACrCod,IAAKjb,OAAOwvO,EAASA,EAAOv0N,IAAM,IAIlC0he,SAAUH,IAAoB3+e,GAAwB,IAAjB4+e,EACrCG,eAAgBJ,IAAoB3+e,IAAyB,IAAlB4+e,EAC3CI,kBAAmBL,IAAoB3+e,GAAwB,IAAjB4+e,EAGlD,CACO,SAASK,GAA4Blsc,GAC1C,IAAIt7B,EAAOs7B,EAAMt7B,KACfs5R,EAAWh+P,EAAMg+P,SACjB/xP,EAAWjM,EAAMiM,SACjBhB,EAAUjL,EAAMiL,QAChBk6K,EAASnlL,EAAMmlL,OACfhrF,EAAUn6F,EAAMm6F,QAChB2xW,EAAc9rc,EAAM8rc,YACpBC,EAAW/rc,EAAM+rc,SACjBC,EAAiBhsc,EAAMgsc,eACvBC,EAAoBjsc,EAAMisc,kBAC1B5he,EAAM21B,EAAM31B,IACZ4Q,EAAS+kB,EAAM/kB,OACfqvN,EAAWtqM,EAAMsqM,SACf6hQ,EAAYxrQ,GAAcA,GAAc,CAAC,EAAGj8N,GAAO,CAAC,EAAG,CACzDs5R,SAAUA,EACV/xP,SAAUA,EACVhB,QAASA,EACTk6K,OAAQA,EACRhrF,QAASA,EACT2xW,YAAaA,EACbC,SAAUA,EACVC,eAAgBA,EAChBC,kBAAmBA,EACnB5he,IAAKA,EACL4Q,OAAQA,EACRhuB,IAAKq9O,IAUP,MARM,UAAW6hQ,GACfh+e,OAAOgN,eAAegxe,EAAW,QAAS,CACxCx2e,IAAK,WAEH,OADAoxN,IAAQ,EAAO,yIACR/mL,CACT,IAGGmsc,CACT,CC5VA,IAAIh2Q,GAAY,CAAC,WAAY,YAAa,QAAS,WAAY,iBAAkB,oBAAqB,SAAU,UAAW,QAAS,WAAY,WAAY,UAAW,cAAe,UAAW,SAAU,SAAU,OAAQ,cAAe,cAQxOi2Q,GAAY,OACZC,GAAa,QAEbC,GAAW,SAAkBtsc,GAC/B,IAAIusc,EAAuBC,EACvBliQ,EAAWtqM,EAAMsqM,SACnB56O,EAAYswC,EAAMtwC,UAClBjC,EAAQuyC,EAAMvyC,MACds+e,EAAW/rc,EAAM+rc,SACjBC,EAAiBhsc,EAAMgsc,eACvBC,EAAoBjsc,EAAMisc,kBAC1BQ,EAASzsc,EAAMysc,OACf3D,EAAU9oc,EAAM8oc,QAChBC,EAAQ/oc,EAAM+oc,MACd/qM,EAAWh+P,EAAMg+P,SACjB/xP,EAAWjM,EAAMiM,SACjBhB,EAAUjL,EAAMiL,QAChB6gc,EAAc9rc,EAAM8rc,YACpB3xW,EAAUn6F,EAAMm6F,QAChBgwQ,EAASnqW,EAAMmqW,OACflvX,EAAS+kB,EAAM/kB,OACfvW,EAAOs7B,EAAMt7B,KACb05P,EAAcp+N,EAAMo+N,YACpBsG,EAAa1kO,EAAM0kO,WACnBm4B,EAAa36D,GAAyBliM,EAAOm2L,IAC3C7nK,EAAU0tJ,EAAAA,WAAiB2sR,IAC3B+D,EAAkB1wR,EAAAA,WAAiB4sR,IACnC+D,EAAkB3wR,EAAAA,OAAa,MAEjC8nB,EAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnD4wR,EAAoB9oQ,EAAiB,GACrC+oQ,EAAuB/oQ,EAAiB,GAGtC19J,EAAa41I,EAAAA,SAAc,WAC7B,IAAI8wR,EACJ,SAAUx+a,EAAQniB,UAAYnM,EAAMmM,UAAuE,QAA1D2gc,EAAwBJ,EAAgBK,oBAAoD,IAA1BD,GAAoCA,EAAsB5kf,KAAKwkf,EAAiBhoe,GACrM,GAAG,CAAC4pD,EAAQniB,SAAUnM,EAAMmM,SAAUugc,EAAgBK,aAAcroe,IAChEsoe,EAAchxR,EAAAA,SAAc,WAE9B,SAAK1tJ,EAAQ2+a,YAAiC,IAApBjtc,EAAMitc,YAGzB3+a,EAAQ2+a,SACjB,GAAG,CAAC3+a,EAAQ2+a,UAAWjtc,EAAMitc,YASzBC,EAAU,SAAiBv3d,GACzBywD,GAGC4ma,IAAehtc,EAAMmtc,iBAG1B7+a,EAAQ8+a,YAAYz3d,EAAGu2d,GAA4Blsc,IAASiL,EAC9D,EAGIoic,EAAerxR,EAAAA,SAAc,WAE/B,MAA0B,mBAAf0oD,EACFA,EAEFp2M,EAAQo2M,UACjB,GAAG,CAACA,EAAYp2M,EAAQo2M,aACpB4oO,EAAkB,SAAyB33d,GAE7C24C,EAAQi/a,YAAY53d,EAAGu2d,GAA4Blsc,IAC/Cqtc,EA3BS,SAAkB13d,GAC3BywD,GAGJ9X,EAAQk/a,aAAa73d,EAAGu2d,GAA4Blsc,GACtD,CAuBI6kO,CAASlvP,GAETu3d,EAAQv3d,EAEZ,EACI83d,EAAwB,SAA+B93d,GACzD24C,EAAQo/a,kBAAkB/3d,EAAGu2d,GAA4Blsc,GAC3D,EACIo1M,EAAe,SAAsBz/N,GACvC24C,EAAQq/a,iBAAiBh4d,EAAGu2d,GAA4Blsc,GAC1D,EACIq1M,EAAe,SAAsB1/N,GACvC24C,EAAQs/a,iBAAiBj4d,EAAGu2d,GAA4Blsc,GAC1D,EACIs+N,EAAgB,SAAuB3oP,GACzC24C,EAAQu/a,kBAAkBl4d,EAAGu2d,GAA4Blsc,GAC3D,EAGI8tc,EAAc9xR,EAAAA,SAAc,WAC9B,SAAU1tJ,EAAQqmR,WAAermR,EAAQqmR,UAAUo5J,gBAAiBz/a,EAAQqmR,UAAUo5J,cAAcrpe,GACtG,GAAG,CAAC4pD,EAAQqmR,UAAWjwU,IA0CnBuic,EAAW,SAAkBtxb,GAC3BwkH,GAGJ7rE,EAAQ0/a,aAAar4d,EAAGu2d,GAA4Blsc,GACtD,EAGI+2Z,EAAc/6O,EAAAA,SAAc,WAC9B,IACE1vK,GADS08b,GAAU16a,EAAQy5L,YAAazd,IAAa,CAAC,GACtCh+L,SAClB,OAAOpyC,SAASoyC,GAAY,IAAIhjD,OAClC,GAAG,CAACglE,EAAQy5L,YAAazd,IAGrB2jQ,EAAiBjyR,EAAAA,SAAc,WACjC,OAAe,IAAXywR,IAGGA,IAAWn+a,EAAQ4/a,WAAan3C,GAAezoY,EAAQ4/a,UAAYluc,EAAMmlL,SAAW4xO,EAC7F,GAAG,CAAC01C,EAAQn+a,EAAQ4/a,SAAUn3C,EAAa/2Z,EAAMmlL,SAGjDnJ,EAAAA,WAAgB,WAEV7hF,GAI4B,oBAArB7rE,EAAQ4/a,WAA2BlwM,GAAaiwM,GAAmBjuc,EAAMmlL,QAGlF72J,EAAQ6/a,WAAWjC,GAA4Blsc,GAEnD,GAAG,CAACm6F,EAAS7rE,EAAQ4/a,SAAU5/a,EAAQ6/a,WAAYnwM,EAAUiwM,EAAgBjuc,IAG7E,IAAIouc,EAAkBpyR,EAAAA,SAAc,WAClC,IAAIqyR,EACJ,OAAmD,QAA5CA,EAAqB//a,EAAQqmR,iBAA8C,IAAvB05J,GAAiCA,EAAmBj0S,KAG3F4hB,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAW,GAAG/C,OAAO2hE,EAAQmzK,UAAW,oBACvCnzK,EAAQqmR,UAAUv6I,MAJZ,IAKX,GAAG,CAAC9rI,EAAQqmR,YAGR25J,EAAwB,SAA+BC,GACzD,IAAIC,EAAexuc,EAAMwuc,cAAgBlgb,EAAQkgb,aAEjD,MAA4B,oBAAjBA,EACFA,EAAa7tQ,GAAcA,GAAc,CAAC,EAAG3gM,GAAQ,CAAC,EAAG,CAC9Dysc,OAAQ8B,KAGLC,CACT,EAmBIC,EAAezyR,EAAAA,SAAc,WAC/B,IAAKgxR,EACH,OAAO,KAIT,IAAI0B,EAAiC,mBAAhB1B,EAA4BA,EAAc,KAC/D,OAAoBhxR,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAWisN,KAAW,GAAGhvN,OAAO2hE,EAAQmzK,UAAW,cAAczhI,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO2hE,EAAQmzK,UAAW,qBAAsBx2L,GAAU,GAAGt+C,OAAO2hE,EAAQmzK,UAAW,4BAA6Bx2L,GAAW6gc,GAAc,GAAGn/e,OAAO2hE,EAAQmzK,UAAW,sBAAuBr7J,GAAcpmC,EAAMmtc,kBAC7U7wa,QAAS4wa,EACT32P,KAAM,WACN,eAAgBu1P,EAAc,QAAU7gc,EACxC,gBAAiBm7B,GAAcpmC,EAAMmtc,gBACrC,aAAc,UAAUxgf,OAA8B,kBAAhBqzC,EAAM9L,MAAqB8L,EAAM9L,MAAQ,cAC9Ew6c,EACL,GAAG,CAAC1B,EAAa/hc,EAAS6gc,EAAa1la,EAAYpmC,EAAMmtc,gBAAiBntc,EAAM9L,QAG5Ey6c,EAAY3yR,EAAAA,SAAc,WAC5B,OAAIiyR,EACK,KAEFjwM,EAAWouM,GAAYC,EAChC,GAAG,CAAC4B,EAAgBjwM,IAGhBloD,EAAW95B,EAAAA,SAAc,WAC3B,OAAoBA,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAWisN,KAAW,GAAGhvN,OAAO2hE,EAAQmzK,UAAW,YAAa,GAAG90O,OAAO2hE,EAAQmzK,UAAW,WAAW90O,OAAOgif,GAAa,SAAS3uY,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO2hE,EAAQmzK,UAAW,iBAAkBtnG,KAE5M,GAAG,CAAC7rE,EAAQmzK,UAAWktQ,EAAWx0W,IAG9By0W,EAAoB5yR,EAAAA,SAAc,WACpC,IAAI6yR,EAAgB30e,QAAQo0D,EAAQqmR,WAGpC,OADqB30S,EAAMmM,UAAY0ic,GAAiBvgb,EAAQs9a,kBAAoBthQ,EAI7Eh8K,EAAQwgb,oBAAoB,CACjCjD,aAAcv9a,EAAQu9a,aACtBkD,gBAAiBzgb,EAAQygb,gBACzBnb,OAAQtla,EAAQsla,OAChBnyP,UAAWnzK,EAAQmzK,UACnB77G,UAAWt3D,EAAQs3D,YAPZ,IASX,GAAG,CAACt3D,EAAQu9a,aAAcv9a,EAAQygb,gBAAiBzgb,EAAQsla,OAAQtla,EAAQmzK,UAAWnzK,EAAQs3D,UAAWt3D,EAAQqmR,UAAWrmR,EAAQs9a,gBAAiBt9a,EAAQwgb,sBAGzJp9F,EAAe11L,EAAAA,SAAc,WAC/B,IAKIgzR,EAWAxsO,EAhBAysO,EAAejvc,EAAM9L,MACvBA,OAAyB,IAAjB+6c,EAxQK,MAwQoCA,EAC/CC,EAAY,GAAGvif,OAAO2hE,EAAQmzK,UAAW,yBAI7C,GAAInzK,EAAQi9X,SAAU,CACpB,IAAI4jD,EAAcnvc,EAAMo6J,MAAQ9rI,EAAQ8rI,KACxC40S,EAAQG,EAA2BnzR,EAAAA,cAAoB,OAAQ,CAC7DtsN,UAAWisN,KAAW,GAAGhvN,OAAO2hE,EAAQmzK,UAAW,YAAa,GAAG90O,OAAO2hE,EAAQmzK,UAAW,sBACrE,oBAAhB0tQ,EAA6BA,EAAYnvc,GAASmvc,GAAer5P,CAC7E,MAAWxnL,EAAQ4/a,UAAY/zW,IAC7B60W,EAAQl5P,GAYV,OANE0sB,EADmB,oBAAVtuO,EACGA,EAAMxvB,GACT4pD,EAAQ8gb,YACL9gb,EAAQ8gb,YAAY1qe,GAEpBwvB,EAEM8nL,EAAAA,cAAoB,OAAQ,CAC9Ct8K,IAAKitc,EACLz4c,MAAwB,kBAAVA,EAAqBA,EAAQ,GAC3CxkC,UAAWisN,KAAWuzR,EAAW,GAAGvif,OAAOuif,EAAW,KAAKvif,OAAOgif,GAAa,WAAW3uY,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO2hE,EAAQmzK,UAAW,mBAAoBr7J,IAAen6B,GAAY2gc,KAC1Lx3P,aAAcA,EACdC,aAAcA,EACdipB,cAAeA,EACfhiM,QAASgxa,EACT+B,cAAe5B,GACduB,EAAoBhzR,EAAAA,cAAoB,OAAQ,CACjDtsN,UAAW,GAAG/C,OAAO2hE,EAAQmzK,UAAW,WACvC+gC,GAAYosO,EACjB,GAAG,CAACtgb,EAAQmzK,UAAWnzK,EAAQi9X,SAAUvrZ,EAAOsuB,EAAQ8rI,KAAM07C,EAAUxnL,EAAQ8gb,YAAa1qe,EAAMiqe,EAAWv5P,EAAcC,EAAcipB,EAAegvO,EAAiBG,IACtKzpG,EAA2B1kD,GAAUziD,EAAY,CACnD4iD,MAAM,EACN/6U,MAAM,IAGNuoK,GADU+7T,GAAU16a,EAAQy5L,YAAazd,IAAa,CAAC,GACzCr9D,MACZqiU,EAAYvG,EAAMA,EAAMz/e,OAAS,GACjCimf,GAA4Bnpa,GAAc0na,EAC1Cr3F,GAAWnoV,EAAQkhb,kBAAoBllQ,EACvCmlQ,QAA8Br6e,IAAfsvQ,EAA2B,CAC5C,kBAAmBA,QACjBtvQ,EACJ,OAAoB4mN,EAAAA,cAAoB,MAAOoL,GAAS,CACtD1nL,IAAKyqW,EACL5zJ,KAAM,WACN,gBAAiBk2P,OAASr3e,EAAY4oS,EACtCtuS,UAAWisN,KAAWjsN,EAAW,GAAG/C,OAAO2hE,EAAQmzK,UAAW,cAAe+qQ,EAAe,CAAC,GAAGxsY,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgBwsY,EAAc,GAAG7/e,OAAO2hE,EAAQmzK,UAAW,sBAAuBr7J,GAAa,GAAGz5E,OAAO2hE,EAAQmzK,UAAW,uBAAuB90O,OAAOqxS,EAAW,OAAS,UAAWyuM,GAAS,GAAG9/e,OAAO2hE,EAAQmzK,UAAW,8BAA+Bx2L,GAAU,GAAGt+C,OAAO2hE,EAAQmzK,UAAW,oCAAqCqqQ,GAAc,GAAGn/e,OAAO2hE,EAAQmzK,UAAW,sBAAuBx1L,GAAW,GAAGt/C,OAAO2hE,EAAQmzK,UAAW,qBAAsBtnG,GAAU,GAAGxtI,OAAO2hE,EAAQmzK,UAAW,oBAAqBxmN,GAAS,GAAGtuB,OAAO2hE,EAAQmzK,UAAW,uBAAwB6tQ,GAAY,GAAG3if,OAAO2hE,EAAQmzK,UAAW,uBAAwBqsQ,GAAc,WAAYr3F,KAAWz2S,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgBwsY,EAAc,cAAel+a,EAAQohb,gBAAkBplQ,GAAW,iBAAkBh8K,EAAQqhb,mBAAqBrlQ,GAAW,aAAclkK,GAAc2la,GAAW,qBAAsB3la,GAAc4la,GAAiB,wBAAyB5la,GAAc6la,GAAoB,cAAoE,QAApDM,EAAwBj+a,EAAQshb,sBAAsD,IAA1BrD,OAAmC,EAASA,EAAsBrkf,KAAKomE,EAAS49a,GAA4Blsc,KAAU,GAAGrzC,OAAO2hE,EAAQmzK,UAAW,kBAAmBwsQ,KAC/gDxgf,MAAOA,EAGPknV,UAAW46J,EACXM,YAAaN,EAhOG,SAAqB55d,GACrCA,EAAEojC,kBACF8zb,GAAqB,GACrBv+a,EAAQwhb,gBAAgBn6d,EAAGqqB,GAC3B,IAGErqB,EAAE+mC,aAAa4rC,QAAQ,aAAc,GACvC,CAAE,MAAOynZ,GACP,CAEJ,OAqNwD36e,EAGtD46e,YAAalC,EAvNG,SAAqBn4d,GACrCA,EAAEukC,iBACFvkC,EAAEojC,kBACFuV,EAAQ2hb,gBAAgBt6d,EAAGqqB,EAC7B,OAmN2C5qC,EACzC86e,WAAYpC,EAnNG,SAAoBn4d,GACnCA,EAAEukC,iBACFvkC,EAAEojC,kBACFuV,EAAQ6hb,eAAex6d,EAAGqqB,EAC5B,OA+MyC5qC,EACvCg7e,YAAatC,EA/MG,SAAqBn4d,GACrCA,EAAEojC,kBACFuV,EAAQ+hb,gBAAgB16d,EAAGqqB,EAC7B,OA4M2C5qC,EACzCk7e,OAAQxC,EAvMG,SAAgBn4d,GAC3BA,EAAEukC,iBACFvkC,EAAEojC,kBACF8zb,GAAqB,GACrBv+a,EAAQiib,WAAW56d,EAAGqqB,EACxB,OAkMiC5qC,EAC/Bo7e,UAAW1C,EA7MG,SAAmBn4d,GACjCA,EAAEojC,kBACF8zb,GAAqB,GACrBv+a,EAAQmib,cAAc96d,EAAGqqB,EAC3B,OAyMuC5qC,EACrCgpQ,YAAaA,GACZqxO,GAAczrG,GAAwChoL,EAAAA,cAAoB6sR,GAAQ,CACnFpnQ,UAAWnzK,EAAQmzK,UACnBx0D,MAAOA,EACP67T,QAASA,EACTC,MAAOA,IACLqF,EA3IiB,WACnB,GAAIH,EAAgB,CAElB,IAAIyC,EAAmBpC,GAAsB,GAC7C,OAA4B,IAArBoC,EAA0C10R,EAAAA,cAAoB,OAAQ,CAC3EtsN,UAAWisN,KAAW,GAAGhvN,OAAO2hE,EAAQmzK,UAAW,aAAc,GAAG90O,OAAO2hE,EAAQmzK,UAAW,oBAC7FivQ,GAAoB,IACzB,CACA,IAAIC,EAAkBrC,GAAsB,GAC5C,OAA2B,IAApBqC,EAAyC30R,EAAAA,cAAoB,OAAQ,CAC1E1/I,QAAS2qY,EACTv3c,UAAWisN,KAAW,GAAGhvN,OAAO2hE,EAAQmzK,UAAW,aAAc,GAAG90O,OAAO2hE,EAAQmzK,UAAW,cAAc90O,OAAOqxS,EAAWouM,GAAYC,MACzIsE,GAAmB,IACxB,CA8HqBC,GAAkBnC,EAAc/8F,EACvD,EACA46F,GAAS/C,WAAa,EAItB,YCrVO,SAASsH,GAAOjoP,EAAM7hQ,GAC3B,IAAK6hQ,EAAM,MAAO,GAClB,IAAI34P,EAAQ24P,EAAKz7P,QACbkL,EAAQpI,EAAMpD,QAAQ9F,GAI1B,OAHIsR,GAAS,GACXpI,EAAMqoC,OAAOjgC,EAAO,GAEfpI,CACT,CACO,SAAS6gf,GAAOloP,EAAM7hQ,GAC3B,IAAIkJ,GAAS24P,GAAQ,IAAIz7P,QAIzB,OAH8B,IAA1B8C,EAAMpD,QAAQ9F,IAChBkJ,EAAMjG,KAAKjD,GAENkJ,CACT,CACO,SAAS8gf,GAAS1me,GACvB,OAAOA,EAAI/I,MAAM,IACnB,CACO,SAAS0ve,GAAoBC,EAAalpP,GAG/C,IAAImpP,EAAmB,GAYvB,OAVA,SAASpsF,KACIltZ,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,IAC1E3O,SAAQ,SAAUmqJ,GACrB,IAAInmJ,EAAMmmJ,EAAKnmJ,IACbq/C,EAAW8mG,EAAK9mG,SAClB4kc,EAAiBlnf,KAAKiD,GACtB63Z,EAAIx4W,EACN,GACF,CACAw4W,CAVakkF,GAAUjhP,EAAakpP,GAUzB3kc,UACJ4kc,CACT,CACO,SAASC,GAAYC,GAC1B,GAAIA,EAAet7d,OAAQ,CACzB,IAAIu7d,EAASN,GAASK,EAAe/me,KACrC,OAAOhb,OAAOgif,EAAOA,EAAO/nf,OAAS,MAAQ8nf,EAAet7d,OAAOw2B,SAAShjD,OAAS,CACvF,CACA,OAAO,CACT,CAOO,SAASgof,GAAiB/vb,EAAOgwb,EAAeC,EAAiB5d,EAAQ6d,EAAoBC,EAAWC,EAAgB5pP,EAAa6pP,EAAYhsX,GACtJ,IAAIisX,EACAt2b,EAAUgG,EAAMhG,QAClBC,EAAU+F,EAAM/F,QACds2b,EAAwBvwb,EAAMruD,OAAOrK,wBACvCY,EAAMqof,EAAsBrof,IAC5BK,EAASgof,EAAsBhof,OAG7Biof,IADuC,QAAdnsX,GAAuB,EAAI,MAA+B,OAAvB6rX,QAAsD,IAAvBA,OAAgC,EAASA,EAAmB3+d,IAAM,GAAKyoC,GACpH,IAAMq4a,EAGpDoe,EAAqBJ,EAAWt4e,QAAO,SAAUrM,GACnD,IAAIglf,EACJ,OAAiD,QAAzCA,EAAmBlqP,EAAY96P,UAAuC,IAArBglf,GAAkF,QAAlDA,EAAmBA,EAAiB3lc,gBAA2C,IAArB2lc,OAA8B,EAASA,EAAiB3of,MAC7M,IAGI4of,EAAyBlJ,GAAUjhP,EAAaypP,EAAgBlnQ,UACpE,GAAI9uL,EAAU/xD,EAAMK,EAAS,EAAG,CAE9B,IAAIqof,EAAYR,EAAej4e,WAAU,SAAU04e,GACjD,OAAOA,EAAcnlf,MAAQilf,EAAuBjlf,GACtD,IAEIolf,EAAcV,EADEQ,GAAa,EAAI,EAAIA,EAAY,GACLllf,IAChDilf,EAAyBlJ,GAAUjhP,EAAasqP,EAClD,CACA,IAAIC,EAA6BJ,EAAuBjlf,IACpDslf,EAAyBL,EACzBtG,EAAkBsG,EAAuBjlf,IACzC4+e,EAAe,EACfkD,EAAkB,EAGtB,IAAKiD,EAAmB15e,SAASg6e,GAC/B,IAAK,IAAIjpf,EAAI,EAAGA,EAAI0of,GACdZ,GAAYe,GADsB7of,GAAK,EAEzC6of,EAAyBA,EAAuBp8d,OAChDi5d,GAAmB,EAMzB,IAAIyD,EAAuBjB,EAAc7se,KACrC+te,EAAuBP,EAAuBnif,KAC9C2if,GAAc,EA2ElB,OAhIK,SAAsBtB,GAC3B,IAAIC,EAASN,GAASK,EAAe/me,KACrC,OAA6C,IAAtChb,OAAOgif,EAAOA,EAAO/nf,OAAS,GACvC,CAmDMqpf,CAAaT,IAA4D,IAAjCA,EAAuBjlU,OAAezxH,EAAU/xD,EAAMK,EAAS,GAAK4nf,EAAU,CACxHkB,SAAUJ,EACVK,SAAUJ,EACV5G,cAAe,KACXqG,EAAuBjlf,MAAQukf,EAAgBlnQ,SAEnDuhQ,GAAgB,GACN0G,EAAuBjmc,UAAY,IAAIhjD,QAAU0of,EAAmB15e,SAASsze,GAGnF8F,EAAU,CACZkB,SAAUJ,EACVK,SAAUJ,EACV5G,aAAc,IAEdA,EAAe,EAEf6G,GAAc,EAEa,IAApB3D,EACLgD,GAAsB,IAKpBL,EAAU,CACZkB,SAAUJ,EACVK,SAAUJ,EACV5G,aAAc,IAEdA,EAAe,EAEf6G,GAAc,EAUZhB,EAAU,CACZkB,SAAUJ,EACVK,SAAUJ,EACV5G,aAAc,IAEdA,EAAe,EACN6F,EAAU,CACnBkB,SAAUJ,EACVK,SAAUJ,EACV5G,aAAc,IAEdA,EAAe,EAEf6G,GAAc,EASdhB,EAAU,CACZkB,SAAUJ,EACVK,SAAUJ,EACV5G,aAAc,IAEdA,EAAe,EAEf6G,GAAc,EAGX,CACL7G,aAAcA,EACdkD,gBAAiBA,EACjBW,cAAewC,EAAuBjlf,IACtC6lf,cAAeZ,EAAuB7ne,IACtCuhe,gBAAiBA,EACjB+D,iBAAmC,IAAjB9D,EAAqB,MAAoE,QAA3DgG,EAAwBK,EAAuBp8d,cAA8C,IAA1B+7d,OAAmC,EAASA,EAAsB5kf,MAAQ,KAC7Lylf,YAAaA,EAEjB,CAQO,SAASK,GAAiBh8P,EAAc/2M,GAC7C,GAAK+2M,EAEL,OADe/2M,EAAMo8B,SAEZ26K,EAAa5pP,QAElB4pP,EAAaztP,OACR,CAACytP,EAAa,IAEhBA,CACT,CAuBO,SAASi8P,GAAiB5kf,GAC/B,IAAKA,EACH,OAAO,KAIT,IAAI6kf,EACJ,GAAIjqf,MAAMqR,QAAQjM,GAEhB6kf,EAAW,CACTvH,YAAat9e,EACbu9e,qBAAiBv2e,OAEd,IAAsB,YAAlBzK,EAAAA,GAAAA,GAAQyD,GAOjB,OADA24N,IAAQ,EAAO,8CACR,KANPksR,EAAW,CACTvH,YAAat9e,EAAK68C,cAAW71C,EAC7Bu2e,gBAAiBv9e,EAAK09e,kBAAe12e,EAKzC,CACA,OAAO69e,CACT,CAOO,SAASC,GAAoBC,EAASprP,GAC3C,IAAI+rO,EAAe,IAAI7wb,IACvB,SAASmwc,EAAUnmf,GACjB,IAAI6me,EAAa94d,IAAI/N,GAArB,CACA,IAAI2xO,EAASoqQ,GAAUjhP,EAAa96P,GACpC,GAAK2xO,EAAL,CACAk1P,EAAan2c,IAAI1wB,GACjB,IAAI6oB,EAAS8oN,EAAO9oN,OACX8oN,EAAO7uO,KACPo8C,UACLr2B,GACFs9d,EAAUt9d,EAAO7oB,IANA,CAFc,CAUnC,CAIA,OAHCkmf,GAAW,IAAIlqf,SAAQ,SAAUgE,GAChCmmf,EAAUnmf,EACZ,IACOk+O,GAAmB2oP,EAC5B,CC1RA,SAASuf,GAAsB1H,EAAiBD,GAC9C,IAAI4H,EAAe,IAAIrwc,IAMvB,OALA0oc,EAAgB1if,SAAQ,SAAUgE,GAC3By+e,EAAY1we,IAAI/N,IACnBqmf,EAAa31d,IAAI1wB,EAErB,IACOqmf,CACT,CACO,SAASC,GAAgBxjf,GAC9B,IAAIqjJ,EAAOrjJ,GAAQ,CAAC,EAClBo8C,EAAWinG,EAAKjnG,SAChBghc,EAAkB/5V,EAAK+5V,gBACvBF,EAAY75V,EAAK65V,UACnB,SAAU9gc,IAAYghc,KAAkC,IAAdF,CAC5C,CAqJO,SAASuG,GAAaL,EAASloc,EAAS88M,EAAa0rP,GAC1D,IACIC,EADAC,EAAkB,GAGpBD,EADED,GAG0BF,GAI9B,IAyBIn6e,EAzBAhL,EAAO,IAAI60C,IAAIkwc,EAAQ75e,QAAO,SAAUrM,GAC1C,IAAI2mf,IAAc5K,GAAUjhP,EAAa96P,GAIzC,OAHK2mf,GACHD,EAAgB3pf,KAAKiD,GAEhB2mf,CACT,KACIC,EAAgB,IAAI35c,IACpB45c,EAAW,EAuBf,OApBA3lf,OAAOC,KAAK25P,GAAa9+P,SAAQ,SAAUgE,GACzC,IAAI2xO,EAASmpB,EAAY96P,GACrBggL,EAAQ2xD,EAAO3xD,MACf8mU,EAAWF,EAAcl+e,IAAIs3K,GAC5B8mU,IACHA,EAAW,IAAI9wc,IACf4wc,EAAc/hf,IAAIm7K,EAAO8mU,IAE3BA,EAASp2d,IAAIihN,GACbk1Q,EAAWnqf,KAAKwhB,IAAI2oe,EAAU7mU,EAChC,IACA85C,IAAS4sR,EAAgBrqf,OAAQ,6BAA6BqD,OAAOgnf,EAAgBxmf,MAAM,EAAG,KAAKqI,KAAI,SAAUvI,GAC/G,MAAO,IAAIN,OAAOM,EAAK,IACzB,IAAGG,KAAK,QAGNgM,GADc,IAAZ6xC,EAtLN,SAA0B78C,EAAMylf,EAAeC,EAAUJ,GAKvD,IAJA,IAAIhI,EAAc,IAAIzoc,IAAI70C,GACtBu9e,EAAkB,IAAI1oc,IAGjBgqI,EAAQ,EAAGA,GAAS6mU,EAAU7mU,GAAS,GAC/B4mU,EAAcl+e,IAAIs3K,IAAU,IAAIhqI,KACtCh6C,SAAQ,SAAU21O,GACzB,IAAI3xO,EAAM2xO,EAAO3xO,IACf8C,EAAO6uO,EAAO7uO,KACdikf,EAAmBp1Q,EAAOtyL,SAC1BA,OAAgC,IAArB0nc,EAA8B,GAAKA,EAC5CtI,EAAY1we,IAAI/N,KAASymf,EAA0B3jf,IACrDu8C,EAAShzC,QAAO,SAAU26e,GACxB,OAAQP,EAA0BO,EAAYlkf,KAChD,IAAG9G,SAAQ,SAAUgrf,GACnBvI,EAAY/td,IAAIs2d,EAAYhnf,IAC9B,GAEJ,IAKF,IADA,IAAIinf,EAAc,IAAIjxc,IACbkxc,EAASL,EAAUK,GAAU,EAAGA,GAAU,GACjCN,EAAcl+e,IAAIw+e,IAAW,IAAIlxc,KACvCh6C,SAAQ,SAAU21O,GAC1B,IAAI9oN,EAAS8oN,EAAO9oN,OAClB/lB,EAAO6uO,EAAO7uO,KAGhB,IAAI2jf,EAA0B3jf,IAAU6uO,EAAO9oN,SAAUo+d,EAAYl5e,IAAI4jO,EAAO9oN,OAAO7oB,KAKvF,GAAIymf,EAA0B90Q,EAAO9oN,OAAO/lB,MAC1Cmkf,EAAYv2d,IAAI7H,EAAO7oB,SADzB,CAIA,IAAImnf,GAAa,EACbC,GAAiB,GACpBv+d,EAAOw2B,UAAY,IAAIhzC,QAAO,SAAU26e,GACvC,OAAQP,EAA0BO,EAAYlkf,KAChD,IAAG9G,SAAQ,SAAU47K,GACnB,IAAI53K,EAAM43K,EAAM53K,IACZg+C,EAAUygc,EAAY1we,IAAI/N,GAC1Bmnf,IAAenpc,IACjBmpc,GAAa,GAEVC,IAAmBppc,IAAW0gc,EAAgB3we,IAAI/N,KACrDonf,GAAiB,EAErB,IACID,GACF1I,EAAY/td,IAAI7H,EAAO7oB,KAErBonf,GACF1I,EAAgBhud,IAAI7H,EAAO7oB,KAE7Binf,EAAYv2d,IAAI7H,EAAO7oB,IArBvB,CAsBF,IAEF,MAAO,CACLy+e,YAAa1if,MAAM8J,KAAK44e,GACxBC,gBAAiB3if,MAAM8J,KAAKugf,GAAsB1H,EAAiBD,IAEvE,CAoHa4I,CAAiBlmf,EAAMylf,EAAeC,EAAUJ,GAjH7D,SAA2Btlf,EAAMmmf,EAAUV,EAAeC,EAAUJ,GAKlE,IAJA,IAAIhI,EAAc,IAAIzoc,IAAI70C,GACtBu9e,EAAkB,IAAI1oc,IAAIsxc,GAGrBtnU,EAAQ,EAAGA,GAAS6mU,EAAU7mU,GAAS,GAC/B4mU,EAAcl+e,IAAIs3K,IAAU,IAAIhqI,KACtCh6C,SAAQ,SAAU21O,GACzB,IAAI3xO,EAAM2xO,EAAO3xO,IACf8C,EAAO6uO,EAAO7uO,KACdykf,EAAoB51Q,EAAOtyL,SAC3BA,OAAiC,IAAtBkoc,EAA+B,GAAKA,EAC5C9I,EAAY1we,IAAI/N,IAAS0+e,EAAgB3we,IAAI/N,IAASymf,EAA0B3jf,IACnFu8C,EAAShzC,QAAO,SAAU26e,GACxB,OAAQP,EAA0BO,EAAYlkf,KAChD,IAAG9G,SAAQ,SAAUgrf,GACnBvI,EAAYx0b,OAAO+8b,EAAYhnf,IACjC,GAEJ,IAIF0+e,EAAkB,IAAI1oc,IAEtB,IADA,IAAIixc,EAAc,IAAIjxc,IACbwxc,EAAUX,EAAUW,GAAW,EAAGA,GAAW,GACnCZ,EAAcl+e,IAAI8+e,IAAY,IAAIxxc,KACxCh6C,SAAQ,SAAU21O,GAC3B,IAAI9oN,EAAS8oN,EAAO9oN,OAClB/lB,EAAO6uO,EAAO7uO,KAGhB,IAAI2jf,EAA0B3jf,IAAU6uO,EAAO9oN,SAAUo+d,EAAYl5e,IAAI4jO,EAAO9oN,OAAO7oB,KAKvF,GAAIymf,EAA0B90Q,EAAO9oN,OAAO/lB,MAC1Cmkf,EAAYv2d,IAAI7H,EAAO7oB,SADzB,CAIA,IAAImnf,GAAa,EACbC,GAAiB,GACpBv+d,EAAOw2B,UAAY,IAAIhzC,QAAO,SAAU26e,GACvC,OAAQP,EAA0BO,EAAYlkf,KAChD,IAAG9G,SAAQ,SAAUs/P,GACnB,IAAIt7P,EAAMs7P,EAAMt7P,IACZg+C,EAAUygc,EAAY1we,IAAI/N,GAC1Bmnf,IAAenpc,IACjBmpc,GAAa,GAEVC,IAAmBppc,IAAW0gc,EAAgB3we,IAAI/N,KACrDonf,GAAiB,EAErB,IACKD,GACH1I,EAAYx0b,OAAOphC,EAAO7oB,KAExBonf,GACF1I,EAAgBhud,IAAI7H,EAAO7oB,KAE7Binf,EAAYv2d,IAAI7H,EAAO7oB,IArBvB,CAsBF,IAEF,MAAO,CACLy+e,YAAa1if,MAAM8J,KAAK44e,GACxBC,gBAAiB3if,MAAM8J,KAAKugf,GAAsB1H,EAAiBD,IAEvE,CA+CagJ,CAAkBtmf,EAAM68C,EAAQ0gc,gBAAiBkI,EAAeC,EAAUJ,GAE9Et6e,CACT,CC/MA,MAAMu7e,GAAiC34R,EAAAA,cAAoB,MAC9C44R,GAA4BD,GAAkBv1Y,SAC3D,MACay1Y,GAAsC74R,EAAAA,cAAoB,MAC1D84R,GAAiCD,GAAuBz1Y,SCA/D21Y,GAAqBjkY,IACzB,MAAM,aACJu0K,EAAY,OACZG,GACE10K,EACEkyJ,EAAiB,GAAGqiB,UAC1B,MAAO,CACL,CAACriB,GAAiB70Q,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACxEniH,QAAS,eACT42B,SAAU,EAEV,CAAC,IAAIy9O,SAAuB,CAC1Bp9I,UAAW,OAEb,CAAC,IAAIo9I,WAAyB,CAC5Br0Q,QAAS,QAEX,CAAC,GAAG62R,WAAgBA,iBAAuB,CACzC9xR,OAAQ,GAEV,CAAC,KAAK8xR,+BAAoCA,oBAA0B,CAClEoW,kBAAmB,UAGxB,EAGGo5M,GAAqBlkY,IACzB,MAAM,aACJu0K,EAAY,uBACZ4vN,EAAsB,aACtB5sN,EAAY,UACZ6sN,EAAS,mBACT7tN,EAAkB,kBAClB2L,EAAiB,oBACjB/J,EAAmB,iBACnB4E,EAAgB,YAChBI,EAAW,UACX5nQ,EAAS,yBACTouQ,EAAwB,kBACxB/M,EAAiB,UACjB4O,EAAS,iBACT6+M,EAAgB,SAChBtsN,EAAQ,WACRusN,EAAU,aACVC,EAAY,KACZlqO,GACEr6J,EACEwkY,EAAsB,GAAGjwN,UAEzBkwN,EAAuBpqO,EAAK+pO,GAAWn1R,IAAIorD,EAD9B,GAC+C3qD,IAAI,IAChEg1R,EAAgBrqO,EAAK,GAAG3qD,IAAI00R,GAAW9zU,MAAM,CACjDj2K,MAAM,IAER,MAAO,CACL,CAAC,GAAGk6R,aAAyBl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACnFniH,QAAS,cACTs5R,WAAY,WACZujC,kBAAmB,EACnBC,gBAAiBwpL,EACjB9yd,OAAQ,UACR,eAAgB,CACdspS,gBAAiB,GAGnB,CAAC,IAAIpmC,iBAA6B,CAChCz/J,UAAW,OAEb,aAAc,CACZzjG,OAAQ,cACRiH,MAAO0nF,EAAM42K,mBAEf,WAAY,CACV/4R,QAAS,eACTvE,MAAO,EACPqJ,SAAU,SACVmT,QAAS,UAEX,UAAW,CACTinC,KAAM,EACN6tP,eAAgB,UAGlB,CAAC,GAAGrW,oBAAgC,CAClC7xR,SAAU,WACVq7X,gBAAiB,EACjBlzF,iBAAkB,EAClBvxS,MAAO,OACPN,OAAQ,OACRmzI,OAAQ,GAAG9xI,GAAKk7B,MAAcwiQ,KAAYR,IAC1CmB,aAAc,MACdxhK,WAAY,SACZl0H,QAAS,EACT8S,QAAS,MAEX,CAACy+Q,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACtEt9G,SAAU,WACV7E,QAAS,eACTivM,QAAS,OACTz7K,OAAQ,UACRqqY,UAAW,SACXhjI,aAAc,QAEhB,CAAC,GAAGnE,uCACQiwN,KAAwB,CAClC3qd,YAAa09P,GAEf,CAAC,GAAGhD,2BAAsCiwN,KAAwBnnf,OAAOoD,OAAO,CAAC,EAAGo2R,GAAgB72K,IACpG,CAAC,GAAGu0K,mBAA8BA,4BAAwC,CACxEr9J,WAAY,WAEd,CAAC,GAAGq9J,WAAuB,CACzB,WAAY,CACV9oD,UAAW,aACX/oO,SAAU,WACVq7X,gBAAiB,MACjBlzF,iBAAkB,MAClBhtS,QAAS,QACTvE,MAAOorf,EACP1rf,OAAQ0rf,EACRnvJ,iBAAkBl7E,EAAK,GAAG3qD,IAAI00R,GAAWp2R,KAAK,GAAG19C,MAAM,CACrDj2K,MAAM,IAERqgU,kBAAmBrgD,EAAK,GAAG3qD,IAAI00R,GAAWp2R,KAAK,GAAG19C,MAAM,CACtDj2K,MAAM,IAERyI,gBAAiBwhf,EACjBhgD,iBAAkB,EAClBx5J,kBAAmB,EACnBpS,aAAcgsN,EACd9ta,UAAW,WACX5zE,QAAS,EACT4kD,WAAY,OAAO2uO,KAAsB4B,IACzCriR,QAAS,MAEX21N,UAAW,aACX/oO,SAAU,WACVq7X,gBAAiB,EACjBlzF,iBAAkB,EAClBhtS,QAAS,QACTvE,MAAOorf,EACP1rf,OAAQ0rf,EACR5hf,gBAAiBi6R,EACjBljQ,YAAasjQ,EACb+9B,YAAa,QACbvhS,YAAapE,EACbmjQ,aAAc,MACd9wO,WAAY,OAAOs6O,KAErB,CAAC,GAAG3N,WAAuB,CACzB7xR,SAAU,WACV81H,MAAO,EACP51H,OAAQ,EACRyuB,OAAQ,UACRruB,QAAS,GAGX,CAAC,GAAGuxR,aAAyB,CAC3B,CAACiwN,GAAsB,CACrB3qd,YAAa09P,EACbz0R,gBAAiByhf,EACjB,WAAY,CACV3ta,UAAW,SAASopC,EAAMq6J,KAAKr6J,EAAM+nO,SAAS/5H,IAAIo2R,GAAW9zU,WAC7DttK,QAAS,EACT4kD,WAAY,OAAO2uO,KAAsB4B,OAI/C,CAAC,GAAG5D,cAA0B,CAC5BljQ,OAAQ,cACR,CAACmzd,GAAsB,CACrB1hf,gBAAiB6gS,EACjB9pQ,YAAasjQ,EACb9rQ,OAAQ,cACR,WAAY,CACVvuB,gBAAiBuhf,IAGrB,CAAC,GAAG9vN,WAAuB,CACzBljQ,OAAQ,eAEV,CAAC,GAAGkjQ,qBAAiC,CACnCj8P,MAAOs+P,EACPvlQ,OAAQ,eAEV,CAAC,IAAIkjQ,aAAyB,CAC5B,CAACiwN,GAAsB,CACrB,WAAY,CACV5ta,UAAW,SAASyjM,EAAKoqO,GAAsBz2R,IAAIo2R,GAAW9zU,eAKtE,CAAC,OAAOikH,SAAqB,CAC3B+lC,mBAAoB90B,EACpBy0B,iBAAkBz0B,KAGvB,EAGGm/M,GAAsB3kY,IAC1B,MAAM,YACJ4kY,EAAW,cACX9rN,EAAa,aACbvE,EAAY,UACZh/P,EAAS,SACTwiQ,EAAQ,YACRoF,EAAW,mBACX5G,EAAkB,kBAClB2L,EAAiB,oBACjB2iN,EAAmB,SACnBpwd,EAAQ,SACRqwd,EAAQ,WACRnqN,EAAU,gBACVT,EAAe,gBACfF,EAAe,UACfwL,EAAS,aACT9M,EAAY,eACZmB,EAAc,eACdC,EAAc,gBACdirN,EAAe,wBACfC,EAAuB,kBACvBpuN,EAAiB,yBACjB+M,EAAwB,wBACxBshN,EAAuB,2BACvBC,EAA0B,aAC1B3tN,EAAY,kBACZkH,EAAiB,mBACjBC,EAAkB,qBAClBymN,EAAoB,0BACpBC,EAAyB,2BACzBC,EAA0B,KAC1BhrO,GACEr6J,EACJ,MAAO,CACL,CAAC,GAAGu0K,oBAAgC,CAClC7xR,SAAU,WACV7E,QAAS,eACT7E,OAAQ8/R,EACR7/R,OAAQ,EACR2wS,cAAei7M,EACfn1K,aAAc,EACdp3S,MAAOssd,EACPnwd,WACAE,WAAYt6B,GAAKggR,EAAKye,GAAe7pE,IAAIorD,EAAK9kP,GAAWm6L,IAAI,IAAIp/C,SACjEz9C,WAAYiyX,EACZ34W,OAAQ,GAAG9xI,GAAKk7B,MAAcwiQ,KAAYoF,IAG1CmoN,sBAAuBjrO,EAAK9kP,GAAW1I,IAAI,KAAMyjJ,QACjDu1R,uBAAwB,EACxBvoE,qBAAsB/nW,EACtBlE,OAAQ,UACRu2B,WAAY,CAAC,SAASs6O,IAAqB,cAAcA,IAAqB,cAAcA,KAAqB5lS,KAAK,KACtHiV,EAAG,CACD+mB,MAAOssd,GAET,CAAC,KAAKrwN,YAAwB,CAC5B7xR,SAAU,WACVq7X,gBAAiB,EACjBlzF,iBAAkB,EAClBjoS,QAAS,EACTtJ,MAAO,OACPN,OAAQ,QAEV,sBAAuB,CACrB,YAAa,CACX0J,SAAU,WACVq7X,gBAAiB1jH,EAAK9kP,GAAWm6L,KAAK,GAAGp/C,QACzCu6H,iBAAkBxwB,EAAK9kP,GAAWm6L,KAAK,GAAGp/C,QAC1CzyK,QAAS,QACT4tO,UAAW,cACXnyO,MAAO,EACPN,OAAQ,OACR02U,aAAcn6S,EACdq0Q,cAAe,EACf9mS,gBAAiBq6R,EACjBv1O,WAAY,oBAAoB2uO,IAChCzgR,QAAS,OAGb,gBAAiB,CACfg1R,kBAAmB,GAAGzwS,GAAKk7B,MAAcwiQ,KAAYoF,IACrD03C,uBAAwBn8C,EACxBo8C,qBAAsBp8C,GAExB,eAAgB,CACdi8C,qBAAsBj8C,EACtBk8C,mBAAoBl8C,GAEtB,2BAA4B,CAC1BA,gBAEF,CAAC,GAAGnE,mBAA+B,CACjCv7R,OAAQkhS,EACRzlQ,SAAUkmQ,EACVhmQ,WAAYt6B,GAAKggR,EAAK6f,GAAiBjrE,IAAIorD,EAAK9kP,GAAWm6L,IAAI,IAAIp/C,SACnE,gBAAiB,CACfukK,uBAAwB/6C,EACxBg7C,qBAAsBh7C,GAExB,eAAgB,CACd66C,qBAAsB76C,EACtB86C,mBAAoB96C,IAGxB,CAAC,GAAGvF,mBAA+B,CACjCv7R,OAAQghS,EACR4P,cAAevvB,EAAKmrB,GAAWv2E,IAAI15L,GAAW+6I,QAC9Co/J,aAAc,EACd/6S,WAAYt6B,GAAKggR,EAAK2f,GAAiB/qE,IAAIorD,EAAK9kP,GAAWm6L,IAAI,IAAIp/C,SACnE,gBAAiB,CACfukK,uBAAwBh7C,EACxBi7C,qBAAsBj7C,GAExB,eAAgB,CACd86C,qBAAsB96C,EACtB+6C,mBAAoB/6C,IAGxB,UAAW,CACTn3R,SAAU,WACV41B,MAAOi/P,GAET,wBAAyBl6R,OAAOoD,OAAO,CAAC,EAAGo2R,GAAgB72K,IAC3D,CAAC,GAAGu0K,wDAAoE,CACtEj7R,MAAO,EACPN,OAAQ,EACRgK,QAAS,EACTwuO,cAAe,QAEjB,CAAC,iBAAiB+iD,8BAA0C,CAC1D3xR,OAAQ,EACR01B,MAAOi/P,EACP1kK,WAAYkyX,EACZlrd,YAAa09P,EACb,YAAa,CACXz0R,gBAAiBy0R,GAEnB,gBAAiB,CACf19P,YAAa09P,GAEf,UAAW,CACTj/P,MAAOmmQ,EACP5kQ,YAAa4kQ,EACb,YAAa,CACX37R,gBAAiB27R,IAGrB,WAAY,CACVnmQ,MAAOomQ,EACP7kQ,YAAa6kQ,EACb,YAAa,CACX57R,gBAAiB47R,KAIvB,CAAC,GAAGnK,+BAA0CA,8BAA0C,CACtFj8P,MAAO0sd,EACPnyX,WAAYsyX,EACZtrd,YAAasrd,EACb,UAAW,CACT7sd,MAAO0sd,EACPnyX,WAAYuyX,EACZvrd,YAAaurd,GAEf,WAAY,CACV9sd,MAAO0sd,EACPnyX,WAAYwyX,EACZxrd,YAAawrd,IAGjB,aAAc,CACZ/sd,MAAOs+P,EACP9zR,gBAAiB6gS,EACjB9pQ,YAAasjQ,EACb9rQ,OAAQ,cACR,yBAA0B,CACxBiH,MAAOs+P,EACP9zR,gBAAiB6gS,EACjB9pQ,YAAasjQ,IAGjB,CAAC,aAAa5I,4BAAwC,CACpDj8P,MAAO4sd,EACPpif,gBAAiBmif,EACjBprd,YAAasjQ,EACb5kK,UAAW,QAEb,UAAW,CACTx7E,KAAM,EACNhjB,UAAW,WAGhB,EA6CH,GAAeg7P,GAAc,SAAS/0K,IACpC,MAAM,eACJklL,EAAc,oBACdP,GACE3kL,EACEulY,EAAmB,SAASlrf,GAAKsqS,MAAwBO,IAEzDsgN,EAAaxzN,GAAWhyK,EAAO,CACnCulY,mBACAE,uBAH6BF,IAK/B,MAAO,CAACtB,GAAmBuB,GAAatB,GAAmBsB,GAAab,GAAoBa,GAAY,IArDrExlY,IACnC,MAAM,UACJk5K,EAAS,QACTtgQ,EAAO,SACPwtQ,EAAQ,UACR7wQ,EAAS,WACTolQ,EAAU,UACVzE,EAAS,iBACT6G,EAAgB,kBAChBnG,EAAiB,4BACjBoO,EAA2B,oBAC3Bd,EAAmB,aACnB3M,EAAY,kBACZkH,EAAiB,mBACjBC,EAAkB,WAClB0C,GACEphL,EAIJ,MAAO,CAELokY,UAJgBzpN,EAKhBotD,QAJmB7uD,EADHyB,EAC2B+qN,EAD3B/qN,EACmF,GAFlF,EAEqEplQ,GAKtF8ud,iBAAkBztN,EAElBouN,wBAAyB9gN,EACzBihN,qBAAsB5tN,EACtB6tN,0BAA2B3mN,EAC3B4mN,2BAA4B3mN,EAC5BomN,SAAU/nN,EACVgoN,gBAAiBhoN,EACjB6nN,YAAa1uN,EACb+uN,wBAAyBjgN,EACzBkgN,2BAA4BtuN,EAC5BiuN,oBAAqBjsd,EAAUrD,EAC/B4ud,uBAAwB/9M,EAExBk+M,WAAYprN,EAAY3B,EAAe6J,EACvCmjN,aAAcrrN,EAAY6D,EAAmBxF,EAC9C,GAcuB,CACxBtS,SAAU,CACRm/N,WAAW,EACXr8J,SAAS,KC1cb,IAAI/kD,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAeA,MAAM46d,GAAgBA,CAACz2c,EAAON,KAC5B,IAAIjb,EAAIC,EACR,MAAMgyd,EAAe16R,EAAAA,WAAiB24R,IAChCgC,EAAyB36R,EAAAA,WAAiB64R,KAC1C,aACJ5jO,EAAY,UACZrrJ,EAAS,MACTkqE,GACEksB,EAAAA,WAAiBg1D,IACfgrH,EAAWhgL,EAAAA,OAAa,MACxB8jB,EAAYtH,GAAW94L,EAAKs8V,IAC5B,gBACJ//E,GACEjgG,EAAAA,WAAiB4/F,IAKrB,MAAMzyE,EAAWxzN,IACf,IAAI8O,EAAIC,EACkB,QAAzBD,EAAKub,EAAMmpM,gBAA6B,IAAP1kN,GAAyBA,EAAGv8B,KAAK83C,EAAOrqB,GACmB,QAA5F+O,EAAsB,OAAjBgyd,QAA0C,IAAjBA,OAA0B,EAASA,EAAavtQ,gBAA6B,IAAPzkN,GAAyBA,EAAGx8B,KAAKwuf,EAAc/ge,EAAE,GAGpJ8rN,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,SACb9zN,EAAQ,MACR7+C,EAAK,MACLymC,GACE8L,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,YAAa,gBAAiB,WAAY,QAAS,UACvF42c,EAAiB3lO,EAAa,QAASG,GACvCylO,EAAqI,aAAnG,OAAjBH,QAA0C,IAAjBA,OAA0B,EAASA,EAAaI,aAAeH,GACzGl1Q,EAAYo1Q,EAAe,GAAGD,WAA0BA,EAExDvyN,EAAU8qC,GAAaynL,IACtBz5M,EAAY7nB,EAAQ8nB,GAAalX,GAAS0wN,EAAgBvyN,GAC3D0yN,EAAa5of,OAAOoD,OAAO,CAAC,EAAG0wO,GAE/B91L,EAAW6vK,EAAAA,WAAiBk9G,IAC9Bw9K,IACFK,EAAW3gf,KAAOsgf,EAAatgf,KAC/B2gf,EAAW5tQ,SAAWA,EACtB4tQ,EAAW9rc,QAAUjL,EAAMj5C,QAAU2vf,EAAa3vf,MAClDgwf,EAAW5qc,SAA0C,QAA9B1nB,EAAKsyd,EAAW5qc,gBAA6B,IAAP1nB,EAAgBA,EAAKiyd,EAAavqc,UAEjG4qc,EAAW5qc,SAA0C,QAA9BznB,EAAKqyd,EAAW5qc,gBAA6B,IAAPznB,EAAgBA,EAAKynB,EAClF,MAAM6qc,EAAqBr7R,KAAW,GAAG8lB,YAAqB,CAC5D,CAAC,GAAGA,qBAA8Bs1Q,EAAW9rc,QAC7C,CAAC,GAAGw2L,sBAA+Bs1Q,EAAW5qc,SAC9C,CAAC,GAAGs1L,iBAAwC,QAAd77G,EAC9B,CAAC,GAAG67G,0BAAmCw6E,EACvC,CAAC,GAAGx6E,sBAAgD,OAAjBi1Q,QAA0C,IAAjBA,OAA0B,EAASA,EAAa7iY,QACjG,OAAVi8E,QAA4B,IAAVA,OAAmB,EAASA,EAAMpgM,UAAWA,EAAW0wQ,EAAekV,EAAQ8nB,EAAW/Y,IAExGigM,EAAcY,GAAgBf,GAAc4yB,EAAWz6a,SAE9D,OAAO6gO,EAAwBnhF,EAAAA,cAAoByzH,GAAM,CACvD19G,UAAW,QACX5lL,SAAU4qc,EAAW5qc,UACP6vK,EAAAA,cAAoB,QAAS,CAC3CtsN,UAAWsnf,EACXvpf,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAa,OAAVu+L,QAA4B,IAAVA,OAAmB,EAASA,EAAMriM,OAAQA,GACnG2nP,aAAcp1M,EAAMo1M,aACpBC,aAAcr1M,EAAMq1M,aACpBnhN,MAAOA,EACPooC,QAASgoZ,GACKtoQ,EAAAA,cAAoBmpQ,GAAYh3d,OAAOoD,OAAO,CAAC,EAAGwlf,EAAY,CAC5Ernf,UAAWisN,KAAWo7R,EAAWrnf,UAAW,CAC1C,CAAC8xU,KAAcq1K,IAEjB1nf,KAAM,QACNsyO,UAAWA,EACX/hM,IAAKogM,EACLxjK,QAAS4oZ,UACO9vd,IAAbk3C,EAAsC0vK,EAAAA,cAAoB,OAAQ,CACrEtsN,UAAW,GAAG+xO,WACbn1L,GAAY,OAAO,EAMxB,SAJ2B0vK,EAAAA,WAAiBy6R,IC3FtCQ,GAA0Bj7R,EAAAA,YAAiB,CAACh8K,EAAON,KACvD,MAAM,aACJuxO,EAAY,UACZrrJ,GACEo2F,EAAAA,WAAiBg1D,IACfkmO,EAAclhb,MAElByrK,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,QACb/0Q,EAAO,YACP8rf,EAAc,UAAS,SACvBhrc,EAAQ,SACRG,EACA9hC,KAAMyiU,EAAa,MACnBx/U,EAAK,GACLme,EAAE,WACFkre,EAAU,KACV1gf,EAAO8gf,EAAW,aAClBxwd,EACA3/B,MAAOqwf,EAAe,MACtBvjY,GAAQ,EAAK,SACbs1H,EAAQ,aACRiM,EAAY,aACZC,EAAY,QACZoB,EAAO,OACP44I,GACErvV,GACGj5C,EAAO8jD,GAAYo+L,GAAeviN,EAAc,CACrD3/B,MAAOqwf,IAEHC,EAAgBr7R,EAAAA,aAAkBz6J,IACtC,MAAM+1b,EAAYvwf,EACZ+J,EAAMywD,EAAMruD,OAAOnM,MACnB,UAAWi5C,GACf6K,EAAS/5C,GAEPA,IAAQwmf,IACG,OAAbnuQ,QAAkC,IAAbA,GAA+BA,EAAS5nL,GAC/D,GACC,CAACx6D,EAAO8jD,EAAUs+L,IACf1H,EAAYwvC,EAAa,QAASG,GAClCpO,EAAiB,GAAGvhC,UAEpB4iD,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GAC5D,IAAI+wD,EAAmB9oS,EAEnBjhD,GAAWA,EAAQ/B,OAAS,IAC9B8rV,EAAmB/pV,EAAQmK,KAAI49H,GACP,kBAAXA,GAAyC,kBAAXA,EAEnB4oF,EAAAA,cAAoBu7R,GAAO,CAC7Ctqf,IAAKmmI,EAAOj9H,WACZsrO,UAAWA,EACXt1L,SAAUA,EACVplD,MAAOqsI,EACPnoF,QAASlkD,IAAUqsI,GAClBA,GAGe4oF,EAAAA,cAAoBu7R,GAAO,CAC7Ctqf,IAAK,6BAA6BmmI,EAAOrsI,QACzC06O,UAAWA,EACXt1L,SAAUinF,EAAOjnF,UAAYA,EAC7BplD,MAAOqsI,EAAOrsI,MACdkkD,QAASlkD,IAAUqsI,EAAOrsI,MAC1BmtC,MAAOk/F,EAAOl/F,MACdzmC,MAAO2lI,EAAO3lI,MACdme,GAAIwnH,EAAOxnH,GACX0+F,SAAU8oB,EAAO9oB,UAChB8oB,EAAOnyB,UAGd,MAAM68M,EAAaC,GAAQkvB,GACrBh9D,EAAct0D,KAAWqnD,EAAgB,GAAGA,KAAkBm0O,IAAe,CACjF,CAAC,GAAGn0O,KAAkB86C,KAAeA,EACrC,CAAC,GAAG96C,SAAqC,QAAdp9I,EAC3B,CAAC,GAAGo9I,WAAyBnvJ,GAC5BnkH,EAAW0wQ,EAAekV,EAAQ8nB,EAAW/Y,GAC1C91N,EAAgBytJ,EAAAA,SAAc,KAAM,CACxCmtB,SAAUkuQ,EACVtwf,QACAolD,WACA/1C,OACA0gf,aACAjjY,WACE,CAACwjY,EAAetwf,EAAOolD,EAAU/1C,EAAM0gf,EAAYjjY,IACvD,OAAOspL,EAAwBnhF,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CAAC,EAAG+tV,GAAUt/S,EAAO,CAC3Fy/S,MAAM,EACN/6U,MAAM,IACJ,CACFhV,UAAWugR,EACXxiR,MAAOA,EACP2nP,aAAcA,EACdC,aAAcA,EACdoB,QAASA,EACT44I,OAAQA,EACRzjX,GAAIA,EACJ8zB,IAAKA,IACUs8K,EAAAA,cAAoB44R,GAA2B,CAC9D7tf,MAAOwnE,GACN6mR,IAAmB,IAExB,GAA4Bp5H,EAAAA,KAAWi7R,ICnHvC,IAAInjN,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAKA,MAAMq0K,GAAcA,CAAClwJ,EAAON,KAC1B,MAAM,aACJuxO,GACEj1D,EAAAA,WAAiBg1D,KAEjBvvC,UAAW2vC,GACTpxO,EACJ+2c,EAAajjN,GAAO9zP,EAAO,CAAC,cACxByhM,EAAYwvC,EAAa,QAASG,GACxC,OAAoBp1D,EAAAA,cAAoB84R,GAAgC,CACtE/tf,MAAO,UACOi1N,EAAAA,cAAoBu7R,GAAOppf,OAAOoD,OAAO,CACvDkwO,UAAWA,GACVs1Q,EAAY,CACb5nf,KAAM,QACNuwC,IAAKA,KACH,EAEN,GAA4Bs8K,EAAAA,WAAiB9rB,IC1BvCqnT,GAAQd,GACdc,GAAMjlT,OAASA,GACfilT,GAAM7nK,MAAQA,GACd6nK,GAAMC,aAAc,EACpB,YCQaC,GAAmB,CAAC,EACpBC,GAAgB,aAChBC,GAAmB,gBACnBC,GAAiB,cACxBr/P,GAAa,GACbo/O,GAAcA,CAAC9D,EAAoBnvd,KACvC,IAAIkkP,EAAO,GAOX,OANClkP,GAAQ,IAAIzb,SAAQsme,IACnB3mO,EAAK5+P,KAAKule,GACNA,GAA4B,kBAAXA,GAAuBsE,KAAsBtE,IAChE3mO,EAAO,GAAGj8P,OAAOw+O,GAAmByd,GAAOzd,GAAmBwsP,GAAY9D,EAAoBtE,EAAOsE,MACvG,IAEKjrO,CAAI,EA6fb,GA3fqBivP,CAAC99c,EAAQ+9c,KAC5B,MAAM,wBACJC,EAAuB,gBACvBC,EAAe,uBACfC,EAAsB,iBACtBC,EACA/uQ,SAAUgvQ,EAAiB,SAC3BtzO,EAAQ,YACRuzO,EAAW,eACXC,EAAc,aACdC,EAAY,iBACZC,EACAzmd,YAAa0md,EACbrpf,KAAMspf,EAAa,WACnBC,EAAU,MACV5+S,EACA6+S,WAAYC,EAAmB,cAC/BC,EAAa,cACbC,GAAgB,GACdhB,GAAgB,CAAC,GACf,UACJr2Q,EAAS,KACT/8N,EAAI,SACJq0e,EAAQ,eACRC,EAAc,UACdjlB,EAAS,WACTklB,EAAU,mBACVplB,EACA13c,OAAQ+8d,EAAW,kBACnB1uP,GACEzwN,EACEgtL,EAAUm7F,GAAc,UAEvBi3L,EAAgBC,GC7DV,SAA2BvxQ,GACxC,MAAOwxQ,EAAmBC,IAAwB5jb,EAAAA,EAAAA,UAAS,MA0B3D,MAAO,EAzBgBT,EAAAA,EAAAA,cAAY,CAACskb,EAAsB70e,EAAMqyO,KAC9D,MAAMyiQ,EAAgD,OAAtBH,QAAoD,IAAtBA,EAA+BA,EAAoBE,EAE3G/sR,EAAa7iO,KAAKyhB,IAAIoue,GAA2B,EAAGD,GACpD39F,EAAWjyZ,KAAKwhB,IAAIque,GAA2B,EAAGD,GAClDE,EAAY/0e,EAAKvX,MAAMq/N,EAAYovL,EAAW,GAAGpmZ,KAAI6kC,GAAQwtM,EAAOxtM,KACpEq/c,EAAiBD,EAAUlgf,MAAKogf,IAAa5iQ,EAAa/7O,IAAI2+e,KAC9DC,EAAc,GAapB,OAZAH,EAAUxwf,SAAQoxC,IACZq/c,GACG3iQ,EAAa/7O,IAAIq/B,IACpBu/c,EAAY5vf,KAAKqwC,GAEnB08M,EAAap5N,IAAI0c,KAEjB08M,EAAa7/L,OAAO7c,GACpBu/c,EAAY5vf,KAAKqwC,GACnB,IAEFi/c,EAAqBI,EAAiB99F,EAAW,MAC1Cg+F,CAAW,GACjB,CAACP,IAC4Bvof,IAC9Bwof,EAAqBxof,EAAI,EAG7B,CDiCoD+of,EAAkBx/c,GAAQA,KAErEy/c,EAAoBC,GAAyB9wQ,GAAe+uQ,GAAmBC,GAA0B1/P,GAAY,CAC1HxxP,MAAOixf,IAGHgC,EAAqBh+R,EAAAA,OAAa,IAAI9hL,KACtC+/c,GAA6Bhlb,EAAAA,EAAAA,cAAY7mE,IAC7C,GAAI2pf,EAAyB,CAC3B,MAAMmC,EAAW,IAAIhgd,IAErB9rC,EAAKnF,SAAQgE,IACX,IAAIsie,EAASypB,EAAe/rf,IACvBsie,GAAUyqB,EAAmB5rd,QAAQpzB,IAAI/N,KAC5Csie,EAASyqB,EAAmB5rd,QAAQz4B,IAAI1I,IAE1Citf,EAASpof,IAAI7E,EAAKsie,EAAO,IAG3ByqB,EAAmB5rd,QAAU8rd,CAC/B,IACC,CAAClB,EAAgBjB,IAEpB/7R,EAAAA,WAAgB,KACdi+R,EAA2BH,EAAmB,GAC7C,CAACA,IAEJ,MAAMK,GAAc5kb,EAAAA,EAAAA,UAAQ,IAAMoia,GAAY9D,EAAoBklB,IAAW,CAACllB,EAAoBklB,KAC5F,YACJhxP,IACExyL,EAAAA,EAAAA,UAAQ,KACV,GAAIujb,EACF,MAAO,CACL/wP,YAAa,MAGjB,IAAIqyP,EAAc11e,EAClB,GAAIqze,EAAyB,CAE3B,MAAMsC,EAAU,IAAIp3c,IAAIk3c,EAAY3kf,KAAI,CAAC+5d,EAAQl3d,IAAU07d,EAAUxE,EAAQl3d,MAEvEiif,EAAkBtxf,MAAM8J,KAAKknf,EAAmB5rd,SAAShH,QAAO,CAACiM,EAAO+/G,KAC5E,IAAKnmJ,EAAKlG,GAASqsJ,EACnB,OAAOinW,EAAQr/e,IAAI/N,GAAOomC,EAAQA,EAAM1mC,OAAO5F,EAAM,GACpD,IACHqzf,EAAc,GAAGztf,OAAOw+O,GAAmBivQ,GAAcjvQ,GAAmBmvQ,GAC9E,CACA,OAAOnQ,GAAsBiQ,EAAa,CACxC5P,eAAgBzW,EAChB0W,iBAAkB5W,GAClB,GACD,CAACnvd,EAAMqvd,EAAW+kB,EAAejlB,EAAoBkkB,EAAyBoC,IAE3EI,GAAmBhlb,EAAAA,EAAAA,UAAQ,KAC/B,MAAM//D,EAAM,IAAI0kC,IAOhB,OANAigd,EAAYlxf,SAAQ,CAACsme,EAAQl3d,KAC3B,MAAMpL,EAAM8me,EAAUxE,EAAQl3d,GACxB0sd,GAAiBmzB,EAAmBA,EAAiB3oB,GAAU,OAAS,CAAC,EAC/E/5d,EAAI1D,IAAI7E,EAAK83d,EACiO,IAEzOvvd,CAAG,GACT,CAAC2kf,EAAapmB,EAAWmkB,IACtBsC,GAAqBvlb,EAAAA,EAAAA,cAAYxtE,IACrC,MAAM+xa,EAASu6D,EAAUtse,GACzB,IAAIs9d,EAMJ,OAJEA,EADEw1B,EAAiBv/e,IAAIw+Z,GACP+gF,EAAiB5kf,IAAIo+d,EAAUtse,IAE/Bywf,EAAmBA,EAAiBzwf,QAAK2N,KAE/B,OAAlB2vd,QAA4C,IAAlBA,OAA2B,EAASA,EAAc54a,SAAS,GAC9F,CAACouc,EAAkBxmB,KACf0mB,EAAqBC,IAA2Bnlb,EAAAA,EAAAA,UAAQ,KAC7D,GAAIujb,EACF,MAAO,CAACgB,GAAsB,GAAI,IAEpC,MAAM,YACJpO,EAAW,gBACXC,GACE6H,GAAasG,GAAoB,EAAM/xP,EAAayyP,GACxD,MAAO,CAAC9O,GAAe,GAAIC,EAAgB,GAC1C,CAACmO,EAAoBhB,EAAe/wP,EAAayyP,IAC9CG,GAAwBplb,EAAAA,EAAAA,UAAQ,KACpC,MAAMnnE,EAAyB,UAAlBqqf,EAA4BgC,EAAoBttf,MAAM,EAAG,GAAKstf,EAC3E,OAAO,IAAIx3c,IAAI70C,EAAK,GACnB,CAACqsf,EAAqBhC,IACnBmC,GAA4Brlb,EAAAA,EAAAA,UAAQ,IAAwB,UAAlBkjb,EAA4B,IAAIx1c,IAAQ,IAAIA,IAAIy3c,IAA0B,CAACA,EAAyBjC,IAEpJz8R,EAAAA,WAAgB,KACT87R,GACHiC,EAAsBxhQ,GACxB,GACC,GAAGu/P,IACN,MAAM+C,GAAkB5lb,EAAAA,EAAAA,cAAY,CAAC7mE,EAAMgM,KACzC,IAAI0gf,EACAzlM,EACJ4kM,EAA2B7rf,GACvB2pf,GACF+C,EAAgB1sf,EAChBinT,EAAUjnT,EAAKoH,KAAIvI,GAAO+sf,EAAmB5rd,QAAQz4B,IAAI1I,OAGzD6tf,EAAgB,GAChBzlM,EAAU,GACVjnT,EAAKnF,SAAQgE,IACX,MAAMsie,EAASypB,EAAe/rf,QACfmI,IAAXm6d,IACFurB,EAAc9wf,KAAKiD,GACnBooT,EAAQrrT,KAAKule,GACf,KAGJwqB,EAAsBe,GACA,OAAtB3C,QAAoD,IAAtBA,GAAwCA,EAAkB2C,EAAezlM,EAAS,CAC9GlmT,KAAMiL,GACN,GACD,CAAC2/e,EAAuBf,EAAgBb,EAAmBJ,IAGxDgD,GAAyB9lb,EAAAA,EAAAA,cAAY,CAAChoE,EAAKg/C,EAAU79C,EAAMmzD,KAC/D,GAAIsjN,EAAU,CACZ,MAAMhgP,EAAOz2B,EAAKoH,KAAIzM,GAAKiwf,EAAejwf,KAC1C87Q,EAASm0O,EAAe/rf,GAAMg/C,EAAUpnB,EAAM08B,EAChD,CACAs5b,EAAgBzsf,EAAM,SAAS,GAC9B,CAACy2Q,EAAUm0O,EAAgB6B,IACxBG,GAAmBzlb,EAAAA,EAAAA,UAAQ,KAC/B,IAAKmjb,GAAcG,EACjB,OAAO,KAGT,QADqC,IAAfH,EAAsB,CAAChB,GAAeC,GAAkBC,IAAkBc,GAC3Eljf,KAAIslB,GACnBA,IAAc48d,GACT,CACLzqf,IAAK,MACL+2B,KAAMk1d,EAAYhkL,aAClBrwD,QAAAA,GACEg2O,EAAgBn2e,EAAKlP,KAAI,CAAC+5d,EAAQl3d,IAAU07d,EAAUxE,EAAQl3d,KAAQiB,QAAOrM,IAC3E,MAAMguf,EAAaV,EAAiB5kf,IAAI1I,GACxC,QAAwB,OAAfguf,QAAsC,IAAfA,OAAwB,EAASA,EAAW9uc,WAAawuc,EAAsB3/e,IAAI/N,EAAI,IACrH,MACN,GAGA6tB,IAAc68d,GACT,CACL1qf,IAAK,SACL+2B,KAAMk1d,EAAYlkL,aAClBnwD,QAAAA,GACE,MAAMq2O,EAAS,IAAIj4c,IAAI03c,GACvB5B,EAAS9vf,SAAQ,CAACsme,EAAQl3d,KACxB,MAAMpL,EAAM8me,EAAUxE,EAAQl3d,GACxB4if,EAAaV,EAAiB5kf,IAAI1I,IACnB,OAAfguf,QAAsC,IAAfA,OAAwB,EAASA,EAAW9uc,YACnE+uc,EAAOlgf,IAAI/N,GACbiuf,EAAOhkc,OAAOjqD,GAEdiuf,EAAOv9d,IAAI1wB,GAEf,IAEF,MAAMmB,EAAOpF,MAAM8J,KAAKoof,GACpB7C,IACFtxR,EAAQ50L,YAAW,EAAO,iBAAkB,YAC5Ckmd,EAAejqf,IAEjBysf,EAAgBzsf,EAAM,SACxB,GAGA0sB,IAAc88d,GACT,CACL3qf,IAAK,OACL+2B,KAAMk1d,EAAYjkL,WAClBpwD,QAAAA,GACmB,OAAjByzO,QAA0C,IAAjBA,GAAmCA,IAC5DuC,EAAgB7xf,MAAM8J,KAAK6nf,GAAuBrhf,QAAOrM,IACvD,MAAMguf,EAAaV,EAAiB5kf,IAAI1I,GACxC,OAAsB,OAAfguf,QAAsC,IAAfA,OAAwB,EAASA,EAAW9uc,QAAQ,IAChF,OACN,GAGGrxB,IACNtlB,KAAIslB,GAAa3sB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGupB,GAAY,CAC9D+pP,SAAU,WAGR,IAFA,IAAI0pF,EACA9pU,EACKg0M,EAAO7gO,UAAUtO,OAAQisG,EAAO,IAAIvsG,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EnjI,EAAKmjI,GAAQ9gO,UAAU8gO,GAEK,QAA7Bj0M,EAAK3J,EAAU+pP,gBAA6B,IAAPpgP,IAA0B8pU,EAAM9pU,GAAIv8B,KAAKsa,MAAM+rV,EAAK,CAACzzU,GAAWnuB,OAAO4oG,IAC7G6jZ,EAAwB,KAC1B,KACC,GACF,CAACV,EAAYiC,EAAuB5B,EAAUhlB,EAAWskB,EAAgBwC,IAoR5E,MAAO,EAlRkB5lb,EAAAA,EAAAA,cAAYzxC,IACnC,IAAIiB,EAEJ,IAAKqzd,EAEH,OAAOt0d,EAAQlqB,QAAOg6B,GAAOA,IAAQmkd,KAGvC,IAAI7d,EAAezuP,GAAmB3nN,GACtC,MAAM03d,EAAS,IAAIj4c,IAAI03c,GAEjBQ,EAAahB,EAAY3kf,IAAIu+d,GAAWz6d,QAAOrM,IAAQstf,EAAiB5kf,IAAI1I,GAAKk/C,WACjFivc,EAAoBD,EAAW3hf,OAAMvM,GAAOiuf,EAAOlgf,IAAI/N,KACvDouf,EAAqBF,EAAW5hf,MAAKtM,GAAOiuf,EAAOlgf,IAAI/N,KACvDquf,EAAoBA,KACxB,MAAMC,EAAa,GACfH,EACFD,EAAWlyf,SAAQgE,IACjBiuf,EAAOhkc,OAAOjqD,GACdsuf,EAAWvxf,KAAKiD,EAAI,IAGtBkuf,EAAWlyf,SAAQgE,IACZiuf,EAAOlgf,IAAI/N,KACdiuf,EAAOv9d,IAAI1wB,GACXsuf,EAAWvxf,KAAKiD,GAClB,IAGJ,MAAMmB,EAAOpF,MAAM8J,KAAKoof,GACR,OAAhB9C,QAAwC,IAAhBA,GAAkCA,GAAagD,EAAmBhtf,EAAKoH,KAAIzM,GAAKiwf,EAAejwf,KAAKwyf,EAAW/lf,KAAIzM,GAAKiwf,EAAejwf,MAC/J8xf,EAAgBzsf,EAAM,OACtBgrf,EAAwB,KAAK,EAI/B,IAAIlld,EACAsnd,EAkEA7C,EAjEJ,GAAsB,UAAlBF,EAA2B,CAC7B,IAAIgD,EACJ,GAAIT,EAAkB,CACpB,MAAM3gT,EAAO,CACXmwD,oBACA5iB,MAAOozQ,EAAiBxlf,KAAI,CAACslB,EAAWziB,KACtC,MAAM,IACJpL,EAAG,KACH+2B,EACA6gP,SAAU62O,GACR5ge,EACJ,MAAO,CACL7tB,IAAa,OAARA,QAAwB,IAARA,EAAiBA,EAAMoL,EAC5CikE,QAASA,KACc,OAArBo/a,QAAkD,IAArBA,GAAuCA,EAAiBP,EAAW,EAElGl6Y,MAAOj9E,EACR,KAGLy3d,EAAmCz/R,EAAAA,cAAoB,MAAO,CAC5DtsN,UAAW,GAAG+xO,qBACAzlB,EAAAA,cAAoB6iG,GAAU,CAC5CxkH,KAAMA,EACNmwD,kBAAmBA,GACLxuC,EAAAA,cAAoB,OAAQ,KAAmBA,EAAAA,cAAoB+yM,GAAc,QACnG,CACA,MAAM4sF,EAAkBxB,EAAY3kf,KAAI,CAAC+5d,EAAQl3d,KAC/C,MAAMpL,EAAM8me,EAAUxE,EAAQl3d,GACxB0sd,EAAgBw1B,EAAiB5kf,IAAI1I,IAAQ,CAAC,EACpD,OAAOkB,OAAOoD,OAAO,CACnB05C,QAASiwc,EAAOlgf,IAAI/N,IACnB83d,EAAc,IAChBzrd,QAAOurK,IACR,IAAI,SACF14H,GACE04H,EACJ,OAAO14H,CAAQ,IAEXyvc,IAAgBD,EAAgBryf,QAAUqyf,EAAgBryf,SAAW6wf,EAAY7wf,OACjFuyf,EAAwBD,GAAeD,EAAgBnif,OAAM+uP,IACjE,IAAI,QACFt9M,GACEs9M,EACJ,OAAOt9M,CAAO,IAEV6wc,EAAyBF,GAAeD,EAAgBpif,MAAKw6N,IACjE,IAAI,QACF9oL,GACE8oL,EACJ,OAAO9oL,CAAO,IAEhBuwc,EAAmCx/R,EAAAA,cAAoBupQ,GAAU,CAC/Dt6a,QAAU2wc,EAA0DC,IAA1C1B,EAAY7wf,QAAU8xf,EAChD52B,cAAgBo3B,GAA0DC,GAAyBC,GAApEV,GAAqBC,EACpDlyQ,SAAUmyQ,EACVnvc,SAAiC,IAAvBguc,EAAY7wf,QAAgBsyf,EACtC,aAAcH,EAAsB,mBAAqB,aACzDh3B,WAAW,IAEbvwb,GAAS2kd,GAA+B78R,EAAAA,cAAoB,MAAO,CACjEtsN,UAAW,GAAG+xO,eACb+5Q,EAAqBC,EAC1B,CAIE9C,EADoB,UAAlBF,EACWE,CAACr/d,EAAGi2c,EAAQl3d,KACvB,MAAMpL,EAAM8me,EAAUxE,EAAQl3d,GACxB4yC,EAAUiwc,EAAOlgf,IAAI/N,GACrB83d,EAAgBw1B,EAAiB5kf,IAAI1I,GAC3C,MAAO,CACL8C,KAAoBisN,EAAAA,cAAoBu7R,GAAOppf,OAAOoD,OAAO,CAAC,EAAGwzd,EAAe,CAC9E95a,QAASA,EACTqxB,QAAS3mD,IACP,IAAI8O,EACJ9O,EAAEojC,kBAC6F,QAA9Ft0B,EAAuB,OAAlBsgc,QAA4C,IAAlBA,OAA2B,EAASA,EAAczoZ,eAA4B,IAAP73C,GAAyBA,EAAGv8B,KAAK68d,EAAepvc,EAAE,EAE3JwzN,SAAU5nL,IACR,IAAI98B,EACCy2d,EAAOlgf,IAAI/N,IACd8tf,EAAuB9tf,GAAK,EAAM,CAACA,GAAMs0D,EAAMlK,aAE+C,QAA/F5yB,EAAuB,OAAlBsgc,QAA4C,IAAlBA,OAA2B,EAASA,EAAc57O,gBAA6B,IAAP1kN,GAAyBA,EAAGv8B,KAAK68d,EAAexja,EAAM,KAGlKtW,UACD,EAGU0tc,CAACr/d,EAAGi2c,EAAQl3d,KACvB,IAAIosB,EACJ,MAAMx3B,EAAM8me,EAAUxE,EAAQl3d,GACxB4yC,EAAUiwc,EAAOlgf,IAAI/N,GACrBu3d,EAAgBo2B,EAA0B5/e,IAAI/N,GAC9C83d,EAAgBw1B,EAAiB5kf,IAAI1I,GAC3C,IAAI8uf,EAQJ,OANEA,EADiB,SAAf9C,EACoBz0B,EAGqG,QAApG//b,EAAuB,OAAlBsgc,QAA4C,IAAlBA,OAA2B,EAASA,EAAcP,qBAAkC,IAAP//b,EAAgBA,EAAK+/b,EAGnJ,CACLz0d,KAAoBisN,EAAAA,cAAoBupQ,GAAUp3d,OAAOoD,OAAO,CAAC,EAAGwzd,EAAe,CACjFP,cAAeu3B,EACf9wc,QAASA,EACTw5a,WAAW,EACXnoZ,QAAS3mD,IACP,IAAI8O,EACJ9O,EAAEojC,kBAC6F,QAA9Ft0B,EAAuB,OAAlBsgc,QAA4C,IAAlBA,OAA2B,EAASA,EAAczoZ,eAA4B,IAAP73C,GAAyBA,EAAGv8B,KAAK68d,EAAepvc,EAAE,EAE3JwzN,SAAU5nL,IACR,IAAI98B,EACJ,MAAM,YACJ4yB,GACEkK,GACE,SACJ3F,GACEvE,EACEkic,EAAuB4B,EAAWzhf,WAAU2gC,GAAQA,IAASptC,IAC7Dy/Y,EAAa+tG,EAAoBlhf,MAAK8gC,GAAQ8gd,EAAW7if,SAAS+hC,KACxE,GAAIuhB,GAAYk9b,GAAiBpsG,EAAY,CAC3C,MAAMktG,EAAcT,EAAeI,EAAsB4B,EAAYD,GAC/D9sf,EAAOpF,MAAM8J,KAAKoof,GACH,OAArB3C,QAAkD,IAArBA,GAAuCA,GAAkBttc,EAAS78C,EAAKoH,KAAI6mZ,GAAa28F,EAAe38F,KAAau9F,EAAYpkf,KAAI6mZ,GAAa28F,EAAe38F,MAC7Lw+F,EAAgBzsf,EAAM,WACxB,KAAO,CAEL,MAAM4tf,EAAoBvB,EAC1B,GAAI3B,EAAe,CACjB,MAAMpN,EAAczgc,EAAU4lc,GAAOmL,EAAmB/uf,GAAO6jf,GAAOkL,EAAmB/uf,GACzF8tf,EAAuB9tf,GAAMg+C,EAASygc,EAAar0b,EACrD,KAAO,CAEL,MAAMj+C,EAASo6e,GAAa,GAAG7mf,OAAOw+O,GAAmB6wQ,GAAoB,CAAC/uf,KAAO,EAAM86P,EAAayyP,IAClG,YACJ9O,EAAW,gBACXC,GACEvye,EACJ,IAAI6if,EAAkBvQ,EAEtB,GAAIzgc,EAAS,CACX,MAAMixc,EAAa,IAAIj5c,IAAIyoc,GAC3BwQ,EAAWhlc,OAAOjqD,GAClBgvf,EAAkBzI,GAAaxqf,MAAM8J,KAAKopf,GAAa,CACrDjxc,SAAS,EACT0gc,mBACC5jP,EAAayyP,GAAoB9O,WACtC,CACAqP,EAAuB9tf,GAAMg+C,EAASgxc,EAAiB5kc,EACzD,CACF,CAEE+hc,EADEnuc,EACsB,KAEAsuc,GAEsE,QAA/F90d,EAAuB,OAAlBsgc,QAA4C,IAAlBA,OAA2B,EAASA,EAAc57O,gBAA6B,IAAP1kN,GAAyBA,EAAGv8B,KAAK68d,EAAexja,EAAM,KAGlKtW,UACD,EAcL,IAAK2ub,EAAathe,SAASm/e,IAEzB,GAGO,IAHH7d,EAAalge,WAAU45B,IACzB,IAAI7O,EACJ,MAAgG,mBAApD,QAAnCA,EAAK6O,EAAI2kc,WAAyC,IAAPxzc,OAAgB,EAASA,EAAG+zc,WAA+B,IACvG,CACR,MAAOiD,KAAiB0gB,GAAeviB,EACvCA,EAAe,CAAC6B,EAAcgc,IAAkB9qf,OAAOw+O,GAAmBgxQ,GAC5E,MAEEviB,EAAe,CAAC6d,IAAkB9qf,OAAOw+O,GAAmByuP,IAIhE,MAAMwiB,EAAuBxiB,EAAa/se,QAAQ4qf,IAElD7d,EAAeA,EAAatge,QAAO,CAACqpB,EAAQtqB,IAAUsqB,IAAW80d,IAAoBp/e,IAAU+jf,IAE/F,MAAMC,EAAUziB,EAAawiB,EAAuB,GAC9CE,EAAU1iB,EAAawiB,EAAuB,GACpD,IAAIG,EAAcziT,OACE1kM,IAAhBmnf,SACwEnnf,KAAzD,OAAZknf,QAAgC,IAAZA,OAAqB,EAASA,EAAQxiT,OAC7DyiT,EAAcD,EAAQxiT,WACyD1kM,KAAzD,OAAZinf,QAAgC,IAAZA,OAAqB,EAASA,EAAQviT,SACpEyiT,EAAcF,EAAQviT,QAGtByiT,GAAeF,GAAwG,mBAApD,QAAvC53d,EAAK43d,EAAQpkB,WAAyC,IAAPxzc,OAAgB,EAASA,EAAG+zc,kBAAqDpje,IAAlBinf,EAAQviT,QACpJuiT,EAAQviT,MAAQyiT,GAElB,MAAMC,EAAY7gS,KAAW,GAAG8lB,kBAA2B,CACzD,CAAC,GAAGA,iCAA0Ci3Q,GAAgC,aAAlBD,IAYxDgE,EAAkB,CACtB3iT,MAAOyiT,EACPnyf,MAAOouf,EACP9of,UAAW,GAAG+xO,qBACdvtM,OAbuB,OAAjB4jd,QAA0C,IAAjBA,OAA0B,EAASA,EAAa3c,aAGvC,oBAA7B2c,EAAa3c,YACf2c,EAAa3c,YAAYqgB,GAE3B1D,EAAa3c,YALXjnc,EAaTgW,OA5D0Bwyc,CAACpje,EAAGi2c,EAAQl3d,KACtC,MAAM,KACJtI,EAAI,QACJk7C,GACE0tc,EAAWr/d,EAAGi2c,EAAQl3d,GAC1B,OAAIugf,EACKA,EAAoB3tc,EAASskb,EAAQl3d,EAAOtI,GAE9CA,CAAI,EAqDXmme,OAAQ4hB,EAAa5hB,OACrB,CAAC+B,IAAsB,CACrBvoe,UAAW8sf,IAGf,OAAO5iB,EAAapke,KAAI89B,GAAOA,IAAQmkd,GAAmBgF,EAAkBnpd,GAAI,GAC/E,CAACygc,EAAWomB,EAAarC,EAAc2C,EAAqBE,EAAuBC,EAA2BpC,EAAmBwC,EAAkB/B,EAAYsB,EAAkBhC,EAAkBwC,EAAwBP,IACpMG,EAAsB,EE5gBnC,SAASgC,GAAyBj9c,EAAKlhB,GACpD,OAAO42C,EAAAA,EAAAA,qBAAoB11B,GAAK,KAC9B,MAAMk0a,EAASp1b,KACT,cACJw5M,GACE47O,EACJ,MAAqB,qBAAVpxL,MACF,IAAIA,MAAMxqD,EAAe,CAC9BriO,IAAGA,CAAC/K,EAAKpC,IACHord,EAAOprd,GACFord,EAAOprd,GAETshD,QAAQn0C,IAAI/K,EAAKpC,MAvBN0qC,EA4BQ0gb,GA5BjB7rb,EA4BEiwM,GA3BX4kR,UAAY70d,EAAQ60d,WAAa,CAAC,EAC1Czuf,OAAOC,KAAK8kC,GAASjqC,SAAQgE,IAC3B,KAAMA,KAAO86B,EAAQ60d,WAAY,CAC/B,MAAM3hP,EAAMlzO,EAAQ96B,GACpB86B,EAAQ60d,UAAU3vf,GAAOguQ,EACzBlzO,EAAQ96B,GAAOimC,EAAQjmC,EACzB,KAEK86B,GATT,IAAmBA,EAASmL,CA4Be,GAE3C,CCjCO,SAAS2pd,GAASjyf,GACvB,OAAe,OAARA,QAAwBwK,IAARxK,GAAqBA,IAAQA,EAAI8C,MAC1D,CACA,MA0BA,GA1BkBwF,IAChB,IAAIuxB,EAAIC,EACR,GAAsB,qBAAXh3B,OACT,OAAO,EAET,IAAI0L,EAAS,EAmBb,OAlBIyjf,GAAS3pf,GACXkG,EAASlG,EAAO2lI,YACP3lI,aAAkB4pf,SAC3B1jf,EAASlG,EAAOywD,gBAAgBhzD,WACvBuC,aAAkByyC,aAElBzyC,KADTkG,EAASlG,EAAOvC,WAUduC,IAAW2pf,GAAS3pf,IAA6B,kBAAXkG,IACxCA,EAA0G,QAAhGsrB,GAAsC,QAA/BD,EAAKvxB,EAAO44C,qBAAkC,IAAPrnB,EAAgBA,EAAKvxB,GAAQywD,uBAAoC,IAAPj/B,OAAgB,EAASA,EAAG/zB,WAEzIyI,CAAM,ECGf,SA1BA,SAA0B+iB,GACxB,OAAO6jB,IACL,MAAM,UACJyhM,EAAS,SACTwlO,EAAQ,OACRsoB,EAAM,SACNvxL,EAAQ,WACRunK,GACEvla,EACE+8c,EAAa,GAAGt7Q,oBACtB,OAAoBzlB,EAAAA,cAAoB,SAAU,CAChD7sN,KAAM,SACNmtE,QAAS3mD,IACPsxb,EAASsoB,EAAQ55c,GACjBA,EAAEojC,iBAAiB,EAErBrpD,UAAWisN,KAAWohS,EAAY,CAChC,CAAC,GAAGA,aAAuBx3C,EAC3B,CAAC,GAAGw3C,cAAwBx3C,GAAcvnK,EAC1C,CAAC,GAAG++M,eAAyBx3C,IAAevnK,IAE9C,aAAcA,EAAW7hR,EAAOk5S,SAAWl5S,EAAOi5S,OAClD,gBAAiBp3B,GACjB,CAEN,EC7BO,MAAMg/M,GAAeA,CAACr6d,EAAQs6d,IAC/B,QAASt6d,QAAyBvtB,IAAfutB,EAAO11B,KAAoC,OAAf01B,EAAO11B,IACjD01B,EAAO11B,IAEZ01B,EAAOsob,UACFjid,MAAMqR,QAAQsoB,EAAOsob,WAAatob,EAAOsob,UAAU79c,KAAK,KAAOu1B,EAAOsob,UAExEgyC,EAEF,SAASC,GAAa7kf,EAAOgS,GAClC,OAAOA,EAAM,GAAGA,KAAOhS,IAAU,GAAGA,GACtC,CACO,MAAM8kf,GAAoBA,CAACjpd,EAAO8L,IAClB,oBAAV9L,EACFA,EAAM8L,GAER9L,ECdT,SADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,gLAAoL,KAAQ,SAAU,MAAS,UCMzW,IAAIkpd,GAAe,SAAsBp9c,EAAON,GAC9C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMijT,KAEV,EAOA,SAJ2BrhS,EAAAA,WAAiBohS,ICkB5C,SAhCoB,SAAuBp9c,GACzC,IAAI6rc,EAAe7rc,EAAM6rc,aACvBkD,EAAkB/uc,EAAM+uc,gBACxBnb,EAAS5zb,EAAM4zb,OACbnme,EAAQ,CACV60O,cAAe,OACf9uO,SAAU,WACVG,MAAO,EACPC,gBAAiB,MACjB9J,OAAQ,GAEV,OAAQ+hf,GACN,KAAM,EACJp+e,EAAMhE,IAAM,EACZgE,EAAMjE,MAAQulf,EAAkBnb,EAChC,MACF,KAAK,EACHnme,EAAMc,OAAS,EACfd,EAAMjE,MAAQulf,EAAkBnb,EAChC,MACF,KAAK,EACHnme,EAAMc,OAAS,EACfd,EAAMjE,KAAOoqe,EAGjB,OAAoB53Q,EAAAA,cAAoB,MAAO,CAC7CvuN,MAAOA,GAEX,EC7BA,SAAS,GAA0BouB,GACjC,GAAI,MAAQA,EAAG,MAAM,IAAI9kB,UAAU,sBAAwB8kB,EAC7D,CCyBA,SApBA,SAAoByhe,EAAcC,GAChC,IACEz5Q,EAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnDslB,EAAawC,EAAiB,GAC9B05Q,EAAgB15Q,EAAiB,GACnCxuK,IAAgB,WACd,GAAIgsK,EAEF,OADAg8Q,IACO,WACLC,GACF,CAEJ,GAAG,CAACj8Q,IACJhsK,IAAgB,WAEd,OADAkob,GAAc,GACP,WACLA,GAAc,EAChB,CACF,GAAG,GACL,ECtBA,IAAIrnR,GAAY,CAAC,YAAa,QAAS,SAAU,cAAe,aAAc,gBAAiB,cAAe,SAAU,yBAyGxH,SAhGkCna,EAAAA,YAAiB,SAAU8+H,EAAUp7S,GACrE,IAAIhwC,EAAYorV,EAASprV,UACvBjC,EAAQqtV,EAASrtV,MACjB84P,EAASu0F,EAASv0F,OAClBk3P,EAAc3iK,EAAS2iK,YACvBC,EAAa5iK,EAAS4iK,WACtBC,EAAsB7iK,EAAS8iK,cAC/BC,EAAoB/iK,EAASgjK,YAC7B7ie,EAAS6/T,EAAS7/T,OAClB8ie,EAAwBjjK,EAASijK,sBACjC/9c,EAAQkiM,GAAyB44G,EAAU3kH,IAE3C2N,EAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnDgmC,EAAUle,EAAiB,GAC3Bs0J,EAAat0J,EAAiB,GAE9BrC,EADsBzlB,EAAAA,WAAiB2sR,IACTlnQ,UAI5Bu8Q,EAAgBP,GAA8B,SAAfC,EACnCpob,IAAgB,WACVmob,GACEO,IAAkBh8P,GACpBo2I,EAAW4lH,EAGjB,GAAG,CAACP,IACJ,IAOIQ,EAAsBjiS,EAAAA,QAAa,GACnCkiS,EAAmB,WACjBT,IAAgBQ,EAAoB7vd,UACtC6vd,EAAoB7vd,SAAU,EAC9Byvd,IAEJ,EAGAM,IAhByB,WACnBV,GACFE,GAEJ,GAY+BO,GAQ/B,OAAIT,EACkBzhS,EAAAA,cAAoB6pC,GAAWz+B,GAAS,CAC1D1nL,IAAKA,EACLsiN,QAASA,GACRuE,EAAQ,CACTlE,aAA6B,SAAfq7P,EACdp6P,iBAXmB,SAA0BuI,GAC3CmyP,IAAkBnyP,GACpBqyP,GAEJ,KAQM,SAAU9qW,EAAM24G,GAClB,IAAIC,EAAkB54G,EAAK1jJ,UACzBu8P,EAAc74G,EAAK3lJ,MACrB,OAAoBuuN,EAAAA,cAAoB,MAAO,CAC7Ct8K,IAAKqsN,EACLr8P,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,oBAAqBuqB,GAChEv+P,MAAOw+P,GACNwxP,EAAYjof,KAAI,SAAU8ze,GAC3B,IAAIrnQ,EAAY9zO,OAAOoD,OAAO,CAAC,GAAI6sf,GAA0B9U,EAAS5ke,MAAO4ke,EAAS5ke,OACpFwvB,EAAQo1c,EAASp1c,MACjBjnC,EAAMq8e,EAASr8e,IACf67e,EAAUQ,EAASR,QACnBC,EAAQO,EAASP,aACZ9mQ,EAAU31L,SACjB,IAAI+xc,EAAgB9S,GAAiBt+e,EAAK8wf,GAC1C,OAAoB/hS,EAAAA,cAAoBswR,GAAUllR,GAAS,CAAC,EAAG6a,EAAWo8Q,EAAe,CACvFnqd,MAAOA,EACPjZ,OAAQA,EACRvW,KAAM4ke,EAAS5ke,KACfzX,IAAKA,EACL67e,QAASA,EACTC,MAAOA,IAEX,IACF,IAEkB/sR,EAAAA,cAAoBswR,GAAUllR,GAAS,CACzD+iL,OAAQzqW,EACRhwC,UAAWA,EACXjC,MAAOA,GACNuyC,EAAO,CACR/kB,OAAQA,IAEZ,ICzEO,SAASqje,GAAeC,EAASC,EAAQvxf,GAC9C,IAAIwxf,EAAoBF,EAAQ7kf,WAAU,SAAUgL,GAClD,OAAOA,EAAKzX,MAAQA,CACtB,IACIyxf,EAAiBH,EAAQE,EAAoB,GAC7CE,EAAmBH,EAAO9kf,WAAU,SAAUgL,GAChD,OAAOA,EAAKzX,MAAQA,CACtB,IACA,GAAIyxf,EAAgB,CAClB,IAAIE,EAAiBJ,EAAO9kf,WAAU,SAAUgL,GAC9C,OAAOA,EAAKzX,MAAQyxf,EAAezxf,GACrC,IACA,OAAOuxf,EAAOrxf,MAAMwxf,EAAmB,EAAGC,EAC5C,CACA,OAAOJ,EAAOrxf,MAAMwxf,EAAmB,EACzC,CC3CA,IAAIxoR,GAAY,CAAC,YAAa,OAAQ,aAAc,YAAa,eAAgB,eAAgB,cAAe,aAAc,cAAe,kBAAmB,cAAe,WAAY,WAAY,kBAAmB,eAAgB,SAAU,SAAU,aAAc,UAAW,cAAe,YAAa,aAAc,UAAW,WAAY,YAAa,UAAW,SAAU,iBAAkB,oBAAqB,mBAW7Z0oR,GAAe,CACjBz0f,MAAO,EACPN,OAAQ,EACR6E,QAAS,OACT8E,SAAU,SACVK,QAAS,EACTmpI,OAAQ,EACRvzG,QAAS,EACT3/B,OAAQ,GAENgsB,GAAO,WAAiB,EACjB+oe,GAAa,kBAAkBnyf,OAAOhD,KAAKmiB,UAClDize,GAAa,CACf9xf,IAAK6xf,IAEIE,GAAe,CACxB/xf,IAAK6xf,GACL7xU,MAAO,EACP50K,MAAO,EACPgS,IAAK,IACLta,KAAMgvf,GACN9gM,MAAO,CAAC8gM,KAENE,GAAoB,CACtBnpe,OAAQ,KACRw2B,SAAU,GACVjiC,IAAK20e,GAAa30e,IAClB3F,KAAMq6e,GACN7qd,MAAO,KACPjnC,IAAK6xf,GAELhW,QAAS,GACTC,MAAO,IAKF,SAASmW,GAA+Bt2P,EAAM8xE,EAAS5wU,EAAQ0gU,GACpE,OAAgB,IAAZkQ,GAAsB5wU,EAGnB8+P,EAAKz7P,MAAM,EAAGxD,KAAK6K,KAAK1K,EAAS0gU,GAAc,GAF7C5hE,CAGX,CACA,SAAS7mB,GAAQ1nM,GAGf,OAAOwtM,GAFGxtM,EAAKptC,IACPotC,EAAKhwB,IAEf,CAUA,IAAItK,GAAwBi8M,EAAAA,YAAiB,SAAUh8K,EAAON,GAC5D,IAAI+hM,EAAYzhM,EAAMyhM,UACpB/8N,EAAOs7B,EAAMt7B,KAGbovd,GAFa9zb,EAAM0kO,WACP1kO,EAAMitc,UACHjtc,EAAM8zb,cACrB/8O,EAAe/2M,EAAM+2M,aACrB20P,EAAc1rc,EAAM0rc,YACpBF,EAAaxrc,EAAMwrc,WACnBC,EAAczrc,EAAMyrc,YACpBE,EAAkB3rc,EAAM2rc,gBACxB5jP,EAAc/nN,EAAM+nN,YACpB57M,EAAWnM,EAAMmM,SACjBsqW,EAAWz2W,EAAMy2W,SACjBm1F,EAAkB5rc,EAAM4rc,gBACxBC,EAAe7rc,EAAM6rc,aACrBtlP,EAASvmN,EAAMumN,OACfz8P,EAASk2C,EAAMl2C,OACf0gU,EAAaxqR,EAAMwqR,WACnBkQ,EAAU16R,EAAM06R,QAChBv4N,EAAcniE,EAAMmiE,YACpBupI,EAAY1rM,EAAM0rM,UAClByzQ,EAAan/c,EAAMm/c,WACnBjvH,EAAUlwV,EAAMkwV,QAChBlkJ,EAAWhsM,EAAMgsM,SACjBwK,EAAYx2M,EAAMw2M,UAClBC,EAAUz2M,EAAMy2M,QAChB44I,EAASrvV,EAAMqvV,OACf6G,EAAiBl2V,EAAMk2V,eACvBkpH,EAAoBp/c,EAAMo/c,kBAC1BC,EAAkBr/c,EAAMq/c,gBACxB3xG,EAAWxrK,GAAyBliM,EAAOm2L,IAGzC03K,EAAU7xL,EAAAA,OAAa,MACvBsjS,EAAoBtjS,EAAAA,OAAa,MACrCA,EAAAA,oBAA0Bt8K,GAAK,WAC7B,MAAO,CACLy5F,SAAU,SAAkBsnW,GAC1B5yF,EAAQz/W,QAAQ+qG,SAASsnW,EAC3B,EACA8e,eAAgB,WACd,OAAOD,EAAkBlxd,QAAQg0E,WACnC,EAEJ,IAGA,IACE0hI,EAAmBC,GADC/nB,EAAAA,SAAe83Q,GACgB,GACnD0rB,EAAmB17Q,EAAiB,GACpC27Q,EAAsB37Q,EAAiB,GAEvCkQ,EAAmBjQ,GADE/nB,EAAAA,SAAet3M,GACgB,GACpDquY,EAAW/+J,EAAiB,GAC5Bg/J,EAAch/J,EAAiB,GAE/Bke,EAAmBnuB,GADE/nB,EAAAA,SAAet3M,GACgB,GACpDg7e,EAAiBxtP,EAAiB,GAClCytP,EAAoBztP,EAAiB,GAErCa,EAAmBhvB,GADE/nB,EAAAA,SAAe,IACgB,GACpD4jS,EAAkB7sP,EAAiB,GACnC8sP,EAAqB9sP,EAAiB,GAEtCa,EAAoB7vB,GADC/nB,EAAAA,SAAe,MACiB,GACrD0hS,EAAa9pP,EAAkB,GAC/BksP,EAAgBlsP,EAAkB,GAGhCmsP,EAAU/jS,EAAAA,OAAat3M,GAE3B,SAASo5e,IACP,IAAIkC,EAAaD,EAAQ3xd,QACzB4kX,EAAYgtG,GACZL,EAAkBK,GAClBH,EAAmB,IACnBC,EAAc,MACdT,GACF,CARAU,EAAQ3xd,QAAU1pB,EAYlB4wD,IAAgB,WACdmqb,EAAoB3rB,GACpB,IAAImsB,ED7JD,WACL,IAAIl7d,EAAOntB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GAC3EyE,EAAOzE,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GAC3Esof,EAAUn7d,EAAKz7B,OACf03c,EAAU3kc,EAAK/S,OACnB,GAAoC,IAAhCK,KAAK6E,IAAI0xf,EAAUl/C,GACrB,MAAO,CACLrjb,KAAK,EACL1wB,IAAK,MAGT,SAASwM,EAAK8kf,EAASC,GACrB,IAAIt7a,EAAQ,IAAIhpC,IAChBqkd,EAAQt1f,SAAQ,SAAUgE,GACxBi2E,EAAMpxE,IAAI7E,GAAK,EACjB,IACA,IAAImB,EAAOowf,EAAOllf,QAAO,SAAUrM,GACjC,OAAQi2E,EAAMloE,IAAI/N,EACpB,IACA,OAAuB,IAAhBmB,EAAK9E,OAAe8E,EAAK,GAAK,IACvC,CACA,OAAI8xf,EAAUl/C,EACL,CACLrjb,KAAK,EACL1wB,IAAKwM,EAAKsrB,EAAM1oB,IAGb,CACLshB,KAAK,EACL1wB,IAAKwM,EAAK4C,EAAM0oB,GAEpB,CC8HuBo7d,CAAiBX,EAAkB1rB,GACtD,GAAyB,OAArBmsB,EAAahzf,IACf,GAAIgzf,EAAatie,IAAK,CACpB,IAAImxb,EAAW/7D,EAASr5Y,WAAU,SAAU05I,GAE1C,OADUA,EAAKnmJ,MACAgzf,EAAahzf,GAC9B,IACImzf,EAAalB,GAA+BZ,GAAevrG,EAAUruY,EAAMu7e,EAAahzf,KAAMytU,EAAS5wU,EAAQ0gU,GAC/G61L,EAAoBttG,EAAS5lZ,QACjCkzf,EAAkB/nd,OAAOw2a,EAAW,EAAG,EAAGmwC,IAC1CU,EAAkBU,GAClBR,EAAmBO,GACnBN,EAAc,OAChB,KAAO,CACL,IAAIQ,EAAY57e,EAAKhL,WAAU,SAAUmrK,GAEvC,OADUA,EAAM53K,MACDgzf,EAAahzf,GAC9B,IACIszf,EAAcrB,GAA+BZ,GAAe55e,EAAMquY,EAAUktG,EAAahzf,KAAMytU,EAAS5wU,EAAQ0gU,GAChHg2L,EAAqB97e,EAAKvX,QAC9Bqzf,EAAmBlod,OAAOgod,EAAY,EAAG,EAAGrB,IAC5CU,EAAkBa,GAClBX,EAAmBU,GACnBT,EAAc,OAChB,MACS/sG,IAAaruY,IAEtBsuY,EAAYtuY,GACZi7e,EAAkBj7e,GAEtB,GAAG,CAACovd,EAAcpvd,IAGlBs3M,EAAAA,WAAgB,WACTy6L,GACHqnG,GAEJ,GAAG,CAACrnG,IACJ,IAAI9uK,EAAa4e,EAASm5P,EAAiBh7e,EACvCq5e,EAAwB,CAC1BjqB,aAAcA,EACd/8O,aAAcA,EACdy0P,WAAYA,EACZC,YAAaA,EACbC,YAAaA,EACbC,gBAAiBA,EACjBC,gBAAiBA,EACjBC,aAAcA,EACd9jP,YAAaA,GAEf,OAAoB/rC,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMk0K,GAAWivH,GAA2BnjS,EAAAA,cAAoB,OAAQ,CAC9HvuN,MAAOoxf,GACP,YAAa,aAlJjB,SAA8Bxkd,GAG5B,IAFA,IAAI17B,EAAOvP,OAAOirC,EAAK31B,KAAKzX,KACxBmhC,EAAUiM,EACPjM,EAAQtY,QACbsY,EAAUA,EAAQtY,OAClBnX,EAAO,GAAGhS,OAAOyhC,EAAQ1pB,KAAKzX,IAAK,OAAON,OAAOgS,GAEnD,OAAOA,CACT,CA2IK8hf,CAAqBtB,IAA2BnjS,EAAAA,cAAoB,MAAO,KAAmBA,EAAAA,cAAoB,QAAS,CAC5HvuN,MAAOoxf,GACP1yc,UAAwB,IAAdu/L,GAAuBv/L,EACjC6/L,UAAwB,IAAdN,EAAsBM,EAAW,KAC3CwK,UAAWA,EACXC,QAASA,EACT44I,OAAQA,EACRtoY,MAAO,GACPoiP,SAAUpzN,GACV,aAAc,uBACEimM,EAAAA,cAAoB,MAAO,CAC3CtsN,UAAW,GAAG/C,OAAO80O,EAAW,aAChC,eAAe,EACfh0O,MAAO,CACL+F,SAAU,WACV8uO,cAAe,OACft6G,WAAY,SACZl+H,OAAQ,EACR2J,SAAU,SACVwpI,OAAQ,EACRvzG,QAAS,IAEGsyL,EAAAA,cAAoB,MAAO,CACzCtsN,UAAW,GAAG/C,OAAO80O,EAAW,YAClBzlB,EAAAA,cAAoB,MAAO,CACzCt8K,IAAK4/c,EACL5vf,UAAW,GAAG/C,OAAO80O,EAAW,oBACfzlB,EAAAA,cAAoB4rR,GAAaxgR,GAAS,CAAC,EAAGsmL,EAAU,CACzEhpY,KAAMijO,EACN5F,QAASA,GACTj4O,OAAQA,EACRivZ,YAAY,EACZr+E,QAASA,EACTlQ,WAAYA,EACZroN,YAAaA,EACbs/H,UAAW,GAAG90O,OAAO80O,EAAW,SAChC/hM,IAAKmuW,EACLt3J,KAAM,OACN7Q,gBAAiB,SAAyBytK,GAKpCA,EAAW35Y,OAAM,SAAU6gC,GAC7B,OAAO0nM,GAAQ1nM,KAAUykd,EAC3B,KACEhB,GAEJ,KACE,SAAUxU,GACZ,IAAIj/d,EAAMi/d,EAASj/d,IACjB43N,EAAY9zO,OAAOoD,OAAO,CAAC,GAAI6sf,GAA0B9U,EAAS5ke,MAAO4ke,EAAS5ke,OAClFwvB,EAAQo1c,EAASp1c,MACjBjnC,EAAMq8e,EAASr8e,IACf67e,EAAUQ,EAASR,QACnBC,EAAQO,EAASP,MACftlO,EAAY57B,GAAO56O,EAAKod,UACrB43N,EAAUh1O,WACVg1O,EAAU31L,SACjB,IAAI+xc,EAAgB9S,GAAiB9nO,EAAWs6O,GAChD,OAAoB/hS,EAAAA,cAAoB0kS,GAAgBt5R,GAAS,CAAC,EAAG6a,EAAWo8Q,EAAe,CAC7Fnqd,MAAOA,EACPjZ,SAAUkke,GAAclyf,IAAQkyf,EAAWlyf,IAC3Cod,IAAKA,EACL3F,KAAM4ke,EAAS5ke,KACfoke,QAASA,EACTC,MAAOA,EACPxiP,OAAQA,EACRk3P,YAAaxwf,IAAQ6xf,GAAac,EAAkB,KACpDlC,WAAYA,EACZE,cAAewB,EACftB,YAAaA,EACbC,sBAAuBA,EACvB3/O,YAAa,WACX83H,EAAe,KACjB,IAEJ,IACF,IAIA,YC1QA,IACIyqH,GAAoB,SAAU3hR,GAChCC,GAAU0hR,EAAM3hR,GAChB,IAAIx8M,EAAS08M,GAAayhR,GAC1B,SAASA,IACP,IAAI/9d,EACJu8M,GAAgBh3O,KAAMw4f,GACtB,IAAK,IAAIloR,EAAO7gO,UAAUtO,OAAQs3f,EAAQ,IAAI53f,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAChFkoR,EAAMloR,GAAQ9gO,UAAU8gO,GA4zB1B,OA1zBA91M,EAAQJ,EAAOt6B,KAAKsa,MAAMggB,EAAQ,CAACr6B,MAAMwE,OAAOi0f,KAChD5gZ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,aAAa,IAC5Do9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,6BAAyB,IACxEo9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,oBAAqB,CAAC,IACrEo9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,QAAS,CACtDmlO,YAAa,CAAC,EACd6rO,OAAQ,KACR78O,aAAc,GACd20P,YAAa,GACbC,gBAAiB,GACjBH,WAAY,GACZC,YAAa,GACb3X,aAAc,GACd0b,gBAAiB,KACjB0B,iBAAkB,GAIlBxB,cAAe,KACf7D,aAAc,KAEd8D,iBAAkB,KAElBZ,gBAAiB,KAEjB+D,cAAe,KAEfJ,aAAa,EAKb9G,gBAAiB,KACjBiV,SAAU,GACVC,aAAc,GACd5wH,SAAS,EACT5+I,UAAW,KACXyvQ,cAAc,EACdh1E,UAAW,KACX7/B,WAAYD,QAEdjsS,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,yBAA0B,OACzEo9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,gBAAiB,OAChEo9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,mCAAoC,OACnFo9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,UAAwBo5L,EAAAA,cACvEh8G,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,mBAAmB,SAAU2+B,EAAOy/b,GACjF,IAAIC,EAAcr+d,EAAMpwB,MACtBshe,EAAemtB,EAAYntB,aAC3B/rO,EAAck5P,EAAYl5P,YACxB8nP,EAAcjtd,EAAMod,MAAM6vc,YAC1BvlQ,EAAW02Q,EAAU12Q,SACzB1nN,EAAM2ud,cAAgByP,EACtBp+d,EAAMs+d,uBAAyB,CAC7Bpue,EAAGyuC,EAAMhG,QACTr+B,EAAGqkC,EAAM/F,SAEX,IAAIsib,EAAkB+S,GAAO/c,EAAcxpP,GAC3C1nN,EAAMy7E,SAAS,CACbmxY,gBAAiBllQ,EACjB4mQ,iBAAkBF,GAAoB1mQ,EAAUyd,GAChD6rO,OAAQhxc,EAAMirX,QAAQz/W,QAAQmxd,mBAEhC38d,EAAMu+d,gBAAgBrjB,GACtBpwe,OAAOgD,iBAAiB,UAAWkyB,EAAMw+d,iBACzB,OAAhBvR,QAAwC,IAAhBA,GAA0BA,EAAY,CAC5Dtub,MAAOA,EACPxxD,KAAMm8e,GAA4B8U,IAEtC,KAQAhhZ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,mBAAmB,SAAU2+B,EAAOy/b,GACjF,IAAIK,EAAez+d,EAAMpwB,MACvBshe,EAAeutB,EAAavtB,aAC5B/rO,EAAcs5P,EAAat5P,YAC3BmpP,EAAmBmQ,EAAanQ,iBAChC4P,EAAeO,EAAaP,aAC5BltB,EAASytB,EAAaztB,OACpB19O,EAActzN,EAAMod,MACtBgwc,EAAc95P,EAAY85P,YAC1B/oC,EAAW/wN,EAAY+wN,SACvByqC,EAAYx7P,EAAYw7P,UACxB9rX,EAAYswH,EAAYtwH,UACtBv7G,EAAM22e,EAAU32e,IAClBigO,EAAW02Q,EAAU12Q,SAMvB,GAHI1nN,EAAM0+d,mCAAqCh3Q,IAC7C1nN,EAAM0+d,iCAAmCh3Q,GAEtC1nN,EAAM2ud,cAAX,CAIA,IAAIgQ,EAAoBjQ,GAAiB/vb,EAAO3+B,EAAM2ud,cAAeyP,EAAWptB,EAAQhxc,EAAMs+d,uBAAwBxP,EAAWoP,EAAc/4P,EAAa+rO,EAAcluW,GACxKimX,EAAe0V,EAAkB1V,aACjCkD,EAAkBwS,EAAkBxS,gBACpCW,EAAgB6R,EAAkB7R,cAClCC,EAAmB4R,EAAkB5R,iBACrCmD,EAAgByO,EAAkBzO,cAClCJ,EAAc6O,EAAkB7O,YAChC9G,EAAkB2V,EAAkB3V,iBAGtCsF,EAAiB54e,SAASo3e,IAEzBgD,GAMI9vd,EAAM4+d,wBACT5+d,EAAM4+d,sBAAwB,CAAC,GAEjCrzf,OAAOC,KAAKw0B,EAAM4+d,uBAAuBv4f,SAAQ,SAAUgE,GACzDi7D,aAAatlC,EAAM4+d,sBAAsBv0f,GAC3C,IACI21B,EAAM2ud,cAAcjnQ,WAAa02Q,EAAU12Q,WAK7C/oL,EAAMnH,UACNx3B,EAAM4+d,sBAAsBn3e,GAAO3c,OAAO2nB,YAAW,WACnD,GAAoC,OAAhCuN,EAAMpwB,MAAMg9e,gBAAhB,CAGA,IAAI1R,EAAkB3yP,GAAmB2oP,GACrCl1P,EAASoqQ,GAAUjhP,EAAai5P,EAAU12Q,UAC1C1L,IAAWA,EAAOtyL,UAAY,IAAIhjD,SACpCw0e,EAAkBgT,GAAOhd,EAAcktB,EAAU12Q,WAE9C1nN,EAAMod,MAAMv0C,eAAe,iBAC9Bm3B,EAAMu+d,gBAAgBrjB,GAEX,OAAb72B,QAAkC,IAAbA,GAAuBA,EAAS62B,EAAiB,CACpE/te,KAAMm8e,GAA4B8U,GAClChjN,UAAU,EACV3mP,YAAakK,EAAMlK,aAZrB,CAcF,GAAG,MAIDz0B,EAAM2ud,cAAcjnQ,WAAaolQ,GAAqC,IAApBX,GAMtDnsd,EAAMy7E,SAAS,CACbutY,gBAAiBA,EACjBC,aAAcA,EACdkD,gBAAiBA,EACjBW,cAAeA,EACfC,iBAAkBA,EAClBmD,cAAeA,EACfJ,YAAaA,IAEC,OAAhB1C,QAAwC,IAAhBA,GAA0BA,EAAY,CAC5Dzub,MAAOA,EACPxxD,KAAMm8e,GAA4B8U,GAClCltB,aAAcA,KAjBdlxc,EAAM6+d,kBAvCN7+d,EAAM6+d,gBAdR,MAFE7+d,EAAM6+d,gBA0EV,KACAzhZ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,kBAAkB,SAAU2+B,EAAOy/b,GAChF,IAAIU,EAAe9+d,EAAMpwB,MACvB0+e,EAAmBwQ,EAAaxQ,iBAChC4P,EAAeY,EAAaZ,aAC5B/4P,EAAc25P,EAAa35P,YAC3B+rO,EAAe4tB,EAAa5tB,aAC5BF,EAAS8tB,EAAa9tB,OACpBlmL,EAAe9qR,EAAMod,MACvBkwc,EAAaxiM,EAAawiM,WAC1BwB,EAAYhkM,EAAagkM,UACzB9rX,EAAY8nL,EAAa9nL,UAC3B,GAAKhjG,EAAM2ud,cAAX,CAGA,IAAIoQ,EAAqBrQ,GAAiB/vb,EAAO3+B,EAAM2ud,cAAeyP,EAAWptB,EAAQhxc,EAAMs+d,uBAAwBxP,EAAWoP,EAAc/4P,EAAa+rO,EAAcluW,GACzKimX,EAAe8V,EAAmB9V,aAClCkD,EAAkB4S,EAAmB5S,gBACrCW,EAAgBiS,EAAmBjS,cACnCC,EAAmBgS,EAAmBhS,iBACtCmD,EAAgB6O,EAAmB7O,cACnCJ,EAAciP,EAAmBjP,YACjC9G,EAAkB+V,EAAmB/V,iBACnCsF,EAAiB54e,SAASo3e,IAAmBgD,IAQ7C9vd,EAAM2ud,cAAcjnQ,WAAaolQ,GAAqC,IAApBX,EACjB,OAA7Bnsd,EAAMpwB,MAAMq5e,cAAyD,OAAhCjpd,EAAMpwB,MAAMu8e,iBAA0D,OAA9Bnsd,EAAMpwB,MAAMk9e,eAA2D,OAAjC9sd,EAAMpwB,MAAMm9e,kBAA2D,OAA9B/sd,EAAMpwB,MAAMsgf,gBAAsD,IAA5Blwd,EAAMpwB,MAAMkgf,aAAyD,OAAhC9vd,EAAMpwB,MAAMo5e,iBACvPhpd,EAAM6+d,iBAEG5V,IAAiBjpd,EAAMpwB,MAAMq5e,cAAgBkD,IAAoBnsd,EAAMpwB,MAAMu8e,iBAAmBW,IAAkB9sd,EAAMpwB,MAAMk9e,eAAiBC,IAAqB/sd,EAAMpwB,MAAMm9e,kBAAoBmD,IAAkBlwd,EAAMpwB,MAAMsgf,eAAiBJ,IAAgB9vd,EAAMpwB,MAAMkgf,aAAe9G,IAAoBhpd,EAAMpwB,MAAMo5e,iBACzUhpd,EAAMy7E,SAAS,CACbwtY,aAAcA,EACdkD,gBAAiBA,EACjBW,cAAeA,EACfC,iBAAkBA,EAClBmD,cAAeA,EACfJ,YAAaA,EACb9G,gBAAiBA,IAGN,OAAfsE,QAAsC,IAAfA,GAAyBA,EAAW,CACzD3ub,MAAOA,EACPxxD,KAAMm8e,GAA4B8U,KAlCpC,CAoCF,KACAhhZ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,mBAAmB,SAAU2+B,EAAOy/b,GAG7Ep+d,EAAM0+d,mCAAqCN,EAAU12Q,UAAa/oL,EAAM1H,cAAc3lD,SAASqtD,EAAMpF,iBACvGv5B,EAAM6+d,iBACN7+d,EAAM0+d,iCAAmC,MAE3C,IAAIlR,EAAcxtd,EAAMod,MAAMowc,YACd,OAAhBA,QAAwC,IAAhBA,GAA0BA,EAAY,CAC5D7ub,MAAOA,EACPxxD,KAAMm8e,GAA4B8U,IAEtC,KAGAhhZ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,mBAAmB,SAAU2+B,GAC1E3+B,EAAM6td,cAAclvb,EAAO,MAAM,GACjC7zD,OAAOukD,oBAAoB,UAAWrvB,EAAMw+d,gBAC9C,KAEAphZ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,iBAAiB,SAAU2+B,EAAOy/b,GAC/E,IAAIxQ,EAAY5td,EAAMod,MAAMwwc,UAC5B5td,EAAMy7E,SAAS,CACbutY,gBAAiB,OAEnBhpd,EAAMg/d,iBACQ,OAAdpR,QAAoC,IAAdA,GAAwBA,EAAU,CACtDjvb,MAAOA,EACPxxD,KAAMm8e,GAA4B8U,KAEpCp+d,EAAM2ud,cAAgB,KACtB7jf,OAAOukD,oBAAoB,UAAWrvB,EAAMw+d,gBAC9C,KACAphZ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,cAAc,SAAU2+B,EAAOjoC,GAC5E,IAAIuoe,EACAC,EAAclqf,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAC7Emqf,EAAen/d,EAAMpwB,MACvB0+e,EAAmB6Q,EAAa7Q,iBAChCrF,EAAekW,EAAalW,aAC5B6D,EAAgBqS,EAAarS,cAC7BoD,EAAgBiP,EAAajP,cAE/B,GADgBiP,EAAarP,YAC7B,CAGA,IAAIpC,EAAS1td,EAAMod,MAAMswc,OAKzB,GAJA1td,EAAMy7E,SAAS,CACbutY,gBAAiB,OAEnBhpd,EAAMg/d,iBACgB,OAAlBlS,EAAJ,CACA,IAAIsS,EAAwBrhR,GAAcA,GAAc,CAAC,EAAG4qQ,GAAiBmE,EAAe9sd,EAAMq/d,6BAA8B,CAAC,EAAG,CAClIhne,QAA2D,QAAjD4me,EAAsBj/d,EAAMs/d,uBAAqD,IAAxBL,OAAiC,EAASA,EAAoB50f,OAASyif,EAC1Ihre,KAAMske,GAAUpmd,EAAMpwB,MAAMu1P,YAAa2nP,GAAe3/e,OAEtDoyf,EAAcjR,EAAiB54e,SAASo3e,GAC5C3oR,IAASo7R,EAAa,+FACtB,IAAI9Q,EAASN,GAAS+B,GAClBsP,EAAa,CACf7gc,MAAOA,EACPxxD,KAAMm8e,GAA4B8V,GAClCpP,SAAUhwd,EAAM2ud,cAAgBrF,GAA4Btpd,EAAM2ud,eAAiB,KACnF8Q,cAAe,CAACz/d,EAAM2ud,cAAcjnQ,UAAU39O,OAAOukf,GACrDoR,UAA4B,IAAjBzW,EACXA,aAAcA,EAAex8e,OAAOgif,EAAOA,EAAO/nf,OAAS,KAExDw4f,GACQ,OAAXxR,QAA8B,IAAXA,GAAqBA,EAAO8R,GAEjDx/d,EAAM2ud,cAAgB,IAnBY,CANlC,CA0BF,KACAvxY,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,kBAAkB,WAEvC,OADFA,EAAMpwB,MAAMg9e,iBAEhC5sd,EAAMy7E,SAAS,CACbmxY,gBAAiB,KACjB3D,aAAc,KACd8D,iBAAkB,KAClBD,cAAe,KACfX,gBAAiB,KACjB2D,aAAa,EACb9G,gBAAiB,OAGrBhpd,EAAMs+d,uBAAyB,KAC/Bt+d,EAAM0+d,iCAAmC,IAC3C,KACAthZ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,6BAA6B,SAAUjN,EAAG2zd,GACvF,IAAIiZ,EAAe3/d,EAAMpwB,MACvBshe,EAAeyuB,EAAazuB,aAC5BgtB,EAAeyB,EAAazB,aAC1B9iN,EAAWsrM,EAAStrM,SACtB/wS,EAAMq8e,EAASr8e,IAEjB,KADWq8e,EAASmD,QACN92d,EAAEimC,UAAYjmC,EAAEmmC,SAAWnmC,EAAEgmC,SAA3C,CAGA,IAAI5rD,EAAO+wf,EAAaxnf,QAAO,SAAUkpf,GACvC,OAAOA,EAASv1f,MAAQA,CAC1B,IAAG,GACCw1f,EAAYvW,GAA4BvrQ,GAAcA,GAAc,CAAC,EAAG4qQ,GAAiBt+e,EAAK21B,EAAMq/d,6BAA8B,CAAC,EAAG,CACxIv9e,KAAM3U,EAAK2U,QAEbke,EAAMu+d,gBAAgBnjN,EAAW6yM,GAAO/c,EAAc7me,GAAO6jf,GAAOhd,EAAc7me,IAClF21B,EAAMord,aAAar4d,EAAG8se,EARtB,CASF,KACAziZ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,eAAe,SAAUjN,EAAG2zd,GACzE,IAAIx7L,EAAelrR,EAAMod,MACvBs8B,EAAUwxO,EAAaxxO,QAEJ,UADJwxO,EAAa40M,cAE5B9/d,EAAM+/d,0BAA0Bhte,EAAG2zd,GAEzB,OAAZhta,QAAgC,IAAZA,GAAsBA,EAAQ3mD,EAAG2zd,EACvD,KACAtpY,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,qBAAqB,SAAUjN,EAAG2zd,GAC/E,IAAIj7L,EAAezrR,EAAMod,MACvBqvc,EAAgBhhM,EAAaghM,cAEV,gBADJhhM,EAAaq0M,cAE5B9/d,EAAM+/d,0BAA0Bhte,EAAG2zd,GAEnB,OAAlB+F,QAA4C,IAAlBA,GAA4BA,EAAc15d,EAAG2zd,EACzE,KACAtpY,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,gBAAgB,SAAUjN,EAAG2zd,GAC1E,IAAIvyP,EAAen0N,EAAMpwB,MAAMukP,aAC3B6rQ,EAAehge,EAAMpwB,MACvBu1P,EAAc66P,EAAa76P,YAC3BmkJ,EAAa02G,EAAa12G,WACxB18F,EAAe5sR,EAAMod,MACvB6kO,EAAW2qC,EAAa3qC,SACxBzoM,EAAWozO,EAAapzO,SACtBnwB,EAAWq9b,EAASr9b,SACpBh/C,EAAMq8e,EAASp9F,EAAWj/Y,KAC1B41f,GAAkB52c,EAYlB62c,GAJF/rQ,EALG8rQ,EAEOzmb,EAGK00a,GAAO/5P,EAAc9pP,GAFrB,CAACA,GAFD4jf,GAAO95P,EAAc9pP,IAQLuI,KAAI,SAAU88c,GAC7C,IAAI1zO,EAASoqQ,GAAUjhP,EAAauqN,GACpC,OAAO1zO,EAASA,EAAO7uO,KAAO,IAChC,IAAGuJ,OAAOY,SACV0oB,EAAMmge,qBAAqB,CACzBhsQ,aAAcA,IAEH,OAAb8tB,QAAkC,IAAbA,GAAuBA,EAAS9tB,EAAc,CACjEx1L,MAAO,SACPtV,SAAU42c,EACV9yf,KAAMu5e,EACNwZ,cAAeA,EACfzrc,YAAa1hC,EAAE0hC,aAEnB,KACA2oD,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,eAAe,SAAUjN,EAAG2zd,EAAUr+b,GACnF,IAUI+3c,EAVAC,EAAerge,EAAMpwB,MACvBu1P,EAAck7P,EAAal7P,YAC3Bm7P,EAAiBD,EAAavX,YAC9ByX,EAAqBF,EAAatX,gBAChCj7L,EAAe9tR,EAAMod,MACvB84c,EAAgBpoM,EAAaooM,cAC7B5L,EAAUx8L,EAAaw8L,QACrBjgf,EAAMq8e,EAASr8e,IAIfm2f,EAAW,CACb7hc,MAAO,QACPxxD,KAAMu5e,EACNr+b,QAASA,EACToM,YAAa1hC,EAAE0hC,aAEjB,GAAIyhc,EAAe,CACjB,IAAIpN,EAAczgc,EAAU6lc,GAAOoS,EAAgBj2f,GAAO4jf,GAAOqS,EAAgBj2f,GAEjF+1f,EAAa,CACX/3c,QAASygc,EACTI,YAHoB+E,GAAOsS,EAAoBl2f,IAKjDm2f,EAASC,aAAe3X,EAAYl2e,KAAI,SAAU8tf,GAChD,OAAOta,GAAUjhP,EAAau7P,EAChC,IAAGhqf,OAAOY,SAAS1E,KAAI,SAAUopO,GAC/B,OAAOA,EAAO7uO,IAChB,IACA6yB,EAAMmge,qBAAqB,CACzBrX,YAAaA,GAEjB,KAAO,CAEL,IAAI6X,EAAgB/P,GAAa,GAAG7mf,OAAOw+O,GAAmB+3Q,GAAiB,CAACj2f,KAAO,EAAM86P,GAC3Fy7P,EAAeD,EAAc7X,YAC7B+X,EAAmBF,EAAc5X,gBAGnC,IAAK1gc,EAAS,CACZ,IAAIiwc,EAAS,IAAIj4c,IAAIugd,GACrBtI,EAAOhkc,OAAOjqD,GACd,IAAIy2f,EAAiBlQ,GAAaxqf,MAAM8J,KAAKoof,GAAS,CACpDjwc,SAAS,EACT0gc,gBAAiB8X,GAChB17P,GACHy7P,EAAeE,EAAehY,YAC9B+X,EAAmBC,EAAe/X,eACpC,CACAqX,EAAaQ,EAGbJ,EAASC,aAAe,GACxBD,EAASO,sBAAwB,GACjCP,EAASzX,gBAAkB8X,EAC3BD,EAAav6f,SAAQ,SAAUq6f,GAC7B,IAAI1kR,EAASoqQ,GAAUjhP,EAAau7P,GACpC,GAAK1kR,EAAL,CACA,IAAI7uO,EAAO6uO,EAAO7uO,KAChBsa,EAAMu0N,EAAOv0N,IACf+4e,EAASC,aAAar5f,KAAK+F,GAC3Bqzf,EAASO,sBAAsB35f,KAAK,CAClC+F,KAAMA,EACNsa,IAAKA,GANY,CAQrB,IACAuY,EAAMmge,qBAAqB,CACzBrX,YAAa8X,IACZ,EAAO,CACR7X,gBAAiB8X,GAErB,CACY,OAAZvW,QAAgC,IAAZA,GAAsBA,EAAQ8V,EAAYI,EAChE,KACApjZ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,cAAc,SAAU0md,GACrE,IAAI0K,EACA/mf,EAAMq8e,EAASr8e,IAIf2xO,EAASoqQ,GAHKpmd,EAAMpwB,MAAMu1P,YAGM96P,GACpC,GAAe,OAAX2xO,QAA8B,IAAXA,GAA8D,QAAxCo1Q,EAAmBp1Q,EAAOtyL,gBAA2C,IAArB0nc,IAA+BA,EAAiB1qf,OAA7I,CAGA,IAAIs6f,EAAc,IAAIzyf,SAAQ,SAAUM,EAAS6lB,GAE/CsL,EAAMy7E,UAAS,SAAU+0C,GACvB,IAAIywW,EAAkBzwW,EAAKo4V,WACzBA,OAAiC,IAApBqY,EAA6B,GAAKA,EAC/CC,EAAmB1wW,EAAKq4V,YACxBA,OAAmC,IAArBqY,EAA8B,GAAKA,EAC/C3yM,EAAevuR,EAAMod,MACvBkuc,EAAW/8L,EAAa+8L,SACxB1oD,EAASr0I,EAAaq0I,OACxB,OAAK0oD,GAAY1C,EAAWlze,SAASrL,IAAQw+e,EAAYnze,SAASrL,GACzD,MAIKihf,EAAS5E,GACflhf,MAAK,WACX,IACI27f,EAAgBjT,GADIlud,EAAMpwB,MAAMg5e,WACUv+e,GAInC,OAAXu4b,QAA8B,IAAXA,GAAqBA,EAAOu+D,EAAe,CAC5Dxic,MAAO,OACPxxD,KAAMu5e,IAER1md,EAAMmge,qBAAqB,CACzBvX,WAAYuY,IAEdnhe,EAAMy7E,UAAS,SAAU4pJ,GACvB,MAAO,CACLwjP,YAAaoF,GAAO5oP,EAAUwjP,YAAax+e,GAE/C,IACAwE,GACF,IAAGioB,OAAM,SAAU/D,GASjB,GARAiN,EAAMy7E,UAAS,SAAU4pJ,GACvB,MAAO,CACLwjP,YAAaoF,GAAO5oP,EAAUwjP,YAAax+e,GAE/C,IAGA21B,EAAMohe,kBAAkB/2f,IAAQ21B,EAAMohe,kBAAkB/2f,IAAQ,GAAK,EACjE21B,EAAMohe,kBAAkB/2f,IAzgBlB,GAygB2C,CACnD,IAAIg3f,EAAoBrhe,EAAMpwB,MAAMg5e,WACpCzkR,IAAQ,EAAO,oEACfnkM,EAAMmge,qBAAqB,CACzBvX,WAAYsF,GAAOmT,EAAmBh3f,KAExCwE,GACF,CACA6lB,EAAO3B,EACT,IACO,CACL81d,YAAaqF,GAAOrF,EAAax+e,IAErC,GACF,IAIA,OADA22f,EAAYlqe,OAAM,WAAa,IACxBkqe,CA/DP,CAgEF,KACA5jZ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,oBAAoB,SAAU2+B,EAAOxxD,GAClF,IAAIqlP,EAAexyN,EAAMod,MAAMo1M,aACd,OAAjBA,QAA0C,IAAjBA,GAA2BA,EAAa,CAC/D7zL,MAAOA,EACPxxD,KAAMA,GAEV,KACAiwG,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,oBAAoB,SAAU2+B,EAAOxxD,GAClF,IAAIslP,EAAezyN,EAAMod,MAAMq1M,aACd,OAAjBA,QAA0C,IAAjBA,GAA2BA,EAAa,CAC/D9zL,MAAOA,EACPxxD,KAAMA,GAEV,KACAiwG,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,qBAAqB,SAAU2+B,EAAOxxD,GACnF,IAAIm0f,EAAethe,EAAMod,MAAMkkd,aAC3BA,IACF3ic,EAAMrH,iBACNgqc,EAAa,CACX3ic,MAAOA,EACPxxD,KAAMA,IAGZ,KACAiwG,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,WAAW,WACxD,IAAI6zN,EAAU7zN,EAAMod,MAAMy2M,QAC1B7zN,EAAMy7E,SAAS,CACb6xR,SAAS,IAEX,IAAK,IAAIr3J,EAAQjhO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAM6vO,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFxmN,EAAKwmN,GAASlhO,UAAUkhO,GAEd,OAAZ2d,QAAgC,IAAZA,GAAsBA,EAAQj0O,WAAM,EAAQ8P,EAClE,KACA0tF,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,UAAU,WACvD,IAAIysW,EAASzsW,EAAMod,MAAMqvV,OACzBzsW,EAAMy7E,SAAS,CACb6xR,SAAS,IAEXttW,EAAMszW,eAAe,MACrB,IAAK,IAAI13H,EAAQ5mQ,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMw1Q,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFnsP,EAAKmsP,GAAS7mQ,UAAU6mQ,GAEf,OAAX4wH,QAA8B,IAAXA,GAAqBA,EAAO7sX,WAAM,EAAQ8P,EAC/D,KACA0tF,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,4BAA4B,WACzE,IAAIuhe,EAAevhe,EAAMpwB,MAUzB,MAAO,CACLshe,aAVeqwB,EAAarwB,cAUE,GAC9B/8O,aAVeotQ,EAAaptQ,cAUE,GAC9By0P,WAVa2Y,EAAa3Y,YAUA,GAC1BC,YAVc0Y,EAAa1Y,aAUC,GAC5BC,YAVcyY,EAAazY,aAUC,GAC5BC,gBAVkBwY,EAAaxY,iBAUK,GACpCC,gBAVkBuY,EAAavY,gBAW/BC,aAVesY,EAAatY,aAW5B9jP,YAVco8P,EAAap8P,YAY/B,KAGA/nJ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,mBAAmB,SAAUkxc,GAC1E,IAAIswB,EAAexhe,EAAMpwB,MAGrBsuf,EAAenX,GAFNya,EAAavD,SAEmB/sB,EAD9BswB,EAAal4G,YAE5BtpX,EAAMmge,qBAAqB,CACzBjvB,aAAcA,EACdgtB,aAAcA,IACb,EACL,KACA9gZ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,gBAAgB,SAAUjN,EAAG2zd,GAC1E,IAAIxV,EAAelxc,EAAMpwB,MAAMshe,aAC3BuwB,EAAgBzhe,EAAMpwB,MACxBuuf,EAAesD,EAActD,aAC7B70G,EAAam4G,EAAcn4G,WACzBo4G,EAAe1he,EAAMod,MACvBina,EAAWq9C,EAAar9C,SACxBinC,EAAWoW,EAAapW,SACtBlwM,EAAWsrM,EAAStrM,SACpB/wS,EAAMq8e,EAASp9F,EAAWj/Y,KAG9B,IAAI8zf,EAAJ,CAKA,IAAIwD,EAAUzwB,EAAax7d,SAASrL,GAChCu3f,GAAkBxmN,EAWtB,GAVAj3E,GAAQi3E,GAAYumN,IAAYvmN,IAAaumN,EAAS,0CACtDzwB,EAAe0wB,EAAiB1T,GAAOhd,EAAc7me,GAAO4jf,GAAO/c,EAAc7me,GACjF21B,EAAMu+d,gBAAgBrtB,GACT,OAAb7sB,QAAkC,IAAbA,GAAuBA,EAAS6sB,EAAc,CACjE/je,KAAMu5e,EACNtrM,SAAUwmN,EACVntc,YAAa1hC,EAAE0hC,cAIbmtc,GAAkBtW,EAAU,CAC9B,IAAI0V,EAAchhe,EAAMurd,WAAW7E,GAC/Bsa,GACFA,EAAYx7f,MAAK,WAEf,IAAIq8f,EAAqB9a,GAAgB/md,EAAMpwB,MAAMquf,SAAU/sB,EAAc5nF,GAC7EtpX,EAAMmge,qBAAqB,CACzBjC,aAAc2D,GAElB,IAAG/qe,OAAM,WACP,IACIgre,EAAwB7T,GADFjud,EAAMpwB,MAAMshe,aACkB7me,GACxD21B,EAAMu+d,gBAAgBuD,EACxB,GAEJ,CA9BA,CA+BF,KACA1kZ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,qBAAqB,WAClEA,EAAMmge,qBAAqB,CACzBhC,cAAc,GAElB,KACA/gZ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,mBAAmB,WAChEvN,YAAW,WACTuN,EAAMmge,qBAAqB,CACzBhC,cAAc,GAElB,GACF,KAEA/gZ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,kBAAkB,SAAU+he,GACzE,IAAIrzQ,EAAY1uN,EAAMpwB,MAAM8+O,UACxBszQ,EAAehie,EAAMod,MACvBk2V,EAAiB0uH,EAAa1uH,eAC9B2uH,EAAwBD,EAAaE,iBACrCA,OAA6C,IAA1BD,EAAmC,EAAIA,EACxDvzQ,IAAcqzQ,IAGlB/he,EAAMy7E,SAAS,CACbizI,UAAWqzQ,IAEQ,OAAjBA,GACF/he,EAAMu2G,SAAS,CACblsI,IAAK03f,EACL1hc,OAAQ6hc,IAGO,OAAnB5uH,QAA8C,IAAnBA,GAA6BA,EAAeyuH,GACzE,KACA3kZ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,iBAAiB,WAC9D,IAAImie,EAAgBnie,EAAMpwB,MACxB8+O,EAAYyzQ,EAAczzQ,UAC1BwvQ,EAAeiE,EAAcjE,aAC/B,OAAkB,OAAdxvQ,EACK,KAEFwvQ,EAAarnf,MAAK,SAAUorK,GAEjC,OADUA,EAAM53K,MACDqkP,CACjB,KAAM,IACR,KACAtxI,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,mBAAmB,SAAUqgC,GAC1E,IAAI+hc,EAAgBpie,EAAMpwB,MACxBsuf,EAAekE,EAAclE,aAC7BxvQ,EAAY0zQ,EAAc1zQ,UACxBj5O,EAAQyof,EAAapnf,WAAU,SAAU6uP,GAE3C,OADUA,EAAMt7P,MACDqkP,CACjB,KAGe,IAAXj5O,GAAgB4qD,EAAS,IAC3B5qD,EAAQyof,EAAax3f,QAGvB,IAAI+wC,EAAOymd,EADXzof,GAASA,EAAQ4qD,EAAS69b,EAAax3f,QAAUw3f,EAAax3f,QAE9D,GAAI+wC,EAAM,CACR,IAAIwkO,EAAQxkO,EAAKptC,IACjB21B,EAAMszW,eAAer3H,EACvB,MACEj8O,EAAMszW,eAAe,KAEzB,KACAl2R,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,aAAa,SAAU2+B,GACpE,IAAI0jc,EAAgBrie,EAAMpwB,MACxB8+O,EAAY2zQ,EAAc3zQ,UAC1BwiP,EAAemxB,EAAcnxB,aAC7B4X,EAAcuZ,EAAcvZ,YAC5Bx/F,EAAa+4G,EAAc/4G,WACzBg5G,EAAgBtie,EAAMod,MACxBw2M,EAAY0uQ,EAAc1uQ,UAC1By2P,EAAYiY,EAAcjY,UAC1BvoO,EAAawgP,EAAcxgP,WAG7B,OAAQnjN,EAAM7C,OACZ,KAAKwtL,GAAQgB,GAETtqN,EAAMuie,iBAAiB,GACvB5jc,EAAMrH,iBACN,MAEJ,KAAKgyL,GAAQkB,KAETxqN,EAAMuie,gBAAgB,GACtB5jc,EAAMrH,iBAMZ,IAAIilc,EAAav8d,EAAMs/d,gBACvB,GAAI/C,GAAcA,EAAWz6e,KAAM,CACjC,IAAIq5e,EAAwBn7d,EAAMq/d,2BAC9B18C,GAAwC,IAA3B45C,EAAWz6e,KAAK+ne,WAAuB0S,EAAWz6e,KAAKwnY,EAAW5/V,WAAa,IAAIhjD,OAChGm5f,EAAYvW,GAA4BvrQ,GAAcA,GAAc,CAAC,EAAG4qQ,GAAiBj6P,EAAWysQ,IAAyB,CAAC,EAAG,CACnIr5e,KAAMy6e,EAAWz6e,KACjBuW,QAAQ,KAEV,OAAQsmC,EAAM7C,OAEZ,KAAKwtL,GAAQe,KAGLs4N,GAAcuuB,EAAax7d,SAASg5O,GACtC1uN,EAAMord,aAAa,CAAC,EAAGyU,GACdtD,EAAWrpe,QACpB8M,EAAMszW,eAAeipH,EAAWrpe,OAAO7oB,KAEzCs0D,EAAMrH,iBACN,MAEJ,KAAKgyL,GAAQiB,MAGLo4N,IAAeuuB,EAAax7d,SAASg5O,GACvC1uN,EAAMord,aAAa,CAAC,EAAGyU,GACdtD,EAAW7yc,UAAY6yc,EAAW7yc,SAAShjD,QACpDs5B,EAAMszW,eAAeipH,EAAW7yc,SAAS,GAAGr/C,KAE9Cs0D,EAAMrH,iBACN,MAIJ,KAAKgyL,GAAQI,MACb,KAAKJ,GAAQhhI,OAEL+hY,GAAcwV,EAAUt2c,WAAoC,IAAxBs2c,EAAUxV,WAAwBwV,EAAUtV,gBAExEF,IAAavoO,GAAe+9O,EAAUt2c,WAAqC,IAAzBs2c,EAAU/9O,YACtE9hP,EAAM4qd,aAAa,CAAC,EAAGiV,GAFvB7/d,EAAMwqd,YAAY,CAAC,EAAGqV,GAAY/W,EAAYpze,SAASg5O,IAOjE,CACc,OAAdkF,QAAoC,IAAdA,GAAwBA,EAAUj1L,EAC1D,KAIAy+C,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,wBAAwB,SAAUpwB,GAC/E,IAAI4yf,EAASxtf,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GACxEytf,EAAaztf,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,KACrF,IAAKgrB,EAAM0ie,UAAW,CACpB,IAAIC,GAAW,EACXC,GAAY,EACZhwR,EAAW,CAAC,EAChBrnO,OAAOC,KAAKoE,GAAOvJ,SAAQ,SAAUmN,GAC/BwsB,EAAMod,MAAMv0C,eAAe2K,GAC7Bovf,GAAY,GAGdD,GAAW,EACX/vR,EAASp/N,GAAQ5D,EAAM4D,GACzB,KACImvf,GAAcH,IAAUI,GAC1B5ie,EAAMy7E,SAASsiI,GAAcA,GAAc,CAAC,EAAGnL,GAAW6vR,GAE9D,CACF,KACArlZ,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,YAAY,SAAU69c,GACnE79c,EAAMirX,QAAQz/W,QAAQ+qG,SAASsnW,EACjC,IACO79c,CACT,CAgTA,OA/SAw8M,GAAauhR,EAAM,CAAC,CAClB1zf,IAAK,oBACLlG,MAAO,WACLoB,KAAKm9f,WAAY,EACjBn9f,KAAKs9f,WACP,GACC,CACDx4f,IAAK,qBACLlG,MAAO,WACLoB,KAAKs9f,WACP,GACC,CACDx4f,IAAK,YACLlG,MAAO,WACL,IAAI2+f,EAAgBv9f,KAAK63C,MACvBsxM,EAAYo0Q,EAAcp0Q,UAC1Bq0Q,EAAwBD,EAAcZ,iBACtCA,OAA6C,IAA1Ba,EAAmC,EAAIA,OAC1Cvwf,IAAdk8O,GAA2BA,IAAcnpP,KAAKqK,MAAM8+O,YACtDnpP,KAAKk2G,SAAS,CACZizI,UAAWA,IAEK,OAAdA,GACFnpP,KAAKgxI,SAAS,CACZlsI,IAAKqkP,EACLruL,OAAQ6hc,IAIhB,GACC,CACD73f,IAAK,uBACLlG,MAAO,WACL2G,OAAOukD,oBAAoB,UAAW9pD,KAAKi5f,iBAC3Cj5f,KAAKm9f,WAAY,CACnB,GACC,CACDr4f,IAAK,iBACLlG,MAAO,WACLoB,KAAKk2G,SAAS,CACZutY,gBAAiB,KACjBC,aAAc,KACdkD,gBAAiB,KACjBW,cAAe,KACfC,iBAAkB,KAClBmD,cAAe,KACfJ,aAAa,GAEjB,GACC,CACDzlf,IAAK,SACLlG,MAAO,WACL,IAgDI6+f,EAhDAC,EAAgB19f,KAAKqK,MACvB09X,EAAU21H,EAAc31H,QACxB4wH,EAAe+E,EAAc/E,aAC7B/4P,EAAc89P,EAAc99P,YAC5BynP,EAAkBqW,EAAcrW,gBAChCl+P,EAAYu0Q,EAAcv0Q,UAC1By9P,EAAkB8W,EAAc9W,gBAChCY,EAAmBkW,EAAclW,iBACjCD,EAAgBmW,EAAcnW,cAC9B7D,EAAega,EAAcha,aAC7BD,EAAkBia,EAAcja,gBAChChY,EAASiyB,EAAcjyB,OACrBkyB,EAAgB39f,KAAK63C,MACvByhM,EAAYqkR,EAAcrkR,UAC1B/xO,EAAYo2f,EAAcp2f,UAC1BjC,EAAQq4f,EAAcr4f,MACtBs4f,EAAWD,EAAcC,SACzBr6Q,EAAYo6Q,EAAcp6Q,UAC1Bs6Q,EAAwBF,EAAc95Q,SACtCA,OAAqC,IAA1Bg6Q,EAAmC,EAAIA,EAClDthP,EAAaohP,EAAcphP,WAC3B6mL,EAAWu6D,EAAcv6D,SACzBnxP,EAAO0rT,EAAc1rT,KACrBo0S,EAAesX,EAActX,aAC7B75J,EAAYmxK,EAAcnxK,UAC1Bs4J,EAAY6Y,EAAc7Y,UAC1B6L,EAAgBgN,EAAchN,cAC9B3sc,EAAW25c,EAAc35c,SACzBo6M,EAASu/P,EAAcv/P,OACvB2nP,EAAW4X,EAAc5X,SACzB0B,EAAiBkW,EAAclW,eAC/B9lf,EAASg8f,EAAch8f,OACvB0gU,EAAas7L,EAAct7L,WAC3BroN,EAAc2jZ,EAAc3jZ,YAC5Bu4N,EAAUorL,EAAcprL,QACxB00K,EAAc0W,EAAc1W,YAC5BN,EAAsBgX,EAAchX,oBACpCxwO,EAAgBwnP,EAAcxnP,cAC9BrC,EAAW6pP,EAAc7pP,SACzBr2I,EAAYkgY,EAAclgY,UAC1Bw6I,EAAgB0lP,EAAc1lP,cAC9B+zK,EAAY2xE,EAAc3xE,UACxBzmC,EAAWpuD,GAAUn3V,KAAK63C,MAAO,CACnCy/S,MAAM,EACN/6U,MAAM,IAKJiwU,IAEAixK,EADyB,YAAvBj7f,EAAAA,GAAAA,GAAQgqV,GACQA,EACY,oBAAdA,EACE,CAChBo5J,cAAep5J,GAGC,CAAC,GAGvB,IAAIv2C,EAAe,CACjB38D,UAAWA,EACXijC,WAAYA,EACZ6mL,SAAUA,EACVnxP,KAAMA,EACNo0S,aAAcA,EACd75J,UAAWixK,EACXpW,gBAAiBA,EACjBvC,UAAWA,EACX6L,cAAeA,EACf3sc,SAAUA,EACV47M,YAAaA,EACbgnP,gBAAiBA,EACjBY,iBAAkBA,EAClBD,cAAeA,EACf7D,aAAcA,EACdD,gBAAiBA,EACjBhY,OAAQA,EACRhuW,UAAWA,EACXkpX,oBAAqBA,EACrBZ,SAAUA,EACV0B,eAAgBA,EAChBR,YAAaA,EACb7B,YAAaplf,KAAKolf,YAClBG,kBAAmBvlf,KAAKulf,kBACxBM,aAAc7lf,KAAK6lf,aACnBR,aAAcrlf,KAAKqlf,aACnBJ,YAAajlf,KAAKilf,YAClBe,WAAYhmf,KAAKgmf,WACjBR,iBAAkBxlf,KAAKwlf,iBACvBC,iBAAkBzlf,KAAKylf,iBACvBC,kBAAmB1lf,KAAK0lf,kBACxBiC,gBAAiB3nf,KAAK2nf,gBACtBG,gBAAiB9nf,KAAK8nf,gBACtBE,eAAgBhof,KAAKgof,eACrBE,gBAAiBlof,KAAKkof,gBACtBI,cAAetof,KAAKsof,cACpBF,WAAYpof,KAAKoof,YAEnB,OAAoBv0R,EAAAA,cAAoB2sR,GAAYvpY,SAAU,CAC5Dr4G,MAAOq3S,GACOpiF,EAAAA,cAAoB,MAAO,CACzCtsN,UAAWisN,KAAW8lB,EAAW/xO,EAAW0wQ,GAAepgK,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,cAAeskR,GAAW,GAAGp5f,OAAO80O,EAAW,YAAayuJ,GAAU,GAAGvjY,OAAO80O,EAAW,mBAAkC,OAAd6P,IACnP7jP,MAAO0mb,GACOn4N,EAAAA,cAAoBj8M,GAAUqnN,GAAS,CACrD1nL,IAAKv3C,KAAK0lZ,QACVpsK,UAAWA,EACXh0O,MAAOA,EACPiX,KAAMo8e,EACN30c,SAAUA,EACVu4N,WAAYA,EACZuoO,YAAaA,EACb1mP,OAAQA,EACRkwJ,SAA8B,OAApB+4F,EACV1lf,OAAQA,EACR0gU,WAAYA,EACZkQ,QAASA,EACThvF,UAAWA,EACXwkJ,QAASA,EACTlkJ,SAAUA,EACVmzQ,WAAYh3f,KAAK+5f,gBACjBzrQ,QAAStuP,KAAKsuP,QACd44I,OAAQlnY,KAAKknY,OACb74I,UAAWruP,KAAKquP,UAChB0/I,eAAgB/tY,KAAK+tY,eACrBkpH,kBAAmBj3f,KAAKi3f,kBACxBC,gBAAiBl3f,KAAKk3f,gBACtB/gP,cAAeA,EACfrC,SAAUA,EACV95J,YAAaA,GACZh6G,KAAK85f,2BAA4Bv0G,KACtC,IACE,CAAC,CACHzgZ,IAAK,2BACLlG,MAAO,SAAkCi5C,EAAOioN,GAC9C,IASI44P,EATA90E,EAAY9jL,EAAU8jL,UACtBv2M,EAAW,CACbu2M,UAAW/rY,GAEb,SAASuld,EAASnvf,GAChB,OAAQ21a,GAAa/rY,EAAMv0C,eAAe2K,IAAS21a,GAAaA,EAAU31a,KAAU4pC,EAAM5pC,EAC5F,CAMA,IAAI81Y,EAAajkJ,EAAUikJ,WAe3B,GAdIq5G,EAAS,gBACXr5G,EAAaD,GAAejsW,EAAMksW,YAClC12K,EAAS02K,WAAaA,GAIpBq5G,EAAS,YACX1E,EAAW7gd,EAAM6gd,SACR0E,EAAS,cAClBx+R,IAAQ,EAAO,oEACf85R,EAAWzX,GAAkBppc,EAAMsM,WAIjCu0c,EAAU,CACZrrR,EAASqrR,SAAWA,EACpB,IAAIoF,EAAc9b,GAAsB0W,EAAU,CAChD30G,WAAYA,IAEd12K,EAASuyB,YAAcpnB,IAAc3gI,EAAAA,GAAAA,GAAgB,CAAC,EAAG8+Y,GAAYE,IAAeiH,EAAYl+P,YAMlG,CACA,IA0CMm+P,EA1CFn+P,EAAcvyB,EAASuyB,aAAeE,EAAUF,YAGpD,GAAIw9P,EAAS,iBAAmBx5E,GAAaw5E,EAAS,oBACpD/vR,EAASs+P,aAAe9zb,EAAMmmd,mBAAqBp6E,GAAa/rY,EAAMomd,oBAAsBlT,GAAoBlzc,EAAM8zb,aAAc/rO,GAAe/nN,EAAM8zb,kBACpJ,IAAK/nD,GAAa/rY,EAAMqmd,iBAAkB,CAC/C,IAAIC,EAAmB3lR,GAAc,CAAC,EAAGonB,UAClCu+P,EAAiBxH,IAGxB,IAAIyH,EAAmB,GACvBp4f,OAAOC,KAAKk4f,GAAkBr9f,SAAQ,SAAUgE,GAC9C,IAAI2xO,EAAS0nR,EAAiBr5f,GAC1B2xO,EAAOtyL,UAAYsyL,EAAOtyL,SAAShjD,QACrCi9f,EAAiBv8f,KAAK40O,EAAO3xO,IAEjC,IACAuoO,EAASs+P,aAAeyyB,CAC1B,MAAYx6E,GAAa/rY,EAAMwmd,sBAC7BhxR,EAASs+P,aAAe9zb,EAAMmmd,kBAAoBnmd,EAAMomd,oBAAsBlT,GAAoBlzc,EAAMwmd,oBAAqBz+P,GAAe/nN,EAAMwmd,qBAOpJ,GALKhxR,EAASs+P,qBACLt+P,EAASs+P,aAId+sB,GAAYrrR,EAASs+P,aAAc,CACrC,IAAIgtB,EAAenX,GAAgBkX,GAAY54P,EAAU44P,SAAUrrR,EAASs+P,cAAgB7rO,EAAU6rO,aAAc5nF,GACpH12K,EAASsrR,aAAeA,CAC1B,CAYA,IATI9gd,EAAM0kO,aACJ6gP,EAAS,gBACX/vR,EAASuhB,aAAeg8P,GAAiB/yc,EAAM+2M,aAAc/2M,IACnD+rY,GAAa/rY,EAAM4kO,sBAC7BpvC,EAASuhB,aAAeg8P,GAAiB/yc,EAAM4kO,oBAAqB5kO,KAKpEA,EAAMitc,aAEJsY,EAAS,eACXW,EAAmBlT,GAAiBhzc,EAAM0rc,cAAgB,CAAC,GACjD3/D,GAAa/rY,EAAMymd,mBAC7BP,EAAmBlT,GAAiBhzc,EAAMymd,qBAAuB,CAAC,EACzD5F,IAETqF,EAAmBlT,GAAiBhzc,EAAM0rc,cAAgB,CACxDA,YAAazjP,EAAUyjP,YACvBC,gBAAiB1jP,EAAU0jP,kBAG3Bua,GAAkB,CACpB,IAAIQ,EAAoBR,EACtBS,EAAwBD,EAAkBhb,YAC1CA,OAAwC,IAA1Bib,EAAmC,GAAKA,EACtDC,EAAwBF,EAAkB/a,gBAC1CA,OAA4C,IAA1Bib,EAAmC,GAAKA,EAC5D,IAAK5md,EAAM84c,cAAe,CACxB,IAAI+N,EAAcrT,GAAa9H,GAAa,EAAM3jP,GAClD2jP,EAAcmb,EAAYnb,YAC1BC,EAAkBkb,EAAYlb,eAChC,CACAn2Q,EAASk2Q,YAAcA,EACvBl2Q,EAASm2Q,gBAAkBA,CAC7B,CAOF,OAHI4Z,EAAS,gBACX/vR,EAASg2Q,WAAaxrc,EAAMwrc,YAEvBh2Q,CACT,KAEKmrR,CACT,CArnCwB,CAqnCtB3kS,EAAAA,YACFh8G,EAAAA,GAAAA,GAAgB2gZ,GAAM,eAAgB,CACpCl/Q,UAAW,UACXskR,UAAU,EACVx6D,UAAU,EACV7mL,YAAY,EACZtoM,UAAU,EACV6wa,WAAW,EACX9gc,UAAU,EACV2sc,eAAe,EACfnkK,WAAW,EACXyxK,qBAAqB,EACrBD,kBAAkB,EAClBE,kBAAkB,EAClBG,oBAAqB,GACrBC,mBAAoB,GACpB7hP,oBAAqB,GACrBkqO,oBAAqBgY,GACrBpV,UAAW,WACT,OAAO,CACT,EACAgR,cAAc,KAEhB1iZ,EAAAA,GAAAA,GAAgB2gZ,GAAM,WAAYrU,IAClC,MCpqCA,GDoqCA,GEtqCA,SADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,gPAAoP,KAAQ,OAAQ,MAAS,YCMva,IAAIya,GAAe,SAAsB/md,EAAON,GAC9C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM4sT,KAEV,EAOA,SAJ2BhrS,EAAAA,WAAiB+qS,ICb5C,SADyB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,2UAA+U,KAAQ,cAAe,MAAS,YCM/gB,IAAIE,GAAqB,SAA4Bjnd,EAAON,GAC1D,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM8sT,KAEV,EAOA,SAJ2BlrS,EAAAA,WAAiBirS,ICb5C,SADqB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,2MAA+M,KAAQ,SAAU,MAAS,YCMtY,IAAIE,GAAiB,SAAwBnnd,EAAON,GAClD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMgtT,KAEV,EAOA,SAJ2BprS,EAAAA,WAAiBmrS,ICb5C,SADqB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,mQAAuQ,KAAQ,SAAU,MAAS,YCM9b,IAAIE,GAAiB,SAAwBrnd,EAAON,GAClD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMktT,KAEV,EAOA,SAJ2BtrS,EAAAA,WAAiBqrS,ICd/BE,GAAoBn0W,IAC/B,IAAI,QACFo0W,EAAO,YACPC,EAAW,wBACXC,EAAuB,2BACvBC,EAA0B,kBAC1B30N,EAAiB,aACjBxJ,EAAY,mBACZmM,GACEviJ,EACJ,MAAO,CACL,CAAC,GAAGo0W,IAAUA,eAAqBC,KAAgB,CAEjD,CAAC,GAAGD,0BAAiC,CACnCh0f,SAAU,SACV,CAAC,WAAWg0f,qBAA4B,CACtCh0f,SAAU,YAEZ,UAAW,CACTmwH,WAAY,eAGd,WAAY,CACVnwH,SAAU,WACV81H,MAAO,EACP5wE,WAAY,oBAAoBs6O,IAChCpsR,QAAS,KACT4iR,gBAEF,iBAAkB,CAChB7lK,WAAYgyK,IAGhB,CAAC,GAAG6xN,eAAqBA,eAAqBA,oBAA2B,CACvE9zf,OAAQ,GAGV,aAAc,CACZ,CAAC,GAAG8zf,eAAqBA,oBAA2B,CAClDp+d,MAAOu+d,GAGT,CAAC,GAAGH,0BAAiC,CACnCp+d,MAAOu+d,EACPhkY,WAAY,cACZ,2BAA4B,CAC1BA,WAAY+jY,MAKrB,EC7CGE,GAAa,IAAI/kM,GAAU,8BAA+B,CAC9D,KAAM,CACJ/uT,QAAS,GAEX,OAAQ,CACNA,QAAS,KAIP+zf,GAAiBA,CAACpmR,EAAW3wH,KAAU,CAC3C,CAAC,IAAI2wH,mBAA4B,CAC/B9yO,QAAS,eACT42B,SAAU,GACVuF,cAAe,WACfukG,IAAK,CACH32E,WAAY,aAAao4D,EAAMu2K,yBAK/BygO,GAAwBA,CAACrmR,EAAW3wH,KAAU,CAClD,CAAC,IAAI2wH,oBAA6B,CAChCjuO,SAAU,WAEVE,OAAQ,EACR5J,OAAQ,EACR8J,gBAAiBk9G,EAAMu3K,aACvBmB,aAAc,EACdlnD,cAAe,OACf,UAAW,CACT9uO,SAAU,WACV/J,KAAM,EACNkyS,kBAAmB,EACnBvxS,MAAO,EACPN,OAAQ,EACR8J,gBAAiB,cACjBqpI,OAAQ,GAAG9xI,GAAK2lH,EAAMmiL,wBAAwBniL,EAAMu3K,eACpDmB,aAAc,MACd5iR,QAAS,SAIF05T,GAAeA,CAAC7+F,EAAW3wH,KACtC,MAAM,QACJ02Y,EAAO,YACPC,EAAW,gBACXM,EAAe,YACf9hK,EAAW,WACXgwI,EAAU,eACV+xB,EAAc,YACdC,EAAW,oBACX76N,EAAmB,4BACnB0I,GACEhlL,EACJ,MAAO,CACL,CAAC02Y,GAAUr5f,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACjE6S,WAAY7S,EAAM+8K,iBAClBrE,aAAc14K,EAAM04K,aACpB9wO,WAAY,oBAAoBo4D,EAAMu2K,qBACtC,QAAS,CACPzhK,UAAW,OAEb,CAAC,IAAI4hY,SAAeA,oBAA0BA,uBAA8B,CAC1E9/a,UAAW,iBAEb,CAAC,6BAA6B8/a,qBAA4Br5f,OAAOoD,OAAO,CAAC,EAAGo2R,GAAgB72K,IAE5F,CAAC,GAAG02Y,uBAA8B,CAChCv/N,WAAY,cAEd,CAAC,IAAIu/N,gBAAuB,CAC1B,CAAC,GAAGA,uBAA8B,CAChCv/N,WAAY,UAEZ,CAAC,GAAGu/N,0BAAiC,CACnC35c,KAAM,QAGR,CAAC,GAAG45c,oBAA+B,CACjCj0f,SAAU,WACV81H,MAAO,EACP2T,OAAQ,aAAansB,EAAMu3K,eAC3Bv0R,QAAS,EACT+oD,cAAe+qc,GACf/9X,kBAAmB/Y,EAAMu2K,mBACzBs7B,mBAAoB,UACpBN,kBAAmB,WACnBz7S,QAAS,KACT07N,cAAe,OACfknD,aAAc14K,EAAM04K,gBAK1B,CAACi+N,GAAc,CACb94f,QAAS,OACTs5R,WAAY,aACZthK,aAAcohY,EACdtie,WAAYt6B,GAAK86V,GACjBzyV,SAAU,WAEV,WAAY,CACVoT,QAAS,KACTpT,SAAU,WACVE,OAAQ,EACRioS,iBAAkB,EAClBvxS,MAAO,OACPX,IAAK,OACLK,OAAQi+f,GAGV,CAAC,cAAcP,0BAAiC,CAC9Cp+d,MAAO0nF,EAAM42K,kBACbvlQ,OAAQ,cACR,UAAW,CACTwhG,WAAY,gBAGhB,CAAC,GAAG6jY,yBAA+BA,oBAA0BC,aAAuBA,cAAwBD,0BAAiC,CAC3I5zf,gBAAiBkiS,GAInB,CAAC,GAAG0xN,uBAA8B,CAChCllR,cAAe,SAGjB,CAAC,SAASmlR,eAA0B,CAElC,CAAC,GAAGD,0BAAiC,CACnC,UAAW,CACTp+d,MAAO0nF,EAAMo3Y,kBAInB,CAAC,YAAYV,0BAAiC,CAC5C7jY,WAAY7S,EAAM6kL,oBAEpB,CAAC,SAAS8xN,2BAAqCD,WAAkB,CAC/Dp+d,MAAO0nF,EAAMu3K,aACbr9P,WAAY,KAEd,cAAe,CACb7I,OAAQ,OACR,CAAC,GAAGqle,oBAA2B,CAE7Bx5c,WAAY,EACZ5jD,MAAO67V,EACPp7T,UAAW,SACXm9F,WAAY,UACZ5+F,MAAOgkQ,GAET,CAAC,IAAIq6N,cAAwBD,oBAA2B,CACtDx/X,WAAY,YAKlB,CAAC,GAAGw/X,YAAmB,CACrBh7F,UAAW,UACXhjR,WAAY,SACZgJ,WAAY,OACZ,SAAU,CACR7jJ,QAAS,eACTvE,MAAO6re,IAIX,CAAC,GAAGuxB,oBAA2B,CAC7Bx/X,WAAY,UAGd,CAAC,GAAGw/X,eAAqBA,cAAqB,CAC5C/7L,gBAAiB36M,EAAMq6J,KAAKr6J,EAAMq6J,KAAK86E,GAAalmI,IAAIjvG,EAAM4kL,yBAAyB52E,IAAI,GAAG19C,SAGhG,CAAC,GAAGomV,cAAqBr5f,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGs2f,GAAepmR,EAAW3wH,IAAS,CAC1Ft9G,SAAU,WACVq6C,KAAM,OACN2+W,UAAW,UACXpia,MAAO67V,EACPp7T,UAAW,SACX1I,OAAQ,UACRqwH,WAAY,OACZ95F,WAAY,OAAOo4D,EAAMu2K,qBACzB,SAAU,CACRllQ,OAAQ,SAEV,WAAY,CACVmgN,cAAe,OACf17N,QAAS,KACTxc,MAAO67V,EACPn8V,OAAQm8V,EACRzyV,SAAU,WACVhK,KAAM,CACJi3T,cAAc,EACd15T,MAAO,GAET0C,IAAK,EACL+/R,aAAc14K,EAAM04K,aACpB9wO,WAAY,OAAOo4D,EAAMu2K,sBAE3B,CAAC,SAASmgO,iCAAwC,CAChD5zf,gBAAiBk9G,EAAMokL,kBAEzB,CAAC,WAAWsyN,uBAA8B,CACxC9/a,UAAW,kBAEb,iBAAkB,CAChBt+C,MAAO0nF,EAAMu3K,cAEf,cAAe,CACb70R,SAAU,WACVE,OAAQ,EACR/E,QAAS,eACTvE,MAAO,OACPN,OAAQ,OAER,WAAY,CACV0J,SAAU,WACV/J,IAAK,EACLgyS,eAAgB3qL,EAAMq6J,KAAK86E,GAAannI,IAAI,GAAG19C,QAC/C7yK,OAAQuiH,EAAMq6J,KAAK48O,GAAiBvnS,KAAK,GAAGp/C,QAC5CoqJ,mBAAoB,EACpBpB,gBAAiB,aAAat5M,EAAMm9K,cACpCrnR,QAAS,MAEX,UAAW,CACTpT,SAAU,WACVpJ,MAAO0mH,EAAMq6J,KAAKr6J,EAAMq6J,KAAK86E,GAAannI,IAAI,GAAG19C,SAASo/C,IAAI,IAAKp/C,QACnEt3K,OAAQgnH,EAAMq6J,KAAK86E,GAAannI,IAAI,GAAG19C,QACvCknJ,aAAc,aAAax3M,EAAMm9K,cACjCrnR,QAAS,SAMf,CAAC,GAAG4gf,0BAAiCr5f,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC/DiC,SAAU,WACVm4P,UAAWs6F,EACXzlB,aAAc,EACd9lC,cAAe5pL,EAAMwlL,UACrB3yK,WAAY,cACZ6lK,aAAc14K,EAAM04K,aACpBrnQ,OAAQ,UACRu2B,WAAY,OAAOo4D,EAAMkiL,+DACxB80N,GAAsBrmR,EAAW3wH,IAAS,CAC3C,UAAW,CACTl9G,gBAAiBq0f,GAEnB,CAAC,IAAIT,mBAA0B,CAC7Bp+d,MAAO0nF,EAAMq3Y,kBACbv0f,gBAAiBo0f,GAGnB,CAAC,GAAGR,aAAoB,CACtB74f,QAAS,eACTvE,MAAO67V,EACPn8V,OAAQm8V,EACRp7T,UAAW,SACXC,cAAe,MACf,UAAW,CACTn8B,QAAS,WAKf,CAAC,GAAG64f,kBAAwBA,gCAAuC,CACjE5zf,gBAAiB,eAEnB,CAAC,GAAG6zf,kCAA6C,CAC/Cp+X,UAAW,aAAavY,EAAMu3K,gBAGhC,cAAe,CAEb,CAAC,GAAGm/N,iBAAwB,CAC1Bh0f,SAAU,WACV1J,OAAQ,OACR,WAAY,CACV0J,SAAU,WACV/J,IAAK,EACLgyS,eAAgB3qL,EAAMq6J,KAAK86E,GAAannI,IAAI,GAAG19C,QAC/C7yK,OAAQuiH,EAAMq6J,KAAK48O,GAAiBvnS,KAAK,GAAGp/C,QAC5CgpJ,gBAAiB,aAAat5M,EAAMm9K,cACpCrnR,QAAS,MAEX,eAAgB,CACdjY,QAAS,SAIb,CAAC,GAAG64f,cAAqB,CACvB7jY,WAAY,cACZ,cAAe,CAEb74F,cAAe,aAIrB,CAAC,GAAG28d,eAAyBD,+BAAsC,CACjE/9f,IAAK,kBACL8E,OAAQ,kBACRzE,OAAQ,GAAGqB,GAAK2lH,EAAMq6J,KAAK86E,GAAannI,IAAI,GAAG19C,yBAGpD,EAGUgnV,GAAeA,CAAC3mR,EAAW3wH,KACtC,MAAM02Y,EAAU,IAAI/lR,IACdgmR,EAAc,GAAGD,aACjBO,EAAkBj3Y,EAAMq6J,KAAKr6J,EAAMwlL,WAAWx3E,IAAI,GAAG19C,QACrDinV,EAAYvlO,GAAWhyK,EAAO,CAClC02Y,UACAC,cACAM,oBAEF,MAAO,CAEPznL,GAAa7+F,EAAW4mR,GAExBd,GAAkBc,GAAW,EA4B/B,GAAexiO,GAAc,QAAQ,CAAC/0K,EAAOsiC,KAC3C,IAAI,UACFquF,GACEruF,EACJ,MAAO,CAAC,CACN,CAACtiC,EAAMu0K,cAAeijO,GAAiB,GAAG7mR,aAAsB3wH,IAC/Ds3Y,GAAa3mR,EAAW3wH,GAAQ4+M,GAAkB5+M,GAAO,IAhBzBA,IACnC,MAAM,oBACJkkL,EAAmB,aACnB3M,GACEv3K,EACJ,OAAO3iH,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EArBJu/G,KAChC,MAAM,gBACJg6K,EAAe,mBACf6K,EAAkB,oBAClBC,GACE9kL,EAEJ,MAAO,CACLm1O,YAFkBn7D,EAGlBmrM,WAHkBnrM,EAIlBm9N,YAAatyN,EACbuyN,eAAgBp3Y,EAAMk2K,UACtBghO,eAAgBpyN,EAChBuyN,kBAAmBr3Y,EAAMk2K,UAC1B,EAOsC6kG,CAAmB/6Q,IAAS,CACjE62Y,2BAA4B3yN,EAC5B0yN,wBAAyBr/N,GACzB,IChUJ,SAhCA,SAA6BroP,GAC3B,MAAM,aACJ6rc,EAAY,gBACZkD,EAAe,UACfttQ,EAAS,OACTmyP,EAAM,UACNhuW,EAAY,OACV5lF,EACEuod,EAA8B,QAAd3iY,EAAsB,OAAS,QAC/C4iY,EAA4B,QAAd5iY,EAAsB,QAAU,OAC9Cn4H,EAAQ,CACZ,CAAC86f,IAAiBxZ,EAAkBnb,EAZlB,EAalB,CAAC40B,GAAc,GAEjB,OAAQ3c,GACN,KAAM,EACJp+e,EAAMhE,KAAO,EACb,MACF,KAAK,EACHgE,EAAMc,QAAU,EAChB,MACF,QAEEd,EAAMc,QAAU,EAChBd,EAAM86f,GAAiB30B,EAzBP,EA4BpB,OAAoB53Q,EAAAA,cAAoB,MAAO,CAC7CvuN,MAAOA,EACPiC,UAAW,GAAG+xO,oBAElB,ECjCA,SADsB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,yHAA6H,KAAQ,aAAc,MAAS,UCMzT,IAAIgnR,GAAkB,SAAyBzod,EAAON,GACpD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMsuT,KAEV,EAOA,SAJ2B1sS,EAAAA,WAAiBysS,ICb5C,SAD0B,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,8FAAiG,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,8IAAkJ,KAAQ,eAAgB,MAAS,YCMtd,IAAIE,GAAsB,SAA6B3od,EAAON,GAC5D,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMwuT,KAEV,EAOA,SAJ2B5sS,EAAAA,WAAiB2sS,ICb5C,SADyB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,8LAAiM,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,8IAAkJ,KAAQ,cAAe,MAAS,YCMpjB,IAAIE,GAAqB,SAA4B7od,EAAON,GAC1D,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM0uT,KAEV,EAOA,SAJ2B9sS,EAAAA,WAAiB6sS,IC6D5C,GAlEwB7od,IACtB,MAAM,UACJyhM,EAAS,aACT+sQ,EAAY,cACZ6P,EAAa,SACb0H,EAAQ,oBACRgD,GACE/od,GACE,OACJysc,EAAM,SACNzuM,EAAQ,QACR7jK,GACEkkX,EACJ,GAAIlkX,EACF,OAAiB6hF,EAAAA,eAAqB+sS,GAC7BA,EAEW/sS,EAAAA,cAAoB0oH,GAAiB,CACvDh1U,UAAW,GAAG+xO,4BAGlB,IAAIunR,EAIJ,GAHIjD,GAAgC,kBAAbA,IACrBiD,EAAejD,EAASiD,cAEtBvc,EAAQ,CACV,IAAKsZ,EACH,OAAO,KAET,GAA4B,mBAAjBiD,GAAgCA,EAAc,CACvD,MAAMC,EAAmC,oBAAjBD,EAA8BA,EAAa3K,GAAiB2K,EAC9EE,EAAU,GAAGznR,8BACnB,OAAiBzlB,EAAAA,eAAqBitS,GAC7BjqZ,GAAaiqZ,EAAU,CAC5Bv5f,UAAWisN,KAAWstS,EAASjpd,MAAMtwC,WAAa,GAAIw5f,KAGnDD,CACT,CACA,OAAOD,EAA6BhtS,EAAAA,cAAoB+qS,GAAc,CACpEr3f,UAAW,GAAG+xO,yBACIzlB,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAW,GAAG+xO,wBAElB,CACA,MAAM0nR,EAAc,GAAG1nR,kBACjB2nR,EAAmC,oBAAjB5a,EAA8BA,EAAa6P,GAAiB7P,EACpF,OAAiBxyR,EAAAA,eAAqBotS,GAC7BpqZ,GAAaoqZ,EAAU,CAC5B15f,UAAWisN,KAAWytS,EAASppd,MAAMtwC,WAAa,GAAIy5f,UAGzC/zf,IAAbg0f,EACKA,EAELrD,EACK/nN,EAAyBhiF,EAAAA,cAAoB2sS,GAAqB,CACvEj5f,UAAW,GAAG+xO,yBACIzlB,EAAAA,cAAoB6sS,GAAoB,CAC1Dn5f,UAAW,GAAG+xO,yBAGEzlB,EAAAA,cAAoBysS,GAAiB,CACvD/4f,UAAWy5f,GACX,ECmCJ,SAjG0BntS,EAAAA,YAAiB,CAACh8K,EAAON,KACjD,IAAIjb,EACJ,MAAM,aACJwsP,EAAY,UACZrrJ,EAAS,QACT80M,EAAO,KACPlnM,GACEwoF,EAAAA,WAAiBg1D,KAEnBvvC,UAAW2vC,EAAkB,UAC7B1hR,EAAS,SACT67b,GAAW,EAAK,SAChBw6D,EAAQ,aACRvX,EAAY,oBACZua,EAAmB,UACnBM,GAAY,EAAK,SACjB/8c,EAAQ,UACR2gc,GAAY,EAAK,WACjBvoO,GAAa,EAAI,UACjBiwE,EACApuF,OAAQ+iQ,EAAY,MACpB77f,GACEuyC,EACEyhM,EAAYwvC,EAAa,OAAQG,GACjCoT,EAAgBvT,IAChB1qB,EAA0B,OAAjB+iQ,QAA0C,IAAjBA,EAA0BA,EAAen7f,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG29T,GAAmB1qC,IAAiB,CACnJniC,cAAc,IAEVq4F,EAAWvsV,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyuC,GAAQ,CACvDitc,YACAvoO,aACA6mL,WACAhlM,SACA8iQ,YACAtD,SAAU7rf,QAAQ6rf,GAClBjX,oBAAmBA,MAEd3xM,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,IAC1C,CAAE3wH,GAAS+yK,KACZ2mC,EAAa15M,EAAMwlL,UAAY,IAA4B,QAArB7xQ,EAAKqsF,EAAM6vY,YAAyB,IAAPl8d,OAAgB,EAASA,EAAGwhU,cAAgBn1O,EAAMg6K,iBACrH86N,EAAkB5pS,EAAAA,SAAc,KACpC,IAAK24H,EACH,OAAO,EAET,IAAI40K,EAAkB,CAAC,EACvB,cAAe50K,GACb,IAAK,WACH40K,EAAgBxb,cAAgBp5J,EAChC,MACF,IAAK,SACH40K,EAAkBp7f,OAAOoD,OAAO,CAAC,EAAGojV,GASxC,OAH6B,IAAzB40K,EAAgBnvT,OAClBmvT,EAAgBnvT,KAAOmvT,EAAgBnvT,MAAqB4hB,EAAAA,cAAoBqrS,GAAgB,OAE3FkC,CAAe,GACrB,CAAC50K,IAQJ,OAAOx3C,EAGPnhF,EAAAA,cAAoBwtS,GAAQr7f,OAAOoD,OAAO,CACxCi5T,WAAYA,EACZ9qR,IAAKA,EACLg7R,QAASA,GACRggB,EAAU,CAEXjtV,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAY,OAATiiI,QAA0B,IAATA,OAAkB,EAASA,EAAK/lI,OAAQA,GAChGg0O,UAAWA,EACX/xO,UAAWisN,KAAW,CACpB,CAAC,GAAG8lB,gBAAyB8pN,EAC7B,CAAC,GAAG9pN,gBAAyB4nR,EAC7B,CAAC,GAAG5nR,mBAA4BijC,EAChC,CAAC,GAAGjjC,SAAgC,QAAd77G,GACZ,OAAT4N,QAA0B,IAATA,OAAkB,EAASA,EAAK9jI,UAAWA,EAAW4lR,EAAQ8nB,GAClFx3K,UAAWA,EACXqnX,UAAWA,EAAyBjxR,EAAAA,cAAoB,OAAQ,CAC9DtsN,UAAW,GAAG+xO,qBACXwrQ,EACLvoO,WAAYA,EACZ8pO,aA7ByBwS,GAA2BhlS,EAAAA,cAAoBytS,GAAiB,CACzFhoR,UAAWA,EACX+sQ,aAAcA,EACdua,oBAAqBA,EACrB1K,cAAe2C,EACf+E,SAAUA,IAyBVpxK,UAAWixK,IACTt5c,GAAU,ICnGhB,SAASo9c,GAAiB7I,EAAU1te,EAAU+4X,GAC5C,MACEj/Y,IAAK68e,EACLx9b,SAAUy9b,GACR79F,EAQJ20G,EAAS53f,SAPT,SAAqBwgf,GACnB,MAAMx8e,EAAMw8e,EAASK,GACfx9b,EAAWm9b,EAASM,IACM,IAA5B52d,EAASlmB,EAAKw8e,IAChBigB,GAAiBp9c,GAAY,GAAIn5B,EAAU+4X,EAE/C,GAEF,CAEO,SAASy9G,GAAcv2W,GAC5B,IAAI,SACFytW,EAAQ,aACR/sB,EAAY,SACZhzE,EAAQ,OACRC,EAAM,WACN7U,GACE94P,EACJ,MAAMhlJ,EAAO,GACb,IAAImhe,EA3Bc,EA4BlB,GAAIzuE,GAAYA,IAAaC,EAC3B,MAAO,CAACD,GAEV,IAAKA,IAAaC,EAChB,MAAO,GAwBT,OAnBA2oG,GAAiB7I,GAAU5zf,IACzB,GApCe,IAoCXsie,EACF,OAAO,EAET,GAPF,SAAkBtie,GAChB,OAAOA,IAAQ6zZ,GAAY7zZ,IAAQ8zZ,CACrC,CAKM73J,CAASj8P,IAGX,GADAmB,EAAKpE,KAAKiD,GA3CI,IA4CVsie,EACFA,EA5Ca,OA6CR,GA7CQ,IA6CJA,EAET,OADAA,EA7CW,GA8CJ,OA/CM,IAiDNA,GAETnhe,EAAKpE,KAAKiD,GAEZ,OAAO6me,EAAax7d,SAASrL,EAAI,GAChCg/Y,GAAeC,IACX99Y,CACT,CACO,SAASw7f,GAA4B/I,EAAUzyf,EAAM89Y,GAC1D,MAAM29G,EAAW1+Q,GAAmB/8O,GAC9B6vT,EAAQ,GASd,OARAyrM,GAAiB7I,GAAU,CAAC5zf,EAAK8C,KAC/B,MAAMsI,EAAQwxf,EAASh9f,QAAQI,GAK/B,OAJe,IAAXoL,IACF4lT,EAAMj0T,KAAK+F,GACX85f,EAASvxd,OAAOjgC,EAAO,MAEhBwxf,EAASvggB,MAAM,GACvB2iZ,GAAeC,IACXjuF,CACT,CCrEA,IAAInqB,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAWA,SAAS48W,GAAQz4V,GACf,MAAM,OACJysc,EAAM,SACNzuM,GACEh+P,EACJ,OAAIysc,EACkBzwR,EAAAA,cAAoB+qS,GAAc,MAEjD/oN,EAAwBhiF,EAAAA,cAAoBirS,GAAoB,MAAqBjrS,EAAAA,cAAoBmrS,GAAgB,KAClI,CACA,SAAS2C,GAAY12W,GACnB,IAAI,SACFytW,EAAQ,SACRv0c,GACE8mG,EACJ,OAAOytW,GAAYzX,GAAkB98b,EACvC,CACA,MAAMy9c,GAAgBA,CAACtle,EAAIib,KACzB,IAAI,iBACA2md,EAAgB,oBAChBD,EAAmB,oBACnBI,GACE/he,EACJub,EAAQ8zP,GAAOrvQ,EAAI,CAAC,mBAAoB,sBAAuB,wBAEjE,MAAMule,EAAkBhuS,EAAAA,OAAa,MAC/BiuS,EAAqBjuS,EAAAA,OAAa,OAgBjC+6B,EAAc8jQ,GAAmB7+R,EAAAA,SAAeh8K,EAAM+2M,cAAgB/2M,EAAM4kO,qBAAuB,KACnGkvN,EAAcqtB,GAAmBnlS,EAAAA,UAAe,IAhB3BkuS,MAC1B,MAAM,YACJniQ,GACEoiP,GAAsB2f,GAAY9pd,IACtC,IAAImqd,EASJ,OANEA,EADE9D,EACiBl4f,OAAOC,KAAK25P,GACtBq+P,EACUlT,GAAoBlzc,EAAM8zb,cAAgB0yB,GAAuB,GAAIz+P,GAErE/nN,EAAM8zb,cAAgB0yB,GAAuB,GAE3D2D,CAAgB,EAGoCD,KAC7DluS,EAAAA,WAAgB,KACV,iBAAkBh8K,GACpB66c,EAAgB76c,EAAM+2M,aACxB,GACC,CAAC/2M,EAAM+2M,eACV/6B,EAAAA,WAAgB,KACV,iBAAkBh8K,GACpBmhd,EAAgBnhd,EAAM8zb,aACxB,GACC,CAAC9zb,EAAM8zb,eACV,MA4DM,aACJ7iN,EAAY,UACZrrJ,GACEo2F,EAAAA,WAAiBg1D,KAEjBvvC,UAAW2vC,EAAkB,UAC7B1hR,EAAS,SACT67b,GAAW,EAAI,aACfm3D,EAAe,SACb1id,EACJ68P,EAAa/I,GAAO9zP,EAAO,CAAC,YAAa,YAAa,WAAY,iBAC9DyhM,EAAYwvC,EAAa,OAAQG,GACjCg5O,EAAmBzuS,KAAW,GAAG8lB,cAAuB,CAC5D,CAAC,GAAGA,mBAA0C,QAAd77G,GAC/Bl2H,GACH,OAAoBssN,EAAAA,cAAoB2kS,GAAMxyf,OAAOoD,OAAO,CAC1D6oM,KAAMq+L,GACN/4V,IAAKA,EACL2pd,WAAW,GACVxsN,EAAY,CACb0uJ,SAAUA,EACVm3D,aAAcA,EACdjhR,UAAWA,EACX/xO,UAAW06f,EACXt2B,aAAcA,EACd/8O,aAAcA,EACd8tB,SA9EeA,CAACz2Q,EAAMmzD,KACtB,IAAI98B,EACJ,MAAM,SACJ23C,EAAQ,WACR8vU,GACElsW,GACE,KACJjwC,EAAI,YACJsnD,GACEkK,GACE,IACJt0D,EAAM,IACJ8C,EACE8wf,EAAWiJ,GAAY9pd,GAGvBuvV,EAAWphY,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGgwD,GAAQ,CACvDtV,UAAU,IAGNo+c,GAA4B,OAAhBhzc,QAAwC,IAAhBA,OAAyB,EAASA,EAAYsE,WAA6B,OAAhBtE,QAAwC,IAAhBA,OAAyB,EAASA,EAAYyE,SACrKwuc,EAA4B,OAAhBjzc,QAAwC,IAAhBA,OAAyB,EAASA,EAAYuE,SAExF,IAAI2uc,EACAnub,GAAYiub,GAEdE,EAAkBn8f,EAClB47f,EAAgB57d,QAAUnhC,EAC1Bg9f,EAAmB77d,QAAUm8d,EAC7Bh7H,EAASuzH,cAAgB8G,GAA4B/I,EAAU0J,EAAiBr+G,IACvE9vU,GAAYkub,GAErBC,EAAkBvhgB,MAAM8J,KAAK,IAAImwC,IAAI,GAAGt2C,OAAOw+O,GAAmB8+Q,EAAmB77d,SAAW,IAAK+8M,GAAmBw+Q,GAAc,CACpI9I,WACA/sB,eACAhzE,SAAU7zZ,EACV8zZ,OAAQipG,EAAgB57d,QACxB89W,mBAEF3c,EAASuzH,cAAgB8G,GAA4B/I,EAAU0J,EAAiBr+G,KAGhFq+G,EAAkB,CAACt9f,GACnB+8f,EAAgB57d,QAAUnhC,EAC1Bg9f,EAAmB77d,QAAUm8d,EAC7Bh7H,EAASuzH,cAAgB8G,GAA4B/I,EAAU0J,EAAiBr+G,IAExD,QAAzBznX,EAAKub,EAAM6kO,gBAA6B,IAAPpgP,GAAyBA,EAAGv8B,KAAK83C,EAAOuqd,EAAiBh7H,GACrF,iBAAkBvvV,GACtB66c,EAAgB0P,EAClB,EA6BAtjD,SAvFeA,CAAC74c,EAAMusI,KACtB,IAAIl2G,EAKJ,MAJM,iBAAkBub,GACtBmhd,EAAgB/yf,GAGe,QAAzBq2B,EAAKub,EAAMina,gBAA6B,IAAPxib,OAAgB,EAASA,EAAGv8B,KAAK83C,EAAO5xC,EAAMusI,EAAK,IAkF3F,EAML,SAJ0CqhF,EAAAA,WAAiB+tS,IChKrDpJ,GAAO6J,GACb7J,GAAKoJ,cAAgBA,GACrBpJ,GAAKrU,SAAWA,GAChB,YCoBA,GAvBqBtsc,IACnB,MAAM,MACJj5C,EAAK,aACL0jgB,EAAY,eACZC,EAAc,OACdvue,EAAM,SACNgtN,GACEnpM,EACJ,OAAKyqd,EAGezuS,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAW,GAAGg7f,4BACA1uS,EAAAA,cAAoB8rI,GAAO,CACzC3rP,OAAqB6/G,EAAAA,cAAoBw1I,GAAgB,MACzDt/Q,YAAa/1D,EAAO04S,wBACpB1rF,SAAUA,EACVpiP,MAAOA,EAEPurY,SAAU,EACV5iY,UAAW,GAAGg7f,oCAXP,IAYN,ECtBCl0Q,GAAYj1L,IAChB,MAAM,QACJjI,GACEiI,EACAjI,IAAY4yL,GAAQI,OACtB/qL,EAAMxI,iBACR,EAWF,SAT+CijK,EAAAA,YAAiB,CAACh8K,EAAON,IAAsBs8K,EAAAA,cAAoB,MAAO,CACvHtsN,UAAWswC,EAAMtwC,UACjB4sE,QAAS3mD,GAAKA,EAAEojC,kBAChBy9L,UAAWA,GACX92M,IAAKA,GACJM,EAAMsM,YCIF,SAASq+c,GAAYryU,GAC1B,IAAIlqL,EAAO,GAWX,OAVCkqL,GAAW,IAAIrvL,SAAQmqJ,IACtB,IAAI,MACFrsJ,EAAK,SACLulD,GACE8mG,EACJhlJ,EAAKpE,KAAKjD,GACNulD,IACFl+C,EAAO,GAAGzB,OAAOw+O,GAAmB/8O,GAAO+8O,GAAmBw/Q,GAAYr+c,KAC5E,IAEKl+C,CACT,CASA,SAASw8f,GAAmBpjH,EAAaxjX,GACvC,OAAoB,kBAATA,GAAqC,kBAATA,KACrB,OAATA,QAA0B,IAATA,OAAkB,EAASA,EAAK7tB,WAAW7K,cAAcgN,SAASkvY,EAAYt8X,OAAO5f,eAGjH,CACA,SAASu/f,GAAkBtiQ,GACzB,IAAI,QACFjwE,EAAO,UACPmpD,EAAS,aACT6xQ,EAAY,eACZwX,EAAc,YACdtjH,EAAW,aACXijH,GACEliQ,EACJ,OAAOjwE,EAAQ9iL,KAAI,CAAC8D,EAAQjB,KAC1B,MAAMpL,EAAMmC,OAAOkK,EAAOvS,OAC1B,GAAIuS,EAAOgzC,SACT,MAAO,CACLr/C,IAAKA,GAAOoL,EACZ4oG,MAAO3nG,EAAO0qB,KACdssO,eAAgB,GAAG7uB,qBACnBn1L,SAAUu+c,GAAkB,CAC1BvyU,QAASh/K,EAAOgzC,SAChBm1L,YACA6xQ,eACAwX,iBACAtjH,cACAijH,kBAIN,MAAM/rZ,EAAYosZ,EAAiBvlC,GAAWgyB,GACxCl9c,EAAO,CACXptC,SAAsBmI,IAAjBkE,EAAOvS,MAAsBkG,EAAMoL,EACxC4oG,MAAqB+6G,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoBt9G,EAAW,CACzGzzD,QAASqoc,EAAah7e,SAASrL,KAChB+uN,EAAAA,cAAoB,OAAQ,KAAM1iN,EAAO0qB,QAE5D,OAAIwjX,EAAYt8X,OACc,oBAAjBu/e,EACFA,EAAajjH,EAAaluY,GAAU+gC,EAAO,KAE7Cuwd,GAAmBpjH,EAAaluY,EAAO0qB,MAAQqW,EAAO,KAExDA,CAAI,GAEf,CACA,SAAS0wd,GAAmB38f,GAC1B,OAAOA,GAAQ,EACjB,CACA,MA6XA,GA7XuB4xC,IACrB,IAAIvb,EAAIC,EAAIiC,EAAIC,EAChB,MAAM,eACJ8je,EAAc,UACdjpR,EAAS,OACT9+M,EAAM,kBACN4oX,EAAiB,UACjB4rF,EAAS,cACT6zB,EAAa,eACbF,EAAc,WACdG,EAAa,OAAM,aACnBR,GAAe,EAAK,YACpBS,EAAW,cACXC,EAAa,OACbhve,EAAM,SACNmwB,EAAQ,kBACRk+M,EAAiB,cACjB4V,GACEpgO,GACE,kCACJord,EAAiC,qBACjCC,EAAoB,oBACpBC,EAAsB,CAAC,EAAC,mBAExBC,EAAkB,sBAClBC,EAAqB,8BACrBC,EAA6B,2BAC7BC,GACE/oe,GACGq/N,EAASo2I,GAAcp8K,EAAAA,UAAe,GACvCtzF,KAAcwiY,KAAqD,QAAnCzme,EAAKyme,EAAY5X,oBAAiC,IAAP7ud,OAAgB,EAASA,EAAGn7B,UAAW4hgB,EAAYS,eAC9Hp7L,EAAiBvvD,IACrB,IAAIv8O,EACJ2zW,EAAWp3H,GACiC,QAA3Cv8O,EAAK6me,EAAoB5pP,oBAAiC,IAAPj9O,GAAyBA,EAAGv8B,KAAKojgB,EAAqBtqP,GAE3E,OAA/B0qP,QAAsE,IAA/BA,GAAiDA,EAA2B1qP,GACjF,OAAlCyqP,QAA4E,IAAlCA,GAAoDA,EAA8BzqP,EAAW,EAYzI,MAAMna,EAA6K,QAA5JjgO,EAAoG,QAA9FD,EAAyC,QAAnCjC,EAAK4me,EAAoB5jf,YAAyB,IAAPgd,EAAgBA,EAAK6me,SAAuC,IAAP5ke,EAAgBA,EAAK6ke,SAA0C,IAAP5ke,EAAgBA,EAAKo7N,EAE1M4pQ,EAAmC,OAAhBV,QAAwC,IAAhBA,OAAyB,EAASA,EAAY5X,cACxFuY,EAAqBC,GChJf,SAAsBtgd,GACnC,MAAM9L,EAAMs8K,EAAAA,OAAaxwK,GACnB8yD,EAAco0O,KACpB,MAAO,CAAC,IAAMhzS,EAAItR,QAASgxD,IACzB1/C,EAAItR,QAAUgxD,EAEdkf,GAAa,EAEjB,CDwIqDqlJ,CAAaonQ,GAAmBa,IAC7EG,EAAe33R,IACnB,IAAI,aACF2iB,GACE3iB,EACJ03R,EAAoB/0Q,EAAa,EAE7Bm2P,EAAUA,CAAC9+e,EAAMwmO,KACrB,IAAI,KACF7kO,EAAI,QACJk7C,GACE2pL,EAMFm3R,EALGjB,EAKU,CACX/zQ,aAAc3oP,GALH,CACX2oP,aAAc9rM,GAAWl7C,EAAK9C,IAAM,CAAC8C,EAAK9C,KAAO,IAMrD,EAEF+uN,EAAAA,WAAgB,KACTgmC,GAGL+pQ,EAAa,CACXh1Q,aAAcg0Q,GAAmBa,IACjC,GACD,CAACA,IAEJ,MAAOpqP,EAAUwqP,GAAehwS,EAAAA,SAAe,IACzC0lD,EAAetzQ,IACnB49f,EAAY59f,EAAK,GAGZo5Y,EAAaue,GAAkB/pM,EAAAA,SAAe,IAC/C68K,EAAWljX,IACf,MAAM,MACJ5uB,GACE4uB,EAAEziB,OACN6yZ,EAAeh/Z,EAAM,EAGvBi1N,EAAAA,WAAgB,KACTgmC,GACH+jK,EAAe,GACjB,GACC,CAAC/jK,IAEJ,MAAMiqQ,EAAwB79f,IAC5B,MAAM89f,GAAuB,OAAT99f,QAA0B,IAATA,OAAkB,EAASA,EAAK9E,QAAU8E,EAAO,KACtF,OAAmB,OAAf89f,GAAyBhB,GAAgBA,EAAY5X,aAGrD/6Y,GAAQ2zZ,EAA4B,OAAhBhB,QAAwC,IAAhBA,OAAyB,EAASA,EAAY5X,cAAc,GACnG,UAET6X,EAAc,CACZxoe,SACA11B,IAAKkqe,EACLmc,aAAc4Y,IARP,IASP,EAEEvtK,EAAYA,KAChBpuB,GAAe,GACf07L,EAAsBJ,IAAsB,EAExCt9M,EAAU,WACd,IAAI,QACF6/C,EAAO,cACP+9J,GACEv0f,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CACtEw2V,SAAS,EACT+9J,eAAe,GAEb/9J,GACF69J,EAAsB,IAEpBE,GACF57L,GAAe,GAEjBw1F,EAAe,IAEb+lG,EADEV,GACmBC,GAAwB,IAAI71f,KAAIvI,GAAOmC,OAAOnC,KAE/C,GAExB,EACMm/f,EAAW,WACf,IAAI,cACFD,GACEv0f,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CACtEu0f,eAAe,GAEbA,GACF57L,GAAe,GAEjB07L,EAAsBJ,IACxB,EAcMQ,EAAoB1wS,KAAW,CACnC,CAAC,GAAG4vL,2BAjOYjzN,EAiO2C31J,EAAO21J,SAAW,IAhOxEA,EAAQ/+K,MAAKsrK,IAClB,IAAI,SACFv4H,GACEu4H,EACJ,OAAOv4H,CAAQ,OALnB,IAAoBgsI,EAmOlB,MAAMg0U,EAAa32e,IACjB,GAAIA,EAAEziB,OAAO+3C,QAAS,CACpB,MAAMshd,EAAgB5B,GAAuB,OAAXhoe,QAA8B,IAAXA,OAAoB,EAASA,EAAO21J,SAAS9iL,KAAIvI,GAAOmC,OAAOnC,KACpH6+f,EAAoBS,EACtB,MACET,EAAoB,GACtB,EAEIhC,EAAcj0R,IAClB,IAAI,QACFv9C,GACEu9C,EACJ,OAAQv9C,GAAW,IAAI9iL,KAAI,CAAC8D,EAAQjB,KAClC,MAAMpL,EAAMmC,OAAOkK,EAAOvS,OACpBszC,EAAO,CACXnG,MAAO56B,EAAO0qB,KACd/2B,SAAsBmI,IAAjBkE,EAAOvS,MAAsBkG,EAAMmC,OAAOiJ,IAOjD,OALIiB,EAAOgzC,WACTjS,EAAKiS,SAAWw9c,EAAY,CAC1BxxU,QAASh/K,EAAOgzC,YAGbjS,CAAI,GACX,EAEEmyd,EAAgBz8f,IACpB,IAAI00B,EACJ,OAAOt2B,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGxB,GAAO,CAC5Ci0B,KAAMj0B,EAAKmkC,MACXntC,MAAOgJ,EAAK9C,IACZq/C,UAAoC,QAAxB7nB,EAAK10B,EAAKu8C,gBAA6B,IAAP7nB,OAAgB,EAASA,EAAGjvB,KAAI6kC,GAAQmyd,EAAcnyd,OAAW,IAC7G,EAEJ,IAAIoyd,EACJ,MAAM,UACJ7mY,GAAS,YACT+pS,IACE3zM,EAAAA,WAAiBg1D,IACrB,GAAqC,oBAA1BruP,EAAO+pe,eAChBD,EAAkB9pe,EAAO+pe,eAAe,CACtCjrR,UAAW,GAAG8pK,WACdsvG,gBAAiB9jQ,GAAgBg1Q,EAAa,CAC5Ch1Q,aAAcA,IAEhBA,aAAc80Q,IACdz9J,QAASg+J,EACTO,aAAcp+M,EACdj2H,QAAS31J,EAAO21J,QAChB0pE,QAAS6E,EACT7/O,MAAOA,KACLupT,GAAe,EAAM,SAGpB,GAAI5tS,EAAO+pe,eAChBD,EAAkB9pe,EAAO+pe,mBACpB,CACL,MAAM31Q,EAAe80Q,KAAyB,GACxCe,EAAqBA,KACzB,IAAInoe,EAAIC,EACR,MAAMowH,EAAyG,QAAhGrwH,EAAqB,OAAhBkrY,SAAwC,IAAhBA,QAAyB,EAASA,GAAY,uBAAoC,IAAPlrY,EAAgBA,EAAmBu3L,EAAAA,cAAoBqiE,GAAO,CACnL1rR,MAAO0rR,GAAMq/G,uBACb3tX,YAAaoM,EAAOw4S,gBACpB1wS,OAAQ,CACNtxB,MAAO,CACL7I,OAAQ,KAGZ2D,MAAO,CACL1D,OAAQ,EACR2/B,QAAS,YAGb,GAAsC,KAAjC/G,EAAO21J,SAAW,IAAIhvL,OACzB,OAAOwrJ,EAET,GAAmB,SAAfm2W,EACF,OAAoBjvS,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoB6wS,GAAc,CAC3GpC,aAAcA,EACd1jgB,MAAOygZ,EACPr+J,SAAU0vJ,EACV6xH,eAAgBA,EAChBvue,OAAQA,IACO6/L,EAAAA,cAAoB,MAAO,CAC1CtsN,UAAW,GAAGg7f,0BACbI,EAA+B9uS,EAAAA,cAAoBupQ,GAAU,CAC9Dt6a,QAAS8rM,EAAaztP,SAAWqhgB,GAAYhoe,EAAO21J,SAAShvL,OAC7Dk7d,cAAeztO,EAAaztP,OAAS,GAAKytP,EAAaztP,OAASqhgB,GAAYhoe,EAAO21J,SAAShvL,OAC5FoG,UAAW,GAAGg7f,6BACdvhR,SAAUmjR,GACwE,QAAhF5ne,EAAgB,OAAXvI,QAA8B,IAAXA,OAAoB,EAASA,EAAO2we,sBAAmC,IAAPpoe,EAAgBA,EAAgB,OAAXvI,QAA8B,IAAXA,OAAoB,EAASA,EAAOy4S,gBAAmB,KAAmB54G,EAAAA,cAAoB2kS,GAAM,CACtO1T,WAAW,EACXvoO,YAAY,EACZ2kP,WAAW,EACXjtb,SAAU0ub,EACVhS,eAAgBgS,EAChBp7f,UAAW,GAAG67Y,SACd2hG,QAASA,EACTxB,YAAa30P,EACbA,aAAcA,EACdw0M,UAAU,EACVs1D,SAAUiJ,EAAY,CACpBxxU,QAAS31J,EAAO21J,UAElB6tU,kBAAkB,EAClBE,kBAAkB,EAClBzW,eAAgBpoG,EAAYt8X,OAASnb,GACP,oBAAjB06f,EACFA,EAAajjH,EAAaglH,EAAcz8f,IAE1C66f,GAAmBpjH,EAAaz3Y,EAAKmkC,YAC1C9+B,MAGR,MAAMwyO,EAAQijR,GAAkB,CAC9BvyU,QAAS31J,EAAO21J,SAAW,GAC3BmyU,eACAhpR,YACA6xQ,aAAcuY,IACdf,iBACAtjH,gBAEIlvS,EAAUsvI,EAAMpuO,OAAM6gC,GAAiB,OAATA,IACpC,OAAoB2hL,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoB6wS,GAAc,CAC3GpC,aAAcA,EACd1jgB,MAAOygZ,EACPr+J,SAAU0vJ,EACV6xH,eAAgBA,EAChBvue,OAAQA,IACNm8E,EAAUw8C,EAAsBknE,EAAAA,cAAoBn+J,GAAM,CAC5D6mN,YAAY,EACZtoM,SAAU0ub,EACVrpR,UAAW,GAAG8pK,SACd77Y,UAAW28f,EACXxnP,SAAUknP,EACVjnP,WAAYinP,EACZh1Q,aAAcA,EACdyT,kBAAmBA,EACnBgX,SAAUA,EACVE,aAAcA,EACd95B,MAAOA,IACL,EAEAmlR,EAAmBA,IACnB3B,EACK7yZ,IAAS8yZ,GAAwB,IAAI71f,KAAIvI,GAAOmC,OAAOnC,KAAO8pP,GAAc,GAEtD,IAAxBA,EAAaztP,OAEtBmjgB,EAA+BzwS,EAAAA,cAAoBA,EAAAA,SAAgB,KAAM4wS,IAAmC5wS,EAAAA,cAAoB,MAAO,CACrItsN,UAAW,GAAG+xO,mBACAzlB,EAAAA,cAAoB1pB,GAAQ,CAC1CnjM,KAAM,OACNqb,KAAM,QACN2hC,SAAU4gd,IACVzwb,QAASA,IAAMiyO,KACdpyR,EAAOu4S,aAA2B14G,EAAAA,cAAoB1pB,GAAQ,CAC/DnjM,KAAM,UACNqb,KAAM,QACN8xD,QAASqiR,GACRxiU,EAAOs4S,gBACZ,CAEI9xS,EAAO+pe,iBACTD,EAA+BzwS,EAAAA,cAAoByrG,GAAkB,CACnE/iD,gBAAYtvQ,GACXq3f,IAELA,EAA+BzwS,EAAAA,cAAoBgxS,GAA2B,CAC5Et9f,UAAW,GAAG+xO,cACbgrR,GACH,MAoBMQ,GAAsB7yF,GAAc,CACxCh+H,QAAS,CAAC,SACV7nC,UAAyB,QAAd3uI,GAAsB,aAAe,cAChDt5E,SAvByB4gd,MACzB,IAAIC,EAQJ,OANEA,EAD+B,oBAAtBxqe,EAAOwqe,WACHxqe,EAAOwqe,WAAWzkY,GACtB/lG,EAAOwqe,WACHxqe,EAAOwqe,WAEMnxS,EAAAA,cAAoBohS,GAAc,MAE1CphS,EAAAA,cAAoB,OAAQ,CAC9Cu6B,KAAM,SACNvK,UAAW,EACXt8O,UAAWisN,KAAW,GAAG8lB,YAAqB,CAC5CxmN,OAAQytG,IAEVpsD,QAAS3mD,IACPA,EAAEojC,iBAAiB,GAEpBo0c,EAAW,EAKJD,GACV1iQ,qBACCr8P,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG+5f,GAAsB,CACvDlrP,cAAezkD,KAAWykD,EAAekrP,EAAoBlrP,eAC7D14P,KAAMm/O,EACN6a,aAvNsBh8B,CAACs7B,EAAYrmI,KACf,YAAhBA,EAAK5mI,SACHitQ,QAAmC5rQ,IAArBw2f,GAEhBE,EAAoBf,GAAmBa,IAEzCr7L,EAAevvD,GACVA,GAAer+O,EAAO+pe,iBAAkB1B,GAC3CrsK,IAEJ,EA8MA/d,eAAgBA,IACgH,oBAA1F,OAAxB0qL,QAAwD,IAAxBA,OAAiC,EAASA,EAAoB1qL,gBACjG0qL,EAAoB1qL,eAAe6rL,GAErCA,KAGX,OAAoBzwS,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAW,GAAG+xO,YACAzlB,EAAAA,cAAoB,OAAQ,CAC1CtsN,UAAW,GAAGg7f,kBACbp+c,GAAwB0vK,EAAAA,cAAoB6iG,GAAU1wT,OAAOoD,OAAO,CAAC,EAAG07f,KAAsB,EEld7FG,GAAsBA,CAAC5pe,EAAShF,EAAMnU,KAC1C,IAAIgjf,EAAe,GA+BnB,OA9BC7pe,GAAW,IAAIv6B,SAAQ,CAAC05B,EAAQtqB,KAC/B,IAAIosB,EACJ,MAAM6oe,EAAYpQ,GAAa7kf,EAAOgS,GACtC,GAAIsY,EAAO21J,SAAW,mBAAoB31J,GAAU,aAAcA,EAChE,GAAI,kBAAmBA,EAAQ,CAE7B,IAAI4qe,EAAiB5qe,EAAO6qe,cACtB,mBAAoB7qe,IACxB4qe,EAAuH,QAArG9oe,EAAwB,OAAnB8oe,QAA8C,IAAnBA,OAA4B,EAASA,EAAe/3f,IAAIpG,eAA4B,IAAPq1B,EAAgBA,EAAK8oe,GAEtJF,EAAarjgB,KAAK,CAChB24B,SACA11B,IAAK+vf,GAAar6d,EAAQ2qe,GAC1Bha,aAAcia,EACd5B,cAAehpe,EAAO+lG,UAE1B,MAEE2kY,EAAarjgB,KAAK,CAChB24B,SACA11B,IAAK+vf,GAAar6d,EAAQ2qe,GAC1Bha,aAAc90d,GAAQmE,EAAO0oe,qBAAuB1oe,EAAO0oe,0BAAuBj2f,EAClFu2f,cAAehpe,EAAO+lG,WAIxB,aAAc/lG,IAChB0qe,EAAe,GAAG1ggB,OAAOw+O,GAAmBkiR,GAAeliR,GAAmBiiR,GAAoBzqe,EAAO2pB,SAAU9tB,EAAM8ue,KAC3H,IAEKD,CAAY,EAErB,SAASI,GAAahsR,EAAW8pK,EAAmB/nX,EAAS6pe,EAAclxe,EAAQgve,EAAe3gQ,EAAmBngP,EAAK+1P,GACxH,OAAO58O,EAAQhuB,KAAI,CAACmtB,EAAQtqB,KAC1B,MAAMi1f,EAAYpQ,GAAa7kf,EAAOgS,IAChC,cACJ2gf,GAAgB,EAAI,eACpBF,GAAiB,EAAI,WACrBG,EAAU,aACVR,GACE9ne,EACJ,IAAI+qe,EAAY/qe,EAChB,GAAI+qe,EAAUp1U,SAAWo1U,EAAUhB,eAAgB,CACjD,MAAMv1B,EAAY6lB,GAAa0Q,EAAWJ,GACpCpC,EAAcmC,EAAa5zf,MAAK25I,IACpC,IAAI,IACFnmJ,GACEmmJ,EACJ,OAAO+jV,IAAclqe,CAAG,IAE1ByggB,EAAYv/f,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGm8f,GAAY,CACtDx5d,MAAOy5d,GAA6B3xS,EAAAA,cAAoB4xS,GAAgB,CACtElD,eAAgBjpR,EAChBA,UAAW,GAAGA,WACd8pK,kBAAmBA,EACnB5oX,OAAQ+qe,EACRv2B,UAAWA,EACX+zB,YAAaA,EACbF,cAAeA,EACfF,eAAgBA,EAChBG,WAAYA,EACZR,aAAcA,EACdU,cAAeA,EACfhve,OAAQA,EACRquO,kBAAmBA,EACnB4V,cAAeA,GACd+8O,GAAkBx6d,EAAOuR,MAAOy5d,KAEvC,CAMA,MALI,aAAcD,IAChBA,EAAYv/f,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGm8f,GAAY,CACtDphd,SAAUmhd,GAAahsR,EAAW8pK,EAAmBmiH,EAAUphd,SAAU+gd,EAAclxe,EAAQgve,EAAe3gQ,EAAmB8iQ,EAAWltP,MAGzIstP,CAAS,GAEpB,CACA,MAAMG,GAAqBR,IACzB,MAAMS,EAAiB,CAAC,EAqBxB,OApBAT,EAAapkgB,SAAQ47K,IACnB,IAAI,IACF53K,EAAG,aACHqmf,EAAY,OACZ3wd,GACEkiJ,EACJ,MAAMkpV,EAAc9ggB,GACd,QACJqrL,EAAO,eACPo0U,GACE/pe,EACJ,GAAI+pe,EACFoB,EAAeC,GAAeza,GAAgB,UACzC,GAAItqf,MAAMqR,QAAQi5e,GAAe,CACtC,MAAMllf,EAAOu8f,GAAYryU,GACzBw1U,EAAeC,GAAe3/f,EAAKkL,QAAO00f,GAAa1a,EAAah7e,SAASlJ,OAAO4+f,KACtF,MACEF,EAAeC,GAAe,IAChC,IAEKD,CAAc,EAEVtB,GAAgBA,CAAC9nf,EAAM2of,EAAcx5B,IAC5Bw5B,EAAajme,QAAO,CAAC6me,EAAa/C,KACpD,MACEvoe,QAAQ,SACNure,EAAQ,QACR51U,GACD,aACDg7T,GACE4X,EACJ,OAAIgD,GAAY5a,GAAgBA,EAAahqf,OACpC2kgB,EAENz4f,KAAI+5d,GAAUphe,OAAOoD,OAAO,CAAC,EAAGg+d,KAASj2d,QAAOi2d,GAAU+jB,EAAa/5e,MAAKtM,IAC3E,MAAMmB,EAAOu8f,GAAYryU,GACnBw2R,EAAW1gd,EAAKsL,WAAU3Q,GAAKqG,OAAOrG,KAAOqG,OAAOnC,KACpDkhgB,GAAwB,IAAdr/C,EAAkB1gd,EAAK0gd,GAAY7hd,EAKnD,OAHIsie,EAAOsE,KACTtE,EAAOsE,GAAsB24B,GAAcj9B,EAAOsE,GAAqBw5B,EAAcx5B,IAEhFq6B,EAASC,EAAS5+B,EAAO,MAG7B0+B,CAAW,GACjBvpf,GAGC0pf,GAAmBC,GAAoBA,EAAiBp6Z,SAAQtxE,GAChE,aAAcA,EACT,CAACA,GAAQh2B,OAAOw+O,GAAmBijR,GAAiBzre,EAAO2pB,UAAY,MAEzE,CAAC3pB,KAoEV,GAlEkBqd,IAChB,MAAM,UACJyhM,EAAS,kBACT8pK,EACAowF,cAAe0yB,EAAgB,eAC/BC,EAAc,kBACd9jQ,EACAruO,OAAQ+8d,EAAW,cACnB94O,GACEpgO,EAEE27b,GADUz5K,GAAc,SACRlmG,EAAAA,SAAc,IAAMoyS,GAAiBC,GAAoB,KAAK,CAACA,MAC9EhB,EAAckB,GAAmBvyS,EAAAA,UAAe,IAAMoxS,GAAoBzxB,GAAe,KAC1F6yB,EAAqBxyS,EAAAA,SAAc,KACvC,MAAMyyS,EAAkBrB,GAAoBzxB,GAAe,GAC3D,GAA+B,IAA3B8yB,EAAgBnlgB,OAClB,OAAOmlgB,EAET,IAAIC,GAAiC,EACjCC,GAA8B,EAYlC,GAXAF,EAAgBxlgB,SAAQs/P,IACtB,IAAI,aACF+qP,GACE/qP,OACiBnzP,IAAjBk+e,EACFob,GAAiC,EAEjCC,GAA8B,CAChC,IAGED,EAAgC,CAElC,MAAMvb,GAAWxX,GAAiB,IAAInme,KAAI,CAACmtB,EAAQtqB,IAAU2kf,GAAar6d,EAAQu6d,GAAa7kf,MAC/F,OAAOg1f,EAAa/zf,QAAOy6N,IACzB,IAAI,IACF9mO,GACE8mO,EACJ,OAAOo/Q,EAAQ76e,SAASrL,EAAI,IAC3BuI,KAAI6kC,IACL,MAAM/G,EAAMqoc,EAAcwX,EAAQz5e,WAAUzM,GAAOA,IAAQotC,EAAKptC,OAChE,OAAOkB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG8oC,GAAO,CAC5C1X,OAAQx0B,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG8oC,EAAK1X,QAAS2Q,GACtDq4d,cAAer4d,EAAIo1F,UACnB,GAEN,CAEA,OAAO+lY,CAAe,GACrB,CAAC9yB,EAAe0xB,IACb/0U,EAAU0jC,EAAAA,SAAc,IAAM6xS,GAAmBW,IAAqB,CAACA,IACvErD,EAAgBD,IACpB,MAAM0D,EAAkBJ,EAAmBl1f,QAAO86N,IAChD,IAAI,IACFnnO,GACEmnO,EACJ,OAAOnnO,IAAQi+f,EAAYj+f,GAAG,IAEhC2hgB,EAAgB5kgB,KAAKkhgB,GACrBqD,EAAgBK,GAChBN,EAAeT,GAAmBe,GAAkBA,EAAgB,EAGtE,MAAO,CADkBC,GAAgBpB,GAAahsR,EAAW8pK,EAAmBsjH,EAAcL,EAAoBtV,EAAaiS,EAAe3gQ,OAAmBp1P,EAAWgrQ,GACtJouP,EAAoBl2U,EAAQ,EClLxD,GA3BqBw2U,CAACpqf,EAAMmvd,EAAoBE,KAC9C,MAAMg7B,EAAc/yS,EAAAA,OAAa,CAAC,GAwBlC,MAAO,CAvBP,SAAwB/uN,GACtB,IAAIw3B,EACJ,IAAKsqe,EAAY3ge,SAAW2ge,EAAY3ge,QAAQ1pB,OAASA,GAAQqqf,EAAY3ge,QAAQylc,qBAAuBA,GAAsBk7B,EAAY3ge,QAAQ2lc,YAAcA,EAAW,CAC7K,MAAMi7B,EAAQ,IAAI90d,IAClB,SAAS4qX,EAAIzvG,GACXA,EAAQpsT,SAAQ,CAACsme,EAAQl3d,KACvB,MAAMmha,EAASu6D,EAAUxE,EAAQl3d,GACjC22f,EAAMl9f,IAAI0na,EAAQ+1D,GACdA,GAA4B,kBAAXA,GAAuBsE,KAAsBtE,GAChEzqE,EAAIyqE,EAAOsE,IAAuB,GACpC,GAEJ,CACA/uE,EAAIpgZ,GACJqqf,EAAY3ge,QAAU,CACpB1pB,OACAmvd,qBACAm7B,QACAj7B,YAEJ,CACA,OAA4C,QAApCtvc,EAAKsqe,EAAY3ge,QAAQ4ge,aAA0B,IAAPvqe,OAAgB,EAASA,EAAG9uB,IAAI1I,EACtF,EACuB,EC1BzB,IAAI6mS,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAGO,MAAMoze,GAAoB,GAwDjC,SAzCA,SAAuB57d,EAAO81M,EAAU2yF,GACtC,MAAMr3S,EAAKq3S,GAAoC,kBAAfA,EAA0BA,EAAa,CAAC,GAEpEzoS,MAAO67d,EAAkB,GACvBzqe,EACJg1Y,EAAgB3lI,GAAOrvQ,EAAI,CAAC,WACvB0qe,EAAiBC,IAAsB15b,EAAAA,EAAAA,WAAS,KAAM,CAC3DtnC,QAAS,mBAAoBqrY,EAAgBA,EAAcx4B,eAAiB,EAC5En4Y,SAAU,oBAAqB2wa,EAAgBA,EAAcp4B,gBAAkB4tH,OAG3EI,EAAmBj1F,GAAc+0F,EAAiB11F,EAAe,CACrEpmY,MAAO67d,EAAkB,EAAIA,EAAkB77d,IAG3Ci8d,EAAU3lgB,KAAK6K,MAAM06f,GAAmB77d,GAASg8d,EAAiBvmgB,UACpEumgB,EAAiBjhe,QAAUkhe,IAE7BD,EAAiBjhe,QAAUkhe,GAAW,GAExC,MAAMC,EAAoBA,CAACnhe,EAAStlC,KAClCsmgB,EAAmB,CACjBhhe,QAAqB,OAAZA,QAAgC,IAAZA,EAAqBA,EAAU,EAC5DtlC,SAAUA,GAAYumgB,EAAiBvmgB,UACvC,EAUJ,OAAmB,IAAfgzU,EACK,CAAC,CAAC,EAAG,QAEP,CAAC3tU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG89f,GAAmB,CACzDlmR,SAZuB0qJ,CAACzlW,EAAStlC,KACjC,IAAI27B,EACAq3S,IAC6B,QAA9Br3S,EAAKq3S,EAAW3yF,gBAA6B,IAAP1kN,GAAyBA,EAAGv8B,KAAK4zU,EAAY1tS,EAAStlC,IAE/FymgB,EAAkBnhe,EAAStlC,GAC3BqgP,EAAS/6M,EAAStlC,IAAkC,OAArBumgB,QAAkD,IAArBA,OAA8B,EAASA,EAAiBvmgB,UAAU,IAO5HymgB,EACN,EC/DA,SADsB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,0HAA8H,KAAQ,WAAY,MAAS,YCMxT,IAAIC,GAAkB,SAAyBxvd,EAAON,GACpD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMq1T,KAEV,EAOA,SAJ2BzzS,EAAAA,WAAiBwzS,ICLtCE,GAAS,SACTC,GAAU,UACVC,GAAsBjte,GACG,kBAAlBA,EAAO+lY,QAAyD,kBAA3B/lY,EAAO+lY,OAAOtsV,UACrDz5C,EAAO+lY,OAAOtsV,SAInByzb,GAAkBnnG,GACA,oBAAXA,EACFA,KAELA,GAA4B,kBAAXA,IAAuBA,EAAOxvV,UAC1CwvV,EAAOxvV,QAUZ42b,GAAoBA,CAACtse,EAAShF,EAAMnU,KACxC,IAAI0lf,EAAa,GACjB,MAAMnnS,EAAYA,CAACjmM,EAAQ2qe,KACzByC,EAAW/lgB,KAAK,CACd24B,SACA11B,IAAK+vf,GAAar6d,EAAQ2qe,GAC1B0C,iBAAkBJ,GAAoBjte,GACtCste,UAAWtte,EAAOste,WAClB,EAyBJ,OAvBCzse,GAAW,IAAIv6B,SAAQ,CAAC05B,EAAQtqB,KAC/B,MAAMi1f,EAAYpQ,GAAa7kf,EAAOgS,GAClCsY,EAAO2pB,UACL,cAAe3pB,GAEjBimM,EAAUjmM,EAAQ2qe,GAEpByC,EAAa,GAAGpjgB,OAAOw+O,GAAmB4kR,GAAa5kR,GAAmB2kR,GAAkBnte,EAAO2pB,SAAU9tB,EAAM8ue,MAC1G3qe,EAAO+lY,SACZ,cAAe/lY,EAEjBimM,EAAUjmM,EAAQ2qe,GACT9ue,GAAQmE,EAAOute,kBAExBH,EAAW/lgB,KAAK,CACd24B,SACA11B,IAAK+vf,GAAar6d,EAAQ2qe,GAC1B0C,iBAAkBJ,GAAoBjte,GACtCste,UAAWtte,EAAOute,mBAGxB,IAEKH,CAAU,EAEbI,GAAeA,CAAC1uR,EAAWj+M,EAAS4se,EAAcC,EAAeC,EAAuBpX,EAAaqX,EAAwBlmf,KACjI,MAAMuxd,GAAgBp4c,GAAW,IAAIhuB,KAAI,CAACmtB,EAAQtqB,KAChD,MAAMi1f,EAAYpQ,GAAa7kf,EAAOgS,GACtC,IAAIqjf,EAAY/qe,EAChB,GAAI+qe,EAAUhlG,OAAQ,CACpB,MAAM8nG,EAAiB9C,EAAU8C,gBAAkBF,EAC7CG,OAAoDr7f,IAAhCs4f,EAAU+C,kBAAkCF,EAAyB7C,EAAU+C,kBACnGt5B,EAAY6lB,GAAa0Q,EAAWJ,GACpCoD,EAAcN,EAAa32f,MAAK25I,IACpC,IAAI,IACFnmJ,GACEmmJ,EACJ,OAAOnmJ,IAAQkqe,CAAS,IAEpB84B,EAAYS,EAAcA,EAAYT,UAAY,KAClDU,EAxDcC,EAACJ,EAAgBpie,IACpCA,EAGEoie,EAAeA,EAAe3jgB,QAAQuhC,GAAW,GAF/Coie,EAAe,GAsDEI,CAAkBJ,EAAgBP,GACxD,IAAIvnG,EACJ,GAAI/lY,EAAOkue,SACTnoG,EAAS/lY,EAAOkue,SAAS,CACvBZ,kBAEG,CACL,MAAM/gE,EAASshE,EAAel4f,SAASo3f,KAAyB1zS,EAAAA,cAAoBwzS,GAAiB,CACnG9/f,UAAWisN,KAAW,GAAG8lB,qBAA8B,CACrDxmN,OAAQg1e,IAAcP,OAGpBvgE,EAAWqhE,EAAel4f,SAASq3f,KAA0B3zS,EAAAA,cAAoBiiN,GAAmB,CACxGvua,UAAWisN,KAAW,GAAG8lB,uBAAgC,CACvDxmN,OAAQg1e,IAAcN,OAG1BjnG,EAAsB1sM,EAAAA,cAAoB,OAAQ,CAChDtsN,UAAWisN,KAAW,GAAG8lB,kBAA2B,CAClD,CAAC,GAAGA,2BAAoCytN,IAAUC,MAEtCnzO,EAAAA,cAAoB,OAAQ,CAC1CtsN,UAAW,GAAG+xO,wBACd,cAAe,QACdytN,EAAQC,GACb,CACA,MAAM,WACJ35H,EAAU,WACVD,EAAU,YACVD,GACE4jL,GAAe,CAAC,EACpB,IAAI4X,EAAUt7L,EACVm7L,IAAkBhB,GACpBmB,EAAUx7L,EACDq7L,IAAkBjB,KAC3BoB,EAAUv7L,GAEZ,MAAMpO,EAA4C,kBAAtBspM,EAAiCtigB,OAAOoD,OAAO,CACzE2iC,MAAO48d,GACNL,GAAqB,CACtBv8d,MAAO48d,GAETpD,EAAYv/f,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGm8f,GAAY,CACtDh+f,UAAWisN,KAAW+xS,EAAUh+f,UAAW,CACzC,CAAC,GAAG+xO,iBAA0BwuR,IAEhC/7d,MAAOy5d,IACL,MAAMoD,EAAqB,GAAGtvR,mBACxBuvR,EAAwCh1S,EAAAA,cAAoB,OAAQ,CACxEtsN,UAAW,GAAG+xO,kBACb07Q,GAAkBx6d,EAAOuR,MAAOy5d,IAC7BsD,EAA+Bj1S,EAAAA,cAAoB,MAAO,CAC9DtsN,UAAWqhgB,GACVC,EAA0BtoG,GAC7B,OAAI+nG,EAC+B,mBAAtBA,GAAwI,iBAA9E,OAAtBA,QAAoD,IAAtBA,OAA+B,EAASA,EAAkBv9f,QACjH8oN,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAW,GAAGqhgB,KAAsBtvR,0CACnCuvR,EAAuCh1S,EAAAA,cAAoBojF,GAASjxS,OAAOoD,OAAO,CAAC,EAAG41T,GAAeuhG,IAEtF1sM,EAAAA,cAAoBojF,GAASjxS,OAAOoD,OAAO,CAAC,EAAG41T,GAAe8pM,GAE7EA,CAAe,EAExB13B,aAAcjmc,IACZ,IAAI7O,EACJ,MAAMhC,GAAuC,QAA9BgC,EAAK9B,EAAO42c,oBAAiC,IAAP90c,OAAgB,EAASA,EAAGv8B,KAAKy6B,EAAQ2Q,KAAS,CAAC,EAClG49d,EAAgBzue,EAAK65C,QACrB60b,EAAiB1ue,EAAK+zN,UAC5B/zN,EAAK65C,QAAU/a,IACb8uc,EAAc,CACZ1te,SACA11B,IAAKkqe,EACL84B,UAAWU,EACXX,iBAAkBJ,GAAoBjte,KAEtB,OAAlBuue,QAA4C,IAAlBA,GAAoCA,EAAc3vc,EAAM,EAEpF9+B,EAAK+zN,UAAYj1L,IACXA,EAAMjI,UAAY4yL,GAAQI,QAC5B+jR,EAAc,CACZ1te,SACA11B,IAAKkqe,EACL84B,UAAWU,EACXX,iBAAkBJ,GAAoBjte,KAErB,OAAnBwue,QAA8C,IAAnBA,GAAqCA,EAAe5vc,GACjF,EAEF,MAAM6vc,E1CnJeC,EAACn9d,EAAO8L,KACrC,MAAMjV,EAAMoyd,GAAkBjpd,EAAO8L,GACrC,MAA4C,oBAAxC7xC,OAAOnG,UAAUmO,SAASjO,KAAK6iC,GAC1B,GAEFA,CAAG,E0C8IkBsme,CAAgB1ue,EAAOuR,MAAO,CAAC,GAC7Co9d,EAA+B,OAAhBF,QAAwC,IAAhBA,OAAyB,EAASA,EAAYj7f,WAY3F,OAVI85f,EACFxte,EAAK,aAA6B,WAAdwte,EAAyB,YAAc,aAE3Dxte,EAAK,cAAgB6ue,GAAgB,GAEvC7ue,EAAK/yB,UAAYisN,KAAWl5L,EAAK/yB,UAAW,GAAG+xO,wBAC/Ch/M,EAAKupN,SAAW,EACZrpN,EAAOqwY,WACTvwY,EAAKyR,OAAyB,OAAhBk9d,QAAwC,IAAhBA,EAAyBA,EAAc,IAAIj7f,YAE5EssB,CAAI,GAGjB,CAMA,MALI,aAAcire,IAChBA,EAAYv/f,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGm8f,GAAY,CACtDphd,SAAU6jd,GAAa1uR,EAAWisR,EAAUphd,SAAU8jd,EAAcC,EAAeC,EAAuBpX,EAAaqX,EAAwBjD,MAG5II,CAAS,IAElB,OAAO9xB,CAAY,EAEf21B,GAAcb,IAClB,MAAM,OACJ/te,EAAM,UACNste,GACES,EACJ,MAAO,CACL/te,SACAksB,MAAOohd,EACP71d,MAAOzX,EAAOsob,UACdksB,UAAWx0c,EAAO11B,IACnB,EAEGukgB,GAAqBpB,IACzB,MAAMqB,EAAgBrB,EAAa92f,QAAOurK,IACxC,IAAI,UACForV,GACEprV,EACJ,OAAOorV,CAAS,IACfz6f,IAAI+7f,IAGP,GAA6B,IAAzBE,EAAcnogB,QAAgB8mgB,EAAa9mgB,OAAQ,CACrD,MAAMixC,EAAY61d,EAAa9mgB,OAAS,EACxC,OAAO6E,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGgggB,GAAYnB,EAAa71d,KAAc,CAC5E5X,YAAQvtB,EACRy5C,WAAOz5C,EACPglC,WAAOhlC,EACP+he,eAAW/he,GAEf,CACA,OAAIq8f,EAAcnogB,QAAU,EACnBmogB,EAAc,IAAM,CAAC,EAEvBA,CAAa,EAETC,GAAcA,CAAChtf,EAAMqrf,EAAYl8B,KAC5C,MAAM89B,EAAoB5B,EAAW5igB,QAAQ6vB,MAAK,CAAC3a,EAAGC,IAAMA,EAAE0tf,iBAAmB3tf,EAAE2tf,mBAC7E4B,EAAYltf,EAAKvX,QACjB0kgB,EAAiBF,EAAkBr4f,QAAOivP,IAC9C,IACE5lO,QAAQ,OACN+lY,GACD,UACDunG,GACE1nQ,EACJ,OAAOsnQ,GAAgBnnG,IAAWunG,CAAS,IAG7C,OAAK4B,EAAevogB,OAGbsogB,EAAU50e,MAAK,CAAC80e,EAASC,KAC9B,IAAK,IAAI1ogB,EAAI,EAAGA,EAAIwogB,EAAevogB,OAAQD,GAAK,EAAG,CACjD,MAAMqngB,EAAcmB,EAAexogB,IAEjCs5B,QAAQ,OACN+lY,GACD,UACDunG,GACES,EACEsB,EAAYnC,GAAgBnnG,GAClC,GAAIspG,GAAa/B,EAAW,CAC1B,MAAMgC,EAAgBD,EAAUF,EAASC,EAAS9B,GAClD,GAAsB,IAAlBgC,EACF,OAAOhC,IAAcP,GAASuC,GAAiBA,CAEnD,CACF,CACA,OAAO,CAAC,IACPz8f,KAAI+5d,IACL,MAAM2iC,EAAa3iC,EAAOsE,GAC1B,OAAIq+B,EACK/jgB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg+d,GAAS,CAC9C,CAACsE,GAAqB69B,GAAYQ,EAAYnC,EAAYl8B,KAGvDtE,CAAM,IA3BNqiC,CA4BP,EA0GJ,GAxGwB5xd,IACtB,MAAM,UACJyhM,EAAS,cACTk6P,EAAa,eACb60B,EAAc,YACdtX,EAAW,kBACXuX,EAAiB,eACjB0B,GACEnyd,GACG+vd,EAAYqC,GAAiBp2S,EAAAA,SAAe8zS,GAAkBn0B,GAAe,IAC9E02B,EAAgBA,CAAC7ue,EAASnZ,KAC9B,MAAMiof,EAAU,GAShB,OARA9ue,EAAQv6B,SAAQ,CAACoxC,EAAMhiC,KACrB,MAAMi1f,EAAYpQ,GAAa7kf,EAAOgS,GAEtC,GADAiof,EAAQtogB,KAAKgzf,GAAa3id,EAAMizd,IAC5BtkgB,MAAMqR,QAAQggC,EAAKiS,UAAW,CAChC,MAAMimd,EAAYF,EAAch4d,EAAKiS,SAAUghd,GAC/CgF,EAAQtogB,KAAKwY,MAAM8vf,EAASnnR,GAAmBonR,GACjD,KAEKD,CAAO,EAEVE,EAAqBx2S,EAAAA,SAAc,KACvC,IAAIusF,GAAW,EACf,MAAMkmN,EAAkBqB,GAAkBn0B,GAAe,GAEzD,IAAK8yB,EAAgBnlgB,OAAQ,CAC3B,MAAMmpgB,EAAoBJ,EAAc12B,GACxC,OAAOo0B,EAAWz2f,QAAOy6N,IACvB,IAAI,IACF9mO,GACE8mO,EACJ,OAAO0+R,EAAkBn6f,SAASrL,EAAI,GAE1C,CACA,MAAMylgB,EAAiB,GACvB,SAASC,EAAYnggB,GACf+1S,EACFmqN,EAAe1ogB,KAAKwI,GAEpBkggB,EAAe1ogB,KAAKmE,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGiB,GAAQ,CAC1Dy9f,UAAW,OAGjB,CACA,IAAI2C,EAAe,KAkBnB,OAjBAnE,EAAgBxlgB,SAAQuJ,IACD,OAAjBoggB,GACFD,EAAYnggB,GACRA,EAAMy9f,aACuB,IAA3Bz9f,EAAMw9f,iBACRznN,GAAW,EAEXqqN,GAAe,KAGVA,IAA2C,IAA3BpggB,EAAMw9f,mBAG/BznN,GAAW,GAFXoqN,EAAYnggB,GAId,IAEKkggB,CAAc,GACpB,CAAC/2B,EAAeo0B,IAEb8C,EAAyB72S,EAAAA,SAAc,KAC3C,IAAIv3L,EAAIC,EACR,MAAMoue,EAAcN,EAAmBh9f,KAAI4+N,IACzC,IAAI,OACFzxM,EAAM,UACNste,GACE77R,EACJ,MAAO,CACLzxM,SACAksB,MAAOohd,EACR,IAEH,MAAO,CACL6C,cAEAC,WAAsC,QAAzBtue,EAAKque,EAAY,UAAuB,IAAPrue,OAAgB,EAASA,EAAG9B,OAC1Este,UAAqC,QAAzBvre,EAAKoue,EAAY,UAAuB,IAAPpue,OAAgB,EAASA,EAAGmqB,MAC1E,GACA,CAAC2jd,IACEnC,EAAgB2C,IACpB,IAAIC,EAIFA,GAHiC,IAA/BD,EAAUhD,kBAA+BwC,EAAmBlpgB,SAAqD,IAA3CkpgB,EAAmB,GAAGxC,iBAG5E,GAAGrjgB,OAAOw+O,GAAmBqnR,EAAmBl5f,QAAOs7N,IACvE,IAAI,IACF3nO,GACE2nO,EACJ,OAAO3nO,IAAQ+lgB,EAAU/lgB,GAAG,KACzB,CAAC+lgB,IAPY,CAACA,GASrBZ,EAAca,GACdd,EAAeX,GAAmByB,GAAkBA,EAAgB,EAItE,MAAO,CAFkBpE,GAAgBsB,GAAa1uR,EAAWotR,EAAc2D,EAAoBnC,EAAeG,EAAgBtX,EAAauX,GAErH+B,EAAoBK,EAD3BK,IAAM1B,GAAmBgB,GACqC,ECzX7EW,GAAYA,CAAC3ve,EAAS4ve,IACL5ve,EAAQhuB,KAAImtB,IAC/B,MAAM0we,EAAcllgB,OAAOoD,OAAO,CAAC,EAAGoxB,GAKtC,OAJA0we,EAAYn/d,MAAQipd,GAAkBx6d,EAAOuR,MAAOk/d,GAChD,aAAcC,IAChBA,EAAY/md,SAAW6md,GAAUE,EAAY/md,SAAU8md,IAElDC,CAAW,IAQtB,GAJwBD,GAEf,CADep3S,EAAAA,aAAkBx4L,GAAW2ve,GAAU3ve,EAAS4ve,IAAmB,CAACA,KCC5F,GATgBttB,IAAS,CAAC/gd,EAAM1oB,KAC9B,MACEi3f,aAAcC,GACZxue,GAEFuue,aAAcE,GACZn3f,EACJ,OAAOk3f,IAAoBC,CAAe,ICE5C,GATuB9qB,IAAgB,CAAC3jd,EAAM1oB,KAC5C,MACEi3f,aAAcC,GACZxue,GAEFuue,aAAcE,GACZn3f,EACJ,OAAOk3f,IAAoBC,CAAe,IC6H5C,GAzIyB1iZ,IACvB,MAAM,aACJu0K,EAAY,UACZh/P,EAAS,SACTwiQ,EAAQ,iBACR4qO,EAAgB,cAChBC,EAAa,qBACbC,EAAoB,uBACpBC,EAAsB,KACtBzoP,GACEr6J,EACE+iZ,EAAc,GAAG1ogB,GAAKk7B,MAAcwiQ,KAAY4qO,IAChDK,EAAqBA,CAACtpf,EAAMupf,EAAiBC,KAAsB,CACvE,CAAC,IAAI3uO,KAAgB76Q,KAAS,CAC5B,CAAC,KAAK66Q,eAA2B,CAC/B,CAAC,KAAKA,gBAA2BA,UAAsB,CACrD,8FAGI,CACF,CAAC,KAAKA,wBAAoC,CACxCt7R,OAAQ,GAAGoB,GAAKggR,EAAK4oP,GAAiBvzS,KAAK,GAAGp/C,2BAC5Cj2K,GAAKggR,EAAKA,EAAK6oP,GAAmBr2e,IAAI0I,IAAYm6L,KAAK,GAAGp/C,kBAOxE,MAAO,CACL,CAAC,GAAGikH,aAAyB,CAC3B,CAAC,GAAGA,IAAeA,cAA0Bl3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAErF,CAAC,KAAK8zR,WAAuB,CAC3BpoJ,OAAQ42X,EACRvrM,aAAc,GAGhB,CAAC,KAAKjjC,eAA2B,CAC/BuW,kBAAmBi4N,EACnBxoK,UAAWwoK,EACX,CAAC,mBACKxuO,6BACAA,4BACAA,0BACAA,yBACF,CACF,UAAW,CAET,0OAOI,CACF+kC,gBAAiBypM,GAGnB,UAAW,CACT,6BAA8B,CAC5BvrM,aAAcurM,GAEhB,oBAAqB,CACnBjggB,gBAAiB,2BAIrB,+GAII,CACF,CAAC,KAAKyxR,iCAA6C,CACjD+kC,gBAAiBypM,IAIrB,0FAGI,CACF,CAAC,KAAKxuO,wBAAoC,CACxCt7R,OAAQ,GAAGoB,GAAKggR,EAAKwoP,GAAsBnzS,KAAK,GAAGp/C,YAAYj2K,GAAKggR,EAAKA,EAAKyoP,GAAwBj2e,IAAI0I,IAAYm6L,KAAK,GAAGp/C,WAC9H,WAAY,CACV5tK,SAAU,WACV/J,IAAK,EACLgyS,eAAgBp1Q,EAChB93B,OAAQ,EACR67T,gBAAiBypM,EACjBjtf,QAAS,WAQrB,CAAC,IAAIy+Q,uBAAmC,CACtC,CAAC,KAAKA,iBAA4BA,UAAsB,CACtD,kBAAmB,CACjB,CAAC,yBACOA,wCACAA,iCACJ,CACF,aAAc,CACZ+kC,gBAAiB,QAM1B0pM,EAAmB,SAAUhjZ,EAAMmjZ,2BAA4BnjZ,EAAMojZ,+BAAgCJ,EAAmB,QAAShjZ,EAAMqjZ,0BAA2BrjZ,EAAMsjZ,8BAA+B,CAExM,CAAC,KAAK/uO,YAAwB,CAC5BpoJ,OAAQ42X,EACRxoK,UAAW,KAIf,CAAC,GAAGhmE,UAAsB,CACxB,CAAC,GAAGA,2BAAuC,CAEzCgmE,UAAW,GAGb,6BAA8B,CAC5BhiO,UAAW,KAAKl+H,GAAKk7B,QAAgBl7B,GAAKk7B,MAAcqte,MAG5D,CAAC,GAAGruO,cAAyBA,oBAAgC,CAC3D+kC,gBAAiBypM,IAGtB,EC1GH,GA7ByB/iZ,IACvB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAAC,GAAGu0K,aAAyB,CAC3B,CAAC,GAAGA,mBAA+Bl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGq1R,IAAe,CAChF38K,UAAW,WAEX,CAAC,gBACIo7K,qCACAA,oCACD,CACF5xR,SAAU,UACV,CAAC,GAAG4xR,kBAA8B,CAChC12R,QAAS,QACT8E,SAAU,SACVozR,aAAc,aAGlB,CAAC,GAAGxB,kBAA8B,CAChC5xR,SAAU,SACVozR,aAAc,WACd58K,UAAW,eAIlB,ECRH,GAnBsB6G,IACpB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAAC,GAAGu0K,aAAyB,CAC3B,CAAC,GAAGA,eAA0BA,iBAA6B,CACzDx6P,UAAW,SACXzB,MAAO0nF,EAAM42K,kBACb,+DAGI,CACF/jK,WAAY7S,EAAM+8K,oBAIzB,ECuGH,GAvHuB/8K,IACrB,MAAM,aACJu0K,EAAY,OACZG,EAAM,mBACN6B,EAAkB,UAClBhhQ,EAAS,UACTiwQ,EAAS,SACTzN,EAAQ,iBACR4qO,EAAgB,kBAChBY,EAAiB,uBACjBC,EAAsB,aACtB9qO,EAAY,qBACZmqO,EAAoB,uBACpBC,EAAsB,mBACtBW,EAAkB,WAClBl+N,EAAU,oBACVm+N,EAAmB,eACnBC,EAAc,oBACdC,EAAmB,gBACnBC,EAAe,KACfxpP,GACEr6J,EACE+iZ,EAAc,GAAG1ogB,GAAKk7B,MAAcwiQ,KAAY4qO,IAChDmB,EAAuBzpP,EAAKkrB,GAAYt2E,IAAI15L,GAAW+6I,QAC7D,MAAO,CACL,CAAC,GAAGikH,aAAyB,CAC3B,CAAC,GAAGA,qBAAiC,CACnCj7R,MAAOkqgB,GAET,CAAC,GAAGjvO,0BAAsC,CACxCx6P,UAAW,SACX,CAAC,GAAGw6P,qBAAiC,CACnC12R,QAAS,cACTo3H,MAAO,OACPj7F,cAAe,QAGnB,CAAC,GAAGu6P,gBAA4B,CAC9Bv7R,OAAQ,EACRi8H,MAAO,QAET,CAAC,GAAGs/J,qBAAiCl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG42R,GAAcr3K,IAAS,CAC1Ft9G,SAAU,WACVuyH,MAAO,OACP37H,MAAOqqgB,EACP3qgB,OAAQ2qgB,EACRrre,MAAO,UACP3D,WAAYt6B,GAAKspgB,GACjB9wY,WAAY0wY,EACZp3X,OAAQ42X,EACRrqO,eACA9hN,UAAW,SAASitb,KACpB,6BAA8B,CAC5Bhqe,YAAa,gBAEf,sBAAuB,CACrBn3B,SAAU,WACVmwH,WAAY,eACZjrE,WAAY,aAAa2uO,aACzBzgR,QAAS,MAEX,YAAa,CACXnd,IAAKirgB,EACLj5N,eAAgBm5N,EAChBj5N,iBAAkBi5N,EAClB9qgB,OAAQu8B,GAEV,WAAY,CACV58B,IAAKmrgB,EACLrmgB,OAAQqmgB,EACRj5N,iBAAkB+4N,EAClBtqgB,MAAOi8B,EACPqhD,UAAW,iBAGb,sBAAuB,CACrBA,UAAW,mBAEb,qBAAsB,CACpBA,UAAW,gBAEb,WAAY,CACV,sBAAuB,CACrB/4E,QAAS,OACTiY,QAAS,QAEX+8G,WAAY,cACZsZ,OAAQ,EACRjV,WAAY,YAGhB,CAAC,GAAGq9J,kBAA6BA,qBAAiC,CAChE5+J,UAAW+tY,EACX/oM,gBAAiBn1B,GAEnB,CAAC,KAAKjR,kBAA8B,CAClC,aAAc,CACZ,aAAc,CACZ1hK,WAAY4wY,IAIhB,CAAC,GAAG/uO,uBAA6B,CAC/B72R,QAAS,OACTuzB,MAAO,CACL2rB,KAAM,OACNzjD,MAAO,UAKb,CAAC,GAAGi7R,wBAAoC,CACtC7xR,SAAU,WACVzJ,OAAQ,GAAGoB,GAAKggR,EAAKwoP,GAAsBnzS,KAAK,GAAGp/C,YAAYj2K,GAAKggR,EAAKyoP,GAAwBpzS,KAAK,GAAGp/C,WACzG13I,QAAS,GAAGv+B,GAAKwogB,MAAyBxogB,GAAKyogB,OAGpD,ECgCH,GArJuB9iZ,IACrB,MAAM,aACJu0K,EAAY,OACZG,EAAM,QACND,EAAO,yBACPsvO,EAAwB,+BACxBC,EAA8B,WAC9Bz+N,EAAU,UACVC,EAAS,UACTtP,EAAS,UACT3gQ,EAAS,SACTwiQ,EAAQ,iBACR4qO,EAAgB,gBAChBsB,EAAe,WACfvpO,EAAU,uBACVooO,EAAsB,aACtBpqO,EAAY,mBACZnC,EAAkB,qBAClB0N,EAAoB,aACpB1M,EAAY,0BACZ2sO,EAAyB,kBACzBttO,EAAiB,sBACjButO,EAAqB,0BACrBC,EAAyB,mBACzBv/N,EAAkB,oBAClBC,EAAmB,mBACnB4B,EAAkB,qBAClB29N,EAAoB,KACpBhqP,GACEr6J,EACEy6R,EAAoB,GAAG/lH,aACvB4vO,EAA+B,GAAG/vO,oBAClCgwO,EAAgB,GAAG7vO,SACnBquO,EAAc,GAAG1ogB,GAAKk7B,MAAcwiQ,KAAY4qO,IACtD,MAAO,CAAC,CACN,CAAC,GAAGpuO,aAAyB,CAC3B,CAAC,GAAGA,mBAA+B,CACjC12R,QAAS,OACT+sS,eAAgB,iBAElB,CAAC,GAAGrW,oBAAgC,CAClC7xR,SAAU,WACV7E,QAAS,OACTs5R,WAAY,SACZ6iC,YAAa3/C,EAAKkrB,GAAY71E,KAAK,GAAGp/C,QACtCypJ,aAAc,GAAG1/T,GAAKkrS,MAAelrS,GAAKggR,EAAKyoP,GAAwB90S,IAAI,GAAG0B,KAAK,GAAGp/C,WACtF13I,QAAS,KAAKv+B,GAAKkrS,KACnBjtQ,MAAO2re,EACPxve,SAAUimQ,EACVhC,eACArnQ,OAAQ,UACRu2B,WAAY,OAAO2uO,IACnB,UAAW,CACTj+P,MAAO2rQ,EACPpxK,WAAYqxY,GAEd,WAAY,CACV5re,MAAOi/P,MAIZ,CAED,CAAC,GAAG7C,cAAoB,CACtB,CAAC4vO,GAA+BjngB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACtF78E,SAAU4ge,EACVjhgB,gBAAiBqhgB,EACjBzrO,eACAngK,UAAWmuK,EACX/jS,SAAU,SAEV,CAAC,GAAG83Y,UAA2B,CAG7BpgF,UAAW+pM,EACXlrY,UAAW,SACXiT,OAAQ,EACR5T,UAAW,OACXmgK,aAAc,QACd51R,gBAAiBuhgB,EACjB,iBAAkB,CAChBxmgB,QAAS,QACT+6B,QAAS,GAAGv+B,GAAKmrS,OACjBltQ,MAAOs+P,EACPniQ,SAAUimQ,EACV3gQ,UAAW,SACXjkB,QAAS,gBAGb,CAAC,GAAGwuf,UAAsC,CACxC50L,aAAc,GAAGr1U,GAAKmrS,OACtBoE,cAAepE,EACf,CAAC++N,GAAgB,CACf3re,QAAS,GAEX,CAAC,GAAG2re,cAA0BA,gCAA6C,CACzEzhgB,gBAAiB+hS,GAEnB,CAAC,GAAG0/N,+BAA2CA,0BAAuC,CACpF,aAAc,CACZzhgB,gBAAiBgiS,KAIvB,CAAC,GAAGw/N,YAAwC,CAC1C1re,QAAS4sQ,EACTgyB,aAAcurM,EACd,UAAW,CACT7qf,MAAO,CACLirB,SAAU6ge,GAEZ,CAACvvO,GAAU,CACTn8P,MAAOs+P,KAIb,CAAC,GAAG0tO,cAA0C,CAC5ChrgB,MAAO,OACPu8H,aAAc0vK,EACdm1B,kBAAmBn1B,GAGrB,CAAC,GAAG++N,UAAsC,CACxCzmgB,QAAS,OACT+sS,eAAgB,gBAChBhyQ,QAAS,GAAGv+B,GAAKggR,EAAKmrB,GAAWv2E,IAAI15L,GAAW+6I,YAAYj2K,GAAKmrS,KACjE7iS,SAAU,SACV43V,UAAWwoK,OAMnB,CAEE,CAAC,GAAGruO,cAAmB4vO,MAAiCA,aAAyC,CAE/F,CAAC,GAAG5vO,6BAAmC,CACrC4lC,mBAAoB90B,EACpBltQ,MAAO49P,GAET,OAAQ,CACNmkC,UAAW,sBACXnhM,UAAW,SACXC,UAAW,UAGf,EC7BJ,GAxHsBnZ,IACpB,MAAM,aACJu0K,EAAY,UACZh/P,EAAS,WACTsuQ,EAAU,mBACVtN,EAAkB,iBAClBiuO,EAAgB,QAChBC,EAAO,kBACPC,EAAiB,KACjBrqP,GACEr6J,EACE46B,EAAcipJ,EAEpB,MAAO,CACL,CAAC,GAAGtP,aAAyB,CAC3B,CAAC,aACGA,6BACAA,4BACA,CACF7xR,SAAU,oBACVE,OAAQ4hgB,EACR3xY,WAAY4xY,GAEd,CAAC,aACGlwO,0CACAA,uCACA,CACF7xR,SAAU,WACV/J,IAAK,EACLkK,MAAO,CACL8sT,cAAc,EACd15T,MAAO,GAETwH,OAAQ48Q,EAAK9kP,GAAWm6L,KAAK,GAAGp/C,QAChCh3K,MAAO,GACPs9E,UAAW,mBACXhvB,WAAY,cAAc2uO,IAC1BzgR,QAAS,KACT07N,cAAe,QAEjB,CAAC,GAAG+iD,8BAA0C,CAC5C12R,QAAS,QAEX,CAAC,aACG02R,2CACAA,wCACA,CACF7xR,SAAU,WACV/J,IAAK,EACL8E,OAAQ48Q,EAAK9kP,GAAWm6L,KAAK,GAAGp/C,QAChC53K,KAAM,CACJi3T,cAAc,EACd15T,MAAO,GAETqD,MAAO,GACPs9E,UAAW,oBACXhvB,WAAY,cAAc2uO,IAC1BzgR,QAAS,KACT07N,cAAe,QAEjB,CAAC,GAAG+iD,eAA2B,CAC7B7xR,SAAU,WACV,sBAAuB,CACrBA,SAAU,WACV/J,IAAK,EACL8E,OAAQ,EACRmF,OAAQy3Q,EAAKqqP,GAAmB73e,IAAI,GAAGyjJ,MAAM,CAC3Cj2K,MAAM,IAERf,MAAO,GACPsuD,WAAY,cAAc2uO,IAC1BzgR,QAAS,KACT07N,cAAe,QAEjB,YAAa,CACXq5D,iBAAkB,GAEpB,WAAY,CACVF,eAAgB,IAGpB,CAAC,GAAGpW,eAA2B,CAC7B,CAAC,SAASA,mBAA8BA,uBAAmC,CACzEh8J,UAAW,yBAAyBqiB,KAEtC,CAAC,eACG25I,4CACAA,yCACA,CACFh8J,UAAW,yBAAyBqiB,KAEtC,CAAC,GAAG25I,gCAA4C,CAC9CzxR,gBAAiB,2BAGrB,CAAC,GAAGyxR,gBAA4B,CAC9B,CAAC,SAASA,oBAA+BA,sBAAkC,CACzEh8J,UAAW,0BAA0BqiB,KAEvC,CAAC,eACG25I,6CACAA,0CACA,CACFh8J,UAAW,0BAA0BqiB,MAIzC,CAAC,GAAG25I,yBAAqC,CACvC,CAAC,aACCA,0CACAA,yCACAA,2CACAA,wCACA,CACAh8J,UAAW,UAIlB,ECrFH,GAhC2BvY,IACzB,MAAM,aACJu0K,EAAY,OACZG,EAAM,OACNz7R,GACE+mH,EACJ,MAAO,CACL,CAAC,GAAGu0K,aAAyB,CAE3B,CAAC,GAAGA,eAA0BG,gBAAsB,CAClDz7R,OAAQ,GAAGoB,GAAKpB,QAElB,CAAC,GAAGs7R,gBAA4B,CAC9B12R,QAAS,OACTkiV,SAAU,OACVl0B,OAAQ7rM,EAAMwlL,UACd,MAAO,CACLzoP,KAAM,QAER,SAAU,CACR6tP,eAAgB,cAElB,WAAY,CACVA,eAAgB,UAElB,UAAW,CACTA,eAAgB,cAIvB,ECcH,GA5CuB5qL,IACrB,MAAM,aACJu0K,EAAY,YACZowO,GACE3kZ,EACJ,MAAO,CACL,CAAC,GAAGu0K,aAAyB,CAC3B,CAACA,GAAe,CAEd,CAAC,GAAGA,YAAuBA,YAAwB,CACjDmE,aAAc,GAAGr+R,GAAKsqgB,MAAgBtqgB,GAAKsqgB,UAE7C,CAAC,GAAGpwO,aAAwBA,eAA2B,CACrDsgD,uBAAwB,EACxBF,qBAAsB,EAEtB,CAAC,GAAGpgD,mBAA+B,CACjCmE,aAAc,GAEhB,iCAAkC,CAChC,+DAAgE,CAC9DA,aAAc,KAIpB,cAAe,CACbm8C,uBAAwB8vL,EACxBhwL,qBAAsBgwL,EACtB,iCAAkC,CAChC,kBAAmB,CACjB9vL,uBAAwB8vL,GAE1B,iBAAkB,CAChBhwL,qBAAsBgwL,KAI5B,WAAY,CACVjsO,aAAc,OAAOr+R,GAAKsqgB,MAAgBtqgB,GAAKsqgB,QAItD,ECCH,GA5CiB3kZ,IACf,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAAC,GAAGu0K,iBAA6B,CAC/Bz/J,UAAW,MACX1jG,MAAO,CACL0jG,UAAW,OAEb,CAAC,GAAGy/J,qBAAiC,CACnCqW,eAAgB,YAElB,CAAC,GAAGrW,sBAAkC,CACpCqW,eAAgB,cAElB,CAAC,GAAGrW,qBAAiC,CACnCt/J,MAAO,QACP,WAAY,CACVr+C,UAAW,kBAEb,sBAAuB,CACrBA,UAAW,kBAEb,qBAAsB,CACpBA,UAAW,iBAGf,CAAC,GAAG29M,eAA2B,CAC7B,YAAa,CACXsW,iBAAkB,QAClBF,eAAgB,GAElB,WAAY,CACVE,iBAAkB,EAClBF,eAAgB,SAElB,CAAC,GAAGpW,gBAA4B,CAC9Bt/J,MAAO,WAId,ECoDH,GA7F0BjV,IACxB,MAAM,aACJu0K,EAAY,OACZG,EAAM,QACND,EAAO,aACPiQ,EAAY,QACZ9rQ,EAAO,UACP4sQ,EAAS,gBACTy+N,EAAe,qBACfW,EAAoB,0BACpBC,EAAyB,mBACzBC,EAAkB,wBAClBC,EAAuB,gBACvBC,EAAe,uBACflC,EAAsB,KACtBzoP,GACEr6J,EACJ,MAAO,CACL,CAAC,GAAGu0K,aAAyB,CAE3B,CAAC,GAAGA,mBAA+B,CACjCj7R,MAAOurgB,EACP,CAAC,IAAItwO,iCAA6C,CAChDj7R,MAAO+gR,EAAKwqP,GAA2Bh4e,IAAI63Q,GAAc73Q,IAAIwtP,EAAKzhP,GAASo1L,IAAI,IAAI19C,UAGvF,CAAC,GAAGikH,cAAyBA,mBAA+B,CAC1Dj7R,MAAO+gR,EAAKwqP,GAA2Bh4e,IAAIwtP,EAAKmrB,GAAW91E,IAAI,IAAIp/C,QACnE,CAAC,IAAIikH,iCAA6C,CAChDj7R,MAAO+gR,EAAKwqP,GAA2Bh4e,IAAI63Q,GAAc73Q,IAAIwtP,EAAKzhP,GAASo1L,IAAI,IAAInhM,IAAIwtP,EAAKmrB,GAAW91E,IAAI,IAAIp/C,UAGnH,CAAC,wBACcikH,2CACAA,gCACXA,8BACA,CACF0lC,iBAAkBj6M,EAAMwlL,UACxB80B,mBAAoBt6M,EAAMwlL,UAC1BzrQ,UAAW,SACX,CAAC,GAAG26P,mBAAyB,CAC3BimC,gBAAiB,IAGrB,CAAC,cAAcpmC,qBAAgCA,mBAA+B,CAC5E3xR,OAAQy3Q,EAAKr6J,EAAMwkZ,kBAAkB33e,IAAI,GAAGyjJ,MAAM,CAChDj2K,MAAM,KAGV,CAAC,cAAck6R,6BAAyC,CACtDzxR,gBAAiB,0BAEnB,CAAC,GAAGyxR,eAA2B,CAC7B7xR,SAAU,WACV7E,QAAS,cACT6rS,cAAe,UAEjB,CAAC,GAAGnV,qBAAiC,CACnC7xR,SAAU,WACV/J,IAAK,EACLiK,OAAQ,EACRyuB,OAAQ,UACRu2B,WAAY,OAAOo4D,EAAMu2K,qBACzBmkC,kBAAmB,OACnBJ,mBAAoBjgU,GAAKggR,EAAKyoP,GAAwB90S,IAAI,GAAG19C,SAC7D,CAACmkH,GAAU,CACTn8P,MAAO2re,EACPxve,SAAUiwQ,EACV1qQ,cAAe,WACf,UAAW,CACT1B,MAAOsse,KAKb,CAAC,GAAGrwO,WAAuB,CACzB,CAAC,GAAGA,SAAqB,CACvB,CAAC,IAAIA,kBAA8B,CACjC,CAAC,KAAKA,UAAsB,CAC1B1hK,WAAYiyY,EACZ,cAAe,CACbjyY,WAAYkyY,KAIlB,CAAC,KAAKxwO,oBAAgC,CACpC1hK,WAAYmyY,MAKrB,EC/CH,GA5CqBhlZ,IACnB,MAAM,aACJu0K,EAAY,uBACZivO,EAAsB,KACtBnpP,GACEr6J,EACEilZ,EAAeA,CAACvrf,EAAMupf,EAAiBC,EAAmBzue,KAAa,CAC3E,CAAC,GAAG8/P,IAAeA,KAAgB76Q,KAAS,CAC1C+a,WACA,CAAC,aACG8/P,qBACAA,sBACAA,oBACAA,+BACAA,+BACAA,iFAGA,CACF37P,QAAS,GAAGv+B,GAAK4ogB,MAAoB5ogB,GAAK6ogB,MAE5C,CAAC,GAAG3uO,oBAAgC,CAClComC,gBAAiBtgU,GAAKggR,EAAK6oP,GAAmBl1S,IAAI,GAAG0B,KAAK,GAAGp/C,UAE/D,CAAC,GAAGikH,wBAAoC,CACtCt7R,OAAQ,GAAGoB,GAAKggR,EAAK4oP,GAAiBvzS,KAAK,GAAGp/C,YAAYj2K,GAAKggR,EAAK6oP,GAAmBxzS,KAAK,GAAGp/C,YAEjG,CAAC,GAAGikH,WAAuB,CAEzB,CAAC,GAAGA,wBAAmCA,KAAiB,CACtDylC,YAAa3/T,GAAKggR,EAAK4oP,GAAiBvzS,KAAK,GAAGp/C,SAChDypJ,aAAc,GAAG1/T,GAAKggR,EAAKmpP,GAAwBv0S,IAAIi0S,GAAmB5yV,YAAYj2K,GAAKggR,EAAK6oP,GAAmBxzS,KAAK,GAAGp/C,aAI/H,CAAC,GAAGikH,qBAAiC,CACnC+lC,mBAAoBjgU,GAAKggR,EAAK6oP,GAAmBl1S,IAAI,GAAG19C,aAI9D,MAAO,CACL,CAAC,GAAGikH,aAAyBl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGwkgB,EAAa,SAAUjlZ,EAAMmjZ,2BAA4BnjZ,EAAMojZ,6BAA8BpjZ,EAAMklZ,sBAAuBD,EAAa,QAASjlZ,EAAMqjZ,0BAA2BrjZ,EAAMsjZ,4BAA6BtjZ,EAAMmlZ,qBACxR,ECgDH,GA3FuBnlZ,IACrB,MAAM,aACJu0K,EAAY,UACZ4R,EAAS,aACTzB,EAAY,gBACZu/N,EAAe,qBACfW,GACE5kZ,EACJ,MAAO,CACL,CAAC,GAAGu0K,aAAyB,CAC3B,CAAC,GAAGA,aAAwBA,wBAAoC,CAC9DznF,QAAS,OACTz7K,OAAQ,UAGRu2B,WAAY,OAAOo4D,EAAMu2K,8BACzB,UAAW,CACT1jK,WAAY7S,EAAMolZ,uBAClB,YAAa,CACXtigB,gBAAiB,2BAGrB,kBAAmB,CACjBw1B,MAAO0nF,EAAMu3K,cAGf,CAAC,gBACIhD,sCACAA,oCACD,CACF1hK,WAAY7S,EAAMqlZ,+BAGtB,CAAC,GAAG9wO,aAAwBA,iBAA6B,CACvD1hK,WAAY7S,EAAMslZ,kBAClB,YAAa,CACXxigB,gBAAiB,2BAGrB,CAAC,KAAKyxR,iBAA6B,CACjC1hK,WAAY7S,EAAMulZ,iBAEpB,CAAC,GAAGhxO,kBAA8B,CAChC7xR,SAAU,WACVE,OAAQ,EACRm6C,KAAM,GAER,CAAC,GAAGw3O,oBAAgC,CAClC12R,QAAS,OACTk/C,KAAM,OACNo6O,WAAY,SACZyT,eAAgB,gBAChB,WAAY,CACVloS,SAAU,WACV81H,MAAO,EACPl/H,MAAO,OACPN,OAAQ,OACR8c,QAAS,OAGb,CAAC,GAAGy+Q,0CAAsD,CACxD,WAAY,CACVz+Q,QAAS,SAGb,CAAC,GAAGy+Q,mBAA+B,CACjCmmC,kBAAmBv0B,EACnB7tQ,MAAO2re,EACPxve,SAAU,EACVmzB,WAAY,SAASo4D,EAAMu2K,qBAC3B,UAAW,CACT14R,QAAS,cACT6rS,cAAe,SACfvS,WAAY,UAEd,eAAgB,CACd1iQ,SAAUiwQ,EACV,WAAY,CACVpsQ,MAAO0nF,EAAMu3K,eAGjB,CAAC,GAAGhD,wBAAmCA,wBAAoC,CACzE5+J,UAAW,WAGf,CAAC,GAAG4+J,0BAAqCA,mBAA+B,CACtEj8P,MAAOsse,IAGZ,ECnCH,GArDuB5kZ,IACrB,MAAM,aACJu0K,EAAY,eACZ6Q,EAAc,mBACdogO,EAAkB,wBAClBC,EAAuB,qBACvBC,EAAoB,cACpBC,EAAa,kBACbjB,EAAiB,4BACjBkB,EAA2B,UAC3Brwe,EAAS,SACTwiQ,EAAQ,iBACR4qO,GACE3iZ,EACE+iZ,EAAc,GAAG1ogB,GAAKk7B,MAAcwiQ,KAAY4qO,IACtD,MAAO,CACL,CAAC,GAAGpuO,aAAyB,CAC3B,CAAC,GAAGA,YAAwB,CAC1B,WAAY,CACV7xR,SAAU,SACVE,OAAQ8hgB,EACR7xY,WAAY7S,EAAM+8K,kBAEpB,WAAY,CACVr6R,SAAU,SACVjF,OAAQ,EACRzE,OAAQ,GAAGqB,GAAKqrgB,gBAChB9igB,OAAQ8hgB,EACR7mgB,QAAS,OACTs5R,WAAY,SACZtkK,WAAY8yY,EACZprK,UAAWwoK,EACX//f,QAASoiS,EACT,UAAW,CACTpuK,gBAAiB,iBAGnB,QAAS,CACPh+H,OAAQ0sgB,EACR5igB,gBAAiB0igB,EACjB9sO,aAAcktO,EACdh+c,WAAY,OAAOo4D,EAAMu2K,qCACzB7zR,SAAU,WACVjF,OAAQ,EACR,oBAAqB,CACnBqF,gBAAiB2igB,OAM5B,ECzBH,GA1BwBzlZ,IACtB,MAAM,aACJu0K,EAAY,UACZh/P,EAAS,iBACTote,EAAgB,KAChBtoP,GACEr6J,EACE+iZ,EAAc,GAAG1ogB,GAAKk7B,MAAcyqF,EAAM+3K,YAAY4qO,IAC5D,MAAO,CACL,CAAC,GAAGpuO,aAAyB,CAC3B,CAAC,GAAGA,aAAyB,CAC3B7xR,SAAU,WACVE,OAAQo9G,EAAMwkZ,iBACd3xY,WAAY7S,EAAMykZ,QAClB,OAAQ,CACN,aAAc,CACZjtM,aAAcurM,KAIpB,CAAC,MAAMxuO,aAAyB,CAC9Bh8J,UAAW,KAAKl+H,GAAKggR,EAAK9kP,GAAWm6L,KAAK,GAAGp/C,cAAcqyV,MAGhE,EC+CH,GAvEwB3iZ,IACtB,MAAM,aACJu0K,EAAY,kBACZ2N,EAAiB,UACjB3sQ,EAAS,SACTwiQ,EAAQ,iBACR4qO,EAAgB,KAChBtoP,GACEr6J,EACE+iZ,EAAc,GAAG1ogB,GAAKk7B,MAAcwiQ,KAAY4qO,IAChD5sB,EAAa,GAAGxhN,sBACtB,MAAO,CACL,CAAC,GAAGA,aAAyB,CAE3B,CAAC,GAAGA,mBAA+B,CACjC,CAAC,GAAGA,gCAA4C,CAC9C,CAAC,qBACOA,oCACQA,YAAuBA,qBACnC,CACF12R,QAAS,OACT4tO,UAAW,aACXnyO,MAAO,SAGX,CAAC,GAAGi7R,UAAsB,CACxBijC,aAAcurM,EACdn7c,WAAY,cAAcs6O,KAE5B,CAAC,GAAG3N,kBAA8B,CAChC,CAAC,GAAGwhN,IAAaA,WAAqB,CACpCrze,SAAU,SACVmoS,iBAAkB,EAClBloS,SAAU,SACVrJ,MAAO,+BAA+Be,GAAKk7B,MAC3C+jS,gBAAiB,UAKvB,CAAC,GAAG/kC,cAA0B,CAC5B,CAAC,GAAGA,mBAA+B,CACjC,UAAW,CACTz+Q,QAAS,KACT45S,YAAa,EACbjyT,OAAQ,EACR+5T,aAAcurM,EACdrggB,SAAU,YAEZ,CAAC,GAAG6xR,UAAsB,CACxB+kC,gBAAiBypM,EACjB,CAAC,IAAIxuO,iCAA6C,CAChDz+Q,QAAS,KACTpT,SAAU,WACV62T,WAAY,EACZ1uB,iBAAkBxwB,EAAK9kP,GAAWm6L,KAAK,GAAGp/C,QAC1Cw6H,kBAAmBi4N,KAKzB,CAAC,IAAIxuO,aAAyB,CAC5B,CAAC,GAAGA,iBAA4BA,UAAsB,CACpD+kC,gBAAiBypM,EACjBvrM,aAAcurM,MAKvB,ECnDG8C,GAAgB7lZ,IACpB,MAAM,aACJu0K,EAAY,iBACZ4Q,EAAgB,qBAChB09N,EAAoB,uBACpBC,EAAsB,uBACtBU,EAAsB,UACtBjue,EAAS,SACTwiQ,EAAQ,iBACR4qO,EAAgB,cAChBmD,EAAa,QACbrB,EAAO,YACPE,EAAW,qBACXoB,EAAoB,kBACpB7jO,EAAiB,cACjB0gO,EAAa,0BACboD,EAAyB,qBACzBC,EAAoB,cACpBC,EAAa,KACb7rP,GACEr6J,EACE+iZ,EAAc,GAAG1ogB,GAAKk7B,MAAcwiQ,KAAY4qO,IACtD,MAAO,CACL,CAAC,GAAGpuO,aAAyBl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CACvD8kF,MAAO,OACPnwD,SAAU,QhzBDQ,CAEtB,YAAa,CACXv3B,QAAS,QACTiY,QAAS,MAEX,WAAY,CAEVjY,QAAS,QACT0nF,MAAO,OACPzvE,QAAS,QgzBRO,CACd,CAACy+Q,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACtEvrF,SAAUqxe,EACVjzY,WAAY4xY,EACZ/rO,aAAc,GAAGr+R,GAAKsqgB,MAAgBtqgB,GAAKsqgB,SAE3C36Q,eAAgB,GAAGhqI,EAAMwlZ,sBAAsBxlZ,EAAM2lZ,kBAGvDv0e,MAAO,CACL93B,MAAO,OACPygC,UAAW,QACX2+P,aAAc,GAAGr+R,GAAKsqgB,MAAgBtqgB,GAAKsqgB,SAC3CvnI,eAAgB,WAChBC,cAAe,GAGjB,CAAC,eACK9oG,sBACAA,iCACAA,iCACAA,uFAGA,CACJ7xR,SAAU,WACVk2B,QAAS,GAAGv+B,GAAKwogB,MAAyBxogB,GAAKyogB,KAC/C/sY,aAAc,cAGhB,CAAC,GAAGw+J,WAAuB,CACzB37P,QAAS,GAAGv+B,GAAKwogB,MAAyBxogB,GAAKyogB,MAGjD,CAAC,GAAGvuO,WAAuB,CACzB,wDAGI,CACF7xR,SAAU,WACV41B,MAAOyte,EACP7re,WAAYirQ,EACZprQ,UAAW,QACX84F,WAAY+vY,EACZprM,aAAcurM,EACdn7c,WAAY,cAAcs6O,SAC1B,gCAAiC,CAC/BnoQ,UAAW,UAEb,CAAC,0BAA0Bw6P,2BAAsCA,kDAA8D,CAC7H7xR,SAAU,WACV/J,IAAK,MACLgyS,eAAgB,EAChBrxS,MAAO,EACPN,OAAQ,QACR8J,gBAAiBkjgB,EACjBpvb,UAAW,mBACXhvB,WAAY,oBAAoBs6O,IAChCpsR,QAAS,OAGb,sCAAuC,CACrC0hT,aAAc,IAIlB,CAAC,GAAGjjC,WAAuB,CACzB,OAAQ,CACN,aAAc,CACZ3sO,WAAY,cAAcs6O,mBAAmCA,IAC7Ds1B,aAAcurM,EAEd,CAAC,qBACKxuO,0CACAA,0BAAqCA,sCACvC,CACF,CAACA,GAAe,CACdylC,YAAa3/T,GAAKggR,EAAKwoP,GAAsBnzS,KAAK,GAAGp/C,SACrDypJ,aAAc,GAAG1/T,GAAKggR,EAAKmpP,GAAwBv0S,IAAI6zS,GAAwBxyV,6BAC7Ej2K,GAAKggR,EAAKyoP,GAAwBpzS,KAAK,GAAGp/C,WAC5C,CAAC,GAAGikH,gCAA4C,CAC9C/6P,kBAAmB,EACnB,8BAA+B,CAC7Bk/P,aAAc,OAMxB,OAAQ,CACNh2R,SAAU,WACV41B,MAAOyte,EACP7re,WAAYirQ,EACZprQ,UAAW,QACX84F,WAAY+vY,EACZprM,aAAcurM,EACdn7c,WAAY,cAAcs6O,YAKhC,CAAC,GAAG3N,YAAwB,CAC1B37P,QAAS,GAAGv+B,GAAKwogB,MAAyBxogB,GAAKyogB,KAC/Cxqe,MAAO2te,EACPpzY,WAAYqzY,KAGjB,EA4EH,GAAenxO,GAAc,SAAS/0K,IACpC,MAAM,iBACJ+jL,EAAgB,WAChBF,EAAU,iBACV9G,EACA6H,uBAAwBuuL,EAAY,SACpC1pL,EAAQ,YACRH,EAAW,mBACX68N,EAAkB,kBAClBC,EAAiB,WACjBC,EAAU,WACVC,EAAU,cACVC,EAAa,mBACbC,EAAkB,cAClBC,EAAa,iBACbC,EAAgB,kBAChBC,EAAiB,mBACjBC,EAAkB,oBAClBC,EAAmB,mBACnBC,EAAkB,oBAClBC,EAAmB,YACnBlte,EAAW,SACXsvQ,EAAQ,YACR69N,EAAW,mBACXC,EAAkB,aAClBC,EAAY,eACZC,EAAc,eACdC,EAAc,iBACdC,EAAgB,wBAChBC,EAAuB,oBACvBC,EAAmB,iBACnBC,EAAgB,aAChBC,EAAY,qBACZC,EAAoB,kBACpBC,EAAiB,KACjBttP,GACEr6J,EACE4nZ,EAAa51O,GAAWhyK,EAAO,CACnC8lZ,cAAeoB,EACfzC,QAAS1nO,EACT4nO,YAAasC,EACbpE,qBAAsB6D,EACtB5D,uBAAwB6D,EACxBxD,2BAA4ByD,EAC5BxD,6BAA8ByD,EAC9BxD,0BAA2ByD,EAC3BxD,4BAA6ByD,EAC7BpE,iBAAkB9oe,EAClBkse,qBAAsBz8N,EACtBs5N,cAAen5N,EACfw8N,qBAAsBe,EACtBd,cAAe/8N,EACf68N,0BAA2BqB,EAC3B/B,kBAAmBa,EACnBf,uBAAwBgB,EACxBb,gBAAiBc,EACjBhB,6BAA8BiC,EAC9BpD,0BAA2BqD,EAC3BpD,sBAAuBqD,EACvBxC,gBAAiBsB,EACjBxB,mBAAoByB,EACpBxB,wBAAyByB,EACzBhC,iBAhEqB,EAiErBE,kBAAmBrqP,EAjEE,GAiEqBxtP,IAAI,GAAGyjJ,MAAM,CACrDj2K,MAAM,IAER6qgB,oBAAqBiC,EACrBhC,mBAAoBiC,EACpBvC,0BAA2B6C,EAC3BnE,kBAAmBkE,EACnBjE,uBAAwBnpP,EAAK84M,GAActmc,IAAIwtP,EAAKr6J,EAAMpnF,SAAS82L,IAAI,IAAIp/C,QAC3EmzV,mBAAoBgD,EAEpB1C,yBAA0B,IAC1BK,0BAA2B,IAC3BJ,+BAAgC,IAEhC0B,qBAAsB,EAEtBF,mBAAoBmC,EACpBlC,wBAAyB1hO,EACzB4hO,cAAe9hO,IAEjB,MAAO,CAACgiO,GAAc+B,GAAa/mG,GAAmB+mG,GAAaC,GAAgBD,GAAaE,GAAeF,GAAaG,GAAeH,GAAa3mG,GAAiB2mG,GAAa/jE,GAAe+jE,GAAaI,GAAeJ,GAAaC,GAAgBD,GAAaK,GAAcL,GAAajsG,GAAkBisG,GAAaM,GAAcN,GAAaO,GAAeP,GAAaQ,GAAiBR,GAAazrG,GAAayrG,GAAal5C,GAAYk5C,GAAaS,GAAgBT,GAAY,IA7Jtc5nZ,IACnC,MAAM,eACJ0jL,EAAc,iBACd3G,EAAgB,iBAChBgH,EAAgB,mBAChBvH,EAAkB,iBAClBgH,EAAgB,oBAChBsB,EAAmB,yBACnBC,EAAwB,QACxBnsQ,EAAO,UACP6sQ,EAAS,UACTD,EAAS,qBACTpI,EAAoB,eACpBtD,EAAc,cACdhB,EAAa,qBACbgL,EAAoB,SACpBrvQ,EAAQ,WACRimQ,EAAU,WACV/lQ,EAAU,UACVY,EAAS,UACT+uQ,EAAS,eACTC,EAAc,eACda,EAAc,uBACdR,GACE5kL,EACEsoZ,EAA0B,IAAIhwP,GAAUkkB,GAAoBhiB,aAAauiB,GAAkBtoG,cAC3F8zU,EAAwB,IAAIjwP,GAAUkrB,GAAkBhpB,aAAauiB,GAAkBtoG,cACvF+zU,EAAsB,IAAIlwP,GAAUorB,GAAgBlpB,aAAauiB,GAAkBtoG,cACnFg0U,EAAkB,IAAInwP,GAAUgsB,GAChCokO,EAAuB,IAAIpwP,GAAUisB,GACrCq/N,EAAsBh/N,EAAyB,EAAIrvQ,EACnDoue,EAAuC,EAAtBC,EAAsC,EAAZrue,EACjD,MAAO,CACLk0Q,SAAU++N,EACVl/N,YAAavF,EACboiO,mBAAoBmC,EACpBlC,kBAAmBmC,EACnBlC,WAAYmC,EACZlC,WAAYkC,EACZjC,cAAezhO,EACf0hO,mBAAoBzhO,EACpB0hO,cAAe/iO,EACfgjO,iBAAkB9te,EAClB+te,kBAAmB/te,EACnBgue,mBAAoBnhO,EACpBohO,oBAAqBrhO,EACrBshO,mBAAoBthO,EACpBuhO,oBAAqBvhO,EACrB3rQ,YAAaujQ,EACb6pO,mBAAoBntO,EACpBqP,SAAUq/N,EACVxB,YAAajjO,EACbmjO,aAAczye,EACd0ye,eAAgB1ye,EAChB2ye,eAAgB3ye,EAChB4ye,iBAAkBjqO,EAClBkqO,wBAAyBgB,EACzBf,oBAAqB/jO,EACrB6gO,qBAAsBtnO,EACtByqO,iBAAkBzqO,EAClB0qO,aAAc1qO,EACd2qO,qBAAsB5uO,EACtB6uO,kBAAmB7jO,EACnB8hO,4BAA6B,IAC7BlC,qBAAsBjve,EAAWE,EAAyB,EAAZY,GAAiB,EAAI18B,KAAK6K,MAAmB,IAAbg3R,EAA+B,EAAZnlQ,GAAiB,GAClH0ue,gBAAiBwE,EAAgBtpgB,QAAQk6Q,KAAKovP,EAAgBl3f,EAAI6zR,GAAgBlqB,cAClF0pP,qBAAsB8D,EAAqBvpgB,QAAQk6Q,KAAKqvP,EAAqBn3f,EAAI6zR,GAAgBlqB,cACjG0oP,sBACAD,iBACAE,gBAAiBj/N,EAAyB++N,EAC3C,GAwFuB,CACxB1+O,SAAU,CACR4+O,iBAAiB,KC5Rfp8Q,GAAa,GACbkhR,GAAgBA,CAACz5d,EAAON,KAC5B,IAAIjb,EAAIC,EACR,MACE+8M,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,MACb3yQ,EACA+c,KAAMyiU,EAAa,SACnBqoD,EACAiW,kBAAmBmuH,EAA0B,WAC7CngG,EAAU,WACVz9F,EAAU,aACVg8K,EAAY,OACZt+E,EAAS,MAAK,aACdi7D,EAAY,QACZjxc,EAAO,SACP8oB,EACAunb,mBAAoB8lC,EAAwB,SAC5CxwR,EAAQ,kBACRqhB,EAAiB,QACjBrwH,EAAO,WACPinI,EAAU,WACVmkM,EAAU,kBACVixB,EAAiB,sBACjBR,EAAqB,WACrBC,EAAU,OACVwK,EAAM,eACN+vB,EAAc,OACdr0e,EAAM,kBACNs0e,EAAoB,CAClBv9f,OAAQ,eACT,QACDwnU,GACE16R,EACYkiR,GAAc,SAI9B,MAAMk5K,EAAcp/Q,EAAAA,SAAc,IAAMx4L,GAAWo3c,GAAyBtub,IAAW,CAAC9oB,EAAS8oB,IAC3FsoS,EAAiB54H,EAAAA,SAAc,IAAMo/Q,EAAY7he,MAAK+5B,GAAOA,EAAIsuM,cAAa,CAACw5P,IAC/EhpJ,EAAUyC,GAAcD,GACxB+mJ,EAAgB3/Q,EAAAA,SAAc,KAClC,MAAMt8D,EAAU,IAAIz8G,IAAI90C,OAAOC,KAAKgkV,GAAS94U,QAAO8jB,GAAKg1T,EAAQh1T,MACjE,OAAOg+c,EAAY9he,QAAOiJ,IAAMA,EAAEq/N,YAAcr/N,EAAEq/N,WAAWroO,MAAK9R,GAAKi4J,EAAQ1kJ,IAAIvT,MAAI,GACtF,CAAC2ze,EAAahpJ,IACXouJ,EAAa9vY,GAAK1wD,EAAO,CAAC,YAAa,QAAS,aAEpD7jB,OAAQozU,EAAgB53B,GAAa,UACrC/xM,EAAS,MACT1jG,EAAK,YACLytY,EAAW,aACX1+I,EACAzmB,kBAAmB86D,GACjBtpG,EAAAA,WAAiBg1D,IACf8sC,EAAaC,GAAQkvB,GACrBisK,EAAc/qf,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg+V,EAAc/8T,OAAQrW,GACpE+0L,EAAUqoN,GAAchhL,GACxB9W,EAAYwvC,EAAa,QAASG,GAClCm6H,EAAoBt6H,EAAa,WAAYyoP,IAC5C,CAAE5oZ,GAAS+yK,KACZQ,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GACtDuwM,GAAmBzme,OAAOoD,OAAOpD,OAAOoD,OAAO,CACnDsie,mBAAoB8lC,EACpB3jC,yBACCzwB,GAAa,CACdnkM,WAAqG,QAAxF38O,EAAoB,OAAf8gb,QAAsC,IAAfA,OAAwB,EAASA,EAAWnkM,kBAA+B,IAAP38O,EAAgBA,EAA+E,QAAzEC,EAAe,OAAVxC,QAA4B,IAAVA,OAAmB,EAASA,EAAMqjb,kBAA+B,IAAP7gb,OAAgB,EAASA,EAAG08O,cAE5O,mBACJyyN,GAAqB,YACnBe,GACEqkB,GAAaj9R,EAAAA,SAAc,IAC3B9K,EAAQ33M,MAAK8gC,GAAiB,OAATA,QAA0B,IAATA,OAAkB,EAASA,EAAKw5b,MACjE,OAEL2C,IAAqC,OAAfjxB,QAAsC,IAAfA,OAAwB,EAASA,EAAWixB,mBACpF,MAEF,MACN,CAACtlR,IACE0vR,GAAe,CACnB5se,KAAMgoN,EAAAA,OAAa,OAGf8kR,GCnHO,SAA2Br/P,GAYxC,MAX0Bq/P,CAACznQ,EAAKjvO,KAC9B,MAAM7B,EAAY8wO,EAAIprM,cAAc,IAAIwzM,eACxC,IAAIm4R,EAAcxvgB,EAClB,GAAI7B,EAAW,CACb,MAAMkF,EAAQE,iBAAiBpF,GAG/BqxgB,EAAcxvgB,EAFKykB,SAASphB,EAAM+8B,gBAAiB,IAC/B3b,SAASphB,EAAM88B,iBAAkB,GAEvD,CACA,OAAOqve,CAAW,CAGtB,CDsG4BC,CAAkBp4R,GAEtCq4R,GAAU99S,EAAAA,OAAa,MACvB+9S,GAAS/9S,EAAAA,OAAa,MAC5B2gS,GAAyBj9c,GAAK,IAAMvxC,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGwogB,GAAO3re,SAAU,CACnF4pM,cAAe8hS,GAAQ1re,YAGzB,MAAM2lc,GAAY/3Q,EAAAA,SAAc,IACR,oBAAXw9M,EACFA,EAEF+1D,GAAqB,OAAXA,QAA8B,IAAXA,OAAoB,EAASA,EAAO/1D,IACvE,CAACA,KACGw/E,IAAkB8V,GAAa59S,EAAS2iR,GAAoBE,IAE7DimC,GAAkB,CAAC,EACnBC,GAAkB,SAAUt/X,EAAMroE,GACtC,IAAIy2D,EAAQnxH,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAC3E,IAAI6sB,EAAIC,EAAIiC,EAAIC,EAChB,MAAMsze,EAAa/rgB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyogB,IAAkBr/X,GACjE5R,IACyC,QAA1CtkG,EAAKu1e,GAAgBG,uBAAoC,IAAP11e,GAAyBA,EAAGv8B,KAAK8xgB,KAE/C,QAAhCt1e,EAAKw1e,EAAWp+L,kBAA+B,IAAPp3S,OAAgB,EAASA,EAAG0J,WACvE8re,EAAWp+L,WAAW1tS,QAAU,GAG9B0tS,IAC6B,QAA9Bn1S,EAAKm1S,EAAW3yF,gBAA6B,IAAPxiN,GAAyBA,EAAGz+B,KAAK4zU,EAAY,EAAoC,QAAhCl1S,EAAKsze,EAAWp+L,kBAA+B,IAAPl1S,OAAgB,EAASA,EAAG99B,YAG5J23e,IAA8C,IAApCA,EAAO25B,0BAAsCx5B,GAAa5se,KAAKo6B,SEhJlE,SAAkBlR,GAC/B,IAAI7xB,EAAUuM,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAM,aACJihP,EAAeA,IAAMnrP,OAAM,SAC3BylB,EAAQ,SACR61G,EAAW,KACT39H,EACE9C,EAAYswP,IACZloP,EAAYgvV,GAAUp3V,GACtB05K,EAAY3jJ,KAAKw8B,MACjBu/c,EAAYA,KAChB,MACMn5c,EADY5iC,KAAKw8B,MACEmnH,EACnBq4V,EChBH,SAAwBz+e,EAAGvZ,EAAGC,EAAGxT,GACtC,MAAM0kD,EAAKlxC,EAAID,EAGf,OADAuZ,GAAK9sB,EAAI,GACD,EACC0kD,EAAK,EAAI53B,EAAIA,EAAIA,EAAIvZ,EAGvBmxC,EAAK,IAAM53B,GAAK,GAAKA,EAAIA,EAAI,GAAKvZ,CAC3C,CDO0Bi4f,CAAer5c,EAAO8nE,EAAWA,EAAW9nE,EAAMvwD,EAAWusB,EAAG8rG,GAClF6zX,GAASt0f,GACXA,EAAU4wI,SAASzrI,OAAOirI,YAAa2hY,GAC9B/xgB,aAAqBu0f,UAA2C,iBAA/Bv0f,EAAUwC,YAAYqL,KAChE7N,EAAUo7D,gBAAgBhzD,UAAY2pgB,EAEtC/xgB,EAAUoI,UAAY2pgB,EAEpBp5c,EAAO8nE,EACT85G,GAAIu3R,GACyB,oBAAblnf,GAChBA,GACF,EAEF2vN,GAAIu3R,EACN,CFqHMlhY,CAAS,EAAG,CACV0/G,aAAcA,IAAM+nP,GAAa5se,KAAKo6B,UAG7B,OAAb+6M,QAAkC,IAAbA,GAA+BA,EAAS+wR,EAAWp+L,WAAYo+L,EAAW5hV,QAAS4hV,EAAWxxG,OAAQ,CACzH8xG,kBAAmBhO,GAAckF,GAAYxgT,EAASgpT,EAAW9J,aAAcv8B,IAAqBqmC,EAAW7M,aAAcx5B,IAC7Hvha,UAEJ,GAcOmoc,GAAwB1K,GAAY2K,GAAkBxH,IAAcyH,GAAU,CACnFl5R,YACAk6P,gBACAw2B,eATqBA,CAACzpG,EAAQ0nG,KAC9B6J,GAAgB,CACdvxG,SACA0nG,gBACC,QAAQ,EAAM,EAMjBI,eAAgBA,GAAkB,CAAC,SAAU,WAC7CtX,cACAuX,sBAEImK,GAAa5+S,EAAAA,SAAc,IAAM01S,GAAYxgT,EAAS6+S,GAAYl8B,KAAqB,CAAC3iR,EAAS6+S,KACvGiK,GAAgBtxG,OAASwqG,KACzB8G,GAAgB5J,aAAeL,GAE/B,MAMO8K,GAAwBxN,GAAc/0U,IAAWwiV,GAAU,CAChEr5R,YACAtlN,OAAQ+8d,EACR3tG,oBACAowF,gBACA2yB,eAXqBA,CAACh2U,EAAS+0U,KAC/B4M,GAAgB,CACd3hV,UACA+0U,gBACC,UAAU,EAAK,EAQlB7iQ,kBAAmBA,GAAqB86D,EACxCllD,cAAezkD,KAAWykD,EAAeikB,KAErC18C,GAAa6kR,GAAcoO,GAAYvN,GAAcx5B,IAC3DmmC,GAAgB1hV,QAAUA,GAC1B0hV,GAAgB3M,aAAeA,GAE/B,MAAM+F,GAAmBp3S,EAAAA,SAAc,KACrC,MAAM++S,EAAgB,CAAC,EAMvB,OALA5sgB,OAAOC,KAAKkqL,IAASrvL,SAAQ+xgB,IACA,OAAvB1iV,GAAQ0iV,KACVD,EAAcC,GAAa1iV,GAAQ0iV,GACrC,IAEK7sgB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGmpgB,IAAmB,CACxDpiV,QAASyiV,GACT,GACD,CAACL,GAAkBpiV,MACf2iV,IAAyBC,GAAgB9H,KAUzC/D,GAAkB8K,IAAmBgB,GAAcxzR,GAAWr+O,QAR1Cywa,CAAC3rY,EAAStlC,KACnCmxgB,GAAgB,CACdn+L,WAAY3tU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyogB,GAAgBl+L,YAAa,CACvE1tS,UACAtlC,cAED,WAAW,GAEiFgzU,GACjGk+L,GAAgBl+L,YAA4B,IAAfA,EAAuB,CAAC,EvBpNhD,SAA4BuzL,EAAkBvzL,GACnD,MAAMvrR,EAAQ,CACZniB,QAASihe,EAAiBjhe,QAC1BtlC,SAAUumgB,EAAiBvmgB,UAEvB2wa,EAAgB39F,GAAoC,kBAAfA,EAA0BA,EAAa,CAAC,EAOnF,OANA3tU,OAAOC,KAAKqra,GAAexwa,SAAQmygB,IACjC,MAAMr0gB,EAAQsogB,EAAiB+L,GACV,oBAAVr0gB,IACTwpD,EAAM6qd,GAAYr0gB,EACpB,IAEKwpD,CACT,CuBuM2D8qd,CAAmBhM,GAAkBvzL,GAC9Fk+L,GAAgBG,gBAAkBA,GAElC,MAAMphB,GAAW/8R,EAAAA,SAAc,KAC7B,IAAmB,IAAf8/G,IAAyBuzL,GAAiBvmgB,SAC5C,OAAO6+O,GAET,MAAM,QACJv5M,EAAU,EAAC,MACXiF,EAAK,SACLvqC,EAAWmmgB,IACTI,GAGJ,OAAI1nR,GAAWr+O,OAAS+pC,EAClBs0M,GAAWr+O,OAASR,EAEf6+O,GAAWx6O,OAAOihC,EAAU,GAAKtlC,EAAUslC,EAAUtlC,GAEvD6+O,GAEFA,GAAWx6O,OAAOihC,EAAU,GAAKtlC,EAAUslC,EAAUtlC,EAAS,GACpE,GAAGgzU,EAAYn0F,GAAiC,OAArB0nR,SAAkD,IAArBA,QAA8B,EAASA,GAAiBjhe,QAA8B,OAArBihe,SAAkD,IAArBA,QAA8B,EAASA,GAAiBvmgB,SAA+B,OAArBumgB,SAAkD,IAArBA,QAA8B,EAASA,GAAiBh8d,SAEzSioe,GAA2BC,IAAkB1jB,GAAa,CAC/Dp2Q,YACA/8N,KAAMijO,GACNoxQ,YACAhlB,aACAilB,kBACAC,cACAplB,sBACA13c,OAAQ+8d,EACR1uP,kBAAmBA,GAAqB86D,GACvCwyL,GAcHljB,GAAiB4I,uBAAyB5I,GAAiBxzN,WAE3DwzN,GAAiBxzN,WAAawzN,GAAiBxzN,YAAcA,GAAcm0N,GAAiB2jB,GAEzE,SAAfD,SAAoE7jf,IAA3Cw/d,GAAiBoB,sBAC5CpB,GAAiBoB,sBAAwB8hB,EAAe,EAAI,EACnDljB,GAAiBoB,sBAAwB,GAAK8hB,IACvDljB,GAAiBoB,uBAAyB,GAGD,kBAAhCpB,GAAiBqB,aAC1BrB,GAAiBqB,WAAmC,kBAAfA,EAA0BA,EAAa,IAG9E,MAAMiF,GAAmBl/Q,EAAAA,aAAkB6yS,GAAgBoM,GAAsBK,GAA0BT,GAAuBJ,GAAuB5L,OAAkB,CAAC4L,GAAwBI,GAAwBS,KAC5N,IAAIE,GACAC,GAkCAC,GAjCJ,IAAmB,IAAf5/L,IAA8C,OAArBuzL,SAAkD,IAArBA,QAA8B,EAASA,GAAiBh8d,OAAQ,CACxH,IAAIumY,EAEFA,EADEy1F,GAAiB7kf,KACF6kf,GAAiB7kf,KAEF,UAAfszS,GAAyC,WAAfA,EAA0B,aAAU1oT,EAEjF,MAAMumgB,EAAmBnogB,GAA0BwoN,EAAAA,cAAoBq4G,GAAYlmU,OAAOoD,OAAO,CAAC,EAAG89f,GAAkB,CACrH3/f,UAAWisN,KAAW,GAAG8lB,gBAAwBA,gBAAwBjuO,IAAY67f,GAAiB3/f,WACtG8a,KAAMovZ,KAEFgiG,EAAgC,QAAdh2Y,EAAsB,OAAS,SACjD,SACJpyH,GACE67f,GACJ,GAAiB,OAAb77f,GAAqBxK,MAAMqR,QAAQ7G,GAAW,CAChD,MAAMqogB,EAASrogB,EAASiG,MAAK+V,GAAKA,EAAElX,SAAS,SACvCwjgB,EAAYtogB,EAASiG,MAAK+V,GAAKA,EAAElX,SAAS,YAC1CyjgB,EAAYvogB,EAASgG,OAAMgW,GAAgB,SAAX,GAAGA,MACpCqsf,GAAWC,GAAcC,IAC5BN,GAAuBE,EAAiBC,IAEtCC,IACFL,GAAoBG,EAAiBE,EAAOvwgB,cAAcuQ,QAAQ,MAAO,MAEvEiggB,IACFL,GAAuBE,EAAiBG,EAAUxwgB,cAAcuQ,QAAQ,SAAU,KAEtF,MACE4/f,GAAuBE,EAAiBC,EAE5C,CAGuB,mBAAZzhY,EACTuhY,GAAY,CACVtlG,SAAUj8R,GAEgB,kBAAZA,IAChBuhY,GAAYvtgB,OAAOoD,OAAO,CACxB6ka,UAAU,GACTj8R,IAEL,MAAM6hY,GAAoBrgT,KAAWyhF,EAAW/Y,EAAS,GAAG5iD,YAA+B,OAAVv/M,QAA4B,IAAVA,OAAmB,EAASA,EAAMxyB,UAAW,CAC9I,CAAC,GAAG+xO,iBAAwC,QAAd77G,GAC7Bl2H,EAAW0wQ,EAAekV,GACvB3vB,GAAcx3P,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAa,OAAV2wB,QAA4B,IAAVA,OAAmB,EAASA,EAAMz0B,OAAQA,GAC1GqnU,GAA0F,qBAA3D,OAAX34S,QAA8B,IAAXA,OAAoB,EAASA,EAAO24S,WAA6B34S,EAAO24S,WAA6B,OAAhB66F,QAAwC,IAAhBA,OAAyB,EAASA,EAAY,WAA0B3zM,EAAAA,cAAoBm0M,GAAoB,CACxQ1uX,cAAe,UAGXs3b,GAAiBr+J,EAAUuhM,GAAiBC,GAE5CC,GAAe,CAAC,EAChB/5G,GAAiBpmM,EAAAA,SAAc,KACnC,MAAM,SACJz2L,EAAQ,WACRE,EAAU,UACVY,EAAS,QACTqD,EAAO,UACP4sQ,EAAS,UACTC,GACEzlL,EACEo7K,EAAaviS,KAAKC,MAAM27B,EAAWE,GACzC,OAAQq4R,GACN,IAAK,SACH,OAAmB,EAAZvnB,EAAgBrK,EAAa7lQ,EACtC,IAAK,QACH,OAAmB,EAAZiwQ,EAAgBpK,EAAa7lQ,EACtC,QACE,OAAiB,EAAVqD,EAAcwiQ,EAAa7lQ,EACtC,GACC,CAACyqF,EAAOgtM,IAIX,OAHI4c,IACFyhM,GAAa/5G,eAAiBA,IAEzBjlH,EAAwBnhF,EAAAA,cAAoB,MAAO,CACxDt8K,IAAKo6d,GACLpqgB,UAAWssgB,GACXvugB,MAAOk4P,IACO3pC,EAAAA,cAAoBm6M,GAAMhoa,OAAOoD,OAAO,CACtD6ka,UAAU,GACTslG,IAAYF,GAAgCx/S,EAAAA,cAAoB+8Q,GAAgB5qe,OAAOoD,OAAO,CAAC,EAAG4qgB,GAAc37B,EAAY,CAC7H9gc,IAAKq6d,GACLv2e,QAASm4c,EACT/1W,UAAWA,EACX2/U,WAAYqvB,GACZnzP,UAAWA,EACX/xO,UAAWisN,KAAW,CACpB,CAAC,GAAG8lB,YAAoC,WAAfq8E,EACzB,CAAC,GAAGr8E,WAAmC,UAAfq8E,EACxB,CAAC,GAAGr8E,cAAuB6zJ,EAC3B,CAAC,GAAG7zJ,WAAuC,IAAnBvwB,EAAQ5nN,QAC/B8zS,EAAW/Y,EAAS/O,GACvB5wQ,KAAMq0e,GACNv/E,OAAQu6D,GACRU,aA9H2B2nC,CAAC7sC,EAAQl3d,EAAOu7d,KAC3C,IAAIyoC,EAMJ,OAJEA,EAD0B,oBAAjB5nC,EACY94Q,KAAW84Q,EAAalF,EAAQl3d,EAAOu7d,IAEvCj4Q,KAAW84Q,GAE3B94Q,KAAW,CAChB,CAAC,GAAG8lB,kBAA2B85R,GAAevggB,IAAI+4d,GAAUxE,EAAQl3d,KACnEgkgB,EAAmB,EAsHtBvnM,UAAWA,GAEXyoK,cAAerP,GACf0S,aAAcA,GACd1F,iBAAkBA,GAClB4F,kBAAmBA,MAChB26B,KAAuB,EAE9B,GAA4Bz/S,EAAAA,WAAiBy9S,IIjYvCjne,GAAQA,CAACwN,EAAON,KACpB,MAAMovb,EAAiB9yQ,EAAAA,OAAa,GAEpC,OADA8yQ,EAAe1gc,SAAW,EACN4tL,EAAAA,cAAoBy9S,GAAetrgB,OAAOoD,OAAO,CAAC,EAAGyuC,EAAO,CAC9EN,IAAKA,EACL4zd,aAAcxkC,EAAe1gc,UAC5B,EAECkue,GAA4BtgT,EAAAA,WAAiBxpL,IACnD8pe,GAAa7kB,iBAAmBA,GAChC6kB,GAAaruC,cAAgBA,GAC7BquC,GAAa5kB,cAAgBA,GAC7B4kB,GAAa3kB,iBAAmBA,GAChC2kB,GAAa1kB,eAAiBA,GAC9B0kB,GAAajqe,OAASA,GACtBiqe,GAAat2B,YAAcA,GAC3Bs2B,GAAatpC,QAAUA,GAIvB,MCzBA,GDyBA,GE2BA,GAlDmBupC,KACjB,MAAM7pc,EAAW2hS,MACX,UAAE4nG,EAAS,OAAEr3Z,EAAM,MAAE5xC,GAAU8hW,IAAatiW,GAAUA,EAAMq8C,SAElEsmB,EAAAA,EAAAA,YAAU,KAEUuoI,WAChB,UACQhrI,EAASunY,MAAuB93F,QACxC,CAAE,MAAOv2W,GACP+rE,GAAQ3kE,MAAM,qCAAuCpH,EACvD,GAGF4wgB,EAAW,GACV,CAAC9pc,EAAU1/D,IAGd,MAAMwwB,EAAU,CACd,CACE0Q,MAAO,cACP+2a,UAAW,aACXh+c,IAAK,cAEP,CACEinC,MAAO,aACP+2a,UAAW,YACXh+c,IAAK,YACLi9C,OAASlmB,GAAS,IAAI1F,KAAK0F,GAAM85Y,mBAIrC,OACEH,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EACEsxX,EAAAA,GAAAA,KAAA,MAAAtxX,SAAI,2BACQ,YAAX1H,GACCg5X,EAAAA,GAAAA,KAACzH,GAAI,KAELyH,EAAAA,GAAAA,KAACprY,GAAK,CACJ+mY,WAAY0iC,EACZz4a,QAASA,EACTg2Y,OAAO,aACP19F,WAAY,CAAEhzU,SAAU,MAG3BkK,IAAS2qa,EAAAA,GAAAA,MAAA,KAAGlwa,MAAO,CAAE27B,MAAO,OAAQkjB,SAAA,CAAC,UAAQt5C,OAC1C,EClDK,SAASypgB,GAAY11gB,GAClC,MAAO8sR,EAAY6oP,GAAiB1gT,EAAAA,SAAej1N,GASnD,OARAi1N,EAAAA,WAAgB,KACd,MAAMn8E,EAAUxqH,YAAW,KACzBqnf,EAAc31gB,EAAM,GACnBA,EAAMuC,OAAS,EAAI,IACtB,MAAO,KACL4+D,aAAa23E,EAAQ,CACtB,GACA,CAAC94I,IACG8sR,CACT,CCZA,MA2CA,GA3CmC/iK,IACjC,MAAM,aACJu0K,GACEv0K,EACE6rZ,EAAU,GAAGt3O,cACbu3O,EAAc,GAAGv3O,mBACvB,MAAO,CACL,CAACs3O,GAAU,CAETjkd,WAAY,WAAWo4D,EAAMiiL,sBAAsBjiL,EAAMq4K,kBACzD,oBAAqB,CACnBr1R,QAAS,EACT,WAAY,CACVA,QAAS,IAGb,UAAW,CACTA,QAAS,EACT,WAAY,CACVA,QAAS,IAIb,CAAC8ogB,GAAc,CACbnpgB,SAAU,SACVilD,WAAY,UAAUo4D,EAAMiiL,sBAAsBjiL,EAAMq4K,kDACjCr4K,EAAMiiL,sBAAsBjiL,EAAMq4K,oDAChCr4K,EAAMiiL,sBAAsBjiL,EAAMq4K,6BAC3D,CAAC,IAAIyzO,cAAwBA,WAAsB,CACjDl1b,UAAW,mBACX5zE,QAAS,EACT,WAAY,CACV4zE,UAAW,gBACX5zE,QAAS,IAGb,CAAC,IAAI8ogB,kBAA6B,CAChCl1b,UAAW,sBAIlB,ECpCGm1b,GAAY/rZ,IAAS,CACzBgsZ,OAAQ,CACNnugB,QAAS,QACTvE,MAAO,OACPu8H,aAAc7V,EAAMumL,SACpB3tQ,QAAS,EACTN,MAAO0nF,EAAMikL,qBACbxvQ,SAAUurF,EAAM26K,WAChBhmQ,WAAY,UACZw3G,OAAQ,EACRqrL,aAAc,GAAGn9T,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMm9K,eAEpE,uBAAwB,CACtB1xD,UAAW,cAGb,8CAA+C,CAC7C92M,WAAY,UAEd,qBAAsB,CACpB92B,QAAS,SAGX,sBAAuB,CACrBA,QAAS,QACTvE,MAAO,QAGT,iCAAkC,CAChCN,OAAQ,QAGV,0FAEgC,CAC9B8zM,QAAS,EACTv0E,UAAW,SAASl+H,GAAK2lH,EAAM2kL,wBAAwB3kL,EAAMklL,kBAG/D/gS,OAAQ,CACNtG,QAAS,QACTg7B,WAAY,GACZP,MAAO0nF,EAAMk2K,UACbzhQ,SAAUurF,EAAMvrF,SAChBE,WAAYqrF,EAAMrrF,cAGhBs3e,GAAcA,CAACjsZ,EAAOhnH,KAC1B,MAAM,YACJkzgB,GACElsZ,EACJ,MAAO,CACL,CAACksZ,GAAc,CACb,CAAC,GAAGA,mBAA8B,CAChClzgB,UAEF,CAAC,GAAGkzgB,mBAA8B,CAChCrxQ,UAAW7hQ,IAGhB,EAEGmzgB,GAAensZ,IACnB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAACA,EAAMu0K,cAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS+rZ,GAAU/rZ,IAAS,CAC7G,CAAC,GAAGu0K,UAAsB,CACxB12R,QAAS,eACTo8T,iBAAkBj6M,EAAMylL,WAK1B,UAAWpoS,OAAOoD,OAAO,CAAC,EAAGwrgB,GAAYjsZ,EAAOA,EAAMg6K,kBACtD,UAAW38R,OAAOoD,OAAO,CAAC,EAAGwrgB,GAAYjsZ,EAAOA,EAAMk6K,oBAEzD,EAEGkyO,GAAmBpsZ,IACvB,MAAM,YACJksZ,EAAW,QACXz3O,EAAO,aACPF,EAAY,cACZb,EAAa,OACbgB,EAAM,uBACN23O,EAAsB,WACtBC,EAAU,cACVC,EAAa,YACbC,EAAW,4BACXC,EAA2B,0BAC3BC,EAAyB,iBACzBC,GACE3sZ,EACJ,MAAO,CACL,CAACksZ,GAAc7ugB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACrE6V,aAAc82Y,EACd3ye,cAAe,MACf,cAAe,CACb4tB,WAAY,QAEd,CAAC,8BACW8sO,SAAe,CAEzB72R,QAAS,QAEX,gBAAiB,CACf,CAAC,GAAGqugB,WAAsB,CACxB5ze,MAAO0nF,EAAM03K,aAGjB,cAAe,CACb,CAAC,GAAGw0O,WAAsB,CACxB5ze,MAAO0nF,EAAMy3K,eAMjB,CAAC,GAAGy0O,WAAsB,CACxBlvd,SAAU,EACVr6C,SAAU,SACV+1I,WAAY,SACZ3+G,UAAW,MACXC,cAAe,SACf,SAAU,CACRD,UAAW,SAEb,SAAU,CACRp3B,SAAU,QACVgyB,WAAYqrF,EAAMrrF,WAClB+jH,WAAY,SAEd,UAAW,CACTh2I,SAAU,WACV7E,QAAS,cACTs5R,WAAY,SACZ/hQ,SAAU,OACVp8B,OAAQwzgB,EACRl0e,MAAOg0e,EACP73e,SAAU83e,EACV,CAAC,KAAK93O,KAAY,CAChBhgQ,SAAUurF,EAAMvrF,SAChBuF,cAAe,OAGjB,CAAC,IAAIkye,kBAA4BA,qCAAgD,CAC/ErugB,QAAS,eACT88T,gBAAiB36M,EAAMmmL,UACvB7tQ,MAAO+ze,EACP53e,SAAUurF,EAAMvrF,SAChB2F,WAAY,qBACZzF,WAAY,EACZ7e,QAAS,MACT,CAAC,GAAGy+Q,0BAAsC,CACxC12R,QAAS,SAIb,CAAC,GAAGqugB,cAAyB,CAC3BrugB,QAAS,eACT68T,kBAAmB16M,EAAMmmL,UACzB7tQ,MAAO0nF,EAAMikL,qBACb,CAAC,GAAG1P,0BAAsC,CACxC12R,QAAS,SAIb,CAAC,GAAGqugB,aAAwB,CAC1B5ze,MAAO0nF,EAAMikL,qBACb5yQ,OAAQ,OACRu7e,YAAa,gBACblyM,kBAAmB16M,EAAMmmL,WAE3B,WAAY,CACVrwR,QAAS,MACTpT,SAAU,WACVs3T,YAAa,EACbU,kBAAmB+xM,EACnB9xM,gBAAiB+xM,GAEnB,CAAC,IAAIR,qBAAgC,CACnCp2f,QAAS,YAOf,CAAC,GAAGo2f,aAAwB,CAC1B,gBAAmB,OACnBxiO,cAAe,SACf1sP,SAAU,EACV,CAAC,+BAA+B02O,6BAAyCA,cAA2B,CAClGp6R,MAAO,QAET,UAAW,CACToJ,SAAU,WACV7E,QAAS,OACTs5R,WAAY,SACZt8B,UAAW76I,EAAM84K,cACjB,YAAa,CACX/7O,KAAM,OACN3nB,SAAU,UAOhB,CAAC82e,GAAc,CACb,eAAgB,CACdrugB,QAAS,OACT6rS,cAAe,UAEjB,qBAAsB,CACpBnkN,MAAO,OACPjtD,MAAO0nF,EAAMikL,qBACbxvQ,SAAUurF,EAAMvrF,SAChBE,WAAYqrF,EAAMrrF,YAEpB,sBAAuB,CACrBr7B,MAAO,QAET,UAAW,CACTuhQ,UAAW76I,EAAMg6K,gBACjBpyO,WAAY,SAASo4D,EAAMkiL,qBAAqBliL,EAAMo4K,iBAExD,YAAa,CACX,UAAW,CACT9/P,MAAO0nF,EAAM03K,YAEf,YAAa,CACXp/P,MAAO0nF,EAAMy3K,gBAInB,CAAC,eAAey0O,aAAwB,CACtClzgB,OAAQ,OACRgK,QAAS,GAKX,CAAC,GAAGkpgB,mBAA8B,CAChCz3e,SAAUurF,EAAMvrF,SAChBsF,UAAW,SACXm9F,WAAY,UACZnrE,cAAe+lQ,GACf/4L,kBAAmB/Y,EAAMkiL,kBACzB2wB,wBAAyB7yM,EAAMs4K,kBAC/B9mD,cAAe,OACf,YAAa,CACXl5M,MAAO0nF,EAAMw3K,cAEf,UAAW,CACTl/P,MAAO0nF,EAAM03K,YAEf,YAAa,CACXp/P,MAAO0nF,EAAMy3K,cAEf,eAAgB,CACdn/P,MAAO0nF,EAAMu3K,iBAIpB,EAEGs1O,GAAqBA,CAAC7sZ,EAAOphH,KACjC,MAAM,YACJstgB,GACElsZ,EACJ,MAAO,CACL,CAAC,GAAGphH,gBAAyB,CAC3B,CAAC,GAAGstgB,WAAsB,CACxBlvd,SAAU,GAEZ,CAAC,GAAGkvd,aAAwB,CAC1Bnvd,KAAM,QAGN5Z,SAAU,GAMZ,CAAC,GAAG+oe,0BAAoCA,0BAAqC,CAC3E,CAAC,OAAOA,aAAwB,CAC9B/oe,SAAU,WAIjB,EAEG2pe,GAAiB9sZ,IACrB,MAAM,aACJu0K,EAAY,YACZ23O,EAAW,uBACXa,GACE/sZ,EACJ,MAAO,CACL,CAAC,GAAGu0K,YAAwB,CAC1B12R,QAAS,OACTkiV,SAAU,OACV,CAACmsL,GAAc,CACbnvd,KAAM,OACN49Q,gBAAiB36M,EAAM/mH,OACvB48H,aAAck3Y,EACd,QAAS,CACPhtL,SAAU,UAEZ,CAAC,KAAKmsL,uBACFA,aAAwB,CAC1BrugB,QAAS,eACTm8B,cAAe,OAEjB,CAAC,KAAKkye,WAAsB,CAC1Bnvd,KAAM,QAER,CAAC,GAAGw3O,UAAsB,CACxB12R,QAAS,gBAEX,CAAC,GAAGqugB,kBAA6B,CAC/BrugB,QAAS,kBAIhB,EAEGmvgB,GAA0BhtZ,IAAS,CACvCpnF,QAASonF,EAAMitZ,qBACfh0gB,OAAQ+mH,EAAMktZ,oBACdx0X,WAAY,UACZ3+G,UAAW,QACX,UAAW,CACT9gC,OAAQ,EACR,WAAY,CAEVi+H,WAAY,aAIZi2Y,GAAqBntZ,IACzB,MAAM,aACJu0K,EAAY,YACZ23O,EAAW,cACXx4O,GACE1zK,EACJ,MAAO,CACL,CAAC,GAAGksZ,KAAeA,WAAsBc,GAAwBhtZ,GAEjE,CAAC,GAAGu0K,SAAoBA,aAAyB,CAC/C,CAAC23O,GAAc,CACbnsL,SAAU,OACV,CAAC,GAAGmsL,YAAsBA,aAAwB,CAIhD,CAAC,mBAAmBx4O,eAA4B,CAC9C32O,KAAM,WACN3nB,SAAU,WAKnB,EAEGg4e,GAAmBptZ,IACvB,MAAM,aACJu0K,EAAY,YACZ23O,EAAW,OACXx3O,GACE10K,EACJ,MAAO,CACL,CAAC,GAAGu0K,cAA0B,CAC5B,CAAC,GAAG23O,SAAmBA,iBAA4B,CACjD,CAAC,GAAGA,SAAoB,CACtBxiO,cAAe,UAEjB,CAAC,GAAGwiO,mBAA8B,CAChClzgB,OAAQ,QAEV,CAAC,GAAGkzgB,aAAwB,CAC1B5ygB,MAAO,QAET,CAAC,GAAG4ygB,qBACFx3O,WAAgBw3O,qBAChBx3O,cAAmBw3O,WAAsBc,GAAwBhtZ,KAGvE,CAAC,sBAAsB3lH,GAAK2lH,EAAM8mL,iBAAkB,CAACqmO,GAAmBntZ,GAAQ,CAC9E,CAACu0K,GAAe,CACd,CAAC,GAAG23O,SAAmBA,iBAA4B,CACjD,CAAC,GAAGx3O,cAAmBw3O,WAAsBc,GAAwBhtZ,OAI3E,CAAC,sBAAsB3lH,GAAK2lH,EAAMinL,iBAAkB,CAClD,CAAC1S,GAAe,CACd,CAAC,GAAG23O,SAAmBA,iBAA4B,CACjD,CAAC,GAAGx3O,cAAmBw3O,WAAsBc,GAAwBhtZ,MAI3E,CAAC,sBAAsB3lH,GAAK2lH,EAAMonL,iBAAkB,CAClD,CAAC7S,GAAe,CACd,CAAC,GAAG23O,SAAmBA,iBAA4B,CACjD,CAAC,GAAGx3O,cAAmBw3O,WAAsBc,GAAwBhtZ,MAI3E,CAAC,sBAAsB3lH,GAAK2lH,EAAMunL,iBAAkB,CAClD,CAAChT,GAAe,CACd,CAAC,GAAG23O,SAAmBA,iBAA4B,CACjD,CAAC,GAAGx3O,cAAmBw3O,WAAsBc,GAAwBhtZ,MAI5E,EAEGqtZ,GAAuBrtZ,IAC3B,MAAM,YACJksZ,EAAW,OACXx3O,GACE10K,EACJ,MAAO,CACL,CAAC,GAAGksZ,cAAyB,CAC3B,CAAC,GAAGA,SAAoB,CACtBxiO,cAAe,UAEjB,CAAC,GAAGwiO,mBAA8B,CAChClzgB,OAAQ,QAEV,CAAC,GAAGkzgB,aAAwB,CAC1B5ygB,MAAO,SAGX,CAAC,GAAG4ygB,cAAwBA,mBACxBx3O,WAAgBw3O,mBAChBx3O,cAAmBw3O,WAAsBc,GAAwBhtZ,GACrE,CAAC,sBAAsB3lH,GAAK2lH,EAAM8mL,iBAAkB,CAACqmO,GAAmBntZ,GAAQ,CAC9E,CAACksZ,GAAc,CACb,CAAC,GAAGx3O,cAAmBw3O,WAAsBc,GAAwBhtZ,MAGzE,CAAC,sBAAsB3lH,GAAK2lH,EAAMinL,iBAAkB,CAClD,CAACilO,GAAc,CACb,CAAC,GAAGx3O,cAAmBw3O,WAAsBc,GAAwBhtZ,KAGzE,CAAC,sBAAsB3lH,GAAK2lH,EAAMonL,iBAAkB,CAClD,CAAC8kO,GAAc,CACb,CAAC,GAAGx3O,cAAmBw3O,WAAsBc,GAAwBhtZ,KAGzE,CAAC,sBAAsB3lH,GAAK2lH,EAAMunL,iBAAkB,CAClD,CAAC2kO,GAAc,CACb,CAAC,GAAGx3O,cAAmBw3O,WAAsBc,GAAwBhtZ,KAG1E,EAeUk2N,GAAeA,CAACl2N,EAAO0zK,IAChB1B,GAAWhyK,EAAO,CAClCksZ,YAAa,GAAGlsZ,EAAMu0K,oBACtBb,kBAIJ,GAAeqB,GAAc,QAAQ,CAAC/0K,EAAOsiC,KAC3C,IAAI,cACFoxI,GACEpxI,EACJ,MAAMgrX,EAAYp3L,GAAal2N,EAAO0zK,GACtC,MAAO,CAACy4O,GAAamB,GAAYlB,GAAiBkB,GAAYC,GAA2BD,GAAYT,GAAmBS,EAAWA,EAAU/4O,cAAes4O,GAAmBS,EAAWA,EAAUpB,aAAcY,GAAeQ,GAAYF,GAAiBE,GAAYD,GAAqBC,GAAY1uM,GAAkB0uM,GAAYx7M,GAAO,IAxB7S9xM,IAAS,CAC5CqsZ,uBAAwBrsZ,EAAM03K,WAC9B40O,WAAYtsZ,EAAM+jL,iBAClBwoO,cAAevsZ,EAAMvrF,SACrB+3e,YAAaxsZ,EAAM84K,cACnB2zO,4BAA6BzsZ,EAAMmmL,UAAY,EAC/CumO,0BAA2B1sZ,EAAMomL,SACjCumO,iBAAkB3sZ,EAAMumL,SACxB0mO,qBAAsB,OAAOjtZ,EAAMwlL,cACnC0nO,oBAAqB,EACrBH,uBAAwB,KAeA,CAGxBhvd,OAAQ,MCveJ0pM,GAAa,GACnB,SAAS+lR,GAActrgB,EAAOmpG,EAAQoia,GAEpC,MAAO,CACLtxgB,IAAsB,kBAAV+F,EAAqBA,EAAQ,GAAGmpG,KAFlCvkG,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,IAG9E5E,QACAurgB,cAEJ,CACA,MA+EA,GA/EkBnrX,IAChB,IAAI,KACForX,EAAI,WACJC,EAAU,OACVntS,EAASinB,GAAU,SACnBs2D,EAAWt2D,GACX7oP,UAAW0wQ,EAAa,QACxBs+P,EAAO,iBACPp7Q,GACElwG,EACJ,MAAM,UACJquF,GACEzlB,EAAAA,WAAiB2/F,IACfl/C,EAAgB,GAAGh7B,iBACnB4iD,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GACtDs6O,EAAiB3iT,EAAAA,SAAc,IAAMkzG,GAAmBztF,IAAY,CAACA,IAGrEm9R,EAAiBnC,GAAYnrS,GAC7ButS,EAAmBpC,GAAY5tN,GAC/BiwN,EAAc9iT,EAAAA,SAAc,SACnB5mN,IAATopgB,GAA+B,OAATA,EACjB,CAACF,GAAcE,EAAM,OAAQC,IAE/B,GAAG9xgB,OAAOw+O,GAAmByzR,EAAeppgB,KAAI,CAACxC,EAAOqF,IAAUimgB,GAActrgB,EAAO,QAAS,QAASqF,MAAU8yO,GAAmB0zR,EAAiBrpgB,KAAI,CAACuxN,EAAS1uN,IAAUimgB,GAAcv3S,EAAS,UAAW,UAAW1uN,QAClO,CAACmmgB,EAAMC,EAAYG,EAAgBC,IAChCE,EAAuB/iT,EAAAA,SAAc,KACzC,MAAMgjT,EAAY,CAAC,EAOnB,OANAF,EAAY71gB,SAAQ47K,IAClB,IAAI,IACF53K,GACE43K,EACJm6V,EAAU/xgB,IAAQ+xgB,EAAU/xgB,IAAQ,GAAK,CAAC,IAErC6xgB,EAAYtpgB,KAAI,CAACopO,EAAQvmO,IAAUlK,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGqtO,GAAS,CACjF3xO,IAAK+xgB,EAAUpgS,EAAO3xO,KAAO,EAAI,GAAG2xO,EAAO3xO,gBAAgBoL,IAAUumO,EAAO3xO,OAC3E,GACF,CAAC6xgB,IACEG,EAAY,CAAC,EAInB,OAHIP,IACFO,EAAUrzf,GAAK,GAAG8yf,UAEbvhO,EAAwBnhF,EAAAA,cAAoB6pC,GAAW,CAC5DrD,eAAgBm8Q,EAAen8Q,eAC/B0D,WAAY,GAAGzkB,cACfugB,UAAW+8Q,EAAqBz1gB,OAChCg6P,iBAAkBA,IACjB47Q,IACD,MACExvgB,UAAWqla,EACXtna,MAAO0xgB,GACLD,EACJ,OAAoBljT,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CAAC,EAAG0tgB,EAAW,CAC1EvvgB,UAAWisN,KAAW8gD,EAAes4J,EAAiB33H,EAAW/Y,EAASjkB,EAAekV,GACzF7nR,MAAO0xgB,IACQnjT,EAAAA,cAAoB6rC,GAAe15P,OAAOoD,OAAO,CAChEnD,KAAM2wgB,GACL7vM,GAAmBztF,GAAY,CAChCykB,WAAY,GAAGzkB,mBACf1P,WAAW,KACTu2Q,IACF,MAAM,IACJr7e,EAAG,MACH+F,EAAK,YACLurgB,EACA7ugB,UAAWghV,EACXjjV,MAAO2xgB,GACL92B,EACJ,OAAoBtsR,EAAAA,cAAoB,MAAO,CAC7C/uN,IAAKA,EACLyC,UAAWisN,KAAW+0H,EAAe,CACnC,CAAC,GAAGj0E,KAAiB8hQ,KAAgBA,IAEvC9wgB,MAAO2xgB,GACNpsgB,EAAM,IACR,IACF,ECpBC6oB,GAAaA,GACH,iBAAPA,GAAyB,MAANA,GAA8B,IAAhBA,EAAGtsB,SAEvComB,GAAcA,CAClBkG,EACAlG,MAEIA,GAA2C,WAAbkG,IAId,YAAbA,GAAuC,SAAbA,EA0B7BzqB,GAAeA,CAACyqB,EAAazqB,KACjC,GAAIyqB,EAAG2mF,aAAe3mF,EAAGymF,cAAgBzmF,EAAGwmF,YAAcxmF,EAAGsmF,YAAa,CAClE,MAAA1nF,EAAQ9sB,iBAAiBkuB,EAAI,MAEjC,OAAAlG,GAAY8E,EAAMwvG,UAAW74H,IAC7BukB,GAAY8E,EAAMuvG,UAAW54H,IAhBV,CAAAyqB,IACjB,MAAAlG,EAbiB,CAAAkG,IACvB,IAAKA,EAAGiwB,gBAAkBjwB,EAAGiwB,cAAcgY,YAClC,YAGL,IACK,OAAAjoC,EAAGiwB,cAAcgY,YAAYu7c,YAAA,OAC7Bxjf,GACA,WACT,CAAC,EATsB,CAaOA,GAC9B,QAAKlG,IAKHA,EAAM6sF,aAAe3mF,EAAGymF,cAAgB3sF,EAAM0sF,YAAcxmF,EAAGsmF,YAAA,EAP1C,CAiBHtmF,EAEpB,CAEO,UAWHpB,GAAeA,CACnBoB,EACAlG,EACAvkB,EACAqpB,EACAxwB,EACAxC,EACA4B,EACAyyB,IAsBGr0B,EAAmBo0B,GAClBxyB,EAAiBssB,GAClBluB,EAAmBo0B,GAAsBxyB,EAAiBssB,EAEpD,EA2CNluB,GAAoBo0B,GAAsBC,GAAe1qB,GACzD/H,GAAkBssB,GAAoBmG,GAAe1qB,EAE/C3J,EAAmBo0B,EAAqBpB,EA4C9CpxB,EAAiBssB,GAAoBmG,EAAc1qB,GACnD3J,EAAmBo0B,GAAsBC,EAAc1qB,EAEjD/H,EAAiBssB,EAAmB1rB,EAGtC,EAGHA,GAAoB4xB,IACxB,MAAMlG,EAASkG,EAAQ0N,cACvB,OAAc,MAAV5T,EACMkG,EAAQ6hO,cAA6BkV,MAAQ,KAEhDj9O,CAAA,EAcIluB,GAAUA,CAACkuB,EAAiBluB,KA/RzC,IAAA4B,EAAAyyB,EAAA/sB,EAAA6F,EAgSM,GAAoB,oBAAbnF,SAET,MAAO,GAGT,MAAM6vgB,WAAE/8f,EAAYsxG,MAAAv8G,EAAAk7O,OAAOz2N,EAAQwjf,SAAAl9f,EAAAm9f,2BAAUzhf,GAC3Ct2B,EAII+nB,EACgB,mBAAbnN,EAA0BA,EAAYwZ,GAAcA,IAASxZ,EAElE,IAACwZ,GAAUlG,GACP,UAAI5e,UAAU,kBAIhB,MAAAqmB,EAAmB3tB,SAASgwgB,kBAAoBhwgB,SAASk0D,gBAGzDhvD,EAAoB,GAC1B,IAAIuoE,EAAyBvnD,EAC7B,KAAOkG,GAAUqhD,IAAW1tD,EAAc0tD,IAAS,CAKjD,GAHAA,EAASjzE,GAAiBizE,GAGtBA,IAAW9/C,EAAkB,CAC/BzoB,EAAO3K,KAAKkzE,GACZ,KACF,CAIY,MAAVA,GACAA,IAAWztE,SAASuE,MACpB5C,GAAa8rE,KACZ9rE,GAAa3B,SAASk0D,kBAMX,MAAVuZ,GAAkB9rE,GAAa8rE,EAAQn/C,IACzCppB,EAAO3K,KAAKkzE,EAEhB,CAOA,MAAM56D,EAAgB,OAAAwZ,EAAA,OAAAzyB,EAAAqE,OAAOgygB,qBAAA,EAAPr2gB,EAAuBe,OAAS0xB,EAAA+0H,WAChDxnF,EAAiB,OAAAz0D,EAAA,OAAA7F,EAAArB,OAAOgygB,qBAAA,EAAP3wgB,EAAuBjF,QAAU8K,EAAAm8I,aAClDrY,QAAEx7G,EAAS07G,QAAAz7G,GAAYzvB,QAG3B5D,OAAQuzB,EACRjzB,MAAOyiB,EACPpjB,IAAKqpB,EACLnf,MAAO4G,EACPhM,OAAQi9D,EACRhiE,KAAM+lB,GACJoG,EAAO9sB,yBAETY,IAAKqc,EACLnS,MAAOgS,EACPpX,OAAQ8M,EACR7R,KAAMof,GAlFgB,CAAAiT,IAClB,MAAAlG,EAAgBjoB,OAAOC,iBAAiBkuB,GACvC,OACLpyB,IAAKihC,WAAW/U,EAAcgqf,kBAAoB,EAClDhsgB,MAAO+2B,WAAW/U,EAAciqf,oBAAsB,EACtDrxgB,OAAQm8B,WAAW/U,EAAckqf,qBAAuB,EACxDr2gB,KAAMkhC,WAAW/U,EAAcmqf,mBAAqB,EACrD,EAPuB,CAmFHnqf,GAGrB,IAAI5sB,EACQ,UAAVuO,GAA+B,YAAVA,EACjBwb,EAAYhN,EACF,QAAVxO,EACAk0D,EAAenwD,EACfyX,EAAYuK,EAAe,EAAIvX,EAAYzK,EAC7CuiB,EACS,WAAX7B,EACIxM,EAAa1C,EAAc,EAAIjE,EAAajD,EACjC,QAAXoW,EACAxhB,EAAcoL,EACd4J,EAAa3G,EAGnB,MAAM8nD,EAA+B,GAErC,IAAK,IAAI70C,EAAQ,EAAGA,EAAQlnB,EAAOrL,OAAQuyB,IAAS,CAC5C,MAAAlG,EAAQhhB,EAAOknB,IAIf/xB,OAAEG,EAAAG,MAAQ3C,EAAOgC,IAAAJ,EAAAsK,MAAKmoB,EAAAvtB,OAAOQ,EAAQvF,KAAAoL,GACzC+gB,EAAM9sB,wBAKN,GAAe,cAAf0Z,GACAuQ,GAAa,GACbvD,GAAc,GACdi8C,GAAgBnC,GAChB9uD,GAAe+H,IAEbqT,IAAUyH,IAAqBhsB,GAAaukB,IAC3C7C,GAAazpB,GACZmiE,GAAgBz8D,GAChBwgB,GAAc3a,GACd2F,GAAeuhB,GAGZ,OAAA40C,EAGH,MAAAruD,EAAa1U,iBAAiBgoB,GAC9BoI,EAAalP,SAASxM,EAAWmoB,gBAA2B,IAC5Dhb,EAAYX,SAASxM,EAAWgoB,eAA0B,IAC1D6yC,EAAcruD,SAASxM,EAAWkoB,iBAA4B,IAC9DzkB,EAAe+I,SAASxM,EAAWioB,kBAA6B,IAEtE,IAAI3kB,EAAsB,EACtBtK,EAAuB,EAIrB,MAAAuN,EACJ,gBAAiB+M,EACZA,EAAsBysF,YACtBzsF,EAAsB0sF,YACvBtkF,EACAm/C,EACA,EACAvhE,EACJ,iBAAkBga,EACbA,EAAsB4sF,aACtB5sF,EAAsB6sF,aACvBhzF,EACA1J,EACA,EAEAg4D,EACJ,gBAAiBnoD,EAC0B,IAAtCA,EAAsBysF,YACrB,EACA36G,EAASkuB,EAAsBysF,YACjC,EACA9iC,EACJ,iBAAkB3pD,EAC0B,IAAvCA,EAAsB4sF,aACrB,EACAt4G,EAAU0rB,EAAsB4sF,aAClC,EAEN,GAAInlF,IAAqBzH,EAIPhQ,EADF,UAAVrO,EACYvO,EACK,QAAVuO,EACKvO,EAAcsgE,EACT,YAAV/xD,EACKmjB,GACZ0C,EACAA,EAAUksC,EACVA,EACA75C,EACA1J,EACAqX,EAAUp0B,EACVo0B,EAAUp0B,EAAcs0B,EACxBA,GAIYt0B,EAAcsgE,EAAiB,EAI9BhuD,EADF,UAAX0gB,EACa6B,EACK,WAAX7B,EACM6B,EAAetb,EAAgB,EAC1B,QAAXyZ,EACM6B,EAAetb,EAGfmY,GACbyC,EACAA,EAAU5a,EACVA,EACAyb,EACAm/C,EACAhgD,EAAUU,EACVV,EAAUU,EAAe/Q,EACzBA,GAMJlH,EAAchc,KAAKwhB,IAAI,EAAGxF,EAAcwX,GACxC9hB,EAAe1R,KAAKwhB,IAAI,EAAG9P,EAAe6hB,OACrC,CAGHvX,EADY,UAAVrO,EACYvO,EAAcM,EAAMmmB,EACf,QAAVlY,EACKvO,EAAcgG,EAAS+W,EAAenK,EACjC,YAAVrE,EACKmjB,GACZpxB,EACA0F,EACA9E,EACAulB,EACA1J,EAAenK,EACf5S,EACAA,EAAcs0B,EACdA,GAIYt0B,GAAeM,EAAMY,EAAS,GAAK0R,EAAkB,EAInEN,EADa,UAAX0gB,EACa6B,EAAehpB,EAAOmpB,EACjB,WAAXhC,EACM6B,GAAgBhpB,EAAOnN,EAAQ,GAAKmhB,EAAiB,EAChD,QAAXmT,EACM6B,EAAe9B,EAAQohD,EAAct0D,EAGrC6R,GACb7lB,EACAknB,EACAr0B,EACAs2B,EACAm/C,EAAct0D,EACdgV,EACAA,EAAe/Q,EACfA,GAIE,MAAAjc,WAAEirB,EAAYlrB,UAAAS,GAAcukB,EAGhChQ,EAAW,IAAX25D,EACI,EACA31E,KAAKwhB,IACH,EACAxhB,KAAKyhB,IACHha,EAAYuU,EAAc25D,EAC1B3pD,EAAM2sF,aAAer4G,EAASq1E,EAAS3jE,IAI/CN,EAAW,IAAXyiE,EACI,EACAn0E,KAAKwhB,IACH,EACAxhB,KAAKyhB,IACHyQ,EAAaxgB,EAAeyiE,EAC5BnoD,EAAMwsF,YAAc16G,EAAQq2E,EAASl1D,IAK/C7f,GAAeqI,EAAYuU,EAC3BiY,GAAgB/B,EAAaxgB,CAC/B,CAEaq1D,EAAA1mE,KAAK,CAAEuD,GAAIooB,EAAOlsB,IAAKkc,EAAanc,KAAM6R,GACzD,CAEO,OAAAq1D,CAAA,EClbT,SAAS/6C,GACPA,EACAluB,GAGA,IAAKkuB,EAAOoqf,cAjDQ,CAAAlkf,IACpB,IAAIpB,EAAiBoB,EACd,KAAApB,GAAkBA,EAAe7rB,YAAY,CAC9C,GAAA6rB,EAAe7rB,aAAea,SACzB,SAEPgrB,EADSA,EAAe7rB,sBAAsBgvP,WAC5BnjO,EAAe7rB,WAA0BgkQ,KAE1Cn4O,EAAe7rB,UAEpC,CACO,UAXa,CAiDqB+mB,GACvC,OAGI,MAAAvkB,EAlEkB,CAAAyqB,IAClB,MAAApB,EAAgB/sB,OAAOC,iBAAiBkuB,GACvC,OACLpyB,IAAKihC,WAAWjQ,EAAcklf,kBAAoB,EAClDhsgB,MAAO+2B,WAAWjQ,EAAcmlf,oBAAsB,EACtDrxgB,OAAQm8B,WAAWjQ,EAAcolf,qBAAuB,EACxDr2gB,KAAMkhC,WAAWjQ,EAAcqlf,mBAAqB,EACrD,EAPuB,CAkESnqf,GAE7B,GArFe,iBAFnBkG,EAuF8Bp0B,IArF4B,mBAArBo0B,EAAQqqa,SAsF3C,OAAOz+b,EAAQy+b,SAASrqa,GAAQlG,EAAQluB,IAxF1C,IAAAo0B,EA2FA,MAAM5xB,EAA8B,kBAAZxC,GAA6C,MAATA,OAAA,EAASA,EAAAy+b,SAE1D,UAAA34b,GAAE8U,EAAI5Y,IAAAJ,EAAAG,KAAKsyB,KAAUD,GAAQlG,EAzFtBkG,KAAA,IAEdA,EACK,CAAEg4F,MAAO,MAAO2+H,OAAQ,WAZjC,CAAA32N,GAEAA,IAAY1tB,OAAO0tB,IAA4C,IAAhC1tB,OAAOC,KAAKytB,GAASvyB,OAFpD,CAe6BuyB,GAEpBA,EAIF,CAAEg4F,MAAO,QAAS2+H,OAAQ,WA6Ee/3N,CAAWhzB,IAAW,CACpE,MAAMo0B,EAAcxyB,EAAM+H,EAAQ3H,IAAM2H,EAAQ7C,OAC1CksB,EAAeqB,EAAO1qB,EAAQ5H,KAAO4H,EAAQuC,MACnD0O,EAAGo+d,OAAO,CAAEh3e,IAAKoyB,EAAaryB,KAAMixB,EAAcyra,SAAAj8b,GACpD,CACF,CCtJA,MAAM+1gB,GAAwB,CAAC,cAGxB,SAASrwa,GAAQovW,GACtB,YAAkB3pc,IAAd2pc,IAAyC,IAAdA,EAA4B,GACpD/1c,MAAMqR,QAAQ0kc,GAAaA,EAAY,CAACA,EACjD,CACO,SAASkhE,GAAWr1N,EAAUs1N,GACnC,IAAKt1N,EAASthT,OACZ,OAEF,MAAM+2S,EAAWuK,EAASx9S,KAAK,KAC/B,GAAI8ygB,EACF,MAAO,GAAGA,KAAY7/N,IAGxB,OADsB2/N,GAAsB1ngB,SAAS+nS,GAC9B,aAA+BA,IAAaA,CACrE,CAIO,SAASx8C,GAAUvyB,EAAQu9E,EAAUv+P,EAAM6vd,EAAuBjkN,EAAasyD,GACpF,IAAI5pU,EAASu7d,EAab,YAZuB/qgB,IAAnBo5W,EACF5pU,EAAS4pU,EACAl+T,EAAK0+P,WACdpqQ,EAAS,aACA0sL,EAAOhoO,OAChBs7C,EAAS,QACAiqQ,EAASvlT,OAClBs7C,EAAS,WACA0L,EAAKo+P,SAAWwN,GAAe5rQ,EAAK+/P,aAE7CzrQ,EAAS,WAEJA,CACT,CCtCA,IAAIkvP,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAMA,SAASukf,GAAchqgB,GAErB,OADiBu5F,GAAQv5F,GACThJ,KAAK,IACvB,CACA,SAASizgB,GAAgBjqgB,EAAMkqgB,GAC7B,MACMC,EAAWxoS,GADHuoS,EAASE,iBAAiBpqgB,IAExC,GAAImqgB,EACF,OAAOA,EAET,MAAM7B,EAAUuB,GAAWtwa,GAAQv5F,GAAOkqgB,EAASG,aAAarqgB,MAChE,OAAIsogB,EACKjvgB,SAAS4jP,eAAeqrR,QADjC,CAGF,CACe,SAAShlN,GAAQn1O,GAC9B,MAAOm8b,GAAUC,KACXC,EAAW5kT,EAAAA,OAAa,CAAC,GACzBskT,EAAWtkT,EAAAA,SAAc,IAAe,OAATz3I,QAA0B,IAATA,EAAkBA,EAAOp2E,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGmvgB,GAAS,CACtHD,aAAc,CACZllN,QAASnlT,GAAQrG,IACf,MAAM8wgB,EAAcT,GAAchqgB,GAC9BrG,EACF6wgB,EAASxye,QAAQyye,GAAe9wgB,SAEzB6wgB,EAASxye,QAAQyye,EAC1B,GAGJC,cAAe,SAAU1qgB,GACvB,IAAI/K,EAAUuM,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACnF,MAAM,MACF8jB,GACErwB,EACJ01gB,EAAUjtO,GAAOzoS,EAAS,CAAC,UACvB0E,EAAOswgB,GAAgBjqgB,EAAMkqgB,GAC/BvwgB,IACF0yZ,GAAe1yZ,EAAM5B,OAAOoD,OAAO,CACjC+tgB,WAAY,YACZzrZ,MAAO,WACNktZ,IAECrlf,GACF4kf,EAASU,WAAW5qgB,GAG1B,EACA4qgB,WAAY5qgB,IACV,IAAIquB,EAAIC,EACR,MAAM62R,EAAU+kN,EAASE,iBAAiBpqgB,GACuC,oBAAzD,OAAZmlT,QAAgC,IAAZA,OAAqB,EAASA,EAAQ7/R,OACpE6/R,EAAQ7/R,QAEwF,QAA/FgJ,EAAgD,QAA1CD,EAAK47e,GAAgBjqgB,EAAMkqgB,UAA8B,IAAP77e,OAAgB,EAASA,EAAG/I,aAA0B,IAAPgJ,GAAyBA,EAAGx8B,KAAKu8B,EAC3I,EAEF+7e,iBAAkBpqgB,IAChB,MAAMyqgB,EAAcT,GAAchqgB,GAClC,OAAOwqgB,EAASxye,QAAQyye,EAAY,KAEpC,CAACt8b,EAAMm8b,IACX,MAAO,CAACJ,EACV,CCzEA,IAAIxsO,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAcA,MAAMolf,GAAeA,CAACjhe,EAAON,KAC3B,MAAMk3M,EAAkB56B,EAAAA,WAAiBk9G,KACnC,aACJjoD,EAAY,UACZrrJ,EACAs7Y,aAAcC,EACdC,MAAOC,EACPC,mBAAoBC,EACpB7xgB,UAAW80O,EACX/2O,MAAO83T,GACL/zC,GAAmB,SAEnB/vC,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,KACb51P,EAAI,SACJ2hC,EAAWyqM,EAAe,KAC1BryK,EAAI,MACJ68b,EAAK,WACL9lN,EAAU,UACVkmN,EAAS,SACTC,EAAQ,WACRC,EAAU,iBACVC,EAAgB,OAChBlmM,EAAS,aAAY,mBACrB6lM,EAAkB,aAClBJ,EAAY,eACZ9oN,EAAc,KACdhiT,EAAI,MACJ3I,EAAK,cACLm0gB,EAAa,QACbv2X,GACErrG,EACJ6he,EAAgB/tO,GAAO9zP,EAAO,CAAC,YAAa,YAAa,gBAAiB,OAAQ,WAAY,OAAQ,QAAS,aAAc,YAAa,WAAY,aAAc,mBAAoB,SAAU,qBAAsB,eAAgB,iBAAkB,OAAQ,QAAS,gBAAiB,YACxR89Q,EAAaC,GAAQvzS,GACrBs3f,EAA0B9lT,EAAAA,WAAiByiH,IAKjD,MAAMsjM,EAAqB/lT,EAAAA,SAAc,SAClB5mN,IAAjB8rgB,EACKA,GAELS,SAGwBvsgB,IAAxB+rgB,GACKA,IAGR,CAACQ,EAAkBT,EAAcC,IAC9Ba,EAAwB,OAAVZ,QAA4B,IAAVA,EAAmBA,EAAQC,EAC3D5/R,EAAYwvC,EAAa,OAAQG,GAEjCiT,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GACtD49O,EAAgBtmT,KAAW8lB,EAAW,GAAGA,KAAag6F,IAAU,CACpE,CAAC,GAAGh6F,yBAAwD,IAAvBsgS,EACrC,CAAC,GAAGtgS,SAAgC,QAAd77G,EACtB,CAAC,GAAG67G,KAAaq8E,KAAeA,GAC/B1gB,EAAW/Y,EAAS/O,EAAQ9wC,EAAkB90O,EAAW0wQ,IACrDkgQ,GAAY5mN,GAAQn1O,IACrB,aACJk8b,GACEH,EACJG,EAAarqgB,KAAOA,EACpB,MAAMgkT,EAAmBp+F,EAAAA,SAAc,KAAM,CAC3C5lN,OACAklT,aACAmmN,WACAD,YACAE,aACA76e,SAAqB,aAAX40S,EACV2lM,MAAOY,EACPd,aAAca,EACdxmN,QAASklN,EAAallN,QACtBh3O,KAAM+7b,EACNsB,mBACE,CAACxrgB,EAAMklT,EAAYmmN,EAAUC,EAAYjmM,EAAQumM,EAAaD,EAAoBzB,EAAUsB,IAC1FpoN,EAAmBx9F,EAAAA,OAAa,MACtCA,EAAAA,oBAA0Bt8K,GAAK,KAC7B,IAAIjb,EACJ,OAAOt2B,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG+ugB,GAAW,CAChDtoS,cAAmD,QAAnCvzM,EAAK+0R,EAAiBprR,eAA4B,IAAP3J,OAAgB,EAASA,EAAGuzM,eACvF,IAEJ,MAAM8oS,EAAgBA,CAACz1gB,EAAS4rT,KAC9B,GAAI5rT,EAAS,CACX,IAAI62gB,EAA4B,CAC9BruZ,MAAO,WAEc,kBAAZxoH,IACT62gB,EAA4B/zgB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG2wgB,GAA4B72gB,IAE1Fi1gB,EAASQ,cAAc7pN,EAAWirN,EACpC,GAeF,OAAO/kO,EAAwBnhF,EAAAA,cAAoBogG,GAAeh9M,SAAU,CAC1Er4G,MAAOskJ,GACO2wE,EAAAA,cAAoBm9G,GAAyB,CAC3DhtR,SAAUA,GACI6vK,EAAAA,cAAoBqgG,GAAYj9M,SAAU,CACxDr4G,MAAO+2T,GACO9hG,EAAAA,cAAoB68F,GAAc,CAEhDrO,iBAAkBs3N,GACJ9lT,EAAAA,cAAoBw8F,GAAYp5M,SAAU,CACxDr4G,MAAOqzT,GACOp+F,EAAAA,cAAoBo/F,GAAWjtT,OAAOoD,OAAO,CAC3Dqa,GAAIxV,GACHyrgB,EAAe,CAChBzrgB,KAAMA,EACNgiT,eA5B6BvmF,IAE7B,GADmB,OAAnBumF,QAA8C,IAAnBA,GAAqCA,EAAevmF,GAC3EA,EAAU61E,YAAYp+S,OAAQ,CAChC,MAAM2tT,EAAYplF,EAAU61E,YAAY,GAAGtxS,KAC3C,QAA2BhB,IAAvBksgB,EAEF,YADAR,EAAcQ,EAAoBrqN,QAGF7hT,IAA9BmsgB,GACFT,EAAcS,EAA2BtqN,EAE7C,GAkBA1yO,KAAM+7b,EACN5ge,IAAK85Q,EACL/rT,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg0T,GAAe93T,GACtDiC,UAAWuygB,UACJ,EAOX,SAL0BjmT,EAAAA,WAAiBilT,ICzJ3C,MAAMkB,GAAoBA,KACxB,MAAM,OACJv9d,EAAM,OACN0sL,EAAS,GAAE,SACXu9E,EAAW,IACT7yF,EAAAA,WAAiB4/F,IAKrB,MAAO,CACLh3Q,SACA0sL,SACAu9E,WACD,EAGHszN,GAAkB/xX,QAAUwrK,GAC5B,YCbA,MAAMwmN,GAAmBtxZ,IACvB,MAAM,YACJksZ,GACElsZ,EACJ,MAAO,CACL,2EAA4E,CAE1E,CAAC,GAAGksZ,aAAwB,CAC1BrugB,QAAS,SAGd,EAGH,GAAe+3R,GAAqB,CAAC,OAAQ,cAAc,CAAC51K,EAAOsiC,KACjE,IAAI,cACFoxI,GACEpxI,EACJ,MAAMgrX,EAAYp3L,GAAal2N,EAAO0zK,GACtC,MAAO,CAAC49O,GAAiBhE,GAAW,ICzBtC,IAAItqO,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EASA,MAyGA,GAxGsBmkB,IACpB,MAAM,UACJyhM,EAAS,OACT78L,EAAM,SACN68d,EAAQ,WACRC,EAAU,SACVp1d,EAAQ,OACRglL,EAAM,SACNu9E,EACAwzN,oBAAqBC,EAAc,MACnC3/Z,EAAK,KACL67Z,EAAI,QACJE,EAAO,aACP/3Y,EAAY,sBACZ47Y,EAAqB,MACrBtha,GACEjhE,EACEy8N,EAAgB,GAAGh7B,SACnBu3E,EAAch9F,EAAAA,WAAiBw8F,IAC/BgqN,EAAmBxmT,EAAAA,SAAc,KACrC,IAAIymT,EAAgBt0gB,OAAOoD,OAAO,CAAC,EAAGmwgB,GAAc1oN,EAAY0oN,YAAc,CAAC,GAC/E,GAAc,OAAVzga,IAAmBwga,IAAaC,GAAc1oN,EAAYyoN,SAAU,CACzD,MAACrsgB,EAAW,KAAM,KAAM,KAAM,KAAM,KAAM,OAClDnM,SAAQuhB,IACX,MAAMk4f,EAAQl4f,EAAO,CAACA,GAAQ,GACxBm4f,EAAYhtgB,GAAIqjT,EAAYyoN,SAAUiB,GACtCE,EAAoC,kBAAdD,EAAyBA,EAAY,CAAC,EAC5D38a,EAAUrwF,GAAI8sgB,EAAeC,GAE/B,SAAUE,KAAkB,WADM,kBAAZ58a,EAAuBA,EAAU,CAAC,KACD48a,EAAar5X,KA9B/D,KA+BPk5X,EAAgB3wgB,GAAI2wgB,EAAe,GAAG91gB,OAAO+1gB,EAAO,CAAC,WAAYE,EAAar5X,MAChF,GAEJ,CACA,OAAOk5X,CAAa,GACnB,CAACf,EAAY1oN,IACVtpT,EAAYisN,KAAW,GAAG8gD,YAAyB+lQ,EAAiB9ygB,WAEpEmzgB,EAAiB7mT,EAAAA,SAAc,KACnC,MAAM,SACFylT,EAAQ,WACRC,GACE1oN,EAEN,OADSllB,GAAOklB,EAAa,CAAC,WAAY,cAC/B,GACV,CAACA,IACE8pN,EAAW9mT,EAAAA,OAAa,OACvB+mT,EAAaC,GAAkBhnT,EAAAA,SAAe,GACrD1mJ,IAAgB,KACVqtC,GAASmga,EAAS10e,QACpB40e,EAAeF,EAAS10e,QAAQo0E,cAEhCwga,EAAe,EACjB,GACC,CAACrga,IACJ,MAAMsga,EAAwBjnT,EAAAA,cAAoB,MAAO,CACvDtsN,UAAW,GAAG+sQ,mBACAzgD,EAAAA,cAAoB,MAAO,CACzCtsN,UAAW,GAAG+sQ,2BACbnwN,IACG6iV,EAAkBnzK,EAAAA,SAAc,KAAM,CAC1CylB,YACA78L,YACE,CAAC68L,EAAW78L,IACVs+d,EAAgC,OAAjBv8Y,GAAyB2qG,EAAOhoO,QAAUulT,EAASvlT,OAAuB0yN,EAAAA,cAAoB2/F,GAAsBv8M,SAAU,CACjJr4G,MAAOooY,GACOnzK,EAAAA,cAAoBmnT,GAAW,CAC7CzE,QAASA,EACTptS,OAAQA,EACRu9E,SAAUA,EACV2vN,KAAMA,EACNC,WAAY75d,EACZl1C,UAAW,GAAG+sQ,sBACdnZ,iBAAkBi/Q,KACb,KACDhiO,EAAa,CAAC,EAChBm+N,IACFn+N,EAAW30R,GAAK,GAAG8yf,WAIrB,MAAM0E,EAAWzga,EAAsBq5G,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CAAC,EAAGgvS,EAAY,CAC9F7wS,UAAW,GAAG+sQ,UACd/8N,IAAKoje,IACHnga,GAAU,KACR0ga,EAAgBH,GAAgBE,EAAyBpnT,EAAAA,cAAoB,MAAO,CACxFtsN,UAAW,GAAG+sQ,eACdhvQ,MAAOk5H,EAAe,CACpBglI,UAAWhlI,EAAeo8Y,GACxB,CAAC,GACJG,EAAcE,GAAa,KACxB30K,EAAM6zK,GAA0C,qBAAxBA,EAAepwX,MAA+BowX,EAAep4d,OAASo4d,EAAep4d,OAAOlK,EAAO,CAC/Hh3B,MAAOi6f,EACPj7N,UAAWk7N,EACXvga,MAAOyga,IACUpnT,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMinT,EAAUI,GACvE,OAAoBrnT,EAAAA,cAAoBw8F,GAAYp5M,SAAU,CAC5Dr4G,MAAO87gB,GACO7mT,EAAAA,cAAoBw8M,GAAKrqa,OAAOoD,OAAO,CAAC,EAAGixgB,EAAkB,CAC3E9ygB,UAAWA,IACT++V,GAAmBzyI,EAAAA,cAAoBsnT,GAAa,CACtD7hS,UAAWA,IACV,ECvHL,SAD6B,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,kLAAqL,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,saAA0a,KAAQ,kBAAmB,MAAS,YCMx0B,IAAI8hS,GAAyB,SAAgCvje,EAAON,GAClE,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMopU,KAEV,EAOA,SAJ2BxnT,EAAAA,WAAiBunT,ICb5C,IAAIzvO,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAoBA,MAmFA,GAnFsBu3H,IACpB,IAAI,UACFquF,EAAS,MACTxgI,EAAK,QACLgmX,EAAO,SACPw6C,EAAQ,WACRnmN,EAAU,MACV8lN,EAAK,SACL92Z,EAAQ,aACR42Z,EAAY,QACZ/jM,EAAO,SACPt2S,GACEusH,EACJ,IAAI3uH,EACJ,MAAOg/e,GAAcxmL,GAAU,SAE7B3hC,WAAYooN,EACZjC,SAAUkC,EAAe,UACzBnC,EACAJ,MAAOC,GACLrlT,EAAAA,WAAiBw8F,IACrB,IAAKv3M,EACH,OAAO,KAET,MAAM2ia,EAAiBnC,GAAYkC,GAAmB,CAAC,EACjDE,EAAmBvoN,GAAcooN,EACjCI,EAAgB,GAAGriS,eACnBsiS,EAAoBpoT,KAAWmoT,EAAoC,SAArBD,GAA+B,GAAGC,SAAsBF,EAAel0gB,UAAW,CACpI,CAAC,GAAGo0gB,YAAyBtC,IAE/B,IAAIwC,EAAgB/ia,EAEpB,MAAMgja,GAA0B,IAAV7C,IAAmC,IAAjBC,IAAoC,IAAVD,EAChD6C,IAAkBp9e,GAEF,kBAAVo6E,GAAsBA,EAAM/1F,SAClD84f,EAAgB/ia,EAAMplG,QAAQ,iBAAa,KAG7C,MAAMsrT,EAlDR,SAAwBgW,GACtB,OAAKA,EAGkB,kBAAZA,GAAuCnhH,EAAAA,eAAqBmhH,GAGhE,CACLjpS,MAAOipS,GAHAA,EAHA,IAQX,CAwCuB+mM,CAAe/mM,GACpC,GAAIhW,EAAc,CAChB,MAAM,KACF/sH,EAAoB4hB,EAAAA,cAAoBunT,GAAwB,OAC9Dp8M,EACJg9M,EAAmBrwO,GAAOqzB,EAAc,CAAC,SACrCi9M,EAA2BpoT,EAAAA,cAAoBojF,GAASjxS,OAAOoD,OAAO,CAAC,EAAG4ygB,GAAgCnoT,EAAAA,aAAmB5hB,EAAM,CACvI1qM,UAAW,GAAG+xO,iBACdvtM,MAAO,GACPooC,QAAS3mD,IAGPA,EAAEukC,gBAAgB,EAEpB8xL,SAAU,QAEZg4R,EAA6BhoT,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMgoT,EAAeI,EACxF,CAEA,MAAMC,EAAkC,aAAjBnD,EACjBoD,EAAuC,oBAAjBpD,EACxBoD,EACFN,EAAgB9C,EAAa8C,EAAe,CAC1C15Z,WAAYA,IAEL+5Z,IAAmB/5Z,IAC5B05Z,EAA6BhoT,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMgoT,EAA4BhoT,EAAAA,cAAoB,OAAQ,CAC7HtsN,UAAW,GAAG+xO,kBACdvtM,MAAO,KACU,OAAfuve,QAAsC,IAAfA,OAAwB,EAASA,EAAWxsM,YAA4C,QAA7BxyS,EAAKkzS,GAAcX,YAAyB,IAAPvyS,OAAgB,EAASA,EAAGwyS,aAEzJ,MAAMstM,EAAiB5oT,KAAW,CAChC,CAAC,GAAG8lB,mBAA4Bn3H,EAChC,CAAC,GAAGm3H,iCAA0C4iS,GAAkBC,EAChE,CAAC,GAAG7iS,oBAA6BwiS,IAEnC,OAAoBjoT,EAAAA,cAAoBw8M,GAAKrqa,OAAOoD,OAAO,CAAC,EAAGqygB,EAAgB,CAC7El0gB,UAAWq0gB,IACI/nT,EAAAA,cAAoB,QAAS,CAC5CirQ,QAASA,EACTv3d,UAAW60gB,EACXrwe,MAAwB,kBAAV+sE,EAAqBA,EAAQ,IAC1C+ia,GAAe,ECpGdQ,GAAU,CACdryX,QAASsqM,GACT11H,QAAS81H,GACT7pV,MAAO2pV,GACP3tC,WAAY01B,IAEC,SAAS+/L,GAAerxX,GACrC,IAAI,SACF9mG,EAAQ,OACRglL,EAAM,SACNu9E,EAAQ,YACRqN,EAAW,eACXsyD,EAAc,UACd/sI,EAAS,KACTnxL,EAAI,QACJo0d,GACEtxX,EACJ,MAAMk0F,EAAgB,GAAG7F,UACnB,cACJmgS,GACE5lT,EAAAA,WAAiBw8F,IACfmsN,EAAuB9gR,GAAUvyB,EAAQu9E,EAAUv+P,EAAM,OAAQ4rQ,EAAasyD,IAElFvyD,gBAAiB2oN,EACjBhge,OAAQige,EACR3oN,YAAa4oN,EACb3oN,aAAc4oN,GACZ/oT,EAAAA,WAAiB4/F,IAEfopN,EAAwBhpT,EAAAA,SAAc,KAC1C,IAAIv3L,EACJ,IAAI03R,EACJ,GAAID,EAAa,CACf,MAAM+oN,GAA8B,IAAhB/oN,GAAwBA,EAAYgpN,OAAStD,EAC3DuD,EAAiBR,IAIf,QAJyClgf,EAAqB,OAAhBwgf,QAAwC,IAAhBA,OAAyB,EAASA,EAAY,CAC1Hrge,OAAQ+/d,EACRrzS,SACAu9E,oBACqB,IAAPpqR,OAAgB,EAASA,EAAGkgf,IACtCz5E,EAAWy5E,GAAwBH,GAAQG,GACjDxoN,GAAkC,IAAnBgpN,GAA4Bj6E,EAAyBlvO,EAAAA,cAAoB,OAAQ,CAC9FtsN,UAAWisN,KAAW,GAAG2rB,kBAA+B,GAAGA,mBAA+Bq9R,MACzFQ,GAA+BnpT,EAAAA,cAAoBkvO,EAAU,OAAU,IAC5E,CACA,MAAM58X,EAAU,CACd1pB,OAAQ+/d,GAAwB,GAChCrzS,SACAu9E,WACAqN,cAAeA,EACfC,eACAF,iBAAiB,GASnB,OANIyoN,IACFp2c,EAAQ1pB,QAAmC,OAAzB+/d,QAA0D,IAAzBA,EAAkCA,EAAuBE,IAAiB,GAC7Hv2c,EAAQ2tP,gBAAkB2oN,EAC1Bt2c,EAAQ4tP,eAAiC,OAAhBA,QAAwC,IAAhBA,EAAyBA,EAAc4oN,GACxFx2c,EAAQ6tP,kBAA+B/mT,IAAhB8mT,EAA4B5tP,EAAQ6tP,aAAe4oN,GAErEz2c,CAAO,GACb,CAACq2c,EAAsBzoN,EAAawoN,EAASE,EAAuBC,IAEvE,OAAoB7oT,EAAAA,cAAoB4/F,GAAqBx8M,SAAU,CACrEr4G,MAAOi+gB,GACN14d,EACL,CCzEA,IAAIwnP,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAae,SAASupf,GAAWple,GACjC,MAAM,UACFyhM,EAAS,UACT/xO,EAAS,cACT0wQ,EAAa,MACb3yQ,EAAK,KACL+wgB,EAAI,OACJltS,EAAM,SACNu9E,EAAQ,eACR2/D,EAAc,KACdl+T,EAAI,YACJ4rQ,EAAW,OACX9qR,EAAM,SACNkb,EAAQ,QACRoyd,EAAO,SACPp0Z,EAAQ,WACRzoE,EAAU,oBACVwje,EAAmB,OACnB5pM,GACEz7R,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,YAAa,gBAAiB,QAAS,OAAQ,SAAU,WAAY,iBAAkB,OAAQ,cAAe,SAAU,WAAY,UAAW,WAAY,aAAc,sBAAuB,WACpOsnM,EAAgB,GAAG7F,UACnB,aACJy/R,EACAr6e,SAAUy+e,GACRtpT,EAAAA,WAAiBw8F,IACf3xR,EAAWy+e,GAA2B,aAAX7pM,EAE3BlgB,EAAUv/F,EAAAA,OAAa,MACvB4iT,EAAiBnC,GAAYnrS,GAC7ButS,EAAmBpC,GAAY5tN,GAC/B02N,OAAmBnwgB,IAATopgB,GAA+B,OAATA,EAChC5mN,KAAc2tN,GAAWj0S,EAAOhoO,QAAUulT,EAASvlT,QACnDk8gB,IAAejqN,EAAQntR,SAAW+7F,GAAUoxL,EAAQntR,UACnDu4F,EAAc8+Y,GAAmBzpT,EAAAA,SAAe,MACvD1mJ,IAAgB,KACd,GAAIsiP,GAAY2D,EAAQntR,QAAS,CAG/B,MAAMgxe,EAAYzxgB,iBAAiB4tT,EAAQntR,SAC3Cq3e,EAAgB52f,SAASuwf,EAAUz4Y,aAAc,IACnD,IACC,CAACixL,EAAU4tN,IACd,MAYMb,EANmB,WACvB,IAAIe,EAAa9tgB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAGhF,OAAOisP,GAFS6hR,EAAa9G,EAAiBtud,EAAKghL,OACjCo0S,EAAa7G,EAAmBvud,EAAKu+P,SAClBv+P,EAAM,KAAM4rQ,EAAasyD,EAChE,CAC6Bm3J,GAEvBj1L,EAAgB/0H,KAAW2rB,EAAe53O,EAAW0wQ,EAAe,CACxE,CAAC,GAAG94B,eAA4Bi+R,GAAW3G,EAAet1gB,QAAUu1gB,EAAiBv1gB,OAErF,CAAC,GAAGg+O,kBAA+Bq9R,GAAwBzoN,EAC3D,CAAC,GAAG50E,iBAAuD,YAAzBq9R,EAClC,CAAC,GAAGr9R,iBAAuD,YAAzBq9R,EAClC,CAAC,GAAGr9R,eAAqD,UAAzBq9R,EAChC,CAAC,GAAGr9R,mBAAyD,eAAzBq9R,EACpC,CAAC,GAAGr9R,YAAyBl2M,EAE7B,CAAC,GAAGk2M,KAAiBm0F,KAAWA,IAElC,OAAoBz/G,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAWghV,EACXjjV,MAAOA,EACPiyC,IAAK67Q,GACSv/F,EAAAA,cAAoBzpL,GAAKpkC,OAAOoD,OAAO,CACrD7B,UAAW,GAAG43O,SACb52I,GAAKuxI,EAAW,CAAC,sBAAuB,QAAS,eAAgB,QAAS,WAAY,oBAAqB,gBAAiB,UAAW,KAE1I,eAAgB,cAAe,QAAS,aAAc,WAAY,YAAa,mBAAoB,OAAQ,YAAa,UAAW,WAAY,eAAgB,QAAS,eAAgB,UAAW,UAAW,gBAAiB,kBAAmB,gBAAiB,aAAc,sBAAoCjmB,EAAAA,cAAoB4pT,GAAez3gB,OAAOoD,OAAO,CACpW01d,QAASy3C,GACR1+d,EAAO,CACRkhe,aAAcA,EACd52Z,SAAuB,OAAbA,QAAkC,IAAbA,EAAsBA,EAAWzoE,EAChE4/L,UAAWA,EACX56M,SAAUA,KACMm1L,EAAAA,cAAoB6pT,GAAe13gB,OAAOoD,OAAO,CAAC,EAAGyuC,EAAOsQ,EAAM,CAClFghL,OAAQstS,EACR/vN,SAAUgwN,EACVp9R,UAAWA,EACX78L,OAAQ+/d,EACRnG,KAAMA,EACN73Y,aAAcA,EACd47Y,sBAhD4B12Q,IACvBA,GACH45Q,EAAgB,KAClB,IA8CezpT,EAAAA,cAAoBw/F,GAAmBp8M,SAAU,CAChEr4G,MAAOs+gB,GACOrpT,EAAAA,cAAoByoT,GAAgB,CAClDhjS,UAAWA,EACXnxL,KAAMA,EACNghL,OAAQhhL,EAAKghL,OACbu9E,SAAUv+P,EAAKu+P,SACfqN,YAAaA,EAEbsyD,eAAgBm2J,GACfr4d,QAAgBq6E,GAA8Bq1F,EAAAA,cAAoB,MAAO,CAC1EtsN,UAAW,GAAG43O,kBACd75O,MAAO,CACLk5H,cAAeA,KAGrB,CC/FA,MAAMm/Y,GAAyB9pT,EAAAA,MAAW5oE,IACxC,IAAI,SACF9mG,GACE8mG,EACJ,OAAO9mG,CAAQ,IACd,CAACvnB,EAAM1oB,IAdV,SAA0BgG,EAAGC,GAC3B,MAAMyjgB,EAAQ53gB,OAAOC,KAAKiU,GACpB2jgB,EAAQ73gB,OAAOC,KAAKkU,GAC1B,OAAOyjgB,EAAMz8gB,SAAW08gB,EAAM18gB,QAAUy8gB,EAAMvsgB,OAAMvM,IAClD,MAAMg5gB,EAAa5jgB,EAAEpV,GACfi5gB,EAAa5jgB,EAAErV,GACrB,OAAOg5gB,IAAeC,GAAoC,oBAAfD,GAAmD,oBAAfC,CAAyB,GAE5G,CAMmBC,CAAiBphf,EAAKksR,QAAS50S,EAAK40S,UAAYlsR,EAAK6xE,SAAWv6F,EAAKu6F,QAAU7xE,EAAKy7Q,WAAWl3S,SAAW+S,EAAKmkS,WAAWl3S,QAAUy7B,EAAKy7Q,WAAWhnS,OAAM,CAACzS,EAAOsR,IAAUtR,IAAUsV,EAAKmkS,WAAWnoS,OA+OzN,MAAM+tgB,GApON,SAA0Bpme,GACxB,MAAM,KACJ5pC,EAAI,QACJsugB,EAAO,UACPh1gB,EAAS,aACTu+D,EACAwzK,UAAW2vC,EAAkB,aAC7Bh5C,EAAY,MACZ5qO,EAAK,SACL8+C,EAAQ,SACRg+D,EAAQ,MACRrJ,EAAK,iBACL+oM,EAAgB,QAChB5N,EAAU,WAAU,gBACpByT,EAAe,OACfz+Q,EAAM,KACNote,EAAI,OACJ/iM,GACEz7R,GACE,aACJixO,GACEj1D,EAAAA,WAAiBg1D,KAEnB56Q,KAAM8pgB,GACJlkT,EAAAA,WAAiBw8F,IACf94E,EC3EO,SAAqBpzL,GAClC,GAAwB,oBAAbA,EACT,OAAOA,EAET,MAAM+uL,EAAY1rI,GAAQrjD,GAC1B,OAAO+uL,EAAU/xO,QAAU,EAAI+xO,EAAU,GAAKA,CAChD,CDqEyBgmL,CAAY/0W,GAC7BmzL,EAA0C,oBAAnBC,EACvB2mS,EAAyBrqT,EAAAA,WAAiBw/F,KAE9C3L,gBAAiBy2N,GACftqT,EAAAA,WAAiBu1F,IACfV,OAA4Cz7S,IAApBy6S,EAAgCA,EAAkBy2N,EAC1EC,SAAqBnxgB,IAATgB,GAA+B,OAATA,GAClCqrO,EAAYwvC,EAAa,OAAQG,GAEjCiT,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GAE5C69B,GAAc,aAM9B,MAAMzQ,EAAcz1F,EAAAA,WAAiB01F,IAC/B80N,EAAkBxqT,EAAAA,OAAa,OAG9ByqT,EAAgBC,GEjGV,SAAuBhgf,GACpC,MAAO3/B,EAAO8jD,GAAYmxK,EAAAA,SAAet1L,GACnCm9c,EAAW7nR,EAAAA,OAAa,MACxB25P,EAAW35P,EAAAA,OAAa,IACxB+sB,EAAa/sB,EAAAA,QAAa,GA4BhC,OA3BAA,EAAAA,WAAgB,KACd+sB,EAAW36M,SAAU,EACd,KACL26M,EAAW36M,SAAU,EACrB00M,GAAIv0I,OAAOs1Y,EAASz1c,SACpBy1c,EAASz1c,QAAU,IAAI,IAExB,IAoBI,CAACrnC,EAnBR,SAAuBiwE,GACjB+xK,EAAW36M,UAGU,OAArBy1c,EAASz1c,UACXunb,EAASvnb,QAAU,GACnBy1c,EAASz1c,QAAU00M,IAAI,KACrB+gQ,EAASz1c,QAAU,KACnByc,GAAS6+L,IACP,IAAIt7M,EAAUs7M,EAId,OAHAisO,EAASvnb,QAAQnlC,SAAQo3C,IACvBjS,EAAUiS,EAAKjS,EAAQ,IAElBA,CAAO,GACd,KAGNunb,EAASvnb,QAAQpkC,KAAKgtE,GACxB,EAEF,CFgE8C2vc,CAAc,CAAC,IAEpDr2d,EAAMs2d,GAAWlxc,IAAS,KA3D1B,CACL47J,OAAQ,GACRu9E,SAAU,GACVH,SAAS,EACTM,YAAY,EACZ54S,KAAM,GACNi6S,WAAW,MA8EPg1N,EAAsBA,CAACwB,EAASC,KAEpCJ,GAAkBK,IAChB,MAAM92gB,EAAQ9B,OAAOoD,OAAO,CAAC,EAAGw1gB,GAG1BC,EADiB,GAAGr6gB,OAAOw+O,GAAmB07R,EAAQzwgB,KAAKjJ,MAAM,GAAI,IAAKg+O,GAAmB27R,IAC9D15gB,KA/GxB,aAuHb,OAPIy5gB,EAAQlzc,eAEH1jE,EAAM+2gB,GAGb/2gB,EAAM+2gB,GAAiBH,EAElB52gB,CAAK,GACZ,GAGGwnT,EAAcC,GAAkB17F,EAAAA,SAAc,KACnD,MAAMgsF,EAAY78D,GAAmB76L,EAAKghL,QACpC21S,EAAc97R,GAAmB76L,EAAKu+P,UAK5C,OAJA1gT,OAAOqQ,OAAOiogB,GAAgBx9gB,SAAQi+gB,IACpCl/N,EAAUh+S,KAAKwY,MAAMwlS,EAAW78D,GAAmB+7R,EAAc51S,QAAU,KAC3E21S,EAAYj9gB,KAAKwY,MAAMykgB,EAAa97R,GAAmB+7R,EAAcr4N,UAAY,IAAI,IAEhF,CAAC7G,EAAWi/N,EAAY,GAC9B,CAACR,EAAgBn2d,EAAKghL,OAAQhhL,EAAKu+P,WAEhCs4N,EGvJO,WACb,MAAM,QACJ5rN,GACEv/F,EAAAA,WAAiBw8F,IACfngF,EAAWrc,EAAAA,OAAa,CAAC,GAY/B,OAXA,SAAgB5lN,EAAMk2C,GAEpB,MAAM86d,EAAc96d,GAAgC,kBAAbA,GAAyB8sL,GAAW9sL,GACrE+6d,EAAUjxgB,EAAKhJ,KAAK,KAM1B,OALIirO,EAASjqM,QAAQh4B,OAASixgB,GAAWhvS,EAASjqM,QAAQyxM,YAAcunS,IACtE/uS,EAASjqM,QAAQh4B,KAAOixgB,EACxBhvS,EAASjqM,QAAQyxM,UAAYunS,EAC7B/uS,EAASjqM,QAAQsR,IAAM84L,GAAW+iF,EAAQnlT,GAAOgxgB,IAE5C/uS,EAASjqM,QAAQsR,GAC1B,CAEF,CHsIqB4ne,GAEnB,SAASC,EAAaC,EAAc9I,EAAS78d,GAC3C,OAAI6ie,IAAYtze,EACM4qL,EAAAA,cAAoByoT,GAAgB,CACtDhjS,UAAWA,EACXy6E,YAAal8Q,EAAMk8Q,YACnBsyD,eAAgBxuU,EAAMwuU,eACtBl+T,KAAMA,EACNghL,OAAQmmF,EACR5I,SAAU6I,EACVgtN,SAAS,GACR8C,GAEexrT,EAAAA,cAAoBopT,GAAYj3gB,OAAOoD,OAAO,CAChEtE,IAAK,OACJ+yC,EAAO,CACRtwC,UAAWisN,KAAWjsN,EAAW0tS,EAAW/Y,EAAS/O,GACrD7zC,UAAWA,EACXi9R,QAASA,EACT78d,WAAYA,EACZyvL,OAAQmmF,EACR5I,SAAU6I,EACVpnQ,KAAMA,EACN+0d,oBAAqBA,EACrB5pM,OAAQA,IACN+rM,EACN,CACA,IAAKjB,IAAY9mS,IAAkBxxK,EACjC,OAAOkvO,EAAWoqO,EAAa7nS,IAEjC,IAAIg5F,EAAY,CAAC,EAUjB,MATqB,kBAAVz3N,EACTy3N,EAAUz3N,MAAQA,EACT7qG,IACTsiU,EAAUz3N,MAAQ7xG,OAAOgH,IAEvB4zS,IACF0uB,EAAYvqU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGmnU,GAAY1uB,IAGnD7M,EAAwBnhF,EAAAA,cAAoBsxF,GAAOn/S,OAAOoD,OAAO,CAAC,EAAGyuC,EAAO,CACjFgqQ,iBAAkB0uB,EAClBt8B,QAASA,EACTyT,gBAAiBgB,EACjB7C,aAjGmBy5N,IAInB,MAAMC,EAA0B,OAAhBj2N,QAAwC,IAAhBA,OAAyB,EAASA,EAAY5pE,OAAO4/R,EAASrxgB,MAItG,GAFAwwgB,EAAQa,EAAS9zc,QAlEZ,CACL29J,OAAQ,GACRu9E,SAAU,GACVH,SAAS,EACTM,YAAY,EACZ54S,KAAM,GACNi6S,WAAW,GA4DiCo3N,GAAU,GAElD/C,IAAoB,IAATlG,GAAkB6H,EAAwB,CACvD,IAAIz7N,EAAW68N,EAASrxgB,KACxB,GAAKqxgB,EAAS9zc,QAQZi3O,EAAW47N,EAAgBp4e,SAAWw8Q,OAPtC,QAAgBx1S,IAAZsygB,EAAuB,CACzB,MAAO59B,EAAUprP,GAAYgpR,EAC7B98N,EAAW,CAACk/L,GAAUn9e,OAAOw+O,GAAmBuT,IAChD8nR,EAAgBp4e,QAAUw8Q,CAC5B,CAKFy7N,EAAuBoB,EAAU78N,EACnC,MA6EE,CAACqG,EAAS02N,EAAYr5c,KACxB,MAAMs5c,EAAaj4a,GAAQv5F,GAAM9M,QAAUq+gB,EAAaA,EAAWvxgB,KAAO,GACpEsogB,EAAUuB,GAAW2H,EAAY1H,GACjCr+d,OAA0BzsC,IAAbk1G,EAAyBA,KAAwB,OAAV98G,QAA4B,IAAVA,OAAmB,EAASA,EAAM+L,MAAKihI,IACjH,GAAIA,GAAwB,kBAATA,GAAqBA,EAAKlwB,WAAakwB,EAAK4wK,YAC7D,OAAO,EAET,GAAoB,oBAAT5wK,EAAqB,CAC9B,MAAMqtY,EAAartY,EAAKlsE,GACxB,OAAuB,OAAfu5c,QAAsC,IAAfA,OAAwB,EAASA,EAAWv9Z,aAA8B,OAAfu9Z,QAAsC,IAAfA,OAAwB,EAASA,EAAWz8N,YAC/J,CACA,OAAO,CAAK,KAGR08N,EAAgB35gB,OAAOoD,OAAO,CAAC,EAAG0/S,GACxC,IAAIn9K,EAAY,KAEhB,GAAI9qI,MAAMqR,QAAQqlO,IAAmB6mS,EAEnCzyY,EAAY4rG,OACP,GAAID,KAAoBrH,IAAgBnqK,GAAiBs4c,SAGzD,IAAIt4c,GAAiBwxK,GAAkB8mS,EAEvC,GAAiBvqT,EAAAA,eAAqB0jB,GAAiB,CAE5D,MAAM8gE,EAAaryS,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGmuO,EAAe1/L,OAAQ8ne,GAI1E,GAHKtnO,EAAW50R,KACd40R,EAAW50R,GAAK8yf,GAEdF,GAAQ/mN,EAAanuT,OAAS,GAAKouT,EAAepuT,OAAS,GAAK02C,EAAM2iE,MAAO,CAC/E,MAAMola,EAAiB,IACnBvJ,GAAQ/mN,EAAanuT,OAAS,IAChCy+gB,EAAe/9gB,KAAK,GAAG00gB,UAErB1+d,EAAM2iE,OACRola,EAAe/9gB,KAAK,GAAG00gB,WAEzBl+N,EAAW,oBAAsBunO,EAAe36gB,KAAK,IACvD,CACIqqT,EAAanuT,OAAS,IACxBk3S,EAAW,gBAAkB,QAE3B3+P,IACF2+P,EAAW,iBAAmB,QAE5BznE,GAAW2G,KACb8gE,EAAW9gQ,IAAMyne,EAAWS,EAAYloS,IAGzB,IAAIz8L,IAAI,GAAGt2C,OAAOw+O,GAAmBx7I,GAAQysM,IAAWjxD,GAAmBx7I,GAAQkhN,MAC3F5nT,SAAQ22P,IACf4gD,EAAW5gD,GAAa,WAGtB,IAFA,IAAI2uG,EAAKy5K,EACLvjf,EAAIC,EAAIiC,EACH8xM,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAEW,QAAnCj0M,EAAKqjf,EAAcloR,UAA+B,IAAPn7N,IAA0B8pU,EAAM9pU,GAAIv8B,KAAKsa,MAAM+rV,EAAK,CAACu5K,GAAen7gB,OAAO2lB,IACrE,QAAjDqU,GAAMjC,EAAKg7M,EAAe1/L,OAAO4/M,UAA+B,IAAPj5N,IAA0Bqhf,EAAMrhf,GAAIz+B,KAAKsa,MAAMwlgB,EAAK,CAACtjf,GAAI/3B,OAAO2lB,GAC5H,CAAC,IAGH,MAAM21f,EAAqB,CAACznO,EAAW,iBAAkBA,EAAW,gBAAiBA,EAAW,qBAChG1sK,EAAyBkoF,EAAAA,cAAoB8pT,GAAW,CACtD70N,QAAS62N,EACTlxa,OAAQ8oI,EACR8gE,WAAYynO,GACXjpa,GAAa0gI,EAAgB8gE,GAClC,MACE1sK,EADS2rG,IAAkBrH,GAAgBnqK,KAAkBs4c,EACjD7mS,EAAepxK,GAGfoxK,OAEd,OAAO6nS,EAAazzY,EAAW4qY,EAAS78d,EAAW,IAEvD,EAEAuke,GAAStkR,UAAYqgR,GACrB,YIvRA,IAAIruO,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAMA,MA2BA,GA3BiB4I,IACf,IACIg9M,UAAW2vC,EAAkB,SAC7B9kO,GACE7nB,EACJub,EAAQ8zP,GAAOrvQ,EAAI,CAAC,YAAa,aAKnC,MAAM,aACJwsP,GACEj1D,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,OAAQG,GACjCgtB,EAAepiF,EAAAA,SAAc,KAAM,CACvCylB,YACA78L,OAAQ,WACN,CAAC68L,IACL,OAAoBzlB,EAAAA,cAAoBq/F,GAAMltT,OAAOoD,OAAO,CAAC,EAAGyuC,IAAQ,CAACiuJ,EAAQi6U,EAAW53d,IAAuB0rK,EAAAA,cAAoB2/F,GAAsBv8M,SAAU,CACrKr4G,MAAOq3S,GACN9xP,EAAS2hJ,EAAOz4L,KAAI4kC,GAASjsC,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG6oC,GAAQ,CACtE0vc,SAAU1vc,EAAMntC,QACbi7gB,EAAW,CACd52S,OAAQhhL,EAAKghL,OACbu9E,SAAUv+P,EAAKu+P,aACZ,EC/BP,MAAMmoB,GAAOiqM,GACbjqM,GAAKv0F,KAAOA,GACZu0F,GAAK3b,KAAOA,GACZ2b,GAAKmsM,UAAYA,GACjBnsM,GAAKtd,QAAUA,GACfsd,GAAKmxM,gBCZU,WACb,MAAM,KACJ5jc,GACEy3I,EAAAA,WAAiBw8F,IACrB,OAAOj0O,CACT,EDQAyyP,GAAKz6D,SAAWA,GAChBy6D,GAAK53N,SAAWy5M,GAChBme,GAAKjlU,OAAS,KACoJ,EAElK,YElBA,SADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,2VAA+V,KAAQ,OAAQ,MAAS,YCMlhB,IAAIq2gB,GAAe,SAAsBpoe,EAAON,GAC9C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMiuU,KAEV,EAOA,SAJ2BrsT,EAAAA,WAAiBosT,ICmI5C,GAzIyBE,KACvB,MAAM51c,EAAW2hS,KACX7kI,EAAWR,MACVw7I,EAAU+9J,IAAe7yc,EAAAA,EAAAA,UAAS,CACvCqjY,sBAAuB,GACvB54B,UAAW,GACXC,SAAU,GACVt+C,cAAe,GACf44E,QAAS,GACT35Y,SAAU,GACVy/W,YAAa,WACb1/W,MAAO,GACP0nd,cAAe,OAGVruY,EAASg0M,IAAcz4Q,EAAAA,EAAAA,WAAS,IAEvCP,EAAAA,EAAAA,YAAU,KACR,MAAMszc,EAAgBloJ,KACtBgoJ,GAAatgR,IAAS,IACjBA,EACH8wM,sBAAuB0vE,KACtB,GACF,IAEH,MAAMrlI,EAAgBztX,IACpB,MAAM,KAAEvf,EAAI,MAAErP,GAAU4uB,EAAEziB,OAC1Bq1gB,EAAY,IAAK/9J,EAAU,CAACp0W,GAAOrP,GAAQ,EAwB7C,OACE62a,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yEAAwE48C,UACrFqxX,EAAAA,GAAAA,MAAC3mG,GAAI,CACHyE,OAAO,WACPtjB,SAzBez6G,UACnB,MAAMgrU,EAAY,IACblqgB,EACHgia,YAAa,WACbu4B,sBAAuBvuF,EAASuuF,sBAChCyvE,cAAe,KAGjBr6L,GAAW,GACX,UACQz7Q,EAAS8uT,GAAeknJ,IAAYvmK,SAC1CxqS,GAAQw6E,QAAQ,4BAChBq9E,EAAS,IACX,CAAE,MAAOx8N,GACP2kE,GAAQ3kE,MAAM,wBAA0BA,EAAM2kE,SAC9Cp0C,QAAQvwB,MAAM,sBAAuBA,EACvC,CAAC,QACCm7U,GAAW,EACb,GAQIz+U,UAAU,oDAAmD48C,SAAA,EAE7DqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,4CAA2C48C,SAAA,EACxDsxX,EAAAA,GAAAA,KAAA,OAAKzra,IAAKi0b,GAAM1xG,IAAI,OAAOhlV,UAAU,eACrCkua,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,sCAAqC48C,SAAC,iBAGtDsxX,EAAAA,GAAAA,KAAC91E,GAAK,CACJ1xV,KAAK,wBACLrP,MAAOyjX,EAASuuF,sBAChB9oE,UAAQ,EACR7+V,QAAM,KAGRwsY,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,aACN7qG,KAAK,YACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,kCAAmCrrB,UAEtEsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAAC3rP,QAAQyhU,EAAAA,GAAAA,KAAChtE,GAAY,IAAKznH,SAAUi6J,OAG7Cw6B,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,YACN7qG,KAAK,WACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,iCAAkCrrB,UAErEsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAAC3rP,QAAQyhU,EAAAA,GAAAA,KAAChtE,GAAY,IAAKznH,SAAUi6J,OAG7Cw6B,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,QACN7qG,KAAK,QACL5I,MAAO,CACL,CAAE88G,UAAU,EAAM3yC,QAAS,4BAC3B,CAAExoE,KAAM,QAASwoE,QAAS,gCAC1BrrB,UAEFsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAAC3rP,QAAQyhU,EAAAA,GAAAA,KAAC4b,GAAY,IAAKrwM,SAAUi6J,OAG7Cw6B,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,iBACN7qG,KAAK,gBACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,sCAAuCrrB,UAE1EsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAAC3rP,QAAQyhU,EAAAA,GAAAA,KAACW,GAAa,IAAKp1L,SAAUi6J,OAG9Cw6B,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CAACxhI,MAAM,UAAU7qG,KAAK,UAASk2C,UACvCsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAAC34V,KAAK,OAAOgtG,QAAQyhU,EAAAA,GAAAA,KAACtsE,GAAY,IAAKnoH,SAAUi6J,OAGzDw6B,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,WACN7qG,KAAK,WACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,gCAAiCrrB,UAEpEsxX,EAAAA,GAAAA,KAAC91E,GAAMu0C,SAAQ,CAAClgS,QAAQyhU,EAAAA,GAAAA,KAACwqG,GAAY,IAAKj/R,SAAUi6J,EAAcnL,kBAAgB,OAGpF2lC,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CAAAn2L,UACRsxX,EAAAA,GAAAA,KAACtrO,GAAM,CAAC+6I,SAAS,SAASx5N,OAAK,EAACsmB,QAASA,EAASzqI,UAAU,0BAAyB48C,SAAC,gBAKxFqxX,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,mBAAkB48C,SAAA,CAAC,sBACV,KACpBsxX,EAAAA,GAAAA,KAAA,QACEthW,QAASA,IAAMkzJ,EAAS,YACxB9/N,UAAU,+CAA8C48C,SACzD,iBAKD,EC7CV,GA1FkBq8d,KAChB,MAAMj2c,EAAW2hS,KACX7kI,EAAWR,MAEVw7I,EAAU+9J,IAAe7yc,EAAAA,EAAAA,UAAS,CACvCosT,cAAe,GACf/gU,SAAU,MAELo5E,EAASg0M,IAAcz4Q,EAAAA,EAAAA,WAAS,GAEjC0tU,EAAgBztX,IACpB,MAAM,KAAEvf,EAAI,MAAErP,GAAU4uB,EAAEziB,OAC1Bq1gB,EAAY,IAAK/9J,EAAU,CAACp0W,GAAOrP,GAAQ,EAiB7C,OACE62a,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yEAAwE48C,UACrFqxX,EAAAA,GAAAA,MAAC3mG,GAAI,CACHyE,OAAO,WACPtjB,SAlBez6G,UACnBywI,GAAW,GACX,UACQz7Q,EAASmvT,GAAcrjX,IAAS2jW,SACtCxqS,GAAQw6E,QAAQ,qBAChBq9E,EAAS,IACX,CAAE,MAAOx8N,GACP2kE,GAAQ3kE,MAAMA,GAAS,iBACvBw8N,EAAS,WACX,CAAC,QACC2+G,GAAW,EACb,GAQIz+U,UAAU,oDAAmD48C,SAAA,EAE7DqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,4CAA2C48C,SAAA,EACxDsxX,EAAAA,GAAAA,KAAA,OAAKzra,IAAKi0b,GAAM1xG,IAAI,OAAOhlV,UAAU,eACrCkua,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,sCAAqC48C,SAAC,cAGtDsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,iBACN7qG,KAAK,gBACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,sCAAuCrrB,UAE1EsxX,EAAAA,GAAAA,KAAC91E,GAAK,CACJ1xV,KAAK,gBACLrP,MAAOyjX,EAASsX,cAChB34I,SAAUi6J,OAIdw6B,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,WACN7qG,KAAK,WACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,gCAAiCrrB,UAEpEsxX,EAAAA,GAAAA,KAAC91E,GAAMu0C,SAAQ,CACbjmY,KAAK,WACLrP,MAAOyjX,EAASzpT,SAChBooL,SAAUi6J,OAIdw6B,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CAAAn2L,UACRsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACL+6I,SAAS,SACTx5N,OAAK,EACLnkH,UAAU,0BACVyqI,QAASA,EAAS7tF,SACnB,aAKHqxX,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,mBAAkB48C,SAAA,CAAC,8BACP,KACvBsxX,EAAAA,GAAAA,KAAA,QACEthW,QAASA,IAAMkzJ,EAAS,YACxB9/N,UAAU,+CAA8C48C,SACzD,oBAKD,ECpFJs9Y,GAAehpE,GAAUA,EAAMzqX,WAAW0F,QAAQ,wBAAyB,KA0GjF,GAxG2Bu3I,IAA6C,IAADw1X,EAAAC,EAAA,IAA3C,UAAEloJ,EAAS,eAAEq3E,EAAc,QAAE/3G,GAAS7sM,EAChE,MAAM1gF,EAAW2hS,KAEXuoE,EAAiB9nE,IAAatiW,GAAUA,EAAM6oa,SAASuB,gBAAkB,KACzEt8C,EAASxrB,IAAatiW,GAAUA,EAAM2tX,KAAKG,QAAU,QAEpDysG,EAAgBC,IAAqBt3Z,EAAAA,EAAAA,WAAS,IAErDP,EAAAA,EAAAA,YAAU,KACJ6iY,GAAkBr3E,GACpBjuT,EAASspW,GAAiBr7C,GAC5B,GACC,CAACjuT,EAAUiuT,EAAWq3E,IAuBzB,IAAKp7B,IAAmBA,EAAetza,OAAQ,OAAOs0a,EAAAA,GAAAA,KAAA,OAAAtxX,SAAK,qBAE3D,MAAM0mT,EAAU4pE,EAAe,GAEzBwqB,EAAW,wDAA+D,QAA9CwhF,EAA0B51K,EAAQ6qE,oBAAY,IAAA+qG,OAAA,EAApBA,EAAsBtngB,MAAM,MAAM+4E,QAE9F,OACEsjV,EAAAA,GAAAA,MAACt/G,GAAK,CACJr8D,QAASg2M,EACTt5G,SAAUuB,EACVhqT,OAAQ,KACR7rC,MAAM,MACNsiW,UAAQ,EACRxM,UAAW,CACT/0B,UAAW,OACX13T,SAAU,OACVi2B,QAAS,OACT/6B,QAAS,OACT6rS,cAAe,UAEjB9qS,UAAU,aAAY48C,SAAA,EAEtBqxX,EAAAA,GAAAA,MAACnyC,GAAM,CAAAl/U,SAAA,EACLsxX,EAAAA,GAAAA,KAAA,QACExna,KAAK,cACLwQ,QAAS,OAAOosV,EAAQyqE,yBAAoBmsB,GAAY52F,EAAQ4tB,gEAElE+8C,EAAAA,GAAAA,MAAA,SAAArxX,SAAA,CAAQ0mT,EAAQyqE,YAAY,8BAG9BE,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,kCAAiC48C,SAAA,EAC9CsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,SAAQ48C,UACrBsxX,EAAAA,GAAAA,KAAA,OACEzra,IAAKi1b,EACL1yG,IAAKse,EAAQyqE,YACb/ta,UAAU,iFAIdiua,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,SAAQ48C,SAAA,EACrBsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,kDAAiD48C,SAAE0mT,EAAQyqE,eACzEE,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,sDAAqD48C,SAAA,CAAC,SAC/Ds9Y,GAAY52F,EAAQ4tB,OAAO,UAE/Bg9C,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,qFAAoF48C,SAC7E,QAD6Eu8d,EAChG71K,EAAQjjV,mBAAW,IAAA84f,OAAA,EAAnBA,EAAqBvngB,MAAM,MAAM9L,KAAI,CAACujC,EAAMmuL,KAC3C02M,EAAAA,GAAAA,KAAA,KAAalua,UAAU,0BAAyB48C,SAC7CvT,GADKmuL,cAQhB02M,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,8DAA6D48C,UAC1EsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACLnjM,KAAK,UACLgrI,QAAS4yV,EACTzwZ,QA/EgBixZ,KACtB,IAAK3wD,EAAetza,OAAQ,OAG5B0je,GAAkB,GAElB,MAAMQ,EAAW,CACfltG,SACAK,UAAWi8C,EAAe,GAAGj8C,UAC7BC,MAAOg8C,EAAe,GAAGh8C,MACzBP,SAAU,GAGZ3tT,EAAS8tT,GAAUgtG,IAChBple,MAAK,KACJuvE,GAAQw6E,QAAQ,uCAChB8tM,GAAS,IAEVtmU,SAAQ,IAAMqzc,GAAkB,IAAO,EA8DpCt9d,UAAU,oHACV0qM,MAAMwjO,EAAAA,GAAAA,KAAClsE,GAAoB,IAAIplT,SAChC,oBAIG,ECgEZ,GArKqBw8d,KACnB,MAAMp2c,EAAW2hS,MACX,SAAEgnE,EAAW,GAAE,QAAElhS,GAAY26N,IAAatiW,GAAUA,EAAM6oa,UAAY,CAAC,KAEtE7qY,EAAam7b,IAAkBj2Z,EAAAA,EAAAA,UAAS,IAExCwiY,EAAmBC,IAAwBziY,EAAAA,EAAAA,UAAS,OACpDsiY,EAAgBC,IAAqBviY,EAAAA,EAAAA,WAAS,IAC9CgzX,EAAcC,IAAmBjzX,EAAAA,EAAAA,UAAS,CAAC,IAC3Cqzc,EAAaC,IAAkBtzc,EAAAA,EAAAA,UAAS,KACxCuzc,EAAaC,IAAkBxzc,EAAAA,EAAAA,WAAS,GAGzCyzc,GAAc1zc,EAAAA,EAAAA,QAAO,OAC3BN,EAAAA,EAAAA,YAAU,KACRznE,OAAOyrI,SAAS,EAAG,EAAE,GACpB,KAEHhkE,EAAAA,EAAAA,YAAU,KACR+zc,GAAe,GACfx2c,EAAS6oW,GAAuB,CAAEn5Y,WAAYoO,EAAa1nC,SARxC,MAQmEV,MAAMq8C,IACtFA,EAASgrB,SACXu5c,GAAgBI,GAAiB,IAAIA,KAAiB3ke,EAASgrB,WAEjEy5c,GAAe,EAAM,GACrB,GACD,CAACx2c,EAAUliC,IAGd,MAAMisY,GAAmBlnW,EAAAA,EAAAA,UAAQ,IACxBwzc,EACJzvgB,QAAQ05V,GAA+B,MAAnBA,EAAQpuT,YAgBjCuwB,EAAAA,EAAAA,YAAU,KACR,GAAI8zc,EAAa,OAEjB,MAAMt0f,EAAW,IAAIiyb,sBAClBroc,IACKA,EAAQ,GAAG0td,gBACbN,GAAgBtnF,GAAaA,EAAW,GAC1C,GAEF,CAAE93Y,KAAM,KAAM88gB,WAAY,QAAS7pW,UAAW,KAKhD,OAFI2pW,EAAY/6e,SAASzZ,EAASC,QAAQu0f,EAAY/6e,SAE/C,IAAMzZ,EAAS4mN,YAAY,GACjC,CAAC0tS,IAEJ,MAAMr/E,EAAehpE,GAAUA,EAAM1gN,QAAQ,GAAGrkK,QAAQ,wBAAyB,KAEjF,OACE8ha,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,+BAA8B48C,SAAA,EAC3CqxX,EAAAA,GAAAA,MAACnyC,GAAM,CAAAl/U,SAAA,EACLsxX,EAAAA,GAAAA,KAAA,SAAAtxX,SAAO,2DACPsxX,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,cAAcwQ,QAAQ,yHACjCg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,SAASwQ,QAAQ,mBAC5Bg3Z,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,WAAWx3E,QAAQ,8DAGpCg3Z,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,8EAA6E48C,SAAC,SAK3F6tF,GAAkC,IAAvB4uY,EAAYz/gB,QACtBs0a,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,uDAAsD48C,SAClEtjD,MAAM8J,KAAK,CAAExJ,OAAQ,KAAMkM,KAAI,CAAC8jB,EAAGjhB,KAClCsla,EAAAA,GAAAA,MAAA,OAAiBjua,UAAU,kEAAiE48C,SAAA,EAC1FsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,iCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,wCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yCAHP2I,OAOZoka,EAAiBnza,OAAS,GAC5Bs0a,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,uDAAsD48C,SAClEmwX,EAAiBjna,KAAKw9V,IACvB2qE,EAAAA,GAAAA,MAAA,OAEAjua,UAAU,qIACV4sE,QAASA,KAAMgtc,OA5DK5oJ,EA4Dc1tB,EAAQ2tB,UA3DhDw3E,EAAqBz3E,QACrBu3E,GAAkB,GAFQv3E,KA4DiC,EAAAp0U,SAAA,CAGpD0mT,EAAQi2F,SAAW,GAAKj2F,EAAQi2F,SAAWj2F,EAAQ4tB,QAClD+8C,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,iGAAgG48C,SAAA,CAC5G3iD,KAAK22B,OAAQ0yU,EAAQi2F,SAAWj2F,EAAQ4tB,OAAS5tB,EAAQi2F,SAAY,KAAK,YAK/ErrB,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,6DAA4D48C,SACxEo8Y,EAAa11F,EAAQ2tB,YACpBi9C,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,oEAEfkua,EAAAA,GAAAA,KAAA,OACEzra,IAAK,wDAAwD6gW,EAAQ6qE,aAAav8Z,MAAM,MAAM+4E,QAC9Fq6P,IAAKse,EAAQyqE,YACb/ta,UAAU,2CACV81b,OAAQA,IAAMmD,GAAiB5ja,IAAI,IAAWA,EAAM,CAACiuU,EAAQ2tB,YAAY,MACzExuU,QAASA,IAAMw2Y,GAAiB5ja,IAAI,IAAWA,EAAM,CAACiuU,EAAQ2tB,YAAY,WAMhFi9C,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,gDAA+C48C,SAAE0mT,EAAQyqE,eAGvEE,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,sBAAqB48C,SAAA,EAElCqxX,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,4CAA2C48C,SAAA,CAAC,SACrDs9Y,EAAY52F,EAAQ4tB,UAEvB5tB,EAAQi2F,SAAW,IAClBtrB,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,0CAAyC48C,SAAA,CAAC,SACnDs9Y,EAAY52F,EAAQi2F,kBArCvBj2F,EAAQ2tB,gBA8Cfi9C,EAAAA,GAAAA,KAACv/I,GAAK,CAACtuQ,YAAY,uBAIrB6tZ,EAAAA,GAAAA,KAAA,OAAKl+X,IAAKype,EAAaz5gB,UAAU,SAGtCu5gB,IACCrrG,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,4DAA2D48C,SACvEtjD,MAAM8J,KAAK,CAAExJ,OAAQ,IAAKkM,KAAI,CAAC8jB,EAAGjhB,KACjCsla,EAAAA,GAAAA,MAAA,OAAiBjua,UAAU,kEAAiE48C,SAAA,EAC1FsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,iCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,wCACfkua,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,yCAHP2I,OAQT6/b,IACCt6B,EAAAA,GAAAA,KAAC2rG,GAAkB,CAAC5oJ,UAAWu3E,EAAmBF,eAAgBA,EAAgB/3G,QAtHrEupL,KACjBrxE,EAAqB,MACrBF,GAAkB,EAAM,MAsHlB,8JCpKVwxE,KAAAA,OAAavkT,MACbukT,KAAAA,OAAaC,MACbD,KAAAA,OAAa/tX,MACb+tX,KAAAA,OAAa3sf,MACb2sf,KAAAA,OAAazjX,MACbyjX,KAAAA,OAAa9rX,MACb8rX,KAAAA,QAAa,SAAUhvf,EAAGlY,GAExB,IAAI9D,EAAQ8D,EAAEva,UACV2hhB,EAAYlrgB,EAAMrT,OACtBqT,EAAMrT,OAAS,SAAWw+gB,GACxB,IAAIzue,GAAOyue,GAAa,IAAI/tgB,QAAQ,KAAM,MAC1C,OAAO8tgB,EAAUj0gB,KAAKvN,KAAfwhhB,CAAqBxue,EAC9B,CACF,IACA,IAAI0ue,GAAY,CAIdC,MAAO,QACPC,MAAO,KAMPC,MAAO,QACPC,MAAO,KAKPC,MAAO,KAEPC,MAAO,QAQPC,MAAO,QAQPC,OAAQ,KAYRC,MAAO,QAGPC,MAAO,QAcPC,MAAO,QACPC,MAAO,QACPC,MAAO,SAELC,GAAc,SAAqBxuf,GAErC,OADgB0tf,GAAU1tf,IACNA,EAAO7a,MAAM,KAAK,EACxC,EA2IA,SAjIqB,CAEnBspgB,OAAQ,WACN,IAAI9vd,EAAM2ud,OAEV,MAAsB,oBAAX3ud,EAAI+vd,GACN/vd,EAAI+vd,KAEN/vd,CACT,EACAgwd,aAAc,SAAsBrvgB,GAClC,OAAOgugB,KAAMhugB,EAAQ,CAAC,YAAa,cACrC,EACAsvgB,WAAY,SAAoBvtf,GAC9B,OAAOA,EAAKqC,MAAM,QACpB,EACAmrf,WAAY,SAAoBxtf,GAC9B,IAAIvtB,EAAQutB,EAAKrB,OAAO,MACxB,OAAOlsB,EAAMyrJ,UAAYzrJ,EAAM6sB,aAAaP,gBAC9C,EACA6pR,QAAS,SAAiB5oR,GACxB,OAAOA,EAAKC,MACd,EACAmB,SAAU,SAAkBpB,GAC1B,OAAOA,EAAKE,OACd,EACAoB,QAAS,SAAiBtB,GACxB,OAAOA,EAAKA,MACd,EACAytf,QAAS,SAAiBztf,GACxB,OAAOA,EAAKy+H,MACd,EACAivX,UAAW,SAAmB1tf,GAC5B,OAAOA,EAAK6+H,QACd,EACA8uX,UAAW,SAAmB3tf,GAC5B,OAAOA,EAAKjT,QACd,EACA6ggB,eAAgB,SAAwB5tf,GACtC,OAAOA,EAAK2+H,aACd,EAEAkvX,QAAS,SAAiB7tf,EAAMkD,GAC9B,OAAOlD,EAAKG,IAAI+C,EAAM,OACxB,EACA4qf,SAAU,SAAkB9tf,EAAMkD,GAChC,OAAOlD,EAAKG,IAAI+C,EAAM,QACxB,EACA6qf,QAAS,SAAiB/tf,EAAMkD,GAC9B,OAAOlD,EAAKG,IAAI+C,EAAM,MACxB,EACA8qf,QAAS,SAAiBhuf,EAAMC,GAC9B,OAAOD,EAAKC,KAAKA,EACnB,EACA+mI,SAAU,SAAkBhnI,EAAME,GAChC,OAAOF,EAAKE,MAAMA,EACpB,EACA+kI,QAAS,SAAiBjlI,EAAMwlN,GAC9B,OAAOxlN,EAAKA,KAAKwlN,EACnB,EACAyoS,QAAS,SAAiBjuf,EAAMy+H,GAC9B,OAAOz+H,EAAKy+H,KAAKA,EACnB,EACAyvX,UAAW,SAAmBluf,EAAM6+H,GAClC,OAAO7+H,EAAK6+H,OAAOA,EACrB,EACAsvX,UAAW,SAAmBnuf,EAAMjT,GAClC,OAAOiT,EAAKjT,OAAOA,EACrB,EACAqhgB,eAAgB,SAAwBpuf,EAAM0+H,GAC5C,OAAO1+H,EAAK2+H,YAAYD,EAC1B,EAEAp8H,QAAS,SAAiB+rf,EAAOC,GAC/B,OAAOD,EAAM/rf,QAAQgsf,EACvB,EACAC,WAAY,SAAoBvuf,GAC9B,OAAOA,EAAKkC,SACd,EACAvD,OAAQ,CACN6vf,gBAAiB,SAAyB7vf,GACxC,OAAOstf,OAAQttf,OAAOwuf,GAAYxuf,IAASW,aAAaP,gBAC1D,EACA0vf,iBAAkB,SAA0B9vf,EAAQqB,GAClD,OAAOA,EAAKrB,OAAOwuf,GAAYxuf,IAASu/H,QAAQ,EAClD,EACAwwX,QAAS,SAAiB/vf,EAAQqB,GAChC,OAAOA,EAAKrB,OAAOwuf,GAAYxuf,IAASglC,MAC1C,EACAgrd,iBAAkB,SAA0Bhwf,GAC1C,OAAOstf,OAAQttf,OAAOwuf,GAAYxuf,IAASW,aAAaL,aAC1D,EACA2vf,eAAgB,SAAwBjwf,GACtC,OAAOstf,OAAQttf,OAAOwuf,GAAYxuf,IAASW,aAAaR,aAC1D,EACAlxB,OAAQ,SAAgB+wB,EAAQqB,EAAM6uf,GACpC,OAAO7uf,EAAKrB,OAAOwuf,GAAYxuf,IAAS/wB,OAAOihhB,EACjD,EACA16gB,MAAO,SAAewqB,EAAQ6H,EAAM5H,GAElC,IADA,IAAIkwf,EAAY3B,GAAYxuf,GACnB9yB,EAAI,EAAGA,EAAI+yB,EAAQ9yB,OAAQD,GAAK,EAAG,CAC1C,IAAI+B,EAASgxB,EAAQ/yB,GACjBkjhB,EAAavof,EACjB,GAAI54B,EAAOkN,SAAS,OAASlN,EAAOkN,SAAS,MAAO,CAKlD,IAHA,IAAImlB,EAAO8uf,EAAWjrgB,MAAM,KAAK,GAC7BkrgB,EAAUD,EAAWjrgB,MAAM,KAAK,GAChCmrgB,EAAYhD,KAAMhsf,EAAM,QAAQmC,QAAQ,QAAQzD,OAAOmwf,GAClDtmgB,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAAG,CAC/B,IAAIqyI,EAAWo0X,EAAU9uf,IAAI3X,EAAG,QAChC,GAAIqyI,EAASjtJ,OAAO,QAAUohhB,EAC5B,OAAOn0X,CAEX,CAEA,OAAO,IACT,CACA,IAAI76H,EAAOisf,KAAM8C,EAAYnhhB,GAAQ,GAAM+wB,OAAOmwf,GAClD,GAAI9uf,EAAKkC,UACP,OAAOlC,CAEX,CAIA,OAAO,IACT,ICnOJ,SADuB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,mWAAuW,KAAQ,WAAY,MAAS,YCMliB,IAAIkvf,GAAmB,SAA0B1se,EAAON,GACtD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMuyU,KAEV,EAOA,SAJ2B3wT,EAAAA,WAAiB0wT,ICb5C,SAD0B,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,kLAAqL,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,yKAA6K,KAAQ,eAAgB,MAAS,YCMrkB,IAAIE,GAAsB,SAA6B5se,EAAON,GAC5D,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMyyU,KAEV,EAOA,SAJ2B7wT,EAAAA,WAAiB4wT,ICb5C,SADwB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,+JAAmK,KAAQ,aAAc,MAAS,YCMjW,IAAIE,GAAoB,SAA2B9se,EAAON,GACxD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM2yU,KAEV,EAOA,SAJ2B/wT,EAAAA,WAAiB8wT,ICb5C,SADiC9wT,EAAAA,cAAoB,MCKrD,IAAIgxT,GAAsB,CACxB3tQ,WAAY,CACV1V,OAAQ,CAAC,KAAM,MACf1mM,OAAQ,CAAC,EAAG,GACZxvD,SAAU,CACRmlQ,QAAS,EACTC,QAAS,IAGbyG,YAAa,CACX3V,OAAQ,CAAC,KAAM,MACf1mM,OAAQ,CAAC,EAAG,GACZxvD,SAAU,CACRmlQ,QAAS,EACTC,QAAS,IAGbsG,QAAS,CACPxV,OAAQ,CAAC,KAAM,MACf1mM,OAAQ,CAAC,GAAI,GACbxvD,SAAU,CACRmlQ,QAAS,EACTC,QAAS,IAGbuG,SAAU,CACRzV,OAAQ,CAAC,KAAM,MACf1mM,OAAQ,CAAC,GAAI,GACbxvD,SAAU,CACRmlQ,QAAS,EACTC,QAAS,KA4Cf,SAxCA,SAAuBzlH,GACrB,IAAI+hH,EAAe/hH,EAAK+hH,aACtB5E,EAAan9G,EAAKm9G,WAClBD,EAAiBl9G,EAAKk9G,eACtBK,EAAav9G,EAAKu9G,WAClB/P,EAAiBxtG,EAAKwtG,eACtB4J,EAAoBp3G,EAAKo3G,kBACzBl+M,EAAW8mG,EAAK9mG,SAChB9wB,EAAQ43H,EAAK53H,MACb+4O,EAAYnhH,EAAKmhH,UACjB04Q,EAAwB75X,EAAKs9G,kBAC7BA,OAA8C,IAA1Bu8Q,EAAmCD,GAAsBC,EAC7ErnZ,EAAYwtB,EAAKxtB,UACjBo8H,EAAU5uG,EAAK4uG,QACfi+F,EAAU7sM,EAAK6sM,QAEfx+G,EADsBzlB,EAAAA,WAAiBkxT,IACTzrS,UAC5B8pK,EAAoB,GAAG5+Y,OAAO80O,EAAW,aACzC0rS,ECzDC,SAA0B54Q,EAAW5e,GAC1C,YAAkBvgP,IAAdm/P,EACKA,EAEF5e,EAAM,cAAgB,YAC/B,CDoDsBy3R,CAAiB74Q,EAAyB,QAAd3uI,GAChD,OAAoBo2F,EAAAA,cAAoB0kD,GAAS,CAC/ClR,WAAY,GACZC,WAAY,CAAC,SACbe,eAAgB28Q,EAChBz8Q,kBAAmBA,EACnBjvB,UAAW8pK,EACXt6I,oBAAqBrQ,EACrByJ,MAAO8K,EACPxE,WAAYA,EACZjB,aAAc1N,EACdsO,eAAgB30C,KAAW20C,GAAgBtwJ,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO4+Y,EAAmB,UAAW/vX,GAAQ,GAAG7uB,OAAO4+Y,EAAmB,QAAuB,QAAd3lR,IACrK2qI,WAAYA,EACZ12D,QAAS,WACT2wD,kBAAmBA,EACnBoF,qBAAsB,SAA8B/D,GAC7CA,GACHo0F,GAEJ,GACC3zS,EACL,EE9EO,SAAS+ge,GAAQlye,EAAK7xC,GAG3B,IAFA,IAAIyqG,EAAOn8F,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,IAC3Ew2B,EAAUh/B,OAAO+rC,GACd/M,EAAQ9kC,OAASA,GACtB8kC,EAAU,GAAGzhC,OAAOonG,GAAMpnG,OAAOyhC,GAEnC,OAAOA,CACT,CAKO,SAASuhE,GAAQ7+F,GACtB,OAAY,OAARA,QAAwBsE,IAARtE,EACX,GAEF9H,MAAMqR,QAAQvJ,GAAOA,EAAM,CAACA,EACrC,CACO,SAASw8gB,GAAUryQ,EAAK5iQ,EAAOtR,GACpC,IAAIkJ,EAAQk7O,GAAmB8vB,GAE/B,OADAhrQ,EAAMoI,GAAStR,EACRkJ,CACT,CAGO,SAASs9gB,GAAUvte,EAAO5xC,GAC/B,IAAI6B,EAAQ,CAAC,EAOb,OANiB7B,GAAQD,OAAOC,KAAK4xC,IAC1B/2C,SAAQ,SAAUgE,QACRmI,IAAf4qC,EAAM/yC,KACRgD,EAAMhD,GAAO+yC,EAAM/yC,GAEvB,IACOgD,CACT,CACO,SAASu9gB,GAAaC,EAAQtxf,EAAQ/wB,GAC3C,GAAIA,EACF,OAAOA,EAET,OAAQqihB,GAEN,IAAK,OACH,OAAOtxf,EAAOuxf,gBAChB,IAAK,WACH,OAAOvxf,EAAOwxf,oBAChB,IAAK,QACH,OAAOxxf,EAAOyxf,iBAChB,IAAK,OACH,OAAOzxf,EAAO0xf,gBAChB,IAAK,UACH,OAAO1xf,EAAO2xf,mBAChB,IAAK,OACH,OAAO3xf,EAAO4xf,gBAChB,QACE,OAAO5xf,EAAO6xf,gBAEpB,CACO,SAASC,GAAYC,EAAgBC,EAAiBxrH,GAC3D,IAAIyrH,OAAoCh5gB,IAAhButZ,EAA4BA,EAAcwrH,EAAgBA,EAAgB7khB,OAAS,GACvG+khB,EAAmBF,EAAgB10gB,MAAK,SAAUpB,GACpD,OAAO61gB,EAAe71gB,EACxB,IACA,OAAO+1gB,IAAsBC,EAAmBH,EAAeG,QAAoBj5gB,CACrF,CC/DO,SAASk5gB,GAAiBtue,GAC/B,OAAOute,GAAUvte,EAAO,CAAC,YAAa,oBAAqB,aAAc,oBAAqB,iBAAkB,aAClH,CCAe,SAASsvb,GAAci/C,EAAYC,EAAYC,EAAiBjzf,GAS7E,IAAIkzf,EAAmB1yT,EAAAA,SAAc,WACnC,OAAIuyT,GAGG,SAAUngf,EAASusG,GACxB,IAAIn9G,EAAO4Q,EACX,OAAIogf,GAA4B,SAAd7zY,EAAKxrI,KACdq/gB,EAAWhxf,EAAMm9G,EAAK63L,OAE3Bi8M,GAAiC,UAAd9zY,EAAKxrI,KACnBs/gB,EAAgBjxf,EAAMm9G,EAAKx+G,QAE7Bw+G,EAAKg0Y,UACd,CACF,GAAG,CAACJ,EAAYE,EAAiBD,IAQjC,OAL2BxyT,EAAAA,aAAkB,SAAUx+L,EAAMm9G,GAC3D,OAAO+zY,EAAiBlxf,EAAMmjN,GAAcA,GAAc,CAAC,EAAGhmG,GAAO,CAAC,EAAG,CACvEn/G,MAAOA,IAEX,GAAG,CAACkzf,EAAkBlzf,GAExB,CC7Be,SAASozf,GAAoBC,EAAeC,GACzD,IAAIC,EAAan3gB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GAEnFksO,EAAmBC,GADC/nB,EAAAA,SAAe,EAAC,GAAO,IACQ,GACnDgzT,EAAoBlrS,EAAiB,GACrCmrS,EAAuBnrS,EAAiB,GAqC1C,MAAO,CA3BiB9nB,EAAAA,SAAc,WACpC,OAAOgzT,EAAkBx5gB,KAAI,SAAUy/J,EAAS58J,GAE9C,GAAI48J,EACF,OAAO,EAET,IAAI7mI,EAAUygf,EAAcx2gB,GAG5B,QAAK+1B,KAKA2gf,EAAW12gB,KAAW+1B,MAKvBA,IAAW0gf,EAAiB1gf,EAAS,CACvCu0X,YAAatqZ,KAKjB,GACF,GAAG,CAACw2gB,EAAeG,EAAmBF,EAAkBC,IAnChC,SAA2B95W,EAAS58J,GAC1D42gB,GAAqB,SAAUh0Q,GAC7B,OAAOqyQ,GAAUryQ,EAAK5iQ,EAAO48J,EAC/B,GACF,EAiCF,CC/CO,SAASi6W,GAAeC,EAAUC,EAAYC,EAAYC,EAAiBC,GAChF,IAAIhiX,EAAa,GAGblgI,EAAQ,GAqBZ,OApBI8hf,GACF9hf,EAAMrjC,KAAKulhB,EAAe,KAAO,MAE/BH,GACF/hf,EAAMrjC,KAAK,MAETqlhB,GACFhif,EAAMrjC,KAAK,MAEbujK,EAAalgI,EAAMjgC,KAAK,KAGpBkihB,IACF/hX,GAAc,QAIZgiX,IACFhiX,GAAc,MAETA,CACT,CAuCe,SAAS0vL,GAAU9gU,EAAQqzf,GACxC,IAAIL,EAAWK,EAAUL,SACvBC,EAAaI,EAAUJ,WACvBC,EAAaG,EAAUH,WACvBC,EAAkBE,EAAUF,gBAC5BG,EAAaD,EAAUC,WACzB,OAAOzzT,EAAAA,SAAc,WACnB,OAzCJ,SAAoB7/L,EAAQgzf,EAAUC,EAAYC,EAAYC,EAAiBG,GAG7E,IAAI9B,EAAsBxxf,EAAOwxf,oBAC/BK,EAAkB7xf,EAAO6xf,gBACzBN,EAAkBvxf,EAAOuxf,gBACzBE,EAAmBzxf,EAAOyxf,iBAC1BC,EAAkB1xf,EAAO0xf,gBACzBE,EAAkB5xf,EAAO4xf,gBACzBD,EAAqB3xf,EAAO2xf,mBAC5B17M,EAAaj2S,EAAOi2S,WACpBs9M,EAAiBvzf,EAAOuzf,eACxBC,EAAoBxzf,EAAOwzf,kBAC3Bt9M,EAAYl2S,EAAOk2S,UACnBu9M,EAAiBzzf,EAAOyzf,eACtBriX,EAAa2hX,GAAeC,EAAUC,EAAYC,EAAYC,EAAiBG,GACnF,OAAO9uS,GAAcA,GAAc,CAAC,EAAGxkN,GAAS,CAAC,EAAG,CAClDwxf,oBAAqBA,GAAuB,cAAchhhB,OAAO4gK,GACjEygX,gBAAiBA,GAAmB,aACpCN,gBAAiBA,GAAmBngX,EACpCqgX,iBAAkBA,GAAoB,UACtCC,gBAAiBA,GAAmB,OACpCE,gBAAiBA,GAAmB,UACpCD,mBAAoBA,GAAsB,YAC1C17M,WAAYA,GAAc,OAC1Bs9M,eAAgBA,GAAkB,OAClCC,kBAAmBA,GAAqB,OACxCC,eAAgBA,GAAkBv9M,GAAa,KAEnD,CAYWw9M,CAAW1zf,EAAQgzf,EAAUC,EAAYC,EAAYC,EAAiBG,EAC/E,GAAG,CAACtzf,EAAQgzf,EAAUC,EAAYC,EAAYC,EAAiBG,GACjE,CCvEA,SAASK,GAAU1khB,EAAQuyL,EAAUwtE,GACnC,OAAgB,OAATA,QAA0B,IAATA,EAAkBA,EAAOxtE,EAASpkL,MAAK,SAAU2vd,GACvE,OAAO99d,EAAOkN,SAAS4wd,EACzB,GACF,CACA,IAAI6mD,GAAe,CAEnB,UAAW,WAAY,aAAc,aAAc,kBAAmB,aAAc,WAAY,aAAc,aAAc,kBAAmB,sBAAuB,eAAgB,gBAAiB,kBAAmB,kBAAmB,uBAAwB,eAAgB,iBAAkB,oBAsBvS,SAASC,GAAe5khB,GACtB,OAAOA,GAA4B,kBAAXA,CAC1B,CAEA,SAAS6khB,GAAgBd,EAAUC,EAAYC,EAAYC,GACzD,MAAO,CAACH,EAAUC,EAAYC,EAAYC,GAAiB/1gB,MAAK,SAAU4xP,GACxE,YAAgB/1P,IAAT+1P,CACT,GACF,CAGA,SAAS+kR,GAAeC,EAAehB,EAAUC,EAAYC,EAAYC,GACvE,IAAIc,EAAiBjB,EACjBkB,EAAmBjB,EACnBkB,EAAmBjB,EACvB,GAAKc,GAAkBC,GAAmBC,GAAqBC,GAAqBhB,GAI7E,GAAIa,EAAe,CACxB,IAAII,EAAiBC,EAAmBC,EACpCC,EAAa,CAACN,EAAgBC,EAAkBC,GAAkB/2gB,MAAK,SAAU4xP,GACnF,OAAgB,IAATA,CACT,IACIwlR,EAAY,CAACP,EAAgBC,EAAkBC,GAAkB/2gB,MAAK,SAAU4xP,GAClF,OAAgB,IAATA,CACT,IACIylR,IAAcF,IAAqBC,EACvCP,EAAwD,QAAtCG,EAAkBH,SAAgD,IAApBG,EAA6BA,EAAkBK,EAC/GP,EAA8D,QAA1CG,EAAoBH,SAAoD,IAAtBG,EAA+BA,EAAoBI,EACzHN,EAA8D,QAA1CG,EAAoBH,SAAoD,IAAtBG,EAA+BA,EAAoBG,CAC3H,OAfER,GAAiB,EACjBC,GAAmB,EACnBC,GAAmB,EAcrB,MAAO,CAACF,EAAgBC,EAAkBC,EAAkBhB,EAC9D,CAMO,SAASuB,GAAaC,GAC3B,IAAIC,EAAWD,EAAeC,SAC1BC,EA1DN,SAAuBhxe,GACrB,IAAIixe,EAAY1D,GAAUvte,EAAO+ve,IAC7B3khB,EAAS40C,EAAM50C,OACjBqihB,EAASzte,EAAMyte,OACbyD,EAAa,KAWjB,OAVI9lhB,IACF8lhB,EAAa9lhB,EACTpC,MAAMqR,QAAQ62gB,KAChBA,EAAaA,EAAW,IAE1BA,EAAqC,YAAxBvmhB,EAAAA,GAAAA,GAAQumhB,GAA2BA,EAAW9lhB,OAAS8lhB,GAEvD,SAAXzD,IACFwD,EAAU7lhB,OAAS8lhB,GAEd,CAACD,EAAWC,EACrB,CA0CuBC,CAAcL,GACjCM,EAAkBrtS,GAAeitS,EAAgB,GACjDK,EAAcD,EAAgB,GAC9BF,EAAaE,EAAgB,GAC3BE,EAAiBP,GAAkC,YAAtBpmhB,EAAAA,GAAAA,GAAQomhB,GAAyBA,EAAW,CAAC,EAC1EQ,EAAa5wS,GAAcA,GAAc,CAC3C6wS,iBAAkBF,EAAeE,kBAAoBF,EAAe5qf,cACnE2qf,GAAcC,GACbhC,EAAkBiC,EAAWjC,gBAC7BH,EAAWoC,EAAWpC,SACxBC,EAAamC,EAAWnC,WACxBC,EAAakC,EAAWlC,WAGtBoC,EAAmB1tS,GADDmsS,GADFD,GAAgBd,EAAUC,EAAYC,EAAYC,GAClBH,EAAUC,EAAYC,EAAYC,GAC/B,GAIvD,OAHAH,EAAWsC,EAAiB,GAC5BrC,EAAaqC,EAAiB,GAC9BpC,EAAaoC,EAAiB,GACvB,CAACF,EAAY5wS,GAAcA,GAAc,CAAC,EAAG4wS,GAAa,CAAC,EAAG,CACnEpC,SAAUA,EACVC,WAAYA,EACZC,WAAYA,EACZC,gBAAiBA,IACfiC,EAAWnmhB,OAAQ8lhB,EACzB,CACO,SAASQ,GAAmBjE,EAAQkE,EAAgBT,EAAYK,EAAYp1f,GAEjF,GAAe,aAAXsxf,GAD0B,SAAXA,EACwB,CAOzC,IANA,IAAI4D,EAAcE,EAIdK,EADsBpE,GAAaC,EAAQtxf,EAAQ,MAEnD01f,EAAa,CAACF,EAAgBT,GACzB7nhB,EAAI,EAAGA,EAAIwohB,EAAWvohB,OAAQD,GAAK,EAAG,CAC7C,IAAI+B,EAASukG,GAAQkib,EAAWxohB,IAAI,GACpC,GAAI2mhB,GAAe5khB,GAAS,CAC1BwmhB,EAAiBxmhB,EACjB,KACF,CACF,CAGA,IAAI+jhB,EAAWkC,EAAYlC,SACzBC,EAAaiC,EAAYjC,WACzBC,EAAagC,EAAYhC,WACzBC,EAAkB+B,EAAY/B,gBAE5BC,EAAeO,GAAU8B,EAAgB,CAAC,IAAK,IAAK,KAAM,MAAO,OADpDP,EAAY5B,YAEzBU,EAAgBF,GAAgBd,EAAUC,EAAYC,EAAYC,GAGjEa,IACHhB,EAAWW,GAAU8B,EAAgB,CAAC,IAAK,IAAK,IAAK,KAAM,QAC3DxC,EAAaU,GAAU8B,EAAgB,CAAC,IAAK,KAAM,QACnDvC,EAAaS,GAAU8B,EAAgB,CAAC,IAAK,QAC7CtC,EAAkBQ,GAAU8B,EAAgB,CAAC,SAK/C,IACIE,EAAmB/tS,GADAmsS,GAAeC,EAAehB,EAAUC,EAAYC,EAAYC,GAC/B,GACxDH,EAAW2C,EAAiB,GAC5B1C,EAAa0C,EAAiB,GAC9BzC,EAAayC,EAAiB,GAC9B,IAAIvkX,EAAaokX,GAAkBzC,GAAeC,EAAUC,EAAYC,EAAYC,EAAiBC,GAGrG,OAAO5uS,GAAcA,GAAc,CAAC,EAAG0wS,GAAc,CAAC,EAAG,CAEvDjmhB,OAAQmiK,EAER4hX,SAAUA,EACVC,WAAYA,EACZC,WAAYA,EACZC,gBAAiBA,EACjBG,WAAYF,GAEhB,CACA,OAAO,IACT,CCrJO,SAASwC,GAActwS,EAAW0uJ,EAAYe,GAInD,OAAmB,IAAff,EACK,MAEIA,GAAsC,YAAxBxlY,EAAAA,GAAAA,GAAQwlY,GAA2BA,EAAa,CAAC,GAC9De,WAAaA,GAA0Bl1K,EAAAA,cAAoB,OAAQ,CAC/EtsN,UAAW,GAAG/C,OAAO80O,EAAW,eAEpC,CCTA,SAASuwS,GAAgBC,EAAQC,EAAQC,GACvC,OAAKF,IAAWC,GAAUD,IAAWC,MAGhCD,IAAWC,IAGTC,GACT,CACO,SAASC,GAAaC,EAAgBC,EAASC,GACpD,OAAOP,GAAgBM,EAASC,GAAS,WAGvC,OAFW5ohB,KAAKC,MAAMyohB,EAAejsO,QAAQksO,GAAW,MAC7C3ohB,KAAKC,MAAMyohB,EAAejsO,QAAQmsO,GAAW,GAE1D,GACF,CACO,SAASC,GAAWH,EAAgBI,EAAOC,GAChD,OAAOV,GAAgBS,EAAOC,GAAO,WACnC,OAAOL,EAAejsO,QAAQqsO,KAAWJ,EAAejsO,QAAQssO,EAClE,GACF,CACO,SAASC,GAAWN,EAAgB70f,GAEzC,OADY7zB,KAAKC,MAAMyohB,EAAezzf,SAASpB,GAAQ,GACxC,CACjB,CAMO,SAASo1f,GAAYP,EAAgBQ,EAAQC,GAClD,OAAOd,GAAgBa,EAAQC,GAAQ,WACrC,OAAON,GAAWH,EAAgBQ,EAAQC,IAAWT,EAAezzf,SAASi0f,KAAYR,EAAezzf,SAASk0f,EACnH,GACF,CACO,SAASC,GAAWV,EAAgBxG,EAAOC,GAChD,OAAOkG,GAAgBnG,EAAOC,GAAO,WACnC,OAAO0G,GAAWH,EAAgBxG,EAAOC,IAAU8G,GAAYP,EAAgBxG,EAAOC,IAAUuG,EAAevzf,QAAQ+sf,KAAWwG,EAAevzf,QAAQgtf,EAC3J,GACF,CACO,SAASkH,GAAWX,EAAgBY,EAAOC,GAChD,OAAOlB,GAAgBiB,EAAOC,GAAO,WACnC,OAAOb,EAAepH,QAAQgI,KAAWZ,EAAepH,QAAQiI,IAAUb,EAAenH,UAAU+H,KAAWZ,EAAenH,UAAUgI,IAAUb,EAAelH,UAAU8H,KAAWZ,EAAelH,UAAU+H,EAChN,GACF,CAKO,SAASC,GAAgBd,EAAgBY,EAAOC,GACrD,OAAOlB,GAAgBiB,EAAOC,GAAO,WACnC,OAAOH,GAAWV,EAAgBY,EAAOC,IAAUF,GAAWX,EAAgBY,EAAOC,IAAUb,EAAejH,eAAe6H,KAAWZ,EAAejH,eAAe8H,EACxK,GACF,CACO,SAASE,GAAWf,EAAgBl2f,EAAQ0vf,EAAOC,GACxD,OAAOkG,GAAgBnG,EAAOC,GAAO,WACnC,IAAIuH,EAAiBhB,EAAel2f,OAAO8vf,iBAAiB9vf,EAAQ0vf,GAChEyH,EAAiBjB,EAAel2f,OAAO8vf,iBAAiB9vf,EAAQ2vf,GACpE,OAAO0G,GAAWH,EAAgBgB,EAAgBC,IAAmBjB,EAAel2f,OAAO+vf,QAAQ/vf,EAAQ0vf,KAAWwG,EAAel2f,OAAO+vf,QAAQ/vf,EAAQ2vf,EAC9J,GACF,CACO,SAASnsf,GAAO0yf,EAAgBl2f,EAAQpoB,EAAQb,EAAQ/D,GAC7D,OAAQA,GACN,IAAK,OACH,OAAO4jhB,GAAWV,EAAgBt+gB,EAAQb,GAC5C,IAAK,OACH,OAAOkghB,GAAWf,EAAgBl2f,EAAOA,OAAQpoB,EAAQb,GAC3D,IAAK,QACH,OAAO0/gB,GAAYP,EAAgBt+gB,EAAQb,GAC7C,IAAK,UACH,OA7CC,SAAuBm/gB,EAAgBkB,EAAUC,GACtD,OAAOxB,GAAgBuB,EAAUC,GAAU,WACzC,OAAOhB,GAAWH,EAAgBkB,EAAUC,IAAab,GAAWN,EAAgBkB,KAAcZ,GAAWN,EAAgBmB,EAC/H,GACF,CAyCaC,CAAcpB,EAAgBt+gB,EAAQb,GAC/C,IAAK,OACH,OAAOs/gB,GAAWH,EAAgBt+gB,EAAQb,GAC5C,IAAK,SACH,OAAOk/gB,GAAaC,EAAgBt+gB,EAAQb,GAC9C,IAAK,OACH,OAAO8/gB,GAAWX,EAAgBt+gB,EAAQb,GAC5C,QACE,OAAOighB,GAAgBd,EAAgBt+gB,EAAQb,GAErD,CAGO,SAASggc,GAAUm/E,EAAgBqB,EAAWC,EAASvlf,GAC5D,SAAKslf,GAAcC,GAAYvlf,KAGxBikf,EAAevyf,QAAQsO,EAASslf,IAAcrB,EAAevyf,QAAQ6zf,EAASvlf,GACvF,CACO,SAASkoI,GAAc+7W,EAAgBl2f,EAAQ0vf,EAAOC,EAAO38gB,GAClE,QAAIwwB,GAAO0yf,EAAgBl2f,EAAQ0vf,EAAOC,EAAO38gB,IAG1CkjhB,EAAevyf,QAAQ+rf,EAAOC,EACvC,CAWO,SAASjuP,GAAY92R,EAAOqsJ,GACjC,IAAIi/X,EAAiBj/X,EAAKi/X,eACxBl2f,EAASi3H,EAAKj3H,OACd/wB,EAASgoJ,EAAKhoJ,OAChB,OAAKrE,EAGoB,oBAAXqE,EAAwBA,EAAOrE,GAASsrhB,EAAel2f,OAAO/wB,OAAO+wB,EAAOA,OAAQp1B,EAAOqE,GAFhG,EAGX,CAKO,SAASwohB,GAASvB,EAAgB70f,EAAM0jC,GAC7C,IAAI2yd,EAAUr2f,EACVs2f,EAAQ,CAAC,UAAW,YAAa,YAAa,kBASlD,MARY,CAAC,UAAW,YAAa,YAAa,kBAC5C7qhB,SAAQ,SAAUsN,EAAI8B,GAExBw7gB,EADE3yd,EACQmxd,EAAe97gB,GAAIs9gB,EAASxB,EAAeyB,EAAMz7gB,IAAQ6oD,IAEzDmxd,EAAe97gB,GAAIs9gB,EAAS,EAE1C,IACOA,CACT,CC/HA,SAASE,GAAQhthB,GACf,IAAIithB,EAAWp8gB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAQ9E,OAPaokN,EAAAA,SAAc,WACzB,IAAI4sC,EAAO7hQ,EAAQ4oG,GAAQ5oG,GAASA,EAIpC,OAHIithB,GAAYprR,IACdA,EAAK,GAAKA,EAAK,IAAMA,EAAK,IAErBA,CACT,GAAG,CAAC7hQ,EAAOithB,GAEb,CAQe,SAASC,GAAej0e,EAAOg3B,GAC5C,IAAIq7c,EAAiBrye,EAAMqye,eACzBl2f,EAAS6jB,EAAM7jB,OACf+3f,EAAgBl0e,EAAMyte,OACtBA,OAA2B,IAAlByG,EAA2B,OAASA,EAC7ClvS,EAAmBhlM,EAAMyhM,UACzBA,OAAiC,IAArBuD,EAA8B,YAAcA,EACxDmvS,EAAgBn0e,EAAM/b,OACtBA,OAA2B,IAAlBkwf,EAA2B,CAAC,EAAIA,EACzCC,EAAoBp0e,EAAM27K,WAC1BA,OAAmC,IAAtBy4T,EAA+B,CAAC,EAAIA,EACjDC,EAAer0e,EAAM6O,MACrBA,OAAyB,IAAjBwle,GAAiCA,EACzCC,EAAoBt0e,EAAMkjO,WAC1BA,OAAmC,IAAtBoxQ,EAA+B,CAAC,EAAIA,EACjDC,EAAcv0e,EAAMu0e,YACpBpkJ,EAAanwV,EAAMmwV,WACnBe,EAAYlxV,EAAMkxV,UAClBsjJ,EAAcx0e,EAAMw0e,YACpBp4c,EAAWp8B,EAAMo8B,SACjBhxE,EAAS40C,EAAM50C,OACfqphB,EAAgBz0e,EAAMy0e,cACtBC,EAAe10e,EAAM00e,aACrBC,EAAU30e,EAAM20e,QAChBC,EAAU50e,EAAM40e,QAChB7D,EAAW/we,EAAM+we,SACjBhqhB,EAAQi5C,EAAMj5C,MACd2/B,EAAesZ,EAAMtZ,aACrBmuf,EAAc70e,EAAM60e,YACpBC,EAAqB90e,EAAM80e,mBACzBt2gB,EAASu1gB,GAAQhthB,GACjBguhB,EAAgBhB,GAAQrtf,GACxBsuf,EAAejB,GAAQc,GACvBI,EAAsBlB,GAAQe,GAI9BI,EAA4B,SAAXzH,GAAqBsD,EAAW,WAAatD,EAG9D0H,EAA+C,SAAnBD,GAAgD,aAAnBA,EACzDE,EAAgBD,GAA6B/4c,EAC7Ci5c,EAAoC,OAAhBb,QAAwC,IAAhBA,EAAyBA,EAAcW,EAMrFG,EAAiBvxS,GADC8sS,GAAa7we,GACgB,GAC/Cixe,EAAYqE,EAAe,GAC3BC,EAAkBD,EAAe,GACjC3D,EAAiB2D,EAAe,GAChCpE,EAAaoE,EAAe,GAG1B5nL,EAAezQ,GAAU9gU,EAAQo5f,GACjCC,EAAiBx5T,EAAAA,SAAc,WACjC,OAAO01T,GAAmBwD,EAAgBvD,EAAgBT,EAAYD,EAAWvjL,EACnF,GAAG,CAACwnL,EAAgBvD,EAAgBT,EAAYD,EAAWvjL,IAY3D,IAAI+nL,EAAcz5T,EAAAA,SAAc,WAC9B,OAAO2kB,GAAcA,GAAc,CAAC,EAAG3gM,GAAQ,CAAC,EAAG,CACjDyhM,UAAWA,EACXtlN,OAAQuxU,EACR+/K,OAAQA,EACRxpf,OAAQA,EACR03L,WAAYA,EACZ9sK,MAAOA,EACPq0N,WAAYviC,GAAc,CACxB33N,MAAOurgB,GACNrxQ,GACHguH,UAAW6gJ,GAActwS,EAAW0uJ,EAAYe,GAChD6/I,SAAUyE,EACVzuhB,MAAOyX,EACPkoB,aAAcquf,EACdF,YAAaG,EACbF,mBAAoBG,GACP,OAAZj+c,QAAgC,IAAZA,OAAqB,EAASA,IACvD,GAAG,CAACh3B,IAGA01e,ECtHC,SAAwBjI,EAAQtxf,EAAQ/wB,GAC7C,OAAO4wN,EAAAA,SAAc,WACnB,IACI61T,EAAalib,GADD69a,GAAaC,EAAQtxf,EAAQ/wB,IAEzCuqhB,EAAc9D,EAAW,GACzB+D,EAAsC,YAAzBjrhB,EAAAA,GAAAA,GAAQgrhB,IAAkD,SAArBA,EAAYxmhB,KAAkBwmhB,EAAYvqhB,OAAS,KACzG,MAAO,CAEPymhB,EAAWr8gB,KAAI,SAAUukC,GACvB,MAAyB,kBAAXA,GAAyC,oBAAXA,EAAwBA,EAASA,EAAO3uC,MACtF,IAEAwqhB,EACF,GAAG,CAACnI,EAAQtxf,EAAQ/wB,GACtB,CDwGwByqhB,CAAeX,EAAgBxnL,EAActiW,GACjE0qhB,EAAmB/xS,GAAe2xS,EAAiB,GACnD7D,EAAaiE,EAAiB,GAC9BF,EAAaE,EAAiB,GAG5BC,EE/HS,SAA0BlE,EAAY4C,EAAer4c,GAClE,QAA6B,oBAAlBy1c,EAAW,KAAqBz1c,IAGpCq4c,CACT,CF0H4BuB,CAAiBnE,EAAY4C,EAAer4c,GAGlE65c,EG7HS,SAA6B5D,EAAgBl2f,EAAQu4f,EAAcC,EAASC,GAazF,OAZyBlyS,IAAS,SAAUllN,EAAMm9G,GAChD,SAAI+5Y,IAAgBA,EAAal3f,EAAMm9G,QAGnCg6Y,IAAWtC,EAAevyf,QAAQ60f,EAASn3f,IAAUmC,GAAO0yf,EAAgBl2f,EAAQw4f,EAASn3f,EAAMm9G,EAAKxrI,WAGxGylhB,IAAWvC,EAAevyf,QAAQtC,EAAMo3f,IAAaj1f,GAAO0yf,EAAgBl2f,EAAQy4f,EAASp3f,EAAMm9G,EAAKxrI,MAI9G,GAEF,CH+G6B+mhB,CAAoB7D,EAAgBl2f,EAAQu4f,EAAcC,EAASC,GAG1F9F,GIhIS,SAAuBuD,EAAgB5E,EAAQiH,EAAc3D,GAiD1E,OA/CmBruS,IAAS,SAAUllN,EAAMm9G,GAC1C,IAAIw7Y,EAAcx1S,GAAc,CAC9BxxO,KAAMs+gB,GACL9yY,GAEH,UADOw7Y,EAAYxzH,aAGlB0vH,EAAetG,WAAWvuf,IAE3Bk3f,GAAgBA,EAAal3f,EAAM24f,GACjC,OAAO,EAET,IAAgB,SAAX1I,GAAgC,SAAXA,IAAsBsD,EAAU,CACxD,IAAIqF,EACA56f,EAAQm/G,GAA6B,IAArBA,EAAKgoR,YAAoB,MAAQ,QACjDvvQ,GAA4D,QAAnDgjY,EAAwBrF,EAASsF,oBAAoD,IAA1BD,OAAmC,EAASA,EAAsBluhB,KAAK6ohB,EAAUvzf,EAAMhC,EAAO,CAClK1oB,KAAMqjhB,EAAYrjhB,SACb,CAAC,EACRwjhB,EAAgBljY,EAAKkjY,cACrBC,EAAkBnjY,EAAKmjY,gBACvBC,EAAkBpjY,EAAKojY,gBACvBC,EAAuBrjY,EAAKqjY,qBAC1BC,EAAsB3F,EAASuF,cACjCK,EAAwB5F,EAASwF,gBACjCK,EAAwB7F,EAASyF,gBAC/BK,EAAsBP,GAAiBI,EACvCI,EAAwBP,GAAmBI,EAC3CI,EAAwBP,GAAmBI,EAC3C36X,EAAOo2X,EAAepH,QAAQztf,GAC9B6+H,EAASg2X,EAAenH,UAAU1tf,GAClCjT,EAAS8ngB,EAAelH,UAAU3tf,GAClC2+H,EAAck2X,EAAejH,eAAe5tf,GAChD,GAAIq5f,GAAuBA,IAAsBv+gB,SAAS2jJ,GACxD,OAAO,EAET,GAAI66X,GAAyBA,EAAsB76X,GAAM3jJ,SAAS+jJ,GAChE,OAAO,EAET,GAAI06X,GAAyBA,EAAsB96X,EAAMI,GAAQ/jJ,SAASiS,GACxE,OAAO,EAET,GAAIksgB,GAAwBA,EAAqBx6X,EAAMI,EAAQ9xI,GAAQjS,SAAS6jJ,GAC9E,OAAO,CAEX,CACA,OAAO,CACT,GAEF,CJ8EyB66X,CAAc3E,EAAgB5E,EAAQwI,EAAsBT,GAUnF,MAAO,CAPWx5T,EAAAA,SAAc,WAC9B,OAAO2kB,GAAcA,GAAc,CAAC,EAAG80S,GAAc,CAAC,EAAG,CACvDjB,YAAaa,EACbZ,cAAesB,EACfrB,aAAcuB,GAElB,GAAG,CAACR,EAAaJ,EAAmBU,EAAqBE,IACpCf,EAAgBE,EAAevD,EAAY+D,EAAY9G,GAC9E,CKzIe,SAASmI,GAAQvvgB,EAAMm+S,GACpC,IACInkD,EAAe9pQ,UAAUtO,OAAS,EAAIsO,UAAU,QAAKxC,EAOrD8hhB,ECPS,SAAuBnwhB,EAAO2/B,EAAcyiN,GACzD,IAGEw8B,EAAmB5hC,GAHCkF,GAAeviN,EAAc,CAC/C3/B,MAAOA,IAE0C,GACnDyL,EAAQmzQ,EAAiB,GACzBtnK,EAAWsnK,EAAiB,GAC1BwxQ,EAAen7T,EAAAA,OAAaj1N,GAG5B+qP,EAAS91B,EAAAA,SACT29L,EAAY,WACd72K,GAAIv0I,OAAOujJ,EAAO1jN,QACpB,EACI83O,EAAWxjC,IAAS,WACtBrkI,EAAS84a,EAAa/of,SAClB+6M,GAAY32O,IAAU2khB,EAAa/of,SACrC+6M,EAASguS,EAAa/of,QAE1B,IACI6nR,EAAcvzE,IAAS,SAAUrmO,EAAM+6gB,GACzCz9H,IACAw9H,EAAa/of,QAAU/xB,EACnBA,GAAQ+6gB,EACVlxQ,IAEAp0B,EAAO1jN,QAAU00M,GAAIojC,EAEzB,IAIA,OAHAlqD,EAAAA,WAAgB,WACd,OAAO29L,CACT,GAAG,IACI,CAACnnZ,EAAOyjT,EACjB,CD1BuBohO,GARFz/gB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,IAEzD4B,OAAM,SAAU2yC,GAC5C,OAAOA,CACT,KAAazkC,EAIkCm+S,IAAe,EAAOnkD,GACnE41Q,EAAkBvzS,GAAemzS,EAAgB,GACjDK,EAAUD,EAAgB,GAC1BE,EAAaF,EAAgB,GAO/B,MAAO,CAACC,EANR,SAAiBl7gB,GACf,IAAI09B,EAASniC,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7EmiC,EAAO9nC,UAAWslhB,GACrBC,EAAWn7gB,EAAM09B,EAAOynP,MAE5B,EAEF,CE1Be,SAASi2P,GAAa/3e,GACnC,IAAIkuW,EAAc5xL,EAAAA,SAelB,OAdAA,EAAAA,oBAA0Bt8K,GAAK,WAC7B,IAAI6uW,EACJ,MAAO,CACLv2K,cAAgE,QAAhDu2K,EAAuBX,EAAYx/W,eAA8C,IAAzBmgX,OAAkC,EAASA,EAAqBv2K,cACxIt8M,MAAO,SAAerwB,GACpB,IAAImjZ,EAC8C,QAAjDA,EAAwBZ,EAAYx/W,eAA+C,IAA1BogX,GAAoCA,EAAsB9yX,MAAMrwB,EAC5H,EACAiwB,KAAM,WACJ,IAAIs2X,EAC8C,QAAjDA,EAAwBhE,EAAYx/W,eAA+C,IAA1BwjX,GAAoCA,EAAsBt2X,MACtH,EAEJ,IACOsyX,CACT,CCfe,SAAS8pI,GAAWC,EAASC,GAC1C,OAAO57T,EAAAA,SAAc,WACnB,OAAI27T,IAGAC,GACF7wT,IAAQ,EAAO,yDACR54N,OAAOoQ,QAAQq5gB,GAAcpihB,KAAI,SAAU49I,GAChD,IAAIyxB,EAAQk/D,GAAe3wF,EAAM,GAGjC,MAAO,CACLnyC,MAHQ4jE,EAAM,GAId99K,MAHQ89K,EAAM,GAKlB,KAEK,GACT,GAAG,CAAC8yW,EAASC,GACf,CCde,SAASC,GAAc1/S,EAAWhlN,GAC/C,IAAI2kgB,EAAclghB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EAClFy5c,EAAcr1P,EAAAA,OAAa7oM,GAC/Bk+b,EAAYjjb,QAAUjb,EACtBkuN,IAAsB,WACpB,IAAIlJ,EAEG,CACL,IAAIvsN,EAAKk3N,IAAI,WACXuuO,EAAYjjb,QAAQ+pM,EACtB,GAAG2/S,GACH,OAAO,WACLh1S,GAAIv0I,OAAO3iF,EACb,CACF,CAREylc,EAAYjjb,QAAQ+pM,EASxB,GAAG,CAACA,GACN,CChBe,SAAS4/S,GAAe5re,GACrC,IAAI2oG,EAAQl9I,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GAC5Es7P,EAAat7P,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAE9EksO,EAAmBC,GADC/nB,EAAAA,SAAe,GACgB,GACnD2mM,EAAc7+K,EAAiB,GAC/B8+K,EAAiB9+K,EAAiB,GAElCkQ,EAAmBjQ,GADE/nB,EAAAA,UAAe,GACgB,GACpDk0K,EAAUl8I,EAAiB,GAC3B2+I,EAAa3+I,EAAiB,GAC5BgkS,EAAgBh8T,EAAAA,OAAa,IAC7Bi8T,EAAiBj8T,EAAAA,OAAa,MAC9Bk8T,EAAmBl8T,EAAAA,OAAa,MAChCm8T,EAAoB,SAA2B9/gB,GACjD4/gB,EAAe7pf,QAAU/1B,CAC3B,EA2CA,OAXAw/gB,GAAc3nJ,GAAWh9H,GAAY,WAC9Bg9H,IACH8nJ,EAAc5pf,QAAU,GACxB+pf,EAAkB,MAEtB,IACAn8T,EAAAA,WAAgB,WACVk0K,GACF8nJ,EAAc5pf,QAAQpkC,KAAK24Z,EAE/B,GAAG,CAACzyB,EAASyyB,IACN,CAACzyB,EAvCW,SAAsBkoJ,GACvCzlJ,EAAWylJ,EACb,EAGoB,SAAuBjphB,GAIzC,OAHIA,IACF+ohB,EAAiB9pf,QAAUj/B,GAEtB+ohB,EAAiB9pf,OAC1B,EA6B8Cu0X,EAAaC,EAzBrC,SAAyB1+K,GAC7C,IAAI0kB,EAAOovR,EAAc5pf,QACrBiqf,EAAkB,IAAIp1e,IAAI2lN,EAAKtvP,QAAO,SAAUjB,GAClD,OAAO6rO,EAAU7rO,IAAUy8I,EAAMz8I,EACnC,KACIoyG,EAAsC,IAA1Bm+I,EAAKA,EAAKt/P,OAAS,GAAW,EAAI,EAClD,OAAI+uhB,EAAgB7tgB,MAAQ,GAAK2hC,EAASs+D,GACjC,KAEFA,CACT,EAe4Futa,EAAc5pf,QAAS+pf,EA1CxF,SAA8B9/gB,GACvD,OAAO4/gB,EAAe7pf,UAAY/1B,CACpC,EAyCF,CC/DO,SAASighB,GAAgBjG,EAAgB5E,EAAQjwf,EAAMylC,GAC5D,OAAQwqd,GACN,IAAK,OACL,IAAK,OACH,OAAO4E,EAAe/G,SAAS9tf,EAAMylC,GACvC,IAAK,QACL,IAAK,UACH,OAAOovd,EAAehH,QAAQ7tf,EAAMylC,GACtC,IAAK,OACH,OAAOovd,EAAehH,QAAQ7tf,EAAe,GAATylC,GACtC,IAAK,SACH,OAAOovd,EAAehH,QAAQ7tf,EAAe,IAATylC,GACtC,QACE,OAAOzlC,EAEb,CACA,IAAI+6N,GAAa,GACF,SAASggS,GAAoBlG,EAAgBl2f,EAAQ0yf,EAAe2J,EAAO9wgB,EAAMi7Y,EAAa81H,EAAYC,GACvH,IAAI5D,EAAqBl9gB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK2gP,GAEzFogS,EAAmB/ghB,UAAUtO,OAAS,SAAwB8L,IAAlBwC,UAAU,IAAoBA,UAAU,IAAM2gP,GAC1FqgS,EAAsBhhhB,UAAUtO,OAAS,GAAKsO,UAAU,SAAMxC,EAC9Du/gB,EAAU/8gB,UAAUtO,OAAS,GAAKsO,UAAU,SAAMxC,EAClDw/gB,EAAUh9gB,UAAUtO,OAAS,GAAKsO,UAAU,SAAMxC,EAClDyjhB,EAA8B,SAAfJ,EAIfrK,EAAoBzrH,GAAe,EAGnCm2H,EAAwB,SAA+BzghB,GACzD,IAAIyiD,EAAMu3d,EAAezH,SAIzB,OAHIiO,IACF/9d,EAAM84d,GAASvB,EAAgBv3d,IAE1Bg6d,EAAmBz8gB,IAAUw2gB,EAAcx2gB,IAAUyiD,CAC9D,EAGIi+d,EAAeh1S,GArBDnsO,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK2gP,GAqBvC,GAC7CygS,EAAmBD,EAAa,GAChCE,EAAiBF,EAAa,GAQ9BpzQ,EAAmB5hC,GALCkF,IAAe,WACjC,OAAO6vS,EAAsB,EAC/B,GAAG,CACD/xhB,MAAOiyhB,IAE0C,GACnDE,EAAyBvzQ,EAAiB,GAC1CwzQ,EAAsBxzQ,EAAiB,GAMvCyB,EAAmBrjC,GALEkF,IAAe,WAClC,OAAO6vS,EAAsB,EAC/B,GAAG,CACD/xhB,MAAOkyhB,IAE2C,GACpDG,EAAuBhyQ,EAAiB,GACxCiyQ,EAAoBjyQ,EAAiB,GAGnCkyQ,EAAqBt9T,EAAAA,SAAc,WACrC,IAAI5tL,EAAU,CAAC8qf,EAAwBE,GAAsBhL,GAG7D,OAAOyK,EAAezqf,EAAUwlf,GAASvB,EAAgBjkf,EAASuqf,EAAiBvK,GACrF,GAAG,CAACyK,EAAcK,EAAwBE,EAAsBhL,EAAmBiE,EAAgBsG,IAC/FY,EAAwB,SAA+BC,GACzD,IAAIzlhB,EAAS6D,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,SAEjFo/D,EADc,CAACmid,EAAqBE,GAAmBjL,IAC/CoL,GACR,IAAIvphB,EAAQ,CAACiphB,EAAwBE,GACrCnphB,EAAMm+gB,GAAqBoL,GACvBZ,GAAyBj5f,GAAO0yf,EAAgBl2f,EAAQ+8f,EAAwBjphB,EAAM,GAAIwohB,IAAgB94f,GAAO0yf,EAAgBl2f,EAAQi9f,EAAsBnphB,EAAM,GAAIwohB,IAC3KG,EAAoB3ohB,EAAO,CACzB8D,OAAQA,EACRynB,MAA6B,IAAtB4yf,EAA0B,MAAQ,QACzCjihB,KAAMqshB,GAGZ,EAoCIiB,EAAqBz9T,EAAAA,OAAa,MA8DtC,OA7DA1mJ,IAAgB,WACd,GAAI5tD,IACGotgB,EAAmB1G,GAAoB,CAC1C,IAAIoL,EAAkBX,EAAe,KAAOxG,EAAezH,SAwB3D,GAZmC,OAA/B6O,EAAmBrrf,SAAoBqrf,EAAmBrrf,UAAYggf,EAExEoL,EAAkB,CAACN,EAAwBE,GAA0C,EAApBhL,GACxDS,EAAcT,GAEvBoL,EAAwC,IAAtBpL,EAA0BS,EAAc,GAhDtC,SAA+B6E,EAAWC,GACpE,GAAI+E,EAAe,CAEjB,IAMIvshB,EANe,CACjBqxB,KAAM,QACN2jC,KAAM,QACNzjC,MAAO,OACP6+H,QAAS,QAEak8X,GACxB,GAAItshB,IAASwzB,GAAO0yf,EAAgBl2f,EAAQu3f,EAAWC,EAASxnhB,GAC9D,OAAOmshB,GAAgBjG,EAAgBoG,EAAY9E,GAAU,GAI/D,GAAmB,SAAf8E,GAAyB/E,GACb/phB,KAAKC,MAAMyohB,EAAejsO,QAAQstO,GAAa,MAC/C/phB,KAAKC,MAAMyohB,EAAejsO,QAAQutO,GAAW,IAEzD,OAAO2E,GAAgBjG,EAAgBoG,EAAY9E,GAAU,EAGnE,CACA,OAAOA,CACT,CAwBuE+F,CAAsB7K,EAAc,GAAIA,EAAc,IAC5GA,EAAkC,EAApBT,KAEvBoL,EAAkB3K,EAAkC,EAApBT,IAI9BoL,EAAiB,CAEf7E,GAAWtC,EAAevyf,QAAQ60f,EAAS6E,KAC7CA,EAAkB7E,GAIpB,IAAIgF,EAAoBjB,EAAgBJ,GAAgBjG,EAAgBoG,EAAYe,EAAiB,GAAKA,EACtG5E,GAAWvC,EAAevyf,QAAQ65f,EAAmB/E,KACvD4E,EAAkBd,EAAgBJ,GAAgBjG,EAAgBoG,EAAY7D,GAAU,GAAKA,GAE/F2E,EAAsBC,EAAiB,QACzC,CACF,CAEJ,GAAG,CAAC9xgB,EAAM0mgB,EAAmBS,EAAcT,KAG3CpyT,EAAAA,WAAgB,WAEZy9T,EAAmBrrf,QADjB1mB,EAC2B0mgB,EAEA,IAEjC,GAAG,CAAC1mgB,EAAM0mgB,IAGV94c,IAAgB,WACV5tD,GAAQotgB,GACNA,EAAmB1G,IACrBmL,EAAsBzE,EAAmB1G,GAAoB,QAGnE,GAAG,CAAC1mgB,EAAM0mgB,IACH,CAACkL,EAAoBC,EAC9B,CClLe,SAAS51R,GAAaj9N,EAAckzf,GACjD,IAAIzrD,EAAWnyQ,EAAAA,OAAat1L,GAG1B43E,EADmBylI,GADC/nB,EAAAA,SAAe,CAAC,GACe,GACpB,GAC7B1hM,EAAS,SAAgBu/f,GAC3B,OAAOA,QAA+CzkhB,IAApBwkhB,EAAgCA,EAAkBzrD,EAAS//b,OAC/F,EAKA,MAAO,CAAC9T,EAJK,SAAgB4pN,GAC3BiqP,EAAS//b,QAAU81M,EACnB5lI,EAAY,CAAC,EACf,EACwBhkF,GAAO,GACjC,CCbA,IAAIw/f,GAAc,GAuBlB,SAASC,GAAQ1H,EAAgBl2f,EAAQ01f,GAuBvC,MAAO,CAtBY,SAAsBt2X,GACvC,OAAOA,EAAM/lJ,KAAI,SAAUgoB,GACzB,OAAOqgQ,GAAYrgQ,EAAM,CACvB60f,eAAgBA,EAChBl2f,OAAQA,EACR/wB,OAAQymhB,EAAW,IAEvB,GACF,EACkB,SAAqB99gB,EAAQb,GAG7C,IAFA,IAAIktZ,EAASz2Z,KAAKwhB,IAAIpX,EAAOzK,OAAQ4J,EAAO5J,QACxCsqZ,GAAa,EACRvqZ,EAAI,EAAGA,EAAI+2Z,EAAQ/2Z,GAAK,EAAG,CAClC,IAAI07B,EAAOhxB,EAAO1K,IAAM,KACpBgT,EAAOnJ,EAAO7J,IAAM,KACxB,GAAI07B,IAAS1oB,IAAS82gB,GAAgBd,EAAgBttf,EAAM1oB,GAAO,CACjEu3Y,EAAYvqZ,EACZ,KACF,CACF,CACA,MAAO,CAACuqZ,EAAY,EAAiB,IAAdA,EACzB,EAEF,CACA,SAASomI,GAAWz+X,EAAO82X,GACzB,OAAOlnS,GAAmB5vF,GAAOv+H,MAAK,SAAU3a,EAAGC,GACjD,OAAO+vgB,EAAevyf,QAAQzd,EAAGC,GAAK,GAAK,CAC7C,GACF,CA0BO,SAAS23gB,GAAc5H,EAAgBl2f,EAAQ01f,EACtDqI,EAMArre,EAAOnoB,EAAc3/B,EAAOozhB,EAAkBl7L,GAE5C,IAGEt5E,EAAmB5hC,GAHCkF,GAAeviN,EAAc,CAC/C3/B,MAAOA,IAE0C,GACnDsiP,EAAas8B,EAAiB,GAC9Br8B,EAAgBq8B,EAAiB,GAC/Bp8B,EAAcF,GAAcywS,GAG5BM,EAtCN,SAA0B7wS,GACxB,IACEqa,EAAiB7f,GADC4f,GAAapa,GACgB,GAC/CslS,EAAgBjrR,EAAe,GAC/By2R,EAAmBz2R,EAAe,GAGhC02R,EAAgB53S,IAAS,WAC3B23S,EAAiB9wS,EACnB,IAIA,OAHAvtB,EAAAA,WAAgB,WACds+T,GACF,GAAG,CAAC/wS,IACG,CAACslS,EAAewL,EACzB,CAwB0BE,CAAiBhxS,GACvCixS,EAAqBz2S,GAAeq2S,EAAmB,GACvDvL,EAAgB2L,EAAmB,GACnCH,EAAmBG,EAAmB,GAItCC,EAAY12S,GADCg2S,GAAQ1H,EAAgBl2f,EAAQ01f,GACR,GACrC6I,EAAeD,EAAU,GACzBE,EAAcF,EAAU,GACtBG,EAAwBl4S,IAAS,SAAUm4S,GAC7C,IAAI5qhB,EAAQk7O,GAAmB0vS,GAC/B,GAAIX,EACF,IAAK,IAAI7whB,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAC1B4G,EAAM5G,GAAK4G,EAAM5G,IAAM,UAEhBwlD,IACT5+C,EAAQ+phB,GAAW/phB,EAAMqJ,QAAO,SAAUkkB,GACxC,OAAOA,CACT,IAAI60f,IAIN,IACEyI,EAAgB/2S,GADC42S,EAAY9L,IAAiB5+gB,GACD,GAC7C8qhB,EAAoBD,EAAc,GAClCE,EAAcF,EAAc,GAC9B,IAAKC,IACHV,EAAiBpqhB,GAGbkqhB,GAAkB,CACpB,IAAIc,EAAYP,EAAazqhB,GAC7BkqhB,EAAiBlqhB,EAAOgrhB,EAAW,CACjCz/f,MAAOw/f,EAAc,MAAQ,SAEjC,CAEJ,IAMA,MAAO,CAACzxS,EAAaD,EAAeulS,EAAe+L,EALnC,WACV37L,GACFA,EAAK4vL,IAET,EAEF,CACe,SAASqM,GAAcvgZ,EAAM4uG,EAAaD,EAAe6xS,EAAkBP,EAAuBzue,EAAU0le,EAAY3hJ,EAASxoX,EAAMongB,GACpJ,IAAIuD,EAAiB13Y,EAAK03Y,eACxBl2f,EAASw+G,EAAKx+G,OACdsxf,EAAS9yY,EAAK8yY,OACdtkS,EAAWxuG,EAAKwuG,SAChB4lS,EAAap0Y,EAAKo0Y,WAClBlge,EAAQ8rF,EAAK9rF,MACXuse,GAAgBjve,EAAS5yC,MAAK,SAAUxK,GAC1C,OAAOA,CACT,KAAa8/C,EAIXwse,EAAYt3S,GADEg2S,GAAQ1H,EAAgBl2f,EAAQ01f,GACR,GACtC6I,EAAeW,EAAU,GACzBV,EAAcU,EAAU,GAMxBvmE,EAAiB/wO,GADE4f,GAAapa,GACgB,GAChD+xS,EAAcxmE,EAAe,GAC7BymE,EAAiBzmE,EAAe,GAG9BwlE,EAAgB53S,IAAS,WAC3B64S,EAAehyS,EACjB,IACAvtB,EAAAA,WAAgB,WACds+T,GACF,GAAG,CAAC/wS,IAGJ,IAAIiyS,EAAgB94S,IAAS,SAAUwB,GACrC,IAAIu3S,EAA4B,OAAdv3S,EACdj0O,EAAQk7O,GAAmBjH,GAAao3S,KAG5C,GAAIG,EAEF,IADA,IAAIr7H,EAASz2Z,KAAKwhB,IAAIghC,EAAS7iD,OAAQ2G,EAAM3G,QACpCD,EAAI,EAAGA,EAAI+2Z,EAAQ/2Z,GAAK,EAC1B8iD,EAAS9iD,KACZ4G,EAAM5G,GAAK,MAMb+xhB,GAAiBnrhB,EAAM,IAAMA,EAAM,KACrCA,EAAQ+phB,GAAW/phB,EAAOoihB,IAI5BuI,EAAsB3qhB,GAGtB,IACEyrhB,EAAU33S,GADC9zO,EACsB,GACjC+a,EAAQ0wgB,EAAQ,GAChBzwgB,EAAMywgB,EAAQ,GAGZC,GAAc3wgB,EACd4wgB,GAAY3wgB,EACZ4wgB,GAAyB9M,KAE3B4M,GAAc5M,EAAW,OAE1B6M,GAAY7M,EAAW,IAGpB+M,GAAiBjte,GAAS8se,GAAcC,GAAYj8f,GAAO0yf,EAAgBl2f,EAAQnR,EAAOC,EAAKwigB,IAAW4E,EAAevyf,QAAQ7U,EAAKD,GAGtI+wgB,GAEH5ve,EAAS,KAAOnhC,IAAU8jgB,EAAiB9jgB,EAAO,CACjD23Y,YAAa,OAGfx2W,EAAS,KAAOlhC,IAAQ6jgB,EAAiB7jgB,EAAK,CAC5CnY,KAAMkY,EACN23Y,YAAa,KAGX6iG,EAEJi2B,GAEAI,GAA0BC,GAAiBC,EAC3C,GAAIv2B,EAAW,CAEbl8Q,EAAcr5O,GACd,IAEE8qhB,EADgBh3S,GADE42S,EAAY1qhB,EAAOs5O,GACS,GACZ,GAGhCJ,IAAa4xS,GACf5xS,EAEAsyS,GAAexrhB,EAAMuJ,OAAM,SAAU1I,GACnC,OAAQA,CACV,IAAK,KAAOb,EAAOyqhB,EAAazqhB,GAEpC,CACA,OAAOu1f,CACT,IAGIw2B,EAAct5S,IAAS,SAAUrqO,EAAO4jhB,GAC1C,IAAIC,EAAkB5O,GAAUgO,IAAejjhB,EAAO8ihB,IAAmB9ihB,IACzEkjhB,EAAeW,GACXD,GACFT,GAEJ,IAIIW,GAAuBjsJ,IAAYxoX,EAgBvC,OAfAmwgB,IAAesE,GAAqB,WAC9BA,IAEFX,IAIAZ,EAAsBrxS,GAGtB+wS,IAEJ,GAAG,GAGI,CAAC0B,EAAaR,EACvB,CChSe,SAASY,GAAW3O,EAAQthhB,EAAMkwhB,EAASC,EAAWx/M,GACnE,OAAa,SAAT3wU,GAA4B,SAATA,UAGPiJ,IAAZinhB,EACKA,OAISjnhB,IAAdknhB,EACKA,GAEDx/M,IAA2B,SAAX2wM,GAAgC,SAAXA,GAC/C,CCPA,SAAS8O,KACP,MAAO,EACT,CACA,SAASC,GAAcxxgB,EAAOC,GAO5B,IANA,IAAIs9D,EAAO3wE,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EAC3E6khB,EAAsB7khB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GACrF8khB,EAAgB9khB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GACpFnJ,EAAMmJ,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EAC1EulJ,EAAQ,GACRw/X,EAAcp0c,GAAQ,EAAW,EAAPA,EAAW,EAChCl/E,EAAI2hB,EAAO3hB,GAAK4hB,EAAK5hB,GAAKszhB,EAAa,CAC9C,IAAIxwe,EAAWuwe,EAAcpkhB,SAASjP,GACjC8iD,GAAaswe,GAChBt/X,EAAMnzJ,KAAK,CACTi3G,MAAOosa,GAAQhkhB,EAAGoF,GAClB1H,MAAOsC,EACP8iD,SAAUA,GAGhB,CACA,OAAOgxG,CACT,CAKe,SAASy/X,GAAYvK,GAClC,IACI70f,EAAO5lB,UAAUtO,OAAS,EAAIsO,UAAU,QAAKxC,EAC7Cg+I,GAFQx7I,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,IAE7D,CAAC,EACnB63gB,EAAar8X,EAAKq8X,WAClBoN,EAAgBzpY,EAAK0pY,SACrBA,OAA6B,IAAlBD,EAA2B,EAAIA,EAC1CE,EAAkB3pY,EAAK4pY,WACvBA,OAAiC,IAApBD,EAA6B,EAAIA,EAC9CE,EAAkB7pY,EAAK8pY,WACvBA,OAAiC,IAApBD,EAA6B,EAAIA,EAC9CE,EAAuB/pY,EAAKgqY,gBAC5BA,OAA2C,IAAzBD,EAAkC,IAAMA,EAC1DV,EAAsBrpY,EAAKqpY,oBAC3BpG,EAAejjY,EAAKijY,aACpBC,EAAgBljY,EAAKkjY,cACrBC,EAAkBnjY,EAAKmjY,gBACvBC,EAAkBpjY,EAAKojY,gBACrB6G,EAAarhU,EAAAA,SAAc,WAC7B,OAAOx+L,GAAQ60f,EAAezH,QAChC,GAAG,CAACptf,EAAM60f,IAaNiL,EAAmBthU,EAAAA,aAAkB,SAAUuhU,GACjD,IAAIC,GAAmC,OAAjBnH,QAA0C,IAAjBA,OAA0B,EAASA,EAAakH,KAAgB,CAAC,EAChH,MAAO,CAACC,EAAelH,eAAiBA,GAAiBiG,GAAeiB,EAAejH,iBAAmBA,GAAmBgG,GAAeiB,EAAehH,iBAAmBA,GAAmB+F,GAAeiB,EAAe/G,sBAAwB8F,GACzP,GAAG,CAAClG,EAAcC,EAAeC,EAAiBC,IAIhDjxQ,EAAkBxhC,GAHC/nB,EAAAA,SAAc,WAC/B,OAAOshU,EAAiBD,EAC1B,GAAG,CAACA,EAAYC,IACiC,GACjDzG,EAAsBtxQ,EAAgB,GACtCuxQ,EAAwBvxQ,EAAgB,GACxCwxQ,EAAwBxxQ,EAAgB,GACxCk4Q,EAA6Bl4Q,EAAgB,GAG3Cm4Q,EAAc1hU,EAAAA,aAAkB,SAAU2hU,EAAkBC,EAAoBC,EAAoBC,GACtG,IAAI9hY,EAAQwgY,GAAc,EAAG,GAAIM,EAAUL,EAAqBkB,KAuBhE,MAAO,CApBYlO,EAAazzX,EAAMxmJ,KAAI,SAAUrK,GAClD,OAAOw1O,GAAcA,GAAc,CAAC,EAAGx1O,GAAO,CAAC,EAAG,CAChD81G,MAAOosa,GAAQlihB,EAAKpE,MAAQ,IAAM,GAAI,IAE1C,IAAKi1J,EAGgB,SAAwB+hY,GAC3C,OAAOvB,GAAc,EAAG,GAAIQ,EAAYP,EAAqBmB,EAAmBG,GAClF,EAGqB,SAAwBA,EAAUC,GACrD,OAAOxB,GAAc,EAAG,GAAIU,EAAYT,EAAqBoB,EAAmBE,EAAUC,GAC5F,EAG0B,SAA6BD,EAAUC,EAAYC,GAC3E,OAAOzB,GAAc,EAAG,IAAKY,EAAiBX,EAAqBqB,EAAwBC,EAAUC,EAAYC,GAAa,EAChI,EAEF,GAAG,CAACxB,EAAqBK,EAAUrN,EAAY2N,EAAiBJ,EAAYE,IAI1E52Q,EAAkBviC,GAHE/nB,EAAAA,SAAc,WAChC,OAAO0hU,EAAY7G,EAAqBC,EAAuBC,EAAuB0G,EACxF,GAAG,CAACC,EAAa7G,EAAqBC,EAAuBC,EAAuB0G,IAClC,GAClDS,EAAe53Q,EAAgB,GAC/B63Q,EAAiB73Q,EAAgB,GACjC83Q,EAAiB93Q,EAAgB,GACjC+3Q,EAAsB/3Q,EAAgB,GAoCxC,MAAO,CA9BY,SAAsBg4Q,EAAUC,GACjD,IAAIC,EAAoB,WACtB,OAAON,CACT,EACIO,EAAsBN,EACtBO,EAAsBN,EACtBO,EAA2BN,EAC/B,GAAIE,EAAa,CACf,IACEK,EAAqB76S,GADCu5S,EAAiBiB,GACgB,GACvDM,EAAsBD,EAAmB,GACzCE,EAAwBF,EAAmB,GAC3CG,EAAwBH,EAAmB,GAC3CI,EAA6BJ,EAAmB,GAEhDK,EAAgBl7S,GADC25S,EAAYmB,EAAqBC,EAAuBC,EAAuBC,GACnD,GAC7CE,EAAqBD,EAAc,GAIrCT,EAAoB,WAClB,OAAOU,CACT,EACAT,EANyBQ,EAAc,GAOvCP,EANyBO,EAAc,GAOvCN,EAN8BM,EAAc,EAO9C,CACA,IAAIE,EChJD,SAA0B3hgB,EAAM4hgB,EAAcjB,EAAgBC,EAAgBC,EAAqBhM,GACxG,IAAIgN,EAAW7hgB,EACf,SAAS8hgB,EAActrE,EAAcurE,EAAcpiY,GACjD,IAAI+mF,EAAYmuS,EAAer+D,GAAcqrE,GACzCG,EAAWriY,EAAM1jJ,MAAK,SAAUtO,GAClC,OAAOA,EAAKpE,QAAUm9O,CACxB,IACA,IAAKs7S,GAAYA,EAASrze,SAAU,CAElC,IAAIsze,EAAgBtiY,EAAM7jJ,QAAO,SAAUnO,GACzC,OAAQA,EAAKghD,QACf,IAEIuze,EADsBv0S,GAAmBs0S,GAAelrc,UACrB96E,MAAK,SAAUtO,GACpD,OAAOA,EAAKpE,OAASm9O,CACvB,KAAMu7S,EAAc,GAChBC,IACFx7S,EAAYw7S,EAAa34hB,MACzBs4hB,EAAWhN,EAAekN,GAAcF,EAAUn7S,GAEtD,CACA,OAAOA,CACT,CAGA,IAAI65S,EAAWuB,EAAc,UAAW,UAAWF,KAG/CpB,EAAasB,EAAc,YAAa,YAAanB,EAAeJ,IAGpEE,EAAaqB,EAAc,YAAa,YAAalB,EAAeL,EAAUC,IAIlF,OADAsB,EAAc,iBAAkB,iBAAkBjB,EAAoBN,EAAUC,EAAYC,IACrFoB,CACT,CD4GuBM,CAAiBrB,EAAUE,EAAmBC,EAAqBC,EAAqBC,EAA0BtM,GACrI,OAAO8M,CACT,EAKAjB,EAAcC,EAAgBC,EAAgBC,EAChD,CEpJe,SAASx1L,GAAO7oT,GAC7B,IAAI7zC,EAAO6zC,EAAM7zC,KACfu6Q,EAAe1mO,EAAM0mO,aACrBk5Q,EAAoB5/e,EAAM4/e,kBAC1BvD,EAAUr8e,EAAMq8e,QAChBtL,EAAW/we,EAAM+we,SACjBz2N,EAAWt6Q,EAAMs6Q,SACjBulO,EAAQ7/e,EAAM6/e,MACd5qX,EAAUj1H,EAAMi1H,QAChBu/W,EAAcx0e,EAAMw0e,YACpBnC,EAAiBrye,EAAMqye,eACvBqC,EAAe10e,EAAM00e,aACnBp/R,EAAoBt5B,EAAAA,WAAiBkxT,IACvCzrS,EAAY6T,EAAkB7T,UAC9BtlN,EAASm5N,EAAkBn5N,OAC3B2jgB,EAAwBxqS,EAAkBr5L,OAC1Cq2I,OAAmC,IAA1BwtV,EAAmC,SAAWA,EAGrDhle,EAAMu3d,EAAezH,SAGvBmV,EADgBh8S,GADC64S,GAAYvK,EAAgBtB,EAAUj2d,GACV,GAChB,GAG3Bkle,EAAkC,OAAtBJ,QAAoD,IAAtBA,OAA+B,EAASA,EAAkBzzhB,GAGpG8zhB,EAAcvL,EAAa55d,EAAK,CAClC3rD,KAAMhD,IAQJ+zhB,EAAe,GAAGvzhB,OAAO80O,EAAW,QACpC0+S,EAAkB,GAAGxzhB,OAAOuzhB,EAAc,QAC1CE,EAAa/D,GAAwBrgU,EAAAA,cAAoB,KAAM,CACjEtsN,UAAWwwhB,GACGlkU,EAAAA,cAAoB,IAAK,CACvCtsN,UAAWisN,KAAWwkU,EAAiBF,GAAe,GAAGtzhB,OAAOwzhB,EAAiB,cACjF,gBAAiBF,EACjB3jd,QAbkB,WAClB,IAAK2jd,EAAa,CAChB,IAAII,EAAcN,EAAajle,GAC/B+ke,EAAMQ,EACR,CACF,GASoB,SAAjB35Q,EAA0BvqP,EAAOq2S,MAAQr2S,EAAO2+B,MAG/Cwle,EAAS9L,GAA4Bx4T,EAAAA,cAAoB,KAAM,CACjEtsN,UAAW,GAAG/C,OAAO80O,EAAW,QAClBzlB,EAAAA,cAAoB1pB,EAAQ,CAC1CnmJ,SAAU8oH,EACV34F,QAASg+O,GACRn+R,EAAOkjD,KACNkhd,GAAaH,GAAcE,IAAwBtkU,EAAAA,cAAoB,KAAM,CAC/EtsN,UAAW,GAAG/C,OAAO80O,EAAW,YAC/B2+S,EAAYE,GAGf,OAAKN,GAAcO,EAGCvkU,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAW,GAAG/C,OAAO80O,EAAW,YAC/Bu+S,GAA0BhkU,EAAAA,cAAoB,MAAO,CACtDtsN,UAAW,GAAG/C,OAAO80O,EAAW,kBAC/Bu+S,GAAYO,GANN,IAOX,CCjEe,SAASC,GAAenO,EAAgBl2f,EAAQskgB,GAY7D,OAXA,SAAqB73R,EAAM11P,GACzB,IAAImF,EAAQuwP,EAAKlvP,WAAU,SAAU8jB,GACnC,OAAOmC,GAAO0yf,EAAgBl2f,EAAQqB,EAAMtqB,EAAQuthB,EACtD,IACA,IAAe,IAAXpohB,EACF,MAAO,GAAG1L,OAAOw+O,GAAmByd,GAAO,CAAC11P,IAE9C,IAAIwthB,EAAYv1S,GAAmByd,GAEnC,OADA83R,EAAUpof,OAAOjgC,EAAO,GACjBqohB,CACT,CAEF,CClBO,IAAIC,GAA4B3kU,EAAAA,cAAoB,MACpD,SAAS4kU,KACd,OAAO5kU,EAAAA,WAAiB2kU,GAC1B,CAKO,SAASE,GAAQ7gf,EAAO8gf,GAC7B,IAAIr/S,EAAYzhM,EAAMyhM,UACpB4wS,EAAiBrye,EAAMqye,eACvBl2f,EAAS6jB,EAAM7jB,OACfu4f,EAAe10e,EAAM00e,aACrBC,EAAU30e,EAAM20e,QAChBC,EAAU50e,EAAM40e,QAChBrG,EAAavue,EAAMuue,WACnBwS,EAAa/gf,EAAM+gf,WACnBC,EAAkBhhf,EAAMghf,gBACxBhvD,EAAUhyb,EAAMgyb,QAChBxzd,EAASwhC,EAAMxhC,OACfq2gB,EAAc70e,EAAM60e,YACpBhwQ,EAAW7kO,EAAM6kO,SACjB29H,EAAWxiW,EAAMwiW,SACjBC,EAAWziW,EAAMyiW,SACjBw+I,EAAgBjhf,EAAMihf,cACtBC,EAAgBlhf,EAAMkhf,cAGpBpme,EAAMu3d,EAAezH,SAyBzB,MAAO,CAtBI,CACT9vd,IAAKA,EACLt8C,OAAQA,EACRq2gB,YAAaA,EACbpzS,UAAWA,EACXizS,aAAcA,EACdC,QAASA,EACTC,QAASA,EACTrG,WAAYA,EACZwS,WAAYA,EACZC,gBAAiBA,EACjBhvD,QAASA,EACT71c,OAAQA,EACRk2f,eAAgBA,EAChBxtQ,SAAUA,EACVi8Q,UAAWA,EAEXt+I,SAAUA,EACVC,SAAUA,EACVw+I,cAAeA,EACfC,cAAeA,GAEHpme,EAChB,CAOO,IAAIqme,GAAiCnlU,EAAAA,cAAoB,CAAC,GCxDlD,SAASolU,GAAUphf,GA2ChC,IA1CA,IAAIqhf,EAASrhf,EAAMqhf,OACjBC,EAASthf,EAAMshf,OACfC,EAAWvhf,EAAMuhf,SACjBC,EAAcxhf,EAAMwhf,YACpBC,EAAezhf,EAAMyhf,aACrBhtD,EAAez0b,EAAMy0b,aACrBitD,EAAc1hf,EAAM0hf,YACpBC,EAAc3hf,EAAM2hf,YACpBC,EAAmB5hf,EAAM4hf,iBACzBC,EAAc7hf,EAAM6hf,YACpBC,EAAuB9hf,EAAM+hf,cAC7BA,OAAyC,IAAzBD,GAAyCA,EACzDpN,EAAe10e,EAAM00e,aACnBsN,EAAmBpB,KACrBn/S,EAAYugT,EAAiBvgT,UAC7BtyO,EAAO6yhB,EAAiBlB,UACxBhme,EAAMkne,EAAiBlne,IACvBmne,EAAsBD,EAAiBtN,aACvCnG,EAAayT,EAAiBzT,WAC9Bv8C,EAAUgwD,EAAiBhwD,QAC3B+uD,EAAaiB,EAAiBjB,WAC9BC,EAAkBgB,EAAiBhB,gBACnC3O,EAAiB2P,EAAiB3P,eAClC7zgB,EAASwjhB,EAAiBxjhB,OAC1B2d,EAAS6lgB,EAAiB7lgB,OAC1B0oP,EAAWm9Q,EAAiBn9Q,SAC1Bq9Q,EAAqBxN,GAAgBuN,EACrCpxD,EAAgB,GAAGlke,OAAO80O,EAAW,SAIvC0gT,EADsBnmU,EAAAA,WAAiBmlU,IACJgB,eAUjCt9f,EAAO,GACFnC,EAAM,EAAGA,EAAM2+f,EAAQ3+f,GAAO,EAAG,CA8ExC,IA7EA,IAAIokd,EAAU,GACVs7C,OAAe,EACf5nD,EAAQ,WACV,IACInrU,EAAcmyX,EAAYD,EADjB7+f,EAAM4+f,EAAShuf,GAExB6Y,EAAkC,OAAvB+1e,QAAsD,IAAvBA,OAAgC,EAASA,EAAmB7yX,EAAa,CACrHlgK,KAAMA,IAII,IAARmkC,IACF8uf,EAAe/yX,EACXoyX,GACF36C,EAAQ98e,KAAKy3hB,EAAaW,KAK9B,IAAIlqb,GAAU,EACVmqb,GAAa,EACbC,GAAW,EACf,GAAIP,GAAiBf,EAAiB,CACpC,IAAIuB,EAAmBx+S,GAAei9S,EAAiB,GACrDwB,EAAaD,EAAiB,GAC9BE,EAAWF,EAAiB,GAC9Brqb,EAAUg7V,GAAUm/E,EAAgBmQ,EAAYC,EAAUpzX,GAC1DgzX,EAAa1igB,GAAO0yf,EAAgBl2f,EAAQkzI,EAAamzX,EAAYrzhB,GACrEmzhB,EAAW3igB,GAAO0yf,EAAgBl2f,EAAQkzI,EAAaozX,EAAUtzhB,EACnE,CAGA,IAxCmCquB,EAwC/B0W,EAAQwtf,EAAc7jQ,GAAYxuH,EAAa,CACjDlzI,OAAQA,EACR/wB,OAAQs2hB,EACRrP,eAAgBA,SACbj9gB,EAGDvL,EAAqBmyN,EAAAA,cAAoB,MAAO,CAClDtsN,UAAW,GAAG/C,OAAOkke,EAAe,WACnC8wD,EAAYtyX,IACfy3U,EAAQ98e,KAAmBgyN,EAAAA,cAAoB,KAAM,CACnD/uN,IAAKqmC,EACLY,MAAOA,EACPxkC,UAAWisN,KAAWk1Q,EAAelwP,IAAc3gI,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAOkke,EAAe,aAAc1kb,GAAW,GAAGx/C,OAAOkke,EAAe,WAAYkwD,GAAc,IAAIxnhB,MAAK,SAAUikB,GAC7Q,OAAOmC,GAAO0yf,EAAgBl2f,EAAQkzI,EAAa7xI,EAAMruB,EAC3D,KAAK,GAAGxC,OAAOkke,EAAe,aAAc34X,IAAYmqb,IAAeC,GAAW,GAAG31hB,OAAOkke,EAAe,gBAAiBwxD,GAAa,GAAG11hB,OAAOkke,EAAe,cAAeyxD,GAAW,GAAG31hB,OAAO80O,EAAW,mBAAoBu/S,GAE5N,SAAT7xhB,IAzDiCquB,EAyDF6xI,EAxD5B7wJ,EAAOjF,MAAK,SAAU+9X,GAC3B,OAAOA,GAAe33W,GAAO0yf,EAAgBl2f,EAAQqB,EAAM85W,EAAanoY,EAC1E,MAsDkDyyhB,EAAiBvyX,KAC/D/yF,QAAS,WACFnwB,GACH04N,EAASx1G,EAEb,EACAggV,cAAe,YACRljc,GAAYg2e,GACfA,GAEJ,EACA/sS,aAAc,WACPjpM,GACS,OAAZ6lb,QAAgC,IAAZA,GAAsBA,EAAQ3iU,EAEtD,EACAgmF,aAAc,WACPlpM,GACS,OAAZ6lb,QAAgC,IAAZA,GAAsBA,EAAQ,KAEtD,GACCu8C,EAAaA,EAAWl/W,EAAa,CACtCoyE,UAAWA,EACXktS,WAAY9khB,EACZ2oU,MAAO13Q,EACP3rD,KAAMA,EACNgtB,OAAQA,IACLtyB,GACP,EACSypC,EAAM,EAAGA,EAAMguf,EAAQhuf,GAAO,EACrCknc,IAEF31c,EAAK76B,KAAmBgyN,EAAAA,cAAoB,KAAM,CAChD/uN,IAAKy1B,EACLhzB,UAA4B,OAAjB+ke,QAA0C,IAAjBA,OAA0B,EAASA,EAAa2tD,IACnFt7C,GACL,CAGA,OAAoB9qR,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAW,GAAG/C,OAAO80O,EAAW,UAClBzlB,EAAAA,cAAoB,QAAS,CAC3CtsN,UAAW,GAAG/C,OAAO80O,EAAW,aAC/BogT,GAA4B7lU,EAAAA,cAAoB,QAAS,KAAmBA,EAAAA,cAAoB,KAAM,KAAM6lU,IAA4B7lU,EAAAA,cAAoB,QAAS,KAAMn3L,IAChL,CC3IA,IAAIg6d,GAAe,CACjB72X,WAAY,UA+Hd,SA7HA,SAAqBhoF,GACnB,IAAIijB,EAASjjB,EAAMijB,OACjBy/d,EAAc1if,EAAM0if,YACpBv5S,EAAWnpM,EAAMmpM,SACjBw5S,EAAW3if,EAAM2if,SACjBC,EAAS5if,EAAM4if,OACft2e,EAAWtM,EAAMsM,SACf01e,EAAmBpB,KACrBn/S,EAAYugT,EAAiBvgT,UAC7BohT,EAAwBb,EAAiBx/I,SACzCA,OAAqC,IAA1BqgJ,EAAmC,SAAWA,EACzDC,EAAwBd,EAAiBv/I,SACzCA,OAAqC,IAA1BqgJ,EAAmC,SAAWA,EACzDC,EAAwBf,EAAiBf,cACzCA,OAA0C,IAA1B8B,EAAmC,OAASA,EAC5DC,EAAyBhB,EAAiBd,cAC1CA,OAA2C,IAA3B8B,EAAoC,OAASA,EAC7DrO,EAAUqN,EAAiBrN,QAC3BC,EAAUoN,EAAiBpN,QAC3BvC,EAAiB2P,EAAiB3P,eAClCl2f,EAAS6lgB,EAAiB7lgB,OAC1B04f,EAAcmN,EAAiBnN,YAC/B1lhB,EAAO6yhB,EAAiBlB,UACtBmC,EAAkB,GAAGt2hB,OAAO80O,EAAW,WACvC6T,EAAoBt5B,EAAAA,WAAiBmlU,IACvC+B,EAAW5tS,EAAkB4tS,SAC7BC,EAAW7tS,EAAkB6tS,SAC7BC,EAAa9tS,EAAkB8tS,WAG7BC,EAAqBrnU,EAAAA,SAAc,WACrC,IAAK24T,IAAY1xd,IAAW2/d,EAC1B,OAAO,EAET,IAAIU,EAAqBV,EAAO3/d,GAAQ,EAAG4xd,IAC3C,OAAQv+W,GAAc+7W,EAAgBl2f,EAAQmngB,EAAoB3O,EAASxlhB,EAC7E,GAAG,CAACwlhB,EAAS1xd,EAAQ4xd,EAAa+N,EAAQvQ,EAAgBl2f,EAAQhtB,IAC9Do0hB,EAA0BvnU,EAAAA,SAAc,WAC1C,IAAK24T,IAAY+N,IAAgBE,EAC/B,OAAO,EAET,IAAIU,EAAqBV,EAAOF,GAAa,EAAG7N,IAChD,OAAQv+W,GAAc+7W,EAAgBl2f,EAAQmngB,EAAoB3O,EAASxlhB,EAC7E,GAAG,CAACwlhB,EAAS+N,EAAa7N,EAAa+N,EAAQvQ,EAAgBl2f,EAAQhtB,IACnEq0hB,EAAqBxnU,EAAAA,SAAc,WACrC,IAAK44T,IAAY3xd,IAAW0/d,EAC1B,OAAO,EAET,IAAIc,EAAqBd,EAAS1/d,EAAO,EAAG4xd,IAC5C,OAAQv+W,GAAc+7W,EAAgBl2f,EAAQy4f,EAAS6O,EAAoBt0hB,EAC7E,GAAG,CAACylhB,EAAS3xd,EAAQ4xd,EAAa8N,EAAUtQ,EAAgBl2f,EAAQhtB,IAChEu0hB,EAA0B1nU,EAAAA,SAAc,WAC1C,IAAK44T,IAAY8N,IAAgBC,EAC/B,OAAO,EAET,IAAIc,EAAqBd,EAASD,EAAY,EAAG7N,IACjD,OAAQv+W,GAAc+7W,EAAgBl2f,EAAQy4f,EAAS6O,EAAoBt0hB,EAC7E,GAAG,CAACylhB,EAAS8N,EAAa7N,EAAa8N,EAAUtQ,EAAgBl2f,EAAQhtB,IAGrEqod,EAAW,SAAkBx1V,GAC3B/+D,GACFkmL,EAASlmL,EAAO++D,EAAU6yZ,GAE9B,EACI8O,EAAgB,SAAuB3ha,GACrC0ga,GACFv5S,EAASu5S,EAAY1ga,EAAU6yZ,GAEnC,EAGA,GAAIuO,EACF,OAAO,KAET,IAAIQ,EAAa,GAAGj3hB,OAAOs2hB,EAAiB,aACxCY,EAAa,GAAGl3hB,OAAOs2hB,EAAiB,aACxCa,EAAkB,GAAGn3hB,OAAOs2hB,EAAiB,mBAC7Cc,EAAkB,GAAGp3hB,OAAOs2hB,EAAiB,mBACjD,OAAoBjnU,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAWuzhB,GACVP,GAA4B1mU,EAAAA,cAAoB,SAAU,CAC3D7sN,KAAM,SACN,aAAcgtB,EAAOg3S,aACrB72P,QAAS,WACP,OAAOqnd,GAAe,EACxB,EACA33S,UAAW,EACXt8O,UAAWisN,KAAWmoU,EAAiBP,GAA2B,GAAG52hB,OAAOm3hB,EAAiB,cAC7F33e,SAAUo3e,EACV91hB,MAAOy1hB,EAAWrkC,GAAe,CAAC,GACjCoiC,GAAgBh+d,GAAuB+4J,EAAAA,cAAoB,SAAU,CACtE7sN,KAAM,SACN,aAAcgtB,EAAO82S,cACrB32P,QAAS,WACP,OAAOk7Y,GAAU,EACnB,EACAxrO,UAAW,EACXt8O,UAAWisN,KAAWioU,EAAYP,GAAsB,GAAG12hB,OAAOi3hB,EAAY,cAC9Ez3e,SAAUk3e,EACV51hB,MAAOy1hB,EAAWrkC,GAAe,CAAC,GACjCr8G,GAAwBxmL,EAAAA,cAAoB,MAAO,CACpDtsN,UAAW,GAAG/C,OAAOs2hB,EAAiB,UACrC32e,GAAW2W,GAAuB+4J,EAAAA,cAAoB,SAAU,CACjE7sN,KAAM,SACN,aAAcgtB,EAAO+2S,UACrB52P,QAAS,WACP,OAAOk7Y,EAAS,EAClB,EACAxrO,UAAW,EACXt8O,UAAWisN,KAAWkoU,EAAYL,GAAsB,GAAG72hB,OAAOk3hB,EAAY,cAC9E13e,SAAUq3e,EACV/1hB,MAAO01hB,EAAWtkC,GAAe,CAAC,GACjCp8G,GAAWigJ,GAA4B1mU,EAAAA,cAAoB,SAAU,CACtE7sN,KAAM,SACN,aAAcgtB,EAAOi3S,SACrB92P,QAAS,WACP,OAAOqnd,EAAc,EACvB,EACA33S,UAAW,EACXt8O,UAAWisN,KAAWooU,EAAiBL,GAA2B,GAAG/2hB,OAAOo3hB,EAAiB,cAC7F53e,SAAUu3e,EACVj2hB,MAAO01hB,EAAWtkC,GAAe,CAAC,GACjCqiC,GACL,EC1He,SAAS8C,GAAUhkf,GAChC,IAAIyhM,EAAYzhM,EAAMyhM,UACpBwiT,EAAmBjkf,EAAMkkf,UACzBA,OAAiC,IAArBD,EAA8B,OAASA,EACnD9ngB,EAAS6jB,EAAM7jB,OACfk2f,EAAiBrye,EAAMqye,eACvBwC,EAAc70e,EAAM60e,YACpB+D,EAAsB54e,EAAM44e,oBAC5BuL,EAAenkf,EAAMmkf,aACrBC,EAAcpkf,EAAM7zC,KACpBA,OAAuB,IAAhBi4hB,EAAyB,OAASA,EACzC1P,EAAe10e,EAAM00e,aACrB7vQ,EAAW7kO,EAAM6kO,SACjBmtN,EAAUhyb,EAAMgyb,QAChBqyD,EAAWrkf,EAAMqkf,SACfC,EAAiB,GAAG33hB,OAAO80O,EAAW,KAAK90O,OAAOu3hB,EAAW,UAC7DrzD,EAAgB,GAAGlke,OAAO80O,EAAW,SACrC8iT,EAAkB,SAATp4hB,EAIXq4hB,EAAYzgT,GADC88S,GAAQ7gf,EAAO7zC,GACS,GACrCwuI,EAAO6pZ,EAAU,GACjB1pe,EAAM0pe,EAAU,GACdC,EAAepS,EAAel2f,OAAO6vf,gBAAgB7vf,EAAOA,QAC5DuogB,EAAiBrS,EAAe5vX,QAAQoyX,EAAa,GACrD0M,EvBqEC,SAA0BplgB,EAAQk2f,EAAgBtrhB,GACvD,IAAI09hB,EAAepS,EAAel2f,OAAO6vf,gBAAgB7vf,GACrDuogB,EAAiBrS,EAAe5vX,QAAQ17J,EAAO,GAC/C49hB,EAAmBtS,EAAerH,WAAW0Z,GAC7CE,EAAiBvS,EAAe9G,QAAQmZ,EAAgBD,EAAeE,GAI3E,OAHItS,EAAezzf,SAASgmgB,KAAoBvS,EAAezzf,SAAS73B,IAAUsrhB,EAAevzf,QAAQ8lgB,GAAkB,IACzHA,EAAiBvS,EAAe9G,QAAQqZ,GAAiB,IAEpDA,CACT,CuB9EiBC,CAAiB1ogB,EAAOA,OAAQk2f,EAAgBqS,GAC3DhngB,EAAQ20f,EAAezzf,SAASi2f,GAIhC4M,QADgCrshB,IAAbivhB,EAAyBE,EAASF,GACnB,SAAU7mgB,GAE9C,IAAI2uB,EAA4B,OAAjBuoe,QAA0C,IAAjBA,OAA0B,EAASA,EAAal3f,EAAM,CAC5FruB,KAAM,SAER,OAAoB6sN,EAAAA,cAAoB,KAAM,CAC5C/uN,IAAK,OACLyC,UAAWisN,KAAWk1Q,EAAe,GAAGlke,OAAOkke,EAAe,UAAU7wX,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAOkke,EAAe,aAAc1kb,IAGnImwB,QAAS,WACFnwB,GACH04N,EAASrnP,EAEb,EACA43N,aAAc,WACPjpM,GACS,OAAZ6lb,QAAgC,IAAZA,GAAsBA,EAAQx0c,EAEtD,EACA63N,aAAc,WACPlpM,GACS,OAAZ6lb,QAAgC,IAAZA,GAAsBA,EAAQ,KAEtD,GACch2Q,EAAAA,cAAoB,MAAO,CACzCtsN,UAAW,GAAG/C,OAAOkke,EAAe,WACnCwhD,EAAel2f,OAAO+vf,QAAQ/vf,EAAOA,OAAQqB,IAClD,EAAI,KAIAqkgB,EAAc,GACdiD,EAAiB3ogB,EAAO4ogB,gBAAkB1S,EAAel2f,OAAOgwf,iBAAmBkG,EAAel2f,OAAOgwf,iBAAiBhwf,EAAOA,QAAU,IAC3IslgB,GACFI,EAAY73hB,KAAmBgyN,EAAAA,cAAoB,KAAM,CACvD/uN,IAAK,SACS+uN,EAAAA,cAAoB,OAAQ,CAC1CvuN,MAAO,CACLrD,MAAO,EACPN,OAAQ,EACR0J,SAAU,WACVC,SAAU,SACVK,QAAS,IAEVqoB,EAAOglC,QAEZ,IAAK,IAAI93D,EAAI,EAAGA,EvBvFU,EuBuFUA,GAAK,EACvCw4hB,EAAY73hB,KAAmBgyN,EAAAA,cAAoB,KAAM,CACvD/uN,IAAK5D,GACJy7hB,GAAgBz7hB,EAAIo7hB,GvB1FC,KuB8F1B,IAgBIO,EAAe7ogB,EAAO8ogB,cAAgB5S,EAAel2f,OAAOiwf,eAAiBiG,EAAel2f,OAAOiwf,eAAejwf,EAAOA,QAAU,IACnI+ogB,EAAwBlpU,EAAAA,cAAoB,SAAU,CACxD7sN,KAAM,SACN,aAAcgtB,EAAO22S,WACrB7lU,IAAK,OACLqvE,QAAS,WACP6nd,EAAa,OAAQtP,EACvB,EACA7oS,UAAW,EACXt8O,UAAW,GAAG/C,OAAO80O,EAAW,cAC/Bo8C,GAAYg3P,EAAa,CAC1B14f,OAAQA,EACR/wB,OAAQ+wB,EAAOi2S,WACfigN,eAAgBA,KAEd8S,EAAyBnpU,EAAAA,cAAoB,SAAU,CACzD7sN,KAAM,SACN,aAAcgtB,EAAO02S,YACrB5lU,IAAK,QACLqvE,QAAS,WACP6nd,EAAa,QAAStP,EACxB,EACA7oS,UAAW,EACXt8O,UAAW,GAAG/C,OAAO80O,EAAW,eAC/BtlN,EAAOipgB,YAAcvnQ,GAAYg3P,EAAa,CAC/C14f,OAAQA,EACR/wB,OAAQ+wB,EAAOipgB,YACf/S,eAAgBA,IACb2S,EAAatngB,IACd2ngB,EAAiBlpgB,EAAOo2S,gBAAkB,CAAC4yN,EAAWD,GAAY,CAACA,EAAUC,GAGjF,OAAoBnpU,EAAAA,cAAoB2kU,GAAavhb,SAAU,CAC7Dr4G,MAAO4zI,GACOqhF,EAAAA,cAAoB,MAAO,CACzCtsN,UAAWisN,KAAW2oU,EAAgBD,GAAY,GAAG13hB,OAAO23hB,EAAgB,gBAC9DtoU,EAAAA,cAAoBspU,GAAa,CAC/Crie,OAAQ,SAAgB++D,GACtB,OAAOqwZ,EAAe/G,SAASuJ,EAAa7yZ,EAC9C,EACA0ga,YAAa,SAAqB1ga,GAChC,OAAOqwZ,EAAehH,QAAQwJ,EAAa7yZ,EAC7C,EACAmnH,SAAUyvS,EAGV+J,SAAU,SAAkBnlgB,GAC1B,OAAO60f,EAAe5vX,QAAQjlI,EAAM,EACtC,EACAolgB,OAAQ,SAAgBplgB,GACtB,IAAIvtB,EAAQoihB,EAAe5vX,QAAQjlI,EAAM,GAEzC,OADAvtB,EAAQoihB,EAAe/G,SAASr7gB,EAAO,GAChCoihB,EAAe9G,QAAQt7gB,GAAQ,EACxC,GACCo1hB,GAA8BrpU,EAAAA,cAAoBolU,GAAWh6T,GAAS,CACvEs6T,YAAavlgB,EAAO6xf,iBACnBhue,EAAO,CACRshf,OvBvKwB,EuBwKxBD,OAAQ,EACRE,SAAUA,EAGVM,YAAaA,EAGbL,YAjFgB,SAAqBhkgB,EAAMylC,GAC3C,OAAOovd,EAAe9G,QAAQ/tf,EAAMylC,EACtC,EAgFE0+d,YA/EgB,SAAqBnkgB,GACrC,OAAOqgQ,GAAYrgQ,EAAM,CACvBrB,OAAQA,EACR/wB,OAAQ+wB,EAAOyzf,eACfyC,eAAgBA,GAEpB,EA0EEuP,iBAzEqB,SAA0BpkgB,GAE/C,OADewiF,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,iBAAkBmxS,GAAYP,EAAgB70f,EAAMq3f,IAAe,GAAGlohB,OAAO80O,EAAW,eAAgBsxS,GAAWV,EAAgB70f,EAAMs9B,GAEnN,EAuEE2me,aAAcA,EACdM,eAAgBwC,MAEpB,CCjLA,IAAIgB,GAAY,EAAI,ECMpB,SAASC,GAAaroY,GACpB,OAAOA,EAAM3nJ,KAAI,SAAU49I,GAIzB,MAAO,CAHKA,EAAKrsJ,MACPqsJ,EAAKnyC,MACFmyC,EAAKjnG,UACc/+C,KAAK,IACvC,IAAGA,KAAK,IACV,CACe,SAASq4hB,GAAWzlf,GACjC,IAAIm9G,EAAQn9G,EAAMm9G,MAChBp2J,EAAQi5C,EAAMj5C,MACd2+hB,EAAgB1lf,EAAM0lf,cACtBv2hB,EAAO6wC,EAAM7wC,KACbg6O,EAAWnpM,EAAMmpM,SACjB6oP,EAAUhyb,EAAMgyb,QAChB2zD,EAAa3lf,EAAM2lf,WACnBC,EAAiB5lf,EAAM4lf,eACrB5D,EAAmBpB,KACrBn/S,EAAYugT,EAAiBvgT,UAC7B8sS,EAAayT,EAAiBzT,WAC9Bzzd,EAAMkne,EAAiBlne,IACvB3+B,EAAS6lgB,EAAiB7lgB,OACxBmogB,EAAiB,GAAG33hB,OAAO80O,EAAW,eACtCovP,EAAgB,GAAGlke,OAAO80O,EAAW,oBAGrCokT,EAAQ7pU,EAAAA,OAAa,MAGrB8pU,EAAgB9pU,EAAAA,SAChB+pU,EAAkB,WACpB79d,aAAa49d,EAAc13f,QAC7B,EAGI43f,EDxCS,SAAqBH,EAAO9+hB,GAEzC,IAAIk/hB,EAAejqU,EAAAA,QAAa,GAC5BkqU,EAAelqU,EAAAA,OAAa,MAC5BmqU,EAAgBnqU,EAAAA,OAAa,MAI7B4iM,EAAa,WACf97K,GAAIv0I,OAAO23b,EAAa93f,SACxB63f,EAAa73f,SAAU,CACzB,EACIg4f,EAAoBpqU,EAAAA,SAqDxB,MAAO,CADU0mB,IAnDC,WAChB,IAAI39J,EAAK8gd,EAAMz3f,QAGf,GAFA+3f,EAAc/3f,QAAU,KACxBg4f,EAAkBh4f,QAAU,EACxB22C,EAAI,CACN,IAAIshd,EAAWthd,EAAG92C,cAAc,gBAAiBthC,OAAO5F,EAAO,OAC3Du/hB,EAAUvhd,EAAG92C,cAAc,MAsC3Bo4f,GAAYC,GArCD,SAASC,IACtB3nI,IACAqnI,EAAa73f,SAAU,EACvBg4f,EAAkBh4f,SAAW,EAC7B,IAAIo4f,EAAazhd,EAAGp0E,UAChB81hB,EAAaH,EAAQ58Y,UACrBg9Y,EAAcL,EAAS38Y,UACvBgxH,EAAYgsR,EAAcD,EAG9B,GAAoB,IAAhBC,GAAqBL,IAAaC,IAAYn8Z,GAAUplD,GACtDqhd,EAAkBh4f,SAAW,IAC/B83f,EAAa93f,QAAU00M,GAAIyjT,QAF/B,CAMA,IAAII,EAAUH,GAAc9rR,EAAY8rR,GAAcjB,GAClD5mG,EAAOh1b,KAAK6E,IAAIksQ,EAAYisR,GAGhC,GAA8B,OAA1BR,EAAc/3f,SAAoB+3f,EAAc/3f,QAAUuwZ,EAC5D//B,QADF,CAOA,GAHAunI,EAAc/3f,QAAUuwZ,EAGpBA,GAAQ,EAGV,OAFA55W,EAAGp0E,UAAY+pQ,OACfkkJ,IAKF75U,EAAGp0E,UAAYg2hB,EACfT,EAAa93f,QAAU00M,GAAIyjT,EAZ3B,CARA,CAqBF,CAEEA,EAEJ,CACF,IAIoB3nI,EA5DF,WAChB,OAAOqnI,EAAa73f,OACtB,EA2DF,CC1BqBoyX,CAAYqlI,EAAiB,OAAV9+hB,QAA4B,IAAVA,EAAmBA,EAAQ2+hB,GACjFkB,EAAgB7iT,GAAeiiT,EAAc,GAC7Ca,EAAaD,EAAc,GAC3BhoI,EAAagoI,EAAc,GAC3BE,EAAcF,EAAc,GAG9Btxd,IAAgB,WAGd,OAFAuxd,IACAd,IACO,WACLnnI,IACAmnI,GACF,CACF,GAAG,CAACh/hB,EAAO2+hB,EAAeF,GAAaroY,KAIvC,IAgCI4pY,EAAkB,GAAGp6hB,OAAO23hB,EAAgB,WAChD,OAAoBtoU,EAAAA,cAAoB,KAAM,CAC5CtsN,UAAWq3hB,EACXrnf,IAAKmmf,EACL,YAAa12hB,EACb8sQ,SArCqB,SAA0B16M,GAC/Cwke,IACA,IAAI7yhB,EAASquD,EAAMruD,QACd4zhB,KAAiBlB,IACpBE,EAAc13f,QAAU/Y,YAAW,WACjC,IAAI0vD,EAAK8gd,EAAMz3f,QACXq4f,EAAa1hd,EAAG92C,cAAc,MAAMy7G,UAKpCs9Y,EAJSh+hB,MAAM8J,KAAKiyE,EAAGr8E,iBAAiB,OACrB8M,KAAI,SAAUu+D,GACnC,OAAOA,EAAG21E,UAAY+8Y,CACxB,IAC2BjxhB,KAAI,SAAU/L,EAAK4O,GAC5C,OAAI8kJ,EAAM9kJ,GAAO8zC,SACR98C,OAAOid,iBAET3iB,KAAK6E,IAAI/E,EAAMyJ,EAAOvC,UAC/B,IAGIs2hB,EAAUt9hB,KAAKyhB,IAAI5I,MAAM7Y,KAAMwhP,GAAmB67S,IAClDE,EAAeF,EAAWtthB,WAAU,SAAUilb,GAChD,OAAOA,IAASsoG,CAClB,IACIE,EAAahqY,EAAM+pY,GACnBC,IAAeA,EAAWh7e,UAC5Bg9L,EAASg+S,EAAWpgiB,MAExB,GAlFa,KAoFjB,GASGo2J,EAAM3nJ,KAAI,SAAUqvK,GACrB,IAAI5jE,EAAQ4jE,EAAM5jE,MAChBmmb,EAAYviX,EAAM99K,MAClBolD,EAAW04H,EAAM14H,SACftiD,EAAqBmyN,EAAAA,cAAoB,MAAO,CAClDtsN,UAAW,GAAG/C,OAAOkke,EAAe,WACnC5vX,GACH,OAAoB+6G,EAAAA,cAAoB,KAAM,CAC5C/uN,IAAKm6hB,EACL13hB,UAAWisN,KAAWk1Q,GAAe7wX,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAOkke,EAAe,aAAc9pe,IAAUqgiB,GAAY,GAAGz6hB,OAAOkke,EAAe,aAAc1kb,IAC7KmwB,QAAS,WACFnwB,GACHg9L,EAASi+S,EAEb,EACA/3C,cAAe,YACRljc,GAAYw5e,GACfA,GAEJ,EACAvwS,aAAc,WACZ48O,EAAQo1D,EACV,EACA/xS,aAAc,WACZ28O,EAAQ,KACV,EACA,aAAco1D,GACb7Y,EAAaA,EAAW6Y,EAAW,CACpC3lT,UAAWA,EACXktS,WAAY9khB,EACZ2oU,MAAO13Q,EACP3rD,KAAM,OACNk4hB,QAASl4hB,EACTgtB,OAAQA,IACLtyB,EACP,IACF,CClIA,SAASy9hB,GAAKrrY,GACZ,OAAOA,EAAO,EAChB,CACe,SAASsrY,GAAcvnf,GACpC,IAAImve,EAAWnve,EAAMmve,SACnBC,EAAapve,EAAMove,WACnBC,EAAarve,EAAMqve,WACnBC,EAAkBtve,EAAMsve,gBACxBC,EAAevve,EAAMyve,WACrBmW,EAAiB5lf,EAAM4lf,eACrB5D,EAAmBpB,KACrBn/S,EAAYugT,EAAiBvgT,UAC7BjjO,EAASwjhB,EAAiBxjhB,OAC1B6zgB,EAAiB2P,EAAiB3P,eAClCl2f,EAAS6lgB,EAAiB7lgB,OAC1B0oP,EAAWm9Q,EAAiBn9Q,SAC5B2iR,EAAwBxF,EAAiBhwD,QACzCA,OAAoC,IAA1Bw1D,EAAmC,WAAa,EAAIA,EAC9D3S,EAAcmN,EAAiBnN,YAC7B9thB,GAAoB,OAAXyX,QAA8B,IAAXA,OAAoB,EAASA,EAAO,KAAO,KAEzE2jhB,EADsBnmU,EAAAA,WAAiBmlU,IACJgB,eAInCsF,EAAgB1jT,GADC64S,GAAYvK,EAAgBrye,EAAOj5C,GACP,GAC7Cg5hB,EAAe0H,EAAc,GAC7BvJ,EAAeuJ,EAAc,GAC7BtJ,EAAiBsJ,EAAc,GAC/BrJ,EAAiBqJ,EAAc,GAC/BpJ,EAAsBoJ,EAAc,GAIlCzzE,EAAe,SAAsB3za,GAGvC,MAAO,CAFYt5C,GAASsrhB,EAAehye,GAAMt5C,GAC3B8thB,GAAexC,EAAehye,GAAMw0e,GAE5D,EAEE6S,EAAiB3jT,GADCiwO,EAAa,WACgB,GAC/C/3T,EAAOyrY,EAAe,GACtBC,EAAaD,EAAe,GAE5BE,EAAiB7jT,GADEiwO,EAAa,aACgB,GAChD33T,EAASurY,EAAe,GACxBC,EAAeD,EAAe,GAE9BE,EAAiB/jT,GADEiwO,EAAa,aACgB,GAChDzpc,EAASu9gB,EAAe,GACxBC,EAAeD,EAAe,GAE9BE,EAAiBjkT,GADEiwO,EAAa,kBACgB,GAChD73T,EAAc6rY,EAAe,GAC7BC,EAAoBD,EAAe,GACjCprgB,EAAoB,OAATq/H,EAAgB,KAAOqrY,GAAKrrY,GAAQ,KAAO,KAItDisY,EAAYlsU,EAAAA,SAAc,WAC5B,OAAKuzT,EAGE+X,GAAKrrY,GAAQiiY,EAAa5khB,QAAO,SAAU1E,GAChD,OAAO0yhB,GAAK1yhB,EAAE7N,MAChB,IAAKm3hB,EAAa5khB,QAAO,SAAU1E,GACjC,OAAQ0yhB,GAAK1yhB,EAAE7N,MACjB,IANSm3hB,CAOX,GAAG,CAACjiY,EAAMiiY,EAAc3O,IAGpB4Y,EAAa,SAAoBhrY,EAAOrsJ,GAC1C,IAAIs3hB,EACAC,EAAelrY,EAAM7jJ,QAAO,SAAUnO,GACxC,OAAQA,EAAKghD,QACf,IACA,OAAe,OAARr7C,QAAwB,IAARA,EAAiBA,EACvB,OAAjBu3hB,QAA0C,IAAjBA,GAAkE,QAAtCD,EAAiBC,EAAa,UAAmC,IAAnBD,OAA4B,EAASA,EAAerhiB,KACzJ,EAGIuhiB,EAAYH,EAAWjK,EAAcjiY,GACrCssY,EAAcvsU,EAAAA,SAAc,WAC9B,OAAOmiU,EAAemK,EACxB,GAAG,CAACnK,EAAgBmK,IAGhBE,EAAcL,EAAWI,EAAalsY,GACtCosY,EAAczsU,EAAAA,SAAc,WAC9B,OAAOoiU,EAAekK,EAAWE,EACnC,GAAG,CAACpK,EAAgBkK,EAAWE,IAG3BE,EAAcP,EAAWM,EAAal+gB,GACtCo+gB,EAAmB3sU,EAAAA,SAAc,WACnC,OAAOqiU,EAAoBiK,EAAWE,EAAaE,EACrD,GAAG,CAACrK,EAAqBiK,EAAWE,EAAaE,IAC7CE,EAAmBT,EAAWQ,EAAkBxsY,GAGhD0sY,EAAgB7sU,EAAAA,SAAc,WAChC,IAAKuzT,EACH,MAAO,GAET,IAAIt/d,EAAOoie,EAAezH,SACtBke,EAASzW,EAAe5G,QAAQx7d,EAAM,GACtC84e,EAAS1W,EAAe5G,QAAQx7d,EAAM,IACtC+4e,EAAiB,SAAwBxrgB,EAAMyrgB,GACjD,IAAI32N,EAAqBn2S,EAAOm2S,mBAChC,OAAOA,EAAqBz0C,GAAYrgQ,EAAM,CAC5C60f,eAAgBA,EAChBl2f,OAAQA,EACR/wB,OAAQknU,IACL22N,CACP,EACA,MAAO,CAAC,CACNhob,MAAO+nb,EAAeF,EAAQ,MAC9B/hiB,MAAO,KACPolD,SAAU+xe,EAAa1khB,OAAM,SAAU5E,GACrC,OAAOA,EAAEu3C,WAAam7e,GAAK1yhB,EAAE7N,MAC/B,KACC,CACDk6G,MAAO+nb,EAAeD,EAAQ,MAC9BhiiB,MAAO,KACPolD,SAAU+xe,EAAa1khB,OAAM,SAAU5E,GACrC,OAAOA,EAAEu3C,UAAYm7e,GAAK1yhB,EAAE7N,MAC9B,KAEJ,GAAG,CAACm3hB,EAAc3O,EAAc8C,EAAgBl2f,IAM5Co3W,EAAgB,SAAuB8rJ,GACzC,IAAIF,EAAeY,EAAaV,GAChCx6Q,EAASs6Q,EACX,EAII+J,EAAkBltU,EAAAA,SAAc,WAClC,IAAImtU,EAAOpiiB,GAAS8thB,GAAexC,EAAezH,SAC9Cwe,EAAY,SAAmBpmT,GACjC,OAAe,OAARA,QAAwB5tO,IAAR4tO,CACzB,EAiBA,OAhBIomT,EAAUntY,IACZktY,EAAO9W,EAAe5G,QAAQ0d,EAAMltY,GACpCktY,EAAO9W,EAAe3G,UAAUyd,EAAM9sY,GACtC8sY,EAAO9W,EAAe1G,UAAUwd,EAAM5+gB,GACtC4+gB,EAAO9W,EAAezG,eAAeud,EAAMhtY,IAClCitY,EAAUzB,IACnBwB,EAAO9W,EAAe5G,QAAQ0d,EAAMxB,GACpCwB,EAAO9W,EAAe3G,UAAUyd,EAAMtB,GACtCsB,EAAO9W,EAAe1G,UAAUwd,EAAMpB,GACtCoB,EAAO9W,EAAezG,eAAeud,EAAMlB,IAClCmB,EAAUd,KACnBa,EAAO9W,EAAe5G,QAAQ0d,EAAMb,GACpCa,EAAO9W,EAAe3G,UAAUyd,EAAMX,GACtCW,EAAO9W,EAAe1G,UAAUwd,EAAMT,GACtCS,EAAO9W,EAAezG,eAAeud,EAAMP,IAEtCO,CACT,GAAG,CAACpiiB,EAAO8thB,EAAa54X,EAAMI,EAAQ9xI,EAAQ4xI,EAAamsY,EAAWE,EAAaE,EAAaE,EAAkBjB,EAAYE,EAAcE,EAAcE,EAAmB5V,IAGzKgX,EAAkB,SAAyBv4hB,EAAKuvC,GAClD,OAAY,OAARvvC,EACK,KAEFuhhB,EAAehye,GAAM6of,EAAiBp4hB,EAC/C,EACIw4hB,EAAkB,SAAyBx4hB,GAC7C,OAAOu4hB,EAAgBv4hB,EAAK,UAC9B,EACIy4hB,EAAoB,SAA2Bz4hB,GACjD,OAAOu4hB,EAAgBv4hB,EAAK,YAC9B,EACI04hB,GAAoB,SAA2B14hB,GACjD,OAAOu4hB,EAAgBv4hB,EAAK,YAC9B,EACI24hB,GAAyB,SAAgC34hB,GAC3D,OAAOu4hB,EAAgBv4hB,EAAK,iBAC9B,EACI44hB,GAAkB,SAAyB54hB,GAC7C,OAAY,OAARA,EACK,KAEG,OAARA,GAAiBw2hB,GAAKrrY,GAEP,OAARnrJ,GAAgBw2hB,GAAKrrY,GACvBo2X,EAAe5G,QAAQyd,EAAiBjtY,EAAO,IAEjDitY,EAJE7W,EAAe5G,QAAQyd,EAAiBjtY,EAAO,GAK1D,EAmCI0tY,GAAoB,CACtBhE,WAAYxD,EACZyD,eAAgBA,GAElB,OAAoB5pU,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAW,GAAG/C,OAAO80O,EAAW,aAC/B0tS,GAAyBnzT,EAAAA,cAAoBypU,GAAYr+T,GAAS,CACnEjqE,MAAO+qY,EACPnhiB,MAAOk1J,EACPypY,cAAeiC,EACfx4hB,KAAM,OACNg6O,SA7CiB,SAAsBr4O,GACvCyiY,EAAc+1J,EAAgBx4hB,GAChC,EA4CEkhe,QA7BgB,SAAqBlhe,GACrCkhe,EAAQs3D,EAAgBx4hB,GAC1B,GA4BG64hB,KAAqBva,GAA2BpzT,EAAAA,cAAoBypU,GAAYr+T,GAAS,CAC1FjqE,MAAOorY,EACPxhiB,MAAOs1J,EACPqpY,cAAemC,EACf14hB,KAAM,SACNg6O,SAjDmB,SAAwBr4O,GAC3CyiY,EAAcg2J,EAAkBz4hB,GAClC,EAgDEkhe,QAjCkB,SAAuBlhe,GACzCkhe,EAAQu3D,EAAkBz4hB,GAC5B,GAgCG64hB,KAAqBta,GAA2BrzT,EAAAA,cAAoBypU,GAAYr+T,GAAS,CAC1FjqE,MAAOsrY,EACP1hiB,MAAOwjB,EACPm7gB,cAAeqC,EACf54hB,KAAM,SACNg6O,SArDmB,SAAwBr4O,GAC3CyiY,EAAci2J,GAAkB14hB,GAClC,EAoDEkhe,QArCkB,SAAuBlhe,GACzCkhe,EAAQw3D,GAAkB14hB,GAC5B,GAoCG64hB,KAAqBra,GAAgCtzT,EAAAA,cAAoBypU,GAAYr+T,GAAS,CAC/FjqE,MAAOwrY,EACP5hiB,MAAOo1J,EACPupY,cAAeuC,EACf94hB,KAAM,cACNg6O,SAzDwB,SAA6Br4O,GACrDyiY,EAAck2J,GAAuB34hB,GACvC,EAwDEkhe,QAzCuB,SAA4Blhe,GACnDkhe,EAAQy3D,GAAuB34hB,GACjC,GAwCG64hB,KAAqBpa,GAA6BvzT,EAAAA,cAAoBypU,GAAYr+T,GAAS,CAC5FjqE,MAAO0rY,EACP9hiB,MAAO61B,EACPztB,KAAM,WACNg6O,SA5DqB,SAA0Br4O,GAC/CyiY,EAAcm2J,GAAgB54hB,GAChC,EA2DEkhe,QA5CoB,SAAyBlhe,GAC7Ckhe,EAAQ03D,GAAgB54hB,GAC1B,GA2CG64hB,KACL,CC9Qe,SAASC,GAAU5pf,GAChC,IAAIyhM,EAAYzhM,EAAMyhM,UACpB16O,EAAQi5C,EAAMj5C,MACdo1B,EAAS6jB,EAAM7jB,OACfk2f,EAAiBrye,EAAMqye,eACvBtB,EAAW/we,EAAM+we,SAEjB3lhB,GADS2lhB,GAAY,CAAC,GACR3lhB,OACZk5hB,EAAiB,GAAG33hB,OAAO80O,EAAW,eAKxC9mG,EADYopG,GADC88S,GAAQ7gf,EAAO,QACS,GACpB,GAGnB,OAAoBg8K,EAAAA,cAAoB2kU,GAAavhb,SAAU,CAC7Dr4G,MAAO4zI,GACOqhF,EAAAA,cAAoB,MAAO,CACzCtsN,UAAWisN,KAAW2oU,IACRtoU,EAAAA,cAAoBspU,GAAa,KAAMv+hB,EAAQ82R,GAAY92R,EAAO,CAChFo1B,OAAQA,EACR/wB,OAAQA,EACRinhB,eAAgBA,IACb,QAAsBr2T,EAAAA,cAAoBurU,GAAexW,IAChE,CCRA,IAAI8Y,GAAoB,CACtBrsgB,KAAMwmgB,GACNnje,SCnBa,SAAuB7gB,GACpC,IAAIyhM,EAAYzhM,EAAMyhM,UACpB4wS,EAAiBrye,EAAMqye,eACvBtB,EAAW/we,EAAM+we,SACjBlsQ,EAAW7kO,EAAM6kO,SACjB99Q,EAAQi5C,EAAMj5C,MACd8thB,EAAc70e,EAAM60e,YACpB7iD,EAAUhyb,EAAMgyb,QACdsyD,EAAiB,GAAG33hB,OAAO80O,EAAW,mBAKxCs+S,EADgBh8S,GADC64S,GAAYvK,EAAgBtB,GACA,GAChB,GAG3B+Y,EAAY,SAAmBtsgB,GACjC,OACSo2f,GAASvB,EAAgB70f,EAD9Bz2B,GAGkC8thB,EACxC,EAeA,OAAoB74T,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAW40hB,GACGtoU,EAAAA,cAAoBgoU,GAAW58T,GAAS,CAAC,EAAGpnL,EAAO,CACjE6kO,SAViB,SAAsBrnP,GAEvC,IAAIusgB,EAAYD,EAAUtsgB,GAC1BqnP,EAASk7Q,EAAagK,EAAWA,GACnC,EAOE/3D,QAhBgB,SAAqBx0c,GACzB,OAAZw0c,QAAgC,IAAZA,GAAsBA,EAAQx0c,EAAOssgB,EAAUtsgB,GAAQA,EAC7E,KAekBw+L,EAAAA,cAAoB4tU,GAAW5pf,GACnD,EDtBEmhB,KEpBa,SAAmBnhB,GAChC,IAAIyhM,EAAYzhM,EAAMyhM,UACpB4wS,EAAiBrye,EAAMqye,eACvBl2f,EAAS6jB,EAAM7jB,OACfp1B,EAAQi5C,EAAMj5C,MACdg6hB,EAAa/gf,EAAM+gf,WACnBC,EAAkBhhf,EAAMghf,gBAGtBgJ,EAAa7tgB,EAAOA,OACpB8tgB,EAAe,GAAGt9hB,OAAO80O,EAAW,mBAwBxC,OAAoBzlB,EAAAA,cAAoBgoU,GAAW58T,GAAS,CAAC,EAAGpnL,EAAO,CACrE7zC,KAAM,OACN+3hB,UAAW,OACXzvD,aA1BiB,SAAsBplU,GACvC,IAAI66X,EAAW,CAAC,EAChB,GAAIlJ,EAAiB,CACnB,IAAIuB,EAAmBx+S,GAAei9S,EAAiB,GACrDqB,EAAaE,EAAiB,GAC9BD,EAAWC,EAAiB,GAC1B4H,EAAe/W,GAAWf,EAAgB2X,EAAY3H,EAAYhzX,GAClE+6X,EAAahX,GAAWf,EAAgB2X,EAAY1H,EAAUjzX,GAClE66X,EAAS,GAAGv9hB,OAAOs9hB,EAAc,iBAAmBE,EACpDD,EAAS,GAAGv9hB,OAAOs9hB,EAAc,eAAiBG,EAClDF,EAAS,GAAGv9hB,OAAOs9hB,EAAc,kBAAoBE,IAAiBC,GAAcl3F,GAAUm/E,EAAgBgQ,EAAYC,EAAUjzX,EACtI,CAMA,OALI0xX,IACFmJ,EAAS,GAAGv9hB,OAAOs9hB,EAAc,WAAalJ,EAAWxnhB,MAAK,SAAUikB,GACtE,OAAO41f,GAAWf,EAAgB2X,EAAY36X,EAAa7xI,EAC7D,KAEKm+L,KAAWsuU,GAAcjqb,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAOs9hB,EAAc,cAAejJ,GAAmB5N,GAAWf,EAAgB2X,EAAYjjiB,EAAOsoK,IAE5J66X,EACF,IAQF,EFlBExsgB,MGpBa,SAAoBsiB,GACjC,IAAIyhM,EAAYzhM,EAAMyhM,UACpBtlN,EAAS6jB,EAAM7jB,OACfk2f,EAAiBrye,EAAMqye,eACvBwC,EAAc70e,EAAM60e,YACpBH,EAAe10e,EAAM00e,aACrBkE,EAAsB54e,EAAM44e,oBAC5BuL,EAAenkf,EAAMmkf,aACnBG,EAAiB,GAAG33hB,OAAO80O,EAAW,gBAKxC9mG,EADYopG,GADC88S,GAAQ7gf,EAAO,SACS,GACpB,GACfuhf,EAAWlP,EAAe7tX,SAASqwX,EAAa,GAGhDmQ,EAAe7ogB,EAAO8ogB,cAAgB5S,EAAel2f,OAAOiwf,eAAiBiG,EAAel2f,OAAOiwf,eAAejwf,EAAOA,QAAU,IAmBnI+lgB,EAAqBxN,EAAe,SAAUrlX,EAAag7X,GAC7D,IAAI3W,EAAYrB,EAAe5vX,QAAQ4M,EAAa,GAChDi7X,EAAqBjY,EAAe7tX,SAASkvX,EAAWrB,EAAezzf,SAAS80f,GAAa,GAC7FC,EAAUtB,EAAe9G,QAAQ+e,GAAqB,GAC1D,OAAO5V,EAAahB,EAAW2W,IAAiB3V,EAAaf,EAAS0W,EACxE,EAAI,KAGAnF,EAAwBlpU,EAAAA,cAAoB,SAAU,CACxD7sN,KAAM,SACNlC,IAAK,OACL,aAAckvB,EAAO22S,WACrBx2P,QAAS,WACP6nd,EAAa,OACf,EACAn4S,UAAW,EACXt8O,UAAW,GAAG/C,OAAO80O,EAAW,cAC/Bo8C,GAAYg3P,EAAa,CAC1B14f,OAAQA,EACR/wB,OAAQ+wB,EAAOi2S,WACfigN,eAAgBA,KAIlB,OAAoBr2T,EAAAA,cAAoB2kU,GAAavhb,SAAU,CAC7Dr4G,MAAO4zI,GACOqhF,EAAAA,cAAoB,MAAO,CACzCtsN,UAAW40hB,GACGtoU,EAAAA,cAAoBspU,GAAa,CAC/C5C,YAAa,SAAqB1ga,GAChC,OAAOqwZ,EAAehH,QAAQwJ,EAAa7yZ,EAC7C,EACAmnH,SAAUyvS,EAGV+J,SAAU,SAAkBnlgB,GAC1B,OAAO60f,EAAe7tX,SAAShnI,EAAM,EACvC,EACAolgB,OAAQ,SAAgBplgB,GACtB,OAAO60f,EAAe7tX,SAAShnI,EAAM,GACvC,GACC0ngB,GAAwBlpU,EAAAA,cAAoBolU,GAAWh6T,GAAS,CAAC,EAAGpnL,EAAO,CAC5E00e,aAAcwN,EACdR,YAAavlgB,EAAOyxf,iBACpB0T,OAAQ,EACRD,OAAQ,EACRE,SAAUA,EAGVC,YAjEgB,SAAqBhkgB,EAAMylC,GAC3C,OAAOovd,EAAe/G,SAAS9tf,EAAMylC,EACvC,EAgEE0+d,YA/DgB,SAAqBnkgB,GACrC,IAAIE,EAAQ20f,EAAezzf,SAASpB,GACpC,OAAOrB,EAAOipgB,YAAcvnQ,GAAYrgQ,EAAM,CAC5CrB,OAAQA,EACR/wB,OAAQ+wB,EAAOipgB,YACf/S,eAAgBA,IACb2S,EAAatngB,EACpB,EAyDEkkgB,iBAxDqB,WACrB,OAAO5hb,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,kBAAkB,EACpE,MAwDF,EHpEEllF,QIrBa,SAAsBv8G,GACnC,IAAIyhM,EAAYzhM,EAAMyhM,UACpBtlN,EAAS6jB,EAAM7jB,OACfk2f,EAAiBrye,EAAMqye,eACvBwC,EAAc70e,EAAM60e,YACpB+D,EAAsB54e,EAAM44e,oBAC5BuL,EAAenkf,EAAMmkf,aACnBG,EAAiB,GAAG33hB,OAAO80O,EAAW,kBAKxC9mG,EADYopG,GADC88S,GAAQ7gf,EAAO,WACS,GACpB,GACfuhf,EAAWlP,EAAe7tX,SAASqwX,EAAa,GAkBhDqQ,EAAwBlpU,EAAAA,cAAoB,SAAU,CACxD7sN,KAAM,SACNlC,IAAK,OACL,aAAckvB,EAAO22S,WACrBx2P,QAAS,WACP6nd,EAAa,OACf,EACAn4S,UAAW,EACXt8O,UAAW,GAAG/C,OAAO80O,EAAW,cAC/Bo8C,GAAYg3P,EAAa,CAC1B14f,OAAQA,EACR/wB,OAAQ+wB,EAAOi2S,WACfigN,eAAgBA,KAIlB,OAAoBr2T,EAAAA,cAAoB2kU,GAAavhb,SAAU,CAC7Dr4G,MAAO4zI,GACOqhF,EAAAA,cAAoB,MAAO,CACzCtsN,UAAW40hB,GACGtoU,EAAAA,cAAoBspU,GAAa,CAC/C5C,YAAa,SAAqB1ga,GAChC,OAAOqwZ,EAAehH,QAAQwJ,EAAa7yZ,EAC7C,EACAmnH,SAAUyvS,EAGV+J,SAAU,SAAkBnlgB,GAC1B,OAAO60f,EAAe7tX,SAAShnI,EAAM,EACvC,EACAolgB,OAAQ,SAAgBplgB,GACtB,OAAO60f,EAAe7tX,SAAShnI,EAAM,GACvC,GACC0ngB,GAAwBlpU,EAAAA,cAAoBolU,GAAWh6T,GAAS,CAAC,EAAGpnL,EAAO,CAC5E0hf,YAAavlgB,EAAO2xf,mBACpBwT,OAAQ,EACRD,OAAQ,EACRE,SAAUA,EAGVC,YAvDgB,SAAqBhkgB,EAAMylC,GAC3C,OAAOovd,EAAe/G,SAAS9tf,EAAe,EAATylC,EACvC,EAsDE0+d,YArDgB,SAAqBnkgB,GACrC,OAAOqgQ,GAAYrgQ,EAAM,CACvBrB,OAAQA,EACR/wB,OAAQ+wB,EAAOwzf,kBACf0C,eAAgBA,GAEpB,EAgDEuP,iBA/CqB,WACrB,OAAO5hb,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,kBAAkB,EACpE,MA+CF,EJrDEhkN,KKtBa,SAAmBuiB,GAChC,IAAIyhM,EAAYzhM,EAAMyhM,UACpBtlN,EAAS6jB,EAAM7jB,OACfk2f,EAAiBrye,EAAMqye,eACvBwC,EAAc70e,EAAM60e,YACpBH,EAAe10e,EAAM00e,aACrBkE,EAAsB54e,EAAM44e,oBAC5BuL,EAAenkf,EAAMmkf,aACnBG,EAAiB,GAAG33hB,OAAO80O,EAAW,eAKxC9mG,EADYopG,GADC88S,GAAQ7gf,EAAO,QACS,GACpB,GACfuqf,EAAe,SAAsB/sgB,GACvC,IAAIgtgB,EAA4D,GAAhD7giB,KAAKC,MAAMyohB,EAAejsO,QAAQ5oR,GAAQ,IAC1D,OAAO60f,EAAe7G,QAAQhuf,EAAMgtgB,EACtC,EACIC,EAAa,SAAoBjtgB,GACnC,IAAIgtgB,EAAYD,EAAa/sgB,GAC7B,OAAO60f,EAAehH,QAAQmf,EAAW,EAC3C,EACIE,EAAgBH,EAAa1V,GAC7B8V,EAAcF,EAAW5V,GACzB0M,EAAWlP,EAAehH,QAAQqf,GAAgB,GAkBlDxI,EAAqBxN,EAAe,SAAUrlX,EAAag7X,GAE7D,IAAIO,EAAavY,EAAe7tX,SAAS6K,EAAa,GAClDqkX,EAAYrB,EAAe5vX,QAAQmoY,EAAY,GAG/CC,EAAWxY,EAAehH,QAAQqI,EAAW,GAC7CC,EAAUtB,EAAe9G,QAAQsf,GAAW,GAChD,OAAOnW,EAAahB,EAAW2W,IAAiB3V,EAAaf,EAAS0W,EACxE,EAAI,KAGAnF,EAAwBlpU,EAAAA,cAAoB,SAAU,CACxD7sN,KAAM,SACNlC,IAAK,SACL,aAAckvB,EAAO42S,aACrBz2P,QAAS,WACP6nd,EAAa,SACf,EACAn4S,UAAW,EACXt8O,UAAW,GAAG/C,OAAO80O,EAAW,gBAC/Bo8C,GAAY6sQ,EAAe,CAC5BvugB,OAAQA,EACR/wB,OAAQ+wB,EAAOi2S,WACfigN,eAAgBA,IACd,IAAKx0P,GAAY8sQ,EAAa,CAChCxugB,OAAQA,EACR/wB,OAAQ+wB,EAAOi2S,WACfigN,eAAgBA,KAIlB,OAAoBr2T,EAAAA,cAAoB2kU,GAAavhb,SAAU,CAC7Dr4G,MAAO4zI,GACOqhF,EAAAA,cAAoB,MAAO,CACzCtsN,UAAW40hB,GACGtoU,EAAAA,cAAoBspU,GAAa,CAC/C5C,YAAa,SAAqB1ga,GAChC,OAAOqwZ,EAAehH,QAAQwJ,EAAwB,GAAX7yZ,EAC7C,EACAmnH,SAAUyvS,EAGV+J,SAAU4H,EACV3H,OAAQ6H,GACPvF,GAAwBlpU,EAAAA,cAAoBolU,GAAWh6T,GAAS,CAAC,EAAGpnL,EAAO,CAC5E00e,aAAcwN,EACdR,YAAavlgB,EAAO0xf,gBACpByT,OAAQ,EACRD,OAAQ,EACRE,SAAUA,EAGVC,YApEgB,SAAqBhkgB,EAAMylC,GAC3C,OAAOovd,EAAehH,QAAQ7tf,EAAMylC,EACtC,EAmEE0+d,YAlEgB,SAAqBnkgB,GACrC,OAAOqgQ,GAAYrgQ,EAAM,CACvBrB,OAAQA,EACR/wB,OAAQ+wB,EAAOuzf,eACf2C,eAAgBA,GAEpB,EA6DEuP,iBA5DqB,SAA0BpkgB,GAC/C,OAAOwiF,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,iBAAkB+wS,GAAWH,EAAgB70f,EAAMktgB,IAAkBlY,GAAWH,EAAgB70f,EAAMmtgB,IAAgBz3F,GAAUm/E,EAAgBqY,EAAeC,EAAantgB,GAC9N,MA4DF,EL5EEstgB,OMvBa,SAAqB9qf,GAClC,IAAIyhM,EAAYzhM,EAAMyhM,UACpBtlN,EAAS6jB,EAAM7jB,OACfk2f,EAAiBrye,EAAMqye,eACvBwC,EAAc70e,EAAM60e,YACpBH,EAAe10e,EAAM00e,aACrBkE,EAAsB54e,EAAM44e,oBAC1B0L,EAAiB,GAAG33hB,OAAO80O,EAAW,iBAKxC9mG,EADYopG,GADC88S,GAAQ7gf,EAAO,UACS,GACpB,GACfuqf,EAAe,SAAsB/sgB,GACvC,IAAIgtgB,EAA6D,IAAjD7giB,KAAKC,MAAMyohB,EAAejsO,QAAQ5oR,GAAQ,KAC1D,OAAO60f,EAAe7G,QAAQhuf,EAAMgtgB,EACtC,EACIC,EAAa,SAAoBjtgB,GACnC,IAAIgtgB,EAAYD,EAAa/sgB,GAC7B,OAAO60f,EAAehH,QAAQmf,EAAW,GAC3C,EACIE,EAAgBH,EAAa1V,GAC7B8V,EAAcF,EAAW5V,GACzB0M,EAAWlP,EAAehH,QAAQqf,GAAgB,IAyBlDxI,EAAqBxN,EAAe,SAAUrlX,EAAag7X,GAE7D,IAAIU,EAAgB1Y,EAAe5vX,QAAQ4M,EAAa,GACpD27X,EAAiB3Y,EAAe7tX,SAASumY,EAAe,GACxDE,EAAgB5Y,EAAe7G,QAAQwf,EAA0E,GAA1DrhiB,KAAKC,MAAMyohB,EAAejsO,QAAQ4kP,GAAkB,KAG3GE,EAAc7Y,EAAehH,QAAQ4f,EAAe,IACpDE,EAAc9Y,EAAe9G,QAAQ2f,GAAc,GACvD,OAAOxW,EAAauW,EAAeZ,IAAiB3V,EAAayW,EAAad,EAChF,EAAI,KAGAnF,EAAW,GAAGv4hB,OAAOkxR,GAAY6sQ,EAAe,CAClDvugB,OAAQA,EACR/wB,OAAQ+wB,EAAOi2S,WACfigN,eAAgBA,IACd,KAAK1lhB,OAAOkxR,GAAY8sQ,EAAa,CACvCxugB,OAAQA,EACR/wB,OAAQ+wB,EAAOi2S,WACfigN,eAAgBA,KAIlB,OAAoBr2T,EAAAA,cAAoB2kU,GAAavhb,SAAU,CAC7Dr4G,MAAO4zI,GACOqhF,EAAAA,cAAoB,MAAO,CACzCtsN,UAAW40hB,GACGtoU,EAAAA,cAAoBspU,GAAa,CAC/C5C,YAAa,SAAqB1ga,GAChC,OAAOqwZ,EAAehH,QAAQwJ,EAAwB,IAAX7yZ,EAC7C,EACAmnH,SAAUyvS,EAGV+J,SAAU4H,EACV3H,OAAQ6H,GACPvF,GAAwBlpU,EAAAA,cAAoBolU,GAAWh6T,GAAS,CAAC,EAAGpnL,EAAO,CAC5E00e,aAAcwN,EACdZ,OAAQ,EACRD,OAAQ,EACRE,SAAUA,EAGVC,YAlEgB,SAAqBhkgB,EAAMylC,GAC3C,OAAOovd,EAAehH,QAAQ7tf,EAAe,GAATylC,EACtC,EAiEE0+d,YAhEgB,SAAqBnkgB,GACrC,IAAIkyf,EAAiBvzf,EAAOuzf,eACxB0b,EAAevtQ,GAAYrgQ,EAAM,CACnCrB,OAAQA,EACR/wB,OAAQskhB,EACR2C,eAAgBA,IAEdgZ,EAAaxtQ,GAAYw0P,EAAehH,QAAQ7tf,EAAM,GAAI,CAC5DrB,OAAQA,EACR/wB,OAAQskhB,EACR2C,eAAgBA,IAElB,MAAO,GAAG1lhB,OAAOy+hB,EAAc,KAAKz+hB,OAAO0+hB,EAC7C,EAoDEzJ,iBAnDqB,SAA0BpkgB,GAC/C,OAAOwiF,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,iBAAkB2wS,GAAaC,EAAgB70f,EAAMktgB,IAAkBtY,GAAaC,EAAgB70f,EAAMmtgB,IAAgBz3F,GAAUm/E,EAAgBqY,EAAeC,EAAantgB,GAClO,MAmDF,ENxEE0jC,KAAM0oe,IAER,SAAS0B,GAAYtrf,EAAON,GAC1B,IAAI41M,EACAn5N,EAAS6jB,EAAM7jB,OACjBk2f,EAAiBrye,EAAMqye,eACvBzsZ,EAAY5lF,EAAM4lF,UAClB67G,EAAYzhM,EAAMyhM,UAClB8pT,EAAkBvrf,EAAMgsM,SACxBA,OAA+B,IAApBu/S,EAA6B,EAAIA,EAC5Cnvd,EAAWp8B,EAAMo8B,SACjB11C,EAAesZ,EAAMtZ,aACrB3/B,EAAQi5C,EAAMj5C,MACdoiP,EAAWnpM,EAAMmpM,SACjB07B,EAAW7kO,EAAM6kO,SACjBiwQ,EAAqB90e,EAAM80e,mBAC3BD,EAAc70e,EAAM60e,YACpB+D,EAAsB54e,EAAM44e,oBAC5BzshB,EAAO6zC,EAAM7zC,KACbq/hB,EAAgBxrf,EAAMwrf,cACtBtX,EAAgBl0e,EAAMyte,OACtBA,OAA2B,IAAlByG,EAA2B,OAASA,EAC7CnD,EAAW/we,EAAM+we,SACjBgQ,EAAa/gf,EAAM+gf,WACnBC,EAAkBhhf,EAAMghf,gBACxBzS,EAAavue,EAAMuue,WACnBC,EAAaxue,EAAMwue,WACnBC,EAAkBzue,EAAMyue,gBACxB6F,EAAoBt0e,EAAMkjO,WAC1BA,OAAmC,IAAtBoxQ,EAA+B,CAAC,EAAIA,EACjD8O,EAAapjf,EAAMojf,WACjB3lN,GAA6E,QAAzDnoF,EAAoBt5B,EAAAA,WAAiBkxT,WAAkD,IAAtB53R,OAA+B,EAASA,EAAkB7T,YAAcA,GAAa,YAG1Kq4R,EAAU99S,EAAAA,SACdA,EAAAA,oBAA0Bt8K,GAAK,WAC7B,MAAO,CACLs4L,cAAe8hS,EAAQ1re,QAE3B,IAKA,IACEknf,EAAiBvxS,GADC8sS,GAAa7we,GACgB,GAC/Cixe,EAAYqE,EAAe,GAC3BC,EAAkBD,EAAe,GACjC3D,EAAiB2D,EAAe,GAChCpE,EAAaoE,EAAe,GAG1BmW,EAAexuM,GAAU9gU,EAAQo5f,GAGjCL,EAA4B,SAAXzH,GAAqBsD,EAAW,WAAatD,EAG9D+H,EAAiBx5T,EAAAA,SAAc,WACjC,OAAO01T,GAAmBwD,EAAgBvD,EAAgBT,EAAYD,EAAWwa,EACnF,GAAG,CAACvW,EAAgBvD,EAAgBT,EAAYD,EAAWwa,IAGvD3we,EAAMu3d,EAAezH,SASvBjlQ,EAAmB5hC,GANCkF,GAAewkS,EAAQ,CACzC1mhB,MAAOoF,EACPi9O,UAAW,SAAmBt4O,GAC5B,OAAOA,GAAO,MAChB,IAEiD,GACnDy1Q,EAAaZ,EAAiB,GAC9B+lR,EAAgB/lR,EAAiB,GAC/Be,EAA8B,SAAfH,GAAyBivQ,EAAiB,WAAajvQ,EAGtEolR,EAAcnL,GAAenO,EAAgBl2f,EAAQ+4f,GAQvD9tQ,EAAmBrjC,GAHEkF,GAAeviN,EAAc,CAChD3/B,MAAOA,IAE2C,GACpDsiP,EAAa+9B,EAAiB,GAC9BgzH,EAAiBhzH,EAAiB,GAChC79B,EAAcvtB,EAAAA,SAAc,WAE9B,IAAIx9M,EAASmxF,GAAQ05I,GAAY/vO,QAAO,SAAUxI,GAChD,OAAOA,CACT,IACA,OAAOsrE,EAAW59D,EAASA,EAAOrR,MAAM,EAAG,EAC7C,GAAG,CAACk8O,EAAYjtK,IAGZm3T,EAAgB7wJ,IAAS,SAAUwB,GACrCk2J,EAAel2J,GACXiF,IAA2B,OAAdjF,GAAsBqF,EAAYjgP,SAAW46O,EAAU56O,QAAUigP,EAAYhwO,MAAK,SAAU0hQ,EAAK5iQ,GAChH,OAAQsnB,GAAO0yf,EAAgBl2f,EAAQ8+O,EAAK/2B,EAAU7rO,GAAQ68gB,EAChE,OACe,OAAb/rS,QAAkC,IAAbA,GAAuBA,EAAS/sK,EAAW8nK,EAAYA,EAAU,IAE1F,IAKIimL,EAAmBznL,IAAS,SAAUkpT,GAExC,GADa,OAAb/mR,QAAkC,IAAbA,GAAuBA,EAAS+mR,GACjDrlR,IAAeknQ,EAAQ,CACzB,IAAIhjH,EAAaruV,EAAWuvd,EAAYpiT,EAAaqiT,GAAW,CAACA,GACjEr4J,EAAck3B,EAChB,CACF,IAOE7iJ,EAAmB7jC,GAHEkF,GAAe6rS,GAAsBvrS,EAAY,IAAMzuL,EAAK,CAC/E/zD,MAAO8thB,IAE2C,GACpDgX,GAAoBjkR,EAAiB,GACrCkkR,GAAyBlkR,EAAiB,GAC5C5rD,EAAAA,WAAgB,WACVutB,EAAY,KAAOsrS,GACrBiX,GAAuBviT,EAAY,GAEvC,GAAG,CAACA,EAAY,KAGhB,IAAIwiT,GAAqB,SAA4BC,EAAUC,GAC3C,OAAlBT,QAA4C,IAAlBA,GAA4BA,EAAcQ,GAAYnX,EAAaoX,GAAY1lR,EAC3G,EACI2lR,GAAiB,SAAwB1S,GAC3C,IAAI2S,EAAoBv0hB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GACvFk0hB,GAAuBtS,GACC,OAAxBZ,QAAwD,IAAxBA,GAAkCA,EAAoBY,GAClF2S,GACFJ,GAAmBvS,EAEvB,EACI4S,GAAoB,SAA2BH,EAAUD,GAC3DN,EAAcO,GACVD,GACFE,GAAeF,GAEjBD,GAAmBC,EAAUC,EAC/B,EAwBII,GAAiBrwU,EAAAA,SAAc,WACjC,IAAIhxM,EACAC,EACJ,GAAIjiB,MAAMqR,QAAQ2mhB,GAAkB,CAClC,IAAIuB,EAAmBx+S,GAAei9S,EAAiB,GACvDh2gB,EAAQu3gB,EAAiB,GACzBt3gB,EAAMs3gB,EAAiB,EACzB,MACEv3gB,EAAQg2gB,EAIV,OAAKh2gB,GAAUC,GAKfD,EAAQA,GAASC,EACjBA,EAAMA,GAAOD,EACNqngB,EAAevyf,QAAQ9U,EAAOC,GAAO,CAACA,EAAKD,GAAS,CAACA,EAAOC,IAN1D,IAOX,GAAG,CAAC+1gB,EAAiB3O,IAIjBia,GAAuBh9D,GAAci/C,EAAYC,EAAYC,GAG7D8d,GAAiBrpR,EAAWwD,IAAiBmjR,GAAkBnjR,IAAiBs9Q,GAGhFwI,GAAoBxwU,EAAAA,WAAiBmlU,IACrCsL,GAAqBzwU,EAAAA,SAAc,WACrC,OAAO2kB,GAAcA,GAAc,CAAC,EAAG6rT,IAAoB,CAAC,EAAG,CAC7DpJ,WAAYA,GAEhB,GAAG,CAACoJ,GAAmBpJ,IAUvB,IAAIsJ,GAAW,GAAG//hB,OAAO8wU,EAAiB,UACtCkvN,GAAapf,GAAUvte,EAAO,CAElC,WAEA,WAAY,WAAY,gBAAiB,gBAEzC,eAAgB,UAAW,UAE3B,YACA,OAAoBg8K,EAAAA,cAAoBmlU,GAAkB/hb,SAAU,CAClEr4G,MAAO0liB,IACOzwU,EAAAA,cAAoB,MAAO,CACzCt8K,IAAKo6d,EACL9tR,SAAUA,EACVt8O,UAAWisN,KAAW+wU,IAAU1sb,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO+/hB,GAAU,QAAuB,QAAd9ma,KACnEo2F,EAAAA,cAAoBuwU,GAAgBnlU,GAAS,CAAC,EAAGulU,GAAY,CAE3E5b,SAAUyE,EAGV/zS,UAAWg8F,EACXthT,OAAQsvgB,EACRpZ,eAAgBA,EAGhB8R,aAAciI,GAGdvX,YAAagX,GACbjT,oBAAqB,SAA6BY,GAChD0S,GAAe1S,GAAiB,EAClC,EACAzyhB,MAAOwiP,EAAY,GACnBs7B,SAtGuB,SAA4B3gC,GAKnD,GAJAimL,EAAiBjmL,GACjBgoT,GAAehoT,GAGXqiC,IAAeknQ,EAAQ,CACzB,IAAImf,EAAkB,CAAC,SAAU,QAC7BC,EAAuB,GAAGlgiB,OAAOigiB,EAAiB,CAAC,UAMnDx5gB,EALc,CAChBmpI,QAAS,GAAG5vJ,OAAOigiB,EAAiB,CAAC,YACrCzre,KAAM,GAAGx0D,OAAOw+O,GAAmB0hT,GAAuB,CAAC,SAC3DrvgB,KAAM,GAAG7wB,OAAOw+O,GAAmB0hT,GAAuB,CAAC,UAErCpf,IAAWof,EAC/Bx0hB,EAAQ+a,EAAMvmB,QAAQ05Q,GACtB0lR,EAAW74gB,EAAM/a,EAAQ,GACzB4zhB,GACFG,GAAkBH,EAAU/nT,EAEhC,CACF,EAmFE1lO,OAAQ+qO,EAGRglS,WAAY+d,GAGZtL,gBAAiBqL,GACjBtL,WAAYA,MAEhB,CAOA,SANkC/kU,EAAAA,KAAyBA,EAAAA,WAAiBsvU,KOjS7D,SAASwB,GAAW9sf,GACjC,IAAIyte,EAASzte,EAAMyte,OACjBiL,EAAgB14e,EAAM04e,cACtB7D,EAAc70e,EAAM60e,YACpB+D,EAAsB54e,EAAM44e,oBAC5BpE,EAAcx0e,EAAMw0e,YACpBl6N,EAAWt6Q,EAAMs6Q,SACjB9+R,EAAQwkB,EAAMxkB,MACdulgB,EAAa/gf,EAAM+gf,WACjBzrS,EAAoBt5B,EAAAA,WAAiBkxT,IACvCzrS,EAAY6T,EAAkB7T,UAC9B4wS,EAAiB/8R,EAAkB+8R,eAGjC0a,EAAqB/wU,EAAAA,aAAkB,SAAUx+L,EAAMylC,GACzD,OAAOq1d,GAAgBjG,EAAgB5E,EAAQjwf,EAAMylC,EACvD,GAAG,CAACovd,EAAgB5E,IAChB+L,EAAkBx9T,EAAAA,SAAc,WAClC,OAAO+wU,EAAmBlY,EAAa,EACzC,GAAG,CAACA,EAAakY,IAQbC,EAAgB,CAClB7K,eAAgB,WACV3N,GACFl6N,GAEJ,GAEE8oO,EAAwB,SAAX3V,EAGbwf,EAActsT,GAAcA,GAAc,CAAC,EAAG3gM,GAAQ,CAAC,EAAG,CAC5D+gf,WAAY,KACZC,gBAAiB,KACjBoC,WAAYA,IAUd,OARI5ngB,EACFyxgB,EAAYjM,gBAAkBD,EAE9BkM,EAAYlM,WAAaA,EAKvBrI,EACkB18T,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAW,GAAG/C,OAAO80O,EAAW,YAClBzlB,EAAAA,cAAoBmlU,GAAkB/hb,SAAU,CAC9Dr4G,MAAO45O,GAAcA,GAAc,CAAC,EAAGqsT,GAAgB,CAAC,EAAG,CACzD7J,UAAU,KAEEnnU,EAAAA,cAAoBsvU,GAAa2B,IAA4BjxU,EAAAA,cAAoBmlU,GAAkB/hb,SAAU,CAC3Hr4G,MAAO45O,GAAcA,GAAc,CAAC,EAAGqsT,GAAgB,CAAC,EAAG,CACzD9J,UAAU,KAEElnU,EAAAA,cAAoBsvU,GAAalkU,GAAS,CAAC,EAAG6lU,EAAa,CACzEpY,YAAa2E,EACbZ,oBAzC4B,SAAmCyG,GACjEzG,EAAoBmU,EAAmB1N,GAAW,GACpD,OA4CoBrjU,EAAAA,cAAoBmlU,GAAkB/hb,SAAU,CAClEr4G,MAAO45O,GAAc,CAAC,EAAGqsT,IACXhxU,EAAAA,cAAoBsvU,GAAa2B,GACnD,CC7EA,SAASC,GAAanmiB,GACpB,MAAwB,oBAAVA,EAAuBA,IAAUA,CACjD,CACe,SAASomiB,GAAYntf,GAClC,IAAIyhM,EAAYzhM,EAAMyhM,UACpBk2S,EAAU33e,EAAM23e,QAChByV,EAAWptf,EAAMs8B,QACjB01Z,EAAUhyb,EAAMgyb,QAClB,OAAK2lD,EAAQruhB,OAGO0yN,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAW,GAAG/C,OAAO80O,EAAW,aAClBzlB,EAAAA,cAAoB,KAAM,KAAM27T,EAAQnihB,KAAI,SAAU49I,EAAM/6I,GAC1E,IAAI4oG,EAAQmyC,EAAKnyC,MACfl6G,EAAQqsJ,EAAKrsJ,MACf,OAAoBi1N,EAAAA,cAAoB,KAAM,CAC5C/uN,IAAKoL,EACLikE,QAAS,WACP8wd,EAASF,GAAanmiB,GACxB,EACAquP,aAAc,WACZ48O,EAAQk7D,GAAanmiB,GACvB,EACAsuP,aAAc,WACZ28O,EAAQ,KACV,GACC/wX,EACL,MAnBS,IAoBX,CCnBe,SAASg+J,GAAMj/N,GAC5B,IAAIqtf,EAAcrtf,EAAMqtf,YACtB3mR,EAAe1mO,EAAM0mO,aACrB+mQ,EAASzte,EAAMyte,OACf4O,EAAUr8e,EAAMq8e,QAChB7ggB,EAAQwkB,EAAMxkB,MACd4gD,EAAWp8B,EAAMo8B,SACjBkxd,EAAoBttf,EAAMutf,WAC1BA,OAAmC,IAAtBD,EAA+B,CAAC,EAAG,EAAG,GAAKA,EACxD3V,EAAU33e,EAAM23e,QAChB6V,EAAgBxtf,EAAMwtf,cACtBC,EAAiBztf,EAAMytf,eACvBh3S,EAAUz2M,EAAMy2M,QAChB44I,EAASrvV,EAAMqvV,OACfq+J,EAAmB1tf,EAAM0tf,iBACzB9na,EAAY5lF,EAAM4lF,UAClB7+H,EAAQi5C,EAAMj5C,MACd89Q,EAAW7kO,EAAM6kO,SACjB8oR,EAAY3tf,EAAM2tf,UAClBnc,EAAmBxxe,EAAMwxe,iBACzBvyL,EAAOj/S,EAAMi/S,KACb3kC,EAAWt6Q,EAAMs6Q,SAEjB74E,EADsBzlB,EAAAA,WAAiBkxT,IACTzrS,UAC5B6iT,EAAiB,GAAG33hB,OAAO80O,EAAW,UACtCkU,EAAoB,QAAd/vH,EAGN8jI,EAAW1tC,EAAAA,OAAa,MACxBujB,EAAavjB,EAAAA,OAAa,MAI5B8nB,EAAmBC,GADC/nB,EAAAA,SAAe,GACgB,GACnD6pB,EAAiB/B,EAAiB,GAClCgC,EAAoBhC,EAAiB,GAErCkQ,EAAmBjQ,GADE/nB,EAAAA,SAAe,GACgB,GACpD4xU,EAAkB55S,EAAiB,GACnC65S,EAAqB75S,EAAiB,GAEtCke,EAAmBnuB,GADE/nB,EAAAA,SAAe,GACgB,GACpD6kG,EAAc3uD,EAAiB,GAC/B47R,EAAiB57R,EAAiB,GAMhC67R,EAAchqT,GAAewpT,EAAY,GAC3CS,EAAkBD,EAAY,GAC9BE,EAAmBF,EAAY,GAC/BG,EAAgBH,EAAY,GA0B9B,SAASI,EAAYvlS,GACnB,OAAOA,EAAKtvP,QAAO,SAAU+gC,GAC3B,OAAOA,CACT,GACF,CA7BA2hL,EAAAA,WAAgB,WAGd,GAAIxgM,GAAS+jN,EAAWnxM,QAAS,CAC/B,IAAIgggB,EAEA3sO,GAAyD,QAA1C2sO,EAAoB1kS,EAASt7N,eAA2C,IAAtBgggB,OAA+B,EAASA,EAAkBhsb,cAAgB,EAG3Iisb,EAAc9uT,EAAWnxM,QAAQvlC,wBACjCyliB,GAAmB34S,EAAMs4S,EAAmBxsO,EAAausO,GAAmBK,EAAY7kiB,KAI5F,GAHAskiB,EAAeQ,GAGXzoT,GAAkBA,EAAiBqoT,EAAe,CACpD,IAAIjre,EAAS0yL,EAAM04S,EAAY16hB,OAASs6hB,EAAmBxsO,EAAa57E,GAAkBmoT,EAAkBvsO,EAAa4sO,EAAY7kiB,KAAOq8O,EACxI0oT,EAAa5kiB,KAAKwhB,IAAI,EAAG83C,GAC7B4qe,EAAmBU,EACrB,MACEV,EAAmB,EAEvB,CACF,GAAG,CAACl4S,EAAK9P,EAAgBmoT,EAAiBC,EAAkBC,EAAe1ygB,IAQ3E,IAAIgzgB,EAAYxyU,EAAAA,SAAc,WAC5B,OAAOmyU,EAAYx+b,GAAQ5oG,GAC7B,GAAG,CAACA,IACA0niB,EAAoC,SAAXhhB,IAAsB+gB,EAAUlliB,OACzDoliB,EAAoB1yU,EAAAA,SAAc,WACpC,OAAIyyU,EACKN,EAAY,CAAC3c,IAEfgd,CACT,GAAG,CAACC,EAAwBD,EAAWhd,IACnCmd,EAAkBF,EAAyBjd,EAAmBgd,EAC9DI,EAAgB5yU,EAAAA,SAAc,WAEhC,OAAK0yU,EAAkBpliB,QAGhBoliB,EAAkBn1hB,MAAK,SAAUzI,GACtC,OAAO68hB,EAAU78hB,EACnB,GACF,GAAG,CAAC49hB,EAAmBf,IASnBkB,EAA2B7yU,EAAAA,cAAoB,MAAO,CACxDtsN,UAAW,GAAG/C,OAAO80O,EAAW,kBAClBzlB,EAAAA,cAAoBmxU,GAAa,CAC/C1rT,UAAWA,EACXk2S,QAASA,EACTr7c,QAASmxd,EACTz7D,QAASw7D,IACMxxU,EAAAA,cAAoB,MAAO,KAAmBA,EAAAA,cAAoB8wU,GAAY1lU,GAAS,CAAC,EAAGpnL,EAAO,CACjHj5C,MAAO4niB,KACS3yU,EAAAA,cAAoB6sI,GAAQzhI,GAAS,CAAC,EAAGpnL,EAAO,CAChEq8e,SAASjgd,GAAmBigd,EAC5BpnX,QAAS25X,EACTt0O,SApBmB,WAEfm0O,GACF5pR,EAAS2sQ,GAEXvyL,IACA3kC,GACF,OAeI+yO,IACFwB,EAAcxB,EAAYwB,IAI5B,IAAIC,EAAqB,GAAGniiB,OAAO23hB,EAAgB,cAC/C19Z,EAAa,aACbF,EAAc,cAGdmkB,EAA0BmxE,EAAAA,cAAoB,MAAO,CACvDqkI,YAAaqtM,EACb1hT,UAAW,EACXt8O,UAAWisN,KAAWmzU,EACtB,GAAGniiB,OAAO80O,EAAW,KAAK90O,OAAO+5Q,EAAc,qBAC/Cj5Q,OAAOuyG,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG21I,EAAMjvH,EAAcE,EAAYgna,GAAkBj4S,EAAM/uH,EAAaF,EAAa,QAM7H+vH,QAASA,EACT44I,OAAQA,GACPw/J,GAgBH,OAfIrzgB,IACFqvH,EAA0BmxE,EAAAA,cAAoB,MAAO,CACnDqkI,YAAaqtM,EACbhuf,IAAK6/L,EACL7vO,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,kBAAmB,GAAG90O,OAAO80O,EAAW,KAAK90O,OAAO8ghB,EAAQ,oBACzFzxT,EAAAA,cAAoB,MAAO,CACzCt8K,IAAKgqN,EACLh6P,UAAW,GAAG/C,OAAO80O,EAAW,gBAChCh0O,MAAO,CACLjE,KAAMq3T,KAEO7kG,EAAAA,cAAoBwiB,GAAgB,CACnD4B,SArHW,SAAkBzlG,GAC3BA,EAAKvwI,OACP07O,EAAkBnrG,EAAKvwI,MAE3B,GAkHKygJ,KAEEA,CACT,CC3Ke,SAASkkZ,GAAc/uf,EACtCu/R,GACE,IAAIn0U,EAAS40C,EAAM50C,OACjBwqhB,EAAa51e,EAAM41e,WACnBvD,EAAiBrye,EAAMqye,eACvBl2f,EAAS6jB,EAAM7jB,OACf6ygB,EAAwBhvf,EAAMgvf,sBAC9Bva,EAAgBz0e,EAAMy0e,cACtBnqa,EAAWtqE,EAAMsqE,SACjB2kb,EAAejvf,EAAM,iBACrBs6Q,EAAWt6Q,EAAMs6Q,SACjB40O,EAAWlvf,EAAMy2M,QACjBgwJ,EAAUzmW,EAAMqvV,OAChB8H,EAAgBn3V,EAAMm3V,cACtBg4J,EAAYnvf,EAAMmvf,UAClBznhB,EAAOs4B,EAAMt4B,KACbg6P,EAAe1hO,EAAM0hO,aACrB2kI,EAAarmW,EAAMw2M,UACnB8vJ,EAAYtmW,EAAMmpM,SAClBimT,EAAapvf,EAAMovf,WACnBh5hB,EAAO4pC,EAAM5pC,KACb+7X,EAAenyV,EAAMmyV,aACrBvmX,EAAKo0B,EAAMp0B,GACX7kB,EAAQi5C,EAAMj5C,MACdkuK,EAAUj1H,EAAMi1H,QAChB/iF,EAAclyC,EAAMkyC,YACpB/lC,EAAWnM,EAAMmM,SACjBw2W,EAAc3iX,EAAM2iX,YACpB0sI,EAAUrvf,EAAMqvf,QAChB5hB,EAASzte,EAAMyte,OAGb6hB,EAAY,SAAmBn0f,EAAKyue,GACtC,IAAIn6J,EAAS4iK,EAAel2f,OAAOxqB,MAAMwqB,EAAOA,OAAQgf,EAAK,CAACyue,IAC9D,OAAOn6J,GAAU4iK,EAAetG,WAAWt8J,GAAUA,EAAS,IAChE,EAGIkmK,EAAcvqhB,EAAO,GACrBmkiB,EAAUvzU,EAAAA,aAAkB,SAAUx+L,GACxC,OAAOqgQ,GAAYrgQ,EAAM,CACvBrB,OAAQA,EACR/wB,OAAQuqhB,EACRtD,eAAgBA,GAEpB,GAAG,CAACl2f,EAAQk2f,EAAgBsD,IACxB6Z,EAAaxzU,EAAAA,SAAc,WAC7B,OAAOj1N,EAAMyO,IAAI+5hB,EACnB,GAAG,CAACxoiB,EAAOwoiB,IAGP/khB,EAAOwxM,EAAAA,SAAc,WACvB,IAAIkoO,EAAyB,SAAXupF,EAAoB,EAAI,GACtCnkhB,EAAgC,oBAAhBqshB,EAA6BA,EAAYtD,EAAezH,UAAUthhB,OAASqshB,EAAYrshB,OAC3G,OAAOK,KAAKwhB,IAAI+4a,EAAa56b,GAAU,CACzC,GAAG,CAACqshB,EAAalI,EAAQ4E,IAGrBod,EAAkB,SAAwBzrgB,GAC5C,IAAK,IAAI36B,EAAI,EAAGA,EAAI+B,EAAO9B,OAAQD,GAAK,EAAG,CACzC,IAAIqmiB,EAAetkiB,EAAO/B,GAG1B,GAA4B,kBAAjBqmiB,EAA2B,CACpC,IAAIjgL,EAAS6/K,EAAUtrgB,EAAM0rgB,GAC7B,GAAIjgL,EACF,OAAOA,CAEX,CACF,CACA,OAAO,CACT,EA+FA,MAAO,CA5Fa,SAAuBp3W,GACzC,SAASs3hB,EAAQl+Q,GACf,YAAiBr8Q,IAAViD,EAAsBo5Q,EAAUp5Q,GAASo5Q,CAClD,CACA,IAII4/K,EAAa1wN,GAAcA,GAAc,CAAC,EAJ5B2+G,GAAUt/S,EAAO,CACjCy/S,MAAM,EACN/6U,MAAM,KAEuD,CAAC,EAAG,CAEjEtZ,OAAQwqhB,EACRga,eAAgB,SAAwB5rgB,GACtC,QAASyrgB,EAAgBzrgB,EAC3B,EACAgrgB,sBAAuBA,EACvB/+J,SAAUwkJ,EACVnqa,SAAUA,EACV,gBAAiB2kb,EACjB74hB,KAAMA,EACN+7X,aAAcA,EACd3nX,KAAMA,EAENoB,GAAI+jhB,EAAQ/jhB,GACZ7kB,MAAO4oiB,EAAQH,IAAe,GAC9Bv6X,QAAS06X,EAAQ16X,GACjB/iF,YAAay9c,EAAQz9c,GACrBj3D,OAAQ0nY,IAAgBtqZ,EACxBw3hB,OAAQR,GAAWD,GAAczsI,IAAgBtqZ,EACjD8zC,SAAUwjf,EAAQxjf,GAClBsqM,QAAS,SAAiBl1L,GACxB2te,EAAS3te,EAAOlpD,EAClB,EACAg3X,OAAQ,SAAgB9tU,GAGtBklV,EAAQllV,EAAOlpD,EACjB,EACAiiT,SAAUA,EAEVnxE,SAAU,SAAkBnlN,GAC1BmzW,IACA,IAAI1nB,EAASggL,EAAgBzrgB,GAC7B,GAAIyrV,EAGF,OAFA0/K,GAAU,EAAO92hB,QACjBiuY,EAAU72B,EAAQp3W,GAMpB82hB,IAAYnrgB,EAAM3rB,EACpB,EACAy3hB,OAAQ,WACNpuR,GAAa,EAAM,CACjBrpQ,MAAOA,GAEX,EACAm+O,UAAW,SAAmBj1L,GAC5B,IAAIwue,GAAY,EAOhB,GANe,OAAf1pJ,QAAsC,IAAfA,GAAyBA,EAAW9kV,GAAO,WAIhEwue,GAAY,CACd,KACKxue,EAAMxH,mBAAqBg2e,EAC9B,OAAQxue,EAAMt0D,KACZ,IAAK,SACHy0Q,GAAa,EAAO,CAClBrpQ,MAAOA,IAET,MACF,IAAK,QACEqP,GACHg6P,GAAa,GAKvB,GACe,OAAd69D,QAAoC,IAAdA,OAAuB,EAASA,EAAU,CACjEiwN,WAAYA,KASd,OALArhiB,OAAOC,KAAKijc,GAAYpoc,SAAQ,SAAUgE,QAChBmI,IAApBi8b,EAAWpkc,WACNokc,EAAWpkc,EAEtB,IACOokc,CACT,EACuBk+F,EACzB,CC1KA,IAAIS,GAAY,CAAC,eAAgB,gBAClB,SAASC,GAAajwf,GACnC,OAAOg8K,EAAAA,SAAc,WACnB,OAAOuxT,GAAUvte,EAAOgwf,GAC1B,GAAG,CAAChwf,GACN,CCLA,IAAIm2L,GAAY,CAAC,OAAQ,QACvBiO,GAAa,CAAC,WAGD,SAASyR,GAAK71M,GAC3B,IAAIo6J,EAAOp6J,EAAMo6J,KACfjrM,EAAO6wC,EAAM7wC,KACb8yO,EAAYC,GAAyBliM,EAAOm2L,IAE5CsL,EADsBzlB,EAAAA,WAAiBkxT,IACTzrS,UAChC,OAAOrnC,EAAoB4hB,EAAAA,cAAoB,OAAQoL,GAAS,CAC9D13N,UAAW,GAAG/C,OAAO80O,EAAW,KAAK90O,OAAOwC,IAC3C8yO,GAAY7nC,GAAQ,IACzB,CACO,SAAS81V,GAAU98Y,GACxB,IAAIk9O,EAAUl9O,EAAKk9O,QACjBruJ,EAAYC,GAAyB9uF,EAAMgxF,IAC7C,OAAoBpoB,EAAAA,cAAoB65B,GAAMzuB,GAAS,CAAC,EAAG6a,EAAW,CACpE9yO,KAAM,QACNonP,KAAM,SACN8pG,YAAa,SAAqB1qU,GAChCA,EAAEukC,gBACJ,EACAoiB,QAAS,SAAiB3mD,GACxBA,EAAEojC,kBACFu3U,GACF,IAEJ,CC3BA,IAAI6/J,GAAc,CAAC,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,OAGrDC,GAA0B,WAC5B,SAASA,EAAWhliB,GAClB+zO,GAAgBh3O,KAAMioiB,IACtBpwb,EAAAA,GAAAA,GAAgB73G,KAAM,cAAU,IAChC63G,EAAAA,GAAAA,GAAgB73G,KAAM,kBAAc,IACpC63G,EAAAA,GAAAA,GAAgB73G,KAAM,aAAS,IAC/B63G,EAAAA,GAAAA,GAAgB73G,KAAM,iBAAa,GACnCA,KAAKiD,OAASA,EAGd,IAAIiliB,EAAcF,GAAY36hB,KAAI,SAAUvI,GAC1C,MAAO,IAAIN,OAAOM,EAAK,IACzB,IAAGG,KAAK,KACJkjiB,EAAa,IAAIxlhB,OAAOulhB,EAAa,KACzCloiB,KAAKythB,WAAaxqhB,EAAOyQ,QAAQy0hB,GAEjC,SAAUrjiB,GACR,MAlBY,SAkBOwxD,OAAOxxD,EAAI3D,OAChC,IAGA,IAAIiniB,EAAU,IAAIzlhB,OAAO,IAAIne,OAAOwjiB,GAAY/iiB,KAAK,KAAM,MACvDojiB,GAAYpliB,EAAOkW,MAAMivhB,IAAY,IAAIj3hB,QAAO,SAAU6hC,GAC5D,OAAOA,CACT,IACI8nB,EAAS,EACb96D,KAAKklC,MAAQmjgB,EAASh7hB,KAAI,SAAUwuB,GAClC,IAAI0oH,EAAOyjZ,GAAY73hB,SAAS0rB,GAC5BhZ,EAAQi4C,EACRh4C,EAAMg4C,EAASj/B,EAAK16B,OAExB,OADA25D,EAASh4C,EACF,CACL+Y,KAAMA,EACN0oH,KAAMA,EACN1hI,MAAOA,EACPC,IAAKA,EAET,IAGA9iB,KAAKsoiB,UAAYtoiB,KAAKklC,MAAM/zB,QAAO,SAAUmpB,GAC3C,OAAOA,EAAKiqH,IACd,GACF,CAmDA,OAlDA0yF,GAAagxT,EAAY,CAAC,CACxBnjiB,IAAK,eACLlG,MAAO,SAAsB2piB,GAC3B,IAAIt9Y,EAAOjrJ,KAAKsoiB,UAAUC,IAAkB,CAAC,EAG7C,MAAO,CAFGt9Y,EAAKpoI,OAEE,EADTooI,EAAKnoI,KACc,EAC7B,GAGC,CACDhe,IAAK,QACLlG,MAAO,SAAei9B,GACpB,IAAK,IAAI36B,EAAI,EAAGA,EAAIlB,KAAKythB,WAAWtshB,OAAQD,GAAK,EAAG,CAClD,IAAIsniB,EAAWxoiB,KAAKythB,WAAWvshB,GAC3BuniB,EAAW5sgB,EAAK36B,GACpB,IAAKuniB,GA7DK,WA6DOD,GAA4BA,IAAaC,EACxD,OAAO,CAEX,CACA,OAAO,CACT,GAGC,CACD3jiB,IAAK,OACLlG,MAAO,WACL,OAAOoB,KAAKsoiB,UAAUnniB,MACxB,GACC,CACD2D,IAAK,mBACLlG,MAAO,SAA0B8piB,GAG/B,IAFA,IAAIC,EAAazhiB,OAAOid,iBACpBykhB,EAAc,EACT1niB,EAAI,EAAGA,EAAIlB,KAAKsoiB,UAAUnniB,OAAQD,GAAK,EAAG,CACjD,IAAI2niB,EAAoB7oiB,KAAKsoiB,UAAUpniB,GACrC2hB,EAAQgmhB,EAAkBhmhB,MAC1BC,EAAM+lhB,EAAkB/lhB,IAC1B,GAAI4lhB,GAAe7lhB,GAAS6lhB,GAAe5lhB,EACzC,OAAO5hB,EAET,IAAIs1b,EAAOh1b,KAAKyhB,IAAIzhB,KAAK6E,IAAIqiiB,EAAc7lhB,GAAQrhB,KAAK6E,IAAIqiiB,EAAc5lhB,IACtE0za,EAAOmyG,IACTA,EAAanyG,EACboyG,EAAc1niB,EAElB,CACA,OAAO0niB,CACT,KAEKX,CACT,CA/F8B,GCF9B,IAAIj6T,GAAY,CAAC,SAAU,gBAAiB,aAAc,SAAU,iBAAkB,WAAY,UAAW,SAAU,SAAU,WAAY,YAAa,wBAAyB,UAAW,aA2W9L,SAlVyBna,EAAAA,YAAiB,SAAUh8K,EAAON,GACzD,IAAIzkB,EAAS+kB,EAAM/kB,OACjBg2gB,EAAuBjxf,EAAMkxf,cAC7BA,OAAyC,IAAzBD,GAAyCA,EACzD34J,EAAat4V,EAAMs4V,WACnBltY,EAAS40C,EAAM50C,OACfwkiB,EAAiB5vf,EAAM4vf,eACvBzmT,EAAWnpM,EAAMmpM,SAEjB0mT,GADU7vf,EAAMs2V,QACPt2V,EAAM6vf,QACfC,EAAS9vf,EAAM8vf,OACfx1O,EAAWt6Q,EAAMs6Q,SACjB9jE,EAAYx2M,EAAMw2M,UAClB26S,EAAwBnxf,EAAMgvf,sBAC9BA,OAAkD,IAA1BmC,GAA2CA,EACnEl8X,EAAUj1H,EAAMi1H,QAChBi8N,EAAYlxV,EAAMkxV,UAClBjvJ,EAAYC,GAAyBliM,EAAOm2L,IAC1CpvO,EAAQi5C,EAAMj5C,MAChB0vP,EAAUz2M,EAAMy2M,QAChB44I,EAASrvV,EAAMqvV,OACf/uC,EAAYtgT,EAAMsgT,UAChBhrG,EAAoBt5B,EAAAA,WAAiBkxT,IACvCzrS,EAAY6T,EAAkB7T,UAC9B2vT,EAAwB97S,EAAkBtsO,MAC1C01F,OAAsC,IAA1B0yb,EAAmC,QAAUA,EACvDliK,EAAiB,GAAGviY,OAAO80O,EAAW,UAIxCqC,EAAmBC,GADC/nB,EAAAA,UAAe,GACgB,GACnDk0K,EAAUpsJ,EAAiB,GAC3B6uJ,EAAa7uJ,EAAiB,GAE9BkQ,EAAmBjQ,GADE/nB,EAAAA,SAAej1N,GACgB,GACpDsqiB,EAAqBr9S,EAAiB,GACtCk+M,EAAgBl+M,EAAiB,GAEjCke,EAAmBnuB,GADE/nB,EAAAA,SAAe,IACgB,GACpDs1U,EAAgBp/R,EAAiB,GACjCq/R,EAAmBr/R,EAAiB,GAEpCa,EAAmBhvB,GADE/nB,EAAAA,SAAe,MACgB,GACpDw1U,EAAiBz+R,EAAiB,GAClC0+R,EAAoB1+R,EAAiB,GAErCa,EAAoB7vB,GADC/nB,EAAAA,SAAe,MACiB,GACrD01U,EAAyB99R,EAAkB,GAC3C+9R,EAAqB/9R,EAAkB,GACrCqvI,EAAaouJ,GAAsB,GAGvCr1U,EAAAA,WAAgB,WACdk2O,EAAcnrc,EAChB,GAAG,CAACA,IAGJ,IAAI04U,EAAYzjH,EAAAA,SACZ82K,EAAW92K,EAAAA,SACfA,EAAAA,oBAA0Bt8K,GAAK,WAC7B,MAAO,CACLs4L,cAAeynG,EAAUrxS,QACzB0hW,aAAcgD,EAAS1kW,QACvB1S,MAAO,SAAerwB,GACpBynY,EAAS1kW,QAAQ1S,MAAMrwB,EACzB,EACAiwB,KAAM,WACJw3W,EAAS1kW,QAAQ9S,MACnB,EAEJ,IAGA,IAAIs6f,EAAa55T,EAAAA,SAAc,WAC7B,OAAO,IAAIo0U,GAAWhliB,GAAU,GAClC,GAAG,CAACA,IAOFm6Q,EAAkBxhC,GANC/nB,EAAAA,SAAc,WAC/B,OAAI6zU,EACK,CAAC,EAAG,GAENja,EAAW76f,aAAay2gB,EACjC,GAAG,CAAC5b,EAAY4b,EAAgB3B,IACiB,GACjDjse,EAAiB2hN,EAAgB,GACjC1hN,EAAe0hN,EAAgB,GAI7BqsR,EAAW,SAAkB5tgB,GAC3BA,GAAQA,IAAS54B,GAAU44B,IAASj9B,GACtC+oiB,GAEJ,EAMI+B,EAAqBnvT,IAAS,SAAU1+M,GACtC4rgB,EAAe5rgB,IACjBmlN,EAASnlN,GAEXkua,EAAclua,GACd4tgB,EAAS5tgB,EACX,IAuBI8tgB,EAAe91U,EAAAA,QAAa,GAuB5B+1U,EAAe,SAAsBxwe,GACvC8tU,EAAO9tU,EACT,EAQAs2d,GAAc58f,GAAQ,WACfA,GAAW+zgB,GACd98F,EAAcnrc,EAElB,IAGA,IAAIiriB,GAAkB,SAAyBzwe,GAC3B,UAAdA,EAAMt0D,KAAmB2iiB,EAAe3sJ,IAC1C3oF,IAEY,OAAd9jE,QAAoC,IAAdA,GAAwBA,EAAUj1L,EAC1D,EA6GIuwL,GAAS91B,EAAAA,SACb1mJ,IAAgB,WACd,GAAK46T,GAAY9kY,IAAU0miB,EAAa1jgB,QAAxC,CAKA,GAAKwnf,EAAW70gB,MAAMkiY,GAYtB,OANAnQ,EAAS1kW,QAAQohW,kBAAkB5rU,EAAgBC,GAGnDiuL,GAAO1jN,QAAU00M,IAAI,WACnBgwJ,EAAS1kW,QAAQohW,kBAAkB5rU,EAAgBC,EACrD,IACO,WACLi/K,GAAIv0I,OAAOujJ,GAAO1jN,QACpB,EAbEyjgB,EAAmBzmiB,EAJrB,CAkBF,GAAG,CAACwqhB,EAAYxqhB,EAAQ8kY,EAAS+S,EAAYuuJ,EAAgB5te,EAAgBC,EAAc6te,EAAwBG,IAInH,IAAIxgG,GAAajmc,EAAS,CACxBqrP,QApKkB,SAAuBl1L,GACzCoxU,GAAW,GACX8+J,EAAkB,GAClBF,EAAiB,IACjB96S,EAAQl1L,EACV,EAgKE8tU,OA5JiB,SAAsB9tU,GACvCoxU,GAAW,GACXo/J,EAAaxwe,EACf,EA0JEi1L,UAzIoB,SAAyBj1L,GAC7Cywe,GAAgBzwe,GAChB,IAAIt0D,EAAMs0D,EAAMt0D,IAGZgliB,EAAe,KAGfC,EAAe,KACfC,EAActue,EAAeD,EAC7Bwue,EAAahniB,EAAO+B,MAAMy2D,EAAgBC,GAG1Cwue,EAAkB,SAAyBpve,GAC7Cwue,GAAkB,SAAUvqU,GAC1B,IAAIz8G,EAAYy8G,EAAMjkK,EAGtB,OAFAwnD,EAAY9gH,KAAKwhB,IAAIs/F,EAAW,GAChCA,EAAY9gH,KAAKyhB,IAAIq/F,EAAWmra,EAAWprgB,OAAS,EAEtD,GACF,EAGI8nhB,EAAkB,SAAyBrve,GAC7C,IAAIsve,EClOH,SAAsBtliB,GAU3B,MATkB,CAChB+3N,KAAM,CAAC,EAAG,MAAM,IAAI1mM,MAAOI,eAC3Bq8H,GAAI,CAAC,EAAG,IACR4pE,GAAI,CAAC,EAAG,IACRD,GAAI,CAAC,EAAG,IACR7pE,GAAI,CAAC,EAAG,IACRD,GAAI,CAAC,EAAG,IACR6pE,IAAK,CAAC,EAAG,MAEQx3N,EACrB,CDuN0BuliB,CAAaJ,GAC/BK,EAAiB1uT,GAAewuT,EAAe,GAC/ClQ,EAAaoQ,EAAe,GAC5BnQ,EAAWmQ,EAAe,GAC1BC,EAAeD,EAAe,GAC5BE,EAAc1vJ,EAAW91Y,MAAMy2D,EAAgBC,GAC/C+ue,EAAiBvjiB,OAAOsjiB,GAC5B,GAAIrnhB,MAAMsnhB,GACR,OAAOxjiB,OAAOsjiB,IAA8Bzve,EAAS,EAAIo/d,EAAaC,IAExE,IACI9mgB,EAAQ8mgB,EAAWD,EAAa,EACpC,OAAOjzhB,OAAOizhB,GAAc7mgB,GAFlBo3gB,EAAiB3ve,GAEeo/d,GAAc7mgB,EAC1D,EACA,OAAQvuB,GAEN,IAAK,YACL,IAAK,SACHgliB,EAAe,GACfC,EAAeE,EACf,MAIF,IAAK,YACHH,EAAe,GACfI,GAAiB,GACjB,MAGF,IAAK,aACHJ,EAAe,GACfI,EAAgB,GAChB,MAGF,IAAK,UACHJ,EAAe,GACfC,EAAeI,EAAgB,GAC/B,MAGF,IAAK,YACHL,EAAe,GACfC,EAAeI,GAAiB,GAChC,MAGF,QACOhnhB,MAAMjc,OAAOpC,MAEhBiliB,EADAD,EAAeX,EAAgBrkiB,GAiBrC,GAVqB,OAAjBgliB,IACFV,EAAiBU,GACbA,EAAa3oiB,QAAU6oiB,IAEzBE,EAAgB,GAChBd,EAAiB,MAKA,OAAjBW,EAAuB,CAEzB,IAAIW,EAEJ5vJ,EAAW91Y,MAAM,EAAGy2D,GAEpBypd,GAAQ6kB,EAAcC,GAEtBlvJ,EAAW91Y,MAAM02D,GACjBgue,EAAmBgB,EAAe1liB,MAAM,EAAG/B,EAAO9B,QACpD,CAGAqoiB,EAAmB,CAAC,EACtB,EAiCEtxM,YAvLsB,WACtByxM,EAAa1jgB,SAAU,CACzB,EAsLEkyT,UArLoB,SAAyB/+R,GAC7C,IACEv2C,EADSu2C,EAAMruD,OACF0wD,eACXkve,EAAiBld,EAAWmd,iBAAiB/nhB,GACjDymhB,EAAkBqB,GAGlBnB,EAAmB,CAAC,GACN,OAAdrxM,QAAoC,IAAdA,GAAwBA,EAAU/+R,GACxDuwe,EAAa1jgB,SAAU,CACzB,EA4KEm4W,QArMkB,SAAuBhlV,GAEzC,IAAIyxe,EAAYzxe,EAAMtE,cAAckpC,QAAQ,QACxCypc,EAAeoD,IACjBnB,EAAmBmB,EAEvB,GAgMI,CAAC,EACL,OAAoBh3U,EAAAA,cAAoB,MAAO,CAC7Ct8K,IAAK+/R,EACL/vU,UAAWisN,KAAWuzK,GAAgBlvR,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAOuiY,EAAgB,WAAYj0W,GAAUi2gB,GAAgB,GAAGvkiB,OAAOuiY,EAAgB,gBAAiB2gK,KACvK7zU,EAAAA,cAAoBt9G,EAAW0oH,GAAS,CACtD1nL,IAAKozV,EACL,eAAgB79N,EAChBk9N,aAAc,OACblwJ,EAAW,CACZuU,UAAWw7S,GACX3iK,OAAQ0iK,GAEP1gG,GAAY,CAEbtqc,MAAOk8Y,EACP95J,SA9NqB,SAA0B5nL,GAE/C,IAAKn2D,EAAQ,CACX,IAAI44B,EAAOu9B,EAAMruD,OAAOnM,MACxB6qiB,EAAS5tgB,GACTkua,EAAclua,GACdmlN,EAASnlN,EACX,CACF,KAuNkBg4L,EAAAA,cAAoB65B,GAAM,CAC1C1mP,KAAM,SACNirM,KAAMk+L,IACJpH,EACN,IErWA,IAAI/6J,GAAY,CAAC,KAAM,SAAU,YAAa,aAAc,YAAa,cAAe,aAAc,UAAW,UAAW,UAAW,SAAU,YAAa,SAAU,iBAAkB,cAAe,YAAa,QAAS,UAAW,UAAW,QAAS,WAAY,WAAY,gBAAiB,SAAU,aAAc,wBAAyB,YAAa,WAAY,UAAW,gBAAiB,YAAa,eAAgB,eAAgB,YAAa,cAAe,WAAY,gBAAiB,YAAa,YAC9fiO,GAAa,CAAC,SAUhB,SAAS6uT,GAAcjzf,EAAON,GAC5B,IAAI9zB,EAAKo0B,EAAMp0B,GACbuwF,EAASn8D,EAAMm8D,OACf+0R,EAAYlxV,EAAMkxV,UAClBoH,EAAat4V,EAAMs4V,WACnB46J,EAAmBlzf,EAAMxyB,UACzBA,OAAiC,IAArB0lhB,EAA8B,IAAMA,EAChDvwI,EAAc3iX,EAAM2iX,YAGpBzyB,GAFalwV,EAAMovf,WACTpvf,EAAMqvf,QACNrvf,EAAMkwV,SAMhBh+S,GALUlyC,EAAMy2M,QACPz2M,EAAMqvV,OACHrvV,EAAMw2M,UACTx2M,EAAM7jB,OACE6jB,EAAMqye,eACTrye,EAAMkyC,aACpBxiF,EAAYswC,EAAMtwC,UAClBjC,EAAQuyC,EAAMvyC,MACd6uE,EAAUt8B,EAAMs8B,QAChBg0T,EAAUtwV,EAAMswV,QAChBvpY,EAAQi5C,EAAMj5C,MAQdolD,GAPWnM,EAAMmpM,SACNnpM,EAAMs6Q,SACDt6Q,EAAMm3V,cACbn3V,EAAM50C,OACF40C,EAAM41e,WACK51e,EAAMgvf,sBAClBhvf,EAAMmvf,UACPnvf,EAAMmM,UACjB8oH,EAAUj1H,EAAMi1H,QAEhBrvC,GADgB5lF,EAAMy0e,cACVz0e,EAAM4lF,WAElButa,GADenzf,EAAM0hO,aACN1hO,EAAMmzf,cAErBxtJ,GADY3lW,EAAMu0N,UACHv0N,EAAMqgT,aAGrB5jR,GAFWz8B,EAAMsqE,SACFtqE,EAAM,iBACTA,EAAMy8B,WAClBuvK,EAAWhsM,EAAMgsM,SACjB/J,EAAYC,GAAyBliM,EAAOm2L,IAC1Cwf,EAAoB,QAAd/vH,EAIR67G,EADsBzlB,EAAAA,WAAiBkxT,IACTzrS,UAG5B2xT,EAAMp3U,EAAAA,SAAc,WACtB,GAAkB,kBAAPpwM,EACT,MAAO,CAACA,GAEV,IAAIy0R,EAAWz0R,GAAM,CAAC,EACtB,MAAO,CAACy0R,EAASr1R,MAAOq1R,EAASp1R,IACnC,GAAG,CAACW,IAGAkuf,EAAU99S,EAAAA,SACVq3U,EAAgBr3U,EAAAA,SAChBs3U,EAAct3U,EAAAA,SACdu3U,EAAW,SAAkBl7hB,GAC/B,IAAIk1a,EACJ,OAA0D,QAAlDA,EAAS,CAAC8lH,EAAeC,GAAaj7hB,UAA+B,IAAXk1a,OAAoB,EAASA,EAAOn/Y,OACxG,EACA4tL,EAAAA,oBAA0Bt8K,GAAK,WAC7B,MAAO,CACLs4L,cAAe8hS,EAAQ1re,QACvB1S,MAAO,SAAerwB,GACpB,GAAyB,YAArBV,EAAAA,GAAAA,GAAQU,GAAuB,CACjC,IAAImoiB,EACApgZ,EAAO/nJ,GAAW,CAAC,EACrBooiB,EAAargZ,EAAK/6I,MAClBq7hB,OAAyB,IAAfD,EAAwB,EAAIA,EACtCl+b,EAAO2sI,GAAyB9uF,EAAMgxF,IACJ,QAAnCovT,EAAYD,EAASG,UAAoC,IAAdF,GAAwBA,EAAU93gB,MAAM65E,EACtF,KAAO,CACL,IAAIo+b,EAC8E,QAAjFA,EAAaJ,EAAqB,OAAZloiB,QAAgC,IAAZA,EAAqBA,EAAU,UAA+B,IAAfsoiB,GAAyBA,EAAWj4gB,OAChI,CACF,EACAJ,KAAM,WACJ,IAAIs4gB,EAAYC,EACe,QAA9BD,EAAaL,EAAS,UAA+B,IAAfK,GAAyBA,EAAWt4gB,OAC5C,QAA9Bu4gB,EAAaN,EAAS,UAA+B,IAAfM,GAAyBA,EAAWv4gB,MAC7E,EAEJ,IAGA,IAAImzP,EAAYwhR,GAAahuT,GAGzB6xT,EAAoB93U,EAAAA,SAAc,WACpC,OAAOhzN,MAAMqR,QAAQ63E,GAAeA,EAAc,CAACA,EAAaA,EAClE,GAAG,CAACA,IAQF6hd,EADkBhwT,GAJCgrT,GAAcpuT,GAAcA,GAAc,CAAC,EAAG3gM,GAAQ,CAAC,EAAG,CAC3Ep0B,GAAIwnhB,EACJlhd,YAAa4hd,KAEkC,GACjB,GAOhChwT,EAAmBC,GAJC/nB,EAAAA,SAAe,CACjCxoN,SAAU,WACVpJ,MAAO,IAE0C,GACnD4piB,EAAiBlwT,EAAiB,GAClCmwT,EAAoBnwT,EAAiB,GACnCowT,EAAmBxxT,IAAS,WAC9B,IAAI15N,EAAQuqhB,EAAS5wI,GACrB,GAAI35Y,EAAO,CACT,IAAImrhB,EAAYnrhB,EAAMgvN,cAAcnvO,wBAChCuriB,EAAat6B,EAAQ1re,QAAQvlC,wBAC7BwriB,EAAaF,EAAU3qiB,KAAO4qiB,EAAW5qiB,KAC7CyqiB,GAAkB,SAAUh5R,GAC1B,OAAOt6B,GAAcA,GAAc,CAAC,EAAGs6B,GAAM,CAAC,EAAG,CAC/C7wQ,MAAO+piB,EAAU/piB,MACjBZ,KAAM6qiB,GAEV,IACAlB,EAAa,CAACgB,EAAU3qiB,KAAM2qiB,EAAUxgiB,MAAOygiB,EAAWhqiB,OAC5D,CACF,IACA4xN,EAAAA,WAAgB,WACdk4U,GACF,GAAG,CAACvxI,IAGJ,IAAI2xI,EAAYpjK,IAAcnqY,EAAM,KAAOolD,EAAS,IAAMplD,EAAM,KAAOolD,EAAS,IAG5Eoof,EAAiB93d,IAActwB,EAAS,GACxCqof,EAAe/3d,IAAc83d,IAAmBpof,EAAS,GAG7D,OAAoB6vK,EAAAA,cAAoBwiB,GAAgB,CACtD4B,SAAU8zT,GACIl4U,EAAAA,cAAoB,MAAOoL,GAAS,CAAC,EAAGqnD,EAAW,CACjE/+Q,UAAWisN,KAAW8lB,EAAW,GAAG90O,OAAO80O,EAAW,WAAWzhI,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,YAAayuJ,GAAU,GAAGvjY,OAAO80O,EAAW,aAAct1L,EAAS3yC,OAAM,SAAUnQ,GAC3O,OAAOA,CACT,KAAK,GAAGsD,OAAO80O,EAAW,YAAaxsE,EAAQ17J,MAAK,SAAUlQ,GAC5D,OAAOA,CACT,KAAK,GAAGsD,OAAO80O,EAAW,QAASkU,GAAMjmP,GACzCjC,MAAOA,EACPiyC,IAAKo6d,EACLx9b,QAASA,EAGT+jR,YAAa,SAAqB1qU,GAChC,IAAIziB,EAASyiB,EAAEziB,OACXA,IAAWmgiB,EAAcjlgB,QAAQ0hW,cAAgB58X,IAAWogiB,EAAYllgB,QAAQ0hW,cAClFn6W,EAAEukC,iBAEa,OAAjByrV,QAA0C,IAAjBA,GAA2BA,EAAahwX,EACnE,IACEwmF,GAAuB6/G,EAAAA,cAAoB,MAAO,CACpDtsN,UAAW,GAAG/C,OAAO80O,EAAW,YAC/BtlI,GAAsB6/G,EAAAA,cAAoB8rI,GAAO1gI,GAAS,CAC3D1nL,IAAK2zf,GACJU,EAAc,GAAI,CACnBt3d,UAAW83d,EACXvoT,SAAUA,EACV,aAAc,WACEhwB,EAAAA,cAAoB,MAAO,CAC3CtsN,UAAW,GAAG/C,OAAO80O,EAAW,qBAC/Bj0N,GAAyBwuM,EAAAA,cAAoB8rI,GAAO1gI,GAAS,CAC9D1nL,IAAK4zf,GACJS,EAAc,GAAI,CACnBt3d,UAAW+3d,EACXxoT,SAAUA,EACV,aAAc,SACEhwB,EAAAA,cAAoB,MAAO,CAC3CtsN,UAAW,GAAG/C,OAAO80O,EAAW,eAChCh0O,MAAOumiB,IACQh4U,EAAAA,cAAoB65B,GAAM,CACzC1mP,KAAM,SACNirM,KAAMk+L,IACJg8J,GAA0Bt4U,EAAAA,cAAoBk0U,GAAW,CAC3D91V,KAAM82L,EACNZ,QAASA,KAEb,CAKA,SAJoCt0K,EAAAA,WAAiBi3U,ICjLrD,SAASwB,GAAe16f,EAAQkwP,GAC9B,IAAIyqQ,EAA0B,OAAX36f,QAA8B,IAAXA,EAAoBA,EAASkwP,EACnE,OAAIjhS,MAAMqR,QAAQq6hB,GACTA,EAEF,CAACA,EAAcA,EACxB,CAIA,SAASC,GAAehyI,GACtB,OAAuB,IAAhBA,EAAoB,MAAQ,OACrC,CACA,SAASiyI,GAAY50f,EAAON,GAE1B,IAAIm1f,EAAkB5gB,GAAej0e,GAAO,WACxC,IAAImM,EAAWnM,EAAMmM,SACnB4ie,EAAa/ue,EAAM+ue,WAGrB,MAAO,CACL5ie,SAHmBsof,GAAetof,GAAU,GAI5C4ie,WAHqB0lB,GAAe1lB,GAAY,GAKpD,IACA+lB,EAAmB/wT,GAAe8wT,EAAiB,GACnDpf,EAAcqf,EAAiB,GAC/B5f,EAAiB4f,EAAiB,GAClC1f,EAAgB0f,EAAiB,GACjCjjB,EAAaijB,EAAiB,GAC9Blf,EAAakf,EAAiB,GAC9BhmB,EAAmBgmB,EAAiB,GAClCrzT,EAAYg0S,EAAYh0S,UAC1Bx9M,EAASwxf,EAAYxxf,OACrB03L,EAAa85T,EAAY95T,WACzBj1L,EAAe+uf,EAAY/uf,aAC3B3/B,EAAQ0uhB,EAAY1uhB,MACpBythB,EAAciB,EAAYjB,YAC1Bh+R,EAAYi/R,EAAYj/R,UACxBrqM,EAAWspe,EAAYtpe,SACvB4ie,EAAa0G,EAAY1G,WACzB2F,EAAee,EAAYf,aAC3BC,EAAUc,EAAYd,QACtBC,EAAUa,EAAYb,QACtB/uN,EAAc4vN,EAAY5vN,YAC1Bn+S,EAAO+tgB,EAAY/tgB,KACnBg6P,EAAe+zQ,EAAY/zQ,aAC3BvlP,EAASs5f,EAAYt5f,OACrBk2f,EAAiBoD,EAAYpD,eAC7B5E,EAASgI,EAAYhI,OACrB4O,EAAU5G,EAAY4G,QACtBC,EAAY7G,EAAY6G,UACxBvL,EAAW0E,EAAY1E,SACvB5khB,EAAOsphB,EAAYtphB,KACnBq/hB,EAAgB/V,EAAY+V,cAC5BrR,EAAmB1E,EAAY0E,iBAC/Bl7L,EAAOw2L,EAAYx2L,KACnB61L,EAAqBW,EAAYX,mBACjCD,EAAcY,EAAYZ,YAC1B+D,EAAsBnD,EAAYmD,oBAClCnE,EAAgBgB,EAAYhB,cAC5Bn8I,EAAam9I,EAAYn9I,WACzB7hJ,EAAUg/R,EAAYh/R,QACtB44I,EAASomJ,EAAYpmJ,OACrBsoJ,EAAUlC,EAAYkC,QACtBx8f,EAASs6f,EAAYt6f,OACrB+nP,EAAauyQ,EAAYvyQ,WACzBqrQ,EAAakH,EAAYlH,WACzBC,EAAaiH,EAAYjH,WACzBC,EAAkBgH,EAAYhH,gBAC9Bnyc,EAAUm5c,EAAYn5c,QAGpBsxU,EAAc6pI,GAAa/3e,GAI7Bq1f,EAAYhxT,GADCkzS,GAAQvvgB,EAAMm+S,EAAa15Q,EAAUu1N,GACb,GACrCxO,EAAa6hS,EAAU,GACvBC,EAAeD,EAAU,GACvBphS,GAAc,SAAqBP,EAAUr5N,IAE3CoS,EAAS5yC,MAAK,SAAU07hB,GAC1B,OAAQA,CACV,KAAO7hS,GACL4hS,EAAa5hS,EAAUr5N,EAE3B,EAIEm7f,GAAkBnxT,GADCk2S,GAAc5H,EAAgBl2f,EAAQ01f,GAAY,GAAM,EAAOnrf,EAAc3/B,EAAOozhB,EAAkBl7L,GACxE,GACjD11G,GAAc2rT,GAAgB,GAC9B5rT,GAAgB4rT,GAAgB,GAChC/Z,GAAmB+Z,GAAgB,GACnCta,GAAwBsa,GAAgB,GACxCC,GAAYD,GAAgB,GAC1BrmB,GAAgBsM,KAIlBia,GAAmBrxT,GADCg0S,GAAe5re,EAAU4ie,EAAY77Q,GACN,GACnDg9H,GAAUklK,GAAiB,GAC3B1lK,GAAe0lK,GAAiB,GAChCC,GAAgBD,GAAiB,GACjCzyI,GAAcyyI,GAAiB,GAC/BxyI,GAAiBwyI,GAAiB,GAClCjyI,GAAkBiyI,GAAiB,GACnCjnB,GAAkBinB,GAAiB,GACnCjd,GAAoBid,GAAiB,GACrCE,GAAuBF,GAAiB,GACtCG,GAAgB,SAAuBh0e,EAAOlpD,GAChDq3X,IAAa,GACD,OAAZj5I,QAAgC,IAAZA,GAAsBA,EAAQl1L,EAAO,CACvD/lC,MAAOm5gB,GAAyB,OAAVt8hB,QAA4B,IAAVA,EAAmBA,EAAQsqZ,KAEvE,EACIovI,GAAe,SAAsBxwe,EAAOlpD,GAC9Cq3X,IAAa,GACF,OAAXL,QAA8B,IAAXA,GAAqBA,EAAO9tU,EAAO,CACpD/lC,MAAOm5gB,GAAyB,OAAVt8hB,QAA4B,IAAVA,EAAmBA,EAAQsqZ,KAEvE,EAII6yH,GAAiBx5T,EAAAA,SAAc,WACjC,IAAK+0T,EACH,OAAO,KAET,IAAIsF,EAAetF,EAASsF,aACxBmf,EAAoBnf,EAAe,SAAU74f,GAC/C,IAAIhC,EAAQm5gB,GAAehyI,IACvB8yI,EAAWxnB,GAAYY,GAAeV,GAAiBxrH,IAC3D,OAAO0zH,EAAa74f,EAAMhC,EAAO,CAC/B1oB,KAAM2iiB,GAEV,OAAIrgiB,EACJ,OAAOurO,GAAcA,GAAc,CAAC,EAAGowS,GAAW,CAAC,EAAG,CACpDsF,aAAcmf,GAElB,GAAG,CAACzkB,EAAUpuH,GAAaksH,GAAeV,KAMxCxoQ,GAAmB5hC,GAHCkF,GAAe,CAACwkS,EAAQA,GAAS,CACnD1mhB,MAAOoF,IAE0C,GACnDqshB,GAAQ7yQ,GAAiB,GACzB+vR,GAAW/vR,GAAiB,GAC1BY,GAAaiyQ,GAAM71H,KAAgB8qH,EAGnC/mQ,GAA8B,SAAfH,IAAyBivQ,GAAiB,WAAajvQ,GAGtEmyQ,GAAgBhyQ,KAAiB+mQ,GAA2B,SAAjB/mQ,GAG3CivR,GAAgBvZ,GAAW3O,EAAQlnQ,GAAY81Q,EAASC,GAAW,GAIrEsZ,GAAkB7xT,GADCm3S,GAAczF,EAAalsS,GAAaD,GAAe6xS,GAAkBP,GAAuBzue,EAAU0le,EAAY3hJ,GAASh9H,EAAY47Q,GAC7G,GAEjDkN,GAAc4Z,GAAgB,GAE9BC,GAAsBD,GAAgB,GAGpC1T,GC5LS,SAA8B1jhB,EAAQ2tC,EAAUgie,EAAiBkE,EAAgBl2f,EAAQu4f,GACtG,IAAI/xH,EAAcwrH,EAAgBA,EAAgB7khB,OAAS,GA+B3D,OA9BwB,SAA2Bk0B,EAAMm9G,GACvD,IAAIm7Z,EAAU/xT,GAAevlO,EAAQ,GACnCwM,EAAQ8qhB,EAAQ,GAChB7qhB,EAAM6qhB,EAAQ,GACZ3/O,EAAax1E,GAAcA,GAAc,CAAC,EAAGhmG,GAAO,CAAC,EAAG,CAC1D7nI,KAAMm7gB,GAAYzvgB,EAAQ2vgB,KAK5B,QAAoB,IAAhBxrH,IAAqBx2W,EAAS,KAAMnhC,GAEvC2U,GAAO0yf,EAAgBl2f,EAAQnR,EAAOwS,EAAM24R,EAAWhnT,QAExDkjhB,EAAevyf,QAAQ9U,EAAOwS,OAKV,IAAhBmlY,IAAqBx2W,EAAS,KAAMlhC,GAEvC0U,GAAO0yf,EAAgBl2f,EAAQlR,EAAKuS,EAAM24R,EAAWhnT,QAEtDkjhB,EAAevyf,QAAQtC,EAAMvS,MAKL,OAAjBypgB,QAA0C,IAAjBA,OAA0B,EAASA,EAAal3f,EAAM24R,GACxF,CAEF,CD2J2B4/O,CAAqBlnB,GAAe1ie,EAAUgie,GAAiBkE,EAAgBl2f,EAAQu4f,GAI9GshB,GAAwBjyT,GADC6qS,GAAoBC,GAAeC,EAAkBC,GACjB,GAC7DknB,GAAoBD,GAAsB,GAC1CE,GAAoBF,GAAsB,GAI1CG,GAAwBpyT,GADCw0S,GAAoBlG,EAAgBl2f,EAAQ0yf,GAAe2J,GAAOtlR,EAAYyvJ,GAAauyH,EAAgBwD,GAAe5D,EAAoBD,EAAgC,OAAnBW,SAA8C,IAAnBA,QAA4B,EAASA,GAAehE,iBAAkBoH,EAAqBjE,EAASC,GACtP,GAC7D0E,GAAqB6c,GAAsB,GAC3C5c,GAAwB4c,GAAsB,GAG5C/J,GAAoB1pT,IAAS,SAAU82S,EAAiByS,EAAUmK,GACpE,IAAInmiB,EAAQq9gB,GAAUkL,GAAO71H,GAAaspI,GAM1C,GALIh8hB,EAAM,KAAOuohB,GAAM,IAAMvohB,EAAM,KAAOuohB,GAAM,IAC9Ckd,GAASzliB,GAIPu7hB,IAAkC,IAAjB4K,EAAwB,CAC3C,IAAIC,EAAmBlrT,GAAmB0jS,IACtC2K,IACF6c,EAAiB1zI,IAAe62H,GAElCgS,EAAc6K,EAAkBpmiB,EAClC,CACF,IAGIqmiB,GAAoB,SAA2B94gB,EAAMnlB,GACvD,OAEEi1gB,GAAUuB,GAAex2gB,EAAOmlB,EAEpC,EASI+4gB,GAAqB,SAA4B/4gB,EAAMg5gB,GACzD,IAAItyT,EAAY2qS,GACZrxf,IACF0mN,EAAYoyT,GAAkB94gB,EAAMmlY,KAEtCw1H,GAAkBx1H,IAElB,IAAIl4S,EAAY04S,GAAgBj/K,GAGhC02S,GAAsB12S,GACtB83S,GAAYr5H,GAA2B,OAAdl4S,GACP,OAAdA,EACFkpJ,IAAY,EAAO,CACjB6tB,OAAO,IAECg1Q,GACV5oJ,EAAYx/W,QAAQ1S,MAAM,CACxBrjB,MAAOoyG,GAGb,EA6BEq5H,GAAmBC,GADC/nB,EAAAA,SAAe,MACgB,GACnDy6U,GAAc3yT,GAAiB,GAC/B4yT,GAAiB5yT,GAAiB,GAElCkQ,GAAmBjQ,GADE/nB,EAAAA,SAAe,MACgB,GACpD26U,GAAsB3iT,GAAiB,GACvC4iT,GAAyB5iT,GAAiB,GACxC6iT,GAAc76U,EAAAA,SAAc,WAC9B,OAAO26U,IAAuB9nB,EAChC,GAAG,CAACA,GAAe8nB,KAGnB36U,EAAAA,WAAgB,WACTk3C,GACH0jS,GAAuB,KAE3B,GAAG,CAAC1jS,IAOJ,IACEhB,GAAmBnuB,GADE/nB,EAAAA,SAAe,CAAC,EAAG,EAAG,IACS,GACpDuxU,GAAar7R,GAAiB,GAC9B4kS,GAAgB5kS,GAAiB,GAG/B6kS,GAAarf,GAAWC,EAASx8f,GAuDjCmxgB,GAAuBh9D,GAAci/C,EAAYC,EAAYC,EAAiBkmB,GAAehyI,KAG7Fq0I,GAAanoB,GAAclsH,KAAgB,KAG3Cs0I,GAAwBv0T,IAAS,SAAUllN,GAC7C,OAAOsxf,EAAiBtxf,EAAM,CAC5BmlY,YAAaA,IAEjB,IACIgqI,GAAa3wU,EAAAA,SAAc,WAC7B,IAAI0xL,EAAWpuD,GAAUm2L,GAAa,GAEtC,OADgB/kb,GAAK+kb,EAAa,GAAG9ohB,OAAOw+O,GAAmBh9O,OAAOC,KAAKs/Y,IAAY,CAAC,WAAY,mBAAoB,QAAS,YAAa,gBAAiB,iBAEjK,GAAG,CAAC+nI,IAGA/0L,GAAqB1kI,EAAAA,cAAoBijD,GAAO73C,GAAS,CAAC,EAAGulU,GAAY,CAC3EtQ,QAASsZ,GACT5kB,SAAUyE,GAGVh6f,OAAO,EACPk9f,cAAeA,GACf6U,WAAYA,GAGZ7Y,aAAcwN,GAGdzrS,QA9DiB,SAAsBl1L,GACvCoyM,IAAY,GACZ4hS,GAAch0e,EAChB,EA4DE8tU,OAAQ0iK,GACRrE,iBA1DqB,WACrB2H,GAAc,QAChB,EA2DE5nB,OAAQA,EACRthhB,KAAMo6Q,GACNG,aAAcA,GACd8kR,cAAeY,GAGfhhiB,OAAQwqhB,EACR7uhB,MAAOiwiB,GACPrJ,UAAWsJ,GACX9tT,SAAU,KACV07B,SAlEkB,SAAuBrnP,GACzC,IAAIvtB,EAAQq9gB,GAAUuB,GAAelsH,GAAanlY,GAGlDo9f,GAAsB3qhB,GAIjBukhB,GAAgBY,GAAiBF,IAAmBxuQ,IACvD6vR,GAAmB/4gB,EAEvB,EA0DEq3f,YAAayE,GACb9H,iBAAkB7hb,GAAqB,OAAbohb,QAAkC,IAAbA,OAAsB,EAASA,EAASS,kBAAkB7uH,IACzGi2H,oBAAqBW,GAGrBwH,WAAY8V,GACZ7kE,QA5FiB,SAAsBx0c,GACvCo5gB,GAAuBp5gB,EAAO84gB,GAAkB94gB,EAAMmlY,IAAe,MACrE+zI,GAAe,OACjB,EA4FEliB,YAAaA,EACbl6N,SAAUi8O,GACVt3M,KAAMk2M,GAGNxd,QAASof,GACTvJ,cAtHkB,SAAuB/iI,GACzCmsI,GAAuBnsI,GACvBisI,GAAe,SACjB,EAoHEjJ,eAnHmB,SAAwBhjI,GAC9BorI,GAAoBprI,IAE/B92J,IAAY,EAAO,CACjB6tB,OAAO,GAGb,EA+GEq+P,MA9GU,SAAe/ke,GACzBy7e,GAAmBz7e,EACrB,EA+GEyzd,WAAY+d,MA2DVh+d,GAAU0tJ,EAAAA,SAAc,WAC1B,MAAO,CACLylB,UAAWA,EACXtlN,OAAQA,EACRk2f,eAAgBA,EAChBp2d,OAAQinN,EAAWjnN,OACnBjzC,MAAOk6P,EAAWl6P,MAEtB,GAAG,CAACy4N,EAAWtlN,EAAQk2f,EAAgBnvQ,EAAWjnN,OAAQinN,EAAWl6P,QA+CrE,OA1CAssD,IAAgB,WACV49L,QAA8B99P,IAAhButZ,IAEhBypI,GAAkB,KAAM3e,GAAQ,EAEpC,GAAG,CAACv6Q,EAAYyvJ,GAAa8qH,IAG7Bn4c,IAAgB,WACd,IAAI4he,EAAS7B,KAGRniS,GAAyB,UAAXgkS,IACjBvjS,IAAY,GACZ4iS,GAAmB,MAAM,IAItBrjS,IAAckiR,GAAkBZ,GAA0B,UAAX0iB,IAClDvjS,IAAY,GACZ4iS,KAEJ,GAAG,CAACrjS,IAoBgBl3C,EAAAA,cAAoBkxT,GAAc9ta,SAAU,CAC9Dr4G,MAAOunE,IACO0tJ,EAAAA,cAAoBm7U,GAAe/vU,GAAS,CAAC,EAAGknT,GAAiBmH,GAAc,CAC7FtgR,aAAcurF,GACdnwF,WAAYtsO,EAAOomO,MACnBiG,eAAgB30C,EAAW0uC,MAG3BrI,QAASkR,EACT+sF,QAxMiB,WAEjBtsF,IAAY,EACd,EAwMEn4O,OAAO,IACQwgM,EAAAA,cAAoBi3U,GAEnC7rU,GAAS,CAAC,EAAGquT,EAAa,CAE1B/1e,IAAKkuW,EAGLtV,WAAYA,EAGZqqB,YAAazyB,IAAWh9H,EAAayvJ,GAAc,KACnDysI,aAAcuH,GACdtH,UAAWsH,IAAuC,WAAhBF,GAClCvmK,QAASA,GACTz5I,QA5HoB,SAAyBl1L,EAAOlpD,GAEpD,IAAI++hB,EAAgBjpB,GAAgB7khB,OAChC+tiB,EAAkBlpB,GAAgBipB,EAAgB,GAClDA,GAAiBC,IAAoBh/hB,GAASm8gB,IAEjDzF,EAAWsoB,KAAqB/B,GAAqB+B,IAAoBxoB,GAAcwoB,GACtFzpJ,EAAYx/W,QAAQ1S,MAAM,CACxBrjB,MAAOg/hB,KAIXhC,GAAc,SACd1hS,IAAY,EAAM,CAChB1hQ,SAAS,IAMP0wZ,KAAgBtqZ,GAAS66P,IAAeshR,GAAeY,GACzDmhB,GAAmB,MAAM,GAE3B3zI,GAAevqZ,GACfk9hB,GAAch0e,EAAOlpD,GACvB,EAoGEg3X,OAnGmB,SAAwB9tU,EAAOlpD,GAElD,GADAs7P,IAAY,IACP6gR,GAAmC,UAApB6gB,KAA6B,CAC/C,IAAI5qb,EAAY04S,GAAgB0rH,IAChCmN,GAAYr5H,GAA2B,OAAdl4S,EAC3B,CACAsnb,GAAaxwe,EAAOlpD,EACtB,EA6FEm+O,UA5FsB,SAA2Bj1L,EAAOrH,GACtC,QAAdqH,EAAMt0D,KACRspiB,GAAmB,MAAM,GAEb,OAAd//S,QAAoC,IAAdA,GAAwBA,EAAUj1L,EAAOrH,EACjE,EAwFEogQ,SAAUi8O,GAGVxviB,MAAO8viB,GACPjhB,WAAYA,EACZzsS,SA7IqB,SAA0B3rN,EAAMnlB,GACrD,IAAIpI,EAAQqmiB,GAAkB94gB,EAAMnlB,GACpCuihB,GAAsB3qhB,EACxB,EA2IEknY,cA1I0B,WAC1Bk+J,GAAc,QAChB,EA2IEjqiB,OAAQymhB,EACR4C,cAAeA,EAGftoe,SAAUA,EAGVzkC,KAAMwrP,EACNwO,aAAc/N,GAGdr3L,QAzVoB,SAAyB/a,GAC7C,IAAI+1e,EACAC,EAAWh2e,EAAMruD,OAAOwqP,cAC5B,IAAKkwJ,EAAYx/W,QAAQ4pM,cAAc9jO,SAAuD,QAA7CojiB,EAAiBC,EAASr8gB,qBAA8C,IAAnBo8gB,EAA4BA,EAAiB7niB,SAASyrB,eAAgB,CAE1K,IAAIs8gB,EAAerrf,EAASzyC,WAAU,SAAU3K,GAC9C,OAAQA,CACV,IACIyoiB,GAAgB,GAClB5pJ,EAAYx/W,QAAQ1S,MAAM,CACxBrjB,MAAOm/hB,GAGb,CACA7jS,IAAY,GACA,OAAZr3L,QAAgC,IAAZA,GAAsBA,EAAQ/a,EACpD,EA0UE+uU,QAzUoB,WACpBulK,GAAoB,MACpBliS,IAAY,EAAO,CACjB6tB,OAAO,GAEX,EAuUEvsH,QAASghY,GACT9G,UAAW+G,GAGX/C,aAAc2D,OAElB,CAKA,SAJkC96U,EAAAA,WAAiB44U,IE5mBpC,SAAS6C,GAAcz3f,GACpC,IAAIyhM,EAAYzhM,EAAMyhM,UACpB16O,EAAQi5C,EAAMj5C,MACdohZ,EAAWnoW,EAAMmoW,SACjBuvJ,EAAoB13f,EAAM2nW,WAC1BA,OAAmC,IAAtB+vJ,EAA+B,OAAMA,EAClDC,EAAa33f,EAAM23f,WACnBxrf,EAAWnM,EAAMmM,SACjBy7V,EAAc5nW,EAAM4nW,YACpB11T,EAAclyC,EAAMkyC,YAClB0ld,EAAc,GAAGjriB,OAAO80O,EAAW,aACnCo2T,EAAe,GAAGlriB,OAAO80O,EAAW,cACpCq2T,EAAc,GAAGnriB,OAAOkriB,EAAc,aAG1C,SAASE,EAAenxhB,EAASq5U,GAC/B,OAAoBjkI,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAWisN,KAAW,GAAGhvN,OAAOkriB,EAAc,UAC9C3jgB,MAA0B,kBAAZttB,EAAuBA,EAAU,MACjCo1M,EAAAA,cAAoB,OAAQ,CAC1CtsN,UAAW,GAAG/C,OAAOkriB,EAAc,kBAClCjxhB,IAAWulC,GAAY8zS,GAAwBjkI,EAAAA,cAAoB,OAAQ,CAC5EqkI,YAAa,SAAqB1qU,GAChCA,EAAEukC,gBACJ,EACAoiB,QAAS2jR,EACTvwV,UAAW,GAAG/C,OAAOkriB,EAAc,iBAClClwJ,GACL,CAkBA,OAAoB3rL,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAWkoiB,GACG57U,EAAAA,cAAoB+oB,GAAU,CAC5CtD,UAAWq2T,EACXpzhB,KAAM3d,EACN46O,WAtBF,SAAoBnkN,GAMlB,OAAOu6gB,EALYJ,EAAWn6gB,IAChB,SAAiB+jC,GACzBA,GAAOA,EAAMxI,kBACjBovV,EAAS3qX,EACX,GAEF,EAgBE+nN,WAbF,SAAoByiK,GAElB,OAAO+vJ,EADO,KAAKpriB,OAAOq7Y,EAAc1+Y,OAAQ,QAElD,EAaEy4O,QAAS,SAAiBvkN,GACxB,OAAOm6gB,EAAWn6gB,EACpB,EACA8nN,SAAUsiK,KACP7gZ,EAAMuC,QAAuB0yN,EAAAA,cAAoB,OAAQ,CAC5DtsN,UAAW,GAAG/C,OAAO80O,EAAW,2BAC/BvvJ,GACL,CC5DA,IAAIikJ,GAAY,CAAC,KAAM,OAAQ,SAAU,YAAa,aAAc,aAAc,UAAW,UAAW,UAAW,SAAU,YAAa,SAAU,iBAAkB,cAAe,YAAa,QAAS,UAAW,UAAW,iBAAkB,QAAS,WAAY,WAAY,gBAAiB,WAAY,cAAe,SAAU,aAAc,wBAAyB,YAAa,WAAY,UAAW,gBAAiB,YAAa,eAAgB,cAAe,WAAY,gBAAiB,YAAa,WAAY,cAUxgB,SAAS40K,GAAe/qW,EAAON,GACpBM,EAAMp0B,GAAf,IACElE,EAAOs4B,EAAMt4B,KACby0F,EAASn8D,EAAMm8D,OACf+0R,EAAYlxV,EAAMkxV,UAClBoH,EAAat4V,EAAMs4V,WAGnBpI,GAFalwV,EAAMovf,WACTpvf,EAAMqvf,QACNrvf,EAAMkwV,SAIhB/zW,GAHU6jB,EAAMy2M,QACPz2M,EAAMqvV,OACHrvV,EAAMw2M,UACTx2M,EAAM7jB,QACfk2f,EAAiBrye,EAAMqye,eACvBngc,EAAclyC,EAAMkyC,YACpBxiF,EAAYswC,EAAMtwC,UAClBjC,EAAQuyC,EAAMvyC,MACd6uE,EAAUt8B,EAAMs8B,QAChBg0T,EAAUtwV,EAAMswV,QAChB4kJ,EAAiBl1e,EAAMk1e,eACvBnuhB,EAAQi5C,EAAMj5C,MACdoiP,EAAWnpM,EAAMmpM,SACjBmxE,EAAWt6Q,EAAMs6Q,SAEjBl+O,GADgBp8B,EAAMm3V,cACXn3V,EAAMo8B,UACjBwrU,EAAc5nW,EAAM4nW,YAKpBz7V,GAJSnM,EAAM50C,OACF40C,EAAM41e,WACK51e,EAAMgvf,sBAClBhvf,EAAMmvf,UACPnvf,EAAMmM,UACjB8oH,EAAUj1H,EAAMi1H,QAEhBrvC,GADgB5lF,EAAMy0e,cACVz0e,EAAM4lF,WAElB+/Q,GADe3lW,EAAM0hO,aACN1hO,EAAMqgT,aAGrB5jR,GAFWz8B,EAAMsqE,SACFtqE,EAAM,iBACTA,EAAMy8B,WAClBuvK,EAAWhsM,EAAMgsM,SACjB27J,EAAa3nW,EAAM2nW,WACnB1lK,EAAYC,GAAyBliM,EAAOm2L,IAC1Cwf,EAAoB,QAAd/vH,EAIR67G,EADsBzlB,EAAAA,WAAiBkxT,IACTzrS,UAG5Bq4R,EAAU99S,EAAAA,SACV82K,EAAW92K,EAAAA,SACfA,EAAAA,oBAA0Bt8K,GAAK,WAC7B,MAAO,CACLs4L,cAAe8hS,EAAQ1re,QACvB1S,MAAO,SAAerwB,GACpB,IAAI+nY,EACuC,QAA1CA,EAAoBN,EAAS1kW,eAA2C,IAAtBglW,GAAgCA,EAAkB13W,MAAMrwB,EAC7G,EACAiwB,KAAM,WACJ,IAAI+3W,EACwC,QAA3CA,EAAqBP,EAAS1kW,eAA4C,IAAvBilW,GAAiCA,EAAmB/3W,MAC1G,EAEJ,IAGA,IAAImzP,EAAYwhR,GAAahuT,GA4B3B+1T,EAAkBj0T,GATCgrT,GAAcpuT,GAAcA,GAAc,CAAC,EAAG3gM,GAAQ,CAAC,EAAG,CAC3EmpM,SAjBiB,SAAwB3rN,GAC3C2rN,EAAS,CAAC3rN,GACZ,KAgBM,SAAU41H,GAEZ,MAAO,CACLrsJ,MAFeqsJ,EAAKo8Y,WAEF,IAAM,GACxBv0gB,OAAQi1W,EAEZ,IACiD,GACjD6jK,EAAgBiE,EAAgB,GAChCzI,EAAUyI,EAAgB,GAGxB1D,KAAepjK,IAAanqY,EAAMuC,QAAW6iD,GAG7CulW,EAAet1U,EAAwB4/I,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoBy7U,GAAe,CACnIh2T,UAAWA,EACX16O,MAAOA,EACPohZ,SAjCqB,SAA0B3qX,GAC/C,IAAIitY,EAAa1ja,EAAMuS,QAAO,SAAU2+hB,GACtC,OAAOA,IAAYt4gB,GAAO0yf,EAAgBl2f,EAAQ87gB,EAASz6gB,EAAM03f,EACnE,IACA/rS,EAASshL,GAGJ/iZ,GACH4yS,GAEJ,EAwBEq9O,WAAYpI,EACZ3nJ,YAAaA,EACbz7V,SAAUA,EACVw7V,WAAYA,EACZz1T,YAAaA,IACE8pI,EAAAA,cAAoB,QAAS,CAC5CtsN,UAAW,GAAG/C,OAAO80O,EAAW,mBAChC16O,MAAOA,EAAMyO,IAAI+5hB,GAASniiB,KAAK,KAC/BsyC,IAAKozV,EACL7C,UAAU,EACVxzT,UAAWA,EACXuvK,SAAUA,IACKhwB,EAAAA,cAAoB65B,GAAM,CACzC1mP,KAAM,SACNirM,KAAMk+L,IACJg8J,GAA0Bt4U,EAAAA,cAAoBk0U,GAAW,CAC3D91V,KAAM82L,EACNZ,QAASA,KACQt0K,EAAAA,cAAoB8rI,GAAO1gI,GAAS,CACrD1nL,IAAKozV,GACJihK,IAAiB,CAClBt3d,UAAWA,EACXuvK,SAAUA,EACVssJ,WAAYA,EACZpH,UAAWojK,GAA0Bt4U,EAAAA,cAAoBk0U,GAAW,CAClE91V,KAAM82L,EACNZ,QAASA,IAEX4gK,eAAe,KAIjB,OAAoBl1U,EAAAA,cAAoB,MAAOoL,GAAS,CAAC,EAAGqnD,EAAW,CACrE/+Q,UAAWisN,KAAW8lB,GAAWzhI,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,aAAcrlK,GAAW,GAAGzvE,OAAO80O,EAAW,YAAayuJ,GAAU,GAAGvjY,OAAO80O,EAAW,aAAct1L,GAAW,GAAGx/C,OAAO80O,EAAW,YAAaxsE,GAAU,GAAGtoK,OAAO80O,EAAW,QAASkU,GAAMjmP,GAC7UjC,MAAOA,EACPiyC,IAAKo6d,EACLx9b,QAASA,EAGT+jR,YAAa,SAAqB1qU,GAChC,IAAI29W,EACS39W,EAAEziB,UAC6C,QAA3CogY,EAAqBR,EAAS1kW,eAA4C,IAAvBklW,OAAgC,EAASA,EAAmBxD,eAC9Hn6W,EAAEukC,iBAEa,OAAjByrV,QAA0C,IAAjBA,GAA2BA,EAAahwX,EACnE,IACEwmF,GAAuB6/G,EAAAA,cAAoB,MAAO,CACpDtsN,UAAW,GAAG/C,OAAO80O,EAAW,YAC/BtlI,GAASu1S,EACd,CAKA,SAJqC11L,EAAAA,WAAiB+uL,IC7ItD,SAASmtJ,GAAOl4f,EAAON,GAErB,IACEo1f,EAAmB/wT,GADCkwS,GAAej0e,GACgB,GACnDy1e,EAAcqf,EAAiB,GAC/B5f,EAAiB4f,EAAiB,GAClC1f,EAAgB0f,EAAiB,GACjCjjB,EAAaijB,EAAiB,GAC9Blf,EAAakf,EAAiB,GAC9BhmB,EAAmBgmB,EAAiB,GAClC1hZ,EAAOqiY,EACTh0S,EAAYruF,EAAKquF,UACjBx9M,EAASmvH,EAAKnvH,OACd03L,EAAavoE,EAAKuoE,WAClB9sK,EAAQukG,EAAKvkG,MACbnoB,EAAe0sH,EAAK1sH,aACpB3/B,EAAQqsJ,EAAKrsJ,MACbythB,EAAcphY,EAAKohY,YACnBrrS,EAAW/1F,EAAK+1F,SAChBqN,EAAYpjG,EAAKojG,UACjBrqM,EAAWinG,EAAKjnG,SAChBuoe,EAAethY,EAAKshY,aACpBC,EAAUvhY,EAAKuhY,QACfC,EAAUxhY,EAAKwhY,QACf/uN,EAAczyK,EAAKyyK,YACnBn+S,EAAO0rI,EAAK1rI,KACZg6P,EAAetuH,EAAKsuH,aACpBvlP,EAASi3H,EAAKj3H,OACdk2f,EAAiBj/X,EAAKi/X,eACtB5E,EAASr6X,EAAKq6X,OACd4O,EAAUjpY,EAAKipY,QACfC,EAAYlpY,EAAKkpY,UACjBvL,EAAW39X,EAAK29X,SAChB5khB,EAAOinJ,EAAKjnJ,KACZq/hB,EAAgBp4Y,EAAKo4Y,cACrBrR,EAAmB/mY,EAAK+mY,iBACxBl7L,EAAO7rM,EAAK6rM,KACZ7iR,EAAWg3E,EAAKh3E,SAChB04c,EAAqB1hY,EAAK0hY,mBAC1BD,EAAczhY,EAAKyhY,YACnB+D,EAAsBxlY,EAAKwlY,oBAC3BnE,EAAgBrhY,EAAKqhY,cACrBn8I,EAAallP,EAAKklP,WAClBqP,EAAav0P,EAAKu0P,WAClBlxJ,EAAUrjG,EAAKqjG,QACf44I,EAASj8O,EAAKi8O,OACdsoJ,EAAUvkY,EAAKukY,QACfz0Q,EAAa9vH,EAAK8vH,WAClBqrQ,EAAan7X,EAAKm7X,WAClBC,EAAap7X,EAAKo7X,WAClBC,EAAkBr7X,EAAKq7X,gBACvBnyc,EAAU82E,EAAK92E,QAGbsxU,EAAc6pI,GAAa/3e,GAG/B,SAASy4f,EAAY35hB,GACnB,OAAe,OAAXA,EACK,KAEF49D,EAAW59D,EAASA,EAAO,EACpC,CACA,IAAImthB,GAAcnL,GAAenO,EAAgBl2f,EAAQ+4f,GAIvD6f,GAAYhxT,GADCkzS,GAAQvvgB,EAAMm+S,EAAa,CAAC15Q,GAAWu1N,GACf,GACrCxO,GAAa6hS,GAAU,GACvBphS,GAAcohS,GAAU,GAgBxBG,GAAkBnxT,GADCk2S,GAAc5H,EAAgBl2f,EAAQ01f,GAAY,EAAOhje,EAAOnoB,EAAc3/B,GAZpE,SAAkCw0J,EAAO68Y,EAAaz9Z,GACnF,GAAIw/Y,EAAkB,CACpB,IAAIke,EAAe13T,GAAc,CAAC,EAAGhmG,UAC9B09Z,EAAa78gB,MACpB2+f,EAAiBge,EAAY58Y,GAAQ48Y,EAAYC,GAAcC,EACjE,CACF,IACmB,SAAsB98Y,GAC9B,OAAT0jM,QAA0B,IAATA,GAAmBA,EAAKk5M,EAAY58Y,GACvD,IAImD,GACjDguF,GAAc2rT,GAAgB,GAC9B5rT,GAAgB4rT,GAAgB,GAChC/Z,GAAmB+Z,GAAgB,GACnCta,GAAwBsa,GAAgB,GACxCC,GAAYD,GAAgB,GAC1BrmB,GAAgBsM,KAKlBia,GAAmBrxT,GADCg0S,GAAe,CAAC5re,IACe,GACnD+jV,GAAUklK,GAAiB,GAC3B1lK,GAAe0lK,GAAiB,GAChCC,GAAgBD,GAAiB,GACjCzyI,GAAcyyI,GAAiB,GAC7BG,GAAgB,SAAuBh0e,GACzCmuU,IAAa,GACD,OAAZj5I,QAAgC,IAAZA,GAAsBA,EAAQl1L,EAAO,CAAC,EAC5D,EACIwwe,GAAe,SAAsBxwe,GACvCmuU,IAAa,GACF,OAAXL,QAA8B,IAAXA,GAAqBA,EAAO9tU,EAAO,CAAC,EACzD,EAMEokN,GAAmB5hC,GAHCkF,GAAewkS,EAAQ,CACzC1mhB,MAAOoF,IAE0C,GACnDo6Q,GAAaZ,GAAiB,GAC9B2yR,GAAU3yR,GAAiB,GAGzBe,GAA8B,SAAfH,IAAyBwqQ,EAAW,WAAaxqQ,GAGhEovR,GAAgBvZ,GAAW3O,EAAQlnQ,GAAY81Q,EAASC,GAGxDzoJ,GAAmB1qJ,GAAY,SAAU5tF,EAAO68Y,GAClDjvT,EAASgvT,EAAY58Y,GAAQ48Y,EAAYC,GAC3C,EAQEvC,GAFkB9xT,GALCm3S,GAAcv6S,GAAcA,GAAc,CAAC,EAAG80S,GAAc,CAAC,EAAG,CACjFtsS,SAAU0qJ,KACRtqJ,GAAaD,GAAe6xS,GAAkBP,GAAuB,GAEzE/I,EAAY3hJ,GAASh9H,GAAY47Q,GACgB,GAEX,GAItCknB,GAAwBjyT,GADC6qS,GAAoBC,GAAeC,GACC,GAC7DmnB,GAAoBD,GAAsB,GAC1CE,GAAoBF,GAAsB,GACxCuC,GAAmBv8U,EAAAA,SAAc,WACnC,OAAOi6U,GAAkB18hB,MAAK,SAAUi/hB,GACtC,OAAOA,CACT,GACF,GAAG,CAACvC,KAgBFE,GAAwBpyT,GAHCw0S,GAAoBlG,EAAgBl2f,EAAQ0yf,GAAe,CAACtoQ,IAAarT,GAAYyvJ,GAAauyH,GAAgB,EAE3IJ,EAAoBD,EAAallb,GAAqB,OAAbohb,QAAkC,IAAbA,OAAsB,EAASA,EAASS,mBAXtE,SAAqCj2X,EAAO5gB,GAC5E,GAAIi+Y,EAAqB,CACvB,IAAI6f,EAAY93T,GAAcA,GAAc,CAAC,EAAGhmG,GAAO,CAAC,EAAG,CACzDxuI,KAAMwuI,EAAKxuI,KAAK,YAEXssiB,EAAUj9gB,MACjBo9f,EAAoBr9X,EAAM,GAAIk9Y,EAChC,CACF,GAGwJ9jB,EAASC,GAClG,GAC7D0E,GAAqB6c,GAAsB,GAC3C5c,GAAwB4c,GAAsB,GAG5C/J,GAAoB1pT,IAAS,SAAU82S,EAAiByS,EAAUmK,GAIpE,GAHAkC,GAAQrM,GAGJT,IAAkC,IAAjB4K,EAAwB,CAC3C,IAAIsC,EAAkBlf,GAAmB3K,GAAcA,GAAcvlhB,OAAS,GAC9EkiiB,EAAckN,EAAiBzM,EACjC,CACF,IAOI0M,GAAiB,WACnB9C,GAAoB1a,MACpBxnR,IAAY,EAAO,CACjB6tB,OAAO,GAEX,EAoBE19C,GAAmBC,GADC/nB,EAAAA,SAAe,MACgB,GACnDy6U,GAAc3yT,GAAiB,GAC/B4yT,GAAiB5yT,GAAiB,GAElCkQ,GAAmBjQ,GADE/nB,EAAAA,SAAe,MACgB,GACpD48U,GAAqB5kT,GAAiB,GACtC6kT,GAAwB7kT,GAAiB,GACvC6iT,GAAc76U,EAAAA,SAAc,WAC9B,IAAIx9M,EAAS,CAACo6hB,IAAoBjsiB,OAAOw+O,GAAmB0jS,KAAgBv1gB,QAAO,SAAUkkB,GAC3F,OAAOA,CACT,IACA,OAAO4+C,EAAW59D,EAASA,EAAOrR,MAAM,EAAG,EAC7C,GAAG,CAAC0hhB,GAAe+pB,GAAoBx8d,IAInC08d,GAAiB98U,EAAAA,SAAc,WACjC,OAAK5/I,GAAYw8d,GACR,CAACA,IAEH/pB,GAAcv1gB,QAAO,SAAUkkB,GACpC,OAAOA,CACT,GACF,GAAG,CAACqxf,GAAe+pB,GAAoBx8d,IAGvC4/I,EAAAA,WAAgB,WACTk3C,IACH2lS,GAAsB,KAE1B,GAAG,CAAC3lS,KAMJ,IAAI6jS,GAAarf,GAAWC,GAOxB8V,GAAiB,SAAwBvpT,GAC3C,IAAI22S,EAAqBz+c,EAAWuvd,GAAYxQ,KAAoBj3S,GAAa,CAACA,GACrE2xT,GAAoBhb,KAClBz+c,GACbu3L,IAAY,EAAO,CACjB6tB,OAAO,GAGb,EA4CI8qQ,GAAuBh9D,GAAci/C,EAAYC,EAAYC,GAI7Dke,GAAa3wU,EAAAA,SAAc,WAC7B,IAAI0xL,EAAWpuD,GAAUm2L,GAAa,GAEtC,OAAO90S,GAAcA,GAAc,CAAC,EADpBjwI,GAAK+kb,EAAa,GAAG9ohB,OAAOw+O,GAAmBh9O,OAAOC,KAAKs/Y,IAAY,CAAC,WAAY,mBAAoB,QAAS,YAAa,oBAC3F,CAAC,EAAG,CACrDtxU,SAAUq5c,EAAYr5c,UAE1B,GAAG,CAACq5c,IAGA/0L,GAAqB1kI,EAAAA,cAAoBijD,GAAO73C,GAAS,CAAC,EAAGulU,GAAY,CAC3EtQ,QAASsZ,GACT5kB,SAAUA,EAGV2D,aAAcA,EAGdj+R,QArDiB,SAAsBl1L,GACvCoyM,IAAY,GACZ4hS,GAAch0e,EAChB,EAmDE8tU,OAAQ0iK,GAGRtkB,OAAQA,EACRthhB,KAAMo6Q,GACNG,aAAcA,GACd8kR,cAAeY,GAGfhhiB,OAAQwqhB,EACR7uhB,MAAO8nhB,GACP8e,UAAW7e,EACX3lS,SAAU,KACV07B,SA7DkB,SAAuBrnP,GAIzC,GAHA63gB,GAAc,UAGVj5d,GAAYsqM,KAAiB+mQ,EAAjC,CAGA,IAAIhjH,EAAaruV,EAAWuvd,GAAYxQ,KAAoB39f,GAAQ,CAACA,GAGrEo9f,GAAsBnwH,GAIjB+pH,GAAgBY,GAAiBF,IAAmBxuQ,IACvDiyR,IATF,CAWF,EA+CE9jB,YAAayE,GACb9H,iBAA+B,OAAbT,QAAkC,IAAbA,OAAsB,EAASA,EAASS,iBAC/EoH,oBAAqBW,GAGrBwH,WAAY8V,GACZ7kE,QAlFiB,SAAsBx0c,GACvCq7gB,GAAsBr7gB,GACtBk5gB,GAAe,OACjB,EAkFEliB,YAAaA,EACbl6N,SAAUq+O,GACV15M,KAAMk2M,GAGNxd,QAASof,GACTvJ,cA/GkB,SAAuBtpT,GACzC20T,GAAsB30T,GACtBwyT,GAAe,SACjB,EA6GEjJ,eAAgBA,GAChB5N,MAlGU,SAAe/ke,GACzB2ye,GAAe3ye,EACjB,EAmGEyzd,WAAY+d,MAsCVh+d,GAAU0tJ,EAAAA,SAAc,WAC1B,MAAO,CACLylB,UAAWA,EACXtlN,OAAQA,EACRk2f,eAAgBA,EAChBp2d,OAAQinN,EAAWjnN,OACnBjzC,MAAOk6P,EAAWl6P,MAEtB,GAAG,CAACy4N,EAAWtlN,EAAQk2f,EAAgBnvQ,EAAWjnN,OAAQinN,EAAWl6P,QA8BrE,OAzBAssD,IAAgB,WACV49L,SAA8B99P,IAAhButZ,IAEhBypI,GAAkB,KAAM3e,GAAQ,EAEpC,GAAG,CAACv6Q,GAAYyvJ,GAAa8qH,IAG7Bn4c,IAAgB,WACd,IAAI4he,EAAS7B,KAGRniS,IAAyB,UAAXgkS,IACjBvjS,IAAY,GACZglS,MAIGzlS,KAAckiR,GAAkBZ,GAA0B,UAAX0iB,IAClDvjS,IAAY,GACZglS,KAEJ,GAAG,CAACzlS,KAGgBl3C,EAAAA,cAAoBkxT,GAAc9ta,SAAU,CAC9Dr4G,MAAOunE,IACO0tJ,EAAAA,cAAoBm7U,GAAe/vU,GAAS,CAAC,EAAGknT,GAAiBmH,GAAc,CAC7FtgR,aAAcurF,GACdnwF,WAAYtsO,EAAOomO,MACnBiG,eAAgB30C,EAAW0uC,MAG3BrI,QAASkR,GACT+sF,QArJiB,WAEjBtsF,IAAY,EACd,IAmJiB33C,EAAAA,cAAoB+uL,GAEnC3jL,GAAS,CAAC,EAAGquT,EAAa,CAE1B/1e,IAAKkuW,EAGLtV,WAAYA,EACZqP,WAAYA,EAGZynJ,aAAcwJ,GACdvJ,UAAWuJ,IAAsC,WAAhBnC,GACjCvmK,QAASA,GACTz5I,QApFoB,SAAyBl1L,GAC7C8ze,GAAc,SACd1hS,IAAY,EAAM,CAChB1hQ,SAAS,IAKXsjiB,GAAch0e,EAChB,EA4EE8tU,OA3EmB,SAAwB9tU,GAC3CoyM,IAAY,GACZo+R,GAAaxwe,EACf,EAyEEi1L,UAxEsB,SAA2Bj1L,EAAOrH,GACtC,QAAdqH,EAAMt0D,KACR0riB,KAEY,OAAdniT,QAAoC,IAAdA,GAAwBA,EAAUj1L,EAAOrH,EACjE,EAoEEogQ,SAAUq+O,GAGV5xiB,MAAO+xiB,GACPljB,WAAYA,EACZzsS,SApGqB,SAA0B3rN,GAC/Co9f,GAAsBp9f,EACxB,EAmGE25W,cAlG0B,WAC1Bk+J,GAAc,QAChB,EAiGEngB,eAAgBA,EAGhB9phB,OAAQymhB,EACR4C,cAAeA,EAGftoe,SAAUA,EAGVzkC,KAAMwrP,GACNwO,aAAc/N,GAGdr3L,QAtSoB,SAAyB/a,GACxCpV,GAAayhW,EAAYx/W,QAAQ4pM,cAAc9jO,SAASzE,SAASyrB,gBAEpE0yX,EAAYx/W,QAAQ1S,QAEtBi4O,IAAY,GACA,OAAZr3L,QAAgC,IAAZA,GAAsBA,EAAQ/a,EACpD,EAgSE+uU,QA/RoB,WACpBulK,GAAoB,MACpBliS,IAAY,EAAO,CACjB6tB,OAAO,GAEX,EA6REvsH,QAASsjY,GACTpJ,UAAW,SAAmBl6X,GAG5BihY,GAAkBjhY,EAAS,EAC7B,MAEJ,CAKA,MClfA,GD8e6B+mD,EAAAA,WAAiBk8U,IE5gBxCa,GAAUA,CAACjob,EAAOylB,KACtB,MAAM,aACJ8uJ,EAAY,cACZuE,GACE94K,EACEqgK,EAAY56I,EAAS,GAAG8uJ,KAAgB9uJ,IAAW,GACnDu2R,EAAuBhB,GAAwBh7S,GACrD,MAAO,CAEP,CACE,CAAC,GAAGu0K,aAAwBlU,KAAc,CACxCqvD,aAAcssF,EAAqBZ,iBACnC9gG,mBAAoB0hG,EAAqBb,YACzCtgK,UAAWi+B,EAEX,CAAC,GAAGvE,oBAAgC,CAClCv7R,OAAQgja,EAAqBtiG,WAC7B/kS,WAAYt6B,GAAK2ha,EAAqBX,mBAG1C,EAuEJ,GArE+Br7S,IAC7B,MAAM,aACJu0K,EAAY,KACZla,EAAI,UACJ9kP,GACEyqF,EACE86N,EAAa9oD,GAAWhyK,EAAO,CACnCo7K,WAAYp7K,EAAMvrF,SAClBqnY,aAAc97S,EAAMg6K,gBACpBihI,yBAA0Bj7S,EAAMq8S,qBAChC3jI,aAAc14K,EAAM65K,eACpBA,eAAgB75K,EAAM45K,eACtBd,cAAe94K,EAAMg6K,kBAEjBghD,EAAahpD,GAAWhyK,EAAO,CACnCo7K,WAAY/gB,EAAKr6J,EAAMs8S,sBAAsBrtM,IAAIorD,EAAK9kP,GAAWm6L,IAAI,GAAGp/C,SAASA,QACjF77I,SAAUurF,EAAM26K,WAChBmhI,aAAc97S,EAAMk6K,gBACpB+gI,yBAA0Bj7S,EAAMs8S,qBAChC5jI,aAAc14K,EAAM85K,eACpBD,eAAgB75K,EAAM04K,aACtBI,cAAe94K,EAAMk6K,kBAEvB,MAAO,CAEP+tQ,GAAQntN,EAAY,SAAUmtN,GAAQjob,GAAQiob,GAAQjtN,EAAY,SAElE,CACE,CAAC,GAAGzmD,IAAeA,cAA0Bl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CACvEnH,MAAO,OACP+3B,OAAQ,OAER,CAAC,GAAGkjQ,cAA0B,CAC5Bx3O,KAAM,OACNnkB,QAAS,EACTl2B,SAAU,WACV,UAAW,CACTzJ,OAAQ,GAGV,CAAC,GAAGs7R,2BAAuC,CACzC7xR,SAAU,WACV/J,IAAK,MACLkyS,iBAAkB7qL,EAAMk8S,2BACxBvxH,eAAgB,EAChB/zN,UAAW,mBACXhvB,WAAY,OAAOo4D,EAAMu2K,qBACzB5zR,SAAU,SACV+1I,WAAY,SACZq9I,aAAc,WACdh5O,KAAM,EACNzkB,MAAO0nF,EAAM8jL,qBACbtyD,cAAe,UAGlB8pL,GAAiBt7S,IAAS,CAG3B,CAAC,GAAGu0K,oBAAgC,CAClCj7R,MAAO,EACPN,OAAQ,EACRmzI,OAAQ,EACRjV,WAAY,SACZx0H,SAAU,WACVE,QAAS,MAGb,EC1FEsliB,GAA0Blob,IAC9B,MAAM,cACJmob,EAAa,mBACbC,EAAkB,WAClBC,EAAU,eACVxuQ,EAAc,kBACdqI,EAAiB,YACjBomQ,EAAW,UACX/ygB,EAAS,SACTwiQ,EAAQ,aACRR,EAAY,sBACZgxQ,EAAqB,oBACrBrkQ,EAAmB,kBACnBtN,EAAiB,eACjB4xQ,EAAc,mBACdhsQ,GACEx8K,EACJ,MAAO,CACL,YAAa,CACXt9G,SAAU,WACV/J,IAAK,MACLkyS,iBAAkB,EAClBF,eAAgB,EAChB/nS,OAAQ,EACR5J,OAAQqviB,EACRzxd,UAAW,mBACX9gE,QAAS,KACT07N,cAAe,QAGjB,CAAC42T,GAAqB,CACpB1liB,SAAU,WACVE,OAAQ,EACR/E,QAAS,eACTslC,SAAUklgB,EACVrviB,OAAQqviB,EACR1zgB,WAAYt6B,GAAKguiB,GACjB3vQ,aAAcmB,EACdjyO,WAAY,cAAcs6O,KAG5B,CAAC,eAAeimQ,kBAA8BA,iCAChCA,mBAA+BA,sBAAkCA,oBAAgCA,eAA4B,CACzI,CAACC,GAAqB,CACpBv1a,WAAYy1a,IAIhB,CAAC,YAAYH,WAAuBC,KAAuB,CACzD,YAAa,CACX1liB,SAAU,WACV/J,IAAK,EACLgyS,eAAgB,EAChBltS,OAAQ,EACRotS,iBAAkB,EAClBjoS,OAAQ,EACRupI,OAAQ,GAAG9xI,GAAKk7B,MAAcwiQ,KAAYR,IAC1CmB,aAAcmB,EACd/jR,QAAS,OAIb,CAAC,YAAYqyhB,+BACAA,kCACAA,eAA4B,CACvCzliB,SAAU,WACV,CAAC,SAASyliB,sBAAmC,CAC3Ct1a,WAAY01a,IAIhB,CAAC,YAAYJ,+BACAA,kCACAA,eAA4B,CACvC,CAAC,SAASA,eAA2BC,KAAuB,CAC1D9vgB,MAAO4rQ,EACPrxK,WAAY0kK,GAEd,CAAC,IAAI4wQ,cAA0BC,KAAuB,CACpDv1a,WAAY2pK,IAGhB,CAAC,YAAY2rQ,qBAAiCA,sBAAmC,CAC/Et9P,iBAAkB,OAEpB,CAAC,YAAYs9P,mBAA+BA,sBAAmC,CAC7Ex9P,eAAgB,OAGlB,CAAC,YAAYw9P,qBAAiCA,gBAA4BC,KAAuB,CAC/FvzN,uBAAwBh7C,EACxBi7C,qBAAsBj7C,EACtB86C,qBAAsB,EACtBC,mBAAoB,GAGtB,CAAC,YAAYuzN,mBAA+BA,kBAA8BC,KAAuB,CAC/FvzN,uBAAwB,EACxBC,qBAAsB,EACtBH,qBAAsB96C,EACtB+6C,mBAAoB/6C,GAGtB,aAAc,CACZvhQ,MAAOs+P,EACPvlQ,OAAQ,cACR,CAAC+2gB,GAAqB,CACpBv1a,WAAY,eAEd,YAAa,CACXA,WAAY21a,IAGhB,CAAC,aAAaL,WAAuBC,aAA+B,CAClEvugB,YAAa+8P,GAEhB,EAEU6xQ,GAAgBzob,IAC3B,MAAM,aACJu0K,EAAY,cACZ4zQ,EAAa,mBACbC,EAAkB,yBAClBM,EAAwB,sBACxBC,EAAqB,UACrBpxgB,EAAS,UACTkuQ,EAAS,UACTD,EAAS,WACTD,EAAU,iBACVxI,EAAgB,UAChBxnQ,EAAS,SACTwiQ,EAAQ,eACR+B,EAAc,aACdvC,EAAY,iBACZwM,EAAgB,WAChBF,EAAU,6BACV+kQ,EAA4B,UAC5BtkQ,EAAS,WACTukQ,EAAU,kBACV3mQ,EAAiB,eACjBqC,EAAc,iBACdY,EAAgB,WAChBkjQ,EAAU,0BACVS,EAAyB,kBACzBlyQ,EAAiB,UACjBV,EAAS,SACTzhQ,EAAQ,mBACR8hQ,EAAkB,sBAClBwyQ,EAAqB,gCACrBC,EAA+B,eAC/BnvQ,EAAc,oBACdqK,EAAmB,YACnBokQ,EAAW,iBACXW,EAAgB,gBAChBC,EAAe,eACfC,EAAc,oBACdrkQ,EAAmB,UACnBqB,EAAS,iCACTijQ,EAAgC,wBAChCC,GACErpb,EACEspb,EAAmBtpb,EAAMq6J,KAAK9iP,GAAWm4L,IAAI,GAAG7iM,IAAImzF,EAAMq6J,KAAK+uR,GAAkC15U,IAAI,IAAIp/C,QAC/G,MAAO,CACL,CAACikH,GAAe,CACd,UAAW,CACT12R,QAAS,cACT6rS,cAAe,SACf3vQ,UAAW,SACX84F,WAAYkqK,EACZrE,aAAcoB,EACdhtF,QAAS,OACT,YAAa,CACXjzK,YAAa09P,GAEf,QAAS,CACP,CAAC,GAAGhD,+BACEA,qBAAiC,CACrC39M,UAAW,iBAEb,CAAC,GAAG29M,+BACEA,qBAAiC,CACrC39M,UAAW,mBAEb,CAAC,GAAG29M,gBAA4B,CAC9B,CAAC,GAAGA,aAAyB,CAC3Bz/J,UAAW,MACX,MAAO,CACLA,UAAW,WASrB,+JAMkB,CAChBj3H,QAAS,OACT6rS,cAAe,SACfpwS,MAAOgwiB,GAGT,WAAY,CACVzriB,QAAS,OACT+6B,QAAS,KAAKv+B,GAAKmrS,KACnBltQ,MAAOyrQ,EACPyzB,aAAc,GAAGn9T,GAAKk7B,MAAcwiQ,KAAY8L,IAChD,MAAO,CACL9mP,KAAM,QAERoO,OAAQ,CACNvyB,QAAS,EACTN,MAAOgsQ,EACP3vQ,WAAYt6B,GAAKwuiB,GACjBh2a,WAAY,cACZsZ,OAAQ,EACR96G,OAAQ,UACRu2B,WAAY,SAASs6O,IACrBztQ,SAAU,UACV52B,QAAS,cACTs5R,WAAY,SACZyT,eAAgB,SAChB,UAAW,CACT/sS,QAAS,SAGb,WAAY,CACVslC,SAAU,QACV1O,WACA,UAAW,CACT6D,MAAOisQ,GAET,aAAc,CACZvhS,QAAS,IACTwuO,cAAe,SAGnB,SAAU,CACRz0L,KAAM,OACN7iB,WAAYirQ,EACZxwQ,WAAYt6B,GAAKwuiB,GACjB,WAAY,CACVvwgB,MAAO,UACP4B,WAAY,UACZ,sBAAuB,CACrBwgS,kBAAmBl1B,GAErB,UAAW,CACTltQ,MAAOi/P,MAMf,4FAGuB,CACrB70R,SAAU,WACVpJ,MAAOqviB,EACP3viB,OAAQ2viB,EACR,YAAa,CACXjmiB,SAAU,WACV/J,IAAK,EACLkyS,iBAAkB,EAClBvxS,MAAOqviB,EACP3viB,OAAQ2viB,EACRx8Z,OAAQ,uBACRu1S,iBAAkB,GAAGrnb,GAAKuuiB,OAC1BnnH,kBAAmB,GAAGpnb,GAAKuuiB,OAC3B9yhB,QAAS,OAGb,gDACuB,CACrB,WAAY,CACVpT,SAAU,WACV/J,IAAK0wiB,EACLx+P,iBAAkBw+P,EAClBxriB,QAAS,eACTvE,MAAOqviB,EACP3viB,OAAQ2viB,EACRx8Z,OAAQ,uBACRu1S,iBAAkB,GAAGrnb,GAAKuuiB,OAC1BnnH,kBAAmB,GAAGpnb,GAAKuuiB,OAC3B9yhB,QAAS,OAGb,iCAAkC,CAChC8gE,UAAW,kBAEb,iCAAkC,CAChCA,UAAW,kBAGb,YAAa,CACXt9E,MAAO,OACPgue,YAAa,QACblqG,eAAgB,WAChB,SAAU,CACR16X,SAAU,WACVygC,SAAUklgB,EACVnugB,WAAY,UAEdilC,GAAI,CACFnmE,OAAQgnH,EAAMq6J,KAAKguR,GAAYx7gB,IAAImzF,EAAMq6J,KAAKyuR,GAA2Bp5U,IAAI,IAAIp/C,QACjFh4I,MAAO49P,EACPl8P,cAAe,WAGnB,SAAU38B,OAAOoD,OAAO,CACtBm4B,QAAS,GAAGv+B,GAAKyuiB,OACjBxwgB,MAAOs+P,EACPvlQ,OAAQ,UAER,YAAa,CACXiH,MAAO49P,IAERgyQ,GAAwBlob,IAC3B,0FAGmB,CACjB,CAAC,GAAGu0K,aAAyB,CAC3Bv7R,OAAQgnH,EAAMq6J,KAAK0uR,GAAuBr5U,IAAI,GAAGp/C,SAEnD,CAAC83X,GAAqB,CACpBxvgB,QAAS,KAAKv+B,GAAKmrS,OAGvB,kBAAmB,CACjB,CAAC,GAAGjR,aAAyB,CAC3Bv7R,OAAQgwiB,IAOZ,iBAAkB,CAChB,CAACZ,GAAqB,CACpBxvgB,QAAS,KAAKv+B,GAAK2lH,EAAMq6J,KAAKmrB,GAAWx3E,IAAI,GAAG19C,YAElD,CAAC,GAAGikH,kBAA8B,CAChC12R,QAAS,SAIb,iEAEmB,CACjB,CAAC,GAAG02R,UAAsB,CACxB37P,QAAS,KAAKv+B,GAAKmrS,MAErB,CAAC4iQ,GAAqB,CACpB9uiB,MAAOoviB,IAIX,eAAgB,CACd,CAAC,GAAGn0Q,UAAsB,CACxB37P,QAAS,GAAGv+B,GAAKmrS,MAAcnrS,GAAK+uiB,MAEtC,CAAC,GAAG70Q,gBAA4B,CAC9B9oD,UAAW,aACX7yM,QAAS,IAIb,eAAgB,CAEd,CAAC,GAAG27P,UAAsB,CACxB,CAAC,WAAW6zQ,8BACGA,mBACXA,KAAuB,CACzBv1a,WAAY,2BAGhB,QAAS,CACP3oE,GAAI,CACF,WAAY,CACVtC,WAAY,cAAcs6O,KAE5B,uBAAwB,CACtB2yC,uBAAwBh7C,EACxBi7C,qBAAsBj7C,GAExB,sBAAuB,CACrB86C,qBAAsB96C,EACtB+6C,mBAAoB/6C,IAGxB,oBAAqB,CACnBhnK,WAAYy1a,GAEd,8DAA+D,CAE7D,CAAC,IAAIH,KAAkB,CACrB,WAAY,CACVt1a,WAAY0kK,GAEd,CAAC,IAAIhD,eAA2B,CAC9Bj8P,MAAO,IAAIggP,GAAU4rB,GAAqB7qB,KAAK,IAAK5kF,eAEtD,CAAC2zW,GAAqB,CACpB9vgB,MAAO4rQ,KAIb,0BAA2B,CACzBrxK,WAAYiyK,KAKlB,uCAAwC,CACtC,CAAC,GAAGvQ,UAAsB,CACxB37P,QAAS,GAAGv+B,GAAKmrS,MAAcnrS,GAAKorS,MAEtC,CAAC,GAAGlR,gBAA4B,CAC9Bj7R,MAAO,SAIX,mBAAoB,CAClBuE,QAAS,OACT,CAAC,GAAG02R,gBAA4B,CAC9BuW,kBAAmB,GAAGzwS,GAAKk7B,MAAcwiQ,KAAY8L,KAEvD,CAAC,GAAGtP,4BACAA,gBAA4B,CAC9B3sO,WAAY,WAAW2uO,KAGzB,WAAY,CACV,CAAC,GAAGhC,8BACAA,gBAA4B,CAC9BvxR,QAAS,GACT,WAAY,CACVA,QAAS,MAMjB,eAAgB,CACd1J,MAAO,OACP6pC,SAAU,OACV,CAAC,GAAGoxP,aAAyB,CAC3B12R,QAAS,OACTk/C,KAAM,OACN/jD,OAAQiwiB,GAEV,WAAY,CACVlsf,KAAM,WACNzjD,MAAO4viB,EACPjwiB,OAAQ,GAAGoB,GAAKkrS,OAChB3sQ,QAAS,EACTugG,UAAW,SACXp/F,UAAW,QACXo8P,UAAW,OACXvuO,WAAY,cAAcs6O,IAC1BhpK,UAAW,SACX,uBAAwB,CACtB5/H,MAAO,EACPwJ,gBAAiB,eAEnB,6BAA8B,CAC5BA,gBAAiBk9G,EAAMq8K,kBACvB3D,aAAc14K,EAAM65K,gBAGtB,IAAK,CACH5vC,eAAgB,OAChBD,eAAgB,GAAGhqI,EAAMq8K,iCAE3B,WAAY,CACVx+R,QAAS,QACT7E,OAAQ,eAAeqB,GAAK8uiB,MAC5BrzhB,QAAS,MAEX,sBAAuB,CACrBg1R,kBAAmB,GAAGzwS,GAAKk7B,MAAcwiQ,KAAY8L,KAEvD,WAAY,CACVhxK,WAAY,IAAIylJ,GAAUwsB,GAAqBzrB,KAAK,IAAK5kF,eAE3D,UAAW,CACTt7D,UAAW,QAEb,OAAQ,CACNlgI,OAAQ,EACR2/B,QAAS,EACT,CAAC,IAAI27P,qBAAiC,CACpCwlC,aAAc5zB,EACd,CAAC,GAAG5R,2BAAuC,CACzC12R,QAAS,QACTvE,MAAO0mH,EAAMq6J,KAAK6uR,GAAiBj6U,IAAIjvG,EAAMq6J,KAAK8rB,GAAWz2E,IAAI,IAAIp/C,QACrEt3K,OAAQmwiB,EACRlwiB,OAAQ,EACRy2U,aAAc,EACdzV,iBAAkB,EAClBK,mBAAoBt6M,EAAMq6J,KAAK6uR,GAAiBj6U,IAAIk6U,GAAgBn7U,IAAI,GAAG19C,QAC3Eh4I,MAAO49P,EACPvhQ,WAAYt6B,GAAK8uiB,GACjBzwQ,aAAcmB,EACdxoQ,OAAQ,UACRu2B,WAAY,cAAcs6O,IAC1B,UAAW,CACTrvK,WAAYy1a,IAGhB,aAAc,CACZ,CAAC,GAAG/zQ,2BAAuC,CACzC1hK,WAAYiyK,IAGhB,aAAc,CACZ,CAAC,GAAGvQ,2BAAuC,CACzCj8P,MAAOs+P,EACP/jK,WAAY,cACZxhG,OAAQ,qBAQvB,EAiEH,GA/D4B2uF,IAC1B,MAAM,aACJu0K,EAAY,WACZs0Q,EAAU,UACVtzgB,EAAS,UACTkwQ,EAAS,OACT/Q,EAAM,aACN6C,EAAY,sBACZgxQ,EAAqB,mBACrBxxQ,EAAkB,SAClBgB,EAAQ,WACR8L,GACE7jL,EACJ,MAAO,CACL,CAAC,GAAGu0K,cAA0B,CAE5B,CAAC,GAAGA,YAAwB,CAC1BgmE,UAAW,GAAGlgW,GAAKk7B,MAAcwiQ,KAAY8L,IAC7C,UAAW,CACTjrQ,QAAS,KAAKv+B,GAAKorS,KACnB9wQ,WAAYt6B,GAAK2lH,EAAMq6J,KAAKwuR,GAAY55U,IAAIjvG,EAAMq6J,KAAK9kP,GAAWm6L,IAAI,IAAIp/C,SAC1Ev2I,UAAW,QACX,qBAAsB,CACpBy9R,aAAc,GAAGn9T,GAAKk7B,MAAcwiQ,KAAY8L,OAKtD,CAAC,GAAGtP,cAAyBA,YAAuBA,YAAwB,CAC1EqW,eAAgB,iBAElB,CAAC,GAAGrW,YAAwB,CAC1BylC,YAAa,EACbpwB,cAAevvS,GAAKorS,GACpB9iS,SAAU,SACVo3B,UAAW,QACXo8P,UAAW,OACXt4R,QAAS,OACT+sS,eAAgB,SAChBzT,WAAY,SACZ,OAAQ,CACNxiQ,WAAYt6B,GAAK2lH,EAAMq6J,KAAKwuR,GAAY55U,IAAIjvG,EAAMq6J,KAAK9kP,GAAWm6L,IAAI,IAAIp/C,SAC1EzyK,QAAS,gBAEX,CAAC,GAAG02R,sBAAkC,CACpC/iD,cAAe,OACfl5M,MAAO0nF,EAAM42K,mBAGf,CAAC,GAAGrC,cAAyBG,cAAoB,CAC/Cp8P,MAAOi/P,EACP1kK,WAAY01a,EACZ1ugB,YAAak9P,EACb1lQ,OAAQ,WAEV,CAAC,GAAGkjQ,QAAoB,CACtBm7C,aAAc1vN,EAAMq6J,KAAK9kP,GAAWm6L,IAAI,GAAGp/C,QAC3CoqJ,kBAAmB,UAI1B,ECnjBH,GAnCyB16M,IACvB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAACu0K,GAAe,CAACl3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGs7X,GAAiB/7Q,IAAS88Q,GAAmB98Q,IAASy8Q,GAAez8Q,IAASq8Q,GAAmBr8Q,IAE9K,CACE,aAAc,CACZ,CAAC,IAAIu0K,cAAyBA,oBAAgC,CAC5D1hK,WAAY7S,EAAMg9S,eAClB7wR,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMi9S,4BAGhE,WAAY,CACV,CAAC,IAAI1oI,cAAyBA,oBAAgC,CAC5D1hK,WAAY7S,EAAM+8K,iBAClB5wJ,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAM6jL,eAGhE,eAAgB,CACd,CAAC,IAAItP,cAAyBA,oBAAgC,CAC5D1hK,WAAY7S,EAAMg9S,eAClB7wR,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMi9S,4BAGhE,eAAgB,CACd,CAAC,IAAI1oI,cAAyBA,oBAAgC,CAC5D1hK,WAAY7S,EAAMg9S,eAClB7wR,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMi9S,8BAInE,ECvBGssI,GAAmBA,CAACvpb,EAAOwpb,EAAapuQ,EAAY8nO,KACxD,MAAMlqgB,EAASgnH,EAAMq6J,KAAK+gB,GAAYvuQ,IAAI,GAAGyjJ,QACvCz3I,EAAamnF,EAAM3lG,IAAI2lG,EAAMq6J,KAAKmvR,GAAav6U,IAAIj2N,GAAQg1N,IAAI,GAAG19C,QAAS,GAC3Ev3I,EAAgBinF,EAAM3lG,IAAI2lG,EAAMq6J,KAAKmvR,GAAav6U,IAAIj2N,GAAQi2N,IAAIp2L,GAAYy3I,QAAS,GAC7F,MAAO,CACL13I,QAAS,GAAGv+B,GAAKw+B,MAAex+B,GAAK6ogB,MAAsB7ogB,GAAK0+B,KACjE,EAEG0wgB,GAAuBzpb,IAC3B,MAAM,aACJu0K,EAAY,WACZmD,EAAU,aACVD,GACEz3K,EACJ,MAAO,CACL,CAAC,GAAGu0K,SAAoBA,+BAA2C,CACjE,CAAC,IAAIA,kBAA8B,CACjC,CAAC,GAAGA,gBAA4B,CAC9B1hK,WAAY6kK,IAGhB,CAAC,IAAInD,oBAAgC,CACnC,CAAC,GAAGA,gBAA4B,CAC9B1hK,WAAY4kK,KAInB,EAEGiyQ,GAAiB1pb,IACrB,MAAM,aACJu0K,EAAY,OACZG,EAAM,cACNoE,EAAa,cACb8Q,EAAa,UACbr0Q,EAAS,SACTwiQ,EAAQ,YACRoF,EAAW,aACXzE,EAAY,kBACZwJ,EAAiB,kBACjBtL,EAAiB,qBACjBkN,EAAoB,gBACpB5J,EAAe,WACfS,EAAU,gBACVX,EAAe,gBACfw9C,EAAe,UACfhyC,EAAS,SACTY,EAAQ,qBACRnC,EAAoB,cACpB9B,EAAa,aACb5K,EAAY,mBACZhB,EAAkB,YAClBk9B,EAAW,WACXluB,EAAU,eACV1M,EAAc,gBACdmE,EAAe,eACflD,EAAc,mBACd4M,EAAkB,eAClB7M,EAAc,WACdgK,EAAU,YACVykQ,EAAW,aACXqB,EAAY,gBACZC,EAAe,sBACfjiQ,EAAqB,WACrBvM,EAAU,aACVC,EAAY,aACZR,GACE76K,EACJ,MAAO,CAAC,CACN,CAACu0K,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAASupb,GAAiBvpb,EAAO84K,EAAesC,EAAYwO,IAAiB,CACxJlnS,SAAU,WACV7E,QAAS,cACTs5R,WAAY,SACZxiQ,WAAY,EACZ+jQ,eACA9wO,WAAY,UAAUs6O,iBAAiCA,iBAAiCA,IACxF,CAAC,GAAG3N,YAAwB,CAC1BomC,gBAAiB36M,EAAM86Q,mBAGzB,CAAC,GAAGvmG,WAAuB,CACzB7xR,SAAU,WACV7E,QAAS,cACTs5R,WAAY,SACZ79R,MAAO,OACP,UAAW+D,OAAOoD,OAAOpD,OAAOoD,OAAO,CACrCiC,SAAU,WACV7E,QAAS,eACTvE,MAAO,OACPg/B,MAAO,UACP7D,SAAUurF,EAAMvrF,SAChBE,WAAYqrF,EAAMrrF,WAClBizB,WAAY,OAAOs6O,KAClB66F,GAAoBj5F,IAAwB,CAC7C/mP,KAAM,OAGN5Z,SAAU,EACVnqC,OAAQ,OACR4/B,QAAS,EACTi6F,WAAY,cACZsZ,OAAQ,EACR/xG,WAAY,UACZ,UAAW,CACTm+F,UAAW,OACXu0E,QAAS,GAEX,cAAe,CACbj6E,WAAY,cACZv6F,MAAOs+P,EACPvlQ,OAAQ,iBAGZ,gBAAiB,CACf,UAAW,CACTiH,MAAOwrQ,KAKb,UAAWzmS,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG8oiB,GAAiBvpb,EAAOk6K,EAAiBmB,EAAcuO,IAAiB,CACjH,CAAC,GAAGrV,mBAA+B,CACjC9/P,SAAUkmQ,EACVhmQ,WAAYkmQ,KAGhB,UAAWx9R,OAAOoD,OAAO,CAAC,EAAG8oiB,GAAiBvpb,EAAOg6K,EAAiBoB,EAAYo8C,IAClF,CAAC,GAAGjjD,YAAwB,CAC1B12R,QAAS,OACTk/C,KAAM,OACN2+W,UAAW,SACXhhG,kBAAmB16M,EAAMq6J,KAAKmrB,GAAWx3E,IAAI,GAAG19C,QAChDh4I,MAAOs+P,EACPjiQ,WAAY,EACZ68M,cAAe,OACf5pL,WAAY,WAAWs6O,YAA4BA,IACnD,MAAO,CACLloQ,cAAe,MACf,qBAAsB,CACpB2gS,gBAAiBv0B,KAIvB,CAAC,GAAG7R,WAAuB,CACzB7xR,SAAU,WACV/J,IAAK,MACLgyS,eAAgB,EAChBryQ,MAAOs+P,EACPjiQ,WAAY,EACZiiD,UAAW,mBACXvlD,OAAQ,UACRruB,QAAS,EACT4kD,WAAY,WAAWs6O,YAA4BA,IACnD,MAAO,CACLloQ,cAAe,OAEjB,UAAW,CACT1B,MAAO2rQ,IAGX,UAAW,CACT,CAAC,GAAG1P,WAAuB,CACzBvxR,QAAS,GAKX,CAAC,GAAGuxR,6BAAyC,CAC3CvxR,QAAS,IAGb,CAAC,GAAGuxR,eAA2B,CAC7B7xR,SAAU,WACV7E,QAAS,eACTvE,MAAO,MACPN,OAAQ2hS,EACRriQ,MAAOs+P,EACPniQ,SAAUkmQ,EACV3gQ,cAAe,MACf3I,OAAQ,UACR,CAAC,GAAGkjQ,eAA2B,CAC7Bj8P,MAAO2rQ,GAET,CAAC,GAAG1P,uBAAmC,CACrC,CAAC,GAAGA,gBAA4B,CAC9BljQ,OAAQ,iBAKd,UAAW,CACT3uB,SAAU,WACV7E,QAAS,cAET,CAAC,GAAG02R,gBAA4B,CAC9B92R,OAAQuiH,EAAMq6J,KAAK9kP,GAAWm6L,KAAK,GAAGp/C,QACtCt3K,OAAQmpS,EACRtvK,WAAY0kK,EACZv0R,QAAS,EACT4kD,WAAY,OAAO2uO,aACnB/kD,cAAe,QAEjB,CAAC,IAAI+iD,aAAyB,CAC5B,CAAC,GAAGA,gBAA4B,CAC9BvxR,QAAS,IAGb,CAAC,GAAGuxR,qBAAiC,CACnC4C,WAAY,SACZv+P,QAAS,KAAKv+B,GAAKmrS,KACnB7wQ,WAAY,IAIhB,sBAAuB,CAErB,CAAC,GAAG4/P,WAAuB,CACzBoW,eAAgBf,GAElB,CAAC,IAAIrV,WAAuB,CAC1B,CAAC,GAAGA,WAAuB,CACzBoW,eAAgB6sC,KAKtB,aAAcn6U,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAASyob,GAAczob,IAAS,CACzGwxH,cAAe,OACf9uO,SAAU,WAGV/J,KAAM,KACND,KAAM,CACJi3T,cAAc,EACd15T,OAAQ,MAEV2M,OAAQ6wT,EACR,CAAC,IAAIl/B,qBAAiC,CACpC12R,QAAS,QAEX,QAAS,CACPi3H,UAAW,OAEb,CAAC,IAAIy/J,kDACEA,oCAAgD,CACrD,CAAC,GAAGA,iBAA6B,CAC/B57R,IAAK,EACLkF,QAAS,QACT+4E,UAAW,sBAGf,CAAC,IAAI29M,+CACEA,iCAA6C,CAClD,CAAC,GAAGA,iBAA6B,CAC/B92R,OAAQ,EACRI,QAAS,QACT+4E,UAAW,oCAGf,CAAC,IAAI89M,mBAAwBA,0BAA+BH,6CACvDG,mBAAwBA,0BAA+BH,8CACvDG,oBAAyBA,2BAAgCH,6CACzDG,oBAAyBA,2BAAgCH,iCAA6C,CACzGxoO,cAAe+qQ,IAEjB,CAAC,IAAIpiC,mBAAwBA,0BAA+BH,gDACvDG,mBAAwBA,0BAA+BH,iDACvDG,oBAAyBA,2BAAgCH,gDACzDG,oBAAyBA,2BAAgCH,oCAAgD,CAC5GxoO,cAAe6qQ,IAGjB,CAAC,IAAIliC,oBAAyBH,qBAAiC,CAC7D/iD,cAAe,QAEjB,CAAC,IAAIkjD,mBAAwBA,0BAA+BH,6CACvDG,mBAAwBA,0BAA+BH,iCAA6C,CACvGxoO,cAAegrQ,IAEjB,CAAC,IAAIriC,mBAAwBA,0BAA+BH,gDACvDG,mBAAwBA,0BAA+BH,oCAAgD,CAC1GxoO,cAAe8qQ,IAGjB,CAAC,GAAGtiC,aAAwBA,gBAA4B,CACtD17P,WAAY0sQ,GAGd,CAAC,GAAGhR,mBAA+B,CACjC12R,QAAS,OACT6E,SAAU,YAEZ,CAAC,GAAG6xR,iBAA6Bl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC3DiC,SAAU,WACVE,OAAQ,EACR/E,QAAS,OACT+rS,cAAe5pL,EAAMq6J,KAAKuvB,GAAel6E,IAAI,KAAKp/C,QAClDm7D,UAAW,cACX7jL,WAAY,OAAO2uO,cAClB+4B,GAAgBtvM,EAAOg9K,EAAiB2K,IAAyB,CAClE,WAAY,CACVkD,iBAAkB7qL,EAAMq6J,KAAKuvB,GAAel6E,IAAI,KAAKp/C,WAGzD,CAAC,GAAGikH,qBAAiC,CACnC5xR,SAAU,SACVq3B,cAAe,MACf64F,WAAYmqK,EACZtE,aAAcoB,EACdvhK,UAAWmuK,EACX9+O,WAAY,UAAU2uO,IACtB14R,QAAS,eACT2zO,cAAe,OAEf,CAAC,GAAG+iD,kBAA8B,CAChC12R,QAAS,OACTkiV,SAAU,SACV5oD,WAAY,WAGd,CAAC,GAAG5C,aAAyB,CAC3B12R,QAAS,OACT6rS,cAAe,SACfvmQ,SAAUwmgB,EACVv0gB,SAAUw0gB,EACV31d,GAAI,CACFj7E,OAAQ,EACR+jD,KAAM,OACNo5O,UAAW,OACXxzR,SAAU,OACV1J,OAAQ,EACR2/B,QAAS4sQ,EACT8zB,gBAAiB,GAAGj/T,GAAKk7B,MAAcwiQ,KAAY8L,IACnD5gO,GAAI5lE,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGq1R,IAAe,CACjD4C,aAAcmB,EACd+P,cAAepE,EACfkqC,aAAc1vN,EAAMq6J,KAAK2f,GAAiB/qE,IAAImsE,GAAYptE,IAAI,GAAG19C,QACjEj/I,OAAQ,UACRu2B,WAAY,OAAO2uO,IACnB,OAAQ,CACN5gK,UAAWywK,GAEb,UAAW,CACTvzK,WAAYy1a,OAMpB,CAAC,GAAG/zQ,YAAwB,CAC1B12R,QAAS,cACTkiV,SAAU,SAIV,eAAgB,CACd,CAAC,GAAGxrD,WAAuB,CACzB56P,YAAa,KAInB,CAAC,GAAG46P,WAAuB,CACzBv6P,cAAe,MACf64F,WAAY,cACZ6lK,aAAc,EACd/+P,YAAa,EACb,CAAC,GAAG46P,oBAAgC,CAClCx6P,UAAW,UAEb,YAAa,CACXF,YAAasjQ,OAKrB,mBAAoB,CAClBvkQ,QAAS,GAAGv+B,GAAK2lH,EAAMq6J,KAAKwe,GAAgBnpE,IAAI,GAAG1B,IAAI,GAAG19C,aAC1D,WAAY,CACVzyK,QAAS,SAGb,QAAS,CACPi3H,UAAW,MACX,CAAC,GAAGy/J,eAA2B,CAC7B39M,UAAW,kBAEb,CAAC,GAAG29M,YAAwB,CAC1B,UAAW,CACTz/J,UAAW,YAOrBuiM,GAAgBr3M,EAAO,YAAaq3M,GAAgBr3M,EAAO,cAAesvN,GAAetvN,EAAO,WAAYsvN,GAAetvN,EAAO,aAAa,EAGjJ,GAAe+0K,GAAc,cAAc/0K,IACzC,MAAM6pb,EAAc73Q,GAAW6oG,GAAe76Q,GCxZZA,KAClC,MAAM,aACJu0K,EAAY,gBACZ2F,EAAe,WACfqL,EAAU,QACV3sQ,GACEonF,EACJ,MAAO,CACLmob,cAAe,GAAG5zQ,SAClB6zQ,mBAAoB,GAAG7zQ,eACvBm0Q,yBAA0B1ob,EAAMq6J,KAAK6f,GAAiBxqE,IAAI,KAAKp/C,QAC/D04X,gCAAiChpb,EAAMq6J,KAAK6f,GAAiBxqE,IAAI,KAAKp/C,QACtEw4X,0BAA2B9ob,EAAMq6J,KAAKkrB,GAAY14Q,IAAImzF,EAAMq6J,KAAKkrB,GAAYv3E,IAAI,IAAI19C,QACrFw5X,oBAAqB,EAErBnB,sBAAuB,EACvBU,wBAAyB,EACzBT,6BAA8B,IAC9BQ,iCAAkCppb,EAAMq6J,KAAKzhP,GAAS/L,IAAImzF,EAAMq6J,KAAKkrB,GAAYv3E,IAAI,IAAI19C,QAC1F,EDqYqDy5X,CAAqB/pb,GAAQ,CACjFk8S,2BAA4Bl8S,EAAMq6J,KAAKr6J,EAAMylL,WAAWx2E,IAAI,GAAG3+C,QAC/D2qP,yBAA0Bj7S,EAAM09S,mBAChC5B,aAAc97S,EAAM84K,gBAEtB,MAAO,CAACkxQ,GAAoBH,GAAcH,GAAeG,GAAclsI,GAAiBksI,GAAcJ,GAAqBI,GAAcI,GAAuBJ,GAIhKluN,GAAoB37N,EAAO,CACzBs7N,WAAY,GAAGt7N,EAAMu0K,yBACpB,IClWgCv0K,GAAS3iH,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGs6X,GAAmB/6Q,IA5CtFA,KACrC,MAAM,yBACJ2jL,EAAwB,cACxB7K,EAAa,gBACbkB,EAAe,gBACfE,EAAe,WACfqL,EAAU,UACVhwQ,GACEyqF,EAIE49S,EAA6B,EAAbr4H,EAChBs4H,EAA2B,EAAZtoY,EACfmoY,EAAqB7ka,KAAKyhB,IAAIw+Q,EAAgB8kI,EAAe9kI,EAAgB+kI,GAC7ExB,EAAuBxja,KAAKyhB,IAAI0/Q,EAAkB4jI,EAAe5jI,EAAkB6jI,GACnFvB,EAAuBzja,KAAKyhB,IAAI4/Q,EAAkB0jI,EAAe1jI,EAAkB2jI,GA0BzF,MAvBoB,CAClB3C,2BAFiCria,KAAKC,MAAMysS,EAAa,GAGzD+iQ,YAAatob,EAAM6kL,mBACnB0jQ,sBAAuBvob,EAAM8kL,oBAC7BolQ,qBAAsB,IAAI5xR,GAAUt4J,EAAMu3K,cAAcpd,QAAQ,IAAI1lF,cACpE01W,qBAAsB,IAAI7xR,GAAUt4J,EAAMu3K,cAAcpd,QAAQ,IAAI1lF,cACpE+zW,eAAgB7kQ,EAChBulQ,gBAAmC,IAAlBhvQ,EACjB+uQ,iBAAkB,IAClBE,eAAgB,GAChB5xgB,UAA6B,IAAlByiQ,EACXquQ,WAAYruQ,EACZ6uQ,WAAY3uQ,EACZ6uQ,sBAAyC,KAAlB7uQ,EACvB8iI,eAAgBh9S,EAAMw8K,mBACtBygI,wBAAyB,cACzBS,qBACArB,uBACAC,uBACAL,2BAA4Bt4H,EAC5B43H,0BAA2Bv7S,EAAM42K,kBACjC4kI,gCAAiC,cAEjB,EAEkH4uI,CAAwBpqb,IAASwuM,GAAcxuM,IAAS,CAC5L2pb,aAAc,IACdC,gBAAiB,IACjBn2O,YAAazzM,EAAMg5K,gBAAkB,OCrEhC,SAASqxQ,GAAeh/gB,EAAQsxf,EAAQ2tB,GAC7C,YAA6BhmiB,IAAzBgmiB,EACKA,EAEM,SAAX3tB,GAAqBtxf,EAAOq7I,KAAKk8J,gBAC5Bv3S,EAAOq7I,KAAKk8J,gBAEN,YAAX+5M,GAAwBtxf,EAAOq7I,KAAKm8J,mBAC/Bx3S,EAAOq7I,KAAKm8J,mBAEN,UAAX85M,GAAsBtxf,EAAOq7I,KAAKo8J,iBAC7Bz3S,EAAOq7I,KAAKo8J,iBAEN,SAAX65M,GAAqBtxf,EAAOq7I,KAAKq8J,gBAC5B13S,EAAOq7I,KAAKq8J,gBAEN,SAAX45M,GAAqBtxf,EAAOg4S,iBAAiBjiP,YACxC/1D,EAAOg4S,iBAAiBjiP,YAE1B/1D,EAAOq7I,KAAKtlF,WACrB,CACO,SAASmpd,GAAoBl/gB,EAAQsxf,EAAQ2tB,GAClD,YAA6BhmiB,IAAzBgmiB,EACKA,EAEM,SAAX3tB,GAAqBtxf,EAAOq7I,KAAKk8J,gBAC5Bv3S,EAAOq7I,KAAKs8J,qBAEN,YAAX25M,GAAwBtxf,EAAOq7I,KAAKm8J,mBAC/Bx3S,EAAOq7I,KAAKu8J,wBAEN,UAAX05M,GAAsBtxf,EAAOq7I,KAAKo8J,iBAC7Bz3S,EAAOq7I,KAAKw8J,sBAEN,SAAXy5M,GAAqBtxf,EAAOq7I,KAAKq8J,gBAC5B13S,EAAOq7I,KAAKy8J,qBAEN,SAAXw5M,GAAqBtxf,EAAOg4S,iBAAiBjiP,YACxC/1D,EAAOg4S,iBAAiBV,iBAE1Bt3S,EAAOq7I,KAAKi8J,gBACrB,CACO,SAASw7F,GAASjvX,EAAOyhM,GAC9B,MAAM,WACJ0uJ,GAAa,GACXnwV,GACE,UACJkxV,EAAS,WACTyW,GACE2zJ,GAAentiB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyuC,GAAQ,CACzDyhM,YACAhgM,cAAe,gBAWjB,MAAO,CATkBu6K,EAAAA,SAAc,KACrC,IAAmB,IAAfm0K,EACF,OAAO,EAET,MAAMorK,GAAkC,IAAfprK,EAAsB,CAAC,EAAIA,EACpD,OAAOhiY,OAAOoD,OAAO,CACnB2/X,UAAWA,GACVqqK,EAAiB,GACnB,CAACprK,EAAYe,IACUyW,EAC5B,CCjEO,MAAO7mP,GAAM06Y,IAAc,CAAC,OAAQ,eAC7Bh7Y,GAAOi7Y,IAAe,CAAC,QAAS,gBAChCl7Y,GAAMm7Y,IAAc,CAAC,OAAQ,eAC7BC,GAASC,IAAiB,CAAC,UAAW,kBACtCj7X,GAAMk7X,IAAc,CAAC,OAAQ,cCI3C,GAJqB77f,GAAuBg8K,EAAAA,cAAoB1pB,GAAQnkM,OAAOoD,OAAO,CACpFiZ,KAAM,QACNrb,KAAM,WACL6wC,ICLY,SAAS87f,GAAc54R,GACpC,OAAO3tM,EAAAA,EAAAA,UAAQ,IAAMpnE,OAAOoD,OAAO,CACjC0qD,OAAQ8/e,IACP74R,IAAa,CAACA,GACnB,CCJA,IAAI4wB,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAyBA,MA2HA,GA3H4Bw2f,IACO3ya,EAAAA,EAAAA,aAAW,CAAC1/D,EAAON,KAClD,IAAIjb,EACJ,MACIg9M,UAAW2vC,EACX5mB,kBAAmBwxS,EAAuB,WAC1C94R,EAAU,UACVxzQ,EAAS,MACTjC,EAAK,UACL8mQ,EACA/pP,KAAMyiU,EACN9gS,SAAU+gS,EAAc,SACxBooD,GAAW,EAAI,YACfpjT,EAAW,eACXo+K,EAAc,kBACd86I,EACAxmW,OAAQgwV,EAAY,cACpBx0H,EACA/0H,QAASkqP,EAAa,OACtBk4I,GACEzte,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,oBAAqB,aAAc,YAAa,QAAS,YAAa,OAAQ,WAAY,WAAY,cAAe,iBAAkB,oBAAqB,SAAU,gBAAiB,UAAW,WACtOg8V,EAAWhgL,EAAAA,OAAa,OACxB,aACJi1D,EAAY,UACZrrJ,EAAS,kBACT4kI,EAAiB,YACjBsyE,IACE5nQ,EAAAA,EAAAA,YAAW87M,IACTvvC,EAAYwvC,EAAa,SAAUG,IACnC,YACJqsC,EAAW,sBACXJ,GACEF,GAAsB17E,EAAW77G,GAC/B4+J,EAAgBvT,KACf5lI,EAASyqP,GAAoBC,GAAW,cAAeR,EAAeD,GACvEjxG,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GAQ5D,MAAOmwG,GAAoBy6B,GAASjvX,EAAOyhM,GAErCkiC,EAAmBm4R,GAAc54R,GAEjC46C,EAAaC,IAAQ9uL,IACzB,IAAIxqG,EACJ,OAAmG,QAA3FA,EAAuB,OAAlBwoT,QAA4C,IAAlBA,EAA2BA,EAAgBxvB,SAAgC,IAAPh5R,EAAgBA,EAAKwqG,CAAG,IAG/H9iF,EAAW6vK,EAAAA,WAAiBk9G,IAC5B9hF,EAAoC,OAAnB81F,QAA8C,IAAnBA,EAA4BA,EAAiB/gS,EAEzFgjV,GAAkBj6T,EAAAA,EAAAA,YAAW0mP,KAC7B,YACJM,EACAt3Q,OAAQ+vV,EAAa,aACrBx4E,GACEgzE,EACEoC,EAA0Bv1K,EAAAA,cAAoBA,EAAAA,SAAgB,KAAMyxT,IAAW9sW,GAAoBq7C,EAAAA,cAAoB4wT,GAAqB,MAAqB5wT,EAAAA,cAAoB0wT,GAAkB,MAAOxwN,GAAeC,IACnO/mP,EAAAA,EAAAA,qBAAoB11B,GAAK,IAAMs8V,EAAS5tW,UACxC,MAAOmhU,GAAiBtS,GAAU,WAAYq1E,IACxCn2Y,EAAShuB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg+V,GAAgBvvT,EAAM7jB,SAE9DzoB,GAAUsrT,GAAU,aAA0C,QAA3Bv6R,EAAKub,EAAMuwN,kBAA+B,IAAP9rO,OAAgB,EAASA,EAAG/wB,QACzG,OAAOypS,EAAwBnhF,EAAAA,cAAoBoqG,GAAiB,CAClEh0S,OAAO,GACO4pM,EAAAA,cAAoBigV,GAAe9tiB,OAAOoD,OAAO,CAC/Dic,UAAwBwuM,EAAAA,cAAoB,OAAQ,CAClD,aAAc,KACdtsN,UAAW,GAAG+xO,eACAzlB,EAAAA,cAAoB8wT,GAAmB,OACvD3ge,SAAUirM,EACV13M,IAAKs8V,EACLznI,UAAWA,EACXriL,YAAampd,GAAoBl/gB,EAAQsxf,EAAQv7b,GACjDomT,WAAY/G,EACZiR,SAAuBxmL,EAAAA,cAAoB,OAAQ,CACjDtsN,UAAW,GAAG+xO,gBAEhBghK,SAAuBzmL,EAAAA,cAAoB,OAAQ,CACjDtsN,UAAW,GAAG+xO,gBAEhBw/S,cAA4BjlU,EAAAA,cAAoB,OAAQ,CACtDtsN,UAAW,GAAG+xO,sBAEhBy/S,cAA4BllU,EAAAA,cAAoB,OAAQ,CACtDtsN,UAAW,GAAG+xO,sBAEhBmf,eAAgB,GAAG4jC,aACnBipP,OAAQA,GACPxrS,EAAW,CACZvyO,UAAWisN,KAAW,CACpB,CAAC,GAAG8lB,KAAaq8E,KAAeA,EAChC,CAAC,GAAGr8E,KAAap2F,KAAYyqP,GAC5BrB,GAAoBhzJ,EAAWizJ,GAAgBC,EAAeC,GAAe14E,GAAc5mC,EAAQ+nC,EAAuB3tT,EAA2B,OAAhBotU,QAAwC,IAAhBA,OAAyB,EAASA,EAAYptU,UAAW0tS,EAAW/Y,EAASjkB,GAC7O3yQ,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAmB,OAAhBurU,QAAwC,IAAhBA,OAAyB,EAASA,EAAYrvU,OAAQA,GACrH0uB,OAAQA,EAAOq7I,KACfiqE,UAAWA,EACX+oB,kBAAmBwxS,GAA2BxxS,EAC9C6nR,eAAgBA,EAChBnvQ,WAAYS,EACZ/9I,UAAWA,EACX+1F,WAAY,CACV0uC,MAAO1uC,KAAW25D,EAAQhlB,GAAkB86I,EAAmBhuG,EAAW/Y,EAASjkB,IAErFn8O,OAAQ,CACNomO,MAAOl8P,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyuC,EAAMuwN,YAAa,CACxD78P,YAGJy8X,WAAYqE,MACT,ICpJT,IAAI1gG,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAwBA,MA6JA,GA7JuBw2f,IACrB,MAAM6pB,EAAYA,CAACzuB,EAAQzje,KACzB,MAAMmyf,EAAenyf,IAAgB6xf,GAAa,aAAe,aA0IjE,OAzI4Bn8b,EAAAA,EAAAA,aAAW,CAAC1/D,EAAON,KAC7C,IAAIjb,EACJ,MACIg9M,UAAW2vC,EACX5mB,kBAAmB4xS,EAA0B,WAC7Cl5R,EAAU,MACVz1Q,EAAK,UACLiC,EAAS,cACT0wQ,EACA51P,KAAMyiU,EAAa,SACnBqoD,EAAQ,UACR/gI,EAAS,YACTriL,EAAW,eACXo+K,EAAc,kBACd86I,EACAj/V,SAAU+gS,EACVtoS,OAAQgwV,EACRvpP,QAASkqP,EAAa,iBACtB4kJ,GACEn6e,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,oBAAqB,aAAc,QAAS,YAAa,gBAAiB,OAAQ,WAAY,YAAa,cAAe,iBAAkB,oBAAqB,WAAY,SAAU,UAAW,sBACtO,aACJixO,EAAY,UACZrrJ,EAAS,kBACT4kI,EAEA,CAAC2xS,GAAeE,IACdnne,EAAAA,EAAAA,YAAW87M,IACTvvC,EAAYwvC,EAAa,SAAUG,IACnC,YACJqsC,EAAW,sBACXJ,GACEF,GAAsB17E,EAAW77G,GAC/Bo2Q,EAAWhgL,EAAAA,OAAa,OACvB3wE,EAASyqP,GAAoBC,GAAW,aAAcR,EAAeD,GACtEjxG,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,IAC5DjvN,EAAAA,EAAAA,qBAAoB11B,GAAK,IAAMs8V,EAAS5tW,UACxC,MAGMkugB,EAAe7uB,GAAUzte,EAAMyte,OAC/BjpP,EAAgBvT,KAEhB,SACJpM,EAAQ,SACRzoM,GACE6lK,EACEs6T,EAAoB13R,GAAuB,SAAX4oQ,IAAsBrxc,EAgB5D,MAAOo4T,EAAkBmT,GAAcsnB,GAASjvX,EAAOyhM,GAEjDkiC,EAAmBm4R,GAAc54R,GAEjC46C,EAAaC,IAAQ9uL,IACzB,IAAIxqG,EACJ,OAAmG,QAA3FA,EAAuB,OAAlBwoT,QAA4C,IAAlBA,EAA2BA,EAAgBxvB,SAAgC,IAAPh5R,EAAgBA,EAAKwqG,CAAG,IAG/H9iF,EAAW6vK,EAAAA,WAAiBk9G,IAC5B9hF,EAAoC,OAAnB81F,QAA8C,IAAnBA,EAA4BA,EAAiB/gS,EAEzFgjV,GAAkBj6T,EAAAA,EAAAA,YAAW0mP,KAC7B,YACJM,EACAt3Q,OAAQ+vV,EAAa,aACrBx4E,GACEgzE,EACEoC,EAA0Bv1K,EAAAA,cAAoBA,EAAAA,SAAgB,KAAuB,SAAjBsgV,EAAuCtgV,EAAAA,cAAoB4wT,GAAqB,MAAqB5wT,EAAAA,cAAoB0wT,GAAkB,MAAOxwN,GAAeC,IACpOozC,IAAiBtS,GAAU,aAAcq1E,IAC1Cn2Y,GAAShuB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg+V,IAAgBvvT,EAAM7jB,SAE9DzoB,IAAUsrT,GAAU,aAA0C,QAA3Bv6R,EAAKub,EAAMuwN,kBAA+B,IAAP9rO,OAAgB,EAASA,EAAG/wB,QACzG,OAAOypS,EAAwBnhF,EAAAA,cAAoBoqG,GAAiB,CAClEh0S,OAAO,GACO4pM,EAAAA,cAAoBwgV,GAAUruiB,OAAOoD,OAAO,CAC1DmuC,IAAKs8V,EACL9pT,YAAaipd,GAAeh/gB,GAAQmghB,EAAcpqd,GAClDomT,WAAY/G,EACZh9H,UAAWA,EACXiuI,SAAuBxmL,EAAAA,cAAoB,OAAQ,CACjDtsN,UAAW,GAAG+xO,gBAEhBghK,SAAuBzmL,EAAAA,cAAoB,OAAQ,CACjDtsN,UAAW,GAAG+xO,gBAEhBw/S,cAA4BjlU,EAAAA,cAAoB,OAAQ,CACtDtsN,UAAW,GAAG+xO,sBAEhBy/S,cAA4BllU,EAAAA,cAAoB,OAAQ,CACtDtsN,UAAW,GAAG+xO,sBAEhBmf,eAAgB,GAAG4jC,aACnBipP,OAAQA,EACR0M,iBA3D+BsiB,CAACj/gB,EAAMk/gB,EAAS/ha,KAC1B,OAArBw/Y,QAAkD,IAArBA,GAAuCA,EAAiB38f,EAAMk/gB,EAAS/ha,GAChG4ha,GACF13R,EAASrnP,EACX,GAfsB,CACtB8+f,WAAW,GAsEOr6S,EAAW,CAC7B9lN,OAAQA,GAAOq7I,KACf9nK,UAAWisN,KAAW,CACpB,CAAC,GAAG8lB,KAAaq8E,KAAeA,EAChC,CAAC,GAAGr8E,KAAap2F,KAAYyqP,GAC5BrB,GAAoBhzJ,EAAWizJ,GAAgBC,EAAeC,GAAe14E,GAAc5mC,EAAQ+nC,EAAyC,OAAlBg/O,QAA4C,IAAlBA,OAA2B,EAASA,EAAc3siB,UAAWA,EAAW0tS,EAAW/Y,EAASjkB,GACnP3yQ,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAqB,OAAlB8qiB,QAA4C,IAAlBA,OAA2B,EAASA,EAAc5uiB,OAAQA,GAC3Hg0O,UAAWA,EACX+oB,kBAAmB4xS,GAA8B5xS,EACjD6nR,eAAgBA,EAChBnvQ,WAAYS,EACZ/9I,UAAWA,EACXz5E,SAAUirM,EACVz7B,WAAY,CACV0uC,MAAO1uC,KAAW25D,EAAQ8nB,EAAW/Y,EAASjkB,EAAe9P,GAAkB86I,IAEjFnnX,OAAQ,CACNomO,MAAOl8P,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyuC,EAAMuwN,YAAa,CACxD78P,aAGJy8X,WAAYqE,EACZmT,WAAYA,MACT,GAKM,EAET7oF,EAAao9O,IACbS,EAAaT,EAAUp7Y,GAAM06Y,IAC7BoB,EAAcV,EAAU17Y,GAAOi7Y,IAC/BoB,EAAaX,EAAU37Y,GAAMm7Y,IAC7BoB,EAAgBZ,EAAUP,GAASC,IAEzC,MAAO,CACL98O,aACA69O,aACAC,cACAC,aACAvoO,WANiB4nO,EAAUv7X,GAAMk7X,IAOjCiB,gBACD,EChKH,GAxBuBzqB,IAErB,MAAM,WACJvzN,EAAU,WACV69O,EAAU,YACVC,EAAW,WACXC,EAAU,WACVvoO,EAAU,cACVwoO,GACEC,GAAqB1qB,GAEnBuiB,EAAcoI,GAAoB3qB,GAClC4qB,EAAmBn+O,EAUzB,OATAm+O,EAAiBN,WAAaA,EAC9BM,EAAiBL,YAAcA,EAC/BK,EAAiBJ,WAAaA,EAC9BI,EAAiBrI,YAAcA,EAC/BqI,EAAiB3oO,WAAaA,EAC9B2oO,EAAiBH,cAAgBA,EAI1BG,CAAgB,ECrBnBn+O,GAAao+O,GAAeC,IAG5Br2O,GAAYuY,GAAavgB,GAAY,kBAAc1pT,EAAW,UACpE0pT,GAAW+H,uCAAyCC,GACpD,MAAMs2O,GAAiB/9N,GAAavgB,GAAW81O,YAAa,kBAAcx/hB,EAAW,UACrF0pT,GAAWu+O,4CAA8CD,GACzDt+O,GAAWo+O,eAAiBA,GAC5B,YCXA,SADuB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,2VAA+V,KAAQ,WAAY,MAAS,YCM1hB,IAAII,GAAmB,SAA0Bt9f,EAAON,GACtD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMmjW,KAEV,EAOA,SAJ2BvhV,EAAAA,WAAiBshV,8BCyDrC,SAASE,KAGd,MAAO,CACLpziB,MAHUqF,SAASk0D,gBAAgB0+C,YAInCv4G,OAHW4D,OAAOqjJ,aAAethJ,SAASk0D,gBAAgB6+C,aAK9D,CC9EO,IAAIi7b,GAAmCzhV,EAAAA,cAAoB,MC8LlE,SAtLiB,SAAoBh8K,GACnC,IAAIgiN,EAAUhiN,EAAMgiN,QAClBmP,EAAqBnxN,EAAMmxN,mBAC3BtY,EAAe74M,EAAM64M,aACrBpX,EAAYzhM,EAAMyhM,UAClB2+B,EAAgBpgO,EAAMogO,cACtB8kQ,EAAQlle,EAAMkle,MACdw4B,EAAc19f,EAAM09f,YACpBC,EAAa39f,EAAM29f,WACnBr1F,EAAetoa,EAAMsoa,aACrBl6a,EAAU4R,EAAM5R,QAChBs5C,EAAY1nC,EAAM0nC,UAClBvrC,EAAQ6D,EAAM7D,MACd8tG,EAAQjqG,EAAMiqG,MACd2zZ,EAAW59f,EAAM49f,SACjBC,EAAW79f,EAAM69f,SACjB79M,EAAYhgT,EAAMggT,UAClBzqG,EAAWv1M,EAAMu1M,SACjB0qG,EAAUjgT,EAAMigT,QAChB69M,EAAW99f,EAAM89f,SACjBC,EAAY/9f,EAAM+9f,UAClBC,EAAgBh+f,EAAMg+f,cACtBC,EAAej+f,EAAMi+f,aACrBC,EAAUl+f,EAAMk+f,QAChBC,EAAUn+f,EAAMm+f,QAChB5vP,EAAUvuQ,EAAMuuQ,QAChB6vP,EAAgBp+f,EAAMo+f,cACtB1qiB,EAASssC,EAAMtsC,OACff,EAAQqtC,EAAMrtC,MACZ+jf,GAAexhb,EAAAA,EAAAA,YAAWuoe,IAC1BY,EAAan5B,EAAMm5B,WACrBC,EAAcp5B,EAAMo5B,YACpB17O,EAASsiN,EAAMtiN,OACfE,EAAUoiN,EAAMpiN,QAChB97S,EAAQk+f,EAAMl+f,MACdxd,EAAO07gB,EAAM17gB,KACbmK,EAAQuxgB,EAAMvxgB,MACd4qiB,EAAQr5B,EAAMq5B,MACdC,EAAQt5B,EAAMs5B,MACZC,EAAgB,GAAG9xiB,OAAO80O,EAAW,yBACzCzlB,EAAAA,WAAgB,WACd,IAAIw6B,EAAY,SAAmB7gO,GAC7BA,EAAE2jC,UAAY4yL,GAAQU,KACxBqzG,GAEJ,EAIA,OAHIj+F,GACFt0P,OAAOgD,iBAAiB,UAAW8lP,GAE9B,WACL9oP,OAAOukD,oBAAoB,UAAWukM,EACxC,CACF,GAAG,CAACwL,IACJ,IAAI08S,EAAe,SAAsB/ohB,EAAGstC,GAC1CttC,EAAEukC,iBACFvkC,EAAEojC,kBACFw8L,EAAStyL,EACX,EACI07e,EAAkB3iV,EAAAA,aAAkB,SAAU5oE,GAChD,IAAIjkJ,EAAOikJ,EAAKjkJ,KACdg9C,EAAWinG,EAAKjnG,SAChBmwB,EAAU82E,EAAK92E,QACf89H,EAAOhnD,EAAKgnD,KACd,OAAoB4hB,EAAAA,cAAoB,MAAO,CAC7C/uN,IAAKkC,EACLO,UAAWssV,KAAWyiN,EAAe,GAAG9xiB,OAAO80O,EAAW,0BAA0B90O,OAAOwC,IAAO6wG,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,oCAAqCt1L,IAChLmwB,QAASA,GACR89H,EACL,GAAG,CAACqkW,EAAeh9T,IACfm9T,EAAiBjB,EAAagB,EAAgB,CAChDvkW,KAAM5wM,EACN8yE,QAAS,SAAiB3mD,GACxB,OAAO+ohB,EAAa/ohB,GAAI,EAC1B,EACAxmB,KAAM,OACNg9C,SAAsB,IAAZ/d,SACPh5B,EACDypiB,EAAiBlB,EAAagB,EAAgB,CAChDvkW,KAAMzmM,EACN2oE,QAAS,SAAiB3mD,GACxB,OAAO+ohB,EAAa/ohB,EAAG,EACzB,EACAxmB,KAAM,OACNg9C,SAAU/d,IAAY+N,EAAQ,SAC3B/mC,EACD0piB,EAAYH,EAAgB,CAC9BvkW,KAAMokW,EACNlie,QAAS6he,EACThviB,KAAM,UAEJ4viB,EAAYJ,EAAgB,CAC9BvkW,KAAMmkW,EACNjie,QAAS4he,EACT/uiB,KAAM,UAEJ6viB,EAAiBL,EAAgB,CACnCvkW,KAAMikW,EACN/he,QAAS2he,EACT9uiB,KAAM,eAEJ8viB,EAAkBN,EAAgB,CACpCvkW,KAAMkkW,EACNhie,QAAS0he,EACT7uiB,KAAM,gBAEJ+viB,EAAcP,EAAgB,CAChCvkW,KAAM0oH,EACNxmP,QAASyhe,EACT5uiB,KAAM,UACNg9C,SAAU89F,GAAS2zZ,IAEjBuB,EAAaR,EAAgB,CAC/BvkW,KAAMwoH,EACNtmP,QAASwhe,EACT3uiB,KAAM,SACNg9C,SAAU89F,IAAU4zZ,IAElBuB,EAA2BpjV,EAAAA,cAAoB,MAAO,CACxDtsN,UAAW,GAAG/C,OAAO80O,EAAW,gBAC/Bq9T,EAAWC,EAAWC,EAAgBC,EAAiBC,EAAaC,GACvE,OAAoBnjV,EAAAA,cAAoB6pC,GAAW,CACjD7D,QAASA,EACTkE,WAAYiL,IACX,SAAUtsF,GACX,IAAIn1K,EAAYm1K,EAAMn1K,UACpBjC,EAAQo3K,EAAMp3K,MAChB,OAAoBuuN,EAAAA,cAAoB6/B,GAAQ,CAC9Cn0O,MAAM,EACNmxO,aAA+B,OAAjBA,QAA0C,IAAjBA,EAA0BA,EAAeppP,SAASuE,MAC3EgoN,EAAAA,cAAoB,MAAO,CACzCtsN,UAAWssV,KAAW,GAAGrvV,OAAO80O,EAAW,uBAAwB/xO,EAAW0wQ,GAC9E3yQ,MAAOkzO,GAAcA,GAAc,CAAC,EAAGlzO,GAAQ,CAAC,EAAG,CACjDiG,OAAQA,KAEK,OAAdssV,EAAqB,KAAoBhkI,EAAAA,cAAoB,SAAU,CACxEtsN,UAAW,GAAG/C,OAAO80O,EAAW,UAChCnlK,QAAS2jR,GACRD,GAAah5U,GAAQ22hB,GAA2B3hV,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoB,MAAO,CACnItsN,UAAWssV,KAAW,GAAGrvV,OAAO80O,EAAW,iBAAiBzhI,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,yBAAsC,IAAZrzM,IAC/HkuC,QAAS,SAAiB3mD,GACxB,OAAO+ohB,EAAa/ohB,GAAI,EAC1B,GACCnsB,GAAoBwyN,EAAAA,cAAoB,MAAO,CAChDtsN,UAAWssV,KAAW,GAAGrvV,OAAO80O,EAAW,kBAAkBzhI,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,0BAA2BrzM,IAAY+N,EAAQ,IACrJmgC,QAAS,SAAiB3mD,GACxB,OAAO+ohB,EAAa/ohB,EAAG,EACzB,GACChiB,IAAsBqoN,EAAAA,cAAoB,MAAO,CAClDtsN,UAAW,GAAG/C,OAAO80O,EAAW,YAC/B6mO,GAA6BtsP,EAAAA,cAAoB,MAAO,CACzDtsN,UAAW,GAAG/C,OAAO80O,EAAW,cAC/Bi8T,EAAcA,EAAYtvgB,EAAU,EAAG+N,GAAS,GAAGxvC,OAAOyhC,EAAU,EAAG,OAAOzhC,OAAOwvC,IAASiigB,EAAgBA,EAAcgB,EAAaz+T,GAAcA,GAAc,CACtKukS,MAAO,CACL1iI,SAAUo8J,EACVn8J,SAAUo8J,EACVQ,UAAWP,EACXQ,UAAWP,EACXQ,eAAgBP,EAChBQ,gBAAiBP,EACjBQ,YAAaP,EACbQ,WAAYP,GAEdv8c,QAAS,CACP2yJ,SAAUA,EACV4oT,QAASA,EACTD,QAASA,EACTD,aAAcA,EACdD,cAAeA,EACfD,UAAWA,EACXD,SAAUA,EACVvvP,QAASA,EACT0xC,QAASA,GAEXv4Q,UAAWA,GACVgva,EAAe,CAChBtod,QAASA,EACTiF,MAAO8I,GACL,CAAC,GAAI,CAAC,EAAG,CACXxpC,MAAOA,KACHysiB,IACR,GACF,ECxLA,IAAIO,GAAmB,CACrB7shB,EAAG,EACHoK,EAAG,EACH4iK,OAAQ,EACR71C,MAAO,EACPs0Z,OAAO,EACPC,OAAO,GCTT,SAASoB,GAAS3yiB,EAAK+d,EAAO5gB,EAAOi4G,GACnC,IAAIw9b,EAAgB70hB,EAAQ5gB,EACxB01iB,GAAe11iB,EAAQi4G,GAAe,EAC1C,GAAIj4G,EAAQi4G,EAAa,CACvB,GAAIr3F,EAAQ,EACV,OAAOg1F,EAAAA,GAAAA,GAAgB,CAAC,EAAG/yG,EAAK6yiB,GAElC,GAAI90hB,EAAQ,GAAK60hB,EAAgBx9b,EAC/B,OAAOrC,EAAAA,GAAAA,GAAgB,CAAC,EAAG/yG,GAAM6yiB,EAErC,MAAO,GAAI90hB,EAAQ,GAAK60hB,EAAgBx9b,EACtC,OAAOrC,EAAAA,GAAAA,GAAgB,CAAC,EAAG/yG,EAAK+d,EAAQ,EAAI80hB,GAAeA,GAE7D,MAAO,CAAC,CACV,CAce,SAASC,GAA4B31iB,EAAON,EAAQN,EAAMC,GACvE,IAAIu2iB,EAAiBxC,KACnBn7b,EAAc29b,EAAe51iB,MAC7Bo4G,EAAew9b,EAAel2iB,OAC5Bm2iB,EAAS,KASb,OARI71iB,GAASi4G,GAAev4G,GAAU04G,EACpCy9b,EAAS,CACPnthB,EAAG,EACHoK,EAAG,IAEI9yB,EAAQi4G,GAAev4G,EAAS04G,KACzCy9b,EAASt/T,GAAcA,GAAc,CAAC,EAAGi/T,GAAS,IAAKp2iB,EAAMY,EAAOi4G,IAAeu9b,GAAS,IAAKn2iB,EAAKK,EAAQ04G,KAEzGy9b,CACT,CC1Ce,SAASn+S,GAAU1uG,GAChC,IAAIjhJ,EAAMihJ,EAAKjhJ,IACb+tiB,EAAsB9sZ,EAAK8sZ,oBAC3Btle,EAAWw4E,EAAKx4E,SAEhBgsK,EAAa7C,IADCruK,EAAAA,EAAAA,UAASwqe,EAAsB,UAAY,UAClB,GACvCt7f,EAASgiM,EAAW,GACpBkd,EAAYld,EAAW,GACrBu5T,GAAW1qe,EAAAA,EAAAA,SAAO,GAClB45B,EAAqB,UAAXzqD,GAGduwB,EAAAA,EAAAA,YAAU,WACR,IAAIire,GAAe,EAQnB,OCxBG,SAAsBjuiB,GAC3B,OAAO,IAAIhB,SAAQ,SAAUM,GAC3B,IAAIa,EAAM7C,SAASf,cAAc,OACjC4D,EAAIoyC,QAAU,WACZ,OAAOjzC,GAAQ,EACjB,EACAa,EAAIkyC,OAAS,WACX,OAAO/yC,GAAQ,EACjB,EACAa,EAAIH,IAAMA,CACZ,GACF,CDMIkuiB,CAAaluiB,GAAK/J,MAAK,SAAUs3B,IAG1BA,GAAW0ghB,GACdt8S,EAAU,QAEd,IACO,WACLs8S,GAAe,CACjB,CACF,GAAG,CAACjuiB,KACJgjE,EAAAA,EAAAA,YAAU,WACJ+qe,IAAwBC,EAAS/xgB,QACnC01N,EAAU,WACDz0J,GACTy0J,EAAU,SAEd,GAAG,CAAC3xP,IACJ,IAAIqzb,EAAS,WACX1hM,EAAU,SACZ,EAcA,MAAO,CAbS,SAAmBxxP,GACjC6tiB,EAAS/xgB,SAAU,EACJ,YAAXwW,GAAgC,OAARtyC,QAAwB,IAARA,GAAkBA,EAAI8qI,WAAa9qI,EAAI2/H,cAAgB3/H,EAAI6/H,iBACrGgua,EAAS/xgB,SAAU,EACnBo3Z,IAEJ,EACmBn2V,GAAWz0B,EAAW,CACvCzoE,IAAKyoE,GACH,CACF4qX,OAAQA,EACRrzb,IAAKA,GAE0ByyC,EACnC,CE/CA,SAAS07f,GAAYj+hB,EAAGC,GACtB,IAAIwQ,EAAIzQ,EAAEyQ,EAAIxQ,EAAEwQ,EACZoK,EAAI7a,EAAE6a,EAAI5a,EAAE4a,EAChB,OAAOvzB,KAAK42iB,MAAMzthB,EAAGoK,EACvB,CAmBe,SAASsjhB,GAAcC,EAAQC,EAAS1+S,EAAS47S,EAAUl2d,EAAWi5d,EAAiBC,GACpG,IAAI9gX,EAASp4G,EAAUo4G,OACrB71C,EAAQviE,EAAUuiE,MAClBn3H,EAAI40D,EAAU50D,EACdoK,EAAIwqD,EAAUxqD,EAEd0pN,EAAa7C,IADCruK,EAAAA,EAAAA,WAAS,GACgB,GACvCmre,EAAaj6T,EAAW,GACxBk6T,EAAgBl6T,EAAW,GACzBm6T,GAAiBtre,EAAAA,EAAAA,QAAO,CAC1Bure,OAAQ,CACNluhB,EAAG,EACHoK,EAAG,GAEL+jhB,OAAQ,CACNnuhB,EAAG,EACHoK,EAAG,GAELuhd,UAAW,SAETyiE,EAAuB,SAA8B1iiB,GACvDuiiB,EAAe3ygB,QAAUuyM,GAAcA,GAAc,CAAC,EAAGogU,EAAe3ygB,SAAU5vB,EACpF,EAgHA,OAdA22D,EAAAA,EAAAA,YAAU,WACR,IAAIgse,EAQJ,OAPIn/S,GAAW0+S,IACbS,EAAsBzwiB,GAAiBhD,OAAQ,aAAa,SAAUioB,GACpE,OAAOA,EAAEukC,gBACX,GAAG,CACDuM,SAAS,KAGN,WACL,IAAI26e,EAC6C,QAAhDA,EAAuBD,SAA0D,IAAzBC,GAAmCA,EAAqB9rc,QACnH,CACF,GAAG,CAAC0sJ,EAAS0+S,IACN,CACLG,WAAYA,EACZriJ,aAjHiB,SAAsBj9V,GACvC,GAAKm/e,EAAL,CACAn/e,EAAMxI,kBACN+nf,GAAc,GACd,IAAIO,EAAiB9/e,EAAMlC,QACzBA,OAA6B,IAAnBgif,EAA4B,GAAKA,EACzChif,EAAQ/1D,OAAS,EAEnB43iB,EAAqB,CACnBF,OAAQ,CACNluhB,EAAGusC,EAAQ,GAAG9D,QACdr+B,EAAGmiC,EAAQ,GAAG7D,SAEhBylf,OAAQ,CACNnuhB,EAAGusC,EAAQ,GAAG9D,QACdr+B,EAAGmiC,EAAQ,GAAG7D,SAEhBijb,UAAW,cAIbyiE,EAAqB,CACnBF,OAAQ,CACNluhB,EAAGusC,EAAQ,GAAG9D,QAAUzoC,EACxBoK,EAAGmiC,EAAQ,GAAG7D,QAAUt+B,GAE1Buhd,UAAW,QAzBK,CA4BtB,EAqFEvgF,YApFgB,SAAqB38V,GACrC,IAAI+/e,EAAkB//e,EAAMlC,QAC1BA,OAA8B,IAApBiif,EAA6B,GAAKA,EAC1CC,EAAwBR,EAAe3ygB,QACzC4ygB,EAASO,EAAsBP,OAC/BC,EAASM,EAAsBN,OAC/BxiE,EAAY8iE,EAAsB9iE,UACpC,GAAIp/a,EAAQ/1D,OAAS,GAAmB,cAAdm1e,EAA2B,CAEnD,IAAI+iE,EAAY,CACd1uhB,EAAGusC,EAAQ,GAAG9D,QACdr+B,EAAGmiC,EAAQ,GAAG7D,SAEZimf,EAAY,CACd3uhB,EAAGusC,EAAQ,GAAG9D,QACdr+B,EAAGmiC,EAAQ,GAAG7D,SAEZkmf,EAxFV,SAAmBC,EAAWC,EAAWJ,EAAWC,GAElD,IAAII,EAAYvB,GAAYqB,EAAWH,GACnCM,EAAYxB,GAAYsB,EAAWH,GAGvC,GAAkB,IAAdI,GAAiC,IAAdC,EACrB,MAAO,CAACH,EAAU7uhB,EAAG6uhB,EAAUzkhB,GAIjC,IAAI3oB,EAAQstiB,GAAaA,EAAYC,GAKrC,MAAO,CAFCH,EAAU7uhB,EAAIve,GAASqtiB,EAAU9uhB,EAAI6uhB,EAAU7uhB,GAC/C6uhB,EAAUzkhB,EAAI3oB,GAASqtiB,EAAU1khB,EAAIykhB,EAAUzkhB,GAEzD,CAuEuB6khB,CAAUf,EAAQC,EAAQO,EAAWC,GACpDO,EAAcj+T,GAAe29T,EAAY,GACzCtgb,EAAU4gb,EAAY,GACtB3gb,EAAU2gb,EAAY,GACpBztiB,EAAQ+riB,GAAYkB,EAAWC,GAAanB,GAAYU,EAAQC,GACpEL,EAAmBrsiB,EAAO,YAAa6sH,EAASC,GAAS,GACzD6/a,EAAqB,CACnBF,OAAQQ,EACRP,OAAQQ,EACRhjE,UAAW,aAEf,KAAyB,SAAdA,IAETkiE,EAAgB,CACd7thB,EAAGusC,EAAQ,GAAG9D,QAAUylf,EAAOluhB,EAC/BoK,EAAGmiC,EAAQ,GAAG7D,QAAUwlf,EAAO9jhB,GAC9B,QACHgkhB,EAAqB,CACnBziE,UAAW,SAGjB,EA+CElgF,WA9Ce,WACf,GAAKv8J,EAAL,CAOA,GANI6+S,GACFC,GAAc,GAEhBI,EAAqB,CACnBziE,UAAW,SAETm/D,EAAW3zZ,EAEb,OAAO02Z,EAAgB,CACrB7thB,EAAG,EACHoK,EAAG,EACH+sH,MAAO2zZ,GACN,aAEL,IAAIxziB,EAAQq2iB,EAAOrygB,QAAQg0E,YAAc6nC,EACrCngJ,EAAS22iB,EAAOrygB,QAAQm0E,aAAe0nC,EAEvCg4Z,EAAwBxB,EAAOrygB,QAAQvlC,wBACzCW,EAAOy4iB,EAAsBz4iB,KAC7BC,EAAMw4iB,EAAsBx4iB,IAC1By4iB,EAAWpiX,EAAS,MAAQ,EAC5BqiX,EAAWpC,GAA4BmC,EAAWp4iB,EAASM,EAAO83iB,EAAW93iB,EAAQN,EAAQN,EAAMC,GACnG04iB,GACFxB,EAAgBhgU,GAAc,CAAC,EAAGwhU,GAAW,cAxB3B,CA0BtB,EAqBF,CCnKA,IAAIhsU,GAAY,CAAC,WAAY,MAAO,UAClCiO,GAAa,CAAC,YAAa,MAAO,MAAO,YAAa,WAAY,UAAW,UAAW,UAAW,QAAS,gBAAiB,YAAa,eAAgB,UAAW,QAAS,cAAe,YAAa,WAAY,WAAY,iBAAkB,qBAAsB,cAAe,iBAAkB,gBAAiB,cAAe,YAazUg+T,GAAe,SAAsBhvZ,GACvC,IAAIx4E,EAAWw4E,EAAKx4E,SAClBzoE,EAAMihJ,EAAKjhJ,IACXsuiB,EAASrtZ,EAAKqtZ,OACdzggB,EAAQkiM,GAAyB9uF,EAAM+iF,IAKvCuwB,EAAc3iB,GAJC+d,GAAU,CACvB3vP,IAAKA,EACLyoE,SAAUA,IAE6B,GACzCyne,EAAY37S,EAAY,GACxB47S,EAAe57S,EAAY,GAC7B,OAAoB1qC,EAAAA,cAAoB,MAAOoL,GAAS,CACtD1nL,IAAK,SAAamlI,GAChB47X,EAAOrygB,QAAUy2I,EACjBw9X,EAAUx9X,EACZ,GACC7kI,EAAOsigB,GACZ,EAoNA,SAnNc,SAAiBtigB,GAC7B,IAAIyhM,EAAYzhM,EAAMyhM,UACpBtvO,EAAM6tC,EAAM7tC,IACZuiV,EAAM10S,EAAM00S,IACZ6tN,EAAYvigB,EAAMuigB,UAClB3ne,EAAW56B,EAAM46B,SACjB4ne,EAAiBxigB,EAAM0ggB,QACvBA,OAA6B,IAAnB8B,GAAmCA,EAC7CviN,EAAUjgT,EAAMigT,QAChBj+F,EAAUhiN,EAAMgiN,QAChBygT,EAAezigB,EAAMkle,MACrBA,OAAyB,IAAjBu9B,EAA0B,CAAC,EAAIA,EACvCriS,EAAgBpgO,EAAMogO,cACtB4/E,EAAYhgT,EAAMggT,UAClBnnG,EAAe74M,EAAM64M,aACrB6pT,EAAiB1igB,EAAM5R,QACvBA,OAA6B,IAAnBs0gB,EAA4B,EAAIA,EAC1CC,EAAe3igB,EAAM7D,MACrBA,OAAyB,IAAjBwmgB,EAA0B,EAAIA,EACtCjF,EAAc19f,EAAM09f,YACpBkF,EAAmB5igB,EAAM6igB,UACzBA,OAAiC,IAArBD,EAA8B,GAAMA,EAChDE,EAAkB9igB,EAAM49f,SACxBA,OAA+B,IAApBkF,EAA6B,EAAIA,EAC5CC,EAAkB/igB,EAAM69f,SACxBA,OAA+B,IAApBkF,EAA6B,GAAKA,EAC7CC,EAAwBhjgB,EAAM4gN,eAC9BA,OAA2C,IAA1BoiT,EAAmC,OAASA,EAC7DC,EAAwBjjgB,EAAMmxN,mBAC9BA,OAA+C,IAA1B8xS,EAAmC,OAASA,EACjEC,EAAcljgB,EAAMkjgB,YACpBC,EAAiBnjgB,EAAMmjgB,eACvB/E,EAAgBp+f,EAAMo+f,cACtBgF,EAAcpjgB,EAAMojgB,YACpBj6T,EAAWnpM,EAAMmpM,SACjBlH,EAAYC,GAAyBliM,EAAOokM,IAC1Cq8T,GAAShre,EAAAA,EAAAA,UACTihb,GAAexhb,EAAAA,EAAAA,YAAWuoe,IAC1B4F,EAA0B3sD,GAAgBv6c,EAAQ,EAClDmngB,EAAyB5sD,GAAgBv6c,GAAS,EAEpDyqM,EAAa7C,IADCruK,EAAAA,EAAAA,WAAS,GACgB,GACvC6te,EAAmB38T,EAAW,GAC9B48T,EAAsB58T,EAAW,GAC/B68T,ELpES,SAA2BhD,EAAQ7C,EAAUC,EAAUuF,GACpE,IAAIM,GAAQjue,EAAAA,EAAAA,QAAO,MACfriD,GAAQqiD,EAAAA,EAAAA,QAAO,IAEjBmxK,EAAa7C,IADCruK,EAAAA,EAAAA,UAASiqe,IACgB,GACvCj4d,EAAYk/J,EAAW,GACvBnqC,EAAemqC,EAAW,GAYxB+5T,EAAkB,SAAyBrnF,EAAchnZ,GACrC,OAAlBoxe,EAAMt1gB,UACRhb,EAAMgb,QAAU,GAChBs1gB,EAAMt1gB,QAAU00M,IAAI,WAClBrmC,GAAa,SAAUknW,GACrB,IAAIC,EAAYD,EAShB,OARAvwhB,EAAMgb,QAAQnlC,SAAQ,SAAU46iB,GAC9BD,EAAYjjU,GAAcA,GAAc,CAAC,EAAGijU,GAAYC,EAC1D,IACAH,EAAMt1gB,QAAU,KACA,OAAhBg1gB,QAAwC,IAAhBA,GAA0BA,EAAY,CAC5D17d,UAAWk8d,EACXtxe,OAAQA,IAEHsxe,CACT,GACF,KAEFxwhB,EAAMgb,QAAQpkC,KAAK22O,GAAcA,GAAc,CAAC,EAAGj5J,GAAY4xY,GACjE,EAyDA,MAAO,CACL5xY,UAAWA,EACXo8d,eAzFmB,SAAwBxxe,GAC3CmqI,EAAakjW,IACRpnc,GAAQonc,GAAkBj4d,IACb,OAAhB07d,QAAwC,IAAhBA,GAA0BA,EAAY,CAC5D17d,UAAWi4d,GACXrte,OAAQA,GAGd,EAkFEque,gBAAiBA,EACjBC,mBA1DuB,SAA4BrsiB,EAAO+9D,EAAQ8uD,EAASC,EAAS0ib,GACpF,IAAIC,EAAkBvD,EAAOrygB,QAC3BhkC,EAAQ45iB,EAAgB55iB,MACxBN,EAASk6iB,EAAgBl6iB,OACzBs4G,EAAc4hc,EAAgB5hc,YAC9BG,EAAeyhc,EAAgBzhc,aAC/BszJ,EAAamuS,EAAgBnuS,WAC7BnsH,EAAYs6Z,EAAgBt6Z,UAC1Bu6Z,EAAW1viB,EACX2viB,EAAWx8d,EAAUuiE,MAAQ11I,EAC7B2viB,EAAWrG,GACbqG,EAAWrG,EACXoG,EAAWpG,EAAWn2d,EAAUuiE,OACvBi6Z,EAAWtG,IAGpBqG,GADAC,EAAWH,EAAUG,EAAWtG,GACVl2d,EAAUuiE,OAIlC,IAAIk6Z,EAA4B,OAAZ/ib,QAAgC,IAAZA,EAAqBA,EAAUyvB,WAAa,EAChFuzZ,EAA4B,OAAZ/ib,QAAgC,IAAZA,EAAqBA,EAAU0vB,YAAc,EACjFszZ,EAAYJ,EAAW,EAEvBK,EAAWD,EAAYj6iB,EAAQ,GAC/Bm6iB,EAAWF,EAAYv6iB,EAAS,GAEhC06iB,EAAiBH,GAAaF,EAAgBz8d,EAAU50D,EAAI+iP,GAC5D4uS,EAAgBJ,GAAaD,EAAgB18d,EAAUxqD,EAAIwsH,GAE3Dg7Z,EAAOh9d,EAAU50D,GAAK0xhB,EAAiBF,GACvCK,EAAOj9d,EAAUxqD,GAAKunhB,EAAgBF,GAM1C,GAAIhwiB,EAAQ,GAAkB,IAAb2viB,EAAgB,CAC/B,IAAI/sH,EAAc/0U,EAAc8hc,EAC5B9sH,EAAe70U,EAAe2hc,EAC9BlE,EAAiBxC,KACnBn7b,EAAc29b,EAAe51iB,MAC7Bo4G,EAAew9b,EAAel2iB,OAC5Bqtb,GAAe90U,GAAe+0U,GAAgB50U,IAChDkic,EAAO,EACPC,EAAO,EAEX,CACAhE,EAAgB,CACd7thB,EAAG4xhB,EACHxnhB,EAAGynhB,EACH16Z,MAAOi6Z,GACN5xe,EACL,EAOF,CKhC2Bsye,CAAkBnE,EAAQ7C,EAAUC,EAAUuF,GACrE17d,EAAY+7d,EAAmB/7d,UAC/Bo8d,EAAiBL,EAAmBK,eACpCnD,EAAkB8C,EAAmB9C,gBACrCC,EAAqB6C,EAAmB7C,mBACtCiE,EChFS,SAAuBpE,EAAQC,EAAS1+S,EAAS6gT,EAAWn7d,EAAWi5d,EAAiBC,GACrG,IAAI9gX,EAASp4G,EAAUo4G,OACrB71C,EAAQviE,EAAUuiE,MAClBn3H,EAAI40D,EAAU50D,EACdoK,EAAIwqD,EAAUxqD,EAEd0pN,EAAa7C,IADCruK,EAAAA,EAAAA,WAAS,GACgB,GACvCove,EAAWl+T,EAAW,GACtBm+T,EAAYn+T,EAAW,GACrBo+T,GAAoBvve,EAAAA,EAAAA,QAAO,CAC7Bwve,MAAO,EACPC,MAAO,EACP/5F,WAAY,EACZM,WAAY,IAeVrtM,EAAc,SAAqB78M,GACjCygM,GAAW8iT,GACbnE,EAAgB,CACd7thB,EAAGyuC,EAAM9F,MAAQupf,EAAkB52gB,QAAQ62gB,MAC3C/nhB,EAAGqkC,EAAM7F,MAAQspf,EAAkB52gB,QAAQ82gB,OAC1C,OAEP,EACI5kN,EAAY,WACd,GAAIt+F,GAAW8iT,EAAU,CACvBC,GAAU,GAGV,IAAII,EAAwBH,EAAkB52gB,QAC5C+8a,EAAag6F,EAAsBh6F,WACnCM,EAAa05F,EAAsB15F,WAErC,GADyB34b,IAAMq4b,GAAcjub,IAAMuub,EAC1B,OACzB,IAAIrhd,EAAQq2iB,EAAOrygB,QAAQg0E,YAAc6nC,EACrCngJ,EAAS22iB,EAAOrygB,QAAQm0E,aAAe0nC,EAEvCg4Z,EAAwBxB,EAAOrygB,QAAQvlC,wBACzCW,EAAOy4iB,EAAsBz4iB,KAC7BC,EAAMw4iB,EAAsBx4iB,IAC1By4iB,EAAWpiX,EAAS,MAAQ,EAC5BqiX,EAAWpC,GAA4BmC,EAAWp4iB,EAASM,EAAO83iB,EAAW93iB,EAAQN,EAAQN,EAAMC,GACnG04iB,GACFxB,EAAgBhgU,GAAc,CAAC,EAAGwhU,GAAW,cAEjD,CACF,EA4CA,OA9BAhte,EAAAA,EAAAA,YAAU,WACR,IAAIiwe,EACAC,EACAplE,EACAC,EACJ,GAAIwgE,EAAS,CACXzgE,EAAoBvve,GAAiBhD,OAAQ,UAAW4yV,GAAW,GACnE4/I,EAAsBxve,GAAiBhD,OAAQ,YAAa0wQ,GAAa,GACzE,IAGM1wQ,OAAOjE,MAAQiE,OAAOxG,OACxBk+iB,EAAuB10iB,GAAiBhD,OAAOjE,IAAK,UAAW62V,GAAW,GAC1E+kN,EAAyB30iB,GAAiBhD,OAAOjE,IAAK,YAAa20Q,GAAa,GAEpF,CAAE,MAAOprQ,GAEQ,cAAcrG,OAAOqG,EACtC,CACF,CACA,OAAO,WACL,IAAIsyiB,EAAoBC,EAAsBC,EAAuBC,EACxB,QAA5CH,EAAqBrlE,SAAsD,IAAvBqlE,GAAiCA,EAAmBhwc,SACxD,QAAhDiwc,EAAuBrlE,SAA0D,IAAzBqlE,GAAmCA,EAAqBjwc,SAE9D,QAAlDkwc,EAAwBJ,SAA4D,IAA1BI,GAAoCA,EAAsBlwc,SAEhE,QAApDmwc,EAAwBJ,SAA8D,IAA1BI,GAAoCA,EAAsBnwc,QACzH,CACF,GAAG,CAAC0sJ,EAAS8iT,EAAUhyhB,EAAGoK,EAAG4iK,EAAQ4gX,IAC9B,CACLoE,SAAUA,EACVzkN,YAzFgB,SAAqB9+R,GAEhCm/e,GAA4B,IAAjBn/e,EAAMtF,SACtBsF,EAAMrH,iBACNqH,EAAMxI,kBACNisf,EAAkB52gB,QAAU,CAC1B62gB,MAAO1jf,EAAM9F,MAAQ3oC,EACrBoyhB,MAAO3jf,EAAM7F,MAAQx+B,EACrBiub,WAAYr4b,EACZ24b,WAAYvub,GAEd6nhB,GAAU,GACZ,EA8EE3mS,YAAaA,EACbkiF,UAAWA,EACX8zG,QAhDY,SAAiB7yY,GAC7B,GAAKygM,GAA2B,GAAhBzgM,EAAM3B,OAAtB,CAEA,IAAI8lf,EAAa/7iB,KAAK6E,IAAI+yD,EAAM3B,OAAS,KAIrCrrD,ECxEsB,EDsEH5K,KAAKyhB,IAAIs6hB,ECpED,GDsEmB7C,EAC9Cthf,EAAM3B,OAAS,IACjBrrD,EC1EwB,ED0EGA,GAE7BqsiB,EAAmBrsiB,EAAO,QAASgtD,EAAMhG,QAASgG,EAAM/F,QAVf,CAW3C,EAsCF,CD7BuBmqf,CAAclF,EAAQC,EAAS1+S,EAAS6gT,EAAWn7d,EAAWi5d,EAAiBC,GAClGkE,EAAWD,EAAeC,SAC1BzkN,EAAcwkN,EAAexkN,YAC7B+zG,EAAUywG,EAAezwG,QACvBwxG,EAAiBpF,GAAcC,EAAQC,EAAS1+S,EAAS47S,EAAUl2d,EAAWi5d,EAAiBC,GACjGC,GAAa+E,EAAe/E,WAC5BriJ,GAAeonJ,EAAepnJ,aAC9BN,GAAc0nJ,EAAe1nJ,YAC7BK,GAAaqnJ,EAAernJ,WAC1Bz+N,GAASp4G,EAAUo4G,OACrB71C,GAAQviE,EAAUuiE,MAChBm4M,GAAgBpG,MAAWh8O,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,WAAYqjU,KACpF3ve,EAAAA,EAAAA,YAAU,WACHoue,GACHC,GAAoB,EAExB,GAAG,CAACD,IACJ,IAgCIhuT,GAAW,SAAkBtyL,GAC/B,IAAIzvD,EAAW46B,EAAU60B,GACpB5zD,OAAOigG,UAAU97F,IAAaA,EAAW,GAAKA,EAAW2oC,EAAQ,IAGtEqngB,GAAoB,GACpBM,EAAe7gf,EAAS,EAAI,OAAS,QACxB,OAAbkmL,QAAkC,IAAbA,GAAuBA,EAAS31O,EAAU46B,GACjE,EACIooN,GAAY,SAAmBj1L,GAC5BygM,GAAYqhT,IACb9hf,EAAMjI,UAAY4yL,GAAQe,KAC5BsI,IAAU,GACDh0L,EAAMjI,UAAY4yL,GAAQiB,OACnCoI,GAAS,GAEb,GAcApgL,EAAAA,EAAAA,YAAU,WACR,IAAI0we,EAAoBn1iB,GAAiBhD,OAAQ,UAAW8oP,IAAW,GACvE,OAAO,WACLqvT,EAAkBvwc,QACpB,CACF,GAAG,CAAC0sJ,EAASqhT,EAAyBj1gB,IACtC,IAAI03gB,GAAuB9pV,EAAAA,cAAoBomV,GAAch7U,GAAS,CAAC,EAAG+7U,EAAgB,CACxF/4iB,MAAO41C,EAAM51C,MACbN,OAAQk2C,EAAMl2C,OACd22iB,OAAQA,EACR/wiB,UAAW,GAAG/C,OAAO80O,EAAW,QAChCizG,IAAKA,EACLjnV,MAAO,CACLi6E,UAAW,eAAe/6E,OAAO+6E,EAAU50D,EAAG,QAAQnmB,OAAO+6E,EAAUxqD,EAAG,mBAAmBvwB,OAAO+6E,EAAU62d,MAAQ,IAAM,IAAI5xiB,OAAOs9I,GAAO,MAAMt9I,OAAO+6E,EAAU82d,MAAQ,IAAM,IAAI7xiB,OAAOs9I,GAAO,gBAAgBt9I,OAAOmzL,GAAQ,QACpOimX,qBAAsBxC,GAAoB1C,KAAe,MAE3Djme,SAAUA,EACVzoE,IAAKA,EACLiic,QAASA,EACT/zG,YAAaA,EACbgvJ,cAjCkB,SAAuB9tb,GACrCygM,IACY,IAAV/3G,GACF02Z,EAAgB,CACd7thB,EAAG,EACHoK,EAAG,EACH+sH,MAAO,GACN,eAEH22Z,EEjKsB,EFiKgBiC,EAAW,cAAethf,EAAMhG,QAASgG,EAAM/F,SAG3F,EAsBEgjW,aAAcA,GACdN,YAAaA,GACbK,WAAYA,GACZiyB,cAAejyB,MAEb5rZ,GAAQguO,GAAc,CACxBt2O,IAAK8H,EACLuiV,IAAKA,GACJ6tN,GACH,OAAoBvmV,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoBunI,GAAQn8H,GAAS,CAC9Gw5B,eAAgBA,EAChBuQ,mBAAoBA,EACpB4uF,UAAU,EACViC,UAAU,EACVvgH,UAAWA,EACXw+G,QAASA,EACTj+F,QAASA,EACTrmC,WAAY,CACV31H,QAASo8P,IAEXhiF,cAAeA,EACfvnB,aAAcA,GACb5W,EAAW,CACZqgH,WA1GiB,WACjBwhN,EAAe,QACjB,IAyGiB9nV,EAAAA,cAAoB,MAAO,CAC1CtsN,UAAW,GAAG/C,OAAO80O,EAAW,iBAC/ByhU,EAAcA,EAAY4C,GAASnlU,GAAc,CAClDj5J,UAAWA,EACX/0E,MAAOA,IACN+jf,EAAe,CAChBtod,QAASA,GACP,CAAC,IAAM03gB,KAAwB9pV,EAAAA,cAAoBgqV,GAAY,CACjEhkT,QAASA,EACTt6K,UAAWA,EACXypL,mBAAoBA,EACpB6uF,UAAWA,EACXnnG,aAAcA,EACdpX,UAAWA,EACX2+B,cAAeA,EACf8kQ,MAAOA,EACPw4B,YAAaA,EACbC,WAAY0F,EACZ/6F,aAAcg7F,EACdl1gB,QAASA,EACT+N,MAAOA,EACP8tG,MAAOA,GACP2zZ,SAAUA,EACVC,SAAUA,EACVO,cAAeA,EACf7oT,SAAUA,GACVuoT,SAlIa,WACb8C,EE3G0B,EF2GYiC,EAAW,SACnD,EAiIE9E,UAhIc,WACd6C,EE9G0B,KF8GgCiC,GAAY,UACxE,EA+HE7E,cA9HkB,WAClB2C,EAAgB,CACd7gX,OAAQA,GAAS,IAChB,cACL,EA2HEm+W,aA1HiB,WACjB0C,EAAgB,CACd7gX,OAAQA,GAAS,IAChB,aACL,EAuHEo+W,QAtHY,WACZyC,EAAgB,CACdpC,OAAQ72d,EAAU62d,OACjB,QACL,EAmHEJ,QAlHY,WACZwC,EAAgB,CACdnC,OAAQ92d,EAAU82d,OACjB,QACL,EA+GEv+M,QAASA,EACT1xC,QA/GY,WACZu1P,EAAe,QACjB,EA8GEpwiB,YAA6B0B,IAArB6sO,EAAUvuO,OAAuBuuO,EAAUvuO,OAAS,OAAI0B,EAChEzC,MAAOA,KAEX,EGxPO,IAAIsziB,GAAe,CAAC,cAAe,WAAY,YAAa,UAAW,iBAAkB,QAAS,SAAU,SAAU,OCI7H,IAAI9vU,GAAY,CAAC,UAAW,kBAAmB,eAAgB,UAAW,UAAW,WAAY,WAAY,cAAe,YAAa,WAAY,cAAe,gBAAiB,eACnLiO,GAAa,CAAC,OCFhB,IAAIp6N,GAAM,ECGV,IAAImsN,GAAY,CAAC,MAAO,MAAO,iBAAkB,YAAa,mBAAoB,cAAe,WAAY,QAAS,SAAU,QAAS,UAAW,YAAa,UAAW,UAAW,mBAAoB,eAAgB,iBACzNiO,GAAa,CAAC,MAAO,UAAW,kBAAmB,eAAgB,OAAQ,gBAAiB,UAAW,QAAS,YAAa,WAAY,WAAY,cAAe,iBAYlK8hU,GAAgB,SAAuBlmgB,GACzC,IAAI6kZ,EAAS7kZ,EAAM7tC,IACjBuiV,EAAM10S,EAAM00S,IACZyxN,EAAwBnmgB,EAAMomgB,eAC9BphU,EAAmBhlM,EAAMyhM,UACzBA,OAAiC,IAArBuD,EAA8B,WAAaA,EACvDqhU,EAAwBrmgB,EAAMsmgB,iBAC9BA,OAA6C,IAA1BD,EAAmC,GAAG15iB,OAAO80O,EAAW,YAAc4kU,EACzFn0d,EAAclyC,EAAMkyC,YACpBtX,EAAW56B,EAAM46B,SACjBxwE,EAAQ41C,EAAM51C,MACdN,EAASk2C,EAAMl2C,OACf2D,EAAQuyC,EAAMvyC,MACd84iB,EAAiBvmgB,EAAMwzG,QACvBA,OAA6B,IAAnB+yZ,GAAmCA,EAC7C72iB,EAAYswC,EAAMtwC,UAClB4sE,EAAUt8B,EAAMs8B,QAChBnqB,EAAUnS,EAAMmS,QAChBokX,EAAmBv2X,EAAMu2X,iBACzB2e,EAAel1Y,EAAMk1Y,aACrB90K,EAAgBpgO,EAAMogO,cACtBy8B,EAAa36D,GAAyBliM,EAAOm2L,IAC3C+pU,EAAsBhud,IAA+B,IAAhBA,EACrCkhE,EAA4B,YAArBzoJ,EAAAA,GAAAA,GAAQ6oJ,GAAwBA,EAAU,CAAC,EACpDgzZ,EAAapzZ,EAAKjhJ,IAClBs0iB,EAAerzZ,EAAK4uG,QACpB0kT,OAAkC,IAAjBD,OAA0BrxiB,EAAYqxiB,EACvDE,EAAuBvzZ,EAAKsyF,gBAC5BkhU,OAAkD,IAAzBD,EAAkCR,EAAwBQ,EACnFpjE,EAAoBnwV,EAAKylG,aACzBguT,OAA4C,IAAtBtjE,OAA+Bnue,EAAYmue,EACjEujE,EAAc1zZ,EAAK1G,KACnB0nS,EAAgBhhS,EAAKghS,cACrBssH,EAAUttZ,EAAKstZ,QACfx7B,EAAQ9xX,EAAK8xX,MACb29B,EAAYzvZ,EAAKyvZ,UACjBjF,EAAWxqZ,EAAKwqZ,SAChBC,EAAWzqZ,EAAKyqZ,SAChBqF,EAAc9vZ,EAAK8vZ,YACnB9E,EAAgBhrZ,EAAKgrZ,cACrB2I,EAAc7kU,GAAyB9uF,EAAMgxF,IAC3CjyO,EAAqB,OAAfq0iB,QAAsC,IAAfA,EAAwBA,EAAa3hH,EAKpEl/K,EAAmB5hC,GAJCkF,KAAiBy9T,EAAgB,CACnD3/iB,MAAO2/iB,EACPv9T,SAAUy9T,IAEuC,GACnDI,EAAgBrhS,EAAiB,GACjCshS,EAAiBthS,EAAiB,GAMlCjf,EAAc3iB,GALC+d,GAAU,CACvB3vP,IAAK0yb,EACLq7G,oBAAqBA,EACrBtle,SAAUA,IAE6B,GACzCyne,EAAY37S,EAAY,GACxB47S,EAAe57S,EAAY,GAC3B9hN,EAAS8hN,EAAY,GAErB9f,EAAa7C,IADCruK,EAAAA,EAAAA,UAAS,MACgB,GACvC+rR,EAAgB76G,EAAW,GAC3BsgU,EAAmBtgU,EAAW,GAC5B8vQ,GAAexhb,EAAAA,EAAAA,YAAWuoe,IAC1B0J,KAAe3zZ,EAKf4zZ,GAAepiW,KAAGy8B,EAAW80L,EAAkBn2J,GAAepgK,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,UAAsB,UAAX78L,IAGlHu+f,IAAiB5te,EAAAA,EAAAA,UAAQ,WAC3B,IAAI3qE,EAAM,CAAC,EAMX,OALAq7iB,GAAah9iB,SAAQ,SAAUT,QACT4M,IAAhB4qC,EAAMx3C,KACRoC,EAAIpC,GAAQw3C,EAAMx3C,GAEtB,IACOoC,CACT,GAAGq7iB,GAAazwiB,KAAI,SAAUhN,GAC5B,OAAOw3C,EAAMx3C,EACf,KAQI6+iB,GDxGS,SAA0BF,EAAYziiB,GACnD,IAKEkH,EADmBm4N,GAJC/nB,EAAAA,UAAe,WAEjC,OAAO5sN,OADP4a,IAAO,EAET,IACmD,GAC7B,GACpB0se,EAAe16R,EAAAA,WAAiByhV,IAChC6J,EAAe,CACjB5iiB,KAAMA,EACNyiiB,WAAYA,GAgBd,OAVAnrV,EAAAA,WAAgB,WACd,GAAI06R,EACF,OAAOA,EAAajgO,SAAS7qQ,EAAI07hB,EAErC,GAAG,IACHtrV,EAAAA,WAAgB,WACV06R,GACFA,EAAajgO,SAAS7qQ,EAAI07hB,EAE9B,GAAG,CAACH,EAAYziiB,IACTkH,CACT,CC6EgB27hB,CAAiBJ,IALZ5xe,EAAAA,EAAAA,UAAQ,WACzB,OAAOorK,GAAcA,GAAc,CAAC,EAAGwiU,IAAiB,CAAC,EAAG,CAC1DhxiB,IAAKA,GAET,GAAG,CAACA,EAAKgxiB,MAqBT,OAAoBnnV,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoB,MAAOoL,GAAS,CAAC,EAAGy1E,EAAY,CAC7HntS,UAAW03iB,GACX9qe,QAAS6qe,GAnBK,SAAmBxxhB,GACjC,IAAI6xhB,Ed1BD,SAAmBz3iB,GACxB,IAAIo8I,EAAMp8I,EAAKlH,wBACX61e,EAAUjve,SAASk0D,gBAGvB,MAAO,CACLn6D,KAAM2iJ,EAAI3iJ,MAAQkE,OAAOirI,aAAe+lW,EAAQ9te,aAAe8te,EAAQC,YAAclve,SAASuE,KAAK2qe,YAAc,GACjHl1e,IAAK0iJ,EAAI1iJ,KAAOiE,OAAOmrI,aAAe6lW,EAAQ/te,YAAc+te,EAAQE,WAAanve,SAASuE,KAAK4qe,WAAa,GAEhH,CciBqBhsP,CAAUj9N,EAAEziB,QAC3B1J,EAAOg+iB,EAAWh+iB,KAClBC,EAAM+9iB,EAAW/9iB,IACfitf,EACFA,EAAa+wD,UAAUJ,GAASl1iB,EAAK3I,EAAMC,IAE3Cy9iB,EAAiB,CACfp0hB,EAAGtpB,EACH0zB,EAAGzzB,IAELw9iB,GAAe,IAEL,OAAZ3qe,QAAgC,IAAZA,GAAsBA,EAAQ3mD,EACpD,EAKoC2mD,EAClC7uE,MAAOkzO,GAAc,CACnBv2O,MAAOA,EACPN,OAAQA,GACPorb,KACYl5N,EAAAA,cAAoB,MAAOoL,GAAS,CAAC,EAAG+7U,GAAgB,CACvEzziB,UAAWs1M,KAAG,GAAGr4M,OAAO80O,EAAW,SAASzhI,EAAAA,GAAAA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO80O,EAAW,qBAAqC,IAAhBvvJ,GAAuBxiF,GACjIjC,MAAOkzO,GAAc,CACnB72O,OAAQA,GACP2D,GACHiyC,IAAK2igB,GACJC,EAAc,CACfl4iB,MAAOA,EACPN,OAAQA,EACRqoD,QAASA,KACK,YAAXvN,GAAqCo3K,EAAAA,cAAoB,MAAO,CACnE,cAAe,OACftsN,UAAW,GAAG/C,OAAO80O,EAAW,iBAC/BvvJ,GAAc40d,GAAeK,IAA2BnrV,EAAAA,cAAoB,MAAO,CACpFtsN,UAAWs1M,KAAG,GAAGr4M,OAAO80O,EAAW,SAAU2yM,GAC7C3mb,MAAO,CACLkB,QAA2E,UAAvD,OAAVlB,QAA4B,IAAVA,OAAmB,EAASA,EAAMkB,SAAsB,YAASyG,IAE9F0xiB,KAAgBpwD,GAAgBywD,IAA2BnrV,EAAAA,cAAoB0rV,GAAStgV,GAAS,CAClG,eAAgB4/U,EAChBhlT,QAASglT,EACTvlU,UAAW6kU,EACXrmN,QA1EmB,WACnBgnN,GAAe,GACfC,EAAiB,KACnB,EAwEEzlN,cAAeA,EACftvV,IAAKA,EACLuiV,IAAKA,EACL6tN,UAAW,CACTn4iB,MAAOA,EACPN,OAAQA,GAEV8wE,SAAUA,EACVi+K,aAAcguT,EACd3hC,MAAOA,EACPw7B,QAASA,EACTmC,UAAWA,EACXjF,SAAUA,EACVC,SAAUA,EACVz9R,cAAeA,EACf8iS,YAAaA,EACbC,eAAgBA,GAChB/E,cAAeA,GACd2I,IACL,EACAb,GAAcyB,aFtKF,SAAev0Z,GACzB,IAAIw0Z,EACAC,EAAwBz0Z,EAAKkzZ,iBAC/BA,OAA6C,IAA1BuB,EAAmC,mBAAqBA,EAC3Ev7f,EAAW8mG,EAAK9mG,SAChBw7f,EAAa10Z,EAAK8xX,MAClBA,OAAuB,IAAf4iC,EAAwB,CAAC,EAAIA,EACrClgU,EAAQx0F,EAAKw0F,MACbp0F,EAAUJ,EAAKI,QACf54E,EAAWw4E,EAAKx4E,SACdiqG,EAA6B,YAArBl6K,EAAAA,GAAAA,GAAQ6oJ,GAAwBA,EAAU,CAAC,EACrDkzZ,EAAiB7hY,EAAMm9E,QACvBtc,EAAkB7gE,EAAM6gE,gBACxBmT,EAAeh0E,EAAMg0E,aACrBtvI,EAAes7D,EAAMz2I,QACrBsygB,EAAU77X,EAAM67X,QAChB9C,EAAW/4X,EAAM+4X,SACjBC,EAAWh5X,EAAMg5X,SACjBH,EAAc74X,EAAM64X,YACpB19M,EAAYn7K,EAAMm7K,UAClB72G,EAAWtkE,EAAMskE,SACjBi6T,EAAcv+X,EAAMu+X,YACpBhF,EAAgBv5X,EAAMu5X,cACtB8E,EAAcr+X,EAAMq+X,YACpB6D,EAAc7kU,GAAyBr9D,EAAOsxD,IAG5C4xU,EG9BS,SAAyBngU,GAEtC,IACE9D,EAAmBC,GADC/nB,EAAAA,SAAe,CAAC,GACe,GACnD3+E,EAASymG,EAAiB,GAC1BkkU,EAAYlkU,EAAiB,GAC3BmkU,EAAgBjsV,EAAAA,aAAkB,SAAUpwM,EAAIlH,GAIlD,OAHAsjiB,GAAU,SAAUE,GAClB,OAAOvnU,GAAcA,GAAc,CAAC,EAAGunU,GAAO,CAAC,GAAGloc,EAAAA,GAAAA,GAAgB,CAAC,EAAGp0F,EAAIlH,GAC5E,IACO,WACLsjiB,GAAU,SAAUE,GAClB,IAAIC,EAAYxnU,GAAc,CAAC,EAAGunU,GAElC,cADOC,EAAUv8hB,GACVu8hB,CACT,GACF,CACF,GAAG,IAwCH,MAAO,CArCWnsV,EAAAA,SAAc,WAE9B,OAAI4rB,EACKA,EAAMpyO,KAAI,SAAU6kC,GACzB,GAAoB,kBAATA,EACT,MAAO,CACL31B,KAAM,CACJvS,IAAKkoC,IAIX,IAAI31B,EAAO,CAAC,EAMZ,OALAvW,OAAOC,KAAKisC,GAAMpxC,SAAQ,SAAUgE,GAC9B,CAAC,OAAON,OAAOw+O,GAAmB86T,KAAe3tiB,SAASrL,KAC5DyX,EAAKzX,GAAOotC,EAAKptC,GAErB,IACO,CACLyX,KAAMA,EAEV,IAIKvW,OAAOC,KAAKivI,GAAQj2G,QAAO,SAAUiM,EAAOznB,GACjD,IAAIw8hB,EAAa/qa,EAAOzxH,GACtBu7hB,EAAaiB,EAAWjB,WACxBziiB,EAAO0jiB,EAAW1jiB,KAOpB,OANIyiiB,GACF9zgB,EAAMrpC,KAAK,CACT0a,KAAMA,EACNkH,GAAIA,IAGDynB,CACT,GAAG,GACL,GAAG,CAACu0M,EAAOvqG,IACU4qa,IAAiBrgU,EACxC,CH5ByBygU,CAAgBzgU,GACrC0gU,EAAoBvkU,GAAegkU,EAAkB,GACrDxnF,EAAc+nF,EAAkB,GAChC7xR,EAAW6xR,EAAkB,GAC7BC,EAAYD,EAAkB,GAO9B3iS,EAAmB5hC,GAHCkF,GAAe,EAAG,CACpCliP,MAAOwiH,IAE0C,GACnDn7E,EAAUu3O,EAAiB,GAC3Bg9H,EAAah9H,EAAiB,GAE9B/+B,EAAa7C,IADCruK,EAAAA,EAAAA,WAAS,GACgB,GACvC8ye,EAAgB5hU,EAAW,GAC3B6hU,EAAmB7hU,EAAW,GAG5B2hB,GAA2D,QAAjDq/S,EAAuBrnF,EAAYnyb,UAA+C,IAAzBw5gB,OAAkC,EAASA,EAAqBljiB,OAAS,CAAC,EAC/IvS,EAAMo2P,EAAMp2P,IACZgxiB,EAAiBjhU,GAAyBqmB,EAAOnkB,IAQjDgjC,EAAmBrjC,GANEkF,KAAiBy9T,EAAgB,CACpD3/iB,MAAO2/iB,EACPv9T,SAAU,SAAkBr4O,EAAK43iB,GACX,OAApBhjU,QAAgD,IAApBA,GAA8BA,EAAgB50O,EAAK43iB,EAASt6gB,EAC1F,IAEkD,GACpD44gB,EAAgB5/R,EAAiB,GACjC6/R,EAAiB7/R,EAAiB,GAIlCrgC,EAAahD,IADEruK,EAAAA,EAAAA,UAAS,MACgB,GACxC+rR,EAAgB16G,EAAW,GAC3BmgU,EAAmBngU,EAAW,GAC5B4hU,EAAqB3sV,EAAAA,aAAkB,SAAUpwM,EAAIg9hB,EAAUC,EAAQ/pJ,GACzE,IAAIzmZ,EAAQkwiB,EAAYhoF,EAAY7md,WAAU,SAAU2gC,GACtD,OAAOA,EAAK31B,KAAKvS,MAAQy2iB,CAC3B,IAAKroF,EAAY7md,WAAU,SAAU2gC,GACnC,OAAOA,EAAKzuB,KAAOA,CACrB,IACA+2X,EAAWtqY,EAAQ,EAAI,EAAIA,GAC3B4uiB,GAAe,GACfC,EAAiB,CACfp0hB,EAAG+1hB,EACH3rhB,EAAG4hY,IAEL2pJ,GAAiB,EACnB,GAAG,CAACloF,EAAagoF,IAGjBvsV,EAAAA,WAAgB,WACVgrV,EACGwB,GACH7lK,EAAW,GAGb8lK,GAAiB,EAErB,GAAG,CAACzB,IAGJ,IAUI8B,EAAsB9sV,EAAAA,SAAc,WACtC,MAAO,CACLy6D,SAAUA,EACVgxR,UAAWkB,EAEf,GAAG,CAAClyR,EAAUkyR,IAGd,OAAoB3sV,EAAAA,cAAoByhV,GAAoBr+b,SAAU,CACpEr4G,MAAO+hjB,GACNx8f,EAAuB0vK,EAAAA,cAAoB0rV,GAAStgV,GAAS,CAC9D,eAAgB4/U,EAChBtG,QAASA,EACT1+S,QAASglT,EACTvlU,UAAW6kU,EACXtmN,UAAWA,EACXC,QAtBmB,WACnBgnN,GAAe,GACfC,EAAiB,KACnB,EAoBEzlN,cAAeA,EACf0hN,eAAgBA,EAChBhxiB,IAAKA,EACLyoE,SAAUA,EACVsqc,MAAOA,EACP04B,SAAUA,EACVC,SAAUA,EACVhlT,aAAcA,EACdzqN,QAASA,EACT+N,MAAOokb,EAAYj3d,OACnBo0iB,YAAaA,EACb0F,YAAaA,EACbhF,cAAeA,EACf8E,YAAaA,EACb/5T,SAzCqB,SAA0B9sO,EAAM0oB,GACrD49W,EAAWtmY,GACE,OAAb8sO,QAAkC,IAAbA,GAAuBA,EAAS9sO,EAAM0oB,EAC7D,GAuCGgihB,IACL,EEkCA,MEpLA,GFoLA,GGpLA,SADyB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAC,EAAG,SAAY,CAAC,CAAE,IAAO,QAAS,MAAS,CAAC,KAAQ,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,4IAA+I,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,wUAA4U,KAAQ,cAAe,MAAS,YCM3wB,IAAIgC,GAAqB,SAA4B/ogB,EAAON,GAC1D,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM4uW,KAEV,EAOA,SAJ2BhtV,EAAAA,WAAiB+sV,ICb5C,SAD0B,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAC,EAAG,SAAY,CAAC,CAAE,IAAO,QAAS,MAAS,CAAC,KAAQ,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,4VAA+V,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,8IAAkJ,KAAQ,eAAgB,MAAS,YCMnyB,IAAIE,GAAsB,SAA6BjpgB,EAAON,GAC5D,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM8uW,KAEV,EAOA,SAJ2BltV,EAAAA,WAAiBitV,ICb5C,SADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,8TAAkU,KAAQ,OAAQ,MAAS,YCMrf,IAAIE,GAAe,SAAsBnpgB,EAAON,GAC9C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMgvW,KAEV,EAOA,SAJ2BptV,EAAAA,WAAiBmtV,ICb5C,SADqB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,igBAAqgB,KAAQ,UAAW,MAAS,YCM7rB,IAAIE,GAAiB,SAAwBrpgB,EAAON,GAClD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMkvW,KAEV,EAOA,SAJ2BttV,EAAAA,WAAiBqtV,ICb5C,SADsB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,iaAAqa,KAAQ,WAAY,MAAS,YCM/lB,IAAIE,GAAkB,SAAyBvpgB,EAAON,GACpD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMovW,KAEV,EAOA,SAJ2BxtV,EAAAA,WAAiButV,ICT/BE,GAAcj2iB,IAAY,CACrCA,SAAUA,GAAY,WACtB81H,MAAO,IAEIogb,GAAoB54b,IAC/B,MAAM,QACJy0K,EAAO,mBACP8B,EAAkB,WAClBgP,EAAU,UACVY,EAAS,UACTx1D,EAAS,oBACTuzD,GACElkL,EACJ,MAAO,CACLt9G,SAAU,WACV81H,MAAO,EACP36H,QAAS,OACTs5R,WAAY,SACZyT,eAAgB,SAChBtyQ,MAAO4rQ,EACPrxK,WAAY,IAAIylJ,GAAU,QAAQe,KAAK,IAAK6B,cAC5C7pP,OAAQ,UACRruB,QAAS,EACT4kD,WAAY,WAAW2uO,IACvB,CAAC,IAAI5lD,eAAwBtzO,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGq1R,IAAe,CAC1El9P,QAAS,KAAKv+B,GAAKkrS,KACnB,CAAC9Q,GAAU,CACTkmC,gBAAiBx0B,EACjB5nK,IAAK,CACHvkG,cAAe,eAItB,EAEU6+gB,GAA4B74b,IACvC,MAAM,WACJ84b,EAAU,YACVC,EAAW,UACXtzQ,EAAS,SACTe,EAAQ,OACRvtS,EAAM,UACN0sS,EAAS,8BACTqzQ,EAA6B,2BAC7BC,EAA0B,mBAC1B1iR,EAAkB,QAClB9B,EAAO,oBACPyP,GACElkL,EACEk5b,EAAc,IAAI5gS,GAAUygS,GAAa1/R,KAAK,IAC9C8/R,EAAmBD,EAAY/5iB,QAAQk6Q,KAAK,IAClD,MAAO,CACL,CAAC,GAAGy/R,YAAsB,CACxBp2iB,SAAU,QACVjF,OAAQ+oS,EACR9tS,KAAM,CACJi3T,cAAc,EACd15T,MAAO,OAET4H,QAAS,OACT6rS,cAAe,SACfvS,WAAY,SACZ7+P,MAAO0nF,EAAMo5b,sBACbxie,UAAW,oBAEb,CAAC,GAAGkie,cAAwB,CAC1Bjjb,aAAc58H,GAEhB,CAAC,GAAG6/iB,WAAqB,CACvBp2iB,SAAU,QACV/J,IAAK6tS,EACL3jS,MAAO,CACL8sT,cAAc,EACd15T,MAAOuwS,GAET3oS,QAAS,OACTy6B,MAAO4rQ,EACPphS,gBAAiBo2iB,EAAYh+R,cAC7Bwd,aAAc,MACd9/P,QAAS6sQ,EACT34F,QAAS,EACT3gE,OAAQ,EACR96G,OAAQ,UACRu2B,WAAY,OAAO2uO,IACnB,UAAW,CACTzzR,gBAAiBq2iB,EAAiBj+R,eAEpC,CAAC,OAAOuZ,KAAY,CAClBhgQ,SAAUurF,EAAMq5b,uBAGpB,CAAC,GAAGP,gBAA0B,CAC5Bj7iB,QAAS,OACTs5R,WAAY,SACZv+P,QAAS,KAAKv+B,GAAKsrS,KACnB7iS,gBAAiBo2iB,EAAYh+R,cAC7Bwd,aAAc,IACd,cAAe,CACbgiC,kBAAmBj1B,EACnB7sQ,QAAS6sQ,EACTp0Q,OAAQ,UACRu2B,WAAY,OAAO2uO,IACnB70I,WAAY,OACZ,CAAC,SAASo3Z,4CAAqDrkR,KAAY,CACzEn8P,MAAO2ghB,GAET,aAAc,CACZ3ghB,MAAO0ghB,EACP3nhB,OAAQ,eAEV,kBAAmB,CACjBqpS,kBAAmB,GAErB,CAAC,OAAOjmC,KAAY,CAClBhgQ,SAAUurF,EAAMq5b,wBAIvB,EAEUC,GAAwBt5b,IACnC,MAAM,YACJ+4b,EAAW,QACXtkR,EAAO,8BACPukR,EAA6B,WAC7BF,EAAU,YACVrlP,EAAW,mBACXl9B,GACEv2K,EACEk5b,EAAc,IAAI5gS,GAAUygS,GAAa1/R,KAAK,IAC9C8/R,EAAmBD,EAAY/5iB,QAAQk6Q,KAAK,IAClD,MAAO,CACL,CAAC,GAAGy/R,kBAA2BA,kBAA4B,CACzDp2iB,SAAU,QACVq7X,gBAAiB,MACjBn7X,OAAQo9G,EAAMq6J,KAAKo5C,GAAa5mS,IAAI,GAAGyjJ,QACvCzyK,QAAS,OACTs5R,WAAY,SACZyT,eAAgB,SAChBtxS,MAAO0mH,EAAMu5b,uBACbvgjB,OAAQgnH,EAAMu5b,uBACd5jb,UAAW3V,EAAMq6J,KAAKr6J,EAAMu5b,wBAAwB7pV,KAAK,GAAG1B,IAAI,GAAG19C,QACnEh4I,MAAO0nF,EAAMo5b,sBACbvmb,WAAYqmb,EAAYh+R,cACxBwd,aAAc,MACd9hN,UAAW,mBACXvlD,OAAQ,UACRu2B,WAAY,OAAO2uO,IACnB70I,WAAY,OACZ,UAAW,CACT7uB,WAAYsmb,EAAiBj+R,eAE/B,aAAc,CACZ,aAAc,CACZ5iP,MAAO0ghB,EACPnmb,WAAY,cACZxhG,OAAQ,cACR,CAAC,KAAKojQ,KAAY,CAChBpjQ,OAAQ,iBAId,CAAC,KAAKojQ,KAAY,CAChBhgQ,SAAUurF,EAAMq5b,uBAGpB,CAAC,GAAGP,iBAA2B,CAC7BjuQ,iBAAkB7qL,EAAMqmL,UAE1B,CAAC,GAAGyyQ,kBAA4B,CAC9BnuQ,eAAgB3qL,EAAMqmL,UAEzB,EAEUmzQ,GAAuBx5b,IAClC,MAAM,cACJo4K,EAAa,WACb0gR,EAAU,mBACVviR,EAAkB,aAClBhC,GACEv0K,EACJ,MAAO,CAAC,CACN,CAAC,GAAGu0K,kBAA8B,CAChC,CAACukR,GAAa,CACZ9/iB,OAAQ,OACR+gC,UAAW,SACXy3M,cAAe,QAEjB,CAAC,GAAGsnU,UAAoBz7iB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGk4iB,MAAgB,CACtEh2iB,SAAU,WAEZ,CAAC,GAAGm2iB,SAAmB,CACrB1jhB,SAAU,OACVilS,UAAW,MACXrgS,cAAe,SACf48C,UAAW,mBACXvlD,OAAQ,OACRu2B,WAAY,aAAa2uO,KAAsB6B,OAC/C12I,WAAY,OACZ,YAAarkJ,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGk4iB,MAAgB,CAC3D/wf,WAAY,aAAa2uO,KAAsB6B,OAI/Cv6R,QAAS,OACT+sS,eAAgB,SAChBzT,WAAY,SACZ,QAAS,CACP3lD,cAAe,QAEjB,YAAa,CACX3zO,QAAS,eACTvE,MAAO,EACPN,OAAQ,MACR2hU,iBAAkB,EAClB7kT,QAAS,SAIf,CAAC,GAAGgjiB,YAAsB,CACxB,CAAC,GAAGA,iBAA2B,CAC7BznhB,OAAQ,WACR,YAAa,CACX4jhB,mBAAoB,UAO9B,CACE,CAAC,GAAG1gR,kBAA8B,CAChC,CAAC,GAAGukR,UAAoB,CACtBl2iB,OAAQo9G,EAAMyzM,eAKpB,CACE,CAAC,GAAGl/B,gCAA4C,CAC9C7xR,SAAU,QACVE,OAAQo9G,EAAMq6J,KAAKr6J,EAAMyzM,aAAa5mS,IAAI,GAAGyjJ,SAE/C,IAAK,CAACuoY,GAA0B74b,GAAQs5b,GAAsBt5b,KAC9D,EAEEy5b,GAAgBz5b,IACpB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CAEL,CAACu0K,GAAe,CACd7xR,SAAU,WACV7E,QAAS,eACT,CAAC,GAAG02R,SAAqB,CACvBj7R,MAAO,OACPN,OAAQ,OACRghC,cAAe,UAEjB,CAAC,GAAGu6P,qBAAiC,CACnCzxR,gBAAiBk9G,EAAM2jL,yBACvBtwK,gBAAiB,gpBACjBG,iBAAkB,YAClBD,mBAAoB,gBACpBI,eAAgB,OAElB,CAAC,GAAG4gK,UAAsBl3R,OAAOoD,OAAO,CAAC,EAAGm4iB,GAAkB54b,IAC9D,CAAC,GAAGu0K,gBAA4B,CAC9BvxR,QAAS,GAEX,CAAC,GAAGuxR,iBAA6Bl3R,OAAOoD,OAAO,CAAC,EAAGk4iB,OAEtD,EAEGe,GAAmB15b,IACvB,MAAM,WACJ84b,GACE94b,EACJ,MAAO,CACL,CAAC,GAAG84b,UAAoBlmP,GAAe5yM,EAAO,QAC9C,IAAKq5O,GAAer5O,GAAO,GAC5B,EAUH,GAAe+0K,GAAc,SAAS/0K,IACpC,MAAM84b,EAAa,GAAG94b,EAAMu0K,uBACtBolR,EAAa3nR,GAAWhyK,EAAO,CACnC84b,aACAC,YAAa,IAAIzgS,GAAU,QAAQe,KAAK,KAAM6B,cAE9Cq+R,uBAAwBv5b,EAAMk6K,kBAEhC,MAAO,CAACu/Q,GAAcE,GAAaH,GAAqBG,GAAapgN,GAAkBvnE,GAAW2nR,EAAY,CAC5GplR,aAAcukR,KACXY,GAAiBC,GAAY,IAjBC35b,IAAS,CAC5CyzM,YAAazzM,EAAMg5K,gBAAkB,GACrCogR,sBAAuB,IAAI9gS,GAAUt4J,EAAMkkL,qBAAqB7qB,KAAK,KAAM6B,cAC3E+9R,2BAA4B,IAAI3gS,GAAUt4J,EAAMkkL,qBAAqB7qB,KAAK,KAAM6B,cAChF89R,8BAA+B,IAAI1gS,GAAUt4J,EAAMkkL,qBAAqB7qB,KAAK,KAAM6B,cACnFm+R,qBAA2C,IAArBr5b,EAAM0kL,iBCtS9B,IAAI1B,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAiBO,MAAMqpf,GAAQ,CACnBm5B,WAAyBriV,EAAAA,cAAoB+sV,GAAoB,MACjEzK,YAA0BtiV,EAAAA,cAAoBitV,GAAqB,MACnErmP,OAAqB5mG,EAAAA,cAAoBqtV,GAAgB,MACzDvmP,QAAsB9mG,EAAAA,cAAoButV,GAAiB,MAC3DviiB,MAAoBg1M,EAAAA,cAAoBkjI,GAAe,MACvD11V,KAAmBwyN,EAAAA,cAAoBy0D,GAAc,MACrD98Q,MAAoBqoN,EAAAA,cAAoB20D,GAAe,MACvD4tR,MAAoBviV,EAAAA,cAAoBmtV,GAAc,MACtD3K,MAAoBxiV,EAAAA,cAAoBmtV,GAAc,CACpDrpX,OAAQ,MClCZ,IAAIg0G,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAYA,MAAMgzG,GAAQ7uF,IACZ,MACIyhM,UAAW2vC,EAAkB,QAC7B59H,EAAO,UACP9jJ,EAAS,cACT0wQ,EAAa,MACb3yQ,GACEuyC,EACJ68P,EAAa/I,GAAO9zP,EAAO,CAAC,YAAa,UAAW,YAAa,gBAAiB,WAC9E,aACJixO,EACAzmB,kBAAmB86D,EACnB51T,UAAW80O,EACX/2O,MAAO83T,EACP/xK,QAASk3Z,GACPl5R,GAAmB,UAChBm5R,GAAe1tN,GAAU,SAC1Bx7G,EAAYwvC,EAAa,QAASG,GAClCoT,EAAgBvT,IAEhBoT,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GACtDumR,EAAsBjvV,KAAWykD,EAAekV,EAAQ8nB,EAAW/Y,GACnEotH,EAAkB91L,KAAWjsN,EAAW4lR,EAAQ9wC,IAC/C9wO,GAAUsrT,GAAU,eAAmC,kBAAZxrK,EAAuBA,EAAQ9/I,YAAS0B,GACpFy1iB,EAAgB7uV,EAAAA,SAAc,KAClC,IAAgB,IAAZxoE,EACF,OAAOA,EAET,MAAMs3Z,EAA8B,kBAAZt3Z,EAAuBA,EAAU,CAAC,GACpD,aACFqlG,EAAY,UACZmnG,EAAS,cACT5/E,GACE0qS,EACJC,EAAmBj3Q,GAAOg3Q,EAAU,CAAC,eAAgB,YAAa,kBACpE,OAAO38iB,OAAOoD,OAAOpD,OAAOoD,OAAO,CACjCm7I,KAAoBsvE,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAW,GAAG+xO,eACAzlB,EAAAA,cAAoB27K,GAAa,MAAuB,OAAhBgzK,QAAwC,IAAhBA,OAAyB,EAASA,EAAYn3Z,SAC9H0xX,MAAKA,IACJ6lC,GAAmB,CACpB3qS,cAAezkD,KAAWivV,EAAqBxqS,GAC/CvnB,aAA+B,OAAjBA,QAA0C,IAAjBA,EAA0BA,EAAeysE,EAChF1kE,eAAgBD,GAAkB6jC,EAAe,OAAQsmR,EAASlqT,gBAClEuQ,mBAAoBxQ,GAAkB6jC,EAAe,OAAQsmR,EAAS35S,oBACtEz9P,SACAssV,UAAyB,OAAdA,QAAoC,IAAdA,EAAuBA,EAA+B,OAAnB0qN,QAA8C,IAAnBA,OAA4B,EAASA,EAAe1qN,WACnJ,GACD,CAACxsM,EAASm3Z,EAAgC,OAAnBD,QAA8C,IAAnBA,OAA4B,EAASA,EAAe1qN,YACnGr6F,EAAcx3P,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg0T,GAAe93T,GACnE,OAAO0vS,EAAwBnhF,EAAAA,cAAoBgvV,GAAS78iB,OAAOoD,OAAO,CACxEkwO,UAAWA,EACXjuF,QAASq3Z,EACTzqS,cAAewqS,EACfl7iB,UAAW+hZ,EACXhkZ,MAAOk4P,GACNk3C,IAAa,EAElBhuK,GAAM84a,aDzCuBljhB,IAC3B,IACI6hhB,iBAAkBl1R,EAAkB,QACpC59H,GACE/uH,EACJo4Q,EAAa/I,GAAOrvQ,EAAI,CAAC,mBAAoB,YAC/C,MAAM,aACJwsP,GACEj1D,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,QAASG,GAClCk1R,EAAmB,GAAG7kU,YACtB+iD,EAAgBvT,IAChBoT,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,IACrD3wR,GAAUsrT,GAAU,eAAmC,kBAAZxrK,EAAuBA,EAAQ9/I,YAAS0B,GACpFy1iB,EAAgB7uV,EAAAA,SAAc,KAClC,IAAIv3L,EACJ,IAAgB,IAAZ+uH,EACF,OAAOA,EAET,MAAMs3Z,EAA8B,kBAAZt3Z,EAAuBA,EAAU,CAAC,EACpDo3Z,EAAsBjvV,KAAW25D,EAAQ8nB,EAAW/Y,EAA2C,QAAjC5/P,EAAKqmhB,EAAS1qS,qBAAkC,IAAP37O,EAAgBA,EAAK,IAClI,OAAOt2B,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu5iB,GAAW,CAChDlqT,eAAgBD,GAAkB6jC,EAAe,OAAQsmR,EAASlqT,gBAClEuQ,mBAAoBxQ,GAAkB6jC,EAAe,OAAQsmR,EAAS35S,oBACtEiP,cAAewqS,EACfl3iB,UACA,GACD,CAAC8/I,IACJ,OAAO2pJ,EAAwBnhF,EAAAA,cAAoBgvV,GAAQrD,aAAcx5iB,OAAOoD,OAAO,CACrFiiJ,QAASq3Z,EACTvE,iBAAkBA,EAClBphC,MAAOA,IACNroO,IAAa,ECYlB,YClFA,SADuB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,oTAAwT,KAAQ,WAAY,MAAS,YCMnf,IAAIouQ,GAAmB,SAA0BjrgB,EAAON,GACtD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM8wW,KAEV,EAOA,SAJ2BlvV,EAAAA,WAAiBivV,mCCP5C,MAAQzjN,MAAK,GAAE1wB,KAAK,IAAI0wI,GA0LxB,GAtLmBp0T,IAA2C,IAA1C,QAAEgnT,EAAO,eAAEpC,EAAc,QAAE/3G,GAAS7sM,EACtD,MAAM1gF,EAAW2hS,MACX,WAAEunG,EAAU,QAAEzhU,EAAO,MAAEnnI,EAAK,gBAAE6oc,GAAoB/mG,IAAatiW,GAAUA,EAAMg0C,UAErF2uB,EAAAA,EAAAA,YAAU,KACJilY,IACF1nY,EAASynY,GAAoBC,IAC7B1nY,EAAS8oY,GAA0BpB,IACrC,GACC,CAAC1nY,EAAU0nY,IAGd,GADkBjgU,KAAsB,OAAVyhU,QAAU,IAAVA,GAAAA,EAAYtyc,QAC3B,OAAOs0a,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,SAAQ48C,UAACsxX,EAAAA,GAAAA,KAACzH,GAAI,CAACG,IAAI,iBACxD,GAAItja,EAAO,OAAO2qa,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,CAAK,wBAAsBt5C,EAAM2kE,SAAW,uBAC9D,IAAKikY,GAAoC,IAAtBA,EAAWtyc,OAAc,OAE5C,MAAMulD,EAAQ+sZ,EAAW,GACnBlB,GAAyB,OAAfmB,QAAe,IAAfA,OAAe,EAAfA,EAAkB,KAAM,CAAC,EAEnC6tB,EAAc9tB,EAAWx0a,QAAO,CAACuL,EAAK0H,IAAS1H,EAAM0H,EAAKhH,OAAO,GA+EjEu2Z,EAAej3U,GACZA,EAAOutD,QAAQ,GAIxB,OACE09P,EAAAA,GAAAA,KAACv/G,GAAK,CACJnqR,MAAO,WAAe,OAAL2a,QAAK,IAALA,OAAK,EAALA,EAAOyqZ,YAAa,YACrCt3M,QAASg2M,EACTt5G,SAAUuB,EACVhqT,OAAQ,EACN0nY,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,uBAAsB48C,SAAA,EACnCqxX,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EACFsxX,EAAAA,GAAAA,KAAC9mG,GAAI,CAAC2mI,QAAM,EAAC/tc,UAAU,UAAS48C,SAAC,oBACjCqxX,EAAAA,GAAAA,MAAC7mG,GAAI,CAAC2mI,QAAM,EAAC/tc,UAAU,uBAAsB48C,SAAA,CAAC,SAAEs9Y,EAAY8/B,GAAa,aAGzE9rD,EAAAA,GAAAA,KAACtrO,GAAM,CAAgB8H,MAAMwjO,EAAAA,GAAAA,KAACqtI,GAAgB,IAAK3ue,QA9FjC6ue,KAEtB,MAAMpjhB,EAAUt4B,SAASf,cAAc,OAGvCq5B,EAAQp4B,UAAY,i7BAkBuB,OAALk/C,QAAK,IAALA,OAAK,EAALA,EAAOyqZ,0DACP,IAAIh7a,KAAU,OAALuwB,QAAK,IAALA,OAAK,EAALA,EAAOu7a,WAAWghF,qEACrB,OAAP1wG,QAAO,IAAPA,OAAO,EAAPA,EAASC,gBAAiB,oDACrB,OAAPD,QAAO,IAAPA,OAAO,EAAPA,EAASE,yBAA0B,oDAC5B,OAAPF,QAAO,IAAPA,OAAO,EAAPA,EAASA,UAAW,iDAChB,OAAPA,QAAO,IAAPA,OAAO,EAAPA,EAASG,YAAa,goBAc9Ce,EAAWpmc,KAAI,CAAC6kC,EAAMhiC,IAAU,uFAEsBA,EAAQ,2EACRgiC,EAAKojY,aAAe,+EACpBpjY,EAAKgmV,UAAY,2EACjBupE,EAAYvvZ,EAAKumV,OAAS,2CAE/ExzX,KAAK,2LAMOw8b,EAAYgS,EAAWx0a,QAAO,CAACiM,EAAOgH,IAAShH,EAASgH,EAAKumV,MAAQvmV,EAAKgmV,UAAW,0BAK1G,MAAMh1X,EAAU,CACdtB,OAAQ,GACR2I,SAAU,WAAgB,OAALm8C,QAAK,IAALA,OAAK,EAALA,EAAOyqZ,gBAC5B3mc,MAAO,CAAExD,KAAM,MAAOyD,QAAS,GAC/BC,YAAa,CAAEo3I,MAAO,GACtBj/I,MAAO,CAAEG,KAAM,KAAMC,OAAQ,KAAMF,YAAa,aAIlD0vB,OACG9nB,KAAKi1B,GACLj2B,IAAIzG,GACJiK,MAAM,EAsBwE5F,UAAU,0BAAyB48C,SAAC,oBAArG,gBAKdliD,MAAO,IACPsiW,UAAQ,EACRh9V,UAAU,aAAY48C,UAGtBqxX,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAE09T,UAAW,QAASlhM,UAAW,OAAQvgG,QAAS,QAAS4iB,SAAA,EACrEqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,OAAM48C,SAAA,EACnBsxX,EAAAA,GAAAA,KAAC9mG,GAAI,CAAC2mI,QAAM,EAAAnxZ,SAAC,kBACbsxX,EAAAA,GAAAA,KAAC9mG,GAAI,CAAAxqR,SAAE,IAAIhuB,KAAU,OAALuwB,QAAK,IAALA,OAAK,EAALA,EAAOu7a,WAAWghF,0BAGnC1wG,GACC/8B,EAAAA,GAAAA,MAAC2kD,GAAI,CAAC5yd,UAAU,+BAA8B48C,SAAA,EAC5CsxX,EAAAA,GAAAA,KAACp2E,GAAK,CAACv6K,MAAO,EAAGv9K,UAAU,sBAAqB48C,SAAC,sBACjDqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,YAAW48C,SAAA,EACxBqxX,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EAAKqxX,EAAAA,GAAAA,MAAC7mG,GAAI,CAAC2mI,QAAM,EAAAnxZ,SAAA,EAACsxX,EAAAA,GAAAA,KAAChtE,GAAY,IAAG,iBAAkB,KAACgtE,EAAAA,GAAAA,KAAC9mG,GAAI,CAAAxqR,SAAS,OAAPouZ,QAAO,IAAPA,OAAO,EAAPA,EAASC,oBACrEh9B,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EAAKqxX,EAAAA,GAAAA,MAAC7mG,GAAI,CAAC2mI,QAAM,EAAAnxZ,SAAA,EAACsxX,EAAAA,GAAAA,KAACW,GAAa,IAAG,eAAgB,KAACX,EAAAA,GAAAA,KAAC9mG,GAAI,CAAAxqR,SAAS,OAAPouZ,QAAO,IAAPA,OAAO,EAAPA,EAASE,6BACpEj9B,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EAAKqxX,EAAAA,GAAAA,MAAC7mG,GAAI,CAAC2mI,QAAM,EAAAnxZ,SAAA,EAACsxX,EAAAA,GAAAA,KAACtsE,GAAY,IAAG,eAAgB,KAACssE,EAAAA,GAAAA,KAAC9mG,GAAI,CAAAxqR,SAAS,OAAPouZ,QAAO,IAAPA,OAAO,EAAPA,EAASA,cACnE/8B,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EAAKqxX,EAAAA,GAAAA,MAAC7mG,GAAI,CAAC2mI,QAAM,EAAAnxZ,SAAA,CAAC,KAACsxX,EAAAA,GAAAA,KAACw5B,GAAY,IAAG,YAAa,KAACx5B,EAAAA,GAAAA,KAAC9mG,GAAI,CAAAxqR,SAAS,OAAPouZ,QAAO,IAAPA,OAAO,EAAPA,EAASG,sBAIrEj9B,EAAAA,GAAAA,KAAC9mG,GAAI,CAAAxqR,SAAC,oCAGRsxX,EAAAA,GAAAA,KAAC96J,GAAO,IAEP84L,EAAWpmc,KAAI,CAAC6kC,EAAMhiC,KACrB,MAAM0xb,EAAgB,OAAJ1vZ,QAAI,IAAJA,OAAI,EAAJA,EAAM0vZ,UAClB3C,EAAW2C,EAAY,wDAA2CA,EAAUzob,MAAM,MAAM+4E,QAAU,KAExG,OACEsjV,EAAAA,GAAAA,MAAA,OAAiBjua,UAAU,mCAAkC48C,SAAA,EAC3DsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,gBAAe48C,SAC3B86Y,GACCxpB,EAAAA,GAAAA,KAAC/uS,GAAK,CACJ18H,IAAKi1b,EACL1yG,IAAI,UACJhlV,UAAU,wCACV8jJ,SAAS,KAGXoqR,EAAAA,GAAAA,KAAC9mG,GAAI,CAAC3nU,KAAK,SAAQm9C,SAAC,4BAGxBqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,SAAQ48C,SAAA,EACrBqxX,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EAAKsxX,EAAAA,GAAAA,KAAC9mG,GAAI,CAAC2mI,QAAM,EAAAnxZ,SAAC,kBAAoB,KAACsxX,EAAAA,GAAAA,KAAC9mG,GAAI,CAAAxqR,UAAM,OAAJjS,QAAI,IAAJA,OAAI,EAAJA,EAAMojY,cAAe,YACnEE,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EAAKsxX,EAAAA,GAAAA,KAAC9mG,GAAI,CAAC2mI,QAAM,EAAAnxZ,SAAC,cAAgB,KAACsxX,EAAAA,GAAAA,KAAC9mG,GAAI,CAAAxqR,UAAM,OAAJjS,QAAI,IAAJA,OAAI,EAAJA,EAAMgmV,WAAY,QAC5Ds9C,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EAAKsxX,EAAAA,GAAAA,KAAC9mG,GAAI,CAAC2mI,QAAM,EAAAnxZ,SAAC,WAAa,KAACqxX,EAAAA,GAAAA,MAAC7mG,GAAI,CAAAxqR,SAAA,CAAC,SAAEs9Y,GAAgB,OAAJvvZ,QAAI,IAAJA,OAAI,EAAJA,EAAMumV,QAAS,GAAG,iBAhBhEvoX,EAkBJ,KAIVula,EAAAA,GAAAA,KAAC96J,GAAO,QAIJ,0DCpDZ,GAjIyBuoS,KACvB,MAAM34e,EAAW2hS,KAEbi3M,EAAax2M,IAAatiW,GAAUA,EAAMg0C,QAAU,CAAEA,OAAQ,GAAI2zF,SAAS,EAAOnnI,MAAO,QAEzFwzC,EAAS8kgB,EAAW9kgB,QAAU,GAC9B2zF,EAAUmxa,EAAWnxa,UAAW,EAChCnnI,EAAQs4iB,EAAWt4iB,OAAS,KAG1Bw/T,EAAQ+4O,OACRC,EAAkBD,KAAO,aAAc,cACvCE,EAAgBj5O,EAAMviU,QAAQ0tB,IAAI,EAAG,SAEpC+thB,EAAWC,IAAgBj2e,EAAAA,EAAAA,UAAS,CAAC81e,EAAiBC,KACtDzzG,EAAgBC,IAAqBviY,EAAAA,EAAAA,WAAS,IAC9Ck2e,EAAiBC,IAAsBn2e,EAAAA,EAAAA,UAAS,MAEjDo2e,EAAiBp6iB,KAAKC,MAAMsuX,aAAahiR,QAAQ,aACjD66V,EAA2B,OAAdgzG,QAAc,IAAdA,OAAc,EAAdA,EAAgB/yG,uBAEnC5jY,EAAAA,EAAAA,YAAU,KACR,GAAI2jY,EAAY,CACd,MAAOhmc,EAAMG,GAAMy4iB,EAAUl2iB,KAAKgoB,GAASA,EAAKpyB,OAAO,gBACvDsnE,EAASinY,GAAsB,CAAE7mc,OAAMG,KAAI6lc,eAC7C,IACC,CAAC4yG,EAAW5yG,EAAYpmY,IAE3B,MAeMlvC,EAAU,CACd,CACE0Q,MAAO,WACP+2a,UAAW,UACXh+c,IAAK,UACLi9C,OAASkwZ,GAAYA,EAAQjtc,OAAO,IAEtC,CAAE+mC,MAAO,aAAc+2a,UAAW,YAAah+c,IAAK,aACpD,CAAEinC,MAAO,eAAgB+2a,UAAW,aAAch+c,IAAK,cACvD,CACEinC,MAAO,SACPjnC,IAAK,SACLi9C,OAAQA,CAAC5wB,EAAGi2c,KACV3xD,EAAAA,GAAAA,KAACx+H,GAAO,CAAClrQ,MAAM,aAAYoY,UACzBsxX,EAAAA,GAAAA,KAACjmC,GAAW,CACVjoY,UAAU,wCACV4sE,QAASA,KAAMyve,OAzBA3xG,EAyBgBm1B,EAAOn1B,QAxB9CyxG,EAAmBzxG,QACnBnC,GAAkB,GAFKmC,KAyBgC,QAOnD4xG,GAAqBxlgB,GAAU,IAClChxC,KAAI,CAACq5C,EAAOx2C,KAAK,CAChBpL,IAAKoL,EACL+hc,SAAc,OAALvrZ,QAAK,IAALA,OAAK,EAALA,EAAOyqZ,YAAa,MAC7B8wB,UAAWmhF,KAAY,OAAL18f,QAAK,IAALA,OAAK,EAALA,EAAOu7a,WAAWh/d,OAAO,eAAiB,MAC5Do9d,cAAmB,OAAL35a,QAAK,IAALA,OAAK,EAALA,EAAOo9f,WAAY,MACjCC,YAAiB,OAALr9f,QAAK,IAALA,OAAK,EAALA,EAAOq9f,aAAc,UAElClvhB,MAAK,CAAC3a,EAAGC,IACRipiB,KAAOjpiB,EAAE8nd,WAAWrqc,SAASwrhB,KAAOlpiB,EAAE+nd,YAAc,GAAK,IAG7D,OACEzsD,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,iDAAgD48C,SAAA,EAC7DsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,2CAA0C48C,SAAC,mBAElD,OAAN9F,QAAM,IAANA,OAAM,EAANA,EAAQl9C,QAAS,IAChBq0a,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,OAAM48C,SAAA,EACnBsxX,EAAAA,GAAAA,KAAA,SAAOlua,UAAU,UAAS48C,SAAC,yBAC3BsxX,EAAAA,GAAAA,KAAC9+G,GAAW81O,YAAW,CACrB7tiB,MAAO2kjB,EACPviU,SA3DgB5tF,IACpBA,GACFowZ,EAAapwZ,EACf,EAyDQnwJ,OAAO,aACPsE,UAAU,YAKrByqI,GACCyjS,EAAAA,GAAAA,KAACzH,GAAI,CAAC3rZ,KAAK,UACTxX,GACF2qa,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,eAAc48C,SAAA,CAAC,UAAQt5C,KAClCwzC,EAAOl9C,OAAS,GAClBs0a,EAAAA,GAAAA,KAACprY,GAAK,CACJ+mY,WAAYyyI,EACZxohB,QAASA,EACTg2Y,OAAO,MACP19F,WAAY,CAAEhzU,SAAU,OAG1B60a,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,mCAAkC48C,SAAA,EAC/CsxX,EAAAA,GAAAA,KAAA,OAAKzra,IAAKg6iB,GAAUz3N,IAAI,YAAYhlV,UAAU,oBAC9Ckua,EAAAA,GAAAA,KAAA,KAAGlua,UAAU,6BAA4B48C,SAAC,6BAC1CsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAAC0/H,GAAgB,IACvB9yhB,KAAK,QACL8xD,QAASA,IAAO5uE,OAAO2H,SAAS/K,KAAO,QACvCoF,UAAU,wBAAuB48C,SAClC,uBAMCsxX,EAAAA,GAAAA,KAACwuI,GAAU,CACThyG,QAASwxG,EACT5zG,eAAgBA,EAChB/3G,QApFmBosN,KACvBp0G,GAAkB,EAAM,MAqFlB,ECnIV,IAAInkK,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EASA,SAAS+kF,GAAUwyC,GACjB,IAAI,UACF+9H,EAAS,QACT3hR,EAAO,YACPw6C,GACEopG,EACJ,OAAOk5Z,GACwBtwV,EAAAA,YAAiB,CAACh8K,EAAON,IAAsBs8K,EAAAA,cAAoBswV,EAAgBn+iB,OAAOoD,OAAO,CAC5HmuC,IAAKA,EACLyxO,UAAWA,EACX3hR,QAASA,GACRwwC,KAMP,CACA,MAAMusgB,GAAqBvwV,EAAAA,YAAiB,CAACh8K,EAAON,KAClD,MACI+hM,UAAW2vC,EAAkB,UAC7BD,EAAS,UACTzhR,EACAF,QAASg9iB,GACPxsgB,EACJ49Q,EAAS9pB,GAAO9zP,EAAO,CAAC,YAAa,YAAa,YAAa,aAC3D,aACJixO,GACEj1D,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,SAAUG,IAClCq7R,EAASn3R,EAAQ8nB,GAAalX,GAASzkD,GACxCirU,EAAsBv7R,EAAY,GAAG1vC,KAAa0vC,IAAc1vC,EACtE,OAAOgrU,EAAqBzwV,EAAAA,cAAoBwwV,EAASr+iB,OAAOoD,OAAO,CACrE7B,UAAWisN,KAAWy1D,GAAsBs7R,EAAqBh9iB,EAAW4lR,EAAQ8nB,GACpF19P,IAAKA,GACJk+Q,IAAS,IAER+uP,GAA2B3wV,EAAAA,YAAiB,CAACh8K,EAAON,KACxD,MAAM,UACJkmF,GACEo2F,EAAAA,WAAiBg1D,KACd47R,EAAQC,GAAa7wV,EAAAA,SAAe,KAEvCylB,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,SACb9zN,EAAQ,SACRwggB,EACAt9iB,QAASu9iB,EAAG,MACZt/iB,GACEuyC,EAEAm2M,EAAczlJ,GADTojM,GAAO9zP,EAAO,CAAC,YAAa,YAAa,gBAAiB,WAAY,WAAY,UAAW,UACvE,CAAC,eAC5B,aACJixO,EACAvhR,UAAW80O,EACX/2O,MAAO83T,GACL/zC,GAAmB,UACjB/vC,EAAYwvC,EAAa,SAAUG,GACnC47R,EC5EO,SAAqBJ,EAAQtggB,EAAUwggB,GACpD,MAAwB,mBAAbA,EACFA,IAELF,EAAOtjjB,QAGQqmG,GAAQrjD,GACT/yC,MAAKxJ,GAAQA,EAAKZ,OAAS89iB,IAC/C,CDmEyBC,CAAYN,EAAQtggB,EAAUwggB,IAC9C3vQ,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3CwuC,EAAct0D,KAAW8lB,EAAW,CACxC,CAAC,GAAGA,eAAwBurU,EAC5B,CAAC,GAAGvrU,SAAgC,QAAd77G,GACrB4+G,EAAkB90O,EAAW0wQ,EAAekV,EAAQ8nB,GACjDgB,EAAepiF,EAAAA,SAAc,KAAM,CACvC21D,UAAW,CACTC,SAAUhmQ,IACRihiB,GAAU9nhB,GAAQ,GAAGp4B,OAAOw+O,GAAmBpmN,GAAO,CAACnZ,KAAK,EAE9DimQ,YAAajmQ,IACXihiB,GAAU9nhB,GAAQA,EAAKzrB,QAAO2nO,GAAaA,IAAcr1N,KAAI,MAG/D,IACJ,OAAOuxR,EAAwBnhF,EAAAA,cAAoB01D,GAActyK,SAAU,CACzEr4G,MAAOq3S,GACOpiF,EAAAA,cAAoB+wV,EAAK5+iB,OAAOoD,OAAO,CACrDmuC,IAAKA,EACLhwC,UAAWugR,EACXxiR,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg0T,GAAe93T,IACrD0oP,GAAc7pM,IAAW,IAExB6ggB,GAASvsc,GAAU,CACvBpxG,QAAS,MACTw6C,YAAa,UAFA42D,CAGZ+rc,IACG7zH,GAASl4U,GAAU,CACvBuwK,UAAW,SACX3hR,QAAS,SACTw6C,YAAa,UAHA42D,CAIZ2rc,IACG1jN,GAASjoP,GAAU,CACvBuwK,UAAW,SACX3hR,QAAS,SACTw6C,YAAa,UAHA42D,CAIZ2rc,IACGhrN,GAAU3gP,GAAU,CACxBuwK,UAAW,UACX3hR,QAAS,OACTw6C,YAAa,WAHC42D,CAIb2rc,IEpHGY,GFsHN,GErHAA,GAAOr0H,OAASA,GAChBq0H,GAAOtkN,OAASA,GAChBskN,GAAO5rN,QAAUA,GACjB4rN,GAAOF,MAAQA,GACfE,GAAOC,sBAAwBlxQ,GAC/B,YCPA,MCAA,MCDA,SADuB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAC,EAAG,SAAY,CAAC,CAAE,IAAO,QAAS,MAAS,CAAC,KAAQ,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,sVAAyV,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,qUAAwU,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,+RAAmS,KAAQ,WAAY,MAAS,YCMhxC,IAAImxQ,GAAmB,SAA0BrtgB,EAAON,GACtD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMkzW,KAEV,EAOA,SAJ2BtxV,EAAAA,WAAiBqxV,ICb5C,SADqB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,+zBAAm0B,KAAQ,SAAU,MAAS,YCM1/B,IAAIE,GAAiB,SAAwBvtgB,EAAON,GAClD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMozW,KAEV,EAOA,SAJ2BxxV,EAAAA,WAAiBuxV,ICb5C,SADqB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,w7BAA47B,KAAQ,SAAU,MAAS,YCMnnC,IAAIE,GAAiB,SAAwBztgB,EAAON,GAClD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMszW,KAEV,EAOA,SAJ2B1xV,EAAAA,WAAiByxV,ICb5C,SAD8B,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,yUAA6U,KAAQ,mBAAoB,MAAS,YCMvhB,IAAIE,GAA0B,SAAiC3tgB,EAAON,GACpE,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMwzW,KAEV,EAOA,SAJ2B5xV,EAAAA,WAAiB2xV,+HCoJ5C,GA5JcE,KACZ,MAAM,QAAEtsN,GAAY4rN,IACd,MAAE3lN,EAAK,UAAEI,GAAc4/G,IACvB,QAAEgV,GAAY2D,GAOpB,OAJAhrZ,EAAAA,EAAAA,YAAU,KACRznE,OAAOyrI,SAAS,EAAG,EAAE,GACpB,KAGDwkS,EAAAA,GAAAA,MAAAqoB,GAAAA,SAAA,CAAA15Y,SAAA,EACEqxX,EAAAA,GAAAA,MAACnyC,GAAM,CAAAl/U,SAAA,EACLsxX,EAAAA,GAAAA,KAAA,SAAAtxX,SAAO,+BACPsxX,EAAAA,GAAAA,KAAA,QACExna,KAAK,cACLwQ,QAAQ,yLAEVg3Z,EAAAA,GAAAA,KAAA,QACExna,KAAK,WACLwQ,QAAQ,mHAEVg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,SAASwQ,QAAQ,+BAC5Bg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,SAASwQ,QAAQ,mBAC5Bg3Z,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,WAAWx3E,QAAQ,qCAClCg3Z,EAAAA,GAAAA,KAAA,QACEx/U,SAAS,iBACTx3E,QAAQ,+GAEVg3Z,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,WAAWx3E,QAASkniB,MACnClwI,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,SAASx3E,QAAQ,yCAChCg3Z,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,UAAUx3E,QAAQ,aACjCg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,eAAewQ,QAAQ,yBAClCg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,gBAAgBwQ,QAAQ,qCACnCg3Z,EAAAA,GAAAA,KAAA,QACExna,KAAK,sBACLwQ,QAAQ,mEAEVg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,gBAAgBwQ,QAASkniB,SAGtClwI,EAAAA,GAAAA,KAACuvI,GAAM,CAAA7ggB,UACLsxX,EAAAA,GAAAA,KAACr8E,EAAO,CAAC7xV,UAAU,YAAW48C,UAC5BqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,0BAAyB48C,SAAA,EAEtCqxX,EAAAA,GAAAA,MAACprY,GAAG,CAAC0rW,OAAQ,CAAC,GAAI,IAAKvuY,UAAU,qBAAoB48C,SAAA,EACnDqxX,EAAAA,GAAAA,MAACnF,GAAG,CAAC18H,GAAI,GAAI3iP,GAAI,GAAG7M,SAAA,EAClBsxX,EAAAA,GAAAA,KAACp2E,EAAK,CAACv6K,MAAO,EAAGv9K,UAAU,eAAc48C,SAAC,cAC1CsxX,EAAAA,GAAAA,KAACh2E,EAAS,CAACl4V,UAAU,oBAAmB48C,SAAC,oUAKzCsxX,EAAAA,GAAAA,KAACh2E,EAAS,CAACl4V,UAAU,oBAAmB48C,SAAC,oHAI3CsxX,EAAAA,GAAAA,KAACpF,GAAG,CAAC18H,GAAI,GAAI3iP,GAAI,GAAG7M,UAClBsxX,EAAAA,GAAAA,KAAA,OACEzra,IAAK27iB,GACLp5N,IAAI,4CACJhlV,UAAU,sCAMhBiua,EAAAA,GAAAA,MAACprY,GAAG,CAAC0rW,OAAQ,CAAC,GAAI,IAAKvuY,UAAU,QAAO48C,SAAA,EACtCsxX,EAAAA,GAAAA,KAACpF,GAAG,CAAC18H,GAAI,GAAI3iP,GAAI,GAAG7M,UAClBsxX,EAAAA,GAAAA,KAAA,OACEzra,IAAK47iB,GACLr5N,IAAI,6CACJhlV,UAAU,mCAGdkua,EAAAA,GAAAA,KAACpF,GAAG,CAAC18H,GAAI,GAAI3iP,GAAI,GAAG7M,UAClBqxX,EAAAA,GAAAA,MAACwiD,GAAI,CAACjD,iBAAiB,IAAI/td,KAAK,OAAOu9V,UAAQ,EAAApgT,SAAA,EAC7CqxX,EAAAA,GAAAA,MAAC6+C,EAAO,CAAC3J,IAAI,SAAQvma,SAAA,EACnBsxX,EAAAA,GAAAA,KAACp2E,EAAK,CAACv6K,MAAO,EAAGv9K,UAAU,eAAc48C,SAAC,gBAC1CsxX,EAAAA,GAAAA,KAACh2E,EAAS,CAAAt7S,SAAC,kMAFa,MAO1BqxX,EAAAA,GAAAA,MAAC6+C,EAAO,CAAC3J,IAAI,UAASvma,SAAA,EACpBsxX,EAAAA,GAAAA,KAACp2E,EAAK,CAACv6K,MAAO,EAAGv9K,UAAU,eAAc48C,SAAC,iBAC1CsxX,EAAAA,GAAAA,KAACh2E,EAAS,CAAAt7S,SAAC,wJAFc,MAO3BqxX,EAAAA,GAAAA,MAAC6+C,EAAO,CAAC3J,IAAI,SAAQvma,SAAA,EACnBsxX,EAAAA,GAAAA,KAACp2E,EAAK,CAACv6K,MAAO,EAAGv9K,UAAU,eAAc48C,SAAC,gBAC1CqxX,EAAAA,GAAAA,MAAA,MAAIjua,UAAU,yBAAwB48C,SAAA,EACpCsxX,EAAAA,GAAAA,KAAA,MAAAtxX,SAAI,eACJsxX,EAAAA,GAAAA,KAAA,MAAAtxX,SAAI,oBACJsxX,EAAAA,GAAAA,KAAA,MAAAtxX,SAAI,2BACJsxX,EAAAA,GAAAA,KAAA,MAAAtxX,SAAI,kBANkB,cAahCsxX,EAAAA,GAAAA,KAAC96J,GAAO,CAACpzQ,UAAU,WAGnBkua,EAAAA,GAAAA,KAACrrY,GAAG,CAAC7iC,UAAU,QAAO48C,UACpBqxX,EAAAA,GAAAA,MAACnF,GAAG,CAAC18H,GAAI,GAAGxvP,SAAA,EACVsxX,EAAAA,GAAAA,KAACp2E,EAAK,CAACv6K,MAAO,EAAGv9K,UAAU,iCAAgC48C,SAAC,mBAG5DsxX,EAAAA,GAAAA,KAACrrY,GAAG,CAAC0rW,OAAQ,CAAC,GAAI,IAAKD,QAAQ,SAAQ1xV,SACpC,CACC,CACE8tJ,MAAMwjO,EAAAA,GAAAA,KAACyvI,GAAgB,CAAC39iB,UAAU,0BAClCwkC,MAAO,mBACPnkB,YAAa,uDAEf,CACEqqL,MAAMwjO,EAAAA,GAAAA,KAAC2vI,GAAc,CAAC79iB,UAAU,4BAChCwkC,MAAO,qBACPnkB,YAAa,qDAEf,CACEqqL,MAAMwjO,EAAAA,GAAAA,KAAC6vI,GAAc,CAAC/9iB,UAAU,4BAChCwkC,MAAO,gBACPnkB,YAAa,iDAEf,CACEqqL,MAAMwjO,EAAAA,GAAAA,KAAC+vI,GAAuB,CAACj+iB,UAAU,4BACzCwkC,MAAO,oBACPnkB,YAAa,uDAEfva,KAAI,CAAC6kC,EAAMhiC,KACXula,EAAAA,GAAAA,KAACpF,GAAG,CAAC18H,GAAI,GAAIC,GAAI,GAAI5iP,GAAI,EAAE7M,UACzBqxX,EAAAA,GAAAA,MAAC2kD,GAAI,CACH5B,WAAS,EACThxd,UAAU,uCAAsC48C,SAAA,CAE/CjS,EAAK+/J,MACNwjO,EAAAA,GAAAA,KAACh2E,EAAS,CAAC61G,QAAM,EAAC/tc,UAAU,eAAc48C,SAAEjS,EAAKnG,SACjD0pY,EAAAA,GAAAA,KAACh2E,EAAS,CAACl4V,UAAU,gBAAe48C,SAAEjS,EAAKtqB,kBAPd1X,qBAiB9C,ECpEP,GA1FsCy4G,IACpC,MAAM,aACJu0K,EAAY,uBACZ2oR,EAAsB,mBACtBC,GACEn9b,EACE48V,EAAY,GAAGroL,WACf6oR,EAAc,IAAIrrP,GAAU,wBAAyB,CACzD,KAAM,CACJn7O,UAAW,0BACX5zE,QAAS,GAEX,OAAQ,CACN4zE,UAAW,uBACX5zE,QAAS,KAGPq6iB,EAAY,IAAItrP,GAAU,2BAA4B,CAC1D,KAAM,CACJp5T,KAAMwkjB,EACNn6iB,QAAS,GAEX,OAAQ,CACNrK,IAAK,EACLqK,QAAS,KAGPs6iB,EAAe,IAAIvrP,GAAU,8BAA+B,CAChE,KAAM,CACJt0T,OAAQuiH,EAAMq6J,KAAK8iS,GAAoBztV,KAAK,GAAGp/C,QAC/CttK,QAAS,GAEX,OAAQ,CACNvF,OAAQ,EACRuF,QAAS,KAGPu6iB,EAAa,IAAIxrP,GAAU,4BAA6B,CAC5D,KAAM,CACJn7O,UAAW,2BACX5zE,QAAS,GAEX,OAAQ,CACN4zE,UAAW,uBACX5zE,QAAS,KAGb,MAAO,CACL,CAACuxR,GAAe,CACd,CAAC,IAAIA,WAAsBA,YAAwB,CACjDwlC,aAAc,EACd,CAAC6iJ,GAAY,CACX7iJ,aAAc,cAGlB,CAAC,IAAIxlC,SAAqB,CACxB,CAAC,GAAGA,eAA0BA,wBAAmCA,gBAA2BA,wBAAoC,CAC9HxoO,cAAesxf,IAGnB,CAAC,IAAI9oR,YAAwB,CAC3B,CAAC,GAAGA,eAA0BA,wBAAmCA,gBAA2BA,wBAAoC,CAC9HxoO,cAAeuxf,IAGnB,CAAC,IAAI/oR,gBAA2BA,iBAA6B,CAC3D,CAAC,GAAGA,eAA0BA,wBAAmCA,gBAA2BA,wBAAoC,CAC9HxoO,cAAeqxf,IAGnB,CAAC,IAAI7oR,eAA0BA,gBAA4B,CACzD3+J,YAAa,CACX3/H,MAAO,EACP05T,cAAc,GAEhB75L,WAAY,CACV7/H,MAAOinjB,EACPvtP,cAAc,GAEhB,CAACitJ,GAAY,CACXjiJ,gBAAiB,OACjBD,kBAAmB,GAErB,CAAC,GAAGnmC,eAA0BA,wBAAmCA,gBAA2BA,wBAAoC,CAC9HxoO,cAAewxf,KAItB,ECzFUC,GAAyB,CAAC,MAAO,UAAW,WAAY,SAAU,aAAc,eCCvFC,GAAyB,CAC7BpvS,QAAS,OACTC,SAAU,QACVC,WAAY,OACZC,YAAa,QACb71Q,IAAK,OACL8E,OAAQ,QAkBJigjB,GAAwB19b,IAC5B,MAAMwkO,EAAgB,CAAC,EACvB,IAAK,IAAIjsV,EAAI,EAAGA,EAAIynH,EAAM29b,uBAAwBpljB,IAChDisV,EAAc,oBAAoBjsV,EAAI,MAAQ,CAC5CoK,SAAU,SACV,CAAC,OAAOq9G,EAAMu0K,uBAAwB,CACpCvxR,QAAS,EACT4kD,WAAY,WAAWo4D,EAAMkiL,sBAInC,OAAO7kS,OAAOoD,OAAO,CACnB,CAAC,4BAA4Bu/G,EAAM29b,4BAA6B,CAC9D36iB,QAAS,EACTL,SAAU,SACV21B,MAAO,cACPk5M,cAAe,SAEhBgzG,EAAc,EAEbo5N,GAAwB59b,IAC5B,MAAMwkO,EAAgB,CAAC,EACvB,IAAK,IAAIjsV,EAAI,EAAGA,EAAIynH,EAAM29b,uBAAwBpljB,IAChDisV,EAAc,oBAAoBjsV,EAAI,MAAQ,CAC5Cs6H,WAAY7S,EAAMk9K,YAClB2gR,eAAgB,aAChB,0BAA2B,cAG/B,OAAOxgjB,OAAOoD,OAAO,CAAC,EAAG+jV,EAAc,EA0CzC,GAxCsBxkO,IACpB,MAAM,aACJu0K,GACEv0K,EACJ,OAAO3iH,OAAOoD,OAAO,CACnB,CAAC,GAAG8zR,WAAuB,CACzB,CAAC,OAAOA,oBAAgCl3R,OAAOoD,OAAO,CACpDmnD,WAAY,aAAao4D,EAAMu2K,yCAC/BunR,WAAY,qBACZp7iB,SAAU,YACTg7iB,GAAsB19b,KAE3B,CAAC,GAAGu0K,eAA0BA,qBAAiC,CAC7D,CAAC,OAAOA,oBAAgCl3R,OAAOoD,OAAO,CAAC,EAAGm9iB,GAAsB59b,KAElF,CAAC,GAAGu0K,UAAqBA,oBAAgC,CACvD,CAAC,OAAOA,oBAAgC,CACtC,iCAAkC,CAChCvxR,QAAS,EACTL,SAAU,QACV21B,MAAO,UACPk5M,cAAe,OACf,CAAC,OAAOxxH,EAAMu0K,uBAAwB,CACpCvxR,QAAS,IAGb,UAAW,CACT8S,QAAS,KACTpT,SAAU,WACV1J,OAAQgnH,EAAM/mH,OACdK,MAAO,OACPo2T,YAAa,EACbjyT,OAAQuiH,EAAMq6J,KAAKr6J,EAAM/mH,QAAQy2N,KAAK,GAAGp/C,QACzCz9C,WAAY,cACZ2+G,cAAe,WAIpBgsU,GAAuB94iB,KAAI++P,GArFDs6S,EAAC/9b,EAAOyjJ,KACrC,MAAM,aACJ8wB,GACEv0K,EACJ,MAAO,CACL,CAAC,GAAGu0K,KAAgB9wB,KAAc,CAChC,CAAC,IAAI8wB,aAAwBA,oBAAgC,CAC3D,CAAC9wB,EAAU95J,WAAW,OAAS,MAAQ,UAAW,EAClD,CAAC8zc,GAAuBh6S,IAAa,CACnCxtQ,MAAO,EACP05T,cAAc,KAIrB,EAuE0CouP,CAAuB/9b,EAAOyjJ,KAAYntO,QAAO,CAACuL,EAAK07P,IAAQlgS,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGohC,GAAM07P,IAAM,CAAC,GAAG,ECxF/IygR,GAAiBh+b,IAC5B,MAAM,QACJy0K,EAAO,aACPF,EAAY,UAEZh8J,EAAS,WACToiK,EAAU,yBACVsjR,EAAwB,eACxBnkR,EAAc,aACdtC,EAAY,UACZG,EAAS,aACTF,EAAY,WACZC,EAAU,iBACVqM,EAAgB,eAChBm6Q,EAAc,oBACdC,EAAmB,uBACnBjB,EAAsB,uBACtBkB,EAAsB,2BACtBC,EAA0B,SAC1B5phB,EAAQ,WACRE,EAAU,MACVr7B,EAAK,qBACLgljB,EAAoB,UACpBpoR,GACEl2K,EACE48V,EAAY,GAAGroL,WACrB,MAAO,CACL7xR,SAAU,WACVmzH,aAAcoob,EACdvjP,kBAAmB,OACnB7nM,WAAYqrb,EACZxlR,aAAcoB,EACdvhK,YACA,CAACqkV,GAAY,CACXhkb,QAASulhB,EACT7kjB,QACA87B,SAAU,gBAAgB/6B,GAAK2lH,EAAMq6J,KAAK6iS,GAAwBxtV,IAAI,GAAGp/C,YACzE3tK,SAAU,SACVgyB,aACAi/R,SAAU,cAEZ,CAAC,GAAGgpJ,aAAsB,CACxB/mV,aAAc7V,EAAMomL,SACpB9tQ,MAAOyrQ,EACPtvQ,SAAUkmQ,EACVhmQ,WAAYqrF,EAAM66K,cAEpB,CAAC,GAAG+hL,iBAA0B,CAC5Bnob,WACA6D,MAAO49P,GAET,CAAC,GAAG0mL,cAAsBA,aAAsB,CAC9C3iJ,iBAAkBj6M,EAAM2lL,WAE1B,CAAC,GAAGi3K,eAAuBA,aAAsB,CAC/C/mV,aAAc7V,EAAMomL,SACpBs0B,kBAAmB16M,EAAMq6J,KAAKr6J,EAAMqmL,UAAUx5Q,IAAIyxhB,GAAsBhuY,QACxE77I,SAAUkmQ,GAEZ,CAAC,GAAGiiL,eAAuBA,iBAA0B,CACnDliJ,kBAAmB16M,EAAMq6J,KAAKr6J,EAAMqmL,UAAUx5Q,IAAIyxhB,GAAsBhuY,QACxE77I,YAKF,CAAC,GAAGmob,UAAmB,CACrBl6c,SAAU,WACV+xB,SAAU6phB,EACV3phB,WAAY,EAEZ,CAAC,YAAY8/P,KAAY,CACvBn8P,MAAOk/P,GAET,CAAC,SAAS/C,KAAY,CACpBn8P,MAAOq/P,GAET,CAAC,YAAYlD,KAAY,CACvBn8P,MAAOm/P,GAET,CAAC,UAAUhD,KAAY,CACrBn8P,MAAOo/P,IAGX,CAAC,GAAGklL,WAAoBv/c,OAAOoD,OAAO,CACpCiC,SAAU,WACV/J,IAAKqnH,EAAMu+b,4BACX5zQ,eAAgB3qL,EAAMw+b,8BACtBlmhB,MAAO0nF,EAAMskL,UACbx3F,QAAS,OACTxzM,MAAO0mH,EAAMy+b,4BACbzljB,OAAQgnH,EAAMy+b,4BACd/lR,aAAc14K,EAAM65K,eACpBjyO,WAAY,oBAAoBo4D,EAAMkiL,4BAA4BliL,EAAMkiL,oBACxErkS,QAAS,OACTs5R,WAAY,SACZyT,eAAgB,SAChB,UAAW,CACTtyQ,MAAO0nF,EAAMukL,eACbzhS,gBAAiBk9G,EAAMokL,kBAEzB,WAAY,CACVthS,gBAAiBk9G,EAAMqkL,oBAExBpN,GAAcj3K,IACjB,CAAC,GAAG48V,cAAuB,CACzBl6c,SAAU,WACV7E,QAAS,QACTu/Z,WAAY,OACZZ,iBAAkB,OAClBkiJ,WAAY,eAAerkjB,GAAKy/R,UAChCphS,KAAM,CACJi3T,cAAc,EACd15T,MAAO6jS,GAETj3R,MAAO,CACL8sT,cAAc,EACd15T,MAAO6jS,GAETr8R,OAAQ,EACRkhjB,UAAWN,EACXlya,OAAQ,EACR,6BAA8B,CAC5BusJ,aAAcoB,EACdh3R,gBAAiB,uBAEnB,uBAAwB,CACtB+vH,WAAYurb,GAEd,4BAA6B,CAC3B1lR,aAAcoB,EACdjnK,WAAYurb,IAGhB,CAAC,GAAGxhG,aAAsB,CACxB3nV,MAAO,QACPU,UAAW3V,EAAMqmL,UAEpB,EAEGu4Q,GAAuB5+b,IAC3B,MAAM,aACJu0K,EAAY,yBAEZ0pR,EAAwB,uBACxBf,EAAsB,kBACtBh7Q,EAAiB,gBACjB7J,GACEr4K,EACE48V,EAAY,GAAGroL,WACf6kE,EAAU,IAAIrnC,GAAU,yBAA0B,CACtD,KAAM,CACJsI,UAAWr6M,EAAMm9b,mBACjBtnb,aAAcoob,GAEhB,OAAQ,CACN5jP,UAAW,EACXxkM,aAAc,EACdh9F,WAAY,EACZE,cAAe,EACf/1B,QAAS,KAGb,MAAO,CAEP,CACE,CAACuxR,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACtEt9G,SAAU,QACVE,OAAQo9G,EAAMyzM,YACd79L,YAAa,CACX3/H,MAAOinjB,EACPvtP,cAAc,GAEhB,CAAC,GAAGp7B,iBAA6B,CAC/B7xR,SAAU,YAGZ,CAAC,GAAG6xR,yBAAqC,CACvCvxR,QAAS,gBAEX,CAAC,GAAGuxR,iBAA4BA,iBAA6B,CAC3Dx7J,kBAAmB/Y,EAAMkiL,kBACzB2wB,wBAAyBx6B,EACzBk5B,kBAAmB,OACnBvuT,QAAS,EACT6uT,mBAAoB,UAEtB,CAAC,GAAGt9B,gBAA4B,CAC9Bs+B,wBAAyBx6B,EACzBk5B,kBAAmB,OACnBx4L,kBAAmBmpK,EACnB2vB,mBAAoB,UAEtB,CAAC,GAAGt9B,eAA0BA,wBAAmCA,gBAA2BA,wBAAoC,CAC9Hs9B,mBAAoB,WAEtB,CAAC,GAAGt9B,eAA0BA,uBAAmC,CAC/DxoO,cAAeqtS,EACfvnC,mBAAoB,WAGtB,QAAS,CACP/8L,UAAW,MACX,CAAC,GAAG8nV,aAAsB,CACxB3nV,MAAO,YAMf,CACE,CAACs/J,GAAe,CACd,CAAC,GAAGqoL,aAAsBv/c,OAAOoD,OAAO,CAAC,EAAGu9iB,GAAeh+b,MAE7D,EAGS2pL,GAAwB3pL,IAAS,CAC5CyzM,YAAazzM,EAAMg5K,gBAAkBq0B,GAAuB,GAC5D/zT,MAAO,MAEIuljB,GAA2B7+b,IACtC,MAAMu+b,EAA8Bv+b,EAAM0lL,UACpC84Q,EAAgCx+b,EAAM2lL,UAe5C,OAd0B3T,GAAWhyK,EAAO,CAC1Ck+b,eAAgBl+b,EAAMg9K,gBACtBuhR,8BACAC,gCACAF,qBAAsBt+b,EAAMq6J,KAAKr6J,EAAM26K,YAAYjrE,IAAI1vG,EAAM66K,cAAcvqH,QAC3EmuY,4BAA6Bz+b,EAAMq6J,KAAKr6J,EAAMk6K,iBAAiBxqE,IAAI,KAAMp/C,QACzE2tY,yBAA0Bj+b,EAAM/mH,OAChCkljB,oBAAqB,GAAG9jjB,GAAK2lH,EAAM0lL,cAAcrrS,GAAK2lH,EAAM6lL,8BAC5Dq3Q,uBAAwBl9b,EAAMumL,SAC9B42Q,mBAAoB,IACpBQ,uBAAwB,EACxBU,2BAA4B,EAC5BD,uBAAwB,0BAA0Bp+b,EAAMw+K,4BAA4Bx+K,EAAMu3K,iBAEpE,EAE1B,GAAexC,GAAc,gBAAgB/0K,IAC3C,MAAM8+b,EAAoBD,GAAyB7+b,GACnD,MAAO,CAAC4+b,GAAqBE,GAAoBC,GAA8BD,GAAoBE,GAAcF,GAAmB,GACnIn1Q,ICtPH,GAAe/T,GAAqB,CAAC,eAAgB,cAAc51K,IACjE,MAAM48V,EAAY,GAAG58V,EAAMu0K,sBACrBuqR,EAAoBD,GAAyB7+b,GACnD,MAAO,CACL,CAAC,GAAG48V,gBAAyBv/c,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu9iB,GAAec,IAAqB,CAC/FxljB,MAAOwljB,EAAkBxljB,MACzB87B,SAAU,gBAAgB/6B,GAAK2lH,EAAMq6J,KAAKykS,EAAkB5B,wBAAwBxtV,IAAI,GAAGp/C,YAC3Fr3K,OAAQ,IAEX,GACA0wS,ICXH,IAAI3G,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAsBO,SAASk0hB,GAAatuU,EAAWu+G,GACtC,OAAkB,OAAdA,IAAoC,IAAdA,EACjB,KAEFA,GAA0BhkI,EAAAA,cAAoBkjI,GAAe,CAClExvV,UAAW,GAAG+xO,gBAElB,CACA,MAAMuuU,GAAa,CACjB79Z,QAASsqM,GACT9hN,KAAMoiN,GACN/pV,MAAO2pV,GACP51H,QAAS81H,IAEEmxH,GAAchua,IACzB,MAAM,UACJyhM,EAAS,KACTrnC,EAAI,KACJjrM,EAAI,QACJwoE,EAAO,YACP5nD,EAAW,QACX6yE,EAAO,KACP2zJ,EAAO,SACLv2M,EACJ,IAAI81M,EAAW,KAUf,OATI17C,EACF07C,EAAwB95B,EAAAA,cAAoB,OAAQ,CAClDtsN,UAAW,GAAG+xO,UACbrnC,GACMjrM,IACT2mP,EAAwB95B,EAAAA,cAAoBg0V,GAAW7gjB,IAAS,KAAM,CACpEO,UAAWisN,KAAW,GAAG8lB,SAAkB,GAAGA,UAAkBtyO,QAGhD6sN,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAWisN,KAAW,CACpB,CAAC,GAAG8lB,eAAwBqU,IAE9BS,KAAMA,GACLT,EAAuB95B,EAAAA,cAAoB,MAAO,CACnDtsN,UAAW,GAAG+xO,aACb9pK,GAAuBqkJ,EAAAA,cAAoB,MAAO,CACnDtsN,UAAW,GAAG+xO,iBACb1xN,GAAc6yE,GAAwBo5H,EAAAA,cAAoB,MAAO,CAClEtsN,UAAW,GAAG+xO,aACb7+I,GAAS,EAqDd,GAlDkB5iD,IAChB,MACIyhM,UAAWwsO,EAAe,UAC1Bv+c,EAAS,KACT0qM,EAAI,KACJjrM,EAAI,QACJwoE,EAAO,YACP5nD,EAAW,IACXkgiB,EAAG,QACHrtd,EAAO,SACPm9P,GAAW,EAAI,UACfC,EACAtwV,UAAWwgjB,GACTlwgB,EACJiiM,EAAY6xD,GAAO9zP,EAAO,CAAC,YAAa,YAAa,OAAQ,OAAQ,UAAW,cAAe,MAAO,UAAW,WAAY,YAAa,eACtI,aACJixO,GACEj1D,EAAAA,WAAiBg1D,IACfm/R,EAA4B,OAAZvtd,QAAgC,IAAZA,EAAqBA,EAAUqtd,EAKzE,MAAMxuU,EAAYwsO,GAAmBh9L,EAAa,gBAC5Cm4L,EAAkB,GAAG3nO,WACrB4iD,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GAC5D,OAAO8Y,EAAwBnhF,EAAAA,cAAoB,MAAO,CACxDtsN,UAAWisN,KAAW,GAAGytP,eAA8B9zL,EAAQ5lR,EAAW0tS,EAAW/Y,IACvEroE,EAAAA,cAAoBo0V,GAAgB,CAClD3uU,UAAWA,IACIzlB,EAAAA,cAAoB0vP,GAAQv9c,OAAOoD,OAAO,CAAC,EAAG0wO,EAAW,CACxER,UAAWA,EACX6I,SAAU,OACVthH,SAAU,KACV+2N,SAAUA,EACVrwV,UAAWisN,KAAW,CACpBu0V,0BAEFlwN,UAAW+vN,GAAatuU,EAAWu+G,GACnCp5U,QAAsBo1M,EAAAA,cAAoBgyP,GAAa,CACrDvsO,UAAW2nO,EACXhvQ,KAAMA,EACNjrM,KAAMA,EACNwoE,QAASA,EACT5nD,YAAaA,EACb6yE,QAASutd,QAER,EC7HP,IAAIr8Q,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAWA,MAGM5Y,GAAUmwI,IACd,IAAI,SACF9mG,EAAQ,UACRm1L,GACEruF,EACJ,MAAMixI,EAAU8qC,GAAa1tF,IACtB07D,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,EAAW4iD,GAC5D,OAAO8Y,EAAwBnhF,EAAAA,cAAoBwyP,GAAsB,CACvE7yP,WAAY,CACVitC,KAAMjtC,KAAW25D,EAAQ8nB,EAAW/Y,KAErC/3O,GAAU,EAETs/Z,GAAsBA,CAAC77c,EAAM80K,KACjC,IAAI,UACF48D,EAAS,IACTx0O,GACE43K,EACJ,OAAoBm3C,EAAAA,cAAoB/4M,GAAS,CAC/Cw+N,UAAWA,EACXx0O,IAAKA,GACJ8C,EAAK,EAEJ0+c,GAAsBzyP,EAAAA,YAAiB,CAACh8K,EAAON,KACnD,MAAM,IACJj2C,EAAG,OACH8E,EACAkzO,UAAWwsO,EACXp1N,aAAc61N,EAAkB,SAChCppO,EAAQ,IACRqQ,EAAG,aACHuS,EAAY,MACZz1P,EAAK,SACLu2H,EAAQ,aACRs7S,GAAe,EAAI,aACnBgkC,GACEtoa,GACE,aACJixO,EAAY,kBACZzmB,EAAiB,aACjBmyE,EAAY,UACZ/2M,IACE1wD,EAAAA,EAAAA,YAAW87M,KACR,CAAElgK,GAAS+yK,KACZpiD,EAAYwsO,GAAmBh9L,EAAa,iBAS3Cm8L,EAAK7pI,GAAUorI,GAAkB,CACtCltO,YACAh0O,MATe8mQ,GCrEZ,SAA2BA,EAAW9qQ,EAAK8E,GAChD,IAAId,EACJ,OAAQ8mQ,GACN,IAAK,MACH9mQ,EAAQ,CACNjE,KAAM,MACNk+E,UAAW,mBACX/zE,MAAO,OACPlK,MACA8E,OAAQ,QAEV,MACF,IAAK,UACHd,EAAQ,CACNjE,KAAM,EACNC,MACA8E,OAAQ,QAEV,MACF,IAAK,WACHd,EAAQ,CACNkG,MAAO,EACPlK,MACA8E,OAAQ,QAEV,MACF,IAAK,SACHd,EAAQ,CACNjE,KAAM,MACNk+E,UAAW,mBACX/zE,MAAO,OACPlK,IAAK,OACL8E,UAEF,MACF,IAAK,aACHd,EAAQ,CACNjE,KAAM,EACNC,IAAK,OACL8E,UAEF,MACF,QACEd,EAAQ,CACNkG,MAAO,EACPlK,IAAK,OACL8E,UAIN,OAAOd,CACT,CDkBgC4ijB,CAAkB97S,EAAmB,OAAR9qQ,QAAwB,IAARA,EAAiBA,EAjDvE,GAiDwG,OAAX8E,QAA8B,IAAXA,EAAoBA,EAjDpI,IA2DnBmB,UATmBk/c,IAAMjzP,KAAW,CACpC,CAAC,GAAG8lB,SAA0B,OAARkU,QAAwB,IAARA,EAAiBA,EAAoB,QAAd/vH,IAS7D2gI,OAN4BsoN,ICtBzB,SAAmBptO,GACxB,MAAO,CACLykB,WAAY,GAAGzkB,SAEnB,CDkBsC8qB,CAAU9qB,GAO5Cs+G,UAAU,EACVC,UAAW+vN,GAAatuU,GACxBz4G,SAAuB,OAAbA,QAAkC,IAAbA,EAAsBA,EA9DhC,IA+DrB6vH,aAAcA,KAA8B,OAAvB61N,QAAsD,IAAvBA,OAAgC,EAASA,OAAgD,OAAtBlkN,QAAoD,IAAtBA,OAA+B,EAASA,MAAwB/6P,SAASuE,KAC9NsxO,WACAg/L,eACAgkC,eACApgN,eACA0jN,oBAAmB,GACnBn5c,OAAiB,IAAVA,GAA0B,CAC/B+sK,UAA4B,kBAAV/sK,EAA+B,OAAVA,QAA4B,IAAVA,OAAmB,EAASA,EAAM+sK,eAAYpqK,EACvG6tD,OAAQ,EACR0mR,IAAK74N,EAAM/mH,UAQf,OAJAiyN,EAAAA,oBAA0Bt8K,GAAK,IAAMvxC,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG67c,GAAM,CACzE3rO,YACAk7F,mBAEK4G,CAAM,IAKR,SAAS+sO,GAAwBC,GACtC,MAAM9wO,EAAYzjH,EAAAA,OAAa,MACfkmG,GAAc,gBA6E9B,MAAO,CA3ESlmG,EAAAA,SAAc,KAG5B,MAAMt0M,EAAOqyB,IACX,IAAItV,EACJ,IAAKg7S,EAAUrxS,QAEb,OAEF,MACE1mB,KAAMq6P,EAAU,UAChBtgC,EAAS,aACTk7F,GACE8C,EAAUrxS,QACRg7a,EAAkB,GAAG3nO,YACrB,QACF9pK,EAAO,YACP5nD,EAAW,KACXqqL,EAAI,KACJjrM,EAAI,IACJ8gjB,EAAG,QACHrtd,EAAO,UACPlzF,EAAS,MACTjC,EAAK,KACL8oP,EAAO,QAAO,UACdypG,EAAS,SACTD,GACEhmT,EACJixa,EAAal3K,GAAO/5P,EAAQ,CAAC,UAAW,cAAe,OAAQ,OAAQ,MAAO,UAAW,YAAa,QAAS,OAAQ,YAAa,aAItI,MAAMo2gB,EAA4B,OAAZvtd,QAAgC,IAAZA,EAAqBA,EAAUqtd,EACnEO,EAAgBT,GAAa3mG,ECtFlC,SAA4BppH,EAAWuwN,EAAoB5zO,GAChE,MAAyB,qBAAdqjB,EACFA,EAE6G,qBAAnF,OAAvBuwN,QAAsD,IAAvBA,OAAgC,EAASA,EAAmBvwN,WAC9FuwN,EAAmBvwN,UAEJ,OAAjBrjB,QAA0C,IAAjBA,OAA0B,EAASA,EAAaqjB,SAClF,CD8E0DywN,CAAmBzwN,EAAWuwN,EAAoB5zO,IACtG,OAAO56D,EAAW5zQ,OAAOoD,OAAOpD,OAAOoD,OAAO,CAE5CgjQ,UAA2H,QAA/G9vO,EAA4B,OAAvB8rhB,QAAsD,IAAvBA,OAAgC,EAASA,EAAmBh8S,iBAA8B,IAAP9vO,EAAgBA,EA5HjI,YA6HjBumb,GAAa,CACdpkc,QAAuBo1M,EAAAA,cAAoBgyP,GAAa,CACtDvsO,UAAW2nO,EACXhvQ,KAAMA,EACNjrM,KAAMA,EACNwoE,QAASA,EACT5nD,YAAaA,EACb6yE,QAASutd,EACT55T,KAAMA,IAER7mP,UAAWisN,KAAWxsN,GAAQ,GAAGi6c,KAAmBj6c,IAAQO,EAA4B,OAAjBitU,QAA0C,IAAjBA,OAA0B,EAASA,EAAajtU,WAChJjC,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAoB,OAAjBorU,QAA0C,IAAjBA,OAA0B,EAASA,EAAalvU,OAAQA,GACxHuyV,UAAWwwN,EACXzwN,SAAuB,OAAbA,QAAkC,IAAbA,EAAsBA,IAAaywN,IACjE,EAWCvgjB,EAAQ,CACZyX,OACAisD,QAVc1mE,IACd,IAAIw3B,EAAIC,OACItvB,IAARnI,EAC2B,QAA5Bw3B,EAAKg7S,EAAUrxS,eAA4B,IAAP3J,GAAyBA,EAAGzd,MAAM/Z,GAE1C,QAA5By3B,EAAK+6S,EAAUrxS,eAA4B,IAAP1J,GAAyBA,EAAGivC,SACnE,GAYF,MANa,CAAC,UAAW,OAAQ,UAAW,SACvC1qE,SAAQkG,IACXc,EAAMd,GAAQ4qC,GAAUryB,EAAKvZ,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGwoC,GAAS,CACpE5qC,SACC,IAEEc,CAAK,GACX,IAE2B+rN,EAAAA,cAAoByyP,GAAQtgd,OAAOoD,OAAO,CACtEtE,IAAK,uBACJsjjB,EAAoB,CACrB7wgB,IAAK+/R,KAET,CEtLA,IAAI9C,GAAe,KACf59N,GAAM5rF,GAAYA,IAClB+5b,GAAY,GACZoC,GAAsB,CAAC,EAC3B,SAASC,KACP,MAAM,aACJ12N,EAAY,IACZlD,EAAG,SACHrQ,EAAQ,IACR77O,EAAG,OACH8E,EAAM,aACN+5c,EAAY,aACZhkC,GACEgrC,GACEnyN,GAAoC,OAAjBtE,QAA0C,IAAjBA,OAA0B,EAASA,MAAmBppP,SAASuE,KACjH,MAAO,CACL6kP,aAAcA,IAAMsE,EACpBxH,MACArQ,WACA77O,MACA8E,SACA+5c,eACAhkC,eAEJ,CACA,MAAMkrC,GAA4BxzP,EAAAA,YAAiB,CAACh8K,EAAON,KACzD,MAAM,mBACJ6wgB,EAAkB,KAClB12J,GACE75W,GACE,aACJixO,IACE/7M,EAAAA,EAAAA,YAAW87M,IACTvvC,EAAY6tO,GAAoB7tO,WAAawvC,EAAa,gBAC1Dw+L,GAAYv6Y,EAAAA,EAAAA,YAAWkzY,KACtBgF,EAAK7pI,GAAU+sO,GAAwBnijB,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg/iB,GAAqB,CAC/G9uU,cACEguO,EAAU9yI,eAed,OAdA3gH,EAAAA,UAAgB69L,EAAM,IACtB79L,EAAAA,oBAA0Bt8K,GAAK,KAC7B,MAAMymB,EAAWh4D,OAAOoD,OAAO,CAAC,EAAG67c,GAOnC,OANAj/c,OAAOC,KAAK+3D,GAAUl9D,SAAQmR,IAC5B+rD,EAAS/rD,GAAU,WAEjB,OADAy/Y,IACOuzD,EAAIhzc,GAAQoI,MAAM4qc,EAAKx1c,UAChC,CAAC,IAEI,CACLuuD,WACA0zV,OACD,IAEIt2E,CAAM,IAETmsI,GAAmC1zP,EAAAA,YAAiB,CAAC1iM,EAAGomB,KAC5D,MAAO6wgB,EAAoBG,GAAyB10V,EAAAA,SAAeuzP,IAC7D11D,EAAOA,KACX62J,EAAsBnhG,GAAiB,EAEzCvzP,EAAAA,UAAgB69L,EAAM,IACtB,MAAMh7Y,EAASq7T,KACT11C,EAAgB3lR,EAAOu7T,mBACvBw1I,EAAoB/wc,EAAOs7T,mBAC3BvpS,EAAQ/xB,EAAO+oB,WACf6mU,EAAmBzyI,EAAAA,cAAoBwzP,GAAc,CACzD9va,IAAKA,EACLm6W,KAAMA,EACN02J,mBAAoBA,IAEtB,OAAoBv0V,EAAAA,cAAoBgjH,GAAgB,CACtDv9F,UAAW+iD,EACXnT,cAAeu+L,EACfh/a,MAAOA,GACN/xB,EAAOw7T,aAAex7T,EAAOw7T,aAAao0B,GAAOA,EAAI,IAE1D,SAASohH,KACP,IAAKlzI,GAAc,CACjB,MAAMmzI,EAAiBrgd,SAAS4+V,yBAC1BsiN,EAAkB,CACtB3gG,SAAUF,GAsBZ,OApBAnzI,GAAeg0O,OAEf5xc,IAAI,KACkBsjO,IACpBZ,CAAyBzlH,EAAAA,cAAoB0zP,GAAqB,CAChEhwa,IAAK3vC,IACH,MAAM,SACJo2D,EAAQ,KACR0zV,GACE9pZ,GAAQ,CAAC,EACboB,QAAQM,UAAUrJ,MAAK,MAChBuojB,EAAgBxqf,UAAYA,IAC/Bwqf,EAAgBxqf,SAAWA,EAC3Bwqf,EAAgB92J,KAAOA,EACvBg2D,KACF,GACA,IAEFC,EAAe,GAGvB,CAEKnzI,GAAax2Q,WAIlB+mZ,GAAUjkd,SAAQskd,IAChB,OAAQA,EAAKp+c,MACX,IAAK,OAED4vG,IAAI,KACF49N,GAAax2Q,SAASz+C,KAAKvZ,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG+9c,IAAsB/B,EAAKxza,QAAQ,IAEhG,MAEJ,IAAK,UACHglE,IAAI,KACe,OAAjB49N,SAA0C,IAAjBA,IAAmCA,GAAax2Q,SAASwN,QAAQ45Y,EAAKtgd,IAAI,IAGzG,IAGFigd,GAAY,GACd,CAYA,SAASxlc,GAAKqyB,GACGmgS,KAIfgzI,GAAUljd,KAAK,CACbmF,KAAM,OACN4qC,WAEF81a,IACF,CACA,MAeMM,GAPoB,CACxBzoc,KAAI,GACJisD,QAVc1mE,IACdigd,GAAUljd,KAAK,CACbmF,KAAM,UACNlC,QAEF4id,IAAa,EAMb91a,OA9BF,SAAqCA,GACnCu1a,GAAsBnhd,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG+9c,IAAsBv1a,GAE5EglE,IAAI,KACF,IAAIt6E,EACqF,QAAxFA,EAAsB,OAAjBk4S,SAA0C,IAAjBA,QAA0B,EAASA,GAAak9E,YAAyB,IAAPp1X,GAAyBA,EAAGv8B,KAAKy0U,GAAa,GAEnJ,EAwBE+vI,gBFsBa,SAAyB6jG,GACtC,OAAOD,GAAwBC,EACjC,EEvBE1pP,uCAAwCC,IAN1B,CAAC,UAAW,OAAQ,UAAW,SASvC79T,SAAQkG,IACdghd,GAAchhd,GAAQ4qC,GAAUryB,GAAKvZ,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGwoC,GAAS,CAC5E5qC,SACC,IAsBL,YCpMA,SADwB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,4tCAAguC,KAAQ,YAAa,MAAS,YCM75C,IAAIyhjB,GAAoB,SAA2B5wgB,EAAON,GACxD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMy2W,KAEV,EAOA,SAJ2B70V,EAAAA,WAAiB40V,ICb5C,SADgB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,YAAa,UAAW,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,8LAAkM,KAAQ,IAAK,MAAS,YCMvY,IAAIE,GAAY,SAAmB9wgB,EAAON,GACxC,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM22W,KAEV,EAOA,SAJ2B/0V,EAAAA,WAAiB80V,ICfrC,MAAME,GACTjmjB,WAAAA,GAAkD,IAAtCwzG,EAAO3mG,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,EAAGq5iB,EAAKr5iB,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,gBAC7BzP,KAAKy8C,OAAS25D,EACdp2G,KAAK67B,KAAOithB,CAChB,ECJG,MCCM7tiB,GAAQ,CACjBmiC,OAAQ,0BACR2rgB,eAAe,EACfC,gBDJ4BC,MAC5B,GAA4B,qBAAjBnxL,aAEX,MAAO,CACHtqX,IAAM1I,GAAQkE,QAAQM,QAAQwuX,aAAahiR,QAAQhxG,IACnD6E,IAAKA,CAAC7E,EAAKlG,IAAUoK,QAAQM,QAAQwuX,aAAajiR,QAAQ/wG,EAAKlG,IAC/DuuG,OAASroG,GAAQkE,QAAQM,QAAQwuX,aAAa/hR,WAAWjxG,IAC5D,ECHgBmkjB,ICJRC,GAAgBhmjB,GACpBA,EAGkB,kBAAZA,EACA,CACHimjB,UAAWjmjB,GAIQ,oBAAvBA,EAAQ8K,WACD9K,EAEJ,CAAC,EAXG,CAAC,ECAHkmjB,GAAW7zW,eAAOrzM,EAAKqa,GAAuB,IAAjBwoW,EAAOt1W,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,CAAC,EACjD,MAAM6sC,QAAiByrF,MAAM9sH,GAAMmiC,OAASl7C,EAAK,CAC7C+P,OAAQ,OACR8yW,UACAl5W,KAAM0Q,IAEJizD,QAAgBlzB,EAASzgB,OACzBwthB,EAAiB,IAAIR,GAAsBvsgB,EAASG,OAAQ+yB,GAClE,GAAIlzB,EAAS46B,GACT,OAAOmye,EAEX,MAAMA,CACV,ECdaC,GAAiBA,CAACH,EAAWI,EAAWC,KACjD,IAAKL,GAAkC,kBAAdA,EACrB,KAAM,gFAEV,IAAKI,GAAkC,kBAAdA,EACrB,KAAM,wEAEV,IAAKC,GAAoC,kBAAfA,EACtB,KAAM,kFACV,ECTSC,GAAc3sgB,GAChBA,EAAU4sgB,YAAc5sgB,EAAU6sgB,WAA4C,IAA/B7sgB,EAAU6sgB,UAAUxojB,OCAjEyojB,GAAgBA,IAClB,IAAIf,GAAsB,IAAK,oCCK7BgB,GAAyBA,CAAC3mjB,EAASygO,KAC5C,GAPyBzgO,KACjBA,EAAQu9P,MAAMt/P,SAAW+B,EAAQ4mjB,cAMrCC,CAAoB7mjB,GACpB,OAAO,ECTwB8mjB,EAACvpT,EAAMqpT,KAC1C,IAAKjpjB,MAAMqR,QAAQuuP,GACf,KAAM,wCAEV,GAA6B,kBAAlBqpT,EACP,KAAM,gDACV,EDIAE,CAAwB9mjB,EAAQu9P,KAAMv9P,EAAQ4mjB,eAC9C,MAAMlrjB,GAPQ2d,EAOSonN,EAPH11N,EAOW/K,EAAQ4mjB,cANhCvtiB,aAAgB0jW,SAAW1jW,EAAK/O,IAAIS,GAAQsO,EAAKtO,IAD3Cw0C,IAAClmC,EAAMtO,EAQpB,MAAqB,kBAAVrP,GAEJsE,EAAQu9P,KAAKtwP,SAASvR,EAAM,EEb1BqrjB,GAAoBA,IACtB,IAAIpB,GAAsB,IAAK,aCG7BqB,GAAiB30W,MAAO40W,EAAWjnjB,EAASyyG,KACrD,IAAKzyG,EAAQ+qG,WAAa0H,EACtB,OAAO,ECPwBy0c,EAACn8c,EAAUxqF,KAC9C,GAAwB,kBAAbwqF,GAAyBA,EAAW,EAC3C,KAAM,qDAEV,GAAIxqF,GAAoB,kBAAPA,EACb,KAAM,+CACV,EDGA2miB,CAAwBlnjB,EAAQ+qG,SAAU/qG,EAAQugB,IAClD,MAAMA,EAAKvgB,EAAQugB,IAAM0miB,EACnBE,OAVU90W,OAAO9xL,EAAIwqF,EAAU0H,KACrC,MAAM20c,EAAWpjjB,aAAcyuG,EAAQnoG,IAAIiW,IAAQ,GACnD,OAAOwqF,EAAW93E,KAAKw8B,MAAQ23f,CAAQ,EAQhBC,CAAY9miB,EAAIvgB,EAAQ+qG,SAAU0H,GACzD,OAAI00c,EAAW,UAGT10c,EAAQhsG,IAAI8Z,EAAI0S,KAAKw8B,MAAM3kD,aAC1B,EAAK,EEfHw8iB,GAAiBA,IACnB,IAAI3B,GAAsB,IAAK,qBCG1C,GCcoBtzW,MAAOg0W,EAAWC,EAAYiB,EAAgBvnjB,KAC9D,MAAMkhC,EAAO8khB,GAAahmjB,GACpBimjB,EAAY/khB,EAAK+khB,WAAaluiB,GAAMkuiB,UACpCJ,EAAgB3khB,EAAK2khB,eAAiB9tiB,GAAM8tiB,cAC5CC,EAAkB5khB,EAAK4khB,iBAAmB/tiB,GAAM+tiB,gBAChD0B,EAAY,IAAKzviB,GAAMyviB,aAActmhB,EAAKsmhB,WAC1CC,EAAY,IAAK1viB,GAAM0viB,aAAcvmhB,EAAKumhB,WAChD,GAAI5B,GAAiBU,GAAW3sgB,WAC5B,OAAO9zC,QAAQmmB,OAAOy6hB,MAI1B,GAFAN,GAAeH,EAAWI,EAAWC,GC7BFiB,KAEnC,GAAIA,GAAgD,oBAA9BA,EAAez8iB,WACjC,KAAM,yFACV,ED0BA48iB,CAAuBH,GACnBA,GAAkBZ,GAAuBa,EAAWD,GACpD,OAAOzhjB,QAAQmmB,OAAO86hB,MAE1B,SAAUC,GAAeh9iB,SAASgyN,SAAUyrV,EAAW3B,GACnD,OAAOhgjB,QAAQmmB,OAAOq7hB,MAE1B,MAAM7mV,EAAS,CACXknV,YAAa,QACbC,QAAS3B,EACT4B,WAAYxB,EACZyB,YAAaxB,EACbyB,gBAAiBR,GAErB,OAAOrB,GAAS,uBAAwB7/iB,KAAKE,UAAUk6N,GAAS,CAC5D,eAAgB,oBAClB,GErBIy1H,QAAQ,IAAI4rN,IACZ3lN,MAAK,GAAEI,UAAU,IAAI4/G,GAwgB7B,GAtgBgB6rG,KACd,MA8QM7vhB,EAAU,CACd,CACE0Q,MAAO,YACP+2a,UAAW,QACXh+c,IAAK,SAEP,CACEinC,MAAO,UACP+2a,UAAW,UACXh+c,IAAK,UACLi9C,OAAQA,CAAClmB,EAAMurc,KACb3xD,EAAAA,GAAAA,KAAA,KACEtza,KAAM,mDAAmDile,EAAO+jF,OAAO/jF,EAAOgkF,MAC9ErgjB,OAAO,SACPoyC,IAAI,sBACJ73C,MAAO,CAAEy8H,eAAgB,OAAQ9gG,MAAM,WAAWkjB,SAEjDtoB,KAIP,CACEkQ,MAAO,YACP+2a,UAAW,MACXh+c,IAAK,MACLi9C,OAASlmB,IACP45Y,EAAAA,GAAAA,KAAA,KAAGtza,KAAM,OAAO05B,IAAQv2B,MAAO,CAAEy8H,eAAgB,OAAQ9gG,MAAM,WAAWkjB,SAAEtoB,MA0BlF,OACE25Y,EAAAA,GAAAA,MAACwvI,GAAM,CAAA7ggB,SAAA,EACJqxX,EAAAA,GAAAA,MAACnyC,GAAM,CAAAl/U,SAAA,EACRsxX,EAAAA,GAAAA,KAAA,SAAAtxX,SAAO,uCACPsxX,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,cAAcwQ,QAAQ,8GACjCg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,WAAWwQ,QAAQ,6EAC9Bg3Z,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,WAAWx3E,QAAQ,uCAClCg3Z,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,iBAAiBx3E,QAAQ,8GACxCg3Z,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,WAAWx3E,QAAQ,sBAClCg3Z,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,SAASx3E,QAAQ,2CAChCg3Z,EAAAA,GAAAA,KAAA,QAAMx/U,SAAS,UAAUx3E,QAAQ,aACjCg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,eAAewQ,QAAQ,yBAClCg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,gBAAgBwQ,QAAQ,uCACnCg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,sBAAsBwQ,QAAQ,8GACzCg3Z,EAAAA,GAAAA,KAAA,QAAMxna,KAAK,gBAAgBwQ,QAAQ,yBAEnCg3Z,EAAAA,GAAAA,KAACr8E,GAAO,CAAC9zV,MAAO,CAAEi8B,QAAS,UAAW4iB,UACpCqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,sBAAqB48C,SAAA,EAClCsxX,EAAAA,GAAAA,KAAA,MAAInwa,MAAO,CAAE83B,SAAU,OAAQ6D,MAAO,UAAW4B,WAAY,OAAQ27F,aAAc,QAASr6E,SAAC,gBAC7FqxX,EAAAA,GAAAA,MAACprY,GAAG,CAAC0rW,OAAQ,CAAC,GAAI,IAAKD,QAAQ,SAAQ1xV,SAAA,EACrCqxX,EAAAA,GAAAA,MAACnF,GAAG,CAAC18H,GAAI,GAAI3iP,GAAI,EAAE7M,SAAA,EACjBqxX,EAAAA,GAAAA,MAAC2kD,GAAI,CAAC5yd,UAAU,eAAc48C,SAAA,EAC5BsxX,EAAAA,GAAAA,KAACW,GAAa,CAAC9wa,MAAO,CAAE83B,SAAU,OAAQ6D,MAAO,cACjDw0Y,EAAAA,GAAAA,KAACp2E,GAAK,CAACv6K,MAAO,EAAE3gI,SAAC,aACjBsxX,EAAAA,GAAAA,KAACh2E,GAAS,CAAAt7S,SAAC,qCACXsxX,EAAAA,GAAAA,KAAA,KAAGtza,KAAK,oBAAoBmD,MAAO,CAAEy8H,eAAgB,OAAQ9gG,MAAM,WAAWkjB,SAAC,gBAC/EsxX,EAAAA,GAAAA,KAACp2E,GAAK,CAACv6K,MAAO,EAAGx/K,MAAO,CAAEo9B,UAAW,SAAU47F,UAAU,QAASn6E,SAAC,eAGnEqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,eAAc48C,SAAA,EAC3BsxX,EAAAA,GAAAA,KAACx+H,GAAO,CAAClrQ,MAAM,WAAUoY,UACvBsxX,EAAAA,GAAAA,KAAA,KACEtza,KAAK,mDACL4I,OAAO,SACPoyC,IAAI,sBAAqBgH,UAEzBsxX,EAAAA,GAAAA,KAAC8b,GAAgB,CACfjsb,MAAO,CACL83B,SAAU,OACV6D,MAAO,kBAMfw0Y,EAAAA,GAAAA,KAACx+H,GAAO,CAAClrQ,MAAM,YAAWoY,UACxBsxX,EAAAA,GAAAA,KAAA,KACEtza,KAAK,oDACL4I,OAAO,SACPoyC,IAAI,sBAAqBgH,UAEzBsxX,EAAAA,GAAAA,KAACgzI,GAAiB,CAChBnjjB,MAAO,CACL83B,SAAU,OACV6D,MAAO,kBAMfw0Y,EAAAA,GAAAA,KAACx+H,GAAO,CAAClrQ,MAAM,IAAGoY,UAChBsxX,EAAAA,GAAAA,KAAA,KACEtza,KAAK,+BACL4I,OAAO,SACPoyC,IAAI,sBAAqBgH,UAEzBsxX,EAAAA,GAAAA,KAACkzI,GAAS,CACRrjjB,MAAO,CACL83B,SAAU,OACV6D,MAAO,kBAMfw0Y,EAAAA,GAAAA,KAACx+H,GAAO,CAAClrQ,MAAM,SAAQoY,UACrBsxX,EAAAA,GAAAA,KAAA,KACEtza,KAAK,wCACL4I,OAAO,SACPoyC,IAAI,sBAAqBgH,UAEzBsxX,EAAAA,GAAAA,KAAC8c,GAAQ,CACPjtb,MAAO,CACL83B,SAAU,OACV6D,MAAO,UACPq9F,UAAU,gBAMlBm3S,EAAAA,GAAAA,KAACx+H,GAAO,CAAClrQ,MAAM,WAAUoY,UACvBsxX,EAAAA,GAAAA,KAAA,KACEtza,KAAK,2BACL4I,OAAO,SACPoyC,IAAI,sBAAqBgH,UAEzBsxX,EAAAA,GAAAA,KAAC+c,GAAU,CACTltb,MAAO,CACL83B,SAAU,OACV6D,MAAO,UACNq9F,UAAU,sBAOvBk3S,EAAAA,GAAAA,MAAC2kD,GAAI,CAAC5yd,UAAU,eAAc48C,SAAA,EAC5BsxX,EAAAA,GAAAA,KAAC4b,GAAY,CAAC/rb,MAAO,CAAE83B,SAAU,OAAQ6D,MAAO,cAChDw0Y,EAAAA,GAAAA,KAACp2E,GAAK,CAACv6K,MAAO,EAAE3gI,SAAC,iBACjBsxX,EAAAA,GAAAA,KAACh2E,GAAS,CAAAt7S,SAAC,gEAGXsxX,EAAAA,GAAAA,KAAA,KAAGtza,KAAK,kCAAkCmD,MAAO,CAAEy8H,eAAgB,OAAS9gG,MAAM,WAAWkjB,SAAC,oCAKlGsxX,EAAAA,GAAAA,KAACpF,GAAG,CAAC18H,GAAI,GAAI3iP,GAAI,GAAG7M,UAClBqxX,EAAAA,GAAAA,MAAC3mG,GAAI,CAACyE,OAAO,WAAWtjB,SA5IV35S,IACxBg1iB,GACQ,kBAAmB,mBAAoBh1iB,EAAQ,gBACpDpW,MAAMqrjB,IACLlwhB,QAAQyxB,IAAIy+f,GACZ92O,GAAaxqL,QAAQ,CACnBx6E,QAAS,eACT5nD,YAAa,4CACb,IAEH2J,OAAO1mB,IACNuwB,QAAQyxB,IAAIhiD,GACZ2pU,GAAa3pU,MAAM,CACjB2kE,QAAS,iBACT5nD,YACE,oEACF,GACF,EA2HyDu8B,SAAA,EACjDqxX,EAAAA,GAAAA,MAACprY,GAAG,CAAC0rW,OAAQ,GAAG3xV,SAAA,EACdsxX,EAAAA,GAAAA,KAACpF,GAAG,CAAC18H,GAAI,GAAGxvP,UACVsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,OACN7qG,KAAK,OACL5I,MAAO,CACL,CAAE88G,UAAU,EAAM3yC,QAAS,2BAC3BrrB,UAEFsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAAC51Q,YAAY,qBAGvB0rV,EAAAA,GAAAA,KAACpF,GAAG,CAAC18H,GAAI,GAAGxvP,UACVsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,QACN7qG,KAAK,QACL5I,MAAO,CACL,CAAE88G,UAAU,EAAM3yC,QAAS,4BAC3BrrB,UAEFsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAAC51Q,YAAY,sBAGvB0rV,EAAAA,GAAAA,KAACpF,GAAG,CAAC18H,GAAI,GAAGxvP,UACVsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,QACN7qG,KAAK,QACL5I,MAAO,CACL,CACE88G,UAAU,EACV3yC,QAAS,mCAEXrrB,UAEFsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAAC51Q,YAAY,yBAIzB0rV,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,UACN7qG,KAAK,UACL5I,MAAO,CACL,CAAE88G,UAAU,EAAM3yC,QAAS,8BAC3BrrB,UAEFsxX,EAAAA,GAAAA,KAAC91E,GAAMs0C,SAAQ,CAACv3W,KAAM,EAAGqtD,YAAY,oBAEvC0rV,EAAAA,GAAAA,KAACtrO,GAAM,CACLnjM,KAAK,UACLk+U,SAAS,SACT5/U,MAAO,CAAEmG,gBAAiB,QAAS+2B,YAAa,SAAU2hB,SAC3D,0BAMPsxX,EAAAA,GAAAA,KAAA,MAAInwa,MAAO,CAAE83B,SAAU,OAAQ6D,MAAO,UAAW4B,WAAY,QAAQshB,SAAC,mBACtEsxX,EAAAA,GAAAA,KAACrrY,GAAG,CAAC0rW,OAAQ,CAAC,GAAI,IAAKD,QAAQ,SAASvwY,MAAO,CAAEg5H,UAAW,QAASn6E,UACnEsxX,EAAAA,GAAAA,KAACpF,GAAG,CAAC18H,GAAI,GAAGxvP,UACVsxX,EAAAA,GAAAA,KAACprY,GAAK,CACJhP,QAASA,EACT+1Y,WAzfI,CAChB,CACErlY,MAAO,WACPwma,QAAS,0CACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,OAER,CACEr/gB,MAAO,QACPwma,QAAS,4BACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,OAER,CACEr/gB,MAAO,SACPwma,QAAS,yBACTz5Y,IAAK,aACLqyf,IAAK,OACLC,KAAM,OAER,CACEr/gB,MAAO,SACPwma,QAAS,6BACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,MAGR,CACEr/gB,MAAO,SACPwma,QAAS,6BACTz5Y,IAAK,aACLqyf,IAAK,OACLC,KAAM,OAER,CACEr/gB,MAAO,MACPwma,QAAS,uCACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,MAER,CACEr/gB,MAAO,OACPwma,QAAS,gDACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,OAER,CACEr/gB,MAAO,SACPwma,QAAS,kDACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,OAER,CACEr/gB,MAAO,SACPwma,QAAS,sDACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,MAER,CACEr/gB,MAAO,QACPwma,QAAS,4CACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,MAER,CACEr/gB,MAAO,QACPwma,QAAS,sBACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,OAER,CACEr/gB,MAAO,YACPwma,QAAS,4DACTz5Y,IAAK,aACLqyf,IAAK,KACLC,KAAM,MAER,CACEr/gB,MAAO,SACPwma,QAAS,6BACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,OAER,CACEr/gB,MAAO,SACPwma,QAAS,0CACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,OAER,CACEr/gB,MAAO,SACPwma,QAAS,uBACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,OAER,CACEr/gB,MAAO,SACPwma,QAAS,qBACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,QAER,CACEr/gB,MAAO,SACPwma,QAAS,sBACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,OAER,CACEr/gB,MAAO,SACPwma,QAAS,mBACTz5Y,IAAK,aACLqyf,IAAK,KACLC,KAAM,OAER,CACEr/gB,MAAO,KACPwma,QAAS,4CACTz5Y,IAAK,aACLqyf,IAAK,MACLC,IAAK,KAEP,CACEr/gB,MAAO,WACPwma,QAAS,2BACTz5Y,IAAK,aACLqyf,IAAK,OACLC,IAAK,OAEP,CACEr/gB,MAAO,UACPwma,QAAS,uBACTz5Y,IAAK,aACLqyf,IAAK,KACLC,KAAM,OAER,CACEr/gB,MAAO,WACPwma,QAAS,wCACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,OAER,CACEr/gB,MAAO,UACPwma,QAAS,0CACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,OAER,CACEr/gB,MAAO,aACPwma,QAAS,4CACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,OAER,CACEr/gB,MAAO,WACPwma,QAAS,2CACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,OAER,CACEr/gB,MAAO,SACPwma,QAAS,gDACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,OAER,CACEr/gB,MAAO,SACPwma,QAAS,6BACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,MAER,CACEr/gB,MAAO,QACPwma,QAAS,sCACTz5Y,IAAK,aACLqyf,IAAK,KACLC,IAAK,MAEP,CACEr/gB,MAAO,KACPwma,QAAS,gCACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,OAER,CACEr/gB,MAAO,KACPwma,QAAS,kBACTz5Y,IAAK,aACLqyf,IAAK,QACLC,KAAM,QAER,CACEr/gB,MAAO,QACPwma,QAAS,qCACTz5Y,IAAK,aACLqyf,IAAK,OACLC,KAAM,MAER,CACEr/gB,MAAO,SACPwma,QAAS,4CACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,OAER,CACEr/gB,MAAO,SACPwma,QAAS,kBACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,MAER,CACEr/gB,MAAO,WACPwma,QAAS,8BACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,KAER,CACEr/gB,MAAO,wBACPwma,QAAS,gBACTz5Y,IAAK,aACLqyf,IAAK,OACLC,KAAM,MAER,CACEr/gB,MAAO,wBACPwma,QAAS,sCACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,OAER,CACEr/gB,MAAO,wBACPwma,QAAS,yCACTz5Y,IAAK,aACLqyf,IAAK,MACLC,KAAM,MAER,CACEr/gB,MAAO,OACPwma,QAAS,GACTz5Y,IAAK,mBACLqyf,IAAK,MACLC,IAAK,QAgPKz3O,WAAY,CAAEhzU,SAAU,IACxB23e,OAAQ,CAAE3td,EAAG,4BAMhB,GC3hBP00U,MAAK,GAAEI,UAAU,IAAI4/G,GA4K7B,SA1KA,WACE,OACE5pC,EAAAA,GAAAA,KAAA,OAAAtxX,UACEsxX,EAAAA,GAAAA,KAACrrY,GAAG,CAAC0rW,OAAQ,CAAC,GAAI,IAAI3xV,UACpBsxX,EAAAA,GAAAA,KAACpF,GAAG,CAAC1lZ,GAAC,EAAAw5B,UACJqxX,EAAAA,GAAAA,MAAC2kD,GAAI,CACHhtF,UAAU,EACV7nY,MAAO,CACL+7R,aAAc,OACdngK,UAAW,mCACX/8E,SAAA,EAEFsxX,EAAAA,GAAAA,KAACp2E,GAAK,CACJv6K,MAAO,EACPx/K,MAAO,CACLo9B,UAAW,SACXzB,MAAO,QACPu9F,aAAc,QACdr6E,SACH,4BAIDsxX,EAAAA,GAAAA,KAACp2E,GAAK,CACJv6K,MAAO,EACPx/K,MAAO,CACLo9B,UAAW,SACX87F,aAAc,OACdv9F,MAAO,WACPkjB,SACH,mBAIDqxX,EAAAA,GAAAA,MAAC/1E,GAAS,CAACn6V,MAAO,CAAE83B,SAAU,OAAQE,WAAY,SAAU6mB,SAAA,CAAC,iIAEE,KAC7DsxX,EAAAA,GAAAA,KAAA,UAAAtxX,SAAQ,uBAA2B,gHAKrCsxX,EAAAA,GAAAA,KAACp2E,GAAK,CACJv6K,MAAO,EACPx/K,MAAO,CACLg5H,UAAW,OACXE,aAAc,OACdv9F,MAAO,QACPkjB,SACH,qDAKDqxX,EAAAA,GAAAA,MAAC2kD,GAAI,CACHhtF,UAAQ,EACR7nY,MAAO,CACLk5H,aAAc,OACd6iK,aAAc,MACd7+P,YAAa,UACbjB,QAAS,QACT4iB,SAAA,EAEFsxX,EAAAA,GAAAA,KAACp2E,GAAK,CAACv6K,MAAO,EAAGx/K,MAAO,CAAE27B,MAAO,WAAYkjB,SAAC,0BAG9CqxX,EAAAA,GAAAA,MAAA,MAAIlwa,MAAO,CAAEq8B,YAAa,OAAQrE,WAAY,SAAU6mB,SAAA,EACtDsxX,EAAAA,GAAAA,KAAA,MAAAtxX,SAAI,qDACJsxX,EAAAA,GAAAA,KAAA,MAAAtxX,SAAI,gEACJsxX,EAAAA,GAAAA,KAAA,MAAAtxX,SAAI,uDAKRqxX,EAAAA,GAAAA,MAAC2kD,GAAI,CACHhtF,UAAQ,EACR7nY,MAAO,CACLk5H,aAAc,OACd6iK,aAAc,MACd7+P,YAAa,UACbjB,QAAS,QACT4iB,SAAA,EAEFsxX,EAAAA,GAAAA,KAACp2E,GAAK,CAACv6K,MAAO,EAAGx/K,MAAO,CAAE27B,MAAO,WAAYkjB,SAAC,2BAG9CqxX,EAAAA,GAAAA,MAAA,MAAIlwa,MAAO,CAAEq8B,YAAa,OAAQrE,WAAY,SAAU6mB,SAAA,EACtDsxX,EAAAA,GAAAA,KAAA,MAAAtxX,SAAI,sHAIJsxX,EAAAA,GAAAA,KAAA,MAAAtxX,SAAI,kGAIJsxX,EAAAA,GAAAA,KAAA,MAAAtxX,SAAI,gJASRqxX,EAAAA,GAAAA,MAAC2kD,GAAI,CACHhtF,UAAQ,EACR7nY,MAAO,CACLk5H,aAAc,OACd6iK,aAAc,MACd7+P,YAAa,UACbjB,QAAS,QACT4iB,SAAA,EAEFsxX,EAAAA,GAAAA,KAACp2E,GAAK,CAACv6K,MAAO,EAAGx/K,MAAO,CAAE27B,MAAO,WAAYkjB,SAAC,wBAG9CsxX,EAAAA,GAAAA,KAAA,MAAInwa,MAAO,CAAEq8B,YAAa,OAAQrE,WAAY,SAAU6mB,UACtDsxX,EAAAA,GAAAA,KAAA,MAAAtxX,SAAI,kHAORsxX,EAAAA,GAAAA,KAACp2E,GAAK,CACJv6K,MAAO,EACPx/K,MAAO,CACLg5H,UAAW,OACXE,aAAc,OACdv9F,MAAO,QACPkjB,SACH,+BAKDqxX,EAAAA,GAAAA,MAAC2kD,GAAI,CACHhtF,UAAQ,EACR7nY,MAAO,CACLk5H,aAAc,OACd6iK,aAAc,MACd7+P,YAAa,UACbjB,QAAS,QACT4iB,SAAA,EAEFsxX,EAAAA,GAAAA,KAACp2E,GAAK,CAACv6K,MAAO,EAAGx/K,MAAO,CAAE27B,MAAO,WAAYkjB,SAAC,+BAG9CqxX,EAAAA,GAAAA,MAAA,MAAIlwa,MAAO,CAAEq8B,YAAa,OAAQrE,WAAY,SAAU6mB,SAAA,EACtDsxX,EAAAA,GAAAA,KAAA,MAAAtxX,SAAI,+HAKJsxX,EAAAA,GAAAA,KAAA,MAAAtxX,SAAI,uIAIJsxX,EAAAA,GAAAA,KAAA,MAAAtxX,SAAI,0EAUpB,GCnKQk7S,MAAK,GAAEI,UAAU,IAAI4/G,IACrBl1D,OAAO,IAAIie,GAoMnB,GAlMoBmjJ,KAClB,MAAOC,EAAMC,IAAWl+e,EAAAA,EAAAA,UAAS,MAE3BhD,EAAW2hS,MACX,UAAE8xH,EAAS,UAAEC,EAAS,UAAEC,EAAS,QAAElsV,GAAY26N,IAAatiW,GAAUA,EAAMg0d,YAC3EC,EAAiBC,IAAsBhxZ,EAAAA,EAAAA,UAAS,KAChDixZ,EAAkBC,IAAuBlxZ,EAAAA,EAAAA,UAAS,KAClDmxZ,EAAkBC,IAAuBpxZ,EAAAA,EAAAA,UAAS,KAClDqxZ,EAAiBC,IAAsBtxZ,EAAAA,EAAAA,UAAS,CAAC,IAExDP,EAAAA,EAAAA,YAAU,KACRznE,OAAOyrI,SAAS,EAAG,GAEnB,MAAM06a,EAAWnijB,KAAKC,MAAMsuX,aAAahiR,QAAQ,cAAgB,CAAC,EAClE21c,EAAQC,GAERnhf,EAASmzZ,MAET,MAAMiuF,EAAuBpijB,KAAKC,MAAMsuX,aAAahiR,QAAQ,oBACzD61c,IACF9sF,EAAmB8sF,GACnBptF,EAAmBotF,EAAqB5sF,SAAW,IACnDN,EAAoBktF,EAAqB1sF,UAAY,IACrDN,EAAoBgtF,EAAqBz+iB,UAAY,IACvD,GACC,CAACq9D,IAiCJ,OAAKihf,GAKH/1I,EAAAA,GAAAA,KAAA,OAAKnwa,MAAO,CAAEi8B,QAAS,OAAQ91B,gBAAiB,UAAW+3P,UAAW,SAAUr/M,UAC9EqxX,EAAAA,GAAAA,MAACprY,GAAG,CAACyrW,QAAQ,SAASC,OAAQ,CAAC,GAAI,IAAI3xV,SAAA,EAErCsxX,EAAAA,GAAAA,KAACpF,GAAG,CAAC18H,GAAI,GAAIC,GAAI,GAAI5iP,GAAI,GAAG7M,UAC1BqxX,EAAAA,GAAAA,MAAC2kD,GAAI,CACHhtF,UAAU,EACV7nY,MAAO,CACL+7R,aAAc,OACdngK,UAAW,gCACXz1H,gBAAiB,WACjB04C,SAAA,EAEFqxX,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEo9B,UAAW,SAAU87F,aAAc,QAASr6E,SAAA,EACxDsxX,EAAAA,GAAAA,KAACpmF,GAAM,CACLhtU,KAAM,IACN4vL,MAAMwjO,EAAAA,GAAAA,KAAChtE,GAAY,IACnBz+V,IAAKwhjB,EAAK5pH,WAAa,4EACvBt8b,MAAO,CAAEmG,gBAAiB,cAE5B+pa,EAAAA,GAAAA,MAACn2E,GAAK,CAACv6K,MAAO,EAAGx/K,MAAO,CAAEg5H,UAAW,OAAQr9F,MAAO,QAASkjB,SAAA,CAC1DqngB,EAAKxzI,UAAU,IAAEwzI,EAAKvzI,aAEzBxC,EAAAA,GAAAA,KAAA,UAAAtxX,SAAQ,oBAAwB,IAAEqngB,EAAK56G,uBAAyB,UAElEp7B,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEk5H,aAAc,QAASr6E,SAAA,EACnCqxX,EAAAA,GAAAA,MAAC/1E,GAAS,CAAAt7S,SAAA,EACRsxX,EAAAA,GAAAA,KAAC4b,GAAY,CAAC/rb,MAAO,CAAEi5H,YAAa,MAAOt9F,MAAO,cAClDw0Y,EAAAA,GAAAA,KAAA,UAAAtxX,SAAQ,WAAe,IAAEqngB,EAAK7yf,OAAS,UAEzC68W,EAAAA,GAAAA,MAAC/1E,GAAS,CAAAt7S,SAAA,EACRsxX,EAAAA,GAAAA,KAACW,GAAa,CAAC9wa,MAAO,CAAEi5H,YAAa,MAAOt9F,MAAO,cACnDw0Y,EAAAA,GAAAA,KAAA,UAAAtxX,SAAQ,WAAe,IAtCnCqngB,EAAK7xL,eAAiB6xL,EAAK/qF,eAAiB,mBAwClCjrD,EAAAA,GAAAA,MAAC/1E,GAAS,CAAAt7S,SAAA,EACRsxX,EAAAA,GAAAA,KAACtsE,GAAY,CAAC7jW,MAAO,CAAEi5H,YAAa,MAAOt9F,MAAO,cAClDw0Y,EAAAA,GAAAA,KAAA,UAAAtxX,SAAQ,aAAiB,IAAEqngB,EAAKj5G,SAAW,kBAOnD98B,EAAAA,GAAAA,KAACpF,GAAG,CAAC18H,GAAI,GAAIC,GAAI,GAAI5iP,GAAI,GAAG7M,UAC1BqxX,EAAAA,GAAAA,MAAC2kD,GAAI,CACHhtF,UAAU,EACV7nY,MAAO,CACL+7R,aAAc,OACdngK,UAAW,gCACXz1H,gBAAiB,WACjB04C,SAAA,EAEFsxX,EAAAA,GAAAA,KAACp2E,GAAK,CAACv6K,MAAO,EAAGx/K,MAAO,CAAEk5H,aAAc,OAAQv9F,MAAO,QAASkjB,SAAC,0BAGjEqxX,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEk5H,aAAc,QAASr6E,SAAA,EACnCsxX,EAAAA,GAAAA,KAAA,SAAOnwa,MAAO,CAAEu9B,WAAY,MAAO27F,aAAc,MAAOh4H,QAAS,SAAU29C,SAAC,oBAG5EsxX,EAAAA,GAAAA,KAACrN,GAAM,CACLxpa,MAAO0/d,EACPt9O,SAhGepiP,IAC3B2/d,EAAmB3/d,GACnB6/d,EAAoB,IACpBE,EAAoB,IACpBp0Z,EAASozZ,GAAuB/+d,GAAO,EA6F3BmrF,YAAY,mBACZzkF,MAAO,CAAErD,MAAO,QAChB+vI,QAASA,EAAQ7tF,SAEhB65a,EAAU3wd,KAAK0xd,IACdtpD,EAAAA,GAAAA,KAACtrB,GAAM,CAA2BvrZ,MAAOmge,EAAQnB,YAAYz5a,SAC1D46a,EAAQC,aADED,EAAQnB,oBAM1BU,IACC9oD,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEk5H,aAAc,QAASr6E,SAAA,EACnCsxX,EAAAA,GAAAA,KAAA,SAAOnwa,MAAO,CAAEu9B,WAAY,MAAO27F,aAAc,MAAOh4H,QAAS,SAAU29C,SAAC,mBAG5EsxX,EAAAA,GAAAA,KAACrN,GAAM,CACLxpa,MAAO4/d,EACPx9O,SA5GcpiP,IAC5B6/d,EAAoB7/d,GACpB+/d,EAAoB,IACpBp0Z,EAASszZ,GAAuBj/d,GAAO,EA0GzBmrF,YAAY,oBACZzkF,MAAO,CAAErD,MAAO,QAChB+vI,QAASA,EAAQ7tF,SAEhB85a,EAAU5wd,KAAK4xd,IACdxpD,EAAAA,GAAAA,KAACtrB,GAAM,CAA6BvrZ,MAAOqge,EAASnB,aAAa35a,SAC9D86a,EAASC,cADCD,EAASnB,qBAO7BU,IACChpD,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEk5H,aAAc,QAASr6E,SAAA,EACnCsxX,EAAAA,GAAAA,KAAA,SAAOnwa,MAAO,CAAEu9B,WAAY,MAAO27F,aAAc,MAAOh4H,QAAS,SAAU29C,SAAC,iBAG5EsxX,EAAAA,GAAAA,KAACrN,GAAM,CACLxpa,MAAO8/d,EACP19O,SAAU29O,EACV50Y,YAAY,oBACZzkF,MAAO,CAAErD,MAAO,QAChB+vI,QAASA,EAAQ7tF,SAEhB+5a,EAAU7wd,KAAKH,IACduoa,EAAAA,GAAAA,KAACtrB,GAAM,CAA6BvrZ,MAAOsO,EAASiyd,aAAah7a,SAC9Dj3C,EAASkyd,cADClyd,EAASiyd,sBAO9B1pD,EAAAA,GAAAA,KAACtrO,GAAM,CACLnjM,KAAK,UACLmtE,QAzIsBmrZ,KAChC,MAAMC,EAA0BrB,EAAU5sd,MAAMpE,GAAaA,EAASiyd,eAAiBT,IACjFc,EAA0BvB,EAAU3sd,MAAM2td,GAAaA,EAASnB,eAAiBU,IAEjFt8X,EAAU,CACd68X,QAAST,EACTW,UAAiC,OAAvBO,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBN,eAAgB,GACnDhyd,UAAiC,OAAvBqyd,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBH,eAAgB,GACnDK,gBAAuC,OAAvBF,QAAuB,IAAvBA,OAAuB,EAAvBA,EAAyBF,iBAAkB,GAE7DR,EAAmB38X,GACnB41R,aAAajiR,QAAQ,kBAAmBtsG,KAAKE,UAAUy4F,IACvD1yB,GAAQw6E,QAAQ,uCAAuC,EA8H7C1kJ,MAAO,CACLrD,MAAO,OACPwJ,gBAAiB,UACjB+2B,YAAa,UACb87F,UAAW,QACXn6E,SACH,qCA7HFsxX,EAAAA,GAAAA,KAACzH,GAAI,CAACG,IAAI,+BAmIX,ECvMJ/0C,GAAergX,iCAIf6yiB,GAAyBA,KAC7B9zL,aAAajiR,QAAQ,YAAa1/E,KAAKw8B,MAAM,EAoBlCk5f,GAAapzM,GACxB,oBACAljK,MAAOm2W,EAAQzga,KAA2B,IAAzB,gBAAE4uN,GAAiB5uN,EAClC,IAEE,aADuB4rO,GAAMrzM,KAAK,GAAG41M,qBAAgCsyL,IACrDnviB,IAClB,CAAE,MAAO1R,GAAQ,IAAD0uX,EACd,OAAO1f,GAA8B,QAAd0f,EAAA1uX,EAAMyxC,gBAAQ,IAAAi9U,OAAA,EAAdA,EAAgBh9W,OAAQ,6BACjD,KAKSuviB,GAAarzM,GACxB,oBACAljK,MAAOpkL,EAACurJ,KAA2B,IAAzB,gBAAEm9L,GAAiBn9L,EAC3B,IAGE,aAFuBm6M,GAAMrpX,IAAI,GAAG4rX,uBAEpB78W,IAClB,CAAE,MAAO1R,GAAQ,IAAD4uX,EAEd,OAAO5f,GAA8B,QAAd4f,EAAA5uX,EAAMyxC,gBAAQ,IAAAm9U,OAAA,EAAdA,EAAgBl9W,OAAQ,qBACjD,KAKSwviB,GAAYtzM,GACvB,mBACAljK,MAAA6qD,EAAAx0B,KAAiE,IAA1D,QAAEogV,EAAO,SAAEpzf,GAAUwnM,GAAE,SAAE71L,EAAQ,gBAAEsvS,GAAiBjuI,EACzD,IACE,MAAMqgV,QAAyB1hf,EAASuhf,MAAc9xM,SAOhDkyM,EALkBD,EAAiB5+iB,KAAKm+iB,IAAI,IAC7CA,EACHQ,QAASR,EAAKQ,SAAWR,EAAK7xL,kBAGKroX,MAClCk6iB,GAASA,EAAKQ,UAAYA,GAAWR,EAAK5yf,WAAaA,IAG1D,GAAIszf,EAAc,CAChB,MAAMC,EAAYh2hB,KAAKw8B,MAGvB,OAFAmlU,aAAajiR,QAAQ,OAAQtsG,KAAKE,UAAUyijB,IAC5Cp0L,aAAajiR,QAAQ,YAAas2c,GAC3BD,CACT,CACE,OAAOryM,EAAgB,sCAE3B,CAAE,MAAOhvW,GACP,OAAOgvW,EAAgBhvW,EAAM2kE,SAAW,6BAC1C,KAcE48e,GAAY/tM,GAAY,CAC5BpwW,KAAM,OACNytW,aAXmB,CACnB2wM,YAAa9ijB,KAAKC,MAAMsuX,aAAahiR,QAAQ,UAAY,KACzDw2c,mBAAoB,KACpBC,SAAU,GACVv6a,SAAS,EACTnnI,MAAO,MAOPyjW,SAAU,CACRk+M,WAAanijB,IACXA,EAAMgijB,YAAc,KACpBhijB,EAAMiijB,mBAAqB,KAC3Bx0L,aAAa/hR,WAAW,QACxB+hR,aAAa/hR,WAAW,YAAY,EAEtC02c,WAAapijB,IACXA,EAAMkijB,SAAW,EAAE,EAErBd,QAASA,CAACphjB,EAAO8/D,KACf9/D,EAAMgijB,YAAclif,EAAO7C,QAC3BwwT,aAAajiR,QAAQ,OAAQtsG,KAAKE,UAAU0gE,EAAO7C,UACnDskf,IAAwB,EAE1Bc,kBAAoBrijB,IAClBA,EAAMiijB,mBAAqB,IAAI,GAGnC9wM,cAAgB7D,IACdA,EACGC,QAAQi0M,GAAW7kf,SAAU38D,IAC5BA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQi0M,GAAWlzc,WAAW,CAACtuG,EAAO8/D,KAErC,GADA9/D,EAAM2nI,SAAU,EACZ7nE,EAAO7C,SAA2C,MAAhC6C,EAAO7C,QAAQizT,aAAsB,CACzD,MAAMoyL,EAAU,IACXxif,EAAOhiB,KAAKhsC,OACZguD,EAAO7C,SAEZj9D,EAAMgijB,YAAcM,EACpB70L,aAAajiR,QAAQ,OAAQtsG,KAAKE,UAAUkjjB,GAC9C,MACEtijB,EAAMQ,MAAQ,wBAChB,IAED+sW,QAAQi0M,GAAWjzc,UAAU,CAACvuG,EAAO8/D,KAAY,IAADswT,EAC/CpwX,EAAM2nI,SAAU,EAChB3nI,EAAMQ,OAAoB,QAAZ4vX,EAAAtwT,EAAOt/D,aAAK,IAAA4vX,OAAA,EAAZA,EAAcjrT,UAAW,4BAA4B,IAGpEooS,QAAQk0M,GAAW9kf,SAAU38D,IAC5BA,EAAM2nI,SAAU,CAAI,IAErB4lO,QAAQk0M,GAAWnzc,WAAW,CAACtuG,EAAO8/D,KAErC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMuijB,MAAQzif,EAAO7C,OAAO,IAG7BswS,QAAQk0M,GAAWlzc,UAAU,CAACvuG,EAAO8/D,KACpC9/D,EAAMQ,MAAQs/D,EAAOt/D,MAAM2kE,QAC3BnlE,EAAM2nI,SAAU,CAAK,IAEtB4lO,QAAQm0M,GAAU/kf,SAAU38D,IAC3BA,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQ,IAAI,IAEnB+sW,QAAQm0M,GAAUpzc,WAAW,CAACtuG,EAAO8/D,KACpC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMgijB,YAAclif,EAAO7C,QAC3Bj9D,EAAMiijB,mBAAqBnif,EAAO7C,OAAO,IAG1CswS,QAAQm0M,GAAUnzc,UAAU,CAACvuG,EAAO8/D,KACnC9/D,EAAM2nI,SAAU,EAChB3nI,EAAMQ,MAAQs/D,EAAO7C,SAAW,eAAe,GAC/C,KAKOklf,WAAU,GAAEC,WAAU,GAAEhB,QAAO,GAAEiB,kBAAkB,IAAIN,GAAU3xd,QAGhFnzF,SAASiB,iBAAiB,YAAaqjjB,IACvCtkjB,SAASiB,iBAAiB,UAAWqjjB,IAGrC,SAAeQ,GAAiB,QA9JF7hf,UAiKRJ,GAAWiif,GAAU3xd,QAAQtwB,GAhKjDirE,aAAY,KAVW7qE,KACvB,MAAM4hf,EAAYr0L,aAAahiR,QAAQ,aACnCq2c,GAAah2hB,KAAKw8B,MAAQw5f,EAVH,OAWzB5hf,EAASiif,KAEX,EAMEK,CAAgBtif,GAAS,GACxB,KClBL,MA6FA,GA7Fcuif,KACZ,MAAO1we,GAAQyyP,GAAKtd,UACdhnP,EAAW2hS,KACX7kI,EAAWR,MACX,QAAE70F,GAAY26N,IAAatiW,GAAUA,EAAMmhjB,QAC1CQ,EAASe,IAAcx/e,EAAAA,EAAAA,UAAS,KAChC3U,EAAUo0f,IAAez/e,EAAAA,EAAAA,UAAS,IAoBzC,OACEioW,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,2DAA0D48C,SAAA,EAEvEqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,mBAAkB48C,SAAA,EAC/BsxX,EAAAA,GAAAA,KAAA,OAAKzra,IAAKi0b,GAAM1xG,IAAI,OAAOhlV,UAAU,sBAAsB,QAI7Dkua,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,sCAAqC48C,SAAC,WACpDqxX,EAAAA,GAAAA,MAAC3mG,GAAI,CACHzyP,KAAMA,EACNk3P,OAAO,WACPtjB,SA9BWA,KAEfzlP,EAASwhf,GAAU,CAAEC,UAASpzf,cAC3BohT,SACA/5W,MAAK,KACJuvE,GAAQw6E,QAAQ,qBAChBq9E,EAAS,mBAAmB,IAE7B91M,OAAO1mB,IACN2kE,GAAQ3kE,MAAM,iBAAiBA,EAAM2kE,UAAU,GAC/C,EAqBAygP,eAlBkBvmF,IACtBl6J,GAAQ3kE,MAAM,uCACduwB,QAAQvwB,MAAM,UAAW6+N,EAAU,EAiB/BniO,UAAU,YAAW48C,SAAA,EAErBsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,iBACN7qG,KAAK,UACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,sCAAuCrrB,UAE1EsxX,EAAAA,GAAAA,KAAC91E,GAAK,CACJ/gW,MAAOotjB,EACPhrU,SAAWxzN,GAAMu/hB,EAAWv/hB,EAAEziB,OAAOnM,OACrCmrF,YAAY,4BACZxiF,UAAU,oCAIdkua,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,WACN7qG,KAAK,WACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,gCAAiCrrB,UAEpEsxX,EAAAA,GAAAA,KAAC91E,GAAMu0C,SAAQ,CACbt1Y,MAAOg6D,EACPooL,SAAWxzN,GAAMw/hB,EAAYx/hB,EAAEziB,OAAOnM,OACtCmrF,YAAY,sBACZxiF,UAAU,oCAIdkua,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CAAAn2L,UACRsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACLnjM,KAAK,UACLk+U,SAAS,SACTlzM,QAASA,EACTzqI,UAAU,iDAAgD48C,SAC3D,gBAOLsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,mBAAkB48C,UAC/BqxX,EAAAA,GAAAA,MAAA,KAAArxX,SAAA,CAAG,yBAC2B,KAC5BsxX,EAAAA,GAAAA,KAAChoM,GAAI,CAAC3iO,GAAG,kBAAkBvD,UAAU,gCAA+B48C,SAAC,mBAKrE,ECyDV,GAjJyB8ogB,KACvB,MAAO7we,GAAQyyP,GAAKtd,UACdhnP,EAAW2hS,MACVl6N,EAASg0M,IAAcz4Q,EAAAA,EAAAA,WAAS,GACjC85J,EAAWR,KAyCjB,OACE2uM,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,iEAAgE48C,SAAA,EAE7EsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,mBAAkB48C,UAC/BsxX,EAAAA,GAAAA,KAAA,OAAKzra,IAAKkjjB,GAAQ3gO,IAAI,iBAAiBhlV,UAAU,yBAInDkua,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,qCAAoC48C,SAAC,aACnDqxX,EAAAA,GAAAA,MAAC3mG,GAAI,CACHzyP,KAAMA,EACNk3P,OAAO,WACPtjB,SAnDY35S,IAGhB,GAFA2vU,GAAW,GAEP3vU,EAAOuiD,WAAaviD,EAAO82iB,gBAG7B,OAFA39e,GAAQ3kE,MAAM,gCACdm7U,GAAW,GAIb,MAAM2mO,EAAU,CACdS,QAASh1L,KACT0rL,SAAUztiB,EAAOytiB,SACjBnrf,MAAOtiD,EAAOsiD,MACdC,SAAUviD,EAAOuiD,SACjB25Y,QAASl8b,EAAOk8b,QAChBy5G,QAAS31iB,EAAO21iB,QAChB3gjB,SAAUgL,EAAOhL,UAGnBk/D,EAASshf,GAAWc,IACjB3yM,SACA/5W,MAAK,KACJuvE,GAAQw6E,QAAQ,iCAChB5tE,EAAK4+N,cACL3zE,EAAS,eAAe,IAEzB91M,OAAO1mB,IACN2kE,GAAQ3kE,MAAM,wBAAwBA,EAAM2kE,UAAU,IAEvDh+C,SAAQ,KACPw0T,GAAW,EAAM,GACjB,EAqBA/1B,eAlBkBvmF,IACtBtuM,QAAQvwB,MAAM6+N,GACdl6J,GAAQ3kE,MAAM,sCAAsC,EAiBhDtD,UAAU,YAAW48C,SAAA,EAErBsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,YACN7qG,KAAK,WACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,iCAAkCrrB,UAErEsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAACp4V,UAAU,oCAGnBkua,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,QACN7qG,KAAK,QACL5I,MAAO,CACL,CAAE88G,UAAU,EAAM3yC,QAAS,4BAC3B,CAAExoE,KAAM,QAASwoE,QAAS,gCAC1BrrB,UAEFsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAACp4V,UAAU,oCAGnBkua,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,WACN7qG,KAAK,WACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,gCAAiCrrB,UAEpEsxX,EAAAA,GAAAA,KAAC91E,GAAMu0C,SAAQ,CAAC3sY,UAAU,oCAG5Bkua,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,mBACN7qG,KAAK,kBACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,kCAAmCrrB,UAEtEsxX,EAAAA,GAAAA,KAAC91E,GAAMu0C,SAAQ,CAAC3sY,UAAU,oCAG5Bkua,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,UACN7qG,KAAK,UACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,+BAAgCrrB,UAEnEsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAACp4V,UAAU,oCAGnBkua,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,UACN7qG,KAAK,UACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,sCAAuCrrB,UAE1EsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAACp4V,UAAU,oCAGnBkua,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,WACN7qG,KAAK,WACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,gCAAiCrrB,UAEpEsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAACp4V,UAAU,oCAGnBkua,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CAAAn2L,UACRsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACLnjM,KAAK,UACLk+U,SAAS,SACTlzM,QAASA,EACTzqI,UAAU,iDAAgD48C,SAC3D,mBAOLsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,mBAAkB48C,UAC/BqxX,EAAAA,GAAAA,MAAA,KAAArxX,SAAA,CAAG,sBACmB,KACpBsxX,EAAAA,GAAAA,KAAChoM,GAAI,CAAC3iO,GAAG,eAAevD,UAAU,gCAA+B48C,SAAC,sBAKlE,ECnJV,SADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,0hCAA8hC,KAAQ,OAAQ,MAAS,YCMjtC,IAAIkpgB,GAAe,SAAsBx1gB,EAAON,GAC9C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMq7W,KAEV,EAOA,SAJ2Bz5V,EAAAA,WAAiBw5V,ICb5C,SADmB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,ogBAAwgB,KAAQ,OAAQ,MAAS,YCM3rB,IAAIE,GAAe,SAAsB11gB,EAAON,GAC9C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMu7W,KAEV,EAOA,SAJ2B35V,EAAAA,WAAiB05V,ICb5C,SADwB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,udAA2d,KAAQ,YAAa,MAAS,YCMxpB,IAAIE,GAAoB,SAA2B51gB,EAAON,GACxD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMy7W,KAEV,EAOA,SAJ2B75V,EAAAA,WAAiB45V,ICb5C,SADwB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,waAA4a,KAAQ,aAAc,MAAS,YCM1mB,IAAIE,GAAoB,SAA2B91gB,EAAON,GACxD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM27W,KAEV,EAOA,SAJ2B/5V,EAAAA,WAAiB85V,ICb5C,SAD2B,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,gxCAAoxC,KAAQ,gBAAiB,MAAS,YCMx9C,IAAIE,GAAuB,SAA8Bh2gB,EAAON,GAC9D,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM67W,KAEV,EAOA,SAJ2Bj6V,EAAAA,WAAiBg6V,ICb5C,SADyB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,mdAAud,KAAQ,cAAe,MAAS,YCMvpB,IAAIE,GAAqB,SAA4Bl2gB,EAAON,GAC1D,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM+7W,KAEV,EAOA,SAJ2Bn6V,EAAAA,WAAiBk6V,ICb5C,SADuB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,sdAA0d,KAAQ,YAAa,MAAS,YCMtpB,IAAIE,GAAmB,SAA0Bp2gB,EAAON,GACtD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMi8W,KAEV,EAOA,SAJ2Br6V,EAAAA,WAAiBo6V,KCMpCt9H,OAAM,GAAEm0H,MAAK,GAAE1rN,QAAQ,IAAI4rN,IAC3Br2O,KAAK,IAAI0wI,GAqKjB,GAnKoBp0T,IAAmB,IAAlB,SAAE9mG,GAAU8mG,EAC/B,MAAO0pJ,EAAWC,IAAgBrnO,EAAAA,EAAAA,WAAS,IACpC4gf,EAAsBC,IAA2B7gf,EAAAA,EAAAA,WAAS,GAC3D85J,EAAWR,KACXt8J,EAAW2hS,KAGXmiN,EADW5nV,KACYvH,SAEvBssV,EAAOjijB,KAAKC,MAAMsuX,aAAahiR,QAAQ,SACvCw4c,EAAW9C,EAAOA,EAAK1H,SAAW,QAClCyK,EAAe/C,EAAOA,EAAKngjB,SAAW,GAMtCmjjB,EAAkBA,KACtBJ,GAAwB,EAAK,EAczBK,EAAY,CAChB,CAAE3pjB,IAAK,mBAAoBmtM,MAAMwjO,EAAAA,GAAAA,KAAC43I,GAAY,IAAKv0c,MAAO,YAAa/3G,KAAM,oBAC7E,CAAE+D,IAAK,gBAAiBmtM,MAAMwjO,EAAAA,GAAAA,KAAClsE,GAAoB,IAAKzwP,MAAO,SAAU/3G,KAAM,iBAC/E,CAAE+D,IAAK,oBAAqBmtM,MAAMwjO,EAAAA,GAAAA,KAAC83I,GAAY,IAAKz0c,MAAO,aAAc/3G,KAAM,qBAC/E,CAAE+D,IAAK,kBAAmBmtM,MAAMwjO,EAAAA,GAAAA,KAACG,GAAgB,IAAK98T,MAAO,WAAY/3G,KAAM,mBAC/E,CAAE+D,IAAK,gBAAiBmtM,MAAMwjO,EAAAA,GAAAA,KAACg4I,GAAiB,IAAK30c,MAAO,SAAU/3G,KAAM,iBAC5E,CAAE+D,IAAK,kBAAmBmtM,MAAMwjO,EAAAA,GAAAA,KAAC43I,GAAY,IAAKv0c,MAAO,WAAY/3G,KAAM,mBAC3E,CAAC+D,IAAK,gBAAiBmtM,MAAMwjO,EAAAA,GAAAA,KAACk4I,GAAiB,IAAK70c,MAAO,SAAU/3G,KAAM,iBAC3E,CAAE+D,IAAK,eAAgBmtM,MAAMwjO,EAAAA,GAAAA,KAAChtE,GAAY,IAAK3vP,MAAO,QAAS/3G,KAAM,gBAErE,CAAE+D,IAAK,mBAAoBmtM,MAAMwjO,EAAAA,GAAAA,KAACo4I,GAAoB,IAAK/0c,MAAO,YAAa/3G,KAAM,oBACrF,CAAE+D,IAAK,SAAUmtM,MAAMwjO,EAAAA,GAAAA,KAAC5sE,GAAc,IAAK/vP,MAAO,SAAU3uC,OAAQqkf,IAGhEE,GACJl5I,EAAAA,GAAAA,MAAC9/W,GAAI,CAAAvR,SAAA,EACHsxX,EAAAA,GAAAA,KAAC//W,GAAK4kL,KAAI,CAAAn2L,UACRsxX,EAAAA,GAAAA,KAAChoM,GAAI,CAAC3iO,GAAG,iBAAgBq5C,SAAC,aADb,MAGfsxX,EAAAA,GAAAA,KAAC//W,GAAK4kL,KAAI,CAAAn2L,UACRsxX,EAAAA,GAAAA,KAAA,QAAAtxX,SAAOoqgB,EAAe,aAAaA,IAAiB,mBADvC,MAGf94I,EAAAA,GAAAA,KAAC//W,GAAK4kL,KAAI,CAASnmK,QAASq6e,EAAgBrqgB,SAAC,UAA9B,QAMnB,OACEqxX,EAAAA,GAAAA,MAACwvI,GAAM,CAAC1/iB,MAAO,CAAEk+P,UAAW,SAAUr/M,SAAA,EACpCqxX,EAAAA,GAAAA,MAACsvI,GAAK,CACJ7wQ,QAAS,KACTE,aAAW,EACXQ,UAAWA,EACXrvS,MAAO,CACL+F,SAAU,QACV1J,OAAQ,QACRN,KAAM,EACNC,IAAK,EACLiK,OAAQ,GACRE,gBAAiB,WACjB04C,SAAA,EAEFsxX,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,OAAOjC,MAAO,CAAEi8B,QAAS,OAAQN,MAAO,OAAQyB,UAAW,UAAWyhB,SAClFwwP,EAAY,QAAU,iBAEzB8gI,EAAAA,GAAAA,KAAC//W,GAAI,CAAC1xD,KAAK,SAAS4qP,aAAc,CAACy/T,GAAc/ojB,MAAO,CAAEmG,gBAAiB,WAAY04C,SACpFsqgB,EAAUphjB,KAAK6kC,IACdujY,EAAAA,GAAAA,KAAC//W,GAAK4kL,KAAI,CAERroC,KAAM//J,EAAK+/J,KACX99H,QAASjiC,EAAKi4B,OAASj4B,EAAKi4B,OAAS,KAAKhmB,SAEzCjS,EAAKnxC,MAAO00a,EAAAA,GAAAA,KAAChoM,GAAI,CAAC3iO,GAAIonC,EAAKnxC,KAAKojD,SAAEjS,EAAK4mE,QAAgB5mE,EAAK4mE,OAJxD5mE,EAAKptC,aAUlB0wa,EAAAA,GAAAA,MAACwvI,GAAM,CAACz9iB,UAAU,cAAcjC,MAAO,CAAEm5H,WAAYk2K,EAAY,GAAK,KAAMxwP,SAAA,EAC1EqxX,EAAAA,GAAAA,MAACmb,GAAM,CACLppb,UAAU,yBACVjC,MAAO,CACLi8B,QAAS,EACTl2B,SAAU,QACVpJ,MAAO,eAAe0yS,EAAY,GAAK,SACvCppS,OAAQ,GACR44C,SAAA,EAEFsxX,EAAAA,GAAAA,KAACtrO,GAAM,CAACnjM,KAAK,OAAOmtE,QAxFJw6e,KACtB/5Q,GAAcD,EAAU,EAuF4BrvS,MAAO,CAAE83B,SAAU,QAAS+mB,SACvEwwP,GAAY8gI,EAAAA,GAAAA,KAACs4I,GAAkB,KAAMt4I,EAAAA,GAAAA,KAACw4I,GAAgB,OAEzDx4I,EAAAA,GAAAA,KAACtrO,GAAM,CACLnjM,KAAK,OACL1B,MAAO,CAAE83B,SAAU,OAAQqhG,WAAY,OAAQx9F,MAAO,UAAW4B,WAAY,QAC7EsxC,QAASA,IAAMkzJ,EAAS,KACxBp1B,MAAMwjO,EAAAA,GAAAA,KAACtsE,GAAY,IAAIhlT,SACxB,UAGDqxX,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEs4H,MAAO,QAASn8F,aAAc,OAAQj7B,QAAS,OAAQs5R,WAAY,UAAW37O,SAAA,EAC1FsxX,EAAAA,GAAAA,KAAC/+G,GAAQ,CAACzsT,QAASykjB,EAASvqgB,UAC1BsxX,EAAAA,GAAAA,KAACpmF,GAAM,CAAC/pV,MAAO,CAAEmG,gBAAiB,WAAawmM,MAAMwjO,EAAAA,GAAAA,KAAChtE,GAAY,SAEpE+sE,EAAAA,GAAAA,MAAA,QAAMlwa,MAAO,CAAEm5H,WAAY,QAASt6E,SAAA,CAAC,UAAQmqgB,YAIjD74I,EAAAA,GAAAA,KAACr8E,GAAO,CACN9zV,MAAO,CACP1D,OAAQ,YACR2/B,QAAS,GACTi6F,WAAY,OACZgoI,UAAW,KAETr/M,SAEDA,QAILqxX,EAAAA,GAAAA,MAACt/G,GAAK,CACJr8D,QAASs0T,EACTrghB,OAAQ,KACRy2T,UAAQ,EACR3M,UAAU,EACVG,UAAW,CAAEx2T,QAAS,OAAQmB,UAAW,UAAWyhB,SAAA,EAEpDsxX,EAAAA,GAAAA,KAAC9mG,GAAI,CAACrpU,MAAO,CAAE83B,SAAU,QAAS+mB,SAAC,uCACnCqxX,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEg5H,UAAW,OAAQ93H,QAAS,OAAQ+sS,eAAgB,SAAUiuC,IAAK,QAASr9R,SAAA,EACxFsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACLnjM,KAAK,UACL43T,QAAM,EACNzqP,QA5HWmkW,KACnBxgD,aAAa5pS,QACb3jB,EAASiif,MACT4B,GAAwB,GACxB/mV,EAAS,eAAe,EAyHhB/hO,MAAO,CAAErD,MAAO,SAAUkiD,SAC3B,iBAGDsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACLnjM,KAAK,UACLmtE,QA5HWmwR,KACnB8pN,GAAwB,EAAM,EA4HtB9ojB,MAAO,CAAErD,MAAO,SAAUkiD,SAC3B,mBAKE,ECxIb,GA5CwBtM,IACtB,MAAM,MACJj5C,EAAK,UACLirY,EAAS,UACT52V,EAAS,iBACT81Z,EAAgB,eAChB6lH,EAAiB,GAAE,UACnBt1U,GACEzhM,EACJ,IAAIg3gB,EACJ,GAAyB,oBAAdhlL,EAETglL,EAAYhlL,EAAUjrY,OACjB,CAEL,MAAM+J,EAAM1B,OAAOrI,GACbsmC,EAAQv8B,EAAIiQ,MAAM,yBAExB,GAAKssB,GAAiB,MAARv8B,EAEP,CACL,MAAM47b,EAAWr/Z,EAAM,GACvB,IAAIwhF,EAAMxhF,EAAM,IAAM,IAClBoga,EAAUpga,EAAM,IAAM,GAC1BwhF,EAAMA,EAAIhzG,QAAQ,wBAAyBk7iB,GAClB,kBAAd37gB,IACTqyZ,EAAUA,EAAQ3zV,OAAO1+D,EAAW,KAAKjuC,MAAM,EAAGiuC,EAAY,EAAIA,EAAY,IAE5EqyZ,IACFA,EAAU,GAAGyD,IAAmBzD,KAElCupH,EAAY,CAAch7V,EAAAA,cAAoB,OAAQ,CACpD/uN,IAAK,MACLyC,UAAW,GAAG+xO,uBACbirN,EAAU79U,GAAM4+U,GAAyBzxO,EAAAA,cAAoB,OAAQ,CACtE/uN,IAAK,UACLyC,UAAW,GAAG+xO,2BACbgsN,GACL,MAnBEupH,EAAYlmjB,CAoBhB,CACA,OAAoBkrN,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAW,GAAG+xO,mBACbu1U,EAAU,EC3CTC,GAAoBnmc,IACxB,MAAM,aACJu0K,EAAY,UACZ4R,EAAS,QACTvtQ,EAAO,qBACPqrQ,EAAoB,cACpB01D,EAAa,iBACb51D,EAAgB,gBAChBwyC,EAAe,WACfn8S,GACE4lF,EACJ,MAAO,CACL,CAACu0K,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACtE,CAAC,GAAGu0K,WAAuB,CACzB1+J,aAAcswK,EACd7tQ,MAAO2rQ,EACPxvQ,SAAUklU,GAEZ,CAAC,GAAGplE,cAA0B,CAC5B17P,WAAYD,GAEd,CAAC,GAAG27P,aAAyB,CAC3Bj8P,MAAOyrQ,EACPtvQ,SAAU8hT,EACVn8S,aACA,CAAC,GAAGm6P,mBAA+B,CACjC12R,QAAS,eACTi3H,UAAW,OAEb,CAAC,GAAGy/J,qBAAgCA,oBAAgC,CAClE12R,QAAS,gBAEX,CAAC,GAAG02R,oBAAgC,CAClComC,gBAAiBx0B,GAEnB,CAAC,GAAG5R,oBAAgC,CAClCmmC,kBAAmBv0B,MAI1B,EAaH,GAAepR,GAAc,aAAa/0K,IACxC,MAAMm0K,EAAiBnC,GAAWhyK,EAAO,CAAC,GAC1C,MAAO,CAACmmc,GAAkBhyR,GAAgB,IAZPn0K,IACnC,MAAM,iBACJi7K,EAAgB,SAChBxmQ,GACEurF,EACJ,MAAO,CACL25O,cAAellU,EACf8hT,gBAAiBt7C,EAClB,ICnDH,IAAI+H,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EA6EA,SArEkBmkB,IAChB,MACIyhM,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,MACb3yQ,EAAK,WACLypjB,EAAU,MACVnwjB,EAAQ,EAAC,MACTmtC,EAAK,YACLijhB,EAAW,OACXh7c,EAAM,OACNo6B,EAAM,QACN4D,GAAU,EAAK,UAEf63P,EAAS,UACT52V,EAAS,iBACT81Z,EAAmB,IAAG,eACtB6lH,EAAiB,IAAG,aAEpB3hU,EAAY,aACZC,GACEr1M,EACJu1D,EAAOu+L,GAAO9zP,EAAO,CAAC,YAAa,YAAa,gBAAiB,QAAS,aAAc,QAAS,QAAS,cAAe,SAAU,SAAU,UAAW,YAAa,YAAa,mBAAoB,iBAAkB,eAAgB,kBACpO,aACJixO,EAAY,UACZrrJ,EACAl2H,UAAW80O,EACX/2O,MAAO83T,GACL/zC,GAAmB,aACjB/vC,EAAYwvC,EAAa,YAAaG,IACrC+rB,EAAY7nB,EAAQ8nB,GAAalX,GAASzkD,GAC3Cu1U,EAAyBh7V,EAAAA,cAAoBo7V,GAAiB,CAClElmH,iBAAkBA,EAClB6lH,eAAgBA,EAChBt1U,UAAWA,EACXuwJ,UAAWA,EACX52V,UAAWA,EACXr0C,MAAOA,IAEH8iL,EAAM8xC,KAAW8lB,EAAW,CAChC,CAAC,GAAGA,SAAgC,QAAd77G,GACrB4+G,EAAkB90O,EAAW0wQ,EAAekV,EAAQ8nB,GACjDn7D,EAAYq9G,GAAU/pP,EAAM,CAChCkqP,MAAM,EACN/6U,MAAM,IAER,OAAOy4R,EAAwBnhF,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CAAC,EAAG0wO,EAAW,CACrFvyO,UAAWm6K,EACXp8K,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg0T,GAAe93T,GACtD2nP,aAAcA,EACdC,aAAcA,IACZnhN,GAAsB8nL,EAAAA,cAAoB,MAAO,CACnDtsN,UAAW,GAAG+xO,WACbvtM,GAAqB8nL,EAAAA,cAAoB4qI,GAAU,CACpDC,WAAW,EACX1sN,QAASA,EACTzqI,UAAW,GAAG+xO,cACAzlB,EAAAA,cAAoB,MAAO,CACzCvuN,MAAOypjB,EACPxnjB,UAAW,GAAG+xO,aACbtlI,GAAuB6/G,EAAAA,cAAoB,OAAQ,CACpDtsN,UAAW,GAAG+xO,oBACbtlI,GAASg7c,EAAcA,EAAYH,GAAaA,EAAWzgb,GAAuBylF,EAAAA,cAAoB,OAAQ,CAC/GtsN,UAAW,GAAG+xO,oBACblrG,MAAW,EChFV8gb,GAAY,CAAC,CAAC,IAAK,SAEzB,CAAC,IAAK,QAEN,CAAC,IAAK,OAEN,CAAC,IAAK,MAEN,CAAC,IAAK,KAEN,CAAC,IAAK,KAEN,CAAC,IAAK,IA0BC,SAASC,GAAgBvwjB,EAAOgzC,GACrC,MAAM,OACJ3uC,EAAS,IACP2uC,EACE7mC,EAAS,IAAIorB,KAAKv3B,GAAOm5B,UACzBkO,EAAU9P,KAAKw8B,MAErB,OA/BK,SAAuBkuE,EAAU59H,GACtC,IAAImsjB,EAAevub,EACnB,MAAMwub,EAAc,aACdC,GAAYrsjB,EAAO2V,MAAMy2iB,IAAgB,IAAIhijB,KAAI2lC,GAAOA,EAAIhuC,MAAM,GAAI,KACtEuqjB,EAAetsjB,EAAOyQ,QAAQ27iB,EAAa,MAC3C3sK,EAAewsK,GAAUjwhB,QAAO,CAACgH,EAASglH,KAC9C,IAAKh9I,EAAMjL,GAAQioJ,EACnB,GAAIhlH,EAAQ91B,SAASlC,GAAO,CAC1B,MAAMrP,EAAQ4C,KAAKC,MAAM2tjB,EAAepsjB,GAExC,OADAosjB,GAAgBxwjB,EAAQoE,EACjBijC,EAAQvyB,QAAQ,IAAIiP,OAAO,GAAG1U,KAAS,MAAM2K,IAClD,MAAM6L,EAAM7L,EAAMzX,OAClB,OAAOvC,EAAMoP,WAAW4jG,SAASntF,EAAK,IAAI,GAE9C,CACA,OAAOwhB,CAAO,GACbsphB,GACH,IAAIr/iB,EAAQ,EACZ,OAAOwyY,EAAahvY,QAAQ27iB,GAAa,KACvC,MAAMz2iB,EAAQ02iB,EAASp/iB,GAEvB,OADAA,GAAS,EACF0I,CAAK,GAEhB,CAQS42iB,CADMhujB,KAAKwhB,IAAIjY,EAASk7B,EAAS,GACbhjC,EAC7B,CC7CA,IAAI0oS,GAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAMA,MAAM+7hB,GAAmB,IAAO,GAIhC,MAAMC,GAAY73gB,IAChB,MAAM,MACFj5C,EAAK,OACLqE,EAAS,WAAU,SACnB+9O,EAAQ,SACRgvE,GACEn4Q,EACJu1D,EAAOu+L,GAAO9zP,EAAO,CAAC,QAAS,SAAU,WAAY,aACjDs+D,EAAco0O,KACdolO,EAAY97V,EAAAA,OAAa,MAQzB+7V,EAAYA,KAChB,MAAMtmM,EArBV,SAAiB1qX,GACf,OAAO,IAAIu3B,KAAKv3B,GAAOm5B,SACzB,CAmBsBA,CAAQn5B,GACtB0qX,GAAanzV,KAAKw8B,QACpBg9f,EAAU1phB,QAAUmvG,aAAY,KAC9Bj/B,IACa,OAAb6qI,QAAkC,IAAbA,GAA+BA,EAASsoI,EAAYnzV,KAAKw8B,OAC1E22T,EAAYnzV,KAAKw8B,QAZZ,OAAbq9P,QAAkC,IAAbA,GAA+BA,IAChD2/P,EAAU1phB,UACZsvG,cAAco6a,EAAU1phB,SACxB0phB,EAAU1phB,QAAU,MAWlB,GACCwphB,IACL,EAEF57V,EAAAA,WAAgB,KACd+7V,IACO,KACDD,EAAU1phB,UACZsvG,cAAco6a,EAAU1phB,SACxB0phB,EAAU1phB,QAAU,KACtB,IAED,CAACrnC,IAOJ,OAAoBi1N,EAAAA,cAAoBg8V,GAAW7pjB,OAAOoD,OAAO,CAAC,EAAGgkG,EAAM,CACzExuG,MAAOA,EACPowjB,YALkBpnjB,GAAQivG,GAAajvG,EAAM,CAC7CmkC,WAAO9+B,IAKP48X,UATgBA,CAACn0G,EAAa9jP,IAAWu9gB,GAAgBz5R,EAAa1vR,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGwoC,GAAS,CAC/G3uC,cASC,EAEL,GAA4B4wN,EAAAA,KAAW67V,ICjEvCG,GAAUH,UAAYA,GACtB,YCLA,SAASpwjB,GAAEkuB,GAAG,IAAIkG,EAAEvkB,EAAElG,EAAE,GAAG,GAAG,iBAAiBukB,GAAG,iBAAiBA,EAAEvkB,GAAGukB,OAAO,GAAG,iBAAiBA,EAAE,GAAG3sB,MAAMqR,QAAQsb,GAAG,CAAC,IAAI8E,EAAE9E,EAAErsB,OAAO,IAAIuyB,EAAE,EAAEA,EAAEpB,EAAEoB,IAAIlG,EAAEkG,KAAKvkB,EAAE7P,GAAEkuB,EAAEkG,OAAOzqB,IAAIA,GAAG,KAAKA,GAAGkG,EAAE,MAAM,IAAIA,KAAKqe,EAAEA,EAAEre,KAAKlG,IAAIA,GAAG,KAAKA,GAAGkG,GAAG,OAAOlG,CAAC,CAAgI,SAAxH,WAAgB,IAAI,IAAIukB,EAAEkG,EAAEvkB,EAAE,EAAElG,EAAE,GAAGqpB,EAAE7iB,UAAUtO,OAAOgO,EAAEmjB,EAAEnjB,KAAKqe,EAAE/d,UAAUN,MAAMukB,EAAEp0B,GAAEkuB,MAAMvkB,IAAIA,GAAG,KAAKA,GAAGyqB,GAAG,OAAOzqB,CAAC,mHCIpW6mjB,GAAW,SAAkBlxjB,GACtC,OAAc,IAAVA,EACK,EAELA,EAAQ,EACH,GAED,CACV,EACWmxjB,GAAY,SAAmBnxjB,GACxC,OAAOyoG,KAASzoG,IAAUA,EAAM8F,QAAQ,OAAS9F,EAAMuC,OAAS,CAClE,EACWimG,GAAW,SAAkBxoG,GACtC,OAAOoxjB,KAAepxjB,KAAWqxjB,KAAMrxjB,EACzC,EACWsxjB,GAAa,SAAoBtxjB,GAC1C,OAAOwoG,GAASxoG,IAAUyoG,KAASzoG,EACrC,EACI+rF,GAAY,EACLopB,GAAW,SAAkBC,GACtC,IAAIvwF,IAAOknE,GACX,MAAO,GAAGnmF,OAAOwvG,GAAU,IAAIxvG,OAAOif,EACxC,EAUW0siB,GAAkB,SAAyB9xO,EAAS+xO,GAC7D,IAKIxxjB,EALA2/B,EAAe9uB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EACnF2wS,EAAW3wS,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,IAAmBA,UAAU,GAC9E,IAAK23F,GAASi3O,KAAah3O,KAASg3O,GAClC,OAAO9/S,EAGT,GAAIwxhB,GAAU1xO,GAAU,CACtB,IAAInuU,EAAQmuU,EAAQ35U,QAAQ,KAC5B9F,EAAQwxjB,EAAa7thB,WAAW87S,EAAQr5U,MAAM,EAAGkL,IAAU,GAC7D,MACEtR,GAASy/U,EAQX,OANI4xO,KAAMrxjB,KACRA,EAAQ2/B,GAEN6hR,GAAYxhT,EAAQwxjB,IACtBxxjB,EAAQwxjB,GAEHxxjB,CACT,EACWyxjB,GAAwB,SAA+B5tjB,GAChE,IAAKA,EACH,OAAO,KAET,IAAIwD,EAAOD,OAAOC,KAAKxD,GACvB,OAAIwD,GAAQA,EAAK9E,OACRsB,EAAIwD,EAAK,IAEX,IACT,EAkBWqqjB,GAAoB,SAA2BC,EAASC,GACjE,OAAIppd,GAASmpd,IAAYnpd,GAASopd,GACzB,SAAU98hB,GACf,OAAO68hB,EAAU78hB,GAAK88hB,EAAUD,EAClC,EAEK,WACL,OAAOC,CACT,CACF,EACO,SAASC,GAAiBlyd,EAAKmyd,EAAcC,GAClD,OAAKpyd,GAAQA,EAAIp9F,OAGVo9F,EAAIjtF,MAAK,SAAUof,GACxB,OAAOA,IAAkC,oBAAjBggiB,EAA8BA,EAAahgiB,GAASljB,KAAIkjB,EAAOggiB,MAAmBC,CAC5G,IAJS,IAKX,CAOO,IC1GIl9gB,GAAO,SAAcu8L,EAAW/sO,GACzC,IAAK,IAAIqtO,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClGpmN,EAAKomN,EAAO,GAAK9gO,UAAU8gO,EAiB/B,oECrBO,SAASqgV,GAAa12iB,EAAGC,GAE9B,IAAK,IAAIrV,KAAOoV,EACd,GAAI,CAAC,EAAE5W,eAAevD,KAAKma,EAAGpV,MAAU,CAAC,EAAExB,eAAevD,KAAKoa,EAAGrV,IAAQoV,EAAEpV,KAASqV,EAAErV,IACrF,OAAO,EAGX,IAAK,IAAIyrO,KAAQp2N,EACf,GAAI,CAAC,EAAE7W,eAAevD,KAAKoa,EAAGo2N,KAAU,CAAC,EAAEjtO,eAAevD,KAAKma,EAAGq2N,GAChE,OAAO,EAGX,OAAO,CACT,CCbA,SAAS/tO,GAAQ8vB,GAAgC,OAAO9vB,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,GAAQ8vB,EAAI,CAqB7T,IACWu+hB,GAAqB,CAAC,wBAAyB,cAAe,oBAAqB,YAAa,eAAgB,gBAAiB,gBAAiB,eAAgB,gBAAiB,eAAgB,mBAAoB,eAAgB,gBAAiB,oBAAqB,gBAAiB,cAAe,gBAAiB,cAAe,eAAgB,oBAAqB,aAAc,kBAAmB,aAAc,YAAa,aAAc,iBAAkB,uBAAwB,mBAAoB,YAAa,mBAAoB,gBAAiB,eAAgB,gBAAiB,gBAAiB,gBAAiB,uBAAwB,gBAAiB,gBAAiB,eAAgB,gBAAiB,eAAgB,YAAa,gBAAiB,gBAAiB,gBAAiB,iBAAkB,YAAa,QAAS,SAAU,KAAM,OAAQ,MAAO,QAAS,SAAU,MAAO,OAAQ,QAQ94B,SAAU,QAAS,OAAQ,WAAY,eAAgB,aAAc,WAAY,oBAAqB,eAAgB,aAAc,YAAa,aAAc,SAAU,gBAAiB,gBAAiB,cAAe,UAAW,gBAAiB,gBAAiB,cAAe,OAAQ,QAAS,OAAQ,KAAM,WAAY,YAAa,OAAQ,WAAY,gBAAiB,WAAY,qBAAsB,4BAA6B,eAAgB,iBAAkB,oBAAqB,mBAAoB,SAAU,KAAM,KAAM,IAAK,aAAc,UAAW,kBAAmB,YAAa,UAAW,UAAW,mBAAoB,MAAO,KAAM,KAAM,WAAY,YAAa,mBAAoB,MAAO,WAAY,4BAA6B,OAAQ,cAAe,WAAY,SAAU,YAAa,cAAe,aAAc,eAAgB,YAAa,aAAc,WAAY,iBAAkB,cAAe,YAAa,cAAe,aAAc,SAAU,OAAQ,KAAM,KAAM,KAAM,KAAM,YAAa,6BAA8B,2BAA4B,WAAY,oBAAqB,gBAAiB,UAAW,YAAa,eAAgB,OAAQ,cAAe,iBAAkB,MAAO,KAAM,YAAa,KAAM,KAAM,KAAM,KAAM,IAAK,eAAgB,mBAAoB,UAAW,YAAa,aAAc,WAAY,eAAgB,gBAAiB,gBAAiB,oBAAqB,QAAS,YAAa,eAAgB,YAAa,cAAe,cAAe,cAAe,OAAQ,mBAAoB,YAAa,eAAgB,OAAQ,aAAc,SAAU,UAAW,WAAY,QAAS,SAAU,cAAe,SAAU,WAAY,mBAAoB,oBAAqB,aAAc,UAAW,aAAc,sBAAuB,mBAAoB,eAAgB,gBAAiB,YAAa,YAAa,YAAa,gBAAiB,sBAAuB,iBAAkB,IAAK,SAAU,OAAQ,OAAQ,kBAAmB,cAAe,YAAa,qBAAsB,mBAAoB,UAAW,SAAU,SAAU,KAAM,KAAM,OAAQ,iBAAkB,QAAS,UAAW,mBAAoB,mBAAoB,QAAS,eAAgB,cAAe,eAAgB,QAAS,QAAS,cAAe,YAAa,cAAe,wBAAyB,yBAA0B,SAAU,SAAU,kBAAmB,mBAAoB,gBAAiB,iBAAkB,mBAAoB,gBAAiB,cAAe,eAAgB,iBAAkB,cAAe,UAAW,UAAW,aAAc,iBAAkB,aAAc,gBAAiB,KAAM,YAAa,KAAM,KAAM,oBAAqB,qBAAsB,UAAW,cAAe,eAAgB,aAAc,cAAe,SAAU,eAAgB,UAAW,WAAY,cAAe,cAAe,WAAY,eAAgB,aAAc,aAAc,gBAAiB,SAAU,cAAe,cAAe,KAAM,KAAM,IAAK,mBAAoB,UAAW,eAAgB,eAAgB,YAAa,YAAa,YAAa,aAAc,YAAa,UAAW,UAAW,QAAS,aAAc,WAAY,KAAM,KAAM,IAAK,mBAAoB,IAAK,aAAc,MAAO,MAAO,SACxqGC,GAAkB,CAAC,SAAU,cAKtBC,GAAwB,CACjC7pb,IAhByB,CAAC,UAAW,YAiBrC8pb,QAASF,GACTG,SAAUH,IAEDI,GAAY,CAAC,0BAA2B,SAAU,gBAAiB,QAAS,eAAgB,UAAW,iBAAkB,mBAAoB,0BAA2B,qBAAsB,4BAA6B,sBAAuB,6BAA8B,UAAW,iBAAkB,SAAU,gBAAiB,WAAY,kBAAmB,gBAAiB,uBAAwB,UAAW,iBAAkB,UAAW,iBAAkB,WAAY,kBAAmB,YAAa,mBAAoB,SAAU,gBAAiB,UAAW,iBAAkB,YAAa,mBAAoB,aAAc,oBAAqB,UAAW,iBAAkB,UAAW,iBAAkB,YAAa,mBAAoB,mBAAoB,0BAA2B,mBAAoB,0BAA2B,YAAa,mBAAoB,cAAe,qBAAsB,UAAW,iBAAkB,eAAgB,sBAAuB,mBAAoB,0BAA2B,cAAe,qBAAsB,UAAW,iBAAkB,SAAU,gBAAiB,YAAa,mBAAoB,aAAc,oBAAqB,eAAgB,sBAAuB,WAAY,kBAAmB,YAAa,mBAAoB,YAAa,mBAAoB,YAAa,mBAAoB,eAAgB,sBAAuB,iBAAkB,wBAAyB,YAAa,mBAAoB,aAAc,oBAAqB,UAAW,iBAAkB,gBAAiB,uBAAwB,gBAAiB,uBAAwB,SAAU,gBAAiB,YAAa,mBAAoB,cAAe,qBAAsB,aAAc,oBAAqB,cAAe,qBAAsB,aAAc,oBAAqB,cAAe,qBAAsB,SAAU,gBAAiB,cAAe,qBAAsB,eAAgB,eAAgB,cAAe,qBAAsB,aAAc,oBAAqB,cAAe,qBAAsB,YAAa,mBAAoB,WAAY,kBAAmB,gBAAiB,uBAAwB,aAAc,oBAAqB,cAAe,qBAAsB,eAAgB,sBAAuB,gBAAiB,uBAAwB,gBAAiB,uBAAwB,cAAe,qBAAsB,kBAAmB,yBAA0B,iBAAkB,wBAAyB,iBAAkB,wBAAyB,gBAAiB,uBAAwB,eAAgB,sBAAuB,sBAAuB,6BAA8B,uBAAwB,8BAA+B,WAAY,kBAAmB,UAAW,iBAAkB,mBAAoB,0BAA2B,iBAAkB,wBAAyB,uBAAwB,8BAA+B,kBAAmB,0BA4Cn3FC,GAAqB,SAA4Bt5gB,EAAOu5gB,GACjE,IAAKv5gB,GAA0B,oBAAVA,GAAyC,mBAAVA,EAClD,OAAO,KAET,IAAIqxZ,EAAarxZ,EAIjB,IAHkB2/D,EAAAA,EAAAA,gBAAe3/D,KAC/BqxZ,EAAarxZ,EAAMA,QAEhB/oC,KAASo6b,GACZ,OAAO,KAET,IAAIv0R,EAAM,CAAC,EAQX,OAPA3uK,OAAOC,KAAKijc,GAAYpoc,SAAQ,SAAUgE,GACpCosjB,GAAU/gjB,SAASrL,KACrB6vK,EAAI7vK,GAAOssjB,GAAc,SAAU5jiB,GACjC,OAAO07a,EAAWpkc,GAAKokc,EAAY17a,EACrC,EAEJ,IACOmnJ,CACT,EAOW08Y,GAAqB,SAA4Bx5gB,EAAOt7B,EAAMrM,GACvE,IAAKpB,KAAS+oC,IAA6B,WAAnBr1C,GAAQq1C,GAC9B,OAAO,KAET,IAAI88H,EAAM,KAQV,OAPA3uK,OAAOC,KAAK4xC,GAAO/2C,SAAQ,SAAUgE,GACnC,IAAIotC,EAAO2F,EAAM/yC,GACbosjB,GAAU/gjB,SAASrL,IAAwB,oBAATotC,IAC/ByiI,IAAKA,EAAM,CAAC,GACjBA,EAAI7vK,GAfmB,SAAgCwsjB,EAAiB/0iB,EAAMrM,GAClF,OAAO,SAAUsd,GAEf,OADA8jiB,EAAgB/0iB,EAAMrM,EAAOsd,GACtB,IACT,CACF,CAUiB+jiB,CAAuBr/gB,EAAM31B,EAAMrM,GAElD,IACOykK,CACT,EC7HIq5D,GAAY,CAAC,YACfiO,GAAa,CAAC,YAChB,SAASlC,GAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAE3e,SAASvI,GAAQ8vB,GAAgC,OAAO9vB,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,GAAQ8vB,EAAI,CAW7T,IAAIk/hB,GAA0B,CAC5B5hL,MAAO,UACP6hL,UAAW,cACXC,QAAS,YACTC,UAAW,cACXC,UAAW,cACXC,SAAU,aACVC,WAAY,eACZC,WAAY,eACZC,YAAa,gBACbC,SAAU,aACVC,UAAW,cACXC,WAAY,eACZ32L,YAAa,gBACb42L,SAAU,iBAWDt9V,GAAiB,SAAwBu9V,GAClD,MAAoB,kBAATA,EACFA,EAEJA,EAGEA,EAAKxwgB,aAAewwgB,EAAKpkjB,MAAQ,YAF/B,EAGX,EAIIqkjB,GAAe,KACfC,GAAa,KACN/qd,GAAU,SAASA,EAAQrjD,GACpC,GAAIA,IAAamugB,IAAgBzxjB,MAAMqR,QAAQqgjB,IAC7C,OAAOA,GAET,IAAIthjB,EAAS,GAYb,OAXAolG,EAAAA,SAASv1G,QAAQqjD,GAAU,SAAUl8C,GAC/BwoG,KAAMxoG,MACNmwG,EAAAA,GAAAA,YAAWnwG,GACbgJ,EAASA,EAAOzM,OAAOgjG,EAAQv/F,EAAM4vC,MAAMsM,WAG3ClzC,EAAOpP,KAAKoG,GAEhB,IACAsqjB,GAAathjB,EACbqhjB,GAAenugB,EACRlzC,CACT,EAMO,SAASuhjB,GAAcrugB,EAAUn9C,GACtC,IAAIiK,EAAS,GACT61E,EAAQ,GAcZ,OAZEA,EADEjmF,MAAMqR,QAAQlL,GACRA,EAAKqG,KAAI,SAAUqmB,GACzB,OAAOohM,GAAephM,EACxB,IAEQ,CAACohM,GAAe9tN,IAE1BwgG,GAAQrjD,GAAUrjD,SAAQ,SAAUmH,GAClC,IAAIwqjB,EAAYjljB,KAAIvF,EAAO,qBAAuBuF,KAAIvF,EAAO,cAC3B,IAA9B6+E,EAAMpiF,QAAQ+tjB,IAChBxhjB,EAAOpP,KAAKoG,EAEhB,IACOgJ,CACT,CAMO,SAASyhjB,GAAgBvugB,EAAUn9C,GACxC,IAAIiK,EAASuhjB,GAAcrugB,EAAUn9C,GACrC,OAAOiK,GAAUA,EAAO,EAC1B,CAKO,IAyBI0hjB,GAAsB,SAA6BvtjB,GAC5D,IAAKA,IAAOA,EAAGyyC,MACb,OAAO,EAET,IAAI+6gB,EAAYxtjB,EAAGyyC,MACjB51C,EAAQ2wjB,EAAU3wjB,MAClBN,EAASixjB,EAAUjxjB,OACrB,SAAKylG,GAASnlG,IAAUA,GAAS,IAAMmlG,GAASzlG,IAAWA,GAAU,EAIvE,EACIkxjB,GAAW,CAAC,IAAK,WAAY,cAAe,eAAgB,UAAW,eAAgB,gBAAiB,mBAAoB,SAAU,WAAY,gBAAiB,SAAU,OAAQ,OAAQ,UAAW,UAAW,gBAAiB,sBAAuB,cAAe,mBAAoB,oBAAqB,oBAAqB,iBAAkB,UAAW,UAAW,UAAW,UAAW,UAAW,iBAAkB,UAAW,UAAW,cAAe,eAAgB,WAAY,eAAgB,qBAAsB,cAAe,SAAU,eAAgB,SAAU,OAAQ,YAAa,mBAAoB,iBAAkB,gBAAiB,gBAAiB,IAAK,QAAS,WAAY,QAAS,QAAS,OAAQ,eAAgB,SAAU,OAAQ,WAAY,gBAAiB,QAAS,OAAQ,UAAW,UAAW,WAAY,iBAAkB,OAAQ,SAAU,MAAO,OAAQ,QAAS,MAAO,SAAU,SAAU,OAAQ,WAAY,QAAS,OAAQ,QAAS,MAAO,OAAQ,SACp9BC,GAAe,SAAsB7qjB,GACvC,OAAOA,GAASA,EAAMjB,MAAQqgG,KAASp/F,EAAMjB,OAAS6rjB,GAASnujB,QAAQuD,EAAMjB,OAAS,CACxF,EAsCW+rjB,GAAc,SAAqBl7gB,EAAOm7gB,EAAeC,GAClE,IAAKp7gB,GAA0B,oBAAVA,GAAyC,mBAAVA,EAClD,OAAO,KAET,IAAIqxZ,EAAarxZ,EAIjB,IAHkB2/D,EAAAA,EAAAA,gBAAe3/D,KAC/BqxZ,EAAarxZ,EAAMA,QAEhB/oC,KAASo6b,GACZ,OAAO,KAET,IAAIv0R,EAAM,CAAC,EAeX,OANA3uK,OAAOC,KAAKijc,GAAYpoc,SAAQ,SAAUgE,GACxC,IAAIoujB,GA9C2B,SAA+Bj9d,EAAUnxF,EAAKkujB,EAAeC,GAC9F,IAAIE,EAMAC,EAA4K,QAAjJD,EAAkD,OAA1BpC,SAA4D,IAA1BA,QAAmC,EAASA,GAAsBkC,UAAuD,IAA1BE,EAAmCA,EAAwB,GACnP,OAAQvoiB,KAAWqrE,KAAcg9d,GAAkBG,EAAwBjjjB,SAASrL,IAAQ+rjB,GAAmB1gjB,SAASrL,KAASkujB,GAAiB9B,GAAU/gjB,SAASrL,EACvK,EAsCQuujB,CAAqD,QAA9BH,EAAchqH,SAAwC,IAAhBgqH,OAAyB,EAASA,EAAYpujB,GAAMA,EAAKkujB,EAAeC,KACvIt+Y,EAAI7vK,GAAOokc,EAAWpkc,GAE1B,IACO6vK,CACT,EAQW2+Y,GAAkB,SAASA,EAAgBC,EAAcC,GAClE,GAAID,IAAiBC,EACnB,OAAO,EAET,IAAIx/gB,EAAQqiE,EAAAA,SAASriE,MAAMu/gB,GAC3B,GAAIv/gB,IAAUqiE,EAAAA,SAASriE,MAAMw/gB,GAC3B,OAAO,EAET,GAAc,IAAVx/gB,EACF,OAAO,EAET,GAAc,IAAVA,EAEF,OAAOy/gB,GAAmB5yjB,MAAMqR,QAAQqhjB,GAAgBA,EAAa,GAAKA,EAAc1yjB,MAAMqR,QAAQshjB,GAAgBA,EAAa,GAAKA,GAE1I,IAAK,IAAItyjB,EAAI,EAAGA,EAAI8yC,EAAO9yC,IAAK,CAC9B,IAAIwyjB,EAAYH,EAAaryjB,GACzByyjB,EAAYH,EAAatyjB,GAC7B,GAAIL,MAAMqR,QAAQwhjB,IAAc7yjB,MAAMqR,QAAQyhjB,IAC5C,IAAKL,EAAgBI,EAAWC,GAC9B,OAAO,OAGJ,IAAKF,GAAmBC,EAAWC,GACxC,OAAO,CAEX,CACA,OAAO,CACT,EACWF,GAAqB,SAA4BC,EAAWC,GACrE,GAAIljd,KAAMijd,IAAcjjd,KAAMkjd,GAC5B,OAAO,EAET,IAAKljd,KAAMijd,KAAejjd,KAAMkjd,GAAY,CAC1C,IAAI1oa,EAAOyoa,EAAU77gB,OAAS,CAAC,EAC7B07gB,EAAetoa,EAAK9mG,SACpB49U,EAAYhoJ,GAAyB9uF,EAAM+iF,IACzCtxD,EAAQi3Y,EAAU97gB,OAAS,CAAC,EAC9B27gB,EAAe92Y,EAAMv4H,SACrBy/X,EAAY7pM,GAAyBr9D,EAAOu/D,IAC9C,OAAIs3U,GAAgBC,EACX5C,GAAa7uL,EAAW6hD,IAAc0vI,GAAgBC,EAAcC,IAExED,IAAiBC,GACb5C,GAAa7uL,EAAW6hD,EAGnC,CACA,OAAO,CACT,EACWgwI,GAAgB,SAAuBzvgB,EAAU0vgB,GAC1D,IAAI5wb,EAAW,GACXmkW,EAAS,CAAC,EAgBd,OAfA5/X,GAAQrjD,GAAUrjD,SAAQ,SAAUmH,EAAOiI,GACzC,GAAI4ijB,GAAa7qjB,GACfg7H,EAASphI,KAAKoG,QACT,GAAIA,EAAO,CAChB,IAAI45C,EAAcizK,GAAe7sN,EAAMjB,MACnCo5P,EAAQyzT,EAAUhygB,IAAgB,CAAC,EACrC9W,EAAUq1N,EAAMr1N,QAChB+hE,EAAOszJ,EAAMtzJ,KACf,GAAI/hE,KAAa+hE,IAASs6X,EAAOvlb,IAAe,CAC9C,IAAIs+E,EAAUp1F,EAAQ9iC,EAAO45C,EAAa3xC,GAC1C+yH,EAASphI,KAAKs+H,GACdinW,EAAOvlb,IAAe,CACxB,CACF,CACF,IACOohF,CACT,EClSA,SAASzgI,GAAQ8vB,GAAgC,OAAO9vB,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,GAAQ8vB,EAAI,CAC7T,SAASxf,GAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,GAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,GAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,GAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,GAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,GAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,GAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,GAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,GAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAG3O,SAASm5O,GAAevvF,EAAKnrJ,GAAK,OAKlC,SAAyBmrJ,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAOA,CAAK,CAL3Byna,CAAgBzna,IAIzD,SAA+B/sJ,EAAGwC,GAAK,IAAI4xB,EAAI,MAAQp0B,EAAI,KAAO,oBAAsBoD,QAAUpD,EAAEoD,OAAOC,WAAarD,EAAE,cAAe,GAAI,MAAQo0B,EAAG,CAAE,IAAIlG,EAAGvkB,EAAG/H,EAAG0yB,EAAG1Z,EAAI,GAAI/K,GAAI,EAAImjB,GAAI,EAAI,IAAM,GAAIpxB,GAAKwyB,EAAIA,EAAE3zB,KAAKT,IAAI4U,KAAM,IAAMpS,EAAG,CAAE,GAAIkE,OAAO0tB,KAAOA,EAAG,OAAQvkB,GAAI,CAAI,MAAO,OAASA,GAAKqe,EAAItsB,EAAEnB,KAAK2zB,IAAIzO,QAAU/K,EAAErY,KAAK2rB,EAAE5uB,OAAQsb,EAAE/Y,SAAWW,GAAIqN,GAAI,GAAK,CAAE,MAAO7P,GAAKgzB,GAAI,EAAIrpB,EAAI3J,CAAG,CAAE,QAAU,IAAM,IAAK6P,GAAK,MAAQukB,EAAU,SAAME,EAAIF,EAAU,SAAK1tB,OAAO4tB,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAItB,EAAG,MAAMrpB,CAAG,CAAE,CAAE,OAAOiR,CAAG,CAAE,CAJxd65iB,CAAsB1na,EAAKnrJ,IAE5F,SAAqCoxB,EAAG0hiB,GAAU,IAAK1hiB,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO2hiB,GAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAc,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAM,GAAU,QAANhF,GAAqB,QAANA,EAAa,OAAOpI,MAAM8J,KAAK2nB,GAAI,GAAU,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAI,OAAOgrjB,GAAkB3hiB,EAAG0hiB,EAAS,CAF7TE,CAA4B7na,EAAKnrJ,IACnI,WAA8B,MAAM,IAAI0N,UAAU,4IAA8I,CADvDuljB,EAAoB,CAG7J,SAASF,GAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CAY3K,IAAIyxZ,IAAmC78c,EAAAA,EAAAA,aAAW,SAAU0zC,EAAM1zG,GACvE,IAAI88gB,EAASppa,EAAKopa,OAChBC,EAAwBrpa,EAAKspa,iBAC7BA,OAA6C,IAA1BD,EAAmC,CACpDryjB,OAAQ,EACRN,QAAS,GACP2yjB,EACJE,EAAavpa,EAAKhpJ,MAClBA,OAAuB,IAAfuyjB,EAAwB,OAASA,EACzCC,EAAcxpa,EAAKtpJ,OACnBA,OAAyB,IAAhB8yjB,EAAyB,OAASA,EAC3CC,EAAgBzpa,EAAKn/G,SACrBA,OAA6B,IAAlB4ohB,EAA2B,EAAIA,EAC1ClxT,EAAYv4G,EAAKu4G,UACjBw/D,EAAY/3K,EAAK+3K,UACjB7+Q,EAAW8mG,EAAK9mG,SAChBwwgB,EAAgB1pa,EAAKhmD,SACrBA,OAA6B,IAAlB0vd,EAA2B,EAAIA,EAC1ClxiB,EAAKwnI,EAAKxnI,GACVlc,EAAY0jJ,EAAK1jJ,UACjB0wO,EAAWhtF,EAAKgtF,SAChB28U,EAAa3pa,EAAK3lJ,MAClBA,OAAuB,IAAfsvjB,EAAwB,CAAC,EAAIA,EACnCvrU,GAAe/7K,EAAAA,EAAAA,QAAO,MACtBunf,GAAcvnf,EAAAA,EAAAA,UAClBunf,EAAY5uhB,QAAUgyM,GACtBhrK,EAAAA,EAAAA,qBAAoB11B,GAAK,WACvB,OAAOvxC,OAAOgN,eAAeq2O,EAAapjN,QAAS,UAAW,CAC5Dz4B,IAAK,WAGH,OADA4tB,QAAQqY,KAAK,mFACN41M,EAAapjN,OACtB,EACA72B,cAAc,GAElB,IACA,IAIEqvO,EAAa7C,IAJCruK,EAAAA,EAAAA,UAAS,CACrBmwK,eAAgB62U,EAAiBtyjB,MACjCowZ,gBAAiBkiK,EAAiB5yjB,SAEG,GACvC6ta,EAAQ/wL,EAAW,GACnBq2U,EAAWr2U,EAAW,GACpBs2U,GAAmBjof,EAAAA,EAAAA,cAAY,SAAUh6B,EAAUkihB,GACrDF,GAAS,SAAUh1T,GACjB,IAAIm1T,EAAezzjB,KAAK22B,MAAM2a,GAC1BoihB,EAAgB1zjB,KAAK22B,MAAM68hB,GAC/B,OAAIl1T,EAAUpiB,iBAAmBu3U,GAAgBn1T,EAAUuyJ,kBAAoB6iK,EACtEp1T,EAEF,CACLpiB,eAAgBu3U,EAChB5iK,gBAAiB6iK,EAErB,GACF,GAAG,KACHlof,EAAAA,EAAAA,YAAU,WACR,IAAIhiD,EAAW,SAAkB5U,GAC/B,IAAI++iB,EACAC,EAAwBh/iB,EAAQ,GAAGi/N,YACrCqI,EAAiB03U,EAAsBnzjB,MACvCowZ,EAAkB+iK,EAAsBzzjB,OAC1CozjB,EAAiBr3U,EAAgB20K,GACgB,QAAhD8iK,EAAuBN,EAAY5uhB,eAA8C,IAAzBkvhB,GAAmCA,EAAqBp1jB,KAAK80jB,EAAan3U,EAAgB20K,EACrJ,EACIptT,EAAW,IACbj6E,EAAWijF,KAASjjF,EAAUi6E,EAAU,CACtCjI,UAAU,EACVwI,SAAS,KAGb,IAAIh5E,EAAW,IAAI6pN,eAAerrN,GAC9Bq+W,EAAwBhgJ,EAAapjN,QAAQvlC,wBAC/Cg9O,EAAiB2rJ,EAAsBpnY,MACvCowZ,EAAkBhpB,EAAsB1nY,OAG1C,OAFAozjB,EAAiBr3U,EAAgB20K,GACjC7lY,EAASC,QAAQ48N,EAAapjN,SACvB,WACLzZ,EAAS4mN,YACX,CACF,GAAG,CAAC2hV,EAAkB9vd,IACtB,IAAIowd,GAAejof,EAAAA,EAAAA,UAAQ,WACzB,IAAIswK,EAAiB8xL,EAAM9xL,eACzB20K,EAAkBmd,EAAMnd,gBAC1B,GAAI30K,EAAiB,GAAK20K,EAAkB,EAC1C,OAAO,KAET5+W,GAAKs8gB,GAAU9tjB,IAAU8tjB,GAAUpujB,GAAS,kHAAmHM,EAAON,GACtK8xC,IAAM4ghB,GAAUA,EAAS,EAAG,4CAA6CA,GACzE,IAAIiB,EAAkBvF,GAAU9tjB,GAASy7O,EAAiBz7O,EACtDszjB,EAAmBxF,GAAUpujB,GAAU0wZ,EAAkB1wZ,EACzD0yjB,GAAUA,EAAS,IAEjBiB,EAEFC,EAAmBD,EAAkBjB,EAC5BkB,IAETD,EAAkBC,EAAmBlB,GAInCrxP,GAAauyP,EAAmBvyP,IAClCuyP,EAAmBvyP,IAGvBvvR,GAAK6hhB,EAAkB,GAAKC,EAAmB,EAAG,gQAAiQD,EAAiBC,EAAkBtzjB,EAAON,EAAQmqC,EAAU03N,EAAW6wT,GAC1X,IAAImB,GAAY30jB,MAAMqR,QAAQiyC,IAAa2wK,GAAe3wK,EAASn9C,MAAMsoG,SAAS,SAClF,OAAOukH,EAAAA,SAAexmN,IAAI82C,GAAU,SAAUl8C,GAC5C,OAAkB4rN,EAAAA,eAAqB5rN,IACjB4uG,EAAAA,EAAAA,cAAa5uG,EAAOuwO,GAAc,CACpDv2O,MAAOqzjB,EACP3zjB,OAAQ4zjB,GACPC,EAAW,CACZlwjB,MAAOkzO,GAAc,CACnB72O,OAAQ,OACRM,MAAO,OACP+gU,UAAWuyP,EACXx3hB,SAAUu3hB,GACTrtjB,EAAM4vC,MAAMvyC,QACb,CAAC,IAEA2C,CACT,GACF,GAAG,CAACosjB,EAAQlwgB,EAAUxiD,EAAQqhU,EAAWx/D,EAAW13N,EAAU0jY,EAAOvta,IACrE,OAAoB4xN,EAAAA,cAAoB,MAAO,CAC7CpwM,GAAIA,EAAK,GAAGjf,OAAOif,QAAMxW,EACzB1F,UAAWshY,GAAK,gCAAiCthY,GACjDjC,MAAOkzO,GAAcA,GAAc,CAAC,EAAGlzO,GAAQ,CAAC,EAAG,CACjDrD,MAAOA,EACPN,OAAQA,EACRmqC,SAAUA,EACV03N,UAAWA,EACXw/D,UAAWA,IAEbzrR,IAAK8xM,GACJgsU,EACL,gDC7JIrhd,GAAS,mBACb,SAAS2qH,GAAUqR,EAAWxgK,GAC1B,IAAIwgK,EAIA,MAAM,IAAItsO,MAAMswG,GAKxB,CCZA,IAAIg6H,GAAY,CAAC,WAAY,QAAS,SAAU,UAAW,YAAa,QAAS,QAAS,QAC1F,SAAS/O,KAAiS,OAApRA,GAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,GAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASsqO,GAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAQpe,SAAS0qjB,GAAQ59gB,GACtB,IAAIsM,EAAWtM,EAAMsM,SACnBliD,EAAQ41C,EAAM51C,MACdN,EAASk2C,EAAMl2C,OACf28V,EAAUzmT,EAAMymT,QAChB/2V,EAAYswC,EAAMtwC,UAClBjC,EAAQuyC,EAAMvyC,MACdymC,EAAQ8L,EAAM9L,MACd5jB,EAAO0vB,EAAM1vB,KACbstS,EAAS17E,GAAyBliM,EAAOm2L,IACvC0nV,EAAUp3N,GAAW,CACvBr8V,MAAOA,EACPN,OAAQA,EACRgpB,EAAG,EACHoK,EAAG,GAED4giB,EAAa9sL,GAAK,mBAAoBthY,GAC1C,OAAoBssN,EAAAA,cAAoB,MAAOoL,GAAS,CAAC,EAAG8zV,GAAYt9P,GAAQ,EAAM,OAAQ,CAC5FluT,UAAWoujB,EACX1zjB,MAAOA,EACPN,OAAQA,EACR2D,MAAOA,EACPg5V,QAAS,GAAG95V,OAAOkxjB,EAAQ/qiB,EAAG,KAAKnmB,OAAOkxjB,EAAQ3giB,EAAG,KAAKvwB,OAAOkxjB,EAAQzzjB,MAAO,KAAKuC,OAAOkxjB,EAAQ/zjB,UACrFkyN,EAAAA,cAAoB,QAAS,KAAM9nL,GAAqB8nL,EAAAA,cAAoB,OAAQ,KAAM1rM,GAAOg8B,EACpH,CClCA,IAAI6pL,GAAY,CAAC,WAAY,aAC7B,SAAS/O,KAAiS,OAApRA,GAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,GAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASsqO,GAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAKpe,IAAI6qjB,GAAqB/hW,EAAAA,YAAiB,SAAUh8K,EAAON,GAChE,IAAI4M,EAAWtM,EAAMsM,SACnB58C,EAAYswC,EAAMtwC,UAClBkuT,EAAS17E,GAAyBliM,EAAOm2L,IACvC2nV,EAAa9sL,GAAK,iBAAkBthY,GACxC,OAAoBssN,EAAAA,cAAoB,IAAKoL,GAAS,CACpD13N,UAAWoujB,GACV5C,GAAYt9P,GAAQ,GAAO,CAC5Bl+Q,IAAKA,IACH4M,EACN,ICjBA,SAAS3hD,GAAQ8vB,GAAgC,OAAO9vB,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,GAAQ8vB,EAAI,CAC7T,SAAS2sM,KAAiS,OAApRA,GAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,GAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASmsO,GAAevvF,EAAKnrJ,GAAK,OAKlC,SAAyBmrJ,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAOA,CAAK,CAL3Byna,CAAgBzna,IAIzD,SAA+B/sJ,EAAGwC,GAAK,IAAI4xB,EAAI,MAAQp0B,EAAI,KAAO,oBAAsBoD,QAAUpD,EAAEoD,OAAOC,WAAarD,EAAE,cAAe,GAAI,MAAQo0B,EAAG,CAAE,IAAIlG,EAAGvkB,EAAG/H,EAAG0yB,EAAG1Z,EAAI,GAAI/K,GAAI,EAAImjB,GAAI,EAAI,IAAM,GAAIpxB,GAAKwyB,EAAIA,EAAE3zB,KAAKT,IAAI4U,KAAM,IAAMpS,EAAG,CAAE,GAAIkE,OAAO0tB,KAAOA,EAAG,OAAQvkB,GAAI,CAAI,MAAO,OAASA,GAAKqe,EAAItsB,EAAEnB,KAAK2zB,IAAIzO,QAAU/K,EAAErY,KAAK2rB,EAAE5uB,OAAQsb,EAAE/Y,SAAWW,GAAIqN,GAAI,GAAK,CAAE,MAAO7P,GAAKgzB,GAAI,EAAIrpB,EAAI3J,CAAG,CAAE,QAAU,IAAM,IAAK6P,GAAK,MAAQukB,EAAU,SAAME,EAAIF,EAAU,SAAK1tB,OAAO4tB,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAItB,EAAG,MAAMrpB,CAAG,CAAE,CAAE,OAAOiR,CAAG,CAAE,CAJxd65iB,CAAsB1na,EAAKnrJ,IAE5F,SAAqCoxB,EAAG0hiB,GAAU,IAAK1hiB,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO2hiB,GAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAc,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAM,GAAU,QAANhF,GAAqB,QAANA,EAAa,OAAOpI,MAAM8J,KAAK2nB,GAAI,GAAU,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAI,OAAOgrjB,GAAkB3hiB,EAAG0hiB,EAAS,CAF7TE,CAA4B7na,EAAKnrJ,IACnI,WAA8B,MAAM,IAAI0N,UAAU,4IAA8I,CADvDuljB,EAAoB,CAG7J,SAASF,GAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CAGlL,SAAS7vJ,GAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,GAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,GAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,GAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,GAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,GAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,GAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,GAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,GAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAY3O,SAASozjB,GAAiBj3jB,GACxB,OAAOiC,MAAMqR,QAAQtT,IAAUsxjB,GAAWtxjB,EAAM,KAAOsxjB,GAAWtxjB,EAAM,IAAMA,EAAMqG,KAAK,OAASrG,CACpG,CACO,IAAIk3jB,GAAwB,SAA+Bj+gB,GAChE,IAAIkzf,EAAmBlzf,EAAMxyB,UAC3BA,OAAiC,IAArB0lhB,EAA8B,MAAQA,EAClDgrB,EAAsBl+gB,EAAM+gT,aAC5BA,OAAuC,IAAxBm9N,EAAiC,CAAC,EAAIA,EACrDC,EAAmBn+gB,EAAMo/d,UACzBA,OAAiC,IAArB++C,EAA8B,CAAC,EAAIA,EAC/CC,EAAoBp+gB,EAAMq+gB,WAC1BA,OAAmC,IAAtBD,EAA+B,CAAC,EAAIA,EACjD3uf,EAAUzvB,EAAMyvB,QAChBuiU,EAAYhyV,EAAMgyV,UAClBssL,EAAat+gB,EAAMs+gB,WACnB/nJ,EAAmBv2X,EAAMu2X,iBACzBguG,EAAiBvke,EAAMuke,eACvBtja,EAAQjhE,EAAMihE,MACds9c,EAAiBv+gB,EAAMu+gB,eACvBC,EAAwBx+gB,EAAMy+gB,mBAC9BA,OAA+C,IAA1BD,GAA2CA,EAyD9DE,EAAa/9U,GAAc,CAC7B52O,OAAQ,EACR2/B,QAAS,GACT91B,gBAAiB,OACjBqpI,OAAQ,iBACRuM,WAAY,UACXu3M,GACC49N,EAAkBh+U,GAAc,CAClC52O,OAAQ,GACPs0jB,GACCO,GAAYhmd,KAAMqI,GAClB49c,EAAaD,EAAW39c,EAAQ,GAChC69c,EAAY9tL,GAAK,2BAA4BulC,GAC7CwoJ,EAAU/tL,GAAK,yBAA0BuzI,GACzCq6C,GAAYL,QAA8BnpjB,IAAZq6D,GAAqC,OAAZA,IACzDovf,EAAaN,EAAet9c,EAAOxxC,IAErC,IAAIuvf,EAA0BP,EAAqB,CACjDloU,KAAM,SACN,YAAa,aACX,CAAC,EACL,OAAoBv6B,EAAAA,cAAoB,MAAOoL,GAAS,CACtD13N,UAAWovjB,EACXrxjB,MAAOixjB,GACNM,GAAuChjW,EAAAA,cAAoB,IAAK,CACjEtsN,UAAWqvjB,EACXtxjB,MAAOkxjB,GACO3iW,EAAAA,eAAqB6iW,GAAcA,EAAa,GAAGlyjB,OAAOkyjB,IAnFtD,WAClB,GAAIpvf,GAAWA,EAAQnmE,OAAQ,CAC7B,IAIIs+O,GAAS02U,EAAarxd,KAAOx9B,EAAS6uf,GAAc7uf,GAASj6D,KAAI,SAAUqjB,EAAOxvB,GACpF,GAAmB,SAAfwvB,EAAM1pB,KACR,OAAO,KAET,IAAI8vjB,EAAiBt+U,GAAc,CACjChyO,QAAS,QACTg7B,WAAY,EACZE,cAAe,EACfT,MAAOvQ,EAAMuQ,OAAS,QACrBg2e,GACC8/C,EAAiBrmiB,EAAMm5W,WAAaA,GAAagsL,GACjDj3jB,EAAQ8xB,EAAM9xB,MAChBqP,EAAOyiB,EAAMziB,KACXw9b,EAAa7sc,EACbo4jB,EAAY/ojB,EAChB,GAAI8ojB,GAAgC,MAAdtrH,GAAmC,MAAburH,EAAmB,CAC7D,IAAIz0J,EAAYw0J,EAAen4jB,EAAOqP,EAAMyiB,EAAOxvB,EAAGomE,GACtD,GAAIzmE,MAAMqR,QAAQqwZ,GAAY,CAC5B,IAAI00J,EAAar7U,GAAe2mL,EAAW,GAC3CkpC,EAAawrH,EAAW,GACxBD,EAAYC,EAAW,EACzB,MACExrH,EAAalpC,CAEjB,CACA,OAGE1uM,EAAAA,cAAoB,KAAM,CACxBtsN,UAAW,wBACXzC,IAAK,gBAAgBN,OAAOtD,GAC5BoE,MAAOwxjB,GACN5G,GAAW8G,GAA0BnjW,EAAAA,cAAoB,OAAQ,CAClEtsN,UAAW,8BACVyvjB,GAAa,KAAM9G,GAAW8G,GAA0BnjW,EAAAA,cAAoB,OAAQ,CACrFtsN,UAAW,mCACV8d,GAAa,KAAmBwuM,EAAAA,cAAoB,OAAQ,CAC7DtsN,UAAW,+BACVkkc,GAA0B53O,EAAAA,cAAoB,OAAQ,CACvDtsN,UAAW,8BACVmpB,EAAM1tB,MAAQ,IAErB,IACA,OAAoB6wN,EAAAA,cAAoB,KAAM,CAC5CtsN,UAAW,6BACXjC,MAjDc,CACdi8B,QAAS,EACT3/B,OAAQ,IAgDP69O,EACL,CACA,OAAO,IACT,CA4BwFy3U,GAC1F,EC/HA,SAAS10jB,GAAQ8vB,GAAgC,OAAO9vB,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,GAAQ8vB,EAAI,CAC7T,SAASulF,GAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,GAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,GAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,GAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAK3O,IAAI00jB,GAAmB,2BACnBC,GAAiB,CACnBv3b,WAAY,UAEP,SAASw3b,GAAuBpsa,GACrC,IAAIqsa,EAAarsa,EAAKqsa,WACpBC,EAAatsa,EAAKssa,WAClBC,EAAavsa,EAAKusa,WACpB,OAAO3uL,GAAKsuL,GAAkBt/c,GAAgBA,GAAgBA,GAAgBA,GAAgB,CAAC,EAAG,GAAGrzG,OAAO2yjB,GAAkB,UAAW/vd,GAASmwd,IAAeD,GAAclwd,GAASkwd,EAAW3siB,IAAM4siB,GAAcD,EAAW3siB,GAAI,GAAGnmB,OAAO2yjB,GAAkB,SAAU/vd,GAASmwd,IAAeD,GAAclwd,GAASkwd,EAAW3siB,IAAM4siB,EAAaD,EAAW3siB,GAAI,GAAGnmB,OAAO2yjB,GAAkB,WAAY/vd,GAASowd,IAAeF,GAAclwd,GAASkwd,EAAWviiB,IAAMyiiB,GAAcF,EAAWviiB,GAAI,GAAGvwB,OAAO2yjB,GAAkB,QAAS/vd,GAASowd,IAAeF,GAAclwd,GAASkwd,EAAWviiB,IAAMyiiB,EAAaF,EAAWviiB,GAC5mB,CACO,SAAS0iiB,GAAsB/6Y,GACpC,IAAIg7Y,EAAqBh7Y,EAAMg7Y,mBAC7BJ,EAAa56Y,EAAM46Y,WACnBxyjB,EAAM43K,EAAM53K,IACZ6yjB,EAAgBj7Y,EAAMi7Y,cACtBtsjB,EAAWqxK,EAAMrxK,SACjBusjB,EAAmBl7Y,EAAMk7Y,iBACzBC,EAAmBn7Y,EAAMm7Y,iBACzBv5N,EAAU5hL,EAAM4hL,QAChBw5N,EAAmBp7Y,EAAMo7Y,iBAC3B,GAAIzsjB,GAAY+7F,GAAS/7F,EAASvG,IAChC,OAAOuG,EAASvG,GAElB,IAAIy/b,EAAW+yH,EAAWxyjB,GAAO+yjB,EAAmBF,EAChDI,EAAWT,EAAWxyjB,GAAO6yjB,EACjC,OAAID,EAAmB5yjB,GACd8yjB,EAAiB9yjB,GAAOy/b,EAAWwzH,EAExCH,EAAiB9yjB,GACIy/b,EACAjmG,EAAQx5V,GAEtBtD,KAAKwhB,IAAI+0iB,EAAUz5N,EAAQx5V,IAE7BtD,KAAKwhB,IAAIuhb,EAAUjmG,EAAQx5V,IAEdizjB,EAAWF,EACXv5N,EAAQx5V,GAAOgzjB,EAE5Bt2jB,KAAKwhB,IAAIuhb,EAAUjmG,EAAQx5V,IAE7BtD,KAAKwhB,IAAI+0iB,EAAUz5N,EAAQx5V,GACpC,CChDA,SAAStC,GAAQ8vB,GAAgC,OAAO9vB,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,GAAQ8vB,EAAI,CAC7T,SAASxf,GAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,GAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,GAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,GAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,GAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CAEtb,SAASwqiB,GAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,GAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASyoa,GAAWxuZ,EAAGpB,EAAG9E,GAAK,OAAO8E,EAAI8uZ,GAAgB9uZ,GAC1D,SAAoCvzB,EAAMgB,GAAQ,GAAIA,IAA2B,WAAlByC,GAAQzC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI6O,UAAU,4DAA+D,OAC1P,SAAgC7P,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI43O,eAAe,6DAAgE,OAAO53O,CAAM,CAD4F4gQ,CAAuB5gQ,EAAO,CADjOsib,CAA2B3tZ,EAAG4tZ,KAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,GAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,GAAK,CAG1M,SAAS8zZ,KAA8B,IAAM,IAAI5tZ,GAAK3hB,QAAQlS,UAAUkhB,QAAQhhB,KAAK4hD,QAAQC,UAAU7vC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO2hB,GAAI,CAAE,OAAQ4tZ,GAA4B,WAAuC,QAAS5tZ,CAAG,IAAM,CAClP,SAAS0tZ,GAAgB9uZ,GAA+J,OAA1J8uZ,GAAkBp7a,OAAO4O,eAAiB5O,OAAOmN,eAAe5F,OAAS,SAAyB+kB,GAAK,OAAOA,EAAEvoB,WAAa/D,OAAOmN,eAAemf,EAAI,EAAU8uZ,GAAgB9uZ,EAAI,CAEnN,SAAS2liB,GAAgB3liB,EAAGjL,GAA6I,OAAxI4wiB,GAAkBjyjB,OAAO4O,eAAiB5O,OAAO4O,eAAerH,OAAS,SAAyB+kB,EAAGjL,GAAsB,OAAjBiL,EAAEvoB,UAAYsd,EAAUiL,CAAG,EAAU2liB,GAAgB3liB,EAAGjL,EAAI,CACvM,SAASwwF,GAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,GAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAC3O,SAASsvb,GAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,GAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,GAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,GAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAI5G,IACWg3jB,GAAkC,SAAU3jW,GACrD,SAAS2jW,IACP,IAAIz9hB,GAlBR,SAAyBujC,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CAmBpJooO,CAAgBh3O,KAAMk4jB,GACtB,IAAK,IAAI5nV,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GA0BzB,OAvBA14H,GADAp9E,EAAQynZ,GAAWlib,KAAMk4jB,EAAoB,GAAG1zjB,OAAO2lB,IAChC,QAAS,CAC9BguiB,WAAW,EACXC,sBAAuB,CACrBztiB,EAAG,EACHoK,EAAG,GAELsjiB,gBAAiB,CACfp2jB,OAAQ,EACRN,QAAS,KAGbk2G,GAAgBp9E,EAAO,iBAAiB,SAAU2+B,GAE9C,IAAIk/f,EAAuBC,EAAwBC,EAAwBC,EAD3D,WAAdr/f,EAAMt0D,KAER21B,EAAMy7E,SAAS,CACbiid,WAAW,EACXC,sBAAuB,CACrBztiB,EAAqK,QAAjK2tiB,EAA8E,QAArDC,EAAyB99hB,EAAMod,MAAMy/gB,kBAAmD,IAA3BiB,OAAoC,EAASA,EAAuB5tiB,SAAyC,IAA1B2tiB,EAAmCA,EAAwB,EACxOvjiB,EAAsK,QAAlKyjiB,EAA+E,QAArDC,EAAyBh+hB,EAAMod,MAAMy/gB,kBAAmD,IAA3BmB,OAAoC,EAASA,EAAuB1jiB,SAA0C,IAA3ByjiB,EAAoCA,EAAyB,IAInP,IACO/9hB,CACT,CAEA,OA1CF,SAAmB+5L,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7lN,UAAU,sDAAyD4lN,EAAS30N,UAAYmG,OAAO4D,OAAO6qN,GAAcA,EAAW50N,UAAW,CAAE+C,YAAa,CAAEhE,MAAO41N,EAAUjgN,UAAU,EAAMnF,cAAc,KAAWpJ,OAAOgN,eAAewhN,EAAU,YAAa,CAAEjgN,UAAU,IAAckgN,GAAYwjW,GAAgBzjW,EAAUC,EAAa,CAyCjcqiB,CAAUohV,EAAoB3jW,GA/CV9uM,EAgDAyyiB,GAhDal8L,EAgDO,CAAC,CACvCl3X,IAAK,aACLlG,MAAO,WACL,GAAIoB,KAAKkyT,aAAelyT,KAAKkyT,YAAYxxT,sBAAuB,CAC9D,IAAIsjJ,EAAMhkJ,KAAKkyT,YAAYxxT,yBACvBc,KAAK6E,IAAI29I,EAAI/hJ,MAAQjC,KAAKqK,MAAMgujB,gBAAgBp2jB,OAxC9C,GAwCkET,KAAK6E,IAAI29I,EAAIriJ,OAAS3B,KAAKqK,MAAMgujB,gBAAgB12jB,QAxCnH,IAyCJ3B,KAAKk2G,SAAS,CACZmid,gBAAiB,CACfp2jB,MAAO+hJ,EAAI/hJ,MACXN,OAAQqiJ,EAAIriJ,SAIpB,MAAiD,IAAtC3B,KAAKqK,MAAMgujB,gBAAgBp2jB,QAAuD,IAAvCjC,KAAKqK,MAAMgujB,gBAAgB12jB,QAC/E3B,KAAKk2G,SAAS,CACZmid,gBAAiB,CACfp2jB,OAAQ,EACRN,QAAS,IAIjB,GACC,CACDmD,IAAK,oBACLlG,MAAO,WACL0I,SAASiB,iBAAiB,UAAWvI,KAAK8oU,eAC1C9oU,KAAK04jB,YACP,GACC,CACD5zjB,IAAK,uBACLlG,MAAO,WACL0I,SAASwiD,oBAAoB,UAAW9pD,KAAK8oU,cAC/C,GACC,CACDhkU,IAAK,qBACLlG,MAAO,WACL,IAAI+5jB,EAAwBC,EACxB54jB,KAAK63C,MAAM/kB,QACb9yB,KAAK04jB,aAEF14jB,KAAKqK,MAAM8tjB,aAG0C,QAApDQ,EAAyB34jB,KAAK63C,MAAMy/gB,kBAAmD,IAA3BqB,OAAoC,EAASA,EAAuBhuiB,KAAO3qB,KAAKqK,MAAM+tjB,sBAAsBztiB,IAA2D,QAApDiuiB,EAAyB54jB,KAAK63C,MAAMy/gB,kBAAmD,IAA3BsB,OAAoC,EAASA,EAAuB7jiB,KAAO/0B,KAAKqK,MAAM+tjB,sBAAsBrjiB,IAC3V/0B,KAAKqK,MAAM8tjB,WAAY,GAE3B,GACC,CACDrzjB,IAAK,SACLlG,MAAO,WACL,IAAIohQ,EAAShgQ,KACT+tP,EAAc/tP,KAAK63C,MACrB/kB,EAASi7N,EAAYj7N,OACrB4kiB,EAAqB3pU,EAAY2pU,mBACjCh2b,EAAoBqsH,EAAYrsH,kBAChCm3b,EAAkB9qU,EAAY8qU,gBAC9B10gB,EAAW4pM,EAAY5pM,SACvBmzgB,EAAavpU,EAAYupU,WACzBwB,EAAa/qU,EAAY+qU,WACzBC,EAAoBhrU,EAAYgrU,kBAChCj+f,EAASizL,EAAYjzL,OACrBzvD,EAAW0iP,EAAY1iP,SACvBusjB,EAAmB7pU,EAAY6pU,iBAC/BoB,EAAiBjrU,EAAYirU,eAC7B16N,EAAUvwG,EAAYuwG,QACtByuF,EAAeh/L,EAAYg/L,aACzBksI,ED9DH,SAA6BrtV,GAClC,IAQmB2rV,EAAYC,EAR3BE,EAAqB9rV,EAAM8rV,mBAC7BJ,EAAa1rV,EAAM0rV,WACnBK,EAAgB/rV,EAAM+rV,cACtBtsjB,EAAWugO,EAAMvgO,SACjBusjB,EAAmBhsV,EAAMgsV,iBACzBsB,EAAattV,EAAMstV,WACnBF,EAAiBptV,EAAMotV,eACvB16N,EAAU1yH,EAAM0yH,QAiClB,MAAO,CACL66N,cAhCED,EAAWv3jB,OAAS,GAAKu3jB,EAAWj3jB,MAAQ,GAAKq1jB,EAlBhD,SAA2Bl3T,GAChC,IAAIm3T,EAAan3T,EAAMm3T,WACrBC,EAAap3T,EAAMo3T,WAErB,MAAO,CACLj4e,UAFiB6gL,EAAM44T,eAEK,eAAex0jB,OAAO+yjB,EAAY,QAAQ/yjB,OAAOgzjB,EAAY,UAAY,aAAahzjB,OAAO+yjB,EAAY,QAAQ/yjB,OAAOgzjB,EAAY,OAEpK,CAkCoB4B,CAAkB,CAChC7B,WAvBFA,EAAaE,GAAsB,CACjCC,mBAAoBA,EACpBJ,WAAYA,EACZxyjB,IAAK,IACL6yjB,cAAeA,EACftsjB,SAAUA,EACVusjB,iBAAkBA,EAClBC,iBAAkBqB,EAAWj3jB,MAC7Bq8V,QAASA,EACTw5N,iBAAkBx5N,EAAQr8V,QAe1Bu1jB,WAbFA,EAAaC,GAAsB,CACjCC,mBAAoBA,EACpBJ,WAAYA,EACZxyjB,IAAK,IACL6yjB,cAAeA,EACftsjB,SAAUA,EACVusjB,iBAAkBA,EAClBC,iBAAkBqB,EAAWv3jB,OAC7B28V,QAASA,EACTw5N,iBAAkBx5N,EAAQ38V,SAK1Bq3jB,eAAgBA,IAGF5B,GAIhBiC,WAAYhC,GAAuB,CACjCE,WAAYA,EACZC,WAAYA,EACZF,WAAYA,IAGlB,CCaiCgC,CAAoB,CAC3C5B,mBAAoBA,EACpBJ,WAAYA,EACZK,cAAe78f,EACfzvD,SAAUA,EACVusjB,iBAAkBA,EAClBsB,WAAYl5jB,KAAKqK,MAAMgujB,gBACvBW,eAAgBA,EAChB16N,QAASA,IAEX+6N,EAAaJ,EAAqBI,WAClCF,EAAgBF,EAAqBE,cACnC3uK,EAAahyK,GAAcA,GAAc,CAC3CjoL,WAAYwogB,GAAqBjmiB,EAAS,aAAatuB,OAAOk9H,EAAmB,OAAOl9H,OAAOq0jB,QAAmB5rjB,GACjHksjB,GAAgB,CAAC,EAAG,CACrBh/U,cAAe,OACft6G,YAAa7/H,KAAKqK,MAAM8tjB,WAAarliB,GAAUgmiB,EAAa,UAAY,SACxEztjB,SAAU,WACV/J,IAAK,EACLD,KAAM,GACL0rb,GACH,OAIEl5N,EAAAA,cAAoB,MAAO,CACzBgwB,UAAW,EACXt8O,UAAW8xjB,EACX/zjB,MAAOklZ,EACPjzW,IAAK,SAAa3vC,GAChBo4P,EAAOkyD,YAActqT,CACvB,GACCu8C,EAEP,MApJ0E6zgB,GAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,GAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CAsJ/C,CAxI6C,CAwI3CxlR,EAAAA,eCxJS8id,GAAS,CAClBC,QAH2B,qBAAXj0jB,QAA0BA,OAAO+B,UAAY/B,OAAO+B,SAASf,eAAiBhB,OAAO2nB,YAIrG1f,IAAK,SAAa1I,GAChB,OAAOy0jB,GAAOz0jB,EAChB,EACA6E,IAAK,SAAa7E,EAAKlG,GACrB,GAAmB,kBAARkG,EACTy0jB,GAAOz0jB,GAAOlG,MACT,CACL,IAAIqH,EAAOD,OAAOC,KAAKnB,GACnBmB,GAAQA,EAAK9E,QACf8E,EAAKnF,SAAQ,SAAUF,GACrB24jB,GAAO34jB,GAAKkE,EAAIlE,EAClB,GAEJ,CACF,wBCRK,SAAS64jB,GAAenyf,EAAS2jE,EAAQyub,GAC9C,OAAe,IAAXzub,EACK38B,KAAOhnC,EAASoyf,GAErB9uiB,KAAWqgH,GACN38B,KAAOhnC,EAAS2jE,GAElB3jE,CACT,CCnBA,SAAS9kE,GAAQ8vB,GAAgC,OAAO9vB,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,GAAQ8vB,EAAI,CAC7T,SAASxf,GAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,GAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,GAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,GAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,GAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CAEtb,SAASwqiB,GAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,GAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASyoa,GAAWxuZ,EAAGpB,EAAG9E,GAAK,OAAO8E,EAAI8uZ,GAAgB9uZ,GAC1D,SAAoCvzB,EAAMgB,GAAQ,GAAIA,IAA2B,WAAlByC,GAAQzC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI6O,UAAU,4DAA+D,OAC1P,SAAgC7P,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI43O,eAAe,6DAAgE,OAAO53O,CAAM,CAD4F4gQ,CAAuB5gQ,EAAO,CADjOsib,CAA2B3tZ,EAAG4tZ,KAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,GAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,GAAK,CAG1M,SAAS8zZ,KAA8B,IAAM,IAAI5tZ,GAAK3hB,QAAQlS,UAAUkhB,QAAQhhB,KAAK4hD,QAAQC,UAAU7vC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO2hB,GAAI,CAAE,OAAQ4tZ,GAA4B,WAAuC,QAAS5tZ,CAAG,IAAM,CAClP,SAAS0tZ,GAAgB9uZ,GAA+J,OAA1J8uZ,GAAkBp7a,OAAO4O,eAAiB5O,OAAOmN,eAAe5F,OAAS,SAAyB+kB,GAAK,OAAOA,EAAEvoB,WAAa/D,OAAOmN,eAAemf,EAAI,EAAU8uZ,GAAgB9uZ,EAAI,CAEnN,SAAS2liB,GAAgB3liB,EAAGjL,GAA6I,OAAxI4wiB,GAAkBjyjB,OAAO4O,eAAiB5O,OAAO4O,eAAerH,OAAS,SAAyB+kB,EAAGjL,GAAsB,OAAjBiL,EAAEvoB,UAAYsd,EAAUiL,CAAG,EAAU2liB,GAAgB3liB,EAAGjL,EAAI,CACvM,SAASwwF,GAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,GAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAC3O,SAASsvb,GAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,GAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,GAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,GAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAU5G,SAASw4jB,GAAchpiB,GACrB,OAAOA,EAAM2Y,OACf,CAUO,IAAI4tQ,GAAuB,SAAU1iF,GAC1C,SAAS0iF,IAEP,OApCJ,SAAyBj5O,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CAmCpJooO,CAAgBh3O,KAAMi3S,GACfirI,GAAWlib,KAAMi3S,EAASxnS,UACnC,CAEA,OA/BF,SAAmB+kN,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7lN,UAAU,sDAAyD4lN,EAAS30N,UAAYmG,OAAO4D,OAAO6qN,GAAcA,EAAW50N,UAAW,CAAE+C,YAAa,CAAEhE,MAAO41N,EAAUjgN,UAAU,EAAMnF,cAAc,KAAWpJ,OAAOgN,eAAewhN,EAAU,YAAa,CAAEjgN,UAAU,IAAckgN,GAAYwjW,GAAgBzjW,EAAUC,EAAa,CA8BjcqiB,CAAUmgE,EAAS1iF,GApCC9uM,EAqCAwxR,GArCa+kF,EAqCJ,CAAC,CAC5Bl3X,IAAK,SACLlG,MAAO,WACL,IAAI67B,EAAQz6B,KACR+tP,EAAc/tP,KAAK63C,MACrB/kB,EAASi7N,EAAYj7N,OACrB4kiB,EAAqB3pU,EAAY2pU,mBACjCh2b,EAAoBqsH,EAAYrsH,kBAChCm3b,EAAkB9qU,EAAY8qU,gBAC9Bp6iB,EAAUsvO,EAAYtvO,QACtB64iB,EAAavpU,EAAYupU,WACzBqC,EAAa5rU,EAAY4rU,WACzBZ,EAAoBhrU,EAAYgrU,kBAChCj+f,EAASizL,EAAYjzL,OACrBwM,EAAUymL,EAAYzmL,QACtBsyf,EAAgB7rU,EAAY6rU,cAC5BvujB,EAAW0iP,EAAY1iP,SACvBusjB,EAAmB7pU,EAAY6pU,iBAC/BoB,EAAiBjrU,EAAYirU,eAC7B16N,EAAUvwG,EAAYuwG,QACtByuF,EAAeh/L,EAAYg/L,aACzB8sI,EAA2B,OAAZvyf,QAAgC,IAAZA,EAAqBA,EAAU,GAClEqyf,GAAcE,EAAa14jB,SAC7B04jB,EAAeJ,GAAenyf,EAAQn2D,QAAO,SAAUuf,GACrD,OAAsB,MAAfA,EAAM9xB,SAAiC,IAAf8xB,EAAMopiB,MAAiBr/hB,EAAMod,MAAM9S,cACpE,IAAI60hB,EAAeF,KAErB,IAAIZ,EAAae,EAAa14jB,OAAS,EACvC,OAAoB0yN,EAAAA,cAAoBqkW,GAAoB,CAC1DR,mBAAoBA,EACpBh2b,kBAAmBA,EACnBm3b,gBAAiBA,EACjBE,kBAAmBA,EACnBjmiB,OAAQA,EACRwkiB,WAAYA,EACZwB,WAAYA,EACZh+f,OAAQA,EACRzvD,SAAUA,EACVusjB,iBAAkBA,EAClBoB,eAAgBA,EAChB16N,QAASA,EACTyuF,aAAcA,GAxDtB,SAAuBtua,EAASo5B,GAC9B,OAAkBg8K,EAAAA,eAAqBp1M,GACjBo1M,EAAAA,aAAmBp1M,EAASo5B,GAE3B,oBAAZp5B,EACWo1M,EAAAA,cAAoBp1M,EAASo5B,GAE/Bg8K,EAAAA,cAAoBiiW,GAAuBj+gB,EACjE,CAiDSq/gB,CAAcz4iB,EAAS+5N,GAAcA,GAAc,CAAC,EAAGx4O,KAAK63C,OAAQ,CAAC,EAAG,CACzEyvB,QAASuyf,KAEb,MAlF0E7B,GAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,GAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CAoF/C,CArDkC,CAqDhCxlR,EAAAA,eACFoB,GAAgBo/L,GAAS,cAAe,WACxCp/L,GAAgBo/L,GAAS,eAAgB,CACvCq/Q,oBAAoB,EACpBoB,mBAAoB,CAClB/siB,GAAG,EACHoK,GAAG,GAEL2sG,kBAAmB,IACnBm3b,gBAAiB,OACjBjgO,aAAc,CAAC,EACf0+N,WAAY,CACV3siB,EAAG,EACHoK,EAAG,GAELiF,QAAQ,EACR+/hB,YAAa,CAAC,EACdJ,YAAY,EACZZ,mBAAoBQ,GAAOC,MAC3BviD,UAAW,CAAC,EACZi/C,WAAY,CAAC,EACbp7f,OAAQ,GACR88f,iBAAkB,CAChBjtiB,GAAG,EACHoK,GAAG,GAEL1P,UAAW,MACX4uR,QAAS,QACT+kR,gBAAgB,EAChB16N,QAAS,CACP3zU,EAAG,EACHoK,EAAG,EACHpzB,OAAQ,EACRM,MAAO,GAET8qb,aAAc,CAAC,6BC5HEvrb,KAAK6E,IACH7E,KAAK23H,MADnB,MAEMI,GAAM/3H,KAAK+3H,IAGXD,IAFM93H,KAAKwhB,IACLxhB,KAAKyhB,IACLzhB,KAAK83H,KACXQ,GAAOt4H,KAAKs4H,KAGZ9tD,GAAKxqE,KAAK2rH,GAEV6sc,GAAM,EAAIhuf,GCTvB,UACEiuf,IAAAA,CAAK9zf,EAAS9jD,GACZ,MAAM/iB,EAAIw6H,GAAKz3G,EAAO2pD,IACtB7F,EAAQq+E,OAAOllJ,EAAG,GAClB6mE,EAAQ+9E,IAAI,EAAG,EAAG5kJ,EAAG,EAAG06jB,GAC1B,GCLF,IACEC,IAAAA,CAAK9zf,EAAS9jD,GACZ,MAAM/iB,EAAIw6H,GAAKz3G,EAAO,GAAK,EAC3B8jD,EAAQq+E,QAAQ,EAAIllJ,GAAIA,GACxB6mE,EAAQs+E,QAAQnlJ,GAAIA,GACpB6mE,EAAQs+E,QAAQnlJ,GAAI,EAAIA,GACxB6mE,EAAQs+E,OAAOnlJ,GAAI,EAAIA,GACvB6mE,EAAQs+E,OAAOnlJ,GAAIA,GACnB6mE,EAAQs+E,OAAO,EAAInlJ,GAAIA,GACvB6mE,EAAQs+E,OAAO,EAAInlJ,EAAGA,GACtB6mE,EAAQs+E,OAAOnlJ,EAAGA,GAClB6mE,EAAQs+E,OAAOnlJ,EAAG,EAAIA,GACtB6mE,EAAQs+E,QAAQnlJ,EAAG,EAAIA,GACvB6mE,EAAQs+E,QAAQnlJ,EAAGA,GACnB6mE,EAAQs+E,QAAQ,EAAInlJ,EAAGA,GACvB6mE,EAAQw+E,WACV,GChBIu1a,GAAQpgc,GAAK,EAAI,GACjBqgc,GAAkB,EAARD,GAEhB,IACED,IAAAA,CAAK9zf,EAAS9jD,GACZ,MAAM0S,EAAI+kG,GAAKz3G,EAAO83iB,IAChBxviB,EAAIoK,EAAImliB,GACd/zf,EAAQq+E,OAAO,GAAIzvH,GACnBoxC,EAAQs+E,OAAO95H,EAAG,GAClBw7C,EAAQs+E,OAAO,EAAG1vH,GAClBoxC,EAAQs+E,QAAQ95H,EAAG,GACnBw7C,EAAQw+E,WACV,GCZF,IACEs1a,IAAAA,CAAK9zf,EAAS9jD,GACZ,MAAM7V,EAAIstH,GAAKz3G,GACTsI,GAAKne,EAAI,EACf25D,EAAQ7mC,KAAK3U,EAAGA,EAAGne,EAAGA,EACxB,GCJIgwL,GAAKljE,GAAIttD,GAAK,IAAMstD,GAAI,EAAIttD,GAAK,IACjCouf,GAAK9gc,GAAI0gc,GAAM,IAAMx9X,GACrBonB,IAAMrqF,GAAIygc,GAAM,IAAMx9X,GAE5B,IACEy9X,IAAAA,CAAK9zf,EAAS9jD,GACZ,MAAM/iB,EAAIw6H,GAPH,kBAOQz3G,GACTsI,EAAIyviB,GAAK96jB,EACTy1B,EAAI6uL,GAAKtkN,EACf6mE,EAAQq+E,OAAO,GAAIllJ,GACnB6mE,EAAQs+E,OAAO95H,EAAGoK,GAClB,IAAK,IAAI7zB,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAC1B,MAAMgZ,EAAI8/iB,GAAM94jB,EAAI,EACdkZ,EAAIm/G,GAAIr/G,GACRyZ,EAAI2lG,GAAIp/G,GACdisD,EAAQs+E,OAAO9wH,EAAIr0B,GAAI8a,EAAI9a,GAC3B6mE,EAAQs+E,OAAOrqI,EAAIuQ,EAAIgJ,EAAIoB,EAAGpB,EAAIhJ,EAAIvQ,EAAI2a,EAC5C,CACAoxC,EAAQw+E,WACV,GCpBI01a,GAAQvgc,GAAK,GAEnB,IACEmgc,IAAAA,CAAK9zf,EAAS9jD,GACZ,MAAM0S,GAAK+kG,GAAKz3G,GAAgB,EAARg4iB,KACxBl0f,EAAQq+E,OAAO,EAAO,EAAJzvH,GAClBoxC,EAAQs+E,QAAQ41a,GAAQtliB,GAAIA,GAC5BoxC,EAAQs+E,OAAO41a,GAAQtliB,GAAIA,GAC3BoxC,EAAQw+E,WACV,GCTIvqI,IAAK,GACLuZ,GAAImmG,GAAK,GAAK,EACdl5H,GAAI,EAAIk5H,GAAK,IACb5/G,GAAkB,GAAbtZ,GAAI,EAAI,GAEnB,IACEq5jB,IAAAA,CAAK9zf,EAAS9jD,GACZ,MAAM/iB,EAAIw6H,GAAKz3G,EAAOnI,IAChBgrI,EAAK5lJ,EAAI,EAAG6lJ,EAAK7lJ,EAAIsB,GACrB4vC,EAAK00G,EAAIz0G,EAAKnxC,EAAIsB,GAAItB,EACtBoxC,GAAMF,EAAIG,EAAKF,EACrB01B,EAAQq+E,OAAOU,EAAIC,GACnBh/E,EAAQs+E,OAAOj0G,EAAIC,GACnB01B,EAAQs+E,OAAO/zG,EAAIC,GACnBw1B,EAAQs+E,OAAOrqI,GAAI8qI,EAAKvxH,GAAIwxH,EAAIxxH,GAAIuxH,EAAK9qI,GAAI+qI,GAC7Ch/E,EAAQs+E,OAAOrqI,GAAIo2B,EAAK7c,GAAI8c,EAAI9c,GAAI6c,EAAKp2B,GAAIq2B,GAC7C01B,EAAQs+E,OAAOrqI,GAAIs2B,EAAK/c,GAAIgd,EAAIhd,GAAI+c,EAAKt2B,GAAIu2B,GAC7Cw1B,EAAQs+E,OAAOrqI,GAAI8qI,EAAKvxH,GAAIwxH,EAAI/qI,GAAI+qI,EAAKxxH,GAAIuxH,GAC7C/+E,EAAQs+E,OAAOrqI,GAAIo2B,EAAK7c,GAAI8c,EAAIr2B,GAAIq2B,EAAK9c,GAAI6c,GAC7C21B,EAAQs+E,OAAOrqI,GAAIs2B,EAAK/c,GAAIgd,EAAIv2B,GAAIu2B,EAAKhd,GAAI+c,GAC7Cy1B,EAAQw+E,WACV,GCvBa,YAASh6H,GACtB,OAAO,WACL,OAAOA,CACT,CACF,CCJA,MAAMqhD,GAAKxqE,KAAK2rH,GACZ6sc,GAAM,EAAIhuf,GACVsuf,GAAU,KACVC,GAAaP,GAAMM,GAEvB,SAAS3lU,GAAO5jC,GACd/wN,KAAKmxB,GAAK4/L,EAAQ,GAClB,IAAK,IAAI7vN,EAAI,EAAG+H,EAAI8nN,EAAQ5vN,OAAQD,EAAI+H,IAAK/H,EAC3ClB,KAAKmxB,GAAK1hB,UAAUvO,GAAK6vN,EAAQ7vN,EAErC,CAeO,MAAMs5jB,GACX53jB,WAAAA,CAAY2jB,GACVvmB,KAAKy6jB,IAAMz6jB,KAAK06jB,IAChB16jB,KAAK26jB,IAAM36jB,KAAK46jB,IAAM,KACtB56jB,KAAKmxB,EAAI,GACTnxB,KAAK66jB,QAAoB,MAAVt0iB,EAAiBouO,GAlBpC,SAAqBpuO,GACnB,IAAI3f,EAAIpF,KAAKC,MAAM8kB,GACnB,KAAM3f,GAAK,GAAI,MAAM,IAAIlD,MAAM,mBAAmB6iB,KAClD,GAAI3f,EAAI,GAAI,OAAO+tP,GACnB,MAAM/zP,EAAI,IAAMgG,EAChB,OAAO,SAASmqN,GACd/wN,KAAKmxB,GAAK4/L,EAAQ,GAClB,IAAK,IAAI7vN,EAAI,EAAG+H,EAAI8nN,EAAQ5vN,OAAQD,EAAI+H,IAAK/H,EAC3ClB,KAAKmxB,GAAK3vB,KAAK22B,MAAM1oB,UAAUvO,GAAKN,GAAKA,EAAImwN,EAAQ7vN,EAEzD,CACF,CAO6C45jB,CAAYv0iB,EACvD,CACAi+H,MAAAA,CAAO75H,EAAGoK,GACR/0B,KAAK66jB,OAAO,IAAI76jB,KAAKy6jB,IAAMz6jB,KAAK26jB,KAAOhwiB,KAAK3qB,KAAK06jB,IAAM16jB,KAAK46jB,KAAO7liB,GACrE,CACA4vH,SAAAA,GACmB,OAAb3kJ,KAAK26jB,MACP36jB,KAAK26jB,IAAM36jB,KAAKy6jB,IAAKz6jB,KAAK46jB,IAAM56jB,KAAK06jB,IACrC16jB,KAAK66jB,OAAO,IAEhB,CACAp2a,MAAAA,CAAO95H,EAAGoK,GACR/0B,KAAK66jB,OAAO,IAAI76jB,KAAK26jB,KAAOhwiB,KAAK3qB,KAAK46jB,KAAO7liB,GAC/C,CACA0+K,gBAAAA,CAAiBjjK,EAAIC,EAAI9lB,EAAGoK,GAC1B/0B,KAAK66jB,OAAO,KAAKrqhB,MAAOC,KAAMzwC,KAAK26jB,KAAOhwiB,KAAK3qB,KAAK46jB,KAAO7liB,GAC7D,CACA6vH,aAAAA,CAAcp0G,EAAIC,EAAIC,EAAIC,EAAIhmB,EAAGoK,GAC/B/0B,KAAK66jB,OAAO,KAAKrqhB,MAAOC,MAAOC,MAAOC,KAAM3wC,KAAK26jB,KAAOhwiB,KAAK3qB,KAAK46jB,KAAO7liB,GAC3E,CACAg/K,KAAAA,CAAMvjK,EAAIC,EAAIC,EAAIC,EAAIrxC,GAIpB,GAHAkxC,GAAMA,EAAIC,GAAMA,EAAIC,GAAMA,EAAIC,GAAMA,GAAIrxC,GAAKA,GAGrC,EAAG,MAAM,IAAIoE,MAAM,oBAAoBpE,KAE/C,IAAI4lJ,EAAKllJ,KAAK26jB,IACVx1a,EAAKnlJ,KAAK46jB,IACVG,EAAMrqhB,EAAKF,EACXwqhB,EAAMrqhB,EAAKF,EACXwqhB,EAAM/1a,EAAK10G,EACX0qhB,EAAM/1a,EAAK10G,EACX0qhB,EAAQF,EAAMA,EAAMC,EAAMA,EAG9B,GAAiB,OAAbl7jB,KAAK26jB,IACP36jB,KAAK66jB,OAAO,IAAI76jB,KAAK26jB,IAAMnqhB,KAAMxwC,KAAK46jB,IAAMnqhB,SAIzC,GAAM0qhB,EAAQb,GAKd,GAAM94jB,KAAK6E,IAAI60jB,EAAMH,EAAMC,EAAMC,GAAOX,IAAah7jB,EAKrD,CACH,IAAI87jB,EAAM1qhB,EAAKw0G,EACXm2a,EAAM1qhB,EAAKw0G,EACXm2a,EAAQP,EAAMA,EAAMC,EAAMA,EAC1BO,EAAQH,EAAMA,EAAMC,EAAMA,EAC1BG,EAAMh6jB,KAAKs4H,KAAKwhc,GAChBG,EAAMj6jB,KAAKs4H,KAAKqhc,GAChBr5jB,EAAIxC,EAAIkC,KAAKgsL,KAAKxhH,GAAKxqE,KAAKk6jB,MAAMJ,EAAQH,EAAQI,IAAU,EAAIC,EAAMC,KAAS,GAC/EE,EAAM75jB,EAAI25jB,EACVG,EAAM95jB,EAAI05jB,EAGVh6jB,KAAK6E,IAAIs1jB,EAAM,GAAKrB,IACtBt6jB,KAAK66jB,OAAO,IAAIrqhB,EAAKmrhB,EAAMV,KAAOxqhB,EAAKkrhB,EAAMT,IAG/Cl7jB,KAAK66jB,OAAO,IAAIv7jB,KAAKA,WAAW47jB,EAAME,EAAMH,EAAMI,MAAQr7jB,KAAK26jB,IAAMnqhB,EAAKorhB,EAAMb,KAAO/6jB,KAAK46jB,IAAMnqhB,EAAKmrhB,EAAMZ,GAC/G,MArBEh7jB,KAAK66jB,OAAO,IAAI76jB,KAAK26jB,IAAMnqhB,KAAMxwC,KAAK46jB,IAAMnqhB,SAsBhD,CACAyzG,GAAAA,CAAIv5H,EAAGoK,EAAGz1B,EAAGmxL,EAAIlnE,EAAIsyc,GAInB,GAHAlxiB,GAAKA,EAAGoK,GAAKA,EAAW8miB,IAAQA,GAAhBv8jB,GAAKA,GAGb,EAAG,MAAM,IAAIoE,MAAM,oBAAoBpE,KAE/C,IAAIk4T,EAAKl4T,EAAIkC,KAAK+3H,IAAIk3D,GAClBgnI,EAAKn4T,EAAIkC,KAAK83H,IAAIm3D,GAClBvrC,EAAKv6H,EAAI6sS,EACTryK,EAAKpwH,EAAI0iS,EACTqkQ,EAAK,EAAID,EACTj9gB,EAAKi9gB,EAAMprY,EAAKlnE,EAAKA,EAAKknE,EAGb,OAAbzwL,KAAK26jB,IACP36jB,KAAK66jB,OAAO,IAAI31a,KAAMC,KAIf3jJ,KAAK6E,IAAIrG,KAAK26jB,IAAMz1a,GAAMo1a,IAAW94jB,KAAK6E,IAAIrG,KAAK46jB,IAAMz1a,GAAMm1a,KACtEt6jB,KAAK66jB,OAAO,IAAI31a,KAAMC,IAInB7lJ,IAGDs/C,EAAK,IAAGA,EAAKA,EAAKo7gB,GAAMA,IAGxBp7gB,EAAK27gB,GACPv6jB,KAAK66jB,OAAO,IAAIv7jB,KAAKA,SAASw8jB,KAAMnxiB,EAAI6sS,KAAMziS,EAAI0iS,KAAMn4T,KAAKA,SAASw8jB,KAAM97jB,KAAK26jB,IAAMz1a,KAAMllJ,KAAK46jB,IAAMz1a,IAIjGvmG,EAAK07gB,IACZt6jB,KAAK66jB,OAAO,IAAIv7jB,KAAKA,SAASs/C,GAAMotB,OAAO8vf,KAAM97jB,KAAK26jB,IAAMhwiB,EAAIrrB,EAAIkC,KAAK+3H,IAAIhQ,MAAOvpH,KAAK46jB,IAAM7liB,EAAIz1B,EAAIkC,KAAK83H,IAAI/P,KAEpH,CACAjqF,IAAAA,CAAK3U,EAAGoK,EAAGvoB,EAAGC,GACZzM,KAAK66jB,OAAO,IAAI76jB,KAAKy6jB,IAAMz6jB,KAAK26jB,KAAOhwiB,KAAK3qB,KAAK06jB,IAAM16jB,KAAK46jB,KAAO7liB,KAAKvoB,GAAKA,MAAMC,MAAMD,IAC3F,CACAwB,QAAAA,GACE,OAAOhO,KAAKmxB,CACd,EC7IK,SAAS4qiB,GAASzhhB,GACvB,IAAI/zB,EAAS,EAcb,OAZA+zB,EAAM/zB,OAAS,SAAS4K,GACtB,IAAK1hB,UAAUtO,OAAQ,OAAOolB,EAC9B,GAAS,MAAL4K,EACF5K,EAAS,SACJ,CACL,MAAM3f,EAAIpF,KAAKC,MAAM0vB,GACrB,KAAMvqB,GAAK,GAAI,MAAM,IAAI+wX,WAAW,mBAAmBxmW,KACvD5K,EAAS3f,CACX,CACA,OAAO0zC,CACT,EAEO,IAAM,IAAIkghB,GAAKj0iB,EACxB,CChBcuzG,GAAK,GCALA,GAAK,GCFnB,SAASt3H,GAAQ8vB,GAAgC,OAAO9vB,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,GAAQ8vB,EAAI,CAC7T,IAAI07M,GAAY,CAAC,OAAQ,OAAQ,YACjC,SAAS/O,KAAiS,OAApRA,GAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,GAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASqD,GAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,GAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,GAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,GAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,GAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,GAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,GAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,GAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,GAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAG3O,SAASs3O,GAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAU3e,IAAIixjB,GAAkB,CACpBC,aAAcA,GACdC,YAAaA,GACbC,cAAeA,GACfC,aAAcA,GACdC,WAAYA,GACZC,eAAgBA,GAChBC,UAAWA,IAETC,GAASh7jB,KAAK2rH,GAAK,IAgCZsvc,GAAU,SAAiBxxa,GACpC,IAAIyxa,EAAYzxa,EAAKjkJ,KACnBA,OAAqB,IAAd01jB,EAAuB,SAAWA,EACzCC,EAAY1xa,EAAK5oI,KACjBA,OAAqB,IAAds6iB,EAAuB,GAAKA,EACnCC,EAAgB3xa,EAAK4xa,SACrBA,OAA6B,IAAlBD,EAA2B,OAASA,EAE7C/khB,EAAQ2gM,GAAcA,GAAc,CAAC,EADhCuB,GAAyB9uF,EAAM+iF,KACW,CAAC,EAAG,CACrDhnO,KAAMA,EACNqb,KAAMA,EACNw6iB,SAAUA,IAYRt1jB,EAAYswC,EAAMtwC,UACpB0yH,EAAKpiF,EAAMoiF,GACXC,EAAKriF,EAAMqiF,GACT4ic,EAAgB/J,GAAYl7gB,GAAO,GACvC,OAAIoiF,KAAQA,GAAMC,KAAQA,GAAM73G,KAAUA,EACpBwxM,EAAAA,cAAoB,OAAQoL,GAAS,CAAC,EAAG69V,EAAe,CAC1Ev1jB,UAAWshY,GAAK,mBAAoBthY,GACpCg4E,UAAW,aAAa/6E,OAAOy1H,EAAI,MAAMz1H,OAAO01H,EAAI,KACpDtzH,EAbU,WACZ,IAAIm2jB,EAlDe,SAA0B/1jB,GAC/C,IAAIiH,EAAO,SAASzJ,OAAOuwC,KAAW/tC,IACtC,OAAOg1jB,GAAgB/tjB,IAASgujB,EAClC,CA+CwBe,CAAiBh2jB,GACjCkW,ECzCO,SAAgBlW,EAAMqb,GACnC,IAAI8jD,EAAU,KACV3vD,EAAOuljB,GAAS7+iB,GAKpB,SAASA,IACP,IAAI2zE,EAGJ,GAFK1qB,IAASA,EAAU0qB,EAASr6E,KACjCxP,EAAKqT,MAAMra,KAAMyP,WAAWwqjB,KAAK9zf,GAAU9jD,EAAKhI,MAAMra,KAAMyP,YACxDohF,EAAQ,OAAO1qB,EAAU,KAAM0qB,EAAS,IAAM,IACpD,CAcA,OAtBA7pF,EAAuB,oBAATA,EAAsBA,EAAO8xF,GAAS9xF,GAAQy5L,IAC5Dp+K,EAAuB,oBAATA,EAAsBA,EAAOy2E,QAAkB7rF,IAAToV,EAAqB,IAAMA,GAS/EnF,EAAOlW,KAAO,SAASmqB,GACrB,OAAO1hB,UAAUtO,QAAU6F,EAAoB,oBAANmqB,EAAmBA,EAAI2nE,GAAS3nE,GAAIjU,GAAUlW,CACzF,EAEAkW,EAAOmF,KAAO,SAAS8O,GACrB,OAAO1hB,UAAUtO,QAAUkhB,EAAoB,oBAAN8O,EAAmBA,EAAI2nE,IAAU3nE,GAAIjU,GAAUmF,CAC1F,EAEAnF,EAAOipD,QAAU,SAASh1C,GACxB,OAAO1hB,UAAUtO,QAAUglE,EAAe,MAALh1C,EAAY,KAAOA,EAAGjU,GAAUipD,CACvE,EAEOjpD,CACT,CDciB+/iB,GAAcj2jB,KAAK+1jB,GAAe16iB,KA/C3B,SAA2BA,EAAMw6iB,EAAU71jB,GACjE,GAAiB,SAAb61jB,EACF,OAAOx6iB,EAET,OAAQrb,GACN,IAAK,QACH,OAAO,EAAIqb,EAAOA,EAAO,EAC3B,IAAK,UACH,MAAO,GAAMA,EAAOA,EAAO7gB,KAAKs4H,KAAK,GACvC,IAAK,SACH,OAAOz3G,EAAOA,EAChB,IAAK,OAED,IAAI6qG,EAAQ,GAAKsvc,GACjB,OAAO,KAAOn6iB,EAAOA,GAAQ7gB,KAAKgsL,IAAItgE,GAAS1rH,KAAKgsL,IAAY,EAARtgE,GAAa1rH,KAAKylH,IAAIzlH,KAAKgsL,IAAItgE,GAAQ,IAEnG,IAAK,WACH,OAAO1rH,KAAKs4H,KAAK,GAAKz3G,EAAOA,EAAO,EACtC,IAAK,MACH,OAAQ,GAAK,GAAK7gB,KAAKs4H,KAAK,IAAMz3G,EAAOA,EAAO,EAClD,QACE,OAAO7gB,KAAK2rH,GAAK9qG,EAAOA,EAAO,EAErC,CAwBwD66iB,CAAkB76iB,EAAMw6iB,EAAU71jB,IACtF,OAAOkW,GACT,CASOigjB,MAGA,IACT,EE9FA,SAAS36jB,GAAQ8vB,GAAgC,OAAO9vB,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,GAAQ8vB,EAAI,CAC7T,SAAS2sM,KAAiS,OAApRA,GAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,GAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASqD,GAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAG9P,SAASskiB,GAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,GAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASyoa,GAAWxuZ,EAAGpB,EAAG9E,GAAK,OAAO8E,EAAI8uZ,GAAgB9uZ,GAC1D,SAAoCvzB,EAAMgB,GAAQ,GAAIA,IAA2B,WAAlByC,GAAQzC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI6O,UAAU,4DAA+D,OAC1P,SAAgC7P,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI43O,eAAe,6DAAgE,OAAO53O,CAAM,CAD4F4gQ,CAAuB5gQ,EAAO,CADjOsib,CAA2B3tZ,EAAG4tZ,KAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,GAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,GAAK,CAG1M,SAAS8zZ,KAA8B,IAAM,IAAI5tZ,GAAK3hB,QAAQlS,UAAUkhB,QAAQhhB,KAAK4hD,QAAQC,UAAU7vC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO2hB,GAAI,CAAE,OAAQ4tZ,GAA4B,WAAuC,QAAS5tZ,CAAG,IAAM,CAClP,SAAS0tZ,GAAgB9uZ,GAA+J,OAA1J8uZ,GAAkBp7a,OAAO4O,eAAiB5O,OAAOmN,eAAe5F,OAAS,SAAyB+kB,GAAK,OAAOA,EAAEvoB,WAAa/D,OAAOmN,eAAemf,EAAI,EAAU8uZ,GAAgB9uZ,EAAI,CAEnN,SAAS2liB,GAAgB3liB,EAAGjL,GAA6I,OAAxI4wiB,GAAkBjyjB,OAAO4O,eAAiB5O,OAAO4O,eAAerH,OAAS,SAAyB+kB,EAAGjL,GAAsB,OAAjBiL,EAAEvoB,UAAYsd,EAAUiL,CAAG,EAAU2liB,GAAgB3liB,EAAGjL,EAAI,CACvM,SAASwwF,GAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,GAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAC3O,SAASsvb,GAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,GAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,GAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,GAAQtB,GAAKA,EAAIA,EAAI,EAAI,CFgF5Gu7jB,GAAQW,eAvCa,SAAwBt4jB,EAAKhG,GAChDk9jB,GAAgB,SAASx3jB,OAAOuwC,KAAWjwC,KAAShG,CACtD,EE/BA,IAAIu+jB,GAAO,GACAC,GAAoC,SAAU/oW,GACvD,SAAS+oW,IAEP,OA3BJ,SAAyBt/f,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CA0BpJooO,CAAgBh3O,KAAMs9jB,GACfp7I,GAAWlib,KAAMs9jB,EAAsB7tjB,UAChD,CAEA,OAtBF,SAAmB+kN,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7lN,UAAU,sDAAyD4lN,EAAS30N,UAAYmG,OAAO4D,OAAO6qN,GAAcA,EAAW50N,UAAW,CAAE+C,YAAa,CAAEhE,MAAO41N,EAAUjgN,UAAU,EAAMnF,cAAc,KAAWpJ,OAAOgN,eAAewhN,EAAU,YAAa,CAAEjgN,UAAU,IAAckgN,GAAYwjW,GAAgBzjW,EAAUC,EAAa,CAqBjcqiB,CAAUwmV,EAAsB/oW,GA3BZ9uM,EA4BA63iB,EA5BathM,EA4BS,CAAC,CACzCl3X,IAAK,aACLlG,MAMA,SAAoB2d,GAClB,IAAIghjB,EAAgBv9jB,KAAK63C,MAAM0lhB,cAC3BC,EAAWH,GACXI,EAAYJ,GAAO,EACnBK,EAAYL,GAAO,EACnBp8hB,EAAQ1kB,EAAKohjB,SAAWJ,EAAgBhhjB,EAAK0kB,MACjD,GAAkB,cAAd1kB,EAAKvV,KACP,OAAoB6sN,EAAAA,cAAoB,OAAQ,CAC9CvsK,YAAa,EACbskD,KAAM,OACN27C,OAAQtmH,EACRimB,gBAAiB3qC,EAAK+qD,QAAQpgB,gBAC9B1W,GAAI,EACJC,GAAI+shB,EACJ9shB,GAAI2shB,GACJ1shB,GAAI6shB,EACJj2jB,UAAW,yBAGf,GAAkB,SAAdgV,EAAKvV,KACP,OAAoB6sN,EAAAA,cAAoB,OAAQ,CAC9CvsK,YAAa,EACbskD,KAAM,OACN27C,OAAQtmH,EACRr6B,EAAG,MAAMpC,OAAOg5jB,EAAU,KAAKh5jB,OAAOk5jB,EAAW,mBAAmBl5jB,OAAOi5jB,EAAW,KAAKj5jB,OAAOi5jB,EAAW,WAAWj5jB,OAAO,EAAIk5jB,EAAW,KAAKl5jB,OAAOg5jB,EAAU,mBAAmBh5jB,OAAO64jB,GAAM,KAAK74jB,OAAO,EAAIk5jB,EAAW,KAAKl5jB,OAAOg5jB,EAAU,mBAAmBh5jB,OAAOi5jB,EAAW,KAAKj5jB,OAAOi5jB,EAAW,WAAWj5jB,OAAOk5jB,EAAW,KAAKl5jB,OAAOg5jB,GAC1Vj2jB,UAAW,yBAGf,GAAkB,SAAdgV,EAAKvV,KACP,OAAoB6sN,EAAAA,cAAoB,OAAQ,CAC9CtsE,OAAQ,OACR37C,KAAM3qE,EACNr6B,EAAG,MAAMpC,OAAO64jB,EAAU,KAAK74jB,OAAO64jB,GAAM,KAAK74jB,OAAO64jB,GAAc,KAAK74jB,QAAO,GAAO,KACzF+C,UAAW,yBAGf,GAAkBssN,EAAAA,eAAqBt3M,EAAKqhjB,YAAa,CACvD,IAAIvtL,EA5EZ,SAAuB7iX,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,GAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,GAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,GAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CA4E9ZgrN,CAAc,CAAC,EAAGj8N,GAElC,cADO8zX,EAAUutL,WACG/pW,EAAAA,aAAmBt3M,EAAKqhjB,WAAYvtL,EAC1D,CACA,OAAoBx8K,EAAAA,cAAoB4oW,GAAS,CAC/C7wd,KAAM3qE,EACNg5F,GAAIujc,EACJtjc,GAAIsjc,EACJn7iB,KAAMg7iB,GACNR,SAAU,WACV71jB,KAAMuV,EAAKvV,MAEf,GAMC,CACDlC,IAAK,cACLlG,MAAO,WACL,IAAI67B,EAAQz6B,KACR+tP,EAAc/tP,KAAK63C,MACrByvB,EAAUymL,EAAYzmL,QACtB67P,EAAWp1E,EAAYo1E,SACvBmQ,EAASvlF,EAAYulF,OACrBu2D,EAAY97I,EAAY87I,UACxB0zL,EAAgBxvU,EAAYwvU,cAC1Bj/N,EAAU,CACZ3zU,EAAG,EACHoK,EAAG,EACH9yB,MAAOo7jB,GACP17jB,OAAQ07jB,IAENpmD,EAAY,CACdzwgB,QAAoB,eAAX8sU,EAA0B,eAAiB,QACpD/0M,YAAa,IAEXypJ,EAAW,CACbxhR,QAAS,eACTm8B,cAAe,SACf47F,YAAa,GAEf,OAAOj3D,EAAQj6D,KAAI,SAAUqjB,EAAOxvB,GAClC,IAAI61jB,EAAiBrmiB,EAAMm5W,WAAaA,EACpCtiY,EAAYshY,GAAKhxR,GAAgBA,GAAgB,CACnD,wBAAwB,GACvB,eAAerzG,OAAOtD,IAAI,GAAO,WAAYwvB,EAAMitiB,WACtD,GAAmB,SAAfjtiB,EAAM1pB,KACR,OAAO,KAIT,IAAI62jB,EAAcjziB,KAAW8F,EAAM9xB,OAAuB,KAAd8xB,EAAM9xB,MAClD60C,IAAM7oB,KAAW8F,EAAM9xB,OAAQ,kJAE/B,IAAIqiC,EAAQvQ,EAAMitiB,SAAWJ,EAAgB7siB,EAAMuQ,MACnD,OAAoB4yL,EAAAA,cAAoB,KAAMoL,GAAS,CACrD13N,UAAWA,EACXjC,MAAO2xgB,EAGPnygB,IAAK,eAAeN,OAAOtD,IAC1BmwjB,GAAmB52hB,EAAMod,MAAOnnB,EAAOxvB,IAAkB2yN,EAAAA,cAAoB4hW,GAAS,CACvFxzjB,MAAOkhU,EACPxhU,OAAQwhU,EACRm7B,QAASA,EACTh5V,MAAO0iR,GACNvtP,EAAMqjiB,WAAWptiB,IAAsBmjM,EAAAA,cAAoB,OAAQ,CACpEtsN,UAAW,4BACXjC,MAAO,CACL27B,MAAOA,IAER81hB,EAAiBA,EAAe8G,EAAYntiB,EAAOxvB,GAAK28jB,GAC7D,GACF,GACC,CACD/4jB,IAAK,SACLlG,MAAO,WACL,IAAI2mT,EAAevlT,KAAK63C,MACtByvB,EAAUi+O,EAAaj+O,QACvBgsQ,EAAS/tB,EAAa+tB,OACtBt1S,EAAQunR,EAAavnR,MACvB,IAAKspC,IAAYA,EAAQnmE,OACvB,OAAO,KAET,IAAIo1jB,EAAa,CACfh1hB,QAAS,EACT3/B,OAAQ,EACR8gC,UAAsB,eAAX4wS,EAA0Bt1S,EAAQ,QAE/C,OAAoB61L,EAAAA,cAAoB,KAAM,CAC5CtsN,UAAW,0BACXjC,MAAOixjB,GACNv2jB,KAAK81M,cACV,IAxK8DkmL,GAAYg8L,GAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,GAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CA0K/C,CApJ+C,CAoJ7CxlR,EAAAA,eChLF,SAASj0G,GAAQ8vB,GAAgC,OAAO9vB,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,GAAQ8vB,EAAI,CDiL7TulF,GAAgByld,GAAsB,cAAe,UACrDzld,GAAgByld,GAAsB,eAAgB,CACpDn6P,SAAU,GACVmQ,OAAQ,aACRt1S,MAAO,SACP2E,cAAe,SACf46hB,cAAe,SCtLjB,IAAIvvV,GAAY,CAAC,OACjB,SAASl7N,GAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,GAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,GAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,GAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,GAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CAEtb,SAASwqiB,GAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,GAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASyoa,GAAWxuZ,EAAGpB,EAAG9E,GAAK,OAAO8E,EAAI8uZ,GAAgB9uZ,GAC1D,SAAoCvzB,EAAMgB,GAAQ,GAAIA,IAA2B,WAAlByC,GAAQzC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI6O,UAAU,4DAA+D,OAC1P,SAAgC7P,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI43O,eAAe,6DAAgE,OAAO53O,CAAM,CAD4F4gQ,CAAuB5gQ,EAAO,CADjOsib,CAA2B3tZ,EAAG4tZ,KAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,GAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,GAAK,CAG1M,SAAS8zZ,KAA8B,IAAM,IAAI5tZ,GAAK3hB,QAAQlS,UAAUkhB,QAAQhhB,KAAK4hD,QAAQC,UAAU7vC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO2hB,GAAI,CAAE,OAAQ4tZ,GAA4B,WAAuC,QAAS5tZ,CAAG,IAAM,CAClP,SAAS0tZ,GAAgB9uZ,GAA+J,OAA1J8uZ,GAAkBp7a,OAAO4O,eAAiB5O,OAAOmN,eAAe5F,OAAS,SAAyB+kB,GAAK,OAAOA,EAAEvoB,WAAa/D,OAAOmN,eAAemf,EAAI,EAAU8uZ,GAAgB9uZ,EAAI,CAEnN,SAAS2liB,GAAgB3liB,EAAGjL,GAA6I,OAAxI4wiB,GAAkBjyjB,OAAO4O,eAAiB5O,OAAO4O,eAAerH,OAAS,SAAyB+kB,EAAGjL,GAAsB,OAAjBiL,EAAEvoB,UAAYsd,EAAUiL,CAAG,EAAU2liB,GAAgB3liB,EAAGjL,EAAI,CACvM,SAASwwF,GAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,GAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAC3O,SAASsvb,GAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,GAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,GAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,GAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAE5G,SAAS64O,GAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAS3e,SAAS2ujB,GAAchpiB,GACrB,OAAOA,EAAM9xB,KACf,CAYA,IACWm/jB,GAAsB,SAAUxpW,GACzC,SAASwpW,IACP,IAAItjiB,GAvCR,SAAyBujC,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CAwCpJooO,CAAgBh3O,KAAM+9jB,GACtB,IAAK,IAAIztV,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAOzB,OAJA14H,GADAp9E,EAAQynZ,GAAWlib,KAAM+9jB,EAAQ,GAAGv5jB,OAAO2lB,IACpB,kBAAmB,CACxCloB,OAAQ,EACRN,QAAS,IAEJ84B,CACT,CAEA,OA5CF,SAAmB+5L,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7lN,UAAU,sDAAyD4lN,EAAS30N,UAAYmG,OAAO4D,OAAO6qN,GAAcA,EAAW50N,UAAW,CAAE+C,YAAa,CAAEhE,MAAO41N,EAAUjgN,UAAU,EAAMnF,cAAc,KAAWpJ,OAAOgN,eAAewhN,EAAU,YAAa,CAAEjgN,UAAU,IAAckgN,GAAYwjW,GAAgBzjW,EAAUC,EAAa,CA2CjcqiB,CAAUinV,EAAQxpW,GAjDE9uM,EAkDAs4iB,EAlDyB9hM,EA0KzC,CAAC,CACHn3X,IAAK,gBACLlG,MAAO,SAAuBszC,EAAM8rhB,GAClC,IACE1qP,EAD0B96F,GAAcA,GAAc,CAAC,EAAGx4O,KAAK23C,cAAezF,EAAK2F,OACpDy7R,OACjC,MAAe,aAAXA,GAAyBlsO,GAASl1D,EAAK2F,MAAMl2C,QACxC,CACLA,OAAQuwC,EAAK2F,MAAMl2C,QAGR,eAAX2xU,EACK,CACLrxU,MAAOiwC,EAAK2F,MAAM51C,OAAS+7jB,GAGxB,IACT,KA1L+BhiM,EAkDL,CAAC,CAC3Bl3X,IAAK,oBACLlG,MAAO,WACLoB,KAAK04jB,YACP,GACC,CACD5zjB,IAAK,qBACLlG,MAAO,WACLoB,KAAK04jB,YACP,GACC,CACD5zjB,IAAK,UACLlG,MAAO,WACL,GAAIoB,KAAKkyT,aAAelyT,KAAKkyT,YAAYxxT,sBAAuB,CAC9D,IAAIsjJ,EAAMhkJ,KAAKkyT,YAAYxxT,wBAG3B,OAFAsjJ,EAAIriJ,OAAS3B,KAAKkyT,YAAY93M,aAC9B4pC,EAAI/hJ,MAAQjC,KAAKkyT,YAAYj4M,YACtB+pC,CACT,CACA,OAAO,IACT,GACC,CACDl/I,IAAK,aACLlG,MAAO,WACL,IAAIq/jB,EAAej+jB,KAAK63C,MAAMomhB,aAC1Bj6a,EAAMhkJ,KAAK00O,UACX1wF,GACExiJ,KAAK6E,IAAI29I,EAAI/hJ,MAAQjC,KAAKq4jB,gBAAgBp2jB,OA3C5C,GA2C4DT,KAAK6E,IAAI29I,EAAIriJ,OAAS3B,KAAKq4jB,gBAAgB12jB,QA3CvG,KA4CA3B,KAAKq4jB,gBAAgBp2jB,MAAQ+hJ,EAAI/hJ,MACjCjC,KAAKq4jB,gBAAgB12jB,OAASqiJ,EAAIriJ,OAC9Bs8jB,GACFA,EAAaj6a,KAGwB,IAAhChkJ,KAAKq4jB,gBAAgBp2jB,QAAiD,IAAjCjC,KAAKq4jB,gBAAgB12jB,SACnE3B,KAAKq4jB,gBAAgBp2jB,OAAS,EAC9BjC,KAAKq4jB,gBAAgB12jB,QAAU,EAC3Bs8jB,GACFA,EAAa,MAGnB,GACC,CACDn5jB,IAAK,kBACLlG,MAAO,WACL,OAAIoB,KAAKq4jB,gBAAgBp2jB,OAAS,GAAKjC,KAAKq4jB,gBAAgB12jB,QAAU,EAC7D62O,GAAc,CAAC,EAAGx4O,KAAKq4jB,iBAEzB,CACLp2jB,MAAO,EACPN,OAAQ,EAEZ,GACC,CACDmD,IAAK,qBACLlG,MAAO,SAA4B0G,GACjC,IAOI44jB,EAAMC,EAPNpwU,EAAc/tP,KAAK63C,MACrBy7R,EAASvlF,EAAYulF,OACrBt1S,EAAQ+vN,EAAY/vN,MACpB2E,EAAgBorN,EAAYprN,cAC5B/gC,EAASmsP,EAAYnsP,OACrBo8jB,EAAajwU,EAAYiwU,WACzBI,EAAcrwU,EAAYqwU,YA8B5B,OA5BK94jB,SAAyB2H,IAAf3H,EAAMjE,MAAqC,OAAfiE,EAAMjE,WAAmC4L,IAAhB3H,EAAMkG,OAAuC,OAAhBlG,EAAMkG,SAGnG0yjB,EAFY,WAAVlgiB,GAAiC,aAAXs1S,EAEjB,CACLjyU,OAAQ28jB,GAAc,GAFdh+jB,KAAKq+jB,kBAEkBp8jB,OAAS,GAGzB,UAAV+7B,EAAoB,CACzBxyB,MAAO5J,GAAUA,EAAO4J,OAAS,GAC/B,CACFnK,KAAMO,GAAUA,EAAOP,MAAQ,IAIhCiE,SAAwB2H,IAAd3H,EAAMhE,KAAmC,OAAdgE,EAAMhE,UAAmC2L,IAAjB3H,EAAMc,QAAyC,OAAjBd,EAAMc,UAGlG+3jB,EAFoB,WAAlBx7hB,EAEK,CACLrhC,MAAO88jB,GAAe,GAFbp+jB,KAAKq+jB,kBAEkB18jB,QAAU,GAGnB,WAAlBghC,EAA6B,CAClCv8B,OAAQxE,GAAUA,EAAOwE,QAAU,GACjC,CACF9E,IAAKM,GAAUA,EAAON,KAAO,IAI5Bk3O,GAAcA,GAAc,CAAC,EAAG0lV,GAAOC,EAChD,GACC,CACDr5jB,IAAK,SACLlG,MAAO,WACL,IAAIohQ,EAAShgQ,KACTulT,EAAevlT,KAAK63C,MACtBp5B,EAAU8mS,EAAa9mS,QACvBxc,EAAQsjT,EAAatjT,MACrBN,EAAS4jT,EAAa5jT,OACtBorb,EAAexnI,EAAawnI,aAC5B6sI,EAAgBr0Q,EAAaq0Q,cAC7Btyf,EAAUi+O,EAAaj+O,QACrBkjV,EAAahyK,GAAcA,GAAc,CAC3CntO,SAAU,WACVpJ,MAAOA,GAAS,OAChBN,OAAQA,GAAU,QACjB3B,KAAKs+jB,mBAAmBvxI,IAAgBA,GAC3C,OAAoBl5N,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAW,0BACXjC,MAAOklZ,EACPjzW,IAAK,SAAa3vC,GAChBo4P,EAAOkyD,YAActqT,CACvB,GA9IR,SAAuB6W,EAASo5B,GAC9B,GAAkBg8K,EAAAA,eAAqBp1M,GACrC,OAAoBo1M,EAAAA,aAAmBp1M,EAASo5B,GAElD,GAAuB,oBAAZp5B,EACT,OAAoBo1M,EAAAA,cAAoBp1M,EAASo5B,GAEzCA,EAAMN,IAAhB,IACEm9P,EAAa36D,GAAyBliM,EAAOm2L,IAC/C,OAAoBna,EAAAA,cAAoBypW,GAAsB5oR,EAChE,CAqISwiR,CAAcz4iB,EAAS+5N,GAAcA,GAAc,CAAC,EAAGx4O,KAAK63C,OAAQ,CAAC,EAAG,CACzEyvB,QAASmyf,GAAenyf,EAASsyf,EAAeF,OAEpD,MAzK0E1B,GAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,GAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CA4L/C,CAzJiC,CAyJ/BxlR,EAAAA,eClMF,SAASwoH,KAAiS,OAApRA,GAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,GAAS5kN,MAAMra,KAAMyP,UAAY,CDmMlVooG,GAAgBkmd,GAAQ,cAAe,UACvClmd,GAAgBkmd,GAAQ,eAAgB,CACtC56P,SAAU,GACVmQ,OAAQ,aACRt1S,MAAO,SACP2E,cAAe,WChMV,IAAI47hB,GAAM,SAAa1mhB,GAC5B,IAAIoiF,EAAKpiF,EAAMoiF,GACbC,EAAKriF,EAAMqiF,GACX56H,EAAIu4C,EAAMv4C,EACViI,EAAYswC,EAAMtwC,UAChBoujB,EAAa9sL,GAAK,eAAgBthY,GACtC,OAAI0yH,KAAQA,GAAMC,KAAQA,GAAM56H,KAAOA,EACjBu0N,EAAAA,cAAoB,SAAUoL,GAAS,CAAC,EAAG8zV,GAAYl7gB,GAAO,GAAQs5gB,GAAmBt5gB,GAAQ,CACnHtwC,UAAWoujB,EACX17b,GAAIA,EACJC,GAAIA,EACJ56H,EAAGA,KAGA,IACT,ECdQ2gB,GAA+Cja,OAAMia,oBAAhChD,GAA0BjX,OAAMiX,sBACrD3Z,GAAmB0C,OAAOnG,UAASyD,eAK3B,SAAAk7jB,GACdC,EACAC,GAEA,OAAO,SAAuBxkjB,EAAMC,EAAM9P,GACxC,OAAOo0jB,EAAYvkjB,EAAGC,EAAG9P,IAAUq0jB,EAAYxkjB,EAAGC,EAAG9P,EACvD,CACF,CAOM,SAAUs0jB,GAEdC,GACA,OAAO,SACL1kjB,EACAC,EACA9P,GAEA,IAAK6P,IAAMC,GAAkB,kBAAND,GAA+B,kBAANC,EAC9C,OAAOykjB,EAAc1kjB,EAAGC,EAAG9P,GAGrB,IAAA0wE,EAAU1wE,EAAK0wE,MAEjB8jf,EAAU9jf,EAAMvtE,IAAI0M,GACpB4kjB,EAAU/jf,EAAMvtE,IAAI2M,GAE1B,GAAI0kjB,GAAWC,EACb,OAAOD,IAAY1kjB,GAAK2kjB,IAAY5kjB,EAGtC6gE,EAAMpxE,IAAIuQ,EAAGC,GACb4gE,EAAMpxE,IAAIwQ,EAAGD,GAEb,IAAMjJ,EAAS2tjB,EAAc1kjB,EAAGC,EAAG9P,GAKnC,OAHA0wE,EAAMhsB,OAAO70C,GACb6gE,EAAMhsB,OAAO50C,GAENlJ,CACT,CACF,CAMM,SAAU8tjB,GACd3qjB,GAEA,OAAQ6L,GAAoB7L,GAAmC5P,OAC7DyY,GAAsB7I,GAE1B,CAKO,IAAMsG,GACX1U,OAAO0U,QACN,SAACtG,EAAoB6hF,GACpB,OAAA3yF,GAAevD,KAAKqU,EAAQ6hF,EAA5B,EAKY,SAAA+oe,GAAmB9kjB,EAAQC,GACzC,OAAOD,IAAMC,IAAOD,IAAMC,GAAKD,IAAMA,GAAKC,IAAMA,CAClD,CC/EA,IAIQlH,GAAmCjN,OAAMiN,yBAAfhN,GAASD,OAAMC,cAKjCg5jB,GAAe/kjB,EAAUC,EAAU9P,GACjD,IAAI6F,EAAQgK,EAAE/Y,OAEd,GAAIgZ,EAAEhZ,SAAW+O,EACf,OAAO,EAGT,KAAOA,KAAU,GACf,IAAK7F,EAAMu4L,OAAO1oL,EAAEhK,GAAQiK,EAAEjK,GAAQA,EAAOA,EAAOgK,EAAGC,EAAG9P,GACxD,OAAO,EAIX,OAAO,CACT,CAKgB,SAAA60jB,GAAchljB,EAASC,GACrC,OAAO6kjB,GAAmB9kjB,EAAE6d,UAAW5d,EAAE4d,UAC3C,CAKgB,SAAAoniB,GAAejljB,EAAUC,GACvC,OACED,EAAEjM,OAASkM,EAAElM,MACbiM,EAAEs1D,UAAYr1D,EAAEq1D,SAChBt1D,EAAE6nW,QAAU5nW,EAAE4nW,OACd7nW,EAAE5P,QAAU6P,EAAE7P,KAElB,CAKgB,SAAA80jB,GACdlljB,EACAC,GAEA,OAAOD,IAAMC,CACf,UAKgBkljB,GACdnljB,EACAC,EACA9P,GAEA,IAAMgY,EAAOnI,EAAEmI,KAEf,GAAIA,IAASlI,EAAEkI,KACb,OAAO,EAGT,IAAKA,EACH,OAAO,EAUT,IAPA,IAGIi9iB,EACAC,EAJEC,EAA0C,IAAI3+jB,MAAMwhB,GACpDo9iB,EAAYvljB,EAAE9D,UAIhBlG,EAAQ,GAEJovjB,EAAUG,EAAUvrjB,UACtBorjB,EAAQr6iB,MADuB,CAUnC,IALA,IAAMy6iB,EAAYvljB,EAAE/D,UAEhBupjB,GAAW,EACXC,EAAa,GAETL,EAAUG,EAAUxrjB,UACtBqrjB,EAAQt6iB,MAIZ,GAAIu6iB,EAAeI,GACjBA,QADF,CAKA,IAAMC,EAASP,EAAQ1gkB,MACjBkhkB,EAASP,EAAQ3gkB,MAEvB,GACEyL,EAAMu4L,OAAOi9X,EAAO,GAAIC,EAAO,GAAI5vjB,EAAO0vjB,EAAY1ljB,EAAGC,EAAG9P,IAC5DA,EAAMu4L,OAAOi9X,EAAO,GAAIC,EAAO,GAAID,EAAO,GAAIC,EAAO,GAAI5ljB,EAAGC,EAAG9P,GAC/D,CACAs1jB,EAAWH,EAAeI,IAAc,EACxC,KACD,CAEDA,GAbC,CAgBH,IAAKD,EACH,OAAO,EAGTzvjB,GACD,CAED,OAAO,CACT,CAKO,IAAM6vjB,GAAkBf,YAKfgB,GACd9ljB,EACAC,EACA9P,GAEA,IAAMof,EAAaxjB,GAAKiU,GAEpBhK,EAAQuZ,EAAWtoB,OAEvB,GAAI8E,GAAKkU,GAAGhZ,SAAW+O,EACrB,OAAO,EAOT,KAAOA,KAAU,GACf,IAAK+vjB,GAAgB/ljB,EAAGC,EAAG9P,EAAOof,EAAWvZ,IAC3C,OAAO,EAIX,OAAO,CACT,UAKgBgwjB,GACdhmjB,EACAC,EACA9P,GAEA,IAQI4rF,EACAkqe,EACAC,EAVE32iB,EAAas1iB,GAAoB7kjB,GAEnChK,EAAQuZ,EAAWtoB,OAEvB,GAAI49jB,GAAoB5kjB,GAAGhZ,SAAW+O,EACpC,OAAO,EAWT,KAAOA,KAAU,GAAG,CAGlB,IAAK+vjB,GAAgB/ljB,EAAGC,EAAG9P,EAF3B4rF,EAAWxsE,EAAWvZ,IAGpB,OAAO,EAMT,GAHAiwjB,EAAcltjB,GAAyBiH,EAAG+7E,GAC1Cmqe,EAAcntjB,GAAyBkH,EAAG87E,IAGvCkqe,GAAeC,MACdD,IACCC,GACDD,EAAY/wjB,eAAiBgxjB,EAAYhxjB,cACzC+wjB,EAAY7rjB,aAAe8rjB,EAAY9rjB,YACvC6rjB,EAAY5rjB,WAAa6rjB,EAAY7rjB,UAEvC,OAAO,CAEV,CAED,OAAO,CACT,CAKgB,SAAA8rjB,GACdnmjB,EACAC,GAEA,OAAO6kjB,GAAmB9kjB,EAAE6G,UAAW5G,EAAE4G,UAC3C,CAKgB,SAAAu/iB,GAAgBpmjB,EAAWC,GACzC,OAAOD,EAAEtO,SAAWuO,EAAEvO,QAAUsO,EAAE4M,QAAU3M,EAAE2M,KAChD,UAKgBy5iB,GACdrmjB,EACAC,EACA9P,GAEA,IAAMgY,EAAOnI,EAAEmI,KAEf,GAAIA,IAASlI,EAAEkI,KACb,OAAO,EAGT,IAAKA,EACH,OAAO,EAST,IANA,IAGIi9iB,EACAC,EAJEC,EAA0C,IAAI3+jB,MAAMwhB,GACpDo9iB,EAAYvljB,EAAE7D,UAKZipjB,EAAUG,EAAUvrjB,UACtBorjB,EAAQr6iB,MADuB,CAUnC,IALA,IAAMy6iB,EAAYvljB,EAAE9D,SAEhBspjB,GAAW,EACXC,EAAa,GAETL,EAAUG,EAAUxrjB,UACtBqrjB,EAAQt6iB,MADuB,CAKnC,IACGu6iB,EAAeI,IAChBv1jB,EAAMu4L,OACJ08X,EAAQ1gkB,MACR2gkB,EAAQ3gkB,MACR0gkB,EAAQ1gkB,MACR2gkB,EAAQ3gkB,MACRsb,EACAC,EACA9P,GAEF,CACAs1jB,EAAWH,EAAeI,IAAc,EACxC,KACD,CAEDA,GACD,CAED,IAAKD,EACH,OAAO,CAEV,CAED,OAAO,CACT,CAKgB,SAAAa,GAAoBtmjB,EAAeC,GACjD,IAAIjK,EAAQgK,EAAE/Y,OAEd,GAAIgZ,EAAEhZ,SAAW+O,EACf,OAAO,EAGT,KAAOA,KAAU,GACf,GAAIgK,EAAEhK,KAAWiK,EAAEjK,GACjB,OAAO,EAIX,OAAO,CACT,CAKgB,SAAAuwjB,GAAavmjB,EAAQC,GACnC,OACED,EAAEm8H,WAAal8H,EAAEk8H,UACjBn8H,EAAEglN,WAAa/kN,EAAE+kN,UACjBhlN,EAAEk8H,WAAaj8H,EAAEi8H,UACjBl8H,EAAEo8H,OAASn8H,EAAEm8H,MACbp8H,EAAEilN,OAAShlN,EAAEglN,MACbjlN,EAAEmyW,WAAalyW,EAAEkyW,UACjBnyW,EAAE0+C,WAAaz+C,EAAEy+C,QAErB,CAEA,SAASqngB,GACP/ljB,EACAC,EACA9P,EACA4rF,GAEA,QAvUkB,WAwUfA,GAzUgB,QA0UfA,GA3Ue,QA4UfA,IACD/7E,EAAE09B,WAAYz9B,EAAEy9B,WAMjBl9B,GAAOP,EAAG87E,IACV5rF,EAAMu4L,OAAO1oL,EAAE+7E,GAAW97E,EAAE87E,GAAWA,EAAUA,EAAU/7E,EAAGC,EAAG9P,EAErE,CCrUA,IAYQ6H,GAAYrR,MAAKqR,QACnBsmC,GACmB,oBAAhBmpD,aAA8BA,YAAYq3E,OAC7Cr3E,YAAYq3E,OACZ,KACE5vK,GAAWpD,OAAMoD,OACnB6mF,GAASjqF,OAAOnG,UAAUmO,SAASjO,KAAKwN,KAC5CvH,OAAOnG,UAAUmO,UCZN,IAAA6zO,GAAY6+U,KAKMA,GAAkB,CAAEl0a,QAAQ,IAK1Bk0a,GAAkB,CAAE5+U,UAAU,IAMxB4+U,GAAkB,CACvD5+U,UAAU,EACVt1F,QAAQ,IAMkBk0a,GAAkB,CAC5CC,yBAA0B,WAAM,OAAA3B,EAAkB,IAMlB0B,GAAkB,CAClDl0a,QAAQ,EACRm0a,yBAA0B,WAAM,OAAA3B,EAAkB,IAMhB0B,GAAkB,CACpD5+U,UAAU,EACV6+U,yBAA0B,WAAM,OAAA3B,EAAkB,IAOV0B,GAAkB,CAC1D5+U,UAAU,EACV6+U,yBAA0B,WAAM,OAAA3B,EAAkB,EAClDxya,QAAQ,IAWJ,SAAUk0a,GACdx9jB,QAAA,IAAAA,IAAAA,EAA6C,IAG3C,IDqMF6tE,ECrMEz0C,EAIEp5B,EAAO4+O,SAJTA,OAAW,IAAAxlN,GAAKA,EACUskiB,EAGxB19jB,EAAOy9jB,yBAFTE,EAEE39jB,EAFS29jB,YACXtkiB,EACEr5B,EADYspJ,OAAdA,OAAM,IAAAjwH,GAAQA,EAGVqV,EDuIF,SAA+CtV,GACnD,IAAAwlN,EAAQxlN,EAAAwlN,SACRg/U,EAAkBxkiB,EAAAwkiB,mBAClBt0a,EAAMlwH,EAAAkwH,OAEF56G,EAAS,CACXqthB,eAAgBzya,EACZ0za,GACAjB,GACJC,cAAeA,GACfC,eAAgBA,GAChBC,kBAAmBA,GACnBC,aAAc7ya,EACVgya,GAAmBa,GAAqBa,IACxCb,GACJU,gBAAiBA,GACjBC,gBAAiBxza,EACb0za,GACAF,GACJK,0BAA2BA,GAC3BC,gBAAiBA,GACjBC,aAAc/za,EACVgya,GAAmB+B,GAAqBL,IACxCK,GACJC,oBAAqBh0a,EACjB0za,GACAM,GACJC,aAAcA,IAOhB,GAJIK,IACFlvhB,EAASxoC,GAAO,CAAC,EAAGwoC,EAAQkvhB,EAAmBlvhB,KAG7CkwM,EAAU,CACZ,IAAMi/U,EAAiBpC,GAAiB/shB,EAAOqthB,gBACzC+B,EAAerC,GAAiB/shB,EAAOythB,cACvC4B,EAAkBtC,GAAiB/shB,EAAOouhB,iBAC1CkB,EAAevC,GAAiB/shB,EAAO2uhB,cAE7C3uhB,EAASxoC,GAAO,CAAC,EAAGwoC,EAAQ,CAC1BqthB,eAAc8B,EACd1B,aAAY2B,EACZhB,gBAAeiB,EACfV,aAAYW,GAEf,CAED,OAAOtvhB,CACT,CCxLiBuvhB,CAAqCj+jB,GAC9Cw3C,ED/CF,SAAyCpe,GAC7C,IAAA2iiB,EAAc3iiB,EAAA2iiB,eACdC,EAAa5iiB,EAAA4iiB,cACbC,EAAc7iiB,EAAA6iiB,eACdC,EAAiB9iiB,EAAA8iiB,kBACjBC,EAAY/iiB,EAAA+iiB,aACZU,EAAezjiB,EAAAyjiB,gBACfC,EAAe1jiB,EAAA0jiB,gBACfK,EAAyB/jiB,EAAA+jiB,0BACzBC,EAAehkiB,EAAAgkiB,gBACfC,EAAYjkiB,EAAAikiB,aACZC,EAAmBlkiB,EAAAkkiB,oBACnBC,EAAYnkiB,EAAAmkiB,aAKZ,OAAO,SAAoBvmjB,EAAQC,EAAQ9P,GAEzC,GAAI6P,IAAMC,EACR,OAAO,EAKT,GAAS,MAALD,GAAkB,MAALC,EACf,OAAO,EAGT,IAAMnT,SAAckT,EAEpB,GAAIlT,WAAgBmT,EAClB,OAAO,EAGT,GAAa,WAATnT,EACF,MAAa,WAATA,EACK+4jB,EAAgB7ljB,EAAGC,EAAG9P,GAGlB,aAATrD,GACKo4jB,EAAkBlljB,EAAGC,EAAG9P,GAOnC,IAAMzH,EAAcsX,EAAEtX,YAatB,GAAIA,IAAgBuX,EAAEvX,YACpB,OAAO,EAMT,GAAIA,IAAgBoD,OAClB,OAAOg6jB,EAAgB9ljB,EAAGC,EAAG9P,GAK/B,GAAI6H,GAAQgI,GACV,OAAO+kjB,EAAe/kjB,EAAGC,EAAG9P,GAK9B,GAAoB,MAAhBmuC,IAAwBA,GAAat+B,GACvC,OAAOsmjB,EAAoBtmjB,EAAGC,EAAG9P,GASnC,GAAIzH,IAAgBuzB,KAClB,OAAO+oiB,EAAchljB,EAAGC,EAAG9P,GAG7B,GAAIzH,IAAgB+f,OAClB,OAAO29iB,EAAgBpmjB,EAAGC,EAAG9P,GAG/B,GAAIzH,IAAgBmvC,IAClB,OAAOsthB,EAAanljB,EAAGC,EAAG9P,GAG5B,GAAIzH,IAAgBk4C,IAClB,OAAOylhB,EAAarmjB,EAAGC,EAAG9P,GAK5B,IAAMqI,EAAMu9E,GAAO/1E,GAEnB,MA7Ia,kBA6ITxH,EACKwsjB,EAAchljB,EAAGC,EAAG9P,GAzIb,oBA8IZqI,EACK4tjB,EAAgBpmjB,EAAGC,EAAG9P,GAlJnB,iBAqJRqI,EACK2sjB,EAAanljB,EAAGC,EAAG9P,GAlJhB,iBAqJRqI,EACK6tjB,EAAarmjB,EAAGC,EAAG9P,GAxJb,oBA2JXqI,EAKkB,oBAAXwH,EAAEja,MACS,oBAAXka,EAAEla,MACT+/jB,EAAgB9ljB,EAAGC,EAAG9P,GA9Jd,iBAoKRqI,EACK+tjB,EAAavmjB,EAAGC,EAAG9P,GA5Kd,mBAiLVqI,EACKysjB,EAAejljB,EAAGC,EAAG9P,GArLZ,uBAyLdqI,EACKstjB,EAAgB9ljB,EAAGC,EAAG9P,IAzLf,qBA+LZqI,GA3LW,oBA2LYA,GAvLZ,oBAuLkCA,IACxC2tjB,EAA0BnmjB,EAAGC,EAAG9P,EAe3C,CACF,CCjIqB+2jB,CAAyBxvhB,GAK5C,OD2MI,SAA8BtV,GAClC,IAAAwlN,EAAQxlN,EAAAwlN,SACRpnM,EAAUpe,EAAAoe,WACVmmhB,EAAWvkiB,EAAAukiB,YACXj+X,EAAMtmK,EAAAsmK,OACNp2C,EAAMlwH,EAAAkwH,OAEN,GAAIq0a,EACF,OAAO,SAAuB3mjB,EAAMC,GAC5B,IAAAmiB,EACJukiB,IADMtkiB,EAAAD,EAAAy+C,MAAAA,OAAQ,IAAAx+C,EAAAulN,EAAW,IAAIpmO,aAAYzO,EAASsvB,EAAE4rB,EAAI7rB,EAAA6rB,KAG1D,OAAOzN,EAAWxgC,EAAGC,EAAG,CACtB4gE,MAAKA,EACL6nH,OAAMA,EACNz6I,KAAIA,EACJqkG,OAAMA,GAEV,EAGF,GAAIs1F,EACF,OAAO,SAAuB5nO,EAAMC,GAClC,OAAOugC,EAAWxgC,EAAGC,EAAG,CACtB4gE,MAAO,IAAIr/D,QACXknL,OAAMA,EACNz6I,UAAMl7C,EACNu/I,OAAMA,GAEV,EAGF,IAAMniJ,EAAQ,CACZ0wE,WAAO9tE,EACP21L,OAAMA,EACNz6I,UAAMl7C,EACNu/I,OAAMA,GAGR,OAAO,SAAuBtyI,EAAMC,GAClC,OAAOugC,EAAWxgC,EAAGC,EAAG9P,EAC1B,CACF,CCrPSg3jB,CAAc,CAAEv/U,SAAQA,EAAEpnM,WAAUA,EAAEmmhB,YAAWA,EAAEj+X,OAJ3Cg+X,EACXA,EAA+BlmhB,ID4LnCq2B,EC3LqCr2B,ED6L9B,SACLxgC,EACAC,EACAmnjB,EACAC,EACAC,EACAC,EACAp3jB,GAEA,OAAO0mE,EAAQ72D,EAAGC,EAAG9P,EACvB,GCrMkEmiJ,OAAMA,GAC1E,CC5Ge,SAASk1a,GAAc12iB,GACpC,IAAI0sH,EAAUjoI,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EAC9EkyjB,GAAY,EAYhBlwV,uBAXmB,SAASxB,EAAat9K,GACnCgvgB,EAAW,IACbA,EAAWhvgB,GAETA,EAAMgvgB,EAAWjqb,GACnB1sH,EAAS2nC,GACTgvgB,GAAY,GAZlB,SAAmC32iB,GACI,qBAA1BymN,uBAAuCA,sBAAsBzmN,EAC1E,CAYM42iB,CAA0B3xV,EAE9B,GAEF,CClBA,SAASztO,GAAQ8vB,GAAgC,OAAO9vB,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,GAAQ8vB,EAAI,CAC7T,SAASgkO,GAASjqG,GAAO,OAKzB,SAAyBA,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAOA,CAAK,CALpCyna,CAAgBzna,IAIhD,SAA0BsjN,GAAQ,GAAsB,qBAAXjtW,QAAmD,MAAzBitW,EAAKjtW,OAAOC,WAA2C,MAAtBgtW,EAAK,cAAuB,OAAO9uW,MAAM8J,KAAKglW,EAAO,CAJrGkyN,CAAiBx1a,IAEzE,SAAqC/5H,EAAG0hiB,GAAU,IAAK1hiB,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO2hiB,GAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAc,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAM,GAAU,QAANhF,GAAqB,QAANA,EAAa,OAAOpI,MAAM8J,KAAK2nB,GAAI,GAAU,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAI,OAAOgrjB,GAAkB3hiB,EAAG0hiB,EAAS,CAF9UE,CAA4B7na,IAC7G,WAA8B,MAAM,IAAIz9I,UAAU,4IAA8I,CAD3EuljB,EAAoB,CAGzI,SAASF,GAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CAInK,SAASm/Z,KACtB,IACI7mL,EAAe,WACjB,OAAO,IACT,EACI8mL,GAAa,EACbnmU,EAAW,SAASA,EAASo7B,GAC/B,IAAI+qS,EAAJ,CAGA,GAAIlhkB,MAAMqR,QAAQ8kR,GAAS,CACzB,IAAKA,EAAO71R,OACV,OAEF,IACI6gkB,EAAU1rU,GADD0gC,GAEXs7H,EAAO0vK,EAAQ,GACfC,EAAaD,EAAQh9jB,MAAM,GAC7B,MAAoB,kBAATstZ,OACTovK,GAAc9lU,EAASruP,KAAK,KAAM00jB,GAAa3vK,IAGjD12J,EAAS02J,QACTovK,GAAc9lU,EAASruP,KAAK,KAAM00jB,IAEpC,CACwB,WAApBz/jB,GAAQw0R,IAEVikH,EADYjkH,GAGQ,oBAAXA,GACTA,GAtBF,CAwBF,EACA,MAAO,CACL5+J,KAAM,WACJ2pc,GAAa,CACf,EACAl/iB,MAAO,SAAevd,GACpBy8jB,GAAa,EACbnmU,EAASt2P,EACX,EACA4oB,UAAW,SAAmBg0iB,GAE5B,OADAjnL,EAAeinL,EACR,WACLjnL,EAAe,WACb,OAAO,IACT,CACF,CACF,EAEJ,CC3DA,SAASz4Y,GAAQ8vB,GAAgC,OAAO9vB,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,GAAQ8vB,EAAI,CAC7T,SAASxf,GAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,GAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,GAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,GAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,GAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,GAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwBqX,GAAO,IAAIrX,EACnC,SAAsB+b,EAAOshjB,GAAQ,GAAuB,WAAnB3/jB,GAAQqe,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIuhjB,EAAOvhjB,EAAMne,OAAO8gB,aAAc,QAAavW,IAATm1jB,EAAoB,CAAE,IAAIx/hB,EAAMw/hB,EAAKrikB,KAAK8gB,EAAOshjB,GAAQ,WAAY,GAAqB,WAAjB3/jB,GAAQogC,GAAmB,OAAOA,EAAK,MAAM,IAAIh0B,UAAU,+CAAiD,CAAE,OAAiB,WAATuzjB,EAAoBl7jB,OAASC,QAAQ2Z,EAAQ,CADnVixa,CAAa31a,EAAK,UAAW,MAAwB,WAAjB3Z,GAAQsC,GAAoBA,EAAMmC,OAAOnC,EAAM,CAD1Eitb,CAAejtb,GAAUA,KAAOrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAKpO,IAOI42B,GAAW,SAAkB+uB,GACtC,OAAOA,CACT,EAgDWi6gB,GAAY,SAAmBj0jB,EAAI3L,GAC5C,OAAOuD,OAAOC,KAAKxD,GAAKw8B,QAAO,SAAU2D,EAAK99B,GAC5C,OAAO0zO,GAAcA,GAAc,CAAC,EAAG51M,GAAM,CAAC,EAAGi1E,GAAgB,CAAC,EAAG/yG,EAAKsJ,EAAGtJ,EAAKrC,EAAIqC,KACxF,GAAG,CAAC,EACN,EACWw9jB,GAAmB,SAA0BzqhB,EAAOgpF,EAAUw6S,GACvE,OAAOxjY,EAAMxqC,KAAI,SAAUhN,GACzB,MAAO,GAAGmE,QAjDgCyJ,EAiDb5N,EAhDxB4N,EAAKyF,QAAQ,YAAY,SAAUwhB,GACxC,MAAO,IAAI1wB,OAAO0wB,EAAE/xB,cACtB,KA8CsC,KAAKqB,OAAOq8H,EAAU,OAAOr8H,OAAO62a,GAjDnD,IAAqBpta,CAkD5C,IAAGhJ,KAAK,IACV,EC1EA,SAAS22O,GAAevvF,EAAKnrJ,GAAK,OAGlC,SAAyBmrJ,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAOA,CAAK,CAH3Byna,CAAgBzna,IAEzD,SAA+B/sJ,EAAGwC,GAAK,IAAI4xB,EAAI,MAAQp0B,EAAI,KAAO,oBAAsBoD,QAAUpD,EAAEoD,OAAOC,WAAarD,EAAE,cAAe,GAAI,MAAQo0B,EAAG,CAAE,IAAIlG,EAAGvkB,EAAG/H,EAAG0yB,EAAG1Z,EAAI,GAAI/K,GAAI,EAAImjB,GAAI,EAAI,IAAM,GAAIpxB,GAAKwyB,EAAIA,EAAE3zB,KAAKT,IAAI4U,KAAM,IAAMpS,EAAG,CAAE,GAAIkE,OAAO0tB,KAAOA,EAAG,OAAQvkB,GAAI,CAAI,MAAO,OAASA,GAAKqe,EAAItsB,EAAEnB,KAAK2zB,IAAIzO,QAAU/K,EAAErY,KAAK2rB,EAAE5uB,OAAQsb,EAAE/Y,SAAWW,GAAIqN,GAAI,GAAK,CAAE,MAAO7P,GAAKgzB,GAAI,EAAIrpB,EAAI3J,CAAG,CAAE,QAAU,IAAM,IAAK6P,GAAK,MAAQukB,EAAE+2B,SAAW72B,EAAIF,EAAE+2B,SAAUzkD,OAAO4tB,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAItB,EAAG,MAAMrpB,CAAG,CAAE,CAAE,OAAOiR,CAAG,CAAE,CAFld65iB,CAAsB1na,EAAKnrJ,IAAMgzjB,GAA4B7na,EAAKnrJ,IACnI,WAA8B,MAAM,IAAI0N,UAAU,4IAA8I,CADvDuljB,EAAoB,CAI7J,SAASnxU,GAAmB32F,GAAO,OAInC,SAA4BA,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAO4na,GAAkB5na,EAAM,CAJhDk2a,CAAmBl2a,IAG7D,SAA0BsjN,GAAQ,GAAsB,qBAAXjtW,QAAmD,MAAzBitW,EAAKjtW,OAAOC,WAA2C,MAAtBgtW,EAAK,cAAuB,OAAO9uW,MAAM8J,KAAKglW,EAAO,CAHxFkyN,CAAiBx1a,IAAQ6na,GAA4B7na,IAC1H,WAAgC,MAAM,IAAIz9I,UAAU,uIAAyI,CAD3D4zjB,EAAsB,CAExJ,SAAStO,GAA4B5hiB,EAAG0hiB,GAAU,GAAK1hiB,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAO2hiB,GAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAiE,MAAnD,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAgB,QAANhF,GAAqB,QAANA,EAAoBpI,MAAM8J,KAAK2nB,GAAc,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAWgrjB,GAAkB3hiB,EAAG0hiB,QAAzG,CAA7O,CAA+V,CAG/Z,SAASC,GAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CAElL,IAAI8/Z,GAAW,KACXC,GAAoB,SAA2Bx8c,EAAIC,GACrD,MAAO,CAAC,EAAG,EAAID,EAAI,EAAIC,EAAK,EAAID,EAAI,EAAIA,EAAK,EAAIC,EAAK,EACxD,EACIw8c,GAAY,SAAmBh/V,EAAQjwM,GACzC,OAAOiwM,EAAOt2N,KAAI,SAAU+6C,EAAOlnD,GACjC,OAAOknD,EAAQ5mD,KAAKylH,IAAIvzF,EAAGxyB,EAC7B,IAAG+9B,QAAO,SAAUskJ,EAAK+uO,GACvB,OAAO/uO,EAAM+uO,CACf,GACF,EACIswK,GAAc,SAAqB18c,EAAIC,GACzC,OAAO,SAAUzyF,GACf,IAAIiwM,EAAS++V,GAAkBx8c,EAAIC,GACnC,OAAOw8c,GAAUh/V,EAAQjwM,EAC3B,CACF,EAYWmviB,GAAe,WACxB,IAAK,IAAIvyV,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAEzB,IAAI//L,EAAKrmB,EAAK,GACZsmB,EAAKtmB,EAAK,GACVumB,EAAKvmB,EAAK,GACVwmB,EAAKxmB,EAAK,GACZ,GAAoB,IAAhBA,EAAKhpB,OACP,OAAQgpB,EAAK,IACX,IAAK,SACHqmB,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EACL,MACF,IAAK,OACHH,EAAK,IACLC,EAAK,GACLC,EAAK,IACLC,EAAK,EACL,MACF,IAAK,UACHH,EAAK,IACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EACL,MACF,IAAK,WACHH,EAAK,IACLC,EAAK,EACLC,EAAK,IACLC,EAAK,EACL,MACF,IAAK,cACHH,EAAK,EACLC,EAAK,EACLC,EAAK,IACLC,EAAK,EACL,MACF,QAEI,IAAI0qY,EAASlxZ,EAAK,GAAGhR,MAAM,KAC3B,GAAkB,iBAAdkia,EAAO,IAAuE,IAA9CA,EAAO,GAAGlia,MAAM,KAAK,GAAGA,MAAM,KAAKhY,OAAc,CACnF,IAGI2hkB,EAAyBlnV,GAHDy/L,EAAO,GAAGlia,MAAM,KAAK,GAAGA,MAAM,KAAK9L,KAAI,SAAUsd,GAC3E,OAAO4X,WAAW5X,EACpB,IACmE,GACnE6lB,EAAKsyhB,EAAuB,GAC5BryhB,EAAKqyhB,EAAuB,GAC5BpyhB,EAAKoyhB,EAAuB,GAC5BnyhB,EAAKmyhB,EAAuB,EAC9B,EAMH,CAACtyhB,EAAIE,EAAID,EAAIE,GAAIt/B,OAAM,SAAUwpO,GACpC,MAAsB,kBAARA,GAAoBA,GAAO,GAAKA,GAAO,CACvD,IACA,IAxEyD30H,EAAIC,EAwEzD48c,EAASH,GAAYpyhB,EAAIE,GACzBsyhB,EAASJ,GAAYnyhB,EAAIE,GACzBsyhB,GA1EqD/8c,EA0EnB11E,EA1EuB21E,EA0EnBz1E,EAzEnC,SAAUhd,GACf,IAAIiwM,EAAS++V,GAAkBx8c,EAAIC,GAC/B+8c,EAAY,GAAG1+jB,OAAOw+O,GAAmBrf,EAAOt2N,KAAI,SAAU+6C,EAAOlnD,GACvE,OAAOknD,EAAQlnD,CACjB,IAAG8D,MAAM,IAAK,CAAC,IACf,OAAO29jB,GAAUO,EAAWxviB,EAC9B,GA6EIyviB,EAAS,SAAgB35a,GAG3B,IAFA,IAVmC5qJ,EAU/B80B,EAAI81H,EAAK,EAAI,EAAIA,EACjB7+H,EAAI+I,EACCxyB,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAC1B,IAAIkikB,EAAQL,EAAOp4iB,GAAK+I,EACpB2viB,EAASJ,EAAUt4iB,GACvB,GAAInpB,KAAK6E,IAAI+8jB,EAAQ1viB,GAAK+uiB,IAAYY,EAASZ,GAC7C,OAAOO,EAAOr4iB,GAEhBA,GAlBiC/rB,EAkBlB+rB,EAAIy4iB,EAAQC,GAjBjB,EACH,EAELzkkB,EAAQ,EACH,EAEFA,CAYP,CACA,OAAOokkB,EAAOr4iB,EAChB,EAEA,OADAw4iB,EAAOG,WAAY,EACZH,CACT,EAuBWI,GAAe,WACxB,IAAK,IAAI7yV,EAAQjhO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAM6vO,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFxmN,EAAKwmN,GAASlhO,UAAUkhO,GAE1B,IAAI0qM,EAASlxZ,EAAK,GAClB,GAAsB,kBAAXkxZ,EACT,OAAQA,GACN,IAAK,OACL,IAAK,cACL,IAAK,WACL,IAAK,UACL,IAAK,SACH,OAAOwnJ,GAAaxnJ,GACtB,IAAK,SACH,OApCkB,WACxB,IAAIzpY,EAASniC,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9E+zjB,EAAgB5xhB,EAAO6xhB,MACzBA,OAA0B,IAAlBD,EAA2B,IAAMA,EACzCE,EAAkB9xhB,EAAO+xhB,QACzBA,OAA8B,IAApBD,EAA6B,EAAIA,EAC3CE,EAAahyhB,EAAOsuI,GACpBA,OAAoB,IAAf0jZ,EAAwB,GAAKA,EAChCC,EAAU,SAAiBC,EAAOC,EAAOC,GAC3C,IAEIC,EAAOD,KAFKF,EAAQC,GAASN,EAClBO,EAAQL,GACmBzjZ,EAAK,IAC3Cq8X,EAAOynB,EAAQ9jZ,EAAK,IAAO4jZ,EAC/B,OAAItikB,KAAK6E,IAAIk2iB,EAAOwnB,GAAStB,IAAYjhkB,KAAK6E,IAAI49jB,GAAQxB,GACjD,CAACsB,EAAO,GAEV,CAACxnB,EAAM0nB,EAChB,EAGA,OAFAJ,EAAQP,WAAY,EACpBO,EAAQ3jZ,GAAKA,EACN2jZ,CACT,CAeeK,GACT,QACE,GAA6B,iBAAzB7oJ,EAAOlia,MAAM,KAAK,GACpB,OAAO0pjB,GAAaxnJ,GAK5B,MAAsB,oBAAXA,EACFA,EAGF,IACT,ECjLA,SAAS74a,GAAQ8vB,GAAgC,OAAO9vB,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,GAAQ8vB,EAAI,CAC7T,SAAS0wN,GAAmB32F,GAAO,OAGnC,SAA4BA,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAO4na,GAAkB5na,EAAM,CAHhDk2a,CAAmBl2a,IAE7D,SAA0BsjN,GAAQ,GAAsB,qBAAXjtW,QAAmD,MAAzBitW,EAAKjtW,OAAOC,WAA2C,MAAtBgtW,EAAK,cAAuB,OAAO9uW,MAAM8J,KAAKglW,EAAO,CAFxFkyN,CAAiBx1a,IAAQ6na,GAA4B7na,IAC1H,WAAgC,MAAM,IAAIz9I,UAAU,uIAAyI,CAD3D4zjB,EAAsB,CAIxJ,SAAS1vjB,GAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,GAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,GAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,GAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,GAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,GAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwBqX,GAAO,IAAIrX,EACnC,SAAsB+b,EAAOshjB,GAAQ,GAAuB,WAAnB3/jB,GAAQqe,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIuhjB,EAAOvhjB,EAAMne,OAAO8gB,aAAc,QAAavW,IAATm1jB,EAAoB,CAAE,IAAIx/hB,EAAMw/hB,EAAKrikB,KAAK8gB,EAAOshjB,GAAQ,WAAY,GAAqB,WAAjB3/jB,GAAQogC,GAAmB,OAAOA,EAAK,MAAM,IAAIh0B,UAAU,+CAAiD,CAAE,OAAiB,WAATuzjB,EAAoBl7jB,OAASC,QAAQ2Z,EAAQ,CADnVixa,CAAa31a,EAAK,UAAW,MAAwB,WAAjB3Z,GAAQsC,GAAoBA,EAAMmC,OAAOnC,EAAM,CAD1Eitb,CAAejtb,GAAUA,KAAOrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAG3O,SAASm5O,GAAevvF,EAAKnrJ,GAAK,OAKlC,SAAyBmrJ,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAOA,CAAK,CAL3Byna,CAAgBzna,IAIzD,SAA+B/sJ,EAAGwC,GAAK,IAAI4xB,EAAI,MAAQp0B,EAAI,KAAO,oBAAsBoD,QAAUpD,EAAEoD,OAAOC,WAAarD,EAAE,cAAe,GAAI,MAAQo0B,EAAG,CAAE,IAAIlG,EAAGvkB,EAAG/H,EAAG0yB,EAAG1Z,EAAI,GAAI/K,GAAI,EAAImjB,GAAI,EAAI,IAAM,GAAIpxB,GAAKwyB,EAAIA,EAAE3zB,KAAKT,IAAI4U,KAAM,IAAMpS,EAAG,CAAE,GAAIkE,OAAO0tB,KAAOA,EAAG,OAAQvkB,GAAI,CAAI,MAAO,OAASA,GAAKqe,EAAItsB,EAAEnB,KAAK2zB,IAAIzO,QAAU/K,EAAErY,KAAK2rB,EAAE5uB,OAAQsb,EAAE/Y,SAAWW,GAAIqN,GAAI,GAAK,CAAE,MAAO7P,GAAKgzB,GAAI,EAAIrpB,EAAI3J,CAAG,CAAE,QAAU,IAAM,IAAK6P,GAAK,MAAQukB,EAAE+2B,SAAW72B,EAAIF,EAAE+2B,SAAUzkD,OAAO4tB,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAItB,EAAG,MAAMrpB,CAAG,CAAE,CAAE,OAAOiR,CAAG,CAAE,CAJld65iB,CAAsB1na,EAAKnrJ,IAAMgzjB,GAA4B7na,EAAKnrJ,IACnI,WAA8B,MAAM,IAAI0N,UAAU,4IAA8I,CADvDuljB,EAAoB,CAE7J,SAASD,GAA4B5hiB,EAAG0hiB,GAAU,GAAK1hiB,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAO2hiB,GAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAiE,MAAnD,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAgB,QAANhF,GAAqB,QAANA,EAAoBpI,MAAM8J,KAAK2nB,GAAc,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAWgrjB,GAAkB3hiB,EAAG0hiB,QAAzG,CAA7O,CAA+V,CAC/Z,SAASC,GAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CAIlL,IAAI30C,GAAQ,SAAe0mF,EAAO5xL,EAAKliB,GACrC,OAAO8zM,GAAS5xL,EAAM4xL,GAAS9zM,CACjC,EACIujkB,GAAe,SAAsBl5a,GAGvC,OAFWA,EAAKtgJ,OACTsgJ,EAAKngJ,EAEd,EAMIs5jB,GAAiB,SAASA,EAAe/oJ,EAAQgpJ,EAAShxP,GAC5D,IAAIixP,EAAejC,IAAU,SAAUv9jB,EAAK6D,GAC1C,GAAIw7jB,GAAax7jB,GAAM,CACrB,IACE47jB,EAAW3oV,GADCy/L,EAAO1ya,EAAIgC,KAAMhC,EAAImC,GAAInC,EAAI67jB,UACN,GACnCjoB,EAAOgoB,EAAS,GAChBN,EAAOM,EAAS,GAClB,OAAO/rV,GAAcA,GAAc,CAAC,EAAG7vO,GAAM,CAAC,EAAG,CAC/CgC,KAAM4xiB,EACNioB,SAAUP,GAEd,CACA,OAAOt7jB,CACT,GAAG07jB,GACH,OAAIhxP,EAAQ,EACHgvP,IAAU,SAAUv9jB,EAAK6D,GAC9B,OAAIw7jB,GAAax7jB,GACR6vO,GAAcA,GAAc,CAAC,EAAG7vO,GAAM,CAAC,EAAG,CAC/C67jB,SAAUx2c,GAAMrlH,EAAI67jB,SAAUF,EAAax/jB,GAAK0/jB,SAAUnxP,GAC1D1oU,KAAMqjH,GAAMrlH,EAAIgC,KAAM25jB,EAAax/jB,GAAK6F,KAAM0oU,KAG3C1qU,CACT,GAAG07jB,GAEED,EAAe/oJ,EAAQipJ,EAAcjxP,EAAQ,EACtD,EAGA,kBAA0B1oU,EAAMG,EAAIuwa,EAAQx6S,EAAU9+E,GACpD,IFpD4D0ihB,EAAQC,EEgEhEC,EACAC,EAbAC,GFpDwDJ,EEoDxB95jB,EFpDgC+5jB,EEoD1B55jB,EFnDnC,CAAC9E,OAAOC,KAAKw+jB,GAASz+jB,OAAOC,KAAKy+jB,IAAUzliB,QAAO,SAAU/kB,EAAGC,GACrE,OAAOD,EAAE/I,QAAO,SAAUiJ,GACxB,OAAOD,EAAEhK,SAASiK,EACpB,GACF,KEgDI0qjB,EAAcD,EAAU5liB,QAAO,SAAU2D,EAAK99B,GAChD,OAAO0zO,GAAcA,GAAc,CAAC,EAAG51M,GAAM,CAAC,EAAGi1E,GAAgB,CAAC,EAAG/yG,EAAK,CAAC6F,EAAK7F,GAAMgG,EAAGhG,KAC3F,GAAG,CAAC,GACAigkB,EAAeF,EAAU5liB,QAAO,SAAU2D,EAAK99B,GACjD,OAAO0zO,GAAcA,GAAc,CAAC,EAAG51M,GAAM,CAAC,EAAGi1E,GAAgB,CAAC,EAAG/yG,EAAK,CACxE6F,KAAMA,EAAK7F,GACX0/jB,SAAU,EACV15jB,GAAIA,EAAGhG,KAEX,GAAG,CAAC,GACAkgkB,GAAS,EAGTv2d,EAAS,WACX,OAAO,IACT,EAkDA,OAHAA,EAAS4sU,EAAOioJ,UApCI,SAAuB3wgB,GACpCgygB,IACHA,EAAUhygB,GAEZ,IACI0gR,GADY1gR,EAAMgygB,GACEtpJ,EAAOn7P,GAC/B6kZ,EAAeX,GAAe/oJ,EAAQ0pJ,EAAc1xP,GAEpDtxR,EAAOy2L,GAAcA,GAAcA,GAAc,CAAC,EAAG7tO,GAAOG,GAjBrDu3jB,IAAU,SAAUv9jB,EAAK6D,GAC9B,OAAOA,EAAIgC,IACb,GAAGo6jB,KAgBHJ,EAAUhygB,EAbF3sD,OAAOqQ,OAAO0ujB,GAAc5zjB,OAAOgzjB,IAAchjkB,SAevD6jkB,EAAQvzV,sBAAsBhjI,GAElC,EAGmB,SAAsB97C,GAClCiygB,IACHA,EAAYjygB,GAEd,IAAIj/B,GAAKi/B,EAAMiygB,GAAa/jc,EACxBokc,EAAY5C,IAAU,SAAUv9jB,EAAK6D,GACvC,OAAOqlH,GAAM3zG,WAAM,EAAQ2oO,GAAmBr6O,GAAKnE,OAAO,CAAC62a,EAAO3nZ,KACpE,GAAGoxiB,GAIH,GADA/ihB,EAAOy2L,GAAcA,GAAcA,GAAc,CAAC,EAAG7tO,GAAOG,GAAKm6jB,IAC7DvxiB,EAAI,EACNsxiB,EAAQvzV,sBAAsBhjI,OACzB,CACL,IAAI8nd,EAAa8L,IAAU,SAAUv9jB,EAAK6D,GACxC,OAAOqlH,GAAM3zG,WAAM,EAAQ2oO,GAAmBr6O,GAAKnE,OAAO,CAAC62a,EAAO,KACpE,GAAGypJ,GACH/ihB,EAAOy2L,GAAcA,GAAcA,GAAc,CAAC,EAAG7tO,GAAOG,GAAKyrjB,GACnE,CACF,EAIO,WAIL,OAHA9kV,sBAAsBhjI,GAGf,WACLqsI,qBAAqBkqV,EACvB,CACF,CACD,ECtID,SAASxikB,GAAQ8vB,GAAgC,OAAO9vB,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,GAAQ8vB,EAAI,CAC7T,IAAI07M,GAAY,CAAC,WAAY,QAAS,WAAY,gBAAiB,SAAU,WAAY,QAAS,OAAQ,KAAM,WAAY,iBAAkB,kBAAmB,sBACjK,SAAS+L,GAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAA2D9G,EAAK5D,EAA5D6J,EAAS,CAAC,EAAO6mT,EAAa5rT,OAAOC,KAAK2F,GAAqB,IAAK1K,EAAI,EAAGA,EAAI0wT,EAAWzwT,OAAQD,IAAO4D,EAAM8sT,EAAW1wT,GAAQ0wb,EAASltb,QAAQI,IAAQ,IAAaiG,EAAOjG,GAAO8G,EAAO9G,IAAQ,OAAOiG,CAAQ,CADhNgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAE3e,SAASi4O,GAAmB32F,GAAO,OAInC,SAA4BA,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAO4na,GAAkB5na,EAAM,CAJhDk2a,CAAmBl2a,IAG7D,SAA0BsjN,GAAQ,GAAsB,qBAAXjtW,QAAmD,MAAzBitW,EAAKjtW,OAAOC,WAA2C,MAAtBgtW,EAAK,cAAuB,OAAO9uW,MAAM8J,KAAKglW,EAAO,CAHxFkyN,CAAiBx1a,IAEtF,SAAqC/5H,EAAG0hiB,GAAU,IAAK1hiB,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO2hiB,GAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAc,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAM,GAAU,QAANhF,GAAqB,QAANA,EAAa,OAAOpI,MAAM8J,KAAK2nB,GAAI,GAAU,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAI,OAAOgrjB,GAAkB3hiB,EAAG0hiB,EAAS,CAFjUE,CAA4B7na,IAC1H,WAAgC,MAAM,IAAIz9I,UAAU,uIAAyI,CAD3D4zjB,EAAsB,CAKxJ,SAASvO,GAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CAClL,SAAS7vJ,GAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,GAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,GAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,GAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,GAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,GAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,GAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAE3O,SAASu1jB,GAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,GAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASs4a,GAAe51a,GAAO,IAAIrX,EACnC,SAAsB+b,EAAOshjB,GAAQ,GAAuB,WAAnB3/jB,GAAQqe,IAAiC,OAAVA,EAAgB,OAAOA,EAAO,IAAIuhjB,EAAOvhjB,EAAMne,OAAO8gB,aAAc,QAAavW,IAATm1jB,EAAoB,CAAE,IAAIx/hB,EAAMw/hB,EAAKrikB,KAAK8gB,EAAOshjB,GAAQ,WAAY,GAAqB,WAAjB3/jB,GAAQogC,GAAmB,OAAOA,EAAK,MAAM,IAAIh0B,UAAU,+CAAiD,CAAE,OAAiB,WAATuzjB,EAAoBl7jB,OAASC,QAAQ2Z,EAAQ,CADnVixa,CAAa31a,EAAK,UAAW,MAAwB,WAAjB3Z,GAAQsC,GAAoBA,EAAMmC,OAAOnC,EAAM,CAG5H,SAASmzjB,GAAgB3liB,EAAGjL,GAA6I,OAAxI4wiB,GAAkBjyjB,OAAO4O,eAAiB5O,OAAO4O,eAAerH,OAAS,SAAyB+kB,EAAGjL,GAAsB,OAAjBiL,EAAEvoB,UAAYsd,EAAUiL,CAAG,EAAU2liB,GAAgB3liB,EAAGjL,EAAI,CACvM,SAAS0vN,GAAamuV,GAAW,IAAIC,EAGrC,WAAuC,GAAuB,qBAAZxjhB,UAA4BA,QAAQC,UAAW,OAAO,EAAO,GAAID,QAAQC,UAAU7nC,KAAM,OAAO,EAAO,GAAqB,oBAAVsgR,MAAsB,OAAO,EAAM,IAAsF,OAAhFtoR,QAAQlS,UAAUkhB,QAAQhhB,KAAK4hD,QAAQC,UAAU7vC,QAAS,IAAI,WAAa,MAAY,CAAM,CAAE,MAAOyb,KAAK,OAAO,CAAO,CAAE,CAHvQ8zZ,GAA6B,OAAO,WAAkC,IAAsCrwa,EAAlCm0jB,EAAQhkJ,GAAgB8jJ,GAAkB,GAAIC,EAA2B,CAAE,IAAIpqjB,EAAYqma,GAAgBphb,MAAM4C,YAAaqO,EAAS0wC,QAAQC,UAAUwjhB,EAAO31jB,UAAWsL,EAAY,MAAS9J,EAASm0jB,EAAM/qjB,MAAMra,KAAMyP,WAAc,OAAO4xa,GAA2Brhb,KAAMiR,EAAS,CAAG,CACxa,SAASowa,GAA2Btib,EAAMgB,GAAQ,GAAIA,IAA2B,WAAlByC,GAAQzC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI6O,UAAU,4DAA+D,OAAO+wP,GAAuB5gQ,EAAO,CAC/R,SAAS4gQ,GAAuB5gQ,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI43O,eAAe,6DAAgE,OAAO53O,CAAM,CAErK,SAASqib,GAAgB9uZ,GAA+J,OAA1J8uZ,GAAkBp7a,OAAO4O,eAAiB5O,OAAOmN,eAAe5F,OAAS,SAAyB+kB,GAAK,OAAOA,EAAEvoB,WAAa/D,OAAOmN,eAAemf,EAAI,EAAU8uZ,GAAgB9uZ,EAAI,CAQnN,IAAI+yiB,GAAuB,SAAU9wW,IAdrC,SAAmBC,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7lN,UAAU,sDAAyD4lN,EAAS30N,UAAYmG,OAAO4D,OAAO6qN,GAAcA,EAAW50N,UAAW,CAAE+C,YAAa,CAAEhE,MAAO41N,EAAUjgN,UAAU,EAAMnF,cAAc,KAAWpJ,OAAOgN,eAAewhN,EAAU,YAAa,CAAEjgN,UAAU,IAAckgN,GAAYwjW,GAAgBzjW,EAAUC,EAAa,CAejcqiB,CAAUuuV,EAAS9wW,GACnB,IAnBoB9uM,EAAau2W,EAAYC,EAmBzC5hW,EAAS08M,GAAasuV,GAC1B,SAASA,EAAQxthB,EAAOsuB,GACtB,IAAI1rC,GAvBR,SAAyBujC,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CAwBpJooO,CAAgBh3O,KAAMqlkB,GAEtB,IAAIt3U,GADJtzN,EAAQJ,EAAOt6B,KAAKC,KAAM63C,EAAOsuB,IACTtuB,MACtBo9L,EAAW8Y,EAAY9Y,SACvB31L,EAAgByuM,EAAYzuM,cAC5B30C,EAAOojP,EAAYpjP,KACnBG,EAAKijP,EAAYjjP,GACjBuoU,EAAQtlF,EAAYslF,MACpBlvR,EAAW4pM,EAAY5pM,SACvB08E,EAAWktH,EAAYltH,SAGzB,GAFApmG,EAAM6qiB,kBAAoB7qiB,EAAM6qiB,kBAAkB/3jB,KAAKoyP,GAAuBllO,IAC9EA,EAAM8qiB,YAAc9qiB,EAAM8qiB,YAAYh4jB,KAAKoyP,GAAuBllO,KAC7Dw6M,GAAYp0G,GAAY,EAW3B,OAVApmG,EAAMpwB,MAAQ,CACZ/E,MAAO,CAAC,GAIc,oBAAb6+C,IACT1pB,EAAMpwB,MAAQ,CACZ/E,MAAOwF,IAGJu2a,GAA2B5mZ,GAEpC,GAAI44S,GAASA,EAAMlyU,OACjBs5B,EAAMpwB,MAAQ,CACZ/E,MAAO+tU,EAAM,GAAG/tU,YAEb,GAAIqF,EAAM,CACf,GAAwB,oBAAbw5C,EAIT,OAHA1pB,EAAMpwB,MAAQ,CACZ/E,MAAOqF,GAEF02a,GAA2B5mZ,GAEpCA,EAAMpwB,MAAQ,CACZ/E,MAAOg6C,EAAgBu4D,GAAgB,CAAC,EAAGv4D,EAAe30C,GAAQA,EAEtE,MACE8vB,EAAMpwB,MAAQ,CACZ/E,MAAO,CAAC,GAGZ,OAAOm1B,CACT,CAsOA,OAzSoBhV,EAoEP4/iB,GApEoBrpM,EAoEX,CAAC,CACrBl3X,IAAK,oBACLlG,MAAO,WACL,IAAI2mT,EAAevlT,KAAK63C,MACtBo9L,EAAWswE,EAAatwE,SACxBuwV,EAAWjgR,EAAaigR,SAC1BxlkB,KAAKs9Q,SAAU,EACVroC,GAAauwV,GAGlBxlkB,KAAKylkB,aAAazlkB,KAAK63C,MACzB,GACC,CACD/yC,IAAK,qBACLlG,MAAO,SAA4Bglb,GACjC,IAAIj+H,EAAe3lT,KAAK63C,MACtBo9L,EAAW0wE,EAAa1wE,SACxBuwV,EAAW7/Q,EAAa6/Q,SACxBlmhB,EAAgBqmQ,EAAarmQ,cAC7BomhB,EAAkB//Q,EAAa+/Q,gBAC/B56jB,EAAK66S,EAAa76S,GAClB66jB,EAAchgR,EAAah7S,KACzBrF,EAAQtF,KAAKqK,MAAM/E,MACvB,GAAKkgkB,EAGL,GAAKvwV,GAYL,KAAI4M,GAAU+hM,EAAU94a,GAAIA,IAAO84a,EAAU4hJ,UAAY5hJ,EAAU3uM,UAAnE,CAGA,IAAI2wV,GAAehiJ,EAAU4hJ,WAAa5hJ,EAAU3uM,SAChDj1O,KAAK6lkB,SACP7lkB,KAAK6lkB,QAAQztc,OAEXp4H,KAAK8lkB,iBACP9lkB,KAAK8lkB,kBAEP,IAAIn7jB,EAAOi7jB,GAAeF,EAAkBC,EAAc/hJ,EAAU94a,GACpE,GAAI9K,KAAKqK,OAAS/E,EAAO,CACvB,IAAIygkB,EAAY,CACdzgkB,MAAOg6C,EAAgBu4D,GAAgB,CAAC,EAAGv4D,EAAe30C,GAAQA,IAEhE20C,GAAiBh6C,EAAMg6C,KAAmB30C,IAAS20C,GAAiBh6C,IAAUqF,IAEhF3K,KAAKk2G,SAAS6vd,EAElB,CACA/lkB,KAAKylkB,aAAajtV,GAAcA,GAAc,CAAC,EAAGx4O,KAAK63C,OAAQ,CAAC,EAAG,CACjEltC,KAAMA,EACN+pM,MAAO,IApBT,MAdA,CACE,IAAI24B,EAAW,CACb/nO,MAAOg6C,EAAgBu4D,GAAgB,CAAC,EAAGv4D,EAAex0C,GAAMA,GAE9D9K,KAAKqK,OAAS/E,IACZg6C,GAAiBh6C,EAAMg6C,KAAmBx0C,IAAOw0C,GAAiBh6C,IAAUwF,IAE9E9K,KAAKk2G,SAASm3H,EAIpB,CAyBF,GACC,CACDvoO,IAAK,uBACLlG,MAAO,WACLoB,KAAKs9Q,SAAU,EACf,IAAI0oT,EAAiBhmkB,KAAK63C,MAAMmuhB,eAC5BhmkB,KAAKimkB,aACPjmkB,KAAKimkB,cAEHjmkB,KAAK6lkB,UACP7lkB,KAAK6lkB,QAAQztc,OACbp4H,KAAK6lkB,QAAU,MAEb7lkB,KAAK8lkB,iBACP9lkB,KAAK8lkB,kBAEHE,GACFA,GAEJ,GACC,CACDlhkB,IAAK,oBACLlG,MAAO,SAA2B0G,GAChCtF,KAAKulkB,YAAYjgkB,EACnB,GACC,CACDR,IAAK,cACLlG,MAAO,SAAqB0G,GACtBtF,KAAKs9Q,SACPt9Q,KAAKk2G,SAAS,CACZ5wG,MAAOA,GAGb,GACC,CACDR,IAAK,iBACLlG,MAAO,SAAwBi5C,GAC7B,IAAImoN,EAAShgQ,KACT2K,EAAOktC,EAAMltC,KACfG,EAAK+sC,EAAM/sC,GACX+1H,EAAWhpF,EAAMgpF,SACjBw6S,EAASxjY,EAAMwjY,OACf3mO,EAAQ78J,EAAM68J,MACdsxX,EAAiBnuhB,EAAMmuhB,eACvBE,EAAmBruhB,EAAMquhB,iBACvBC,EAAiB5/N,GAAa57V,EAAMG,EAAIy4jB,GAAaloJ,GAASx6S,EAAU7gI,KAAKulkB,aAIjFvlkB,KAAK6lkB,QAAQhjjB,MAAM,CAACqjjB,EAAkBxxX,EAHZ,WACxBsrD,EAAO8lU,gBAAkBK,GAC3B,EACkEtlc,EAAUmlc,GAC9E,GACC,CACDlhkB,IAAK,mBACLlG,MAAO,SAA0Bi5C,GAC/B,IAAI0xY,EAASvpb,KACTqzU,EAAQx7R,EAAMw7R,MAChB3+H,EAAQ78J,EAAM68J,MACdwxX,EAAmBruhB,EAAMquhB,iBACvBE,EAAU/yP,EAAM,GAClBgzP,EAAeD,EAAQ9gkB,MACvBghkB,EAAmBF,EAAQvlc,SAC3B0lc,OAAmC,IAArBD,EAA8B,EAAIA,EA2BlD,OAAOtmkB,KAAK6lkB,QAAQhjjB,MAAM,CAACqjjB,GAAkB1hkB,OAAOw+O,GAAmBqwF,EAAMp0S,QA1B9D,SAAkBuniB,EAAUC,EAAUv2jB,GACnD,GAAc,IAAVA,EACF,OAAOs2jB,EAET,IAAI3lc,EAAW4lc,EAAS5lc,SACtB6lc,EAAmBD,EAASprJ,OAC5BA,OAA8B,IAArBqrJ,EAA8B,OAASA,EAChDphkB,EAAQmhkB,EAASnhkB,MACjBqhkB,EAAiBF,EAASh9iB,WAC1Bu8iB,EAAiBS,EAAST,eACxBY,EAAU12jB,EAAQ,EAAImjU,EAAMnjU,EAAQ,GAAKu2jB,EACzCh9iB,EAAak9iB,GAAkB3gkB,OAAOC,KAAKX,GAC/C,GAAsB,oBAAX+1a,GAAoC,WAAXA,EAClC,MAAO,GAAG72a,OAAOw+O,GAAmBwjV,GAAW,CAACj9I,EAAOs9I,eAAet5jB,KAAKg8a,EAAQ,CACjF5+a,KAAMi8jB,EAAQthkB,MACdwF,GAAIxF,EACJu7H,SAAUA,EACVw6S,OAAQA,IACNx6S,IAEN,IAAItwE,EAAa+xgB,GAAiB74iB,EAAYo3G,EAAUw6S,GACpDyrJ,EAAWtuV,GAAcA,GAAcA,GAAc,CAAC,EAAGouV,EAAQthkB,OAAQA,GAAQ,CAAC,EAAG,CACvFirD,WAAYA,IAEd,MAAO,GAAG/rD,OAAOw+O,GAAmBwjV,GAAW,CAACM,EAAUjmc,EAAUmlc,IAAiB70jB,OAAOkoB,GAC9F,GAC8F,CAACgtiB,EAAc7kkB,KAAKwhB,IAAIujjB,EAAa7xX,MAAW,CAAC78J,EAAMmuhB,iBACvJ,GACC,CACDlhkB,IAAK,eACLlG,MAAO,SAAsBi5C,GACtB73C,KAAK6lkB,UACR7lkB,KAAK6lkB,QAAU/D,MAEjB,IAAIptX,EAAQ78J,EAAM68J,MAChB7zE,EAAWhpF,EAAMgpF,SACjBvhF,EAAgBzH,EAAMyH,cACtBynhB,EAAUlvhB,EAAM/sC,GAChBuwa,EAASxjY,EAAMwjY,OACf6qJ,EAAmBruhB,EAAMquhB,iBACzBF,EAAiBnuhB,EAAMmuhB,eACvB3yP,EAAQx7R,EAAMw7R,MACdlvR,EAAWtM,EAAMsM,SACf0hhB,EAAU7lkB,KAAK6lkB,QAEnB,GADA7lkB,KAAKimkB,YAAcJ,EAAQ33iB,UAAUluB,KAAKslkB,mBACpB,oBAAXjqJ,GAA6C,oBAAbl3X,GAAsC,WAAXk3X,EAItE,GAAIhoG,EAAMlyU,OAAS,EACjBnB,KAAKgnkB,iBAAiBnvhB,OADxB,CAIA,IAAI/sC,EAAKw0C,EAAgBu4D,GAAgB,CAAC,EAAGv4D,EAAeynhB,GAAWA,EACnEx2gB,EAAa+xgB,GAAiBt8jB,OAAOC,KAAK6E,GAAK+1H,EAAUw6S,GAC7DwqJ,EAAQhjjB,MAAM,CAACqjjB,EAAkBxxX,EAAO8jC,GAAcA,GAAc,CAAC,EAAG1tO,GAAK,CAAC,EAAG,CAC/EylD,WAAYA,IACVswE,EAAUmlc,GALd,MANEhmkB,KAAK6mkB,eAAehvhB,EAYxB,GACC,CACD/yC,IAAK,SACLlG,MAAO,WACL,IAAIsnT,EAAelmT,KAAK63C,MACtBsM,EAAW+hQ,EAAa/hQ,SAExB08E,GADQqlL,EAAaxxG,MACVwxG,EAAarlL,UAGxBo0G,GAFgBixE,EAAa5mQ,cACpB4mQ,EAAam1H,OACXn1H,EAAajxE,UAQxBwgF,GAPQvP,EAAamtB,MACdntB,EAAav7S,KACfu7S,EAAap7S,GACPo7S,EAAas/Q,SACPt/Q,EAAa8/Q,eACZ9/Q,EAAaw/Q,gBACVx/Q,EAAa+gR,mBACzBltV,GAAyBmsE,EAAcl4E,KAC9Ch6L,EAAQqiE,EAAAA,SAASriE,MAAMmQ,GAEvB+ihB,EAAalnkB,KAAKqK,MAAM/E,MAC5B,GAAwB,oBAAb6+C,EACT,OAAOA,EAAS+ihB,GAElB,IAAKjyV,GAAsB,IAAVjhM,GAAe6sF,GAAY,EAC1C,OAAO18E,EAET,IAAIgjhB,EAAiB,SAAwB/mkB,GAC3C,IAAIgnkB,EAAmBhnkB,EAAUy3C,MAC/BwvhB,EAAwBD,EAAiB9hkB,MACzCA,OAAkC,IAA1B+hkB,EAAmC,CAAC,EAAIA,EAChD9/jB,EAAY6/jB,EAAiB7/jB,UAK/B,OAJuBsvG,EAAAA,EAAAA,cAAaz2G,EAAWo4O,GAAcA,GAAc,CAAC,EAAGi9E,GAAS,CAAC,EAAG,CAC1FnwT,MAAOkzO,GAAcA,GAAc,CAAC,EAAGlzO,GAAQ4hkB,GAC/C3/jB,UAAWA,IAGf,EACA,OAAc,IAAVysC,EACKmzhB,EAAe9wd,EAAAA,SAASC,KAAKnyD,IAElB0vK,EAAAA,cAAoB,MAAO,KAAMx9G,EAAAA,SAAShpG,IAAI82C,GAAU,SAAUl8C,GACpF,OAAOk/jB,EAAel/jB,EACxB,IACF,MAvS0E+vjB,GAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,GAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAySrP8wjB,CACT,CAzR2B,CAyRzB5ud,EAAAA,eACF4ud,GAAQxjhB,YAAc,UACtBwjhB,GAAQ1thB,aAAe,CACrB+8J,MAAO,EACP7zE,SAAU,IACVl2H,KAAM,GACNG,GAAI,GACJw0C,cAAe,GACf+7X,OAAQ,OACRpmM,UAAU,EACVuwV,UAAU,EACVnyP,MAAO,GACP2yP,eAAgB,WAA2B,EAC3CE,iBAAkB,WAA6B,GAEjDb,GAAQpiM,UAAY,CAClBt4X,KAAM8vC,KAAAA,UAAoB,CAACA,KAAAA,OAAkBA,KAAAA,SAC7C3vC,GAAI2vC,KAAAA,UAAoB,CAACA,KAAAA,OAAkBA,KAAAA,SAC3C6E,cAAe7E,KAAAA,OAEfomF,SAAUpmF,KAAAA,OACVi6J,MAAOj6J,KAAAA,OACP4gY,OAAQ5gY,KAAAA,UAAoB,CAACA,KAAAA,OAAkBA,KAAAA,OAC/C44R,MAAO54R,KAAAA,QAAkBA,KAAAA,MAAgB,CACvComF,SAAUpmF,KAAAA,OAAiBf,WAC3Bp0C,MAAOm1C,KAAAA,OAAiBf,WACxB2hY,OAAQ5gY,KAAAA,UAAoB,CAACA,KAAAA,MAAgB,CAAC,OAAQ,UAAW,WAAY,cAAe,WAAYA,KAAAA,OAExGhxB,WAAYgxB,KAAAA,QAAkB,UAC9BurhB,eAAgBvrhB,KAAAA,QAElB0J,SAAU1J,KAAAA,UAAoB,CAACA,KAAAA,KAAgBA,KAAAA,OAC/Cw6L,SAAUx6L,KAAAA,KACV+qhB,SAAU/qhB,KAAAA,KACVurhB,eAAgBvrhB,KAAAA,KAEhBirhB,gBAAiBjrhB,KAAAA,KACjByrhB,iBAAkBzrhB,KAAAA,KAClBwshB,mBAAoBxshB,KAAAA,MAEtB,MC7VA,GD6VA,GEjWA,SAASj4C,GAAQ8vB,GAAgC,OAAO9vB,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,GAAQ8vB,EAAI,CAC7T,SAAS2sM,KAAiS,OAApRA,GAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,GAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASmsO,GAAevvF,EAAKnrJ,GAAK,OAKlC,SAAyBmrJ,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAOA,CAAK,CAL3Byna,CAAgBzna,IAIzD,SAA+B/sJ,EAAGwC,GAAK,IAAI4xB,EAAI,MAAQp0B,EAAI,KAAO,oBAAsBoD,QAAUpD,EAAEoD,OAAOC,WAAarD,EAAE,cAAe,GAAI,MAAQo0B,EAAG,CAAE,IAAIlG,EAAGvkB,EAAG/H,EAAG0yB,EAAG1Z,EAAI,GAAI/K,GAAI,EAAImjB,GAAI,EAAI,IAAM,GAAIpxB,GAAKwyB,EAAIA,EAAE3zB,KAAKT,IAAI4U,KAAM,IAAMpS,EAAG,CAAE,GAAIkE,OAAO0tB,KAAOA,EAAG,OAAQvkB,GAAI,CAAI,MAAO,OAASA,GAAKqe,EAAItsB,EAAEnB,KAAK2zB,IAAIzO,QAAU/K,EAAErY,KAAK2rB,EAAE5uB,OAAQsb,EAAE/Y,SAAWW,GAAIqN,GAAI,GAAK,CAAE,MAAO7P,GAAKgzB,GAAI,EAAIrpB,EAAI3J,CAAG,CAAE,QAAU,IAAM,IAAK6P,GAAK,MAAQukB,EAAU,SAAME,EAAIF,EAAU,SAAK1tB,OAAO4tB,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAItB,EAAG,MAAMrpB,CAAG,CAAE,CAAE,OAAOiR,CAAG,CAAE,CAJxd65iB,CAAsB1na,EAAKnrJ,IAE5F,SAAqCoxB,EAAG0hiB,GAAU,IAAK1hiB,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO2hiB,GAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAc,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAM,GAAU,QAANhF,GAAqB,QAANA,EAAa,OAAOpI,MAAM8J,KAAK2nB,GAAI,GAAU,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAI,OAAOgrjB,GAAkB3hiB,EAAG0hiB,EAAS,CAF7TE,CAA4B7na,EAAKnrJ,IACnI,WAA8B,MAAM,IAAI0N,UAAU,4IAA8I,CADvDuljB,EAAoB,CAG7J,SAASF,GAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CAGlL,SAAS7vJ,GAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,GAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,GAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,GAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,GAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,GAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,GAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,GAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,GAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAU3O,IAAI6kkB,GAAmB,SAA0B38iB,EAAGoK,EAAG9yB,EAAON,EAAQgyM,GACpE,IAIIn9L,EAJA+wjB,EAAY/lkB,KAAKyhB,IAAIzhB,KAAK6E,IAAIpE,GAAS,EAAGT,KAAK6E,IAAI1E,GAAU,GAC7D6lkB,EAAQ7lkB,GAAU,EAAI,GAAK,EAC3B8lkB,EAAQxlkB,GAAS,EAAI,GAAK,EAC1BylkB,EAAY/lkB,GAAU,GAAKM,GAAS,GAAKN,EAAS,GAAKM,EAAQ,EAAI,EAAI,EAE3E,GAAIslkB,EAAY,GAAK5zX,aAAkB9yM,MAAO,CAE5C,IADA,IAAI8mkB,EAAY,CAAC,EAAG,EAAG,EAAG,GACjBzmkB,EAAI,EAAYA,EAAH,EAAYA,IAChCymkB,EAAUzmkB,GAAKyyM,EAAOzyM,GAAKqmkB,EAAYA,EAAY5zX,EAAOzyM,GAE5DsV,EAAO,IAAIhS,OAAOmmB,EAAG,KAAKnmB,OAAOuwB,EAAIyyiB,EAAQG,EAAU,IACnDA,EAAU,GAAK,IACjBnxjB,GAAQ,KAAKhS,OAAOmjkB,EAAU,GAAI,KAAKnjkB,OAAOmjkB,EAAU,GAAI,SAASnjkB,OAAOkjkB,EAAW,KAAKljkB,OAAOmmB,EAAI88iB,EAAQE,EAAU,GAAI,KAAKnjkB,OAAOuwB,IAE3Ive,GAAQ,KAAKhS,OAAOmmB,EAAI1oB,EAAQwlkB,EAAQE,EAAU,GAAI,KAAKnjkB,OAAOuwB,GAC9D4yiB,EAAU,GAAK,IACjBnxjB,GAAQ,KAAKhS,OAAOmjkB,EAAU,GAAI,KAAKnjkB,OAAOmjkB,EAAU,GAAI,SAASnjkB,OAAOkjkB,EAAW,eAAeljkB,OAAOmmB,EAAI1oB,EAAO,KAAKuC,OAAOuwB,EAAIyyiB,EAAQG,EAAU,KAE5JnxjB,GAAQ,KAAKhS,OAAOmmB,EAAI1oB,EAAO,KAAKuC,OAAOuwB,EAAIpzB,EAAS6lkB,EAAQG,EAAU,IACtEA,EAAU,GAAK,IACjBnxjB,GAAQ,KAAKhS,OAAOmjkB,EAAU,GAAI,KAAKnjkB,OAAOmjkB,EAAU,GAAI,SAASnjkB,OAAOkjkB,EAAW,eAAeljkB,OAAOmmB,EAAI1oB,EAAQwlkB,EAAQE,EAAU,GAAI,KAAKnjkB,OAAOuwB,EAAIpzB,IAEjK6U,GAAQ,KAAKhS,OAAOmmB,EAAI88iB,EAAQE,EAAU,GAAI,KAAKnjkB,OAAOuwB,EAAIpzB,GAC1DgmkB,EAAU,GAAK,IACjBnxjB,GAAQ,KAAKhS,OAAOmjkB,EAAU,GAAI,KAAKnjkB,OAAOmjkB,EAAU,GAAI,SAASnjkB,OAAOkjkB,EAAW,eAAeljkB,OAAOmmB,EAAG,KAAKnmB,OAAOuwB,EAAIpzB,EAAS6lkB,EAAQG,EAAU,KAE7JnxjB,GAAQ,GACV,MAAO,GAAI+wjB,EAAY,GAAK5zX,KAAYA,GAAUA,EAAS,EAAG,CAC5D,IAAIi0X,EAAapmkB,KAAKyhB,IAAIskjB,EAAW5zX,GACrCn9L,EAAO,KAAKhS,OAAOmmB,EAAG,KAAKnmB,OAAOuwB,EAAIyyiB,EAAQI,EAAY,oBAAoBpjkB,OAAOojkB,EAAY,KAAKpjkB,OAAOojkB,EAAY,SAASpjkB,OAAOkjkB,EAAW,KAAKljkB,OAAOmmB,EAAI88iB,EAAQG,EAAY,KAAKpjkB,OAAOuwB,EAAG,oBAAoBvwB,OAAOmmB,EAAI1oB,EAAQwlkB,EAAQG,EAAY,KAAKpjkB,OAAOuwB,EAAG,oBAAoBvwB,OAAOojkB,EAAY,KAAKpjkB,OAAOojkB,EAAY,SAASpjkB,OAAOkjkB,EAAW,KAAKljkB,OAAOmmB,EAAI1oB,EAAO,KAAKuC,OAAOuwB,EAAIyyiB,EAAQI,EAAY,oBAAoBpjkB,OAAOmmB,EAAI1oB,EAAO,KAAKuC,OAAOuwB,EAAIpzB,EAAS6lkB,EAAQI,EAAY,oBAAoBpjkB,OAAOojkB,EAAY,KAAKpjkB,OAAOojkB,EAAY,SAASpjkB,OAAOkjkB,EAAW,KAAKljkB,OAAOmmB,EAAI1oB,EAAQwlkB,EAAQG,EAAY,KAAKpjkB,OAAOuwB,EAAIpzB,EAAQ,oBAAoB6C,OAAOmmB,EAAI88iB,EAAQG,EAAY,KAAKpjkB,OAAOuwB,EAAIpzB,EAAQ,oBAAoB6C,OAAOojkB,EAAY,KAAKpjkB,OAAOojkB,EAAY,SAASpjkB,OAAOkjkB,EAAW,KAAKljkB,OAAOmmB,EAAG,KAAKnmB,OAAOuwB,EAAIpzB,EAAS6lkB,EAAQI,EAAY,KAC13B,MACEpxjB,EAAO,KAAKhS,OAAOmmB,EAAG,KAAKnmB,OAAOuwB,EAAG,OAAOvwB,OAAOvC,EAAO,OAAOuC,OAAO7C,EAAQ,OAAO6C,QAAQvC,EAAO,MAExG,OAAOuU,CACT,EACWqxjB,GAAgB,SAAuBrgjB,EAAO8X,GACvD,IAAK9X,IAAU8X,EACb,OAAO,EAET,IAAIh7B,EAAKkjB,EAAMmD,EACbm9iB,EAAKtgjB,EAAMuN,EACTpK,EAAI2U,EAAK3U,EACXoK,EAAIuK,EAAKvK,EACT9yB,EAAQq9B,EAAKr9B,MACbN,EAAS29B,EAAK39B,OAChB,GAAIH,KAAK6E,IAAIpE,GAAS,GAAKT,KAAK6E,IAAI1E,GAAU,EAAG,CAC/C,IAAIomkB,EAAOvmkB,KAAKyhB,IAAI0H,EAAGA,EAAI1oB,GACvB+lkB,EAAOxmkB,KAAKwhB,IAAI2H,EAAGA,EAAI1oB,GACvBgmkB,EAAOzmkB,KAAKyhB,IAAI8R,EAAGA,EAAIpzB,GACvBumkB,EAAO1mkB,KAAKwhB,IAAI+R,EAAGA,EAAIpzB,GAC3B,OAAO2C,GAAMyjkB,GAAQzjkB,GAAM0jkB,GAAQF,GAAMG,GAAQH,GAAMI,CACzD,CACA,OAAO,CACT,EACIvwhB,GAAe,CACjBhtB,EAAG,EACHoK,EAAG,EACH9yB,MAAO,EACPN,OAAQ,EAIRgyM,OAAQ,EACRolX,mBAAmB,EACnBoP,yBAAyB,EACzBC,eAAgB,EAChB1mc,kBAAmB,KACnBm3b,gBAAiB,QAERl0X,GAAY,SAAmB0jY,GACxC,IAAIxwhB,EAAQ2gM,GAAcA,GAAc,CAAC,EAAG7gM,IAAe0whB,GACvDC,GAAUh7f,EAAAA,EAAAA,UAEZmxK,EAAa7C,IADCruK,EAAAA,EAAAA,WAAU,GACe,GACvCg7f,EAAc9pV,EAAW,GACzB+pV,EAAiB/pV,EAAW,IAC9BzxK,EAAAA,EAAAA,YAAU,WACR,GAAIs7f,EAAQriiB,SAAWqiiB,EAAQriiB,QAAQwiiB,eACrC,IACE,IAAIC,EAAkBJ,EAAQriiB,QAAQwiiB,iBAClCC,GACFF,EAAeE,EAEnB,CAAE,MAAOjlkB,GACP,CAGN,GAAG,IACH,IAAIknB,EAAIktB,EAAMltB,EACZoK,EAAI8iB,EAAM9iB,EACV9yB,EAAQ41C,EAAM51C,MACdN,EAASk2C,EAAMl2C,OACfgyM,EAAS97J,EAAM87J,OACfpsM,EAAYswC,EAAMtwC,UAChBsxjB,EAAkBhhhB,EAAMghhB,gBAC1Bn3b,EAAoB7pF,EAAM6pF,kBAC1B0mc,EAAiBvwhB,EAAMuwhB,eACvBrP,EAAoBlhhB,EAAMkhhB,kBAC1BoP,EAA0BtwhB,EAAMswhB,wBAClC,GAAIx9iB,KAAOA,GAAKoK,KAAOA,GAAK9yB,KAAWA,GAASN,KAAYA,GAAoB,IAAVM,GAA0B,IAAXN,EACnF,OAAO,KAET,IAAIg0jB,EAAa9sL,GAAK,qBAAsBthY,GAC5C,OAAK4gkB,EAMet0W,EAAAA,cAAoBwxW,GAAS,CAC/CG,SAAU+C,EAAc,EACxB59jB,KAAM,CACJ1I,MAAOA,EACPN,OAAQA,EACRgpB,EAAGA,EACHoK,EAAGA,GAELjqB,GAAI,CACF7I,MAAOA,EACPN,OAAQA,EACRgpB,EAAGA,EACHoK,EAAGA,GAEL8rG,SAAUa,EACVm3b,gBAAiBA,EACjB5jV,SAAUkzV,IACT,SAAUl9a,GACX,IAAI09a,EAAY19a,EAAKhpJ,MACnB2mkB,EAAa39a,EAAKtpJ,OAClBmikB,EAAQ74a,EAAKtgI,EACbk+iB,EAAQ59a,EAAKl2H,EACf,OAAoB8+L,EAAAA,cAAoBwxW,GAAS,CAC/CG,SAAU+C,EAAc,EACxB59jB,KAAM,OAAOnG,QAAwB,IAAjB+jkB,EAAqB,EAAIA,EAAa,MAC1Dz9jB,GAAI,GAAGtG,OAAO+jkB,EAAa,UAC3BjphB,cAAe,kBACfo1J,MAAO0zX,EACPvnc,SAAUa,EACVuzG,SAAU8jV,EACV19I,OAAQw9I,GACMhlW,EAAAA,cAAoB,OAAQoL,GAAS,CAAC,EAAG8zV,GAAYl7gB,GAAO,GAAO,CACjFtwC,UAAWoujB,EACX/ujB,EAAG0gkB,GAAiBxD,EAAO+E,EAAOF,EAAWC,EAAYj1X,GACzDp8J,IAAK+whB,KAET,IAzCsBz0W,EAAAA,cAAoB,OAAQoL,GAAS,CAAC,EAAG8zV,GAAYl7gB,GAAO,GAAO,CACrFtwC,UAAWoujB,EACX/ujB,EAAG0gkB,GAAiB38iB,EAAGoK,EAAG9yB,EAAON,EAAQgyM,KAwC/C,ECvKO,SAASm1X,GAAU5pjB,EAAQmU,GAChC,OAAQ5jB,UAAUtO,QAChB,KAAK,EAAG,MACR,KAAK,EAAGnB,KAAKqzB,MAAMnU,GAAS,MAC5B,QAASlf,KAAKqzB,MAAMA,GAAOnU,OAAOA,GAEpC,OAAOlf,IACT,CAEO,SAAS+okB,GAAiB7pjB,EAAQ8pjB,GACvC,OAAQv5jB,UAAUtO,QAChB,KAAK,EAAG,MACR,KAAK,EACmB,oBAAX+d,EAAuBlf,KAAKgpkB,aAAa9pjB,GAC/Clf,KAAKqzB,MAAMnU,GAChB,MAEF,QACElf,KAAKkf,OAAOA,GACgB,oBAAjB8pjB,EAA6BhpkB,KAAKgpkB,aAAaA,GACrDhpkB,KAAKqzB,MAAM21iB,GAIpB,OAAOhpkB,IACT,CCzBO,MAAMipkB,WAAkBl3hB,IAC7BnvC,WAAAA,CAAYwT,GAAsB,IAAbtR,EAAG2K,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAGy5jB,GAGzB,GAFA1/V,QACAxjO,OAAOgY,iBAAiBhe,KAAM,CAACmpkB,QAAS,CAACvqkB,MAAO,IAAImzC,KAAQw+L,KAAM,CAAC3xO,MAAOkG,KAC3D,MAAXsR,EAAiB,IAAK,MAAOtR,EAAKlG,KAAUwX,EAASpW,KAAK2J,IAAI7E,EAAKlG,EACzE,CACA4O,GAAAA,CAAI1I,GACF,OAAO0kO,MAAMh8N,IAAI47jB,GAAWppkB,KAAM8E,GACpC,CACA+N,GAAAA,CAAI/N,GACF,OAAO0kO,MAAM32N,IAAIu2jB,GAAWppkB,KAAM8E,GACpC,CACA6E,GAAAA,CAAI7E,EAAKlG,GACP,OAAO4qO,MAAM7/N,IAAI0/jB,GAAWrpkB,KAAM8E,GAAMlG,EAC1C,CACAmwD,OAAOjqD,GACL,OAAO0kO,MAAMz6K,OAAOu6gB,GAActpkB,KAAM8E,GAC1C,EAG6Bg2C,IAiB/B,SAASsuhB,GAAUn+a,EAAkBrsJ,GAAO,IAAxB,QAACuqkB,EAAO,KAAE54V,GAAKtlF,EACjC,MAAMnmJ,EAAMyrO,EAAK3xO,GACjB,OAAOuqkB,EAAQt2jB,IAAI/N,GAAOqkkB,EAAQ37jB,IAAI1I,GAAOlG,CAC/C,CAEA,SAASyqkB,GAAU3sZ,EAAkB99K,GAAO,IAAxB,QAACuqkB,EAAO,KAAE54V,GAAK7zD,EACjC,MAAM53K,EAAMyrO,EAAK3xO,GACjB,OAAIuqkB,EAAQt2jB,IAAI/N,GAAaqkkB,EAAQ37jB,IAAI1I,IACzCqkkB,EAAQx/jB,IAAI7E,EAAKlG,GACVA,EACT,CAEA,SAAS0qkB,GAAalpU,EAAkBxhQ,GAAO,IAAxB,QAACuqkB,EAAO,KAAE54V,GAAK6vB,EACpC,MAAMt7P,EAAMyrO,EAAK3xO,GAKjB,OAJIuqkB,EAAQt2jB,IAAI/N,KACdlG,EAAQuqkB,EAAQ37jB,IAAI1I,GACpBqkkB,EAAQp6gB,OAAOjqD,IAEVlG,CACT,CAEA,SAASsqkB,GAAMtqkB,GACb,OAAiB,OAAVA,GAAmC,kBAAVA,EAAqBA,EAAMmiB,UAAYniB,CACzE,CCzDO,MAAM2qkB,GAAW7mkB,OAAO,YAEhB,SAASgyB,KACtB,IAAIxkB,EAAQ,IAAI+4jB,GACZ/pjB,EAAS,GACTmU,EAAQ,GACRm2iB,EAAUD,GAEd,SAASznb,EAAMl7I,GACb,IAAI1F,EAAIgP,EAAM1C,IAAI5G,GAClB,QAAUqG,IAAN/L,EAAiB,CACnB,GAAIsokB,IAAYD,GAAU,OAAOC,EACjCt5jB,EAAMvG,IAAI/C,EAAG1F,EAAIge,EAAOrd,KAAK+E,GAAK,EACpC,CACA,OAAOysB,EAAMnyB,EAAImyB,EAAMlyB,OACzB,CA0BA,OAxBA2gJ,EAAM5iI,OAAS,SAASiS,GACtB,IAAK1hB,UAAUtO,OAAQ,OAAO+d,EAAOla,QACrCka,EAAS,GAAIhP,EAAQ,IAAI+4jB,GACzB,IAAK,MAAMrqkB,KAASuyB,EACdjhB,EAAM2C,IAAIjU,IACdsR,EAAMvG,IAAI/K,EAAOsgB,EAAOrd,KAAKjD,GAAS,GAExC,OAAOkjJ,CACT,EAEAA,EAAMzuH,MAAQ,SAASlC,GACrB,OAAO1hB,UAAUtO,QAAUkyB,EAAQxyB,MAAM8J,KAAKwmB,GAAI2wH,GAASzuH,EAAMruB,OACnE,EAEA88I,EAAM0nb,QAAU,SAASr4iB,GACvB,OAAO1hB,UAAUtO,QAAUqokB,EAAUr4iB,EAAG2wH,GAAS0nb,CACnD,EAEA1nb,EAAM3mD,KAAO,WACX,OAAOzmE,GAAQxV,EAAQmU,GAAOm2iB,QAAQA,EACxC,EAEAV,GAAUzujB,MAAMynI,EAAOryI,WAEhBqyI,CACT,CCzCe,SAAS2nb,KACtB,IAKIrpf,EACAspf,EANA5nb,EAAQptH,KAAU80iB,aAAQv8jB,GAC1BiS,EAAS4iI,EAAM5iI,OACfyqjB,EAAe7nb,EAAMzuH,MACrBu2iB,EAAK,EACLpub,EAAK,EAGLrjH,GAAQ,EACR0xiB,EAAe,EACfC,EAAe,EACf9riB,EAAQ,GAIZ,SAAS+riB,IACP,IAAI9gkB,EAAIiW,IAAS/d,OACbirF,EAAUovD,EAAKoub,EACf/mjB,EAAQupE,EAAUovD,EAAKoub,EACvBxxc,EAAOhsC,EAAUw9e,EAAKpub,EAC1Bp7D,GAAQg4C,EAAOv1G,GAASrhB,KAAKwhB,IAAI,EAAG/Z,EAAI4gkB,EAA8B,EAAfC,GACnD3xiB,IAAOioD,EAAO5+E,KAAKC,MAAM2+E,IAC7Bv9D,IAAUu1G,EAAOv1G,EAAQu9D,GAAQn3E,EAAI4gkB,IAAiB7riB,EACtD0riB,EAAYtpf,GAAQ,EAAIypf,GACpB1xiB,IAAOtV,EAAQrhB,KAAK22B,MAAMtV,GAAQ6mjB,EAAYlokB,KAAK22B,MAAMuxiB,IAC7D,IAAIrzjB,EC7BO,SAAewM,EAAOu1G,EAAMh4C,GACzCv9D,GAASA,EAAOu1G,GAAQA,EAAMh4C,GAAQn3E,EAAIwG,UAAUtO,QAAU,GAAKi3H,EAAOv1G,EAAOA,EAAQ,EAAG,GAAK5Z,EAAI,EAAI,GAAKm3E,EAM9G,IAJA,IAAIl/E,GAAK,EACL+H,EAAoD,EAAhDzH,KAAKwhB,IAAI,EAAGxhB,KAAK6K,MAAM+rH,EAAOv1G,GAASu9D,IAC3C/sD,EAAQ,IAAIxyB,MAAMoI,KAEb/H,EAAI+H,GACXoqB,EAAMnyB,GAAK2hB,EAAQ3hB,EAAIk/E,EAGzB,OAAO/sD,CACT,CDiBiBmziB,CAASv9jB,GAAGoE,KAAI,SAASnM,GAAK,OAAO2hB,EAAQu9D,EAAOl/E,CAAG,IACpE,OAAOyokB,EAAav9e,EAAU/1E,EAAO+1E,UAAY/1E,EACnD,CAkDA,cAhEOyrI,EAAM0nb,QAgBb1nb,EAAM5iI,OAAS,SAASiS,GACtB,OAAO1hB,UAAUtO,QAAU+d,EAAOiS,GAAI44iB,KAAa7qjB,GACrD,EAEA4iI,EAAMzuH,MAAQ,SAASlC,GACrB,OAAO1hB,UAAUtO,SAAWyokB,EAAIpub,GAAMrqH,EAAGy4iB,GAAMA,EAAIpub,GAAMA,EAAIuub,KAAa,CAACH,EAAIpub,EACjF,EAEAsG,EAAMkob,WAAa,SAAS74iB,GAC1B,OAAQy4iB,EAAIpub,GAAMrqH,EAAGy4iB,GAAMA,EAAIpub,GAAMA,EAAIrjH,GAAQ,EAAM4xiB,GACzD,EAEAjob,EAAM4nb,UAAY,WAChB,OAAOA,CACT,EAEA5nb,EAAM1hE,KAAO,WACX,OAAOA,CACT,EAEA0hE,EAAM3pH,MAAQ,SAAShH,GACrB,OAAO1hB,UAAUtO,QAAUg3B,IAAUhH,EAAG44iB,KAAa5xiB,CACvD,EAEA2pH,EAAMvgH,QAAU,SAASpQ,GACvB,OAAO1hB,UAAUtO,QAAU0okB,EAAerokB,KAAKyhB,IAAI,EAAG6mjB,GAAgB34iB,GAAI44iB,KAAaF,CACzF,EAEA/nb,EAAM+nb,aAAe,SAAS14iB,GAC5B,OAAO1hB,UAAUtO,QAAU0okB,EAAerokB,KAAKyhB,IAAI,EAAGkO,GAAI44iB,KAAaF,CACzE,EAEA/nb,EAAMgob,aAAe,SAAS34iB,GAC5B,OAAO1hB,UAAUtO,QAAU2okB,GAAgB34iB,EAAG44iB,KAAaD,CAC7D,EAEAhob,EAAM9jH,MAAQ,SAAS7M,GACrB,OAAO1hB,UAAUtO,QAAU68B,EAAQx8B,KAAKwhB,IAAI,EAAGxhB,KAAKyhB,IAAI,EAAGkO,IAAK44iB,KAAa/riB,CAC/E,EAEA8jH,EAAM3mD,KAAO,WACX,OAAOsue,GAAKvqjB,IAAU,CAAC0qjB,EAAIpub,IACtBrjH,MAAMA,GACN0xiB,aAAaA,GACbC,aAAaA,GACb9riB,MAAMA,EACb,EAEO8qiB,GAAUzujB,MAAM0vjB,IAAWt6jB,UACpC,CAEA,SAASw6jB,GAASnob,GAChB,IAAI3mD,EAAO2mD,EAAM3mD,KAUjB,OARA2mD,EAAMvgH,QAAUugH,EAAMgob,oBACfhob,EAAM+nb,oBACN/nb,EAAMgob,aAEbhob,EAAM3mD,KAAO,WACX,OAAO8ue,GAAS9ue,IAClB,EAEO2mD,CACT,CAEO,SAASt6H,KACd,OAAOyijB,GAASR,GAAKpvjB,MAAM,KAAM5K,WAAWo6jB,aAAa,GAC3D,CEpGA,SAASrnkB,GAAQ8vB,GAAgC,OAAO9vB,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,GAAQ8vB,EAAI,CAC7T,SAASxf,GAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,GAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,GAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,GAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,GAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,GAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,GAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,GAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,GAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAU3O,IAAIynkB,GAAc,CAChBC,WAAY,CAAC,EACbC,WAAY,GAGVC,GAAa,CACfh/jB,SAAU,WACV/J,IAAK,WACLD,KAAM,EACNkgC,QAAS,EACT3/B,OAAQ,EACRkzI,OAAQ,OACRuM,WAAY,OAGVipb,GAAsB,4BA+BnB,IAAIC,GAAgB,SAAuB1uiB,GAChD,IAAIv2B,EAAQmK,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACjF,QAAaxC,IAAT4uB,GAA+B,OAATA,GAAiB09hB,GAAOC,MAChD,MAAO,CACLv3jB,MAAO,EACPN,OAAQ,GAGZ,IAAI6okB,EAjBN,SAA2B/nkB,GACzB,IAAIgokB,EAAUjyV,GAAc,CAAC,EAAG/1O,GAMhC,OALAuD,OAAOC,KAAKwkkB,GAAS3pkB,SAAQ,SAAUgE,GAChC2lkB,EAAQ3lkB,WACJ2lkB,EAAQ3lkB,EAEnB,IACO2lkB,CACT,CASkBC,CAAkBplkB,GAC9BqlkB,EAAWphkB,KAAKE,UAAU,CAC5BoyB,KAAMA,EACN2uiB,UAAWA,IAEb,GAAIN,GAAYC,WAAWQ,GACzB,OAAOT,GAAYC,WAAWQ,GAEhC,IACE,IAAIC,EAAkBtjkB,SAAS4jP,eAAeo/U,IACzCM,KACHA,EAAkBtjkB,SAASf,cAAc,SACzB45C,aAAa,KAAMmqhB,IACnCM,EAAgBzqhB,aAAa,cAAe,QAC5C74C,SAASuE,KAAKzD,YAAYwikB,IAI5B,IAAIC,EAAuBryV,GAAcA,GAAc,CAAC,EAAG6xV,IAAaG,GACxExkkB,OAAOoD,OAAOwhkB,EAAgBtlkB,MAAOulkB,GACrCD,EAAgBjliB,YAAc,GAAGnhC,OAAOq3B,GACxC,IAAIyD,EAAOsriB,EAAgBlqkB,wBACvBuQ,EAAS,CACXhP,MAAOq9B,EAAKr9B,MACZN,OAAQ29B,EAAK39B,QAOf,OALAuokB,GAAYC,WAAWQ,GAAY15jB,IAC7Bi5jB,GAAYE,WA7EF,MA8EdF,GAAYE,WAAa,EACzBF,GAAYC,WAAa,CAAC,GAErBl5jB,CACT,CAAE,MAAOuc,KACP,MAAO,CACLvrB,MAAO,EACPN,OAAQ,EAEZ,CACF,ECzGA,SAASa,GAAQ8vB,GAAgC,OAAO9vB,GAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,GAAQ8vB,EAAI,CAC7T,SAASspN,GAAevvF,EAAKnrJ,GAAK,OAKlC,SAAyBmrJ,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAOA,CAAK,CAL3Byna,CAAgBzna,IAIzD,SAA+B/sJ,EAAGwC,GAAK,IAAI4xB,EAAI,MAAQp0B,EAAI,KAAO,oBAAsBoD,QAAUpD,EAAEoD,OAAOC,WAAarD,EAAE,cAAe,GAAI,MAAQo0B,EAAG,CAAE,IAAIlG,EAAGvkB,EAAG/H,EAAG0yB,EAAG1Z,EAAI,GAAI/K,GAAI,EAAImjB,GAAI,EAAI,IAAM,GAAIpxB,GAAKwyB,EAAIA,EAAE3zB,KAAKT,IAAI4U,KAAM,IAAMpS,EAAG,CAAE,GAAIkE,OAAO0tB,KAAOA,EAAG,OAAQvkB,GAAI,CAAI,MAAO,OAASA,GAAKqe,EAAItsB,EAAEnB,KAAK2zB,IAAIzO,QAAU/K,EAAErY,KAAK2rB,EAAE5uB,OAAQsb,EAAE/Y,SAAWW,GAAIqN,GAAI,GAAK,CAAE,MAAO7P,GAAKgzB,GAAI,EAAIrpB,EAAI3J,CAAG,CAAE,QAAU,IAAM,IAAK6P,GAAK,MAAQukB,EAAU,SAAME,EAAIF,EAAU,SAAK1tB,OAAO4tB,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAItB,EAAG,MAAMrpB,CAAG,CAAE,CAAE,OAAOiR,CAAG,CAAE,CAJxd65iB,CAAsB1na,EAAKnrJ,IAE5F,SAAqCoxB,EAAG0hiB,GAAU,IAAK1hiB,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO2hiB,GAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAc,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAM,GAAU,QAANhF,GAAqB,QAANA,EAAa,OAAOpI,MAAM8J,KAAK2nB,GAAI,GAAU,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAI,OAAOgrjB,GAAkB3hiB,EAAG0hiB,EAAS,CAF7TE,CAA4B7na,EAAKnrJ,IACnI,WAA8B,MAAM,IAAI0N,UAAU,4IAA8I,CADvDuljB,EAAoB,CAG7J,SAASF,GAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CAIlL,SAASq1Z,GAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,GAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASs4a,GAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,GAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,GAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,GAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAE5G,IAAI4pkB,GAA2B,+DAC3BC,GAAwB,+DACxBC,GAAwB,uDACxBC,GAAkB,iCAClBC,GAAmB,CACrBC,GAAI,GAAK,KACTz4a,GAAI,GAAK,KACTwhC,GAAI,GAAK,GACTvnI,GAAI,GACJ,GAAM,GACNh3B,EAAG,GAAK,MACRrxB,GAAI,GAEF8mkB,GAAyBplkB,OAAOC,KAAKilkB,IACrCG,GAAU,MAId,IAAIC,GAA0B,WAC5B,SAASA,EAAWzwV,EAAK73O,IAxB3B,SAAyBg7D,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CAyBpJooO,CAAgBh3O,KAAMsrkB,GACtBtrkB,KAAK66O,IAAMA,EACX76O,KAAKgD,KAAOA,EACZhD,KAAK66O,IAAMA,EACX76O,KAAKgD,KAAOA,EACRkE,OAAOic,MAAM03N,KACf76O,KAAKgD,KAAO,IAED,KAATA,GAAgBgokB,GAAsBhujB,KAAKha,KAC7ChD,KAAK66O,IAAMp0N,IACXzmB,KAAKgD,KAAO,IAEVookB,GAAuBj7jB,SAASnN,KAClChD,KAAK66O,IAlBX,SAAqBj8O,EAAOoE,GAC1B,OAAOpE,EAAQsskB,GAAiBlokB,EAClC,CAgBiBuokB,CAAY1wV,EAAK73O,GAC5BhD,KAAKgD,KAAO,KAEhB,CACA,OAxCoByiB,EAwCA6ljB,EAxCyBrvM,EAkFzC,CAAC,CACHn3X,IAAK,QACLlG,MAAO,SAAeo0C,GACpB,IAAIw4hB,EAEF9uZ,EAAQk/D,GADyD,QAAvD4vV,EAAwBP,GAAgBjxjB,KAAKg5B,UAA4C,IAA1Bw4hB,EAAmCA,EAAwB,GACvG,GAC7BlnI,EAAS5nR,EAAM,GACf15K,EAAO05K,EAAM,GACf,OAAO,IAAI4uZ,EAAW/oiB,WAAW+ha,GAAkB,OAATthc,QAA0B,IAATA,EAAkBA,EAAO,GACtF,KA3F+Bg5X,EAwCD,CAAC,CAC/Bl3X,IAAK,MACLlG,MAAO,SAAaC,GAClB,OAAImB,KAAKgD,OAASnE,EAAMmE,KACf,IAAIsokB,EAAW7kjB,IAAK,IAEtB,IAAI6kjB,EAAWtrkB,KAAK66O,IAAMh8O,EAAMg8O,IAAK76O,KAAKgD,KACnD,GACC,CACD8B,IAAK,WACLlG,MAAO,SAAkBC,GACvB,OAAImB,KAAKgD,OAASnE,EAAMmE,KACf,IAAIsokB,EAAW7kjB,IAAK,IAEtB,IAAI6kjB,EAAWtrkB,KAAK66O,IAAMh8O,EAAMg8O,IAAK76O,KAAKgD,KACnD,GACC,CACD8B,IAAK,WACLlG,MAAO,SAAkBC,GACvB,MAAkB,KAAdmB,KAAKgD,MAA8B,KAAfnE,EAAMmE,MAAehD,KAAKgD,OAASnE,EAAMmE,KACxD,IAAIsokB,EAAW7kjB,IAAK,IAEtB,IAAI6kjB,EAAWtrkB,KAAK66O,IAAMh8O,EAAMg8O,IAAK76O,KAAKgD,MAAQnE,EAAMmE,KACjE,GACC,CACD8B,IAAK,SACLlG,MAAO,SAAgBC,GACrB,MAAkB,KAAdmB,KAAKgD,MAA8B,KAAfnE,EAAMmE,MAAehD,KAAKgD,OAASnE,EAAMmE,KACxD,IAAIsokB,EAAW7kjB,IAAK,IAEtB,IAAI6kjB,EAAWtrkB,KAAK66O,IAAMh8O,EAAMg8O,IAAK76O,KAAKgD,MAAQnE,EAAMmE,KACjE,GACC,CACD8B,IAAK,WACLlG,MAAO,WACL,MAAO,GAAG4F,OAAOxE,KAAK66O,KAAKr2O,OAAOxE,KAAKgD,KACzC,GACC,CACD8B,IAAK,QACLlG,MAAO,WACL,OAAOsI,OAAOic,MAAMnjB,KAAK66O,IAC3B,MAjF0Em9U,GAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,GAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CA6F/C,CAxE8B,GAyE9B,SAASwvM,GAAoBC,GAC3B,GAAIA,EAAKv7jB,SAASk7jB,IAChB,OAAOA,GAGT,IADA,IAAIM,EAAUD,EACPC,EAAQx7jB,SAAS,MAAQw7jB,EAAQx7jB,SAAS,MAAM,CACrD,IAAIy7jB,EAEFhgW,EAAQgQ,GADuE,QAApEgwV,EAAwBd,GAAyB9wjB,KAAK2xjB,UAAgD,IAA1BC,EAAmCA,EAAwB,GACpH,GAC9BC,EAAcjgW,EAAM,GACpBnsI,EAAWmsI,EAAM,GACjBkgW,EAAelgW,EAAM,GACnBmgW,EAAMT,GAAW9hkB,MAAsB,OAAhBqikB,QAAwC,IAAhBA,EAAyBA,EAAc,IACtFG,EAAMV,GAAW9hkB,MAAuB,OAAjBsikB,QAA0C,IAAjBA,EAA0BA,EAAe,IACzF76jB,EAAsB,MAAbwuF,EAAmBsse,EAAIphe,SAASqhe,GAAOD,EAAIvhe,OAAOwhe,GAC/D,GAAI/6jB,EAAOkS,QACT,OAAOkojB,GAETM,EAAUA,EAAQj4jB,QAAQo3jB,GAA0B75jB,EAAOjD,WAC7D,CACA,KAAO29jB,EAAQx7jB,SAAS,MAAQ,kBAAkB6M,KAAK2ujB,IAAU,CAC/D,IAAIM,EAEFx/V,EAAQmP,GADoE,QAAjEqwV,EAAwBlB,GAAsB/wjB,KAAK2xjB,UAAgD,IAA1BM,EAAmCA,EAAwB,GACjH,GAC9BC,EAAez/V,EAAM,GACrB0/V,EAAY1/V,EAAM,GAClB2/V,EAAgB3/V,EAAM,GACpB4/V,EAAOf,GAAW9hkB,MAAuB,OAAjB0ikB,QAA0C,IAAjBA,EAA0BA,EAAe,IAC1FI,EAAOhB,GAAW9hkB,MAAwB,OAAlB4ikB,QAA4C,IAAlBA,EAA2BA,EAAgB,IAC7Fn+iB,EAAwB,MAAdk+iB,EAAoBE,EAAK72iB,IAAI82iB,GAAQD,EAAKj0iB,SAASk0iB,GACjE,GAAIr+iB,EAAQ9K,QACV,OAAOkojB,GAETM,EAAUA,EAAQj4jB,QAAQq3jB,GAAuB98iB,EAAQjgB,WAC3D,CACA,OAAO29jB,CACT,CACA,IAAIY,GAAoB,eAWxB,SAASC,GAAmBC,GAC1B,IAAId,EAAUc,EAAW/4jB,QAAQ,OAAQ,IAGzC,OAFAi4jB,EAZF,SAA8BD,GAE5B,IADA,IAAIC,EAAUD,EACPC,EAAQx7jB,SAAS,MAAM,CAC5B,IAEEu8jB,EADyB9wV,GADC2wV,GAAkBvyjB,KAAK2xjB,GACc,GACd,GACnDA,EAAUA,EAAQj4jB,QAAQ64jB,GAAmBd,GAAoBiB,GACnE,CACA,OAAOf,CACT,CAGYgB,CAAqBhB,GAC/BA,EAAUF,GAAoBE,EAEhC,CASO,SAASiB,GAAcH,GAC5B,IAAIx7jB,EATC,SAAgCw7jB,GACrC,IACE,OAAOD,GAAmBC,EAC5B,CAAE,MAAOj/iB,KAEP,OAAO69iB,EACT,CACF,CAEewB,CAAuBJ,EAAWznkB,MAAM,GAAI,IACzD,OAAIiM,IAAWo6jB,GAEN,GAEFp6jB,CACT,CC5KA,IAAI+8N,GAAY,CAAC,IAAK,IAAK,aAAc,YAAa,aAAc,aAAc,iBAAkB,QAClGiO,GAAa,CAAC,KAAM,KAAM,QAAS,YAAa,YAClD,SAAShd,KAAiS,OAApRA,GAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,GAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASsqO,GAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAE3e,SAAS6wO,GAAevvF,EAAKnrJ,GAAK,OAKlC,SAAyBmrJ,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAOA,CAAK,CAL3Byna,CAAgBzna,IAIzD,SAA+B/sJ,EAAGwC,GAAK,IAAI4xB,EAAI,MAAQp0B,EAAI,KAAO,oBAAsBoD,QAAUpD,EAAEoD,OAAOC,WAAarD,EAAE,cAAe,GAAI,MAAQo0B,EAAG,CAAE,IAAIlG,EAAGvkB,EAAG/H,EAAG0yB,EAAG1Z,EAAI,GAAI/K,GAAI,EAAImjB,GAAI,EAAI,IAAM,GAAIpxB,GAAKwyB,EAAIA,EAAE3zB,KAAKT,IAAI4U,KAAM,IAAMpS,EAAG,CAAE,GAAIkE,OAAO0tB,KAAOA,EAAG,OAAQvkB,GAAI,CAAI,MAAO,OAASA,GAAKqe,EAAItsB,EAAEnB,KAAK2zB,IAAIzO,QAAU/K,EAAErY,KAAK2rB,EAAE5uB,OAAQsb,EAAE/Y,SAAWW,GAAIqN,GAAI,GAAK,CAAE,MAAO7P,GAAKgzB,GAAI,EAAIrpB,EAAI3J,CAAG,CAAE,QAAU,IAAM,IAAK6P,GAAK,MAAQukB,EAAU,SAAME,EAAIF,EAAU,SAAK1tB,OAAO4tB,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAItB,EAAG,MAAMrpB,CAAG,CAAE,CAAE,OAAOiR,CAAG,CAAE,CAJxd65iB,CAAsB1na,EAAKnrJ,IAE5F,SAAqCoxB,EAAG0hiB,GAAU,IAAK1hiB,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO2hiB,GAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAc,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAM,GAAU,QAANhF,GAAqB,QAANA,EAAa,OAAOpI,MAAM8J,KAAK2nB,GAAI,GAAU,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAI,OAAOgrjB,GAAkB3hiB,EAAG0hiB,EAAS,CAF7TE,CAA4B7na,EAAKnrJ,IACnI,WAA8B,MAAM,IAAI0N,UAAU,4IAA8I,CADvDuljB,EAAoB,CAG7J,SAASF,GAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CAWlL,IAAImqa,GAAkB,6BAClBC,GAAsB,SAA6B9hb,GACrD,IAAI9mG,EAAW8mG,EAAK9mG,SAClB6ohB,EAAW/hb,EAAK+hb,SAChB1nkB,EAAQ2lJ,EAAK3lJ,MACf,IACE,IAAI43F,EAAQ,GAeZ,OAdKuT,KAAMtsD,KAEP+4C,EADE8ve,EACM7ohB,EAASn2C,WAAWmL,MAAM,IAE1BgrC,EAASn2C,WAAWmL,MAAM2zjB,KAU/B,CACLG,uBAR2B/ve,EAAM7vF,KAAI,SAAUy7F,GAC/C,MAAO,CACLA,KAAMA,EACN7mG,MAAOsokB,GAAczhe,EAAMxjG,GAAOrD,MAEtC,IAIEirkB,WAHeF,EAAW,EAAIzC,GAAc,OAAQjlkB,GAAOrD,MAK/D,CAAE,MAAOurB,KACP,OAAO,IACT,CACF,EAiFI2/iB,GAA2B,SAAkChphB,GAE/D,MAAO,CAAC,CACN+4C,MAFWuT,KAAMtsD,GAAyD,GAA7CA,EAASn2C,WAAWmL,MAAM2zjB,KAI3D,EACIM,GAAkB,SAAyBxhW,GAC7C,IAAI3pO,EAAQ2pO,EAAM3pO,MAChBorkB,EAAazhW,EAAMyhW,WACnBlphB,EAAWynL,EAAMznL,SACjB7+C,EAAQsmO,EAAMtmO,MACd0nkB,EAAWphW,EAAMohW,SACjBM,EAAW1hW,EAAM0hW,SAEnB,IAAKrrkB,GAASorkB,KAAgB9T,GAAOC,MAAO,CAC1C,IACI+T,EAAaR,GAAoB,CACnCC,SAAUA,EACV7ohB,SAAUA,EACV7+C,MAAOA,IAET,OAAIiokB,EArGoB,SAA+B7wZ,EAAO8wZ,EAA8BN,EAAYhviB,EAAWmviB,GACrH,IAAIC,EAAW5wZ,EAAM4wZ,SACnBnphB,EAAWu4H,EAAMv4H,SACjB7+C,EAAQo3K,EAAMp3K,MACd0nkB,EAAWtwZ,EAAMswZ,SACfS,EAAmBrme,GAASkme,GAC5BzxiB,EAAOsoB,EACP7Q,EAAY,WAEd,OADY7jC,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,IACnEwvB,QAAO,SAAUhuB,EAAQmvP,GACpC,IAAIt3J,EAAOs3J,EAAMt3J,KACf7mG,EAAQm+P,EAAMn+P,MACZyrkB,EAAcz8jB,EAAOA,EAAO9P,OAAS,GACzC,GAAIuskB,IAA6B,MAAbxviB,GAAqBmviB,GAAcK,EAAYzrkB,MAAQA,EAAQirkB,EAAahmkB,OAAOg3B,IAErGwviB,EAAYxwe,MAAMr7F,KAAKinG,GACvB4ke,EAAYzrkB,OAASA,EAAQirkB,MACxB,CAEL,IAAIS,EAAU,CACZzwe,MAAO,CAAC4L,GACR7mG,MAAOA,GAETgP,EAAOpP,KAAK8rkB,EACd,CACA,OAAO18jB,CACT,GAAG,GACL,EACI28jB,EAAiBt6hB,EAAUk6hB,GAM/B,IAAKC,EACH,OAAOG,EAkBT,IAhBA,IAeIC,EAdAjqa,EAAgB,SAAuB1zJ,GACzC,IAAI49jB,EAAWjyiB,EAAK72B,MAAM,EAAGkL,GACzBgtF,EAAQ6ve,GAAoB,CAC9BC,SAAUA,EACV1nkB,MAAOA,EACP6+C,SAAU2phB,EAND,WAORb,uBACCh8jB,EAASqiC,EAAU4pD,GACnB6we,EAAe98jB,EAAO9P,OAASmskB,GAjBf,SAAyBpwe,GAC7C,OAAOA,EAAMj+D,QAAO,SAAU/kB,EAAGC,GAC/B,OAAOD,EAAEjY,MAAQkY,EAAElY,MAAQiY,EAAIC,CACjC,GACF,CAaiD6zjB,CAAgB/8jB,GAAQhP,MAAQiF,OAAOg3B,GACtF,MAAO,CAAC6viB,EAAc98jB,EACxB,EACI4R,EAAQ,EACRC,EAAM+Y,EAAK16B,OAAS,EACpBorB,EAAa,EAEV1J,GAASC,GAAOyJ,GAAcsP,EAAK16B,OAAS,GAAG,CACpD,IAAIqgJ,EAAShgJ,KAAKC,OAAOohB,EAAQC,GAAO,GAGtCmrjB,EAAkBryV,GADCh4E,EADVpiB,EAAS,GAE+B,GACjD0sb,EAAmBD,EAAgB,GACnCh9jB,EAASg9jB,EAAgB,GAGzBE,EADkBvyV,GADEh4E,EAAcpiB,GACgB,GACb,GAOvC,GANK0sb,GAAqBC,IACxBtrjB,EAAQ2+H,EAAS,GAEf0sb,GAAoBC,IACtBrrjB,EAAM0+H,EAAS,IAEZ0sb,GAAoBC,EAAoB,CAC3CN,EAAgB58jB,EAChB,KACF,CACAsb,GACF,CAIA,OAAOshjB,GAAiBD,CAC1B,CA8BWQ,CAAsB,CAC3BpB,SAAUA,EACV7ohB,SAAUA,EACVmphB,SAAUA,EACVhokB,MAAOA,GAXGiokB,EAAWN,uBACdM,EAAWL,WAWmBjrkB,EAAOorkB,GAPrCF,GAAyBhphB,EAQpC,CACA,OAAOgphB,GAAyBhphB,EAClC,EACIkqhB,GAAe,UACR1/P,GAAO,SAAc1iG,GAC9B,IAAIqiW,EAAUriW,EAAMthN,EAClB4jjB,OAAqB,IAAZD,EAAqB,EAAIA,EAClCE,EAAUviW,EAAMl3M,EAChB05iB,OAAqB,IAAZD,EAAqB,EAAIA,EAClCE,EAAmBziW,EAAM3uM,WACzBA,OAAkC,IAArBoxiB,EAA8B,MAAQA,EACnDC,EAAkB1iW,EAAMnjB,UACxBA,OAAgC,IAApB6lX,EAA6B,SAAWA,EACpDC,EAAmB3iW,EAAMohW,WACzBA,OAAkC,IAArBuB,GAAsCA,EACnDC,EAAmB5iW,EAAM6iW,WACzBA,OAAkC,IAArBD,EAA8B,QAAUA,EACrDE,EAAuB9iW,EAAM+iW,eAC7BA,OAA0C,IAAzBD,EAAkC,MAAQA,EAC3DE,EAAahjW,EAAMrgI,KACnBA,OAAsB,IAAfqje,EAAwBZ,GAAeY,EAC9Cp3hB,EAAQkiM,GAAyB9N,EAAO+B,IACtCkhW,GAAe9hgB,EAAAA,EAAAA,UAAQ,WACzB,OAAOgggB,GAAgB,CACrBJ,SAAUn1hB,EAAMm1hB,SAChB7ohB,SAAUtM,EAAMsM,SAChBmphB,SAAUz1hB,EAAMy1hB,SAChBD,WAAYA,EACZ/nkB,MAAOuyC,EAAMvyC,MACbrD,MAAO41C,EAAM51C,OAEjB,GAAG,CAAC41C,EAAMm1hB,SAAUn1hB,EAAMsM,SAAUtM,EAAMy1hB,SAAUD,EAAYx1hB,EAAMvyC,MAAOuyC,EAAM51C,QAC/Eu1T,EAAK3/Q,EAAM2/Q,GACbC,EAAK5/Q,EAAM4/Q,GACXvqM,EAAQr1E,EAAMq1E,MACd3lH,EAAYswC,EAAMtwC,UAClBylkB,EAAWn1hB,EAAMm1hB,SACjBvxH,EAAY1hO,GAAyBliM,EAAOokM,IAC9C,IAAKi0U,GAAWqe,KAAYre,GAAWue,GACrC,OAAO,KAET,IAEIU,EAFAxkjB,EAAI4jjB,GAAUnne,GAASowN,GAAMA,EAAK,GAClCziS,EAAI05iB,GAAUrne,GAASqwN,GAAMA,EAAK,GAEtC,OAAQu3Q,GACN,IAAK,QACHG,EAAUvC,GAAc,QAAQpokB,OAAOskN,EAAW,MAClD,MACF,IAAK,SACHqmX,EAAUvC,GAAc,QAAQpokB,QAAQ0qkB,EAAa/tkB,OAAS,GAAK,EAAG,QAAQqD,OAAO84B,EAAY,QAAQ94B,OAAOskN,EAAW,WAC3H,MACF,QACEqmX,EAAUvC,GAAc,QAAQpokB,OAAO0qkB,EAAa/tkB,OAAS,EAAG,QAAQqD,OAAO84B,EAAY,MAG/F,IAAIqpE,EAAa,GACjB,GAAI0me,EAAY,CACd,IAAInviB,EAAYgxiB,EAAa,GAAGjtkB,MAC5BA,EAAQ41C,EAAM51C,MAClB0kG,EAAW9kG,KAAK,SAAS2C,QAAQ4iG,GAASnlG,GAASA,EAAQi8B,EAAY,GAAKA,EAAW,KACzF,CAOA,OANIgvF,GACFvmB,EAAW9kG,KAAK,UAAU2C,OAAO0oH,EAAO,MAAM1oH,OAAOmmB,EAAG,MAAMnmB,OAAOuwB,EAAG,MAEtE4xE,EAAWxlG,SACbs6c,EAAUl8X,UAAYonB,EAAW1hG,KAAK,MAEpB4uN,EAAAA,cAAoB,OAAQoL,GAAS,CAAC,EAAG8zV,GAAYt3G,GAAW,GAAO,CACzF9wb,EAAGA,EACHoK,EAAGA,EACHxtB,UAAWshY,GAAK,gBAAiBthY,GACjCunkB,WAAYA,EACZlje,KAAMA,EAAKz7F,SAAS,OAASk+jB,GAAezie,IAC1Csje,EAAa7hkB,KAAI,SAAUujC,EAAM1gC,GACnC,IAAIgtF,EAAQtsD,EAAKssD,MAAMj4F,KAAK+nkB,EAAW,GAAK,KAC5C,OAIEn5W,EAAAA,cAAoB,QAAS,CAC3BlpM,EAAGA,EACH8sS,GAAc,IAAVvnT,EAAci/jB,EAAU7xiB,EAC5Bx4B,IAAK,GAAGN,OAAO04F,EAAO,KAAK14F,OAAO0L,IACjCgtF,EAEP,IACF,ECzPA,MAAMkye,GAAM5tkB,KAAKs4H,KAAK,IAClBu1c,GAAK7tkB,KAAKs4H,KAAK,IACf1Q,GAAK5nH,KAAKs4H,KAAK,GAEnB,SAASw1c,GAASzsjB,EAAOu1G,EAAMpkF,GAC7B,MAAMosC,GAAQg4C,EAAOv1G,GAASrhB,KAAKwhB,IAAI,EAAGgxB,GACtCu7hB,EAAQ/tkB,KAAKC,MAAMD,KAAKgukB,MAAMpvf,IAC9Bv1E,EAAQu1E,EAAO5+E,KAAKylH,IAAI,GAAIsod,GAC5Bh3I,EAAS1tb,GAASukkB,GAAM,GAAKvkkB,GAASwkkB,GAAK,EAAIxkkB,GAASu+G,GAAK,EAAI,EACrE,IAAIy3D,EAAIC,EAAI2uZ,EAeZ,OAdIF,EAAQ,GACVE,EAAMjukB,KAAKylH,IAAI,IAAKsod,GAASh3I,EAC7B13Q,EAAKr/K,KAAK22B,MAAMtV,EAAQ4sjB,GACxB3uZ,EAAKt/K,KAAK22B,MAAMigG,EAAOq3c,GACnB5uZ,EAAK4uZ,EAAM5sjB,KAASg+J,EACpBC,EAAK2uZ,EAAMr3c,KAAQ0oD,EACvB2uZ,GAAOA,IAEPA,EAAMjukB,KAAKylH,IAAI,GAAIsod,GAASh3I,EAC5B13Q,EAAKr/K,KAAK22B,MAAMtV,EAAQ4sjB,GACxB3uZ,EAAKt/K,KAAK22B,MAAMigG,EAAOq3c,GACnB5uZ,EAAK4uZ,EAAM5sjB,KAASg+J,EACpBC,EAAK2uZ,EAAMr3c,KAAQ0oD,GAErBA,EAAKD,GAAM,IAAO7sI,GAASA,EAAQ,EAAUs7hB,GAASzsjB,EAAOu1G,EAAc,EAARpkF,GAChE,CAAC6sI,EAAIC,EAAI2uZ,EAClB,CAEe,SAASC,GAAM7sjB,EAAOu1G,EAAMpkF,GAEzC,MAD8BA,GAASA,GACzB,GAAI,MAAO,GACzB,IAFcnxB,GAASA,MAAvBu1G,GAAQA,GAEY,MAAO,CAACv1G,GAC5B,MAAMupE,EAAUgsC,EAAOv1G,GAAQg+J,EAAIC,EAAI2uZ,GAAOrjf,EAAUkjf,GAASl3c,EAAMv1G,EAAOmxB,GAASs7hB,GAASzsjB,EAAOu1G,EAAMpkF,GAC7G,KAAM8sI,GAAMD,GAAK,MAAO,GACxB,MAAM53K,EAAI63K,EAAKD,EAAK,EAAG6uZ,EAAQ,IAAI7ukB,MAAMoI,GACzC,GAAImjF,EACF,GAAIqjf,EAAM,EAAG,IAAK,IAAIvukB,EAAI,EAAGA,EAAI+H,IAAK/H,EAAGwukB,EAAMxukB,IAAM4/K,EAAK5/K,IAAMuukB,OAC3D,IAAK,IAAIvukB,EAAI,EAAGA,EAAI+H,IAAK/H,EAAGwukB,EAAMxukB,IAAM4/K,EAAK5/K,GAAKuukB,OAEvD,GAAIA,EAAM,EAAG,IAAK,IAAIvukB,EAAI,EAAGA,EAAI+H,IAAK/H,EAAGwukB,EAAMxukB,IAAM2/K,EAAK3/K,IAAMuukB,OAC3D,IAAK,IAAIvukB,EAAI,EAAGA,EAAI+H,IAAK/H,EAAGwukB,EAAMxukB,IAAM2/K,EAAK3/K,GAAKuukB,EAEzD,OAAOC,CACT,CAEO,SAASC,GAAc9sjB,EAAOu1G,EAAMpkF,GAEzC,OAAOs7hB,GADOzsjB,GAASA,EAAvBu1G,GAAQA,EAAsBpkF,GAASA,GACH,EACtC,CAEO,SAAS47hB,GAAS/sjB,EAAOu1G,EAAMpkF,GACNA,GAASA,EACvC,MAAMo4C,GADNgsC,GAAQA,IAAMv1G,GAASA,GACO4sjB,EAAMrjf,EAAUujf,GAAcv3c,EAAMv1G,EAAOmxB,GAAS27hB,GAAc9sjB,EAAOu1G,EAAMpkF,GAC7G,OAAQo4C,GAAW,EAAI,IAAMqjf,EAAM,EAAI,GAAKA,EAAMA,EACpD,CCtDe,SAASI,GAAU31jB,EAAGC,GACnC,OAAY,MAALD,GAAkB,MAALC,EAAYsM,IAAMvM,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAID,GAAKC,EAAI,EAAIsM,GAC9E,CCFe,SAASqpjB,GAAW51jB,EAAGC,GACpC,OAAY,MAALD,GAAkB,MAALC,EAAYsM,IAC5BtM,EAAID,GAAK,EACTC,EAAID,EAAI,EACRC,GAAKD,EAAI,EACTuM,GACN,CCHe,SAASspjB,GAAS5gkB,GAC/B,IAAI6gkB,EAAUC,EAAUnmd,EAiBxB,SAASzoH,EAAK6Y,EAAGyQ,GAA0B,IAAvBuljB,EAAEzgkB,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,EAAG67D,EAAE77D,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAGyK,EAAE/Y,OACjC,GAAI+ukB,EAAK5kgB,EAAI,CACX,GAAuB,IAAnB0kgB,EAASrljB,EAAGA,GAAU,OAAO2gD,EACjC,EAAG,CACD,MAAMguB,EAAO42e,EAAK5kgB,IAAQ,EACtB2kgB,EAAS/1jB,EAAEo/E,GAAM3uE,GAAK,EAAGuljB,EAAK52e,EAAM,EACnChuB,EAAKguB,CACZ,OAAS42e,EAAK5kgB,EAChB,CACA,OAAO4kgB,CACT,CAmBA,OAvCiB,IAAb/gkB,EAAEhO,QACJ6ukB,EAAWH,GACXI,EAAWA,CAACrpkB,EAAG+jB,IAAMkljB,GAAU1gkB,EAAEvI,GAAI+jB,GACrCm/F,EAAQA,CAACljH,EAAG+jB,IAAMxb,EAAEvI,GAAK+jB,IAEzBqljB,EAAW7gkB,IAAM0gkB,IAAa1gkB,IAAM2gkB,GAAa3gkB,EAAIghkB,GACrDF,EAAW9gkB,EACX26G,EAAQ36G,GAgCH,CAAC9N,OAAM+ukB,OALd,SAAgBl2jB,EAAGyQ,GAA0B,IAAvBuljB,EAAEzgkB,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,EACzB,MAAMvO,EAAIG,EAAK6Y,EAAGyQ,EAAGuljB,GADSzgkB,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAGyK,EAAE/Y,QACL,GAC9B,OAAOD,EAAIgvkB,GAAMpmd,EAAM5vG,EAAEhZ,EAAI,GAAIypB,IAAMm/F,EAAM5vG,EAAEhZ,GAAIypB,GAAKzpB,EAAI,EAAIA,CAClE,EAEsBsK,MAjBtB,SAAe0O,EAAGyQ,GAA0B,IAAvBuljB,EAAEzgkB,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,EAAG67D,EAAE77D,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAGyK,EAAE/Y,OAClC,GAAI+ukB,EAAK5kgB,EAAI,CACX,GAAuB,IAAnB0kgB,EAASrljB,EAAGA,GAAU,OAAO2gD,EACjC,EAAG,CACD,MAAMguB,EAAO42e,EAAK5kgB,IAAQ,EACtB2kgB,EAAS/1jB,EAAEo/E,GAAM3uE,IAAM,EAAGuljB,EAAK52e,EAAM,EACpChuB,EAAKguB,CACZ,OAAS42e,EAAK5kgB,EAChB,CACA,OAAO4kgB,CACT,EAQF,CAEA,SAASC,KACP,OAAO,CACT,CCvDe,SAASr2hB,GAAOnvB,GAC7B,OAAa,OAANA,EAAalE,KAAOkE,CAC7B,CCEA,MAAM0ljB,GAAkBN,GAASF,IACpBS,GAAcD,GAAgB7kkB,MAG3C,IAF0B6kkB,GAAgBhvkB,KACd0ukB,GAASj2hB,IAAQs2hB,OAC7C,ICRe,YAASxtkB,EAAa9D,EAASe,GAC5C+C,EAAY/C,UAAYf,EAAQe,UAAYA,EAC5CA,EAAU+C,YAAcA,CAC1B,CAEO,SAAS+1B,GAAOhL,EAAQ0E,GAC7B,IAAIxyB,EAAYmG,OAAO4D,OAAO+jB,EAAO9tB,WACrC,IAAK,IAAIiF,KAAOutB,EAAYxyB,EAAUiF,GAAOutB,EAAWvtB,GACxD,OAAOjF,CACT,CCPO,SAAS89U,KAAS,CAElB,IAAI4yP,GAAS,GACTC,GAAW,EAAID,GAEtBE,GAAM,sBACNC,GAAM,oDACNC,GAAM,qDACNC,GAAQ,qBACRC,GAAe,IAAIlujB,OAAO,UAAU8tjB,MAAOA,MAAOA,UAClDK,GAAe,IAAInujB,OAAO,UAAUgujB,MAAOA,MAAOA,UAClDI,GAAgB,IAAIpujB,OAAO,WAAW8tjB,MAAOA,MAAOA,MAAOC,UAC3DM,GAAgB,IAAIrujB,OAAO,WAAWgujB,MAAOA,MAAOA,MAAOD,UAC3DO,GAAe,IAAItujB,OAAO,UAAU+tjB,MAAOC,MAAOA,UAClDO,GAAgB,IAAIvujB,OAAO,WAAW+tjB,MAAOC,MAAOA,MAAOD,UAE3DS,GAAQ,CACV3rZ,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,QACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,EACPC,eAAgB,SAChB/3D,KAAM,IACNg4D,WAAY,QACZC,MAAO,SACPC,UAAW,SACXC,UAAW,QACXC,WAAY,QACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,QAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,IACVC,SAAU,MACVC,cAAe,SACfC,SAAU,SACVC,UAAW,MACXoqZ,SAAU,SACVnqZ,UAAW,SACXC,YAAa,QACbC,eAAgB,QAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,QACTC,WAAY,SACZC,aAAc,QACdC,cAAe,QACfC,cAAe,QACf2pZ,cAAe,QACf1pZ,cAAe,MACfC,WAAY,QACZC,SAAU,SACVC,YAAa,MACbC,QAAS,QACTupZ,QAAS,QACTtpZ,WAAY,QACZE,UAAW,SACXC,YAAa,SACbC,YAAa,QACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,QACNx6D,MAAO,MACPy6D,YAAa,SACbw8F,KAAM,QACNv8F,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,QACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,QACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtB8nZ,UAAW,SACX5nZ,WAAY,QACZD,UAAW,SACXE,UAAW,SACXC,YAAa,SACbC,cAAe,QACfC,aAAc,QACdE,eAAgB,QAChBunZ,eAAgB,QAChBtnZ,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,QACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,QACRC,iBAAkB,QAClBC,WAAY,IACZC,aAAc,SACdC,aAAc,QACdC,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,MACnBC,gBAAiB,QACjBC,gBAAiB,SACjBC,aAAc,QACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,IACNC,QAAS,SACTC,MAAO,QACPC,UAAW,QACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,QACRilZ,cAAe,QACftjd,IAAK,SACLs+D,UAAW,SACXC,UAAW,QACXC,YAAa,QACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,QACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,QACTC,UAAW,QACXC,UAAW,QACXskZ,UAAW,QACXrkZ,KAAM,SACNC,YAAa,MACbC,UAAW,QACXC,IAAK,SACLC,KAAM,MACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,QACXC,OAAQ,SACRE,MAAO,SACPC,MAAO,SACPC,WAAY,SACZC,OAAQ,SACRC,YAAa,UAkBf,SAASwjZ,KACP,OAAO3xkB,KAAKquH,MAAMujd,WACpB,CAUA,SAASC,KACP,OAAO7xkB,KAAKquH,MAAMyjd,WACpB,CAEe,SAAS7wiB,GAAMh+B,GAC5B,IAAIgyB,EAAGnzB,EAEP,OADAmB,GAAUA,EAAS,IAAI8f,OAAO5f,eACtB8xB,EAAI27iB,GAAM52jB,KAAK/W,KAAYnB,EAAImzB,EAAE,GAAG9zB,OAAQ8zB,EAAIvO,SAASuO,EAAE,GAAI,IAAW,IAANnzB,EAAUiwkB,GAAK98iB,GAC/E,IAANnzB,EAAU,IAAIkwkB,GAAK/8iB,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,GAAiB,GAAJA,IAAY,EAAU,GAAJA,EAAU,GACzG,IAANnzB,EAAUk/B,GAAK/L,GAAK,GAAK,IAAMA,GAAK,GAAK,IAAMA,GAAK,EAAI,KAAW,IAAJA,GAAY,KACrE,IAANnzB,EAAUk/B,GAAM/L,GAAK,GAAK,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,IAAkB,GAAJA,IAAY,EAAU,GAAJA,GAAY,KAClJ,OACCA,EAAI47iB,GAAa72jB,KAAK/W,IAAW,IAAI+ukB,GAAI/8iB,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,IAC3DA,EAAI67iB,GAAa92jB,KAAK/W,IAAW,IAAI+ukB,GAAW,IAAP/8iB,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAK,IAC/FA,EAAI87iB,GAAc/2jB,KAAK/W,IAAW+9B,GAAK/L,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAC3DA,EAAI+7iB,GAAch3jB,KAAK/W,IAAW+9B,GAAY,IAAP/L,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAKA,EAAE,KAC/FA,EAAIg8iB,GAAaj3jB,KAAK/W,IAAW4rH,GAAK55F,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAK,IACpEA,EAAIi8iB,GAAcl3jB,KAAK/W,IAAW4rH,GAAK55F,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAKA,EAAE,IACxEk8iB,GAAM7tkB,eAAeL,GAAU8ukB,GAAKZ,GAAMlukB,IAC/B,gBAAXA,EAA2B,IAAI+ukB,GAAIvrjB,IAAKA,IAAKA,IAAK,GAClD,IACR,CAEA,SAASsrjB,GAAK9okB,GACZ,OAAO,IAAI+okB,GAAI/okB,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAU,IAAJA,EAAU,EAC1D,CAEA,SAAS+3B,GAAK1hC,EAAGs2B,EAAGzb,EAAGD,GAErB,OADIA,GAAK,IAAG5a,EAAIs2B,EAAIzb,EAAIsM,KACjB,IAAIurjB,GAAI1ykB,EAAGs2B,EAAGzb,EAAGD,EAC1B,CASO,SAASm0G,GAAI/uH,EAAGs2B,EAAGzb,EAAGxO,GAC3B,OAA4B,IAArB8D,UAAUtO,SARQmxB,EAQkBhzB,aAPxBq+U,KAAQrrT,EAAI2O,GAAM3O,IAChCA,EAEE,IAAI0/iB,IADX1/iB,EAAIA,EAAE+7F,OACW/uH,EAAGgzB,EAAEsD,EAAGtD,EAAEnY,EAAGmY,EAAE3mB,SAFjB,IAAIqmkB,IAM6B,IAAIA,GAAI1ykB,EAAGs2B,EAAGzb,EAAc,MAAXxO,EAAkB,EAAIA,GARlF,IAAoB2mB,CAS3B,CAEO,SAAS0/iB,GAAI1ykB,EAAGs2B,EAAGzb,EAAGxO,GAC3B3L,KAAKV,GAAKA,EACVU,KAAK41B,GAAKA,EACV51B,KAAKma,GAAKA,EACVna,KAAK2L,SAAWA,CAClB,CA8BA,SAASsmkB,KACP,MAAO,IAAIrnd,GAAI5qH,KAAKV,KAAKsrH,GAAI5qH,KAAK41B,KAAKg1F,GAAI5qH,KAAKma,IAClD,CAMA,SAAS+3jB,KACP,MAAMh4jB,EAAIi4jB,GAAOnykB,KAAK2L,SACtB,MAAO,GAAS,IAANuO,EAAU,OAAS,UAAUk4jB,GAAOpykB,KAAKV,OAAO8ykB,GAAOpykB,KAAK41B,OAAOw8iB,GAAOpykB,KAAKma,KAAW,IAAND,EAAU,IAAM,KAAKA,MACrH,CAEA,SAASi4jB,GAAOxmkB,GACd,OAAOwX,MAAMxX,GAAW,EAAInK,KAAKwhB,IAAI,EAAGxhB,KAAKyhB,IAAI,EAAGtX,GACtD,CAEA,SAASymkB,GAAOxzkB,GACd,OAAO4C,KAAKwhB,IAAI,EAAGxhB,KAAKyhB,IAAI,IAAKzhB,KAAK22B,MAAMv5B,IAAU,GACxD,CAEA,SAASgsH,GAAIhsH,GAEX,QADAA,EAAQwzkB,GAAOxzkB,IACC,GAAK,IAAM,IAAMA,EAAMoP,SAAS,GAClD,CAEA,SAAS6gH,GAAKpiH,EAAGknB,EAAG7xB,EAAGoY,GAIrB,OAHIA,GAAK,EAAGzN,EAAIknB,EAAI7xB,EAAI2kB,IACf3kB,GAAK,GAAKA,GAAK,EAAG2K,EAAIknB,EAAIlN,IAC1BkN,GAAK,IAAGlnB,EAAIga,KACd,IAAI4rjB,GAAI5lkB,EAAGknB,EAAG7xB,EAAGoY,EAC1B,CAEO,SAASo4jB,GAAWhgjB,GACzB,GAAIA,aAAa+/iB,GAAK,OAAO,IAAIA,GAAI//iB,EAAE7lB,EAAG6lB,EAAEqB,EAAGrB,EAAExwB,EAAGwwB,EAAE3mB,SAEtD,GADM2mB,aAAaqrT,KAAQrrT,EAAI2O,GAAM3O,KAChCA,EAAG,OAAO,IAAI+/iB,GACnB,GAAI//iB,aAAa+/iB,GAAK,OAAO//iB,EAE7B,IAAIhzB,GADJgzB,EAAIA,EAAE+7F,OACI/uH,EAAI,IACVs2B,EAAItD,EAAEsD,EAAI,IACVzb,EAAImY,EAAEnY,EAAI,IACV8I,EAAMzhB,KAAKyhB,IAAI3jB,EAAGs2B,EAAGzb,GACrB6I,EAAMxhB,KAAKwhB,IAAI1jB,EAAGs2B,EAAGzb,GACrB1N,EAAIga,IACJkN,EAAI3Q,EAAMC,EACVnhB,GAAKkhB,EAAMC,GAAO,EAUtB,OATI0Q,GACalnB,EAAXnN,IAAM0jB,GAAU4S,EAAIzb,GAAKwZ,EAAc,GAATiC,EAAIzb,GAC7Byb,IAAM5S,GAAU7I,EAAI7a,GAAKq0B,EAAI,GAC5Br0B,EAAIs2B,GAAKjC,EAAI,EACvBA,GAAK7xB,EAAI,GAAMkhB,EAAMC,EAAM,EAAID,EAAMC,EACrCxW,GAAK,IAELknB,EAAI7xB,EAAI,GAAKA,EAAI,EAAI,EAAI2K,EAEpB,IAAI4lkB,GAAI5lkB,EAAGknB,EAAG7xB,EAAGwwB,EAAE3mB,QAC5B,CAMA,SAAS0mkB,GAAI5lkB,EAAGknB,EAAG7xB,EAAG6J,GACpB3L,KAAKyM,GAAKA,EACVzM,KAAK2zB,GAAKA,EACV3zB,KAAK8B,GAAKA,EACV9B,KAAK2L,SAAWA,CAClB,CAsCA,SAAS4mkB,GAAO3zkB,GAEd,OADAA,GAASA,GAAS,GAAK,KACR,EAAIA,EAAQ,IAAMA,CACnC,CAEA,SAAS4zkB,GAAO5zkB,GACd,OAAO4C,KAAKwhB,IAAI,EAAGxhB,KAAKyhB,IAAI,EAAGrkB,GAAS,GAC1C,CAGA,SAAS6zkB,GAAQhmkB,EAAGimkB,EAAIC,GACtB,OAGY,KAHJlmkB,EAAI,GAAKimkB,GAAMC,EAAKD,GAAMjmkB,EAAI,GAChCA,EAAI,IAAMkmkB,EACVlmkB,EAAI,IAAMimkB,GAAMC,EAAKD,IAAO,IAAMjmkB,GAAK,GACvCimkB,EACR,CC3YO,SAASE,GAAMrkd,EAAIskd,EAAIC,EAAIC,EAAIC,GACpC,IAAIxkd,EAAKD,EAAKA,EAAI0kd,EAAKzkd,EAAKD,EAC5B,QAAS,EAAI,EAAIA,EAAK,EAAIC,EAAKykd,GAAMJ,GAC9B,EAAI,EAAIrkd,EAAK,EAAIykd,GAAMH,GACvB,EAAI,EAAIvkd,EAAK,EAAIC,EAAK,EAAIykd,GAAMF,EACjCE,EAAKD,GAAM,CACnB,CDmKAv9d,GAAOkoO,GAAO18S,GAAO,CACnBk6D,IAAAA,CAAK+3e,GACH,OAAOltkB,OAAOoD,OAAO,IAAIpJ,KAAK4C,YAAa5C,KAAMkzkB,EACnD,EACAC,WAAAA,GACE,OAAOnzkB,KAAKquH,MAAM8kd,aACpB,EACAvod,IAAK+md,GACLC,UAAWD,GACXyB,WAUF,WACE,OAAOpzkB,KAAKquH,MAAM+kd,YACpB,EAXEC,UAaF,WACE,OAAOf,GAAWtykB,MAAMqzkB,WAC1B,EAdEvB,UAAWD,GACX7jkB,SAAU6jkB,KAiEZp8d,GAAOu8d,GAAK3jd,GAAK11F,GAAOglT,GAAO,CAC7B6yP,QAAAA,CAAS5vkB,GAEP,OADAA,EAAS,MAALA,EAAY4vkB,GAAWhvkB,KAAKylH,IAAIupd,GAAU5vkB,GACvC,IAAIoxkB,GAAIhykB,KAAKV,EAAIsB,EAAGZ,KAAK41B,EAAIh1B,EAAGZ,KAAKma,EAAIvZ,EAAGZ,KAAK2L,QAC1D,EACA4kkB,MAAAA,CAAO3vkB,GAEL,OADAA,EAAS,MAALA,EAAY2vkB,GAAS/ukB,KAAKylH,IAAIspd,GAAQ3vkB,GACnC,IAAIoxkB,GAAIhykB,KAAKV,EAAIsB,EAAGZ,KAAK41B,EAAIh1B,EAAGZ,KAAKma,EAAIvZ,EAAGZ,KAAK2L,QAC1D,EACA0iH,GAAAA,GACE,OAAOruH,IACT,EACAgvG,KAAAA,GACE,OAAO,IAAIgje,GAAII,GAAOpykB,KAAKV,GAAI8ykB,GAAOpykB,KAAK41B,GAAIw8iB,GAAOpykB,KAAKma,GAAIg4jB,GAAOnykB,KAAK2L,SAC7E,EACAwnkB,WAAAA,GACE,OAAS,IAAOnzkB,KAAKV,GAAKU,KAAKV,EAAI,QAC1B,IAAOU,KAAK41B,GAAK51B,KAAK41B,EAAI,QAC1B,IAAO51B,KAAKma,GAAKna,KAAKma,EAAI,OAC3B,GAAKna,KAAK2L,SAAW3L,KAAK2L,SAAW,CAC/C,EACAi/G,IAAKqnd,GACLL,UAAWK,GACXmB,WASF,WACE,MAAO,IAAIxod,GAAI5qH,KAAKV,KAAKsrH,GAAI5qH,KAAK41B,KAAKg1F,GAAI5qH,KAAKma,KAAKywG,GAA+C,KAA1CznG,MAAMnjB,KAAK2L,SAAW,EAAI3L,KAAK2L,WAC3F,EAVEmmkB,UAAWI,GACXlkkB,SAAUkkkB,MAyEZz8d,GAAO48d,IAXA,SAAa5lkB,EAAGknB,EAAG7xB,EAAG6J,GAC3B,OAA4B,IAArB8D,UAAUtO,OAAemxkB,GAAW7lkB,GAAK,IAAI4lkB,GAAI5lkB,EAAGknB,EAAG7xB,EAAc,MAAX6J,EAAkB,EAAIA,EACzF,GASiBgtB,GAAOglT,GAAO,CAC7B6yP,QAAAA,CAAS5vkB,GAEP,OADAA,EAAS,MAALA,EAAY4vkB,GAAWhvkB,KAAKylH,IAAIupd,GAAU5vkB,GACvC,IAAIyxkB,GAAIrykB,KAAKyM,EAAGzM,KAAK2zB,EAAG3zB,KAAK8B,EAAIlB,EAAGZ,KAAK2L,QAClD,EACA4kkB,MAAAA,CAAO3vkB,GAEL,OADAA,EAAS,MAALA,EAAY2vkB,GAAS/ukB,KAAKylH,IAAIspd,GAAQ3vkB,GACnC,IAAIyxkB,GAAIrykB,KAAKyM,EAAGzM,KAAK2zB,EAAG3zB,KAAK8B,EAAIlB,EAAGZ,KAAK2L,QAClD,EACA0iH,GAAAA,GACE,IAAI5hH,EAAIzM,KAAKyM,EAAI,IAAqB,KAAdzM,KAAKyM,EAAI,GAC7BknB,EAAIxQ,MAAM1W,IAAM0W,MAAMnjB,KAAK2zB,GAAK,EAAI3zB,KAAK2zB,EACzC7xB,EAAI9B,KAAK8B,EACT6wkB,EAAK7wkB,GAAKA,EAAI,GAAMA,EAAI,EAAIA,GAAK6xB,EACjC++iB,EAAK,EAAI5wkB,EAAI6wkB,EACjB,OAAO,IAAIX,GACTS,GAAQhmkB,GAAK,IAAMA,EAAI,IAAMA,EAAI,IAAKimkB,EAAIC,GAC1CF,GAAQhmkB,EAAGimkB,EAAIC,GACfF,GAAQhmkB,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAKimkB,EAAIC,GACzC3ykB,KAAK2L,QAET,EACAqjG,KAAAA,GACE,OAAO,IAAIqje,GAAIE,GAAOvykB,KAAKyM,GAAI+lkB,GAAOxykB,KAAK2zB,GAAI6+iB,GAAOxykB,KAAK8B,GAAIqwkB,GAAOnykB,KAAK2L,SAC7E,EACAwnkB,WAAAA,GACE,OAAQ,GAAKnzkB,KAAK2zB,GAAK3zB,KAAK2zB,GAAK,GAAKxQ,MAAMnjB,KAAK2zB,KACzC,GAAK3zB,KAAK8B,GAAK9B,KAAK8B,GAAK,GACzB,GAAK9B,KAAK2L,SAAW3L,KAAK2L,SAAW,CAC/C,EACA0nkB,SAAAA,GACE,MAAMn5jB,EAAIi4jB,GAAOnykB,KAAK2L,SACtB,MAAO,GAAS,IAANuO,EAAU,OAAS,UAAUq4jB,GAAOvykB,KAAKyM,OAAwB,IAAjB+lkB,GAAOxykB,KAAK2zB,QAA+B,IAAjB6+iB,GAAOxykB,KAAK8B,MAAkB,IAANoY,EAAU,IAAM,KAAKA,MACnI,KEzXF,SAAeyQ,GAAK,IAAMA,ECE1B,SAAS2ojB,GAAOp5jB,EAAGtT,GACjB,OAAO,SAAS8sB,GACd,OAAOxZ,EAAIwZ,EAAI9sB,CACjB,CACF,CAaO,SAAS2skB,GAAMx+iB,GACpB,OAAoB,KAAZA,GAAKA,GAAWy+iB,GAAU,SAASt5jB,EAAGC,GAC5C,OAAOA,EAAID,EAbf,SAAqBA,EAAGC,EAAG4a,GACzB,OAAO7a,EAAI1Y,KAAKylH,IAAI/sG,EAAG6a,GAAI5a,EAAI3Y,KAAKylH,IAAI9sG,EAAG4a,GAAK7a,EAAG6a,EAAI,EAAIA,EAAG,SAASrB,GACrE,OAAOlyB,KAAKylH,IAAI/sG,EAAIwZ,EAAIvZ,EAAG4a,EAC7B,CACF,CASmB0+iB,CAAYv5jB,EAAGC,EAAG4a,GAAK+jE,GAAS31E,MAAMjJ,GAAKC,EAAID,EAChE,CACF,CAEe,SAASs5jB,GAAQt5jB,EAAGC,GACjC,IAAIvT,EAAIuT,EAAID,EACZ,OAAOtT,EAAI0skB,GAAOp5jB,EAAGtT,GAAKkyF,GAAS31E,MAAMjJ,GAAKC,EAAID,EACpD,CCvBA,SAAe,SAAUw5jB,EAAS3+iB,GAChC,IAAIkM,EAAQsyiB,GAAMx+iB,GAElB,SAASs5F,EAAIxrG,EAAOC,GAClB,IAAIxjB,EAAI2hC,GAAOpe,EAAQ8wjB,GAAS9wjB,IAAQvjB,GAAIwjB,EAAM6wjB,GAAS7wjB,IAAMxjB,GAC7Ds2B,EAAIqL,EAAMpe,EAAM+S,EAAG9S,EAAI8S,GACvBzb,EAAI8mB,EAAMpe,EAAM1I,EAAG2I,EAAI3I,GACvBxO,EAAU6nkB,GAAQ3wjB,EAAMlX,QAASmX,EAAInX,SACzC,OAAO,SAAS+nB,GAKd,OAJA7Q,EAAMvjB,EAAIA,EAAEo0B,GACZ7Q,EAAM+S,EAAIA,EAAElC,GACZ7Q,EAAM1I,EAAIA,EAAEuZ,GACZ7Q,EAAMlX,QAAUA,EAAQ+nB,GACjB7Q,EAAQ,EACjB,CACF,CAIA,OAFAwrG,EAAIkld,MAAQG,EAELrld,CACR,CApBD,CAoBG,GAEH,SAASuld,GAAUC,GACjB,OAAO,SAASxkZ,GACd,IAIInuL,EAAG+/B,EAJHh4B,EAAIomL,EAAOluL,OACX7B,EAAI,IAAIuB,MAAMoI,GACd2sB,EAAI,IAAI/0B,MAAMoI,GACdkR,EAAI,IAAItZ,MAAMoI,GAElB,IAAK/H,EAAI,EAAGA,EAAI+H,IAAK/H,EACnB+/B,EAAQ0yiB,GAAStkZ,EAAOnuL,IACxB5B,EAAE4B,GAAK+/B,EAAM3hC,GAAK,EAClBs2B,EAAE10B,GAAK+/B,EAAMrL,GAAK,EAClBzb,EAAEjZ,GAAK+/B,EAAM9mB,GAAK,EAMpB,OAJA7a,EAAIu0kB,EAAOv0kB,GACXs2B,EAAIi+iB,EAAOj+iB,GACXzb,EAAI05jB,EAAO15jB,GACX8mB,EAAMt1B,QAAU,EACT,SAAS+nB,GAId,OAHAuN,EAAM3hC,EAAIA,EAAEo0B,GACZuN,EAAMrL,EAAIA,EAAElC,GACZuN,EAAM9mB,EAAIA,EAAEuZ,GACLuN,EAAQ,EACjB,CACF,CACF,CAEsB2yiB,IH7CP,SAASv9jB,GACtB,IAAIpN,EAAIoN,EAAOlV,OAAS,EACxB,OAAO,SAASuyB,GACd,IAAIxyB,EAAIwyB,GAAK,EAAKA,EAAI,EAAKA,GAAK,GAAKA,EAAI,EAAGzqB,EAAI,GAAKzH,KAAKC,MAAMiyB,EAAIzqB,GAChE6pkB,EAAKz8jB,EAAOnV,GACZ6xkB,EAAK18jB,EAAOnV,EAAI,GAChB2xkB,EAAK3xkB,EAAI,EAAImV,EAAOnV,EAAI,GAAK,EAAI4xkB,EAAKC,EACtCC,EAAK9xkB,EAAI+H,EAAI,EAAIoN,EAAOnV,EAAI,GAAK,EAAI6xkB,EAAKD,EAC9C,OAAOF,IAAOl/iB,EAAIxyB,EAAI+H,GAAKA,EAAG4pkB,EAAIC,EAAIC,EAAIC,EAC5C,CACF,IGoC4BY,ICpDb,SAASv9jB,GACtB,IAAIpN,EAAIoN,EAAOlV,OACf,OAAO,SAASuyB,GACd,IAAIxyB,EAAIM,KAAKC,QAAQiyB,GAAK,GAAK,IAAMA,EAAIA,GAAKzqB,GAC1C4pkB,EAAKx8jB,GAAQnV,EAAI+H,EAAI,GAAKA,GAC1B6pkB,EAAKz8jB,EAAOnV,EAAI+H,GAChB8pkB,EAAK18jB,GAAQnV,EAAI,GAAK+H,GACtB+pkB,EAAK38jB,GAAQnV,EAAI,GAAK+H,GAC1B,OAAO2pkB,IAAOl/iB,EAAIxyB,EAAI+H,GAAKA,EAAG4pkB,EAAIC,EAAIC,EAAIC,EAC5C,CACF,ICLO,SAASc,GAAa55jB,EAAGC,GAC9B,IAIIjZ,EAJAwjD,EAAKvqC,EAAIA,EAAEhZ,OAAS,EACpBy9D,EAAK1kD,EAAI1Y,KAAKyhB,IAAIyhC,EAAIxqC,EAAE/Y,QAAU,EAClCwpB,EAAI,IAAI9pB,MAAM+9D,GACdxkD,EAAI,IAAIvZ,MAAM6jD,GAGlB,IAAKxjD,EAAI,EAAGA,EAAI09D,IAAM19D,EAAGypB,EAAEzpB,GAAKtC,GAAMsb,EAAEhZ,GAAIiZ,EAAEjZ,IAC9C,KAAOA,EAAIwjD,IAAMxjD,EAAGkZ,EAAElZ,GAAKiZ,EAAEjZ,GAE7B,OAAO,SAASwyB,GACd,IAAKxyB,EAAI,EAAGA,EAAI09D,IAAM19D,EAAGkZ,EAAElZ,GAAKypB,EAAEzpB,GAAGwyB,GACrC,OAAOtZ,CACT,CACF,CCrBe,YAASF,EAAGC,GACzB,IAAIvT,EAAI,IAAIuvB,KACZ,OAAOjc,GAAKA,EAAGC,GAAKA,EAAG,SAASuZ,GAC9B,OAAO9sB,EAAEmkK,QAAQ7wJ,GAAK,EAAIwZ,GAAKvZ,EAAIuZ,GAAI9sB,CACzC,CACF,CCLe,YAASsT,EAAGC,GACzB,OAAOD,GAAKA,EAAGC,GAAKA,EAAG,SAASuZ,GAC9B,OAAOxZ,GAAK,EAAIwZ,GAAKvZ,EAAIuZ,CAC3B,CACF,CCFe,YAASxZ,EAAGC,GACzB,IAEIvZ,EAFAM,EAAI,CAAC,EACLkZ,EAAI,CAAC,EAMT,IAAKxZ,KAHK,OAANsZ,GAA2B,kBAANA,IAAgBA,EAAI,CAAC,GACpC,OAANC,GAA2B,kBAANA,IAAgBA,EAAI,CAAC,GAEpCA,EACJvZ,KAAKsZ,EACPhZ,EAAEN,GAAKhC,GAAMsb,EAAEtZ,GAAIuZ,EAAEvZ,IAErBwZ,EAAExZ,GAAKuZ,EAAEvZ,GAIb,OAAO,SAAS8yB,GACd,IAAK9yB,KAAKM,EAAGkZ,EAAExZ,GAAKM,EAAEN,GAAG8yB,GACzB,OAAOtZ,CACT,CACF,CCpBA,IAAI25jB,GAAM,8CACNC,GAAM,IAAIrxjB,OAAOoxjB,GAAInokB,OAAQ,KAclB,YAASsO,EAAGC,GACzB,IACI85jB,EACAC,EACAnyZ,EAHAj3G,EAAKipgB,GAAI3hiB,UAAY4hiB,GAAI5hiB,UAAY,EAIrClxC,GAAK,EACLyyB,EAAI,GACJ+jB,EAAI,GAMR,IAHAx9B,GAAQ,GAAIC,GAAQ,IAGZ85jB,EAAKF,GAAI/5jB,KAAKE,MACdg6jB,EAAKF,GAAIh6jB,KAAKG,MACf4nK,EAAKmyZ,EAAGhkkB,OAAS46D,IACpBi3G,EAAK5nK,EAAEnV,MAAM8lE,EAAIi3G,GACbpuJ,EAAEzyB,GAAIyyB,EAAEzyB,IAAM6gL,EACbpuJ,IAAIzyB,GAAK6gL,IAEXkyZ,EAAKA,EAAG,OAASC,EAAKA,EAAG,IACxBvgjB,EAAEzyB,GAAIyyB,EAAEzyB,IAAMgzkB,EACbvgjB,IAAIzyB,GAAKgzkB,GAEdvgjB,IAAIzyB,GAAK,KACTw2C,EAAE71C,KAAK,CAACX,EAAGA,EAAGypB,EAAGmvB,GAAOm6hB,EAAIC,MAE9BppgB,EAAKkpgB,GAAI5hiB,UAYX,OARI04B,EAAK3wD,EAAEhZ,SACT4gL,EAAK5nK,EAAEnV,MAAM8lE,GACTn3C,EAAEzyB,GAAIyyB,EAAEzyB,IAAM6gL,EACbpuJ,IAAIzyB,GAAK6gL,GAKTpuJ,EAAExyB,OAAS,EAAKu2C,EAAE,GA7C3B,SAAav9B,GACX,OAAO,SAASuZ,GACd,OAAOvZ,EAAEuZ,GAAK,EAChB,CACF,CA0CQygjB,CAAIz8hB,EAAE,GAAG/sB,GApDjB,SAAcxQ,GACZ,OAAO,WACL,OAAOA,CACT,CACF,CAiDQg2jB,CAAKh2jB,IACJA,EAAIu9B,EAAEv2C,OAAQ,SAASuyB,GACtB,IAAK,IAAWpB,EAAPpxB,EAAI,EAAMA,EAAIiZ,IAAKjZ,EAAGyyB,GAAGrB,EAAIolB,EAAEx2C,IAAIA,GAAKoxB,EAAE3H,EAAE+I,GACrD,OAAOC,EAAE1uB,KAAK,GAChB,EACR,CC/De,YAASiV,EAAGC,GACpBA,IAAGA,EAAI,IACZ,IAEIjZ,EAFA+H,EAAIiR,EAAI1Y,KAAKyhB,IAAI9I,EAAEhZ,OAAQ+Y,EAAE/Y,QAAU,EACvCiZ,EAAID,EAAEnV,QAEV,OAAO,SAAS0uB,GACd,IAAKxyB,EAAI,EAAGA,EAAI+H,IAAK/H,EAAGkZ,EAAElZ,GAAKgZ,EAAEhZ,IAAM,EAAIwyB,GAAKvZ,EAAEjZ,GAAKwyB,EACvD,OAAOtZ,CACT,CACF,CCCe,YAASF,EAAGC,GACzB,IAAkBC,EDAUuQ,ECAxB+I,SAAWvZ,EACf,OAAY,MAALA,GAAmB,YAANuZ,EAAkBolE,GAAS3+E,IAClC,WAANuZ,EAAiBomB,GACZ,WAANpmB,GAAmBtZ,EAAI6mB,GAAM9mB,KAAOA,EAAIC,EAAGi0G,IAAO/6G,GAClD6G,aAAa8mB,GAAQotF,GACrBl0G,aAAagc,KAAOd,IDLE1K,ECMRxQ,GDLbwnF,YAAYq3E,OAAOruJ,IAAQA,aAAa0hE,SCMzCxrF,MAAMqR,QAAQiI,GAAK25jB,GACE,oBAAd35jB,EAAE4G,SAAgD,oBAAf5G,EAAEnM,UAA2BmV,MAAMhJ,GAAK/F,GAClF0lC,GAHmBs6hB,KAGXl6jB,EAAGC,EACnB,CCrBe,YAASD,EAAGC,GACzB,OAAOD,GAAKA,EAAGC,GAAKA,EAAG,SAASuZ,GAC9B,OAAOlyB,KAAK22B,MAAMje,GAAK,EAAIwZ,GAAKvZ,EAAIuZ,EACtC,CACF,CCJe,SAASomB,GAAOnvB,GAC7B,OAAQA,CACV,CCGA,IAAI3nB,GAAO,CAAC,EAAG,GAER,SAASq2B,GAAS1O,GACvB,OAAOA,CACT,CAEA,SAASnO,GAAUtC,EAAGC,GACpB,OAAQA,GAAMD,GAAKA,GACb,SAASyQ,GAAK,OAAQA,EAAIzQ,GAAKC,CAAG,GCbRwQ,EDcjBxH,MAAMhJ,GAAKsM,IAAM,GCbzB,WACL,OAAOkE,CACT,GAHa,IAAmBA,CDelC,CAUA,SAAS0pjB,GAAMn1jB,EAAQmU,EAAOy/E,GAC5B,IAAIwhe,EAAKp1jB,EAAO,GAAIq1jB,EAAKr1jB,EAAO,GAAI0qjB,EAAKv2iB,EAAM,GAAImoH,EAAKnoH,EAAM,GAG9D,OAFIkhjB,EAAKD,GAAIA,EAAK93jB,GAAU+3jB,EAAID,GAAK1K,EAAK92d,EAAY0oC,EAAIoub,KACrD0K,EAAK93jB,GAAU83jB,EAAIC,GAAK3K,EAAK92d,EAAY82d,EAAIpub,IAC3C,SAAS7wH,GAAK,OAAOi/iB,EAAG0K,EAAG3pjB,GAAK,CACzC,CAEA,SAAS6pjB,GAAQt1jB,EAAQmU,EAAOy/E,GAC9B,IAAIj1F,EAAIrc,KAAKyhB,IAAI/D,EAAO/d,OAAQkyB,EAAMlyB,QAAU,EAC5CyF,EAAI,IAAI/F,MAAMgd,GACdve,EAAI,IAAIuB,MAAMgd,GACd3c,GAAK,EAQT,IALIge,EAAOrB,GAAKqB,EAAO,KACrBA,EAASA,EAAOla,QAAQonF,UACxB/4D,EAAQA,EAAMruB,QAAQonF,aAGflrF,EAAI2c,GACXjX,EAAE1F,GAAKsb,GAAU0C,EAAOhe,GAAIge,EAAOhe,EAAI,IACvC5B,EAAE4B,GAAK4xG,EAAYz/E,EAAMnyB,GAAImyB,EAAMnyB,EAAI,IAGzC,OAAO,SAASypB,GACd,IAAIzpB,EAAIuzkB,GAAOv1jB,EAAQyL,EAAG,EAAG9M,GAAK,EAClC,OAAOve,EAAE4B,GAAG0F,EAAE1F,GAAGypB,GACnB,CACF,CAEO,SAASwwE,GAAKvvF,EAAQb,GAC3B,OAAOA,EACFmU,OAAOtT,EAAOsT,UACdmU,MAAMznB,EAAOynB,SACby/E,YAAYlnG,EAAOknG,eACnB9D,MAAMpjG,EAAOojG,SACbw6d,QAAQ59jB,EAAO49jB,UACtB,CAEO,SAASkL,KACd,IAGIn1f,EACAo1f,EACAnL,EAEAoL,EACA9nkB,EACA+T,EATA3B,EAASlc,GACTqwB,EAAQrwB,GACR8vG,EAAcK,GAIdnE,EAAQ31E,GAKZ,SAAS0wiB,IACP,IAAI9gkB,EAAIzH,KAAKyhB,IAAI/D,EAAO/d,OAAQkyB,EAAMlyB,QAItC,OAHI6tG,IAAU31E,KAAU21E,EA7D5B,SAAiB90F,EAAGC,GAClB,IAAIuZ,EAEJ,OADIxZ,EAAIC,IAAGuZ,EAAIxZ,EAAGA,EAAIC,EAAGA,EAAIuZ,GACtB,SAAS/I,GAAK,OAAOnpB,KAAKwhB,IAAI9I,EAAG1Y,KAAKyhB,IAAI9I,EAAGwQ,GAAK,CAC3D,CAyDoCkqjB,CAAQ31jB,EAAO,GAAIA,EAAOjW,EAAI,KAC9D2rkB,EAAY3rkB,EAAI,EAAIurkB,GAAUH,GAC9BvnkB,EAAS+T,EAAQ,KACVihI,CACT,CAEA,SAASA,EAAMn3H,GACb,OAAY,MAALA,GAAaxH,MAAMwH,GAAKA,GAAK6+iB,GAAW18jB,IAAWA,EAAS8nkB,EAAU11jB,EAAO7R,IAAIkyE,GAAYlsD,EAAOy/E,KAAevzB,EAAUyvB,EAAMrkF,IAC5I,CA8BA,OA5BAm3H,EAAM35C,OAAS,SAASpzE,GACtB,OAAOi6E,EAAM2le,GAAa9zjB,IAAUA,EAAQ+zjB,EAAUvhjB,EAAOnU,EAAO7R,IAAIkyE,GAAY+we,MAAqBv7hB,IAC3G,EAEA+sH,EAAM5iI,OAAS,SAASiS,GACtB,OAAO1hB,UAAUtO,QAAU+d,EAASre,MAAM8J,KAAKwmB,EAAG2oB,IAASiwhB,KAAa7qjB,EAAOla,OACjF,EAEA88I,EAAMzuH,MAAQ,SAASlC,GACrB,OAAO1hB,UAAUtO,QAAUkyB,EAAQxyB,MAAM8J,KAAKwmB,GAAI44iB,KAAa12iB,EAAMruB,OACvE,EAEA88I,EAAMkob,WAAa,SAAS74iB,GAC1B,OAAOkC,EAAQxyB,MAAM8J,KAAKwmB,GAAI2hF,EAAcgie,GAAkB/K,GAChE,EAEAjob,EAAM9yC,MAAQ,SAAS79E,GACrB,OAAO1hB,UAAUtO,QAAU6tG,IAAQ79E,GAAWkI,GAAU0wiB,KAAa/6d,IAAU31E,EACjF,EAEAyoH,EAAMhvC,YAAc,SAAS3hF,GAC3B,OAAO1hB,UAAUtO,QAAU2xG,EAAc3hF,EAAG44iB,KAAaj3d,CAC3D,EAEAgvC,EAAM0nb,QAAU,SAASr4iB,GACvB,OAAO1hB,UAAUtO,QAAUqokB,EAAUr4iB,EAAG2wH,GAAS0nb,CACnD,EAEO,SAAS91iB,EAAGE,GAEjB,OADA2rD,EAAY7rD,EAAGihjB,EAAc/gjB,EACtBm2iB,GACT,CACF,CAEe,SAASgL,KACtB,OAAOL,KAAcr7iB,GAAUA,GACjC,CE3HA,ICCW27iB,GDDPx7gB,GAAK,2EAEM,SAASy7gB,GAAgBC,GACtC,KAAMt8jB,EAAQ4gD,GAAGx/C,KAAKk7jB,IAAa,MAAM,IAAIxxkB,MAAM,mBAAqBwxkB,GACxE,IAAIt8jB,EACJ,OAAO,IAAIu8jB,GAAgB,CACzBvpe,KAAMhzF,EAAM,GACZolB,MAAOplB,EAAM,GACb4tG,KAAM5tG,EAAM,GACZsE,OAAQtE,EAAM,GACdu3jB,KAAMv3jB,EAAM,GACZ3W,MAAO2W,EAAM,GACbw8jB,MAAOx8jB,EAAM,GACbq6B,UAAWr6B,EAAM,IAAMA,EAAM,GAAG5T,MAAM,GACtC+d,KAAMnK,EAAM,GACZ5R,KAAM4R,EAAM,KAEhB,CAIO,SAASu8jB,GAAgBD,GAC9Bl1kB,KAAK4rG,UAA0B3+F,IAAnBiokB,EAAUtpe,KAAqB,IAAMspe,EAAUtpe,KAAO,GAClE5rG,KAAKg+B,WAA4B/wB,IAApBiokB,EAAUl3iB,MAAsB,IAAMk3iB,EAAUl3iB,MAAQ,GACrEh+B,KAAKwmH,UAA0Bv5G,IAAnBiokB,EAAU1ud,KAAqB,IAAM0ud,EAAU1ud,KAAO,GAClExmH,KAAKkd,YAA8BjQ,IAArBiokB,EAAUh4jB,OAAuB,GAAKg4jB,EAAUh4jB,OAAS,GACvEld,KAAKmwkB,OAAS+E,EAAU/E,KACxBnwkB,KAAKiC,WAA4BgL,IAApBiokB,EAAUjzkB,WAAsBgL,GAAaiokB,EAAUjzkB,MACpEjC,KAAKo1kB,QAAUF,EAAUE,MACzBp1kB,KAAKizC,eAAoChmC,IAAxBiokB,EAAUjiiB,eAA0BhmC,GAAaiokB,EAAUjiiB,UAC5EjzC,KAAK+iB,OAASmyjB,EAAUnyjB,KACxB/iB,KAAKgH,UAA0BiG,IAAnBiokB,EAAUlukB,KAAqB,GAAKkukB,EAAUlukB,KAAO,EACnE,CExBO,SAASqukB,GAAmB1qjB,EAAGtD,GACpC,IAAKnmB,GAAKypB,EAAItD,EAAIsD,EAAEytM,cAAc/wM,EAAI,GAAKsD,EAAEytM,iBAAiB1zN,QAAQ,MAAQ,EAAG,OAAO,KACxF,IAAIxD,EAAGmuI,EAAc1kH,EAAE3lB,MAAM,EAAG9D,GAIhC,MAAO,CACLmuI,EAAYluI,OAAS,EAAIkuI,EAAY,GAAKA,EAAYrqI,MAAM,GAAKqqI,GAChE1kH,EAAE3lB,MAAM9D,EAAI,GAEjB,CCjBe,YAASypB,GACtB,OAAOA,EAAI0qjB,GAAmB7zkB,KAAK6E,IAAIskB,KAASA,EAAE,GAAKlE,GACzD,CCFe,YAASkE,EAAGtD,GACzB,IAAIzgB,EAAIyukB,GAAmB1qjB,EAAGtD,GAC9B,IAAKzgB,EAAG,OAAO+jB,EAAI,GACnB,IAAI0kH,EAAczoI,EAAE,GAChBmgH,EAAWngH,EAAE,GACjB,OAAOmgH,EAAW,EAAI,KAAO,IAAIlmH,OAAOkmH,GAAU9hH,KAAK,KAAOoqI,EACxDA,EAAYluI,OAAS4lH,EAAW,EAAIsoB,EAAYrqI,MAAM,EAAG+hH,EAAW,GAAK,IAAMsoB,EAAYrqI,MAAM+hH,EAAW,GAC5GsoB,EAAc,IAAIxuI,MAAMkmH,EAAWsoB,EAAYluI,OAAS,GAAG8D,KAAK,IACxE,CJUAgwkB,GAAgBp1kB,UAAYs1kB,GAAgBt1kB,UAe5Cs1kB,GAAgBt1kB,UAAUmO,SAAW,WACnC,OAAOhO,KAAK4rG,KACN5rG,KAAKg+B,MACLh+B,KAAKwmH,KACLxmH,KAAKkd,QACJld,KAAKmwkB,KAAO,IAAM,UACHljkB,IAAfjN,KAAKiC,MAAsB,GAAKT,KAAKwhB,IAAI,EAAgB,EAAbhjB,KAAKiC,SACjDjC,KAAKo1kB,MAAQ,IAAM,UACAnokB,IAAnBjN,KAAKizC,UAA0B,GAAK,IAAMzxC,KAAKwhB,IAAI,EAAoB,EAAjBhjB,KAAKizC,aAC3DjzC,KAAK+iB,KAAO,IAAM,IACnB/iB,KAAKgH,IACb,EK1CA,UACE,IAAKsukB,CAAC3qjB,EAAGtD,KAAW,IAAJsD,GAASotJ,QAAQ1wJ,GACjC,EAAMsD,GAAMnpB,KAAK22B,MAAMxN,GAAG3c,SAAS,GACnC,EAAM2c,GAAMA,EAAI,GAChB,EHRa,SAASA,GACtB,OAAOnpB,KAAK6E,IAAIskB,EAAInpB,KAAK22B,MAAMxN,KAAO,KAChCA,EAAEgrZ,eAAe,MAAMjia,QAAQ,KAAM,IACrCiX,EAAE3c,SAAS,GACnB,EGKE,EAAKwf,CAAC7C,EAAGtD,IAAMsD,EAAEytM,cAAc/wM,GAC/B,EAAKlY,CAACwb,EAAGtD,IAAMsD,EAAEotJ,QAAQ1wJ,GACzB,EAAKuO,CAACjL,EAAGtD,IAAMsD,EAAEiuM,YAAYvxM,GAC7B,EAAMsD,GAAMnpB,KAAK22B,MAAMxN,GAAG3c,SAAS,GACnC,EAAKqZ,CAACsD,EAAGtD,IAAMkujB,GAAkB,IAAJ5qjB,EAAStD,GACtC,EAAKkujB,GACL,EJXa,SAAS5qjB,EAAGtD,GACzB,IAAIzgB,EAAIyukB,GAAmB1qjB,EAAGtD,GAC9B,IAAKzgB,EAAG,OAAO+jB,EAAI,GACnB,IAAI0kH,EAAczoI,EAAE,GAChBmgH,EAAWngH,EAAE,GACb1F,EAAI6lH,GAAYiud,GAAuE,EAAtDxzkB,KAAKwhB,KAAK,EAAGxhB,KAAKyhB,IAAI,EAAGzhB,KAAKC,MAAMslH,EAAW,MAAY,EAC5F99G,EAAIomI,EAAYluI,OACpB,OAAOD,IAAM+H,EAAIomI,EACXnuI,EAAI+H,EAAIomI,EAAc,IAAIxuI,MAAMK,EAAI+H,EAAI,GAAGhE,KAAK,KAChD/D,EAAI,EAAImuI,EAAYrqI,MAAM,EAAG9D,GAAK,IAAMmuI,EAAYrqI,MAAM9D,GAC1D,KAAO,IAAIL,MAAM,EAAIK,GAAG+D,KAAK,KAAOowkB,GAAmB1qjB,EAAGnpB,KAAKwhB,IAAI,EAAGqE,EAAInmB,EAAI,IAAI,EAC1F,EICE,EAAMypB,GAAMnpB,KAAK22B,MAAMxN,GAAG3c,SAAS,IAAIklB,cACvC,EAAMvI,GAAMnpB,KAAK22B,MAAMxN,GAAG3c,SAAS,KCjBtB,YAAS2c,GACtB,OAAOA,CACT,CCOA,ICPIqJ,GACO/wB,GACAuykB,GDKPnokB,GAAMxM,MAAMhB,UAAUwN,IACtBqqP,GAAW,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,OAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAEhE,YAAS1jO,GACtB,IEbsByhjB,EAAUC,EFa5B9xe,OAA4B32F,IAApB+mB,EAAOyhjB,eAA+CxokB,IAArB+mB,EAAO0hjB,UAA0Br8iB,IEbxDo8iB,EFa+EpokB,GAAItN,KAAKi0B,EAAOyhjB,SAAUvukB,QEb/FwukB,EFawG1hjB,EAAO0hjB,UAAY,GEZpJ,SAAS92kB,EAAOqD,GAOrB,IANA,IAAIf,EAAItC,EAAMuC,OACVuyB,EAAI,GACJ7V,EAAI,EACJ+X,EAAI6/iB,EAAS,GACbt0kB,EAAS,EAEND,EAAI,GAAK00B,EAAI,IACdz0B,EAASy0B,EAAI,EAAI3zB,IAAO2zB,EAAIp0B,KAAKwhB,IAAI,EAAG/gB,EAAQd,IACpDuyB,EAAE7xB,KAAKjD,EAAMwvB,UAAUltB,GAAK00B,EAAG10B,EAAI00B,OAC9Bz0B,GAAUy0B,EAAI,GAAK3zB,KACxB2zB,EAAI6/iB,EAAS53jB,GAAKA,EAAI,GAAK43jB,EAASt0kB,QAGtC,OAAOuyB,EAAE04D,UAAUnnF,KAAKywkB,EAC1B,GFFIC,OAAqC1okB,IAApB+mB,EAAOkta,SAAyB,GAAKlta,EAAOkta,SAAS,GAAK,GAC3E00I,OAAqC3okB,IAApB+mB,EAAOkta,SAAyB,GAAKlta,EAAOkta,SAAS,GAAK,GAC3EoE,OAA6Br4b,IAAnB+mB,EAAOsxa,QAAwB,IAAMtxa,EAAOsxa,QAAU,GAChEuwI,OAA+B5okB,IAApB+mB,EAAO6hjB,SAAyBx8iB,GGjBlC,SAASw8iB,GACtB,OAAO,SAASj3kB,GACd,OAAOA,EAAM8U,QAAQ,UAAU,SAASxS,GACtC,OAAO20kB,GAAU30kB,EACnB,GACF,CACF,CHW4D40kB,CAAezokB,GAAItN,KAAKi0B,EAAO6hjB,SAAU5ukB,SAC/Fo3U,OAA6BpxU,IAAnB+mB,EAAOqqT,QAAwB,IAAMrqT,EAAOqqT,QAAU,GAChE1mH,OAAyB1qN,IAAjB+mB,EAAO2jM,MAAsB,SAAM3jM,EAAO2jM,MAAQ,GAC1DytO,OAAqBn4b,IAAf+mB,EAAOoxa,IAAoB,MAAQpxa,EAAOoxa,IAAM,GAE1D,SAAS2wI,EAAUb,GAGjB,IAAItpe,GAFJspe,EAAYD,GAAgBC,IAEPtpe,KACjB5tE,EAAQk3iB,EAAUl3iB,MAClBwoF,EAAO0ud,EAAU1ud,KACjBtpG,EAASg4jB,EAAUh4jB,OACnBizjB,EAAO+E,EAAU/E,KACjBlukB,EAAQizkB,EAAUjzkB,MAClBmzkB,EAAQF,EAAUE,MAClBniiB,EAAYiiiB,EAAUjiiB,UACtBlwB,EAAOmyjB,EAAUnyjB,KACjB/b,EAAOkukB,EAAUlukB,KAGR,MAATA,GAAcoukB,GAAQ,EAAMpukB,EAAO,KAG7BgvkB,GAAYhvkB,UAAqBiG,IAAdgmC,IAA4BA,EAAY,IAAKlwB,GAAO,EAAM/b,EAAO,MAG1FmpkB,GAAkB,MAATvke,GAA0B,MAAV5tE,KAAgBmyiB,GAAO,EAAMvke,EAAO,IAAK5tE,EAAQ,KAI9E,IAAIg2E,EAAoB,MAAX92F,EAAiBy4jB,EAA4B,MAAXz4jB,GAAkB,SAASF,KAAKhW,GAAQ,IAAMA,EAAK7D,cAAgB,GAC9GirI,EAAoB,MAAXlxH,EAAiB04jB,EAAiB,OAAO54jB,KAAKhW,GAAQq3U,EAAU,GAKzE43P,EAAaD,GAAYhvkB,GACzBkvkB,EAAc,aAAal5jB,KAAKhW,GAUpC,SAAS/D,EAAOrE,GACd,IAEIsC,EAAG+H,EAAGmR,EAFN+7jB,EAAcnie,EACdoie,EAAchoc,EAGlB,GAAa,MAATpnI,EACFovkB,EAAcH,EAAWr3kB,GAASw3kB,EAClCx3kB,EAAQ,OACH,CAIL,IAAIy3kB,GAHJz3kB,GAASA,GAGmB,GAAK,EAAIA,EAAQ,EAiB7C,GAdAA,EAAQukB,MAAMvkB,GAASwmc,EAAM6wI,EAAWz0kB,KAAK6E,IAAIzH,GAAQq0C,GAGrDlwB,IAAMnkB,EIjFH,SAAS+0B,GACtBghJ,EAAK,IAAK,IAAkCkM,EAA9B53K,EAAI0qB,EAAExyB,OAAQD,EAAI,EAAG0/K,GAAM,EAAO1/K,EAAI+H,IAAK/H,EACvD,OAAQyyB,EAAEzyB,IACR,IAAK,IAAK0/K,EAAKC,EAAK3/K,EAAG,MACvB,IAAK,IAAgB,IAAP0/K,IAAUA,EAAK1/K,GAAG2/K,EAAK3/K,EAAG,MACxC,QAAS,KAAMyyB,EAAEzyB,GAAI,MAAMyzK,EAASiM,EAAK,IAAGA,EAAK,GAGrD,OAAOA,EAAK,EAAIjtJ,EAAE3uB,MAAM,EAAG47K,GAAMjtJ,EAAE3uB,MAAM67K,EAAK,GAAKltJ,CACrD,CJwE0B2ijB,CAAW13kB,IAGzBy3kB,GAA4B,KAAVz3kB,GAAwB,MAAT4nH,IAAc6vd,GAAgB,GAGnEF,GAAeE,EAA0B,MAAT7vd,EAAeA,EAAOmxG,EAAkB,MAATnxG,GAAyB,MAATA,EAAe,GAAKA,GAAQ2vd,EAC3GC,GAAwB,MAATpvkB,EAAe0wP,GAAS,EAAIs9U,GAAiB,GAAK,IAAMoB,GAAeC,GAA0B,MAAT7vd,EAAe,IAAM,IAIxH0vd,EAEF,IADAh1kB,GAAK,EAAG+H,EAAIrK,EAAMuC,SACTD,EAAI+H,GACX,GAA6B,IAAzBmR,EAAIxb,EAAM0jB,WAAWphB,KAAckZ,EAAI,GAAI,CAC7Cg8jB,GAAqB,KAANh8jB,EAAWkrb,EAAU1mc,EAAMoG,MAAM9D,EAAI,GAAKtC,EAAMoG,MAAM9D,IAAMk1kB,EAC3Ex3kB,EAAQA,EAAMoG,MAAM,EAAG9D,GACvB,KACF,CAGN,CAGIk0kB,IAAUjF,IAAMvxkB,EAAQglG,EAAMhlG,EAAO84E,MAGzC,IAAIv2E,EAASg1kB,EAAYh1kB,OAASvC,EAAMuC,OAASi1kB,EAAYj1kB,OACzDogC,EAAUpgC,EAASc,EAAQ,IAAIpB,MAAMoB,EAAQd,EAAS,GAAG8D,KAAK2mG,GAAQ,GAM1E,OAHIwpe,GAASjF,IAAMvxkB,EAAQglG,EAAMriE,EAAU3iC,EAAO2iC,EAAQpgC,OAASc,EAAQm0kB,EAAYj1kB,OAASu2E,KAAWn2C,EAAU,IAG7GvD,GACN,IAAK,IAAKp/B,EAAQu3kB,EAAcv3kB,EAAQw3kB,EAAc70iB,EAAS,MAC/D,IAAK,IAAK3iC,EAAQu3kB,EAAc50iB,EAAU3iC,EAAQw3kB,EAAa,MAC/D,IAAK,IAAKx3kB,EAAQ2iC,EAAQv8B,MAAM,EAAG7D,EAASogC,EAAQpgC,QAAU,GAAKg1kB,EAAcv3kB,EAAQw3kB,EAAc70iB,EAAQv8B,MAAM7D,GAAS,MAC9H,QAASvC,EAAQ2iC,EAAU40iB,EAAcv3kB,EAAQw3kB,EAGnD,OAAOP,EAASj3kB,EAClB,CAMA,OAtEAq0C,OAA0BhmC,IAAdgmC,EAA0B,EAChC,SAASj2B,KAAKhW,GAAQxF,KAAKwhB,IAAI,EAAGxhB,KAAKyhB,IAAI,GAAIgwB,IAC/CzxC,KAAKwhB,IAAI,EAAGxhB,KAAKyhB,IAAI,GAAIgwB,IAgE/BhwC,EAAO+K,SAAW,WAChB,OAAOknkB,EAAY,EACrB,EAEOjykB,CACT,CAYA,MAAO,CACLA,OAAQ8ykB,EACRP,aAZF,SAAsBN,EAAWt2kB,GAC/B,IAAIuQ,EAAI4mkB,IAAWb,EAAYD,GAAgBC,IAAsBlukB,KAAO,IAAKkukB,IAC7E1njB,EAAiE,EAA7DhsB,KAAKwhB,KAAK,EAAGxhB,KAAKyhB,IAAI,EAAGzhB,KAAKC,MAAMslH,GAASnoH,GAAS,KAC1DgC,EAAIY,KAAKylH,IAAI,IAAKz5F,GAClBwmF,EAAS0jJ,GAAS,EAAIlqO,EAAI,GAC9B,OAAO,SAAS5uB,GACd,OAAOuQ,EAAEvO,EAAIhC,GAASo1G,CACxB,CACF,EAMF,CKhJe,SAASuie,GAAW1zjB,EAAOu1G,EAAMpkF,EAAOkhiB,GACrD,IACIjiiB,EADAmtC,EAAOwvf,GAAS/sjB,EAAOu1G,EAAMpkF,GAGjC,QADAkhiB,EAAYD,GAA6B,MAAbC,EAAoB,KAAOA,IACrClukB,MAChB,IAAK,IACH,IAAIpI,EAAQ4C,KAAKwhB,IAAIxhB,KAAK6E,IAAIwc,GAAQrhB,KAAK6E,IAAI+xH,IAE/C,OAD2B,MAAvB88c,EAAUjiiB,WAAsB9vB,MAAM8vB,ECRjC,SAASmtC,EAAMxhF,GAC5B,OAAO4C,KAAKwhB,IAAI,EAAgE,EAA7DxhB,KAAKwhB,KAAK,EAAGxhB,KAAKyhB,IAAI,EAAGzhB,KAAKC,MAAMslH,GAASnoH,GAAS,KAAWmoH,GAASvlH,KAAK6E,IAAI+5E,IACxG,CDM4Do2f,CAAgBp2f,EAAMxhF,MAASs2kB,EAAUjiiB,UAAYA,GACpGuiiB,GAAaN,EAAWt2kB,GAEjC,IAAK,GACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACwB,MAAvBs2kB,EAAUjiiB,WAAsB9vB,MAAM8vB,EEhBjC,SAASmtC,EAAMp9D,GAE5B,OADAo9D,EAAO5+E,KAAK6E,IAAI+5E,GAAOp9D,EAAMxhB,KAAK6E,IAAI2c,GAAOo9D,EACtC5+E,KAAKwhB,IAAI,EAAG+jG,GAAS/jG,GAAO+jG,GAAS3mC,IAAS,CACvD,CFa4Dq2f,CAAer2f,EAAM5+E,KAAKwhB,IAAIxhB,KAAK6E,IAAIwc,GAAQrhB,KAAK6E,IAAI+xH,QAAU88c,EAAUjiiB,UAAYA,GAAgC,MAAnBiiiB,EAAUlukB,OACrK,MAEF,IAAK,IACL,IAAK,IACwB,MAAvBkukB,EAAUjiiB,WAAsB9vB,MAAM8vB,EGrBjC,SAASmtC,GACtB,OAAO5+E,KAAKwhB,IAAI,GAAI+jG,GAASvlH,KAAK6E,IAAI+5E,IACxC,CHmB4Ds2f,CAAet2f,MAAQ80f,EAAUjiiB,UAAYA,EAAuC,GAAP,MAAnBiiiB,EAAUlukB,OAI9H,OAAO/D,GAAOiykB,EAChB,CIvBO,SAASyB,GAAU70b,GACxB,IAAI5iI,EAAS4iI,EAAM5iI,OAkDnB,OAhDA4iI,EAAM4tb,MAAQ,SAAS17hB,GACrB,IAAIptC,EAAIsY,IACR,OAAOwwjB,GAAM9okB,EAAE,GAAIA,EAAEA,EAAEzF,OAAS,GAAa,MAAT6yC,EAAgB,GAAKA,EAC3D,EAEA8tG,EAAMy0b,WAAa,SAASviiB,EAAOkhiB,GACjC,IAAItukB,EAAIsY,IACR,OAAOq3jB,GAAW3vkB,EAAE,GAAIA,EAAEA,EAAEzF,OAAS,GAAa,MAAT6yC,EAAgB,GAAKA,EAAOkhiB,EACvE,EAEApzb,EAAM80b,KAAO,SAAS5iiB,GACP,MAATA,IAAeA,EAAQ,IAE3B,IAKI6iiB,EACAz2f,EANAx5E,EAAIsY,IACJ0hK,EAAK,EACLC,EAAKj6K,EAAEzF,OAAS,EAChB0hB,EAAQjc,EAAEg6K,GACVxoD,EAAOxxH,EAAEi6K,GAGTi2Z,EAAU,GAOd,IALI1+c,EAAOv1G,IACTu9D,EAAOv9D,EAAOA,EAAQu1G,EAAMA,EAAOh4C,EACnCA,EAAOwgG,EAAIA,EAAKC,EAAIA,EAAKzgG,GAGpB02f,KAAY,GAAG,CAEpB,IADA12f,EAAOuvf,GAAc9sjB,EAAOu1G,EAAMpkF,MACrB6iiB,EAGX,OAFAjwkB,EAAEg6K,GAAM/9J,EACRjc,EAAEi6K,GAAMzoD,EACDl5G,EAAOtY,GACT,GAAIw5E,EAAO,EAChBv9D,EAAQrhB,KAAKC,MAAMohB,EAAQu9D,GAAQA,EACnCg4C,EAAO52H,KAAK6K,KAAK+rH,EAAOh4C,GAAQA,MAC3B,MAAIA,EAAO,GAIhB,MAHAv9D,EAAQrhB,KAAK6K,KAAKwW,EAAQu9D,GAAQA,EAClCg4C,EAAO52H,KAAKC,MAAM22H,EAAOh4C,GAAQA,CAGnC,CACAy2f,EAAUz2f,CACZ,CAEA,OAAO0hE,CACT,EAEOA,CACT,CAEe,SAASwxb,KACtB,IAAIxxb,EAAQizb,KAQZ,OANAjzb,EAAM3mD,KAAO,WACX,OAAOA,GAAK2mD,EAAOwxb,KACrB,EAEAxK,GAAUzujB,MAAMynI,EAAOryI,WAEhBknkB,GAAU70b,EACnB,CClEe,SAASzoH,GAASna,GAC/B,IAAIsqjB,EAEJ,SAAS1nb,EAAMn3H,GACb,OAAY,MAALA,GAAaxH,MAAMwH,GAAKA,GAAK6+iB,EAAU7+iB,CAChD,CAkBA,OAhBAm3H,EAAM35C,OAAS25C,EAEfA,EAAM5iI,OAAS4iI,EAAMzuH,MAAQ,SAASlC,GACpC,OAAO1hB,UAAUtO,QAAU+d,EAASre,MAAM8J,KAAKwmB,EAAG2oB,IAASgoG,GAAS5iI,EAAOla,OAC7E,EAEA88I,EAAM0nb,QAAU,SAASr4iB,GACvB,OAAO1hB,UAAUtO,QAAUqokB,EAAUr4iB,EAAG2wH,GAAS0nb,CACnD,EAEA1nb,EAAM3mD,KAAO,WACX,OAAO9hE,GAASna,GAAQsqjB,QAAQA,EAClC,EAEAtqjB,EAASzP,UAAUtO,OAASN,MAAM8J,KAAKuU,EAAQ46B,IAAU,CAAC,EAAG,GAEtD68hB,GAAU70b,EACnB,CC3Be,SAAS80b,GAAK13jB,EAAQi2H,GAGnC,IAIIzhH,EAJAktJ,EAAK,EACLC,GAHJ3hK,EAASA,EAAOla,SAGA7D,OAAS,EACrB+jJ,EAAKhmI,EAAO0hK,GACZpwI,EAAKtxB,EAAO2hK,GAUhB,OAPIrwI,EAAK00G,IACPxxH,EAAIktJ,EAAIA,EAAKC,EAAIA,EAAKntJ,EACtBA,EAAIwxH,EAAIA,EAAK10G,EAAIA,EAAK9c,GAGxBxU,EAAO0hK,GAAMzrC,EAAS1zI,MAAMyjJ,GAC5BhmI,EAAO2hK,GAAM1rC,EAAS9oI,KAAKmkC,GACpBtxB,CACT,CCXA,SAAS63jB,GAAapsjB,GACpB,OAAOnpB,KAAKqrD,IAAIliC,EAClB,CAEA,SAASqsjB,GAAarsjB,GACpB,OAAOnpB,KAAKwlH,IAAIr8F,EAClB,CAEA,SAASssjB,GAActsjB,GACrB,OAAQnpB,KAAKqrD,KAAKliC,EACpB,CAEA,SAASusjB,GAAcvsjB,GACrB,OAAQnpB,KAAKwlH,KAAKr8F,EACpB,CAEA,SAASwsjB,GAAMxsjB,GACb,OAAOmhE,SAASnhE,KAAO,KAAOA,GAAKA,EAAI,EAAI,EAAIA,CACjD,CAeA,SAASysjB,GAAQjokB,GACf,MAAO,CAACwb,EAAG/pB,KAAOuO,GAAGwb,EAAG/pB,EAC1B,CAEO,SAASy2kB,GAAQ93f,GACtB,MAAMuiE,EAAQviE,EAAUw3f,GAAcC,IAChC93jB,EAAS4iI,EAAM5iI,OACrB,IACIo4jB,EACAC,EAFAzvhB,EAAO,GAIX,SAASiihB,IAQP,OAPAuN,EAnBJ,SAAcxvhB,GACZ,OAAOA,IAAStmD,KAAKkjB,EAAIljB,KAAKqrD,IACf,KAAT/E,GAAetmD,KAAKgukB,OACV,IAAT1nhB,GAActmD,KAAKg2kB,OAClB1vhB,EAAOtmD,KAAKqrD,IAAI/E,GAAOn9B,GAAKnpB,KAAKqrD,IAAIliC,GAAKm9B,EACpD,CAcW2vhB,CAAK3vhB,GAAOyvhB,EAzBvB,SAAczvhB,GACZ,OAAgB,KAATA,EAAcqvhB,GACfrvhB,IAAStmD,KAAKkjB,EAAIljB,KAAKwlH,IACvBr8F,GAAKnpB,KAAKylH,IAAIn/D,EAAMn9B,EAC5B,CAqB8B+sjB,CAAK5vhB,GAC3B5oC,IAAS,GAAK,GAChBo4jB,EAAOF,GAAQE,GAAOC,EAAOH,GAAQG,GACrCh4f,EAAU03f,GAAeC,KAEzB33f,EAAUw3f,GAAcC,IAEnBl1b,CACT,CAwEA,OAtEAA,EAAMh6F,KAAO,SAAS32B,GACpB,OAAO1hB,UAAUtO,QAAU2mD,GAAQ32B,EAAG44iB,KAAajihB,CACrD,EAEAg6F,EAAM5iI,OAAS,SAASiS,GACtB,OAAO1hB,UAAUtO,QAAU+d,EAAOiS,GAAI44iB,KAAa7qjB,GACrD,EAEA4iI,EAAM4tb,MAAQ17hB,IACZ,MAAMptC,EAAIsY,IACV,IAAI0U,EAAIhtB,EAAE,GACNsuB,EAAItuB,EAAEA,EAAEzF,OAAS,GACrB,MAAM7B,EAAI41B,EAAItB,EAEVt0B,KAAKs0B,EAAGsB,GAAK,CAACA,EAAGtB,IAErB,IAEIhzB,EACA8yB,EAHAxyB,EAAIo2kB,EAAK1jjB,GACT/V,EAAIy5jB,EAAKpijB,GAGb,MAAMjsB,EAAa,MAAT+qC,EAAgB,IAAMA,EAChC,IAAI7e,EAAI,GAER,KAAM2yB,EAAO,IAAMjqC,EAAI3c,EAAI+H,EAAG,CAE5B,GADA/H,EAAIM,KAAKC,MAAMP,GAAI2c,EAAIrc,KAAK6K,KAAKwR,GAC7B+V,EAAI,GAAG,KAAO1yB,GAAK2c,IAAK3c,EAC1B,IAAKN,EAAI,EAAGA,EAAIknD,IAAQlnD,EAEtB,GADA8yB,EAAIxyB,EAAI,EAAIN,EAAI22kB,GAAMr2kB,GAAKN,EAAI22kB,EAAKr2kB,KAChCwyB,EAAIE,GAAR,CACA,GAAIF,EAAIwB,EAAG,MACXC,EAAEtzB,KAAK6xB,EAFY,OAIhB,KAAOxyB,GAAK2c,IAAK3c,EACtB,IAAKN,EAAIknD,EAAO,EAAGlnD,GAAK,IAAKA,EAE3B,GADA8yB,EAAIxyB,EAAI,EAAIN,EAAI22kB,GAAMr2kB,GAAKN,EAAI22kB,EAAKr2kB,KAChCwyB,EAAIE,GAAR,CACA,GAAIF,EAAIwB,EAAG,MACXC,EAAEtzB,KAAK6xB,EAFY,CAKR,EAAXyB,EAAEh0B,OAAa8H,IAAGksB,EAAIu6iB,GAAM97iB,EAAGsB,EAAGjsB,GACxC,MACEksB,EAAIu6iB,GAAMxukB,EAAG2c,EAAGrc,KAAKyhB,IAAIpF,EAAI3c,EAAG+H,IAAIoE,IAAIkqkB,GAE1C,OAAOj4kB,EAAI61B,EAAEi3D,UAAYj3D,CAAC,EAG5B2sH,EAAMy0b,WAAa,CAACviiB,EAAOkhiB,KAOzB,GANa,MAATlhiB,IAAeA,EAAQ,IACV,MAAbkhiB,IAAmBA,EAAqB,KAATpthB,EAAc,IAAM,KAC9B,oBAAdothB,IACHpthB,EAAO,GAA4D,OAArDothB,EAAYD,GAAgBC,IAAYjiiB,YAAmBiiiB,EAAUnyjB,MAAO,GAChGmyjB,EAAYjykB,GAAOiykB,IAEjBlhiB,IAAU0jC,IAAU,OAAOw9f,EAC/B,MAAMt0kB,EAAIY,KAAKwhB,IAAI,EAAG8kC,EAAO9T,EAAQ8tG,EAAM4tb,QAAQvukB,QACnD,OAAOyF,IACL,IAAI1F,EAAI0F,EAAI2wkB,EAAK/1kB,KAAK22B,MAAMm/iB,EAAK1wkB,KAEjC,OADI1F,EAAI4mD,EAAOA,EAAO,KAAK5mD,GAAK4mD,GACzB5mD,GAAKN,EAAIs0kB,EAAUtukB,GAAK,EAAE,CAClC,EAGHk7I,EAAM80b,KAAO,IACJ13jB,EAAO03jB,GAAK13jB,IAAU,CAC3Bzd,MAAOkpB,GAAK4sjB,EAAK/1kB,KAAKC,MAAM61kB,EAAK3sjB,KACjCte,KAAMse,GAAK4sjB,EAAK/1kB,KAAK6K,KAAKirkB,EAAK3sjB,QAI5Bm3H,CACT,CAEe,SAASj1F,KACtB,MAAMi1F,EAAQu1b,GAAQ3C,MAAex1jB,OAAO,CAAC,EAAG,KAGhD,OAFA4iI,EAAM3mD,KAAO,IAAMA,GAAK2mD,EAAOj1F,MAAO/E,KAAKg6F,EAAMh6F,QACjDghhB,GAAUzujB,MAAMynI,EAAOryI,WAChBqyI,CACT,CCvIA,SAAS61b,GAAgBv9jB,GACvB,OAAO,SAASuQ,GACd,OAAOnpB,KAAKglH,KAAK77F,GAAKnpB,KAAKo2kB,MAAMp2kB,KAAK6E,IAAIskB,EAAIvQ,GAChD,CACF,CAEA,SAASy9jB,GAAgBz9jB,GACvB,OAAO,SAASuQ,GACd,OAAOnpB,KAAKglH,KAAK77F,GAAKnpB,KAAKs2kB,MAAMt2kB,KAAK6E,IAAIskB,IAAMvQ,CAClD,CACF,CAEO,SAAS29jB,GAAUx4f,GACxB,IAAInlE,EAAI,EAAG0nI,EAAQviE,EAAUo4f,GAAgBv9jB,GAAIy9jB,GAAgBz9jB,IAMjE,OAJA0nI,EAAMhpD,SAAW,SAAS3nE,GACxB,OAAO1hB,UAAUtO,OAASo+E,EAAUo4f,GAAgBv9jB,GAAK+W,GAAI0mjB,GAAgBz9jB,IAAMA,CACrF,EAEOu8jB,GAAU70b,EACnB,CAEe,SAASk2b,KACtB,IAAIl2b,EAAQi2b,GAAUrD,MAMtB,OAJA5yb,EAAM3mD,KAAO,WACX,OAAOA,GAAK2mD,EAAOk2b,MAAUl/e,SAASgpD,EAAMhpD,WAC9C,EAEOgwe,GAAUzujB,MAAMynI,EAAOryI,UAChC,CC9BA,SAASwokB,GAAalxd,GACpB,OAAO,SAASp8F,GACd,OAAOA,EAAI,GAAKnpB,KAAKylH,KAAKt8F,EAAGo8F,GAAYvlH,KAAKylH,IAAIt8F,EAAGo8F,EACvD,CACF,CAEA,SAASmxd,GAAcvtjB,GACrB,OAAOA,EAAI,GAAKnpB,KAAKs4H,MAAMnvG,GAAKnpB,KAAKs4H,KAAKnvG,EAC5C,CAEA,SAASwtjB,GAAgBxtjB,GACvB,OAAOA,EAAI,GAAKA,EAAIA,EAAIA,EAAIA,CAC9B,CAEO,SAASytjB,GAAO74f,GACrB,IAAIuiE,EAAQviE,EAAUlmD,GAAUA,IAC5B0tF,EAAW,EAYf,OAJA+6B,EAAM/6B,SAAW,SAAS51F,GACxB,OAAO1hB,UAAUtO,OANG,KAMO4lH,GAAY51F,GANfouD,EAAUlmD,GAAUA,IACzB,KAAb0tF,EAAmBxnC,EAAU24f,GAAeC,IAC5C54f,EAAU04f,GAAalxd,GAAWkxd,GAAa,EAAIlxd,IAIFA,CACzD,EAEO4vd,GAAU70b,EACnB,CAEe,SAAS76B,KACtB,IAAI66B,EAAQs2b,GAAO1D,MAQnB,OANA5yb,EAAM3mD,KAAO,WACX,OAAOA,GAAK2mD,EAAO76B,MAAOF,SAAS+6B,EAAM/6B,WAC3C,EAEA+hd,GAAUzujB,MAAMynI,EAAOryI,WAEhBqyI,CACT,CAEO,SAAShoB,KACd,OAAO7S,GAAI5sG,MAAM,KAAM5K,WAAWs3G,SAAS,GAC7C,CC5CA,SAASq7E,GAAOz3K,GACd,OAAOnpB,KAAKglH,KAAK77F,GAAKA,EAAIA,CAC5B,CAMe,SAAS0tjB,KACtB,IAGI7O,EAHA8O,EAAUvD,KACV1hjB,EAAQ,CAAC,EAAG,GACZ8E,GAAQ,EAGZ,SAAS2pH,EAAMn3H,GACb,IAAIoK,EAXR,SAAkBpK,GAChB,OAAOnpB,KAAKglH,KAAK77F,GAAKnpB,KAAKs4H,KAAKt4H,KAAK6E,IAAIskB,GAC3C,CASY4tjB,CAASD,EAAQ3tjB,IACzB,OAAOxH,MAAM4R,GAAKy0iB,EAAUrxiB,EAAQ32B,KAAK22B,MAAMpD,GAAKA,CACtD,CAuCA,OArCA+sH,EAAM35C,OAAS,SAASpzE,GACtB,OAAOujjB,EAAQnwe,OAAOi6F,GAAOrtK,GAC/B,EAEA+sH,EAAM5iI,OAAS,SAASiS,GACtB,OAAO1hB,UAAUtO,QAAUm3kB,EAAQp5jB,OAAOiS,GAAI2wH,GAASw2b,EAAQp5jB,QACjE,EAEA4iI,EAAMzuH,MAAQ,SAASlC,GACrB,OAAO1hB,UAAUtO,QAAUm3kB,EAAQjljB,OAAOA,EAAQxyB,MAAM8J,KAAKwmB,EAAG2oB,KAASzsC,IAAI+0L,KAAUtgD,GAASzuH,EAAMruB,OACxG,EAEA88I,EAAMkob,WAAa,SAAS74iB,GAC1B,OAAO2wH,EAAMzuH,MAAMlC,GAAGgH,OAAM,EAC9B,EAEA2pH,EAAM3pH,MAAQ,SAAShH,GACrB,OAAO1hB,UAAUtO,QAAUg3B,IAAUhH,EAAG2wH,GAAS3pH,CACnD,EAEA2pH,EAAM9yC,MAAQ,SAAS79E,GACrB,OAAO1hB,UAAUtO,QAAUm3kB,EAAQtpe,MAAM79E,GAAI2wH,GAASw2b,EAAQtpe,OAChE,EAEA8yC,EAAM0nb,QAAU,SAASr4iB,GACvB,OAAO1hB,UAAUtO,QAAUqokB,EAAUr4iB,EAAG2wH,GAAS0nb,CACnD,EAEA1nb,EAAM3mD,KAAO,WACX,OAAOk9e,GAAOC,EAAQp5jB,SAAUmU,GAC3B8E,MAAMA,GACN62E,MAAMspe,EAAQtpe,SACdw6d,QAAQA,EACf,EAEAV,GAAUzujB,MAAMynI,EAAOryI,WAEhBknkB,GAAU70b,EACnB,CC9De,SAAS9+H,GAAI3M,EAAQmikB,GAClC,IAAIx1jB,EACJ,QAAgB/V,IAAZurkB,EACF,IAAK,MAAM55kB,KAASyX,EACL,MAATzX,IACIokB,EAAMpkB,QAAkBqO,IAAR+V,GAAqBpkB,GAASA,KACpDokB,EAAMpkB,OAGL,CACL,IAAIsR,GAAS,EACb,IAAK,IAAItR,KAASyX,EACiC,OAA5CzX,EAAQ45kB,EAAQ55kB,IAASsR,EAAOmG,MAC7B2M,EAAMpkB,QAAkBqO,IAAR+V,GAAqBpkB,GAASA,KACpDokB,EAAMpkB,EAGZ,CACA,OAAOokB,CACT,CCnBe,SAASC,GAAI5M,EAAQmikB,GAClC,IAAIv1jB,EACJ,QAAgBhW,IAAZurkB,EACF,IAAK,MAAM55kB,KAASyX,EACL,MAATzX,IACIqkB,EAAMrkB,QAAkBqO,IAARgW,GAAqBrkB,GAASA,KACpDqkB,EAAMrkB,OAGL,CACL,IAAIsR,GAAS,EACb,IAAK,IAAItR,KAASyX,EACiC,OAA5CzX,EAAQ45kB,EAAQ55kB,IAASsR,EAAOmG,MAC7B4M,EAAMrkB,QAAkBqO,IAARgW,GAAqBrkB,GAASA,KACpDqkB,EAAMrkB,EAGZ,CACA,OAAOqkB,CACT,CCOO,SAASw1jB,KAAoC,IAArB1ngB,EAAOthE,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAGogkB,GACvC,GAAI9+f,IAAY8+f,GAAW,OAAO6I,GAClC,GAAuB,oBAAZ3ngB,EAAwB,MAAM,IAAIniE,UAAU,6BACvD,MAAO,CAACsL,EAAGC,KACT,MAAMwQ,EAAIomD,EAAQ72D,EAAGC,GACrB,OAAIwQ,GAAW,IAANA,EAAgBA,GACC,IAAlBomD,EAAQ52D,EAAGA,KAA+B,IAAlB42D,EAAQ72D,EAAGA,GAAS,CAExD,CAEO,SAASw+jB,GAAiBx+jB,EAAGC,GAClC,OAAa,MAALD,KAAeA,GAAKA,KAAY,MAALC,KAAeA,GAAKA,MAAQD,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAI,EAC1F,CClCe,SAASw+jB,GAAY9mkB,EAAOjR,GAAwC,IAArCS,EAAIoO,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,EAAGjE,EAAKiE,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAGioE,IAAU3G,EAAOthE,UAAAtO,OAAA,EAAAsO,UAAA,QAAAxC,EAK/E,GAJArM,EAAIY,KAAKC,MAAMb,GACfS,EAAOG,KAAKC,MAAMD,KAAKwhB,IAAI,EAAG3hB,IAC9BmK,EAAQhK,KAAKC,MAAMD,KAAKyhB,IAAIpR,EAAM1Q,OAAS,EAAGqK,MAExCnK,GAAQT,GAAKA,GAAK4K,GAAQ,OAAOqG,EAIvC,IAFAk/D,OAAsB9jE,IAAZ8jE,EAAwB2ngB,GAAmBD,GAAe1ngB,GAE7DvlE,EAAQnK,GAAM,CACnB,GAAImK,EAAQnK,EAAO,IAAK,CACtB,MAAM4H,EAAIuC,EAAQnK,EAAO,EACnB4zB,EAAIr0B,EAAIS,EAAO,EACf8zB,EAAI3zB,KAAKqrD,IAAI5jD,GACb0qB,EAAI,GAAMnyB,KAAKwlH,IAAI,EAAI7xF,EAAI,GAC3Bm9B,EAAK,GAAM9wD,KAAKs4H,KAAK3kG,EAAIxB,GAAK1qB,EAAI0qB,GAAK1qB,IAAMgsB,EAAIhsB,EAAI,EAAI,GAAK,EAAI,GAGxE0vkB,GAAY9mkB,EAAOjR,EAFHY,KAAKwhB,IAAI3hB,EAAMG,KAAKC,MAAMb,EAAIq0B,EAAItB,EAAI1qB,EAAIqpD,IACzC9wD,KAAKyhB,IAAIzX,EAAOhK,KAAKC,MAAMb,GAAKqI,EAAIgsB,GAAKtB,EAAI1qB,EAAIqpD,IACzBye,EAC3C,CAEA,MAAMr9C,EAAI7hB,EAAMjR,GAChB,IAAIM,EAAIG,EACJwc,EAAIrS,EAKR,IAHAotkB,GAAK/mkB,EAAOxQ,EAAMT,GACdmwE,EAAQl/D,EAAMrG,GAAQkoB,GAAK,GAAGkljB,GAAK/mkB,EAAOxQ,EAAMmK,GAE7CtK,EAAI2c,GAAG,CAEZ,IADA+6jB,GAAK/mkB,EAAO3Q,EAAG2c,KAAM3c,IAAK2c,EACnBkzD,EAAQl/D,EAAM3Q,GAAIwyB,GAAK,KAAKxyB,EACnC,KAAO6vE,EAAQl/D,EAAMgM,GAAI6V,GAAK,KAAK7V,CACrC,CAEgC,IAA5BkzD,EAAQl/D,EAAMxQ,GAAOqyB,GAAUkljB,GAAK/mkB,EAAOxQ,EAAMwc,MAC9CA,EAAG+6jB,GAAK/mkB,EAAOgM,EAAGrS,IAErBqS,GAAKjd,IAAGS,EAAOwc,EAAI,GACnBjd,GAAKid,IAAGrS,EAAQqS,EAAI,EAC1B,CAEA,OAAOhM,CACT,CAEA,SAAS+mkB,GAAK/mkB,EAAO3Q,EAAG2c,GACtB,MAAM6V,EAAI7hB,EAAM3Q,GAChB2Q,EAAM3Q,GAAK2Q,EAAMgM,GACjBhM,EAAMgM,GAAK6V,CACb,CC3Ce,SAASmljB,GAASxikB,EAAQgR,EAAGmxjB,GAE1C,GADAnikB,EAAS03L,aAAapjM,K/CNjB,UAAkB0L,EAAQmikB,GAC/B,QAAgBvrkB,IAAZurkB,EACF,IAAK,IAAI55kB,KAASyX,EACH,MAATzX,IAAkBA,GAASA,IAAUA,UACjCA,OAGL,CACL,IAAIsR,GAAS,EACb,IAAK,IAAItR,KAASyX,EACiC,OAA5CzX,EAAQ45kB,EAAQ55kB,IAASsR,EAAOmG,MAAqBzX,GAASA,IAAUA,UACrEA,EAGZ,CACF,C+CT6BswI,CAAQ74H,EAAQmikB,KACrCvvkB,EAAIoN,EAAOlV,UAAWgiB,MAAMkE,GAAKA,GAAvC,CACA,GAAIA,GAAK,GAAKpe,EAAI,EAAG,OAAOga,GAAI5M,GAChC,GAAIgR,GAAK,EAAG,OAAOrE,GAAI3M,GACvB,IAAIpN,EACA/H,GAAK+H,EAAI,GAAKoe,EACdu5J,EAAKp/K,KAAKC,MAAMP,GAChB43kB,EAAS91jB,GAAI21jB,GAAYtikB,EAAQuqK,GAAItC,SAAS,EAAGsC,EAAK,IAE1D,OAAOk4Z,GADM71jB,GAAI5M,EAAOioK,SAASsC,EAAK,IACZk4Z,IAAW53kB,EAAI0/K,EARQ,CASnD,CAEO,SAASm4Z,GAAe1ikB,EAAQgR,GAAqB,IAAlBmxjB,EAAO/okB,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAGqqC,GAClD,IAAM7wC,EAAIoN,EAAOlV,UAAWgiB,MAAMkE,GAAKA,GAAvC,CACA,GAAIA,GAAK,GAAKpe,EAAI,EAAG,OAAQuvkB,EAAQnikB,EAAO,GAAI,EAAGA,GACnD,GAAIgR,GAAK,EAAG,OAAQmxjB,EAAQnikB,EAAOpN,EAAI,GAAIA,EAAI,EAAGoN,GAClD,IAAIpN,EACA/H,GAAK+H,EAAI,GAAKoe,EACdu5J,EAAKp/K,KAAKC,MAAMP,GAChB43kB,GAAUN,EAAQnikB,EAAOuqK,GAAKA,EAAIvqK,GAEtC,OAAOyikB,IADON,EAAQnikB,EAAOuqK,EAAK,GAAIA,EAAK,EAAGvqK,GACpByikB,IAAW53kB,EAAI0/K,EARQ,CASnD,CC7Be,SAASi4Z,KACtB,IAGIrP,EAHAtqjB,EAAS,GACTmU,EAAQ,GACRyjJ,EAAa,GAGjB,SAASizZ,IACP,IAAI7okB,EAAI,EAAG+H,EAAIzH,KAAKwhB,IAAI,EAAGqQ,EAAMlyB,QAEjC,IADA21K,EAAa,IAAIj2K,MAAMoI,EAAI,KAClB/H,EAAI+H,GAAG6tK,EAAW51K,EAAI,GAAKm2K,GAAUn4J,EAAQhe,EAAI+H,GAC1D,OAAO64I,CACT,CAEA,SAASA,EAAMn3H,GACb,OAAY,MAALA,GAAaxH,MAAMwH,GAAKA,GAAK6+iB,EAAUn2iB,EAAMohjB,GAAO39Z,EAAYnsJ,GACzE,CAqCA,OAnCAm3H,EAAMk3b,aAAe,SAASjkjB,GAC5B,IAAI7zB,EAAImyB,EAAM3uB,QAAQqwB,GACtB,OAAO7zB,EAAI,EAAI,CAACulB,IAAKA,KAAO,CAC1BvlB,EAAI,EAAI41K,EAAW51K,EAAI,GAAKge,EAAO,GACnChe,EAAI41K,EAAW31K,OAAS21K,EAAW51K,GAAKge,EAAOA,EAAO/d,OAAS,GAEnE,EAEA2gJ,EAAM5iI,OAAS,SAASiS,GACtB,IAAK1hB,UAAUtO,OAAQ,OAAO+d,EAAOla,QACrCka,EAAS,GACT,IAAK,IAAItY,KAAKuqB,EAAY,MAALvqB,GAAcuc,MAAMvc,GAAKA,IAAIsY,EAAOrd,KAAK+E,GAE9D,OADAsY,EAAO2V,KAAKg7iB,IACL9F,GACT,EAEAjob,EAAMzuH,MAAQ,SAASlC,GACrB,OAAO1hB,UAAUtO,QAAUkyB,EAAQxyB,MAAM8J,KAAKwmB,GAAI44iB,KAAa12iB,EAAMruB,OACvE,EAEA88I,EAAM0nb,QAAU,SAASr4iB,GACvB,OAAO1hB,UAAUtO,QAAUqokB,EAAUr4iB,EAAG2wH,GAAS0nb,CACnD,EAEA1nb,EAAMm3b,UAAY,WAChB,OAAOnia,EAAW9xK,OACpB,EAEA88I,EAAM3mD,KAAO,WACX,OAAO09e,KACF35jB,OAAOA,GACPmU,MAAMA,GACNm2iB,QAAQA,EACf,EAEOV,GAAUzujB,MAAMynI,EAAOryI,UAChC,CCpDe,SAASypkB,KACtB,IAKI1P,EALAtkb,EAAK,EACL10G,EAAK,EACLvnC,EAAI,EACJiW,EAAS,CAAC,IACVmU,EAAQ,CAAC,EAAG,GAGhB,SAASyuH,EAAMn3H,GACb,OAAY,MAALA,GAAaA,GAAKA,EAAI0I,EAAMohjB,GAAOv1jB,EAAQyL,EAAG,EAAG1hB,IAAMugkB,CAChE,CAEA,SAASO,IACP,IAAI7okB,GAAK,EAET,IADAge,EAAS,IAAIre,MAAMoI,KACV/H,EAAI+H,GAAGiW,EAAOhe,KAAOA,EAAI,GAAKsvC,GAAMtvC,EAAI+H,GAAKi8I,IAAOj8I,EAAI,GACjE,OAAO64I,CACT,CAiCA,OA/BAA,EAAM5iI,OAAS,SAASiS,GACtB,OAAO1hB,UAAUtO,SAAW+jJ,EAAI10G,GAAMrf,EAAG+zH,GAAMA,EAAI10G,GAAMA,EAAIu5hB,KAAa,CAAC7kb,EAAI10G,EACjF,EAEAsxG,EAAMzuH,MAAQ,SAASlC,GACrB,OAAO1hB,UAAUtO,QAAU8H,GAAKoqB,EAAQxyB,MAAM8J,KAAKwmB,IAAIhwB,OAAS,EAAG4okB,KAAa12iB,EAAMruB,OACxF,EAEA88I,EAAMk3b,aAAe,SAASjkjB,GAC5B,IAAI7zB,EAAImyB,EAAM3uB,QAAQqwB,GACtB,OAAO7zB,EAAI,EAAI,CAACulB,IAAKA,KACfvlB,EAAI,EAAI,CAACgkJ,EAAIhmI,EAAO,IACpBhe,GAAK+H,EAAI,CAACiW,EAAOjW,EAAI,GAAIunC,GACzB,CAACtxB,EAAOhe,EAAI,GAAIge,EAAOhe,GAC/B,EAEA4gJ,EAAM0nb,QAAU,SAASr4iB,GACvB,OAAO1hB,UAAUtO,QAAUqokB,EAAUr4iB,EAAG2wH,GAASA,CACnD,EAEAA,EAAMg1B,WAAa,WACjB,OAAO53J,EAAOla,OAChB,EAEA88I,EAAM3mD,KAAO,WACX,OAAO+9e,KACFh6jB,OAAO,CAACgmI,EAAI10G,IACZnd,MAAMA,GACNm2iB,QAAQA,EACf,EAEOV,GAAUzujB,MAAMs8jB,GAAU70b,GAAQryI,UAC3C,CCpDe,SAAS4nK,KACtB,IAEImyZ,EAFAtqjB,EAAS,CAAC,IACVmU,EAAQ,CAAC,EAAG,GAEZpqB,EAAI,EAER,SAAS64I,EAAMn3H,GACb,OAAY,MAALA,GAAaA,GAAKA,EAAI0I,EAAMohjB,GAAOv1jB,EAAQyL,EAAG,EAAG1hB,IAAMugkB,CAChE,CA0BA,OAxBA1nb,EAAM5iI,OAAS,SAASiS,GACtB,OAAO1hB,UAAUtO,QAAU+d,EAASre,MAAM8J,KAAKwmB,GAAIloB,EAAIzH,KAAKyhB,IAAI/D,EAAO/d,OAAQkyB,EAAMlyB,OAAS,GAAI2gJ,GAAS5iI,EAAOla,OACpH,EAEA88I,EAAMzuH,MAAQ,SAASlC,GACrB,OAAO1hB,UAAUtO,QAAUkyB,EAAQxyB,MAAM8J,KAAKwmB,GAAIloB,EAAIzH,KAAKyhB,IAAI/D,EAAO/d,OAAQkyB,EAAMlyB,OAAS,GAAI2gJ,GAASzuH,EAAMruB,OAClH,EAEA88I,EAAMk3b,aAAe,SAASjkjB,GAC5B,IAAI7zB,EAAImyB,EAAM3uB,QAAQqwB,GACtB,MAAO,CAAC7V,EAAOhe,EAAI,GAAIge,EAAOhe,GAChC,EAEA4gJ,EAAM0nb,QAAU,SAASr4iB,GACvB,OAAO1hB,UAAUtO,QAAUqokB,EAAUr4iB,EAAG2wH,GAAS0nb,CACnD,EAEA1nb,EAAM3mD,KAAO,WACX,OAAOk8E,KACFn4J,OAAOA,GACPmU,MAAMA,GACNm2iB,QAAQA,EACf,EAEOV,GAAUzujB,MAAMynI,EAAOryI,UAChC,CtBzBEukB,GAASmljB,GAPG,CACZzD,UAAW,IACXD,SAAU,CAAC,GACXv0I,SAAU,CAAC,IAAK,MAKhBj+b,GAAS+wB,GAAO/wB,OAChBuykB,GAAexhjB,GAAOwhjB,auBfjB,MAAM4D,GAAiB,IACjBC,GAAiBD,IACjBE,GAAeD,KACfE,GAAcD,MACdE,GAAeD,OACfE,GAAgBF,OAChBG,GAAeH,QCNtBj3R,GAAK,IAAInsR,KAAMo4F,GAAK,IAAIp4F,KAEvB,SAASwjjB,GAAaC,EAAQC,EAAS7liB,EAAO/B,GAEnD,SAASkjG,EAAS9/G,GAChB,OAAOukjB,EAAOvkjB,EAA4B,IAArB5lB,UAAUtO,OAAe,IAAIg1B,KAAO,IAAIA,MAAMd,IAAQA,CAC7E,CA6DA,OA3DA8/G,EAAS1zI,MAAS4zB,IACTukjB,EAAOvkjB,EAAO,IAAIc,MAAMd,IAAQA,GAGzC8/G,EAAS9oI,KAAQgpB,IACRukjB,EAAOvkjB,EAAO,IAAIc,KAAKd,EAAO,IAAKwkjB,EAAQxkjB,EAAM,GAAIukjB,EAAOvkjB,GAAOA,GAG5E8/G,EAASh9G,MAAS9C,IAChB,MAAMi/iB,EAAKn/b,EAAS9/G,GAAOk/iB,EAAKp/b,EAAS9oI,KAAKgpB,GAC9C,OAAOA,EAAOi/iB,EAAKC,EAAKl/iB,EAAOi/iB,EAAKC,CAAE,EAGxCp/b,EAASr6E,OAAS,CAACzlC,EAAM+qD,KAChBy5f,EAAQxkjB,EAAO,IAAIc,MAAMd,GAAe,MAAR+qD,EAAe,EAAI5+E,KAAKC,MAAM2+E,IAAQ/qD,GAG/E8/G,EAAS9hH,MAAQ,CAACxQ,EAAOu1G,EAAMh4C,KAC7B,MAAM/sD,EAAQ,GAGd,GAFAxQ,EAAQsyH,EAAS9oI,KAAKwW,GACtBu9D,EAAe,MAARA,EAAe,EAAI5+E,KAAKC,MAAM2+E,KAC/Bv9D,EAAQu1G,MAAWh4C,EAAO,GAAI,OAAO/sD,EAC3C,IAAIsI,EACJ,GAAGtI,EAAMxxB,KAAK85B,EAAW,IAAIxF,MAAMtT,IAASg3jB,EAAQh3jB,EAAOu9D,GAAOw5f,EAAO/2jB,SAClE8Y,EAAW9Y,GAASA,EAAQu1G,GACnC,OAAO/kG,CAAK,EAGd8hH,EAAShkI,OAAU6L,GACV28jB,IAActkjB,IACnB,GAAIA,GAAQA,EAAM,KAAOukjB,EAAOvkjB,IAAQrY,EAAKqY,IAAOA,EAAK01I,QAAQ11I,EAAO,EAAE,IACzE,CAACA,EAAM+qD,KACR,GAAI/qD,GAAQA,EACV,GAAI+qD,EAAO,EAAG,OAASA,GAAQ,GAC7B,KAAOy5f,EAAQxkjB,GAAO,IAAKrY,EAAKqY,UAC3B,OAAS+qD,GAAQ,GACtB,KAAOy5f,EAAQxkjB,EAAM,IAAMrY,EAAKqY,KAEpC,IAIA2e,IACFmhG,EAASnhG,MAAQ,CAACnxB,EAAOC,KACvBw/R,GAAGv3I,SAASloJ,GAAQ0rG,GAAGw8C,SAASjoJ,GAChC82jB,EAAOt3R,IAAKs3R,EAAOrrd,IACZ/sH,KAAKC,MAAMuyC,EAAMsuQ,GAAI/zL,MAG9B4mB,EAAS9jI,MAAS+uE,IAChBA,EAAO5+E,KAAKC,MAAM2+E,GACV0L,SAAS1L,IAAWA,EAAO,EAC3BA,EAAO,EACT+0D,EAAShkI,OAAO8gC,EACXrrC,GAAMqrC,EAAMrrC,GAAKw5E,IAAS,EAC1Bx5E,GAAMuuI,EAASnhG,MAAM,EAAGptC,GAAKw5E,IAAS,GAH7B+0D,EADoB,OAQrCA,CACT,CClEO,MAAM6e,GAAc2lb,IAAa,SAErC,CAACtkjB,EAAM+qD,KACR/qD,EAAK01I,SAAS11I,EAAO+qD,EAAK,IACzB,CAACv9D,EAAOC,IACFA,EAAMD,IAIfmxI,GAAY3iJ,MAASzQ,IACnBA,EAAIY,KAAKC,MAAMb,GACVkrF,SAASlrF,IAAQA,EAAI,EACpBA,EAAI,EACH+4kB,IAActkjB,IACnBA,EAAK01I,QAAQvpK,KAAKC,MAAM4zB,EAAOz0B,GAAKA,EAAE,IACrC,CAACy0B,EAAM+qD,KACR/qD,EAAK01I,SAAS11I,EAAO+qD,EAAOx/E,EAAE,IAC7B,CAACiiB,EAAOC,KACDA,EAAMD,GAASjiB,IANJozJ,GADgB,MAWXA,GAAY3gI,MAAjC,MCrBMjR,GAASu3jB,IAActkjB,IAClCA,EAAK01I,QAAQ11I,EAAOA,EAAKgC,kBAAkB,IAC1C,CAAChC,EAAM+qD,KACR/qD,EAAK01I,SAAS11I,EAAO+qD,EAAOg5f,GAAe,IAC1C,CAACv2jB,EAAOC,KACDA,EAAMD,GAASu2jB,KACrB/jjB,GACKA,EAAKikI,kBCPDwgb,IDUU13jB,GAAOiR,MCVJsmjB,IAActkjB,IACtCA,EAAK01I,QAAQ11I,EAAOA,EAAKgC,kBAAoBhC,EAAK8B,aAAeiijB,GAAe,IAC/E,CAAC/jjB,EAAM+qD,KACR/qD,EAAK01I,SAAS11I,EAAO+qD,EAAOi5f,GAAe,IAC1C,CAACx2jB,EAAOC,KACDA,EAAMD,GAASw2jB,KACrBhkjB,GACKA,EAAK4B,gBAKD8ijB,IAFcD,GAAWzmjB,MAEbsmjB,IAActkjB,IACrCA,EAAK0kI,cAAc,EAAG,EAAE,IACvB,CAAC1kI,EAAM+qD,KACR/qD,EAAK01I,SAAS11I,EAAO+qD,EAAOi5f,GAAe,IAC1C,CAACx2jB,EAAOC,KACDA,EAAMD,GAASw2jB,KACrBhkjB,GACKA,EAAKkkI,mBCnBDygb,IDsBaD,GAAU1mjB,MCtBZsmjB,IAActkjB,IACpCA,EAAK01I,QAAQ11I,EAAOA,EAAKgC,kBAAoBhC,EAAK8B,aAAeiijB,GAAiB/jjB,EAAK4B,aAAeoijB,GAAe,IACpH,CAAChkjB,EAAM+qD,KACR/qD,EAAK01I,SAAS11I,EAAO+qD,EAAOk5f,GAAa,IACxC,CAACz2jB,EAAOC,KACDA,EAAMD,GAASy2jB,KACrBjkjB,GACKA,EAAK0B,cAKDkjjB,IAFYD,GAAS3mjB,MAEXsmjB,IAActkjB,IACnCA,EAAK4kI,cAAc,EAAG,EAAG,EAAE,IAC1B,CAAC5kI,EAAM+qD,KACR/qD,EAAK01I,SAAS11I,EAAO+qD,EAAOk5f,GAAa,IACxC,CAACz2jB,EAAOC,KACDA,EAAMD,GAASy2jB,KACrBjkjB,GACKA,EAAKmkI,iBCnBD0gb,IDsBWD,GAAQ5mjB,MCtBTsmjB,IACrBtkjB,GAAQA,EAAK+kI,SAAS,EAAG,EAAG,EAAG,KAC/B,CAAC/kI,EAAM+qD,IAAS/qD,EAAKilI,QAAQjlI,EAAKsB,UAAYypD,KAC9C,CAACv9D,EAAOC,KAASA,EAAMD,GAASC,EAAIwV,oBAAsBzV,EAAMyV,qBAAuB+gjB,IAAkBE,KACzGlkjB,GAAQA,EAAKsB,UAAY,KAKdwjjB,IAFWD,GAAQ7mjB,MAEVsmjB,IAActkjB,IAClCA,EAAK8kI,YAAY,EAAG,EAAG,EAAG,EAAE,IAC3B,CAAC9kI,EAAM+qD,KACR/qD,EAAKglI,WAAWhlI,EAAKokI,aAAer5E,EAAK,IACxC,CAACv9D,EAAOC,KACDA,EAAMD,GAAS02jB,KACrBlkjB,GACKA,EAAKokI,aAAe,KAKhB2gb,IAFUD,GAAO9mjB,MAEPsmjB,IAActkjB,IACnCA,EAAK8kI,YAAY,EAAG,EAAG,EAAG,EAAE,IAC3B,CAAC9kI,EAAM+qD,KACR/qD,EAAKglI,WAAWhlI,EAAKokI,aAAer5E,EAAK,IACxC,CAACv9D,EAAOC,KACDA,EAAMD,GAAS02jB,KACrBlkjB,GACK7zB,KAAKC,MAAM4zB,EAAOkkjB,OAGHa,GAAQ/mjB,MC/BhC,SAASgnjB,GAAYn5kB,GACnB,OAAOy4kB,IAActkjB,IACnBA,EAAKilI,QAAQjlI,EAAKsB,WAAatB,EAAKwB,SAAW,EAAI31B,GAAK,GACxDm0B,EAAK+kI,SAAS,EAAG,EAAG,EAAG,EAAE,IACxB,CAAC/kI,EAAM+qD,KACR/qD,EAAKilI,QAAQjlI,EAAKsB,UAAmB,EAAPypD,EAAS,IACtC,CAACv9D,EAAOC,KACDA,EAAMD,GAASC,EAAIwV,oBAAsBzV,EAAMyV,qBAAuB+gjB,IAAkBG,IAEpG,CAEO,MAAMc,GAAaD,GAAY,GACzBE,GAAaF,GAAY,GACzBG,GAAcH,GAAY,GAC1BI,GAAgBJ,GAAY,GAC5BK,GAAeL,GAAY,GAC3BM,GAAaN,GAAY,GACzBO,GAAeP,GAAY,GAEbC,GAAWjnjB,MACXknjB,GAAWlnjB,MACVmnjB,GAAYnnjB,MACVonjB,GAAcpnjB,MACfqnjB,GAAarnjB,MACfsnjB,GAAWtnjB,MACTunjB,GAAavnjB,MAE1C,SAASwnjB,GAAW35kB,GAClB,OAAOy4kB,IAActkjB,IACnBA,EAAKglI,WAAWhlI,EAAKokI,cAAgBpkI,EAAKqkI,YAAc,EAAIx4J,GAAK,GACjEm0B,EAAK8kI,YAAY,EAAG,EAAG,EAAG,EAAE,IAC3B,CAAC9kI,EAAM+qD,KACR/qD,EAAKglI,WAAWhlI,EAAKokI,aAAsB,EAAPr5E,EAAS,IAC5C,CAACv9D,EAAOC,KACDA,EAAMD,GAAS22jB,IAE3B,CAEO,MAAMsB,GAAYD,GAAW,GACvBE,GAAYF,GAAW,GACvBG,GAAaH,GAAW,GACxBI,GAAeJ,GAAW,GAC1BK,GAAcL,GAAW,GACzBM,GAAYN,GAAW,GACvBO,GAAcP,GAAW,GC7CzBQ,ID+CaP,GAAUznjB,MACV0njB,GAAU1njB,MACT2njB,GAAW3njB,MACT4njB,GAAa5njB,MACd6njB,GAAY7njB,MACd8njB,GAAU9njB,MACR+njB,GAAY/njB,MCrDfsmjB,IAActkjB,IACrCA,EAAKilI,QAAQ,GACbjlI,EAAK+kI,SAAS,EAAG,EAAG,EAAG,EAAE,IACxB,CAAC/kI,EAAM+qD,KACR/qD,EAAKgnI,SAAShnI,EAAKoB,WAAa2pD,EAAK,IACpC,CAACv9D,EAAOC,IACFA,EAAI2T,WAAa5T,EAAM4T,WAAyD,IAA3C3T,EAAIyT,cAAgB1T,EAAM0T,iBACpElB,GACKA,EAAKoB,cAKD6kjB,IAFaD,GAAUhojB,MAEZsmjB,IAActkjB,IACpCA,EAAKglI,WAAW,GAChBhlI,EAAK8kI,YAAY,EAAG,EAAG,EAAG,EAAE,IAC3B,CAAC9kI,EAAM+qD,KACR/qD,EAAKinI,YAAYjnI,EAAKskI,cAAgBv5E,EAAK,IAC1C,CAACv9D,EAAOC,IACFA,EAAI62I,cAAgB92I,EAAM82I,cAAkE,IAAjD72I,EAAI82I,iBAAmB/2I,EAAM+2I,oBAC7EvkI,GACKA,EAAKskI,iBCrBD4hb,IDwBYD,GAASjojB,MCxBVsmjB,IAActkjB,IACpCA,EAAKgnI,SAAS,EAAG,GACjBhnI,EAAK+kI,SAAS,EAAG,EAAG,EAAG,EAAE,IACxB,CAAC/kI,EAAM+qD,KACR/qD,EAAKmlI,YAAYnlI,EAAKkB,cAAgB6pD,EAAK,IAC1C,CAACv9D,EAAOC,IACFA,EAAIyT,cAAgB1T,EAAM0T,gBAC/BlB,GACKA,EAAKkB,iBAIdgljB,GAASlqkB,MAASzQ,GACRkrF,SAASlrF,EAAIY,KAAKC,MAAMb,KAASA,EAAI,EAAY+4kB,IAActkjB,IACrEA,EAAKmlI,YAAYh5J,KAAKC,MAAM4zB,EAAKkB,cAAgB31B,GAAKA,GACtDy0B,EAAKgnI,SAAS,EAAG,GACjBhnI,EAAK+kI,SAAS,EAAG,EAAG,EAAG,EAAE,IACxB,CAAC/kI,EAAM+qD,KACR/qD,EAAKmlI,YAAYnlI,EAAKkB,cAAgB6pD,EAAOx/E,EAAE,IALC,KAS3B26kB,GAASlojB,MAA3B,MAEMmojB,GAAU7B,IAActkjB,IACnCA,EAAKinI,YAAY,EAAG,GACpBjnI,EAAK8kI,YAAY,EAAG,EAAG,EAAG,EAAE,IAC3B,CAAC9kI,EAAM+qD,KACR/qD,EAAKklI,eAAellI,EAAKukI,iBAAmBx5E,EAAK,IAChD,CAACv9D,EAAOC,IACFA,EAAI82I,iBAAmB/2I,EAAM+2I,mBAClCvkI,GACKA,EAAKukI,mBAId4hb,GAAQnqkB,MAASzQ,GACPkrF,SAASlrF,EAAIY,KAAKC,MAAMb,KAASA,EAAI,EAAY+4kB,IAActkjB,IACrEA,EAAKklI,eAAe/4J,KAAKC,MAAM4zB,EAAKukI,iBAAmBh5J,GAAKA,GAC5Dy0B,EAAKinI,YAAY,EAAG,GACpBjnI,EAAK8kI,YAAY,EAAG,EAAG,EAAG,EAAE,IAC3B,CAAC9kI,EAAM+qD,KACR/qD,EAAKklI,eAAellI,EAAKukI,iBAAmBx5E,EAAOx/E,EAAE,IALL,KAS5B46kB,GAAQnojB,MCrChC,SAASoojB,GAAOnmjB,EAAMC,EAAOyjC,EAAMs6F,EAAKQ,EAAMI,GAE5C,MAAMwnb,EAAgB,CACpB,CAACt5jB,GAAS,EAAQg3jB,IAClB,CAACh3jB,GAAS,EAAI,KACd,CAACA,GAAQ,GAAI,MACb,CAACA,GAAQ,GAAI,KACb,CAAC8xI,EAAS,EAAQmlb,IAClB,CAACnlb,EAAS,EAAI,KACd,CAACA,EAAQ,GAAI,KACb,CAACA,EAAQ,GAAI,MACb,CAAGJ,EAAO,EAAQwlb,IAClB,CAAGxlb,EAAO,EAAI,OACd,CAAGA,EAAO,EAAI,OACd,CAAGA,EAAM,GAAI,OACb,CAAIR,EAAM,EAAQimb,IAClB,CAAIjmb,EAAM,EAAI,QACd,CAAGt6F,EAAO,EAAQwghB,IAClB,CAAEjkjB,EAAQ,EAAQkkjB,IAClB,CAAElkjB,EAAQ,EAAI,QACd,CAAGD,EAAO,EAAQokjB,KAWpB,SAASiC,EAAa94jB,EAAOu1G,EAAMpkF,GACjC,MAAMjpC,EAASvJ,KAAK6E,IAAI+xH,EAAOv1G,GAASmxB,EAClC9yC,EAAI6ukB,IAAS9kb,IAAA,IAAE,CAAC,CAAE7qE,GAAK6qE,EAAA,OAAK7qE,CAAI,IAAE50E,MAAMkwkB,EAAe3wkB,GAC7D,GAAI7J,IAAMw6kB,EAAcv6kB,OAAQ,OAAOm0B,EAAKjkB,MAAMu+jB,GAAS/sjB,EAAQ62jB,GAActhd,EAAOshd,GAAc1liB,IACtG,GAAU,IAAN9yC,EAAS,OAAO8yJ,GAAY3iJ,MAAM7P,KAAKwhB,IAAI4sjB,GAAS/sjB,EAAOu1G,EAAMpkF,GAAQ,IAC7E,MAAOtgB,EAAG0sD,GAAQs7f,EAAc3wkB,EAAS2wkB,EAAcx6kB,EAAI,GAAG,GAAKw6kB,EAAcx6kB,GAAG,GAAK6J,EAAS7J,EAAI,EAAIA,GAC1G,OAAOwyB,EAAEriB,MAAM+uE,EACjB,CAEA,MAAO,CAjBP,SAAev9D,EAAOu1G,EAAMpkF,GAC1B,MAAMo4C,EAAUgsC,EAAOv1G,EACnBupE,KAAUvpE,EAAOu1G,GAAQ,CAACA,EAAMv1G,IACpC,MAAMsyH,EAAWnhG,GAAgC,oBAAhBA,EAAM3gB,MAAuB2gB,EAAQ2niB,EAAa94jB,EAAOu1G,EAAMpkF,GAC1F07hB,EAAQv6b,EAAWA,EAAS9hH,MAAMxQ,GAAQu1G,EAAO,GAAK,GAC5D,OAAOhsC,EAAUsjf,EAAMtjf,UAAYsjf,CACrC,EAWeiM,EACjB,CAEA,MAAOC,GAAUC,IAAmBJ,GAAOD,GAASF,GAAUR,GAAWV,GAASH,GAASF,KACpF+B,GAAWC,IAAoBN,GAAOF,GAAUF,GAAWf,GAAYJ,GAASF,GAAUF,IC1CjG,SAASkC,GAAUp1kB,GACjB,GAAI,GAAKA,EAAEmuB,GAAKnuB,EAAEmuB,EAAI,IAAK,CACzB,IAAIM,EAAO,IAAIc,MAAM,EAAGvvB,EAAEquB,EAAGruB,EAAEA,EAAGA,EAAEs6D,EAAGt6D,EAAEouB,EAAGpuB,EAAE4M,EAAG5M,EAAE2hE,GAEnD,OADAlzC,EAAKmlI,YAAY5zJ,EAAEmuB,GACZM,CACT,CACA,OAAO,IAAIc,KAAKvvB,EAAEmuB,EAAGnuB,EAAEquB,EAAGruB,EAAEA,EAAGA,EAAEs6D,EAAGt6D,EAAEouB,EAAGpuB,EAAE4M,EAAG5M,EAAE2hE,EAClD,CAEA,SAAS0zgB,GAAQr1kB,GACf,GAAI,GAAKA,EAAEmuB,GAAKnuB,EAAEmuB,EAAI,IAAK,CACzB,IAAIM,EAAO,IAAIc,KAAKA,KAAKC,KAAK,EAAGxvB,EAAEquB,EAAGruB,EAAEA,EAAGA,EAAEs6D,EAAGt6D,EAAEouB,EAAGpuB,EAAE4M,EAAG5M,EAAE2hE,IAE5D,OADAlzC,EAAKklI,eAAe3zJ,EAAEmuB,GACfM,CACT,CACA,OAAO,IAAIc,KAAKA,KAAKC,IAAIxvB,EAAEmuB,EAAGnuB,EAAEquB,EAAGruB,EAAEA,EAAGA,EAAEs6D,EAAGt6D,EAAEouB,EAAGpuB,EAAE4M,EAAG5M,EAAE2hE,GAC3D,CAEA,SAASk7d,GAAQ1ugB,EAAGE,EAAGruB,GACrB,MAAO,CAACmuB,EAAGA,EAAGE,EAAGA,EAAGruB,EAAGA,EAAGs6D,EAAG,EAAGlsC,EAAG,EAAGxhB,EAAG,EAAG+0D,EAAG,EACjD,CAkWA,ICjYIv0C,GACOoxI,GAEA82a,GD8XPC,GAAO,CAAC,IAAK,GAAI,EAAK,IAAK,EAAK,KAChCC,GAAW,UACXC,GAAY,KACZC,GAAY,sBAEhB,SAASh2kB,GAAI1H,EAAOgtG,EAAM3pG,GACxB,IAAIukH,EAAO5nH,EAAQ,EAAI,IAAM,GACzB0U,GAAUkzG,GAAQ5nH,EAAQA,GAAS,GACnCuC,EAASmS,EAAOnS,OACpB,OAAOqlH,GAAQrlH,EAASc,EAAQ,IAAIpB,MAAMoB,EAAQd,EAAS,GAAG8D,KAAK2mG,GAAQt4F,EAASA,EACtF,CAEA,SAASipkB,GAAQ5ojB,GACf,OAAOA,EAAEjgB,QAAQ4okB,GAAW,OAC9B,CAEA,SAASE,GAASl8jB,GAChB,OAAO,IAAIqC,OAAO,OAASrC,EAAMjT,IAAIkvkB,IAASt3kB,KAAK,KAAO,IAAK,IACjE,CAEA,SAASw3kB,GAAan8jB,GACpB,OAAO,IAAIyxB,IAAIzxB,EAAMjT,KAAI,CAACY,EAAM/M,IAAM,CAAC+M,EAAK9K,cAAejC,KAC7D,CAEA,SAASw7kB,GAAyB91kB,EAAG0M,EAAQpS,GAC3C,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAC1C,OAAO+H,GAAKrC,EAAE4F,GAAKvD,EAAE,GAAI/H,EAAI+H,EAAE,GAAG9H,SAAW,CAC/C,CAEA,SAASw7kB,GAAyB/1kB,EAAG0M,EAAQpS,GAC3C,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAC1C,OAAO+H,GAAKrC,EAAEgtB,GAAK3qB,EAAE,GAAI/H,EAAI+H,EAAE,GAAG9H,SAAW,CAC/C,CAEA,SAASy7kB,GAAsBh2kB,EAAG0M,EAAQpS,GACxC,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAC1C,OAAO+H,GAAKrC,EAAE+tE,GAAK1rE,EAAE,GAAI/H,EAAI+H,EAAE,GAAG9H,SAAW,CAC/C,CAEA,SAAS07kB,GAAmBj2kB,EAAG0M,EAAQpS,GACrC,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAC1C,OAAO+H,GAAKrC,EAAE6Z,GAAKxX,EAAE,GAAI/H,EAAI+H,EAAE,GAAG9H,SAAW,CAC/C,CAEA,SAAS27kB,GAAsBl2kB,EAAG0M,EAAQpS,GACxC,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAC1C,OAAO+H,GAAKrC,EAAEmuE,GAAK9rE,EAAE,GAAI/H,EAAI+H,EAAE,GAAG9H,SAAW,CAC/C,CAEA,SAAS47kB,GAAcn2kB,EAAG0M,EAAQpS,GAChC,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAC1C,OAAO+H,GAAKrC,EAAEmuB,GAAK9rB,EAAE,GAAI/H,EAAI+H,EAAE,GAAG9H,SAAW,CAC/C,CAEA,SAAS67kB,GAAUp2kB,EAAG0M,EAAQpS,GAC5B,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAC1C,OAAO+H,GAAKrC,EAAEmuB,GAAK9rB,EAAE,KAAOA,EAAE,GAAK,GAAK,KAAO,KAAO/H,EAAI+H,EAAE,GAAG9H,SAAW,CAC5E,CAEA,SAASwyK,GAAU/sK,EAAG0M,EAAQpS,GAC5B,IAAI+H,EAAI,+BAA+B+Q,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAChE,OAAO+H,GAAKrC,EAAEwwE,EAAInuE,EAAE,GAAK,IAAMA,EAAE,IAAMA,EAAE,IAAM,OAAQ/H,EAAI+H,EAAE,GAAG9H,SAAW,CAC7E,CAEA,SAAS87kB,GAAar2kB,EAAG0M,EAAQpS,GAC/B,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAC1C,OAAO+H,GAAKrC,EAAE8wC,EAAW,EAAPzuC,EAAE,GAAS,EAAG/H,EAAI+H,EAAE,GAAG9H,SAAW,CACtD,CAEA,SAAS+7kB,GAAiBt2kB,EAAG0M,EAAQpS,GACnC,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAC1C,OAAO+H,GAAKrC,EAAEquB,EAAIhsB,EAAE,GAAK,EAAG/H,EAAI+H,EAAE,GAAG9H,SAAW,CAClD,CAEA,SAASg8kB,GAAgBv2kB,EAAG0M,EAAQpS,GAClC,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAC1C,OAAO+H,GAAKrC,EAAEA,GAAKqC,EAAE,GAAI/H,EAAI+H,EAAE,GAAG9H,SAAW,CAC/C,CAEA,SAASi8kB,GAAex2kB,EAAG0M,EAAQpS,GACjC,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAC1C,OAAO+H,GAAKrC,EAAEquB,EAAI,EAAGruB,EAAEA,GAAKqC,EAAE,GAAI/H,EAAI+H,EAAE,GAAG9H,SAAW,CACxD,CAEA,SAASk8kB,GAAYz2kB,EAAG0M,EAAQpS,GAC9B,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAC1C,OAAO+H,GAAKrC,EAAEs6D,GAAKj4D,EAAE,GAAI/H,EAAI+H,EAAE,GAAG9H,SAAW,CAC/C,CAEA,SAASm8kB,GAAa12kB,EAAG0M,EAAQpS,GAC/B,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAC1C,OAAO+H,GAAKrC,EAAEouB,GAAK/rB,EAAE,GAAI/H,EAAI+H,EAAE,GAAG9H,SAAW,CAC/C,CAEA,SAASo8kB,GAAa32kB,EAAG0M,EAAQpS,GAC/B,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAC1C,OAAO+H,GAAKrC,EAAE4M,GAAKvK,EAAE,GAAI/H,EAAI+H,EAAE,GAAG9H,SAAW,CAC/C,CAEA,SAASq8kB,GAAkB52kB,EAAG0M,EAAQpS,GACpC,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAC1C,OAAO+H,GAAKrC,EAAE2hE,GAAKt/D,EAAE,GAAI/H,EAAI+H,EAAE,GAAG9H,SAAW,CAC/C,CAEA,SAASs8kB,GAAkB72kB,EAAG0M,EAAQpS,GACpC,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAC1C,OAAO+H,GAAKrC,EAAE2hE,EAAI/mE,KAAKC,MAAMwH,EAAE,GAAK,KAAO/H,EAAI+H,EAAE,GAAG9H,SAAW,CACjE,CAEA,SAASu8kB,GAAoB92kB,EAAG0M,EAAQpS,GACtC,IAAI+H,EAAIozkB,GAAUrikB,KAAK1G,EAAOtO,MAAM9D,EAAGA,EAAI,IAC3C,OAAO+H,EAAI/H,EAAI+H,EAAE,GAAG9H,QAAU,CAChC,CAEA,SAASw8kB,GAAmB/2kB,EAAG0M,EAAQpS,GACrC,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,IACnC,OAAO+H,GAAKrC,EAAE+uB,GAAK1sB,EAAE,GAAI/H,EAAI+H,EAAE,GAAG9H,SAAW,CAC/C,CAEA,SAASy8kB,GAA0Bh3kB,EAAG0M,EAAQpS,GAC5C,IAAI+H,EAAImzkB,GAASpikB,KAAK1G,EAAOtO,MAAM9D,IACnC,OAAO+H,GAAKrC,EAAE+sB,GAAK1qB,EAAE,GAAI/H,EAAI+H,EAAE,GAAG9H,SAAW,CAC/C,CAEA,SAAS08kB,GAAiBj3kB,EAAGygB,GAC3B,OAAO/gB,GAAIM,EAAE+vB,UAAWtP,EAAG,EAC7B,CAEA,SAASy2jB,GAAal3kB,EAAGygB,GACvB,OAAO/gB,GAAIM,EAAEmwB,WAAY1P,EAAG,EAC9B,CAEA,SAAS02jB,GAAan3kB,EAAGygB,GACvB,OAAO/gB,GAAIM,EAAEmwB,WAAa,IAAM,GAAI1P,EAAG,EACzC,CAEA,SAAS22jB,GAAgBp3kB,EAAGygB,GAC1B,OAAO/gB,GAAI,EAAI4zkB,GAAQlmiB,MAAMuniB,GAAS30kB,GAAIA,GAAIygB,EAAG,EACnD,CAEA,SAAS42jB,GAAmBr3kB,EAAGygB,GAC7B,OAAO/gB,GAAIM,EAAEywB,kBAAmBhQ,EAAG,EACrC,CAEA,SAAS62jB,GAAmBt3kB,EAAGygB,GAC7B,OAAO42jB,GAAmBr3kB,EAAGygB,GAAK,KACpC,CAEA,SAAS82jB,GAAkBv3kB,EAAGygB,GAC5B,OAAO/gB,GAAIM,EAAE6vB,WAAa,EAAGpP,EAAG,EAClC,CAEA,SAAS+2jB,GAAcx3kB,EAAGygB,GACxB,OAAO/gB,GAAIM,EAAEqwB,aAAc5P,EAAG,EAChC,CAEA,SAASg3jB,GAAcz3kB,EAAGygB,GACxB,OAAO/gB,GAAIM,EAAEuwB,aAAc9P,EAAG,EAChC,CAEA,SAASi3jB,GAA0B13kB,GACjC,IAAI0sJ,EAAM1sJ,EAAEiwB,SACZ,OAAe,IAARy8H,EAAY,EAAIA,CACzB,CAEA,SAASirb,GAAuB33kB,EAAGygB,GACjC,OAAO/gB,GAAIg0kB,GAAWtmiB,MAAMuniB,GAAS30kB,GAAK,EAAGA,GAAIygB,EAAG,EACtD,CAEA,SAASm3jB,GAAK53kB,GACZ,IAAI0sJ,EAAM1sJ,EAAEiwB,SACZ,OAAQy8H,GAAO,GAAa,IAARA,EAAaonb,GAAa9zkB,GAAK8zkB,GAAarukB,KAAKzF,EACvE,CAEA,SAAS63kB,GAAoB73kB,EAAGygB,GAE9B,OADAzgB,EAAI43kB,GAAK53kB,GACFN,GAAIo0kB,GAAa1miB,MAAMuniB,GAAS30kB,GAAIA,IAA+B,IAAzB20kB,GAAS30kB,GAAGiwB,UAAiBxP,EAAG,EACnF,CAEA,SAASq3jB,GAA0B93kB,GACjC,OAAOA,EAAEiwB,QACX,CAEA,SAAS8njB,GAAuB/3kB,EAAGygB,GACjC,OAAO/gB,GAAIi0kB,GAAWvmiB,MAAMuniB,GAAS30kB,GAAK,EAAGA,GAAIygB,EAAG,EACtD,CAEA,SAASu3jB,GAAWh4kB,EAAGygB,GACrB,OAAO/gB,GAAIM,EAAE2vB,cAAgB,IAAKlP,EAAG,EACvC,CAEA,SAASw3jB,GAAcj4kB,EAAGygB,GAExB,OAAO/gB,IADPM,EAAI43kB,GAAK53kB,IACI2vB,cAAgB,IAAKlP,EAAG,EACvC,CAEA,SAASy3jB,GAAel4kB,EAAGygB,GACzB,OAAO/gB,GAAIM,EAAE2vB,cAAgB,IAAOlP,EAAG,EACzC,CAEA,SAAS03jB,GAAkBn4kB,EAAGygB,GAC5B,IAAIisI,EAAM1sJ,EAAEiwB,SAEZ,OAAOvwB,IADPM,EAAK0sJ,GAAO,GAAa,IAARA,EAAaonb,GAAa9zkB,GAAK8zkB,GAAarukB,KAAKzF,IACrD2vB,cAAgB,IAAOlP,EAAG,EACzC,CAEA,SAAS23jB,GAAWp4kB,GAClB,IAAIuuB,EAAIvuB,EAAE0xB,oBACV,OAAQnD,EAAI,EAAI,KAAOA,IAAM,EAAG,MAC1B7uB,GAAI6uB,EAAI,GAAK,EAAG,IAAK,GACrB7uB,GAAI6uB,EAAI,GAAI,IAAK,EACzB,CAEA,SAAS8pjB,GAAoBr4kB,EAAGygB,GAC9B,OAAO/gB,GAAIM,EAAE6yJ,aAAcpyI,EAAG,EAChC,CAEA,SAAS63jB,GAAgBt4kB,EAAGygB,GAC1B,OAAO/gB,GAAIM,EAAE4yJ,cAAenyI,EAAG,EACjC,CAEA,SAAS83jB,GAAgBv4kB,EAAGygB,GAC1B,OAAO/gB,GAAIM,EAAE4yJ,cAAgB,IAAM,GAAInyI,EAAG,EAC5C,CAEA,SAAS+3jB,GAAmBx4kB,EAAGygB,GAC7B,OAAO/gB,GAAI,EAAI6zkB,GAAOnmiB,MAAMwniB,GAAQ50kB,GAAIA,GAAIygB,EAAG,EACjD,CAEA,SAASg4jB,GAAsBz4kB,EAAGygB,GAChC,OAAO/gB,GAAIM,EAAEyyJ,qBAAsBhyI,EAAG,EACxC,CAEA,SAASi4jB,GAAsB14kB,EAAGygB,GAChC,OAAOg4jB,GAAsBz4kB,EAAGygB,GAAK,KACvC,CAEA,SAASk4jB,GAAqB34kB,EAAGygB,GAC/B,OAAO/gB,GAAIM,EAAE+yJ,cAAgB,EAAGtyI,EAAG,EACrC,CAEA,SAASm4jB,IAAiB54kB,EAAGygB,GAC3B,OAAO/gB,GAAIM,EAAE2yJ,gBAAiBlyI,EAAG,EACnC,CAEA,SAASo4jB,IAAiB74kB,EAAGygB,GAC3B,OAAO/gB,GAAIM,EAAE0yJ,gBAAiBjyI,EAAG,EACnC,CAEA,SAASq4jB,IAA6B94kB,GACpC,IAAI22J,EAAM32J,EAAE8yJ,YACZ,OAAe,IAAR6D,EAAY,EAAIA,CACzB,CAEA,SAASoib,IAA0B/4kB,EAAGygB,GACpC,OAAO/gB,GAAIw0kB,GAAU9miB,MAAMwniB,GAAQ50kB,GAAK,EAAGA,GAAIygB,EAAG,EACpD,CAEA,SAASu4jB,IAAQh5kB,GACf,IAAI0sJ,EAAM1sJ,EAAE8yJ,YACZ,OAAQpG,GAAO,GAAa,IAARA,EAAa4nb,GAAYt0kB,GAAKs0kB,GAAY7ukB,KAAKzF,EACrE,CAEA,SAASi5kB,IAAuBj5kB,EAAGygB,GAEjC,OADAzgB,EAAIg5kB,IAAQh5kB,GACLN,GAAI40kB,GAAYlniB,MAAMwniB,GAAQ50kB,GAAIA,IAAiC,IAA3B40kB,GAAQ50kB,GAAG8yJ,aAAoBryI,EAAG,EACnF,CAEA,SAASy4jB,IAA6Bl5kB,GACpC,OAAOA,EAAE8yJ,WACX,CAEA,SAASqmb,IAA0Bn5kB,EAAGygB,GACpC,OAAO/gB,GAAIy0kB,GAAU/miB,MAAMwniB,GAAQ50kB,GAAK,EAAGA,GAAIygB,EAAG,EACpD,CAEA,SAAS24jB,IAAcp5kB,EAAGygB,GACxB,OAAO/gB,GAAIM,EAAEgzJ,iBAAmB,IAAKvyI,EAAG,EAC1C,CAEA,SAAS44jB,IAAiBr5kB,EAAGygB,GAE3B,OAAO/gB,IADPM,EAAIg5kB,IAAQh5kB,IACCgzJ,iBAAmB,IAAKvyI,EAAG,EAC1C,CAEA,SAAS64jB,IAAkBt5kB,EAAGygB,GAC5B,OAAO/gB,GAAIM,EAAEgzJ,iBAAmB,IAAOvyI,EAAG,EAC5C,CAEA,SAAS84jB,IAAqBv5kB,EAAGygB,GAC/B,IAAIisI,EAAM1sJ,EAAE8yJ,YAEZ,OAAOpzJ,IADPM,EAAK0sJ,GAAO,GAAa,IAARA,EAAa4nb,GAAYt0kB,GAAKs0kB,GAAY7ukB,KAAKzF,IACnDgzJ,iBAAmB,IAAOvyI,EAAG,EAC5C,CAEA,SAAS+4jB,MACP,MAAO,OACT,CAEA,SAASC,MACP,MAAO,GACT,CAEA,SAASC,IAAoB15kB,GAC3B,OAAQA,CACV,CAEA,SAAS25kB,IAA2B35kB,GAClC,OAAOpF,KAAKC,OAAOmF,EAAI,IACzB,CElrBA,SAASyuB,IAAK3B,GACZ,OAAO,IAAIyC,KAAKzC,EAClB,CAEA,SAASomB,IAAOpmB,GACd,OAAOA,aAAayC,MAAQzC,GAAK,IAAIyC,MAAMzC,EAC7C,CAEO,SAAS48H,IAASo/a,EAAOiM,EAAcrmjB,EAAMC,EAAOyjC,EAAMs6F,EAAKQ,EAAMI,EAAQ9xI,EAAQnf,GAC1F,IAAI6+I,EAAQizb,KACR5se,EAAS25C,EAAM35C,OACfjpF,EAAS4iI,EAAM5iI,OAEfshkB,EAAoBv9kB,EAAO,OAC3Bw9kB,EAAex9kB,EAAO,OACtBy9kB,EAAez9kB,EAAO,SACtB09kB,EAAa19kB,EAAO,SACpB29kB,EAAY39kB,EAAO,SACnB49kB,EAAa59kB,EAAO,SACpB69kB,EAAc79kB,EAAO,MACrB27kB,EAAa37kB,EAAO,MAExB,SAASszkB,EAAWlhjB,GAClB,OAAQjT,EAAOiT,GAAQA,EAAOmrjB,EACxBtsb,EAAO7+H,GAAQA,EAAOorjB,EACtB3sb,EAAKz+H,GAAQA,EAAOqrjB,EACpBptb,EAAIj+H,GAAQA,EAAOsrjB,EACnBprjB,EAAMF,GAAQA,EAAQ2jC,EAAK3jC,GAAQA,EAAOurjB,EAAYC,EACtDvrjB,EAAKD,GAAQA,EAAOyrjB,EACpBlC,GAAYvpjB,EACpB,CA6BA,OA3BAysH,EAAM35C,OAAS,SAASpzE,GACtB,OAAO,IAAIoB,KAAKgyE,EAAOpzE,GACzB,EAEA+sH,EAAM5iI,OAAS,SAASiS,GACtB,OAAO1hB,UAAUtO,OAAS+d,EAAOre,MAAM8J,KAAKwmB,EAAG2oB,MAAW56B,IAAS7R,IAAIgoB,IACzE,EAEAysH,EAAM4tb,MAAQ,SAASv6b,GACrB,IAAIvuI,EAAIsY,IACR,OAAOwwjB,EAAM9okB,EAAE,GAAIA,EAAEA,EAAEzF,OAAS,GAAgB,MAAZg0I,EAAmB,GAAKA,EAC9D,EAEA2M,EAAMy0b,WAAa,SAASviiB,EAAOkhiB,GACjC,OAAoB,MAAbA,EAAoBqB,EAAatzkB,EAAOiykB,EACjD,EAEApzb,EAAM80b,KAAO,SAASzhc,GACpB,IAAIvuI,EAAIsY,IAER,OADKi2H,GAAsC,oBAAnBA,EAAS9hH,QAAsB8hH,EAAWwmc,EAAa/0kB,EAAE,GAAIA,EAAEA,EAAEzF,OAAS,GAAgB,MAAZg0I,EAAmB,GAAKA,IACvHA,EAAWj2H,EAAO03jB,GAAKhwkB,EAAGuuI,IAAa2M,CAChD,EAEAA,EAAM3mD,KAAO,WACX,OAAOA,GAAK2mD,EAAOwO,IAASo/a,EAAOiM,EAAcrmjB,EAAMC,EAAOyjC,EAAMs6F,EAAKQ,EAAMI,EAAQ9xI,EAAQnf,GACjG,EAEO6+I,CACT,CAEe,SAAS/oF,MACtB,OAAO+vgB,GAAUzujB,MAAMi2I,IAASwrb,GAAWC,GAAkBR,GAAUF,GAAW0F,GAAU7G,GAASF,GAAUF,GAAYkH,GAAY57a,IAAYlmJ,OAAO,CAAC,IAAIiX,KAAK,IAAM,EAAG,GAAI,IAAIA,KAAK,IAAM,EAAG,KAAM1mB,UAC3M,CCjEe,SAASwxkB,MACtB,OAAOnY,GAAUzujB,MAAMi2I,IAASsrb,GAAUC,GAAiBL,GAASF,GAAU4F,GAAS/G,GAAQF,GAASF,GAAWoH,GAAWjF,IAAWh9jB,OAAO,CAACiX,KAAKC,IAAI,IAAM,EAAG,GAAID,KAAKC,IAAI,IAAM,EAAG,KAAM3mB,UACjM,CCCA,SAASilkB,MACP,IAEIpyR,EACA/zL,EACA6yd,EACA7hgB,EAGAiqf,EARAtkb,EAAK,EACL10G,EAAK,EAKLw4hB,EAAe3viB,GACf21E,GAAQ,EAGZ,SAAS8yC,EAAMn3H,GACb,OAAY,MAALA,GAAaxH,MAAMwH,GAAKA,GAAK6+iB,EAAUR,EAAqB,IAARoY,EAAY,IAAOz2jB,GAAK40D,EAAU50D,GAAK23R,GAAM8+R,EAAKpye,EAAQxtG,KAAKwhB,IAAI,EAAGxhB,KAAKyhB,IAAI,EAAG0H,IAAMA,GACrJ,CAcA,SAAS0I,EAAMy/E,GACb,OAAO,SAAS3hF,GACd,IAAIy4iB,EAAIpub,EACR,OAAO/rI,UAAUtO,SAAWyokB,EAAIpub,GAAMrqH,EAAG63iB,EAAel2d,EAAY82d,EAAIpub,GAAKsG,GAAS,CAACknb,EAAa,GAAIA,EAAa,GACvH,CACF,CAUA,OA3BAlnb,EAAM5iI,OAAS,SAASiS,GACtB,OAAO1hB,UAAUtO,SAAW+jJ,EAAI10G,GAAMrf,EAAGmxR,EAAK/iO,EAAU2lE,GAAMA,GAAK32B,EAAKhvC,EAAU/uC,GAAMA,GAAK4wiB,EAAM9+R,IAAO/zL,EAAK,EAAI,GAAKA,EAAK+zL,GAAKxgK,GAAS,CAACoD,EAAI10G,EAClJ,EAEAsxG,EAAM9yC,MAAQ,SAAS79E,GACrB,OAAO1hB,UAAUtO,QAAU6tG,IAAU79E,EAAG2wH,GAAS9yC,CACnD,EAEA8yC,EAAMknb,aAAe,SAAS73iB,GAC5B,OAAO1hB,UAAUtO,QAAU6nkB,EAAe73iB,EAAG2wH,GAASknb,CACxD,EASAlnb,EAAMzuH,MAAQA,EAAMy/E,IAEpBgvC,EAAMkob,WAAa32iB,EAAMyhjB,IAEzBhzb,EAAM0nb,QAAU,SAASr4iB,GACvB,OAAO1hB,UAAUtO,QAAUqokB,EAAUr4iB,EAAG2wH,GAAS0nb,CACnD,EAEO,SAAS91iB,GAEd,OADA6rD,EAAY7rD,EAAG4uR,EAAK5uR,EAAEwxH,GAAK32B,EAAK76F,EAAE8c,GAAK4wiB,EAAM9+R,IAAO/zL,EAAK,EAAI,GAAKA,EAAK+zL,GAChExgK,CACT,CACF,CAEO,SAAS3mD,IAAKvvF,EAAQb,GAC3B,OAAOA,EACFmU,OAAOtT,EAAOsT,UACd8pjB,aAAap9jB,EAAOo9jB,gBACpBh6d,MAAMpjG,EAAOojG,SACbw6d,QAAQ59jB,EAAO49jB,UACtB,CAEe,SAAS6X,MACtB,IAAIv/b,EAAQ60b,GAAUjC,MAAcr7iB,KAMpC,OAJAyoH,EAAM3mD,KAAO,WACX,OAAOA,IAAK2mD,EAAOu/b,MACrB,EAEOtY,GAAiB1ujB,MAAMynI,EAAOryI,UACvC,CAEO,SAAS6xkB,MACd,IAAIx/b,EAAQu1b,GAAQ3C,OAAex1jB,OAAO,CAAC,EAAG,KAM9C,OAJA4iI,EAAM3mD,KAAO,WACX,OAAOA,IAAK2mD,EAAOw/b,OAAiBx5hB,KAAKg6F,EAAMh6F,OACjD,EAEOihhB,GAAiB1ujB,MAAMynI,EAAOryI,UACvC,CAEO,SAAS8xkB,MACd,IAAIz/b,EAAQi2b,GAAUrD,OAMtB,OAJA5yb,EAAM3mD,KAAO,WACX,OAAOA,IAAK2mD,EAAOy/b,OAAoBzof,SAASgpD,EAAMhpD,WACxD,EAEOiwe,GAAiB1ujB,MAAMynI,EAAOryI,UACvC,CAEO,SAAS+xkB,MACd,IAAI1/b,EAAQs2b,GAAO1D,OAMnB,OAJA5yb,EAAM3mD,KAAO,WACX,OAAOA,IAAK2mD,EAAO0/b,OAAiBz6d,SAAS+6B,EAAM/6B,WACrD,EAEOgid,GAAiB1ujB,MAAMynI,EAAOryI,UACvC,CAEO,SAASgykB,MACd,OAAOD,IAAcnnkB,MAAM,KAAM5K,WAAWs3G,SAAS,GACvD,CCtGe,SAAS26d,MACtB,IAAIxikB,EAAS,GACT8pjB,EAAe3viB,GAEnB,SAASyoH,EAAMn3H,GACb,GAAS,MAALA,IAAcxH,MAAMwH,GAAKA,GAAI,OAAOq+iB,GAAcyL,GAAOv1jB,EAAQyL,EAAG,GAAK,IAAMzL,EAAO/d,OAAS,GACrG,CA0BA,OAxBA2gJ,EAAM5iI,OAAS,SAASiS,GACtB,IAAK1hB,UAAUtO,OAAQ,OAAO+d,EAAOla,QACrCka,EAAS,GACT,IAAK,IAAItY,KAAKuqB,EAAY,MAALvqB,GAAcuc,MAAMvc,GAAKA,IAAIsY,EAAOrd,KAAK+E,GAE9D,OADAsY,EAAO2V,KAAKg7iB,IACL/tb,CACT,EAEAA,EAAMknb,aAAe,SAAS73iB,GAC5B,OAAO1hB,UAAUtO,QAAU6nkB,EAAe73iB,EAAG2wH,GAASknb,CACxD,EAEAlnb,EAAMzuH,MAAQ,WACZ,OAAOnU,EAAO7R,KAAI,CAACzG,EAAG1F,IAAM8nkB,EAAa9nkB,GAAKge,EAAO/d,OAAS,KAChE,EAEA2gJ,EAAMm3b,UAAY,SAAShwkB,GACzB,OAAOpI,MAAM8J,KAAK,CAACxJ,OAAQ8H,EAAI,IAAI,CAACkoB,EAAGjwB,IAAM23kB,GAAS35jB,EAAQhe,EAAI+H,IACpE,EAEA64I,EAAM3mD,KAAO,WACX,OAAOumf,IAAmB1Y,GAAc9pjB,OAAOA,EACjD,EAEO6pjB,GAAiB1ujB,MAAMynI,EAAOryI,UACvC,CC5BA,SAASilkB,MACP,IAIIpyR,EACA/zL,EACAC,EACA4yd,EACAO,EAEApigB,EAEAiqf,EAZAtkb,EAAK,EACL10G,EAAK,GACLE,EAAK,EACL/c,EAAI,EAMJq1iB,EAAe3viB,GAEf21E,GAAQ,EAGZ,SAAS8yC,EAAMn3H,GACb,OAAOxH,MAAMwH,GAAKA,GAAK6+iB,GAAW7+iB,EAAI,KAAQA,GAAK40D,EAAU50D,IAAM4jG,IAAO56F,EAAIhJ,EAAIgJ,EAAI46F,EAAK6yd,EAAMO,GAAM3Y,EAAah6d,EAAQxtG,KAAKwhB,IAAI,EAAGxhB,KAAKyhB,IAAI,EAAG0H,IAAMA,GAC5J,CAcA,SAAS0I,EAAMy/E,GACb,OAAO,SAAS3hF,GACd,IAAIy4iB,EAAIpub,EAAIC,EACZ,OAAOhsI,UAAUtO,SAAWyokB,EAAIpub,EAAIC,GAAMtqH,EAAG63iB,ECzCpC,SAAmBl2d,EAAaz8F,QAC9BpJ,IAAXoJ,IAAsBA,EAASy8F,EAAaA,EAAcl0G,IAE9D,IADA,IAAIsC,EAAI,EAAG+H,EAAIoN,EAAOlV,OAAS,EAAG+zB,EAAI7e,EAAO,GAAIgtD,EAAI,IAAIxiE,MAAMoI,EAAI,EAAI,EAAIA,GACpE/H,EAAI+H,GAAGo6D,EAAEniE,GAAK4xG,EAAY59E,EAAGA,EAAI7e,IAASnV,IACjD,OAAO,SAASwyB,GACd,IAAIxyB,EAAIM,KAAKwhB,IAAI,EAAGxhB,KAAKyhB,IAAIha,EAAI,EAAGzH,KAAKC,MAAMiyB,GAAKzqB,KACpD,OAAOo6D,EAAEniE,GAAGwyB,EAAIxyB,EAClB,CACF,CDiCkE0zkB,CAAU9he,EAAa,CAAC82d,EAAIpub,EAAIC,IAAMqG,GAAS,CAACknb,EAAa,GAAIA,EAAa,IAAMA,EAAa,GAC/J,CACF,CAUA,OA3BAlnb,EAAM5iI,OAAS,SAASiS,GACtB,OAAO1hB,UAAUtO,SAAW+jJ,EAAI10G,EAAIE,GAAMvf,EAAGmxR,EAAK/iO,EAAU2lE,GAAMA,GAAK32B,EAAKhvC,EAAU/uC,GAAMA,GAAKg+E,EAAKjvC,EAAU7uC,GAAMA,GAAK0wiB,EAAM9+R,IAAO/zL,EAAK,EAAI,IAAOA,EAAK+zL,GAAKq/R,EAAMpzd,IAAOC,EAAK,EAAI,IAAOA,EAAKD,GAAK56F,EAAI46F,EAAK+zL,GAAM,EAAI,EAAGxgK,GAAS,CAACoD,EAAI10G,EAAIE,EACnP,EAEAoxG,EAAM9yC,MAAQ,SAAS79E,GACrB,OAAO1hB,UAAUtO,QAAU6tG,IAAU79E,EAAG2wH,GAAS9yC,CACnD,EAEA8yC,EAAMknb,aAAe,SAAS73iB,GAC5B,OAAO1hB,UAAUtO,QAAU6nkB,EAAe73iB,EAAG2wH,GAASknb,CACxD,EASAlnb,EAAMzuH,MAAQA,EAAMy/E,IAEpBgvC,EAAMkob,WAAa32iB,EAAMyhjB,IAEzBhzb,EAAM0nb,QAAU,SAASr4iB,GACvB,OAAO1hB,UAAUtO,QAAUqokB,EAAUr4iB,EAAG2wH,GAAS0nb,CACnD,EAEO,SAAS91iB,GAEd,OADA6rD,EAAY7rD,EAAG4uR,EAAK5uR,EAAEwxH,GAAK32B,EAAK76F,EAAE8c,GAAKg+E,EAAK96F,EAAEgd,GAAK0wiB,EAAM9+R,IAAO/zL,EAAK,EAAI,IAAOA,EAAK+zL,GAAKq/R,EAAMpzd,IAAOC,EAAK,EAAI,IAAOA,EAAKD,GAAK56F,EAAI46F,EAAK+zL,GAAM,EAAI,EAC7IxgK,CACT,CACF,CAEe,SAAS8/b,MACtB,IAAI9/b,EAAQ60b,GAAUjC,MAAcr7iB,KAMpC,OAJAyoH,EAAM3mD,KAAO,WACX,OAAOA,IAAK2mD,EAAO8/b,MACrB,EAEO7Y,GAAiB1ujB,MAAMynI,EAAOryI,UACvC,CAEO,SAASoykB,MACd,IAAI//b,EAAQu1b,GAAQ3C,OAAex1jB,OAAO,CAAC,GAAK,EAAG,KAMnD,OAJA4iI,EAAM3mD,KAAO,WACX,OAAOA,IAAK2mD,EAAO+/b,OAAgB/5hB,KAAKg6F,EAAMh6F,OAChD,EAEOihhB,GAAiB1ujB,MAAMynI,EAAOryI,UACvC,CAEO,SAASqykB,MACd,IAAIhgc,EAAQi2b,GAAUrD,OAMtB,OAJA5yb,EAAM3mD,KAAO,WACX,OAAOA,IAAK2mD,EAAOggc,OAAmBhpf,SAASgpD,EAAMhpD,WACvD,EAEOiwe,GAAiB1ujB,MAAMynI,EAAOryI,UACvC,CAEO,SAASsykB,MACd,IAAIjgc,EAAQs2b,GAAO1D,OAMnB,OAJA5yb,EAAM3mD,KAAO,WACX,OAAOA,IAAK2mD,EAAOigc,OAAgBh7d,SAAS+6B,EAAM/6B,WACpD,EAEOgid,GAAiB1ujB,MAAMynI,EAAOryI,UACvC,CAEO,SAASuykB,MACd,OAAOD,IAAa1nkB,MAAM,KAAM5K,WAAWs3G,SAAS,GACtD,CEvGe,aAASq4L,EAAQ14P,GAC9B,IAAOz9C,EAAIm2S,EAAOj+S,QAAU,EAC5B,IAAK,IAAW0c,EAAGokkB,EAA2Bh5kB,EAArC/H,EAAI,EAAUorC,EAAK8yQ,EAAO14P,EAAM,IAAQzxB,EAAIqX,EAAGnrC,OAAQD,EAAI+H,IAAK/H,EAEvE,IADA+glB,EAAK31iB,EAAIA,EAAK8yQ,EAAO14P,EAAMxlD,IACtB2c,EAAI,EAAGA,EAAIoX,IAAKpX,EACnByuB,EAAGzuB,GAAG,IAAMyuB,EAAGzuB,GAAG,GAAKsF,MAAM8+jB,EAAGpkkB,GAAG,IAAMokkB,EAAGpkkB,GAAG,GAAKokkB,EAAGpkkB,GAAG,EAGhE,EPWe,SAAuBwU,GACpC2B,GDea,SAAsBA,GACnC,IAAIkujB,EAAkBlujB,EAAOmujB,SACzBC,EAAcpujB,EAAOqB,KACrBgtjB,EAAcrujB,EAAO+kC,KACrBuphB,EAAiBtujB,EAAOuujB,QACxBC,EAAkBxujB,EAAOq/H,KACzBovb,EAAuBzujB,EAAO0ujB,UAC9BC,EAAgB3ujB,EAAOE,OACvB0ujB,EAAqB5ujB,EAAO8ogB,YAE5B+lD,EAAWrG,GAAS8F,GACpBQ,EAAerG,GAAa6F,GAC5BS,EAAYvG,GAASgG,GACrBQ,EAAgBvG,GAAa+F,GAC7BS,EAAiBzG,GAASiG,GAC1BS,EAAqBzG,GAAagG,GAClCU,EAAU3G,GAASmG,GACnBS,EAAc3G,GAAakG,GAC3BU,EAAe7G,GAASoG,GACxBU,EAAmB7G,GAAamG,GAEhC3ujB,EAAU,CACZ,EAkQF,SAA4BrtB,GAC1B,OAAO67kB,EAAqB77kB,EAAEiwB,SAChC,EAnQE,EAqQF,SAAuBjwB,GACrB,OAAO47kB,EAAgB57kB,EAAEiwB,SAC3B,EAtQE,EAwQF,SAA0BjwB,GACxB,OAAOg8kB,EAAmBh8kB,EAAE6vB,WAC9B,EAzQE,EA2QF,SAAqB7vB,GACnB,OAAO+7kB,EAAc/7kB,EAAE6vB,WACzB,EA5QE,EAAK,KACL,EAAKonjB,GACL,EAAKA,GACL,EAAKK,GACL,EAAKW,GACL,EAAKE,GACL,EAAKjB,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKE,GACL,EAAKC,GACL,EAkQF,SAAsBx3kB,GACpB,OAAO07kB,IAAiB17kB,EAAEmwB,YAAc,IAC1C,EAnQE,EAqQF,SAAuBnwB,GACrB,OAAO,KAAOA,EAAE6vB,WAAa,EAC/B,EAtQE,EAAK6pjB,IACL,EAAKC,IACL,EAAKlC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKE,GACL,EAAKC,GACL,EAAKC,GACL,EAAK,KACL,EAAK,KACL,EAAKC,GACL,EAAKE,GACL,EAAKE,GACL,IAAKqB,KAGHkD,EAAa,CACf,EAuPF,SAA+B38kB,GAC7B,OAAO67kB,EAAqB77kB,EAAE8yJ,YAChC,EAxPE,EA0PF,SAA0B9yJ,GACxB,OAAO47kB,EAAgB57kB,EAAE8yJ,YAC3B,EA3PE,EA6PF,SAA6B9yJ,GAC3B,OAAOg8kB,EAAmBh8kB,EAAE+yJ,cAC9B,EA9PE,EAgQF,SAAwB/yJ,GACtB,OAAO+7kB,EAAc/7kB,EAAE+yJ,cACzB,EAjQE,EAAK,KACL,EAAKslb,GACL,EAAKA,GACL,EAAKK,GACL,EAAKW,IACL,EAAKE,IACL,EAAKjB,GACL,EAAKC,GACL,EAAKC,GACL,EAAKC,GACL,EAAKE,GACL,EAAKC,IACL,EAuPF,SAAyB54kB,GACvB,OAAO07kB,IAAiB17kB,EAAE4yJ,eAAiB,IAC7C,EAxPE,EA0PF,SAA0B5yJ,GACxB,OAAO,KAAOA,EAAE+yJ,cAAgB,EAClC,EA3PE,EAAK2mb,IACL,EAAKC,IACL,EAAKd,IACL,EAAKC,IACL,EAAKC,IACL,EAAKE,IACL,EAAKC,IACL,EAAKC,IACL,EAAK,KACL,EAAK,KACL,EAAKC,IACL,EAAKE,IACL,EAAKE,IACL,IAAKC,KAGHmD,EAAS,CACX,EA4JF,SAA2B58kB,EAAG0M,EAAQpS,GACpC,IAAI+H,EAAIg6kB,EAAejpkB,KAAK1G,EAAOtO,MAAM9D,IACzC,OAAO+H,GAAKrC,EAAE4F,EAAI02kB,EAAmB11kB,IAAIvE,EAAE,GAAG9F,eAAgBjC,EAAI+H,EAAE,GAAG9H,SAAW,CACpF,EA9JE,EAgKF,SAAsByF,EAAG0M,EAAQpS,GAC/B,IAAI+H,EAAI85kB,EAAU/okB,KAAK1G,EAAOtO,MAAM9D,IACpC,OAAO+H,GAAKrC,EAAE4F,EAAIw2kB,EAAcx1kB,IAAIvE,EAAE,GAAG9F,eAAgBjC,EAAI+H,EAAE,GAAG9H,SAAW,CAC/E,EAlKE,EAoKF,SAAyByF,EAAG0M,EAAQpS,GAClC,IAAI+H,EAAIo6kB,EAAarpkB,KAAK1G,EAAOtO,MAAM9D,IACvC,OAAO+H,GAAKrC,EAAEquB,EAAIqujB,EAAiB91kB,IAAIvE,EAAE,GAAG9F,eAAgBjC,EAAI+H,EAAE,GAAG9H,SAAW,CAClF,EAtKE,EAwKF,SAAoByF,EAAG0M,EAAQpS,GAC7B,IAAI+H,EAAIk6kB,EAAQnpkB,KAAK1G,EAAOtO,MAAM9D,IAClC,OAAO+H,GAAKrC,EAAEquB,EAAImujB,EAAY51kB,IAAIvE,EAAE,GAAG9F,eAAgBjC,EAAI+H,EAAE,GAAG9H,SAAW,CAC7E,EA1KE,EA4KF,SAA6ByF,EAAG0M,EAAQpS,GACtC,OAAOuilB,EAAe78kB,EAAGs7kB,EAAiB5ukB,EAAQpS,EACpD,EA7KE,EAAKi8kB,GACL,EAAKA,GACL,EAAKM,GACL,EAAKT,GACL,EAAKD,GACL,EAAKM,GACL,EAAKA,GACL,EAAKD,GACL,EAAKI,GACL,EAAKN,GACL,EAAKI,GACL,EAuIF,SAAqB12kB,EAAG0M,EAAQpS,GAC9B,IAAI+H,EAAI45kB,EAAS7okB,KAAK1G,EAAOtO,MAAM9D,IACnC,OAAO+H,GAAKrC,EAAEygB,EAAIy7jB,EAAat1kB,IAAIvE,EAAE,GAAG9F,eAAgBjC,EAAI+H,EAAE,GAAG9H,SAAW,CAC9E,EAzIE,EAAK87kB,GACL,EAAKU,GACL,EAAKC,GACL,EAAKL,GACL,EAAKZ,GACL,EAAKC,GACL,EAAKC,GACL,EAAKH,GACL,EAAKI,GACL,EA0JF,SAAyBl2kB,EAAG0M,EAAQpS,GAClC,OAAOuilB,EAAe78kB,EAAGw7kB,EAAa9ukB,EAAQpS,EAChD,EA3JE,EA6JF,SAAyB0F,EAAG0M,EAAQpS,GAClC,OAAOuilB,EAAe78kB,EAAGy7kB,EAAa/ukB,EAAQpS,EAChD,EA9JE,EAAK87kB,GACL,EAAKD,GACL,EAAKppa,GACL,IAAK+pa,IAWP,SAAS3H,EAAUb,EAAWjhjB,GAC5B,OAAO,SAASoB,GACd,IAIIjb,EACA9T,EACArD,EANAqQ,EAAS,GACTpS,GAAK,EACL2c,EAAI,EACJ5U,EAAIiskB,EAAU/zkB,OAOlB,IAFMk0B,aAAgBc,OAAOd,EAAO,IAAIc,MAAMd,MAErCn0B,EAAI+H,GACqB,KAA5BiskB,EAAU5yjB,WAAWphB,KACvBoS,EAAOzR,KAAKqzkB,EAAUlwkB,MAAM6Y,EAAG3c,IACgB,OAA1CoF,EAAM61kB,GAAK/hkB,EAAI86jB,EAAU3yjB,SAASrhB,KAAckZ,EAAI86jB,EAAU3yjB,SAASrhB,GACvEoF,EAAY,MAAN8T,EAAY,IAAM,KACzBnX,EAASgxB,EAAQ7Z,MAAIA,EAAInX,EAAOoyB,EAAM/uB,IAC1CgN,EAAOzR,KAAKuY,GACZyD,EAAI3c,EAAI,GAKZ,OADAoS,EAAOzR,KAAKqzkB,EAAUlwkB,MAAM6Y,EAAG3c,IACxBoS,EAAOrO,KAAK,GACrB,CACF,CAEA,SAASy+kB,EAASxO,EAAW99f,GAC3B,OAAO,SAAS9jE,GACd,IAEI0lD,EAAMs6F,EAFN1sJ,EAAI68hB,GAAQ,UAAMx2hB,EAAW,GAGjC,GAFQw2kB,EAAe78kB,EAAGsukB,EAAW5hkB,GAAU,GAAI,IAE1CA,EAAOnS,OAAQ,OAAO,KAG/B,GAAI,MAAOyF,EAAG,OAAO,IAAIuvB,KAAKvvB,EAAE+uB,GAChC,GAAI,MAAO/uB,EAAG,OAAO,IAAIuvB,KAAW,IAANvvB,EAAE+sB,GAAY,MAAO/sB,EAAIA,EAAE2hE,EAAI,IAY7D,GATI6O,KAAO,MAAOxwE,KAAIA,EAAEwwE,EAAI,GAGxB,MAAOxwE,IAAGA,EAAEs6D,EAAIt6D,EAAEs6D,EAAI,GAAW,GAANt6D,EAAEygB,QAGrBpa,IAARrG,EAAEquB,IAAiBruB,EAAEquB,EAAI,MAAOruB,EAAIA,EAAE8wC,EAAI,GAG1C,MAAO9wC,EAAG,CACZ,GAAIA,EAAE6Z,EAAI,GAAK7Z,EAAE6Z,EAAI,GAAI,OAAO,KAC1B,MAAO7Z,IAAIA,EAAE4F,EAAI,GACnB,MAAO5F,GAC2B0sJ,GAApCt6F,EAAOijhB,GAAQx4C,GAAQ78hB,EAAEmuB,EAAG,EAAG,KAAgB2kI,YAC/C1gG,EAAOs6F,EAAM,GAAa,IAARA,EAAYynb,GAAU1ukB,KAAK2sD,GAAQ+hhB,GAAU/hhB,GAC/DA,EAAOmhhB,GAAOr/gB,OAAO9B,EAAkB,GAAXpyD,EAAE6Z,EAAI,IAClC7Z,EAAEmuB,EAAIikC,EAAK4gG,iBACXhzJ,EAAEquB,EAAI+jC,EAAK2gG,cACX/yJ,EAAEA,EAAIoyD,EAAKygG,cAAgB7yJ,EAAE4F,EAAI,GAAK,IAEA8mJ,GAAtCt6F,EAAOgjhB,GAAUv4C,GAAQ78hB,EAAEmuB,EAAG,EAAG,KAAgB8B,SACjDmiC,EAAOs6F,EAAM,GAAa,IAARA,EAAYinb,GAAWlukB,KAAK2sD,GAAQuhhB,GAAWvhhB,GACjEA,EAAOkhhB,GAAQp/gB,OAAO9B,EAAkB,GAAXpyD,EAAE6Z,EAAI,IACnC7Z,EAAEmuB,EAAIikC,EAAKziC,cACX3vB,EAAEquB,EAAI+jC,EAAKviC,WACX7vB,EAAEA,EAAIoyD,EAAKriC,WAAa/vB,EAAE4F,EAAI,GAAK,EAEvC,MAAW,MAAO5F,GAAK,MAAOA,KACtB,MAAOA,IAAIA,EAAE4F,EAAI,MAAO5F,EAAIA,EAAEgtB,EAAI,EAAI,MAAOhtB,EAAI,EAAI,GAC3D0sJ,EAAM,MAAO1sJ,EAAIq1kB,GAAQx4C,GAAQ78hB,EAAEmuB,EAAG,EAAG,IAAI2kI,YAAcsib,GAAUv4C,GAAQ78hB,EAAEmuB,EAAG,EAAG,IAAI8B,SACzFjwB,EAAEquB,EAAI,EACNruB,EAAEA,EAAI,MAAOA,GAAKA,EAAE4F,EAAI,GAAK,EAAU,EAAN5F,EAAEmuE,GAASu+E,EAAM,GAAK,EAAI1sJ,EAAE4F,EAAU,EAAN5F,EAAE+tE,GAAS2+E,EAAM,GAAK,GAKzF,MAAI,MAAO1sJ,GACTA,EAAEs6D,GAAKt6D,EAAEwwE,EAAI,IAAM,EACnBxwE,EAAEouB,GAAKpuB,EAAEwwE,EAAI,IACN6kgB,GAAQr1kB,IAIVo1kB,GAAUp1kB,EACnB,CACF,CAEA,SAAS68kB,EAAe78kB,EAAGsukB,EAAW5hkB,EAAQuK,GAO5C,IANA,IAGIzD,EACA5Q,EAJAtI,EAAI,EACJ+H,EAAIiskB,EAAU/zkB,OACd8zB,EAAI3hB,EAAOnS,OAIRD,EAAI+H,GAAG,CACZ,GAAI4U,GAAKoX,EAAG,OAAQ,EAEpB,GAAU,MADV7a,EAAI86jB,EAAU5yjB,WAAWphB,OAIvB,GAFAkZ,EAAI86jB,EAAU3yjB,OAAOrhB,OACrBsI,EAAQg6kB,EAAOppkB,KAAK+hkB,GAAOjH,EAAU3yjB,OAAOrhB,KAAOkZ,MACnCyD,EAAIrU,EAAM5C,EAAG0M,EAAQuK,IAAM,EAAI,OAAQ,OAClD,GAAIzD,GAAK9G,EAAOgP,WAAWzE,KAChC,OAAQ,CAEZ,CAEA,OAAOA,CACT,CAuFA,OAzMAoW,EAAQtJ,EAAIorjB,EAAUqM,EAAanujB,GACnCA,EAAQ0hD,EAAIoggB,EAAUsM,EAAapujB,GACnCA,EAAQ7Z,EAAI27jB,EAAUmM,EAAiBjujB,GACvCsvjB,EAAW54jB,EAAIorjB,EAAUqM,EAAamB,GACtCA,EAAW5tgB,EAAIoggB,EAAUsM,EAAakB,GACtCA,EAAWnpkB,EAAI27jB,EAAUmM,EAAiBqB,GAoMnC,CACLtglB,OAAQ,SAASiykB,GACf,IAAI/lkB,EAAI4mkB,EAAUb,GAAa,GAAIjhjB,GAEnC,OADA9kB,EAAEnB,SAAW,WAAa,OAAOknkB,CAAW,EACrC/lkB,CACT,EACA3F,MAAO,SAAS0rkB,GACd,IAAI7tjB,EAAIq8jB,EAASxO,GAAa,IAAI,GAElC,OADA7tjB,EAAErZ,SAAW,WAAa,OAAOknkB,CAAW,EACrC7tjB,CACT,EACA60jB,UAAW,SAAShH,GAClB,IAAI/lkB,EAAI4mkB,EAAUb,GAAa,GAAIqO,GAEnC,OADAp0kB,EAAEnB,SAAW,WAAa,OAAOknkB,CAAW,EACrC/lkB,CACT,EACAw0kB,SAAU,SAASzO,GACjB,IAAI7tjB,EAAIq8jB,EAASxO,GAAa,IAAI,GAElC,OADA7tjB,EAAErZ,SAAW,WAAa,OAAOknkB,CAAW,EACrC7tjB,CACT,EAEJ,CC7WW8xjB,CAAa9mjB,GACtB+yI,GAAapxI,GAAO/wB,OACR+wB,GAAOxqB,MACnB0ykB,GAAYlojB,GAAOkojB,UACRlojB,GAAO2vjB,QAEpB,CAlBAn0Q,CAAc,CACZ2yQ,SAAU,SACV9sjB,KAAM,aACN0jC,KAAM,eACNwphB,QAAS,CAAC,KAAM,MAChBlvb,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YACzEqvb,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDxujB,OAAQ,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YACvH4ogB,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,SQhB1Ej8hB,MAAMhB,UAAUmF,MAEpB,aAAS2lB,GACtB,MAAoB,kBAANA,GAAkB,WAAYA,EACxCA,EACA9pB,MAAM8J,KAAKggB,EACjB,CCNe,aAASy0R,GAEtB,IADA,IAAIn2S,EAAIm2S,EAAOj+S,OAAQmxB,EAAI,IAAIzxB,MAAMoI,KAC5BA,GAAK,GAAGqpB,EAAErpB,GAAKA,EACxB,OAAOqpB,CACT,CCCA,SAASsxjB,IAAWh9kB,EAAG9B,GACrB,OAAO8B,EAAE9B,EACX,CAEA,SAAS++kB,IAAY/+kB,GACnB,MAAMs6S,EAAS,GAEf,OADAA,EAAOt6S,IAAMA,EACNs6S,CACT,iICbA,SAASp8D,IAAmB32F,GAAO,OAQnC,SAA4BA,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAO4na,IAAkB5na,EAAM,CARhDk2a,CAAmBl2a,IAM7D,SAA0BsjN,GAAQ,GAAsB,qBAAXjtW,QAA0BA,OAAOC,YAAYqD,OAAO2pW,GAAO,OAAO9uW,MAAM8J,KAAKglW,EAAO,CAN5DkyN,CAAiBx1a,IAItF,SAAqC/5H,EAAG0hiB,GAAU,IAAK1hiB,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO2hiB,IAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAc,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAM,GAAU,QAANhF,GAAqB,QAANA,EAAa,OAAOpI,MAAM8J,KAAK2nB,GAAI,GAAU,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAI,OAAOgrjB,IAAkB3hiB,EAAG0hiB,EAAS,CAJjUE,CAA4B7na,IAE1H,WAAgC,MAAM,IAAIz9I,UAAU,uIAAyI,CAF3D4zjB,EAAsB,CAUxJ,SAASvO,IAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAOyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAM,OAAOyhK,CAAM,CAEtL,IAAItpI,IAAW,SAAkBn4B,GAC/B,OAAOA,CACT,EAEW4ilB,IAAe,CACxB,4BAA4B,GAG1BC,IAAgB,SAAuBp7kB,GACzC,OAAOA,IAAQm7kB,GACjB,EAEIE,IAAS,SAAgB51kB,GAC3B,OAAO,SAAS61kB,IACd,OAAyB,IAArBx0kB,UAAUtO,QAAqC,IAArBsO,UAAUtO,QAAgB4ilB,IAAct0kB,UAAUtO,QAAU,OAAI8L,EAAYwC,UAAU,IAC3Gw0kB,EAGF71kB,EAAGiM,WAAM,EAAQ5K,UAC1B,CACF,EAEIy0kB,IAAS,SAASA,EAAOj7kB,EAAGmF,GAC9B,OAAU,IAANnF,EACKmF,EAGF41kB,KAAO,WACZ,IAAK,IAAI1zW,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAGzB,IAAI10I,EAAa1xE,EAAKhZ,QAAO,SAAUgL,GACrC,OAAOA,IAAQ2nkB,GACjB,IAAG3ilB,OAEH,OAAI06F,GAAc5yF,EACTmF,EAAGiM,WAAM,EAAQ8P,GAGnB+5jB,EAAOj7kB,EAAI4yF,EAAYmof,KAAO,WACnC,IAAK,IAAItzW,EAAQjhO,UAAUtO,OAAQuoZ,EAAW,IAAI7oZ,MAAM6vO,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACxF+4K,EAAS/4K,GAASlhO,UAAUkhO,GAG9B,IAAIwzW,EAAUh6jB,EAAK9c,KAAI,SAAU8O,GAC/B,OAAO4nkB,IAAc5nkB,GAAOutY,EAAS55V,QAAU3zC,CACjD,IACA,OAAO/N,EAAGiM,WAAM,EAAQ2oO,IAAmBmhW,GAAS3/kB,OAAOklZ,GAC7D,IACF,GACF,EAEWp+S,IAAQ,SAAel9F,GAChC,OAAO81kB,IAAO91kB,EAAGjN,OAAQiN,EAC3B,EACWilB,IAAQ,SAAeqhL,EAAO5xL,GAGvC,IAFA,IAAIupI,EAAM,GAEDnrJ,EAAIwzM,EAAOxzM,EAAI4hB,IAAO5hB,EAC7BmrJ,EAAInrJ,EAAIwzM,GAASxzM,EAGnB,OAAOmrJ,CACT,EACWh/I,IAAMi+F,KAAM,SAAUl9F,EAAIi+I,GACnC,OAAIxrJ,MAAMqR,QAAQm6I,GACTA,EAAIh/I,IAAIe,GAGVpI,OAAOC,KAAKomJ,GAAKh/I,KAAI,SAAUvI,GACpC,OAAOunJ,EAAIvnJ,EACb,IAAGuI,IAAIe,EACT,IACW4gW,IAAU,WACnB,IAAK,IAAI34F,EAAQ5mQ,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMw1Q,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFnsP,EAAKmsP,GAAS7mQ,UAAU6mQ,GAG1B,IAAKnsP,EAAKhpB,OACR,OAAOk4B,IAGT,IAAIjsB,EAAM+c,EAAKiiE,UAEXg4f,EAAUh3kB,EAAI,GACdi3kB,EAAUj3kB,EAAIpI,MAAM,GACxB,OAAO,WACL,OAAOq/kB,EAAQpljB,QAAO,SAAU2D,EAAKx0B,GACnC,OAAOA,EAAGw0B,EACZ,GAAGwhjB,EAAQ/pkB,WAAM,EAAQ5K,WAC3B,CACF,EACW28E,IAAU,SAAiBigE,GACpC,OAAIxrJ,MAAMqR,QAAQm6I,GACTA,EAAIjgE,UAINigE,EAAIlzI,MAAM,IAAIizE,QAAQnnF,KAAK,GACpC,EACWw9F,IAAU,SAAiBr0F,GACpC,IAAI82F,EAAW,KACXqtd,EAAa,KACjB,OAAO,WACL,IAAK,IAAI97S,EAAQhnQ,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAM41Q,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFvsP,EAAKusP,GAASjnQ,UAAUinQ,GAG1B,OAAIxxK,GAAY/6E,EAAK9Y,OAAM,SAAU1I,EAAKzH,GACxC,OAAOyH,IAAQu8F,EAAShkG,EAC1B,IACSqxjB,GAGTrtd,EAAW/6E,EACXooiB,EAAankjB,EAAGiM,WAAM,EAAQ8P,GAEhC,CACF,ECnCA,WACEm6jB,UA1DF,SAAmBzhkB,EAAOC,EAAKs9D,GAK7B,IAJA,IAAIy6J,EAAM,IAAI5lB,MAAJ,CAAYpyM,GAClB3hB,EAAI,EACJ+P,EAAS,GAEN4pO,EAAIvzI,GAAGxkF,IAAQ5hB,EAAI,KACxB+P,EAAOpP,KAAKg5O,EAAI10N,YAChB00N,EAAMA,EAAIrlN,IAAI4qD,GACdl/E,IAGF,OAAO+P,CACT,EA+CEszkB,cAjFF,SAAuB3llB,GASrB,OANc,IAAVA,EACO,EAEA4C,KAAKC,MAAM,IAAIwzN,MAAJ,CAAYr2N,GAAOyH,MAAMwmD,IAAI,IAAI1mC,YAAc,CAIvE,EAwEEmqiB,kBArCsBhld,KAAM,SAAUpxF,EAAGC,EAAGuZ,GAC5C,IAAI8wjB,GAAQtqkB,EAEZ,OAAOsqkB,EAAO9wjB,IADFvZ,EACcqqkB,EAC5B,IAkCEC,oBAxBwBn5e,KAAM,SAAUpxF,EAAGC,EAAGwQ,GAC9C,IAAI4N,EAAOpe,GAAKD,EAEhB,OAAQyQ,EAAIzQ,IADZqe,EAAOA,GAAQm/C,IAEjB,IAqBEgtgB,wBAV4Bp5e,KAAM,SAAUpxF,EAAGC,EAAGwQ,GAClD,IAAI4N,EAAOpe,GAAKD,EAEhB,OADAqe,EAAOA,GAAQm/C,IACRl2E,KAAKwhB,IAAI,EAAGxhB,KAAKyhB,IAAI,GAAI0H,EAAIzQ,GAAKqe,GAC3C,KC/FA,SAASyqN,IAAmB32F,GAAO,OAMnC,SAA4BA,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAO4na,IAAkB5na,EAAM,CANhDk2a,CAAmBl2a,IAI7D,SAA0BsjN,GAAQ,GAAsB,qBAAXjtW,QAA0BA,OAAOC,YAAYqD,OAAO2pW,GAAO,OAAO9uW,MAAM8J,KAAKglW,EAAO,CAJ5DkyN,CAAiBx1a,IAAQ6na,IAA4B7na,IAE1H,WAAgC,MAAM,IAAIz9I,UAAU,uIAAyI,CAF3D4zjB,EAAsB,CAQxJ,SAAS5mV,IAAevvF,EAAKnrJ,GAAK,OAUlC,SAAyBmrJ,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAOA,CAAK,CAV3Byna,CAAgBzna,IAQzD,SAA+BA,EAAKnrJ,GAAK,GAAsB,qBAAXwB,UAA4BA,OAAOC,YAAYqD,OAAOqmJ,IAAO,OAAQ,IAAIs4b,EAAO,GAAQ1oY,GAAK,EAAUx9K,GAAK,EAAW+I,OAAKv6B,EAAW,IAAM,IAAK,IAAiCs8I,EAA7BpuH,EAAKkxH,EAAI3pJ,OAAOC,cAAmBs5M,GAAM1yD,EAAKpuH,EAAGjnB,QAAQ+Q,QAAoB0/jB,EAAK9ilB,KAAK0nJ,EAAG3qJ,QAAYsC,GAAKyjlB,EAAKxjlB,SAAWD,GAA3D+6M,GAAK,GAAkE,CAAE,MAAOx4M,GAAOg7B,GAAK,EAAM+I,EAAK/jC,CAAK,CAAE,QAAU,IAAWw4M,GAAsB,MAAhB9gL,EAAW,QAAWA,EAAW,QAAK,CAAE,QAAU,GAAIsD,EAAI,MAAM+I,CAAI,CAAE,CAAE,OAAOm9iB,CAAM,CARva5wB,CAAsB1na,EAAKnrJ,IAAMgzjB,IAA4B7na,EAAKnrJ,IAEnI,WAA8B,MAAM,IAAI0N,UAAU,4IAA8I,CAFvDuljB,EAAoB,CAI7J,SAASD,IAA4B5hiB,EAAG0hiB,GAAU,GAAK1hiB,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAO2hiB,IAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAiE,MAAnD,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAgB,QAANhF,GAAqB,QAANA,EAAoBpI,MAAM8J,KAAK2nB,GAAc,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAWgrjB,IAAkB3hiB,EAAG0hiB,QAAzG,CAA7O,CAA+V,CAE/Z,SAASC,IAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAOyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAM,OAAOyhK,CAAM,CAsBtL,SAASiib,IAAiB35b,GACxB,IAAIyxB,EAAQk/D,IAAe3wF,EAAM,GAC7BhoI,EAAMy5J,EAAM,GACZ15J,EAAM05J,EAAM,GAEZmoa,EAAW5hkB,EACX6hkB,EAAW9hkB,EAOf,OALIC,EAAMD,IACR6hkB,EAAW7hkB,EACX8hkB,EAAW7hkB,GAGN,CAAC4hkB,EAAUC,EACpB,CAYA,SAASC,IAAcC,EAAWC,EAAeC,GAC/C,GAAIF,EAAUz9e,IAAI,GAChB,OAAO,IAAI0tH,MAAJ,CAAY,GAGrB,IAAIkwX,EAAaC,IAAWb,cAAcS,EAAU7+jB,YAGhDk/jB,EAAkB,IAAIpwX,MAAJ,CAAY,IAAIhuG,IAAIk+d,GACtCG,EAAYN,EAAUruX,IAAI0uX,GAE1BE,EAAgC,IAAfJ,EAAmB,IAAO,GAE3CK,EADiB,IAAIvwX,MAAJ,CAAYzzN,KAAK6K,KAAKi5kB,EAAU3uX,IAAI4uX,GAAgBp/jB,aAAaqP,IAAI0vjB,GAAkB7sX,IAAIktX,GAChFltX,IAAIgtX,GACpC,OAAOJ,EAAgBO,EAAa,IAAIvwX,MAAJ,CAAYzzN,KAAK6K,KAAKm5kB,GAC5D,CAWA,SAASC,IAAqB7mlB,EAAO8mlB,EAAWT,GAC9C,IAAI7kgB,EAAO,EAEPohE,EAAS,IAAIyzE,MAAJ,CAAYr2N,GAEzB,IAAK4iJ,EAAOy1E,SAAWguX,EAAe,CACpC,IAAIU,EAASnklB,KAAK6E,IAAIzH,GAElB+mlB,EAAS,GAEXvlgB,EAAO,IAAI60I,MAAJ,CAAY,IAAIhuG,IAAIm+d,IAAWb,cAAc3llB,GAAS,GAC7D4iJ,EAAS,IAAIyzE,MAAJ,CAAYzzN,KAAKC,MAAM+/I,EAAOm1E,IAAIv2I,GAAMj6D,aAAakyM,IAAIj4I,IACzDulgB,EAAS,IAElBnkc,EAAS,IAAIyzE,MAAJ,CAAYzzN,KAAKC,MAAM7C,IAEpC,MAAqB,IAAVA,EACT4iJ,EAAS,IAAIyzE,MAAJ,CAAYzzN,KAAKC,OAAOiklB,EAAY,GAAK,IACxCT,IACVzjc,EAAS,IAAIyzE,MAAJ,CAAYzzN,KAAKC,MAAM7C,KAGlC,IAAIgnlB,EAAcpklB,KAAKC,OAAOiklB,EAAY,GAAK,GAI/C,OAHS12O,IAAQ3hW,KAAI,SAAUpE,GAC7B,OAAOu4I,EAAOhsH,IAAI,IAAIy/L,MAAJ,CAAYhsN,EAAI28kB,GAAavtX,IAAIj4I,IAAOj6D,UAC5D,IAAIkN,IACGjlB,CAAG,EAAGs3kB,EACf,CAaA,SAASG,IAAc5ikB,EAAKD,EAAK0ikB,EAAWT,GAC1C,IAAIC,EAAmBz1kB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EAG3F,IAAKvI,OAAO4kF,UAAU9oE,EAAMC,IAAQyikB,EAAY,IAC9C,MAAO,CACLtlgB,KAAM,IAAI60I,MAAJ,CAAY,GAClB6wX,QAAS,IAAI7wX,MAAJ,CAAY,GACrB8wX,QAAS,IAAI9wX,MAAJ,CAAY,IAKzB,IAEIzzE,EAFAphE,EAAO2kgB,IAAc,IAAI9vX,MAAJ,CAAYjyM,GAAK40M,IAAI30M,GAAK0zM,IAAI+uX,EAAY,GAAIT,EAAeC,GAKpF1jc,EADEv+H,GAAO,GAAKD,GAAO,EACZ,IAAIiyM,MAAJ,CAAY,IAGrBzzE,EAAS,IAAIyzE,MAAJ,CAAYhyM,GAAKuS,IAAIxS,GAAK2zM,IAAI,IAEvBiB,IAAI,IAAI3C,MAAJ,CAAYzzE,GAAQqZ,IAAIz6E,IAG9C,IAAI4lgB,EAAaxklB,KAAK6K,KAAKm1I,EAAOo2E,IAAI30M,GAAK0zM,IAAIv2I,GAAMj6D,YACjD8/jB,EAAUzklB,KAAK6K,KAAK,IAAI4oN,MAAJ,CAAYjyM,GAAK40M,IAAIp2E,GAAQm1E,IAAIv2I,GAAMj6D,YAC3D+/jB,EAAaF,EAAaC,EAAU,EAExC,OAAIC,EAAaR,EAERG,IAAc5ikB,EAAKD,EAAK0ikB,EAAWT,EAAeC,EAAmB,IAG1EgB,EAAaR,IAEfO,EAAUjjkB,EAAM,EAAIijkB,GAAWP,EAAYQ,GAAcD,EACzDD,EAAahjkB,EAAM,EAAIgjkB,EAAaA,GAAcN,EAAYQ,IAGzD,CACL9lgB,KAAMA,EACN0lgB,QAAStkc,EAAOo2E,IAAI,IAAI3C,MAAJ,CAAY+wX,GAAY3tX,IAAIj4I,IAChD2lgB,QAASvkc,EAAOhsH,IAAI,IAAIy/L,MAAJ,CAAYgxX,GAAS5tX,IAAIj4I,KAEjD,CAiIO,IAAI+lgB,IAAoB1jf,KAtH/B,SAA6B29J,GAC3B,IAAIx0B,EAAQgQ,IAAewkB,EAAO,GAC9Bn9O,EAAM2oN,EAAM,GACZ5oN,EAAM4oN,EAAM,GAEZ85W,EAAYj2kB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EAChFw1kB,IAAgBx1kB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,KAAmBA,UAAU,GAE/EukC,EAAQxyC,KAAKwhB,IAAI0ikB,EAAW,GAG5BU,EAAqBxqW,IADDgpW,IAAiB,CAAC3hkB,EAAKD,IACY,GACvDqjkB,EAASD,EAAmB,GAC5BE,EAASF,EAAmB,GAEhC,GAAIC,KAAY3ugB,KAAY4ugB,IAAW5ugB,IAAU,CAC/C,IAAIi2d,EAAU24C,IAAW5ugB,IAAW,CAAC2ugB,GAAQ7hlB,OAAOw+O,IAAmB3vN,IAAM,EAAGqyjB,EAAY,GAAGr4kB,KAAI,WACjG,OAAOqqE,GACT,MAAO,GAAGlzE,OAAOw+O,IAAmB3vN,IAAM,EAAGqyjB,EAAY,GAAGr4kB,KAAI,WAC9D,OAAQqqE,GACV,KAAK,CAAC4ugB,IAEN,OAAOrjkB,EAAMD,EAAMopE,IAAQuhd,GAAWA,CACxC,CAEA,GAAI04C,IAAWC,EACb,OAAOb,IAAqBY,EAAQX,EAAWT,GAIjD,IAAIsB,EAAiBV,IAAcQ,EAAQC,EAAQtyiB,EAAOixiB,GACtD7kgB,EAAOmmgB,EAAenmgB,KACtB0lgB,EAAUS,EAAeT,QACzBC,EAAUQ,EAAeR,QAEzB1vkB,EAAS+ukB,IAAWd,UAAUwB,EAASC,EAAQvwjB,IAAI,IAAIy/L,MAAJ,CAAY,IAAKoD,IAAIj4I,IAAQA,GACpF,OAAOn9D,EAAMD,EAAMopE,IAAQ/1E,GAAUA,CACvC,IAmFWmwkB,KADgB/jf,KAvE3B,SAAyBwpI,GACvB,IAAIQ,EAAQmP,IAAe3P,EAAO,GAC9BhpN,EAAMwpN,EAAM,GACZzpN,EAAMypN,EAAM,GAEZi5W,EAAYj2kB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EAChFw1kB,IAAgBx1kB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,KAAmBA,UAAU,GAE/EukC,EAAQxyC,KAAKwhB,IAAI0ikB,EAAW,GAG5Be,EAAqB7qW,IADAgpW,IAAiB,CAAC3hkB,EAAKD,IACY,GACxDqjkB,EAASI,EAAmB,GAC5BH,EAASG,EAAmB,GAEhC,GAAIJ,KAAY3ugB,KAAY4ugB,IAAW5ugB,IACrC,MAAO,CAACz0D,EAAKD,GAGf,GAAIqjkB,IAAWC,EACb,OAAOb,IAAqBY,EAAQX,EAAWT,GAGjD,IAAI7kgB,EAAO2kgB,IAAc,IAAI9vX,MAAJ,CAAYqxX,GAAQ1uX,IAAIyuX,GAAQ1vX,IAAI3iL,EAAQ,GAAIixiB,EAAe,GAIpF5ukB,EAHK24V,IAAQ3hW,KAAI,SAAUpE,GAC7B,OAAO,IAAIgsN,MAAJ,CAAYoxX,GAAQ7wjB,IAAI,IAAIy/L,MAAJ,CAAYhsN,GAAGovN,IAAIj4I,IAAOj6D,UAC3D,IAAIkN,IACSjlB,CAAG,EAAG4lC,GAAO7iC,QAAO,SAAUuf,GACzC,OAAOA,GAAS21jB,GAAU31jB,GAAS41jB,CACrC,IACA,OAAOrjkB,EAAMD,EAAMopE,IAAQ/1E,GAAUA,CACvC,IAyCsCosF,KA7BtC,SAAoCirI,EAAOg4W,GACzC,IAAIt2R,EAAQxzE,IAAelO,EAAO,GAC9BzqN,EAAMmsS,EAAM,GACZpsS,EAAMosS,EAAM,GAEZ61R,IAAgBx1kB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,KAAmBA,UAAU,GAI/Ei3kB,EAAqB9qW,IADAgpW,IAAiB,CAAC3hkB,EAAKD,IACY,GACxDqjkB,EAASK,EAAmB,GAC5BJ,EAASI,EAAmB,GAEhC,GAAIL,KAAY3ugB,KAAY4ugB,IAAW5ugB,IACrC,MAAO,CAACz0D,EAAKD,GAGf,GAAIqjkB,IAAWC,EACb,MAAO,CAACD,GAGV,IAAIryiB,EAAQxyC,KAAKwhB,IAAI0ikB,EAAW,GAC5BtlgB,EAAO2kgB,IAAc,IAAI9vX,MAAJ,CAAYqxX,GAAQ1uX,IAAIyuX,GAAQ1vX,IAAI3iL,EAAQ,GAAIixiB,EAAe,GACpF5ukB,EAAS,GAAG7R,OAAOw+O,IAAmBoiW,IAAWd,UAAU,IAAIrvX,MAAJ,CAAYoxX,GAAS,IAAIpxX,MAAJ,CAAYqxX,GAAQ1uX,IAAI,IAAI3C,MAAJ,CAAY,KAAMoD,IAAIj4I,IAAQA,IAAQ,CAACkmgB,IACnJ,OAAOrjkB,EAAMD,EAAMopE,IAAQ/1E,GAAUA,CACvC,KC7SI23N,IAAY,CAAC,SAAU,SAAU,QAAS,UAAW,OAAQ,qBAAsB,QAAS,SAChG,SAASxrO,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAAS2sM,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASmsO,IAAevvF,EAAKnrJ,GAAK,OAKlC,SAAyBmrJ,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAOA,CAAK,CAL3Byna,CAAgBzna,IAIzD,SAA+B/sJ,EAAGwC,GAAK,IAAI4xB,EAAI,MAAQp0B,EAAI,KAAO,oBAAsBoD,QAAUpD,EAAEoD,OAAOC,WAAarD,EAAE,cAAe,GAAI,MAAQo0B,EAAG,CAAE,IAAIlG,EAAGvkB,EAAG/H,EAAG0yB,EAAG1Z,EAAI,GAAI/K,GAAI,EAAImjB,GAAI,EAAI,IAAM,GAAIpxB,GAAKwyB,EAAIA,EAAE3zB,KAAKT,IAAI4U,KAAM,IAAMpS,EAAG,CAAE,GAAIkE,OAAO0tB,KAAOA,EAAG,OAAQvkB,GAAI,CAAI,MAAO,OAASA,GAAKqe,EAAItsB,EAAEnB,KAAK2zB,IAAIzO,QAAU/K,EAAErY,KAAK2rB,EAAE5uB,OAAQsb,EAAE/Y,SAAWW,GAAIqN,GAAI,GAAK,CAAE,MAAO7P,GAAKgzB,GAAI,EAAIrpB,EAAI3J,CAAG,CAAE,QAAU,IAAM,IAAK6P,GAAK,MAAQukB,EAAU,SAAME,EAAIF,EAAU,SAAK1tB,OAAO4tB,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAItB,EAAG,MAAMrpB,CAAG,CAAE,CAAE,OAAOiR,CAAG,CAAE,CAJxd65iB,CAAsB1na,EAAKnrJ,IAE5F,SAAqCoxB,EAAG0hiB,GAAU,IAAK1hiB,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO2hiB,IAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAc,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAM,GAAU,QAANhF,GAAqB,QAANA,EAAa,OAAOpI,MAAM8J,KAAK2nB,GAAI,GAAU,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAI,OAAOgrjB,IAAkB3hiB,EAAG0hiB,EAAS,CAF7TE,CAA4B7na,EAAKnrJ,IACnI,WAA8B,MAAM,IAAI0N,UAAU,4IAA8I,CADvDuljB,EAAoB,CAG7J,SAASF,IAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CAGlL,SAASo3E,IAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAG3e,SAASitjB,IAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,IAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASyoa,IAAWxuZ,EAAGpB,EAAG9E,GAAK,OAAO8E,EAAI8uZ,IAAgB9uZ,GAC1D,SAAoCvzB,EAAMgB,GAAQ,GAAIA,IAA2B,WAAlByC,IAAQzC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI6O,UAAU,4DAA+D,OAC1P,SAAgC7P,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI43O,eAAe,6DAAgE,OAAO53O,CAAM,CAD4F4gQ,CAAuB5gQ,EAAO,CADjOsib,CAA2B3tZ,EAAG4tZ,MAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,IAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,GAAK,CAG1M,SAAS8zZ,MAA8B,IAAM,IAAI5tZ,GAAK3hB,QAAQlS,UAAUkhB,QAAQhhB,KAAK4hD,QAAQC,UAAU7vC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO2hB,GAAI,CAAE,OAAQ4tZ,IAA4B,WAAuC,QAAS5tZ,CAAG,IAAM,CAClP,SAAS0tZ,IAAgB9uZ,GAA+J,OAA1J8uZ,IAAkBp7a,OAAO4O,eAAiB5O,OAAOmN,eAAe5F,OAAS,SAAyB+kB,GAAK,OAAOA,EAAEvoB,WAAa/D,OAAOmN,eAAemf,EAAI,EAAU8uZ,IAAgB9uZ,EAAI,CAEnN,SAAS2liB,IAAgB3liB,EAAGjL,GAA6I,OAAxI4wiB,IAAkBjyjB,OAAO4O,eAAiB5O,OAAO4O,eAAerH,OAAS,SAAyB+kB,EAAGjL,GAAsB,OAAjBiL,EAAEvoB,UAAYsd,EAAUiL,CAAG,EAAU2liB,IAAgB3liB,EAAGjL,EAAI,CACvM,SAASwwF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,IAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAC3O,SAASsvb,IAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAUrG,IAAIyllB,IAAwB,SAAU9vW,GAC3C,SAAS8vW,IAEP,OAxBJ,SAAyB3ohB,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CAuBpJooO,CAAgBh3O,KAAM2mlB,GACfzkK,IAAWlib,KAAM2mlB,EAAUl3kB,UACpC,CAEA,OAnBF,SAAmB+kN,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7lN,UAAU,sDAAyD4lN,EAAS30N,UAAYmG,OAAO4D,OAAO6qN,GAAcA,EAAW50N,UAAW,CAAE+C,YAAa,CAAEhE,MAAO41N,EAAUjgN,UAAU,EAAMnF,cAAc,KAAWpJ,OAAOgN,eAAewhN,EAAU,YAAa,CAAEjgN,UAAU,IAAckgN,GAAYwjW,IAAgBzjW,EAAUC,EAAa,CAkBjcqiB,CAAU6vW,EAAU9vW,GAxBApxN,EAyBAkhkB,GAzBa3qN,EAyBH,CAAC,CAC7Bl3X,IAAK,SACLlG,MAAO,WACL,IAAImvP,EAAc/tP,KAAK63C,MACrBijB,EAASizL,EAAYjzL,OACrBw4Q,EAASvlF,EAAYulF,OACrBrxU,EAAQ8rP,EAAY9rP,MACpBonC,EAAU0kN,EAAY1kN,QACtB9sB,EAAOwxO,EAAYxxO,KACnBqqkB,EAAqB74V,EAAY64V,mBACjCC,EAAQ94V,EAAY84V,MACpBC,EAAQ/4V,EAAY+4V,MACpBrxR,EAAS17E,IAAyBgU,EAAa/f,KAC7CmkN,EAAW4gI,GAAYt9P,GAAQ,GACP,MAAzBz1T,KAAK63C,MAAM4lF,WAAoC,WAAfopd,EAAM7/kB,MAAwI23N,IAAU,GAC3L,IAAIooX,EAAYxqkB,EAAKlP,KAAI,SAAUqjB,GACjC,IAAIs2jB,EAAsBJ,EAAmBl2jB,EAAO2Y,GAClD1e,EAAIq8jB,EAAoBr8jB,EACxBoK,EAAIiyjB,EAAoBjyjB,EACxBn2B,EAAQoolB,EAAoBpolB,MAC5BqolB,EAAWD,EAAoBC,SACjC,IAAKA,EACH,OAAO,KAET,IACIC,EAAUC,EADVC,EAAkB,GAEtB,GAAIvmlB,MAAMqR,QAAQ+0kB,GAAW,CAC3B,IAAII,EAAYzrW,IAAeqrW,EAAU,GACzCC,EAAWG,EAAU,GACrBF,EAAYE,EAAU,EACxB,MACEH,EAAWC,EAAYF,EAEzB,GAAe,aAAX3zQ,EAAuB,CAEzB,IAAIxxL,EAAQ+kc,EAAM/kc,MACdwlc,EAAOvyjB,EAAI+lC,EACX6vJ,EAAO28X,EAAOrllB,EACd4oN,EAAOy8X,EAAOrllB,EACdyoN,EAAO5oE,EAAMljJ,EAAQsolB,GACrBt8X,EAAO9oE,EAAMljJ,EAAQuolB,GAGzBC,EAAgBvllB,KAAK,CACnB2uC,GAAIo6K,EACJn6K,GAAIk6K,EACJj6K,GAAIk6K,EACJj6K,GAAIk6K,IAGNu8X,EAAgBvllB,KAAK,CACnB2uC,GAAIk6K,EACJj6K,GAAI62iB,EACJ52iB,GAAIk6K,EACJj6K,GAAI22iB,IAGNF,EAAgBvllB,KAAK,CACnB2uC,GAAIk6K,EACJj6K,GAAIk6K,EACJj6K,GAAIg6K,EACJ/5K,GAAIk6K,GAER,MAAO,GAAe,eAAXyoH,EAAyB,CAElC,IAAIi0Q,EAAST,EAAMhlc,MACf0lc,EAAO78jB,EAAImwC,EACX2shB,EAAQD,EAAOvllB,EACfyllB,EAAQF,EAAOvllB,EACf0llB,EAAQJ,EAAO3olB,EAAQsolB,GACvBU,EAAQL,EAAO3olB,EAAQuolB,GAG3BC,EAAgBvllB,KAAK,CACnB2uC,GAAIi3iB,EACJh3iB,GAAIm3iB,EACJl3iB,GAAIg3iB,EACJ/2iB,GAAIi3iB,IAGNR,EAAgBvllB,KAAK,CACnB2uC,GAAIg3iB,EACJ/2iB,GAAIk3iB,EACJj3iB,GAAI82iB,EACJ72iB,GAAIi3iB,IAGNR,EAAgBvllB,KAAK,CACnB2uC,GAAIi3iB,EACJh3iB,GAAIk3iB,EACJj3iB,GAAIg3iB,EACJ/2iB,GAAIg3iB,GAER,CACA,OAAoB9zX,EAAAA,cAAoB+hW,GAAO32V,IAAS,CACtD13N,UAAW,oBACXzC,IAAK,OAAON,OAAO4ilB,EAAgB/5kB,KAAI,SAAU+M,GAC/C,MAAO,GAAG5V,OAAO4V,EAAEo2B,GAAI,KAAKhsC,OAAO4V,EAAEs2B,GAAI,KAAKlsC,OAAO4V,EAAEq2B,GAAI,KAAKjsC,OAAO4V,EAAEu2B,GAC3E,MACCwhZ,GAAWi1J,EAAgB/5kB,KAAI,SAAUw6kB,GAC1C,OAAoBh0X,EAAAA,cAAoB,OAAQoL,IAAS,CAAC,EAAG4oX,EAAa,CACxE/ilB,IAAK,QAAQN,OAAOqjlB,EAAYr3iB,GAAI,KAAKhsC,OAAOqjlB,EAAYn3iB,GAAI,KAAKlsC,OAAOqjlB,EAAYp3iB,GAAI,KAAKjsC,OAAOqjlB,EAAYl3iB,MAExH,IACF,IACA,OAAoBkjL,EAAAA,cAAoB+hW,GAAO,CAC7CrujB,UAAW,sBACVw/kB,EACL,MArI0E/uB,IAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,IAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CAuI/C,CApHmC,CAoHjCpoK,EAAAA,WCpJF,SAASrxN,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAASxf,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CDkJ3Oo1G,IAAgB8ue,IAAU,eAAgB,CACxCp/b,OAAQ,QACRjgG,YAAa,IACbrlD,MAAO,EACP64D,OAAQ,EACRw4Q,OAAQ,eAEVz7N,IAAgB8ue,IAAU,cAAe,YCnJlC,IAAImB,IAAiB,SAAwB78b,GAClD,IAAI9mG,EAAW8mG,EAAK9mG,SAClB4jiB,EAA0B98b,EAAK88b,wBAC/BC,EAAc/8b,EAAK+8b,YACnBC,EAAgBh9b,EAAKg9b,cACnBC,EAAax1B,GAAgBvugB,EAAU45gB,IAC3C,IAAKmqB,EACH,OAAO,KAET,IAEIC,EAFAC,EAAqBrqB,GAAOpmhB,aAC5B0wiB,OAAqCp7kB,IAAvBm7kB,EAAmC5vW,IAAcA,IAAc,CAAC,EAAG4vW,GAAqBF,EAAWrwiB,OAAS,CAAC,EAsC/H,OAnCEswiB,EADED,EAAWrwiB,OAASqwiB,EAAWrwiB,MAAMyvB,QAC1B4ghB,EAAWrwiB,OAASqwiB,EAAWrwiB,MAAMyvB,QACvB,aAAlB2ghB,GACKF,GAA2B,IAAI9ojB,QAAO,SAAUhuB,EAAQyrK,GACpE,IAAIxqI,EAAOwqI,EAAMxqI,KACf2F,EAAQ6kI,EAAM7kI,MACZt7B,EAAOs7B,EAAMywiB,SAAWzwiB,EAAMt7B,MAAQ,GAC1C,OAAOtL,EAAOzM,OAAO+X,EAAKlP,KAAI,SAAUqjB,GACtC,MAAO,CACL1pB,KAAMkhlB,EAAWrwiB,MAAMgvS,UAAY30S,EAAK2F,MAAM0wiB,WAC9C3plB,MAAO8xB,EAAMziB,KACbgzB,MAAOvQ,EAAMk7E,KACbtkC,QAAS52C,EAEb,IACF,GAAG,KAEWq3jB,GAA2B,IAAI16kB,KAAI,SAAU+yP,GACzD,IAAIluN,EAAOkuN,EAAMluN,KACbs2iB,EAAmBt2iB,EAAKlrC,KAAK2wC,aAC7Bwoc,OAAiClze,IAArBu7kB,EAAiChwW,IAAcA,IAAc,CAAC,EAAGgwW,GAAmBt2iB,EAAK2F,OAAS,CAAC,EAC/GxO,EAAU82c,EAAU92c,QACtBp7B,EAAOkye,EAAUlye,KACjBs6kB,EAAapoG,EAAUooG,WAEzB,MAAO,CACL5qB,SAFOx9E,EAAU25E,KAGjBzwhB,QAASA,EACTriC,KAAMqhlB,EAAYxhQ,UAAY0hQ,GAAc,SAC5CtnjB,MAAOwnjB,IAA0Bv2iB,GACjCtzC,MAAOqP,GAAQo7B,EAEfi+B,QAAS64a,EAEb,IAEK3nQ,IAAcA,IAAcA,IAAc,CAAC,EAAG6vW,GAActqB,GAAO2qB,cAAcR,EAAYF,IAAe,CAAC,EAAG,CACrH1ghB,QAAS6ghB,EACTj2iB,KAAMg2iB,GAEV,EC7DA,SAAS1llB,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAAS0wN,IAAmB32F,GAAO,OAInC,SAA4BA,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAO4na,IAAkB5na,EAAM,CAJhDk2a,CAAmBl2a,IAG7D,SAA0BsjN,GAAQ,GAAsB,qBAAXjtW,QAAmD,MAAzBitW,EAAKjtW,OAAOC,WAA2C,MAAtBgtW,EAAK,cAAuB,OAAO9uW,MAAM8J,KAAKglW,EAAO,CAHxFkyN,CAAiBx1a,IAEtF,SAAqC/5H,EAAG0hiB,GAAU,IAAK1hiB,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO2hiB,IAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAc,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAM,GAAU,QAANhF,GAAqB,QAANA,EAAa,OAAOpI,MAAM8J,KAAK2nB,GAAI,GAAU,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAI,OAAOgrjB,IAAkB3hiB,EAAG0hiB,EAAS,CAFjUE,CAA4B7na,IAC1H,WAAgC,MAAM,IAAIz9I,UAAU,uIAAyI,CAD3D4zjB,EAAsB,CAKxJ,SAASvO,IAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CAClL,SAAS7vJ,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CA2BpO,SAASkmlB,IAAkBlmlB,EAAK4mC,EAAS9K,GAC9C,OAAIkyE,KAAMhuG,IAAQguG,KAAMpnE,GACf9K,EAEL2xhB,GAAW7mhB,GACN77B,KAAI/K,EAAK4mC,EAAS9K,GAEvB3T,KAAWye,GACNA,EAAQ5mC,GAEV87B,CACT,CASO,SAASqqjB,IAAqBrskB,EAAMzX,EAAKkC,EAAM6hlB,GACpD,IAAIr5G,EAAc1jY,MAAQvvF,GAAM,SAAUmU,GACxC,OAAOi4jB,IAAkBj4jB,EAAO5rB,EAClC,IACA,GAAa,WAATkC,EAAmB,CAErB,IAAIkY,EAASswd,EAAYr+d,QAAO,SAAUuf,GACxC,OAAO02E,GAAS12E,IAAU6R,WAAW7R,EACvC,IACA,OAAOxR,EAAO/d,OAAS,CAAC8hB,MAAI/D,GAAS8D,MAAI9D,IAAW,CAACw4D,KAAWA,IAClE,CAMA,OALmBmxgB,EAAYr5G,EAAYr+d,QAAO,SAAUuf,GAC1D,OAAQ+/E,KAAM//E,EAChB,IAAK8+c,GAGenie,KAAI,SAAUqjB,GAChC,OAAOw/hB,GAAWx/hB,IAAUA,aAAiByF,KAAOzF,EAAQ,EAC9D,GACF,CACO,IAgEI+3jB,IAA4B,SAAmCv2iB,GACxE,IAAI42iB,EAMA73kB,EAJF4wC,EADS3P,EACUlrC,KAAK66C,YACtBkniB,EAA8C,QAA5BD,EAAa52iB,EAAKlrC,YAAiC,IAAf8hlB,GAAyBA,EAAWnxiB,aAAe6gM,IAAcA,IAAc,CAAC,EAAGtmM,EAAKlrC,KAAK2wC,cAAezF,EAAK2F,OAAS3F,EAAK2F,MACrL0vG,EAASwhc,EAAexhc,OAC1B37C,EAAOm9e,EAAen9e,KAExB,OAAQ/pD,GACN,IAAK,OACH5wC,EAASs2I,EACT,MACF,IAAK,OACL,IAAK,QACHt2I,EAASs2I,GAAqB,SAAXA,EAAoBA,EAAS37C,EAChD,MACF,QACE36F,EAAS26F,EAGb,OAAO36F,CACT,EA4LW+3kB,IAAuB,SAA8BzskB,EAAM21B,EAAM7I,EAASiqS,EAAQ21Q,GAC3F,IACIlC,EAAYv0B,GADDtghB,EAAK2F,MAAMsM,SACcwiiB,KAAUx1kB,QAAO,SAAU+3kB,GACjE,OArB4B,SAAmC51Q,EAAQ21Q,EAAUxrd,GACnF,QAAIhtB,KAAMw4e,KAGK,eAAX31Q,EACkB,UAAb21Q,EAEM,aAAX31Q,GAGc,MAAd71M,EAFkB,UAAbwrd,EAKS,MAAdxrd,GACkB,UAAbwrd,EAGX,CAIWE,CAA0B71Q,EAAQ21Q,EAAUC,EAAcrxiB,MAAM4lF,UACzE,IACA,GAAIspd,GAAaA,EAAU5llB,OAAQ,CACjC,IAAI8E,EAAO8glB,EAAU15kB,KAAI,SAAU67kB,GACjC,OAAOA,EAAcrxiB,MAAMxO,OAC7B,IACA,OAAO9sB,EAAK0iB,QAAO,SAAUhuB,EAAQyf,GACnC,IAAImtiB,EAAa8qB,IAAkBj4jB,EAAO2Y,GAC1C,GAAIonE,KAAMotd,GAAa,OAAO5sjB,EAC9B,IAAIm4kB,EAAYvolB,MAAMqR,QAAQ2rjB,GAAc,CAAC56iB,MAAI46iB,GAAa76iB,MAAI66iB,IAAe,CAACA,EAAYA,GAC1FwrB,EAAcpjlB,EAAKg5B,QAAO,SAAUqqjB,EAAc1olB,GACpD,IAAIo8G,EAAa2re,IAAkBj4jB,EAAO9vB,EAAG,GACzC2olB,EAAaH,EAAU,GAAK5nlB,KAAK6E,IAAIxF,MAAMqR,QAAQ8qG,GAAcA,EAAW,GAAKA,GACjFwse,EAAaJ,EAAU,GAAK5nlB,KAAK6E,IAAIxF,MAAMqR,QAAQ8qG,GAAcA,EAAW,GAAKA,GACrF,MAAO,CAACx7G,KAAKyhB,IAAIsmkB,EAAYD,EAAa,IAAK9nlB,KAAKwhB,IAAIwmkB,EAAYF,EAAa,IACnF,GAAG,CAAC5xgB,KAAWA,MACf,MAAO,CAACl2E,KAAKyhB,IAAIomkB,EAAY,GAAIp4kB,EAAO,IAAKzP,KAAKwhB,IAAIqmkB,EAAY,GAAIp4kB,EAAO,IAC/E,GAAG,CAACymE,KAAWA,KACjB,CACA,OAAO,IACT,EAwBW+xgB,IAA+B,SAAsCltkB,EAAMkjO,EAAOz4O,EAAMssU,EAAQu1Q,GACzG,IAAIa,EAAUjqW,EAAMpyO,KAAI,SAAU6kC,GAChC,IAAI7I,EAAU6I,EAAK2F,MAAMxO,QACzB,MAAa,WAATriC,GAAqBqiC,GAChB2/iB,IAAqBzskB,EAAM21B,EAAM7I,EAASiqS,IAE5Cs1Q,IAAqBrskB,EAAM8sB,EAASriC,EAAM6hlB,EACnD,IACA,GAAa,WAAT7hlB,EAEF,OAAO0ilB,EAAQzqjB,QAGf,SAAUhuB,EAAQyf,GAChB,MAAO,CAAClvB,KAAKyhB,IAAIhS,EAAO,GAAIyf,EAAM,IAAKlvB,KAAKwhB,IAAI/R,EAAO,GAAIyf,EAAM,IACnE,GAAG,CAACgnD,KAAWA,MAEjB,IAAIhlE,EAAM,CAAC,EAEX,OAAOg3kB,EAAQzqjB,QAAO,SAAUhuB,EAAQyf,GACtC,IAAK,IAAIxvB,EAAI,EAAGujB,EAAMiM,EAAMvvB,OAAQD,EAAIujB,EAAKvjB,IAEtCwR,EAAIge,EAAMxvB,MAEbwR,EAAIge,EAAMxvB,KAAM,EAGhB+P,EAAOpP,KAAK6uB,EAAMxvB,KAGtB,OAAO+P,CACT,GAAG,GACL,EACW04kB,IAAoB,SAA2Br2Q,EAAQ21Q,GAChE,MAAkB,eAAX31Q,GAAwC,UAAb21Q,GAAmC,aAAX31Q,GAAsC,UAAb21Q,GAAmC,YAAX31Q,GAAqC,cAAb21Q,GAAuC,WAAX31Q,GAAoC,eAAb21Q,CACxL,EAUWW,IAAuB,SAA8Bla,EAAOma,EAAUC,EAAUC,GACzF,GAAIA,EACF,OAAOra,EAAMrikB,KAAI,SAAUqjB,GACzB,OAAOA,EAAM4miB,UACf,IAEF,IAAI0yB,EAAQC,EACR5zkB,EAASq5jB,EAAMrikB,KAAI,SAAUqjB,GAO/B,OANIA,EAAM4miB,aAAeuyB,IACvBG,GAAS,GAEPt5jB,EAAM4miB,aAAewyB,IACvBG,GAAS,GAEJv5jB,EAAM4miB,UACf,IAOA,OANK0yB,GACH3zkB,EAAOxU,KAAKgolB,GAETI,GACH5zkB,EAAOxU,KAAKiolB,GAEPzzkB,CACT,EASW6zkB,IAAiB,SAAwBC,EAAMC,EAAQC,GAChE,IAAKF,EAAM,OAAO,KAClB,IAAIroc,EAAQqoc,EAAKroc,MACbwoc,EAAkBH,EAAKG,gBACzBtjlB,EAAOmjlB,EAAKnjlB,KACZqsB,EAAQ82jB,EAAK92jB,MACXk3jB,EAAuC,cAAvBJ,EAAKK,cAAgC1oc,EAAM4nb,YAAc,EAAI,EAC7E5ugB,GAAUsvhB,GAAUC,IAAmB,aAATrjlB,GAAuB86I,EAAM4nb,UAAY5nb,EAAM4nb,YAAc6gB,EAAgB,EAI/G,OAHAzvhB,EAA2B,cAAlBqvhB,EAAKlB,WAAuC,OAAV51jB,QAA4B,IAAVA,OAAmB,EAASA,EAAMlyB,SAAW,EAAoC,EAAhC2ujB,GAASz8hB,EAAM,GAAKA,EAAM,IAAUynC,EAASA,EAGvJsvhB,IAAWD,EAAKza,OAASya,EAAKM,YAClBN,EAAKza,OAASya,EAAKM,WAAWp9kB,KAAI,SAAUqjB,GACxD,IAAIg6jB,EAAeJ,EAAkBA,EAAgB5llB,QAAQgsB,GAASA,EACtE,MAAO,CAGL4miB,WAAYx1a,EAAM4oc,GAAgB5vhB,EAClCl8D,MAAO8xB,EACPoqC,OAAQA,EAEZ,IACc3pD,QAAO,SAAUopB,GAC7B,OAAQ01hB,KAAM11hB,EAAI+8hB,WACpB,IAIE6yB,EAAKQ,eAAiBR,EAAKS,kBACtBT,EAAKS,kBAAkBv9kB,KAAI,SAAUqjB,EAAOxgB,GACjD,MAAO,CACLonjB,WAAYx1a,EAAMpxH,GAASoqC,EAC3Bl8D,MAAO8xB,EACPxgB,MAAOA,EACP4qD,OAAQA,EAEZ,IAEEgnF,EAAM4tb,QAAU2a,EACXvoc,EAAM4tb,MAAMya,EAAKzE,WAAWr4kB,KAAI,SAAUqjB,GAC/C,MAAO,CACL4miB,WAAYx1a,EAAMpxH,GAASoqC,EAC3Bl8D,MAAO8xB,EACPoqC,OAAQA,EAEZ,IAIKgnF,EAAM5iI,SAAS7R,KAAI,SAAUqjB,EAAOxgB,GACzC,MAAO,CACLonjB,WAAYx1a,EAAMpxH,GAASoqC,EAC3Bl8D,MAAO0rlB,EAAkBA,EAAgB55jB,GAASA,EAClDxgB,MAAOA,EACP4qD,OAAQA,EAEZ,GACF,EASI+vhB,IAAiB,IAAInvkB,QACdovkB,IAAuB,SAA8BC,EAAgBC,GAC9E,GAA4B,oBAAjBA,EACT,OAAOD,EAEJF,IAAeh4kB,IAAIk4kB,IACtBF,IAAelhlB,IAAIohlB,EAAgB,IAAIrvkB,SAEzC,IAAIuvkB,EAAeJ,IAAer9kB,IAAIu9kB,GACtC,GAAIE,EAAap4kB,IAAIm4kB,GACnB,OAAOC,EAAaz9kB,IAAIw9kB,GAE1B,IAAIE,EAAiB,WACnBH,EAAe1wkB,WAAM,EAAQ5K,WAC7Bu7kB,EAAa3wkB,WAAM,EAAQ5K,UAC7B,EAEA,OADAw7kB,EAAathlB,IAAIqhlB,EAAcE,GACxBA,CACT,EA0DIC,IAAM,KA0INC,IAAmB,CACrB5ke,KA1EsB,SAAoB44L,GAC1C,IAAIn2S,EAAIm2S,EAAOj+S,OACf,KAAI8H,GAAK,GAGT,IAAK,IAAI4U,EAAI,EAAGoX,EAAImqR,EAAO,GAAGj+S,OAAQ0c,EAAIoX,IAAKpX,EAG7C,IAFA,IAAIk6iB,EAAW,EACXxzH,EAAW,EACNrjc,EAAI,EAAGA,EAAI+H,IAAK/H,EAAG,CAC1B,IAAItC,EAAQqxjB,KAAM7wQ,EAAOl+S,GAAG2c,GAAG,IAAMuhS,EAAOl+S,GAAG2c,GAAG,GAAKuhS,EAAOl+S,GAAG2c,GAAG,GAGhEjf,GAAS,GACXwgT,EAAOl+S,GAAG2c,GAAG,GAAKk6iB,EAClB34Q,EAAOl+S,GAAG2c,GAAG,GAAKk6iB,EAAWn5jB,EAC7Bm5jB,EAAW34Q,EAAOl+S,GAAG2c,GAAG,KAExBuhS,EAAOl+S,GAAG2c,GAAG,GAAK0mb,EAClBnlJ,EAAOl+S,GAAG2c,GAAG,GAAK0mb,EAAW3lc,EAC7B2lc,EAAWnlJ,EAAOl+S,GAAG2c,GAAG,GAG5B,CAEJ,EAoDEovT,OClvBa,SAAS7tB,EAAQ14P,GAC9B,IAAOz9C,EAAIm2S,EAAOj+S,QAAU,EAA5B,CACA,IAAK,IAAID,EAAG+H,EAAgC8rB,EAA7BlX,EAAI,EAAGoX,EAAImqR,EAAO,GAAGj+S,OAAW0c,EAAIoX,IAAKpX,EAAG,CACzD,IAAKkX,EAAI7zB,EAAI,EAAGA,EAAI+H,IAAK/H,EAAG6zB,GAAKqqR,EAAOl+S,GAAG2c,GAAG,IAAM,EACpD,GAAIkX,EAAG,IAAK7zB,EAAI,EAAGA,EAAI+H,IAAK/H,EAAGk+S,EAAOl+S,GAAG2c,GAAG,IAAMkX,CACpD,CACAs2jB,IAAKjsS,EAAQ14P,EALyB,CAMxC,ED6uBE2kiB,KAAMC,IAENC,WEtvBa,SAASnsS,EAAQ14P,GAC9B,IAAOz9C,EAAIm2S,EAAOj+S,QAAU,EAA5B,CACA,IAAK,IAAkC8H,EAA9B4U,EAAI,EAAGokkB,EAAK7iS,EAAO14P,EAAM,IAAQzxB,EAAIgtjB,EAAG9glB,OAAQ0c,EAAIoX,IAAKpX,EAAG,CACnE,IAAK,IAAI3c,EAAI,EAAG6zB,EAAI,EAAG7zB,EAAI+H,IAAK/H,EAAG6zB,GAAKqqR,EAAOl+S,GAAG2c,GAAG,IAAM,EAC3DokkB,EAAGpkkB,GAAG,IAAMokkB,EAAGpkkB,GAAG,IAAMkX,EAAI,CAC9B,CACAs2jB,IAAKjsS,EAAQ14P,EALyB,CAMxC,EFivBE8kiB,OGxvBa,SAASpsS,EAAQ14P,GAC9B,IAAOz9C,EAAIm2S,EAAOj+S,QAAU,IAAS8zB,GAAKgtjB,EAAK7iS,EAAO14P,EAAM,KAAKvlD,QAAU,EAA3E,CACA,IAAK,IAAkB8glB,EAAIhtjB,EAAGhsB,EAArB8rB,EAAI,EAAGlX,EAAI,EAAaA,EAAIoX,IAAKpX,EAAG,CAC3C,IAAK,IAAI3c,EAAI,EAAGorC,EAAK,EAAGC,EAAK,EAAGrrC,EAAI+H,IAAK/H,EAAG,CAK1C,IAJA,IAAIirE,EAAKizO,EAAO14P,EAAMxlD,IAClBuqlB,EAAOt/gB,EAAGtuD,GAAG,IAAM,EAEnB2uB,GAAMi/iB,GADCt/gB,EAAGtuD,EAAI,GAAG,IAAM,IACF,EAChBjd,EAAI,EAAGA,EAAIM,IAAKN,EAAG,CAC1B,IAAI42E,EAAK4nO,EAAO14P,EAAM9lD,IAGtB4rC,IAFWgrC,EAAG35D,GAAG,IAAM,IACZ25D,EAAG35D,EAAI,GAAG,IAAM,EAE7B,CACAyuB,GAAMm/iB,EAAMl/iB,GAAMC,EAAKi/iB,CACzB,CACAxJ,EAAGpkkB,EAAI,GAAG,IAAMokkB,EAAGpkkB,EAAI,GAAG,GAAKkX,EAC3BuX,IAAIvX,GAAKwX,EAAKD,EACpB,CACA21iB,EAAGpkkB,EAAI,GAAG,IAAMokkB,EAAGpkkB,EAAI,GAAG,GAAKkX,EAC/Bs2jB,IAAKjsS,EAAQ14P,EAnBwE,CAoBvF,EHouBEqxgB,SAjD0B,SAAwB34Q,GAClD,IAAIn2S,EAAIm2S,EAAOj+S,OACf,KAAI8H,GAAK,GAGT,IAAK,IAAI4U,EAAI,EAAGoX,EAAImqR,EAAO,GAAGj+S,OAAQ0c,EAAIoX,IAAKpX,EAE7C,IADA,IAAIk6iB,EAAW,EACN72jB,EAAI,EAAGA,EAAI+H,IAAK/H,EAAG,CAC1B,IAAItC,EAAQqxjB,KAAM7wQ,EAAOl+S,GAAG2c,GAAG,IAAMuhS,EAAOl+S,GAAG2c,GAAG,GAAKuhS,EAAOl+S,GAAG2c,GAAG,GAGhEjf,GAAS,GACXwgT,EAAOl+S,GAAG2c,GAAG,GAAKk6iB,EAClB34Q,EAAOl+S,GAAG2c,GAAG,GAAKk6iB,EAAWn5jB,EAC7Bm5jB,EAAW34Q,EAAOl+S,GAAG2c,GAAG,KAExBuhS,EAAOl+S,GAAG2c,GAAG,GAAK,EAClBuhS,EAAOl+S,GAAG2c,GAAG,GAAK,EAGtB,CAEJ,GA6BW6tkB,IAAiB,SAAwBnvkB,EAAMovkB,EAAYC,GACpE,IAAIC,EAAWF,EAAWt+kB,KAAI,SAAU6kC,GACtC,OAAOA,EAAK2F,MAAMxO,OACpB,IACIyijB,EAAiBV,IAAiBQ,GAClCthlB,ENnvBS,WACb,IAAIrE,EAAO6yF,GAAS,IAChBpyC,EAAQqliB,IACRjxhB,EAASkxhB,IACTptlB,EAAQgllB,IAEZ,SAASt5kB,EAAMiS,GACb,IACIrb,EACA+qlB,EAFA3nY,EAAKzjN,MAAM8J,KAAK1E,EAAKoU,MAAMra,KAAMyP,WAAYo0kB,KAC1C56kB,EAAIq7M,EAAGnjN,OAAQ0c,GAAK,EAG3B,IAAK,MAAMjX,KAAK2V,EACd,IAAKrb,EAAI,IAAK2c,EAAG3c,EAAI+H,IAAK/H,GACvBojN,EAAGpjN,GAAG2c,GAAK,CAAC,GAAIjf,EAAMgI,EAAG09M,EAAGpjN,GAAG4D,IAAK+Y,EAAGtB,KAAQA,KAAO3V,EAI3D,IAAK1F,EAAI,EAAG+qlB,EAAKp6kB,IAAM60C,EAAM49J,IAAMpjN,EAAI+H,IAAK/H,EAC1CojN,EAAG2nY,EAAG/qlB,IAAIgP,MAAQhP,EAIpB,OADA45D,EAAOwpJ,EAAI2nY,GACJ3nY,CACT,CAkBA,OAhBAh6M,EAAMrE,KAAO,SAASkrB,GACpB,OAAO1hB,UAAUtO,QAAU8E,EAAoB,oBAANkrB,EAAmBA,EAAI2nE,GAASj4F,MAAM8J,KAAKwmB,IAAK7mB,GAASrE,CACpG,EAEAqE,EAAM1L,MAAQ,SAASuyB,GACrB,OAAO1hB,UAAUtO,QAAUvC,EAAqB,oBAANuyB,EAAmBA,EAAI2nE,IAAU3nE,GAAI7mB,GAAS1L,CAC1F,EAEA0L,EAAMo8C,MAAQ,SAASv1B,GACrB,OAAO1hB,UAAUtO,QAAUulD,EAAa,MAALv1B,EAAY46jB,IAAyB,oBAAN56jB,EAAmBA,EAAI2nE,GAASj4F,MAAM8J,KAAKwmB,IAAK7mB,GAASo8C,CAC7H,EAEAp8C,EAAMwwD,OAAS,SAAS3pC,GACtB,OAAO1hB,UAAUtO,QAAU25D,EAAc,MAAL3pC,EAAY66jB,IAAa76jB,EAAG7mB,GAASwwD,CAC3E,EAEOxwD,CACT,CMysBc4hlB,GAEXjmlB,KAAK4llB,GAAUjtlB,OAAM,SAAUgI,EAAG9B,GACjC,OAAQ6jlB,IAAkB/hlB,EAAG9B,EAAK,EACpC,IAAG4hD,MAAMyliB,KAERrxhB,OAAOgxhB,GACR,OAAOxhlB,EAAMiS,EACf,EAgGO,SAAS6vkB,IAAwBngX,GACtC,IAAIk+W,EAAOl+W,EAAMk+W,KACfza,EAAQzjW,EAAMyjW,MACd2c,EAAWpgX,EAAMogX,SACjB37jB,EAAQu7M,EAAMv7M,MACdxgB,EAAQ+7N,EAAM/7N,MACdm5B,EAAU4iM,EAAM5iM,QAClB,GAAkB,aAAd8gjB,EAAKnjlB,KAAqB,CAG5B,IAAKmjlB,EAAKmC,yBAA2BnC,EAAK9gjB,UAAYonE,KAAM//E,EAAMy5jB,EAAK9gjB,UAAW,CAEhF,IAAIkjjB,EAAc97B,GAAiBif,EAAO,QAASh/iB,EAAMy5jB,EAAK9gjB,UAC9D,GAAIkjjB,EACF,OAAOA,EAAYj1B,WAAa+0B,EAAW,CAE/C,CACA,OAAO3c,EAAMx/jB,GAASw/jB,EAAMx/jB,GAAOonjB,WAAa+0B,EAAW,EAAI,IACjE,CACA,IAAIztlB,EAAQ+plB,IAAkBj4jB,EAAQ+/E,KAAMpnE,GAAqB8gjB,EAAK9gjB,QAAfA,GACvD,OAAQonE,KAAM7xG,GAA6B,KAApBurlB,EAAKroc,MAAMljJ,EACpC,CACO,IAAI4tlB,IAAyB,SAAgC//W,GAClE,IAAI09W,EAAO19W,EAAM09W,KACfza,EAAQjjW,EAAMijW,MACd50gB,EAAS2xK,EAAM3xK,OACfuxhB,EAAW5/W,EAAM4/W,SACjB37jB,EAAQ+7M,EAAM/7M,MACdxgB,EAAQu8N,EAAMv8N,MAChB,GAAkB,aAAdi6kB,EAAKnjlB,KACP,OAAO0okB,EAAMx/jB,GAASw/jB,EAAMx/jB,GAAOonjB,WAAax8f,EAAS,KAE3D,IAAIl8D,EAAQ+plB,IAAkBj4jB,EAAOy5jB,EAAK9gjB,QAAS8gjB,EAAKjrkB,OAAOhP,IAC/D,OAAQugG,KAAM7xG,GAAqD,KAA5CurlB,EAAKroc,MAAMljJ,GAASytlB,EAAW,EAAIvxhB,CAC5D,EAmCW2xhB,IAAyB,SAAgCC,EAAaroX,EAAYovL,GAC3F,OAAOztZ,OAAOC,KAAKymlB,GAAaztjB,QAAO,SAAUhuB,EAAQ07kB,GACvD,IAEIztkB,EAFQwtkB,EAAYC,GACAC,YACC3tjB,QAAO,SAAU2D,EAAKlS,GAC7C,IAAIiD,EAAsBjD,EAAM1rB,MAAMq/N,EAAYovL,EAAW,GATrDx0X,QAAO,SAAUhuB,EAAQyf,GACnC,MAAO,CAACzN,MAAIyN,EAAMlsB,OAAO,CAACyM,EAAO,KAAKE,OAAOi2F,KAAYpkF,MAAI0N,EAAMlsB,OAAO,CAACyM,EAAO,KAAKE,OAAOi2F,KAChG,GAAG,CAAC1vB,KAAU,MAQV,MAAO,CAACl2E,KAAKyhB,IAAI2f,EAAI,GAAIjP,EAAE,IAAKnyB,KAAKwhB,IAAI4f,EAAI,GAAIjP,EAAE,IACrD,GAAG,CAAC+jD,KAAWA,MACf,MAAO,CAACl2E,KAAKyhB,IAAI/D,EAAO,GAAIjO,EAAO,IAAKzP,KAAKwhB,IAAI9D,EAAO,GAAIjO,EAAO,IACrE,GAAG,CAACymE,KAAWA,MAAWrqE,KAAI,SAAU4D,GACtC,OAAOA,IAAWymE,KAAYzmE,KAAYymE,IAAW,EAAIzmE,CAC3D,GACF,EACW47kB,IAAgB,kDAChBC,IAAgB,mDAChBC,IAAuB,SAA8BC,EAAiBC,EAAYC,GAC3F,GAAItikB,KAAWoikB,GACb,OAAOA,EAAgBC,EAAYC,GAErC,IAAKrslB,MAAMqR,QAAQ86kB,GACjB,OAAOC,EAET,IAAI/tkB,EAAS,GAGb,GAAIkoF,GAAS4lf,EAAgB,IAC3B9tkB,EAAO,GAAKgukB,EAAoBF,EAAgB,GAAKxrlB,KAAKyhB,IAAI+pkB,EAAgB,GAAIC,EAAW,SACxF,GAAIJ,IAAc7vkB,KAAKgwkB,EAAgB,IAAK,CACjD,IAAIpulB,GAASiulB,IAAc7ykB,KAAKgzkB,EAAgB,IAAI,GACpD9tkB,EAAO,GAAK+tkB,EAAW,GAAKrulB,CAC9B,MAAWgsB,KAAWoikB,EAAgB,IACpC9tkB,EAAO,GAAK8tkB,EAAgB,GAAGC,EAAW,IAE1C/tkB,EAAO,GAAK+tkB,EAAW,GAEzB,GAAI7lf,GAAS4lf,EAAgB,IAC3B9tkB,EAAO,GAAKgukB,EAAoBF,EAAgB,GAAKxrlB,KAAKwhB,IAAIgqkB,EAAgB,GAAIC,EAAW,SACxF,GAAIH,IAAc9vkB,KAAKgwkB,EAAgB,IAAK,CACjD,IAAIxke,GAAUske,IAAc9ykB,KAAKgzkB,EAAgB,IAAI,GACrD9tkB,EAAO,GAAK+tkB,EAAW,GAAKzke,CAC9B,MAAW59F,KAAWoikB,EAAgB,IACpC9tkB,EAAO,GAAK8tkB,EAAgB,GAAGC,EAAW,IAE1C/tkB,EAAO,GAAK+tkB,EAAW,GAIzB,OAAO/tkB,CACT,EASWiukB,IAAoB,SAA2BhD,EAAMza,EAAO0d,GAErE,GAAIjD,GAAQA,EAAKroc,OAASqoc,EAAKroc,MAAM4nb,UAAW,CAE9C,IAAI2jB,EAAYlD,EAAKroc,MAAM4nb,YAC3B,IAAK0jB,GAASC,EAAY,EACxB,OAAOA,CAEX,CACA,GAAIlD,GAAQza,GAASA,EAAMvukB,QAAU,EAAG,CAKtC,IAJA,IAAImslB,EAAexof,KAAO4qe,GAAO,SAAUp9iB,GACzC,OAAOA,EAAEgliB,UACX,IACI+0B,EAAW30gB,IACNx2E,EAAI,EAAGujB,EAAM6okB,EAAanslB,OAAQD,EAAIujB,EAAKvjB,IAAK,CACvD,IAAIglS,EAAMonT,EAAapslB,GACnB07B,EAAO0wjB,EAAapslB,EAAI,GAC5BmrlB,EAAW7qlB,KAAKyhB,KAAKijR,EAAIoxR,YAAc,IAAM16hB,EAAK06hB,YAAc,GAAI+0B,EACtE,CACA,OAAOA,IAAa30gB,IAAW,EAAI20gB,CACrC,CACA,OAAOe,OAAQnglB,EAAY,CAC7B,EAQWsglB,IAA4B,SAAmCP,EAAiBQ,EAAkBC,GAC3G,OAAKT,GAAoBA,EAAgB7rlB,OAGrCivG,MAAQ48e,EAAiBx/kB,KAAIiglB,EAAW,6BACnCD,EAEFR,EALEQ,CAMX,EACWE,IAAiB,SAAwBC,EAAermhB,GACjE,IAAIyhhB,EAAiB4E,EAAc3mlB,KAAK2wC,aAAe6gM,IAAcA,IAAc,CAAC,EAAGm1W,EAAc3mlB,KAAK2wC,cAAeg2iB,EAAc91iB,OAAS81iB,EAAc91iB,MAC1JxO,EAAU0/iB,EAAe1/iB,QAC3Bp7B,EAAO86kB,EAAe96kB,KACtBjL,EAAO+llB,EAAe/llB,KACtB6mY,EAAYk/M,EAAel/M,UAC3B+jN,EAAc7E,EAAe6E,YAC7BC,EAAY9E,EAAe8E,UAC3B/zB,EAAOivB,EAAejvB,KACxB,OAAOthV,IAAcA,IAAc,CAAC,EAAGu6U,GAAY46B,GAAe,IAAS,CAAC,EAAG,CAC7EtkjB,QAASA,EACTrmC,KAAMA,EACN6mY,UAAWA,EACX57X,KAAMA,GAAQo7B,EACdpI,MAAOwnjB,IAA0BkF,GACjC/ulB,MAAO+plB,IAAkBrhhB,EAASj+B,GAClCriC,KAAM4mlB,EACNtmhB,QAASA,EACTumhB,UAAWA,EACX/zB,KAAMA,GAEV,EIpiCA,SAASt3jB,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAASxf,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAG3O,IAAIqrlB,IAAc,CAAC,SAAU,MAAO,IAAK,MCNzC,SAAStrlB,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAAS2sM,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASqD,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CAEtb,SAASwqiB,IAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,IAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASyoa,IAAWxuZ,EAAGpB,EAAG9E,GAAK,OAAO8E,EAAI8uZ,IAAgB9uZ,GAC1D,SAAoCvzB,EAAMgB,GAAQ,GAAIA,IAA2B,WAAlByC,IAAQzC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI6O,UAAU,4DAA+D,OAC1P,SAAgC7P,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI43O,eAAe,6DAAgE,OAAO53O,CAAM,CAD4F4gQ,CAAuB5gQ,EAAO,CADjOsib,CAA2B3tZ,EAAG4tZ,MAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,IAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,GAAK,CAG1M,SAAS8zZ,MAA8B,IAAM,IAAI5tZ,GAAK3hB,QAAQlS,UAAUkhB,QAAQhhB,KAAK4hD,QAAQC,UAAU7vC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO2hB,GAAI,CAAE,OAAQ4tZ,IAA4B,WAAuC,QAAS5tZ,CAAG,IAAM,CAClP,SAAS0tZ,IAAgB9uZ,GAA+J,OAA1J8uZ,IAAkBp7a,OAAO4O,eAAiB5O,OAAOmN,eAAe5F,OAAS,SAAyB+kB,GAAK,OAAOA,EAAEvoB,WAAa/D,OAAOmN,eAAemf,EAAI,EAAU8uZ,IAAgB9uZ,EAAI,CAEnN,SAAS2liB,IAAgB3liB,EAAGjL,GAA6I,OAAxI4wiB,IAAkBjyjB,OAAO4O,eAAiB5O,OAAO4O,eAAerH,OAAS,SAAyB+kB,EAAGjL,GAAsB,OAAjBiL,EAAEvoB,UAAYsd,EAAUiL,CAAG,EAAU2liB,IAAgB3liB,EAAGjL,EAAI,CACvM,SAASwwF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,IAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAC3O,SAASsvb,IAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAgB5G,IA0BI06iB,IAAU,SAAiBpuhB,GAC7B,OAAOA,EAAE4pC,kBAAoB5pC,EAAE4pC,eAAej2D,MAChD,EACW4slB,IAAqB,SAAUx5X,GACxC,SAASw5X,EAAMl2iB,GACb,IAAIpd,EAgEJ,OA1HJ,SAAyBujC,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CA2DpJooO,CAAgBh3O,KAAM+tlB,GAEtBl2e,IADAp9E,EAAQynZ,IAAWlib,KAAM+tlB,EAAO,CAACl2iB,IACV,cAAc,SAAUrqB,GACzCiN,EAAMuzjB,aACRjuhB,aAAatlC,EAAMuzjB,YACnBvzjB,EAAMuzjB,WAAa,MAEjBvzjB,EAAMpwB,MAAM4jlB,kBACdxzjB,EAAMyzjB,oBAAoB1gkB,GACjBiN,EAAMpwB,MAAM8jlB,eACrB1zjB,EAAM2zjB,gBAAgB5gkB,EAE1B,IACAqqF,IAAgBp9E,EAAO,mBAAmB,SAAUjN,GAC1B,MAApBA,EAAE4pC,gBAA0B5pC,EAAE4pC,eAAej2D,OAAS,GACxDs5B,EAAM4zjB,WAAW7gkB,EAAE4pC,eAAe,GAEtC,IACAygD,IAAgBp9E,EAAO,iBAAiB,WACtCA,EAAMy7E,SAAS,CACb+3e,mBAAmB,EACnBE,eAAe,IACd,WACD,IAAIpgW,EAActzN,EAAMod,MACtB47W,EAAW1lK,EAAY0lK,SACvB40F,EAAYt6P,EAAYs6P,UACxBhkR,EAAa0pB,EAAY1pB,WACb,OAAdgkR,QAAoC,IAAdA,GAAwBA,EAAU,CACtD50F,SAAUA,EACVpvL,WAAYA,GAEhB,IACA5pM,EAAM6zjB,uBACR,IACAz2e,IAAgBp9E,EAAO,sBAAsB,YACvCA,EAAMpwB,MAAM4jlB,mBAAqBxzjB,EAAMpwB,MAAM8jlB,iBAC/C1zjB,EAAMuzjB,WAAazolB,OAAO2nB,WAAWuN,EAAM8zjB,cAAe9zjB,EAAMod,MAAM22iB,cAE1E,IACA32e,IAAgBp9E,EAAO,+BAA+B,WACpDA,EAAMy7E,SAAS,CACbu4e,cAAc,GAElB,IACA52e,IAAgBp9E,EAAO,+BAA+B,WACpDA,EAAMy7E,SAAS,CACbu4e,cAAc,GAElB,IACA52e,IAAgBp9E,EAAO,wBAAwB,SAAUjN,GACvD,IAAI4rC,EAAQwif,IAAQpuhB,GAAKA,EAAE4pC,eAAe,GAAK5pC,EAC/CiN,EAAMy7E,SAAS,CACb+3e,mBAAmB,EACnBE,eAAe,EACfO,gBAAiBt1hB,EAAM9F,QAEzB74B,EAAMk0jB,uBACR,IACAl0jB,EAAMm0jB,2BAA6B,CACjChoc,OAAQnsH,EAAMo0jB,yBAAyBthlB,KAAKktB,EAAO,UACnDosH,KAAMpsH,EAAMo0jB,yBAAyBthlB,KAAKktB,EAAO,SAEnDA,EAAMpwB,MAAQ,CAAC,EACRowB,CACT,CAEA,OArHF,SAAmB+5L,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7lN,UAAU,sDAAyD4lN,EAAS30N,UAAYmG,OAAO4D,OAAO6qN,GAAcA,EAAW50N,UAAW,CAAE+C,YAAa,CAAEhE,MAAO41N,EAAUjgN,UAAU,EAAMnF,cAAc,KAAWpJ,OAAOgN,eAAewhN,EAAU,YAAa,CAAEjgN,UAAU,IAAckgN,GAAYwjW,IAAgBzjW,EAAUC,EAAa,CAoHjcqiB,CAAUi3W,EAAOx5X,GA1HG9uM,EA2HAsokB,EA3Ha/xN,EA2HN,CAAC,CAC1Bl3X,IAAK,uBACLlG,MAAO,WACDoB,KAAKgulB,aACPjuhB,aAAa//D,KAAKgulB,YAClBhulB,KAAKgulB,WAAa,MAEpBhulB,KAAKsulB,uBACP,GACC,CACDxplB,IAAK,WACLlG,MAAO,SAAkB89K,GACvB,IAAI91B,EAAS81B,EAAM91B,OACjBC,EAAO61B,EAAM71B,KACXioc,EAAc9ulB,KAAKqK,MAAMyklB,YACzBvpS,EAAevlT,KAAK63C,MACtB2pS,EAAMj8B,EAAai8B,IAEjBpvS,EADKmzQ,EAAahpS,KACDpb,OAAS,EAC1B8hB,EAAMzhB,KAAKyhB,IAAI2jI,EAAQC,GACvB7jI,EAAMxhB,KAAKwhB,IAAI4jI,EAAQC,GACvBk0T,EAAWgzI,EAAMgB,gBAAgBD,EAAa7rkB,GAC9C+3b,EAAW+yI,EAAMgB,gBAAgBD,EAAa9rkB,GAClD,MAAO,CACLqhN,WAAY02O,EAAWA,EAAWv5H,EAClCiyE,SAAUunD,IAAa5oa,EAAYA,EAAY4oa,EAAWA,EAAWx5H,EAEzE,GACC,CACD18U,IAAK,gBACLlG,MAAO,SAAuBsR,GAC5B,IAAIy1S,EAAe3lT,KAAK63C,MACtBt7B,EAAOopS,EAAappS,KACpByykB,EAAgBrpS,EAAaqpS,cAC7B3ljB,EAAUs8Q,EAAat8Q,QACrBxN,EAAO8sjB,IAAkBpskB,EAAKrM,GAAQm5B,EAASn5B,GACnD,OAAO0a,KAAWokkB,GAAiBA,EAAcnzjB,EAAM3rB,GAAS2rB,CAClE,GACC,CACD/2B,IAAK,wBACLlG,MAAO,WACL2G,OAAOgD,iBAAiB,UAAWvI,KAAKuulB,eAAe,GACvDhplB,OAAOgD,iBAAiB,WAAYvI,KAAKuulB,eAAe,GACxDhplB,OAAOgD,iBAAiB,YAAavI,KAAKqulB,YAAY,EACxD,GACC,CACDvplB,IAAK,wBACLlG,MAAO,WACL2G,OAAOukD,oBAAoB,UAAW9pD,KAAKuulB,eAAe,GAC1DhplB,OAAOukD,oBAAoB,WAAY9pD,KAAKuulB,eAAe,GAC3DhplB,OAAOukD,oBAAoB,YAAa9pD,KAAKqulB,YAAY,EAC3D,GACC,CACDvplB,IAAK,kBACLlG,MAAO,SAAyB4uB,GAC9B,IAAIsre,EAAc94f,KAAKqK,MACrBqklB,EAAkB51F,EAAY41F,gBAC9B9nc,EAASkyW,EAAYlyW,OACrBC,EAAOiyW,EAAYjyW,KACjBq/J,EAAelmT,KAAK63C,MACtBltB,EAAIu7R,EAAav7R,EACjB1oB,EAAQikT,EAAajkT,MACrBgtlB,EAAiB/oS,EAAa+oS,eAC9B5qX,EAAa6hF,EAAa7hF,WAC1BovL,EAAWvtG,EAAautG,SACxBzyK,EAAWklE,EAAallE,SACtBl3H,EAAQt8F,EAAE8lC,MAAQo7hB,EAClB5ke,EAAQ,EACVA,EAAQtoH,KAAKyhB,IAAI6mG,EAAOn/F,EAAI1oB,EAAQgtlB,EAAiBpoc,EAAMl8H,EAAI1oB,EAAQgtlB,EAAiBroc,GAC/E98B,EAAQ,IACjBA,EAAQtoH,KAAKwhB,IAAI8mG,EAAOn/F,EAAIi8H,EAAQj8H,EAAIk8H,IAE1C,IAAI4jT,EAAWzqc,KAAKigO,SAAS,CAC3Br5E,OAAQA,EAAS98B,EACjB+8B,KAAMA,EAAO/8B,IAEV2gV,EAASpmO,aAAeA,GAAcomO,EAASh3C,WAAaA,IAAazyK,GAC5EA,EAASypN,GAEXzqc,KAAKk2G,SAAS,CACZ0wC,OAAQA,EAAS98B,EACjB+8B,KAAMA,EAAO/8B,EACb4ke,gBAAiBlhkB,EAAE8lC,OAEvB,GACC,CACDxuD,IAAK,2BACLlG,MAAO,SAAkC6kB,EAAI+J,GAC3C,IAAI4rC,EAAQwif,IAAQpuhB,GAAKA,EAAE4pC,eAAe,GAAK5pC,EAC/CxtB,KAAKk2G,SAAS,CACZi4e,eAAe,EACfF,mBAAmB,EACnBiB,kBAAmBzrkB,EACnB0rkB,gBAAiB/1hB,EAAM9F,QAEzBtzD,KAAK2ulB,uBACP,GACC,CACD7plB,IAAK,sBACLlG,MAAO,SAA6B4uB,GAClC,IAAI0re,EAAel5f,KAAKqK,MACtB8klB,EAAkBj2F,EAAai2F,gBAC/BD,EAAoBh2F,EAAag2F,kBACjCroc,EAAOqyW,EAAaryW,KACpBD,EAASsyW,EAAatyW,OACpB26F,EAAYvhP,KAAKqK,MAAM6klB,GACvB7nS,EAAernT,KAAK63C,MACtBltB,EAAI08R,EAAa18R,EACjB1oB,EAAQolT,EAAaplT,MACrBgtlB,EAAiB5nS,EAAa4nS,eAC9BjuW,EAAWqmE,EAAarmE,SACxBwgG,EAAMn6B,EAAam6B,IACnBjlU,EAAO8qS,EAAa9qS,KAClBonN,EAAS,CACX/8E,OAAQ5mJ,KAAKqK,MAAMu8I,OACnBC,KAAM7mJ,KAAKqK,MAAMw8I,MAEf/8B,EAAQt8F,EAAE8lC,MAAQ67hB,EAClBrle,EAAQ,EACVA,EAAQtoH,KAAKyhB,IAAI6mG,EAAOn/F,EAAI1oB,EAAQgtlB,EAAiB1tW,GAC5Cz3H,EAAQ,IACjBA,EAAQtoH,KAAKwhB,IAAI8mG,EAAOn/F,EAAI42N,IAE9B5d,EAAOurX,GAAqB3tW,EAAYz3H,EACxC,IAAI2gV,EAAWzqc,KAAKigO,SAAS0D,GACzBU,EAAaomO,EAASpmO,WACxBovL,EAAWg3C,EAASh3C,SAQtBzzZ,KAAKk2G,SAAS2B,IAAgBA,IAAgB,CAAC,EAAGq3e,EAAmB3tW,EAAYz3H,GAAQ,kBAAmBt8F,EAAE8lC,QAAQ,WAChH0tL,GARU,WACd,IAAI5uM,EAAY71B,EAAKpb,OAAS,EAC9B,MAA0B,WAAtB+tlB,IAAmCroc,EAAOD,EAASy9E,EAAam9G,IAAQ,EAAIiyE,EAAWjyE,IAAQ,IAAM36L,EAAOD,GAAU6sQ,IAAarhX,GAAmC,SAAtB88iB,IAAiCroc,EAAOD,EAAS6sQ,EAAWjyE,IAAQ,EAAIn9G,EAAam9G,IAAQ,IAAM36L,EAAOD,GAAU6sQ,IAAarhX,CAIvR,CAGQg9iB,IACFpuW,EAASypN,EAGf,GACF,GACC,CACD3lc,IAAK,8BACLlG,MAAO,SAAqC6+H,EAAWh6G,GACrD,IAAIu8O,EAAShgQ,KAETu5f,EAAev5f,KAAKqK,MACtByklB,EAAcv1F,EAAau1F,YAC3Bloc,EAAS2yW,EAAa3yW,OACtBC,EAAO0yW,EAAa1yW,KAElBwoc,EAAoBrvlB,KAAKqK,MAAMoZ,GAC/B29F,EAAe0te,EAAYpqlB,QAAQ2qlB,GACvC,IAAsB,IAAlBjue,EAAJ,CAGA,IAAIqpV,EAAWrpV,EAAeqc,EAC9B,MAAkB,IAAdgtU,GAAmBA,GAAYqkJ,EAAY3tlB,QAA/C,CAGA,IAAImulB,EAAgBR,EAAYrkJ,GAGrB,WAAPhnb,GAAmB6rkB,GAAiBzoc,GAAe,SAAPpjI,GAAiB6rkB,GAAiB1oc,GAGlF5mJ,KAAKk2G,SAAS2B,IAAgB,CAAC,EAAGp0F,EAAI6rkB,IAAgB,WACpDtvV,EAAOnoN,MAAMmpM,SAASgf,EAAO//B,SAAS,CACpCr5E,OAAQo5G,EAAO31P,MAAMu8I,OACrBC,KAAMm5G,EAAO31P,MAAMw8I,OAEvB,GAZA,CAJA,CAiBF,GACC,CACD/hJ,IAAK,mBACLlG,MAAO,WACL,IAAI2pT,EAAevoT,KAAK63C,MACtBltB,EAAI49R,EAAa59R,EACjBoK,EAAIwzR,EAAaxzR,EACjB9yB,EAAQsmT,EAAatmT,MACrBN,EAAS4mT,EAAa5mT,OACtBiqG,EAAO28M,EAAa38M,KACpB27C,EAASghK,EAAahhK,OACxB,OAAoBssE,EAAAA,cAAoB,OAAQ,CAC9CtsE,OAAQA,EACR37C,KAAMA,EACNjhF,EAAGA,EACHoK,EAAGA,EACH9yB,MAAOA,EACPN,OAAQA,GAEZ,GACC,CACDmD,IAAK,iBACLlG,MAAO,WACL,IAAIoqT,EAAehpT,KAAK63C,MACtBltB,EAAIq+R,EAAar+R,EACjBoK,EAAIi0R,EAAaj0R,EACjB9yB,EAAQ+mT,EAAa/mT,MACrBN,EAASqnT,EAAarnT,OACtB4a,EAAOysS,EAAazsS,KACpB4nC,EAAW6kQ,EAAa7kQ,SACxB5iB,EAAUynR,EAAaznR,QACrBgujB,EAAel5e,EAAAA,SAASC,KAAKnyD,GACjC,OAAKoriB,EAGe17X,EAAAA,aAAmB07X,EAAc,CACnD5kkB,EAAGA,EACHoK,EAAGA,EACH9yB,MAAOA,EACPN,OAAQA,EACRC,OAAQ2/B,EACR2pE,SAAS,EACT3uF,KAAMA,IATC,IAWX,GACC,CACDzX,IAAK,uBACLlG,MAAO,SAA8B4wlB,EAAY/rkB,GAC/C,IAAIgskB,EACFC,EACAnmK,EAASvpb,KACPm8f,EAAen8f,KAAK63C,MACtB9iB,EAAIone,EAAapne,EACjBk6jB,EAAiB9yF,EAAa8yF,eAC9BttlB,EAASw6f,EAAax6f,OACtBgulB,EAAYxzF,EAAawzF,UACzB1kL,EAAYkxF,EAAalxF,UACzB1uZ,EAAO4/e,EAAa5/e,KACpB8nN,EAAa83R,EAAa93R,WAC1BovL,EAAW0oG,EAAa1oG,SACtB9oY,EAAInpB,KAAKwhB,IAAIwskB,EAAYxvlB,KAAK63C,MAAMltB,GACpCilkB,EAAiBp3W,IAAcA,IAAc,CAAC,EAAGu6U,GAAY/yjB,KAAK63C,OAAO,IAAS,CAAC,EAAG,CACxFltB,EAAGA,EACHoK,EAAGA,EACH9yB,MAAOgtlB,EACPttlB,OAAQA,IAENkulB,EAAiB5kL,GAAa,cAAczma,OAAiD,QAAzCirlB,EAAmBlzkB,EAAK8nN,UAA8C,IAArBorX,OAA8B,EAASA,EAAiBxhlB,KAAM,iBAAiBzJ,OAA6C,QAArCkrlB,EAAiBnzkB,EAAKk3Y,UAA0C,IAAnBi8L,OAA4B,EAASA,EAAezhlB,MACjS,OAAoB4lN,EAAAA,cAAoB+hW,GAAO,CAC7C/xU,SAAU,EACVuK,KAAM,SACN,aAAcyhW,EACd,gBAAiBL,EACjBjolB,UAAW,2BACX0lP,aAAcjtP,KAAK8vlB,4BACnB5iW,aAAcltP,KAAK+vlB,4BACnB73P,YAAal4V,KAAK4ulB,2BAA2BnrkB,GAC7C4yY,aAAcr2Z,KAAK4ulB,2BAA2BnrkB,GAC9C4qO,UAAW,SAAmB7gO,GACvB,CAAC,YAAa,cAAcrd,SAASqd,EAAE1oB,OAG5C0oB,EAAEukC,iBACFvkC,EAAEojC,kBACF24X,EAAOymK,4BAAsC,eAAVxikB,EAAE1oB,IAAuB,GAAK,EAAG2e,GACtE,EACA6qO,QAAS,WACPi7L,EAAOrzU,SAAS,CACd+5e,oBAAoB,GAExB,EACA/oN,OAAQ,WACNqiD,EAAOrzU,SAAS,CACd+5e,oBAAoB,GAExB,EACA3qlB,MAAO,CACL00B,OAAQ,eAET+zjB,EAAMmC,gBAAgBP,EAAWC,GACtC,GACC,CACD9qlB,IAAK,cACLlG,MAAO,SAAqBgoJ,EAAQC,GAClC,IAAI41W,EAAez8f,KAAK63C,MACtB9iB,EAAI0ne,EAAa1ne,EACjBpzB,EAAS86f,EAAa96f,OACtB4lJ,EAASk1W,EAAal1W,OACtB0nc,EAAiBxyF,EAAawyF,eAC5BtkkB,EAAInpB,KAAKyhB,IAAI2jI,EAAQC,GAAQooc,EAC7BhtlB,EAAQT,KAAKwhB,IAAIxhB,KAAK6E,IAAIwgJ,EAAOD,GAAUqoc,EAAgB,GAC/D,OAAoBp7X,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAW,uBACX0lP,aAAcjtP,KAAK8vlB,4BACnB5iW,aAAcltP,KAAK+vlB,4BACnB73P,YAAal4V,KAAKmwlB,qBAClB95L,aAAcr2Z,KAAKmwlB,qBACnB7qlB,MAAO,CACL00B,OAAQ,QAEVutH,OAAQ,OACR37C,KAAM27C,EACNxgG,YAAa,GACbp8B,EAAGA,EACHoK,EAAGA,EACH9yB,MAAOA,EACPN,OAAQA,GAEZ,GACC,CACDmD,IAAK,aACLlG,MAAO,WACL,IAAIm+f,EAAgB/8f,KAAK63C,MACvBwsL,EAAa04R,EAAc14R,WAC3BovL,EAAWspG,EAActpG,SACzB1+X,EAAIgoe,EAAchoe,EAClBpzB,EAASo7f,EAAcp7f,OACvBstlB,EAAiBlyF,EAAckyF,eAC/B1nc,EAASw1W,EAAcx1W,OACrBqyW,EAAe55f,KAAKqK,MACtBu8I,EAASgzW,EAAahzW,OACtBC,EAAO+yW,EAAa/yW,KAElBu/H,EAAQ,CACVjsC,cAAe,OACfvuI,KAAM27C,GAER,OAAoBssE,EAAAA,cAAoB+hW,GAAO,CAC7CrujB,UAAW,wBACGssN,EAAAA,cAAoB86G,GAAM1vG,IAAS,CACjD6vW,WAAY,MACZE,eAAgB,SAChBrkjB,EAAGnpB,KAAKyhB,IAAI2jI,EAAQC,GAVT,EAWX9xH,EAAGA,EAAIpzB,EAAS,GACfykR,GAAQpmR,KAAKowlB,cAAc/rX,IAA2BxQ,EAAAA,cAAoB86G,GAAM1vG,IAAS,CAC1F6vW,WAAY,QACZE,eAAgB,SAChBrkjB,EAAGnpB,KAAKwhB,IAAI4jI,EAAQC,GAAQooc,EAfjB,EAgBXl6jB,EAAGA,EAAIpzB,EAAS,GACfykR,GAAQpmR,KAAKowlB,cAAc38L,IAChC,GACC,CACD3uZ,IAAK,SACLlG,MAAO,WACL,IAAI2+f,EAAgBv9f,KAAK63C,MACvBt7B,EAAOghf,EAAchhf,KACrBhV,EAAYg2f,EAAch2f,UAC1B48C,EAAWo5c,EAAcp5c,SACzBx5B,EAAI4ye,EAAc5ye,EAClBoK,EAAIwoe,EAAcxoe,EAClB9yB,EAAQs7f,EAAct7f,MACtBN,EAAS47f,EAAc57f,OACvB0ulB,EAAiB9yF,EAAc8yF,eAC7Bj2F,EAAep6f,KAAKqK,MACtBu8I,EAASwzW,EAAaxzW,OACtBC,EAAOuzW,EAAavzW,KACpB4nc,EAAer0F,EAAaq0F,aAC5BN,EAAgB/zF,EAAa+zF,cAC7BF,EAAoB7zF,EAAa6zF,kBACjCgC,EAAqB71F,EAAa61F,mBACpC,IAAK1zkB,IAASA,EAAKpb,SAAWimG,GAASz8E,KAAOy8E,GAASryE,KAAOqyE,GAASnlG,KAAWmlG,GAASzlG,IAAWM,GAAS,GAAKN,GAAU,EAC5H,OAAO,KAET,IAAIg0jB,EAAa9sL,GAAK,iBAAkBthY,GACpC+olB,EAAiD,IAAnCz8X,EAAAA,SAAe7/K,MAAMmQ,GACnC7+C,EDheuB,SAA6B2I,EAAMrP,GAClE,IAAKqP,EACH,OAAO,KAET,IAAIsilB,EAAYtilB,EAAKyF,QAAQ,QAAQ,SAAUwhB,GAC7C,OAAOA,EAAEhC,aACX,IACIjiB,EAAS68kB,IAAY7ujB,QAAO,SAAU2D,EAAKlS,GAC7C,OAAO8nN,IAAcA,IAAc,CAAC,EAAG51M,GAAM,CAAC,EAAGi1E,IAAgB,CAAC,EAAGnnF,EAAQ6/jB,EAAW3xlB,GAC1F,GAAG,CAAC,GAEJ,OADAqS,EAAOhD,GAAQrP,EACRqS,CACT,CCodkBu/kB,CAAoB,aAAc,QAC9C,OAAoB38X,EAAAA,cAAoB+hW,GAAO,CAC7CrujB,UAAWoujB,EACXzoU,aAAcltP,KAAKywlB,mBACnB16L,YAAa/1Z,KAAK0wlB,gBAClBprlB,MAAOA,GACNtF,KAAK2wlB,mBAAoBL,GAAetwlB,KAAK4wlB,iBAAkB5wlB,KAAK6wlB,YAAYjqc,EAAQC,GAAO7mJ,KAAK8wlB,qBAAqBlqc,EAAQ,UAAW5mJ,KAAK8wlB,qBAAqBjqc,EAAM,SAAU4nc,GAAgBN,GAAiBF,GAAqBgC,GAAsBI,IAAmBrwlB,KAAK+wlB,aAC/R,IAxe2C90N,EAyezC,CAAC,CACHn3X,IAAK,yBACLlG,MAAO,SAAgCi5C,GACrC,IAAIltB,EAAIktB,EAAMltB,EACZoK,EAAI8iB,EAAM9iB,EACV9yB,EAAQ41C,EAAM51C,MACdN,EAASk2C,EAAMl2C,OACf4lJ,EAAS1vG,EAAM0vG,OACbypc,EAAQxvlB,KAAKC,MAAMszB,EAAIpzB,EAAS,GAAK,EACzC,OAAoBkyN,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoB,OAAQ,CACrGlpM,EAAGA,EACHoK,EAAGA,EACH9yB,MAAOA,EACPN,OAAQA,EACRiqG,KAAM27C,EACNA,OAAQ,SACOssE,EAAAA,cAAoB,OAAQ,CAC3CrjL,GAAI7lB,EAAI,EACR8lB,GAAIugjB,EACJtgjB,GAAI/lB,EAAI1oB,EAAQ,EAChB0uC,GAAIqgjB,EACJplf,KAAM,OACN27C,OAAQ,SACOssE,EAAAA,cAAoB,OAAQ,CAC3CrjL,GAAI7lB,EAAI,EACR8lB,GAAIugjB,EAAQ,EACZtgjB,GAAI/lB,EAAI1oB,EAAQ,EAChB0uC,GAAIqgjB,EAAQ,EACZplf,KAAM,OACN27C,OAAQ,SAEZ,GACC,CACDziJ,IAAK,kBACLlG,MAAO,SAAyBqsI,EAAQpzF,GAStC,OAPkBg8K,EAAAA,eAAqB5oF,GACZ4oF,EAAAA,aAAmB5oF,EAAQpzF,GAC3CjtB,KAAWqgH,GACRA,EAAOpzF,GAEPk2iB,EAAMkD,uBAAuBp5iB,EAG7C,GACC,CACD/yC,IAAK,2BACLlG,MAAO,SAAkCmjY,EAAWjiI,GAClD,IAAIvjP,EAAOwlX,EAAUxlX,KACnBta,EAAQ8/X,EAAU9/X,MAClB0oB,EAAIo3W,EAAUp3W,EACdskkB,EAAiBltN,EAAUktN,eAC3BiC,EAAWnvN,EAAUmvN,SACrB7sX,EAAa09J,EAAU19J,WACvBovL,EAAW1xB,EAAU0xB,SACvB,GAAIl3Y,IAASujP,EAAU8qJ,UAAYsmM,IAAapxV,EAAUqxV,aACxD,OAAO34W,IAAc,CACnBoyK,SAAUruY,EACV60kB,mBAAoBnC,EACpBkC,aAAcD,EACdG,MAAO1mkB,EACP2mkB,UAAWrvlB,GACVsa,GAAQA,EAAKpb,OA9gBN,SAAqB8pJ,GACrC,IAAI1uI,EAAO0uI,EAAK1uI,KACd8nN,EAAap5E,EAAKo5E,WAClBovL,EAAWxoQ,EAAKwoQ,SAChB9oY,EAAIsgI,EAAKtgI,EACT1oB,EAAQgpJ,EAAKhpJ,MACbgtlB,EAAiBhkc,EAAKgkc,eACxB,IAAK1ykB,IAASA,EAAKpb,OACjB,MAAO,CAAC,EAEV,IAAIsjB,EAAMlI,EAAKpb,OACX2gJ,EAAQyvc,KAAarykB,OAAOmU,KAAM,EAAG5O,IAAM4O,MAAM,CAAC1I,EAAGA,EAAI1oB,EAAQgtlB,IACjEH,EAAchtc,EAAM5iI,SAAS7R,KAAI,SAAUqjB,GAC7C,OAAOoxH,EAAMpxH,EACf,IACA,MAAO,CACL+9jB,cAAc,EACdN,eAAe,EACfF,mBAAmB,EACnBgC,oBAAoB,EACpBrpc,OAAQ9E,EAAMuiF,GACdx9E,KAAM/E,EAAM2xQ,GACZ3xQ,MAAOA,EACPgtc,YAAaA,EAEjB,CAqfiC0C,CAAY,CACnCj1kB,KAAMA,EACNta,MAAOA,EACP0oB,EAAGA,EACHskkB,eAAgBA,EAChB5qX,WAAYA,EACZovL,SAAUA,IACP,CACH3xQ,MAAO,KACPgtc,YAAa,OAGjB,GAAIhvV,EAAUh+G,QAAU7/I,IAAU69P,EAAUwxV,WAAa3mkB,IAAMm1O,EAAUuxV,OAASpC,IAAmBnvV,EAAUsxV,oBAAqB,CAClItxV,EAAUh+G,MAAMzuH,MAAM,CAAC1I,EAAGA,EAAI1oB,EAAQgtlB,IACtC,IAAIH,EAAchvV,EAAUh+G,MAAM5iI,SAAS7R,KAAI,SAAUqjB,GACvD,OAAOovO,EAAUh+G,MAAMpxH,EACzB,IACA,MAAO,CACLk6X,SAAUruY,EACV60kB,mBAAoBnC,EACpBkC,aAAcD,EACdG,MAAO1mkB,EACP2mkB,UAAWrvlB,EACX2kJ,OAAQk5G,EAAUh+G,MAAMigP,EAAU19J,YAClCx9E,KAAMi5G,EAAUh+G,MAAMigP,EAAU0xB,UAChCq7L,YAAaA,EAEjB,CACA,OAAO,IACT,GACC,CACDhqlB,IAAK,kBACLlG,MAAO,SAAyB6ylB,EAAY9mkB,GAI1C,IAHA,IACI9H,EAAQ,EACRC,EAFM2ukB,EAAWtwlB,OAEL,EACT2hB,EAAMD,EAAQ,GAAG,CACtB,IAAI2+H,EAAShgJ,KAAKC,OAAOohB,EAAQC,GAAO,GACpC2ukB,EAAWjwc,GAAU72H,EACvB7H,EAAM0+H,EAEN3+H,EAAQ2+H,CAEZ,CACA,OAAO72H,GAAK8mkB,EAAW3ukB,GAAOA,EAAMD,CACtC,IAplB8Dm5W,GAAYg8L,IAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,IAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CAslB/C,CAhiBgC,CAgiB9BxlR,EAAAA,eC5lBF,SAASj0G,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAASxf,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CD0lB3Oo1G,IAAgBk2e,IAAO,cAAe,SACtCl2e,IAAgBk2e,IAAO,eAAgB,CACrCpslB,OAAQ,GACRstlB,eAAgB,EAChBztQ,IAAK,EACL51O,KAAM,OACN27C,OAAQ,OACRhmH,QAAS,CACPjgC,IAAK,EACLkK,MAAO,EACPpF,OAAQ,EACR/E,KAAM,GAERmtlB,aAAc,IACd6B,gBAAgB,IC1lBX,IAAI7zB,IAASh7jB,KAAK2rH,GAAK,IAInBuke,IAAiB,SAAwBC,GAClD,OAAuB,IAAhBA,EAAsBnwlB,KAAK2rH,EACpC,EACWyke,IAAmB,SAA0B33d,EAAIC,EAAIy5E,EAAQzmF,GACtE,MAAO,CACLviG,EAAGsvG,EAAKz4H,KAAK+3H,KAAKijc,IAAStvc,GAASymF,EACpC5+K,EAAGmlG,EAAK14H,KAAK83H,KAAKkjc,IAAStvc,GAASymF,EAExC,EAkFWk+Y,IAAkB,SAAyB5mc,EAAMyxB,GAC1D,IAAI/xJ,EAAIsgI,EAAKtgI,EACXoK,EAAIk2H,EAAKl2H,EACPklG,EAAKyiD,EAAMziD,GACbC,EAAKwiD,EAAMxiD,GACTy5E,EAZ6B,SAA+BnsL,EAAOsqkB,GACvE,IAAIthjB,EAAKhpB,EAAMmD,EACb8lB,EAAKjpB,EAAMuN,EACT2b,EAAKohjB,EAAannkB,EACpBgmB,EAAKmhjB,EAAa/8jB,EACpB,OAAOvzB,KAAKs4H,KAAKt4H,KAAKylH,IAAIz2E,EAAKE,EAAI,GAAKlvC,KAAKylH,IAAIx2E,EAAKE,EAAI,GAC5D,CAMeohjB,CAAsB,CACjCpnkB,EAAGA,EACHoK,EAAGA,GACF,CACDpK,EAAGsvG,EACHllG,EAAGmlG,IAEL,GAAIy5E,GAAU,EACZ,MAAO,CACLA,OAAQA,GAGZ,IAAIp6E,GAAO5uG,EAAIsvG,GAAM05E,EACjBg+Y,EAAgBnwlB,KAAKk6jB,KAAKnic,GAI9B,OAHIxkG,EAAImlG,IACNy3d,EAAgB,EAAInwlB,KAAK2rH,GAAKwke,GAEzB,CACLh+Y,OAAQA,EACRzmF,MAAOwke,IAAeC,GACtBA,cAAeA,EAEnB,EAYIK,IAA4B,SAAmC9ke,EAAO0+G,GACxE,IAAIh4B,EAAag4B,EAAMh4B,WACrBC,EAAW+3B,EAAM/3B,SACfo+Y,EAAWzwlB,KAAKC,MAAMmyM,EAAa,KACnCs+Y,EAAS1wlB,KAAKC,MAAMoyM,EAAW,KAEnC,OAAO3mF,EAAc,IADX1rH,KAAKyhB,IAAIgvkB,EAAUC,EAE/B,EACWC,IAAkB,SAAyBlmX,EAAOmmX,GAC3D,IAAIznkB,EAAIshN,EAAMthN,EACZoK,EAAIk3M,EAAMl3M,EACRs9jB,EAAmBR,IAAgB,CACnClnkB,EAAGA,EACHoK,EAAGA,GACFq9jB,GACHz+Y,EAAS0+Y,EAAiB1+Y,OAC1BzmF,EAAQmle,EAAiBnle,MACvBole,EAAcF,EAAOE,YACvBC,EAAcH,EAAOG,YACvB,GAAI5+Y,EAAS2+Y,GAAe3+Y,EAAS4+Y,EACnC,OAAO,EAET,GAAe,IAAX5+Y,EACF,OAAO,EAET,IAII5jG,EAJAyif,EApC2B,SAA6BpyV,GAC5D,IAAIxsD,EAAawsD,EAAMxsD,WACrBC,EAAWusD,EAAMvsD,SACfo+Y,EAAWzwlB,KAAKC,MAAMmyM,EAAa,KACnCs+Y,EAAS1wlB,KAAKC,MAAMoyM,EAAW,KAC/B5wL,EAAMzhB,KAAKyhB,IAAIgvkB,EAAUC,GAC7B,MAAO,CACLt+Y,WAAYA,EAAmB,IAAN3wL,EACzB4wL,SAAUA,EAAiB,IAAN5wL,EAEzB,CA0B6BwvkB,CAAoBL,GAC7Cx+Y,EAAa4+Y,EAAqB5+Y,WAClCC,EAAW2+Y,EAAqB3+Y,SAC9B6+Y,EAAcxle,EAElB,GAAI0mF,GAAcC,EAAU,CAC1B,KAAO6+Y,EAAc7+Y,GACnB6+Y,GAAe,IAEjB,KAAOA,EAAc9+Y,GACnB8+Y,GAAe,IAEjB3if,EAAU2if,GAAe9+Y,GAAc8+Y,GAAe7+Y,CACxD,KAAO,CACL,KAAO6+Y,EAAc9+Y,GACnB8+Y,GAAe,IAEjB,KAAOA,EAAc7+Y,GACnB6+Y,GAAe,IAEjB3if,EAAU2if,GAAe7+Y,GAAY6+Y,GAAe9+Y,CACtD,CACA,OAAI7jG,EACKyoI,IAAcA,IAAc,CAAC,EAAG45W,GAAS,CAAC,EAAG,CAClDz+Y,OAAQA,EACRzmF,MAAO8ke,IAA0BU,EAAaN,KAG3C,IACT,EC5MA,SAAS5vlB,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,IAAI07M,IAAY,CAAC,UACjB,SAASgV,IAAmB32F,GAAO,OAInC,SAA4BA,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAO4na,IAAkB5na,EAAM,CAJhDk2a,CAAmBl2a,IAG7D,SAA0BsjN,GAAQ,GAAsB,qBAAXjtW,QAAmD,MAAzBitW,EAAKjtW,OAAOC,WAA2C,MAAtBgtW,EAAK,cAAuB,OAAO9uW,MAAM8J,KAAKglW,EAAO,CAHxFkyN,CAAiBx1a,IAEtF,SAAqC/5H,EAAG0hiB,GAAU,IAAK1hiB,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO2hiB,IAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAc,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAM,GAAU,QAANhF,GAAqB,QAANA,EAAa,OAAOpI,MAAM8J,KAAK2nB,GAAI,GAAU,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAI,OAAOgrjB,IAAkB3hiB,EAAG0hiB,EAAS,CAFjUE,CAA4B7na,IAC1H,WAAgC,MAAM,IAAIz9I,UAAU,uIAAyI,CAD3D4zjB,EAAsB,CAKxJ,SAASvO,IAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CAClL,SAASo3E,IAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAE3e,SAAS+H,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAG3O,SAASw8N,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CAUlV,IAcIkjlB,IAAoB,SAA2BC,EAAY95e,EAAOstK,GACpE,IAeIysU,EAAYp1d,EAfZpyH,EAAWunlB,EAAWvnlB,SACxBizV,EAAUs0P,EAAWt0P,QACrBxjS,EAAS83hB,EAAW93hB,OACpBvzD,EAAYqrlB,EAAWrrlB,UACrB0jJ,EAAOqzM,EACTrkO,EAAKgxB,EAAKhxB,GACVC,EAAK+wB,EAAK/wB,GACVo4d,EAAcrnc,EAAKqnc,YACnBC,EAActnc,EAAKsnc,YACnB3+Y,EAAa3oD,EAAK2oD,WAClBC,EAAW5oD,EAAK4oD,SAChB6zX,EAAYz8a,EAAKy8a,UACf/zX,GAAU2+Y,EAAcC,GAAe,EACvCO,EAnBc,SAAuBl/Y,EAAYC,GAGrD,OAFWi8W,GAASj8W,EAAWD,GACdpyM,KAAKyhB,IAAIzhB,KAAK6E,IAAIwtM,EAAWD,GAAa,IAE7D,CAemBm/Y,CAAcn/Y,EAAYC,GACvCrtF,EAAOsse,GAAc,EAAI,GAAK,EAEjB,gBAAbznlB,GACFwnlB,EAAaj/Y,EAAaptF,EAAO1rD,EACjC2iE,EAAYiqc,GACU,cAAbr8jB,GACTwnlB,EAAah/Y,EAAWrtF,EAAO1rD,EAC/B2iE,GAAaiqc,GACS,QAAbr8jB,IACTwnlB,EAAah/Y,EAAWrtF,EAAO1rD,EAC/B2iE,EAAYiqc,GAEdjqc,EAAYq1d,GAAc,EAAIr1d,GAAaA,EAC3C,IAAIu1d,EAAapB,IAAiB33d,EAAIC,EAAIy5E,EAAQk/Y,GAC9CI,EAAWrB,IAAiB33d,EAAIC,EAAIy5E,EAAQk/Y,EAAoC,KAAtBp1d,EAAY,GAAK,IAC3EjnH,EAAO,IAAIhS,OAAOwulB,EAAWrokB,EAAG,KAAKnmB,OAAOwulB,EAAWj+jB,EAAG,WAAWvwB,OAAOmvM,EAAQ,KAAKnvM,OAAOmvM,EAAQ,SAASnvM,OAAOi5H,EAAY,EAAI,EAAG,WAAWj5H,OAAOyulB,EAAStokB,EAAG,KAAKnmB,OAAOyulB,EAASl+jB,GAC9LtR,EAAKgtF,KAAMmif,EAAWnvkB,IAAMswF,GAAS,yBAA2B6+e,EAAWnvkB,GAC/E,OAAoBowM,EAAAA,cAAoB,OAAQoL,IAAS,CAAC,EAAGmnD,EAAO,CAClE8sU,iBAAkB,UAClB3rlB,UAAWshY,GAAK,4BAA6BthY,KAC9BssN,EAAAA,cAAoB,OAAQ,KAAmBA,EAAAA,cAAoB,OAAQ,CAC1FpwM,GAAIA,EACJ7c,EAAG4P,KACaq9M,EAAAA,cAAoB,WAAY,CAChDxzK,UAAW,IAAI77C,OAAOif,IACrBq1F,GACL,EAuNO,SAASq6e,IAAMvnX,GACpB,IAoBI9yH,EApBAs6e,EAAexnX,EAAM9wK,OAGrBjjB,EAAQ2gM,IAAc,CACxB19K,YAH0B,IAAjBs4hB,EAA0B,EAAIA,GAC3Br5W,IAAyBnO,EAAOoC,MAI1CswH,EAAUzmT,EAAMymT,QAClBjzV,EAAWwsC,EAAMxsC,SACjBzM,EAAQi5C,EAAMj5C,MACdulD,EAAWtM,EAAMsM,SACjB1lC,EAAUo5B,EAAMp5B,QAChB40kB,EAAmBx7iB,EAAMtwC,UACzBA,OAAiC,IAArB8rlB,EAA8B,GAAKA,EAC/CC,EAAez7iB,EAAMy7iB,aACvB,IAAKh1P,GAAW7tP,KAAM7xG,IAAU6xG,KAAMtsD,MAA4BqzD,EAAAA,EAAAA,gBAAe/4F,KAAamM,KAAWnM,GACvG,OAAO,KAET,IAAkB+4F,EAAAA,EAAAA,gBAAe/4F,GAC/B,OAAoBo4F,EAAAA,EAAAA,cAAap4F,EAASo5B,GAG5C,GAAIjtB,KAAWnM,IAEb,GADAq6F,GAAqBvyG,EAAAA,EAAAA,eAAckY,EAASo5B,IAC1B2/D,EAAAA,EAAAA,gBAAesB,GAC/B,OAAOA,OAGTA,EA1SW,SAAkBjhE,GAC/B,IAAIj5C,EAAQi5C,EAAMj5C,MAChBirY,EAAYhyV,EAAMgyV,UAChB/wR,EAAQrI,KAAM54D,EAAMsM,UAAYvlD,EAAQi5C,EAAMsM,SAClD,OAAIv5B,KAAWi/W,GACNA,EAAU/wR,GAEZA,CACT,CAkSYqiT,CAAStjX,GAEnB,IAAI07iB,EAjCQ,SAAiBj1P,GAC7B,MAAO,OAAQA,GAAWl3P,GAASk3P,EAAQrkO,GAC7C,CA+BqBu5d,CAAQl1P,GACvBl4E,EAAQ2sS,GAAYl7gB,GAAO,GAC/B,GAAI07iB,IAA8B,gBAAblolB,GAA2C,cAAbA,GAAyC,QAAbA,GAC7E,OAAOsnlB,IAAkB96iB,EAAOihE,EAAOstK,GAEzC,IAAIqtU,EAAgBF,EAzPK,SAA8B17iB,GACvD,IAAIymT,EAAUzmT,EAAMymT,QAClBxjS,EAASjjB,EAAMijB,OACfzvD,EAAWwsC,EAAMxsC,SACfqxK,EAAQ4hL,EACVrkO,EAAKyiD,EAAMziD,GACXC,EAAKwiD,EAAMxiD,GACXo4d,EAAc51a,EAAM41a,YACpBC,EAAc71a,EAAM61a,YAGlBmB,GAFWh3a,EAAMk3B,WACRl3B,EAAMm3B,UACsB,EACzC,GAAiB,YAAbxoM,EAAwB,CAC1B,IAAIsolB,EAAoB/B,IAAiB33d,EAAIC,EAAIq4d,EAAcz3hB,EAAQ44hB,GACrEryS,EAAKsyS,EAAkBhpkB,EAEzB,MAAO,CACLA,EAAG02R,EACHtsR,EAHK4+jB,EAAkB5+jB,EAIvB+5iB,WAAYztR,GAAMpnL,EAAK,QAAU,MACjC+0c,eAAgB,SAEpB,CACA,GAAiB,WAAb3jkB,EACF,MAAO,CACLsf,EAAGsvG,EACHllG,EAAGmlG,EACH40c,WAAY,SACZE,eAAgB,UAGpB,GAAiB,cAAb3jkB,EACF,MAAO,CACLsf,EAAGsvG,EACHllG,EAAGmlG,EACH40c,WAAY,SACZE,eAAgB,SAGpB,GAAiB,iBAAb3jkB,EACF,MAAO,CACLsf,EAAGsvG,EACHllG,EAAGmlG,EACH40c,WAAY,SACZE,eAAgB,OAGpB,IACI4kB,EAAqBhC,IAAiB33d,EAAIC,GADrCo4d,EAAcC,GAAe,EACemB,GAGrD,MAAO,CACL/okB,EAHIipkB,EAAmBjpkB,EAIvBoK,EAHI6+jB,EAAmB7+jB,EAIvB+5iB,WAAY,SACZE,eAAgB,SAEpB,CAgMqC6kB,CAAqBh8iB,GA/L3B,SAAkCA,GAC/D,IAAIymT,EAAUzmT,EAAMymT,QAClBw1P,EAAgBj8iB,EAAMi8iB,cACtBh5hB,EAASjjB,EAAMijB,OACfzvD,EAAWwsC,EAAMxsC,SACf+0P,EAAQk+F,EACV3zU,EAAIy1O,EAAMz1O,EACVoK,EAAIqrO,EAAMrrO,EACV9yB,EAAQm+P,EAAMn+P,MACdN,EAASy+P,EAAMz+P,OAGboylB,EAAepylB,GAAU,EAAI,GAAK,EAClCyhd,EAAiB2wI,EAAej5hB,EAChCk5hB,EAAcD,EAAe,EAAI,MAAQ,QACzCE,EAAgBF,EAAe,EAAI,QAAU,MAG7CG,EAAiBjylB,GAAS,EAAI,GAAK,EACnCkylB,EAAmBD,EAAiBp5hB,EACpCs5hB,EAAgBF,EAAiB,EAAI,MAAQ,QAC7CG,EAAkBH,EAAiB,EAAI,QAAU,MACrD,GAAiB,QAAb7olB,EAOF,OAAOmtO,IAAcA,IAAc,CAAC,EANxB,CACV7tN,EAAGA,EAAI1oB,EAAQ,EACf8yB,EAAGA,EAAIg/jB,EAAej5hB,EACtBg0gB,WAAY,SACZE,eAAgBglB,IAE6BF,EAAgB,CAC7DnylB,OAAQH,KAAKwhB,IAAI+R,EAAI++jB,EAAc/+jB,EAAG,GACtC9yB,MAAOA,GACL,CAAC,GAEP,GAAiB,WAAboJ,EAOF,OAAOmtO,IAAcA,IAAc,CAAC,EANvB,CACX7tN,EAAGA,EAAI1oB,EAAQ,EACf8yB,EAAGA,EAAIpzB,EAASyhd,EAChB0rH,WAAY,SACZE,eAAgBilB,IAE8BH,EAAgB,CAC9DnylB,OAAQH,KAAKwhB,IAAI8wkB,EAAc/+jB,EAAI++jB,EAAcnylB,QAAUozB,EAAIpzB,GAAS,GACxEM,MAAOA,GACL,CAAC,GAEP,GAAiB,SAAboJ,EAAqB,CACvB,IAAIiplB,EAAU,CACZ3pkB,EAAGA,EAAIwpkB,EACPp/jB,EAAGA,EAAIpzB,EAAS,EAChBmtkB,WAAYslB,EACZplB,eAAgB,UAElB,OAAOx2V,IAAcA,IAAc,CAAC,EAAG87W,GAAUR,EAAgB,CAC/D7xlB,MAAOT,KAAKwhB,IAAIsxkB,EAAQ3pkB,EAAImpkB,EAAcnpkB,EAAG,GAC7ChpB,OAAQA,GACN,CAAC,EACP,CACA,GAAiB,UAAb0J,EAAsB,CACxB,IAAIkplB,EAAU,CACZ5pkB,EAAGA,EAAI1oB,EAAQkylB,EACfp/jB,EAAGA,EAAIpzB,EAAS,EAChBmtkB,WAAYulB,EACZrlB,eAAgB,UAElB,OAAOx2V,IAAcA,IAAc,CAAC,EAAG+7W,GAAUT,EAAgB,CAC/D7xlB,MAAOT,KAAKwhB,IAAI8wkB,EAAcnpkB,EAAImpkB,EAAc7xlB,MAAQsylB,EAAQ5pkB,EAAG,GACnEhpB,OAAQA,GACN,CAAC,EACP,CACA,IAAI6ylB,EAAYV,EAAgB,CAC9B7xlB,MAAOA,EACPN,OAAQA,GACN,CAAC,EACL,MAAiB,eAAb0J,EACKmtO,IAAc,CACnB7tN,EAAGA,EAAIwpkB,EACPp/jB,EAAGA,EAAIpzB,EAAS,EAChBmtkB,WAAYulB,EACZrlB,eAAgB,UACfwlB,GAEY,gBAAbnplB,EACKmtO,IAAc,CACnB7tN,EAAGA,EAAI1oB,EAAQkylB,EACfp/jB,EAAGA,EAAIpzB,EAAS,EAChBmtkB,WAAYslB,EACZplB,eAAgB,UACfwlB,GAEY,cAAbnplB,EACKmtO,IAAc,CACnB7tN,EAAGA,EAAI1oB,EAAQ,EACf8yB,EAAGA,EAAIqub,EACP0rH,WAAY,SACZE,eAAgBilB,GACfO,GAEY,iBAAbnplB,EACKmtO,IAAc,CACnB7tN,EAAGA,EAAI1oB,EAAQ,EACf8yB,EAAGA,EAAIpzB,EAASyhd,EAChB0rH,WAAY,SACZE,eAAgBglB,GACfQ,GAEY,kBAAbnplB,EACKmtO,IAAc,CACnB7tN,EAAGA,EAAIwpkB,EACPp/jB,EAAGA,EAAIqub,EACP0rH,WAAYulB,EACZrlB,eAAgBilB,GACfO,GAEY,mBAAbnplB,EACKmtO,IAAc,CACnB7tN,EAAGA,EAAI1oB,EAAQkylB,EACfp/jB,EAAGA,EAAIqub,EACP0rH,WAAYslB,EACZplB,eAAgBilB,GACfO,GAEY,qBAAbnplB,EACKmtO,IAAc,CACnB7tN,EAAGA,EAAIwpkB,EACPp/jB,EAAGA,EAAIpzB,EAASyhd,EAChB0rH,WAAYulB,EACZrlB,eAAgBglB,GACfQ,GAEY,sBAAbnplB,EACKmtO,IAAc,CACnB7tN,EAAGA,EAAI1oB,EAAQkylB,EACfp/jB,EAAGA,EAAIpzB,EAASyhd,EAChB0rH,WAAYslB,EACZplB,eAAgBglB,GACfQ,GAED1llB,KAASzD,KAAc+7F,GAAS/7F,EAASsf,IAAMoliB,GAAU1kjB,EAASsf,MAAQy8E,GAAS/7F,EAAS0pB,IAAMg7hB,GAAU1kjB,EAAS0pB,IAChHyjN,IAAc,CACnB7tN,EAAGA,EAAIwliB,GAAgB9kjB,EAASsf,EAAG1oB,GACnC8yB,EAAGA,EAAIo7hB,GAAgB9kjB,EAAS0pB,EAAGpzB,GACnCmtkB,WAAY,MACZE,eAAgB,OACfwlB,GAEEh8W,IAAc,CACnB7tN,EAAGA,EAAI1oB,EAAQ,EACf8yB,EAAGA,EAAIpzB,EAAS,EAChBmtkB,WAAY,SACZE,eAAgB,UACfwlB,EACL,CAuCmEC,CAAyB58iB,GAC1F,OAAoBg8K,EAAAA,cAAoB86G,GAAM1vG,IAAS,CACrD13N,UAAWshY,GAAK,iBAAkBthY,IACjC6+Q,EAAOqtU,EAAe,CACvBzmB,SAAUsmB,IACRx6e,EACN,CACAq6e,IAAMtxiB,YAAc,QACpB,IAAI6yiB,IAAe,SAAsB78iB,GACvC,IAAIoiF,EAAKpiF,EAAMoiF,GACbC,EAAKriF,EAAMqiF,GACXhN,EAAQr1E,EAAMq1E,MACd0mF,EAAa/7J,EAAM+7J,WACnBC,EAAWh8J,EAAMg8J,SACjBv0M,EAAIu4C,EAAMv4C,EACVq0M,EAAS97J,EAAM87J,OACf2+Y,EAAcz6iB,EAAMy6iB,YACpBC,EAAc16iB,EAAM06iB,YACpB5nkB,EAAIktB,EAAMltB,EACVoK,EAAI8iB,EAAM9iB,EACVzzB,EAAMu2C,EAAMv2C,IACZD,EAAOw2C,EAAMx2C,KACbY,EAAQ41C,EAAM51C,MACdN,EAASk2C,EAAMl2C,OACf+lkB,EAAY7vhB,EAAM6vhB,UAClBitB,EAAe98iB,EAAM88iB,aACvB,GAAIA,EACF,OAAOA,EAET,GAAIvtf,GAASnlG,IAAUmlG,GAASzlG,GAAS,CACvC,GAAIylG,GAASz8E,IAAMy8E,GAASryE,GAC1B,MAAO,CACLpK,EAAGA,EACHoK,EAAGA,EACH9yB,MAAOA,EACPN,OAAQA,GAGZ,GAAIylG,GAAS9lG,IAAQ8lG,GAAS/lG,GAC5B,MAAO,CACLspB,EAAGrpB,EACHyzB,EAAG1zB,EACHY,MAAOA,EACPN,OAAQA,EAGd,CACA,OAAIylG,GAASz8E,IAAMy8E,GAASryE,GACnB,CACLpK,EAAGA,EACHoK,EAAGA,EACH9yB,MAAO,EACPN,OAAQ,GAGRylG,GAAS6yB,IAAO7yB,GAAS8yB,GACpB,CACLD,GAAIA,EACJC,GAAIA,EACJ05E,WAAYA,GAAc1mF,GAAS,EACnC2mF,SAAUA,GAAY3mF,GAAS,EAC/Bole,YAAaA,GAAe,EAC5BC,YAAaA,GAAe5+Y,GAAUr0M,GAAK,EAC3CookB,UAAWA,GAGX7vhB,EAAMymT,QACDzmT,EAAMymT,QAER,CAAC,CACV,EAmEA60P,IAAMuB,aAAeA,IACrBvB,IAAMyB,mBArBmB,SAA4BC,EAAav2P,GAChE,IAAIw2P,IAAkBrllB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,KAAmBA,UAAU,GACrF,IAAKollB,IAAgBA,EAAY1wiB,UAAY2wiB,IAAoBD,EAAY/7e,MAC3E,OAAO,KAET,IAAI30D,EAAW0wiB,EAAY1wiB,SACvB2viB,EAAgBY,IAAaG,GAC7BE,EAAmBviC,GAAcrugB,EAAUgviB,KAAO9llB,KAAI,SAAUpF,EAAOiI,GACzE,OAAoB2mG,EAAAA,EAAAA,cAAa5uG,EAAO,CACtCq2V,QAASA,GAAWw1P,EAEpBhvlB,IAAK,SAASN,OAAO0L,IAEzB,IACA,IAAK4klB,EACH,OAAOC,EAET,IAAIC,EA/DW,SAAoBl8e,EAAOwlP,GAC1C,OAAKxlP,GAGS,IAAVA,EACkB+6G,EAAAA,cAAoBs/X,IAAO,CAC7CrulB,IAAK,iBACLw5V,QAASA,IAGT4xN,GAAWp3c,GACO+6G,EAAAA,cAAoBs/X,IAAO,CAC7CrulB,IAAK,iBACLw5V,QAASA,EACT1/V,MAAOk6G,KAGOtB,EAAAA,EAAAA,gBAAesB,GAC3BA,EAAM9xG,OAASmslB,KACGt8e,EAAAA,EAAAA,cAAaiC,EAAO,CACtCh0G,IAAK,iBACLw5V,QAASA,IAGOzqI,EAAAA,cAAoBs/X,IAAO,CAC7CrulB,IAAK,iBACL2Z,QAASq6F,EACTwlP,QAASA,IAGT1zU,KAAWkuF,GACO+6G,EAAAA,cAAoBs/X,IAAO,CAC7CrulB,IAAK,iBACL2Z,QAASq6F,EACTwlP,QAASA,IAGTxvV,KAASgqG,GACS+6G,EAAAA,cAAoBs/X,IAAOl0X,IAAS,CACtDq/H,QAASA,GACRxlP,EAAO,CACRh0G,IAAK,oBAGF,KA1CE,IA2CX,CAkBsBmwlB,CAAWJ,EAAY/7e,MAAOwlP,GAAWw1P,GAC7D,MAAO,CAACkB,GAAexwlB,OAAOw+O,IAAmB+xW,GACnD,ECldO,IAAIG,IAAoB,SAA2Br9iB,EAAOj5C,GAC/D,IAAIu2lB,EAAat9iB,EAAMs9iB,WACnBC,EAAav9iB,EAAMu9iB,WAIvB,OAHID,IACFC,EAAa,gBAERA,IAAex2lB,CACxB,oDCHWurC,IAAO,SAAc4hM,GAC9B,OAAO,IACT,EACA5hM,IAAK0X,YAAc,oCCPnB,SAASr/C,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,IAAI07M,IAAY,CAAC,iBACfiO,IAAa,CAAC,OAAQ,UAAW,YAAa,KAAM,gBACtD,SAAS+G,IAAmB32F,GAAO,OAInC,SAA4BA,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAO4na,IAAkB5na,EAAM,CAJhDk2a,CAAmBl2a,IAG7D,SAA0BsjN,GAAQ,GAAsB,qBAAXjtW,QAAmD,MAAzBitW,EAAKjtW,OAAOC,WAA2C,MAAtBgtW,EAAK,cAAuB,OAAO9uW,MAAM8J,KAAKglW,EAAO,CAHxFkyN,CAAiBx1a,IAEtF,SAAqC/5H,EAAG0hiB,GAAU,IAAK1hiB,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO2hiB,IAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAc,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAM,GAAU,QAANhF,GAAqB,QAANA,EAAa,OAAOpI,MAAM8J,KAAK2nB,GAAI,GAAU,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAI,OAAOgrjB,IAAkB3hiB,EAAG0hiB,EAAS,CAFjUE,CAA4B7na,IAC1H,WAAgC,MAAM,IAAIz9I,UAAU,uIAAyI,CAD3D4zjB,EAAsB,CAKxJ,SAASvO,IAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CAClL,SAASs8D,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASqD,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAG3O,SAASs3O,IAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAW3e,IAAIsqlB,IAAkB,SAAyB3kkB,GAC7C,OAAO7vB,MAAMqR,QAAQwe,EAAM9xB,OAAS60E,MAAK/iD,EAAM9xB,OAAS8xB,EAAM9xB,KAChE,EACO,SAAS02lB,IAAUrqc,GACxB,IAAIsqc,EAAqBtqc,EAAKuqc,cAC5BA,OAAuC,IAAvBD,EAAgCF,IAAkBE,EAClEz7W,EAAYC,IAAyB9uF,EAAM+iF,KACzCzxN,EAAOu9N,EAAUv9N,KACnB8sB,EAAUywM,EAAUzwM,QACpBq+hB,EAAY5tV,EAAU4tV,UACtBjkjB,EAAKq2N,EAAUr2N,GACf6vkB,EAAex5W,EAAUw5W,aACzB79R,EAAS17E,IAAyBD,EAAWmC,KAC/C,OAAK1/N,GAASA,EAAKpb,OAGC0yN,EAAAA,cAAoB+hW,GAAO,CAC7CrujB,UAAW,uBACVgV,EAAKlP,KAAI,SAAUqjB,EAAOxgB,GAC3B,IAAItR,EAAQ6xG,KAAMpnE,GAAWmsjB,EAAc9kkB,EAAOxgB,GAASy4kB,IAAkBj4jB,GAASA,EAAM42C,QAASj+B,GACjGosjB,EAAUhlf,KAAMhtF,GAAM,CAAC,EAAI,CAC7BA,GAAI,GAAGjf,OAAOif,EAAI,KAAKjf,OAAO0L,IAEhC,OAAoB2jN,EAAAA,cAAoBs/X,IAAOl0X,IAAS,CAAC,EAAG8zV,GAAYriiB,GAAO,GAAO+kS,EAAQggS,EAAS,CACrG3B,cAAepjkB,EAAMojkB,cACrBl1lB,MAAOA,EACP00lB,aAAcA,EACdh1P,QAAS60P,IAAMuB,aAAajkf,KAAMi3d,GAAah3iB,EAAQ8nN,IAAcA,IAAc,CAAC,EAAG9nN,GAAQ,CAAC,EAAG,CACjGg3iB,UAAWA,KAEb5ikB,IAAK,SAASN,OAAO0L,GAErBA,MAAOA,IAEX,KApBS,IAqBX,CACAollB,IAAUzziB,YAAc,YA8CxByziB,IAAUV,mBAnBV,SAA4BC,EAAat4kB,GACvC,IAAIu4kB,IAAkBrllB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,KAAmBA,UAAU,GACrF,IAAKollB,IAAgBA,EAAY1wiB,UAAY2wiB,IAAoBD,EAAY/7e,MAC3E,OAAO,KAET,IACIi8e,EAAmBviC,GADRqiC,EAAY1wiB,SACoBmxiB,KAAWjolB,KAAI,SAAUpF,EAAOiI,GAC7E,OAAoB2mG,EAAAA,EAAAA,cAAa5uG,EAAO,CACtCsU,KAAMA,EAENzX,IAAK,aAAaN,OAAO0L,IAE7B,IACA,OAAK4klB,EAIE,CA3CT,SAAwBh8e,EAAOv8F,GAC7B,OAAKu8F,GAGS,IAAVA,EACkB+6G,EAAAA,cAAoByhY,IAAW,CACjDxwlB,IAAK,qBACLyX,KAAMA,IAGQs3M,EAAAA,eAAqB/6G,IAAUluF,KAAWkuF,GACtC+6G,EAAAA,cAAoByhY,IAAW,CACjDxwlB,IAAK,qBACLyX,KAAMA,EACNkC,QAASq6F,IAGThqG,KAASgqG,GACS+6G,EAAAA,cAAoByhY,IAAWr2X,IAAS,CAC1D1iN,KAAMA,GACLu8F,EAAO,CACRh0G,IAAK,wBAGF,KAtBE,IAuBX,CAiB0B4wlB,CAAeb,EAAY/7e,MAAOv8F,IAC/B/X,OAAOw+O,IAAmB+xW,IAH5CA,CAIX,wDC3GA,SAASvylB,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAAS2sM,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASmsO,IAAevvF,EAAKnrJ,GAAK,OAKlC,SAAyBmrJ,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAOA,CAAK,CAL3Byna,CAAgBzna,IAIzD,SAA+B/sJ,EAAGwC,GAAK,IAAI4xB,EAAI,MAAQp0B,EAAI,KAAO,oBAAsBoD,QAAUpD,EAAEoD,OAAOC,WAAarD,EAAE,cAAe,GAAI,MAAQo0B,EAAG,CAAE,IAAIlG,EAAGvkB,EAAG/H,EAAG0yB,EAAG1Z,EAAI,GAAI/K,GAAI,EAAImjB,GAAI,EAAI,IAAM,GAAIpxB,GAAKwyB,EAAIA,EAAE3zB,KAAKT,IAAI4U,KAAM,IAAMpS,EAAG,CAAE,GAAIkE,OAAO0tB,KAAOA,EAAG,OAAQvkB,GAAI,CAAI,MAAO,OAASA,GAAKqe,EAAItsB,EAAEnB,KAAK2zB,IAAIzO,QAAU/K,EAAErY,KAAK2rB,EAAE5uB,OAAQsb,EAAE/Y,SAAWW,GAAIqN,GAAI,GAAK,CAAE,MAAO7P,GAAKgzB,GAAI,EAAIrpB,EAAI3J,CAAG,CAAE,QAAU,IAAM,IAAK6P,GAAK,MAAQukB,EAAU,SAAME,EAAIF,EAAU,SAAK1tB,OAAO4tB,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAItB,EAAG,MAAMrpB,CAAG,CAAE,CAAE,OAAOiR,CAAG,CAAE,CAJxd65iB,CAAsB1na,EAAKnrJ,IAE5F,SAAqCoxB,EAAG0hiB,GAAU,IAAK1hiB,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO2hiB,IAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAc,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAM,GAAU,QAANhF,GAAqB,QAANA,EAAa,OAAOpI,MAAM8J,KAAK2nB,GAAI,GAAU,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAI,OAAOgrjB,IAAkB3hiB,EAAG0hiB,EAAS,CAF7TE,CAA4B7na,EAAKnrJ,IACnI,WAA8B,MAAM,IAAI0N,UAAU,4IAA8I,CADvDuljB,EAAoB,CAG7J,SAASF,IAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CAGlL,SAAS7vJ,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAU3O,IAAIkzlB,IAAmB,SAA0BhrkB,EAAGoK,EAAG6gkB,EAAYC,EAAYl0lB,GAC7E,IACI6U,EADAs/kB,EAAWF,EAAaC,EAO5B,OALAr/kB,EAAO,KAAKhS,OAAOmmB,EAAG,KAAKnmB,OAAOuwB,GAClCve,GAAQ,KAAKhS,OAAOmmB,EAAIirkB,EAAY,KAAKpxlB,OAAOuwB,GAChDve,GAAQ,KAAKhS,OAAOmmB,EAAIirkB,EAAaE,EAAW,EAAG,KAAKtxlB,OAAOuwB,EAAIpzB,GACnE6U,GAAQ,KAAKhS,OAAOmmB,EAAIirkB,EAAaE,EAAW,EAAID,EAAY,KAAKrxlB,OAAOuwB,EAAIpzB,GAChF6U,GAAQ,KAAKhS,OAAOmmB,EAAG,KAAKnmB,OAAOuwB,EAAG,KAExC,EACI4iB,IAAe,CACjBhtB,EAAG,EACHoK,EAAG,EACH6gkB,WAAY,EACZC,WAAY,EACZl0lB,OAAQ,EACRwmkB,yBAAyB,EACzBC,eAAgB,EAChB1mc,kBAAmB,KACnBm3b,gBAAiB,QAERk9B,IAAY,SAAmBl+iB,GACxC,IAAIm+iB,EAAiBx9W,IAAcA,IAAc,CAAC,EAAG7gM,KAAeE,GAChEywhB,GAAUh7f,EAAAA,EAAAA,UAEZmxK,EAAa7C,KADCruK,EAAAA,EAAAA,WAAU,GACe,GACvCg7f,EAAc9pV,EAAW,GACzB+pV,EAAiB/pV,EAAW,IAC9BzxK,EAAAA,EAAAA,YAAU,WACR,GAAIs7f,EAAQriiB,SAAWqiiB,EAAQriiB,QAAQwiiB,eACrC,IACE,IAAIC,EAAkBJ,EAAQriiB,QAAQwiiB,iBAClCC,GACFF,EAAeE,EAEnB,CAAE,MAAOjlkB,GACP,CAGN,GAAG,IACH,IAAIknB,EAAIqrkB,EAAerrkB,EACrBoK,EAAIihkB,EAAejhkB,EACnB6gkB,EAAaI,EAAeJ,WAC5BC,EAAaG,EAAeH,WAC5Bl0lB,EAASq0lB,EAAer0lB,OACxB4F,EAAYyulB,EAAezulB,UACzBsxjB,EAAkBm9B,EAAen9B,gBACnCn3b,EAAoBs0d,EAAet0d,kBACnC0mc,EAAiB4tB,EAAe5tB,eAChCD,EAA0B6tB,EAAe7tB,wBAC3C,GAAIx9iB,KAAOA,GAAKoK,KAAOA,GAAK6gkB,KAAgBA,GAAcC,KAAgBA,GAAcl0lB,KAAYA,GAAyB,IAAfi0lB,GAAmC,IAAfC,GAA+B,IAAXl0lB,EACpJ,OAAO,KAET,IAAIg0jB,EAAa9sL,GAAK,qBAAsBthY,GAC5C,OAAK4gkB,EAMet0W,EAAAA,cAAoBwxW,GAAS,CAC/CG,SAAU+C,EAAc,EACxB59jB,KAAM,CACJirlB,WAAY,EACZC,WAAY,EACZl0lB,OAAQA,EACRgpB,EAAGA,EACHoK,EAAGA,GAELjqB,GAAI,CACF8qlB,WAAYA,EACZC,WAAYA,EACZl0lB,OAAQA,EACRgpB,EAAGA,EACHoK,EAAGA,GAEL8rG,SAAUa,EACVm3b,gBAAiBA,EACjB5jV,SAAUkzV,IACT,SAAUl9a,GACX,IAAIgrc,EAAiBhrc,EAAK2qc,WACxBM,EAAiBjrc,EAAK4qc,WACtBjtB,EAAa39a,EAAKtpJ,OAClBmikB,EAAQ74a,EAAKtgI,EACbk+iB,EAAQ59a,EAAKl2H,EACf,OAAoB8+L,EAAAA,cAAoBwxW,GAAS,CAC/CG,SAAU+C,EAAc,EACxB59jB,KAAM,OAAOnG,QAAwB,IAAjB+jkB,EAAqB,EAAIA,EAAa,MAC1Dz9jB,GAAI,GAAGtG,OAAO+jkB,EAAa,UAC3BjphB,cAAe,kBACfo1J,MAAO0zX,EACPvnc,SAAUa,EACV25S,OAAQw9I,GACMhlW,EAAAA,cAAoB,OAAQoL,IAAS,CAAC,EAAG8zV,GAAYijC,GAAgB,GAAO,CAC1FzulB,UAAWoujB,EACX/ujB,EAAG+ulB,IAAiB7xB,EAAO+E,EAAOotB,EAAgBC,EAAgBttB,GAClErxhB,IAAK+whB,KAET,IA3CsBz0W,EAAAA,cAAoB,IAAK,KAAmBA,EAAAA,cAAoB,OAAQoL,IAAS,CAAC,EAAG8zV,GAAYijC,GAAgB,GAAO,CAC1IzulB,UAAWoujB,EACX/ujB,EAAG+ulB,IAAiBhrkB,EAAGoK,EAAG6gkB,EAAYC,EAAYl0lB,MA0CxD,ECvHA,SAASa,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAAS2sM,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASqD,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAW3O,IAKI0zlB,IAAmB,SAA0Blrc,GAC/C,IAAIhxB,EAAKgxB,EAAKhxB,GACZC,EAAK+wB,EAAK/wB,GACVy5E,EAAS1oD,EAAK0oD,OACdzmF,EAAQ+9B,EAAK/9B,MACb1G,EAAOykC,EAAKzkC,KACZ0nH,EAAajjF,EAAKijF,WAClBkoX,EAAenrc,EAAKmrc,aACpBC,EAAmBprc,EAAKorc,iBACtBC,EAAeF,GAAgBloX,EAAa,GAAK,GAAKv6B,EACtD4iZ,EAAQ/0lB,KAAKg1lB,KAAKJ,EAAeE,GAAgB95B,IACjDi6B,EAAcJ,EAAmBnpe,EAAQA,EAAQ1G,EAAO+ve,EAKxDG,EAAoBL,EAAmBnpe,EAAQ1G,EAAO+ve,EAAQrpe,EAElE,MAAO,CACLkjd,OAPWwhB,IAAiB33d,EAAIC,EAAIo8d,EAAcG,GAQlDE,eANmB/E,IAAiB33d,EAAIC,EAAIy5E,EAAQ8iZ,GAOpDG,aAJiBhF,IAAiB33d,EAAIC,EAAIo8d,EAAe90lB,KAAK+3H,IAAIg9d,EAAQ/5B,KAASk6B,GAKnFH,MAAOA,EAEX,EACIM,IAAgB,SAAuBn6a,GACzC,IAAIziD,EAAKyiD,EAAMziD,GACbC,EAAKwiD,EAAMxiD,GACXo4d,EAAc51a,EAAM41a,YACpBC,EAAc71a,EAAM61a,YACpB3+Y,EAAal3B,EAAMk3B,WAEjB1mF,EArCc,SAAuB0mF,EAAYC,GAGrD,OAFWi8W,GAASj8W,EAAWD,GACdpyM,KAAKyhB,IAAIzhB,KAAK6E,IAAIwtM,EAAWD,GAAa,QAE7D,CAiCcm/Y,CAAcn/Y,EADbl3B,EAAMm3B,UAIfijZ,EAAeljZ,EAAa1mF,EAC5B6pe,EAAkBnF,IAAiB33d,EAAIC,EAAIq4d,EAAa3+Y,GACxDojZ,EAAgBpF,IAAiB33d,EAAIC,EAAIq4d,EAAauE,GACtDtglB,EAAO,KAAKhS,OAAOuylB,EAAgBpskB,EAAG,KAAKnmB,OAAOuylB,EAAgBhikB,EAAG,YAAYvwB,OAAO+tlB,EAAa,KAAK/tlB,OAAO+tlB,EAAa,aAAa/tlB,SAAShD,KAAK6E,IAAI6mH,GAAS,KAAM,KAAK1oH,SAASovM,EAAakjZ,GAAe,WAAWtylB,OAAOwylB,EAAcrskB,EAAG,KAAKnmB,OAAOwylB,EAAcjikB,EAAG,QAC1R,GAAIu9jB,EAAc,EAAG,CACnB,IAAI2E,EAAkBrF,IAAiB33d,EAAIC,EAAIo4d,EAAa1+Y,GACxDsjZ,EAAgBtF,IAAiB33d,EAAIC,EAAIo4d,EAAawE,GAC1DtglB,GAAQ,KAAKhS,OAAO0ylB,EAAcvskB,EAAG,KAAKnmB,OAAO0ylB,EAAcnikB,EAAG,oBAAoBvwB,OAAO8tlB,EAAa,KAAK9tlB,OAAO8tlB,EAAa,qBAAqB9tlB,SAAShD,KAAK6E,IAAI6mH,GAAS,KAAM,KAAK1oH,SAASovM,GAAckjZ,GAAe,mBAAmBtylB,OAAOyylB,EAAgBtskB,EAAG,KAAKnmB,OAAOyylB,EAAgBlikB,EAAG,KAClT,MACEve,GAAQ,KAAKhS,OAAOy1H,EAAI,KAAKz1H,OAAO01H,EAAI,MAE1C,OAAO1jH,CACT,EAwFImhC,IAAe,CACjBsiF,GAAI,EACJC,GAAI,EACJo4d,YAAa,EACbC,YAAa,EACb3+Y,WAAY,EACZC,SAAU,EACVuiZ,aAAc,EACde,mBAAmB,EACnBd,kBAAkB,GAETe,IAAS,SAAgBC,GAClC,IAAIx/iB,EAAQ2gM,IAAcA,IAAc,CAAC,EAAG7gM,KAAe0/iB,GACvDp9d,EAAKpiF,EAAMoiF,GACbC,EAAKriF,EAAMqiF,GACXo4d,EAAcz6iB,EAAMy6iB,YACpBC,EAAc16iB,EAAM06iB,YACpB6D,EAAev+iB,EAAMu+iB,aACrBe,EAAoBt/iB,EAAMs/iB,kBAC1Bd,EAAmBx+iB,EAAMw+iB,iBACzBziZ,EAAa/7J,EAAM+7J,WACnBC,EAAWh8J,EAAMg8J,SACjBtsM,EAAYswC,EAAMtwC,UACpB,GAAIgrlB,EAAcD,GAAe1+Y,IAAeC,EAC9C,OAAO,KAET,IAGIr9L,EAHAm/iB,EAAa9sL,GAAK,kBAAmBthY,GACrC+vlB,EAAc/E,EAAcD,EAC5BryZ,EAAKkwX,GAAgBimC,EAAckB,EAAa,GAAG,GAwBvD,OArBE9glB,EADEypL,EAAK,GAAKz+L,KAAK6E,IAAIutM,EAAaC,GAAY,IArHxB,SAA6BusD,GACrD,IAAInmI,EAAKmmI,EAAMnmI,GACbC,EAAKkmI,EAAMlmI,GACXo4d,EAAclyV,EAAMkyV,YACpBC,EAAcnyV,EAAMmyV,YACpB6D,EAAeh2V,EAAMg2V,aACrBe,EAAoB/2V,EAAM+2V,kBAC1Bd,EAAmBj2V,EAAMi2V,iBACzBziZ,EAAawsD,EAAMxsD,WACnBC,EAAWusD,EAAMvsD,SACfrtF,EAAOspc,GAASj8W,EAAWD,GAC3B2jZ,EAAoBpB,IAAiB,CACrCl8d,GAAIA,EACJC,GAAIA,EACJy5E,OAAQ4+Y,EACRrle,MAAO0mF,EACPptF,KAAMA,EACN4ve,aAAcA,EACdC,iBAAkBA,IAEpBmB,EAAOD,EAAkBZ,eACzBc,EAAOF,EAAkBX,aACzBc,EAAMH,EAAkBhB,MACtBoB,EAAqBxB,IAAiB,CACtCl8d,GAAIA,EACJC,GAAIA,EACJy5E,OAAQ4+Y,EACRrle,MAAO2mF,EACPrtF,MAAOA,EACP4ve,aAAcA,EACdC,iBAAkBA,IAEpBuB,EAAOD,EAAmBhB,eAC1BkB,EAAOF,EAAmBf,aAC1BkB,EAAMH,EAAmBpB,MACvBwB,EAAgB1B,EAAmB70lB,KAAK6E,IAAIutM,EAAaC,GAAYryM,KAAK6E,IAAIutM,EAAaC,GAAY6jZ,EAAMI,EACjH,GAAIC,EAAgB,EAClB,OAAIZ,EACK,KAAK3ylB,OAAOizlB,EAAK9skB,EAAG,KAAKnmB,OAAOizlB,EAAK1ikB,EAAG,eAAevwB,OAAO4xlB,EAAc,KAAK5xlB,OAAO4xlB,EAAc,WAAW5xlB,OAAsB,EAAf4xlB,EAAkB,iBAAiB5xlB,OAAO4xlB,EAAc,KAAK5xlB,OAAO4xlB,EAAc,WAAW5xlB,OAAuB,GAAf4xlB,EAAkB,cAEjPS,IAAc,CACnB58d,GAAIA,EACJC,GAAIA,EACJo4d,YAAaA,EACbC,YAAaA,EACb3+Y,WAAYA,EACZC,SAAUA,IAGd,IAAIr9L,EAAO,KAAKhS,OAAOizlB,EAAK9skB,EAAG,KAAKnmB,OAAOizlB,EAAK1ikB,EAAG,WAAWvwB,OAAO4xlB,EAAc,KAAK5xlB,OAAO4xlB,EAAc,SAAS5xlB,SAASgiH,EAAO,GAAI,KAAKhiH,OAAOgzlB,EAAK7skB,EAAG,KAAKnmB,OAAOgzlB,EAAKzikB,EAAG,WAAWvwB,OAAO+tlB,EAAa,KAAK/tlB,OAAO+tlB,EAAa,OAAO/tlB,SAASuzlB,EAAgB,KAAM,KAAKvzlB,SAASgiH,EAAO,GAAI,KAAKhiH,OAAOozlB,EAAKjtkB,EAAG,KAAKnmB,OAAOozlB,EAAK7ikB,EAAG,WAAWvwB,OAAO4xlB,EAAc,KAAK5xlB,OAAO4xlB,EAAc,SAAS5xlB,SAASgiH,EAAO,GAAI,KAAKhiH,OAAOqzlB,EAAKltkB,EAAG,KAAKnmB,OAAOqzlB,EAAK9ikB,EAAG,QAChd,GAAIu9jB,EAAc,EAAG,CACnB,IAAI0F,EAAqB7B,IAAiB,CACtCl8d,GAAIA,EACJC,GAAIA,EACJy5E,OAAQ2+Y,EACRple,MAAO0mF,EACPptF,KAAMA,EACN0nH,YAAY,EACZkoX,aAAcA,EACdC,iBAAkBA,IAEpB4B,EAAOD,EAAmBrB,eAC1BuB,EAAOF,EAAmBpB,aAC1BuB,EAAMH,EAAmBzB,MACvB6B,EAAqBjC,IAAiB,CACtCl8d,GAAIA,EACJC,GAAIA,EACJy5E,OAAQ2+Y,EACRple,MAAO2mF,EACPrtF,MAAOA,EACP0nH,YAAY,EACZkoX,aAAcA,EACdC,iBAAkBA,IAEpBgC,EAAOD,EAAmBzB,eAC1B2B,EAAOF,EAAmBxB,aAC1B2B,EAAMH,EAAmB7B,MACvBiC,EAAgBnC,EAAmB70lB,KAAK6E,IAAIutM,EAAaC,GAAYryM,KAAK6E,IAAIutM,EAAaC,GAAYskZ,EAAMI,EACjH,GAAIC,EAAgB,GAAsB,IAAjBpC,EACvB,MAAO,GAAG5xlB,OAAOgS,EAAM,KAAKhS,OAAOy1H,EAAI,KAAKz1H,OAAO01H,EAAI,KAEzD1jH,GAAQ,IAAIhS,OAAO8zlB,EAAK3tkB,EAAG,KAAKnmB,OAAO8zlB,EAAKvjkB,EAAG,aAAavwB,OAAO4xlB,EAAc,KAAK5xlB,OAAO4xlB,EAAc,SAAS5xlB,SAASgiH,EAAO,GAAI,KAAKhiH,OAAO6zlB,EAAK1tkB,EAAG,KAAKnmB,OAAO6zlB,EAAKtjkB,EAAG,aAAavwB,OAAO8tlB,EAAa,KAAK9tlB,OAAO8tlB,EAAa,OAAO9tlB,SAASg0lB,EAAgB,KAAM,KAAKh0lB,SAASgiH,EAAO,GAAI,KAAKhiH,OAAOyzlB,EAAKttkB,EAAG,KAAKnmB,OAAOyzlB,EAAKljkB,EAAG,aAAavwB,OAAO4xlB,EAAc,KAAK5xlB,OAAO4xlB,EAAc,SAAS5xlB,SAASgiH,EAAO,GAAI,KAAKhiH,OAAO0zlB,EAAKvtkB,EAAG,KAAKnmB,OAAO0zlB,EAAKnjkB,EAAG,IACpd,MACEve,GAAQ,IAAIhS,OAAOy1H,EAAI,KAAKz1H,OAAO01H,EAAI,KAEzC,OAAO1jH,CACT,CAgCWiilB,CAAoB,CACzBx+d,GAAIA,EACJC,GAAIA,EACJo4d,YAAaA,EACbC,YAAaA,EACb6D,aAAc50lB,KAAKyhB,IAAIg9K,EAAIq3Z,EAAc,GACzCH,kBAAmBA,EACnBd,iBAAkBA,EAClBziZ,WAAYA,EACZC,SAAUA,IAGLgjZ,IAAc,CACnB58d,GAAIA,EACJC,GAAIA,EACJo4d,YAAaA,EACbC,YAAaA,EACb3+Y,WAAYA,EACZC,SAAUA,IAGMggB,EAAAA,cAAoB,OAAQoL,IAAS,CAAC,EAAG8zV,GAAYl7gB,GAAO,GAAO,CACrFtwC,UAAWoujB,EACX/ujB,EAAG4P,EACH43O,KAAM,QAEV,ECpNIpgB,IAAY,CAAC,SAAU,YAAa,kBAAmB,kBAAmB,YAC9E,SAASxrO,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAASynN,IAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAE3e,SAAS+H,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CA4B3O,SAASi2lB,IAAuBztd,EAAQpzF,GACtC,OAAO2gM,IAAcA,IAAc,CAAC,EAAG3gM,GAAQozF,EACjD,CAIA,SAAS0td,IAAc1tc,GACrB,IAAI2tc,EAAY3tc,EAAK2tc,UACnBC,EAAe5tc,EAAK4tc,aACtB,OAAQD,GACN,IAAK,YACH,OAAoB/kY,EAAAA,cAAoBlvB,GAAWk0Z,GACrD,IAAK,YACH,OAAoBhlY,EAAAA,cAAoBkiY,IAAW8C,GACrD,IAAK,SACH,OAAoBhlY,EAAAA,cAAoBujY,IAAQyB,GAClD,IAAK,UACH,GAdN,SAAwBD,GACtB,MAAqB,YAAdA,CACT,CAYUE,CAAeF,GACjB,OAAoB/kY,EAAAA,cAAoB4oW,GAASo8B,GAEnD,MACF,QACE,OAAO,KAEb,CAOO,SAASE,IAAMr8a,GACpB,IAQIpiI,EARA2wF,EAASyxC,EAAMzxC,OACjB2td,EAAYl8a,EAAMk8a,UAClBI,EAAwBt8a,EAAMu8a,gBAC9BA,OAA4C,IAA1BD,EAAmCN,IAAyBM,EAC9EE,EAAwBx8a,EAAMy8a,gBAC9BA,OAA4C,IAA1BD,EAAmC,wBAA0BA,EAC/EjkX,EAAWv4D,EAAMu4D,SACjBp9L,EAAQkiM,IAAyBr9D,EAAOsxD,KAE1C,IAAkBx2H,EAAAA,EAAAA,gBAAeyzB,GAC/B3wF,GAAqBu8D,EAAAA,EAAAA,cAAao0B,EAAQutG,IAAcA,IAAc,CAAC,EAAG3gM,GAjBvE,SAAiCozF,GACtC,OAAkBzzB,EAAAA,EAAAA,gBAAeyzB,GACxBA,EAAOpzF,MAETozF,CACT,CAYsFmud,CAAwBnud,UACrG,GAAIrgH,KAAWqgH,GACpB3wF,EAAQ2wF,EAAOpzF,QACV,GAAIu/C,MAAc6zC,KAAYh7B,MAAUg7B,GAAS,CACtD,IAAI82P,EAAYk3N,EAAgBhud,EAAQpzF,GACxCyC,EAAqBu5K,EAAAA,cAAoB8kY,IAAe,CACtDC,UAAWA,EACXC,aAAc92N,GAElB,KAAO,CACL,IAAI82N,EAAehhjB,EACnByC,EAAqBu5K,EAAAA,cAAoB8kY,IAAe,CACtDC,UAAWA,EACXC,aAAcA,GAElB,CACA,OAAI5jX,EACkBphB,EAAAA,cAAoB+hW,GAAO,CAC7CrujB,UAAW4xlB,GACV7+iB,GAEEA,CACT,CAMO,SAAS++iB,IAAS1L,EAAe/5L,GACtC,OAAgB,MAATA,GAAiB,eAAgB+5L,EAAc91iB,KACxD,CACO,SAASyhjB,IAAM3L,EAAe/5L,GACnC,OAAgB,MAATA,GAAiB,YAAa+5L,EAAc91iB,KACrD,CACO,SAAS0hjB,IAAU5L,EAAe/5L,GACvC,OAAgB,MAATA,GAAiB,WAAY+5L,EAAc91iB,KACpD,CACO,SAAS2hjB,IAAcC,EAAWC,GACvC,IAAIC,EAAuBC,EACvBC,EAAWJ,EAAU9ukB,KAA6B,OAAtB+ukB,QAAoD,IAAtBA,GAA6F,QAA5DC,EAAwBD,EAAkB/E,oBAAoD,IAA1BgF,OAAmC,EAASA,EAAsBhvkB,IAAM8ukB,EAAU9ukB,IAAM+ukB,EAAkB/ukB,EACzQmvkB,EAAWL,EAAU1kkB,KAA6B,OAAtB2kkB,QAAoD,IAAtBA,GAA8F,QAA7DE,EAAyBF,EAAkB/E,oBAAqD,IAA3BiF,OAAoC,EAASA,EAAuB7kkB,IAAM0kkB,EAAU1kkB,IAAM2kkB,EAAkB3kkB,EAChR,OAAO8kkB,GAAYC,CACrB,CACO,SAASC,IAAWN,EAAWC,GACpC,IAAIM,EAAoBP,EAAU5lZ,WAAa6lZ,EAAkB7lZ,SAC7DomZ,EAAkBR,EAAU7lZ,aAAe8lZ,EAAkB9lZ,WACjE,OAAOomZ,GAAqBC,CAC9B,CACO,SAASC,IAAeT,EAAWC,GACxC,IAAIG,EAAWJ,EAAU9ukB,IAAM+ukB,EAAkB/ukB,EAC7CmvkB,EAAWL,EAAU1kkB,IAAM2kkB,EAAkB3kkB,EAC7ColkB,EAAWV,EAAUtkkB,IAAMukkB,EAAkBvkkB,EACjD,OAAO0kkB,GAAYC,GAAYK,CACjC,CA+CO,SAASC,IAA8Bh6V,GAC5C,IAAIs5V,EAAoBt5V,EAAMs5V,kBAC5B/L,EAAgBvtV,EAAMutV,cACtBtyL,EAAWj7J,EAAMi7J,SACfg/L,EAvCN,SAAyB1M,EAAe32F,GACtC,IAAIqjG,EAQJ,OAPIhB,IAAS1L,EAAe32F,GAC1BqjG,EAAW,aACFf,IAAM3L,EAAe32F,GAC9BqjG,EAAW,UACFd,IAAU5L,EAAe32F,KAClCqjG,EAAW,UAENA,CACT,CA6BiBC,CAAgB3M,EAAe+L,GAC1Ca,EA7BN,SAAsC5M,EAAe32F,GAEjD,IAAIwjG,EAIAC,EALN,OAAIpB,IAAS1L,EAAe32F,GAEqC,QAAvDwjG,EAAwBxjG,EAAWujG,sBAAsD,IAA1BC,GAA2F,QAAtDA,EAAwBA,EAAsB,UAA0C,IAA1BA,GAAgG,QAA3DA,EAAwBA,EAAsBlzhB,eAA+C,IAA1BkzhB,OAAmC,EAASA,EAAsBlzhB,QAElVgyhB,IAAM3L,EAAe32F,GAEyC,QAAxDyjG,EAAyBzjG,EAAWujG,sBAAuD,IAA3BE,GAA8F,QAAxDA,EAAyBA,EAAuB,UAA2C,IAA3BA,GAAmG,QAA7DA,EAAyBA,EAAuBnzhB,eAAgD,IAA3BmzhB,OAAoC,EAASA,EAAuBnzhB,QAE3ViyhB,IAAU5L,EAAe32F,GACpBA,EAAW1vb,QAEb,CAAC,CACV,CAgBuBozhB,CAA6B/M,EAAe+L,GAC7DiB,EAAoBt/L,EAASlqZ,QAAO,SAAUyplB,EAAO93I,GACvD,IAAI+3I,EAAczqf,MAAQmqf,EAAgBK,GACtCE,EAAyBnN,EAAc91iB,MAAMwijB,GAAUlplB,QAAO,SAAUsolB,GAC1E,IAAIsB,EAvDV,SAAyBpN,EAAe32F,GACtC,IAAI+jG,EAQJ,OAPI1B,IAAS1L,EAAe32F,GAC1B+jG,EAAavB,IACJF,IAAM3L,EAAe32F,GAC9B+jG,EAAahB,IACJR,IAAU5L,EAAe32F,KAClC+jG,EAAab,KAERa,CACT,CA6CuBC,CAAgBrN,EAAe+L,GAChD,OAAOqB,EAAWtB,EAAWC,EAC/B,IAGIuB,EAA0BtN,EAAc91iB,MAAMwijB,GAAU31lB,QAAQo2lB,EAAuBA,EAAuB35lB,OAAS,IAE3H,OAAO05lB,GADgB/3I,IAAcm4I,CAEvC,IAIA,OADkB5/L,EAAS32Z,QAAQi2lB,EAAkBA,EAAkBx5lB,OAAS,GAElF,CCtMA,IAAI6sO,IAAY,CAAC,IAAK,KACtB,SAASxrO,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAAS2sM,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASqD,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAG3O,SAASs3O,IAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAW3e,SAASmwlB,IAA2Bjwc,EAAMpzG,GACxC,IAAIsjjB,EAAQlwc,EAAKtgI,EACfywkB,EAAQnwc,EAAKl2H,EACbk2G,EAAS8uG,IAAyB9uF,EAAM+iF,KACtCqtX,EAAS,GAAG72lB,OAAO22lB,GACnBxwkB,EAAIjE,SAAS20kB,EAAQ,IACrBC,EAAS,GAAG92lB,OAAO42lB,GACnBrmkB,EAAIrO,SAAS40kB,EAAQ,IACrBC,EAAc,GAAG/2lB,OAAOqzC,EAAMl2C,QAAUspI,EAAOtpI,QAC/CA,EAAS+kB,SAAS60kB,EAAa,IAC/BC,EAAa,GAAGh3lB,OAAOqzC,EAAM51C,OAASgpI,EAAOhpI,OAC7CA,EAAQykB,SAAS80kB,EAAY,IACjC,OAAOhjX,IAAcA,IAAcA,IAAcA,IAAcA,IAAc,CAAC,EAAG3gM,GAAQozF,GAAStgH,EAAI,CACpGA,EAAGA,GACD,CAAC,GAAIoK,EAAI,CACXA,EAAGA,GACD,CAAC,GAAI,CAAC,EAAG,CACXpzB,OAAQA,EACRM,MAAOA,EACPgM,KAAM4pC,EAAM5pC,KACZ0lM,OAAQ97J,EAAM87J,QAElB,CACO,SAAS8nZ,IAAa5jjB,GAC3B,OAAoBg8K,EAAAA,cAAoBklY,IAAO95X,IAAS,CACtD25X,UAAW,YACXK,gBAAiBiC,IACjB/B,gBAAiB,uBAChBthjB,GACL,CAOO,ICtDH6jjB,IADA1tX,IAAY,CAAC,QAAS,cAE1B,SAASxrO,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAASynN,IAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAE3e,SAASk0N,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASqD,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CAEtb,SAASwqiB,IAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,IAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASyoa,IAAWxuZ,EAAGpB,EAAG9E,GAAK,OAAO8E,EAAI8uZ,IAAgB9uZ,GAC1D,SAAoCvzB,EAAMgB,GAAQ,GAAIA,IAA2B,WAAlByC,IAAQzC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI6O,UAAU,4DAA+D,OAC1P,SAAgC7P,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI43O,eAAe,6DAAgE,OAAO53O,CAAM,CAD4F4gQ,CAAuB5gQ,EAAO,CADjOsib,CAA2B3tZ,EAAG4tZ,MAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,IAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,GAAK,CAG1M,SAAS8zZ,MAA8B,IAAM,IAAI5tZ,GAAK3hB,QAAQlS,UAAUkhB,QAAQhhB,KAAK4hD,QAAQC,UAAU7vC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO2hB,GAAI,CAAE,OAAQ4tZ,IAA4B,WAAuC,QAAS5tZ,CAAG,IAAM,CAClP,SAAS0tZ,IAAgB9uZ,GAA+J,OAA1J8uZ,IAAkBp7a,OAAO4O,eAAiB5O,OAAOmN,eAAe5F,OAAS,SAAyB+kB,GAAK,OAAOA,EAAEvoB,WAAa/D,OAAOmN,eAAemf,EAAI,EAAU8uZ,IAAgB9uZ,EAAI,CAEnN,SAAS2liB,IAAgB3liB,EAAGjL,GAA6I,OAAxI4wiB,IAAkBjyjB,OAAO4O,eAAiB5O,OAAO4O,eAAerH,OAAS,SAAyB+kB,EAAGjL,GAAsB,OAAjBiL,EAAEvoB,UAAYsd,EAAUiL,CAAG,EAAU2liB,IAAgB3liB,EAAGjL,EAAI,CACvM,SAASwwF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,IAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAC3O,SAASsvb,IAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAoBrG,IAAIy6lB,IAAmB,SAAUpnY,GACtC,SAASonY,IACP,IAAIlhkB,GAjCR,SAAyBujC,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CAkCpJooO,CAAgBh3O,KAAM27lB,GACtB,IAAK,IAAIrrX,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAyBzB,OAtBA14H,IADAp9E,EAAQynZ,IAAWlib,KAAM27lB,EAAK,GAAGn3lB,OAAO2lB,IACjB,QAAS,CAC9ByxkB,qBAAqB,IAEvB/jf,IAAgBp9E,EAAO,KAAMs5E,GAAS,kBACtC8D,IAAgBp9E,EAAO,sBAAsB,WAC3C,IAAIuriB,EAAiBvriB,EAAMod,MAAMmuhB,eACjCvriB,EAAMy7E,SAAS,CACb0lf,qBAAqB,IAEnB51B,GACFA,GAEJ,IACAnud,IAAgBp9E,EAAO,wBAAwB,WAC7C,IAAIyriB,EAAmBzriB,EAAMod,MAAMquhB,iBACnCzriB,EAAMy7E,SAAS,CACb0lf,qBAAqB,IAEnB11B,GACFA,GAEJ,IACOzriB,CACT,CAEA,OAxDF,SAAmB+5L,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7lN,UAAU,sDAAyD4lN,EAAS30N,UAAYmG,OAAO4D,OAAO6qN,GAAcA,EAAW50N,UAAW,CAAE+C,YAAa,CAAEhE,MAAO41N,EAAUjgN,UAAU,EAAMnF,cAAc,KAAWpJ,OAAOgN,eAAewhN,EAAU,YAAa,CAAEjgN,UAAU,IAAckgN,GAAYwjW,IAAgBzjW,EAAUC,EAAa,CAuDjcqiB,CAAU6kX,EAAKpnY,GA7DK9uM,EA8DAk2kB,EA9DyB1/N,EAsRzC,CAAC,CACHn3X,IAAK,2BACLlG,MAAO,SAAkCmjY,EAAWjiI,GAClD,OAAIiiI,EAAU85N,cAAgB/7V,EAAUg8V,gBAC/B,CACLA,gBAAiB/5N,EAAU85N,YAC3BE,QAASh6N,EAAUxlX,KACnBquY,SAAU9qJ,EAAUi8V,SAGpBh6N,EAAUxlX,OAASujP,EAAUi8V,QACxB,CACLA,QAASh6N,EAAUxlX,MAGhB,IACT,KAtS+By/W,EA8DR,CAAC,CACxBl3X,IAAK,6BACLlG,MAAO,SAAoC2d,GACzC,IAAIyjP,EAAShgQ,KACT+tP,EAAc/tP,KAAK63C,MACrByC,EAAQyzM,EAAYzzM,MACpBjR,EAAU0kN,EAAY1kN,QACtBmxX,EAAczsK,EAAYysK,YAC1BwhM,EAAYjuW,EAAYiuW,UACtBC,EAAYlpC,GAAY/yjB,KAAK63C,OAAO,GACxC,OAAOt7B,GAAQA,EAAKlP,KAAI,SAAUqjB,EAAOxvB,GACvC,IAAI+zO,EAAW/zO,IAAMs5Z,EACjBvvR,EAASgqG,EAAW+mX,EAAY1hjB,EAChCzC,EAAQ2gM,IAAcA,IAAcA,IAAc,CAAC,EAAGyjX,GAAYvrkB,GAAQ,CAAC,EAAG,CAChFukN,SAAUA,EACVhqG,OAAQA,EACR/6H,MAAOhP,EACPmoC,QAASA,EACT68hB,iBAAkBlmU,EAAOk8V,qBACzBl2B,eAAgBhmU,EAAOm8V,qBAEzB,OAAoBtoY,EAAAA,cAAoB+hW,GAAO32V,IAAS,CACtD13N,UAAW,0BACV8pjB,GAAmBrxT,EAAOnoN,MAAOnnB,EAAOxvB,GAAI,CAC7C4D,IAAK,aAAaN,OAAiB,OAAVksB,QAA4B,IAAVA,OAAmB,EAASA,EAAM/F,EAAG,KAAKnmB,OAAiB,OAAVksB,QAA4B,IAAVA,OAAmB,EAASA,EAAMqE,EAAG,KAAKvwB,OAAiB,OAAVksB,QAA4B,IAAVA,OAAmB,EAASA,EAAM9xB,SACpMi1N,EAAAA,cAAoB4nY,IAAc5jjB,GACrD,GACF,GACC,CACD/yC,IAAK,gCACLlG,MAAO,WACL,IAAI2qb,EAASvpb,KACTulT,EAAevlT,KAAK63C,MACtBt7B,EAAOgpS,EAAahpS,KACpB+2T,EAAS/tB,EAAa+tB,OACtBylP,EAAoBxzQ,EAAawzQ,kBACjCqP,EAAiB7iR,EAAa6iR,eAC9B1mc,EAAoB6jL,EAAa7jL,kBACjCm3b,EAAkBtzQ,EAAaszQ,gBAC/BgjC,EAAct2S,EAAas2S,YACzBjxM,EAAW5qZ,KAAKqK,MAAMugZ,SAC1B,OAAoB/2L,EAAAA,cAAoBwxW,GAAS,CAC/C3wX,MAAO0zX,EACPvnc,SAAUa,EACVuzG,SAAU8jV,EACV19I,OAAQw9I,EACRlujB,KAAM,CACJ+oB,EAAG,GAEL5oB,GAAI,CACF4oB,EAAG,GAEL5uB,IAAK,OAAON,OAAOq3lB,GACnB71B,eAAgBhmkB,KAAKm8lB,mBACrBj2B,iBAAkBlmkB,KAAKk8lB,uBACtB,SAAUjxc,GACX,IAAIv3H,EAAIu3H,EAAKv3H,EACT0okB,EAAW7/kB,EAAKlP,KAAI,SAAUqjB,EAAOxgB,GACvC,IAAI0sB,EAAOguX,GAAYA,EAAS16Y,GAChC,GAAI0sB,EAAM,CACR,IAAIy/jB,EAAgB/rC,GAAkB1zhB,EAAKjS,EAAG+F,EAAM/F,GAChD2xkB,EAAgBhsC,GAAkB1zhB,EAAK7H,EAAGrE,EAAMqE,GAChDwnkB,EAAoBjsC,GAAkB1zhB,EAAK36B,MAAOyuB,EAAMzuB,OACxDu6lB,EAAqBlsC,GAAkB1zhB,EAAKj7B,OAAQ+uB,EAAM/uB,QAC9D,OAAO62O,IAAcA,IAAc,CAAC,EAAG9nN,GAAQ,CAAC,EAAG,CACjD/F,EAAG0xkB,EAAc3okB,GACjBqB,EAAGunkB,EAAc5okB,GACjBzxB,MAAOs6lB,EAAkB7okB,GACzB/xB,OAAQ66lB,EAAmB9okB,IAE/B,CACA,GAAe,eAAX4/S,EAAyB,CAC3B,IACI7mU,EADsB6jjB,GAAkB,EAAG5/hB,EAAM/uB,OAC7C86lB,CAAoB/okB,GAC5B,OAAO8kN,IAAcA,IAAc,CAAC,EAAG9nN,GAAQ,CAAC,EAAG,CACjDqE,EAAGrE,EAAMqE,EAAIrE,EAAM/uB,OAAS8K,EAC5B9K,OAAQ8K,GAEZ,CACA,IACID,EADe8jjB,GAAkB,EAAG5/hB,EAAMzuB,MACtC+mkB,CAAat1iB,GACrB,OAAO8kN,IAAcA,IAAc,CAAC,EAAG9nN,GAAQ,CAAC,EAAG,CACjDzuB,MAAOuK,GAEX,IACA,OAAoBqnN,EAAAA,cAAoB+hW,GAAO,KAAMrsI,EAAOmzK,2BAA2BN,GACzF,GACF,GACC,CACDt3lB,IAAK,mBACLlG,MAAO,WACL,IAAI+mT,EAAe3lT,KAAK63C,MACtBt7B,EAAOopS,EAAappS,KACpBw8iB,EAAoBpzQ,EAAaozQ,kBAC/BnuK,EAAW5qZ,KAAKqK,MAAMugZ,SAC1B,QAAImuK,GAAqBx8iB,GAAQA,EAAKpb,SAAYypZ,GAAax6S,MAAQw6S,EAAUruY,GAG1Evc,KAAK08lB,2BAA2BnglB,GAF9Bvc,KAAK28lB,+BAGhB,GACC,CACD73lB,IAAK,mBACLlG,MAAO,WACL,IAAIg+lB,EAAS58lB,KACTkmT,EAAelmT,KAAK63C,MACtBt7B,EAAO2pS,EAAa3pS,KACpB8sB,EAAU68Q,EAAa78Q,QACvBmxX,EAAct0G,EAAas0G,YACzBqiM,EAAkB9pC,GAAY/yjB,KAAK63C,MAAM2jF,YAAY,GACzD,OAAOj/G,EAAKlP,KAAI,SAAUqjB,EAAOxvB,GACnBwvB,EAAM9xB,MAAlB,IACE48H,EAAa9qG,EAAM8qG,WACnBpuB,EAAO2sI,IAAyBrpN,EAAOs9M,KACzC,IAAKxyG,EACH,OAAO,KAET,IAAI3jF,EAAQ2gM,IAAcA,IAAcA,IAAcA,IAAcA,IAAc,CAAC,EAAGprI,GAAO,CAAC,EAAG,CAC/FxB,KAAM,QACL4vB,GAAaqhe,GAAkBxrC,GAAmBurC,EAAO/kjB,MAAOnnB,EAAOxvB,IAAK,CAAC,EAAG,CACjFglkB,iBAAkB02B,EAAOV,qBACzBl2B,eAAgB42B,EAAOT,mBACvB9yjB,QAASA,EACTn5B,MAAOhP,EACPqG,UAAW,sCAEb,OAAoBssN,EAAAA,cAAoB4nY,IAAcx8X,IAAS,CAC7Dn6N,IAAK,kBAAkBN,OAAOtD,GAC9B+pI,OAAQ2xd,EAAO/kjB,MAAM2jF,WACrBy5G,SAAU/zO,IAAMs5Z,GACf3iX,GACL,GACF,GACC,CACD/yC,IAAK,iBACLlG,MAAO,SAAwBk+lB,EAAUC,GACvC,GAAI/8lB,KAAK63C,MAAMkhhB,oBAAsB/4jB,KAAKqK,MAAMuxlB,oBAC9C,OAAO,KAET,IAAIv0S,EAAernT,KAAK63C,MACtBt7B,EAAO8qS,EAAa9qS,KACpBsqkB,EAAQx/R,EAAaw/R,MACrBC,EAAQz/R,EAAay/R,MACrBxzQ,EAASjsB,EAAaisB,OAEpB0pR,EAAgBxqC,GADPnrQ,EAAaljQ,SACkBwiiB,KAC5C,IAAKqW,EACH,OAAO,KAET,IAAIliiB,EAAoB,aAAXw4Q,EAAwB/2T,EAAK,GAAG5a,OAAS,EAAI4a,EAAK,GAAGta,MAAQ,EACtE2klB,EAAqB,SAA4BqW,EAAW5zjB,GAK9D,IAAIzqC,EAAQiC,MAAMqR,QAAQ+qlB,EAAUr+lB,OAASq+lB,EAAUr+lB,MAAM,GAAKq+lB,EAAUr+lB,MAC5E,MAAO,CACL+rB,EAAGsykB,EAAUtykB,EACboK,EAAGkokB,EAAUlokB,EACbn2B,MAAOA,EACPqolB,SAAU0B,IAAkBsU,EAAW5zjB,GAE3C,EACI6zjB,EAAgB,CAClB/kS,SAAU2kS,EAAW,iBAAiBt4lB,OAAOu4lB,EAAY,KAAO,MAElE,OAAoBlpY,EAAAA,cAAoB+hW,GAAOsnC,EAAeF,EAAc3vlB,KAAI,SAAU6kC,GACxF,OAAoB2hL,EAAAA,aAAmB3hL,EAAM,CAC3CptC,IAAK,aAAaN,OAAOu4lB,EAAY,KAAKv4lB,OAAO0tC,EAAK2F,MAAMxO,SAC5D9sB,KAAMA,EACNsqkB,MAAOA,EACPC,MAAOA,EACPxzQ,OAAQA,EACRx4Q,OAAQA,EACR8rhB,mBAAoBA,GAExB,IACF,GACC,CACD9hlB,IAAK,SACLlG,MAAO,WACL,IAAI2pT,EAAevoT,KAAK63C,MACtBiihB,EAAOvxQ,EAAauxQ,KACpBv9iB,EAAOgsS,EAAahsS,KACpBhV,EAAYghT,EAAahhT,UACzBs/kB,EAAQt+R,EAAas+R,MACrBC,EAAQv+R,EAAau+R,MACrBzllB,EAAOknT,EAAalnT,KACpBC,EAAMinT,EAAajnT,IACnBW,EAAQsmT,EAAatmT,MACrBN,EAAS4mT,EAAa5mT,OACtBo3jB,EAAoBxwQ,EAAawwQ,kBACjCv9b,EAAa+sL,EAAa/sL,WAC1B/3G,EAAK8kS,EAAa9kS,GACpB,GAAIq2iB,IAASv9iB,IAASA,EAAKpb,OACzB,OAAO,KAET,IAAIy6lB,EAAsB57lB,KAAKqK,MAAMuxlB,oBACjCjmC,EAAa9sL,GAAK,eAAgBthY,GAClC41lB,EAAYtW,GAASA,EAAMqG,kBAC3BkQ,EAAYtW,GAASA,EAAMoG,kBAC3B4P,EAAWK,GAAaC,EACxBL,EAAatsf,KAAMhtF,GAAMzjB,KAAKyjB,GAAKA,EACvC,OAAoBowM,EAAAA,cAAoB+hW,GAAO,CAC7CrujB,UAAWoujB,GACVwnC,GAAaC,EAAyBvpY,EAAAA,cAAoB,OAAQ,KAAmBA,EAAAA,cAAoB,WAAY,CACtHpwM,GAAI,YAAYjf,OAAOu4lB,IACTlpY,EAAAA,cAAoB,OAAQ,CAC1ClpM,EAAGwykB,EAAY97lB,EAAOA,EAAOY,EAAQ,EACrC8yB,EAAGqokB,EAAY97lB,EAAMA,EAAMK,EAAS,EACpCM,MAAOk7lB,EAAYl7lB,EAAgB,EAARA,EAC3BN,OAAQy7lB,EAAYz7lB,EAAkB,EAATA,MACxB,KAAmBkyN,EAAAA,cAAoB+hW,GAAO,CACnDrujB,UAAW,0BACX4wT,SAAU2kS,EAAW,iBAAiBt4lB,OAAOu4lB,EAAY,KAAO,MAC/Dvhe,EAAax7H,KAAK2wlB,mBAAqB,KAAM3wlB,KAAKq9lB,oBAAqBr9lB,KAAKs9lB,eAAeR,EAAUC,KAAehkC,GAAqB6iC,IAAwBtG,IAAUV,mBAAmB50lB,KAAK63C,MAAOt7B,GAC/M,MArR0Ey7iB,IAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,IAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CAwS/C,CA3Q8B,CA2Q5BxlR,EAAAA,eClTF,SAASj0G,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAE7T,SAAS0liB,IAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,IAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAAS3G,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,IAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAC3O,SAASsvb,IAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CD4S5Gw6lB,IAAOC,IACP9jf,IAAgB8jf,IAAK,cAAe,OACpC9jf,IAAgB8jf,IAAK,eAAgB,CACnC4B,QAAS,EACTC,QAAS,EACTjV,WAAY,OACZkV,aAAc,EACd3jC,MAAM,EACNv9iB,KAAM,GACN+2T,OAAQ,WACR0oR,WAAW,EACXjjC,mBAAoBQ,GAAOC,MAC3B4O,eAAgB,EAChB1mc,kBAAmB,IACnBm3b,gBAAiB,SAYnBhhd,IAAgB8jf,IAAK,mBAAmB,SAAUj/a,GAChD,IAAI7kI,EAAQ6kI,EAAM7kI,MAChB3F,EAAOwqI,EAAMxqI,KACbwrjB,EAAchhb,EAAMghb,YACpBrR,EAAW3va,EAAM2va,SACjBxF,EAAQnqa,EAAMmqa,MACdC,EAAQpqa,EAAMoqa,MACd6W,EAAajhb,EAAMihb,WACnBC,EAAalhb,EAAMkhb,WACnBhR,EAAclwa,EAAMkwa,YACpBiR,EAAiBnhb,EAAMmhb,eACvBC,EAAgBphb,EAAMohb,cACtBhjiB,EAAS4hH,EAAM5hH,OACb54C,Ef6RyB,SAA2Bw7kB,EAAaz1lB,GACrE,IAAKy1lB,EACH,OAAO,KAET,IAAK,IAAIx8lB,EAAI,EAAGujB,EAAMi5kB,EAAYv8lB,OAAQD,EAAIujB,EAAKvjB,IACjD,GAAIw8lB,EAAYx8lB,GAAGgxC,OAASjqC,EAC1B,OAAOy1lB,EAAYx8lB,GAAGmK,SAG1B,OAAO,IACT,CevSY0ylB,CAAkBL,EAAaxrjB,GACzC,IAAKhwB,EACH,OAAO,KAET,IAAIoxT,EAASz7R,EAAMy7R,OACfk1Q,EAAmBt2iB,EAAKlrC,KAAK2wC,aAC7Bwoc,OAAiClze,IAArBu7kB,EAAiChwW,IAAcA,IAAc,CAAC,EAAGgwW,GAAmBt2iB,EAAK2F,OAAS3F,EAAK2F,MACnHxO,EAAU82c,EAAU92c,QACtB8a,EAAWg8b,EAAUh8b,SACrB65iB,EAAmB79G,EAAUs9G,aAC3BQ,EAAyB,eAAX3qR,EAA0BwzQ,EAAQD,EAChDqX,EAAgBtR,EAAcqR,EAAYn8c,MAAM5iI,SAAW,KAC3Dy1H,EfuiByB,SAA2B+4F,GACxD,IAAIuwX,EAAcvwX,EAAMuwX,YACpB/+kB,EAAS++kB,EAAYn8c,MAAM5iI,SAC/B,GAAyB,WAArB++kB,EAAYj3lB,KAAmB,CACjC,IAAI6ilB,EAAWrolB,KAAKyhB,IAAI/D,EAAO,GAAIA,EAAO,IACtC4qkB,EAAWtolB,KAAKwhB,IAAI9D,EAAO,GAAIA,EAAO,IAC1C,OAAI2qkB,GAAY,GAAKC,GAAY,EACxB,EAELA,EAAW,EACNA,EAEFD,CACT,CACA,OAAO3qkB,EAAO,EAChB,CetjBkBi/kB,CAAkB,CAChCF,YAAaA,IAEX/4jB,EAAQsthB,GAAcrugB,EAAUha,KAChCi0jB,EAAQN,EAAczwlB,KAAI,SAAUqjB,EAAOxgB,GAC7C,IAAItR,EAAO+rB,EAAGoK,EAAG9yB,EAAON,EAAQ65H,EAC5Boxd,EACFhulB,Ef6RwB,SAA0BA,EAAOsgB,GAC7D,IAAKA,GAA4B,IAAlBA,EAAO/d,SAAiBimG,GAASloF,EAAO,MAAQkoF,GAASloF,EAAO,IAC7E,OAAOtgB,EAET,IAAIirlB,EAAWrolB,KAAKyhB,IAAI/D,EAAO,GAAIA,EAAO,IACtC4qkB,EAAWtolB,KAAKwhB,IAAI9D,EAAO,GAAIA,EAAO,IACtCjO,EAAS,CAACrS,EAAM,GAAIA,EAAM,IAa9B,QAZKwoG,GAASxoG,EAAM,KAAOA,EAAM,GAAKirlB,KACpC54kB,EAAO,GAAK44kB,KAETzif,GAASxoG,EAAM,KAAOA,EAAM,GAAKkrlB,KACpC74kB,EAAO,GAAK64kB,GAEV74kB,EAAO,GAAK64kB,IACd74kB,EAAO,GAAK64kB,GAEV74kB,EAAO,GAAK44kB,IACd54kB,EAAO,GAAK44kB,GAEP54kB,CACT,CejTcotlB,CAAiBzR,EAAYiR,EAAiB3tlB,GAAQgulB,IAE9Dt/lB,EAAQ+plB,IAAkBj4jB,EAAO2Y,GAC5BxoC,MAAMqR,QAAQtT,KACjBA,EAAQ,CAAC+1I,EAAW/1I,KAGxB,IAAI6+lB,ED7T0B,SAA8BA,GAC9D,IAAIl/jB,EAAe9uB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EACvF,OAAO,SAAU7Q,EAAOsR,GACtB,GAA4B,kBAAjButlB,EAA2B,OAAOA,EAC7C,IAAIa,EAAiC,kBAAV1/lB,EAC3B,OAAI0/lB,EACKb,EAAa7+lB,EAAOsR,IAE5BoulB,GAA8M3/X,IAAU,GAClNpgM,EACT,CACF,CCkTuBggkB,CAAqBP,EAAkBtC,IAAK/jjB,aAAa8ljB,aAAzDc,CAAuE3/lB,EAAM,GAAIsR,GACpG,GAAe,eAAXojU,EAAyB,CAC3B,IAAI1nG,EACAw0B,EAAQ,CAAC0mV,EAAMhlc,MAAMljJ,EAAM,IAAKkolB,EAAMhlc,MAAMljJ,EAAM,KACpD4/lB,EAAiBp+V,EAAM,GACvBq+V,EAAoBr+V,EAAM,GAC5Bz1O,EAAI6hkB,IAAuB,CACzBrC,KAAMtD,EACNnX,MAAOiuB,EACPtR,SAAUA,EACVvxhB,OAAQ54C,EAAI44C,OACZpqC,MAAOA,EACPxgB,MAAOA,IAET6kB,EAAkH,QAA7G62M,EAA8B,OAAtB6yX,QAAoD,IAAtBA,EAA+BA,EAAoBD,SAAsC,IAAV5yX,EAAmBA,OAAQ3+N,EACrJhL,EAAQigB,EAAIG,KACZ,IAAIq8kB,EAAiBF,EAAiBC,EAQtC,GAPA98lB,EAASuF,OAAOic,MAAMu7kB,GAAkB,EAAIA,EAC5Clje,EAAa,CACX7wG,EAAGA,EACHoK,EAAG+xjB,EAAM/xjB,EACT9yB,MAAOA,EACPN,OAAQmllB,EAAMnllB,QAEZH,KAAK6E,IAAIo3lB,GAAgB,GAAKj8lB,KAAK6E,IAAI1E,GAAUH,KAAK6E,IAAIo3lB,GAAe,CAC3E,IAAI3ze,EAAQgmc,GAASnujB,GAAU87lB,IAAiBj8lB,KAAK6E,IAAIo3lB,GAAgBj8lB,KAAK6E,IAAI1E,IAClFozB,GAAK+0F,EACLnoH,GAAUmoH,CACZ,CACF,KAAO,CACL,IAAImiH,EAAQ,CAAC46W,EAAM/kc,MAAMljJ,EAAM,IAAKiolB,EAAM/kc,MAAMljJ,EAAM,KACpD+/lB,EAAkB1yX,EAAM,GACxB2yX,EAAqB3yX,EAAM,GAkB7B,GAjBAthN,EAAIg0kB,EACJ5pkB,EAAIy3jB,IAAuB,CACzBrC,KAAMrD,EACNpX,MAAOkuB,EACPvR,SAAUA,EACVvxhB,OAAQ54C,EAAI44C,OACZpqC,MAAOA,EACPxgB,MAAOA,IAETjO,EAAQ28lB,EAAqBD,EAC7Bh9lB,EAASugB,EAAIG,KACbm5G,EAAa,CACX7wG,EAAGk8jB,EAAMl8jB,EACToK,EAAGA,EACH9yB,MAAO4klB,EAAM5klB,MACbN,OAAQA,GAENH,KAAK6E,IAAIo3lB,GAAgB,GAAKj8lB,KAAK6E,IAAIpE,GAAST,KAAK6E,IAAIo3lB,GAE3Dx7lB,GADa6tjB,GAAS7tjB,GAASw7lB,IAAiBj8lB,KAAK6E,IAAIo3lB,GAAgBj8lB,KAAK6E,IAAIpE,GAGtF,CACA,OAAOu2O,IAAcA,IAAcA,IAAc,CAAC,EAAG9nN,GAAQ,CAAC,EAAG,CAC/D/F,EAAGA,EACHoK,EAAGA,EACH9yB,MAAOA,EACPN,OAAQA,EACR/C,MAAOgulB,EAAchulB,EAAQA,EAAM,GACnC0oE,QAAS52C,EACT8qG,WAAYA,GACXt2F,GAASA,EAAMh1B,IAAUg1B,EAAMh1B,GAAO2nC,OAAQ,CAAC,EAAG,CACnD0ijB,eAAgB,CAAC7M,IAAex7iB,EAAMxhB,IACtCmukB,gBAAiB,CACfl0kB,EAAGA,EAAI1oB,EAAQ,EACf8yB,EAAGA,EAAIpzB,EAAS,IAGtB,IACA,OAAO62O,IAAc,CACnBj8N,KAAM6hlB,EACN9qR,OAAQA,GACPx4Q,EACL,ICtaO,IAAIgkiB,IAAgB,SAAuBjnjB,EAAOknjB,EAASjkiB,EAAQmuhB,EAAU+V,GAClF,IAAI/8lB,EAAQ41C,EAAM51C,MAChBN,EAASk2C,EAAMl2C,OACf2xU,EAASz7R,EAAMy7R,OACfnvR,EAAWtM,EAAMsM,SACf8mf,EAAMjliB,OAAOC,KAAK84lB,GAClB1rR,EAAQ,CACVhyU,KAAMy5D,EAAOz5D,KACb49lB,WAAYnkiB,EAAOz5D,KACnBmK,MAAOvJ,EAAQ64D,EAAOtvD,MACtB0zlB,YAAaj9lB,EAAQ64D,EAAOtvD,MAC5BlK,IAAKw5D,EAAOx5D,IACZ69lB,UAAWrkiB,EAAOx5D,IAClB8E,OAAQzE,EAASm5D,EAAO10D,OACxBg5lB,aAAcz9lB,EAASm5D,EAAO10D,QAE5Bi5lB,IAAW3sC,GAAgBvugB,EAAUw3iB,KACzC,OAAO1wD,EAAIhsgB,QAAO,SAAUhuB,EAAQwS,GAClC,IAQI67kB,EAAmBjskB,EAAO1I,EAAGoK,EAAGwqkB,EARhCpV,EAAO4U,EAAQt7kB,GACf1gB,EAAconlB,EAAKpnlB,YACrBmc,EAASirkB,EAAKjrkB,OACdsglB,EAAgBrV,EAAK5ojB,QACrBA,OAA4B,IAAlBi+jB,EAA2B,CAAC,EAAIA,EAC1CC,EAAStV,EAAKsV,OACdn1d,EAAW6/c,EAAK7/c,SACdo1d,EAAY,GAAGl7lB,OAAOzB,GAAayB,OAAOi7lB,EAAS,SAAW,IAElE,GAAkB,WAAdtV,EAAKnjlB,OAAuC,QAAjBmjlB,EAAK5ojB,SAAsC,WAAjB4ojB,EAAK5ojB,SAAuB,CACnF,IAAIhJ,EAAOrZ,EAAO,GAAKA,EAAO,GAC1ByglB,EAAgCjohB,IAChCkohB,EAAezV,EAAKS,kBAAkB/1jB,OAM1C,GALA+qkB,EAAa9+lB,SAAQ,SAAUlC,EAAOsR,GAChCA,EAAQ,IACVyvlB,EAAgCn+lB,KAAKyhB,KAAKrkB,GAAS,IAAMghmB,EAAa1vlB,EAAQ,IAAM,GAAIyvlB,GAE5F,IACIz4lB,OAAO4kF,SAAS6zgB,GAAgC,CAClD,IAAIE,EAA4BF,EAAgCpnkB,EAC5DunkB,EAA6B,aAAhB3V,EAAK72Q,OAAwBx4Q,EAAOn5D,OAASm5D,EAAO74D,MAIrE,GAHqB,QAAjBkolB,EAAK5ojB,UACP+9jB,EAAoBO,EAA4BC,EAAa,GAE1C,WAAjB3V,EAAK5ojB,QAAsB,CAC7B,IAAIigT,EAAM2uO,GAAgBt4gB,EAAMkojB,eAAgBF,EAA4BC,GACxEE,EAAWH,EAA4BC,EAAa,EACxDR,EAAoBU,EAAWx+Q,GAAOw+Q,EAAWx+Q,GAAOs+Q,EAAat+Q,CACvE,CACF,CACF,CAEEnuT,EADe,UAAb41jB,EACM,CAACnuhB,EAAOz5D,MAAQkgC,EAAQlgC,MAAQ,IAAMi+lB,GAAqB,GAAIxkiB,EAAOz5D,KAAOy5D,EAAO74D,OAASs/B,EAAQ/1B,OAAS,IAAM8zlB,GAAqB,IAC3H,UAAbrW,EACU,eAAX31Q,EAA0B,CAACx4Q,EAAOx5D,IAAMw5D,EAAOn5D,QAAU4/B,EAAQn7B,QAAU,GAAI00D,EAAOx5D,KAAOigC,EAAQjgC,KAAO,IAAM,CAACw5D,EAAOx5D,KAAOigC,EAAQjgC,KAAO,IAAMg+lB,GAAqB,GAAIxkiB,EAAOx5D,IAAMw5D,EAAOn5D,QAAU4/B,EAAQn7B,QAAU,IAAMk5lB,GAAqB,IAE1PnV,EAAK92jB,MAEXi3G,IACFj3G,EAAQ,CAACA,EAAM,GAAIA,EAAM,KAE3B,IAAI4skB,EhBkegB,SAAoB9V,EAAM0D,EAAWwR,GAC3D,IAAIv9c,EAAQqoc,EAAKroc,MACf96I,EAAOmjlB,EAAKnjlB,KACZssU,EAAS62Q,EAAK72Q,OACd21Q,EAAWkB,EAAKlB,SAClB,GAAc,SAAVnnc,EACF,MAAe,WAAXwxL,GAAoC,eAAb21Q,EAClB,CACLnnc,MAAOo+c,KACP1V,cAAe,QAGJ,WAAXl3Q,GAAoC,cAAb21Q,EAClB,CACLnnc,MAAOo+c,KACP1V,cAAe,UAGN,aAATxjlB,GAAuB6mlB,IAAcA,EAAUnplB,QAAQ,cAAgB,GAAKmplB,EAAUnplB,QAAQ,cAAgB,GAAKmplB,EAAUnplB,QAAQ,kBAAoB,IAAM26lB,GAC1J,CACLv9c,MAAOo+c,KACP1V,cAAe,SAGN,aAATxjlB,EACK,CACL86I,MAAOo+c,KACP1V,cAAe,QAGZ,CACL1oc,MAAOo+c,KACP1V,cAAe,UAGnB,GAAInjf,KAASy6C,GAAQ,CACnB,IAAI7zI,EAAO,QAAQzJ,OAAOuwC,KAAW+sG,IACrC,MAAO,CACLA,OAAQo+c,EAASjylB,IAASiylB,MAC1B1V,cAAe0V,EAASjylB,GAAQA,EAAO,QAE3C,CACA,OAAO2c,KAAWk3H,GAAS,CACzBA,MAAOA,GACL,CACFA,MAAOo+c,KACP1V,cAAe,QAEnB,CgBlhBsB2V,CAAWhW,EAAM6U,EAAWK,GAC5Cv9c,EAAQm+c,EAAYn+c,MACpB0oc,EAAgByV,EAAYzV,cAC9B1oc,EAAM5iI,OAAOA,GAAQmU,MAAMA,GhBihBC,SAA4ByuH,GAC1D,IAAI5iI,EAAS4iI,EAAM5iI,SACnB,GAAKA,KAAUA,EAAO/d,QAAU,GAAhC,CAGA,IAAIsjB,EAAMvF,EAAO/d,OACbkyB,EAAQyuH,EAAMzuH,QACdw2jB,EAAWrolB,KAAKyhB,IAAIoQ,EAAM,GAAIA,EAAM,IAAM83jB,IAC1CrB,EAAWtolB,KAAKwhB,IAAIqQ,EAAM,GAAIA,EAAM,IAAM83jB,IAC1ChpkB,EAAQ2/H,EAAM5iI,EAAO,IACrBu0D,EAAOquE,EAAM5iI,EAAOuF,EAAM,KAC1BtC,EAAQ0nkB,GAAY1nkB,EAAQ2nkB,GAAYr2gB,EAAOo2gB,GAAYp2gB,EAAOq2gB,IACpEhoc,EAAM5iI,OAAO,CAACA,EAAO,GAAIA,EAAOuF,EAAM,IARxC,CAUF,CgB9hBI27kB,CAAmBt+c,GACnB,IAAI4tb,EhBkvBqB,SAAyB5tb,EAAO19G,GAC3D,IAAIomjB,EAAgBpmjB,EAAKomjB,cACvBxjlB,EAAOo9B,EAAKp9B,KACZ0+kB,EAAYthjB,EAAKshjB,UACjB2a,EAAiBj8jB,EAAKi8jB,eACtBpb,EAAgB7gjB,EAAK6gjB,cACnBqb,EAAY9V,GAAiBpmjB,EAAK09G,MACtC,GAAkB,SAAdw+c,GAAsC,WAAdA,EAC1B,OAAO,KAET,GAAI5a,GAAsB,WAAT1+kB,GAAqBq5lB,IAAyC,SAAtBA,EAAe,IAAuC,SAAtBA,EAAe,IAAgB,CAEtH,IAAInhlB,EAAS4iI,EAAM5iI,SACnB,IAAKA,EAAO/d,OACV,OAAO,KAET,IAAIo/lB,EAAapa,IAAkBjnkB,EAAQwmkB,EAAWT,GAEtD,OADAnjc,EAAM5iI,OAAO,CAAC+D,MAAIs9kB,GAAav9kB,MAAIu9kB,KAC5B,CACL9V,UAAW8V,EAEf,CACA,GAAI7a,GAAsB,WAAT1+kB,EAAmB,CAClC,IAAIw5lB,EAAU1+c,EAAM5iI,SAEpB,MAAO,CACLurkB,UAFgBjE,IAAyBga,EAAS9a,EAAWT,GAIjE,CACA,OAAO,IACT,CgBhxBgBwb,CAAgB3+c,EAAO02F,IAAcA,IAAc,CAAC,EAAG2xW,GAAO,CAAC,EAAG,CAC5EK,cAAeA,KAEA,UAAbvB,GACFsW,EAA4B,QAAhBx8lB,IAA0B08lB,GAA0B,WAAhB18lB,GAA4B08lB,EAC5E90kB,EAAImwC,EAAOz5D,KACX0zB,EAAIs+S,EAAMqsR,GAAaH,EAAYpV,EAAKxolB,QAClB,UAAbsnlB,IACTsW,EAA4B,SAAhBx8lB,IAA2B08lB,GAA0B,UAAhB18lB,GAA2B08lB,EAC5E90kB,EAAI0oT,EAAMqsR,GAAaH,EAAYpV,EAAKlolB,MACxC8yB,EAAI+lC,EAAOx5D,KAEb,IAAIo/lB,EAAYloX,IAAcA,IAAcA,IAAc,CAAC,EAAG2xW,GAAOza,GAAQ,CAAC,EAAG,CAC/E8a,cAAeA,EACf7/jB,EAAGA,EACHoK,EAAGA,EACH+sH,MAAOA,EACP7/I,MAAoB,UAAbgnlB,EAAuBnuhB,EAAO74D,MAAQkolB,EAAKlolB,MAClDN,OAAqB,UAAbsnlB,EAAuBnuhB,EAAOn5D,OAASwolB,EAAKxolB,SAQtD,OANA++lB,EAAUrU,SAAWc,IAAkBuT,EAAWhxB,GAC7Cya,EAAKrwB,MAAqB,UAAbmvB,EAENkB,EAAKrwB,OACfzmP,EAAMqsR,KAAeH,GAAa,EAAI,GAAKmB,EAAUz+lB,OAFrDoxU,EAAMqsR,KAAeH,GAAa,EAAI,GAAKmB,EAAU/+lB,OAIhD62O,IAAcA,IAAc,CAAC,EAAGvnO,GAAS,CAAC,EAAG4mG,IAAgB,CAAC,EAAGp0F,EAAIi9kB,GAC9E,GAAG,CAAC,EACN,EACWC,IAAiB,SAAwB11c,EAAMyxB,GACxD,IAAIlsI,EAAKy6G,EAAKtgI,EACZ8lB,EAAKw6G,EAAKl2H,EACR2b,EAAKgsI,EAAM/xJ,EACbgmB,EAAK+rI,EAAM3nJ,EACb,MAAO,CACLpK,EAAGnpB,KAAKyhB,IAAIutB,EAAIE,GAChB3b,EAAGvzB,KAAKyhB,IAAIwtB,EAAIE,GAChB1uC,MAAOT,KAAK6E,IAAIqqC,EAAKF,GACrB7uC,OAAQH,KAAK6E,IAAIsqC,EAAKF,GAE1B,EAoBWmwjB,IAA2B,WACpC,SAASA,EAAY9+c,IArJvB,SAAyB9jF,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CAsJpJooO,CAAgBh3O,KAAM4gmB,GACtB5gmB,KAAK8hJ,MAAQA,CACf,CACA,OAvJoBr8H,EAuJAm7kB,EAvJa5kO,EAuJA,CAAC,CAChCl3X,IAAK,SACL0I,IAAK,WACH,OAAOxN,KAAK8hJ,MAAM5iI,MACpB,GACC,CACDpa,IAAK,QACL0I,IAAK,WACH,OAAOxN,KAAK8hJ,MAAMzuH,KACpB,GACC,CACDvuB,IAAK,WACL0I,IAAK,WACH,OAAOxN,KAAKqzB,QAAQ,EACtB,GACC,CACDvuB,IAAK,WACL0I,IAAK,WACH,OAAOxN,KAAKqzB,QAAQ,EACtB,GACC,CACDvuB,IAAK,YACL0I,IAAK,WACH,OAAOxN,KAAK8hJ,MAAM4nb,SACpB,GACC,CACD5kkB,IAAK,QACLlG,MAAO,SAAeA,GACpB,IAAIgtO,EAAQn8N,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EoxlB,EAAYj1X,EAAMi1X,UAClBx1lB,EAAWugO,EAAMvgO,SACnB,QAAc4B,IAAVrO,EAAJ,CAGA,GAAIyM,EACF,OAAQA,GACN,IAAK,QAcL,QAEI,OAAOrL,KAAK8hJ,MAAMljJ,GAZtB,IAAK,SAED,IAAIk8D,EAAS96D,KAAK0pkB,UAAY1pkB,KAAK0pkB,YAAc,EAAI,EACrD,OAAO1pkB,KAAK8hJ,MAAMljJ,GAASk8D,EAE/B,IAAK,MAED,IAAI6zF,EAAU3uJ,KAAK0pkB,UAAY1pkB,KAAK0pkB,YAAc,EAClD,OAAO1pkB,KAAK8hJ,MAAMljJ,GAAS+vJ,EAQnC,GAAIkyc,EAAW,CACb,IAAIC,EAAW9gmB,KAAK0pkB,UAAY1pkB,KAAK0pkB,YAAc,EAAI,EACvD,OAAO1pkB,KAAK8hJ,MAAMljJ,GAASkimB,CAC7B,CACA,OAAO9gmB,KAAK8hJ,MAAMljJ,EA3BlB,CA4BF,GACC,CACDkG,IAAK,YACLlG,MAAO,SAAmBA,GACxB,IAAIy0B,EAAQrzB,KAAKqzB,QACblR,EAAQkR,EAAM,GACdogD,EAAOpgD,EAAMA,EAAMlyB,OAAS,GAChC,OAAOghB,GAASsxD,EAAO70E,GAASujB,GAASvjB,GAAS60E,EAAO70E,GAAS60E,GAAQ70E,GAASujB,CACrF,IA5N2C85W,EA6NzC,CAAC,CACHn3X,IAAK,SACLlG,MAAO,SAAgB6D,GACrB,OAAO,IAAIm+lB,EAAYn+lB,EACzB,IAjO8Du5X,GAAYg8L,IAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,IAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CAmO/C,CAjFsC,GAkFtCpkR,IAAgB+of,IAAa,MAAO,MAC7B,IAAIG,IAAsB,SAA6B79lB,GAC5D,IAAI89lB,EAASh7lB,OAAOC,KAAK/C,GAAS+7B,QAAO,SAAU2D,EAAK99B,GACtD,OAAO0zO,IAAcA,IAAc,CAAC,EAAG51M,GAAM,CAAC,EAAGi1E,IAAgB,CAAC,EAAG/yG,EAAK87lB,IAAYh3lB,OAAO1G,EAAQ4B,KACvG,GAAG,CAAC,GACJ,OAAO0zO,IAAcA,IAAc,CAAC,EAAGwoX,GAAS,CAAC,EAAG,CAClD3mlB,MAAO,SAAe4mlB,GACpB,IAAIh1X,EAAQx8N,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EoxlB,EAAY50X,EAAM40X,UAClBx1lB,EAAW4gO,EAAM5gO,SACnB,OAAOohG,MAAUw0f,GAAO,SAAUrimB,EAAOk6G,GACvC,OAAOkof,EAAOlof,GAAOz+F,MAAMzb,EAAO,CAChCiimB,UAAWA,EACXx1lB,SAAUA,GAEd,GACF,EACA0/b,UAAW,SAAmBk2J,GAC5B,OAAO5vlB,MAAM4vlB,GAAO,SAAUrimB,EAAOk6G,GACnC,OAAOkof,EAAOlof,GAAOiyV,UAAUnsc,EACjC,GACF,GAEJ,EC9PA,SAASqgO,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASjN,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAASxf,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CAEtb,SAASwqiB,IAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,IAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASyoa,IAAWxuZ,EAAGpB,EAAG9E,GAAK,OAAO8E,EAAI8uZ,IAAgB9uZ,GAC1D,SAAoCvzB,EAAMgB,GAAQ,GAAIA,IAA2B,WAAlByC,IAAQzC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI6O,UAAU,4DAA+D,OAC1P,SAAgC7P,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI43O,eAAe,6DAAgE,OAAO53O,CAAM,CAD4F4gQ,CAAuB5gQ,EAAO,CADjOsib,CAA2B3tZ,EAAG4tZ,MAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,IAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,GAAK,CAG1M,SAAS8zZ,MAA8B,IAAM,IAAI5tZ,GAAK3hB,QAAQlS,UAAUkhB,QAAQhhB,KAAK4hD,QAAQC,UAAU7vC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO2hB,GAAI,CAAE,OAAQ4tZ,IAA4B,WAAuC,QAAS5tZ,CAAG,IAAM,CAClP,SAAS0tZ,IAAgB9uZ,GAA+J,OAA1J8uZ,IAAkBp7a,OAAO4O,eAAiB5O,OAAOmN,eAAe5F,OAAS,SAAyB+kB,GAAK,OAAOA,EAAEvoB,WAAa/D,OAAOmN,eAAemf,EAAI,EAAU8uZ,IAAgB9uZ,EAAI,CAEnN,SAAS2liB,IAAgB3liB,EAAGjL,GAA6I,OAAxI4wiB,IAAkBjyjB,OAAO4O,eAAiB5O,OAAO4O,eAAerH,OAAS,SAAyB+kB,EAAGjL,GAAsB,OAAjBiL,EAAEvoB,UAAYsd,EAAUiL,CAAG,EAAU2liB,IAAgB3liB,EAAGjL,EAAI,CACvM,SAASwwF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,IAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAC3O,SAASsvb,IAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAgB5G,IAsBWggmB,IAA4B,SAAUrqX,GAC/C,SAASqqX,IAEP,OApDJ,SAAyBljiB,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CAmDpJooO,CAAgBh3O,KAAMkhmB,GACfh/K,IAAWlib,KAAMkhmB,EAAczxlB,UACxC,CAEA,OA/CF,SAAmB+kN,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7lN,UAAU,sDAAyD4lN,EAAS30N,UAAYmG,OAAO4D,OAAO6qN,GAAcA,EAAW50N,UAAW,CAAE+C,YAAa,CAAEhE,MAAO41N,EAAUjgN,UAAU,EAAMnF,cAAc,KAAWpJ,OAAOgN,eAAewhN,EAAU,YAAa,CAAEjgN,UAAU,IAAckgN,GAAYwjW,IAAgBzjW,EAAUC,EAAa,CA8CjcqiB,CAAUoqX,EAAcrqX,GApDJpxN,EAqDAy7kB,GArDallO,EAqDC,CAAC,CACjCl3X,IAAK,SACLlG,MAAO,WACL,IAAImvP,EAAc/tP,KAAK63C,MACrBltB,EAAIojO,EAAYpjO,EAChBoK,EAAIg5N,EAAYh5N,EAChBz1B,EAAIyuP,EAAYzuP,EAChB61lB,EAAapnW,EAAYonW,WACzB4H,EAAahvW,EAAYgvW,WACvBoE,EAAMjxC,GAAWvliB,GACjBy2kB,EAAMlxC,GAAWn7hB,GAErB,GADA0e,QAAoBxmC,IAAfkolB,EAA0B,qFAC1BgM,IAAQC,EACX,OAAO,KAET,IAAI9pC,EA3CU,SAAuBz/gB,GACzC,IAAIltB,EAAIktB,EAAMltB,EACZoK,EAAI8iB,EAAM9iB,EACV8xjB,EAAQhviB,EAAMgviB,MACdC,EAAQjviB,EAAMiviB,MACZka,EAASD,IAAoB,CAC/Bp2kB,EAAGk8jB,EAAM/kc,MACT/sH,EAAG+xjB,EAAMhlc,QAEP7wI,EAAS+vlB,EAAO3mlB,MAAM,CACxBsQ,EAAGA,EACHoK,EAAGA,GACF,CACD8rkB,WAAW,IAEb,OAAI3L,IAAkBr9iB,EAAO,aAAempjB,EAAOj2J,UAAU95b,GACpD,KAEFA,CACT,CAwBuBowlB,CAAcrhmB,KAAK63C,OACpC,IAAKy/gB,EACH,OAAO,KAET,IAAIr9b,EAAKq9b,EAAW3siB,EAClBuvG,EAAKo9b,EAAWviiB,EACdwwR,EAAevlT,KAAK63C,MACtByC,EAAQirQ,EAAajrQ,MACrB/yC,EAAYg+S,EAAah+S,UAEvBsgb,EAAWrvM,IAAcA,IAAc,CACzC2/E,SAFa+8R,IAAkBl1lB,KAAK63C,MAAO,UAAY,QAAQrzC,OAAOu4lB,EAAY,UAAO9vlB,GAGxF8ljB,GAAY/yjB,KAAK63C,OAAO,IAAQ,CAAC,EAAG,CACrCoiF,GAAIA,EACJC,GAAIA,IAEN,OAAoB25F,EAAAA,cAAoB+hW,GAAO,CAC7CrujB,UAAWshY,GAAK,yBAA0BthY,IACzC25lB,EAAaI,UAAUhnjB,EAAOutY,GAAWsrK,IAAMyB,mBAAmB50lB,KAAK63C,MAAO,CAC/EltB,EAAGsvG,EAAK36H,EACRy1B,EAAGmlG,EAAK56H,EACR2C,MAAO,EAAI3C,EACXqC,OAAQ,EAAIrC,IAEhB,MA5F0E04jB,IAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,IAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CA8F/C,CA/CuC,CA+CrCpoK,EAAAA,WACFh8G,IAAgBqpf,IAAc,cAAe,gBAC7Crpf,IAAgBqpf,IAAc,eAAgB,CAC5CK,SAAS,EACTnM,WAAY,UACZmI,QAAS,EACTC,QAAS,EACTl+lB,EAAG,GACHssG,KAAM,OACN27C,OAAQ,OACRxgG,YAAa,EACbO,YAAa,IAEfuwD,IAAgBqpf,IAAc,aAAa,SAAUj2d,EAAQpzF,GAa3D,OAXkBg8K,EAAAA,eAAqB5oF,GAClB4oF,EAAAA,aAAmB5oF,EAAQpzF,GACrCjtB,KAAWqgH,GACdA,EAAOpzF,GAEMg8K,EAAAA,cAAoB0qW,GAAKt/V,IAAS,CAAC,EAAGpnL,EAAO,CAC9DoiF,GAAIpiF,EAAMoiF,GACVC,GAAIriF,EAAMqiF,GACV3yH,UAAW,+BAIjB,sECvHWi6lB,YAAmB/+f,IAAQ,SAAU3nC,GAC9C,MAAO,CACLnwC,EAAGmwC,EAAOz5D,KACV0zB,EAAG+lC,EAAOx5D,IACVW,MAAO64D,EAAO74D,MACdN,OAAQm5D,EAAOn5D,OAEnB,IAAG,SAAUm5D,GACX,MAAO,CAAC,IAAKA,EAAOz5D,KAAM,IAAKy5D,EAAOx5D,IAAK,IAAKw5D,EAAO74D,MAAO,IAAK64D,EAAOn5D,QAAQsD,KAAK,GACzF,ICVO,IAAIw8lB,KAA4B3qf,EAAAA,EAAAA,oBAAc7pG,GAC1Cy0lB,KAA4B5qf,EAAAA,EAAAA,oBAAc7pG,GAC1C00lB,KAA8B7qf,EAAAA,EAAAA,oBAAc7pG,GAC5C20lB,KAA6B9qf,EAAAA,EAAAA,eAAc,CAAC,GAC5C+qf,KAAiC/qf,EAAAA,EAAAA,oBAAc7pG,GAC/C60lB,KAAkChrf,EAAAA,EAAAA,eAAc,GAChDirf,KAAiCjrf,EAAAA,EAAAA,eAAc,GAU/Ckrf,IAA6B,SAAoCnqjB,GAC1E,IAAIoqjB,EAAepqjB,EAAMxtC,MACvB63lB,EAAWD,EAAaC,SACxBC,EAAWF,EAAaE,SACxBrniB,EAASmniB,EAAanniB,OACtBiiiB,EAAalljB,EAAMkljB,WACnB54iB,EAAWtM,EAAMsM,SACjBliD,EAAQ41C,EAAM51C,MACdN,EAASk2C,EAAMl2C,OAKb28V,EAAUkjQ,IAAiB1miB,GAe/B,OAAoB+4J,EAAAA,cAAoB4tY,IAAaxqf,SAAU,CAC7Dr4G,MAAOsjmB,GACOruY,EAAAA,cAAoB6tY,IAAazqf,SAAU,CACzDr4G,MAAOujmB,GACOtuY,EAAAA,cAAoB+tY,IAAc3qf,SAAU,CAC1Dr4G,MAAOk8D,GACO+4J,EAAAA,cAAoB8tY,IAAe1qf,SAAU,CAC3Dr4G,MAAO0/V,GACOzqI,EAAAA,cAAoBguY,IAAkB5qf,SAAU,CAC9Dr4G,MAAOm+lB,GACOlpY,EAAAA,cAAoBiuY,IAAmB7qf,SAAU,CAC/Dr4G,MAAO+C,GACOkyN,EAAAA,cAAoBkuY,IAAkB9qf,SAAU,CAC9Dr4G,MAAOqD,GACNkiD,QACL,EAmBO,IAAIi+iB,IAAkB,SAAyB7E,GACpD,IAAI2E,GAAWn1hB,EAAAA,EAAAA,YAAW00hB,KACZ,MAAZS,GAAsLvjY,IAAU,GAClM,IAAIkoX,EAAQqb,EAAS3E,GAErB,OADW,MAAT1W,GAAuMloX,IAAU,GAC5MkoX,CACT,EAmDWwb,IAAkB,SAAyB7E,GACpD,IAAI2E,GAAWp1hB,EAAAA,EAAAA,YAAW20hB,KACZ,MAAZS,GAAsLxjY,IAAU,GAClM,IAAImoX,EAAQqb,EAAS3E,GAErB,OADW,MAAT1W,GAAuMnoX,IAAU,GAC5MmoX,CACT,EAQWwb,IAAgB,WACzB,OAAOv1hB,EAAAA,EAAAA,YAAWg1hB,IACpB,EACWQ,IAAiB,WAC1B,OAAOx1hB,EAAAA,EAAAA,YAAW+0hB,IACpB,ECjKA,SAASt/lB,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAE7T,SAAS0liB,IAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,IAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASyoa,IAAWxuZ,EAAGpB,EAAG9E,GAAK,OAAO8E,EAAI8uZ,IAAgB9uZ,GAC1D,SAAoCvzB,EAAMgB,GAAQ,GAAIA,IAA2B,WAAlByC,IAAQzC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI6O,UAAU,4DAA+D,OAC1P,SAAgC7P,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI43O,eAAe,6DAAgE,OAAO53O,CAAM,CAD4F4gQ,CAAuB5gQ,EAAO,CADjOsib,CAA2B3tZ,EAAG4tZ,MAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,IAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,GAAK,CAG1M,SAAS8zZ,MAA8B,IAAM,IAAI5tZ,GAAK3hB,QAAQlS,UAAUkhB,QAAQhhB,KAAK4hD,QAAQC,UAAU7vC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO2hB,GAAI,CAAE,OAAQ4tZ,IAA4B,WAAuC,QAAS5tZ,CAAG,IAAM,CAClP,SAAS0tZ,IAAgB9uZ,GAA+J,OAA1J8uZ,IAAkBp7a,OAAO4O,eAAiB5O,OAAOmN,eAAe5F,OAAS,SAAyB+kB,GAAK,OAAOA,EAAEvoB,WAAa/D,OAAOmN,eAAemf,EAAI,EAAU8uZ,IAAgB9uZ,EAAI,CAEnN,SAAS2liB,IAAgB3liB,EAAGjL,GAA6I,OAAxI4wiB,IAAkBjyjB,OAAO4O,eAAiB5O,OAAO4O,eAAerH,OAAS,SAAyB+kB,EAAGjL,GAAsB,OAAjBiL,EAAEvoB,UAAYsd,EAAUiL,CAAG,EAAU2liB,IAAgB3liB,EAAGjL,EAAI,CACvM,SAASvU,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,IAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAC3O,SAASsvb,IAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAE5G,SAAS06O,IAAevvF,EAAKnrJ,GAAK,OAKlC,SAAyBmrJ,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAOA,CAAK,CAL3Byna,CAAgBzna,IAIzD,SAA+B/sJ,EAAGwC,GAAK,IAAI4xB,EAAI,MAAQp0B,EAAI,KAAO,oBAAsBoD,QAAUpD,EAAEoD,OAAOC,WAAarD,EAAE,cAAe,GAAI,MAAQo0B,EAAG,CAAE,IAAIlG,EAAGvkB,EAAG/H,EAAG0yB,EAAG1Z,EAAI,GAAI/K,GAAI,EAAImjB,GAAI,EAAI,IAAM,GAAIpxB,GAAKwyB,EAAIA,EAAE3zB,KAAKT,IAAI4U,KAAM,IAAMpS,EAAG,CAAE,GAAIkE,OAAO0tB,KAAOA,EAAG,OAAQvkB,GAAI,CAAI,MAAO,OAASA,GAAKqe,EAAItsB,EAAEnB,KAAK2zB,IAAIzO,QAAU/K,EAAErY,KAAK2rB,EAAE5uB,OAAQsb,EAAE/Y,SAAWW,GAAIqN,GAAI,GAAK,CAAE,MAAO7P,GAAKgzB,GAAI,EAAIrpB,EAAI3J,CAAG,CAAE,QAAU,IAAM,IAAK6P,GAAK,MAAQukB,EAAU,SAAME,EAAIF,EAAU,SAAK1tB,OAAO4tB,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAItB,EAAG,MAAMrpB,CAAG,CAAE,CAAE,OAAOiR,CAAG,CAAE,CAJxd65iB,CAAsB1na,EAAKnrJ,IAE5F,SAAqCoxB,EAAG0hiB,GAAU,IAAK1hiB,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO2hiB,IAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAc,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAM,GAAU,QAANhF,GAAqB,QAANA,EAAa,OAAOpI,MAAM8J,KAAK2nB,GAAI,GAAU,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAI,OAAOgrjB,IAAkB3hiB,EAAG0hiB,EAAS,CAF7TE,CAA4B7na,EAAKnrJ,IACnI,WAA8B,MAAM,IAAI0N,UAAU,4IAA8I,CADvDuljB,EAAoB,CAG7J,SAASF,IAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CAGlL,SAASs8D,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CA6FlV,SAAS+ylB,IAAkB3qjB,GACzB,IAAI4qjB,EAAS5qjB,EAAMltB,EACjB+3kB,EAAS7qjB,EAAM9iB,EACfo0G,EAAUtxF,EAAMsxF,QAChBo0d,EAAU1ljB,EAAM0ljB,QAChBC,EAAU3ljB,EAAM2ljB,QAChBljjB,EAAQzC,EAAMyC,MACd/yC,EAAYswC,EAAMtwC,UAClB4tlB,EAAat9iB,EAAMs9iB,WACjB4H,GDxDGhwhB,EAAAA,EAAAA,YAAW80hB,KCyDdhb,EAAQub,IAAgB7E,GACxBzW,EAAQub,IAAgB7E,GACxBl/P,GDuBUvxR,EAAAA,EAAAA,YAAW40hB,KCtBzB,IAAK5E,IAAez+P,EAClB,OAAO,KAET7qT,QAAoBxmC,IAAfkolB,EAA0B,oFAC/B,IAOIwN,EA/EoB,SAAsB3B,EAAQ4B,EAAUC,EAAUC,EAAWxkQ,EAASjzV,EAAU03lB,EAAkBC,EAAkBnrjB,GAC5I,IAAIltB,EAAI2zU,EAAQ3zU,EACdoK,EAAIupU,EAAQvpU,EACZ9yB,EAAQq8V,EAAQr8V,MAChBN,EAAS28V,EAAQ38V,OACnB,GAAIkhmB,EAAU,CACZ,IAAII,EAASprjB,EAAM9iB,EACfkskB,EAAQD,EAAOjskB,EAAE1a,MAAM4olB,EAAQ,CACjC53lB,SAAUA,IAEZ,GAAI6plB,IAAkBr9iB,EAAO,aAAempjB,EAAOjskB,EAAEg2a,UAAUk2J,GAC7D,OAAO,KAET,IAAIz/V,EAAS,CAAC,CACZ72O,EAAGA,EAAI1oB,EACP8yB,EAAGkskB,GACF,CACDt2kB,EAAGA,EACHoK,EAAGkskB,IAEL,MAA4B,SAArB+B,EAA8BxhW,EAAOp1K,UAAYo1K,CAC1D,CACA,GAAIohW,EAAU,CACZ,IAAIM,EAASrrjB,EAAMltB,EACfw4kB,EAASnC,EAAOr2kB,EAAEtQ,MAAM6olB,EAAQ,CAClC73lB,SAAUA,IAEZ,GAAI6plB,IAAkBr9iB,EAAO,aAAempjB,EAAOr2kB,EAAEogb,UAAUo4J,GAC7D,OAAO,KAET,IAAIC,EAAU,CAAC,CACbz4kB,EAAGw4kB,EACHpukB,EAAGA,EAAIpzB,GACN,CACDgpB,EAAGw4kB,EACHpukB,EAAGA,IAEL,MAA4B,QAArBgukB,EAA6BK,EAAQh3gB,UAAYg3gB,CAC1D,CACA,GAAIN,EAAW,CACb,IACIO,EADUxrjB,EAAMsxF,QACG97H,KAAI,SAAUga,GACnC,OAAO25kB,EAAO3mlB,MAAMgN,EAAG,CACrBhc,SAAUA,GAEd,IACA,OAAI6plB,IAAkBr9iB,EAAO,YAAczmC,MAAKiylB,GAAU,SAAUh8kB,GAClE,OAAQ25kB,EAAOj2J,UAAU1jb,EAC3B,IACS,KAEFg8kB,CACT,CACA,OAAO,IACT,CAyBkBC,CAPHvC,IAAoB,CAC/Bp2kB,EAAGk8jB,EAAM/kc,MACT/sH,EAAG+xjB,EAAMhlc,QAEDoua,GAAWuyC,GACXvyC,GAAWwyC,GACLv5d,GAA8B,IAAnBA,EAAQhoI,OACuBm9V,EAASzmT,EAAMxsC,SAAUw7kB,EAAM9jlB,YAAa+jlB,EAAM/jlB,YAAa80C,GACzH,IAAK8qjB,EACH,OAAO,KAET,IAAIY,EAAa3nX,IAAe+mX,EAAW,GACzCa,EAAcD,EAAW,GACzB/yjB,EAAKgzjB,EAAY74kB,EACjB8lB,EAAK+yjB,EAAYzukB,EACjB0ukB,EAAeF,EAAW,GAC1B7yjB,EAAK+yjB,EAAa94kB,EAClBgmB,EAAK8yjB,EAAa1ukB,EAEhB2ukB,EAAYlrX,IAAcA,IAAc,CAC1C2/E,SAFa+8R,IAAkBr9iB,EAAO,UAAY,QAAQrzC,OAAOu4lB,EAAY,UAAO9vlB,GAGnF8ljB,GAAYl7gB,GAAO,IAAQ,CAAC,EAAG,CAChCrH,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,IAEN,OAAoBkjL,EAAAA,cAAoB+hW,GAAO,CAC7CrujB,UAAWshY,GAAK,0BAA2BthY,IAlH9B,SAAoB0jI,EAAQpzF,GAW3C,OATkBg8K,EAAAA,eAAqB5oF,GACjB4oF,EAAAA,aAAmB5oF,EAAQpzF,GACtCjtB,KAAWqgH,GACbA,EAAOpzF,GAEMg8K,EAAAA,cAAoB,OAAQoL,IAAS,CAAC,EAAGpnL,EAAO,CAClEtwC,UAAW,iCAIjB,CAuGKo8lB,CAAWrpjB,EAAOopjB,GAAYvQ,IAAMyB,mBAAmB/8iB,EJzBhC,SAAwBuoN,GAClD,IAAI5vN,EAAK4vN,EAAM5vN,GACbC,EAAK2vN,EAAM3vN,GACXC,EAAK0vN,EAAM1vN,GACXC,EAAKyvN,EAAMzvN,GACb,OAAOgwjB,IAAe,CACpBh2kB,EAAG6lB,EACHzb,EAAG0b,GACF,CACD9lB,EAAG+lB,EACH3b,EAAG4b,GAEP,CIamEizjB,CAAe,CAC9EpzjB,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,KAER,CAGO,IAAIkzjB,IAA6B,SAAUhtX,GAChD,SAASgtX,IAEP,OA5KJ,SAAyB7liB,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CA2KpJooO,CAAgBh3O,KAAM6jmB,GACf3hL,IAAWlib,KAAM6jmB,EAAep0lB,UACzC,CAEA,OAvKF,SAAmB+kN,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7lN,UAAU,sDAAyD4lN,EAAS30N,UAAYmG,OAAO4D,OAAO6qN,GAAcA,EAAW50N,UAAW,CAAE+C,YAAa,CAAEhE,MAAO41N,EAAUjgN,UAAU,EAAMnF,cAAc,KAAWpJ,OAAOgN,eAAewhN,EAAU,YAAa,CAAEjgN,UAAU,IAAckgN,GAAYwjW,IAAgBzjW,EAAUC,EAAa,CAsKjcqiB,CAAU+sX,EAAehtX,GA5KLpxN,EA6KAo+kB,GA7Ka7nO,EA6KE,CAAC,CAClCl3X,IAAK,SACLlG,MAAO,WACL,OAAoBi1N,EAAAA,cAAoB2uY,IAAmBximB,KAAK63C,MAClE,MAjL0EmghB,IAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,IAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CAmL/C,CAZwC,CAYtCpoK,EAAAA,WCtLF,SAASoL,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASjN,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAASxf,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CAEtb,SAASwqiB,IAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,IAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASyoa,IAAWxuZ,EAAGpB,EAAG9E,GAAK,OAAO8E,EAAI8uZ,IAAgB9uZ,GAC1D,SAAoCvzB,EAAMgB,GAAQ,GAAIA,IAA2B,WAAlByC,IAAQzC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI6O,UAAU,4DAA+D,OAC1P,SAAgC7P,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI43O,eAAe,6DAAgE,OAAO53O,CAAM,CAD4F4gQ,CAAuB5gQ,EAAO,CADjOsib,CAA2B3tZ,EAAG4tZ,MAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,IAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,GAAK,CAG1M,SAAS8zZ,MAA8B,IAAM,IAAI5tZ,GAAK3hB,QAAQlS,UAAUkhB,QAAQhhB,KAAK4hD,QAAQC,UAAU7vC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO2hB,GAAI,CAAE,OAAQ4tZ,IAA4B,WAAuC,QAAS5tZ,CAAG,IAAM,CAClP,SAAS0tZ,IAAgB9uZ,GAA+J,OAA1J8uZ,IAAkBp7a,OAAO4O,eAAiB5O,OAAOmN,eAAe5F,OAAS,SAAyB+kB,GAAK,OAAOA,EAAEvoB,WAAa/D,OAAOmN,eAAemf,EAAI,EAAU8uZ,IAAgB9uZ,EAAI,CAEnN,SAAS2liB,IAAgB3liB,EAAGjL,GAA6I,OAAxI4wiB,IAAkBjyjB,OAAO4O,eAAiB5O,OAAO4O,eAAerH,OAAS,SAAyB+kB,EAAGjL,GAAsB,OAAjBiL,EAAEvoB,UAAYsd,EAAUiL,CAAG,EAAU2liB,IAAgB3liB,EAAGjL,EAAI,CACvM,SAASwwF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,IAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAC3O,SAASsvb,IAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CDwK5G22G,IAAgBgsf,IAAe,cAAe,iBAC9Chsf,IAAgBgsf,IAAe,eAAgB,CAC7CtC,SAAS,EACTnM,WAAY,UACZmI,QAAS,EACTC,QAAS,EACT5xf,KAAM,OACN27C,OAAQ,OACRxgG,YAAa,EACbO,YAAa,EACbj8C,SAAU,WClKZ,IAmCWy4lB,IAA6B,SAAUjtX,GAChD,SAASitX,IAEP,OAjEJ,SAAyB9liB,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CAgEpJooO,CAAgBh3O,KAAM8jmB,GACf5hL,IAAWlib,KAAM8jmB,EAAer0lB,UACzC,CAEA,OA5DF,SAAmB+kN,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7lN,UAAU,sDAAyD4lN,EAAS30N,UAAYmG,OAAO4D,OAAO6qN,GAAcA,EAAW50N,UAAW,CAAE+C,YAAa,CAAEhE,MAAO41N,EAAUjgN,UAAU,EAAMnF,cAAc,KAAWpJ,OAAOgN,eAAewhN,EAAU,YAAa,CAAEjgN,UAAU,IAAckgN,GAAYwjW,IAAgBzjW,EAAUC,EAAa,CA2DjcqiB,CAAUgtX,EAAejtX,GAjELpxN,EAkEAq+kB,GAlEa9nO,EAkEE,CAAC,CAClCl3X,IAAK,SACLlG,MAAO,WACL,IAAImvP,EAAc/tP,KAAK63C,MACrBrH,EAAKu9M,EAAYv9M,GACjBE,EAAKq9M,EAAYr9M,GACjBD,EAAKs9M,EAAYt9M,GACjBE,EAAKo9M,EAAYp9M,GACjBppC,EAAYwmP,EAAYxmP,UACxB4tlB,EAAapnW,EAAYonW,WACzB4H,EAAahvW,EAAYgvW,WAC3BtpjB,QAAoBxmC,IAAfkolB,EAA0B,oFAC/B,IAAI4O,EAAQ7zC,GAAW1/gB,GACnBwzjB,EAAQ9zC,GAAWx/gB,GACnBuzjB,EAAQ/zC,GAAWz/gB,GACnByzjB,EAAQh0C,GAAWv/gB,GACnB2J,EAAQt6C,KAAK63C,MAAMyC,MACvB,IAAKypjB,IAAUC,IAAUC,IAAUC,IAAU5pjB,EAC3C,OAAO,KAET,IAAIhb,EA7DI,SAAiBykkB,EAAOC,EAAOC,EAAOC,EAAOrsjB,GACzD,IAAIssjB,EAAUtsjB,EAAMrH,GAClB4zjB,EAAUvsjB,EAAMnH,GAChB2zjB,EAAUxsjB,EAAMpH,GAChB6zjB,EAAUzsjB,EAAMlH,GAChBk2iB,EAAQhviB,EAAMgviB,MACdC,EAAQjviB,EAAMiviB,MAChB,IAAKD,IAAUC,EAAO,OAAO,KAC7B,IAAIka,EAASD,IAAoB,CAC/Bp2kB,EAAGk8jB,EAAM/kc,MACT/sH,EAAG+xjB,EAAMhlc,QAEPruI,EAAK,CACPkX,EAAGo5kB,EAAQ/C,EAAOr2kB,EAAEtQ,MAAM8plB,EAAS,CACjC94lB,SAAU,UACP21lB,EAAOr2kB,EAAE45kB,SACdxvkB,EAAGkvkB,EAAQjD,EAAOjskB,EAAE1a,MAAMgqlB,EAAS,CACjCh5lB,SAAU,UACP21lB,EAAOjskB,EAAEwvkB,UAEZ76d,EAAK,CACP/+G,EAAGq5kB,EAAQhD,EAAOr2kB,EAAEtQ,MAAM+plB,EAAS,CACjC/4lB,SAAU,QACP21lB,EAAOr2kB,EAAE65kB,SACdzvkB,EAAGmvkB,EAAQlD,EAAOjskB,EAAE1a,MAAMiqlB,EAAS,CACjCj5lB,SAAU,QACP21lB,EAAOjskB,EAAEyvkB,UAEhB,OAAItP,IAAkBr9iB,EAAO,YAAgBmpjB,EAAOj2J,UAAUt3b,IAAQutlB,EAAOj2J,UAAUrhU,GAGhFi3d,IAAeltlB,EAAIi2H,GAFjB,IAGX,CA6BiB+6d,CAAQV,EAAOC,EAAOC,EAAOC,EAAOlkmB,KAAK63C,OACpD,IAAKvY,IAASgb,EACZ,OAAO,KAET,IAAI69Q,EAAW+8R,IAAkBl1lB,KAAK63C,MAAO,UAAY,QAAQrzC,OAAOu4lB,EAAY,UAAO9vlB,EAC3F,OAAoB4mN,EAAAA,cAAoB+hW,GAAO,CAC7CrujB,UAAWshY,GAAK,0BAA2BthY,IAC1Cu8lB,EAAcY,WAAWpqjB,EAAOk+L,IAAcA,IAAc,CAC7D2/E,SAAUA,GACT46P,GAAY/yjB,KAAK63C,OAAO,IAAQvY,IAAQ6zjB,IAAMyB,mBAAmB50lB,KAAK63C,MAAOvY,GAClF,MAhG0E04hB,IAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,IAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CAkG/C,CAtCwC,CAsCtCpoK,EAAAA,WCxGF,SAASmvB,IAAmB32F,GAAO,OAInC,SAA4BA,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAO4na,IAAkB5na,EAAM,CAJhDk2a,CAAmBl2a,IAG7D,SAA0BsjN,GAAQ,GAAsB,qBAAXjtW,QAAmD,MAAzBitW,EAAKjtW,OAAOC,WAA2C,MAAtBgtW,EAAK,cAAuB,OAAO9uW,MAAM8J,KAAKglW,EAAO,CAHxFkyN,CAAiBx1a,IAEtF,SAAqC/5H,EAAG0hiB,GAAU,IAAK1hiB,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO2hiB,IAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAc,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAM,GAAU,QAANhF,GAAqB,QAANA,EAAa,OAAOpI,MAAM8J,KAAK2nB,GAAI,GAAU,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAI,OAAOgrjB,IAAkB3hiB,EAAG0hiB,EAAS,CAFjUE,CAA4B7na,IAC1H,WAAgC,MAAM,IAAIz9I,UAAU,uIAAyI,CAD3D4zjB,EAAsB,CAKxJ,SAASvO,IAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CDoGlL9qD,IAAgBisf,IAAe,cAAe,iBAC9Cjsf,IAAgBisf,IAAe,eAAgB,CAC7CvC,SAAS,EACTnM,WAAY,UACZmI,QAAS,EACTC,QAAS,EACTl+lB,EAAG,GACHssG,KAAM,OACN7kD,YAAa,GACbwgG,OAAQ,OACRjgG,YAAa,IAEfuwD,IAAgBisf,IAAe,cAAc,SAAU74d,EAAQpzF,GAW7D,OATkBg8K,EAAAA,eAAqB5oF,GACjB4oF,EAAAA,aAAmB5oF,EAAQpzF,GACtCjtB,KAAWqgH,GACbA,EAAOpzF,GAEMg8K,EAAAA,cAAoBlvB,GAAWs6B,IAAS,CAAC,EAAGpnL,EAAO,CACrEtwC,UAAW,iCAIjB,ICrHO,IAAIo9lB,IAAgC,SAAuCxgjB,EAAUjlC,EAAQ0llB,EAAQ3b,EAAU4b,GACpH,IAAIzka,EAAQoyX,GAAcrugB,EAAU0/iB,KAChC1hP,EAAOqwM,GAAcrugB,EAAU+8iB,KAC/Bj+d,EAAW,GAAGz+H,OAAOw+O,IAAmB5iD,GAAQ4iD,IAAmBm/H,IACnE2iP,EAAQtyC,GAAcrugB,EAAU2/iB,KAChCiB,EAAQ,GAAGvgmB,OAAOyklB,EAAU,MAC5B+b,EAAW/b,EAAS,GACpBgc,EAAc/llB,EAUlB,GATI+jH,EAAS9hI,SACX8jmB,EAAchie,EAAShkG,QAAO,SAAUhuB,EAAQ7L,GAC9C,GAAIA,EAAGyyC,MAAMktjB,KAAWH,GAAU1P,IAAkB9vlB,EAAGyyC,MAAO,iBAAmBuvD,GAAShiG,EAAGyyC,MAAMmtjB,IAAY,CAC7G,IAAIpmmB,EAAQwG,EAAGyyC,MAAMmtjB,GACrB,MAAO,CAACxjmB,KAAKyhB,IAAIhS,EAAO,GAAIrS,GAAQ4C,KAAKwhB,IAAI/R,EAAO,GAAIrS,GAC1D,CACA,OAAOqS,CACT,GAAGg0lB,IAEDH,EAAM3jmB,OAAQ,CAChB,IAAI+jmB,EAAO,GAAG1gmB,OAAOwgmB,EAAU,KAC3BG,EAAO,GAAG3gmB,OAAOwgmB,EAAU,KAC/BC,EAAcH,EAAM7lkB,QAAO,SAAUhuB,EAAQ7L,GAC3C,GAAIA,EAAGyyC,MAAMktjB,KAAWH,GAAU1P,IAAkB9vlB,EAAGyyC,MAAO,iBAAmBuvD,GAAShiG,EAAGyyC,MAAMqtjB,KAAU99f,GAAShiG,EAAGyyC,MAAMstjB,IAAQ,CACrI,IAAIr7E,EAAS1khB,EAAGyyC,MAAMqtjB,GAClBn7E,EAAS3khB,EAAGyyC,MAAMstjB,GACtB,MAAO,CAAC3jmB,KAAKyhB,IAAIhS,EAAO,GAAI64gB,EAAQC,GAASvohB,KAAKwhB,IAAI/R,EAAO,GAAI64gB,EAAQC,GAC3E,CACA,OAAO94gB,CACT,GAAGg0lB,EACL,CASA,OARIJ,GAAkBA,EAAe1jmB,SACnC8jmB,EAAcJ,EAAe5lkB,QAAO,SAAUhuB,EAAQm0lB,GACpD,OAAIh+f,GAASg+f,GACJ,CAAC5jmB,KAAKyhB,IAAIhS,EAAO,GAAIm0lB,GAAO5jmB,KAAKwhB,IAAI/R,EAAO,GAAIm0lB,IAElDn0lB,CACT,GAAGg0lB,IAEEA,CACT,cCjDII,IAAc,YAAInqb,IAEXoqb,IAAa,2BCHxB,SAAS9imB,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAE7T,SAAS0liB,IAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,IAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASo+F,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,IAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAC3O,SAASsvb,IAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAErG,IAAIqkmB,IAAoC,WAO7C,OAXoB9/kB,EAKpB,SAAS8/kB,KAPX,SAAyBvniB,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CAQpJooO,CAAgBh3O,KAAMulmB,GACtB1tf,IAAgB73G,KAAM,cAAe,GACrC63G,IAAgB73G,KAAM,iBAAkB,IACxC63G,IAAgB73G,KAAM,SAAU,aAClC,GAViCg8X,EAWS,CAAC,CACzCl3X,IAAK,aACLlG,MAAO,SAAoBqsJ,GACzB,IAAIyxB,EACA8ob,EAAsBv6c,EAAKw6c,eAC7BA,OAAyC,IAAxBD,EAAiC,KAAOA,EACzDE,EAAiBz6c,EAAK7qJ,UACtBA,OAA+B,IAAnBslmB,EAA4B,KAAOA,EAC/CC,EAAc16c,EAAKqoL,OACnBA,OAAyB,IAAhBqyR,EAAyB,KAAOA,EACzCC,EAAc36c,EAAKnwF,OACnBA,OAAyB,IAAhB8qiB,EAAyB,KAAOA,EACzCC,EAAwB56c,EAAK66c,qBAC7BA,OAAiD,IAA1BD,EAAmC,KAAOA,EACnE7lmB,KAAKylmB,eAA2H,QAAzG/ob,EAA2B,OAAnB+ob,QAA8C,IAAnBA,EAA4BA,EAAiBzlmB,KAAKylmB,sBAAsC,IAAV/ob,EAAmBA,EAAQ,GACnK18K,KAAKI,UAA0B,OAAdA,QAAoC,IAAdA,EAAuBA,EAAYJ,KAAKI,UAC/EJ,KAAKszU,OAAoB,OAAXA,QAA8B,IAAXA,EAAoBA,EAAStzU,KAAKszU,OACnEtzU,KAAK86D,OAAoB,OAAXA,QAA8B,IAAXA,EAAoBA,EAAS96D,KAAK86D,OACnE96D,KAAK8lmB,qBAAgD,OAAzBA,QAA0D,IAAzBA,EAAkCA,EAAuB9lmB,KAAK8lmB,qBAG3H9lmB,KAAKw6Z,YAAch5Z,KAAKyhB,IAAIzhB,KAAKwhB,IAAIhjB,KAAKw6Z,YAAa,GAAIx6Z,KAAKylmB,eAAetkmB,OAAS,EAC1F,GACC,CACD2D,IAAK,QACLlG,MAAO,WACLoB,KAAK+lmB,YACP,GACC,CACDjhmB,IAAK,gBACLlG,MAAO,SAAuB4uB,GAI5B,GAAmC,IAA/BxtB,KAAKylmB,eAAetkmB,OAGxB,OAAQqsB,EAAE1oB,KACR,IAAK,aAED,GAAoB,eAAhB9E,KAAKszU,OACP,OAEFtzU,KAAKw6Z,YAAch5Z,KAAKyhB,IAAIjjB,KAAKw6Z,YAAc,EAAGx6Z,KAAKylmB,eAAetkmB,OAAS,GAC/EnB,KAAK+lmB,aACL,MAEJ,IAAK,YAED,GAAoB,eAAhB/lmB,KAAKszU,OACP,OAEFtzU,KAAKw6Z,YAAch5Z,KAAKwhB,IAAIhjB,KAAKw6Z,YAAc,EAAG,GAClDx6Z,KAAK+lmB,aAQb,GACC,CACDjhmB,IAAK,WACLlG,MAAO,SAAkB6rc,GACvBzqc,KAAKw6Z,YAAciwC,CACrB,GACC,CACD3lc,IAAK,aACLlG,MAAO,WACL,IAAI44e,EAASwuH,EACb,GAAoB,eAAhBhmmB,KAAKszU,QAM0B,IAA/BtzU,KAAKylmB,eAAetkmB,OAAxB,CAGA,IAAI8kmB,EAAwBjmmB,KAAKI,UAAUM,wBACzCiqB,EAAIs7kB,EAAsBt7kB,EAC1BoK,EAAIkxkB,EAAsBlxkB,EAC1BpzB,EAASskmB,EAAsBtkmB,OAC7B21jB,EAAat3jB,KAAKylmB,eAAezlmB,KAAKw6Z,aAAa88J,WACnD4uC,GAAwC,QAAtB1uH,EAAUjye,cAAgC,IAAZiye,OAAqB,EAASA,EAAQjnW,UAAY,EAClG41d,GAAyC,QAAvBH,EAAWzgmB,cAAiC,IAAbygmB,OAAsB,EAASA,EAASv1d,UAAY,EACrGn9E,EAAQ3oC,EAAI2siB,EAAa4uC,EACzB3yiB,EAAQx+B,EAAI/0B,KAAK86D,OAAOx5D,IAAMK,EAAS,EAAIwkmB,EAC/CnmmB,KAAK8lmB,qBAAqB,CACxBxyiB,MAAOA,EACPC,MAAOA,GAZT,CAcF,MAxG0EykgB,IAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,IAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CA0G/C,CAtG+C,GCPhC,eAAY,CCApB,SAASz0W,IAAMzW,EAAM4Z,EAAGoK,GAC7BhkB,EAAKkxC,SAAS2iG,eACX,EAAI7zI,EAAK0pjB,IAAM1pjB,EAAK4pjB,KAAO,GAC3B,EAAI5pjB,EAAK2pjB,IAAM3pjB,EAAK6pjB,KAAO,GAC3B7pjB,EAAK0pjB,IAAM,EAAI1pjB,EAAK4pjB,KAAO,GAC3B5pjB,EAAK2pjB,IAAM,EAAI3pjB,EAAK6pjB,KAAO,GAC3B7pjB,EAAK0pjB,IAAM,EAAI1pjB,EAAK4pjB,IAAMhwiB,GAAK,GAC/B5Z,EAAK2pjB,IAAM,EAAI3pjB,EAAK6pjB,IAAM7liB,GAAK,EAEpC,CAEO,SAASqxkB,IAAMjgiB,GACpBnmE,KAAKiiD,SAAWkkB,CAClB,CCVA,SAASkgiB,IAAYlgiB,GACnBnmE,KAAKiiD,SAAWkkB,CAClB,CCHA,SAASmgiB,IAAUngiB,GACjBnmE,KAAKiiD,SAAWkkB,CAClB,CFWAigiB,IAAMvmmB,UAAY,CAChB0mmB,UAAW,WACTvmmB,KAAKwmmB,MAAQ,CACf,EACAC,QAAS,WACPzmmB,KAAKwmmB,MAAQ//kB,GACf,EACAiglB,UAAW,WACT1mmB,KAAKy6jB,IAAMz6jB,KAAK26jB,IAChB36jB,KAAK06jB,IAAM16jB,KAAK46jB,IAAMn0iB,IACtBzmB,KAAK2mmB,OAAS,CAChB,EACAC,QAAS,WACP,OAAQ5mmB,KAAK2mmB,QACX,KAAK,EAAGn/kB,IAAMxnB,KAAMA,KAAK26jB,IAAK36jB,KAAK46jB,KACnC,KAAK,EAAG56jB,KAAKiiD,SAASwiG,OAAOzkJ,KAAK26jB,IAAK36jB,KAAK46jB,MAE1C56jB,KAAKwmmB,OAAyB,IAAfxmmB,KAAKwmmB,OAA+B,IAAhBxmmB,KAAK2mmB,SAAe3mmB,KAAKiiD,SAAS0iG,YACzE3kJ,KAAKwmmB,MAAQ,EAAIxmmB,KAAKwmmB,KACxB,EACAh/kB,MAAO,SAASmD,EAAGoK,GAEjB,OADApK,GAAKA,EAAGoK,GAAKA,EACL/0B,KAAK2mmB,QACX,KAAK,EAAG3mmB,KAAK2mmB,OAAS,EAAG3mmB,KAAKwmmB,MAAQxmmB,KAAKiiD,SAASwiG,OAAO95H,EAAGoK,GAAK/0B,KAAKiiD,SAASuiG,OAAO75H,EAAGoK,GAAI,MAC/F,KAAK,EAAG/0B,KAAK2mmB,OAAS,EAAG,MACzB,KAAK,EAAG3mmB,KAAK2mmB,OAAS,EAAG3mmB,KAAKiiD,SAASwiG,QAAQ,EAAIzkJ,KAAKy6jB,IAAMz6jB,KAAK26jB,KAAO,GAAI,EAAI36jB,KAAK06jB,IAAM16jB,KAAK46jB,KAAO,GACzG,QAASpziB,IAAMxnB,KAAM2qB,EAAGoK,GAE1B/0B,KAAKy6jB,IAAMz6jB,KAAK26jB,IAAK36jB,KAAK26jB,IAAMhwiB,EAChC3qB,KAAK06jB,IAAM16jB,KAAK46jB,IAAK56jB,KAAK46jB,IAAM7liB,CAClC,GCtCFsxkB,IAAYxmmB,UAAY,CACtB0mmB,UAAW34kB,IACX64kB,QAAS74kB,IACT84kB,UAAW,WACT1mmB,KAAKy6jB,IAAMz6jB,KAAK26jB,IAAM36jB,KAAKshT,IAAMthT,KAAKuhT,IAAMvhT,KAAKwhT,IACjDxhT,KAAK06jB,IAAM16jB,KAAK46jB,IAAM56jB,KAAK6mmB,IAAM7mmB,KAAK8mmB,IAAM9mmB,KAAK+mmB,IAAMtglB,IACvDzmB,KAAK2mmB,OAAS,CAChB,EACAC,QAAS,WACP,OAAQ5mmB,KAAK2mmB,QACX,KAAK,EACH3mmB,KAAKiiD,SAASuiG,OAAOxkJ,KAAKshT,IAAKthT,KAAK6mmB,KACpC7mmB,KAAKiiD,SAAS0iG,YACd,MAEF,KAAK,EACH3kJ,KAAKiiD,SAASuiG,QAAQxkJ,KAAKshT,IAAM,EAAIthT,KAAKuhT,KAAO,GAAIvhT,KAAK6mmB,IAAM,EAAI7mmB,KAAK8mmB,KAAO,GAChF9mmB,KAAKiiD,SAASwiG,QAAQzkJ,KAAKuhT,IAAM,EAAIvhT,KAAKshT,KAAO,GAAIthT,KAAK8mmB,IAAM,EAAI9mmB,KAAK6mmB,KAAO,GAChF7mmB,KAAKiiD,SAAS0iG,YACd,MAEF,KAAK,EACH3kJ,KAAKwnB,MAAMxnB,KAAKshT,IAAKthT,KAAK6mmB,KAC1B7mmB,KAAKwnB,MAAMxnB,KAAKuhT,IAAKvhT,KAAK8mmB,KAC1B9mmB,KAAKwnB,MAAMxnB,KAAKwhT,IAAKxhT,KAAK+mmB,KAIhC,EACAv/kB,MAAO,SAASmD,EAAGoK,GAEjB,OADApK,GAAKA,EAAGoK,GAAKA,EACL/0B,KAAK2mmB,QACX,KAAK,EAAG3mmB,KAAK2mmB,OAAS,EAAG3mmB,KAAKshT,IAAM32R,EAAG3qB,KAAK6mmB,IAAM9xkB,EAAG,MACrD,KAAK,EAAG/0B,KAAK2mmB,OAAS,EAAG3mmB,KAAKuhT,IAAM52R,EAAG3qB,KAAK8mmB,IAAM/xkB,EAAG,MACrD,KAAK,EAAG/0B,KAAK2mmB,OAAS,EAAG3mmB,KAAKwhT,IAAM72R,EAAG3qB,KAAK+mmB,IAAMhykB,EAAG/0B,KAAKiiD,SAASuiG,QAAQxkJ,KAAKy6jB,IAAM,EAAIz6jB,KAAK26jB,IAAMhwiB,GAAK,GAAI3qB,KAAK06jB,IAAM,EAAI16jB,KAAK46jB,IAAM7liB,GAAK,GAAI,MACjJ,QAASvN,IAAMxnB,KAAM2qB,EAAGoK,GAE1B/0B,KAAKy6jB,IAAMz6jB,KAAK26jB,IAAK36jB,KAAK26jB,IAAMhwiB,EAChC3qB,KAAK06jB,IAAM16jB,KAAK46jB,IAAK56jB,KAAK46jB,IAAM7liB,CAClC,GCxCFuxkB,IAAUzmmB,UAAY,CACpB0mmB,UAAW,WACTvmmB,KAAKwmmB,MAAQ,CACf,EACAC,QAAS,WACPzmmB,KAAKwmmB,MAAQ//kB,GACf,EACAiglB,UAAW,WACT1mmB,KAAKy6jB,IAAMz6jB,KAAK26jB,IAChB36jB,KAAK06jB,IAAM16jB,KAAK46jB,IAAMn0iB,IACtBzmB,KAAK2mmB,OAAS,CAChB,EACAC,QAAS,YACH5mmB,KAAKwmmB,OAAyB,IAAfxmmB,KAAKwmmB,OAA+B,IAAhBxmmB,KAAK2mmB,SAAe3mmB,KAAKiiD,SAAS0iG,YACzE3kJ,KAAKwmmB,MAAQ,EAAIxmmB,KAAKwmmB,KACxB,EACAh/kB,MAAO,SAASmD,EAAGoK,GAEjB,OADApK,GAAKA,EAAGoK,GAAKA,EACL/0B,KAAK2mmB,QACX,KAAK,EAAG3mmB,KAAK2mmB,OAAS,EAAG,MACzB,KAAK,EAAG3mmB,KAAK2mmB,OAAS,EAAG,MACzB,KAAK,EAAG3mmB,KAAK2mmB,OAAS,EAAG,IAAIzhd,GAAMllJ,KAAKy6jB,IAAM,EAAIz6jB,KAAK26jB,IAAMhwiB,GAAK,EAAGw6H,GAAMnlJ,KAAK06jB,IAAM,EAAI16jB,KAAK46jB,IAAM7liB,GAAK,EAAG/0B,KAAKwmmB,MAAQxmmB,KAAKiiD,SAASwiG,OAAOS,EAAIC,GAAMnlJ,KAAKiiD,SAASuiG,OAAOU,EAAIC,GAAK,MACvL,KAAK,EAAGnlJ,KAAK2mmB,OAAS,EACtB,QAASn/kB,IAAMxnB,KAAM2qB,EAAGoK,GAE1B/0B,KAAKy6jB,IAAMz6jB,KAAK26jB,IAAK36jB,KAAK26jB,IAAMhwiB,EAChC3qB,KAAK06jB,IAAM16jB,KAAK46jB,IAAK56jB,KAAK46jB,IAAM7liB,CAClC,GC/BF,MAAMiykB,IACJpkmB,WAAAA,CAAYujE,EAASx7C,GACnB3qB,KAAKiiD,SAAWkkB,EAChBnmE,KAAKqhT,GAAK12R,CACZ,CACA47kB,SAAAA,GACEvmmB,KAAKwmmB,MAAQ,CACf,CACAC,OAAAA,GACEzmmB,KAAKwmmB,MAAQ//kB,GACf,CACAiglB,SAAAA,GACE1mmB,KAAK2mmB,OAAS,CAChB,CACAC,OAAAA,IACM5mmB,KAAKwmmB,OAAyB,IAAfxmmB,KAAKwmmB,OAA+B,IAAhBxmmB,KAAK2mmB,SAAe3mmB,KAAKiiD,SAAS0iG,YACzE3kJ,KAAKwmmB,MAAQ,EAAIxmmB,KAAKwmmB,KACxB,CACAh/kB,KAAAA,CAAMmD,EAAGoK,GAEP,OADApK,GAAKA,EAAGoK,GAAKA,EACL/0B,KAAK2mmB,QACX,KAAK,EACH3mmB,KAAK2mmB,OAAS,EACV3mmB,KAAKwmmB,MAAOxmmB,KAAKiiD,SAASwiG,OAAO95H,EAAGoK,GACnC/0B,KAAKiiD,SAASuiG,OAAO75H,EAAGoK,GAC7B,MAEF,KAAK,EAAG/0B,KAAK2mmB,OAAS,EACtB,QACM3mmB,KAAKqhT,GAAIrhT,KAAKiiD,SAAS2iG,cAAc5kJ,KAAKy6jB,KAAOz6jB,KAAKy6jB,IAAM9viB,GAAK,EAAG3qB,KAAK06jB,IAAK16jB,KAAKy6jB,IAAK1liB,EAAGpK,EAAGoK,GAC7F/0B,KAAKiiD,SAAS2iG,cAAc5kJ,KAAKy6jB,IAAKz6jB,KAAK06jB,KAAO16jB,KAAK06jB,IAAM3liB,GAAK,EAAGpK,EAAG3qB,KAAK06jB,IAAK/viB,EAAGoK,GAI9F/0B,KAAKy6jB,IAAM9viB,EAAG3qB,KAAK06jB,IAAM3liB,CAC3B,ECnCF,SAASkykB,IAAa9giB,GACpBnmE,KAAKiiD,SAAWkkB,CAClB,CCJA,SAAS+giB,IAAO/giB,GACdnmE,KAAKiiD,SAAWkkB,CAClB,CA0Be,aAASA,GACtB,OAAO,IAAI+giB,IAAO/giB,EACpB,CC9BA,SAASqgD,IAAK77F,GACZ,OAAOA,EAAI,GAAK,EAAI,CACtB,CAMA,SAASw8kB,IAAOp2lB,EAAM2/B,EAAIC,GACxB,IAAIy2jB,EAAKr2lB,EAAK4pjB,IAAM5pjB,EAAK0pjB,IACrB4sC,EAAK32jB,EAAK3/B,EAAK4pjB,IACfsnB,GAAMlxkB,EAAK6pjB,IAAM7pjB,EAAK2pjB,MAAQ0sC,GAAMC,EAAK,IAAM,GAC/C/6jB,GAAMqE,EAAK5/B,EAAK6pjB,MAAQysC,GAAMD,EAAK,IAAM,GACzC//kB,GAAK46jB,EAAKolB,EAAK/6jB,EAAK86jB,IAAOA,EAAKC,GACpC,OAAQ7gf,IAAKy7d,GAAMz7d,IAAKl6E,IAAO9qC,KAAKyhB,IAAIzhB,KAAK6E,IAAI47kB,GAAKzglB,KAAK6E,IAAIimC,GAAK,GAAM9qC,KAAK6E,IAAIghB,KAAO,CAC5F,CAGA,SAASiglB,IAAOv2lB,EAAM2iB,GACpB,IAAIjnB,EAAIsE,EAAK4pjB,IAAM5pjB,EAAK0pjB,IACxB,OAAOhujB,GAAK,GAAKsE,EAAK6pjB,IAAM7pjB,EAAK2pjB,KAAOjujB,EAAIinB,GAAK,EAAIA,CACvD,CAKA,SAASlM,IAAMzW,EAAMuxS,EAAI/zL,GACvB,IAAI22B,EAAKn0I,EAAK0pjB,IACVt1a,EAAKp0I,EAAK2pjB,IACVlqhB,EAAKz/B,EAAK4pjB,IACVlqhB,EAAK1/B,EAAK6pjB,IACVpjQ,GAAMhnR,EAAK00G,GAAM,EACrBn0I,EAAKkxC,SAAS2iG,cAAcM,EAAKsyK,EAAIryK,EAAKqyK,EAAKlV,EAAI9xQ,EAAKgnR,EAAI/mR,EAAK+mR,EAAKjpM,EAAI/9E,EAAIC,EAChF,CAEA,SAAS82jB,IAAUphiB,GACjBnmE,KAAKiiD,SAAWkkB,CAClB,CAyCA,SAASqhiB,IAAUrhiB,GACjBnmE,KAAKiiD,SAAW,IAAIwljB,IAAethiB,EACrC,CAMA,SAASshiB,IAAethiB,GACtBnmE,KAAKiiD,SAAWkkB,CAClB,CCxFA,SAASuhiB,IAAQvhiB,GACfnmE,KAAKiiD,SAAWkkB,CAClB,CA0CA,SAASwhiB,IAAch9kB,GACrB,IAAIzpB,EAEA+zB,EADAhsB,EAAI0hB,EAAExpB,OAAS,EAEf+Y,EAAI,IAAIrZ,MAAMoI,GACdkR,EAAI,IAAItZ,MAAMoI,GACd3J,EAAI,IAAIuB,MAAMoI,GAElB,IADAiR,EAAE,GAAK,EAAGC,EAAE,GAAK,EAAG7a,EAAE,GAAKqrB,EAAE,GAAK,EAAIA,EAAE,GACnCzpB,EAAI,EAAGA,EAAI+H,EAAI,IAAK/H,EAAGgZ,EAAEhZ,GAAK,EAAGiZ,EAAEjZ,GAAK,EAAG5B,EAAE4B,GAAK,EAAIypB,EAAEzpB,GAAK,EAAIypB,EAAEzpB,EAAI,GAE5E,IADAgZ,EAAEjR,EAAI,GAAK,EAAGkR,EAAElR,EAAI,GAAK,EAAG3J,EAAE2J,EAAI,GAAK,EAAI0hB,EAAE1hB,EAAI,GAAK0hB,EAAE1hB,GACnD/H,EAAI,EAAGA,EAAI+H,IAAK/H,EAAG+zB,EAAI/a,EAAEhZ,GAAKiZ,EAAEjZ,EAAI,GAAIiZ,EAAEjZ,IAAM+zB,EAAG31B,EAAE4B,IAAM+zB,EAAI31B,EAAE4B,EAAI,GAE1E,IADAgZ,EAAEjR,EAAI,GAAK3J,EAAE2J,EAAI,GAAKkR,EAAElR,EAAI,GACvB/H,EAAI+H,EAAI,EAAG/H,GAAK,IAAKA,EAAGgZ,EAAEhZ,IAAM5B,EAAE4B,GAAKgZ,EAAEhZ,EAAI,IAAMiZ,EAAEjZ,GAE1D,IADAiZ,EAAElR,EAAI,IAAM0hB,EAAE1hB,GAAKiR,EAAEjR,EAAI,IAAM,EAC1B/H,EAAI,EAAGA,EAAI+H,EAAI,IAAK/H,EAAGiZ,EAAEjZ,GAAK,EAAIypB,EAAEzpB,EAAI,GAAKgZ,EAAEhZ,EAAI,GACxD,MAAO,CAACgZ,EAAGC,EACb,CC5DA,SAASytlB,IAAKzhiB,EAASzyC,GACrB1zB,KAAKiiD,SAAWkkB,EAChBnmE,KAAKwpJ,GAAK91H,CACZ,CCHO,SAAS/I,IAAEtD,GAChB,OAAOA,EAAE,EACX,CAEO,SAAS0N,IAAE1N,GAChB,OAAOA,EAAE,EACX,CCAe,aAASsD,EAAGoK,GACzB,IAAI8ykB,EAAU/ugB,IAAS,GACnB3yB,EAAU,KACV2hiB,EAAQC,IACRj7lB,EAAS,KACT0J,EAAOuljB,GAASnrhB,GAKpB,SAASA,EAAKr0B,GACZ,IAAIrb,EAEA0F,EAEAiqF,EAHA5nF,GAAKsT,EAAO1K,IAAM0K,IAAOpb,OAEzB6mmB,GAAW,EAKf,IAFe,MAAX7hiB,IAAiBr5D,EAASg7lB,EAAMj3gB,EAASr6E,MAExCtV,EAAI,EAAGA,GAAK+H,IAAK/H,IACdA,EAAI+H,GAAK4+lB,EAAQjhmB,EAAI2V,EAAKrb,GAAIA,EAAGqb,MAAWyrlB,KAC5CA,GAAYA,GAAUl7lB,EAAO45lB,YAC5B55lB,EAAO85lB,WAEVoB,GAAUl7lB,EAAO0a,OAAOmD,EAAE/jB,EAAG1F,EAAGqb,IAAQwY,EAAEnuB,EAAG1F,EAAGqb,IAGtD,GAAIs0E,EAAQ,OAAO/jF,EAAS,KAAM+jF,EAAS,IAAM,IACnD,CAsBA,OA3CAlmE,EAAiB,oBAANA,EAAmBA,OAAW1d,IAAN0d,EAAmBs9kB,IAASnvgB,GAASnuE,GACxEoK,EAAiB,oBAANA,EAAmBA,OAAW9nB,IAAN8nB,EAAmBmzkB,IAASpvgB,GAAS/jE,GAsBxE6b,EAAKjmB,EAAI,SAASwG,GAChB,OAAO1hB,UAAUtO,QAAUwpB,EAAiB,oBAANwG,EAAmBA,EAAI2nE,IAAU3nE,GAAIyf,GAAQjmB,CACrF,EAEAimB,EAAK7b,EAAI,SAAS5D,GAChB,OAAO1hB,UAAUtO,QAAU4zB,EAAiB,oBAAN5D,EAAmBA,EAAI2nE,IAAU3nE,GAAIyf,GAAQ7b,CACrF,EAEA6b,EAAKi3jB,QAAU,SAAS12kB,GACtB,OAAO1hB,UAAUtO,QAAU0mmB,EAAuB,oBAAN12kB,EAAmBA,EAAI2nE,KAAW3nE,GAAIyf,GAAQi3jB,CAC5F,EAEAj3jB,EAAKk3jB,MAAQ,SAAS32kB,GACpB,OAAO1hB,UAAUtO,QAAU2mmB,EAAQ32kB,EAAc,MAAXg1C,IAAoBr5D,EAASg7lB,EAAM3hiB,IAAWv1B,GAAQk3jB,CAC9F,EAEAl3jB,EAAKu1B,QAAU,SAASh1C,GACtB,OAAO1hB,UAAUtO,QAAe,MAALgwB,EAAYg1C,EAAUr5D,EAAS,KAAOA,EAASg7lB,EAAM3hiB,EAAUh1C,GAAIyf,GAAQu1B,CACxG,EAEOv1B,CACT,CClDe,aAASs0G,EAAIC,EAAI10G,GAC9B,IAAID,EAAK,KACLq3jB,EAAU/ugB,IAAS,GACnB3yB,EAAU,KACV2hiB,EAAQC,IACRj7lB,EAAS,KACT0J,EAAOuljB,GAASl0gB,GAMpB,SAASA,EAAKtrC,GACZ,IAAIrb,EACA2c,EACAjd,EAEAgG,EAEAiqF,EAHA5nF,GAAKsT,EAAO1K,IAAM0K,IAAOpb,OAEzB6mmB,GAAW,EAEXG,EAAM,IAAItnmB,MAAMoI,GAChBm/lB,EAAM,IAAIvnmB,MAAMoI,GAIpB,IAFe,MAAXk9D,IAAiBr5D,EAASg7lB,EAAMj3gB,EAASr6E,MAExCtV,EAAI,EAAGA,GAAK+H,IAAK/H,EAAG,CACvB,KAAMA,EAAI+H,GAAK4+lB,EAAQjhmB,EAAI2V,EAAKrb,GAAIA,EAAGqb,MAAWyrlB,EAChD,GAAIA,GAAYA,EACdnqlB,EAAI3c,EACJ4L,EAAOy5lB,YACPz5lB,EAAO45lB,gBACF,CAGL,IAFA55lB,EAAO85lB,UACP95lB,EAAO45lB,YACF9lmB,EAAIM,EAAI,EAAGN,GAAKid,IAAKjd,EACxBkM,EAAO0a,MAAM2glB,EAAIvnmB,GAAIwnmB,EAAIxnmB,IAE3BkM,EAAO85lB,UACP95lB,EAAO25lB,SACT,CAEEuB,IACFG,EAAIjnmB,IAAMgkJ,EAAGt+I,EAAG1F,EAAGqb,GAAO6rlB,EAAIlnmB,IAAMikJ,EAAGv+I,EAAG1F,EAAGqb,GAC7CzP,EAAO0a,MAAMgpB,GAAMA,EAAG5pC,EAAG1F,EAAGqb,GAAQ4rlB,EAAIjnmB,GAAIuvC,GAAMA,EAAG7pC,EAAG1F,EAAGqb,GAAQ6rlB,EAAIlnmB,IAE3E,CAEA,GAAI2vF,EAAQ,OAAO/jF,EAAS,KAAM+jF,EAAS,IAAM,IACnD,CAEA,SAASw3gB,IACP,OAAOz3jB,MAAOi3jB,QAAQA,GAASC,MAAMA,GAAO3hiB,QAAQA,EACtD,CAmDA,OA/FA++E,EAAmB,oBAAPA,EAAoBA,OAAaj4I,IAAPi4I,EAAoB+id,IAASnvgB,IAAUosD,GAC7EC,EAAmB,oBAAPA,EAAoBA,EAA0BrsD,QAAb7rF,IAAPk4I,EAA6B,GAAeA,GAClF10G,EAAmB,oBAAPA,EAAoBA,OAAaxjC,IAAPwjC,EAAoBy3jB,IAASpvgB,IAAUroD,GA4C7EoX,EAAKl9B,EAAI,SAASwG,GAChB,OAAO1hB,UAAUtO,QAAU+jJ,EAAkB,oBAAN/zH,EAAmBA,EAAI2nE,IAAU3nE,GAAIqf,EAAK,KAAMqX,GAAQq9F,CACjG,EAEAr9F,EAAKq9F,GAAK,SAAS/zH,GACjB,OAAO1hB,UAAUtO,QAAU+jJ,EAAkB,oBAAN/zH,EAAmBA,EAAI2nE,IAAU3nE,GAAI02B,GAAQq9F,CACtF,EAEAr9F,EAAKrX,GAAK,SAASrf,GACjB,OAAO1hB,UAAUtO,QAAUqvC,EAAU,MAALrf,EAAY,KAAoB,oBAANA,EAAmBA,EAAI2nE,IAAU3nE,GAAI02B,GAAQrX,CACzG,EAEAqX,EAAK9yB,EAAI,SAAS5D,GAChB,OAAO1hB,UAAUtO,QAAUgkJ,EAAkB,oBAANh0H,EAAmBA,EAAI2nE,IAAU3nE,GAAIsf,EAAK,KAAMoX,GAAQs9F,CACjG,EAEAt9F,EAAKs9F,GAAK,SAASh0H,GACjB,OAAO1hB,UAAUtO,QAAUgkJ,EAAkB,oBAANh0H,EAAmBA,EAAI2nE,IAAU3nE,GAAI02B,GAAQs9F,CACtF,EAEAt9F,EAAKpX,GAAK,SAAStf,GACjB,OAAO1hB,UAAUtO,QAAUsvC,EAAU,MAALtf,EAAY,KAAoB,oBAANA,EAAmBA,EAAI2nE,IAAU3nE,GAAI02B,GAAQpX,CACzG,EAEAoX,EAAKygjB,OACLzgjB,EAAK0gjB,OAAS,WACZ,OAAOF,IAAW19kB,EAAEu6H,GAAInwH,EAAEowH,EAC5B,EAEAt9F,EAAK2gjB,OAAS,WACZ,OAAOH,IAAW19kB,EAAEu6H,GAAInwH,EAAE0b,EAC5B,EAEAoX,EAAK4gjB,OAAS,WACZ,OAAOJ,IAAW19kB,EAAE6lB,GAAIzb,EAAEowH,EAC5B,EAEAt9F,EAAKggjB,QAAU,SAAS12kB,GACtB,OAAO1hB,UAAUtO,QAAU0mmB,EAAuB,oBAAN12kB,EAAmBA,EAAI2nE,KAAW3nE,GAAI02B,GAAQggjB,CAC5F,EAEAhgjB,EAAKigjB,MAAQ,SAAS32kB,GACpB,OAAO1hB,UAAUtO,QAAU2mmB,EAAQ32kB,EAAc,MAAXg1C,IAAoBr5D,EAASg7lB,EAAM3hiB,IAAWte,GAAQigjB,CAC9F,EAEAjgjB,EAAKse,QAAU,SAASh1C,GACtB,OAAO1hB,UAAUtO,QAAe,MAALgwB,EAAYg1C,EAAUr5D,EAAS,KAAOA,EAASg7lB,EAAM3hiB,EAAUh1C,GAAI02B,GAAQse,CACxG,EAEOte,CACT,CC/GA,SAASrlD,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAAS2sM,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASqD,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CRE3OwkmB,IAAapnmB,UAAY,CACvB0mmB,UAAW34kB,IACX64kB,QAAS74kB,IACT84kB,UAAW,WACT1mmB,KAAK2mmB,OAAS,CAChB,EACAC,QAAS,WACH5mmB,KAAK2mmB,QAAQ3mmB,KAAKiiD,SAAS0iG,WACjC,EACAn9H,MAAO,SAASmD,EAAGoK,GACjBpK,GAAKA,EAAGoK,GAAKA,EACT/0B,KAAK2mmB,OAAQ3mmB,KAAKiiD,SAASwiG,OAAO95H,EAAGoK,IACpC/0B,KAAK2mmB,OAAS,EAAG3mmB,KAAKiiD,SAASuiG,OAAO75H,EAAGoK,GAChD,GCfFmykB,IAAOrnmB,UAAY,CACjB0mmB,UAAW,WACTvmmB,KAAKwmmB,MAAQ,CACf,EACAC,QAAS,WACPzmmB,KAAKwmmB,MAAQ//kB,GACf,EACAiglB,UAAW,WACT1mmB,KAAK2mmB,OAAS,CAChB,EACAC,QAAS,YACH5mmB,KAAKwmmB,OAAyB,IAAfxmmB,KAAKwmmB,OAA+B,IAAhBxmmB,KAAK2mmB,SAAe3mmB,KAAKiiD,SAAS0iG,YACzE3kJ,KAAKwmmB,MAAQ,EAAIxmmB,KAAKwmmB,KACxB,EACAh/kB,MAAO,SAASmD,EAAGoK,GAEjB,OADApK,GAAKA,EAAGoK,GAAKA,EACL/0B,KAAK2mmB,QACX,KAAK,EAAG3mmB,KAAK2mmB,OAAS,EAAG3mmB,KAAKwmmB,MAAQxmmB,KAAKiiD,SAASwiG,OAAO95H,EAAGoK,GAAK/0B,KAAKiiD,SAASuiG,OAAO75H,EAAGoK,GAAI,MAC/F,KAAK,EAAG/0B,KAAK2mmB,OAAS,EACtB,QAAS3mmB,KAAKiiD,SAASwiG,OAAO95H,EAAGoK,GAErC,GCcFwykB,IAAU1nmB,UAAY,CACpB0mmB,UAAW,WACTvmmB,KAAKwmmB,MAAQ,CACf,EACAC,QAAS,WACPzmmB,KAAKwmmB,MAAQ//kB,GACf,EACAiglB,UAAW,WACT1mmB,KAAKy6jB,IAAMz6jB,KAAK26jB,IAChB36jB,KAAK06jB,IAAM16jB,KAAK46jB,IAChB56jB,KAAK0omB,IAAMjilB,IACXzmB,KAAK2mmB,OAAS,CAChB,EACAC,QAAS,WACP,OAAQ5mmB,KAAK2mmB,QACX,KAAK,EAAG3mmB,KAAKiiD,SAASwiG,OAAOzkJ,KAAK26jB,IAAK36jB,KAAK46jB,KAAM,MAClD,KAAK,EAAGpziB,IAAMxnB,KAAMA,KAAK0omB,IAAKpB,IAAOtnmB,KAAMA,KAAK0omB,OAE9C1omB,KAAKwmmB,OAAyB,IAAfxmmB,KAAKwmmB,OAA+B,IAAhBxmmB,KAAK2mmB,SAAe3mmB,KAAKiiD,SAAS0iG,YACzE3kJ,KAAKwmmB,MAAQ,EAAIxmmB,KAAKwmmB,KACxB,EACAh/kB,MAAO,SAASmD,EAAGoK,GACjB,IAAIw5F,EAAK9nG,IAGT,GADQsO,GAAKA,GAAbpK,GAAKA,KACK3qB,KAAK26jB,KAAO5liB,IAAM/0B,KAAK46jB,IAAjC,CACA,OAAQ56jB,KAAK2mmB,QACX,KAAK,EAAG3mmB,KAAK2mmB,OAAS,EAAG3mmB,KAAKwmmB,MAAQxmmB,KAAKiiD,SAASwiG,OAAO95H,EAAGoK,GAAK/0B,KAAKiiD,SAASuiG,OAAO75H,EAAGoK,GAAI,MAC/F,KAAK,EAAG/0B,KAAK2mmB,OAAS,EAAG,MACzB,KAAK,EAAG3mmB,KAAK2mmB,OAAS,EAAGn/kB,IAAMxnB,KAAMsnmB,IAAOtnmB,KAAMuuH,EAAK44e,IAAOnnmB,KAAM2qB,EAAGoK,IAAKw5F,GAAK,MACjF,QAAS/mG,IAAMxnB,KAAMA,KAAK0omB,IAAKn6e,EAAK44e,IAAOnnmB,KAAM2qB,EAAGoK,IAGtD/0B,KAAKy6jB,IAAMz6jB,KAAK26jB,IAAK36jB,KAAK26jB,IAAMhwiB,EAChC3qB,KAAK06jB,IAAM16jB,KAAK46jB,IAAK56jB,KAAK46jB,IAAM7liB,EAChC/0B,KAAK0omB,IAAMn6e,CAViC,CAW9C,IAODi5e,IAAU3nmB,UAAYmG,OAAO4D,OAAO29lB,IAAU1nmB,YAAY2nB,MAAQ,SAASmD,EAAGoK,GAC7EwykB,IAAU1nmB,UAAU2nB,MAAMznB,KAAKC,KAAM+0B,EAAGpK,EAC1C,EAMA88kB,IAAe5nmB,UAAY,CACzB2kJ,OAAQ,SAAS75H,EAAGoK,GAAK/0B,KAAKiiD,SAASuiG,OAAOzvH,EAAGpK,EAAI,EACrDg6H,UAAW,WAAa3kJ,KAAKiiD,SAAS0iG,WAAa,EACnDF,OAAQ,SAAS95H,EAAGoK,GAAK/0B,KAAKiiD,SAASwiG,OAAO1vH,EAAGpK,EAAI,EACrDi6H,cAAe,SAASp0G,EAAIC,EAAIC,EAAIC,EAAIhmB,EAAGoK,GAAK/0B,KAAKiiD,SAAS2iG,cAAcn0G,EAAID,EAAIG,EAAID,EAAI3b,EAAGpK,EAAI,GC1FrG+8kB,IAAQ7nmB,UAAY,CAClB0mmB,UAAW,WACTvmmB,KAAKwmmB,MAAQ,CACf,EACAC,QAAS,WACPzmmB,KAAKwmmB,MAAQ//kB,GACf,EACAiglB,UAAW,WACT1mmB,KAAKqhT,GAAK,GACVrhT,KAAK2omB,GAAK,EACZ,EACA/B,QAAS,WACP,IAAIj8kB,EAAI3qB,KAAKqhT,GACTtsR,EAAI/0B,KAAK2omB,GACT1/lB,EAAI0hB,EAAExpB,OAEV,GAAI8H,EAEF,GADAjJ,KAAKwmmB,MAAQxmmB,KAAKiiD,SAASwiG,OAAO95H,EAAE,GAAIoK,EAAE,IAAM/0B,KAAKiiD,SAASuiG,OAAO75H,EAAE,GAAIoK,EAAE,IACnE,IAAN9rB,EACFjJ,KAAKiiD,SAASwiG,OAAO95H,EAAE,GAAIoK,EAAE,SAI7B,IAFA,IAAIzwB,EAAKqjmB,IAAch9kB,GACnBm9iB,EAAK6/B,IAAc5ykB,GACd6rJ,EAAK,EAAGC,EAAK,EAAGA,EAAK53K,IAAK23K,IAAMC,EACvC7gL,KAAKiiD,SAAS2iG,cAActgJ,EAAG,GAAGs8K,GAAKknZ,EAAG,GAAGlnZ,GAAKt8K,EAAG,GAAGs8K,GAAKknZ,EAAG,GAAGlnZ,GAAKj2J,EAAEk2J,GAAK9rJ,EAAE8rJ,KAKnF7gL,KAAKwmmB,OAAyB,IAAfxmmB,KAAKwmmB,OAAqB,IAANv9lB,IAAUjJ,KAAKiiD,SAAS0iG,YAC/D3kJ,KAAKwmmB,MAAQ,EAAIxmmB,KAAKwmmB,MACtBxmmB,KAAKqhT,GAAKrhT,KAAK2omB,GAAK,IACtB,EACAnhlB,MAAO,SAASmD,EAAGoK,GACjB/0B,KAAKqhT,GAAGx/S,MAAM8oB,GACd3qB,KAAK2omB,GAAG9mmB,MAAMkzB,EAChB,GCnCF6ykB,IAAK/nmB,UAAY,CACf0mmB,UAAW,WACTvmmB,KAAKwmmB,MAAQ,CACf,EACAC,QAAS,WACPzmmB,KAAKwmmB,MAAQ//kB,GACf,EACAiglB,UAAW,WACT1mmB,KAAKqhT,GAAKrhT,KAAK2omB,GAAKlilB,IACpBzmB,KAAK2mmB,OAAS,CAChB,EACAC,QAAS,WACH,EAAI5mmB,KAAKwpJ,IAAMxpJ,KAAKwpJ,GAAK,GAAqB,IAAhBxpJ,KAAK2mmB,QAAc3mmB,KAAKiiD,SAASwiG,OAAOzkJ,KAAKqhT,GAAIrhT,KAAK2omB,KACpF3omB,KAAKwmmB,OAAyB,IAAfxmmB,KAAKwmmB,OAA+B,IAAhBxmmB,KAAK2mmB,SAAe3mmB,KAAKiiD,SAAS0iG,YACrE3kJ,KAAKwmmB,OAAS,IAAGxmmB,KAAKwpJ,GAAK,EAAIxpJ,KAAKwpJ,GAAIxpJ,KAAKwmmB,MAAQ,EAAIxmmB,KAAKwmmB,MACpE,EACAh/kB,MAAO,SAASmD,EAAGoK,GAEjB,OADApK,GAAKA,EAAGoK,GAAKA,EACL/0B,KAAK2mmB,QACX,KAAK,EAAG3mmB,KAAK2mmB,OAAS,EAAG3mmB,KAAKwmmB,MAAQxmmB,KAAKiiD,SAASwiG,OAAO95H,EAAGoK,GAAK/0B,KAAKiiD,SAASuiG,OAAO75H,EAAGoK,GAAI,MAC/F,KAAK,EAAG/0B,KAAK2mmB,OAAS,EACtB,QACE,GAAI3mmB,KAAKwpJ,IAAM,EACbxpJ,KAAKiiD,SAASwiG,OAAOzkJ,KAAKqhT,GAAItsR,GAC9B/0B,KAAKiiD,SAASwiG,OAAO95H,EAAGoK,OACnB,CACL,IAAIyb,EAAKxwC,KAAKqhT,IAAM,EAAIrhT,KAAKwpJ,IAAM7+H,EAAI3qB,KAAKwpJ,GAC5CxpJ,KAAKiiD,SAASwiG,OAAOj0G,EAAIxwC,KAAK2omB,IAC9B3omB,KAAKiiD,SAASwiG,OAAOj0G,EAAIzb,EAC3B,EAIJ/0B,KAAKqhT,GAAK12R,EAAG3qB,KAAK2omB,GAAK5zkB,CACzB,GIrBF,IAAI6zkB,IAAkB,CACpBC,iBX8Ba,SAAS1iiB,GACtB,OAAO,IAAIkgiB,IAAYlgiB,EACzB,EW/BE2iiB,eVgBa,SAAS3iiB,GACtB,OAAO,IAAImgiB,IAAUngiB,EACvB,EUjBE4iiB,WZ2Ba,SAAS5iiB,GACtB,OAAO,IAAIigiB,IAAMjgiB,EACnB,EY5BE6iiB,WT0CK,SAAe7iiB,GACpB,OAAO,IAAI6giB,IAAK7giB,GAAS,EAC3B,ES3CE8iiB,WT6CK,SAAe9iiB,GACpB,OAAO,IAAI6giB,IAAK7giB,GAAS,EAC3B,ES9CE+iiB,kBRFa,SAAS/iiB,GACtB,OAAO,IAAI8giB,IAAa9giB,EAC1B,EQCE4hiB,YAAaA,IACboB,eNuEK,SAAmBhjiB,GACxB,OAAO,IAAIohiB,IAAUphiB,EACvB,EMxEEijiB,eN0EK,SAAmBjjiB,GACxB,OAAO,IAAIqhiB,IAAUrhiB,EACvB,EM3EEkjiB,aLkCa,SAASljiB,GACtB,OAAO,IAAIuhiB,IAAQvhiB,EACrB,EKnCEmjiB,UJaa,SAASnjiB,GACtB,OAAO,IAAIyhiB,IAAKzhiB,EAAS,GAC3B,EIdEojiB,eJoBK,SAAmBpjiB,GACxB,OAAO,IAAIyhiB,IAAKzhiB,EAAS,EAC3B,EIrBEqjiB,gBJeK,SAAoBrjiB,GACzB,OAAO,IAAIyhiB,IAAKzhiB,EAAS,EAC3B,GIfI0hiB,IAAU,SAAiBxglB,GAC7B,OAAOA,EAAEsD,KAAOtD,EAAEsD,GAAKtD,EAAE0N,KAAO1N,EAAE0N,CACpC,EACI00kB,IAAO,SAAcpilB,GACvB,OAAOA,EAAEsD,CACX,EACI++kB,IAAO,SAAcrilB,GACvB,OAAOA,EAAE0N,CACX,EAeWooiB,IAAU,SAAiBlya,GACpC,IAYI0+c,EAZAjtC,EAAYzxa,EAAKjkJ,KACnBA,OAAqB,IAAd01jB,EAAuB,SAAWA,EACzCktC,EAAc3+c,EAAKu2G,OACnBA,OAAyB,IAAhBooW,EAAyB,GAAKA,EACvCC,EAAW5+c,EAAK4+c,SAChBv2R,EAASroL,EAAKqoL,OACdw2R,EAAoB7+c,EAAK8+c,aACzBA,OAAqC,IAAtBD,GAAuCA,EACpDE,EAvBgB,SAAyBhjmB,EAAMssU,GACnD,GAAI1oT,KAAW5jB,GACb,OAAOA,EAET,IAAIiH,EAAO,QAAQzJ,OAAOuwC,KAAW/tC,IACrC,MAAc,kBAATiH,GAAqC,cAATA,IAAyBqlU,EAGnDs1R,IAAgB36lB,IAAS85lB,IAFvBa,IAAgB,GAAGpkmB,OAAOyJ,GAAMzJ,OAAkB,aAAX8uU,EAAwB,IAAM,KAGhF,CAcqB22R,CAAgBjjmB,EAAMssU,GACrC42R,EAAeH,EAAevoW,EAAOrwP,QAAO,SAAUuf,GACxD,OAAOm3kB,IAAQn3kB,EACjB,IAAK8wO,EAEL,GAAI3gQ,MAAMqR,QAAQ23lB,GAAW,CAC3B,IAAIM,EAAiBJ,EAAeF,EAAS14lB,QAAO,SAAU22C,GAC5D,OAAO+/iB,IAAQ//iB,EACjB,IAAK+hjB,EACDO,EAAaF,EAAa78lB,KAAI,SAAUqjB,EAAOxgB,GACjD,OAAOsoO,IAAcA,IAAc,CAAC,EAAG9nN,GAAQ,CAAC,EAAG,CACjDo3B,KAAMqijB,EAAej6lB,IAEzB,IAWA,OATEy5lB,EADa,aAAXr2R,EACa+2R,MAAYt1kB,EAAE20kB,KAAMl5jB,GAAGi5jB,KAAMvkd,IAAG,SAAUt+I,GACvD,OAAOA,EAAEkhD,KAAKn9B,CAChB,IAEe0/kB,MAAY1/kB,EAAE8+kB,KAAMh5jB,GAAGi5jB,KAAMvkd,IAAG,SAAUv+I,GACvD,OAAOA,EAAEkhD,KAAK/yB,CAChB,KAEW8ykB,QAAQA,KAASC,MAAMkC,GAC7BL,EAAaS,EACtB,CASA,OAPET,EADa,aAAXr2R,GAAyBlsO,GAASyigB,GACrBQ,MAAYt1kB,EAAE20kB,KAAMl5jB,GAAGi5jB,KAAMvkd,GAAG2kd,GACtCzigB,GAASyigB,GACHQ,MAAY1/kB,EAAE8+kB,KAAMh5jB,GAAGi5jB,KAAMvkd,GAAG0kd,GAEhCS,MAAY3/kB,EAAE8+kB,KAAM10kB,EAAE20kB,MAE1B7B,QAAQA,KAASC,MAAMkC,GAC7BL,EAAaO,EACtB,EACWK,IAAQ,SAAe1yjB,GAChC,IAAItwC,EAAYswC,EAAMtwC,UACpBi6P,EAAS3pN,EAAM2pN,OACfhrP,EAAOqhC,EAAMrhC,KACb8xjB,EAAUzwhB,EAAMywhB,QAClB,KAAM9mU,IAAWA,EAAOrgQ,UAAYqV,EAClC,OAAO,KAET,IAAIg0lB,EAAWhpW,GAAUA,EAAOrgQ,OAASg8jB,IAAQtlhB,GAASrhC,EAC1D,OAAoBq9M,EAAAA,cAAoB,OAAQoL,IAAS,CAAC,EAAG8zV,GAAYl7gB,GAAO,GAAQs5gB,GAAmBt5gB,GAAQ,CACjHtwC,UAAWshY,GAAK,iBAAkBthY,GAClCX,EAAG4jmB,EACHjzjB,IAAK+whB,IAET,ECnHA,SAAS9lkB,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,IAAI07M,IAAY,CAAC,IAAK,IAAK,MAAO,OAAQ,QAAS,SAAU,aAC7D,SAAS/O,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASqD,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAE9P,SAASmkF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAG3O,SAASs3O,IAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAS3e,IAAIoyjB,IAAU,SAAiBxyiB,EAAGoK,EAAG9yB,EAAON,EAAQL,EAAKD,GACvD,MAAO,IAAImD,OAAOmmB,EAAG,KAAKnmB,OAAOlD,EAAK,KAAKkD,OAAO7C,EAAQ,KAAK6C,OAAOnD,EAAM,KAAKmD,OAAOuwB,EAAG,KAAKvwB,OAAOvC,EACzG,EACW6mM,IAAQ,SAAe79C,GAChC,IAAIw/c,EAASx/c,EAAKtgI,EAChBA,OAAe,IAAX8/kB,EAAoB,EAAIA,EAC5BC,EAASz/c,EAAKl2H,EACdA,OAAe,IAAX21kB,EAAoB,EAAIA,EAC5BC,EAAW1/c,EAAK3pJ,IAChBA,OAAmB,IAAbqpmB,EAAsB,EAAIA,EAChCC,EAAY3/c,EAAK5pJ,KACjBA,OAAqB,IAAdupmB,EAAuB,EAAIA,EAClCp2C,EAAavpa,EAAKhpJ,MAClBA,OAAuB,IAAfuyjB,EAAwB,EAAIA,EACpCC,EAAcxpa,EAAKtpJ,OACnBA,OAAyB,IAAhB8yjB,EAAyB,EAAIA,EACtCltjB,EAAY0jJ,EAAK1jJ,UAEfswC,EA/BN,SAAuBrqB,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CA+BxagrN,CAAc,CACxB7tN,EAAGA,EACHoK,EAAGA,EACHzzB,IAAKA,EACLD,KAAMA,EACNY,MAAOA,EACPN,OAAQA,GAPDo4O,IAAyB9uF,EAAM+iF,MASxC,OAAK5mI,GAASz8E,IAAOy8E,GAASryE,IAAOqyE,GAASnlG,IAAWmlG,GAASzlG,IAAYylG,GAAS9lG,IAAS8lG,GAAS/lG,GAGrFwyN,EAAAA,cAAoB,OAAQoL,IAAS,CAAC,EAAG8zV,GAAYl7gB,GAAO,GAAO,CACrFtwC,UAAWshY,GAAK,iBAAkBthY,GAClCX,EAAGu2jB,IAAQxyiB,EAAGoK,EAAG9yB,EAAON,EAAQL,EAAKD,MAJ9B,IAMX,EC5CO,SAASwpmB,IAAsBC,GACpC,IAAI7we,EAAK6we,EAAiB7we,GACxBC,EAAK4we,EAAiB5we,GACtBy5E,EAASm3Z,EAAiBn3Z,OAC1BC,EAAak3Z,EAAiBl3Z,WAC9BC,EAAWi3Z,EAAiBj3Z,SAG9B,MAAO,CACL2tD,OAAQ,CAHOowV,IAAiB33d,EAAIC,EAAIy5E,EAAQC,GACnCg+Y,IAAiB33d,EAAIC,EAAIy5E,EAAQE,IAG9C55E,GAAIA,EACJC,GAAIA,EACJy5E,OAAQA,EACRC,WAAYA,EACZC,SAAUA,EAEd,CCpBO,SAASk3Z,IAAgBz3R,EAAQw3R,EAAkBhwiB,GACxD,IAAItqB,EAAIC,EAAIC,EAAIC,EAChB,GAAe,eAAX2iS,EAEF5iS,EADAF,EAAKs6jB,EAAiBnglB,EAEtB8lB,EAAKqqB,EAAOx5D,IACZqvC,EAAKmqB,EAAOx5D,IAAMw5D,EAAOn5D,YACpB,GAAe,aAAX2xU,EAET3iS,EADAF,EAAKq6jB,EAAiB/1kB,EAEtByb,EAAKsqB,EAAOz5D,KACZqvC,EAAKoqB,EAAOz5D,KAAOy5D,EAAO74D,WACrB,GAA2B,MAAvB6omB,EAAiB7we,IAAqC,MAAvB6we,EAAiB5we,GAAY,CACrE,GAAe,YAAXo5M,EAaF,OAAOu3R,IAAsBC,GAZ7B,IAAI7we,EAAK6we,EAAiB7we,GACxBC,EAAK4we,EAAiB5we,GACtBo4d,EAAcwY,EAAiBxY,YAC/BC,EAAcuY,EAAiBvY,YAC/Brle,EAAQ49e,EAAiB59e,MACvB89e,EAAapZ,IAAiB33d,EAAIC,EAAIo4d,EAAaple,GACnD+9e,EAAarZ,IAAiB33d,EAAIC,EAAIq4d,EAAarle,GACvD18E,EAAKw6jB,EAAWrglB,EAChB8lB,EAAKu6jB,EAAWj2kB,EAChB2b,EAAKu6jB,EAAWtglB,EAChBgmB,EAAKs6jB,EAAWl2kB,CAIpB,CACA,MAAO,CAAC,CACNpK,EAAG6lB,EACHzb,EAAG0b,GACF,CACD9lB,EAAG+lB,EACH3b,EAAG4b,GAEP,CCtCA,SAASnuC,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAASxf,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAqBpO,SAASyomB,IAAOrzjB,GACrB,IAAIszjB,EAAuBC,EAevBtxX,EAdAl6M,EAAUiY,EAAMjY,QAClByrkB,EAAmBxzjB,EAAMwzjB,iBACzBp2X,EAAWp9L,EAAMo9L,SACjB61X,EAAmBjzjB,EAAMizjB,iBACzBQ,EAAgBzzjB,EAAMyzjB,cACtBxwiB,EAASjjB,EAAMijB,OACfywiB,EAAqB1zjB,EAAM0zjB,mBAC3BC,EAAsB3zjB,EAAM2zjB,oBAC5Bl4R,EAASz7R,EAAMy7R,OACf0rR,EAAYnnjB,EAAMmnjB,UAChByM,EAAwE,QAAlDN,EAAwBvrkB,EAAQiY,MAAM7d,cAA8C,IAA1BmxkB,EAAmCA,EAAwE,QAA/CC,EAAgBxrkB,EAAQ54B,KAAK2wC,oBAA4C,IAAlByzjB,OAA2B,EAASA,EAAcpxkB,OACzP,IAAK4F,IAAY6rkB,IAAuBx2X,IAAa61X,GAAkC,iBAAd9L,GAAqD,SAArBqM,EACvG,OAAO,KAGT,IAAIK,EAAanB,IACjB,GAAkB,iBAAdvL,EACFllX,EAAYgxX,EACZY,EAAa5ia,SACR,GAAkB,aAAdk2Z,EACTllX,EC9CG,SAA4Bw5F,EAAQw3R,EAAkBhwiB,EAAQ0wiB,GACnE,IAAIhuC,EAAWguC,EAAsB,EACrC,MAAO,CACLjkd,OAAQ,OACR37C,KAAM,OACNjhF,EAAc,eAAX2oT,EAA0Bw3R,EAAiBnglB,EAAI6yiB,EAAW1igB,EAAOz5D,KAAO,GAC3E0zB,EAAc,eAAXu+S,EAA0Bx4Q,EAAOx5D,IAAM,GAAMwpmB,EAAiB/1kB,EAAIyoiB,EACrEv7jB,MAAkB,eAAXqxU,EAA0Bk4R,EAAsB1wiB,EAAO74D,MAAQ,EACtEN,OAAmB,eAAX2xU,EAA0Bx4Q,EAAOn5D,OAAS,EAAI6pmB,EAE1D,CDoCgBG,CAAmBr4R,EAAQw3R,EAAkBhwiB,EAAQ0wiB,GACjEE,EAAa/ma,QACR,GAAe,WAAX2uI,EAAqB,CAC9B,IAAIs4R,EAAwBf,IAAsBC,GAChD7we,EAAK2xe,EAAsB3xe,GAC3BC,EAAK0xe,EAAsB1xe,GAC3By5E,EAASi4Z,EAAsBj4Z,OAGjCmmC,EAAY,CACV7/G,GAAIA,EACJC,GAAIA,EACJ05E,WALag4Z,EAAsBh4Z,WAMnCC,SALW+3Z,EAAsB/3Z,SAMjCy+Y,YAAa3+Y,EACb4+Y,YAAa5+Y,GAEf+3Z,EAAatU,GACf,MACEt9W,EAAY,CACV0nB,OAAQupW,IAAgBz3R,EAAQw3R,EAAkBhwiB,IAEpD4wiB,EAAanB,IAEf,IAAIsB,EAAcrzX,IAAcA,IAAcA,IAAcA,IAAc,CACxEjxF,OAAQ,OACR4yF,cAAe,QACdr/K,GAASg/K,GAAYi5U,GAAY04C,GAAoB,IAAS,CAAC,EAAG,CACnEnkiB,QAASgkiB,EACTQ,aAAcP,EACdhkmB,UAAWshY,GAAK,0BAA2B4iO,EAAmBlkmB,aAEhE,OAAoBiwG,EAAAA,EAAAA,gBAAei0f,IAAmC50f,EAAAA,EAAAA,cAAa40f,EAAoBI,IAA4BtlmB,EAAAA,EAAAA,eAAcmlmB,EAAYG,EAC/J,CE/EA,IAAI79X,IAAY,CAAC,QACfiO,IAAa,CAAC,WAAY,YAAa,QAAS,SAAU,QAAS,UAAW,QAAS,QACzF,SAASz5O,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAAS2sM,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASmsO,IAAevvF,EAAKnrJ,GAAK,OAGlC,SAAyBmrJ,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAOA,CAAK,CAH3Byna,CAAgBzna,IAEzD,SAA+B/sJ,EAAGwC,GAAK,IAAI4xB,EAAI,MAAQp0B,EAAI,KAAO,oBAAsBoD,QAAUpD,EAAEoD,OAAOC,WAAarD,EAAE,cAAe,GAAI,MAAQo0B,EAAG,CAAE,IAAIlG,EAAGvkB,EAAG/H,EAAG0yB,EAAG1Z,EAAI,GAAI/K,GAAI,EAAImjB,GAAI,EAAI,IAAM,GAAIpxB,GAAKwyB,EAAIA,EAAE3zB,KAAKT,IAAI4U,KAAM,IAAMpS,EAAG,CAAE,GAAIkE,OAAO0tB,KAAOA,EAAG,OAAQvkB,GAAI,CAAI,MAAO,OAASA,GAAKqe,EAAItsB,EAAEnB,KAAK2zB,IAAIzO,QAAU/K,EAAErY,KAAK2rB,EAAE5uB,OAAQsb,EAAE/Y,SAAWW,GAAIqN,GAAI,GAAK,CAAE,MAAO7P,GAAKgzB,GAAI,EAAIrpB,EAAI3J,CAAG,CAAE,QAAU,IAAM,IAAK6P,GAAK,MAAQukB,EAAU,SAAME,EAAIF,EAAU,SAAK1tB,OAAO4tB,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAItB,EAAG,MAAMrpB,CAAG,CAAE,CAAE,OAAOiR,CAAG,CAAE,CAFxd65iB,CAAsB1na,EAAKnrJ,IAAMgzjB,IAA4B7na,EAAKnrJ,IACnI,WAA8B,MAAM,IAAI0N,UAAU,4IAA8I,CADvDuljB,EAAoB,CAI7J,SAASp6U,IAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAG3e,SAASitjB,IAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,IAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASyoa,IAAWxuZ,EAAGpB,EAAG9E,GAAK,OAAO8E,EAAI8uZ,IAAgB9uZ,GAC1D,SAAoCvzB,EAAMgB,GAAQ,GAAIA,IAA2B,WAAlByC,IAAQzC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI6O,UAAU,4DAA+D,OAC1P,SAAgC7P,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI43O,eAAe,6DAAgE,OAAO53O,CAAM,CAD4F4gQ,CAAuB5gQ,EAAO,CADjOsib,CAA2B3tZ,EAAG4tZ,MAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,IAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,GAAK,CAG1M,SAAS8zZ,MAA8B,IAAM,IAAI5tZ,GAAK3hB,QAAQlS,UAAUkhB,QAAQhhB,KAAK4hD,QAAQC,UAAU7vC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO2hB,GAAI,CAAE,OAAQ4tZ,IAA4B,WAAuC,QAAS5tZ,CAAG,IAAM,CAClP,SAAS0tZ,IAAgB9uZ,GAA+J,OAA1J8uZ,IAAkBp7a,OAAO4O,eAAiB5O,OAAOmN,eAAe5F,OAAS,SAAyB+kB,GAAK,OAAOA,EAAEvoB,WAAa/D,OAAOmN,eAAemf,EAAI,EAAU8uZ,IAAgB9uZ,EAAI,CAEnN,SAAS2liB,IAAgB3liB,EAAGjL,GAA6I,OAAxI4wiB,IAAkBjyjB,OAAO4O,eAAiB5O,OAAO4O,eAAerH,OAAS,SAAyB+kB,EAAGjL,GAAsB,OAAjBiL,EAAEvoB,UAAYsd,EAAUiL,CAAG,EAAU2liB,IAAgB3liB,EAAGjL,EAAI,CACvM,SAAS27N,IAAmB32F,GAAO,OAInC,SAA4BA,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAO4na,IAAkB5na,EAAM,CAJhDk2a,CAAmBl2a,IAG7D,SAA0BsjN,GAAQ,GAAsB,qBAAXjtW,QAAmD,MAAzBitW,EAAKjtW,OAAOC,WAA2C,MAAtBgtW,EAAK,cAAuB,OAAO9uW,MAAM8J,KAAKglW,EAAO,CAHxFkyN,CAAiBx1a,IAAQ6na,IAA4B7na,IAC1H,WAAgC,MAAM,IAAIz9I,UAAU,uIAAyI,CAD3D4zjB,EAAsB,CAExJ,SAAStO,IAA4B5hiB,EAAG0hiB,GAAU,GAAK1hiB,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAO2hiB,IAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAiE,MAAnD,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAgB,QAANhF,GAAqB,QAANA,EAAoBpI,MAAM8J,KAAK2nB,GAAc,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAWgrjB,IAAkB3hiB,EAAG0hiB,QAAzG,CAA7O,CAA+V,CAG/Z,SAASC,IAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CAClL,SAAS7vJ,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,IAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAC3O,SAASsvb,IAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAkC5G,IAAI6qmB,IAAa,CACfllB,MAAO,CAAC,SAAU,OAClBC,MAAO,CAAC,OAAQ,UAEdklB,IAAwB,CAC1B/pmB,MAAO,OACPN,OAAQ,QAENsqmB,IAAmB,CACrBthlB,EAAG,EACHoK,EAAG,GAeL,SAASm3kB,IAAWtskB,GAClB,OAAOA,CACT,CACA,IA8CIuskB,IAAmB,SAA0B5vlB,EAAM0uI,GACrD,IAAImhd,EAAiBnhd,EAAKmhd,eACxBvO,EAAiB5yc,EAAK4yc,eACtBwO,EAAephd,EAAKohd,aAClBC,GAAgC,OAAnBF,QAA8C,IAAnBA,EAA4BA,EAAiB,IAAIntkB,QAAO,SAAUhuB,EAAQhJ,GACpH,IAAIozZ,EAAWpzZ,EAAM4vC,MAAMt7B,KAC3B,OAAI8+Y,GAAYA,EAASl6Z,OAChB,GAAGqD,OAAOw+O,IAAmB/xO,GAAS+xO,IAAmBq4K,IAE3DpqZ,CACT,GAAG,IACH,OAAIq7lB,EAAUnrmB,OAAS,EACdmrmB,EAEL/vlB,GAAQA,EAAKpb,QAAUimG,GAASy2f,IAAmBz2f,GAASilgB,GACvD9vlB,EAAKvX,MAAM64lB,EAAgBwO,EAAe,GAE5C,EACT,EACA,SAASE,IAA2BtjB,GAClC,MAAoB,WAAbA,EAAwB,CAAC,EAAG,aAAUh8kB,CAC/C,CAUA,IAAIu/lB,IAAoB,SAA2BnimB,EAAOoimB,EAAWjyM,EAAakyM,GAChF,IAAIN,EAAiB/hmB,EAAM+hmB,eACzBO,EAActimB,EAAMsimB,YAClB7O,EAAgBqO,IAAiBM,EAAWpimB,GAChD,OAAImwZ,EAAc,IAAM4xM,IAAmBA,EAAejrmB,QAAUq5Z,GAAesjM,EAAc38lB,OACxF,KAGFirmB,EAAentkB,QAAO,SAAUhuB,EAAQhJ,GAC7C,IAAI2kmB,EAaAtliB,EAPA/qD,EAAkD,QAA1CqwlB,EAAoB3kmB,EAAM4vC,MAAMt7B,YAAwC,IAAtBqwlB,EAA+BA,EAAoBH,GAC7GlwlB,GAAQlS,EAAMwzlB,eAAiBxzlB,EAAMgimB,eAAiB,GAG1DhimB,EAAMgimB,aAAehimB,EAAMwzlB,gBAAkBrjM,IAC3Cj+Y,EAAOA,EAAKvX,MAAMqF,EAAMwzlB,eAAgBxzlB,EAAMgimB,aAAe,IAG3DM,EAAYtjkB,UAAYsjkB,EAAYrgB,yBAGtChlhB,EAAUmpf,QADaxjjB,IAATsP,EAAqBuhlB,EAAgBvhlB,EACfowlB,EAAYtjkB,QAASqjkB,GAEzDpliB,EAAU/qD,GAAQA,EAAKi+Y,IAAgBsjM,EAActjM,GAEvD,OAAKlzV,EAGE,GAAG9iE,OAAOw+O,IAAmB/xO,GAAS,CAACy8kB,IAAezllB,EAAOq/D,KAF3Dr2D,CAGX,GAAG,GACL,EAUI47lB,IAAiB,SAAwBximB,EAAOoimB,EAAWn5R,EAAQw5R,GACrE,IAAIC,EAAYD,GAAY,CAC1BnilB,EAAGtgB,EAAM2imB,OACTj4kB,EAAG1qB,EAAM4imB,QAEP/qlB,EA/HoB,SAA6B4qlB,EAAUx5R,GAC/D,MAAe,eAAXA,EACKw5R,EAASnilB,EAEH,aAAX2oT,EACKw5R,EAAS/3kB,EAEH,YAAXu+S,EACKw5R,EAAS5/e,MAEX4/e,EAASn5Z,MAClB,CAoHYu5Z,CAAoBH,EAAWz5R,GACrCo8P,EAAQrlkB,EAAM8imB,oBAChBhjB,EAAO9/kB,EAAMsimB,YACbS,EAAe/imB,EAAM+imB,aACnB5yM,E5ClJgC,SAAkC88J,GACtE,IAAI+1C,EACA39B,EAAQjgkB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GAC5E69lB,EAAgB79lB,UAAUtO,OAAS,EAAIsO,UAAU,QAAKxC,EACtDk9kB,EAAO16kB,UAAUtO,OAAS,EAAIsO,UAAU,QAAKxC,EAC7CiD,GAAS,EACTuU,EAAuF,QAAhF4olB,EAA0B,OAAV39B,QAA4B,IAAVA,OAAmB,EAASA,EAAMvukB,cAAsC,IAAlBksmB,EAA2BA,EAAgB,EAG9I,GAAI5olB,GAAO,EACT,OAAO,EAET,GAAI0lkB,GAA0B,cAAlBA,EAAKlB,UAA4BznlB,KAAK6E,IAAI7E,KAAK6E,IAAI8jlB,EAAK92jB,MAAM,GAAK82jB,EAAK92jB,MAAM,IAAM,MAAQ,KAGtG,IAFA,IAAIA,EAAQ82jB,EAAK92jB,MAERnyB,EAAI,EAAGA,EAAIujB,EAAKvjB,IAAK,CAC5B,IAAI+C,EAAS/C,EAAI,EAAIosmB,EAAcpsmB,EAAI,GAAGo2jB,WAAag2C,EAAc7olB,EAAM,GAAG6yiB,WAC1EpxR,EAAMonU,EAAcpsmB,GAAGo2jB,WACvBpzjB,EAAQhD,GAAKujB,EAAM,EAAI6olB,EAAc,GAAGh2C,WAAag2C,EAAcpsmB,EAAI,GAAGo2jB,WAC1Ei2C,OAAqB,EACzB,GAAIz9C,GAAS5pR,EAAMjiS,KAAY6rjB,GAAS5rjB,EAAQgiS,GAAM,CACpD,IAAIsnU,EAAe,GACnB,GAAI19C,GAAS5rjB,EAAQgiS,KAAS4pR,GAASz8hB,EAAM,GAAKA,EAAM,IAAK,CAC3Dk6kB,EAAqBrpmB,EACrB,IAAIupmB,EAAavnU,EAAM7yQ,EAAM,GAAKA,EAAM,GACxCm6kB,EAAa,GAAKhsmB,KAAKyhB,IAAIwqlB,GAAaA,EAAaxpmB,GAAU,GAC/DupmB,EAAa,GAAKhsmB,KAAKwhB,IAAIyqlB,GAAaA,EAAaxpmB,GAAU,EACjE,KAAO,CACLspmB,EAAqBtpmB,EACrB,IAAIypmB,EAAexpmB,EAAQmvB,EAAM,GAAKA,EAAM,GAC5Cm6kB,EAAa,GAAKhsmB,KAAKyhB,IAAIijR,GAAMwnU,EAAexnU,GAAO,GACvDsnU,EAAa,GAAKhsmB,KAAKwhB,IAAIkjR,GAAMwnU,EAAexnU,GAAO,EACzD,CACA,IAAIynU,EAAe,CAACnsmB,KAAKyhB,IAAIijR,GAAMqnU,EAAqBrnU,GAAO,GAAI1kS,KAAKwhB,IAAIkjR,GAAMqnU,EAAqBrnU,GAAO,IAC9G,GAAIoxR,EAAaq2C,EAAa,IAAMr2C,GAAcq2C,EAAa,IAAMr2C,GAAck2C,EAAa,IAAMl2C,GAAck2C,EAAa,GAAI,CACnIt9lB,EAAQo9lB,EAAcpsmB,GAAGgP,MACzB,KACF,CACF,KAAO,CACL,IAAI25kB,EAAWrolB,KAAKyhB,IAAIhf,EAAQC,GAC5B4llB,EAAWtolB,KAAKwhB,IAAI/e,EAAQC,GAChC,GAAIozjB,GAAcuyB,EAAW3jT,GAAO,GAAKoxR,IAAewyB,EAAW5jT,GAAO,EAAG,CAC3Eh2R,EAAQo9lB,EAAcpsmB,GAAGgP,MACzB,KACF,CACF,CACF,MAGA,IAAK,IAAIirB,EAAK,EAAGA,EAAK1W,EAAK0W,IACzB,GAAW,IAAPA,GAAYm8hB,IAAeoY,EAAMv0iB,GAAIm8hB,WAAaoY,EAAMv0iB,EAAK,GAAGm8hB,YAAc,GAAKn8hB,EAAK,GAAKA,EAAK1W,EAAM,GAAK6yiB,GAAcoY,EAAMv0iB,GAAIm8hB,WAAaoY,EAAMv0iB,EAAK,GAAGm8hB,YAAc,GAAKA,IAAeoY,EAAMv0iB,GAAIm8hB,WAAaoY,EAAMv0iB,EAAK,GAAGm8hB,YAAc,GAAKn8hB,IAAO1W,EAAM,GAAK6yiB,GAAcoY,EAAMv0iB,GAAIm8hB,WAAaoY,EAAMv0iB,EAAK,GAAGm8hB,YAAc,EAAG,CAClVpnjB,EAAQw/jB,EAAMv0iB,GAAIjrB,MAClB,KACF,CAGJ,OAAOA,CACT,C4CyFoB09lB,CAAyB1rlB,EAAKwtjB,EAAO09B,EAAcjjB,GACrE,GAAI3vL,GAAe,GAAK4yM,EAAc,CACpC,IAAIV,EAAcU,EAAa5yM,IAAgB4yM,EAAa5yM,GAAa57Z,MACrE0smB,EAAgBkB,IAAkBnimB,EAAOoimB,EAAWjyM,EAAakyM,GACjE5B,EA3HkB,SAA6Bx3R,EAAQ85R,EAAc5yM,EAAasyM,GACxF,IAAIp8kB,EAAQ08kB,EAAa97lB,MAAK,SAAU8zlB,GACtC,OAAOA,GAAQA,EAAKl1lB,QAAUsqZ,CAChC,IACA,GAAI9pY,EAAO,CACT,GAAe,eAAX4iT,EACF,MAAO,CACL3oT,EAAG+F,EAAM4miB,WACTviiB,EAAG+3kB,EAAS/3kB,GAGhB,GAAe,aAAXu+S,EACF,MAAO,CACL3oT,EAAGmilB,EAASnilB,EACZoK,EAAGrE,EAAM4miB,YAGb,GAAe,YAAXhkP,EAAsB,CACxB,IAAIu6R,EAASn9kB,EAAM4miB,WACfw2C,EAAUhB,EAASn5Z,OACvB,OAAO6kC,IAAcA,IAAcA,IAAc,CAAC,EAAGs0X,GAAWlb,IAAiBkb,EAAS7ye,GAAI6ye,EAAS5ye,GAAI4ze,EAASD,IAAU,CAAC,EAAG,CAChI3gf,MAAO2gf,EACPl6Z,OAAQm6Z,GAEZ,CACA,IAAIn6Z,EAASjjL,EAAM4miB,WACfpqc,EAAQ4/e,EAAS5/e,MACrB,OAAOsrH,IAAcA,IAAcA,IAAc,CAAC,EAAGs0X,GAAWlb,IAAiBkb,EAAS7ye,GAAI6ye,EAAS5ye,GAAIy5E,EAAQzmF,IAAS,CAAC,EAAG,CAC9HA,MAAOA,EACPymF,OAAQA,GAEZ,CACA,OAAOs4Z,GACT,CA0F2B8B,CAAoBz6R,EAAQo8P,EAAOl1K,EAAauyM,GACvE,MAAO,CACLxB,mBAAoB/wM,EACpBkyM,YAAaA,EACbpB,cAAeA,EACfR,iBAAkBA,EAEtB,CACA,OAAO,IACT,EAcWkD,IAAmB,SAA0Bn2jB,EAAO6kI,GAC7D,IAAIuxb,EAAOvxb,EAAMuxb,KACf7B,EAAiB1vb,EAAM0vb,eACvBnjB,EAAWvsa,EAAMusa,SACjBilB,EAAYxxb,EAAMwxb,UAClBxhB,EAAchwa,EAAMgwa,YACpBmR,EAAiBnhb,EAAMmhb,eACvBwO,EAAe3vb,EAAM2vb,aACnB/4R,EAASz7R,EAAMy7R,OACjBnvR,EAAWtM,EAAMsM,SACjBgqjB,EAAct2jB,EAAMs2jB,YAClBxjB,EAAgBhB,IAAkBr2Q,EAAQ21Q,GAG9C,OAAOglB,EAAKhvkB,QAAO,SAAUhuB,EAAQhJ,GACnC,IAAImmmB,EACA/1T,OAAyCprS,IAA5BhF,EAAMjB,KAAK2wC,aAA6B6gM,IAAcA,IAAc,CAAC,EAAGvwO,EAAMjB,KAAK2wC,cAAe1vC,EAAM4vC,OAAS5vC,EAAM4vC,MACpI7wC,EAAOqxS,EAAWrxS,KACpBqiC,EAAUgvQ,EAAWhvQ,QACrB6jjB,EAAoB70S,EAAW60S,kBAC/BZ,EAA0Bj0S,EAAWi0S,wBACrCxqc,EAAQu2J,EAAWv2J,MACnB4tb,EAAQr3R,EAAWq3R,MACnB3qiB,EAAgBszQ,EAAWtzQ,cACzB6/jB,EAASvsT,EAAW61T,GACxB,GAAIj9lB,EAAO2zlB,GACT,OAAO3zlB,EAET,IAUIiO,EAAQorkB,EAAiBM,EAVzBkT,EAAgBqO,IAAiBt0jB,EAAMt7B,KAAM,CAC/C6vlB,eAAgBA,EAAej7lB,QAAO,SAAU+gC,GAC9C,IAAIk5jB,EAEJ,OADiB8C,KAAah8jB,EAAK2F,MAAQ3F,EAAK2F,MAAMq2jB,GAA0D,QAA5C9C,EAAgBl5jB,EAAKlrC,KAAK2wC,oBAA4C,IAAlByzjB,OAA2B,EAASA,EAAc8C,MACpJtJ,CACxB,IACA/G,eAAgBA,EAChBwO,aAAcA,IAEZ5nlB,EAAMq5kB,EAAc38lB,QCtRrB,SAAiC+d,EAAQgukB,EAAmBjE,GACjE,GAAiB,WAAbA,IAA+C,IAAtBiE,GAA8BrslB,MAAMqR,QAAQgN,GAAS,CAChF,IAAImvlB,EAAyB,OAAXnvlB,QAA8B,IAAXA,OAAoB,EAASA,EAAO,GACrEovlB,EAAuB,OAAXpvlB,QAA8B,IAAXA,OAAoB,EAASA,EAAO,GAMvE,GAAMmvlB,GAAiBC,GAAalngB,GAASingB,IAAgBjngB,GAASkngB,GACpE,OAAO,CAEX,CACA,OAAO,CACT,EDmRQC,CAAwBl2T,EAAWn5R,OAAQgukB,EAAmBlmlB,KAChEkY,EAAS6tkB,IAAqB10S,EAAWn5R,OAAQ,KAAMgukB,IAKnDvC,GAA2B,WAAT3jlB,GAA+B,SAAV86I,IACzC8oc,EAAoBhC,IAAqBkV,EAAez0jB,EAAS,cAKrE,IAAImlkB,EAAgBjC,IAA2BvlmB,GAG/C,IAAKkY,GAA4B,IAAlBA,EAAO/d,OAAc,CAClC,IAAIstmB,EACAC,EAA2D,QAA5CD,EAAqBp2T,EAAWn5R,cAA2C,IAAvBuvlB,EAAgCA,EAAqBD,EAC5H,GAAInlkB,EAAS,CAGX,GADAnqB,EAAS0pkB,IAAqBkV,EAAez0jB,EAASriC,GACzC,aAATA,GAAuB2jlB,EAAe,CAExC,IAAIgkB,EpL7PY,SAAsBpwgB,GAC9C,IAAK19F,MAAMqR,QAAQqsF,GACjB,OAAO,EAIT,IAFA,IAAI95E,EAAM85E,EAAIp9F,OACV45E,EAAQ,CAAC,EACJ75E,EAAI,EAAGA,EAAIujB,EAAKvjB,IAAK,CAC5B,GAAK65E,EAAMwjB,EAAIr9F,IAGb,OAAO,EAFP65E,EAAMwjB,EAAIr9F,KAAM,CAIpB,CACA,OAAO,CACT,CoL+O0B0tmB,CAAa1vlB,GACzBotkB,GAA2BqiB,GAC7BrkB,EAAkBprkB,EAElBA,EAASmU,KAAM,EAAG5O,IACR6nkB,IAEVptkB,EAASqukB,IAA0BmhB,EAAaxvlB,EAAQjX,GAAOg3B,QAAO,SAAUgmkB,EAAav0kB,GAC3F,OAAOu0kB,EAAYvgmB,QAAQgsB,IAAU,EAAIu0kB,EAAc,GAAGzgmB,OAAOw+O,IAAmBiiX,GAAc,CAACv0kB,GACrG,GAAG,IAEP,MAAO,GAAa,aAAT1pB,EAQPkY,EANGotkB,EAMMptkB,EAAO/N,QAAO,SAAUuf,GAC/B,MAAiB,KAAVA,IAAiB+/E,KAAM//E,EAChC,IAPS68jB,IAA0BmhB,EAAaxvlB,EAAQjX,GAAOg3B,QAAO,SAAUgmkB,EAAav0kB,GAC3F,OAAOu0kB,EAAYvgmB,QAAQgsB,IAAU,GAAe,KAAVA,GAAgB+/E,KAAM//E,GAASu0kB,EAAc,GAAGzgmB,OAAOw+O,IAAmBiiX,GAAc,CAACv0kB,GACrI,GAAG,SAOA,GAAa,WAAT1pB,EAAmB,CAE5B,IAAI6nmB,E5C4BoB,SAA8BtylB,EAAMkjO,EAAOp2M,EAAS4/iB,EAAU31Q,GAC9F,IAAIo2Q,EAAUjqW,EAAMpyO,KAAI,SAAU6kC,GAChC,OAAO82iB,IAAqBzskB,EAAM21B,EAAM7I,EAASiqS,EAAQ21Q,EAC3D,IAAG93kB,QAAO,SAAUuf,GAClB,OAAQ+/E,KAAM//E,EAChB,IACA,OAAIg5jB,GAAWA,EAAQvolB,OACduolB,EAAQzqjB,QAAO,SAAUhuB,EAAQyf,GACtC,MAAO,CAAClvB,KAAKyhB,IAAIhS,EAAO,GAAIyf,EAAM,IAAKlvB,KAAKwhB,IAAI/R,EAAO,GAAIyf,EAAM,IACnE,GAAG,CAACgnD,KAAU,MAET,IACT,C4CxCgCo3hB,CAAqBhR,EAAesO,EAAej7lB,QAAO,SAAU+gC,GACxF,IAAI68jB,EAAgBC,EAChBC,EAAaf,KAAah8jB,EAAK2F,MAAQ3F,EAAK2F,MAAMq2jB,GAA2D,QAA7Ca,EAAiB78jB,EAAKlrC,KAAK2wC,oBAA6C,IAAnBo3jB,OAA4B,EAASA,EAAeb,GACzKgB,EAAW,SAAUh9jB,EAAK2F,MAAQ3F,EAAK2F,MAAMiihB,KAAqD,QAA7Ck1C,EAAiB98jB,EAAKlrC,KAAK2wC,oBAA6C,IAAnBq3jB,OAA4B,EAASA,EAAel1C,KAClK,OAAOm1C,IAAerK,IAAW7/jB,IAAkBmqkB,EACrD,IAAI7lkB,EAAS4/iB,EAAU31Q,GACnBu7R,IACF3vlB,EAAS2vlB,EAEb,EACIlkB,GAA2B,WAAT3jlB,GAA+B,SAAV86I,IACzC8oc,EAAoBhC,IAAqBkV,EAAez0jB,EAAS,YAErE,MAEEnqB,EAFSyrkB,EAEAt3jB,KAAM,EAAG5O,GACTiokB,GAAeA,EAAYkY,IAAWlY,EAAYkY,GAAQuK,UAAqB,WAATnomB,EAEtD,WAAhBmnmB,EAA2B,CAAC,EAAG,GAAK1hB,IAAuBC,EAAYkY,GAAQlY,YAAamR,EAAgBwO,GAE5G5iB,IAA6BqU,EAAesO,EAAej7lB,QAAO,SAAU+gC,GACnF,IAAI+8jB,EAAaf,KAAah8jB,EAAK2F,MAAQ3F,EAAK2F,MAAMq2jB,GAAah8jB,EAAKlrC,KAAK2wC,aAAau2jB,GACtFgB,EAAW,SAAUh9jB,EAAK2F,MAAQ3F,EAAK2F,MAAMiihB,KAAO5nhB,EAAKlrC,KAAK2wC,aAAamihB,KAC/E,OAAOm1C,IAAerK,IAAW7/jB,IAAkBmqkB,EACrD,IAAIlomB,EAAMssU,GAAQ,GAEpB,GAAa,WAATtsU,EAEFkY,EAASyllB,IAA8BxgjB,EAAUjlC,EAAQ0llB,EAAQ3b,EAAUvZ,GACvEg/B,IACFxvlB,EAAS6tkB,IAAqB2hB,EAAaxvlB,EAAQgukB,SAEhD,GAAa,aAATlmlB,GAAuB0nmB,EAAa,CAC7C,IAAIU,EAAaV,EACGxvlB,EAAO7N,OAAM,SAAUqf,GACzC,OAAO0+kB,EAAW1qmB,QAAQgsB,IAAU,CACtC,MAEExR,EAASkwlB,EAEb,CACF,CACA,OAAO52X,IAAcA,IAAc,CAAC,EAAGvnO,GAAS,CAAC,EAAG4mG,IAAgB,CAAC,EAAG+sf,EAAQpsX,IAAcA,IAAc,CAAC,EAAG6/D,GAAa,CAAC,EAAG,CAC/H4wS,SAAUA,EACV/pkB,OAAQA,EACR0rkB,kBAAmBA,EACnBN,gBAAiBA,EACjB+V,eAA8D,QAA7C+N,EAAsB/1T,EAAWn5R,cAA4C,IAAxBkvlB,EAAiCA,EAAsBI,EAC7H7jB,cAAeA,EACfr3Q,OAAQA,KAEZ,GAAG,CAAC,EACN,EAuFI+7R,IAAa,SAAoBx3jB,EAAO+zL,GAC1C,IAAI0jY,EAAiB1jY,EAAMq9W,SACzBA,OAA8B,IAAnBqmB,EAA4B,QAAUA,EACjDC,EAAW3jY,EAAM2jY,SACjBnD,EAAiBxgY,EAAMwgY,eACvB1f,EAAc9gX,EAAM8gX,YACpBmR,EAAiBjyX,EAAMiyX,eACvBwO,EAAezgY,EAAMygY,aACnBlojB,EAAWtM,EAAMsM,SACjB+pjB,EAAY,GAAG1pmB,OAAOyklB,EAAU,MAEhCglB,EAAOz7C,GAAcrugB,EAAUorjB,GAC/BxQ,EAAU,CAAC,EAsBf,OArBIkP,GAAQA,EAAK9smB,OACf49lB,EAAUiP,IAAiBn2jB,EAAO,CAChCo2jB,KAAMA,EACN7B,eAAgBA,EAChBnjB,SAAUA,EACVilB,UAAWA,EACXxhB,YAAaA,EACbmR,eAAgBA,EAChBwO,aAAcA,IAEPD,GAAkBA,EAAejrmB,SAC1C49lB,EAhGoB,SAA2BlnjB,EAAOuoN,GACxD,IAAIgsW,EAAiBhsW,EAAMgsW,eACzBoD,EAAOpvW,EAAMovW,KACbvmB,EAAW7oV,EAAM6oV,SACjBilB,EAAY9tW,EAAM8tW,UAClBxhB,EAActsV,EAAMssV,YACpBmR,EAAiBz9V,EAAMy9V,eACvBwO,EAAejsW,EAAMisW,aACnB/4R,EAASz7R,EAAMy7R,OACjBnvR,EAAWtM,EAAMsM,SACf25iB,EAAgBqO,IAAiBt0jB,EAAMt7B,KAAM,CAC/C6vlB,eAAgBA,EAChBvO,eAAgBA,EAChBwO,aAAcA,IAEZ5nlB,EAAMq5kB,EAAc38lB,OACpBwplB,EAAgBhB,IAAkBr2Q,EAAQ21Q,GAC1C/4kB,GAAS,EAMb,OAAOk8lB,EAAentkB,QAAO,SAAUhuB,EAAQhJ,GAC7C,IAKMiX,EAJF0llB,QADyC33lB,IAA5BhF,EAAMjB,KAAK2wC,aAA6B6gM,IAAcA,IAAc,CAAC,EAAGvwO,EAAMjB,KAAK2wC,cAAe1vC,EAAM4vC,OAAS5vC,EAAM4vC,OAChHq2jB,GACpB7N,EAAiBkM,IAA2B,UAChD,OAAKt7lB,EAAO2zlB,GA8BL3zlB,GA7BLf,IAEIy6kB,EACFzrkB,EAASmU,KAAM,EAAG5O,GACTiokB,GAAeA,EAAYkY,IAAWlY,EAAYkY,GAAQuK,UACnEjwlB,EAASutkB,IAAuBC,EAAYkY,GAAQlY,YAAamR,EAAgBwO,GACjFntlB,EAASyllB,IAA8BxgjB,EAAUjlC,EAAQ0llB,EAAQ3b,KAEjE/pkB,EAAS6tkB,IAAqBsT,EAAgB5W,IAA6BqU,EAAesO,EAAej7lB,QAAO,SAAU+gC,GACxH,IAAIu9jB,EAAgBC,EAChBT,EAAaf,KAAah8jB,EAAK2F,MAAQ3F,EAAK2F,MAAMq2jB,GAA2D,QAA7CuB,EAAiBv9jB,EAAKlrC,KAAK2wC,oBAA6C,IAAnB83jB,OAA4B,EAASA,EAAevB,GACzKgB,EAAW,SAAUh9jB,EAAK2F,MAAQ3F,EAAK2F,MAAMiihB,KAAqD,QAA7C41C,EAAiBx9jB,EAAKlrC,KAAK2wC,oBAA6C,IAAnB+3jB,OAA4B,EAASA,EAAe51C,KAClK,OAAOm1C,IAAerK,IAAWsK,CACnC,IAAI,SAAU57R,GAASk8R,EAAK73jB,aAAau1iB,mBACzChukB,EAASyllB,IAA8BxgjB,EAAUjlC,EAAQ0llB,EAAQ3b,IAE5DzwW,IAAcA,IAAc,CAAC,EAAGvnO,GAAS,CAAC,EAAG4mG,IAAgB,CAAC,EAAG+sf,EAAQpsX,IAAcA,IAAc,CAC1GywW,SAAUA,GACTumB,EAAK73jB,cAAe,CAAC,EAAG,CACzBmihB,MAAM,EACN/2jB,YAAayK,KAAIu+lB,IAAY,GAAGvnmB,OAAOyklB,EAAU,KAAKzklB,OAAO0L,EAAQ,GAAI,MACzEgP,OAAQA,EACRmhlB,eAAgBA,EAChB1V,cAAeA,EACfr3Q,OAAQA,MAMd,GAAG,CAAC,EACN,CAqCcq8R,CAAkB93jB,EAAO,CACjC23jB,KAAMD,EACNnD,eAAgBA,EAChBnjB,SAAUA,EACVilB,UAAWA,EACXxhB,YAAaA,EACbmR,eAAgBA,EAChBwO,aAAcA,KAGXtN,CACT,EAmBW6Q,IAAqB,SAA4B/3jB,GAC1D,IAAIsM,EAAWtM,EAAMsM,SACnB0rjB,EAAqBh4jB,EAAMg4jB,mBACzBC,EAAYp9C,GAAgBvugB,EAAU4piB,KACtC1pX,EAAa,EACbovL,EAAW,EAYf,OAXI57W,EAAMt7B,MAA8B,IAAtBs7B,EAAMt7B,KAAKpb,SAC3BsyZ,EAAW57W,EAAMt7B,KAAKpb,OAAS,GAE7B2umB,GAAaA,EAAUj4jB,QACrBi4jB,EAAUj4jB,MAAMwsL,YAAc,IAChCA,EAAayrY,EAAUj4jB,MAAMwsL,YAE3ByrY,EAAUj4jB,MAAM47W,UAAY,IAC9BA,EAAWq8M,EAAUj4jB,MAAM47W,WAGxB,CACLu5M,OAAQ,EACRC,OAAQ,EACRpP,eAAgBx5X,EAChBgoY,aAAc54M,EACd83M,oBAAqB,EACrBwE,gBAAiBh+lB,QAAQ89lB,GAE7B,EAUIG,IAAsB,SAA6B18R,GACrD,MAAe,eAAXA,EACK,CACL28R,gBAAiB,QACjBC,aAAc,SAGH,aAAX58R,EACK,CACL28R,gBAAiB,QACjBC,aAAc,SAGH,YAAX58R,EACK,CACL28R,gBAAiB,aACjBC,aAAc,aAGX,CACLD,gBAAiB,YACjBC,aAAc,aAElB,EAWI7pc,IAAkB,SAAyB4lE,EAAOkkY,GACpD,IAAIt4jB,EAAQo0L,EAAMp0L,MAEhBu4jB,GADiBnkY,EAAMmgY,eACNngY,EAAMi2X,UACvBA,OAA8B,IAAnBkO,EAA4B,CAAC,EAAIA,EAC5CC,EAAiBpkY,EAAMk2X,SACvBA,OAA8B,IAAnBkO,EAA4B,CAAC,EAAIA,EAC1CpumB,EAAQ41C,EAAM51C,MAChBN,EAASk2C,EAAMl2C,OACfwiD,EAAWtM,EAAMsM,SACfviD,EAASi2C,EAAMj2C,QAAU,CAAC,EAC1BkumB,EAAYp9C,GAAgBvugB,EAAU4piB,KACtC7F,EAAax1B,GAAgBvugB,EAAU45gB,IACvCuyC,EAAUtqmB,OAAOC,KAAKk8lB,GAAUljkB,QAAO,SAAUhuB,EAAQwS,GAC3D,IAAIiN,EAAQyxkB,EAAS1+kB,GACjB1gB,EAAc2tB,EAAM3tB,YACxB,OAAK2tB,EAAM+ukB,QAAW/ukB,EAAMopiB,KAGrB7ojB,EAFEunO,IAAcA,IAAc,CAAC,EAAGvnO,GAAS,CAAC,EAAG4mG,IAAgB,CAAC,EAAG90G,EAAakO,EAAOlO,GAAe2tB,EAAMzuB,OAGrH,GAAG,CACDZ,KAAMO,EAAOP,MAAQ,EACrBmK,MAAO5J,EAAO4J,OAAS,IAErB+kmB,EAAUvqmB,OAAOC,KAAKi8lB,GAAUjjkB,QAAO,SAAUhuB,EAAQwS,GAC3D,IAAIiN,EAAQwxkB,EAASz+kB,GACjB1gB,EAAc2tB,EAAM3tB,YACxB,OAAK2tB,EAAM+ukB,QAAW/ukB,EAAMopiB,KAGrB7ojB,EAFEunO,IAAcA,IAAc,CAAC,EAAGvnO,GAAS,CAAC,EAAG4mG,IAAgB,CAAC,EAAG90G,EAAayK,KAAIyD,EAAQ,GAAGzM,OAAOzB,IAAgB2tB,EAAM/uB,QAGrI,GAAG,CACDL,IAAKM,EAAON,KAAO,EACnB8E,OAAQxE,EAAOwE,QAAU,IAEvB00D,EAAS09K,IAAcA,IAAc,CAAC,EAAG+3X,GAAUD,GACnDE,EAAc11iB,EAAO10D,OACrB0pmB,IACFh1iB,EAAO10D,QAAU0pmB,EAAUj4jB,MAAMl2C,QAAUoslB,IAAMp2iB,aAAah2C,QAE5DumlB,GAAcioB,IAEhBr1iB,E5CvV8B,SAA8BA,EAAQ8sb,EAAS/vc,EAAO44jB,GACtF,IAAItsjB,EAAWtM,EAAMsM,SACnBliD,EAAQ41C,EAAM51C,MACdL,EAASi2C,EAAMj2C,OACbomlB,EAAc/llB,GAASL,EAAOP,MAAQ,IAAMO,EAAO4J,OAAS,GAC5D68kB,EAAcP,IAAe,CAC/B3jiB,SAAUA,EACV6jiB,YAAaA,IAEf,GAAIK,EAAa,CACf,IAAIz8W,EAAQ6kY,GAAa,CAAC,EACxBC,EAAW9kY,EAAM3pO,MACjB0umB,EAAY/kY,EAAMjqO,OAChBq8B,EAAQqqjB,EAAYrqjB,MACtB2E,EAAgB0ljB,EAAY1ljB,cAC5B2wS,EAAS+0Q,EAAY/0Q,OACvB,IAAgB,aAAXA,GAAoC,eAAXA,GAA6C,WAAlB3wS,IAAyC,WAAV3E,GAAsBopE,GAAStsC,EAAO98B,IAC5H,OAAOw6M,IAAcA,IAAc,CAAC,EAAG19K,GAAS,CAAC,EAAG+8C,IAAgB,CAAC,EAAG75E,EAAO88B,EAAO98B,IAAU0ykB,GAAY,KAE9G,IAAgB,eAAXp9R,GAAsC,aAAXA,GAAmC,WAAVt1S,IAAyC,WAAlB2E,GAA8BykE,GAAStsC,EAAOn4B,IAC5H,OAAO61M,IAAcA,IAAc,CAAC,EAAG19K,GAAS,CAAC,EAAG+8C,IAAgB,CAAC,EAAGl1E,EAAem4B,EAAOn4B,IAAkBgukB,GAAa,IAEjI,CACA,OAAO71iB,CACT,C4C+Ta81iB,CAAqB91iB,EAAQsxiB,EAAgBv0jB,EAAOs4jB,IAE/D,IAAIl2f,EAAch4G,EAAQ64D,EAAOz5D,KAAOy5D,EAAOtvD,MAC3C4uG,EAAez4G,EAASm5D,EAAOx5D,IAAMw5D,EAAO10D,OAChD,OAAOoyO,IAAcA,IAAc,CACjCg4X,YAAaA,GACZ11iB,GAAS,CAAC,EAAG,CAEd74D,MAAOT,KAAKwhB,IAAIi3F,EAAa,GAC7Bt4G,OAAQH,KAAKwhB,IAAIo3F,EAAc,IAEnC,EAEIy2f,IAAuB,SAA8BC,EAASC,GAChE,MAAiB,UAAbA,EACKD,EAAQC,GAAU9umB,MAEV,UAAb8umB,EACKD,EAAQC,GAAUpvmB,YAD3B,CAKF,EACWqvmB,IAA2B,SAAkCvkY,GACtE,IAAIuyX,EAAYvyX,EAAMuyX,UACpBiS,EAAiBxkY,EAAMwkY,eACvBC,EAAwBzkY,EAAM0kY,wBAC9BA,OAAoD,IAA1BD,EAAmC,OAASA,EACtEE,EAAwB3kY,EAAM4kY,0BAC9BA,OAAsD,IAA1BD,EAAmC,CAAC,QAAUA,EAC1EE,EAAiB7kY,EAAM6kY,eACvBrpB,EAAgBx7W,EAAMw7W,cACtB6W,EAAgBryX,EAAMqyX,cACtBnnjB,EAAe80L,EAAM90L,aACnB45jB,EAAiB,SAAwB15jB,EAAO41T,GAClD,IAAI2+P,EAAiB3+P,EAAa2+P,eAChC1f,EAAcj/O,EAAai/O,YAC3B5xhB,EAAS2yS,EAAa3yS,OACtBo2hB,EAAWzjP,EAAayjP,SACxB2M,EAAiBpwP,EAAaowP,eAC9BwO,EAAe5+P,EAAa4+P,aAC1BmF,EAAU35jB,EAAM25jB,QAClBl+R,EAASz7R,EAAMy7R,OACfm+R,EAAS55jB,EAAM45jB,OACf1R,EAAiBlojB,EAAMkojB,eACvB2R,EAAmB75jB,EAAM85jB,WACvBC,EAAuB5B,IAAoB18R,GAC7C28R,EAAkB2B,EAAqB3B,gBACvCC,EAAe0B,EAAqB1B,aAClC7Q,EAtIkB,SAA6B+M,GACrD,SAAKA,IAAmBA,EAAejrmB,SAGhCirmB,EAAeh7lB,MAAK,SAAU8gC,GACnC,IAAIjkC,EAAO6mN,GAAe5iL,GAAQA,EAAKlrC,MACvC,OAAOiH,GAAQA,EAAKvJ,QAAQ,QAAU,CACxC,GACF,CA8HiBmtmB,CAAoBzF,GAC7B0F,EAAiB,GA4FrB,OA3FA1F,EAAetrmB,SAAQ,SAAUoxC,EAAMhiC,GACrC,IAAI4tlB,EAAgBqO,IAAiBt0jB,EAAMt7B,KAAM,CAC/C6vlB,eAAgB,CAACl6jB,GACjB2rjB,eAAgBA,EAChBwO,aAAcA,IAEZlsH,OAAuClze,IAA3BilC,EAAKlrC,KAAK2wC,aAA6B6gM,IAAcA,IAAc,CAAC,EAAGtmM,EAAKlrC,KAAK2wC,cAAezF,EAAK2F,OAAS3F,EAAK2F,MAC/HxO,EAAU82c,EAAU92c,QACtB0okB,EAAkB5xH,EAAUwxH,WAE1BK,EAAgB7xH,EAAU,GAAG37e,OAAOyrmB,EAAiB,OAErDgC,EAAa9xH,EAAU,GAAG37e,OAAO0rmB,EAAc,OAE/CY,EAAUQ,EAAerykB,QAAO,SAAUhuB,EAAQyf,GACpD,IAEIqukB,EAAUtxP,EAAa,GAAGjpW,OAAOksB,EAAMu4jB,SAAU,QAEjDxlkB,EAAK08d,EAAU,GAAG37e,OAAOksB,EAAMu4jB,SAAU,OAO3C8V,GAAWA,EAAQt7kB,IAA0B,UAAnBiN,EAAMu4jB,UAE2PtqX,IAAU,GAGvS,IAAIwrX,EAAO4U,EAAQt7kB,GACnB,OAAO+0N,IAAcA,IAAc,CAAC,EAAGvnO,GAAS,CAAC,EAAG4mG,IAAgBA,IAAgB,CAAC,EAAGnnF,EAAMu4jB,SAAUkB,GAAO,GAAG3llB,OAAOksB,EAAMu4jB,SAAU,SAAUiB,IAAeC,IACpK,GApB0B,CAAC,GAqBvB+nB,EAAWpB,EAAQZ,GACnBiC,EAAYrB,EAAQ,GAAGtsmB,OAAO0rmB,EAAc,UAC5CtjB,EAAcF,GAAeA,EAAYslB,IAAkBtlB,EAAYslB,GAAe7C,U5C6L9D,SAA8Bj9jB,EAAMw6iB,GACpE,IAAI0lB,EAEAzlB,GAD+C,QAA7BylB,EAAclgkB,EAAKlrC,YAAkC,IAAhBormB,GAA0BA,EAAYz6jB,aAAe6gM,IAAcA,IAAc,CAAC,EAAGtmM,EAAKlrC,KAAK2wC,cAAezF,EAAK2F,OAAS3F,EAAK2F,OAC/J80iB,QAC7B,GAAIz8B,GAAWy8B,GAAU,CACvB,IAAI/of,EAAQ8of,EAAYC,GACxB,GAAI/of,EAAO,CACT,IAAIm1R,EAAYn1R,EAAM67I,MAAM/6O,QAAQwtC,GACpC,OAAO6mV,GAAa,EAAIn1R,EAAMgpf,YAAY7zN,GAAa,IACzD,CACF,CACA,OAAO,IACT,C4CzM4Gs5O,CAAqBngkB,EAAMw6iB,EAAYslB,GAAetlB,aACxJ4lB,EAAYx9Y,GAAe5iL,EAAKlrC,MAAMtC,QAAQ,QAAU,EACxD2nlB,EAAWc,IAAkB+kB,EAAUC,GACvCzU,EAAc,GACd6U,EAAWlT,G5C7jBO,SAAwB3ib,GAClD,IAAI81b,EAAa91b,EAAM80b,QACrBiB,EAAY/1b,EAAM+1b,UAClBC,EAAoBh2b,EAAMgwa,YAC1BA,OAAoC,IAAtBgmB,EAA+B,CAAC,EAAIA,EACpD,IAAKhmB,EACH,MAAO,CAAC,EAIV,IAFA,IAAIz7kB,EAAS,CAAC,EACV0hmB,EAAiB3smB,OAAOC,KAAKymlB,GACxBxrlB,EAAI,EAAGujB,EAAMkulB,EAAexxmB,OAAQD,EAAIujB,EAAKvjB,IAGpD,IAFA,IAAI0xmB,EAAMlmB,EAAYimB,EAAezxmB,IAAIwrlB,YACrCmmB,EAAW7smB,OAAOC,KAAK2smB,GAClB/0lB,EAAI,EAAGi1lB,EAAOD,EAAS1xmB,OAAQ0c,EAAIi1lB,EAAMj1lB,IAAK,CACrD,IAAIk1lB,EAAkBH,EAAIC,EAASh1lB,IACjC4hO,EAAQszX,EAAgBtzX,MACxBwyX,EAAac,EAAgBd,WAC3Be,EAAWvzX,EAAMtuO,QAAO,SAAU+gC,GACpC,OAAO4iL,GAAe5iL,EAAKlrC,MAAMtC,QAAQ,QAAU,CACrD,IACA,GAAIsumB,GAAYA,EAAS7xmB,OAAQ,CAC/B,IAAI8xmB,EAAsBD,EAAS,GAAGhsmB,KAAK2wC,aACvCu7jB,OAAuCjmmB,IAAxBgmmB,EAAoCz6X,IAAcA,IAAc,CAAC,EAAGy6X,GAAsBD,EAAS,GAAGn7jB,OAASm7jB,EAAS,GAAGn7jB,MAC1Is7jB,EAAWD,EAAa1B,QACxB4B,EAASF,EAAajB,GACrBhhmB,EAAOmimB,KACVnimB,EAAOmimB,GAAU,IAEnB,IAAI5B,EAAU/ggB,KAAM0igB,GAAYX,EAAaW,EAC7ClimB,EAAOmimB,GAAQvxmB,KAAK,CAClBqwC,KAAM8gkB,EAAS,GACfK,UAAWL,EAAShumB,MAAM,GAC1BwsmB,QAAS/ggB,KAAM+ggB,QAAWvkmB,EAAYkjjB,GAAgBqhD,EAASiB,EAAW,IAE9E,CACF,CAEF,OAAOxhmB,CACT,C4CuhB+BqimB,CAAe,CACtC9B,QAASA,EACT9kB,YAAaA,EACb+lB,UAAW5B,IAAqBC,EAASZ,KAE3C,GAAIoC,EAAW,CACb,IAAI5kY,EAAO6lY,EAEP5B,EAAalhgB,KAAMshgB,GAAmBL,EAAmBK,EACzDyB,EAA4K,QAA7J9lY,EAAgF,QAAvE6lY,EAAqBpmB,IAAkB+kB,EAAUC,GAAW,UAA0C,IAAvBoB,EAAgCA,EAAqB5B,SAAkC,IAAVjkY,EAAmBA,EAAQ,EACnNgwX,E5CphBoB,SAAwBt9V,GAClD,IAAIqxW,EAASrxW,EAAMqxW,OACjB1R,EAAiB3/V,EAAM2/V,eACvB1T,EAAWjsV,EAAMisV,SACjBonB,EAAiBrzW,EAAMmyW,SACvBA,OAA8B,IAAnBkB,EAA4B,GAAKA,EAC5C9B,EAAavxW,EAAMuxW,WACjBltlB,EAAM8tlB,EAASpxmB,OACnB,GAAIsjB,EAAM,EAAG,OAAO,KACpB,IACIxT,EADAyimB,EAAavjD,GAAgBshD,EAAQplB,EAAU,GAAG,GAElDhpiB,EAAe,GAGnB,GAAIkvjB,EAAS,GAAGf,WAAae,EAAS,GAAGf,QAAS,CAChD,IAAImC,GAAU,EACVC,EAAcvnB,EAAW5nkB,EAEzB8tF,EAAMgggB,EAAStzkB,QAAO,SAAU2D,EAAKlS,GACvC,OAAOkS,EAAMlS,EAAM8glB,SAAW,CAChC,GAAG,IACHj/f,IAAQ9tF,EAAM,GAAKivlB,IACRrnB,IACT95e,IAAQ9tF,EAAM,GAAKivlB,EACnBA,EAAa,GAEXnhgB,GAAO85e,GAAYunB,EAAc,IACnCD,GAAU,EAEVphgB,EAAM9tF,GADNmvlB,GAAe,KAGjB,IACIh3kB,EAAO,CACTk+B,SAFYuxhB,EAAW95e,GAAO,EAAK,GAElBmhgB,EACjBrxlB,KAAM,GAERpR,EAASshmB,EAAStzkB,QAAO,SAAU2D,EAAKlS,GACtC,IAAImjlB,EAAc,CAChB3hkB,KAAMxhB,EAAMwhB,KACZ7mC,SAAU,CACRyvD,OAAQl+B,EAAKk+B,OAASl+B,EAAKva,KAAOqxlB,EAElCrxlB,KAAMsxlB,EAAUC,EAAcljlB,EAAM8glB,UAGpCsC,EAAS,GAAGtvmB,OAAOw+O,IAAmBpgN,GAAM,CAACixkB,IAUjD,OATAj3kB,EAAOk3kB,EAAOA,EAAO3ymB,OAAS,GAAGkK,SAC7BqlB,EAAM2ilB,WAAa3ilB,EAAM2ilB,UAAUlymB,QACrCuvB,EAAM2ilB,UAAUvymB,SAAQ,SAAUoxC,GAChC4hkB,EAAOjymB,KAAK,CACVqwC,KAAMA,EACN7mC,SAAUuxB,GAEd,IAEKk3kB,CACT,GAAGzwjB,EACL,KAAO,CACL,IAAIsrG,EAAUwha,GAAgB4vC,EAAgB1T,EAAU,GAAG,GACvDA,EAAW,EAAI19b,GAAWlqI,EAAM,GAAKivlB,GAAc,IACrDA,EAAa,GAEf,IAAIK,GAAgB1nB,EAAW,EAAI19b,GAAWlqI,EAAM,GAAKivlB,GAAcjvlB,EACnEsvlB,EAAe,IACjBA,IAAiB,GAEnB,IAAI1xlB,EAAOsvlB,KAAgBA,EAAanwmB,KAAKyhB,IAAI8wlB,EAAcpC,GAAcoC,EAC7E9imB,EAASshmB,EAAStzkB,QAAO,SAAU2D,EAAKlS,EAAOxvB,GAC7C,IAAI4ymB,EAAS,GAAGtvmB,OAAOw+O,IAAmBpgN,GAAM,CAAC,CAC/CsP,KAAMxhB,EAAMwhB,KACZ7mC,SAAU,CACRyvD,OAAQ6zF,GAAWold,EAAeL,GAAcxymB,GAAK6ymB,EAAe1xlB,GAAQ,EAC5EA,KAAMA,MAWV,OARIqO,EAAM2ilB,WAAa3ilB,EAAM2ilB,UAAUlymB,QACrCuvB,EAAM2ilB,UAAUvymB,SAAQ,SAAUoxC,GAChC4hkB,EAAOjymB,KAAK,CACVqwC,KAAMA,EACN7mC,SAAUyomB,EAAOA,EAAO3ymB,OAAS,GAAGkK,UAExC,IAEKyomB,CACT,GAAGzwjB,EACL,CACA,OAAOpyC,CACT,C4C6bsB+imB,CAAe,CAC3BvC,OAAQA,EACR1R,eAAgBA,EAChB1T,SAAUmnB,IAAgBnnB,EAAWmnB,EAAcnnB,EACnDkmB,SAAUA,EAASN,GACnBN,WAAYA,IAEV6B,IAAgBnnB,IAClBqR,EAAcA,EAAYrwlB,KAAI,SAAU6U,GACtC,OAAOs2N,IAAcA,IAAc,CAAC,EAAGt2N,GAAM,CAAC,EAAG,CAC/C7W,SAAUmtO,IAAcA,IAAc,CAAC,EAAGt2N,EAAI7W,UAAW,CAAC,EAAG,CAC3DyvD,OAAQ54C,EAAI7W,SAASyvD,OAAS04iB,EAAc,KAGlD,IAEJ,CAEA,IhLtdgDvrmB,EAAOk8C,EgLsdnD8vjB,EAAa/hkB,GAAQA,EAAKlrC,MAAQkrC,EAAKlrC,KAAKktmB,gBAC5CD,GACFnC,EAAejwmB,KAAK,CAClBg2C,MAAO2gM,IAAcA,IAAc,CAAC,EAAGy7X,EAAWz7X,IAAcA,IAAc,CAAC,EAAGs4X,GAAU,CAAC,EAAG,CAC9FhT,cAAeA,EACfjmjB,MAAOA,EACPxO,QAASA,EACT6I,KAAMA,EACNm6iB,SAAUA,EACVqR,YAAaA,EACb5iiB,OAAQA,EACR8xhB,YAAaA,EACbt5Q,OAAQA,EACRuqR,eAAgBA,EAChBwO,aAAcA,MACV,CAAC,EAAGx0f,IAAgBA,IAAgBA,IAAgB,CACxD/yG,IAAKotC,EAAKptC,KAAO,QAAQN,OAAO0L,IAC/B+/lB,EAAiBa,EAAQb,IAAmBC,EAAcY,EAAQZ,IAAgB,cAAehf,IACpGijB,YhLxe4ClsmB,EgLwehBiqC,EhLxeuBiS,EgLwejBtM,EAAMsM,ShLvezCqjD,GAAQrjD,GAAUz/C,QAAQuD,IgLwezBiqC,KAAMA,GAGZ,IACO4/jB,CACT,EAgBIsC,EAA4C,SAAmDhlT,EAAOtvD,GACxG,IAAIjoN,EAAQu3Q,EAAMv3Q,MAChBgmjB,EAAiBzuS,EAAMyuS,eACvBwO,EAAej9S,EAAMi9S,aACrBnb,EAAW9hS,EAAM8hS,SACnB,IAAKv+B,GAAoB,CACvB96gB,MAAOA,IAEP,OAAO,KAET,IAAIsM,EAAWtM,EAAMsM,SACnBmvR,EAASz7R,EAAMy7R,OACf66R,EAAct2jB,EAAMs2jB,YACpB5xlB,EAAOs7B,EAAMt7B,KACb83lB,EAAoBx8jB,EAAMw8jB,kBACxBC,EAAwBtE,IAAoB18R,GAC9C28R,EAAkBqE,EAAsBrE,gBACxCC,EAAeoE,EAAsBpE,aACnC9D,EAAiB55C,GAAcrugB,EAAU8sjB,GACzCvkB,E5ChD4B,SAAgCnwkB,EAAMg4lB,EAAQvC,EAAeC,EAAYrmB,EAAYyoB,GACvH,IAAK93lB,EACH,OAAO,KAIT,IAEImwkB,GAFQ2nB,EAAoBE,EAAOnohB,UAAYmohB,GAE3Bt1kB,QAAO,SAAUhuB,EAAQihC,GAC/C,IAAIsikB,EACAzrB,EAA+C,QAA7ByrB,EAActikB,EAAKlrC,YAAkC,IAAhBwtmB,GAA0BA,EAAY78jB,aAAe6gM,IAAcA,IAAc,CAAC,EAAGtmM,EAAKlrC,KAAK2wC,cAAezF,EAAK2F,OAAS3F,EAAK2F,MACxL80iB,EAAU5D,EAAe4D,QAE7B,GADS5D,EAAejvB,KAEtB,OAAO7ojB,EAET,IAAI2zlB,EAAS7b,EAAeipB,GACxByC,EAAcxjmB,EAAO2zlB,IAAW,CAClCuK,UAAU,EACVziB,YAAa,CAAC,GAEhB,GAAIx8B,GAAWy8B,GAAU,CACvB,IAAI+nB,EAAaD,EAAY/nB,YAAYC,IAAY,CACnDqlB,cAAeA,EACfC,WAAYA,EACZxyX,MAAO,IAETi1X,EAAWj1X,MAAM59O,KAAKqwC,GACtBuikB,EAAYtF,UAAW,EACvBsF,EAAY/nB,YAAYC,GAAW+nB,CACrC,MACED,EAAY/nB,YAAY34e,GAAS,cAAgB,CAC/Ci+f,cAAeA,EACfC,WAAYA,EACZxyX,MAAO,CAACvtM,IAGZ,OAAOsmM,IAAcA,IAAc,CAAC,EAAGvnO,GAAS,CAAC,EAAG4mG,IAAgB,CAAC,EAAG+sf,EAAQ6P,GAClF,GA/BoC,CAAC,GAiCrC,OAAOzumB,OAAOC,KAAKymlB,GAAaztjB,QAAO,SAAUhuB,EAAQ2zlB,GACvD,IAAIhhgB,EAAQ8of,EAAYkY,GAaxB,OAZIhhgB,EAAMurgB,WAERvrgB,EAAM8of,YAAc1mlB,OAAOC,KAAK29F,EAAM8of,aAAaztjB,QAAO,SAAU2D,EAAK+pjB,GACvE,IAAI/2jB,EAAIguE,EAAM8of,YAAYC,GAC1B,OAAOn0W,IAAcA,IAAc,CAAC,EAAG51M,GAAM,CAAC,EAAGi1E,IAAgB,CAAC,EAAG80e,EAAS,CAC5EqlB,cAAeA,EACfC,WAAYA,EACZxyX,MAAO7pN,EAAE6pN,MACTmtW,YAAalB,IAAenvkB,EAAMqZ,EAAE6pN,MAAOmsW,KAE/C,GAT8B,CAAC,IAW1BpzW,IAAcA,IAAc,CAAC,EAAGvnO,GAAS,CAAC,EAAG4mG,IAAgB,CAAC,EAAG+sf,EAAQhhgB,GAClF,GAhBkC,CAAC,EAiBrC,C4CRsB+wgB,CAAuBp4lB,EAAM6vlB,EAAgB,GAAG5nmB,OAAOyrmB,EAAiB,MAAO,GAAGzrmB,OAAO0rmB,EAAc,MAAO/B,EAAakG,GACzIvD,EAAUQ,EAAerykB,QAAO,SAAUhuB,EAAQyf,GACpD,IAAIziB,EAAO,GAAGzJ,OAAOksB,EAAMu4jB,SAAU,OACrC,OAAOzwW,IAAcA,IAAc,CAAC,EAAGvnO,GAAS,CAAC,EAAG4mG,IAAgB,CAAC,EAAG5pG,EAAMohmB,IAAWx3jB,EAAO2gM,IAAcA,IAAc,CAAC,EAAG9nN,GAAQ,CAAC,EAAG,CAC1I07kB,eAAgBA,EAChB1f,YAAah8jB,EAAMu4jB,WAAagnB,GAAmBvjB,EACnDmR,eAAgBA,EAChBwO,aAAcA,MAElB,GAAG,CAAC,GACAvxiB,EAASurG,IAAgBmyE,IAAcA,IAAc,CAAC,EAAGs4X,GAAU,CAAC,EAAG,CACzEj5jB,MAAOA,EACPu0jB,eAAgBA,IACA,OAAdtsW,QAAoC,IAAdA,OAAuB,EAASA,EAAU80W,YACpE5umB,OAAOC,KAAK6qmB,GAAShwmB,SAAQ,SAAUgE,GACrCgsmB,EAAQhsmB,GAAOg6lB,EAAcjnjB,EAAOi5jB,EAAQhsmB,GAAMg2D,EAAQh2D,EAAI4O,QAAQ,MAAO,IAAKsrlB,EACpF,IACA,IACI6V,EArUoB,SAA+B9V,GACzD,IAAI5U,EAAO95B,GAAsB0uC,GAC7BqO,EAAeljB,IAAeC,GAAM,GAAO,GAC/C,MAAO,CACLijB,aAAcA,EACdD,oBAAqBrogB,KAAOsogB,GAAc,SAAU96kB,GAClD,OAAOA,EAAEgliB,UACX,IACAq1C,YAAaxiB,EACbqhB,oBAAqBre,IAAkBhD,EAAMijB,GAEjD,CA0TmB0H,CADGhE,EAAQ,GAAGtsmB,OAAO0rmB,EAAc,SAE9CnoB,EAA0BwpB,EAAe15jB,EAAO2gM,IAAcA,IAAc,CAAC,EAAGs4X,GAAU,CAAC,EAAG,CAChGjT,eAAgBA,EAChBwO,aAAcA,EACdnb,SAAUA,EACVkb,eAAgBA,EAChB1f,YAAaA,EACb5xhB,OAAQA,KAEV,OAAO09K,IAAcA,IAAc,CACjCuvW,wBAAyBA,EACzBqkB,eAAgBA,EAChBtxiB,OAAQA,EACR4xhB,YAAaA,GACZmoB,GAAW/D,EAChB,EACIiE,EAAuC,SAAUC,GACnD,SAASD,EAAwBhpY,GAC/B,IAAIkpY,EAAWC,EACXz6kB,EAmqBJ,OAz/CN,SAAyBujC,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CAu1BlJooO,CAAgBh3O,KAAM+0mB,GAEtBl9f,IADAp9E,EAAQynZ,IAAWlib,KAAM+0mB,EAAyB,CAAChpY,IAC5B,qBAAsBrpO,OAAO,yBACpDm1G,IAAgBp9E,EAAO,uBAAwB,IAAI8qkB,KACnD1tf,IAAgBp9E,EAAO,0BAA0B,SAAUupH,GACzD,GAAIA,EAAK,CACP,IAAI80W,EAAcr+d,EAAMpwB,MACtBwzlB,EAAiB/kG,EAAY+kG,eAC7BwO,EAAevzG,EAAYuzG,aAC3Bnb,EAAWp4F,EAAYo4F,SACzBz2jB,EAAMy7E,SAASsiI,IAAc,CAC3Bo8X,WAAY5wd,GACXowd,EAA0C,CAC3Cv8jB,MAAOpd,EAAMod,MACbgmjB,eAAgBA,EAChBwO,aAAcA,EACdnb,SAAUA,GACT14W,IAAcA,IAAc,CAAC,EAAG/9M,EAAMpwB,OAAQ,CAAC,EAAG,CACnDuqmB,WAAY5wd,MAEhB,CACF,IACAnsC,IAAgBp9E,EAAO,0BAA0B,SAAU06kB,EAAK54lB,EAAMs+J,GACpE,GAAIpgJ,EAAMod,MAAMu9jB,SAAWD,EAAK,CAC9B,GAAIt6b,IAAYpgJ,EAAM46kB,oBAAwD,oBAA3B56kB,EAAMod,MAAMy9jB,WAC7D,OAEF76kB,EAAM86kB,eAAeh5lB,EACvB,CACF,IACAs7F,IAAgBp9E,EAAO,qBAAqB,SAAU+0R,GACpD,IAAInrF,EAAamrF,EAAMnrF,WACrBovL,EAAWjkG,EAAMikG,SAEnB,GAAIpvL,IAAe5pM,EAAMpwB,MAAMwzlB,gBAAkBpqM,IAAah5X,EAAMpwB,MAAMgimB,aAAc,CACtF,IAAInb,EAAWz2jB,EAAMpwB,MAAM6mlB,SAC3Bz2jB,EAAMy7E,UAAS,WACb,OAAOsiI,IAAc,CACnBqlX,eAAgBx5X,EAChBgoY,aAAc54M,GACb2gN,EAA0C,CAC3Cv8jB,MAAOpd,EAAMod,MACbgmjB,eAAgBx5X,EAChBgoY,aAAc54M,EACdy9L,SAAUA,GACTz2jB,EAAMpwB,OACX,IACAowB,EAAM+6kB,iBAAiB,CACrB3X,eAAgBx5X,EAChBgoY,aAAc54M,GAElB,CACF,IAMA57S,IAAgBp9E,EAAO,oBAAoB,SAAUjN,GACnD,IAAIiolB,EAAQh7kB,EAAMi7kB,aAAalolB,GAC/B,GAAIiolB,EAAO,CACT,IAAIE,EAAan9X,IAAcA,IAAc,CAAC,EAAGi9X,GAAQ,CAAC,EAAG,CAC3D1F,iBAAiB,IAEnBt1kB,EAAMy7E,SAASy/f,GACfl7kB,EAAM+6kB,iBAAiBG,GACvB,IAAI1oX,EAAexyN,EAAMod,MAAMo1M,aAC3BriO,KAAWqiO,IACbA,EAAa0oX,EAAYnolB,EAE7B,CACF,IACAqqF,IAAgBp9E,EAAO,2BAA2B,SAAUjN,GAC1D,IAAIiolB,EAAQh7kB,EAAMi7kB,aAAalolB,GAC3BqhV,EAAY4mQ,EAAQj9X,IAAcA,IAAc,CAAC,EAAGi9X,GAAQ,CAAC,EAAG,CAClE1F,iBAAiB,IACd,CACHA,iBAAiB,GAEnBt1kB,EAAMy7E,SAAS24P,GACfp0U,EAAM+6kB,iBAAiB3mQ,GACvB,IAAI54F,EAAcx7O,EAAMod,MAAMo+N,YAC1BrrP,KAAWqrP,IACbA,EAAY44F,EAAWrhV,EAE3B,IAMAqqF,IAAgBp9E,EAAO,wBAAwB,SAAUr1B,GACvDq1B,EAAMy7E,UAAS,WACb,MAAO,CACL65f,iBAAiB,EACjB/4G,WAAY5xf,EACZkmmB,cAAelmmB,EAAGm1lB,eAClBuQ,iBAAkB1lmB,EAAGy5lB,iBAAmB,CACtCl0kB,EAAGvlB,EAAG60H,GACNllG,EAAG3vB,EAAG80H,IAGZ,GACF,IAKAriB,IAAgBp9E,EAAO,wBAAwB,WAC7CA,EAAMy7E,UAAS,WACb,MAAO,CACL65f,iBAAiB,EAErB,GACF,IAMAl4f,IAAgBp9E,EAAO,mBAAmB,SAAUjN,GAClDA,EAAEykC,UACFx3B,EAAMm7kB,gCAAgCpolB,EACxC,IAMAqqF,IAAgBp9E,EAAO,oBAAoB,SAAUjN,GACnDiN,EAAMm7kB,gCAAgCxvgB,SACtC,IAAIyoQ,EAAY,CACdkhQ,iBAAiB,GAEnBt1kB,EAAMy7E,SAAS24P,GACfp0U,EAAM+6kB,iBAAiB3mQ,GACvB,IAAI3hH,EAAezyN,EAAMod,MAAMq1M,aAC3BtiO,KAAWsiO,IACbA,EAAa2hH,EAAWrhV,EAE5B,IACAqqF,IAAgBp9E,EAAO,oBAAoB,SAAUjN,GACnD,IAGMqolB,EAHFp+W,EhL5sBqB,SAA6BjqO,GAC5D,IAAIxmB,EAAOwmB,GAAKA,EAAExmB,KAClB,OAAIA,GAAQwqjB,GAAwBxqjB,GAC3BwqjB,GAAwBxqjB,GAE1B,IACT,CgLssBwB8umB,CAAoBtolB,GAChC4rC,EAAQ5rD,KAAIitB,EAAMod,MAAO,GAAGrzC,OAAOizP,IACnCA,GAAa7sO,KAAWwuC,IAQ1BA,EAA2B,QAApBy8iB,EALH,aAAa74lB,KAAKy6O,GACZh9N,EAAMi7kB,aAAalolB,EAAE4pC,eAAe,IAEpC38B,EAAMi7kB,aAAalolB,UAEiB,IAAXqolB,EAAoBA,EAAS,CAAC,EAAGrolB,EAExE,IACAqqF,IAAgBp9E,EAAO,eAAe,SAAUjN,GAC9C,IAAIiolB,EAAQh7kB,EAAMi7kB,aAAalolB,GAC/B,GAAIiolB,EAAO,CACT,IAAIM,EAAcv9X,IAAcA,IAAc,CAAC,EAAGi9X,GAAQ,CAAC,EAAG,CAC5D1F,iBAAiB,IAEnBt1kB,EAAMy7E,SAAS6/f,GACft7kB,EAAM+6kB,iBAAiBO,GACvB,IAAI5hiB,EAAU15C,EAAMod,MAAMs8B,QACtBvpD,KAAWupD,IACbA,EAAQ4hiB,EAAavolB,EAEzB,CACF,IACAqqF,IAAgBp9E,EAAO,mBAAmB,SAAUjN,GAClD,IAAI0qU,EAAcz9T,EAAMod,MAAMqgT,YAC1BttU,KAAWstU,IAEbA,EADkBz9T,EAAMi7kB,aAAalolB,GACZA,EAE7B,IACAqqF,IAAgBp9E,EAAO,iBAAiB,SAAUjN,GAChD,IAAI2qU,EAAY19T,EAAMod,MAAMsgT,UACxBvtU,KAAWutU,IAEbA,EADkB19T,EAAMi7kB,aAAalolB,GACdA,EAE3B,IACAqqF,IAAgBp9E,EAAO,mBAAmB,SAAUjN,GAC1B,MAApBA,EAAE4pC,gBAA0B5pC,EAAE4pC,eAAej2D,OAAS,GACxDs5B,EAAMm7kB,gCAAgCpolB,EAAE4pC,eAAe,GAE3D,IACAygD,IAAgBp9E,EAAO,oBAAoB,SAAUjN,GAC3B,MAApBA,EAAE4pC,gBAA0B5pC,EAAE4pC,eAAej2D,OAAS,GACxDs5B,EAAMu7kB,gBAAgBxolB,EAAE4pC,eAAe,GAE3C,IACAygD,IAAgBp9E,EAAO,kBAAkB,SAAUjN,GACzB,MAApBA,EAAE4pC,gBAA0B5pC,EAAE4pC,eAAej2D,OAAS,GACxDs5B,EAAMw7kB,cAAczolB,EAAE4pC,eAAe,GAEzC,IACAygD,IAAgBp9E,EAAO,qBAAqB,SAAUjN,GACpD,IAAI05d,EAAgBzsd,EAAMod,MAAMqvc,cAC5Bt8d,KAAWs8d,IAEbA,EADkBzsd,EAAMi7kB,aAAalolB,GACVA,EAE/B,IACAqqF,IAAgBp9E,EAAO,qBAAqB,SAAUjN,GACpD,IAAI2oP,EAAgB17O,EAAMod,MAAMs+N,cAC5BvrP,KAAWurP,IAEbA,EADkB17O,EAAMi7kB,aAAalolB,GACVA,EAE/B,IACAqqF,IAAgBp9E,EAAO,oBAAoB,SAAUle,QACxBtP,IAAvBwtB,EAAMod,MAAMu9jB,QACd/P,IAAYhqb,KAAKiqb,IAAY7qkB,EAAMod,MAAMu9jB,OAAQ74lB,EAAMke,EAAM46kB,mBAEjE,IACAx9f,IAAgBp9E,EAAO,kBAAkB,SAAUle,GACjD,IAAIwxO,EAActzN,EAAMod,MACtBy7R,EAASvlF,EAAYulF,OACrBgiS,EAAavnX,EAAYunX,WACvBpkB,EAAWz2jB,EAAMpwB,MAAM6mlB,SACvB2M,EAAiBthlB,EAAKshlB,eACxBwO,EAAe9vlB,EAAK8vlB,aACtB,QAA4Bp/lB,IAAxBsP,EAAKshlB,qBAAsD5wlB,IAAtBsP,EAAK8vlB,aAC5C5xkB,EAAMy7E,SAASsiI,IAAc,CAC3BqlX,eAAgBA,EAChBwO,aAAcA,GACb+H,EAA0C,CAC3Cv8jB,MAAOpd,EAAMod,MACbgmjB,eAAgBA,EAChBwO,aAAcA,EACdnb,SAAUA,GACTz2jB,EAAMpwB,cACJ,QAAgC4C,IAA5BsP,EAAKgvlB,mBAAkC,CAChD,IAAIyB,EAASzwlB,EAAKywlB,OAChBC,EAAS1wlB,EAAK0wlB,OACZ1B,EAAqBhvlB,EAAKgvlB,mBAC1BryG,EAAez+d,EAAMpwB,MACvBywD,EAASo+b,EAAap+b,OACtBsyiB,EAAel0G,EAAak0G,aAC9B,IAAKtyiB,EACH,OAEF,GAA0B,oBAAfw6iB,EAET/J,EAAqB+J,EAAWlI,EAAc7wlB,QACzC,GAAmB,UAAf+4lB,EAAwB,CAGjC/J,GAAsB,EACtB,IAAK,IAAIrqmB,EAAI,EAAGA,EAAIksmB,EAAajsmB,OAAQD,IACvC,GAAIksmB,EAAalsmB,GAAGtC,QAAU2d,EAAKmwlB,YAAa,CAC9CnB,EAAqBrqmB,EACrB,KACF,CAEJ,CACA,IAAIo9V,EAAU9lH,IAAcA,IAAc,CAAC,EAAG19K,GAAS,CAAC,EAAG,CACzDnwC,EAAGmwC,EAAOz5D,KACV0zB,EAAG+lC,EAAOx5D,MAIR40mB,EAAiB10mB,KAAKyhB,IAAI+plB,EAAQ1uQ,EAAQ3zU,EAAI2zU,EAAQr8V,OACtDk0mB,EAAiB30mB,KAAKyhB,IAAIgqlB,EAAQ3uQ,EAAQvpU,EAAIupU,EAAQ38V,QACtD+qmB,EAAcU,EAAa7B,IAAuB6B,EAAa7B,GAAoB3smB,MACnF0smB,EAAgBkB,IAAkB/xkB,EAAMpwB,MAAOowB,EAAMod,MAAMt7B,KAAMgvlB,GACjET,EAAmBsC,EAAa7B,GAAsB,CACxD5glB,EAAc,eAAX2oT,EAA0B85R,EAAa7B,GAAoBj0C,WAAa4+C,EAC3EnhlB,EAAc,eAAXu+S,EAA0B6iS,EAAiB/I,EAAa7B,GAAoBj0C,YAC7E20C,IACJxxkB,EAAMy7E,SAASsiI,IAAcA,IAAc,CAAC,EAAGj8N,GAAO,CAAC,EAAG,CACxDmwlB,YAAaA,EACb5B,iBAAkBA,EAClBQ,cAAeA,EACfC,mBAAoBA,IAExB,MACE9wkB,EAAMy7E,SAAS35F,EAEnB,IACAs7F,IAAgBp9E,EAAO,gBAAgB,SAAUmF,GAC/C,IAAIw2kB,EACA78G,EAAe9+d,EAAMpwB,MACvB0lmB,EAAkBx2G,EAAaw2G,gBAC/BjF,EAAmBvxG,EAAauxG,iBAChCQ,EAAgB/xG,EAAa+xG,cAC7BxwiB,EAASy+b,EAAaz+b,OACtBywiB,EAAqBhyG,EAAagyG,mBAClCC,EAAsBjyG,EAAaiyG,oBACjCH,EAAmB5wkB,EAAM47kB,sBAEzBphY,EAA8D,QAAlDmhY,EAAwBx2kB,EAAQiY,MAAM/kB,cAA8C,IAA1BsjlB,EAAmCA,EAAwBrG,EACjIz8R,EAAS74S,EAAMod,MAAMy7R,OACrBxuU,EAAM86B,EAAQ96B,KAAO,mBACzB,OAAoB+uN,EAAAA,cAAoBq3Y,IAAQ,CAC9CpmmB,IAAKA,EACLgmmB,iBAAkBA,EAClBQ,cAAeA,EACfC,mBAAoBA,EACpBvM,UAAWA,EACXp/jB,QAASA,EACTq1M,SAAUA,EACVq+F,OAAQA,EACRx4Q,OAAQA,EACR0wiB,oBAAqBA,EACrBH,iBAAkBA,GAEtB,IACAxzf,IAAgBp9E,EAAO,mBAAmB,SAAUmF,EAASiiB,EAAa3xC,GACxE,IAAI+4kB,EAAWz7kB,KAAIoyB,EAAS,iBACxBm/jB,EAAUvxlB,KAAIitB,EAAMpwB,MAAO,GAAG7F,OAAOyklB,EAAU,QAC/CqtB,EAAsB12kB,EAAQ54B,KAAK2wC,aACnCkhjB,OAAuC5rlB,IAAxBqpmB,EAAoC99X,IAAcA,IAAc,CAAC,EAAG89X,GAAsB12kB,EAAQiY,OAASjY,EAAQiY,MAClI0+jB,EAAaxX,GAAWA,EAAQlG,EAAa,GAAGr0lB,OAAOyklB,EAAU,QACrE,OAAoBpye,EAAAA,EAAAA,cAAaj3E,EAAS44M,IAAcA,IAAc,CAAC,EAAG+9X,GAAa,CAAC,EAAG,CACzFhvmB,UAAWshY,GAAKogN,EAAUstB,EAAWhvmB,WACrCzC,IAAK86B,EAAQ96B,KAAO,GAAGN,OAAOq9C,EAAa,KAAKr9C,OAAO0L,GACvDw/jB,MAAOwa,IAAeqsB,GAAY,KAEtC,IACA1+f,IAAgBp9E,EAAO,mBAAmB,SAAUmF,GAClD,IAAI42kB,EAAiB52kB,EAAQiY,MAC3B4+jB,EAAcD,EAAeC,YAC7BC,EAAcF,EAAeE,YAC7BC,EAAcH,EAAeG,YAC3B/8G,EAAen/d,EAAMpwB,MACvBusmB,EAAgBh9G,EAAag9G,cAC7BC,EAAej9G,EAAai9G,aAC1BC,EAAazmD,GAAsBumD,GACnCG,EAAY1mD,GAAsBwmD,GAClC58e,EAAK88e,EAAU98e,GACjBC,EAAK68e,EAAU78e,GACfo4d,EAAcykB,EAAUzkB,YACxBC,EAAcwkB,EAAUxkB,YAC1B,OAAoB17e,EAAAA,EAAAA,cAAaj3E,EAAS,CACxC82kB,YAAa71mB,MAAMqR,QAAQwkmB,GAAeA,EAAcxsB,IAAe6sB,GAAW,GAAM1pmB,KAAI,SAAUqjB,GACpG,OAAOA,EAAM4miB,UACf,IACAq/C,YAAa91mB,MAAMqR,QAAQykmB,GAAeA,EAAczsB,IAAe4sB,GAAY,GAAMzpmB,KAAI,SAAUqjB,GACrG,OAAOA,EAAM4miB,UACf,IACAr9b,GAAIA,EACJC,GAAIA,EACJo4d,YAAaA,EACbC,YAAaA,EACbztlB,IAAK86B,EAAQ96B,KAAO,aACpB2xmB,YAAaA,GAEjB,IAKA5+f,IAAgBp9E,EAAO,gBAAgB,WACrC,IAAIstjB,EAA0BttjB,EAAMpwB,MAAM09kB,wBACtCxiS,EAAe9qR,EAAMod,MACvBsM,EAAWohQ,EAAaphQ,SACxBliD,EAAQsjT,EAAatjT,MACrBN,EAAS4jT,EAAa5jT,OACpBC,EAAS64B,EAAMod,MAAMj2C,QAAU,CAAC,EAChComlB,EAAc/llB,GAASL,EAAOP,MAAQ,IAAMO,EAAO4J,OAAS,GAC5DqsC,EAAQiwiB,IAAe,CACzB3jiB,SAAUA,EACV4jiB,wBAAyBA,EACzBC,YAAaA,EACbC,cAAeA,IAEjB,IAAKpwiB,EACH,OAAO,KAET,IAAI3F,EAAO2F,EAAM3F,KACfwiQ,EAAa36D,IAAyBliM,EAAOm2L,KAC/C,OAAoBn3H,EAAAA,EAAAA,cAAa3kE,EAAMsmM,IAAcA,IAAc,CAAC,EAAGk8D,GAAa,CAAC,EAAG,CACtFspR,WAAY/7jB,EACZm8jB,YAAaz8jB,EACbC,OAAQA,EACRq8jB,aAAcxjiB,EAAMu8kB,yBAExB,IAKAn/f,IAAgBp9E,EAAO,iBAAiB,WACtC,IAAIw8kB,EACAtxT,EAAelrR,EAAMod,MACvBsM,EAAWwhQ,EAAaxhQ,SACxBmygB,EAAqB3wQ,EAAa2wQ,mBAChC4gD,EAAcxkD,GAAgBvugB,EAAU8yP,IAC5C,IAAKigU,EACH,OAAO,KAET,IAAI98G,EAAe3/d,EAAMpwB,MACvB0lmB,EAAkB31G,EAAa21G,gBAC/BjF,EAAmB1wG,EAAa0wG,iBAChCQ,EAAgBlxG,EAAakxG,cAC7BoB,EAActyG,EAAasyG,YAC3B5xiB,EAASs/b,EAAat/b,OAKpBm6K,EAAkE,QAAtDgiY,EAAwBC,EAAYr/jB,MAAM/kB,cAA8C,IAA1BmklB,EAAmCA,EAAwBlH,EACzI,OAAoBl5f,EAAAA,EAAAA,cAAaqggB,EAAa,CAC5C54Q,QAAS9lH,IAAcA,IAAc,CAAC,EAAG19K,GAAS,CAAC,EAAG,CACpDnwC,EAAGmwC,EAAOz5D,KACV0zB,EAAG+lC,EAAOx5D,MAEZwxB,OAAQmiN,EACRn8H,MAAO4zf,EACPpliB,QAAS2tK,EAAWq2X,EAAgB,GACpCh0C,WAAYwzC,EACZx0C,mBAAoBA,GAExB,IACAz+c,IAAgBp9E,EAAO,eAAe,SAAUmF,GAC9C,IAAIsmR,EAAezrR,EAAMod,MACvBj2C,EAASskT,EAAatkT,OACtB2a,EAAO2pS,EAAa3pS,KAClBk+e,EAAehge,EAAMpwB,MACvBywD,EAAS2/b,EAAa3/b,OACtB+iiB,EAAiBpjG,EAAaojG,eAC9BwO,EAAe5xG,EAAa4xG,aAC5Bnb,EAAWz2F,EAAay2F,SAG1B,OAAoBr6e,EAAAA,EAAAA,cAAaj3E,EAAS,CACxC96B,IAAK86B,EAAQ96B,KAAO,kBACpBk8O,SAAU8pW,IAAqBrwjB,EAAM08kB,kBAAmBv3kB,EAAQiY,MAAMmpM,UACtEzkO,KAAMA,EACNoO,EAAGy8E,GAASxnE,EAAQiY,MAAMltB,GAAKiV,EAAQiY,MAAMltB,EAAImwC,EAAOz5D,KACxD0zB,EAAGqyE,GAASxnE,EAAQiY,MAAM9iB,GAAK6K,EAAQiY,MAAM9iB,EAAI+lC,EAAOx5D,IAAMw5D,EAAOn5D,OAASm5D,EAAO01iB,aAAe5umB,EAAOwE,QAAU,GACrHnE,MAAOmlG,GAASxnE,EAAQiY,MAAM51C,OAAS29B,EAAQiY,MAAM51C,MAAQ64D,EAAO74D,MACpEoiO,WAAYw5X,EACZpqM,SAAU44M,EACVnb,SAAU,SAAS1slB,OAAO0slB,IAE9B,IACAr5e,IAAgBp9E,EAAO,0BAA0B,SAAUmF,EAASiiB,EAAa3xC,GAC/E,IAAK0vB,EACH,OAAO,KAET,IACEm9jB,EADWtikB,EACSsikB,WAClBjiG,EAAerge,EAAMpwB,MACvB63lB,EAAWpnG,EAAaonG,SACxBC,EAAWrnG,EAAaqnG,SACxBrniB,EAASggc,EAAahgc,OACpBw7iB,EAAsB12kB,EAAQ54B,KAAK2wC,cAAgB,CAAC,EACpDy/jB,EAAkBx3kB,EAAQiY,MAC5Bw/jB,EAAwBD,EAAgB7Z,QACxCA,OAAoC,IAA1B8Z,EAAmCf,EAAoB/Y,QAAU8Z,EAC3EC,EAAwBF,EAAgB5Z,QACxCA,OAAoC,IAA1B8Z,EAAmChB,EAAoB9Y,QAAU8Z,EAC7E,OAAoBzggB,EAAAA,EAAAA,cAAaj3E,EAAS,CACxC96B,IAAK86B,EAAQ96B,KAAO,GAAGN,OAAOq9C,EAAa,KAAKr9C,OAAO0L,GACvD22kB,MAAOqb,EAAS3E,GAChBzW,MAAOqb,EAAS3E,GAChBl/P,QAAS,CACP3zU,EAAGmwC,EAAOz5D,KACV0zB,EAAG+lC,EAAOx5D,IACVW,MAAO64D,EAAO74D,MACdN,OAAQm5D,EAAOn5D,QAEjBo7lB,WAAYA,GAEhB,IACAllf,IAAgBp9E,EAAO,sBAAsB,SAAUo1R,GACrD,IAAI39Q,EAAO29Q,EAAO39Q,KAChBqlkB,EAAc1nT,EAAO0nT,YACrBC,EAAY3nT,EAAO2nT,UACnBrD,EAAatkT,EAAOskT,WACpBsD,EAAU5nT,EAAO4nT,QACfxmmB,EAAS,GAETnM,EAAMotC,EAAK2F,MAAM/yC,IACjB4ymB,OAAgDzqmB,IAAhCilC,EAAKA,KAAKlrC,KAAK2wC,aAA6B6gM,IAAcA,IAAc,CAAC,EAAGtmM,EAAKA,KAAKlrC,KAAK2wC,cAAezF,EAAKA,KAAK2F,OAAS3F,EAAKA,KAAK2F,MACvJ8/jB,EAAYD,EAAcC,UAE1B9vL,EAAWrvM,IAAcA,IAAc,CACzCtoO,MAAOikmB,EACP9qkB,QAHUqukB,EAAcrukB,QAIxB4wF,GAAIs9e,EAAY5slB,EAChBuvG,GAAIq9e,EAAYxilB,EAChBz1B,EAAG,EACHssG,KAAM68e,IAA0Bv2iB,EAAKA,MACrCoV,YAAa,EACbigG,OAAQ,OACRjgF,QAASiwiB,EAAYjwiB,QACrB1oE,MAAO24mB,EAAY34mB,OAClBm0jB,GAAY4kD,GAAW,IAASxmD,GAAmBwmD,IAUtD,OATA1mmB,EAAOpP,KAAKkzmB,EAAwB6C,gBAAgBD,EAAW9vL,EAAU,GAAGrjb,OAAOM,EAAK,iBAAiBN,OAAO2vmB,KAC5GqD,EACFvmmB,EAAOpP,KAAKkzmB,EAAwB6C,gBAAgBD,EAAWn/X,IAAcA,IAAc,CAAC,EAAGqvM,GAAW,CAAC,EAAG,CAC5G5tT,GAAIu9e,EAAU7slB,EACduvG,GAAIs9e,EAAUzilB,IACZ,GAAGvwB,OAAOM,EAAK,eAAeN,OAAO2vmB,KAChCsD,GACTxmmB,EAAOpP,KAAK,MAEPoP,CACT,IACA4mG,IAAgBp9E,EAAO,sBAAsB,SAAUmF,EAASiiB,EAAa3xC,GAC3E,IAAIgiC,EAAOzX,EAAMo9kB,iBAAiBj4kB,EAASiiB,EAAa3xC,GACxD,IAAKgiC,EACH,OAAO,KAET,IAAIm5jB,EAAmB5wkB,EAAM47kB,sBACzBr6G,EAAevhe,EAAMpwB,MACvB0lmB,EAAkB/zG,EAAa+zG,gBAC/BpD,EAAc3wG,EAAa2wG,YAC3BpB,EAAqBvvG,EAAauvG,mBAClCmB,EAAc1wG,EAAa0wG,YAEzBwK,EAAcxkD,GADHj4hB,EAAMod,MAAMsM,SACiB8yP,IAExC6gU,EAAc5lkB,EAAK2F,MACrB2pN,EAASs2W,EAAYt2W,OACrBi2W,EAAUK,EAAYL,QACtB5N,EAAWiO,EAAYjO,SACrB6N,OAAgDzqmB,IAAhCilC,EAAKA,KAAKlrC,KAAK2wC,aAA6B6gM,IAAcA,IAAc,CAAC,EAAGtmM,EAAKA,KAAKlrC,KAAK2wC,cAAezF,EAAKA,KAAK2F,OAAS3F,EAAKA,KAAK2F,MACvJ8/jB,EAAYD,EAAcC,UAC5B79C,EAAO49C,EAAc59C,KACrBkiC,EAAY0b,EAAc1b,UAC1B+b,EAAcL,EAAcK,YAC1BhlY,EAAYhhO,SAAS+njB,GAAQi2C,GAAmBmH,IAAgBS,GAAa3b,GAAa+b,IAC1FC,EAAa,CAAC,EACO,SAArB3M,GAA+B6L,GAA6C,UAA9BA,EAAYr/jB,MAAMo8P,QAClE+jU,EAAa,CACX7jiB,QAAS22gB,IAAqBrwjB,EAAMw9kB,qBAAsBr4kB,EAAQiY,MAAMs8B,UAE5C,SAArBk3hB,IACT2M,EAAa,CACX9qX,aAAc49V,IAAqBrwjB,EAAMy9kB,qBAAsBt4kB,EAAQiY,MAAMq1M,cAC7ED,aAAc69V,IAAqBrwjB,EAAMw9kB,qBAAsBr4kB,EAAQiY,MAAMo1M,gBAGjF,IAAI0gW,GAA6B92e,EAAAA,EAAAA,cAAaj3E,EAAS44M,IAAcA,IAAc,CAAC,EAAGtmM,EAAK2F,OAAQmgkB,IAKpG,GAAIjlY,EAAW,CACb,KAAIw4X,GAAsB,GA0BnB,CACL,IAAI4M,EAWFC,GAHqF,QAAzED,EAAoB19kB,EAAM49kB,YAAY59kB,EAAMpwB,MAAMygmB,yBAAqD,IAAtBqN,EAA+BA,EAAoB,CAC9IxqB,cAAeA,IAEaA,cAC9B2qB,EAAwBF,EAAqBlmkB,KAC7CqmkB,OAAmC,IAA1BD,EAAmC14kB,EAAU04kB,EACtDnE,EAAaiE,EAAqBjE,WAChCtb,EAAergX,IAAcA,IAAcA,IAAc,CAAC,EAAGtmM,EAAK2F,OAAQmgkB,GAAa,CAAC,EAAG,CAC7Fx9M,YAAa25M,IAEf,MAAO,EAAct9f,EAAAA,EAAAA,cAAa0hgB,EAAQ1f,GAAe,KAAM,KACjE,CA7CE,IAAI0e,EAAaC,EACjB,GAAI7K,EAAYtjkB,UAAYsjkB,EAAYrgB,wBAAyB,CAE/D,IAAI57B,EAA8C,oBAAxBi8C,EAAYtjkB,QAT5C,SAAyB3Y,GAEvB,MAAsC,oBAAxBi8kB,EAAYtjkB,QAAyBsjkB,EAAYtjkB,QAAQ3Y,EAAM42C,SAAW,IAC1F,EAMuF,WAAW9iE,OAAOmomB,EAAYtjkB,QAAQr7B,YACvHupmB,EAAc9mD,GAAiBjvT,EAAQkvT,EAAcg8C,GACrD8K,EAAYC,GAAW5N,GAAYp5C,GAAiBo5C,EAAUn5C,EAAcg8C,EAC9E,MACE6K,EAAyB,OAAX/1W,QAA8B,IAAXA,OAAoB,EAASA,EAAO+pW,GACrEiM,EAAYC,GAAW5N,GAAYA,EAAS0B,GAE9C,GAAIwM,GAAe/b,EAAW,CAC5B,IAAIxhM,OAA4CvtZ,IAA9B2yB,EAAQiY,MAAM2iX,YAA4B56X,EAAQiY,MAAM2iX,YAAc+wM,EACxF,MAAO,EAAc10f,EAAAA,EAAAA,cAAaj3E,EAAS44M,IAAcA,IAAcA,IAAc,CAAC,EAAGtmM,EAAK2F,OAAQmgkB,GAAa,CAAC,EAAG,CACrHx9M,YAAaA,KACV,KAAM,KACb,CACA,IAAK/pT,KAAM8mgB,GACT,MAAO,CAAC5pB,GAAenplB,OAAOw+O,IAAmBvoN,EAAM+9kB,mBAAmB,CACxEtmkB,KAAMA,EACNqlkB,YAAaA,EACbC,UAAWA,EACXrD,WAAY5I,EACZkM,QAASA,KAwBjB,CACA,OAAIA,EACK,CAAC9pB,EAAe,KAAM,MAExB,CAACA,EAAe,KACzB,IACA91e,IAAgBp9E,EAAO,oBAAoB,SAAUmF,EAASiiB,EAAa3xC,GACzE,OAAoB2mG,EAAAA,EAAAA,cAAaj3E,EAAS44M,IAAcA,IAAc,CACpE1zO,IAAK,uBAAuBN,OAAO0L,IAClCuqB,EAAMod,OAAQpd,EAAMpwB,OACzB,IACAwtG,IAAgBp9E,EAAO,YAAa,CAClCg+kB,cAAe,CACb1tkB,QAASmhkB,IACTp/f,MAAM,GAERg3f,cAAe,CACb/4jB,QAAStQ,EAAMi+kB,wBAEjB7U,cAAe,CACb94jB,QAASmhkB,KAEXhL,aAAc,CACZn2jB,QAAStQ,EAAMi+kB,wBAEjBC,MAAO,CACL5tkB,QAASmhkB,KAEX0M,MAAO,CACL7tkB,QAASmhkB,KAEXne,MAAO,CACLhjjB,QAAStQ,EAAMo+kB,YACf/rgB,MAAM,GAER6uf,IAAK,CACH5wjB,QAAStQ,EAAMq+kB,oBAEjBC,KAAM,CACJhukB,QAAStQ,EAAMq+kB,oBAEjBE,KAAM,CACJjukB,QAAStQ,EAAMq+kB,oBAEjBG,MAAO,CACLlukB,QAAStQ,EAAMq+kB,oBAEjBI,UAAW,CACTnukB,QAAStQ,EAAMq+kB,oBAEjBK,QAAS,CACPpukB,QAAStQ,EAAMq+kB,oBAEjBM,IAAK,CACHrukB,QAAStQ,EAAMq+kB,oBAEjBO,OAAQ,CACNtukB,QAAStQ,EAAMq+kB,oBAEjB7hU,QAAS,CACPlsQ,QAAStQ,EAAM6+kB,aACfxsgB,MAAM,GAERysgB,UAAW,CACTxukB,QAAStQ,EAAM++kB,gBACf1sgB,MAAM,GAER2sgB,eAAgB,CACd1ukB,QAAStQ,EAAMi/kB,iBAEjBC,gBAAiB,CACf5ukB,QAAStQ,EAAMi/kB,iBAEjBE,WAAY,CACV7ukB,QAAStQ,EAAMo/kB,oBAGnBp/kB,EAAMsikB,WAAa,GAAGv4lB,OAAmC,QAA3BywmB,EAAYlpY,EAAOtoN,UAA8B,IAAdwxlB,EAAuBA,EAAYlhgB,GAAS,YAAa,SAG1Ht5E,EAAMm7kB,gCAAkC3ngB,KAASxzE,EAAMq/kB,wBAA2E,QAAjD5E,EAAuBnpY,EAAOguY,qBAAoD,IAAzB7E,EAAkCA,EAAuB,IAAO,IAC1Mz6kB,EAAMpwB,MAAQ,CAAC,EACRowB,CACT,CAEA,OAp/CJ,SAAmB+5L,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7lN,UAAU,sDAAyD4lN,EAAS30N,UAAYmG,OAAO4D,OAAO6qN,GAAcA,EAAW50N,UAAW,CAAE+C,YAAa,CAAEhE,MAAO41N,EAAUjgN,UAAU,EAAMnF,cAAc,KAAWpJ,OAAOgN,eAAewhN,EAAU,YAAa,CAAEjgN,UAAU,IAAckgN,GAAYwjW,IAAgBzjW,EAAUC,EAAa,CAm/C/bqiB,CAAUi+X,EAAyBC,GAz/CjBvvlB,EA0/CEsvlB,EA1/CW/4O,EA0/Cc,CAAC,CAC5Cl3X,IAAK,oBACLlG,MAAO,WACL,IAAIo7mB,EAAuBC,EAC3Bj6mB,KAAK46K,cACL56K,KAAKk6mB,qBAAqBC,WAAW,CACnC/5mB,UAAWJ,KAAKI,UAChB06D,OAAQ,CACNz5D,KAA2D,QAApD24mB,EAAwBh6mB,KAAK63C,MAAMj2C,OAAOP,YAA4C,IAA1B24mB,EAAmCA,EAAwB,EAC9H14mB,IAAyD,QAAnD24mB,EAAwBj6mB,KAAK63C,MAAMj2C,OAAON,WAA2C,IAA1B24mB,EAAmCA,EAAwB,GAE9HxU,eAAgBzlmB,KAAKqK,MAAM+imB,aAC3BtH,qBAAsB9lmB,KAAK85mB,wBAC3BxmS,OAAQtzU,KAAK63C,MAAMy7R,SAErBtzU,KAAKo6mB,uBACP,GACC,CACDt1mB,IAAK,wBACLlG,MAAO,WACL,IAAIyoT,EAAernT,KAAK63C,MACtBsM,EAAWkjQ,EAAaljQ,SACxB5nC,EAAO8qS,EAAa9qS,KACpB5a,EAAS0lT,EAAa1lT,OACtB2xU,EAASjsB,EAAaisB,OACpB+mS,EAAc3nD,GAAgBvugB,EAAU8yP,IAE5C,GAAKojU,EAAL,CAGA,IAAIC,EAAeD,EAAYxikB,MAAMyikB,aAGrC,KAA4B,kBAAjBA,GAA6BA,EAAe,GAAKA,EAAet6mB,KAAKqK,MAAM+imB,aAAajsmB,OAAS,GAA5G,CAGA,IAAIurmB,EAAc1smB,KAAKqK,MAAM+imB,aAAakN,IAAiBt6mB,KAAKqK,MAAM+imB,aAAakN,GAAc17mB,MAC7F0smB,EAAgBkB,IAAkBxsmB,KAAKqK,MAAOkS,EAAM+9lB,EAAc5N,GAClE6N,EAAuBv6mB,KAAKqK,MAAM+imB,aAAakN,GAAchjD,WAC7DkjD,GAAsBx6mB,KAAKqK,MAAMywD,OAAOx5D,IAAMK,GAAU,EAExDmpmB,EAD0B,eAAXx3R,EACmB,CACpC3oT,EAAG4vlB,EACHxllB,EAAGyllB,GACD,CACFzllB,EAAGwllB,EACH5vlB,EAAG6vlB,GAMDC,EAAqBz6mB,KAAKqK,MAAM09kB,wBAAwBz2kB,MAAK,SAAU4gc,GAEzE,MAA0B,YADfA,EAAOhga,KACNlrC,KAAKiH,IACnB,IACIwsmB,IACF3P,EAAmBtyX,IAAcA,IAAc,CAAC,EAAGsyX,GAAmB2P,EAAmB5ikB,MAAM2pN,OAAO84W,GAAczb,iBACpHyM,EAAgBmP,EAAmB5ikB,MAAM2pN,OAAO84W,GAAc/f,gBAEhE,IAAI1rP,EAAY,CACd08P,mBAAoB+O,EACpBvK,iBAAiB,EACjBrD,YAAaA,EACbpB,cAAeA,EACfR,iBAAkBA,GAEpB9qmB,KAAKk2G,SAAS24P,GACd7uW,KAAKs5mB,aAAae,GAIlBr6mB,KAAKk6mB,qBAAqBQ,SAASJ,EArCnC,CANA,CA4CF,GACC,CACDx1mB,IAAK,0BACLlG,MAAO,SAAiCglb,EAAW9jL,GACjD,OAAK9/P,KAAK63C,MAAMy+gB,oBAGZt2jB,KAAKqK,MAAM+imB,eAAiBttW,EAAUstW,cACxCptmB,KAAKk6mB,qBAAqBC,WAAW,CACnC1U,eAAgBzlmB,KAAKqK,MAAM+imB,eAG3BptmB,KAAK63C,MAAMy7R,SAAWswG,EAAUtwG,QAClCtzU,KAAKk6mB,qBAAqBC,WAAW,CACnC7mS,OAAQtzU,KAAK63C,MAAMy7R,SAGnBtzU,KAAK63C,MAAMj2C,SAAWgib,EAAUhib,QAElC5B,KAAKk6mB,qBAAqBC,WAAW,CACnCr/iB,OAAQ,CACNz5D,KAA4D,QAArDs5mB,EAAyB36mB,KAAK63C,MAAMj2C,OAAOP,YAA6C,IAA3Bs5mB,EAAoCA,EAAyB,EACjIr5mB,IAA0D,QAApDs5mB,EAAyB56mB,KAAK63C,MAAMj2C,OAAON,WAA4C,IAA3Bs5mB,EAAoCA,EAAyB,KAM9H,MAvBE,KAaP,IAAID,EAAwBC,CAWhC,GACC,CACD91mB,IAAK,qBACLlG,MAAO,SAA4Bglb,GAE5B0vI,GAAgB,CAACZ,GAAgB9uI,EAAUz/X,SAAU8yP,KAAW,CAACy7Q,GAAgB1yjB,KAAK63C,MAAMsM,SAAU8yP,OACzGj3S,KAAKo6mB,uBAET,GACC,CACDt1mB,IAAK,uBACLlG,MAAO,WACLoB,KAAKu7K,iBACLv7K,KAAK41mB,gCAAgCxvgB,QACvC,GACC,CACDthG,IAAK,sBACLlG,MAAO,WACL,IAAIs4mB,EAAcxkD,GAAgB1yjB,KAAK63C,MAAMsM,SAAU8yP,IACvD,GAAIigU,GAAmD,mBAA7BA,EAAYr/jB,MAAMv8B,OAAsB,CAChE,IAAIg7d,EAAY4gI,EAAYr/jB,MAAMv8B,OAAS,OAAS,OACpD,OAAO+1lB,EAA0B3smB,QAAQ4xe,IAAc,EAAIA,EAAY66H,CACzE,CACA,OAAOA,CACT,GAOC,CACDrsmB,IAAK,eACLlG,MAAO,SAAsBw6D,GAC3B,IAAKp5D,KAAKI,UACR,OAAO,KAET,IlIviDkCk/B,EkIuiD9BM,EAAU5/B,KAAKI,UACfy6mB,EAAej7kB,EAAQl/B,wBACvB+kiB,ElIxiDH,CACLnkiB,KAFsCg+B,EkIyiDFu7kB,GlIviD1Bv5mB,IAAMiE,OAAOkrI,QAAUnpI,SAASk0D,gBAAgBi7a,UAC1Dp1e,KAAMi+B,EAAKj+B,KAAOkE,OAAOgrI,QAAUjpI,SAASk0D,gBAAgBg7a,YkIuiDpDhpd,EAAI,CACNw/kB,OAAQxrmB,KAAK22B,MAAMihC,EAAM9F,MAAQmye,EAAgBpkiB,MACjD4rmB,OAAQzrmB,KAAK22B,MAAMihC,EAAM7F,MAAQkye,EAAgBnkiB,MAE/CwgJ,EAAQ+4d,EAAa54mB,MAAQ29B,EAAQq6E,aAAe,EACpD6yf,EAAW9smB,KAAK+vG,QAAQviF,EAAEw/kB,OAAQx/kB,EAAEy/kB,OAAQnrd,GAChD,IAAKgrd,EACH,OAAO,KAET,IAAI7wG,EAAej8f,KAAKqK,MACtB63lB,EAAWjmG,EAAaimG,SACxBC,EAAWlmG,EAAakmG,SAE1B,GAAyB,SADFnimB,KAAKq2mB,uBACOnU,GAAYC,EAAU,CACvD,IAAI2Y,EAASzqD,GAAsB6xC,GAAUpgd,MACzCi5d,EAAS1qD,GAAsB8xC,GAAUrgd,MACzCu5c,EAASyf,GAAUA,EAAO3ygB,OAAS2ygB,EAAO3ygB,OAAO36E,EAAEw/kB,QAAU,KAC7D1R,EAASyf,GAAUA,EAAO5ygB,OAAS4ygB,EAAO5ygB,OAAO36E,EAAEy/kB,QAAU,KACjE,OAAOz0X,IAAcA,IAAc,CAAC,EAAGhrN,GAAI,CAAC,EAAG,CAC7C6tkB,OAAQA,EACRC,OAAQA,GAEZ,CACA,IAAI0f,EAAcnO,IAAe7smB,KAAKqK,MAAOrK,KAAK63C,MAAMt7B,KAAMvc,KAAK63C,MAAMy7R,OAAQw5R,GACjF,OAAIkO,EACKxiY,IAAcA,IAAc,CAAC,EAAGhrN,GAAIwtlB,GAEtC,IACT,GACC,CACDl2mB,IAAK,UACLlG,MAAO,SAAiB+rB,EAAGoK,GACzB,IAAI+sH,EAAQryI,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,EAC5E6jU,EAAStzU,KAAK63C,MAAMy7R,OACpB2nS,EAAUtwlB,EAAIm3H,EAChBo5d,EAAUnmlB,EAAI+sH,EAChB,GAAe,eAAXwxL,GAAsC,aAAXA,EAAuB,CACpD,IAAIx4Q,EAAS96D,KAAKqK,MAAMywD,OAExB,OADgBmgjB,GAAWngjB,EAAOz5D,MAAQ45mB,GAAWngjB,EAAOz5D,KAAOy5D,EAAO74D,OAASi5mB,GAAWpgjB,EAAOx5D,KAAO45mB,GAAWpgjB,EAAOx5D,IAAMw5D,EAAOn5D,OACxH,CACjBgpB,EAAGswlB,EACHlmlB,EAAGmmlB,GACD,IACN,CACA,IAAIh/G,EAAgBl8f,KAAKqK,MACvBwsmB,EAAe36G,EAAc26G,aAC7BD,EAAgB16G,EAAc06G,cAChC,GAAIC,GAAgBD,EAAe,CACjC,IAAIG,EAAY1mD,GAAsBwmD,GACtC,OAAO1kB,IAAgB,CACrBxnkB,EAAGswlB,EACHlmlB,EAAGmmlB,GACFnE,EACL,CACA,OAAO,IACT,GACC,CACDjymB,IAAK,uBACLlG,MAAO,WACL,IAAIulD,EAAWnkD,KAAK63C,MAAMsM,SACtBknjB,EAAmBrrmB,KAAKq2mB,sBACxBa,EAAcxkD,GAAgBvugB,EAAU8yP,IACxCkkU,EAAgB,CAAC,EAsBrB,OArBIjE,GAAoC,SAArB7L,IAEf8P,EADgC,UAA9BjE,EAAYr/jB,MAAMo8P,QACJ,CACd9/N,QAASn0E,KAAKumV,aAGA,CACdt5F,aAAcjtP,KAAKo7mB,iBACnBl0H,cAAelnf,KAAKq7mB,kBACpBplW,YAAaj2Q,KAAKs7mB,gBAClBpuX,aAAcltP,KAAKu7mB,iBACnBxlN,YAAa/1Z,KAAK0wlB,gBAClBr6L,aAAcr2Z,KAAKw7mB,iBACnBplN,WAAYp2Z,KAAKy7mB,eACjBtlW,cAAen2Q,KAAK07mB,oBAOnBljY,IAAcA,IAAc,CAAC,EADlB24U,GAAmBnxjB,KAAK63C,MAAO73C,KAAK27mB,mBACDR,EACvD,GACC,CACDr2mB,IAAK,cACLlG,MAAO,WACLymmB,IAAY7pb,GAAG8pb,IAAYtlmB,KAAK47mB,uBAClC,GACC,CACD92mB,IAAK,iBACLlG,MAAO,WACLymmB,IAAY9pb,eAAe+pb,IAAYtlmB,KAAK47mB,uBAC9C,GACC,CACD92mB,IAAK,mBACLlG,MAAO,SAA0BszC,EAAM2P,EAAasyjB,GAElD,IADA,IAAIpsB,EAA0B/nlB,KAAKqK,MAAM09kB,wBAChC7mlB,EAAI,EAAGujB,EAAMsjkB,EAAwB5mlB,OAAQD,EAAIujB,EAAKvjB,IAAK,CAClE,IAAIwvB,EAAQq3jB,EAAwB7mlB,GACpC,GAAIwvB,EAAMwhB,OAASA,GAAQxhB,EAAMmnB,MAAM/yC,MAAQotC,EAAKptC,KAAO+8C,IAAgBizK,GAAepkM,EAAMwhB,KAAKlrC,OAASmtmB,IAAezjlB,EAAMyjlB,WACjI,OAAOzjlB,CAEX,CACA,OAAO,IACT,GACC,CACD5rB,IAAK,iBACLlG,MAAO,WACL,IAAIm+lB,EAAa/8lB,KAAK+8lB,WAClB8e,EAAqB77mB,KAAKqK,MAAMywD,OAClCz5D,EAAOw6mB,EAAmBx6mB,KAC1BC,EAAMu6mB,EAAmBv6mB,IACzBK,EAASk6mB,EAAmBl6mB,OAC5BM,EAAQ45mB,EAAmB55mB,MAC7B,OAAoB4xN,EAAAA,cAAoB,OAAQ,KAAmBA,EAAAA,cAAoB,WAAY,CACjGpwM,GAAIs5kB,GACUlpY,EAAAA,cAAoB,OAAQ,CAC1ClpM,EAAGtpB,EACH0zB,EAAGzzB,EACHK,OAAQA,EACRM,MAAOA,KAEX,GACC,CACD6C,IAAK,aACLlG,MAAO,WACL,IAAIsjmB,EAAWlimB,KAAKqK,MAAM63lB,SAC1B,OAAOA,EAAWl8lB,OAAOoQ,QAAQ8rlB,GAAUjjkB,QAAO,SAAU2D,EAAKyva,GAC/D,IAAIC,EAAS12N,IAAey2N,EAAQ,GAClCuyJ,EAAStyJ,EAAO,GAChBwpK,EAAYxpK,EAAO,GACrB,OAAO95N,IAAcA,IAAc,CAAC,EAAG51M,GAAM,CAAC,EAAGi1E,IAAgB,CAAC,EAAG+sf,EAAQkX,EAAUh6d,OACzF,GAAG,CAAC,GAAK,IACX,GACC,CACDh9I,IAAK,aACLlG,MAAO,WACL,IAAIujmB,EAAWnimB,KAAKqK,MAAM83lB,SAC1B,OAAOA,EAAWn8lB,OAAOoQ,QAAQ+rlB,GAAUljkB,QAAO,SAAU2D,EAAKmwa,GAC/D,IAAIC,EAASp3N,IAAem3N,EAAQ,GAClC6xJ,EAAS5xJ,EAAO,GAChB8oK,EAAY9oK,EAAO,GACrB,OAAOx6N,IAAcA,IAAc,CAAC,EAAG51M,GAAM,CAAC,EAAGi1E,IAAgB,CAAC,EAAG+sf,EAAQkX,EAAUh6d,OACzF,GAAG,CAAC,GAAK,IACX,GACC,CACDh9I,IAAK,oBACLlG,MAAO,SAA2BgmmB,GAChC,IAAImX,EACJ,OAAwD,QAAhDA,EAAuB/7mB,KAAKqK,MAAM63lB,gBAA+C,IAAzB6Z,GAA6F,QAAzDA,EAAuBA,EAAqBnX,UAA8C,IAAzBmX,OAAkC,EAASA,EAAqBj6d,KACvO,GACC,CACDh9I,IAAK,oBACLlG,MAAO,SAA2BgmmB,GAChC,IAAIoX,EACJ,OAAwD,QAAhDA,EAAuBh8mB,KAAKqK,MAAM83lB,gBAA+C,IAAzB6Z,GAA6F,QAAzDA,EAAuBA,EAAqBpX,UAA8C,IAAzBoX,OAAkC,EAASA,EAAqBl6d,KACvO,GACC,CACDh9I,IAAK,cACLlG,MAAO,SAAqBq9mB,GAC1B,IAAIr/G,EAAgB58f,KAAKqK,MACvB09kB,EAA0BnrF,EAAcmrF,wBACxC/wF,EAAa4F,EAAc5F,WAC7B,GAAI+wF,GAA2BA,EAAwB5mlB,OACrD,IAAK,IAAID,EAAI,EAAGujB,EAAMsjkB,EAAwB5mlB,OAAQD,EAAIujB,EAAKvjB,IAAK,CAClE,IAAIyslB,EAAgB5F,EAAwB7mlB,GAExC22C,EAAQ81iB,EAAc91iB,MACxB3F,EAAOy7iB,EAAcz7iB,KACnBiuc,OAAuClze,IAA3BilC,EAAKlrC,KAAK2wC,aAA6B6gM,IAAcA,IAAc,CAAC,EAAGtmM,EAAKlrC,KAAK2wC,cAAezF,EAAK2F,OAAS3F,EAAK2F,MAC/HqkkB,EAAkBpnZ,GAAe5iL,EAAKlrC,MAC1C,GAAwB,QAApBk1mB,EAA2B,CAC7B,IAAIC,GAAiBtkkB,EAAMt7B,MAAQ,IAAIjL,MAAK,SAAUof,GACpD,OAAOm3iB,GAAco0C,EAASvrlB,EAChC,IACA,GAAIyrlB,EACF,MAAO,CACLxuB,cAAeA,EACfrmhB,QAAS60iB,EAGf,MAAO,GAAwB,cAApBD,EAAiC,CAC1C,IAAIE,GAAkBvkkB,EAAMt7B,MAAQ,IAAIjL,MAAK,SAAUof,GACrD,OAAOyhkB,IAAgB8pB,EAASvrlB,EAClC,IACA,GAAI0rlB,EACF,MAAO,CACLzuB,cAAeA,EACfrmhB,QAAS80iB,EAGf,MAAO,GAAI/iB,IAAS1L,EAAe32F,IAAesiG,IAAM3L,EAAe32F,IAAeuiG,IAAU5L,EAAe32F,GAAa,CAC1H,IAAIx8F,EAAc4/L,IAA8B,CAC9CzM,cAAeA,EACf+L,kBAAmB1iG,EACnB37F,SAAU8kF,EAAU5je,OAElB43lB,OAAuClnmB,IAA1Bkze,EAAU3lF,YAA4BA,EAAc2lF,EAAU3lF,YAC/E,MAAO,CACLmzL,cAAen1W,IAAcA,IAAc,CAAC,EAAGm1W,GAAgB,CAAC,EAAG,CACjEwmB,WAAYA,IAEd7siB,QAASiyhB,IAAU5L,EAAe32F,GAAc7W,EAAU5je,KAAKi+Y,GAAemzL,EAAc91iB,MAAMt7B,KAAKi+Y,GAE3G,CACF,CAEF,OAAO,IACT,GACC,CACD11Z,IAAK,SACLlG,MAAO,WACL,IAAI2qb,EAASvpb,KACb,IAAK2yjB,GAAoB3yjB,MACvB,OAAO,KAET,IA2BMq8mB,EAAsBC,EA3BxB/zT,EAAevoT,KAAK63C,MACtBsM,EAAWokQ,EAAapkQ,SACxB58C,EAAYghT,EAAahhT,UACzBtF,EAAQsmT,EAAatmT,MACrBN,EAAS4mT,EAAa5mT,OACtB2D,EAAQijT,EAAajjT,MACrB4lG,EAAUq9M,EAAar9M,QACvBn/D,EAAQw8Q,EAAax8Q,MACrB5jB,EAAOogS,EAAapgS,KACpBstS,EAAS17E,IAAyBwuE,EAActsE,KAC9CmqC,EAAQ2sS,GAAYt9P,GAAQ,GAGhC,GAAIvqN,EACF,OAAoB2oH,EAAAA,cAAoBmuY,IAA4B,CAClE33lB,MAAOrK,KAAKqK,MACZpI,MAAOjC,KAAK63C,MAAM51C,MAClBN,OAAQ3B,KAAK63C,MAAMl2C,OACnBo7lB,WAAY/8lB,KAAK+8lB,YACHlpY,EAAAA,cAAoB4hW,GAASx2V,IAAS,CAAC,EAAGmnD,EAAO,CAC/DnkR,MAAOA,EACPN,OAAQA,EACRoqC,MAAOA,EACP5jB,KAAMA,IACJnoB,KAAKu8mB,iBAAkB3oD,GAAczvgB,EAAUnkD,KAAK6zjB,aAEtD7zjB,KAAK63C,MAAMy+gB,qBAGblwS,EAAMviC,SAA4D,QAAhDw4X,EAAuBr8mB,KAAK63C,MAAMgsM,gBAA+C,IAAzBw4X,EAAkCA,EAAuB,EAEnIj2V,EAAMh4B,KAAgD,QAAxCkuX,EAAmBt8mB,KAAK63C,MAAMu2M,YAAuC,IAArBkuX,EAA8BA,EAAmB,cAC/Gl2V,EAAM/3B,UAAY,SAAU7gO,GAC1B+7Z,EAAO2wL,qBAAqBsC,cAAchvlB,EAG5C,EACA44P,EAAM93B,QAAU,WACdi7L,EAAO2wL,qBAAqB3mlB,OAG9B,GAEF,IAAI23H,EAASlrJ,KAAKy8mB,uBAClB,OAAoB5oZ,EAAAA,cAAoBmuY,IAA4B,CAClE33lB,MAAOrK,KAAKqK,MACZpI,MAAOjC,KAAK63C,MAAM51C,MAClBN,OAAQ3B,KAAK63C,MAAMl2C,OACnBo7lB,WAAY/8lB,KAAK+8lB,YACHlpY,EAAAA,cAAoB,MAAOoL,IAAS,CAClD13N,UAAWshY,GAAK,mBAAoBthY,GACpCjC,MAAOkzO,IAAc,CACnBntO,SAAU,WACV2uB,OAAQ,UACR/3B,MAAOA,EACPN,OAAQA,GACP2D,IACF4lJ,EAAQ,CACT3zG,IAAK,SAAa3vC,GAChB2hb,EAAOnpb,UAAYwH,CACrB,IACeisN,EAAAA,cAAoB4hW,GAASx2V,IAAS,CAAC,EAAGmnD,EAAO,CAChEnkR,MAAOA,EACPN,OAAQA,EACRoqC,MAAOA,EACP5jB,KAAMA,EACN7iB,MAAO0mmB,MACLhsmB,KAAKu8mB,iBAAkB3oD,GAAczvgB,EAAUnkD,KAAK6zjB,YAAa7zjB,KAAK08mB,eAAgB18mB,KAAK28mB,iBACjG,IAv6D4D3gP,GAAYg8L,IAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,IAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CAy6D7C,CAxlC2C,CAwlCzC1lR,EAAAA,WACFsB,IAAgBk9f,EAAyB,cAAe/V,GAExDnnf,IAAgBk9f,EAAyB,eAAgBv8X,IAAc,CACrE86F,OAAQ,aACR66R,YAAa,OACbpO,eAAgB,MAChB0R,OAAQ,EACR7vmB,OAAQ,CACNN,IAAK,EACLkK,MAAO,EACPpF,OAAQ,EACR/E,KAAM,GAERgzmB,mBAAmB,EACnBiB,WAAY,SACX39jB,IACHkgE,IAAgBk9f,EAAyB,4BAA4B,SAAUhzO,EAAWjiI,GACxF,IAAIz2N,EAAU04V,EAAU14V,QACtB9sB,EAAOwlX,EAAUxlX,KACjB4nC,EAAW49U,EAAU59U,SACrBliD,EAAQ8/X,EAAU9/X,MAClBN,EAASogY,EAAUpgY,OACnB2xU,EAASyuD,EAAUzuD,OACnB66R,EAAcpsO,EAAUosO,YACxBvsmB,EAASmgY,EAAUngY,OACjBi8lB,EAAiB/9V,EAAU+9V,eAC7BwO,EAAevsW,EAAUusW,aAC3B,QAA2Bp/lB,IAAvB6yP,EAAUoxV,SAAwB,CACpC,IAAIroI,EAAe+mJ,IAAmB7tO,GACtC,OAAOvpJ,IAAcA,IAAcA,IAAc,CAAC,EAAGqwO,GAAe,CAAC,EAAG,CACtEqoI,SAAU,GACTkjB,EAA0C57X,IAAcA,IAAc,CACvE3gM,MAAOkqV,GACN8mF,GAAe,CAAC,EAAG,CACpBqoI,SAAU,IACRpxV,IAAa,CAAC,EAAG,CACnB88W,YAAavzkB,EACbuhX,SAAUruY,EACV+0kB,UAAWrvlB,EACX46mB,WAAYl7mB,EACZm7mB,WAAYxpS,EACZypS,gBAAiB5O,EACjB6O,WAAYp7mB,EACZ4xjB,aAAcrvgB,GAElB,CACA,GAAI9a,IAAYy2N,EAAU88W,aAAergmB,IAASujP,EAAU8qJ,UAAY3oZ,IAAU69P,EAAUwxV,WAAa3vlB,IAAWm+P,EAAU+8W,YAAcvpS,IAAWxzE,EAAUg9W,YAAc3O,IAAgBruW,EAAUi9W,kBAAoBnsD,GAAahvjB,EAAQk+P,EAAUk9W,YAAa,CACvQ,IAAIC,EAAgBrN,IAAmB7tO,GAGnCm7O,EAAoB,CAGtBlQ,OAAQltW,EAAUktW,OAClBC,OAAQntW,EAAUmtW,OAGlB8C,gBAAiBjwW,EAAUiwW,iBAEzBoN,EAAiB3kY,IAAcA,IAAc,CAAC,EAAGq0X,IAAe/sW,EAAWvjP,EAAM+2T,IAAU,CAAC,EAAG,CACjG49Q,SAAUpxV,EAAUoxV,SAAW,IAE7B7jX,EAAWmL,IAAcA,IAAcA,IAAc,CAAC,EAAGykY,GAAgBC,GAAoBC,GACjG,OAAO3kY,IAAcA,IAAcA,IAAc,CAAC,EAAGnL,GAAW+mY,EAA0C57X,IAAc,CACtH3gM,MAAOkqV,GACN10J,GAAWyyB,IAAa,CAAC,EAAG,CAC7B88W,YAAavzkB,EACbuhX,SAAUruY,EACV+0kB,UAAWrvlB,EACX46mB,WAAYl7mB,EACZm7mB,WAAYxpS,EACZypS,gBAAiB5O,EACjB6O,WAAYp7mB,EACZ4xjB,aAAcrvgB,GAElB,CACA,IAAKmvgB,GAAgBnvgB,EAAU27M,EAAU0zT,cAAe,CACtD,IAAI4pD,EAAuBC,EAAcC,EAAuBC,EAE5DC,EAAQ9qD,GAAgBvugB,EAAU4piB,KAClC1pX,EAAam5Y,GAA0I,QAAjIJ,EAAyD,QAAhCC,EAAeG,EAAM3lkB,aAAoC,IAAjBwlkB,OAA0B,EAASA,EAAah5Y,kBAAkD,IAA1B+4Y,EAAmCA,EAAyCvf,EAC3OpqM,EAAW+pN,GAA2I,QAAlIF,EAA0D,QAAjCC,EAAgBC,EAAM3lkB,aAAqC,IAAlB0lkB,OAA2B,EAASA,EAAc9pN,gBAAgD,IAA1B6pN,EAAmCA,EAAuCjR,EACxOoR,EAA8Bp5Y,IAAew5X,GAAkBpqM,IAAa44M,EAI5EqR,GADiBjtgB,KAAMl0F,KACSkhmB,EAA8B39W,EAAUoxV,SAAWpxV,EAAUoxV,SAAW,EAC5G,OAAO14W,IAAcA,IAAc,CACjC04W,SAAUwsB,GACTtJ,EAA0C57X,IAAcA,IAAc,CACvE3gM,MAAOkqV,GACNjiI,GAAY,CAAC,EAAG,CACjBoxV,SAAUwsB,EACV7f,eAAgBx5X,EAChBgoY,aAAc54M,IACZ3zJ,IAAa,CAAC,EAAG,CACnB0zT,aAAcrvgB,EACd05iB,eAAgBx5X,EAChBgoY,aAAc54M,GAElB,CACA,OAAO,IACT,IACA57S,IAAgBk9f,EAAyB,mBAAmB,SAAU9pe,EAAQpzF,EAAO/yC,GACnF,IAAIkuV,EAQJ,OANEA,GADgBx7O,EAAAA,EAAAA,gBAAeyzB,IACZp0B,EAAAA,EAAAA,cAAao0B,EAAQpzF,GAC/BjtB,KAAWqgH,GACdA,EAAOpzF,GAEMg8K,EAAAA,cAAoB0qW,GAAK1mhB,GAE1Bg8K,EAAAA,cAAoB+hW,GAAO,CAC7CrujB,UAAW,sBACXzC,IAAKA,GACJkuV,EACL,IACA,IAAI2qR,GAAgCpmgB,EAAAA,EAAAA,aAAW,SAA0B1/D,EAAON,GAC9E,OAAoBs8K,EAAAA,cAAoBkhZ,EAAyB91Y,IAAS,CAAC,EAAGpnL,EAAO,CACnFN,IAAKA,IAET,IAEA,OADAomkB,EAAiB97jB,YAAckzjB,EAAwBlzjB,YAChD87jB,CACT,EEljEI3vY,IAAY,CAAC,OAAQ,SAAU,eAAgB,OACjDiO,IAAa,CAAC,OAChB,SAASz5O,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAASynN,IAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAE3e,SAASk0N,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASqD,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASw1N,IAAmB32F,GAAO,OAInC,SAA4BA,GAAO,GAAIxrJ,MAAMqR,QAAQm6I,GAAM,OAAO4na,IAAkB5na,EAAM,CAJhDk2a,CAAmBl2a,IAG7D,SAA0BsjN,GAAQ,GAAsB,qBAAXjtW,QAAmD,MAAzBitW,EAAKjtW,OAAOC,WAA2C,MAAtBgtW,EAAK,cAAuB,OAAO9uW,MAAM8J,KAAKglW,EAAO,CAHxFkyN,CAAiBx1a,IAEtF,SAAqC/5H,EAAG0hiB,GAAU,IAAK1hiB,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO2hiB,IAAkB3hiB,EAAG0hiB,GAAS,IAAI/qjB,EAAIjD,OAAOnG,UAAUmO,SAASjO,KAAKuyB,GAAGttB,MAAM,GAAI,GAAc,WAANiE,GAAkBqpB,EAAE1vB,cAAaqG,EAAIqpB,EAAE1vB,YAAYqL,MAAM,GAAU,QAANhF,GAAqB,QAANA,EAAa,OAAOpI,MAAM8J,KAAK2nB,GAAI,GAAU,cAANrpB,GAAqB,2CAA2C+T,KAAK/T,GAAI,OAAOgrjB,IAAkB3hiB,EAAG0hiB,EAAS,CAFjUE,CAA4B7na,IAC1H,WAAgC,MAAM,IAAIz9I,UAAU,uIAAyI,CAD3D4zjB,EAAsB,CAKxJ,SAASvO,IAAkB5na,EAAK5nI,IAAkB,MAAPA,GAAeA,EAAM4nI,EAAIlrJ,UAAQsjB,EAAM4nI,EAAIlrJ,QAAQ,IAAK,IAAID,EAAI,EAAGyhK,EAAO,IAAI9hK,MAAM4jB,GAAMvjB,EAAIujB,EAAKvjB,IAAKyhK,EAAKzhK,GAAKmrJ,EAAInrJ,GAAI,OAAOyhK,CAAM,CAElL,SAASq1Z,IAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,IAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASyoa,IAAWxuZ,EAAGpB,EAAG9E,GAAK,OAAO8E,EAAI8uZ,IAAgB9uZ,GAC1D,SAAoCvzB,EAAMgB,GAAQ,GAAIA,IAA2B,WAAlByC,IAAQzC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI6O,UAAU,4DAA+D,OAC1P,SAAgC7P,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI43O,eAAe,6DAAgE,OAAO53O,CAAM,CAD4F4gQ,CAAuB5gQ,EAAO,CADjOsib,CAA2B3tZ,EAAG4tZ,MAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,IAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,GAAK,CAG1M,SAAS8zZ,MAA8B,IAAM,IAAI5tZ,GAAK3hB,QAAQlS,UAAUkhB,QAAQhhB,KAAK4hD,QAAQC,UAAU7vC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO2hB,GAAI,CAAE,OAAQ4tZ,IAA4B,WAAuC,QAAS5tZ,CAAG,IAAM,CAClP,SAAS0tZ,IAAgB9uZ,GAA+J,OAA1J8uZ,IAAkBp7a,OAAO4O,eAAiB5O,OAAOmN,eAAe5F,OAAS,SAAyB+kB,GAAK,OAAOA,EAAEvoB,WAAa/D,OAAOmN,eAAemf,EAAI,EAAU8uZ,IAAgB9uZ,EAAI,CAEnN,SAAS2liB,IAAgB3liB,EAAGjL,GAA6I,OAAxI4wiB,IAAkBjyjB,OAAO4O,eAAiB5O,OAAO4O,eAAerH,OAAS,SAAyB+kB,EAAGjL,GAAsB,OAAjBiL,EAAEvoB,UAAYsd,EAAUiL,CAAG,EAAU2liB,IAAgB3liB,EAAGjL,EAAI,CACvM,SAASwwF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,IAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAC3O,SAASsvb,IAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAoBrG,IAAI63mB,IAAoB,SAAUxkZ,GACvC,SAASwkZ,IACP,IAAIt+kB,GAjCR,SAAyBujC,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CAkCpJooO,CAAgBh3O,KAAM+4mB,GACtB,IAAK,IAAIzoY,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAsDzB,OAnDA14H,IADAp9E,EAAQynZ,IAAWlib,KAAM+4mB,EAAM,GAAGv0mB,OAAO2lB,IAClB,QAAS,CAC9ByxkB,qBAAqB,EACrBrzB,YAAa,IAEf1wd,IAAgBp9E,EAAO,iCAAiC,SAAU8tiB,EAAapnkB,GAC7E,MAAO,GAAGqD,OAAOrD,EAAQ,OAAOqD,OAAO+jkB,EAAcpnkB,EAAQ,KAC/D,IACA02G,IAAgBp9E,EAAO,sBAAsB,SAAUt5B,EAAQonkB,EAAanoY,GAC1E,IAAI7nE,EAAa6nE,EAAMnhK,QAAO,SAAUskJ,EAAKrvK,GAC3C,OAAOqvK,EAAMrvK,CACf,IAGA,IAAKqkH,EACH,OAAO99F,EAAMmjlB,8BAA8Br1C,EAAapnkB,GAM1D,IAJA,IAAI6yC,EAAQxyC,KAAKC,MAAMN,EAASo3H,GAC5Bslf,EAAe18mB,EAASo3H,EACxBulf,EAAav1C,EAAcpnkB,EAC3B48mB,EAAc,GACT78mB,EAAI,EAAGqxG,EAAM,EAAGrxG,EAAIk/L,EAAMj/L,OAAQoxG,GAAO6tF,EAAMl/L,KAAMA,EAC5D,GAAIqxG,EAAM6tF,EAAMl/L,GAAK28mB,EAAc,CACjCE,EAAc,GAAGv5mB,OAAOw+O,IAAmB5iD,EAAMp7L,MAAM,EAAG9D,IAAK,CAAC28mB,EAAetrgB,IAC/E,KACF,CAEF,IAAIyrgB,EAAaD,EAAY58mB,OAAS,IAAM,EAAI,CAAC,EAAG28mB,GAAc,CAACA,GACnE,MAAO,GAAGt5mB,OAAOw+O,IAAmB+1X,EAAKzijB,OAAO8pI,EAAOpsJ,IAASgvM,IAAmB+6X,GAAcC,GAAY3wmB,KAAI,SAAUujC,GACzH,MAAO,GAAGpsC,OAAOosC,EAAM,KACzB,IAAG3rC,KAAK,KACV,IACA4yG,IAAgBp9E,EAAO,KAAMs5E,GAAS,mBACtC8D,IAAgBp9E,EAAO,WAAW,SAAU7yB,GAC1C6yB,EAAMwjlB,UAAYr2mB,CACpB,IACAiwG,IAAgBp9E,EAAO,sBAAsB,WAC3CA,EAAMy7E,SAAS,CACb0lf,qBAAqB,IAEnBnhkB,EAAMod,MAAMmuhB,gBACdvriB,EAAMod,MAAMmuhB,gBAEhB,IACAnud,IAAgBp9E,EAAO,wBAAwB,WAC7CA,EAAMy7E,SAAS,CACb0lf,qBAAqB,IAEnBnhkB,EAAMod,MAAMquhB,kBACdzriB,EAAMod,MAAMquhB,kBAEhB,IACOzriB,CACT,CAEA,OArFF,SAAmB+5L,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7lN,UAAU,sDAAyD4lN,EAAS30N,UAAYmG,OAAO4D,OAAO6qN,GAAcA,EAAW50N,UAAW,CAAE+C,YAAa,CAAEhE,MAAO41N,EAAUjgN,UAAU,EAAMnF,cAAc,KAAWpJ,OAAOgN,eAAewhN,EAAU,YAAa,CAAEjgN,UAAU,IAAckgN,GAAYwjW,IAAgBzjW,EAAUC,EAAa,CAoFjcqiB,CAAUiiY,EAAMxkZ,GA1FI9uM,EA2FAszlB,EA3FyB98O,EAoXzC,CAAC,CACHn3X,IAAK,2BACLlG,MAAO,SAAkCmjY,EAAWjiI,GAClD,OAAIiiI,EAAU85N,cAAgB/7V,EAAUg8V,gBAC/B,CACLA,gBAAiB/5N,EAAU85N,YAC3BqiB,UAAWn8O,EAAUvgI,OACrB28W,WAAYr+W,EAAUo+W,WAGtBn8O,EAAUvgI,SAAW1B,EAAUo+W,UAC1B,CACLA,UAAWn8O,EAAUvgI,QAGlB,IACT,GACC,CACD18P,IAAK,SACLlG,MAAO,SAAgBwhM,EAAOpsJ,GAG5B,IAFA,IAAIoqkB,EAAYh+a,EAAMj/L,OAAS,IAAM,EAAI,GAAGqD,OAAOw+O,IAAmB5iD,GAAQ,CAAC,IAAMA,EACjFnvL,EAAS,GACJ/P,EAAI,EAAGA,EAAI8yC,IAAS9yC,EAC3B+P,EAAS,GAAGzM,OAAOw+O,IAAmB/xO,GAAS+xO,IAAmBo7X,IAEpE,OAAOntmB,CACT,GACC,CACDnM,IAAK,gBACLlG,MAAO,SAAuBqsI,EAAQpzF,GACpC,IAAIwmkB,EACJ,GAAkBxqZ,EAAAA,eAAqB5oF,GACrCoze,EAAuBxqZ,EAAAA,aAAmB5oF,EAAQpzF,QAC7C,GAAIjtB,KAAWqgH,GACpBoze,EAAUpze,EAAOpzF,OACZ,CACL,IAAI/yC,EAAM+yC,EAAM/yC,IACd+ib,EAAW9tM,IAAyBliM,EAAOokM,KACzC10O,EAAYshY,GAAK,oBAAuC,mBAAX59P,EAAuBA,EAAO1jI,UAAY,IAC3F82mB,EAAuBxqZ,EAAAA,cAAoB0qW,GAAKt/V,IAAS,CACvDn6N,IAAKA,GACJ+ib,EAAU,CACXtgb,UAAWA,IAEf,CACA,OAAO82mB,CACT,KAla+BriP,EA2FP,CAAC,CACzBl3X,IAAK,oBACLlG,MAAO,WACL,GAAKoB,KAAK63C,MAAMkhhB,kBAAhB,CAGA,IAAIwP,EAAcvokB,KAAKyokB,iBACvBzokB,KAAKk2G,SAAS,CACZqyd,YAAaA,GAHf,CAKF,GACC,CACDzjkB,IAAK,qBACLlG,MAAO,WACL,GAAKoB,KAAK63C,MAAMkhhB,kBAAhB,CAGA,IAAIwP,EAAcvokB,KAAKyokB,iBACnBF,IAAgBvokB,KAAKqK,MAAMk+jB,aAC7BvokB,KAAKk2G,SAAS,CACZqyd,YAAaA,GAJjB,CAOF,GACC,CACDzjkB,IAAK,iBACLlG,MAAO,WACL,IAAI0/mB,EAAWt+mB,KAAKi+mB,UACpB,IACE,OAAOK,GAAYA,EAAS71C,gBAAkB61C,EAAS71C,kBAAoB,CAC7E,CAAE,MAAOhlkB,GACP,OAAO,CACT,CACF,GACC,CACDqB,IAAK,iBACLlG,MAAO,SAAwBk+lB,EAAUC,GACvC,GAAI/8lB,KAAK63C,MAAMkhhB,oBAAsB/4jB,KAAKqK,MAAMuxlB,oBAC9C,OAAO,KAET,IAAI7tW,EAAc/tP,KAAK63C,MACrB2pN,EAASzT,EAAYyT,OACrBqlV,EAAQ94V,EAAY84V,MACpBC,EAAQ/4V,EAAY+4V,MACpBxzQ,EAASvlF,EAAYulF,OAEnB0pR,EAAgBxqC,GADPzkU,EAAY5pM,SACmBwiiB,KAC5C,IAAKqW,EACH,OAAO,KAET,IAAIpW,EAAqB,SAA4BqW,EAAW5zjB,GAC9D,MAAO,CACL1e,EAAGsykB,EAAUtykB,EACboK,EAAGkokB,EAAUlokB,EACbn2B,MAAOq+lB,EAAUr+lB,MACjBqolB,SAAU0B,IAAkBsU,EAAU31hB,QAASj+B,GAEnD,EACI6zjB,EAAgB,CAClB/kS,SAAU2kS,EAAW,iBAAiBt4lB,OAAOu4lB,EAAY,KAAO,MAElE,OAAoBlpY,EAAAA,cAAoB+hW,GAAOsnC,EAAeF,EAAc3vlB,KAAI,SAAU6kC,GACxF,OAAoB2hL,EAAAA,aAAmB3hL,EAAM,CAC3CptC,IAAK,OAAON,OAAO0tC,EAAK2F,MAAMxO,SAC9B9sB,KAAMilP,EACNqlV,MAAOA,EACPC,MAAOA,EACPxzQ,OAAQA,EACRszQ,mBAAoBA,GAExB,IACF,GACC,CACD9hlB,IAAK,aACLlG,MAAO,SAAoBk+lB,EAAUyhB,EAASxhB,GAE5C,GADwB/8lB,KAAK63C,MAAMkhhB,oBACT/4jB,KAAKqK,MAAMuxlB,oBACnC,OAAO,KAET,IAAIr2S,EAAevlT,KAAK63C,MACtBm7S,EAAMztC,EAAaytC,IACnBxxF,EAAS+jD,EAAa/jD,OACtBn4N,EAAUk8Q,EAAal8Q,QACrBq6jB,EAAY3wC,GAAY/yjB,KAAK63C,OAAO,GACpC2mkB,EAAiBzrD,GAAY//N,GAAK,GAClCmvB,EAAO3gH,EAAOn0P,KAAI,SAAUqjB,EAAOxvB,GACrC,IAAI2mb,EAAWrvM,IAAcA,IAAcA,IAAc,CACvD1zO,IAAK,OAAON,OAAOtD,GACnB5B,EAAG,GACFokmB,GAAY8a,GAAiB,CAAC,EAAG,CAClC5/mB,MAAO8xB,EAAM9xB,MACbyqC,QAASA,EACT4wF,GAAIvpG,EAAM/F,EACVuvG,GAAIxpG,EAAMqE,EACV7kB,MAAOhP,EACPomE,QAAS52C,EAAM42C,UAEjB,OAAOyxiB,EAAK0F,cAAczrR,EAAK60F,EACjC,IACI62L,EAAY,CACdvmT,SAAU2kS,EAAW,iBAAiBt4lB,OAAO+5mB,EAAU,GAAK,SAAS/5mB,OAAOu4lB,EAAY,KAAO,MAEjG,OAAoBlpY,EAAAA,cAAoB+hW,GAAO32V,IAAS,CACtD13N,UAAW,qBACXzC,IAAK,QACJ45mB,GAAYv8P,EACjB,GACC,CACDr9W,IAAK,wBACLlG,MAAO,SAA+B4iQ,EAAQs7V,EAAUC,EAAYlljB,GAClE,IAAI8tQ,EAAe3lT,KAAK63C,MACtB7wC,EAAO2+S,EAAa3+S,KACpBssU,EAAS3tB,EAAa2tB,OACtBy2R,EAAepkT,EAAaokT,aAE5Bt0S,GADM9P,EAAapuQ,IACVwiM,IAAyB4rE,EAAc33E,MAC9C2wY,EAAanmY,IAAcA,IAAcA,IAAc,CAAC,EAAGu6U,GAAYt9P,GAAQ,IAAQ,CAAC,EAAG,CAC7F7pN,KAAM,OACNrkG,UAAW,sBACX4wT,SAAU2kS,EAAW,iBAAiBt4lB,OAAOu4lB,EAAY,KAAO,KAChEv7V,OAAQA,GACP3pN,GAAQ,CAAC,EAAG,CACb7wC,KAAMA,EACNssU,OAAQA,EACRy2R,aAAcA,IAEhB,OAAoBl2Y,EAAAA,cAAoB02Y,IAAOtrY,IAAS,CAAC,EAAG0/Y,EAAY,CACtEr2C,QAAStokB,KAAKsokB,UAElB,GACC,CACDxjkB,IAAK,2BACLlG,MAAO,SAAkCk+lB,EAAUC,GACjD,IAAI/8V,EAAShgQ,KACTkmT,EAAelmT,KAAK63C,MACtB2pN,EAAS0kD,EAAa1kD,OACtBt6M,EAAkBg/P,EAAah/P,gBAC/B6xgB,EAAoB7yQ,EAAa6yQ,kBACjCqP,EAAiBliR,EAAakiR,eAC9B1mc,EAAoBwkL,EAAaxkL,kBACjCm3b,EAAkB3yQ,EAAa2yQ,gBAC/BgjC,EAAc31S,EAAa21S,YAC3B+iB,EAAmB14T,EAAa04T,iBAChC38mB,EAAQikT,EAAajkT,MACrBN,EAASukT,EAAavkT,OACpBm3f,EAAc94f,KAAKqK,MACrB8zmB,EAAarlH,EAAYqlH,WACzB51C,EAAczvE,EAAYyvE,YAC5B,OAAoB10W,EAAAA,cAAoBwxW,GAAS,CAC/C3wX,MAAO0zX,EACPvnc,SAAUa,EACVuzG,SAAU8jV,EACV19I,OAAQw9I,EACRlujB,KAAM,CACJ+oB,EAAG,GAEL5oB,GAAI,CACF4oB,EAAG,GAEL5uB,IAAK,QAAQN,OAAOq3lB,GACpB71B,eAAgBhmkB,KAAKm8lB,mBACrBj2B,iBAAkBlmkB,KAAKk8lB,uBACtB,SAAUjxc,GACX,IAAIv3H,EAAIu3H,EAAKv3H,EACb,GAAIyqlB,EAAY,CACd,IAAIU,EAAuBV,EAAWh9mB,OAASqgQ,EAAOrgQ,OAClDi7lB,EAAW56V,EAAOn0P,KAAI,SAAUqjB,EAAOxgB,GACzC,IAAI4umB,EAAiBt9mB,KAAKC,MAAMyO,EAAQ2umB,GACxC,GAAIV,EAAWW,GAAiB,CAC9B,IAAIlilB,EAAOuhlB,EAAWW,GAClBziB,EAAgB/rC,GAAkB1zhB,EAAKjS,EAAG+F,EAAM/F,GAChD2xkB,EAAgBhsC,GAAkB1zhB,EAAK7H,EAAGrE,EAAMqE,GACpD,OAAOyjN,IAAcA,IAAc,CAAC,EAAG9nN,GAAQ,CAAC,EAAG,CACjD/F,EAAG0xkB,EAAc3okB,GACjBqB,EAAGunkB,EAAc5okB,IAErB,CAGA,GAAIkrlB,EAAkB,CACpB,IAAIG,EAAiBzuD,GAA0B,EAARrujB,EAAWyuB,EAAM/F,GACpDq0lB,EAAiB1uD,GAAkB3ujB,EAAS,EAAG+uB,EAAMqE,GACzD,OAAOyjN,IAAcA,IAAc,CAAC,EAAG9nN,GAAQ,CAAC,EAAG,CACjD/F,EAAGo0lB,EAAerrlB,GAClBqB,EAAGiqlB,EAAetrlB,IAEtB,CACA,OAAO8kN,IAAcA,IAAc,CAAC,EAAG9nN,GAAQ,CAAC,EAAG,CACjD/F,EAAG+F,EAAM/F,EACToK,EAAGrE,EAAMqE,GAEb,IACA,OAAOirO,EAAOi/W,sBAAsB7iB,EAAUU,EAAUC,EAC1D,CACA,IAEImiB,EADAC,EADe7uD,GAAkB,EAAGiY,EACxBS,CAAat1iB,GAE7B,GAAIwzB,EAAiB,CACnB,IAAIk5I,EAAQ,GAAG57L,OAAO0iD,GAAiB/tC,MAAM,aAAa9L,KAAI,SAAUwtO,GACtE,OAAOt4M,WAAWs4M,EACpB,IACAqkY,EAAyBl/W,EAAOo/W,mBAAmBD,EAAW52C,EAAanoY,EAC7E,MACE8+a,EAAyBl/W,EAAO49W,8BAA8Br1C,EAAa42C,GAE7E,OAAOn/W,EAAOi/W,sBAAsBz9W,EAAQs7V,EAAUC,EAAY,CAChE71iB,gBAAiBg4jB,GAErB,GACF,GACC,CACDp6mB,IAAK,cACLlG,MAAO,SAAqBk+lB,EAAUC,GACpC,IAAI11S,EAAernT,KAAK63C,MACtB2pN,EAAS6lD,EAAa7lD,OACtBu3T,EAAoB1xQ,EAAa0xQ,kBAC/B7/D,EAAel5f,KAAKqK,MACtB8zmB,EAAajlH,EAAailH,WAC1B51C,EAAcrvE,EAAaqvE,YAC7B,OAAIxP,GAAqBv3T,GAAUA,EAAOrgQ,UAAYg9mB,GAAc51C,EAAc,IAAMn4d,MAAQ+tgB,EAAY38W,IACnGxhQ,KAAKq/mB,yBAAyBviB,EAAUC,GAE1C/8lB,KAAKi/mB,sBAAsBz9W,EAAQs7V,EAAUC,EACtD,GACC,CACDj4lB,IAAK,SACLlG,MAAO,WACL,IAAI0gnB,EACA/2T,EAAevoT,KAAK63C,MACtBiihB,EAAOvxQ,EAAauxQ,KACpB9mO,EAAMzqC,EAAayqC,IACnBxxF,EAAS+mD,EAAa/mD,OACtBj6P,EAAYghT,EAAahhT,UACzBs/kB,EAAQt+R,EAAas+R,MACrBC,EAAQv+R,EAAau+R,MACrBxllB,EAAMinT,EAAajnT,IACnBD,EAAOknT,EAAalnT,KACpBY,EAAQsmT,EAAatmT,MACrBN,EAAS4mT,EAAa5mT,OACtBo3jB,EAAoBxwQ,EAAawwQ,kBACjCt1iB,EAAK8kS,EAAa9kS,GACpB,GAAIq2iB,IAASt4T,IAAWA,EAAOrgQ,OAC7B,OAAO,KAET,IAAIy6lB,EAAsB57lB,KAAKqK,MAAMuxlB,oBACjC2jB,EAAmC,IAAlB/9W,EAAOrgQ,OACxBw0jB,EAAa9sL,GAAK,gBAAiBthY,GACnC41lB,EAAYtW,GAASA,EAAMqG,kBAC3BkQ,EAAYtW,GAASA,EAAMoG,kBAC3B4P,EAAWK,GAAaC,EACxBL,EAAatsf,KAAMhtF,GAAMzjB,KAAKyjB,GAAKA,EACnCi5J,EAAqD,QAA5C4ic,EAAevsD,GAAY//N,GAAK,UAAqC,IAAjBssR,EAA0BA,EAAe,CACtGhgnB,EAAG,EACHgoD,YAAa,GAEfk4jB,EAAU9ic,EAAMp9K,EAChBA,OAAgB,IAAZkgnB,EAAqB,EAAIA,EAC7BC,EAAoB/ic,EAAMp1H,YAC1BA,OAAoC,IAAtBm4jB,EAA+B,EAAIA,EAEjDC,GlL1NgB,SAAoB1sR,GAC1C,OAAOA,GAAwB,WAAjBxwV,GAAQwwV,IAAqB,YAAaA,CAC1D,CkLuNkB2sR,CAAW3sR,GAAOA,EAAM,CAAC,GACburR,QACtBA,OAA4B,IAAlBmB,GAAkCA,EAC1ChvR,EAAc,EAAJpxV,EAAQgoD,EACtB,OAAoBusK,EAAAA,cAAoB+hW,GAAO,CAC7CrujB,UAAWoujB,GACVwnC,GAAaC,EAAyBvpY,EAAAA,cAAoB,OAAQ,KAAmBA,EAAAA,cAAoB,WAAY,CACtHpwM,GAAI,YAAYjf,OAAOu4lB,IACTlpY,EAAAA,cAAoB,OAAQ,CAC1ClpM,EAAGwykB,EAAY97lB,EAAOA,EAAOY,EAAQ,EACrC8yB,EAAGqokB,EAAY97lB,EAAMA,EAAMK,EAAS,EACpCM,MAAOk7lB,EAAYl7lB,EAAgB,EAARA,EAC3BN,OAAQy7lB,EAAYz7lB,EAAkB,EAATA,MACzB48mB,GAAwB1qZ,EAAAA,cAAoB,WAAY,CAC5DpwM,GAAI,iBAAiBjf,OAAOu4lB,IACdlpY,EAAAA,cAAoB,OAAQ,CAC1ClpM,EAAGtpB,EAAOqvV,EAAU,EACpB37T,EAAGzzB,EAAMovV,EAAU,EACnBzuV,MAAOA,EAAQyuV,EACf/uV,OAAQA,EAAS+uV,MACZ,MAAO6uR,GAAkBv/mB,KAAK4/mB,YAAY9iB,EAAUC,GAAa/8lB,KAAKs9lB,eAAeR,EAAUC,IAAcwiB,GAAkBvsR,IAAQhzV,KAAK6/mB,WAAW/iB,EAAUyhB,EAASxhB,KAAehkC,GAAqB6iC,IAAwBtG,IAAUV,mBAAmB50lB,KAAK63C,MAAO2pN,GACxR,MAnX0Ew2T,IAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,IAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CAoa/C,CAvY+B,CAuY7BxlR,EAAAA,eC3aK,SAASqpgB,IAAyBjumB,EAAO5I,EAAGsuB,GACjD,GAAItuB,EAAI,EACN,MAAO,GAET,GAAU,IAANA,QAAuBgE,IAAZsqB,EACb,OAAO1lB,EAGT,IADA,IAAIZ,EAAS,GACJ/P,EAAI,EAAGA,EAAI2Q,EAAM1Q,OAAQD,GAAK+H,EAAG,CACxC,QAAgBgE,IAAZsqB,IAA+C,IAAtBA,EAAQ1lB,EAAM3Q,IAGzC,OAFA+P,EAAOpP,KAAKgQ,EAAM3Q,GAItB,CACA,OAAO+P,CACT,CCvBO,SAAS8umB,IAAmBC,EAAaC,EAAU/yf,GAKxD,OhCqQmC,SAAiCu/G,GACpE,IAAIxqO,EAAQwqO,EAAMxqO,MAChBN,EAAS8qO,EAAM9qO,OAGbu+mB,EAdC,SAAwBhzf,GAC7B,OAAQA,EAAQ,IAAM,KAAO,GAC/B,CAYwBizf,CAFV1wmB,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,GAG5E2wmB,EAAeF,EAAkB1+mB,KAAK2rH,GAAK,IAI3Ckzf,EAAiB7+mB,KAAK8+mB,KAAK3+mB,EAASM,GACpCs+mB,EAAcH,EAAeC,GAAkBD,EAAe5+mB,KAAK2rH,GAAKkzf,EAAiB1+mB,EAASH,KAAK83H,IAAI8mf,GAAgBn+mB,EAAQT,KAAK+3H,IAAI6mf,GAChJ,OAAO5+mB,KAAK6E,IAAIk6mB,EAClB,CgClRSC,CAJI,CACTv+mB,MAAO+9mB,EAAY/9mB,MAAQg+mB,EAASh+mB,MACpCN,OAAQq+mB,EAAYr+mB,OAASs+mB,EAASt+mB,QAEHurH,EACvC,CAkBO,SAAS8U,IAAUxb,EAAMi6f,EAAcjoN,EAAS31Y,EAAOC,GAG5D,GAAI0jG,EAAOi6f,EAAej6f,EAAO3jG,GAAS2jG,EAAOi6f,EAAej6f,EAAO1jG,EACrE,OAAO,EAET,IAAIT,EAAOm2Y,IACX,OAAOhyS,GAAQi6f,EAAej6f,EAAOnkG,EAAO,EAAIQ,IAAU,GAAK2jG,GAAQi6f,EAAej6f,EAAOnkG,EAAO,EAAIS,IAAQ,CAClH,CClCA,SAAStgB,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAASxf,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAsGpO,SAASi+mB,IAAS7okB,EAAOza,EAAUygG,GACxC,IAAIune,EAAOvtjB,EAAMutjB,KACf11B,EAAQ73hB,EAAM63hB,MACdpxO,EAAUzmT,EAAMymT,QAChBqiR,EAAa9okB,EAAM8okB,WACnB59mB,EAAc80C,EAAM90C,YACpBoyI,EAAWt9F,EAAMs9F,SACjB65c,EAAgBn3iB,EAAMm3iB,cACtBhslB,EAAO60C,EAAM70C,KACbkqH,EAAQr1E,EAAMq1E,MAChB,IAAKwid,IAAUA,EAAMvukB,SAAWikmB,EAC9B,MAAO,GAET,GAAIh+f,GAAS+tC,IAAaokb,GAAOC,MAC/B,ODpFG,SAAgCkW,EAAOv6b,GAC5C,OAAO2qe,IAAyBpwC,EAAOv6b,EAAW,EACpD,CCkFWyre,CAAuBlxC,EAA2B,kBAAbv6b,GAAyB/tC,GAAS+tC,GAAYA,EAAW,GAEvG,IAAI0re,EAAa,GACbC,EAA0B,QAAhB/9mB,GAAyC,WAAhBA,EAA2B,QAAU,SACxEk9mB,EAAWj9mB,GAAoB,UAAZ89mB,EAAsBv2C,GAAcvnkB,EAAM,CAC/Do6B,SAAUA,EACVygG,cAAeA,IACZ,CACH57H,MAAO,EACPN,OAAQ,GAENo/mB,EAAc,SAAqBtimB,EAASvO,GAC9C,IAAItR,EAAQgsB,KAAWokkB,GAAiBA,EAAcvwkB,EAAQ7f,MAAOsR,GAASuO,EAAQ7f,MAEtF,MAAmB,UAAZkinB,EAAsBf,IAAmBx1C,GAAc3rkB,EAAO,CACnEw+B,SAAUA,EACVygG,cAAeA,IACboif,EAAU/yf,GAASq9c,GAAc3rkB,EAAO,CAC1Cw+B,SAAUA,EACVygG,cAAeA,IACdijf,EACL,EACIt6f,EAAOkpd,EAAMvukB,QAAU,EAAI2ujB,GAAS4f,EAAM,GAAGpY,WAAaoY,EAAM,GAAGpY,YAAc,EACjF0pD,EDrIC,SAA2B1iR,EAAS93O,EAAMs6f,GAC/C,IAAIG,EAAsB,UAAZH,EACVn2lB,EAAI2zU,EAAQ3zU,EACdoK,EAAIupU,EAAQvpU,EACZ9yB,EAAQq8V,EAAQr8V,MAChBN,EAAS28V,EAAQ38V,OACnB,OAAa,IAAT6kH,EACK,CACL3jG,MAAOo+lB,EAAUt2lB,EAAIoK,EACrBjS,IAAKm+lB,EAAUt2lB,EAAI1oB,EAAQ8yB,EAAIpzB,GAG5B,CACLkhB,MAAOo+lB,EAAUt2lB,EAAI1oB,EAAQ8yB,EAAIpzB,EACjCmhB,IAAKm+lB,EAAUt2lB,EAAIoK,EAEvB,CCqHmBmslB,CAAkB5iR,EAAS93O,EAAMs6f,GAClD,MAAiB,6BAAb3re,EC7IC,SAA6B3uB,EAAMw6f,EAAYD,EAAarxC,EAAOixC,GA+CxE,IA9CA,IA6CEQ,EA7CElwmB,GAAUy+jB,GAAS,IAAI1qkB,QACvBo8mB,EAAeJ,EAAWn+lB,MAC5BC,EAAMk+lB,EAAWl+lB,IACf5S,EAAQ,EAGRmxmB,EAAW,EACXx+lB,EAAQu+lB,EACR/uI,EAAQ,WAIR,IAAI3hd,EAAkB,OAAVg/iB,QAA4B,IAAVA,OAAmB,EAASA,EAAMx/jB,GAGhE,QAAcjD,IAAVyjB,EACF,MAAO,CACLwE,EAAG4qlB,IAAyBpwC,EAAO2xC,IAKvC,IACIh/lB,EADAnhB,EAAIgP,EAEJsoZ,EAAU,WAIZ,YAHavrZ,IAAToV,IACFA,EAAO0+lB,EAAYrwlB,EAAOxvB,IAErBmhB,CACT,EACIi/lB,EAAY5wlB,EAAM4miB,WAElBiqD,EAAmB,IAAVrxmB,GAAe8xH,IAAUxb,EAAM86f,EAAW9oN,EAAS31Y,EAAOC,GAClEy+lB,IAEHrxmB,EAAQ,EACR2S,EAAQu+lB,EACRC,GAAY,GAEVE,IAEF1+lB,EAAQy+lB,EAAY96f,GAAQgyS,IAAY,EAAImoN,GAC5CzwmB,GAASmxmB,EAEb,EAEKA,GAAYpwmB,EAAO9P,QAExB,GADAggnB,EAAO9uI,IACG,OAAO8uI,EAAKjslB,EAExB,MAAO,EACT,CD0FWsslB,CAAoBh7f,EAAMw6f,EAAYD,EAAarxC,EAAOixC,IAGjEE,EADe,kBAAb1re,GAA6C,qBAAbA,EAjGtC,SAAuB3uB,EAAMw6f,EAAYD,EAAarxC,EAAOixC,EAAYc,GACvE,IAAIxwmB,GAAUy+jB,GAAS,IAAI1qkB,QACvByf,EAAMxT,EAAO9P,OACb0hB,EAAQm+lB,EAAWn+lB,MACrBC,EAAMk+lB,EAAWl+lB,IACnB,GAAI2+lB,EAAa,CAEf,IAAI/tiB,EAAOg8f,EAAMjrjB,EAAM,GACnBi9lB,EAAWX,EAAYrtiB,EAAMjvD,EAAM,GACnCk9lB,EAAUn7f,GAAQ9yC,EAAK4jf,WAAa9wc,EAAOk7f,EAAW,EAAI5+lB,GAC9D7R,EAAOwT,EAAM,GAAKivD,EAAO8kK,IAAcA,IAAc,CAAC,EAAG9kK,GAAO,CAAC,EAAG,CAClE4tiB,UAAWK,EAAU,EAAIjuiB,EAAK4jf,WAAaqqD,EAAUn7f,EAAO9yC,EAAK4jf,aAElDt1b,IAAUxb,EAAM9yC,EAAK4tiB,WAAW,WAC/C,OAAOI,CACT,GAAG7+lB,EAAOC,KAERA,EAAM4wD,EAAK4tiB,UAAY96f,GAAQk7f,EAAW,EAAIf,GAC9C1vmB,EAAOwT,EAAM,GAAK+zN,IAAcA,IAAc,CAAC,EAAG9kK,GAAO,CAAC,EAAG,CAC3D6tiB,QAAQ,IAGd,CA6BA,IA5BA,IAAIvtkB,EAAQytkB,EAAch9lB,EAAM,EAAIA,EAChCo7d,EAAS,SAAgB3+e,GAC3B,IACImhB,EADAqO,EAAQzf,EAAO/P,GAEfs3Z,EAAU,WAIZ,YAHavrZ,IAAToV,IACFA,EAAO0+lB,EAAYrwlB,EAAOxvB,IAErBmhB,CACT,EACA,GAAU,IAANnhB,EAAS,CACX,IAAIsgV,EAAMh7N,GAAQ91F,EAAM4miB,WAAa9wc,EAAOgyS,IAAY,EAAI31Y,GAC5D5R,EAAO/P,GAAKwvB,EAAQ8nN,IAAcA,IAAc,CAAC,EAAG9nN,GAAQ,CAAC,EAAG,CAC9D4wlB,UAAW9/R,EAAM,EAAI9wT,EAAM4miB,WAAa91O,EAAMh7N,EAAO91F,EAAM4miB,YAE/D,MACErmjB,EAAO/P,GAAKwvB,EAAQ8nN,IAAcA,IAAc,CAAC,EAAG9nN,GAAQ,CAAC,EAAG,CAC9D4wlB,UAAW5wlB,EAAM4miB,aAGRt1b,IAAUxb,EAAM91F,EAAM4wlB,UAAW9oN,EAAS31Y,EAAOC,KAE5DD,EAAQ6N,EAAM4wlB,UAAY96f,GAAQgyS,IAAY,EAAImoN,GAClD1vmB,EAAO/P,GAAKs3O,IAAcA,IAAc,CAAC,EAAG9nN,GAAQ,CAAC,EAAG,CACtD6wlB,QAAQ,IAGd,EACSrgnB,EAAI,EAAGA,EAAI8yC,EAAO9yC,IACzB2+e,EAAO3+e,GAET,OAAO+P,CACT,CA2CiB2wmB,CAAcp7f,EAAMw6f,EAAYD,EAAarxC,EAAOixC,EAAyB,qBAAbxre,GAvIjF,SAAqB3uB,EAAMw6f,EAAYD,EAAarxC,EAAOixC,GAgCzD,IA/BA,IAAI1vmB,GAAUy+jB,GAAS,IAAI1qkB,QACvByf,EAAMxT,EAAO9P,OACb0hB,EAAQm+lB,EAAWn+lB,MACnBC,EAAMk+lB,EAAWl+lB,IACjBuvd,EAAQ,SAAenxe,GACzB,IACImhB,EADAqO,EAAQzf,EAAO/P,GAEfs3Z,EAAU,WAIZ,YAHavrZ,IAAToV,IACFA,EAAO0+lB,EAAYrwlB,EAAOxvB,IAErBmhB,CACT,EACA,GAAInhB,IAAMujB,EAAM,EAAG,CACjB,IAAI+8T,EAAMh7N,GAAQ91F,EAAM4miB,WAAa9wc,EAAOgyS,IAAY,EAAI11Y,GAC5D7R,EAAO/P,GAAKwvB,EAAQ8nN,IAAcA,IAAc,CAAC,EAAG9nN,GAAQ,CAAC,EAAG,CAC9D4wlB,UAAW9/R,EAAM,EAAI9wT,EAAM4miB,WAAa91O,EAAMh7N,EAAO91F,EAAM4miB,YAE/D,MACErmjB,EAAO/P,GAAKwvB,EAAQ8nN,IAAcA,IAAc,CAAC,EAAG9nN,GAAQ,CAAC,EAAG,CAC9D4wlB,UAAW5wlB,EAAM4miB,aAGRt1b,IAAUxb,EAAM91F,EAAM4wlB,UAAW9oN,EAAS31Y,EAAOC,KAE5DA,EAAM4N,EAAM4wlB,UAAY96f,GAAQgyS,IAAY,EAAImoN,GAChD1vmB,EAAO/P,GAAKs3O,IAAcA,IAAc,CAAC,EAAG9nN,GAAQ,CAAC,EAAG,CACtD6wlB,QAAQ,IAGd,EACSrgnB,EAAIujB,EAAM,EAAGvjB,GAAK,EAAGA,IAC5Bmxe,EAAMnxe,GAER,OAAO+P,CACT,CAqGiB4wmB,CAAYr7f,EAAMw6f,EAAYD,EAAarxC,EAAOixC,GAE1DE,EAAW1vmB,QAAO,SAAUuf,GACjC,OAAOA,EAAM6wlB,MACf,IACF,CH2RA1pgB,IAAgBkhgB,IAAM,cAAe,QACrClhgB,IAAgBkhgB,IAAM,eAAgB,CACpCxb,QAAS,EACTC,QAAS,EACTuM,cAAc,EACd4N,WAAW,EACX3kR,KAAK,EACLu1P,WAAY,OACZhhc,OAAQ,UACRjgG,YAAa,EACbskD,KAAM,OACN41J,OAAQ,GACRu3T,mBAAoBQ,GAAOC,MAC3BolD,kBAAkB,EAClBx2C,eAAgB,EAChB1mc,kBAAmB,KACnBm3b,gBAAiB,OACjBiB,MAAM,EACNhhd,OAAO,IAUTjB,IAAgBkhgB,IAAM,mBAAmB,SAAUntY,GACjD,IAAI/zL,EAAQ+zL,EAAM/zL,MAChBgviB,EAAQj7W,EAAMi7W,MACdC,EAAQl7W,EAAMk7W,MACd6W,EAAa/xX,EAAM+xX,WACnBC,EAAahyX,EAAMgyX,WACnBv0jB,EAAUuiM,EAAMviM,QAChBgjjB,EAAWzgX,EAAMygX,SACjByR,EAAgBlyX,EAAMkyX,cACtBhjiB,EAAS8wK,EAAM9wK,OACbw4Q,EAASz7R,EAAMy7R,OA8BnB,OAAO96F,IAAc,CACnBgpB,OA9BWs8V,EAAczwlB,KAAI,SAAUqjB,EAAOxgB,GAC9C,IAAItR,EAAQ+plB,IAAkBj4jB,EAAO2Y,GACrC,MAAe,eAAXiqS,EACK,CACL3oT,EAAGyhkB,IAAwB,CACzBjC,KAAMtD,EACNnX,MAAOiuB,EACPtR,SAAUA,EACV37jB,MAAOA,EACPxgB,MAAOA,IAET6kB,EAAG07E,KAAM7xG,GAAS,KAAOkolB,EAAMhlc,MAAMljJ,GACrCA,MAAOA,EACP0oE,QAAS52C,GAGN,CACL/F,EAAG8lF,KAAM7xG,GAAS,KAAOiolB,EAAM/kc,MAAMljJ,GACrCm2B,EAAGq3jB,IAAwB,CACzBjC,KAAMrD,EACNpX,MAAOkuB,EACPvR,SAAUA,EACV37jB,MAAOA,EACPxgB,MAAOA,IAETtR,MAAOA,EACP0oE,QAAS52C,EAEb,IAGE4iT,OAAQA,GACPx4Q,EACL,IK7fA,IAAIkzK,IAAY,CAAC,WACfiO,IAAa,CAAC,WACdC,IAAa,CAAC,SAChB,SAAS15O,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAAS2sM,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASqD,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASusN,IAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAG3e,SAASitjB,IAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,IAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASyoa,IAAWxuZ,EAAGpB,EAAG9E,GAAK,OAAO8E,EAAI8uZ,IAAgB9uZ,GAC1D,SAAoCvzB,EAAMgB,GAAQ,GAAIA,IAA2B,WAAlByC,IAAQzC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI6O,UAAU,4DAA+D,OAC1P,SAAgC7P,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI43O,eAAe,6DAAgE,OAAO53O,CAAM,CAD4F4gQ,CAAuB5gQ,EAAO,CADjOsib,CAA2B3tZ,EAAG4tZ,MAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,IAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,GAAK,CAG1M,SAAS8zZ,MAA8B,IAAM,IAAI5tZ,GAAK3hB,QAAQlS,UAAUkhB,QAAQhhB,KAAK4hD,QAAQC,UAAU7vC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO2hB,GAAI,CAAE,OAAQ4tZ,IAA4B,WAAuC,QAAS5tZ,CAAG,IAAM,CAClP,SAAS0tZ,IAAgB9uZ,GAA+J,OAA1J8uZ,IAAkBp7a,OAAO4O,eAAiB5O,OAAOmN,eAAe5F,OAAS,SAAyB+kB,GAAK,OAAOA,EAAEvoB,WAAa/D,OAAOmN,eAAemf,EAAI,EAAU8uZ,IAAgB9uZ,EAAI,CAEnN,SAAS2liB,IAAgB3liB,EAAGjL,GAA6I,OAAxI4wiB,IAAkBjyjB,OAAO4O,eAAiB5O,OAAO4O,eAAerH,OAAS,SAAyB+kB,EAAGjL,GAAsB,OAAjBiL,EAAEvoB,UAAYsd,EAAUiL,CAAG,EAAU2liB,IAAgB3liB,EAAGjL,EAAI,CACvM,SAASwwF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,IAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAC3O,SAASsvb,IAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAwBrG,IAAI4gnB,IAA6B,SAAU9M,GAChD,SAAS8M,EAAcjqkB,GACrB,IAAIpd,EAOJ,OA5CJ,SAAyBujC,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CAsCpJooO,CAAgBh3O,KAAM8hnB,IACtBrnlB,EAAQynZ,IAAWlib,KAAM8hnB,EAAe,CAACjqkB,KACnCxtC,MAAQ,CACZ+yB,SAAU,GACVygG,cAAe,IAEVpjG,CACT,CAEA,OAvCF,SAAmB+5L,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7lN,UAAU,sDAAyD4lN,EAAS30N,UAAYmG,OAAO4D,OAAO6qN,GAAcA,EAAW50N,UAAW,CAAE+C,YAAa,CAAEhE,MAAO41N,EAAUjgN,UAAU,EAAMnF,cAAc,KAAWpJ,OAAOgN,eAAewhN,EAAU,YAAa,CAAEjgN,UAAU,IAAckgN,GAAYwjW,IAAgBzjW,EAAUC,EAAa,CAsCjcqiB,CAAUgrY,EAAe9M,GA5CLvvlB,EA6CAq8lB,EA7CyB7lP,EA0SzC,CAAC,CACHn3X,IAAK,iBACLlG,MAAO,SAAwBqsI,EAAQpzF,EAAOj5C,GAW5C,OATkBi1N,EAAAA,eAAqB5oF,GACb4oF,EAAAA,aAAmB5oF,EAAQpzF,GAC1CjtB,KAAWqgH,GACTA,EAAOpzF,GAEMg8K,EAAAA,cAAoB86G,GAAM1vG,IAAS,CAAC,EAAGpnL,EAAO,CACpEtwC,UAAW,uCACT3I,EAGR,KAxT+Bo9X,EA6CE,CAAC,CAClCl3X,IAAK,wBACLlG,MAAO,SAA+BqsJ,EAAM4jN,GAC1C,IAAIvQ,EAAUrzM,EAAKqzM,QACjBxkH,EAAYC,IAAyB9uF,EAAM+iF,KAGzC+f,EAAc/tP,KAAK63C,MACrBkqkB,EAAah0X,EAAYuwG,QACzB0jR,EAAejoY,IAAyBgU,EAAa9R,KACvD,OAAQ20U,GAAatyN,EAASyjR,KAAgBnxD,GAAa92U,EAAWkoY,KAAkBpxD,GAAa/hN,EAAW7uW,KAAKqK,MACvH,GACC,CACDvF,IAAK,oBACLlG,MAAO,WACL,IAAIqjnB,EAAYjinB,KAAKkinB,eACrB,GAAKD,EAAL,CACA,IAAI7c,EAAO6c,EAAUE,uBAAuB,sCAAsC,GAC9E/c,GACFplmB,KAAKk2G,SAAS,CACZ94E,SAAU73B,OAAOC,iBAAiB4/lB,GAAMhokB,SACxCygG,cAAet4H,OAAOC,iBAAiB4/lB,GAAMvne,eAL3B,CAQxB,GAQC,CACD/4H,IAAK,mBACLlG,MAAO,SAA0B2d,GAC/B,IASIi0B,EAAIE,EAAID,EAAIE,EAAI8mJ,EAAIC,EATpB6tH,EAAevlT,KAAK63C,MACtBltB,EAAI46R,EAAa56R,EACjBoK,EAAIwwR,EAAaxwR,EACjB9yB,EAAQsjT,EAAatjT,MACrBN,EAAS4jT,EAAa5jT,OACtBoB,EAAcwiT,EAAaxiT,YAC3Bq/mB,EAAW78T,EAAa68T,SACxB3iB,EAASl6S,EAAak6S,OACtB4iB,EAAa98T,EAAa88T,WAExB77f,EAAOi5e,GAAU,EAAI,EACrB6iB,EAAgB/lmB,EAAK6lmB,UAAYA,EACjCd,EAAYl6gB,GAAS7qF,EAAK+kmB,WAAa/kmB,EAAK+kmB,UAAY/kmB,EAAK+6iB,WACjE,OAAQv0jB,GACN,IAAK,MACHytC,EAAKE,EAAKn0B,EAAK+6iB,WAGf5/X,GADAjnJ,GADAE,EAAK5b,KAAM0qkB,EAAS99lB,GACV6kH,EAAO87f,GACP97f,EAAO67f,EACjB5qb,EAAK6pb,EACL,MACF,IAAK,OACH7wkB,EAAKE,EAAKp0B,EAAK+6iB,WAGf7/X,GADAjnJ,GADAE,EAAK/lB,KAAM80kB,EAASx9lB,GACVukH,EAAO87f,GACP97f,EAAO67f,EACjB3qb,EAAK4pb,EACL,MACF,IAAK,QACH7wkB,EAAKE,EAAKp0B,EAAK+6iB,WAGf7/X,GADAjnJ,GADAE,EAAK/lB,IAAK80kB,EAASx9lB,GACTukH,EAAO87f,GACP97f,EAAO67f,EACjB3qb,EAAK4pb,EACL,MACF,QACE9wkB,EAAKE,EAAKn0B,EAAK+6iB,WAGf5/X,GADAjnJ,GADAE,EAAK5b,IAAK0qkB,EAAS99lB,GACT6kH,EAAO87f,GACP97f,EAAO67f,EACjB5qb,EAAK6pb,EAGT,MAAO,CACL1wkB,KAAM,CACJJ,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,GAENy0jB,KAAM,CACJz6kB,EAAG8sK,EACH1iK,EAAG2iK,GAGT,GACC,CACD5yL,IAAK,oBACLlG,MAAO,WACL,IAGIkwkB,EAHAnpR,EAAe3lT,KAAK63C,MACtB90C,EAAc4iT,EAAa5iT,YAC3B08lB,EAAS95S,EAAa85S,OAExB,OAAQ18lB,GACN,IAAK,OACH+rkB,EAAa2wB,EAAS,QAAU,MAChC,MACF,IAAK,QACH3wB,EAAa2wB,EAAS,MAAQ,QAC9B,MACF,QACE3wB,EAAa,SAGjB,OAAOA,CACT,GACC,CACDhqkB,IAAK,wBACLlG,MAAO,WACL,IAAIsnT,EAAelmT,KAAK63C,MACtB90C,EAAcmjT,EAAanjT,YAC3B08lB,EAASv5S,EAAau5S,OACpBzwB,EAAiB,MACrB,OAAQjskB,GACN,IAAK,OACL,IAAK,QACHiskB,EAAiB,SACjB,MACF,IAAK,MACHA,EAAiBywB,EAAS,QAAU,MACpC,MACF,QACEzwB,EAAiBywB,EAAS,MAAQ,QAGtC,OAAOzwB,CACT,GACC,CACDlqkB,IAAK,iBACLlG,MAAO,WACL,IAAIyoT,EAAernT,KAAK63C,MACtBltB,EAAI08R,EAAa18R,EACjBoK,EAAIsyR,EAAatyR,EACjB9yB,EAAQolT,EAAaplT,MACrBN,EAAS0lT,EAAa1lT,OACtBoB,EAAcskT,EAAatkT,YAC3B08lB,EAASp4S,EAAao4S,OACtB8iB,EAAWl7T,EAAak7T,SACtB1qkB,EAAQ2gM,IAAcA,IAAcA,IAAc,CAAC,EAAGu6U,GAAY/yjB,KAAK63C,OAAO,IAASk7gB,GAAYwvD,GAAU,IAAS,CAAC,EAAG,CAC5H32gB,KAAM,SAER,GAAoB,QAAhB7oG,GAAyC,WAAhBA,EAA0B,CACrD,IAAIy/mB,IAA+B,QAAhBz/mB,IAA0B08lB,GAA0B,WAAhB18lB,GAA4B08lB,GACnF5njB,EAAQ2gM,IAAcA,IAAc,CAAC,EAAG3gM,GAAQ,CAAC,EAAG,CAClDrH,GAAI7lB,EACJ8lB,GAAI1b,EAAIytlB,EAAa7gnB,EACrB+uC,GAAI/lB,EAAI1oB,EACR0uC,GAAI5b,EAAIytlB,EAAa7gnB,GAEzB,KAAO,CACL,IAAI8gnB,IAA8B,SAAhB1/mB,IAA2B08lB,GAA0B,UAAhB18lB,GAA2B08lB,GAClF5njB,EAAQ2gM,IAAcA,IAAc,CAAC,EAAG3gM,GAAQ,CAAC,EAAG,CAClDrH,GAAI7lB,EAAI83lB,EAAYxgnB,EACpBwuC,GAAI1b,EACJ2b,GAAI/lB,EAAI83lB,EAAYxgnB,EACpB0uC,GAAI5b,EAAIpzB,GAEZ,CACA,OAAoBkyN,EAAAA,cAAoB,OAAQoL,IAAS,CAAC,EAAGpnL,EAAO,CAClEtwC,UAAWshY,GAAK,+BAAgCr7X,KAAI+0mB,EAAU,gBAElE,GACC,CACDz9mB,IAAK,cACLlG,MAQA,SAAqB8wkB,EAAOtyiB,EAAUygG,GACpC,IAAImiI,EAAShgQ,KACTuoT,EAAevoT,KAAK63C,MACtB6qkB,EAAWn6T,EAAam6T,SACxBn7d,EAASghK,EAAahhK,OACtB69c,EAAO78S,EAAa68S,KACpBpW,EAAgBzmS,EAAaymS,cAC7BhslB,EAAOulT,EAAavlT,KAClB2/mB,EAAajC,IAASloY,IAAcA,IAAc,CAAC,EAAGx4O,KAAK63C,OAAQ,CAAC,EAAG,CACzE63hB,MAAOA,IACLtyiB,EAAUygG,GACVixc,EAAa9ukB,KAAK4inB,oBAClB5zC,EAAiBhvkB,KAAK6inB,wBACtB/G,EAAY/oD,GAAY/yjB,KAAK63C,OAAO,GACpCirkB,EAAkB/vD,GAAYqyC,GAAM,GACpC2d,EAAgBvqY,IAAcA,IAAc,CAAC,EAAGsjY,GAAY,CAAC,EAAG,CAClElwgB,KAAM,QACLmnd,GAAY2vD,GAAU,IACrBjjY,EAAQkjY,EAAWt1mB,KAAI,SAAUqjB,EAAOxvB,GAC1C,IAAI8hnB,EAAwBhjX,EAAOijX,iBAAiBvylB,GAClDwylB,EAAYF,EAAsBpykB,KAClC0wkB,EAAY0B,EAAsB5d,KAChC+d,EAAY3qY,IAAcA,IAAcA,IAAcA,IAAc,CACtEs2V,WAAYA,EACZE,eAAgBA,GACf8sC,GAAY,CAAC,EAAG,CACjBv0d,OAAQ,OACR37C,KAAM27C,GACLu7d,GAAkBxB,GAAY,CAAC,EAAG,CACnCpxmB,MAAOhP,EACPomE,QAAS52C,EACT0ylB,kBAAmBT,EAAWxhnB,OAC9B6tlB,cAAeA,IAEjB,OAAoBn7X,EAAAA,cAAoB+hW,GAAO32V,IAAS,CACtD13N,UAAW,+BACXzC,IAAK,QAAQN,OAAOksB,EAAM9xB,MAAO,KAAK4F,OAAOksB,EAAM4miB,WAAY,KAAK9yjB,OAAOksB,EAAM4wlB,YAChFjwD,GAAmBrxT,EAAOnoN,MAAOnnB,EAAOxvB,IAAKwhnB,GAAyB7uZ,EAAAA,cAAoB,OAAQoL,IAAS,CAAC,EAAG8jZ,EAAeG,EAAW,CAC1I37mB,UAAWshY,GAAK,oCAAqCr7X,KAAIk1mB,EAAU,iBAChEtd,GAAQ0c,EAAcuB,eAAeje,EAAM+d,EAAW,GAAG3+mB,OAAOomB,KAAWokkB,GAAiBA,EAAct+jB,EAAM9xB,MAAOsC,GAAKwvB,EAAM9xB,OAAO4F,OAAOxB,GAAQ,KAC/J,IACA,OAAoB6wN,EAAAA,cAAoB,IAAK,CAC3CtsN,UAAW,iCACVk4O,EACL,GACC,CACD36O,IAAK,SACLlG,MAAO,WACL,IAAI2qb,EAASvpb,KACTgpT,EAAehpT,KAAK63C,MACtB0qkB,EAAWv5T,EAAau5T,SACxBtgnB,EAAQ+mT,EAAa/mT,MACrBN,EAASqnT,EAAarnT,OACtB2hnB,EAAiBt6T,EAAas6T,eAC9B/7mB,EAAYyhT,EAAazhT,UAE3B,GADSyhT,EAAa8wQ,KAEpB,OAAO,KAET,IAAI39D,EAAen8f,KAAK63C,MACtB63hB,EAAQvzE,EAAauzE,MACrB6zC,EAAexpY,IAAyBoiR,EAAcjgR,KACpDymY,EAAajzC,EAIjB,OAHI9kjB,KAAW04lB,KACbX,EAAajzC,GAASA,EAAMvukB,OAAS,EAAIminB,EAAetjnB,KAAK63C,OAASyrkB,EAAeC,IAEnFthnB,GAAS,GAAKN,GAAU,IAAMghnB,IAAeA,EAAWxhnB,OACnD,KAEW0yN,EAAAA,cAAoB+hW,GAAO,CAC7CrujB,UAAWshY,GAAK,0BAA2BthY,GAC3CgwC,IAAK,SAAamlI,GAChB6sQ,EAAO24L,eAAiBxlc,CAC1B,GACC6lc,GAAYvinB,KAAKwjnB,iBAAkBxjnB,KAAKyjnB,YAAYd,EAAY3inB,KAAKqK,MAAM+yB,SAAUp9B,KAAKqK,MAAMwzH,eAAgBs1d,IAAMyB,mBAAmB50lB,KAAK63C,OACnJ,MAzS0EmghB,IAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,IAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CA0T/C,CAzRwC,CAyRtC1lR,EAAAA,WCrUF,SAAS/zG,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAE7T,SAAS0liB,IAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,IAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASyoa,IAAWxuZ,EAAGpB,EAAG9E,GAAK,OAAO8E,EAAI8uZ,IAAgB9uZ,GAC1D,SAAoCvzB,EAAMgB,GAAQ,GAAIA,IAA2B,WAAlByC,IAAQzC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI6O,UAAU,4DAA+D,OAC1P,SAAgC7P,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI43O,eAAe,6DAAgE,OAAO53O,CAAM,CAD4F4gQ,CAAuB5gQ,EAAO,CADjOsib,CAA2B3tZ,EAAG4tZ,MAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,IAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,GAAK,CAG1M,SAAS8zZ,MAA8B,IAAM,IAAI5tZ,GAAK3hB,QAAQlS,UAAUkhB,QAAQhhB,KAAK4hD,QAAQC,UAAU7vC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO2hB,GAAI,CAAE,OAAQ4tZ,IAA4B,WAAuC,QAAS5tZ,CAAG,IAAM,CAClP,SAAS0tZ,IAAgB9uZ,GAA+J,OAA1J8uZ,IAAkBp7a,OAAO4O,eAAiB5O,OAAOmN,eAAe5F,OAAS,SAAyB+kB,GAAK,OAAOA,EAAEvoB,WAAa/D,OAAOmN,eAAemf,EAAI,EAAU8uZ,IAAgB9uZ,EAAI,CAEnN,SAAS2liB,IAAgB3liB,EAAGjL,GAA6I,OAAxI4wiB,IAAkBjyjB,OAAO4O,eAAiB5O,OAAO4O,eAAerH,OAAS,SAAyB+kB,EAAGjL,GAAsB,OAAjBiL,EAAEvoB,UAAYsd,EAAUiL,CAAG,EAAU2liB,IAAgB3liB,EAAGjL,EAAI,CACvM,SAASwwF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,IAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAC3O,SAASsvb,IAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAE5G,SAAS+9N,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CAYlV,SAASi0mB,IAAUz4d,GACjB,IAAIsyc,EAAUtyc,EAAKsyc,QACft7lB,EAAQqgmB,MACR3gmB,EAAS4gmB,MACTohB,EAAcvhB,IAAgB7E,GAClC,OAAmB,MAAfomB,EACK,KAKP9vZ,EAAAA,cAAoBiuZ,IAAe7iZ,IAAS,CAAC,EAAG0kZ,EAAa,CAC3Dp8mB,UAAWshY,GAAK,YAAYrkY,OAAOm/mB,EAAY16B,SAAU,KAAKzklB,OAAOm/mB,EAAY16B,UAAW06B,EAAYp8mB,WACxG+2V,QAAS,CACP3zU,EAAG,EACHoK,EAAG,EACH9yB,MAAOA,EACPN,OAAQA,GAEV2hnB,eAAgB,SAAwBn5B,GACtC,OAAOD,IAAeC,GAAM,EAC9B,IAGN,CDoRAtye,IAAgBiqgB,IAAe,cAAe,iBAC9CjqgB,IAAgBiqgB,IAAe,eAAgB,CAC7Cn3lB,EAAG,EACHoK,EAAG,EACH9yB,MAAO,EACPN,OAAQ,EACR28V,QAAS,CACP3zU,EAAG,EACHoK,EAAG,EACH9yB,MAAO,EACPN,OAAQ,GAGVoB,YAAa,SAEb2skB,MAAO,GACPnob,OAAQ,OACRm7d,UAAU,EACVH,UAAU,EACVnd,MAAM,EACN3F,QAAQ,EACRkhB,WAAY,EAEZyB,SAAU,EACVC,WAAY,EACZlte,SAAU,gBC1SL,IAAIwje,IAAqB,SAAU9hY,GACxC,SAAS8hY,IAEP,OAvDJ,SAAyB36iB,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CAsDpJooO,CAAgBh3O,KAAM24mB,GACfz2L,IAAWlib,KAAM24mB,EAAOlpmB,UACjC,CAEA,OAlDF,SAAmB+kN,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7lN,UAAU,sDAAyD4lN,EAAS30N,UAAYmG,OAAO4D,OAAO6qN,GAAcA,EAAW50N,UAAW,CAAE+C,YAAa,CAAEhE,MAAO41N,EAAUjgN,UAAU,EAAMnF,cAAc,KAAWpJ,OAAOgN,eAAewhN,EAAU,YAAa,CAAEjgN,UAAU,IAAckgN,GAAYwjW,IAAgBzjW,EAAUC,EAAa,CAiDjcqiB,CAAU6hY,EAAO9hY,GAvDGpxN,EAwDAkzlB,GAxDa38O,EAwDN,CAAC,CAC1Bl3X,IAAK,SACLlG,MAAO,WACL,OAAoBi1N,EAAAA,cAAoB6vZ,IAAW1jnB,KAAK63C,MAC1D,MA5D0EmghB,IAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,IAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CA8D/C,CAZgC,CAY9BpoK,EAAAA,WCjEF,SAASrxN,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAE7T,SAAS0liB,IAAkBjtjB,EAAQ8sC,GAAS,IAAK,IAAI32C,EAAI,EAAGA,EAAI22C,EAAM12C,OAAQD,IAAK,CAAE,IAAIuY,EAAao+B,EAAM32C,GAAIuY,EAAWnF,WAAamF,EAAWnF,aAAc,EAAOmF,EAAWrK,cAAe,EAAU,UAAWqK,IAAYA,EAAWlF,UAAW,GAAMvO,OAAOgN,eAAejI,EAAQgnb,IAAet4a,EAAW3U,KAAM2U,EAAa,CAAE,CAE5U,SAASyoa,IAAWxuZ,EAAGpB,EAAG9E,GAAK,OAAO8E,EAAI8uZ,IAAgB9uZ,GAC1D,SAAoCvzB,EAAMgB,GAAQ,GAAIA,IAA2B,WAAlByC,IAAQzC,IAAsC,oBAATA,GAAwB,OAAOA,EAAa,QAAa,IAATA,EAAmB,MAAM,IAAI6O,UAAU,4DAA+D,OAC1P,SAAgC7P,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAI43O,eAAe,6DAAgE,OAAO53O,CAAM,CAD4F4gQ,CAAuB5gQ,EAAO,CADjOsib,CAA2B3tZ,EAAG4tZ,MAA8B3/X,QAAQC,UAAUtvB,EAAG9E,GAAK,GAAI4zZ,IAAgB1tZ,GAAG9wB,aAAe0vB,EAAEjY,MAAMqZ,EAAGlG,GAAK,CAG1M,SAAS8zZ,MAA8B,IAAM,IAAI5tZ,GAAK3hB,QAAQlS,UAAUkhB,QAAQhhB,KAAK4hD,QAAQC,UAAU7vC,QAAS,IAAI,WAAa,IAAK,CAAE,MAAO2hB,GAAI,CAAE,OAAQ4tZ,IAA4B,WAAuC,QAAS5tZ,CAAG,IAAM,CAClP,SAAS0tZ,IAAgB9uZ,GAA+J,OAA1J8uZ,IAAkBp7a,OAAO4O,eAAiB5O,OAAOmN,eAAe5F,OAAS,SAAyB+kB,GAAK,OAAOA,EAAEvoB,WAAa/D,OAAOmN,eAAemf,EAAI,EAAU8uZ,IAAgB9uZ,EAAI,CAEnN,SAAS2liB,IAAgB3liB,EAAGjL,GAA6I,OAAxI4wiB,IAAkBjyjB,OAAO4O,eAAiB5O,OAAO4O,eAAerH,OAAS,SAAyB+kB,EAAGjL,GAAsB,OAAjBiL,EAAEvoB,UAAYsd,EAAUiL,CAAG,EAAU2liB,IAAgB3liB,EAAGjL,EAAI,CACvM,SAASwwF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAAMitb,IAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAC3O,SAASsvb,IAAer+Z,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAE5G,SAAS+9N,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CDoDlVooG,IAAgB8ggB,IAAO,cAAe,SACtC9ggB,IAAgB8ggB,IAAO,eAAgB,CACrC1zB,eAAe,EACfnrB,MAAM,EACN/2jB,YAAa,SACbd,MAAO,EACPN,OAAQ,GACR89lB,QAAQ,EACRlC,QAAS,EACT7X,UAAW,EACX1+kB,KAAM,WACNu6B,QAAS,CACPlgC,KAAM,EACNmK,MAAO,GAET0hlB,mBAAmB,EACnBprc,MAAO,OACPxX,UAAU,EACVgid,yBAAyB,IC7D3B,IAAIs3B,IAAY,SAAmB34d,GACjC,IAAIuyc,EAAUvyc,EAAKuyc,QACfv7lB,EAAQqgmB,MACR3gmB,EAAS4gmB,MACTohB,EAActhB,IAAgB7E,GAClC,OAAmB,MAAfmmB,EACK,KAKP9vZ,EAAAA,cAAoBiuZ,IAAe7iZ,IAAS,CAAC,EAAG0kZ,EAAa,CAC3Dp8mB,UAAWshY,GAAK,YAAYrkY,OAAOm/mB,EAAY16B,SAAU,KAAKzklB,OAAOm/mB,EAAY16B,UAAW06B,EAAYp8mB,WACxG+2V,QAAS,CACP3zU,EAAG,EACHoK,EAAG,EACH9yB,MAAOA,EACPN,OAAQA,GAEV2hnB,eAAgB,SAAwBn5B,GACtC,OAAOD,IAAeC,GAAM,EAC9B,IAGN,EAGWyuB,IAAqB,SAAU/hY,GACxC,SAAS+hY,IAEP,OApDJ,SAAyB56iB,EAAUv4C,GAAe,KAAMu4C,aAAoBv4C,GAAgB,MAAM,IAAI7W,UAAU,oCAAwC,CAmDpJooO,CAAgBh3O,KAAM44mB,GACf12L,IAAWlib,KAAM44mB,EAAOnpmB,UACjC,CAEA,OA/CF,SAAmB+kN,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI7lN,UAAU,sDAAyD4lN,EAAS30N,UAAYmG,OAAO4D,OAAO6qN,GAAcA,EAAW50N,UAAW,CAAE+C,YAAa,CAAEhE,MAAO41N,EAAUjgN,UAAU,EAAMnF,cAAc,KAAWpJ,OAAOgN,eAAewhN,EAAU,YAAa,CAAEjgN,UAAU,IAAckgN,GAAYwjW,IAAgBzjW,EAAUC,EAAa,CA8CjcqiB,CAAU8hY,EAAO/hY,GApDGpxN,EAqDAmzlB,GArDa58O,EAqDN,CAAC,CAC1Bl3X,IAAK,SACLlG,MAAO,WACL,OAAoBi1N,EAAAA,cAAoB+vZ,IAAW5jnB,KAAK63C,MAC1D,MAzD0EmghB,IAAkBvyiB,EAAY5lB,UAAWm8X,GAAiBC,GAAa+7L,IAAkBvyiB,EAAaw2W,GAAcj2X,OAAOgN,eAAeyS,EAAa,YAAa,CAAElR,UAAU,IAAiBkR,EAA/Q,IAAsBA,EAAau2W,EAAYC,CA2D/C,CAZgC,CAY9BpoK,EAAAA,WACFh8G,IAAgB+ggB,IAAO,cAAe,SACtC/ggB,IAAgB+ggB,IAAO,eAAgB,CACrCtsB,yBAAyB,EACzBrH,eAAe,EACfnrB,MAAM,EACN/2jB,YAAa,OACbd,MAAO,GACPN,OAAQ,EACR89lB,QAAQ,EACRjC,QAAS,EACT9X,UAAW,EACX1+kB,KAAM,SACNu6B,QAAS,CACPjgC,IAAK,EACL8E,OAAQ,GAEV8mlB,mBAAmB,EACnBprc,MAAO,OACPxX,UAAU,ICzEL,IAAIu5e,IAAY7S,IAAyB,CAC9ChS,UAAW,YACXiS,eAAgB8H,IAChBzH,eAAgB,CAAC,CACfroB,SAAU,QACVsmB,SAAUoJ,KACT,CACD1vB,SAAU,QACVsmB,SAAUqJ,MAEZ9Z,cAAeA,MClBb9wX,IAAY,CAAC,KAAM,KAAM,KAAM,KAAM,OACvCiO,IAAa,CAAC,UAChB,SAASz5O,IAAQ8vB,GAAgC,OAAO9vB,IAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAU2vB,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqB5vB,QAAU4vB,EAAE1vB,cAAgBF,QAAU4vB,IAAM5vB,OAAO7C,UAAY,gBAAkByyB,CAAG,EAAG9vB,IAAQ8vB,EAAI,CAC7T,SAASxf,IAAQ0a,EAAGluB,GAAK,IAAIo0B,EAAI1tB,OAAOC,KAAKunB,GAAI,GAAIxnB,OAAOiX,sBAAuB,CAAE,IAAIqV,EAAItsB,OAAOiX,sBAAsBuQ,GAAIluB,IAAMgzB,EAAIA,EAAEnhB,QAAO,SAAU7R,GAAK,OAAO0G,OAAOiN,yBAAyBua,EAAGluB,GAAGgV,UAAY,KAAKof,EAAE7xB,KAAKwY,MAAMqZ,EAAGpB,EAAI,CAAE,OAAOoB,CAAG,CAC9P,SAAS8kN,IAAchrN,GAAK,IAAK,IAAIluB,EAAI,EAAGA,EAAImQ,UAAUtO,OAAQ7B,IAAK,CAAE,IAAIo0B,EAAI,MAAQjkB,UAAUnQ,GAAKmQ,UAAUnQ,GAAK,CAAC,EAAGA,EAAI,EAAIwT,IAAQ9M,OAAO0tB,IAAI,GAAI5yB,SAAQ,SAAUxB,GAAKu4G,IAAgBrqF,EAAGluB,EAAGo0B,EAAEp0B,GAAK,IAAK0G,OAAO6oO,0BAA4B7oO,OAAOgY,iBAAiBwP,EAAGxnB,OAAO6oO,0BAA0Bn7M,IAAM5gB,IAAQ9M,OAAO0tB,IAAI5yB,SAAQ,SAAUxB,GAAK0G,OAAOgN,eAAewa,EAAGluB,EAAG0G,OAAOiN,yBAAyBygB,EAAGp0B,GAAK,GAAI,CAAE,OAAOkuB,CAAG,CACtb,SAASqqF,IAAgBp1G,EAAKqC,EAAKlG,GAA4L,OAAnLkG,EAC5C,SAAwB4uB,GAAK,IAAIxyB,EACjC,SAAsBwyB,EAAGp0B,GAAK,GAAI,UAAYkD,IAAQkxB,KAAOA,EAAG,OAAOA,EAAG,IAAIlG,EAAIkG,EAAEhxB,OAAO8gB,aAAc,QAAI,IAAWgK,EAAG,CAAE,IAAItsB,EAAIssB,EAAEztB,KAAK2zB,EAAGp0B,GAAK,WAAY,GAAI,UAAYkD,IAAQtB,GAAI,OAAOA,EAAG,MAAM,IAAI0N,UAAU,+CAAiD,CAAE,OAAQ,WAAatP,EAAI2H,OAASC,QAAQwsB,EAAI,CADtRo+Z,CAAap+Z,EAAG,UAAW,MAAO,UAAYlxB,IAAQtB,GAAKA,EAAIA,EAAI,EAAI,CAD1D6wb,CAAejtb,MAAiBrC,EAAOuD,OAAOgN,eAAevQ,EAAKqC,EAAK,CAAElG,MAAOA,EAAO0V,YAAY,EAAMlF,cAAc,EAAMmF,UAAU,IAAkB9R,EAAIqC,GAAOlG,EAAgB6D,CAAK,CAG3O,SAASw8N,MAAiS,OAApRA,IAAWj5N,OAAOoD,OAASpD,OAAOoD,OAAOmE,OAAS,SAAUxC,GAAU,IAAK,IAAI7J,EAAI,EAAGA,EAAIuO,UAAUtO,OAAQD,IAAK,CAAE,IAAI0K,EAAS6D,UAAUvO,GAAI,IAAK,IAAI4D,KAAO8G,EAAc5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,KAAQiG,EAAOjG,GAAO8G,EAAO9G,GAAU,CAAE,OAAOiG,CAAQ,EAAUk0N,IAAS5kN,MAAMra,KAAMyP,UAAY,CAClV,SAASsqO,IAAyBnuO,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAkE9G,EAAK5D,EAAnE6J,EACzF,SAAuCa,EAAQgmb,GAAY,GAAc,MAAVhmb,EAAgB,MAAO,CAAC,EAAG,IAAIb,EAAS,CAAC,EAAG,IAAK,IAAIjG,KAAO8G,EAAU,GAAI5F,OAAOnG,UAAUyD,eAAevD,KAAK6L,EAAQ9G,GAAM,CAAE,GAAI8sb,EAASltb,QAAQI,IAAQ,EAAG,SAAUiG,EAAOjG,GAAO8G,EAAO9G,EAAM,CAAI,OAAOiG,CAAQ,CADpLgjO,CAA8BniO,EAAQgmb,GAAuB,GAAI5rb,OAAOiX,sBAAuB,CAAE,IAAI40a,EAAmB7rb,OAAOiX,sBAAsBrR,GAAS,IAAK1K,EAAI,EAAGA,EAAI2wb,EAAiB1wb,OAAQD,IAAO4D,EAAM+sb,EAAiB3wb,GAAQ0wb,EAASltb,QAAQI,IAAQ,GAAkBkB,OAAOnG,UAAU+a,qBAAqB7a,KAAK6L,EAAQ9G,KAAgBiG,EAAOjG,GAAO8G,EAAO9G,GAAQ,CAAE,OAAOiG,CAAQ,CAmB3e,IAAI+4mB,IAAa,SAAoBjskB,GACnC,IAAI+zD,EAAO/zD,EAAM+zD,KACjB,IAAKA,GAAiB,SAATA,EACX,OAAO,KAET,IAAI7kD,EAAclP,EAAMkP,YACtBp8B,EAAIktB,EAAMltB,EACVoK,EAAI8iB,EAAM9iB,EACV9yB,EAAQ41C,EAAM51C,MACdN,EAASk2C,EAAMl2C,OACf64H,EAAK3iF,EAAM2iF,GACb,OAAoBq5F,EAAAA,cAAoB,OAAQ,CAC9ClpM,EAAGA,EACHoK,EAAGA,EACHylG,GAAIA,EACJv4H,MAAOA,EACPN,OAAQA,EACR4lJ,OAAQ,OACR37C,KAAMA,EACN7kD,YAAaA,EACbx/C,UAAW,8BAEf,EACA,SAASw8mB,IAAe94e,EAAQpzF,GAC9B,IAAImskB,EACJ,GAAkBnwZ,EAAAA,eAAqB5oF,GAErC+4e,EAAwBnwZ,EAAAA,aAAmB5oF,EAAQpzF,QAC9C,GAAIjtB,KAAWqgH,GACpB+4e,EAAW/4e,EAAOpzF,OACb,CACL,IAAIrH,EAAKqH,EAAMrH,GACbC,EAAKoH,EAAMpH,GACXC,EAAKmH,EAAMnH,GACXC,EAAKkH,EAAMlH,GACX7rC,EAAM+yC,EAAM/yC,IACZ2wT,EAAS17E,IAAyBliM,EAAOm2L,KACvCsxY,EAAevsD,GAAYt9P,GAAQ,GAErCwuT,GADK3E,EAAaxkjB,OACIi/K,IAAyBulY,EAAcrjY,MAC/D+nY,EAAwBnwZ,EAAAA,cAAoB,OAAQoL,IAAS,CAAC,EAAGglZ,EAAqB,CACpFzzkB,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJC,GAAIA,EACJi7D,KAAM,OACN9mG,IAAKA,IAET,CACA,OAAOk/mB,CACT,CACA,SAASE,IAAoBrskB,GAC3B,IAAIltB,EAAIktB,EAAMltB,EACZ1oB,EAAQ41C,EAAM51C,MACdkinB,EAAoBtskB,EAAMlZ,WAC1BA,OAAmC,IAAtBwllB,GAAsCA,EACnDC,EAAmBvskB,EAAMuskB,iBAC3B,IAAKzllB,IAAeyllB,IAAqBA,EAAiBjjnB,OACxD,OAAO,KAET,IAAIs+O,EAAQ2kY,EAAiB/2mB,KAAI,SAAUqjB,EAAOxvB,GAChD,IAAImjnB,EAAgB7rY,IAAcA,IAAc,CAAC,EAAG3gM,GAAQ,CAAC,EAAG,CAC9DrH,GAAI7lB,EACJ8lB,GAAI/f,EACJggB,GAAI/lB,EAAI1oB,EACR0uC,GAAIjgB,EACJ5rB,IAAK,QAAQN,OAAOtD,GACpBgP,MAAOhP,IAET,OAAO6inB,IAAepllB,EAAY0llB,EACpC,IACA,OAAoBxwZ,EAAAA,cAAoB,IAAK,CAC3CtsN,UAAW,sCACVk4O,EACL,CACA,SAAS6kY,IAAkBzskB,GACzB,IAAI9iB,EAAI8iB,EAAM9iB,EACZpzB,EAASk2C,EAAMl2C,OACf4inB,EAAkB1skB,EAAMnZ,SACxBA,OAA+B,IAApB6llB,GAAoCA,EAC/CC,EAAiB3skB,EAAM2skB,eACzB,IAAK9llB,IAAa8llB,IAAmBA,EAAerjnB,OAClD,OAAO,KAET,IAAIs+O,EAAQ+kY,EAAen3mB,KAAI,SAAUqjB,EAAOxvB,GAC9C,IAAImjnB,EAAgB7rY,IAAcA,IAAc,CAAC,EAAG3gM,GAAQ,CAAC,EAAG,CAC9DrH,GAAI9f,EACJ+f,GAAI1b,EACJ2b,GAAIhgB,EACJigB,GAAI5b,EAAIpzB,EACRmD,IAAK,QAAQN,OAAOtD,GACpBgP,MAAOhP,IAET,OAAO6inB,IAAerllB,EAAU2llB,EAClC,IACA,OAAoBxwZ,EAAAA,cAAoB,IAAK,CAC3CtsN,UAAW,oCACVk4O,EACL,CACA,SAASglY,IAAkB5skB,GACzB,IAAI6skB,EAAiB7skB,EAAM6skB,eACzB39jB,EAAclP,EAAMkP,YACpBp8B,EAAIktB,EAAMltB,EACVoK,EAAI8iB,EAAM9iB,EACV9yB,EAAQ41C,EAAM51C,MACdN,EAASk2C,EAAMl2C,OACfyinB,EAAmBvskB,EAAMuskB,iBACzBO,EAAqB9skB,EAAMlZ,WAE7B,UADsC,IAAvBgmlB,GAAuCA,KAClCD,IAAmBA,EAAevjnB,OACpD,OAAO,KAIT,IAAIyjnB,EAAgCR,EAAiB/2mB,KAAI,SAAUmgB,GACjE,OAAOhsB,KAAK22B,MAAM3K,EAAIuH,EAAIA,EAC5B,IAAGF,MAAK,SAAU3a,EAAGC,GACnB,OAAOD,EAAIC,CACb,IAEI4a,IAAM6vlB,EAA8B,IACtCA,EAA8BzljB,QAAQ,GAExC,IAAIsgL,EAAQmlY,EAA8Bv3mB,KAAI,SAAUqjB,EAAOxvB,GAE7D,IACIo8B,GADcsnlB,EAA8B1jnB,EAAI,GACtB6zB,EAAIpzB,EAAS+uB,EAAQk0lB,EAA8B1jnB,EAAI,GAAKwvB,EAC1F,GAAI4M,GAAc,EAChB,OAAO,KAET,IAAIunlB,EAAa3jnB,EAAIwjnB,EAAevjnB,OACpC,OAAoB0yN,EAAAA,cAAoB,OAAQ,CAC9C/uN,IAAK,SAASN,OAAOtD,GAErB6zB,EAAGrE,EACH/F,EAAGA,EACHhpB,OAAQ27B,EACRr7B,MAAOA,EACPslJ,OAAQ,OACR37C,KAAM84gB,EAAeG,GACrB99jB,YAAaA,EACbx/C,UAAW,8BAEf,IACA,OAAoBssN,EAAAA,cAAoB,IAAK,CAC3CtsN,UAAW,6CACVk4O,EACL,CACA,SAASqlY,IAAgBjtkB,GACvB,IAAIktkB,EAAmBltkB,EAAMnZ,SAC3BA,OAAgC,IAArBqmlB,GAAqCA,EAChDC,EAAentkB,EAAMmtkB,aACrBj+jB,EAAclP,EAAMkP,YACpBp8B,EAAIktB,EAAMltB,EACVoK,EAAI8iB,EAAM9iB,EACV9yB,EAAQ41C,EAAM51C,MACdN,EAASk2C,EAAMl2C,OACf6inB,EAAiB3skB,EAAM2skB,eACzB,IAAK9llB,IAAasmlB,IAAiBA,EAAa7jnB,OAC9C,OAAO,KAET,IAAI8jnB,EAA8BT,EAAen3mB,KAAI,SAAUmgB,GAC7D,OAAOhsB,KAAK22B,MAAM3K,EAAI7C,EAAIA,EAC5B,IAAGkK,MAAK,SAAU3a,EAAGC,GACnB,OAAOD,EAAIC,CACb,IACIwQ,IAAMs6lB,EAA4B,IACpCA,EAA4B9ljB,QAAQ,GAEtC,IAAIsgL,EAAQwlY,EAA4B53mB,KAAI,SAAUqjB,EAAOxvB,GAC3D,IACIg9B,GADc+mlB,EAA4B/jnB,EAAI,GACrBypB,EAAI1oB,EAAQyuB,EAAQu0lB,EAA4B/jnB,EAAI,GAAKwvB,EACtF,GAAIwN,GAAa,EACf,OAAO,KAET,IAAI2mlB,EAAa3jnB,EAAI8jnB,EAAa7jnB,OAClC,OAAoB0yN,EAAAA,cAAoB,OAAQ,CAC9C/uN,IAAK,SAASN,OAAOtD,GAErBypB,EAAG+F,EACHqE,EAAGA,EACH9yB,MAAOi8B,EACPv8B,OAAQA,EACR4lJ,OAAQ,OACR37C,KAAMo5gB,EAAaH,GACnB99jB,YAAaA,EACbx/C,UAAW,8BAEf,IACA,OAAoBssN,EAAAA,cAAoB,IAAK,CAC3CtsN,UAAW,2CACVk4O,EACL,CACA,IAAIylY,IAAsC,SAA6Cj6d,EAAM8+b,GAC3F,IAAIlD,EAAQ57b,EAAK47b,MACf5klB,EAAQgpJ,EAAKhpJ,MACbN,EAASspJ,EAAKtpJ,OACdm5D,EAASmwF,EAAKnwF,OAChB,OAAO8uhB,IAAqB82B,IAASloY,IAAcA,IAAcA,IAAc,CAAC,EAAGspY,IAAcnqkB,cAAekviB,GAAQ,CAAC,EAAG,CAC1HnX,MAAOwa,IAAerD,GAAO,GAC7BvoP,QAAS,CACP3zU,EAAG,EACHoK,EAAG,EACH9yB,MAAOA,EACPN,OAAQA,MAEPm5D,EAAOz5D,KAAMy5D,EAAOz5D,KAAOy5D,EAAO74D,MAAO8nlB,EAChD,EACIo7B,IAAwC,SAA+Czoc,EAAOqta,GAChG,IAAIjD,EAAQpqa,EAAMoqa,MAChB7klB,EAAQy6K,EAAMz6K,MACdN,EAAS+6K,EAAM/6K,OACfm5D,EAAS4hH,EAAM5hH,OACjB,OAAO8uhB,IAAqB82B,IAASloY,IAAcA,IAAcA,IAAc,CAAC,EAAGspY,IAAcnqkB,cAAemviB,GAAQ,CAAC,EAAG,CAC1HpX,MAAOwa,IAAepD,GAAO,GAC7BxoP,QAAS,CACP3zU,EAAG,EACHoK,EAAG,EACH9yB,MAAOA,EACPN,OAAQA,MAEPm5D,EAAOx5D,IAAKw5D,EAAOx5D,IAAMw5D,EAAOn5D,OAAQoolB,EAC/C,EACIpyiB,IAAe,CACjBhZ,YAAY,EACZD,UAAU,EAEV0llB,iBAAkB,GAElBI,eAAgB,GAChBj9d,OAAQ,OACR37C,KAAM,OAENo5gB,aAAc,GACdN,eAAgB,IAEX,SAASjM,IAAc5gkB,GAC5B,IAAIutkB,EAAeC,EAAaC,EAAoBC,EAAuBC,EAAkBC,EACzFznD,EAAaskC,MACblkC,EAAcmkC,MACdzniB,GpClHGiS,EAAAA,EAAAA,YAAW60hB,KoCmHd8jB,EAAyBltY,IAAcA,IAAc,CAAC,EAAG3gM,GAAQ,CAAC,EAAG,CACvE0vG,OAA2C,QAAlC69d,EAAgBvtkB,EAAM0vG,cAAsC,IAAlB69d,EAA2BA,EAAgBztkB,IAAa4vG,OAC3G37C,KAAqC,QAA9By5gB,EAAcxtkB,EAAM+zD,YAAkC,IAAhBy5gB,EAAyBA,EAAc1tkB,IAAai0D,KACjGjtE,WAAwD,QAA3C2mlB,EAAqBztkB,EAAMlZ,kBAA+C,IAAvB2mlB,EAAgCA,EAAqB3tkB,IAAahZ,WAClI+llB,eAAmE,QAAlDa,EAAwB1tkB,EAAM6skB,sBAAsD,IAA1Ba,EAAmCA,EAAwB5tkB,IAAa+skB,eACnJhmlB,SAAkD,QAAvC8mlB,EAAmB3tkB,EAAMnZ,gBAA2C,IAArB8mlB,EAA8BA,EAAmB7tkB,IAAajZ,SACxHsmlB,aAA6D,QAA9CS,EAAsB5tkB,EAAMmtkB,oBAAkD,IAAxBS,EAAiCA,EAAsB9tkB,IAAaqtkB,aACzIr6lB,EAAGy8E,GAASvvD,EAAMltB,GAAKktB,EAAMltB,EAAImwC,EAAOz5D,KACxC0zB,EAAGqyE,GAASvvD,EAAM9iB,GAAK8iB,EAAM9iB,EAAI+lC,EAAOx5D,IACxCW,MAAOmlG,GAASvvD,EAAM51C,OAAS41C,EAAM51C,MAAQ64D,EAAO74D,MACpDN,OAAQylG,GAASvvD,EAAMl2C,QAAUk2C,EAAMl2C,OAASm5D,EAAOn5D,SAErDgpB,EAAI+6lB,EAAuB/6lB,EAC7BoK,EAAI2wlB,EAAuB3wlB,EAC3B9yB,EAAQyjnB,EAAuBzjnB,MAC/BN,EAAS+jnB,EAAuB/jnB,OAChCoolB,EAAgB27B,EAAuB37B,cACvC47B,EAAmBD,EAAuBC,iBAC1CC,EAAiBF,EAAuBE,eAGtC/+B,EpC7LyB,WAC7B,IAAIqb,GAAWn1hB,EAAAA,EAAAA,YAAW00hB,KAC1B,OAAOpxC,GAAsB6xC,EAC/B,CoC0Lc2jB,GAER/+B,EpCrKwC,WAC5C,IAAIqb,GAAWp1hB,EAAAA,EAAAA,YAAW20hB,KAI1B,OAH4BpwlB,MAAK6wlB,GAAU,SAAUhY,GACnD,OAAO94kB,MAAM84kB,EAAKjrkB,OAAQhY,OAAO4kF,SACnC,KACgCuke,GAAsB8xC,EACxD,CoC+Jc2jB,GACZ,IAAK1+gB,GAASnlG,IAAUA,GAAS,IAAMmlG,GAASzlG,IAAWA,GAAU,IAAMylG,GAASz8E,IAAMA,KAAOA,IAAMy8E,GAASryE,IAAMA,KAAOA,EAC3H,OAAO,KAUT,IAAIgxlB,EAA+BL,EAAuBK,8BAAgCb,IACtFc,EAAiCN,EAAuBM,gCAAkCb,IAC1Ff,EAAmBsB,EAAuBtB,iBAC5CI,EAAiBkB,EAAuBlB,eAG1C,KAAMJ,IAAqBA,EAAiBjjnB,SAAWypB,KAAWo7lB,GAAiC,CACjG,IAAIC,EAAqBN,GAAoBA,EAAiBxknB,OAC1D+knB,EAAkBF,EAA+B,CACnDl/B,MAAOA,EAAQtuW,IAAcA,IAAc,CAAC,EAAGsuW,GAAQ,CAAC,EAAG,CACzDpX,MAAOu2C,EAAqBN,EAAmB7+B,EAAMpX,aAClDzikB,EACLhL,MAAO+7jB,EACPr8jB,OAAQy8jB,EACRtjgB,OAAQA,KACPmrjB,GAA4Bl8B,GAC/Bt2iB,GAAK5yC,MAAMqR,QAAQg0mB,GAAkB,+EAA+E1hnB,OAAOhC,IAAQ0jnB,GAAkB,MACjJrlnB,MAAMqR,QAAQg0mB,KAChB9B,EAAmB8B,EAEvB,CAGA,KAAM1B,IAAmBA,EAAerjnB,SAAWypB,KAAWm7lB,GAA+B,CAC3F,IAAII,EAAmBP,GAAkBA,EAAezknB,OACpDilnB,EAAmBL,EAA6B,CAClDl/B,MAAOA,EAAQruW,IAAcA,IAAc,CAAC,EAAGquW,GAAQ,CAAC,EAAG,CACzDnX,MAAOy2C,EAAmBP,EAAiB/+B,EAAMnX,aAC9CzikB,EACLhL,MAAO+7jB,EACPr8jB,OAAQy8jB,EACRtjgB,OAAQA,KACPqrjB,GAA0Bp8B,GAC7Bt2iB,GAAK5yC,MAAMqR,QAAQk0mB,GAAmB,6EAA6E5hnB,OAAOhC,IAAQ4jnB,GAAmB,MACjJvlnB,MAAMqR,QAAQk0mB,KAChB5B,EAAiB4B,EAErB,CACA,OAAoBvyZ,EAAAA,cAAoB,IAAK,CAC3CtsN,UAAW,2BACGssN,EAAAA,cAAoBiwZ,IAAY,CAC9Cl4gB,KAAM85gB,EAAuB95gB,KAC7B7kD,YAAa2+jB,EAAuB3+jB,YACpCp8B,EAAG+6lB,EAAuB/6lB,EAC1BoK,EAAG2wlB,EAAuB3wlB,EAC1B9yB,MAAOyjnB,EAAuBzjnB,MAC9BN,OAAQ+jnB,EAAuB/jnB,OAC/B64H,GAAIkrf,EAAuBlrf,KACZq5F,EAAAA,cAAoBqwZ,IAAqBjlZ,IAAS,CAAC,EAAGymZ,EAAwB,CAC7F5qjB,OAAQA,EACRspjB,iBAAkBA,EAClBv9B,MAAOA,EACPC,MAAOA,KACSjzX,EAAAA,cAAoBywZ,IAAmBrlZ,IAAS,CAAC,EAAGymZ,EAAwB,CAC5F5qjB,OAAQA,EACR0pjB,eAAgBA,EAChB39B,MAAOA,EACPC,MAAOA,KACSjzX,EAAAA,cAAoB4wZ,IAAmBxlZ,IAAS,CAAC,EAAGymZ,EAAwB,CAC5FtB,iBAAkBA,KACFvwZ,EAAAA,cAAoBixZ,IAAiB7lZ,IAAS,CAAC,EAAGymZ,EAAwB,CAC1FlB,eAAgBA,KAEpB,CACA/L,IAAc52jB,YAAc,gBCxWrB,IAAIwkkB,IAAWrV,IAAyB,CAC7ChS,UAAW,WACXiS,eAAgBtV,IAChBwV,wBAAyB,OACzBE,0BAA2B,CAAC,OAAQ,QACpCC,eAAgB,CAAC,CACfroB,SAAU,QACVsmB,SAAUoJ,KACT,CACD1vB,SAAU,QACVsmB,SAAUqJ,MAEZ9Z,cAAeA,MClBjB,UADsB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,YAAa,UAAW,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,sfAA0f,KAAQ,UAAW,MAAS,YCM3sB,IAAIwnB,IAAkB,SAAyBzukB,EAAON,GACpD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMs0a,MAEV,EAOA,UAJ2B1yZ,EAAAA,WAAiByyZ,KCb5C,UAD0B,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAC,EAAG,SAAY,CAAC,CAAE,IAAO,QAAS,MAAS,CAAC,KAAQ,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,4jBAAgkB,KAAQ,eAAgB,MAAS,YCMj1B,IAAIE,IAAsB,SAA6B3ukB,EAAON,GAC5D,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMw0a,MAEV,EAOA,UAJ2B5yZ,EAAAA,WAAiB2yZ,KCqK5C,IAzKkBE,KAChB,MAAMn8iB,EAAW2hS,MACX,SAAEgnE,GAAavmE,IAAatiW,GAAUA,EAAM6oa,YAC5C,OAAEgE,GAAWvqE,IAAatiW,GAAUA,EAAM6sa,UAC1C,OAAE74X,EAAS,IAAOsuT,IAAatiW,GAAUA,EAAMg0C,UAC/C,aAAE47U,GAAiBttB,IAAatiW,GAAUA,EAAMwvX,WAEhD7nP,IAAYkhS,GAAYgE,GAAU74X,GAAU47U,GAC5CpvX,GAASmnI,KAAakhS,IAAagE,IAAW74X,IAAW47U,IAExD0sP,EAAaC,IAAkBr5iB,EAAAA,EAAAA,UAAS,KACxCs5iB,EAAeC,IAAoBv5iB,EAAAA,EAAAA,UAAS,KAEnDP,EAAAA,EAAAA,YAAU,KACR,MACMw+c,EAAU43B,OAAS5thB,IAAI,EAAG,OAAOvyB,OAAO,cAC9CsnE,EAASymY,GAAkB,CAAErmc,KAFX,aAE4BG,GAAI0ghB,KAClDjhd,EAASwoW,MACTxoW,EAASssW,MACTtsW,EAASivT,KAAiB,GACzB,CAACjvT,KAEJyC,EAAAA,EAAAA,YAAU,KACR,GAAI3uB,GAAUA,EAAOl9C,OAAS,EAAG,CAC/B,MAAM4lnB,EAAYC,EAAqB3okB,GACjC4okB,EAAcC,EAAuB7okB,GAC3CuokB,EAAeG,GACfD,EAAiBG,EACnB,IACC,CAAC5okB,IAIJ,MAAM2okB,EAAwB3okB,IAC5B,MAAMmte,EAAU43B,OAAS5thB,IAAI,EAAG,OAG1B2xlB,EAAc,GACpB,IAAIjgd,EAHck8Y,OAAShrhB,SAAS,EAAG,QAGXtwB,QAE5B,KAAOo/J,EAAYtvI,SAAS4zf,EAAS,QAAQ,CAC3C,MAAM47F,EAAa/okB,EAAOltC,QAAQu1C,GAChC08f,KAAO18f,EAAMu7a,WAAWzqc,OAAO0vI,EAAa,SAC5C/lK,OAEFgmnB,EAAYtlnB,KAAK,CACfoM,KAAMi5J,EAAYjkK,OAAO,cACzBoknB,YAAaD,IAGflgd,EAAY1xI,IAAI,EAAG,MACrB,CAEA,OAAO2xlB,CAAW,EAIdD,EAA0B7okB,IAC9B,MAAMmte,EAAU43B,OAAS5thB,IAAI,EAAG,OAG1B8xlB,EAAgB,GACtB,IAAIC,EAHcnkE,OAAShrhB,SAAS,EAAG,UAAUX,QAAQ,SAG5B3vB,QAE7B,KAAOy/mB,EAAan5c,eAAeo9W,EAAS,UAAU,CACpD,MAAMg8F,EAAqBnpkB,EAAOltC,QAAQu1C,GACxC08f,KAAO18f,EAAMu7a,WAAWn0T,UACtBy5c,EACAA,EAAaz/mB,QAAQ4vB,MAAM,SAC3B,KACA,QAEFv2B,OAEFmmnB,EAAczlnB,KAAK,CACjBoM,KAAMs5mB,EAAatknB,OAAO,WAC1BoknB,YAAaG,IAGfD,EAAa/xlB,IAAI,EAAG,QACtB,CAEA,OAAO8xlB,CAAa,EAGtB,OAAIt1e,GACKyjS,EAAAA,GAAAA,KAACzH,GAAI,CAAC3rZ,KAAK,UAGhBxX,GACK4qa,EAAAA,GAAAA,KAAA,OAAAtxX,SAAK,wBAIZqxX,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EACEsxX,EAAAA,GAAAA,KAAC4pC,GAAWhgH,MAAK,CAACv6K,MAAO,EAAGx/K,MAAO,CAAC27B,MAAO,OAAOkjB,SAAC,qBAEnDqxX,EAAAA,GAAAA,MAACprY,GAAG,CAAC0rW,OAAQ,CAAC,GAAI,IAAKxwY,MAAO,CAAEg5H,UAAW,OAAQE,aAAc,QAASr6E,SAAA,EACxEsxX,EAAAA,GAAAA,KAACpF,GAAG,CAAC18H,GAAI,GAAIC,GAAI,GAAI5iP,GAAI,EAAGuR,GAAI,EAAEpe,UAChCsxX,EAAAA,GAAAA,KAAC0kD,GAAI,CACH70d,MAAO,CAAEmG,gBAAiB,WAC1B0hY,UAAU,EACV3yR,OAAOi7T,EAAAA,GAAAA,KAAC6wM,IAAe,CAAEhhnB,MAAO,CAAE83B,SAAU,OAAQ6D,MAAO,aAAgBkjB,UAE3EsxX,EAAAA,GAAAA,KAACo6I,GAAS,CAAC9jhB,MAAM,0BAA0BntC,MAAOs0a,EAAS/xa,cAG/Ds0a,EAAAA,GAAAA,KAACpF,GAAG,CAAC18H,GAAI,GAAIC,GAAI,GAAI5iP,GAAI,EAAGuR,GAAI,EAAEpe,UAChCsxX,EAAAA,GAAAA,KAAC0kD,GAAI,CACH70d,MAAO,CAAEmG,gBAAiB,WAC1B0hY,UAAU,EACV3yR,OAAOi7T,EAAAA,GAAAA,KAAClsE,GAAoB,CAACjkW,MAAO,CAAE83B,SAAU,OAAQ6D,MAAO,aAAgBkjB,UAE/EsxX,EAAAA,GAAAA,KAACo6I,GAAS,CAAC9jhB,MAAM,eAAentC,MAAOy/C,EAAOl9C,cAGlDs0a,EAAAA,GAAAA,KAACpF,GAAG,CAAC18H,GAAI,GAAIC,GAAI,GAAI5iP,GAAI,EAAGuR,GAAI,EAAEpe,UAChCsxX,EAAAA,GAAAA,KAAC0kD,GAAI,CACH70d,MAAO,CAAEmG,gBAAiB,WAC1B0hY,UAAU,EACV3yR,OAAOi7T,EAAAA,GAAAA,KAAC+wM,IAAmB,CAAClhnB,MAAO,CAAE83B,SAAU,OAAQ6D,MAAO,aAAgBkjB,UAE9EsxX,EAAAA,GAAAA,KAACo6I,GAAS,CAAC9jhB,MAAM,eAAentC,MAAOs4a,EAAO/1a,cAGlDs0a,EAAAA,GAAAA,KAACpF,GAAG,CAAC18H,GAAI,GAAIC,GAAI,GAAI5iP,GAAI,EAAGuR,GAAI,EAAEpe,UAChCsxX,EAAAA,GAAAA,KAAC0kD,GAAI,CACH70d,MAAO,CAAEmG,gBAAiB,WAC1B0hY,UAAU,EACV3yR,OAAOi7T,EAAAA,GAAAA,KAAChtE,GAAY,CAACnjW,MAAO,CAAE83B,SAAU,OAAQ6D,MAAO,aAAgBkjB,UAEvEsxX,EAAAA,GAAAA,KAACo6I,GAAS,CAAC9jhB,MAAM,kBAAkBntC,MAAOq7X,EAAa94X,iBAK7Dq0a,EAAAA,GAAAA,MAACprY,GAAG,CAAC0rW,OAAQ,GAAG3xV,SAAA,EACdsxX,EAAAA,GAAAA,KAACpF,GAAG,CAACjvR,KAAM,GAAGj9F,UACZsxX,EAAAA,GAAAA,KAAC0kD,GAAI,CAACpub,MAAM,6BAA4BoY,UACtCsxX,EAAAA,GAAAA,KAAC2+I,GAAmB,CAACnyjB,MAAM,OAAON,OAAQ,IAAIwiD,UAC5CqxX,EAAAA,GAAAA,MAACquM,IAAS,CAACtnmB,KAAMoqmB,EAAYxikB,SAAA,EAC3BsxX,EAAAA,GAAAA,KAACgjM,IAAa,CAACvxjB,gBAAgB,SAC/BuuX,EAAAA,GAAAA,KAACkjM,IAAK,CAACtvkB,QAAQ,UACfosY,EAAAA,GAAAA,KAACmjM,IAAK,KACNnjM,EAAAA,GAAAA,KAACx+H,GAAO,KACRw+H,EAAAA,GAAAA,KAACsjM,IAAI,CAAC/xmB,KAAK,WAAWqiC,QAAQ,cAAck+G,OAAO,sBAM3DkuR,EAAAA,GAAAA,KAACpF,GAAG,CAACjvR,KAAM,GAAGj9F,UACZsxX,EAAAA,GAAAA,KAAC0kD,GAAI,CAACpub,MAAM,iCAAgCoY,UAC1CsxX,EAAAA,GAAAA,KAAC2+I,GAAmB,CAACnyjB,MAAM,OAAON,OAAQ,IAAIwiD,UAC5CqxX,EAAAA,GAAAA,MAAC6wM,IAAQ,CAAC9pmB,KAAMsqmB,EAAc1ikB,SAAA,EAC5BsxX,EAAAA,GAAAA,KAACgjM,IAAa,CAACvxjB,gBAAgB,SAC/BuuX,EAAAA,GAAAA,KAACkjM,IAAK,CAACtvkB,QAAQ,UACfosY,EAAAA,GAAAA,KAACmjM,IAAK,KACNnjM,EAAAA,GAAAA,KAACx+H,GAAO,KACRw+H,EAAAA,GAAAA,KAACkmL,IAAG,CAACtyjB,QAAQ,cAAcuiE,KAAK,0BAMtC,EC/KV,aAA0BihH,EAAM46Z,GAC9B,GAAI56Z,GAAQ46Z,EAAe,CACzB,IAAIC,EAAqB7mnB,MAAMqR,QAAQu1mB,GAAiBA,EAAgBA,EAActumB,MAAM,KACxFwoW,EAAW90J,EAAK5+M,MAAQ,GACxBu/L,EAAWqf,EAAK7lN,MAAQ,GACxB2gnB,EAAen6a,EAAS95L,QAAQ,QAAS,IAC7C,OAAOg0mB,EAAmBt2mB,MAAK,SAAUpK,GACvC,IAAI4gnB,EAAY5gnB,EAAK+b,OAErB,GAAI,cAAc/F,KAAKhW,GACrB,OAAO,EAIT,GAA4B,MAAxB4gnB,EAAUrlmB,OAAO,GAAY,CAC/B,IAAIslmB,EAAgBlmQ,EAASx+W,cACzB2knB,EAAYF,EAAUzknB,cACtB4knB,EAAY,CAACD,GAIjB,MAHkB,SAAdA,GAAsC,UAAdA,IAC1BC,EAAY,CAAC,OAAQ,UAEhBA,EAAU32mB,MAAK,SAAU42mB,GAC9B,OAAOH,EAAcv4gB,SAAS04gB,EAChC,GACF,CAGA,MAAI,QAAQhrmB,KAAK4qmB,GACRD,IAAiBC,EAAUl0mB,QAAQ,QAAS,IAIjD85L,IAAao6a,KAKb,QAAQ5qmB,KAAK4qmB,KACfhpZ,IAAQ,EAAO,6CAA6Cp6N,OAAOojnB,EAAW,uBACvE,EAGX,GACF,CACA,OAAO,CACR,ECtCD,SAASK,IAAQ3we,GACf,IAAIz7G,EAAOy7G,EAAI29D,cAAgB39D,EAAIh7F,SACnC,IAAKzgB,EACH,OAAOA,EAET,IACE,OAAOtyB,KAAKC,MAAMqyB,EACpB,CAAE,MAAOrO,KACP,OAAOqO,CACT,CACF,CACe,SAAS04S,IAAOtpM,GAE7B,IAAIqM,EAAM,IAAIn7F,eACV8uF,EAAOmjP,YAAc92O,EAAIi9L,SAC3Bj9L,EAAIi9L,OAAO2zS,WAAa,SAAkB16lB,GACpCA,EAAE0d,MAAQ,IACZ1d,EAAE6wT,QAAU7wT,EAAEwvM,OAASxvM,EAAE0d,MAAQ,KAEnC+/F,EAAOmjP,WAAW5gW,EACpB,GAIF,IAAI60V,EAAW,IAAIpC,SACfh1O,EAAO1uH,MACTvW,OAAOC,KAAKglI,EAAO1uH,MAAMzb,SAAQ,SAAUgE,GACzC,IAAIlG,EAAQqsI,EAAO1uH,KAAKzX,GAEpBjE,MAAMqR,QAAQtT,GAChBA,EAAMkC,SAAQ,SAAUoxC,GAGtBmwU,EAAS1tH,OAAO,GAAGnwP,OAAOM,EAAK,MAAOotC,EACxC,IAGFmwU,EAAS1tH,OAAO7vP,EAAKlG,EACvB,IAIEqsI,EAAO4hF,gBAAgB3wK,KACzBmmU,EAAS1tH,OAAO1pH,EAAO1gI,SAAU0gI,EAAO4hF,KAAM5hF,EAAO4hF,KAAK5+M,MAE1Do0W,EAAS1tH,OAAO1pH,EAAO1gI,SAAU0gI,EAAO4hF,MAE1Cv1E,EAAI/6F,QAAU,SAAe/uB,GAC3By9G,EAAOjhF,QAAQx8B,EACjB,EACA8pH,EAAIj7F,OAAS,WAGX,OAAIi7F,EAAI76F,OAAS,KAAO66F,EAAI76F,QAAU,IAC7BwuF,EAAOjhF,QA9DpB,SAAkBihF,EAAQqM,GACxB,IAAIhpI,EAAM,UAAU9J,OAAOymI,EAAOh5H,OAAQ,KAAKzN,OAAOymI,EAAO9gE,OAAQ,KAAK3lE,OAAO8yI,EAAI76F,OAAQ,KACzFh5C,EAAM,IAAIC,MAAM4K,GAIpB,OAHA7K,EAAIg5C,OAAS66F,EAAI76F,OACjBh5C,EAAIwO,OAASg5H,EAAOh5H,OACpBxO,EAAIvB,IAAM+oI,EAAO9gE,OACV1mE,CACT,CAuD4B0knB,CAASl9e,EAAQqM,GAAM2we,IAAQ3we,IAEhDrM,EAAOm9e,UAAUH,IAAQ3we,GAAMA,EACxC,EACAA,EAAI/3H,KAAK0rH,EAAOh5H,OAAQg5H,EAAO9gE,QAAQ,GAGnC8gE,EAAOugP,iBAAmB,oBAAqBl0O,IACjDA,EAAIk0O,iBAAkB,GAExB,IAAIzG,EAAU95O,EAAO85O,SAAW,CAAC,EAajC,OAToC,OAAhCA,EAAQ,qBACVztO,EAAIo2O,iBAAiB,mBAAoB,kBAE3C1nX,OAAOC,KAAK8+W,GAASjkX,SAAQ,SAAU2L,GAClB,OAAfs4W,EAAQt4W,IACV6qI,EAAIo2O,iBAAiBjhX,EAAGs4W,EAAQt4W,GAEpC,IACA6qI,EAAI96F,KAAK6lU,GACF,CACL9I,MAAO,WACLjiO,EAAIiiO,OACN,EAEJ,CCoFA,UA1KoC,WAClC,IAAItuN,GAAOjyH,EAAAA,GAAAA,GAAgC2oR,KAAsB53J,MAAK,SAASi6J,EAASqkU,EAAOC,GAC7F,IAAIC,EAAiBC,EAAkBC,EAAeC,EAAgBC,EAAUC,EAAWC,EAAmBC,EAC9G,OAAOnnU,KAAsBp4R,MAAK,SAAmB06R,GACnD,cAAkBA,EAAUrnR,KAAOqnR,EAAU/vS,MAC3C,KAAK,EACH00mB,EAAY,WAmCV,OAlCAA,GAAY5vlB,EAAAA,GAAAA,GAAgC2oR,KAAsB53J,MAAK,SAAS85J,EAAS3xQ,GACvF,OAAOyvQ,KAAsBp4R,MAAK,SAAmBu6R,GACnD,cAAkBA,EAAUlnR,KAAOknR,EAAU5vS,MAC3C,KAAK,EACH,OAAO4vS,EAAUzK,OAAO,SAAU,IAAIrwS,SAAQ,SAAU+/mB,GACtD72kB,EAAK26K,MAAK,SAAUA,GACdy7Z,EAAWz7Z,IAET36K,EAAKo6M,WAAaz/B,EAAKm8Z,qBACzBhjnB,OAAOgY,iBAAiB6uM,EAAM,CAC5Bm8Z,mBAAoB,CAClBz0mB,UAAU,KAIds4M,EAAKm8Z,mBAAqB92kB,EAAKo6M,SAAS54O,QAAQ,MAAO,IACvD1N,OAAOgY,iBAAiB6uM,EAAM,CAC5Bm8Z,mBAAoB,CAClBz0mB,UAAU,MAIhBw0mB,EAAQl8Z,IAERk8Z,EAAQ,KAEZ,GACF,KACF,KAAK,EACL,IAAK,MACH,OAAOjlU,EAAU1rL,OAEvB,GAAGyrL,EACL,MACiBxpS,MAAMra,KAAMyP,UAC/B,EACAk5mB,EAAW,SAAoBnnU,GAC7B,OAAOonU,EAAUvumB,MAAMra,KAAMyP,UAC/B,EACAi5mB,EAAiB,WAyCf,OAxCAA,GAAiB1vlB,EAAAA,GAAAA,GAAgC2oR,KAAsB53J,MAAK,SAAS63J,EAAS13F,GAC5F,IAAI++Z,EAAW7ymB,EAAS+pH,EAASl3H,EAAG/H,EACpC,OAAOygT,KAAsBp4R,MAAK,SAAmB44R,GACnD,cAAkBA,EAAUvlR,KAAOulR,EAAUjuS,MAC3C,KAAK,EACH+0mB,EAAY/+Z,EAAUg/Z,eACtB9ymB,EAAU,GACZ,KAAK,EAMH,OADA+rS,EAAUjuS,KAAO,EACV,IAAIlL,SAAQ,SAAUM,GAC3B2/mB,EAAUE,YAAY7/mB,GAAS,WAC7B,OAAOA,EAAQ,GACjB,GACF,IACF,KAAK,EAGH,GAFA62H,EAAUgiL,EAAUppM,KACpB9vG,EAAIk3H,EAAQh/H,OACL,CACLghT,EAAUjuS,KAAO,EACjB,KACF,CACA,OAAOiuS,EAAU9I,OAAO,QAAS,IACnC,KAAK,EACH,IAAKn4S,EAAI,EAAGA,EAAI+H,EAAG/H,IACjBkV,EAAQvU,KAAKs+H,EAAQj/H,IAEvBihT,EAAUjuS,KAAO,EACjB,MACF,KAAK,GACH,OAAOiuS,EAAU9I,OAAO,SAAUjjS,GACpC,KAAK,GACL,IAAK,MACH,OAAO+rS,EAAU/pL,OAEvB,GAAGwpL,EACL,MACsBvnS,MAAMra,KAAMyP,UACpC,EACAg5mB,EAAgB,SAAyBlnU,GACvC,OAAOmnU,EAAerumB,MAAMra,KAAMyP,UACpC,EACA84mB,EAAkB,GAClBC,EAAmB,GACnBH,EAAMvnnB,SAAQ,SAAU+rN,GACtB,OAAO27Z,EAAiB3mnB,KAAKgrN,EAAKu8Z,mBACpC,IAGAP,EAAiC,WAC/B,IAAInsc,GAAQ1jJ,EAAAA,GAAAA,GAAgC2oR,KAAsB53J,MAAK,SAASo5J,EAAQjxQ,EAAM17B,GAC5F,IAAI6ymB,EAAOjzmB,EACX,OAAOurS,KAAsBp4R,MAAK,SAAkB04B,GAClD,cAAkBA,EAASrlB,KAAOqlB,EAAS/tC,MACzC,KAAK,EACH,GAAIg+B,EAAM,CACR+P,EAAS/tC,KAAO,EAChB,KACF,CACA,OAAO+tC,EAASo3P,OAAO,UACzB,KAAK,EAGH,GADAnnQ,EAAK17B,KAAOA,GAAQ,IACf07B,EAAKusU,OAAQ,CAChBx8T,EAAS/tC,KAAO,GAChB,KACF,CAEA,OADA+tC,EAAS/tC,KAAO,EACTy0mB,EAASz2kB,GAClB,KAAK,GACHm3kB,EAAQpnkB,EAAS82D,OAEfwvgB,EAAgB1mnB,KAAKwnnB,GAEvBpnkB,EAAS/tC,KAAO,GAChB,MACF,KAAK,GACH,IAAKg+B,EAAKo3kB,YAAa,CACrBrnkB,EAAS/tC,KAAO,GAChB,KACF,CAEA,OADA+tC,EAAS/tC,KAAO,GACTu0mB,EAAcv2kB,GACvB,KAAK,GACH97B,EAAU6rC,EAAS82D,KACnByvgB,EAAiB3mnB,KAAKwY,MAAMmumB,EAAkBxlY,GAAmB5sO,IACnE,KAAK,GACL,IAAK,MACH,OAAO6rC,EAASm2E,OAEtB,GAAG+qL,EACL,KACA,OAAO,SAA2B1B,EAAK2B,GACrC,OAAO1mI,EAAMriK,MAAMra,KAAMyP,UAC3B,CACF,CA9CiC,GA+CjCq5mB,EAAW,EACb,KAAK,EACH,KAAMA,EAAWN,EAAiBrnnB,QAAS,CACzC8iT,EAAU/vS,KAAO,GACjB,KACF,CAEA,OADA+vS,EAAU/vS,KAAO,GACV20mB,EAAkBL,EAAiBM,IAC5C,KAAK,GACHA,IACA7kU,EAAU/vS,KAAO,EACjB,MACF,KAAK,GACH,OAAO+vS,EAAU5K,OAAO,SAAUkvU,GACpC,KAAK,GACL,IAAK,MACH,OAAOtkU,EAAU7rL,OAEvB,GAAG4rL,EACL,KACA,OAAO,SAA0B3C,EAAIC,GACnC,OAAOr2J,EAAK5wI,MAAMra,KAAMyP,UAC1B,CACF,CAzKoC,GCJpC,IAAIkjD,KAAO,IAAIx8B,KACXjmB,IAAQ,EACG,SAAS2R,MAEtB,MAAO,aAAard,OAAOmuD,IAAK,KAAKnuD,SAAS0L,IAChD,CCQA,IAAI89N,IAAY,CAAC,YAAa,YAAa,YAAa,aAAc,WAAY,KAAM,OAAQ,QAAS,SAAU,WAAY,SAAU,UAAW,WAAY,YAAa,wBAAyB,eAAgB,eAAgB,oBASlOu7Y,IAA4B,SAAUvU,GACxCl+X,GAAUyyY,EAAcvU,GACxB,IAAI36kB,EAAS08M,GAAawyY,GAC1B,SAASA,IACP,IAAI9ulB,EACJu8M,GAAgBh3O,KAAMupnB,GACtB,IAAK,IAAIj5Y,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAsNzB,OApNA91M,EAAQJ,EAAOt6B,KAAKsa,MAAMggB,EAAQ,CAACr6B,MAAMwE,OAAO2lB,KAChD0tF,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,QAAS,CACtD5Y,IAAK2nmB,SAEP3xgB,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,OAAQ,CAAC,IACxDo9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,iBAAa,IAC5Do9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,kBAAc,IAC7Do9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,YAAY,SAAUjN,GACnE,IAAIugO,EAActzN,EAAMod,MACtB4xkB,EAAS17X,EAAY07X,OACrBv/Z,EAAY6jC,EAAY7jC,UAEtBu9Z,EAAgBzkY,GADRx1N,EAAEziB,OAAOs9mB,OACyBl3mB,QAAO,SAAU07M,GAC7D,OAAQ3C,GAAaw/Z,IAAW78Z,EAAM48Z,EACxC,IACAhvlB,EAAMkvlB,YAAYlC,GAClBhtlB,EAAMmmG,OACR,KACA/oB,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,WAAW,SAAU2+B,GAClE,IAAIh0D,EAAKq1B,EAAMmvlB,UACf,GAAKxknB,EAAL,CAGA,IAAI2F,EAASquD,EAAMruD,OACfopE,EAAU15C,EAAMod,MAAMs8B,QAC1B,GAAIppE,GAA6B,WAAnBA,EAAO1D,QACNjC,EAAGqB,WACT8sB,QACPxoB,EAAOooB,OAET/tB,EAAGwqY,QACCz7T,GACFA,EAAQ/a,EAVV,CAYF,KACAy+C,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,aAAa,SAAUjN,GACtD,UAAVA,EAAE1oB,KACJ21B,EAAM05C,QAAQ3mD,EAElB,KACAqqF,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,aAA2B,WACxE,IAAIwwH,GAAOjyH,EAAAA,GAAAA,GAAgC2oR,KAAsB53J,MAAK,SAASo5J,EAAQ31R,GACrF,IAAIymD,EAAUo0iB,EAAOwB,EACrB,OAAOloU,KAAsBp4R,MAAK,SAAkB04B,GAClD,cAAkBA,EAASrlB,KAAOqlB,EAAS/tC,MACzC,KAAK,EAGH,GAFA+/D,EAAWx5C,EAAMod,MAAMo8B,SACvBzmD,EAAEukC,iBACe,aAAXvkC,EAAExmB,KAAsB,CAC5Bi7C,EAAS/tC,KAAO,EAChB,KACF,CACA,OAAO+tC,EAASo3P,OAAO,UACzB,KAAK,EACH,IAAK5+Q,EAAMod,MAAMqyK,UAAW,CAC1BjoK,EAAS/tC,KAAO,GAChB,KACF,CAEA,OADA+tC,EAAS/tC,KAAO,EACT41mB,IAAiBjpnB,MAAMhB,UAAUmF,MAAMjF,KAAKytB,EAAE+mC,aAAakrL,QAAQ,SAAU4pY,GAClF,OAAOK,IAAWL,EAAO5ulB,EAAMod,MAAM4xkB,OACvC,IACF,KAAK,EACHpB,EAAQpmkB,EAAS82D,KACjBt+E,EAAMkvlB,YAAYtB,GAClBpmkB,EAAS/tC,KAAO,GAChB,MACF,KAAK,GACH21mB,EAAS7mY,GAAmBx1N,EAAE+mC,aAAa8zjB,OAAOl3mB,QAAO,SAAU07M,GACjE,OAAO68Z,IAAW78Z,EAAMpyL,EAAMod,MAAM4xkB,OACtC,KACiB,IAAbx1iB,IACF41iB,EAASA,EAAO7knB,MAAM,EAAG,IAE3By1B,EAAMkvlB,YAAYE,GACpB,KAAK,GACL,IAAK,MACH,OAAO5nkB,EAASm2E,OAEtB,GAAG+qL,EACL,KACA,OAAO,SAAU9B,GACf,OAAOp2J,EAAK5wI,MAAMra,KAAMyP,UAC1B,CACF,CA5C0E,KA6C1EooG,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,eAAe,SAAU4tlB,GACtE,IAAI0B,EAAc/mY,GAAmBqlY,GACjC2B,EAAYD,EAAY18mB,KAAI,SAAUw/M,GAGxC,OADAA,EAAKhrM,IAAM2nmB,MACJ/ulB,EAAMwvlB,YAAYp9Z,EAAMk9Z,EACjC,IAGA/gnB,QAAQjE,IAAIilnB,GAAW/pnB,MAAK,SAAUiqnB,GACpC,IAAIC,EAAe1vlB,EAAMod,MAAMsykB,aACd,OAAjBA,QAA0C,IAAjBA,GAA2BA,EAAaD,EAAS78mB,KAAI,SAAUqvK,GAGtF,MAAO,CACLmwC,KAHWnwC,EAAMt/H,OAIjBgtkB,WAHa1tc,EAAM0tc,WAKvB,KACAF,EAAS/4mB,QAAO,SAAU07M,GACxB,OAA2B,OAApBA,EAAKu9Z,UACd,IAAGtpnB,SAAQ,SAAU+rN,GACnBpyL,EAAM+oJ,KAAKqpC,EACb,GACF,GACF,KAIAh1G,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,cAA4B,WACzE,IAAI2lO,GAAQpnO,EAAAA,GAAAA,GAAgC2oR,KAAsB53J,MAAK,SAAS63J,EAAS/0F,EAAMq9Z,GAC7F,IAAIG,EAAcC,EAAiBngjB,EAAQogjB,EAAchumB,EAAMijO,EAAYgrY,EAAYJ,EAAYK,EACnG,OAAO9oU,KAAsBp4R,MAAK,SAAmB44R,GACnD,cAAkBA,EAAUvlR,KAAOulR,EAAUjuS,MAC3C,KAAK,EAGH,GAFAm2mB,EAAe5vlB,EAAMod,MAAMwykB,aAC3BC,EAAkBz9Z,GACbw9Z,EAAc,CACjBloU,EAAUjuS,KAAO,GACjB,KACF,CAGA,OAFAiuS,EAAUvlR,KAAO,EACjBulR,EAAUjuS,KAAO,EACVm2mB,EAAax9Z,EAAMq9Z,GAC5B,KAAK,EACHI,EAAkBnoU,EAAUppM,KAC5BopM,EAAUjuS,KAAO,GACjB,MACF,KAAK,EACHiuS,EAAUvlR,KAAO,EACjBulR,EAAUG,GAAKH,EAAiB,MAAE,GAElCmoU,GAAkB,EACpB,KAAK,GACH,IAA0B,IAApBA,EAA4B,CAChCnoU,EAAUjuS,KAAO,GACjB,KACF,CACA,OAAOiuS,EAAU9I,OAAO,SAAU,CAChCj8P,OAAQyvK,EACRu9Z,WAAY,KACZjgjB,OAAQ,KACR5tD,KAAM,OAEV,KAAK,GAGH,GAAwB,oBADxB4tD,EAAS1vC,EAAMod,MAAMsyB,QACgB,CACnCg4O,EAAUjuS,KAAO,GACjB,KACF,CAEA,OADAiuS,EAAUjuS,KAAO,GACVi2D,EAAO0iJ,GAChB,KAAK,GACH09Z,EAAepoU,EAAUppM,KACzBopM,EAAUjuS,KAAO,GACjB,MACF,KAAK,GACHq2mB,EAAepgjB,EACjB,KAAK,GAGH,GAAsB,oBADtB5tD,EAAOke,EAAMod,MAAMt7B,MACgB,CACjC4lS,EAAUjuS,KAAO,GACjB,KACF,CAEA,OADAiuS,EAAUjuS,KAAO,GACVqI,EAAKswM,GACd,KAAK,GACH2yB,EAAa2iE,EAAUppM,KACvBopM,EAAUjuS,KAAO,GACjB,MACF,KAAK,GACHsrO,EAAajjO,EACf,KAAK,GAcH,OAbAiumB,EAG8B,YAA7BhonB,EAAAA,GAAAA,GAAQ8nnB,IAA4D,kBAApBA,IAAiCA,EAAoCz9Z,EAAlBy9Z,EAElGF,EADEI,aAAsBE,KACXF,EAEA,IAAIE,KAAK,CAACF,GAAa39Z,EAAK5+M,KAAM,CAC7CjH,KAAM6lN,EAAK7lN,QAGfyjnB,EAAmBL,GACFvomB,IAAMgrM,EAAKhrM,IACrBsgS,EAAU9I,OAAO,SAAU,CAChCj8P,OAAQyvK,EACRtwM,KAAMijO,EACN4qY,WAAYK,EACZtgjB,OAAQogjB,IAEZ,KAAK,GACL,IAAK,MACH,OAAOpoU,EAAU/pL,OAEvB,GAAGwpL,EAAU,KAAM,CAAC,CAAC,EAAG,IAC1B,KACA,OAAO,SAAUN,EAAKC,GACpB,OAAOnhD,EAAM/lP,MAAMra,KAAMyP,UAC3B,CACF,CA9F2E,KA+F3EooG,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,iBAAiB,SAAU7yB,GACxE6yB,EAAMmvlB,UAAYhinB,CACpB,IACO6yB,CACT,CA+JA,OA9JAw8M,GAAasyY,EAAc,CAAC,CAC1BzknB,IAAK,oBACLlG,MAAO,WACLoB,KAAK2qnB,YAAa,CACpB,GACC,CACD7lnB,IAAK,uBACLlG,MAAO,WACLoB,KAAK2qnB,YAAa,EAClB3qnB,KAAKu5W,OACP,GACC,CACDz0W,IAAK,OACLlG,MAAO,SAAcgtO,GACnB,IAAIo0B,EAAShgQ,KACTuc,EAAOqvN,EAAMrvN,KACf6gC,EAASwuL,EAAMxuL,OACf+sB,EAASyhK,EAAMzhK,OACfigjB,EAAax+Y,EAAMw+Y,WACrB,GAAKpqnB,KAAK2qnB,WAAV,CAGA,IAAIplU,EAAevlT,KAAK63C,MACtBmka,EAAUz2J,EAAay2J,QACvB4uK,EAAgBrlU,EAAaqlU,cAC7B38mB,EAAOs3S,EAAat3S,KACpB82W,EAAUx/D,EAAaw/D,QACvByG,EAAkBjmE,EAAaimE,gBAC/Bv5W,EAASszS,EAAatzS,OACpB4P,EAAMu7B,EAAOv7B,IACbq8M,EAAU0sZ,GAAiBC,IAC3BC,EAAgB,CAClB3gjB,OAAQA,EACR5/D,SAAU0D,EACVsO,KAAMA,EACNswM,KAAMu9Z,EACNrlQ,QAASA,EACTyG,gBAAiBA,EACjBv5W,OAAQA,GAAU,OAClBm8W,WAAY,SAAoB5gW,GAC9B,IAAI4gW,EAAapuH,EAAOnoN,MAAMu2U,WACf,OAAfA,QAAsC,IAAfA,GAAyBA,EAAW5gW,EAAG48lB,EAChE,EACAhC,UAAW,SAAmB/7c,EAAK/0B,GACjC,IAAI8we,EAAYpoX,EAAOnoN,MAAMuwkB,UACf,OAAdA,QAAoC,IAAdA,GAAwBA,EAAU/7c,EAAK+9c,EAAY9ye,UAClE0oH,EAAO+qX,KAAKlpmB,EACrB,EACAmoC,QAAS,SAAiBvmD,EAAK4oK,GAC7B,IAAIriH,EAAUg2M,EAAOnoN,MAAMmS,QACf,OAAZA,QAAgC,IAAZA,GAAsBA,EAAQvmD,EAAK4oK,EAAK+9c,UACrDpqX,EAAO+qX,KAAKlpmB,EACrB,GAEFm6b,EAAQ5+Z,GACRp9C,KAAK+qnB,KAAKlpmB,GAAOq8M,EAAQ4sZ,EAlCzB,CAmCF,GACC,CACDhmnB,IAAK,QACLlG,MAAO,WACLoB,KAAKk2G,SAAS,CACZr0F,IAAK2nmB,OAET,GACC,CACD1knB,IAAK,QACLlG,MAAO,SAAeiuN,GACpB,IAAIk+Z,EAAO/qnB,KAAK+qnB,KAChB,GAAIl+Z,EAAM,CACR,IAAIhrM,EAAMgrM,EAAKhrM,IAAMgrM,EAAKhrM,IAAMgrM,EAC5Bk+Z,EAAKlpmB,IAAQkpmB,EAAKlpmB,GAAK03V,OACzBwxQ,EAAKlpmB,GAAK03V,eAELwxQ,EAAKlpmB,EACd,MACE7b,OAAOC,KAAK8knB,GAAMjqnB,SAAQ,SAAU+gB,GAC9BkpmB,EAAKlpmB,IAAQkpmB,EAAKlpmB,GAAK03V,OACzBwxQ,EAAKlpmB,GAAK03V,eAELwxQ,EAAKlpmB,EACd,GAEJ,GACC,CACD/c,IAAK,SACLlG,MAAO,WACL,IAAI+mT,EAAe3lT,KAAK63C,MACtB+sgB,EAAMj/P,EAAa/7E,UACnB0P,EAAYqsE,EAAarsE,UACzB/xO,EAAYo+S,EAAap+S,UACzByjnB,EAAwBrlU,EAAanyF,WACrCA,OAAuC,IAA1Bw3Z,EAAmC,CAAC,EAAIA,EACrDhnkB,EAAW2hQ,EAAa3hQ,SACxBvgC,EAAKkiS,EAAaliS,GAClBxV,EAAO03S,EAAa13S,KACpB3I,EAAQqgT,EAAargT,MACrB2lnB,EAAsBtlU,EAAa7pR,OACnCA,OAAiC,IAAxBmvlB,EAAiC,CAAC,EAAIA,EAC/Ch3iB,EAAW0xO,EAAa1xO,SACxBw1iB,EAAS9jU,EAAa8jU,OACtBprjB,EAAUsnP,EAAatnP,QACvBla,EAAWwhQ,EAAaxhQ,SACxB+lK,EAAYy7F,EAAaz7F,UACzBgha,EAAwBvlU,EAAaulU,sBACrCj+X,EAAe04D,EAAa14D,aAC5BC,EAAey4D,EAAaz4D,aAC5Bi+X,EAAmBxlU,EAAawlU,iBAChCz2U,EAAa36D,GAAyB4rE,EAAc33E,KAClDtsD,EAAMmnN,MAAKhxR,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,IAAgBA,EAAAA,GAAAA,GAAgB,CAAC,EAAGyhI,GAAW,GAAO,GAAG90O,OAAO80O,EAAW,aAAct1L,GAAWz8C,EAAWA,IAE1I6jnB,EAAWlha,EAAY,CACzBA,UAAW,YACXmha,gBAAiB,mBACf,CAAC,EACDnge,EAASlnG,EAAW,CAAC,EAAI,CAC3BmwB,QAAS+2iB,EAAwBlrnB,KAAKm0E,QAAU,WAAa,EAC7Dk6K,UAAW68X,EAAwBlrnB,KAAKquP,UAAY,WAAa,EACjEpB,aAAcA,EACdC,aAAcA,EACdi7P,OAAQnof,KAAKsrnB,WACbvjI,WAAY/nf,KAAKsrnB,WACjBznY,SAAUsnY,OAAmBl+mB,EAAY,KAE3C,OAAoB4mN,EAAAA,cAAoB+wV,EAAK3lV,GAAS,CAAC,EAAG/zE,EAAQ,CAChE3jJ,UAAWm6K,EACX0sE,KAAM+8X,OAAmBl+mB,EAAY,SACrC3H,MAAOA,IACQuuN,EAAAA,cAAoB,QAASoL,GAAS,CAAC,EAAGk4H,GAAUziD,EAAY,CAC/E4iD,MAAM,EACN/6U,MAAM,IACJ,CACFkH,GAAIA,EAKJxV,KAAMA,EACN+1C,SAAUA,EACVh9C,KAAM,OACNuwC,IAAKv3C,KAAKurnB,cACVp3iB,QAAS,SAAiB3mD,GACxB,OAAOA,EAAEojC,iBACX,EAEA9rD,IAAK9E,KAAKqK,MAAMwX,IAChBvc,MAAOkzO,GAAc,CACnBhyO,QAAS,QACRs1B,EAAOjb,OACVtZ,UAAWisN,EAAW3yM,MACtB4omB,OAAQA,GACP2B,EAAU,CACXn3iB,SAAUA,EACV+sK,SAAUhhP,KAAKghP,UACH,MAAX3iL,EAAkB,CACnBA,QAASA,GACP,CAAC,IAAKla,EACZ,KAEKolkB,CACT,CA9XgC,CA8X9BhzgB,EAAAA,WACF,cC3YA,SAASo2C,MAAS,CAClB,IAAI0hL,IAAsB,SAAU2mS,GAClCl+X,GAAUu3F,EAAQ2mS,GAClB,IAAI36kB,EAAS08M,GAAas3F,GAC1B,SAASA,IACP,IAAI5zS,EACJu8M,GAAgBh3O,KAAMquU,GACtB,IAAK,IAAI/9F,EAAO7gO,UAAUtO,OAAQgpB,EAAO,IAAItpB,MAAMyvO,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EpmN,EAAKomN,GAAQ9gO,UAAU8gO,GAOzB,OALA91M,EAAQJ,EAAOt6B,KAAKsa,MAAMggB,EAAQ,CAACr6B,MAAMwE,OAAO2lB,KAChD0tF,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,gBAAY,IAC3Do9E,EAAAA,GAAAA,GAAgB8nJ,GAAuBllO,GAAQ,gBAAgB,SAAU7yB,GACvE6yB,EAAM+wlB,SAAW5jnB,CACnB,IACO6yB,CACT,CAcA,OAbAw8M,GAAao3F,EAAQ,CAAC,CACpBvpU,IAAK,QACLlG,MAAO,SAAeiuN,GACpB7sN,KAAKwrnB,SAASjyQ,MAAM1sJ,EACtB,GACC,CACD/nN,IAAK,SACLlG,MAAO,WACL,OAAoBi1N,EAAAA,cAAoB43Z,IAAYxsZ,GAAS,CAAC,EAAGj/N,KAAK63C,MAAO,CAC3EN,IAAKv3C,KAAK0rnB,eAEd,KAEKr9S,CACT,CA9B0B,CA8BxB93N,EAAAA,YACFsB,EAAAA,GAAAA,GAAgBw2N,IAAQ,eAAgB,CACtCzkG,UAAW,OACX0P,UAAW,YACX/8N,KAAM,CAAC,EACPwoW,QAAS,CAAC,EACV92W,KAAM,OACN09mB,WAAW,EACX3vK,QAASrvT,IACT3iG,QAAS2iG,IACTy7d,UAAWz7d,IACX14E,UAAU,EACVo2iB,aAAc,KACdO,cAAe,KACfp/P,iBAAiB,EACjB0/P,uBAAuB,EACvBC,kBAAkB,IAEpB,MC1DA,ID0DA,IEWA,IArEwBxigB,IACtB,MAAM,aACJu0K,EAAY,QACZE,GACEz0K,EACJ,MAAO,CACL,CAAC,GAAGu0K,aAAyB,CAC3B,CAAC,GAAGA,UAAsB,CACxB7xR,SAAU,WACVpJ,MAAO,OACPN,OAAQ,OACR+gC,UAAW,SACX84F,WAAY7S,EAAM0jL,eAClBv3J,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,qBAAqByqF,EAAMm9K,cACjDzE,aAAc14K,EAAM85K,eACpBzoQ,OAAQ,UACRu2B,WAAY,gBAAgBo4D,EAAMu2K,qBAClC,CAAChC,GAAe,CACd37P,QAASonF,EAAMpnF,SAEjB,CAAC,GAAG27P,SAAqB,CACvB12R,QAAS,QACTvE,MAAO,OACPN,OAAQ,OACR8zM,QAAS,OACT4rF,aAAc14K,EAAM85K,eACpB,kBAAmB,CACjBhtF,QAAS,GAAGzyM,GAAK2lH,EAAM82K,yBAAyB92K,EAAM+2K,uBAG1D,CAAC,GAAGxC,oBAAgC,CAClC12R,QAAS,aACTm8B,cAAe,UAEjB,CAAC,qBACSu6P,6CACMA,yBACZ,CACF16P,YAAammF,EAAMy+K,mBAErB,CAAC,IAAIlK,eAA2B,CAC9B1+J,aAAc7V,EAAM/mH,OACpB,CAACw7R,GAAU,CACTn8P,MAAO0nF,EAAMu3K,aACb9iQ,SAAUurF,EAAMijgB,sBAGpB,CAAC,IAAI1uV,UAAsB,CACzBt7R,OAAQ,OAAOoB,GAAK2lH,EAAMmmL,aAC1B7tQ,MAAO0nF,EAAM+jL,iBACbtvQ,SAAUurF,EAAM26K,YAElB,CAAC,IAAIpG,UAAsB,CACzBj8P,MAAO0nF,EAAMikL,qBACbxvQ,SAAUurF,EAAMvrF,UAGlB,CAAC,IAAI8/P,cAA0B,CAC7B,CAAC,IAAIA,eAA0BE,oBAC1BF,yBACAA,sBACD,CACFj8P,MAAO0nF,EAAM42K,sBAKtB,EC+BH,IAjGqB52K,IACnB,MAAM,aACJu0K,EAAY,QACZE,EAAO,SACPhgQ,EAAQ,WACRE,EAAU,KACV0lP,GACEr6J,EACEomI,EAAU,GAAGmuC,cACb2uV,EAAa,GAAG98X,YAChB+8X,EAAY,GAAG/8X,WACrB,MAAO,CACL,CAAC,GAAGmuC,aAAyB,CAC3B,CAAC,GAAGA,UAAsBl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EjuC4BrC,CAEtB,YAAa,CACX5C,QAAS,QACTiY,QAAS,MAEX,WAAY,CAEVjY,QAAS,QACT0nF,MAAO,OACPzvE,QAAS,QiuCtCgE,CACrE6e,WAAYqrF,EAAMrrF,WAClB,CAACyxN,GAAU,CACT1jP,SAAU,WACV1J,OAAQqhR,EAAKr6J,EAAMrrF,YAAY+6L,IAAIj7L,GAAU67I,QAC7C36C,UAAW3V,EAAMomL,SACjB3xQ,WACA52B,QAAS,OACTs5R,WAAY,SACZvvO,WAAY,oBAAoBo4D,EAAMu2K,qBACtCmC,aAAc14K,EAAM65K,eACpB,UAAW,CACT/2R,gBAAiBk9G,EAAM6kL,oBAEzB,CAAC,GAAGz+C,UAAiB/oP,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGq1R,IAAe,CAClEl9P,QAAS,KAAKv+B,GAAK2lH,EAAMwlL,aACzB7wQ,aACAooB,KAAM,OACN6K,WAAY,OAAOo4D,EAAMu2K,uBAE3B,CAAC2sV,GAAa,CACZxqe,WAAY,SACZ,CAACyqe,GAAY,CACXngnB,QAAS,GAEX,CAACyxR,GAAU,CACTn8P,MAAO0nF,EAAMojgB,aACbx7jB,WAAY,OAAOo4D,EAAMu2K,sBAE3B,CAAC,mBACG4sV,6CACUA,mBACV,CACFngnB,QAAS,IAGb,CAAC,GAAGuxR,UAAqBE,KAAY,CACnCn8P,MAAO0nF,EAAMikL,qBACbxvQ,YAEF,CAAC,GAAG2xN,cAAqB,CACvB1jP,SAAU,WACVjF,OAAQuiH,EAAMq6J,KAAKr6J,EAAMqjgB,sBAAsB3zZ,KAAK,GAAGp/C,QACvDh3K,MAAO,OACPghU,mBAAoBjgD,EAAK5lP,GAAU5H,IAAImzF,EAAMwlL,WAAWl1H,QACxD77I,WACAE,WAAY,EACZ68M,cAAe,OACf,QAAS,CACPv4O,OAAQ,KAId,CAAC,GAAGmtP,WAAiB+8X,KAAc,CACjCngnB,QAAS,GAEX,CAAC,GAAGojP,WAAkB,CACpB9tN,MAAO0nF,EAAM03K,WACb,CAAC,GAAGtxC,WAAiBmuC,UAAqBE,KAAY,CACpDn8P,MAAO0nF,EAAM03K,YAEf,CAACwrV,GAAa,CACZ,CAAC,GAAGzuV,MAAYA,WAAkB,CAChCn8P,MAAO0nF,EAAM03K,YAEf,CAACyrV,GAAY,CACXngnB,QAAS,KAIf,CAAC,GAAGuxR,yBAAqC,CACvC3sO,WAAY,WAAWo4D,EAAMu2K,8BAA8Bv2K,EAAMu2K,qBAEjE,YAAa,CACX14R,QAAS,QACTvE,MAAO,EACPN,OAAQ,EACR8c,QAAS,UAKlB,ECrDH,IAzCuBkqG,IACrB,MAAM,aACJu0K,GACEv0K,EACEsjgB,EAAwB,IAAIvxT,GAAU,wBAAyB,CACnE/vT,KAAM,CACJ1I,MAAO,EACPN,OAAQ,EACR4/B,QAAS,EACT51B,QAAS,EACT/J,OAAQ+mH,EAAMq6J,KAAKr6J,EAAMomL,UAAUp4E,KAAK,GAAG19C,WAGzCizc,EAAyB,IAAIxxT,GAAU,yBAA0B,CACrE5vT,GAAI,CACF7I,MAAO,EACPN,OAAQ,EACR4/B,QAAS,EACT51B,QAAS,EACT/J,OAAQ+mH,EAAMq6J,KAAKr6J,EAAMomL,UAAUp4E,KAAK,GAAG19C,WAGzCkzc,EAAY,GAAGjvV,mBACrB,MAAO,CAAC,CACN,CAAC,GAAGA,aAAyB,CAC3B,CAAC,GAAGivV,aAAqBA,YAAoBA,WAAoB,CAC/Dzqf,kBAAmB/Y,EAAMu2K,mBACzBs8B,wBAAyB7yM,EAAMm4K,oBAC/Bo5B,kBAAmB,YAErB,CAAC,GAAGiyT,aAAqBA,WAAoB,CAC3Cz3jB,cAAeu3jB,GAEjB,CAAC,GAAGE,WAAoB,CACtBz3jB,cAAew3jB,KAGlB,CACD,CAAC,GAAGhvV,aAAyB8kE,GAAer5O,IAC3CsjgB,EAAuBC,EAAuB,ECvC7CE,IAAkBzjgB,IACtB,MAAM,aACJu0K,EAAY,QACZE,EAAO,oBACPwuV,EAAmB,qBACnBI,EAAoB,KACpBhpW,GACEr6J,EACE0jgB,EAAU,GAAGnvV,SACbnuC,EAAU,GAAGs9X,SACnB,MAAO,CACL,CAAC,GAAGnvV,aAAyB,CAE3B,CAAC,aACGmvV,IAAUA,uBACVA,IAAUA,4BACVA,IAAUA,4BACV,CACF,CAACt9X,GAAU,CACT1jP,SAAU,WACV1J,OAAQqhR,EAAK4oW,GAAqBp2lB,IAAIwtP,EAAKr6J,EAAMzqF,WAAWm6L,IAAI,IAAI7iM,IAAIwtP,EAAKr6J,EAAMwlL,WAAW91E,IAAI,IAAIp/C,QACtG13I,QAASonF,EAAMwlL,UACfr5J,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMm9K,cAC5DzE,aAAc14K,EAAM85K,eACpB,UAAW,CACTjnK,WAAY,eAEd,CAAC,GAAGuzH,eAAsB/oP,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGq1R,IAAe,CACvEx8R,MAAO2pnB,EACPjqnB,OAAQiqnB,EACRtulB,WAAYt6B,GAAKggR,EAAK4oW,GAAqBp2lB,IAAImzF,EAAMylL,WAAWn1H,SAChEv2I,UAAW,SACXgjB,KAAM,OACN,CAAC03O,GAAU,CACThgQ,SAAUurF,EAAMg7K,iBAChB1iQ,MAAO0nF,EAAMu3K,cAEf/1R,IAAK,CACH3D,QAAS,QACTvE,MAAO,OACPN,OAAQ,OACR2J,SAAU,YAGd,CAAC,GAAGyjP,cAAqB,CACvB3oP,OAAQ4lnB,EACR/pnB,MAAO,eAAee,GAAKggR,EAAKr6J,EAAMylL,WAAW/1E,IAAI,GAAGp/C,YACxD36C,UAAW,EACX2kM,mBAAoBjgD,EAAK4oW,GAAqBp2lB,IAAImzF,EAAMwlL,WAAWl1H,UAGvE,CAAC,GAAG81E,WAAkB,CACpBvsN,YAAammF,EAAM03K,WAEnB,CAAC,GAAGtxC,eAAqBquC,KAAY,CACnC,CAAC,kBAAkBnvK,GAAK,QAAS,CAC/BriB,KAAM+c,EAAMu/K,cAEd,CAAC,kBAAkBj6K,GAAK+2J,aAAc,CACpCp5K,KAAM+c,EAAM03K,cAIlB,CAAC,GAAGtxC,eAAsB,CACxB80E,YAAa,SACb,CAAC,GAAG90E,UAAiB,CACnBvwH,aAAcwtf,KAIpB,CAAC,GAAGK,IAAUA,oBAA0Bt9X,KAAY,CAClD,CAAC,iBAAiBA,eAAsB,CACtCsyC,aAAc,SAIrB,EAEGirV,IAAsB3jgB,IAC1B,MAAM,aACJu0K,EAAY,QACZE,EAAO,WACPkG,EAAU,oBACVuJ,EAAmB,KACnB7pB,GACEr6J,EACE0jgB,EAAU,GAAGnvV,SACbnuC,EAAU,GAAGs9X,SACbE,EAAwB5jgB,EAAM6jgB,kBACpC,MAAO,CACL,CAAC,WACGtvV,YAAuBA,kCACvBA,YAAuBA,kCACvBl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EnuCrDb,CAEtB,YAAa,CACX5C,QAAS,QACTiY,QAAS,MAEX,WAAY,CAEVjY,QAAS,QACT0nF,MAAO,OACPzvE,QAAS,QmuC2CwC,CAC/CjY,QAAS,QACT,CAAC,GAAG02R,IAAeA,YAAwB,CACzCj7R,MAAOsqnB,EACP5qnB,OAAQ4qnB,EACR7plB,UAAW,SACXC,cAAe,MACfl3B,gBAAiBk9G,EAAM0jL,eACvBv3J,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,qBAAqByqF,EAAMm9K,cACjDzE,aAAc14K,EAAM85K,eACpBzoQ,OAAQ,UACRu2B,WAAY,gBAAgBo4D,EAAMu2K,qBAClC,CAAC,KAAKhC,KAAiB,CACrB12R,QAAS,OACTs5R,WAAY,SACZyT,eAAgB,SAChB5xS,OAAQ,OACR+gC,UAAW,UAEb,CAAC,SAASw6P,qBAAiC,CACzC16P,YAAammF,EAAMu3K,eAIvB,CAAC,GAAGmsV,IAAUA,mBAAyBA,IAAUA,oBAA2B,CAC1E7lnB,QAAS,OACTkiV,SAAU,OACV,2BAA4B,CAC1B,QAAS,CACPqoF,eAAgBpoT,EAAMomL,SACtBu0B,gBAAiB36M,EAAMomL,WAG3B,uBAAwB,CACtByyC,IAAK74N,EAAMomL,UAEb,CAAC,GAAGs9U,oBAA2B,CAC7B7lnB,QAAS,eACTvE,MAAOsqnB,EACP5qnB,OAAQ4qnB,EACR5plB,cAAe,OAEjB,WAAY,CACVn8B,QAAS,QAEX,YAAa,CACXA,QAAS,QAEX,CAACuoP,GAAU,CACTptP,OAAQ,OACRC,OAAQ,EACR,YAAa,CACXyJ,SAAU,WACVE,OAAQ,EACRtJ,MAAO,eAAee,GAAKggR,EAAKr6J,EAAMwlL,WAAW91E,IAAI,GAAGp/C,YACxDt3K,OAAQ,eAAeqB,GAAKggR,EAAKr6J,EAAMwlL,WAAW91E,IAAI,GAAGp/C,YACzDxtK,gBAAiBk9G,EAAMmhL,YACvBn+R,QAAS,EACT4kD,WAAY,OAAOo4D,EAAMu2K,qBACzBzgR,QAAS,QAGb,CAAC,GAAGswO,WAAkB,CACpB,CAAC,cAAcA,aAAoB,CACjCpjP,QAAS,IAGb,CAAC,GAAGojP,aAAoB,CACtB1jP,SAAU,WACVmoS,iBAAkB,EAClBjoS,OAAQ,GACRtJ,MAAO,OACPo/I,WAAY,SACZ3+G,UAAW,SACX/2B,QAAS,EACT4kD,WAAY,OAAOo4D,EAAMu2K,qBACzB,CAAC,iBACG9B,uBACAA,4BACAA,wBACA,CACF7xR,OAAQ,GACRtJ,MAAOqhS,EACP1hS,OAAQ,KAAKoB,GAAK2lH,EAAMmmL,aACxB1xQ,SAAUkmQ,EACVtpQ,OAAQ,UACRu2B,WAAY,OAAOo4D,EAAMu2K,qBACzBj+P,MAAO4rQ,EACP,UAAW,CACT5rQ,MAAO4rQ,GAET3lK,IAAK,CACHvkG,cAAe,cAIrB,CAAC,GAAGosN,gBAAsBA,mBAA0B,CAClD1jP,SAAU,SACV7E,QAAS,QACTvE,MAAO,OACPN,OAAQ,OACR0pV,UAAW,WAEb,CAAC,GAAGt8F,UAAiB,CACnBvoP,QAAS,OACTk8B,UAAW,UAEb,CAAC,GAAGqsN,YAAkBA,UAAiB,CACrC1jP,SAAU,WACVjF,OAAQuiH,EAAM/mH,OACd4E,QAAS,QACTvE,MAAO,eAAee,GAAKggR,EAAKr6J,EAAMwlL,WAAW91E,IAAI,GAAGp/C,aAE1D,CAAC,GAAG81E,eAAsB,CACxB,CAAC,IAAIA,KAAY,CACftjP,gBAAiBk9G,EAAM0jL,gBAEzB,CAAC,cAAcjP,UAAgBA,eAAqBA,YAAmB,CACrE52R,QAAS,SAGb,CAAC,GAAGuoP,cAAqB,CACvB3oP,OAAQuiH,EAAMwmL,SACdltS,MAAO,eAAee,GAAKggR,EAAKr6J,EAAMwlL,WAAW91E,IAAI,GAAGp/C,YACxDgqJ,mBAAoB,MAI1B,CAAC,GAAG/lC,YAAuBA,4BAAwC,CACjE,CAAC,GAAGA,IAAeA,YAAwB,CACzCmE,aAAc,QAGnB,EC1NH,IAVoB14K,IAClB,MAAM,aACJu0K,GACEv0K,EACJ,MAAO,CACL,CAAC,GAAGu0K,SAAqB,CACvBz/J,UAAW,OAEd,ECDG06M,IAAexvN,IACnB,MAAM,aACJu0K,EAAY,kBACZqC,GACE52K,EACJ,MAAO,CACL,CAAC,GAAGu0K,aAAyBl3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACnF,CAACu0K,GAAe,CACdznF,QAAS,EACT,qBAAsB,CACpBz7K,OAAQ,YAGZ,CAAC,GAAGkjQ,YAAwB,CAC1B12R,QAAS,gBAEX,CAAC,GAAG02R,YAAwB,CAC1B12R,QAAS,QAEX,CAAC,GAAG02R,cAA0B,CAC5Bj8P,MAAOs+P,EACPvlQ,OAAQ,iBAGb,EAMH,IAAe0jQ,GAAc,UAAU/0K,IACrC,MAAM,iBACJi7K,EAAgB,WAChBG,EAAU,UACV7lQ,EAAS,gBACT2kQ,EAAe,KACf7f,GACEr6J,EACE8jgB,EAAc9xV,GAAWhyK,EAAO,CACpCijgB,oBAAqB5oW,EAAK4gB,GAAkBvrE,IAAI,GAAGp/C,QACnD+yc,qBAAsBhpW,EAAKA,EAAK+gB,GAAYptE,IAAI,IAAInhM,IAAI0I,GAAW+6I,QACnEuzc,kBAAmBxpW,EAAK6f,GAAiBxqE,IAAI,MAAMp/C,UAErD,MAAO,CAACk/J,IAAas0S,GAAcC,IAAgBD,GAAcL,IAAgBK,GAAcH,IAAoBG,GAAcE,IAAaF,GAAc/9L,IAAe+9L,GAAcp1J,IAAYo1J,GAAcllT,GAAkBklT,GAAa,IAjB/M9jgB,IAAS,CAC5CojgB,aAAcpjgB,EAAMikL,yBCjCtB,UADkB,CAAE,KAAQ,SAAgBpmB,EAAcK,GAAkB,MAAO,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,qDAAsD,KAAQA,IAAoB,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,4OAA6O,KAAQL,KAAqB,EAAG,KAAQ,OAAQ,MAAS,WCMzmB,IAAIomW,IAAc,SAAqB/0kB,EAAON,GAC5C,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM46a,MAEV,EAOA,UAJ2Bh5Z,EAAAA,WAAiB+4Z,KCb5C,UADwB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,4zBAAg0B,KAAQ,aAAc,MAAS,YCM9/B,IAAIE,IAAoB,SAA2Bj1kB,EAAON,GACxD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM86a,MAEV,EAOA,UAJ2Bl5Z,EAAAA,WAAiBi5Z,KCb5C,UADqB,CAAE,KAAQ,SAAgBtmW,EAAcK,GAAkB,MAAO,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,iSAAkS,KAAQL,IAAkB,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,6DAA8D,KAAQK,IAAoB,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,uJAAwJ,KAAQA,IAAoB,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,2CAA4C,KAAQA,IAAoB,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,mHAAoH,KAAQL,KAAqB,EAAG,KAAQ,UAAW,MAAS,WCMzpC,IAAIwmW,IAAiB,SAAwBn1kB,EAAON,GAClD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMg7a,MAEV,EAOA,UAJ2Bp5Z,EAAAA,WAAiBm5Z,KCdrC,SAASE,IAASrga,GACvB,OAAO7mN,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyjN,GAAO,CAC5Csga,aAActga,EAAKsga,aACnBC,iBAAkBvga,EAAKuga,iBACvBn/mB,KAAM4+M,EAAK5+M,KACXoU,KAAMwqM,EAAKxqM,KACXrb,KAAM6lN,EAAK7lN,KACX6a,IAAKgrM,EAAKhrM,IACVw8T,QAAS,EACTgyG,cAAexjO,GAEnB,CAEO,SAASwga,IAAexga,EAAMq9Z,GACnC,MAAMoD,EAAetqY,GAAmBknY,GAClCqD,EAAYD,EAAa/7mB,WAAU05I,IACvC,IAAI,IACFppI,GACEopI,EACJ,OAAOppI,IAAQgrM,EAAKhrM,GAAG,IAOzB,OALmB,IAAf0rmB,EACFD,EAAazrnB,KAAKgrN,GAElByga,EAAaC,GAAa1ga,EAErByga,CACT,CACO,SAASE,IAAY3ga,EAAMq9Z,GAChC,MAAMnpX,OAAwB9zP,IAAb4/M,EAAKhrM,IAAoB,MAAQ,OAClD,OAAOqomB,EAAS/4mB,QAAO+gC,GAAQA,EAAK6uN,KAAcl0C,EAAKk0C,KAAW,EACpE,CAUA,MAOM0sX,IAAkBzmnB,GAAmC,IAA3BA,EAAKtC,QAAQ,UAChCgpnB,IAAa7ga,IACxB,GAAIA,EAAK7lN,OAAS6lN,EAAK8ga,SACrB,OAAOF,IAAgB5ga,EAAK7lN,MAE9B,MAAM9E,EAAM2qN,EAAK8ga,UAAY9ga,EAAK3qN,KAAO,GACnC0rnB,EAbQ,WAEd,MAAM9umB,GADIrP,UAAUtO,OAAS,QAAsB8L,IAAjBwC,UAAU,GAAmBA,UAAU,GAAK,IAC7D0J,MAAM,KAEjB00mB,EADW/umB,EAAKA,EAAK3d,OAAS,GACGgY,MAAM,QAAQ,GACrD,OAAQ,cAAca,KAAK6zmB,IAA0B,CAAC,KAAK,EAC7D,CAOoBC,CAAQ5rnB,GAC1B,SAAI,gBAAgB8a,KAAK9a,KAAQ,2DAA2D8a,KAAK4wmB,MAG7F,SAAS5wmB,KAAK9a,KAId0rnB,CAIO,EAEPG,IAAe,IACd,SAASC,IAAanha,GAC3B,OAAO,IAAI7jN,SAAQM,IACjB,IAAKujN,EAAK7lN,OAASymnB,IAAgB5ga,EAAK7lN,MAEtC,YADAsC,EAAQ,IAGV,MAAMY,EAAS5C,SAASf,cAAc,UACtC2D,EAAOjI,MAAQ8rnB,IACf7jnB,EAAOvI,OAASosnB,IAChB7jnB,EAAO5E,MAAMgtI,QAAU,+FACvBhrI,SAASuE,KAAKzD,YAAY8B,GAC1B,MAAM48H,EAAM58H,EAAO7B,WAAW,MACxB8B,EAAM,IAAIu8H,MAwBhB,GAvBAv8H,EAAIkyC,OAAS,KACX,MAAM,MACJp6C,EAAK,OACLN,GACEwI,EACJ,IAAI8jnB,EAAYF,IACZG,EAAaH,IACbjvf,EAAU,EACVC,EAAU,EACV98H,EAAQN,GACVusnB,EAAavsnB,GAAUosnB,IAAe9rnB,GACtC88H,IAAYmvf,EAAaD,GAAa,IAEtCA,EAAYhsnB,GAAS8rnB,IAAepsnB,GACpCm9H,IAAYmvf,EAAYC,GAAc,GAExCpnf,EAAIx+H,UAAU6B,EAAK20H,EAASC,EAASkvf,EAAWC,GAChD,MAAMC,EAAUjknB,EAAOgC,YACvB5E,SAASuE,KAAKlE,YAAYuC,GAC1B3E,OAAOy3C,IAAIM,gBAAgBnzC,EAAIH,KAC/BV,EAAQ6knB,EAAQ,EAElBhknB,EAAIw8H,YAAc,YACdkmF,EAAK7lN,KAAKsrG,WAAW,iBAAkB,CACzC,MAAM27Q,EAAS,IAAIvwU,WACnBuwU,EAAO5xU,OAAS,KACV4xU,EAAOh9W,QAAmC,kBAAlBg9W,EAAOh9W,SACjC9G,EAAIH,IAAMikX,EAAOh9W,OACnB,EAEFg9W,EAAOrwU,cAAcivK,EACvB,MAAO,GAAIA,EAAK7lN,KAAKsrG,WAAW,aAAc,CAC5C,MAAM27Q,EAAS,IAAIvwU,WACnBuwU,EAAO5xU,OAAS,KACV4xU,EAAOh9W,QACT3H,EAAQ2kX,EAAOh9W,OACjB,EAEFg9W,EAAOrwU,cAAcivK,EACvB,MACE1iN,EAAIH,IAAMzE,OAAOy3C,IAAIK,gBAAgBwvK,EACvC,GAEJ,CC7HO,IAAIl1K,IAAe,CACxB0mS,QAAS,EACT/kG,UAAW,cACX/3C,YAAa,UACbqsO,cAAe,QACftmX,YAAa,EACb8mkB,WAAY,UACZC,WAAY,EACZC,YAAa,UAEJC,IAAwB,WACjC,IAAIC,GAAWlhjB,EAAAA,EAAAA,QAAO,IAClBmhjB,GAAgBnhjB,EAAAA,EAAAA,QAAO,MAmB3B,OAlBAN,EAAAA,EAAAA,YAAU,WACR,IAAIra,EAAMx8B,KAAKw8B,MACX+7jB,GAAU,EACdF,EAASvolB,QAAQnlC,SAAQ,SAAU0V,GACjC,GAAKA,EAAL,CAGAk4mB,GAAU,EACV,IAAIC,EAAYn4mB,EAAKlR,MACrBqpnB,EAAU/wE,mBAAqB,sBAC3B6wE,EAAcxolB,SAAW0sB,EAAM87jB,EAAcxolB,QAAU,MACzD0olB,EAAU/wE,mBAAqB,SALjC,CAOF,IACI8wE,IACFD,EAAcxolB,QAAU9P,KAAKw8B,MAEjC,IACO67jB,EAASvolB,OAClB,EC9BA,IAAIi8M,IAAO,EAGA88J,IAAqDjmK,KAgBhE,mBAA0Bt1N,GAExB,IACEk4N,EAAmBC,GADC/nB,EAAAA,WAC+B,GACnDgiC,EAAUla,EAAiB,GAC3Bma,EAAana,EAAiB,GAIhC,OAHA9nB,EAAAA,WAAgB,WACdiiC,EAAW,eAAetxP,OApB9B,WACE,IAAIs3Z,EAUJ,OANI9c,KACF8c,EAAQ55K,IACRA,KAAQ,GAER45K,EAAQ,cAEHA,CACT,CAQqCC,IACnC,GAAG,IACIt4Y,GAAMoyO,CACd,EC9BD,IAAI+4X,IAAQ,SAAe3je,GACzB,IAAI9pH,EAAK8pH,EAAK9pH,GACZgjB,EAAW8mG,EAAK9mG,SAClB,OAAoB0vK,EAAAA,cAAoB,MAAO,CAC7CvuN,MAAO,CACLrD,MAAO,OACPN,OAAQ,OACR65H,WAAYr6F,IAEbgjB,EACL,EACA,SAAS0qkB,IAAa5tlB,EAAO6gH,GAC3B,OAAO97I,OAAOC,KAAKg7B,GAAO5zB,KAAI,SAAUvI,GACtC,IAAIgqnB,EAAYvslB,WAAWz9B,GACvBiqnB,EAAS,GAAGvqnB,OAAOhD,KAAKC,MAAMqtnB,EAAYhte,GAAQ,KACtD,MAAO,GAAGt9I,OAAOy8B,EAAMn8B,GAAM,KAAKN,OAAOuqnB,EAC3C,GACF,CAyDA,UAxD6Bl7Z,EAAAA,YAAiB,SAAUh8K,EAAON,GAC7D,IAAI+hM,EAAYzhM,EAAMyhM,UACpBr4M,EAAQ4W,EAAM5W,MACd+tlB,EAAan3kB,EAAMm3kB,WACnBr7a,EAAS97J,EAAM87J,OACfs7a,EAAsBp3kB,EAAMvyC,MAC5B4qZ,EAAMr4W,EAAMq4W,IACZ0d,EAAgB/1X,EAAM+1X,cACtBtmX,EAAczP,EAAMyP,YACpBjlC,EAAOw1B,EAAMx1B,KACb6smB,EAAYr3kB,EAAMq3kB,UAChBxwS,EAAaz9S,GAA4B,YAAnBz+B,EAAAA,GAAAA,GAAQy+B,GAC9BsmH,EAASm3L,EAAa,YAASzxU,EAG/BuwjB,EAAWn7iB,EAAO,EAClB8smB,EAA0Bt7Z,EAAAA,cAAoB,SAAU,CAC1DtsN,UAAW,GAAG/C,OAAO80O,EAAW,gBAChCh6O,EAAGq0M,EACH15E,GAAIujc,EACJtjc,GAAIsjc,EACJj2a,OAAQA,EACRqmR,cAAeA,EACftmX,YAAaA,EACb37C,QAAiB,IAARukZ,EAAY,EAAI,EACzB5qZ,MAAO2pnB,EACP13kB,IAAKA,IAIP,IAAKmnS,EACH,OAAOywS,EAET,IAAIC,EAAS,GAAG5qnB,OAAOwqnB,EAAY,UAC/BK,EAAUH,EAAY,GAAG1qnB,OAAO,IAAM0qnB,EAAY,EAAG,OAAS,OAC9DI,EAAcT,IAAa5tlB,GAAQ,IAAMiulB,GAAa,KACtDK,EAAeV,IAAa5tlB,EAAO,GACnCuulB,EAAe,uBAAuBhrnB,OAAO6qnB,EAAS,MAAM7qnB,OAAO8qnB,EAAYrqnB,KAAK,MAAO,KAC3FwqnB,EAAgB,sBAAsBjrnB,OAAO0qnB,EAAY,SAAW,MAAO,MAAM1qnB,OAAO+qnB,EAAatqnB,KAAK,MAAO,KACrH,OAAoB4uN,EAAAA,cAAoBA,EAAAA,SAAgB,KAAmBA,EAAAA,cAAoB,OAAQ,CACrGpwM,GAAI2rmB,GACHD,GAA0Bt7Z,EAAAA,cAAoB,gBAAiB,CAChElpM,EAAG,EACHoK,EAAG,EACH9yB,MAAOogB,EACP1gB,OAAQ0gB,EACRkiI,KAAM,QAAQ//I,OAAO4qnB,EAAQ,MACfv7Z,EAAAA,cAAoB+6Z,IAAO,CACzCztlB,GAAIsulB,GACU57Z,EAAAA,cAAoB+6Z,IAAO,CACzCztlB,GAAIqulB,MAER,ICxEO,IAAIE,IAAgB,IAChBC,IAAiB,SAAwBC,EAAWC,EAAqB/0jB,EAAQujR,EAASyxS,EAAWZ,EAAWZ,EAAa/sb,EAAaqsO,EAAetmX,GAClK,IAAIyokB,EAAYtgnB,UAAUtO,OAAS,SAAwB8L,IAAlBwC,UAAU,IAAoBA,UAAU,IAAM,EACnFugnB,EAAYl1jB,EAAS,IAAM,MAAQ,IAAMo0jB,GAAa,KACtDe,EAA4B,IAAdf,EAAkB,EAAI,CACtC9onB,OAAQ,EACR9E,IAAK,IACLD,KAAM,GACNmK,OAAQ,IACR8inB,GACEnnkB,GAAoB,IAAMk3R,GAAW,IAAMwxS,EAGzB,UAAlBjiN,GAAyC,MAAZvvF,IAC/Bl3R,GAAoBG,EAAc,IAEVuokB,IACtB1okB,EAAmB0okB,EAAsB,KAI7C,MAAO,CACLtoe,OAA+B,kBAAhBg6C,EAA2BA,OAAct0L,EACxDi6C,gBAAiB,GAAG1iD,OAAOqrnB,EAAqB,OAAOrrnB,OAAOornB,GAC9DzokB,iBAAkBA,EAAmB4okB,EACrCxwiB,UAAW,UAAU/6E,OAAOsrnB,EAAYE,EAAYC,EAAa,QACjEtwf,gBAAiB,GAAGn7H,OANPkrnB,GAMwB,OAAOlrnB,OAN/BkrnB,GAMgD,MAC7Dn/jB,WAAY,2HACZxJ,YAAa,EAEjB,EC1BIinL,IAAY,CAAC,KAAM,YAAa,QAAS,cAAe,aAAc,YAAa,cAAe,aAAc,gBAAiB,QAAS,YAAa,cAAe,WAO1K,SAASxmI,IAAQ5oG,GACf,IAAIwiP,EAAwB,OAAVxiP,QAA4B,IAAVA,EAAmBA,EAAQ,GAC/D,OAAOiC,MAAMqR,QAAQkvO,GAAeA,EAAc,CAACA,EACrD,CAmHA,UAlHa,SAAgBvpM,GAC3B,IAAIq4kB,EAAsB13Y,GAAcA,GAAc,CAAC,EAAG7gM,KAAeE,GACvEp0B,EAAKysmB,EAAoBzsmB,GACzB61N,EAAY42Y,EAAoB52Y,UAChC+5F,EAAQ68S,EAAoB78S,MAC5B/rR,EAAc4okB,EAAoB5okB,YAClC+mkB,EAAa6B,EAAoB7B,WACjC8B,EAAwBD,EAAoBhB,UAC5CA,OAAsC,IAA1BiB,EAAmC,EAAIA,EACnD7B,EAAc4B,EAAoB5B,YAClCF,EAAa8B,EAAoB9B,WACjCxgN,EAAgBsiN,EAAoBtiN,cACpCtoa,EAAQ4qnB,EAAoB5qnB,MAC5BiC,EAAY2onB,EAAoB3onB,UAChCg6L,EAAc2ub,EAAoB3ub,YAClC88I,EAAU6xS,EAAoB7xS,QAC9BvkG,EAAYC,GAAyBm2Y,EAAqBliZ,KAExDkqE,EAAWrqO,IAAMpqD,GACjBurmB,EAAa,GAAGxqnB,OAAO0zS,EAAU,aACjCvkG,EAHW+7a,GAGSpokB,EAAc,EAClCsokB,EAAsB,EAAVpunB,KAAK2rH,GAASwmF,EAC1Bm8a,EAAYZ,EAAY,EAAI,GAAKA,EAAY,GAAK,GAClDW,EAAsBD,IAAc,IAAMV,GAAa,KACvDjke,EAA0B,YAAnBzoJ,EAAAA,GAAAA,GAAQ6wU,GAAsBA,EAAQ,CAC7Cr/R,MAAOq/R,EACPmO,IAAK,GAEP4uS,EAAYnle,EAAKj3G,MACjBq8kB,EAAUple,EAAKu2L,IACb8uS,EAAc9ohB,IAAQ62O,GACtBkyS,EAAkB/ohB,IAAQ+5F,GAC1BjnE,EAAWi2f,EAAgBj/mB,MAAK,SAAU2vB,GAC5C,OAAOA,GAA4B,YAAnBz+B,EAAAA,GAAAA,GAAQy+B,EAC1B,IAEIuvlB,EADkBl2f,GAAkC,YAAtB93H,EAAAA,GAAAA,GAAQ83H,GACE,OAASszS,EACjDZ,EAAc2iN,IAAeC,EAAWC,EAAqB,EAAG,IAAKC,EAAWZ,EAAWZ,EAAaF,EAAYoC,EAAqBlpkB,GACzIgoC,EAAQi/hB,MAwDZ,OAAoB16Z,EAAAA,cAAoB,MAAOoL,GAAS,CACtD13N,UAAWisN,KAAW,GAAGhvN,OAAO80O,EAAW,WAAY/xO,GACvD+2V,QAAS,OAAO95V,OAAOkrnB,IAAe,KAAKlrnB,OAAOkrnB,KAClDpqnB,MAAOA,EACPme,GAAIA,EACJ2qO,KAAM,gBACLtU,IAAas2Y,GAA0Bv8Z,EAAAA,cAAoB,SAAU,CACtEtsN,UAAW,GAAG/C,OAAO80O,EAAW,iBAChCh6O,EAAGq0M,EACH15E,GAtFay1f,GAuFbx1f,GAvFaw1f,GAwFbnoe,OAAQ6me,EACRxgN,cAAe4iN,EACflpkB,YAAa+mkB,GAAc/mkB,EAC3BhiD,MAAO0na,IACLojN,EAzCmB,WAErB,IAAInqlB,EAAUzkC,KAAK22B,MAAMi4lB,GAAaE,EAAY,GAAK,MACnDxhN,EAAU,IAAMshN,EAChBK,EAAW,EACf,OAAO,IAAI5vnB,MAAMuvnB,GAAWxkhB,KAAK,MAAMv+F,KAAI,SAAU8jB,EAAGjhB,GACtD,IAAI+wB,EAAQ/wB,GAAS+1B,EAAU,EAAIsqlB,EAAgB,GAAKnC,EACpD7me,EAAStmH,GAA4B,YAAnBz+B,EAAAA,GAAAA,GAAQy+B,GAAsB,QAAQz8B,OAAOwqnB,EAAY,UAAO/hnB,EAClFginB,EAAsBU,IAAeC,EAAWC,EAAqBY,EAAU3hN,EAASghN,EAAWZ,EAAWZ,EAAartlB,EAAO,OAAQqmB,EAAa+okB,GAE3J,OADAI,GAAqF,KAAxEZ,EAAsBZ,EAAoB9nkB,iBAAmBkpkB,GAAiBR,EACvEh8Z,EAAAA,cAAoB,SAAU,CAChD/uN,IAAKoL,EACL3I,UAAW,GAAG/C,OAAO80O,EAAW,gBAChCh6O,EAAGq0M,EACH15E,GAjESy1f,GAkETx1f,GAlESw1f,GAmETnoe,OAAQA,EACRjgG,YAAaA,EACb37C,QAAS,EACTrG,MAAO2pnB,EACP13kB,IAAK,SAAarW,GAChBouD,EAAMp/E,GAASgxB,CACjB,GAEJ,GACF,CAgBgBwvlB,GAtEG,WACjB,IAAID,EAAW,EACf,OAAOH,EAAYjjnB,KAAI,SAAU6iZ,EAAKhgZ,GACpC,IAAI+wB,EAAQsvlB,EAAgBrgnB,IAAUqgnB,EAAgBA,EAAgBpvnB,OAAS,GAC3E8tnB,EAAsBU,IAAeC,EAAWC,EAAqBY,EAAUvgO,EAAK4/N,EAAWZ,EAAWZ,EAAartlB,EAAOuvlB,EAAqBlpkB,GAEvJ,OADAmpkB,GAAYvgO,EACQr8L,EAAAA,cAAoB88Z,IAAW,CACjD7rnB,IAAKoL,EACL+wB,MAAOA,EACPivX,IAAKA,EACLv8M,OAAQA,EACR2lC,UAAWA,EACX01Y,WAAYA,EACZ1pnB,MAAO2pnB,EACPrhN,cAAe4iN,EACflpkB,YAAaA,EACb4nkB,UAAWA,EACX33kB,IAAK,SAAarW,GAMhBouD,EAAMp/E,GAASgxB,CACjB,EACA7e,KAAMqtmB,KAEV,IAAGtjiB,SACL,CA0CqCwkiB,GACvC,EC5HO,SAASC,IAAczmnB,GAC5B,OAAKA,GAAYA,EAAW,EACnB,EAELA,EAAW,IACN,IAEFA,CACT,CACO,SAAS0mnB,IAAkB7le,GAChC,IAAI,QACFjB,EAAO,eACP+me,GACE9le,EACAozL,EAAU0yS,EAQd,OANI/me,GAAW,aAAcA,IAC3Bq0L,EAAUr0L,EAAQ5/I,UAEhB4/I,GAAW,YAAaA,IAC1Bq0L,EAAUr0L,EAAQq0L,SAEbA,CACT,CACO,MAsBMm6E,IAAUA,CAACn2Y,EAAMrb,EAAMwzG,KAClC,IAAIl+E,EAAIC,EAAIiC,EAAIC,EAChB,IAAIx8B,GAAS,EACTN,GAAU,EACd,GAAa,SAATqF,EAAiB,CACnB,MAAMqsU,EAAQ74N,EAAM64N,MACd/rR,EAAckzD,EAAMlzD,YACN,kBAATjlC,GAAqC,qBAATA,GACrCpgB,EAAiB,UAATogB,EAAmB,EAAI,GAC/B1gB,EAAyB,OAAhB2lD,QAAwC,IAAhBA,EAAyBA,EAAc,GAC/C,kBAATjlC,GACfpgB,EAAON,GAAU,CAAC0gB,EAAMA,IAExBpgB,EAAQ,GAAIN,EAAS,GAAKd,MAAMqR,QAAQmQ,GAAQA,EAAO,CAACA,EAAKpgB,MAAOogB,EAAK1gB,QAE5EM,GAASoxU,CACX,MAAO,GAAa,SAATrsU,EAAiB,CAC1B,MAAMsgD,EAAwB,OAAVkzD,QAA4B,IAAVA,OAAmB,EAASA,EAAMlzD,YACpD,kBAATjlC,GAAqC,qBAATA,EACrC1gB,EAAS2lD,IAAyB,UAATjlC,EAAmB,EAAI,GACvB,kBAATA,GACfpgB,EAAON,GAAU,CAAC0gB,EAAMA,IAExBpgB,GAAQ,EAAIN,EAAS,GAAKd,MAAMqR,QAAQmQ,GAAQA,EAAO,CAACA,EAAKpgB,MAAOogB,EAAK1gB,OAE9E,KAAoB,WAATqF,GAA8B,cAATA,IACV,kBAATqb,GAAqC,qBAATA,GACpCpgB,EAAON,GAAmB,UAAT0gB,EAAmB,CAAC,GAAI,IAAM,CAAC,IAAK,KAC7B,kBAATA,GACfpgB,EAAON,GAAU,CAAC0gB,EAAMA,GAChBxhB,MAAMqR,QAAQmQ,KACvBpgB,EAA2E,QAAlEs6B,EAAwB,QAAlBD,EAAKja,EAAK,UAAuB,IAAPia,EAAgBA,EAAKja,EAAK,UAAuB,IAAPka,EAAgBA,EAAK,IACxG56B,EAA4E,QAAlE88B,EAAwB,QAAlBD,EAAKnc,EAAK,UAAuB,IAAPmc,EAAgBA,EAAKnc,EAAK,UAAuB,IAAPoc,EAAgBA,EAAK,MAG7G,MAAO,CAACx8B,EAAON,EAAO,ECFxB,IAvEek2C,IACb,MAAM,UACJyhM,EAAS,WACT80Y,EAAa,KAAI,cACjBxgN,EAAgB,QAAO,YACvB0gN,EAAW,UACXY,EACAjtnB,MAAO+unB,EAAc,IAAG,KACxBhqnB,EAAI,SACJm9C,EAAQ,QACR6lG,EAAO,KACP3nI,EAAO2umB,EAAW,MAClB39S,GACEx7R,GACG51C,EAAON,GAAU62Z,IAAQn2Y,EAAM,UACtC,IAAI,YACFilC,GACEzP,OACgB5qC,IAAhBq6C,IACFA,EAAc9lD,KAAKwhB,IApBD/gB,IADU,EACyBA,EAAQ,IAoBtCgvnB,CAAchvnB,GAAQ,IAE/C,MAAM+qa,EAAc,CAClB/qa,QACAN,SACAy7B,SAAkB,IAARn7B,EAAe,GAErBivnB,EAAgBr9Z,EAAAA,SAAc,IAE9Bq7Z,GAA2B,IAAdA,EACRA,EAEI,cAATlonB,EACK,QADT,GAIC,CAACkonB,EAAWlonB,IACTmqnB,EDpBqBz0c,KAC3B,IAAI,QACF2hK,EAAO,QACPr0L,EAAO,eACP+me,GACEr0c,EACJ,MAAM00c,EAAqBP,IAAcC,IAAkB,CACzD9me,UACA+me,oBAEF,MAAO,CAACK,EAAoBP,IAAcA,IAAcxyS,GAAW+yS,GAAoB,ECUlEC,CAAcx5kB,GAC7By5kB,EAAShD,GAAwB,cAATtnnB,GAAwB,eAAYiG,EAE5DyxU,EAAmE,oBAAtD14U,OAAOnG,UAAUmO,SAASjO,KAAK83C,EAAM0pJ,aAClDA,EDZsB6+D,KAC5B,IAAI,QACFp2G,EAAU,CAAC,EAAC,YACZu3C,GACE6+D,EACJ,MACE7+D,YAAaovI,GACX3mL,EACJ,MAAO,CAAC2mL,GAAgB5rD,GAAoB72J,MAAOqzE,GAAe,KAAK,ECInDC,CAAe,CACjCx3C,UACAu3C,YAAa1pJ,EAAM0pJ,cAEf6sO,EAAmB56M,KAAW,GAAG8lB,UAAmB,CACxD,CAAC,GAAGA,qBAA8BolG,IAE9B6yS,EAA6B19Z,EAAAA,cAAoB29Z,IAAU,CAC/Dn+S,MAAOA,EACPgL,QAAShL,EAAQ89S,EAAa,GAAKA,EACnC7pkB,YAAaA,EACb+mkB,WAAY/mkB,EACZi6I,YAAa8xI,EAAQ9xI,EAAY,GAAKA,EACtCqsO,cAAeA,EACfwgN,WAAYA,EACZ90Y,UAAWA,EACX41Y,UAAWgC,EACX5C,YAAagD,IAETG,EAAcxvnB,GAAS,GACvB2F,EAAoBisN,EAAAA,cAAoB,MAAO,CACnDtsN,UAAW6ma,EACX9oa,MAAO0na,GACNukN,GAAgBE,GAAettkB,GAClC,OAAIstkB,EACkB59Z,EAAAA,cAAoBojF,GAAS,CAC/ClrQ,MAAOoY,GACNv8C,GAEEA,CAAI,EC3EA8pnB,IAAqB,+BACrBC,IAAU,qBACjBC,IAAuBxoY,IAC3B,MAAM3rH,EAAY2rH,EAAQ,OAAS,QACnC,OAAO,IAAIsxE,GAAU,cAActxE,EAAQ,MAAQ,cAAe,CAChE,KAAM,CACJ7pK,UAAW,cAAck+C,eACzB9xH,QAAS,IAEX,MAAO,CACL4zE,UAAW,cAAck+C,eACzB9xH,QAAS,IAEXb,GAAI,CACFy0E,UAAW,0BACX5zE,QAAS,IAEX,EAEEwsU,IAAexvN,IACnB,MACEu0K,aAAc20V,EACdz0V,QAASlU,GACPvgK,EACJ,MAAO,CACL,CAACkpgB,GAAc7rnB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACrEniH,QAAS,eACT,QAAS,CACPi3H,UAAW,OAEb,SAAU,CACRpyH,SAAU,WACVpJ,MAAO,OACPm7B,SAAUurF,EAAMvrF,UAElB,CAAC,GAAGy0lB,WAAsB,CACxBrrnB,QAAS,cACTs5R,WAAY,SACZ79R,MAAO,QAET,CAAC,GAAG4vnB,WAAsB,CACxBxmnB,SAAU,WACV7E,QAAS,eACTvE,MAAO,OACPyjD,KAAM,EACNp6C,SAAU,SACVq3B,cAAe,SACfl3B,gBAAiBk9G,EAAMmpgB,eACvBzwV,aAAc14K,EAAMopgB,kBAEtB,CAAC,GAAGF,eAAyBA,sBAAiC,CAC5D,CAAC,GAAGA,iBAA4B,CAC9Btqe,OAAQ5+B,EAAMg4N,eAGlB,CAAC,GAAGkxS,iBAA2BA,QAAmB,CAChDxmnB,SAAU,WACVmwH,WAAY7S,EAAMg4N,aAClBt/C,aAAc14K,EAAMopgB,iBACpBxhkB,WAAY,OAAOo4D,EAAMu2K,sBAAsBv2K,EAAMm4K,uBAEvD,CAAC,GAAG+wV,mBAA8B,CAChCrrnB,QAAS,OACT6rS,cAAe,SACfvS,WAAY,SACZyT,eAAgB,SAChB,CAAC,GAAGs+U,UAAqB,CACvB5vnB,MAAO,cACPohU,kBAAmB,EACnB/kM,UAAW3V,EAAMmmL,YAGrB,CAAC,GAAG+iV,QAAmB,CACrBvmnB,SAAU,SACV,WAAY,CACVmT,QAAS,KACT+8G,WAAY,CACV48L,eAAe,EACfx5T,MAAO,CAAC,UAAW,OAAO8ynB,SAE5B/vnB,OAAQ,OACRM,MAAO,gBAAgB0vnB,eACvBnrnB,QAAS,SAEX,CAAC,IAAIqrnB,cAAyB,CAC5B/llB,SAAU,cACV,WAAY,CACVrtB,QAAS,QAEX,CAAC,GAAGozmB,gBAA2B,CAC7B5wlB,MAAO0nF,EAAMohL,WACb,CAAC,IAAI8nV,iBAA4B,CAC/B5wlB,MAAO,0BAKf,CAAC,GAAG4wlB,gBAA2B,CAC7BxmnB,SAAU,WACVq7X,gBAAiB,EACjBlzF,iBAAkB,EAClB/nS,gBAAiBk9G,EAAMw3K,cAEzB,CAAC,GAAG0xV,UAAqB,CACvBrrnB,QAAS,eACT68T,kBAAmB16M,EAAMomL,SACzB9tQ,MAAO0nF,EAAMk2K,UACbvhQ,WAAY,EACZr7B,MAAO,MACPo/I,WAAY,SACZ3+G,UAAW,QACXC,cAAe,SACfm/E,UAAW,SACX,CAAConK,GAAgB,CACf9rP,SAAUurF,EAAMvrF,UAElB,CAAC,IAAIy0lB,gBAA2B,CAC9B5vnB,MAAO,eAET,CAAC,IAAI4vnB,eAAyBA,gBAA2B,CACvD5vnB,MAAO,cACPohU,kBAAmB,EACnBC,gBAAiB36M,EAAMomL,WAG3B,CAAC,GAAG8iV,gBAA2B,CAC7BrrnB,QAAS,OACT+sS,eAAgB,SAChBzT,WAAY,SACZ79R,MAAO,OACPN,OAAQ,OACR0hU,kBAAmB,EACnB9hS,QAAS,KAAKv+B,GAAK2lH,EAAMulL,cACzB,CAAC,IAAI2jV,gBAA2B,CAC9Bt+U,eAAgB,SAElB,CAAC,IAAIs+U,cAAyB,CAC5Bt+U,eAAgB,QAGpB,CAAC,IAAIs+U,mBAA8B,CACjC,CAAC,GAAGA,gBAA2B,CAC7BxmnB,SAAU,WACV81H,MAAO,EACP11H,gBAAiBk9G,EAAM+8K,iBACvBrE,aAAc14K,EAAMopgB,iBACpBpmnB,QAAS,EACT+oD,cAAek9jB,MACflwf,kBAAmB/Y,EAAMqpgB,6BACzBx2T,wBAAyB7yM,EAAMy4K,mBAC/Bn8O,wBAAyB,WACzBxmC,QAAS,OAGb,CAAC,IAAIozmB,QAAkBA,mBAA8B,CACnD,CAAC,GAAGA,gBAA2B,CAC7Bn9jB,cAAek9jB,KAAqB,KAGxC,CAAC,IAAIC,sBAAiC,CACpC,CAAC,GAAGA,QAAmB,CACrBpmnB,gBAAiBk9G,EAAM03K,YAEzB,CAAC,GAAGwxV,UAAqB,CACvB5wlB,MAAO0nF,EAAM03K,aAGjB,CAAC,IAAIwxV,sBAAgCA,eAAyBA,sBAAiC,CAC7F,CAAC,GAAGA,iBAA4B,CAC9Btqe,OAAQ5+B,EAAM03K,aAGlB,CAAC,IAAIwxV,oBAA+B,CAClC,CAAC,GAAGA,QAAmB,CACrBpmnB,gBAAiBk9G,EAAMw3K,cAEzB,CAAC,GAAG0xV,UAAqB,CACvB5wlB,MAAO0nF,EAAMw3K,eAGjB,CAAC,IAAI0xV,oBAA8BA,eAAyBA,sBAAiC,CAC3F,CAAC,GAAGA,iBAA4B,CAC9Btqe,OAAQ5+B,EAAMw3K,iBAIrB,EAEG8xV,IAAiBtpgB,IACrB,MACEu0K,aAAc20V,EACdz0V,QAASlU,GACPvgK,EACJ,MAAO,CACL,CAACkpgB,GAAc,CACb,CAAC,GAAGA,kBAA6B,CAC/Btqe,OAAQ5+B,EAAMmpgB,gBAEhB,CAAC,IAAID,YAAsBA,WAAsB,CAC/CxmnB,SAAU,WACViyB,WAAY,EACZ7xB,gBAAiB,eAEnB,CAAC,IAAIomnB,YAAsBA,UAAqB,CAC9CxmnB,SAAU,WACVq7X,gBAAiB,MACjBlzF,iBAAkB,EAClBvxS,MAAO,OACPL,OAAQ,EACR2/B,QAAS,EACTN,MAAO0nF,EAAMupgB,gBACb90lB,SAAUurF,EAAMwpgB,mBAChB70lB,WAAY,EACZ+jH,WAAY,SACZ3+G,UAAW,SACX68C,UAAW,mBACX,CAAC2pM,GAAgB,CACf9rP,SAAUurF,EAAMypgB,qBAGpB,CAAC,GAAGP,8BAAyC,CAC3C,CAAC,GAAGA,UAAqB,CACvB5wlB,MAAO0nF,EAAM03K,aAGjB,CAAC,GAAGwxV,4BAAuC,CACzC,CAAC,GAAGA,UAAqB,CACvB5wlB,MAAO0nF,EAAMw3K,gBAInB,CAAC,GAAG0xV,mBAA8B,CAChCv0lB,WAAY,EACZ,CAAC,GAAGu0lB,WAAsB,CACxBlvlB,cAAe,WAGpB,EAEG0vlB,IAAe1pgB,IACnB,MACEu0K,aAAc20V,GACZlpgB,EACJ,MAAO,CACL,CAACkpgB,GAAc,CACb,CAAC,GAAGA,WAAsB,CACxBrrnB,QAAS,eACT,UAAW,CACTA,QAAS,OACT6rS,cAAe,MACfvS,WAAY,UAEd,SAAU,CACRj6O,WAAY,EACZ/Z,SAAU68E,EAAM2pgB,qBAChBhvT,gBAAiB36M,EAAM4pgB,4BACvB9mnB,gBAAiBk9G,EAAMmpgB,eACvBvhkB,WAAY,OAAOo4D,EAAMu2K,qBACzB,WAAY,CACVzzR,gBAAiBk9G,EAAMg4N,iBAKhC,EAEG6xS,IAAe7pgB,IACnB,MACEu0K,aAAc20V,EACdz0V,QAASlU,GACPvgK,EACJ,MAAO,CACL,CAACkpgB,GAAc,CACb,CAAC,GAAGA,kBAA4BA,iBAA2BA,UAAoB3oW,KAAkB,CAC/F9rP,SAAUurF,EAAM06K,aAGrB,EAWH,IAAe3F,GAAc,YAAY/0K,IACvC,MAAM4pgB,EAA8B5pgB,EAAMq6J,KAAKr6J,EAAMmmL,WAAWn4E,IAAI,GAAG19C,QACjEw5c,EAAgB93V,GAAWhyK,EAAO,CACtC4pgB,8BACAD,qBAAsBC,EACtBP,6BAA8B,SAEhC,MAAO,CAAC75S,IAAas6S,GAAgBR,IAAeQ,GAAgBJ,IAAaI,GAAgBD,IAAaC,GAAe,IAhB1F9pgB,IAAS,CAC5CupgB,gBAAiBvpgB,EAAMk2K,UACvB8hD,aAAch4N,EAAM23K,UACpBwxV,eAAgBnpgB,EAAMw8K,mBACtB4sV,iBAAkB,IAElBI,mBAAoB,MACpBC,mBAAuBzpgB,EAAMvrF,SAAWurF,EAAM06K,WAA1B,SC/RtB,IAAIsI,IAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAiBO,MAiCMg/lB,IAAiBA,CAACnxb,EAAam0H,KAC1C,MAAM,KACF/qT,EAAOo6Q,GAAoB92J,KAAI,GAC/BnjH,EAAKi6Q,GAAoB92J,KAAI,UAC7BwP,GAAgC,QAApBi4L,EAA4B,UAAY,aAClDn0H,EACJn0F,EAAOu+L,IAAOpqG,EAAa,CAAC,OAAQ,KAAM,cAC5C,GAAiC,IAA7Bv7L,OAAOC,KAAKmnG,GAAMjsG,OAAc,CAClC,MACMq6H,EAAa,mBAAmBiC,MA1Cdk1f,KAC1B,IAAIC,EAAU,GAWd,OAVA5snB,OAAOC,KAAK0snB,GAAW7xnB,SAAQgE,IAC7B,MAAM+tnB,EAAetwlB,WAAWz9B,EAAI4O,QAAQ,KAAM,KAC7CxM,OAAOic,MAAM0vmB,IAChBD,EAAQ/wnB,KAAK,CACXiD,IAAK+tnB,EACLj0nB,MAAO+znB,EAAU7tnB,IAErB,IAEF8tnB,EAAUA,EAAQ/9lB,MAAK,CAAC3a,EAAGC,IAAMD,EAAEpV,IAAMqV,EAAErV,MACpC8tnB,EAAQvlnB,KAAI49I,IACjB,IAAI,IACFnmJ,EAAG,MACHlG,GACEqsJ,EACJ,MAAO,GAAGrsJ,KAASkG,IAAM,IACxBG,KAAK,KAAK,EAuBa6tnB,CAAa1lhB,MAErC,MAAO,CACLouB,aACA,CAACk2f,KAAqBl2f,EAE1B,CACA,MAAMA,EAAa,mBAAmBiC,MAAc9yH,MAASG,KAC7D,MAAO,CACL0wH,aACA,CAACk2f,KAAqBl2f,EACvB,EAyEH,IAvEa3jF,IACX,MAAM,UACJyhM,EACA77G,UAAWi4L,EAAe,QAC1B2oB,EAAO,KACPh8T,EAAI,YACJilC,EAAW,YACXi6I,EAAW,cACXqsO,EAAgB,QAAO,SACvBzpX,EAAQ,WACRiqkB,EAAa,KAAI,gBACjB2E,EAAe,QACf/oe,GACEnyG,GAEF7Z,MAAOg1lB,EACPhsnB,KAAMisnB,GACJF,EACEl2B,EAAkBt7Z,GAAsC,kBAAhBA,EAA2Bmxb,IAAenxb,EAAam0H,GAAmB,CACtH,CAACg8T,KAAqBnwb,EACtB/lE,WAAY+lE,GAER8/F,EAAiC,WAAlBusI,GAAgD,SAAlBA,EAA2B,OAAI3ga,EAC5E0oT,EAAsB,OAATtzS,QAA0B,IAATA,EAAkBA,EAAO,EAAE,EAAGilC,IAAyB,UAATjlC,EAAmB,EAAI,KAClGpgB,EAAON,GAAU62Z,IAAQ7iG,EAAY,OAAQ,CAClDruQ,gBAMF,MAAM4rkB,EAAa,CACjBznnB,gBAAiB2inB,QAAcnhnB,EAC/Bo0R,gBAEI8xV,EAAentnB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC/CnH,MAAO,GAAG4unB,IAAcxyS,MACxB18U,SACA0/R,gBACCw7T,GAAkB,CACnB,CAAC80B,KAAUd,IAAcxyS,GAAW,MAEhC0yS,EAAiBD,IAAkBj5kB,GACnCu7kB,EAAsB,CAC1BnxnB,MAAO,GAAG4unB,IAAcE,MACxBpvnB,SACA0/R,eACA51R,gBAA6B,OAAZu+I,QAAgC,IAAZA,OAAqB,EAASA,EAAQu3C,aAEvEipN,EAAa,CACjBvoZ,MAAOA,EAAQ,EAAI,OAASA,GAExBoxnB,EAAyBx/Z,EAAAA,cAAoB,MAAO,CACxDtsN,UAAW,GAAG+xO,UACdh0O,MAAO4tnB,GACOr/Z,EAAAA,cAAoB,MAAO,CACzCtsN,UAAWisN,KAAW,GAAG8lB,OAAgB,GAAGA,QAAgB25Y,KAC5D3tnB,MAAO6tnB,GACW,UAAjBF,GAA4B9ukB,QAA8Bl3C,IAAnB8jnB,GAA8Cl9Z,EAAAA,cAAoB,MAAO,CACjHtsN,UAAW,GAAG+xO,eACdh0O,MAAO8tnB,KAEHE,EAAgC,UAAjBL,GAA0C,UAAdD,EAC3CO,EAA8B,UAAjBN,GAA0C,QAAdD,EAC/C,MAAwB,UAAjBC,GAA0C,WAAdD,EAAuCn/Z,EAAAA,cAAoB,MAAO,CACnGtsN,UAAW,GAAG+xO,mBACb+5Y,EAAWlvkB,GAA2B0vK,EAAAA,cAAoB,MAAO,CAClEtsN,UAAW,GAAG+xO,UACdh0O,MAAOklZ,GACN8oO,GAAgBnvkB,EAAUkvkB,EAAWE,GAAcpvkB,EAAU,ECzGlE,IAvCctM,IACZ,MAAM,KACJx1B,EAAI,MACJgxT,EACAn+G,SAAUs+Z,EAAiBhynB,KAAK22B,MAAK,QACrCkmT,EAAU,EAAC,YACX/2R,EAAc,EAAC,YACfi6I,EAAW,WACX6sb,EAAa,KAAI,UACjB90Y,EAAS,SACTn1L,GACEtM,EACE5R,EAAUutlB,EAAengT,GAASgL,EAAU,MAE5C1oB,EAAsB,OAATtzS,QAA0B,IAATA,EAAkBA,EAAO,CADlC,UAATA,EAAmB,EAAI,GACgCilC,IAClErlD,EAAON,GAAU62Z,IAAQ7iG,EAAY,OAAQ,CAClD0d,QACA/rR,gBAEI8vQ,EAAYn1T,EAAQoxU,EACpBogT,EAAc,IAAI5ynB,MAAMwyU,GAC9B,IAAK,IAAInyU,EAAI,EAAGA,EAAImyU,EAAOnyU,IAAK,CAC9B,MAAM+/B,EAAQpgC,MAAMqR,QAAQqvL,GAAeA,EAAYrgM,GAAKqgM,EAC5Dkyb,EAAYvynB,GAAkB2yN,EAAAA,cAAoB,MAAO,CACvD/uN,IAAK5D,EACLqG,UAAWisN,KAAW,GAAG8lB,eAAwB,CAC/C,CAAC,GAAGA,uBAAgCp4O,GAAK+kC,EAAU,IAErD3gC,MAAO,CACLmG,gBAAiBvK,GAAK+kC,EAAU,EAAIhF,EAAQmtlB,EAC5CnsnB,MAAOm1T,EACPz1T,WAGN,CACA,OAAoBkyN,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAW,GAAG+xO,iBACbm6Y,EAAatvkB,EAAS,ECxC3B,IAAIwnP,IAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAgBO,MACDggmB,IAAmB,CAAC,SAAU,YAAa,SAAU,WAyI3D,MChKA,IDwB8B7/Z,EAAAA,YAAiB,CAACh8K,EAAON,KACrD,MACI+hM,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,MACbo7D,EAAK,YACL9xI,EAAW,QACX88I,EAAU,EAAC,KACXh8T,EAAO,UAAS,SAChBsxmB,GAAW,EAAI,KACf3snB,EAAO,OAAM,OACby1C,EAAM,OACNx5C,EAAM,MACNqC,EAAK,gBACLytnB,EAAkB,CAAC,GACjBl7kB,EACJiiM,EAAY6xD,IAAO9zP,EAAO,CAAC,YAAa,YAAa,gBAAiB,QAAS,cAAe,UAAW,OAAQ,WAAY,OAAQ,SAAU,SAAU,QAAS,qBAElK7Z,MAAOg1lB,EAAY,MACnBhsnB,KAAMisnB,EAAe,SACnBF,EACEa,EAAsB/ynB,MAAMqR,QAAQqvL,GAAeA,EAAY,GAAKA,EACpEsyb,EAAgD,kBAAhBtyb,GAA4B1gM,MAAMqR,QAAQqvL,GAAeA,OAAct0L,EACvG6mnB,EAAsBjga,EAAAA,SAAc,KACxC,GAAI+/Z,EAAqB,CACvB,MAAM3ylB,EAAuC,kBAAxB2ylB,EAAmCA,EAAsB5tnB,OAAOqQ,OAAOu9mB,GAAqB,GACjH,OAAO,IAAI3yW,GAAUhgP,GAAOoiP,SAC9B,CACA,OAAO,CAAK,GACX,CAAC9hF,IACEwyb,EAAgBlga,EAAAA,SAAc,KAClC,IAAIv3L,EAAIC,EACR,MAAMw0lB,EAAiBD,IAAkBj5kB,GACzC,OAAOnxB,cAA4BzZ,IAAnB8jnB,EAAoH,QAApFz0lB,EAAwB,OAAnBy0lB,QAA8C,IAAnBA,EAA4BA,EAAiB,SAAsB,IAAPz0lB,OAAgB,EAASA,EAAGtuB,WAA6E,QAA/DuuB,EAAiB,OAAZ8hT,QAAgC,IAAZA,EAAqBA,EAAU,SAAsB,IAAP9hT,OAAgB,EAASA,EAAGvuB,WAAY,GAAG,GACvS,CAACqwU,EAASxmS,EAAMmyG,QAASnyG,EAAMk5kB,iBAC5BiD,EAAiBnga,EAAAA,SAAc,KAC9B6/Z,IAAiBvjnB,SAASssC,IAAWs3kB,GAAiB,IAClD,UAEFt3kB,GAAU,UAChB,CAACA,EAAQs3kB,KACN,aACJjrW,EAAY,UACZrrJ,EACArzH,SAAU6pnB,GACRpga,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,WAAYG,IACpC+rB,EAAY7nB,EAAQ8nB,GAAalX,IAASzkD,GAC3C46Y,EAAsB,SAATltnB,EACbmtnB,EAAiBD,IAAe7gT,EAChC+gT,EAAevga,EAAAA,SAAc,KACjC,IAAK8/Z,EACH,OAAO,KAET,MAAM5C,EAAiBD,IAAkBj5kB,GACzC,IAAIhc,EACJ,MACMw4lB,EAAqBH,GAAcJ,GAAwC,UAAjBb,EAQhE,MAPqB,UAAjBA,GAA4BhwnB,GAA6B,cAAnB+wnB,GAAqD,YAAnBA,EAC1En4lB,GAHoB54B,GAAU,CAAC62C,GAAU,GAAGA,OAGvB+2kB,IAAcxyS,GAAUwyS,IAAcE,IAC/B,cAAnBiD,EACTn4lB,EAAOq4lB,EAA0Brga,EAAAA,cAAoB2gI,GAAmB,MAAqB3gI,EAAAA,cAAoBkjI,GAAe,MACpG,YAAnBi9R,IACTn4lB,EAAOq4lB,EAA0Brga,EAAAA,cAAoBygI,GAAmB,MAAqBzgI,EAAAA,cAAoB6yM,GAAe,OAE9G7yM,EAAAA,cAAoB,OAAQ,CAC9CtsN,UAAWisN,KAAW,GAAG8lB,SAAkB,CACzC,CAAC,GAAGA,iBAA0B+6Y,EAC9B,CAAC,GAAG/6Y,UAAkB05Y,KAAcmB,EACpC,CAAC,GAAG76Y,UAAkB25Y,KAAiBkB,IAEzCpolB,MAAuB,kBAATlQ,EAAoBA,OAAO5uB,GACxC4uB,EAAK,GACP,CAAC83lB,EAAUt1S,EAAS01S,EAAeC,EAAgBhtnB,EAAMsyO,EAAWr2O,IAgBvE,IAAImH,EAES,SAATpD,EACFoD,EAAWipU,EAAsBx/G,EAAAA,cAAoByga,IAAOtunB,OAAOoD,OAAO,CAAC,EAAGyuC,EAAO,CACnF0pJ,YAAasyb,EACbv6Y,UAAWA,EACX+5F,MAAwB,kBAAVA,EAAqBA,EAAMr/R,MAAQq/R,IAC/C+gT,GAA+Bvga,EAAAA,cAAoBklZ,IAAM/ymB,OAAOoD,OAAO,CAAC,EAAGyuC,EAAO,CACpF0pJ,YAAaqyb,EACbt6Y,UAAWA,EACX77G,UAAWA,EACXs1f,gBAAiB,CACf/0lB,MAAOg1lB,EACPhsnB,KAAMisnB,KAENmB,GACc,WAATptnB,GAA8B,cAATA,IAC9BoD,EAAwBypN,EAAAA,cAAoB7rB,IAAQhiM,OAAOoD,OAAO,CAAC,EAAGyuC,EAAO,CAC3E0pJ,YAAaqyb,EACbt6Y,UAAWA,EACX06Y,eAAgBA,IACdI,IAEN,MAAMtsW,EAAct0D,KAAW8lB,EAAW,GAAGA,YAAoB06Y,IAAkB,CACjF,CAAC,GAAG16Y,KAAsB,cAATtyO,EAAwB,SAAYA,KAAkB,SAATA,EAC9D,CAAC,GAAGsyO,mBAAqC,WAATtyO,GAAqBwxZ,IAAQn2Y,EAAM,UAAU,IAAM,GACnF,CAAC,GAAGi3N,UAAmB66Y,EACvB,CAAC,GAAG76Y,gBAAwB05Y,KAAcmB,EAC1C,CAAC,GAAG76Y,mBAA2B25Y,KAAiBkB,EAChD,CAAC,GAAG76Y,WAAoB+5F,EACxB,CAAC,GAAG/5F,eAAwBq6Y,EAC5B,CAAC,GAAGr6Y,KAAaj3N,KAAyB,kBAATA,EACjC,CAAC,GAAGi3N,SAAgC,QAAd77G,GACH,OAAlBw2f,QAA4C,IAAlBA,OAA2B,EAASA,EAAc1snB,UAAWA,EAAW0wQ,EAAekV,EAAQ8nB,GAC5H,OAAOD,EAAwBnhF,EAAAA,cAAoB,MAAO7tN,OAAOoD,OAAO,CACtEmuC,IAAKA,EACLjyC,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAqB,OAAlB6qnB,QAA4C,IAAlBA,OAA2B,EAASA,EAAc3unB,OAAQA,GAC3HiC,UAAWugR,EACX15B,KAAM,cACN,gBAAiB2lY,EACjB,gBAAiB,EACjB,gBAAiB,KAChBxrhB,GAAKuxI,EAAW,CAAC,aAAc,cAAe,QAAS,YAAa,cAAe,gBAAiB,UAAW,oBAAqB1vO,GAAU,IEanJ,IAhK8BypN,EAAAA,YAAiB,CAAC5oE,EAAM1zG,KACpD,IAAI,UACF+hM,EAAS,UACT/xO,EAAS,MACTjC,EAAK,OACL0uB,EAAM,SACNugmB,EAAQ,KACR1na,EAAI,MACJ4yB,EACAr1O,SAAUoqnB,EAAa,WACvBzkP,EAAU,iBACV0kP,EAAgB,WAChBp8O,EAAU,SACVq8O,EAAQ,gBACRC,EAAe,eACfC,EAAc,iBACdC,EACAC,YAAaC,EACbv1O,WAAYw1O,EACZC,aAAcC,EACd16gB,MAAO26gB,EAAW,UAClB71E,EAAS,WACT81E,EAAU,QACVt9R,GACE7sM,EACJ,IAAI3uH,EAAIC,EAER,MAAM,OACJkgB,GACEowK,GACG2gL,EAAc6nP,GAAmBxha,EAAAA,SAAep3K,GACvDo3K,EAAAA,WAAgB,KACC,YAAXp3K,GACF44kB,EAAgB54kB,EAClB,GACC,CAACA,IAEJ,MAAO0ja,EAAcm1K,GAAmBzha,EAAAA,UAAe,GACvDA,EAAAA,WAAgB,KACd,MAAMu+H,EAAQllU,YAAW,KACvBoomB,GAAgB,EAAK,GACpB,KACH,MAAO,KACLv1jB,aAAaqyR,EAAM,CACpB,GACA,IACH,MAAMzkG,EAAWoiJ,EAAWljL,GAC5B,IAAI5a,EAAoB4hB,EAAAA,cAAoB,MAAO,CACjDtsN,UAAW,GAAG+xO,UACbqU,GACH,GAAiB,YAAb4mY,GAAuC,iBAAbA,GAA4C,mBAAbA,EAC3D,GAAqB,cAAjB/mP,IAAiC3gL,EAAK8ga,WAAa9ga,EAAK3qN,IAAK,CAC/D,MAAMqznB,EAAqB/ha,KAAW,GAAG8lB,wBAAiC,CACxE,CAAC,GAAGA,oBAA8C,cAAjBk0J,IAEnCv7L,EAAoB4hB,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAWgunB,GACV5nY,EACL,KAAO,CACL,MAAM6nY,GAA0B,OAAbd,QAAkC,IAAbA,OAAsB,EAASA,EAAS7na,IAAuBgH,EAAAA,cAAoB,MAAO,CAChI7pN,IAAK6iN,EAAK8ga,UAAY9ga,EAAK3qN,IAC3BqqV,IAAK1/H,EAAK5+M,KACV1G,UAAW,GAAG+xO,oBACd3yG,YAAakmF,EAAKlmF,cACdgnH,EACA8nY,EAAajia,KAAW,GAAG8lB,wBAAiC,CAChE,CAAC,GAAGA,oBAA6Bo7Y,IAAaA,EAAS7na,KAEzD5a,EAAoB4hB,EAAAA,cAAoB,IAAK,CAC3CtsN,UAAWkunB,EACXthjB,QAAS3mD,GAAK8xhB,EAAUzyV,EAAMr/L,GAC9BrrB,KAAM0qN,EAAK3qN,KAAO2qN,EAAK8ga,SACvB5inB,OAAQ,SACRoyC,IAAK,uBACJq4kB,EACL,CAEF,MAAME,EAAoBlia,KAAW,GAAG8lB,cAAuB,GAAGA,eAAuBk0J,KACnFmoP,EAAsC,kBAAnB9oa,EAAK8oa,UAAyBpsnB,KAAKC,MAAMqjN,EAAK8oa,WAAa9oa,EAAK8oa,UACnFn2O,GAAwC,oBAAnBo1O,EAAgCA,EAAe/na,GAAQ+na,GAAkBH,GAA8C,oBAArBO,EAAkCA,EAAiBnoa,GAAQmoa,IAAmCnha,EAAAA,cAAoBs7O,GAAgB,OAAQ,IAAMr3G,EAAQjrI,IAAOysB,EAAWtlN,EAAOu6S,YAG9S,GAAQ,KACF0mT,GAA4C,oBAArBJ,EAAkCA,EAAiBhoa,GAAQgoa,IAAsC,SAAjBrnP,EAA0BinP,GAAgD,oBAAvBS,EAAoCA,EAAmBroa,GAAQqoa,IAAoCrha,EAAAA,cAAoBivV,GAAkB,OAAO,IAAMsyE,EAAWvoa,IAAOysB,EAAWtlN,EAAO06S,cAAgB,KACpWknT,EAAgC,iBAAbrB,GAA4C,mBAAbA,GAA+C1ga,EAAAA,cAAoB,OAAQ,CACjI/uN,IAAK,kBACLyC,UAAWisN,KAAW,GAAG8lB,sBAA+B,CACtDu8Y,QAAsB,YAAbtB,KAEVU,EAAcz1O,GACXuZ,EAAsC,oBAAhBo8N,EAA6BA,EAAYtoa,GAAQsoa,EACvE36gB,EAAQu+S,GAA8BllM,EAAAA,cAAoB,OAAQ,CACtEtsN,UAAW,GAAG+xO,qBACby/K,GACG+8N,EAAoBtia,KAAW,GAAG8lB,oBAClCqoI,EAAW90J,EAAK3qN,IAAoB2xN,EAAAA,cAAoB,IAAK7tN,OAAOoD,OAAO,CAC/EtE,IAAK,OACLiG,OAAQ,SACRoyC,IAAK,sBACL51C,UAAWuunB,EACX/plB,MAAO8gL,EAAK5+M,MACX0nnB,EAAW,CACZxznB,KAAM0qN,EAAK3qN,IACXiyE,QAAS3mD,GAAK8xhB,EAAUzyV,EAAMr/L,KAC5Bq/L,EAAK5+M,KAAMusG,GAAwBq5G,EAAAA,cAAoB,OAAQ,CACjE/uN,IAAK,OACLyC,UAAWuunB,EACX3hjB,QAAS3mD,GAAK8xhB,EAAUzyV,EAAMr/L,GAC9Bue,MAAO8gL,EAAK5+M,MACX4+M,EAAK5+M,KAAMusG,GACRs6gB,GAA0C,oBAApBH,EAAiCA,EAAgB9na,GAAQ8na,KAAqB9na,EAAK3qN,KAAO2qN,EAAK8ga,UAA0B95Z,EAAAA,cAAoB,IAAK,CAC5K1xN,KAAM0qN,EAAK3qN,KAAO2qN,EAAK8ga,SACvB5inB,OAAQ,SACRoyC,IAAK,sBACLg3B,QAAS3mD,GAAK8xhB,EAAUzyV,EAAMr/L,GAC9Bue,MAAO/X,EAAOy6S,aACgB,oBAAtBsmT,EAAmCA,EAAkBloa,GAAQkoa,GAAkClha,EAAAA,cAAoB27K,GAAa,OAAU,KAC9IumP,GAAmC,iBAAbxB,GAA4C,mBAAbA,IAAmD,cAAjB/mP,GAA8C35K,EAAAA,cAAoB,OAAQ,CACrKtsN,UAAW,GAAG+xO,uBACbw7Y,EAA8B,SAAjBtnP,GAA2BynP,EAAcz1O,IACnD,aACJ12H,GACEj1D,EAAAA,WAAiBg1D,IACfwT,EAAgBvT,IAChBw9E,EAAmBzyI,EAAAA,cAAoB,MAAO,CAClDtsN,UAAWmunB,GACVzjb,EAAM0vK,EAAUi0Q,EAAkBG,EAAoB51K,GAA8BtsP,EAAAA,cAAoB6pC,GAAW,CACpHK,WAAY,GAAGs+B,SACfxiC,QAA0B,cAAjB2zI,EACTnzI,eAAgB,MACf39E,IACD,IACEn1K,UAAWs8P,GACTnnF,EAEJ,MAAMs5c,EAAkB,YAAanpa,EAAqBgH,EAAAA,cAAoBq5M,IAAUlna,OAAOoD,OAAO,CAAC,EAAGornB,EAAe,CACvHxtnB,KAAM,OACNq3U,QAASxxH,EAAKwxH,QACd,aAAcxxH,EAAK,cACnB,kBAAmBA,EAAK,sBACnB,KACP,OAAoBgH,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAWisN,KAAW,GAAG8lB,uBAAgCuqB,IACxDmyX,EAAgB,KAEfxmjB,EAAUq9I,EAAKvwK,UAAqC,kBAAlBuwK,EAAKvwK,SAAwBuwK,EAAKvwK,UAAkC,QAArBhgB,EAAKuwL,EAAKhiN,aAA0B,IAAPyxB,OAAgB,EAASA,EAAGupM,cAAsC,QAArBtpM,EAAKswL,EAAKhiN,aAA0B,IAAP0xB,OAAgB,EAASA,EAAGizC,UAAYx7C,EAAOw6S,YACvOt8R,EAAwB,UAAjBs7V,EAAyC35K,EAAAA,cAAoBojF,GAAS,CACjFlrQ,MAAOyjC,EACP6yL,kBAAmBz6P,GAAQA,EAAKnB,YAC/B6/V,GAAQA,EACX,OAAoBzyI,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAWisN,KAAW,GAAG8lB,wBAAiC/xO,GAC1DjC,MAAOA,EACPiyC,IAAKA,GACJ8gW,EAAaA,EAAWnmW,EAAM26K,EAAM4yB,EAAO,CAC5CviM,SAAUk4kB,EAAW7nnB,KAAK,KAAMs/M,GAChCxhE,QAASi0Z,EAAU/xiB,KAAK,KAAMs/M,GAC9B1/G,OAAQ2qP,EAAQvqV,KAAK,KAAMs/M,KACxB36K,EAAK,ICvJN+jlB,IAAqBA,CAACp+kB,EAAON,KACjC,MAAM,SACJg9kB,EAAW,OAAM,YACjB9lT,EAAcu/S,IAAY,UAC1B1uE,EAAS,WACT81E,EAAU,SACVp1O,EAAQ,OACRhsX,EAAM,WACN+7W,EACA29O,WAAYgH,EAAWhH,IACvBp0Y,UAAW2vC,EAAkB,MAC7BxpC,EAAQ,GAAE,gBACVk1Y,GAAkB,EAAI,eACtBC,GAAiB,EAAI,iBACrBC,GAAmB,EAAK,WACxBr1O,EAAU,YACVs1O,EAAW,aACXG,EAAY,MACZz6gB,EAAK,SACLpwG,EAAW,CACTiY,KAAM,EAAE,EAAG,GACXsxmB,UAAU,GACX,aACDuC,EAAY,oBACZC,GAAsB,EAAI,WAC1B99O,EAAU,SACVr0V,GACEnM,EACEs+D,EAAco0O,MACbrwF,EAAck8X,GAAmBvia,EAAAA,UAAe,GACjDwia,EAAuB,CAAC,eAAgB,kBAAkBlmnB,SAASoknB,GAEzE1ga,EAAAA,WAAgB,KACT0ga,EAASjihB,WAAW,aAGxBmtI,GAAS,IAAI3+O,SAAQ+rN,KACdA,EAAKwjO,yBAAyBq6L,MAAQ79Z,EAAKwjO,yBAAyBn0Y,YAA2BjvC,IAAlB4/M,EAAK8ga,WAGxF9ga,EAAK8ga,SAAW,GACA,OAAhBl/S,QAAwC,IAAhBA,GAAkCA,EAAY5hH,EAAKwjO,eAAepwb,MAAKq2nB,IAE7Fzpa,EAAK8ga,SAAW2I,GAAkB,GAClCnghB,GAAa,IACb,GACF,GACD,CAACo+gB,EAAU90Y,EAAOgvF,IACrB56G,EAAAA,WAAgB,KACduia,GAAgB,EAAK,GACpB,IAEH,MAAMG,EAAoBA,CAAC1pa,EAAMr/L,KAC/B,GAAK8xhB,EAIL,OADM,OAAN9xhB,QAAoB,IAANA,GAAwBA,EAAEukC,iBACjCutf,EAAUzyV,EAAK,EAElB2pa,EAAqB3pa,IACC,oBAAfuoa,EACTA,EAAWvoa,GACFA,EAAK3qN,KACdqD,OAAOga,KAAKstM,EAAK3qN,IACnB,EAEIyzV,EAAkB9oI,IACT,OAAbmzL,QAAkC,IAAbA,GAA+BA,EAASnzL,EAAK,EAE9D4pa,EAAqB5pa,IACzB,GAAIkjL,EACF,OAAOA,EAAWljL,EAAM0na,GAE1B,MAAMxiN,EAA4B,cAAhBllN,EAAKpwK,OACvB,GAAI83kB,EAASjihB,WAAW,WAAY,CAClC,MAAMokhB,EAA2B,YAAbnC,EAAsC1ga,EAAAA,cAAoB0oH,GAAiB,MAAQvoT,EAAOs6S,UACxGqoT,GAAyB,OAAbjC,QAAkC,IAAbA,OAAsB,EAASA,EAAS7na,IAAsBgH,EAAAA,cAAoBm5Z,IAAgB,MAAqBn5Z,EAAAA,cAAoB+4Z,IAAa,MAC/L,OAAO76M,EAAY2kN,EAAcC,CACnC,CACA,OAAO5kN,EAAyBl+M,EAAAA,cAAoB0oH,GAAiB,MAAqB1oH,EAAAA,cAAoBi5Z,IAAmB,KAAK,EAElI2H,EAAmBA,CAACmC,EAAY5rmB,EAAUsuN,EAAWvtM,EAAO8qlB,KAChE,MAAMC,EAAW,CACf9vnB,KAAM,OACNqb,KAAM,QACN0pB,QACAooC,QAAS3mD,IACP,IAAI8O,EAAIC,EACRvR,IACiB6oM,EAAAA,eAAqB+ia,KACO,QAA1Cr6lB,GAAMD,EAAKs6lB,EAAW/+kB,OAAOs8B,eAA4B,IAAP53C,GAAyBA,EAAGx8B,KAAKu8B,EAAI9O,GAC1F,EAEFjmB,UAAW,GAAG+xO,sBAKhB,OAHIu9Y,IACFC,EAAS9ykB,SAAWA,GAEF6vK,EAAAA,eAAqB+ia,GAA4B/ia,EAAAA,cAAoB1pB,GAAQnkM,OAAOoD,OAAO,CAAC,EAAG0tnB,EAAU,CAC3H7kb,KAAMp7F,GAAa+/gB,EAAY5wnB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGwtnB,EAAW/+kB,OAAQ,CAChFs8B,QAASA,aAEQ0/I,EAAAA,cAAoB1pB,GAAQnkM,OAAOoD,OAAO,CAAC,EAAG0tnB,GAAwBjja,EAAAA,cAAoB,OAAQ,KAAM+ia,GAAa,EAI5I/ia,EAAAA,oBAA0Bt8K,GAAK,KAAM,CACnCw/kB,cAAeR,EACfS,eAAgBR,MAElB,MAAM,aACJ1tW,GACEj1D,EAAAA,WAAiBg1D,IAEfvvC,EAAYwvC,EAAa,SAAUG,GACnCoT,EAAgBvT,IAChBmuW,EAAiBzja,KAAW,GAAG8lB,SAAkB,GAAGA,UAAkBi7Y,KACtE2C,EAAiBrja,EAAAA,SAAc,IAAMtrH,GAAKw+N,GAAmB1qC,GAAgB,CAAC,cAAe,aAAc,gBAAgB,CAACA,IAC5H86V,EAAenxnB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGitnB,EAAuB,CAAC,EAAIa,GAAiB,CAChG78X,eAAgB,IAChB0D,WAAY,GAAGzkB,KAAa+8Y,EAAuB,iBAAmB,YACtEpwnB,KAAM+8O,GAAmBvD,EAAMpyO,KAAIw/M,IAAQ,CACzC/nN,IAAK+nN,EAAKhrM,IACVgrM,YAEFqtC,iBAEF,OAAoBrmC,EAAAA,cAAoB,MAAO,CAC7CtsN,UAAW0vnB,GACGpja,EAAAA,cAAoB6rC,GAAe15P,OAAOoD,OAAO,CAAC,EAAG+tnB,EAAc,CACjFvtZ,WAAW,KACT3+E,IACF,IAAI,IACFnmJ,EAAG,KACH+nN,EACAtlN,UAAWs8P,EACXv+P,MAAOw+P,GACL74G,EACJ,OAAoB4oE,EAAAA,cAAoBuja,IAAU,CAChDtynB,IAAKA,EACLkvB,OAAQA,EACRslN,UAAWA,EACX/xO,UAAWs8P,EACXv+P,MAAOw+P,EACPj3C,KAAMA,EACN4yB,MAAOA,EACPr1O,SAAUA,EACVmqnB,SAAUA,EACVG,SAAUA,EACVC,gBAAiBA,EACjBC,eAAgBA,EAChBC,iBAAkBA,EAClBr1O,WAAYA,EACZs1O,YAAaA,EACbG,aAAcA,EACdz6gB,MAAOA,EACPu1R,WAAY0mP,EACZhC,iBAAkBA,EAClBp8O,WAAYA,EACZinK,UAAWi3E,EACXnB,WAAYoB,EACZ1+R,QAASnC,GACT,IACAugS,GAA8Bria,EAAAA,cAAoB6pC,GAAW13P,OAAOoD,OAAO,CAAC,EAAG+tnB,EAAc,CAC/Ft9X,QAASs8X,EACTr4X,aAAa,KACXphF,IACF,IACEn1K,UAAWs8P,EACXv+P,MAAOw+P,GACLpnF,EACJ,OAAO7lE,GAAaq/gB,GAAcvjS,IAAY,CAC5CprV,UAAWisN,KAAWm/H,EAASprV,UAAWs8P,GAC1Cv+P,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG06P,GAAc,CAEjE3pB,cAAe0pB,EAAkB,YAAS52P,IACxC0lV,EAASrtV,UACZ,IACD,EAMN,UAJgCuuN,EAAAA,WAAiBoia,KCnMjD,IAAI19gB,IAAsC,SAAUpgE,EAASqgE,EAAY54F,EAAG64F,GAM1E,OAAO,IAAK74F,IAAMA,EAAI5W,WAAU,SAAUM,EAAS6lB,GACjD,SAASwpF,EAAU/5G,GACjB,IACEwhF,EAAKq4B,EAAUvkG,KAAKtV,GACtB,CAAE,MAAO4uB,KACP2B,EAAO3B,IACT,CACF,CACA,SAASorF,EAASh6G,GAChB,IACEwhF,EAAKq4B,EAAiB,MAAE75G,GAC1B,CAAE,MAAO4uB,KACP2B,EAAO3B,IACT,CACF,CACA,SAAS4yD,EAAKnvE,GApBhB,IAAerS,EAqBXqS,EAAOgU,KAAO3b,EAAQ2H,EAAOrS,QArBlBA,EAqBiCqS,EAAOrS,MApB9CA,aAAiBghB,EAAIhhB,EAAQ,IAAIghB,GAAE,SAAUtW,GAClDA,EAAQ1K,EACV,KAkB4DqB,KAAK04G,EAAWC,EAC5E,CACAx4B,GAAMq4B,EAAYA,EAAUp+F,MAAM89B,EAASqgE,GAAc,KAAKtkG,OAChE,GACF,EAcO,MAAMmjnB,IAAc,iBAAiBlhmB,KAAKw8B,UAC3C2kkB,IAAiBA,CAACz/kB,EAAON,KAC7B,MAAM,SACJ2ykB,EAAQ,gBACRqN,EAAe,SACfv3O,EAAQ,eACRw3O,GAAiB,EAAI,SACrBjD,EAAW,OAAM,UACjBj1E,EAAS,WACT81E,EAAU,SACVp0Y,EAAQ,OACRmnQ,EAAM,YACN15K,EACAzqR,SAAU+gS,EACV/wT,OAAQyjmB,EAAU,WAClB1nP,EAAU,WACV29O,EAAU,SACVtjnB,EACAkvO,UAAW2vC,EAAkB,UAC7B1hR,EAAS,KACTP,EAAO,SAAQ,SACfm9C,EAAQ,MACR7+C,EAAK,WACL+yY,EAAU,SACVl7J,EAAQ,KACR5gO,EAAO,CAAC,EAAC,SACT03D,GAAW,EAAK,iBAChBk3iB,GAAmB,EAAI,OACvBhhjB,EAAS,GAAE,OACXs/iB,EAAS,GAAE,oBACXiO,GAAsB,EAAI,cAC1Bz/W,GACEpgO,EAEEmM,EAAW6vK,EAAAA,WAAiBk9G,IAC5B9hF,EAAoC,OAAnB81F,QAA8C,IAAnBA,EAA4BA,EAAiB/gS,GACxF2zkB,EAAgBC,GAAqB92Y,GAAey2Y,GAAmB,GAAI,CAChF34nB,MAAOsrnB,EACPjpY,UAAWwf,GAAiB,OAATA,QAA0B,IAATA,EAAkBA,EAAO,MAExDo3X,EAAWC,GAAgBjka,EAAAA,SAAe,QAC3C0gH,EAAS1gH,EAAAA,OAAa,MACtBkka,EAAUlka,EAAAA,OAAa,MAO7BA,EAAAA,SAAc,KACZ,MAAMy1J,EAAYnzV,KAAKw8B,OACtBu3jB,GAAY,IAAIppnB,SAAQ,CAAC+rN,EAAM38M,KACzB28M,EAAKhrM,KAAQ7b,OAAOgoJ,SAAS6+D,KAChCA,EAAKhrM,IAAM,WAAWynW,KAAap5W,MACrC,GACA,GACD,CAACg6mB,IACJ,MAAMx+O,EAAmBA,CAAC7+K,EAAMmra,EAAiB5+jB,KAC/C,IAAI6+jB,EAAYj1Y,GAAmBg1Y,GAC/BE,GAAiB,EAEJ,IAAb/6Y,EACF86Y,EAAYA,EAAUjznB,OAAO,GACpBm4O,IACT+6Y,EAAiBD,EAAU92nB,OAASg8O,EACpC86Y,EAAYA,EAAUjznB,MAAM,EAAGm4O,KAIjC1+J,EAAAA,GAAAA,YAAU,KACRm5iB,EAAkBK,EAAU,IAE9B,MAAMlmH,EAAa,CACjBllT,KAAMA,EACNq9Z,SAAU+N,GAER7+jB,IACF24c,EAAW34c,MAAQA,GAEhB8+jB,GAAkC,YAAhBrra,EAAKpwK,SAE5Bw7kB,EAAU7mnB,MAAKjC,GAAKA,EAAE0S,MAAQgrM,EAAKhrM,QACjC48D,EAAAA,GAAAA,YAAU,KACK,OAAbuiK,QAAkC,IAAbA,GAA+BA,EAAS+wR,EAAW,GAE5E,EA+BIo4G,EAAegO,IAEnB,MAAMC,EAAuBD,EAAkBhnnB,QAAOqhI,IAASA,EAAKq6E,KAAKwqa,OAEzE,IAAKe,EAAqBj3nB,OACxB,OAEF,MAAMk3nB,EAAiBD,EAAqB/qnB,KAAImlI,GAAQ06e,IAAS16e,EAAKq6E,QAEtE,IAAIyra,EAAct1Y,GAAmB20Y,GACrCU,EAAev3nB,SAAQy3nB,IAErBD,EAAcjL,IAAekL,EAASD,EAAY,IAEpDD,EAAev3nB,SAAQ,CAACy3nB,EAASronB,KAE/B,IAAIsonB,EAAiBD,EACrB,GAAKH,EAAqBlonB,GAAOk6mB,WAsB/BmO,EAAQ97kB,OAAS,gBAtB0B,CAE3C,MAAM,cACJ4zY,GACEkoM,EACJ,IAAIzwnB,EACJ,IACEA,EAAQ,IAAI4inB,KAAK,CAACr6L,GAAgBA,EAAcpib,KAAM,CACpDjH,KAAMqpb,EAAcrpb,MAExB,CAAE,MAAOs1B,GACPx0B,EAAQ,IAAIo0C,KAAK,CAACm0Y,GAAgB,CAChCrpb,KAAMqpb,EAAcrpb,OAEtBc,EAAMmG,KAAOoib,EAAcpib,KAC3BnG,EAAMslnB,iBAAmB,IAAIj3lB,KAC7BruB,EAAMqlnB,cAAe,IAAIh3lB,MAAO4B,SAClC,CACAjwB,EAAM+Z,IAAM02mB,EAAQ12mB,IACpB22mB,EAAiB1wnB,CACnB,CAIA4jY,EAAiB8sP,EAAgBF,EAAY,GAC7C,EAEElQ,EAAYA,CAAC9rkB,EAAUuwK,EAAMv1E,KACjC,IAC0B,kBAAbh7F,IAETA,EAAW/yC,KAAKC,MAAM8yC,GAE1B,CAAE,MAAOhgB,GACP,CAGF,IAAKkxlB,IAAY3ga,EAAM8qa,GACrB,OAEF,MAAMc,EAAavL,IAASrga,GAC5B4ra,EAAWh8kB,OAAS,OACpBg8kB,EAAWp6S,QAAU,IACrBo6S,EAAWn8kB,SAAWA,EACtBm8kB,EAAWnhf,IAAMA,EACjB,MAAMg2e,EAAeD,IAAeoL,EAAYd,GAChDjsP,EAAiB+sP,EAAYnL,EAAa,EAEtCl/P,EAAaA,CAAC5gW,EAAGq/L,KAErB,IAAK2ga,IAAY3ga,EAAM8qa,GACrB,OAEF,MAAMc,EAAavL,IAASrga,GAC5B4ra,EAAWh8kB,OAAS,YACpBg8kB,EAAWp6S,QAAU7wT,EAAE6wT,QACvB,MAAMivS,EAAeD,IAAeoL,EAAYd,GAChDjsP,EAAiB+sP,EAAYnL,EAAc9/lB,EAAE,EAEzCw8B,EAAUA,CAACn/C,EAAOyxC,EAAUuwK,KAEhC,IAAK2ga,IAAY3ga,EAAM8qa,GACrB,OAEF,MAAMc,EAAavL,IAASrga,GAC5B4ra,EAAW5tnB,MAAQA,EACnB4tnB,EAAWn8kB,SAAWA,EACtBm8kB,EAAWh8kB,OAAS,QACpB,MAAM6wkB,EAAeD,IAAeoL,EAAYd,GAChDjsP,EAAiB+sP,EAAYnL,EAAa,EAEtCoL,EAAe7ra,IACnB,IAAI8ra,EACJ3vnB,QAAQM,QAA4B,oBAAb02Y,EAA0BA,EAASnzL,GAAQmzL,GAAU//Y,MAAKosK,IAC/E,IAAI/vI,EAEJ,IAAY,IAAR+vI,EACF,OAEF,MAAMusd,Ef9NL,SAAwB/ra,EAAMq9Z,GACnC,MAAMnpX,OAAwB9zP,IAAb4/M,EAAKhrM,IAAoB,MAAQ,OAC5C2oV,EAAU0/Q,EAAS/4mB,QAAO+gC,GAAQA,EAAK6uN,KAAcl0C,EAAKk0C,KAChE,OAAIypG,EAAQrpW,SAAW+onB,EAAS/onB,OACvB,KAEFqpW,CACT,CeuN8BquR,CAAehsa,EAAM8qa,GACzCiB,IACFD,EAAc3ynB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGyjN,GAAO,CACnDpwK,OAAQ,YAES,OAAnBk7kB,QAA8C,IAAnBA,GAAqCA,EAAe72nB,SAAQoxC,IACrF,MAAM6uN,OAA+B9zP,IAApB0rnB,EAAY92mB,IAAoB,MAAQ,OACrDqwB,EAAK6uN,KAAc43X,EAAY53X,IAAc/6P,OAAOgoJ,SAAS97G,KAC/DA,EAAKuK,OAAS,UAChB,IAEwB,QAAzBngB,EAAKi4S,EAAOtuS,eAA4B,IAAP3J,GAAyBA,EAAGi9U,MAAMo/Q,GACpEjtP,EAAiBitP,EAAaC,GAChC,GACA,EAEEtN,EAAa99lB,IACjBsqmB,EAAatqmB,EAAExmB,MACA,SAAXwmB,EAAExmB,OACO,OAAXmhf,QAA8B,IAAXA,GAA6BA,EAAO36d,GACzD,EAGFqmM,EAAAA,oBAA0Bt8K,GAAK,KAAM,CACnC4ykB,eACA/B,YACAh6P,aACApkU,UACAkgkB,SAAUyN,EACVpjT,OAAQA,EAAOtuS,QACf4pM,cAAekoZ,EAAQ9xlB,YAEzB,MAAM,aACJ6iP,EAAY,UACZrrJ,EACA82M,OAAQukT,GACNjla,EAAAA,WAAiBg1D,IACfvvC,EAAYwvC,EAAa,SAAUG,GACnC8vW,EAAgB/ynB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAChD+gnB,eACAngkB,UACAokU,aACAg6P,aACCvwkB,GAAQ,CACTt7B,OACA03D,WACA9J,SACAs/iB,SACAiO,sBACAp+Y,YACAt1L,SAAUirM,EACVo7X,aAhLyB2O,CAACnsa,EAAMosa,IAAiB1ghB,SAAU,OAAQ,OAAQ,GAAQ,YACnF,MAAM,aACJ8xgB,EAAY,cACZ6O,GACErhlB,EACJ,IAAIuykB,EAAav9Z,EACjB,GAAIw9Z,EAAc,CAChB,MAAMp5mB,QAAeo5mB,EAAax9Z,EAAMosa,GACxC,IAAe,IAAXhonB,EACF,OAAO,EAIT,UADO47M,EAAKwqa,KACRpmnB,IAAWomnB,IAKb,OAJArxnB,OAAOgN,eAAe65M,EAAMwqa,IAAa,CACvCz4nB,OAAO,EACPwQ,cAAc,KAET,EAEa,kBAAX6B,GAAuBA,IAChCm5mB,EAAan5mB,EAEjB,CAIA,OAHIionB,IACF9O,QAAmB8O,EAAc9O,IAE5BA,CACT,IAqJEppY,cAAU/zO,EACVk+mB,4BAEK4N,EAAcxxnB,iBACdwxnB,EAAczznB,MAKhB6+C,IAAY8qM,UACR8pY,EAAct1mB,GAEvB,MAAMguU,EAAa,GAAGn4G,aACf07D,EAAY7nB,GAAQ8nB,IAAalX,IAASzkD,EAAWm4G,IACrD2V,IAAiBtS,GAAU,SAAUtlB,GAAcnB,SACpD,eACJumT,GAAc,gBACdD,GAAe,iBACfE,GAAgB,WAChBr1O,GAAU,YACVs1O,GAAW,aACXG,GAAY,MACZz6gB,IAC4B,mBAAnBg9gB,EAA+B,CAAC,EAAIA,EAEzC2B,GAA+C,qBAAnBvE,IAAkC3lY,EAAiB2lY,GAC/EwE,GAAmBA,CAACtlkB,EAAQulkB,IAC3B7B,EAGe3ja,EAAAA,cAAoByla,IAAY,CAClDhgZ,UAAWA,EACXi7Y,SAAUA,EACV90Y,MAAOk4Y,EACPlpT,YAAaA,EACb6wO,UAAWA,EACX81E,WAAYA,EACZp1O,SAAU04O,EACV9D,eAAgBuE,GAChBxE,gBAAiBA,GACjBE,iBAAkBA,GAClBr1O,WAAYA,GACZs1O,YAAaA,GACbG,aAAcA,GACdllP,WAAYA,EACZv1R,MAAOA,GACPxmF,OAAQhuB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGg+V,IAAgBqwR,GACxD/J,WAAYA,EACZtjnB,SAAUA,EACV8rnB,aAAcpikB,EACdqikB,oBAAqBkD,EACrBhhP,WAAYA,EACZr0V,SAAUirM,IAxBHn7L,EA2BLylkB,GAAY/la,KAAWi+H,EAAYlqV,EAAW0wQ,EAAekV,GAAQ8nB,GAAyB,OAAd6jV,QAAoC,IAAdA,OAAuB,EAASA,EAAUvxnB,UAAW,CAC/J,CAAC,GAAG+xO,SAAgC,QAAd77G,EACtB,CAAC,GAAG67G,0BAAgD,iBAAbi7Y,EACvC,CAAC,GAAGj7Y,4BAAkD,mBAAbi7Y,IAErC/2X,GAAcx3P,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAiB,OAAd0vnB,QAAoC,IAAdA,OAAuB,EAASA,EAAUxznB,OAAQA,GAE5H,GAAa,SAAT0B,EAAiB,CACnB,MAAMwynB,EAAUhma,KAAW25D,GAAQ7zC,EAAW,GAAGA,SAAkB,CACjE,CAAC,GAAGA,oBAA6Bq+Y,EAAevmnB,MAAKy7M,GAAwB,cAAhBA,EAAKpwK,SAClE,CAAC,GAAG68L,gBAAuC,aAAdu+Y,EAC7B,CAAC,GAAGv+Y,cAAuB2V,EAC3B,CAAC,GAAG3V,SAAgC,QAAd77G,IAExB,OAAOu3K,EAAwBnhF,EAAAA,cAAoB,OAAQ,CACzDtsN,UAAWgynB,GACXhilB,IAAKwglB,GACSlka,EAAAA,cAAoB,MAAO,CACzCtsN,UAAWiynB,EACXl0nB,MAAOk4P,GACP2qP,OAAQmjI,EACRvjI,WAAYujI,EACZrjI,YAAaqjI,GACCz3Z,EAAAA,cAAoB4la,IAAUzznB,OAAOoD,OAAO,CAAC,EAAG2vnB,EAAe,CAC7ExhlB,IAAKg9R,EACLhtU,UAAW,GAAG+xO,UACCzlB,EAAAA,cAAoB,MAAO,CAC1CtsN,UAAW,GAAG+xO,oBACbn1L,KAAai1kB,MAClB,CACA,MAAMM,GAAelma,KAAW8lB,EAAW,GAAGA,WAAoB,CAChE,CAAC,GAAGA,cAAuB2V,EAC3B,CAAC,GAAG3V,aAAsBn1L,IAEtBw1kB,GAA4B9la,EAAAA,cAAoB,MAAO,CAC3DtsN,UAAWmynB,IACG7la,EAAAA,cAAoB4la,IAAUzznB,OAAOoD,OAAO,CAAC,EAAG2vnB,EAAe,CAC7ExhlB,IAAKg9R,MAEP,OACSv/B,EADQ,iBAAbu/U,GAA4C,mBAAbA,EACF1ga,EAAAA,cAAoB,OAAQ,CACzDtsN,UAAWgynB,GACXhilB,IAAKwglB,GACJqB,GAAiBO,KAAgBx1kB,IAEP0vK,EAAAA,cAAoB,OAAQ,CACzDtsN,UAAWgynB,GACXhilB,IAAKwglB,GACJ4B,GAAcP,MAAoB,EAMvC,UAJ4Bvla,EAAAA,WAAiByja,KC1Z7C,IAAI3rV,IAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAuBA,UApB6BmgM,EAAAA,YAAiB,CAACv3L,EAAIib,KACjD,IAAI,MACAjyC,EAAK,OACL3D,EAAM,iBACNwpnB,GAAmB,GACjB7ulB,EACJw9M,EAAY6xD,IAAOrvQ,EAAI,CAAC,QAAS,SAAU,qBAC7C,OAAoBu3L,EAAAA,cAAoBw6G,IAAQroU,OAAOoD,OAAO,CAC5DmuC,IAAKA,EACL4zkB,iBAAkBA,GACjBrxY,EAAW,CACZ9yO,KAAM,OACN1B,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG9D,GAAQ,CAC7C3D,aAED,ICvBC0sU,IAASipT,IACfjpT,IAAOurT,QAAUA,IACjBvrT,IAAOgpT,YAAcA,IACrB,cCLA,UADqB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,gTAAoT,KAAQ,SAAU,MAAS,YCM3e,IAAIwC,IAAiB,SAAwBhilB,EAAON,GAClD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAM6nb,MAEV,EAOA,UAJ2Bjma,EAAAA,WAAiBgma,KCqT5C,IA1SkBE,KAChB,MAAMxvjB,EAAW2hS,MACX,OAAEgrE,EAAM,QAAEllS,EAAO,aAAEgof,GAAiBrtR,IAAatiW,GAAUA,EAAM6sa,UACjE,WAAEj2T,EAAY+wB,QAASiof,GAAoBttR,IAC9CtiW,GAAUA,EAAM42G,cAGZ4uV,EAAgBC,IAAqBviY,EAAAA,EAAAA,WAAS,IAC9C6O,GAAQyyP,GAAKtd,WACb2oU,EAAcC,IAAmB5sjB,EAAAA,EAAAA,UAAS,OAC1C6sjB,EAAaC,IAAkB9sjB,EAAAA,EAAAA,UAAS,OACxC+sjB,EAAeC,IAAoBhtjB,EAAAA,EAAAA,WAAS,IAC5C+5U,EAAYkzO,IAAiBjtjB,EAAAA,EAAAA,UAAS,KACtCllC,EAAam7b,IAAkBj2Z,EAAAA,EAAAA,UAAS,IAI/CP,EAAAA,EAAAA,YAAU,KACRzC,EAASssW,GAAY,CAAEt1a,KAAM8mC,EAAaqlE,MAAO,MACjDnjC,EAASisW,KAAkB,GAC1B,CAACjsW,EAAUliC,KAEd2kC,EAAAA,EAAAA,YAAU,KACJktjB,IACF9+lB,QAAQyxB,IAAI,kBAAmBqtkB,GAC/B9+lB,QAAQyxB,IAAI,eAAgBo0D,GAC5B7kC,EAAK++N,eAAe,CAClBs/U,UAAWP,EAAariN,UACxB6iN,WAAYR,EAAa1mN,WAAWxla,aAExC,GACC,CAACksnB,EAAcj5gB,EAAY7kC,IAC9B,MAAMu+iB,EAAY,WAAmB,IAAlBxjN,EAAK1na,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,KACzB2rB,QAAQyxB,IAAI,mBAAoBsqX,GAChCgjN,EAAgBhjN,GACZA,GACF/6V,EAAK++N,eAAe,CAClBs/U,UAAWtjN,EAAMU,UACjB6iN,WAAYvjN,EAAM3D,WAAa2D,EAAM3D,WAAWxla,WAAa,KAE/DqsnB,EAAeljN,EAAMyjN,WAErBx+iB,EAAK4+N,cACLq/U,EAAe,OAEjBvqL,GAAkB,EACpB,EAqDM+qL,GAAqB51hB,EAAAA,GAAAA,WAAUz3E,IACnCgtmB,EAAchtmB,EAAEziB,OAAOnM,MAAMuE,cAAc,GAC1C,KAEGq/d,GAAiBp1Z,EAAAA,EAAAA,UAAQ,IACtB8pW,EAAO/la,QAAQgma,IAAW,IAAD2jN,EAC9B,MAAMC,GACW,QAAfD,EAAA3jN,EAAMU,iBAAS,IAAAijN,OAAA,EAAfA,EAAiB33nB,cAAcgN,SAASm3Y,MAAe,EACnD0zO,EAAgB/5gB,EAAW7vG,MAC9Bwla,IAAQ,IAAAqkN,EAAA,OACc,QAArBA,EAAArkN,EAASgB,oBAAY,IAAAqjN,OAAA,EAArBA,EAAuB93nB,cAAcgN,SAASm3Y,KAC9CsvB,EAASpD,aAAe2D,EAAM3D,UAAU,IAE5C,OAAOunN,GAAkBC,CAAa,KAEvC,CAAC9jN,EAAQj2T,EAAYqmS,IAElBjsX,EAAU,CACd,CAAE0Q,MAAO,aAAc+2a,UAAW,YAAah+c,IAAK,aACpD,CACEinC,MAAO,WACP+2a,UAAW,aACXh+c,IAAK,aACLi9C,OAASyxX,IACP,MAAMoD,EAAW31T,EAAW3vG,MAAM4pnB,GAAQA,EAAI1nN,aAAeA,IAC7D,OAAOoD,EAAWA,EAASgB,aAAe,SAAS,GAGvD,CACE7rY,MAAO,QACP+2a,UAAW,WACXh+c,IAAK,WACLi9C,OAAS6/Y,IACP,MAAM3C,EAAW,mDAAsC2C,EACpDzob,MAAM,MACN+4E,QACH,OACEujV,EAAAA,GAAAA,KAAA,OACEzra,IAAKi1b,EACL1yG,IAAI,aACJjnV,MAAO,CACLrD,MAAO,GACPN,OAAQ,GACR0pV,UAAW,QACXhqD,aAAc,MACdrnQ,OAAQ,WAEVm6C,QAASA,KACPkmjB,EAAep7L,GACf6Q,GAAkB,EAAK,GAEzB,GAIR,CACE/ja,MAAO,UACPjnC,IAAK,UACLi9C,OAAQA,CAAC5wB,EAAGi2c,KACV3xD,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACw5B,GAAY,IACnB96X,QAASA,IAAMwmjB,EAAUvzJ,GACzB7/d,UAAU,kDAAiD48C,SAC5D,WAOP,OACEqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,MAAK48C,SAAA,EAClBqxX,EAAAA,GAAAA,MAACprY,GAAG,CAACyrW,QAAQ,gBAAgB73W,MAAM,SAASz2B,UAAU,OAAM48C,SAAA,EAC1DsxX,EAAAA,GAAAA,KAACpF,GAAG,CAAAlsX,UACFsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,qCAAoC48C,SAAC,yBAErDsxX,EAAAA,GAAAA,KAACpF,GAAG,CAAAlsX,UACFsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACyyC,GAAY,IACnB/zY,QAASA,IAAMwmjB,IACfpznB,UAAU,kDAAiD48C,SAC5D,oBAMLsxX,EAAAA,GAAAA,KAACrrY,GAAG,CAACyrW,QAAQ,gBAAgBtuY,UAAU,OAAM48C,UAC3CsxX,EAAAA,GAAAA,KAACpF,GAAG,CAACjvR,KAAM,GAAIpwF,GAAI,GAAIzpD,UAAU,eAAc48C,UAC7CsxX,EAAAA,GAAAA,KAAC91E,GAAK,CACJ51Q,YAAY,8BACZi3J,SAAU65Y,EACVtznB,UAAU,sBACVygY,YAAU,SAKhBytC,EAAAA,GAAAA,KAACprY,GAAK,CACJhP,QAASA,EACT8xW,UAAQ,EACRikC,WAAYoxD,EACZnxD,OAAO,UACPr/R,QAASA,GAAWiof,EACpBtmT,WAAY,CACV1tS,QAASoC,EACT1nC,SAAU,GACVuqC,MAAO8ulB,EACPh5Y,SAAWz/O,GAASiie,EAAejie,IAErC+D,MAAO,CAAEg5H,UAAW,OAG5Bm3S,EAAAA,GAAAA,KAACv/G,GAAK,CACJnqR,MAAOmulB,EAAe,aAAe,YACrCrgY,QAASg2M,EACTt5G,SAAUA,IAAMu5G,GAAkB,GAClChia,OAAQ,KACRy2T,UAAQ,EACRxM,UAAW,CAAEx2T,QAAS,IAAK4iB,UAGrBqxX,EAAAA,GAAAA,MAAC3mG,GAAI,CAACzyP,KAAMA,EAAM4zO,SA7KHz6G,UACnBglb,GAAiB,GACjB,IAAK,IAADY,EACF,MAAM94Q,EAAW,IAAIpC,SACrBoC,EAAS1tH,OAAO,YAAat+O,EAAOoknB,WACpCp4Q,EAAS1tH,OAAO,aAAct+O,EAAOqknB,YAElB,QAAnBS,EAAI9knB,EAAO+knB,gBAAQ,IAAAD,GAAfA,EAAiBtua,KACnBw1J,EAAS1tH,OAAO,WAAYt+O,EAAO+knB,SAASvua,MACvB,OAAZqta,QAAY,IAAZA,GAAAA,EAAcU,SACvBv4Q,EAAS1tH,OAAO,WAAYulY,EAAamB,UAGvCnB,SAEI3vjB,EAASysW,GAAY,CAAEvzZ,GAAIy2mB,EAAaxmN,QAASrxD,cAAarI,SACpExqS,GAAQw6E,QAAQ,+BAGhBz/E,EAASssW,GAAY,CAAEt1a,KAAM8mC,EAAaqlE,MAAO,MAAOztG,MAAK,KAE3Dk6nB,EAAgB,KAAK,MAIvB93Q,EAAS1tH,OAAO,UAAWyjI,YACrB7tT,EAASusW,GAASz0D,IAAWrI,SACnCxqS,GAAQw6E,QAAQ,8BAGlB8lT,GAAkB,GAClB1zX,EAAK4+N,aACP,CAAE,MAAOnwS,GACPuwB,QAAQvwB,MAAM,sBAAuBA,GACrC2kE,GAAQ3kE,OAAW,OAALA,QAAK,IAALA,OAAK,EAALA,EAAO2kE,UAAW,0CAClC,CAAC,QACC+qjB,GAAiB,EACnB,GAwI8CjnT,OAAO,WAAUnvR,SAAA,EACzDsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,aACN7qG,KAAK,YACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,4BAA6BrrB,UAEhEsxX,EAAAA,GAAAA,KAAC91E,GAAK,CACJ51Q,YAAY,mBACZxiF,UAAU,2BAIdkua,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CAClBxhI,MAAM,WACN7qG,KAAK,aACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,6BAA8BrrB,UAEjEsxX,EAAAA,GAAAA,KAACrN,GAAM,CACLr+U,YAAY,kBACZnrF,MAAOw9E,EAAKm+N,cAAc,cAC1BvoK,QAASiof,EACTj5Y,SAAWpiP,IACTw8B,QAAQyxB,IAAI,oBAAqBjuD,EAAM,EACvCulD,SAED88D,EAAW5zG,KAAK6tnB,IACfzlN,EAAAA,GAAAA,KAACrN,GAAOje,OAAM,CAAsBvrZ,MAAOs8nB,EAAI1nN,WAAWrvX,SACvD+2kB,EAAItjN,cADasjN,EAAI1nN,mBASpBiC,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,OACN7qG,KAAK,WACL42S,cAAc,OAAM1gQ,UAEpBsxX,EAAAA,GAAAA,KAACpnG,IAAM,CACLpgU,KAAK,OACLupnB,gBAAgB,EAChBnN,aAAcA,KAAM,EACpBrpY,SAhLa/1F,IAAe,IAAd,KAAE4hE,GAAM5hE,EAChC,GAAI4hE,EAAM,CACR,MAAMohK,EAAS,IAAIvwU,WACnBuwU,EAAO5xU,OAAU7uB,GAAM6smB,EAAe7smB,EAAEziB,OAAOkG,QAC/Cg9W,EAAOrwU,cAAcivK,EACvB,MACEwta,EAAe,KACjB,EAyKqCl2kB,UAE3BsxX,EAAAA,GAAAA,KAACtrO,GAAM,CAAC8H,MAAMwjO,EAAAA,GAAAA,KAACokN,IAAc,IAAI11kB,SAAC,oBAIrCi2kB,IACC3kN,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,OAAM48C,UACnBsxX,EAAAA,GAAAA,KAAA,OACEzra,IAAKownB,EACL7tS,IAAI,UACJhlV,UAAU,8BAKhBkua,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CAAAn2L,UACRsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACLnjM,KAAK,UACLk+U,SAAS,SACT39U,UAAU,yDACVyqI,QAASsof,EAAcn2kB,SAEtB+1kB,EAAe,eAAiB,oBArExCA,EAAeA,EAAaxmN,QAAU,SA0EnC,ECjHV,IAvMmB4nN,KACf,MAAM/wjB,EAAW2hS,MACX,WAAEjrP,EAAa,GAAE,QAAE+wB,EAAO,MAAEnnI,GAAU8hW,IAAatiW,GAAUA,EAAM42G,cAGlE4uV,EAAgBC,IAAqBviY,EAAAA,EAAAA,WAAS,IAC9CqqW,EAAc2jN,IAAmBhujB,EAAAA,EAAAA,UAAS,KAC1CimW,EAAYgoN,IAAiBjujB,EAAAA,EAAAA,UAAS,KACtCkujB,EAAWC,IAAgBnujB,EAAAA,EAAAA,WAAS,IACpCllC,EAAam7b,IAAkBj2Z,EAAAA,EAAAA,UAAS,IACxC2nW,EAAaC,IAAkB5nW,EAAAA,EAAAA,UAAS,KACxCoujB,EAAcC,IAAmBrujB,EAAAA,EAAAA,WAAS,IAIjDP,EAAAA,EAAAA,YAAU,KACDi0C,GAAoC,IAAtBA,EAAW9/G,QAC1BopE,EAASisW,KACb,GACD,CAACjsW,EAAU02C,IAEd,MAAM05gB,EAAY,WAAsB,IAArB/jN,EAAQnna,UAAAtO,OAAA,QAAA8L,IAAAwC,UAAA,GAAAA,UAAA,GAAG,KACtBmna,GAEA4kN,EAAc5kN,EAASpD,YACvB+nN,EAAgB3kN,EAASgB,cACzB8jN,GAAa,KAGbF,EAAcpjQ,MACdmjQ,EAAgB,IAChBG,GAAa,IAEjB5rL,GAAkB,EACtB,EAEM+rL,EAAYA,KACdN,EAAgB,IAChBC,EAAc,IACdE,GAAa,GACb5rL,GAAkB,EAAM,EAgCtBgsL,EAAqB76gB,EACzBA,EAAW9vG,QAAQyla,IAAQ,IAAAqkN,EAAA,OACf,OAARrkN,QAAQ,IAARA,GAAsB,QAAdqkN,EAARrkN,EAAUgB,oBAAY,IAAAqjN,OAAd,EAARA,EAAwB93nB,cAAcgN,SAAS+ka,EAAY/xa,cAAc,IAE7E,GAEI44nB,EAjEoB,EAiEE1zlB,EACtB2zlB,EAAuBD,EAlEH,EAmEpBE,EAAoBH,EAAmB92nB,MAAMg3nB,EAAsBD,GAEnE1gmB,EAAU,CACZ,CACI0Q,MAAO,cACP+2a,UAAW,aACXh+c,IAAK,cAET,CACIinC,MAAO,gBACP+2a,UAAW,eACXh+c,IAAK,gBAET,CACIinC,MAAO,UACPjnC,IAAK,UACLi9C,OAAQA,CAAClmB,EAAMurc,KACX3xD,EAAAA,GAAAA,KAACtrO,GAAM,CACH8H,MAAMwjO,EAAAA,GAAAA,KAACw5B,GAAY,IACnB96X,QAASA,IAAMwmjB,EAAUvzJ,GACzB7/d,UAAU,kDAAiD48C,SAC9D,WAOb,OACIqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,wBAAuB48C,SAAA,EAClCqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,8DAA6D48C,SAAA,EACxEsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,8CAA6C48C,SAAC,gBAC5DqxX,EAAAA,GAAAA,MAAA,OAAKjua,UAAU,oBAAmB48C,SAAA,EAC9BsxX,EAAAA,GAAAA,KAAC91E,GAAK,CACF51Q,YAAY,0BACZnrF,MAAOs2a,EACPl0L,SAxEQxzN,GAAM2nZ,EAAe3nZ,EAAEziB,OAAOnM,OAyEtC0G,MAAO,CAAEi5H,YAAa,GAAIt8H,MAAO,YAErCwza,EAAAA,GAAAA,KAACtrO,GAAM,CACH8H,MAAMwjO,EAAAA,GAAAA,KAACyyC,GAAY,IACnB/zY,QAASA,IAAMwmjB,IACfpznB,UAAU,2EAA0E48C,SACvF,uBAMR6tF,GACGyjS,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,mCAAkC48C,UAC7CsxX,EAAAA,GAAAA,KAACzH,GAAI,CAAC3rZ,KAAK,YAEfxX,GACA2qa,EAAAA,GAAAA,MAAA,KAAGjua,UAAU,eAAc48C,SAAA,CAAC,UAAQt5C,MAEpC4qa,EAAAA,GAAAA,KAACprY,GAAK,CACFhP,QAASA,EACT+1Y,WAAY6qN,EACZ9uP,UAAQ,EACRkkC,OAAO,aACP19F,YAAY,EACZruU,MAAO,CAAEk5H,aAAc,WAI/Bi3S,EAAAA,GAAAA,KAACvpG,GAAU,CACPjmS,QAASoC,EACT24M,SAAWz/O,GAASiie,EAAejie,GACnCZ,SAxIc,EAyIduqC,MAAO4wlB,EAAmB36nB,OAC1BoG,UAAU,mBACViwY,iBAAiB,EACjBwC,UAAY9uW,GAAU,SAASA,kBAGnCuqY,EAAAA,GAAAA,KAACv/G,GAAK,CACFnqR,MAAO0vlB,EAAY,gBAAkB,mBACrCl8mB,KAAMswb,EACNt5G,SAAUslS,EACV/tlB,OAAQ,KAAKqW,UAEbqxX,EAAAA,GAAAA,MAAA,QAAMrjH,SApHG58G,UACjB/nL,EAAEukC,iBAEF,MAAM2kX,EAAe,CACjBlD,aACAoE,gBAGJ,IACIgkN,GAAgB,GACZH,QAEMlxjB,EAASosW,GAAe,CAAEnD,aAAYkD,kBAAiB18D,eAGvDzvS,EAASksW,GAAYC,IAAe18D,eAExCzvS,EAASisW,MACfqlN,GACJ,CAAE,MAAOhxnB,GACLuwB,QAAQvwB,MAAM,iCAAkCA,EACpD,CAAC,QACG+wnB,GAAgB,EACpB,GA6FsCr0nB,UAAU,YAAW48C,SAAA,EAC/CqxX,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EACIsxX,EAAAA,GAAAA,KAAA,SAAOlua,UAAU,sBAAqB48C,SAAC,kBACvCsxX,EAAAA,GAAAA,KAAA,SACIzua,KAAK,OACLiH,KAAK,aACLrP,MAAO40a,EACPxvX,UAAQ,EACRz8C,UAAU,uEAGlBiua,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EACIsxX,EAAAA,GAAAA,KAAA,SAAOlua,UAAU,sBAAqB48C,SAAC,oBACvCsxX,EAAAA,GAAAA,KAAA,SACIzua,KAAK,OACLiH,KAAK,eACLrP,MAAOg5a,EACP52L,SAxIExzN,GAAM+tmB,EAAgB/tmB,EAAEziB,OAAOnM,OAyIjC2I,UAAU,kCACVwiF,YAAY,sBACZo4B,UAAQ,QAGhBqzT,EAAAA,GAAAA,MAAA,UACIxua,KAAK,SACLO,UAAU,6GACVy8C,SAAU23kB,EAAax3kB,SAAA,CAEtBw3kB,GAAelmN,EAAAA,GAAAA,KAACzH,GAAI,CAAC3rZ,KAAK,QAAQ9a,UAAU,SAAY,KACxDo0nB,EAAe,WAAaF,EAAY,kBAAoB,yBAIvE,EC9GD58S,IAAel2N,IAC1B,MAAM,UACJzqF,EAAS,aACTmvQ,EAAY,KACZrqB,GACEr6J,EACEuzgB,EAAcvzgB,EAAM06K,WAU1B,OATiB1I,GAAWhyK,EAAO,CACjCuzgB,cACAC,cAAen5nB,GAAKggR,EAAKr6J,EAAM46K,cAAclrE,IAAI6ja,GAAajjd,SAC9Dmjd,YAAap5W,EAAKqqB,GAAcz1E,IAAIorD,EAAK9kP,GAAWm6L,IAAI,IAAIp/C,QAE5Dojd,qBAAsB,EAEtBC,gBAAiB3zgB,EAAMi4N,WAEV,EAEJtuC,IAAwB3pL,IAAS,CAC5Ci4N,UAAW,IAAI3/D,GAAUt4J,EAAM08K,qBAAqBliB,aAAax6J,EAAM+8K,kBAAkBtoG,cACzFujJ,aAAch4N,EAAMk2K,YAEtB,IAAenB,GAAc,OAAO/0K,GA7GfA,KACnB,MAAM,WACJulL,EAAU,UACVhwQ,EAAS,qBACTm+lB,EAAoB,aACpBn/V,EAAY,KACZla,GACEr6J,EACE4pL,EAAgBvvB,EAAKq5W,GAAsBzka,IAAI15L,GAAW+6I,QAC1Dsjd,EAAmBv5W,EAAKkrB,GAAYt2E,IAAI15L,GAAW+6I,QACzD,MAAO,CAEL,CAACikH,GAAel3R,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAGu1R,GAAeh2K,IAAS,CACtEniH,QAAS,eACT7E,OAAQ,OAER2hU,gBAAiB36M,EAAMomL,SACvBwD,gBACAn1Q,SAAUurF,EAAMuzgB,YAChB5+lB,WAAYqrF,EAAMwzgB,cAClB96e,WAAY,SACZ7lB,WAAY7S,EAAMi4N,UAClB9rM,OAAQ,GAAG9xI,GAAK2lH,EAAMzqF,cAAcyqF,EAAM+3K,YAAY/3K,EAAMm9K,cAC5DzE,aAAc14K,EAAM65K,eACpB72R,QAAS,EACT4kD,WAAY,OAAOo4D,EAAMkiL,oBACzBnoQ,UAAW,QACXr3B,SAAU,WAEV,CAAC,IAAI6xR,SAAqB,CACxBz/J,UAAW,OAEb,gBAAiB,CACfx8F,MAAO0nF,EAAMg4N,cAEf,CAAC,GAAGzjD,gBAA4B,CAC9BmmC,kBAAmBk5T,EACnBn/lB,SAAUurF,EAAMyzgB,YAChBn7lB,MAAO0nF,EAAMikL,qBACb5yQ,OAAQ,UACRu2B,WAAY,OAAOo4D,EAAMkiL,oBACzB,UAAW,CACT5pQ,MAAO0nF,EAAM+jL,mBAGjB,CAAC,IAAIxP,eAA2B,CAC9B16P,YAAa,cACb,CAAC,kBAAkBmmF,EAAMy0K,kBAAkBz0K,EAAMy0K,uBAAwB,CACvEn8P,MAAO0nF,EAAMkkL,sBAGjB,cAAe,CACbphS,gBAAiB,cACjB+2B,YAAa,cACbxI,OAAQ,UACR,CAAC,SAASkjQ,8BAA0C,CAClDj8P,MAAO0nF,EAAMu3K,aACbz0R,gBAAiBk9G,EAAMw8K,oBAEzB,sBAAuB,CACrBlkQ,MAAO0nF,EAAMkkL,qBAEf,YAAa,CACXphS,gBAAiBk9G,EAAMu3K,aACvB,UAAW,CACTz0R,gBAAiBk9G,EAAMy+K,oBAG3B,WAAY,CACV37R,gBAAiBk9G,EAAM0+K,qBAG3B,WAAY,CACV7gS,QAAS,QAGX,CAAC,KAAKmiH,EAAMy0K,4BAA4Bz0K,EAAMy0K,WAAY,CACxDimC,kBAAmB9wB,KAGvB,CAAC,GAAGrV,gBAA4B,CAC9B16P,YAAa,cACbg5F,WAAY7S,EAAM2zgB,iBAErB,EA2BMnkT,CADU0G,IAAal2N,KAE7B2pL,KCnHH,IAAI3G,IAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAKA,MA+BA,IA/BkCmgM,EAAAA,YAAiB,CAACh8K,EAAON,KACzD,MACI+hM,UAAW2vC,EAAkB,MAC7B3jR,EAAK,UACLiC,EAAS,QACTu7C,EAAO,SACPk+L,EAAQ,QACR7sK,GACEt8B,EACJiiM,EAAY6xD,IAAO9zP,EAAO,CAAC,YAAa,QAAS,YAAa,UAAW,WAAY,aACjF,aACJixO,EAAY,IACZp2Q,GACEmhN,EAAAA,WAAiBg1D,IAKfvvC,EAAYwvC,EAAa,MAAOG,IAE/B+rB,EAAY7nB,EAAQ8nB,GAAalX,IAASzkD,GAC3C53D,EAAM8xC,KAAW8lB,EAAW,GAAGA,cAAuB,CAC1D,CAAC,GAAGA,uBAAgCx2L,GAC3B,OAARpwC,QAAwB,IAARA,OAAiB,EAASA,EAAInL,UAAWA,EAAW4lR,EAAQ8nB,GAC/E,OAAOD,EAAwBnhF,EAAAA,cAAoB,OAAQ7tN,OAAOoD,OAAO,CAAC,EAAG0wO,EAAW,CACtFviM,IAAKA,EACLjyC,MAAOU,OAAOoD,OAAOpD,OAAOoD,OAAO,CAAC,EAAG9D,GAAgB,OAARoN,QAAwB,IAARA,OAAiB,EAASA,EAAIpN,OAC7FiC,UAAWm6K,EACXvtG,QAdkB3mD,IACL,OAAbwzN,QAAkC,IAAbA,GAA+BA,GAAUl+L,GAClD,OAAZqxB,QAAgC,IAAZA,GAA8BA,EAAQ3mD,EAAE,KAa1D,ICdN,IAAe+wQ,GAAqB,CAAC,MAAO,WAAW51K,GAzBhCA,IAAS+yM,GAAe/yM,GAAO,CAACs9K,EAAUh7I,KAC/D,IAAI,UACFjrH,EAAS,iBACT67R,EAAgB,WAChBD,EAAU,UACVE,GACE7wK,EACJ,MAAO,CACL,CAAC,GAAGtiC,EAAMu0K,eAAev0K,EAAMu0K,gBAAgB+I,KAAa,CAC1DhlQ,MAAOjB,EACPw7F,WAAYogM,EACZp5R,YAAaq5R,EAEb,YAAa,CACX56R,MAAO0nF,EAAMkkL,oBACbrxK,WAAYsgM,EACZt5R,YAAas5R,GAEf,CAAC,IAAInzM,EAAMu0K,2BAA4B,CACrC16P,YAAa,gBAGlB,IAKMg6lB,CADU39S,IAAal2N,KAE7B2pL,KC7BH,MAAMmqV,IAAoBA,CAAC9zgB,EAAOlsE,EAAQiglB,KACxC,MAAMC,ECHa,kBADc3plB,EDIa0plB,GCFrC1plB,EAEGA,EAAIzwB,OAAO,GAAG2Q,cAAgB8f,EAAIhuC,MAAM,GAJvC,IAAoBguC,EDKjC,MAAO,CACL,CAAC,GAAG21E,EAAMu0K,eAAev0K,EAAMu0K,gBAAgBzgP,KAAW,CACxDxb,MAAO0nF,EAAM,QAAQ+zgB,KACrBlhgB,WAAY7S,EAAM,QAAQg0gB,OAC1Bn6lB,YAAammF,EAAM,QAAQg0gB,WAC3B,CAAC,IAAIh0gB,EAAMu0K,2BAA4B,CACrC16P,YAAa,gBAGlB,EAGH,IAAe+7P,GAAqB,CAAC,MAAO,WAAW51K,IACrD,MAAMi0gB,EAAW/9S,IAAal2N,GAC9B,MAAO,CAAC8zgB,IAAkBG,EAAU,UAAW,WAAYH,IAAkBG,EAAU,aAAc,QAASH,IAAkBG,EAAU,QAAS,SAAUH,IAAkBG,EAAU,UAAW,WAAW,GAC9MtqV,KElBH,IAAI3G,IAAgC,SAAUh4Q,EAAGnG,GAC/C,IAAIkG,EAAI,CAAC,EACT,IAAK,IAAIrM,KAAKsM,EAAO3tB,OAAOnG,UAAUyD,eAAevD,KAAK4zB,EAAGtM,IAAMmG,EAAE9oB,QAAQ2iB,GAAK,IAAGqM,EAAErM,GAAKsM,EAAEtM,IAC9F,GAAS,MAALsM,GAAqD,oBAAjC3tB,OAAOiX,sBAA2C,KAAI/b,EAAI,EAAb,IAAgBmmB,EAAIrhB,OAAOiX,sBAAsB0W,GAAIzyB,EAAImmB,EAAElmB,OAAQD,IAClIssB,EAAE9oB,QAAQ2iB,EAAEnmB,IAAM,GAAK8E,OAAOnG,UAAU+a,qBAAqB7a,KAAK4zB,EAAGtM,EAAEnmB,MAAKwyB,EAAErM,EAAEnmB,IAAMyyB,EAAEtM,EAAEnmB,IADuB,CAGvH,OAAOwyB,CACT,EAcA,MA0FMkxhB,IA1F2B/wV,EAAAA,YAAiB,CAACgpa,EAAUtllB,KAC3D,MACI+hM,UAAW2vC,EAAkB,UAC7B1hR,EAAS,cACT0wQ,EAAa,MACb3yQ,EAAK,SACL6+C,EAAQ,KACR8tJ,EAAI,MACJhxK,EAAK,QACL62T,EAAO,SACPq1C,GAAW,EACXtzI,QAASijY,GACPD,EACJhllB,EAAQ8zP,IAAOkxV,EAAU,CAAC,YAAa,YAAa,gBAAiB,QAAS,WAAY,OAAQ,QAAS,UAAW,WAAY,aAC9H,aACJ/zW,EAAY,UACZrrJ,EACA/qH,IAAKqqnB,GACHlpa,EAAAA,WAAiBg1D,KACdhvB,EAASo2I,GAAcp8K,EAAAA,UAAe,GACvC0xL,EAAWh9S,GAAK1wD,EAAO,CAAC,YAAa,aAM3Cg8K,EAAAA,WAAgB,UACY5mN,IAAtB6vnB,GACF7sP,EAAW6sP,EACb,GACC,CAACA,IACJ,MAAME,EAAWrgU,GAAc17R,GACzBg8lB,EvqCvCD,SAA6Bh8lB,GAClC,OAAOy7R,GAAuBvsT,SAAS8wB,EACzC,CuqCqCmBi8lB,CAAoBj8lB,GAC/B27R,EAAkBogU,GAAYC,EAC9BE,EAAWn3nB,OAAOoD,OAAOpD,OAAOoD,OAAO,CAC3CqC,gBAAiBw1B,IAAU27R,EAAkB37R,OAAQh0B,GACrC,OAAf8vnB,QAAsC,IAAfA,OAAwB,EAASA,EAAWz3nB,OAAQA,GACxEg0O,EAAYwvC,EAAa,MAAOG,IAC/B+rB,EAAY7nB,EAAQ8nB,GAAalX,IAASzkD,GAE3C8jZ,EAAe5pa,KAAW8lB,EAA0B,OAAfyjZ,QAAsC,IAAfA,OAAwB,EAASA,EAAWx1nB,UAAW,CACvH,CAAC,GAAG+xO,KAAar4M,KAAU27R,EAC3B,CAAC,GAAGtjF,eAAwBr4M,IAAU27R,EACtC,CAAC,GAAGtjF,aAAsBugB,EAC1B,CAAC,GAAGvgB,SAAgC,QAAd77G,EACtB,CAAC,GAAG67G,iBAA0B6zJ,GAC7B5lY,EAAW0wQ,EAAekV,EAAQ8nB,GAC/BooV,EAAmB7vmB,IACvBA,EAAEojC,kBACU,OAAZknS,QAAgC,IAAZA,GAA8BA,EAAQtqU,GACtDA,EAAEokC,kBAGNq+U,GAAW,EAAM,GAEZ,CAAE5zC,GAAmBT,GAAYP,GAAawhS,GAAWxhS,GAAa0hS,GAAa,CACxFnlS,UAAU,EACVwE,gBAAiBzuG,GAKR8oD,GAAe9oD,EAJW95B,EAAAA,cAAoB,OAAQ,CAC3DtsN,UAAW,GAAG+xO,eACdnlK,QAASkpjB,GACR1vY,IAC0C8wJ,IAAe,CAC1DtqU,QAAS3mD,IACP,IAAI8O,EACqF,QAAxFA,EAAqB,OAAhBmiX,QAAwC,IAAhBA,OAAyB,EAASA,EAAYtqU,eAA4B,IAAP73C,GAAyBA,EAAGv8B,KAAK0+Y,EAAajxX,GAC/I6vmB,EAAiB7vmB,EAAE,EAErBjmB,UAAWisN,KAA2B,OAAhBirL,QAAwC,IAAhBA,OAAyB,EAASA,EAAYl3Y,UAAW,GAAG+xO,sBAI1GgkZ,EAAsC,oBAAlBzllB,EAAMs8B,SAA0BhwB,GAA8B,MAAlBA,EAASn9C,KACzE2mP,EAAW17C,GAAQ,KACnBk1I,EAAOx5F,EAAyB95B,EAAAA,cAAoBA,EAAAA,SAAgB,KAAM85B,EAAUxpM,GAAyB0vK,EAAAA,cAAoB,OAAQ,KAAM1vK,IAAcA,EAC7Jo5kB,EAAuB1pa,EAAAA,cAAoB,OAAQ7tN,OAAOoD,OAAO,CAAC,EAAGm8Y,EAAU,CACnFhuW,IAAKA,EACLhwC,UAAW61nB,EACX93nB,MAAO63nB,IACLh2S,EAAMkV,EAAiB2gS,GAAyBnpa,EAAAA,cAAoB2pa,IAAW,CACjF14nB,IAAK,SACLw0O,UAAWA,IACT2jZ,GAAyBppa,EAAAA,cAAoB4pa,IAAW,CAC1D34nB,IAAK,SACLw0O,UAAWA,KAEb,OAAO07D,EAAWsoV,EAA0Bzpa,EAAAA,cAAoByzH,GAAM,CACpE19G,UAAW,OACV2zZ,GAAWA,EAAQ,IAMxB34E,IAAI84E,aAAeA,IACnB,eC5GQvzO,OAAO,KAAIie,GA8PnB,IA5PmBn9Q,IAA2B,IAA1B,QAAE4uG,EAAO,QAAEi+F,GAAS7sM,EACtC,MAAM1gF,EAAW2hS,MACV9vR,GAAQyyP,GAAKtd,WACb+c,EAAWqvT,IAAgBpwjB,EAAAA,EAAAA,WAAS,IACpCqwjB,EAAgBC,IAAqBtwjB,EAAAA,EAAAA,UAAS,IAC9CuwjB,EAAkBC,IAAuBxwjB,EAAAA,EAAAA,UAAS,OAClDywjB,EAAcC,IAAmB1wjB,EAAAA,EAAAA,UAAS,OAC1CykE,EAASg0M,IAAcz4Q,EAAAA,EAAAA,WAAS,IAChC2wjB,EAAWC,IAAgB5wjB,EAAAA,EAAAA,UAAS,GAErC2pW,EAASvqE,IAAatiW,GAAUA,EAAM6sa,OAAOA,SAC7CgpB,EAAYvzF,IAAatiW,GAAUA,EAAM61b,UAAUA,aAEzDlzX,EAAAA,EAAAA,YAAU,KACRzC,EAASssW,MACTtsW,EAASi1X,KAAiB,GACzB,CAACj1X,IAEJ,MAqEM6zjB,EAAc,CAClB/T,aAAex9Z,IACbkxa,EAAoBlxa,GACpBoxa,EAAgBjhlB,IAAIK,gBAAgBwvK,KAC7B,GAETm0B,SAtB0BxuG,IAI1B,GAHyB,cAArBA,EAAKq6E,KAAKpwK,QACZkhlB,GAAa,GAEU,SAArBnrf,EAAKq6E,KAAKpwK,OAAmB,CAC/B,MAAM,cAAE4zY,GAAkB79S,EAAKq6E,KAC/Bkxa,EAAoB1tM,GACpB4tM,EAAgBjhlB,IAAIK,gBAAgBgzY,IACpCstM,GAAa,GACbnujB,GAAQw6E,QAAQ,GAAGxX,EAAKq6E,KAAK5+M,mCAC/B,KAAgC,UAArBukI,EAAKq6E,KAAKpwK,SACnBkhlB,GAAa,GACbnujB,GAAQ3kE,MAAM,GAAG2nI,EAAKq6E,KAAK5+M,4BAC7B,EAUAupnB,gBAAgB,EAChBptnB,SAAU,CACRgkX,WAAY1xM,IAAA,IAAC,QAAE2hK,GAAS3hK,EAAA,OAAKmhd,EAAkBx/S,EAAQ,IAI3D,OACEo3F,EAAAA,GAAAA,KAACv/G,GAAK,CACJnqR,MAAM,cACN8tN,QAASA,EACT08F,SAAUuB,EACVhqT,OAAQ,KACR7rC,MAAO,IAAIkiD,UAEXqxX,EAAAA,GAAAA,MAAC3mG,GAAI,CAACzyP,KAAMA,EAAMk3P,OAAO,WAAWtjB,SA1FvBz6G,UACf,MAAM8sK,EAAW,IAAIpC,SACrBj6W,OAAOC,KAAKoQ,GAAQvV,SAASgE,IAEf,aAARA,GAAuBuR,EAAOvR,GAGhCu9W,EAAS1tH,OAAO7vP,EAAKuR,EAAOvR,IAF5Bu9W,EAAS1tH,OAAO,WAAY,IAG9B,IAGF,MAAM6jI,EAAYJ,KAEZ46C,GAAc,IAAI78Y,MAAOsC,cAM/B,GAJA4pV,EAAS1tH,OAAO,SAHD,aAIf0tH,EAAS1tH,OAAO,YAAa6jI,GAC7BnW,EAAS1tH,OAAO,cAAeq+K,GAE3B8qN,EAAJ,CACEz7Q,EAAS1tH,OAAO,eAAgBmpY,GAMlC,IACEH,GAAa,SACPpzjB,EAASioW,GAAWnwD,IAAWrI,SACrCxqS,GAAQw6E,QAAQ,qCACVz/E,EAAS0oW,MAAiBj5D,SAEhC59R,EAAK4+N,cACL+iV,EAAoB,MACpBF,EAAkB,GAClBI,EAAgB,MAChBnmS,GACF,CAAE,MAAOr0V,GACP23B,QAAQvwB,MAAMpH,GACd+rE,GAAQ3kE,MAAM,yBAChB,CAAC,QACC8ynB,GAAa,EACf,CAlBA,MAFEnujB,GAAQ3kE,MAAM,gCAoBhB,EAgDyDs5C,SAAA,EACrDqxX,EAAAA,GAAAA,MAACprY,GAAG,CAAC0rW,OAAQ,GAAG3xV,SAAA,EACdsxX,EAAAA,GAAAA,KAACpF,GAAG,CAACjvR,KAAM,GAAGj9F,UACZsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,eACN7qG,KAAK,cACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,mCAAoCrrB,UAEvEsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAAC51Q,YAAY,4BAIvB0rV,EAAAA,GAAAA,KAACpF,GAAG,CAACjvR,KAAM,GAAGj9F,UACZsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,QACN7qG,KAAK,QACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,4BAA6BrrB,UAEhEsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAAC34V,KAAK,SAAS+iF,YAAY,gCAKvCyrV,EAAAA,GAAAA,MAACprY,GAAG,CAAC0rW,OAAQ,GAAG3xV,SAAA,EACdsxX,EAAAA,GAAAA,KAACpF,GAAG,CAACjvR,KAAM,GAAGj9F,UACZsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,YACN7qG,KAAK,WAAUk2C,UAEfsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAAC34V,KAAK,SAAS+iF,YAAY,oCAIrC0rV,EAAAA,GAAAA,KAACpF,GAAG,CAACjvR,KAAM,GAAGj9F,UACZsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,WACN7qG,KAAK,WACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,+BAAgCrrB,UAEnEsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAAC34V,KAAK,SAAS+iF,YAAY,mCAKvC0rV,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACZxhI,MAAM,cACN7qG,KAAK,cACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,kCAAmCrrB,UAEtEqxX,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EACEsxX,EAAAA,GAAAA,KAAC91E,GAAMs0C,SAAQ,CACblqT,YAAY,4BACZ8mH,SAAU,CAAE0gM,QAAS,EAAGC,QAAS,GACjCxwJ,SAnGcxzN,IACpB,MAAM5uB,EAAQ4uB,EAAEziB,OAAOnM,MACnBA,EAAMuC,QAAU,KAClBg9nB,EAAav/nB,EAAMuC,OACrB,EAgGMwyF,UAAW,OAEb6hV,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEo9B,UAAW,QAAS47F,UAAW,GAAIn6E,SAAA,CAC9C+5kB,EAAU,mBAKb1oN,EAAAA,GAAAA,MAACprY,GAAG,CAAC0rW,OAAQ,GAAG3xV,SAAA,EACdsxX,EAAAA,GAAAA,KAACpF,GAAG,CAACjvR,KAAM,GAAGj9F,UACZsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,QACN7qG,KAAK,UACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,2BAA4BrrB,UAE/DsxX,EAAAA,GAAAA,KAACrN,GAAM,CAACr+U,YAAY,iBAAgB5lC,SACjC+yX,EAAO7pa,KAAK8pa,IACX1B,EAAAA,GAAAA,KAACtrB,IAAM,CAAqBvrZ,MAAOu4a,EAAMzD,QAAQvvX,SAC9CgzX,EAAMU,WADIV,EAAMzD,kBAQ3B+B,EAAAA,GAAAA,KAACpF,GAAG,CAACjvR,KAAM,GAAGj9F,UACZsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,WACN7qG,KAAK,aACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,8BAA+BrrB,UAElEsxX,EAAAA,GAAAA,KAACrN,GAAM,CAACr+U,YAAY,oBAAmB5lC,SACpC+7Y,EAAU7yb,KAAKgzb,IACd5qB,EAAAA,GAAAA,KAACtrB,IAAM,CAA2BvrZ,MAAOyhc,EAASzsB,WAAWzvX,SAC1Dk8Y,EAASM,cADCN,EAASzsB,wBAShC6B,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CAChBxhI,MAAM,SACN7qG,KAAK,SACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,sCAAuCrrB,UAE1EqxX,EAAAA,GAAAA,MAACpN,GAAM,CAACr+U,YAAY,wBAAuB5lC,SAAA,EACzCsxX,EAAAA,GAAAA,KAACtrB,IAAM,CAACvrZ,MAAM,IAAGulD,SAAC,cAClBsxX,EAAAA,GAAAA,KAACtrB,IAAM,CAACvrZ,MAAM,IAAGulD,SAAC,uBAIdqxX,EAAAA,GAAAA,MAAC3mG,GAAKv0F,KAAI,CAACxhI,MAAM,eAAe7qG,KAAK,eAAck2C,SAAA,EACjDsxX,EAAAA,GAAAA,KAACpnG,IAAM,IAAK+vT,EAAa3U,OAAO,UAAStlkB,UACvCsxX,EAAAA,GAAAA,KAACtrO,GAAM,CAAC8H,MAAMwjO,EAAAA,GAAAA,KAACokN,IAAc,IAAI11kB,SAAC,mBAEnCmqR,IACCknG,EAAAA,GAAAA,MAAAqoB,GAAAA,SAAA,CAAA15Y,SAAA,EACEsxX,EAAAA,GAAAA,KAACvI,IAAQ,CAAC7uF,QAASu/S,EAAgBnhlB,OAAO,YAC1Cg5X,EAAAA,GAAAA,KAAA,QAAAtxX,SAAM,oBAGT65kB,IACCvoN,EAAAA,GAAAA,KAAA,OAAKlua,UAAU,OAAM48C,UACnBsxX,EAAAA,GAAAA,KAAA,OAAKzra,IAAKg0nB,EAAczxS,IAAI,UAAUjnV,MAAO,CAAEy4B,SAAU,OAAQilS,UAAW,iBAKlFyyG,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CAAAn2L,UACRsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACLnjM,KAAK,UACLk+U,SAAS,SACT39U,UAAU,SACVyqI,QAASA,EAAS7tF,SACnB,sBAKC,GCxPJgmW,OAAO,KAAIie,GAqLnB,IAnLsBn9Q,IAAuD,IAAtD,QAAE4uG,EAAO,QAAEi+F,EAAO,QAAE+S,EAAO,OAAEqsE,EAAM,UAAEgpB,GAAWj1S,EACrE,MAAM1gF,EAAW2hS,MACV9vR,GAAQyyP,GAAKtd,WACbv/K,EAASg0M,IAAcz4Q,EAAAA,EAAAA,WAAS,IAEvCP,EAAAA,EAAAA,YAAU,KACJ69R,GAAW7kW,OAAOC,KAAK4kW,GAAS1pW,OAAS,GAC3Ci7E,EAAK++N,eAAe,CAClBw3H,UAAW9nE,EAAQ2tB,UACnB6lQ,YAAaxzR,EAAQyqE,YACrB78C,MAAO5tB,EAAQ4tB,MACfqoE,SAAUj2F,EAAQi2F,SAClBw9L,YAAazzR,EAAQjjV,YACrB22mB,QAAS1zR,EAAQ6oE,QACjB8qN,WAAY3zR,EAAQ4zR,WACpBhilB,OAAQouT,EAAQpuT,QAEpB,GACC,CAACouT,EAASzuR,IAkCb,OACEq5V,EAAAA,GAAAA,KAACv/G,GAAK,CACJnqR,MAAM,iBACN8tN,QAASA,EACT08F,SAAUuB,EACVhqT,OAAQ,KACR7rC,MAAO,IAAIkiD,UAEXqxX,EAAAA,GAAAA,MAAC3mG,GAAI,CACHzyP,KAAMA,EACNk3P,OAAO,WACPtjB,SA3CWz6G,UACf,MAAMjuI,EAAU,CACdqrW,UAAkB,OAAP9nE,QAAO,IAAPA,OAAO,EAAPA,EAAS2tB,UACpB88C,YAAaj/Z,EAAOgonB,YACpBz2mB,YAAavR,EAAOionB,YACpB7lQ,MAAOpiX,EAAOoiX,MACdqoE,SAAUzqb,EAAOyqb,SACjBptB,QAASr9Z,EAAOkonB,QAChBE,WAAYponB,EAAOmonB,WACnB/hlB,OAA0B,MAAlBpmC,EAAOomC,OAAiB,IAAM,KAGxC,GAAK6qB,EAAQqrW,UAKb,IACE3sF,GAAW,SACLz7Q,EAASmoW,GAAcprW,IAAU0yS,SACvCxqS,GAAQw6E,QAAQ,iCAChB8tM,IACA17Q,EAAK4+N,aACP,CAAE,MAAOv3S,GACP23B,QAAQvwB,MAAM,0BAA2BpH,GACzC+rE,GAAQ3kE,MAAM,4BAChB,CAAC,QACCm7U,GAAW,EACb,MAfEx2Q,GAAQ3kE,MAAM,yBAehB,EAgBIggT,cAAe,CAAE8nH,UAAW9nE,EAAQ2tB,WAAYr0U,SAAA,EAEhDsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CAACrsO,KAAK,YAAY3I,MAAO,CAAEkB,QAAS,QAAS29C,UACrDsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAAC34V,KAAK,cAGdwua,EAAAA,GAAAA,MAACprY,GAAG,CAAC0rW,OAAQ,GAAG3xV,SAAA,EACdsxX,EAAAA,GAAAA,KAACpF,GAAG,CAACjvR,KAAM,GAAGj9F,UACZsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,eACN7qG,KAAK,cACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,mCAAoCrrB,UAEvEsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAAC51Q,YAAY,4BAIvB0rV,EAAAA,GAAAA,KAACpF,GAAG,CAACjvR,KAAM,GAAGj9F,UACZsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,QACN7qG,KAAK,QACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,4BAA6BrrB,UAEhEsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAAC34V,KAAK,SAAS+iF,YAAY,gCAKvCyrV,EAAAA,GAAAA,MAACprY,GAAG,CAAC0rW,OAAQ,GAAG3xV,SAAA,EACdsxX,EAAAA,GAAAA,KAACpF,GAAG,CAACjvR,KAAM,GAAGj9F,UACZsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CAACxhI,MAAM,YAAY7qG,KAAK,WAAUk2C,UAC1CsxX,EAAAA,GAAAA,KAAC91E,GAAK,CAAC34V,KAAK,SAAS+iF,YAAY,oCAIrC0rV,EAAAA,GAAAA,KAACpF,GAAG,CAACjvR,KAAM,GAAGj9F,UACZsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,QACN7qG,KAAK,UACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,2BAA4BrrB,UAE/DsxX,EAAAA,GAAAA,KAACrN,GAAM,CAACr+U,YAAY,iBAAgB5lC,SACjC+yX,EAAO7pa,KAAK8pa,IACX1B,EAAAA,GAAAA,KAACtrB,IAAM,CAAqBvrZ,MAAOu4a,EAAMzD,QAAQvvX,SAC9CgzX,EAAMU,WADIV,EAAMzD,qBAS7B+B,EAAAA,GAAAA,KAACrrY,GAAG,CAAC0rW,OAAQ,GAAG3xV,UACdsxX,EAAAA,GAAAA,KAACpF,GAAG,CAACjvR,KAAM,GAAGj9F,UACZsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,cACN7qG,KAAK,cACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,kCAAmCrrB,UAEtEsxX,EAAAA,GAAAA,KAAC91E,GAAMs0C,SAAQ,CAAClqT,YAAY,4BAA4BrtD,KAAM,WAKpE+4Y,EAAAA,GAAAA,KAACrrY,GAAG,CAAC0rW,OAAQ,GAAG3xV,UACdsxX,EAAAA,GAAAA,KAACpF,GAAG,CAACjvR,KAAM,GAAGj9F,UACZsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,WACN7qG,KAAK,aACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,8BAA+BrrB,UAElEsxX,EAAAA,GAAAA,KAACrN,GAAM,CAACr+U,YAAY,oBAAmB5lC,SACpC+7Y,EAAU7yb,KAAKgzb,IACd5qB,EAAAA,GAAAA,KAACtrB,IAAM,CAA2BvrZ,MAAOyhc,EAASzsB,WAAWzvX,SAC1Dk8Y,EAASM,cADCN,EAASzsB,uBAShC6B,EAAAA,GAAAA,KAACrrY,GAAG,CAAC0rW,OAAQ,GAAG3xV,UACdsxX,EAAAA,GAAAA,KAACpF,GAAG,CAACjvR,KAAM,GAAGj9F,UACZsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CACRxhI,MAAM,SACN7qG,KAAK,SACL5I,MAAO,CAAC,CAAE88G,UAAU,EAAM3yC,QAAS,4BAA6BrrB,UAEhEqxX,EAAAA,GAAAA,MAACpN,GAAM,CAACr+U,YAAY,gBAAe5lC,SAAA,EACjCsxX,EAAAA,GAAAA,KAACtrB,IAAM,CAACvrZ,MAAM,IAAGulD,SAAC,cAClBsxX,EAAAA,GAAAA,KAACtrB,IAAM,CAACvrZ,MAAM,IAAGulD,SAAC,2BAM1BsxX,EAAAA,GAAAA,KAAC5mG,GAAKv0F,KAAI,CAAAn2L,UACRsxX,EAAAA,GAAAA,KAACtrO,GAAM,CAACnjM,KAAK,UAAUk+U,SAAS,SAAS39U,UAAU,SAASyqI,QAASA,EAAQ7tF,SAAC,yBAK5E,ECrFZ,IArF2B8mG,IAAsC,IAArC,QAAE4uG,EAAO,QAAEi+F,EAAO,UAAE0gC,GAAWvtO,EACzD,MAAO6nR,EAAW4rN,IAAgBnxjB,EAAAA,EAAAA,UAAS,OACpCoxjB,EAAiBC,IAAsBrxjB,EAAAA,EAAAA,UAAS,OAChDykE,EAASg0M,IAAcz4Q,EAAAA,EAAAA,WAAS,GACjChD,EAAW2hS,KA+CjB,OACEupE,EAAAA,GAAAA,KAACv/G,GAAK,CACJnqR,MAAM,uBACN8tN,QAASA,EACT08F,SAAUuB,EACVhqT,OAAQ,KAAKqW,UAEbqxX,EAAAA,GAAAA,MAAC3mG,GAAI,CAACyE,OAAO,WAAWtjB,SAzCPz6G,UACnB,GAAKijL,GAAcs6C,EAAnB,CAQA9sF,GAAW,GAEX,IACE,MAAMq8B,EAAW,IAAIpC,SACrBoC,EAAS1tH,OAAO,YAAa6jI,GAC7BnW,EAAS1tH,OAAO,YAAam+K,SAEvBvoW,EAASsoW,GAAmB,CAAEr6C,YAAWs6C,eAAc94D,SAE7DxlC,GAAaxqL,QAAQ,CACnBx6E,QAAS,UACT5nD,YAAa,wCAEfkwU,GACF,CAAE,MAAOjtV,GACPuwB,QAAQvwB,MAAM,iBAAkBA,GAChC2pU,GAAa3pU,MAAM,CACjB2kE,QAAS,QACT5nD,YAAa/c,EAAM2kE,SAAW,mCAElC,CAAC,QACCw2Q,GAAW,EACb,CAxBA,MALExR,GAAa3pU,MAAM,CACjB2kE,QAAS,QACT5nD,YAAa,2BA2BjB,EAUiDu8B,SAAA,EAC7CqxX,EAAAA,GAAAA,MAAC3mG,GAAKv0F,KAAI,CAACxhI,MAAM,gBAAe30D,SAAA,EAC9BsxX,EAAAA,GAAAA,KAACpnG,IAAM,CACLg8S,aAAcA,KAAM,EACpBrpY,SAxDetkE,IAAmB,IAAlB,SAAEwtc,GAAUxtc,EACpC,GAAIwtc,EAAS/onB,OAAS,EAAG,CACvB,MAAM09nB,EAAe3U,EAAS,GAAG75L,cACjCquM,EAAaG,GACbD,EAAmB5hlB,IAAIK,gBAAgBwhlB,GACzC,MACEH,EAAa,MACbE,EAAmB,KACrB,EAiDQzhZ,SAAU,EAAEh5L,UAEZsxX,EAAAA,GAAAA,KAACtrO,GAAM,CAAC8H,MAAMwjO,EAAAA,GAAAA,KAACokN,IAAc,IAAI11kB,SAAC,mBAEnCw6kB,IACClpN,EAAAA,GAAAA,KAAA,OAAKnwa,MAAO,CAAEg5H,UAAW,IAAKn6E,UAC5BsxX,EAAAA,GAAAA,KAAA,OACEzra,IAAK20nB,EACLpyS,IAAI,WACJjnV,MAAO,CAAErD,MAAO,OAAQN,OAAQ,OAAQqhU,UAAW,IAAKqoB,UAAW,iBAK3EoqF,EAAAA,GAAAA,KAACtrO,GAAM,CAACnjM,KAAK,UAAUk+U,SAAS,SAASlzM,QAASA,EAAQ7tF,SAAC,qBAIvD,ECyQZ,IApViB26kB,KACf,MAAMv0jB,EAAW2hS,MACX,SAAEgnE,GAAavmE,IAAatiW,GAAUA,EAAM6oa,YAC5C,OAAEgE,GAAWvqE,IAAatiW,GAAUA,EAAM6sa,UAC1C,UAAEgpB,GAAcvzF,IAAatiW,GAAUA,EAAM61b,aAC5C6+L,EAAmBC,IAAwBzxjB,EAAAA,EAAAA,WAAS,IACpD0xjB,EAAsBC,IAA2B3xjB,EAAAA,EAAAA,WAAS,IAC1D+2Z,EAAqB66J,IAA0B5xjB,EAAAA,EAAAA,WAAS,IACxD6xjB,EAAsBC,IAA2B9xjB,EAAAA,EAAAA,WAAS,IAC1D+xjB,EAA2BC,IAAgChyjB,EAAAA,EAAAA,WAAS,IACpEiyjB,EAAiBC,IAAsBlyjB,EAAAA,EAAAA,UAAS,OAChD+5U,EAAYkzO,IAAiBjtjB,EAAAA,EAAAA,UAAS,KACtCmyjB,EAAcC,IAAmBpyjB,EAAAA,EAAAA,UAAS,KAC1CqyjB,EAAiBC,IAAsBtyjB,EAAAA,EAAAA,UAAS,KAChDuyjB,EAAkBC,IAAuBxyjB,EAAAA,EAAAA,WAAS,IAClDyyjB,EAA2BC,IAAgC1yjB,EAAAA,EAAAA,WAAS,IACtE2yjB,EAA2BC,IAAgC5yjB,EAAAA,EAAAA,UAAS,MAGnEmjX,EAAiB33a,iCACjBqnnB,GAAmBtzjB,EAAAA,EAAAA,cAAYyoI,UACnC,UACQhrI,EAASwoW,MAAoB/4D,eAC7BzvS,EAASssW,MAAe78D,eACxBzvS,EAASi1X,MAAkBxlF,QACnC,CAAE,MAAOv2W,GACP23B,QAAQvwB,MAAMpH,GACd+rE,GAAQ3kE,MAAM,uBAChB,IACC,CAAC0/D,KAEJyC,EAAAA,EAAAA,YAAU,KACRozjB,GAAkB,GACjB,CAACA,IAEJ,MAwCM7vL,GAZoBr9B,GAAY,IAAI/ha,QAAQ05V,IAAa,IAADwqE,EAAAgrN,EAAAC,EAC5D,MAAMC,GACe,QAAnBlrN,EAAAxqE,EAAQyqE,mBAAW,IAAAD,OAAA,EAAnBA,EAAqBlya,cAAcgN,SAASm3Y,EAAWnkZ,kBAAkB,EACrEq9nB,GACgB,QAApBH,EAAAx1R,EAAQ81F,oBAAY,IAAA0/L,OAAA,EAApBA,EAAsBl9nB,cAAcgN,SAASm3Y,EAAWnkZ,kBAAkB,EACtEs9nB,GACa,QAAjBH,EAAAz1R,EAAQgtE,iBAAS,IAAAyoN,OAAA,EAAjBA,EAAmBn9nB,cAAcgN,SAASm3Y,EAAWnkZ,kBAAkB,EACnEu9nB,GAAcZ,GAAqC,GAAlBj1R,EAAQpuT,OAE/C,OAAQ8jlB,GAAoBC,GAAiBC,IAAeC,CAAW,IAGjC7rmB,MACtC,CAAC3a,EAAGC,IAAM,IAAIgc,KAAKhc,EAAE64Z,aAAe,IAAI78Y,KAAKjc,EAAE84Z,eAG3C33Y,EAAU,CACd,CACE0Q,MAAO,QACP+2a,UAAW,eACXh+c,IAAK,eACLi9C,OAAS6/Y,IACP,MAAM3C,EAAW,GAAGvO,2BAAwCkR,EACzDzob,MAAM,MACN+4E,QAEH,OACEujV,EAAAA,GAAAA,KAAA,OACEzra,IAAKi1b,EACL1yG,IAAI,UACJjnV,MAAO,CACLrD,MAAO,GACPN,OAAQ,GACR0pV,UAAW,QACXhqD,aAAc,MACdrnQ,OAAQ,WAEVm6C,QAASA,KACPwrjB,EAAgB1gM,GAChBkgM,GAAuB,EAAK,GAE9B,GAIR,CACEpzlB,MAAO,eACP+2a,UAAW,cACXh+c,IAAK,eAEP,CACEinC,MAAO,cACP+2a,UAAW,cACXh+c,IAAK,cACLi9C,OAASlmB,IACP,MAAM8kmB,EAAgB9kmB,EAAK16B,OAAS,GAAK,GAAG06B,EAAKzN,UAAU,EAAG,SAAWyN,EAEzE,OACE45Y,EAAAA,GAAAA,KAACx+H,GAAO,CAAClrQ,MAAM,mBAAkBoY,UAC/BsxX,EAAAA,GAAAA,KAAA,QAAMthW,QAASA,KA9DvB0rjB,EA8DoDhkmB,QA7DpD0jmB,GAA6B,IA6D6Bp7kB,SAC/Cw8kB,KAEK,GAMhB,CACE50lB,MAAO,QACP+2a,UAAW,QACXh+c,IAAK,QACLi9C,OAASlmB,GAAS,SAAI0G,WAAW1G,GAAM85Y,oBAAe1oa,EAAW,CAAEy0b,sBAAuB,EAAGC,sBAAuB,OAGtH,CACE51Z,MAAO,eACP+2a,UAAW,cACXh+c,IAAK,cACLi9C,OAASlmB,GAAS,IAAI1F,KAAK0F,GAAMonhB,qBACjC1iJ,OAAQA,CAACrmZ,EAAGC,IAAM,IAAIgc,KAAKjc,EAAE84Z,aAAe,IAAI78Y,KAAKhc,EAAE64Z,cAEzD,CACEjnY,MAAO,QACP+2a,UAAW,YACXh+c,IAAK,aAEP,CACEinC,MAAO,eACP+2a,UAAW,SACXh+c,IAAK,SACLi9C,OAAStF,GAEG,GAAVA,GACEg5X,EAAAA,GAAAA,KAACmvI,IAAG,CAAC3jhB,MAAM,QAAOkjB,SAAC,cACnBsxX,EAAAA,GAAAA,KAACmvI,IAAG,CAAC3jhB,MAAM,MAAKkjB,SAAC,kBAMvB,CACEpY,MAAO,UACPjnC,IAAK,UACLi9C,OAAQA,CAAClmB,EAAMurc,KACb5xD,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEkB,QAAS,OAAQg7U,IAAK,OAAQr9R,SAAA,EAC1CsxX,EAAAA,GAAAA,KAACx+H,GAAO,CAAClrQ,MAAM,OAAMoY,UACnBsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACw5B,GAAY,IACnB96X,QAASA,KAnInBsrjB,EAmI6Cr4J,QAlI7C83J,GAAwB,SAsIlBzpN,EAAAA,GAAAA,KAACx+H,GAAO,CAAClrQ,MAAM,eAAcoY,UAC3BsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACokN,IAAc,IACrB1ljB,QAASA,KAAMysjB,OAvIOpoQ,EAuIkB4uG,EAAO5uG,UAtIzD2nQ,EAA6B3nQ,QAC7BynQ,GAA6B,GAFGznQ,KAuIoC,OAG9Di9C,EAAAA,GAAAA,KAACx+H,GAAO,CAAClrQ,MAAM,eAAcoY,UAC3BsxX,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACjmC,GAAW,IAClBr7T,QAASA,KAtInBsrjB,EAsIkDr4J,QArIlDi4J,GAAwB,aA8I1B,OACE7pN,EAAAA,GAAAA,MAAA,OAAArxX,SAAA,EACEsxX,EAAAA,GAAAA,KAAA,MAAIlua,UAAU,sCAAqC48C,SAAC,yBACpDqxX,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEkB,QAAS,OAAQs5R,WAAY,SAAU0hD,IAAK,OAAQhjN,aAAc,IAAKr6E,SAAA,EACzFsxX,EAAAA,GAAAA,KAAC91E,GAAMq0C,OAAM,CACXjqT,YAAY,6CACZi3J,SAjJoBxzN,IACpBgtmB,EAAchtmB,EAAEziB,OAAOnM,MAAM,EAiJ7B0G,MAAO,CAAErD,MAAO,YAElBwza,EAAAA,GAAAA,KAACtrO,GAAM,CACL8H,MAAMwjO,EAAAA,GAAAA,KAACyyC,GAAY,IACnBlhd,KAAK,UACLmtE,QA3KuB0sjB,KACvBpB,EAAmB,MACnBT,GAAqB,EAAK,EA0K1Bz3nB,UAAU,kDAAiD48C,SAC5D,iBAGDsxX,EAAAA,GAAAA,KAAC2nD,GAAQ,CACPt6a,QAASg9kB,EACT9+Y,SAAWxzN,GAAMuymB,EAAoBvymB,EAAEziB,OAAO+3C,SAC9Cx9C,MAAO,CAAEm5H,WAAY,QAASt6E,SAC/B,+BAKGsxX,EAAAA,GAAAA,KAACprY,GAAK,CACJ+mY,WAAYm/B,EACZl1a,QAASA,EACTg2Y,OAAO,YACPlkC,UAAQ,KAIVsoC,EAAAA,GAAAA,KAACqrN,IAAU,CACTjnY,QAASklY,EACTjnS,QAASA,KACPknS,GAAqB,GACrBoB,GAAkB,EAEpBlpN,OAAQA,EACRgpB,UAAWA,KAGbzqB,EAAAA,GAAAA,KAACsrN,IAAa,CACnBlnY,QAASolY,EACTnnS,QAASA,KACPonS,GAAwB,GACxBkB,GAAkB,EAEnBv1R,QAAS20R,GAAmB,CAAC,EAC7BtoN,OAAQA,EACRgpB,UAAWA,KAEbzqB,EAAAA,GAAAA,KAACurN,IAAkB,CACjBnnY,QAASmmY,EACTloS,QAASA,KACPmoS,GAA6B,GAC7BG,GAAkB,EAEpB5nQ,UAAW0nQ,KAMPzqN,EAAAA,GAAAA,KAACv/G,GAAK,CACJr8D,QAASyqO,EACT/tI,SAAUA,IAAM4oS,GAAuB,GACvCrxlB,OAAQ,KACR/B,MAAM,gBAAeoY,UAErBsxX,EAAAA,GAAAA,KAAA,OACEzra,IAAK01nB,EACLnzS,IAAI,eACJjnV,MAAO,CAAErD,MAAO,OAAQN,OAAQ,aAKpC8za,EAAAA,GAAAA,KAACv/G,GAAK,CACVr8D,QAASulY,EACT7oS,SAAUA,IAAM8oS,GAAwB,GACxCvxlB,OAAQ,KACRy2T,UAAQ,EACRxM,UAAW,CAAEx2T,QAAS,GACtBt/B,MAAO,IAAIkiD,SAEVq7kB,IACChqN,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAE+7R,aAAc,GAAI/1R,SAAU,SAAU41H,UAAW,6BAA8B/8E,SAAA,EAE3FsxX,EAAAA,GAAAA,KAAA,OAAKnwa,MAAO,CAAEmG,gBAAiB,UAAWi3B,UAAW,UAAWyhB,UAC9DsxX,EAAAA,GAAAA,KAAA,OACEzra,IAAK,GAAG0mb,2BAAwC8uM,EAAgB9pN,aAAav8Z,MAAM,MAAM+4E,QACzFq6P,IAAKizS,EAAgBlqN,YACrBhwa,MAAO,CAAErD,MAAO,OAAQ+gU,UAAW,QAASqoB,UAAW,cAK3DmqF,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEi8B,QAAS,IAAK4iB,SAAA,EAC1BsxX,EAAAA,GAAAA,KAAA,MAAInwa,MAAO,CAAE83B,SAAU,SAAUyF,WAAY,IAAK27F,aAAc,GAAIr6E,SACjEq7kB,EAAgBlqN,eAEnBE,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEkB,QAAS,OAAQs5R,WAAY,SAAUthK,aAAc,IAAKr6E,SAAA,EACtEqxX,EAAAA,GAAAA,MAAA,QAAMlwa,MAAO,CAAE83B,SAAU,SAAUyF,WAAY,IAAK5B,MAAO,MAAOs9F,YAAa,IAAKp6E,SAAA,CAAC,SACjF5hB,WAAWi9lB,EAAgB/mQ,OAAOk9C,eAAe,QAAS,CAAE+rB,sBAAuB,OAEtF89L,EAAgB1+L,SAAW,IAC1BtrB,EAAAA,GAAAA,MAAA,QAAMlwa,MAAO,CAAE83B,SAAU,OAAQ2kG,eAAgB,eAAgB9gG,MAAO,QAASkjB,SAAA,CAAC,SAC9E5hB,WAAWi9lB,EAAgB1+L,UAAUnrB,eAAe,QAAS,CAAE+rB,sBAAuB,WAK9FlsB,EAAAA,GAAAA,MAAA,KAAGlwa,MAAO,CAAE27B,MAAO,OAAQ7D,SAAU,SAAUohG,aAAc,GAAIr6E,SAAA,EAC/DsxX,EAAAA,GAAAA,KAAA,UAAAtxX,SAAQ,gBAAoB,IAAEq7kB,EAAgBhnQ,cAIhDg9C,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAE83B,SAAU,OAAQ6D,MAAO,OAAQu9F,aAAc,IAAKr6E,SAAA,EAChEqxX,EAAAA,GAAAA,MAAA,KAAArxX,SAAA,EAAGsxX,EAAAA,GAAAA,KAAA,UAAAtxX,SAAQ,cAAkB,IAAEq7kB,EAAgB5nN,iBAC/CpC,EAAAA,GAAAA,MAAA,KAAArxX,SAAA,EAAGsxX,EAAAA,GAAAA,KAAA,UAAAtxX,SAAQ,WAAe,IAAEq7kB,EAAgB3nN,cAC5CrC,EAAAA,GAAAA,MAAA,KAAArxX,SAAA,EAAGsxX,EAAAA,GAAAA,KAAA,UAAAtxX,SAAQ,cAAkB,IAAEq7kB,EAAgB7+L,iBAC/CnrB,EAAAA,GAAAA,MAAA,KAAArxX,SAAA,EAAGsxX,EAAAA,GAAAA,KAAA,UAAAtxX,SAAQ,kBAAsB,IAAE,IAAIhuB,KAAKqpmB,EAAgBxsN,aAAaiwI,oCAU7ExtI,EAAAA,GAAAA,KAACv/G,GAAK,CACJr8D,QAASylY,EACT/oS,SAAUA,IAAMgpS,GAA6B,GAC7CzxlB,OAAQ,KACR/B,MAAM,sBAAqBoY,UAE3BsxX,EAAAA,GAAAA,KAAA,KAAAtxX,SAAIy7kB,QAEF,ECrRV,IAlE8B30e,IAAqD,IAApD,UAAEjpB,EAAS,QAAE81N,EAAO,UAAEq5G,EAAS,YAAE8vL,GAAah2e,EAC3E,MAAM1gF,EAAW2hS,MACX,OAAE7tT,GAAWsuT,IAAatiW,GAAUA,EAAMg0C,UACzC0lgB,EAAYm9E,IAAiB3zjB,EAAAA,EAAAA,UAAS,IAEvC7mB,EAAQrI,EAAO/sC,MAAMo1C,GAAUA,EAAMyqZ,YAAcA,KAEzDnkY,EAAAA,EAAAA,YAAU,KACJtmB,GACFw6kB,EAAcx6kB,EAAMq9f,WACtB,GACC,CAACr9f,EAAOyqZ,IA6BX,OACE17B,EAAAA,GAAAA,KAACv/G,GAAK,CACJnqR,MAAM,sBACN8tN,QAAS73H,EACTu0N,SAAUuB,EACVhqT,OAAQ,EACN2nY,EAAAA,GAAAA,KAACtrO,GAAM,CAAch2H,QAAS2jR,EAAQ3zS,SAAC,UAA3B,WACZsxX,EAAAA,GAAAA,KAACtrO,GAAM,CAAcnjM,KAAK,UAAUmtE,QA7BXohI,UAE7B,GAAK47P,GAAc4yG,EAKnB,IAAK,IAADo9E,EAEqC,OAAnB,QAAhBA,SADmB52jB,EAASonY,GAAsB,CAAEC,UAAWmyG,EAAYlyG,QAASV,MAC3E7pY,eAAO,IAAA65jB,OAAA,EAAhBA,EAAkBC,eACpB5xjB,GAAQw6E,QAAQ,qCAChBi3e,IACAnpS,KAEAtoR,GAAQ3kE,MAAM,+BAElB,CAAE,MAAOA,GACP2kE,GAAQ3kE,MAAM,6BAChB,MAfE2kE,GAAQ3kE,MAAM,uCAehB,EAWwEs5C,SAAC,UAAzD,WACZA,UAEFqxX,EAAAA,GAAAA,MAACpN,GAAM,CAACxpa,MAAOmljB,EAAY/iU,SArCHpiP,IAC1BsioB,EAActioB,EAAM,EAoCuC0G,MAAO,CAAErD,MAAO,QAASkiD,SAAA,EAChFsxX,EAAAA,GAAAA,KAACrN,GAAOje,OAAM,CAACvrZ,MAAM,aAAYulD,SAAC,gBAClCsxX,EAAAA,GAAAA,KAACrN,GAAOje,OAAM,CAACvrZ,MAAM,YAAWulD,SAAC,eACjCsxX,EAAAA,GAAAA,KAACrN,GAAOje,OAAM,CAACvrZ,MAAM,UAASulD,SAAC,aAC/BsxX,EAAAA,GAAAA,KAACrN,GAAOje,OAAM,CAACvrZ,MAAM,cAAaulD,SAAC,iBACnCsxX,EAAAA,GAAAA,KAACrN,GAAOje,OAAM,CAACvrZ,MAAM,eAAculD,SAAC,kBACpCsxX,EAAAA,GAAAA,KAACrN,GAAOje,OAAM,CAACvrZ,MAAM,eAAculD,SAAC,kBACpCsxX,EAAAA,GAAAA,KAACrN,GAAOje,OAAM,CAACvrZ,MAAM,YAAWulD,SAAC,eACjCsxX,EAAAA,GAAAA,KAACrN,GAAOje,OAAM,CAACvrZ,MAAM,eAAculD,SAAC,kBACpCsxX,EAAAA,GAAAA,KAACrN,GAAOje,OAAM,CAACvrZ,MAAM,WAAUulD,SAAC,cAChCsxX,EAAAA,GAAAA,KAACrN,GAAOje,OAAM,CAACvrZ,MAAM,YAAWulD,SAAC,kBAE7B,ECjEZ,UADuB,CAAE,KAAQ,CAAE,IAAO,MAAO,MAAS,CAAE,QAAW,gBAAiB,UAAa,SAAW,SAAY,CAAC,CAAE,IAAO,OAAQ,MAAS,CAAE,EAAK,kaAAsa,KAAQ,YAAa,MAAS,YCMlmB,IAAIk9kB,IAAmB,SAA0BxplB,EAAON,GACtD,OAAoBs8K,EAAAA,cAAoBu0D,GAAUnpD,GAAS,CAAC,EAAGpnL,EAAO,CACpEN,IAAKA,EACL06J,KAAMqvb,MAEV,EAOA,UAJ2Bzta,EAAAA,WAAiBwta,MCXpChiS,MAAK,IAAE1wB,KAAK,KAAI0wI,GAElB5d,IAAej3U,GACZA,EAAOx8G,WAAW0F,QAAQ,wBAAyB,KAwI5D,IArIyBmgN,EAAAA,YAAiB,CAAA5oE,EAA2C1zG,KAAS,IAAnD,QAAE06Z,EAAO,WAAEwB,EAAU,gBAAEC,GAAiBzoT,EACjF,MACM4uO,EAAW45E,EAAW,GACtB8tB,EAAc9tB,EAAWx0a,QAAO,CAACuL,EAAKkc,IAAUlc,EAAMkc,EAAMxb,OAAO,GACnEq2lB,EAAYhgK,EAGZhvB,GAAyB,OAAfmB,QAAe,IAAfA,OAAe,EAAfA,EAAkB,KAAM,CAAC,EAEnC8tL,EAAc,IAAIrrmB,KAClB8rc,EAAY,IAAI9rc,MAAa,OAAR0jW,QAAQ,IAARA,OAAQ,EAARA,EAAUooG,YAAa9rc,KAAKw8B,OAEvD,OACE6iX,EAAAA,GAAAA,MAAA,OACEj+X,IAAKA,EACLjyC,MAAO,CACLrD,MAAO,QACPL,OAAQ,SACR6J,gBAAiB,OACjB81B,QAAS,OACTnE,SAAU,OACVE,WAAY,OAEZ6mB,SAAA,EAGFqxX,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEo9B,UAAW,SAAU87F,aAAc,QAASr6E,SAAA,EACxDsxX,EAAAA,GAAAA,KAAC/uS,GAAK,CACJ18H,IAAKi0b,GACL1xG,IAAI,yBACJjnV,MAAO,CAAErD,MAAO,QAASu8H,aAAc,QACvC6sB,SAAS,KAEXoqR,EAAAA,GAAAA,KAACp2E,IAAK,CAACv6K,MAAO,EAAGx/K,MAAO,CAAE27B,MAAO,OAAQ4B,WAAY,OAAQjhC,OAAQ,GAAIuiD,SAAC,4BAG1EsxX,EAAAA,GAAAA,KAAC9mG,IAAI,CAAAxqR,SAAC,0FACNsxX,EAAAA,GAAAA,KAAA,UACAA,EAAAA,GAAAA,KAAC9mG,IAAI,CAAAxqR,SAAC,sEACNsxX,EAAAA,GAAAA,KAAC96J,GAAO,QAEV86J,EAAAA,GAAAA,KAAA,MAAInwa,MAAO,CAACo9B,UAAU,SAAUG,WAAW,QAAQshB,SAAC,aAEpDqxX,EAAAA,GAAAA,MAAA,OACElwa,MAAO,CACLkB,QAAS,OACT+sS,eAAgB,gBAChBiuC,IAAK,OACLhjN,aAAc,QACdr6E,SAAA,EAGFqxX,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEogD,KAAM,EAAGj6C,gBAAiB,UAAW81B,QAAS,OAAQ8/P,aAAc,OAAQl9O,SAAA,EACxFsxX,EAAAA,GAAAA,KAAC9mG,IAAI,CAAC2mI,QAAM,EAAChwc,MAAO,CAAE83B,SAAU,QAAS+mB,SAAC,qBAC1CsxX,EAAAA,GAAAA,KAAA,UACAD,EAAAA,GAAAA,MAAC7mG,IAAI,CAAAxqR,SAAA,CAAC,aAAW8tZ,EAAQjtc,OAAO,OAChCywa,EAAAA,GAAAA,KAAA,UACAD,EAAAA,GAAAA,MAAC7mG,IAAI,CAAAxqR,SAAA,CAAC,eAAa89a,EAAUghF,mBAAmB,QAAS,CAAE3vZ,IAAK,UAAW/9H,MAAO,UAAWD,KAAM,gBAC7GmgZ,EAAAA,GAAAA,KAAA,UACAD,EAAAA,GAAAA,MAAC7mG,IAAI,CAAAxqR,SAAA,CAAC,uBAAqBq9kB,EAAYv+E,mBAAmB,QAAS,CAAE3vZ,IAAK,UAAW/9H,MAAO,UAAWD,KAAM,mBAKrGkgZ,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEogD,KAAM,EAAGj6C,gBAAiB,UAAW81B,QAAS,OAAQ8/P,aAAc,OAAQl9O,SAAA,EACxFsxX,EAAAA,GAAAA,KAAC9mG,IAAI,CAAC2mI,QAAM,EAAChwc,MAAO,CAAE83B,SAAU,QAAS+mB,SAAC,sBAC1CsxX,EAAAA,GAAAA,KAAA,UACAD,EAAAA,GAAAA,MAAC7mG,IAAI,CAAAxqR,SAAA,CAAC,mBAAiBouZ,EAAQC,kBAC/B/8B,EAAAA,GAAAA,KAAA,UACAD,EAAAA,GAAAA,MAAC7mG,IAAI,CAAAxqR,SAAA,CAAC,mBAAiBouZ,EAAQE,2BAC/Bh9B,EAAAA,GAAAA,KAAA,UACAD,EAAAA,GAAAA,MAAC7mG,IAAI,CAAAxqR,SAAA,CAAC,qBAAmBouZ,EAAQA,YACjC98B,EAAAA,GAAAA,KAAA,UACAD,EAAAA,GAAAA,MAAC7mG,IAAI,CAAAxqR,SAAA,CAAC,eAAaouZ,EAAQG,oBAI/Bj9B,EAAAA,GAAAA,KAAC96J,GAAO,KAGR86J,EAAAA,GAAAA,KAACp2E,IAAK,CAACv6K,MAAO,EAAGx/K,MAAO,CAAEk5H,aAAc,OAAQ97F,UAAW,QAASyhB,SAAC,iBACrEqxX,EAAAA,GAAAA,MAAA,SAAOlwa,MAAO,CAAErD,MAAO,OAAQ8jY,eAAgB,WAAYvnQ,aAAc,OAAQphG,SAAU,QAAS+mB,SAAA,EAClGsxX,EAAAA,GAAAA,KAAA,SAAAtxX,UACEqxX,EAAAA,GAAAA,MAAA,MAAIlwa,MAAO,CAAEmG,gBAAiB,UAAWi3B,UAAW,QAASyhB,SAAA,EAC3DsxX,EAAAA,GAAAA,KAAA,MAAInwa,MAAO,CAAEi8B,QAAS,OAAQuzG,OAAQ,kBAAmB3wF,SAAC,UAC1DsxX,EAAAA,GAAAA,KAAA,MAAInwa,MAAO,CAAEi8B,QAAS,OAAQuzG,OAAQ,kBAAmB3wF,SAAC,mBAC1DsxX,EAAAA,GAAAA,KAAA,MAAInwa,MAAO,CAAEi8B,QAAS,OAAQuzG,OAAQ,kBAAmB3wF,SAAC,kBAC1DsxX,EAAAA,GAAAA,KAAA,MAAInwa,MAAO,CAAEi8B,QAAS,OAAQuzG,OAAQ,kBAAmB3wF,SAAC,cAC1DsxX,EAAAA,GAAAA,KAAA,MAAInwa,MAAO,CAAEi8B,QAAS,OAAQuzG,OAAQ,kBAAmB3wF,SAAC,gBAC1DsxX,EAAAA,GAAAA,KAAA,MAAInwa,MAAO,CAAEi8B,QAAS,OAAQuzG,OAAQ,kBAAmB3wF,SAAC,sBAG9DsxX,EAAAA,GAAAA,KAAA,SAAAtxX,SACGsvZ,EAAWpmc,KAAI,CAACq5C,EAAOx2C,KAAK,IAAAuxnB,EAAA,OAC3BjsN,EAAAA,GAAAA,MAAA,MAAgBlwa,MAAO,CAAE66T,aAAc,kBAAmBh8Q,SAAA,EACxDsxX,EAAAA,GAAAA,KAAA,MAAInwa,MAAO,CAAEi8B,QAAS,OAAQuzG,OAAQ,kBAAmB3wF,SAAEj0C,EAAQ,KACnEula,EAAAA,GAAAA,KAAA,MAAInwa,MAAO,CAAEi8B,QAAS,OAAQuzG,OAAQ,kBAAmB3wF,UACvDsxX,EAAAA,GAAAA,KAAC/uS,GAAK,CACJ18H,IAAK,yDAAgD,OAAL08C,QAAK,IAALA,GAAgB,QAAX+6kB,EAAL/6kB,EAAOk7Y,iBAAS,IAAA6/L,OAAX,EAALA,EAAkBtonB,MAAM,MAAM+4E,QAC9Eq6P,IAAI,UACJjnV,MAAO,CAAErD,MAAO,OAAQN,OAAQ,OAAQ0pV,UAAW,SACnDhgM,SAAS,OAGboqR,EAAAA,GAAAA,KAAA,MAAInwa,MAAO,CAAEi8B,QAAS,OAAQuzG,OAAQ,kBAAmB3wF,SAAEuC,EAAM4uX,eACjEG,EAAAA,GAAAA,KAAA,MAAInwa,MAAO,CAAEi8B,QAAS,OAAQuzG,OAAQ,kBAAmB3wF,SAAEuC,EAAMwxU,YACjEs9C,EAAAA,GAAAA,MAAA,MAAIlwa,MAAO,CAAEi8B,QAAS,OAAQuzG,OAAQ,kBAAmB3wF,SAAA,CAAC,SAAEs9Y,IAAY/6Y,EAAM+xU,OAAO,UACrF+8C,EAAAA,GAAAA,MAAA,MAAIlwa,MAAO,CAAEi8B,QAAS,OAAQuzG,OAAQ,kBAAmB3wF,SAAA,CAAC,SAAEs9Y,IAAY/6Y,EAAMxb,OAAO,WAb9Eh7B,EAcJ,UAKXula,EAAAA,GAAAA,KAAC96J,GAAO,KAGR86J,EAAAA,GAAAA,KAACrrY,GAAG,CAACyrW,QAAQ,MAAK1xV,UAChBsxX,EAAAA,GAAAA,KAACpF,GAAG,CAACjvR,KAAM,EAAEj9F,UACXqxX,EAAAA,GAAAA,MAAA,OAAKlwa,MAAO,CAAEo9B,UAAW,QAAStF,SAAU,QAAS+mB,SAAA,EACnDqxX,EAAAA,GAAAA,MAAC7mG,IAAI,CAAAxqR,SAAA,CAAC,mBAAYs9Y,IAAY8/L,GAAW,UACzC9rN,EAAAA,GAAAA,KAAA,UACAD,EAAAA,GAAAA,MAAC7mG,IAAI,CAAAxqR,SAAA,CAAC,mBAAYs9Y,IApHX,KAoHiC,UACxChsB,EAAAA,GAAAA,KAAA,UACAD,EAAAA,GAAAA,MAAC7mG,IAAI,CAAAxqR,SAAA,CAAC,iBAAqE,kCAC3EsxX,EAAAA,GAAAA,KAAA,UACAD,EAAAA,GAAAA,MAAC7mG,IAAI,CAAC2mI,QAAM,EAAChwc,MAAO,CAAE83B,SAAU,QAAS+mB,SAAA,CAAC,uBAAgBs9Y,IAAY8/B,GAAa,kBAIrF,oBCvINmgK,IAAO,CACXA,QAAe,UACXC,IAAmB,KAAMC,IAAe,KAExCC,IAAa,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAE9FC,IAAS,CACL,EAAa,KACb,EAAY,MACZ,EAAY,MACZ,GAAY,IACZ,IAAc,IACd,IAAc,IACd,IAAa,KACb,IAAc,IACd,IAAc,IACd,IAAa,KACb,IAAa,KACb,IAAa,KACb,IAAa,KACb,IAAa,KACb,IAAa,KACb,IAAa,KACb,IAAc,IACd,IAAa,KACb,IAAa,KACb,GAAa,MAGjBC,IAAW,SAASC,IAA+C,GAA3BH,IAAWn9nB,QAAQs9nB,KAAmBJ,IAAeE,IAAM,GAAKE,EAAI,EAGhH,IAAIC,IAAS,SAASD,GAAiBL,IAAmBK,EAAID,IAASC,EAAK,EAC5E,SAASE,MAAaD,IAAO,MAHLF,IAAS,KAGiB,CASlD,SAASI,IAAY5lnB,GAEpB,IADA,IAAI+V,EAAsB,GAClBpxB,EAAI,EAAGA,EAAKqb,EAAKpb,QAAQ,IAAMD,EAAGoxB,EAAEpxB,GAAK+F,OAAOk0C,aAAa5+B,EAAK+F,WAAW,EAAEphB,EAAE,IAAMqb,EAAK+F,WAAW,EAAEphB,IAAI,IACrH,OAAOoxB,EAAErtB,KAAK,GACf,CAEA,IAWIm9nB,IAHAC,IAAW,SAAc13mB,GAA2B,OAAO1jB,OAAOk0C,aAAaxwB,EAAI,EACnF23mB,IAAW,SAAc33mB,GAA2B,OAAO1jB,OAAOk0C,aAAaxwB,EAAI,EAoBvF,IAEI43mB,IAAa,oEACjB,SAASC,IAAc3hnB,GAGrB,IAFA,IAAIyR,EAAI,GACJ4zF,EAAK,EAAGC,EAAK,EAAGE,EAAK,EAAG8C,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGo5gB,EAAK,EAChDvhoB,EAAI,EAAGA,EAAI2f,EAAM1f,QAExBgoH,GADAjD,EAAKrlG,EAAMyB,WAAWphB,OACX,EAEXkoH,GAAW,EAALlD,IAAW,GADjBC,EAAKtlG,EAAMyB,WAAWphB,OACK,EAE3BmoH,GAAW,GAALlD,IAAY,GADlBE,EAAKxlG,EAAMyB,WAAWphB,OACM,EAC5BuhoB,EAAU,GAALp8gB,EACDljG,MAAMgjG,GACRkD,EAAKo5gB,EAAK,GACDt/mB,MAAMkjG,KACfo8gB,EAAK,IAEPnwmB,GAAKiwmB,IAAWhgnB,OAAO4mG,GAAMo5gB,IAAWhgnB,OAAO6mG,GAAMm5gB,IAAWhgnB,OAAO8mG,GAAMk5gB,IAAWhgnB,OAAOkgnB,GAEjG,OAAOnwmB,CACT,CACA,SAASowmB,IAAc7hnB,GACrB,IAAIyR,EAAI,GACJ4zF,EAAK,EAAGC,EAAK,EAAGE,EAAK,EAAW+C,EAAK,EAAGC,EAAK,EAAGo5gB,EAAK,EACzD5hnB,EAAQA,EAAMnN,QAAQ,eAAgB,IACtC,IAAK,IAAIxS,EAAI,EAAGA,EAAI2f,EAAM1f,QAGxB+kH,EAFKq8gB,IAAW79nB,QAAQmc,EAAM0B,OAAOrhB,OAE1B,GADXkoH,EAAKm5gB,IAAW79nB,QAAQmc,EAAM0B,OAAOrhB,QAChB,EACrBoxB,GAAKrrB,OAAOk0C,aAAa+qE,GAEzBC,GAAW,GAALiD,IAAY,GADlBC,EAAKk5gB,IAAW79nB,QAAQmc,EAAM0B,OAAOrhB,QACT,EACjB,KAAPmoH,IACF/2F,GAAKrrB,OAAOk0C,aAAagrE,IAG3BE,GAAW,EAALgD,IAAW,GADjBo5gB,EAAKF,IAAW79nB,QAAQmc,EAAM0B,OAAOrhB,OAE1B,KAAPuhoB,IACFnwmB,GAAKrrB,OAAOk0C,aAAakrE,IAG7B,OAAO/zF,CACT,CACA,IAAIqwmB,IAAwB,WAAa,MAAyB,qBAAX33iB,QAA6C,qBAAZjyE,SAAuD,qBAArBA,QAAQE,YAA8BF,QAAQE,SAASrR,IAAM,CAA3J,GAExBg7nB,IAA4B,WAC/B,GAAqB,qBAAX53iB,OAAwB,CACjC,IAAI63iB,GAAQ73iB,OAAOrgF,KACnB,IAAIk4nB,EAAM,IAAM73iB,OAAOrgF,KAAK,MAAO,OAAS,CAAE,MAAM6iB,KAAKq1mB,GAAO,CAAM,CACtE,OAAOA,EAAO,SAAShkd,EAAKikd,GAAO,OAAQA,EAAO,IAAI93iB,OAAO6zF,EAAKikd,GAAO,IAAI93iB,OAAO6zF,EAAM,EAAI7zF,OAAOrgF,KAAK4C,KAAKy9E,OAChH,CACA,OAAO,WAAY,CACpB,CAPgC,GAUhC,SAAS+3iB,IAAYt+mB,GAEpB,OAAGk+mB,IAAgB33iB,OAAO+mM,MAAQ/mM,OAAO+mM,MAAMttQ,GAAO,IAAIumE,OAAOvmE,GACrC,oBAAd26D,WAA4B,IAAIA,WAAW36D,GAAO,IAAI5jB,MAAM4jB,EAE3E,CAEA,SAASu+mB,IAAev+mB,GAEvB,OAAGk+mB,IAAgB33iB,OAAOC,YAAcD,OAAOC,YAAYxmE,GAAO,IAAIumE,OAAOvmE,GACjD,oBAAd26D,WAA4B,IAAIA,WAAW36D,GAAO,IAAI5jB,MAAM4jB,EAE3E,CAEA,IAAIw+mB,IAAM,SAAatvmB,GACtB,OAAGgvmB,IAAgBC,IAAYjvmB,EAAG,UAC3BA,EAAExa,MAAM,IAAI9L,KAAI,SAASsd,GAA0B,OAAyB,IAAlBA,EAAErI,WAAW,EAAW,GAC1F,EAEA,SAAS4gnB,IAAKvvmB,GACb,GAA0B,qBAAhBguE,YAA6B,OAAOshiB,IAAItvmB,GAElD,IADA,IAAIkrJ,EAAM,IAAIl9E,YAAYhuE,EAAExyB,QAAS4xD,EAAO,IAAIqsB,WAAWy/F,GAClD39K,EAAE,EAAGA,GAAGyyB,EAAExyB,SAAUD,EAAG6xD,EAAK7xD,GAAuB,IAAlByyB,EAAErR,WAAWphB,GACvD,OAAO29K,CACR,CAEA,SAASskd,IAAI5mnB,GACZ,GAAG1b,MAAMqR,QAAQqK,GAAO,OAAOA,EAAKlP,KAAI,SAAS+M,GAAK,OAAOnT,OAAOk0C,aAAa/gC,EAAI,IAAGnV,KAAK,IAC/D,IAA9B,IAAIqtB,EAAsB,GAAYpxB,EAAI,EAAGA,EAAIqb,EAAKpb,SAAUD,EAAGoxB,EAAEpxB,GAAK+F,OAAOk0C,aAAa5+B,EAAKrb,IAAK,OAAOoxB,EAAErtB,KAAK,GACvH,CAgBA,IAAIm+nB,IAAUT,IAAU,SAASU,GAAQ,OAAOr4iB,OAAOxmF,OAAO6+nB,EAAKh2nB,KAAI,SAASwxK,GAAO,OAAO7zF,OAAOvL,SAASo/F,GAAOA,EAAM+jd,IAAY/jd,EAAM,IAAK,EAAI,SAASwkd,GAC9J,GAAyB,qBAAfjkjB,WAA4B,CACrC,IAAIl+E,EAAI,EAAGoioB,EAAS,EACpB,IAAIpioB,EAAI,EAAGA,EAAImioB,EAAKlioB,SAAUD,EAAGoioB,GAAUD,EAAKnioB,GAAGC,OACnD,IAAImxB,EAAI,IAAI8sD,WAAWkkjB,GACnB7+mB,EAAM,EACV,IAAIvjB,EAAI,EAAGoioB,EAAS,EAAGpioB,EAAImioB,EAAKlioB,OAAQmioB,GAAU7+mB,IAAOvjB,EAExD,GADAujB,EAAM4+mB,EAAKnioB,GAAGC,OACXkioB,EAAKnioB,aAAck+E,WAAY9sD,EAAE3oB,IAAI05nB,EAAKnioB,GAAIoioB,OAC5C,IAAqB,iBAAXD,EAAKnioB,GAAkB,KAAM,MACvCoxB,EAAE3oB,IAAI,IAAIy1E,WAAWikjB,EAAKnioB,IAAKoioB,EAAO,CAE5C,OAAOhxmB,CACR,CACA,MAAO,GAAG9tB,OAAO6V,MAAM,GAAIgpnB,EAAKh2nB,KAAI,SAASwxK,GAAO,OAAOh+K,MAAMqR,QAAQ2sK,GAAOA,EAAM,GAAG75K,MAAMjF,KAAK8+K,EAAM,IAC3G,EAkCA,IAAI0kd,IAAO,UAAWC,IAAO,mBAqB7B,SAASC,IAAQ94mB,GAAuD,IAA5B,IAAI2H,EAAI,GAAIpxB,EAAIypB,EAAExpB,OAAO,EAASD,GAAG,GAAGoxB,GAAK3H,EAAEpI,OAAOrhB,KAAM,OAAOoxB,CAAG,CAClH,SAASoxmB,IAAKxumB,EAAUtuB,GAAyB,IAAI8sB,EAAE,GAAGwB,EAAG,OAAOxB,EAAEvyB,QAAQyF,EAAE8sB,EAAEk4E,IAAK,IAAIhlG,EAAE8sB,EAAEvyB,QAAQuyB,CAAE,CACzG,SAASiwmB,IAAKzumB,EAAUtuB,GAAyB,IAAI8sB,EAAE,GAAGwB,EAAE,OAAOxB,EAAEvyB,QAAQyF,EAAE8sB,EAAEk4E,IAAK,IAAIhlG,EAAE8sB,EAAEvyB,QAAQuyB,CAAE,CACxG,SAASkwmB,IAAM1umB,EAAUtuB,GAAyB,IAAI8sB,EAAE,GAAGwB,EAAG,OAAOxB,EAAEvyB,QAAQyF,EAAE8sB,EAAEA,EAAEk4E,IAAK,IAAIhlG,EAAE8sB,EAAEvyB,OAAQ,CAG1G,IAAI0ioB,IAAqBrioB,KAAKylH,IAAI,EAAE,IACpC,SAAS68gB,IAAM5umB,EAAUtuB,GAAyB,OAAGsuB,EAAE2umB,KAAO3umB,GAAG2umB,IAHjE,SAAgB3umB,EAAUtuB,GAAyB,IAAI8sB,EAAE,GAAGlyB,KAAK22B,MAAMjD,GAAI,OAAOxB,EAAEvyB,QAAQyF,EAAE8sB,EAAEk4E,IAAK,IAAIhlG,EAAE8sB,EAAEvyB,QAAQuyB,CAAE,CAGxCqwmB,CAAO7umB,EAAEtuB,GAFxF,SAAgBsuB,EAAUtuB,GAAyB,IAAI8sB,EAAE,GAAGwB,EAAG,OAAOxB,EAAEvyB,QAAQyF,EAAE8sB,EAAEk4E,IAAK,IAAIhlG,EAAE8sB,EAAEvyB,QAAQuyB,CAAE,CAEeswmB,CAAtBxioB,KAAK22B,MAAMjD,GAAoBtuB,EAAI,CAEvI,SAASq9nB,IAActwmB,EAAczyB,GAAyC,OAAZA,EAAIA,GAAK,EAAUyyB,EAAExyB,QAAU,EAAID,GAA8B,OAAR,GAAhByyB,EAAErR,WAAWphB,KAA6C,OAAR,GAAlByyB,EAAErR,WAAWphB,EAAE,KAA6C,OAAR,GAAlByyB,EAAErR,WAAWphB,EAAE,KAA6C,OAAR,GAAlByyB,EAAErR,WAAWphB,EAAE,KAA6C,OAAR,GAAlByyB,EAAErR,WAAWphB,EAAE,KAA6C,MAAR,GAAlByyB,EAAErR,WAAWphB,EAAE,KAA4C,OAAR,GAAlByyB,EAAErR,WAAWphB,EAAE,GAAgB,CACnV,IAAImyJ,IAAiC,CACpC,CAAC,MAAO,UACR,CAAC,MAAO,UACR,CAAC,MAAO,WACR,CAAC,MAAO,aACR,CAAC,MAAO,YACR,CAAC,MAAO,UACR,CAAC,MAAO,aAELn/H,IAAmC,CACtC,CAAC,IAAK,MAAO,WACb,CAAC,IAAK,MAAO,YACb,CAAC,IAAK,MAAO,SACb,CAAC,IAAK,MAAO,SACb,CAAC,IAAK,MAAO,OACb,CAAC,IAAK,MAAO,QACb,CAAC,IAAK,MAAO,QACb,CAAC,IAAK,MAAO,UACb,CAAC,IAAK,MAAO,aACb,CAAC,IAAK,MAAO,WACb,CAAC,IAAK,MAAO,YACb,CAAC,IAAK,MAAO,aAoCd,IAAIgwmB,IAAY,CACf,EAAI,UACJ,EAAI,IACJ,EAAI,OACJ,EAAI,QACJ,EAAI,WACJ,EAAI,KACJ,GAAI,QACJ,GAAI,WACJ,GAAI,QACJ,GAAI,UACJ,GAAI,SACJ,GAAI,WACJ,GAAI,QACJ,GAAI,SACJ,GAAI,aACJ,GAAI,gBACJ,GAAI,OACJ,GAAI,UACJ,GAAI,cACJ,GAAI,iBACJ,GAAI,sBACJ,GAAI,sBACJ,GAAI,2BACJ,GAAI,QACJ,GAAI,YACJ,GAAI,SACJ,GAAI,WACJ,GAAI,IACJ,GAAI,+DAMDC,IAAkB,CACrB,EAAI,GAAI,EAAI,GAAI,EAAI,GAAI,EAAI,GAE5B,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAE7B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAEpC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5B,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAE7B,GAAK,EAAG,GAAI,GACZ,GAAI,GAAI,GAAI,GAAI,GAAI,GACpB,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5B,GAAI,GAAI,GAAI,GAAI,GAAI,GACpB,GAAI,GAAI,GAAI,GAAI,GAAI,GACpB,GAAI,GAKDC,IAAkB,CAErB,EAAI,4BACJ,GAAI,4BAGJ,EAAI,iCACJ,GAAI,iCAGJ,EAAI,kCACJ,GAAI,kCAGJ,EAAI,uCACJ,GAAI,uCAGJ,GAAI,8CAGJ,GAAI,uDAGJ,GAAI,sDAGJ,GAAI,gEAGL,SAASC,IAAS15mB,EAAc8K,EAAc06b,GAM7C,IALA,IAAIm0K,EAAM35mB,EAAI,GAAK,EAAI,EACnBnN,EAAImN,EAAI25mB,EACRC,EAAM,EAAGC,EAAM,EAAG5knB,EAAI,EACtB6knB,EAAM,EAAGC,EAAM,EAAG/umB,EAAI,EACtBpY,EAAI/b,KAAKC,MAAM+b,GACbknnB,EAAMjvmB,IAEX7V,GADArC,EAAI/b,KAAKC,MAAM+b,IACPgnnB,EAAMD,EACd5umB,EAAIpY,EAAImnnB,EAAMD,IACVjnnB,EAAID,EAAK,QACbC,EAAI,GAAKA,EAAID,GACbgnnB,EAAMC,EAAKA,EAAM5knB,EACjB6knB,EAAMC,EAAKA,EAAM/umB,EAGlB,GADGA,EAAIF,IAAQivmB,EAAMjvmB,GAAKE,EAAI8umB,EAAK7knB,EAAI2knB,IAAc5umB,EAAI+umB,EAAK9knB,EAAI4knB,KAC9Dr0K,EAAO,MAAO,CAAC,EAAGm0K,EAAM1knB,EAAG+V,GAC/B,IAAI+hB,EAAIl2C,KAAKC,MAAM6ioB,EAAM1knB,EAAE+V,GAC3B,MAAO,CAAC+hB,EAAG4slB,EAAI1knB,EAAI83B,EAAE/hB,EAAGA,EACzB,CACA,SAASgvmB,IAAoBzvmB,EAAakP,EAAcm7F,GACvD,GAAGrqG,EAAI,SAAWA,EAAI,EAAG,OAAO,KAChC,IAAIG,EAAU,EAAFH,EAAM6jC,EAAOv3D,KAAKC,MAAM,OAASyzB,EAAIG,IAAQkoI,EAAI,EACzDqne,EAAK,GACLjwd,EAAI,CAACl/I,EAAEJ,EAAM1X,EAAEo7C,EAAMnlC,EAAE,OAAOsB,EAAEG,GAAM0jC,EAAKhkC,EAAE,EAAEE,EAAE,EAAEruB,EAAE,EAAEs6D,EAAE,EAAElsC,EAAE,EAAExhB,EAAE,EAAEkkC,EAAE,GAOzE,GANGl2C,KAAK6E,IAAIsuK,EAAI/gJ,GAAK,OAAM+gJ,EAAI/gJ,EAAI,GAChCwQ,GAAQA,EAAKygmB,WAAUxvmB,GAAQ,MAC/Bs/I,EAAI/gJ,EAAI,QACV+gJ,EAAI/gJ,EAAI,EACK,SAARmlC,IAAiB47G,EAAIh3J,EAAIo7C,EAAO,IAAK1jC,IAAQs/I,EAAIl/I,IAE3C,KAATJ,EAAcuvmB,EAAOrlgB,EAAK,CAAC,KAAK,GAAG,IAAM,CAAC,KAAK,EAAE,IAAKg+B,EAAI,OACxD,GAAY,IAATloI,EAAauvmB,EAAOrlgB,EAAK,CAAC,KAAK,EAAE,IAAM,CAAC,KAAK,EAAE,GAAIg+B,EAAI,MAC1D,CACDloI,EAAO,MAAMA,EAEhB,IAAIzuB,EAAI,IAAIuvB,KAAK,KAAM,EAAG,GAC1BvvB,EAAE0zJ,QAAQ1zJ,EAAE+vB,UAAYtB,EAAO,GAC/BuvmB,EAAO,CAACh+nB,EAAE2vB,cAAe3vB,EAAE6vB,WAAW,EAAE7vB,EAAE+vB,WAC1C4mI,EAAM32J,EAAEiwB,SACLxB,EAAO,KAAIkoI,GAAOA,EAAM,GAAK,GAC7Bh+B,IAAIg+B,EAgFT,SAAuBloI,EAAe/C,GAEpCA,EAAE,IAAM,IACR,IAAIirI,EAAMloI,EAAKwB,SACZxB,EAAO,KAAIkoI,GAAOA,EAAM,GAAK,GAChC,OAAOA,CACT,CAtFeune,CAAcl+nB,EAAGg+nB,GAC/B,CAMA,OALAjwd,EAAI5/I,EAAI6vmB,EAAK,GAAIjwd,EAAI1/I,EAAI2vmB,EAAK,GAAIjwd,EAAI/tK,EAAIg+nB,EAAK,GAC/Cjwd,EAAInhK,EAAIulD,EAAO,GAAIA,EAAOv3D,KAAKC,MAAMs3D,EAAO,IAC5C47G,EAAI3/I,EAAI+jC,EAAO,GAAIA,EAAOv3D,KAAKC,MAAMs3D,EAAO,IAC5C47G,EAAIzzG,EAAInI,EACR47G,EAAIj9H,EAAI6lH,EACDoX,CACR,CACA,IAAIowd,IAA2B,IAAI5umB,KAAK,KAAM,GAAI,GAAI,EAAG,EAAG,GACxD6umB,IAA2BD,IAAYhtmB,UACvCktmB,IAA2B,IAAI9umB,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAC1D,SAAS+umB,IAAchwmB,EAAY2vmB,GAClC,IAAIM,EAAqBjwmB,EAAE6C,UAG3B,OAFG8smB,EAAUM,GAAS,UACdjwmB,GAAK+vmB,MAAaE,GAAS,QAC3BA,GAASH,IAAoG,KAAxE9vmB,EAAEoD,oBAAmCysmB,IAAYzsmB,uBAAiC,KAChI,CAIA,SAAS8smB,IAAkB9ymB,GAC1B,OAA2B,GAAnBA,EAAE5tB,QAAQ,KAAc4tB,EAAIA,EAAE5e,QAAQ,2BAA4B,KAC3E,CAsBA,SAAS2xnB,IAAgBnwmB,GACxB,IAAuD5C,EAAnD7R,EAAIjf,KAAKC,MAAMD,KAAKqrD,IAAIrrD,KAAK6E,IAAI6uB,IAAI1zB,KAAK8joB,QAO9C,OALuBhzmB,EAApB7R,IAAM,GAAKA,IAAM,EAAOyU,EAAE0jM,YAAY,GAAGn4M,GACpCjf,KAAK6E,IAAIoa,IAAM,EAjBxB,SAAuByU,GACtB,IAAI1oB,EAAK0oB,EAAE,EAAE,GAAG,GACZ5C,EAAI8ymB,IAAkBlwmB,EAAE6iJ,QAAQ,KAAM,OAAGzlJ,EAAEnxB,QAAUqL,IACzD8lB,EAAI4C,EAAE0jM,YAAY,KAAUz3N,QAAUqL,EAD6B8lB,EAE5D4C,EAAEkjM,cAAc,EACxB,CAY+Bmta,CAAcrwmB,GAC9B,KAANzU,EAAcyU,EAAE6iJ,QAAQ,IAAI//B,OAAO,EAAE,IAV9C,SAAuB9iH,GACtB,IAAI5C,EAAI8ymB,IAAkBlwmB,EAAE6iJ,QAAQ,KACpC,OAAQzlJ,EAAEnxB,QAAU+zB,EAAE,EAAE,GAAG,KAAa,MAAN5C,GAAmB,OAANA,EAAc4C,EAAE0jM,YAAY,GAAKtmM,CACjF,CAQUkzmB,CAActwmB,GAEhBkwmB,IA3BR,SAA2B9ymB,GAC1B,OAAsB,GAAnBA,EAAE5tB,QAAQ,KAAmB4tB,EACzBA,EAAE5e,QAAQ,8BAA8B,OAAOA,QAAQ,eAAe,QAC9E,CAwB0B+xnB,CAAkBnzmB,EAAEY,eAC9C,CAaA,SAASwymB,IAAYxwmB,EAAWkP,GAC/B,cAAclP,GACb,IAAK,SAAU,OAAOA,EACtB,IAAK,UAAW,OAAOA,EAAI,OAAS,QACpC,IAAK,SAAU,OAAU,EAAFA,KAASA,EAAIA,EAAElnB,SAAS,IAAMq3nB,IAAgBnwmB,GACrE,IAAK,YAAa,MAAO,GACzB,IAAK,SACJ,GAAQ,MAALA,EAAW,MAAO,GACrB,GAAGA,aAAaiB,KAAM,OAAOwvmB,IAAW,GAAIT,IAAchwmB,EAAGkP,GAAQA,EAAKygmB,UAAWzgmB,GAEvF,MAAM,IAAI1gC,MAAM,wCAA0CwxB,EAC3D,CAUA,SAAS0wmB,IAAe5+nB,EAAiB6+nB,EAAgBl9nB,EAAKm9nB,GAC7D,IAAiCnxd,EAA7BriJ,EAAE,GAAImgI,EAAG,EAAG+gC,EAAG,EAAGz+J,EAAIpsB,EAAIosB,EAAQgxmB,EAAO,EAC7C,OAAO/+nB,GACN,KAAK,GACJ+tB,EAAIpsB,EAAIosB,EAAI,IAEb,KAAK,IACL,OAAO8wmB,EAAI1koB,QACV,KAAK,EAAG,KAAK,EAAGwzK,EAAM5/I,EAAI,IAAKgxmB,EAAO,EAAG,MACzC,QAASpxd,EAAM5/I,EAAI,IAAOgxmB,EAAO,EAChC,MACF,KAAK,IACL,OAAOF,EAAI1koB,QACV,KAAK,EAAG,KAAK,EAAGwzK,EAAMhsK,EAAIssB,EAAG8wmB,EAAOF,EAAI1koB,OAAQ,MAChD,KAAK,EAAG,OAAO+yB,IAAOvrB,EAAIssB,EAAE,GAAG,GAC/B,KAAK,EAAG,OAAOf,IAAOvrB,EAAIssB,EAAE,GAAG,GAC/B,QAAS,OAAOf,IAAOvrB,EAAIssB,EAAE,GAAG,GAC/B,MACF,KAAK,IACL,OAAO4wmB,EAAI1koB,QACV,KAAK,EAAG,KAAK,EAAGwzK,EAAMhsK,EAAI/B,EAAGm/nB,EAAOF,EAAI1koB,OAAQ,MAChD,KAAK,EAAG,OAAOkyJ,IAAK1qJ,EAAI+uC,GAAG,GAC3B,QAAS,OAAO27G,IAAK1qJ,EAAI+uC,GAAG,GAC3B,MACF,KAAK,IACL,OAAOmulB,EAAI1koB,QACV,KAAK,EAAG,KAAK,EAAGwzK,EAAM,GAAGhsK,EAAIu4D,EAAE,IAAI,GAAI6kkB,EAAOF,EAAI1koB,OAAQ,MAC1D,QAAS,KAAM,oBAAsB0koB,EACpC,MACF,KAAK,GACL,OAAOA,EAAI1koB,QACV,KAAK,EAAG,KAAK,EAAGwzK,EAAMhsK,EAAIu4D,EAAG6kkB,EAAOF,EAAI1koB,OAAQ,MAChD,QAAS,KAAM,oBAAsB0koB,EACpC,MACF,KAAK,GACL,OAAOA,EAAI1koB,QACV,KAAK,EAAG,KAAK,EAAGwzK,EAAMhsK,EAAIqsB,EAAG+wmB,EAAOF,EAAI1koB,OAAQ,MAChD,QAAS,KAAM,sBAAwB0koB,EACtC,MACF,KAAK,IACJ,GAAU,KAAPA,GAAqB,MAAPA,GAAsB,MAAPA,GAAsB,OAAPA,GAAuB,QAAPA,EAAe,KAAM,sBAAwBA,EAC5G,OAAa,IAAVl9nB,EAAIirB,GAAmB,KAAPiymB,GAAqB,MAAPA,GAEpBryc,EAAVsyc,GAAO,EAAgB,IAARA,EAAY,IAAO,IACnB,IAARA,EAAY,GAAK,GAC3Brze,EAAKjxJ,KAAK22B,MAAOq7J,GAAK7qL,EAAI6K,EAAI7K,EAAIirB,MACzB,GAAG4/J,IAAI/gC,EAAK,GACV,MAARoze,EAA2B,IAAPpze,EAAW,IAAM,GAAGA,EAAG+gC,GAC9ClhK,EAAIoxmB,IAAKjxe,EAAG,EAAIqze,GACL,OAARD,EAAqBvzmB,EAAE0lH,OAAO,EAAE,GAC5B,IAAM1lH,EAAE0lH,OAAO,EAAE6tf,EAAI1koB,OAAO,KATmBuioB,IAAK/6nB,EAAI6K,EAAGqynB,EAAI1koB,QAUvE,KAAK,GACL,OAAO0koB,GACN,IAAK,MAAO,IAAK,OAAQlxd,EAAY,GAANhsK,EAAI8sB,EAAK9sB,EAAIu4D,EAAG,MAC/C,IAAK,MAAO,IAAK,OAAQyzG,EAAuB,IAAV,GAANhsK,EAAI8sB,EAAK9sB,EAAIu4D,GAAMv4D,EAAIqsB,EAAG,MAC1D,IAAK,MAAO,IAAK,OAAQ2/I,EAAkC,IAAV,IAAV,GAANhsK,EAAI8sB,EAAK9sB,EAAIu4D,GAAMv4D,EAAIqsB,GAAMxzB,KAAK22B,MAAMxvB,EAAI6K,EAAE7K,EAAIirB,GAAI,MACvF,QAAS,KAAM,uBAAyBiymB,EACvCE,EAAsB,IAAfF,EAAI1koB,OAAe,EAAI,EAAG,MACnC,KAAK,IACJwzK,EAAM5/I,EAAGgxmB,EAAO,EAGlB,OADaA,EAAO,EAAIrC,IAAK/ud,EAAKoxd,GAAQ,EAE3C,CAKA,SAASC,IAASrymB,GAEjB,GAAGA,EAAExyB,QADG,EACU,OAAOwyB,EAEzB,IADA,IAAI9V,EAAK8V,EAAExyB,OAFH,EAEgBmxB,EAAIqB,EAAEqkH,OAAO,EAAEn6H,GACjCA,GAAG8V,EAAExyB,OAAQ0c,GAHX,EAGiByU,IAAIA,EAAEnxB,OAAS,EAAI,IAAM,IAAMwyB,EAAEqkH,OAAOn6H,EAHzD,GAIR,OAAOyU,CACR,CACA,IAAI2zmB,IAAO,KAYX,SAASC,IAAcL,EAAgBl9nB,GACtC,IAAI2pB,EACAysM,EAAM8ma,EAAInhoB,QAAQ,KAAOmhoB,EAAInhoB,QAAQ,KAAO,EAChD,GAAGmhoB,EAAIjtnB,MAAM,eAAgB,CAC5B,GAAU,GAAPjQ,EAAU,MAAO,SACf,GAAGA,EAAM,EAAG,MAAO,IAAMu9nB,IAAcL,GAAMl9nB,GAClD,IAAIikK,EAASi5d,EAAInhoB,QAAQ,MAAqB,IAAZkoK,IAAeA,EAAOi5d,EAAInhoB,QAAQ,MACpE,IAAI0zD,EAAK52D,KAAKC,MAAMD,KAAKqrD,IAAIlkD,GAAKnH,KAAK8joB,QAAQ14d,EAG/C,GAFGx0G,EAAK,IAAGA,GAAMw0G,IAEM,KADvBt6I,GAAK3pB,EAAInH,KAAKylH,IAAI,GAAG7uD,IAAKwgK,YAAYmG,EAAI,GAAGnyD,EAAOx0G,GAAIw0G,IACnDloK,QAAQ,KAAa,CACzB,IAAIyhoB,EAAQ3koB,KAAKC,MAAMD,KAAKqrD,IAAIlkD,GAAKnH,KAAK8joB,QAG1C,KAFuB,IAApBhzmB,EAAE5tB,QAAQ,KAAa4tB,EAAIA,EAAE/P,OAAO,GAAK,IAAM+P,EAAE0lH,OAAO,GAAK,MAAQmuf,EAAQ7zmB,EAAEnxB,OAAOi3D,GACpF9lC,GAAK,MAAQ6zmB,EAAQ/tkB,GACF,OAAlB9lC,EAAE0lH,OAAO,EAAE,IAEhB1lH,GADAA,EAAIA,EAAE/P,OAAO,GAAK+P,EAAE0lH,OAAO,EAAE40B,GAAU,IAAMt6I,EAAE0lH,OAAO,EAAE40B,IAClDl5J,QAAQ,aAAa,MAAMA,QAAQ,QAAQ,MAElD4e,EAAIA,EAAE5e,QAAQ,MAAM,IACrB,CACA4e,EAAIA,EAAE5e,QAAQ,4BAA2B,SAAS0ynB,EAAGC,EAAGC,EAAGC,GAAM,OAAOF,EAAKC,EAAKC,EAAGvuf,OAAO,GAAG40B,EAAOx0G,GAAIw0G,GAAU,IAAM25d,EAAGvuf,OAAO5/E,GAAM,GAAK,GAChJ,MAAO9lC,EAAI3pB,EAAIyvN,cAAc2G,GAG7B,OAFG8ma,EAAIjtnB,MAAM,WAAa0Z,EAAE1Z,MAAM,cAAa0Z,EAAIA,EAAE0lH,OAAO,EAAE1lH,EAAEnxB,OAAO,GAAK,IAAMmxB,EAAE/P,OAAO+P,EAAEnxB,OAAO,IACjG0koB,EAAIjtnB,MAAM,QAAU0Z,EAAE1Z,MAAM,SAAQ0Z,EAAIA,EAAE5e,QAAQ,MAAM,MACpD4e,EAAE5e,QAAQ,IAAI,IACtB,CACA,IAAI8ynB,IAAQ,yBASZ,IAAIC,IAAO,iBACPC,IAAa,WACbC,IAAQ,sBACZ,SAASC,IAAM5zlB,GAEd,IADA,IAAYsY,EAARh5B,EAAI,GACApxB,EAAI,EAAGA,GAAK8xC,EAAI7xC,SAAUD,EAAG,OAAQoqD,EAAGtY,EAAI1wB,WAAWphB,IAC9D,KAAK,GAAI,MACT,KAAK,GAAIoxB,GAAI,IAAK,MAClB,KAAK,GAAIA,GAAI,IAAK,MAClB,QAASA,GAAIrrB,OAAOk0C,aAAamQ,GAElC,OAAOh5B,CACR,CACA,SAASu0mB,IAAIl+nB,EAAgB/B,GAA2B,IAAIypD,EAAK7uD,KAAKylH,IAAI,GAAGrgH,GAAI,MAAO,GAAIpF,KAAK22B,MAAMxvB,EAAM0nD,GAAIA,CAAK,CACtH,SAASy2kB,IAAIn+nB,EAAgB/B,GAC5B,IAAImgoB,EAAQp+nB,EAAMnH,KAAKC,MAAMkH,GAAM0nD,EAAK7uD,KAAKylH,IAAI,GAAGrgH,GACpD,OAAIA,GAAK,GAAKpF,KAAK22B,MAAM4umB,EAAQ12kB,IAAKlvD,OAAe,EAC9CK,KAAK22B,MAAM4umB,EAAQ12kB,EAC3B,CAWA,SAAS22kB,IAAchgoB,EAAiB6+nB,EAAgBl9nB,GACvD,GAA0B,KAAvB3B,EAAKsb,WAAW,KAAcujnB,EAAIjtnB,MAAM8tnB,KAAa,CACvD,IAAIO,EAAOpB,EAAInynB,QAAQ,OAAO,IAAIA,QAAQ,MAAM,IAAIA,QAAQ,KAAK,IACjE,OAAG/K,GAAO,EAAUq+nB,IAAc,IAAKC,EAAMt+nB,GACtC,IAAMq+nB,IAAc,IAAKC,GAAOt+nB,GAAO,GAC/C,CACA,GAAsC,KAAnCk9nB,EAAIvjnB,WAAWujnB,EAAI1koB,OAAS,GAAW,OA5E3C,SAAsB6F,EAAiB6+nB,EAAgBl9nB,GAEtD,IADA,IAAIo2N,EAAM8ma,EAAI1koB,OAAS,EACS,KAA1B0koB,EAAIvjnB,WAAWy8M,EAAI,MAAaA,EACtC,OAAOmoa,IAAUlgoB,EAAM6+nB,EAAI7tf,OAAO,EAAE+mF,GAAMp2N,EAAMnH,KAAKylH,IAAI,GAAG,GAAG4+gB,EAAI1koB,OAAO49N,IAC3E,CAwEkDooa,CAAangoB,EAAM6+nB,EAAKl9nB,GACzE,IAAyB,IAAtBk9nB,EAAInhoB,QAAQ,KAAa,OAlF7B,SAAuBsC,EAAiB6+nB,EAAgBl9nB,GACvD,IAAIy+nB,EAAOvB,EAAInynB,QAAQuynB,IAAK,IAAK5ta,EAAMwta,EAAI1koB,OAASimoB,EAAKjmoB,OACzD,OAAO+loB,IAAUlgoB,EAAMogoB,EAAMz+nB,EAAMnH,KAAKylH,IAAI,GAAG,EAAEoxG,IAAQzsH,IAAK,IAAIysH,EACnE,CA+EoCgva,CAAcrgoB,EAAM6+nB,EAAKl9nB,GAC5D,IAAyB,IAAtBk9nB,EAAInhoB,QAAQ,KAAa,OAAOwhoB,IAAcL,EAAKl9nB,GACtD,GAAyB,KAAtBk9nB,EAAIvjnB,WAAW,GAAW,MAAO,IAAI0knB,IAAchgoB,EAAK6+nB,EAAI7tf,OAAsB,KAAf6tf,EAAItjnB,OAAO,GAAQ,EAAE,GAAG5Z,GAC9F,IAAI2pB,EACAhzB,EAAsB4sE,EAAIzO,EAAI6pkB,EAAO9loB,KAAK6E,IAAIsC,GAAM69G,EAAO79G,EAAM,EAAI,IAAM,GAC/E,GAAGk9nB,EAAIjtnB,MAAM,SAAU,OAAO4tG,EAAOs9gB,IAAMwD,EAAKzB,EAAI1koB,QACpD,GAAG0koB,EAAIjtnB,MAAM,WAEZ,MAD2B,OAA3B0Z,EAAIwxmB,IAAMn7nB,EAAI,MAAkB2pB,EAAI,IAC7BA,EAAEnxB,OAAS0koB,EAAI1koB,OAASmxB,EAAIs0mB,IAAMf,EAAI7tf,OAAO,EAAE6tf,EAAI1koB,OAAOmxB,EAAEnxB,SAAWmxB,EAE/E,GAAIhzB,EAAIumoB,EAAIjtnB,MAAM4tnB,KAAS,OAtD5B,SAAsBlnoB,EAAqBgooB,EAAiB9ghB,GAC3D,IAAI+ghB,EAAM7gnB,SAASpnB,EAAE,GAAG,IAAKkgM,EAAKh+L,KAAK22B,MAAMmvmB,EAAOC,GAAMz/kB,EAAOtmD,KAAKC,MAAM+9L,EAAG+nc,GAC3EC,EAAOhoc,EAAK13I,EAAKy/kB,EAAME,EAAMF,EACjC,OAAO/ghB,GAAiB,IAAT1+D,EAAa,GAAK,GAAGA,GAAQ,KAAe,IAAR0/kB,EAAY57hB,IAAK,IAAKtsG,EAAE,GAAG6B,OAAS,EAAI7B,EAAE,GAAG6B,QAAUwioB,IAAK6D,EAAIlooB,EAAE,GAAG6B,QAAU7B,EAAE,GAAK,IAAMA,EAAE,GAAKokoB,IAAK+D,EAAInooB,EAAE,GAAG6B,QACrK,CAkDmCumoB,CAAapooB,EAAGgooB,EAAM9ghB,GACxD,GAAGq/gB,EAAIjtnB,MAAM,UAAW,OAAO4tG,EAAOs9gB,IAAMwD,EAAKzB,EAAI1koB,OAAS0koB,EAAInhoB,QAAQ,MAC1E,GAAIpF,EAAIumoB,EAAIjtnB,MAAM6tnB,KAEjB,OADAn0mB,EAAIu0mB,IAAIl+nB,EAAKrJ,EAAE,GAAG6B,QAAQuS,QAAQ,aAAa,MAAMkznB,IAAMtnoB,EAAE,KAAKoU,QAAQ,MAAM,IAAIkznB,IAAMtnoB,EAAE,KAAKoU,QAAQ,YAAW,SAAS0ynB,EAAIC,GAAM,MAAO,IAAMA,EAAKz6hB,IAAK,IAAKg7hB,IAAatnoB,EAAe,IAAI6B,OAAOkloB,EAAGlloB,OAAS,KACxL,IAAvB0koB,EAAInhoB,QAAQ,MAAe4tB,EAAIA,EAAE5e,QAAQ,OAAO,KAGxD,GADAmynB,EAAMA,EAAInynB,QAAQ,YAAa,MAC3BpU,EAAIumoB,EAAIjtnB,MAAM,gBACjB,OAAO4tG,EAAOqghB,IAAIS,EAAMhooB,EAAE,GAAG6B,QAAQuS,QAAQ,kBAAkB,OAAOA,QAAQ,YAAY,OAAOA,QAAQ,OAAOpU,EAAE,GAAG6B,OAAO,KAAK,KAElI,GAAI7B,EAAIumoB,EAAIjtnB,MAAM,qBAAuB,OAAO4tG,EAAOw/gB,IAASlC,IAAMwD,EAAK,IAC3E,GAAIhooB,EAAIumoB,EAAIjtnB,MAAM,qBACjB,OAAOjQ,EAAM,EAAI,IAAMq+nB,IAAchgoB,EAAM6+nB,GAAMl9nB,GAAOq9nB,IAAS,IAAIxkoB,KAAKC,MAAMkH,GAvClF,SAAeA,EAAgB/B,GAC9B,OAAIA,GAAK,GAAKpF,KAAK22B,OAAOxvB,EAAInH,KAAKC,MAAMkH,IAAMnH,KAAKylH,IAAI,GAAGrgH,KAAKzF,OACxD,EAED,CACR,CAkCyF40N,CAAMptN,EAAKrJ,EAAE,GAAG6B,UAAY,IAAMuioB,IAAKoD,IAAIn+nB,EAAKrJ,EAAE,GAAG6B,QAAQ7B,EAAE,GAAG6B,QAE1J,GAAI7B,EAAIumoB,EAAIjtnB,MAAM,YAAc,OAAOounB,IAAchgoB,EAAK6+nB,EAAInynB,QAAQ,SAAS,IAAI/K,GACnF,GAAIrJ,EAAIumoB,EAAIjtnB,MAAM,2BAGjB,OAFA0Z,EAAImxmB,IAAQuD,IAAchgoB,EAAM6+nB,EAAInynB,QAAQ,SAAS,IAAK/K,IAC1DujE,EAAK,EACEu3jB,IAAQA,IAAQoC,EAAInynB,QAAQ,MAAM,KAAKA,QAAQ,SAAQ,SAASiX,GAAG,OAAOuhD,EAAG55C,EAAEnxB,OAAOmxB,EAAE/P,OAAO2pD,KAAU,MAAJvhD,EAAQ,IAAI,EAAG,KAE5H,GAAGk7mB,EAAIjtnB,MAAM+tnB,KAEZ,MAAO,KADPr0mB,EAAI00mB,IAAchgoB,EAAM,aAAc2B,IACvBqvI,OAAO,EAAE,GAAK,KAAO1lH,EAAE0lH,OAAO,EAAG,GAAK,IAAM1lH,EAAE0lH,OAAO,GAErE,IAAI/3F,EAAK,GACT,GAAI3gD,EAAIumoB,EAAIjtnB,MAAM,+BAUjB,OATAszD,EAAK1qE,KAAKyhB,IAAiB3jB,EAAE,GAAU6B,OAAO,GAC9Cs8D,EAAK4mkB,IAASiD,EAAM9loB,KAAKylH,IAAI,GAAG/6C,GAAI,GAAG,GACvC55C,EAAI,GAAKk0F,EAEoB,MAD7BvmE,EAAKinlB,IAAU,IAAkB5noB,EAAE,GAAWm+D,EAAG,KAC3Cl7C,OAAO09B,EAAG9+C,OAAO,KAAW8+C,EAAKA,EAAG+3F,OAAO,EAAE/3F,EAAG9+C,OAAO,GAAK,KAClEmxB,GAAK2tB,EAAkB3gD,EAAE,GAAY,IAAmBA,EAAE,IAC1D2gD,EAAK2jlB,IAAMnmkB,EAAG,GAAGyO,IACX/qE,OAAS7B,EAAE,GAAG6B,SAAQ8+C,EAAK2mlB,IAAMtnoB,EAAE,GAAG04I,OAAO14I,EAAE,GAAG6B,OAAO8+C,EAAG9+C,SAAW8+C,GAC7E3tB,GAAK2tB,EAGN,GAAI3gD,EAAIumoB,EAAIjtnB,MAAM,iCAGjB,OAFAszD,EAAK1qE,KAAKyhB,IAAIzhB,KAAKwhB,IAAI1jB,EAAE,GAAG6B,OAAQ7B,EAAE,GAAG6B,QAAQ,GAE1CqlH,IADP/oD,EAAK4mkB,IAASiD,EAAM9loB,KAAKylH,IAAI,GAAG/6C,GAAI,GAAG,IACrB,KAAKzO,EAAG,GAAK,GAAK,MAAQ,KAAOA,EAAG,GAAKkmkB,IAAKlmkB,EAAG,GAAGyO,GAAM5sE,EAAE,GAAK,IAAMA,EAAE,GAAKskoB,IAAMnmkB,EAAG,GAAGyO,GAAK0/B,IAAK,IAAK,EAAE1/B,EAAG,EAAI5sE,EAAE,GAAG6B,OAAS7B,EAAE,GAAG6B,SAExJ,GAAI7B,EAAIumoB,EAAIjtnB,MAAM,YAEjB,OADA0Z,EAAIwxmB,IAAMn7nB,EAAK,GACZk9nB,EAAI1koB,QAAUmxB,EAAEnxB,OAAemxB,EAC3Bs0mB,IAAMf,EAAI7tf,OAAO,EAAE6tf,EAAI1koB,OAAOmxB,EAAEnxB,SAAWmxB,EAEnD,GAAIhzB,EAAIumoB,EAAIjtnB,MAAM,uBAAyB,CAC1C0Z,EAAI,GAAK3pB,EAAIovK,QAAQv2K,KAAKyhB,IAAI3jB,EAAE,GAAG6B,OAAO,KAAKuS,QAAQ,YAAY,MACnEw4D,EAAK55C,EAAE5tB,QAAQ,KACf,IAAIijoB,EAAO9B,EAAInhoB,QAAQ,KAAOwnE,EAAI07jB,EAAO/B,EAAI1koB,OAASmxB,EAAEnxB,OAASwmoB,EACjE,OAAOf,IAAMf,EAAI7tf,OAAO,EAAE2vf,GAAQr1mB,EAAIuzmB,EAAI7tf,OAAO6tf,EAAI1koB,OAAOymoB,GAC7D,CACA,GAAItooB,EAAIumoB,EAAIjtnB,MAAM,sBAEjB,OADAszD,EAAK46jB,IAAIn+nB,EAAKrJ,EAAE,GAAG6B,QACZwH,EAAM,EAAI,IAAMq+nB,IAAchgoB,EAAM6+nB,GAAMl9nB,GAAOq9nB,IA5E1D,SAAar9nB,GACZ,OAAGA,EAAM,YAAcA,GAAO,WAAmB,IAAIA,GAAO,EAAS,EAAJA,EAAUA,EAAI,EAAE,GAC1E,GAAGnH,KAAKC,MAAMkH,EACtB,CAyEmEk/nB,CAAIl/nB,IAAM+K,QAAQ,aAAa,OAAOA,QAAQ,SAAQ,SAAS0ynB,GAAM,MAAO,OAASA,EAAGjloB,OAAS,EAAIuioB,IAAK,EAAE,EAAE0C,EAAGjloB,QAAU,IAAMiloB,CAAI,IAAK,IAAM1C,IAAKx3jB,EAAG5sE,EAAE,GAAG6B,QAE/N,OAAO0koB,GACN,IAAK,aAAc,OAAOmB,IAAchgoB,EAAM,WAAY2B,GAC1D,IAAK,UACL,IAAK,SACL,IAAK,QAAS,IAAIgiB,EAAIq7mB,IAASlC,IAAMwD,EAAK,IAAK,MAAa,MAAN38mB,EAAY67F,EAAO77F,EAAI,GAC7E,IAAK,aAAc,OAAOq8mB,IAAchgoB,EAAM,aAAa2B,GAAK+K,QAAQ,OAAO,KAC/E,IAAK,WAAY,OAAOsznB,IAAchgoB,EAAM,WAAW2B,GAAK+K,QAAQ,OAAO,KAG5E,MAAM,IAAIhQ,MAAM,uBAAyBmioB,EAAM,IAChD,CAUA,SAASiC,IAAejC,EAAgBl9nB,GACvC,IAAI2pB,EACAysM,EAAM8ma,EAAInhoB,QAAQ,KAAOmhoB,EAAInhoB,QAAQ,KAAO,EAChD,GAAGmhoB,EAAIjtnB,MAAM,eAAgB,CAC5B,GAAU,GAAPjQ,EAAU,MAAO,SACf,GAAGA,EAAM,EAAG,MAAO,IAAMm/nB,IAAejC,GAAMl9nB,GACnD,IAAIikK,EAASi5d,EAAInhoB,QAAQ,MAAqB,IAAZkoK,IAAeA,EAAOi5d,EAAInhoB,QAAQ,MACpE,IAAI0zD,EAAK52D,KAAKC,MAAMD,KAAKqrD,IAAIlkD,GAAKnH,KAAK8joB,QAAQ14d,EAG/C,GAFGx0G,EAAK,IAAGA,GAAMw0G,KACjBt6I,GAAK3pB,EAAInH,KAAKylH,IAAI,GAAG7uD,IAAKwgK,YAAYmG,EAAI,GAAGnyD,EAAOx0G,GAAIw0G,IAClDh0J,MAAM,QAAS,CACpB,IAAIutnB,EAAQ3koB,KAAKC,MAAMD,KAAKqrD,IAAIlkD,GAAKnH,KAAK8joB,SACnB,IAApBhzmB,EAAE5tB,QAAQ,KAAa4tB,EAAIA,EAAE/P,OAAO,GAAK,IAAM+P,EAAE0lH,OAAO,GAAK,MAAQmuf,EAAQ7zmB,EAAEnxB,OAAOi3D,GACpF9lC,GAAK,MAAQ6zmB,EAAQ/tkB,GAC1B9lC,EAAIA,EAAE5e,QAAQ,MAAM,IACrB,CACA4e,EAAIA,EAAE5e,QAAQ,4BAA2B,SAAS0ynB,EAAGC,EAAGC,EAAGC,GAAM,OAAOF,EAAKC,EAAKC,EAAGvuf,OAAO,GAAG40B,EAAOx0G,GAAIw0G,GAAU,IAAM25d,EAAGvuf,OAAO5/E,GAAM,GAAK,GAChJ,MAAO9lC,EAAI3pB,EAAIyvN,cAAc2G,GAG7B,OAFG8ma,EAAIjtnB,MAAM,WAAa0Z,EAAE1Z,MAAM,cAAa0Z,EAAIA,EAAE0lH,OAAO,EAAE1lH,EAAEnxB,OAAO,GAAK,IAAMmxB,EAAE/P,OAAO+P,EAAEnxB,OAAO,IACjG0koB,EAAIjtnB,MAAM,QAAU0Z,EAAE1Z,MAAM,SAAQ0Z,EAAIA,EAAE5e,QAAQ,MAAM,MACpD4e,EAAE5e,QAAQ,IAAI,IACtB,CACA,SAASq0nB,IAAc/goB,EAAiB6+nB,EAAgBl9nB,GACvD,GAA0B,KAAvB3B,EAAKsb,WAAW,KAAcujnB,EAAIjtnB,MAAM8tnB,KAAa,CACvD,IAAIO,EAAOpB,EAAInynB,QAAQ,OAAO,IAAIA,QAAQ,MAAM,IAAIA,QAAQ,KAAK,IACjE,OAAG/K,GAAO,EAAUo/nB,IAAc,IAAKd,EAAMt+nB,GACtC,IAAMo/nB,IAAc,IAAKd,GAAOt+nB,GAAO,GAC/C,CACA,GAAsC,KAAnCk9nB,EAAIvjnB,WAAWujnB,EAAI1koB,OAAS,GAAW,OArC3C,SAAuB6F,EAAiB6+nB,EAAgBl9nB,GAEvD,IADA,IAAIo2N,EAAM8ma,EAAI1koB,OAAS,EACS,KAA1B0koB,EAAIvjnB,WAAWy8M,EAAI,MAAaA,EACtC,OAAOmoa,IAAUlgoB,EAAM6+nB,EAAI7tf,OAAO,EAAE+mF,GAAMp2N,EAAMnH,KAAKylH,IAAI,GAAG,GAAG4+gB,EAAI1koB,OAAO49N,IAC3E,CAiCkDipa,CAAchhoB,EAAM6+nB,EAAKl9nB,GAC1E,IAAyB,IAAtBk9nB,EAAInhoB,QAAQ,KAAa,OAjC7B,SAAwBsC,EAAiB6+nB,EAAgBl9nB,GACxD,IAAIy+nB,EAAOvB,EAAInynB,QAAQuynB,IAAK,IAAK5ta,EAAMwta,EAAI1koB,OAASimoB,EAAKjmoB,OACzD,OAAO+loB,IAAUlgoB,EAAMogoB,EAAMz+nB,EAAMnH,KAAKylH,IAAI,GAAG,EAAEoxG,IAAQzsH,IAAK,IAAIysH,EACnE,CA8BoC4va,CAAejhoB,EAAM6+nB,EAAKl9nB,GAC7D,IAAyB,IAAtBk9nB,EAAInhoB,QAAQ,KAAa,OAAOojoB,IAAejC,EAAKl9nB,GACvD,GAAyB,KAAtBk9nB,EAAIvjnB,WAAW,GAAW,MAAO,IAAIylnB,IAAc/goB,EAAK6+nB,EAAI7tf,OAAsB,KAAf6tf,EAAItjnB,OAAO,GAAQ,EAAE,GAAG5Z,GAC9F,IAAI2pB,EACAhzB,EAAsB4sE,EAAIzO,EAAI6pkB,EAAO9loB,KAAK6E,IAAIsC,GAAM69G,EAAO79G,EAAM,EAAI,IAAM,GAC/E,GAAGk9nB,EAAIjtnB,MAAM,SAAU,OAAO4tG,EAAOk9gB,IAAK4D,EAAKzB,EAAI1koB,QACnD,GAAG0koB,EAAIjtnB,MAAM,WAEZ,OADA0Z,EAAK,GAAG3pB,EAAiB,IAARA,IAAW2pB,EAAI,IACzBA,EAAEnxB,OAAS0koB,EAAI1koB,OAASmxB,EAAIs0mB,IAAMf,EAAI7tf,OAAO,EAAE6tf,EAAI1koB,OAAOmxB,EAAEnxB,SAAWmxB,EAE/E,GAAIhzB,EAAIumoB,EAAIjtnB,MAAM4tnB,KAAS,OArK5B,SAAsBlnoB,EAAqBgooB,EAAiB9ghB,GAC3D,OAAOA,GAAiB,IAAT8ghB,EAAa,GAAK,GAAGA,GAAQ17hB,IAAK,IAAKtsG,EAAE,GAAG6B,OAAS,EAAI7B,EAAE,GAAG6B,OAC9E,CAmKmC+moB,CAAa5ooB,EAAGgooB,EAAM9ghB,GACxD,GAAGq/gB,EAAIjtnB,MAAM,UAAW,OAAO4tG,EAAOk9gB,IAAK4D,EAAKzB,EAAI1koB,OAAS0koB,EAAInhoB,QAAQ,MACzE,GAAIpF,EAAIumoB,EAAIjtnB,MAAM6tnB,KAMjB,OAHAn0mB,GADAA,GAAK,GAAG3pB,GAAK+K,QAAQ,aAAa,MAAMkznB,IAAMtnoB,EAAE,KAAKoU,QAAQ,MAAM,IAAIkznB,IAAMtnoB,EAAE,MACzEoU,QAAQ,YAAW,SAAS0ynB,EAAIC,GAErC,MAAO,IAAMA,EAAKz6hB,IAAK,IAAKg7hB,IAAMtnoB,EAAE,IAAI6B,OAAOkloB,EAAGlloB,OAAS,KAC9B,IAAvB0koB,EAAInhoB,QAAQ,MAAe4tB,EAAIA,EAAE5e,QAAQ,OAAO,KAGxD,GADAmynB,EAAMA,EAAInynB,QAAQ,YAAa,MAC3BpU,EAAIumoB,EAAIjtnB,MAAM,gBACjB,OAAO4tG,GAAQ,GAAG8ghB,GAAM5znB,QAAQ,kBAAkB,OAAOA,QAAQ,YAAY,OAAOA,QAAQ,OAAOpU,EAAE,GAAG6B,OAAO,KAAK,KAErH,GAAI7B,EAAIumoB,EAAIjtnB,MAAM,qBAAuB,OAAO4tG,EAAOw/gB,IAAU,GAAGsB,GACpE,GAAIhooB,EAAIumoB,EAAIjtnB,MAAM,qBACjB,OAAOjQ,EAAM,EAAI,IAAMo/nB,IAAc/goB,EAAM6+nB,GAAMl9nB,GAAOq9nB,IAAU,GAAGr9nB,GAAQ,IAAMijG,IAAK,IAAItsG,EAAE,GAAG6B,QAElG,GAAI7B,EAAIumoB,EAAIjtnB,MAAM,YAAc,OAAOmvnB,IAAc/goB,EAAK6+nB,EAAInynB,QAAQ,SAAS,IAAI/K,GACnF,GAAIrJ,EAAIumoB,EAAIjtnB,MAAM,2BAGjB,OAFA0Z,EAAImxmB,IAAQsE,IAAc/goB,EAAM6+nB,EAAInynB,QAAQ,SAAS,IAAK/K,IAC1DujE,EAAK,EACEu3jB,IAAQA,IAAQoC,EAAInynB,QAAQ,MAAM,KAAKA,QAAQ,SAAQ,SAASiX,GAAG,OAAOuhD,EAAG55C,EAAEnxB,OAAOmxB,EAAE/P,OAAO2pD,KAAU,MAAJvhD,EAAQ,IAAI,EAAG,KAE5H,GAAGk7mB,EAAIjtnB,MAAM+tnB,KAEZ,MAAO,KADPr0mB,EAAIy1mB,IAAc/goB,EAAM,aAAc2B,IACvBqvI,OAAO,EAAE,GAAK,KAAO1lH,EAAE0lH,OAAO,EAAG,GAAK,IAAM1lH,EAAE0lH,OAAO,GAErE,IAAI/3F,EAAK,GACT,GAAI3gD,EAAIumoB,EAAIjtnB,MAAM,+BAUjB,OATAszD,EAAK1qE,KAAKyhB,IAAiB3jB,EAAE,GAAU6B,OAAO,GAC9Cs8D,EAAK4mkB,IAASiD,EAAM9loB,KAAKylH,IAAI,GAAG/6C,GAAI,GAAG,GACvC55C,EAAI,GAAKk0F,EAEoB,MAD7BvmE,EAAKinlB,IAAU,IAAkB5noB,EAAE,GAAWm+D,EAAG,KAC3Cl7C,OAAO09B,EAAG9+C,OAAO,KAAW8+C,EAAKA,EAAG+3F,OAAO,EAAE/3F,EAAG9+C,OAAO,GAAK,KAClEmxB,GAAK2tB,EAAkB3gD,EAAE,GAAY,IAAmBA,EAAE,IAC1D2gD,EAAK2jlB,IAAMnmkB,EAAG,GAAGyO,IACX/qE,OAAS7B,EAAE,GAAG6B,SAAQ8+C,EAAK2mlB,IAAMtnoB,EAAE,GAAG04I,OAAO14I,EAAE,GAAG6B,OAAO8+C,EAAG9+C,SAAW8+C,GAC7E3tB,GAAK2tB,EAGN,GAAI3gD,EAAIumoB,EAAIjtnB,MAAM,iCAGjB,OAFAszD,EAAK1qE,KAAKyhB,IAAIzhB,KAAKwhB,IAAI1jB,EAAE,GAAG6B,OAAQ7B,EAAE,GAAG6B,QAAQ,GAE1CqlH,IADP/oD,EAAK4mkB,IAASiD,EAAM9loB,KAAKylH,IAAI,GAAG/6C,GAAI,GAAG,IACrB,KAAKzO,EAAG,GAAK,GAAK,MAAQ,KAAOA,EAAG,GAAKkmkB,IAAKlmkB,EAAG,GAAGyO,GAAM5sE,EAAE,GAAK,IAAMA,EAAE,GAAKskoB,IAAMnmkB,EAAG,GAAGyO,GAAK0/B,IAAK,IAAK,EAAE1/B,EAAG,EAAI5sE,EAAE,GAAG6B,OAAS7B,EAAE,GAAG6B,SAExJ,GAAI7B,EAAIumoB,EAAIjtnB,MAAM,YAEjB,OADA0Z,EAAI,GAAK3pB,EACNk9nB,EAAI1koB,QAAUmxB,EAAEnxB,OAAemxB,EAC3Bs0mB,IAAMf,EAAI7tf,OAAO,EAAE6tf,EAAI1koB,OAAOmxB,EAAEnxB,SAAWmxB,EAEnD,GAAIhzB,EAAIumoB,EAAIjtnB,MAAM,sBAAwB,CACzC0Z,EAAI,GAAK3pB,EAAIovK,QAAQv2K,KAAKyhB,IAAI3jB,EAAE,GAAG6B,OAAO,KAAKuS,QAAQ,YAAY,MACnEw4D,EAAK55C,EAAE5tB,QAAQ,KACf,IAAIijoB,EAAO9B,EAAInhoB,QAAQ,KAAOwnE,EAAI07jB,EAAO/B,EAAI1koB,OAASmxB,EAAEnxB,OAASwmoB,EACjE,OAAOf,IAAMf,EAAI7tf,OAAO,EAAE2vf,GAAQr1mB,EAAIuzmB,EAAI7tf,OAAO6tf,EAAI1koB,OAAOymoB,GAC7D,CACA,GAAItooB,EAAIumoB,EAAIjtnB,MAAM,sBACjB,OAAOjQ,EAAM,EAAI,IAAMo/nB,IAAc/goB,EAAM6+nB,GAAMl9nB,GAAOq9nB,IAAS,GAAGr9nB,GAAK+K,QAAQ,aAAa,OAAOA,QAAQ,SAAQ,SAAS0ynB,GAAM,MAAO,OAASA,EAAGjloB,OAAS,EAAIuioB,IAAK,EAAE,EAAE0C,EAAGjloB,QAAU,IAAMiloB,CAAI,IAAK,IAAM1C,IAAK,EAAEpkoB,EAAE,GAAG6B,QAE5N,OAAO0koB,GACN,IAAK,UACL,IAAK,SACL,IAAK,QAAS,IAAIl7mB,EAAIq7mB,IAAS,GAAGsB,GAAO,MAAa,MAAN38mB,EAAY67F,EAAO77F,EAAI,GACvE,QACC,GAAGk7mB,EAAIjtnB,MAAM,aAAc,OAAOmvnB,IAAc/goB,EAAM6+nB,EAAI7goB,MAAM,EAAE6goB,EAAI90hB,YAAY,MAAOpoG,GAAOi+nB,IAAMf,EAAI7goB,MAAM6goB,EAAI90hB,YAAY,OAElI,MAAM,IAAIrtG,MAAM,uBAAyBmioB,EAAM,IAChD,CACA,SAASqB,IAAUlgoB,EAAiB6+nB,EAAgBl9nB,GACnD,OAAY,EAAJA,KAAWA,EAAMo/nB,IAAc/goB,EAAM6+nB,EAAKl9nB,GAAOq+nB,IAAchgoB,EAAM6+nB,EAAKl9nB,EACnF,CAkBA,IAAIw/nB,IAAc,kCAClB,SAASC,IAAYvC,GAEpB,IADA,IAAI3koB,EAAI,EAAekZ,EAAI,GAAIkY,EAAI,GAC7BpxB,EAAI2koB,EAAI1koB,QACb,OAAQiZ,EAAIyrnB,EAAItjnB,OAAOrhB,IACtB,IAAK,IAAQ+ioB,IAAc4B,EAAK3koB,KAAIA,GAAI,GAAGA,IAAK,MAChD,IAAK,IAAK,KAAsC,KAAzB2koB,EAAIvjnB,aAAaphB,IAAcA,EAAI2koB,EAAI1koB,WAAsBD,EAAG,MACvF,IAAK,KACL,IAAK,IAAKA,GAAG,EAAG,MAChB,IAAK,MAAOA,EAAG,MACf,IAAK,IAAK,IAAK,IACd,GAAuB,MAApB2koB,EAAItjnB,OAAOrhB,EAAE,IAAkC,MAApB2koB,EAAItjnB,OAAOrhB,EAAE,GAAY,OAAO,EAE/D,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAEvD,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAAO,EAC7E,IAAK,IAAK,IAAK,IAAK,IAAK,SACxB,GAAsC,QAAnC2koB,EAAI7tf,OAAO92I,EAAG,GAAGgyB,cAAyB,OAAO,EACpD,GAAsC,UAAnC2ymB,EAAI7tf,OAAO92I,EAAG,GAAGgyB,cAA2B,OAAO,EACtD,GAAsC,8BAAnC2ymB,EAAI7tf,OAAO92I,EAAG,GAAGgyB,cAA2B,OAAO,IACpDhyB,EAAG,MACN,IAAK,IAEJ,IADAoxB,EAAIlY,EACsB,MAApByrnB,EAAItjnB,OAAOrhB,MAAgBA,EAAI2koB,EAAI1koB,QAAQmxB,GAAKuzmB,EAAItjnB,OAAOrhB,GACjE,GAAGoxB,EAAE1Z,MAAMuvnB,KAAc,OAAO,EAChC,MACD,IAAK,IAEL,IAAK,IAAK,IAAK,IACd,KAAMjnoB,EAAI2koB,EAAI1koB,SAAW,YAAYuD,QAAQ0V,EAAEyrnB,EAAItjnB,SAASrhB,KAAO,GAAS,MAAHkZ,GAA8B,KAAnByrnB,EAAItjnB,OAAOrhB,EAAE,IAAa,KAAKwD,QAAQmhoB,EAAItjnB,OAAOrhB,EAAE,KAAK,KAC7I,MACD,IAAK,IAAK,KAAM2koB,EAAItjnB,SAASrhB,KAAOkZ,IAAgB,MACpD,IAAK,MAAOlZ,EAAuB,KAAjB2koB,EAAItjnB,OAAOrhB,IAA8B,KAAjB2koB,EAAItjnB,OAAOrhB,MAAaA,EAAG,MACrE,IAAK,IAAK,IAAK,MAAOA,EAAG,MACzB,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACpF,KAAMA,EAAI2koB,EAAI1koB,QAAU,aAAauD,QAAQmhoB,EAAItjnB,SAASrhB,KAAO,IAAgB,MAElF,UAAWA,EAGb,OAAO,CACR,CAkNA,IAAImnoB,IAAW,wCACf,SAASC,IAAQpzmB,EAAGsqK,GACnB,GAAS,MAANA,EAAY,OAAO,EACtB,IAAI+oc,EAAShmmB,WAAWi9J,EAAG,IAC3B,OAAOA,EAAG,IACT,IAAK,IAAM,GAAGtqK,GAAKqzmB,EAAQ,OAAO,EAAM,MACxC,IAAK,IAAM,GAAGrzmB,EAAKqzmB,EAAQ,OAAO,EAAM,MACxC,IAAK,IAAM,GAAGrzmB,EAAKqzmB,EAAQ,OAAO,EAAM,MACxC,IAAK,KAAM,GAAGrzmB,GAAKqzmB,EAAQ,OAAO,EAAM,MACxC,IAAK,KAAM,GAAGrzmB,GAAKqzmB,EAAQ,OAAO,EAAM,MACxC,IAAK,KAAM,GAAGrzmB,GAAKqzmB,EAAQ,OAAO,EAEnC,OAAO,CACR,CACA,SAASC,IAAWr5nB,EAAc+lB,GACjC,IAAI2wmB,EA3RL,SAAuBA,GAGtB,IAFA,IAAIlxd,EAAwB,GACxB8zd,GAAS,EACLvnoB,EAAI,EAAG2c,EAAI,EAAG3c,EAAI2koB,EAAI1koB,SAAUD,EAAG,OAAe2koB,EAAIvjnB,WAAWphB,IACxE,KAAK,GACJunoB,GAAUA,EAAQ,MACnB,KAAK,GAAI,KAAK,GAAI,KAAK,KACpBvnoB,EAAG,MACN,KAAK,GACJyzK,EAAIA,EAAIxzK,QAAU0koB,EAAI7tf,OAAOn6H,EAAE3c,EAAE2c,GACjCA,EAAI3c,EAAE,EAGR,GADAyzK,EAAIA,EAAIxzK,QAAU0koB,EAAI7tf,OAAOn6H,IACf,IAAX4qnB,EAAiB,MAAM,IAAI/koB,MAAM,WAAamioB,EAAM,0BACvD,OAAOlxd,CACR,CA4QW+zd,CAAcv5nB,GACpBrN,EAAI+joB,EAAI1koB,OAAQgqjB,EAAM06E,EAAI/joB,EAAE,GAAG4C,QAAQ,KAE3C,GADG5C,EAAE,GAAKqpjB,GAAK,KAAKrpjB,EACjB+joB,EAAI1koB,OAAS,EAAG,MAAM,IAAIuC,MAAM,iCAAmCmioB,EAAI5goB,KAAK,KAAO,KACtF,GAAgB,kBAANiwB,EAAgB,MAAO,CAAC,EAAkB,IAAf2wmB,EAAI1koB,QAAgBgqjB,GAAK,EAAE06E,EAAIA,EAAI1koB,OAAO,GAAG,KAClF,OAAO0koB,EAAI1koB,QACV,KAAK,EAAG0koB,EAAM16E,GAAK,EAAI,CAAC,UAAW,UAAW,UAAW06E,EAAI,IAAM,CAACA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,KAAM,MAClG,KAAK,EAAGA,EAAM16E,GAAK,EAAI,CAAC06E,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAAM,CAACA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,KAAM,MACzF,KAAK,EAAGA,EAAM16E,GAAK,EAAI,CAAC06E,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAAM,CAACA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,KAGpF,IAAIpokB,EAAKvoC,EAAI,EAAI2wmB,EAAI,GAAK3wmB,EAAI,EAAI2wmB,EAAI,GAAKA,EAAI,GAC/C,IAA4B,IAAzBA,EAAI,GAAGnhoB,QAAQ,OAAwC,IAAzBmhoB,EAAI,GAAGnhoB,QAAQ,KAAa,MAAO,CAAC5C,EAAG27D,GACxE,GAA8B,MAA3BookB,EAAI,GAAGjtnB,MAAM,YAAiD,MAA3BitnB,EAAI,GAAGjtnB,MAAM,WAAoB,CACtE,IAAI85jB,EAAKmzD,EAAI,GAAGjtnB,MAAMyvnB,KAClB11D,EAAKkzD,EAAI,GAAGjtnB,MAAMyvnB,KACtB,OAAOC,IAAQpzmB,EAAGw9iB,GAAM,CAAC5wkB,EAAG+joB,EAAI,IAAMyC,IAAQpzmB,EAAGy9iB,GAAM,CAAC7wkB,EAAG+joB,EAAI,IAAM,CAAC/joB,EAAG+joB,EAAU,MAANnzD,GAAoB,MAANC,EAAa,EAAI,GAC7G,CACA,MAAO,CAAC7wkB,EAAG27D,EACZ,CACA,SAASkokB,IAAWE,EAAsB3wmB,EAAU5C,GAC3C,MAALA,IAAWA,EAAI,CAAC,GACnB,IAAI80mB,EAAO,GACX,cAAcvB,GACb,IAAK,SAC4BuB,EAAtB,UAAPvB,GAAmBvzmB,EAAEq2mB,OAAer2mB,EAAEq2mB,OAC7B9C,EACZ,MACD,IAAK,SAGO,OAFeuB,EAAhB,IAAPvB,GAAavzmB,EAAEq2mB,OAAer2mB,EAAEq2mB,QACX,MAAXr2mB,EAAEyH,MAAiBzH,EAAEyH,MAAiBmqmB,KAAW2B,MAC7CuB,EAAQ90mB,EAAEyH,OAASzH,EAAEyH,MAAMoqmB,IAAgB0B,KAAU3B,IAAUC,IAAgB0B,KACrF,MAARuB,IAAcA,EAAOhD,IAAgByB,IAAQ,WAGlD,GAAG5B,IAAcmD,EAAK,GAAI,OAAO1B,IAAYxwmB,EAAG5C,GAC7C4C,aAAaiB,OAAMjB,EAAIgwmB,IAAchwmB,EAAG5C,EAAEuymB,WAC7C,IAAI11nB,EAAIq5nB,IAAWpB,EAAMlymB,GACzB,GAAG+umB,IAAc90nB,EAAE,IAAK,OAAOu2nB,IAAYxwmB,EAAG5C,GAC9C,IAAS,IAAN4C,EAAYA,EAAI,YAAa,IAAS,IAANA,EAAaA,EAAI,aAC/C,GAAS,KAANA,GAAiB,MAALA,EAAW,MAAO,GACtC,OAxQD,SAAkB2wmB,EAAgB3wmB,EAAWkP,EAAcw+I,GAI1D,IAHA,IAA8C1C,EAAIriK,EAAGytC,EAAjDqpH,EAAM,GAAIriJ,EAAI,GAAIpxB,EAAI,EAAGkZ,EAAI,GAAIqpK,EAAI,IACrCx7H,EAAG,IAED/mD,EAAI2koB,EAAI1koB,QACb,OAAQiZ,EAAIyrnB,EAAItjnB,OAAOrhB,IACtB,IAAK,IACJ,IAAI+ioB,IAAc4B,EAAK3koB,GAAI,MAAM,IAAIwC,MAAM,0BAA4B0W,EAAI,OAAQyrnB,GACnFlxd,EAAIA,EAAIxzK,QAAU,CAACuyB,EAAE,IAAKwB,EAAE,WAAYh0B,GAAG,EAAG,MAC/C,IAAK,IACJ,IAAIoxB,EAAE,GAAgC,MAA5Bg5B,EAAGu6kB,EAAIvjnB,aAAaphB,KAAcA,EAAI2koB,EAAI1koB,QAASmxB,GAAKrrB,OAAOk0C,aAAamQ,GACtFqpH,EAAIA,EAAIxzK,QAAU,CAACuyB,EAAE,IAAKwB,EAAE5C,KAAMpxB,EAAG,MACtC,IAAK,KAAM,IAAIsL,EAAIq5nB,EAAItjnB,SAASrhB,GAAIwyB,EAAW,MAANlnB,GAAmB,MAANA,EAAaA,EAAI,IACtEmoK,EAAIA,EAAIxzK,QAAU,CAACuyB,EAAEA,EAAGwB,EAAE1oB,KAAMtL,EAAG,MACpC,IAAK,IAAKyzK,EAAIA,EAAIxzK,QAAU,CAACuyB,EAAE,IAAKwB,EAAE,KAAMh0B,GAAG,EAAG,MAClD,IAAK,IACJyzK,EAAIA,EAAIxzK,QAAU,CAACuyB,EAAE,IAAKwB,EAAEA,KAAMh0B,EAAG,MACtC,IAAK,IAAK,IAAK,IACd,GAAuB,MAApB2koB,EAAItjnB,OAAOrhB,EAAE,IAAkC,MAApB2koB,EAAItjnB,OAAOrhB,EAAE,GAAY,CACtD,GAAO,MAAJg/K,GAA6E,OAAjEA,EAAGykd,IAAoBzvmB,EAAGkP,EAA0B,MAApByhmB,EAAItjnB,OAAOrhB,EAAE,KAA0B,MAAO,GAC7FyzK,EAAIA,EAAIxzK,QAAU,CAACuyB,EAAE,IAAKwB,EAAE2wmB,EAAI7tf,OAAO92I,EAAE,IAAKuiL,EAAMrpK,EAAGlZ,GAAG,EAAG,KAC9D,CAED,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtDkZ,EAAIA,EAAEjX,cAEP,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChE,GAAG+xB,EAAI,EAAG,MAAO,GACjB,GAAO,MAAJgrJ,GAAoD,OAAxCA,EAAGykd,IAAoBzvmB,EAAGkP,IAAoB,MAAO,GAC7D,IAAP9R,EAAIlY,IAAWlZ,EAAI2koB,EAAI1koB,QAAU0koB,EAAItjnB,OAAOrhB,GAAGiC,gBAAkBiX,GAAGkY,GAAGlY,EAC9D,MAANA,GAAmC,MAAtBqpK,EAAItgL,gBAAuBiX,EAAI,KACtC,MAANA,IAAWA,EAAI6tC,GAClB0sH,EAAIA,EAAIxzK,QAAU,CAACuyB,EAAEtZ,EAAG8a,EAAE5C,GAAImxJ,EAAMrpK,EAAG,MACxC,IAAK,IAAK,IAAK,IAAK,IAAK,SACxB,IAAIs9B,EAAE,CAAChkB,EAAEtZ,EAAG8a,EAAE9a,GAMd,GALO,MAAJ8lK,IAAUA,EAAGykd,IAAoBzvmB,EAAGkP,IACD,QAAnCyhmB,EAAI7tf,OAAO92I,EAAG,GAAGgyB,eAAkC,MAAJgtJ,IAAUxoI,EAAExiB,EAAIgrJ,EAAGh/G,GAAK,GAAK,IAAM,KAAKxpB,EAAEhkB,EAAI,IAAKu0B,EAAG,IAAI/mD,GAAG,GACrE,UAAlC2koB,EAAI7tf,OAAO92I,EAAE,GAAGgyB,eAAoC,MAAJgtJ,IAAUxoI,EAAExiB,EAAIgrJ,EAAGh/G,GAAK,GAAK,KAAO,MAAMxpB,EAAEhkB,EAAI,IAAKxyB,GAAG,EAAG+mD,EAAG,KAC5E,8BAAlC49kB,EAAI7tf,OAAO92I,EAAE,GAAGgyB,eAAoC,MAAJgtJ,IAAUxoI,EAAExiB,EAAIgrJ,EAAGh/G,GAAK,GAAK,eAAO,gBAAMxpB,EAAEhkB,EAAI,IAAKxyB,GAAG,EAAG+mD,EAAG,MAC/GvQ,EAAEhkB,EAAI,MAAOxyB,GACb,MAAJg/K,GAAoB,MAARxoI,EAAEhkB,EAAW,MAAO,GACnCihJ,EAAIA,EAAIxzK,QAAUu2C,EAAG+rI,EAAMrpK,EAAG,MAC/B,IAAK,IAEJ,IADAkY,EAAIlY,EACsB,MAApByrnB,EAAItjnB,OAAOrhB,MAAgBA,EAAI2koB,EAAI1koB,QAAQmxB,GAAKuzmB,EAAItjnB,OAAOrhB,GACjE,GAAmB,MAAhBoxB,EAAEttB,OAAO,GAAY,KAAM,4BAA8BstB,EAAI,IAChE,GAAGA,EAAE1Z,MAAMuvnB,KAAc,CACxB,GAAO,MAAJjod,GAAoD,OAAxCA,EAAGykd,IAAoBzvmB,EAAGkP,IAAoB,MAAO,GACpEuwI,EAAIA,EAAIxzK,QAAU,CAACuyB,EAAE,IAAKwB,EAAE5C,EAAEnvB,eAC9BsgL,EAAMnxJ,EAAE/P,OAAO,EAChB,MAAU+P,EAAE5tB,QAAQ,MAAQ,IAC3B4tB,GAAKA,EAAE1Z,MAAM,kBAAkB,IAAI,IAAI,IACnCwvnB,IAAYvC,KAAMlxd,EAAIA,EAAIxzK,QAAU,CAACuyB,EAAE,IAAIwB,EAAE5C,KAElD,MAED,IAAK,IACJ,GAAS,MAAN4tJ,EAAY,CACP,IAAP5tJ,EAAIlY,IAAWlZ,EAAI2koB,EAAI1koB,QAAgC,OAArBiZ,EAAEyrnB,EAAItjnB,OAAOrhB,KAAaoxB,GAAKlY,EACjEu6J,EAAIA,EAAIxzK,QAAU,CAACuyB,EAAE,IAAKwB,EAAE5C,GAAI,KACjC,CAED,IAAK,IAAK,IAAK,IACP,IAAPA,EAAIlY,IAAWlZ,EAAI2koB,EAAI1koB,QAAU,YAAYuD,QAAQ0V,EAAEyrnB,EAAItjnB,OAAOrhB,KAAO,GAAGoxB,GAAKlY,EACjFu6J,EAAIA,EAAIxzK,QAAU,CAACuyB,EAAE,IAAKwB,EAAE5C,GAAI,MACjC,IAAK,IACG,IAAPA,EAAIlY,EAASyrnB,EAAItjnB,SAASrhB,KAAOkZ,GAAGkY,GAAGlY,EACvCu6J,EAAIA,EAAIxzK,QAAU,CAACuyB,EAAEtZ,EAAG8a,EAAE5C,GAAImxJ,EAAMrpK,EAAG,MACxC,IAAK,MAAOlZ,EAAuB,KAAjB2koB,EAAItjnB,OAAOrhB,IAA8B,KAAjB2koB,EAAItjnB,OAAOrhB,MAAaA,EAAG,MACrE,IAAK,IAAK,IAAK,IAAKyzK,EAAIA,EAAIxzK,QAAU,CAACuyB,EAAU,IAAPkvJ,EAAS,IAAIxoK,EAAI8a,EAAE9a,KAAMlZ,EAAG,MACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7E,IAAPoxB,EAAIlY,EAASlZ,EAAI2koB,EAAI1koB,QAAU,aAAauD,QAAQmhoB,EAAItjnB,SAASrhB,KAAO,GAAGoxB,GAAGuzmB,EAAItjnB,OAAOrhB,GACzFyzK,EAAIA,EAAIxzK,QAAU,CAACuyB,EAAE,IAAKwB,EAAE5C,GAAI,MACjC,IAAK,IAAKqiJ,EAAIA,EAAIxzK,QAAU,CAACuyB,EAAEtZ,EAAG8a,EAAE9a,KAAMlZ,EAAG,MAC7C,IAAK,IAAKyzK,EAAIA,EAAIxzK,QAAU,CAACuyB,EAAE,IAAKwB,EAAE,OAAQh0B,EAAG,MACjD,QACC,IAA2D,IAAxD,6CAAwCwD,QAAQ0V,GAAW,MAAM,IAAI1W,MAAM,0BAA4B0W,EAAI,OAASyrnB,GACvHlxd,EAAIA,EAAIxzK,QAAU,CAACuyB,EAAE,IAAKwB,EAAE9a,KAAMlZ,EAKrC,IAAqB0noB,EAAjBvpd,EAAK,EAAGymd,EAAM,EAClB,IAAI5koB,EAAEyzK,EAAIxzK,OAAO,EAAGsiL,EAAI,IAAKviL,GAAK,IAAKA,EACtC,OAAOyzK,EAAIzzK,GAAGwyB,GACb,IAAK,IAAK,IAAK,IAAKihJ,EAAIzzK,GAAGwyB,EAAIu0B,EAAIw7H,EAAI,IAAQpE,EAAK,IAAGA,EAAK,GAAG,MAC/D,IAAK,KACAupd,EAAIj0d,EAAIzzK,GAAGg0B,EAAEtc,MAAM,YAAWktnB,EAAItkoB,KAAKwhB,IAAI8inB,EAAI8C,EAAI,GAAGznoB,OAAO,IAC9Dk+K,EAAK,IAAGA,EAAK,GAEjB,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAKoE,EAAI9O,EAAIzzK,GAAGwyB,EAAG,MACtD,IAAK,IAAgB,MAAR+vJ,IAAe9O,EAAIzzK,GAAGwyB,EAAI,IAAQ2rJ,EAAK,IAAGA,EAAK,IAAK,MACjE,IAAK,IACJ,MACD,IAAK,IACDA,EAAK,GAAK1K,EAAIzzK,GAAGg0B,EAAEtc,MAAM,UAASymK,EAAK,GACvCA,EAAK,GAAK1K,EAAIzzK,GAAGg0B,EAAEtc,MAAM,UAASymK,EAAK,GACvCA,EAAK,GAAK1K,EAAIzzK,GAAGg0B,EAAEtc,MAAM,UAASymK,EAAK,GAI7C,OAAOA,GACN,KAAK,EAAG,MACR,KAAK,EAEDa,EAAGtsJ,GAAK,KAAOssJ,EAAGtsJ,EAAI,IAAKssJ,EAAG1sK,GAC9B0sK,EAAG1sK,GAAM,KAAM0sK,EAAG1sK,EAAI,IAAK0sK,EAAGlrJ,GAC9BkrJ,EAAGlrJ,GAAM,KAAMkrJ,EAAGlrJ,EAAI,IAAKkrJ,EAAGh/G,GACjC,MACD,KAAK,EAEDg/G,EAAGtsJ,GAAK,KAAOssJ,EAAGtsJ,EAAI,IAAKssJ,EAAG1sK,GAC9B0sK,EAAG1sK,GAAM,KAAM0sK,EAAG1sK,EAAI,IAAK0sK,EAAGlrJ,GAKnC,IAAe88C,EAAX+2jB,EAAO,GACX,IAAI3noB,EAAE,EAAGA,EAAIyzK,EAAIxzK,SAAUD,EAC1B,OAAOyzK,EAAIzzK,GAAGwyB,GACb,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MACxC,IAAK,IAAKihJ,EAAIzzK,GAAGg0B,EAAI,GAAIy/I,EAAIzzK,GAAGwyB,EAAI,IAAK,MACzC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAE9FihJ,EAAIzzK,GAAGg0B,EAAI0wmB,IAAejxd,EAAIzzK,GAAGwyB,EAAEpR,WAAW,GAAIqyJ,EAAIzzK,GAAGg0B,EAAGgrJ,EAAI4ld,GAChEnxd,EAAIzzK,GAAGwyB,EAAI,IAAK,MACjB,IAAK,IAAK,IAAK,IAEd,IADAo+C,EAAK5wE,EAAE,EACU,MAAXyzK,EAAI7iG,KACS,OAAjB13D,EAAEu6J,EAAI7iG,GAAIp+C,IAAoB,MAANtZ,IACjB,MAANA,GAAmB,MAANA,IAA2B,MAAbu6J,EAAI7iG,EAAG,KAA+B,MAAhB6iG,EAAI7iG,EAAG,GAAGp+C,GAA6B,MAAhBihJ,EAAI7iG,EAAG,GAAGp+C,GAA6B,MAAhBihJ,EAAI7iG,EAAG,GAAG58C,IAC7F,MAAby/I,EAAIzzK,GAAGwyB,IAAoB,MAANtZ,GAAmB,MAANA,GAAmB,MAANA,IACzC,MAANA,IAA4B,MAAdu6J,EAAI7iG,GAAI58C,GAA2B,MAAdy/I,EAAI7iG,GAAI58C,GAA0B,MAAby/I,EAAI7iG,EAAG,IAA6B,KAAf6iG,EAAI7iG,EAAG,GAAGp+C,KAExFihJ,EAAIzzK,GAAGg0B,GAAKy/I,EAAI7iG,GAAI58C,EACpBy/I,EAAI7iG,GAAM,CAAC58C,EAAE,GAAIxB,EAAE,OAAQo+C,EAE5B+2jB,GAAQl0d,EAAIzzK,GAAGg0B,EACfh0B,EAAI4wE,EAAG,EAAG,MACX,IAAK,IAAK6iG,EAAIzzK,GAAGwyB,EAAI,IAAKihJ,EAAIzzK,GAAGg0B,EAAIwwmB,IAAYxwmB,EAAEkP,GAGrD,IAAa0kmB,EAAKC,EAAdvkX,EAAK,GACT,GAAGqkX,EAAK1noB,OAAS,EAAG,CACM,IAAtB0noB,EAAKvmnB,WAAW,IAClBwmnB,EAAO5zmB,EAAE,GAA0B,KAAvB2zmB,EAAKvmnB,WAAW,IAAa4S,EAAIA,EAC7C6zmB,EAAO7B,IAAU,IAAK2B,EAAMC,KAG5BC,EAAO7B,IAAU,IAAK2B,EADtBC,EAAO5zmB,EAAE,GAAK0tJ,EAAO,GAAK1tJ,EAAIA,GAE3B4zmB,EAAM,GAAKn0d,EAAI,IAAkB,KAAZA,EAAI,GAAGjhJ,IAC9Bq1mB,EAAOA,EAAK/wf,OAAO,GACnB28B,EAAI,GAAGz/I,EAAI,IAAMy/I,EAAI,GAAGz/I,IAG1B48C,EAAGi3jB,EAAK5noB,OAAO,EACf,IAAI6noB,EAAQr0d,EAAIxzK,OAChB,IAAID,EAAE,EAAGA,EAAIyzK,EAAIxzK,SAAUD,EAAG,GAAa,MAAVyzK,EAAIzzK,IAA0B,KAAZyzK,EAAIzzK,GAAGwyB,GAAYihJ,EAAIzzK,GAAGg0B,EAAExwB,QAAQ,MAAQ,EAAG,CAAEskoB,EAAQ9noB,EAAG,KAAO,CACtH,IAAI+noB,EAAMt0d,EAAIxzK,OACd,GAAG6noB,IAAUr0d,EAAIxzK,SAAiC,IAAvB4noB,EAAKrkoB,QAAQ,KAAa,CACpD,IAAIxD,EAAEyzK,EAAIxzK,OAAO,EAAGD,GAAI,IAAIA,EACd,MAAVyzK,EAAIzzK,KAA0C,IAA5B,KAAKwD,QAAQiwK,EAAIzzK,GAAGwyB,KACtCo+C,GAAI6iG,EAAIzzK,GAAGg0B,EAAE/zB,OAAO,GAAK2wE,GAAM6iG,EAAIzzK,GAAGg0B,EAAE/zB,OAAQwzK,EAAIzzK,GAAGg0B,EAAI6zmB,EAAK/wf,OAAOlmE,EAAG,EAAG6iG,EAAIzzK,GAAGg0B,EAAE/zB,SACjF2wE,EAAK,EAAG6iG,EAAIzzK,GAAGg0B,EAAI,IACpBy/I,EAAIzzK,GAAGg0B,EAAI6zmB,EAAK/wf,OAAO,EAAGlmE,EAAG,GAAIA,GAAM,GAC9C6iG,EAAIzzK,GAAGwyB,EAAI,IACXu1mB,EAAQ/noB,GAEN4wE,GAAI,GAAKm3jB,EAAMt0d,EAAIxzK,SAAQwzK,EAAIs0d,GAAO/zmB,EAAI6zmB,EAAK/wf,OAAO,EAAElmE,EAAG,GAAK6iG,EAAIs0d,GAAO/zmB,EAC/E,MACK,GAAG8zmB,IAAUr0d,EAAIxzK,SAAiC,IAAvB4noB,EAAKrkoB,QAAQ,KAAa,CAEzD,IADAotE,EAAKi3jB,EAAKrkoB,QAAQ,KAAK,EACnBxD,EAAE8noB,EAAO9noB,GAAI,IAAKA,EACrB,GAAa,MAAVyzK,EAAIzzK,KAA0C,IAA5B,KAAKwD,QAAQiwK,EAAIzzK,GAAGwyB,GAAzC,CAGA,IAFA7V,EAAE82J,EAAIzzK,GAAGg0B,EAAExwB,QAAQ,MAAM,GAAGxD,IAAI8noB,EAAMr0d,EAAIzzK,GAAGg0B,EAAExwB,QAAQ,KAAK,EAAEiwK,EAAIzzK,GAAGg0B,EAAE/zB,OAAO,EAC9EqjR,EAAK7vG,EAAIzzK,GAAGg0B,EAAE8iH,OAAOn6H,EAAE,GACjBA,GAAG,IAAKA,EACVi0D,GAAI,IAA6B,MAAvB6iG,EAAIzzK,GAAGg0B,EAAE3S,OAAO1E,IAAqC,MAAvB82J,EAAIzzK,GAAGg0B,EAAE3S,OAAO1E,MAAa2mQ,EAAKukX,EAAKxmnB,OAAOuvD,KAAQ0yM,GAElG7vG,EAAIzzK,GAAGg0B,EAAIsvP,EACX7vG,EAAIzzK,GAAGwyB,EAAI,IACXu1mB,EAAQ/noB,CARoD,CAY7D,IAFG4wE,GAAI,GAAKm3jB,EAAMt0d,EAAIxzK,SAAQwzK,EAAIs0d,GAAO/zmB,EAAI6zmB,EAAK/wf,OAAO,EAAElmE,EAAG,GAAK6iG,EAAIs0d,GAAO/zmB,GAC9E48C,EAAKi3jB,EAAKrkoB,QAAQ,KAAK,EACnBxD,EAAE8noB,EAAO9noB,EAAEyzK,EAAIxzK,SAAUD,EAC5B,GAAa,MAAVyzK,EAAIzzK,MAA4C,IAA7B,MAAMwD,QAAQiwK,EAAIzzK,GAAGwyB,IAAaxyB,IAAM8noB,GAA9D,CAGA,IAFAnrnB,EAAE82J,EAAIzzK,GAAGg0B,EAAExwB,QAAQ,MAAM,GAAGxD,IAAI8noB,EAAMr0d,EAAIzzK,GAAGg0B,EAAExwB,QAAQ,KAAK,EAAE,EAC9D8/Q,EAAK7vG,EAAIzzK,GAAGg0B,EAAE8iH,OAAO,EAAEn6H,GACjBA,EAAE82J,EAAIzzK,GAAGg0B,EAAE/zB,SAAU0c,EACvBi0D,EAAGi3jB,EAAK5noB,SAAQqjR,GAAMukX,EAAKxmnB,OAAOuvD,MAEtC6iG,EAAIzzK,GAAGg0B,EAAIsvP,EACX7vG,EAAIzzK,GAAGwyB,EAAI,IACXu1mB,EAAQ/noB,CARsE,CAUhF,CACD,CACA,IAAIA,EAAE,EAAGA,EAAEyzK,EAAIxzK,SAAUD,EAAgB,MAAVyzK,EAAIzzK,IAAc,KAAKwD,QAAQiwK,EAAIzzK,GAAGwyB,IAAI,IACxEo1mB,EAAOlmd,EAAM,GAAK1tJ,EAAI,GAAKh0B,EAAE,GAAoB,MAAfyzK,EAAIzzK,EAAE,GAAGg0B,GAAaA,EAAEA,EAC1Dy/I,EAAIzzK,GAAGg0B,EAAIgymB,IAAUvyd,EAAIzzK,GAAGwyB,EAAGihJ,EAAIzzK,GAAGg0B,EAAG4zmB,GACzCn0d,EAAIzzK,GAAGwyB,EAAI,KAEZ,IAAIw1mB,EAAS,GACb,IAAIhooB,EAAE,EAAGA,IAAMyzK,EAAIxzK,SAAUD,EAAgB,MAAVyzK,EAAIzzK,KAAYgooB,GAAUv0d,EAAIzzK,GAAGg0B,GACpE,OAAOg0mB,CACR,CA0DQC,CAASh6nB,EAAE,GAAI+lB,EAAG5C,EAAGnjB,EAAE,GAC/B,CACA,SAASi6nB,IAASvD,EAAgB9ma,GACjC,GAAiB,iBAAPA,EAAiB,CAC1BA,GAAOA,IAAQ,EAEf,IAAI,IAAI79N,EAAI,EAAGA,EAAI,MAAUA,EAE5B,QAAmB+L,GAAhBi3nB,IAAUhjoB,IACb,GAAGgjoB,IAAUhjoB,IAAM2koB,EAAK,CAAE9ma,EAAM79N,EAAG,KAAO,OADP69N,EAAM,IAAGA,EAAM79N,GAIhD69N,EAAM,IAAGA,EAAM,IACnB,CAGA,OADAmla,IAAUnla,GAAO8ma,EACV9ma,CACR,CACA,SAASsqa,IAAeC,GACvB,IAAI,IAAIpooB,EAAE,EAAM,KAAHA,IAAaA,OACX+L,IAAXq8nB,EAAIpooB,IAAkBkooB,IAASE,EAAIpooB,GAAIA,EAC5C,CAEA,SAASqooB,MAx7BT,IAAwB71mB,EACnBA,IAAGA,EAAI,CAAC,GACZA,EAAE,GAAK,UACPA,EAAE,GAAK,IACPA,EAAE,GAAK,OACPA,EAAE,GAAK,QACPA,EAAE,GAAK,WACPA,EAAE,GAAK,KACPA,EAAE,IAAK,QACPA,EAAE,IAAK,WACPA,EAAE,IAAK,QACPA,EAAE,IAAK,UACPA,EAAE,IAAK,SACPA,EAAE,IAAK,WACPA,EAAE,IAAK,QACPA,EAAE,IAAK,SACPA,EAAE,IAAK,aACPA,EAAE,IAAK,gBACPA,EAAE,IAAK,OACPA,EAAE,IAAK,UACPA,EAAE,IAAK,cACPA,EAAE,IAAK,iBACPA,EAAE,IAAK,sBACPA,EAAE,IAAK,sBACPA,EAAE,IAAK,2BACPA,EAAE,IAAK,QACPA,EAAE,IAAK,YACPA,EAAE,IAAK,SACPA,EAAE,IAAK,WACPA,EAAE,IAAK,IACPA,EAAE,IAAK,8DA25BPwwmB,IA15BOxwmB,CA25BR,CAEA,IAmDI81mB,IAAc,mCAmElB,IAAIC,IAAsB,WAC1B,IAAIA,EAAQ,CAAC,EACbA,EAAM5wnB,QAAU,QAsBhB,IAAI6wnB,EAnBJ,WAGC,IAFA,IAAItvnB,EAAI,EAAG2f,EAA0B,IAAIl5B,MAAM,KAEvCoI,EAAG,EAAQ,KAALA,IAAYA,EASzBmR,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAQ,GADRA,EAAInR,IACW,UAAamR,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,IAChC,UAAaA,IAAM,EAAOA,IAAM,EAC/C2f,EAAM9wB,GAAKmR,EAGZ,MAA6B,qBAAf2iK,WAA6B,IAAIA,WAAWhjJ,GAASA,CACpE,CAES4vmB,GAaT,IAAIC,EAZJ,SAA4BjsnB,GAC3B,IAAIvD,EAAI,EAAG8a,EAAI,EAAGjsB,EAAI,EAAG8wB,EAAgD,qBAAfgjJ,WAA6B,IAAIA,WAAW,MAAQ,IAAIl8K,MAAM,MAExH,IAAIoI,EAAI,EAAQ,KAALA,IAAYA,EAAG8wB,EAAM9wB,GAAK0U,EAAE1U,GACvC,IAAIA,EAAI,EAAQ,KAALA,IAAYA,EAEtB,IADAisB,EAAIvX,EAAE1U,GACFmR,EAAI,IAAMnR,EAAGmR,EAAI,KAAMA,GAAK,IAAK8a,EAAI6E,EAAM3f,GAAM8a,IAAM,EAAKvX,EAAM,IAAJuX,GAEnE,IAAIy/I,EAAM,GACV,IAAI1rK,EAAI,EAAQ,IAALA,IAAWA,EAAG0rK,EAAI1rK,EAAI,GAA2B,qBAAf8zK,WAA6BhjJ,EAAMukJ,SAAa,IAAJr1K,EAAa,IAAJA,EAAU,KAAO8wB,EAAM/0B,MAAU,IAAJiE,EAAa,IAAJA,EAAU,KAClJ,OAAO0rK,CACR,CACSk1d,CAAmBH,GACxBI,EAAKF,EAAG,GAAKG,EAAKH,EAAG,GAAKI,EAAKJ,EAAG,GAAKK,EAAKL,EAAG,GAAKM,EAAKN,EAAG,GAC5DO,EAAKP,EAAG,GAAKQ,EAAKR,EAAG,GAAKS,EAAKT,EAAG,GAAKU,EAAKV,EAAG,GAAKtnlB,EAAKsnlB,EAAG,GAC5Dt/kB,EAAKs/kB,EAAG,IAAK36kB,EAAK26kB,EAAG,IAAKnzkB,EAAKmzkB,EAAG,IAAKrtkB,EAAKqtkB,EAAG,IAAK9okB,EAAK8okB,EAAG,IAiDhE,OAJAH,EAAM1vmB,MAAQ2vmB,EACdD,EAAMc,KA7CN,SAAoBA,EAAiBpkW,GAEpC,IADA,IAAI/zR,GAAI+zR,EACAjlS,EAAI,EAAGqnE,EAAIgikB,EAAKppoB,OAAQD,EAAIqnE,GAAIn2D,EAAKA,IAAI,EAAKs3nB,EAA4B,KAAxBt3nB,EAAEm4nB,EAAKjonB,WAAWphB,OAC5E,OAAQkR,CACT,EA0CAq3nB,EAAM5qd,IAxCN,SAAmBrhK,EAAgC2oR,GAElD,IADA,IAAI/zR,GAAI+zR,EAA0B59N,EAAI/qD,EAAErc,OAAS,GAAID,EAAI,EACnDA,EAAIqnE,GAAIn2D,EACb0uD,EAAGtjD,EAAEtc,KAAY,IAAJkR,GACbmqD,EAAG/+C,EAAEtc,KAASkR,GAAK,EAAK,KACxBqkD,EAAGj5C,EAAEtc,KAASkR,GAAK,GAAM,KACzB68C,EAAGzxC,EAAEtc,KAAQkR,IAAM,IACnBk4C,EAAG9sC,EAAEtc,MAAQohD,EAAG9kC,EAAEtc,MAAQopoB,EAAG9snB,EAAEtc,MAAQmpoB,EAAG7snB,EAAEtc,MAC5CkpoB,EAAG5snB,EAAEtc,MAAQipoB,EAAG3snB,EAAEtc,MAAQgpoB,EAAG1snB,EAAEtc,MAAQ+ooB,EAAGzsnB,EAAEtc,MAC5C8ooB,EAAGxsnB,EAAEtc,MAAQ6ooB,EAAGvsnB,EAAEtc,MAAQ4ooB,EAAGtsnB,EAAEtc,MAAQwooB,EAAGlsnB,EAAEtc,MAE7C,IADAqnE,GAAK,GACCrnE,EAAIqnE,GAAGn2D,EAAKA,IAAI,EAAKs3nB,EAAc,KAAVt3nB,EAAEoL,EAAEtc,OACnC,OAAQkR,CACT,EA4BAq3nB,EAAMz2lB,IA1BN,SAAmBA,EAAgBmzP,GAElC,IADA,IAAI/zR,GAAI+zR,EACAjlS,EAAI,EAAGqnE,EAAIv1B,EAAI7xC,OAAQiZ,EAAI,EAAGxT,EAAI,EAAG1F,EAAIqnE,IAChDnuD,EAAI44B,EAAI1wB,WAAWphB,MACZ,IACNkR,EAAKA,IAAI,EAAKs3nB,EAAS,KAALt3nB,EAAEgI,IACXA,EAAI,KAEbhI,GADAA,EAAKA,IAAI,EAAKs3nB,EAA2B,KAAvBt3nB,GAAK,IAAMgI,GAAG,EAAG,SAC1B,EAAKsvnB,EAAsB,KAAlBt3nB,GAAK,IAAO,GAAFgI,KACnBA,GAAK,OAAUA,EAAI,OAC5BA,EAAa,IAAN,KAAFA,GAAYxT,EAAwB,KAApBosC,EAAI1wB,WAAWphB,KAIpCkR,GADAA,GADAA,GADAA,EAAKA,IAAI,EAAKs3nB,EAA0B,KAAtBt3nB,GAAK,IAAMgI,GAAG,EAAG,QAC1B,EAAKsvnB,EAA2B,KAAvBt3nB,GAAK,IAAMgI,GAAG,EAAG,SAC1B,EAAKsvnB,EAAsC,KAAlCt3nB,GAAK,IAAMxL,GAAG,EAAG,IAAQ,EAAFwT,IAAM,QACtC,EAAKsvnB,EAAsB,KAAlBt3nB,GAAK,IAAO,GAAFxL,MAI5BwL,GADAA,GADAA,EAAKA,IAAI,EAAKs3nB,EAA4B,KAAxBt3nB,GAAK,IAAMgI,GAAG,GAAI,SAC3B,EAAKsvnB,EAA2B,KAAvBt3nB,GAAK,IAAMgI,GAAG,EAAG,SAC1B,EAAKsvnB,EAAsB,KAAlBt3nB,GAAK,IAAO,GAAFgI,KAG9B,OAAQhI,CACT,EAKOq3nB,CACP,CA1F0B,GA4FtBe,IAAoB,WACxB,IAuFIC,EAvFA9roB,EAAU,CAAC,EAWf,SAAS+roB,EAAQrjnB,GAChB,GAA6B,KAA1BA,EAAE9E,OAAO8E,EAAElmB,OAAS,GAAW,OAAwC,IAAhCkmB,EAAEriB,MAAM,GAAG,GAAGN,QAAQ,KAAe2iB,EAAIqjnB,EAAQrjnB,EAAEriB,MAAM,GAAI,IACvG,IAAIoV,EAAIiN,EAAE0pF,YAAY,KACtB,OAAe,IAAP32F,EAAYiN,EAAIA,EAAEriB,MAAM,EAAGoV,EAAE,EACtC,CAEA,SAAS7P,EAAS8c,GACjB,GAA6B,KAA1BA,EAAE9E,OAAO8E,EAAElmB,OAAS,GAAW,OAAOoJ,EAAS8c,EAAEriB,MAAM,GAAI,IAC9D,IAAIoV,EAAIiN,EAAE0pF,YAAY,KACtB,OAAe,IAAP32F,EAAYiN,EAAIA,EAAEriB,MAAMoV,EAAE,EACnC,CASA,SAASuwnB,EAAe9rd,EAAgBxpJ,GACpB,kBAATA,IAAmBA,EAAO,IAAIc,KAAKd,IAC7C,IAAIu1mB,EAAiBv1mB,EAAK0B,WAE1B6zmB,GADAA,EAAMA,GAAO,EAAIv1mB,EAAK4B,eACT,EAAK5B,EAAK8B,eAAe,EACtC0nJ,EAAIgsd,YAAY,EAAGD,GACnB,IAAIE,EAAkBz1mB,EAAKkB,cAAgB,KAE3Cu0mB,GADAA,EAAMA,GAAO,EAAKz1mB,EAAKoB,WAAW,IACrB,EAAIpB,EAAKsB,UACtBkoJ,EAAIgsd,YAAY,EAAGC,EACpB,CAoBA,SAASC,EAAkBC,GAC1BC,IAAUD,EAAM,GAGhB,IAFA,IAAI14mB,EAAW,CAAC,EACZxL,EAAQ,EACNkknB,EAAKlpoB,GAAKkpoB,EAAK7poB,OAAS,GAAG,CAChC,IAAI6F,EAAOgkoB,EAAKE,WAAW,GACvB5mb,EAAK0mb,EAAKE,WAAW,GAAI9hL,EAAM4hL,EAAKlpoB,EAAIwiN,EACxCj9L,EAAI,CAAC,EACT,GAEM,QAFCrgB,EAIM,GADX8f,EAAQkknB,EAAKE,WAAW,MACV7jnB,EAAE8jnB,MAAQH,EAAKE,WAAW,IAErC5mb,EAAK,IACI,EAARx9L,IAAWO,EAAE+jnB,MAAQJ,EAAKE,WAAW,IAC7B,EAARpknB,IAAWO,EAAEgknB,MAAQL,EAAKE,WAAW,KAEtC7jnB,EAAE8jnB,QAAO9jnB,EAAE+sK,GAAK,IAAIj+J,KAAa,IAAR9O,EAAE8jnB,QAIhCH,EAAKlpoB,EAAIsnd,EACT92b,EAAEtrB,GAAQqgB,CACX,CACA,OAAOiL,CACR,CAEA,SAASg5mB,IAAW,OAAOb,IAAOA,EAAK,CAAC,EAAI,CAC5C,SAASjhoB,EAAMqjN,EAAmB3pN,GAClC,GAAc,IAAX2pN,EAAK,IAAyB,IAAXA,EAAK,GAAY,OAAO0+a,GAAU1+a,EAAM3pN,GAC9D,GAAuB,MAAT,GAAV2pN,EAAK,KAAwC,MAAT,GAARA,EAAK,IAAkB,OAy6CvD,SAAmBA,EAAmB3pN,GACrC,GAA0C,iBAAvCigoB,EAAIt2a,EAAK7nN,MAAM,EAAE,KAAK7B,cAAkC,MAAM,IAAIO,MAAM,0BAC3E,IAAIU,EAAQlB,GAAWA,EAAQkB,MAAQ,GAEnCmY,GAAQomnB,KAAW33iB,OAAOvL,SAASotI,GAAQA,EAAK7+M,SAAS,UAAYm1nB,EAAIt2a,IAAO1zM,MAAM,QACtF6xD,EAAK,EAAGzwC,EAAM,GAGlB,IAAIywC,EAAK,EAAGA,EAAKzuD,EAAKpb,SAAU6pE,EAE/B,GADAzwC,EAAMhe,EAAKyuD,GACP,sBAAsBhuD,KAAKud,KAC/BA,EAAMA,EAAIv1B,MAAMu1B,EAAI71B,QAAQ,SACxBN,IAAMA,EAAOm2B,EAAIv1B,MAAM,EAAGu1B,EAAIw2E,YAAY,KAAO,IAClDx2E,EAAIv1B,MAAM,EAAGZ,EAAKjD,SAAWiD,GAChC,KAAMA,EAAKjD,OAAS,IAEnBiD,GADAA,EAAOA,EAAKY,MAAM,EAAGZ,EAAKjD,OAAS,IACvB6D,MAAM,EAAGZ,EAAK2sG,YAAY,KAAO,GAC1Cx2E,EAAIv1B,MAAM,EAAEZ,EAAKjD,SAAWiD,KAIjC,IAAIonoB,GAAajvnB,EAAK,IAAM,IAAI3D,MAAM,oBACtC,IAAI4ynB,EAAW,MAAM,IAAI9noB,MAAM,4BAC/B,IAAI0zgB,EAAW,MAAQo0H,EAAU,IAAM,IAEnCC,EAA6B,GAAIC,EAA8B,GAC/Dp5mB,EAAI,CACPm5mB,UAAWA,EACXC,UAAWA,GAEZC,EAASr5mB,GACT,IAAIs5mB,EAAUC,EAAO,EACrB,IAAI7gkB,EAAK,EAAGA,EAAKzuD,EAAKpb,SAAU6pE,EAAI,CACnC,IAAIp6B,EAAOr0B,EAAKyuD,GACbp6B,IAASwme,GAAYxme,IAASwme,EAAW,OACzCy0H,KAAQC,GAAWx5mB,EAAG/V,EAAKvX,MAAM4moB,EAAU5gkB,GAAK5mE,GACnDwnoB,EAAW5gkB,EACZ,CACA,OAAO14C,CACR,CAh9C8Dy5mB,CAAUl/a,EAAM3pN,GAC9E,GAAG2pN,EAAK1rN,OAAS,IAAK,MAAM,IAAIuC,MAAM,iBAAmBmpN,EAAK1rN,OAAS,UACvE,IAAI6qoB,EAEAC,EACAC,EACAC,EACAC,EACAC,EALAC,EAAM,IAONC,EAA8B,GAG9BvB,EAAyBn+a,EAAK7nN,MAAM,EAAE,KAC1CimoB,IAAUD,EAAM,GAGhB,IAAIwB,EAmFJ,SAAwBxB,GACvB,GAAmB,IAAhBA,EAAKA,EAAKlpoB,IAAkC,IAApBkpoB,EAAKA,EAAKlpoB,EAAI,GAAY,MAAO,CAAC,EAAG,GAEhEkpoB,EAAKyB,IAAIC,EAAkB,sBAI3B1B,EAAKlpoB,GAAK,GAGV,IAAIkqoB,EAAkBhB,EAAKE,WAAW,EAAG,KAEzC,MAAO,CAACF,EAAKE,WAAW,EAAE,KAAMc,EACjC,CAhGSW,CAAe3B,GAExB,OADAgB,EAAOQ,EAAG,IAET,KAAK,EAAGF,EAAM,IAAK,MAAO,KAAK,EAAGA,EAAM,KAAM,MAC9C,KAAK,EAAG,GAAY,GAATE,EAAG,GAAS,OAAOjB,GAAU1+a,EAAM3pN,GAE9C,QAAS,MAAM,IAAIQ,MAAM,sCAAwCsooB,GAIvD,MAARM,GAA4DrB,IAA7CD,EAAcn+a,EAAK7nN,MAAM,EAAEsnoB,GAAkC,IAE/E,IAAIz+lB,EAAsBg/K,EAAK7nN,MAAM,EAAEsnoB,IAqFvC,SAAsBtB,EAAiBgB,GACtC,IAAIl8kB,EAAQ,EAOZ,OAHAk7kB,EAAKlpoB,GAAK,EAGFguD,EAAQk7kB,EAAKE,WAAW,IAC/B,KAAK,EAAM,GAAW,GAARc,EAAW,MAAM,IAAItooB,MAAM,gCAAkCosD,GAAQ,MACnF,KAAK,GAAM,GAAW,GAARk8kB,EAAW,MAAM,IAAItooB,MAAM,iCAAmCosD,GAAQ,MACpF,QAAS,MAAM,IAAIpsD,MAAM,sCAAwCosD,GAIlEk7kB,EAAKyB,IAAI,OAAQ,uBAGjBzB,EAAKyB,IAAI,eAAgB,aAC1B,CAtGAG,CAAa5B,EAAMgB,GAGnB,IAAIa,EAAqB7B,EAAKE,WAAW,EAAG,KAC5C,GAAY,IAATc,GAA0B,IAAZa,EAAe,MAAM,IAAInpoB,MAAM,uCAAyCmpoB,GAGzF7B,EAAKlpoB,GAAK,EAGVqqoB,EAAYnB,EAAKE,WAAW,EAAG,KAG/BF,EAAKlpoB,GAAK,EAGVkpoB,EAAKyB,IAAI,WAAY,6BAGrBL,EAAgBpB,EAAKE,WAAW,EAAG,KAGnCe,EAAOjB,EAAKE,WAAW,EAAG,KAG1BmB,EAAcrB,EAAKE,WAAW,EAAG,KAGjCgB,EAAgBlB,EAAKE,WAAW,EAAG,KAGnC,IAAI,IAAIxzlB,GAAK,EAAG75B,EAAI,EAAGA,EAAI,QAC1B65B,EAAIszlB,EAAKE,WAAW,EAAG,MAClB,KAF4BrtnB,EAGjC0unB,EAAU1unB,GAAK65B,EAIhB,IAAI4wiB,EAmEJ,SAAmBz7X,EAAmBy/a,GAGrC,IAFA,IAAIQ,EAAWtroB,KAAK6K,KAAKwgN,EAAK1rN,OAAOmroB,GAAK,EACtChkD,EAA8B,GAC1BpnlB,EAAE,EAAGA,EAAI4roB,IAAY5roB,EAAGonlB,EAAQpnlB,EAAE,GAAK2rN,EAAK7nN,MAAM9D,EAAEoroB,GAAKproB,EAAE,GAAGoroB,GAEtE,OADAhkD,EAAQwkD,EAAS,GAAKjgb,EAAK7nN,MAAM8noB,EAASR,GACnChkD,CACR,CAzEkCykD,CAAUlgb,EAAMy/a,GAElDU,EAAWX,EAAaH,EAAe5jD,EAASgkD,EAAKC,GAGrD,IAAIU,EA+JJ,SAA0B3kD,EAA6B6jD,EAAsBI,EAA6BD,GACzG,IAAIjwjB,EAAKisgB,EAAQnnlB,OAAQ8roB,EAA8B,GACnDC,EAA0B,GAAIrud,EAAwB,GAAIsud,EAAgC,GAC1FC,EAAUd,EAAM,EAAGproB,EAAE,EAAG2c,EAAE,EAAGjd,EAAE,EAAGkxE,EAAG,EACzC,IAAI5wE,EAAE,EAAGA,EAAIm7E,IAAMn7E,EAGlB,GAFA29K,EAAO,IACPj+K,EAAKM,EAAIiroB,IAAoB9vjB,IAAIz7E,GAAGy7E,IACjC6wjB,EAAKtsoB,GAAR,CACAusoB,EAAY,GACZ,IAAIv5iB,EAAO,GACX,IAAI/1E,EAAEjd,EAAGid,GAAG,GAAI,CACf+1E,EAAK/1E,IAAK,EACVqvnB,EAAKrvnB,IAAK,EACVghK,EAAIA,EAAI19K,QAAU0c,EAClBsvnB,EAAUtroB,KAAKymlB,EAAQzqkB,IACvB,IAAIwvnB,EAAkBd,EAAU/qoB,KAAKC,MAAQ,EAAFoc,EAAIyunB,IAE/C,GAAGA,EAAM,GADTx6jB,EAAS,EAAFj0D,EAAOuvnB,GACG,MAAM,IAAI1poB,MAAM,yBAA2Bma,EAAI,MAAMyunB,GACtE,IAAIhkD,EAAQ+kD,GAAO,MAEnB,GAAGz5iB,EADH/1E,EAAIyvnB,IAAchlD,EAAQ+kD,GAAOv7jB,IACrB,KACb,CACAm7jB,EAAYrsoB,GAAM,CAACk1T,MAAOj3I,EAAKtiK,KAAKgxnB,IAAW,CAACJ,IAf5B,CAiBrB,OAAOF,CACR,CAxLiCO,CAAiBllD,EAAS6jD,EAAWI,EAAWD,GAEjFW,EAAYd,GAAWl+nB,KAAO,aAC3Bg+nB,EAAO,GAAKG,IAAkBqB,IAAYR,EAAYb,GAAen+nB,KAAO,YAC/Eg/nB,EAAYV,EAAU,IAAIt+nB,KAAO,OACjCg/nB,EAAYV,UAAYA,EACxBU,EAAYX,IAAMA,EAGlB,IAA6BoB,EAA0B,GAAIjC,EAA6B,GAAIC,EAA8B,IAkL1H,SAAwBS,EAAsBc,EAA4B3kD,EAA6BolD,EAAyBzB,EAAM5jB,EAAOojB,EAAWkC,GAIvJ,IAHA,IAEwB1/nB,EAFpB2/nB,EAAgB,EAAG7xjB,EAAM2xjB,EAAMvsoB,OAAO,EAAE,EACxCixlB,EAAS66C,EAAYd,GAAW5vnB,KAChCrb,EAAI,EAAG2soB,EAAU,EACf3soB,EAAIkxlB,EAAOjxlB,OAAQD,GAAI,IAAK,CACjC,IAAI8poB,EAAyB54C,EAAOptlB,MAAM9D,EAAGA,EAAE,KAC/C+poB,IAAUD,EAAM,IAChB6C,EAAU7C,EAAKE,WAAW,GAC1Bj9nB,EAAO6/nB,IAAU9C,EAAK,EAAE6C,EAAQ9xjB,GAChC2xjB,EAAM7roB,KAAKoM,GACX,IAAIqkB,EAAkB,CACrBrkB,KAAOA,EACPjH,KAAOgkoB,EAAKE,WAAW,GACvBjqmB,MAAO+pmB,EAAKE,WAAW,GACvB3ikB,EAAOyikB,EAAKE,WAAW,EAAG,KAC1B9jnB,EAAO4jnB,EAAKE,WAAW,EAAG,KAC1B94nB,EAAO44nB,EAAKE,WAAW,EAAG,KAC1B6C,MAAO/C,EAAKE,WAAW,IACvB7goB,MAAO2goB,EAAKE,WAAW,EAAG,KAC1BronB,MAAO,EACPR,KAAM,GAGM,IADU2onB,EAAKE,WAAW,GAAKF,EAAKE,WAAW,GAAKF,EAAKE,WAAW,GAAKF,EAAKE,WAAW,KACtF54mB,EAAEshK,GAAKo6c,EAAUhD,EAAMA,EAAKlpoB,EAAE,IAEjC,IADUkpoB,EAAKE,WAAW,GAAKF,EAAKE,WAAW,GAAKF,EAAKE,WAAW,GAAKF,EAAKE,WAAW,KACtF54mB,EAAE8hK,GAAK45c,EAAUhD,EAAMA,EAAKlpoB,EAAE,IAC9CwwB,EAAEzP,MAAQmonB,EAAKE,WAAW,EAAG,KAC7B54mB,EAAEjQ,KAAO2onB,EAAKE,WAAW,EAAG,KACzB54mB,EAAEjQ,KAAO,GAAKiQ,EAAEzP,MAAQ,IAAKyP,EAAEjQ,KAAOiQ,EAAEtrB,KAAO,EAAGsrB,EAAEzP,MAAQ4qnB,EAAYn7mB,EAAErkB,KAAO,IACtE,IAAXqkB,EAAEtrB,MACJ4moB,EAAgBt7mB,EAAEzP,MACfopnB,EAAO,GAAK2B,IAAkBH,IAAYR,EAAYW,GAAe3/nB,KAAO,gBAEtEqkB,EAAEjQ,MAAQ,MACnBiQ,EAAEqjF,QAAU,WACgB1oG,IAAzBggoB,EAAY36mB,EAAEzP,SAAsBoqnB,EAAY36mB,EAAEzP,OAASornB,EAAgB3lD,EAASh2jB,EAAEzP,MAAOoqnB,EAAYV,UAAWU,EAAYX,MACnIW,EAAY36mB,EAAEzP,OAAO5U,KAAOqkB,EAAErkB,KAC9BqkB,EAAE7T,QAAWwunB,EAAY36mB,EAAEzP,OAAOtG,KAAKvX,MAAM,EAAEstB,EAAEjQ,QAEjDiQ,EAAEqjF,QAAU,UACTrjF,EAAEjQ,KAAO,EAAGiQ,EAAEjQ,KAAO,EAChBurnB,IAAkBH,GAAcn7mB,EAAEzP,QAAU4qnB,GAAcR,EAAYW,KAC7Et7mB,EAAE7T,QAAUyvnB,EAAe57mB,EAAG26mB,EAAYW,GAAerxnB,MAAO0wnB,EAAYU,IAAO,CAAC,GAAGpxnB,QAGtF+V,EAAE7T,SAASwsnB,IAAU34mB,EAAE7T,QAAS,GACnC4pmB,EAAMp6mB,GAAQqkB,EACdm5mB,EAAU5poB,KAAKywB,EAChB,CACD,CAlOA67mB,CAAehC,EAAWc,EAAa3kD,EAASolD,EAAOzB,EAD9B,CAAC,EAC0CR,EAAWW,GA6D/E,SAA0BgC,EAAqBC,EAAsBX,GAIpE,IAHA,IAAIxsoB,EAAI,EAAGqnE,EAAI,EAAGnhD,EAAI,EAAGhV,EAAI,EAAGyL,EAAI,EAAGk+D,EAAK2xjB,EAAMvsoB,OAC9CmtoB,EAAwB,GAAI52lB,EAAsB,GAEhDx2C,EAAI66E,IAAM76E,EAAKotoB,EAAIptoB,GAAGw2C,EAAEx2C,GAAGA,EAAGmtoB,EAAGntoB,GAAGwsoB,EAAMxsoB,GAEhD,KAAM2c,EAAI65B,EAAEv2C,SAAU0c,EAErB0qD,EAAI6lkB,EADJltoB,EAAIw2C,EAAE75B,IACI0qD,EAAGnhD,EAAIgnnB,EAAGltoB,GAAGkmB,EAAGhV,EAAIg8nB,EAAGltoB,GAAGkR,EACjCk8nB,EAAIptoB,KAAOA,KACH,IAAPqnE,GAAyB+lkB,EAAI/lkB,KAAOA,IAAG+lkB,EAAIptoB,GAAKotoB,EAAI/lkB,KAC7C,IAAPnhD,GAAYknnB,EAAIlnnB,KAAOA,IAAGknnB,EAAIptoB,GAAKotoB,EAAIlnnB,MAEjC,IAAPhV,IAAuBk8nB,EAAIl8nB,GAAKlR,IACzB,IAAPqnE,GAAYrnE,GAAKotoB,EAAIptoB,KAAMotoB,EAAI/lkB,GAAK+lkB,EAAIptoB,GAAOw2C,EAAEq5D,YAAYxoC,GAAK1qD,GAAG65B,EAAE71C,KAAK0mE,KACrE,IAAPnhD,GAAYlmB,GAAKotoB,EAAIptoB,KAAMotoB,EAAIlnnB,GAAKknnB,EAAIptoB,GAAOw2C,EAAEq5D,YAAY3pF,GAAKvJ,GAAG65B,EAAE71C,KAAKulB,IAEhF,IAAIlmB,EAAE,EAAGA,EAAI66E,IAAM76E,EAAMotoB,EAAIptoB,KAAOA,KACzB,IAAPkmB,GAAyBknnB,EAAIlnnB,KAAOA,EAAGknnB,EAAIptoB,GAAKotoB,EAAIlnnB,IACxC,IAAPmhD,GAAY+lkB,EAAI/lkB,KAAOA,IAAG+lkB,EAAIptoB,GAAKotoB,EAAI/lkB,KAGhD,IAAIrnE,EAAE,EAAGA,EAAI66E,IAAM76E,EAClB,GAAkB,IAAfktoB,EAAGltoB,GAAG8F,KAAT,CAEA,IADA6W,EAAI3c,IACIotoB,EAAIzwnB,GAAI,GACfA,EAAIywnB,EAAIzwnB,GACRwwnB,EAAGntoB,GAAKmtoB,EAAGxwnB,GAAK,IAAMwwnB,EAAGntoB,SACX,IAAN2c,IAAY,IAAMywnB,EAAIzwnB,IAAMA,GAAKywnB,EAAIzwnB,IAC9CywnB,EAAIptoB,IAAM,CANiC,CAU5C,IADAmtoB,EAAG,IAAM,IACLntoB,EAAE,EAAGA,EAAI66E,IAAM76E,EACA,IAAfktoB,EAAGltoB,GAAG8F,OAAyBqnoB,EAAGntoB,IAAM,IAE7C,CA/FAqtoB,CAAiB9C,EAAWC,EAAWgC,GACvCA,EAAM59kB,QAEN,IAAIx9B,EAAI,CACPm5mB,UAAWA,EACXC,UAAWA,GAKZ,OADGxooB,GAAWA,EAAQmoC,MAAK/Y,EAAE+Y,IAAM,CAACwC,OAAQA,EAAQy6iB,QAASA,IACtDh2jB,CACP,CAsFA,SAAS47mB,EAAex9mB,EAAoB42C,EAAsBqmkB,GAKjE,IAJA,IAAI9qnB,EAAQ6N,EAAM7N,MAAOR,EAAOqO,EAAMrO,KAElCiQ,EAAI,GACJysM,EAAMl8M,EACJ8qnB,GAAQtrnB,EAAO,GAAK08M,GAAO,GAChCzsM,EAAEzwB,KAAKylE,EAAQtiE,MAAM+5N,EAAMyva,EAAMzva,EAAMyva,EAAOA,IAC9CnsnB,GAAQmsnB,EACRzva,EAAMuua,IAAcK,EAAY,EAAN5ua,GAE3B,OAAgB,IAAbzsM,EAAEnxB,OAAsBstoB,IAAQ,GAC3BrL,IAAQ9wmB,GAAGttB,MAAM,EAAG0rB,EAAMrO,KACnC,CAIA,SAAS2qnB,EAAWjua,EAAgB2va,EAAgBpmD,EAA6BgkD,EAAgBC,GAChG,IAAI70lB,EAAe+1lB,EACnB,GAAG1ua,IAAQ0ua,GACV,GAAW,IAARiB,EAAW,MAAM,IAAIhroB,MAAM,0CACxB,IAAY,IAATq7N,EAAyB,CAClC,IAAIqzX,EAAS9J,EAAQvpX,GAAM9pM,GAAKq3mB,IAAM,GAAG,EACzC,IAAIl6C,EAAQ,OACZ,IAAI,IAAIlxlB,EAAI,EAAGA,EAAI+zB,IACdyiB,EAAI41lB,IAAcl7C,EAAS,EAAFlxlB,MAAUusoB,IADhBvsoB,EAEvBqroB,EAAU1qoB,KAAK61C,GAEhBs1lB,EAAWM,IAAcl7C,EAAOk6C,EAAI,GAAGoC,EAAM,EAAGpmD,EAASgkD,EAAKC,EAC/D,CACD,CAGA,SAAS0B,EAAgB3lD,EAA6BzlkB,EAAkB0pnB,EAA6BD,EAAgBY,GACpH,IAAIrud,EAAwB,GAAIsud,EAA2B,GACvDD,IAAMA,EAAO,IACjB,IAAIE,EAAUd,EAAM,EAAGzunB,EAAI,EAAGi0D,EAAK,EACnC,IAAIj0D,EAAEgF,EAAOhF,GAAG,GAAI,CACnBqvnB,EAAKrvnB,IAAK,EACVghK,EAAIA,EAAI19K,QAAU0c,EAClBsvnB,EAAUtroB,KAAKymlB,EAAQzqkB,IACvB,IAAIwvnB,EAAOd,EAAU/qoB,KAAKC,MAAQ,EAAFoc,EAAIyunB,IAEpC,GAAGA,EAAM,GADTx6jB,EAAS,EAAFj0D,EAAOuvnB,GACG,MAAM,IAAI1poB,MAAM,yBAA2Bma,EAAI,MAAMyunB,GACtE,IAAIhkD,EAAQ+kD,GAAO,MACnBxvnB,EAAIyvnB,IAAchlD,EAAQ+kD,GAAOv7jB,EAClC,CACA,MAAO,CAACgkP,MAAOj3I,EAAKtiK,KAAKgxnB,IAAW,CAACJ,IACtC,CAkFA,SAASa,EAAUhD,EAA0BlwkB,GAC5C,OAAO,IAAI3kC,KAA6G,KAAnGw4mB,IAAe3D,EAAKlwkB,EAAO,GAAG,IAAKt5D,KAAKylH,IAAI,EAAE,IAAI0nhB,IAAe3D,EAAKlwkB,GAAQ,IAAQ,aAC5G,CAoBA,SAAS6wkB,EAASiD,EAAsBxqmB,GACvC,IAAI9R,EAAI8R,GAAQ,CAAC,EAAGhgC,EAAOkuB,EAAEluB,MAAQ,aAGrC,GAFIwqoB,EAAIlD,YAAWkD,EAAIlD,UAAY,IAC/BkD,EAAInD,YAAWmD,EAAInD,UAAY,IAChCmD,EAAIlD,UAAUvqoB,SAAWytoB,EAAInD,UAAUtqoB,OAAQ,MAAM,IAAIuC,MAAM,8BACtC,IAAzBkroB,EAAIlD,UAAUvqoB,SAChBytoB,EAAIlD,UAAU,GAAKtnoB,EAAO,IAC1BwqoB,EAAInD,UAAU,GAAM,CAAEx9nB,KAAM7J,EAAM4C,KAAM,IAEtCsrB,EAAEu8mB,QAAOD,EAAInD,UAAU,GAAGsC,MAAQz7mB,EAAEu8mB,OAGxC,SAAkBD,GACjB,IAAIE,EAAK,cACT,GAAGtE,IAAIl5nB,KAAKs9nB,EAAK,IAAME,GAAK,OAC5B,IAAIznnB,EAAIonnB,IAAQ,GAAIpnnB,EAAE,GAAK,GAAIA,EAAE,GAAKA,EAAE,GAAK,GAAIA,EAAE,GAAK,GACxDunnB,EAAInD,UAAU5poB,KAAM,CAAEoM,KAAM6goB,EAAI9noB,KAAM,EAAGyX,QAAQ4I,EAAGhF,KAAK,EAAGkmD,EAAE,GAAInhD,EAAE,GAAIhV,EAAE,KAC1Ew8nB,EAAIlD,UAAU7poB,KAAK+soB,EAAIlD,UAAU,GAAKoD,GACtCC,EAAYH,EACb,CATCI,CAASJ,EACV,CASA,SAASG,EAAYH,EAAsBz/nB,GAC1Cw8nB,EAASiD,GAET,IADA,IAAI7ilB,GAAK,EAAOp4B,GAAI,EACZzyB,EAAI0toB,EAAIlD,UAAUvqoB,OAAS,EAAGD,GAAK,IAAKA,EAAG,CAClD,IAAImonB,EAAQulB,EAAInD,UAAUvqoB,GAC1B,OAAOmonB,EAAMrinB,MACZ,KAAK,EACD2sB,EAAGo4B,GAAK,GACJ6ilB,EAAInD,UAAUv5iB,MAAO08iB,EAAIlD,UAAUx5iB,OAC1C,MACD,KAAK,EAAG,KAAK,EAAG,KAAK,EACpBv+D,GAAI,EACDxQ,MAAMkmmB,EAAMjimB,EAAIiimB,EAAM9gjB,EAAI8gjB,EAAMj3mB,KAAI25C,GAAK,GACzCs9jB,EAAMjimB,GAAK,GAAKiimB,EAAM9gjB,GAAK,GAAK8gjB,EAAMjimB,GAAKiimB,EAAM9gjB,IAAGxc,GAAK,GAC5D,MACD,QAASA,GAAK,EAEhB,CACA,GAAIA,GAAO58C,EAAX,CAEA,IAAIwjD,EAAM,IAAIx8B,KAAK,KAAM,EAAG,IAAKtY,EAAI,EAEjCoxnB,EAAYjpoB,OAAO4D,OAAS5D,OAAO4D,OAAO,MAAQ,CAAC,EACnD2S,EAAqC,GACzC,IAAIrb,EAAI,EAAGA,EAAI0toB,EAAIlD,UAAUvqoB,SAAUD,EACtC+toB,EAAUL,EAAIlD,UAAUxqoB,KAAM,EACD,IAA1B0toB,EAAInD,UAAUvqoB,GAAG8F,MACpBuV,EAAK1a,KAAK,CAAC+soB,EAAIlD,UAAUxqoB,GAAI0toB,EAAInD,UAAUvqoB,KAE5C,IAAIA,EAAI,EAAGA,EAAIqb,EAAKpb,SAAUD,EAAG,CAChC,IAAIotoB,EAAM5D,EAAQnunB,EAAKrb,GAAG,KAC1ByyB,EAAIs7mB,EAAUX,MAEb/xnB,EAAK1a,KAAK,CAACysoB,EAAM,CAChBrgoB,KAAM1D,EAAS+joB,GAAK56nB,QAAQ,IAAI,IAChC1M,KAAM,EACN+moB,MAAOmB,EACPt7c,GAAIjhI,EAAKyhI,GAAIzhI,EACbl0C,QAAS,QAGVwwnB,EAAUX,IAAO,EAEnB,CAIA,IAFA/xnB,EAAKsY,MAAK,SAASlK,EAAEoK,GAAK,OAve3B,SAAiBjzB,EAAcxC,GAE9B,IADA,IAAIipE,EAAIzmE,EAAEqX,MAAM,KAAMiO,EAAI9nB,EAAE6Z,MAAM,KAC1BjY,EAAI,EAAGkZ,EAAI,EAAGg9D,EAAI51E,KAAKyhB,IAAIslD,EAAEpnE,OAAQimB,EAAEjmB,QAASD,EAAIk2E,IAAKl2E,EAAG,CACnE,GAAIkZ,EAAImuD,EAAErnE,GAAGC,OAASimB,EAAElmB,GAAGC,OAAS,OAAOiZ,EAC3C,GAAGmuD,EAAErnE,IAAMkmB,EAAElmB,GAAI,OAAOqnE,EAAErnE,GAAKkmB,EAAElmB,IAAM,EAAI,CAC5C,CACA,OAAOqnE,EAAEpnE,OAASimB,EAAEjmB,MACrB,CAgekCguoB,CAAQxknB,EAAE,GAAIoK,EAAE,GAAK,IACtD65mB,EAAIlD,UAAY,GAAIkD,EAAInD,UAAY,GAChCvqoB,EAAI,EAAGA,EAAIqb,EAAKpb,SAAUD,EAAK0toB,EAAIlD,UAAUxqoB,GAAKqb,EAAKrb,GAAG,GAAI0toB,EAAInD,UAAUvqoB,GAAKqb,EAAKrb,GAAG,GAC7F,IAAIA,EAAI,EAAGA,EAAIqb,EAAKpb,SAAUD,EAAG,CAChC,IAAIkuoB,EAAMR,EAAInD,UAAUvqoB,GACpB4toB,EAAKF,EAAIlD,UAAUxqoB,GAOvB,GALAkuoB,EAAInhoB,KAAQ1D,EAASukoB,GAAIp7nB,QAAQ,IAAI,IACrC07nB,EAAI7mkB,EAAI6mkB,EAAIhonB,EAAIgonB,EAAIh9nB,IAAMg9nB,EAAInumB,MAAQ,GACtCmumB,EAAI/snB,KAAO+snB,EAAI3wnB,QAAU2wnB,EAAI3wnB,QAAQtd,OAAS,EAC9CiuoB,EAAIvsnB,MAAQ,EACZusnB,EAAIrB,MAASqB,EAAIrB,OAASmB,EACjB,IAANhuoB,EACFkuoB,EAAIh9nB,EAAImK,EAAKpb,OAAS,EAAI,GAAK,EAC/BiuoB,EAAI/snB,KAAO,EACX+snB,EAAIpooB,KAAO,OACL,GAAmB,KAAhB8noB,EAAG9poB,OAAO,GAAW,CAC9B,IAAI6Y,EAAE3c,EAAE,EAAE2c,EAAItB,EAAKpb,QAAgBupoB,EAAQkE,EAAIlD,UAAU7tnB,KAAKixnB,IAAjCjxnB,GAE7B,IADAuxnB,EAAIh9nB,EAAIyL,GAAKtB,EAAKpb,QAAU,EAAI0c,EAC5BA,EAAE3c,EAAE,EAAE2c,EAAItB,EAAKpb,QAAgBupoB,EAAQkE,EAAIlD,UAAU7tnB,KAAK6snB,EAAQoE,KAAzCjxnB,GAC7BuxnB,EAAIhonB,EAAIvJ,GAAKtB,EAAKpb,QAAU,EAAI0c,EAChCuxnB,EAAIpooB,KAAO,CACZ,MACI0joB,EAAQkE,EAAIlD,UAAUxqoB,EAAE,IAAI,KAAOwpoB,EAAQoE,KAAKM,EAAIhonB,EAAIlmB,EAAI,GAC/DkuoB,EAAIpooB,KAAO,CAEb,CArDoB,CAuDrB,CAEA,SAASqooB,EAAOT,EAAsB1roB,GACrC,IAAIosoB,EAAQpsoB,GAAW,CAAC,EAExB,GAAqB,OAAlBosoB,EAAM/gc,SAAmB,OAkiC7B,SAAmBqgc,EAAsB1roB,GAcxC,IAbA,IAAIkhC,EAAOlhC,GAAW,CAAC,EACnBk0gB,EAAWhze,EAAKgze,UAAY,UAG5BziW,EAAM,CACT,oBACA,+CAJDyiW,EAAW,UAAYA,GAImCpygB,MAAM,GAAK,IACpE,GACA,GACA,IAGGZ,EAAOwqoB,EAAIlD,UAAU,GAAI6D,EAAKnroB,EAAMgnE,EAAKwjkB,EAAInD,UAAU,GACnDvqoB,EAAI,EAAGA,EAAI0toB,EAAIlD,UAAUvqoB,SAAUD,EAG1C,GAFAquoB,EAAKX,EAAIlD,UAAUxqoB,GAAG8D,MAAMZ,EAAKjD,SACjCiqE,EAAKwjkB,EAAInD,UAAUvqoB,IACZmhB,MAAS+oD,EAAG3sD,SAAiB,eAAN8wnB,EAA9B,CAGAA,EAAKA,EAAG77nB,QAAQ,0CAA0C,SAAS0G,GAClE,MAAO,KAAOA,EAAEkI,WAAW,GAAGtU,SAAS,IAAM,GAC9C,IAAG0F,QAAQ,oBAAoB,SAASkgB,GACvC,MAAO,KAAOA,EAAEtR,WAAW,GAAGtU,SAAS,IAAM,GAC9C,IASA,IANA,IAAI0wC,EAAK0sB,EAAG3sD,QAER+wnB,EAAO7M,KAAW33iB,OAAOvL,SAAS/gC,GAAMA,EAAG1wC,SAAS,UAAYm1nB,EAAIzklB,GAGpE+wlB,EAAU,EAAGlnkB,EAAI/mE,KAAKyhB,IAAI,KAAMusnB,EAAKruoB,QAASmqD,EAAK,EAC/CoklB,EAAM,EAAGA,GAAOnnkB,IAAKmnkB,GAASpklB,EAAGkklB,EAAKltnB,WAAWotnB,KAAS,IAAQpklB,EAAK,OAAQmklB,EACvF,IAAIE,EAAKF,GAAe,EAAJlnkB,EAAQ,EAE5BosG,EAAI9yK,KAAKu1gB,GACTziW,EAAI9yK,KAAK,sBAAwBuiC,EAAKhgC,MAAQ,uBAAyBmroB,GACvE56d,EAAI9yK,KAAK,+BAAiC8toB,EAAK,mBAAqB,WACpEh7d,EAAI9yK,KAAK,iBAAmB+toB,GAAiBxkkB,EAAImkkB,IACjD56d,EAAI9yK,KAAK,IAET8yK,EAAI9yK,KAAK8toB,EAAKE,GAAuBL,GAAQM,GAAgBN,GAzBA,CA4B9D,OADA76d,EAAI9yK,KAAKu1gB,EAAW,UACbziW,EAAI1vK,KAAK,OACjB,CAhlCoC8qoB,CAAUnB,EAAKU,GAElD,GADAP,EAAYH,GAEN,QADCU,EAAM/gc,SACA,OAuxBd,SAAmBqgc,EAAsB1roB,GACxC,IAAIosoB,EAAQpsoB,GAAW,CAAC,EACpByxK,EAAM,GAAIq7d,EAAQ,GAClB19mB,EAAem8mB,IAAQ,GACvBx8nB,EAAUq9nB,EAAMnhc,YAAc,EAAI,EAAIrnL,EAAQ,EACvC,EAEX,IAAI5lB,EAAI,EAAG2c,EAAI,EAEXoynB,EAAW,EAAGpE,EAAO,EACrBznoB,EAAOwqoB,EAAIlD,UAAU,GAAI6D,EAAKnroB,EAAMgnE,EAAKwjkB,EAAInD,UAAU,GACvDyE,EAAO,GACPC,EAAQ,EAEZ,IAAIjvoB,EAAI,EAAGA,EAAI0toB,EAAIlD,UAAUvqoB,SAAUD,EAEtC,GADAquoB,EAAKX,EAAIlD,UAAUxqoB,GAAG8D,MAAMZ,EAAKjD,SAASiqE,EAAKwjkB,EAAInD,UAAUvqoB,IACtDmhB,MAAS+oD,EAAG3sD,SAAiB,eAAN8wnB,EAA9B,CACA,IAAI1snB,EAAQotnB,EAGRG,EAAU3B,IAAQc,EAAGpuoB,QACzB,IAAI0c,EAAI,EAAGA,EAAI0xnB,EAAGpuoB,SAAU0c,EAAGuynB,EAAQvF,YAAY,EAAsB,IAAnB0E,EAAGjtnB,WAAWzE,IACpEuynB,EAAUA,EAAQproB,MAAM,EAAGoroB,EAAQtuoB,GACnCouoB,EAAKrE,GAAQpC,IAAM5qd,IAAYzzG,EAAG3sD,QAAyB,GAE3D,IAAI4xnB,EAASjlkB,EAAG3sD,QACH,GAAVxM,IAAao+nB,EAASC,EAAgBD,KAGzC/9mB,EAAIm8mB,IAAQ,KACV5D,YAAY,EAAG,UACjBv4mB,EAAEu4mB,YAAY,EAAG,IACjBv4mB,EAAEu4mB,YAAY,EAAG/jnB,GACjBwL,EAAEu4mB,YAAY,EAAG54nB,GAEdm5D,EAAGgpH,GAAIu2c,EAAer4mB,EAAG84C,EAAGgpH,IAC1B9hK,EAAEu4mB,YAAY,EAAG,GACtBv4mB,EAAEu4mB,aAAa,EAAY,EAAR/jnB,EAAa,EAAIopnB,EAAKrE,IACzCv5mB,EAAEu4mB,YAAY,EAAa,EAAR/jnB,EAAa,EAAIupnB,EAAOlvoB,QAC3CmxB,EAAEu4mB,YAAY,EAAa,EAAR/jnB,EAAa,EAAWskD,EAAG3sD,QAAmBtd,QACjEmxB,EAAEu4mB,YAAY,EAAGuF,EAAQjvoB,QACzBmxB,EAAEu4mB,YAAY,EAAG,GAEjBoF,GAAY39mB,EAAEnxB,OACdwzK,EAAI9yK,KAAKywB,GACT29mB,GAAYG,EAAQjvoB,OACpBwzK,EAAI9yK,KAAKuuoB,GAMTH,GAAYI,EAAOlvoB,OACnBwzK,EAAI9yK,KAAKwuoB,GAGE,EAARvpnB,KACFwL,EAAIm8mB,IAAQ,KACV5D,aAAa,EAAGqF,EAAKrE,IACvBv5mB,EAAEu4mB,YAAY,EAAGwF,EAAOlvoB,QACxBmxB,EAAEu4mB,YAAY,EAAUz/jB,EAAG3sD,QAAmBtd,QAC9C8uoB,GAAY39mB,EAAExwB,EACd6yK,EAAI9yK,KAAKywB,KAIVA,EAAIm8mB,IAAQ,KACV5D,YAAY,EAAG,UACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,IACjBv4mB,EAAEu4mB,YAAY,EAAG/jnB,GACjBwL,EAAEu4mB,YAAY,EAAG54nB,GACjBqgB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,aAAa,EAAGqF,EAAKrE,IAEvBv5mB,EAAEu4mB,YAAY,EAAGwF,EAAOlvoB,QACxBmxB,EAAEu4mB,YAAY,EAAUz/jB,EAAG3sD,QAAmBtd,QAC9CmxB,EAAEu4mB,YAAY,EAAGuF,EAAQjvoB,QACzBmxB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAGhonB,GAEjBstnB,GAAS79mB,EAAExwB,EACXkuoB,EAAMnuoB,KAAKywB,GACX69mB,GAASC,EAAQjvoB,OACjB6uoB,EAAMnuoB,KAAKuuoB,KACTvE,CAzE2D,CAuF9D,OAVAv5mB,EAAIm8mB,IAAQ,IACZn8mB,EAAEu4mB,YAAY,EAAG,WACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAGgB,GACjBv5mB,EAAEu4mB,YAAY,EAAGgB,GACjBv5mB,EAAEu4mB,YAAY,EAAGsF,GACjB79mB,EAAEu4mB,YAAY,EAAGoF,GACjB39mB,EAAEu4mB,YAAY,EAAG,GAEVzH,IAAS,CAACA,IAASzud,GAAeyud,IAAQ4M,GAAQ19mB,GAC1D,CA/3BqBi+mB,CAAU3B,EAAKU,GAGnC,IAAI/mkB,EAAK,SAASqmkB,GAEjB,IADA,IAAI4B,EAAY,EAAGC,EAAW,EACtBvvoB,EAAI,EAAGA,EAAI0toB,EAAInD,UAAUtqoB,SAAUD,EAAG,CAC7C,IAAI2rN,EAAO+hb,EAAInD,UAAUvqoB,GACzB,GAAI2rN,EAAKpuM,QAAT,CAEA,IAAImkK,EAAOiqC,EAAKpuM,QAAQtd,OACrByhL,EAAO,IACNA,EAAO,KAAQ4td,GAAc5td,EAAO,IAAS,EAC3C6td,GAAa7td,EAAO,KAAW,EALX,CAO3B,CAOA,IANA,IAAIiqd,EAAW+B,EAAIlD,UAAUvqoB,OAAQ,GAAM,EAEvCuvoB,EAAYF,EAAY,KAAS,EACjCG,GAFYH,EAAY,GAAM,GAERC,EAAW5D,EAAU6D,EAC3CE,EAAWD,EAAW,KAAS,EAC/BE,EAAYD,GAAW,IAAM,EAAIpvoB,KAAK6K,MAAMukoB,EAAQ,KAAK,KACrDD,EAAWC,EAAUC,EAAY,KAAS,EAAKD,GAASC,IAAcD,GAAW,IAAM,EAAIpvoB,KAAK6K,MAAMukoB,EAAQ,KAAK,KAC3H,IAAIrokB,EAAK,CAAC,EAAGsokB,EAAWD,EAASF,EAAU7D,EAAS4D,EAAUD,EAAW,GAGzE,OAFA5B,EAAInD,UAAU,GAAGppnB,KAAOmunB,GAAa,EACrCjokB,EAAE,IAAMqmkB,EAAInD,UAAU,GAAG5onB,MAAM0lD,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,KAAMA,EAAE,GAAG,GAAM,GACpEA,CACR,CAvBS,CAuBNqmkB,GACCt8mB,EAAIm8mB,IAAQlmkB,EAAE,IAAM,GACpBrnE,EAAI,EAAGyc,EAAI,EAEd,IAAIzc,EAAI,EAAGA,EAAI,IAAKA,EAAGoxB,EAAEu4mB,YAAY,EAAGiG,EAAW5voB,IACnD,IAAIA,EAAI,EAAGA,EAAI,IAAKA,EAAGoxB,EAAEu4mB,YAAY,EAAG,GAMxC,IALAv4mB,EAAEu4mB,YAAY,EAAG,IACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,OACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACb3poB,EAAI,EAAGA,EAAI,IAAKA,EAAGoxB,EAAEu4mB,YAAY,EAAG,GAUxC,IATAv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAGtikB,EAAE,IACnBj2C,EAAEu4mB,YAAY,EAAGtikB,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAK,GAC7Cj2C,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,MACjBv4mB,EAAEu4mB,YAAY,EAAGtikB,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAK,EAAGklkB,GAChDn7mB,EAAEu4mB,YAAY,EAAGtikB,EAAE,IACnBj2C,EAAEu4mB,aAAa,EAAGtikB,EAAE,GAAKA,EAAE,GAAK,EAAGklkB,GACnCn7mB,EAAEu4mB,YAAY,EAAGtikB,EAAE,IACfrnE,EAAI,EAAGA,EAAI,MAAOA,EAAGoxB,EAAEu4mB,aAAa,EAAG3poB,EAAIqnE,EAAE,GAAKA,EAAE,GAAKrnE,GAAK,GAEnE,GAAGqnE,EAAE,GACJ,IAAI5qD,EAAI,EAAGA,EAAI4qD,EAAE,KAAM5qD,EAAG,CACzB,KAAMzc,EAAI,IAAU,IAAJyc,IAAWzc,EAAGoxB,EAAEu4mB,aAAa,EAAG3poB,EAAIqnE,EAAE,GAAKA,EAAE,GAAKrnE,GAAK,GACvEoxB,EAAEu4mB,aAAa,EAAGltnB,IAAM4qD,EAAE,GAAK,EAAIklkB,EAAa9vnB,EAAI,EACrD,CAED,IAAIoznB,EAAU,SAASvkoB,GACtB,IAAImR,GAAKnR,EAAGtL,EAAEyc,EAAE,IAAKzc,EAAGoxB,EAAEu4mB,aAAa,EAAG3poB,EAAE,GACzCsL,MAAOtL,EAAGoxB,EAAEu4mB,aAAa,EAAG4C,GAChC,EAEA,IADA9vnB,EAAIzc,EAAI,EACJyc,GAAG4qD,EAAE,GAAIrnE,EAAEyc,IAAKzc,EAAGoxB,EAAEu4mB,aAAa,EAAGmG,EAAOC,SAChD,IAAItznB,GAAG4qD,EAAE,GAAIrnE,EAAEyc,IAAKzc,EAAGoxB,EAAEu4mB,aAAa,EAAGmG,EAAOE,SAChDH,EAAQxokB,EAAE,IACVwokB,EAAQxokB,EAAE,IAGV,IAFA,IAAI1qD,EAAe,EAAG+kK,EAAkB,EACpCiqC,EAAoB+hb,EAAInD,UAAU,GAChC5tnB,EAAI+wnB,EAAInD,UAAUtqoB,SAAU0c,GACjCgvM,EAAO+hb,EAAInD,UAAU5tnB,IACZY,WAETmkK,EAAOiqC,EAAKpuM,QAAQtd,QACV,OACV0rN,EAAKhqM,MAAQlF,EACboznB,EAASnud,EAAO,KAAW,KAG5B,IADAmud,EAASxokB,EAAE,GAAK,GAAM,GACV,IAANj2C,EAAExwB,GAAWwwB,EAAEu4mB,aAAa,EAAGmG,EAAOvD,YAE5C,IADA9vnB,EAAIzc,EAAI,EACJ2c,EAAI,EAAGA,EAAI+wnB,EAAInD,UAAUtqoB,SAAU0c,GACtCgvM,EAAO+hb,EAAInD,UAAU5tnB,IACZY,YAETmkK,EAAOiqC,EAAKpuM,QAAQtd,SACRyhL,GAAQ,OACpBiqC,EAAKhqM,MAAQlF,EACboznB,EAASnud,EAAO,IAAS,KAE1B,KAAY,IAANtwJ,EAAExwB,GAAWwwB,EAAEu4mB,aAAa,EAAGmG,EAAOvD,YAC5C,IAAIvsoB,EAAI,EAAGA,EAAIqnE,EAAE,IAAI,IAAKrnE,EAAG,CAC5B,IAAI4toB,EAAKF,EAAIlD,UAAUxqoB,GACvB,GAAI4toB,GAAoB,IAAdA,EAAG3toB,OAAb,CAMA0rN,EAAO+hb,EAAInD,UAAUvqoB,GACZ,IAANA,IAAS2rN,EAAKhqM,MAAQgqM,EAAKxqM,KAAOwqM,EAAKhqM,MAAQ,EAAI4qnB,GACtD,IAAI0D,EAAwB,IAANjwoB,GAAWouoB,EAAMlroB,MAASyoN,EAAK5+M,KASrD,GARA20K,EAAO,GAAGuud,EAAIhwoB,OAAO,GACrBmxB,EAAEu4mB,YAAY,GAAIsG,EAAK,WACvB7+mB,EAAEu4mB,YAAY,EAAGjod,GACjBtwJ,EAAEu4mB,YAAY,EAAGh+a,EAAK7lN,MACtBsrB,EAAEu4mB,YAAY,EAAGh+a,EAAK5rL,OACtB3O,EAAEu4mB,aAAa,EAAGh+a,EAAKtkJ,GACvBj2C,EAAEu4mB,aAAa,EAAGh+a,EAAKzlM,GACvBkL,EAAEu4mB,aAAa,EAAGh+a,EAAKz6M,GACnBy6M,EAAKkhb,MACJz7mB,EAAEu4mB,YAAY,GAAIh+a,EAAKkhb,MAAO,YADnB,IAAIlwnB,EAAI,EAAGA,EAAI,IAAKA,EAAGyU,EAAEu4mB,YAAY,EAAG,GAExDv4mB,EAAEu4mB,YAAY,EAAGh+a,EAAKxiN,OAAS,GAC/BioB,EAAEu4mB,YAAY,EAAG,GAAIv4mB,EAAEu4mB,YAAY,EAAG,GACtCv4mB,EAAEu4mB,YAAY,EAAG,GAAIv4mB,EAAEu4mB,YAAY,EAAG,GACtCv4mB,EAAEu4mB,YAAY,EAAGh+a,EAAKhqM,OACtByP,EAAEu4mB,YAAY,EAAGh+a,EAAKxqM,MAAOiQ,EAAEu4mB,YAAY,EAAG,EAlB9C,KALA,CACC,IAAIhtnB,EAAI,EAAGA,EAAI,KAAMA,EAAGyU,EAAEu4mB,YAAY,EAAG,GACzC,IAAIhtnB,EAAI,EAAGA,EAAI,IAAKA,EAAGyU,EAAEu4mB,YAAY,GAAI,GACzC,IAAIhtnB,EAAI,EAAGA,EAAI,KAAMA,EAAGyU,EAAEu4mB,YAAY,EAAG,EAE1C,CAmBD,CACA,IAAI3poB,EAAI,EAAGA,EAAI0toB,EAAInD,UAAUtqoB,SAAUD,EAGtC,IAFA2rN,EAAO+hb,EAAInD,UAAUvqoB,IAEbmhB,MAAQ,KAEf,GADAiQ,EAAExwB,EAAK+qN,EAAKhqM,MAAM,GAAM,EACpB8/mB,KAAW33iB,OAAOvL,SAASotI,EAAKpuM,SACnCouM,EAAKpuM,QAAQ08E,KAAK7oE,EAAGA,EAAExwB,EAAG,EAAG+qN,EAAKxqM,MAElCiQ,EAAExwB,GAAM+qN,EAAKxqM,KAAO,KAAQ,QACtB,CACN,IAAIxE,EAAI,EAAGA,EAAIgvM,EAAKxqM,OAAQxE,EAAGyU,EAAEu4mB,YAAY,EAAGh+a,EAAKpuM,QAAQZ,IAC7D,KAAU,IAAJA,IAAaA,EAAGyU,EAAEu4mB,YAAY,EAAG,EACxC,CAGF,IAAI3poB,EAAI,EAAGA,EAAI0toB,EAAInD,UAAUtqoB,SAAUD,EAGtC,IAFA2rN,EAAO+hb,EAAInD,UAAUvqoB,IAEbmhB,KAAO,GAAKwqM,EAAKxqM,KAAO,KAC/B,GAAIsgnB,KAAW33iB,OAAOvL,SAASotI,EAAKpuM,SACnCouM,EAAKpuM,QAAQ08E,KAAK7oE,EAAGA,EAAExwB,EAAG,EAAG+qN,EAAKxqM,MAElCiQ,EAAExwB,GAAM+qN,EAAKxqM,KAAO,IAAO,OACrB,CACN,IAAIxE,EAAI,EAAGA,EAAIgvM,EAAKxqM,OAAQxE,EAAGyU,EAAEu4mB,YAAY,EAAGh+a,EAAKpuM,QAAQZ,IAC7D,KAAU,GAAJA,IAAYA,EAAGyU,EAAEu4mB,YAAY,EAAG,EACvC,CAGF,GAAIlI,IACHrwmB,EAAExwB,EAAIwwB,EAAEnxB,YAGR,KAAMmxB,EAAExwB,EAAIwwB,EAAEnxB,QAAQmxB,EAAEu4mB,YAAY,EAAG,GAExC,OAAOv4mB,CACR,CApqBA3zB,EAAQka,QAAU,QA0rBlB,IAmDIu4nB,EAnDA5C,EAAO,GAGPf,GAAc,EAEdf,EAAmB,mBACnBoE,EAAa,CAAC,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,KACxD5B,EAAe,mCACf8B,EAAS,CAEZK,YAAa,EACbJ,SAAU,EACVC,SAAU,EACVzD,WAAYA,EACZ6D,UAAW,EAEX5E,iBAAkBA,EAClB6E,qBAAsB,OACtBC,WAAY,EACZC,UAAW,EACXvC,aAAcA,EAEdwC,WAAY,CAAC,UAAU,UAAU,SAAS,YAAY,WAAW,SAUlE,SAASvO,EAAI7wmB,GAEZ,IADA,IAAIqiJ,EAAM,IAAI9zK,MAAMyxB,EAAEnxB,QACdD,EAAI,EAAGA,EAAIoxB,EAAEnxB,SAAUD,EAAGyzK,EAAIzzK,GAAK+F,OAAOk0C,aAAa7oB,EAAEpxB,IACjE,OAAOyzK,EAAI1vK,KAAK,GACjB,CAiCA,SAASqroB,EAAgBhpkB,GACxB,OAAO8pkB,EAAQA,EAAMO,eAAerqkB,GAAWsqkB,EAAStqkB,EACzD,CACA,IAAIuqkB,EAAa,CAAE,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,IAG7EC,EAAS,CAAI,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAI,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,KAGvJC,EAAS,CAAG,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,OAE7J,SAASC,EAAW/ooB,GAAK,IAAIyqB,EAA0B,QAAjBzqB,GAAG,EAAIA,GAAG,IAAsC,QAAjBA,GAAG,EAAIA,GAAG,IAAmB,OAA6B,KAApByqB,GAAG,GAAOA,GAAG,EAAIA,EAAS,CAKrI,IAHA,IAAIu+mB,EAAyC,qBAAf7yjB,WAE1B8yjB,EAAWD,EAAmB,IAAI7yjB,WAAW,KAAQ,GACjD1nC,EAAI,EAAGA,EAAK,MAASA,EAAGw6lB,EAASx6lB,GAAKs6lB,EAAWt6lB,GAEzD,SAASy6lB,EAAWlpoB,EAAGkR,GACtB,IAAImjK,EAAM40d,EAAa,IAAJjpoB,GACnB,OAAGkR,GAAK,EAAUmjK,IAAS,EAAEnjK,GAC7BmjK,EAAOA,GAAO,EAAK40d,EAAUjpoB,GAAG,EAAG,KAChCkR,GAAK,GAAWmjK,IAAS,GAAGnjK,GAC/BmjK,EAAOA,GAAO,EAAK40d,EAAUjpoB,GAAG,GAAI,QACpB,GAAGkR,EACpB,CAGA,SAASi4nB,EAAYvzd,EAAK/jG,GAAM,IAAItuE,EAAQ,EAAHsuE,EAAOruE,EAAKquE,IAAK,EAAI,OAAS+jG,EAAIpyK,IAAID,GAAK,EAAI,EAAIqyK,EAAIpyK,EAAE,IAAI,MAAMD,EAAI,CAAM,CACtH,SAAS6loB,EAAYxzd,EAAK/jG,GAAM,IAAItuE,EAAQ,EAAHsuE,EAAOruE,EAAKquE,IAAK,EAAI,OAAS+jG,EAAIpyK,IAAID,GAAK,EAAI,EAAIqyK,EAAIpyK,EAAE,IAAI,MAAMD,EAAI,CAAM,CAEtH,SAAS8loB,EAAYzzd,EAAK/jG,GAAM,IAAItuE,EAAQ,EAAHsuE,EAAOruE,EAAKquE,IAAK,EAAI,OAAS+jG,EAAIpyK,IAAID,GAAK,EAAI,EAAIqyK,EAAIpyK,EAAE,IAAI,MAAMD,EAAI,EAAM,CACtH,SAAS+loB,EAAY1zd,EAAK/jG,GAAM,IAAItuE,EAAQ,EAAHsuE,EAAOruE,EAAKquE,IAAK,EAAI,OAAS+jG,EAAIpyK,IAAID,GAAK,EAAI,EAAIqyK,EAAIpyK,EAAE,IAAI,MAAMD,EAAI,GAAM,CAGtH,SAASgmoB,EAAY3zd,EAAK/jG,EAAI7xE,GAC7B,IAAIuD,EAAQ,EAAHsuE,EAAOruE,EAAKquE,IAAK,EAAI3rE,GAAM,GAAGlG,GAAG,EACtCisB,EAAI2pJ,EAAIpyK,KAAOD,EACnB,OAAGvD,EAAI,EAAIuD,EAAU0oB,EAAI/lB,GACzB+lB,GAAK2pJ,EAAIpyK,EAAE,IAAK,EAAED,EACfvD,EAAI,GAAKuD,EAAU0oB,EAAI/lB,GAC1B+lB,GAAK2pJ,EAAIpyK,EAAE,IAAK,GAAGD,EAChBvD,EAAI,GAAKuD,EAAU0oB,EAAI/lB,GAC1B+lB,GAAK2pJ,EAAIpyK,EAAE,IAAK,GAAGD,GACR2C,GACZ,CAGA,SAASsjoB,EAAa5zd,EAAK/jG,EAAI5lD,GAAK,IAAI1oB,EAAS,EAALsuE,EAAQruE,EAAIquE,IAAO,EAM9D,OALGtuE,GAAK,EAAGqyK,EAAIpyK,KAAW,EAAJyoB,IAAU1oB,GAE/BqyK,EAAIpyK,IAAOyoB,GAAK1oB,EAAK,IACrBqyK,EAAIpyK,EAAE,IAAQ,EAAFyoB,IAAS,EAAE1oB,GAEjBsuE,EAAK,CACb,CAEA,SAAS43jB,EAAa7zd,EAAK/jG,EAAI5lD,GAI9B,OAFAA,GAAO,EAAFA,KADQ,EAAL4lD,GAER+jG,EAFoB/jG,IAAO,IAEjB5lD,EACH4lD,EAAK,CACb,CACA,SAAS63jB,EAAa9zd,EAAK/jG,EAAI5lD,GAC9B,IAAgBzoB,EAAIquE,IAAO,EAI3B,OAHA5lD,IADa,EAAL4lD,EAER+jG,EAAIpyK,IAAW,IAAJyoB,EAAUA,KAAO,EAC5B2pJ,EAAIpyK,EAAE,GAAKyoB,EACJ4lD,EAAK,CACb,CACA,SAAS83jB,EAAc/zd,EAAK/jG,EAAI5lD,GAC/B,IAAgBzoB,EAAIquE,IAAO,EAK3B,OAJA5lD,IADa,EAAL4lD,EAER+jG,EAAIpyK,IAAW,IAAJyoB,EAAUA,KAAO,EAC5B2pJ,EAAIpyK,EAAE,GAAS,IAAJyoB,EACX2pJ,EAAIpyK,EAAE,GAAKyoB,IAAM,EACV4lD,EAAK,EACb,CAGA,SAAS+3jB,EAAQ14nB,EAAGmqM,GACnB,IAAI/7I,EAAIpuD,EAAEhZ,OAAQ6zB,EAAI,EAAEuzC,EAAI+7I,EAAK,EAAE/7I,EAAI+7I,EAAK,EAAGpjN,EAAI,EACnD,GAAGqnE,GAAK+7I,EAAI,OAAOnqM,EACnB,GAAGwonB,IAAS,CACX,IAAIrwmB,EAAI0wmB,IAAehumB,GAEvB,GAAG7a,EAAEghF,KAAMhhF,EAAEghF,KAAK7oE,QACb,KAAMpxB,EAAIiZ,EAAEhZ,SAAUD,EAAGoxB,EAAEpxB,GAAKiZ,EAAEjZ,GACvC,OAAOoxB,CACR,CAAO,GAAG2/mB,EAAkB,CAC3B,IAAI/3nB,EAAI,IAAIklE,WAAWpqD,GACvB,GAAG9a,EAAEvQ,IAAKuQ,EAAEvQ,IAAIwQ,QACX,KAAMjZ,EAAIqnE,IAAKrnE,EAAGgZ,EAAEhZ,GAAKiZ,EAAEjZ,GAChC,OAAOgZ,CACR,CAEA,OADAC,EAAEhZ,OAAS6zB,EACJ7a,CACR,CAGA,SAAS24nB,EAAgB7poB,GAExB,IADA,IAAIqpB,EAAI,IAAIzxB,MAAMoI,GACV/H,EAAI,EAAGA,EAAI+H,IAAK/H,EAAGoxB,EAAEpxB,GAAK,EAClC,OAAOoxB,CACR,CAGA,SAASygnB,EAAWC,EAAO9pb,EAAM+pb,GAChC,IAAI3P,EAAS,EAAG92nB,EAAI,EAAGtL,EAAI,EAAG2c,EAAI,EAAGq1nB,EAAQ,EAAG3qkB,EAAIyqkB,EAAM7xoB,OAEtDgyoB,EAAYlB,EAAmB,IAAI31hB,YAAY,IAAMw2hB,EAAgB,IACzE,IAAI5xoB,EAAI,EAAGA,EAAI,KAAMA,EAAGiyoB,EAASjyoB,GAAK,EAEtC,IAAIA,EAAIqnE,EAAGrnE,EAAI+xoB,IAAO/xoB,EAAG8xoB,EAAM9xoB,GAAK,EACpCqnE,EAAIyqkB,EAAM7xoB,OAEV,IAAIiyoB,EAAQnB,EAAmB,IAAI31hB,YAAY/zC,GAAKuqkB,EAAgBvqkB,GAGpE,IAAIrnE,EAAI,EAAGA,EAAIqnE,IAAKrnE,EACnBiyoB,EAAU3moB,EAAIwmoB,EAAM9xoB,MACjBoioB,EAAS92nB,IAAG82nB,EAAS92nB,GACxB4moB,EAAMlyoB,GAAK,EAGZ,IADAiyoB,EAAS,GAAK,EACVjyoB,EAAI,EAAGA,GAAKoioB,IAAUpioB,EAAGiyoB,EAASjyoB,EAAE,IAAOgyoB,EAASA,EAAQC,EAASjyoB,EAAE,IAAK,EAChF,IAAIA,EAAI,EAAGA,EAAIqnE,IAAKrnE,EAEP,IADZgyoB,EAAQF,EAAM9xoB,MACCkyoB,EAAMlyoB,GAAKiyoB,EAASD,EAAM,OAI1C,IAAIG,EAAQ,EACZ,IAAInyoB,EAAI,EAAGA,EAAIqnE,IAAKrnE,EAEnB,GAAY,IADZmyoB,EAAQL,EAAM9xoB,IAGb,IADAgyoB,EAAQf,EAAWiB,EAAMlyoB,GAAIoioB,IAAUA,EAAO+P,EAC1Cx1nB,GAAK,GAAIylnB,EAAS,EAAI+P,GAAU,EAAGx1nB,GAAG,IAAKA,EAC9CqrM,EAAKgqb,EAAOr1nB,GAAGw1nB,GAAiB,GAANA,EAAanyoB,GAAG,EAG7C,OAAOoioB,CACR,CAGA,IAAIgQ,EAAWrB,EAAmB,IAAI31hB,YAAY,KAAOw2hB,EAAgB,KACrES,EAAWtB,EAAmB,IAAI31hB,YAAY,IAAOw2hB,EAAgB,IACzE,IAAIb,EAAkB,CACrB,IAAI,IAAI/woB,EAAI,EAAGA,EAAI,MAAOA,EAAGoyoB,EAASpyoB,GAAK,EAC3C,IAAIA,EAAI,EAAGA,EAAI,KAAMA,EAAGqyoB,EAASryoB,GAAK,CACvC,EACA,WAGC,IAFA,IAAIsyoB,EAA0B,GAC1BtyoB,EAAI,EACHA,EAAE,GAAIA,IAAKsyoB,EAAM3xoB,KAAK,GAC3BkxoB,EAAWS,EAAOD,EAAU,IAE5B,IAAIP,EAA0B,GAE9B,IADA9xoB,EAAI,EACEA,GAAG,IAAKA,IAAK8xoB,EAAMnxoB,KAAK,GAC9B,KAAMX,GAAG,IAAKA,IAAK8xoB,EAAMnxoB,KAAK,GAC9B,KAAMX,GAAG,IAAKA,IAAK8xoB,EAAMnxoB,KAAK,GAC9B,KAAMX,GAAG,IAAKA,IAAK8xoB,EAAMnxoB,KAAK,GAC9BkxoB,EAAWC,EAAOM,EAAU,IAC5B,CAbD,GAaK,IAAIG,EAA4B,WAGpC,IAFA,IAAIC,EAAYzB,EAAmB,IAAI7yjB,WAAW,OAAU,GACxDvhE,EAAI,EAAGjd,EAAI,EACTid,EAAIk0nB,EAAO5woB,OAAS,IAAK0c,EAC9B,KAAMjd,EAAImxoB,EAAOl0nB,EAAE,KAAMjd,EAAG8yoB,EAAU9yoB,GAAKid,EAE5C,KAAKjd,EAAI,QAASA,EAAG8yoB,EAAU9yoB,GAAK,GAEpC,IAAI+yoB,EAAY1B,EAAmB,IAAI7yjB,WAAW,KAAS,GAC3D,IAAIvhE,EAAI,EAAGjd,EAAI,EAAGid,EAAIi0nB,EAAO3woB,OAAS,IAAK0c,EAC1C,KAAMjd,EAAIkxoB,EAAOj0nB,EAAE,KAAMjd,EAAG+yoB,EAAU/yoB,GAAKid,EAgG5C,OAAO,SAAqBtB,EAAMo4J,GACjC,OAAGp4J,EAAKpb,OAAS,EA9FlB,SAAsBob,EAAMo4J,GAE3B,IADA,IAAIi/d,EAAO,EACLA,EAAOr3nB,EAAKpb,QAAQ,CACzB,IAAIonE,EAAI/mE,KAAKyhB,IAAI,MAAQ1G,EAAKpb,OAASyyoB,GACnCnnoB,EAAImnoB,EAAOrrkB,GAAKhsD,EAAKpb,OAIzB,IAHAwzK,EAAIk2d,YAAY,GAAIp+nB,GACpBkoK,EAAIk2d,YAAY,EAAGtikB,GACnBosG,EAAIk2d,YAAY,EAAU,OAALtikB,GACfA,KAAM,GAAGosG,EAAIA,EAAI7yK,KAAOya,EAAKq3nB,IACpC,CACA,OAAOj/d,EAAI7yK,CACZ,CAmF4B+xoB,CAAat3nB,EAAMo4J,GAhF/C,SAA0Bp4J,EAAMo4J,GAI/B,IAHA,IAAI75F,EAAK,EACL84jB,EAAO,EACPE,EAAQ7B,EAAmB,IAAI31hB,YAAY,OAAU,GACnDs3hB,EAAOr3nB,EAAKpb,QAAQ,CACzB,IAAIonE,EAA8B/mE,KAAKyhB,IAAI,MAAQ1G,EAAKpb,OAASyyoB,GAGjE,GAAGrrkB,EAAI,GAAP,CAMC,IAJQ,GADRuS,EAAK23jB,EAAa99d,EAAK75F,KAAQ84jB,EAAOrrkB,GAAKhsD,EAAKpb,YACrC25E,GAAM,GAAU,EAALA,IACtB65F,EAAI7yK,EAAKg5E,EAAK,EAAK,EACnB65F,EAAIk2d,YAAY,EAAGtikB,GACnBosG,EAAIk2d,YAAY,EAAU,OAALtikB,GACfA,KAAM,GAAGosG,EAAIA,EAAI7yK,KAAOya,EAAKq3nB,KACnC94jB,EAAa,EAAR65F,EAAI7yK,CAEV,KATA,CAWAg5E,EAAK23jB,EAAa99d,EAAK75F,KAAQ84jB,EAAOrrkB,GAAKhsD,EAAKpb,QAAU,GAE1D,IADA,IAAIg+N,EAAO,EACL52J,KAAM,GAAG,CACd,IAAI3hE,EAAI2V,EAAKq3nB,GAGTh7nB,GAAS,EAAGm7nB,EAAO,EAEvB,IAAIn7nB,EAAQk7nB,EAJZ30a,EAA2B,OAAlBA,GAAQ,EAAKv4N,QAKrBgS,IAAgB,MAAPg7nB,GACEA,IAAMh7nB,GAAS,OACvBA,EAAQg7nB,GAAM,KAAMr3nB,EAAK3D,EAAQm7nB,IAASx3nB,EAAKq3nB,EAAOG,IAASA,EAAO,OAAOA,EAGjF,GAAGA,EAAO,EAAG,EAEZntoB,EAAI+soB,EAAUI,KACN,GAAIj5jB,EAAK63jB,EAAah+d,EAAK75F,EAAIo3jB,EAAStroB,EAAE,IAAI,GAAK,GAE1D+roB,EAAah+d,EAAK75F,EAAI,GAEtB63jB,EAAah+d,EADb75F,GAAM,EACgBo3jB,EAAStroB,EAAE,KAAK,GACtCk0E,GAAM,GAEP,IAAIk5jB,EAAUptoB,EAAI,EAAK,EAAMA,EAAI,GAAI,EAClCotoB,EAAS,IACXpB,EAAcj+d,EAAK75F,EAAIi5jB,EAAOjC,EAAOlroB,IACrCk0E,GAAMk5jB,GAGPptoB,EAAI8soB,EAAUE,EAAOh7nB,GACrBkiE,EAAK63jB,EAAah+d,EAAK75F,EAAIo3jB,EAAStroB,IAAI,GACxCk0E,GAAM,EAEN,IAAIm5jB,EAASrtoB,EAAI,EAAI,EAAKA,EAAE,GAAI,EAC7BqtoB,EAAS,IACXrB,EAAcj+d,EAAK75F,EAAI84jB,EAAOh7nB,EAAQm5nB,EAAOnroB,IAC7Ck0E,GAAMm5jB,GAEP,IAAI,IAAIv8lB,EAAI,EAAGA,EAAIq8lB,IAAQr8lB,EAC1Bo8lB,EAAM30a,GAAe,MAAPy0a,EACdz0a,EAAoC,OAA3BA,GAAQ,EAAK5iN,EAAKq3nB,MACzBA,EAEHrrkB,GAAIwrkB,EAAO,CACZ,MAEIntoB,GAAK,IAAKA,GAAQ,GAChBk0E,EAAK43jB,EAAa/9d,EAAK75F,EAAI,GAChCA,EAAK63jB,EAAah+d,EAAK75F,EAAIo3jB,EAAStroB,IACpCktoB,EAAM30a,GAAe,MAAPy0a,IACZA,CAEJ,CAEA94jB,EAAK63jB,EAAah+d,EAAK75F,EAAI,GAAK,CAzDhC,CA0DD,CAEA,OADA65F,EAAI7yK,GAAMg5E,EAAK,GAAG,EAAG,EACd65F,EAAI7yK,CACZ,CAGQoyoB,CAAiB33nB,EAAMo4J,EAC/B,CACD,CA9GqC,GAgHrC,SAASi9d,EAASr1nB,GACjB,IAAIsiK,EAAM4vd,IAAQ,GAAGjtoB,KAAKC,MAAkB,IAAZ8a,EAAKpb,SACjCu6K,EAAM+3d,EAAYl3nB,EAAMsiK,GAC5B,OAAOA,EAAI75K,MAAM,EAAG02K,EACrB,CAGA,IAAIy4d,EAAWlC,EAAmB,IAAI31hB,YAAY,OAASw2hB,EAAgB,OACvEsB,EAAWnC,EAAmB,IAAI31hB,YAAY,OAASw2hB,EAAgB,OACvEuB,EAAWpC,EAAmB,IAAI31hB,YAAY,KAASw2hB,EAAgB,KACvEwB,EAAY,EAAGC,EAAY,EAG/B,SAASC,GAAIj4nB,EAAMq3nB,GAElB,IAAIa,EAAQnC,EAAY/1nB,EAAMq3nB,GAAQ,IAClCc,EAASpC,EAAY/1nB,EADkBq3nB,GAAQ,GACZ,EACnCe,EAvQL,SAAqB91d,EAAK/jG,GAAM,IAAItuE,EAAQ,EAAHsuE,EAAOruE,EAAKquE,IAAK,EAAI,OAAS+jG,EAAIpyK,IAAID,GAAK,EAAI,EAAIqyK,EAAIpyK,EAAE,IAAI,MAAMD,EAAI,EAAM,CAuQxGoooB,CAAYr4nB,EADiBq3nB,GAAQ,GACX,EAAGA,GAAQ,EAUlD,IATA,IAAIpnoB,EAAI,EAGJwmoB,EAAQf,EAAmB,IAAI7yjB,WAAW,IAAM0zjB,EAAgB,IAChEM,EAAQ,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAChE9P,EAAS,EACT6P,EAAYlB,EAAmB,IAAI7yjB,WAAW,GAAK0zjB,EAAgB,GACnE+B,EAAY5C,EAAmB,IAAI7yjB,WAAW,GAAK0zjB,EAAgB,GACnEvqkB,EAAIyqkB,EAAM7xoB,OACND,EAAI,EAAGA,EAAIyzoB,IAAUzzoB,EAC5B8xoB,EAAMnB,EAAW3woB,IAAMsL,EAAI6loB,EAAY91nB,EAAMq3nB,GAC1CtQ,EAAS92nB,IAAG82nB,EAAS92nB,GACxB2moB,EAAS3moB,KACTonoB,GAAQ,EAIT,IAAIV,EAAQ,EAEZ,IADAC,EAAS,GAAK,EACVjyoB,EAAI,EAAGA,GAAKoioB,IAAUpioB,EAAG2zoB,EAAU3zoB,GAAKgyoB,EAASA,EAAQC,EAASjyoB,EAAE,IAAK,EAC7E,IAAIA,EAAI,EAAGA,EAAIqnE,IAAKrnE,EAA4B,IAArBgyoB,EAAQF,EAAM9xoB,MAAUkyoB,EAAMlyoB,GAAK2zoB,EAAU3B,MAExE,IAAIG,EAAQ,EACZ,IAAInyoB,EAAI,EAAGA,EAAIqnE,IAAKrnE,EAEnB,GAAY,IADZmyoB,EAAQL,EAAM9xoB,IACC,CACdgyoB,EAAQhB,EAASkB,EAAMlyoB,KAAM,EAAEmyoB,EAC/B,IAAI,IAAIx1nB,GAAK,GAAI,EAAEw1nB,GAAQ,EAAGx1nB,GAAG,IAAKA,EAAGw2nB,EAASnB,EAAOr1nB,GAAGw1nB,GAAiB,EAANA,EAAYnyoB,GAAG,CACvF,CAID,IAAI4zoB,EAA2B,GAE/B,IADAxR,EAAS,EACHwR,EAAO3zoB,OAASszoB,EAAQC,GAG7B,OADAd,GAAgB,GADhBV,EAAQmB,EAAS9B,EAAYh2nB,EAAMq3nB,KAE3BV,KAAW,GAClB,KAAK,GAGJ,IAFA1moB,EAAI,EAAI4loB,EAAY71nB,EAAMq3nB,GAAOA,GAAQ,EACzCV,EAAQ4B,EAAOA,EAAO3zoB,OAAS,GACzBqL,KAAM,GAAGsooB,EAAOjzoB,KAAKqxoB,GAC3B,MACD,KAAK,GAEJ,IADA1moB,EAAI,EAAI6loB,EAAY91nB,EAAMq3nB,GAAOA,GAAQ,EACnCpnoB,KAAM,GAAGsooB,EAAOjzoB,KAAK,GAC3B,MACD,KAAK,GAEJ,IADA2K,EAAI,GAAK+loB,EAAYh2nB,EAAMq3nB,GAAOA,GAAQ,EACpCpnoB,KAAO,GAAGsooB,EAAOjzoB,KAAK,GAC5B,MACD,QACCizoB,EAAOjzoB,KAAKqxoB,GACT5P,EAAS4P,IAAO5P,EAAS4P,GAM/B,IAAI7rC,EAAKytC,EAAO9voB,MAAM,EAAGyvoB,GAAQM,EAAKD,EAAO9voB,MAAMyvoB,GACnD,IAAIvzoB,EAAIuzoB,EAAOvzoB,EAAI,MAAOA,EAAGmmmB,EAAGnmmB,GAAK,EACrC,IAAIA,EAAIwzoB,EAAQxzoB,EAAI,KAAMA,EAAG6zoB,EAAG7zoB,GAAK,EAGrC,OAFAozoB,EAAYvB,EAAW1rC,EAAI8sC,EAAU,KACrCI,EAAYxB,EAAWgC,EAAIX,EAAU,IAC9BR,CACR,CAiFA,SAASoB,GAAS1tkB,EAAS2tkB,GAC1B,IACItge,EAhFL,SAAiBp4J,EAAM04nB,GAEtB,GAAc,GAAX14nB,EAAK,MAAuB,EAAVA,EAAK,IAAa,MAAO,CAACwmnB,IAAYkS,GAAM,GAajE,IAVA,IAAIrB,EAAO,EAGP/lmB,EAAS,EAETwimB,EAASrN,IAAeiS,GAAa,GAAG,IACxCC,EAAO,EACPC,EAAK9E,EAAOlvoB,SAAS,EACrBi0oB,EAAY,EAAGC,EAAY,EAEX,IAAN,EAAPxnmB,IAEN,GADAA,EAASwkmB,EAAY91nB,EAAMq3nB,GAAOA,GAAQ,EACtC/lmB,IAAW,GAAM,EAoBrB,IARWA,GAAU,GAAM,GAE1BunmB,EAAY,EAAGC,EAAY,IAG3BzB,EAAOY,GAAIj4nB,EAAMq3nB,GACjBwB,EAAYd,EAAWe,EAAYd,KAE5B,EACHU,GAAQE,EAAKD,EAAO,QAAkDC,GAAxC9E,EAASwC,EAAQxC,EAAQ6E,EAAO,QAAoB/zoB,QAEtF,IAAI+8K,EAAOs0d,EAAYj2nB,EAAMq3nB,EAAMwB,GAC/B5unB,EAAQqnB,IAAS,GAAM,EAAIylmB,EAASp1d,GAAQi2d,EAASj2d,GAGzD,GAFA01d,GAAe,GAAPptnB,EAEiB,MAFNA,KAAU,KAEjB,EAAG,KAAa6pnB,EAAO6E,KAAU1unB,MACxC,IAAW,KAARA,EAAa,MAGpB,IAAIwtnB,GADJxtnB,GAAQ,KACa,EAAK,EAAMA,EAAK,GAAI,EAAOwtnB,EAAS,IAAGA,EAAS,GACrE,IAAI5qL,EAAM8rL,EAAOpD,EAAOtrnB,GAErBwtnB,EAAS,IACX5qL,GAAOopL,EAAYj2nB,EAAMq3nB,EAAMI,GAC/BJ,GAAQI,GAIT91d,EAAOs0d,EAAYj2nB,EAAMq3nB,EAAMyB,GAE/BzB,GAAe,IADfptnB,EAAQqnB,IAAS,GAAM,EAAI0lmB,EAASr1d,GAAQk2d,EAASl2d,IAErD,IAAI+1d,GADeztnB,KAAU,GACR,EAAI,EAAKA,EAAK,GAAI,EACnC08J,EAAM6ud,EAAOvrnB,GASjB,IAPGytnB,EAAS,IACX/wd,GAAOsvd,EAAYj2nB,EAAMq3nB,EAAMK,GAC/BL,GAAQK,IAILgB,GAAOE,EAAK/rL,IAA4C+rL,GAArC9E,EAASwC,EAAQxC,EAAQjnL,EAAM,MAAkBjod,QAClE+zoB,EAAO9rL,GAAOinL,EAAO6E,GAAQ7E,EAAO6E,EAAOhyd,KAAQgyd,CAC1D,CACD,KAvDA,CAEW,EAAPtB,IAAUA,GAAQ,GAAU,EAALA,IAE1B,IAAItvb,EAAK/nM,EAAKq3nB,IAAO,GAAKr3nB,EAAgB,GAAVq3nB,IAAO,KAAO,EAG9C,GAFAA,GAAQ,GAELtvb,EAAK,EAEP,KADI2wb,GAAOE,EAAKD,EAAO5wb,IAA2C6wb,GAArC9E,EAASwC,EAAQxC,EAAQ6E,EAAO5wb,IAAiBnjN,QACxEmjN,KAAO,GAAK+rb,EAAO6E,KAAU34nB,EAAKq3nB,IAAO,GAAIA,GAAQ,CAU7D,CAsCD,OAAGqB,EAAY,CAAC5E,EAASuD,EAAK,IAAK,GAC5B,CAACvD,EAAOrroB,MAAM,EAAGkwoB,GAAQtB,EAAK,IAAK,EAC3C,CAIW0B,CADChukB,EAAQtiE,MAAMsiE,EAAQxlE,GAAG,GACZmzoB,GAExB,OADA3tkB,EAAQxlE,GAAK6yK,EAAI,GACVA,EAAI,EACZ,CAEA,SAAS4ge,GAAcC,EAAKlnoB,GAC3B,IAAGknoB,EACE,MAAM,IAAI9xoB,MAAM4K,GADW,qBAAZ8sB,SAAyBA,QAAQvwB,MAAMyD,EAE5D,CAEA,SAASi9nB,GAAU1+a,EAAmB3pN,GACrC,IAAI8noB,EAAyBn+a,EAC7Bo+a,IAAUD,EAAM,GAEhB,IACI14mB,EAAI,CACPm5mB,UAFgC,GAGhCC,UAHkE,IAKnEC,EAASr5mB,EAAG,CAAEluB,KAAMlB,EAAQkB,OAI5B,IADA,IAAIlD,EAAI8poB,EAAK7poB,OAAS,GACJ,IAAX6poB,EAAK9poB,IAA2B,IAAb8poB,EAAK9poB,EAAE,IAA2B,GAAb8poB,EAAK9poB,EAAE,IAA2B,GAAb8poB,EAAK9poB,EAAE,KAAeA,GAAK,KAAKA,EACpG8poB,EAAKlpoB,EAAIZ,EAAI,EAGb8poB,EAAKlpoB,GAAK,EACV,IAAI+poB,EAAOb,EAAKE,WAAW,GAC3BF,EAAKlpoB,GAAK,EACV,IAAImuoB,EAAWjF,EAAKE,WAAW,GAK/B,IAFAF,EAAKlpoB,EAAImuoB,EAEL/uoB,EAAI,EAAGA,EAAI2qoB,IAAQ3qoB,EAAG,CAEzB8poB,EAAKlpoB,GAAK,GACV,IAAI2zoB,EAAMzK,EAAKE,WAAW,GACtB+J,EAAMjK,EAAKE,WAAW,GACtB2C,EAAU7C,EAAKE,WAAW,GAC1BwK,EAAO1K,EAAKE,WAAW,GACvByK,EAAO3K,EAAKE,WAAW,GAC3BF,EAAKlpoB,GAAK,EACV,IAAIg5D,EAASkwkB,EAAKE,WAAW,GACzB0K,EAAK7K,EAAyBC,EAAKhmoB,MAAMgmoB,EAAKlpoB,EAAE+roB,EAAS7C,EAAKlpoB,EAAE+roB,EAAQ6H,IAC5E1K,EAAKlpoB,GAAK+roB,EAAU6H,EAAOC,EAE3B,IAAIptkB,EAAIyikB,EAAKlpoB,EACbkpoB,EAAKlpoB,EAAIg5D,EAAS,EAClB+6kB,GAAiB7K,EAAMyK,EAAKR,EAAK3inB,EAAGsjnB,GACpC5K,EAAKlpoB,EAAIymE,CACV,CACA,OAAOj2C,CACR,CAIA,SAASujnB,GAAiB7K,EAAiByK,EAAgBR,EAAgB3inB,EAAoBsjnB,GAE9F5K,EAAKlpoB,GAAK,EACV,IAAIglB,EAAQkknB,EAAKE,WAAW,GACxB4K,EAAO9K,EAAKE,WAAW,GACvB71mB,EA9sCL,SAAwBwpJ,GACvB,IAAI+rd,EAA0B,MAApB/rd,EAAIqsd,WAAW,GACrBJ,EAA0B,MAApBjsd,EAAIqsd,WAAW,GACrBvioB,EAAM,IAAIwtB,KACVvvB,EAAU,GAANkkoB,EACJ71mB,EAAU,IADM61mB,KAAS,GACTA,KAAS,EAC7BnioB,EAAImxJ,gBAAgB,GACpBnxJ,EAAI6xJ,YAAYswe,EAAM,MACtBnioB,EAAI0zJ,SAASpnI,EAAE,GACftsB,EAAI2xJ,QAAQ1zJ,GACZ,IAAI4M,EAAU,GAANo3nB,EACJ51mB,EAAU,IADM41mB,KAAS,GAK7B,OAJoBA,KAAS,EAC7BjioB,EAAIyxJ,SAASwwe,GACbjioB,EAAIuxJ,WAAWllI,GACfrsB,EAAIqxJ,WAAWxmJ,GAAG,GACX7K,CACR,CA8rCYotoB,CAAe/K,GAE1B,GAAW,KAARlknB,EAAgB,MAAM,IAAIpjB,MAAM,8BACvBsnoB,EAAKE,WAAW,GAQb,IARf,IACI8K,EAAOhL,EAAKE,WAAW,GACvB+K,EAAOjL,EAAKE,WAAW,GAEvB2C,EAAU7C,EAAKE,WAAW,GAC1BwK,EAAO1K,EAAKE,WAAW,GAGvBj9nB,EAAO,GAAY/M,EAAI,EAAGA,EAAI2soB,IAAW3soB,EAAG+M,GAAQhH,OAAOk0C,aAAa6vlB,EAAKA,EAAKlpoB,MACtF,GAAG4zoB,EAAM,CACR,IAAIl4kB,EAAKutkB,EAAyBC,EAAKhmoB,MAAMgmoB,EAAKlpoB,EAAGkpoB,EAAKlpoB,EAAI4zoB,KAC1Dl4kB,EAAG,QAAS,CAAC,GAAG42H,KAAI/+J,EAAOmoC,EAAG,OAAQ42H,MACrCwhd,GAAI,CAAC,GAAG,QAAS,CAAC,GAAGxhd,KAAI/+J,EAAOugnB,EAAG,OAAQxhd,GACjD,CACA42c,EAAKlpoB,GAAK4zoB,EAKV,IAAIn5nB,EAAOyunB,EAAKhmoB,MAAMgmoB,EAAKlpoB,EAAGkpoB,EAAKlpoB,EAAIk0oB,GACvC,OAAOF,GACN,KAAK,EAAGv5nB,EA1hBV,SAAyB+qD,EAAS2tkB,GACjC,IAAI7D,EAAO,OAAO4D,GAAS1tkB,EAAS2tkB,GACpC,IACIiB,EAAU,IAAIC,EADD/E,EAAM+E,YAEnBxhe,EAAMuhe,EAAQE,cAAc9ukB,EAAQtiE,MAAMsiE,EAAQxlE,GAAIo0oB,EAAQG,kBAElE,OADA/ukB,EAAQxlE,GAAKo0oB,EAAQI,UACd3he,CACR,CAmhBiB4he,CAAgBvL,EAAMiL,GAAO,MAC5C,KAAK,EAAG,MACR,QAAS,MAAM,IAAIvyoB,MAAM,sCAAwCoyoB,GAIlE,IAAIN,GAAM,EACC,EAAR1unB,IAEU,WADJkknB,EAAKE,WAAW,KACUF,EAAKE,WAAW,GAAIsK,GAAM,GAC5DQ,EAAOhL,EAAKE,WAAW,GACvB+K,EAAOjL,EAAKE,WAAW,IAGrB8K,GAAQP,GAAKF,GAAcC,EAAK,wBAA0BC,EAAM,OAASO,GACzEC,GAAQhB,GAAKM,GAAcC,EAAK,0BAA4BP,EAAM,OAASgB,GAG9EO,GAAQlknB,EAAGrkB,EAAMsO,EAAM,CAAC8E,QAAQ,EAAM+yK,GAAI/+J,GAC3C,CA0GA,IAAIohnB,GAAkB,CACrB,IAAO,YACP,IAAO,WAEP,IAAO,YACP,IAAO,aACP,IAAO,YAEP,IAAO,oBACP,KAAQ,iCACR,QAAW,4BAGZ,SAAS7G,GAAiBxkkB,EAAiBmkkB,GAC1C,GAAGnkkB,EAAGsrkB,MAAO,OAAOtrkB,EAAGsrkB,MAEvB,IAAIC,EAAMvrkB,EAAGn9D,MAAQ,GAAIgnB,EAAI0hnB,EAAI/9nB,MAAM,eACvC,OAAGqc,GAAKwhnB,GAAexhnB,EAAE,KAEtBs6mB,IACFt6mB,GAAK0hnB,EAAMpH,GAAI32nB,MAAM,uBACb69nB,GAAexhnB,EAAE,IAJWwhnB,GAAexhnB,EAAE,IAO/C,0BACR,CAGA,SAAS66mB,GAAgBvF,GAGxB,IAFA,IAAIhunB,EAAOimnB,IAAc+H,GACrBj4mB,EAAI,GACApxB,EAAI,EAAGA,EAAIqb,EAAKpb,OAAQD,GAAI,GAAIoxB,EAAEzwB,KAAK0a,EAAKvX,MAAM9D,EAAGA,EAAE,KAC/D,OAAOoxB,EAAErtB,KAAK,QAAU,MACzB,CAgBA,SAAS4qoB,GAAuBh0mB,GAC/B,IAAI+6mB,EAAU/6mB,EAAKnoB,QAAQ,2CAA2C,SAAS0G,GAC9E,IAAI5N,EAAI4N,EAAEkI,WAAW,GAAGtU,SAAS,IAAIklB,cACrC,MAAO,KAAmB,GAAZ1mB,EAAErL,OAAc,IAAMqL,EAAIA,EACzC,IAIwB,OAFxBoqoB,EAAUA,EAAQljoB,QAAQ,OAAQ,OAAOA,QAAQ,QAAS,QAE/C6O,OAAO,KAAYq0nB,EAAU,MAAQA,EAAQ5xoB,MAAM,IAI9D,IADA,IAAIstB,EAAsB,GAAInZ,GAF9By9nB,EAAUA,EAAQljoB,QAAQ,aAAc,OAAOA,QAAQ,SAAU,SAASA,QAAQ,gBAAiB,UAErDyF,MAAM,QAC5CgzD,EAAK,EAAGA,EAAKhzD,EAAMhY,SAAUgrE,EAAI,CACxC,IAAIn5B,EAAM75B,EAAMgzD,GAChB,GAAiB,GAAdn5B,EAAI7xC,OACP,IAAI,IAAID,EAAI,EAAGA,EAAI8xC,EAAI7xC,QAAS,CAC/B,IAAI2hB,EAAM,GACNnf,EAAMqvC,EAAIhuC,MAAM9D,EAAGA,EAAI4hB,GACD,KAAvBnf,EAAI4e,OAAOO,EAAM,GAAWA,IACA,KAAvBnf,EAAI4e,OAAOO,EAAM,GAAWA,GAAO,EACZ,KAAvBnf,EAAI4e,OAAOO,EAAM,KAAWA,GAAO,GAC3Cnf,EAAMqvC,EAAIhuC,MAAM9D,EAAGA,EAAI4hB,IACvB5hB,GAAK4hB,GACEkwB,EAAI7xC,SAAQwC,GAAO,KAC1B2uB,EAAEzwB,KAAK8B,EACR,MAXsB2uB,EAAEzwB,KAAK,GAY9B,CAEA,OAAOywB,EAAErtB,KAAK,OACf,CAiBA,SAAS6moB,GAAW8C,EAAsBrynB,EAAwBnY,GAGjE,IAFA,IAAsCyyoB,EAAlCC,EAAQ,GAAIC,EAAM,GAAIL,EAAQ,GAC9B1rkB,EAAK,EACJA,EAAK,KAAMA,EAAI,CACnB,IAAIp6B,EAAOr0B,EAAKyuD,GAChB,IAAIp6B,GAAQA,EAAKh4B,MAAM,SAAU,MACjC,IAAIqc,EAAI2b,EAAKh4B,MAAM,wBACnB,GAAGqc,EAAG,OAAOA,EAAE,GAAG9xB,eACjB,IAAK,mBAAoB2zoB,EAAQ7hnB,EAAE,GAAGlS,OAAQ,MAC9C,IAAK,eAAgB2znB,EAAQzhnB,EAAE,GAAGlS,OAAQ,MAC1C,IAAK,4BAA6Bg0nB,EAAM9hnB,EAAE,GAAGlS,OAE/C,CAEA,SADEioD,EACK+rkB,EAAI5zoB,eACV,IAAK,SAAU0zoB,EAAQ5T,IAAIP,IAAcnmnB,EAAKvX,MAAMgmE,GAAI/lE,KAAK,MAAO,MACpE,IAAK,mBAAoB4xoB,EAhC3B,SAAgCt6nB,GAI/B,IAHA,IAAI+V,EAAI,GAGA04C,EAAK,EAAGA,EAAKzuD,EAAKpb,SAAU6pE,EAAI,CAEvC,IADA,IAAIp6B,EAAOr0B,EAAKyuD,GACVA,GAAMzuD,EAAKpb,QAA0C,KAAhCyvC,EAAKruB,OAAOquB,EAAKzvC,OAAS,IAAWyvC,EAAOA,EAAK5rC,MAAM,EAAG4rC,EAAKzvC,OAAS,GAAKob,IAAOyuD,GAC/G14C,EAAEzwB,KAAK+uC,EACR,CAGA,IAAI,IAAIm7B,EAAK,EAAGA,EAAKz5C,EAAEnxB,SAAU4qE,EAAIz5C,EAAEy5C,GAAMz5C,EAAEy5C,GAAIr4D,QAAQ,sBAAsB,SAAS0ynB,GAAM,OAAOn/nB,OAAOk0C,aAAaz0B,SAAS0/mB,EAAGphoB,MAAM,GAAI,IAAM,IACvJ,OAAOi+nB,IAAI3wmB,EAAErtB,KAAK,QACnB,CAmBmC+xoB,CAAuBz6nB,EAAKvX,MAAMgmE,IAAM,MACzE,QAAS,MAAM,IAAItnE,MAAM,yCAA2CqzoB,GAErE,IAAIlqb,EAAO2pb,GAAQ5H,EAAKkI,EAAM9xoB,MAAMZ,EAAKjD,QAAS01oB,EAAO,CAACx1nB,QAAQ,IAC/Dq1nB,IAAO7pb,EAAK6pb,MAAQA,EACxB,CAgGA,SAASF,GAAQ5H,EAAsB3goB,EAAiBwQ,EAAuB2lB,GAC9E,IAAI/iB,EAAS+iB,GAAQA,EAAK/iB,OACtBA,GAAQsqnB,EAASiD,GACrB,IAAI/hb,GAAQxrM,GAAUmpnB,IAAIl5nB,KAAKs9nB,EAAK3goB,GACpC,IAAI4+M,EAAM,CACT,IAAIoqb,EAAmBrI,EAAIlD,UAAU,GAClCz9nB,EAAKjJ,MAAM,EAAGiyoB,EAAM91oB,SAAW81oB,EAAOA,EAAQhpoB,GAE1B,KAAnBgpoB,EAAMjyoB,OAAO,KAAWiyoB,GAAS,KACpCA,GAASA,EAAQhpoB,GAAMyF,QAAQ,KAAK,MAErCm5M,EAAQ,CAAC5+M,KAAM1D,EAAS0D,GAAOjH,KAAM,GACrC4noB,EAAInD,UAAU5poB,KAAKgrN,GACnB+hb,EAAIlD,UAAU7poB,KAAKo1oB,GACf51nB,GAAQmpnB,IAAI9oR,MAAMw1R,OAAOtI,EAC9B,CASA,OAPA/hb,EAAKpuM,QAAWA,EAChBouM,EAAKxqM,KAAO5D,EAAUA,EAAQtd,OAAS,EACpCijC,IACCA,EAAKyqmB,QAAOhib,EAAKkhb,MAAQ3pmB,EAAKyqmB,OAC9BzqmB,EAAKgwJ,KAAIy4B,EAAKz4B,GAAKhwJ,EAAKgwJ,IACxBhwJ,EAAKwvJ,KAAIi5B,EAAKj5B,GAAKxvJ,EAAKwvJ,KAErBi5B,CACR,CA+CA,OArBAluN,EAAQ2S,KA9+BR,SAAcs9nB,EAAsBp4nB,GACnC,IAAI2goB,EAAgCvI,EAAIlD,UAAUr+nB,KAAI,SAASsd,GAAK,OAAOA,EAAEuI,aAAe,IACxFkknB,EAA4BD,EAAY9poB,KAAI,SAASsd,GAAK,IAAIoK,EAAIpK,EAAExR,MAAM,KAAM,OAAO4b,EAAEA,EAAE5zB,QAAyB,KAAfwpB,EAAE3lB,OAAO,GAAY,EAAI,GAAK,IACnIpE,GAAgB,EACM,KAAvB4V,EAAK8L,WAAW,IAAuB1hB,GAAI,EAAM4V,EAAO2goB,EAAY,GAAGnyoB,MAAM,GAAI,GAAKwR,GACpF5V,GAA2B,IAAvB4V,EAAK9R,QAAQ,KACtB,IAAI2yoB,EAAoB7goB,EAAK0c,cACzB1mB,GAAqB,IAAN5L,EAAau2oB,EAAYzyoB,QAAQ2yoB,GAAUD,EAAQ1yoB,QAAQ2yoB,GAC9E,IAAU,IAAP7qoB,EAAU,OAAOoioB,EAAInD,UAAUj/nB,GAElC,IAAIyoB,GAAKoinB,EAAOz+nB,MAAM4qnB,KAGtB,IAFA6T,EAASA,EAAO3joB,QAAQ6vnB,IAAK,IAC1BtumB,IAAGoinB,EAASA,EAAO3joB,QAAQ8vnB,IAAK,MAC/Bh3nB,EAAI,EAAGA,EAAI2qoB,EAAYh2oB,SAAUqL,EAAG,CACvC,IAAIyoB,EAAIkinB,EAAY3qoB,GAAGkH,QAAQ8vnB,IAAK,KAAO2T,EAAY3qoB,IAAIkH,QAAQ6vnB,IAAK,KAAO8T,EAAQ,OAAOzI,EAAInD,UAAUj/nB,GAC5G,IAAIyoB,EAAIminB,EAAQ5qoB,GAAGkH,QAAQ8vnB,IAAK,KAAO4T,EAAQ5qoB,IAAIkH,QAAQ6vnB,IAAK,KAAO8T,EAAQ,OAAOzI,EAAInD,UAAUj/nB,EACrG,CACA,OAAO,IACR,EA69BA7N,EAAQ8pH,KA1vCR,SAAcuihB,EAA0B9noB,GACvC,IAAI8D,EAAO9D,GAAWA,EAAQ8D,KAI9B,OAHIA,GACA27nB,KAAW33iB,OAAOvL,SAASurjB,KAAOhkoB,EAAO,UAEtCA,GAAQ,UACd,IAAK,OAA2F,OAXlG,SAAmBuD,EAAqBrH,GAEvC,OADAoooB,IACO9hoB,EAAMihoB,EAAG6M,aAAa/soB,GAAWrH,EACzC,CAQyGq0oB,CAAUvM,EAAM9noB,GACvH,IAAK,SAAiH,OAAOsG,EAAMy5nB,IAAIP,IAAcsI,IAAQ9noB,GAC7J,IAAK,SAAkG,OAAOsG,EAAMy5nB,IAAI+H,GAAO9noB,GAEhI,OAAOsG,EAAkEwhoB,EAAM9noB,EAChF,EAgvCAvE,EAAQ6K,MAAQA,EAChB7K,EAAQigB,MAv7BR,SAAegwnB,EAAsB1roB,GACpC,IAAIovB,EAAI+8mB,EAAOT,EAAK1roB,GACpB,OAAOA,GAAWA,EAAQ8D,MAAQ,UACjC,IAAK,OAAmE,OAA3DskoB,IAAUb,EAAG+M,cAAct0oB,EAAQqH,SAAW+nB,GAAoBA,EAC/E,IAAK,SAAU,MAAmB,iBAALA,EAAgBA,EAAI6wmB,EAAI7wmB,GACrD,IAAK,SAAU,OAAOkwmB,IAA0B,iBAALlwmB,EAAgBA,EAAI6wmB,EAAI7wmB,IACnE,IAAK,SAAU,GAAGqwmB,IAAS,OAAO33iB,OAAOvL,SAASntD,GAAKA,EAAIswmB,IAAYtwmB,GAEvE,IAAK,QAAS,MAAmB,iBAALA,EAAgB2wmB,IAAI3wmB,GAAKA,EAEtD,OAAOA,CACR,EA66BA3zB,EAAQ84oB,UAr8BR,SAAoB7I,EAAsBrkoB,EAAqBrH,GAC9DoooB,IACA,IAAIh5mB,EAAI+8mB,EAAOT,EAAK1roB,GAEpBunoB,EAAG+M,cAAcjtoB,EAAU+nB,EAC5B,EAi8BA3zB,EAAQ+iX,MAAQ,CACfg2R,QA/DD,SAAiBtzmB,GAChB,IAAI9R,EAAsB,CAAC,EAE3B,OADAq5mB,EAASr5mB,EAAG8R,GACL9R,CACR,EA4DCkknB,QAASA,GACTmB,QAhCD,SAAiB/I,EAAsB3goB,GACtC09nB,EAASiD,GACT,IAAI/hb,EAAO29a,IAAIl5nB,KAAKs9nB,EAAK3goB,GACzB,GAAG4+M,EAAM,IAAI,IAAIhvM,EAAI,EAAGA,EAAI+wnB,EAAInD,UAAUtqoB,SAAU0c,EAAG,GAAG+wnB,EAAInD,UAAU5tnB,IAAMgvM,EAG7E,OAFA+hb,EAAInD,UAAUt7lB,OAAOtyB,EAAG,GACxB+wnB,EAAIlD,UAAUv7lB,OAAOtyB,EAAG,IACjB,EAER,OAAO,CACR,EAwBC+5nB,QAtBD,SAAiBhJ,EAAsBiJ,EAAqBC,GAC3DnM,EAASiD,GACT,IAAI/hb,EAAO29a,IAAIl5nB,KAAKs9nB,EAAKiJ,GACzB,GAAGhrb,EAAM,IAAI,IAAIhvM,EAAI,EAAGA,EAAI+wnB,EAAInD,UAAUtqoB,SAAU0c,EAAG,GAAG+wnB,EAAInD,UAAU5tnB,IAAMgvM,EAG7E,OAFA+hb,EAAInD,UAAU5tnB,GAAG5P,KAAO1D,EAASutoB,GACjClJ,EAAIlD,UAAU7tnB,GAAKi6nB,GACZ,EAER,OAAO,CACR,EAcCZ,OAZD,SAAgBtI,GAAiCG,EAAYH,GAAK,EAAO,EAaxEmJ,UAAWA,IACXC,WAAYA,IACZ/M,UAAWA,IACX7H,QAASA,IACT6U,SAr7BD,SAAkBC,GAAQ,IACzB,IACIhC,EAAU,IAAIC,EADD+B,EAAK/B,YAGtB,GADAD,EAAQE,cAAc,IAAIh3jB,WAAW,CAAC,EAAG,IAAK82jB,EAAQG,mBACnDH,EAAQI,UACN,MAAM,IAAI5yoB,MAAM,kCADC0toB,EAAQ8G,CAE/B,CAAE,MAAM1qnB,KAAI4N,QAAQvwB,MAAM,4BAA8B2iB,IAAEgiD,SAAWhiD,KAAK,CAAE,EAg7B3EimnB,YAAa7B,EACbuG,YAAanD,GACbhE,OAAQA,GAGFryoB,CACP,CA5qDwB,GA8qDxB,IAAIy5oB,IAKJ,SAASC,IAAQ97nB,GAChB,MAAmB,kBAATA,EAA0B2mnB,IAAK3mnB,GACtC1b,MAAMqR,QAAQqK,GAx7FlB,SAAaA,GACZ,GAAyB,qBAAf6iE,WAA4B,MAAM,IAAI17E,MAAM,eACtD,OAAO,IAAI07E,WAAW7iE,EACvB,CAq7FgC+7nB,CAAI/7nB,GAC5BA,CACR,CAEA,SAASg8nB,IAASzB,EAAkBxvkB,EAAiBw7jB,GAEpD,GAAkB,qBAARsV,KAAuBA,IAAIZ,cAAe,OAAO1U,EAAMsV,IAAIZ,cAAcV,EAAOxvkB,EAASw7jB,GAAOsV,IAAIZ,cAAcV,EAAOxvkB,GACnI,GAAmB,qBAATtuD,KAAsB,CAE/B,GAAG8pnB,GAAyB,iBAAXx7jB,EAAqB,OAAOw7jB,GAC5C,IAAK,OAAQx7jB,EAAU,IAAIynT,YAAY+zQ,GAAKjqb,OAAOvxI,GAAU,MAC7D,IAAK,SAAUA,EAAU47jB,IAAK57jB,GAAU,MAExC,QAAS,MAAM,IAAI5jE,MAAM,wBAA0Bo/nB,GAEpD,OAAO9pnB,KAAKw+nB,cAAcV,EAAOxvkB,EAClC,CACA,IAAI/qD,EAAe,QAAPumnB,EAAiB0V,IAAUlxkB,GAAWA,EAElD,GAA0B,qBAAhBmxkB,YAA6B,OAAOA,YAAYl8nB,EAAMu6nB,GAChE,GAAmB,qBAAT56lB,KAAsB,CAC/B,IAAI8ulB,EAAO,IAAI9ulB,KAAK,CAACm8lB,IAAQ97nB,IAAQ,CAACvV,KAAK,6BAE3C,GAAwB,qBAAd81C,WAA6BA,UAAU47lB,WAAY,OAAO57lB,UAAU47lB,WAAW1N,EAAM8L,GAE/F,GAAqB,qBAAXtooB,OAAwB,OAAOA,OAAOw8nB,EAAM8L,GACtD,GAAkB,qBAAR95lB,KAA2C,qBAAb11C,UAA4BA,SAASf,eAAiBy2C,IAAIK,gBAAiB,CAClH,IAAIn7C,EAAM86C,IAAIK,gBAAgB2tlB,GAE9B,GAAqB,kBAAXnnf,QAAiE,mBAAlCA,OAAO80f,WAAW,CAAC,GAAGz7lB,SAE9D,OADGF,IAAIM,iBAAyC,qBAAfpwB,YAA4BA,YAAW,WAAa8vB,IAAIM,gBAAgBp7C,EAAM,GAAG,KAC3G2hJ,OAAO80f,UAAUz7lB,SAAS,CAAEh7C,IAAKA,EAAKqI,SAAUusoB,EAAOtooB,QAAQ,IAEvE,IAAI0L,EAAI5S,SAASf,cAAc,KAC/B,GAAiB,MAAd2T,EAAEgjC,SAKJ,OAHAhjC,EAAEgjC,SAAW45lB,EAAO58nB,EAAE/X,KAAOD,EAAKoF,SAASuE,KAAKzD,YAAY8R,GAAIA,EAAE01X,QACAtoY,SAASuE,KAAKlE,YAAYuS,GACzF8iC,IAAIM,iBAAyC,qBAAfpwB,YAA4BA,YAAW,WAAa8vB,IAAIM,gBAAgBp7C,EAAM,GAAG,KAC3GA,CAET,CACD,CAEA,GAAgB,qBAANwS,GAAqC,qBAATg2mB,MAA0C,qBAAXkuB,OAAwB,IAE5F,IAAIjke,EAAM+1c,KAAKosB,GAEkB,OAFVnie,EAAIp1J,KAAK,KAAMo1J,EAAI8mB,SAAW,SAClD56L,MAAMqR,QAAQo1D,KAAUA,EAAU67jB,IAAI77jB,IACzCqtG,EAAI/1J,MAAM0oD,GAAUqtG,EAAI91J,QAAgByoD,CACzC,CAAE,MAAM95C,KAAK,IAAIA,IAAEgiD,UAAYhiD,IAAEgiD,QAAQ52D,MAAM,YAAa,MAAM4U,GAAG,CACrE,MAAM,IAAI9pB,MAAM,oBAAsBozoB,EACvC,CAeA,SAAS7woB,IAAKqsB,GAEb,IADA,IAAIoxL,EAAK19M,OAAOC,KAAKqsB,GAAIumnB,EAAK,GACtB33oB,EAAI,EAAGA,EAAIwiN,EAAGviN,SAAUD,EAAM8E,OAAOnG,UAAUyD,eAAevD,KAAKuyB,EAAGoxL,EAAGxiN,KAAK23oB,EAAGh3oB,KAAK6hN,EAAGxiN,IACjG,OAAO23oB,CACR,CAEA,SAASC,IAAUr2oB,EAAaqC,GAE/B,IADA,IAAIwtB,EAAK,GAAak1C,EAAIvhE,IAAKxD,GACvBvB,EAAI,EAAGA,IAAMsmE,EAAErmE,SAAUD,EAA2B,MAArBoxB,EAAE7vB,EAAI+kE,EAAEtmE,IAAI4D,MAAewtB,EAAE7vB,EAAI+kE,EAAEtmE,IAAI4D,IAAQ0iE,EAAEtmE,IACxF,OAAOoxB,CACR,CAEA,SAASymnB,IAAMt2oB,GAEd,IADA,IAAI6vB,EAAK,GAAak1C,EAAIvhE,IAAKxD,GACvBvB,EAAI,EAAGA,IAAMsmE,EAAErmE,SAAUD,EAAGoxB,EAAE7vB,EAAI+kE,EAAEtmE,KAAOsmE,EAAEtmE,GACrD,OAAOoxB,CACR,CAEA,SAAS0mnB,IAAUv2oB,GAElB,IADA,IAAI6vB,EAAK,GAAak1C,EAAIvhE,IAAKxD,GACvBvB,EAAI,EAAGA,IAAMsmE,EAAErmE,SAAUD,EAAGoxB,EAAE7vB,EAAI+kE,EAAEtmE,KAAOwlB,SAAS8gD,EAAEtmE,GAAG,IACjE,OAAOoxB,CACR,CAWA,IAAI2mnB,IAAwB,IAAI9inB,KAAK,KAAM,GAAI,GAAI,EAAG,EAAG,GACzD,SAAS+inB,IAAQhknB,EAAY2vmB,GAC5B,IAAIM,EAAqBjwmB,EAAE6C,UAG3B,OAFG8smB,IAAUM,GAAS,YAEdA,GADoB8T,IAASlhnB,UAA+F,KAArE7C,EAAEoD,oBAAmC2gnB,IAAS3gnB,uBACjF,KAC7B,CACA,IAAI6gnB,IAAuB,IAAIhjnB,KAC3BijnB,IAAwBH,IAASlhnB,UAAqG,KAA3EohnB,IAAQ7gnB,oBAAmC2gnB,IAAS3gnB,qBAC/G+gnB,IAAyBF,IAAQ7gnB,oBACrC,SAASghnB,IAAQpknB,GAChB,IAAIy/I,EAAM,IAAIx+I,KAKd,OAJAw+I,EAAI5J,QAAY,GAAJ71I,EAAS,GAAK,GAAK,IAAOkknB,KAClCzke,EAAIr8I,sBAAwB+gnB,KAC/B1ke,EAAI5J,QAAQ4J,EAAI58I,UAAoD,KAAvC48I,EAAIr8I,oBAAsB+gnB,MAEjD1ke,CACR,CA6BA,IAAI4ke,IAA8B,IAAIpjnB,KAAK,4BACvCqjnB,IAA4Br2nB,MAAmBo2nB,IAAehjnB,eAA8B,IAAIJ,KAAK,WAAaojnB,IAClHE,IAAqD,MAA9BD,IAAajjnB,cAExC,SAAS4wgB,IAAUn0f,EAAqB0mmB,GACvC,IAAI9yoB,EAAI,IAAIuvB,KAAK6c,GACjB,GAAGymmB,IAIF,OAFGC,EAAU,EAAG9yoB,EAAEmkK,QAAQnkK,EAAEmxB,UAAoC,GAAxBnxB,EAAE0xB,oBAA2B,KAC7DohnB,EAAU,GAAG9yoB,EAAEmkK,QAAQnkK,EAAEmxB,UAAoC,GAAxBnxB,EAAE0xB,oBAA2B,KACnE1xB,EAER,GAAGosC,aAAe7c,KAAM,OAAO6c,EAC/B,GAAiC,MAA9BwmmB,IAAajjnB,gBAA0BpT,MAAMvc,EAAE2vB,eAAgB,CACjE,IAAI5C,EAAI/sB,EAAE2vB,cACV,OAAGyc,EAAItuC,QAAQ,GAAKivB,IAAM,GAC1B/sB,EAAE4zJ,YAAY5zJ,EAAE2vB,cAAgB,KADI3vB,CAErC,CACA,IAAIqC,EAAI+pC,EAAIp6B,MAAM,SAAS,CAAC,OAAO,IAAI,KAAK,IAAI,IAAI,KAChD+7J,EAAM,IAAIx+I,MAAMltB,EAAE,IAAKA,EAAE,GAAK,GAAIA,EAAE,IAAMA,EAAE,IAAI,GAAMA,EAAE,IAAI,GAAMA,EAAE,IAAI,GAE5E,OADG+pC,EAAItuC,QAAQ,MAAQ,IAAGiwK,EAAM,IAAIx+I,KAAKw+I,EAAI58I,UAAsC,GAA1B48I,EAAIr8I,oBAA2B,MACjFq8I,CACR,CAEA,SAASgle,IAAOttf,EAAuButf,GACtC,GAAGjX,KAAW33iB,OAAOvL,SAAS4sE,GAAM,CACnC,GAAGutf,EAAS,CACX,GAAa,KAAVvtf,EAAI,IAAwB,KAAVA,EAAI,GAAY,OAAOmsf,IAAUnsf,EAAIrnJ,MAAM,GAAGgJ,SAAS,YAC5E,GAAa,KAAVq+I,EAAI,IAAwB,KAAVA,EAAI,GAAY,OAAOmsf,IAAUrW,IAAY91e,EAAIrnJ,MAAM,GAAGgJ,SAAS,WACzF,CACA,OAAOq+I,EAAIr+I,SAAS,SACrB,CAEA,GAA0B,qBAAhBs3K,YAA6B,IACtC,GAAGs0d,EAAS,CACX,GAAa,KAAVvtf,EAAI,IAAwB,KAAVA,EAAI,GAAY,OAAOmsf,IAAU,IAAIlzd,YAAY,YAAY/hD,OAAO8oB,EAAIrnJ,MAAM,KACnG,GAAa,KAAVqnJ,EAAI,IAAwB,KAAVA,EAAI,GAAY,OAAOmsf,IAAU,IAAIlzd,YAAY,YAAY/hD,OAAO8oB,EAAIrnJ,MAAM,IACpG,CACA,IAAIs4K,EAAM,CACT,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAChE,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAChE,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAChE,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAChE,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAChE,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAChE,SAAU,OAAQ,SAAU,OAAQ,SAAU,QAG/C,OADGz8K,MAAMqR,QAAQm6I,KAAMA,EAAM,IAAIjtE,WAAWitE,IACrC,IAAIi5B,YAAY,UAAU/hD,OAAO8oB,GAAK34I,QAAQ,yKAAkC,SAAS0G,GAAK,OAAOkjK,EAAIljK,IAAMA,CAAG,GAC1H,CAAE,MAAMoT,KAAI,CAGZ,IADA,IAAI8E,EAAI,GACApxB,EAAI,EAAGA,GAAKmrJ,EAAIlrJ,SAAUD,EAAGoxB,EAAEzwB,KAAKoF,OAAOk0C,aAAakxG,EAAInrJ,KACpE,OAAOoxB,EAAErtB,KAAK,GACf,CAEA,SAAS40oB,IAAIvnnB,GACZ,GAAkB,oBAAR/oB,OAAwB1I,MAAMqR,QAAQogB,GAAI,OAAO/oB,KAAKC,MAAMD,KAAKE,UAAU6oB,IACrF,GAAe,iBAALA,GAAsB,MAALA,EAAW,OAAOA,EAC7C,GAAGA,aAAa6D,KAAM,OAAO,IAAIA,KAAK7D,EAAEyF,WACxC,IAAI48I,EAAM,CAAC,EACX,IAAI,IAAI/zK,KAAK0xB,EAAMtsB,OAAOnG,UAAUyD,eAAevD,KAAKuyB,EAAG1xB,KAAI+zK,EAAI/zK,GAAKi5oB,IAAIvnnB,EAAE1xB,KAC9E,OAAO+zK,CACR,CAEA,SAAS/oE,IAAKxxF,EAAatY,GAAuC,IAAZ,IAAIwwB,EAAI,GAAUA,EAAEnxB,OAASW,GAAGwwB,GAAGlY,EAAG,OAAOkY,CAAG,CAGtG,SAASwnnB,IAASnmnB,GACjB,IAAIuB,EAAehuB,OAAOysB,GAC1B,IAAIxQ,MAAM+R,GAAI,OAAO42D,SAAS52D,GAAKA,EAAIzO,IACvC,IAAI,KAAKzJ,KAAK2W,GAAI,OAAOuB,EACzB,IAAIw/J,EAAK,EACLjiC,EAAK9+H,EAAEjgB,QAAQ,iBAAiB,QAAQA,QAAQ,OAAO,IAAIA,QAAQ,QAAQ,WAAwB,OAAXghL,GAAM,IAAY,EAAG,IACjH,OAAIvxK,MAAM+R,EAAIhuB,OAAOurJ,KACrBA,EAAKA,EAAG/+I,QAAQ,cAAa,SAAS0ynB,EAAIC,GAAgB,OAAV3xc,GAAMA,EAAW2xc,CAAG,IAChEljnB,MAAM+R,EAAIhuB,OAAOurJ,IACdv9H,EAD2BA,EAAIw/J,GAFJx/J,EAAIw/J,CAIvC,CACA,IAAIqld,IAAe,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YAClI,SAASC,IAAUrmnB,GAClB,IAAIrB,EAAI,IAAI6D,KAAKxC,GAAI1qB,EAAI,IAAIktB,KAAK1P,KAC9BsO,EAAIzC,EAAE2rR,UAAWhpR,EAAI3C,EAAEmE,WAAY7vB,EAAI0rB,EAAEqE,UAC7C,GAAGxT,MAAMvc,GAAI,OAAOqC,EACpB,IAAIumF,EAAQ77D,EAAExwB,cACd,GAAGqsF,EAAM52E,MAAM,oDAEd,IADA42E,EAAQA,EAAM97E,QAAQ,UAAU,IAAIA,QAAQ,6BAA6B,KAChEvS,OAAS,IAAqC,GAAhC44oB,IAAar1oB,QAAQ8qF,GAAc,OAAOvmF,OAC3D,GAAGumF,EAAM52E,MAAM,SAAU,OAAO3P,EACvC,OAAG8rB,EAAI,GAAKA,EAAI,KAAa9rB,GACzBgsB,EAAI,GAAKruB,EAAI,IAAW,KAALmuB,EAAiBzC,EACrCqB,EAAE/a,MAAM,iBAAyB3P,EAC7BqpB,CACR,CA8EA,SAAS2nnB,IAAa/1iB,EAAK1tF,EAAMiI,GAChC,GAAGylF,EAAIwniB,UAAW,CAEhB,IAAI9omB,EADL,GAAqB,iBAAXnkB,EAMT,OAJYmkB,EAAT+/lB,IAAeC,IAAYnknB,GAztGjC,SAAoBA,GAGnB,IAFA,IAAIk2J,EAAM,GAAIule,EAAO,EAAG3xkB,EAAI9pD,EAAQtd,OAAS,IACzCmxB,EAAIywmB,IAAYtknB,EAAQtd,OAAS,KAC7Bg5oB,EAAO,EAAGA,EAAO17nB,EAAQtd,SAAUg5oB,EAAM,CAChD,IAAI//nB,EAAIqE,EAAQ6D,WAAW63nB,GAC3B,GAAG//nB,EAAI,IAAMkY,EAAE4nnB,KAAU9/nB,OACpB,GAAGA,EAAI,KACXkY,EAAE4nnB,KAAW,IAAM9/nB,GAAG,EAAG,GACzBkY,EAAE4nnB,KAAW,IAAO,GAAF9/nB,OACZ,GAAGA,GAAK,OAAUA,EAAI,MAAQ,CACpCA,EAAa,IAAN,KAAFA,GACL,IAAIxT,EAA+B,KAA3B6X,EAAQ6D,aAAa63nB,GAC7B7nnB,EAAE4nnB,KAAW,IAAM9/nB,GAAG,EAAG,EACzBkY,EAAE4nnB,KAAW,IAAM9/nB,GAAG,EAAG,GACzBkY,EAAE4nnB,KAAW,IAAMtzoB,GAAG,EAAG,IAAQ,EAAFwT,IAAM,EACrCkY,EAAE4nnB,KAAW,IAAO,GAAFtzoB,CACnB,MACC0rB,EAAE4nnB,KAAW,IAAM9/nB,GAAG,GAAI,GAC1BkY,EAAE4nnB,KAAW,IAAM9/nB,GAAG,EAAG,GACzBkY,EAAE4nnB,KAAW,IAAO,GAAF9/nB,EAEhB8/nB,EAAO3xkB,IACTosG,EAAI9yK,KAAKywB,EAAEttB,MAAM,EAAGk1oB,IACpBA,EAAO,EACP5nnB,EAAIywmB,IAAY,OAChBx6jB,EAAI,MAEN,CAEA,OADAosG,EAAI9yK,KAAKywB,EAAEttB,MAAM,EAAGk1oB,IACb9W,IAAQzud,EAChB,CA8rGcyle,CAAW37nB,GACf+rnB,IAAI9oR,MAAM80R,QAAQtyiB,EAAK1tF,EAAMosB,GAErC4nmB,IAAI9oR,MAAM80R,QAAQtyiB,EAAK1tF,EAAMiI,EAC9B,MACKylF,EAAI2oH,KAAKr2M,EAAMiI,EACrB,CAEA,SAAS47nB,MAAY,OAAO7P,IAAI9oR,MAAMg2R,SAAW,CAuBjD,IAAI4C,IAAa,8DAoCjB,IAAIC,IAAY,CACf,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,QAAS,KAENC,IAAyBzB,IAAMwB,KAe/BE,IAAS,WAAYC,IAAW,gCACpC,SAASC,IAAU9+mB,GAElB,OADQA,EAAO,IACNnoB,QAAQ+moB,KAAU,SAAS1lnB,GAAK,OAAOylnB,IAAUzlnB,EAAI,IAAGrhB,QAAQgnoB,KAAS,SAAS/mnB,GAAK,MAAO,MAAQ,MAAMA,EAAErR,WAAW,GAAGtU,SAAS,KAAKhJ,OAAO,GAAK,GAAI,GACpK,CACA,SAAS41oB,IAAa/+mB,GAA6B,OAAO8+mB,IAAU9+mB,GAAMnoB,QAAQ,KAAK,UAAY,CAEnG,IAAImnoB,IAAe,mBACnB,SAASC,IAAWj/mB,GAEnB,OADQA,EAAO,IACNnoB,QAAQ+moB,KAAU,SAAS1lnB,GAAK,OAAOylnB,IAAUzlnB,EAAI,IAAGrhB,QAAQ,MAAO,SAASA,QAAQmnoB,KAAa,SAASlnnB,GAAK,MAAO,OAAS,MAAMA,EAAErR,WAAW,GAAGtU,SAAS,KAAKhJ,OAAO,GAAK,GAAK,GAClM,CAeA,SAAS+1oB,IAAan8oB,GACrB,OAAOA,GACN,KAAK,EAAG,KAAK,EAAM,IAAK,IAAK,IAAK,OAAQ,IAAK,OAAQ,OAAO,EAE9D,QAAS,OAAO,EAElB,CAEA,SAASo8oB,IAAUt7oB,GAElB,IADA,IAAIi1K,EAAM,GAAIzzK,EAAI,EAAGkZ,EAAI,EAAGxT,EAAI,EAAG4mB,EAAI,EAAGre,EAAI,EAAG3C,EAAI,EAC9CtL,EAAIxB,EAAKyB,SACfiZ,EAAI1a,EAAK4iB,WAAWphB,MACZ,IAAOyzK,GAAO1tK,OAAOk0C,aAAa/gC,IAC1CxT,EAAIlH,EAAK4iB,WAAWphB,KAChBkZ,EAAE,KAAOA,EAAE,KAAOjL,GAAU,GAAJiL,IAAW,EAAIjL,GAAU,GAAJvI,EAAS+tK,GAAO1tK,OAAOk0C,aAAahsC,KACrFqe,EAAI9tB,EAAK4iB,WAAWphB,KAChBkZ,EAAI,IAAOu6J,GAAO1tK,OAAOk0C,cAAmB,GAAJ/gC,IAAW,IAAY,GAAJxT,IAAW,EAAU,GAAJ4mB,IAEhFhhB,IAAW,EAAJ4N,IAAU,IAAY,GAAJxT,IAAW,IAAY,GAAJ4mB,IAAW,EAAU,IADjEre,EAAIzP,EAAK4iB,WAAWphB,OACkD,MACtEyzK,GAAO1tK,OAAOk0C,aAAa,OAAW3uC,IAAI,GAAI,OAC9CmoK,GAAO1tK,OAAOk0C,aAAa,OAAY,KAAF3uC,OAEtC,OAAOmoK,CACR,CAEA,SAASsme,IAAU1+nB,GAClB,IAAsC/P,EAAGtL,EAAuBkZ,EAA5Du6J,EAAMoud,IAAY,EAAExmnB,EAAKpb,QAAe0c,EAAI,EAAGjd,EAAI,EAAG+xJ,EAAG,EAC7D,IAAIzxJ,EAAI,EAAGA,EAAIqb,EAAKpb,OAAQD,GAAG2c,EAC9BA,EAAI,GACAzD,EAAEmC,EAAK+F,WAAWphB,IAAM,IAAKsL,EAAI4N,EAC7BA,EAAI,KAAO5N,EAAW,IAAJ,GAAF4N,IAA+B,GAArBmC,EAAK+F,WAAWphB,EAAE,IAAQ2c,EAAE,GACtDzD,EAAI,KAAO5N,EAAS,MAAJ,GAAF4N,GAAqC,IAAJ,GAArBmC,EAAK+F,WAAWphB,EAAE,KAAgC,GAArBqb,EAAK+F,WAAWphB,EAAE,IAAQ2c,EAAE,IACpFA,EAAI,EACVrR,EAAY,QAAH,EAAJ4N,GAAwC,MAAJ,GAArBmC,EAAK+F,WAAWphB,EAAE,IAAsC,IAAJ,GAArBqb,EAAK+F,WAAWphB,EAAE,KAAgC,GAArBqb,EAAK+F,WAAWphB,EAAE,IACtFyxJ,EAAK,QAAjBnmJ,GAAK,SAA2B,GAAI,MAAOA,EAAI,OAAY,KAAFA,IAEhD,IAAPmmJ,IAAYgiB,EAAI/zK,KAAU,IAAH+xJ,EAAQgiB,EAAI/zK,KAAO+xJ,IAAK,EAAGA,EAAK,GAC1DgiB,EAAI/zK,KAAO4L,EAAE,IAAKmoK,EAAI/zK,KAAO4L,IAAI,EAElC,OAAOmoK,EAAI3vK,MAAM,EAAEpE,GAAGoN,SAAS,OAChC,CAEA,SAASktoB,IAAU3+nB,GAAQ,OAAOqmnB,IAAYrmnB,EAAM,UAAUvO,SAAS,OAAS,CAEhF,IAAImtoB,IAAa,0CACbC,IAAWzY,MAAyBuY,IAAUC,MAA4BH,IAAUG,MAAeD,KAA0BD,IAAUE,MAA4BH,IAAUG,MAAeF,MAAcD,IAE1MxC,IAA2B7V,IAAU,SAASpmnB,GAAQ,OAAOqmnB,IAAYrmnB,EAAM,QAAQvO,SAAS,SAAW,EAAI,SAAStO,GAE3H,IADA,IAAIi1K,EAAwB,GAAIzzK,EAAI,EAAGkZ,EAAI,EAAGxT,EAAI,EAC5C1F,EAAIxB,EAAKyB,QAEd,OADAiZ,EAAI1a,EAAK4iB,WAAWphB,MACb,GACN,KAAKkZ,EAAI,IAAKu6J,EAAI9yK,KAAKoF,OAAOk0C,aAAa/gC,IAAK,MAChD,KAAKA,EAAI,KACRu6J,EAAI9yK,KAAKoF,OAAOk0C,aAAa,KAAO/gC,GAAK,KACzCu6J,EAAI9yK,KAAKoF,OAAOk0C,aAAa,KAAW,GAAJ/gC,KACpC,MACD,KAAKA,GAAK,OAASA,EAAI,MACtBA,GAAK,MAAOxT,EAAIlH,EAAK4iB,WAAWphB,KAAO,OAASkZ,GAAG,IACnDu6J,EAAI9yK,KAAKoF,OAAOk0C,aAAa,KAAQv0C,GAAI,GAAM,KAC/C+tK,EAAI9yK,KAAKoF,OAAOk0C,aAAa,KAAQv0C,GAAI,GAAM,MAC/C+tK,EAAI9yK,KAAKoF,OAAOk0C,aAAa,KAAQv0C,GAAK,EAAK,MAC/C+tK,EAAI9yK,KAAKoF,OAAOk0C,aAAa,KAAW,GAAJv0C,KACpC,MACD,QACC+tK,EAAI9yK,KAAKoF,OAAOk0C,aAAa,KAAO/gC,GAAK,MACzCu6J,EAAI9yK,KAAKoF,OAAOk0C,aAAa,KAAQ/gC,GAAK,EAAK,MAC/Cu6J,EAAI9yK,KAAKoF,OAAOk0C,aAAa,KAAW,GAAJ/gC,KAGvC,OAAOu6J,EAAI1vK,KAAK,GACjB,EAYIo2oB,IAAmD,WACtD,IAAI7ka,EAAuC,CAC1C,CAAC,OAAQ,KAAM,CAAC,SAAU,QAC1B,CAAC,OAAQ,KAAM,CAAC,OAAQ,KAAM,CAAC,KAAQ,KAAM,CAAC,KAAQ,KAAM,CAAC,MAAQ,MACpEnpO,KAAI,SAASsd,GAA0B,MAAO,CAAC,IAAIhI,OAAO,IAAMgI,EAAE,GAAK,IAAK,MAAOA,EAAE,GAAK,IAC5F,OAAO,SAAoBqoB,GAc1B,IAbA,IAAI1gB,EAAI0gB,EAELt/B,QAAQ,cAAe,IAEvBA,QAAQ,cAAc,IAEtBA,QAAQ,QAAQ,KAAKA,QAAQ,QAAQ,KAErCA,QAAQ,cAAe,KAEvBA,QAAQ,uBAAuB,MAE/BA,QAAQ,WAAW,IACdxS,EAAI,EAAGA,EAAIs1O,EAASr1O,SAAUD,EAAGoxB,EAAIA,EAAE5e,QAAQ8iO,EAASt1O,GAAG,GAAIs1O,EAASt1O,GAAG,IACnF,OAAOoxB,CACR,CACD,CAtBuD,GA8CvD,IAAIgpnB,IAAU,eACd,SAASC,IAASpsoB,EAAaymB,GAA2B,MAAO,IAAMzmB,GAAKymB,EAAEhd,MAAM0ioB,KAAS,wBAA0B,IAAM,IAAM1lnB,EAAI,KAAOzmB,EAAI,GAAK,CAEvJ,SAASqsoB,IAAW/uoB,GAAgB,OAAOxG,IAAKwG,GAAGY,KAAI,SAASzM,GAAK,MAAO,IAAMA,EAAI,KAAO6L,EAAE7L,GAAK,GAAI,IAAGqE,KAAK,GAAK,CACrH,SAASw2oB,IAAUtsoB,EAAaymB,EAAcnpB,GAAK,MAAO,IAAM0C,GAAW,MAAL1C,EAAa+uoB,IAAW/uoB,GAAK,KAAa,MAALmpB,GAAcA,EAAEhd,MAAM0ioB,KAAS,wBAA0B,IAAM,IAAM1lnB,EAAI,KAAOzmB,EAAI,KAAO,GAAI,CAE1M,SAASusoB,IAAa90oB,EAAY8sB,GAA6B,IAAM,OAAO9sB,EAAE6xB,cAAc/kB,QAAQ,QAAQ,GAAK,CAAE,MAAM8Z,KAAK,GAAGkG,EAAG,MAAMlG,GAAG,CAAE,MAAO,EAAI,CAuB1J,IAGImunB,IACS,0EADTA,IAES,0EAFTA,IAGQ,4EAHRA,IAIC,+DAJDA,IAKG,+DALHA,IAMI,0EANJA,IAOG,mCAPHA,IAQQ,4BARRA,IASS,+BATTA,IAWE,sEAXFA,IAaG,uEAbHA,IAcI,4CAdJA,IAeI,mCAGJC,IAAa,CAChB,4DACA,gDACA,sDACA,oDAGGC,IACK,0CADLA,IAEK,yCAFLA,IAGK,+CAHLA,IAIK,4CAJLA,IAKK,yBALLA,IAMK,gCANLA,IAOK,kCA6BT,IAAIC,IAAc,SAASzY,GAAmE,IAAlB,IAAI14mB,EAAE,GAAoBzpB,EAAE,EAAEA,EAAEmioB,EAAK,GAAGlioB,SAASD,EAAG,GAAGmioB,EAAK,GAAGnioB,GAAI,IAAI,IAAI2c,EAAE,EAAE0qD,EAAE86jB,EAAK,GAAGnioB,GAAGC,OAAO0c,EAAE0qD,EAAE1qD,GAA5F,MAAkG8M,EAAE9oB,KAAKwY,MAAMsQ,EAAG04mB,EAAK,GAAGnioB,GAAG8D,MAAM6Y,EAAEA,EAArI,QAA4I,OAAO8M,CAAG,EACzO4inB,IAAa5K,IAAU,SAASU,GAAQ,OAAQA,EAAK,GAAGlioB,OAAS,GAAK6pF,OAAOvL,SAAS4jjB,EAAK,GAAG,IAAOr4iB,OAAOxmF,OAAO6+nB,EAAK,GAAGh2nB,KAAI,SAASsd,GAAK,OAAOqgE,OAAOvL,SAAS90D,GAAKA,EAAIi4mB,IAAYj4mB,EAAI,KAAMmxnB,IAAYzY,EAAM,EAAIyY,IAEzNC,IAAa,SAAS5hoB,EAAsBwZ,EAAanG,GAAwD,IAA7B,IAAIilI,EAAqB,GAAYvxJ,EAAEyyB,EAAGzyB,EAAEssB,EAAGtsB,GAAG,EAAGuxJ,EAAG5wJ,KAAKoF,OAAOk0C,aAAa6gmB,IAAe7hoB,EAAEjZ,KAAM,OAAOuxJ,EAAGxtJ,KAAK,IAAIyO,QAAQ6vnB,IAAK,GAAK,EACjOuK,IAAYnL,IAAU,SAASxonB,EAAsBwZ,EAAanG,GAA2B,OAAIw9D,OAAOvL,SAAStlE,GAAqEA,EAAEnM,SAAS,UAAU2lB,EAAEnG,GAAG9Z,QAAQ6vnB,IAAK,IAAjEwY,IAAW5hoB,EAAEwZ,EAAEnG,EAA6E,EAAIuunB,IAE5PE,IAAa,SAAS9hoB,EAAsBwZ,EAAa7xB,GAAwD,IAA7B,IAAI2wJ,EAAqB,GAAYvxJ,EAAEyyB,EAAGzyB,EAAEyyB,EAAE7xB,IAAKZ,EAAGuxJ,EAAG5wJ,MAAM,IAAMsY,EAAEjZ,GAAG8M,SAAS,KAAKhJ,OAAO,IAAK,OAAOytJ,EAAGxtJ,KAAK,GAAK,EAC5Mi3oB,IAAYvZ,IAAU,SAASxonB,EAAsBwZ,EAAa7xB,GAA2B,OAAOkpF,OAAOvL,SAAStlE,GAAkCA,EAAEnM,SAAS,MAAM2lB,EAAEA,EAAE7xB,GAAKm6oB,IAAW9hoB,EAAEwZ,EAAE7xB,EAAI,EAAIm6oB,IAEvME,IAAU,SAAShioB,EAAsBwZ,EAAanG,GAA2B,IAAX,IAAIilI,EAAG,GAAYvxJ,EAAEyyB,EAAGzyB,EAAEssB,EAAGtsB,IAAKuxJ,EAAG5wJ,KAAKoF,OAAOk0C,aAAaihmB,IAAYjioB,EAAEjZ,KAAM,OAAOuxJ,EAAGxtJ,KAAK,GAAK,EAC5Ko3oB,IAAS1Z,IAAU,SAAgBxonB,EAAuBwZ,EAAcnG,GAAgB,OAAQw9D,OAAOvL,SAAStlE,GAAqCA,EAAEnM,SAAS,OAAO2lB,EAAEnG,GAAK2unB,IAAQhioB,EAAEwZ,EAAEnG,EAAI,EAAI2unB,IAElMG,IAAW,SAASnioB,EAAsBjZ,GAAgB,IAAIujB,EAAMkqnB,IAAex0nB,EAAEjZ,GAAI,OAAOujB,EAAM,EAAI43nB,IAAOlioB,EAAGjZ,EAAE,EAAEA,EAAE,EAAEujB,EAAI,GAAK,EAAG,EACxI83nB,IAAUD,IAEVE,IAAW,SAASrioB,EAAsBjZ,GAAgB,IAAIujB,EAAMkqnB,IAAex0nB,EAAEjZ,GAAI,OAAOujB,EAAM,EAAI43nB,IAAOlioB,EAAGjZ,EAAE,EAAEA,EAAE,EAAEujB,EAAI,GAAK,EAAG,EACxIg4nB,IAAUD,IAEVE,IAAY,SAASvioB,EAAsBjZ,GAAgB,IAAIujB,EAAM,EAAEkqnB,IAAex0nB,EAAEjZ,GAAI,OAAOujB,EAAM,EAAI43nB,IAAOlioB,EAAGjZ,EAAE,EAAEA,EAAE,EAAEujB,EAAI,GAAK,EAAG,EAC3Ik4nB,IAAWD,IAEXE,IAAU,SAAezioB,EAAsBjZ,GAAgB,IAAIujB,EAAMkqnB,IAAex0nB,EAAEjZ,GAAI,OAAOujB,EAAM,EAAIqpnB,IAAU3znB,EAAGjZ,EAAE,EAAEA,EAAE,EAAEujB,GAAO,EAAG,EAC9Io4nB,IAASD,IAETE,IAAW,SAAS3ioB,EAAsBjZ,GAAgB,IAAIujB,EAAMkqnB,IAAex0nB,EAAEjZ,GAAI,OAAOujB,EAAM,EAAI43nB,IAAOlioB,EAAGjZ,EAAE,EAAEA,EAAE,EAAEujB,GAAO,EAAG,EACtIs4nB,IAAUD,IAEVE,IAAY,SAAS7ioB,EAAuB4kN,GAAkB,OAtDlE,SAAwB5kN,EAAuB4kN,GAI9C,IAHA,IAAIprM,EAAI,EAAI,GAAKxZ,EAAE4kN,EAAM,KAAO,GAC5BvxM,IAAmB,IAAbrT,EAAE4kN,EAAM,KAAc,IAAO5kN,EAAE4kN,EAAM,KAAO,EAAK,IACvD9pM,EAAc,GAAT9a,EAAE4kN,EAAI,GACP79N,EAAI,EAAGA,GAAK,IAAKA,EAAG+zB,EAAQ,IAAJA,EAAU9a,EAAE4kN,EAAM79N,GAClD,OAAQ,MAALssB,EAAwB,GAALyH,EAAUtB,GAAI+jD,KAAYjxD,KACxC,GAAL+G,EAAQA,GAAK,MACTA,GAAK,KAAMyH,GAAKzzB,KAAKylH,IAAI,EAAE,KAC3BtzF,EAAInyB,KAAKylH,IAAI,EAAGz5F,EAAI,IAAMyH,EAClC,CA6CyEgonB,CAAe9ioB,EAAG4kN,EAAK,EAC5Fm+a,IAAWF,IAEXG,IAAS,SAAkBjjoB,GAAK,OAAOrZ,MAAMqR,QAAQgI,IAA6B,qBAAfklE,YAA8BllE,aAAaklE,UAAa,EAa/H,SAASg+jB,MACRtP,IAAY,SAAS3znB,EAAsBwZ,EAAanG,GAAgB,OAAO40mB,IAAS1gR,MAAMn+O,OAAO,KAAMppH,EAAEnV,MAAM2uB,EAAEnG,IAAI9Z,QAAQ6vnB,IAAM,GAAK,EAC5I8Y,IAAS,SAASlioB,EAAsBwZ,EAAanG,GAAgB,OAAO40mB,IAAS1gR,MAAMn+O,OAAO,MAAOppH,EAAEnV,MAAM2uB,EAAEnG,GAAK,EACxH+unB,IAAU,SAASpioB,EAAsBjZ,GAAgB,IAAIujB,EAAMkqnB,IAAex0nB,EAAEjZ,GAAI,OAAOujB,EAAM,EAAI29mB,IAAS1gR,MAAMn+O,OAAOq+f,IAAcznnB,EAAEnV,MAAM9D,EAAE,EAAGA,EAAE,EAAEujB,EAAI,IAAM,EAAG,EAC3Kg4nB,IAAU,SAAStioB,EAAsBjZ,GAAgB,IAAIujB,EAAMkqnB,IAAex0nB,EAAEjZ,GAAI,OAAOujB,EAAM,EAAI29mB,IAAS1gR,MAAMn+O,OAAOo+f,IAAkBxnnB,EAAEnV,MAAM9D,EAAE,EAAGA,EAAE,EAAEujB,EAAI,IAAM,EAAG,EAC/Kk4nB,IAAW,SAASxioB,EAAsBjZ,GAAgB,IAAIujB,EAAM,EAAEkqnB,IAAex0nB,EAAEjZ,GAAI,OAAOujB,EAAM,EAAI29mB,IAAS1gR,MAAMn+O,OAAO,KAAMppH,EAAEnV,MAAM9D,EAAE,EAAEA,EAAE,EAAEujB,EAAI,IAAM,EAAG,EACrKo4nB,IAAS,SAAS1ioB,EAAsBjZ,GAAgB,IAAIujB,EAAMkqnB,IAAex0nB,EAAEjZ,GAAI,OAAOujB,EAAM,EAAI29mB,IAAS1gR,MAAMn+O,OAAO,KAAMppH,EAAEnV,MAAM9D,EAAE,EAAEA,EAAE,EAAEujB,IAAQ,EAAG,EAC/Js4nB,IAAU,SAAS5ioB,EAAsBjZ,GAAgB,IAAIujB,EAAMkqnB,IAAex0nB,EAAEjZ,GAAI,OAAOujB,EAAM,EAAI29mB,IAAS1gR,MAAMn+O,OAAO,MAAOppH,EAAEnV,MAAM9D,EAAE,EAAEA,EAAE,EAAEujB,IAAQ,EAAG,CAClK,CAnBGk+mB,MACF4Z,IAAU,SAAiBpioB,EAAuBjZ,GAAgB,IAAI8pF,OAAOvL,SAAStlE,GAAoC,OAAOmioB,IAASnioB,EAAGjZ,GAAI,IAAIujB,EAAMtK,EAAEkjoB,aAAan8oB,GAAI,OAAOujB,EAAM,EAAItK,EAAEnM,SAAS,OAAO9M,EAAE,EAAEA,EAAE,EAAEujB,EAAI,GAAK,EAAG,EACrOg4nB,IAAU,SAAiBtioB,EAAuBjZ,GAAgB,IAAI8pF,OAAOvL,SAAStlE,GAAoC,OAAOqioB,IAASrioB,EAAGjZ,GAAI,IAAIujB,EAAMtK,EAAEkjoB,aAAan8oB,GAAI,OAAOujB,EAAM,EAAItK,EAAEnM,SAAS,OAAO9M,EAAE,EAAEA,EAAE,EAAEujB,EAAI,GAAK,EAAG,EACrOk4nB,IAAW,SAAkBxioB,EAAuBjZ,GAAgB,IAAI8pF,OAAOvL,SAAStlE,GAAoC,OAAOuioB,IAAUvioB,EAAGjZ,GAAI,IAAIujB,EAAM,EAAEtK,EAAEkjoB,aAAan8oB,GAAI,OAAOiZ,EAAEnM,SAAS,UAAU9M,EAAE,EAAEA,EAAE,EAAEujB,EAAI,EAAG,EAC9No4nB,IAAS,SAAgB1ioB,EAAuBjZ,GAAgB,IAAI8pF,OAAOvL,SAAStlE,GAAoC,OAAOyioB,IAAQzioB,EAAGjZ,GAAI,IAAIujB,EAAMtK,EAAEkjoB,aAAan8oB,GAAI,OAAOiZ,EAAEnM,SAAS,UAAU9M,EAAE,EAAEA,EAAE,EAAEujB,EAAK,EACpNs4nB,IAAU,SAAiB5ioB,EAAuBjZ,GAAgB,IAAI8pF,OAAOvL,SAAStlE,GAAoC,OAAO2ioB,IAAS3ioB,EAAGjZ,GAAI,IAAIujB,EAAMtK,EAAEkjoB,aAAan8oB,GAAI,OAAOiZ,EAAEnM,SAAS,OAAO9M,EAAE,EAAEA,EAAE,EAAEujB,EAAK,EACpNy4nB,IAAW,SAAiB/ioB,EAAuBjZ,GAAgB,OAAG8pF,OAAOvL,SAAStlE,GAAuCA,EAAEmjoB,aAAap8oB,GAAW87oB,IAAU7ioB,EAAEjZ,EAAI,EACvKi8oB,IAAS,SAAkBjjoB,GAAK,OAAO8wE,OAAOvL,SAASvlE,IAAMrZ,MAAMqR,QAAQgI,IAA6B,qBAAfklE,YAA8BllE,aAAaklE,UAAa,GAa3H,qBAAbgjjB,KAA0Bgb,MAEpC,IAAIhB,IAAc,SAASjioB,EAAuB4kN,GAA6B,OAAO5kN,EAAE4kN,EAAM,EAC1Fi9a,IAAiB,SAAS7hoB,EAAuB4kN,GAA6B,OAAgB,IAAR5kN,EAAE4kN,EAAI,GAAW5kN,EAAE4kN,EAAM,EAC/Gw+a,IAAgB,SAASpjoB,EAAuB4kN,GAA6B,IAAInrM,EAAa,IAARzZ,EAAE4kN,EAAI,GAAW5kN,EAAE4kN,GAAM,OAAQnrM,EAAI,MAAUA,GAAyB,GAAnB,MAASA,EAAI,EAAU,EAClK+6mB,IAAiB,SAASx0nB,EAAuB4kN,GAA6B,OAAO5kN,EAAE4kN,EAAI,IAAI,GAAG,KAAK5kN,EAAE4kN,EAAI,IAAI,KAAK5kN,EAAE4kN,EAAI,IAAI,GAAG5kN,EAAE4kN,EAAM,EAC3Iuua,IAAgB,SAASnznB,EAAuB4kN,GAA6B,OAAQ5kN,EAAE4kN,EAAI,IAAI,GAAK5kN,EAAE4kN,EAAI,IAAI,GAAK5kN,EAAE4kN,EAAI,IAAI,EAAG5kN,EAAE4kN,EAAM,EACxIy+a,IAAgB,SAASrjoB,EAAuB4kN,GAA6B,OAAQ5kN,EAAE4kN,IAAM,GAAK5kN,EAAE4kN,EAAI,IAAI,GAAK5kN,EAAE4kN,EAAI,IAAI,EAAG5kN,EAAE4kN,EAAI,EAAI,EAE5I,SAASg5a,IAAU11nB,EAAiBqR,GACnC,IAAU+pnB,EAAsBC,EAAWlxoB,EAAGg4Q,EAAItjR,EAAGy8oB,EAAjDrrnB,EAAE,GAA8BsrnB,EAAG,GACvC,OAAOlqnB,GACN,IAAK,OAEJ,GADAiqnB,EAAM39oB,KAAK8B,EACR6goB,KAAW33iB,OAAOvL,SAASz/E,MAAOsyB,EAAItyB,KAAKgF,MAAMhF,KAAK8B,EAAG9B,KAAK8B,EAAE,EAAEugB,GAAMrU,SAAS,gBAC/E,IAAI9M,EAAI,EAAGA,EAAImhB,IAAQnhB,EAAKoxB,GAAGrrB,OAAOk0C,aAAa6gmB,IAAeh8oB,KAAM29oB,IAAOA,GAAK,EACzFt7nB,GAAQ,EACR,MAED,IAAK,OAAQiQ,EAAI+pnB,IAAOr8oB,KAAMA,KAAK8B,EAAG9B,KAAK8B,EAAIugB,GAAO,MACtD,IAAK,UAAWA,GAAQ,EAAGiQ,EAAIw7mB,IAAU9toB,KAAMA,KAAK8B,EAAG9B,KAAK8B,EAAIugB,GAAO,MAEvE,IAAK,OACJ,GAAuB,qBAAb+/mB,IACL,OAAO2V,IAAUh4oB,KAAKC,KAAMqiB,EAAM,QADHiQ,EAAI8vmB,IAAS1gR,MAAMn+O,OAAOo+f,IAAkB3hoB,KAAKgF,MAAMhF,KAAK8B,EAAG9B,KAAK8B,EAAE,EAAEugB,IAE5GA,GAAO,EAAU,MAGlB,IAAK,aAAciQ,EAAIiqnB,IAAQv8oB,KAAMA,KAAK8B,GAAIugB,EAAO,EAAIssnB,IAAe3uoB,KAAMA,KAAK8B,GAAI,MACvF,IAAK,WAAYwwB,EAAImqnB,IAAQz8oB,KAAMA,KAAK8B,GAAIugB,EAAO,EAAIssnB,IAAe3uoB,KAAMA,KAAK8B,GAAI,MAErF,IAAK,SAAUwwB,EAAIqqnB,IAAS38oB,KAAMA,KAAK8B,GAAIugB,EAAO,EAAI,EAAIssnB,IAAe3uoB,KAAMA,KAAK8B,GAAI,MAExF,IAAK,OAAQugB,EAAO,EAAKssnB,IAAe3uoB,KAAMA,KAAK8B,GAAIwwB,EAAIuqnB,IAAO78oB,KAAMA,KAAK8B,GAAc,EAAPugB,IAAaA,GAAQ,GAAG,MAE5G,IAAK,QAASA,EAAO,EAAKssnB,IAAe3uoB,KAAMA,KAAK8B,GAAIwwB,EAAIyqnB,IAAQ/8oB,KAAMA,KAAK8B,GAAc,EAAPugB,IAAaA,GAAQ,GAAY,EAAPA,IAAc,MAE9H,IAAK,OACJ,IADYA,EAAO,EAAGiQ,EAAI,GACqB,KAAxC9lB,EAAE4voB,IAAYp8oB,KAAMA,KAAK8B,EAAIugB,OAAcu7nB,EAAG/7oB,KAAKwgoB,IAAS71nB,IACnE8lB,EAAIsrnB,EAAG34oB,KAAK,IAAK,MAClB,IAAK,QACJ,IADaod,EAAO,EAAGiQ,EAAI,GACmB,KAAvC9lB,EAAEwvoB,IAAeh8oB,KAAKA,KAAK8B,EAAGugB,KAAYu7nB,EAAG/7oB,KAAKwgoB,IAAS71nB,IAAI6V,GAAM,EAC5EA,GAAM,EAAGiQ,EAAIsrnB,EAAG34oB,KAAK,IAAK,MAG3B,IAAK,YACJ,IADiBqtB,EAAI,GAAIqrnB,EAAM39oB,KAAK8B,EAChCZ,EAAI,EAAGA,EAAImhB,IAAQnhB,EAAG,CACzB,GAAGlB,KAAK69oB,OAAoC,IAA5B79oB,KAAK69oB,KAAKn5oB,QAAQi5oB,GAIjC,OAHAnxoB,EAAI4voB,IAAYp8oB,KAAM29oB,GACtB39oB,KAAK8B,EAAI67oB,EAAM,EACfn5X,EAAKuzX,IAAUh4oB,KAAKC,KAAMqiB,EAAKnhB,EAAGsL,EAAI,YAAc,aAC7CoxoB,EAAG34oB,KAAK,IAAMu/Q,EAEtBo5X,EAAG/7oB,KAAKwgoB,IAAS2Z,IAAeh8oB,KAAM29oB,KACtCA,GAAK,CACN,CAAErrnB,EAAIsrnB,EAAG34oB,KAAK,IAAKod,GAAQ,EAAG,MAE/B,IAAK,QACJ,GAAuB,qBAAb+/mB,IAA0B,CACnC9vmB,EAAI8vmB,IAAS1gR,MAAMn+O,OAAOo+f,IAAkB3hoB,KAAKgF,MAAMhF,KAAK8B,EAAG9B,KAAK8B,EAAIugB,IACxE,KACD,CAED,IAAK,YACJ,IADiBiQ,EAAI,GAAIqrnB,EAAM39oB,KAAK8B,EAChCZ,EAAI,EAAGA,GAAKmhB,IAAQnhB,EAAG,CAC1B,GAAGlB,KAAK69oB,OAAoC,IAA5B79oB,KAAK69oB,KAAKn5oB,QAAQi5oB,GAIjC,OAHAnxoB,EAAI4voB,IAAYp8oB,KAAM29oB,GACtB39oB,KAAK8B,EAAI67oB,EAAM,EACfn5X,EAAKuzX,IAAUh4oB,KAAKC,KAAMqiB,EAAKnhB,EAAGsL,EAAI,YAAc,aAC7CoxoB,EAAG34oB,KAAK,IAAMu/Q,EAEtBo5X,EAAG/7oB,KAAKwgoB,IAAS+Z,IAAYp8oB,KAAM29oB,KACnCA,GAAK,CACN,CAAErrnB,EAAIsrnB,EAAG34oB,KAAK,IAAK,MAEpB,QACD,OAAOod,GACN,KAAK,EAA6C,OAA1Co7nB,EAAKrB,IAAYp8oB,KAAMA,KAAK8B,GAAI9B,KAAK8B,IAAY27oB,EACzD,KAAK,EAAiF,OAA9EA,GAAY,MAAN/pnB,EAAY6pnB,IAAgBvB,KAAgBh8oB,KAAMA,KAAK8B,GAAI9B,KAAK8B,GAAK,EAAU27oB,EAC7F,KAAK,EAAG,KAAM,EACb,MAAS,MAAN/pnB,GAAwC,KAAR,IAAjB1zB,KAAKA,KAAK8B,EAAE,KAAmB27oB,GAAOp7nB,EAAO,EAAKirnB,IAAgBkQ,KAAex9oB,KAAMA,KAAK8B,GAAI9B,KAAK8B,GAAK,EAAU27oB,IAC/HC,EAAK/O,IAAe3uoB,KAAMA,KAAK8B,GAAI9B,KAAK8B,GAAK,EAAY47oB,GACjE,KAAK,EAAG,KAAM,EACb,GAAS,MAANhqnB,EAGW,OAFCgqnB,EAAH,GAARr7nB,EAAgB66nB,IAASl9oB,KAAMA,KAAK8B,GAC7Bo7oB,IAAS,CAACl9oB,KAAKA,KAAK8B,EAAE,GAAG9B,KAAKA,KAAK8B,EAAE,GAAG9B,KAAKA,KAAK8B,EAAE,GAAG9B,KAAKA,KAAK8B,EAAE,GAAG9B,KAAKA,KAAK8B,EAAE,GAAG9B,KAAKA,KAAK8B,EAAE,GAAG9B,KAAKA,KAAK8B,EAAE,GAAG9B,KAAKA,KAAK8B,EAAE,IAAK,GAC9I9B,KAAK8B,GAAK,EAAU47oB,EACdr7nB,EAAO,EAEf,KAAK,GAAIiQ,EAAI4pnB,IAAUl8oB,KAAMA,KAAK8B,EAAGugB,IAExB,OAAdriB,KAAK8B,GAAGugB,EAAaiQ,CACtB,CAEA,IAAIwrnB,IAAkB,SAAS3joB,EAAuBxR,EAAgBo2N,GAA2B5kN,EAAE4kN,GAAc,IAANp2N,EAAawR,EAAE4kN,EAAI,GAAOp2N,IAAQ,EAAK,IAAOwR,EAAE4kN,EAAI,GAAOp2N,IAAQ,GAAM,IAAOwR,EAAE4kN,EAAI,GAAOp2N,IAAQ,GAAM,GAAO,EACzNo1oB,IAAkB,SAAS5joB,EAAuBxR,EAAgBo2N,GAA2B5kN,EAAE4kN,GAAc,IAANp2N,EAAawR,EAAE4kN,EAAI,GAAOp2N,GAAO,EAAK,IAAOwR,EAAE4kN,EAAI,GAAOp2N,GAAO,GAAM,IAAOwR,EAAE4kN,EAAI,GAAOp2N,GAAO,GAAM,GAAO,EACtNq1oB,IAAkB,SAAS7joB,EAAuBxR,EAAgBo2N,GAA2B5kN,EAAE4kN,GAAc,IAANp2N,EAAawR,EAAE4kN,EAAI,GAAOp2N,IAAQ,EAAK,GAAO,EAEzJ,SAASs1oB,IAAWvqnB,EAAc/qB,EAAuBwG,GACxD,IAAIkT,EAAO,EAAGnhB,EAAI,EAClB,GAAS,SAANiO,EAAc,CAEhB,IAAIjO,EAAI,EAAGA,GAAKyH,EAAIxH,SAAUD,EAAG88oB,IAAgBh+oB,KAAM2I,EAAI2Z,WAAWphB,GAAIlB,KAAK8B,EAAI,EAAIZ,GACvFmhB,EAAO,EAAI1Z,EAAIxH,MAChB,MAAO,GAAS,SAANgO,EAAc,CACvB,GAAuB,qBAAbiznB,KAA4C,KAAhBR,IAGrC,IAAI1goB,EAAI,EAAGA,GAAKyH,EAAIxH,SAAUD,EAAG,CAChC,IAAIg9oB,EAAY9b,IAAS1gR,MAAM7oK,OAAO+ob,IAAcj5nB,EAAI4Z,OAAOrhB,IAC/DlB,KAAKA,KAAK8B,EAAIZ,GAAKg9oB,EAAU,EAC9B,MAKA,IAFAv1oB,EAAMA,EAAI+K,QAAQ,gBAAiB,KAE/BxS,EAAI,EAAGA,GAAKyH,EAAIxH,SAAUD,EAAGlB,KAAKA,KAAK8B,EAAIZ,GAA0B,IAApByH,EAAI2Z,WAAWphB,GAErEmhB,EAAO1Z,EAAIxH,MACZ,KAAO,IAAS,QAANgO,EAAa,CACtB,KAAMjO,EAAIwyB,IAAKxyB,EAEdlB,KAAKA,KAAK8B,KAAQ4kB,SAAS/d,EAAI3D,MAAM,EAAE9D,EAAG,EAAEA,EAAE,GAAI,KAAK,EACtD,OAAOlB,IACV,CAAO,GAAS,YAANmP,EAAiB,CAEzB,IAAI2T,EAAiBthB,KAAKyhB,IAAIjjB,KAAK8B,EAAI4xB,EAAG1zB,KAAKmB,QAC/C,IAAID,EAAI,EAAGA,EAAIM,KAAKyhB,IAAIta,EAAIxH,OAAQuyB,KAAMxyB,EAAG,CAC5C,IAAIoqD,EAAK3iD,EAAI2Z,WAAWphB,GACxBlB,KAAKA,KAAK8B,KAAa,IAALwpD,EAClBtrD,KAAKA,KAAK8B,KAAQwpD,GAAM,CACzB,CACA,KAAMtrD,KAAK8B,EAAIghB,GAAK9iB,KAAKA,KAAK8B,KAAO,EACrC,OAAO9B,IACT,CAA2C,OAAO0zB,GACjD,KAAM,EAAGrR,EAAO,EAAGriB,KAAKA,KAAK8B,GAAS,IAAJ6G,EAAU,MAC5C,KAAM,EAAG0Z,EAAO,EAAGriB,KAAKA,KAAK8B,GAAS,IAAJ6G,EAAUA,KAAS,EAAG3I,KAAKA,KAAK8B,EAAE,GAAS,IAAJ6G,EAAU,MACnF,KAAM,EAAG0Z,EAAO,EAAGriB,KAAKA,KAAK8B,GAAS,IAAJ6G,EAAUA,KAAS,EAAG3I,KAAKA,KAAK8B,EAAE,GAAS,IAAJ6G,EAAUA,KAAS,EAAG3I,KAAKA,KAAK8B,EAAE,GAAS,IAAJ6G,EAAU,MAC1H,KAAM,EAAG0Z,EAAO,EAAGy7nB,IAAgB99oB,KAAM2I,EAAK3I,KAAK8B,GAAI,MACvD,KAAM,EAAa,GAAVugB,EAAO,EAAY,MAANlT,EAAW,EA/MnC,SAAyBgL,EAAuB+a,EAAc6pM,GAC7D,IAAIh9C,GAAS7sJ,EAAI,GAAO,EAAEA,IAAK,IAAc,EAAI,IAAM,EAAI1H,EAAI,EAAGyH,EAAI,EAClEkpnB,EAAKp8d,GAAO7sJ,EAAKA,EACjB42D,SAASqyjB,GACC,GAANA,EAAS3wnB,EAAIyH,EAAI,GAExBzH,EAAIhsB,KAAKC,MAAMD,KAAKqrD,IAAIsxlB,GAAM38oB,KAAKsrD,KACnC73B,EAAIkpnB,EAAK38oB,KAAKylH,IAAI,EAAG,GAAKz5F,GACtBA,IAAM,QAAWs+D,SAAS72D,IAAOA,EAAIzzB,KAAKylH,IAAI,EAAE,KAASz5F,GAAK,MAC3DyH,GAAKzzB,KAAKylH,IAAI,EAAE,IAAKz5F,GAAG,QANZA,EAAI,KAAOyH,EAAI9R,MAAM+R,GAAK,MAAS,GAQvD,IAAI,IAAIh0B,EAAI,EAAGA,GAAK,IAAKA,EAAG+zB,GAAG,IAAK9a,EAAE4kN,EAAM79N,GAAS,IAAJ+zB,EACjD9a,EAAE4kN,EAAM,IAAW,GAAJvxM,IAAa,EAAU,GAAJyH,EAClC9a,EAAE4kN,EAAM,GAAMvxM,GAAK,EAAKu0J,CACzB,CAiMqCq8d,CAAgBp+oB,KAAM2I,EAAK3I,KAAK8B,GAAI,KAAO,CAE9E,KAAK,GAAI,MACT,KAAM,EAAGugB,EAAO,EAAG07nB,IAAe/9oB,KAAM2I,EAAK3I,KAAK8B,GACnD,CACgB,OAAhB9B,KAAK8B,GAAKugB,EAAariB,IACxB,CAEA,SAASg4oB,IAAWqG,EAAmBC,GACtC,IAAIrpnB,EAAIinnB,IAAUl8oB,KAAKA,KAAK8B,EAAEu8oB,EAAOl9oB,QAAQ,GAC7C,GAAG8zB,IAAMopnB,EAAQ,MAAM,IAAI36oB,MAAM46oB,EAAM,YAAcD,EAAS,QAAUppnB,GACxEj1B,KAAK8B,GAAKu8oB,EAAOl9oB,QAAQ,CAC1B,CAEA,SAAS8poB,IAAUD,EAAM9onB,GACxB8onB,EAAKlpoB,EAAIogB,EACT8onB,EAAKE,WAAoB6M,IACzB/M,EAAKyB,IAAMuL,IACXhN,EAAKH,YAAcoT,GACpB,CAEA,SAASM,IAAUvT,EAAM7poB,GAAoC6poB,EAAKlpoB,GAAKX,CAAQ,CAE/E,SAASstoB,IAAQnqb,GAChB,IAAIhyL,EAAIywmB,IAAYz+a,GAEpB,OADA2mb,IAAU34mB,EAAG,GACNA,CACR,CAuBA,SAASksnB,MACR,IAAInb,EAAwB,GAAIob,EAAQ9b,IAAU,IAAM,KACpD+b,EAAS,SAAmBp6b,GAC/B,IAAIhyL,EAAem8mB,IAAQnqb,GAE3B,OADA2mb,IAAU34mB,EAAG,GACNA,CACR,EAEIqsnB,EAAmBD,EAAOD,GAE1BG,EAAS,WACRD,IACDA,EAAOx9oB,OAASw9oB,EAAO78oB,KAAK68oB,EAASA,EAAO35oB,MAAM,EAAG25oB,EAAO78oB,IAAWA,EAAI68oB,EAAOx9oB,QAClFw9oB,EAAOx9oB,OAAS,GAAGkioB,EAAKxhoB,KAAK88oB,GAChCA,EAAS,KACV,EAEIzqoB,EAAO,SAAiBowM,GAC3B,OAAGq6b,GAAWr6b,EAAMq6b,EAAOx9oB,OAASw9oB,EAAO78oB,EAAY68oB,GACvDC,IACQD,EAASD,EAAOl9oB,KAAKwhB,IAAIshM,EAAG,EAAGm6b,IACxC,EASA,MAAQ,CAAEvqoB,KAAKA,EAAMrS,KAFV,SAAiBg9K,GAAO+/d,IAAuC,OAA7BD,EAAS9/d,GAAe/8K,IAAW68oB,EAAO78oB,EAAI68oB,EAAOx9oB,QAAQ+S,EAAKuqoB,EAAQ,EAEvF37nB,IAPtB,WAET,OADA87nB,IACOxb,IAAQC,EAChB,EAIyCwb,MAAMxb,EAChD,CAEA,SAASyb,IAAa//kB,EAAiB/3D,EAAiBsgE,EAASnmE,GAChE,IAA0BW,EAAtB4xB,GAAgB1sB,EACpB,IAAGmc,MAAMuQ,GAAT,CACIvyB,IAAQA,EAAS49oB,IAAerrnB,GAAGrM,IAAMigD,GAAS,IAAInmE,QAAU,GACpEW,EAAI,GAAK4xB,GAAK,IAAO,EAAI,GAAK,EAC3BvyB,GAAU,OAAQW,EAAMX,GAAU,SAAUW,EAAMX,GAAU,WAAYW,EAC3E,IAAIwwB,EAAIysC,EAAG7qD,KAAKpS,GACb4xB,GAAK,IAAMpB,EAAEu4mB,YAAY,EAAGn3mB,IAE9BpB,EAAEu4mB,YAAY,EAAgB,KAAR,IAAJn3mB,IAClBpB,EAAEu4mB,YAAY,EAAIn3mB,GAAK,IAExB,IAAI,IAAIxyB,EAAI,EAAQ,GAALA,IAAUA,EAAG,CAC3B,KAAGC,GAAU,KACR,CAAEmxB,EAAEu4mB,YAAY,EAAG1poB,GAAS,KAAO,CADnBmxB,EAAEu4mB,YAAY,EAAmB,KAAN,IAAT1poB,IAAsBA,IAAW,CAEzE,CAC2BA,EAAS,GAAKg8oB,IAAO71kB,IAAUvI,EAAGl9D,KAAKylE,EAd/C,CAepB,CAEA,SAAS03kB,IAAe1knB,EAAsB8ub,EAAahlb,GAC1D,IAAIuwI,EAAMkle,IAAIv/mB,GAQd,GAPG8ub,EAAIz1b,GACHghJ,EAAIsqe,OAAMtqe,EAAIv6J,GAAKgvc,EAAIz1b,EAAEvZ,GACzBu6J,EAAIuqe,OAAMvqe,EAAIr1K,GAAK8pd,EAAIz1b,EAAEr0B,KAEzBq1K,EAAIsqe,OAAMtqe,EAAIv6J,GAAKgvc,EAAIhvc,GACvBu6J,EAAIuqe,OAAMvqe,EAAIr1K,GAAK8pd,EAAI9pd,KAEvB8kC,GAAQA,EAAK+6mB,KAAO,GAAI,CAC3B,KAAMxqe,EAAIv6J,GAAK,KAAOu6J,EAAIv6J,GAAK,IAC/B,KAAMu6J,EAAIr1K,GAAK,OAASq1K,EAAIr1K,GAAK,KAClC,CACA,OAAOq1K,CACR,CAEA,SAASyqe,IAAgB9knB,EAAMjH,EAAO+Q,GACrC,IAAIuwI,EAAMkle,IAAIv/mB,GAGd,OAFAq6I,EAAIhhJ,EAAIqrnB,IAAerqe,EAAIhhJ,EAAGN,EAAMM,EAAGyQ,GACvCuwI,EAAInnJ,EAAIwxnB,IAAerqe,EAAInnJ,EAAG6F,EAAMM,EAAGyQ,GAChCuwI,CACR,CAEA,SAAS0qe,IAAgBjloB,EAAmB+koB,GAC3C,GAAG/koB,EAAE6koB,MAAQ7koB,EAAEA,EAAI,EAAiB,IAAZA,EAAIy/nB,IAAIz/nB,GAAUA,EAAEA,EAAI,GAAGA,EAAEA,GAAM+koB,EAAO,EAAK,MAAS,IAChF,GAAG/koB,EAAE8koB,MAAQ9koB,EAAE9a,EAAI,EAAiB,IAAZ8a,EAAIy/nB,IAAIz/nB,GAAUA,EAAE9a,EAAI,GAAG8a,EAAE9a,GAAM6/oB,EAAO,EAAK,QAAaA,EAAO,EAAK,MAAU,MAC1G,IAAIxrnB,EAAI2rnB,IAAYlloB,GAGpB,OAFIA,EAAE6koB,MAAkB,MAAV7koB,EAAE6koB,OAActrnB,EAAYA,EAyBgBjgB,QAAQ,WAAW,SAxBzE0G,EAAE8koB,MAAkB,MAAV9koB,EAAE8koB,OAAcvrnB,EAmB/B,SAAiB67mB,GAA8B,OAAOA,EAAK97nB,QAAQ,kBAAkB,SAAW,CAnB7D6roB,CAAQ5rnB,IACnCA,CACR,CAEA,SAAS6rnB,IAAiBlgpB,EAAG8kC,GAC5B,OAAY,GAAT9kC,EAAEq0B,EAAEr0B,GAAWA,EAAEq0B,EAAEurnB,MAClB5/oB,EAAEkuB,EAAEluB,IAAM8kC,EAAK+6mB,MAAQ,GAAK,QAAW/6mB,EAAK+6mB,MAAQ,EAAI,MAAU,QAAa7/oB,EAAEkuB,EAAE0xnB,KAI3E,GAAT5/oB,EAAEq0B,EAAEvZ,GAAW9a,EAAEq0B,EAAEsrnB,MAClB3/oB,EAAEkuB,EAAEpT,IAAMgqB,EAAK+6mB,MAAQ,GAAK,MAAS,MAAU7/oB,EAAEkuB,EAAEyxnB,KAIhDI,IAAgB//oB,EAAEq0B,EAAGyQ,EAAK+6mB,MAAQ,IAAME,IAAgB//oB,EAAEkuB,EAAG4W,EAAK+6mB,OAH/D7/oB,EAAEq0B,EAAEurnB,KAAO,GAAK,KAAOO,IAAWngpB,EAAEq0B,EAAEr0B,GAAK,KAAOA,EAAEkuB,EAAE0xnB,KAAO,GAAK,KAAOO,IAAWngpB,EAAEkuB,EAAEluB,IALxFA,EAAEq0B,EAAEsrnB,KAAO,GAAK,KAAOS,IAAWpgpB,EAAEq0B,EAAEvZ,GAAK,KAAO9a,EAAEkuB,EAAEyxnB,KAAO,GAAK,KAAOS,IAAWpgpB,EAAEkuB,EAAEpT,EASnG,CACA,SAASuloB,IAAWC,GAAgC,OAAOl5nB,SAAmBk5nB,EAGjBlsoB,QAAQ,WAAW,MAHM,IAAM,CAAG,CAC/F,SAAS+roB,IAAWllnB,GAA6B,MAAO,IAAMA,EAAM,EAAI,CAIxE,SAASslnB,IAAWC,GAAyE,IAAzC,IAAI1loB,EAAc0loB,EAGTpsoB,QAAQ,aAAa,MAHH9M,EAAI,EAAG1F,EAAI,EAASA,IAAMkZ,EAAEjZ,SAAUD,EAAG0F,EAAI,GAAGA,EAAIwT,EAAEkI,WAAWphB,GAAK,GAAI,OAAO0F,EAAI,CAAG,CACvK,SAAS84oB,IAAWv0mB,GAA6B,GAAGA,EAAM,EAAG,MAAM,IAAIznC,MAAM,kBAAoBynC,GAAM,IAAIxX,EAAE,GAAI,MAAMwX,EAAKA,EAAKA,EAAI3pC,KAAKC,OAAO0pC,EAAI,GAAG,IAAKxX,EAAI1sB,OAAOk0C,cAAehQ,EAAI,GAAG,GAAM,IAAMxX,EAAG,OAAOA,CAAG,CAMvN,SAASosnB,IAAYvQ,GAEpB,IADA,IAAIponB,EAAI,EAAGhV,EAAI,EACPlR,EAAI,EAAGA,EAAIsuoB,EAAKruoB,SAAUD,EAAG,CACpC,IAAIoqD,EAAKkklB,EAAKltnB,WAAWphB,GACtBoqD,GAAM,IAAMA,GAAM,GAAIlkC,EAAI,GAAKA,GAAKkkC,EAAK,IACpCA,GAAM,IAAMA,GAAM,KAAIl5C,EAAI,GAAKA,GAAKk5C,EAAK,IAClD,CACA,MAAO,CAAElxC,EAAGhI,EAAI,EAAG9S,EAAE8nB,EAAI,EAC1B,CAEA,SAASk4nB,IAAYhlnB,GAGpB,IAFA,IAAI6Q,EAAM7Q,EAAKlgB,EAAI,EACfuZ,EAAE,GACAwX,EAAKA,GAAMA,EAAI,GAAG,GAAI,EAAGxX,EAAI1sB,OAAOk0C,cAAehQ,EAAI,GAAG,GAAM,IAAMxX,EAC5E,OAAOA,GAAK2G,EAAKh7B,EAAI,EACtB,CACA,SAAS0gpB,IAAa3snB,GACrB,IAAI0rM,EAAM1rM,EAAM3uB,QAAQ,KACxB,OAAW,GAARq6N,EAAkB,CAAEprM,EAAGosnB,IAAY1snB,GAAQ7F,EAAGuynB,IAAY1snB,IACtD,CAAEM,EAAGosnB,IAAY1snB,EAAMruB,MAAM,EAAG+5N,IAAOvxM,EAAGuynB,IAAY1snB,EAAMruB,MAAM+5N,EAAM,IAChF,CAEA,SAASkhb,IAAa/8b,EAA0BhrJ,GAC/C,MAAiB,qBAAPA,GAAoC,kBAAPA,EAE/B+nlB,IAAa/8b,EAAGvvL,EAAGuvL,EAAG11L,IAGb,kBAAP01L,IAAiBA,EAAKo8b,IAAap8b,IAC5B,kBAAPhrJ,IAAiBA,EAAKonlB,IAAapnlB,IAGtCgrJ,GAAMhrJ,EAAKgrJ,EAAKA,EAAK,IAAMhrJ,EACnC,CAEA,SAASgolB,IAAkB7snB,GAC1B,IAAIf,EAAI,CAACqB,EAAE,CAACvZ,EAAE,EAAE9a,EAAE,GAAGkuB,EAAE,CAACpT,EAAE,EAAE9a,EAAE,IAC1By/N,EAAM,EAAG79N,EAAI,EAAGoqD,EAAK,EACrB7mC,EAAM4O,EAAMlyB,OAChB,IAAI49N,EAAM,EAAG79N,EAAIujB,MACZ6mC,EAAGj4B,EAAM/Q,WAAWphB,GAAG,IAAM,GAAKoqD,EAAK,MADpBpqD,EAEvB69N,EAAM,GAAGA,EAAMzzK,EAIhB,IAFAh5B,EAAEqB,EAAEvZ,IAAM2kN,EAENA,EAAM,EAAG79N,EAAIujB,MACZ6mC,EAAGj4B,EAAM/Q,WAAWphB,GAAG,IAAM,GAAKoqD,EAAK,KADpBpqD,EAEvB69N,EAAM,GAAGA,EAAMzzK,EAIhB,GAFAh5B,EAAEqB,EAAEr0B,IAAMy/N,EAEP79N,IAAMujB,GAAa,IAAN6mC,EAAsC,OAA1Bh5B,EAAE9E,EAAEpT,EAAEkY,EAAEqB,EAAEvZ,EAAGkY,EAAE9E,EAAEluB,EAAEgzB,EAAEqB,EAAEr0B,EAAUgzB,EAG7D,MAFEpxB,EAEE69N,EAAM,EAAG79N,GAAKujB,MACb6mC,EAAGj4B,EAAM/Q,WAAWphB,GAAG,IAAM,GAAKoqD,EAAK,MADnBpqD,EAExB69N,EAAM,GAAGA,EAAMzzK,EAIhB,IAFAh5B,EAAE9E,EAAEpT,IAAM2kN,EAENA,EAAM,EAAG79N,GAAKujB,MACb6mC,EAAGj4B,EAAM/Q,WAAWphB,GAAG,IAAM,GAAKoqD,EAAK,KADnBpqD,EAExB69N,EAAM,GAAGA,EAAMzzK,EAGhB,OADAh5B,EAAE9E,EAAEluB,IAAMy/N,EACHzsM,CACR,CAEA,SAAS6tnB,IAAiB7lnB,EAAepF,GACxC,IAAIwiB,EAAe,KAAVpd,EAAK5G,GAAYwB,aAAaiB,KACvC,GAAa,MAAVmE,EAAKnF,EAAW,IAAM,OAAQmF,EAAK9tB,EAAIm5nB,IAAWrrmB,EAAKnF,EAAGuiB,EAAIwhmB,IAAQhknB,GAAKA,EAAK,CAAE,MAAM1H,KAAK,CAChG,IAAM,OAAQ8M,EAAK9tB,EAAIm5nB,KAAYrrmB,EAAK8lnB,IAAI,CAAC,GAAGC,WAAW3omB,EAAI,GAAK,GAAKA,EAAIwhmB,IAAQhknB,GAAKA,EAAK,CAAE,MAAM1H,KAAK,MAAO,GAAG0H,CAAG,CAC1H,CAEA,SAASornB,IAAYhmnB,EAAepF,EAAW5C,GAC9C,OAAW,MAARgI,GAA0B,MAAVA,EAAK5G,GAAuB,KAAV4G,EAAK5G,EAAiB,QAC7CzmB,IAAXqtB,EAAK9tB,EAAwB8tB,EAAK9tB,GACxB,KAAV8tB,EAAK5G,IAAa4G,EAAKnF,GAAK7C,GAAKA,EAAEq2mB,SAAQrumB,EAAKnF,EAAI7C,EAAEq2mB,QAC5C,KAAVrumB,EAAK5G,EAAiB6snB,IAAKjmnB,EAAKpF,IAAMoF,EAAKpF,EACpBirnB,IAAiB7lnB,OAAnCrtB,GAALioB,EAA8CoF,EAAKpF,EACxBA,GAC/B,CAEA,SAASsrnB,IAAkBrugB,EAAqB/tG,GAC/C,IAAIn7B,EAAIm7B,GAAQA,EAAK+tG,MAAQ/tG,EAAK+tG,MAAQ,SACtCsugB,EAAS,CAAC,EACd,OADiBA,EAAOx3oB,GAAKkpI,EACtB,CAAEuugB,WAAY,CAACz3oB,GAAI03oB,OAAQF,EACnC,CAEA,SAASG,IAAcC,EAAoBtkoB,EAAc6nB,GACxD,IAAI9R,EAAI8R,GAAQ,CAAC,EACb08mB,EAAQD,EAAMhgpB,MAAMqR,QAAQ2uoB,GAAOvunB,EAAEwunB,MAEzC,IAAIjif,EAAmBgif,IAAQC,EAAS,GAAe,CAAC,GACpDC,EAAK,EAAGC,EAAK,EACjB,GAAGnif,GAAkB,MAAZvsI,EAAE8qB,OAAgB,CAC1B,GAAsB,iBAAZ9qB,EAAE8qB,OAAoB2jmB,EAAKzunB,EAAE8qB,WAClC,CACJ,IAAIo5F,EAA6C,iBAAZlkH,EAAE8qB,OAAqB2imB,IAAYztnB,EAAE8qB,QAAU9qB,EAAE8qB,OACtF2jmB,EAAKvqgB,EAAQl3I,EAAG0hpB,EAAKxqgB,EAAQp8H,CAC9B,CACIykJ,EAAG,UAASA,EAAG,QAAU,QAC9B,CACA,IAAIxrI,EAAmB,CAACM,EAAG,CAACvZ,EAAE,IAAU9a,EAAE,KAAWkuB,EAAG,CAACpT,EAAE,EAAG9a,EAAE,IAChE,GAAGu/J,EAAG,QAAS,CACd,IAAIoif,EAASf,IAAkBrhf,EAAG,SAClCxrI,EAAMM,EAAEvZ,EAAI6moB,EAAOttnB,EAAEvZ,EACrBiZ,EAAMM,EAAEr0B,EAAI2hpB,EAAOttnB,EAAEr0B,EACrB+zB,EAAM7F,EAAEpT,EAAI5Y,KAAKwhB,IAAIqQ,EAAM7F,EAAEpT,EAAG6moB,EAAOzznB,EAAEpT,GACzCiZ,EAAM7F,EAAEluB,EAAIkC,KAAKwhB,IAAIqQ,EAAM7F,EAAEluB,EAAG2hpB,EAAOzznB,EAAEluB,IAC/B,GAAPyhpB,IAAU1tnB,EAAM7F,EAAEluB,EAAIyhpB,EAAKE,EAAOzznB,EAAEluB,EAAI,EAC5C,CACA,IAAI,IAAI8nB,EAAI,EAAGA,GAAK7K,EAAKpb,SAAUimB,EAClC,GAAI7K,EAAK6K,GAAT,CACA,IAAIvmB,MAAMqR,QAAQqK,EAAK6K,IAAK,MAAM,IAAI1jB,MAAM,2CAC5C,IAAI,IAAI0O,EAAI,EAAGA,GAAKmK,EAAK6K,GAAGjmB,SAAUiR,EACrC,GAAyB,qBAAfmK,EAAK6K,GAAGhV,GAAlB,CACA,IAAIkoB,EAAiB,CAACpF,EAAG3Y,EAAK6K,GAAGhV,IAC7B8uoB,EAAMH,EAAK35nB,EAAG+5nB,EAAMH,EAAK5uoB,EAK7B,GAJGihB,EAAMM,EAAEr0B,EAAI4hpB,IAAK7tnB,EAAMM,EAAEr0B,EAAI4hpB,GAC7B7tnB,EAAMM,EAAEvZ,EAAI+moB,IAAK9tnB,EAAMM,EAAEvZ,EAAI+moB,GAC7B9tnB,EAAM7F,EAAEluB,EAAI4hpB,IAAK7tnB,EAAM7F,EAAEluB,EAAI4hpB,GAC7B7tnB,EAAM7F,EAAEpT,EAAI+moB,IAAK9tnB,EAAM7F,EAAEpT,EAAI+moB,IAC7B5koB,EAAK6K,GAAGhV,IAA4B,kBAAfmK,EAAK6K,GAAGhV,IAAoBvR,MAAMqR,QAAQqK,EAAK6K,GAAGhV,KAASmK,EAAK6K,GAAGhV,aAAc+jB,KAGxG,GADGt1B,MAAMqR,QAAQooB,EAAKpF,KAAMoF,EAAKnrB,EAAIoN,EAAK6K,GAAGhV,GAAG,GAAIkoB,EAAKpF,EAAIoF,EAAKpF,EAAE,IACtD,OAAXoF,EAAKpF,EACP,GAAGoF,EAAKnrB,EAAGmrB,EAAK5G,EAAI,SACf,GAAGpB,EAAE8unB,UAAa9mnB,EAAK5G,EAAI,IAAK4G,EAAKpF,EAAI,MACzC,KAAI5C,EAAE+unB,WAAY,SAClB/mnB,EAAK5G,EAAI,GAAG,KAEQ,kBAAX4G,EAAKpF,EAAgBoF,EAAK5G,EAAI,IACnB,mBAAX4G,EAAKpF,EAAiBoF,EAAK5G,EAAI,IACtC4G,EAAKpF,aAAaiB,MACzBmE,EAAKnF,EAAI7C,EAAEq2mB,QAAUzE,IAAU,IAC5B5xmB,EAAEgvnB,WAAahnnB,EAAK5G,EAAI,IAAK4G,EAAK9tB,EAAIm5nB,IAAWrrmB,EAAKnF,EAAG+jnB,IAAQ5+mB,EAAKpF,MAClEoF,EAAK5G,EAAI,IAAK4G,EAAKpF,EAAIgknB,IAAQ5+mB,EAAKpF,GAAIoF,EAAK9tB,EAAIm5nB,IAAWrrmB,EAAKnF,EAAGmF,EAAKpF,KAE5EoF,EAAK5G,EAAI,SAhBiG4G,EAAO/d,EAAK6K,GAAGhV,GAkB/H,GAAG0uoB,EACEjif,EAAGqif,KAAMrif,EAAGqif,GAAO,IACpBrif,EAAGqif,GAAKC,IAAQtif,EAAGqif,GAAKC,GAAKhsnB,IAAGmF,EAAKnF,EAAI0pI,EAAGqif,GAAKC,GAAKhsnB,GACzD0pI,EAAGqif,GAAKC,GAAO7mnB,MACT,CACN,IAAIinnB,EAAWjC,IAAa,CAAClloB,EAAE+moB,EAAI7hpB,EAAE4hpB,IAClCrif,EAAG0if,IAAa1if,EAAG0if,GAAUpsnB,IAAGmF,EAAKnF,EAAI0pI,EAAG0if,GAAUpsnB,GACzD0pI,EAAG0if,GAAYjnnB,CAChB,CAjC8C,CAH1B,CAwCtB,OADGjH,EAAMM,EAAEvZ,EAAI,MAAUykJ,EAAG,QAAUohf,IAAa5snB,IAC5CwrI,CACR,CACA,SAAS2if,IAAajloB,EAAc6nB,GAA+B,OAAOw8mB,IAAc,KAAMrkoB,EAAM6nB,EAAO,CAK3G,SAASq9mB,IAAe92nB,EAAc2H,GAGrC,OAFKA,IAAGA,EAAIm8mB,IAAQ,IACpBn8mB,EAAEu4mB,YAAY,EAAGlgnB,GACV2H,CACR,CAGA,SAASovnB,IAAmBnloB,GAC3B,IAAIoloB,EAAgBploB,EAAK2unB,WAAW,GACpC,OAAyB,IAAlByW,EAAsB,GAAKploB,EAAK2unB,WAAWyW,EAAe,OAClE,CACA,SAASC,IAAmBrloB,EAAiB+V,GAC5C,IAAIuvnB,GAAQ,EAGZ,OAH4B,MAALvvnB,IAAauvnB,GAAQ,EAAMvvnB,EAAIm8mB,IAAQ,EAAI,EAAIlynB,EAAKpb,SAC3EmxB,EAAEu4mB,YAAY,EAAGtunB,EAAKpb,QAClBob,EAAKpb,OAAS,GAAGmxB,EAAEu4mB,YAAY,EAAGtunB,EAAM,QACrCsloB,EAAQvvnB,EAAEttB,MAAM,EAAGstB,EAAExwB,GAAKwwB,CAClC,CASA,SAASwvnB,IAAavloB,GACrB,MAAO,CAAEwloB,IAAKxloB,EAAK2unB,WAAW,GAAI8W,KAAMzloB,EAAK2unB,WAAW,GACzD,CASA,SAAS+W,IAAc1loB,EAAMpb,GAC5B,IAAI0hB,EAAQtG,EAAKza,EACbglB,EAAQvK,EAAK2unB,WAAW,GACxBl4lB,EAAM0umB,IAAmBnloB,GACzB2loB,EAAY,GACZ/snB,EAAK,CAAEzB,EAAGsf,EAAKvmC,EAAGumC,GACtB,GAAoB,KAAP,EAARlsB,GAAkB,CAGtB,IADA,IAAIq7nB,EAAe5loB,EAAK2unB,WAAW,GAC1BhqoB,EAAI,EAAGA,GAAKihpB,IAAgBjhpB,EAAGghpB,EAAUrgpB,KAAKigpB,IAAavloB,IACpE4Y,EAAE71B,EAAI4ipB,CACP,MACK/snB,EAAE71B,EAAI,CAAC,CAAEyipB,IAAK,EAAGC,KAAM,IAK5B,OADAzloB,EAAKza,EAAI+gB,EAAQ1hB,EACVg0B,CACR,CASA,IAAIitnB,IAAuBH,IAC3B,SAASI,IAAqBrvmB,EAAkB1gB,GAE/C,IAAIuvnB,GAAQ,EAKZ,OAL4B,MAALvvnB,IAAauvnB,GAAQ,EAAMvvnB,EAAIm8mB,IAAQ,GAAK,EAAIz7lB,EAAItf,EAAEvyB,SAC7EmxB,EAAEu4mB,YAAY,EAAG,GACjB+W,IAAmB5umB,EAAItf,EAAGpB,GAC1BA,EAAEu4mB,YAAY,EAAG,GAzClB,SAAsBn8nB,EAAK4jB,GACrBA,IAAGA,EAAIm8mB,IAAQ,IACpBn8mB,EAAEu4mB,YAAY,EAAGn8nB,EAAIqzoB,KAAO,GAC5BzvnB,EAAEu4mB,YAAY,EAAGn8nB,EAAIszoB,MAAQ,EAE9B,CAqCCM,CAAa,CAAEP,IAAK,EAAGC,KAAM,GAAK1vnB,GAC3BuvnB,EAAQvvnB,EAAEttB,MAAM,EAAGstB,EAAExwB,GAAKwwB,CAClC,CAGA,SAASiwnB,IAAehmoB,GACvB,IAAI4uB,EAAM5uB,EAAK2unB,WAAW,GACtBsX,EAAYjmoB,EAAK2unB,WAAW,GAGhC,OAFAsX,GAAajmoB,EAAK2unB,WAAW,IAAM,GACnC3unB,EAAKza,IACE,CAAEsY,EAAG+wB,EAAKq3mB,UAAWA,EAC7B,CACA,SAASC,IAAenonB,EAAchI,GAKrC,OAJS,MAALA,IAAWA,EAAIm8mB,IAAQ,IAC3Bn8mB,EAAEu4mB,aAAa,EAAGvwmB,EAAKlgB,GACvBkY,EAAEu4mB,YAAY,EAAGvwmB,EAAKkonB,WAAalonB,EAAK3G,GACxCrB,EAAEu4mB,YAAY,EAAG,GACVv4mB,CACR,CAGA,SAASownB,IAAoBnmoB,GAC5B,IAAIimoB,EAAYjmoB,EAAK2unB,WAAW,GAGhC,OAFAsX,GAAajmoB,EAAK2unB,WAAW,IAAK,GAClC3unB,EAAKza,IACE,CAAEsY,GAAG,EAAGoooB,UAAWA,EAC3B,CACA,SAASG,IAAoBronB,EAAchI,GAI1C,OAHQ,MAALA,IAAWA,EAAIm8mB,IAAQ,IAC1Bn8mB,EAAEu4mB,YAAY,EAAGvwmB,EAAKkonB,WAAalonB,EAAK3G,GACxCrB,EAAEu4mB,YAAY,EAAG,GACVv4mB,CACR,CAGA,IAAIswnB,IAAqBlB,IACrBmB,IAAqBjB,IAGzB,SAASkB,IAA2BvmoB,GACnC,IAAIoloB,EAAgBploB,EAAK2unB,WAAW,GACpC,OAAyB,IAAlByW,GAAyC,aAAlBA,EAA+B,GAAKploB,EAAK2unB,WAAWyW,EAAe,OAClG,CACA,SAASoB,IAA2BxmoB,EAAiB+V,GACpD,IAAIuvnB,GAAQ,EAGZ,OAH4B,MAALvvnB,IAAauvnB,GAAQ,EAAMvvnB,EAAIm8mB,IAAQ,MAC9Dn8mB,EAAEu4mB,YAAY,EAAGtunB,EAAKpb,OAAS,EAAIob,EAAKpb,OAAS,YAC7Cob,EAAKpb,OAAS,GAAGmxB,EAAEu4mB,YAAY,EAAGtunB,EAAM,QACrCsloB,EAAQvvnB,EAAEttB,MAAM,EAAGstB,EAAExwB,GAAKwwB,CAClC,CAGA,IAAI0wnB,IAAyBtB,IAIzBuB,IAAcH,IACdI,IAAcH,IAIlB,SAASI,IAAe5moB,GACvB,IAAIpC,EAAIoC,EAAKvX,MAAMuX,EAAKza,EAAGya,EAAKza,EAAI,GAChCshpB,EAAgB,EAAPjpoB,EAAE,GAASkpoB,EAAe,EAAPlpoB,EAAE,GAClCoC,EAAKza,GAAK,EACV,IAAIwhpB,EAAc,IAATD,EAAanG,IAAS,CAAC,EAAG,EAAG,EAAG,EAAW,IAAP/ioB,EAAE,GAAYA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAK,GAAKmznB,IAAcnznB,EAAG,IAAM,EAC1G,OAAOipoB,EAASE,EAAK,IAAOA,CAC7B,CACA,SAASC,IAAehnoB,EAAiB+V,GAC/B,MAALA,IAAWA,EAAIm8mB,IAAQ,IAC3B,IAAI2U,EAAQ,EAAGC,EAAO,EAAGG,EAAc,IAAPjnoB,EAGhC,GAFKA,IAAgB,EAAPA,IAAeA,KAAU,GAAK,KAASA,EAAQ,GAAK,GAAQ8moB,EAAO,EACvEG,IAAgB,EAAPA,IAAeA,KAAU,GAAK,KAASA,EAAQ,GAAK,KAAQH,EAAO,EAAGD,EAAQ,IAC7FC,EACC,MAAM,IAAI3/oB,MAAM,wBAA0B6Y,GADrC+V,EAAEu4mB,aAAa,IAAKuY,EAAQI,EAAOjnoB,IAAS,IAAM6moB,EAAQ,GAErE,CAIA,SAASK,IAAUlnoB,GAClB,IAAI+d,EAAkB,CAAE3G,EAAG,CAAC,EAAGnG,EAAG,CAAC,GAKnC,OAJA8M,EAAK3G,EAAEr0B,EAAIid,EAAK2unB,WAAW,GAC3B5wmB,EAAK9M,EAAEluB,EAAIid,EAAK2unB,WAAW,GAC3B5wmB,EAAK3G,EAAEvZ,EAAImC,EAAK2unB,WAAW,GAC3B5wmB,EAAK9M,EAAEpT,EAAImC,EAAK2unB,WAAW,GACpB5wmB,CACR,CAWA,IAAIopnB,IAAqBD,IACrBE,IAXJ,SAAmBrkpB,EAAagzB,GAM/B,OALKA,IAAGA,EAAIm8mB,IAAQ,KACpBn8mB,EAAEu4mB,YAAY,EAAGvroB,EAAEq0B,EAAEr0B,GACrBgzB,EAAEu4mB,YAAY,EAAGvroB,EAAEkuB,EAAEluB,GACrBgzB,EAAEu4mB,YAAY,EAAGvroB,EAAEq0B,EAAEvZ,GACrBkY,EAAEu4mB,YAAY,EAAGvroB,EAAEkuB,EAAEpT,GACdkY,CACR,EA4BA,SAASsxnB,IAAWrnoB,GACnB,GAAGA,EAAKpb,OAASob,EAAKza,EAAI,EAAG,KAAM,4BACnC,OAAOya,EAAK2unB,WAAW,EAAG,IAC3B,CACA,SAAS2Y,IAAWtnoB,EAAM+V,GAAK,OAAQA,GAAKm8mB,IAAQ,IAAI5D,YAAY,EAAGtunB,EAAM,IAAM,CAmCnF,SAASunoB,IAAe7inB,EAAO3O,GAE9B,GADKA,IAAGA,EAAIm8mB,IAAQ,KACfxtmB,GAASA,EAAM++F,KAAkD,OAA1C1tG,EAAEu4mB,YAAY,EAAG,GAAIv4mB,EAAEu4mB,YAAY,EAAG,GAAWv4mB,EAC1D,MAAf2O,EAAM/wB,OACToiB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG5pmB,EAAM/wB,QACE,MAAf+wB,EAAMwH,OAChBnW,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG5pmB,EAAMwH,SAEvBnW,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,IAElB,IAAIkZ,EAAM9inB,EAAMgiP,MAAQ,EAIxB,GAHI8gY,EAAM,EAAGA,GAAO,MACXA,EAAM,IAAGA,GAAO,OACzBzxnB,EAAEu4mB,YAAY,EAAGkZ,GACZ9inB,EAAMotF,KAAsB,MAAfptF,EAAMwH,MAIjB,CACN,IAAI4lF,EAAOptF,EAAMotF,KAAO,SACN,iBAAPA,IAAiBA,GAAO,SAAWA,EAAIrgH,SAAS,KAAKhJ,OAAO,IACvEstB,EAAEu4mB,YAAY,EAAGnknB,SAAS2nG,EAAIrpH,MAAM,EAAG,GAAI,KAC3CstB,EAAEu4mB,YAAY,EAAGnknB,SAAS2nG,EAAIrpH,MAAM,EAAG,GAAI,KAC3CstB,EAAEu4mB,YAAY,EAAGnknB,SAAS2nG,EAAIrpH,MAAM,EAAG,GAAI,KAC3CstB,EAAEu4mB,YAAY,EAAG,IAClB,MAVCv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GASlB,OAAOv4mB,CACR,CAoDA,IAoCI0xnB,IAAc,GAKdC,IAAmB,CACf,EAAa,CAAEh7oB,EAAG,WAAYyqB,EA1CpB,GA2CV,EAAa,CAAEzqB,EAAG,WAAYyqB,EAAGswnB,KACjC,EAAa,CAAE/6oB,EAAG,qBAAsByqB,EAAGswnB,KAC3C,EAAa,CAAE/6oB,EAAG,YAAayqB,EA5CrB,GA6CV,EAAa,CAAEzqB,EAAG,YAAayqB,EA7CrB,GA8CV,EAAa,CAAEzqB,EAAG,iBAAkByqB,EA9C1B,GA+CV,EAAa,CAAEzqB,EAAG,aAAcyqB,EA/CtB,GAgDV,EAAa,CAAEzqB,EAAG,YAAayqB,EAhDrB,GAiDV,EAAa,CAAEzqB,EAAG,cAAeyqB,EAjDvB,GAkDV,GAAa,CAAEzqB,EAAG,sBAAuByqB,EAlD/B,GAmDV,GAAa,CAAEzqB,EAAG,YAAayqB,EA5CrB,IA6CV,GAAa,CAAEzqB,EAAG,eAAgByqB,EArBlB,MAsBhB,GAAa,CAAEzqB,EAAG,gBAAiByqB,EArBnB,MAsBhB,GAAa,CAAEzqB,EAAG,UAAWyqB,EAAGswnB,KAChC,GAAa,CAAE/6oB,EAAG,UAAWyqB,EAAGswnB,KAChC,GAAa,CAAE/6oB,EAAG,gBAAiByqB,EAjDzB,IAkDV,GAAa,CAAEzqB,EAAG,iBAAkByqB,EAzD1B,GA0DV,GAAa,CAAEzqB,EAAG,YAAayqB,EAnDrB,IAoDV,GAAa,CAAEzqB,EAAG,oBAAqByqB,EApD7B,IAqDV,GAAa,CAAEzqB,EAAG,aAAcyqB,EA5DtB,EA4DgCrM,EAAG,WAC7C,GAAa,CAAEpe,EAAG,SAAUyqB,EAxClB,IAyCV,GAAa,CAAEzqB,EAAG,cAAeyqB,EAAGswnB,KACpC,GAAa,CAAE/6oB,EAAG,gBAAiByqB,EAAGswnB,KACtC,GAAa,CAAE/6oB,EAAG,WAAYyqB,EAAGswnB,KACjC,GAAa,CAAE/6oB,EAAG,UAAWyqB,EAAGswnB,KAChC,IAAa,CAAC,EAEd,WAAmB,CAAE/6oB,EAAG,SAAUyqB,EAvDxB,IAwDV,WAAmB,CAAEzqB,EAAG,WAAYyqB,EAxD1B,IAyDV,WAAmB,CAAC,GAIxBwwnB,IAAe,CACX,EAAa,CAAEj7oB,EAAG,WAAYyqB,EA5EpB,GA6EV,EAAa,CAAEzqB,EAAG,QAASyqB,EAAGswnB,KAC9B,EAAa,CAAE/6oB,EAAG,UAAWyqB,EAAGswnB,KAChC,EAAa,CAAE/6oB,EAAG,SAAUyqB,EAAGswnB,KAC/B,EAAa,CAAE/6oB,EAAG,WAAYyqB,EAAGswnB,KACjC,EAAa,CAAE/6oB,EAAG,WAAYyqB,EAAGswnB,KACjC,EAAa,CAAE/6oB,EAAG,WAAYyqB,EAAGswnB,KACjC,EAAa,CAAE/6oB,EAAG,aAAcyqB,EAAGswnB,KACnC,EAAa,CAAE/6oB,EAAG,YAAayqB,EAAGswnB,KAClC,GAAa,CAAE/6oB,EAAG,WAAYyqB,EAhEpB,IAiEV,GAAa,CAAEzqB,EAAG,cAAeyqB,EAjEvB,IAkEV,GAAa,CAAEzqB,EAAG,cAAeyqB,EAlEvB,IAmEV,GAAa,CAAEzqB,EAAG,eAAgByqB,EAnExB,IAoEV,GAAa,CAAEzqB,EAAG,YAAayqB,EAxFrB,GAyFV,GAAa,CAAEzqB,EAAG,YAAayqB,EAzFrB,GA0FV,GAAa,CAAEzqB,EAAG,YAAayqB,EA1FrB,GA2FV,GAAa,CAAEzqB,EAAG,YAAayqB,EAhErB,IAiEV,GAAa,CAAEzqB,EAAG,cAAeyqB,EAAGswnB,KACpC,GAAa,CAAE/6oB,EAAG,cAAeyqB,EA7FvB,GA8FV,IAAa,CAAC,EAEd,WAAmB,CAAEzqB,EAAG,SAAUyqB,EAnFxB,IAoFV,WAAmB,CAAEzqB,EAAG,WAAYyqB,EApF1B,IAqFV,WAAmB,CAAC,GAgF5B,SAASywnB,IAAO93f,GAA6D,OAAOA,EAAIh/I,KAAI,SAASsd,GAAK,MAAO,CAAEA,GAAG,GAAI,IAAKA,GAAG,EAAG,IAAM,IAAFA,EAAQ,GAAI,CAIrJ,IA4FIy5nB,IAAsBvK,IA5FEsK,IAAO,CAElC,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAGA,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAEA,QACA,MACA,IACA,QACA,QACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,MACA,SAEA,IACA,SACA,SACA,MACA,QACA,QACA,MACA,IACA,MACA,SACA,SACA,SACA,SACA,SACA,SACA,SAEA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,MACA,QACA,MACA,QACA,SACA,SACA,QACA,QAGA,SACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAKG5D,IAAO,CACH,EAAa,SACb,EAAa,UACb,GAAa,UACb,GAAa,QACb,GAAa,SACb,GAAa,QACb,GAAa,OACb,GAAa,gBACb,IAAa,SAmBjB8D,IAAgC,CAEnC,6EAA8E,YAC9E,uDAAwD,YACxD,0DAA2D,YAC3D,uDAAwD,YACxD,gFAAiF,YAGjF,4EAA6E,SAC7E,qCAAsC,SACtC,sCAAuC,OAGvC,6EAA8E,SAC9E,sCAAuC,SAGvC,0CAA2C,SAC3C,sCAAuC,SACvC,0CAA2C,OAC3C,sCAAuC,OAGvC,8EAA+E,UAC/E,uCAAwC,UAGxC,gFAAiF,OACjF,yCAA0C,OAG1C,yEAA0E,SAC1E,kCAAmC,SAGnC,6DAA8D,YAC9D,sEAAuE,YACvE,wEAAyE,WAGzE,wEAAyE,OACzE,6EAA8E,OAG9E,2EAA4E,WAC5E,oCAAqC,WACrC,gDAAiD,mBACjD,sCAAuC,SAGvC,gFAAiF,WACjF,yCAA0C,WAG1C,sCAAuC,OACvC,6EAA8E,OAG9E,oEAAqE,OAGrE,gDAAiD,OAGjD,2CAA4C,OAG5C,wCAAyC,OAGzC,qCAAsC,aACtC,4EAA6E,aAG7E,8EAA+E,OAG/E,oCAAqC,OACrC,wCAAyC,OAGzC,4CAA6C,OAG7C,uCAAwC,OACxC,8EAA+E,OAG/E,wCAAyC,QACzC,+EAAgF,QAGhF,gDAAiD,OACjD,6CAA8C,OAC9C,uFAAwF,OACxF,oFAAqF,OAGrF,sCAAuC,OACvC,6EAA8E,OAG9E,qCAAsC,OACtC,2CAA4C,OAC5C,uCAAwC,OACxC,kFAAmF,OACnF,8EAA+E,OAC/E,4EAA6E,OAG7E,4CAA6C,OAC7C,mFAAoF,OAGpF,kCAAmC,OACnC,uCAAwC,OACxC,sCAAuC,OACvC,2CAA4C,OAG5C,qCAAsC,OAGtC,iCAAkC,OAClC,wEAAyE,OAGzE,0DAA2D,SAG3D,kEAAmE,OAGnE,wCAAyC,OACzC,6CAA8C,OAG9C,uCAAwC,MACxC,gDAAiD,OAGjD,iDAAkD,OAClD,uFAAwF,OAGxF,iDAAkD,OAGlD,2DAA4D,OAG5D,sCAAuC,OAGvC,4DAA6D,WAC7D,0EAA2E,OAC3E,4EAA6E,OAC7E,0EAA2E,OAC3E,4EAA6E,OAC7E,2EAA4E,OAG5E,2DAA4D,OAE5D,2DAA4D,OAC5D,0DAA2D,OAG3D,YAAa,OAEb,MAAS,MAGNC,IAAU,CACZC,UAAW,CACVC,KAAM,6EACNC,KAAM,uDACNC,KAAM,0DACNC,KAAM,uDACNC,KAAM,iFAEPC,KAAM,CACLL,KAAM,gFACNE,KAAM,0CAEPI,SAAU,CACTN,KAAM,2EACNE,KAAM,qCAEPjE,OAAQ,CACP+D,KAAM,4EACNE,KAAM,sCAEPK,OAAQ,CACPP,KAAM,6EACNE,KAAM,uCAEPM,QAAS,CACRR,KAAM,8EACNE,KAAM,wCAEPO,OAAQ,CACPT,KAAM,0CACNE,KAAM,uCAEP5ooB,SAAU,CACT0ooB,KAAM,gFACNE,KAAM,0CAEP5onB,OAAQ,CACP0onB,KAAM,yEACNE,KAAM,oCAqCT,SAASQ,IAAStxd,EAAIxvJ,GACrB,IAE8BlP,EAF1BiwnB,EA55DL,SAAmB1ipB,GAElB,IADA,IAAI6vB,EAAsB,GAAak1C,EAAIvhE,IAAKxD,GACxCvB,EAAI,EAAGA,IAAMsmE,EAAErmE,SAAUD,EACb,MAAhBoxB,EAAE7vB,EAAI+kE,EAAEtmE,OAAcoxB,EAAE7vB,EAAI+kE,EAAEtmE,KAAO,IACxCoxB,EAAE7vB,EAAI+kE,EAAEtmE,KAAKW,KAAK2lE,EAAEtmE,IAErB,OAAOoxB,CACR,CAq5D2C8ynB,CAAUf,KAEhD/xnB,EAAsB,GAC1BA,EAAEA,EAAEnxB,QAAWm5oB,IACfhonB,EAAEA,EAAEnxB,QAAUs6oB,IAAU,QAAS,KAAM,CACtC,MAASE,IACT,YAAaA,IACb,YAAaA,MAGdrpnB,EAAIA,EAAE9tB,OAAO,CACZ,CAAC,MAAO,mBACR,CAAC,MAAO,2DACR,CAAC,MAAO,4DACR,CAAC,OAAQ,4DAET,CAAC,MAAO,aACR,CAAC,MAAO,aACR,CAAC,MAAO,aACR,CAAC,MAAO,eACR,CAAC,MAAO,eACR,CAAC,MAAO,cAAe,CAAC,OAAQ,cAChC,CAAC,MAAO,cAAe,CAAC,OAAQ,cAChC,CAAC,MAAO,mBACR,CAAC,OAAQ,6DACR6I,KAAI,SAASsd,GACd,OAAO8wnB,IAAU,UAAW,KAAM,CAAC,UAAY9wnB,EAAE,GAAI,YAAeA,EAAE,IACvE,KAGA,IAAI06nB,EAAK,SAAS74oB,GACdonL,EAAGpnL,IAAMonL,EAAGpnL,GAAGrL,OAAS,IAC1B+zB,EAAI0+J,EAAGpnL,GAAG,GACV8lB,EAAEA,EAAEnxB,QAAWs6oB,IAAU,WAAY,KAAM,CAC1C,UAAqB,KAARvmnB,EAAE,GAAY,GAAG,KAAOA,EACrC,YAAeovnB,IAAQ93oB,GAAG43B,EAAKkhnB,WAAahB,IAAQ93oB,GAAS,OAGhE,EAGIsmL,EAAK,SAAStmL,IAChBonL,EAAGpnL,IAAI,IAAI1L,SAAQ,SAASo0B,GAC5B5C,EAAEA,EAAEnxB,QAAWs6oB,IAAU,WAAY,KAAM,CAC1C,UAAqB,KAARvmnB,EAAE,GAAY,GAAG,KAAOA,EACrC,YAAeovnB,IAAQ93oB,GAAG43B,EAAKkhnB,WAAahB,IAAQ93oB,GAAS,MAE/D,GACD,EAGIumL,EAAK,SAASr/J,IAChBkgK,EAAGlgK,IAAI,IAAI5yB,SAAQ,SAASo0B,GAC5B5C,EAAEA,EAAEnxB,QAAWs6oB,IAAU,WAAY,KAAM,CAC1C,UAAqB,KAARvmnB,EAAE,GAAY,GAAG,KAAOA,EACrC,YAAeiwnB,EAAQzxnB,GAAG,IAE5B,GACD,EAeA,OAbA2xnB,EAAG,aACHvyd,EAAG,UACHA,EAAG,UACHC,EAAG,UACH,CAAC,OAAQ,UAAUjyL,QAAQukpB,GAC3B,CAAC,YAAa,WAAY,aAAavkpB,QAAQiyL,GAC/CA,EAAG,OACHA,EAAG,YACHA,EAAG,oBACHA,EAAG,YACHD,EAAG,YACHC,EAAG,UACAzgK,EAAEnxB,OAAO,IAAImxB,EAAEA,EAAEnxB,QAAW,WAAamxB,EAAE,GAAGA,EAAE,GAAG5e,QAAQ,KAAK,MAC5D4e,EAAErtB,KAAK,GACf,CAEA,IAAIsgpB,IAAQ,CACXC,GAAI,qFACJC,MAAO,qFACPC,MAAO,gFACPC,IAAK,iFACLC,MAAO,uFACPC,MAAO,0FACPC,MAAO,mFACPC,KAAM,gFACNC,MAAO,qFACPC,KAAM,+EACNC,WAAY,wFACZC,UAAW,0FACXC,WAAY,wFACZC,IAAK,oFACLC,IAAK,6EACLC,MAAO,4EACPC,MAAO,4EACPC,QAAS,iEACTC,GAAI,iFACJC,GAAI,CACH,gFACA,qEAEDC,GAAI,kFACJC,GAAI,sEACJC,IAAK,4EACLC,KAAM,8EACNC,OAAQ,oFACRC,MAAO,4EACPC,OAAQ,mEACRC,IAAK,qEAKN,SAASC,IAAcv6b,GACtB,IAAI5jN,EAAI4jN,EAAK97G,YAAY,KACzB,OAAO87G,EAAK7nN,MAAM,EAAEiE,EAAE,GAAK,SAAW4jN,EAAK7nN,MAAMiE,EAAE,GAAK,OACzD,CA0BA,SAASo+oB,IAAWC,GACnB,IAAIh1nB,EAAI,CAACgonB,IAAYmB,IAAU,gBAAiB,KAAM,CAErD,MAASE,OAMV,OAJA11oB,IAAKqhpB,EAAK,QAAQxmpB,SAAQ,SAASympB,GAClCj1nB,EAAEA,EAAEnxB,QAAWs6oB,IAAU,eAAgB,KAAM6L,EAAK,OAAOC,GAC5D,IACGj1nB,EAAEnxB,OAAO,IAAImxB,EAAEA,EAAEnxB,QAAW,mBAAqBmxB,EAAE,GAAGA,EAAE,GAAG5e,QAAQ,KAAK,MACpE4e,EAAErtB,KAAK,GACf,CAEA,SAASuipB,IAASF,EAAMG,EAAgBt4oB,EAAGnI,EAAM0gpB,EAAQC,GAIxD,GAHID,IAAQA,EAAS,CAAC,GAClBJ,EAAK,SAAQA,EAAK,OAAS,CAAC,GAC5BA,EAAK,UAASA,EAAK,QAAU,GAC9BG,EAAM,EAAG,IAAIA,EAAMH,EAAK,QAASA,EAAK,OAAO,MAAQG,KAAQA,GAOhE,GANAH,EAAK,QAAUG,EAAM,EACrBC,EAAO7ylB,GAAK,MAAQ4ylB,EACpBC,EAAOE,KAAO5gpB,EACd0gpB,EAAOG,OAAS14oB,EACbw4oB,EAAYD,EAAOI,WAAaH,EAC3B,CAACpC,IAAKG,MAAOH,IAAKK,MAAOL,IAAKM,OAAOnhpB,QAAQgjpB,EAAOE,OAAS,IAAGF,EAAOI,WAAa,YACzFR,EAAK,OAAOI,EAAO7ylB,IAAK,MAAM,IAAInxD,MAAM,sBAAwB+jpB,GAGnE,OAFAH,EAAK,OAAOI,EAAO7ylB,IAAM6ylB,EACzBJ,GAAM,IAAMI,EAAOG,QAAQn0oB,QAAQ,KAAK,MAAQg0oB,EACzCD,CACR,CAiCA,SAASM,IAAel7b,EAAiBjqL,EAAgBlwB,GACxD,MAAO,CACN,iCAAmCm6M,EAAO,OAC1C,8EAAgFn6M,GAAO,OAAS,IAAMkwB,EAAM,QAC5G,0BACC39B,KAAK,GACR,CAoBA,SAAS+ipB,MACR,MAAO,sSAA6StmB,IAAK7onB,QAAU,wDACpU,CAIA,IAAIqtoB,IAAuC,CAC1C,CAAC,cAAe,YAChB,CAAC,mBAAoB,iBACrB,CAAC,cAAe,YAChB,CAAC,oBAAqB,cACtB,CAAC,iBAAkB,eACnB,CAAC,cAAe,aAChB,CAAC,aAAc,WACf,CAAC,aAAc,UACf,CAAC,iBAAkB,YACnB,CAAC,gBAAiB,cAClB,CAAC,cAAe,YAChB,CAAC,aAAc,WACf,CAAC,WAAY,SACb,CAAC,kBAAmB,cAAe,QACnC,CAAC,mBAAoB,eAAgB,SA0BtC,SAAS+B,IAAQ94oB,EAAGymB,EAAGnpB,EAAG6lB,EAAGjL,GACjB,MAARA,EAAElY,IAAmB,MAALymB,GAAmB,KAANA,IAChCvO,EAAElY,GAAKymB,EACPA,EAAI+knB,IAAU/knB,GACdtD,EAAEA,EAAEnxB,QAAWsL,EAAIgvoB,IAAUtsoB,EAAEymB,EAAEnpB,GAAK8uoB,IAASpsoB,EAAEymB,GAClD,CAEA,SAASsynB,IAAiBlmB,EAAIsN,GAC7B,IAAIlrmB,EAAOkrmB,GAAS,CAAC,EACjBh9mB,EAAI,CAACgonB,IAAYmB,IAAU,oBAAqB,KAAM,CAEzD,WAAYE,IACZ,WAAYA,IACZ,gBAAiBA,IACjB,iBAAkBA,IAClB,YAAaA,OACTt0nB,EAAI,CAAC,EACV,IAAI26mB,IAAO59lB,EAAK+jnB,MAAO,OAAO71nB,EAAErtB,KAAK,IAElC+8nB,IACmB,MAAlBA,EAAGomB,aAAqBH,IAAQ,kBAA6C,kBAAnBjmB,EAAGomB,YAA2BpmB,EAAGomB,YAAc1M,IAAa1Z,EAAGomB,YAAahknB,EAAKiknB,KAAM,CAAC,WAAW,kBAAmB/1nB,EAAGjL,GAChK,MAAnB26mB,EAAGsmB,cAAsBL,IAAQ,mBAA+C,kBAApBjmB,EAAGsmB,aAA4BtmB,EAAGsmB,aAAe5M,IAAa1Z,EAAGsmB,aAAclknB,EAAKiknB,KAAM,CAAC,WAAW,kBAAmB/1nB,EAAGjL,IAG5L,IAAI,IAAInmB,EAAI,EAAGA,GAAKglpB,IAAW/kpB,SAAUD,EAAG,CAC3C,IAAIiO,EAAI+2oB,IAAWhlpB,GACfg0B,EAAIkP,EAAK+jnB,OAA6B,MAApB/jnB,EAAK+jnB,MAAMh5oB,EAAE,IAAci1B,EAAK+jnB,MAAMh5oB,EAAE,IAAM6ynB,EAAKA,EAAG7ynB,EAAE,IAAM,MAC3E,IAAN+lB,EAAYA,EAAI,KACL,IAANA,EAAaA,EAAI,IACL,iBAALA,IAAeA,EAAIjuB,OAAOiuB,IACjC,MAALA,GAAW+ynB,IAAQ94oB,EAAE,GAAI+lB,EAAG,KAAM5C,EAAGjL,EACzC,CAEA,OADGiL,EAAEnxB,OAAO,IAAImxB,EAAEA,EAAEnxB,QAAW,uBAAyBmxB,EAAE,GAAGA,EAAE,GAAG5e,QAAQ,KAAK,MACxE4e,EAAErtB,KAAK,GACf,CAGA,IAAIkhpB,IAAsC,CACzC,CAAC,cAAe,cAAe,UAC/B,CAAC,aAAc,aAAc,UAC7B,CAAC,UAAW,UAAW,UACvB,CAAC,cAAe,cAAe,UAC/B,CAAC,UAAW,UAAW,UACvB,CAAC,oBAAqB,oBAAqB,QAC3C,CAAC,YAAa,YAAa,QAC3B,CAAC,gBAAiB,gBAAiB,QACnC,CAAC,YAAa,YAAa,QAC3B,CAAC,eAAgB,eAAgB,OACjC,CAAC,gBAAiB,gBAAiB,QAGhCoC,IAAmB,CACtB,aAAe,aACf,cAAe,eACf,cAAe,cAsEhB,SAASC,IAAgBxmB,GACxB,IAAI1vmB,EAAsB,GAAIyiD,EAAI0mkB,IAuBlC,OAtBIzZ,IAAIA,EAAK,CAAC,GACdA,EAAGymB,YAAc,UACjBn2nB,EAAEA,EAAEnxB,QAAWm5oB,IACfhonB,EAAEA,EAAEnxB,QAAWs6oB,IAAU,aAAc,KAAM,CAC5C,MAASE,IACT,WAAYA,MAGbwK,IAAUrlpB,SAAQ,SAASqO,GAC1B,QAAgBlC,IAAb+0nB,EAAG7ynB,EAAE,IAAR,CACA,IAAI+lB,EACJ,OAAO/lB,EAAE,IACR,IAAK,SAAU+lB,EAAIylnB,IAAU1zoB,OAAO+6nB,EAAG7ynB,EAAE,MAAO,MAChD,IAAK,OAAQ+lB,EAAI8smB,EAAG7ynB,EAAE,IAAM,OAAS,aAE7BlC,IAANioB,IAAiB5C,EAAEA,EAAEnxB,QAAW4zE,EAAE5lE,EAAE,GAAI+lB,GANV,CAOlC,IAGA5C,EAAEA,EAAEnxB,QAAW4zE,EAAE,eAAgBA,EAAE,YAAaA,EAAE,aAAc,mCAAmCA,EAAE,aAAcA,EAAE,QAAS9tE,OAAO+6nB,EAAG0mB,cAAe,CAACrmoB,KAAK,EAAGsmoB,SAAS,aACzKr2nB,EAAEA,EAAEnxB,QAAW4zE,EAAE,gBAAiBA,EAAE,YAAaitjB,EAAG0e,WAAWrzoB,KAAI,SAASsmB,GAAK,MAAO,aAAegnnB,IAAUhnnB,GAAK,aAAe,IAAG1uB,KAAK,IAAK,CAACod,KAAM2/mB,EAAG0mB,WAAYC,SAAS,WAC9Kr2nB,EAAEnxB,OAAO,IAAImxB,EAAEA,EAAEnxB,QAAW,gBAAkBmxB,EAAE,GAAGA,EAAE,GAAG5e,QAAQ,KAAK,MACjE4e,EAAErtB,KAAK,GACf,CA+CA,SAAS2jpB,IAAiB5mB,GACzB,IAAI1vmB,EAAI,CAACgonB,IAAYmB,IAAU,aAAc,KAAM,CAClD,MAASE,IACT,WAAYA,OAEb,IAAI3Z,EAAI,OAAO1vmB,EAAErtB,KAAK,IACtB,IAAI4jpB,EAAM,EASV,OARA5ipB,IAAK+7nB,GAAIlhoB,SAAQ,SAAkBF,KAAOiopB,EACzCv2nB,EAAEA,EAAEnxB,QAAWs6oB,IAAU,WAr5D3B,SAAkB9nnB,EAAG6wnB,GACpB,cAAc7wnB,GACb,IAAK,SACJ,IAAIrB,EAAImpnB,IAAU,YAAad,IAAUhnnB,IAEzC,OADG6wnB,IAAMlynB,EAAIA,EAAE5e,QAAQ,UAAW,YAC3B4e,EACR,IAAK,SAAU,OAAOmpnB,KAAa,EAAF9nnB,IAAMA,EAAE,QAAQ,QAASgnnB,IAAU1zoB,OAAO0sB,KAC3E,IAAK,UAAW,OAAO8nnB,IAAU,UAAU9nnB,EAAE,OAAO,SAErD,GAAGA,aAAawC,KAAM,OAAOslnB,IAAU,cAAeC,IAAa/nnB,IACnE,MAAM,IAAIjwB,MAAM,uBAAyBiwB,EAC1C,CA04DuCm1nB,CAAS9mB,EAAGphoB,IAAI,GAAO,CAC3D,MAAS,yCACT,IAAOiopB,EACP,KAAQlO,IAAU/5oB,IAEpB,IACG0xB,EAAEnxB,OAAO,IAAImxB,EAAEA,EAAEnxB,QAAU,gBAAiBmxB,EAAE,GAAGA,EAAE,GAAG5e,QAAQ,KAAK,MAC/D4e,EAAErtB,KAAK,GACf,CAEA,IAAI8jpB,IAAkB,CACrB1pT,MAAO,QACP2pT,QAAS,UACTC,OAAQ,SACRC,SAAU,WACVC,SAAU,cACVC,WAAY,aACZC,UAAW,WACXZ,YAAa,UAEba,YAAa,cACblB,YAAa,UACbE,aAAc,YAIdiB,SAAU,WAEVC,QAAS,UACTC,QAAS,UAOTC,WAAY,UAEZC,cAAe,gBACfC,WAAY,aACZC,SAAU,YAwMX,SAASC,IAAyB9ipB,EAAiBpI,GAClD,IAAI0zB,EAAIm8mB,IAAQ,GAAIpnnB,EAAIonnB,IAAQ,GAEhC,OADAn8mB,EAAEu4mB,YAAY,EAAW,IAAR7joB,EAAe,GAAOA,GAChCA,GACN,KAAK,EAAgBqgB,EAAEwjnB,aAAa,EAAGjsoB,GAAQ,MAC/C,KAAK,GAAgByoB,EAAIonnB,IAAQ,IAAM5D,YAAY,EAAGjsoB,EAAO,KAAM,MACnE,KAAK,GAAkByoB,EAAEwjnB,YAAY,EAAGjsoB,EAAQ,EAAO,GAAO,MAC9D,KAAK,GAA6GyoB,EA3IpH,SAAwB0xC,GACvB,IACIrlC,GADuB,iBAARqlC,EAAoB,IAAI5iC,KAAKA,KAAK3sB,MAAMuvD,IAASA,GACvDhhC,UAAY,IAAO,YAC5Bj2B,EAAI4xB,EAAIlyB,KAAKylH,IAAI,EAAE,IAAKx6G,GAAKinB,EAAI5xB,GAAKN,KAAKylH,IAAI,EAAE,IAC3Cx6G,GAAK,IACf,IAAID,GADJ1K,GAAK,KACQN,KAAKylH,IAAI,EAAE,IAAO,EAC5Bz6G,EAAI,IAAK1K,GAAQN,KAAKylH,IAAI,EAAE,IAAKx6G,GAAKD,GACzC,IAAI8lB,EAAIm8mB,IAAQ,GAA8C,OAA1Cn8mB,EAAEu4mB,YAAY,EAAG/ooB,GAAIwwB,EAAEu4mB,YAAY,EAAGp+nB,GAAW6lB,CACtE,CAmIwHy3nB,CAAenrpB,GAAQ,MAC7I,KAAK,GACL,KAAK,GAKJ,KAHAyoB,EAAIonnB,IAAQ,EAAI,GAAK7voB,EAAMuC,OAAS,IAAMvC,EAAMuC,OAAS,EAAI,EAAI,KAC/D0poB,YAAY,EAAGjsoB,EAAMuC,OAAS,GAChCkmB,EAAEwjnB,YAAY,EAAGjsoB,EAAO,QAClByoB,EAAEvlB,GAAKulB,EAAElmB,QAAQkmB,EAAEwjnB,YAAY,EAAG,GACxC,MACD,QAAS,MAAM,IAAInnoB,MAAM,wCAA0CsD,EAAO,IAAMpI,GAEjF,OAAOwkoB,IAAQ,CAAC9wmB,EAAGjL,GACpB,CA4FA,IAAI2ioB,IAAY,CAAE,WAAY,YAAa,gBAAiB,cAAe,mBAAoB,SAC/F,SAASC,IAAoBthpB,GAC5B,cAAcA,GACb,IAAK,UAAW,OAAO,GACvB,IAAK,SAAU,OAAa,EAAJA,IAAQA,EAAO,EAAO,EAC9C,IAAK,SAAU,OAAO,GACtB,IAAK,SAAU,GAAGA,aAAewtB,KAAM,OAAO,GAE/C,OAAQ,CACT,CACA,SAAS+znB,IAAkB9zoB,EAAS+zoB,EAAIC,GACvC,IAAIC,EAAM5b,IAAQ,GAAI6b,EAAO,GAAIjqpB,EAAO,GACpCikN,EAAK,EAAGpjN,EAAI,EAEZm7L,EAAKoyc,IAAQ,GAAI8b,EAAM9b,IAAQ,GAOnC,GANApyc,EAAGwuc,YAAY,EAAG,GAClBxuc,EAAGwuc,YAAY,EAAG,MAClB0f,EAAI1f,YAAY,EAAG,GACnBxqoB,EAAKwB,KAAKw6L,GAAKiud,EAAKzopB,KAAK0opB,GACzBjmc,GAAM,EAAIjoB,EAAGl7L,QAETgppB,EAAI,EACPI,EAAM9b,IAAQ,IACV5D,YAAY,EAAG,GACnByf,EAAKnrlB,QAAQorlB,GAEb,IAAIlnB,EAAO,CAACoL,IAAQ,IAEpB,IADApL,EAAK,GAAGwH,YAAY,EAAGz0nB,EAAQjV,QAC3BD,EAAI,EAAGA,EAAIkV,EAAQjV,SAAUD,EAAG,CACnC,IAAItC,EAAQwX,EAAQlV,GAAG,GAKvB,KAJAm7L,EAAKoyc,IAAQ,EAAQ,GAAK7voB,EAAMuC,OAAS,IAAMvC,EAAMuC,OAAS,EAAI,EAAI,KACnE0poB,YAAY,EAAG3poB,EAAE,GACpBm7L,EAAGwuc,YAAY,EAAGjsoB,EAAMuC,OAAS,GACjCk7L,EAAGwuc,YAAY,EAAGjsoB,EAAO,QACnBy9L,EAAGv6L,GAAKu6L,EAAGl7L,QAAQk7L,EAAGwuc,YAAY,EAAG,GAC3CxH,EAAKxhoB,KAAKw6L,EACX,CACAA,EAAK+mc,IAAQC,GACbhjoB,EAAK8+D,QAAQk9H,GACbioB,GAAM,EAAIjoB,EAAGl7L,MACd,CAEA,IAAID,EAAI,EAAGA,EAAIkV,EAAQjV,SAAUD,EAChC,KAAGippB,GAAOA,EAAG/zoB,EAAQlV,GAAG,QACrB8opB,IAAUtlpB,QAAQ0R,EAAQlV,GAAG,KAAO,GAAKqnpB,IAAiB7jpB,QAAQ0R,EAAQlV,GAAG,KAAO,IACnE,MAAjBkV,EAAQlV,GAAG,GAAd,CAEA,IAAIyH,EAAMyN,EAAQlV,GAAG,GAAI69N,EAAM,EAC/B,GAAGorb,EAAI,CAEN,IAAIK,EAASJ,EADbrrb,GAAOorb,EAAG/zoB,EAAQlV,GAAG,KAErB,GAAc,WAAXsppB,EAAMnjoB,GAAgC,iBAAP1e,EAAiB,CAElD,IAAI0jJ,EAAM1jJ,EAAIwQ,MAAM,KACpBxQ,IAAS0jJ,EAAI,IAAK,MAASA,EAAI,IAAK,EACrC,CACAgwC,EAAKytd,IAAyBU,EAAM92nB,EAAG/qB,EACxC,KAAO,CACN,IAAIgV,EAAIssoB,IAAoBthpB,IACnB,GAANgV,IAAWA,EAAI,GAAMhV,EAAM1B,OAAO0B,IACrC0zL,EAAKytd,IAAyBnsoB,EAAGhV,EAClC,CACAtI,EAAKwB,KAAKw6L,IAEVkud,EAAM9b,IAAQ,IACV5D,YAAY,EAAIsf,EAAWprb,EAAN,EAAE79N,GAC3BoppB,EAAKzopB,KAAK0opB,GAEVjmc,GAAM,EAAIjoB,EAAGl7L,MAvBqB,CA0BnC,IAAIqL,EAAI,GAAKnM,EAAKc,OAAS,GAC3B,IAAID,EAAI,EAAGA,EAAIb,EAAKc,SAAUD,EAAKoppB,EAAKpppB,GAAG2poB,YAAY,EAAGr+nB,GAAIA,GAAKnM,EAAKa,GAAGC,OAG3E,OAFAkppB,EAAIxf,YAAY,EAAGvmb,GACnB+lc,EAAIxf,YAAY,EAAGxqoB,EAAKc,QACjBiioB,IAAQ,CAACinB,GAAK7lpB,OAAO8lpB,GAAM9lpB,OAAOnE,GAC1C,CAqCA,SAASoqpB,IAAwBr0oB,EAAS23nB,EAAOoc,EAAIC,EAAqCM,EAAmBC,GAC5G,IAAIN,EAAM5b,IAAQic,EAAW,GAAK,IAC9BrnB,EAAO,CAACgnB,GACZA,EAAIxf,YAAY,EAAG,OACnBwf,EAAIxf,YAAY,EAAG,GACnBwf,EAAIxf,YAAY,EAAG,WACnBwf,EAAIxf,YAAY,GAAIL,IAAI9oR,MAAMsvR,OAAO9B,aAAc,OACnDmb,EAAIxf,YAAY,EAAI6f,EAAW,EAAI,GACnCL,EAAIxf,YAAY,GAAIkD,EAAO,OAC3Bsc,EAAIxf,YAAY,EAAI6f,EAAW,GAAK,IACpC,IAAIE,EAAMV,IAAkB9zoB,EAAS+zoB,EAAIC,GAGzC,GAFA/mB,EAAKxhoB,KAAK+opB,GAEPF,EAAU,CACZ,IAAIG,EAAMX,IAAkBQ,EAAU,KAAM,MAC5CL,EAAIxf,YAAY,GAAI8f,EAAQ,OAC5BN,EAAIxf,YAAY,EAAG,GAAK+f,EAAIzppB,QAC5BkioB,EAAKxhoB,KAAKgppB,EACX,CACA,OAAOznB,IAAQC,EAChB,CAYA,SAASynB,IAAU9f,EAAM7poB,GAAqB,OAAmC,IAA5B6poB,EAAKE,WAAW/poB,EAAiB,CACtF,SAAS4ppB,IAAU71nB,EAAW5C,GAAkD,OAAzCA,IAAGA,EAAEm8mB,IAAQ,IAAIn8mB,EAAEu4mB,YAAY,KAAM31mB,GAAW5C,CAAG,CAE1F,SAAS04nB,IAAYhgB,GAAyC,OAAOA,EAAKE,WAAW,EAAG,IAAM,CAC9F,SAAS+f,IAAY/1nB,EAAc5C,GAA+C,OAAtCA,IAAGA,EAAEm8mB,IAAQ,IAAIn8mB,EAAEu4mB,YAAY,EAAG31mB,GAAW5C,CAAG,CAU5F,SAAS44nB,IAAUh2nB,EAAGxB,EAAcpB,GAInC,OAHIA,IAAGA,EAAIm8mB,IAAQ,IACnBn8mB,EAAEu4mB,YAAY,EAAU,KAALn3mB,GAAawB,KAAOA,GACvC5C,EAAEu4mB,YAAY,EAAU,KAALn3mB,EAAY,EAAI,GAC5BpB,CACR,CAGA,SAAS64nB,IAA2BngB,EAAM7poB,EAAQijC,GACjD,IAAIgnnB,EAAMpgB,EAAKE,WAAW9mmB,GAAQA,EAAK+6mB,MAAQ,GAAK,EAAI,GACpD1jd,EAAW,YACXumc,EAAKL,KACNv9lB,GAAQA,EAAK+6mB,MAAQ,IAAGxd,IAAmB,MAC1Cv9lB,GAAqB,GAAbA,EAAK+6mB,MAGM,IAAb/6mB,EAAK+6mB,OACd1jd,EAAW,QAHKuvc,EAAKE,WAAW,KAChBzvc,EAAW,aAIzBr3J,EAAK+6mB,MAAQ,GAAK/6mB,EAAK+6mB,MAAQ,IAAG1jd,EAAW,SAChD,IAAInpK,EAAI84nB,EAAMpgB,EAAKE,WAAWkgB,EAAK3vd,GAAY,GAE/C,OADAkmc,IAAmBK,EACZ1vmB,CACR,CAsBA,SAAS+4nB,IAAkCC,GAC1C,IAAIt4mB,EAAOs4mB,EAAM53nB,GAAG,GAEhB22nB,EAAM5b,IAAQ,GAClB4b,EAAIxf,YAAY,EAAG73lB,EAAI7xC,QACvBkppB,EAAIxf,YAAY,EAA+B,GAG/C,IAAI0gB,EAAQ9c,IAAQ,EAAIz7lB,EAAI7xC,QAK5B,OAJAoqpB,EAAM1gB,YAAY,EAAI73lB,EAAI7xC,OAAQ6xC,EAAK,WAIhCowlB,IAFG,CAACinB,EAAKkB,GAGjB,CAGA,SAASC,IAA2BxgB,EAAMogB,EAAKhnnB,GAE9C,GAAGA,EAAM,CACR,GAAGA,EAAK+6mB,MAAQ,GAAK/6mB,EAAK+6mB,MAAQ,EAAG,OAAOnU,EAAKE,WAAWkgB,EAAK,SACjE,GAAGhnnB,EAAK+6mB,MAAQ,GAAI,OAAOnU,EAAKE,WAAWkgB,EAAK,YACjD,CAIA,OAFe,IADCpgB,EAAKE,WAAW,GACHF,EAAKE,WAAWkgB,EAAK,aAClCpgB,EAAKE,WAAWkgB,EAAK,YAEtC,CAGA,SAASK,IAAsBzgB,EAAM7poB,EAAQijC,GAC5C,IAAIgnnB,EAAMpgB,EAAKE,WAAW9mmB,GAAqB,GAAbA,EAAK+6mB,KAAY,EAAI,GACvD,OAAW,IAARiM,GAAapgB,EAAKlpoB,IAAY,IAC1B0ppB,IAA2BxgB,EAAMogB,EAAKhnnB,EAC9C,CAEA,SAASsnnB,IAAuB1gB,EAAM7poB,EAAQijC,GAC7C,GAAGA,EAAK+6mB,KAAO,EAAG,OAAOsM,IAAsBzgB,EAAM7poB,EAAQijC,GAC7D,IAAIgnnB,EAAMpgB,EAAKE,WAAW,GAC1B,OAAW,IAARkgB,GAAapgB,EAAKlpoB,IAAY,IAC1BkpoB,EAAKE,WAAWkgB,EAAMhnnB,EAAK+6mB,MAAQ,IAAMnU,EAAK6S,KAAS,QAAU,YACzE,CAEA,SAAS8N,IAAsB34mB,EAAK5O,EAAM9R,GAKzC,OAJIA,IAAGA,EAAIm8mB,IAAQ,EAAI,EAAIz7lB,EAAI7xC,SAC/BmxB,EAAEu4mB,YAAY,EAAG73lB,EAAI7xC,QACrBmxB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,GAAI73lB,EAAK,WAChB1gB,CACR,CAyDA,SAASs5nB,IAAsB54mB,EAAgB1gB,GAC1CA,IAAGA,EAAIm8mB,IAAQ,EAAiB,EAAbz7lB,EAAI7xC,SAC3BmxB,EAAEu4mB,YAAY,EAAG,EAAI73lB,EAAI7xC,QACzB,IAAI,IAAID,EAAI,EAAGA,EAAI8xC,EAAI7xC,SAAUD,EAAGoxB,EAAEu4mB,YAAY,EAAG73lB,EAAI1wB,WAAWphB,IAEpE,OADAoxB,EAAEu4mB,YAAY,EAAG,GACVv4mB,CACR,CA4BA,SAASu5nB,IAAgBzwkB,GACxB,IAAIu5F,EAAM85d,IAAQ,KAAMvtoB,EAAI,EACxB2mpB,EAASzskB,EAAGyskB,OACQ,WAArBA,EAAO7ipB,MAAM,EAAE,KAAiB6ipB,EAASA,EAAO7ipB,MAAM,IACzD,IAAI8mpB,EAAUjE,EAAOnjpB,QAAQ,KACzBwO,EAAI44oB,GAAW,EAAI,GAAO,GAC9B,OAAOjE,EAAOtloB,OAAO,IAAM,IAAK,IAAKrP,EAAE,GAAM,MAAO,IAAK,IAAKA,IAAG,EACjEyhK,EAAIk2d,YAAY,EAAE,GAAIl2d,EAAIk2d,YAAY,EAAG33nB,GACzC,IAAIqJ,EAAO,CAAC,EAAE,QAAQ,QAAQ,QAAQ,IAAK,IAAIrb,EAAI,EAAGA,EAAIqb,EAAKpb,SAAUD,EAAGyzK,EAAIk2d,YAAY,EAAGtunB,EAAKrb,IACpG,GAAQ,IAALgS,EAEF04oB,IADA/D,EAASA,EAAO7ipB,MAAM,GACQ2vK,QACxB,GAAO,EAAJzhK,EAAU,CAEnB,IADAqJ,EAAO,kDAAkDpD,MAAM,KAC3DjY,EAAI,EAAGA,EAAIqb,EAAKpb,SAAUD,EAAGyzK,EAAIk2d,YAAY,EAAGnknB,SAASnK,EAAKrb,GAAI,KACtE,IAAI6qpB,EAAYD,GAAW,EAAIjE,EAAO7ipB,MAAM,EAAG8mpB,GAAWjE,EAE1D,IADAlze,EAAIk2d,YAAY,EAAG,GAAGkhB,EAAU5qpB,OAAS,IACrCD,EAAI,EAAGA,EAAI6qpB,EAAU5qpB,SAAUD,EAAGyzK,EAAIk2d,YAAY,EAAGkhB,EAAUzpoB,WAAWphB,IAC9EyzK,EAAIk2d,YAAY,EAAG,GACZ,EAAJ33nB,GAAU04oB,IAAsBE,GAAW,EAAIjE,EAAO7ipB,MAAM8mpB,EAAQ,GAAI,GAAIn3e,EAChF,KAAO,CAEN,IADAp4J,EAAO,kDAAkDpD,MAAM,KAC3DjY,EAAI,EAAGA,EAAIqb,EAAKpb,SAAUD,EAAGyzK,EAAIk2d,YAAY,EAAGnknB,SAASnK,EAAKrb,GAAI,KAEtE,IADA,IAAI0e,EAAI,EACuB,OAAzBiooB,EAAO7ipB,MAAQ,EAAF4a,EAAM,EAAFA,EAAI,IAAoC,QAAzBiooB,EAAO7ipB,MAAQ,EAAF4a,EAAM,EAAFA,EAAI,MAAcA,EAGzE,IAFA+0J,EAAIk2d,YAAY,EAAGjrnB,GACnB+0J,EAAIk2d,YAAY,EAAGgd,EAAO1mpB,OAAS,EAAIye,EAAI,GACvC1e,EAAI,EAAGA,EAAI2mpB,EAAO1mpB,OAAS,EAAIye,IAAK1e,EAAGyzK,EAAIk2d,YAAY,EAAkC,IAA/Bgd,EAAOvloB,WAAWphB,EAAI,EAAI0e,IAIxF,IAHA+0J,EAAIk2d,YAAY,EAAG,GACnBl2d,EAAIk2d,YAAY,EAAG,OACnBl2d,EAAIk2d,YAAY,EAAG,OACf3poB,EAAI,EAAGA,EAAI,IAAKA,EAAGyzK,EAAIk2d,YAAY,EAAG,EAC3C,CACA,OAAOl2d,EAAI3vK,MAAM,EAAG2vK,EAAI7yK,EACzB,CAgBA,SAASkqpB,IAAc5koB,EAAchV,EAAc65oB,EAAkB35nB,GAKpE,OAJIA,IAAGA,EAAIm8mB,IAAQ,IACnBn8mB,EAAEu4mB,YAAY,EAAGzjnB,GACjBkL,EAAEu4mB,YAAY,EAAGz4nB,GACjBkgB,EAAEu4mB,YAAY,EAAGohB,GAAM,GAChB35nB,CACR,CAeA,SAAS45nB,IAAUlhB,EAAM7poB,EAAQijC,GAChC,IAAI53B,EAAI43B,EAAK+6mB,KAAO,EAAI,EAAI,EAE5B,MAAO,CADQnU,EAAKE,WAAW1+nB,GAAgBw+nB,EAAKE,WAAW1+nB,EAAE,KAAiBw+nB,EAAKE,WAAW1+nB,EAAE,KAErG,CAsBA,SAAS2/oB,IAAYnhB,GACpB,IAAIohB,EAAUphB,EAAKE,WAAW,GAC1BmhB,EAASrhB,EAAKE,WAAW,GAG7B,MAAO,CAACv3mB,EAAE,CAACvZ,EAFI4wnB,EAAKE,WAAW,GAER5roB,EAAE8spB,GAAU5+nB,EAAE,CAACpT,EADxB4wnB,EAAKE,WAAW,GACkB5roB,EAAE+spB,GACnD,CACA,SAASC,IAAYhtpB,EAAagzB,GAMjC,OALIA,IAAGA,EAAIm8mB,IAAQ,IACnBn8mB,EAAEu4mB,YAAY,EAAGvroB,EAAEq0B,EAAEr0B,GACrBgzB,EAAEu4mB,YAAY,EAAGvroB,EAAEkuB,EAAEluB,GACrBgzB,EAAEu4mB,YAAY,EAAGvroB,EAAEq0B,EAAEvZ,GACrBkY,EAAEu4mB,YAAY,EAAGvroB,EAAEkuB,EAAEpT,GACdkY,CACR,CAoGA,SAASi6nB,IAAU7jmB,EAAiBh1B,EAAcpB,GACjD,IAAI7lB,EAAI,KAAQD,EAAI,GACpB,OAAO8lB,EAAEgznB,UACR,IAAK,QAKL,IAAK,MAAO,MAJZ,IAAK,QAAS74oB,EAAI,KAAQD,EAAI,EAAG,MACjC,IAAK,QAASC,EAAI,EAAQD,EAAI,EAAG,MACjC,IAAK,QAASC,EAAI,EAAQD,EAAI,EAAG,MACjC,IAAK,QAASC,EAAI,EAAQD,EAAI,EAAG,MAEjC,QAAS,MAAM,IAAI9I,MAAM,4BAE1B,IAAIixK,EAAM85d,IAAQjioB,GAWlB,OAVAmoK,EAAIk2d,YAAY,EAAGp+nB,GACnBkoK,EAAIk2d,YAAY,EAAGn3mB,GAChBlnB,EAAI,GAAGmoK,EAAIk2d,YAAY,EAAG,OAC1Br+nB,EAAI,GAAGmoK,EAAIk2d,YAAY,EAAG,MAC1Br+nB,EAAI,IACNmoK,EAAIk2d,YAAY,EAAG,OACnBl2d,EAAIk2d,YAAY,EAAG,GACnBl2d,EAAIk2d,YAAY,EAAG,MACnBl2d,EAAIk2d,YAAY,EAAG,IAEbl2d,CACR,CAoDA,SAAS63e,IAAkBjwoB,EAAM6nB,GAChC,IAAI53B,GAAM43B,GAAQA,EAAK+6mB,MAAQ,EAAI,EAAI,EACnC7snB,EAAIm8mB,IAAQ,EAAIjioB,EAAI+P,EAAKtO,KAAK9M,QAClCmxB,EAAEu4mB,YAAY,EAAGtunB,EAAK2F,KACtBoQ,EAAEu4mB,YAAY,EAAGtunB,EAAKkwoB,IAAM,GAC5Bn6nB,EAAEu4mB,YAAY,EAAGtunB,EAAK2jK,IACtB5tJ,EAAEu4mB,YAAY,EAAGtunB,EAAKtO,KAAK9M,QACxBijC,EAAK+6mB,MAAQ,GAAG7snB,EAAEu4mB,YAAY,EAAG,GACpCv4mB,EAAEu4mB,YAAYr+nB,EAAI+P,EAAKtO,KAAK9M,OAAQob,EAAKtO,KAAMm2B,EAAK+6mB,KAAO,EAAI,OAAS,WACxE,IAAIxqe,EAAMriJ,EAAEttB,MAAM,EAAGstB,EAAExwB,GACV,OAAb6yK,EAAI7yK,EAAIwwB,EAAExwB,EAAU6yK,CACrB,CAmMA,SAAS+3e,IAAaxrpB,EAAciO,EAAci1B,EAAM9R,GACvD,IAAI2+J,EAAM7sJ,GAAsB,GAAbA,EAAK+6mB,KACpB7snB,IAAGA,EAAIm8mB,IAAQx9c,EAAM,EAAI9hL,EAAEhO,OAAW,EAAI,EAAIgO,EAAEhO,SACpDmxB,EAAEu4mB,YAAY,EAAG3poB,GACjBoxB,EAAEu4mB,YAAa55c,EAAK,EAAI,EAAI9hL,EAAEhO,QAC1B8vL,GAAI3+J,EAAEu4mB,YAAY,EAAG,GACzBv4mB,EAAEu4mB,aAAa55c,EAAK,EAAI,GAAK9hL,EAAEhO,OAAQgO,EAAI8hL,EAAK,OAAS,WACzD,IAAItc,EAAOriJ,EAAEnxB,OAASmxB,EAAExwB,EAAKwwB,EAAEttB,MAAM,EAAGstB,EAAExwB,GAAKwwB,EAE/C,OADY,MAATqiJ,EAAI7yK,IAAW6yK,EAAI7yK,EAAI6yK,EAAIxzK,QACvBwzK,CACR,CA0GA,SAASg4e,IAASpwoB,EAAMqwoB,EAAOxonB,EAAM9R,GACpC,IAAI2+J,EAAM7sJ,GAAsB,GAAbA,EAAK+6mB,KACpB7snB,IAAGA,EAAIm8mB,IAAQx9c,EAAK,GAAK,KAC7B3+J,EAAEu4mB,YAAY,EAAG,GACdtunB,EAAKjX,OACPgtB,EAAEu4mB,YAAY,EAAItunB,EAAK8joB,UAAU,GACjC/tnB,EAAEu4mB,YAAY,EAAG,SAEjBv4mB,EAAEu4mB,YAAY,EAAItunB,EAAK8joB,UAAU,GACjC/tnB,EAAEu4mB,YAAY,EAAI+hB,GAAO,IAE1B,IAAIz9oB,EAAI,EAMR,OALGoN,EAAK8joB,SAAW,GAAKpvd,IAAI9hL,GAAK,MACjCmjB,EAAEu4mB,YAAY,EAAG17nB,GACjBmjB,EAAEu4mB,YAAY,EAAG,GACb55c,GAAI3+J,EAAEu4mB,YAAY,EAAG,GACzBv4mB,EAAEu4mB,YAAY,EAAG,GACVv4mB,CACR,CAoIA,SAASu6nB,IAAkB7hB,EAAM7poB,EAAQijC,GACxC,GAAGA,EAAK+6mB,KAAO,EAAG,OAOnB,SAAgCnU,EAAM7poB,EAAQijC,GACtB,GAApB4mmB,EAAKA,EAAKlpoB,EAAI,IAAYkpoB,EAAKA,EAAKlpoB,KACvC,IAAIwwB,EAAI64nB,IAA2BngB,EAAM7poB,EAAQijC,GACjD,OAA0B,GAAnB9R,EAAEhQ,WAAW,GAAagQ,EAAEttB,MAAM,GAAKstB,CAC/C,CAX0Bw6nB,CAAuB9hB,EAAM7poB,EAAQijC,GAE9D,IADA,IAAI9R,EAAI,GAAIvnB,EAASigoB,EAAKlpoB,EAAIX,EAAQsjB,EAAMumnB,EAAKE,WAAW9mmB,EAAK+6mB,KAAO,EAAI,EAAI,GAChE,IAAV16nB,KAAa6N,EAAEzwB,KAAKqqpB,IAAUlhB,EAAM5mmB,EAAK+6mB,KAAmB/6mB,IAElE,GAAG4mmB,EAAKlpoB,GAAKiJ,EAAQ,MAAM,IAAIrH,MAAM,oBAAsBsnoB,EAAKlpoB,EAAI,OAASiJ,GAC7E,OAAOunB,CACR,CAyKA,SAASy6nB,IAAY3xkB,GACpB,IAAInrE,EAAIw+nB,IAAQ,IACZl3lB,EAAMwomB,IAAY3kkB,EAAG,IACzBnrE,EAAE46nB,YAAY,EAAGtzlB,EAAIj4C,GAAI2Q,EAAE46nB,YAAY,EAAGtzlB,EAAIj4C,GAC9C2Q,EAAE46nB,YAAY,EAAGtzlB,EAAIn9B,GAAInK,EAAE46nB,YAAY,EAAGtzlB,EAAIn9B,GAE9C,IADA,IAAI2znB,EAAQ,kDAAkD50nB,MAAM,KAC5DjY,EAAI,EAAGA,EAAI,KAAMA,EAAG+O,EAAE46nB,YAAY,EAAGnknB,SAASqnnB,EAAM7soB,GAAI,KAChE,OAAOkioB,IAAQ,CAACnznB,EAAG47oB,IAAgBzwkB,EAAG,KACvC,CAWA,SAAS4xkB,IAAmB5xkB,GAC3B,IAAIwujB,EAAKxujB,EAAG,GAAG67N,QACXhnS,EAAIw+nB,IAAQ,GAAK,GAAK7E,EAAGzooB,OAAS,IACtC8O,EAAE46nB,YAAY,EAAG,MACjB,IAAItzlB,EAAMwomB,IAAY3kkB,EAAG,IACzBnrE,EAAE46nB,YAAY,EAAGtzlB,EAAIj4C,GAAI2Q,EAAE46nB,YAAY,EAAGtzlB,EAAIj4C,GAC9C2Q,EAAE46nB,YAAY,EAAGtzlB,EAAIn9B,GAAInK,EAAE46nB,YAAY,EAAGtzlB,EAAIn9B,GAC9C,IAAI,IAAIlZ,EAAI,EAAGA,EAAI0ooB,EAAGzooB,SAAUD,EAAG+O,EAAE46nB,YAAY,EAAGjB,EAAGtnnB,WAAWphB,IAElE,OADA+O,EAAE46nB,YAAY,EAAG,GACV56nB,CACR,CA2CA,SAASg9oB,IAAcjiB,EAAM7poB,EAAQijC,GACpC,IAAIA,EAAKgB,WAAY,OAAOm5mB,IAAUvT,EAAM7poB,GAC5C,IAAIqL,EAAI43B,GAAQA,EAAK+6mB,MAAQ,GAAK,EAAI,EAClC+N,EAAWliB,EAAKE,WAAW1+nB,GAC3B2gpB,EAAUniB,EAAKE,WAAW1+nB,GAC1B4gpB,EAAQpiB,EAAKE,WAAW1+nB,GACxBy/oB,EAAOjhB,EAAKE,WAAW1+nB,GACvBsa,EAAQkknB,EAAKE,WAAW,GACpB,GAAL1+nB,IAAQw+nB,EAAKlpoB,GAAK,GACrB,IAAIwwB,EAAK,CAACqB,EAAEu5nB,EAAU1/nB,EAAE2/nB,EAAS3gpB,EAAE4gpB,EAAOnB,KAAKA,EAAMnloB,MAAMA,GAE3D,OADGsd,EAAK+6mB,MAAQ,IAAM/6mB,EAAK+6mB,QAAM7snB,EAAEwyJ,MAASh+J,GAAS,EAAK,GACnDwL,CACR,CA8HA,IACI+6nB,IAAoB,WACxB,IAAIC,EAAmB,CAEf,EAAe,IAAsB,EAAe,IACpD,EAAc,KAAuB,EAAa,IAClD,IAAe,IAAsB,IAAe,IACpD,IAAe,IAAsB,IAAe,IACpD,IAAe,IAAsB,IAAe,IACpD,IAAe,IAAsB,IAAe,IACpD,IAAe,IAAsB,IAAe,IACpD,IAAe,IAAsB,IAAe,IACpD,IAAe,IAAsB,IAAc,KACnD,IAAc,KAAuB,IAAa,MAClD,IAAa,MAAwB,IAAa,MAClD,IAAc,KAAuB,IAAc,KACnD,IAAc,KAAuB,IAAc,KAGnD,EAAa,MAAwB,EAAe,IACpD,EAAe,IAAsB,GAAe,IACpD,GAAe,IAAsB,GAAe,IACpD,GAAe,IAAsB,GAAe,IACpD,GAAe,IAAsB,GAAe,IACpD,GAAe,IAAsB,GAAe,IACpD,GAAe,IAAsB,GAAe,IACpD,GAAe,IAAsB,GAAe,IACpD,GAAe,IAAsB,GAAe,IACpD,GAAe,IAAsB,GAAe,IACpD,GAAe,IAAsB,GAAe,IACpD,GAAe,IAAsB,GAAe,IACpD,GAAe,IAAsB,GAAe,IACpD,GAAe,IAAsB,GAAe,IACpD,GAAe,IAAsB,GAAe,IACpD,GAAe,IAAsB,GAAe,IACpD,GAAe,IAAsB,GAAe,IACpD,GAAc,KAAuB,GAAc,KACnD,GAAc,KAAuB,IAAe,IACpD,IAAe,IAAsB,IAAe,IACpD,IAAe,IAAsB,IAAc,KAEnD,IAAa,OAEjBC,EAAkBxU,IAAM,CACpB,EAAe,IAAsB,EAAe,IACpD,EAAc,KAAuB,EAAa,IAClD,IAAe,IAAsB,IAAe,IACpD,IAAe,IAAsB,IAAe,IACpD,IAAe,IAAsB,IAAe,IACpD,IAAe,IAAsB,IAAe,IACpD,IAAe,IAAsB,IAAe,IACpD,IAAe,IAAsB,IAAe,IACpD,IAAe,IAAsB,IAAc,KACnD,IAAc,KAAuB,IAAa,MAClD,IAAa,MAAwB,IAAa,MAClD,IAAc,KAAuB,IAAc,KACnD,IAAc,KAAuB,IAAc,KACnD,EAAa,QAsKrB,SAASyU,EAAa3ue,EAAKz6I,GAC1B,IAAI9R,EAAI8R,GAAQ,CAAC,EACb9R,EAAEq2mB,SAAQr2mB,EAAEq2mB,OAAS,YACzB,IAAI9pe,EAAK2if,IAtKV,SAAoB3ie,EAAKz6I,GACxB,IAAIuwI,EAAc,GACd/tK,EAAem8nB,IAAY,GAC/B,OAAO3+lB,EAAKp9B,MACX,IAAK,SAAUJ,EAAIq8nB,IAAIP,IAAc7jd,IAAO,MAC5C,IAAK,SAAUj4K,EAAIq8nB,IAAIpkd,GAAM,MAC7B,IAAK,SACL,IAAK,QAASj4K,EAAIi4K,EAEnBosd,IAAUrkoB,EAAG,GAGb,IAAIotL,EAAKptL,EAAEskoB,WAAW,GAClBxzhB,KAAe,IAALs8E,GACVy5d,GAAM,EAAOC,GAAK,EACtB,OAAO15d,GACN,KAAK,EACL,KAAK,EAKL,KAAK,IACL,KAAK,IAGL,KAAK,IAAM,MARX,KAAK,GACL,KAAK,GAAMy5d,GAAM,EAAM/1iB,GAAO,EAAM,MAKpC,KAAK,IAAMg2iB,GAAK,EAAM,MAItB,QAAS,MAAM,IAAIhqpB,MAAM,4BAA8BswL,EAAGhmL,SAAS,KAGpE,IAAI2/oB,EAAO,EAAGC,EAAO,IACZ,GAAN55d,IAAY25d,EAAO/mpB,EAAEskoB,WAAW,IACnCtkoB,EAAE9E,GAAK,EACE,GAANkyL,IAAY25d,EAAO/mpB,EAAEskoB,WAAW,IAChCyiB,EAAO,UAASA,EAAO,KAEjB,GAAN35d,IAAY45d,EAAOhnpB,EAAEskoB,WAAW,IACnC,IAAI2iB,EAAOjnpB,EAAEskoB,WAAW,GAEL4iB,EAAa1pnB,EAAK2pnB,UAAY,KACxC,GAAN/5d,IACFptL,EAAE9E,GAAG,GACO8E,EAAEskoB,WAAW,GAIX,IAAXtkoB,EAAEA,EAAE9E,KAAUgspB,EAAaR,EAAiB1mpB,EAAEA,EAAE9E,KACnD8E,EAAE9E,GAAG,EAEL8E,EAAE9E,GAAG,GAEH4rpB,IAAI9mpB,EAAE9E,GAAK,IAMd,IAHA,IAAIgkM,EAA6B,GAAI7zJ,EAAsB,CAAC,EACxD+7mB,EAAOxspB,KAAKyhB,IAAIrc,EAAEzF,OAAe,GAAN6yL,EAAa,IAAS45d,EAAO,IAAMH,EAAM,IAAM,IAC1E96f,EAAK+6f,EAAK,GAAK,GACb9mpB,EAAE9E,EAAIkspB,GAAkB,IAAVpnpB,EAAEA,EAAE9E,IAWvB,QAVAmwC,EAAS,CAAC,GACJhkC,KAAOm0nB,IAAS1gR,MAAMn+O,OAAOuqhB,EAAYlnpB,EAAE5B,MAAM4B,EAAE9E,EAAG8E,EAAE9E,EAAE6wJ,IAAKj/I,QAAQ,mBAAmB,IAChG9M,EAAE9E,GAAK6wJ,EACP1gH,EAAMjrC,KAAOC,OAAOk0C,aAAav0C,EAAEskoB,WAAW,IACrC,GAANl3c,GAAe05d,IAAIz7mB,EAAM6oB,OAASl0D,EAAEskoB,WAAW,IAClDj5lB,EAAMxtB,IAAM7d,EAAEskoB,WAAW,GAChB,GAANl3c,IAAY/hJ,EAAM6oB,OAASl0D,EAAEskoB,WAAW,IAC3Cj5lB,EAAM60lB,IAAMlgoB,EAAEskoB,WAAW,GACtBj5lB,EAAMhkC,KAAK9M,QAAQ2kM,EAAOjkM,KAAKowC,GACzB,GAAN+hJ,IAAYptL,EAAE9E,GAAK4rpB,EAAK,GAAK,IACzBz7mB,EAAMjrC,MACZ,IAAK,IACCympB,GAAoB,GAAbx7mB,EAAMxtB,MAAa2f,EAAKiknB,KAAKjtnB,QAAQyxB,IAAI,YAAc5a,EAAMhkC,KAAO,IAAMgkC,EAAMjrC,MAC5F,MACD,IAAK,IACL,IAAK,IACDo9B,EAAKiknB,KAAKjtnB,QAAQyxB,IAAI,YAAc5a,EAAMhkC,KAAO,IAAMgkC,EAAMjrC,MAChE,MACD,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACJ,MACD,QAAS,MAAM,IAAItD,MAAM,uBAAyBuuC,EAAMjrC,MAK1D,GADc,KAAXJ,EAAEA,EAAE9E,KAAa8E,EAAE9E,EAAI8rpB,EAAK,GACR,KAApBhnpB,EAAEskoB,WAAW,GAAa,MAAM,IAAIxnoB,MAAM,4BAA8BkD,EAAE9E,EAAI,IAAM8E,EAAEA,EAAE9E,IAC3F8E,EAAE9E,EAAI8rpB,EAGN,IAAIxmoB,EAAI,EAAGhV,EAAI,EAEf,IADAuiK,EAAI,GAAK,GACLviK,EAAI,EAAGA,GAAK0zL,EAAO3kM,SAAUiR,EAAGuiK,EAAI,GAAGviK,GAAK0zL,EAAO1zL,GAAGnE,KAC1D,KAAM0/oB,KAAS,GACd,GAAc,KAAX/mpB,EAAEA,EAAE9E,GAOP,MAFE8E,EAAE9E,EACJ6yK,IAAMvtJ,GAAK,GAAIhV,EAAI,EACfA,EAAI,EAAGA,GAAK0zL,EAAO3kM,SAAUiR,EAAG,CACnC,IAAIi+C,EAAKzpD,EAAE5B,MAAM4B,EAAE9E,EAAG8E,EAAE9E,EAAEgkM,EAAO1zL,GAAGqS,KAAM7d,EAAE9E,GAAGgkM,EAAO1zL,GAAGqS,IACzDwmnB,IAAU56kB,EAAI,GACd,IAAI18B,EAAIyumB,IAAS1gR,MAAMn+O,OAAOuqhB,EAAYz9lB,GAC1C,OAAOy1I,EAAO1zL,GAAGpL,MAChB,IAAK,IAED2sB,EAAE5Q,OAAO5hB,SAAQwzK,EAAIvtJ,GAAGhV,GAAKuhB,EAAEjgB,QAAQ,OAAO,KACjD,MACD,IAAK,IACY,IAAbigB,EAAExyB,OAAcwzK,EAAIvtJ,GAAGhV,GAAK,IAAI+jB,MAAMxC,EAAE3uB,MAAM,EAAE,IAAK2uB,EAAE3uB,MAAM,EAAE,GAAG,GAAI2uB,EAAE3uB,MAAM,EAAE,IAC9E2vK,EAAIvtJ,GAAGhV,GAAKuhB,EACjB,MACD,IAAK,IAAKghJ,EAAIvtJ,GAAGhV,GAAKmwB,WAAW5O,EAAE5Q,QAAS,MAC5C,IAAK,IAAK,IAAK,IAAK4xJ,EAAIvtJ,GAAGhV,GAAKs7oB,EAA8B,WAAzBr9lB,EAAG66kB,YAAY,EAAG,KAAoB76kB,EAAG66kB,WAAW,EAAG,KAAM,MAClG,IAAK,IAAK,OAAOv3mB,EAAE5Q,OAAOmQ,eACzB,IAAK,IAAK,IAAK,IAAKyhJ,EAAIvtJ,GAAGhV,IAAK,EAAM,MACtC,IAAK,IAAK,IAAK,IAAKuiK,EAAIvtJ,GAAGhV,IAAK,EAAO,MACvC,IAAK,GAAI,IAAK,IAAK,MACnB,QAAS,MAAM,IAAI1O,MAAM,uBAAyBiwB,EAAI,KACpD,MACH,IAAK,IACJ,IAAI+jF,EAAM,MAAM,IAAIh0G,MAAM,gCAAkCswL,EAAGhmL,SAAS,KACxE2mK,EAAIvtJ,GAAGhV,GAAK,YAAcs7oB,EAAKhnoB,SAASiN,EAAE5Q,OAAQ,IAAKstC,EAAG66kB,WAAW,IACrE,MACD,IAAK,KACJv3mB,EAAIA,EAAEjgB,QAAQ,UAAU,IAAIqP,SAEf,KAAL4Q,IAAUghJ,EAAIvtJ,GAAGhV,IAAMuhB,GAAK,GAAG,MACxC,IAAK,IAEJghJ,EAAIvtJ,GAAGhV,GAAK,IAAI+jB,KAAKk6B,EAAG66kB,YAAY,EAAG,KAAO,aAC9C,MACD,IAAK,IAAKv2d,EAAIvtJ,GAAGhV,GAAK,IAAI+jB,KAAqC,OAA/Bk6B,EAAG66kB,WAAW,GAAK,SAAwB76kB,EAAG66kB,WAAW,IAAK,MAC9F,IAAK,IAAKv2d,EAAIvtJ,GAAGhV,GAAKi+C,EAAG66kB,WAAW,EAAE,KAAK,IAAO76kB,EAAG66kB,WAAW,EAAG,KAAK,IAAK1poB,KAAKylH,IAAI,EAAE,IAAK,MAC7F,IAAK,IAAK0tD,EAAIvtJ,GAAGhV,IAAMi+C,EAAG66kB,YAAY,EAAG,KAAM,MAC/C,IAAK,IAAK,GAAGuiB,GAAwB,GAAjB3nd,EAAO1zL,GAAGqS,IAAU,CAAEkwJ,EAAIvtJ,GAAGhV,GAAKi+C,EAAG66kB,WAAW,EAAE,KAAM,KAAO,CAEnF,IAAK,IAAK,IAAK,IAAK76kB,EAAGvuD,GAAKgkM,EAAO1zL,GAAGqS,IAAK,MAC3C,IAAK,IACJ,GAAsB,eAAnBqhL,EAAO1zL,GAAGnE,KAAuB,MAErC,QAAS,MAAM,IAAIvK,MAAM,6BAA+BoiM,EAAO1zL,GAAGpL,MAEpE,MAjDCJ,EAAE9E,GAAG+rpB,EAmDP,GAAS,GAAN75d,GAAeptL,EAAE9E,EAAI8E,EAAEzF,QAAsB,IAAZyF,EAAEA,EAAE9E,KAAc,MAAM,IAAI4B,MAAM,2BAA6BkD,EAAE9E,EAAE,GAAK,OAAS8E,EAAEzF,OAAS,IAAMyF,EAAEA,EAAE9E,EAAE,GAAGkM,SAAS,KAGxJ,OAFGo2B,GAAQA,EAAK6pnB,YAAWt5e,EAAMA,EAAI3vK,MAAM,EAAGo/B,EAAK6pnB,YACnD7pnB,EAAKipnB,IAAMvnd,EACJnxB,CACR,CAKuBu5e,CAAWrve,EAAKvsJ,GAAIA,GAM1C,OALAusI,EAAG,SAAWvsI,EAAE+6nB,IAAIhgpB,KAAI,SAAS4kC,GAAS,MAAO,CAChDk8mB,IAAKl8mB,EAAMxtB,IACX4ooB,IAAKp7mB,EACJ,WACK3f,EAAE+6nB,IACFxuf,CACR,CAQA,IAAIuvf,EAAQ,CAAE,EAAK,EAAG,EAAK,IAAK,EAAK,EAAG,EAAK,EAAG,IAAK,EAAG,GAAI,GAsH3D,MAAO,CACNC,YA7HF,SAAyBxve,EAAKz6I,GAC7B,IAAM,OAAOo8mB,IAAkBgN,EAAa3ue,EAAKz6I,GAAOA,EAAO,CAC/D,MAAM5W,KAAK,GAAG4W,GAAQA,EAAKiknB,IAAK,MAAM76nB,GAAG,CACzC,MAAQ,CAACkznB,WAAW,GAAGC,OAAO,CAAC,EAChC,EA0HE2N,SAAUd,EACVe,WAxHF,SAAsB1vf,EAAkBz6H,GACvC,IAAI9R,EAAI8R,GAAQ,CAAC,EAEjB,IADI9R,EAAEy7nB,UAAY,GAAG9rB,KAAQ3vmB,EAAEy7nB,UAClB,UAAVz7nB,EAAEtrB,KAAkB,MAAM,IAAItD,MAAM,iCACvC,IAAIq7D,EAAKy/kB,MACLgQ,EAAcC,IAAc5vf,EAAI,CAAChxH,OAAO,EAAGxC,KAAI,EAAMi2mB,WAAU,IAC/Dv8R,EAAUypS,EAAI,GAAIjyoB,EAAOiyoB,EAAIxppB,MAAM,GAAIkre,EAAOrxU,EAAG,UAAY,GAC7D39J,EAAI,EAAG2c,EAAI,EAAG6woB,EAAO,EAAGb,EAAO,EACnC,IAAI3spB,EAAI,EAAGA,EAAI6jX,EAAQ5jX,SAAUD,EAChC,KAAKgve,EAAKhve,IAAI,CAAC,GAAGmspB,KAAK,CAAC,GAAGp/oB,KAAQ82W,EAAQ7jX,GAAKgve,EAAKhve,GAAGmspB,IAAIp/oB,OAAQygpB,OACpE,GAAiB,MAAd3pS,EAAQ7jX,GAAX,CAGA,KAFEwtpB,EACuB,kBAAf3pS,EAAQ7jX,KAAiB6jX,EAAQ7jX,GAAK6jX,EAAQ7jX,GAAG8M,SAAS,KAC3C,kBAAf+2W,EAAQ7jX,GAAiB,MAAM,IAAIwC,MAAM,2BAA6BqhX,EAAQ7jX,GAAK,YAAe6jX,EAAQ7jX,GAAM,KAC1H,GAAG6jX,EAAQrgX,QAAQqgX,EAAQ7jX,MAAQA,EAAG,IAAI2c,EAAE,EAAGA,EAAE,OAAOA,EACvD,IAA6C,GAA1CknW,EAAQrgX,QAAQqgX,EAAQ7jX,GAAK,IAAM2c,GAAU,CAAEknW,EAAQ7jX,IAAM,IAAM2c,EAAG,KAAO,CALlD,CAOhC,IAAIwV,EAAQ6snB,IAAkBrhf,EAAG,SAC7B8vf,EAA6B,GAC7BC,EAA8B,GAC9BC,EAAgC,GACpC,IAAI3tpB,EAAI,EAAGA,GAAKmyB,EAAM7F,EAAEpT,EAAIiZ,EAAMM,EAAEvZ,IAAKlZ,EAAG,CAC3C,IAAI4tpB,EAAQ,GAAIC,EAAS,GAAIzrB,EAAS,EAClCn4lB,EAAqB,GACzB,IAAIttB,EAAE,EAAGA,EAAItB,EAAKpb,SAAU0c,EACV,MAAdtB,EAAKsB,GAAG3c,IAAYiqC,EAAItpC,KAAK0a,EAAKsB,GAAG3c,IAEzC,GAAiB,GAAdiqC,EAAIhqC,QAA6B,MAAd4jX,EAAQ7jX,GAA9B,CACA,IAAI2c,EAAI,EAAGA,EAAIstB,EAAIhqC,SAAU0c,EAAG,CAC/B,cAAcstB,EAAIttB,IAEjB,IAAK,SAAUkxoB,EAAS,IAAK,MAC7B,IAAK,SAGL,QAASA,EAAS,UAFlB,IAAK,UAAWA,EAAS,IAAK,MAC9B,IAAK,SAAUA,EAAS5jnB,EAAIttB,aAAcsY,KAAO,IAAM,IAGxDmtmB,EAAS9hoB,KAAKwhB,IAAIsgnB,EAAQr8nB,OAAOkkC,EAAIttB,IAAI1c,QACzC2tpB,EAAQA,GAASA,GAASC,EAAS,IAAMA,CAE1C,CACGzrB,EAAS,MAAKA,EAAS,KAGb,MAFbyrB,IAAW7+K,EAAKhve,IAAI,CAAC,GAAGmspB,KAAK,CAAC,GAAGrmpB,OAG7Bkpe,EAAKhve,GAAGmspB,IAAI5ooB,IAAM6+mB,IAAQA,EAASpzJ,EAAKhve,GAAGmspB,IAAI5ooB,KAEvC,KAATqqoB,GAA0B,KAAVC,IAClBD,EAAQ,IACRD,EAAY3tpB,GAAKgve,EAAKhve,GAAGmspB,IAAIvmB,IAC7BxD,EAASpzJ,EAAKhve,GAAGmspB,IAAI5ooB,KAEtBmqoB,EAAU1tpB,GAAc,KAAT4tpB,GAA0B,KAAVC,EAAgBzrB,EAAU8qB,EAAMU,IAAU,EACzEjB,GAAQe,EAAU1tpB,GAClBytpB,EAASztpB,GAAK4tpB,CA3B2D,MAA7BH,EAASztpB,GAAK,GA4B3D,CAEA,IAAIuL,EAAIsyD,EAAG7qD,KAAK,IAKhB,IAJAzH,EAAEo+nB,YAAY,EAAG,WACjBp+nB,EAAEo+nB,YAAY,EAAGtunB,EAAKpb,QACtBsL,EAAEo+nB,YAAY,EAAG,IAAM,GAAK6jB,GAC5BjipB,EAAEo+nB,YAAY,EAAGgjB,GACb3spB,EAAE,EAAGA,EAAI,IAAKA,EAAGuL,EAAEo+nB,YAAY,EAAG,GAGtC,IAFAp+nB,EAAEo+nB,YAAY,IAAmB0iB,EAA6B3rB,MAAwB,IAAO,GAEzF1goB,EAAI,EAAG2c,EAAI,EAAG3c,EAAI6jX,EAAQ5jX,SAAUD,EACvC,GAAiB,MAAd6jX,EAAQ7jX,GAAX,CACA,IAAIy8D,EAAKoB,EAAG7qD,KAAK,IACbuzB,GAAMs9U,EAAQ7jX,GAAG8D,OAAO,IAAM,0BAAgDA,MAAM,EAAG,IAC3F24D,EAAGktkB,YAAY,EAAGpjmB,EAAI,QACtBk2B,EAAGktkB,YAAY,EAAkB,KAAf8jB,EAASztpB,GAAY,IAAMytpB,EAASztpB,GAAI,QAC1Dy8D,EAAGktkB,YAAY,EAAGhtnB,GAClB8/C,EAAGktkB,YAAY,EAAG+jB,EAAU1tpB,IAAMktpB,EAAMO,EAASztpB,KAAO,GACxDy8D,EAAGktkB,YAAY,EAAGgkB,EAAY3tpB,IAAM,GACpCy8D,EAAGktkB,YAAY,EAAG,GAClBltkB,EAAGktkB,YAAY,EAAG,GAClBltkB,EAAGktkB,YAAY,EAAG,GAClBltkB,EAAGktkB,YAAY,EAAG,GAClBltkB,EAAGktkB,YAAY,EAAG,GAClBhtnB,GAAM+woB,EAAU1tpB,IAAMktpB,EAAMO,EAASztpB,KAAO,CAbb,CAgBhC,IAAIkjD,EAAK2a,EAAG7qD,KAAK,KAEjB,IADAkwC,EAAGymlB,YAAY,EAAG,IACd3poB,EAAE,EAAGA,EAAI,KAAKA,EAAGkjD,EAAGymlB,YAAY,EAAG,GACvC,IAAI3poB,EAAE,EAAGA,EAAIqb,EAAKpb,SAAUD,EAAG,CAC9B,IAAI8tpB,EAAOjwlB,EAAG7qD,KAAK25oB,GAEnB,IADAmB,EAAKnkB,YAAY,EAAG,GAChBhtnB,EAAE,EAAGA,EAAEknW,EAAQ5jX,SAAU0c,EAC5B,GAAiB,MAAdknW,EAAQlnW,GACX,OAAO8woB,EAAS9woB,IACf,IAAK,IAAKmxoB,EAAKnkB,YAAY,EAAiB,MAAdtunB,EAAKrb,GAAG2c,GAAa,GAAOtB,EAAKrb,GAAG2c,GAAK,GAAO,IAAO,MACrF,IAAK,IAAKmxoB,EAAKnkB,YAAY,EAAGtunB,EAAKrb,GAAG2c,IAAI,EAAG,KAAM,MACnD,IAAK,IACJ,IAAIo+L,EAAK,IAET,IADwB,iBAAd1/L,EAAKrb,GAAG2c,KAAgBo+L,EAAK1/L,EAAKrb,GAAG2c,GAAGk6J,QAAQ82e,EAAYhxoB,IAAI,IACtE6woB,EAAK,EAAGA,EAAOE,EAAU/woB,GAAGo+L,EAAG96M,SAAUutpB,EAAMM,EAAKnkB,YAAY,EAAG,IACvEmkB,EAAKnkB,YAAY,EAAG5ub,EAAI,QACxB,MACD,IAAK,IACA1/L,EAAKrb,GAAG2c,IAEXmxoB,EAAKnkB,YAAY,GAAI,OAAOtunB,EAAKrb,GAAG2c,GAAG0Y,eAAevxB,OAAO,GAAI,QACjEgqpB,EAAKnkB,YAAY,GAAI,MAAMtunB,EAAKrb,GAAG2c,GAAG4Y,WAAW,IAAIzxB,OAAO,GAAI,QAChEgqpB,EAAKnkB,YAAY,GAAI,KAAKtunB,EAAKrb,GAAG2c,GAAG8Y,WAAW3xB,OAAO,GAAI,SAJ5CgqpB,EAAKnkB,YAAY,EAAG,WAAY,QAK9C,MACH,IAAK,IACJ,IAAIthf,EAAKtiJ,OAAqB,MAAdsV,EAAKrb,GAAG2c,GAAatB,EAAKrb,GAAG2c,GAAK,IAAI7Y,MAAM,EAAG4ppB,EAAU/woB,IAEzE,IADAmxoB,EAAKnkB,YAAY,EAAGthf,EAAI,QACpBmlgB,EAAK,EAAGA,EAAOE,EAAU/woB,GAAG0rI,EAAGpoJ,SAAUutpB,EAAMM,EAAKnkB,YAAY,EAAG,IAI3E,CAEA,OADA9rkB,EAAG7qD,KAAK,GAAG22nB,YAAY,EAAG,IACnB9rkB,EAAGj8C,KACX,EAMA,CA3WwB,GA6WpBmsoB,IAAqB,WAExB,IAAIC,EAAgB,CACnBC,GAAG,OAAKhxiB,GAAG,OAAKspF,GAAG,OAAKd,GAAG,IAAKyod,GAAG,OAAKC,GAAG,IAC3CC,GAAG,OAAKC,GAAG,OAAKC,GAAG,OAAaC,GAAG,OACnCtwiB,GAAG,OAAKuwiB,GAAG,OAAKC,GAAG,OAAaC,GAAG,OACnCC,GAAG,OAAKC,GAAG,OAAKC,GAAG,OAAKC,GAAG,IAAKC,GAAG,OACnCC,GAAG,OAAKC,GAAG,OAAKC,GAAG,OAAaC,GAAG,OACnC1vmB,GAAG,OAAKC,GAAG,OAAKC,GAAG,OAAKC,GAAG,IAAKI,GAAG,OAAKE,GAAG,IAC3C8Y,GAAG,OAAKE,GAAG,OAAKC,GAAG,OAAaK,GAAG,OACnCiS,GAAG,OAAKC,GAAG,OAAKoB,GAAG,OAAac,GAAG,OACnCwhlB,GAAG,OAAKC,GAAG,OAAKC,GAAG,OAAK/zb,GAAG,IAAKg0b,GAAG,OACnCC,GAAG,OAAKC,GAAG,OAAKC,GAAG,OAAaC,GAAG,OACnCC,GAAG,OAAKximB,GAAG,OAAK5W,EAAE,OAAMviB,EAAE,SAAMjb,EAAE,OAAM2D,EAAE,SAC1CkzoB,GAAG,IAAK91c,GAAG,IAAK+1c,GAAG,IACnBx9oB,EAAE,IAAM4G,EAAE,IAAMgN,EAAE,IAAM,KAAK,IACtB,EAAS,IAAe,EAAS,IAAa,EAAS,IACvD,EAAS,IAAe,EAAS,IAAa,EAAS,IACvD,EAAS,IAAQuO,EAAE,IAAM/0B,EAAE,IAAMuZ,EAAE,IAAMjZ,EAAE,IAAMY,EAAE,IAAM6xB,EAAE,IAAMoB,EAAE,IAC1E,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,KAAK,IAC3D,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,IAAK,IAAI,KAEvDk8nB,EAAkB,IAAItuoB,OAAO,SAAa1c,IAAKippB,GAAcjqpB,KAAK,KAAKyO,QAAQ,SAAU,SAASA,QAAQ,YAAY,QAAU,QAAS,MACzIw9oB,EAAe,SAAS//nB,EAAGk1mB,GAAK,IAAI/zmB,EAAI48nB,EAAa7oB,GAAK,MAAmB,iBAAL/zmB,EAAgBgwmB,IAAShwmB,GAAKA,CAAG,EACzG6+nB,EAAmB,SAAS/qB,EAAIC,EAAIC,GAAM,IAAI8qB,EAAU/qB,EAAG/jnB,WAAW,GAAK,IAAO,EAAMgknB,EAAGhknB,WAAW,GAAK,GAAO,OAAgB,IAAT8uoB,EAAchrB,EAAK9D,IAAS8uB,EAAQ,EAYjK,SAASC,EAAgBr+mB,EAAgB5O,GACxC,IAIcvmB,EAJVqvS,EAAUl6Q,EAAI75B,MAAM,WAAYiO,GAAK,EAAGhV,GAAK,EAAG85D,EAAK,EAAGgH,EAAK,EAAGm5E,EAAc,GAC9Ep4H,EAA4B,GAC5Bq9nB,EAAmC,KACnCC,EAAM,CAAC,EAAGC,EAA6B,GAAIC,EAA6B,GAAI31F,EAAuB,GACnG41F,EAAO,EAEX,KADIttnB,EAAK2pnB,UAAY,GAAG9rB,KAAQ79lB,EAAK2pnB,UAC9B7hlB,IAAOghP,EAAQ/rT,SAAU+qE,EAAI,CACnCwllB,EAAO,EACP,IAEkB/opB,EAFdgppB,EAAKzkW,EAAQhhP,GAAInpD,OAAOrP,QAAQ,kCAAmCy9oB,GAAkBz9oB,QAAQu9oB,EAAiBC,GAC9G9pL,EAAOuqL,EAAKj+oB,QAAQ,MAAO,MAAUyF,MAAM,KAAK9L,KAAI,SAASsd,GAAK,OAAOA,EAAEjX,QAAQ,UAAW,IAAM,IACpGk+oB,EAAGxqL,EAAO,GACd,GAAGuqL,EAAKxwpB,OAAS,EAAG,OAAOywpB,GAC3B,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IAAK,MACV,IAAK,IACsB,KAAvBxqL,EAAO,GAAG7kd,OAAO,IACnB0R,EAAQpyB,KAAK8vpB,EAAK3spB,MAAM,GAAG0O,QAAQ,MAAO,MAC3C,MACD,IAAK,IACL,IAAIm+oB,GAAW,EAAOC,GAAW,EAAOC,GAAW,EAAOC,GAAW,EAAOjR,GAAM,EAAGC,GAAM,EAC3F,IAAI9tkB,EAAG,EAAGA,EAAGk0Z,EAAOjme,SAAU+xE,EAAI,OAAOk0Z,EAAOl0Z,GAAI3wD,OAAO,IAC1D,IAAK,IA6BL,IAAK,IAAK,MA5BV,IAAK,IAAKnQ,EAAIsU,SAAS0gd,EAAOl0Z,GAAIluE,MAAM,IAAI,EAAG8spB,GAAW,EAAM,MAChE,IAAK,IAEJ,IADA1qoB,EAAIV,SAAS0gd,EAAOl0Z,GAAIluE,MAAM,IAAI,EAAO8spB,IAAU1/oB,EAAI,GACnDyL,EAAIwuI,EAAIlrJ,OAAQ0c,GAAKuJ,IAAKvJ,EAAGwuI,EAAIxuI,GAAK,GAC1C,MACD,IAAK,IAEiB,OADrBlV,EAAMy+d,EAAOl0Z,GAAIluE,MAAM,IAChBud,OAAO,GAAY5Z,EAAMA,EAAI3D,MAAM,EAAE2D,EAAIxH,OAAS,GACzC,SAARwH,EAAgBA,GAAM,EACd,UAARA,EAAiBA,GAAM,EACtBwa,MAAM22nB,IAASnxoB,IAGbwa,MAAM62nB,IAAUrxoB,GAAKguB,aAC/BhuB,EAAMw+hB,IAAUx+hB,KAHhBA,EAAMmxoB,IAASnxoB,GACS,OAArB2opB,GAA6BlpB,IAAYkpB,KAAmB3opB,EAAM2woB,IAAQ3woB,KAIvD,qBAAby5nB,KAA0C,iBAAPz5nB,GAAuC,WAAlBy7B,GAAM,CAAC,GAAGp9B,OAAsBo9B,GAAM,CAAC,GAAG2pnB,WAAUplpB,EAAMy5nB,IAAS1gR,MAAMn+O,OAAOn/F,EAAK2pnB,SAAUplpB,IACjKkppB,GAAW,EACX,MACD,IAAK,IACJG,GAAW,EACX,IAAIC,EAAUC,IAAS9qL,EAAOl0Z,GAAIluE,MAAM,GAAI,CAAC1F,EAAE8nB,EAAEhN,EAAEhI,IACnDi6I,EAAIjlI,GAAGhV,GAAK,CAACi6I,EAAIjlI,GAAGhV,GAAI6/oB,GACxB,MACD,IAAK,IACJF,GAAW,EACX1lgB,EAAIjlI,GAAGhV,GAAK,CAACi6I,EAAIjlI,GAAGhV,GAAI,OACxB,MAED,IAAK,IAAK2uoB,EAAKr6nB,SAAS0gd,EAAOl0Z,GAAIluE,MAAM,IAAI,EAAG,MAChD,IAAK,IAAKg8oB,EAAKt6nB,SAAS0gd,EAAOl0Z,GAAIluE,MAAM,IAAI,EAAG,MAChD,QAAS,GAAGo/B,GAAQA,EAAKiknB,IAAK,MAAM,IAAI3kpB,MAAM,mBAAqBiupB,GAOpE,GALGE,IACCxlgB,EAAIjlI,GAAGhV,IAA0B,GAApBi6I,EAAIjlI,GAAGhV,GAAGjR,OAAakrJ,EAAIjlI,GAAGhV,GAAG,GAAKzJ,EACjD0jJ,EAAIjlI,GAAGhV,GAAKzJ,EACjB2opB,EAAmB,MAEjBS,EAAU,CACZ,GAAGC,EAAU,MAAM,IAAItupB,MAAM,+CAC7B,IAAIyupB,EAAUpR,GAAM,GAAK10f,EAAI00f,GAAIC,GACjC,IAAImR,IAAYA,EAAQ,GAAI,MAAM,IAAIzupB,MAAM,wCAC5C2oJ,EAAIjlI,GAAGhV,GAAG,GAAKggpB,IAAkBD,EAAQ,GAAI,CAAC7ypB,EAAG8nB,EAAI25nB,EAAI3moB,EAAGhI,EAAI4uoB,GACjE,CACA,MACA,IAAK,IACL,IAAIqR,EAAS,EACb,IAAIn/kB,EAAG,EAAGA,EAAGk0Z,EAAOjme,SAAU+xE,EAAI,OAAOk0Z,EAAOl0Z,GAAI3wD,OAAO,IAC1D,IAAK,IAAKnQ,EAAIsU,SAAS0gd,EAAOl0Z,GAAIluE,MAAM,IAAI,IAAKqtpB,EAAQ,MACzD,IAAK,IAEJ,IADAjroB,EAAIV,SAAS0gd,EAAOl0Z,GAAIluE,MAAM,IAAI,EAC9B6Y,EAAIwuI,EAAIlrJ,OAAQ0c,GAAKuJ,IAAKvJ,EAAGwuI,EAAIxuI,GAAK,GAC1C,MACD,IAAK,IAAK6zoB,EAAOhroB,SAAS0gd,EAAOl0Z,GAAIluE,MAAM,IAAM,GAAI,MACrD,IAAK,IACL,IAAK,IAIL,IAAK,IACL,IAAK,IACL,IAAK,IAAK,MALV,IAAK,IACJsspB,EAAmBr9nB,EAAQvN,SAAS0gd,EAAOl0Z,GAAIluE,MAAM,KACrD,MAID,IAAK,IAEJ,IADA82jB,EAAK10F,EAAOl0Z,GAAIluE,MAAM,GAAGmU,MAAM,KAC3B0E,EAAI6I,SAASo1iB,EAAG,GAAI,IAAKj+iB,GAAK6I,SAASo1iB,EAAG,GAAI,MAAOj+iB,EACxD6zoB,EAAOhroB,SAASo1iB,EAAG,GAAI,IACvB21F,EAAQ5zoB,EAAE,GAAc,IAAT6zoB,EAAa,CAACzonB,QAAO,GAAO,CAACklnB,IAAIuD,GAAOY,IAAYb,EAAQ5zoB,EAAE,IAC5E,MACH,IAAK,IAEA4zoB,EADJr/oB,EAAIsU,SAAS0gd,EAAOl0Z,GAAIluE,MAAM,IAAI,KAClByspB,EAAQr/oB,GAAK,CAAC,GAC9B,MACD,IAAK,IAEAo/oB,EADJpqoB,EAAIV,SAAS0gd,EAAOl0Z,GAAIluE,MAAM,IAAI,KAClBwspB,EAAQpqoB,GAAK,CAAC,GAC3BsqoB,EAAO,GAAKF,EAAQpqoB,GAAGmroB,IAAMb,EAAMF,EAAQpqoB,GAAGoroB,IAAMC,IAAMf,IAC5C,IAATA,IAAYF,EAAQpqoB,GAAG6hB,QAAS,GACxC,MACD,QAAS,GAAG7E,GAAQA,EAAKiknB,IAAK,MAAM,IAAI3kpB,MAAM,mBAAqBiupB,GAEjEU,EAAS,IAAGf,EAAmB,MAAM,MACxC,QAAS,GAAGltnB,GAAQA,EAAKiknB,IAAK,MAAM,IAAI3kpB,MAAM,mBAAqBiupB,GAEpE,CAIA,OAHGH,EAAQrwpB,OAAS,IAAGowpB,EAAI,SAAWC,GACnCC,EAAQtwpB,OAAS,IAAGowpB,EAAI,SAAWE,GACnCrtnB,GAAQA,EAAK6pnB,YAAW5hgB,EAAMA,EAAIrnJ,MAAM,EAAGo/B,EAAK6pnB,YAC5C,CAAC5hgB,EAAKklgB,EACd,CAEA,SAASmB,EAAc9rpB,EAAew9B,GACrC,IAAIuunB,EA9HL,SAAqB/rpB,EAAew9B,GACnC,OAAOA,EAAKp9B,MACX,IAAK,SAAU,OAAOqqpB,EAAgB3uB,IAAc97nB,GAAIw9B,GACxD,IAAK,SAAU,OAAOitnB,EAAgBzqpB,EAAGw9B,GACzC,IAAK,SAAU,OAAOitnB,EAAgB1uB,KAAW33iB,OAAOvL,SAAS74E,GAAKA,EAAEoH,SAAS,UAAYm1nB,IAAIv8nB,GAAIw9B,GACrG,IAAK,QAAS,OAAOitnB,EAAgB1X,IAAO/yoB,GAAIw9B,GAEjD,MAAM,IAAI1gC,MAAM,qBAAuB0gC,EAAKp9B,KAC7C,CAsHc4rpB,CAAYhspB,EAAGw9B,GACxBoqnB,EAAMmE,EAAO,GAAI9zf,EAAK8zf,EAAO,GAC7BrgoB,EAAIkvnB,IAAagN,EAAKpqnB,GAE1B,OADAn+B,IAAK44J,GAAI/9J,SAAQ,SAASF,GAAK0xB,EAAE1xB,GAAKi+J,EAAGj+J,EAAI,IACtC0xB,CACR,CAIA,SAASugoB,EAAmBv4nB,EAAeukI,EAAkBz3I,EAAchV,GAC1E,IAAIkgB,EAAI,OAASlL,EAAE,GAAK,MAAQhV,EAAE,GAAK,KACvC,OAAOkoB,EAAK5G,GACX,IAAK,IACJpB,GAAMgI,EAAKpF,GAAG,EACXoF,EAAKnrB,IAAMmrB,EAAKpnB,IAAGof,GAAK,KAAOwgoB,IAASx4nB,EAAKnrB,EAAG,CAAC7P,EAAE8nB,EAAGhN,EAAEhI,KAAK,MACjE,IAAK,IAAKkgB,GAAKgI,EAAKpF,EAAI,OAAS,QAAS,MAC1C,IAAK,IAAK5C,GAAKgI,EAAK9tB,GAAK8tB,EAAKpF,EAAG,MACjC,IAAK,IAAK5C,GAAK,KAAOgI,EAAK9tB,GAAK8tB,EAAKpF,GAAK,IAAK,MAC/C,IAAK,IAAK5C,GAAK,IAAMgI,EAAKpF,EAAExhB,QAAQ,KAAK,IAAIA,QAAQ,KAAM,MAAQ,IAEpE,OAAO4e,CACR,CAgDA,OArMA48nB,EAAa,KAAO,IAqMb,CACNb,YA/DD,SAA0BznpB,EAAew9B,GAAqB,OAAOo8mB,IAAkBkS,EAAc9rpB,EAAGw9B,GAAOA,EAAO,EAgErHkqnB,SAAUoE,EACVnE,WA1BD,SAAuB1vf,EAAkBz6H,GACxC,IACuC9J,EAzBZq6I,EAwBvBo+e,EAA6B,CAAC,eAAgBzgoB,EAAsB,GACpEhzB,EAAI4gpB,IAAkBrhf,EAAG,SACzBiif,EAAQjgpB,MAAMqR,QAAQ2sJ,GACtBm0f,EAAK,OAETD,EAASlxpB,KAAK,cACdkxpB,EAASlxpB,KAAK,mBACXg9J,EAAG,WA/BqB8V,EA+BQo+e,EAAUl0f,EAAG,SA9B3C/9J,SAAQ,SAASqqC,EAAKjqC,GAC1B,IAAI+xpB,EAAM,OAAS/xpB,EAAE,GAAK,KAAOA,EAAE,GAAK,IACrCiqC,EAAIlC,OAAQgqnB,GAAO,KAEE,iBAAb9nnB,EAAIlpC,OAAsBkpC,EAAI+nnB,MAAK/nnB,EAAI+nnB,IAAMC,IAAShonB,EAAIlpC,QAC/C,iBAAXkpC,EAAI+nnB,KAAoB/nnB,EAAIgjnB,MAAKhjnB,EAAIgjnB,IAAMiF,IAAQjonB,EAAI+nnB,MAC5C,iBAAX/nnB,EAAIgjnB,MAAiB8E,GAAOzxpB,KAAK22B,MAAMgT,EAAIgjnB,OAErB,KAA9B8E,EAAI1woB,OAAO0woB,EAAI9xpB,OAAS,IAAWwzK,EAAI9yK,KAAKoxpB,EAChD,KAsBGp0f,EAAG,UAnBP,SAA4B8V,EAAuBj4I,GAClDA,EAAK57B,SAAQ,SAASy5B,EAAKr5B,GAC1B,IAAI+xpB,EAAM,KACP14nB,EAAI0O,OAAQgqnB,GAAO,MACd14nB,EAAIg4nB,IAAKU,GAAO,IAAM,GAAK14nB,EAAIg4nB,IAAM,IACrCh4nB,EAAIi4nB,MAAKS,GAAO,IAAM,GAAKI,IAAM94nB,EAAIi4nB,KAAO,KACjDS,EAAI9xpB,OAAS,GAAGwzK,EAAI9yK,KAAKoxpB,EAAM,KAAO/xpB,EAAE,GAC5C,GACD,CAWiBoypB,CAAmBP,EAAUl0f,EAAG,UAEhDk0f,EAASlxpB,KAAK,OAASvC,EAAEkuB,EAAEluB,EAAIA,EAAEq0B,EAAEr0B,EAAI,GAAK,MAAQA,EAAEkuB,EAAEpT,EAAI9a,EAAEq0B,EAAEvZ,EAAI,GAAK,KAAO,CAAC9a,EAAEq0B,EAAEvZ,EAAE9a,EAAEq0B,EAAEr0B,EAAEA,EAAEkuB,EAAEpT,EAAE9a,EAAEkuB,EAAEluB,GAAG2F,KAAK,MAC/G,IAAI,IAAImiB,EAAI9nB,EAAEq0B,EAAEr0B,EAAG8nB,GAAK9nB,EAAEkuB,EAAEluB,IAAK8nB,EAChC,IAAI,IAAIhV,EAAI9S,EAAEq0B,EAAEvZ,EAAGhI,GAAK9S,EAAEkuB,EAAEpT,IAAKhI,EAAG,CACnC,IAAI6ulB,EAAQq+C,IAAY,CAAChgpB,EAAE8nB,EAAEhN,EAAEhI,KAC/BkoB,EAAOwmnB,GAASjif,EAAGz3I,IAAI,IAAIhV,GAAIysJ,EAAGoic,MACX,MAAV3mkB,EAAKpF,GAAeoF,EAAKnrB,IAAKmrB,EAAKpnB,IAChDof,EAAEzwB,KAAKgxpB,EAAmBv4nB,EAAMukI,EAAIz3I,EAAGhV,GACxC,CAED,OAAO2gpB,EAAS9tpB,KAAK+tpB,GAAMA,EAAK1goB,EAAErtB,KAAK+tpB,GAAMA,EAAK,IAAMA,CACzD,EAOD,CAnOyB,GAqOrBO,IAAoB,WAUvB,SAASC,EAAexgnB,EAAgB5O,GAEvC,IADA,IAAI8oR,EAAUl6Q,EAAI75B,MAAM,MAAOiO,GAAK,EAAGhV,GAAK,EAAG85D,EAAK,EAAGmgF,EAAc,GAC9DngF,IAAOghP,EAAQ/rT,SAAU+qE,EAC/B,GAA2B,QAAvBghP,EAAQhhP,GAAInpD,QAChB,KAAIqE,EAAI,GAAR,CAKA,IAJA,IAAItL,EAAWoxS,EAAQhhP,GAAInpD,OAAO5J,MAAM,KACpCnS,EAAO8U,EAAS,GAAIld,EAAQkd,EAAS,GAErCS,EAAO2wS,IADThhP,IACwB,GACe,GAAjC3vD,EAAK3D,MAAM,SAAS,IAAIzX,QAAe+qE,EAAKghP,EAAQ/rT,OAAS,GAAGob,GAAQ,KAAO2wS,IAAUhhP,GAEjG,OADA3vD,EAAOA,EAAKwG,QACH/b,GACR,KAAM,EACL,GAAa,QAATuV,EAAgB,CAAE8vI,IAAMjlI,GAAK,GAAIhV,EAAI,EAAG,QAAU,CACjD,GAAa,QAATmK,EAAgB,MAAM,IAAI7Y,MAAM,oCAAsC6Y,GAC/E,MACD,KAAK,EACQ,SAATA,EAAiB8vI,EAAIjlI,GAAGhV,IAAK,EACf,UAATmK,EAAkB8vI,EAAIjlI,GAAGhV,IAAK,EAC7B+Q,MAAM22nB,IAASl7oB,IACfukB,MAAM62nB,IAAUp7oB,GAAO+3B,WAC3B01H,EAAIjlI,GAAGhV,GAAKxT,EAD2BytJ,EAAIjlI,GAAGhV,GAAK+0hB,IAAUvoiB,GADjCytJ,EAAIjlI,GAAGhV,GAAK0noB,IAASl7oB,KAGpDwT,EAAG,MACN,KAAK,GAEJmK,GADAA,EAAOA,EAAKvX,MAAM,EAAEuX,EAAKpb,OAAO,IACpBuS,QAAQ,MAAO,OACN6I,EAAK3D,MAAM,aAAY2D,EAAOA,EAAKvX,MAAM,GAAI,IAClEqnJ,EAAIjlI,GAAGhV,KAAgB,KAATmK,EAAcA,EAAO,KAGrC,GAAa,QAATA,EAAgB,KA1BD,OADiB8vI,IAAMjlI,GAAK,GAAIhV,EAAI,EA8BxD,OADGgyB,GAAQA,EAAK6pnB,YAAW5hgB,EAAMA,EAAIrnJ,MAAM,EAAGo/B,EAAK6pnB,YAC5C5hgB,CACR,CAEA,SAASongB,EAAazgnB,EAAgB5O,GAAsB,OAAOo9mB,IA7CnE,SAAoB56oB,EAAew9B,GAClC,OAAOA,EAAKp9B,MACX,IAAK,SAAU,OAAOwspB,EAAe9wB,IAAc97nB,GAAIw9B,GACvD,IAAK,SAAU,OAAOovnB,EAAe5spB,EAAGw9B,GACxC,IAAK,SAAU,OAAOovnB,EAAe7wB,KAAW33iB,OAAOvL,SAAS74E,GAAKA,EAAEoH,SAAS,UAAYm1nB,IAAIv8nB,GAAIw9B,GACpG,IAAK,QAAS,OAAOovnB,EAAe7Z,IAAO/yoB,GAAIw9B,GAEhD,MAAM,IAAI1gC,MAAM,qBAAuB0gC,EAAKp9B,KAC7C,CAqCgF0spB,CAAW1gnB,EAAK5O,GAAOA,EAAO,CA2D9G,MAAO,CACNiqnB,YA3DD,SAAyBr7mB,EAAgB5O,GAAqB,OAAOo8mB,IAAkBiT,EAAazgnB,EAAK5O,GAAOA,EAAO,EA4DtHkqnB,SAAUmF,EACVlF,WA3DgC,WAChC,IAAIoF,EAAa,SAAYrhoB,EAAqBshoB,EAAkB1+nB,EAAcjsB,EAAc0qB,GAC/FrB,EAAEzwB,KAAK+xpB,GACPthoB,EAAEzwB,KAAKqzB,EAAI,IAAMjsB,GACjBqpB,EAAEzwB,KAAK,IAAM8xB,EAAEjgB,QAAQ,KAAK,MAAQ,IACrC,EACImgpB,EAAa,SAAYvhoB,EAAqBtrB,EAAiBkuB,EAAWvB,GAC7ErB,EAAEzwB,KAAKmF,EAAO,IAAMkuB,GACpB5C,EAAEzwB,KAAa,GAARmF,EAAY,IAAM2sB,EAAEjgB,QAAQ,KAAK,MAAQ,IAAMigB,EACvD,EACA,OAAO,SAAsBkrI,GAC5B,IACuCvkI,EADnChI,EAAsB,GACtBhzB,EAAI4gpB,IAAkBrhf,EAAG,SACzBiif,EAAQjgpB,MAAMqR,QAAQ2sJ,GAC1B80f,EAAWrhoB,EAAG,QAAS,EAAG,EAAG,WAC7BqhoB,EAAWrhoB,EAAG,UAAW,EAAGhzB,EAAEkuB,EAAEluB,EAAIA,EAAEq0B,EAAEr0B,EAAI,EAAE,IAC9Cq0pB,EAAWrhoB,EAAG,SAAU,EAAGhzB,EAAEkuB,EAAEpT,EAAI9a,EAAEq0B,EAAEvZ,EAAI,EAAE,IAC7Cu5oB,EAAWrhoB,EAAG,OAAQ,EAAG,EAAE,IAC3B,IAAI,IAAIlL,EAAI9nB,EAAEq0B,EAAEr0B,EAAG8nB,GAAK9nB,EAAEkuB,EAAEluB,IAAK8nB,EAAG,CACnCysoB,EAAWvhoB,GAAI,EAAG,EAAG,OACrB,IAAI,IAAIlgB,EAAI9S,EAAEq0B,EAAEvZ,EAAGhI,GAAK9S,EAAEkuB,EAAEpT,IAAKhI,EAAG,CACnC,IAAI6ulB,EAAQq+C,IAAY,CAAChgpB,EAAE8nB,EAAEhN,EAAEhI,IAE/B,GADAkoB,EAAOwmnB,GAASjif,EAAGz3I,IAAI,IAAIhV,GAAKysJ,EAAGoic,GAEnC,OAAO3mkB,EAAK5G,GACX,IAAK,IACJ,IAAI/qB,EAAe2xB,EAAK9tB,EACpB7D,GAAiB,MAAV2xB,EAAKpF,IAAWvsB,EAAM2xB,EAAKpF,GAC5B,MAAPvsB,EACW2xB,EAAKnrB,IAAMmrB,EAAKpnB,EAAG2gpB,EAAWvhoB,EAAG,EAAG,EAAG,IAAMgI,EAAKnrB,GAC1D0kpB,EAAWvhoB,EAAG,EAAG,EAAG,IAErBuhoB,EAAWvhoB,EAAG,EAAG3pB,EAAK,KAC3B,MACD,IAAK,IACJkrpB,EAAWvhoB,EAAG,EAAGgI,EAAKpF,EAAI,EAAI,EAAGoF,EAAKpF,EAAI,OAAS,SACnD,MACD,IAAK,IACJ2+nB,EAAWvhoB,EAAG,EAAG,EAAenP,MAAMmX,EAAKpF,GAAMoF,EAAKpF,EAAI,KAAOoF,EAAKpF,EAAI,KAC1E,MACD,IAAK,IACAoF,EAAK9tB,IAAG8tB,EAAK9tB,EAAIm5nB,IAAWrrmB,EAAKnF,GAAK+umB,IAAU,IAAKgV,IAAQ/xG,IAAU7sgB,EAAKpF,MACrE2+nB,EAAWvhoB,EAAG,EAAGgI,EAAK9tB,EAAG,KAEpC,MACD,QAASqnpB,EAAWvhoB,EAAG,EAAG,EAAG,SAtBlBuhoB,EAAWvhoB,EAAG,EAAG,EAAG,GAwBjC,CACD,CACAuhoB,EAAWvhoB,GAAI,EAAG,EAAG,OAIrB,OAFSA,EAAErtB,KADF,OAIV,CACD,CAvDiC,GA6DlC,CA9GwB,GAgHpB6upB,IAAoB,WAEvB,SAASj7c,EAAOllL,GAA2B,OAAOA,EAAEjgB,QAAQ,MAAO,OAAOA,QAAQ,KAAM,OAAOA,QAAQ,MAAM,MAAQ,CA2BrH,SAASqgpB,EAAantpB,EAAcw9B,GAAsB,OAAOo9mB,IAzBjE,SAAoBxumB,EAAgB5O,GAEnC,IADA,IAAI8oR,EAAUl6Q,EAAI75B,MAAM,MAAOiO,GAAK,EAAGhV,GAAK,EAAG85D,EAAK,EAAGmgF,EAAc,GAC9DngF,IAAOghP,EAAQ/rT,SAAU+qE,EAAI,CACnC,IAAIk7Z,EAASl6K,EAAQhhP,GAAInpD,OAAO5J,MAAM,KACtC,GAAiB,SAAdiud,EAAO,GAAV,CACA,IAAIimK,EAAO0S,IAAY34K,EAAO,IAC9B,GAAG/6U,EAAIlrJ,QAAUksoB,EAAK/toB,EAAG,IAAI8nB,EAAIilI,EAAIlrJ,OAAQimB,GAAKimnB,EAAK/toB,IAAK8nB,EAAOilI,EAAIjlI,KAAIilI,EAAIjlI,GAAK,IAEpF,OADAA,EAAIimnB,EAAK/toB,EAAG8S,EAAIi7nB,EAAKjznB,EACdgtd,EAAO,IACb,IAAK,IAAK/6U,EAAIjlI,GAAGhV,GAAYg1d,EAAO,GAZa1zd,QAAQ,OAAO,MAAMA,QAAQ,OAAO,KAAKA,QAAQ,OAAO,MAYhE,MACzC,IAAK,IAAK24I,EAAIjlI,GAAGhV,IAAMg1d,EAAO,GAAI,MAClC,IAAK,MAAO,IAAI3/b,EAAK2/b,EAAOA,EAAOjme,OAAS,GAE5C,IAAK,MAEE,OADCime,EAAO,GACF/6U,EAAIjlI,GAAGhV,MAAMg1d,EAAO,GACtB/6U,EAAIjlI,GAAGhV,IAAMg1d,EAAO,GAEd,OAAbA,EAAO,KAAa/6U,EAAIjlI,GAAGhV,GAAK,CAACi6I,EAAIjlI,GAAGhV,GAAIq1B,IAdhB,CAgBlC,CAEA,OADGrD,GAAQA,EAAK6pnB,YAAW5hgB,EAAMA,EAAIrnJ,MAAM,EAAGo/B,EAAK6pnB,YAC5C5hgB,CACR,CAE8E2ngB,CAAWptpB,EAAGw9B,GAAOA,EAAO,CAG1G,IAAIyJ,EAAS,CACZ,yBACA,oBACA,4EACC5oC,KAAK,MAEHgvpB,EAAM,CACT,qCACA,2CACChvpB,KAAK,MAAQ,KAGXkjD,EAAO,CACV,wCACA,cACCljD,KAAK,MAEH6d,EAAM,uCAEV,SAASoxoB,EAAkBr1f,GAC1B,IAAIA,IAAOA,EAAG,QAAS,MAAO,GAI9B,IAHA,IAAyDvkI,EAArDhI,EAAsB,GAAIsrnB,EAAuB,GAAU38C,EAAQ,GACnE3hmB,EAAI0gpB,IAAanhf,EAAG,SACpBiif,EAAQjgpB,MAAMqR,QAAQ2sJ,GAClBz3I,EAAI9nB,EAAEq0B,EAAEr0B,EAAG8nB,GAAK9nB,EAAEkuB,EAAEluB,IAAK8nB,EAChC,IAAI,IAAIhV,EAAI9S,EAAEq0B,EAAEvZ,EAAGhI,GAAK9S,EAAEkuB,EAAEpT,IAAKhI,EAGhC,GAFA6ulB,EAAQq+C,IAAY,CAAChgpB,EAAE8nB,EAAEhN,EAAEhI,KAC3BkoB,EAAOwmnB,GAASjif,EAAGz3I,IAAI,IAAIhV,GAAKysJ,EAAGoic,KACb,MAAV3mkB,EAAKpF,GAAwB,MAAXoF,EAAK5G,EAAnC,CAEA,OADAkqnB,EAAK,CAAC,OAAQ38C,EAAO,KACd3mkB,EAAK5G,GACX,IAAK,IAAK,IAAK,MAAOkqnB,EAAG/7oB,KAAKg3M,EAAOv+K,EAAKpF,IAAK,MAC/C,IAAK,IACAoF,EAAKnrB,GACFyuoB,EAAG,GAAG,MAAOA,EAAG,GAAG,IAAKA,EAAG,GAAGtjnB,EAAKpF,EAAG0onB,EAAG,GAAG/kc,EAAOv+K,EAAKnrB,KADjDyuoB,EAAG,GAAG,IAAKA,EAAG,GAAGtjnB,EAAKpF,GAEpC,MACD,IAAK,IACJ0onB,EAAG,GAAK,MAAMtjnB,EAAKnrB,EAAE,IAAI,KAAMyuoB,EAAG,GAAG,KAAMA,EAAG,GAAGtjnB,EAAKpF,EAAE,IAAI,IAC5D0onB,EAAG,GAAK/kc,EAAOv+K,EAAKnrB,IAAImrB,EAAKpF,EAAE,OAAO,UACtC,MACD,IAAK,IACJ,IAAIxB,EAAIwlnB,IAAQ/xG,IAAU7sgB,EAAKpF,IAC/B0onB,EAAG,GAAK,MAAOA,EAAG,GAAK,KAAMA,EAAG,GAAK,GAAGlqnB,EACxCkqnB,EAAG,GAAKtjnB,EAAK9tB,GAAKm5nB,IAAWrrmB,EAAKnF,GAAK+umB,IAAU,IAAKxwmB,GACtD,MACD,IAAK,IAAK,SAEXpB,EAAEzwB,KAAK+7oB,EAAG34oB,KAAK,KAnBuC,CAyBxD,OAHAqtB,EAAEzwB,KAAK,YAAcvC,EAAEkuB,EAAEpT,EAAE9a,EAAEq0B,EAAEvZ,EAAE,GAAK,OAAS9a,EAAEkuB,EAAEluB,EAAEA,EAAEq0B,EAAEr0B,EAAE,GAAK,UAChEgzB,EAAEzwB,KAAK,2BAEAywB,EAAErtB,KAAK,KACf,CAOA,MAAO,CACNoppB,YAhED,SAAyBznpB,EAAcw9B,GAAqB,OAAOo8mB,IAAkBuT,EAAantpB,EAAGw9B,GAAOA,EAAO,EAiElHkqnB,SAAUyF,EACVxF,WARD,SAAsB1vf,GACrB,MAAO,CAAChxH,EAAQomnB,EAAK9rmB,EAAM8rmB,EAAKC,EAAkBr1f,GAAK/7I,GAAK7d,KAAK,KAElE,EAOD,CAlGwB,GAoGpBkvpB,IAAoB,WACvB,SAASC,EAAa73oB,EAAiB8vI,EAAajlI,EAAchV,EAAckgB,GAC5EA,EAAE+Y,IAAKghH,EAAIjlI,GAAGhV,GAAKmK,EACL,KAATA,IACS,SAATA,EAAiB8vI,EAAIjlI,GAAGhV,IAAK,EACpB,UAATmK,EAAkB8vI,EAAIjlI,GAAGhV,IAAK,EAC7B+Q,MAAM22nB,IAASv9nB,IACf4G,MAAM62nB,IAAUz9nB,GAAMoa,WAC1B01H,EAAIjlI,GAAGhV,GAAKmK,EAD0B8vI,EAAIjlI,GAAGhV,GAAK+0hB,IAAU5qhB,GADjC8vI,EAAIjlI,GAAGhV,GAAK0noB,IAASv9nB,GAGtD,CA6BA,IAAI83oB,EAAa,CACT,GAAa,IACb,EAAa,KACb,GAAa,IACb,IAAa,KAIjBC,EAAoB,CAChB,GAAa,EACb,EAAa,EACb,GAAa,EACb,IAAa,GAGrB,SAASC,EAAUvhnB,GAElB,IADA,IAAI07lB,EAAM,CAAC,EAAG8lB,GAAQ,EAAO1xoB,EAAM,EAAGwoC,EAAK,EACtCxoC,EAAMkwB,EAAI7xC,SAAS2hB,EACQ,KAA3BwoC,EAAGtY,EAAI1wB,WAAWQ,IAAe0xoB,GAASA,GACrCA,GAASlpmB,KAAM+omB,IAAY3lB,EAAIpjlB,IAAOojlB,EAAIpjlB,IAAK,GAAG,GAI5D,IAAIxoC,KADJwoC,EAAK,GACMojlB,EAAU1ooB,OAAOnG,UAAUyD,eAAevD,KAAK2uoB,EAAK5rnB,IAC9DwoC,EAAGzpD,KAAK,CAAE6soB,EAAI5rnB,GAAMA,IAGrB,IAAMwoC,EAAGnqD,OAER,IAAI2hB,KADJ4rnB,EAAM4lB,EACetupB,OAAOnG,UAAUyD,eAAevD,KAAK2uoB,EAAK5rnB,IAC9DwoC,EAAGzpD,KAAK,CAAE6soB,EAAI5rnB,GAAMA,IAMtB,OAFAwoC,EAAGz2B,MAAK,SAAS3a,EAAGC,GAAK,OAAOD,EAAE,GAAKC,EAAE,IAAMm6oB,EAAkBp6oB,EAAE,IAAMo6oB,EAAkBn6oB,EAAE,GAAK,IAE3Fk6oB,EAAW/omB,EAAG4mC,MAAM,KAAO,EACnC,CAEA,SAASuikB,EAAiBzhnB,EAAgB5O,GACzC,IAAI9R,EAAI8R,GAAQ,CAAC,EACb6vnB,EAAM,GAEV,IAAIp1f,EAAmBvsI,EAAEwunB,MAAS,GAAe,CAAC,EAC9CztnB,EAAmB,CAACM,EAAG,CAACvZ,EAAE,EAAG9a,EAAE,GAAIkuB,EAAG,CAACpT,EAAE,EAAG9a,EAAE,IAE7B,QAAlB0zC,EAAIhuC,MAAM,EAAE,GAEU,IAArBguC,EAAI1wB,WAAW,IAAiC,IAArB0wB,EAAI1wB,WAAW,IAC5C2xoB,EAAMjhnB,EAAIzwB,OAAO,GAAIywB,EAAMA,EAAIhuC,MAAM,IAGT,IAArBguC,EAAI1wB,WAAW,IAAiC,IAArB0wB,EAAI1wB,WAAW,IACjD2xoB,EAAMjhnB,EAAIzwB,OAAO,GAAIywB,EAAMA,EAAIhuC,MAAM,IAEjCivpB,EAAMM,EAAUvhnB,EAAIhuC,MAAM,EAAE,OAEfivpB,EAAX3hoB,GAAKA,EAAEoioB,GAAUpioB,EAAEoioB,GAChBH,EAAUvhnB,EAAIhuC,MAAM,EAAE,OACjC,IAAIoiB,EAAI,EAAGhV,EAAI,EAAG8iB,EAAI,EAClBrS,EAAQ,EAAGC,EAAM,EAAG6xoB,EAAQV,EAAI3xoB,WAAW,GAAIkyoB,GAAQ,EAAOlpmB,EAAG,EAAGspmB,EAAQ5hnB,EAAI1wB,WAAW,GAC/F0wB,EAAMA,EAAIt/B,QAAQ,SAAU,MAC5B,IAAImhpB,EAA8B,MAAZvioB,EAAEq2mB,OAj+N1B,SAAsBA,GACrB,IAAI9C,EAAuB,iBAAV8C,EAAqBzE,IAAUyE,GAAUA,EAE1D,OADA9C,EAAMA,EAAInynB,QAAQ81nB,IAAa,UACxB,IAAI7mnB,OAAO,IAAMkjnB,EAAM,IAC/B,CA69N2CivB,CAAaxioB,EAAEq2mB,QAAU,KAClE,SAASosB,IACR,IAAIphoB,EAAIqf,EAAIhuC,MAAM6d,EAAOC,GACrBwX,EAAQ,CAAC,EAEb,GADkB,KAAf3G,EAAEpR,OAAO,IAAuC,KAA1BoR,EAAEpR,OAAOoR,EAAExyB,OAAS,KAAWwyB,EAAIA,EAAE3uB,MAAM,GAAG,GAAG0O,QAAQ,MAAM,MACxE,IAAbigB,EAAExyB,OAAcm5B,EAAK5G,EAAI,SACvB,GAAGpB,EAAE+Y,IAAO/Q,EAAK5G,EAAI,IAAK4G,EAAKpF,EAAIvB,OACnC,GAAuB,IAApBA,EAAE5Q,OAAO5hB,OAAgBm5B,EAAK5G,EAAI,IAAK4G,EAAKpF,EAAIvB,OACnD,GAAsB,IAAnBA,EAAErR,WAAW,GACE,IAAnBqR,EAAErR,WAAW,IAA4C,IAA9BqR,EAAErR,WAAWqR,EAAExyB,OAAS,IAAcm5B,EAAK5G,EAAI,IAAK4G,EAAKpF,EAAIvB,EAAE3uB,MAAM,GAAG,GAAG0O,QAAQ,MAAM,MAqmH3G,GApmHMigB,EAomHhBxyB,QApmHsBm5B,EAAK5G,EAAI,IAAK4G,EAAKnrB,EAAIwkB,EAAE3uB,MAAM,KAChDs1B,EAAK5G,EAAI,IAAK4G,EAAKpF,EAAIvB,QAC1B,GAAQ,QAALA,EAAe2G,EAAK5G,EAAI,IAAK4G,EAAKpF,GAAI,OACzC,GAAQ,SAALvB,EAAgB2G,EAAK5G,EAAI,IAAK4G,EAAKpF,GAAI,OAC1C,GAAI/R,MAAM+R,EAAI4knB,IAASnmnB,IACvB,IAAIxQ,MAAM62nB,IAAUrmnB,GAAGgD,YAAck+nB,GAAOlhoB,EAAE/a,MAAMi8oB,GAAM,CAC9Dv6nB,EAAKnF,EAAI7C,EAAEq2mB,QAAUzE,IAAU,IAC/B,IAAItjoB,EAAI,EACLi0pB,GAAOlhoB,EAAE/a,MAAMi8oB,KAAOlhoB,EA9+N7B,SAAoBqf,EAAgB21lB,EAAmB/vnB,GACtD,IAAIu+D,GAAK,EAAGliD,GAAK,EAAGruB,GAAK,EAAGs6D,GAAK,EAAGlsC,GAAK,EAAGxhB,GAAK,GAChDm1nB,EAAO/vnB,MAAM4wnB,MAAc,IAAI1ooB,SAAQ,SAASmI,EAAG/H,GACnD,IAAIg0B,EAAIxO,SAAS9N,EAAM1X,EAAE,GAAI,IAC7B,OAAO+H,EAAE9F,cAAcof,OAAO,IAC7B,IAAK,IAAK40D,EAAIjiD,EAAG,MAAO,IAAK,IAAKtuB,EAAIsuB,EAAG,MACzC,IAAK,IAAKgsC,EAAIhsC,EAAG,MAAO,IAAK,IAAK1hB,EAAI0hB,EAAG,MACzC,IAAK,IAAQgsC,GAAK,EAAGlsC,EAAIE,EAAQD,EAAIC,EAEvC,IACG1hB,GAAK,IAAW,GAANwhB,GAAWC,GAAK,IAAKD,EAAIC,EAAGA,GAAK,GAC9C,IAAI+/nB,GAAY,IAAM79kB,GAAG,EAAEA,GAAG,IAAIhhD,MAAOI,gBAAgBvxB,OAAO,GAAK,KAAO,MAAQiwB,GAAG,EAAEA,EAAE,IAAIjwB,OAAO,GAAK,KAAO,MAAQ4B,GAAG,EAAEA,EAAE,IAAI5B,OAAO,GACvH,GAAlBgwpB,EAAQ7zpB,SAAa6zpB,EAAU,IAAMA,GACnB,GAAlBA,EAAQ7zpB,SAAa6zpB,EAAU,KAAOA,GACzC,IAAIC,GAAY,MAAQ/zlB,GAAG,EAAEA,EAAE,IAAIl8D,OAAO,GAAK,KAAO,MAAQgwB,GAAG,EAAEA,EAAE,IAAIhwB,OAAO,GAAK,KAAO,MAAQwO,GAAG,EAAEA,EAAE,IAAIxO,OAAO,GACtH,OAAS,GAANk8D,IAAiB,GAANlsC,IAAiB,GAANxhB,EAAgBwhpB,GAChC,GAAN79kB,IAAiB,GAANliD,IAAiB,GAANruB,EAAgBqupB,EAClCD,EAAU,IAAMC,CACxB,CA49N+BC,CAAWvhoB,EAAGrB,EAAEq2mB,OAASh1mB,EAAE/a,MAAMi8oB,IAAM,IAAMj0pB,EAAE,GACvE0xB,EAAEgvnB,WAAahnnB,EAAK5G,EAAI,IAAK4G,EAAKpF,EAAIiygB,IAAUxzgB,EAAG/yB,KAC/C05B,EAAK5G,EAAI,IAAK4G,EAAKpF,EAAIgknB,IAAQ/xG,IAAUxzgB,EAAG/yB,MACjC,IAAf0xB,EAAE6ioB,WAAoB76nB,EAAK9tB,EAAIm5nB,IAAWrrmB,EAAKnF,EAAGmF,EAAKpF,aAAaiB,KAAO+inB,IAAQ5+mB,EAAKpF,GAAGoF,EAAKpF,IAC/F5C,EAAE8ioB,eAAe96nB,EAAKnF,CAC3B,MACCmF,EAAK5G,EAAI,IACT4G,EAAKpF,EAAIvB,OAXyB2G,EAAK5G,EAAI,KAAuB,IAAfpB,EAAE6ioB,WAAoB76nB,EAAK9tB,EAAImnB,GAAG2G,EAAKpF,EAAIA,EAmB/F,GANa,KAAVoF,EAAK5G,IACApB,EAAEwunB,OAAajif,EAAGz3I,KAAIy3I,EAAGz3I,GAAK,IAAIy3I,EAAGz3I,GAAGhV,GAAKkoB,GAChDukI,EAAGygf,IAAY,CAAClloB,EAAEhI,EAAE9S,EAAE8nB,KAAOkT,GAClCzX,EAAQC,EAAI,EAAG8xoB,EAAU5hnB,EAAI1wB,WAAWO,GACrCwQ,EAAM7F,EAAEpT,EAAIhI,IAAGihB,EAAM7F,EAAEpT,EAAIhI,GAC3BihB,EAAM7F,EAAEluB,EAAI8nB,IAAGiM,EAAM7F,EAAEluB,EAAI8nB,GAC3BkkC,GAAMqpmB,IAASvipB,OAAsB,GAAZA,EAAI,IAAKgV,EAAMkL,EAAE27nB,WAAa37nB,EAAE27nB,WAAa7moB,EAAG,OAAO,CACpF,CACA0qE,EAAO,KAAKhvE,EAAMkwB,EAAI7xC,SAAS2hB,EAAK,OAAQwoC,EAAGtY,EAAI1wB,WAAWQ,IAC7D,KAAK,GAAqB,KAAZ8xoB,IAAkBJ,GAASA,GAAO,MAChD,KAAKG,EAAO,KAAK,GAAM,KAAK,GAAM,IAAIH,GAASO,IAAe,MAAMjjkB,EAMrE,OAHGhvE,EAAMD,EAAQ,GAAGkyoB,IAEpBl2f,EAAG,QAAUohf,IAAa5snB,GACnBwrI,CACR,CAEA,SAASw2f,EAAiBrinB,EAAgB5O,GACzC,OAAKA,GAAQA,EAAK+vnB,IACf/vnB,EAAKswnB,IACa,QAAlB1hnB,EAAIhuC,MAAM,EAAE,IACZguC,EAAItuC,QAAQ,OAAS,GAAKsuC,EAAItuC,QAAQ,MAAQ,GAAKsuC,EAAItuC,QAAQ,MAAQ,EAFvD+vpB,EAAiBzhnB,EAAK5O,GAGlCo9mB,IA5IR,SAAwBryoB,EAAci1B,GACrC,IAAI9R,EAAI8R,GAAQ,CAAC,EACbioH,EAAe,GACnB,IAAIl9I,GAAkB,IAAbA,EAAEhO,OAAc,OAAOkrJ,EAGhC,IAFA,IAAI+zC,EAAQjxL,EAAEgK,MAAM,UAChBovD,EAAI63H,EAAMj/L,OAAS,EACjBonE,GAAK,GAAyB,IAApB63H,EAAM73H,GAAGpnE,UAAgBonE,EAGzC,IAFA,IAAI1lD,EAAQ,GAAIk8M,EAAM,EAClB33M,EAAI,EACFA,GAAKmhD,IAAKnhD,GAEJ,IADX23M,EAAM3+B,EAAMh5K,GAAG1iB,QAAQ,MACTq6N,EAAM3+B,EAAMh5K,GAAGjmB,OAAa49N,IAC1Cl8M,EAAQrhB,KAAKwhB,IAAIH,EAAOk8M,GAEzB,IAAI33M,EAAI,EAAGA,GAAKmhD,IAAKnhD,EAAG,CACvBilI,EAAIjlI,GAAK,GAET,IAAIhV,EAAI,EAER,IADAgipB,EAAah0d,EAAMh5K,GAAGpiB,MAAM,EAAG6d,GAAOE,OAAQspI,EAAKjlI,EAAGhV,EAAGkgB,GACrDlgB,EAAI,EAAGA,IAAMguL,EAAMh5K,GAAGjmB,OAAS0hB,GAAO,GAAK,IAAKzQ,EACnDgipB,EAAah0d,EAAMh5K,GAAGpiB,MAAM6d,EAAY,IAALzQ,EAAE,GAAMyQ,EAAQ,GAAFzQ,GAAM2Q,OAAOspI,EAAIjlI,EAAEhV,EAAEkgB,EACxE,CAEA,OADGA,EAAE27nB,YAAW5hgB,EAAMA,EAAIrnJ,MAAM,EAAGstB,EAAE27nB,YAC9B5hgB,CACR,CAoHqBipgB,CAAetinB,EAAK5O,GAAOA,GAJhBqwnB,EAAiBzhnB,EAAK5O,EAKtD,CAEA,SAASmxnB,EAAa3upB,EAAew9B,GACpC,IAAI4O,EAAM,GAAI0oE,EAAqB,UAAbt3E,EAAKp9B,KAAmB,CAAC,EAAE,EAAE,EAAE,GAAKwupB,IAAU5upB,EAAGw9B,GACvE,OAAOA,EAAKp9B,MACX,IAAK,SAAUgsC,EAAM0vlB,IAAc97nB,GAAI,MACvC,IAAK,SAOL,IAAK,SAAUosC,EAAMpsC,EAAG,MANxB,IAAK,SACuBosC,EAAP,OAAjB5O,EAAK2pnB,SAAyBnnpB,EAAEoH,SAAS,QACpCo2B,EAAK2pnB,UAAgC,qBAAb3rB,IAAgCA,IAAS1gR,MAAMn+O,OAAOn/F,EAAK2pnB,SAAUnnpB,GAC1F+7nB,KAAW33iB,OAAOvL,SAAS74E,GAAKA,EAAEoH,SAAS,UAAYm1nB,IAAIv8nB,GACtE,MACD,IAAK,QAASosC,EAAM2mmB,IAAO/yoB,GAAI,MAE/B,QAAS,MAAM,IAAIlD,MAAM,qBAAuB0gC,EAAKp9B,MAKtD,OAHe,KAAZ00G,EAAM,IAA0B,KAAZA,EAAM,IAA0B,KAAZA,EAAM,GAAY1oE,EAAMoomB,IAASpomB,EAAIhuC,MAAM,IACjE,UAAbo/B,EAAKp9B,MAAiC,UAAbo9B,EAAKp9B,MAAqC,OAAjBo9B,EAAK2pnB,SAAmB/6mB,EAAMoomB,IAASpomB,GAC3E,UAAb5O,EAAKp9B,MAAyC,qBAAbo7nB,KAA4Bh+lB,EAAK2pnB,WAAW/6mB,EAAMovlB,IAAS1gR,MAAMn+O,OAAOn/F,EAAK2pnB,SAAU3rB,IAAS1gR,MAAM7oK,OAAO,MAAM7lK,KACvI,uBAAnBA,EAAIhuC,MAAM,EAAE,IAAqC8upB,IAAIxF,SAAsB,UAAblqnB,EAAKp9B,KAAmBgsC,EAAMoomB,IAASpomB,GAAM5O,GACvGixnB,EAAiBrinB,EAAK5O,EAC9B,CAuBA,MAAO,CACNiqnB,YAtBD,SAAyBznpB,EAAew9B,GAAqB,OAAOo8mB,IAAkB+U,EAAa3upB,EAAGw9B,GAAOA,EAAO,EAuBnHkqnB,SAAUiH,EACVhH,WAtBD,SAAsB1vf,GAIrB,IAHA,IACuCvkI,EADnChI,EAAsB,GACtBhzB,EAAI4gpB,IAAkBrhf,EAAG,SACzBiif,EAAQjgpB,MAAMqR,QAAQ2sJ,GAClBz3I,EAAI9nB,EAAEq0B,EAAEr0B,EAAG8nB,GAAK9nB,EAAEkuB,EAAEluB,IAAK8nB,EAAG,CAEnC,IADA,IAAIw2nB,EAAuB,GACnBxroB,EAAI9S,EAAEq0B,EAAEvZ,EAAGhI,GAAK9S,EAAEkuB,EAAEpT,IAAKhI,EAAG,CACnC,IAAI6ulB,EAAQq+C,IAAY,CAAChgpB,EAAE8nB,EAAEhN,EAAEhI,IAE/B,IADAkoB,EAAOwmnB,GAASjif,EAAGz3I,IAAI,IAAIhV,GAAKysJ,EAAGoic,KACb,MAAV3mkB,EAAKpF,EAAjB,CAEA,IADA,IAAI1oB,GAAK8tB,EAAK9tB,IAAM8zoB,IAAYhmnB,GAAOA,EAAK9tB,IAAM,IAAIxH,MAAM,EAAE,IACxDwH,EAAErL,OAAS,IAAIqL,GAAK,IAC1BoxoB,EAAG/7oB,KAAK2K,GAAW,IAAN4F,EAAU,IAAM,IAHkC,MAAjCwroB,EAAG/7oB,KAAK,aAIvC,CACAywB,EAAEzwB,KAAK+7oB,EAAG34oB,KAAK,IAChB,CACA,OAAOqtB,EAAErtB,KAAK,KACf,EAOD,CAzMwB,GAyNxB,IAAIwwpB,IAAoB,WACvB,SAASC,EAAYn5oB,EAAMknC,EAAuBrf,GACjD,GAAI7nB,EAAJ,CACA0unB,IAAU1unB,EAAMA,EAAKza,GAAK,GAE1B,IADA,IAAI6zpB,EAAOvxnB,EAAKuxnB,MAAQC,EAClBr5oB,EAAKza,EAAIya,EAAKpb,QAAQ,CAC3B,IAAIywpB,EAAKr1oB,EAAK2unB,WAAW,GACrB9jnB,EAAIuuoB,EAAK/D,IAAO+D,EAAK,OACrBx0pB,EAASob,EAAK2unB,WAAW,GACzB9hL,EAAM7sc,EAAKza,EAAIX,EACfyF,EAAIwgB,EAAEjY,GAAKiY,EAAEjY,EAAEoN,EAAMpb,EAAQijC,GAEjC,GADA7nB,EAAKza,EAAIsnd,EACN3la,EAAG78C,EAAGwgB,EAAGwqoB,GAAK,MAClB,CAXgB,CAYjB,CAYA,SAASiE,EAAsBjvpB,EAAGw9B,GACjC,IAAIx9B,EAAG,OAAOA,EACd,IAAI0rB,EAAI8R,GAAQ,CAAC,EAEjB,IAAIzQ,EAAoBrB,EAAEwunB,MAAQ,GAAK,CAAC,EAAa73oB,EAAI,SAAU6spB,EAAS,GAAIC,EAAO,EACnFtV,EAAS,CAAC,EAAGuV,EAAS,GAAIC,EAAY,GAEtCC,EAAW,CAACvioB,EAAG,CAACr0B,EAAE,EAAG8a,EAAE,GAAIoT,EAAG,CAACluB,EAAE,EAAG8a,EAAE,IACtC6zoB,EAAY37nB,EAAE27nB,WAAa,EAE/B,GAAW,GAARrnpB,EAAE,KACO,GAARA,EAAE,IAAsB,GAARA,EAAE,KACjBA,EAAEzF,QAAU,IAAe,GAATyF,EAAE,KAAyB,MAAVA,EAAE,IAAc,MAAM,IAAIlD,MAAM,oCAIxE,GAAW,GAARkD,EAAE,GACJ0rB,EAAEqjoB,KAAOC,EACTF,EAAY9upB,GAAG,SAAS+B,EAAKye,EAAGwqoB,GAAM,OAAOA,GAC5C,KAAK,EACJt/nB,EAAE6joB,KAAOxtpB,EACNA,GAAO,OAAQ2pB,EAAE8joB,MAAO,GAC3B,MACD,KAAK,EAAMF,EAAWvtpB,EAAK,MAC3B,KAAK,IAASA,IAAKmtpB,EAASntpB,GAAK,MACjC,KAAK,IAAMmtpB,EAASntpB,EAAK,MACzB,KAAK,GACL,KAAK,GACA2pB,EAAE8joB,OAAMztpB,EAAI,GAAGusB,EAAIvsB,EAAI,GAAGusB,EAAElwB,MAAM,IAEvC,KAAK,GACL,KAAK,GACL,KAAK,GAEK,IAAN4spB,GAAiC,MAAT,IAATjppB,EAAI,MAAgC,GAATA,EAAI,IAAa,IAAe,GAATA,EAAI,IAAa,KACpFA,EAAI,GAAGwsB,EAAI7C,EAAEq2mB,QAAUzE,IAAU,IAC9B5xmB,EAAEgvnB,YAAa34oB,EAAI,GAAG+qB,EAAI,IAAK/qB,EAAI,GAAGusB,EAAIoknB,IAAQ3woB,EAAI,GAAGusB,KAG1D5C,EAAE8joB,MACDztpB,EAAI,GAAKotpB,IACXpioB,EAAE,QAAUssnB,IAAaiW,GACzBzV,EAAOx3oB,GAAK0qB,EACZqioB,EAAOn0pB,KAAKoH,GACZ0qB,EAAKrB,EAAEwunB,MAAQ,GAAK,CAAC,EACrBoV,EAAW,CAACvioB,EAAG,CAACr0B,EAAE,EAAG8a,EAAE,GAAIoT,EAAG,CAACluB,EAAE,EAAG8a,EAAE,IACtC27oB,EAAOptpB,EAAI,GAAIM,EAAI6spB,GAAU,SAAWC,EAAO,GAAID,EAAS,IAI9D,IAAIO,EAAU/joB,EAAEwunB,OAASntnB,EAAEhrB,EAAI,GAAGrJ,IAAI,IAAIqJ,EAAI,GAAGyR,GAAKuZ,EAAE2rnB,IAAY32oB,EAAI,KACxE,GAAG0tpB,EAAS,CACXA,EAAQ3ioB,EAAI/qB,EAAI,GAAG+qB,EAAG2ioB,EAAQnhoB,EAAIvsB,EAAI,GAAGusB,EAC1B,MAAZvsB,EAAI,GAAGwsB,IAAWkhoB,EAAQlhoB,EAAIxsB,EAAI,GAAGwsB,GACzB,MAAZxsB,EAAI,GAAGwG,IAAWknpB,EAAQlnpB,EAAIxG,EAAI,GAAGwG,GACxC,KACD,CACGmjB,EAAEwunB,OACAntnB,EAAEhrB,EAAI,GAAGrJ,KAAIq0B,EAAEhrB,EAAI,GAAGrJ,GAAK,IAC/Bq0B,EAAEhrB,EAAI,GAAGrJ,GAAGqJ,EAAI,GAAGyR,GAAKzR,EAAI,IACtBgrB,EAAE2rnB,IAAY32oB,EAAI,KAAOA,EAAI,GAGrC,GAAG2pB,OACE,IAAW,IAAR1rB,EAAE,IAAsB,IAARA,EAAE,GAqCrB,MAAM,IAAIlD,MAAM,0BAA4BkD,EAAE,IApCpD0rB,EAAEqjoB,KAAOW,EACE,IAAR1vpB,EAAE,KAAc0rB,EAAE8joB,MAAO,EAAMxvpB,EAAE9E,EAAI,GACxC4zpB,EAAY9upB,GAAG,SAAS+B,EAAKye,EAAGwqoB,GAAM,OAAOA,GAC5C,KAAK,IAAM3opB,EAAIN,EAAK,MACpB,KAAK,GACJA,EAAI,GAAGusB,EAAIvsB,EAAI,GAAGusB,EAAElwB,MAAM,GAE3B,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GASJ,GARG2D,EAAI,GAAKotpB,IACXpioB,EAAE,QAAUssnB,IAAaiW,GACzBzV,EAAOx3oB,GAAK0qB,EACZqioB,EAAOn0pB,KAAKoH,GACZ0qB,EAAKrB,EAAEwunB,MAAQ,GAAK,CAAC,EACrBoV,EAAW,CAACvioB,EAAG,CAACr0B,EAAE,EAAG8a,EAAE,GAAIoT,EAAG,CAACluB,EAAE,EAAG8a,EAAE,IACtC27oB,EAAOptpB,EAAI,GAAIM,EAAI,SAAW8spB,EAAO,IAEnC9H,EAAY,GAAKtlpB,EAAI,GAAGrJ,GAAK2upB,EAAW,MACxC37nB,EAAEwunB,OACAntnB,EAAEhrB,EAAI,GAAGrJ,KAAIq0B,EAAEhrB,EAAI,GAAGrJ,GAAK,IAC/Bq0B,EAAEhrB,EAAI,GAAGrJ,GAAGqJ,EAAI,GAAGyR,GAAKzR,EAAI,IACtBgrB,EAAE2rnB,IAAY32oB,EAAI,KAAOA,EAAI,GACjCutpB,EAAS1ooB,EAAEpT,EAAIzR,EAAI,GAAGyR,IAAG87oB,EAAS1ooB,EAAEpT,EAAIzR,EAAI,GAAGyR,GAC/C87oB,EAAS1ooB,EAAEluB,EAAIqJ,EAAI,GAAGrJ,IAAG42pB,EAAS1ooB,EAAEluB,EAAIqJ,EAAI,GAAGrJ,GAClD,MACD,KAAK,GACDqJ,EAAI,QAASstpB,EAAUttpB,EAAI,MAAQ,IAAMA,EAAI,MAAQ,IACxD,MACD,KAAK,KACJstpB,EAAUttpB,EAAI,IAAMA,EAAI,GAAOA,EAAI,IAAMotpB,IAAM9spB,EAAIN,EAAI,IAExD,GAAG2pB,EACmD,CAIxD,GAHAqB,EAAE,QAAUssnB,IAAaiW,GACzBzV,EAAOqV,GAAU7spB,GAAK0qB,EACtBqioB,EAAOn0pB,KAAKi0pB,GAAU7spB,IAClBgtpB,EAAU90pB,OAAQ,MAAO,CAAEu/oB,WAAYsV,EAAQrV,OAAQF,GAG3D,IAFA,IAAI8V,EAAU,CAAC,EAAGC,EAAS,GAEnBt1pB,EAAI,EAAGA,EAAI+0pB,EAAU90pB,SAAUD,EAAMu/oB,EAAOuV,EAAO90pB,KAC1Ds1pB,EAAO30pB,KAAKo0pB,EAAU/0pB,IAAM80pB,EAAO90pB,IACnCq1pB,EAAQN,EAAU/0pB,IAAMu/oB,EAAOwV,EAAU/0pB,KAAOu/oB,EAAOuV,EAAO90pB,MAE9Ds1pB,EAAO30pB,KAAKo0pB,EAAU/0pB,IACtBq1pB,EAAQN,EAAU/0pB,IAAO,CAAE,OAAQ,OAEpC,MAAO,CAAEw/oB,WAAY8V,EAAQ7V,OAAQ4V,EACtC,CA8IA,SAASE,EAAWzrB,EAAM7poB,EAAQijC,GACjC,IAAI9R,EAAI,CAAC,CAAClY,EAAE,EAAE9a,EAAE,GAAI,CAACo0B,EAAE,IAAIwB,EAAE,GAAI,EAAG,GAUpC,OATGkP,EAAKgynB,MAAqB,OAAbhynB,EAAK+xnB,MACpB7joB,EAAE,GAAGlY,EAAI4wnB,EAAKE,WAAW,GACzB54mB,EAAE,GAAK04mB,EAAKE,WAAW,GACvB54mB,EAAE,GAAGhzB,EAAI0roB,EAAKE,WAAW,GACzBF,EAAKlpoB,GAAG,IAERwwB,EAAE,GAAK04mB,EAAKE,WAAW,GACvB54mB,EAAE,GAAGlY,EAAI4wnB,EAAKE,WAAW,GAAI54mB,EAAE,GAAGhzB,EAAI0roB,EAAKE,WAAW,IAEhD54mB,CACR,CAEA,SAASokoB,EAAY1rB,EAAM7poB,EAAQijC,GAClC,IAAIglb,EAAM4hL,EAAKlpoB,EAAIX,EACfmxB,EAAImkoB,EAAWzrB,EAAM7poB,EAAQijC,GAEjC,GADA9R,EAAE,GAAGoB,EAAI,IACO,OAAb0Q,EAAK+xnB,KAAgB,CACvBnrB,EAAKlpoB,IACL,IAAI2iB,EAAMumnB,EAAKE,WAAW,GAE1B,OADA54mB,EAAE,GAAG4C,EAAI81mB,EAAKE,WAAWzmnB,EAAK,QACvB6N,CACR,CAGA,OAFG8R,EAAKgynB,MAAMprB,EAAKlpoB,IACnBwwB,EAAE,GAAG4C,EAAI81mB,EAAKE,WAAW9hL,EAAM4hL,EAAKlpoB,EAAG,QAChCwwB,CACR,CACA,SAASqkoB,EAAYvvoB,EAAGhV,EAAGuhB,GAE1B,IAAIrB,EAAIm8mB,IAAQ,EAAI96mB,EAAExyB,QACtBmxB,EAAEu4mB,YAAY,EAAG,KACjBv4mB,EAAEu4mB,YAAY,EAAGz4nB,GACjBkgB,EAAEu4mB,YAAY,EAAGzjnB,GACjBkL,EAAEu4mB,YAAY,EAAG,IACjB,IAAI,IAAI3poB,EAAI,EAAGA,EAAIoxB,EAAEnxB,SAAUD,EAAG,CACjC,IAAIoqD,EAAK33B,EAAErR,WAAWphB,GACtBoxB,EAAEu4mB,YAAY,EAAGv/kB,GAAM,IAAO,GAAOA,EACtC,CAEA,OADAh5B,EAAEu4mB,YAAY,EAAG,GACVv4mB,CACR,CAOA,SAASskoB,EAAcxvoB,EAAGhV,EAAG8iB,GAC5B,IAAI5C,EAAIm8mB,IAAQ,GAKhB,OAJAn8mB,EAAEu4mB,YAAY,EAAG,KACjBv4mB,EAAEu4mB,YAAY,EAAGz4nB,GACjBkgB,EAAEu4mB,YAAY,EAAGzjnB,GACjBkL,EAAEu4mB,YAAY,EAAG31mB,EAAG,KACb5C,CACR,CAOA,SAASukoB,EAAazvoB,EAAGhV,EAAG8iB,GAC3B,IAAI5C,EAAIm8mB,IAAQ,IAKhB,OAJAn8mB,EAAEu4mB,YAAY,EAAG,KACjBv4mB,EAAEu4mB,YAAY,EAAGz4nB,GACjBkgB,EAAEu4mB,YAAY,EAAGzjnB,GACjBkL,EAAEu4mB,YAAY,EAAG31mB,EAAG,KACb5C,CACR,CAgBA,SAASwkoB,EAAat5oB,EAAGiD,EAAG0qB,GAC3B,IAAIgS,EAAU,MAAJ18B,EAGV,OADAA,GAAK08B,EAAM3/B,EAAI,KADfiD,IAAK,QACsB,KAAUA,EAAI,MAASA,IAC1C08B,EAAM,GAAK,MAAQhS,EAAMu0mB,IAAWj/nB,GAAKg/nB,IAAWh/nB,GAC7D,CAMA,IAAIs2oB,EAAU,CACb,GAAM,CAAC,QAAS,GAChB,GAAM,CAAC,OAAQ,GACf,GAAM,CAAC,MAAO,GACd,GAAM,CAAC,MAAO,IACd,GAAM,CAAC,WAAY,IACnB,GAAM,CAAC,SAAU,IACjB,GAAM,CAAC,OAAQ,IACf,GAAM,CAAC,OAAQ,IACf,IAAM,CAAC,IAAK,IAETC,EAAW,CACZ,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAC1C,GAAK,IAAM,IAAM,IAAM,IAAM,IAAM,IAAK,KAC1C,KAAM,KAAO,IAAM,IAAO,GAAM,GAAM,GAAM,GAC3C,IAAO,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,IAmE7C,SAASC,EAAajsB,GACrB,IAAI14mB,EAAI,CAAC,CAAClY,EAAE,EAAE9a,EAAE,GAAI,CAACo0B,EAAE,IAAIwB,EAAE,GAAI,GAEjC,OADA5C,EAAE,GAAGhzB,EAAI0roB,EAAKE,WAAW,GAAI54mB,EAAE,GAAK04mB,EAAKA,EAAKlpoB,KAAMwwB,EAAE,GAAGlY,EAAI4wnB,EAAKA,EAAKlpoB,KAChEwwB,CACR,CAQA,SAAS4koB,EAAe9voB,EAAGhV,EAAG+kpB,EAAOxjoB,GAEpC,IAAIrB,EAAIm8mB,IAAQ,EAAI96mB,EAAExyB,QACtBmxB,EAAEu4mB,YAAY,EAAGzjnB,GACjBkL,EAAEu4mB,YAAY,EAAGssB,GACjB7koB,EAAEu4mB,YAAY,EAAGz4nB,GACjBkgB,EAAEu4mB,YAAY,EAAG,IACjB,IAAI,IAAI3poB,EAAI,EAAGA,EAAIyyB,EAAExyB,SAAUD,EAAG,CACjC,IAAIoqD,EAAK33B,EAAErR,WAAWphB,GACtBoxB,EAAEu4mB,YAAY,EAAGv/kB,GAAM,IAAO,GAAOA,EACtC,CAEA,OADAh5B,EAAEu4mB,YAAY,EAAG,GACVv4mB,CACR,CAsBA,SAAS8koB,EAAgBpsB,EAAM7poB,GAC9B,IAAImxB,EAAI2koB,EAAajsB,GACjBl4D,EAAKk4D,EAAKE,WAAW,GACrBn4D,EAAKi4D,EAAKE,WAAW,GACrB19mB,EAAIw9mB,EAAKE,WAAW,GACxB,GAAQ,OAAL19mB,EAIF,OAHU,IAAPsljB,GAAmB,aAAPC,GAAqBzgjB,EAAE,GAAGoB,EAAI,IAAKpB,EAAE,GAAG4C,EAAI,IAC5C,IAAP49iB,GAAmB,aAAPC,GAAqBzgjB,EAAE,GAAGoB,EAAI,IAAKpB,EAAE,GAAG4C,EAAI,IAC3D5C,EAAE,GAAG4C,EAAI,EACP5C,EAER,IAAIqB,EAAQ,MAAJnG,EAER,OAFoBA,GAAO,MAAFA,GAAY,MACrC8E,EAAE,GAAG4C,GAAK,EAAM,EAAFvB,IAAQo/iB,EAAKvxkB,KAAKylH,IAAI,EAAGz5F,EAAE,IAAMsljB,EAAKtxkB,KAAKylH,IAAI,EAAGz5F,IACzD8E,CACR,CACA,SAAS+koB,EAAgBjwoB,EAAGhV,EAAG+kpB,EAAOjioB,GACrC,IAAI5C,EAAIm8mB,IAAQ,IAIhB,GAHAn8mB,EAAEu4mB,YAAY,EAAGzjnB,GACjBkL,EAAEu4mB,YAAY,EAAGssB,GACjB7koB,EAAEu4mB,YAAY,EAAGz4nB,GACT,GAAL8iB,EAIF,OAHA5C,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,OACVv4mB,EAER,IAAkBwgjB,EAAdn/iB,EAAI,EAAGnG,EAAI,EAAWuljB,EAAK,EAe/B,OAdG79iB,EAAI,IAAKvB,EAAI,EAAGuB,GAAKA,GACxB1H,EAAmB,EAAfhsB,KAAKg2kB,KAAKtijB,GAGQ,IAAf,YADP69iB,GADA79iB,GAAK1zB,KAAKylH,IAAI,EAAGz5F,EAAE,OACR,QACwBA,EAAGuljB,GAAX79iB,GAAG,KAAmB,GACjDA,GAAK69iB,EACLA,GAAM,WACNA,KAAQ,EAERD,GADA59iB,GAAK1zB,KAAKylH,IAAI,EAAG,OACR,EACT30F,EAAEu4mB,YAAY,EAAG/3D,GACjBxgjB,EAAEu4mB,YAAY,EAAG93D,GACjBvljB,GAAK,OAAUmG,EAAI,MAAS,GAC5BrB,EAAEu4mB,YAAY,EAAGr9mB,GACV8E,CACR,CAeA,SAASgloB,EAAgBtsB,EAAM7poB,GAC9B,IAAImxB,EAAI2koB,EAAajsB,GACjBl4D,EAAKk4D,EAAKE,WAAW,EAAE,KAE3B,OADA54mB,EAAE,GAAG4C,EAAI49iB,EACFxgjB,CACR,CAQA,SAASiloB,EAAkBvsB,EAAM7poB,GAChC,OAAoC,GAA7B6poB,EAAKA,EAAKlpoB,EAAIX,EAAS,GAAU6poB,EAAKE,WAAW/poB,EAAQ,QAAU,EAC3E,CAgCA,SAASq2pB,EAAwBvppB,EAAMkppB,GACtC,IAAIxif,EAAM85d,IAAQ,EAAIxgoB,EAAK9M,QAC3BwzK,EAAIk2d,YAAY,EAAG,MACnBl2d,EAAIk2d,YAAY,EAAGssB,GACnB,IAAI,IAAIj2pB,EAAI,EAAGA,EAAI+M,EAAK9M,SAAUD,EAAG,CACpC,IAAIoqD,EAAKr9C,EAAKqU,WAAWphB,GACzByzK,EAAIA,EAAI7yK,KAAOwpD,EAAK,IAAO,GAAOA,CACnC,CAEA,OADAqpH,EAAIA,EAAI7yK,KAAO,EACR6yK,CACR,CAEA,IAAIihf,EAAU,CACN,EAAe,CAAE3spB,EAAE,MAAOkG,EAAE67oB,KAC5B,EAAe,CAAE/hpB,EAAE,OACnB,EAAe,CAAEA,EAAE,YACnB,EAAe,CAAEA,EAAE,aACnB,EAAe,CAAEA,EAAE,SACnB,EAAe,CAAEA,EAAE,QACnB,EAAe,CAAEA,EAAE,QAASkG,EAzXpC,SAAqB67nB,EAAM7poB,EAAQijC,GAClC,IAAI9R,EAAI,CAACqB,EAAE,CAACvZ,EAAE,EAAE9a,EAAE,GAAGkuB,EAAE,CAACpT,EAAE,EAAE9a,EAAE,IAC9B,OAAa,GAAV6B,GAAeijC,EAAKgynB,MACtB9joB,EAAEqB,EAAEvZ,EAAI4wnB,EAAKE,WAAW,GACxBF,EAAKlpoB,IACLwwB,EAAEqB,EAAEr0B,EAAI0roB,EAAKE,WAAW,GACxB54mB,EAAE9E,EAAEpT,EAAI4wnB,EAAKE,WAAW,GACxBF,EAAKlpoB,IACLwwB,EAAE9E,EAAEluB,EAAI0roB,EAAKE,WAAW,GACjB54mB,IAERA,EAAEqB,EAAEvZ,EAAI4wnB,EAAKE,WAAW,GACxB54mB,EAAEqB,EAAEr0B,EAAI0roB,EAAKE,WAAW,GACX,IAAV/poB,GAAgBijC,EAAKgynB,OAAMprB,EAAKlpoB,GAAK,GACxCwwB,EAAE9E,EAAEpT,EAAI4wnB,EAAKE,WAAW,GACxB54mB,EAAE9E,EAAEluB,EAAI0roB,EAAKE,WAAW,GACX,IAAV/poB,GAAgBijC,EAAKgynB,OAAMprB,EAAKlpoB,GAAK,GAC5B,OAATwwB,EAAEqB,EAAEvZ,IAAakY,EAAEqB,EAAEvZ,EAAIkY,EAAE9E,EAAEpT,EAAIkY,EAAEqB,EAAEr0B,EAAIgzB,EAAE9E,EAAEluB,EAAI,GAC7CgzB,EACR,GAuWQ,EAAe,CAAErpB,EAAE,WACnB,EAAe,CAAEA,EAAE,SACnB,EAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,SACnB,GAAe,CAAEA,EAAE,QACnB,GAAe,CAAEA,EAAE,SACnB,GAAe,CAAEA,EAAE,UAAWkG,EAxTtC,SAAuB67nB,EAAM7poB,EAAQijC,GACpC,IAAI9R,EAAImkoB,EAAWzrB,EAAM7poB,EAAQijC,GAEjC,OADA9R,EAAE,GAAG4C,EAAI81mB,EAAKE,WAAW,EAAG,KACrB54mB,CACR,GAqTQ,GAAe,CAAErpB,EAAE,SAAUkG,EA3SrC,SAAsB67nB,EAAM7poB,EAAQijC,GACnC,IAAI9R,EAAImkoB,EAAWzrB,EAAM7poB,EAAQijC,GAEjC,OADA9R,EAAE,GAAG4C,EAAI81mB,EAAKE,WAAW,EAAG,KACrB54mB,CACR,GAwSQ,GAAe,CAAErpB,EAAE,QAASkG,EAAEunpB,GAC9B,GAAe,CAAEztpB,EAAE,UAAWkG,EA/RtC,SAAuB67nB,EAAM7poB,EAAQijC,GACpC,IAAIglb,EAAM4hL,EAAKlpoB,EAAIX,EACfmxB,EAAImkoB,EAAWzrB,EAAM7poB,EAAQijC,GAGjC,GADA9R,EAAE,GAAG4C,EAAI81mB,EAAKE,WAAW,EAAG,KACzB9mmB,EAAKgynB,KAAMprB,EAAKlpoB,EAAIsnd,MAClB,CACJ,IAAIxmS,EAAOood,EAAKE,WAAW,IAoC7B,SAAyBF,EAAM14mB,GAC9B24mB,IAAUD,EAAM,GAChB,IAAIr2d,EAAM,GAAI8if,EAAO,EAAGrwoB,EAAI,GAAIhV,EAAI,GAAIslpB,EAAO,GAAIC,EAAO,GAC1D,KAAM3sB,EAAKlpoB,EAAIkpoB,EAAK7poB,QAAQ,CAC3B,IAAImqD,EAAK0/kB,EAAKA,EAAKlpoB,KACnB,OAAOwpD,GACN,KAAK,EAAMqpH,EAAI9yK,KAAKmpoB,EAAKE,WAAW,EAAG,MAAO,MAC9C,KAAK,EACJ94nB,EAAI0kpB,EAAaxkoB,EAAE,GAAGlY,EAAG4wnB,EAAKE,WAAW,IAAI,GAC7C9jnB,EAAI0voB,EAAaxkoB,EAAE,GAAGhzB,EAAG0roB,EAAKE,WAAW,IAAI,GAC7Cv2d,EAAI9yK,KAAKuQ,EAAIgV,GACZ,MACF,KAAK,EACJ,IAAIhN,EAAI08oB,EAAaxkoB,EAAE,GAAGlY,EAAG4wnB,EAAKE,WAAW,IAAI,GAC7C5roB,EAAIw3pB,EAAaxkoB,EAAE,GAAGhzB,EAAG0roB,EAAKE,WAAW,IAAI,GACjD94nB,EAAI0kpB,EAAaxkoB,EAAE,GAAGlY,EAAG4wnB,EAAKE,WAAW,IAAI,GAC7C9jnB,EAAI0voB,EAAaxkoB,EAAE,GAAGhzB,EAAG0roB,EAAKE,WAAW,IAAI,GAC7Cv2d,EAAI9yK,KAAKuY,EAAI9a,EAAI,IAAM8S,EAAIgV,GAC1B,MACF,KAAK,EACJ,GAAG4jnB,EAAKlpoB,EAAIkpoB,EAAK7poB,OAAsD,YAA5Ci6B,QAAQvwB,MAAM,6BACzC,MACD,KAAK,EAAM8pK,EAAI9yK,KAAK,IAAM8yK,EAAIziF,MAAQ,KAAM,MAC5C,KAAK,EAAMyiF,EAAI9yK,KAAKmpoB,EAAKE,WAAW,IAAK,MACzC,KAAK,EAEQ,IAAZ,IAAI9zjB,EAAI,GAAW9rB,EAAK0/kB,EAAKA,EAAKlpoB,MAAOs1E,GAAKnwE,OAAOk0C,aAAamQ,GAClEqpH,EAAI9yK,KAAK,IAAMu1E,EAAE1jE,QAAQ,KAAM,MAAQ,KACtC,MAEF,KAAK,EAAMihK,EAAI9yK,KAAK,IAAM8yK,EAAIziF,OAAQ,MACtC,KAAK,GAAMyiF,EAAI9yK,KAAK,IAAM8yK,EAAIziF,OAAQ,MACtC,KAAK,GAAMyiF,EAAI9yK,KAAK,OAAS8yK,EAAIziF,MAAQ,KAAM,MAE/C,KAAK,GAAM,KAAK,GACfylkB,EAAOhjf,EAAIziF,MAAOwlkB,EAAO/if,EAAIziF,MAC7ByiF,EAAI9yK,KAAK,CAAC,MAAO,MAAMypD,EAAK,IAAQ,IAAMosmB,EAAO,IAAMC,EAAO,KAC7D,MAEF,QACC,GAAGrsmB,EAAK,IAAQ0rmB,EAAS1rmB,GACxBqsmB,EAAOhjf,EAAIziF,MAAOwlkB,EAAO/if,EAAIziF,MAC7ByiF,EAAI9yK,KAAK61pB,EAAOV,EAAS1rmB,GAAMqsmB,OACzB,KAAGZ,EAAQzrmB,GAQb,OAAGA,GAAM,EAAalwB,QAAQvwB,MAAM,sBAAwBygD,EAAGt9C,SAAS,KACrEs9C,GAAM,GAAalwB,QAAQvwB,MAAM,sBAAwBygD,EAAGt9C,SAAS,KACrEs9C,GAAM,GAAalwB,QAAQvwB,MAAM,sBAAwBygD,EAAGt9C,SAAS,KACrEs9C,GAAM,IAAalwB,QAAQvwB,MAAM,mCAAqCygD,EAAGt9C,SAAS,KAE9EotB,QAAQvwB,MAAM,2BAA6BygD,EAAGt9C,SAAS,KAVlE,GADW,KADXyppB,EAAOV,EAAQzrmB,GAAI,MACJmsmB,EAAOzsB,EAAKA,EAAKlpoB,MAC7B21pB,EAAO9if,EAAIxzK,OAAoG,YAA1Fi6B,QAAQvwB,MAAM,2BAA6BygD,EAAGt9C,SAAS,IAAM,KAAO2mK,EAAI1vK,KAAK,KAAO,KAC5G,IAAIklB,EAAOwqJ,EAAI3vK,OAAOyypB,GACtB9if,EAAIxzK,QAAUs2pB,EACd9if,EAAI9yK,KAAKk1pB,EAAQzrmB,GAAI,GAAK,IAAMnhC,EAAKllB,KAAK,KAAO,IAOqB,EAE1E,CACiB,GAAd0vK,EAAIxzK,OAAamxB,EAAE,GAAGnjB,EAAI,GAAKwlK,EAAI,GACjCv5I,QAAQvwB,MAAM,0BAA4B8pK,EAAI1vK,KAAK,KAAO,IAChE,CAhGE2ypB,CAAgB5sB,EAAKhmoB,MAAMgmoB,EAAKlpoB,EAAGkpoB,EAAKlpoB,EAAI8gL,GAAOtwJ,GACnD04mB,EAAKlpoB,GAAK8gL,CACX,CACA,OAAOtwJ,CACR,GAoRQ,GAAe,CAAErpB,EAAE,SACnB,GAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,WACnB,GAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,WACnB,GAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,SACnB,GAAe,CAAEA,EAAE,WACnB,GAAe,CAAEA,EAAE,YACnB,GAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,WACnB,GAAe,CAAEA,EAAE,SACnB,GAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,aACnB,GAAe,CAAEA,EAAE,eACnB,GAAe,CAAEA,EAAE,aACnB,GAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,SAAUkG,EAAEunpB,GAC/B,GAAe,CAAEztpB,EAAE,YACnB,GAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,SACnB,GAAe,CAAEA,EAAE,aACnB,GAAe,CAAEA,EAAE,SACnB,GAAe,CAAEA,EAAE,aACnB,GAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,aACnB,GAAe,CAAEA,EAAE,QACnB,GAAe,CAAEA,EAAE,YACnB,GAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,SACnB,GAAe,CAAEA,EAAE,SACnB,GAAe,CAAEA,EAAE,SACnB,GAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,SACnB,IAAe,CAAEA,EAAE,aACnB,IAAe,CAAEA,EAAE,aACnB,IAAe,CAAEA,EAAE,WACnB,IAAe,CAAEA,EAAE,aACnB,IAAe,CAAEA,EAAE,cAAekG,EAAEoopB,GACpC,IAAe,CAAEtupB,EAAE,cAAekG,EAzG1C,SAA2B67nB,EAAM7poB,GAChC,IAAIsjB,EAAMumnB,EAAKA,EAAKlpoB,KACjB2iB,EAAMtjB,EAAS,IAAGsjB,EAAMtjB,EAAS,GACxB,IAAZ,IAAImxB,EAAI,GAAUA,EAAEnxB,OAASsjB,GAAK6N,GAAKrrB,OAAOk0C,aAAa6vlB,EAAKA,EAAKlpoB,MACrE,OAAOwwB,CACR,GAqGQ,MAAe,CAAErpB,EAAE,KAGvBqtpB,EAAU,CACN,EAAe,CAAErtpB,EAAE,OACnB,EAAe,CAAEA,EAAE,OACnB,EAAe,CAAEA,EAAE,YACnB,EAAe,CAAEA,EAAE,WACnB,EAAe,CAAEA,EAAE,aACnB,EAAe,CAAEA,EAAE,gBACnB,EAAe,CAAEA,EAAE,eACnB,EAAe,CAAEA,EAAE,eACnB,EAAe,CAAEA,EAAE,gBACnB,EAAe,CAAEA,EAAE,aACnB,GAAe,CAAEA,EAAE,eACnB,GAAe,CAAEA,EAAE,aACnB,GAAe,CAAEA,EAAE,cACnB,GAAe,CAAEA,EAAE,YACnB,GAAe,CAAEA,EAAE,gBACnB,GAAe,CAAEA,EAAE,aACnB,GAAe,CAAEA,EAAE,eACnB,GAAe,CAAEA,EAAE,aACnB,GAAe,CAAEA,EAAE,eACnB,GAAe,CAAEA,EAAE,MACnB,GAAe,CAAEA,EAAE,WACnB,GAAe,CAAEA,EAAE,UACnB,GAAe,CAAEA,EAAE,UAAWkG,EAvPtC,SAAwB67nB,EAAM7poB,GAC7B,IAAImxB,EAAI2koB,EAAajsB,GAGrB,OAFA14mB,EAAE,GAAGoB,EAAI,IACTpB,EAAE,GAAG4C,EAAI81mB,EAAKE,WAAW/poB,EAAS,EAAG,QAC9BmxB,CACR,GAmPQ,GAAe,CAAErpB,EAAE,WAAYkG,EAAEiopB,GACjC,GAAe,CAAEnupB,EAAE,WAAYkG,EApOvC,SAAyB67nB,EAAM7poB,GAC9B,IAAImxB,EAAI2koB,EAAajsB,GACrB14mB,EAAE,GAAG4C,EAAI81mB,EAAKE,WAAW,GACzB,IAAIh2mB,EAAI5C,EAAE,GAAG4C,GAAK,EAClB,GAAY,EAAT5C,EAAE,GAAG4C,EACP,OAAW,EAAJA,GACN,KAAK,EAAGA,EAAe,KAAVA,GAAK,GAAW,MAC7B,KAAK,EAAGA,EAAe,KAAVA,GAAK,GAAU,MAC5B,KAAK,EAAGA,GAAKA,GAAK,GAAK,GAAI,MAC3B,KAAK,EAAGA,GAAKA,GAAK,GAAK,IAAK,MAC5B,KAAK,EAAGA,GAAKA,GAAK,GAAK,IAAM,MAC7B,KAAK,EAAGA,GAAKA,GAAK,GAAK,IAAO,MAC9B,KAAK,EAAGA,GAAKA,GAAK,GAAK,GAAI,MAC3B,KAAK,EAAGA,GAAKA,GAAK,GAAK,GAIzB,OADA5C,EAAE,GAAG4C,EAAIA,EACF5C,CACR,GAmNQ,GAAe,CAAErpB,EAAE,YAAakG,EArKxC,SAA0B67nB,EAAM7poB,GAC/B,IAAImxB,EAAI8koB,EAAgBpsB,GAExB,OADAA,EAAKlpoB,GAAKX,EAAS,GACZmxB,CACR,GAkKQ,GAAe,CAAErpB,EAAE,aACnB,GAAe,CAAEA,EAAE,UAAWkG,EAxHtC,SAAuB67nB,EAAM7poB,GAE5B,IADA,IAAImxB,EAAI,CAAC,EAAG82b,EAAM4hL,EAAKlpoB,EAAIX,EACrB6poB,EAAKlpoB,EAAIsnd,GAAK,CACnB,IAAIlpS,EAAK8qd,EAAKE,WAAW,GACzB,GAAS,MAANhrd,EAAc,CAGhB,IAFA5tJ,EAAE4tJ,GAAM,CAAC,EAAG,IACZ5tJ,EAAE4tJ,GAAI,GAAK8qd,EAAKE,WAAW,GACrBF,EAAKA,EAAKlpoB,IAAMwwB,EAAE4tJ,GAAI,IAAMj5K,OAAOk0C,aAAa6vlB,EAAKA,EAAKlpoB,IAAKkpoB,EAAKlpoB,IAAOkpoB,EAAKlpoB,GACvF,CAED,CACA,OAAOwwB,CACR,GA6GQ,GAAe,CAAErpB,EAAE,eACnB,GAAe,CAAEA,EAAE,eACnB,GAAe,CAAEA,EAAE,eACnB,GAAe,CAAEA,EAAE,OACnB,GAAe,CAAEA,EAAE,WACnB,GAAe,CAAEA,EAAE,SACnB,GAAe,CAAEA,EAAE,eACnB,GAAe,CAAEA,EAAE,MACnB,GAAe,CAAEA,EAAE,WAAYkG,EA1KvC,SAAyB67nB,EAAM7poB,GAC9B,IAAImxB,EAAI2koB,EAAajsB,GACjBl4D,EAAKk4D,EAAKE,WAAW,GAEzB,OADA54mB,EAAE,GAAG4C,EAAI49iB,GAAM,EACRxgjB,CACR,GAsKQ,GAAe,CAAErpB,EAAE,MACnB,GAAe,CAAEA,EAAE,WAAYkG,EAAEmopB,GACjC,GAAe,CAAErupB,EAAE,YAAakG,EA/JxC,SAA0B67nB,EAAM7poB,GAC/B,IAAImxB,EAAIgloB,EAAgBtsB,GAExB,OADAA,EAAKlpoB,GAAKX,EAAS,GACZmxB,CACR,GA4JQ,IAAe,CAAErpB,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,cAAekG,EAAEoopB,GACpC,IAAe,CAAEtupB,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,IAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,cAAekG,EAjN1C,SAA2B67nB,EAAM7poB,EAAQijC,GACxC,GAAIA,EAAKgynB,QAAQj1pB,EAAS,IAA1B,CACA,IAAIsiB,EAAKunnB,EAAKE,WAAW,GAKzB,OAJAF,EAAKlpoB,GAAK,GACVkpoB,EAAKlpoB,GAAK,EACVkpoB,EAAKlpoB,GAAK,EAEH,CAAC2hB,EADCunnB,EAAKE,WAAW/poB,EAAS,GAAI,QALF,CAOrC,GA0MQ,KAAe,CAAE8H,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,KAAe,CAAEA,EAAE,MACnB,MAAe,CAAEA,EAAE,MACnB,MAAe,CAAEA,EAAE,MACnB,MAAe,CAAEA,EAAE,MACnB,MAAe,CAAEA,EAAE,MACnB,MAAe,CAAEA,EAAE,KAE3B,MAAO,CACN4upB,aAlqBD,SAAsBh5f,EAAkBz6H,GACvC,IAAI9R,EAAI8R,GAAQ,CAAC,EAEjB,IADI9R,EAAEy7nB,UAAY,GAAG9rB,KAAQ3vmB,EAAEy7nB,UAClB,UAAVz7nB,EAAEtrB,KAAkB,MAAM,IAAItD,MAAM,iCACvC,IAAIq7D,EAAKy/kB,MACLnrnB,EAAQ6snB,IAAkBrhf,EAAG,SAC7Biif,EAAQjgpB,MAAMqR,QAAQ2sJ,GACtBqxU,EAAO,GAEX4nL,IAAe/4lB,EAAI,EAoEpB,SAAuB7pC,GACtB,IAAIy/I,EAAM85d,IAAQ,GAElB,OADA95d,EAAIk2d,YAAY,EAAG31mB,GACZy/I,CACR,CAxE0Bojf,CAAc,OACvCD,IAAe/4lB,EAAI,EAyHpB,SAAqB1rC,GACpB,IAAIshJ,EAAM85d,IAAQ,GAKlB,OAJA95d,EAAIk2d,YAAY,EAAGx3mB,EAAMM,EAAEvZ,GAC3Bu6J,EAAIk2d,YAAY,EAAGx3mB,EAAMM,EAAEr0B,GAC3Bq1K,EAAIk2d,YAAY,EAAGx3mB,EAAM7F,EAAEpT,GAC3Bu6J,EAAIk2d,YAAY,EAAGx3mB,EAAM7F,EAAEluB,GACpBq1K,CACR,CAhI0Bqjf,CAAY3koB,IAErC,IADA,IAAI4koB,EAAQz2pB,KAAKyhB,IAAIoQ,EAAM7F,EAAEluB,EAAG,MACxB8nB,EAAIiM,EAAMM,EAAEr0B,EAAG8nB,GAAK6woB,IAAS7woB,EAEpC,IADA,IAAIo4K,EAAKigd,IAAWr4nB,GACZhV,EAAIihB,EAAMM,EAAEvZ,EAAGhI,GAAKihB,EAAM7F,EAAEpT,IAAKhI,EAAG,CACxCgV,IAAMiM,EAAMM,EAAEr0B,IAAG4we,EAAK99d,GAAKstoB,IAAWttoB,IACzC,IAAImlC,EAAM24b,EAAK99d,GAAKotL,EAChBllK,EAAOwmnB,GAASjif,EAAGz3I,IAAI,IAAIhV,GAAKysJ,EAAGtnH,GACvC,GAAIjd,GAAkB,KAAVA,EAAK5G,EAEjB,GAAa,KAAV4G,EAAK5G,GACI,EAAP4G,EAAKpF,IAAMoF,EAAKpF,GAAKoF,EAAKpF,IAAM,OAASoF,EAAKpF,GAAK,MAAO4ioB,IAAe/4lB,EAAI,GAAM63lB,EAAcxvoB,EAAGhV,EAAGkoB,EAAKpF,IAC3G4ioB,IAAe/4lB,EAAI,GAAM83lB,EAAazvoB,EAAGhV,EAAGkoB,EAAKpF,SAGtD4ioB,IAAe/4lB,EAAI,GAAM43lB,EAAYvvoB,EAAGhV,EAD9BkuoB,IAAYhmnB,GACyBt1B,MAAM,EAAG,MAE1D,CAID,OADA8ypB,IAAe/4lB,EAAI,GACZA,EAAGj8C,KACX,EAmoBCo1oB,YAjoBD,SAAqBxvmB,EAAiBtkB,GACrC,IAAI9R,EAAI8R,GAAQ,CAAC,EAEjB,IADI9R,EAAEy7nB,UAAY,GAAG9rB,KAAQ3vmB,EAAEy7nB,UAClB,UAAVz7nB,EAAEtrB,KAAkB,MAAM,IAAItD,MAAM,iCACvC,IAAIq7D,EAAKy/kB,MAETsZ,IAAe/4lB,EAAI,EA2CpB,SAAuBrW,GACtB,IAAIisH,EAAM85d,IAAQ,IAClB95d,EAAIk2d,YAAY,EAAG,MACnBl2d,EAAIk2d,YAAY,EAAG,GACnBl2d,EAAIk2d,YAAY,EAAG,GAEnB,IADA,IAAInumB,EAAO,EAAGwzc,EAAO,EAAGioL,EAAQ,EACxBj3pB,EAAI,EAAGA,EAAIwnD,EAAGg4lB,WAAWv/oB,SAAUD,EAAG,CAC7C,IAAI+M,EAAOy6C,EAAGg4lB,WAAWx/oB,GACrB29J,EAAKn2G,EAAGi4lB,OAAO1yoB,GACnB,GAAI4wJ,GAAOA,EAAG,QAAd,GACEs5f,EACF,IAAI9koB,EAAQ2snB,IAAanhf,EAAG,SACzBniI,EAAOrJ,EAAM7F,EAAEluB,IAAGo9B,EAAOrJ,EAAM7F,EAAEluB,GACjC4we,EAAO78c,EAAM7F,EAAEpT,IAAG81d,EAAO78c,EAAM7F,EAAEpT,EAJL,CAKhC,CACGsiB,EAAO,OAAMA,EAAO,MAUvB,OATAi4I,EAAIk2d,YAAY,EAAGnumB,GACnBi4I,EAAIk2d,YAAY,EAAGstB,GACnBxjf,EAAIk2d,YAAY,EAAG36J,GACnBv7T,EAAIk2d,YAAY,EAAG,GACnBl2d,EAAIk2d,YAAY,EAAG,GACnBl2d,EAAIk2d,YAAY,EAAG,GACnBl2d,EAAIk2d,YAAY,EAAG,GACnBl2d,EAAIk2d,YAAY,EAAG,GACnBl2d,EAAIk2d,YAAY,EAAG,GACZl2d,CACR,CArE0Byjf,CAAc1vmB,IAEvC,IAAI,IAAIxnD,EAAI,EAAGwtoB,EAAM,EAAGxtoB,EAAIwnD,EAAGg4lB,WAAWv/oB,SAAUD,GAAOwnD,EAAGi4lB,OAAOj4lB,EAAGg4lB,WAAWx/oB,KAAO,CAAC,GAAG,SAAS42pB,IAAe/4lB,EAAI,GAAMy4lB,EAAwB9umB,EAAGg4lB,WAAWx/oB,GAAIwtoB,MAE1K,IAAIyoB,EAAQ,EACZ,IAAIj2pB,EAAI,EAAGA,EAAIwnD,EAAGg4lB,WAAWv/oB,SAAUD,EAAG,CACzC,IAAI29J,EAAKn2G,EAAGi4lB,OAAOj4lB,EAAGg4lB,WAAWx/oB,IACjC,GAAI29J,GAAOA,EAAG,QAAd,CAKA,IAJA,IAAIxrI,EAAQ6snB,IAAkBrhf,EAAG,SAC7Biif,EAAQjgpB,MAAMqR,QAAQ2sJ,GACtBqxU,EAAO,GACP+nL,EAAQz2pB,KAAKyhB,IAAIoQ,EAAM7F,EAAEluB,EAAG,MACxB8nB,EAAIiM,EAAMM,EAAEr0B,EAAG8nB,GAAK6woB,IAAS7woB,EAEpC,IADA,IAAIo4K,EAAKigd,IAAWr4nB,GACZhV,EAAIihB,EAAMM,EAAEvZ,EAAGhI,GAAKihB,EAAM7F,EAAEpT,IAAKhI,EAAG,CACxCgV,IAAMiM,EAAMM,EAAEr0B,IAAG4we,EAAK99d,GAAKstoB,IAAWttoB,IACzC,IAAImlC,EAAM24b,EAAK99d,GAAKotL,EAChBllK,EAAOwmnB,GAASjif,EAAGz3I,IAAI,IAAIhV,GAAKysJ,EAAGtnH,GACvC,GAAIjd,GAAkB,KAAVA,EAAK5G,EAEjB,GAAa,KAAV4G,EAAK5G,EACPokoB,IAAe/4lB,EAAI,GAAMs4lB,EAAgBjwoB,EAAGhV,EAAG+kpB,EAAO78nB,EAAKpF,SAI3D4ioB,IAAe/4lB,EAAI,GAAMm4lB,EAAe9voB,EAAGhV,EAAG+kpB,EAFpC7W,IAAYhmnB,GAEmCt1B,MAAM,EAAG,MAEpE,GAECmypB,CAtB6B,CAuBhC,CAGA,OADAW,IAAe/4lB,EAAI,GACZA,EAAGj8C,KACX,EA0lBCuroB,YApyBD,SAA2BznpB,EAAew9B,GACzC,OAAOA,EAAKp9B,MACX,IAAK,SAAU,OAAO6upB,EAAsB5yB,IAAIP,IAAc97nB,IAAKw9B,GACnE,IAAK,SAAU,OAAOyxnB,EAAsB5yB,IAAIr8nB,GAAIw9B,GACpD,IAAK,SACL,IAAK,QAAS,OAAOyxnB,EAAsBjvpB,EAAGw9B,GAE/C,KAAM,oBAAsBA,EAAKp9B,IAClC,EA8xBD,CAtzBwB,GA8gCxB,IAAIqxpB,IAAe,mBACnB,SAASC,IAAcC,EAAan0nB,GACnC,IAAIA,EAAKo0nB,QAAS,MAAO,GACzB,IAAIlmoB,EAAI,CAACgonB,KACThonB,EAAEA,EAAEnxB,QAAWs6oB,IAAU,MAAO,KAAM,CACrCn0gB,MAAOs0gB,IAAW,GAClB5nmB,MAAOuknB,EAAIE,MACXC,YAAaH,EAAII,SAElB,IAAI,IAAIz3pB,EAAI,EAAGA,GAAKq3pB,EAAIp3pB,SAAUD,EAAK,GAAa,MAAVq3pB,EAAIr3pB,GAAP,CACtC,IAAIyyB,EAAiB4koB,EAAIr3pB,GACrB03pB,EAAQ,OACTjloB,EAAEr0B,EAAGs5pB,GAASjloB,EAAEr0B,GAElBs5pB,GAAS,KACLjloB,EAAED,IAAGC,EAAED,EAAI,IACZC,EAAED,EAAE9a,MAAMy/oB,OAAeO,GAAS,yBACrCA,GAAS,IAAMje,IAAUhnnB,EAAED,GAAK,QAEjCkloB,GAAS,QACTtmoB,EAAEA,EAAEnxB,QAAWy3pB,CAXkD,CAclE,OADGtmoB,EAAEnxB,OAAO,IAAImxB,EAAEA,EAAEnxB,QAAW,SAAWmxB,EAAE,GAAGA,EAAE,GAAG5e,QAAQ,KAAK,MAC1D4e,EAAErtB,KAAK,GACf,CAuCA,IAAI4zpB,IAvoKJ,SAAuB7lnB,EAAkB1gB,GAExC,IAAIuvnB,GAAQ,EAGZ,OAH4B,MAALvvnB,IAAauvnB,GAAQ,EAAMvvnB,EAAIm8mB,IAAQ,GAAK,EAAIz7lB,EAAItf,EAAEvyB,SAC7EmxB,EAAEu4mB,YAAY,EAAG,GACjB+W,IAAmB5umB,EAAItf,EAAGpB,GACnBuvnB,EAAQvvnB,EAAEttB,MAAM,EAAGstB,EAAExwB,GAAKwwB,CAClC,EAmoKA,SAASwmoB,IAAcP,GACtB,IAAIx5lB,EAAKy/kB,MACTM,IAAa//kB,EAAI,IAXlB,SAA2Bw5lB,EAAKjmoB,GAI/B,OAHIA,IAAGA,EAAIm8mB,IAAQ,IACnBn8mB,EAAEu4mB,YAAY,EAAG0tB,EAAIE,OACrBnmoB,EAAEu4mB,YAAY,EAAG0tB,EAAII,QACdrmoB,CACR,CAM4CymoB,CAAkBR,IAC7D,IAAI,IAAIr3pB,EAAI,EAAGA,EAAIq3pB,EAAIp3pB,SAAUD,EAAG49oB,IAAa//kB,EAAI,GAAyB85lB,IAAiBN,EAAIr3pB,KAGnG,OADA49oB,IAAa//kB,EAAI,KACVA,EAAGj8C,KACX,CACA,SAASk2oB,IAAShmnB,GACjB,GAAuB,qBAAbovlB,IAA0B,OAAOA,IAAS1gR,MAAM7oK,OAAO+ob,IAAc5ulB,GAE/E,IADA,IAAI1gB,EAAsB,GAAIsrnB,EAAK5qmB,EAAI75B,MAAM,IACrCjY,EAAI,EAAGA,EAAI08oB,EAAGz8oB,SAAUD,EAAGoxB,EAAEpxB,GAAK08oB,EAAG18oB,GAAGohB,WAAW,GAC3D,OAAOgQ,CACR,CA0LA,SAAS2moB,IAAsC/kR,GAC9C,IAAuBglR,EAEeh4pB,EAFlCi4pB,EAAW,EACXC,EAAkBJ,IAAS9kR,GAC3BzvX,EAAM20oB,EAAgBj4pB,OAAS,EAInC,KAFA+3pB,EAAgBn2B,IAAYt+mB,IACd,GAAK20oB,EAAgBj4pB,OAC/BD,EAAI,EAAGA,GAAKujB,IAAOvjB,EAAGg4pB,EAAch4pB,GAAKk4pB,EAAgBl4pB,EAAE,GAC/D,IAAIA,EAAIujB,EAAI,EAAGvjB,GAAK,IAAKA,EAKxBi4pB,IAHyC,KAAZ,MAAXA,GAAiC,EAAI,GACtCA,GAAY,EAAK,OAFnBD,EAAch4pB,GAM9B,OAAkB,MAAXi4pB,CACR,CA6GA,IAAIE,IAAoB,WACvB,SAASC,EAAa1ypB,EAAew9B,GACpC,OAAOA,EAAKp9B,MACX,IAAK,SAAU,OAAOuypB,EAAiB72B,IAAc97nB,GAAIw9B,GACzD,IAAK,SAAU,OAAOm1nB,EAAiB3ypB,EAAGw9B,GAC1C,IAAK,SAAU,OAAOm1nB,EAAiB52B,KAAW33iB,OAAOvL,SAAS74E,GAAKA,EAAEoH,SAAS,UAAYm1nB,IAAIv8nB,GAAIw9B,GACtG,IAAK,QAAU,OAAOm1nB,EAAiB5f,IAAO/yoB,GAAIw9B,GAEnD,MAAM,IAAI1gC,MAAM,qBAAuB0gC,EAAKp9B,KAC7C,CAGA,SAASuypB,EAAiBvmnB,EAAgB5O,GACzC,IACIy6H,GADIz6H,GAAQ,CAAC,GACQ08mB,MAAS,GAAe,CAAC,EAE9CpknB,EAAOsW,EAAIp6B,MAAM,sBACrB,IAAI8jB,EAAKv7B,OAAQ,MAAM,IAAIuC,MAAM,qBACjC,IAAI2vB,EAAmB,CAACM,EAAG,CAACvZ,EAAE,EAAG9a,EAAE,GAAIkuB,EAAG,CAACpT,EAAE,EAAG9a,EAAEo9B,EAAKv7B,OAAS,IA0BhE,OAzBAu7B,EAAK57B,SAAQ,SAAS04pB,EAAOpyoB,GACzBvmB,MAAMqR,QAAQ2sJ,KAAKA,EAAGz3I,GAAK,IAK9B,IAJA,IAEIwb,EAFA62nB,EAAQ,WACRC,EAAa,EAEbtnpB,GAAK,EACFwwB,EAAM62nB,EAAMz/oB,KAAKw/oB,IAAS,CAChC,GACM,WADC52nB,EAAI,GACV,CACC,IAAIrmB,EAAOi9oB,EAAMx0pB,MAAM00pB,EAAYD,EAAMrnnB,UAAYxP,EAAI,GAAGzhC,QAG5D,GAFc,KAAXob,EAAK,KAAWA,EAAOA,EAAKvX,MAAM,MACnCoN,EACCmK,EAAKpb,OAAQ,CAEf,IAAIm5B,EAAO,CAACpF,EAAG3Y,EAAMmX,EAAE,KACpB7yB,MAAMqR,QAAQ2sJ,GAAKA,EAAGz3I,GAAGhV,GAAKkoB,EAC5BukI,EAAGygf,IAAY,CAAChgpB,EAAE8nB,EAAGhN,EAAEhI,KAAOkoB,CACpC,CACK,CAEPo/nB,EAAaD,EAAMrnnB,SACpB,CACGhgC,EAAIihB,EAAM7F,EAAEpT,IAAGiZ,EAAM7F,EAAEpT,EAAIhI,EAC/B,IACAysJ,EAAG,QAAUohf,IAAa5snB,GACnBwrI,CACR,CAyBA,MAAO,CACNwvf,YAxBD,SAAyBznpB,EAAew9B,GAAqB,OAAOo8mB,IAAkB8Y,EAAa1ypB,EAAGw9B,GAAOA,EAAO,EAyBnHkqnB,SAAUgL,EACV/K,WAvBD,SAAsB1vf,GAIrB,IAHA,IACuCvkI,EADnChI,EAAI,CAAC,iBACLhzB,EAAI4gpB,IAAkBrhf,EAAG,SACzBiif,EAAQjgpB,MAAMqR,QAAQ2sJ,GAClBz3I,EAAI9nB,EAAEq0B,EAAEr0B,EAAG8nB,GAAK9nB,EAAEkuB,EAAEluB,IAAK8nB,EAAG,CACnCkL,EAAEzwB,KAAK,uBACP,IAAI,IAAIuQ,EAAI9S,EAAEq0B,EAAEvZ,EAAGhI,GAAK9S,EAAEkuB,EAAEpT,IAAKhI,EAAGkgB,EAAEzwB,KAAK,WAAauQ,EAAE,IAE1D,IADAkgB,EAAEzwB,KAAK,iBACHuQ,EAAI9S,EAAEq0B,EAAEvZ,EAAGhI,GAAK9S,EAAEkuB,EAAEpT,IAAKhI,EAAG,CAC/B,IAAI6ulB,EAAQq+C,IAAY,CAAChgpB,EAAE8nB,EAAEhN,EAAEhI,KAC/BkoB,EAAOwmnB,GAASjif,EAAGz3I,IAAI,IAAIhV,GAAIysJ,EAAGoic,MACZ,MAAV3mkB,EAAKpF,GAAeoF,EAAKnrB,IAAKmrB,EAAKpnB,KAC/Cof,EAAEzwB,KAAK,KAAOy4B,EAAK9tB,IAAM8zoB,IAAYhmnB,GAAOA,EAAK9tB,KACjD8lB,EAAEzwB,KAAK,UACR,CACAywB,EAAEzwB,KAAK,qBACR,CACA,OAAOywB,EAAErtB,KAAK,IAAM,GACrB,EAOD,CA3EwB,GAgFxB,SAAS00pB,IAAQtriB,GAChB,IAAI,IAAIntH,EAAE,EAAEoxB,EAAE,EAAM,GAAHpxB,IAAQA,EAAGoxB,EAAM,IAAFA,GAAS+7F,EAAIntH,GAAG,IAAI,IAAImtH,EAAIntH,GAAG,EAAE,EAAEmtH,EAAIntH,IACvE,OAAOoxB,EAAEtkB,SAAS,IAAIklB,cAAcluB,MAAM,EAC3C,CA8CA,IAA4C40pB,IAA9B,EACd,SAASzG,IAASlxpB,GAAS,OAAOT,KAAKC,OAAQQ,EAAST,KAAK22B,MAAM,IAAIyhoB,KAAM,KAAOA,IAAO,CAC3F,SAASxG,IAAQ9upB,GAAM,OAAQ9C,KAAKC,OAAO6C,EAAK,GAAGs1pB,IAAM,IAAM,IAAM,GAAK,CAC1E,SAASC,IAAWn8oB,GAAO,OAAQlc,KAAK22B,OAAOza,EAAMk8oB,IAAM,GAAGA,IAAI,KAAM,GAAK,CAsB7E,SAAStH,IAAYwH,GACjBA,EAAK73pB,OACP63pB,EAAK5G,IAAMC,IAAS2G,EAAK73pB,OACzB63pB,EAAK3L,IAAMiF,IAAQ0G,EAAK5G,KACxB4G,EAAKF,IAAMA,KACFE,EAAK5G,KACd4G,EAAK3L,IAAMiF,IAAQ0G,EAAK5G,KACxB4G,EAAK73pB,MAAQ43pB,IAAWC,EAAK3L,KAC7B2L,EAAKF,IAAMA,KACiB,iBAAZE,EAAK3L,MACrB2L,EAAK73pB,MAAQ43pB,IAAWC,EAAK3L,KAC7B2L,EAAK5G,IAAMC,IAAS2G,EAAK73pB,OACzB63pB,EAAKF,IAAMA,KAETE,EAAKtmnB,oBAAoBsmnB,EAAKtmnB,WAClC,CAEA,IAAkBumnB,IAAJ,GACd,SAAS1G,IAAM/upB,GAAM,OAAY,GAALA,EAAUy1pB,GAAK,CAC3C,SAAStH,IAAMv+d,GAAM,OAAOA,EAAK6le,IAAM,EAAI,CAib3C,SAASC,IAActxmB,EAAiBtkB,GACvC,IAGK53B,EAHD8lB,EAAI,CAACgonB,IAAYmB,IAAU,aAAc,KAAM,CAClD,MAASG,IAAW,GACpB,WAAYD,OAab,OAXGjzlB,EAAGuxmB,KAAsC,OAA9BztpB,EAhIf,SAAuB0tpB,GACtB,IAAI5noB,EAAI,CAAC,aAIT,MAHA,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAO,GAAgB,MAAMxxB,SAAQ,SAASxB,GACpE,IAAI,IAAI4B,EAAI5B,EAAE,GAAI4B,GAAK5B,EAAE,KAAM4B,EAAe,MAATg5pB,EAAGh5pB,KAAYoxB,EAAEA,EAAEnxB,QAAWs6oB,IAAU,SAAS,KAAK,CAAC4E,SAASn/oB,EAAEi5pB,WAAWxf,IAAUuf,EAAGh5pB,MAChI,IACgB,IAAboxB,EAAEnxB,OAAqB,IAC1BmxB,EAAEA,EAAEnxB,QAAW,aACfmxB,EAAE,GAAKmpnB,IAAU,UAAW,KAAM,CAAEznmB,MAAM1hB,EAAEnxB,OAAO,IAAKuS,QAAQ,KAAM,KAC/D4e,EAAErtB,KAAK,IACf,CAuHmBm1pB,CAAc1xmB,EAAGuxmB,QAAe3noB,EAAEA,EAAEnxB,QAAUqL,GAChE8lB,EAAEA,EAAEnxB,QAAW,oIACfmxB,EAAEA,EAAEnxB,QAAW,2HACfmxB,EAAEA,EAAEnxB,QAAW,0FACfmxB,EAAEA,EAAEnxB,QAAW,gGACXqL,EAhEL,SAAuB6tpB,GACtB,IAAI/noB,EAAsB,GAM1B,OALAA,EAAEA,EAAEnxB,QAAWs6oB,IAAU,UAAU,MACnC4e,EAAQv5pB,SAAQ,SAASsZ,GACxBkY,EAAEA,EAAEnxB,QAAWs6oB,IAAU,KAAM,KAAMrhoB,EACtC,IACAkY,EAAEA,EAAEnxB,QAAW,aACC,IAAbmxB,EAAEnxB,OAAqB,IAC1BmxB,EAAE,GAAKmpnB,IAAU,UAAU,KAAM,CAACznmB,MAAM1hB,EAAEnxB,OAAO,IAAIuS,QAAQ,KAAK,KAC3D4e,EAAErtB,KAAK,IACf,CAsDSq1pB,CAAcl2nB,EAAKi2nB,YAAW/noB,EAAEA,EAAEnxB,QAAWqL,GACrD8lB,EAAEA,EAAEnxB,QAAW,uFACfmxB,EAAEA,EAAEnxB,QAAW,oBACfmxB,EAAEA,EAAEnxB,QAAW,uGAEZmxB,EAAEnxB,OAAO,IAAImxB,EAAEA,EAAEnxB,QAAW,gBAAkBmxB,EAAE,GAAGA,EAAE,GAAG5e,QAAQ,KAAK,MACjE4e,EAAErtB,KAAK,GACf,CAOA,SAASs1pB,IAAar5pB,EAAciO,EAAcmjB,GAC7CA,IAAGA,EAAIm8mB,IAAQ,EAAI,EAAIt/nB,EAAEhO,SAC7BmxB,EAAEu4mB,YAAY,EAAG3poB,GACjB0gpB,IAAmBzyoB,EAAGmjB,GACtB,IAAIqiJ,EAAOriJ,EAAEnxB,OAASmxB,EAAExwB,EAAKwwB,EAAEttB,MAAM,EAAGstB,EAAExwB,GAAKwwB,EAE/C,OADU,MAAPA,EAAExwB,IAAWwwB,EAAExwB,EAAIwwB,EAAEnxB,QACjBwzK,CACR,CA+CA,SAAS6lf,IAAc16nB,EAAcxN,GAChCA,IAAGA,EAAIm8mB,IAAQ,MACnBn8mB,EAAEu4mB,YAAY,EAAa,GAAV/qmB,EAAKwkL,IA55LvB,SAAyBxkL,EAAMxN,GACzBA,IAAGA,EAAIm8mB,IAAQ,IACpB,IAAIgsB,GACF36nB,EAAKwxK,OAAS,EAAO,IACrBxxK,EAAK46nB,OAAS,EAAO,IACrB56nB,EAAK21K,QAAU,GAAO,IACtB31K,EAAK++F,OAAS,GAAO,IACrB/+F,EAAK66nB,SAAW,GAAO,IACvB76nB,EAAKnH,OAAS,IAAO,GACvBrG,EAAEu4mB,YAAY,EAAG4vB,GACjBnooB,EAAEu4mB,YAAY,EAAG,EAElB,CAi5LC+vB,CAAgB96nB,EAAMxN,GACtBA,EAAEu4mB,YAAY,EAAG/qmB,EAAK+6nB,KAAO,IAAS,KACtC,IAAIC,EAAM,EACW,eAAlBh7nB,EAAKi7nB,UAA4BD,EAAM,EAChB,aAAlBh7nB,EAAKi7nB,YAA0BD,EAAM,GAC7CxooB,EAAEu4mB,YAAY,EAAGiwB,GACjBxooB,EAAEu4mB,YAAY,EAAG/qmB,EAAKy/a,WAAa,GACnCjtb,EAAEu4mB,YAAY,EAAG/qmB,EAAK0xK,QAAU,GAChCl/K,EAAEu4mB,YAAY,EAAG/qmB,EAAK2tK,SAAW,GACjCn7K,EAAEu4mB,YAAY,EAAG,GACjBiZ,IAAehknB,EAAKmB,MAAO3O,GAC3B,IAAI0ooB,EAAS,EAKb,MAJkB,SAAfl7nB,EAAKk7nB,SAAmBA,EAAS,GAClB,SAAfl7nB,EAAKk7nB,SAAmBA,EAAS,GACpC1ooB,EAAEu4mB,YAAY,EAAGmwB,GACjBpZ,IAAmB9hnB,EAAK7xB,KAAMqkB,GACvBA,EAAEnxB,OAASmxB,EAAExwB,EAAIwwB,EAAEttB,MAAM,EAAGstB,EAAExwB,GAAKwwB,CAC3C,CAGA,IAqBI2ooB,IArBAC,IAAkB,CACrB,OACA,QACA,aACA,WACA,YACA,iBACA,eACA,WACA,SACA,WACA,cACA,kBACA,gBACA,YACA,UACA,YACA,eACA,UACA,YAIGC,IAAgB5c,IACpB,SAAS6c,IAAcxvjB,EAAMt5E,GACxBA,IAAGA,EAAIm8mB,IAAQ,KACfwsB,MAAqBA,IAAuBliB,IAAMmiB,MACtD,IAAIG,EAAiBJ,IAAoBrvjB,EAAK0vjB,aACpC,MAAPD,IAAaA,EAAM,IACtB/ooB,EAAEu4mB,YAAY,EAAGwwB,GACjB,IAAIx9oB,EAAI,EACR,GAAU,IAAPw9oB,EAMF,IAJAvX,IAAe,CAAC9jhB,KAAK,GAAI1tG,GAEzBwxnB,IAAe,CAAC9jhB,KAAK,GAAI1tG,GAEnBzU,EAAI,KAAMA,EAAGyU,EAAEu4mB,YAAY,EAAG,OAC9B,CACN,KAAMhtnB,EAAI,IAAKA,EAAGyU,EAAEu4mB,YAAY,EAAG,GAEnC,KAAMhtnB,EAAI,KAAMA,EAAGyU,EAAEu4mB,YAAY,EAAG,EASrC,CACA,OAAOv4mB,EAAEnxB,OAASmxB,EAAExwB,EAAIwwB,EAAEttB,MAAM,EAAGstB,EAAExwB,GAAKwwB,CAC3C,CAUA,SAASipoB,IAAYh/oB,EAAMqwoB,EAAOt6nB,GAC7BA,IAAGA,EAAIm8mB,IAAQ,KACnBn8mB,EAAEu4mB,YAAY,EAAG+hB,GAAO,GACxBt6nB,EAAEu4mB,YAAY,EAAGtunB,EAAK8joB,UAAU,GAChC/tnB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GAMjB,OAJAv4mB,EAAEu4mB,YAAY,EADH,GAEXv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACVv4mB,CACR,CAGA,SAASkpoB,IAAWj/oB,EAAM+V,GAMzB,OALIA,IAAGA,EAAIm8mB,IAAQ,KACnBn8mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACVv4mB,CACR,CAEA,IAAImpoB,IAAkBld,IA2ItB,SAASmd,IAAkB38lB,GAC1B,IA3IgCzsC,EA8IhCwsnB,IAAa//kB,EAAI,IAA8B0ilB,IAHrC,IAIV3C,IAAa//kB,EAAI,IA9IbzsC,IAAGA,EAAIm8mB,IAAQ,KACnBn8mB,EAAEu4mB,YAAY,EAAG,GACjB2wB,IAAW,EAAMlpoB,GACjBkpoB,IAAW,EAAMlpoB,GACjBkpoB,IAAW,EAAMlpoB,GACjBkpoB,IAAW,EAAMlpoB,GACjBkpoB,IAAW,EAAMlpoB,GACVA,EAAEnxB,OAASmxB,EAAExwB,EAAIwwB,EAAEttB,MAAM,EAAGstB,EAAExwB,GAAKwwB,IAyI1CwsnB,IAAa//kB,EAAI,IAClB,CAsBA,SAAS48lB,IAAiB58lB,GACzB,IA7JuBz5D,EAAOgtB,EA+J9BwsnB,IAAa//kB,EAAI,IAA6B0ilB,IAFpC,IAGV3C,IAAa//kB,EAAI,IAhKMz5D,EAgKgC,CACtDs2pB,KAAK,EACLC,UAAU,EACV5tpB,KAAK,UAlKFqkB,IAAGA,EAAIm8mB,IAAQ,KACnBn8mB,EAAEu4mB,YAAY,EAAGvloB,EAAMs2pB,MACvBtpoB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,GAAIvloB,EAAMu2pB,WACxBvpoB,EAAEu4mB,YAAY,EAAG,GACjBkY,IAA2Bz9oB,EAAM2I,MAAQ,GAAIqkB,GACtCA,EAAEnxB,OAASmxB,EAAExwB,EAAIwwB,EAAEttB,MAAM,EAAGstB,EAAExwB,GAAKwwB,IA+J1CwsnB,IAAa//kB,EAAI,IAClB,CAUA,SAAS+8lB,IAAsB/8lB,GAG9B+/kB,IAAa//kB,EAAI,IAzKlB,SAAmC2vkB,EAAKqtB,EAAeC,GACtD,IAAI1poB,EAAIm8mB,IAAQ,MAIhB,OAHAn8mB,EAAEu4mB,YAAY,EAAG6D,GACjBqU,IAA2BgZ,EAAezpoB,GAC1CywnB,IAA2BiZ,EAAe1poB,GACnCA,EAAEnxB,OAASmxB,EAAExwB,EAAIwwB,EAAEttB,MAAM,EAAGstB,EAAExwB,GAAKwwB,CAC3C,CAmKoD2poB,CAFzC,EAEwE,oBAAqB,sBAEvGnd,IAAa//kB,EAAI,IAClB,CAQA,SAASm9lB,IAAcxzmB,EAAItkB,GAC1B,IAAI26B,EAAKy/kB,MAcT,OAbAM,IAAa//kB,EAAI,KA/GlB,SAAwBA,EAAIm7lB,GAC3B,GAAIA,EAAJ,CACA,IAAIxrB,EAAM,EACV,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAO,GAAgB,MAAM5toB,SAAQ,SAASxB,GAEpE,IAAI,IAAI4B,EAAI5B,EAAE,GAAI4B,GAAK5B,EAAE,KAAM4B,EAAe,MAATg5pB,EAAGh5pB,MAAcwtoB,CACvD,IAEU,GAAPA,IACHoQ,IAAa//kB,EAAI,IAA2B0ilB,IAAe/S,IAC3D,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAO,GAAgB,MAAM5toB,SAAQ,SAASxB,GAEpE,IAAI,IAAI4B,EAAI5B,EAAE,GAAI4B,GAAK5B,EAAE,KAAM4B,EAAe,MAATg5pB,EAAGh5pB,IAAY49oB,IAAa//kB,EAAI,GAAqBw7lB,IAAar5pB,EAAGg5pB,EAAGh5pB,IAC9G,IACA49oB,IAAa//kB,EAAI,KAbH,CAcf,CAiGCo9lB,CAAep9lB,EAAIrW,EAAGuxmB,KA/FvB,SAAyBl7lB,GAIxB+/kB,IAAa//kB,EAAI,IAA4B0ilB,IAHnC,IAIV3C,IAAa//kB,EAAI,GAAsBy7lB,IAAc,CACpDl2c,GAAG,GACHrjL,MAAO,CAACwH,MAAM,GACdx6B,KAAM,UACNujM,OAAQ,EACRwpd,OAAQ,WAGTlc,IAAa//kB,EAAI,IAClB,CAkFCq9lB,CAAgBr9lB,GAhFjB,SAAyBA,GAIxB+/kB,IAAa//kB,EAAI,IAA4B0ilB,IAHnC,IAIV3C,IAAa//kB,EAAI,GAAsBq8lB,IAAc,CAACE,YAAY,UAClExc,IAAa//kB,EAAI,GAAsBq8lB,IAAc,CAACE,YAAY,aAElExc,IAAa//kB,EAAI,IAClB,CAwECs9lB,CAAgBt9lB,GAChB28lB,IAAkB38lB,GA7DnB,SAAgCA,GAE/B+/kB,IAAa//kB,EAAI,IAAmC0ilB,IAD1C,IAEV3C,IAAa//kB,EAAI,GAAoBw8lB,IAAY,CAChDlb,SAAU,EACVic,OAAU,EACVC,OAAU,EACVC,SAAU,GACR,QAEH1d,IAAa//kB,EAAI,IAClB,CAmDC09lB,CAAuB19lB,GAjDxB,SAA2BA,EAAIxiD,GAC9BuioB,IAAa//kB,EAAI,IAA8B0ilB,IAAelloB,EAAKpb,SACnEob,EAAKzb,SAAQ,SAASsZ,GAAK0koB,IAAa//kB,EAAI,GAAoBw8lB,IAAYnhpB,EAAE,GAAK,IAEnF0koB,IAAa//kB,EAAI,IAClB,CA6CC29lB,CAAkB39lB,EAAI36B,EAAKi2nB,SAC3BsB,IAAiB58lB,GA/BlB,SAAwBA,GAGvB+/kB,IAAa//kB,EAAI,IAA2B0ilB,IAFlC,IAIV3C,IAAa//kB,EAAI,IAClB,CA0BC49lB,CAAe59lB,GACf+8lB,IAAsB/8lB,GAGtB+/kB,IAAa//kB,EAAI,KACVA,EAAGj8C,KACX,CA6GA,SAAS85oB,IAAYC,EAAQz4nB,GAC5B,GAAGA,GAAQA,EAAK04nB,UAAW,OAAO14nB,EAAK04nB,UACvC,GAAGD,GAA+B,iBAAdA,EAAOxxnB,IAAiB,OAAOwxnB,EAAOxxnB,IAC1D,IAAI/Y,EAAI,CAACgonB,KAsKT,OArKAhonB,EAAEA,EAAEnxB,QAAU,gGACdmxB,EAAEA,EAAEnxB,QAAW,oBAEfmxB,EAAEA,EAAEnxB,QAAY,8BAChBmxB,EAAEA,EAAEnxB,QAAa,+DACjBmxB,EAAEA,EAAEnxB,QAAa,2DACjBmxB,EAAEA,EAAEnxB,QAAa,2CACjBmxB,EAAEA,EAAEnxB,QAAa,2CACjBmxB,EAAEA,EAAEnxB,QAAa,mDACjBmxB,EAAEA,EAAEnxB,QAAa,mDACjBmxB,EAAEA,EAAEnxB,QAAa,mDACjBmxB,EAAEA,EAAEnxB,QAAa,mDACjBmxB,EAAEA,EAAEnxB,QAAa,mDACjBmxB,EAAEA,EAAEnxB,QAAa,mDACjBmxB,EAAEA,EAAEnxB,QAAa,+CACjBmxB,EAAEA,EAAEnxB,QAAa,qDACjBmxB,EAAEA,EAAEnxB,QAAY,iBAEhBmxB,EAAEA,EAAEnxB,QAAY,+BAChBmxB,EAAEA,EAAEnxB,QAAa,gBACjBmxB,EAAEA,EAAEnxB,QAAc,gCAClBmxB,EAAEA,EAAEnxB,QAAc,sBAClBmxB,EAAEA,EAAEnxB,QAAc,sBAClBmxB,EAAEA,EAAEnxB,QAAc,iFAClBmxB,EAAEA,EAAEnxB,QAAc,+DAClBmxB,EAAEA,EAAEnxB,QAAc,kDAClBmxB,EAAEA,EAAEnxB,QAAc,8DAClBmxB,EAAEA,EAAEnxB,QAAc,qDAClBmxB,EAAEA,EAAEnxB,QAAc,qDAClBmxB,EAAEA,EAAEnxB,QAAc,4CAClBmxB,EAAEA,EAAEnxB,QAAc,2CAClBmxB,EAAEA,EAAEnxB,QAAc,4CAClBmxB,EAAEA,EAAEnxB,QAAc,4CAClBmxB,EAAEA,EAAEnxB,QAAc,+CAClBmxB,EAAEA,EAAEnxB,QAAc,2CAClBmxB,EAAEA,EAAEnxB,QAAc,2CAClBmxB,EAAEA,EAAEnxB,QAAc,8CAClBmxB,EAAEA,EAAEnxB,QAAc,0DAClBmxB,EAAEA,EAAEnxB,QAAc,wDAClBmxB,EAAEA,EAAEnxB,QAAc,wDAClBmxB,EAAEA,EAAEnxB,QAAc,6CAClBmxB,EAAEA,EAAEnxB,QAAc,4CAClBmxB,EAAEA,EAAEnxB,QAAc,6CAClBmxB,EAAEA,EAAEnxB,QAAc,2CAClBmxB,EAAEA,EAAEnxB,QAAc,uDAClBmxB,EAAEA,EAAEnxB,QAAc,6CAClBmxB,EAAEA,EAAEnxB,QAAc,6CAClBmxB,EAAEA,EAAEnxB,QAAc,+CAClBmxB,EAAEA,EAAEnxB,QAAc,kDAClBmxB,EAAEA,EAAEnxB,QAAc,qDAClBmxB,EAAEA,EAAEnxB,QAAc,qDAClBmxB,EAAEA,EAAEnxB,QAAc,sDAClBmxB,EAAEA,EAAEnxB,QAAc,6CAClBmxB,EAAEA,EAAEnxB,QAAa,iBACjBmxB,EAAEA,EAAEnxB,QAAa,gBACjBmxB,EAAEA,EAAEnxB,QAAc,gCAClBmxB,EAAEA,EAAEnxB,QAAc,sBAClBmxB,EAAEA,EAAEnxB,QAAc,sBAClBmxB,EAAEA,EAAEnxB,QAAc,iFAClBmxB,EAAEA,EAAEnxB,QAAc,+DAClBmxB,EAAEA,EAAEnxB,QAAc,kDAClBmxB,EAAEA,EAAEnxB,QAAc,8DAClBmxB,EAAEA,EAAEnxB,QAAc,2CAClBmxB,EAAEA,EAAEnxB,QAAc,2CAClBmxB,EAAEA,EAAEnxB,QAAc,4CAClBmxB,EAAEA,EAAEnxB,QAAc,2CAClBmxB,EAAEA,EAAEnxB,QAAc,4CAClBmxB,EAAEA,EAAEnxB,QAAc,4CAClBmxB,EAAEA,EAAEnxB,QAAc,8CAClBmxB,EAAEA,EAAEnxB,QAAc,2CAClBmxB,EAAEA,EAAEnxB,QAAc,2CAClBmxB,EAAEA,EAAEnxB,QAAc,8CAClBmxB,EAAEA,EAAEnxB,QAAc,0DAClBmxB,EAAEA,EAAEnxB,QAAc,wDAClBmxB,EAAEA,EAAEnxB,QAAc,wDAClBmxB,EAAEA,EAAEnxB,QAAc,6CAClBmxB,EAAEA,EAAEnxB,QAAc,4CAClBmxB,EAAEA,EAAEnxB,QAAc,6CAClBmxB,EAAEA,EAAEnxB,QAAc,2CAClBmxB,EAAEA,EAAEnxB,QAAc,uDAClBmxB,EAAEA,EAAEnxB,QAAc,6CAClBmxB,EAAEA,EAAEnxB,QAAc,6CAClBmxB,EAAEA,EAAEnxB,QAAc,+CAClBmxB,EAAEA,EAAEnxB,QAAc,kDAClBmxB,EAAEA,EAAEnxB,QAAc,qDAClBmxB,EAAEA,EAAEnxB,QAAc,2CAClBmxB,EAAEA,EAAEnxB,QAAc,sDAClBmxB,EAAEA,EAAEnxB,QAAc,6CAClBmxB,EAAEA,EAAEnxB,QAAa,iBACjBmxB,EAAEA,EAAEnxB,QAAY,kBAEhBmxB,EAAEA,EAAEnxB,QAAY,8BAChBmxB,EAAEA,EAAEnxB,QAAa,mBACjBmxB,EAAEA,EAAEnxB,QAAc,wDAClBmxB,EAAEA,EAAEnxB,QAAc,gCAClBmxB,EAAEA,EAAEnxB,QAAe,YACnBmxB,EAAEA,EAAEnxB,QAAgB,4GACpBmxB,EAAEA,EAAEnxB,QAAgB,gHACpBmxB,EAAEA,EAAEnxB,QAAgB,iHACpBmxB,EAAEA,EAAEnxB,QAAe,aACnBmxB,EAAEA,EAAEnxB,QAAe,qCACnBmxB,EAAEA,EAAEnxB,QAAc,gBAClBmxB,EAAEA,EAAEnxB,QAAc,gCAClBmxB,EAAEA,EAAEnxB,QAAe,YACnBmxB,EAAEA,EAAEnxB,QAAgB,oIACpBmxB,EAAEA,EAAEnxB,QAAgB,wIACpBmxB,EAAEA,EAAEnxB,QAAe,aACnBmxB,EAAEA,EAAEnxB,QAAe,qCACnBmxB,EAAEA,EAAEnxB,QAAc,gBAClBmxB,EAAEA,EAAEnxB,QAAa,oBACjBmxB,EAAEA,EAAEnxB,QAAa,iBACjBmxB,EAAEA,EAAEnxB,QAAc,mMAClBmxB,EAAEA,EAAEnxB,QAAc,yIAClBmxB,EAAEA,EAAEnxB,QAAc,yIAClBmxB,EAAEA,EAAEnxB,QAAa,kBACjBmxB,EAAEA,EAAEnxB,QAAa,qBACjBmxB,EAAEA,EAAEnxB,QAAc,kBAClBmxB,EAAEA,EAAEnxB,QAAe,gBACnBmxB,EAAEA,EAAEnxB,QAAgB,oJACpBmxB,EAAEA,EAAEnxB,QAAe,iBACnBmxB,EAAEA,EAAEnxB,QAAc,mBAClBmxB,EAAEA,EAAEnxB,QAAc,kBAClBmxB,EAAEA,EAAEnxB,QAAe,gBACnBmxB,EAAEA,EAAEnxB,QAAgB,oJACpBmxB,EAAEA,EAAEnxB,QAAe,iBACnBmxB,EAAEA,EAAEnxB,QAAc,mBAClBmxB,EAAEA,EAAEnxB,QAAc,kBAClBmxB,EAAEA,EAAEnxB,QAAe,gBACnBmxB,EAAEA,EAAEnxB,QAAgB,oJACpBmxB,EAAEA,EAAEnxB,QAAe,iBACnBmxB,EAAEA,EAAEnxB,QAAe,6LACnBmxB,EAAEA,EAAEnxB,QAAe,mDACnBmxB,EAAEA,EAAEnxB,QAAc,mBAClBmxB,EAAEA,EAAEnxB,QAAa,sBACjBmxB,EAAEA,EAAEnxB,QAAa,qBACjBmxB,EAAEA,EAAEnxB,QAAc,wDAClBmxB,EAAEA,EAAEnxB,QAAc,gCAClBmxB,EAAEA,EAAEnxB,QAAe,YACnBmxB,EAAEA,EAAEnxB,QAAgB,4GACpBmxB,EAAEA,EAAEnxB,QAAgB,sIACpBmxB,EAAEA,EAAEnxB,QAAgB,kHACpBmxB,EAAEA,EAAEnxB,QAAe,aACnBmxB,EAAEA,EAAEnxB,QAAe,2FACnBmxB,EAAEA,EAAEnxB,QAAc,gBAClBmxB,EAAEA,EAAEnxB,QAAc,gCAClBmxB,EAAEA,EAAEnxB,QAAe,YACnBmxB,EAAEA,EAAEnxB,QAAgB,4GACpBmxB,EAAEA,EAAEnxB,QAAgB,kHACpBmxB,EAAEA,EAAEnxB,QAAe,aACnBmxB,EAAEA,EAAEnxB,QAAe,yFACnBmxB,EAAEA,EAAEnxB,QAAc,gBAClBmxB,EAAEA,EAAEnxB,QAAa,sBACjBmxB,EAAEA,EAAEnxB,QAAY,iBAChBmxB,EAAEA,EAAEnxB,QAAW,qBAEfmxB,EAAEA,EAAEnxB,QAAW,qBACfmxB,EAAEA,EAAEnxB,QAAY,YAChBmxB,EAAEA,EAAEnxB,QAAa,mSACjBmxB,EAAEA,EAAEnxB,QAAY,aAChBmxB,EAAEA,EAAEnxB,QAAY,YAChBmxB,EAAEA,EAAEnxB,QAAa,mSACjBmxB,EAAEA,EAAEnxB,QAAY,aAChBmxB,EAAEA,EAAEnxB,QAAW,sBACfmxB,EAAEA,EAAEnxB,QAAW,yBACfmxB,EAAEA,EAAEnxB,QAAU,aACPmxB,EAAErtB,KAAK,GACf,CAmLA,SAAS83pB,MACP,IAAIh+lB,EAAKy/kB,MAqBT,OApBAM,IAAa//kB,EAAI,KACjB+/kB,IAAa//kB,EAAI,IAAK0ilB,IAAe,IACrC3C,IAAa//kB,EAAI,IApFnB,SAA0BxiD,GACxB,IAAI+V,EAAIm8mB,IAAQ,GAAK,EAAIlynB,EAAKtO,KAAK9M,QAInC,OAHAmxB,EAAEu4mB,YAAY,EAAGtunB,EAAKuK,OACtBwL,EAAEu4mB,YAAY,EAAGtunB,EAAK1D,SACtB+ooB,IAAmBrloB,EAAKtO,KAAMqkB,GACvBA,EAAEttB,MAAM,EAAGstB,EAAExwB,EACtB,CA8EwBk7pB,CAAiB,CACrC/upB,KAAM,SACN4K,QAAS,KACTiO,MAAO,cAETg4nB,IAAa//kB,EAAI,KACjB+/kB,IAAa//kB,EAAI,IAnEnB,SAA6B2vkB,EAAKzgoB,GAChC,IAAIqkB,EAAIm8mB,IAAQ,EAAI,EAAIxgoB,EAAK9M,QAG7B,OAFAmxB,EAAEu4mB,YAAY,EAAG6D,GACjBkT,IAAmB3zoB,EAAMqkB,GAClBA,EAAEttB,MAAM,EAAGstB,EAAExwB,EACtB,CA8DwBm7pB,CAAoB,EAAG,WAC7Cne,IAAa//kB,EAAI,IACjB+/kB,IAAa//kB,EAAI,GAAI0ilB,IAAe,MACpC3C,IAAa//kB,EAAI,KAAM0ilB,IAAe,IACtC3C,IAAa//kB,EAAI,KAAMkslB,IAAY,IACnCnM,IAAa//kB,EAAI,IACjB+/kB,IAAa//kB,EAAI,IACjB+/kB,IAAa//kB,EAAI,KACjB+/kB,IAAa//kB,EAAI,IAjEnB,SAA6B2vkB,EAAKvjE,GAChC,IAAI74iB,EAAIm8mB,IAAQ,GAGhB,OAFAn8mB,EAAEu4mB,YAAY,EAAG6D,GACjBp8mB,EAAEu4mB,YAAY,EAAG1/D,EAAK,EAAI,GACnB74iB,CACT,CA4DwB4qoB,CAAoB,GAAG,IAC7Cpe,IAAa//kB,EAAI,GArFnB,SAAsBojH,GACpB,IAAI7vJ,EAAIm8mB,IAAQ,EAAI,EAAItsd,EAAIhhL,QAC5BmxB,EAAEu4mB,YAAY,EAAG1od,EAAIhhL,QACrB,IAAK,IAAID,EAAI,EAAGA,EAAIihL,EAAIhhL,SAAUD,EAChCoxB,EAAEu4mB,YAAY,EAAG1od,EAAIjhL,GAAG,IACxBoxB,EAAEu4mB,YAAY,EAAG1od,EAAIjhL,GAAG,IAE1B,OAAOoxB,CACT,CA6EuB6qoB,CAAa,CAAC,CAAC,EAAG,MACvCre,IAAa//kB,EAAI,KACjB+/kB,IAAa//kB,EAAI,KACVA,EAAGj8C,KACZ,CAiFA,SAASs6oB,MACP,IAAI9qoB,EAAI,CAACgonB,KAET,OADAhonB,EAAEzwB,KAAK,q2BACAywB,EAAErtB,KAAK,GAChB,CA4HA,IAAIo4pB,IAAW,KACf,SAASC,IAAmB7V,EAAgB3C,GAY3C,IAXA,IAAIyY,EAAQ,CAAC,MAAO,OAEhB90c,EAAO,CAAC,SAAS80c,EAAM,GAAGA,EAAM,GAAGA,EAAM,GAAGA,EAAM,GAAG,OAAOt4pB,KAAK,KACjEqtB,EAAI,CACPmpnB,IAAU,MAAO,KAAM,CAAE,UAAWI,IAAU,UAAWA,IAAU,UAAWA,IAAU,WAAYA,MAAanooB,QAAQ,MAAM,KAC/H+noB,IAAU,gBAAiBA,IAAU,UAAW,KAAM,CAAC,QAAQ,OAAQ,KAAOgM,IAAO,CAAC,QAAQ,SAC9FhM,IAAU,cAAe,CACxBA,IAAU,WAAY,KAAM,CAAC+hB,UAAU,UACvC/hB,IAAU,SAAU,KAAM,CAACgiB,gBAAgB,IAAK,gBAAgB,UAC/Dx4pB,KAAK,IAAK,CAACwe,GAAG,cAAe,QAAQ,IAAKi6oB,UAAUH,EAAMt4pB,KAAK,KAAKuR,KAAKiyM,KAEtE40c,IAAiB,IAAN5V,GAAY4V,KAAY,IAqCzC,OAnCAvY,EAAShkpB,SAAQ,SAAS6pB,GAC1B,IAAIvQ,EAAI2loB,IAAYp1nB,EAAE,IAClBgzoB,EAAkB,CAAC,OAAS,UAAW,KAAO,YAC9B,YAAjBA,EAAS32pB,OAAoB22pB,EAASzwiB,MAAQ,QACjD,IAAI0wiB,EAA4B,YAAjBD,EAAS32pB,KAAqBy0oB,IAAU,SAAU,KAAM,CAACz0oB,KAAK,mBAAoB,QAAQ,SAAW,KAChH62pB,EAAUpiB,IAAU,SAAUmiB,EAAUD,KAG1CN,IAEF/qoB,EAAIA,EAAE9tB,OAAO,CACb,WAAag3oB,IAAW,CACvB/3nB,GAAG,WAAa45oB,IAChBr2pB,KAAK,eACL1B,MAAM,yFAA2FqlB,EAAE,GAAGse,OAAS,qBAAuB,IACtI60nB,UAAU,UACVC,YAAY,YACR,IACJF,EACApiB,IAAU,WAAY,KAZR,CAACjge,GAAG,IAAK,SAAW,MAalCige,IAAU,SAAU,KAAM,CAAC,gBAAgB,SAC3C,6DACA,mCACC,qBACA,qBAEAF,IAAS,WAAY,CAACnhoB,EAAEA,EAAE,EAAG,EAAGA,EAAE9a,EAAE,EAAG,EAAG8a,EAAEA,EAAE,EAAG,GAAIA,EAAE9a,EAAE,EAAG,IAAI2F,KAAK,MACrEs2oB,IAAS,aAAc,SACvBA,IAAS,QAASt0oB,OAAOmT,EAAE9a,IAC3Bi8oB,IAAS,WAAYt0oB,OAAOmT,EAAEA,IAC9BuQ,EAAE,GAAGse,OAAS,GAAK,eACpB,kBACD,cACI,IACJ3W,EAAEzwB,KAAK,UACAywB,EAAErtB,KAAK,GACf,CAuEA,SAAS+4pB,IAAmBzhpB,GAC3B,IAAI+V,EAAI,CAACgonB,IAAYmB,IAAU,WAAY,KAAM,CAAE,MAASG,IAAW,MAEnEqiB,EAA4B,GAmChC,OAlCA3roB,EAAEzwB,KAAK,aACP0a,EAAKzb,SAAQ,SAAS6pB,GAAKA,EAAE,GAAG7pB,SAAQ,SAAS0L,GAAK,IAAI0N,EAAIygoB,IAAUnuoB,EAAE0N,IAC/C,GAAvB+jpB,EAAQv5pB,QAAQwV,KAClB+jpB,EAAQp8pB,KAAKqY,GACboY,EAAEzwB,KAAK,WAAaqY,EAAI,cAEtB1N,EAAEmR,GAAKnR,EAAEmzG,KAAwC,GAAlCs+iB,EAAQv5pB,QAAQ,MAAQ8H,EAAEmzG,MAC3Cs+iB,EAAQp8pB,KAAK,MAAQ2K,EAAEmzG,IACvBrtF,EAAEzwB,KAAK,cAAqB2K,EAAEmzG,GAAK,aAErC,GAAI,IACiB,GAAlBs+iB,EAAQ98pB,SAAe88pB,EAAQp8pB,KAAK,WAAYywB,EAAEzwB,KAAK,6BAC1DywB,EAAEzwB,KAAK,cACPywB,EAAEzwB,KAAK,iBACP0a,EAAKzb,SAAQ,SAAS8F,GAErB,IAAIs3pB,EAAa,EAAGv5c,EAAK,GAOzB,GANG/9M,EAAE,GAAG,IAAMA,EAAE,GAAG,GAAG+W,GAAK/W,EAAE,GAAG,GAAG+4G,GAAIu+iB,EAAaD,EAAQv5pB,QAAQ,MAAQkC,EAAE,GAAG,GAAG+4G,IAC/E/4G,EAAE,GAAG9F,SAAQ,SAASsZ,GACvBA,EAAEF,IAAGgkpB,EAAaD,EAAQv5pB,QAAQi2oB,IAAUvgoB,EAAEF,KACjDyqM,EAAG9iN,KAAKuY,EAAEsZ,GAAG,GACd,IACApB,EAAEzwB,KAAK,iBAAmB+E,EAAE,GAAK,eAAiBs3pB,EAAa,YAC5Dv5c,EAAGxjN,QAAU,EAAGmxB,EAAEzwB,KAAK05oB,IAAS,IAAKZ,IAAUh2b,EAAG,IAAI,UACpD,CAGJ,IADA,IAAIjxL,EAAI,iBAAoBixL,EAAG,GAAM,KAC7BzjN,EAAI,EAAGA,EAAIyjN,EAAGxjN,SAAUD,EAAGwyB,GAAK,eAAiBixL,EAAGzjN,GAAK,KACjEoxB,EAAEzwB,KAAK05oB,IAAS,IAAKZ,IAAUjnnB,IAChC,CACApB,EAAEzwB,KAAK,oBACR,IACAywB,EAAEzwB,KAAK,kBACJywB,EAAEnxB,OAAO,IAAKmxB,EAAEA,EAAEnxB,QAAW,cAAgBmxB,EAAE,GAAGA,EAAE,GAAG5e,QAAQ,KAAK,MAChE4e,EAAErtB,KAAK,GACf,CAyCA,SAASk5pB,IAAgBrZ,EAAUsZ,EAAQh6nB,GAC1C,IAAI9R,EAAI,CAACgonB,IAAYmB,IAAU,mBAAoB,KAAM,CAAE,MAASE,MAAejooB,QAAQ,QAAS,MAkBpG,OAjBAoxoB,EAAShkpB,SAAQ,SAASu9pB,GACzB,IAAIC,EAAS,IACZD,EAAK,IAAM,IAAIv9pB,SAAQ,SAASsZ,EAAG2kN,GACnC,GAAI3kN,EAAEuD,EAAN,CACGvD,EAAEF,IAA6B,GAAxBkkpB,EAAO15pB,QAAQ0V,EAAEF,IAAUkkpB,EAAOv8pB,KAAKuY,EAAEF,GACnD,IAAIqkpB,EAAS,CACZhnnB,IAAK8mnB,EAAK,GACV56oB,GAAI,6BAA+B,eAAiB2gB,EAAKo6nB,QAAQx5pB,OAAO,IAAM,KAErE,GAAP+5N,EAAUu/b,EAASC,EAAO96oB,GACxB86oB,EAAOE,SAAWH,EACvBlkpB,EAAEulG,GAAK4+iB,EAAO96oB,GACXrJ,EAAEF,IAAGqkpB,EAAOG,SAAW,6BAA+B,eAAiBN,EAAO15pB,QAAQ0V,EAAEF,IAAIlV,OAAO,IAAM,KAC5GstB,EAAEzwB,KAAK45oB,IAAU,kBAAmBF,IAAS,OAAQnhoB,EAAEsZ,GAAG,IAAK6qoB,GAV/B,aAAdnkpB,EAAEulG,EAWrB,GACD,IACArtF,EAAEzwB,KAAK,uBACAywB,EAAErtB,KAAK,GACf,CAqEA,IAAI05pB,IAAyBjd,IA2C7B,SAASkd,IAAmBripB,GAC3B,IAAIwiD,EAAKy/kB,MACLyf,EAA4B,GA2BhC,OA1BAnf,IAAa//kB,EAAI,KAEjB+/kB,IAAa//kB,EAAI,KACjBxiD,EAAKzb,SAAQ,SAASiiM,GACrBA,EAAQ,GAAGjiM,SAAQ,SAASsZ,GACxB6jpB,EAAQv5pB,QAAQ0V,EAAEF,IAAM,IAC3B+jpB,EAAQp8pB,KAAKuY,EAAEF,EAAElV,MAAM,EAAE,KACzB85oB,IAAa//kB,EAAI,IApDpB,SAAgCxiD,GAAQ,OAAOqloB,IAAmBrloB,EAAKvX,MAAM,EAAG,IAAM,CAoDnC65pB,CAAuBzkpB,EAAEF,IAC1E,GACD,IACA4koB,IAAa//kB,EAAI,KAEjB+/kB,IAAa//kB,EAAI,KACjBxiD,EAAKzb,SAAQ,SAASiiM,GACrBA,EAAQ,GAAGjiM,SAAQ,SAASsZ,GAC3BA,EAAE6jpB,QAAUA,EAAQv5pB,QAAQ0V,EAAEF,GAC9B,IAAImZ,EAAQ,CAACM,EAAEosnB,IAAYh9c,EAAQ,IAAIv1K,EAAEuynB,IAAYh9c,EAAQ,KAC7D+7c,IAAa//kB,EAAI,IA3EpB,SAA+BxiD,EAAM+V,GAQpC,OAPQ,MAALA,IAAWA,EAAIm8mB,IAAQ,KAC1Bn8mB,EAAEu4mB,YAAY,EAAGtunB,EAAK,GAAG0hpB,SACzBta,IAAoBpnoB,EAAK,GAAa+V,GACtCA,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACVv4mB,CACR,CAkEkDwsoB,CAAsB,CAACzroB,EAAOjZ,KAC1EA,EAAEsZ,GAAKtZ,EAAEsZ,EAAEvyB,OAAS,GAAG29oB,IAAa//kB,EAAI,IAA6BsjlB,IAAqBjooB,IAC7F0koB,IAAa//kB,EAAI,YACV3kD,EAAE6jpB,OACV,GACD,IACAnf,IAAa//kB,EAAI,KAEjB+/kB,IAAa//kB,EAAI,KACVA,EAAGj8C,KACX,CAqBA,IAAIi8oB,IAAU,CAAC,OAAQ,OAAQ,OAAQ,QAAS,OAOhD,IAAI7M,IAAyB,WAC5B,IAAI8M,EAAU,gFACVC,EAAmB,CAAC3/pB,EAAE,EAAE8a,EAAE,GAC9B,SAAS8kpB,EAAO94B,EAAGC,EAAGC,EAAGC,GACxB,IAAI0Y,GAAO,EAAOC,GAAO,EAET,GAAb5Y,EAAGnloB,OAAa+9oB,GAAO,EACF,KAAhB5Y,EAAG/jnB,OAAO,KAAa28nB,GAAO,EAAM5Y,EAAKA,EAAGthoB,MAAM,GAAI,IAE9C,GAAbuhoB,EAAGploB,OAAa89oB,GAAO,EACF,KAAhB1Y,EAAGhknB,OAAO,KAAa08nB,GAAO,EAAM1Y,EAAKA,EAAGvhoB,MAAM,GAAI,IAE9D,IAAIoiB,EAAIk/mB,EAAGnloB,OAAO,EAAkB,EAAhBulB,SAAS4/mB,EAAG,IAAM,EAAGl0nB,EAAIm0nB,EAAGploB,OAAO,EAAkB,EAAhBulB,SAAS6/mB,EAAG,IAAM,EAI3E,OAFG0Y,EAAM7soB,GAAK6spB,EAAO7kpB,IAAUhI,EAC5B8soB,EAAM93nB,GAAK63oB,EAAO3/pB,IAAU8nB,EACxBi/mB,GAAM4Y,EAAO,GAAK,KAAOS,IAAWttoB,IAAM8soB,EAAO,GAAK,KAAOO,IAAWr4nB,EAChF,CACA,OAAO,SAAkB+3oB,EAAiBr3mB,GAEzC,OADAm3mB,EAASn3mB,EACFq3mB,EAAKzrpB,QAAQsrpB,EAASE,EAC9B,CACD,CAtB6B,GAwBzBE,IAAY,iLACZtM,IAAyB,WAC5B,OAAO,SAAkBqM,EAAiBr3mB,GACzC,OAAOq3mB,EAAKzrpB,QAAQ0rpB,KAAW,SAASC,EAAIh5B,EAAIC,EAAIC,EAAI+4B,EAAIC,GAC3D,IAAInlpB,EAAIyloB,IAAWtZ,IAAOD,EAAK,EAAIx+kB,EAAK1tC,GACpC9a,EAAIqgpB,IAAW4f,IAAOD,EAAK,EAAIx3mB,EAAKxoD,GAGxC,OAAO+moB,EAAK,KAFE,GAAL/moB,EAAS,GAAMggqB,EAAsBhgqB,EAAE,EAAnB,IAAMA,EAAI,KAEjB,KADR,GAAL8a,EAAS,GAAMksnB,EAAsBlsnB,EAAE,EAAnB,IAAMA,EAAI,IAExC,GACD,CACD,CAV6B,GAa7B,SAASg4oB,IAAkBjjpB,EAAc26G,GACxC,OAAO36G,EAAEuE,QAAQ0rpB,KAAW,SAASC,EAAIh5B,EAAIC,EAAIC,EAAI+4B,EAAIC,GACxD,OAAOl5B,GAAQ,KAAJC,EAAUA,EAAGC,EAAKmZ,IAAWG,IAAWtZ,GAAIz8gB,EAAM1vG,KAAS,KAAJklpB,EAAUA,EAAGC,EAAK9f,IAAWE,IAAW4f,GAAMz1iB,EAAMxqH,GACvH,GACD,CAiBA,SAASkgqB,IAAWx0B,GAAQA,EAAKlpoB,GAAG,CAAW,CAG/C,SAAS29pB,IAAcz0B,EAAM7poB,GAC5B,IAAIiZ,EAAI4wnB,EAAKE,WAAqB,GAAV/poB,EAAc,EAAI,GAC1C,MAAO,CAAK,MAAJiZ,EAAaA,GAAK,GAAM,EAAIA,GAAK,GAAM,EAChD,CAGA,SAASslpB,IAAe10B,EAAM7poB,EAAQijC,GACrC,IAAI53B,EAAI,EACR,GAAG43B,EAAM,CACR,GAAGA,EAAK+6mB,MAAQ,GAAK/6mB,EAAK+6mB,MAAQ,EAAG,OAAOwgB,IAAqB30B,GAC5C,IAAb5mmB,EAAK+6mB,OAAY3yoB,EAAI,EAC9B,CACA,IAAIlN,EAAE0roB,EAAKE,WAAW1+nB,GAAI4a,EAAE4jnB,EAAKE,WAAW1+nB,GACxC4N,EAAEqlpB,IAAcz0B,EAAM,GACtB54nB,EAAEqtpB,IAAcz0B,EAAM,GAC1B,MAAO,CAAEr3mB,EAAE,CAACr0B,EAAEA,EAAG8a,EAAEA,EAAE,GAAI6koB,KAAK7koB,EAAE,GAAI8koB,KAAK9koB,EAAE,IAAKoT,EAAE,CAACluB,EAAE8nB,EAAGhN,EAAEhI,EAAE,GAAI6soB,KAAK7soB,EAAE,GAAI8soB,KAAK9soB,EAAE,IACnF,CAEA,SAASutpB,IAAqB30B,GAC7B,IAAI1roB,EAAEmgqB,IAAcz0B,EAAM,GAAI5jnB,EAAEq4oB,IAAcz0B,EAAM,GAChD5wnB,EAAE4wnB,EAAKE,WAAW,GAClB94nB,EAAE44nB,EAAKE,WAAW,GACtB,MAAO,CAAEv3mB,EAAE,CAACr0B,EAAEA,EAAE,GAAI8a,EAAEA,EAAG6koB,KAAK3/oB,EAAE,GAAI4/oB,KAAK5/oB,EAAE,IAAKkuB,EAAE,CAACluB,EAAE8nB,EAAE,GAAIhN,EAAEhI,EAAG6soB,KAAK73nB,EAAE,GAAI83nB,KAAK93nB,EAAE,IACnF,CAYA,SAASw4oB,IAAc50B,EAAM7poB,EAAQijC,GACpC,GAAGA,GAAQA,EAAK+6mB,MAAQ,GAAK/6mB,EAAK+6mB,MAAQ,EAAG,OAK9C,SAA6BnU,GAC5B,IAAI1roB,EAAImgqB,IAAcz0B,EAAM,GACxB5wnB,EAAI4wnB,EAAKE,WAAW,GACxB,MAAO,CAAC5roB,EAAEA,EAAE,GAAI8a,EAAEA,EAAG6koB,KAAK3/oB,EAAE,GAAI4/oB,KAAK5/oB,EAAE,GACxC,CATqDugqB,CAAoB70B,GACxE,IAAI1roB,EAAI0roB,EAAKE,WAAW9mmB,GAAqB,IAAbA,EAAK+6mB,KAAa,EAAI,GAClD/koB,EAAIqlpB,IAAcz0B,EAAM,GAC5B,MAAO,CAAC1roB,EAAEA,EAAG8a,EAAEA,EAAE,GAAI6koB,KAAK7koB,EAAE,GAAI8koB,KAAK9koB,EAAE,GACxC,CAQA,SAAS0lpB,IAAiB90B,GACzB,IAAI1roB,EAAI0roB,EAAKE,WAAW,GACpB9wnB,EAAI4wnB,EAAKE,WAAW,GACxB,MAAO,CAAC5roB,EAAEA,EAAG8a,EAAM,IAAJA,EAAU2lpB,WAAe,MAAJ3lpB,GAAa6koB,KAAK7koB,GAAG,GAAI8koB,KAAK9koB,GAAG,GACtE,CA8EA,SAAS4lpB,IAAoBh1B,GAC5B,IAAIi1B,EAA2B,EAAjBj1B,EAAKA,EAAKlpoB,EAAE,GAG1B,OADAkpoB,EAAKlpoB,GAAK,EACH,CAACm+pB,EAFQ,EAGjB,CAyCA,SAASC,IAAuBl1B,GAE/B,MAAO,CADIA,EAAKE,WAAW,GAAUF,EAAKE,WAAW,GAEtD,CA4FA,SAASi1B,IAAYn1B,EAAMmU,GAC1B,IAAIx2oB,EAAM,CAACqioB,EAAKE,WAAW,IAC3B,GAAW,IAARiU,EAAY,OAAOx2oB,EAAI,IACzB,KAAK,EAAMA,EAAI,GAAK,EAAM,MAC1B,KAAK,EAAMA,EAAI,GAAK,GAAM,MAC1B,KAAK,EAAMA,EAAI,GAAK,EAAM,MAC1B,KAAK,EAAMA,EAAI,GAAK,EAErB,OAAOA,EAAI,IACV,KAAK,EACJA,EAAI,GAAKmipB,IAAU9f,EAAM,GAAK,OAAS,QAC5B,IAARmU,IAAYnU,EAAKlpoB,GAAK,GAAG,MAC7B,KAAK,GACL,KAAK,GACJ6G,EAAI,GAAK43oB,IAAKvV,EAAKA,EAAKlpoB,IACxBkpoB,EAAKlpoB,GAAe,IAARq9oB,EAAc,EAAI,EAAI,MACnC,KAAK,EACJnU,EAAKlpoB,GAAK,EAAG,MACd,KAAK,EACJ6G,EAAI,GAAKi7oB,IAAW5Y,GAAU,MAC/B,KAAK,EACJrioB,EAAI,GAAK+ipB,IAAuB1gB,EAAM,EAAG,CAACmU,KAAKA,EAAO,GAAKA,EAAO,EAAI,EAAIA,IAAQ,MACnF,QAAS,MAAM,IAAIz7oB,MAAM,cAAgBiF,EAAI,IAE9C,OAAOA,CACR,CAGA,SAASy3pB,IAAkBp1B,EAAMq1B,EAAKj8nB,GAGrC,IAFA,IAAI4P,EAAQg3lB,EAAKE,WAAyB,IAAb9mmB,EAAK+6mB,KAAc,EAAI,GAChDxqe,EAAuB,GACnBzzK,EAAI,EAAGA,GAAK8yC,IAAS9yC,EAAGyzK,EAAI9yK,MAAoB,IAAbuiC,EAAK+6mB,KAAcuE,IAAqByI,KAAanhB,EAAM,IACtG,OAAOr2d,CACR,CAGA,SAAS2rf,IAAoBt1B,EAAM7poB,EAAQijC,GAC1C,IAAI1H,EAAO,EAAGwzc,EAAO,EACL,IAAb9rc,EAAK+6mB,MACPzinB,EAAOsumB,EAAKE,WAAW,GACvBh7J,EAAO86J,EAAKE,WAAW,KAEvBh7J,EAAO,EAAI86J,EAAKE,WAAW,GAC3BxumB,EAAO,EAAIsumB,EAAKE,WAAW,IAEzB9mmB,EAAK+6mB,MAAQ,GAAK/6mB,EAAK+6mB,KAAO,MAAOzinB,EAAmB,KAARwzc,IAAWA,EAAO,MAErE,IAAI,IAAIhve,EAAI,EAAGoxB,EAA0B,GAAIpxB,GAAKw7B,IAASpK,EAAEpxB,GAAK,MAAOA,EACxE,IAAI,IAAI2c,EAAI,EAAGA,GAAKqyd,IAAQryd,EAAGyU,EAAEpxB,GAAG2c,GAAKsipB,IAAYn1B,EAAM5mmB,EAAK+6mB,MACjE,OAAO7snB,CACR,CA6EA,SAASiuoB,IAAgBv1B,EAAM7poB,EAAQijC,GAEtC,OADA4mmB,EAAKlpoB,GAAK,EACH,CAACg+pB,IAAiB90B,GAC1B,CACA,SAASw1B,IAAiBx1B,GAEzB,OADAA,EAAKlpoB,GAAK,EACH,EACR,CAUA,SAAS2+pB,IAAgBz1B,GAExB,OADAA,EAAKlpoB,GAAK,EACH,CAACkppB,IAAYhgB,GAA4B,EAArBA,EAAKE,WAAW,GAC5C,CAEA,IAWIw1B,IAAY,CACf,OACA,MACA,UACA,KACA,SACA,KACA,eACA,KACA,SACA,KACA,KACA,KACA,cACA,KACA,KACA,KACA,YA6CD,IAAIC,IAAW,CACP,EAAa,CAAE13pB,EAAE,SAAUkG,EAxPnC,SAAsB67nB,EAAM7poB,EAAQijC,GAEnC,OADA4mmB,EAAKlpoB,IACFsiC,GAAqB,IAAbA,EAAK+6mB,KAAmB,CAACnU,EAAKE,WAAW,EAAG,KAAM,GAGtD,CAFGF,EAAKE,WAAW,GAChBF,EAAKE,WAAW9mmB,GAAqB,GAAbA,EAAK+6mB,KAAY,EAAI,GAExD,GAmPQ,EAAa,CAAEl2oB,EAAE,SAAUkG,EAnGhBovoB,KAoGX,EAAa,CAAEt1oB,EAAE,SAAUkG,EAAEqwpB,KAC7B,EAAa,CAAEv2pB,EAAE,SAAUkG,EAAEqwpB,KAC7B,EAAa,CAAEv2pB,EAAE,SAAUkG,EAAEqwpB,KAC7B,EAAa,CAAEv2pB,EAAE,SAAUkG,EAAEqwpB,KAC7B,EAAa,CAAEv2pB,EAAE,WAAYkG,EAAEqwpB,KAC/B,EAAa,CAAEv2pB,EAAE,YAAakG,EAAEqwpB,KAChC,EAAa,CAAEv2pB,EAAE,QAASkG,EAAEqwpB,KAC5B,GAAa,CAAEv2pB,EAAE,QAASkG,EAAEqwpB,KAC5B,GAAa,CAAEv2pB,EAAE,QAASkG,EAAEqwpB,KAC5B,GAAa,CAAEv2pB,EAAE,QAASkG,EAAEqwpB,KAC5B,GAAa,CAAEv2pB,EAAE,QAASkG,EAAEqwpB,KAC5B,GAAa,CAAEv2pB,EAAE,QAASkG,EAAEqwpB,KAC5B,GAAa,CAAEv2pB,EAAE,WAAYkG,EAAEqwpB,KAC/B,GAAa,CAAEv2pB,EAAE,WAAYkG,EAAEqwpB,KAC/B,GAAa,CAAEv2pB,EAAE,WAAYkG,EAAEqwpB,KAC/B,GAAa,CAAEv2pB,EAAE,WAAYkG,EAAEqwpB,KAC/B,GAAa,CAAEv2pB,EAAE,YAAakG,EAAEqwpB,KAChC,GAAa,CAAEv2pB,EAAE,aAAckG,EAAEqwpB,KACjC,GAAa,CAAEv2pB,EAAE,WAAYkG,EAAEqwpB,KAC/B,GAAa,CAAEv2pB,EAAE,aAAckG,EAAEqwpB,KACjC,GAAa,CAAEv2pB,EAAE,SAAUkG,EAzPnC,SAAsB67nB,EAAM7poB,EAAQijC,GAAkB,OAAV4mmB,EAAKlpoB,IAAYqppB,IAA2BngB,EAAM7poB,EAAUijC,EAAO,GA0PvG,GAAa,CAAEn7B,EAAE,WAAYkG,EAlDrC,SAAwB67nB,EAAM7poB,EAAQijC,GAIrC,OAHA4mmB,EAAKlpoB,GAAK,EACVkpoB,EAAKlpoB,GAAK,EACVkpoB,EAAKlpoB,GAAmB,GAAbsiC,EAAK+6mB,KAAY,EAAI,EACzB,CAAC,WACT,GA8CQ,GAAa,CAAEl2oB,EAAE,cAAekG,EA7CxC,SAA2B67nB,EAAM7poB,EAAQijC,GAExC,OADA4mmB,EAAKlpoB,GAAmB,GAAbsiC,EAAK+6mB,KAAY,EAAI,EACzB,CAAC,cACT,GA2CQ,GAAa,CAAEl2oB,EAAE,SAAUkG,EAxQnC,SAAsB67nB,GAAkB,OAAVA,EAAKlpoB,IAAYy+oB,IAAKvV,EAAKE,WAAW,GAAK,GAyQjE,GAAa,CAAEjioB,EAAE,UAAWkG,EAnQpC,SAAuB67nB,GAAkB,OAAVA,EAAKlpoB,IAAiC,IAArBkpoB,EAAKE,WAAW,EAAO,GAoQ/D,GAAa,CAAEjioB,EAAE,SAAUkG,EAvQnC,SAAsB67nB,GAAkB,OAAVA,EAAKlpoB,IAAYkpoB,EAAKE,WAAW,EAAI,GAwQ3D,GAAa,CAAEjioB,EAAE,SAAUkG,EAlQnC,SAAsB67nB,GAAkB,OAAVA,EAAKlpoB,IAAY8hpB,IAAW5Y,EAAU,GAmQ5D,GAAa,CAAE/hoB,EAAE,WAAYkG,EAhZrC,SAAwB67nB,EAAM7poB,EAAQijC,GACrC,IAAIp9B,GAAyB,GAAjBgkoB,EAAKA,EAAKlpoB,OAAgB,EAEtC,OADAkpoB,EAAKlpoB,GAAkB,GAAbsiC,EAAK+6mB,KAAY,EAAiB,IAAb/6mB,EAAK+6mB,KAAa,GAAK,EAC/C,CAACn4oB,EACT,GA6YQ,GAAa,CAAEiC,EAAE,UAAWkG,EA9SpC,SAAuB67nB,EAAM7poB,EAAQijC,GAEpC,IAAIp9B,GAAuB,GAAfgkoB,EAAKA,EAAKlpoB,KAAY,EAClCkpoB,EAAKlpoB,GAAK,EACV,IAAI8+pB,EAAQ51B,EAAKE,WAAW9mmB,GAAQA,EAAK+6mB,MAAQ,EAAI,EAAI,GACzD,MAAO,CAAC0hB,IAASD,GAAQE,IAAKF,GAAQ55pB,EACvC,GAySQ,GAAa,CAAEiC,EAAE,aAAckG,EAvSvC,SAA0B67nB,EAAM7poB,EAAQijC,GACvC,IAAIp9B,EAAOgkoB,EAAKA,EAAKlpoB,KACjBi/pB,EAAU/1B,EAAKE,WAAW,GAAIxgL,EAAMtmb,GAAQA,EAAK+6mB,MAAQ,EAAI,CAAU,IAARn4oB,GAAgB,EAAI,EAAIgkoB,EAAKE,WAAW,IAI5G,SAAkBF,GACjB,MAAO,CAACA,EAAKA,EAAKlpoB,EAAE,IAAI,EAAwB,MAArBkpoB,EAAKE,WAAW,GAC5C,CANiH81B,CAASh2B,GACzH,MAAO,CAAC+1B,GAAqB,IAAXr2M,EAAI,GAAWo2M,IAAOG,KAAOv2M,EAAI,IACpD,GAoSQ,GAAa,CAAEzhd,EAAE,UAAWkG,EA1MpC,SAAuB67nB,EAAM7poB,EAAQijC,GACpC,IAAIp9B,EAAQgkoB,EAAKE,WAAW,KAAO,EAAK,EACpC1+nB,GAAM43B,GAASA,EAAK+6mB,MAAQ,EAAM,EAAI,EACtC+hB,EAAYl2B,EAAKE,WAAW1+nB,GAChC,OAAO43B,EAAK+6mB,MACX,KAAK,EAAGnU,EAAKlpoB,GAAK,EAAG,MACrB,KAAK,EAAG,KAAK,EAAGkpoB,EAAKlpoB,GAAK,EAAG,MAC7B,KAAK,EAAGkpoB,EAAKlpoB,GAAK,GAEnB,MAAO,CAACkF,EAAM,EAAGk6pB,EAClB,GAiMQ,GAAa,CAAEj4pB,EAAE,SAAUkG,EA7UnC,SAAsB67nB,EAAM7poB,EAAQijC,GAEnC,IAAIp9B,GAAuB,GAAfgkoB,EAAKA,EAAKlpoB,KAAY,EAGlC,OAFAkpoB,EAAKlpoB,GAAK,EAEH,CAACkF,EADE44pB,IAAc50B,EAAM,EAAG5mmB,GAElC,GAwUQ,GAAa,CAAEn7B,EAAE,UAAWkG,EAncpC,SAAuB67nB,EAAM7poB,EAAQijC,GAGpC,MAAO,EAFsB,GAAjB4mmB,EAAKA,EAAKlpoB,OAAgB,EAC3B49pB,IAAe10B,EAAM5mmB,EAAK+6mB,MAAQ,GAAK/6mB,EAAK+6mB,KAAmB/6mB,GAE3E,GAgcQ,GAAa,CAAEn7B,EAAE,aAAckG,EA/KvC,SAA0B67nB,EAAM7poB,EAAQijC,GACvC,IAAIp9B,EAAQgkoB,EAAKE,WAAW,KAAO,EAAK,EAGxC,OAFAF,EAAKlpoB,GAAMsiC,GAAqB,GAAbA,EAAK+6mB,KAAY,EAAI,EAEjC,CAACn4oB,EADEgkoB,EAAKE,WAAW9mmB,GAAqB,GAAbA,EAAK+6mB,KAAY,EAAI,GAExD,GA2KQ,GAAa,CAAEl2oB,EAAE,YAAakG,EA1IhBovoB,KA2Id,GAAa,CAAEt1oB,EAAE,cAAekG,EAzIhBovoB,KA0IhB,GAAa,CAAEt1oB,EAAE,aAAckG,EA1KvC,SAA0B67nB,EAAM7poB,EAAQijC,GAGvC,MAAO,CAFK4mmB,EAAKE,WAAW,KAAO,EAAK,EAC9BF,EAAKE,WAAW9mmB,GAAqB,GAAbA,EAAK+6mB,KAAY,EAAI,GAExD,GAuKQ,GAAa,CAAEl2oB,EAAE,YAAakG,EAnKtC,SAAyB67nB,EAAM7poB,EAAQijC,GACtC,IAAIp9B,EAAQgkoB,EAAKE,WAAW,KAAO,EAAK,EAIxC,OAHAF,EAAKlpoB,GAAK,EACPsiC,EAAK+6mB,KAAO,GAAGnU,EAAKlpoB,IACP,IAAbsiC,EAAK+6mB,OAAYnU,EAAKlpoB,GAAK,GACvB,CAACkF,EACT,GA8JQ,GAAa,CAAEiC,EAAE,aAAckG,EArbvC,SAA0B67nB,EAAM7poB,EAAQijC,GACvC,IAAIp9B,GAAyB,GAAjBgkoB,EAAKA,EAAKlpoB,OAAgB,EAEtC,OADAkpoB,EAAKlpoB,GAAKsiC,GAASA,EAAK+6mB,KAAO,EAAK,GAAM/6mB,EAAK+6mB,KAAO,EAAI,EAAI,EACvD,CAACn4oB,EACT,GAkbQ,GAAa,CAAEiC,EAAE,UAAWkG,EA5UpC,SAAuB67nB,EAAM7poB,EAAQijC,GACpC,IAAIp9B,GAAuB,GAAfgkoB,EAAKA,EAAKlpoB,KAAY,EAClCkpoB,EAAKlpoB,GAAK,EACV,IAAI67oB,EAvJL,SAA0B3S,EAAM7poB,EAAQijC,GACvC,IAAI+6mB,EAAO/6mB,GAAQA,EAAK+6mB,KAAO/6mB,EAAK+6mB,KAAO,EAC3C,GAAGA,GAAQ,GAAKA,GAAQ,EAAG,OAS5B,SAAgCnU,GAC/B,IAAIhvjB,EAAKgvjB,EAAKE,WAAW,GACrB9wnB,EAAI4wnB,EAAKE,WAAW,GACpBgU,GAAa,MAALljkB,IAAgB,GAAIijkB,GAAa,MAALjjkB,IAAgB,GAIxD,OAHAA,GAAM,MACK,GAARkjkB,GAAaljkB,GAAM,OAAQA,GAAU,OAC7B,GAARijkB,GAAa7koB,GAAK,MAAMA,GAAQ,KAC5B,CAAC9a,EAAE08E,EAAG5hE,EAAEA,EAAE6koB,KAAKA,EAAKC,KAAKA,EACjC,CAjBmCiiB,CAAuBn2B,GACzD,IAAI1roB,EAAI0roB,EAAKE,WAAWiU,GAAQ,GAAK,EAAI,GACrC9gkB,EAAK2sjB,EAAKE,WAAW,GACrB+T,GAAa,MAAL5gkB,IAAgB,GAAI6gkB,GAAa,MAAL7gkB,IAAgB,GAExD,GADAA,GAAM,MACK,GAAR6gkB,EAAW,KAAM5/oB,EAAI,QAASA,GAAK,QACtC,GAAW,GAAR2/oB,EAAW,KAAM5gkB,EAAK,MAAQA,GAAU,MAC3C,MAAO,CAAC/+E,EAAEA,EAAE8a,EAAEikE,EAAG4gkB,KAAKA,EAAKC,KAAKA,EACjC,CA6IWkiB,CAAiBp2B,EAAM,EAAG5mmB,GACpC,MAAO,CAACp9B,EAAM22oB,EACf,GAwUQ,GAAa,CAAE10oB,EAAE,WAAYkG,EAparC,SAAwB67nB,EAAM7poB,EAAQijC,GACrC,IAAIp9B,GAAyB,GAAjBgkoB,EAAKA,EAAKlpoB,OAAgB,EAClC+lD,EA5FL,SAA2BmjlB,EAAM7poB,EAAQijC,GACxC,GAAGA,EAAK+6mB,KAAO,EAAG,OAAOwgB,IAAqB30B,GAC9C,IAAI1roB,EAAE0roB,EAAKE,WAAwB,IAAb9mmB,EAAK+6mB,KAAa,EAAI,GAAI/3nB,EAAE4jnB,EAAKE,WAAwB,IAAb9mmB,EAAK+6mB,KAAa,EAAI,GACpF/koB,EAAEqlpB,IAAcz0B,EAAM,GACtB54nB,EAAEqtpB,IAAcz0B,EAAM,GAC1B,MAAO,CAAEr3mB,EAAE,CAACr0B,EAAEA,EAAG8a,EAAEA,EAAE,GAAI6koB,KAAK7koB,EAAE,GAAI8koB,KAAK9koB,EAAE,IAAKoT,EAAE,CAACluB,EAAE8nB,EAAGhN,EAAEhI,EAAE,GAAI6soB,KAAK7soB,EAAE,GAAI8soB,KAAK9soB,EAAE,IACnF,CAsFYivpB,CAAkBr2B,EAAM7poB,EAAYijC,GAC/C,MAAO,CAACp9B,EAAM6gD,EACf,GAiaQ,GAAa,CAAE5+C,EAAE,cAAekG,EA5DxC,SAA2B67nB,GAG1B,MAAO,CAFKA,EAAKE,WAAW,KAAO,EAAK,EAC9BF,EAAKE,WAAW,GAE3B,GAyDQ,GAAa,CAAEjioB,EAAE,eAAgBkG,EAxDzC,SAA4B67nB,GAG3B,MAAO,CAFKA,EAAKE,WAAW,KAAO,EAAK,EAC9BF,EAAKE,WAAW,GAE3B,GAqDQ,GAAa,CAAEjioB,EAAE,WAAYkG,EA1MrC,SAAwB67nB,EAAM7poB,EAAQijC,GACrC,OAAgB,GAAbA,EAAK+6mB,KAMT,SAA8BnU,GAC7B,IAAIhkoB,EAAQgkoB,EAAKE,WAAW,KAAO,EAAK,EACpCo2B,EAAOt2B,EAAKE,WAAW,EAAG,KAC9BF,EAAKlpoB,GAAK,EACV,IAAIo/pB,EAAYl2B,EAAKE,WAAW,GAEhC,OADAF,EAAKlpoB,GAAK,GACH,CAACkF,EAAMs6pB,EAAMJ,EACrB,CAb2BK,CAAqBv2B,GAIxC,CAHKA,EAAKE,WAAW,KAAO,EAAK,EAC7BF,EAAKE,WAAW,GACXF,EAAKE,WAAW,GAEjC,GAqMQ,GAAa,CAAEjioB,EAAE,WAAYkG,EAzUrC,SAAwB67nB,EAAM7poB,EAAQijC,GACrC,IAAIp9B,GAAuB,GAAfgkoB,EAAKA,EAAKlpoB,KAAY,EAClCkpoB,EAAKlpoB,GAAK,EACV,IAAIw/pB,EAAOt2B,EAAKE,WAAW,GAG3B,OAFG9mmB,GAAqB,GAAbA,EAAK+6mB,OAAWnU,EAAKlpoB,GAAK,IAE9B,CAACkF,EAAMs6pB,EADJ1B,IAAc50B,EAAM,EAAG5mmB,GAElC,GAmUQ,GAAa,CAAEn7B,EAAE,YAAakG,EAzctC,SAAyB67nB,EAAM7poB,EAAQijC,GACtC,IAAIp9B,GAAyB,GAAjBgkoB,EAAKA,EAAKlpoB,OAAgB,EAClCw/pB,EAAOt2B,EAAKE,WAAW,EAAG,KAE9B,GAAG9mmB,EAAM,OAAOA,EAAK+6mB,MACpB,KAAK,EAAGnU,EAAKlpoB,GAAK,GAAW,MAC7B,KAAK,GAAI0K,EAGV,MAAO,CAACxF,EAAMs6pB,EADH5B,IAAe10B,EAAMx+nB,EAAG43B,GAEpC,GAgcQ,GAAa,CAAEn7B,EAAE,cAAekG,EAnKxC,SAA2B67nB,EAAM7poB,EAAQijC,GACxC,IAAIp9B,GAAyB,GAAjBgkoB,EAAKA,EAAKlpoB,OAAgB,EAClCw/pB,EAAOt2B,EAAKE,WAAW,GACvB1+nB,EAAI,EACR,GAAG43B,EAAM,OAAOA,EAAK+6mB,MACpB,KAAK,EAAG3yoB,EAAI,GAAI,MAChB,KAAK,GAAIA,EAAI,EAGd,OADAw+nB,EAAKlpoB,GAAK0K,EACH,CAACxF,EAAMs6pB,EACf,GA0JQ,GAAa,CAAEr4pB,EAAE,eAAgBkG,EAxbzC,SAA4B67nB,EAAM7poB,EAAQijC,GACzC,IAAIp9B,GAAyB,GAAjBgkoB,EAAKA,EAAKlpoB,OAAgB,EAClCw/pB,EAAOt2B,EAAKE,WAAW,GACvB1+nB,EAAI,EACR,GAAG43B,EAAM,OAAOA,EAAK+6mB,MACpB,KAAK,EAAGnU,EAAKlpoB,GAAK,GAAI0K,EAAI,EAAG,MAC7B,KAAK,GAAIA,EAAI,GAGd,OADAw+nB,EAAKlpoB,GAAK0K,EACH,CAACxF,EAAMs6pB,EACf,GA+aQ,IAAa,CAAC,GAGlBE,IAAW,CACP,GAAa,GAAa,GAAa,GACvC,GAAa,GAAa,GAAa,GACvC,GAAa,GAAa,GAAa,GACvC,GAAa,GAAa,GAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,GACvC,GAAa,GAAa,IAAa,IAG3CC,IAAQ,CACJ,EAAa,CAAEx4pB,EAAE,YAAakG,EAAEsxpB,KAChC,EAAa,CAAEx3pB,EAAE,WAAYkG,EApJhBoxpB,KAqJb,EAAa,CAAEt3pB,EAAE,YAAakG,EAxKhBoxpB,KAyKd,EAAa,CAAEt3pB,EAAE,YAAakG,EApJhBoxpB,KAqJd,EAAa,CAAEt3pB,EAAE,aAAckG,EApKhBoxpB,KAqKf,GAAa,CAAEt3pB,EAAE,gBAAiBkG,EA9JhBoxpB,KA+JlB,GAAa,CAAEt3pB,EAAE,iBAAkBkG,EA3JhBqxpB,KA4JnB,GAAa,CAAEv3pB,EAAE,aAAckG,EA3KhBqxpB,KA4Kf,GAAa,CAAEv3pB,EAAE,cAAekG,EA1KhBqxpB,KA2KhB,GAAa,CAAEv3pB,EAAE,mBAAoBkG,EAhKhBsxpB,KAiKrB,GAAa,CAAEx3pB,EAAE,UAAWkG,EArIpC,SAAuB67nB,GACtBA,EAAKlpoB,GAAK,EACV,IAAIw/pB,EAAOt2B,EAAKE,WAAW,GACvBpknB,EAAQkknB,EAAKE,WAAW,GACxBnsa,EAAMisa,EAAKE,WAAW,GACtB9wnB,EAAI4wnB,EAAKE,WAAW,GACpB94nB,EAAI44nB,EAAKE,WAAW,GAExB,MAAO,CAACo2B,KAAMA,EAAMI,QAAe,EAAN56oB,EAAY4sK,GADhCgte,IAAW55oB,GAAS,EAAK,IACci4M,IAAIA,EAAK3kN,EAAEA,EAAGhI,EAAEA,EACjE,GA6HQ,GAAa,CAAEnJ,EAAE,YAAakG,EA3HtC,SAAyB67nB,GAExB,OADAA,EAAKlpoB,GAAK,EACH,CAACkpoB,EAAKE,WAAW,GACzB,GAyHQ,IAAa,CAAC,GAElBy2B,IAAQ,CACJ,EAAa,CAAE14pB,EAAE,cAAekG,EArGxC,SAA2B67nB,GAE1B,OADAA,EAAKlpoB,GAAK,EACH,CAAC,EAAG,EACZ,GAmGQ,EAAa,CAAEmH,EAAE,cAAekG,EApaxC,SAA2B67nB,EAAM7poB,EAAQijC,GACxC,IAAI67nB,EAA4B,IAAjBj1B,EAAKA,EAAKlpoB,EAAE,GAAa,EAAI,EAE5C,OADAkpoB,EAAKlpoB,GAAKsiC,GAAqB,GAAbA,EAAK+6mB,KAAY,EAAI,EAChC,CAAC8gB,EACT,GAiaQ,EAAa,CAAEh3pB,EAAE,YAAakG,EAnbtC,SAAyB67nB,EAAM7poB,EAAQijC,GACtC,IAAIw9nB,EAA0B,IAAjB52B,EAAKA,EAAKlpoB,EAAE,GAAa,EAAI,EAE1C,OADAkpoB,EAAKlpoB,GAAK,EACH,CAAC8/pB,EAAO52B,EAAKE,WAAW9mmB,GAAqB,GAAbA,EAAK+6mB,KAAY,EAAI,GAC7D,GAgbQ,EAAa,CAAEl2oB,EAAE,gBAAiBkG,EArc1C,SAA6B67nB,EAAM7poB,EAAQijC,GAC1C4mmB,EAAKlpoB,GAAI,EAIT,IAHA,IAAIg5D,EAASkwkB,EAAKE,WAAW9mmB,GAAqB,GAAbA,EAAK+6mB,KAAY,EAAI,GACtD7snB,EAAsB,GAElBpxB,EAAI,EAAGA,GAAK45D,IAAU55D,EAAGoxB,EAAEzwB,KAAKmpoB,EAAKE,WAAW9mmB,GAAqB,GAAbA,EAAK+6mB,KAAY,EAAI,IACrF,OAAO7snB,CACR,GA+bQ,EAAa,CAAErpB,EAAE,cAAekG,EA5bxC,SAA2B67nB,EAAM7poB,EAAQijC,GACxC,IAAIy9nB,EAA4B,IAAjB72B,EAAKA,EAAKlpoB,EAAE,GAAa,EAAI,EAE5C,OADAkpoB,EAAKlpoB,GAAK,EACH,CAAC+/pB,EAAS72B,EAAKE,WAAW9mmB,GAAqB,GAAbA,EAAK+6mB,KAAY,EAAI,GAC/D,GAybQ,GAAa,CAAEl2oB,EAAE,aAAckG,EAhWvC,SAA0B67nB,EAAM7poB,EAAQijC,GACvC4mmB,EAAKlpoB,GAAKsiC,GAAqB,GAAbA,EAAK+6mB,KAAY,EAAI,CACxC,GA+VQ,GAAa,CAAEl2oB,EAAE,gBAAiBkG,EAAE6wpB,KACpC,GAAa,CAAE/2pB,EAAE,gBAAiBkG,EAAE6wpB,KACpC,GAAa,CAAE/2pB,EAAE,eAAgBkG,EA9ZzC,SAA4B67nB,GAE3B,OADAA,EAAKE,WAAW,GACTg1B,IAAuBl1B,EAC/B,GA4ZQ,GAAa,CAAE/hoB,EAAE,mBAAoBkG,EAzZ7C,SAAgC67nB,GAE/B,OADAA,EAAKE,WAAW,GACTg1B,IAAuBl1B,EAC/B,GAuZQ,IAAa,CAAE/hoB,EAAE,iBAAkBkG,EApb3C,SAA8B67nB,GAC7B,IAAI42B,EAA0B,IAAjB52B,EAAKA,EAAKlpoB,EAAE,GAAa,EAAI,EAE1C,OADAkpoB,EAAKlpoB,GAAK,EACH,CAAC8/pB,EAAO52B,EAAKE,WAAW,GAChC,GAibQ,IAAa,CAAC,GAItB,SAAS42B,IAAe92B,EAAM7poB,EAAQ4gqB,EAAM39nB,GAC3C,GAAGA,EAAK+6mB,KAAO,EAAG,OAAOZ,IAAUvT,EAAM7poB,GAGzC,IAFA,IAAI4J,EAASigoB,EAAKlpoB,EAAIX,EAClBmxB,EAAI,GACApxB,EAAI,EAAGA,IAAM6gqB,EAAK5gqB,SAAUD,EACnC,OAAO6gqB,EAAK7gqB,GAAG,IACd,IAAK,WACJ6gqB,EAAK7gqB,GAAG,GAAKo/pB,IAAoBt1B,EAAM,EAAG5mmB,GAC1C9R,EAAEzwB,KAAKkgqB,EAAK7gqB,GAAG,IACf,MACD,IAAK,aACJ6gqB,EAAK7gqB,GAAG,GAAKk/pB,IAAkBp1B,EAAM+2B,EAAK7gqB,GAAG,GAAIkjC,GACjD9R,EAAEzwB,KAAKkgqB,EAAK7gqB,GAAG,IACf,MACD,IAAK,SACDkjC,GAAqB,IAAbA,EAAK+6mB,OACf4iB,EAAK7gqB,GAAG,GAAG,GAAK8poB,EAAKE,WAAW,GAChC54mB,EAAEzwB,KAAKkgqB,EAAK7gqB,GAAG,KACd,MACH,IAAK,UACL,IAAK,iBACL,IAAK,aACL,IAAK,cACJ,KAAM,eAAiB6gqB,EAAK7gqB,GAAG,GAQlC,OADc,KAHdC,EAAS4J,EAASigoB,EAAKlpoB,IAGNwwB,EAAEzwB,KAAK08oB,IAAUvT,EAAM7poB,IACjCmxB,CACR,CAGA,SAAS0voB,IAAWh3B,EAAM7poB,EAAQijC,GAGjC,IAFA,IACIhd,EAAG3D,EADH1Y,EAASigoB,EAAKlpoB,EAAIX,EACX8gqB,EAAO,GACZl3pB,GAAUigoB,EAAKlpoB,GACpBX,EAAS4J,EAASigoB,EAAKlpoB,EACvB2hB,EAAKunnB,EAAKA,EAAKlpoB,GACfslB,EAAIu5oB,IAASl9oB,IAAOk9oB,IAASa,IAAS/9oB,IAC5B,KAAPA,GAAsB,KAAPA,IAAa2D,GAAY,KAAP3D,EAAcg+oB,IAAQE,KAAO32B,EAAKA,EAAKlpoB,EAAI,KAC3EslB,GAAMA,EAAEjY,EACL8ypB,EAAKpgqB,KAAK,CAACulB,EAAEne,EAAGme,EAAEjY,EAAE67nB,EAAM7poB,EAAQijC,KADVm6mB,IAAUvT,EAAM7poB,GAGhD,OAAO8gqB,CACR,CAEA,SAASC,IAAgB/ypB,GAExB,IADA,IAAImjB,EAAsB,GAClBpxB,EAAI,EAAGA,EAAIiO,EAAEhO,SAAUD,EAAG,CAEjC,IADA,IAAIypB,EAAIxb,EAAEjO,GAAI5B,EAAsB,GAC5Bue,EAAI,EAAGA,EAAI8M,EAAExpB,SAAU0c,EAAG,CACjC,IAAIkX,EAAIpK,EAAE9M,GACV,GAAGkX,EAAG,GAEA,IAFOA,EAAE,GAIbz1B,EAAEuC,KAAK,IAAMkzB,EAAE,GAAGrhB,QAAQ,KAAK,MAAQ,UAC/BpU,EAAEuC,KAAKkzB,EAAE,SACZz1B,EAAEuC,KAAK,GACf,CACAywB,EAAEzwB,KAAKvC,EAAE2F,KAAK,KACf,CACA,OAAOqtB,EAAErtB,KAAK,IACf,CAGA,IAAIk9pB,IAAW,CACdC,OAAQ,IACRC,UAAW,IACXC,OAAQ,IACRC,MAAO,IACPC,MAAO,KACPC,MAAO,IACPC,MAAO,KACPC,MAAO,IACPC,OAAQ,IACRC,MAAO,KACPC,SAAU,IACVC,OAAQ,KAST,SAASC,IAAaC,EAAU3B,EAAiBl9nB,GAChD,IAAI6+nB,EAAU,MAAO,cACrB,GAAG7+nB,EAAK+6mB,KAAO,KAAO8jB,EAASC,MAAQD,EAASC,IAAI5B,IAAQ,OAAO2B,EAASviB,WAAW4gB,GACvF,IAAI2B,EAASC,IAAK,MAAO,cACzB,IAAIA,EAAMD,EAASC,IAAI5B,GACvB,GAAGl9nB,EAAK+6mB,KAAO,EAGd,OAFGmiB,EAAO,MAAOA,GAAO,OACrBA,EAAO,IAAGA,GAAQA,GACN,GAARA,EAAY,GAAK2B,EAASC,IAAI5B,EAAO,GAE7C,IAAI4B,EAAK,MAAO,cAChB,IAAI5woB,EAAI,GACR,GAAG8R,EAAK+6mB,KAAO,EAAG,OAAO8jB,EAASC,EAAI,IAAI,IACzC,KAAK,IAEJ,OADA5woB,GAAe,GAAX4woB,EAAI,GAAW,OAASD,EAASviB,WAAWwiB,EAAI,IAC7CA,EAAI,IAAMA,EAAI,GAAK5woB,EAAIA,EAAI,IAAM2woB,EAASviB,WAAWwiB,EAAI,IACjE,KAAK,IACJ,OAAe,MAAZ9+nB,EAAK++nB,IAAoBF,EAASviB,WAAWt8mB,EAAK++nB,KAC9C,cAAgBF,EAASC,EAAI,IAAI,GAGzC,QAAS,MAAO,aAAeD,EAASC,EAAI,IAAI,GAEjD,OAAOD,EAASC,EAAI,IAAI,GAAG,IAC1B,KAAK,KAEJ,OADA5woB,GAAe,GAAX4woB,EAAI,GAAW,OAAUD,EAASviB,WAAWwiB,EAAI,KAAO,cACrDA,EAAI,IAAMA,EAAI,GAAK5woB,EAAIA,EAAI,IAAM2woB,EAASviB,WAAWwiB,EAAI,IACjE,KAAK,MAAQ,OAAOD,EAASC,EAAI,IAAIl+pB,MAAM,GAAGqI,KAAI,SAASY,GAAQ,OAAOA,EAAKm1pB,IAAM,IAAGn+pB,KAAK,MAC7F,QACC,OAAIg+pB,EAASC,EAAI,IAAI,GAAG,IACxB5woB,GAAe,GAAX4woB,EAAI,GAAW,OAAUD,EAASC,EAAI,IAAI,GAAG,GAAGA,EAAI,KAAO,cACxDA,EAAI,IAAMA,EAAI,GAAK5woB,EAAIA,EAAI,IAAM2woB,EAASC,EAAI,IAAI,GAAG,GAAGA,EAAI,KAFhC,cAItC,CACA,SAASG,IAASJ,EAAU3B,EAAiBl9nB,GAC5C,IAAIk/nB,EAAUN,IAAaC,EAAU3B,EAAMl9nB,GAC3C,MAAkB,QAAXk/nB,EAAoBA,EAzC5B,SAAkCC,EAAkBn/nB,GACnD,IAAIm/nB,KAAWn/nB,GAAQA,EAAK+6mB,MAAQ,GAAK/6mB,EAAK+6mB,MAAQ,GAAI,MAAM,IAAIz7oB,MAAM,oBAC1E,MAAI,kCAAkCsZ,KAAKumpB,GAAe,IAAMA,EAAQ,IACjEA,CACR,CAqCsCC,CAAyBF,EAASl/nB,EACxE,CACA,SAASq/nB,IAAkBxR,EAAuB5+nB,EAAOiH,EAAc2ooB,EAAU7+nB,GAChF,IAEkC+kF,EAAIC,EAAgBhvG,EAAsC9a,EAFxF6/oB,EAAQ/6mB,GAAQA,EAAK+6mB,MAAS,EAC9B8B,EAAqC,CAACttnB,EAAE,CAACvZ,EAAE,EAAG9a,EAAE,GAAGkuB,EAAE,CAACpT,EAAE,EAAG9a,EAAE,IAC7DgL,EAA0B,GAA2Cg3pB,EAAK,EAAGoC,EAAQ,EAAMH,EAAM,GACrG,IAAItR,EAAQ,KAAOA,EAAQ,GAAG,GAAI,MAAO,GAEzC,IADA,IAAI0R,GAAW,EAAGC,EAAK,GACfnmmB,EAAK,EAAGommB,EAAQ5R,EAAQ,GAAG9wpB,OAAQs8D,EAAKommB,IAASpmmB,EAAI,CAC5D,IAAItuD,EAAI8ipB,EAAQ,GAAGx0lB,GACnB,OAAOtuD,EAAE,IACR,IAAK,YACJ7E,EAAMzI,KAAK,IAAMyI,EAAM4nF,OAAQ,MAChC,IAAK,WACJ5nF,EAAMzI,KAAK,IAAMyI,EAAM4nF,OAAQ,MAChC,IAAK,aACJ5nF,EAAMzI,KAAKyI,EAAM4nF,MAAQ,KAAM,MAEhC,IAAK,SACL,IAAK,YACL,IAAK,SACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,SAEJ,GADAi3B,EAAK7+G,EAAM4nF,MAAOk3B,EAAK9+G,EAAM4nF,MAC1ByxkB,GAAW,EAAG,CAChB,OAAO1R,EAAQ,GAAG0R,GAAS,GAAG,IAC7B,KAAK,EAEJC,EAAKh4jB,IAAK,IAAKqmjB,EAAQ,GAAG0R,GAAS,GAAG,IAAK,MAC5C,KAAK,EAEJC,EAAKh4jB,IAAK,KAAMqmjB,EAAQ,GAAG0R,GAAS,GAAG,IAAK,MAC7C,QAGC,GAFAC,EAAK,GAEFx/nB,EAAKiknB,IAAK,MAAM,IAAI3kpB,MAAM,+BAAiCuupB,EAAQ,GAAG0R,GAAS,GAAG,IAEvFv6iB,GAAUw6iB,EACVD,GAAW,CACZ,CACAr5pB,EAAMzI,KAAKunH,EAAG+4iB,IAAShzpB,EAAE,IAAIg6G,GAC7B,MAED,IAAK,WACJA,EAAK7+G,EAAM4nF,MAAOk3B,EAAK9+G,EAAM4nF,MAC7B5nF,EAAMzI,KAAKunH,EAAG,IAAID,GAClB,MACD,IAAK,WACJA,EAAK7+G,EAAM4nF,MAAOk3B,EAAK9+G,EAAM4nF,MAC7B5nF,EAAMzI,KAAKunH,EAAG,IAAID,GAClB,MACD,IAAK,WACJA,EAAK7+G,EAAM4nF,MAAOk3B,EAAK9+G,EAAM4nF,MAC7B5nF,EAAMzI,KAAKunH,EAAG,IAAID,GAClB,MAED,IAAK,gBAEL,IAAK,cAEL,IAAK,YAEL,IAAK,iBA2DL,IAAK,gBACL,IAAK,cA+FL,IAAK,aASL,IAAK,SAGL,IAAK,YAkBL,IAAK,cACL,IAAK,eACL,IAAK,cACL,IAAK,WACL,IAAK,cAGL,IAAK,aAEL,IAAK,cACJ,MA/LD,IAAK,SACkB/uG,EAAI4koB,IAAgB7voB,EAAE,GAAG,GAAa8xoB,EAAQ78mB,GACpE95B,EAAMzI,KAAKw9oB,IAAgBjloB,EAAG+koB,IAC9B,MACD,IAAK,UACkB/koB,EAAIkgB,EAAO0knB,IAAgB7voB,EAAE,GAAG,GAAamrB,EAAM8J,GAASj1B,EAAE,GAAG,GACvF7E,EAAMzI,KAAKw9oB,IAAgBjloB,EAAG+koB,IAC9B,MACD,IAAK,WACkBmiB,EAAoBnypB,EAAE,GAAG,GAAWiL,EAAI4koB,IAAgB7voB,EAAE,GAAG,GAAa8xoB,EAAQ78mB,GACxGm/nB,EAAQF,IAASJ,EAAU3B,EAAMl9nB,GAEjC95B,EAAMzI,KAAK0hqB,EAAQ,IAAMlkB,IAAgBjloB,EAAG+koB,IAC5C,MAED,IAAK,UACL,IAAK,aAEJ,IAAIsY,EAAmBtopB,EAAE,GAAG,GAAa+oC,EAAmB/oC,EAAE,GAAG,GAC7DsopB,IAAMA,EAAO,GAEjB,IAAIttoB,EAAe,IADnBstoB,GAAQ,KACe,GAAKntpB,EAAMtF,OAAOyypB,GACzCntpB,EAAMnJ,QAAUs2pB,EACJ,SAATv/mB,IAAiBA,EAAO/tB,EAAK2lC,SAChCxlD,EAAMzI,KAAKq2C,EAAO,IAAM/tB,EAAKllB,KAAK,KAAO,KACzC,MAED,IAAK,UACJqF,EAAMzI,KAAKsN,EAAE,GAAK,OAAS,SAAU,MACtC,IAAK,SAOL,IAAK,SACJ7E,EAAMzI,KAAkBsN,EAAE,IAAY,MANvC,IAAK,SACJ7E,EAAMzI,KAAKoF,OAAOkI,EAAE,KAAM,MAC3B,IAAK,SAEJ7E,EAAMzI,KAAK,IAAMsN,EAAE,GAAGuE,QAAQ,KAAM,MAAQ,KAAM,MAGnD,IAAK,WACkBpU,EAAI8/oB,IAAgBjwoB,EAAE,GAAG,GAAImrB,EAAO,CAAC3G,EAAE2G,GAAQ2mnB,EAAQ78mB,GAC7E95B,EAAMzI,KAAK29oB,IAAkBlgpB,EAAY8kC,IACzC,MACD,IAAK,UACkB9kC,EAAI8/oB,IAAgBjwoB,EAAE,GAAG,GAAI8xoB,EAAQ78mB,GAC3D95B,EAAMzI,KAAK29oB,IAAkBlgpB,EAAY8kC,IACzC,MACD,IAAK,YACkBk9nB,EAAoBnypB,EAAE,GAAG,GAAW7P,EAAI6P,EAAE,GAAG,GACnEo0pB,EAAQF,IAASJ,EAAU3B,EAAMl9nB,GACjC95B,EAAMzI,KAAK0hqB,EAAQ,IAAM/jB,IAAkBlgpB,EAAY8kC,IACvD,MACD,IAAK,aACJ95B,EAAMzI,KAAK,OAASyI,EAAM4nF,MAAQ,KAClC,MAMD,IAAK,UAEJwxkB,EAAWv0pB,EAAE,GAAG,GAChB,IAAI20pB,GAAOb,EAAS3ipB,OAAO,IAAIojpB,EAAQ,KAAOT,EAAS,IAAI,IAAIS,GAC3Dz1pB,EAAO61pB,EAAMA,EAAIV,KAAO,cAAgBn8pB,OAAOy8pB,GAEhDz1pB,GAA2B,UAAnBA,EAAKjJ,MAAM,EAAE,KAAmBo/B,EAAK2/nB,OAAM91pB,EAAOA,EAAKjJ,MAAM,IACxEsF,EAAMzI,KAAKoM,GACX,MAED,IAAK,WAEJ,IAA6E+1pB,EAAzEC,EAAsB90pB,EAAE,GAAG,GAE/B,GAF4Cu0pB,EAAWv0pB,EAAE,GAAG,KAEzDi1B,EAAK+6mB,MAAQ,GAGT,CACN,IAAI7snB,EAAI,GAQR,GAP0C,SAArC2woB,EAASgB,IAAU,IAAI,IAAI,IAAI,KACW,QAArChB,EAASgB,IAAU,IAAI,IAAI,IAAI,GACrChB,EAASgB,GAASP,IAAYT,EAASgB,GAASP,GAASQ,KAAO,IAClE5xoB,EAAI2woB,EAASviB,WAAWuiB,EAASgB,GAASP,GAASQ,KAAK,GAAK,KAG1D5xoB,EAAI2woB,EAASviB,WAAWgjB,EAAQ,GAAI,KACtCT,EAASgB,IAAYhB,EAASgB,GAASP,GAAUpxoB,GAAK2woB,EAASgB,GAASP,GAASN,UAC/E,GAAGH,EAAS,IAAMA,EAAS,GAAGS,GAAUpxoB,GAAK2woB,EAAS,GAAGS,GAASN,SAClE,CACJ,IAAIe,GAAYnB,IAAaC,EAAUgB,EAAS7/nB,IAAO,IAAIjrB,MAAM,MAC9DgrpB,EAAST,EAAU,GAAIpxoB,EAAI6xoB,EAAST,EAAU,GAC5CpxoB,GAAK,aACX,CACAhoB,EAAMzI,KAAKywB,GACX,KACD,CApBI2xoB,EAAU,IAAGA,GAAWA,GACxBhB,EAASgB,KAAUD,EAAaf,EAASgB,GAASP,IAoBlDM,IAAYA,EAAa,CAACZ,KAAM,gBACpC94pB,EAAMzI,KAAKmiqB,EAAWZ,MACtB,MAED,IAAK,WACJ,IAAIgB,EAAK,IAAKC,EAAK,IACnB,GAAGV,GAAW,EAAG,CAEhB,OADAC,EAAK,GACE3R,EAAQ,GAAG0R,GAAS,GAAG,IAE7B,KAAK,EAAGS,EAAKx4jB,IAAK,IAAKqmjB,EAAQ,GAAG0R,GAAS,GAAG,IAAMS,EAAI,MAExD,KAAK,EAAGA,EAAKx4jB,IAAK,KAAMqmjB,EAAQ,GAAG0R,GAAS,GAAG,IAAMS,EAAI,MAEzD,KAAK,EAAGC,EAAKz4jB,IAAK,IAAKqmjB,EAAQ,GAAG0R,GAAS,GAAG,IAAMU,EAAI,MAExD,KAAK,EAAGA,EAAKz4jB,IAAK,KAAMqmjB,EAAQ,GAAG0R,GAAS,GAAG,IAAMU,EAAI,MACzD,QAEC,GAAGjgoB,EAAKiknB,IAAK,MAAM,IAAI3kpB,MAAM,+BAAiCuupB,EAAQ,GAAG0R,GAAS,GAAG,IAEvFA,GAAW,CACZ,CACAr5pB,EAAMzI,KAAKuiqB,EAAK95pB,EAAM4nF,MAAQmykB,GAAK,MAEpC,IAAK,YAGL,IAAK,cA+CL,IAAK,aAGL,IAAK,eACJ/5pB,EAAMzI,KAAK,SAAU,MAhDtB,IAAK,SACJuY,EAAI,CAACA,EAAGjL,EAAE,GAAG,GAAY7P,EAAG6P,EAAE,GAAG,IACjC,IAAIuoC,EAAK,CAACt9B,EAAGkgB,EAAKlgB,EAAG9a,EAAEg7B,EAAKh7B,GAC5B,GAAG2jqB,EAASqB,QAAQhlB,IAAYlloB,IAAK,CACpC,IAAImqpB,EAAWtB,EAASqB,QAAQhlB,IAAYlloB,IAC5C9P,EAAMzI,KAAK4hqB,IAAkBc,EAAStjB,EAAQvpmB,EAAGurnB,EAAU7+nB,GAC5D,KAAO,CACN,IAAIogoB,GAAM,EACV,IAAIr7iB,EAAG,EAAEA,GAAI85iB,EAASwB,OAAOtjqB,SAAUgoH,EAGtC,GADAC,EAAK65iB,EAASwB,OAAOt7iB,KAClB/uG,EAAEA,EAAIgvG,EAAG,GAAGz1F,EAAEvZ,GAAKA,EAAEA,EAAIgvG,EAAG,GAAG57F,EAAEpT,MACjCA,EAAE9a,EAAI8pH,EAAG,GAAGz1F,EAAEr0B,GAAK8a,EAAE9a,EAAI8pH,EAAG,GAAG57F,EAAEluB,GAApC,CACAgL,EAAMzI,KAAK4hqB,IAAkBr6iB,EAAG,GAAI63hB,EAAQvpmB,EAAGurnB,EAAU7+nB,IACzDogoB,GAAM,EACN,KAH+C,CAK5CA,GAAKl6pB,EAAMzI,KAAkBsN,EAAE,GACpC,CACA,MAED,IAAK,WACJ7E,EAAMzI,KAAK,IAAMqgqB,IAAuB/ypB,EAAE,IAAkB,KAC5D,MAMD,IAAK,eACL,IAAK,mBACJw0pB,EAAUlmmB,EACV,MAQD,IAAK,aACJnzD,EAAMzI,KAAK,IACX,MAQD,IAAK,UAEJyI,EAAMzI,KAAK,QAAUsN,EAAE,GAAG4vN,IAAM,KAAO5vN,EAAE,GAAGukL,GAAK,KACjD,MAcD,IAAK,YACL,IAAK,aACL,IAAK,cACL,IAAK,aACL,IAAK,YACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,WACL,IAAK,YACJ,MAAM,IAAIhwL,MAAM,oBAIjB,QAAS,MAAM,IAAIA,MAAM,+BAAiCuD,OAAOkI,IAGlE,GAAgB,GAAbi1B,EAAK+6mB,MAAcwkB,GAAW,IAA+C,GAD/D,CAAC,eAAgB,mBAAoB,eACLj/pB,QAAQutpB,EAAQ,GAAGx0lB,GAAI,IAAW,CAElF,IAAIinmB,GAAQ,EACZ,QAFAv1pB,EAAI8ipB,EAAQ,GAAG0R,IAEN,GAAG,IAEX,KAAK,EAAGe,GAAQ,EAEhB,KAAK,EAEJd,EAAKh4jB,IAAK,IAAKz8F,EAAE,GAAG,IAAK,MAC1B,KAAK,EAAGu1pB,GAAQ,EAEhB,KAAK,EAEJd,EAAKh4jB,IAAK,KAAMz8F,EAAE,GAAG,IAAK,MAC3B,QAGC,GAFAy0pB,EAAK,GAEFx/nB,EAAKiknB,IAAK,MAAM,IAAI3kpB,MAAM,+BAAiCyL,EAAE,GAAG,IAErE7E,EAAMzI,MAAM6iqB,EAAQd,EAAK,IAAMt5pB,EAAM4nF,OAASwykB,EAAQ,GAAKd,IAC3DD,GAAW,CACZ,CACD,CACA,GAAGr5pB,EAAMnJ,OAAS,GAAKijC,EAAKiknB,IAAK,MAAM,IAAI3kpB,MAAM,qBACjD,OAAO4G,EAAM,EACd,CAqFA,SAASq6pB,IAAcrqoB,EAAelT,EAAchV,EAAcgyB,EAAMwgoB,GAEvE,IAAIC,EAAK7Y,IAAc5koB,EAAGhV,EAAGwypB,GAGzB/rB,EAnCL,SAA4Bj6oB,GAC3B,GAAY,MAATA,EAAe,CAEjB,IAAI0zB,EAAIm8mB,IAAQ,GAMhB,OALAn8mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,GACjBv4mB,EAAEu4mB,YAAY,EAAG,OACVv4mB,CACR,CAAO,OAAoCuxnB,IAAjB,iBAATjlpB,EAAqCA,EACpC,EACnB,CAuBUkmqB,CAAmBxqoB,EAAKpF,GAG7B6voB,EAAKt2B,IAAQ,GAEjBs2B,EAAGl6B,YAAY,EADH,IAEZk6B,EAAGl6B,YAAY,EAAG,GAIlB,IADA,IAAIxtkB,EAAKoxkB,IAAQn0mB,EAAK+iC,GAAGl8D,QACjBD,EAAI,EAAGA,EAAIo5B,EAAK+iC,GAAGl8D,SAAUD,EAAGm8D,EAAGn8D,GAAKo5B,EAAK+iC,GAAGn8D,GAGxD,OADUkioB,IAAQ,CAACyhC,EAAIhsB,EAAIksB,EAAI1nmB,GAEhC,CAIA,SAAS2nmB,IAAwBzopB,EAAMpb,EAAQijC,GAC9C,IAAIi8nB,EAAM9jpB,EAAK2unB,WAAW,GACtB62B,EAAOC,IAAWzlpB,EAAM8jpB,EAAKj8nB,GAC7Bqf,EAAKlnC,EAAK2unB,WAAW,GAEzB,MAAO,CAAC62B,EADGt+mB,EAAK,EAAIq+mB,IAAevlpB,EAAMknC,EAAIs+mB,EAAM39nB,GAAQ,KAE5D,CAGA,IAAI6goB,IAA+BD,IAE/BE,IAA8BF,IAM9BG,IAA8BH,IAE9BI,IAAgCJ,IAChC/D,IAAQ,CACV,EAAG,OACH,EAAG,OACH,EAAG,aACH,EAAG,YACH,EAAG,OACH,EAAG,UACH,EAAG,cACH,EAAG,aACH,EAAG,QACH,EAAG,gBACH,GAAI,OACJ,GAAI,aACJ,GAAI,cACJ,GAAI,cACJ,GAAI,cACJ,GAAI,OACJ,GAAI,QACJ,GAAI,MACJ,GAAI,iBACJ,GAAI,mBACJ,GAAI,iBACJ,GAAI,oBACJ,GAAI,OACJ,GAAI,UACJ,GAAI,mBACJ,GAAI,YACJ,GAAI,UACJ,GAAI,gBACJ,GAAI,cACJ,GAAI,YACJ,GAAI,UACJ,GAAI,cACJ,GAAI,eACJ,GAAI,eACJ,GAAI,OACJ,GAAI,cACJ,GAAI,QACJ,GAAI,gBACJ,GAAI,YACJ,GAAI,QACJ,GAAI,SACJ,GAAI,kBACJ,GAAI,eACJ,GAAI,OACJ,GAAI,MACJ,GAAI,OACJ,GAAI,QACJ,GAAI,QACJ,GAAI,gBACJ,GAAI,cACJ,GAAI,SACJ,GAAI,aACJ,GAAI,YACJ,GAAI,cACJ,GAAI,eACJ,GAAI,eACJ,GAAI,eACJ,GAAI,mBACJ,GAAI,mBACJ,GAAI,eACJ,GAAI,cACJ,GAAI,iBACJ,GAAI,eACJ,GAAI,cACJ,GAAI,kBACJ,GAAI,cACJ,GAAI,YACJ,GAAI,cACJ,GAAI,YACJ,GAAI,gBACJ,GAAI,OACJ,GAAI,SACJ,GAAI,cACJ,GAAI,YACJ,GAAI,eACJ,GAAI,mBACJ,GAAI,WACJ,GAAI,aACJ,GAAI,UACJ,GAAI,QACJ,GAAI,gBACJ,GAAI,cACJ,GAAI,cACJ,GAAI,QACJ,GAAI,UACJ,GAAI,OACJ,GAAI,SACJ,GAAI,YACJ,GAAI,UACJ,GAAI,eACJ,GAAI,gBACJ,GAAI,iBACJ,IAAK,iBACL,IAAK,oBACL,IAAK,oBACL,IAAK,WACL,IAAK,gBACL,IAAK,gBACL,IAAK,gBACL,IAAK,gBACL,IAAK,eACL,IAAK,SACL,IAAK,cACL,IAAK,gBACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,MACL,IAAK,cACL,IAAK,iBACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,eACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,kBACL,IAAK,YACL,IAAK,iBACL,IAAK,cACL,IAAK,eACL,IAAK,eACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,gBACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,YACL,IAAK,aACL,IAAK,UACL,IAAK,OACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,iBACL,IAAK,cACL,IAAK,oBACL,IAAK,gBACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,cACL,IAAK,qBACL,IAAK,SACL,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,eACL,IAAK,eACL,IAAK,iBACL,IAAK,eACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,YACL,IAAK,YACL,IAAK,gBACL,IAAK,cACL,IAAK,eACL,IAAK,kBACL,IAAK,oBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,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,I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,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,IAAW,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,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,MAAO,GAkCT,IAKIwE,IAAiC,qBAARtznB,IAE7B,SAASuznB,IAAW/M,EAAavlnB,EAAgBsqI,GAChD,IAAIp8K,EAAI,EAA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","sources":["../node_modules/lodash/stubFalse.js","../node_modules/lodash/_baseLt.js","../node_modules/html2pdf.js/dist/html2pdf.js","../node_modules/toggle-selection/index.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_arrayMap.js","../node_modules/dayjs/plugin/localeData.js","../node_modules/lodash/_baseSortBy.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/dayjs/dayjs.min.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/lodash/max.js","../node_modules/react-gtm-module/dist/index.js","../node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.js","../node_modules/react/jsx-runtime.js","../node_modules/lodash/isString.js","../node_modules/lodash/upperFirst.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/toNumber.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/lodash/uniqBy.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/toString.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_nativeKeys.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/lodash/_apply.js","../node_modules/lodash/isTypedArray.js","../node_modules/json2mq/index.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/lodash/_arrayIncludesWith.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/mapValues.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_setToArray.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_baseSome.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/lodash/isPlainObject.js","../node_modules/file-saver/src/FileSaver.js","../node_modules/lodash/findIndex.js","../node_modules/lodash/_baseOrderBy.js","../node_modules/lodash/constant.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_hashSet.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/get.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/eq.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/lodash/identity.js","../node_modules/lodash/_createRange.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/map.js","../node_modules/lodash/lodash.js","../node_modules/lodash/flatMap.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/property.js","../node_modules/lodash/debounce.js","../node_modules/redux-persist/lib/storage/getStorage.js","../node_modules/lodash/_strictIndexOf.js","../node_modules/lodash/isArray.js","../node_modules/lodash/last.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_listCacheGet.js","../node_modules/react/cjs/react.production.min.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/react-dom/client.js","../node_modules/lodash/_baseUniq.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/some.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseEvery.js","../node_modules/lodash/now.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/react/index.js","../node_modules/lodash/_hashDelete.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/prop-types/index.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_Map.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/lodash/isNaN.js","../node_modules/copy-to-clipboard/index.js","../node_modules/lodash/_arrayEvery.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/react-gtm-module/dist/Snippets.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/noop.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/memoize.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/_arrayIncludes.js","../node_modules/lodash/_compareMultiple.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/isLength.js","../node_modules/moment/moment.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/isBoolean.js","../node_modules/react-fast-compare/index.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_root.js","../node_modules/dayjs/plugin/weekYear.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_compareAscending.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/range.js","../node_modules/lodash/isObject.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/min.js","../node_modules/redux-persist/lib/storage/createWebStorage.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_nodeUtil.js","../node_modules/dayjs/plugin/weekOfYear.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/every.js","../node_modules/dayjs/plugin/advancedFormat.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_ListCache.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/use-sync-external-store/with-selector.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/eventemitter3/index.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/sortBy.js","../node_modules/react-gtm-module/dist/TagManager.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/lodash/_baseGt.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_stackGet.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/fileloading.js","../node_modules/jspdf/src/modules/context2d.js","../node_modules/jspdf/src/modules/filters.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/lodash/stubArray.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_getNative.js","../node_modules/react-dom/index.js","../node_modules/lodash/_cacheHas.js","../node_modules/classnames/index.js","../node_modules/react-side-effect/lib/index.js","../node_modules/lodash/_createSet.js","../node_modules/lodash/_castSlice.js","../node_modules/decimal.js-light/decimal.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_baseSetToString.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/keys.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_hashHas.js","../node_modules/react-gtm-module/dist/utils/warn.js","../node_modules/scheduler/index.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/redux-persist/lib/storage/index.js","../node_modules/lodash/_SetCache.js","../node_modules/dayjs/plugin/customParseFormat.js","../node_modules/lodash/find.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/toInteger.js","../node_modules/lodash/isNumber.js","../node_modules/lodash/_isIndex.js","../node_modules/dayjs/plugin/weekday.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_baseRange.js","../node_modules/lodash/isNil.js","../node_modules/lodash/_baseExtremum.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/throttle.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_createFind.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","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/deprecations.ts","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/rc-util/es/React/isFragment.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/rc-util/es/warning.js","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-util/es/ref.js","../node_modules/rc-resize-observer/es/Collection.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/rc-resize-observer/es/utils/observerUtil.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/rc-resize-observer/es/SingleObserver/DomWrapper.js","../node_modules/rc-resize-observer/es/SingleObserver/index.js","../node_modules/rc-resize-observer/es/index.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/hooks/useLayoutEffect.js","../node_modules/rc-overflow/es/Item.js","../node_modules/rc-util/es/hooks/useEvent.js","../node_modules/rc-util/es/raf.js","../node_modules/rc-overflow/es/hooks/useEffectState.js","../node_modules/rc-overflow/es/hooks/channelUpdate.js","../node_modules/rc-overflow/es/context.js","../node_modules/rc-overflow/es/RawItem.js","../node_modules/rc-overflow/es/Overflow.js","../node_modules/rc-overflow/es/index.js","../node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-util/es/hooks/useMergedState.js","../node_modules/rc-util/es/isEqual.js","../node_modules/rc-menu/es/context/IdContext.js","../node_modules/rc-menu/es/context/MenuContext.js","../node_modules/rc-menu/es/context/PathContext.js","../node_modules/rc-menu/es/context/PrivateContext.js","../node_modules/rc-util/es/Dom/isVisible.js","../node_modules/rc-util/es/Dom/focus.js","../node_modules/rc-util/es/KeyCode.js","../node_modules/rc-menu/es/hooks/useAccessibility.js","../node_modules/rc-menu/es/hooks/useKeyRecords.js","../node_modules/rc-menu/es/utils/timeUtil.js","../node_modules/rc-menu/es/hooks/useMemoCallback.js","../node_modules/rc-menu/es/hooks/useUUID.js","../node_modules/rc-util/es/omit.js","../node_modules/rc-menu/es/hooks/useActive.js","../node_modules/rc-menu/es/hooks/useDirectionStyle.js","../node_modules/rc-menu/es/Icon.js","../node_modules/rc-menu/es/utils/warnUtil.js","../node_modules/rc-menu/es/MenuItem.js","../node_modules/rc-menu/es/SubMenu/SubMenuList.js","../node_modules/rc-menu/es/utils/commonUtil.js","../node_modules/@rc-component/portal/es/Context.js","../node_modules/@rc-component/portal/es/useDom.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/rc-util/es/getScrollBarSize.js","../node_modules/@rc-component/portal/es/useScrollLocker.js","../node_modules/@rc-component/portal/es/util.js","../node_modules/@rc-component/portal/es/mock.js","../node_modules/@rc-component/portal/es/Portal.js","../node_modules/@rc-component/portal/es/index.js","../node_modules/rc-util/es/Dom/shadow.js","../node_modules/rc-util/es/hooks/useId.js","../node_modules/rc-util/es/isMobile.js","../node_modules/rc-motion/es/context.js","../node_modules/rc-motion/es/DomWrapper.js","../node_modules/rc-util/es/utils/get.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/rc-util/es/utils/set.js","../node_modules/rc-motion/es/interface.js","../node_modules/rc-motion/es/util/motion.js","../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/rc-motion/es/hooks/useStepQueue.js","../node_modules/rc-motion/es/hooks/useNextFrame.js","../node_modules/rc-motion/es/hooks/useStatus.js","../node_modules/rc-util/es/hooks/useSyncState.js","../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../node_modules/rc-motion/es/CSSMotion.js","../node_modules/rc-motion/es/util/diff.js","../node_modules/rc-motion/es/CSSMotionList.js","../node_modules/rc-motion/es/index.js","../node_modules/@rc-component/trigger/es/Popup/Arrow.js","../node_modules/@rc-component/trigger/es/Popup/Mask.js","../node_modules/@rc-component/trigger/es/Popup/PopupContent.js","../node_modules/@rc-component/trigger/es/Popup/index.js","../node_modules/@rc-component/trigger/es/TriggerWrapper.js","../node_modules/@rc-component/trigger/es/context.js","../node_modules/@rc-component/trigger/es/hooks/useAction.js","../node_modules/@rc-component/trigger/es/util.js","../node_modules/@rc-component/trigger/es/hooks/useAlign.js","../node_modules/@rc-component/trigger/es/index.js","../node_modules/@rc-component/trigger/es/hooks/useWatch.js","../node_modules/@rc-component/trigger/es/hooks/useWinClick.js","../node_modules/rc-menu/es/placements.js","../node_modules/rc-menu/es/utils/motionUtil.js","../node_modules/rc-menu/es/SubMenu/PopupTrigger.js","../node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js","../node_modules/rc-menu/es/SubMenu/index.js","../node_modules/rc-menu/es/Divider.js","../node_modules/rc-menu/es/MenuItemGroup.js","../node_modules/rc-menu/es/utils/nodeUtil.js","../node_modules/rc-menu/es/Menu.js","../node_modules/rc-menu/es/index.js","../node_modules/@ant-design/icons-svg/es/asn/BarsOutlined.js","../node_modules/@ant-design/fast-color/es/FastColor.js","../node_modules/@ant-design/colors/es/generate.js","../node_modules/@ant-design/colors/es/presets.js","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons/es/icons/BarsOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LeftOutlined.js","../node_modules/@ant-design/icons/es/icons/LeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/RightOutlined.js","../node_modules/@ant-design/icons/es/icons/RightOutlined.js","../node_modules/antd/es/config-provider/context.js","../node_modules/antd/es/layout/context.js","../node_modules/@ant-design/cssinjs/node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/@ant-design/cssinjs/es/Cache.js","../node_modules/@ant-design/cssinjs/es/StyleContext.js","../node_modules/@ant-design/cssinjs/es/theme/calc/CSSCalculator.js","../node_modules/@ant-design/cssinjs/es/theme/ThemeCache.js","../node_modules/@ant-design/cssinjs/es/theme/Theme.js","../node_modules/@ant-design/cssinjs/es/theme/createTheme.js","../node_modules/@ant-design/cssinjs/es/util/index.js","../node_modules/@ant-design/cssinjs/es/util/css-variables.js","../node_modules/@ant-design/cssinjs/es/hooks/useCompatibleInsertionEffect.js","../node_modules/@ant-design/cssinjs/es/hooks/useEffectCleanupRegister.js","../node_modules/@ant-design/cssinjs/es/hooks/useHMR.js","../node_modules/@ant-design/cssinjs/es/hooks/useGlobalCache.js","../node_modules/@ant-design/cssinjs/es/hooks/useCacheToken.js","../node_modules/@ant-design/cssinjs/node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/@ant-design/cssinjs/node_modules/stylis/src/Enum.js","../node_modules/@ant-design/cssinjs/node_modules/stylis/src/Utility.js","../node_modules/@ant-design/cssinjs/node_modules/stylis/src/Serializer.js","../node_modules/@ant-design/cssinjs/node_modules/stylis/src/Tokenizer.js","../node_modules/@ant-design/cssinjs/node_modules/stylis/src/Parser.js","../node_modules/@ant-design/cssinjs/es/util/cacheMapUtil.js","../node_modules/@ant-design/cssinjs/es/hooks/useStyleRegister.js","../node_modules/@ant-design/cssinjs/es/hooks/useCSSVarRegister.js","../node_modules/@ant-design/cssinjs/es/extractStyle.js","../node_modules/@ant-design/cssinjs/es/Keyframes.js","../node_modules/@ant-design/cssinjs/es/transformers/legacyLogicalProperties.js","../node_modules/@ant-design/cssinjs-utils/es/util/calc/calculator.js","../node_modules/@ant-design/cssinjs-utils/es/util/calc/CSSCalculator.js","../node_modules/@ant-design/cssinjs-utils/es/util/calc/NumCalculator.js","../node_modules/@ant-design/cssinjs-utils/es/util/calc/index.js","../node_modules/@ant-design/cssinjs-utils/es/util/getCompVarPrefix.js","../node_modules/@ant-design/cssinjs-utils/es/util/getComponentToken.js","../node_modules/@ant-design/cssinjs-utils/es/util/statistic.js","../node_modules/@ant-design/cssinjs-utils/es/util/getDefaultComponentToken.js","../node_modules/@ant-design/cssinjs-utils/es/util/maxmin.js","../node_modules/@ant-design/cssinjs-utils/es/_util/hooks/useUniqueMemo.js","../node_modules/@ant-design/cssinjs-utils/es/hooks/useCSP.js","../node_modules/@ant-design/cssinjs-utils/es/util/genStyleUtils.js","../node_modules/antd/es/style/index.js","../node_modules/antd/es/theme/themes/seed.js","../node_modules/antd/es/theme/context.js","../node_modules/antd/es/theme/themes/shared/genRadius.js","../node_modules/antd/es/theme/themes/shared/genControlHeight.js","../node_modules/antd/es/theme/themes/shared/genFontSizes.js","../node_modules/antd/es/theme/themes/shared/genFontMapToken.js","../node_modules/antd/es/theme/themes/default/colorAlgorithm.js","../node_modules/antd/es/theme/themes/default/colors.js","../node_modules/antd/es/theme/themes/default/theme.js","../node_modules/antd/es/theme/themes/default/index.js","../node_modules/antd/es/theme/themes/shared/genColorMapToken.js","../node_modules/antd/es/theme/themes/shared/genSizeMapToken.js","../node_modules/antd/es/theme/themes/shared/genCommonMapToken.js","../node_modules/antd/es/theme/util/getAlphaColor.js","../node_modules/antd/es/theme/util/alias.js","../node_modules/antd/es/theme/useToken.js","../node_modules/antd/es/theme/util/genStyleUtils.js","../node_modules/antd/es/layout/style/index.js","../node_modules/antd/es/layout/style/sider.js","../node_modules/antd/es/layout/Sider.js","../node_modules/@ant-design/icons-svg/es/asn/EllipsisOutlined.js","../node_modules/@ant-design/icons/es/icons/EllipsisOutlined.js","../node_modules/antd/es/_util/motion.js","../node_modules/antd/es/_util/reactNode.js","../node_modules/antd/es/config-provider/hooks/useCSSVarCls.js","../node_modules/antd/es/menu/MenuContext.js","../node_modules/antd/es/menu/MenuDivider.js","../node_modules/rc-tooltip/es/Popup.js","../node_modules/rc-tooltip/es/placements.js","../node_modules/rc-tooltip/es/Tooltip.js","../node_modules/rc-tooltip/es/index.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/rc-field-form/es/FieldContext.js","../node_modules/rc-field-form/es/ListContext.js","../node_modules/rc-field-form/es/utils/typeUtil.js","../node_modules/@rc-component/async-validator/es/messages.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@rc-component/async-validator/es/util.js","../node_modules/@rc-component/async-validator/es/rule/enum.js","../node_modules/@rc-component/async-validator/es/rule/required.js","../node_modules/@rc-component/async-validator/es/rule/url.js","../node_modules/@rc-component/async-validator/es/rule/type.js","../node_modules/@rc-component/async-validator/es/rule/whitespace.js","../node_modules/@rc-component/async-validator/es/rule/index.js","../node_modules/@rc-component/async-validator/es/rule/range.js","../node_modules/@rc-component/async-validator/es/rule/pattern.js","../node_modules/@rc-component/async-validator/es/validator/type.js","../node_modules/@rc-component/async-validator/es/validator/index.js","../node_modules/@rc-component/async-validator/es/validator/string.js","../node_modules/@rc-component/async-validator/es/validator/method.js","../node_modules/@rc-component/async-validator/es/validator/number.js","../node_modules/@rc-component/async-validator/es/validator/boolean.js","../node_modules/@rc-component/async-validator/es/validator/regexp.js","../node_modules/@rc-component/async-validator/es/validator/integer.js","../node_modules/@rc-component/async-validator/es/validator/float.js","../node_modules/@rc-component/async-validator/es/validator/array.js","../node_modules/@rc-component/async-validator/es/validator/object.js","../node_modules/@rc-component/async-validator/es/validator/enum.js","../node_modules/@rc-component/async-validator/es/validator/pattern.js","../node_modules/@rc-component/async-validator/es/validator/date.js","../node_modules/@rc-component/async-validator/es/validator/required.js","../node_modules/@rc-component/async-validator/es/validator/any.js","../node_modules/@rc-component/async-validator/es/index.js","../node_modules/rc-field-form/es/utils/messages.js","../node_modules/rc-field-form/es/utils/validateUtil.js","../node_modules/rc-field-form/es/utils/valueUtil.js","../node_modules/rc-field-form/es/Field.js","../node_modules/rc-field-form/es/List.js","../node_modules/rc-field-form/es/utils/NameMap.js","../node_modules/rc-field-form/es/useForm.js","../node_modules/rc-field-form/es/utils/asyncUtil.js","../node_modules/rc-field-form/es/FormContext.js","../node_modules/rc-field-form/es/Form.js","../node_modules/rc-field-form/es/useWatch.js","../node_modules/rc-field-form/es/index.js","../node_modules/antd/es/form/context.js","../node_modules/antd/es/config-provider/SizeContext.js","../node_modules/antd/es/config-provider/hooks/useSize.js","../node_modules/antd/es/space/style/compact.js","../node_modules/antd/es/space/style/index.js","../node_modules/antd/es/space/Compact.js","../node_modules/antd/es/_util/ContextIsolator.js","../node_modules/antd/es/_util/zindexContext.js","../node_modules/antd/es/_util/hooks/useZIndex.js","../node_modules/antd/es/style/roundedArrow.js","../node_modules/antd/es/style/placementArrow.js","../node_modules/antd/es/_util/placements.js","../node_modules/antd/es/_util/warning.js","../node_modules/antd/es/style/motion/motion.js","../node_modules/antd/es/style/motion/zoom.js","../node_modules/antd/es/theme/interface/presetColors.js","../node_modules/antd/es/theme/util/genPresetColor.js","../node_modules/antd/es/tooltip/style/index.js","../node_modules/antd/es/_util/colors.js","../node_modules/antd/es/tooltip/util.js","../node_modules/antd/es/tooltip/PurePanel.js","../node_modules/antd/es/tooltip/index.js","../node_modules/antd/es/menu/MenuItem.js","../node_modules/antd/es/menu/OverrideContext.js","../node_modules/antd/es/style/motion/collapse.js","../node_modules/antd/es/style/motion/slide.js","../node_modules/antd/es/menu/style/horizontal.js","../node_modules/antd/es/menu/style/rtl.js","../node_modules/antd/es/menu/style/theme.js","../node_modules/antd/es/menu/style/vertical.js","../node_modules/antd/es/menu/style/index.js","../node_modules/antd/es/menu/SubMenu.js","../node_modules/antd/es/menu/menu.js","../node_modules/antd/es/menu/index.js","../node_modules/rc-dropdown/es/hooks/useAccessibility.js","../node_modules/rc-dropdown/es/Overlay.js","../node_modules/rc-dropdown/es/placements.js","../node_modules/rc-dropdown/es/Dropdown.js","../node_modules/rc-dropdown/es/index.js","../node_modules/antd/es/_util/isPrimitive.js","../node_modules/antd/es/form/validateMessagesContext.js","../node_modules/rc-pagination/es/locale/en_US.js","../node_modules/rc-picker/es/locale/en_US.js","../node_modules/rc-picker/es/locale/common.js","../node_modules/antd/es/time-picker/locale/en_US.js","../node_modules/antd/es/date-picker/locale/en_US.js","../node_modules/antd/es/locale/en_US.js","../node_modules/antd/es/calendar/locale/en_US.js","../node_modules/antd/es/modal/locale.js","../node_modules/antd/es/locale/context.js","../node_modules/antd/es/locale/index.js","../node_modules/antd/es/config-provider/cssVariables.js","../node_modules/antd/es/config-provider/DisabledContext.js","../node_modules/antd/es/config-provider/hooks/useConfig.js","../node_modules/antd/es/config-provider/hooks/useThemeKey.js","../node_modules/antd/es/config-provider/MotionWrapper.js","../node_modules/antd/es/config-provider/PropWarning.js","../node_modules/antd/es/theme/util/useResetIconStyle.js","../node_modules/antd/es/config-provider/index.js","../node_modules/antd/es/config-provider/hooks/useTheme.js","../node_modules/antd/es/_util/PurePanel.js","../node_modules/antd/es/style/motion/move.js","../node_modules/antd/es/dropdown/style/status.js","../node_modules/antd/es/dropdown/style/index.js","../node_modules/antd/es/dropdown/dropdown.js","../node_modules/antd/es/_util/wave/style.js","../node_modules/antd/es/_util/wave/interface.js","../node_modules/rc-util/es/React/render.js","../node_modules/antd/es/config-provider/UnstableContext.js","../node_modules/antd/es/_util/wave/util.js","../node_modules/antd/es/_util/wave/WaveEffect.js","../node_modules/antd/es/_util/wave/useWave.js","../node_modules/antd/es/_util/wave/index.js","../node_modules/antd/es/button/button-group.js","../node_modules/antd/es/button/buttonHelpers.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/@ant-design/icons/es/icons/LoadingOutlined.js","../node_modules/antd/es/button/IconWrapper.js","../node_modules/antd/es/button/DefaultLoadingIcon.js","../node_modules/antd/es/button/style/group.js","../node_modules/@rc-component/color-picker/es/color.js","../node_modules/@rc-component/color-picker/es/util.js","../node_modules/antd/es/color-picker/color.js","../node_modules/antd/es/color-picker/components/ColorPresets.js","../node_modules/antd/es/button/style/token.js","../node_modules/antd/es/button/style/index.js","../node_modules/antd/es/style/compact-item.js","../node_modules/antd/es/style/compact-item-vertical.js","../node_modules/antd/es/button/style/compact.js","../node_modules/antd/es/button/button.js","../node_modules/antd/es/button/index.js","../node_modules/antd/es/_util/gapSize.js","../node_modules/antd/es/space/context.js","../node_modules/antd/es/space/Item.js","../node_modules/antd/es/space/index.js","../node_modules/antd/es/dropdown/dropdown-button.js","../node_modules/antd/es/dropdown/index.js","../node_modules/antd/es/_util/responsiveObserver.js","../node_modules/antd/es/_util/hooks/useForceUpdate.js","../node_modules/antd/es/grid/hooks/useBreakpoint.js","../node_modules/antd/es/avatar/AvatarContext.js","../node_modules/antd/es/avatar/style/index.js","../node_modules/antd/es/avatar/Avatar.js","../node_modules/antd/es/_util/getRenderPropValue.js","../node_modules/antd/es/popover/style/index.js","../node_modules/antd/es/popover/PurePanel.js","../node_modules/antd/es/popover/index.js","../node_modules/antd/es/avatar/AvatarGroup.js","../node_modules/antd/es/avatar/index.js","../node_modules/antd/es/badge/style/index.js","../node_modules/antd/es/badge/style/ribbon.js","../node_modules/antd/es/badge/Ribbon.js","../node_modules/antd/es/badge/SingleNumber.js","../node_modules/antd/es/badge/ScrollNumber.js","../node_modules/antd/es/badge/index.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CheckCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CloseCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleFilled.js","../node_modules/@ant-design/icons/es/icons/ExclamationCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleFilled.js","../node_modules/@ant-design/icons/es/icons/InfoCircleFilled.js","../node_modules/antd/es/locale/useLocale.js","../node_modules/antd/es/_util/ActionButton.js","../node_modules/antd/es/modal/context.js","../node_modules/antd/es/modal/components/ConfirmCancelBtn.js","../node_modules/antd/es/modal/components/ConfirmOkBtn.js","../node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseOutlined.js","../node_modules/rc-dialog/es/context.js","../node_modules/rc-util/es/pickAttrs.js","../node_modules/rc-dialog/es/util.js","../node_modules/rc-dialog/es/Dialog/Content/MemoChildren.js","../node_modules/rc-dialog/es/Dialog/Content/Panel.js","../node_modules/rc-dialog/es/Dialog/Content/index.js","../node_modules/rc-dialog/es/Dialog/Mask.js","../node_modules/rc-dialog/es/Dialog/index.js","../node_modules/rc-dialog/es/DialogWrap.js","../node_modules/rc-dialog/es/index.js","../node_modules/antd/es/_util/hooks/useClosable.js","../node_modules/antd/es/_util/styleChecker.js","../node_modules/antd/es/skeleton/Element.js","../node_modules/antd/es/skeleton/style/index.js","../node_modules/antd/es/skeleton/Avatar.js","../node_modules/antd/es/skeleton/Image.js","../node_modules/antd/es/skeleton/Input.js","../node_modules/antd/es/skeleton/Node.js","../node_modules/antd/es/skeleton/Paragraph.js","../node_modules/antd/es/skeleton/Title.js","../node_modules/antd/es/skeleton/Skeleton.js","../node_modules/antd/es/skeleton/Button.js","../node_modules/antd/es/skeleton/index.js","../node_modules/antd/es/watermark/context.js","../node_modules/antd/es/modal/components/NormalCancelBtn.js","../node_modules/antd/es/modal/components/NormalOkBtn.js","../node_modules/antd/es/modal/shared.js","../node_modules/antd/es/grid/style/index.js","../node_modules/antd/es/style/motion/fade.js","../node_modules/antd/es/modal/style/index.js","../node_modules/antd/es/modal/Modal.js","../node_modules/antd/es/modal/style/confirm.js","../node_modules/antd/es/modal/ConfirmDialog.js","../node_modules/antd/es/modal/destroyFns.js","../node_modules/antd/es/modal/confirm.js","../node_modules/antd/es/modal/PurePanel.js","../node_modules/antd/es/modal/useModal/HookModal.js","../node_modules/antd/es/modal/useModal/index.js","../node_modules/antd/es/_util/hooks/usePatchElement.js","../node_modules/antd/es/modal/index.js","../node_modules/@ant-design/icons-svg/es/asn/UserOutlined.js","../node_modules/@ant-design/icons/es/icons/UserOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CarryOutOutlined.js","../node_modules/@ant-design/icons/es/icons/CarryOutOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LogoutOutlined.js","../node_modules/@ant-design/icons/es/icons/LogoutOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/LoginOutlined.js","../node_modules/@ant-design/icons/es/icons/LoginOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/UserAddOutlined.js","../node_modules/@ant-design/icons/es/icons/UserAddOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/HomeOutlined.js","../node_modules/@ant-design/icons/es/icons/HomeOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SearchOutlined.js","../node_modules/@ant-design/icons/es/icons/SearchOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ShoppingCartOutlined.js","../node_modules/@ant-design/icons/es/icons/ShoppingCartOutlined.js","../node_modules/react-redux/src/utils/batch.ts","../node_modules/react-redux/src/utils/Subscription.ts","../node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.ts","../node_modules/react-redux/src/utils/hoistStatics.ts","../node_modules/react-redux/src/components/Context.ts","../node_modules/react-redux/src/components/Provider.tsx","../node_modules/react-redux/src/hooks/useReduxContext.ts","../node_modules/react-redux/src/hooks/useStore.ts","../node_modules/react-redux/src/hooks/useDispatch.ts","../node_modules/react-redux/src/hooks/useSelector.ts","../node_modules/redux/src/utils/formatProdErrorMessage.ts","../node_modules/redux/src/utils/symbol-observable.ts","../node_modules/redux/src/utils/actionTypes.ts","../node_modules/redux/src/utils/isPlainObject.ts","../node_modules/redux/src/createStore.ts","../node_modules/redux/src/combineReducers.ts","../node_modules/redux/src/compose.ts","../node_modules/redux-thunk/dist/redux-thunk.mjs","../node_modules/immer/src/utils/env.ts","../node_modules/immer/src/utils/errors.ts","../node_modules/immer/src/utils/common.ts","../node_modules/immer/src/utils/plugins.ts","../node_modules/immer/src/core/scope.ts","../node_modules/immer/src/core/finalize.ts","../node_modules/immer/src/core/proxy.ts","../node_modules/immer/src/core/immerClass.ts","../node_modules/immer/src/core/current.ts","../node_modules/immer/src/immer.ts","../node_modules/@reduxjs/toolkit/src/createDraftSafeSelector.ts","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/tsHelpers.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/redux/src/utils/isAction.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/getDefaultEnhancers.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/matchers.ts","../node_modules/@reduxjs/toolkit/src/nanoid.ts","../node_modules/@reduxjs/toolkit/src/createAsyncThunk.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/combineSlices.ts","../node_modules/@reduxjs/toolkit/src/formatProdErrorMessage.ts","../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","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","Redux/slice/cartSlice.js","Redux/slice/customerSlice.js","../node_modules/react-helmet/es/Helmet.js","../node_modules/antd/es/input/style/token.js","../node_modules/antd/es/input/style/variants.js","../node_modules/antd/es/input/style/index.js","../node_modules/antd/es/input/Group.js","../node_modules/rc-input/es/utils/commonUtils.js","../node_modules/rc-input/es/BaseInput.js","../node_modules/rc-input/es/hooks/useCount.js","../node_modules/rc-input/es/Input.js","../node_modules/rc-input/es/index.js","../node_modules/antd/es/_util/getAllowClear.js","../node_modules/antd/es/_util/statusUtils.js","../node_modules/antd/es/form/hooks/useVariants.js","../node_modules/antd/es/input/hooks/useRemovePasswordTimeout.js","../node_modules/antd/es/input/Input.js","../node_modules/antd/es/input/utils.js","../node_modules/antd/es/input/style/otp.js","../node_modules/antd/es/input/OTP/OTPInput.js","../node_modules/antd/es/input/OTP/index.js","../node_modules/@ant-design/icons-svg/es/asn/EyeInvisibleOutlined.js","../node_modules/@ant-design/icons/es/icons/EyeInvisibleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/EyeOutlined.js","../node_modules/@ant-design/icons/es/icons/EyeOutlined.js","../node_modules/antd/es/input/Password.js","../node_modules/antd/es/input/Search.js","../node_modules/rc-textarea/es/calculateNodeHeight.js","../node_modules/rc-textarea/es/ResizableTextArea.js","../node_modules/rc-textarea/es/TextArea.js","../node_modules/rc-textarea/es/index.js","../node_modules/antd/es/input/style/textarea.js","../node_modules/antd/es/input/TextArea.js","../node_modules/antd/es/input/index.js","../node_modules/antd/es/_util/extendsObject.js","../node_modules/antd/es/empty/empty.js","../node_modules/antd/es/empty/simple.js","../node_modules/antd/es/empty/style/index.js","../node_modules/antd/es/empty/index.js","../node_modules/antd/es/config-provider/defaultRenderEmpty.js","../node_modules/antd/es/grid/RowContext.js","../node_modules/antd/es/grid/row.js","../node_modules/@ant-design/icons-svg/es/asn/DoubleLeftOutlined.js","../node_modules/@ant-design/icons/es/icons/DoubleLeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DoubleRightOutlined.js","../node_modules/@ant-design/icons/es/icons/DoubleRightOutlined.js","../node_modules/rc-pagination/es/locale/zh_CN.js","../node_modules/rc-pagination/es/Options.js","../node_modules/rc-pagination/es/Pager.js","../node_modules/rc-pagination/es/Pagination.js","../node_modules/rc-select/es/TransBtn.js","../node_modules/rc-select/es/hooks/useAllowClear.js","../node_modules/rc-select/es/hooks/useBaseProps.js","../node_modules/rc-select/es/hooks/useLock.js","../node_modules/rc-select/es/Selector/Input.js","../node_modules/rc-select/es/utils/commonUtil.js","../node_modules/rc-select/es/Selector/MultipleSelector.js","../node_modules/rc-select/es/hooks/useLayoutEffect.js","../node_modules/rc-select/es/Selector/SingleSelector.js","../node_modules/rc-select/es/Selector/index.js","../node_modules/rc-select/es/utils/keyUtil.js","../node_modules/rc-select/es/SelectTrigger.js","../node_modules/rc-select/es/utils/valueUtil.js","../node_modules/rc-select/es/SelectContext.js","../node_modules/rc-select/es/BaseSelect/Polite.js","../node_modules/rc-select/es/BaseSelect/index.js","../node_modules/rc-select/es/hooks/useDelayReset.js","../node_modules/rc-select/es/hooks/useSelectTriggerControl.js","../node_modules/rc-select/es/OptGroup.js","../node_modules/rc-select/es/Option.js","../node_modules/rc-virtual-list/es/Filler.js","../node_modules/rc-virtual-list/es/Item.js","../node_modules/rc-virtual-list/es/hooks/useDiffItem.js","../node_modules/rc-virtual-list/es/utils/algorithmUtil.js","../node_modules/rc-virtual-list/es/utils/isFirefox.js","../node_modules/rc-virtual-list/es/hooks/useOriginScroll.js","../node_modules/rc-virtual-list/es/hooks/useFrameWheel.js","../node_modules/rc-virtual-list/es/utils/CacheMap.js","../node_modules/rc-virtual-list/es/hooks/useHeights.js","../node_modules/rc-virtual-list/es/hooks/useMobileTouchMove.js","../node_modules/rc-virtual-list/es/hooks/useScrollDrag.js","../node_modules/rc-virtual-list/es/ScrollBar.js","../node_modules/rc-virtual-list/es/utils/scrollbarUtil.js","../node_modules/rc-virtual-list/es/List.js","../node_modules/rc-virtual-list/es/hooks/useScrollTo.js","../node_modules/rc-virtual-list/es/hooks/useGetSize.js","../node_modules/rc-virtual-list/es/hooks/useChildren.js","../node_modules/rc-virtual-list/es/index.js","../node_modules/rc-select/es/OptionList.js","../node_modules/rc-select/es/utils/platformUtil.js","../node_modules/rc-select/es/hooks/useFilterOptions.js","../node_modules/rc-select/es/hooks/useId.js","../node_modules/rc-select/es/utils/legacyUtil.js","../node_modules/rc-select/es/hooks/useOptions.js","../node_modules/rc-select/es/hooks/useRefFunc.js","../node_modules/rc-select/es/Select.js","../node_modules/rc-select/es/hooks/useCache.js","../node_modules/rc-select/es/index.js","../node_modules/antd/es/select/mergedBuiltinPlacements.js","../node_modules/antd/es/select/style/dropdown.js","../node_modules/antd/es/select/style/multiple.js","../node_modules/antd/es/select/style/single.js","../node_modules/antd/es/select/style/token.js","../node_modules/antd/es/select/style/variants.js","../node_modules/antd/es/select/style/index.js","../node_modules/@ant-design/icons-svg/es/asn/CheckOutlined.js","../node_modules/@ant-design/icons/es/icons/CheckOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DownOutlined.js","../node_modules/@ant-design/icons/es/icons/DownOutlined.js","../node_modules/antd/es/select/useIcons.js","../node_modules/antd/es/select/index.js","../node_modules/antd/es/select/useShowArrow.js","../node_modules/antd/es/pagination/style/index.js","../node_modules/antd/es/pagination/style/bordered.js","../node_modules/antd/es/pagination/useShowSizeChanger.js","../node_modules/antd/es/pagination/Pagination.js","../node_modules/antd/es/pagination/index.js","../node_modules/throttle-debounce/debounce.js","../node_modules/throttle-debounce/throttle.js","../node_modules/antd/es/spin/Indicator/Progress.js","../node_modules/antd/es/spin/Indicator/Looper.js","../node_modules/antd/es/spin/Indicator/index.js","../node_modules/antd/es/spin/style/index.js","../node_modules/antd/es/spin/usePercent.js","../node_modules/antd/es/spin/index.js","../node_modules/antd/es/list/context.js","../node_modules/antd/es/grid/col.js","../node_modules/antd/es/list/Item.js","../node_modules/antd/es/list/style/index.js","../node_modules/antd/es/list/index.js","Redux/slice/productSlice.js","Components/SearchModal.jsx","../node_modules/@ant-design/icons-svg/es/asn/AppstoreOutlined.js","../node_modules/@ant-design/icons/es/icons/AppstoreOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CaretDownOutlined.js","../node_modules/@ant-design/icons/es/icons/CaretDownOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/TagOutlined.js","../node_modules/@ant-design/icons/es/icons/TagOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CaretRightOutlined.js","../node_modules/@ant-design/icons/es/icons/CaretRightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PhoneOutlined.js","../node_modules/@ant-design/icons/es/icons/PhoneOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/WhatsAppOutlined.js","../node_modules/@ant-design/icons/es/icons/WhatsAppOutlined.js","Redux/slice/categorySlice.js","Redux/slice/brandSlice.js","Components/Navbar/HelpNavbar.jsx","Components/Navbar/Navbar.jsx","../node_modules/@ant-design/react-slick/es/initial-state.js","../node_modules/@ant-design/react-slick/es/default-props.js","../node_modules/@ant-design/react-slick/es/utils/innerSliderUtils.js","../node_modules/@ant-design/react-slick/es/track.js","../node_modules/@ant-design/react-slick/es/dots.js","../node_modules/@ant-design/react-slick/es/arrows.js","../node_modules/@ant-design/react-slick/es/inner-slider.js","../node_modules/@ant-design/react-slick/es/index.js","../node_modules/@ant-design/react-slick/es/slider.js","../node_modules/antd/es/carousel/style/index.js","../node_modules/antd/es/carousel/index.js","../node_modules/rc-drawer/es/context.js","../node_modules/rc-drawer/es/DrawerPanel.js","../node_modules/rc-drawer/es/util.js","../node_modules/rc-drawer/es/DrawerPopup.js","../node_modules/rc-drawer/es/Drawer.js","../node_modules/rc-drawer/es/index.js","../node_modules/antd/es/drawer/DrawerPanel.js","../node_modules/antd/es/drawer/style/motion.js","../node_modules/antd/es/drawer/style/index.js","../node_modules/antd/es/drawer/index.js","../node_modules/@ant-design/icons-svg/es/asn/MenuOutlined.js","../node_modules/@ant-design/icons/es/icons/MenuOutlined.js","Redux/slice/advertismentSlice.js","Components/Navbar/Header.jsx","../node_modules/@ant-design/icons-svg/es/asn/MailOutlined.js","../node_modules/@ant-design/icons/es/icons/MailOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FacebookOutlined.js","../node_modules/@ant-design/icons/es/icons/FacebookOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/TwitterOutlined.js","../node_modules/@ant-design/icons/es/icons/TwitterOutlined.js","../node_modules/react-icons/lib/iconsManifest.mjs","../node_modules/react-icons/lib/iconContext.mjs","../node_modules/react-icons/lib/iconBase.mjs","../node_modules/react-icons/fa/index.mjs","../node_modules/qrcode.react/lib/esm/index.js","Components/Footer/Footer.jsx","Components/BrandsBanner.jsx","Components/InfoBanner.jsx","Components/CategoryComponent.jsx","Redux/slice/showRoomSlice.js","Components/Showrooms/Combo.jsx","Components/PhoneDeals.jsx","Components/LaptopDeals.jsx","Components/RefrigeratorDeals.jsx","Components/TelevisionDeals.jsx","Components/AppliancesDeals.jsx","Components/SpeakerDeals.jsx","Components/AccDeals.jsx","Components/SamsungDeals.jsx","Pages/Home/Home.jsx","../node_modules/antd/es/alert/style/index.js","../node_modules/antd/es/alert/Alert.js","../node_modules/antd/es/alert/ErrorBoundary.js","../node_modules/@babel/runtime/helpers/esm/callSuper.js","../node_modules/antd/es/alert/index.js","../node_modules/@ant-design/icons-svg/es/asn/UpOutlined.js","../node_modules/@ant-design/icons/es/icons/UpOutlined.js","../node_modules/@rc-component/mini-decimal/es/supportUtil.js","../node_modules/@rc-component/mini-decimal/es/numberUtil.js","../node_modules/@rc-component/mini-decimal/es/BigIntDecimal.js","../node_modules/@rc-component/mini-decimal/es/NumberDecimal.js","../node_modules/@rc-component/mini-decimal/es/MiniDecimal.js","../node_modules/@rc-component/mini-decimal/es/index.js","../node_modules/rc-util/es/hooks/useMobile.js","../node_modules/rc-input-number/es/StepHandler.js","../node_modules/rc-input-number/es/utils/numberUtil.js","../node_modules/rc-input-number/es/InputNumber.js","../node_modules/rc-input-number/es/hooks/useCursor.js","../node_modules/rc-input-number/es/hooks/useFrame.js","../node_modules/rc-input-number/es/index.js","../node_modules/rc-util/es/proxyObject.js","../node_modules/antd/es/input-number/style/index.js","../node_modules/antd/es/input-number/style/token.js","../node_modules/antd/es/input-number/index.js","../node_modules/antd/es/divider/style/index.js","../node_modules/antd/es/divider/index.js","../node_modules/@ant-design/icons-svg/es/asn/EditOutlined.js","../node_modules/@ant-design/icons/es/icons/EditOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DeleteOutlined.js","../node_modules/@ant-design/icons/es/icons/DeleteOutlined.js","Pages/Cart/CartUpdate.jsx","Pages/Cart/Cart.jsx","Redux/slice/orderSlice.js","../node_modules/rc-util/es/Dom/styleChecker.js","../node_modules/@ant-design/icons-svg/es/asn/EnterOutlined.js","../node_modules/@ant-design/icons/es/icons/EnterOutlined.js","../node_modules/antd/es/typography/style/mixins.js","../node_modules/antd/es/typography/style/index.js","../node_modules/antd/es/typography/Editable.js","../node_modules/antd/es/typography/hooks/useCopyClick.js","../node_modules/antd/es/_util/toList.js","../node_modules/antd/es/typography/hooks/useMergedConfig.js","../node_modules/antd/es/typography/hooks/usePrevious.js","../node_modules/antd/es/typography/hooks/useTooltipProps.js","../node_modules/antd/es/typography/Typography.js","../node_modules/@ant-design/icons-svg/es/asn/CopyOutlined.js","../node_modules/@ant-design/icons/es/icons/CopyOutlined.js","../node_modules/antd/es/typography/Base/util.js","../node_modules/antd/es/typography/Base/CopyBtn.js","../node_modules/antd/es/typography/Base/Ellipsis.js","../node_modules/antd/es/typography/Base/EllipsisTooltip.js","../node_modules/antd/es/typography/Base/index.js","../node_modules/antd/es/typography/Link.js","../node_modules/antd/es/typography/Paragraph.js","../node_modules/antd/es/typography/Text.js","../node_modules/antd/es/typography/Title.js","../node_modules/antd/es/typography/index.js","../node_modules/antd/es/app/context.js","../node_modules/rc-notification/es/Notice.js","../node_modules/rc-notification/es/NotificationProvider.js","../node_modules/rc-notification/es/hooks/useStack.js","../node_modules/rc-notification/es/NoticeList.js","../node_modules/rc-notification/es/Notifications.js","../node_modules/rc-notification/es/hooks/useNotification.js","../node_modules/antd/es/message/style/index.js","../node_modules/antd/es/message/PurePanel.js","../node_modules/antd/es/message/util.js","../node_modules/antd/es/message/useMessage.js","../node_modules/antd/es/message/index.js","../node_modules/@ant-design/icons-svg/es/asn/PlusOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusOutlined.js","../node_modules/rc-tabs/es/TabContext.js","../node_modules/rc-tabs/es/hooks/useIndicator.js","../node_modules/rc-tabs/es/hooks/useOffsets.js","../node_modules/rc-tabs/es/hooks/useSyncState.js","../node_modules/rc-tabs/es/hooks/useTouchMove.js","../node_modules/rc-tabs/es/hooks/useUpdate.js","../node_modules/rc-tabs/es/hooks/useVisibleRange.js","../node_modules/rc-tabs/es/util.js","../node_modules/rc-tabs/es/TabNavList/AddButton.js","../node_modules/rc-tabs/es/TabNavList/ExtraContent.js","../node_modules/rc-tabs/es/TabNavList/OperationNode.js","../node_modules/rc-tabs/es/TabNavList/TabNode.js","../node_modules/rc-tabs/es/TabNavList/index.js","../node_modules/rc-tabs/es/TabPanelList/TabPane.js","../node_modules/rc-tabs/es/TabNavList/Wrapper.js","../node_modules/rc-tabs/es/TabPanelList/index.js","../node_modules/rc-tabs/es/Tabs.js","../node_modules/rc-tabs/es/index.js","../node_modules/rc-tabs/es/hooks/useAnimateConfig.js","../node_modules/antd/es/tabs/hooks/useAnimateConfig.js","../node_modules/antd/es/tabs/hooks/useLegacyItems.js","../node_modules/antd/es/tabs/style/motion.js","../node_modules/antd/es/tabs/style/index.js","../node_modules/antd/es/tabs/index.js","../node_modules/antd/es/tabs/TabPane.js","../node_modules/antd/es/card/Grid.js","../node_modules/antd/es/card/style/index.js","../node_modules/antd/es/card/Card.js","../node_modules/antd/es/card/Meta.js","../node_modules/antd/es/card/index.js","../node_modules/rc-checkbox/es/index.js","../node_modules/antd/es/checkbox/GroupContext.js","../node_modules/antd/es/checkbox/style/index.js","../node_modules/antd/es/checkbox/useBubbleLock.js","../node_modules/antd/es/checkbox/Checkbox.js","../node_modules/antd/es/checkbox/Group.js","../node_modules/antd/es/checkbox/index.js","../node_modules/@ant-design/icons-svg/es/asn/CreditCardOutlined.js","../node_modules/@ant-design/icons/es/icons/CreditCardOutlined.js","Redux/slice/shippingSlice.js","Components/Shipping.jsx","../node_modules/react-icons/gr/index.mjs","../node_modules/react-icons/gi/index.mjs","Pages/Checkout/Checkout.jsx","../node_modules/@ant-design/icons-svg/es/asn/FilterOutlined.js","../node_modules/@ant-design/icons/es/icons/FilterOutlined.js","Pages/Brand/RelatedBrands.jsx","Pages/Brand/Brand.jsx","../node_modules/@ant-design/icons-svg/es/asn/ShareAltOutlined.js","../node_modules/@ant-design/icons/es/icons/ShareAltOutlined.js","Pages/ProductDetails/ProductDetailSkeleton.jsx","Pages/ProductDetails/ProductDetails.jsx","../node_modules/rc-table/es/constant.js","../node_modules/@rc-component/context/es/context.js","../node_modules/@rc-component/context/es/Immutable.js","../node_modules/@rc-component/context/es/index.js","../node_modules/rc-table/es/context/TableContext.js","../node_modules/rc-table/es/context/PerfContext.js","../node_modules/rc-table/es/utils/valueUtil.js","../node_modules/rc-table/es/Cell/useCellRender.js","../node_modules/rc-table/es/Cell/index.js","../node_modules/rc-table/es/Cell/useHoverState.js","../node_modules/rc-table/es/utils/fixUtil.js","../node_modules/rc-table/es/Footer/SummaryContext.js","../node_modules/rc-table/es/Footer/Row.js","../node_modules/rc-table/es/Footer/Summary.js","../node_modules/rc-table/es/Footer/Cell.js","../node_modules/rc-table/es/Footer/index.js","../node_modules/rc-table/es/hooks/useFlattenRecords.js","../node_modules/rc-table/es/hooks/useRowInfo.js","../node_modules/rc-table/es/Body/ExpandedRow.js","../node_modules/rc-table/es/utils/expandUtil.js","../node_modules/rc-table/es/Body/BodyRow.js","../node_modules/rc-table/es/Body/MeasureCell.js","../node_modules/rc-table/es/Body/MeasureRow.js","../node_modules/rc-table/es/Body/index.js","../node_modules/rc-table/es/utils/legacyUtil.js","../node_modules/rc-table/es/ColGroup.js","../node_modules/rc-table/es/FixedHolder/index.js","../node_modules/rc-table/es/Header/HeaderRow.js","../node_modules/rc-table/es/Header/Header.js","../node_modules/rc-table/es/hooks/useColumns/useWidthColumns.js","../node_modules/rc-table/es/hooks/useColumns/index.js","../node_modules/rc-table/es/hooks/useExpand.js","../node_modules/rc-table/es/hooks/useFrame.js","../node_modules/rc-table/es/hooks/useSticky.js","../node_modules/rc-table/es/hooks/useStickyOffsets.js","../node_modules/rc-table/es/Panel/index.js","../node_modules/rc-util/es/Dom/addEventListener.js","../node_modules/rc-table/es/utils/offsetUtil.js","../node_modules/rc-table/es/stickyScrollBar.js","../node_modules/rc-table/es/sugar/Column.js","../node_modules/rc-table/es/sugar/ColumnGroup.js","../node_modules/rc-table/es/Table.js","../node_modules/rc-table/es/hooks/useHover.js","../node_modules/rc-table/es/hooks/useFixedInfo.js","../node_modules/rc-table/es/VirtualTable/context.js","../node_modules/rc-table/es/VirtualTable/VirtualCell.js","../node_modules/rc-table/es/VirtualTable/BodyLine.js","../node_modules/rc-table/es/VirtualTable/BodyGrid.js","../node_modules/rc-table/es/VirtualTable/index.js","../node_modules/antd/es/table/Column.js","../node_modules/antd/es/table/ColumnGroup.js","../node_modules/rc-tree/es/contextTypes.js","../node_modules/rc-tree/es/Indent.js","../node_modules/rc-tree/es/utils/keyUtil.js","../node_modules/rc-tree/es/utils/treeUtil.js","../node_modules/rc-tree/es/TreeNode.js","../node_modules/rc-tree/es/util.js","../node_modules/rc-tree/es/utils/conductUtil.js","../node_modules/antd/es/radio/context.js","../node_modules/antd/es/radio/style/index.js","../node_modules/antd/es/radio/radio.js","../node_modules/antd/es/radio/group.js","../node_modules/antd/es/radio/radioButton.js","../node_modules/antd/es/radio/index.js","../node_modules/antd/es/table/hooks/useSelection.js","../node_modules/antd/es/_util/hooks/useMultipleSelect.js","../node_modules/antd/es/_util/hooks/useProxyImperativeHandle.js","../node_modules/antd/es/_util/getScroll.js","../node_modules/antd/es/table/ExpandIcon.js","../node_modules/antd/es/table/util.js","../node_modules/@ant-design/icons-svg/es/asn/FilterFilled.js","../node_modules/@ant-design/icons/es/icons/FilterFilled.js","../node_modules/rc-tree/es/DropIndicator.js","../node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../node_modules/rc-tree/es/useUnmount.js","../node_modules/rc-tree/es/MotionTreeNode.js","../node_modules/rc-tree/es/utils/diffUtil.js","../node_modules/rc-tree/es/NodeList.js","../node_modules/rc-tree/es/Tree.js","../node_modules/rc-tree/es/index.js","../node_modules/@ant-design/icons-svg/es/asn/FileOutlined.js","../node_modules/@ant-design/icons/es/icons/FileOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FolderOpenOutlined.js","../node_modules/@ant-design/icons/es/icons/FolderOpenOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FolderOutlined.js","../node_modules/@ant-design/icons/es/icons/FolderOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/HolderOutlined.js","../node_modules/@ant-design/icons/es/icons/HolderOutlined.js","../node_modules/antd/es/tree/style/directory.js","../node_modules/antd/es/tree/style/index.js","../node_modules/antd/es/tree/utils/dropIndicator.js","../node_modules/@ant-design/icons-svg/es/asn/CaretDownFilled.js","../node_modules/@ant-design/icons/es/icons/CaretDownFilled.js","../node_modules/@ant-design/icons-svg/es/asn/MinusSquareOutlined.js","../node_modules/@ant-design/icons/es/icons/MinusSquareOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PlusSquareOutlined.js","../node_modules/@ant-design/icons/es/icons/PlusSquareOutlined.js","../node_modules/antd/es/tree/utils/iconUtil.js","../node_modules/antd/es/tree/Tree.js","../node_modules/antd/es/tree/utils/dictUtil.js","../node_modules/antd/es/tree/DirectoryTree.js","../node_modules/antd/es/tree/index.js","../node_modules/antd/es/table/hooks/useFilter/FilterSearch.js","../node_modules/antd/es/table/hooks/useFilter/FilterWrapper.js","../node_modules/antd/es/table/hooks/useFilter/FilterDropdown.js","../node_modules/antd/es/_util/hooks/useSyncState.js","../node_modules/antd/es/table/hooks/useFilter/index.js","../node_modules/antd/es/table/hooks/useLazyKVMap.js","../node_modules/antd/es/table/hooks/usePagination.js","../node_modules/@ant-design/icons-svg/es/asn/CaretUpOutlined.js","../node_modules/@ant-design/icons/es/icons/CaretUpOutlined.js","../node_modules/antd/es/table/hooks/useSorter.js","../node_modules/antd/es/table/hooks/useTitleColumns.js","../node_modules/antd/es/table/RcTable/index.js","../node_modules/antd/es/table/RcTable/VirtualTable.js","../node_modules/antd/es/table/style/bordered.js","../node_modules/antd/es/table/style/ellipsis.js","../node_modules/antd/es/table/style/empty.js","../node_modules/antd/es/table/style/expand.js","../node_modules/antd/es/table/style/filter.js","../node_modules/antd/es/table/style/fixed.js","../node_modules/antd/es/table/style/pagination.js","../node_modules/antd/es/table/style/radius.js","../node_modules/antd/es/table/style/rtl.js","../node_modules/antd/es/table/style/selection.js","../node_modules/antd/es/table/style/size.js","../node_modules/antd/es/table/style/sorter.js","../node_modules/antd/es/table/style/sticky.js","../node_modules/antd/es/table/style/summary.js","../node_modules/antd/es/table/style/virtual.js","../node_modules/antd/es/table/style/index.js","../node_modules/antd/es/table/InternalTable.js","../node_modules/antd/es/table/hooks/useContainerWidth.js","../node_modules/antd/es/_util/scrollTo.js","../node_modules/antd/es/_util/easings.js","../node_modules/antd/es/table/Table.js","../node_modules/antd/es/table/index.js","Pages/Orders/OrderCycle.jsx","../node_modules/antd/es/form/hooks/useDebounce.js","../node_modules/antd/es/form/style/explain.js","../node_modules/antd/es/form/style/index.js","../node_modules/antd/es/form/ErrorList.js","../node_modules/compute-scroll-into-view/src/index.ts","../node_modules/scroll-into-view-if-needed/src/index.ts","../node_modules/antd/es/form/util.js","../node_modules/antd/es/form/hooks/useForm.js","../node_modules/antd/es/form/Form.js","../node_modules/antd/es/form/hooks/useFormItemStatus.js","../node_modules/antd/es/form/style/fallbackCmp.js","../node_modules/antd/es/form/FormItemInput.js","../node_modules/@ant-design/icons-svg/es/asn/QuestionCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/QuestionCircleOutlined.js","../node_modules/antd/es/form/FormItemLabel.js","../node_modules/antd/es/form/FormItem/StatusProvider.js","../node_modules/antd/es/form/FormItem/ItemHolder.js","../node_modules/antd/es/form/FormItem/index.js","../node_modules/antd/es/form/hooks/useChildren.js","../node_modules/antd/es/form/hooks/useFrameState.js","../node_modules/antd/es/form/hooks/useItemRef.js","../node_modules/antd/es/form/FormList.js","../node_modules/antd/es/form/index.js","../node_modules/antd/es/form/hooks/useFormInstance.js","../node_modules/@ant-design/icons-svg/es/asn/LockOutlined.js","../node_modules/@ant-design/icons/es/icons/LockOutlined.js","Pages/SignUp/SignUp.jsx","Pages/LogIn/Signin.jsx","Pages/ProductDetails/ProductDetailsModal.jsx","Pages/AllProducts.jsx","../node_modules/rc-picker/es/generate/dayjs.js","../node_modules/@ant-design/icons-svg/es/asn/CalendarOutlined.js","../node_modules/@ant-design/icons/es/icons/CalendarOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ClockCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/ClockCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SwapRightOutlined.js","../node_modules/@ant-design/icons/es/icons/SwapRightOutlined.js","../node_modules/rc-picker/es/PickerInput/context.js","../node_modules/rc-picker/es/PickerTrigger/index.js","../node_modules/rc-picker/es/utils/uiUtil.js","../node_modules/rc-picker/es/utils/miscUtil.js","../node_modules/rc-picker/es/PickerTrigger/util.js","../node_modules/rc-picker/es/PickerInput/hooks/useCellRender.js","../node_modules/rc-picker/es/PickerInput/hooks/useFieldsInvalidate.js","../node_modules/rc-picker/es/hooks/useLocale.js","../node_modules/rc-picker/es/hooks/useTimeConfig.js","../node_modules/rc-picker/es/PickerInput/Selector/hooks/useClearIcon.js","../node_modules/rc-picker/es/utils/dateUtil.js","../node_modules/rc-picker/es/PickerInput/hooks/useFilledProps.js","../node_modules/rc-picker/es/PickerInput/hooks/useFieldFormat.js","../node_modules/rc-picker/es/PickerInput/hooks/useInputReadOnly.js","../node_modules/rc-picker/es/PickerInput/hooks/useDisabledBoundary.js","../node_modules/rc-picker/es/PickerInput/hooks/useInvalidate.js","../node_modules/rc-picker/es/PickerInput/hooks/useOpen.js","../node_modules/rc-picker/es/PickerInput/hooks/useDelayState.js","../node_modules/rc-picker/es/PickerInput/hooks/usePickerRef.js","../node_modules/rc-picker/es/PickerInput/hooks/usePresets.js","../node_modules/rc-picker/es/PickerInput/hooks/useLockEffect.js","../node_modules/rc-picker/es/PickerInput/hooks/useRangeActive.js","../node_modules/rc-picker/es/PickerInput/hooks/useRangePickerValue.js","../node_modules/rc-picker/es/hooks/useSyncState.js","../node_modules/rc-picker/es/PickerInput/hooks/useRangeValue.js","../node_modules/rc-picker/es/PickerInput/hooks/useShowNow.js","../node_modules/rc-picker/es/hooks/useTimeInfo.js","../node_modules/rc-picker/es/PickerPanel/TimePanel/TimePanelBody/util.js","../node_modules/rc-picker/es/PickerInput/Popup/Footer.js","../node_modules/rc-picker/es/hooks/useToggleDates.js","../node_modules/rc-picker/es/PickerPanel/context.js","../node_modules/rc-picker/es/PickerPanel/PanelBody.js","../node_modules/rc-picker/es/PickerPanel/PanelHeader.js","../node_modules/rc-picker/es/PickerPanel/DatePanel/index.js","../node_modules/rc-picker/es/PickerPanel/TimePanel/TimePanelBody/useScrollTo.js","../node_modules/rc-picker/es/PickerPanel/TimePanel/TimePanelBody/TimeColumn.js","../node_modules/rc-picker/es/PickerPanel/TimePanel/TimePanelBody/index.js","../node_modules/rc-picker/es/PickerPanel/TimePanel/index.js","../node_modules/rc-picker/es/PickerPanel/index.js","../node_modules/rc-picker/es/PickerPanel/DateTimePanel/index.js","../node_modules/rc-picker/es/PickerPanel/WeekPanel/index.js","../node_modules/rc-picker/es/PickerPanel/MonthPanel/index.js","../node_modules/rc-picker/es/PickerPanel/QuarterPanel/index.js","../node_modules/rc-picker/es/PickerPanel/YearPanel/index.js","../node_modules/rc-picker/es/PickerPanel/DecadePanel/index.js","../node_modules/rc-picker/es/PickerInput/Popup/PopupPanel.js","../node_modules/rc-picker/es/PickerInput/Popup/PresetPanel.js","../node_modules/rc-picker/es/PickerInput/Popup/index.js","../node_modules/rc-picker/es/PickerInput/Selector/hooks/useInputProps.js","../node_modules/rc-picker/es/PickerInput/Selector/hooks/useRootProps.js","../node_modules/rc-picker/es/PickerInput/Selector/Icon.js","../node_modules/rc-picker/es/PickerInput/Selector/MaskFormat.js","../node_modules/rc-picker/es/PickerInput/Selector/Input.js","../node_modules/rc-picker/es/PickerInput/Selector/util.js","../node_modules/rc-picker/es/PickerInput/Selector/RangeSelector.js","../node_modules/rc-picker/es/PickerInput/RangePicker.js","../node_modules/rc-picker/es/PickerInput/hooks/useRangeDisabledDate.js","../node_modules/rc-picker/es/PickerInput/Selector/SingleSelector/MultipleDates.js","../node_modules/rc-picker/es/PickerInput/Selector/SingleSelector/index.js","../node_modules/rc-picker/es/PickerInput/SinglePicker.js","../node_modules/rc-picker/es/index.js","../node_modules/antd/es/date-picker/style/multiple.js","../node_modules/antd/es/date-picker/style/panel.js","../node_modules/antd/es/date-picker/style/variants.js","../node_modules/antd/es/date-picker/style/index.js","../node_modules/antd/es/date-picker/style/token.js","../node_modules/antd/es/date-picker/util.js","../node_modules/antd/es/date-picker/generatePicker/constant.js","../node_modules/antd/es/date-picker/PickerButton.js","../node_modules/antd/es/date-picker/generatePicker/useComponents.js","../node_modules/antd/es/date-picker/generatePicker/generateRangePicker.js","../node_modules/antd/es/date-picker/generatePicker/generateSinglePicker.js","../node_modules/antd/es/date-picker/generatePicker/index.js","../node_modules/antd/es/date-picker/index.js","../node_modules/@ant-design/icons-svg/es/asn/ShoppingOutlined.js","../node_modules/@ant-design/icons/es/icons/ShoppingOutlined.js","../node_modules/rc-util/es/Dom/css.js","../node_modules/rc-image/es/context.js","../node_modules/rc-image/es/Operations.js","../node_modules/rc-image/es/hooks/useImageTransform.js","../node_modules/rc-image/es/getFixScaleEleTransPosition.js","../node_modules/rc-image/es/hooks/useStatus.js","../node_modules/rc-image/es/util.js","../node_modules/rc-image/es/hooks/useTouchEvent.js","../node_modules/rc-image/es/Preview.js","../node_modules/rc-image/es/hooks/useMouseEvent.js","../node_modules/rc-image/es/previewConfig.js","../node_modules/rc-image/es/common.js","../node_modules/rc-image/es/PreviewGroup.js","../node_modules/rc-image/es/hooks/useRegisterImage.js","../node_modules/rc-image/es/Image.js","../node_modules/rc-image/es/hooks/usePreviewItems.js","../node_modules/rc-image/es/index.js","../node_modules/@ant-design/icons-svg/es/asn/RotateLeftOutlined.js","../node_modules/@ant-design/icons/es/icons/RotateLeftOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/RotateRightOutlined.js","../node_modules/@ant-design/icons/es/icons/RotateRightOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/SwapOutlined.js","../node_modules/@ant-design/icons/es/icons/SwapOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ZoomInOutlined.js","../node_modules/@ant-design/icons/es/icons/ZoomInOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ZoomOutOutlined.js","../node_modules/@ant-design/icons/es/icons/ZoomOutOutlined.js","../node_modules/antd/es/image/style/index.js","../node_modules/antd/es/image/PreviewGroup.js","../node_modules/antd/es/image/index.js","../node_modules/@ant-design/icons-svg/es/asn/DownloadOutlined.js","../node_modules/@ant-design/icons/es/icons/DownloadOutlined.js","Pages/OrderHistory/OrderModal.js","Pages/OrderHistory/OrderHistory.jsx","../node_modules/antd/es/layout/layout.js","../node_modules/antd/es/layout/hooks/useHasSider.js","../node_modules/antd/es/layout/index.js","../node_modules/antd/es/row/index.js","../node_modules/antd/es/col/index.js","../node_modules/@ant-design/icons-svg/es/asn/VerifiedOutlined.js","../node_modules/@ant-design/icons/es/icons/VerifiedOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/DollarOutlined.js","../node_modules/@ant-design/icons/es/icons/DollarOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/RocketOutlined.js","../node_modules/@ant-design/icons/es/icons/RocketOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CustomerServiceOutlined.js","../node_modules/@ant-design/icons/es/icons/CustomerServiceOutlined.js","Pages/About/About.jsx","../node_modules/antd/es/notification/style/placement.js","../node_modules/antd/es/notification/interface.js","../node_modules/antd/es/notification/style/stack.js","../node_modules/antd/es/notification/style/index.js","../node_modules/antd/es/notification/style/pure-panel.js","../node_modules/antd/es/notification/PurePanel.js","../node_modules/antd/es/notification/useNotification.js","../node_modules/antd/es/notification/util.js","../node_modules/antd/es/notification/index.js","../node_modules/@ant-design/icons-svg/es/asn/InstagramOutlined.js","../node_modules/@ant-design/icons/es/icons/InstagramOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/XOutlined.js","../node_modules/@ant-design/icons/es/icons/XOutlined.js","../node_modules/@emailjs/browser/es/models/EmailJSResponseStatus.js","../node_modules/@emailjs/browser/es/utils/createWebStorage/createWebStorage.js","../node_modules/@emailjs/browser/es/store/store.js","../node_modules/@emailjs/browser/es/utils/buildOptions/buildOptions.js","../node_modules/@emailjs/browser/es/api/sendPost.js","../node_modules/@emailjs/browser/es/utils/validateParams/validateParams.js","../node_modules/@emailjs/browser/es/utils/isHeadless/isHeadless.js","../node_modules/@emailjs/browser/es/errors/headlessError/headlessError.js","../node_modules/@emailjs/browser/es/utils/isBlockedValueInParams/isBlockedValueInParams.js","../node_modules/@emailjs/browser/es/utils/validateBlockListParams/validateBlockListParams.js","../node_modules/@emailjs/browser/es/errors/blockedEmailError/blockedEmailError.js","../node_modules/@emailjs/browser/es/utils/isLimitRateHit/isLimitRateHit.js","../node_modules/@emailjs/browser/es/utils/validateLimitRateParams/validateLimitRateParams.js","../node_modules/@emailjs/browser/es/errors/limitRateError/limitRateError.js","../node_modules/@emailjs/browser/es/index.js","../node_modules/@emailjs/browser/es/methods/send/send.js","../node_modules/@emailjs/browser/es/utils/validateTemplateParams/validateTemplateParams.js","Pages/Contact/Contact.jsx","Pages/Policy.jsx","Pages/Profile.jsx","Redux/slice/userSlice.js","AdminPages/Login.jsx","AdminPages/Register.jsx","../node_modules/@ant-design/icons-svg/es/asn/ShopOutlined.js","../node_modules/@ant-design/icons/es/icons/ShopOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/TagsOutlined.js","../node_modules/@ant-design/icons/es/icons/TagsOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/TrademarkOutlined.js","../node_modules/@ant-design/icons/es/icons/TrademarkOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FileImageOutlined.js","../node_modules/@ant-design/icons/es/icons/FileImageOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/UsergroupAddOutlined.js","../node_modules/@ant-design/icons/es/icons/UsergroupAddOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/MenuUnfoldOutlined.js","../node_modules/@ant-design/icons/es/icons/MenuUnfoldOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/MenuFoldOutlined.js","../node_modules/@ant-design/icons/es/icons/MenuFoldOutlined.js","Layout/Layout.jsx","../node_modules/antd/es/statistic/Number.js","../node_modules/antd/es/statistic/style/index.js","../node_modules/antd/es/statistic/Statistic.js","../node_modules/antd/es/statistic/utils.js","../node_modules/antd/es/statistic/Countdown.js","../node_modules/antd/es/statistic/index.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/recharts/es6/util/DataUtils.js","../node_modules/recharts/es6/util/LogUtils.js","../node_modules/recharts/es6/util/ShallowEqual.js","../node_modules/recharts/es6/util/types.js","../node_modules/recharts/es6/util/ReactUtils.js","../node_modules/recharts/es6/component/ResponsiveContainer.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/recharts/es6/container/Surface.js","../node_modules/recharts/es6/container/Layer.js","../node_modules/recharts/es6/component/DefaultTooltipContent.js","../node_modules/recharts/es6/util/tooltip/translate.js","../node_modules/recharts/es6/component/TooltipBoundingBox.js","../node_modules/recharts/es6/util/Global.js","../node_modules/recharts/es6/util/payload/getUniqPayload.js","../node_modules/recharts/es6/component/Tooltip.js","../node_modules/d3-shape/src/math.js","../node_modules/d3-shape/src/symbol/circle.js","../node_modules/d3-shape/src/symbol/cross.js","../node_modules/d3-shape/src/symbol/diamond.js","../node_modules/d3-shape/src/symbol/square.js","../node_modules/d3-shape/src/symbol/star.js","../node_modules/d3-shape/src/symbol/triangle.js","../node_modules/d3-shape/src/symbol/wye.js","../node_modules/d3-shape/src/constant.js","../node_modules/d3-path/src/path.js","../node_modules/d3-shape/src/path.js","../node_modules/d3-shape/src/symbol/asterisk.js","../node_modules/d3-shape/src/symbol/triangle2.js","../node_modules/recharts/es6/shape/Symbols.js","../node_modules/d3-shape/src/symbol.js","../node_modules/recharts/es6/component/DefaultLegendContent.js","../node_modules/recharts/es6/component/Legend.js","../node_modules/recharts/es6/shape/Dot.js","../node_modules/fast-equals/src/utils.ts","../node_modules/fast-equals/src/equals.ts","../node_modules/fast-equals/src/comparator.ts","../node_modules/fast-equals/src/index.ts","../node_modules/react-smooth/es6/setRafTimeout.js","../node_modules/react-smooth/es6/AnimateManager.js","../node_modules/react-smooth/es6/util.js","../node_modules/react-smooth/es6/easing.js","../node_modules/react-smooth/es6/configUpdate.js","../node_modules/react-smooth/es6/Animate.js","../node_modules/react-smooth/es6/index.js","../node_modules/recharts/es6/shape/Rectangle.js","../node_modules/d3-scale/src/init.js","../node_modules/internmap/src/index.js","../node_modules/d3-scale/src/ordinal.js","../node_modules/d3-scale/src/band.js","../node_modules/d3-array/src/range.js","../node_modules/recharts/es6/util/DOMUtils.js","../node_modules/recharts/es6/util/ReduceCSSCalc.js","../node_modules/recharts/es6/component/Text.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/descending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/number.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/value.js","../node_modules/d3-interpolate/src/round.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-scale/src/linear.js","../node_modules/d3-scale/src/identity.js","../node_modules/d3-scale/src/nice.js","../node_modules/d3-scale/src/log.js","../node_modules/d3-scale/src/symlog.js","../node_modules/d3-scale/src/pow.js","../node_modules/d3-scale/src/radial.js","../node_modules/d3-array/src/max.js","../node_modules/d3-array/src/min.js","../node_modules/d3-array/src/sort.js","../node_modules/d3-array/src/quickselect.js","../node_modules/d3-array/src/quantile.js","../node_modules/d3-scale/src/quantile.js","../node_modules/d3-scale/src/quantize.js","../node_modules/d3-scale/src/threshold.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/ticks.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-scale/src/time.js","../node_modules/d3-scale/src/utcTime.js","../node_modules/d3-scale/src/sequential.js","../node_modules/d3-scale/src/sequentialQuantile.js","../node_modules/d3-scale/src/diverging.js","../node_modules/d3-interpolate/src/piecewise.js","../node_modules/d3-shape/src/offset/none.js","../node_modules/d3-shape/src/array.js","../node_modules/d3-shape/src/order/none.js","../node_modules/d3-shape/src/stack.js","../node_modules/recharts-scale/es6/util/utils.js","../node_modules/recharts-scale/es6/util/arithmetic.js","../node_modules/recharts-scale/es6/getNiceTickValues.js","../node_modules/recharts/es6/cartesian/ErrorBar.js","../node_modules/recharts/es6/util/getLegendProps.js","../node_modules/recharts/es6/util/ChartUtils.js","../node_modules/d3-shape/src/offset/expand.js","../node_modules/d3-shape/src/offset/silhouette.js","../node_modules/d3-shape/src/offset/wiggle.js","../node_modules/recharts/es6/util/CssPrefixUtils.js","../node_modules/recharts/es6/cartesian/Brush.js","../node_modules/recharts/es6/util/PolarUtils.js","../node_modules/recharts/es6/component/Label.js","../node_modules/recharts/es6/util/IfOverflowMatches.js","../node_modules/recharts/es6/component/Cell.js","../node_modules/recharts/es6/component/LabelList.js","../node_modules/recharts/es6/shape/Trapezoid.js","../node_modules/recharts/es6/shape/Sector.js","../node_modules/recharts/es6/util/ActiveShapeUtils.js","../node_modules/recharts/es6/util/BarUtils.js","../node_modules/recharts/es6/cartesian/Bar.js","../node_modules/recharts/es6/util/CartesianUtils.js","../node_modules/recharts/es6/cartesian/ReferenceDot.js","../node_modules/recharts/es6/util/calculateViewBox.js","../node_modules/recharts/es6/context/chartLayoutContext.js","../node_modules/recharts/es6/cartesian/ReferenceLine.js","../node_modules/recharts/es6/cartesian/ReferenceArea.js","../node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","../node_modules/recharts/es6/util/Events.js","../node_modules/recharts/es6/chart/AccessibilityManager.js","../node_modules/d3-shape/src/noop.js","../node_modules/d3-shape/src/curve/basis.js","../node_modules/d3-shape/src/curve/basisClosed.js","../node_modules/d3-shape/src/curve/basisOpen.js","../node_modules/d3-shape/src/curve/bump.js","../node_modules/d3-shape/src/curve/linearClosed.js","../node_modules/d3-shape/src/curve/linear.js","../node_modules/d3-shape/src/curve/monotone.js","../node_modules/d3-shape/src/curve/natural.js","../node_modules/d3-shape/src/curve/step.js","../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/line.js","../node_modules/d3-shape/src/area.js","../node_modules/recharts/es6/shape/Curve.js","../node_modules/recharts/es6/shape/Cross.js","../node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js","../node_modules/recharts/es6/util/cursor/getCursorPoints.js","../node_modules/recharts/es6/component/Cursor.js","../node_modules/recharts/es6/util/cursor/getCursorRectangle.js","../node_modules/recharts/es6/chart/generateCategoricalChart.js","../node_modules/recharts/es6/util/isDomainSpecifiedByUser.js","../node_modules/recharts/es6/cartesian/Line.js","../node_modules/recharts/es6/util/getEveryNthWithCondition.js","../node_modules/recharts/es6/util/TickUtils.js","../node_modules/recharts/es6/cartesian/getTicks.js","../node_modules/recharts/es6/cartesian/getEquidistantTicks.js","../node_modules/recharts/es6/cartesian/CartesianAxis.js","../node_modules/recharts/es6/cartesian/XAxis.js","../node_modules/recharts/es6/cartesian/YAxis.js","../node_modules/recharts/es6/chart/LineChart.js","../node_modules/recharts/es6/cartesian/CartesianGrid.js","../node_modules/recharts/es6/chart/BarChart.js","../node_modules/@ant-design/icons-svg/es/asn/ProductOutlined.js","../node_modules/@ant-design/icons/es/icons/ProductOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/AppstoreAddOutlined.js","../node_modules/@ant-design/icons/es/icons/AppstoreAddOutlined.js","AdminPages/Dashboard.jsx","../node_modules/rc-upload/es/attr-accept.js","../node_modules/rc-upload/es/request.js","../node_modules/rc-upload/es/traverseFileTree.js","../node_modules/rc-upload/es/uid.js","../node_modules/rc-upload/es/AjaxUploader.js","../node_modules/rc-upload/es/Upload.js","../node_modules/rc-upload/es/index.js","../node_modules/antd/es/upload/style/dragger.js","../node_modules/antd/es/upload/style/list.js","../node_modules/antd/es/upload/style/motion.js","../node_modules/antd/es/upload/style/picture.js","../node_modules/antd/es/upload/style/rtl.js","../node_modules/antd/es/upload/style/index.js","../node_modules/@ant-design/icons-svg/es/asn/FileTwoTone.js","../node_modules/@ant-design/icons/es/icons/FileTwoTone.js","../node_modules/@ant-design/icons-svg/es/asn/PaperClipOutlined.js","../node_modules/@ant-design/icons/es/icons/PaperClipOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/PictureTwoTone.js","../node_modules/@ant-design/icons/es/icons/PictureTwoTone.js","../node_modules/antd/es/upload/utils.js","../node_modules/rc-progress/es/common.js","../node_modules/rc-progress/es/hooks/useId.js","../node_modules/rc-progress/es/Circle/PtgCircle.js","../node_modules/rc-progress/es/Circle/util.js","../node_modules/rc-progress/es/Circle/index.js","../node_modules/antd/es/progress/utils.js","../node_modules/antd/es/progress/Circle.js","../node_modules/antd/es/progress/style/index.js","../node_modules/antd/es/progress/Line.js","../node_modules/antd/es/progress/Steps.js","../node_modules/antd/es/progress/progress.js","../node_modules/antd/es/progress/index.js","../node_modules/antd/es/upload/UploadList/ListItem.js","../node_modules/antd/es/upload/UploadList/index.js","../node_modules/antd/es/upload/Upload.js","../node_modules/antd/es/upload/Dragger.js","../node_modules/antd/es/upload/index.js","../node_modules/@ant-design/icons-svg/es/asn/UploadOutlined.js","../node_modules/@ant-design/icons/es/icons/UploadOutlined.js","AdminPages/Brands.jsx","AdminPages/Categories.jsx","../node_modules/antd/es/tag/style/index.js","../node_modules/antd/es/tag/CheckableTag.js","../node_modules/antd/es/tag/style/presetCmp.js","../node_modules/antd/es/tag/style/statusCmp.js","../node_modules/antd/es/_util/capitalize.js","../node_modules/antd/es/tag/index.js","AdminPages/Products/AddProduct.jsx","AdminPages/Products/EditProduct.jsx","AdminPages/Products/UpdateProductImage.jsx","AdminPages/Products/Products.jsx","AdminPages/Orders/UpdateOrderCycleModal.jsx","../node_modules/@ant-design/icons-svg/es/asn/FileTextOutlined.js","../node_modules/@ant-design/icons/es/icons/FileTextOutlined.js","AdminPages/Orders/PrintableInvoice.jsx","../node_modules/xlsx/xlsx.mjs","AdminPages/Orders/OrderDetailsModal.jsx","AdminPages/Orders/Orders.jsx","AdminPages/ShowRoom.jsx","AdminPages/Users.jsx","AdminPages/Customers.jsx","AdminPages/Advertisment.jsx","AdminPages/AdminPage.jsx","../node_modules/@ant-design/icons-svg/es/asn/DashboardOutlined.js","../node_modules/@ant-design/icons/es/icons/DashboardOutlined.js","Agents/AgentHome.jsx","Agents/AgentPage/AgentOrders.jsx","../node_modules/@ant-design/icons-svg/es/asn/RiseOutlined.js","../node_modules/@ant-design/icons/es/icons/RiseOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/FallOutlined.js","../node_modules/@ant-design/icons/es/icons/FallOutlined.js","Agents/AgentPage/AgentDashboard.jsx","Pages/OrderSuccessPage.jsx","Pages/OrderReceived.jsx","../node_modules/@ant-design/icons-svg/es/asn/ReloadOutlined.js","../node_modules/@ant-design/icons/es/icons/ReloadOutlined.js","Pages/NoInternet.jsx","../node_modules/@ant-design/icons-svg/es/asn/ClusterOutlined.js","../node_modules/@ant-design/icons/es/icons/ClusterOutlined.js","ContentManager/ContentHome.jsx","ContentManager/ContentManager/ContentDashboard.jsx","ContentManager/ContentManager/Products.jsx","ContentManager/ContentManager/Showroom.jsx","ContentManager/ContentManager/Brands.jsx","ContentManager/ContentManager/Category.jsx","ContentManager/ContentManager/Banner.jsx","ContentManager/ContentPage.jsx","Fufilments/FulfillmentsHome.jsx","Fufilments/Fufilments/FulfillmentsOrder.jsx","Fufilments/Fufilments/FulfillmentsDashboard.jsx","Fufilments/Fufilments/FulfillmentsPage.jsx","Pages/Cancellation.jsx","Pages/PaymentStatusChecker.jsx","Pages/sitemap.js","Pages/SEO/iphone16.jsx","Pages/SEO/Samsung.jsx","Pages/SEO/Tecno.jsx","Pages/SEO/Tablet.jsx","Pages/Categories/Phones.jsx","Pages/Categories/Computers.jsx","Pages/Categories/Television.jsx","Pages/Categories/AC.jsx","Pages/Categories/Fridge.jsx","Pages/Categories/Accessories.jsx","Pages/Categories/Speakers.jsx","Pages/Categories/Blender.jsx","Pages/Categories/Fans.jsx","Pages/Categories/Combo.jsx","Components/ShowRoom/ShowRoomPage.jsx","../node_modules/antd/es/breadcrumb/BreadcrumbSeparator.js","../node_modules/antd/es/breadcrumb/useItemRender.js","../node_modules/antd/es/breadcrumb/BreadcrumbItem.js","../node_modules/antd/es/breadcrumb/style/index.js","../node_modules/antd/es/breadcrumb/useItems.js","../node_modules/antd/es/breadcrumb/Breadcrumb.js","../node_modules/antd/es/breadcrumb/index.js","Components/Breadcrumbs.jsx","App.js","reportWebVitals.js","../node_modules/redux-persist/es/constants.js","../node_modules/redux-persist/es/stateReconciler/autoMergeLevel1.js","../node_modules/redux-persist/es/createPersistoid.js","../node_modules/redux-persist/es/getStoredState.js","../node_modules/redux-persist/es/purgeStoredState.js","../node_modules/redux-persist/es/persistReducer.js","../node_modules/redux-persist/es/persistStore.js","Redux/store.js","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/redux/src/applyMiddleware.ts","../node_modules/redux-persist/es/integration/react.js","index.js"],"sourcesContent":["/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","/*!\n * html2pdf.js v0.10.2\n * Copyright (c) 2024 Erik Koopmans\n * Released under the MIT License.\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jspdf\"), require(\"html2canvas\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"html2pdf\", [\"jspdf\", \"html2canvas\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"html2pdf\"] = factory(require(\"jspdf\"), require(\"html2canvas\"));\n\telse\n\t\troot[\"html2pdf\"] = factory(root[\"jspdf\"], root[\"html2canvas\"]);\n})(self, function(__WEBPACK_EXTERNAL_MODULE_jspdf__, __WEBPACK_EXTERNAL_MODULE_html2canvas__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./src/plugin/hyperlinks.js\":\n/*!**********************************!*\\\n !*** ./src/plugin/hyperlinks.js ***!\n \\**********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.link.js */ \"./node_modules/core-js/modules/es.string.link.js\");\n/* harmony import */ var core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _worker_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../worker.js */ \"./src/worker.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils.js */ \"./src/utils.js\");\n\n\n\n // Add hyperlink functionality to the PDF creation.\n// Main link array, and refs to original functions.\n\nvar linkInfo = [];\nvar orig = {\n toContainer: _worker_js__WEBPACK_IMPORTED_MODULE_2__.default.prototype.toContainer,\n toPdf: _worker_js__WEBPACK_IMPORTED_MODULE_2__.default.prototype.toPdf\n};\n\n_worker_js__WEBPACK_IMPORTED_MODULE_2__.default.prototype.toContainer = function toContainer() {\n return orig.toContainer.call(this).then(function toContainer_hyperlink() {\n // Retrieve hyperlink info if the option is enabled.\n if (this.opt.enableLinks) {\n // Find all anchor tags and get the container's bounds for reference.\n var container = this.prop.container;\n var links = container.querySelectorAll('a');\n var containerRect = (0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.unitConvert)(container.getBoundingClientRect(), this.prop.pageSize.k);\n linkInfo = []; // Loop through each anchor tag.\n\n Array.prototype.forEach.call(links, function (link) {\n // Treat each client rect as a separate link (for text-wrapping).\n var clientRects = link.getClientRects();\n\n for (var i = 0; i < clientRects.length; i++) {\n var clientRect = (0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.unitConvert)(clientRects[i], this.prop.pageSize.k);\n clientRect.left -= containerRect.left;\n clientRect.top -= containerRect.top;\n var page = Math.floor(clientRect.top / this.prop.pageSize.inner.height) + 1;\n var top = this.opt.margin[0] + clientRect.top % this.prop.pageSize.inner.height;\n var left = this.opt.margin[1] + clientRect.left;\n linkInfo.push({\n page: page,\n top: top,\n left: left,\n clientRect: clientRect,\n link: link\n });\n }\n }, this);\n }\n });\n};\n\n_worker_js__WEBPACK_IMPORTED_MODULE_2__.default.prototype.toPdf = function toPdf() {\n return orig.toPdf.call(this).then(function toPdf_hyperlink() {\n // Add hyperlinks if the option is enabled.\n if (this.opt.enableLinks) {\n // Attach each anchor tag based on info from toContainer().\n linkInfo.forEach(function (l) {\n this.prop.pdf.setPage(l.page);\n this.prop.pdf.link(l.left, l.top, l.clientRect.width, l.clientRect.height, {\n url: l.link.href\n });\n }, this); // Reset the active page of the PDF to the final page.\n\n var nPages = this.prop.pdf.internal.getNumberOfPages();\n this.prop.pdf.setPage(nPages);\n }\n });\n};\n\n/***/ }),\n\n/***/ \"./src/plugin/jspdf-plugin.js\":\n/*!************************************!*\\\n !*** ./src/plugin/jspdf-plugin.js ***!\n \\************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ \"./node_modules/core-js/modules/es.symbol.js\");\n/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.symbol.description.js */ \"./node_modules/core-js/modules/es.symbol.description.js\");\n/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ \"./node_modules/core-js/modules/es.symbol.iterator.js\");\n/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.array.iterator.js */ \"./node_modules/core-js/modules/es.array.iterator.js\");\n/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ \"./node_modules/core-js/modules/es.string.iterator.js\");\n/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ \"./node_modules/core-js/modules/web.dom-collections.iterator.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var jspdf__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! jspdf */ \"jspdf\");\n/* harmony import */ var jspdf__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(jspdf__WEBPACK_IMPORTED_MODULE_7__);\n\n\n\n\n\n\n\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n// Import dependencies.\n // Get dimensions of a PDF page, as determined by jsPDF.\n\njspdf__WEBPACK_IMPORTED_MODULE_7__.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 } // Default options\n\n\n unit = unit || 'mm';\n format = format || 'a4';\n orientation = ('' + (orientation || 'P')).toLowerCase();\n var format_as_string = ('' + format).toLowerCase(); // Size in pt of various paper formats\n\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.40, 209.76],\n 'a9': [104.88, 147.40],\n 'a10': [73.70, 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.90, 708.66],\n 'b6': [354.33, 498.90],\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 }; // Unit conversion\n\n switch (unit) {\n case 'pt':\n var k = 1;\n break;\n\n case 'mm':\n var k = 72 / 25.4;\n break;\n\n case 'cm':\n var k = 72 / 2.54;\n break;\n\n case 'in':\n var k = 72;\n break;\n\n case 'px':\n var k = 72 / 96;\n break;\n\n case 'pc':\n var k = 12;\n break;\n\n case 'em':\n var k = 12;\n break;\n\n case 'ex':\n var k = 6;\n break;\n\n default:\n throw 'Invalid unit: ' + unit;\n } // Dimensions are stored as user units and converted to points on output\n\n\n if (pageFormats.hasOwnProperty(format_as_string)) {\n var pageHeight = pageFormats[format_as_string][1] / k;\n var pageWidth = pageFormats[format_as_string][0] / k;\n } else {\n try {\n var pageHeight = format[1];\n var pageWidth = format[0];\n } catch (err) {\n throw new Error('Invalid format: ' + format);\n }\n } // Handle page orientation\n\n\n if (orientation === 'p' || orientation === 'portrait') {\n orientation = 'p';\n\n if (pageWidth > pageHeight) {\n var tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else if (orientation === 'l' || orientation === 'landscape') {\n orientation = 'l';\n\n if (pageHeight > pageWidth) {\n var tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else {\n throw 'Invalid orientation: ' + orientation;\n } // Return information (k is the unit conversion ratio from pts)\n\n\n var info = {\n 'width': pageWidth,\n 'height': pageHeight,\n 'unit': unit,\n 'k': k\n };\n return info;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (jspdf__WEBPACK_IMPORTED_MODULE_7__.jsPDF);\n\n/***/ }),\n\n/***/ \"./src/plugin/pagebreaks.js\":\n/*!**********************************!*\\\n !*** ./src/plugin/pagebreaks.js ***!\n \\**********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ \"./node_modules/core-js/modules/es.array.concat.js\");\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ \"./node_modules/core-js/modules/es.array.slice.js\");\n/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ \"./node_modules/core-js/modules/es.array.join.js\");\n/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.object.keys.js */ \"./node_modules/core-js/modules/es.object.keys.js\");\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _worker_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../worker.js */ \"./src/worker.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils.js */ \"./src/utils.js\");\n\n\n\n\n\n\n\n/* Pagebreak plugin:\n\n Adds page-break functionality to the html2pdf library. Page-breaks can be\n enabled by CSS styles, set on individual elements using selectors, or\n avoided from breaking inside all elements.\n\n Options on the `opt.pagebreak` object:\n\n mode: String or array of strings: 'avoid-all', 'css', and/or 'legacy'\n Default: ['css', 'legacy']\n\n before: String or array of CSS selectors for which to add page-breaks\n before each element. Can be a specific element with an ID\n ('#myID'), all elements of a type (e.g. 'img'), all of a class\n ('.myClass'), or even '*' to match every element.\n\n after: Like 'before', but adds a page-break immediately after the element.\n\n avoid: Like 'before', but avoids page-breaks on these elements. You can\n enable this feature on every element using the 'avoid-all' mode.\n*/\n// Refs to original functions.\n\nvar orig = {\n toContainer: _worker_js__WEBPACK_IMPORTED_MODULE_5__.default.prototype.toContainer\n}; // Add pagebreak default options to the Worker template.\n\n_worker_js__WEBPACK_IMPORTED_MODULE_5__.default.template.opt.pagebreak = {\n mode: ['css', 'legacy'],\n before: [],\n after: [],\n avoid: []\n};\n\n_worker_js__WEBPACK_IMPORTED_MODULE_5__.default.prototype.toContainer = function toContainer() {\n return orig.toContainer.call(this).then(function toContainer_pagebreak() {\n // Setup root element and inner page height.\n var root = this.prop.container;\n var pxPageHeight = this.prop.pageSize.inner.px.height; // Check all requested modes.\n\n var modeSrc = [].concat(this.opt.pagebreak.mode);\n var mode = {\n avoidAll: modeSrc.indexOf('avoid-all') !== -1,\n css: modeSrc.indexOf('css') !== -1,\n legacy: modeSrc.indexOf('legacy') !== -1\n }; // Get arrays of all explicitly requested elements.\n\n var select = {};\n var self = this;\n ['before', 'after', 'avoid'].forEach(function (key) {\n var all = mode.avoidAll && key === 'avoid';\n select[key] = all ? [] : [].concat(self.opt.pagebreak[key] || []);\n\n if (select[key].length > 0) {\n select[key] = Array.prototype.slice.call(root.querySelectorAll(select[key].join(', ')));\n }\n }); // Get all legacy page-break elements.\n\n var legacyEls = root.querySelectorAll('.html2pdf__page-break');\n legacyEls = Array.prototype.slice.call(legacyEls); // Loop through all elements.\n\n var els = root.querySelectorAll('*');\n Array.prototype.forEach.call(els, function pagebreak_loop(el) {\n // Setup pagebreak rules based on legacy and avoidAll modes.\n var rules = {\n before: false,\n after: mode.legacy && legacyEls.indexOf(el) !== -1,\n avoid: mode.avoidAll\n }; // Add rules for css mode.\n\n if (mode.css) {\n // TODO: Check if this is valid with iFrames.\n var style = window.getComputedStyle(el); // TODO: Handle 'left' and 'right' correctly.\n // TODO: Add support for 'avoid' on breakBefore/After.\n\n var breakOpt = ['always', 'page', 'left', 'right'];\n var avoidOpt = ['avoid', 'avoid-page'];\n rules = {\n before: rules.before || breakOpt.indexOf(style.breakBefore || style.pageBreakBefore) !== -1,\n after: rules.after || breakOpt.indexOf(style.breakAfter || style.pageBreakAfter) !== -1,\n avoid: rules.avoid || avoidOpt.indexOf(style.breakInside || style.pageBreakInside) !== -1\n };\n } // Add rules for explicit requests.\n\n\n Object.keys(rules).forEach(function (key) {\n rules[key] = rules[key] || select[key].indexOf(el) !== -1;\n }); // Get element position on the screen.\n // TODO: Subtract the top of the container from clientRect.top/bottom?\n\n var clientRect = el.getBoundingClientRect(); // Avoid: Check if a break happens mid-element.\n\n if (rules.avoid && !rules.before) {\n var startPage = Math.floor(clientRect.top / pxPageHeight);\n var endPage = Math.floor(clientRect.bottom / pxPageHeight);\n var nPages = Math.abs(clientRect.bottom - clientRect.top) / pxPageHeight; // Turn on rules.before if the el is broken and is at most one page long.\n\n if (endPage !== startPage && nPages <= 1) {\n rules.before = true;\n }\n } // Before: Create a padding div to push the element to the next page.\n\n\n if (rules.before) {\n var pad = (0,_utils_js__WEBPACK_IMPORTED_MODULE_6__.createElement)('div', {\n style: {\n display: 'block',\n height: pxPageHeight - clientRect.top % pxPageHeight + 'px'\n }\n });\n el.parentNode.insertBefore(pad, el);\n } // After: Create a padding div to fill the remaining page.\n\n\n if (rules.after) {\n var pad = (0,_utils_js__WEBPACK_IMPORTED_MODULE_6__.createElement)('div', {\n style: {\n display: 'block',\n height: pxPageHeight - clientRect.bottom % pxPageHeight + 'px'\n }\n });\n el.parentNode.insertBefore(pad, el.nextSibling);\n }\n });\n });\n};\n\n/***/ }),\n\n/***/ \"./src/utils.js\":\n/*!**********************!*\\\n !*** ./src/utils.js ***!\n \\**********************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"objType\": function() { return /* binding */ objType; },\n/* harmony export */ \"createElement\": function() { return /* binding */ createElement; },\n/* harmony export */ \"cloneNode\": function() { return /* binding */ cloneNode; },\n/* harmony export */ \"unitConvert\": function() { return /* binding */ unitConvert; },\n/* harmony export */ \"toPx\": function() { return /* binding */ toPx; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ \"./node_modules/core-js/modules/es.number.constructor.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ \"./node_modules/core-js/modules/es.symbol.js\");\n/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.symbol.description.js */ \"./node_modules/core-js/modules/es.symbol.description.js\");\n/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ \"./node_modules/core-js/modules/es.symbol.iterator.js\");\n/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.array.iterator.js */ \"./node_modules/core-js/modules/es.array.iterator.js\");\n/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ \"./node_modules/core-js/modules/es.string.iterator.js\");\n/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ \"./node_modules/core-js/modules/web.dom-collections.iterator.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_7__);\n\n\n\n\n\n\n\n\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n// Determine the type of a variable/object.\nvar objType = function objType(obj) {\n var type = _typeof(obj);\n\n if (type === 'undefined') return 'undefined';else if (type === 'string' || obj instanceof String) return 'string';else if (type === 'number' || obj instanceof Number) return 'number';else if (type === 'function' || obj instanceof Function) return 'function';else if (!!obj && obj.constructor === Array) return 'array';else if (obj && obj.nodeType === 1) return 'element';else if (type === 'object') return 'object';else return 'unknown';\n}; // Create an HTML element with optional className, innerHTML, and style.\n\nvar createElement = function createElement(tagName, opt) {\n var el = document.createElement(tagName);\n if (opt.className) el.className = opt.className;\n\n if (opt.innerHTML) {\n el.innerHTML = opt.innerHTML;\n var scripts = el.getElementsByTagName('script');\n\n for (var i = scripts.length; i-- > 0; null) {\n scripts[i].parentNode.removeChild(scripts[i]);\n }\n }\n\n for (var key in opt.style) {\n el.style[key] = opt.style[key];\n }\n\n return el;\n}; // Deep-clone a node and preserve contents/properties.\n\nvar cloneNode = function cloneNode(node, javascriptEnabled) {\n // Recursively clone the node.\n var clone = node.nodeType === 3 ? document.createTextNode(node.nodeValue) : node.cloneNode(false);\n\n for (var child = node.firstChild; child; child = child.nextSibling) {\n if (javascriptEnabled === true || child.nodeType !== 1 || child.nodeName !== 'SCRIPT') {\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 } // Preserve the node's scroll position when it loads.\n\n\n clone.addEventListener('load', function () {\n clone.scrollTop = node.scrollTop;\n clone.scrollLeft = node.scrollLeft;\n }, true);\n } // Return the cloned node.\n\n\n return clone;\n}; // Convert units from px using the conversion value 'k' from jsPDF.\n\nvar unitConvert = function unitConvert(obj, k) {\n if (objType(obj) === 'number') {\n return obj * 72 / 96 / k;\n } else {\n var newObj = {};\n\n for (var key in obj) {\n newObj[key] = obj[key] * 72 / 96 / k;\n }\n\n return newObj;\n }\n}; // Convert units to px using the conversion value 'k' from jsPDF.\n\nvar toPx = function toPx(val, k) {\n return Math.floor(val * k / 72 * 96);\n};\n\n/***/ }),\n\n/***/ \"./src/worker.js\":\n/*!***********************!*\\\n !*** ./src/worker.js ***!\n \\***********************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.object.assign.js */ \"./node_modules/core-js/modules/es.object.assign.js\");\n/* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.map.js */ \"./node_modules/core-js/modules/es.array.map.js\");\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.object.keys.js */ \"./node_modules/core-js/modules/es.object.keys.js\");\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ \"./node_modules/core-js/modules/es.array.concat.js\");\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ \"./node_modules/core-js/modules/es.regexp.to-string.js\");\n/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ \"./node_modules/core-js/modules/es.function.name.js\");\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var jspdf__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! jspdf */ \"jspdf\");\n/* harmony import */ var jspdf__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(jspdf__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var html2canvas__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! html2canvas */ \"html2canvas\");\n/* harmony import */ var html2canvas__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(html2canvas__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils.js */ \"./src/utils.js\");\n/* harmony import */ var es6_promise__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! es6-promise */ \"./node_modules/es6-promise/dist/es6-promise.js\");\n/* harmony import */ var es6_promise__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(es6_promise__WEBPACK_IMPORTED_MODULE_11__);\n\n\n\n\n\n\n\n\n\n\n\n\nvar Promise = (es6_promise__WEBPACK_IMPORTED_MODULE_11___default().Promise);\n/* ----- CONSTRUCTOR ----- */\n\nvar Worker = function Worker(opt) {\n // Create the root parent for the proto chain, and the starting Worker.\n var root = Object.assign(Worker.convert(Promise.resolve()), JSON.parse(JSON.stringify(Worker.template)));\n var self = Worker.convert(Promise.resolve(), root); // Set progress, optional settings, and return.\n\n self = self.setProgress(1, Worker, 1, [Worker]);\n self = self.set(opt);\n return self;\n}; // Boilerplate for subclassing Promise.\n\n\nWorker.prototype = Object.create(Promise.prototype);\nWorker.prototype.constructor = Worker; // Converts/casts promises into Workers.\n\nWorker.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\nWorker.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 },\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 image: {\n type: 'jpeg',\n quality: 0.95\n },\n enableLinks: true,\n html2canvas: {},\n jsPDF: {}\n }\n};\n/* ----- FROM / TO ----- */\n\nWorker.prototype.from = function from(src, type) {\n function getType(src) {\n switch ((0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.objType)(src)) {\n case 'string':\n return 'string';\n\n case 'element':\n return src.nodeName.toLowerCase && src.nodeName.toLowerCase() === 'canvas' ? 'canvas' : 'element';\n\n default:\n return 'unknown';\n }\n }\n\n return this.then(function from_main() {\n type = type || getType(src);\n\n switch (type) {\n case 'string':\n return this.set({\n src: (0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.createElement)('div', {\n innerHTML: src\n })\n });\n\n case 'element':\n return this.set({\n src: src\n });\n\n case 'canvas':\n return this.set({\n canvas: src\n });\n\n case 'img':\n return this.set({\n img: src\n });\n\n default:\n return this.error('Unknown source type.');\n }\n });\n};\n\nWorker.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\n case 'canvas':\n return this.toCanvas();\n\n case 'img':\n return this.toImg();\n\n case 'pdf':\n return this.toPdf();\n\n default:\n return this.error('Invalid target.');\n }\n};\n\nWorker.prototype.toContainer = function toContainer() {\n // Set up function prerequisites.\n var prereqs = [function checkSrc() {\n return this.prop.src || this.error('Cannot duplicate - no source HTML.');\n }, function checkPageSize() {\n return this.prop.pageSize || this.setPageSize();\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: 0,\n right: 0,\n bottom: 0,\n top: 0,\n backgroundColor: 'rgba(0,0,0,0.8)'\n };\n var containerCSS = {\n position: 'absolute',\n width: this.prop.pageSize.inner.width + this.prop.pageSize.unit,\n left: 0,\n right: 0,\n top: 0,\n height: 'auto',\n margin: 'auto',\n backgroundColor: 'white'\n }; // Set the overlay to hidden (could be changed in the future to provide a print preview).\n\n overlayCSS.opacity = 0; // Create and attach the elements.\n\n var source = (0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.cloneNode)(this.prop.src, this.opt.html2canvas.javascriptEnabled);\n this.prop.overlay = (0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.createElement)('div', {\n className: 'html2pdf__overlay',\n style: overlayCSS\n });\n this.prop.container = (0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.createElement)('div', {\n className: 'html2pdf__container',\n style: containerCSS\n });\n this.prop.container.appendChild(source);\n this.prop.overlay.appendChild(this.prop.container);\n document.body.appendChild(this.prop.overlay);\n });\n};\n\nWorker.prototype.toCanvas = function toCanvas() {\n // Set up function prerequisites.\n var prereqs = [function checkContainer() {\n return document.body.contains(this.prop.container) || this.toContainer();\n }]; // Fulfill prereqs then create the canvas.\n\n return this.thenList(prereqs).then(function toCanvas_main() {\n // Handle old-fashioned 'onrendered' argument.\n var options = Object.assign({}, this.opt.html2canvas);\n delete options.onrendered;\n return html2canvas__WEBPACK_IMPORTED_MODULE_9__(this.prop.container, options);\n }).then(function toCanvas_post(canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function () {};\n\n onRendered(canvas);\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n};\n\nWorker.prototype.toImg = function toImg() {\n // Set up function prerequisites.\n var prereqs = [function checkCanvas() {\n return this.prop.canvas || this.toCanvas();\n }]; // Fulfill prereqs then create the image.\n\n return this.thenList(prereqs).then(function toImg_main() {\n var imgData = this.prop.canvas.toDataURL('image/' + this.opt.image.type, this.opt.image.quality);\n this.prop.img = document.createElement('img');\n this.prop.img.src = imgData;\n });\n};\n\nWorker.prototype.toPdf = function toPdf() {\n // Set up function prerequisites.\n var prereqs = [function checkCanvas() {\n return this.prop.canvas || this.toCanvas();\n }, function checkPageSize() {\n return this.prop.pageSize || this.setPageSize();\n }]; // Fulfill prereqs then create the image.\n\n return this.thenList(prereqs).then(function toPdf_main() {\n // Create local copies of frequently used properties.\n var canvas = this.prop.canvas;\n var opt = this.opt; // Calculate the number of pages.\n\n var pxFullHeight = canvas.height;\n var pxPageHeight = Math.floor(canvas.width * this.prop.pageSize.inner.ratio);\n var nPages = Math.ceil(pxFullHeight / pxPageHeight); // Define pageHeight separately so it can be trimmed on the final page.\n\n var pageHeight = this.prop.pageSize.inner.height; // Create a one-page canvas to split up the full image.\n\n var pageCanvas = document.createElement('canvas');\n var pageCtx = pageCanvas.getContext('2d');\n pageCanvas.width = canvas.width;\n pageCanvas.height = pxPageHeight; // Initialize the PDF.\n\n this.prop.pdf = this.prop.pdf || new jspdf__WEBPACK_IMPORTED_MODULE_8__.jsPDF(opt.jsPDF);\n\n for (var page = 0; page < nPages; page++) {\n // Trim the final page to reduce file size.\n if (page === nPages - 1 && pxFullHeight % pxPageHeight !== 0) {\n pageCanvas.height = pxFullHeight % pxPageHeight;\n pageHeight = pageCanvas.height * this.prop.pageSize.inner.width / pageCanvas.width;\n } // Display the page.\n\n\n var w = pageCanvas.width;\n var h = pageCanvas.height;\n pageCtx.fillStyle = 'white';\n pageCtx.fillRect(0, 0, w, h);\n pageCtx.drawImage(canvas, 0, page * pxPageHeight, w, h, 0, 0, w, h); // Add the page to the PDF.\n\n if (page) this.prop.pdf.addPage();\n var imgData = pageCanvas.toDataURL('image/' + opt.image.type, opt.image.quality);\n this.prop.pdf.addImage(imgData, opt.image.type, opt.margin[1], opt.margin[0], this.prop.pageSize.inner.width, pageHeight);\n }\n });\n};\n/* ----- OUTPUT / SAVE ----- */\n\n\nWorker.prototype.output = function output(type, options, src) {\n // Redirect requests to the correct function (outputPdf / outputImg).\n src = src || 'pdf';\n\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\nWorker.prototype.outputPdf = function outputPdf(type, options) {\n // Set up function prerequisites.\n var prereqs = [function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }]; // Fulfill prereqs then perform the appropriate output.\n\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\nWorker.prototype.outputImg = function outputImg(type, options) {\n // Set up function prerequisites.\n var prereqs = [function checkImg() {\n return this.prop.img || this.toImg();\n }]; // Fulfill prereqs then perform the appropriate output.\n\n return this.thenList(prereqs).then(function outputImg_main() {\n switch (type) {\n case undefined:\n case 'img':\n return this.prop.img;\n\n case 'datauristring':\n case 'dataurlstring':\n return this.prop.img.src;\n\n case 'datauri':\n case 'dataurl':\n return document.location.href = this.prop.img.src;\n\n default:\n throw 'Image output type \"' + type + '\" is not supported.';\n }\n });\n};\n\nWorker.prototype.save = function save(filename) {\n // Set up function prerequisites.\n var prereqs = [function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }]; // Fulfill prereqs, update the filename (if provided), and save the PDF.\n\n return this.thenList(prereqs).set(filename ? {\n filename: filename\n } : null).then(function save_main() {\n this.prop.pdf.save(this.opt.filename);\n });\n};\n/* ----- SET / GET ----- */\n\n\nWorker.prototype.set = function set(opt) {\n // TODO: Implement ordered pairs?\n // Silently ignore invalid or empty input.\n if ((0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.objType)(opt) !== 'object') {\n return this;\n } // Build an array of setter functions to queue.\n\n\n var fns = Object.keys(opt || {}).map(function (key) {\n switch (key) {\n case 'margin':\n return this.setMargin.bind(this, opt.margin);\n\n case 'jsPDF':\n return function set_jsPDF() {\n this.opt.jsPDF = opt.jsPDF;\n return this.setPageSize();\n };\n\n case 'pageSize':\n return this.setPageSize.bind(this, opt.pageSize);\n\n default:\n if (key in Worker.template.prop) {\n // Set pre-defined properties in prop.\n return function set_prop() {\n this.prop[key] = opt[key];\n };\n } else {\n // Set any other properties in opt.\n return function set_opt() {\n this.opt[key] = opt[key];\n };\n }\n\n }\n }, this); // Set properties within the promise chain.\n\n return this.then(function set_main() {\n return this.thenList(fns);\n });\n};\n\nWorker.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\nWorker.prototype.setMargin = function setMargin(margin) {\n return this.then(function setMargin_main() {\n // Parse the margin property: [top, left, bottom, right].\n switch ((0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.objType)(margin)) {\n case 'number':\n margin = [margin, margin, margin, margin];\n\n case 'array':\n if (margin.length === 2) {\n margin = [margin[0], margin[1], margin[0], margin[1]];\n }\n\n if (margin.length === 4) {\n break;\n }\n\n default:\n return this.error('Invalid margin array.');\n } // Set the margin property, then update pageSize.\n\n\n this.opt.margin = margin;\n }).then(this.setPageSize);\n};\n\nWorker.prototype.setPageSize = function setPageSize(pageSize) {\n return this.then(function setPageSize_main() {\n // Retrieve page-size based on jsPDF settings, if not explicitly provided.\n pageSize = pageSize || jspdf__WEBPACK_IMPORTED_MODULE_8__.jsPDF.getPageSize(this.opt.jsPDF); // Add 'inner' field if not present.\n\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: (0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.toPx)(pageSize.inner.width, pageSize.k),\n height: (0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.toPx)(pageSize.inner.height, pageSize.k)\n };\n pageSize.inner.ratio = pageSize.inner.height / pageSize.inner.width;\n } // Attach pageSize to this.\n\n\n this.prop.pageSize = pageSize;\n });\n};\n\nWorker.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; // Return this for command chaining.\n\n return this;\n};\n\nWorker.prototype.updateProgress = function updateProgress(val, state, n, stack) {\n // Immediately update all progress values, using setProgress.\n return this.setProgress(val ? this.progress.val + val : null, state ? state : null, n ? this.progress.n + n : null, stack ? this.progress.stack.concat(stack) : null);\n};\n/* ----- PROMISE MAPPING ----- */\n\n\nWorker.prototype.then = function then(onFulfilled, onRejected) {\n // Wrap `this` for encapsulation.\n var self = this;\n return this.thenCore(onFulfilled, onRejected, function then_main(onFulfilled, onRejected) {\n // Update progress while queuing, calling, and resolving `then`.\n self.updateProgress(null, null, 1, [onFulfilled]);\n return Promise.prototype.then.call(this, function then_pre(val) {\n self.updateProgress(null, onFulfilled);\n return val;\n }).then(onFulfilled, onRejected).then(function then_post(val) {\n self.updateProgress(1);\n return val;\n });\n });\n};\n\nWorker.prototype.thenCore = function thenCore(onFulfilled, onRejected, thenBase) {\n // Handle optional thenBase parameter.\n thenBase = thenBase || Promise.prototype.then; // Wrap `this` for encapsulation and bind it to the promise handlers.\n\n var self = this;\n\n if (onFulfilled) {\n onFulfilled = onFulfilled.bind(self);\n }\n\n if (onRejected) {\n onRejected = onRejected.bind(self);\n } // Cast self into a Promise to avoid polyfills recursively defining `then`.\n\n\n var isNative = Promise.toString().indexOf('[native code]') !== -1 && Promise.name === 'Promise';\n var selfPromise = isNative ? self : Worker.convert(Object.assign({}, self), Promise.prototype); // Return the promise, after casting it into a Worker and preserving props.\n\n var returnVal = thenBase.call(selfPromise, onFulfilled, onRejected);\n return Worker.convert(returnVal, self.__proto__);\n};\n\nWorker.prototype.thenExternal = function thenExternal(onFulfilled, onRejected) {\n // Call `then` and return a standard promise (exits the Worker chain).\n return Promise.prototype.then.call(this, onFulfilled, onRejected);\n};\n\nWorker.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\nWorker.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\n var returnVal = Promise.prototype['catch'].call(this, onRejected);\n return Worker.convert(returnVal, this);\n};\n\nWorker.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\nWorker.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/* ----- ALIASES ----- */\n\n\nWorker.prototype.using = Worker.prototype.set;\nWorker.prototype.saveAs = Worker.prototype.save;\nWorker.prototype.export = Worker.prototype.output;\nWorker.prototype.run = Worker.prototype.then;\n/* ----- FINISHING ----- */\n// Expose the Worker class.\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Worker);\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/a-function.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/internals/a-function.js ***!\n \\******************************************************/\n/***/ (function(module) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/a-possible-prototype.js\":\n/*!****************************************************************!*\\\n !*** ./node_modules/core-js/internals/a-possible-prototype.js ***!\n \\****************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/add-to-unscopables.js\":\n/*!**************************************************************!*\\\n !*** ./node_modules/core-js/internals/add-to-unscopables.js ***!\n \\**************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\nvar create = __webpack_require__(/*! ../internals/object-create */ \"./node_modules/core-js/internals/object-create.js\");\nvar definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/an-object.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/internals/an-object.js ***!\n \\*****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/array-for-each.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/internals/array-for-each.js ***!\n \\**********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $forEach = __webpack_require__(/*! ../internals/array-iteration */ \"./node_modules/core-js/internals/array-iteration.js\").forEach;\nvar arrayMethodIsStrict = __webpack_require__(/*! ../internals/array-method-is-strict */ \"./node_modules/core-js/internals/array-method-is-strict.js\");\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/array-includes.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/internals/array-includes.js ***!\n \\**********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar toLength = __webpack_require__(/*! ../internals/to-length */ \"./node_modules/core-js/internals/to-length.js\");\nvar toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ \"./node_modules/core-js/internals/to-absolute-index.js\");\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/array-iteration.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/core-js/internals/array-iteration.js ***!\n \\***********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar bind = __webpack_require__(/*! ../internals/function-bind-context */ \"./node_modules/core-js/internals/function-bind-context.js\");\nvar IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ \"./node_modules/core-js/internals/indexed-object.js\");\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\nvar toLength = __webpack_require__(/*! ../internals/to-length */ \"./node_modules/core-js/internals/to-length.js\");\nvar arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ \"./node_modules/core-js/internals/array-species-create.js\");\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/array-method-has-species-support.js\":\n/*!****************************************************************************!*\\\n !*** ./node_modules/core-js/internals/array-method-has-species-support.js ***!\n \\****************************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\nvar V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ \"./node_modules/core-js/internals/engine-v8-version.js\");\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/array-method-is-strict.js\":\n/*!******************************************************************!*\\\n !*** ./node_modules/core-js/internals/array-method-is-strict.js ***!\n \\******************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/array-species-constructor.js\":\n/*!*********************************************************************!*\\\n !*** ./node_modules/core-js/internals/array-species-constructor.js ***!\n \\*********************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar isArray = __webpack_require__(/*! ../internals/is-array */ \"./node_modules/core-js/internals/is-array.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nvar SPECIES = wellKnownSymbol('species');\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/array-species-create.js\":\n/*!****************************************************************!*\\\n !*** ./node_modules/core-js/internals/array-species-create.js ***!\n \\****************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar arraySpeciesConstructor = __webpack_require__(/*! ../internals/array-species-constructor */ \"./node_modules/core-js/internals/array-species-constructor.js\");\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/classof-raw.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/core-js/internals/classof-raw.js ***!\n \\*******************************************************/\n/***/ (function(module) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/classof.js\":\n/*!***************************************************!*\\\n !*** ./node_modules/core-js/internals/classof.js ***!\n \\***************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ \"./node_modules/core-js/internals/to-string-tag-support.js\");\nvar classofRaw = __webpack_require__(/*! ../internals/classof-raw */ \"./node_modules/core-js/internals/classof-raw.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/copy-constructor-properties.js\":\n/*!***********************************************************************!*\\\n !*** ./node_modules/core-js/internals/copy-constructor-properties.js ***!\n \\***********************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar ownKeys = __webpack_require__(/*! ../internals/own-keys */ \"./node_modules/core-js/internals/own-keys.js\");\nvar getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ \"./node_modules/core-js/internals/object-get-own-property-descriptor.js\");\nvar definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/correct-prototype-getter.js\":\n/*!********************************************************************!*\\\n !*** ./node_modules/core-js/internals/correct-prototype-getter.js ***!\n \\********************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/create-html.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/core-js/internals/create-html.js ***!\n \\*******************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ \"./node_modules/core-js/internals/require-object-coercible.js\");\nvar toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\n\nvar quot = /\"/g;\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + toString(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/create-iterator-constructor.js\":\n/*!***********************************************************************!*\\\n !*** ./node_modules/core-js/internals/create-iterator-constructor.js ***!\n \\***********************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(/*! ../internals/iterators-core */ \"./node_modules/core-js/internals/iterators-core.js\").IteratorPrototype;\nvar create = __webpack_require__(/*! ../internals/object-create */ \"./node_modules/core-js/internals/object-create.js\");\nvar createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ \"./node_modules/core-js/internals/create-property-descriptor.js\");\nvar setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ \"./node_modules/core-js/internals/set-to-string-tag.js\");\nvar Iterators = __webpack_require__(/*! ../internals/iterators */ \"./node_modules/core-js/internals/iterators.js\");\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/create-non-enumerable-property.js\":\n/*!**************************************************************************!*\\\n !*** ./node_modules/core-js/internals/create-non-enumerable-property.js ***!\n \\**************************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\nvar createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ \"./node_modules/core-js/internals/create-property-descriptor.js\");\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/create-property-descriptor.js\":\n/*!**********************************************************************!*\\\n !*** ./node_modules/core-js/internals/create-property-descriptor.js ***!\n \\**********************************************************************/\n/***/ (function(module) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/create-property.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/core-js/internals/create-property.js ***!\n \\***********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ \"./node_modules/core-js/internals/to-property-key.js\");\nvar definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\nvar createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ \"./node_modules/core-js/internals/create-property-descriptor.js\");\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/define-iterator.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/core-js/internals/define-iterator.js ***!\n \\***********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar createIteratorConstructor = __webpack_require__(/*! ../internals/create-iterator-constructor */ \"./node_modules/core-js/internals/create-iterator-constructor.js\");\nvar getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ \"./node_modules/core-js/internals/object-get-prototype-of.js\");\nvar setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ \"./node_modules/core-js/internals/object-set-prototype-of.js\");\nvar setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ \"./node_modules/core-js/internals/set-to-string-tag.js\");\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar redefine = __webpack_require__(/*! ../internals/redefine */ \"./node_modules/core-js/internals/redefine.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\nvar IS_PURE = __webpack_require__(/*! ../internals/is-pure */ \"./node_modules/core-js/internals/is-pure.js\");\nvar Iterators = __webpack_require__(/*! ../internals/iterators */ \"./node_modules/core-js/internals/iterators.js\");\nvar IteratorsCore = __webpack_require__(/*! ../internals/iterators-core */ \"./node_modules/core-js/internals/iterators-core.js\");\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/define-well-known-symbol.js\":\n/*!********************************************************************!*\\\n !*** ./node_modules/core-js/internals/define-well-known-symbol.js ***!\n \\********************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar path = __webpack_require__(/*! ../internals/path */ \"./node_modules/core-js/internals/path.js\");\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar wrappedWellKnownSymbolModule = __webpack_require__(/*! ../internals/well-known-symbol-wrapped */ \"./node_modules/core-js/internals/well-known-symbol-wrapped.js\");\nvar defineProperty = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\").f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/descriptors.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/core-js/internals/descriptors.js ***!\n \\*******************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/document-create-element.js\":\n/*!*******************************************************************!*\\\n !*** ./node_modules/core-js/internals/document-create-element.js ***!\n \\*******************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/dom-iterables.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/internals/dom-iterables.js ***!\n \\*********************************************************/\n/***/ (function(module) {\n\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/engine-user-agent.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/internals/engine-user-agent.js ***!\n \\*************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ \"./node_modules/core-js/internals/get-built-in.js\");\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/engine-v8-version.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/internals/engine-v8-version.js ***!\n \\*************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ \"./node_modules/core-js/internals/engine-user-agent.js\");\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/enum-bug-keys.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/internals/enum-bug-keys.js ***!\n \\*********************************************************/\n/***/ (function(module) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/export.js\":\n/*!**************************************************!*\\\n !*** ./node_modules/core-js/internals/export.js ***!\n \\**************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar getOwnPropertyDescriptor = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ \"./node_modules/core-js/internals/object-get-own-property-descriptor.js\").f;\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar redefine = __webpack_require__(/*! ../internals/redefine */ \"./node_modules/core-js/internals/redefine.js\");\nvar setGlobal = __webpack_require__(/*! ../internals/set-global */ \"./node_modules/core-js/internals/set-global.js\");\nvar copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ \"./node_modules/core-js/internals/copy-constructor-properties.js\");\nvar isForced = __webpack_require__(/*! ../internals/is-forced */ \"./node_modules/core-js/internals/is-forced.js\");\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/fails.js\":\n/*!*************************************************!*\\\n !*** ./node_modules/core-js/internals/fails.js ***!\n \\*************************************************/\n/***/ (function(module) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/function-bind-context.js\":\n/*!*****************************************************************!*\\\n !*** ./node_modules/core-js/internals/function-bind-context.js ***!\n \\*****************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(/*! ../internals/a-function */ \"./node_modules/core-js/internals/a-function.js\");\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/get-built-in.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/internals/get-built-in.js ***!\n \\********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/global.js\":\n/*!**************************************************!*\\\n !*** ./node_modules/core-js/internals/global.js ***!\n \\**************************************************/\n/***/ (function(module) {\n\nvar check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/has.js\":\n/*!***********************************************!*\\\n !*** ./node_modules/core-js/internals/has.js ***!\n \\***********************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/hidden-keys.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/core-js/internals/hidden-keys.js ***!\n \\*******************************************************/\n/***/ (function(module) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/html.js\":\n/*!************************************************!*\\\n !*** ./node_modules/core-js/internals/html.js ***!\n \\************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ \"./node_modules/core-js/internals/get-built-in.js\");\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/ie8-dom-define.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/internals/ie8-dom-define.js ***!\n \\**********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar createElement = __webpack_require__(/*! ../internals/document-create-element */ \"./node_modules/core-js/internals/document-create-element.js\");\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/indexed-object.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/internals/indexed-object.js ***!\n \\**********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar classof = __webpack_require__(/*! ../internals/classof-raw */ \"./node_modules/core-js/internals/classof-raw.js\");\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/inherit-if-required.js\":\n/*!***************************************************************!*\\\n !*** ./node_modules/core-js/internals/inherit-if-required.js ***!\n \\***************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ \"./node_modules/core-js/internals/object-set-prototype-of.js\");\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/inspect-source.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/internals/inspect-source.js ***!\n \\**********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar store = __webpack_require__(/*! ../internals/shared-store */ \"./node_modules/core-js/internals/shared-store.js\");\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/internal-state.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/internals/internal-state.js ***!\n \\**********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/native-weak-map */ \"./node_modules/core-js/internals/native-weak-map.js\");\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar objectHas = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar shared = __webpack_require__(/*! ../internals/shared-store */ \"./node_modules/core-js/internals/shared-store.js\");\nvar sharedKey = __webpack_require__(/*! ../internals/shared-key */ \"./node_modules/core-js/internals/shared-key.js\");\nvar hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ \"./node_modules/core-js/internals/hidden-keys.js\");\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/is-array.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/internals/is-array.js ***!\n \\****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar classof = __webpack_require__(/*! ../internals/classof-raw */ \"./node_modules/core-js/internals/classof-raw.js\");\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/is-forced.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/internals/is-forced.js ***!\n \\*****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/is-object.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/internals/is-object.js ***!\n \\*****************************************************/\n/***/ (function(module) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/is-pure.js\":\n/*!***************************************************!*\\\n !*** ./node_modules/core-js/internals/is-pure.js ***!\n \\***************************************************/\n/***/ (function(module) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/is-symbol.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/internals/is-symbol.js ***!\n \\*****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ \"./node_modules/core-js/internals/get-built-in.js\");\nvar USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ \"./node_modules/core-js/internals/use-symbol-as-uid.js\");\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return typeof $Symbol == 'function' && Object(it) instanceof $Symbol;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/iterators-core.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/internals/iterators-core.js ***!\n \\**********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ \"./node_modules/core-js/internals/object-get-prototype-of.js\");\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\nvar IS_PURE = __webpack_require__(/*! ../internals/is-pure */ \"./node_modules/core-js/internals/is-pure.js\");\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/iterators.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/internals/iterators.js ***!\n \\*****************************************************/\n/***/ (function(module) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/native-symbol.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/internals/native-symbol.js ***!\n \\*********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ \"./node_modules/core-js/internals/engine-v8-version.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/native-weak-map.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/core-js/internals/native-weak-map.js ***!\n \\***********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar inspectSource = __webpack_require__(/*! ../internals/inspect-source */ \"./node_modules/core-js/internals/inspect-source.js\");\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-assign.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/internals/object-assign.js ***!\n \\*********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar objectKeys = __webpack_require__(/*! ../internals/object-keys */ \"./node_modules/core-js/internals/object-keys.js\");\nvar getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ \"./node_modules/core-js/internals/object-get-own-property-symbols.js\");\nvar propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ \"./node_modules/core-js/internals/object-property-is-enumerable.js\");\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\nvar IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ \"./node_modules/core-js/internals/indexed-object.js\");\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-create.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/internals/object-create.js ***!\n \\*********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar defineProperties = __webpack_require__(/*! ../internals/object-define-properties */ \"./node_modules/core-js/internals/object-define-properties.js\");\nvar enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ \"./node_modules/core-js/internals/enum-bug-keys.js\");\nvar hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ \"./node_modules/core-js/internals/hidden-keys.js\");\nvar html = __webpack_require__(/*! ../internals/html */ \"./node_modules/core-js/internals/html.js\");\nvar documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ \"./node_modules/core-js/internals/document-create-element.js\");\nvar sharedKey = __webpack_require__(/*! ../internals/shared-key */ \"./node_modules/core-js/internals/shared-key.js\");\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n if (iframe.style) {\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n }\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = document.domain && activeXDocument ?\n NullProtoObjectViaActiveX(activeXDocument) : // old IE\n NullProtoObjectViaIFrame() ||\n NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-define-properties.js\":\n/*!********************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-define-properties.js ***!\n \\********************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar objectKeys = __webpack_require__(/*! ../internals/object-keys */ \"./node_modules/core-js/internals/object-keys.js\");\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-define-property.js\":\n/*!******************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-define-property.js ***!\n \\******************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ \"./node_modules/core-js/internals/ie8-dom-define.js\");\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ \"./node_modules/core-js/internals/to-property-key.js\");\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-get-own-property-descriptor.js\":\n/*!******************************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-get-own-property-descriptor.js ***!\n \\******************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ \"./node_modules/core-js/internals/object-property-is-enumerable.js\");\nvar createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ \"./node_modules/core-js/internals/create-property-descriptor.js\");\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ \"./node_modules/core-js/internals/to-property-key.js\");\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ \"./node_modules/core-js/internals/ie8-dom-define.js\");\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-get-own-property-names-external.js\":\n/*!**********************************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-get-own-property-names-external.js ***!\n \\**********************************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar $getOwnPropertyNames = __webpack_require__(/*! ../internals/object-get-own-property-names */ \"./node_modules/core-js/internals/object-get-own-property-names.js\").f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-get-own-property-names.js\":\n/*!*************************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-get-own-property-names.js ***!\n \\*************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ \"./node_modules/core-js/internals/object-keys-internal.js\");\nvar enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ \"./node_modules/core-js/internals/enum-bug-keys.js\");\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-get-own-property-symbols.js\":\n/*!***************************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-get-own-property-symbols.js ***!\n \\***************************************************************************/\n/***/ (function(__unused_webpack_module, exports) {\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-get-prototype-of.js\":\n/*!*******************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-get-prototype-of.js ***!\n \\*******************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\nvar sharedKey = __webpack_require__(/*! ../internals/shared-key */ \"./node_modules/core-js/internals/shared-key.js\");\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(/*! ../internals/correct-prototype-getter */ \"./node_modules/core-js/internals/correct-prototype-getter.js\");\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-keys-internal.js\":\n/*!****************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-keys-internal.js ***!\n \\****************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar indexOf = __webpack_require__(/*! ../internals/array-includes */ \"./node_modules/core-js/internals/array-includes.js\").indexOf;\nvar hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ \"./node_modules/core-js/internals/hidden-keys.js\");\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-keys.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/core-js/internals/object-keys.js ***!\n \\*******************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ \"./node_modules/core-js/internals/object-keys-internal.js\");\nvar enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ \"./node_modules/core-js/internals/enum-bug-keys.js\");\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-property-is-enumerable.js\":\n/*!*************************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-property-is-enumerable.js ***!\n \\*************************************************************************/\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\n\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-set-prototype-of.js\":\n/*!*******************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-set-prototype-of.js ***!\n \\*******************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* eslint-disable no-proto -- safe */\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar aPossiblePrototype = __webpack_require__(/*! ../internals/a-possible-prototype */ \"./node_modules/core-js/internals/a-possible-prototype.js\");\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-to-string.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-to-string.js ***!\n \\************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ \"./node_modules/core-js/internals/to-string-tag-support.js\");\nvar classof = __webpack_require__(/*! ../internals/classof */ \"./node_modules/core-js/internals/classof.js\");\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/ordinary-to-primitive.js\":\n/*!*****************************************************************!*\\\n !*** ./node_modules/core-js/internals/ordinary-to-primitive.js ***!\n \\*****************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (pref !== 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/own-keys.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/internals/own-keys.js ***!\n \\****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ \"./node_modules/core-js/internals/get-built-in.js\");\nvar getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ \"./node_modules/core-js/internals/object-get-own-property-names.js\");\nvar getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ \"./node_modules/core-js/internals/object-get-own-property-symbols.js\");\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/path.js\":\n/*!************************************************!*\\\n !*** ./node_modules/core-js/internals/path.js ***!\n \\************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\n\nmodule.exports = global;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/redefine.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/internals/redefine.js ***!\n \\****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar setGlobal = __webpack_require__(/*! ../internals/set-global */ \"./node_modules/core-js/internals/set-global.js\");\nvar inspectSource = __webpack_require__(/*! ../internals/inspect-source */ \"./node_modules/core-js/internals/inspect-source.js\");\nvar InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ \"./node_modules/core-js/internals/internal-state.js\");\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/regexp-flags.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/internals/regexp-flags.js ***!\n \\********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/require-object-coercible.js\":\n/*!********************************************************************!*\\\n !*** ./node_modules/core-js/internals/require-object-coercible.js ***!\n \\********************************************************************/\n/***/ (function(module) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/set-global.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/internals/set-global.js ***!\n \\******************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\n\nmodule.exports = function (key, value) {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/set-to-string-tag.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/internals/set-to-string-tag.js ***!\n \\*************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\").f;\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/shared-key.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/internals/shared-key.js ***!\n \\******************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar shared = __webpack_require__(/*! ../internals/shared */ \"./node_modules/core-js/internals/shared.js\");\nvar uid = __webpack_require__(/*! ../internals/uid */ \"./node_modules/core-js/internals/uid.js\");\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/shared-store.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/internals/shared-store.js ***!\n \\********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar setGlobal = __webpack_require__(/*! ../internals/set-global */ \"./node_modules/core-js/internals/set-global.js\");\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/shared.js\":\n/*!**************************************************!*\\\n !*** ./node_modules/core-js/internals/shared.js ***!\n \\**************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(/*! ../internals/is-pure */ \"./node_modules/core-js/internals/is-pure.js\");\nvar store = __webpack_require__(/*! ../internals/shared-store */ \"./node_modules/core-js/internals/shared-store.js\");\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.16.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/string-html-forced.js\":\n/*!**************************************************************!*\\\n !*** ./node_modules/core-js/internals/string-html-forced.js ***!\n \\**************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/string-multibyte.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/core-js/internals/string-multibyte.js ***!\n \\************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(/*! ../internals/to-integer */ \"./node_modules/core-js/internals/to-integer.js\");\nvar toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\nvar requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ \"./node_modules/core-js/internals/require-object-coercible.js\");\n\n// `String.prototype.codePointAt` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/string-trim.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/core-js/internals/string-trim.js ***!\n \\*******************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ \"./node_modules/core-js/internals/require-object-coercible.js\");\nvar toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\nvar whitespaces = __webpack_require__(/*! ../internals/whitespaces */ \"./node_modules/core-js/internals/whitespaces.js\");\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-absolute-index.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/internals/to-absolute-index.js ***!\n \\*************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(/*! ../internals/to-integer */ \"./node_modules/core-js/internals/to-integer.js\");\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-indexed-object.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/internals/to-indexed-object.js ***!\n \\*************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ \"./node_modules/core-js/internals/indexed-object.js\");\nvar requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ \"./node_modules/core-js/internals/require-object-coercible.js\");\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-integer.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/internals/to-integer.js ***!\n \\******************************************************/\n/***/ (function(module) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-length.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/internals/to-length.js ***!\n \\*****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(/*! ../internals/to-integer */ \"./node_modules/core-js/internals/to-integer.js\");\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-object.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/internals/to-object.js ***!\n \\*****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ \"./node_modules/core-js/internals/require-object-coercible.js\");\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-primitive.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/internals/to-primitive.js ***!\n \\********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar isSymbol = __webpack_require__(/*! ../internals/is-symbol */ \"./node_modules/core-js/internals/is-symbol.js\");\nvar ordinaryToPrimitive = __webpack_require__(/*! ../internals/ordinary-to-primitive */ \"./node_modules/core-js/internals/ordinary-to-primitive.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = input[TO_PRIMITIVE];\n var result;\n if (exoticToPrim !== undefined) {\n if (pref === undefined) pref = 'default';\n result = exoticToPrim.call(input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-property-key.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/core-js/internals/to-property-key.js ***!\n \\***********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ \"./node_modules/core-js/internals/to-primitive.js\");\nvar isSymbol = __webpack_require__(/*! ../internals/is-symbol */ \"./node_modules/core-js/internals/is-symbol.js\");\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : String(key);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-string-tag-support.js\":\n/*!*****************************************************************!*\\\n !*** ./node_modules/core-js/internals/to-string-tag-support.js ***!\n \\*****************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-string.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/internals/to-string.js ***!\n \\*****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isSymbol = __webpack_require__(/*! ../internals/is-symbol */ \"./node_modules/core-js/internals/is-symbol.js\");\n\nmodule.exports = function (argument) {\n if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/uid.js\":\n/*!***********************************************!*\\\n !*** ./node_modules/core-js/internals/uid.js ***!\n \\***********************************************/\n/***/ (function(module) {\n\nvar id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/use-symbol-as-uid.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/internals/use-symbol-as-uid.js ***!\n \\*************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ \"./node_modules/core-js/internals/native-symbol.js\");\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/well-known-symbol-wrapped.js\":\n/*!*********************************************************************!*\\\n !*** ./node_modules/core-js/internals/well-known-symbol-wrapped.js ***!\n \\*********************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nexports.f = wellKnownSymbol;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/well-known-symbol.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/internals/well-known-symbol.js ***!\n \\*************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar shared = __webpack_require__(/*! ../internals/shared */ \"./node_modules/core-js/internals/shared.js\");\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar uid = __webpack_require__(/*! ../internals/uid */ \"./node_modules/core-js/internals/uid.js\");\nvar NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ \"./node_modules/core-js/internals/native-symbol.js\");\nvar USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ \"./node_modules/core-js/internals/use-symbol-as-uid.js\");\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/whitespaces.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/core-js/internals/whitespaces.js ***!\n \\*******************************************************/\n/***/ (function(module) {\n\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.array.concat.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/modules/es.array.concat.js ***!\n \\*********************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar isArray = __webpack_require__(/*! ../internals/is-array */ \"./node_modules/core-js/internals/is-array.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\nvar toLength = __webpack_require__(/*! ../internals/to-length */ \"./node_modules/core-js/internals/to-length.js\");\nvar createProperty = __webpack_require__(/*! ../internals/create-property */ \"./node_modules/core-js/internals/create-property.js\");\nvar arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ \"./node_modules/core-js/internals/array-species-create.js\");\nvar arrayMethodHasSpeciesSupport = __webpack_require__(/*! ../internals/array-method-has-species-support */ \"./node_modules/core-js/internals/array-method-has-species-support.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\nvar V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ \"./node_modules/core-js/internals/engine-v8-version.js\");\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.array.iterator.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/core-js/modules/es.array.iterator.js ***!\n \\***********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ \"./node_modules/core-js/internals/add-to-unscopables.js\");\nvar Iterators = __webpack_require__(/*! ../internals/iterators */ \"./node_modules/core-js/internals/iterators.js\");\nvar InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ \"./node_modules/core-js/internals/internal-state.js\");\nvar defineIterator = __webpack_require__(/*! ../internals/define-iterator */ \"./node_modules/core-js/internals/define-iterator.js\");\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.array.join.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/core-js/modules/es.array.join.js ***!\n \\*******************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ \"./node_modules/core-js/internals/indexed-object.js\");\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar arrayMethodIsStrict = __webpack_require__(/*! ../internals/array-method-is-strict */ \"./node_modules/core-js/internals/array-method-is-strict.js\");\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.array.map.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/modules/es.array.map.js ***!\n \\******************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar $map = __webpack_require__(/*! ../internals/array-iteration */ \"./node_modules/core-js/internals/array-iteration.js\").map;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(/*! ../internals/array-method-has-species-support */ \"./node_modules/core-js/internals/array-method-has-species-support.js\");\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.array.slice.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/modules/es.array.slice.js ***!\n \\********************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar isArray = __webpack_require__(/*! ../internals/is-array */ \"./node_modules/core-js/internals/is-array.js\");\nvar toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ \"./node_modules/core-js/internals/to-absolute-index.js\");\nvar toLength = __webpack_require__(/*! ../internals/to-length */ \"./node_modules/core-js/internals/to-length.js\");\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar createProperty = __webpack_require__(/*! ../internals/create-property */ \"./node_modules/core-js/internals/create-property.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\nvar arrayMethodHasSpeciesSupport = __webpack_require__(/*! ../internals/array-method-has-species-support */ \"./node_modules/core-js/internals/array-method-has-species-support.js\");\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.function.name.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/modules/es.function.name.js ***!\n \\**********************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar defineProperty = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\").f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.number.constructor.js\":\n/*!***************************************************************!*\\\n !*** ./node_modules/core-js/modules/es.number.constructor.js ***!\n \\***************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar isForced = __webpack_require__(/*! ../internals/is-forced */ \"./node_modules/core-js/internals/is-forced.js\");\nvar redefine = __webpack_require__(/*! ../internals/redefine */ \"./node_modules/core-js/internals/redefine.js\");\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar classof = __webpack_require__(/*! ../internals/classof-raw */ \"./node_modules/core-js/internals/classof-raw.js\");\nvar inheritIfRequired = __webpack_require__(/*! ../internals/inherit-if-required */ \"./node_modules/core-js/internals/inherit-if-required.js\");\nvar isSymbol = __webpack_require__(/*! ../internals/is-symbol */ \"./node_modules/core-js/internals/is-symbol.js\");\nvar toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ \"./node_modules/core-js/internals/to-primitive.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar create = __webpack_require__(/*! ../internals/object-create */ \"./node_modules/core-js/internals/object-create.js\");\nvar getOwnPropertyNames = __webpack_require__(/*! ../internals/object-get-own-property-names */ \"./node_modules/core-js/internals/object-get-own-property-names.js\").f;\nvar getOwnPropertyDescriptor = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ \"./node_modules/core-js/internals/object-get-own-property-descriptor.js\").f;\nvar defineProperty = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\").f;\nvar trim = __webpack_require__(/*! ../internals/string-trim */ \"./node_modules/core-js/internals/string-trim.js\").trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a number');\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.object.assign.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/modules/es.object.assign.js ***!\n \\**********************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar assign = __webpack_require__(/*! ../internals/object-assign */ \"./node_modules/core-js/internals/object-assign.js\");\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.object.keys.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/modules/es.object.keys.js ***!\n \\********************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\nvar nativeKeys = __webpack_require__(/*! ../internals/object-keys */ \"./node_modules/core-js/internals/object-keys.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.object.to-string.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/modules/es.object.to-string.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ \"./node_modules/core-js/internals/to-string-tag-support.js\");\nvar redefine = __webpack_require__(/*! ../internals/redefine */ \"./node_modules/core-js/internals/redefine.js\");\nvar toString = __webpack_require__(/*! ../internals/object-to-string */ \"./node_modules/core-js/internals/object-to-string.js\");\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.regexp.to-string.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/modules/es.regexp.to-string.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar redefine = __webpack_require__(/*! ../internals/redefine */ \"./node_modules/core-js/internals/redefine.js\");\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar $toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar flags = __webpack_require__(/*! ../internals/regexp-flags */ \"./node_modules/core-js/internals/regexp-flags.js\");\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.string.iterator.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/core-js/modules/es.string.iterator.js ***!\n \\************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(/*! ../internals/string-multibyte */ \"./node_modules/core-js/internals/string-multibyte.js\").charAt;\nvar toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\nvar InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ \"./node_modules/core-js/internals/internal-state.js\");\nvar defineIterator = __webpack_require__(/*! ../internals/define-iterator */ \"./node_modules/core-js/internals/define-iterator.js\");\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.string.link.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/modules/es.string.link.js ***!\n \\********************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar createHTML = __webpack_require__(/*! ../internals/create-html */ \"./node_modules/core-js/internals/create-html.js\");\nvar forcedStringHTMLMethod = __webpack_require__(/*! ../internals/string-html-forced */ \"./node_modules/core-js/internals/string-html-forced.js\");\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.symbol.description.js\":\n/*!***************************************************************!*\\\n !*** ./node_modules/core-js/modules/es.symbol.description.js ***!\n \\***************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar defineProperty = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\").f;\nvar copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ \"./node_modules/core-js/internals/copy-constructor-properties.js\");\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.symbol.iterator.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/core-js/modules/es.symbol.iterator.js ***!\n \\************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar defineWellKnownSymbol = __webpack_require__(/*! ../internals/define-well-known-symbol */ \"./node_modules/core-js/internals/define-well-known-symbol.js\");\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.symbol.js\":\n/*!***************************************************!*\\\n !*** ./node_modules/core-js/modules/es.symbol.js ***!\n \\***************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ \"./node_modules/core-js/internals/get-built-in.js\");\nvar IS_PURE = __webpack_require__(/*! ../internals/is-pure */ \"./node_modules/core-js/internals/is-pure.js\");\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ \"./node_modules/core-js/internals/native-symbol.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar isArray = __webpack_require__(/*! ../internals/is-array */ \"./node_modules/core-js/internals/is-array.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar isSymbol = __webpack_require__(/*! ../internals/is-symbol */ \"./node_modules/core-js/internals/is-symbol.js\");\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ \"./node_modules/core-js/internals/to-property-key.js\");\nvar $toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\nvar createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ \"./node_modules/core-js/internals/create-property-descriptor.js\");\nvar nativeObjectCreate = __webpack_require__(/*! ../internals/object-create */ \"./node_modules/core-js/internals/object-create.js\");\nvar objectKeys = __webpack_require__(/*! ../internals/object-keys */ \"./node_modules/core-js/internals/object-keys.js\");\nvar getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ \"./node_modules/core-js/internals/object-get-own-property-names.js\");\nvar getOwnPropertyNamesExternal = __webpack_require__(/*! ../internals/object-get-own-property-names-external */ \"./node_modules/core-js/internals/object-get-own-property-names-external.js\");\nvar getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ \"./node_modules/core-js/internals/object-get-own-property-symbols.js\");\nvar getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ \"./node_modules/core-js/internals/object-get-own-property-descriptor.js\");\nvar definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\nvar propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ \"./node_modules/core-js/internals/object-property-is-enumerable.js\");\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar redefine = __webpack_require__(/*! ../internals/redefine */ \"./node_modules/core-js/internals/redefine.js\");\nvar shared = __webpack_require__(/*! ../internals/shared */ \"./node_modules/core-js/internals/shared.js\");\nvar sharedKey = __webpack_require__(/*! ../internals/shared-key */ \"./node_modules/core-js/internals/shared-key.js\");\nvar hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ \"./node_modules/core-js/internals/hidden-keys.js\");\nvar uid = __webpack_require__(/*! ../internals/uid */ \"./node_modules/core-js/internals/uid.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\nvar wrappedWellKnownSymbolModule = __webpack_require__(/*! ../internals/well-known-symbol-wrapped */ \"./node_modules/core-js/internals/well-known-symbol-wrapped.js\");\nvar defineWellKnownSymbol = __webpack_require__(/*! ../internals/define-well-known-symbol */ \"./node_modules/core-js/internals/define-well-known-symbol.js\");\nvar setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ \"./node_modules/core-js/internals/set-to-string-tag.js\");\nvar InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ \"./node_modules/core-js/internals/internal-state.js\");\nvar $forEach = __webpack_require__(/*! ../internals/array-iteration */ \"./node_modules/core-js/internals/array-iteration.js\").forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = $toString(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\":\n/*!**********************************************************************!*\\\n !*** ./node_modules/core-js/modules/web.dom-collections.for-each.js ***!\n \\**********************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ \"./node_modules/core-js/internals/dom-iterables.js\");\nvar forEach = __webpack_require__(/*! ../internals/array-for-each */ \"./node_modules/core-js/internals/array-for-each.js\");\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/web.dom-collections.iterator.js\":\n/*!**********************************************************************!*\\\n !*** ./node_modules/core-js/modules/web.dom-collections.iterator.js ***!\n \\**********************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ \"./node_modules/core-js/internals/dom-iterables.js\");\nvar ArrayIteratorMethods = __webpack_require__(/*! ../modules/es.array.iterator */ \"./node_modules/core-js/modules/es.array.iterator.js\");\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/es6-promise/dist/es6-promise.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/es6-promise/dist/es6-promise.js ***!\n \\******************************************************/\n/***/ (function(module) {\n\n/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\t true ? module.exports = factory() :\n\t0;\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && \"function\" === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n\n\n/***/ }),\n\n/***/ \"html2canvas\":\n/*!******************************!*\\\n !*** external \"html2canvas\" ***!\n \\******************************/\n/***/ (function(module) {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_html2canvas__;\n\n/***/ }),\n\n/***/ \"jspdf\":\n/*!************************!*\\\n !*** external \"jspdf\" ***!\n \\************************/\n/***/ (function(module) {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jspdf__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t!function() {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = function(exports) {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n!function() {\n\"use strict\";\n/*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _worker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./worker.js */ \"./src/worker.js\");\n/* harmony import */ var _plugin_jspdf_plugin_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./plugin/jspdf-plugin.js */ \"./src/plugin/jspdf-plugin.js\");\n/* harmony import */ var _plugin_pagebreaks_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./plugin/pagebreaks.js */ \"./src/plugin/pagebreaks.js\");\n/* harmony import */ var _plugin_hyperlinks_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./plugin/hyperlinks.js */ \"./src/plugin/hyperlinks.js\");\n\n\n\n\n/**\n * Generate a PDF from an HTML element or string using html2canvas and jsPDF.\n *\n * @param {Element|string} source The source element or HTML string.\n * @param {Object=} opt An object of optional settings: 'margin', 'filename',\n * 'image' ('type' and 'quality'), and 'html2canvas' / 'jspdf', which are\n * sent as settings to their corresponding functions.\n */\n\nvar html2pdf = function html2pdf(src, opt) {\n // Create a new worker with the given options.\n var worker = new html2pdf.Worker(opt);\n\n if (src) {\n // If src is specified, perform the traditional 'simple' operation.\n return worker.from(src).save();\n } else {\n // Otherwise, return the worker for new Promise-based operation.\n return worker;\n }\n};\n\nhtml2pdf.Worker = _worker_js__WEBPACK_IMPORTED_MODULE_0__.default; // Expose the html2pdf function.\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (html2pdf);\n}();\n__webpack_exports__ = __webpack_exports__.default;\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.slice(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\n","'use strict';\n\nvar _TagManager = require('./TagManager');\n\nvar _TagManager2 = _interopRequireDefault(_TagManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = _TagManager2.default;","/*!\n * \n * jsPDF AutoTable plugin v3.8.4\n *\n * Copyright (c) 2024 Simon Bengtsson, https://github.com/simonbengtsson/jsPDF-AutoTable\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n *\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory((function webpackLoadOptionalExternalModule() { try { return require(\"jspdf\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"jspdf\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory((function webpackLoadOptionalExternalModule() { try { return require(\"jspdf\"); } catch(e) {} }())) : factory(root[\"jspdf\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(typeof globalThis !== 'undefined' ? globalThis : typeof this !== 'undefined' ? this : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : global , function(__WEBPACK_EXTERNAL_MODULE__964__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 172:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CellHookData = exports.HookData = void 0;\nvar HookData = /** @class */ (function () {\n function HookData(doc, table, cursor) {\n this.table = table;\n this.pageNumber = table.pageNumber;\n this.pageCount = this.pageNumber;\n this.settings = table.settings;\n this.cursor = cursor;\n this.doc = doc.getDocument();\n }\n return HookData;\n}());\nexports.HookData = HookData;\nvar CellHookData = /** @class */ (function (_super) {\n __extends(CellHookData, _super);\n function CellHookData(doc, table, cell, row, column, cursor) {\n var _this = _super.call(this, doc, table, cursor) || this;\n _this.cell = cell;\n _this.row = row;\n _this.column = column;\n _this.section = row.section;\n return _this;\n }\n return CellHookData;\n}(HookData));\nexports.CellHookData = CellHookData;\n\n\n/***/ }),\n\n/***/ 340:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar htmlParser_1 = __webpack_require__(4);\nvar autoTableText_1 = __webpack_require__(136);\nvar documentHandler_1 = __webpack_require__(744);\nvar inputParser_1 = __webpack_require__(776);\nvar tableDrawer_1 = __webpack_require__(664);\nvar tableCalculator_1 = __webpack_require__(972);\nfunction default_1(jsPDF) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n jsPDF.API.autoTable = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var options;\n if (args.length === 1) {\n options = args[0];\n }\n else {\n console.error('Use of deprecated autoTable initiation');\n options = args[2] || {};\n options.columns = args[0];\n options.body = args[1];\n }\n var input = (0, inputParser_1.parseInput)(this, options);\n var table = (0, tableCalculator_1.createTable)(this, input);\n (0, tableDrawer_1.drawTable)(this, table);\n return this;\n };\n // Assign false to enable `doc.lastAutoTable.finalY || 40` sugar\n jsPDF.API.lastAutoTable = false;\n jsPDF.API.previousAutoTable = false; // deprecated in v3\n jsPDF.API.autoTable.previous = false; // deprecated in v3\n jsPDF.API.autoTableText = function (text, x, y, styles) {\n (0, autoTableText_1.default)(text, x, y, styles, this);\n };\n jsPDF.API.autoTableSetDefaults = function (defaults) {\n documentHandler_1.DocHandler.setDefaults(defaults, this);\n return this;\n };\n jsPDF.autoTableSetDefaults = function (defaults, doc) {\n documentHandler_1.DocHandler.setDefaults(defaults, doc);\n };\n jsPDF.API.autoTableHtmlToJson = function (tableElem, includeHiddenElements) {\n var _a;\n if (includeHiddenElements === void 0) { includeHiddenElements = false; }\n if (typeof window === 'undefined') {\n console.error('Cannot run autoTableHtmlToJson in non browser environment');\n return null;\n }\n var doc = new documentHandler_1.DocHandler(this);\n var _b = (0, htmlParser_1.parseHtml)(doc, tableElem, window, includeHiddenElements, false), head = _b.head, body = _b.body;\n var columns = ((_a = head[0]) === null || _a === void 0 ? void 0 : _a.map(function (c) { return c.content; })) || [];\n return { columns: columns, rows: body, data: body };\n };\n /**\n * @deprecated\n */\n jsPDF.API.autoTableEndPosY = function () {\n console.error('Use of deprecated function: autoTableEndPosY. Use doc.lastAutoTable.finalY instead.');\n var prev = this.lastAutoTable;\n if (prev && prev.finalY) {\n return prev.finalY;\n }\n else {\n return 0;\n }\n };\n /**\n * @deprecated\n */\n jsPDF.API.autoTableAddPageContent = function (hook) {\n console.error('Use of deprecated function: autoTableAddPageContent. Use jsPDF.autoTableSetDefaults({didDrawPage: () => {}}) instead.');\n if (!jsPDF.API.autoTable.globalDefaults) {\n jsPDF.API.autoTable.globalDefaults = {};\n }\n jsPDF.API.autoTable.globalDefaults.addPageContent = hook;\n return this;\n };\n /**\n * @deprecated\n */\n jsPDF.API.autoTableAddPage = function () {\n console.error('Use of deprecated function: autoTableAddPage. Use doc.addPage()');\n this.addPage();\n return this;\n };\n}\nexports[\"default\"] = default_1;\n\n\n/***/ }),\n\n/***/ 136:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n/**\n * Improved text function with halign and valign support\n * Inspiration from: http://stackoverflow.com/questions/28327510/align-text-right-using-jspdf/28433113#28433113\n */\nfunction default_1(text, x, y, styles, doc) {\n styles = styles || {};\n var PHYSICAL_LINE_HEIGHT = 1.15;\n var k = doc.internal.scaleFactor;\n var fontSize = doc.internal.getFontSize() / k;\n var lineHeightFactor = doc.getLineHeightFactor\n ? doc.getLineHeightFactor()\n : PHYSICAL_LINE_HEIGHT;\n var lineHeight = fontSize * lineHeightFactor;\n var splitRegex = /\\r\\n|\\r|\\n/g;\n var splitText = '';\n var lineCount = 1;\n if (styles.valign === 'middle' ||\n styles.valign === 'bottom' ||\n styles.halign === 'center' ||\n styles.halign === 'right') {\n splitText = typeof text === 'string' ? text.split(splitRegex) : text;\n lineCount = splitText.length || 1;\n }\n // Align the top\n y += fontSize * (2 - PHYSICAL_LINE_HEIGHT);\n if (styles.valign === 'middle')\n y -= (lineCount / 2) * lineHeight;\n else if (styles.valign === 'bottom')\n y -= lineCount * lineHeight;\n if (styles.halign === 'center' || styles.halign === 'right') {\n var alignSize = fontSize;\n if (styles.halign === 'center')\n alignSize *= 0.5;\n if (splitText && lineCount >= 1) {\n for (var iLine = 0; iLine < splitText.length; iLine++) {\n doc.text(splitText[iLine], x - doc.getStringUnitWidth(splitText[iLine]) * alignSize, y);\n y += lineHeight;\n }\n return doc;\n }\n x -= doc.getStringUnitWidth(text) * alignSize;\n }\n if (styles.halign === 'justify') {\n doc.text(text, x, y, {\n maxWidth: styles.maxWidth || 100,\n align: 'justify',\n });\n }\n else {\n doc.text(text, x, y);\n }\n return doc;\n}\nexports[\"default\"] = default_1;\n\n\n/***/ }),\n\n/***/ 420:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getPageAvailableWidth = exports.parseSpacing = exports.getFillStyle = exports.addTableBorder = exports.getStringWidth = void 0;\nfunction getStringWidth(text, styles, doc) {\n doc.applyStyles(styles, true);\n var textArr = Array.isArray(text) ? text : [text];\n var widestLineWidth = textArr\n .map(function (text) { return doc.getTextWidth(text); })\n .reduce(function (a, b) { return Math.max(a, b); }, 0);\n return widestLineWidth;\n}\nexports.getStringWidth = getStringWidth;\nfunction addTableBorder(doc, table, startPos, cursor) {\n var lineWidth = table.settings.tableLineWidth;\n var lineColor = table.settings.tableLineColor;\n doc.applyStyles({ lineWidth: lineWidth, lineColor: lineColor });\n var fillStyle = getFillStyle(lineWidth, false);\n if (fillStyle) {\n doc.rect(startPos.x, startPos.y, table.getWidth(doc.pageSize().width), cursor.y - startPos.y, fillStyle);\n }\n}\nexports.addTableBorder = addTableBorder;\nfunction getFillStyle(lineWidth, fillColor) {\n var drawLine = lineWidth > 0;\n var drawBackground = fillColor || fillColor === 0;\n if (drawLine && drawBackground) {\n return 'DF'; // Fill then stroke\n }\n else if (drawLine) {\n return 'S'; // Only stroke (transparent background)\n }\n else if (drawBackground) {\n return 'F'; // Only fill, no stroke\n }\n else {\n return null;\n }\n}\nexports.getFillStyle = getFillStyle;\nfunction parseSpacing(value, defaultValue) {\n var _a, _b, _c, _d;\n value = value || defaultValue;\n if (Array.isArray(value)) {\n if (value.length >= 4) {\n return {\n top: value[0],\n right: value[1],\n bottom: value[2],\n left: value[3],\n };\n }\n else if (value.length === 3) {\n return {\n top: value[0],\n right: value[1],\n bottom: value[2],\n left: value[1],\n };\n }\n else if (value.length === 2) {\n return {\n top: value[0],\n right: value[1],\n bottom: value[0],\n left: value[1],\n };\n }\n else if (value.length === 1) {\n value = value[0];\n }\n else {\n value = defaultValue;\n }\n }\n if (typeof value === 'object') {\n if (typeof value.vertical === 'number') {\n value.top = value.vertical;\n value.bottom = value.vertical;\n }\n if (typeof value.horizontal === 'number') {\n value.right = value.horizontal;\n value.left = value.horizontal;\n }\n return {\n left: (_a = value.left) !== null && _a !== void 0 ? _a : defaultValue,\n top: (_b = value.top) !== null && _b !== void 0 ? _b : defaultValue,\n right: (_c = value.right) !== null && _c !== void 0 ? _c : defaultValue,\n bottom: (_d = value.bottom) !== null && _d !== void 0 ? _d : defaultValue,\n };\n }\n if (typeof value !== 'number') {\n value = defaultValue;\n }\n return { top: value, right: value, bottom: value, left: value };\n}\nexports.parseSpacing = parseSpacing;\nfunction getPageAvailableWidth(doc, table) {\n var margins = parseSpacing(table.settings.margin, 0);\n return doc.pageSize().width - (margins.left + margins.right);\n}\nexports.getPageAvailableWidth = getPageAvailableWidth;\n\n\n/***/ }),\n\n/***/ 796:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getTheme = exports.defaultStyles = exports.HtmlRowInput = void 0;\nvar HtmlRowInput = /** @class */ (function (_super) {\n __extends(HtmlRowInput, _super);\n function HtmlRowInput(element) {\n var _this = _super.call(this) || this;\n _this._element = element;\n return _this;\n }\n return HtmlRowInput;\n}(Array));\nexports.HtmlRowInput = HtmlRowInput;\n// Base style for all themes\nfunction defaultStyles(scaleFactor) {\n return {\n font: 'helvetica', // helvetica, times, courier\n fontStyle: 'normal', // normal, bold, italic, bolditalic\n overflow: 'linebreak', // linebreak, ellipsize, visible or hidden\n fillColor: false, // Either false for transparent, rbg array e.g. [255, 255, 255] or gray level e.g 200\n textColor: 20,\n halign: 'left', // left, center, right, justify\n valign: 'top', // top, middle, bottom\n fontSize: 10,\n cellPadding: 5 / scaleFactor, // number or {top,left,right,left,vertical,horizontal}\n lineColor: 200,\n lineWidth: 0,\n cellWidth: 'auto', // 'auto'|'wrap'|number\n minCellHeight: 0,\n minCellWidth: 0,\n };\n}\nexports.defaultStyles = defaultStyles;\nfunction getTheme(name) {\n var themes = {\n striped: {\n table: { fillColor: 255, textColor: 80, fontStyle: 'normal' },\n head: { textColor: 255, fillColor: [41, 128, 185], fontStyle: 'bold' },\n body: {},\n foot: { textColor: 255, fillColor: [41, 128, 185], fontStyle: 'bold' },\n alternateRow: { fillColor: 245 },\n },\n grid: {\n table: {\n fillColor: 255,\n textColor: 80,\n fontStyle: 'normal',\n lineWidth: 0.1,\n },\n head: {\n textColor: 255,\n fillColor: [26, 188, 156],\n fontStyle: 'bold',\n lineWidth: 0,\n },\n body: {},\n foot: {\n textColor: 255,\n fillColor: [26, 188, 156],\n fontStyle: 'bold',\n lineWidth: 0,\n },\n alternateRow: {},\n },\n plain: {\n head: { fontStyle: 'bold' },\n foot: { fontStyle: 'bold' },\n },\n };\n return themes[name];\n}\nexports.getTheme = getTheme;\n\n\n/***/ }),\n\n/***/ 903:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.parseCss = void 0;\n// Limitations\n// - No support for border spacing\n// - No support for transparency\nvar common_1 = __webpack_require__(420);\nfunction parseCss(supportedFonts, element, scaleFactor, style, window) {\n var result = {};\n var pxScaleFactor = 96 / 72;\n var backgroundColor = parseColor(element, function (elem) {\n return window.getComputedStyle(elem)['backgroundColor'];\n });\n if (backgroundColor != null)\n result.fillColor = backgroundColor;\n var textColor = parseColor(element, function (elem) {\n return window.getComputedStyle(elem)['color'];\n });\n if (textColor != null)\n result.textColor = textColor;\n var padding = parsePadding(style, scaleFactor);\n if (padding)\n result.cellPadding = padding;\n var borderColorSide = 'borderTopColor';\n var finalScaleFactor = pxScaleFactor * scaleFactor;\n var btw = style.borderTopWidth;\n if (style.borderBottomWidth === btw &&\n style.borderRightWidth === btw &&\n style.borderLeftWidth === btw) {\n var borderWidth = (parseFloat(btw) || 0) / finalScaleFactor;\n if (borderWidth)\n result.lineWidth = borderWidth;\n }\n else {\n result.lineWidth = {\n top: (parseFloat(style.borderTopWidth) || 0) / finalScaleFactor,\n right: (parseFloat(style.borderRightWidth) || 0) / finalScaleFactor,\n bottom: (parseFloat(style.borderBottomWidth) || 0) / finalScaleFactor,\n left: (parseFloat(style.borderLeftWidth) || 0) / finalScaleFactor,\n };\n // Choose border color of first available side\n // could be improved by supporting object as lineColor\n if (!result.lineWidth.top) {\n if (result.lineWidth.right) {\n borderColorSide = 'borderRightColor';\n }\n else if (result.lineWidth.bottom) {\n borderColorSide = 'borderBottomColor';\n }\n else if (result.lineWidth.left) {\n borderColorSide = 'borderLeftColor';\n }\n }\n }\n var borderColor = parseColor(element, function (elem) {\n return window.getComputedStyle(elem)[borderColorSide];\n });\n if (borderColor != null)\n result.lineColor = borderColor;\n var accepted = ['left', 'right', 'center', 'justify'];\n if (accepted.indexOf(style.textAlign) !== -1) {\n result.halign = style.textAlign;\n }\n accepted = ['middle', 'bottom', 'top'];\n if (accepted.indexOf(style.verticalAlign) !== -1) {\n result.valign = style.verticalAlign;\n }\n var res = parseInt(style.fontSize || '');\n if (!isNaN(res))\n result.fontSize = res / pxScaleFactor;\n var fontStyle = parseFontStyle(style);\n if (fontStyle)\n result.fontStyle = fontStyle;\n var font = (style.fontFamily || '').toLowerCase();\n if (supportedFonts.indexOf(font) !== -1) {\n result.font = font;\n }\n return result;\n}\nexports.parseCss = parseCss;\nfunction parseFontStyle(style) {\n var res = '';\n if (style.fontWeight === 'bold' ||\n style.fontWeight === 'bolder' ||\n parseInt(style.fontWeight) >= 700) {\n res = 'bold';\n }\n if (style.fontStyle === 'italic' || style.fontStyle === 'oblique') {\n res += 'italic';\n }\n return res;\n}\nfunction parseColor(element, styleGetter) {\n var cssColor = realColor(element, styleGetter);\n if (!cssColor)\n return null;\n var rgba = cssColor.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d*\\.?\\d*))?\\)$/);\n if (!rgba || !Array.isArray(rgba)) {\n return null;\n }\n var color = [\n parseInt(rgba[1]),\n parseInt(rgba[2]),\n parseInt(rgba[3]),\n ];\n var alpha = parseInt(rgba[4]);\n if (alpha === 0 || isNaN(color[0]) || isNaN(color[1]) || isNaN(color[2])) {\n return null;\n }\n return color;\n}\nfunction realColor(elem, styleGetter) {\n var bg = styleGetter(elem);\n if (bg === 'rgba(0, 0, 0, 0)' ||\n bg === 'transparent' ||\n bg === 'initial' ||\n bg === 'inherit') {\n if (elem.parentElement == null) {\n return null;\n }\n return realColor(elem.parentElement, styleGetter);\n }\n else {\n return bg;\n }\n}\nfunction parsePadding(style, scaleFactor) {\n var val = [\n style.paddingTop,\n style.paddingRight,\n style.paddingBottom,\n style.paddingLeft,\n ];\n var pxScaleFactor = 96 / (72 / scaleFactor);\n var linePadding = (parseInt(style.lineHeight) - parseInt(style.fontSize)) / scaleFactor / 2;\n var inputPadding = val.map(function (n) {\n return parseInt(n || '0') / pxScaleFactor;\n });\n var padding = (0, common_1.parseSpacing)(inputPadding, 0);\n if (linePadding > padding.top) {\n padding.top = linePadding;\n }\n if (linePadding > padding.bottom) {\n padding.bottom = linePadding;\n }\n return padding;\n}\n\n\n/***/ }),\n\n/***/ 744:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DocHandler = void 0;\nvar globalDefaults = {};\nvar DocHandler = /** @class */ (function () {\n function DocHandler(jsPDFDocument) {\n this.jsPDFDocument = jsPDFDocument;\n this.userStyles = {\n // Black for versions of jspdf without getTextColor\n textColor: jsPDFDocument.getTextColor\n ? this.jsPDFDocument.getTextColor()\n : 0,\n fontSize: jsPDFDocument.internal.getFontSize(),\n fontStyle: jsPDFDocument.internal.getFont().fontStyle,\n font: jsPDFDocument.internal.getFont().fontName,\n // 0 for versions of jspdf without getLineWidth\n lineWidth: jsPDFDocument.getLineWidth\n ? this.jsPDFDocument.getLineWidth()\n : 0,\n // Black for versions of jspdf without getDrawColor\n lineColor: jsPDFDocument.getDrawColor\n ? this.jsPDFDocument.getDrawColor()\n : 0,\n };\n }\n DocHandler.setDefaults = function (defaults, doc) {\n if (doc === void 0) { doc = null; }\n if (doc) {\n doc.__autoTableDocumentDefaults = defaults;\n }\n else {\n globalDefaults = defaults;\n }\n };\n DocHandler.unifyColor = function (c) {\n if (Array.isArray(c)) {\n return c;\n }\n else if (typeof c === 'number') {\n return [c, c, c];\n }\n else if (typeof c === 'string') {\n return [c];\n }\n else {\n return null;\n }\n };\n DocHandler.prototype.applyStyles = function (styles, fontOnly) {\n // Font style needs to be applied before font\n // https://github.com/simonbengtsson/jsPDF-AutoTable/issues/632\n var _a, _b, _c;\n if (fontOnly === void 0) { fontOnly = false; }\n if (styles.fontStyle)\n this.jsPDFDocument.setFontStyle &&\n this.jsPDFDocument.setFontStyle(styles.fontStyle);\n var _d = this.jsPDFDocument.internal.getFont(), fontStyle = _d.fontStyle, fontName = _d.fontName;\n if (styles.font)\n fontName = styles.font;\n if (styles.fontStyle) {\n fontStyle = styles.fontStyle;\n var availableFontStyles = this.getFontList()[fontName];\n if (availableFontStyles &&\n availableFontStyles.indexOf(fontStyle) === -1) {\n // Common issue was that the default bold in headers\n // made custom fonts not work. For example:\n // https://github.com/simonbengtsson/jsPDF-AutoTable/issues/653\n this.jsPDFDocument.setFontStyle &&\n this.jsPDFDocument.setFontStyle(availableFontStyles[0]);\n fontStyle = availableFontStyles[0];\n }\n }\n this.jsPDFDocument.setFont(fontName, fontStyle);\n if (styles.fontSize)\n this.jsPDFDocument.setFontSize(styles.fontSize);\n if (fontOnly) {\n return; // Performance improvement\n }\n var color = DocHandler.unifyColor(styles.fillColor);\n if (color)\n (_a = this.jsPDFDocument).setFillColor.apply(_a, color);\n color = DocHandler.unifyColor(styles.textColor);\n if (color)\n (_b = this.jsPDFDocument).setTextColor.apply(_b, color);\n color = DocHandler.unifyColor(styles.lineColor);\n if (color)\n (_c = this.jsPDFDocument).setDrawColor.apply(_c, color);\n if (typeof styles.lineWidth === 'number') {\n this.jsPDFDocument.setLineWidth(styles.lineWidth);\n }\n };\n DocHandler.prototype.splitTextToSize = function (text, size, opts) {\n return this.jsPDFDocument.splitTextToSize(text, size, opts);\n };\n /**\n * Adds a rectangle to the PDF\n * @param x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param width Width (in units declared at inception of PDF document)\n * @param height Height (in units declared at inception of PDF document)\n * @param fillStyle A string specifying the painting style or null. Valid styles include: 'S' [default] - stroke, 'F' - fill, and 'DF' (or 'FD') - fill then stroke.\n */\n DocHandler.prototype.rect = function (x, y, width, height, fillStyle) {\n // null is excluded from fillStyle possible values because it isn't needed\n // and is prone to bugs as it's used to postpone setting the style\n // https://rawgit.com/MrRio/jsPDF/master/docs/jsPDF.html#rect\n return this.jsPDFDocument.rect(x, y, width, height, fillStyle);\n };\n DocHandler.prototype.getLastAutoTable = function () {\n return this.jsPDFDocument.lastAutoTable || null;\n };\n DocHandler.prototype.getTextWidth = function (text) {\n return this.jsPDFDocument.getTextWidth(text);\n };\n DocHandler.prototype.getDocument = function () {\n return this.jsPDFDocument;\n };\n DocHandler.prototype.setPage = function (page) {\n this.jsPDFDocument.setPage(page);\n };\n DocHandler.prototype.addPage = function () {\n return this.jsPDFDocument.addPage();\n };\n DocHandler.prototype.getFontList = function () {\n return this.jsPDFDocument.getFontList();\n };\n DocHandler.prototype.getGlobalOptions = function () {\n return globalDefaults || {};\n };\n DocHandler.prototype.getDocumentOptions = function () {\n return this.jsPDFDocument.__autoTableDocumentDefaults || {};\n };\n DocHandler.prototype.pageSize = function () {\n var pageSize = this.jsPDFDocument.internal.pageSize;\n // JSPDF 1.4 uses get functions instead of properties on pageSize\n if (pageSize.width == null) {\n pageSize = {\n width: pageSize.getWidth(),\n height: pageSize.getHeight(),\n };\n }\n return pageSize;\n };\n DocHandler.prototype.scaleFactor = function () {\n return this.jsPDFDocument.internal.scaleFactor;\n };\n DocHandler.prototype.getLineHeightFactor = function () {\n var doc = this.jsPDFDocument;\n return doc.getLineHeightFactor ? doc.getLineHeightFactor() : 1.15;\n };\n DocHandler.prototype.getLineHeight = function (fontSize) {\n return (fontSize / this.scaleFactor()) * this.getLineHeightFactor();\n };\n DocHandler.prototype.pageNumber = function () {\n var pageInfo = this.jsPDFDocument.internal.getCurrentPageInfo();\n if (!pageInfo) {\n // Only recent versions of jspdf has pageInfo\n return this.jsPDFDocument.internal.getNumberOfPages();\n }\n return pageInfo.pageNumber;\n };\n return DocHandler;\n}());\nexports.DocHandler = DocHandler;\n\n\n/***/ }),\n\n/***/ 4:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.parseHtml = void 0;\nvar cssParser_1 = __webpack_require__(903);\nvar config_1 = __webpack_require__(796);\nfunction parseHtml(doc, input, window, includeHiddenHtml, useCss) {\n var _a, _b;\n if (includeHiddenHtml === void 0) { includeHiddenHtml = false; }\n if (useCss === void 0) { useCss = false; }\n var tableElement;\n if (typeof input === 'string') {\n tableElement = window.document.querySelector(input);\n }\n else {\n tableElement = input;\n }\n var supportedFonts = Object.keys(doc.getFontList());\n var scaleFactor = doc.scaleFactor();\n var head = [], body = [], foot = [];\n if (!tableElement) {\n console.error('Html table could not be found with input: ', input);\n return { head: head, body: body, foot: foot };\n }\n for (var i = 0; i < tableElement.rows.length; i++) {\n var element = tableElement.rows[i];\n var tagName = (_b = (_a = element === null || element === void 0 ? void 0 : element.parentElement) === null || _a === void 0 ? void 0 : _a.tagName) === null || _b === void 0 ? void 0 : _b.toLowerCase();\n var row = parseRowContent(supportedFonts, scaleFactor, window, element, includeHiddenHtml, useCss);\n if (!row)\n continue;\n if (tagName === 'thead') {\n head.push(row);\n }\n else if (tagName === 'tfoot') {\n foot.push(row);\n }\n else {\n // Add to body both if parent is tbody or table\n body.push(row);\n }\n }\n return { head: head, body: body, foot: foot };\n}\nexports.parseHtml = parseHtml;\nfunction parseRowContent(supportedFonts, scaleFactor, window, row, includeHidden, useCss) {\n var resultRow = new config_1.HtmlRowInput(row);\n for (var i = 0; i < row.cells.length; i++) {\n var cell = row.cells[i];\n var style_1 = window.getComputedStyle(cell);\n if (includeHidden || style_1.display !== 'none') {\n var cellStyles = void 0;\n if (useCss) {\n cellStyles = (0, cssParser_1.parseCss)(supportedFonts, cell, scaleFactor, style_1, window);\n }\n resultRow.push({\n rowSpan: cell.rowSpan,\n colSpan: cell.colSpan,\n styles: cellStyles,\n _element: cell,\n content: parseCellContent(cell),\n });\n }\n }\n var style = window.getComputedStyle(row);\n if (resultRow.length > 0 && (includeHidden || style.display !== 'none')) {\n return resultRow;\n }\n}\nfunction parseCellContent(orgCell) {\n // Work on cloned node to make sure no changes are applied to html table\n var cell = orgCell.cloneNode(true);\n // Remove extra space and line breaks in markup to make it more similar to\n // what would be shown in html\n cell.innerHTML = cell.innerHTML.replace(/\\n/g, '').replace(/ +/g, ' ');\n // Preserve
tags as line breaks in the pdf\n cell.innerHTML = cell.innerHTML\n .split(//) //start with ''.\n .map(function (part) { return part.trim(); })\n .join('\\n');\n // innerText for ie\n return cell.innerText || cell.textContent || '';\n}\n\n\n/***/ }),\n\n/***/ 776:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.parseInput = void 0;\nvar htmlParser_1 = __webpack_require__(4);\nvar polyfills_1 = __webpack_require__(356);\nvar common_1 = __webpack_require__(420);\nvar documentHandler_1 = __webpack_require__(744);\nvar inputValidator_1 = __webpack_require__(792);\nfunction parseInput(d, current) {\n var doc = new documentHandler_1.DocHandler(d);\n var document = doc.getDocumentOptions();\n var global = doc.getGlobalOptions();\n (0, inputValidator_1.default)(doc, global, document, current);\n var options = (0, polyfills_1.assign)({}, global, document, current);\n var win;\n if (typeof window !== 'undefined') {\n win = window;\n }\n var styles = parseStyles(global, document, current);\n var hooks = parseHooks(global, document, current);\n var settings = parseSettings(doc, options);\n var content = parseContent(doc, options, win);\n return {\n id: current.tableId,\n content: content,\n hooks: hooks,\n styles: styles,\n settings: settings,\n };\n}\nexports.parseInput = parseInput;\nfunction parseStyles(gInput, dInput, cInput) {\n var styleOptions = {\n styles: {},\n headStyles: {},\n bodyStyles: {},\n footStyles: {},\n alternateRowStyles: {},\n columnStyles: {},\n };\n var _loop_1 = function (prop) {\n if (prop === 'columnStyles') {\n var global_1 = gInput[prop];\n var document_1 = dInput[prop];\n var current = cInput[prop];\n styleOptions.columnStyles = (0, polyfills_1.assign)({}, global_1, document_1, current);\n }\n else {\n var allOptions = [gInput, dInput, cInput];\n var styles = allOptions.map(function (opts) { return opts[prop] || {}; });\n styleOptions[prop] = (0, polyfills_1.assign)({}, styles[0], styles[1], styles[2]);\n }\n };\n for (var _i = 0, _a = Object.keys(styleOptions); _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_1(prop);\n }\n return styleOptions;\n}\nfunction parseHooks(global, document, current) {\n var allOptions = [global, document, current];\n var result = {\n didParseCell: [],\n willDrawCell: [],\n didDrawCell: [],\n willDrawPage: [],\n didDrawPage: [],\n };\n for (var _i = 0, allOptions_1 = allOptions; _i < allOptions_1.length; _i++) {\n var options = allOptions_1[_i];\n if (options.didParseCell)\n result.didParseCell.push(options.didParseCell);\n if (options.willDrawCell)\n result.willDrawCell.push(options.willDrawCell);\n if (options.didDrawCell)\n result.didDrawCell.push(options.didDrawCell);\n if (options.willDrawPage)\n result.willDrawPage.push(options.willDrawPage);\n if (options.didDrawPage)\n result.didDrawPage.push(options.didDrawPage);\n }\n return result;\n}\nfunction parseSettings(doc, options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n var margin = (0, common_1.parseSpacing)(options.margin, 40 / doc.scaleFactor());\n var startY = (_a = getStartY(doc, options.startY)) !== null && _a !== void 0 ? _a : margin.top;\n var showFoot;\n if (options.showFoot === true) {\n showFoot = 'everyPage';\n }\n else if (options.showFoot === false) {\n showFoot = 'never';\n }\n else {\n showFoot = (_b = options.showFoot) !== null && _b !== void 0 ? _b : 'everyPage';\n }\n var showHead;\n if (options.showHead === true) {\n showHead = 'everyPage';\n }\n else if (options.showHead === false) {\n showHead = 'never';\n }\n else {\n showHead = (_c = options.showHead) !== null && _c !== void 0 ? _c : 'everyPage';\n }\n var useCss = (_d = options.useCss) !== null && _d !== void 0 ? _d : false;\n var theme = options.theme || (useCss ? 'plain' : 'striped');\n var horizontalPageBreak = !!options.horizontalPageBreak;\n var horizontalPageBreakRepeat = (_e = options.horizontalPageBreakRepeat) !== null && _e !== void 0 ? _e : null;\n return {\n includeHiddenHtml: (_f = options.includeHiddenHtml) !== null && _f !== void 0 ? _f : false,\n useCss: useCss,\n theme: theme,\n startY: startY,\n margin: margin,\n pageBreak: (_g = options.pageBreak) !== null && _g !== void 0 ? _g : 'auto',\n rowPageBreak: (_h = options.rowPageBreak) !== null && _h !== void 0 ? _h : 'auto',\n tableWidth: (_j = options.tableWidth) !== null && _j !== void 0 ? _j : 'auto',\n showHead: showHead,\n showFoot: showFoot,\n tableLineWidth: (_k = options.tableLineWidth) !== null && _k !== void 0 ? _k : 0,\n tableLineColor: (_l = options.tableLineColor) !== null && _l !== void 0 ? _l : 200,\n horizontalPageBreak: horizontalPageBreak,\n horizontalPageBreakRepeat: horizontalPageBreakRepeat,\n horizontalPageBreakBehaviour: (_m = options.horizontalPageBreakBehaviour) !== null && _m !== void 0 ? _m : 'afterAllRows',\n };\n}\nfunction getStartY(doc, userStartY) {\n var previous = doc.getLastAutoTable();\n var sf = doc.scaleFactor();\n var currentPage = doc.pageNumber();\n var isSamePageAsPreviousTable = false;\n if (previous && previous.startPageNumber) {\n var endingPage = previous.startPageNumber + previous.pageNumber - 1;\n isSamePageAsPreviousTable = endingPage === currentPage;\n }\n if (typeof userStartY === 'number') {\n return userStartY;\n }\n else if (userStartY == null || userStartY === false) {\n if (isSamePageAsPreviousTable && (previous === null || previous === void 0 ? void 0 : previous.finalY) != null) {\n // Some users had issues with overlapping tables when they used multiple\n // tables without setting startY so setting it here to a sensible default.\n return previous.finalY + 20 / sf;\n }\n }\n return null;\n}\nfunction parseContent(doc, options, window) {\n var head = options.head || [];\n var body = options.body || [];\n var foot = options.foot || [];\n if (options.html) {\n var hidden = options.includeHiddenHtml;\n if (window) {\n var htmlContent = (0, htmlParser_1.parseHtml)(doc, options.html, window, hidden, options.useCss) || {};\n head = htmlContent.head || head;\n body = htmlContent.body || head;\n foot = htmlContent.foot || head;\n }\n else {\n console.error('Cannot parse html in non browser environment');\n }\n }\n var columns = options.columns || parseColumns(head, body, foot);\n return {\n columns: columns,\n head: head,\n body: body,\n foot: foot,\n };\n}\nfunction parseColumns(head, body, foot) {\n var firstRow = head[0] || body[0] || foot[0] || [];\n var result = [];\n Object.keys(firstRow)\n .filter(function (key) { return key !== '_element'; })\n .forEach(function (key) {\n var colSpan = 1;\n var input;\n if (Array.isArray(firstRow)) {\n input = firstRow[parseInt(key)];\n }\n else {\n input = firstRow[key];\n }\n if (typeof input === 'object' && !Array.isArray(input)) {\n colSpan = (input === null || input === void 0 ? void 0 : input.colSpan) || 1;\n }\n for (var i = 0; i < colSpan; i++) {\n var id = void 0;\n if (Array.isArray(firstRow)) {\n id = result.length;\n }\n else {\n id = key + (i > 0 ? \"_\".concat(i) : '');\n }\n var rowResult = { dataKey: id };\n result.push(rowResult);\n }\n });\n return result;\n}\n\n\n/***/ }),\n\n/***/ 792:\n/***/ (function(__unused_webpack_module, exports) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nfunction default_1(doc, global, document, current) {\n var _loop_1 = function (options) {\n if (options && typeof options !== 'object') {\n console.error('The options parameter should be of type object, is: ' + typeof options);\n }\n if (typeof options.extendWidth !== 'undefined') {\n options.tableWidth = options.extendWidth ? 'auto' : 'wrap';\n console.error('Use of deprecated option: extendWidth, use tableWidth instead.');\n }\n if (typeof options.margins !== 'undefined') {\n if (typeof options.margin === 'undefined')\n options.margin = options.margins;\n console.error('Use of deprecated option: margins, use margin instead.');\n }\n if (options.startY && typeof options.startY !== 'number') {\n console.error('Invalid value for startY option', options.startY);\n delete options.startY;\n }\n if (!options.didDrawPage &&\n (options.afterPageContent ||\n options.beforePageContent ||\n options.afterPageAdd)) {\n console.error('The afterPageContent, beforePageContent and afterPageAdd hooks are deprecated. Use didDrawPage instead');\n options.didDrawPage = function (data) {\n doc.applyStyles(doc.userStyles);\n if (options.beforePageContent)\n options.beforePageContent(data);\n doc.applyStyles(doc.userStyles);\n if (options.afterPageContent)\n options.afterPageContent(data);\n doc.applyStyles(doc.userStyles);\n if (options.afterPageAdd && data.pageNumber > 1) {\n ;\n data.afterPageAdd(data);\n }\n doc.applyStyles(doc.userStyles);\n };\n }\n ;\n [\n 'createdHeaderCell',\n 'drawHeaderRow',\n 'drawRow',\n 'drawHeaderCell',\n ].forEach(function (name) {\n if (options[name]) {\n console.error(\"The \\\"\".concat(name, \"\\\" hook has changed in version 3.0, check the changelog for how to migrate.\"));\n }\n });\n [\n ['showFoot', 'showFooter'],\n ['showHead', 'showHeader'],\n ['didDrawPage', 'addPageContent'],\n ['didParseCell', 'createdCell'],\n ['headStyles', 'headerStyles'],\n ].forEach(function (_a) {\n var current = _a[0], deprecated = _a[1];\n if (options[deprecated]) {\n console.error(\"Use of deprecated option \".concat(deprecated, \". Use \").concat(current, \" instead\"));\n options[current] = options[deprecated];\n }\n });\n [\n ['padding', 'cellPadding'],\n ['lineHeight', 'rowHeight'],\n 'fontSize',\n 'overflow',\n ].forEach(function (o) {\n var deprecatedOption = typeof o === 'string' ? o : o[0];\n var style = typeof o === 'string' ? o : o[1];\n if (typeof options[deprecatedOption] !== 'undefined') {\n if (typeof options.styles[style] === 'undefined') {\n options.styles[style] = options[deprecatedOption];\n }\n console.error('Use of deprecated option: ' +\n deprecatedOption +\n ', use the style ' +\n style +\n ' instead.');\n }\n });\n for (var _b = 0, _c = [\n 'styles',\n 'bodyStyles',\n 'headStyles',\n 'footStyles',\n ]; _b < _c.length; _b++) {\n var styleProp = _c[_b];\n checkStyles(options[styleProp] || {});\n }\n var columnStyles = options['columnStyles'] || {};\n for (var _d = 0, _e = Object.keys(columnStyles); _d < _e.length; _d++) {\n var key = _e[_d];\n checkStyles(columnStyles[key] || {});\n }\n };\n for (var _i = 0, _a = [global, document, current]; _i < _a.length; _i++) {\n var options = _a[_i];\n _loop_1(options);\n }\n}\nexports[\"default\"] = default_1;\nfunction checkStyles(styles) {\n if (styles.rowHeight) {\n console.error('Use of deprecated style rowHeight. It is renamed to minCellHeight.');\n if (!styles.minCellHeight) {\n styles.minCellHeight = styles.rowHeight;\n }\n }\n else if (styles.columnWidth) {\n console.error('Use of deprecated style columnWidth. It is renamed to cellWidth.');\n if (!styles.cellWidth) {\n styles.cellWidth = styles.columnWidth;\n }\n }\n}\n\n\n/***/ }),\n\n/***/ 260:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Column = exports.Cell = exports.Row = exports.Table = void 0;\nvar config_1 = __webpack_require__(796);\nvar HookData_1 = __webpack_require__(172);\nvar common_1 = __webpack_require__(420);\nvar Table = /** @class */ (function () {\n function Table(input, content) {\n this.pageNumber = 1;\n // Deprecated, use pageNumber instead\n // Not using getter since:\n // https://github.com/simonbengtsson/jsPDF-AutoTable/issues/596\n this.pageCount = 1;\n this.id = input.id;\n this.settings = input.settings;\n this.styles = input.styles;\n this.hooks = input.hooks;\n this.columns = content.columns;\n this.head = content.head;\n this.body = content.body;\n this.foot = content.foot;\n }\n Table.prototype.getHeadHeight = function (columns) {\n return this.head.reduce(function (acc, row) { return acc + row.getMaxCellHeight(columns); }, 0);\n };\n Table.prototype.getFootHeight = function (columns) {\n return this.foot.reduce(function (acc, row) { return acc + row.getMaxCellHeight(columns); }, 0);\n };\n Table.prototype.allRows = function () {\n return this.head.concat(this.body).concat(this.foot);\n };\n Table.prototype.callCellHooks = function (doc, handlers, cell, row, column, cursor) {\n for (var _i = 0, handlers_1 = handlers; _i < handlers_1.length; _i++) {\n var handler = handlers_1[_i];\n var data = new HookData_1.CellHookData(doc, this, cell, row, column, cursor);\n var result = handler(data) === false;\n // Make sure text is always string[] since user can assign string\n cell.text = Array.isArray(cell.text) ? cell.text : [cell.text];\n if (result) {\n return false;\n }\n }\n return true;\n };\n Table.prototype.callEndPageHooks = function (doc, cursor) {\n doc.applyStyles(doc.userStyles);\n for (var _i = 0, _a = this.hooks.didDrawPage; _i < _a.length; _i++) {\n var handler = _a[_i];\n handler(new HookData_1.HookData(doc, this, cursor));\n }\n };\n Table.prototype.callWillDrawPageHooks = function (doc, cursor) {\n for (var _i = 0, _a = this.hooks.willDrawPage; _i < _a.length; _i++) {\n var handler = _a[_i];\n handler(new HookData_1.HookData(doc, this, cursor));\n }\n };\n Table.prototype.getWidth = function (pageWidth) {\n if (typeof this.settings.tableWidth === 'number') {\n return this.settings.tableWidth;\n }\n else if (this.settings.tableWidth === 'wrap') {\n var wrappedWidth = this.columns.reduce(function (total, col) { return total + col.wrappedWidth; }, 0);\n return wrappedWidth;\n }\n else {\n var margin = this.settings.margin;\n return pageWidth - margin.left - margin.right;\n }\n };\n return Table;\n}());\nexports.Table = Table;\nvar Row = /** @class */ (function () {\n function Row(raw, index, section, cells, spansMultiplePages) {\n if (spansMultiplePages === void 0) { spansMultiplePages = false; }\n this.height = 0;\n this.raw = raw;\n if (raw instanceof config_1.HtmlRowInput) {\n this.raw = raw._element;\n this.element = raw._element;\n }\n this.index = index;\n this.section = section;\n this.cells = cells;\n this.spansMultiplePages = spansMultiplePages;\n }\n Row.prototype.getMaxCellHeight = function (columns) {\n var _this = this;\n return columns.reduce(function (acc, column) { var _a; return Math.max(acc, ((_a = _this.cells[column.index]) === null || _a === void 0 ? void 0 : _a.height) || 0); }, 0);\n };\n Row.prototype.hasRowSpan = function (columns) {\n var _this = this;\n return (columns.filter(function (column) {\n var cell = _this.cells[column.index];\n if (!cell)\n return false;\n return cell.rowSpan > 1;\n }).length > 0);\n };\n Row.prototype.canEntireRowFit = function (height, columns) {\n return this.getMaxCellHeight(columns) <= height;\n };\n Row.prototype.getMinimumRowHeight = function (columns, doc) {\n var _this = this;\n return columns.reduce(function (acc, column) {\n var cell = _this.cells[column.index];\n if (!cell)\n return 0;\n var lineHeight = doc.getLineHeight(cell.styles.fontSize);\n var vPadding = cell.padding('vertical');\n var oneRowHeight = vPadding + lineHeight;\n return oneRowHeight > acc ? oneRowHeight : acc;\n }, 0);\n };\n return Row;\n}());\nexports.Row = Row;\nvar Cell = /** @class */ (function () {\n function Cell(raw, styles, section) {\n var _a, _b;\n this.contentHeight = 0;\n this.contentWidth = 0;\n this.wrappedWidth = 0;\n this.minReadableWidth = 0;\n this.minWidth = 0;\n this.width = 0;\n this.height = 0;\n this.x = 0;\n this.y = 0;\n this.styles = styles;\n this.section = section;\n this.raw = raw;\n var content = raw;\n if (raw != null && typeof raw === 'object' && !Array.isArray(raw)) {\n this.rowSpan = raw.rowSpan || 1;\n this.colSpan = raw.colSpan || 1;\n content = (_b = (_a = raw.content) !== null && _a !== void 0 ? _a : raw.title) !== null && _b !== void 0 ? _b : raw;\n if (raw._element) {\n this.raw = raw._element;\n }\n }\n else {\n this.rowSpan = 1;\n this.colSpan = 1;\n }\n // Stringify 0 and false, but not undefined or null\n var text = content != null ? '' + content : '';\n var splitRegex = /\\r\\n|\\r|\\n/g;\n this.text = text.split(splitRegex);\n }\n Cell.prototype.getTextPos = function () {\n var y;\n if (this.styles.valign === 'top') {\n y = this.y + this.padding('top');\n }\n else if (this.styles.valign === 'bottom') {\n y = this.y + this.height - this.padding('bottom');\n }\n else {\n var netHeight = this.height - this.padding('vertical');\n y = this.y + netHeight / 2 + this.padding('top');\n }\n var x;\n if (this.styles.halign === 'right') {\n x = this.x + this.width - this.padding('right');\n }\n else if (this.styles.halign === 'center') {\n var netWidth = this.width - this.padding('horizontal');\n x = this.x + netWidth / 2 + this.padding('left');\n }\n else {\n x = this.x + this.padding('left');\n }\n return { x: x, y: y };\n };\n // TODO (v4): replace parameters with only (lineHeight)\n Cell.prototype.getContentHeight = function (scaleFactor, lineHeightFactor) {\n if (lineHeightFactor === void 0) { lineHeightFactor = 1.15; }\n var lineCount = Array.isArray(this.text) ? this.text.length : 1;\n var lineHeight = (this.styles.fontSize / scaleFactor) * lineHeightFactor;\n var height = lineCount * lineHeight + this.padding('vertical');\n return Math.max(height, this.styles.minCellHeight);\n };\n Cell.prototype.padding = function (name) {\n var padding = (0, common_1.parseSpacing)(this.styles.cellPadding, 0);\n if (name === 'vertical') {\n return padding.top + padding.bottom;\n }\n else if (name === 'horizontal') {\n return padding.left + padding.right;\n }\n else {\n return padding[name];\n }\n };\n return Cell;\n}());\nexports.Cell = Cell;\nvar Column = /** @class */ (function () {\n function Column(dataKey, raw, index) {\n this.wrappedWidth = 0;\n this.minReadableWidth = 0;\n this.minWidth = 0;\n this.width = 0;\n this.dataKey = dataKey;\n this.raw = raw;\n this.index = index;\n }\n Column.prototype.getMaxCustomCellWidth = function (table) {\n var max = 0;\n for (var _i = 0, _a = table.allRows(); _i < _a.length; _i++) {\n var row = _a[_i];\n var cell = row.cells[this.index];\n if (cell && typeof cell.styles.cellWidth === 'number') {\n max = Math.max(max, cell.styles.cellWidth);\n }\n }\n return max;\n };\n return Column;\n}());\nexports.Column = Column;\n\n\n/***/ }),\n\n/***/ 356:\n/***/ (function(__unused_webpack_module, exports) {\n\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.assign = void 0;\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\nfunction assign(target, s, s1, s2, s3) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var to = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n // eslint-disable-next-line prefer-rest-params\n var nextSource = arguments[index];\n if (nextSource != null) {\n // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n}\nexports.assign = assign;\n\n\n/***/ }),\n\n/***/ 972:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.createTable = void 0;\nvar documentHandler_1 = __webpack_require__(744);\nvar models_1 = __webpack_require__(260);\nvar widthCalculator_1 = __webpack_require__(324);\nvar config_1 = __webpack_require__(796);\nvar polyfills_1 = __webpack_require__(356);\nfunction createTable(jsPDFDoc, input) {\n var doc = new documentHandler_1.DocHandler(jsPDFDoc);\n var content = parseContent(input, doc.scaleFactor());\n var table = new models_1.Table(input, content);\n (0, widthCalculator_1.calculateWidths)(doc, table);\n doc.applyStyles(doc.userStyles);\n return table;\n}\nexports.createTable = createTable;\nfunction parseContent(input, sf) {\n var content = input.content;\n var columns = createColumns(content.columns);\n // If no head or foot is set, try generating it with content from columns\n if (content.head.length === 0) {\n var sectionRow = generateSectionRow(columns, 'head');\n if (sectionRow)\n content.head.push(sectionRow);\n }\n if (content.foot.length === 0) {\n var sectionRow = generateSectionRow(columns, 'foot');\n if (sectionRow)\n content.foot.push(sectionRow);\n }\n var theme = input.settings.theme;\n var styles = input.styles;\n return {\n columns: columns,\n head: parseSection('head', content.head, columns, styles, theme, sf),\n body: parseSection('body', content.body, columns, styles, theme, sf),\n foot: parseSection('foot', content.foot, columns, styles, theme, sf),\n };\n}\nfunction parseSection(sectionName, sectionRows, columns, styleProps, theme, scaleFactor) {\n var rowSpansLeftForColumn = {};\n var result = sectionRows.map(function (rawRow, rowIndex) {\n var skippedRowForRowSpans = 0;\n var cells = {};\n var colSpansAdded = 0;\n var columnSpansLeft = 0;\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\n var column = columns_1[_i];\n if (rowSpansLeftForColumn[column.index] == null ||\n rowSpansLeftForColumn[column.index].left === 0) {\n if (columnSpansLeft === 0) {\n var rawCell = void 0;\n if (Array.isArray(rawRow)) {\n rawCell =\n rawRow[column.index - colSpansAdded - skippedRowForRowSpans];\n }\n else {\n rawCell = rawRow[column.dataKey];\n }\n var cellInputStyles = {};\n if (typeof rawCell === 'object' && !Array.isArray(rawCell)) {\n cellInputStyles = (rawCell === null || rawCell === void 0 ? void 0 : rawCell.styles) || {};\n }\n var styles = cellStyles(sectionName, column, rowIndex, theme, styleProps, scaleFactor, cellInputStyles);\n var cell = new models_1.Cell(rawCell, styles, sectionName);\n // dataKey is not used internally no more but keep for\n // backwards compat in hooks\n cells[column.dataKey] = cell;\n cells[column.index] = cell;\n columnSpansLeft = cell.colSpan - 1;\n rowSpansLeftForColumn[column.index] = {\n left: cell.rowSpan - 1,\n times: columnSpansLeft,\n };\n }\n else {\n columnSpansLeft--;\n colSpansAdded++;\n }\n }\n else {\n rowSpansLeftForColumn[column.index].left--;\n columnSpansLeft = rowSpansLeftForColumn[column.index].times;\n skippedRowForRowSpans++;\n }\n }\n return new models_1.Row(rawRow, rowIndex, sectionName, cells);\n });\n return result;\n}\nfunction generateSectionRow(columns, section) {\n var sectionRow = {};\n columns.forEach(function (col) {\n if (col.raw != null) {\n var title = getSectionTitle(section, col.raw);\n if (title != null)\n sectionRow[col.dataKey] = title;\n }\n });\n return Object.keys(sectionRow).length > 0 ? sectionRow : null;\n}\nfunction getSectionTitle(section, column) {\n if (section === 'head') {\n if (typeof column === 'object') {\n return column.header || column.title || null;\n }\n else if (typeof column === 'string' || typeof column === 'number') {\n return column;\n }\n }\n else if (section === 'foot' && typeof column === 'object') {\n return column.footer;\n }\n return null;\n}\nfunction createColumns(columns) {\n return columns.map(function (input, index) {\n var _a, _b;\n var key;\n if (typeof input === 'object') {\n key = (_b = (_a = input.dataKey) !== null && _a !== void 0 ? _a : input.key) !== null && _b !== void 0 ? _b : index;\n }\n else {\n key = index;\n }\n return new models_1.Column(key, input, index);\n });\n}\nfunction cellStyles(sectionName, column, rowIndex, themeName, styles, scaleFactor, cellInputStyles) {\n var theme = (0, config_1.getTheme)(themeName);\n var sectionStyles;\n if (sectionName === 'head') {\n sectionStyles = styles.headStyles;\n }\n else if (sectionName === 'body') {\n sectionStyles = styles.bodyStyles;\n }\n else if (sectionName === 'foot') {\n sectionStyles = styles.footStyles;\n }\n var otherStyles = (0, polyfills_1.assign)({}, theme.table, theme[sectionName], styles.styles, sectionStyles);\n var columnStyles = styles.columnStyles[column.dataKey] ||\n styles.columnStyles[column.index] ||\n {};\n var colStyles = sectionName === 'body' ? columnStyles : {};\n var rowStyles = sectionName === 'body' && rowIndex % 2 === 0\n ? (0, polyfills_1.assign)({}, theme.alternateRow, styles.alternateRowStyles)\n : {};\n var defaultStyle = (0, config_1.defaultStyles)(scaleFactor);\n var themeStyles = (0, polyfills_1.assign)({}, defaultStyle, otherStyles, rowStyles, colStyles);\n return (0, polyfills_1.assign)(themeStyles, cellInputStyles);\n}\n\n\n/***/ }),\n\n/***/ 664:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.addPage = exports.drawTable = void 0;\nvar common_1 = __webpack_require__(420);\nvar models_1 = __webpack_require__(260);\nvar documentHandler_1 = __webpack_require__(744);\nvar polyfills_1 = __webpack_require__(356);\nvar autoTableText_1 = __webpack_require__(136);\nvar tablePrinter_1 = __webpack_require__(224);\nfunction drawTable(jsPDFDoc, table) {\n var settings = table.settings;\n var startY = settings.startY;\n var margin = settings.margin;\n var cursor = {\n x: margin.left,\n y: startY,\n };\n var sectionsHeight = table.getHeadHeight(table.columns) + table.getFootHeight(table.columns);\n var minTableBottomPos = startY + margin.bottom + sectionsHeight;\n if (settings.pageBreak === 'avoid') {\n var rows = table.body;\n var tableHeight = rows.reduce(function (acc, row) { return acc + row.height; }, 0);\n minTableBottomPos += tableHeight;\n }\n var doc = new documentHandler_1.DocHandler(jsPDFDoc);\n if (settings.pageBreak === 'always' ||\n (settings.startY != null && minTableBottomPos > doc.pageSize().height)) {\n nextPage(doc);\n cursor.y = margin.top;\n }\n table.callWillDrawPageHooks(doc, cursor);\n var startPos = (0, polyfills_1.assign)({}, cursor);\n table.startPageNumber = doc.pageNumber();\n if (settings.horizontalPageBreak) {\n // managed flow for split columns\n printTableWithHorizontalPageBreak(doc, table, startPos, cursor);\n }\n else {\n // normal flow\n doc.applyStyles(doc.userStyles);\n if (settings.showHead === 'firstPage' ||\n settings.showHead === 'everyPage') {\n table.head.forEach(function (row) {\n return printRow(doc, table, row, cursor, table.columns);\n });\n }\n doc.applyStyles(doc.userStyles);\n table.body.forEach(function (row, index) {\n var isLastRow = index === table.body.length - 1;\n printFullRow(doc, table, row, isLastRow, startPos, cursor, table.columns);\n });\n doc.applyStyles(doc.userStyles);\n if (settings.showFoot === 'lastPage' || settings.showFoot === 'everyPage') {\n table.foot.forEach(function (row) {\n return printRow(doc, table, row, cursor, table.columns);\n });\n }\n }\n (0, common_1.addTableBorder)(doc, table, startPos, cursor);\n table.callEndPageHooks(doc, cursor);\n table.finalY = cursor.y;\n jsPDFDoc.lastAutoTable = table;\n jsPDFDoc.previousAutoTable = table; // Deprecated\n if (jsPDFDoc.autoTable)\n jsPDFDoc.autoTable.previous = table; // Deprecated\n doc.applyStyles(doc.userStyles);\n}\nexports.drawTable = drawTable;\nfunction printTableWithHorizontalPageBreak(doc, table, startPos, cursor) {\n // calculate width of columns and render only those which can fit into page\n var allColumnsCanFitResult = (0, tablePrinter_1.calculateAllColumnsCanFitInPage)(doc, table);\n var settings = table.settings;\n if (settings.horizontalPageBreakBehaviour === 'afterAllRows') {\n allColumnsCanFitResult.forEach(function (colsAndIndexes, index) {\n doc.applyStyles(doc.userStyles);\n // add page to print next columns in new page\n if (index > 0) {\n // When adding a page here, make sure not to print the footers\n // because they were already printed before on this same loop\n addPage(doc, table, startPos, cursor, colsAndIndexes.columns, true);\n }\n else {\n // print head for selected columns\n printHead(doc, table, cursor, colsAndIndexes.columns);\n }\n // print body & footer for selected columns\n printBody(doc, table, startPos, cursor, colsAndIndexes.columns);\n printFoot(doc, table, cursor, colsAndIndexes.columns);\n });\n }\n else {\n var lastRowIndexOfLastPage_1 = -1;\n var firstColumnsToFitResult = allColumnsCanFitResult[0];\n var _loop_1 = function () {\n // Print the first columns, taking note of the last row printed\n var lastPrintedRowIndex = lastRowIndexOfLastPage_1;\n if (firstColumnsToFitResult) {\n doc.applyStyles(doc.userStyles);\n var firstColumnsToFit = firstColumnsToFitResult.columns;\n if (lastRowIndexOfLastPage_1 >= 0) {\n // When adding a page here, make sure not to print the footers\n // because they were already printed before on this same loop\n addPage(doc, table, startPos, cursor, firstColumnsToFit, true);\n }\n else {\n printHead(doc, table, cursor, firstColumnsToFit);\n }\n lastPrintedRowIndex = printBodyWithoutPageBreaks(doc, table, lastRowIndexOfLastPage_1 + 1, cursor, firstColumnsToFit);\n printFoot(doc, table, cursor, firstColumnsToFit);\n }\n // Check how many rows were printed, so that the next columns would not print more rows than that\n var maxNumberOfRows = lastPrintedRowIndex - lastRowIndexOfLastPage_1;\n // Print the next columns, never exceding maxNumberOfRows\n allColumnsCanFitResult.slice(1).forEach(function (colsAndIndexes) {\n doc.applyStyles(doc.userStyles);\n // When adding a page here, make sure not to print the footers\n // because they were already printed before on this same loop\n addPage(doc, table, startPos, cursor, colsAndIndexes.columns, true);\n printBodyWithoutPageBreaks(doc, table, lastRowIndexOfLastPage_1 + 1, cursor, colsAndIndexes.columns, maxNumberOfRows);\n printFoot(doc, table, cursor, colsAndIndexes.columns);\n });\n lastRowIndexOfLastPage_1 = lastPrintedRowIndex;\n };\n while (lastRowIndexOfLastPage_1 < table.body.length - 1) {\n _loop_1();\n }\n }\n}\nfunction printHead(doc, table, cursor, columns) {\n var settings = table.settings;\n doc.applyStyles(doc.userStyles);\n if (settings.showHead === 'firstPage' || settings.showHead === 'everyPage') {\n table.head.forEach(function (row) { return printRow(doc, table, row, cursor, columns); });\n }\n}\nfunction printBody(doc, table, startPos, cursor, columns) {\n doc.applyStyles(doc.userStyles);\n table.body.forEach(function (row, index) {\n var isLastRow = index === table.body.length - 1;\n printFullRow(doc, table, row, isLastRow, startPos, cursor, columns);\n });\n}\nfunction printBodyWithoutPageBreaks(doc, table, startRowIndex, cursor, columns, maxNumberOfRows) {\n doc.applyStyles(doc.userStyles);\n maxNumberOfRows = maxNumberOfRows !== null && maxNumberOfRows !== void 0 ? maxNumberOfRows : table.body.length;\n var endRowIndex = Math.min(startRowIndex + maxNumberOfRows, table.body.length);\n var lastPrintedRowIndex = -1;\n table.body.slice(startRowIndex, endRowIndex).forEach(function (row, index) {\n var isLastRow = startRowIndex + index === table.body.length - 1;\n var remainingSpace = getRemainingPageSpace(doc, table, isLastRow, cursor);\n if (row.canEntireRowFit(remainingSpace, columns)) {\n printRow(doc, table, row, cursor, columns);\n lastPrintedRowIndex = startRowIndex + index;\n }\n });\n return lastPrintedRowIndex;\n}\nfunction printFoot(doc, table, cursor, columns) {\n var settings = table.settings;\n doc.applyStyles(doc.userStyles);\n if (settings.showFoot === 'lastPage' || settings.showFoot === 'everyPage') {\n table.foot.forEach(function (row) { return printRow(doc, table, row, cursor, columns); });\n }\n}\nfunction getRemainingLineCount(cell, remainingPageSpace, doc) {\n var lineHeight = doc.getLineHeight(cell.styles.fontSize);\n var vPadding = cell.padding('vertical');\n var remainingLines = Math.floor((remainingPageSpace - vPadding) / lineHeight);\n return Math.max(0, remainingLines);\n}\nfunction modifyRowToFit(row, remainingPageSpace, table, doc) {\n var cells = {};\n row.spansMultiplePages = true;\n row.height = 0;\n var rowHeight = 0;\n for (var _i = 0, _a = table.columns; _i < _a.length; _i++) {\n var column = _a[_i];\n var cell = row.cells[column.index];\n if (!cell)\n continue;\n if (!Array.isArray(cell.text)) {\n cell.text = [cell.text];\n }\n var remainderCell = new models_1.Cell(cell.raw, cell.styles, cell.section);\n remainderCell = (0, polyfills_1.assign)(remainderCell, cell);\n remainderCell.text = [];\n var remainingLineCount = getRemainingLineCount(cell, remainingPageSpace, doc);\n if (cell.text.length > remainingLineCount) {\n remainderCell.text = cell.text.splice(remainingLineCount, cell.text.length);\n }\n var scaleFactor = doc.scaleFactor();\n var lineHeightFactor = doc.getLineHeightFactor();\n cell.contentHeight = cell.getContentHeight(scaleFactor, lineHeightFactor);\n if (cell.contentHeight >= remainingPageSpace) {\n cell.contentHeight = remainingPageSpace;\n remainderCell.styles.minCellHeight -= remainingPageSpace;\n }\n if (cell.contentHeight > row.height) {\n row.height = cell.contentHeight;\n }\n remainderCell.contentHeight = remainderCell.getContentHeight(scaleFactor, lineHeightFactor);\n if (remainderCell.contentHeight > rowHeight) {\n rowHeight = remainderCell.contentHeight;\n }\n cells[column.index] = remainderCell;\n }\n var remainderRow = new models_1.Row(row.raw, -1, row.section, cells, true);\n remainderRow.height = rowHeight;\n for (var _b = 0, _c = table.columns; _b < _c.length; _b++) {\n var column = _c[_b];\n var remainderCell = remainderRow.cells[column.index];\n if (remainderCell) {\n remainderCell.height = remainderRow.height;\n }\n var cell = row.cells[column.index];\n if (cell) {\n cell.height = row.height;\n }\n }\n return remainderRow;\n}\nfunction shouldPrintOnCurrentPage(doc, row, remainingPageSpace, table) {\n var pageHeight = doc.pageSize().height;\n var margin = table.settings.margin;\n var marginHeight = margin.top + margin.bottom;\n var maxRowHeight = pageHeight - marginHeight;\n if (row.section === 'body') {\n // Should also take into account that head and foot is not\n // on every page with some settings\n maxRowHeight -=\n table.getHeadHeight(table.columns) + table.getFootHeight(table.columns);\n }\n var minRowHeight = row.getMinimumRowHeight(table.columns, doc);\n var minRowFits = minRowHeight < remainingPageSpace;\n if (minRowHeight > maxRowHeight) {\n console.error(\"Will not be able to print row \".concat(row.index, \" correctly since it's minimum height is larger than page height\"));\n return true;\n }\n if (!minRowFits) {\n return false;\n }\n var rowHasRowSpanCell = row.hasRowSpan(table.columns);\n var rowHigherThanPage = row.getMaxCellHeight(table.columns) > maxRowHeight;\n if (rowHigherThanPage) {\n if (rowHasRowSpanCell) {\n console.error(\"The content of row \".concat(row.index, \" will not be drawn correctly since drawing rows with a height larger than the page height and has cells with rowspans is not supported.\"));\n }\n return true;\n }\n if (rowHasRowSpanCell) {\n // Currently a new page is required whenever a rowspan row don't fit a page.\n return false;\n }\n if (table.settings.rowPageBreak === 'avoid') {\n return false;\n }\n // In all other cases print the row on current page\n return true;\n}\nfunction printFullRow(doc, table, row, isLastRow, startPos, cursor, columns) {\n var remainingSpace = getRemainingPageSpace(doc, table, isLastRow, cursor);\n if (row.canEntireRowFit(remainingSpace, columns)) {\n // The row fits in the current page\n printRow(doc, table, row, cursor, columns);\n }\n else if (shouldPrintOnCurrentPage(doc, row, remainingSpace, table)) {\n // The row gets split in two here, each piece in one page\n var remainderRow = modifyRowToFit(row, remainingSpace, table, doc);\n printRow(doc, table, row, cursor, columns);\n addPage(doc, table, startPos, cursor, columns);\n printFullRow(doc, table, remainderRow, isLastRow, startPos, cursor, columns);\n }\n else {\n // The row get printed entirelly on the next page\n addPage(doc, table, startPos, cursor, columns);\n printFullRow(doc, table, row, isLastRow, startPos, cursor, columns);\n }\n}\nfunction printRow(doc, table, row, cursor, columns) {\n cursor.x = table.settings.margin.left;\n for (var _i = 0, columns_1 = columns; _i < columns_1.length; _i++) {\n var column = columns_1[_i];\n var cell = row.cells[column.index];\n if (!cell) {\n cursor.x += column.width;\n continue;\n }\n doc.applyStyles(cell.styles);\n cell.x = cursor.x;\n cell.y = cursor.y;\n var result = table.callCellHooks(doc, table.hooks.willDrawCell, cell, row, column, cursor);\n if (result === false) {\n cursor.x += column.width;\n continue;\n }\n drawCellRect(doc, cell, cursor);\n var textPos = cell.getTextPos();\n (0, autoTableText_1.default)(cell.text, textPos.x, textPos.y, {\n halign: cell.styles.halign,\n valign: cell.styles.valign,\n maxWidth: Math.ceil(cell.width - cell.padding('left') - cell.padding('right')),\n }, doc.getDocument());\n table.callCellHooks(doc, table.hooks.didDrawCell, cell, row, column, cursor);\n cursor.x += column.width;\n }\n cursor.y += row.height;\n}\nfunction drawCellRect(doc, cell, cursor) {\n var cellStyles = cell.styles;\n // https://github.com/simonbengtsson/jsPDF-AutoTable/issues/774\n // TODO (v4): better solution?\n doc.getDocument().setFillColor(doc.getDocument().getFillColor());\n if (typeof cellStyles.lineWidth === 'number') {\n // Draw cell background with normal borders\n var fillStyle = (0, common_1.getFillStyle)(cellStyles.lineWidth, cellStyles.fillColor);\n if (fillStyle) {\n doc.rect(cell.x, cursor.y, cell.width, cell.height, fillStyle);\n }\n }\n else if (typeof cellStyles.lineWidth === 'object') {\n // Draw cell background\n if (cellStyles.fillColor) {\n doc.rect(cell.x, cursor.y, cell.width, cell.height, 'F');\n }\n // Draw cell individual borders\n drawCellBorders(doc, cell, cursor, cellStyles.lineWidth);\n }\n}\n/**\n * Draw all specified borders. Borders are centered on cell's edge and lengthened\n * to overlap with neighbours to create sharp corners.\n * @param doc\n * @param cell\n * @param cursor\n * @param fillColor\n * @param lineWidth\n */\nfunction drawCellBorders(doc, cell, cursor, lineWidth) {\n var x1, y1, x2, y2;\n if (lineWidth.top) {\n x1 = cursor.x;\n y1 = cursor.y;\n x2 = cursor.x + cell.width;\n y2 = cursor.y;\n if (lineWidth.right) {\n x2 += 0.5 * lineWidth.right;\n }\n if (lineWidth.left) {\n x1 -= 0.5 * lineWidth.left;\n }\n drawLine(lineWidth.top, x1, y1, x2, y2);\n }\n if (lineWidth.bottom) {\n x1 = cursor.x;\n y1 = cursor.y + cell.height;\n x2 = cursor.x + cell.width;\n y2 = cursor.y + cell.height;\n if (lineWidth.right) {\n x2 += 0.5 * lineWidth.right;\n }\n if (lineWidth.left) {\n x1 -= 0.5 * lineWidth.left;\n }\n drawLine(lineWidth.bottom, x1, y1, x2, y2);\n }\n if (lineWidth.left) {\n x1 = cursor.x;\n y1 = cursor.y;\n x2 = cursor.x;\n y2 = cursor.y + cell.height;\n if (lineWidth.top) {\n y1 -= 0.5 * lineWidth.top;\n }\n if (lineWidth.bottom) {\n y2 += 0.5 * lineWidth.bottom;\n }\n drawLine(lineWidth.left, x1, y1, x2, y2);\n }\n if (lineWidth.right) {\n x1 = cursor.x + cell.width;\n y1 = cursor.y;\n x2 = cursor.x + cell.width;\n y2 = cursor.y + cell.height;\n if (lineWidth.top) {\n y1 -= 0.5 * lineWidth.top;\n }\n if (lineWidth.bottom) {\n y2 += 0.5 * lineWidth.bottom;\n }\n drawLine(lineWidth.right, x1, y1, x2, y2);\n }\n function drawLine(width, x1, y1, x2, y2) {\n doc.getDocument().setLineWidth(width);\n doc.getDocument().line(x1, y1, x2, y2, 'S');\n }\n}\nfunction getRemainingPageSpace(doc, table, isLastRow, cursor) {\n var bottomContentHeight = table.settings.margin.bottom;\n var showFoot = table.settings.showFoot;\n if (showFoot === 'everyPage' || (showFoot === 'lastPage' && isLastRow)) {\n bottomContentHeight += table.getFootHeight(table.columns);\n }\n return doc.pageSize().height - cursor.y - bottomContentHeight;\n}\nfunction addPage(doc, table, startPos, cursor, columns, suppressFooter) {\n if (columns === void 0) { columns = []; }\n if (suppressFooter === void 0) { suppressFooter = false; }\n doc.applyStyles(doc.userStyles);\n if (table.settings.showFoot === 'everyPage' && !suppressFooter) {\n table.foot.forEach(function (row) { return printRow(doc, table, row, cursor, columns); });\n }\n // Add user content just before adding new page ensure it will\n // be drawn above other things on the page\n table.callEndPageHooks(doc, cursor);\n var margin = table.settings.margin;\n (0, common_1.addTableBorder)(doc, table, startPos, cursor);\n nextPage(doc);\n table.pageNumber++;\n table.pageCount++;\n cursor.x = margin.left;\n cursor.y = margin.top;\n startPos.y = margin.top;\n // call didAddPage hooks before any content is added to the page\n table.callWillDrawPageHooks(doc, cursor);\n if (table.settings.showHead === 'everyPage') {\n table.head.forEach(function (row) { return printRow(doc, table, row, cursor, columns); });\n doc.applyStyles(doc.userStyles);\n }\n}\nexports.addPage = addPage;\nfunction nextPage(doc) {\n var current = doc.pageNumber();\n doc.setPage(current + 1);\n var newCurrent = doc.pageNumber();\n if (newCurrent === current) {\n doc.addPage();\n return true;\n }\n return false;\n}\n\n\n/***/ }),\n\n/***/ 224:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.calculateAllColumnsCanFitInPage = void 0;\nvar common_1 = __webpack_require__(420);\n// get columns can be fit into page\nfunction getColumnsCanFitInPage(doc, table, config) {\n var _a;\n if (config === void 0) { config = {}; }\n // Get page width\n var remainingWidth = (0, common_1.getPageAvailableWidth)(doc, table);\n // Get column data key to repeat\n var repeatColumnsMap = new Map();\n var colIndexes = [];\n var columns = [];\n var horizontalPageBreakRepeat = [];\n table.settings.horizontalPageBreakRepeat;\n if (Array.isArray(table.settings.horizontalPageBreakRepeat)) {\n horizontalPageBreakRepeat = table.settings.horizontalPageBreakRepeat;\n // It can be a single value of type string or number (even number: 0)\n }\n else if (typeof table.settings.horizontalPageBreakRepeat === 'string' ||\n typeof table.settings.horizontalPageBreakRepeat === 'number') {\n horizontalPageBreakRepeat = [table.settings.horizontalPageBreakRepeat];\n }\n // Code to repeat the given column in split pages\n horizontalPageBreakRepeat.forEach(function (field) {\n var col = table.columns.find(function (item) { return item.dataKey === field || item.index === field; });\n if (col && !repeatColumnsMap.has(col.index)) {\n repeatColumnsMap.set(col.index, true);\n colIndexes.push(col.index);\n columns.push(table.columns[col.index]);\n remainingWidth -= col.wrappedWidth;\n }\n });\n var first = true;\n var i = (_a = config === null || config === void 0 ? void 0 : config.start) !== null && _a !== void 0 ? _a : 0; // make sure couter is initiated outside the loop\n while (i < table.columns.length) {\n // Prevent duplicates\n if (repeatColumnsMap.has(i)) {\n i++;\n continue;\n }\n var colWidth = table.columns[i].wrappedWidth;\n // Take at least one column even if it doesn't fit\n if (first || remainingWidth >= colWidth) {\n first = false;\n colIndexes.push(i);\n columns.push(table.columns[i]);\n remainingWidth -= colWidth;\n }\n else {\n break;\n }\n i++;\n }\n return { colIndexes: colIndexes, columns: columns, lastIndex: i - 1 };\n}\nfunction calculateAllColumnsCanFitInPage(doc, table) {\n var allResults = [];\n for (var i = 0; i < table.columns.length; i++) {\n var result = getColumnsCanFitInPage(doc, table, { start: i });\n if (result.columns.length) {\n allResults.push(result);\n i = result.lastIndex;\n }\n }\n return allResults;\n}\nexports.calculateAllColumnsCanFitInPage = calculateAllColumnsCanFitInPage;\n\n\n/***/ }),\n\n/***/ 324:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ellipsize = exports.resizeColumns = exports.calculateWidths = void 0;\nvar common_1 = __webpack_require__(420);\n/**\n * Calculate the column widths\n */\nfunction calculateWidths(doc, table) {\n calculate(doc, table);\n var resizableColumns = [];\n var initialTableWidth = 0;\n table.columns.forEach(function (column) {\n var customWidth = column.getMaxCustomCellWidth(table);\n if (customWidth) {\n // final column width\n column.width = customWidth;\n }\n else {\n // initial column width (will be resized)\n column.width = column.wrappedWidth;\n resizableColumns.push(column);\n }\n initialTableWidth += column.width;\n });\n // width difference that needs to be distributed\n var resizeWidth = table.getWidth(doc.pageSize().width) - initialTableWidth;\n // first resize attempt: with respect to minReadableWidth and minWidth\n if (resizeWidth) {\n resizeWidth = resizeColumns(resizableColumns, resizeWidth, function (column) {\n return Math.max(column.minReadableWidth, column.minWidth);\n });\n }\n // second resize attempt: ignore minReadableWidth but respect minWidth\n if (resizeWidth) {\n resizeWidth = resizeColumns(resizableColumns, resizeWidth, function (column) { return column.minWidth; });\n }\n resizeWidth = Math.abs(resizeWidth);\n if (!table.settings.horizontalPageBreak &&\n resizeWidth > 0.1 / doc.scaleFactor()) {\n // Table can't get smaller due to custom-width or minWidth restrictions\n // We can't really do much here. Up to user to for example\n // reduce font size, increase page size or remove custom cell widths\n // to allow more columns to be reduced in size\n resizeWidth = resizeWidth < 1 ? resizeWidth : Math.round(resizeWidth);\n console.warn(\"Of the table content, \".concat(resizeWidth, \" units width could not fit page\"));\n }\n applyColSpans(table);\n fitContent(table, doc);\n applyRowSpans(table);\n}\nexports.calculateWidths = calculateWidths;\nfunction calculate(doc, table) {\n var sf = doc.scaleFactor();\n var horizontalPageBreak = table.settings.horizontalPageBreak;\n var availablePageWidth = (0, common_1.getPageAvailableWidth)(doc, table);\n table.allRows().forEach(function (row) {\n for (var _i = 0, _a = table.columns; _i < _a.length; _i++) {\n var column = _a[_i];\n var cell = row.cells[column.index];\n if (!cell)\n continue;\n var hooks = table.hooks.didParseCell;\n table.callCellHooks(doc, hooks, cell, row, column, null);\n var padding = cell.padding('horizontal');\n cell.contentWidth = (0, common_1.getStringWidth)(cell.text, cell.styles, doc) + padding;\n // Using [^\\S\\u00A0] instead of \\s ensures that we split the text on all\n // whitespace except non-breaking spaces (\\u00A0). We need to preserve\n // them in the split process to ensure correct word separation and width\n // calculation.\n var longestWordWidth = (0, common_1.getStringWidth)(cell.text.join(' ').split(/[^\\S\\u00A0]+/), cell.styles, doc);\n cell.minReadableWidth = longestWordWidth + cell.padding('horizontal');\n if (typeof cell.styles.cellWidth === 'number') {\n cell.minWidth = cell.styles.cellWidth;\n cell.wrappedWidth = cell.styles.cellWidth;\n }\n else if (cell.styles.cellWidth === 'wrap' ||\n horizontalPageBreak === true) {\n // cell width should not be more than available page width\n if (cell.contentWidth > availablePageWidth) {\n cell.minWidth = availablePageWidth;\n cell.wrappedWidth = availablePageWidth;\n }\n else {\n cell.minWidth = cell.contentWidth;\n cell.wrappedWidth = cell.contentWidth;\n }\n }\n else {\n // auto\n var defaultMinWidth = 10 / sf;\n cell.minWidth = cell.styles.minCellWidth || defaultMinWidth;\n cell.wrappedWidth = cell.contentWidth;\n if (cell.minWidth > cell.wrappedWidth) {\n cell.wrappedWidth = cell.minWidth;\n }\n }\n }\n });\n table.allRows().forEach(function (row) {\n for (var _i = 0, _a = table.columns; _i < _a.length; _i++) {\n var column = _a[_i];\n var cell = row.cells[column.index];\n // For now we ignore the minWidth and wrappedWidth of colspan cells when calculating colspan widths.\n // Could probably be improved upon however.\n if (cell && cell.colSpan === 1) {\n column.wrappedWidth = Math.max(column.wrappedWidth, cell.wrappedWidth);\n column.minWidth = Math.max(column.minWidth, cell.minWidth);\n column.minReadableWidth = Math.max(column.minReadableWidth, cell.minReadableWidth);\n }\n else {\n // Respect cellWidth set in columnStyles even if there is no cells for this column\n // or if the column only have colspan cells. Since the width of colspan cells\n // does not affect the width of columns, setting columnStyles cellWidth enables the\n // user to at least do it manually.\n // Note that this is not perfect for now since for example row and table styles are\n // not accounted for\n var columnStyles = table.styles.columnStyles[column.dataKey] ||\n table.styles.columnStyles[column.index] ||\n {};\n var cellWidth = columnStyles.cellWidth || columnStyles.minCellWidth;\n if (cellWidth && typeof cellWidth === 'number') {\n column.minWidth = cellWidth;\n column.wrappedWidth = cellWidth;\n }\n }\n if (cell) {\n // Make sure all columns get at least min width even though width calculations are not based on them\n if (cell.colSpan > 1 && !column.minWidth) {\n column.minWidth = cell.minWidth;\n }\n if (cell.colSpan > 1 && !column.wrappedWidth) {\n column.wrappedWidth = cell.minWidth;\n }\n }\n }\n });\n}\n/**\n * Distribute resizeWidth on passed resizable columns\n */\nfunction resizeColumns(columns, resizeWidth, getMinWidth) {\n var initialResizeWidth = resizeWidth;\n var sumWrappedWidth = columns.reduce(function (acc, column) { return acc + column.wrappedWidth; }, 0);\n for (var i = 0; i < columns.length; i++) {\n var column = columns[i];\n var ratio = column.wrappedWidth / sumWrappedWidth;\n var suggestedChange = initialResizeWidth * ratio;\n var suggestedWidth = column.width + suggestedChange;\n var minWidth = getMinWidth(column);\n var newWidth = suggestedWidth < minWidth ? minWidth : suggestedWidth;\n resizeWidth -= newWidth - column.width;\n column.width = newWidth;\n }\n resizeWidth = Math.round(resizeWidth * 1e10) / 1e10;\n // Run the resizer again if there's remaining width needs\n // to be distributed and there're columns that can be resized\n if (resizeWidth) {\n var resizableColumns = columns.filter(function (column) {\n return resizeWidth < 0\n ? column.width > getMinWidth(column) // check if column can shrink\n : true; // check if column can grow\n });\n if (resizableColumns.length) {\n resizeWidth = resizeColumns(resizableColumns, resizeWidth, getMinWidth);\n }\n }\n return resizeWidth;\n}\nexports.resizeColumns = resizeColumns;\nfunction applyRowSpans(table) {\n var rowSpanCells = {};\n var colRowSpansLeft = 1;\n var all = table.allRows();\n for (var rowIndex = 0; rowIndex < all.length; rowIndex++) {\n var row = all[rowIndex];\n for (var _i = 0, _a = table.columns; _i < _a.length; _i++) {\n var column = _a[_i];\n var data = rowSpanCells[column.index];\n if (colRowSpansLeft > 1) {\n colRowSpansLeft--;\n delete row.cells[column.index];\n }\n else if (data) {\n data.cell.height += row.height;\n colRowSpansLeft = data.cell.colSpan;\n delete row.cells[column.index];\n data.left--;\n if (data.left <= 1) {\n delete rowSpanCells[column.index];\n }\n }\n else {\n var cell = row.cells[column.index];\n if (!cell) {\n continue;\n }\n cell.height = row.height;\n if (cell.rowSpan > 1) {\n var remaining = all.length - rowIndex;\n var left = cell.rowSpan > remaining ? remaining : cell.rowSpan;\n rowSpanCells[column.index] = { cell: cell, left: left, row: row };\n }\n }\n }\n }\n}\nfunction applyColSpans(table) {\n var all = table.allRows();\n for (var rowIndex = 0; rowIndex < all.length; rowIndex++) {\n var row = all[rowIndex];\n var colSpanCell = null;\n var combinedColSpanWidth = 0;\n var colSpansLeft = 0;\n for (var columnIndex = 0; columnIndex < table.columns.length; columnIndex++) {\n var column = table.columns[columnIndex];\n // Width and colspan\n colSpansLeft -= 1;\n if (colSpansLeft > 1 && table.columns[columnIndex + 1]) {\n combinedColSpanWidth += column.width;\n delete row.cells[column.index];\n }\n else if (colSpanCell) {\n var cell = colSpanCell;\n delete row.cells[column.index];\n colSpanCell = null;\n cell.width = column.width + combinedColSpanWidth;\n }\n else {\n var cell = row.cells[column.index];\n if (!cell)\n continue;\n colSpansLeft = cell.colSpan;\n combinedColSpanWidth = 0;\n if (cell.colSpan > 1) {\n colSpanCell = cell;\n combinedColSpanWidth += column.width;\n continue;\n }\n cell.width = column.width + combinedColSpanWidth;\n }\n }\n }\n}\nfunction fitContent(table, doc) {\n var rowSpanHeight = { count: 0, height: 0 };\n for (var _i = 0, _a = table.allRows(); _i < _a.length; _i++) {\n var row = _a[_i];\n for (var _b = 0, _c = table.columns; _b < _c.length; _b++) {\n var column = _c[_b];\n var cell = row.cells[column.index];\n if (!cell)\n continue;\n doc.applyStyles(cell.styles, true);\n var textSpace = cell.width - cell.padding('horizontal');\n if (cell.styles.overflow === 'linebreak') {\n // Add one pt to textSpace to fix rounding error\n cell.text = doc.splitTextToSize(cell.text, textSpace + 1 / doc.scaleFactor(), { fontSize: cell.styles.fontSize });\n }\n else if (cell.styles.overflow === 'ellipsize') {\n cell.text = ellipsize(cell.text, textSpace, cell.styles, doc, '...');\n }\n else if (cell.styles.overflow === 'hidden') {\n cell.text = ellipsize(cell.text, textSpace, cell.styles, doc, '');\n }\n else if (typeof cell.styles.overflow === 'function') {\n var result = cell.styles.overflow(cell.text, textSpace);\n if (typeof result === 'string') {\n cell.text = [result];\n }\n else {\n cell.text = result;\n }\n }\n cell.contentHeight = cell.getContentHeight(doc.scaleFactor(), doc.getLineHeightFactor());\n var realContentHeight = cell.contentHeight / cell.rowSpan;\n if (cell.rowSpan > 1 &&\n rowSpanHeight.count * rowSpanHeight.height <\n realContentHeight * cell.rowSpan) {\n rowSpanHeight = { height: realContentHeight, count: cell.rowSpan };\n }\n else if (rowSpanHeight && rowSpanHeight.count > 0) {\n if (rowSpanHeight.height > realContentHeight) {\n realContentHeight = rowSpanHeight.height;\n }\n }\n if (realContentHeight > row.height) {\n row.height = realContentHeight;\n }\n }\n rowSpanHeight.count--;\n }\n}\nfunction ellipsize(text, width, styles, doc, overflow) {\n return text.map(function (str) { return ellipsizeStr(str, width, styles, doc, overflow); });\n}\nexports.ellipsize = ellipsize;\nfunction ellipsizeStr(text, width, styles, doc, overflow) {\n var precision = 10000 * doc.scaleFactor();\n width = Math.ceil(width * precision) / precision;\n if (width >= (0, common_1.getStringWidth)(text, styles, doc)) {\n return text;\n }\n while (width < (0, common_1.getStringWidth)(text + overflow, styles, doc)) {\n if (text.length <= 1) {\n break;\n }\n text = text.substring(0, text.length - 1);\n }\n return text.trim() + overflow;\n}\n\n\n/***/ }),\n\n/***/ 964:\n/***/ (function(module) {\n\nif(typeof __WEBPACK_EXTERNAL_MODULE__964__ === 'undefined') { var e = new Error(\"Cannot find module 'undefined'\"); e.code = 'MODULE_NOT_FOUND'; throw e; }\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__964__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n!function() {\nvar exports = __webpack_exports__;\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Cell = exports.Column = exports.Row = exports.Table = exports.CellHookData = exports.__drawTable = exports.__createTable = exports.applyPlugin = void 0;\nvar applyPlugin_1 = __webpack_require__(340);\nvar inputParser_1 = __webpack_require__(776);\nvar tableDrawer_1 = __webpack_require__(664);\nvar tableCalculator_1 = __webpack_require__(972);\nvar models_1 = __webpack_require__(260);\nObject.defineProperty(exports, \"Table\", ({ enumerable: true, get: function () { return models_1.Table; } }));\nvar HookData_1 = __webpack_require__(172);\nObject.defineProperty(exports, \"CellHookData\", ({ enumerable: true, get: function () { return HookData_1.CellHookData; } }));\nvar models_2 = __webpack_require__(260);\nObject.defineProperty(exports, \"Cell\", ({ enumerable: true, get: function () { return models_2.Cell; } }));\nObject.defineProperty(exports, \"Column\", ({ enumerable: true, get: function () { return models_2.Column; } }));\nObject.defineProperty(exports, \"Row\", ({ enumerable: true, get: function () { return models_2.Row; } }));\n// export { applyPlugin } didn't export applyPlugin\n// to index.d.ts for some reason\nfunction applyPlugin(jsPDF) {\n (0, applyPlugin_1.default)(jsPDF);\n}\nexports.applyPlugin = applyPlugin;\nfunction autoTable(d, options) {\n var input = (0, inputParser_1.parseInput)(d, options);\n var table = (0, tableCalculator_1.createTable)(d, input);\n (0, tableDrawer_1.drawTable)(d, table);\n}\n// Experimental export\nfunction __createTable(d, options) {\n var input = (0, inputParser_1.parseInput)(d, options);\n return (0, tableCalculator_1.createTable)(d, input);\n}\nexports.__createTable = __createTable;\nfunction __drawTable(d, table) {\n (0, tableDrawer_1.drawTable)(d, table);\n}\nexports.__drawTable = __drawTable;\ntry {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n var jsPDF = __webpack_require__(964);\n // Webpack imported jspdf instead of jsPDF for some reason\n // while it seemed to work everywhere else.\n if (jsPDF.jsPDF)\n jsPDF = jsPDF.jsPDF;\n applyPlugin(jsPDF);\n}\ncatch (error) {\n // Importing jspdf in nodejs environments does not work as of jspdf\n // 1.5.3 so we need to silence potential errors to support using for example\n // the nodejs jspdf dist files with the exported applyPlugin\n}\nexports[\"default\"] = autoTable;\n\n}();\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * @license React\n * react-jsx-runtime.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'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\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","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\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","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/**\n * @license React\n * react-dom.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 Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3 true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

' + func(text) + '

';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

fred, barney, & pebbles

'\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '\";\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","/**\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","/* 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 * 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","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return this.s === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * @license React\n * use-sync-external-store-with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and 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\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = React.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n};\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar warn = function warn(s) {\n console.warn('[react-gtm]', s);\n};\n\nexports.default = warn;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _createWebStorage = _interopRequireDefault(require(\"./createWebStorage\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = (0, _createWebStorage.default)('local');\n\nexports.default = _default;","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_customParseFormat=t()}(this,(function(){\"use strict\";var e={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},t=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d/,r=/\\d\\d/,i=/\\d\\d?/,o=/\\d*[^-_:/,()\\s\\d]+/,s={},a=function(e){return(e=+e)+(e>68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekday=t()}(this,(function(){\"use strict\";return function(e,t){t.prototype.weekday=function(e){var t=this.$locale().weekStart||0,i=this.$W,n=(i true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + {\"213\":\"489391f3\",\"453\":\"1b38694e\",\"667\":\"e89d67cc\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"franko_backend:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\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\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkfranko_backend\"] = self[\"webpackChunkfranko_backend\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","////////////////////////////////////////////////////////////////////////////////\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 type AgnosticPatchRoutesOnNavigationFunctionArgs<\n O extends AgnosticRouteObject = AgnosticRouteObject,\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> = {\n signal: AbortSignal;\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: O[]) => void;\n};\n\nexport type AgnosticPatchRoutesOnNavigationFunction<\n O extends AgnosticRouteObject = AgnosticRouteObject,\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> = (\n opts: AgnosticPatchRoutesOnNavigationFunctionArgs\n) => void | Promise;\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/v6/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/v6/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/v6/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/v6/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 *\n * @deprecated The `json` method is deprecated in favor of returning raw objects.\n * This method will be removed in v7.\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\n/**\n * @deprecated The `defer` method is deprecated in favor of returning raw\n * objects. This method will be removed in v7.\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 dataStrategy?: DataStrategyFunction;\n patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\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 dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n 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 viewTransitionOpts?: ViewTransitionOpts;\n 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 flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n 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.dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.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 // 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 initialMatchesIsFOW = false;\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 initialMatchesIsFOW = true;\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 // 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\n .slice(0, idx + 1)\n .every((m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors));\n } else {\n initialized = initialMatches.every(\n (m) => !shouldLoadRouteOnHydration(m.route, loaderData, errors)\n );\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 // Remove any lingering deleted fetchers that have already been removed\n // from state.fetchers\n deletedFetchers.forEach((key) => {\n if (!state.fetchers.has(key) && !fetchControllers.has(key)) {\n deletedFetchersKeys.push(key);\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 viewTransitionOpts: opts.viewTransitionOpts,\n 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 } else {\n // We already called deleteFetcher() on these, can remove them from this\n // Set now that we've handed the keys off to the data layer\n deletedFetchersKeys.forEach((key) => deletedFetchers.delete(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.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.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 =\n opts?.initialHydration &&\n state.matches &&\n state.matches.length > 0 &&\n !initialMatchesIsFOW\n ? // `matchRoutes()` has already been called if we're in here via `router.initialize()`\n state.matches\n : 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 hydration 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 = findNearestBoundary(discoverResult.partialMatches)\n .route.id;\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error: discoverResult.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 = findNearestBoundary(discoverResult.partialMatches)\n .route.id;\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: discoverResult.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 abortFetcher(rf.key);\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\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 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 // Preserve SSR errors during partial hydration\n if (future.v7_partialHydration && initialHydration && state.errors) {\n errors = { ...state.errors, ...errors };\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 abortFetcher(key);\n\n let flushSync = (opts && opts.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 let preventScrollReset = (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 preventScrollReset,\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 preventScrollReset,\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 preventScrollReset: 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 new URL(fetchRequest.url).pathname,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.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 preventScrollReset,\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 abortFetcher(staleKey);\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 { preventScrollReset }\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 { preventScrollReset }\n );\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\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 preventScrollReset: 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 new URL(fetchRequest.url).pathname,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n setFetcherError(key, routeId, discoverResult.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 preventScrollReset,\n });\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 preventScrollReset,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n preventScrollReset?: boolean;\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: 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: 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 }\n abortFetcher(key);\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 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 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\n // If we opted into the flag we can clear this now since we're calling\n // deleteFetcher() at the end of updateState() and we've already handed the\n // deleted fetcher keys off to the data layer.\n // If not, we're eagerly calling deleteFetcher() and we need to keep this\n // Set populated until the next updateState call, and we'll clear\n // `deletedFetchers` then\n if (future.v7_fetcherPersist) {\n deletedFetchers.delete(key);\n }\n\n cancelledFetcherLoads.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n if (!future.v7_fetcherPersist) {\n deleteFetcher(key);\n }\n } else {\n activeFetchers.set(key, count);\n }\n\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n if (controller) {\n controller.abort();\n fetchControllers.delete(key);\n }\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 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 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 if (!patchRoutesOnNavigationImpl) {\n return { type: \"success\", matches };\n }\n\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let localManifest = manifest;\n try {\n await patchRoutesOnNavigationImpl({\n signal,\n path: pathname,\n matches: partialMatches,\n patch: (routeId, children) => {\n if (signal.aborted) return;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n localManifest,\n mapRouteProperties\n );\n },\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 && !signal.aborted) {\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 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 return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\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 dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n 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 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 dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n 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 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 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 dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n 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 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 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 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 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 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 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 dataStrategy: DataStrategyFunction | null\n ): Promise> {\n let results = await callDataStrategyImpl(\n 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 // Account for `?index` params when routing to the current location\n if ((to == null || to === \"\" || to === \".\") && activeRouteMatch) {\n let nakedIndex = hasNakedIndexQuery(path.search);\n if (activeRouteMatch.route.index && !nakedIndex) {\n // Add one when we're targeting an index route\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n } else if (!activeRouteMatch.route.index && nakedIndex) {\n // Remove existing ones when we're not\n let params = new URLSearchParams(path.search);\n let indexValues = params.getAll(\"index\");\n params.delete(\"index\");\n indexValues.filter((v) => v).forEach((v) => params.append(\"index\", v));\n let qs = params.toString();\n path.search = qs ? `?${qs}` : \"\";\n }\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 at/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 includeBoundary = false\n) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n return matches.slice(0, includeBoundary ? index + 1 : index);\n }\n return matches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n initialHydration: 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 boundaryMatches = matches;\n if (initialHydration && state.errors) {\n // On initial hydration, only consider matches up to _and including_ the boundary.\n // This is inclusive to handle cases where a server loader ran successfully,\n // a child server loader bubbled up to this route, but this route has\n // `clientLoader.hydrate` so we want to still run the `clientLoader` so that\n // we have a complete version of `loaderData`\n boundaryMatches = getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(state.errors)[0],\n true\n );\n } else if (pendingActionResult && isErrorResult(pendingActionResult[1])) {\n // If an action threw an error, we call loaders up to, but not including the\n // boundary\n boundaryMatches = getLoaderMatchesUntilBoundary(\n matches,\n pendingActionResult[0]\n );\n }\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 (initialHydration) {\n return shouldLoadRouteOnHydration(route, state.loaderData, state.errors);\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 hydration (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 initialHydration ||\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 shouldLoadRouteOnHydration(\n route: AgnosticDataRouteObject,\n loaderData: RouteData | null | undefined,\n errors: RouteData | null | undefined\n) {\n // We dunno if we have a loader - gotta find out!\n if (route.lazy) {\n return true;\n }\n\n // No loader, nothing to initialize\n if (!route.loader) {\n return false;\n }\n\n let hasData = loaderData != null && loaderData[route.id] !== undefined;\n let hasError = errors != null && errors[route.id] !== undefined;\n\n // Don't run if we error'd during SSR\n if (!hasData && hasError) {\n return false;\n }\n\n // Explicitly opting-in to running on hydration\n if (typeof route.loader === \"function\" && route.loader.hydrate === true) {\n return true;\n }\n\n // Otherwise, run if we're not yet initialized with anything\n return !hasData && !hasError;\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\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n let childrenToPatch: AgnosticDataRouteObject[];\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n if (!route.children) {\n route.children = [];\n }\n childrenToPatch = route.children;\n } else {\n childrenToPatch = routesToUse;\n }\n\n // Don't patch in routes we already know about so that `patch` is idempotent\n // to simplify user-land code. This is useful because we re-call the\n // `patchRoutesOnNavigation` function for matched routes with params.\n let uniqueChildren = children.filter(\n (newRoute) =>\n !childrenToPatch.some((existingRoute) =>\n isSameRoute(newRoute, existingRoute)\n )\n );\n\n let newRoutes = convertRoutesToDataRoutes(\n uniqueChildren,\n mapRouteProperties,\n [routeId || \"_\", \"patch\", String(childrenToPatch?.length || \"0\")],\n manifest\n );\n\n childrenToPatch.push(...newRoutes);\n}\n\nfunction isSameRoute(\n newRoute: AgnosticRouteObject,\n existingRoute: AgnosticRouteObject\n): boolean {\n // Most optimal check is by id\n if (\n \"id\" in newRoute &&\n \"id\" in existingRoute &&\n newRoute.id === existingRoute.id\n ) {\n return true;\n }\n\n // Second is by pathing differences\n if (\n !(\n newRoute.index === existingRoute.index &&\n newRoute.path === existingRoute.path &&\n newRoute.caseSensitive === existingRoute.caseSensitive\n )\n ) {\n return false;\n }\n\n // Pathless layout routes are trickier since we need to check children.\n // If they have no children then they're the same as far as we can tell\n if (\n (!newRoute.children || newRoute.children.length === 0) &&\n (!existingRoute.children || existingRoute.children.length === 0)\n ) {\n return true;\n }\n\n // Otherwise, we look to see if every child in the new route is already\n // represented in the existing route's children\n return newRoute.children!.every((aChild, i) =>\n existingRoute.children?.some((bChild) => isSameRoute(aChild, bChild))\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 headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n // Convert thrown data() to ErrorResponse instances\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n ),\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\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 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\";\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 (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","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n flushSync?: boolean;\n viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n AgnosticRouteMatch,\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_decodePath as decodePath,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/v6/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/v6/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/v6/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/v6/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, decodePath(pathname)),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/v6/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/v6/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/v6/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/v6/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/v6/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/v6/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator, static: isStatic } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches =\n !isStatic &&\n dataRouterState &&\n dataRouterState.matches &&\n dataRouterState.matches.length > 0\n ? (dataRouterState.matches as AgnosticRouteMatch[])\n : matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

    💿 Hey developer 👋

    \n

    \n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

    \n \n );\n }\n\n return (\n <>\n

    Unexpected Application Error!

    \n

    {message}

    \n {stack ?
    {stack}
    : null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (!dataRouterState) {\n return null;\n }\n\n if (dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else if (\n future?.v7_partialHydration &&\n parentMatches.length === 0 &&\n !dataRouterState.initialized &&\n dataRouterState.matches.length > 0\n ) {\n // Don't bail if we're initializing with partial hydration and we have\n // router matches. That means we're actively running `patchRoutesOnNavigation`\n // so we should render down the partial matches to the appropriate\n // `HydrateFallback`. We only do this if `parentMatches` is empty so it\n // only impacts the root matches for `RouterProvider` and no descendant\n // ``\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/v6/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type { FutureConfig as RouterFutureConfig } from \"@remix-run/router\";\nimport type { FutureConfig as RenderFutureConfig } from \"./components\";\n\nconst alreadyWarned: { [key: string]: boolean } = {};\n\nexport function warnOnce(key: string, message: string): void {\n if (__DEV__ && !alreadyWarned[message]) {\n alreadyWarned[message] = true;\n console.warn(message);\n }\n}\n\nconst logDeprecation = (flag: string, msg: string, link: string) =>\n warnOnce(\n flag,\n `⚠️ React Router Future Flag Warning: ${msg}. ` +\n `You can use the \\`${flag}\\` future flag to opt-in early. ` +\n `For more information, see ${link}.`\n );\n\nexport function logV6DeprecationWarnings(\n renderFuture: Partial | undefined,\n routerFuture?: Omit\n) {\n if (renderFuture?.v7_startTransition === undefined) {\n logDeprecation(\n \"v7_startTransition\",\n \"React Router will begin wrapping state updates in `React.startTransition` in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_starttransition\"\n );\n }\n\n if (\n renderFuture?.v7_relativeSplatPath === undefined &&\n (!routerFuture || !routerFuture.v7_relativeSplatPath)\n ) {\n logDeprecation(\n \"v7_relativeSplatPath\",\n \"Relative route resolution within Splat routes is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath\"\n );\n }\n\n if (routerFuture) {\n if (routerFuture.v7_fetcherPersist === undefined) {\n logDeprecation(\n \"v7_fetcherPersist\",\n \"The persistence behavior of fetchers is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist\"\n );\n }\n\n if (routerFuture.v7_normalizeFormMethod === undefined) {\n logDeprecation(\n \"v7_normalizeFormMethod\",\n \"Casing of `formMethod` fields is being normalized to uppercase in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod\"\n );\n }\n\n if (routerFuture.v7_partialHydration === undefined) {\n logDeprecation(\n \"v7_partialHydration\",\n \"`RouterProvider` hydration behavior is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_partialhydration\"\n );\n }\n\n if (routerFuture.v7_skipActionErrorRevalidation === undefined) {\n logDeprecation(\n \"v7_skipActionErrorRevalidation\",\n \"The revalidation behavior after 4xx/5xx `action` responses is changing in v7\",\n \"https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation\"\n );\n }\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\nimport { logV6DeprecationWarnings } from \"./deprecations\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n React.useEffect(\n () => logV6DeprecationWarnings(future, router.future),\n [router, future]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a \n \n\n

    \n {selectedBrand ? `${selectedBrand.brandName} Products` : 'Brand Products'}\n

    \n\n \n\n
    \n

    Filter by Price

    \n
    \n setMinPrice(Number(e.target.value))}\n placeholder=\"Min Price\"\n style={{ width: 100 }}\n />\n -\n setMaxPrice(Number(e.target.value))}\n placeholder=\"Max Price\"\n style={{ width: 100 }}\n />\n }\n >\n Filter\n \n
    \n
    \n\n {loading ? (\n
    \n {Array.from({ length: 12 }).map((_, index) => (\n \n
    \n
    \n
    \n
    \n \n ))}\n \n ) : currentProducts.length > 0 ? (\n
    \n {currentProducts.map((product, index) => (\n {\n navigate(`/product/${product.productID}`);\n }}\n >\n \n
    \n {/* Default div displayed when the image fails to load */}\n {!product.productImage || imageLoadStates[product.productID] === 'error' ? (\n
    \n ) : (\n <>\n {/* Placeholder div shown while the image is loading */}\n {!imageLoadStates[product.productID] && (\n
    \n )}\n handleImageLoad(product.productID)}\n onError={() => handleImageError(product.productID)}\n />\n \n )}\n
    \n\n
    \n

    \n {product.productName}\n

    \n \n {`₵${formatPrice(product.price)}`}.00\n \n
    \n
    \n ))}\n \n ) : (\n
    \n No Products Found}\n image={Empty.PRESENTED_IMAGE_SIMPLE}\n imageStyle={{ height: 200, marginBottom: 6 }}\n />\n
    \n )}\n \n );\n};\n\nexport default Brand;\n","// This icon file is generated automatically.\nvar ShareAltOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M752 664c-28.5 0-54.8 10-75.4 26.7L469.4 540.8a160.68 160.68 0 000-57.6l207.2-149.9C697.2 350 723.5 360 752 360c66.2 0 120-53.8 120-120s-53.8-120-120-120-120 53.8-120 120c0 11.6 1.6 22.7 4.7 33.3L439.9 415.8C410.7 377.1 364.3 352 312 352c-88.4 0-160 71.6-160 160s71.6 160 160 160c52.3 0 98.7-25.1 127.9-63.8l196.8 142.5c-3.1 10.6-4.7 21.8-4.7 33.3 0 66.2 53.8 120 120 120s120-53.8 120-120-53.8-120-120-120zm0-476c28.7 0 52 23.3 52 52s-23.3 52-52 52-52-23.3-52-52 23.3-52 52-52zM312 600c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88zm440 236c-28.7 0-52-23.3-52-52s23.3-52 52-52 52 23.3 52 52-23.3 52-52 52z\" } }] }, \"name\": \"share-alt\", \"theme\": \"outlined\" };\nexport default ShareAltOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ShareAltOutlinedSvg from \"@ant-design/icons-svg/es/asn/ShareAltOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ShareAltOutlined = function ShareAltOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ShareAltOutlinedSvg\n }));\n};\n\n/**![share-alt](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTc1MiA2NjRjLTI4LjUgMC01NC44IDEwLTc1LjQgMjYuN0w0NjkuNCA1NDAuOGExNjAuNjggMTYwLjY4IDAgMDAwLTU3LjZsMjA3LjItMTQ5LjlDNjk3LjIgMzUwIDcyMy41IDM2MCA3NTIgMzYwYzY2LjIgMCAxMjAtNTMuOCAxMjAtMTIwcy01My44LTEyMC0xMjAtMTIwLTEyMCA1My44LTEyMCAxMjBjMCAxMS42IDEuNiAyMi43IDQuNyAzMy4zTDQzOS45IDQxNS44QzQxMC43IDM3Ny4xIDM2NC4zIDM1MiAzMTIgMzUyYy04OC40IDAtMTYwIDcxLjYtMTYwIDE2MHM3MS42IDE2MCAxNjAgMTYwYzUyLjMgMCA5OC43LTI1LjEgMTI3LjktNjMuOGwxOTYuOCAxNDIuNWMtMy4xIDEwLjYtNC43IDIxLjgtNC43IDMzLjMgMCA2Ni4yIDUzLjggMTIwIDEyMCAxMjBzMTIwLTUzLjggMTIwLTEyMC01My44LTEyMC0xMjAtMTIwem0wLTQ3NmMyOC43IDAgNTIgMjMuMyA1MiA1MnMtMjMuMyA1Mi01MiA1Mi01Mi0yMy4zLTUyLTUyIDIzLjMtNTIgNTItNTJ6TTMxMiA2MDBjLTQ4LjUgMC04OC0zOS41LTg4LTg4czM5LjUtODggODgtODggODggMzkuNSA4OCA4OC0zOS41IDg4LTg4IDg4em00NDAgMjM2Yy0yOC43IDAtNTItMjMuMy01Mi01MnMyMy4zLTUyIDUyLTUyIDUyIDIzLjMgNTIgNTItMjMuMyA1Mi01MiA1MnoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(ShareAltOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'ShareAltOutlined';\n}\nexport default RefIcon;","import React from 'react';\n\nconst ProductDetailSkeleton = () => {\n return (\n
    \n {/* Image skeleton */}\n
    \n
    \n\n {/* Info skeleton */}\n
    \n
    {/* Product name */}\n
    {/* Price */}\n \n {/* Availability skeleton */}\n
    \n
    \n
    \n
    \n\n {/* Tabs skeleton */}\n
    \n
    \n
    \n
    \n
    \n
    \n\n {/* Buttons skeleton */}\n
    \n
    {/* Add to Cart */}\n
    {/* Share buttons */}\n
    \n
    \n
    \n\n {/* Related Products Skeleton */}\n
    \n
    \n
    \n
    \n
    \n {[...Array(8)].map((_, index) => (\n
    \n ))}\n
    \n
    \n
    \n );\n};\n\nexport default ProductDetailSkeleton;\n","import { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchProductById, fetchProducts } from \"../../Redux/slice/productSlice\";\nimport { useNavigate , useParams} from \"react-router-dom\";\nimport { Button, Tabs, Modal, Card, message} from \"antd\";\nimport { ShoppingCartOutlined, CheckCircleFilled } from \"@ant-design/icons\";\nimport { addToCart } from \"../../Redux/slice/cartSlice\";\nimport { FacebookOutlined, WhatsAppOutlined, ShareAltOutlined } from \"@ant-design/icons\";\nimport ProductDetailSkeleton from \"./ProductDetailSkeleton\";\nimport { Helmet } from \"react-helmet\";\n\nconst formatPrice = (price) => {\n return price.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n};\n\nconst ProductDetail = () => {\n const { productID } = useParams();\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const currentProduct = useSelector((state) => state.products.currentProduct);\n const { products, loading } = useSelector((state) => state.products);\n const cartItems = useSelector((state) => state.cart.cart);\n const cartId = useSelector((state) => state.cart.cartId);\n\n const [isImageModalVisible, setImageModalVisible] = useState(false);\n const [isShareModalVisible, setShareModalVisible] = useState(false);\n const [isSticky, setIsSticky] = useState(false);\n const [isAddingToCart, setIsAddingToCart] = useState(false);\n const [viewedProducts, setViewedProducts] = useState([]);\n\n useEffect(() => {\n dispatch(fetchProducts()); // Fetch products\n dispatch(fetchProductById(productID)); // Fetch current product by ID\n window.scrollTo(0, 0); // Scroll to top on page load\n }, [dispatch, productID]);\n useEffect(() => {\n if (currentProduct && currentProduct.length > 0) {\n const product = currentProduct[0];\n const viewed = {\n id: product.productID, // Ensure correct ID is stored\n name: product.productName, // Ensure correct name is stored\n price: product.price,\n image: `https://smfteapi.salesmate.app/Media/Products_Images/${product.productImage.split(\"\\\\\").pop()}`,\n };\n \n const existingViewed = JSON.parse(localStorage.getItem(\"viewedProducts\")) || [];\n const updatedViewed = existingViewed.filter((item) => item.id !== viewed.id);\n updatedViewed.unshift(viewed);\n localStorage.setItem(\"viewedProducts\", JSON.stringify(updatedViewed.slice(0, 4))); \n setViewedProducts(updatedViewed.slice(0, 4));\n }\n }, [currentProduct]);\n \n\n useEffect(() => {\n const storedViewed = JSON.parse(localStorage.getItem(\"viewedProducts\")) || [];\n setViewedProducts(storedViewed);\n }, []);\n\n const recentProducts = products.slice(-12); // Get the last 12 products as related products\n \n\n const handleAddToCart = () => {\n // Check if the product is already in the cart\n \n const isProductInCart = cartItems.some(\n (item) => item.productID === currentProduct[0].productID\n );\n \n if (isProductInCart) {\n message.warning('Product is already in the cart.');\n return;\n }\n \n setIsAddingToCart(true);\n const cartData = {\n cartId,\n productID: currentProduct[0].productID,\n price: currentProduct[0].price,\n quantity: 1,\n };\n \n dispatch(addToCart(cartData))\n .then(() => {\n message.success('Product added to cart successfully!');\n })\n \n .catch((error) => {\n message.error(`Failed to add product to cart: ${error.message}`);\n })\n .finally(() => {\n setIsAddingToCart(false);\n });\n // Send event to Google Tag Manager\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: \"add_to_cart\",\n ecommerce: {\n items: [\n {\n item_name: currentProduct[0].productName,\n item_id: currentProduct[0].productID,\n price: currentProduct[0].price,\n quantity: 1,\n }\n ]\n }\n });\n \n };\n const productUrl = window.location.href; // Get the current product URL\n \n \n const renderViewedProducts = () => {\n if (!viewedProducts || viewedProducts.length === 0) return null;\n return (\n
    \n
    \n

    Viewed Products

    \n
    \n
    \n {viewedProducts.map((product) => (\n {\n if (!product || !product.id) {\n return;\n }\n navigate(`/product/${product.id}`);\n }}\n \n className=\"cursor-pointer relative\"\n >\n
    \n \n
    \n
    \n }\n >\n {product.name}

    }\n description={

    ₵{formatPrice(product.price)}.00

    }\n />\n \n))}\n
    \n \n );\n };\n // Share logic for Facebook\n const handleFacebookShare = () => {\n window.open(\n `https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(productUrl)}`,\n '_blank'\n );\n };\n\n // Share logic for WhatsApp\n const handleWhatsAppShare = () => {\n window.open(\n `https://api.whatsapp.com/send?text=${encodeURIComponent(productUrl)}`,\n '_blank'\n );\n };\n\n const handleStickyButton = () => {\n if (window.scrollY > 200) {\n setIsSticky(true);\n } else {\n setIsSticky(false);\n }\n };\n\n useEffect(() => {\n window.addEventListener(\"scroll\", handleStickyButton);\n return () => {\n window.removeEventListener(\"scroll\", handleStickyButton);\n };\n }, []);\n \n\n if (loading) {\n return ;\n\n }\nif (!currentProduct || currentProduct.length === 0) {\n return;\n}\n\n\n const product = currentProduct[0];\n const backendBaseURL = \"https://smfteapi.salesmate.app\";\n const imageUrl = `${backendBaseURL}/Media/Products_Images/${product.productImage.split(\"\\\\\").pop()}`;\n\n const productDescription = product.description.split(\"\\n\").map((text, index) => (\n

    {text}

    \n ));\n \n \n\n const renderRelatedProducts = () => {\n if (!recentProducts || recentProducts.length === 0) return null;\n return (\n
    \n
    \n

    \n For You\n

    \n
    \n\n
    \n {recentProducts.map((product) => (\n {\n if (!product || !product.productName) {\n console.error(\"Product or productName is undefined:\", product);\n return;\n }\n \n navigate(`/product/${product.productID}`);\n }}\n className=\"cursor-pointer relative\">\n {product.oldPrice > 0 && (\n
    \n
    \n )}\n
    \n \n
    \n
    \n }\n >\n {product.productName}

    }\n description={\n
    \n

    {`₵${formatPrice(product.price)}`}.00

    \n {product.oldPrice > 0 && (\n

    \n {`₵${formatPrice(product.oldPrice)}`}.00\n

    \n )}\n
    \n }\n />\n }\n className=\"absolute bottom-2 right-2 bg-red-500 text-white opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n handleAddToCart(product);\n }}\n />\n \n ))}\n
    \n \n );\n };\n \n\n return (\n
    \n\n\n\n {`${product?.productName || \"Product\"} - Best Price`}\n \n \n \n \n \n \n \n\n\n\n\n\n\n\n
    \n
    \n {/* Left Column - Product Image */}\n
    \n setImageModalVisible(true)}\n style={{ width: \"100%\", height: \"auto\", objectFit: \"cover\", borderRadius: \"5px\" }}\n />\n
    \n\n {/* Right Column - Product Info */}\n
    \n

    {product.productName}

    \n
    \n ₵{formatPrice(product.price)}.00\n {product.oldPrice > 0 && (\n \n ₵{formatPrice(product.oldPrice)}.00\n \n )}\n
    \n\n
    \n
    \n \n Availability:\n In Stock\n
    \n
    \n\n Product Description,\n children: (\n
    \n {productDescription}\n
    \n ),\n },\n ]}\n />\n\n {/* Add to Cart Button and Share */}\n \n
    \n
    \n {renderViewedProducts()}\n {/* Related Products */}\n {renderRelatedProducts()}\n\n {/* Image Modal */}\n setImageModalVisible(false)}\n width={800}\n >\n {product.productName}\n \n\n {/* Share Modal */}\n setShareModalVisible(false)}\n footer={null}\n >\n
    \n }\n size=\"large\"\n onClick={handleFacebookShare}\n className=\"flex items-center bg-blue-600 text-white\" >\n Share on Facebook\n \n }\n size=\"large\"\n onClick={handleWhatsAppShare}\n className=\"flex items-center bg-green-800 text-white\" >\n Share on WhatsApp\n \n
    \n \n {/* Sticky Add to Cart Button on Mobile */}\n
    \n
    \n {/* Add to Cart Button */}\n }\n size=\"large\"\n className=\"bg-red-400 hover:bg-green-600 text-white w-48 flex-shrink-0\"\n onClick={handleAddToCart}\n loading={isAddingToCart}\n >\n Add to Cart\n \n\n {/* Share This Product Section */}\n \n
    \n }\n className=\" flex items-center lg:block bg-green-800 text-white px-2 py-1 flex-shrink-0 \"\n onClick={() => setShareModalVisible(true)}\n >\n Share this Product\n \n
    \n
    \n
    \n\n
    \n\n
    \n \n );\n};\n\nexport default ProductDetail;","export var EXPAND_COLUMN = {};\nexport var INTERNAL_HOOKS = 'rc-table-internal-hook';","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport * as React from 'react';\nimport { unstable_batchedUpdates } from 'react-dom';\nexport function createContext(defaultValue) {\n var Context = /*#__PURE__*/React.createContext(undefined);\n var Provider = function Provider(_ref) {\n var value = _ref.value,\n children = _ref.children;\n var valueRef = React.useRef(value);\n valueRef.current = value;\n var _React$useState = React.useState(function () {\n return {\n getValue: function getValue() {\n return valueRef.current;\n },\n listeners: new Set()\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n context = _React$useState2[0];\n useLayoutEffect(function () {\n unstable_batchedUpdates(function () {\n context.listeners.forEach(function (listener) {\n listener(value);\n });\n });\n }, [value]);\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: context\n }, children);\n };\n return {\n Context: Context,\n Provider: Provider,\n defaultValue: defaultValue\n };\n}\n\n/** e.g. useSelect(userContext) => user */\n\n/** e.g. useSelect(userContext, user => user.name) => user.name */\n\n/** e.g. useSelect(userContext, ['name', 'age']) => user { name, age } */\n\n/** e.g. useSelect(userContext, 'name') => user.name */\n\nexport function useContext(holder, selector) {\n var eventSelector = useEvent(typeof selector === 'function' ? selector : function (ctx) {\n if (selector === undefined) {\n return ctx;\n }\n if (!Array.isArray(selector)) {\n return ctx[selector];\n }\n var obj = {};\n selector.forEach(function (key) {\n obj[key] = ctx[key];\n });\n return obj;\n });\n var context = React.useContext(holder === null || holder === void 0 ? void 0 : holder.Context);\n var _ref2 = context || {},\n listeners = _ref2.listeners,\n getValue = _ref2.getValue;\n var valueRef = React.useRef();\n valueRef.current = eventSelector(context ? getValue() : holder === null || holder === void 0 ? void 0 : holder.defaultValue);\n var _React$useState3 = React.useState({}),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n forceUpdate = _React$useState4[1];\n useLayoutEffect(function () {\n if (!context) {\n return;\n }\n function trigger(nextValue) {\n var nextSelectorValue = eventSelector(nextValue);\n if (!isEqual(valueRef.current, nextSelectorValue, true)) {\n forceUpdate({});\n }\n }\n listeners.add(trigger);\n return function () {\n listeners.delete(trigger);\n };\n }, [context]);\n return valueRef.current;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { supportRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\n/**\n * Create Immutable pair for `makeImmutable` and `responseImmutable`.\n */\nexport default function createImmutable() {\n var ImmutableContext = /*#__PURE__*/React.createContext(null);\n\n /**\n * Get render update mark by `makeImmutable` root.\n * Do not deps on the return value as render times\n * but only use for `useMemo` or `useCallback` deps.\n */\n function useImmutableMark() {\n return React.useContext(ImmutableContext);\n }\n\n /**\n * Wrapped Component will be marked as Immutable.\n * When Component parent trigger render,\n * it will notice children component (use with `responseImmutable`) node that parent has updated.\n * @param Component Passed Component\n * @param triggerRender Customize trigger `responseImmutable` children re-render logic. Default will always trigger re-render when this component re-render.\n */\n function makeImmutable(Component, shouldTriggerRender) {\n var refAble = supportRef(Component);\n var ImmutableComponent = function ImmutableComponent(props, ref) {\n var refProps = refAble ? {\n ref: ref\n } : {};\n var renderTimesRef = React.useRef(0);\n var prevProps = React.useRef(props);\n\n // If parent has the context, we do not wrap it\n var mark = useImmutableMark();\n if (mark !== null) {\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, refProps));\n }\n if (\n // Always trigger re-render if not provide `notTriggerRender`\n !shouldTriggerRender || shouldTriggerRender(prevProps.current, props)) {\n renderTimesRef.current += 1;\n }\n prevProps.current = props;\n return /*#__PURE__*/React.createElement(ImmutableContext.Provider, {\n value: renderTimesRef.current\n }, /*#__PURE__*/React.createElement(Component, _extends({}, props, refProps)));\n };\n if (process.env.NODE_ENV !== 'production') {\n ImmutableComponent.displayName = \"ImmutableRoot(\".concat(Component.displayName || Component.name, \")\");\n }\n return refAble ? /*#__PURE__*/React.forwardRef(ImmutableComponent) : ImmutableComponent;\n }\n\n /**\n * Wrapped Component with `React.memo`.\n * But will rerender when parent with `makeImmutable` rerender.\n */\n function responseImmutable(Component, propsAreEqual) {\n var refAble = supportRef(Component);\n var ImmutableComponent = function ImmutableComponent(props, ref) {\n var refProps = refAble ? {\n ref: ref\n } : {};\n useImmutableMark();\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, refProps));\n };\n if (process.env.NODE_ENV !== 'production') {\n ImmutableComponent.displayName = \"ImmutableResponse(\".concat(Component.displayName || Component.name, \")\");\n }\n return refAble ? /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(ImmutableComponent), propsAreEqual) : /*#__PURE__*/React.memo(ImmutableComponent, propsAreEqual);\n }\n return {\n makeImmutable: makeImmutable,\n responseImmutable: responseImmutable,\n useImmutableMark: useImmutableMark\n };\n}","import { createContext, useContext } from \"./context\";\nimport createImmutable from \"./Immutable\";\n\n// For legacy usage, we export it directly\nvar _createImmutable = createImmutable(),\n makeImmutable = _createImmutable.makeImmutable,\n responseImmutable = _createImmutable.responseImmutable,\n useImmutableMark = _createImmutable.useImmutableMark;\nexport { createContext, useContext, createImmutable, makeImmutable, responseImmutable, useImmutableMark };","import { createContext, createImmutable } from '@rc-component/context';\nvar _createImmutable = createImmutable(),\n makeImmutable = _createImmutable.makeImmutable,\n responseImmutable = _createImmutable.responseImmutable,\n useImmutableMark = _createImmutable.useImmutableMark;\nexport { makeImmutable, responseImmutable, useImmutableMark };\nvar TableContext = createContext();\nexport default TableContext;","import * as React from 'react';\n// TODO: Remove when use `responsiveImmutable`\nvar PerfContext = /*#__PURE__*/React.createContext({\n renderWithProps: false\n});\nexport default PerfContext;","var INTERNAL_KEY_PREFIX = 'RC_TABLE_KEY';\nfunction toArray(arr) {\n if (arr === undefined || arr === null) {\n return [];\n }\n return Array.isArray(arr) ? arr : [arr];\n}\nexport function getColumnsKey(columns) {\n var columnKeys = [];\n var keys = {};\n columns.forEach(function (column) {\n var _ref = column || {},\n key = _ref.key,\n dataIndex = _ref.dataIndex;\n var mergedKey = key || toArray(dataIndex).join('-') || INTERNAL_KEY_PREFIX;\n while (keys[mergedKey]) {\n mergedKey = \"\".concat(mergedKey, \"_next\");\n }\n keys[mergedKey] = true;\n columnKeys.push(mergedKey);\n });\n return columnKeys;\n}\nexport function validateValue(val) {\n return val !== null && val !== undefined;\n}\nexport function validNumberValue(value) {\n return typeof value === 'number' && !Number.isNaN(value);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport getValue from \"rc-util/es/utils/get\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport PerfContext from \"../context/PerfContext\";\nimport { validateValue } from \"../utils/valueUtil\";\nimport { useImmutableMark } from \"../context/TableContext\";\nfunction isRenderCell(data) {\n return data && _typeof(data) === 'object' && !Array.isArray(data) && ! /*#__PURE__*/React.isValidElement(data);\n}\nexport default function useCellRender(record, dataIndex, renderIndex, children, render, shouldCellUpdate) {\n // TODO: Remove this after next major version\n var perfRecord = React.useContext(PerfContext);\n var mark = useImmutableMark();\n\n // ======================== Render ========================\n var retData = useMemo(function () {\n if (validateValue(children)) {\n return [children];\n }\n var path = dataIndex === null || dataIndex === undefined || dataIndex === '' ? [] : Array.isArray(dataIndex) ? dataIndex : [dataIndex];\n var value = getValue(record, path);\n\n // Customize render node\n var returnChildNode = value;\n var returnCellProps = undefined;\n if (render) {\n var renderData = render(value, record, renderIndex);\n if (isRenderCell(renderData)) {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`columns.render` return cell props is deprecated with perf issue, please use `onCell` instead.');\n }\n returnChildNode = renderData.children;\n returnCellProps = renderData.props;\n perfRecord.renderWithProps = true;\n } else {\n returnChildNode = renderData;\n }\n }\n return [returnChildNode, returnCellProps];\n }, [\n // Force update deps\n mark,\n // Normal deps\n record, children, dataIndex, render, renderIndex], function (prev, next) {\n if (shouldCellUpdate) {\n var _prev = _slicedToArray(prev, 2),\n prevRecord = _prev[1];\n var _next = _slicedToArray(next, 2),\n nextRecord = _next[1];\n return shouldCellUpdate(nextRecord, prevRecord);\n }\n\n // Legacy mode should always update\n if (perfRecord.renderWithProps) {\n return true;\n }\n return !isEqual(prev, next, true);\n });\n return retData;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport useCellRender from \"./useCellRender\";\nimport useHoverState from \"./useHoverState\";\nimport { useEvent } from 'rc-util';\nvar getTitleFromCellRenderChildren = function getTitleFromCellRenderChildren(_ref) {\n var ellipsis = _ref.ellipsis,\n rowType = _ref.rowType,\n children = _ref.children;\n var title;\n var ellipsisConfig = ellipsis === true ? {\n showTitle: true\n } : ellipsis;\n if (ellipsisConfig && (ellipsisConfig.showTitle || rowType === 'header')) {\n if (typeof children === 'string' || typeof children === 'number') {\n title = children.toString();\n } else if ( /*#__PURE__*/React.isValidElement(children) && typeof children.props.children === 'string') {\n title = children.props.children;\n }\n }\n return title;\n};\nfunction Cell(props) {\n var _ref2, _ref3, _legacyCellProps$colS, _ref4, _ref5, _legacyCellProps$rowS, _additionalProps$titl, _classNames;\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var Component = props.component,\n children = props.children,\n ellipsis = props.ellipsis,\n scope = props.scope,\n prefixCls = props.prefixCls,\n className = props.className,\n align = props.align,\n record = props.record,\n render = props.render,\n dataIndex = props.dataIndex,\n renderIndex = props.renderIndex,\n shouldCellUpdate = props.shouldCellUpdate,\n index = props.index,\n rowType = props.rowType,\n colSpan = props.colSpan,\n rowSpan = props.rowSpan,\n fixLeft = props.fixLeft,\n fixRight = props.fixRight,\n firstFixLeft = props.firstFixLeft,\n lastFixLeft = props.lastFixLeft,\n firstFixRight = props.firstFixRight,\n lastFixRight = props.lastFixRight,\n appendNode = props.appendNode,\n _props$additionalProp = props.additionalProps,\n additionalProps = _props$additionalProp === void 0 ? {} : _props$additionalProp,\n isSticky = props.isSticky;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var _useContext = useContext(TableContext, ['supportSticky', 'allColumnsFixedLeft', 'rowHoverable']),\n supportSticky = _useContext.supportSticky,\n allColumnsFixedLeft = _useContext.allColumnsFixedLeft,\n rowHoverable = _useContext.rowHoverable;\n\n // ====================== Value =======================\n var _useCellRender = useCellRender(record, dataIndex, renderIndex, children, render, shouldCellUpdate),\n _useCellRender2 = _slicedToArray(_useCellRender, 2),\n childNode = _useCellRender2[0],\n legacyCellProps = _useCellRender2[1];\n\n // ====================== Fixed =======================\n var fixedStyle = {};\n var isFixLeft = typeof fixLeft === 'number' && supportSticky;\n var isFixRight = typeof fixRight === 'number' && supportSticky;\n if (isFixLeft) {\n fixedStyle.position = 'sticky';\n fixedStyle.left = fixLeft;\n }\n if (isFixRight) {\n fixedStyle.position = 'sticky';\n fixedStyle.right = fixRight;\n }\n\n // ================ RowSpan & ColSpan =================\n var mergedColSpan = (_ref2 = (_ref3 = (_legacyCellProps$colS = legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.colSpan) !== null && _legacyCellProps$colS !== void 0 ? _legacyCellProps$colS : additionalProps.colSpan) !== null && _ref3 !== void 0 ? _ref3 : colSpan) !== null && _ref2 !== void 0 ? _ref2 : 1;\n var mergedRowSpan = (_ref4 = (_ref5 = (_legacyCellProps$rowS = legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.rowSpan) !== null && _legacyCellProps$rowS !== void 0 ? _legacyCellProps$rowS : additionalProps.rowSpan) !== null && _ref5 !== void 0 ? _ref5 : rowSpan) !== null && _ref4 !== void 0 ? _ref4 : 1;\n\n // ====================== Hover =======================\n var _useHoverState = useHoverState(index, mergedRowSpan),\n _useHoverState2 = _slicedToArray(_useHoverState, 2),\n hovering = _useHoverState2[0],\n onHover = _useHoverState2[1];\n var onMouseEnter = useEvent(function (event) {\n var _additionalProps$onMo;\n if (record) {\n onHover(index, index + mergedRowSpan - 1);\n }\n additionalProps === null || additionalProps === void 0 || (_additionalProps$onMo = additionalProps.onMouseEnter) === null || _additionalProps$onMo === void 0 || _additionalProps$onMo.call(additionalProps, event);\n });\n var onMouseLeave = useEvent(function (event) {\n var _additionalProps$onMo2;\n if (record) {\n onHover(-1, -1);\n }\n additionalProps === null || additionalProps === void 0 || (_additionalProps$onMo2 = additionalProps.onMouseLeave) === null || _additionalProps$onMo2 === void 0 || _additionalProps$onMo2.call(additionalProps, event);\n });\n\n // ====================== Render ======================\n if (mergedColSpan === 0 || mergedRowSpan === 0) {\n return null;\n }\n\n // >>>>> Title\n var title = (_additionalProps$titl = additionalProps.title) !== null && _additionalProps$titl !== void 0 ? _additionalProps$titl : getTitleFromCellRenderChildren({\n rowType: rowType,\n ellipsis: ellipsis,\n children: childNode\n });\n\n // >>>>> ClassName\n var mergedClassName = classNames(cellPrefixCls, className, (_classNames = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-fix-left\"), isFixLeft && supportSticky), \"\".concat(cellPrefixCls, \"-fix-left-first\"), firstFixLeft && supportSticky), \"\".concat(cellPrefixCls, \"-fix-left-last\"), lastFixLeft && supportSticky), \"\".concat(cellPrefixCls, \"-fix-left-all\"), lastFixLeft && allColumnsFixedLeft && supportSticky), \"\".concat(cellPrefixCls, \"-fix-right\"), isFixRight && supportSticky), \"\".concat(cellPrefixCls, \"-fix-right-first\"), firstFixRight && supportSticky), \"\".concat(cellPrefixCls, \"-fix-right-last\"), lastFixRight && supportSticky), \"\".concat(cellPrefixCls, \"-ellipsis\"), ellipsis), \"\".concat(cellPrefixCls, \"-with-append\"), appendNode), \"\".concat(cellPrefixCls, \"-fix-sticky\"), (isFixLeft || isFixRight) && isSticky && supportSticky), _defineProperty(_classNames, \"\".concat(cellPrefixCls, \"-row-hover\"), !legacyCellProps && hovering)), additionalProps.className, legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.className);\n\n // >>>>> Style\n var alignStyle = {};\n if (align) {\n alignStyle.textAlign = align;\n }\n\n // The order is important since user can overwrite style.\n // For example ant-design/ant-design#51763\n var mergedStyle = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, legacyCellProps === null || legacyCellProps === void 0 ? void 0 : legacyCellProps.style), fixedStyle), alignStyle), additionalProps.style);\n\n // >>>>> Children Node\n var mergedChildNode = childNode;\n\n // Not crash if final `childNode` is not validate ReactNode\n if (_typeof(mergedChildNode) === 'object' && !Array.isArray(mergedChildNode) && ! /*#__PURE__*/React.isValidElement(mergedChildNode)) {\n mergedChildNode = null;\n }\n if (ellipsis && (lastFixLeft || firstFixRight)) {\n mergedChildNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(cellPrefixCls, \"-content\")\n }, mergedChildNode);\n }\n return /*#__PURE__*/React.createElement(Component, _extends({}, legacyCellProps, additionalProps, {\n className: mergedClassName,\n style: mergedStyle\n // A11y\n ,\n title: title,\n scope: scope\n // Hover\n ,\n onMouseEnter: rowHoverable ? onMouseEnter : undefined,\n onMouseLeave: rowHoverable ? onMouseLeave : undefined\n //Span\n ,\n colSpan: mergedColSpan !== 1 ? mergedColSpan : null,\n rowSpan: mergedRowSpan !== 1 ? mergedRowSpan : null\n }), appendNode, mergedChildNode);\n}\nexport default /*#__PURE__*/React.memo(Cell);","import { useContext } from '@rc-component/context';\nimport TableContext from \"../context/TableContext\";\n/** Check if cell is in hover range */\nfunction inHoverRange(cellStartRow, cellRowSpan, startRow, endRow) {\n var cellEndRow = cellStartRow + cellRowSpan - 1;\n return cellStartRow <= endRow && cellEndRow >= startRow;\n}\nexport default function useHoverState(rowIndex, rowSpan) {\n return useContext(TableContext, function (ctx) {\n var hovering = inHoverRange(rowIndex, rowSpan || 1, ctx.hoverStartRow, ctx.hoverEndRow);\n return [hovering, ctx.onHover];\n });\n}","export function getCellFixedInfo(colStart, colEnd, columns, stickyOffsets, direction) {\n var startColumn = columns[colStart] || {};\n var endColumn = columns[colEnd] || {};\n var fixLeft;\n var fixRight;\n if (startColumn.fixed === 'left') {\n fixLeft = stickyOffsets.left[direction === 'rtl' ? colEnd : colStart];\n } else if (endColumn.fixed === 'right') {\n fixRight = stickyOffsets.right[direction === 'rtl' ? colStart : colEnd];\n }\n var lastFixLeft = false;\n var firstFixRight = false;\n var lastFixRight = false;\n var firstFixLeft = false;\n var nextColumn = columns[colEnd + 1];\n var prevColumn = columns[colStart - 1];\n\n // need show shadow only when canLastFix is true\n var canLastFix = nextColumn && !nextColumn.fixed || prevColumn && !prevColumn.fixed || columns.every(function (col) {\n return col.fixed === 'left';\n });\n if (direction === 'rtl') {\n if (fixLeft !== undefined) {\n var prevFixLeft = prevColumn && prevColumn.fixed === 'left';\n firstFixLeft = !prevFixLeft && canLastFix;\n } else if (fixRight !== undefined) {\n var nextFixRight = nextColumn && nextColumn.fixed === 'right';\n lastFixRight = !nextFixRight && canLastFix;\n }\n } else if (fixLeft !== undefined) {\n var nextFixLeft = nextColumn && nextColumn.fixed === 'left';\n lastFixLeft = !nextFixLeft && canLastFix;\n } else if (fixRight !== undefined) {\n var prevFixRight = prevColumn && prevColumn.fixed === 'right';\n firstFixRight = !prevFixRight && canLastFix;\n }\n return {\n fixLeft: fixLeft,\n fixRight: fixRight,\n lastFixLeft: lastFixLeft,\n firstFixRight: firstFixRight,\n lastFixRight: lastFixRight,\n firstFixLeft: firstFixLeft,\n isSticky: stickyOffsets.isSticky\n };\n}","import * as React from 'react';\nvar SummaryContext = /*#__PURE__*/React.createContext({});\nexport default SummaryContext;","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport * as React from 'react';\nexport default function FooterRow(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"tr\", props, children);\n}","import Cell from \"./Cell\";\nimport Row from \"./Row\";\n/**\n * Syntactic sugar. Do not support HOC.\n */\nfunction Summary(_ref) {\n var children = _ref.children;\n return children;\n}\nSummary.Row = Row;\nSummary.Cell = Cell;\nexport default Summary;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport { useContext } from '@rc-component/context';\nimport { getCellFixedInfo } from \"../utils/fixUtil\";\nimport SummaryContext from \"./SummaryContext\";\nexport default function SummaryCell(_ref) {\n var className = _ref.className,\n index = _ref.index,\n children = _ref.children,\n _ref$colSpan = _ref.colSpan,\n colSpan = _ref$colSpan === void 0 ? 1 : _ref$colSpan,\n rowSpan = _ref.rowSpan,\n align = _ref.align;\n var _useContext = useContext(TableContext, ['prefixCls', 'direction']),\n prefixCls = _useContext.prefixCls,\n direction = _useContext.direction;\n var _React$useContext = React.useContext(SummaryContext),\n scrollColumnIndex = _React$useContext.scrollColumnIndex,\n stickyOffsets = _React$useContext.stickyOffsets,\n flattenColumns = _React$useContext.flattenColumns;\n var lastIndex = index + colSpan - 1;\n var mergedColSpan = lastIndex + 1 === scrollColumnIndex ? colSpan + 1 : colSpan;\n var fixedInfo = getCellFixedInfo(index, index + mergedColSpan - 1, flattenColumns, stickyOffsets, direction);\n return /*#__PURE__*/React.createElement(Cell, _extends({\n className: className,\n index: index,\n component: \"td\",\n prefixCls: prefixCls,\n record: null,\n dataIndex: null,\n align: align,\n colSpan: mergedColSpan,\n rowSpan: rowSpan,\n render: function render() {\n return children;\n }\n }, fixedInfo));\n}","import { useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport TableContext, { responseImmutable } from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport Summary from \"./Summary\";\nimport SummaryContext from \"./SummaryContext\";\nfunction Footer(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var children = props.children,\n stickyOffsets = props.stickyOffsets,\n flattenColumns = props.flattenColumns;\n var prefixCls = useContext(TableContext, 'prefixCls');\n var lastColumnIndex = flattenColumns.length - 1;\n var scrollColumn = flattenColumns[lastColumnIndex];\n var summaryContext = React.useMemo(function () {\n return {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns,\n scrollColumnIndex: scrollColumn !== null && scrollColumn !== void 0 && scrollColumn.scrollbar ? lastColumnIndex : null\n };\n }, [scrollColumn, flattenColumns, lastColumnIndex, stickyOffsets]);\n return /*#__PURE__*/React.createElement(SummaryContext.Provider, {\n value: summaryContext\n }, /*#__PURE__*/React.createElement(\"tfoot\", {\n className: \"\".concat(prefixCls, \"-summary\")\n }, children));\n}\nexport default responseImmutable(Footer);\nexport var FooterComponents = Summary;","import * as React from 'react';\n// recursion (flat tree structure)\nfunction fillRecords(list, record, indent, childrenColumnName, expandedKeys, getRowKey, index) {\n list.push({\n record: record,\n indent: indent,\n index: index\n });\n var key = getRowKey(record);\n var expanded = expandedKeys === null || expandedKeys === void 0 ? void 0 : expandedKeys.has(key);\n if (record && Array.isArray(record[childrenColumnName]) && expanded) {\n // expanded state, flat record\n for (var i = 0; i < record[childrenColumnName].length; i += 1) {\n fillRecords(list, record[childrenColumnName][i], indent + 1, childrenColumnName, expandedKeys, getRowKey, i);\n }\n }\n}\n/**\n * flat tree data on expanded state\n *\n * @export\n * @template T\n * @param {*} data : table data\n * @param {string} childrenColumnName : 指定树形结构的列名\n * @param {Set} expandedKeys : 展开的行对应的keys\n * @param {GetRowKey} getRowKey : 获取当前rowKey的方法\n * @returns flattened data\n */\nexport default function useFlattenRecords(data, childrenColumnName, expandedKeys, getRowKey) {\n var arr = React.useMemo(function () {\n if (expandedKeys !== null && expandedKeys !== void 0 && expandedKeys.size) {\n var list = [];\n\n // collect flattened record\n for (var i = 0; i < (data === null || data === void 0 ? void 0 : data.length); i += 1) {\n var record = data[i];\n\n // using array.push or spread operator may cause \"Maximum call stack size exceeded\" exception if array size is big enough.\n fillRecords(list, record, 0, childrenColumnName, expandedKeys, getRowKey, i);\n }\n return list;\n }\n return data === null || data === void 0 ? void 0 : data.map(function (item, index) {\n return {\n record: item,\n indent: 0,\n index: index\n };\n });\n }, [data, childrenColumnName, expandedKeys, getRowKey]);\n return arr;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useContext } from '@rc-component/context';\nimport TableContext from \"../context/TableContext\";\nimport { getColumnsKey } from \"../utils/valueUtil\";\nimport { useEvent } from 'rc-util';\nimport classNames from 'classnames';\nexport default function useRowInfo(record, rowKey, recordIndex, indent) {\n var context = useContext(TableContext, ['prefixCls', 'fixedInfoList', 'flattenColumns', 'expandableType', 'expandRowByClick', 'onTriggerExpand', 'rowClassName', 'expandedRowClassName', 'indentSize', 'expandIcon', 'expandedRowRender', 'expandIconColumnIndex', 'expandedKeys', 'childrenColumnName', 'rowExpandable', 'onRow']);\n var flattenColumns = context.flattenColumns,\n expandableType = context.expandableType,\n expandedKeys = context.expandedKeys,\n childrenColumnName = context.childrenColumnName,\n onTriggerExpand = context.onTriggerExpand,\n rowExpandable = context.rowExpandable,\n onRow = context.onRow,\n expandRowByClick = context.expandRowByClick,\n rowClassName = context.rowClassName;\n\n // ======================= Expandable =======================\n // Only when row is not expandable and `children` exist in record\n var nestExpandable = expandableType === 'nest';\n var rowSupportExpand = expandableType === 'row' && (!rowExpandable || rowExpandable(record));\n var mergedExpandable = rowSupportExpand || nestExpandable;\n var expanded = expandedKeys && expandedKeys.has(rowKey);\n var hasNestChildren = childrenColumnName && record && record[childrenColumnName];\n var onInternalTriggerExpand = useEvent(onTriggerExpand);\n\n // ========================= onRow ==========================\n var rowProps = onRow === null || onRow === void 0 ? void 0 : onRow(record, recordIndex);\n var onRowClick = rowProps === null || rowProps === void 0 ? void 0 : rowProps.onClick;\n var onClick = function onClick(event) {\n if (expandRowByClick && mergedExpandable) {\n onTriggerExpand(record, event);\n }\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n onRowClick === null || onRowClick === void 0 || onRowClick.apply(void 0, [event].concat(args));\n };\n\n // ====================== RowClassName ======================\n var computeRowClassName;\n if (typeof rowClassName === 'string') {\n computeRowClassName = rowClassName;\n } else if (typeof rowClassName === 'function') {\n computeRowClassName = rowClassName(record, recordIndex, indent);\n }\n\n // ========================= Column =========================\n var columnsKey = getColumnsKey(flattenColumns);\n return _objectSpread(_objectSpread({}, context), {}, {\n columnsKey: columnsKey,\n nestExpandable: nestExpandable,\n expanded: expanded,\n hasNestChildren: hasNestChildren,\n record: record,\n onTriggerExpand: onInternalTriggerExpand,\n rowSupportExpand: rowSupportExpand,\n expandable: mergedExpandable,\n rowProps: _objectSpread(_objectSpread({}, rowProps), {}, {\n className: classNames(computeRowClassName, rowProps === null || rowProps === void 0 ? void 0 : rowProps.className),\n onClick: onClick\n })\n });\n}","import { useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nfunction ExpandedRow(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var prefixCls = props.prefixCls,\n children = props.children,\n Component = props.component,\n cellComponent = props.cellComponent,\n className = props.className,\n expanded = props.expanded,\n colSpan = props.colSpan,\n isEmpty = props.isEmpty;\n var _useContext = useContext(TableContext, ['scrollbarSize', 'fixHeader', 'fixColumn', 'componentWidth', 'horizonScroll']),\n scrollbarSize = _useContext.scrollbarSize,\n fixHeader = _useContext.fixHeader,\n fixColumn = _useContext.fixColumn,\n componentWidth = _useContext.componentWidth,\n horizonScroll = _useContext.horizonScroll;\n\n // Cache render node\n var contentNode = children;\n if (isEmpty ? horizonScroll && componentWidth : fixColumn) {\n contentNode = /*#__PURE__*/React.createElement(\"div\", {\n style: {\n width: componentWidth - (fixHeader && !isEmpty ? scrollbarSize : 0),\n position: 'sticky',\n left: 0,\n overflow: 'hidden'\n },\n className: \"\".concat(prefixCls, \"-expanded-row-fixed\")\n }, contentNode);\n }\n return /*#__PURE__*/React.createElement(Component, {\n className: className,\n style: {\n display: expanded ? null : 'none'\n }\n }, /*#__PURE__*/React.createElement(Cell, {\n component: cellComponent,\n prefixCls: prefixCls,\n colSpan: colSpan\n }, contentNode));\n}\nexport default ExpandedRow;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nexport function renderExpandIcon(_ref) {\n var prefixCls = _ref.prefixCls,\n record = _ref.record,\n onExpand = _ref.onExpand,\n expanded = _ref.expanded,\n expandable = _ref.expandable;\n var expandClassName = \"\".concat(prefixCls, \"-row-expand-icon\");\n if (!expandable) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(expandClassName, \"\".concat(prefixCls, \"-row-spaced\"))\n });\n }\n var onClick = function onClick(event) {\n onExpand(record, event);\n event.stopPropagation();\n };\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(expandClassName, _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-row-expanded\"), expanded), \"\".concat(prefixCls, \"-row-collapsed\"), !expanded)),\n onClick: onClick\n });\n}\nexport function findAllChildrenKeys(data, getRowKey, childrenColumnName) {\n var keys = [];\n function dig(list) {\n (list || []).forEach(function (item, index) {\n keys.push(getRowKey(item, index));\n dig(item[childrenColumnName]);\n });\n }\n dig(data);\n return keys;\n}\nexport function computedExpandedClassName(cls, record, index, indent) {\n if (typeof cls === 'string') {\n return cls;\n }\n if (typeof cls === 'function') {\n return cls(record, index, indent);\n }\n return '';\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport { responseImmutable } from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport useRowInfo from \"../hooks/useRowInfo\";\nimport ExpandedRow from \"./ExpandedRow\";\nimport { computedExpandedClassName } from \"../utils/expandUtil\";\n// ==================================================================================\n// == getCellProps ==\n// ==================================================================================\nexport function getCellProps(rowInfo, column, colIndex, indent, index) {\n var record = rowInfo.record,\n prefixCls = rowInfo.prefixCls,\n columnsKey = rowInfo.columnsKey,\n fixedInfoList = rowInfo.fixedInfoList,\n expandIconColumnIndex = rowInfo.expandIconColumnIndex,\n nestExpandable = rowInfo.nestExpandable,\n indentSize = rowInfo.indentSize,\n expandIcon = rowInfo.expandIcon,\n expanded = rowInfo.expanded,\n hasNestChildren = rowInfo.hasNestChildren,\n onTriggerExpand = rowInfo.onTriggerExpand;\n var key = columnsKey[colIndex];\n var fixedInfo = fixedInfoList[colIndex];\n\n // ============= Used for nest expandable =============\n var appendCellNode;\n if (colIndex === (expandIconColumnIndex || 0) && nestExpandable) {\n appendCellNode = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n style: {\n paddingLeft: \"\".concat(indentSize * indent, \"px\")\n },\n className: \"\".concat(prefixCls, \"-row-indent indent-level-\").concat(indent)\n }), expandIcon({\n prefixCls: prefixCls,\n expanded: expanded,\n expandable: hasNestChildren,\n record: record,\n onExpand: onTriggerExpand\n }));\n }\n var additionalCellProps;\n if (column.onCell) {\n additionalCellProps = column.onCell(record, index);\n }\n return {\n key: key,\n fixedInfo: fixedInfo,\n appendCellNode: appendCellNode,\n additionalCellProps: additionalCellProps || {}\n };\n}\n\n// ==================================================================================\n// == getCellProps ==\n// ==================================================================================\nfunction BodyRow(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var className = props.className,\n style = props.style,\n record = props.record,\n index = props.index,\n renderIndex = props.renderIndex,\n rowKey = props.rowKey,\n _props$indent = props.indent,\n indent = _props$indent === void 0 ? 0 : _props$indent,\n RowComponent = props.rowComponent,\n cellComponent = props.cellComponent,\n scopeCellComponent = props.scopeCellComponent;\n var rowInfo = useRowInfo(record, rowKey, index, indent);\n var prefixCls = rowInfo.prefixCls,\n flattenColumns = rowInfo.flattenColumns,\n expandedRowClassName = rowInfo.expandedRowClassName,\n expandedRowRender = rowInfo.expandedRowRender,\n rowProps = rowInfo.rowProps,\n expanded = rowInfo.expanded,\n rowSupportExpand = rowInfo.rowSupportExpand;\n\n // Force render expand row if expanded before\n var expandedRef = React.useRef(false);\n expandedRef.current || (expandedRef.current = expanded);\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n\n // 若没有 expandedRowRender 参数, 将使用 baseRowNode 渲染 Children\n // 此时如果 level > 1 则说明是 expandedRow, 一样需要附加 computedExpandedRowClassName\n var expandedClsName = computedExpandedClassName(expandedRowClassName, record, index, indent);\n\n // ======================== Base tr row ========================\n var baseRowNode = /*#__PURE__*/React.createElement(RowComponent, _extends({}, rowProps, {\n \"data-row-key\": rowKey,\n className: classNames(className, \"\".concat(prefixCls, \"-row\"), \"\".concat(prefixCls, \"-row-level-\").concat(indent), rowProps === null || rowProps === void 0 ? void 0 : rowProps.className, _defineProperty({}, expandedClsName, indent >= 1)),\n style: _objectSpread(_objectSpread({}, style), rowProps === null || rowProps === void 0 ? void 0 : rowProps.style)\n }), flattenColumns.map(function (column, colIndex) {\n var render = column.render,\n dataIndex = column.dataIndex,\n columnClassName = column.className;\n var _getCellProps = getCellProps(rowInfo, column, colIndex, indent, index),\n key = _getCellProps.key,\n fixedInfo = _getCellProps.fixedInfo,\n appendCellNode = _getCellProps.appendCellNode,\n additionalCellProps = _getCellProps.additionalCellProps;\n return /*#__PURE__*/React.createElement(Cell, _extends({\n className: columnClassName,\n ellipsis: column.ellipsis,\n align: column.align,\n scope: column.rowScope,\n component: column.rowScope ? scopeCellComponent : cellComponent,\n prefixCls: prefixCls,\n key: key,\n record: record,\n index: index,\n renderIndex: renderIndex,\n dataIndex: dataIndex,\n render: render,\n shouldCellUpdate: column.shouldCellUpdate\n }, fixedInfo, {\n appendNode: appendCellNode,\n additionalProps: additionalCellProps\n }));\n }));\n\n // ======================== Expand Row =========================\n var expandRowNode;\n if (rowSupportExpand && (expandedRef.current || expanded)) {\n var expandContent = expandedRowRender(record, index, indent + 1, expanded);\n expandRowNode = /*#__PURE__*/React.createElement(ExpandedRow, {\n expanded: expanded,\n className: classNames(\"\".concat(prefixCls, \"-expanded-row\"), \"\".concat(prefixCls, \"-expanded-row-level-\").concat(indent + 1), expandedClsName),\n prefixCls: prefixCls,\n component: RowComponent,\n cellComponent: cellComponent,\n colSpan: flattenColumns.length,\n isEmpty: false\n }, expandContent);\n }\n return /*#__PURE__*/React.createElement(React.Fragment, null, baseRowNode, expandRowNode);\n}\nif (process.env.NODE_ENV !== 'production') {\n BodyRow.displayName = 'BodyRow';\n}\nexport default responseImmutable(BodyRow);","import * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nexport default function MeasureCell(_ref) {\n var columnKey = _ref.columnKey,\n onColumnResize = _ref.onColumnResize;\n var cellRef = React.useRef();\n React.useEffect(function () {\n if (cellRef.current) {\n onColumnResize(columnKey, cellRef.current.offsetWidth);\n }\n }, []);\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n data: columnKey\n }, /*#__PURE__*/React.createElement(\"td\", {\n ref: cellRef,\n style: {\n padding: 0,\n border: 0,\n height: 0\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: {\n height: 0,\n overflow: 'hidden'\n }\n }, \"\\xA0\")));\n}","import * as React from 'react';\nimport ResizeObserver from 'rc-resize-observer';\nimport MeasureCell from \"./MeasureCell\";\nexport default function MeasureRow(_ref) {\n var prefixCls = _ref.prefixCls,\n columnsKey = _ref.columnsKey,\n onColumnResize = _ref.onColumnResize;\n return /*#__PURE__*/React.createElement(\"tr\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-measure-row\"),\n style: {\n height: 0,\n fontSize: 0\n }\n }, /*#__PURE__*/React.createElement(ResizeObserver.Collection, {\n onBatchResize: function onBatchResize(infoList) {\n infoList.forEach(function (_ref2) {\n var columnKey = _ref2.data,\n size = _ref2.size;\n onColumnResize(columnKey, size.offsetWidth);\n });\n }\n }, columnsKey.map(function (columnKey) {\n return /*#__PURE__*/React.createElement(MeasureCell, {\n key: columnKey,\n columnKey: columnKey,\n onColumnResize: onColumnResize\n });\n })));\n}","import { useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport PerfContext from \"../context/PerfContext\";\nimport TableContext, { responseImmutable } from \"../context/TableContext\";\nimport useFlattenRecords from \"../hooks/useFlattenRecords\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport { getColumnsKey } from \"../utils/valueUtil\";\nimport BodyRow from \"./BodyRow\";\nimport ExpandedRow from \"./ExpandedRow\";\nimport MeasureRow from \"./MeasureRow\";\nfunction Body(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var data = props.data,\n measureColumnWidth = props.measureColumnWidth;\n var _useContext = useContext(TableContext, ['prefixCls', 'getComponent', 'onColumnResize', 'flattenColumns', 'getRowKey', 'expandedKeys', 'childrenColumnName', 'emptyNode']),\n prefixCls = _useContext.prefixCls,\n getComponent = _useContext.getComponent,\n onColumnResize = _useContext.onColumnResize,\n flattenColumns = _useContext.flattenColumns,\n getRowKey = _useContext.getRowKey,\n expandedKeys = _useContext.expandedKeys,\n childrenColumnName = _useContext.childrenColumnName,\n emptyNode = _useContext.emptyNode;\n var flattenData = useFlattenRecords(data, childrenColumnName, expandedKeys, getRowKey);\n\n // =================== Performance ====================\n var perfRef = React.useRef({\n renderWithProps: false\n });\n\n // ====================== Render ======================\n var WrapperComponent = getComponent(['body', 'wrapper'], 'tbody');\n var trComponent = getComponent(['body', 'row'], 'tr');\n var tdComponent = getComponent(['body', 'cell'], 'td');\n var thComponent = getComponent(['body', 'cell'], 'th');\n var rows;\n if (data.length) {\n rows = flattenData.map(function (item, idx) {\n var record = item.record,\n indent = item.indent,\n renderIndex = item.index;\n var key = getRowKey(record, idx);\n return /*#__PURE__*/React.createElement(BodyRow, {\n key: key,\n rowKey: key,\n record: record,\n index: idx,\n renderIndex: renderIndex,\n rowComponent: trComponent,\n cellComponent: tdComponent,\n scopeCellComponent: thComponent,\n indent: indent\n });\n });\n } else {\n rows = /*#__PURE__*/React.createElement(ExpandedRow, {\n expanded: true,\n className: \"\".concat(prefixCls, \"-placeholder\"),\n prefixCls: prefixCls,\n component: trComponent,\n cellComponent: tdComponent,\n colSpan: flattenColumns.length,\n isEmpty: true\n }, emptyNode);\n }\n var columnsKey = getColumnsKey(flattenColumns);\n return /*#__PURE__*/React.createElement(PerfContext.Provider, {\n value: perfRef.current\n }, /*#__PURE__*/React.createElement(WrapperComponent, {\n className: \"\".concat(prefixCls, \"-tbody\")\n }, measureColumnWidth && /*#__PURE__*/React.createElement(MeasureRow, {\n prefixCls: prefixCls,\n columnsKey: columnsKey,\n onColumnResize: onColumnResize\n }), rows));\n}\nif (process.env.NODE_ENV !== 'production') {\n Body.displayName = 'Body';\n}\nexport default responseImmutable(Body);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"expandable\"];\nimport warning from \"rc-util/es/warning\";\nexport var INTERNAL_COL_DEFINE = 'RC_TABLE_INTERNAL_COL_DEFINE';\nexport function getExpandableProps(props) {\n var expandable = props.expandable,\n legacyExpandableConfig = _objectWithoutProperties(props, _excluded);\n var config;\n if ('expandable' in props) {\n config = _objectSpread(_objectSpread({}, legacyExpandableConfig), expandable);\n } else {\n if (process.env.NODE_ENV !== 'production' && ['indentSize', 'expandedRowKeys', 'defaultExpandedRowKeys', 'defaultExpandAllRows', 'expandedRowRender', 'expandRowByClick', 'expandIcon', 'onExpand', 'onExpandedRowsChange', 'expandedRowClassName', 'expandIconColumnIndex', 'showExpandColumn', 'title'].some(function (prop) {\n return prop in props;\n })) {\n warning(false, 'expanded related props have been moved into `expandable`.');\n }\n config = legacyExpandableConfig;\n }\n if (config.showExpandColumn === false) {\n config.expandIconColumnIndex = -1;\n }\n return config;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"columnType\"];\nimport * as React from 'react';\nimport { INTERNAL_COL_DEFINE } from \"./utils/legacyUtil\";\nimport { useContext } from '@rc-component/context';\nimport TableContext from \"./context/TableContext\";\nfunction ColGroup(_ref) {\n var colWidths = _ref.colWidths,\n columns = _ref.columns,\n columCount = _ref.columCount;\n var _useContext = useContext(TableContext, ['tableLayout']),\n tableLayout = _useContext.tableLayout;\n var cols = [];\n var len = columCount || columns.length;\n\n // Only insert col with width & additional props\n // Skip if rest col do not have any useful info\n var mustInsert = false;\n for (var i = len - 1; i >= 0; i -= 1) {\n var width = colWidths[i];\n var column = columns && columns[i];\n var additionalProps = void 0;\n var minWidth = void 0;\n if (column) {\n additionalProps = column[INTERNAL_COL_DEFINE];\n\n // fixed will cause layout problems\n if (tableLayout === 'auto') {\n minWidth = column.minWidth;\n }\n }\n if (width || minWidth || additionalProps || mustInsert) {\n var _ref2 = additionalProps || {},\n columnType = _ref2.columnType,\n restAdditionalProps = _objectWithoutProperties(_ref2, _excluded);\n cols.unshift( /*#__PURE__*/React.createElement(\"col\", _extends({\n key: i,\n style: {\n width: width,\n minWidth: minWidth\n }\n }, restAdditionalProps)));\n mustInsert = true;\n }\n }\n return /*#__PURE__*/React.createElement(\"colgroup\", null, cols);\n}\nexport default ColGroup;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"noData\", \"columns\", \"flattenColumns\", \"colWidths\", \"columCount\", \"stickyOffsets\", \"direction\", \"fixHeader\", \"stickyTopOffset\", \"stickyBottomOffset\", \"stickyClassName\", \"onScroll\", \"maxContentScroll\", \"children\"];\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport { fillRef } from \"rc-util/es/ref\";\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport ColGroup from \"../ColGroup\";\nimport TableContext from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nfunction useColumnWidth(colWidths, columCount) {\n return useMemo(function () {\n var cloneColumns = [];\n for (var i = 0; i < columCount; i += 1) {\n var val = colWidths[i];\n if (val !== undefined) {\n cloneColumns[i] = val;\n } else {\n return null;\n }\n }\n return cloneColumns;\n }, [colWidths.join('_'), columCount]);\n}\nvar FixedHolder = /*#__PURE__*/React.forwardRef(function (props, ref) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var className = props.className,\n noData = props.noData,\n columns = props.columns,\n flattenColumns = props.flattenColumns,\n colWidths = props.colWidths,\n columCount = props.columCount,\n stickyOffsets = props.stickyOffsets,\n direction = props.direction,\n fixHeader = props.fixHeader,\n stickyTopOffset = props.stickyTopOffset,\n stickyBottomOffset = props.stickyBottomOffset,\n stickyClassName = props.stickyClassName,\n onScroll = props.onScroll,\n maxContentScroll = props.maxContentScroll,\n children = props.children,\n restProps = _objectWithoutProperties(props, _excluded);\n var _useContext = useContext(TableContext, ['prefixCls', 'scrollbarSize', 'isSticky', 'getComponent']),\n prefixCls = _useContext.prefixCls,\n scrollbarSize = _useContext.scrollbarSize,\n isSticky = _useContext.isSticky,\n getComponent = _useContext.getComponent;\n var TableComponent = getComponent(['header', 'table'], 'table');\n var combinationScrollBarSize = isSticky && !fixHeader ? 0 : scrollbarSize;\n\n // Pass wheel to scroll event\n var scrollRef = React.useRef(null);\n var setScrollRef = React.useCallback(function (element) {\n fillRef(ref, element);\n fillRef(scrollRef, element);\n }, []);\n React.useEffect(function () {\n var _scrollRef$current;\n function onWheel(e) {\n var _ref = e,\n currentTarget = _ref.currentTarget,\n deltaX = _ref.deltaX;\n if (deltaX) {\n onScroll({\n currentTarget: currentTarget,\n scrollLeft: currentTarget.scrollLeft + deltaX\n });\n e.preventDefault();\n }\n }\n (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 || _scrollRef$current.addEventListener('wheel', onWheel, {\n passive: false\n });\n return function () {\n var _scrollRef$current2;\n (_scrollRef$current2 = scrollRef.current) === null || _scrollRef$current2 === void 0 || _scrollRef$current2.removeEventListener('wheel', onWheel);\n };\n }, []);\n\n // Check if all flattenColumns has width\n var allFlattenColumnsWithWidth = React.useMemo(function () {\n return flattenColumns.every(function (column) {\n return column.width;\n });\n }, [flattenColumns]);\n\n // Add scrollbar column\n var lastColumn = flattenColumns[flattenColumns.length - 1];\n var ScrollBarColumn = {\n fixed: lastColumn ? lastColumn.fixed : null,\n scrollbar: true,\n onHeaderCell: function onHeaderCell() {\n return {\n className: \"\".concat(prefixCls, \"-cell-scrollbar\")\n };\n }\n };\n var columnsWithScrollbar = useMemo(function () {\n return combinationScrollBarSize ? [].concat(_toConsumableArray(columns), [ScrollBarColumn]) : columns;\n }, [combinationScrollBarSize, columns]);\n var flattenColumnsWithScrollbar = useMemo(function () {\n return combinationScrollBarSize ? [].concat(_toConsumableArray(flattenColumns), [ScrollBarColumn]) : flattenColumns;\n }, [combinationScrollBarSize, flattenColumns]);\n\n // Calculate the sticky offsets\n var headerStickyOffsets = useMemo(function () {\n var right = stickyOffsets.right,\n left = stickyOffsets.left;\n return _objectSpread(_objectSpread({}, stickyOffsets), {}, {\n left: direction === 'rtl' ? [].concat(_toConsumableArray(left.map(function (width) {\n return width + combinationScrollBarSize;\n })), [0]) : left,\n right: direction === 'rtl' ? right : [].concat(_toConsumableArray(right.map(function (width) {\n return width + combinationScrollBarSize;\n })), [0]),\n isSticky: isSticky\n });\n }, [combinationScrollBarSize, stickyOffsets, isSticky]);\n var mergedColumnWidth = useColumnWidth(colWidths, columCount);\n return /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread({\n overflow: 'hidden'\n }, isSticky ? {\n top: stickyTopOffset,\n bottom: stickyBottomOffset\n } : {}),\n ref: setScrollRef,\n className: classNames(className, _defineProperty({}, stickyClassName, !!stickyClassName))\n }, /*#__PURE__*/React.createElement(TableComponent, {\n style: {\n tableLayout: 'fixed',\n visibility: noData || mergedColumnWidth ? null : 'hidden'\n }\n }, (!noData || !maxContentScroll || allFlattenColumnsWithWidth) && /*#__PURE__*/React.createElement(ColGroup, {\n colWidths: mergedColumnWidth ? [].concat(_toConsumableArray(mergedColumnWidth), [combinationScrollBarSize]) : [],\n columCount: columCount + 1,\n columns: flattenColumnsWithScrollbar\n }), children(_objectSpread(_objectSpread({}, restProps), {}, {\n stickyOffsets: headerStickyOffsets,\n columns: columnsWithScrollbar,\n flattenColumns: flattenColumnsWithScrollbar\n }))));\n});\nif (process.env.NODE_ENV !== 'production') {\n FixedHolder.displayName = 'FixedHolder';\n}\n\n/** Return a table in div as fixed element which contains sticky info */\n// export default responseImmutable(FixedHolder);\nexport default /*#__PURE__*/React.memo(FixedHolder);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext from \"../context/TableContext\";\nimport { useContext } from '@rc-component/context';\nimport { getCellFixedInfo } from \"../utils/fixUtil\";\nimport { getColumnsKey } from \"../utils/valueUtil\";\nvar HeaderRow = function HeaderRow(props) {\n var cells = props.cells,\n stickyOffsets = props.stickyOffsets,\n flattenColumns = props.flattenColumns,\n RowComponent = props.rowComponent,\n CellComponent = props.cellComponent,\n onHeaderRow = props.onHeaderRow,\n index = props.index;\n var _useContext = useContext(TableContext, ['prefixCls', 'direction']),\n prefixCls = _useContext.prefixCls,\n direction = _useContext.direction;\n var rowProps;\n if (onHeaderRow) {\n rowProps = onHeaderRow(cells.map(function (cell) {\n return cell.column;\n }), index);\n }\n var columnsKey = getColumnsKey(cells.map(function (cell) {\n return cell.column;\n }));\n return /*#__PURE__*/React.createElement(RowComponent, rowProps, cells.map(function (cell, cellIndex) {\n var column = cell.column;\n var fixedInfo = getCellFixedInfo(cell.colStart, cell.colEnd, flattenColumns, stickyOffsets, direction);\n var additionalProps;\n if (column && column.onHeaderCell) {\n additionalProps = cell.column.onHeaderCell(column);\n }\n return /*#__PURE__*/React.createElement(Cell, _extends({}, cell, {\n scope: column.title ? cell.colSpan > 1 ? 'colgroup' : 'col' : null,\n ellipsis: column.ellipsis,\n align: column.align,\n component: CellComponent,\n prefixCls: prefixCls,\n key: columnsKey[cellIndex]\n }, fixedInfo, {\n additionalProps: additionalProps,\n rowType: \"header\"\n }));\n }));\n};\nif (process.env.NODE_ENV !== 'production') {\n HeaderRow.displayName = 'HeaderRow';\n}\nexport default HeaderRow;","import { useContext } from '@rc-component/context';\nimport * as React from 'react';\nimport TableContext, { responseImmutable } from \"../context/TableContext\";\nimport devRenderTimes from \"../hooks/useRenderTimes\";\nimport HeaderRow from \"./HeaderRow\";\nfunction parseHeaderRows(rootColumns) {\n var rows = [];\n function fillRowCells(columns, colIndex) {\n var rowIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n // Init rows\n rows[rowIndex] = rows[rowIndex] || [];\n var currentColIndex = colIndex;\n var colSpans = columns.filter(Boolean).map(function (column) {\n var cell = {\n key: column.key,\n className: column.className || '',\n children: column.title,\n column: column,\n colStart: currentColIndex\n };\n var colSpan = 1;\n var subColumns = column.children;\n if (subColumns && subColumns.length > 0) {\n colSpan = fillRowCells(subColumns, currentColIndex, rowIndex + 1).reduce(function (total, count) {\n return total + count;\n }, 0);\n cell.hasSubColumns = true;\n }\n if ('colSpan' in column) {\n colSpan = column.colSpan;\n }\n if ('rowSpan' in column) {\n cell.rowSpan = column.rowSpan;\n }\n cell.colSpan = colSpan;\n cell.colEnd = cell.colStart + colSpan - 1;\n rows[rowIndex].push(cell);\n currentColIndex += colSpan;\n return colSpan;\n });\n return colSpans;\n }\n\n // Generate `rows` cell data\n fillRowCells(rootColumns, 0);\n\n // Handle `rowSpan`\n var rowCount = rows.length;\n var _loop = function _loop(rowIndex) {\n rows[rowIndex].forEach(function (cell) {\n if (!('rowSpan' in cell) && !cell.hasSubColumns) {\n // eslint-disable-next-line no-param-reassign\n cell.rowSpan = rowCount - rowIndex;\n }\n });\n };\n for (var rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\n _loop(rowIndex);\n }\n return rows;\n}\nvar Header = function Header(props) {\n if (process.env.NODE_ENV !== 'production') {\n devRenderTimes(props);\n }\n var stickyOffsets = props.stickyOffsets,\n columns = props.columns,\n flattenColumns = props.flattenColumns,\n onHeaderRow = props.onHeaderRow;\n var _useContext = useContext(TableContext, ['prefixCls', 'getComponent']),\n prefixCls = _useContext.prefixCls,\n getComponent = _useContext.getComponent;\n var rows = React.useMemo(function () {\n return parseHeaderRows(columns);\n }, [columns]);\n var WrapperComponent = getComponent(['header', 'wrapper'], 'thead');\n var trComponent = getComponent(['header', 'row'], 'tr');\n var thComponent = getComponent(['header', 'cell'], 'th');\n return /*#__PURE__*/React.createElement(WrapperComponent, {\n className: \"\".concat(prefixCls, \"-thead\")\n }, rows.map(function (row, rowIndex) {\n var rowNode = /*#__PURE__*/React.createElement(HeaderRow, {\n key: rowIndex,\n flattenColumns: flattenColumns,\n cells: row,\n stickyOffsets: stickyOffsets,\n rowComponent: trComponent,\n cellComponent: thComponent,\n onHeaderRow: onHeaderRow,\n index: rowIndex\n });\n return rowNode;\n }));\n};\nexport default responseImmutable(Header);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nfunction parseColWidth(totalWidth) {\n var width = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n if (typeof width === 'number') {\n return width;\n }\n if (width.endsWith('%')) {\n return totalWidth * parseFloat(width) / 100;\n }\n return null;\n}\n\n/**\n * Fill all column with width\n */\nexport default function useWidthColumns(flattenColumns, scrollWidth, clientWidth) {\n return React.useMemo(function () {\n // Fill width if needed\n if (scrollWidth && scrollWidth > 0) {\n var totalWidth = 0;\n var missWidthCount = 0;\n\n // collect not given width column\n flattenColumns.forEach(function (col) {\n var colWidth = parseColWidth(scrollWidth, col.width);\n if (colWidth) {\n totalWidth += colWidth;\n } else {\n missWidthCount += 1;\n }\n });\n\n // Fill width\n var maxFitWidth = Math.max(scrollWidth, clientWidth);\n var restWidth = Math.max(maxFitWidth - totalWidth, missWidthCount);\n var restCount = missWidthCount;\n var avgWidth = restWidth / missWidthCount;\n var realTotal = 0;\n var filledColumns = flattenColumns.map(function (col) {\n var clone = _objectSpread({}, col);\n var colWidth = parseColWidth(scrollWidth, clone.width);\n if (colWidth) {\n clone.width = colWidth;\n } else {\n var colAvgWidth = Math.floor(avgWidth);\n clone.width = restCount === 1 ? restWidth : colAvgWidth;\n restWidth -= colAvgWidth;\n restCount -= 1;\n }\n realTotal += clone.width;\n return clone;\n });\n\n // If realTotal is less than clientWidth,\n // We need extend column width\n if (realTotal < maxFitWidth) {\n var scale = maxFitWidth / realTotal;\n restWidth = maxFitWidth;\n filledColumns.forEach(function (col, index) {\n var colWidth = Math.floor(col.width * scale);\n col.width = index === filledColumns.length - 1 ? restWidth : colWidth;\n restWidth -= colWidth;\n });\n }\n return [filledColumns, Math.max(realTotal, maxFitWidth)];\n }\n return [flattenColumns, scrollWidth];\n }, [flattenColumns, scrollWidth, clientWidth]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"],\n _excluded2 = [\"fixed\"];\nimport toArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { EXPAND_COLUMN } from \"../../constant\";\nimport { INTERNAL_COL_DEFINE } from \"../../utils/legacyUtil\";\nimport useWidthColumns from \"./useWidthColumns\";\nexport function convertChildrenToColumns(children) {\n return toArray(children).filter(function (node) {\n return /*#__PURE__*/React.isValidElement(node);\n }).map(function (_ref) {\n var key = _ref.key,\n props = _ref.props;\n var nodeChildren = props.children,\n restProps = _objectWithoutProperties(props, _excluded);\n var column = _objectSpread({\n key: key\n }, restProps);\n if (nodeChildren) {\n column.children = convertChildrenToColumns(nodeChildren);\n }\n return column;\n });\n}\nfunction filterHiddenColumns(columns) {\n return columns.filter(function (column) {\n return column && _typeof(column) === 'object' && !column.hidden;\n }).map(function (column) {\n var subColumns = column.children;\n if (subColumns && subColumns.length > 0) {\n return _objectSpread(_objectSpread({}, column), {}, {\n children: filterHiddenColumns(subColumns)\n });\n }\n return column;\n });\n}\nfunction flatColumns(columns) {\n var parentKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key';\n return columns.filter(function (column) {\n return column && _typeof(column) === 'object';\n }).reduce(function (list, column, index) {\n var fixed = column.fixed;\n // Convert `fixed='true'` to `fixed='left'` instead\n var parsedFixed = fixed === true ? 'left' : fixed;\n var mergedKey = \"\".concat(parentKey, \"-\").concat(index);\n var subColumns = column.children;\n if (subColumns && subColumns.length > 0) {\n return [].concat(_toConsumableArray(list), _toConsumableArray(flatColumns(subColumns, mergedKey).map(function (subColum) {\n return _objectSpread({\n fixed: parsedFixed\n }, subColum);\n })));\n }\n return [].concat(_toConsumableArray(list), [_objectSpread(_objectSpread({\n key: mergedKey\n }, column), {}, {\n fixed: parsedFixed\n })]);\n }, []);\n}\nfunction revertForRtl(columns) {\n return columns.map(function (column) {\n var fixed = column.fixed,\n restProps = _objectWithoutProperties(column, _excluded2);\n\n // Convert `fixed='left'` to `fixed='right'` instead\n var parsedFixed = fixed;\n if (fixed === 'left') {\n parsedFixed = 'right';\n } else if (fixed === 'right') {\n parsedFixed = 'left';\n }\n return _objectSpread({\n fixed: parsedFixed\n }, restProps);\n });\n}\n\n/**\n * Parse `columns` & `children` into `columns`.\n */\nfunction useColumns(_ref2, transformColumns) {\n var prefixCls = _ref2.prefixCls,\n columns = _ref2.columns,\n children = _ref2.children,\n expandable = _ref2.expandable,\n expandedKeys = _ref2.expandedKeys,\n columnTitle = _ref2.columnTitle,\n getRowKey = _ref2.getRowKey,\n onTriggerExpand = _ref2.onTriggerExpand,\n expandIcon = _ref2.expandIcon,\n rowExpandable = _ref2.rowExpandable,\n expandIconColumnIndex = _ref2.expandIconColumnIndex,\n direction = _ref2.direction,\n expandRowByClick = _ref2.expandRowByClick,\n columnWidth = _ref2.columnWidth,\n fixed = _ref2.fixed,\n scrollWidth = _ref2.scrollWidth,\n clientWidth = _ref2.clientWidth;\n var baseColumns = React.useMemo(function () {\n var newColumns = columns || convertChildrenToColumns(children) || [];\n return filterHiddenColumns(newColumns.slice());\n }, [columns, children]);\n\n // ========================== Expand ==========================\n var withExpandColumns = React.useMemo(function () {\n if (expandable) {\n var cloneColumns = baseColumns.slice();\n\n // >>> Warning if use `expandIconColumnIndex`\n if (process.env.NODE_ENV !== 'production' && expandIconColumnIndex >= 0) {\n warning(false, '`expandIconColumnIndex` is deprecated. Please use `Table.EXPAND_COLUMN` in `columns` instead.');\n }\n\n // >>> Insert expand column if not exist\n if (!cloneColumns.includes(EXPAND_COLUMN)) {\n var expandColIndex = expandIconColumnIndex || 0;\n if (expandColIndex >= 0 && (expandColIndex || fixed === 'left' || !fixed)) {\n cloneColumns.splice(expandColIndex, 0, EXPAND_COLUMN);\n }\n if (fixed === 'right') {\n cloneColumns.splice(baseColumns.length, 0, EXPAND_COLUMN);\n }\n }\n\n // >>> Deduplicate additional expand column\n if (process.env.NODE_ENV !== 'production' && cloneColumns.filter(function (c) {\n return c === EXPAND_COLUMN;\n }).length > 1) {\n warning(false, 'There exist more than one `EXPAND_COLUMN` in `columns`.');\n }\n var expandColumnIndex = cloneColumns.indexOf(EXPAND_COLUMN);\n cloneColumns = cloneColumns.filter(function (column, index) {\n return column !== EXPAND_COLUMN || index === expandColumnIndex;\n });\n\n // >>> Check if expand column need to fixed\n var prevColumn = baseColumns[expandColumnIndex];\n var fixedColumn;\n if (fixed) {\n fixedColumn = fixed;\n } else {\n fixedColumn = prevColumn ? prevColumn.fixed : null;\n }\n\n // >>> Create expandable column\n var expandColumn = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, INTERNAL_COL_DEFINE, {\n className: \"\".concat(prefixCls, \"-expand-icon-col\"),\n columnType: 'EXPAND_COLUMN'\n }), \"title\", columnTitle), \"fixed\", fixedColumn), \"className\", \"\".concat(prefixCls, \"-row-expand-icon-cell\")), \"width\", columnWidth), \"render\", function render(_, record, index) {\n var rowKey = getRowKey(record, index);\n var expanded = expandedKeys.has(rowKey);\n var recordExpandable = rowExpandable ? rowExpandable(record) : true;\n var icon = expandIcon({\n prefixCls: prefixCls,\n expanded: expanded,\n expandable: recordExpandable,\n record: record,\n onExpand: onTriggerExpand\n });\n if (expandRowByClick) {\n return /*#__PURE__*/React.createElement(\"span\", {\n onClick: function onClick(e) {\n return e.stopPropagation();\n }\n }, icon);\n }\n return icon;\n });\n return cloneColumns.map(function (col) {\n return col === EXPAND_COLUMN ? expandColumn : col;\n });\n }\n if (process.env.NODE_ENV !== 'production' && baseColumns.includes(EXPAND_COLUMN)) {\n warning(false, '`expandable` is not config but there exist `EXPAND_COLUMN` in `columns`.');\n }\n return baseColumns.filter(function (col) {\n return col !== EXPAND_COLUMN;\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [expandable, baseColumns, getRowKey, expandedKeys, expandIcon, direction]);\n\n // ========================= Transform ========================\n var mergedColumns = React.useMemo(function () {\n var finalColumns = withExpandColumns;\n if (transformColumns) {\n finalColumns = transformColumns(finalColumns);\n }\n\n // Always provides at least one column for table display\n if (!finalColumns.length) {\n finalColumns = [{\n render: function render() {\n return null;\n }\n }];\n }\n return finalColumns;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [transformColumns, withExpandColumns, direction]);\n\n // ========================== Flatten =========================\n var flattenColumns = React.useMemo(function () {\n if (direction === 'rtl') {\n return revertForRtl(flatColumns(mergedColumns));\n }\n return flatColumns(mergedColumns);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mergedColumns, direction, scrollWidth]);\n\n // ========================= Gap Fixed ========================\n var hasGapFixed = React.useMemo(function () {\n // Fixed: left, since old browser not support `findLastIndex`, we should use reverse loop\n var lastLeftIndex = -1;\n for (var i = flattenColumns.length - 1; i >= 0; i -= 1) {\n var colFixed = flattenColumns[i].fixed;\n if (colFixed === 'left' || colFixed === true) {\n lastLeftIndex = i;\n break;\n }\n }\n if (lastLeftIndex >= 0) {\n for (var _i = 0; _i <= lastLeftIndex; _i += 1) {\n var _colFixed = flattenColumns[_i].fixed;\n if (_colFixed !== 'left' && _colFixed !== true) {\n return true;\n }\n }\n }\n\n // Fixed: right\n var firstRightIndex = flattenColumns.findIndex(function (_ref3) {\n var colFixed = _ref3.fixed;\n return colFixed === 'right';\n });\n if (firstRightIndex >= 0) {\n for (var _i2 = firstRightIndex; _i2 < flattenColumns.length; _i2 += 1) {\n var _colFixed2 = flattenColumns[_i2].fixed;\n if (_colFixed2 !== 'right') {\n return true;\n }\n }\n }\n return false;\n }, [flattenColumns]);\n\n // ========================= FillWidth ========================\n var _useWidthColumns = useWidthColumns(flattenColumns, scrollWidth, clientWidth),\n _useWidthColumns2 = _slicedToArray(_useWidthColumns, 2),\n filledColumns = _useWidthColumns2[0],\n realScrollWidth = _useWidthColumns2[1];\n return [mergedColumns, filledColumns, realScrollWidth, hasGapFixed];\n}\nexport default useColumns;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { INTERNAL_HOOKS } from \"../constant\";\nimport { findAllChildrenKeys, renderExpandIcon } from \"../utils/expandUtil\";\nimport { getExpandableProps } from \"../utils/legacyUtil\";\nexport default function useExpand(props, mergedData, getRowKey) {\n var expandableConfig = getExpandableProps(props);\n var expandIcon = expandableConfig.expandIcon,\n expandedRowKeys = expandableConfig.expandedRowKeys,\n defaultExpandedRowKeys = expandableConfig.defaultExpandedRowKeys,\n defaultExpandAllRows = expandableConfig.defaultExpandAllRows,\n expandedRowRender = expandableConfig.expandedRowRender,\n onExpand = expandableConfig.onExpand,\n onExpandedRowsChange = expandableConfig.onExpandedRowsChange,\n childrenColumnName = expandableConfig.childrenColumnName;\n var mergedExpandIcon = expandIcon || renderExpandIcon;\n var mergedChildrenColumnName = childrenColumnName || 'children';\n var expandableType = React.useMemo(function () {\n if (expandedRowRender) {\n return 'row';\n }\n /* eslint-disable no-underscore-dangle */\n /**\n * Fix https://github.com/ant-design/ant-design/issues/21154\n * This is a workaround to not to break current behavior.\n * We can remove follow code after final release.\n *\n * To other developer:\n * Do not use `__PARENT_RENDER_ICON__` in prod since we will remove this when refactor\n */\n if (props.expandable && props.internalHooks === INTERNAL_HOOKS && props.expandable.__PARENT_RENDER_ICON__ || mergedData.some(function (record) {\n return record && _typeof(record) === 'object' && record[mergedChildrenColumnName];\n })) {\n return 'nest';\n }\n /* eslint-enable */\n return false;\n }, [!!expandedRowRender, mergedData]);\n var _React$useState = React.useState(function () {\n if (defaultExpandedRowKeys) {\n return defaultExpandedRowKeys;\n }\n if (defaultExpandAllRows) {\n return findAllChildrenKeys(mergedData, getRowKey, mergedChildrenColumnName);\n }\n return [];\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerExpandedKeys = _React$useState2[0],\n setInnerExpandedKeys = _React$useState2[1];\n var mergedExpandedKeys = React.useMemo(function () {\n return new Set(expandedRowKeys || innerExpandedKeys || []);\n }, [expandedRowKeys, innerExpandedKeys]);\n var onTriggerExpand = React.useCallback(function (record) {\n var key = getRowKey(record, mergedData.indexOf(record));\n var newExpandedKeys;\n var hasKey = mergedExpandedKeys.has(key);\n if (hasKey) {\n mergedExpandedKeys.delete(key);\n newExpandedKeys = _toConsumableArray(mergedExpandedKeys);\n } else {\n newExpandedKeys = [].concat(_toConsumableArray(mergedExpandedKeys), [key]);\n }\n setInnerExpandedKeys(newExpandedKeys);\n if (onExpand) {\n onExpand(!hasKey, record);\n }\n if (onExpandedRowsChange) {\n onExpandedRowsChange(newExpandedKeys);\n }\n }, [getRowKey, mergedExpandedKeys, mergedData, onExpand, onExpandedRowsChange]);\n\n // Warning if use `expandedRowRender` and nest children in the same time\n if (process.env.NODE_ENV !== 'production' && expandedRowRender && mergedData.some(function (record) {\n return Array.isArray(record === null || record === void 0 ? void 0 : record[mergedChildrenColumnName]);\n })) {\n warning(false, '`expandedRowRender` should not use with nested Table');\n }\n return [expandableConfig, expandableType, mergedExpandedKeys, mergedExpandIcon, mergedChildrenColumnName, onTriggerExpand];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useRef, useState, useEffect } from 'react';\n/**\n * Execute code before next frame but async\n */\nexport function useLayoutState(defaultState) {\n var stateRef = useRef(defaultState);\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n forceUpdate = _useState2[1];\n var lastPromiseRef = useRef(null);\n var updateBatchRef = useRef([]);\n function setFrameState(updater) {\n updateBatchRef.current.push(updater);\n var promise = Promise.resolve();\n lastPromiseRef.current = promise;\n promise.then(function () {\n if (lastPromiseRef.current === promise) {\n var prevBatch = updateBatchRef.current;\n var prevState = stateRef.current;\n updateBatchRef.current = [];\n prevBatch.forEach(function (batchUpdater) {\n stateRef.current = batchUpdater(stateRef.current);\n });\n lastPromiseRef.current = null;\n if (prevState !== stateRef.current) {\n forceUpdate({});\n }\n }\n });\n }\n useEffect(function () {\n return function () {\n lastPromiseRef.current = null;\n };\n }, []);\n return [stateRef.current, setFrameState];\n}\n\n/** Lock frame, when frame pass reset the lock. */\nexport function useTimeoutLock(defaultState) {\n var frameRef = useRef(defaultState || null);\n var timeoutRef = useRef();\n function cleanUp() {\n window.clearTimeout(timeoutRef.current);\n }\n function setState(newState) {\n frameRef.current = newState;\n cleanUp();\n timeoutRef.current = window.setTimeout(function () {\n frameRef.current = null;\n timeoutRef.current = undefined;\n }, 100);\n }\n function getState() {\n return frameRef.current;\n }\n useEffect(function () {\n return cleanUp;\n }, []);\n return [setState, getState];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\n// fix ssr render\nvar defaultContainer = canUseDom() ? window : null;\n\n/** Sticky header hooks */\nexport default function useSticky(sticky, prefixCls) {\n var _ref = _typeof(sticky) === 'object' ? sticky : {},\n _ref$offsetHeader = _ref.offsetHeader,\n offsetHeader = _ref$offsetHeader === void 0 ? 0 : _ref$offsetHeader,\n _ref$offsetSummary = _ref.offsetSummary,\n offsetSummary = _ref$offsetSummary === void 0 ? 0 : _ref$offsetSummary,\n _ref$offsetScroll = _ref.offsetScroll,\n offsetScroll = _ref$offsetScroll === void 0 ? 0 : _ref$offsetScroll,\n _ref$getContainer = _ref.getContainer,\n getContainer = _ref$getContainer === void 0 ? function () {\n return defaultContainer;\n } : _ref$getContainer;\n var container = getContainer() || defaultContainer;\n var isSticky = !!sticky;\n return React.useMemo(function () {\n return {\n isSticky: isSticky,\n stickyClassName: isSticky ? \"\".concat(prefixCls, \"-sticky-holder\") : '',\n offsetHeader: offsetHeader,\n offsetSummary: offsetSummary,\n offsetScroll: offsetScroll,\n container: container\n };\n }, [isSticky, offsetScroll, offsetHeader, offsetSummary, prefixCls, container]);\n}","import { useMemo } from 'react';\n/**\n * Get sticky column offset width\n */\nfunction useStickyOffsets(colWidths, flattenColumns, direction) {\n var stickyOffsets = useMemo(function () {\n var columnCount = flattenColumns.length;\n var getOffsets = function getOffsets(startIndex, endIndex, offset) {\n var offsets = [];\n var total = 0;\n for (var i = startIndex; i !== endIndex; i += offset) {\n offsets.push(total);\n if (flattenColumns[i].fixed) {\n total += colWidths[i] || 0;\n }\n }\n return offsets;\n };\n var startOffsets = getOffsets(0, columnCount, 1);\n var endOffsets = getOffsets(columnCount - 1, -1, -1).reverse();\n return direction === 'rtl' ? {\n left: endOffsets,\n right: startOffsets\n } : {\n left: startOffsets,\n right: endOffsets\n };\n }, [colWidths, flattenColumns, direction]);\n return stickyOffsets;\n}\nexport default useStickyOffsets;","import * as React from 'react';\nfunction Panel(_ref) {\n var className = _ref.className,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className\n }, children);\n}\nexport default Panel;","import ReactDOM from 'react-dom';\nexport default function addEventListenerWrap(target, eventType, cb, option) {\n /* eslint camelcase: 2 */\n var callback = ReactDOM.unstable_batchedUpdates ? function run(e) {\n ReactDOM.unstable_batchedUpdates(cb, e);\n } : cb;\n if (target !== null && target !== void 0 && target.addEventListener) {\n target.addEventListener(eventType, callback, option);\n }\n return {\n remove: function remove() {\n if (target !== null && target !== void 0 && target.removeEventListener) {\n target.removeEventListener(eventType, callback, option);\n }\n }\n };\n}","import { getDOM } from \"rc-util/es/Dom/findDOMNode\";\n\n// Copy from `rc-util/Dom/css.js`\nexport function getOffset(node) {\n var element = getDOM(node);\n var box = element.getBoundingClientRect();\n var docElem = document.documentElement;\n\n // < ie8 not support win.pageXOffset, use docElem.scrollLeft instead\n return {\n left: box.left + (window.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || document.body.clientLeft || 0),\n top: box.top + (window.pageYOffset || docElem.scrollTop) - (docElem.clientTop || document.body.clientTop || 0)\n };\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport getScrollBarSize from \"rc-util/es/getScrollBarSize\";\nimport * as React from 'react';\nimport TableContext from \"./context/TableContext\";\nimport { useLayoutState } from \"./hooks/useFrame\";\nimport raf from \"rc-util/es/raf\";\nimport { getOffset } from \"./utils/offsetUtil\";\nvar StickyScrollBar = function StickyScrollBar(_ref, ref) {\n var _scrollBodyRef$curren, _scrollBodyRef$curren2;\n var scrollBodyRef = _ref.scrollBodyRef,\n onScroll = _ref.onScroll,\n offsetScroll = _ref.offsetScroll,\n container = _ref.container,\n direction = _ref.direction;\n var prefixCls = useContext(TableContext, 'prefixCls');\n var bodyScrollWidth = ((_scrollBodyRef$curren = scrollBodyRef.current) === null || _scrollBodyRef$curren === void 0 ? void 0 : _scrollBodyRef$curren.scrollWidth) || 0;\n var bodyWidth = ((_scrollBodyRef$curren2 = scrollBodyRef.current) === null || _scrollBodyRef$curren2 === void 0 ? void 0 : _scrollBodyRef$curren2.clientWidth) || 0;\n var scrollBarWidth = bodyScrollWidth && bodyWidth * (bodyWidth / bodyScrollWidth);\n var scrollBarRef = React.useRef();\n var _useLayoutState = useLayoutState({\n scrollLeft: 0,\n isHiddenScrollBar: true\n }),\n _useLayoutState2 = _slicedToArray(_useLayoutState, 2),\n scrollState = _useLayoutState2[0],\n setScrollState = _useLayoutState2[1];\n var refState = React.useRef({\n delta: 0,\n x: 0\n });\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n isActive = _React$useState2[0],\n setActive = _React$useState2[1];\n var rafRef = React.useRef(null);\n React.useEffect(function () {\n return function () {\n raf.cancel(rafRef.current);\n };\n }, []);\n var onMouseUp = function onMouseUp() {\n setActive(false);\n };\n var onMouseDown = function onMouseDown(event) {\n event.persist();\n refState.current.delta = event.pageX - scrollState.scrollLeft;\n refState.current.x = 0;\n setActive(true);\n event.preventDefault();\n };\n var onMouseMove = function onMouseMove(event) {\n var _window;\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons\n var _ref2 = event || ((_window = window) === null || _window === void 0 ? void 0 : _window.event),\n buttons = _ref2.buttons;\n if (!isActive || buttons === 0) {\n // If out body mouse up, we can set isActive false when mouse move\n if (isActive) {\n setActive(false);\n }\n return;\n }\n var left = refState.current.x + event.pageX - refState.current.x - refState.current.delta;\n var isRTL = direction === 'rtl';\n // Limit scroll range\n left = Math.max(isRTL ? scrollBarWidth - bodyWidth : 0, Math.min(isRTL ? 0 : bodyWidth - scrollBarWidth, left));\n // Calculate the scroll position and update\n var shouldScroll = !isRTL || Math.abs(left) + Math.abs(scrollBarWidth) < bodyWidth;\n if (shouldScroll) {\n onScroll({\n scrollLeft: left / bodyWidth * (bodyScrollWidth + 2)\n });\n refState.current.x = event.pageX;\n }\n };\n var checkScrollBarVisible = function checkScrollBarVisible() {\n raf.cancel(rafRef.current);\n rafRef.current = raf(function () {\n if (!scrollBodyRef.current) {\n return;\n }\n var tableOffsetTop = getOffset(scrollBodyRef.current).top;\n var tableBottomOffset = tableOffsetTop + scrollBodyRef.current.offsetHeight;\n var currentClientOffset = container === window ? document.documentElement.scrollTop + window.innerHeight : getOffset(container).top + container.clientHeight;\n if (tableBottomOffset - getScrollBarSize() <= currentClientOffset || tableOffsetTop >= currentClientOffset - offsetScroll) {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n isHiddenScrollBar: true\n });\n });\n } else {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n isHiddenScrollBar: false\n });\n });\n }\n });\n };\n var setScrollLeft = function setScrollLeft(left) {\n setScrollState(function (state) {\n return _objectSpread(_objectSpread({}, state), {}, {\n scrollLeft: left / bodyScrollWidth * bodyWidth || 0\n });\n });\n };\n React.useImperativeHandle(ref, function () {\n return {\n setScrollLeft: setScrollLeft,\n checkScrollBarVisible: checkScrollBarVisible\n };\n });\n React.useEffect(function () {\n var onMouseUpListener = addEventListener(document.body, 'mouseup', onMouseUp, false);\n var onMouseMoveListener = addEventListener(document.body, 'mousemove', onMouseMove, false);\n checkScrollBarVisible();\n return function () {\n onMouseUpListener.remove();\n onMouseMoveListener.remove();\n };\n }, [scrollBarWidth, isActive]);\n\n // Loop for scroll event check\n React.useEffect(function () {\n if (!scrollBodyRef.current) return;\n var scrollParents = [];\n var parent = scrollBodyRef.current;\n while (parent) {\n scrollParents.push(parent);\n parent = parent.parentElement;\n }\n scrollParents.forEach(function (p) {\n return p.addEventListener('scroll', checkScrollBarVisible, false);\n });\n window.addEventListener('resize', checkScrollBarVisible, false);\n window.addEventListener('scroll', checkScrollBarVisible, false);\n container.addEventListener('scroll', checkScrollBarVisible, false);\n return function () {\n scrollParents.forEach(function (p) {\n return p.removeEventListener('scroll', checkScrollBarVisible);\n });\n window.removeEventListener('resize', checkScrollBarVisible);\n window.removeEventListener('scroll', checkScrollBarVisible);\n container.removeEventListener('scroll', checkScrollBarVisible);\n };\n }, [container]);\n React.useEffect(function () {\n if (!scrollState.isHiddenScrollBar) {\n setScrollState(function (state) {\n var bodyNode = scrollBodyRef.current;\n if (!bodyNode) {\n return state;\n }\n return _objectSpread(_objectSpread({}, state), {}, {\n scrollLeft: bodyNode.scrollLeft / bodyNode.scrollWidth * bodyNode.clientWidth\n });\n });\n }\n }, [scrollState.isHiddenScrollBar]);\n if (bodyScrollWidth <= bodyWidth || !scrollBarWidth || scrollState.isHiddenScrollBar) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n height: getScrollBarSize(),\n width: bodyWidth,\n bottom: offsetScroll\n },\n className: \"\".concat(prefixCls, \"-sticky-scroll\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n onMouseDown: onMouseDown,\n ref: scrollBarRef,\n className: classNames(\"\".concat(prefixCls, \"-sticky-scroll-bar\"), _defineProperty({}, \"\".concat(prefixCls, \"-sticky-scroll-bar-active\"), isActive)),\n style: {\n width: \"\".concat(scrollBarWidth, \"px\"),\n transform: \"translate3d(\".concat(scrollState.scrollLeft, \"px, 0, 0)\")\n }\n }));\n};\nexport default /*#__PURE__*/React.forwardRef(StickyScrollBar);","/* istanbul ignore next */\n/**\n * This is a syntactic sugar for `columns` prop.\n * So HOC will not work on this.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction Column(_) {\n return null;\n}\nexport default Column;","/* istanbul ignore next */\n/**\n * This is a syntactic sugar for `columns` prop.\n * So HOC will not work on this.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction ColumnGroup(_) {\n return null;\n}\nexport default ColumnGroup;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n/**\n * Feature:\n * - fixed not need to set width\n * - support `rowExpandable` to config row expand logic\n * - add `summary` to support `() => ReactNode`\n *\n * Update:\n * - `dataIndex` is `array[]` now\n * - `expandable` wrap all the expand related props\n *\n * Removed:\n * - expandIconAsCell\n * - useFixedHeader\n * - rowRef\n * - columns[number].onCellClick\n * - onRowClick\n * - onRowDoubleClick\n * - onRowMouseEnter\n * - onRowMouseLeave\n * - getBodyWrapper\n * - bodyStyle\n *\n * Deprecated:\n * - All expanded props, move into expandable\n */\n\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport { isStyleSupport } from \"rc-util/es/Dom/styleChecker\";\nimport { getTargetScrollBarSize } from \"rc-util/es/getScrollBarSize\";\nimport useEvent from \"rc-util/es/hooks/useEvent\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport getValue from \"rc-util/es/utils/get\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport Body from \"./Body\";\nimport ColGroup from \"./ColGroup\";\nimport { EXPAND_COLUMN, INTERNAL_HOOKS } from \"./constant\";\nimport TableContext, { makeImmutable } from \"./context/TableContext\";\nimport FixedHolder from \"./FixedHolder\";\nimport Footer, { FooterComponents } from \"./Footer\";\nimport Summary from \"./Footer/Summary\";\nimport Header from \"./Header/Header\";\nimport useColumns from \"./hooks/useColumns\";\nimport useExpand from \"./hooks/useExpand\";\nimport useFixedInfo from \"./hooks/useFixedInfo\";\nimport { useLayoutState, useTimeoutLock } from \"./hooks/useFrame\";\nimport useHover from \"./hooks/useHover\";\nimport useSticky from \"./hooks/useSticky\";\nimport useStickyOffsets from \"./hooks/useStickyOffsets\";\nimport Panel from \"./Panel\";\nimport StickyScrollBar from \"./stickyScrollBar\";\nimport Column from \"./sugar/Column\";\nimport ColumnGroup from \"./sugar/ColumnGroup\";\nimport { getColumnsKey, validateValue, validNumberValue } from \"./utils/valueUtil\";\nimport { getDOM } from \"rc-util/es/Dom/findDOMNode\";\nexport var DEFAULT_PREFIX = 'rc-table';\n\n// Used for conditions cache\nvar EMPTY_DATA = [];\n\n// Used for customize scroll\nvar EMPTY_SCROLL_TARGET = {};\nfunction defaultEmpty() {\n return 'No Data';\n}\nfunction Table(tableProps, ref) {\n var props = _objectSpread({\n rowKey: 'key',\n prefixCls: DEFAULT_PREFIX,\n emptyText: defaultEmpty\n }, tableProps);\n var prefixCls = props.prefixCls,\n className = props.className,\n rowClassName = props.rowClassName,\n style = props.style,\n data = props.data,\n rowKey = props.rowKey,\n scroll = props.scroll,\n tableLayout = props.tableLayout,\n direction = props.direction,\n title = props.title,\n footer = props.footer,\n summary = props.summary,\n caption = props.caption,\n id = props.id,\n showHeader = props.showHeader,\n components = props.components,\n emptyText = props.emptyText,\n onRow = props.onRow,\n onHeaderRow = props.onHeaderRow,\n onScroll = props.onScroll,\n internalHooks = props.internalHooks,\n transformColumns = props.transformColumns,\n internalRefs = props.internalRefs,\n tailor = props.tailor,\n getContainerWidth = props.getContainerWidth,\n sticky = props.sticky,\n _props$rowHoverable = props.rowHoverable,\n rowHoverable = _props$rowHoverable === void 0 ? true : _props$rowHoverable;\n var mergedData = data || EMPTY_DATA;\n var hasData = !!mergedData.length;\n var useInternalHooks = internalHooks === INTERNAL_HOOKS;\n\n // ===================== Warning ======================\n if (process.env.NODE_ENV !== 'production') {\n ['onRowClick', 'onRowDoubleClick', 'onRowContextMenu', 'onRowMouseEnter', 'onRowMouseLeave'].forEach(function (name) {\n warning(props[name] === undefined, \"`\".concat(name, \"` is removed, please use `onRow` instead.\"));\n });\n warning(!('getBodyWrapper' in props), '`getBodyWrapper` is deprecated, please use custom `components` instead.');\n }\n\n // ==================== Customize =====================\n var getComponent = React.useCallback(function (path, defaultComponent) {\n return getValue(components, path) || defaultComponent;\n }, [components]);\n var getRowKey = React.useMemo(function () {\n if (typeof rowKey === 'function') {\n return rowKey;\n }\n return function (record) {\n var key = record && record[rowKey];\n if (process.env.NODE_ENV !== 'production') {\n warning(key !== undefined, 'Each record in table should have a unique `key` prop, or set `rowKey` to an unique primary key.');\n }\n return key;\n };\n }, [rowKey]);\n var customizeScrollBody = getComponent(['body']);\n\n // ====================== Hover =======================\n var _useHover = useHover(),\n _useHover2 = _slicedToArray(_useHover, 3),\n startRow = _useHover2[0],\n endRow = _useHover2[1],\n onHover = _useHover2[2];\n\n // ====================== Expand ======================\n var _useExpand = useExpand(props, mergedData, getRowKey),\n _useExpand2 = _slicedToArray(_useExpand, 6),\n expandableConfig = _useExpand2[0],\n expandableType = _useExpand2[1],\n mergedExpandedKeys = _useExpand2[2],\n mergedExpandIcon = _useExpand2[3],\n mergedChildrenColumnName = _useExpand2[4],\n onTriggerExpand = _useExpand2[5];\n\n // ====================== Column ======================\n var scrollX = scroll === null || scroll === void 0 ? void 0 : scroll.x;\n var _React$useState = React.useState(0),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n componentWidth = _React$useState2[0],\n setComponentWidth = _React$useState2[1];\n var _useColumns = useColumns(_objectSpread(_objectSpread(_objectSpread({}, props), expandableConfig), {}, {\n expandable: !!expandableConfig.expandedRowRender,\n columnTitle: expandableConfig.columnTitle,\n expandedKeys: mergedExpandedKeys,\n getRowKey: getRowKey,\n // https://github.com/ant-design/ant-design/issues/23894\n onTriggerExpand: onTriggerExpand,\n expandIcon: mergedExpandIcon,\n expandIconColumnIndex: expandableConfig.expandIconColumnIndex,\n direction: direction,\n scrollWidth: useInternalHooks && tailor && typeof scrollX === 'number' ? scrollX : null,\n clientWidth: componentWidth\n }), useInternalHooks ? transformColumns : null),\n _useColumns2 = _slicedToArray(_useColumns, 4),\n columns = _useColumns2[0],\n flattenColumns = _useColumns2[1],\n flattenScrollX = _useColumns2[2],\n hasGapFixed = _useColumns2[3];\n var mergedScrollX = flattenScrollX !== null && flattenScrollX !== void 0 ? flattenScrollX : scrollX;\n var columnContext = React.useMemo(function () {\n return {\n columns: columns,\n flattenColumns: flattenColumns\n };\n }, [columns, flattenColumns]);\n\n // ======================= Refs =======================\n var fullTableRef = React.useRef();\n var scrollHeaderRef = React.useRef();\n var scrollBodyRef = React.useRef();\n var scrollBodyContainerRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n return {\n nativeElement: fullTableRef.current,\n scrollTo: function scrollTo(config) {\n var _scrollBodyRef$curren3;\n if (scrollBodyRef.current instanceof HTMLElement) {\n // Native scroll\n var index = config.index,\n top = config.top,\n key = config.key;\n if (validNumberValue(top)) {\n var _scrollBodyRef$curren;\n (_scrollBodyRef$curren = scrollBodyRef.current) === null || _scrollBodyRef$curren === void 0 || _scrollBodyRef$curren.scrollTo({\n top: top\n });\n } else {\n var _scrollBodyRef$curren2;\n var mergedKey = key !== null && key !== void 0 ? key : getRowKey(mergedData[index]);\n (_scrollBodyRef$curren2 = scrollBodyRef.current.querySelector(\"[data-row-key=\\\"\".concat(mergedKey, \"\\\"]\"))) === null || _scrollBodyRef$curren2 === void 0 || _scrollBodyRef$curren2.scrollIntoView();\n }\n } else if ((_scrollBodyRef$curren3 = scrollBodyRef.current) !== null && _scrollBodyRef$curren3 !== void 0 && _scrollBodyRef$curren3.scrollTo) {\n // Pass to proxy\n scrollBodyRef.current.scrollTo(config);\n }\n }\n };\n });\n\n // ====================== Scroll ======================\n var scrollSummaryRef = React.useRef();\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n pingedLeft = _React$useState4[0],\n setPingedLeft = _React$useState4[1];\n var _React$useState5 = React.useState(false),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n pingedRight = _React$useState6[0],\n setPingedRight = _React$useState6[1];\n var _useLayoutState = useLayoutState(new Map()),\n _useLayoutState2 = _slicedToArray(_useLayoutState, 2),\n colsWidths = _useLayoutState2[0],\n updateColsWidths = _useLayoutState2[1];\n\n // Convert map to number width\n var colsKeys = getColumnsKey(flattenColumns);\n var pureColWidths = colsKeys.map(function (columnKey) {\n return colsWidths.get(columnKey);\n });\n var colWidths = React.useMemo(function () {\n return pureColWidths;\n }, [pureColWidths.join('_')]);\n var stickyOffsets = useStickyOffsets(colWidths, flattenColumns, direction);\n var fixHeader = scroll && validateValue(scroll.y);\n var horizonScroll = scroll && validateValue(mergedScrollX) || Boolean(expandableConfig.fixed);\n var fixColumn = horizonScroll && flattenColumns.some(function (_ref) {\n var fixed = _ref.fixed;\n return fixed;\n });\n\n // Sticky\n var stickyRef = React.useRef();\n var _useSticky = useSticky(sticky, prefixCls),\n isSticky = _useSticky.isSticky,\n offsetHeader = _useSticky.offsetHeader,\n offsetSummary = _useSticky.offsetSummary,\n offsetScroll = _useSticky.offsetScroll,\n stickyClassName = _useSticky.stickyClassName,\n container = _useSticky.container;\n\n // Footer (Fix footer must fixed header)\n var summaryNode = React.useMemo(function () {\n return summary === null || summary === void 0 ? void 0 : summary(mergedData);\n }, [summary, mergedData]);\n var fixFooter = (fixHeader || isSticky) && /*#__PURE__*/React.isValidElement(summaryNode) && summaryNode.type === Summary && summaryNode.props.fixed;\n\n // Scroll\n var scrollXStyle;\n var scrollYStyle;\n var scrollTableStyle;\n if (fixHeader) {\n scrollYStyle = {\n overflowY: hasData ? 'scroll' : 'auto',\n maxHeight: scroll.y\n };\n }\n if (horizonScroll) {\n scrollXStyle = {\n overflowX: 'auto'\n };\n // When no vertical scrollbar, should hide it\n // https://github.com/ant-design/ant-design/pull/20705\n // https://github.com/ant-design/ant-design/issues/21879\n if (!fixHeader) {\n scrollYStyle = {\n overflowY: 'hidden'\n };\n }\n scrollTableStyle = {\n width: mergedScrollX === true ? 'auto' : mergedScrollX,\n minWidth: '100%'\n };\n }\n var onColumnResize = React.useCallback(function (columnKey, width) {\n if (isVisible(fullTableRef.current)) {\n updateColsWidths(function (widths) {\n if (widths.get(columnKey) !== width) {\n var newWidths = new Map(widths);\n newWidths.set(columnKey, width);\n return newWidths;\n }\n return widths;\n });\n }\n }, []);\n var _useTimeoutLock = useTimeoutLock(null),\n _useTimeoutLock2 = _slicedToArray(_useTimeoutLock, 2),\n setScrollTarget = _useTimeoutLock2[0],\n getScrollTarget = _useTimeoutLock2[1];\n function forceScroll(scrollLeft, target) {\n if (!target) {\n return;\n }\n if (typeof target === 'function') {\n target(scrollLeft);\n } else if (target.scrollLeft !== scrollLeft) {\n target.scrollLeft = scrollLeft;\n\n // Delay to force scroll position if not sync\n // ref: https://github.com/ant-design/ant-design/issues/37179\n if (target.scrollLeft !== scrollLeft) {\n setTimeout(function () {\n target.scrollLeft = scrollLeft;\n }, 0);\n }\n }\n }\n var onInternalScroll = useEvent(function (_ref2) {\n var currentTarget = _ref2.currentTarget,\n scrollLeft = _ref2.scrollLeft;\n var isRTL = direction === 'rtl';\n var mergedScrollLeft = typeof scrollLeft === 'number' ? scrollLeft : currentTarget.scrollLeft;\n var compareTarget = currentTarget || EMPTY_SCROLL_TARGET;\n if (!getScrollTarget() || getScrollTarget() === compareTarget) {\n var _stickyRef$current;\n setScrollTarget(compareTarget);\n forceScroll(mergedScrollLeft, scrollHeaderRef.current);\n forceScroll(mergedScrollLeft, scrollBodyRef.current);\n forceScroll(mergedScrollLeft, scrollSummaryRef.current);\n forceScroll(mergedScrollLeft, (_stickyRef$current = stickyRef.current) === null || _stickyRef$current === void 0 ? void 0 : _stickyRef$current.setScrollLeft);\n }\n var measureTarget = currentTarget || scrollHeaderRef.current;\n if (measureTarget) {\n var scrollWidth =\n // Should use mergedScrollX in virtual table(useInternalHooks && tailor === true)\n useInternalHooks && tailor && typeof mergedScrollX === 'number' ? mergedScrollX : measureTarget.scrollWidth;\n var clientWidth = measureTarget.clientWidth;\n // There is no space to scroll\n if (scrollWidth === clientWidth) {\n setPingedLeft(false);\n setPingedRight(false);\n return;\n }\n if (isRTL) {\n setPingedLeft(-mergedScrollLeft < scrollWidth - clientWidth);\n setPingedRight(-mergedScrollLeft > 0);\n } else {\n setPingedLeft(mergedScrollLeft > 0);\n setPingedRight(mergedScrollLeft < scrollWidth - clientWidth);\n }\n }\n });\n var onBodyScroll = useEvent(function (e) {\n onInternalScroll(e);\n onScroll === null || onScroll === void 0 || onScroll(e);\n });\n var triggerOnScroll = function triggerOnScroll() {\n if (horizonScroll && scrollBodyRef.current) {\n var _scrollBodyRef$curren4;\n onInternalScroll({\n currentTarget: getDOM(scrollBodyRef.current),\n scrollLeft: (_scrollBodyRef$curren4 = scrollBodyRef.current) === null || _scrollBodyRef$curren4 === void 0 ? void 0 : _scrollBodyRef$curren4.scrollLeft\n });\n } else {\n setPingedLeft(false);\n setPingedRight(false);\n }\n };\n var onFullTableResize = function onFullTableResize(_ref3) {\n var _stickyRef$current2;\n var width = _ref3.width;\n (_stickyRef$current2 = stickyRef.current) === null || _stickyRef$current2 === void 0 || _stickyRef$current2.checkScrollBarVisible();\n var mergedWidth = fullTableRef.current ? fullTableRef.current.offsetWidth : width;\n if (useInternalHooks && getContainerWidth && fullTableRef.current) {\n mergedWidth = getContainerWidth(fullTableRef.current, mergedWidth) || mergedWidth;\n }\n if (mergedWidth !== componentWidth) {\n triggerOnScroll();\n setComponentWidth(mergedWidth);\n }\n };\n\n // Sync scroll bar when init or `horizonScroll`, `data` and `columns.length` changed\n var mounted = React.useRef(false);\n React.useEffect(function () {\n // onFullTableResize will be trigger once when ResizeObserver is mounted\n // This will reduce one duplicated triggerOnScroll time\n if (mounted.current) {\n triggerOnScroll();\n }\n }, [horizonScroll, data, columns.length]);\n React.useEffect(function () {\n mounted.current = true;\n }, []);\n\n // ===================== Effects ======================\n var _React$useState7 = React.useState(0),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n scrollbarSize = _React$useState8[0],\n setScrollbarSize = _React$useState8[1];\n var _React$useState9 = React.useState(true),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n supportSticky = _React$useState10[0],\n setSupportSticky = _React$useState10[1]; // Only IE not support, we mark as support first\n\n React.useEffect(function () {\n if (!tailor || !useInternalHooks) {\n if (scrollBodyRef.current instanceof Element) {\n setScrollbarSize(getTargetScrollBarSize(scrollBodyRef.current).width);\n } else {\n setScrollbarSize(getTargetScrollBarSize(scrollBodyContainerRef.current).width);\n }\n }\n setSupportSticky(isStyleSupport('position', 'sticky'));\n }, []);\n\n // ================== INTERNAL HOOKS ==================\n React.useEffect(function () {\n if (useInternalHooks && internalRefs) {\n internalRefs.body.current = scrollBodyRef.current;\n }\n });\n\n // ========================================================================\n // == Render ==\n // ========================================================================\n // =================== Render: Func ===================\n var renderFixedHeaderTable = React.useCallback(function (fixedHolderPassProps) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Header, fixedHolderPassProps), fixFooter === 'top' && /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode));\n }, [fixFooter, summaryNode]);\n var renderFixedFooterTable = React.useCallback(function (fixedHolderPassProps) {\n return /*#__PURE__*/React.createElement(Footer, fixedHolderPassProps, summaryNode);\n }, [summaryNode]);\n\n // =================== Render: Node ===================\n var TableComponent = getComponent(['table'], 'table');\n\n // Table layout\n var mergedTableLayout = React.useMemo(function () {\n if (tableLayout) {\n return tableLayout;\n }\n // https://github.com/ant-design/ant-design/issues/25227\n // When scroll.x is max-content, no need to fix table layout\n // it's width should stretch out to fit content\n if (fixColumn) {\n return mergedScrollX === 'max-content' ? 'auto' : 'fixed';\n }\n if (fixHeader || isSticky || flattenColumns.some(function (_ref4) {\n var ellipsis = _ref4.ellipsis;\n return ellipsis;\n })) {\n return 'fixed';\n }\n return 'auto';\n }, [fixHeader, fixColumn, flattenColumns, tableLayout, isSticky]);\n var groupTableNode;\n\n // Header props\n var headerProps = {\n colWidths: colWidths,\n columCount: flattenColumns.length,\n stickyOffsets: stickyOffsets,\n onHeaderRow: onHeaderRow,\n fixHeader: fixHeader,\n scroll: scroll\n };\n\n // Empty\n var emptyNode = React.useMemo(function () {\n if (hasData) {\n return null;\n }\n if (typeof emptyText === 'function') {\n return emptyText();\n }\n return emptyText;\n }, [hasData, emptyText]);\n\n // Body\n var bodyTable = /*#__PURE__*/React.createElement(Body, {\n data: mergedData,\n measureColumnWidth: fixHeader || horizonScroll || isSticky\n });\n var bodyColGroup = /*#__PURE__*/React.createElement(ColGroup, {\n colWidths: flattenColumns.map(function (_ref5) {\n var width = _ref5.width;\n return width;\n }),\n columns: flattenColumns\n });\n var captionElement = caption !== null && caption !== undefined ? /*#__PURE__*/React.createElement(\"caption\", {\n className: \"\".concat(prefixCls, \"-caption\")\n }, caption) : undefined;\n var dataProps = pickAttrs(props, {\n data: true\n });\n var ariaProps = pickAttrs(props, {\n aria: true\n });\n if (fixHeader || isSticky) {\n // >>>>>> Fixed Header\n var bodyContent;\n if (typeof customizeScrollBody === 'function') {\n bodyContent = customizeScrollBody(mergedData, {\n scrollbarSize: scrollbarSize,\n ref: scrollBodyRef,\n onScroll: onInternalScroll\n });\n headerProps.colWidths = flattenColumns.map(function (_ref6, index) {\n var width = _ref6.width;\n var colWidth = index === flattenColumns.length - 1 ? width - scrollbarSize : width;\n if (typeof colWidth === 'number' && !Number.isNaN(colWidth)) {\n return colWidth;\n }\n if (process.env.NODE_ENV !== 'production') {\n warning(props.columns.length === 0, 'When use `components.body` with render props. Each column should have a fixed `width` value.');\n }\n return 0;\n });\n } else {\n bodyContent = /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n onScroll: onBodyScroll,\n ref: scrollBodyRef,\n className: classNames(\"\".concat(prefixCls, \"-body\"))\n }, /*#__PURE__*/React.createElement(TableComponent, _extends({\n style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n tableLayout: mergedTableLayout\n })\n }, ariaProps), captionElement, bodyColGroup, bodyTable, !fixFooter && summaryNode && /*#__PURE__*/React.createElement(Footer, {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns\n }, summaryNode)));\n }\n\n // Fixed holder share the props\n var fixedHolderProps = _objectSpread(_objectSpread(_objectSpread({\n noData: !mergedData.length,\n maxContentScroll: horizonScroll && mergedScrollX === 'max-content'\n }, headerProps), columnContext), {}, {\n direction: direction,\n stickyClassName: stickyClassName,\n onScroll: onInternalScroll\n });\n groupTableNode = /*#__PURE__*/React.createElement(React.Fragment, null, showHeader !== false && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n stickyTopOffset: offsetHeader,\n className: \"\".concat(prefixCls, \"-header\"),\n ref: scrollHeaderRef\n }), renderFixedHeaderTable), bodyContent, fixFooter && fixFooter !== 'top' && /*#__PURE__*/React.createElement(FixedHolder, _extends({}, fixedHolderProps, {\n stickyBottomOffset: offsetSummary,\n className: \"\".concat(prefixCls, \"-summary\"),\n ref: scrollSummaryRef\n }), renderFixedFooterTable), isSticky && scrollBodyRef.current && scrollBodyRef.current instanceof Element && /*#__PURE__*/React.createElement(StickyScrollBar, {\n ref: stickyRef,\n offsetScroll: offsetScroll,\n scrollBodyRef: scrollBodyRef,\n onScroll: onInternalScroll,\n container: container,\n direction: direction\n }));\n } else {\n // >>>>>> Unique table\n groupTableNode = /*#__PURE__*/React.createElement(\"div\", {\n style: _objectSpread(_objectSpread({}, scrollXStyle), scrollYStyle),\n className: classNames(\"\".concat(prefixCls, \"-content\")),\n onScroll: onInternalScroll,\n ref: scrollBodyRef\n }, /*#__PURE__*/React.createElement(TableComponent, _extends({\n style: _objectSpread(_objectSpread({}, scrollTableStyle), {}, {\n tableLayout: mergedTableLayout\n })\n }, ariaProps), captionElement, bodyColGroup, showHeader !== false && /*#__PURE__*/React.createElement(Header, _extends({}, headerProps, columnContext)), bodyTable, summaryNode && /*#__PURE__*/React.createElement(Footer, {\n stickyOffsets: stickyOffsets,\n flattenColumns: flattenColumns\n }, summaryNode)));\n }\n var fullTable = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(prefixCls, className, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), \"\".concat(prefixCls, \"-ping-left\"), pingedLeft), \"\".concat(prefixCls, \"-ping-right\"), pingedRight), \"\".concat(prefixCls, \"-layout-fixed\"), tableLayout === 'fixed'), \"\".concat(prefixCls, \"-fixed-header\"), fixHeader), \"\".concat(prefixCls, \"-fixed-column\"), fixColumn), \"\".concat(prefixCls, \"-fixed-column-gapped\"), fixColumn && hasGapFixed), \"\".concat(prefixCls, \"-scroll-horizontal\"), horizonScroll), \"\".concat(prefixCls, \"-has-fix-left\"), flattenColumns[0] && flattenColumns[0].fixed), \"\".concat(prefixCls, \"-has-fix-right\"), flattenColumns[flattenColumns.length - 1] && flattenColumns[flattenColumns.length - 1].fixed === 'right')),\n style: style,\n id: id,\n ref: fullTableRef\n }, dataProps), title && /*#__PURE__*/React.createElement(Panel, {\n className: \"\".concat(prefixCls, \"-title\")\n }, title(mergedData)), /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollBodyContainerRef,\n className: \"\".concat(prefixCls, \"-container\")\n }, groupTableNode), footer && /*#__PURE__*/React.createElement(Panel, {\n className: \"\".concat(prefixCls, \"-footer\")\n }, footer(mergedData)));\n if (horizonScroll) {\n fullTable = /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onFullTableResize\n }, fullTable);\n }\n var fixedInfoList = useFixedInfo(flattenColumns, stickyOffsets, direction);\n var TableContextValue = React.useMemo(function () {\n return {\n // Scroll\n scrollX: mergedScrollX,\n // Table\n prefixCls: prefixCls,\n getComponent: getComponent,\n scrollbarSize: scrollbarSize,\n direction: direction,\n fixedInfoList: fixedInfoList,\n isSticky: isSticky,\n supportSticky: supportSticky,\n componentWidth: componentWidth,\n fixHeader: fixHeader,\n fixColumn: fixColumn,\n horizonScroll: horizonScroll,\n // Body\n tableLayout: mergedTableLayout,\n rowClassName: rowClassName,\n expandedRowClassName: expandableConfig.expandedRowClassName,\n expandIcon: mergedExpandIcon,\n expandableType: expandableType,\n expandRowByClick: expandableConfig.expandRowByClick,\n expandedRowRender: expandableConfig.expandedRowRender,\n onTriggerExpand: onTriggerExpand,\n expandIconColumnIndex: expandableConfig.expandIconColumnIndex,\n indentSize: expandableConfig.indentSize,\n allColumnsFixedLeft: flattenColumns.every(function (col) {\n return col.fixed === 'left';\n }),\n emptyNode: emptyNode,\n // Column\n columns: columns,\n flattenColumns: flattenColumns,\n onColumnResize: onColumnResize,\n // Row\n hoverStartRow: startRow,\n hoverEndRow: endRow,\n onHover: onHover,\n rowExpandable: expandableConfig.rowExpandable,\n onRow: onRow,\n getRowKey: getRowKey,\n expandedKeys: mergedExpandedKeys,\n childrenColumnName: mergedChildrenColumnName,\n rowHoverable: rowHoverable\n };\n }, [\n // Scroll\n mergedScrollX,\n // Table\n prefixCls, getComponent, scrollbarSize, direction, fixedInfoList, isSticky, supportSticky, componentWidth, fixHeader, fixColumn, horizonScroll,\n // Body\n mergedTableLayout, rowClassName, expandableConfig.expandedRowClassName, mergedExpandIcon, expandableType, expandableConfig.expandRowByClick, expandableConfig.expandedRowRender, onTriggerExpand, expandableConfig.expandIconColumnIndex, expandableConfig.indentSize, emptyNode,\n // Column\n columns, flattenColumns, onColumnResize,\n // Row\n startRow, endRow, onHover, expandableConfig.rowExpandable, onRow, getRowKey, mergedExpandedKeys, mergedChildrenColumnName, rowHoverable]);\n return /*#__PURE__*/React.createElement(TableContext.Provider, {\n value: TableContextValue\n }, fullTable);\n}\nvar RefTable = /*#__PURE__*/React.forwardRef(Table);\nif (process.env.NODE_ENV !== 'production') {\n RefTable.displayName = 'Table';\n}\nexport function genTable(shouldTriggerRender) {\n return makeImmutable(RefTable, shouldTriggerRender);\n}\nvar ImmutableTable = genTable();\nImmutableTable.EXPAND_COLUMN = EXPAND_COLUMN;\nImmutableTable.INTERNAL_HOOKS = INTERNAL_HOOKS;\nImmutableTable.Column = Column;\nImmutableTable.ColumnGroup = ColumnGroup;\nImmutableTable.Summary = FooterComponents;\nexport default ImmutableTable;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nexport default function useHover() {\n var _React$useState = React.useState(-1),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n startRow = _React$useState2[0],\n setStartRow = _React$useState2[1];\n var _React$useState3 = React.useState(-1),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n endRow = _React$useState4[0],\n setEndRow = _React$useState4[1];\n var onHover = React.useCallback(function (start, end) {\n setStartRow(start);\n setEndRow(end);\n }, []);\n return [startRow, endRow, onHover];\n}","import useMemo from \"rc-util/es/hooks/useMemo\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport { getCellFixedInfo } from \"../utils/fixUtil\";\nexport default function useFixedInfo(flattenColumns, stickyOffsets, direction) {\n var fixedInfoList = flattenColumns.map(function (_, colIndex) {\n return getCellFixedInfo(colIndex, colIndex, flattenColumns, stickyOffsets, direction);\n });\n return useMemo(function () {\n return fixedInfoList;\n }, [fixedInfoList], function (prev, next) {\n return !isEqual(prev, next);\n });\n}","import { createContext } from '@rc-component/context';\nexport var StaticContext = createContext(null);\nexport var GridContext = createContext(null);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { getCellProps } from \"../Body/BodyRow\";\nimport Cell from \"../Cell\";\nimport { GridContext } from \"./context\";\n/**\n * Return the width of the column by `colSpan`.\n * When `colSpan` is `0` will be trade as `1`.\n */\nexport function getColumnWidth(colIndex, colSpan, columnsOffset) {\n var mergedColSpan = colSpan || 1;\n return columnsOffset[colIndex + mergedColSpan] - (columnsOffset[colIndex] || 0);\n}\nfunction VirtualCell(props) {\n var rowInfo = props.rowInfo,\n column = props.column,\n colIndex = props.colIndex,\n indent = props.indent,\n index = props.index,\n component = props.component,\n renderIndex = props.renderIndex,\n record = props.record,\n style = props.style,\n className = props.className,\n inverse = props.inverse,\n getHeight = props.getHeight;\n var render = column.render,\n dataIndex = column.dataIndex,\n columnClassName = column.className,\n colWidth = column.width;\n var _useContext = useContext(GridContext, ['columnsOffset']),\n columnsOffset = _useContext.columnsOffset;\n var _getCellProps = getCellProps(rowInfo, column, colIndex, indent, index),\n key = _getCellProps.key,\n fixedInfo = _getCellProps.fixedInfo,\n appendCellNode = _getCellProps.appendCellNode,\n additionalCellProps = _getCellProps.additionalCellProps;\n var cellStyle = additionalCellProps.style,\n _additionalCellProps$ = additionalCellProps.colSpan,\n colSpan = _additionalCellProps$ === void 0 ? 1 : _additionalCellProps$,\n _additionalCellProps$2 = additionalCellProps.rowSpan,\n rowSpan = _additionalCellProps$2 === void 0 ? 1 : _additionalCellProps$2;\n\n // ========================= ColWidth =========================\n // column width\n var startColIndex = colIndex - 1;\n var concatColWidth = getColumnWidth(startColIndex, colSpan, columnsOffset);\n\n // margin offset\n var marginOffset = colSpan > 1 ? colWidth - concatColWidth : 0;\n\n // ========================== Style ===========================\n var mergedStyle = _objectSpread(_objectSpread(_objectSpread({}, cellStyle), style), {}, {\n flex: \"0 0 \".concat(concatColWidth, \"px\"),\n width: \"\".concat(concatColWidth, \"px\"),\n marginRight: marginOffset,\n pointerEvents: 'auto'\n });\n\n // When `colSpan` or `rowSpan` is `0`, should skip render.\n var needHide = React.useMemo(function () {\n if (inverse) {\n return rowSpan <= 1;\n } else {\n return colSpan === 0 || rowSpan === 0 || rowSpan > 1;\n }\n }, [rowSpan, colSpan, inverse]);\n\n // 0 rowSpan or colSpan should not render\n if (needHide) {\n mergedStyle.visibility = 'hidden';\n } else if (inverse) {\n mergedStyle.height = getHeight === null || getHeight === void 0 ? void 0 : getHeight(rowSpan);\n }\n var mergedRender = needHide ? function () {\n return null;\n } : render;\n\n // ========================== Render ==========================\n var cellSpan = {};\n\n // Virtual should reset `colSpan` & `rowSpan`\n if (rowSpan === 0 || colSpan === 0) {\n cellSpan.rowSpan = 1;\n cellSpan.colSpan = 1;\n }\n return /*#__PURE__*/React.createElement(Cell, _extends({\n className: classNames(columnClassName, className),\n ellipsis: column.ellipsis,\n align: column.align,\n scope: column.rowScope,\n component: component,\n prefixCls: rowInfo.prefixCls,\n key: key,\n record: record,\n index: index,\n renderIndex: renderIndex,\n dataIndex: dataIndex,\n render: mergedRender,\n shouldCellUpdate: column.shouldCellUpdate\n }, fixedInfo, {\n appendNode: appendCellNode,\n additionalProps: _objectSpread(_objectSpread({}, additionalCellProps), {}, {\n style: mergedStyle\n }, cellSpan)\n }));\n}\nexport default VirtualCell;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"data\", \"index\", \"className\", \"rowKey\", \"style\", \"extra\", \"getHeight\"];\nimport { useContext } from '@rc-component/context';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport Cell from \"../Cell\";\nimport TableContext, { responseImmutable } from \"../context/TableContext\";\nimport useRowInfo from \"../hooks/useRowInfo\";\nimport VirtualCell from \"./VirtualCell\";\nimport { StaticContext } from \"./context\";\nimport { computedExpandedClassName } from \"../utils/expandUtil\";\nvar BodyLine = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var data = props.data,\n index = props.index,\n className = props.className,\n rowKey = props.rowKey,\n style = props.style,\n extra = props.extra,\n getHeight = props.getHeight,\n restProps = _objectWithoutProperties(props, _excluded);\n var record = data.record,\n indent = data.indent,\n renderIndex = data.index;\n var _useContext = useContext(TableContext, ['prefixCls', 'flattenColumns', 'fixColumn', 'componentWidth', 'scrollX']),\n scrollX = _useContext.scrollX,\n flattenColumns = _useContext.flattenColumns,\n prefixCls = _useContext.prefixCls,\n fixColumn = _useContext.fixColumn,\n componentWidth = _useContext.componentWidth;\n var _useContext2 = useContext(StaticContext, ['getComponent']),\n getComponent = _useContext2.getComponent;\n var rowInfo = useRowInfo(record, rowKey, index, indent);\n var RowComponent = getComponent(['body', 'row'], 'div');\n var cellComponent = getComponent(['body', 'cell'], 'div');\n\n // ========================== Expand ==========================\n var rowSupportExpand = rowInfo.rowSupportExpand,\n expanded = rowInfo.expanded,\n rowProps = rowInfo.rowProps,\n expandedRowRender = rowInfo.expandedRowRender,\n expandedRowClassName = rowInfo.expandedRowClassName;\n var expandRowNode;\n if (rowSupportExpand && expanded) {\n var expandContent = expandedRowRender(record, index, indent + 1, expanded);\n var expandedClsName = computedExpandedClassName(expandedRowClassName, record, index, indent);\n var additionalProps = {};\n if (fixColumn) {\n additionalProps = {\n style: _defineProperty({}, '--virtual-width', \"\".concat(componentWidth, \"px\"))\n };\n }\n var rowCellCls = \"\".concat(prefixCls, \"-expanded-row-cell\");\n expandRowNode = /*#__PURE__*/React.createElement(RowComponent, {\n className: classNames(\"\".concat(prefixCls, \"-expanded-row\"), \"\".concat(prefixCls, \"-expanded-row-level-\").concat(indent + 1), expandedClsName)\n }, /*#__PURE__*/React.createElement(Cell, {\n component: cellComponent,\n prefixCls: prefixCls,\n className: classNames(rowCellCls, _defineProperty({}, \"\".concat(rowCellCls, \"-fixed\"), fixColumn)),\n additionalProps: additionalProps\n }, expandContent));\n }\n\n // ========================== Render ==========================\n var rowStyle = _objectSpread(_objectSpread({}, style), {}, {\n width: scrollX\n });\n if (extra) {\n rowStyle.position = 'absolute';\n rowStyle.pointerEvents = 'none';\n }\n var rowNode = /*#__PURE__*/React.createElement(RowComponent, _extends({}, rowProps, restProps, {\n \"data-row-key\": rowKey,\n ref: rowSupportExpand ? null : ref,\n className: classNames(className, \"\".concat(prefixCls, \"-row\"), rowProps === null || rowProps === void 0 ? void 0 : rowProps.className, _defineProperty({}, \"\".concat(prefixCls, \"-row-extra\"), extra)),\n style: _objectSpread(_objectSpread({}, rowStyle), rowProps === null || rowProps === void 0 ? void 0 : rowProps.style)\n }), flattenColumns.map(function (column, colIndex) {\n return /*#__PURE__*/React.createElement(VirtualCell, {\n key: colIndex,\n component: cellComponent,\n rowInfo: rowInfo,\n column: column,\n colIndex: colIndex,\n indent: indent,\n index: index,\n renderIndex: renderIndex,\n record: record,\n inverse: extra,\n getHeight: getHeight\n });\n }));\n if (rowSupportExpand) {\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: ref\n }, rowNode, expandRowNode);\n }\n return rowNode;\n});\nvar ResponseBodyLine = responseImmutable(BodyLine);\nif (process.env.NODE_ENV !== 'production') {\n ResponseBodyLine.displayName = 'BodyLine';\n}\nexport default ResponseBodyLine;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useContext } from '@rc-component/context';\nimport VirtualList from 'rc-virtual-list';\nimport * as React from 'react';\nimport TableContext, { responseImmutable } from \"../context/TableContext\";\nimport useFlattenRecords from \"../hooks/useFlattenRecords\";\nimport BodyLine from \"./BodyLine\";\nimport { GridContext, StaticContext } from \"./context\";\nvar Grid = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var data = props.data,\n onScroll = props.onScroll;\n var _useContext = useContext(TableContext, ['flattenColumns', 'onColumnResize', 'getRowKey', 'prefixCls', 'expandedKeys', 'childrenColumnName', 'scrollX', 'direction']),\n flattenColumns = _useContext.flattenColumns,\n onColumnResize = _useContext.onColumnResize,\n getRowKey = _useContext.getRowKey,\n expandedKeys = _useContext.expandedKeys,\n prefixCls = _useContext.prefixCls,\n childrenColumnName = _useContext.childrenColumnName,\n scrollX = _useContext.scrollX,\n direction = _useContext.direction;\n var _useContext2 = useContext(StaticContext),\n sticky = _useContext2.sticky,\n scrollY = _useContext2.scrollY,\n listItemHeight = _useContext2.listItemHeight,\n getComponent = _useContext2.getComponent,\n onTablePropScroll = _useContext2.onScroll;\n\n // =========================== Ref ============================\n var listRef = React.useRef();\n\n // =========================== Data ===========================\n var flattenData = useFlattenRecords(data, childrenColumnName, expandedKeys, getRowKey);\n\n // ========================== Column ==========================\n var columnsWidth = React.useMemo(function () {\n var total = 0;\n return flattenColumns.map(function (_ref) {\n var width = _ref.width,\n key = _ref.key;\n total += width;\n return [key, width, total];\n });\n }, [flattenColumns]);\n var columnsOffset = React.useMemo(function () {\n return columnsWidth.map(function (colWidth) {\n return colWidth[2];\n });\n }, [columnsWidth]);\n React.useEffect(function () {\n columnsWidth.forEach(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n key = _ref3[0],\n width = _ref3[1];\n onColumnResize(key, width);\n });\n }, [columnsWidth]);\n\n // =========================== Ref ============================\n React.useImperativeHandle(ref, function () {\n var _listRef$current2;\n var obj = {\n scrollTo: function scrollTo(config) {\n var _listRef$current;\n (_listRef$current = listRef.current) === null || _listRef$current === void 0 || _listRef$current.scrollTo(config);\n },\n nativeElement: (_listRef$current2 = listRef.current) === null || _listRef$current2 === void 0 ? void 0 : _listRef$current2.nativeElement\n };\n Object.defineProperty(obj, 'scrollLeft', {\n get: function get() {\n var _listRef$current3;\n return ((_listRef$current3 = listRef.current) === null || _listRef$current3 === void 0 ? void 0 : _listRef$current3.getScrollInfo().x) || 0;\n },\n set: function set(value) {\n var _listRef$current4;\n (_listRef$current4 = listRef.current) === null || _listRef$current4 === void 0 || _listRef$current4.scrollTo({\n left: value\n });\n }\n });\n return obj;\n });\n\n // ======================= Col/Row Span =======================\n var getRowSpan = function getRowSpan(column, index) {\n var _flattenData$index;\n var record = (_flattenData$index = flattenData[index]) === null || _flattenData$index === void 0 ? void 0 : _flattenData$index.record;\n var onCell = column.onCell;\n if (onCell) {\n var _cellProps$rowSpan;\n var cellProps = onCell(record, index);\n return (_cellProps$rowSpan = cellProps === null || cellProps === void 0 ? void 0 : cellProps.rowSpan) !== null && _cellProps$rowSpan !== void 0 ? _cellProps$rowSpan : 1;\n }\n return 1;\n };\n var extraRender = function extraRender(info) {\n var start = info.start,\n end = info.end,\n getSize = info.getSize,\n offsetY = info.offsetY;\n\n // Do nothing if no data\n if (end < 0) {\n return null;\n }\n\n // Find first rowSpan column\n var firstRowSpanColumns = flattenColumns.filter(\n // rowSpan is 0\n function (column) {\n return getRowSpan(column, start) === 0;\n });\n var startIndex = start;\n var _loop = function _loop(i) {\n firstRowSpanColumns = firstRowSpanColumns.filter(function (column) {\n return getRowSpan(column, i) === 0;\n });\n if (!firstRowSpanColumns.length) {\n startIndex = i;\n return 1; // break\n }\n };\n for (var i = start; i >= 0; i -= 1) {\n if (_loop(i)) break;\n }\n\n // Find last rowSpan column\n var lastRowSpanColumns = flattenColumns.filter(\n // rowSpan is not 1\n function (column) {\n return getRowSpan(column, end) !== 1;\n });\n var endIndex = end;\n var _loop2 = function _loop2(_i) {\n lastRowSpanColumns = lastRowSpanColumns.filter(function (column) {\n return getRowSpan(column, _i) !== 1;\n });\n if (!lastRowSpanColumns.length) {\n endIndex = Math.max(_i - 1, end);\n return 1; // break\n }\n };\n for (var _i = end; _i < flattenData.length; _i += 1) {\n if (_loop2(_i)) break;\n }\n\n // Collect the line who has rowSpan\n var spanLines = [];\n var _loop3 = function _loop3(_i2) {\n var item = flattenData[_i2];\n\n // This code will never reach, just incase\n if (!item) {\n return 1; // continue\n }\n if (flattenColumns.some(function (column) {\n return getRowSpan(column, _i2) > 1;\n })) {\n spanLines.push(_i2);\n }\n };\n for (var _i2 = startIndex; _i2 <= endIndex; _i2 += 1) {\n if (_loop3(_i2)) continue;\n }\n\n // Patch extra line on the page\n var nodes = spanLines.map(function (index) {\n var item = flattenData[index];\n var rowKey = getRowKey(item.record, index);\n var getHeight = function getHeight(rowSpan) {\n var endItemIndex = index + rowSpan - 1;\n var endItemKey = getRowKey(flattenData[endItemIndex].record, endItemIndex);\n var sizeInfo = getSize(rowKey, endItemKey);\n return sizeInfo.bottom - sizeInfo.top;\n };\n var sizeInfo = getSize(rowKey);\n return /*#__PURE__*/React.createElement(BodyLine, {\n key: index,\n data: item,\n rowKey: rowKey,\n index: index,\n style: {\n top: -offsetY + sizeInfo.top\n },\n extra: true,\n getHeight: getHeight\n });\n });\n return nodes;\n };\n\n // ========================= Context ==========================\n var gridContext = React.useMemo(function () {\n return {\n columnsOffset: columnsOffset\n };\n }, [columnsOffset]);\n\n // ========================== Render ==========================\n var tblPrefixCls = \"\".concat(prefixCls, \"-tbody\");\n\n // default 'div' in rc-virtual-list\n var wrapperComponent = getComponent(['body', 'wrapper']);\n\n // ========================== Sticky Scroll Bar ==========================\n var horizontalScrollBarStyle = {};\n if (sticky) {\n horizontalScrollBarStyle.position = 'sticky';\n horizontalScrollBarStyle.bottom = 0;\n if (_typeof(sticky) === 'object' && sticky.offsetScroll) {\n horizontalScrollBarStyle.bottom = sticky.offsetScroll;\n }\n }\n return /*#__PURE__*/React.createElement(GridContext.Provider, {\n value: gridContext\n }, /*#__PURE__*/React.createElement(VirtualList, {\n fullHeight: false,\n ref: listRef,\n prefixCls: \"\".concat(tblPrefixCls, \"-virtual\"),\n styles: {\n horizontalScrollBar: horizontalScrollBarStyle\n },\n className: tblPrefixCls,\n height: scrollY,\n itemHeight: listItemHeight || 24,\n data: flattenData,\n itemKey: function itemKey(item) {\n return getRowKey(item.record);\n },\n component: wrapperComponent,\n scrollWidth: scrollX,\n direction: direction,\n onVirtualScroll: function onVirtualScroll(_ref4) {\n var _listRef$current5;\n var x = _ref4.x;\n onScroll({\n currentTarget: (_listRef$current5 = listRef.current) === null || _listRef$current5 === void 0 ? void 0 : _listRef$current5.nativeElement,\n scrollLeft: x\n });\n },\n onScroll: onTablePropScroll,\n extraRender: extraRender\n }, function (item, index, itemProps) {\n var rowKey = getRowKey(item.record, index);\n return /*#__PURE__*/React.createElement(BodyLine, {\n data: item,\n rowKey: rowKey,\n index: index,\n style: itemProps.style\n });\n }));\n});\nvar ResponseGrid = responseImmutable(Grid);\nif (process.env.NODE_ENV !== 'production') {\n ResponseGrid.displayName = 'ResponseGrid';\n}\nexport default ResponseGrid;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport classNames from 'classnames';\nimport { useEvent, warning } from 'rc-util';\nimport * as React from 'react';\nimport { INTERNAL_HOOKS } from \"../constant\";\nimport { makeImmutable } from \"../context/TableContext\";\nimport Table, { DEFAULT_PREFIX } from \"../Table\";\nimport Grid from \"./BodyGrid\";\nimport { StaticContext } from \"./context\";\nimport getValue from \"rc-util/es/utils/get\";\nvar renderBody = function renderBody(rawData, props) {\n var ref = props.ref,\n onScroll = props.onScroll;\n return /*#__PURE__*/React.createElement(Grid, {\n ref: ref,\n data: rawData,\n onScroll: onScroll\n });\n};\nfunction VirtualTable(props, ref) {\n var data = props.data,\n columns = props.columns,\n scroll = props.scroll,\n sticky = props.sticky,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? DEFAULT_PREFIX : _props$prefixCls,\n className = props.className,\n listItemHeight = props.listItemHeight,\n components = props.components,\n onScroll = props.onScroll;\n var _ref = scroll || {},\n scrollX = _ref.x,\n scrollY = _ref.y;\n\n // Fill scrollX\n if (typeof scrollX !== 'number') {\n if (process.env.NODE_ENV !== 'production') {\n warning(!scrollX, '`scroll.x` in virtual table must be number.');\n }\n scrollX = 1;\n }\n\n // Fill scrollY\n if (typeof scrollY !== 'number') {\n scrollY = 500;\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`scroll.y` in virtual table must be number.');\n }\n }\n var getComponent = useEvent(function (path, defaultComponent) {\n return getValue(components, path) || defaultComponent;\n });\n\n // Memo this\n var onInternalScroll = useEvent(onScroll);\n\n // ========================= Context ==========================\n var context = React.useMemo(function () {\n return {\n sticky: sticky,\n scrollY: scrollY,\n listItemHeight: listItemHeight,\n getComponent: getComponent,\n onScroll: onInternalScroll\n };\n }, [sticky, scrollY, listItemHeight, getComponent, onInternalScroll]);\n\n // ========================== Render ==========================\n return /*#__PURE__*/React.createElement(StaticContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(Table, _extends({}, props, {\n className: classNames(className, \"\".concat(prefixCls, \"-virtual\")),\n scroll: _objectSpread(_objectSpread({}, scroll), {}, {\n x: scrollX\n }),\n components: _objectSpread(_objectSpread({}, components), {}, {\n // fix https://github.com/ant-design/ant-design/issues/48991\n body: data !== null && data !== void 0 && data.length ? renderBody : undefined\n }),\n columns: columns,\n internalHooks: INTERNAL_HOOKS,\n tailor: true,\n ref: ref\n })));\n}\nvar RefVirtualTable = /*#__PURE__*/React.forwardRef(VirtualTable);\nif (process.env.NODE_ENV !== 'production') {\n RefVirtualTable.displayName = 'VirtualTable';\n}\nexport function genVirtualTable(shouldTriggerRender) {\n return makeImmutable(RefVirtualTable, shouldTriggerRender);\n}\nexport default genVirtualTable();","/* istanbul ignore next */\n/** This is a syntactic sugar for `columns` prop. So HOC will not work on this. */\nconst Column = _ => null;\nexport default Column;","/* istanbul ignore next */\n/** This is a syntactic sugar for `columns` prop. So HOC will not work on this. */\nconst ColumnGroup = _ => null;\nexport default ColumnGroup;","/**\n * Webpack has bug for import loop, which is not the same behavior as ES module.\n * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty.\n */\nimport * as React from 'react';\nexport var TreeContext = /*#__PURE__*/React.createContext(null);\n\n/** Internal usage, safe to remove. Do not use in prod */\nexport var UnstableContext = /*#__PURE__*/React.createContext({});","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nvar Indent = function Indent(_ref) {\n var prefixCls = _ref.prefixCls,\n level = _ref.level,\n isStart = _ref.isStart,\n isEnd = _ref.isEnd;\n var baseClassName = \"\".concat(prefixCls, \"-indent-unit\");\n var list = [];\n for (var i = 0; i < level; i += 1) {\n list.push( /*#__PURE__*/React.createElement(\"span\", {\n key: i,\n className: classNames(baseClassName, _defineProperty(_defineProperty({}, \"\".concat(baseClassName, \"-start\"), isStart[i]), \"\".concat(baseClassName, \"-end\"), isEnd[i]))\n }));\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-indent\")\n }, list);\n};\nexport default /*#__PURE__*/React.memo(Indent);","export default function getEntity(keyEntities, key) {\n return keyEntities[key];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport toArray from \"rc-util/es/Children/toArray\";\nimport omit from \"rc-util/es/omit\";\nimport warning from \"rc-util/es/warning\";\nimport getEntity from \"./keyUtil\";\nexport function getPosition(level, index) {\n return \"\".concat(level, \"-\").concat(index);\n}\nexport function isTreeNode(node) {\n return node && node.type && node.type.isTreeNode;\n}\nexport function getKey(key, pos) {\n if (key !== null && key !== undefined) {\n return key;\n }\n return pos;\n}\nexport function fillFieldNames(fieldNames) {\n var _ref = fieldNames || {},\n title = _ref.title,\n _title = _ref._title,\n key = _ref.key,\n children = _ref.children;\n var mergedTitle = title || 'title';\n return {\n title: mergedTitle,\n _title: _title || [mergedTitle],\n key: key || 'key',\n children: children || 'children'\n };\n}\n\n/**\n * Warning if TreeNode do not provides key\n */\nexport function warningWithoutKey(treeData, fieldNames) {\n var keys = new Map();\n function dig(list) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (list || []).forEach(function (treeNode) {\n var key = treeNode[fieldNames.key];\n var children = treeNode[fieldNames.children];\n warning(key !== null && key !== undefined, \"Tree node must have a certain key: [\".concat(path).concat(key, \"]\"));\n var recordKey = String(key);\n warning(!keys.has(recordKey) || key === null || key === undefined, \"Same 'key' exist in the Tree: \".concat(recordKey));\n keys.set(recordKey, true);\n dig(children, \"\".concat(path).concat(recordKey, \" > \"));\n });\n }\n dig(treeData);\n}\n\n/**\n * Convert `children` of Tree into `treeData` structure.\n */\nexport function convertTreeToData(rootNodes) {\n function dig(node) {\n var treeNodes = toArray(node);\n return treeNodes.map(function (treeNode) {\n // Filter invalidate node\n if (!isTreeNode(treeNode)) {\n warning(!treeNode, 'Tree/TreeNode can only accept TreeNode as children.');\n return null;\n }\n var key = treeNode.key;\n var _treeNode$props = treeNode.props,\n children = _treeNode$props.children,\n rest = _objectWithoutProperties(_treeNode$props, _excluded);\n var dataNode = _objectSpread({\n key: key\n }, rest);\n var parsedChildren = dig(children);\n if (parsedChildren.length) {\n dataNode.children = parsedChildren;\n }\n return dataNode;\n }).filter(function (dataNode) {\n return dataNode;\n });\n }\n return dig(rootNodes);\n}\n\n/**\n * Flat nest tree data into flatten list. This is used for virtual list render.\n * @param treeNodeList Origin data node list\n * @param expandedKeys\n * need expanded keys, provides `true` means all expanded (used in `rc-tree-select`).\n */\nexport function flattenTreeData(treeNodeList, expandedKeys, fieldNames) {\n var _fillFieldNames = fillFieldNames(fieldNames),\n fieldTitles = _fillFieldNames._title,\n fieldKey = _fillFieldNames.key,\n fieldChildren = _fillFieldNames.children;\n var expandedKeySet = new Set(expandedKeys === true ? [] : expandedKeys);\n var flattenList = [];\n function dig(list) {\n var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n return list.map(function (treeNode, index) {\n var pos = getPosition(parent ? parent.pos : '0', index);\n var mergedKey = getKey(treeNode[fieldKey], pos);\n\n // Pick matched title in field title list\n var mergedTitle;\n for (var i = 0; i < fieldTitles.length; i += 1) {\n var fieldTitle = fieldTitles[i];\n if (treeNode[fieldTitle] !== undefined) {\n mergedTitle = treeNode[fieldTitle];\n break;\n }\n }\n\n // Add FlattenDataNode into list\n // We use `Object.assign` here to save perf since babel's `objectSpread` has perf issue\n var flattenNode = Object.assign(omit(treeNode, [].concat(_toConsumableArray(fieldTitles), [fieldKey, fieldChildren])), {\n title: mergedTitle,\n key: mergedKey,\n parent: parent,\n pos: pos,\n children: null,\n data: treeNode,\n isStart: [].concat(_toConsumableArray(parent ? parent.isStart : []), [index === 0]),\n isEnd: [].concat(_toConsumableArray(parent ? parent.isEnd : []), [index === list.length - 1])\n });\n flattenList.push(flattenNode);\n\n // Loop treeNode children\n if (expandedKeys === true || expandedKeySet.has(mergedKey)) {\n flattenNode.children = dig(treeNode[fieldChildren] || [], flattenNode);\n } else {\n flattenNode.children = [];\n }\n return flattenNode;\n });\n }\n dig(treeNodeList);\n return flattenList;\n}\n/**\n * Traverse all the data by `treeData`.\n * Please not use it out of the `rc-tree` since we may refactor this code.\n */\nexport function traverseDataNodes(dataNodes, callback,\n// To avoid too many params, let use config instead of origin param\nconfig) {\n var mergedConfig = {};\n if (_typeof(config) === 'object') {\n mergedConfig = config;\n } else {\n mergedConfig = {\n externalGetKey: config\n };\n }\n mergedConfig = mergedConfig || {};\n\n // Init config\n var _mergedConfig = mergedConfig,\n childrenPropName = _mergedConfig.childrenPropName,\n externalGetKey = _mergedConfig.externalGetKey,\n fieldNames = _mergedConfig.fieldNames;\n var _fillFieldNames2 = fillFieldNames(fieldNames),\n fieldKey = _fillFieldNames2.key,\n fieldChildren = _fillFieldNames2.children;\n var mergeChildrenPropName = childrenPropName || fieldChildren;\n\n // Get keys\n var syntheticGetKey;\n if (externalGetKey) {\n if (typeof externalGetKey === 'string') {\n syntheticGetKey = function syntheticGetKey(node) {\n return node[externalGetKey];\n };\n } else if (typeof externalGetKey === 'function') {\n syntheticGetKey = function syntheticGetKey(node) {\n return externalGetKey(node);\n };\n }\n } else {\n syntheticGetKey = function syntheticGetKey(node, pos) {\n return getKey(node[fieldKey], pos);\n };\n }\n\n // Process\n function processNode(node, index, parent, pathNodes) {\n var children = node ? node[mergeChildrenPropName] : dataNodes;\n var pos = node ? getPosition(parent.pos, index) : '0';\n var connectNodes = node ? [].concat(_toConsumableArray(pathNodes), [node]) : [];\n\n // Process node if is not root\n if (node) {\n var key = syntheticGetKey(node, pos);\n var _data = {\n node: node,\n index: index,\n pos: pos,\n key: key,\n parentPos: parent.node ? parent.pos : null,\n level: parent.level + 1,\n nodes: connectNodes\n };\n callback(_data);\n }\n\n // Process children node\n if (children) {\n children.forEach(function (subNode, subIndex) {\n processNode(subNode, subIndex, {\n node: node,\n pos: pos,\n level: parent ? parent.level + 1 : -1\n }, connectNodes);\n });\n }\n }\n processNode(null);\n}\n/**\n * Convert `treeData` into entity records.\n */\nexport function convertDataToEntities(dataNodes) {\n var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n initWrapper = _ref2.initWrapper,\n processEntity = _ref2.processEntity,\n onProcessFinished = _ref2.onProcessFinished,\n externalGetKey = _ref2.externalGetKey,\n childrenPropName = _ref2.childrenPropName,\n fieldNames = _ref2.fieldNames;\n var /** @deprecated Use `config.externalGetKey` instead */\n legacyExternalGetKey = arguments.length > 2 ? arguments[2] : undefined;\n // Init config\n var mergedExternalGetKey = externalGetKey || legacyExternalGetKey;\n var posEntities = {};\n var keyEntities = {};\n var wrapper = {\n posEntities: posEntities,\n keyEntities: keyEntities\n };\n if (initWrapper) {\n wrapper = initWrapper(wrapper) || wrapper;\n }\n traverseDataNodes(dataNodes, function (item) {\n var node = item.node,\n index = item.index,\n pos = item.pos,\n key = item.key,\n parentPos = item.parentPos,\n level = item.level,\n nodes = item.nodes;\n var entity = {\n node: node,\n nodes: nodes,\n index: index,\n key: key,\n pos: pos,\n level: level\n };\n var mergedKey = getKey(key, pos);\n posEntities[pos] = entity;\n keyEntities[mergedKey] = entity;\n\n // Fill children\n entity.parent = posEntities[parentPos];\n if (entity.parent) {\n entity.parent.children = entity.parent.children || [];\n entity.parent.children.push(entity);\n }\n if (processEntity) {\n processEntity(entity, wrapper);\n }\n }, {\n externalGetKey: mergedExternalGetKey,\n childrenPropName: childrenPropName,\n fieldNames: fieldNames\n });\n if (onProcessFinished) {\n onProcessFinished(wrapper);\n }\n return wrapper;\n}\n/**\n * Get TreeNode props with Tree props.\n */\nexport function getTreeNodeProps(key, _ref3) {\n var expandedKeys = _ref3.expandedKeys,\n selectedKeys = _ref3.selectedKeys,\n loadedKeys = _ref3.loadedKeys,\n loadingKeys = _ref3.loadingKeys,\n checkedKeys = _ref3.checkedKeys,\n halfCheckedKeys = _ref3.halfCheckedKeys,\n dragOverNodeKey = _ref3.dragOverNodeKey,\n dropPosition = _ref3.dropPosition,\n keyEntities = _ref3.keyEntities;\n var entity = getEntity(keyEntities, key);\n var treeNodeProps = {\n eventKey: key,\n expanded: expandedKeys.indexOf(key) !== -1,\n selected: selectedKeys.indexOf(key) !== -1,\n loaded: loadedKeys.indexOf(key) !== -1,\n loading: loadingKeys.indexOf(key) !== -1,\n checked: checkedKeys.indexOf(key) !== -1,\n halfChecked: halfCheckedKeys.indexOf(key) !== -1,\n pos: String(entity ? entity.pos : ''),\n // [Legacy] Drag props\n // Since the interaction of drag is changed, the semantic of the props are\n // not accuracy, I think it should be finally removed\n dragOver: dragOverNodeKey === key && dropPosition === 0,\n dragOverGapTop: dragOverNodeKey === key && dropPosition === -1,\n dragOverGapBottom: dragOverNodeKey === key && dropPosition === 1\n };\n return treeNodeProps;\n}\nexport function convertNodePropsToEventData(props) {\n var data = props.data,\n expanded = props.expanded,\n selected = props.selected,\n checked = props.checked,\n loaded = props.loaded,\n loading = props.loading,\n halfChecked = props.halfChecked,\n dragOver = props.dragOver,\n dragOverGapTop = props.dragOverGapTop,\n dragOverGapBottom = props.dragOverGapBottom,\n pos = props.pos,\n active = props.active,\n eventKey = props.eventKey;\n var eventData = _objectSpread(_objectSpread({}, data), {}, {\n expanded: expanded,\n selected: selected,\n checked: checked,\n loaded: loaded,\n loading: loading,\n halfChecked: halfChecked,\n dragOver: dragOver,\n dragOverGapTop: dragOverGapTop,\n dragOverGapBottom: dragOverGapBottom,\n pos: pos,\n active: active,\n key: eventKey\n });\n if (!('props' in eventData)) {\n Object.defineProperty(eventData, 'props', {\n get: function get() {\n warning(false, 'Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.');\n return props;\n }\n });\n }\n return eventData;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"eventKey\", \"className\", \"style\", \"dragOver\", \"dragOverGapTop\", \"dragOverGapBottom\", \"isLeaf\", \"isStart\", \"isEnd\", \"expanded\", \"selected\", \"checked\", \"halfChecked\", \"loading\", \"domRef\", \"active\", \"data\", \"onMouseMove\", \"selectable\"];\nimport React from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport { TreeContext, UnstableContext } from \"./contextTypes\";\nimport Indent from \"./Indent\";\nimport getEntity from \"./utils/keyUtil\";\nimport { convertNodePropsToEventData } from \"./utils/treeUtil\";\nvar ICON_OPEN = 'open';\nvar ICON_CLOSE = 'close';\nvar defaultTitle = '---';\nvar TreeNode = function TreeNode(props) {\n var _context$filterTreeNo, _classNames4;\n var eventKey = props.eventKey,\n className = props.className,\n style = props.style,\n dragOver = props.dragOver,\n dragOverGapTop = props.dragOverGapTop,\n dragOverGapBottom = props.dragOverGapBottom,\n isLeaf = props.isLeaf,\n isStart = props.isStart,\n isEnd = props.isEnd,\n expanded = props.expanded,\n selected = props.selected,\n checked = props.checked,\n halfChecked = props.halfChecked,\n loading = props.loading,\n domRef = props.domRef,\n active = props.active,\n data = props.data,\n onMouseMove = props.onMouseMove,\n selectable = props.selectable,\n otherProps = _objectWithoutProperties(props, _excluded);\n var context = React.useContext(TreeContext);\n var unstableContext = React.useContext(UnstableContext);\n var selectHandleRef = React.useRef(null);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n dragNodeHighlight = _React$useState2[0],\n setDragNodeHighlight = _React$useState2[1];\n\n // ======= State: Disabled State =======\n var isDisabled = React.useMemo(function () {\n var _unstableContext$node;\n return !!(context.disabled || props.disabled || (_unstableContext$node = unstableContext.nodeDisabled) !== null && _unstableContext$node !== void 0 && _unstableContext$node.call(unstableContext, data));\n }, [context.disabled, props.disabled, unstableContext.nodeDisabled, data]);\n var isCheckable = React.useMemo(function () {\n // Return false if tree or treeNode is not checkable\n if (!context.checkable || props.checkable === false) {\n return false;\n }\n return context.checkable;\n }, [context.checkable, props.checkable]);\n\n // ======= Event Handlers: Selection and Check =======\n var onSelect = function onSelect(e) {\n if (isDisabled) {\n return;\n }\n context.onNodeSelect(e, convertNodePropsToEventData(props));\n };\n var onCheck = function onCheck(e) {\n if (isDisabled) {\n return;\n }\n if (!isCheckable || props.disableCheckbox) {\n return;\n }\n context.onNodeCheck(e, convertNodePropsToEventData(props), !checked);\n };\n\n // ======= State: Selectable Check =======\n var isSelectable = React.useMemo(function () {\n // Ignore when selectable is undefined or null\n if (typeof selectable === 'boolean') {\n return selectable;\n }\n return context.selectable;\n }, [selectable, context.selectable]);\n var onSelectorClick = function onSelectorClick(e) {\n // Click trigger before select/check operation\n context.onNodeClick(e, convertNodePropsToEventData(props));\n if (isSelectable) {\n onSelect(e);\n } else {\n onCheck(e);\n }\n };\n var onSelectorDoubleClick = function onSelectorDoubleClick(e) {\n context.onNodeDoubleClick(e, convertNodePropsToEventData(props));\n };\n var onMouseEnter = function onMouseEnter(e) {\n context.onNodeMouseEnter(e, convertNodePropsToEventData(props));\n };\n var onMouseLeave = function onMouseLeave(e) {\n context.onNodeMouseLeave(e, convertNodePropsToEventData(props));\n };\n var onContextMenu = function onContextMenu(e) {\n context.onNodeContextMenu(e, convertNodePropsToEventData(props));\n };\n\n // ======= Drag: Drag Enabled =======\n var isDraggable = React.useMemo(function () {\n return !!(context.draggable && (!context.draggable.nodeDraggable || context.draggable.nodeDraggable(data)));\n }, [context.draggable, data]);\n\n // ======= Drag: Drag Event Handlers =======\n var onDragStart = function onDragStart(e) {\n e.stopPropagation();\n setDragNodeHighlight(true);\n context.onNodeDragStart(e, props);\n try {\n // ie throw error\n // firefox-need-it\n e.dataTransfer.setData('text/plain', '');\n } catch (_unused) {\n // empty\n }\n };\n var onDragEnter = function onDragEnter(e) {\n e.preventDefault();\n e.stopPropagation();\n context.onNodeDragEnter(e, props);\n };\n var onDragOver = function onDragOver(e) {\n e.preventDefault();\n e.stopPropagation();\n context.onNodeDragOver(e, props);\n };\n var onDragLeave = function onDragLeave(e) {\n e.stopPropagation();\n context.onNodeDragLeave(e, props);\n };\n var onDragEnd = function onDragEnd(e) {\n e.stopPropagation();\n setDragNodeHighlight(false);\n context.onNodeDragEnd(e, props);\n };\n var onDrop = function onDrop(e) {\n e.preventDefault();\n e.stopPropagation();\n setDragNodeHighlight(false);\n context.onNodeDrop(e, props);\n };\n\n // ======= Expand: Node Expansion =======\n var onExpand = function onExpand(e) {\n if (loading) {\n return;\n }\n context.onNodeExpand(e, convertNodePropsToEventData(props));\n };\n\n // ======= State: Has Children =======\n var hasChildren = React.useMemo(function () {\n var _ref = getEntity(context.keyEntities, eventKey) || {},\n children = _ref.children;\n return Boolean((children || []).length);\n }, [context.keyEntities, eventKey]);\n\n // ======= State: Leaf Check =======\n var memoizedIsLeaf = React.useMemo(function () {\n if (isLeaf === false) {\n return false;\n }\n return isLeaf || !context.loadData && !hasChildren || context.loadData && props.loaded && !hasChildren;\n }, [isLeaf, context.loadData, hasChildren, props.loaded]);\n\n // ============== Effect ==============\n React.useEffect(function () {\n // Load data to avoid default expanded tree without data\n if (loading) {\n return;\n }\n // read from state to avoid loadData at same time\n if (typeof context.loadData === 'function' && expanded && !memoizedIsLeaf && !props.loaded) {\n // We needn't reload data when has children in sync logic\n // It's only needed in node expanded\n context.onNodeLoad(convertNodePropsToEventData(props));\n }\n }, [loading, context.loadData, context.onNodeLoad, expanded, memoizedIsLeaf, props]);\n\n // ==================== Render: Drag Handler ====================\n var dragHandlerNode = React.useMemo(function () {\n var _context$draggable;\n if (!((_context$draggable = context.draggable) !== null && _context$draggable !== void 0 && _context$draggable.icon)) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(context.prefixCls, \"-draggable-icon\")\n }, context.draggable.icon);\n }, [context.draggable]);\n\n // ====================== Render: Switcher ======================\n var renderSwitcherIconDom = function renderSwitcherIconDom(isInternalLeaf) {\n var switcherIcon = props.switcherIcon || context.switcherIcon;\n // if switcherIconDom is null, no render switcher span\n if (typeof switcherIcon === 'function') {\n return switcherIcon(_objectSpread(_objectSpread({}, props), {}, {\n isLeaf: isInternalLeaf\n }));\n }\n return switcherIcon;\n };\n\n // Switcher\n var renderSwitcher = function renderSwitcher() {\n if (memoizedIsLeaf) {\n // if switcherIconDom is null, no render switcher span\n var _switcherIconDom = renderSwitcherIconDom(true);\n return _switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(context.prefixCls, \"-switcher\"), \"\".concat(context.prefixCls, \"-switcher-noop\"))\n }, _switcherIconDom) : null;\n }\n var switcherIconDom = renderSwitcherIconDom(false);\n return switcherIconDom !== false ? /*#__PURE__*/React.createElement(\"span\", {\n onClick: onExpand,\n className: classNames(\"\".concat(context.prefixCls, \"-switcher\"), \"\".concat(context.prefixCls, \"-switcher_\").concat(expanded ? ICON_OPEN : ICON_CLOSE))\n }, switcherIconDom) : null;\n };\n\n // ====================== Checkbox ======================\n var checkboxNode = React.useMemo(function () {\n if (!isCheckable) {\n return null;\n }\n\n // [Legacy] Custom element should be separate with `checkable` in future\n var $custom = typeof isCheckable !== 'boolean' ? isCheckable : null;\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(context.prefixCls, \"-checkbox\"), _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(context.prefixCls, \"-checkbox-checked\"), checked), \"\".concat(context.prefixCls, \"-checkbox-indeterminate\"), !checked && halfChecked), \"\".concat(context.prefixCls, \"-checkbox-disabled\"), isDisabled || props.disableCheckbox)),\n onClick: onCheck,\n role: \"checkbox\",\n \"aria-checked\": halfChecked ? 'mixed' : checked,\n \"aria-disabled\": isDisabled || props.disableCheckbox,\n \"aria-label\": \"Select \".concat(typeof props.title === 'string' ? props.title : 'tree node')\n }, $custom);\n }, [isCheckable, checked, halfChecked, isDisabled, props.disableCheckbox, props.title]);\n\n // ============== State: Node State (Open/Close) ==============\n var nodeState = React.useMemo(function () {\n if (memoizedIsLeaf) {\n return null;\n }\n return expanded ? ICON_OPEN : ICON_CLOSE;\n }, [memoizedIsLeaf, expanded]);\n\n // ==================== Render: Title + Icon ====================\n var iconNode = React.useMemo(function () {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(context.prefixCls, \"-iconEle\"), \"\".concat(context.prefixCls, \"-icon__\").concat(nodeState || 'docu'), _defineProperty({}, \"\".concat(context.prefixCls, \"-icon_loading\"), loading))\n });\n }, [context.prefixCls, nodeState, loading]);\n\n // =================== Drop Indicator ===================\n var dropIndicatorNode = React.useMemo(function () {\n var rootDraggable = Boolean(context.draggable);\n // allowDrop is calculated in Tree.tsx, there is no need for calc it here\n var showIndicator = !props.disabled && rootDraggable && context.dragOverNodeKey === eventKey;\n if (!showIndicator) {\n return null;\n }\n return context.dropIndicatorRender({\n dropPosition: context.dropPosition,\n dropLevelOffset: context.dropLevelOffset,\n indent: context.indent,\n prefixCls: context.prefixCls,\n direction: context.direction\n });\n }, [context.dropPosition, context.dropLevelOffset, context.indent, context.prefixCls, context.direction, context.draggable, context.dragOverNodeKey, context.dropIndicatorRender]);\n\n // Icon + Title\n var selectorNode = React.useMemo(function () {\n var _props$title = props.title,\n title = _props$title === void 0 ? defaultTitle : _props$title;\n var wrapClass = \"\".concat(context.prefixCls, \"-node-content-wrapper\");\n\n // Icon - Still show loading icon when loading without showIcon\n var $icon;\n if (context.showIcon) {\n var currentIcon = props.icon || context.icon;\n $icon = currentIcon ? /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(context.prefixCls, \"-iconEle\"), \"\".concat(context.prefixCls, \"-icon__customize\"))\n }, typeof currentIcon === 'function' ? currentIcon(props) : currentIcon) : iconNode;\n } else if (context.loadData && loading) {\n $icon = iconNode;\n }\n\n // Title\n var titleNode;\n if (typeof title === 'function') {\n titleNode = title(data);\n } else if (context.titleRender) {\n titleNode = context.titleRender(data);\n } else {\n titleNode = title;\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n ref: selectHandleRef,\n title: typeof title === 'string' ? title : '',\n className: classNames(wrapClass, \"\".concat(wrapClass, \"-\").concat(nodeState || 'normal'), _defineProperty({}, \"\".concat(context.prefixCls, \"-node-selected\"), !isDisabled && (selected || dragNodeHighlight))),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onContextMenu: onContextMenu,\n onClick: onSelectorClick,\n onDoubleClick: onSelectorDoubleClick\n }, $icon, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(context.prefixCls, \"-title\")\n }, titleNode), dropIndicatorNode);\n }, [context.prefixCls, context.showIcon, props, context.icon, iconNode, context.titleRender, data, nodeState, onMouseEnter, onMouseLeave, onContextMenu, onSelectorClick, onSelectorDoubleClick]);\n var dataOrAriaAttributeProps = pickAttrs(otherProps, {\n aria: true,\n data: true\n });\n var _ref2 = getEntity(context.keyEntities, eventKey) || {},\n level = _ref2.level;\n var isEndNode = isEnd[isEnd.length - 1];\n var draggableWithoutDisabled = !isDisabled && isDraggable;\n var dragging = context.draggingNodeKey === eventKey;\n var ariaSelected = selectable !== undefined ? {\n 'aria-selected': !!selectable\n } : undefined;\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: domRef,\n role: \"treeitem\",\n \"aria-expanded\": isLeaf ? undefined : expanded,\n className: classNames(className, \"\".concat(context.prefixCls, \"-treenode\"), (_classNames4 = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_classNames4, \"\".concat(context.prefixCls, \"-treenode-disabled\"), isDisabled), \"\".concat(context.prefixCls, \"-treenode-switcher-\").concat(expanded ? 'open' : 'close'), !isLeaf), \"\".concat(context.prefixCls, \"-treenode-checkbox-checked\"), checked), \"\".concat(context.prefixCls, \"-treenode-checkbox-indeterminate\"), halfChecked), \"\".concat(context.prefixCls, \"-treenode-selected\"), selected), \"\".concat(context.prefixCls, \"-treenode-loading\"), loading), \"\".concat(context.prefixCls, \"-treenode-active\"), active), \"\".concat(context.prefixCls, \"-treenode-leaf-last\"), isEndNode), \"\".concat(context.prefixCls, \"-treenode-draggable\"), isDraggable), \"dragging\", dragging), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_classNames4, 'drop-target', context.dropTargetKey === eventKey), 'drop-container', context.dropContainerKey === eventKey), 'drag-over', !isDisabled && dragOver), 'drag-over-gap-top', !isDisabled && dragOverGapTop), 'drag-over-gap-bottom', !isDisabled && dragOverGapBottom), 'filter-node', (_context$filterTreeNo = context.filterTreeNode) === null || _context$filterTreeNo === void 0 ? void 0 : _context$filterTreeNo.call(context, convertNodePropsToEventData(props))), \"\".concat(context.prefixCls, \"-treenode-leaf\"), memoizedIsLeaf))),\n style: style\n // Draggable config\n ,\n draggable: draggableWithoutDisabled,\n onDragStart: draggableWithoutDisabled ? onDragStart : undefined\n // Drop config\n ,\n onDragEnter: isDraggable ? onDragEnter : undefined,\n onDragOver: isDraggable ? onDragOver : undefined,\n onDragLeave: isDraggable ? onDragLeave : undefined,\n onDrop: isDraggable ? onDrop : undefined,\n onDragEnd: isDraggable ? onDragEnd : undefined,\n onMouseMove: onMouseMove\n }, ariaSelected, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(Indent, {\n prefixCls: context.prefixCls,\n level: level,\n isStart: isStart,\n isEnd: isEnd\n }), dragHandlerNode, renderSwitcher(), checkboxNode, selectorNode);\n};\nTreeNode.isTreeNode = 1;\nif (process.env.NODE_ENV !== 'production') {\n TreeNode.displayName = 'TreeNode';\n}\nexport default TreeNode;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\n/* eslint-disable no-lonely-if */\n/**\n * Legacy code. Should avoid to use if you are new to import these code.\n */\n\nimport warning from \"rc-util/es/warning\";\nimport React from 'react';\nimport TreeNode from \"./TreeNode\";\nimport getEntity from \"./utils/keyUtil\";\nexport { getPosition, isTreeNode } from \"./utils/treeUtil\";\nexport function arrDel(list, value) {\n if (!list) return [];\n var clone = list.slice();\n var index = clone.indexOf(value);\n if (index >= 0) {\n clone.splice(index, 1);\n }\n return clone;\n}\nexport function arrAdd(list, value) {\n var clone = (list || []).slice();\n if (clone.indexOf(value) === -1) {\n clone.push(value);\n }\n return clone;\n}\nexport function posToArr(pos) {\n return pos.split('-');\n}\nexport function getDragChildrenKeys(dragNodeKey, keyEntities) {\n // not contains self\n // self for left or right drag\n var dragChildrenKeys = [];\n var entity = getEntity(keyEntities, dragNodeKey);\n function dig() {\n var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n list.forEach(function (_ref) {\n var key = _ref.key,\n children = _ref.children;\n dragChildrenKeys.push(key);\n dig(children);\n });\n }\n dig(entity.children);\n return dragChildrenKeys;\n}\nexport function isLastChild(treeNodeEntity) {\n if (treeNodeEntity.parent) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === treeNodeEntity.parent.children.length - 1;\n }\n return false;\n}\nexport function isFirstChild(treeNodeEntity) {\n var posArr = posToArr(treeNodeEntity.pos);\n return Number(posArr[posArr.length - 1]) === 0;\n}\n\n// Only used when drag, not affect SSR.\nexport function calcDropPosition(event, dragNodeProps, targetNodeProps, indent, startMousePosition, allowDrop, flattenedNodes, keyEntities, expandKeys, direction) {\n var _abstractDropNodeEnti;\n var clientX = event.clientX,\n clientY = event.clientY;\n var _getBoundingClientRec = event.target.getBoundingClientRect(),\n top = _getBoundingClientRec.top,\n height = _getBoundingClientRec.height;\n // optional chain for testing\n var horizontalMouseOffset = (direction === 'rtl' ? -1 : 1) * (((startMousePosition === null || startMousePosition === void 0 ? void 0 : startMousePosition.x) || 0) - clientX);\n var rawDropLevelOffset = (horizontalMouseOffset - 12) / indent;\n\n // Filter the expanded keys to exclude the node that not has children currently (like async nodes).\n var filteredExpandKeys = expandKeys.filter(function (key) {\n var _keyEntities$key;\n return (_keyEntities$key = keyEntities[key]) === null || _keyEntities$key === void 0 || (_keyEntities$key = _keyEntities$key.children) === null || _keyEntities$key === void 0 ? void 0 : _keyEntities$key.length;\n });\n\n // find abstract drop node by horizontal offset\n var abstractDropNodeEntity = getEntity(keyEntities, targetNodeProps.eventKey);\n if (clientY < top + height / 2) {\n // first half, set abstract drop node to previous node\n var nodeIndex = flattenedNodes.findIndex(function (flattenedNode) {\n return flattenedNode.key === abstractDropNodeEntity.key;\n });\n var prevNodeIndex = nodeIndex <= 0 ? 0 : nodeIndex - 1;\n var prevNodeKey = flattenedNodes[prevNodeIndex].key;\n abstractDropNodeEntity = getEntity(keyEntities, prevNodeKey);\n }\n var initialAbstractDropNodeKey = abstractDropNodeEntity.key;\n var abstractDragOverEntity = abstractDropNodeEntity;\n var dragOverNodeKey = abstractDropNodeEntity.key;\n var dropPosition = 0;\n var dropLevelOffset = 0;\n\n // Only allow cross level drop when dragging on a non-expanded node\n if (!filteredExpandKeys.includes(initialAbstractDropNodeKey)) {\n for (var i = 0; i < rawDropLevelOffset; i += 1) {\n if (isLastChild(abstractDropNodeEntity)) {\n abstractDropNodeEntity = abstractDropNodeEntity.parent;\n dropLevelOffset += 1;\n } else {\n break;\n }\n }\n }\n var abstractDragDataNode = dragNodeProps.data;\n var abstractDropDataNode = abstractDropNodeEntity.node;\n var dropAllowed = true;\n if (isFirstChild(abstractDropNodeEntity) && abstractDropNodeEntity.level === 0 && clientY < top + height / 2 && allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: -1\n }) && abstractDropNodeEntity.key === targetNodeProps.eventKey) {\n // first half of first node in first level\n dropPosition = -1;\n } else if ((abstractDragOverEntity.children || []).length && filteredExpandKeys.includes(dragOverNodeKey)) {\n // drop on expanded node\n // only allow drop inside\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else {\n dropAllowed = false;\n }\n } else if (dropLevelOffset === 0) {\n if (rawDropLevelOffset > -1.5) {\n // | Node | <- abstractDropNode\n // | -^-===== | <- mousePosition\n // 1. try drop after\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n } else {\n // | Node | <- abstractDropNode\n // | ---==^== | <- mousePosition\n // whether it has children or doesn't has children\n // always\n // 1. try drop inside\n // 2. try drop after\n // 3. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 0\n })) {\n dropPosition = 0;\n } else if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n } else {\n // | Node1 | <- abstractDropNode\n // | Node2 |\n // --^--|----=====| <- mousePosition\n // 1. try insert after Node1\n // 2. do not allow drop\n if (allowDrop({\n dragNode: abstractDragDataNode,\n dropNode: abstractDropDataNode,\n dropPosition: 1\n })) {\n dropPosition = 1;\n } else {\n dropAllowed = false;\n }\n }\n return {\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: abstractDropNodeEntity.key,\n dropTargetPos: abstractDropNodeEntity.pos,\n dragOverNodeKey: dragOverNodeKey,\n dropContainerKey: dropPosition === 0 ? null : ((_abstractDropNodeEnti = abstractDropNodeEntity.parent) === null || _abstractDropNodeEnti === void 0 ? void 0 : _abstractDropNodeEnti.key) || null,\n dropAllowed: dropAllowed\n };\n}\n\n/**\n * Return selectedKeys according with multiple prop\n * @param selectedKeys\n * @param props\n * @returns [string]\n */\nexport function calcSelectedKeys(selectedKeys, props) {\n if (!selectedKeys) return undefined;\n var multiple = props.multiple;\n if (multiple) {\n return selectedKeys.slice();\n }\n if (selectedKeys.length) {\n return [selectedKeys[0]];\n }\n return selectedKeys;\n}\nvar internalProcessProps = function internalProcessProps(props) {\n return props;\n};\nexport function convertDataToTree(treeData, processor) {\n if (!treeData) return [];\n var _ref2 = processor || {},\n _ref2$processProps = _ref2.processProps,\n processProps = _ref2$processProps === void 0 ? internalProcessProps : _ref2$processProps;\n var list = Array.isArray(treeData) ? treeData : [treeData];\n return list.map(function (_ref3) {\n var children = _ref3.children,\n props = _objectWithoutProperties(_ref3, _excluded);\n var childrenNodes = convertDataToTree(children, processor);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n key: props.key\n }, processProps(props)), childrenNodes);\n });\n}\n\n/**\n * Parse `checkedKeys` to { checkedKeys, halfCheckedKeys } style\n */\nexport function parseCheckedKeys(keys) {\n if (!keys) {\n return null;\n }\n\n // Convert keys to object format\n var keyProps;\n if (Array.isArray(keys)) {\n // [Legacy] Follow the api doc\n keyProps = {\n checkedKeys: keys,\n halfCheckedKeys: undefined\n };\n } else if (_typeof(keys) === 'object') {\n keyProps = {\n checkedKeys: keys.checked || undefined,\n halfCheckedKeys: keys.halfChecked || undefined\n };\n } else {\n warning(false, '`checkedKeys` is not an array or an object');\n return null;\n }\n return keyProps;\n}\n\n/**\n * If user use `autoExpandParent` we should get the list of parent node\n * @param keyList\n * @param keyEntities\n */\nexport function conductExpandParent(keyList, keyEntities) {\n var expandedKeys = new Set();\n function conductUp(key) {\n if (expandedKeys.has(key)) return;\n var entity = getEntity(keyEntities, key);\n if (!entity) return;\n expandedKeys.add(key);\n var parent = entity.parent,\n node = entity.node;\n if (node.disabled) return;\n if (parent) {\n conductUp(parent.key);\n }\n }\n (keyList || []).forEach(function (key) {\n conductUp(key);\n });\n return _toConsumableArray(expandedKeys);\n}","import warning from \"rc-util/es/warning\";\nimport getEntity from \"./keyUtil\";\nfunction removeFromCheckedKeys(halfCheckedKeys, checkedKeys) {\n var filteredKeys = new Set();\n halfCheckedKeys.forEach(function (key) {\n if (!checkedKeys.has(key)) {\n filteredKeys.add(key);\n }\n });\n return filteredKeys;\n}\nexport function isCheckDisabled(node) {\n var _ref = node || {},\n disabled = _ref.disabled,\n disableCheckbox = _ref.disableCheckbox,\n checkable = _ref.checkable;\n return !!(disabled || disableCheckbox) || checkable === false;\n}\n\n// Fill miss keys\nfunction fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set();\n\n // Add checked keys top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children = entity.children,\n children = _entity$children === void 0 ? [] : _entity$children;\n if (checkedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.add(childEntity.key);\n });\n }\n });\n }\n\n // Add checked keys from bottom to top\n var visitedKeys = new Set();\n for (var _level = maxLevel; _level >= 0; _level -= 1) {\n var _entities = levelEntities.get(_level) || new Set();\n _entities.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref2) {\n var key = _ref2.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (allChecked) {\n checkedKeys.add(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n\n// Remove useless key\nfunction cleanConductCheck(keys, halfKeys, levelEntities, maxLevel, syntheticGetCheckDisabled) {\n var checkedKeys = new Set(keys);\n var halfCheckedKeys = new Set(halfKeys);\n\n // Remove checked keys from top to bottom\n for (var level = 0; level <= maxLevel; level += 1) {\n var entities = levelEntities.get(level) || new Set();\n entities.forEach(function (entity) {\n var key = entity.key,\n node = entity.node,\n _entity$children2 = entity.children,\n children = _entity$children2 === void 0 ? [] : _entity$children2;\n if (!checkedKeys.has(key) && !halfCheckedKeys.has(key) && !syntheticGetCheckDisabled(node)) {\n children.filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (childEntity) {\n checkedKeys.delete(childEntity.key);\n });\n }\n });\n }\n\n // Remove checked keys form bottom to top\n halfCheckedKeys = new Set();\n var visitedKeys = new Set();\n for (var _level2 = maxLevel; _level2 >= 0; _level2 -= 1) {\n var _entities2 = levelEntities.get(_level2) || new Set();\n _entities2.forEach(function (entity) {\n var parent = entity.parent,\n node = entity.node;\n\n // Skip if no need to check\n if (syntheticGetCheckDisabled(node) || !entity.parent || visitedKeys.has(entity.parent.key)) {\n return;\n }\n\n // Skip if parent is disabled\n if (syntheticGetCheckDisabled(entity.parent.node)) {\n visitedKeys.add(parent.key);\n return;\n }\n var allChecked = true;\n var partialChecked = false;\n (parent.children || []).filter(function (childEntity) {\n return !syntheticGetCheckDisabled(childEntity.node);\n }).forEach(function (_ref3) {\n var key = _ref3.key;\n var checked = checkedKeys.has(key);\n if (allChecked && !checked) {\n allChecked = false;\n }\n if (!partialChecked && (checked || halfCheckedKeys.has(key))) {\n partialChecked = true;\n }\n });\n if (!allChecked) {\n checkedKeys.delete(parent.key);\n }\n if (partialChecked) {\n halfCheckedKeys.add(parent.key);\n }\n visitedKeys.add(parent.key);\n });\n }\n return {\n checkedKeys: Array.from(checkedKeys),\n halfCheckedKeys: Array.from(removeFromCheckedKeys(halfCheckedKeys, checkedKeys))\n };\n}\n\n/**\n * Conduct with keys.\n * @param keyList current key list\n * @param keyEntities key - dataEntity map\n * @param mode `fill` to fill missing key, `clean` to remove useless key\n */\nexport function conductCheck(keyList, checked, keyEntities, getCheckDisabled) {\n var warningMissKeys = [];\n var syntheticGetCheckDisabled;\n if (getCheckDisabled) {\n syntheticGetCheckDisabled = getCheckDisabled;\n } else {\n syntheticGetCheckDisabled = isCheckDisabled;\n }\n\n // We only handle exist keys\n var keys = new Set(keyList.filter(function (key) {\n var hasEntity = !!getEntity(keyEntities, key);\n if (!hasEntity) {\n warningMissKeys.push(key);\n }\n return hasEntity;\n }));\n var levelEntities = new Map();\n var maxLevel = 0;\n\n // Convert entities by level for calculation\n Object.keys(keyEntities).forEach(function (key) {\n var entity = keyEntities[key];\n var level = entity.level;\n var levelSet = levelEntities.get(level);\n if (!levelSet) {\n levelSet = new Set();\n levelEntities.set(level, levelSet);\n }\n levelSet.add(entity);\n maxLevel = Math.max(maxLevel, level);\n });\n warning(!warningMissKeys.length, \"Tree missing follow keys: \".concat(warningMissKeys.slice(0, 100).map(function (key) {\n return \"'\".concat(key, \"'\");\n }).join(', ')));\n var result;\n if (checked === true) {\n result = fillConductCheck(keys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n } else {\n result = cleanConductCheck(keys, checked.halfCheckedKeys, levelEntities, maxLevel, syntheticGetCheckDisabled);\n }\n return result;\n}","import * as React from 'react';\nconst RadioGroupContext = /*#__PURE__*/React.createContext(null);\nexport const RadioGroupContextProvider = RadioGroupContext.Provider;\nexport default RadioGroupContext;\nexport const RadioOptionTypeContext = /*#__PURE__*/React.createContext(null);\nexport const RadioOptionTypeContextProvider = RadioOptionTypeContext.Provider;","import { unit } from '@ant-design/cssinjs';\nimport { genFocusOutline, resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\n// ============================== Styles ==============================\n// styles from RadioGroup only\nconst getGroupRadioStyle = token => {\n const {\n componentCls,\n antCls\n } = token;\n const groupPrefixCls = `${componentCls}-group`;\n return {\n [groupPrefixCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-block',\n fontSize: 0,\n // RTL\n [`&${groupPrefixCls}-rtl`]: {\n direction: 'rtl'\n },\n [`&${groupPrefixCls}-block`]: {\n display: 'flex'\n },\n [`${antCls}-badge ${antCls}-badge-count`]: {\n zIndex: 1\n },\n [`> ${antCls}-badge:not(:first-child) > ${antCls}-button-wrapper`]: {\n borderInlineStart: 'none'\n }\n })\n };\n};\n// Styles from radio-wrapper\nconst getRadioBasicStyle = token => {\n const {\n componentCls,\n wrapperMarginInlineEnd,\n colorPrimary,\n radioSize,\n motionDurationSlow,\n motionDurationMid,\n motionEaseInOutCirc,\n colorBgContainer,\n colorBorder,\n lineWidth,\n colorBgContainerDisabled,\n colorTextDisabled,\n paddingXS,\n dotColorDisabled,\n lineType,\n radioColor,\n radioBgColor,\n calc\n } = token;\n const radioInnerPrefixCls = `${componentCls}-inner`;\n const dotPadding = 4;\n const radioDotDisabledSize = calc(radioSize).sub(calc(dotPadding).mul(2));\n const radioSizeCalc = calc(1).mul(radioSize).equal({\n unit: true\n });\n return {\n [`${componentCls}-wrapper`]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-flex',\n alignItems: 'baseline',\n marginInlineStart: 0,\n marginInlineEnd: wrapperMarginInlineEnd,\n cursor: 'pointer',\n '&:last-child': {\n marginInlineEnd: 0\n },\n // RTL\n [`&${componentCls}-wrapper-rtl`]: {\n direction: 'rtl'\n },\n '&-disabled': {\n cursor: 'not-allowed',\n color: token.colorTextDisabled\n },\n '&::after': {\n display: 'inline-block',\n width: 0,\n overflow: 'hidden',\n content: '\"\\\\a0\"'\n },\n '&-block': {\n flex: 1,\n justifyContent: 'center'\n },\n // hashId 在 wrapper 上,只能铺平\n [`${componentCls}-checked::after`]: {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n width: '100%',\n height: '100%',\n border: `${unit(lineWidth)} ${lineType} ${colorPrimary}`,\n borderRadius: '50%',\n visibility: 'hidden',\n opacity: 0,\n content: '\"\"'\n },\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'relative',\n display: 'inline-block',\n outline: 'none',\n cursor: 'pointer',\n alignSelf: 'center',\n borderRadius: '50%'\n }),\n [`${componentCls}-wrapper:hover &,\n &:hover ${radioInnerPrefixCls}`]: {\n borderColor: colorPrimary\n },\n [`${componentCls}-input:focus-visible + ${radioInnerPrefixCls}`]: Object.assign({}, genFocusOutline(token)),\n [`${componentCls}:hover::after, ${componentCls}-wrapper:hover &::after`]: {\n visibility: 'visible'\n },\n [`${componentCls}-inner`]: {\n '&::after': {\n boxSizing: 'border-box',\n position: 'absolute',\n insetBlockStart: '50%',\n insetInlineStart: '50%',\n display: 'block',\n width: radioSizeCalc,\n height: radioSizeCalc,\n marginBlockStart: calc(1).mul(radioSize).div(-2).equal({\n unit: true\n }),\n marginInlineStart: calc(1).mul(radioSize).div(-2).equal({\n unit: true\n }),\n backgroundColor: radioColor,\n borderBlockStart: 0,\n borderInlineStart: 0,\n borderRadius: radioSizeCalc,\n transform: 'scale(0)',\n opacity: 0,\n transition: `all ${motionDurationSlow} ${motionEaseInOutCirc}`,\n content: '\"\"'\n },\n boxSizing: 'border-box',\n position: 'relative',\n insetBlockStart: 0,\n insetInlineStart: 0,\n display: 'block',\n width: radioSizeCalc,\n height: radioSizeCalc,\n backgroundColor: colorBgContainer,\n borderColor: colorBorder,\n borderStyle: 'solid',\n borderWidth: lineWidth,\n borderRadius: '50%',\n transition: `all ${motionDurationMid}`\n },\n [`${componentCls}-input`]: {\n position: 'absolute',\n inset: 0,\n zIndex: 1,\n cursor: 'pointer',\n opacity: 0\n },\n // 选中状态\n [`${componentCls}-checked`]: {\n [radioInnerPrefixCls]: {\n borderColor: colorPrimary,\n backgroundColor: radioBgColor,\n '&::after': {\n transform: `scale(${token.calc(token.dotSize).div(radioSize).equal()})`,\n opacity: 1,\n transition: `all ${motionDurationSlow} ${motionEaseInOutCirc}`\n }\n }\n },\n [`${componentCls}-disabled`]: {\n cursor: 'not-allowed',\n [radioInnerPrefixCls]: {\n backgroundColor: colorBgContainerDisabled,\n borderColor: colorBorder,\n cursor: 'not-allowed',\n '&::after': {\n backgroundColor: dotColorDisabled\n }\n },\n [`${componentCls}-input`]: {\n cursor: 'not-allowed'\n },\n [`${componentCls}-disabled + span`]: {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n },\n [`&${componentCls}-checked`]: {\n [radioInnerPrefixCls]: {\n '&::after': {\n transform: `scale(${calc(radioDotDisabledSize).div(radioSize).equal()})`\n }\n }\n }\n },\n [`span${componentCls} + *`]: {\n paddingInlineStart: paddingXS,\n paddingInlineEnd: paddingXS\n }\n })\n };\n};\n// Styles from radio-button\nconst getRadioButtonStyle = token => {\n const {\n buttonColor,\n controlHeight,\n componentCls,\n lineWidth,\n lineType,\n colorBorder,\n motionDurationSlow,\n motionDurationMid,\n buttonPaddingInline,\n fontSize,\n buttonBg,\n fontSizeLG,\n controlHeightLG,\n controlHeightSM,\n paddingXS,\n borderRadius,\n borderRadiusSM,\n borderRadiusLG,\n buttonCheckedBg,\n buttonSolidCheckedColor,\n colorTextDisabled,\n colorBgContainerDisabled,\n buttonCheckedBgDisabled,\n buttonCheckedColorDisabled,\n colorPrimary,\n colorPrimaryHover,\n colorPrimaryActive,\n buttonSolidCheckedBg,\n buttonSolidCheckedHoverBg,\n buttonSolidCheckedActiveBg,\n calc\n } = token;\n return {\n [`${componentCls}-button-wrapper`]: {\n position: 'relative',\n display: 'inline-block',\n height: controlHeight,\n margin: 0,\n paddingInline: buttonPaddingInline,\n paddingBlock: 0,\n color: buttonColor,\n fontSize,\n lineHeight: unit(calc(controlHeight).sub(calc(lineWidth).mul(2)).equal()),\n background: buttonBg,\n border: `${unit(lineWidth)} ${lineType} ${colorBorder}`,\n // strange align fix for chrome but works\n // https://gw.alipayobjects.com/zos/rmsportal/VFTfKXJuogBAXcvfAUWJ.gif\n borderBlockStartWidth: calc(lineWidth).add(0.02).equal(),\n borderInlineStartWidth: 0,\n borderInlineEndWidth: lineWidth,\n cursor: 'pointer',\n transition: [`color ${motionDurationMid}`, `background ${motionDurationMid}`, `box-shadow ${motionDurationMid}`].join(','),\n a: {\n color: buttonColor\n },\n [`> ${componentCls}-button`]: {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n zIndex: -1,\n width: '100%',\n height: '100%'\n },\n '&:not(:first-child)': {\n '&::before': {\n position: 'absolute',\n insetBlockStart: calc(lineWidth).mul(-1).equal(),\n insetInlineStart: calc(lineWidth).mul(-1).equal(),\n display: 'block',\n boxSizing: 'content-box',\n width: 1,\n height: '100%',\n paddingBlock: lineWidth,\n paddingInline: 0,\n backgroundColor: colorBorder,\n transition: `background-color ${motionDurationSlow}`,\n content: '\"\"'\n }\n },\n '&:first-child': {\n borderInlineStart: `${unit(lineWidth)} ${lineType} ${colorBorder}`,\n borderStartStartRadius: borderRadius,\n borderEndStartRadius: borderRadius\n },\n '&:last-child': {\n borderStartEndRadius: borderRadius,\n borderEndEndRadius: borderRadius\n },\n '&:first-child:last-child': {\n borderRadius\n },\n [`${componentCls}-group-large &`]: {\n height: controlHeightLG,\n fontSize: fontSizeLG,\n lineHeight: unit(calc(controlHeightLG).sub(calc(lineWidth).mul(2)).equal()),\n '&:first-child': {\n borderStartStartRadius: borderRadiusLG,\n borderEndStartRadius: borderRadiusLG\n },\n '&:last-child': {\n borderStartEndRadius: borderRadiusLG,\n borderEndEndRadius: borderRadiusLG\n }\n },\n [`${componentCls}-group-small &`]: {\n height: controlHeightSM,\n paddingInline: calc(paddingXS).sub(lineWidth).equal(),\n paddingBlock: 0,\n lineHeight: unit(calc(controlHeightSM).sub(calc(lineWidth).mul(2)).equal()),\n '&:first-child': {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM\n },\n '&:last-child': {\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n }\n },\n '&:hover': {\n position: 'relative',\n color: colorPrimary\n },\n '&:has(:focus-visible)': Object.assign({}, genFocusOutline(token)),\n [`${componentCls}-inner, input[type='checkbox'], input[type='radio']`]: {\n width: 0,\n height: 0,\n opacity: 0,\n pointerEvents: 'none'\n },\n [`&-checked:not(${componentCls}-button-wrapper-disabled)`]: {\n zIndex: 1,\n color: colorPrimary,\n background: buttonCheckedBg,\n borderColor: colorPrimary,\n '&::before': {\n backgroundColor: colorPrimary\n },\n '&:first-child': {\n borderColor: colorPrimary\n },\n '&:hover': {\n color: colorPrimaryHover,\n borderColor: colorPrimaryHover,\n '&::before': {\n backgroundColor: colorPrimaryHover\n }\n },\n '&:active': {\n color: colorPrimaryActive,\n borderColor: colorPrimaryActive,\n '&::before': {\n backgroundColor: colorPrimaryActive\n }\n }\n },\n [`${componentCls}-group-solid &-checked:not(${componentCls}-button-wrapper-disabled)`]: {\n color: buttonSolidCheckedColor,\n background: buttonSolidCheckedBg,\n borderColor: buttonSolidCheckedBg,\n '&:hover': {\n color: buttonSolidCheckedColor,\n background: buttonSolidCheckedHoverBg,\n borderColor: buttonSolidCheckedHoverBg\n },\n '&:active': {\n color: buttonSolidCheckedColor,\n background: buttonSolidCheckedActiveBg,\n borderColor: buttonSolidCheckedActiveBg\n }\n },\n '&-disabled': {\n color: colorTextDisabled,\n backgroundColor: colorBgContainerDisabled,\n borderColor: colorBorder,\n cursor: 'not-allowed',\n '&:first-child, &:hover': {\n color: colorTextDisabled,\n backgroundColor: colorBgContainerDisabled,\n borderColor: colorBorder\n }\n },\n [`&-disabled${componentCls}-button-wrapper-checked`]: {\n color: buttonCheckedColorDisabled,\n backgroundColor: buttonCheckedBgDisabled,\n borderColor: colorBorder,\n boxShadow: 'none'\n },\n '&-block': {\n flex: 1,\n textAlign: 'center'\n }\n }\n };\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => {\n const {\n wireframe,\n padding,\n marginXS,\n lineWidth,\n fontSizeLG,\n colorText,\n colorBgContainer,\n colorTextDisabled,\n controlItemBgActiveDisabled,\n colorTextLightSolid,\n colorPrimary,\n colorPrimaryHover,\n colorPrimaryActive,\n colorWhite\n } = token;\n const dotPadding = 4; // Fixed value\n const radioSize = fontSizeLG;\n const radioDotSize = wireframe ? radioSize - dotPadding * 2 : radioSize - (dotPadding + lineWidth) * 2;\n return {\n // Radio\n radioSize,\n dotSize: radioDotSize,\n dotColorDisabled: colorTextDisabled,\n // Radio buttons\n buttonSolidCheckedColor: colorTextLightSolid,\n buttonSolidCheckedBg: colorPrimary,\n buttonSolidCheckedHoverBg: colorPrimaryHover,\n buttonSolidCheckedActiveBg: colorPrimaryActive,\n buttonBg: colorBgContainer,\n buttonCheckedBg: colorBgContainer,\n buttonColor: colorText,\n buttonCheckedBgDisabled: controlItemBgActiveDisabled,\n buttonCheckedColorDisabled: colorTextDisabled,\n buttonPaddingInline: padding - lineWidth,\n wrapperMarginInlineEnd: marginXS,\n // internal\n radioColor: wireframe ? colorPrimary : colorWhite,\n radioBgColor: wireframe ? colorBgContainer : colorPrimary\n };\n};\nexport default genStyleHooks('Radio', token => {\n const {\n controlOutline,\n controlOutlineWidth\n } = token;\n const radioFocusShadow = `0 0 0 ${unit(controlOutlineWidth)} ${controlOutline}`;\n const radioButtonFocusShadow = radioFocusShadow;\n const radioToken = mergeToken(token, {\n radioFocusShadow,\n radioButtonFocusShadow\n });\n return [getGroupRadioStyle(radioToken), getRadioBasicStyle(radioToken), getRadioButtonStyle(radioToken)];\n}, prepareComponentToken, {\n unitless: {\n radioSize: true,\n dotSize: true\n }\n});","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport RcCheckbox from 'rc-checkbox';\nimport { composeRef } from \"rc-util/es/ref\";\nimport { devUseWarning } from '../_util/warning';\nimport Wave from '../_util/wave';\nimport { TARGET_CLS } from '../_util/wave/interface';\nimport useBubbleLock from '../checkbox/useBubbleLock';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport { FormItemInputContext } from '../form/context';\nimport RadioGroupContext, { RadioOptionTypeContext } from './context';\nimport useStyle from './style';\nconst InternalRadio = (props, ref) => {\n var _a, _b;\n const groupContext = React.useContext(RadioGroupContext);\n const radioOptionTypeContext = React.useContext(RadioOptionTypeContext);\n const {\n getPrefixCls,\n direction,\n radio\n } = React.useContext(ConfigContext);\n const innerRef = React.useRef(null);\n const mergedRef = composeRef(ref, innerRef);\n const {\n isFormItemInput\n } = React.useContext(FormItemInputContext);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Radio');\n process.env.NODE_ENV !== \"production\" ? warning(!('optionType' in props), 'usage', '`optionType` is only support in Radio.Group.') : void 0;\n }\n const onChange = e => {\n var _a, _b;\n (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, e);\n (_b = groupContext === null || groupContext === void 0 ? void 0 : groupContext.onChange) === null || _b === void 0 ? void 0 : _b.call(groupContext, e);\n };\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n children,\n style,\n title\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"children\", \"style\", \"title\"]);\n const radioPrefixCls = getPrefixCls('radio', customizePrefixCls);\n const isButtonType = ((groupContext === null || groupContext === void 0 ? void 0 : groupContext.optionType) || radioOptionTypeContext) === 'button';\n const prefixCls = isButtonType ? `${radioPrefixCls}-button` : radioPrefixCls;\n // Style\n const rootCls = useCSSVarCls(radioPrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(radioPrefixCls, rootCls);\n const radioProps = Object.assign({}, restProps);\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n if (groupContext) {\n radioProps.name = groupContext.name;\n radioProps.onChange = onChange;\n radioProps.checked = props.value === groupContext.value;\n radioProps.disabled = (_a = radioProps.disabled) !== null && _a !== void 0 ? _a : groupContext.disabled;\n }\n radioProps.disabled = (_b = radioProps.disabled) !== null && _b !== void 0 ? _b : disabled;\n const wrapperClassString = classNames(`${prefixCls}-wrapper`, {\n [`${prefixCls}-wrapper-checked`]: radioProps.checked,\n [`${prefixCls}-wrapper-disabled`]: radioProps.disabled,\n [`${prefixCls}-wrapper-rtl`]: direction === 'rtl',\n [`${prefixCls}-wrapper-in-form-item`]: isFormItemInput,\n [`${prefixCls}-wrapper-block`]: !!(groupContext === null || groupContext === void 0 ? void 0 : groupContext.block)\n }, radio === null || radio === void 0 ? void 0 : radio.className, className, rootClassName, hashId, cssVarCls, rootCls);\n // ============================ Event Lock ============================\n const [onLabelClick, onInputClick] = useBubbleLock(radioProps.onClick);\n // ============================== Render ==============================\n return wrapCSSVar(/*#__PURE__*/React.createElement(Wave, {\n component: \"Radio\",\n disabled: radioProps.disabled\n }, /*#__PURE__*/React.createElement(\"label\", {\n className: wrapperClassString,\n style: Object.assign(Object.assign({}, radio === null || radio === void 0 ? void 0 : radio.style), style),\n onMouseEnter: props.onMouseEnter,\n onMouseLeave: props.onMouseLeave,\n title: title,\n onClick: onLabelClick\n }, /*#__PURE__*/React.createElement(RcCheckbox, Object.assign({}, radioProps, {\n className: classNames(radioProps.className, {\n [TARGET_CLS]: !isButtonType\n }),\n type: \"radio\",\n prefixCls: prefixCls,\n ref: mergedRef,\n onClick: onInputClick\n })), children !== undefined ? /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-label`\n }, children) : null)));\n};\nconst Radio = /*#__PURE__*/React.forwardRef(InternalRadio);\nif (process.env.NODE_ENV !== 'production') {\n Radio.displayName = 'Radio';\n}\nexport default Radio;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useSize from '../config-provider/hooks/useSize';\nimport { RadioGroupContextProvider } from './context';\nimport Radio from './radio';\nimport useStyle from './style';\nimport useId from \"rc-util/es/hooks/useId\";\nconst RadioGroup = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const defaultName = useId();\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n options,\n buttonStyle = 'outline',\n disabled,\n children,\n size: customizeSize,\n style,\n id,\n optionType,\n name = defaultName,\n defaultValue,\n value: customizedValue,\n block = false,\n onChange,\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur\n } = props;\n const [value, setValue] = useMergedState(defaultValue, {\n value: customizedValue\n });\n const onRadioChange = React.useCallback(event => {\n const lastValue = value;\n const val = event.target.value;\n if (!('value' in props)) {\n setValue(val);\n }\n if (val !== lastValue) {\n onChange === null || onChange === void 0 ? void 0 : onChange(event);\n }\n }, [value, setValue, onChange]);\n const prefixCls = getPrefixCls('radio', customizePrefixCls);\n const groupPrefixCls = `${prefixCls}-group`;\n // Style\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n let childrenToRender = children;\n // 如果存在 options, 优先使用\n if (options && options.length > 0) {\n childrenToRender = options.map(option => {\n if (typeof option === 'string' || typeof option === 'number') {\n // 此处类型自动推导为 string\n return /*#__PURE__*/React.createElement(Radio, {\n key: option.toString(),\n prefixCls: prefixCls,\n disabled: disabled,\n value: option,\n checked: value === option\n }, option);\n }\n // 此处类型自动推导为 { label: string value: string }\n return /*#__PURE__*/React.createElement(Radio, {\n key: `radio-group-value-options-${option.value}`,\n prefixCls: prefixCls,\n disabled: option.disabled || disabled,\n value: option.value,\n checked: value === option.value,\n title: option.title,\n style: option.style,\n id: option.id,\n required: option.required\n }, option.label);\n });\n }\n const mergedSize = useSize(customizeSize);\n const classString = classNames(groupPrefixCls, `${groupPrefixCls}-${buttonStyle}`, {\n [`${groupPrefixCls}-${mergedSize}`]: mergedSize,\n [`${groupPrefixCls}-rtl`]: direction === 'rtl',\n [`${groupPrefixCls}-block`]: block\n }, className, rootClassName, hashId, cssVarCls, rootCls);\n const memoizedValue = React.useMemo(() => ({\n onChange: onRadioChange,\n value,\n disabled,\n name,\n optionType,\n block\n }), [onRadioChange, value, disabled, name, optionType, block]);\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({}, pickAttrs(props, {\n aria: true,\n data: true\n }), {\n className: classString,\n style: style,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onFocus: onFocus,\n onBlur: onBlur,\n id: id,\n ref: ref\n }), /*#__PURE__*/React.createElement(RadioGroupContextProvider, {\n value: memoizedValue\n }, childrenToRender)));\n});\nexport default /*#__PURE__*/React.memo(RadioGroup);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nimport { RadioOptionTypeContextProvider } from './context';\nimport Radio from './radio';\nconst RadioButton = (props, ref) => {\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls\n } = props,\n radioProps = __rest(props, [\"prefixCls\"]);\n const prefixCls = getPrefixCls('radio', customizePrefixCls);\n return /*#__PURE__*/React.createElement(RadioOptionTypeContextProvider, {\n value: \"button\"\n }, /*#__PURE__*/React.createElement(Radio, Object.assign({\n prefixCls: prefixCls\n }, radioProps, {\n type: \"radio\",\n ref: ref\n })));\n};\nexport default /*#__PURE__*/React.forwardRef(RadioButton);","\"use client\";\n\nimport Group from './group';\nimport InternalRadio from './radio';\nimport Button from './radioButton';\nexport { Button, Group };\nconst Radio = InternalRadio;\nRadio.Button = Button;\nRadio.Group = Group;\nRadio.__ANT_RADIO = true;\nexport default Radio;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport { useCallback, useMemo } from 'react';\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport classNames from 'classnames';\nimport { INTERNAL_COL_DEFINE } from 'rc-table';\nimport { arrAdd, arrDel } from \"rc-tree/es/util\";\nimport { conductCheck } from \"rc-tree/es/utils/conductUtil\";\nimport { convertDataToEntities } from \"rc-tree/es/utils/treeUtil\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport useMultipleSelect from '../../_util/hooks/useMultipleSelect';\nimport { devUseWarning } from '../../_util/warning';\nimport Checkbox from '../../checkbox';\nimport Dropdown from '../../dropdown';\nimport Radio from '../../radio';\n// TODO: warning if use ajax!!!\nexport const SELECTION_COLUMN = {};\nexport const SELECTION_ALL = 'SELECT_ALL';\nexport const SELECTION_INVERT = 'SELECT_INVERT';\nexport const SELECTION_NONE = 'SELECT_NONE';\nconst EMPTY_LIST = [];\nconst flattenData = (childrenColumnName, data) => {\n let list = [];\n (data || []).forEach(record => {\n list.push(record);\n if (record && typeof record === 'object' && childrenColumnName in record) {\n list = [].concat(_toConsumableArray(list), _toConsumableArray(flattenData(childrenColumnName, record[childrenColumnName])));\n }\n });\n return list;\n};\nconst useSelection = (config, rowSelection) => {\n const {\n preserveSelectedRowKeys,\n selectedRowKeys,\n defaultSelectedRowKeys,\n getCheckboxProps,\n onChange: onSelectionChange,\n onSelect,\n onSelectAll,\n onSelectInvert,\n onSelectNone,\n onSelectMultiple,\n columnWidth: selectionColWidth,\n type: selectionType,\n selections,\n fixed,\n renderCell: customizeRenderCell,\n hideSelectAll,\n checkStrictly = true\n } = rowSelection || {};\n const {\n prefixCls,\n data,\n pageData,\n getRecordByKey,\n getRowKey,\n expandType,\n childrenColumnName,\n locale: tableLocale,\n getPopupContainer\n } = config;\n const warning = devUseWarning('Table');\n // ========================= MultipleSelect =========================\n const [multipleSelect, updatePrevSelectedIndex] = useMultipleSelect(item => item);\n // ========================= Keys =========================\n const [mergedSelectedKeys, setMergedSelectedKeys] = useMergedState(selectedRowKeys || defaultSelectedRowKeys || EMPTY_LIST, {\n value: selectedRowKeys\n });\n // ======================== Caches ========================\n const preserveRecordsRef = React.useRef(new Map());\n const updatePreserveRecordsCache = useCallback(keys => {\n if (preserveSelectedRowKeys) {\n const newCache = new Map();\n // Keep key if mark as preserveSelectedRowKeys\n keys.forEach(key => {\n let record = getRecordByKey(key);\n if (!record && preserveRecordsRef.current.has(key)) {\n record = preserveRecordsRef.current.get(key);\n }\n newCache.set(key, record);\n });\n // Refresh to new cache\n preserveRecordsRef.current = newCache;\n }\n }, [getRecordByKey, preserveSelectedRowKeys]);\n // Update cache with selectedKeys\n React.useEffect(() => {\n updatePreserveRecordsCache(mergedSelectedKeys);\n }, [mergedSelectedKeys]);\n // Get flatten data\n const flattedData = useMemo(() => flattenData(childrenColumnName, pageData), [childrenColumnName, pageData]);\n const {\n keyEntities\n } = useMemo(() => {\n if (checkStrictly) {\n return {\n keyEntities: null\n };\n }\n let convertData = data;\n if (preserveSelectedRowKeys) {\n // use flattedData keys\n const keysSet = new Set(flattedData.map((record, index) => getRowKey(record, index)));\n // remove preserveRecords that duplicate data\n const preserveRecords = Array.from(preserveRecordsRef.current).reduce((total, _ref) => {\n let [key, value] = _ref;\n return keysSet.has(key) ? total : total.concat(value);\n }, []);\n convertData = [].concat(_toConsumableArray(convertData), _toConsumableArray(preserveRecords));\n }\n return convertDataToEntities(convertData, {\n externalGetKey: getRowKey,\n childrenPropName: childrenColumnName\n });\n }, [data, getRowKey, checkStrictly, childrenColumnName, preserveSelectedRowKeys, flattedData]);\n // Get all checkbox props\n const checkboxPropsMap = useMemo(() => {\n const map = new Map();\n flattedData.forEach((record, index) => {\n const key = getRowKey(record, index);\n const checkboxProps = (getCheckboxProps ? getCheckboxProps(record) : null) || {};\n map.set(key, checkboxProps);\n process.env.NODE_ENV !== \"production\" ? warning(!('checked' in checkboxProps || 'defaultChecked' in checkboxProps), 'usage', 'Do not set `checked` or `defaultChecked` in `getCheckboxProps`. Please use `selectedRowKeys` instead.') : void 0;\n });\n return map;\n }, [flattedData, getRowKey, getCheckboxProps]);\n const isCheckboxDisabled = useCallback(r => {\n const rowKey = getRowKey(r);\n let checkboxProps;\n if (checkboxPropsMap.has(rowKey)) {\n checkboxProps = checkboxPropsMap.get(getRowKey(r));\n } else {\n checkboxProps = getCheckboxProps ? getCheckboxProps(r) : undefined;\n }\n return !!(checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.disabled);\n }, [checkboxPropsMap, getRowKey]);\n const [derivedSelectedKeys, derivedHalfSelectedKeys] = useMemo(() => {\n if (checkStrictly) {\n return [mergedSelectedKeys || [], []];\n }\n const {\n checkedKeys,\n halfCheckedKeys\n } = conductCheck(mergedSelectedKeys, true, keyEntities, isCheckboxDisabled);\n return [checkedKeys || [], halfCheckedKeys];\n }, [mergedSelectedKeys, checkStrictly, keyEntities, isCheckboxDisabled]);\n const derivedSelectedKeySet = useMemo(() => {\n const keys = selectionType === 'radio' ? derivedSelectedKeys.slice(0, 1) : derivedSelectedKeys;\n return new Set(keys);\n }, [derivedSelectedKeys, selectionType]);\n const derivedHalfSelectedKeySet = useMemo(() => selectionType === 'radio' ? new Set() : new Set(derivedHalfSelectedKeys), [derivedHalfSelectedKeys, selectionType]);\n // Reset if rowSelection reset\n React.useEffect(() => {\n if (!rowSelection) {\n setMergedSelectedKeys(EMPTY_LIST);\n }\n }, [!!rowSelection]);\n const setSelectedKeys = useCallback((keys, method) => {\n let availableKeys;\n let records;\n updatePreserveRecordsCache(keys);\n if (preserveSelectedRowKeys) {\n availableKeys = keys;\n records = keys.map(key => preserveRecordsRef.current.get(key));\n } else {\n // Filter key which not exist in the `dataSource`\n availableKeys = [];\n records = [];\n keys.forEach(key => {\n const record = getRecordByKey(key);\n if (record !== undefined) {\n availableKeys.push(key);\n records.push(record);\n }\n });\n }\n setMergedSelectedKeys(availableKeys);\n onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(availableKeys, records, {\n type: method\n });\n }, [setMergedSelectedKeys, getRecordByKey, onSelectionChange, preserveSelectedRowKeys]);\n // ====================== Selections ======================\n // Trigger single `onSelect` event\n const triggerSingleSelection = useCallback((key, selected, keys, event) => {\n if (onSelect) {\n const rows = keys.map(k => getRecordByKey(k));\n onSelect(getRecordByKey(key), selected, rows, event);\n }\n setSelectedKeys(keys, 'single');\n }, [onSelect, getRecordByKey, setSelectedKeys]);\n const mergedSelections = useMemo(() => {\n if (!selections || hideSelectAll) {\n return null;\n }\n const selectionList = selections === true ? [SELECTION_ALL, SELECTION_INVERT, SELECTION_NONE] : selections;\n return selectionList.map(selection => {\n if (selection === SELECTION_ALL) {\n return {\n key: 'all',\n text: tableLocale.selectionAll,\n onSelect() {\n setSelectedKeys(data.map((record, index) => getRowKey(record, index)).filter(key => {\n const checkProps = checkboxPropsMap.get(key);\n return !(checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled) || derivedSelectedKeySet.has(key);\n }), 'all');\n }\n };\n }\n if (selection === SELECTION_INVERT) {\n return {\n key: 'invert',\n text: tableLocale.selectInvert,\n onSelect() {\n const keySet = new Set(derivedSelectedKeySet);\n pageData.forEach((record, index) => {\n const key = getRowKey(record, index);\n const checkProps = checkboxPropsMap.get(key);\n if (!(checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled)) {\n if (keySet.has(key)) {\n keySet.delete(key);\n } else {\n keySet.add(key);\n }\n }\n });\n const keys = Array.from(keySet);\n if (onSelectInvert) {\n warning.deprecated(false, 'onSelectInvert', 'onChange');\n onSelectInvert(keys);\n }\n setSelectedKeys(keys, 'invert');\n }\n };\n }\n if (selection === SELECTION_NONE) {\n return {\n key: 'none',\n text: tableLocale.selectNone,\n onSelect() {\n onSelectNone === null || onSelectNone === void 0 ? void 0 : onSelectNone();\n setSelectedKeys(Array.from(derivedSelectedKeySet).filter(key => {\n const checkProps = checkboxPropsMap.get(key);\n return checkProps === null || checkProps === void 0 ? void 0 : checkProps.disabled;\n }), 'none');\n }\n };\n }\n return selection;\n }).map(selection => Object.assign(Object.assign({}, selection), {\n onSelect: function () {\n var _a2;\n var _a;\n for (var _len = arguments.length, rest = new Array(_len), _key = 0; _key < _len; _key++) {\n rest[_key] = arguments[_key];\n }\n (_a = selection.onSelect) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [selection].concat(rest));\n updatePrevSelectedIndex(null);\n }\n }));\n }, [selections, derivedSelectedKeySet, pageData, getRowKey, onSelectInvert, setSelectedKeys]);\n // ======================= Columns ========================\n const transformColumns = useCallback(columns => {\n var _a;\n // >>>>>>>>>>> Skip if not exists `rowSelection`\n if (!rowSelection) {\n process.env.NODE_ENV !== \"production\" ? warning(!columns.includes(SELECTION_COLUMN), 'usage', '`rowSelection` is not config but `SELECTION_COLUMN` exists in the `columns`.') : void 0;\n return columns.filter(col => col !== SELECTION_COLUMN);\n }\n // >>>>>>>>>>> Support selection\n let cloneColumns = _toConsumableArray(columns);\n const keySet = new Set(derivedSelectedKeySet);\n // Record key only need check with enabled\n const recordKeys = flattedData.map(getRowKey).filter(key => !checkboxPropsMap.get(key).disabled);\n const checkedCurrentAll = recordKeys.every(key => keySet.has(key));\n const checkedCurrentSome = recordKeys.some(key => keySet.has(key));\n const onSelectAllChange = () => {\n const changeKeys = [];\n if (checkedCurrentAll) {\n recordKeys.forEach(key => {\n keySet.delete(key);\n changeKeys.push(key);\n });\n } else {\n recordKeys.forEach(key => {\n if (!keySet.has(key)) {\n keySet.add(key);\n changeKeys.push(key);\n }\n });\n }\n const keys = Array.from(keySet);\n onSelectAll === null || onSelectAll === void 0 ? void 0 : onSelectAll(!checkedCurrentAll, keys.map(k => getRecordByKey(k)), changeKeys.map(k => getRecordByKey(k)));\n setSelectedKeys(keys, 'all');\n updatePrevSelectedIndex(null);\n };\n // ===================== Render =====================\n // Title Cell\n let title;\n let columnTitleCheckbox;\n if (selectionType !== 'radio') {\n let customizeSelections;\n if (mergedSelections) {\n const menu = {\n getPopupContainer,\n items: mergedSelections.map((selection, index) => {\n const {\n key,\n text,\n onSelect: onSelectionClick\n } = selection;\n return {\n key: key !== null && key !== void 0 ? key : index,\n onClick: () => {\n onSelectionClick === null || onSelectionClick === void 0 ? void 0 : onSelectionClick(recordKeys);\n },\n label: text\n };\n })\n };\n customizeSelections = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-selection-extra`\n }, /*#__PURE__*/React.createElement(Dropdown, {\n menu: menu,\n getPopupContainer: getPopupContainer\n }, /*#__PURE__*/React.createElement(\"span\", null, /*#__PURE__*/React.createElement(DownOutlined, null))));\n }\n const allDisabledData = flattedData.map((record, index) => {\n const key = getRowKey(record, index);\n const checkboxProps = checkboxPropsMap.get(key) || {};\n return Object.assign({\n checked: keySet.has(key)\n }, checkboxProps);\n }).filter(_ref2 => {\n let {\n disabled\n } = _ref2;\n return disabled;\n });\n const allDisabled = !!allDisabledData.length && allDisabledData.length === flattedData.length;\n const allDisabledAndChecked = allDisabled && allDisabledData.every(_ref3 => {\n let {\n checked\n } = _ref3;\n return checked;\n });\n const allDisabledSomeChecked = allDisabled && allDisabledData.some(_ref4 => {\n let {\n checked\n } = _ref4;\n return checked;\n });\n columnTitleCheckbox = /*#__PURE__*/React.createElement(Checkbox, {\n checked: !allDisabled ? !!flattedData.length && checkedCurrentAll : allDisabledAndChecked,\n indeterminate: !allDisabled ? !checkedCurrentAll && checkedCurrentSome : !allDisabledAndChecked && allDisabledSomeChecked,\n onChange: onSelectAllChange,\n disabled: flattedData.length === 0 || allDisabled,\n \"aria-label\": customizeSelections ? 'Custom selection' : 'Select all',\n skipGroup: true\n });\n title = !hideSelectAll && (/*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-selection`\n }, columnTitleCheckbox, customizeSelections));\n }\n // Body Cell\n let renderCell;\n if (selectionType === 'radio') {\n renderCell = (_, record, index) => {\n const key = getRowKey(record, index);\n const checked = keySet.has(key);\n const checkboxProps = checkboxPropsMap.get(key);\n return {\n node: (/*#__PURE__*/React.createElement(Radio, Object.assign({}, checkboxProps, {\n checked: checked,\n onClick: e => {\n var _a;\n e.stopPropagation();\n (_a = checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.onClick) === null || _a === void 0 ? void 0 : _a.call(checkboxProps, e);\n },\n onChange: event => {\n var _a;\n if (!keySet.has(key)) {\n triggerSingleSelection(key, true, [key], event.nativeEvent);\n }\n (_a = checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.onChange) === null || _a === void 0 ? void 0 : _a.call(checkboxProps, event);\n }\n }))),\n checked\n };\n };\n } else {\n renderCell = (_, record, index) => {\n var _a;\n const key = getRowKey(record, index);\n const checked = keySet.has(key);\n const indeterminate = derivedHalfSelectedKeySet.has(key);\n const checkboxProps = checkboxPropsMap.get(key);\n let mergedIndeterminate;\n if (expandType === 'nest') {\n mergedIndeterminate = indeterminate;\n process.env.NODE_ENV !== \"production\" ? warning(typeof (checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== 'boolean', 'usage', 'set `indeterminate` using `rowSelection.getCheckboxProps` is not allowed with tree structured dataSource.') : void 0;\n } else {\n mergedIndeterminate = (_a = checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.indeterminate) !== null && _a !== void 0 ? _a : indeterminate;\n }\n // Record checked\n return {\n node: (/*#__PURE__*/React.createElement(Checkbox, Object.assign({}, checkboxProps, {\n indeterminate: mergedIndeterminate,\n checked: checked,\n skipGroup: true,\n onClick: e => {\n var _a;\n e.stopPropagation();\n (_a = checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.onClick) === null || _a === void 0 ? void 0 : _a.call(checkboxProps, e);\n },\n onChange: event => {\n var _a;\n const {\n nativeEvent\n } = event;\n const {\n shiftKey\n } = nativeEvent;\n const currentSelectedIndex = recordKeys.findIndex(item => item === key);\n const isMultiple = derivedSelectedKeys.some(item => recordKeys.includes(item));\n if (shiftKey && checkStrictly && isMultiple) {\n const changedKeys = multipleSelect(currentSelectedIndex, recordKeys, keySet);\n const keys = Array.from(keySet);\n onSelectMultiple === null || onSelectMultiple === void 0 ? void 0 : onSelectMultiple(!checked, keys.map(recordKey => getRecordByKey(recordKey)), changedKeys.map(recordKey => getRecordByKey(recordKey)));\n setSelectedKeys(keys, 'multiple');\n } else {\n // Single record selected\n const originCheckedKeys = derivedSelectedKeys;\n if (checkStrictly) {\n const checkedKeys = checked ? arrDel(originCheckedKeys, key) : arrAdd(originCheckedKeys, key);\n triggerSingleSelection(key, !checked, checkedKeys, nativeEvent);\n } else {\n // Always fill first\n const result = conductCheck([].concat(_toConsumableArray(originCheckedKeys), [key]), true, keyEntities, isCheckboxDisabled);\n const {\n checkedKeys,\n halfCheckedKeys\n } = result;\n let nextCheckedKeys = checkedKeys;\n // If remove, we do it again to correction\n if (checked) {\n const tempKeySet = new Set(checkedKeys);\n tempKeySet.delete(key);\n nextCheckedKeys = conductCheck(Array.from(tempKeySet), {\n checked: false,\n halfCheckedKeys\n }, keyEntities, isCheckboxDisabled).checkedKeys;\n }\n triggerSingleSelection(key, !checked, nextCheckedKeys, nativeEvent);\n }\n }\n if (checked) {\n updatePrevSelectedIndex(null);\n } else {\n updatePrevSelectedIndex(currentSelectedIndex);\n }\n (_a = checkboxProps === null || checkboxProps === void 0 ? void 0 : checkboxProps.onChange) === null || _a === void 0 ? void 0 : _a.call(checkboxProps, event);\n }\n }))),\n checked\n };\n };\n }\n const renderSelectionCell = (_, record, index) => {\n const {\n node,\n checked\n } = renderCell(_, record, index);\n if (customizeRenderCell) {\n return customizeRenderCell(checked, record, index, node);\n }\n return node;\n };\n // Insert selection column if not exist\n if (!cloneColumns.includes(SELECTION_COLUMN)) {\n // Always after expand icon\n if (cloneColumns.findIndex(col => {\n var _a;\n return ((_a = col[INTERNAL_COL_DEFINE]) === null || _a === void 0 ? void 0 : _a.columnType) === 'EXPAND_COLUMN';\n }) === 0) {\n const [expandColumn, ...restColumns] = cloneColumns;\n cloneColumns = [expandColumn, SELECTION_COLUMN].concat(_toConsumableArray(restColumns));\n } else {\n // Normal insert at first column\n cloneColumns = [SELECTION_COLUMN].concat(_toConsumableArray(cloneColumns));\n }\n }\n // Deduplicate selection column\n const selectionColumnIndex = cloneColumns.indexOf(SELECTION_COLUMN);\n process.env.NODE_ENV !== \"production\" ? warning(cloneColumns.filter(col => col === SELECTION_COLUMN).length <= 1, 'usage', 'Multiple `SELECTION_COLUMN` exist in `columns`.') : void 0;\n cloneColumns = cloneColumns.filter((column, index) => column !== SELECTION_COLUMN || index === selectionColumnIndex);\n // Fixed column logic\n const prevCol = cloneColumns[selectionColumnIndex - 1];\n const nextCol = cloneColumns[selectionColumnIndex + 1];\n let mergedFixed = fixed;\n if (mergedFixed === undefined) {\n if ((nextCol === null || nextCol === void 0 ? void 0 : nextCol.fixed) !== undefined) {\n mergedFixed = nextCol.fixed;\n } else if ((prevCol === null || prevCol === void 0 ? void 0 : prevCol.fixed) !== undefined) {\n mergedFixed = prevCol.fixed;\n }\n }\n if (mergedFixed && prevCol && ((_a = prevCol[INTERNAL_COL_DEFINE]) === null || _a === void 0 ? void 0 : _a.columnType) === 'EXPAND_COLUMN' && prevCol.fixed === undefined) {\n prevCol.fixed = mergedFixed;\n }\n const columnCls = classNames(`${prefixCls}-selection-col`, {\n [`${prefixCls}-selection-col-with-dropdown`]: selections && selectionType === 'checkbox'\n });\n const renderColumnTitle = () => {\n if (!(rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.columnTitle)) {\n return title;\n }\n if (typeof rowSelection.columnTitle === 'function') {\n return rowSelection.columnTitle(columnTitleCheckbox);\n }\n return rowSelection.columnTitle;\n };\n // Replace with real selection column\n const selectionColumn = {\n fixed: mergedFixed,\n width: selectionColWidth,\n className: `${prefixCls}-selection-column`,\n title: renderColumnTitle(),\n render: renderSelectionCell,\n onCell: rowSelection.onCell,\n [INTERNAL_COL_DEFINE]: {\n className: columnCls\n }\n };\n return cloneColumns.map(col => col === SELECTION_COLUMN ? selectionColumn : col);\n }, [getRowKey, flattedData, rowSelection, derivedSelectedKeys, derivedSelectedKeySet, derivedHalfSelectedKeySet, selectionColWidth, mergedSelections, expandType, checkboxPropsMap, onSelectMultiple, triggerSingleSelection, isCheckboxDisabled]);\n return [transformColumns, derivedSelectedKeySet];\n};\nexport default useSelection;","import { useCallback, useState } from 'react';\n/**\n * @title multipleSelect hooks\n * @description multipleSelect by hold down shift key\n */\nexport default function useMultipleSelect(getKey) {\n const [prevSelectedIndex, setPrevSelectedIndex] = useState(null);\n const multipleSelect = useCallback((currentSelectedIndex, data, selectedKeys) => {\n const configPrevSelectedIndex = prevSelectedIndex !== null && prevSelectedIndex !== void 0 ? prevSelectedIndex : currentSelectedIndex;\n // add/delete the selected range\n const startIndex = Math.min(configPrevSelectedIndex || 0, currentSelectedIndex);\n const endIndex = Math.max(configPrevSelectedIndex || 0, currentSelectedIndex);\n const rangeKeys = data.slice(startIndex, endIndex + 1).map(item => getKey(item));\n const shouldSelected = rangeKeys.some(rangeKey => !selectedKeys.has(rangeKey));\n const changedKeys = [];\n rangeKeys.forEach(item => {\n if (shouldSelected) {\n if (!selectedKeys.has(item)) {\n changedKeys.push(item);\n }\n selectedKeys.add(item);\n } else {\n selectedKeys.delete(item);\n changedKeys.push(item);\n }\n });\n setPrevSelectedIndex(shouldSelected ? endIndex : null);\n return changedKeys;\n }, [prevSelectedIndex]);\n const updatePrevSelectedIndex = val => {\n setPrevSelectedIndex(val);\n };\n return [multipleSelect, updatePrevSelectedIndex];\n}","// Proxy the dom ref with `{ nativeElement, otherFn }` type\n// ref: https://github.com/ant-design/ant-design/discussions/45242\nimport { useImperativeHandle } from 'react';\nfunction fillProxy(element, handler) {\n element._antProxy = element._antProxy || {};\n Object.keys(handler).forEach(key => {\n if (!(key in element._antProxy)) {\n const ori = element[key];\n element._antProxy[key] = ori;\n element[key] = handler[key];\n }\n });\n return element;\n}\nexport default function useProxyImperativeHandle(ref, init) {\n return useImperativeHandle(ref, () => {\n const refObj = init();\n const {\n nativeElement\n } = refObj;\n if (typeof Proxy !== 'undefined') {\n return new Proxy(nativeElement, {\n get(obj, prop) {\n if (refObj[prop]) {\n return refObj[prop];\n }\n return Reflect.get(obj, prop);\n }\n });\n }\n // Fallback of IE\n return fillProxy(nativeElement, refObj);\n });\n}","export function isWindow(obj) {\n return obj !== null && obj !== undefined && obj === obj.window;\n}\nconst getScroll = target => {\n var _a, _b;\n if (typeof window === 'undefined') {\n return 0;\n }\n let result = 0;\n if (isWindow(target)) {\n result = target.pageYOffset;\n } else if (target instanceof Document) {\n result = target.documentElement.scrollTop;\n } else if (target instanceof HTMLElement) {\n result = target.scrollTop;\n } else if (target) {\n // According to the type inference, the `target` is `never` type.\n // Since we configured the loose mode type checking, and supports mocking the target with such shape below::\n // `{ documentElement: { scrollLeft: 200, scrollTop: 400 } }`,\n // the program may falls into this branch.\n // Check the corresponding tests for details. Don't sure what is the real scenario this happens.\n /* biome-ignore lint/complexity/useLiteralKeys: target is a never type */ /* eslint-disable-next-line dot-notation */\n result = target['scrollTop'];\n }\n if (target && !isWindow(target) && typeof result !== 'number') {\n result = (_b = ((_a = target.ownerDocument) !== null && _a !== void 0 ? _a : target).documentElement) === null || _b === void 0 ? void 0 : _b.scrollTop;\n }\n return result;\n};\nexport default getScroll;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nfunction renderExpandIcon(locale) {\n return props => {\n const {\n prefixCls,\n onExpand,\n record,\n expanded,\n expandable\n } = props;\n const iconPrefix = `${prefixCls}-row-expand-icon`;\n return /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n onClick: e => {\n onExpand(record, e);\n e.stopPropagation();\n },\n className: classNames(iconPrefix, {\n [`${iconPrefix}-spaced`]: !expandable,\n [`${iconPrefix}-expanded`]: expandable && expanded,\n [`${iconPrefix}-collapsed`]: expandable && !expanded\n }),\n \"aria-label\": expanded ? locale.collapse : locale.expand,\n \"aria-expanded\": expanded\n });\n };\n}\nexport default renderExpandIcon;","export const getColumnKey = (column, defaultKey) => {\n if ('key' in column && column.key !== undefined && column.key !== null) {\n return column.key;\n }\n if (column.dataIndex) {\n return Array.isArray(column.dataIndex) ? column.dataIndex.join('.') : column.dataIndex;\n }\n return defaultKey;\n};\nexport function getColumnPos(index, pos) {\n return pos ? `${pos}-${index}` : `${index}`;\n}\nexport const renderColumnTitle = (title, props) => {\n if (typeof title === 'function') {\n return title(props);\n }\n return title;\n};\n/**\n * Safe get column title\n *\n * Should filter [object Object]\n *\n * @param title\n */\nexport const safeColumnTitle = (title, props) => {\n const res = renderColumnTitle(title, props);\n if (Object.prototype.toString.call(res) === '[object Object]') {\n return '';\n }\n return res;\n};","// This icon file is generated automatically.\nvar FilterFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z\" } }] }, \"name\": \"filter\", \"theme\": \"filled\" };\nexport default FilterFilled;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FilterFilledSvg from \"@ant-design/icons-svg/es/asn/FilterFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FilterFilled = function FilterFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FilterFilledSvg\n }));\n};\n\n/**![filter](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTM0OSA4MzhjMCAxNy43IDE0LjIgMzIgMzEuOCAzMmgyNjIuNGMxNy42IDAgMzEuOC0xNC4zIDMxLjgtMzJWNjQySDM0OXYxOTZ6bTUzMS4xLTY4NEgxNDMuOWMtMjQuNSAwLTM5LjggMjYuNy0yNy41IDQ4bDIyMS4zIDM3NmgzNDguOGwyMjEuMy0zNzZjMTIuMS0yMS4zLTMuMi00OC0yNy43LTQ4eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(FilterFilled);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'FilterFilled';\n}\nexport default RefIcon;","import React from 'react';\nvar DropIndicator = function DropIndicator(props) {\n var dropPosition = props.dropPosition,\n dropLevelOffset = props.dropLevelOffset,\n indent = props.indent;\n var style = {\n pointerEvents: 'none',\n position: 'absolute',\n right: 0,\n backgroundColor: 'red',\n height: 2\n };\n switch (dropPosition) {\n case -1:\n style.top = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 1:\n style.bottom = 0;\n style.left = -dropLevelOffset * indent;\n break;\n case 0:\n style.bottom = 0;\n style.left = indent;\n break;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style\n });\n};\nif (process.env.NODE_ENV !== 'production') {\n DropIndicator.displayName = 'DropIndicator';\n}\nexport default DropIndicator;","function _objectDestructuringEmpty(t) {\n if (null == t) throw new TypeError(\"Cannot destructure \" + t);\n}\nexport { _objectDestructuringEmpty as default };","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\n\n/**\n * Trigger only when component unmount\n */\nfunction useUnmount(triggerStart, triggerEnd) {\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n firstMount = _React$useState2[0],\n setFirstMount = _React$useState2[1];\n useLayoutEffect(function () {\n if (firstMount) {\n triggerStart();\n return function () {\n triggerEnd();\n };\n }\n }, [firstMount]);\n useLayoutEffect(function () {\n setFirstMount(true);\n return function () {\n setFirstMount(false);\n };\n }, []);\n}\nexport default useUnmount;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"style\", \"motion\", \"motionNodes\", \"motionType\", \"onMotionStart\", \"onMotionEnd\", \"active\", \"treeNodeRequiredProps\"];\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { TreeContext } from \"./contextTypes\";\nimport TreeNode from \"./TreeNode\";\nimport useUnmount from \"./useUnmount\";\nimport { getTreeNodeProps } from \"./utils/treeUtil\";\nvar MotionTreeNode = /*#__PURE__*/React.forwardRef(function (oriProps, ref) {\n var className = oriProps.className,\n style = oriProps.style,\n motion = oriProps.motion,\n motionNodes = oriProps.motionNodes,\n motionType = oriProps.motionType,\n onOriginMotionStart = oriProps.onMotionStart,\n onOriginMotionEnd = oriProps.onMotionEnd,\n active = oriProps.active,\n treeNodeRequiredProps = oriProps.treeNodeRequiredProps,\n props = _objectWithoutProperties(oriProps, _excluded);\n var _React$useState = React.useState(true),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n visible = _React$useState2[0],\n setVisible = _React$useState2[1];\n var _React$useContext = React.useContext(TreeContext),\n prefixCls = _React$useContext.prefixCls;\n\n // Calculate target visible here.\n // And apply in effect to make `leave` motion work.\n var targetVisible = motionNodes && motionType !== 'hide';\n useLayoutEffect(function () {\n if (motionNodes) {\n if (targetVisible !== visible) {\n setVisible(targetVisible);\n }\n }\n }, [motionNodes]);\n var triggerMotionStart = function triggerMotionStart() {\n if (motionNodes) {\n onOriginMotionStart();\n }\n };\n\n // Should only trigger once\n var triggerMotionEndRef = React.useRef(false);\n var triggerMotionEnd = function triggerMotionEnd() {\n if (motionNodes && !triggerMotionEndRef.current) {\n triggerMotionEndRef.current = true;\n onOriginMotionEnd();\n }\n };\n\n // Effect if unmount\n useUnmount(triggerMotionStart, triggerMotionEnd);\n\n // Motion end event\n var onVisibleChanged = function onVisibleChanged(nextVisible) {\n if (targetVisible === nextVisible) {\n triggerMotionEnd();\n }\n };\n if (motionNodes) {\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({\n ref: ref,\n visible: visible\n }, motion, {\n motionAppear: motionType === 'show',\n onVisibleChanged: onVisibleChanged\n }), function (_ref, motionRef) {\n var motionClassName = _ref.className,\n motionStyle = _ref.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: motionRef,\n className: classNames(\"\".concat(prefixCls, \"-treenode-motion\"), motionClassName),\n style: motionStyle\n }, motionNodes.map(function (treeNode) {\n var restProps = Object.assign({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(key, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(TreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: active,\n data: treeNode.data,\n key: key,\n isStart: isStart,\n isEnd: isEnd\n }));\n }));\n });\n }\n return /*#__PURE__*/React.createElement(TreeNode, _extends({\n domRef: ref,\n className: className,\n style: style\n }, props, {\n active: active\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n MotionTreeNode.displayName = 'MotionTreeNode';\n}\nexport default MotionTreeNode;","export function findExpandedKeys() {\n var prev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var next = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var prevLen = prev.length;\n var nextLen = next.length;\n if (Math.abs(prevLen - nextLen) !== 1) {\n return {\n add: false,\n key: null\n };\n }\n function find(shorter, longer) {\n var cache = new Map();\n shorter.forEach(function (key) {\n cache.set(key, true);\n });\n var keys = longer.filter(function (key) {\n return !cache.has(key);\n });\n return keys.length === 1 ? keys[0] : null;\n }\n if (prevLen < nextLen) {\n return {\n add: true,\n key: find(prev, next)\n };\n }\n return {\n add: false,\n key: find(next, prev)\n };\n}\nexport function getExpandRange(shorter, longer, key) {\n var shorterStartIndex = shorter.findIndex(function (data) {\n return data.key === key;\n });\n var shorterEndNode = shorter[shorterStartIndex + 1];\n var longerStartIndex = longer.findIndex(function (data) {\n return data.key === key;\n });\n if (shorterEndNode) {\n var longerEndIndex = longer.findIndex(function (data) {\n return data.key === shorterEndNode.key;\n });\n return longer.slice(longerStartIndex + 1, longerEndIndex);\n }\n return longer.slice(longerStartIndex + 1);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectDestructuringEmpty from \"@babel/runtime/helpers/esm/objectDestructuringEmpty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"data\", \"selectable\", \"checkable\", \"expandedKeys\", \"selectedKeys\", \"checkedKeys\", \"loadedKeys\", \"loadingKeys\", \"halfCheckedKeys\", \"keyEntities\", \"disabled\", \"dragging\", \"dragOverNodeKey\", \"dropPosition\", \"motion\", \"height\", \"itemHeight\", \"virtual\", \"scrollWidth\", \"focusable\", \"activeItem\", \"focused\", \"tabIndex\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onActiveChange\", \"onListChangeStart\", \"onListChangeEnd\"];\n/**\n * Handle virtual list of the TreeNodes.\n */\n\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport VirtualList from 'rc-virtual-list';\nimport * as React from 'react';\nimport MotionTreeNode from \"./MotionTreeNode\";\nimport { findExpandedKeys, getExpandRange } from \"./utils/diffUtil\";\nimport { getKey, getTreeNodeProps } from \"./utils/treeUtil\";\nvar HIDDEN_STYLE = {\n width: 0,\n height: 0,\n display: 'flex',\n overflow: 'hidden',\n opacity: 0,\n border: 0,\n padding: 0,\n margin: 0\n};\nvar noop = function noop() {};\nexport var MOTION_KEY = \"RC_TREE_MOTION_\".concat(Math.random());\nvar MotionNode = {\n key: MOTION_KEY\n};\nexport var MotionEntity = {\n key: MOTION_KEY,\n level: 0,\n index: 0,\n pos: '0',\n node: MotionNode,\n nodes: [MotionNode]\n};\nvar MotionFlattenData = {\n parent: null,\n children: [],\n pos: MotionEntity.pos,\n data: MotionNode,\n title: null,\n key: MOTION_KEY,\n /** Hold empty list here since we do not use it */\n isStart: [],\n isEnd: []\n};\n/**\n * We only need get visible content items to play the animation.\n */\nexport function getMinimumRangeTransitionRange(list, virtual, height, itemHeight) {\n if (virtual === false || !height) {\n return list;\n }\n return list.slice(0, Math.ceil(height / itemHeight) + 1);\n}\nfunction itemKey(item) {\n var key = item.key,\n pos = item.pos;\n return getKey(key, pos);\n}\nfunction getAccessibilityPath(item) {\n var path = String(item.data.key);\n var current = item;\n while (current.parent) {\n current = current.parent;\n path = \"\".concat(current.data.key, \" > \").concat(path);\n }\n return path;\n}\nvar NodeList = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n data = props.data,\n selectable = props.selectable,\n checkable = props.checkable,\n expandedKeys = props.expandedKeys,\n selectedKeys = props.selectedKeys,\n checkedKeys = props.checkedKeys,\n loadedKeys = props.loadedKeys,\n loadingKeys = props.loadingKeys,\n halfCheckedKeys = props.halfCheckedKeys,\n keyEntities = props.keyEntities,\n disabled = props.disabled,\n dragging = props.dragging,\n dragOverNodeKey = props.dragOverNodeKey,\n dropPosition = props.dropPosition,\n motion = props.motion,\n height = props.height,\n itemHeight = props.itemHeight,\n virtual = props.virtual,\n scrollWidth = props.scrollWidth,\n focusable = props.focusable,\n activeItem = props.activeItem,\n focused = props.focused,\n tabIndex = props.tabIndex,\n onKeyDown = props.onKeyDown,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onActiveChange = props.onActiveChange,\n onListChangeStart = props.onListChangeStart,\n onListChangeEnd = props.onListChangeEnd,\n domProps = _objectWithoutProperties(props, _excluded);\n\n // =============================== Ref ================================\n var listRef = React.useRef(null);\n var indentMeasurerRef = React.useRef(null);\n React.useImperativeHandle(ref, function () {\n return {\n scrollTo: function scrollTo(scroll) {\n listRef.current.scrollTo(scroll);\n },\n getIndentWidth: function getIndentWidth() {\n return indentMeasurerRef.current.offsetWidth;\n }\n };\n });\n\n // ============================== Motion ==============================\n var _React$useState = React.useState(expandedKeys),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n prevExpandedKeys = _React$useState2[0],\n setPrevExpandedKeys = _React$useState2[1];\n var _React$useState3 = React.useState(data),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n prevData = _React$useState4[0],\n setPrevData = _React$useState4[1];\n var _React$useState5 = React.useState(data),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n transitionData = _React$useState6[0],\n setTransitionData = _React$useState6[1];\n var _React$useState7 = React.useState([]),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n transitionRange = _React$useState8[0],\n setTransitionRange = _React$useState8[1];\n var _React$useState9 = React.useState(null),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n motionType = _React$useState10[0],\n setMotionType = _React$useState10[1];\n\n // When motion end but data change, this will makes data back to previous one\n var dataRef = React.useRef(data);\n dataRef.current = data;\n function onMotionEnd() {\n var latestData = dataRef.current;\n setPrevData(latestData);\n setTransitionData(latestData);\n setTransitionRange([]);\n setMotionType(null);\n onListChangeEnd();\n }\n\n // Do animation if expanded keys changed\n // layoutEffect here to avoid blink of node removing\n useLayoutEffect(function () {\n setPrevExpandedKeys(expandedKeys);\n var diffExpanded = findExpandedKeys(prevExpandedKeys, expandedKeys);\n if (diffExpanded.key !== null) {\n if (diffExpanded.add) {\n var keyIndex = prevData.findIndex(function (_ref) {\n var key = _ref.key;\n return key === diffExpanded.key;\n });\n var rangeNodes = getMinimumRangeTransitionRange(getExpandRange(prevData, data, diffExpanded.key), virtual, height, itemHeight);\n var newTransitionData = prevData.slice();\n newTransitionData.splice(keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(newTransitionData);\n setTransitionRange(rangeNodes);\n setMotionType('show');\n } else {\n var _keyIndex = data.findIndex(function (_ref2) {\n var key = _ref2.key;\n return key === diffExpanded.key;\n });\n var _rangeNodes = getMinimumRangeTransitionRange(getExpandRange(data, prevData, diffExpanded.key), virtual, height, itemHeight);\n var _newTransitionData = data.slice();\n _newTransitionData.splice(_keyIndex + 1, 0, MotionFlattenData);\n setTransitionData(_newTransitionData);\n setTransitionRange(_rangeNodes);\n setMotionType('hide');\n }\n } else if (prevData !== data) {\n // If whole data changed, we just refresh the list\n setPrevData(data);\n setTransitionData(data);\n }\n }, [expandedKeys, data]);\n\n // We should clean up motion if is changed by dragging\n React.useEffect(function () {\n if (!dragging) {\n onMotionEnd();\n }\n }, [dragging]);\n var mergedData = motion ? transitionData : data;\n var treeNodeRequiredProps = {\n expandedKeys: expandedKeys,\n selectedKeys: selectedKeys,\n loadedKeys: loadedKeys,\n loadingKeys: loadingKeys,\n checkedKeys: checkedKeys,\n halfCheckedKeys: halfCheckedKeys,\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, focused && activeItem && /*#__PURE__*/React.createElement(\"span\", {\n style: HIDDEN_STYLE,\n \"aria-live\": \"assertive\"\n }, getAccessibilityPath(activeItem)), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"input\", {\n style: HIDDEN_STYLE,\n disabled: focusable === false || disabled,\n tabIndex: focusable !== false ? tabIndex : null,\n onKeyDown: onKeyDown,\n onFocus: onFocus,\n onBlur: onBlur,\n value: \"\",\n onChange: noop,\n \"aria-label\": \"for screen reader\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-treenode\"),\n \"aria-hidden\": true,\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n visibility: 'hidden',\n height: 0,\n overflow: 'hidden',\n border: 0,\n padding: 0\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-indent\")\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: indentMeasurerRef,\n className: \"\".concat(prefixCls, \"-indent-unit\")\n }))), /*#__PURE__*/React.createElement(VirtualList, _extends({}, domProps, {\n data: mergedData,\n itemKey: itemKey,\n height: height,\n fullHeight: false,\n virtual: virtual,\n itemHeight: itemHeight,\n scrollWidth: scrollWidth,\n prefixCls: \"\".concat(prefixCls, \"-list\"),\n ref: listRef,\n role: \"tree\",\n onVisibleChange: function onVisibleChange(originList) {\n // The best match is using `fullList` - `originList` = `restList`\n // and check the `restList` to see if has the MOTION_KEY node\n // but this will cause performance issue for long list compare\n // we just check `originList` and repeat trigger `onMotionEnd`\n if (originList.every(function (item) {\n return itemKey(item) !== MOTION_KEY;\n })) {\n onMotionEnd();\n }\n }\n }), function (treeNode) {\n var pos = treeNode.pos,\n restProps = Object.assign({}, (_objectDestructuringEmpty(treeNode.data), treeNode.data)),\n title = treeNode.title,\n key = treeNode.key,\n isStart = treeNode.isStart,\n isEnd = treeNode.isEnd;\n var mergedKey = getKey(key, pos);\n delete restProps.key;\n delete restProps.children;\n var treeNodeProps = getTreeNodeProps(mergedKey, treeNodeRequiredProps);\n return /*#__PURE__*/React.createElement(MotionTreeNode, _extends({}, restProps, treeNodeProps, {\n title: title,\n active: !!activeItem && key === activeItem.key,\n pos: pos,\n data: treeNode.data,\n isStart: isStart,\n isEnd: isEnd,\n motion: motion,\n motionNodes: key === MOTION_KEY ? transitionRange : null,\n motionType: motionType,\n onMotionStart: onListChangeStart,\n onMotionEnd: onMotionEnd,\n treeNodeRequiredProps: treeNodeRequiredProps,\n onMouseMove: function onMouseMove() {\n onActiveChange(null);\n }\n }));\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n NodeList.displayName = 'NodeList';\n}\nexport default NodeList;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n// TODO: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/treeview/treeview-2/treeview-2a.html\n// Fully accessibility support\n\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { TreeContext } from \"./contextTypes\";\nimport DropIndicator from \"./DropIndicator\";\nimport NodeList, { MOTION_KEY, MotionEntity } from \"./NodeList\";\nimport TreeNode from \"./TreeNode\";\nimport { arrAdd, arrDel, calcDropPosition, calcSelectedKeys, conductExpandParent, getDragChildrenKeys, parseCheckedKeys, posToArr } from \"./util\";\nimport { conductCheck } from \"./utils/conductUtil\";\nimport getEntity from \"./utils/keyUtil\";\nimport { convertDataToEntities, convertNodePropsToEventData, convertTreeToData, fillFieldNames, flattenTreeData, getTreeNodeProps, warningWithoutKey } from \"./utils/treeUtil\";\nvar MAX_RETRY_TIMES = 10;\nvar Tree = /*#__PURE__*/function (_React$Component) {\n _inherits(Tree, _React$Component);\n var _super = _createSuper(Tree);\n function Tree() {\n var _this;\n _classCallCheck(this, Tree);\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(_args));\n _defineProperty(_assertThisInitialized(_this), \"destroyed\", false);\n _defineProperty(_assertThisInitialized(_this), \"delayedDragEnterLogic\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"loadingRetryTimes\", {});\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n keyEntities: {},\n indent: null,\n selectedKeys: [],\n checkedKeys: [],\n halfCheckedKeys: [],\n loadedKeys: [],\n loadingKeys: [],\n expandedKeys: [],\n draggingNodeKey: null,\n dragChildrenKeys: [],\n // dropTargetKey is the key of abstract-drop-node\n // the abstract-drop-node is the real drop node when drag and drop\n // not the DOM drag over node\n dropTargetKey: null,\n dropPosition: null,\n // the drop position of abstract-drop-node, inside 0, top -1, bottom 1\n dropContainerKey: null,\n // the container key of abstract-drop-node if dropPosition is -1 or 1\n dropLevelOffset: null,\n // the drop level offset of abstract-drag-over-node\n dropTargetPos: null,\n // the pos of abstract-drop-node\n dropAllowed: true,\n // if drop to abstract-drop-node is allowed\n // the abstract-drag-over-node\n // if mouse is on the bottom of top dom node or no the top of the bottom dom node\n // abstract-drag-over-node is the top node\n dragOverNodeKey: null,\n treeData: [],\n flattenNodes: [],\n focused: false,\n activeKey: null,\n listChanging: false,\n prevProps: null,\n fieldNames: fillFieldNames()\n });\n _defineProperty(_assertThisInitialized(_this), \"dragStartMousePosition\", null);\n _defineProperty(_assertThisInitialized(_this), \"dragNodeProps\", null);\n _defineProperty(_assertThisInitialized(_this), \"currentMouseOverDroppableNodeKey\", null);\n _defineProperty(_assertThisInitialized(_this), \"listRef\", /*#__PURE__*/React.createRef());\n _defineProperty(_assertThisInitialized(_this), \"onNodeDragStart\", function (event, nodeProps) {\n var _this$state = _this.state,\n expandedKeys = _this$state.expandedKeys,\n keyEntities = _this$state.keyEntities;\n var onDragStart = _this.props.onDragStart;\n var eventKey = nodeProps.eventKey;\n _this.dragNodeProps = nodeProps;\n _this.dragStartMousePosition = {\n x: event.clientX,\n y: event.clientY\n };\n var newExpandedKeys = arrDel(expandedKeys, eventKey);\n _this.setState({\n draggingNodeKey: eventKey,\n dragChildrenKeys: getDragChildrenKeys(eventKey, keyEntities),\n indent: _this.listRef.current.getIndentWidth()\n });\n _this.setExpandedKeys(newExpandedKeys);\n window.addEventListener('dragend', _this.onWindowDragEnd);\n onDragStart === null || onDragStart === void 0 || onDragStart({\n event: event,\n node: convertNodePropsToEventData(nodeProps)\n });\n });\n /**\n * [Legacy] Select handler is smaller than node,\n * so that this will trigger when drag enter node or select handler.\n * This is a little tricky if customize css without padding.\n * Better for use mouse move event to refresh drag state.\n * But let's just keep it to avoid event trigger logic change.\n */\n _defineProperty(_assertThisInitialized(_this), \"onNodeDragEnter\", function (event, nodeProps) {\n var _this$state2 = _this.state,\n expandedKeys = _this$state2.expandedKeys,\n keyEntities = _this$state2.keyEntities,\n dragChildrenKeys = _this$state2.dragChildrenKeys,\n flattenNodes = _this$state2.flattenNodes,\n indent = _this$state2.indent;\n var _this$props = _this.props,\n onDragEnter = _this$props.onDragEnter,\n onExpand = _this$props.onExpand,\n allowDrop = _this$props.allowDrop,\n direction = _this$props.direction;\n var pos = nodeProps.pos,\n eventKey = nodeProps.eventKey;\n\n // record the key of node which is latest entered, used in dragleave event.\n if (_this.currentMouseOverDroppableNodeKey !== eventKey) {\n _this.currentMouseOverDroppableNodeKey = eventKey;\n }\n if (!_this.dragNodeProps) {\n _this.resetDragState();\n return;\n }\n var _calcDropPosition = calcDropPosition(event, _this.dragNodeProps, nodeProps, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition.dropPosition,\n dropLevelOffset = _calcDropPosition.dropLevelOffset,\n dropTargetKey = _calcDropPosition.dropTargetKey,\n dropContainerKey = _calcDropPosition.dropContainerKey,\n dropTargetPos = _calcDropPosition.dropTargetPos,\n dropAllowed = _calcDropPosition.dropAllowed,\n dragOverNodeKey = _calcDropPosition.dragOverNodeKey;\n if (\n // don't allow drop inside its children\n dragChildrenKeys.includes(dropTargetKey) ||\n // don't allow drop when drop is not allowed caculated by calcDropPosition\n !dropAllowed) {\n _this.resetDragState();\n return;\n }\n\n // Side effect for delay drag\n if (!_this.delayedDragEnterLogic) {\n _this.delayedDragEnterLogic = {};\n }\n Object.keys(_this.delayedDragEnterLogic).forEach(function (key) {\n clearTimeout(_this.delayedDragEnterLogic[key]);\n });\n if (_this.dragNodeProps.eventKey !== nodeProps.eventKey) {\n // hoist expand logic here\n // since if logic is on the bottom\n // it will be blocked by abstract dragover node check\n // => if you dragenter from top, you mouse will still be consider as in the top node\n event.persist();\n _this.delayedDragEnterLogic[pos] = window.setTimeout(function () {\n if (_this.state.draggingNodeKey === null) {\n return;\n }\n var newExpandedKeys = _toConsumableArray(expandedKeys);\n var entity = getEntity(keyEntities, nodeProps.eventKey);\n if (entity && (entity.children || []).length) {\n newExpandedKeys = arrAdd(expandedKeys, nodeProps.eventKey);\n }\n if (!_this.props.hasOwnProperty('expandedKeys')) {\n _this.setExpandedKeys(newExpandedKeys);\n }\n onExpand === null || onExpand === void 0 || onExpand(newExpandedKeys, {\n node: convertNodePropsToEventData(nodeProps),\n expanded: true,\n nativeEvent: event.nativeEvent\n });\n }, 800);\n }\n\n // Skip if drag node is self\n if (_this.dragNodeProps.eventKey === dropTargetKey && dropLevelOffset === 0) {\n _this.resetDragState();\n return;\n }\n\n // Update drag over node and drag state\n _this.setState({\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed\n });\n onDragEnter === null || onDragEnter === void 0 || onDragEnter({\n event: event,\n node: convertNodePropsToEventData(nodeProps),\n expandedKeys: expandedKeys\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeDragOver\", function (event, nodeProps) {\n var _this$state3 = _this.state,\n dragChildrenKeys = _this$state3.dragChildrenKeys,\n flattenNodes = _this$state3.flattenNodes,\n keyEntities = _this$state3.keyEntities,\n expandedKeys = _this$state3.expandedKeys,\n indent = _this$state3.indent;\n var _this$props2 = _this.props,\n onDragOver = _this$props2.onDragOver,\n allowDrop = _this$props2.allowDrop,\n direction = _this$props2.direction;\n if (!_this.dragNodeProps) {\n return;\n }\n var _calcDropPosition2 = calcDropPosition(event, _this.dragNodeProps, nodeProps, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),\n dropPosition = _calcDropPosition2.dropPosition,\n dropLevelOffset = _calcDropPosition2.dropLevelOffset,\n dropTargetKey = _calcDropPosition2.dropTargetKey,\n dropContainerKey = _calcDropPosition2.dropContainerKey,\n dropTargetPos = _calcDropPosition2.dropTargetPos,\n dropAllowed = _calcDropPosition2.dropAllowed,\n dragOverNodeKey = _calcDropPosition2.dragOverNodeKey;\n if (dragChildrenKeys.includes(dropTargetKey) || !dropAllowed) {\n // don't allow drop inside its children\n // don't allow drop when drop is not allowed calculated by calcDropPosition\n return;\n }\n\n // Update drag position\n\n if (_this.dragNodeProps.eventKey === dropTargetKey && dropLevelOffset === 0) {\n if (!(_this.state.dropPosition === null && _this.state.dropLevelOffset === null && _this.state.dropTargetKey === null && _this.state.dropContainerKey === null && _this.state.dropTargetPos === null && _this.state.dropAllowed === false && _this.state.dragOverNodeKey === null)) {\n _this.resetDragState();\n }\n } else if (!(dropPosition === _this.state.dropPosition && dropLevelOffset === _this.state.dropLevelOffset && dropTargetKey === _this.state.dropTargetKey && dropContainerKey === _this.state.dropContainerKey && dropTargetPos === _this.state.dropTargetPos && dropAllowed === _this.state.dropAllowed && dragOverNodeKey === _this.state.dragOverNodeKey)) {\n _this.setState({\n dropPosition: dropPosition,\n dropLevelOffset: dropLevelOffset,\n dropTargetKey: dropTargetKey,\n dropContainerKey: dropContainerKey,\n dropTargetPos: dropTargetPos,\n dropAllowed: dropAllowed,\n dragOverNodeKey: dragOverNodeKey\n });\n }\n onDragOver === null || onDragOver === void 0 || onDragOver({\n event: event,\n node: convertNodePropsToEventData(nodeProps)\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeDragLeave\", function (event, nodeProps) {\n // if it is outside the droppable area\n // currentMouseOverDroppableNodeKey will be updated in dragenter event when into another droppable receiver.\n if (_this.currentMouseOverDroppableNodeKey === nodeProps.eventKey && !event.currentTarget.contains(event.relatedTarget)) {\n _this.resetDragState();\n _this.currentMouseOverDroppableNodeKey = null;\n }\n var onDragLeave = _this.props.onDragLeave;\n onDragLeave === null || onDragLeave === void 0 || onDragLeave({\n event: event,\n node: convertNodePropsToEventData(nodeProps)\n });\n });\n // since stopPropagation() is called in treeNode\n // if onWindowDrag is called, whice means state is keeped, drag state should be cleared\n _defineProperty(_assertThisInitialized(_this), \"onWindowDragEnd\", function (event) {\n _this.onNodeDragEnd(event, null, true);\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n });\n // if onNodeDragEnd is called, onWindowDragEnd won't be called since stopPropagation() is called\n _defineProperty(_assertThisInitialized(_this), \"onNodeDragEnd\", function (event, nodeProps) {\n var onDragEnd = _this.props.onDragEnd;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n onDragEnd === null || onDragEnd === void 0 || onDragEnd({\n event: event,\n node: convertNodePropsToEventData(nodeProps)\n });\n _this.dragNodeProps = null;\n window.removeEventListener('dragend', _this.onWindowDragEnd);\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeDrop\", function (event, _) {\n var _this$getActiveItem;\n var outsideTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _this$state4 = _this.state,\n dragChildrenKeys = _this$state4.dragChildrenKeys,\n dropPosition = _this$state4.dropPosition,\n dropTargetKey = _this$state4.dropTargetKey,\n dropTargetPos = _this$state4.dropTargetPos,\n dropAllowed = _this$state4.dropAllowed;\n if (!dropAllowed) {\n return;\n }\n var onDrop = _this.props.onDrop;\n _this.setState({\n dragOverNodeKey: null\n });\n _this.cleanDragState();\n if (dropTargetKey === null) return;\n var abstractDropNodeProps = _objectSpread(_objectSpread({}, getTreeNodeProps(dropTargetKey, _this.getTreeNodeRequiredProps())), {}, {\n active: ((_this$getActiveItem = _this.getActiveItem()) === null || _this$getActiveItem === void 0 ? void 0 : _this$getActiveItem.key) === dropTargetKey,\n data: getEntity(_this.state.keyEntities, dropTargetKey).node\n });\n var dropToChild = dragChildrenKeys.includes(dropTargetKey);\n warning(!dropToChild, \"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.\");\n var posArr = posToArr(dropTargetPos);\n var dropResult = {\n event: event,\n node: convertNodePropsToEventData(abstractDropNodeProps),\n dragNode: _this.dragNodeProps ? convertNodePropsToEventData(_this.dragNodeProps) : null,\n dragNodesKeys: [_this.dragNodeProps.eventKey].concat(dragChildrenKeys),\n dropToGap: dropPosition !== 0,\n dropPosition: dropPosition + Number(posArr[posArr.length - 1])\n };\n if (!outsideTree) {\n onDrop === null || onDrop === void 0 || onDrop(dropResult);\n }\n _this.dragNodeProps = null;\n });\n _defineProperty(_assertThisInitialized(_this), \"cleanDragState\", function () {\n var draggingNodeKey = _this.state.draggingNodeKey;\n if (draggingNodeKey !== null) {\n _this.setState({\n draggingNodeKey: null,\n dropPosition: null,\n dropContainerKey: null,\n dropTargetKey: null,\n dropLevelOffset: null,\n dropAllowed: true,\n dragOverNodeKey: null\n });\n }\n _this.dragStartMousePosition = null;\n _this.currentMouseOverDroppableNodeKey = null;\n });\n _defineProperty(_assertThisInitialized(_this), \"triggerExpandActionExpand\", function (e, treeNode) {\n var _this$state5 = _this.state,\n expandedKeys = _this$state5.expandedKeys,\n flattenNodes = _this$state5.flattenNodes;\n var expanded = treeNode.expanded,\n key = treeNode.key,\n isLeaf = treeNode.isLeaf;\n if (isLeaf || e.shiftKey || e.metaKey || e.ctrlKey) {\n return;\n }\n var node = flattenNodes.filter(function (nodeItem) {\n return nodeItem.key === key;\n })[0];\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(key, _this.getTreeNodeRequiredProps())), {}, {\n data: node.data\n }));\n _this.setExpandedKeys(expanded ? arrDel(expandedKeys, key) : arrAdd(expandedKeys, key));\n _this.onNodeExpand(e, eventNode);\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeClick\", function (e, treeNode) {\n var _this$props3 = _this.props,\n onClick = _this$props3.onClick,\n expandAction = _this$props3.expandAction;\n if (expandAction === 'click') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onClick === null || onClick === void 0 || onClick(e, treeNode);\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeDoubleClick\", function (e, treeNode) {\n var _this$props4 = _this.props,\n onDoubleClick = _this$props4.onDoubleClick,\n expandAction = _this$props4.expandAction;\n if (expandAction === 'doubleClick') {\n _this.triggerExpandActionExpand(e, treeNode);\n }\n onDoubleClick === null || onDoubleClick === void 0 || onDoubleClick(e, treeNode);\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeSelect\", function (e, treeNode) {\n var selectedKeys = _this.state.selectedKeys;\n var _this$state6 = _this.state,\n keyEntities = _this$state6.keyEntities,\n fieldNames = _this$state6.fieldNames;\n var _this$props5 = _this.props,\n onSelect = _this$props5.onSelect,\n multiple = _this$props5.multiple;\n var selected = treeNode.selected;\n var key = treeNode[fieldNames.key];\n var targetSelected = !selected;\n\n // Update selected keys\n if (!targetSelected) {\n selectedKeys = arrDel(selectedKeys, key);\n } else if (!multiple) {\n selectedKeys = [key];\n } else {\n selectedKeys = arrAdd(selectedKeys, key);\n }\n\n // [Legacy] Not found related usage in doc or upper libs\n var selectedNodes = selectedKeys.map(function (selectedKey) {\n var entity = getEntity(keyEntities, selectedKey);\n return entity ? entity.node : null;\n }).filter(Boolean);\n _this.setUncontrolledState({\n selectedKeys: selectedKeys\n });\n onSelect === null || onSelect === void 0 || onSelect(selectedKeys, {\n event: 'select',\n selected: targetSelected,\n node: treeNode,\n selectedNodes: selectedNodes,\n nativeEvent: e.nativeEvent\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeCheck\", function (e, treeNode, checked) {\n var _this$state7 = _this.state,\n keyEntities = _this$state7.keyEntities,\n oriCheckedKeys = _this$state7.checkedKeys,\n oriHalfCheckedKeys = _this$state7.halfCheckedKeys;\n var _this$props6 = _this.props,\n checkStrictly = _this$props6.checkStrictly,\n onCheck = _this$props6.onCheck;\n var key = treeNode.key;\n\n // Prepare trigger arguments\n var checkedObj;\n var eventObj = {\n event: 'check',\n node: treeNode,\n checked: checked,\n nativeEvent: e.nativeEvent\n };\n if (checkStrictly) {\n var checkedKeys = checked ? arrAdd(oriCheckedKeys, key) : arrDel(oriCheckedKeys, key);\n var halfCheckedKeys = arrDel(oriHalfCheckedKeys, key);\n checkedObj = {\n checked: checkedKeys,\n halfChecked: halfCheckedKeys\n };\n eventObj.checkedNodes = checkedKeys.map(function (checkedKey) {\n return getEntity(keyEntities, checkedKey);\n }).filter(Boolean).map(function (entity) {\n return entity.node;\n });\n _this.setUncontrolledState({\n checkedKeys: checkedKeys\n });\n } else {\n // Always fill first\n var _conductCheck = conductCheck([].concat(_toConsumableArray(oriCheckedKeys), [key]), true, keyEntities),\n _checkedKeys = _conductCheck.checkedKeys,\n _halfCheckedKeys = _conductCheck.halfCheckedKeys;\n\n // If remove, we do it again to correction\n if (!checked) {\n var keySet = new Set(_checkedKeys);\n keySet.delete(key);\n var _conductCheck2 = conductCheck(Array.from(keySet), {\n checked: false,\n halfCheckedKeys: _halfCheckedKeys\n }, keyEntities);\n _checkedKeys = _conductCheck2.checkedKeys;\n _halfCheckedKeys = _conductCheck2.halfCheckedKeys;\n }\n checkedObj = _checkedKeys;\n\n // [Legacy] This is used for `rc-tree-select`\n eventObj.checkedNodes = [];\n eventObj.checkedNodesPositions = [];\n eventObj.halfCheckedKeys = _halfCheckedKeys;\n _checkedKeys.forEach(function (checkedKey) {\n var entity = getEntity(keyEntities, checkedKey);\n if (!entity) return;\n var node = entity.node,\n pos = entity.pos;\n eventObj.checkedNodes.push(node);\n eventObj.checkedNodesPositions.push({\n node: node,\n pos: pos\n });\n });\n _this.setUncontrolledState({\n checkedKeys: _checkedKeys\n }, false, {\n halfCheckedKeys: _halfCheckedKeys\n });\n }\n onCheck === null || onCheck === void 0 || onCheck(checkedObj, eventObj);\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeLoad\", function (treeNode) {\n var _entity$children;\n var key = treeNode.key;\n var keyEntities = _this.state.keyEntities;\n\n // Skip if has children already\n var entity = getEntity(keyEntities, key);\n if (entity !== null && entity !== void 0 && (_entity$children = entity.children) !== null && _entity$children !== void 0 && _entity$children.length) {\n return;\n }\n var loadPromise = new Promise(function (resolve, reject) {\n // We need to get the latest state of loading/loaded keys\n _this.setState(function (_ref) {\n var _ref$loadedKeys = _ref.loadedKeys,\n loadedKeys = _ref$loadedKeys === void 0 ? [] : _ref$loadedKeys,\n _ref$loadingKeys = _ref.loadingKeys,\n loadingKeys = _ref$loadingKeys === void 0 ? [] : _ref$loadingKeys;\n var _this$props7 = _this.props,\n loadData = _this$props7.loadData,\n onLoad = _this$props7.onLoad;\n if (!loadData || loadedKeys.includes(key) || loadingKeys.includes(key)) {\n return null;\n }\n\n // Process load data\n var promise = loadData(treeNode);\n promise.then(function () {\n var currentLoadedKeys = _this.state.loadedKeys;\n var newLoadedKeys = arrAdd(currentLoadedKeys, key);\n\n // onLoad should trigger before internal setState to avoid `loadData` trigger twice.\n // https://github.com/ant-design/ant-design/issues/12464\n onLoad === null || onLoad === void 0 || onLoad(newLoadedKeys, {\n event: 'load',\n node: treeNode\n });\n _this.setUncontrolledState({\n loadedKeys: newLoadedKeys\n });\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n resolve();\n }).catch(function (e) {\n _this.setState(function (prevState) {\n return {\n loadingKeys: arrDel(prevState.loadingKeys, key)\n };\n });\n\n // If exceed max retry times, we give up retry\n _this.loadingRetryTimes[key] = (_this.loadingRetryTimes[key] || 0) + 1;\n if (_this.loadingRetryTimes[key] >= MAX_RETRY_TIMES) {\n var currentLoadedKeys = _this.state.loadedKeys;\n warning(false, 'Retry for `loadData` many times but still failed. No more retry.');\n _this.setUncontrolledState({\n loadedKeys: arrAdd(currentLoadedKeys, key)\n });\n resolve();\n }\n reject(e);\n });\n return {\n loadingKeys: arrAdd(loadingKeys, key)\n };\n });\n });\n\n // Not care warning if we ignore this\n loadPromise.catch(function () {});\n return loadPromise;\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeMouseEnter\", function (event, node) {\n var onMouseEnter = _this.props.onMouseEnter;\n onMouseEnter === null || onMouseEnter === void 0 || onMouseEnter({\n event: event,\n node: node\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeMouseLeave\", function (event, node) {\n var onMouseLeave = _this.props.onMouseLeave;\n onMouseLeave === null || onMouseLeave === void 0 || onMouseLeave({\n event: event,\n node: node\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeContextMenu\", function (event, node) {\n var onRightClick = _this.props.onRightClick;\n if (onRightClick) {\n event.preventDefault();\n onRightClick({\n event: event,\n node: node\n });\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onFocus\", function () {\n var onFocus = _this.props.onFocus;\n _this.setState({\n focused: true\n });\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n onFocus === null || onFocus === void 0 || onFocus.apply(void 0, args);\n });\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function () {\n var onBlur = _this.props.onBlur;\n _this.setState({\n focused: false\n });\n _this.onActiveChange(null);\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n onBlur === null || onBlur === void 0 || onBlur.apply(void 0, args);\n });\n _defineProperty(_assertThisInitialized(_this), \"getTreeNodeRequiredProps\", function () {\n var _this$state8 = _this.state,\n expandedKeys = _this$state8.expandedKeys,\n selectedKeys = _this$state8.selectedKeys,\n loadedKeys = _this$state8.loadedKeys,\n loadingKeys = _this$state8.loadingKeys,\n checkedKeys = _this$state8.checkedKeys,\n halfCheckedKeys = _this$state8.halfCheckedKeys,\n dragOverNodeKey = _this$state8.dragOverNodeKey,\n dropPosition = _this$state8.dropPosition,\n keyEntities = _this$state8.keyEntities;\n return {\n expandedKeys: expandedKeys || [],\n selectedKeys: selectedKeys || [],\n loadedKeys: loadedKeys || [],\n loadingKeys: loadingKeys || [],\n checkedKeys: checkedKeys || [],\n halfCheckedKeys: halfCheckedKeys || [],\n dragOverNodeKey: dragOverNodeKey,\n dropPosition: dropPosition,\n keyEntities: keyEntities\n };\n });\n // =========================== Expanded ===========================\n /** Set uncontrolled `expandedKeys`. This will also auto update `flattenNodes`. */\n _defineProperty(_assertThisInitialized(_this), \"setExpandedKeys\", function (expandedKeys) {\n var _this$state9 = _this.state,\n treeData = _this$state9.treeData,\n fieldNames = _this$state9.fieldNames;\n var flattenNodes = flattenTreeData(treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n expandedKeys: expandedKeys,\n flattenNodes: flattenNodes\n }, true);\n });\n _defineProperty(_assertThisInitialized(_this), \"onNodeExpand\", function (e, treeNode) {\n var expandedKeys = _this.state.expandedKeys;\n var _this$state10 = _this.state,\n listChanging = _this$state10.listChanging,\n fieldNames = _this$state10.fieldNames;\n var _this$props8 = _this.props,\n onExpand = _this$props8.onExpand,\n loadData = _this$props8.loadData;\n var expanded = treeNode.expanded;\n var key = treeNode[fieldNames.key];\n\n // Do nothing when motion is in progress\n if (listChanging) {\n return;\n }\n\n // Update selected keys\n var certain = expandedKeys.includes(key);\n var targetExpanded = !expanded;\n warning(expanded && certain || !expanded && !certain, 'Expand state not sync with index check');\n expandedKeys = targetExpanded ? arrAdd(expandedKeys, key) : arrDel(expandedKeys, key);\n _this.setExpandedKeys(expandedKeys);\n onExpand === null || onExpand === void 0 || onExpand(expandedKeys, {\n node: treeNode,\n expanded: targetExpanded,\n nativeEvent: e.nativeEvent\n });\n\n // Async Load data\n if (targetExpanded && loadData) {\n var loadPromise = _this.onNodeLoad(treeNode);\n if (loadPromise) {\n loadPromise.then(function () {\n // [Legacy] Refresh logic\n var newFlattenTreeData = flattenTreeData(_this.state.treeData, expandedKeys, fieldNames);\n _this.setUncontrolledState({\n flattenNodes: newFlattenTreeData\n });\n }).catch(function () {\n var currentExpandedKeys = _this.state.expandedKeys;\n var expandedKeysToRestore = arrDel(currentExpandedKeys, key);\n _this.setExpandedKeys(expandedKeysToRestore);\n });\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onListChangeStart\", function () {\n _this.setUncontrolledState({\n listChanging: true\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"onListChangeEnd\", function () {\n setTimeout(function () {\n _this.setUncontrolledState({\n listChanging: false\n });\n });\n });\n // =========================== Keyboard ===========================\n _defineProperty(_assertThisInitialized(_this), \"onActiveChange\", function (newActiveKey) {\n var activeKey = _this.state.activeKey;\n var _this$props9 = _this.props,\n onActiveChange = _this$props9.onActiveChange,\n _this$props9$itemScro = _this$props9.itemScrollOffset,\n itemScrollOffset = _this$props9$itemScro === void 0 ? 0 : _this$props9$itemScro;\n if (activeKey === newActiveKey) {\n return;\n }\n _this.setState({\n activeKey: newActiveKey\n });\n if (newActiveKey !== null) {\n _this.scrollTo({\n key: newActiveKey,\n offset: itemScrollOffset\n });\n }\n onActiveChange === null || onActiveChange === void 0 || onActiveChange(newActiveKey);\n });\n _defineProperty(_assertThisInitialized(_this), \"getActiveItem\", function () {\n var _this$state11 = _this.state,\n activeKey = _this$state11.activeKey,\n flattenNodes = _this$state11.flattenNodes;\n if (activeKey === null) {\n return null;\n }\n return flattenNodes.find(function (_ref2) {\n var key = _ref2.key;\n return key === activeKey;\n }) || null;\n });\n _defineProperty(_assertThisInitialized(_this), \"offsetActiveKey\", function (offset) {\n var _this$state12 = _this.state,\n flattenNodes = _this$state12.flattenNodes,\n activeKey = _this$state12.activeKey;\n var index = flattenNodes.findIndex(function (_ref3) {\n var key = _ref3.key;\n return key === activeKey;\n });\n\n // Align with index\n if (index === -1 && offset < 0) {\n index = flattenNodes.length;\n }\n index = (index + offset + flattenNodes.length) % flattenNodes.length;\n var item = flattenNodes[index];\n if (item) {\n var _key4 = item.key;\n _this.onActiveChange(_key4);\n } else {\n _this.onActiveChange(null);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onKeyDown\", function (event) {\n var _this$state13 = _this.state,\n activeKey = _this$state13.activeKey,\n expandedKeys = _this$state13.expandedKeys,\n checkedKeys = _this$state13.checkedKeys,\n fieldNames = _this$state13.fieldNames;\n var _this$props10 = _this.props,\n onKeyDown = _this$props10.onKeyDown,\n checkable = _this$props10.checkable,\n selectable = _this$props10.selectable;\n\n // >>>>>>>>>> Direction\n switch (event.which) {\n case KeyCode.UP:\n {\n _this.offsetActiveKey(-1);\n event.preventDefault();\n break;\n }\n case KeyCode.DOWN:\n {\n _this.offsetActiveKey(1);\n event.preventDefault();\n break;\n }\n }\n\n // >>>>>>>>>> Expand & Selection\n var activeItem = _this.getActiveItem();\n if (activeItem && activeItem.data) {\n var treeNodeRequiredProps = _this.getTreeNodeRequiredProps();\n var expandable = activeItem.data.isLeaf === false || !!(activeItem.data[fieldNames.children] || []).length;\n var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(activeKey, treeNodeRequiredProps)), {}, {\n data: activeItem.data,\n active: true\n }));\n switch (event.which) {\n // >>> Expand\n case KeyCode.LEFT:\n {\n // Collapse if possible\n if (expandable && expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.parent) {\n _this.onActiveChange(activeItem.parent.key);\n }\n event.preventDefault();\n break;\n }\n case KeyCode.RIGHT:\n {\n // Expand if possible\n if (expandable && !expandedKeys.includes(activeKey)) {\n _this.onNodeExpand({}, eventNode);\n } else if (activeItem.children && activeItem.children.length) {\n _this.onActiveChange(activeItem.children[0].key);\n }\n event.preventDefault();\n break;\n }\n\n // Selection\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n {\n if (checkable && !eventNode.disabled && eventNode.checkable !== false && !eventNode.disableCheckbox) {\n _this.onNodeCheck({}, eventNode, !checkedKeys.includes(activeKey));\n } else if (!checkable && selectable && !eventNode.disabled && eventNode.selectable !== false) {\n _this.onNodeSelect({}, eventNode);\n }\n break;\n }\n }\n }\n onKeyDown === null || onKeyDown === void 0 || onKeyDown(event);\n });\n /**\n * Only update the value which is not in props\n */\n _defineProperty(_assertThisInitialized(_this), \"setUncontrolledState\", function (state) {\n var atomic = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var forceState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (!_this.destroyed) {\n var needSync = false;\n var allPassed = true;\n var newState = {};\n Object.keys(state).forEach(function (name) {\n if (_this.props.hasOwnProperty(name)) {\n allPassed = false;\n return;\n }\n needSync = true;\n newState[name] = state[name];\n });\n if (needSync && (!atomic || allPassed)) {\n _this.setState(_objectSpread(_objectSpread({}, newState), forceState));\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"scrollTo\", function (scroll) {\n _this.listRef.current.scrollTo(scroll);\n });\n return _this;\n }\n _createClass(Tree, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.destroyed = false;\n this.onUpdated();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onUpdated();\n }\n }, {\n key: \"onUpdated\",\n value: function onUpdated() {\n var _this$props11 = this.props,\n activeKey = _this$props11.activeKey,\n _this$props11$itemScr = _this$props11.itemScrollOffset,\n itemScrollOffset = _this$props11$itemScr === void 0 ? 0 : _this$props11$itemScr;\n if (activeKey !== undefined && activeKey !== this.state.activeKey) {\n this.setState({\n activeKey: activeKey\n });\n if (activeKey !== null) {\n this.scrollTo({\n key: activeKey,\n offset: itemScrollOffset\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener('dragend', this.onWindowDragEnd);\n this.destroyed = true;\n }\n }, {\n key: \"resetDragState\",\n value: function resetDragState() {\n this.setState({\n dragOverNodeKey: null,\n dropPosition: null,\n dropLevelOffset: null,\n dropTargetKey: null,\n dropContainerKey: null,\n dropTargetPos: null,\n dropAllowed: false\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$state14 = this.state,\n focused = _this$state14.focused,\n flattenNodes = _this$state14.flattenNodes,\n keyEntities = _this$state14.keyEntities,\n draggingNodeKey = _this$state14.draggingNodeKey,\n activeKey = _this$state14.activeKey,\n dropLevelOffset = _this$state14.dropLevelOffset,\n dropContainerKey = _this$state14.dropContainerKey,\n dropTargetKey = _this$state14.dropTargetKey,\n dropPosition = _this$state14.dropPosition,\n dragOverNodeKey = _this$state14.dragOverNodeKey,\n indent = _this$state14.indent;\n var _this$props12 = this.props,\n prefixCls = _this$props12.prefixCls,\n className = _this$props12.className,\n style = _this$props12.style,\n showLine = _this$props12.showLine,\n focusable = _this$props12.focusable,\n _this$props12$tabInde = _this$props12.tabIndex,\n tabIndex = _this$props12$tabInde === void 0 ? 0 : _this$props12$tabInde,\n selectable = _this$props12.selectable,\n showIcon = _this$props12.showIcon,\n icon = _this$props12.icon,\n switcherIcon = _this$props12.switcherIcon,\n draggable = _this$props12.draggable,\n checkable = _this$props12.checkable,\n checkStrictly = _this$props12.checkStrictly,\n disabled = _this$props12.disabled,\n motion = _this$props12.motion,\n loadData = _this$props12.loadData,\n filterTreeNode = _this$props12.filterTreeNode,\n height = _this$props12.height,\n itemHeight = _this$props12.itemHeight,\n scrollWidth = _this$props12.scrollWidth,\n virtual = _this$props12.virtual,\n titleRender = _this$props12.titleRender,\n dropIndicatorRender = _this$props12.dropIndicatorRender,\n onContextMenu = _this$props12.onContextMenu,\n onScroll = _this$props12.onScroll,\n direction = _this$props12.direction,\n rootClassName = _this$props12.rootClassName,\n rootStyle = _this$props12.rootStyle;\n var domProps = pickAttrs(this.props, {\n aria: true,\n data: true\n });\n\n // It's better move to hooks but we just simply keep here\n var draggableConfig;\n if (draggable) {\n if (_typeof(draggable) === 'object') {\n draggableConfig = draggable;\n } else if (typeof draggable === 'function') {\n draggableConfig = {\n nodeDraggable: draggable\n };\n } else {\n draggableConfig = {};\n }\n }\n var contextValue = {\n prefixCls: prefixCls,\n selectable: selectable,\n showIcon: showIcon,\n icon: icon,\n switcherIcon: switcherIcon,\n draggable: draggableConfig,\n draggingNodeKey: draggingNodeKey,\n checkable: checkable,\n checkStrictly: checkStrictly,\n disabled: disabled,\n keyEntities: keyEntities,\n dropLevelOffset: dropLevelOffset,\n dropContainerKey: dropContainerKey,\n dropTargetKey: dropTargetKey,\n dropPosition: dropPosition,\n dragOverNodeKey: dragOverNodeKey,\n indent: indent,\n direction: direction,\n dropIndicatorRender: dropIndicatorRender,\n loadData: loadData,\n filterTreeNode: filterTreeNode,\n titleRender: titleRender,\n onNodeClick: this.onNodeClick,\n onNodeDoubleClick: this.onNodeDoubleClick,\n onNodeExpand: this.onNodeExpand,\n onNodeSelect: this.onNodeSelect,\n onNodeCheck: this.onNodeCheck,\n onNodeLoad: this.onNodeLoad,\n onNodeMouseEnter: this.onNodeMouseEnter,\n onNodeMouseLeave: this.onNodeMouseLeave,\n onNodeContextMenu: this.onNodeContextMenu,\n onNodeDragStart: this.onNodeDragStart,\n onNodeDragEnter: this.onNodeDragEnter,\n onNodeDragOver: this.onNodeDragOver,\n onNodeDragLeave: this.onNodeDragLeave,\n onNodeDragEnd: this.onNodeDragEnd,\n onNodeDrop: this.onNodeDrop\n };\n return /*#__PURE__*/React.createElement(TreeContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, className, rootClassName, _defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-show-line\"), showLine), \"\".concat(prefixCls, \"-focused\"), focused), \"\".concat(prefixCls, \"-active-focused\"), activeKey !== null)),\n style: rootStyle\n }, /*#__PURE__*/React.createElement(NodeList, _extends({\n ref: this.listRef,\n prefixCls: prefixCls,\n style: style,\n data: flattenNodes,\n disabled: disabled,\n selectable: selectable,\n checkable: !!checkable,\n motion: motion,\n dragging: draggingNodeKey !== null,\n height: height,\n itemHeight: itemHeight,\n virtual: virtual,\n focusable: focusable,\n focused: focused,\n tabIndex: tabIndex,\n activeItem: this.getActiveItem(),\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.onKeyDown,\n onActiveChange: this.onActiveChange,\n onListChangeStart: this.onListChangeStart,\n onListChangeEnd: this.onListChangeEnd,\n onContextMenu: onContextMenu,\n onScroll: onScroll,\n scrollWidth: scrollWidth\n }, this.getTreeNodeRequiredProps(), domProps))));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, prevState) {\n var prevProps = prevState.prevProps;\n var newState = {\n prevProps: props\n };\n function needSync(name) {\n return !prevProps && props.hasOwnProperty(name) || prevProps && prevProps[name] !== props[name];\n }\n\n // ================== Tree Node ==================\n var treeData;\n\n // fieldNames\n var fieldNames = prevState.fieldNames;\n if (needSync('fieldNames')) {\n fieldNames = fillFieldNames(props.fieldNames);\n newState.fieldNames = fieldNames;\n }\n\n // Check if `treeData` or `children` changed and save into the state.\n if (needSync('treeData')) {\n treeData = props.treeData;\n } else if (needSync('children')) {\n warning(false, '`children` of Tree is deprecated. Please use `treeData` instead.');\n treeData = convertTreeToData(props.children);\n }\n\n // Save flatten nodes info and convert `treeData` into keyEntities\n if (treeData) {\n newState.treeData = treeData;\n var entitiesMap = convertDataToEntities(treeData, {\n fieldNames: fieldNames\n });\n newState.keyEntities = _objectSpread(_defineProperty({}, MOTION_KEY, MotionEntity), entitiesMap.keyEntities);\n\n // Warning if treeNode not provide key\n if (process.env.NODE_ENV !== 'production') {\n warningWithoutKey(treeData, fieldNames);\n }\n }\n var keyEntities = newState.keyEntities || prevState.keyEntities;\n\n // ================ expandedKeys =================\n if (needSync('expandedKeys') || prevProps && needSync('autoExpandParent')) {\n newState.expandedKeys = props.autoExpandParent || !prevProps && props.defaultExpandParent ? conductExpandParent(props.expandedKeys, keyEntities) : props.expandedKeys;\n } else if (!prevProps && props.defaultExpandAll) {\n var cloneKeyEntities = _objectSpread({}, keyEntities);\n delete cloneKeyEntities[MOTION_KEY];\n\n // Only take the key who has the children to enhance the performance\n var nextExpandedKeys = [];\n Object.keys(cloneKeyEntities).forEach(function (key) {\n var entity = cloneKeyEntities[key];\n if (entity.children && entity.children.length) {\n nextExpandedKeys.push(entity.key);\n }\n });\n newState.expandedKeys = nextExpandedKeys;\n } else if (!prevProps && props.defaultExpandedKeys) {\n newState.expandedKeys = props.autoExpandParent || props.defaultExpandParent ? conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;\n }\n if (!newState.expandedKeys) {\n delete newState.expandedKeys;\n }\n\n // ================ flattenNodes =================\n if (treeData || newState.expandedKeys) {\n var flattenNodes = flattenTreeData(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys, fieldNames);\n newState.flattenNodes = flattenNodes;\n }\n\n // ================ selectedKeys =================\n if (props.selectable) {\n if (needSync('selectedKeys')) {\n newState.selectedKeys = calcSelectedKeys(props.selectedKeys, props);\n } else if (!prevProps && props.defaultSelectedKeys) {\n newState.selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);\n }\n }\n\n // ================= checkedKeys =================\n if (props.checkable) {\n var checkedKeyEntity;\n if (needSync('checkedKeys')) {\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};\n } else if (!prevProps && props.defaultCheckedKeys) {\n checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};\n } else if (treeData) {\n // If `treeData` changed, we also need check it\n checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {\n checkedKeys: prevState.checkedKeys,\n halfCheckedKeys: prevState.halfCheckedKeys\n };\n }\n if (checkedKeyEntity) {\n var _checkedKeyEntity = checkedKeyEntity,\n _checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,\n checkedKeys = _checkedKeyEntity$che === void 0 ? [] : _checkedKeyEntity$che,\n _checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,\n halfCheckedKeys = _checkedKeyEntity$hal === void 0 ? [] : _checkedKeyEntity$hal;\n if (!props.checkStrictly) {\n var conductKeys = conductCheck(checkedKeys, true, keyEntities);\n checkedKeys = conductKeys.checkedKeys;\n halfCheckedKeys = conductKeys.halfCheckedKeys;\n }\n newState.checkedKeys = checkedKeys;\n newState.halfCheckedKeys = halfCheckedKeys;\n }\n }\n\n // ================= loadedKeys ==================\n if (needSync('loadedKeys')) {\n newState.loadedKeys = props.loadedKeys;\n }\n return newState;\n }\n }]);\n return Tree;\n}(React.Component);\n_defineProperty(Tree, \"defaultProps\", {\n prefixCls: 'rc-tree',\n showLine: false,\n showIcon: true,\n selectable: true,\n multiple: false,\n checkable: false,\n disabled: false,\n checkStrictly: false,\n draggable: false,\n defaultExpandParent: true,\n autoExpandParent: false,\n defaultExpandAll: false,\n defaultExpandedKeys: [],\n defaultCheckedKeys: [],\n defaultSelectedKeys: [],\n dropIndicatorRender: DropIndicator,\n allowDrop: function allowDrop() {\n return true;\n },\n expandAction: false\n});\n_defineProperty(Tree, \"TreeNode\", TreeNode);\nexport default Tree;","import Tree from \"./Tree\";\nimport TreeNode from \"./TreeNode\";\nimport { UnstableContext } from \"./contextTypes\";\nexport { TreeNode, UnstableContext };\nexport default Tree;","// This icon file is generated automatically.\nvar FileOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z\" } }] }, \"name\": \"file\", \"theme\": \"outlined\" };\nexport default FileOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FileOutlinedSvg from \"@ant-design/icons-svg/es/asn/FileOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FileOutlined = function FileOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FileOutlinedSvg\n }));\n};\n\n/**![file](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(FileOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'FileOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar FolderOpenOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z\" } }] }, \"name\": \"folder-open\", \"theme\": \"outlined\" };\nexport default FolderOpenOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FolderOpenOutlinedSvg from \"@ant-design/icons-svg/es/asn/FolderOpenOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FolderOpenOutlined = function FolderOpenOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FolderOpenOutlinedSvg\n }));\n};\n\n/**![folder-open](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkyOCA0NDRIODIwVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQ3M0wzNTUuNyAxODYuMmE4LjE1IDguMTUgMCAwMC01LjUtMi4ySDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjk4YzEzIDAgMjQuOC03LjkgMjkuNy0yMGwxMzQtMzMyYzEuNS0zLjggMi4zLTcuOSAyLjMtMTIgMC0xNy43LTE0LjMtMzItMzItMzJ6TTEzNiAyNTZoMTg4LjVsMTE5LjYgMTE0LjRINzQ4VjQ0NEgyMzhjLTEzIDAtMjQuOCA3LjktMjkuNyAyMEwxMzYgNjQzLjJWMjU2em02MzUuMyA1MTJIMTU5bDEwMy4zLTI1Nmg2MTIuNEw3NzEuMyA3Njh6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(FolderOpenOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'FolderOpenOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar FolderOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z\" } }] }, \"name\": \"folder\", \"theme\": \"outlined\" };\nexport default FolderOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FolderOutlinedSvg from \"@ant-design/icons-svg/es/asn/FolderOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FolderOutlined = function FolderOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FolderOutlinedSvg\n }));\n};\n\n/**![folder](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4MCAyOTguNEg1MjFMNDAzLjcgMTg2LjJhOC4xNSA4LjE1IDAgMDAtNS41LTIuMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTg0MCA3NjhIMTg0VjI1NmgxODguNWwxMTkuNiAxMTQuNEg4NDBWNzY4eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(FolderOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'FolderOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar HolderOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M300 276.5a56 56 0 1056-97 56 56 0 00-56 97zm0 284a56 56 0 1056-97 56 56 0 00-56 97zM640 228a56 56 0 10112 0 56 56 0 00-112 0zm0 284a56 56 0 10112 0 56 56 0 00-112 0zM300 844.5a56 56 0 1056-97 56 56 0 00-56 97zM640 796a56 56 0 10112 0 56 56 0 00-112 0z\" } }] }, \"name\": \"holder\", \"theme\": \"outlined\" };\nexport default HolderOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport HolderOutlinedSvg from \"@ant-design/icons-svg/es/asn/HolderOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar HolderOutlined = function HolderOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: HolderOutlinedSvg\n }));\n};\n\n/**![holder](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMwMCAyNzYuNWE1NiA1NiAwIDEwNTYtOTcgNTYgNTYgMCAwMC01NiA5N3ptMCAyODRhNTYgNTYgMCAxMDU2LTk3IDU2IDU2IDAgMDAtNTYgOTd6TTY0MCAyMjhhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMDAtMTEyIDB6bTAgMjg0YTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDAwLTExMiAwek0zMDAgODQ0LjVhNTYgNTYgMCAxMDU2LTk3IDU2IDU2IDAgMDAtNTYgOTd6TTY0MCA3OTZhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMDAtMTEyIDB6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(HolderOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'HolderOutlined';\n}\nexport default RefIcon;","// ============================ Directory =============================\nexport const genDirectoryStyle = _ref => {\n let {\n treeCls,\n treeNodeCls,\n directoryNodeSelectedBg,\n directoryNodeSelectedColor,\n motionDurationMid,\n borderRadius,\n controlItemBgHover\n } = _ref;\n return {\n [`${treeCls}${treeCls}-directory ${treeNodeCls}`]: {\n // >>> Title\n [`${treeCls}-node-content-wrapper`]: {\n position: 'static',\n [`> *:not(${treeCls}-drop-indicator)`]: {\n position: 'relative'\n },\n '&:hover': {\n background: 'transparent'\n },\n // Expand interactive area to whole line\n '&:before': {\n position: 'absolute',\n inset: 0,\n transition: `background-color ${motionDurationMid}`,\n content: '\"\"',\n borderRadius\n },\n '&:hover:before': {\n background: controlItemBgHover\n }\n },\n [`${treeCls}-switcher, ${treeCls}-checkbox, ${treeCls}-draggable-icon`]: {\n zIndex: 1\n },\n // ============= Selected =============\n '&-selected': {\n [`${treeCls}-switcher, ${treeCls}-draggable-icon`]: {\n color: directoryNodeSelectedColor\n },\n // >>> Title\n [`${treeCls}-node-content-wrapper`]: {\n color: directoryNodeSelectedColor,\n background: 'transparent',\n '&:before, &:hover:before': {\n background: directoryNodeSelectedBg\n }\n }\n }\n }\n };\n};","import { Keyframes, unit } from '@ant-design/cssinjs';\nimport { getStyle as getCheckboxStyle } from '../../checkbox/style';\nimport { genFocusOutline, resetComponent } from '../../style';\nimport { genCollapseMotion } from '../../style/motion';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport { genDirectoryStyle } from './directory';\n// ============================ Keyframes =============================\nconst treeNodeFX = new Keyframes('ant-tree-node-fx-do-not-use', {\n '0%': {\n opacity: 0\n },\n '100%': {\n opacity: 1\n }\n});\n// ============================== Switch ==============================\nconst getSwitchStyle = (prefixCls, token) => ({\n [`.${prefixCls}-switcher-icon`]: {\n display: 'inline-block',\n fontSize: 10,\n verticalAlign: 'baseline',\n svg: {\n transition: `transform ${token.motionDurationSlow}`\n }\n }\n});\n// =============================== Drop ===============================\nconst getDropIndicatorStyle = (prefixCls, token) => ({\n [`.${prefixCls}-drop-indicator`]: {\n position: 'absolute',\n // it should displayed over the following node\n zIndex: 1,\n height: 2,\n backgroundColor: token.colorPrimary,\n borderRadius: 1,\n pointerEvents: 'none',\n '&:after': {\n position: 'absolute',\n top: -3,\n insetInlineStart: -6,\n width: 8,\n height: 8,\n backgroundColor: 'transparent',\n border: `${unit(token.lineWidthBold)} solid ${token.colorPrimary}`,\n borderRadius: '50%',\n content: '\"\"'\n }\n }\n});\nexport const genBaseStyle = (prefixCls, token) => {\n const {\n treeCls,\n treeNodeCls,\n treeNodePadding,\n titleHeight,\n indentSize,\n nodeSelectedBg,\n nodeHoverBg,\n colorTextQuaternary,\n controlItemBgActiveDisabled\n } = token;\n return {\n [treeCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n background: token.colorBgContainer,\n borderRadius: token.borderRadius,\n transition: `background-color ${token.motionDurationSlow}`,\n '&-rtl': {\n direction: 'rtl'\n },\n [`&${treeCls}-rtl ${treeCls}-switcher_close ${treeCls}-switcher-icon svg`]: {\n transform: 'rotate(90deg)'\n },\n [`&-focused:not(:hover):not(${treeCls}-active-focused)`]: Object.assign({}, genFocusOutline(token)),\n // =================== Virtual List ===================\n [`${treeCls}-list-holder-inner`]: {\n alignItems: 'flex-start'\n },\n [`&${treeCls}-block-node`]: {\n [`${treeCls}-list-holder-inner`]: {\n alignItems: 'stretch',\n // >>> Title\n [`${treeCls}-node-content-wrapper`]: {\n flex: 'auto'\n },\n // >>> Drag\n [`${treeNodeCls}.dragging:after`]: {\n position: 'absolute',\n inset: 0,\n border: `1px solid ${token.colorPrimary}`,\n opacity: 0,\n animationName: treeNodeFX,\n animationDuration: token.motionDurationSlow,\n animationPlayState: 'running',\n animationFillMode: 'forwards',\n content: '\"\"',\n pointerEvents: 'none',\n borderRadius: token.borderRadius\n }\n }\n },\n // ===================== TreeNode =====================\n [treeNodeCls]: {\n display: 'flex',\n alignItems: 'flex-start',\n marginBottom: treeNodePadding,\n lineHeight: unit(titleHeight),\n position: 'relative',\n // 非常重要,避免 drop-indicator 在拖拽过程中闪烁\n '&:before': {\n content: '\"\"',\n position: 'absolute',\n zIndex: 1,\n insetInlineStart: 0,\n width: '100%',\n top: '100%',\n height: treeNodePadding\n },\n // Disabled\n [`&-disabled ${treeCls}-node-content-wrapper`]: {\n color: token.colorTextDisabled,\n cursor: 'not-allowed',\n '&:hover': {\n background: 'transparent'\n }\n },\n [`${treeCls}-checkbox-disabled + ${treeCls}-node-selected,&${treeNodeCls}-disabled${treeNodeCls}-selected ${treeCls}-node-content-wrapper`]: {\n backgroundColor: controlItemBgActiveDisabled\n },\n // we can not set pointer-events to none for checkbox in tree\n // ref: https://github.com/ant-design/ant-design/issues/39822#issuecomment-2605234058\n [`${treeCls}-checkbox-disabled`]: {\n pointerEvents: 'unset'\n },\n // not disable\n [`&:not(${treeNodeCls}-disabled)`]: {\n // >>> Title\n [`${treeCls}-node-content-wrapper`]: {\n '&:hover': {\n color: token.nodeHoverColor\n }\n }\n },\n [`&-active ${treeCls}-node-content-wrapper`]: {\n background: token.controlItemBgHover\n },\n [`&:not(${treeNodeCls}-disabled).filter-node ${treeCls}-title`]: {\n color: token.colorPrimary,\n fontWeight: 500\n },\n '&-draggable': {\n cursor: 'grab',\n [`${treeCls}-draggable-icon`]: {\n // https://github.com/ant-design/ant-design/issues/41915\n flexShrink: 0,\n width: titleHeight,\n textAlign: 'center',\n visibility: 'visible',\n color: colorTextQuaternary\n },\n [`&${treeNodeCls}-disabled ${treeCls}-draggable-icon`]: {\n visibility: 'hidden'\n }\n }\n },\n // >>> Indent\n [`${treeCls}-indent`]: {\n alignSelf: 'stretch',\n whiteSpace: 'nowrap',\n userSelect: 'none',\n '&-unit': {\n display: 'inline-block',\n width: indentSize\n }\n },\n // >>> Drag Handler\n [`${treeCls}-draggable-icon`]: {\n visibility: 'hidden'\n },\n // Switcher / Checkbox\n [`${treeCls}-switcher, ${treeCls}-checkbox`]: {\n marginInlineEnd: token.calc(token.calc(titleHeight).sub(token.controlInteractiveSize)).div(2).equal()\n },\n // >>> Switcher\n [`${treeCls}-switcher`]: Object.assign(Object.assign({}, getSwitchStyle(prefixCls, token)), {\n position: 'relative',\n flex: 'none',\n alignSelf: 'stretch',\n width: titleHeight,\n textAlign: 'center',\n cursor: 'pointer',\n userSelect: 'none',\n transition: `all ${token.motionDurationSlow}`,\n '&-noop': {\n cursor: 'unset'\n },\n '&:before': {\n pointerEvents: 'none',\n content: '\"\"',\n width: titleHeight,\n height: titleHeight,\n position: 'absolute',\n left: {\n _skip_check_: true,\n value: 0\n },\n top: 0,\n borderRadius: token.borderRadius,\n transition: `all ${token.motionDurationSlow}`\n },\n [`&:not(${treeCls}-switcher-noop):hover:before`]: {\n backgroundColor: token.colorBgTextHover\n },\n [`&_close ${treeCls}-switcher-icon svg`]: {\n transform: 'rotate(-90deg)'\n },\n '&-loading-icon': {\n color: token.colorPrimary\n },\n '&-leaf-line': {\n position: 'relative',\n zIndex: 1,\n display: 'inline-block',\n width: '100%',\n height: '100%',\n // https://github.com/ant-design/ant-design/issues/31884\n '&:before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: token.calc(titleHeight).div(2).equal(),\n bottom: token.calc(treeNodePadding).mul(-1).equal(),\n marginInlineStart: -1,\n borderInlineEnd: `1px solid ${token.colorBorder}`,\n content: '\"\"'\n },\n '&:after': {\n position: 'absolute',\n width: token.calc(token.calc(titleHeight).div(2).equal()).mul(0.8).equal(),\n height: token.calc(titleHeight).div(2).equal(),\n borderBottom: `1px solid ${token.colorBorder}`,\n content: '\"\"'\n }\n }\n }),\n // >>> Title\n // add `${treeCls}-checkbox + span` to cover checkbox `${checkboxCls} + span`\n [`${treeCls}-node-content-wrapper`]: Object.assign(Object.assign({\n position: 'relative',\n minHeight: titleHeight,\n paddingBlock: 0,\n paddingInline: token.paddingXS,\n background: 'transparent',\n borderRadius: token.borderRadius,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid}, border 0s, line-height 0s, box-shadow 0s`\n }, getDropIndicatorStyle(prefixCls, token)), {\n '&:hover': {\n backgroundColor: nodeHoverBg\n },\n [`&${treeCls}-node-selected`]: {\n color: token.nodeSelectedColor,\n backgroundColor: nodeSelectedBg\n },\n // Icon\n [`${treeCls}-iconEle`]: {\n display: 'inline-block',\n width: titleHeight,\n height: titleHeight,\n textAlign: 'center',\n verticalAlign: 'top',\n '&:empty': {\n display: 'none'\n }\n }\n }),\n // https://github.com/ant-design/ant-design/issues/28217\n [`${treeCls}-unselectable ${treeCls}-node-content-wrapper:hover`]: {\n backgroundColor: 'transparent'\n },\n [`${treeNodeCls}.drop-container > [draggable]`]: {\n boxShadow: `0 0 0 2px ${token.colorPrimary}`\n },\n // ==================== Show Line =====================\n '&-show-line': {\n // ================ Indent lines ================\n [`${treeCls}-indent-unit`]: {\n position: 'relative',\n height: '100%',\n '&:before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: token.calc(titleHeight).div(2).equal(),\n bottom: token.calc(treeNodePadding).mul(-1).equal(),\n borderInlineEnd: `1px solid ${token.colorBorder}`,\n content: '\"\"'\n },\n '&-end:before': {\n display: 'none'\n }\n },\n // ============== Cover Background ==============\n [`${treeCls}-switcher`]: {\n background: 'transparent',\n '&-line-icon': {\n // https://github.com/ant-design/ant-design/issues/32813\n verticalAlign: '-0.15em'\n }\n }\n },\n [`${treeNodeCls}-leaf-last ${treeCls}-switcher-leaf-line:before`]: {\n top: 'auto !important',\n bottom: 'auto !important',\n height: `${unit(token.calc(titleHeight).div(2).equal())} !important`\n }\n })\n };\n};\n// ============================== Merged ==============================\nexport const genTreeStyle = (prefixCls, token) => {\n const treeCls = `.${prefixCls}`;\n const treeNodeCls = `${treeCls}-treenode`;\n const treeNodePadding = token.calc(token.paddingXS).div(2).equal();\n const treeToken = mergeToken(token, {\n treeCls,\n treeNodeCls,\n treeNodePadding\n });\n return [\n // Basic\n genBaseStyle(prefixCls, treeToken),\n // Directory\n genDirectoryStyle(treeToken)];\n};\nexport const initComponentToken = token => {\n const {\n controlHeightSM,\n controlItemBgHover,\n controlItemBgActive\n } = token;\n const titleHeight = controlHeightSM;\n return {\n titleHeight,\n indentSize: titleHeight,\n nodeHoverBg: controlItemBgHover,\n nodeHoverColor: token.colorText,\n nodeSelectedBg: controlItemBgActive,\n nodeSelectedColor: token.colorText\n };\n};\nexport const prepareComponentToken = token => {\n const {\n colorTextLightSolid,\n colorPrimary\n } = token;\n return Object.assign(Object.assign({}, initComponentToken(token)), {\n directoryNodeSelectedColor: colorTextLightSolid,\n directoryNodeSelectedBg: colorPrimary\n });\n};\nexport default genStyleHooks('Tree', (token, _ref) => {\n let {\n prefixCls\n } = _ref;\n return [{\n [token.componentCls]: getCheckboxStyle(`${prefixCls}-checkbox`, token)\n }, genTreeStyle(prefixCls, token), genCollapseMotion(token)];\n}, prepareComponentToken);","\"use client\";\n\nimport React from 'react';\nexport const offset = 4;\nfunction dropIndicatorRender(props) {\n const {\n dropPosition,\n dropLevelOffset,\n prefixCls,\n indent,\n direction = 'ltr'\n } = props;\n const startPosition = direction === 'ltr' ? 'left' : 'right';\n const endPosition = direction === 'ltr' ? 'right' : 'left';\n const style = {\n [startPosition]: -dropLevelOffset * indent + offset,\n [endPosition]: 0\n };\n switch (dropPosition) {\n case -1:\n style.top = -3;\n break;\n case 1:\n style.bottom = -3;\n break;\n default:\n // dropPosition === 0\n style.bottom = -3;\n style[startPosition] = indent + offset;\n break;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n style: style,\n className: `${prefixCls}-drop-indicator`\n });\n}\nexport default dropIndicatorRender;","// This icon file is generated automatically.\nvar CaretDownFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\" } }] }, \"name\": \"caret-down\", \"theme\": \"filled\" };\nexport default CaretDownFilled;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CaretDownFilledSvg from \"@ant-design/icons-svg/es/asn/CaretDownFilled\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CaretDownFilled = function CaretDownFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CaretDownFilledSvg\n }));\n};\n\n/**![caret-down](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg0MC40IDMwMEgxODMuNmMtMTkuNyAwLTMwLjcgMjAuOC0xOC41IDM1bDMyOC40IDM4MC44YzkuNCAxMC45IDI3LjUgMTAuOSAzNyAwTDg1OC45IDMzNWMxMi4yLTE0LjIgMS4yLTM1LTE4LjUtMzV6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CaretDownFilled);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'CaretDownFilled';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar MinusSquareOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"minus-square\", \"theme\": \"outlined\" };\nexport default MinusSquareOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport MinusSquareOutlinedSvg from \"@ant-design/icons-svg/es/asn/MinusSquareOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar MinusSquareOutlined = function MinusSquareOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: MinusSquareOutlinedSvg\n }));\n};\n\n/**![minus-square](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMyOCA1NDRoMzY4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiIC8+PHBhdGggZD0iTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(MinusSquareOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'MinusSquareOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar PlusSquareOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"plus-square\", \"theme\": \"outlined\" };\nexport default PlusSquareOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport PlusSquareOutlinedSvg from \"@ant-design/icons-svg/es/asn/PlusSquareOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar PlusSquareOutlined = function PlusSquareOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: PlusSquareOutlinedSvg\n }));\n};\n\n/**![plus-square](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMyOCA1NDRoMTUydjE1MmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjU0NGgxNTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINTQ0VjMyOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTUySDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiIC8+PHBhdGggZD0iTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(PlusSquareOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'PlusSquareOutlined';\n}\nexport default RefIcon;","\"use client\";\n\nimport * as React from 'react';\nimport CaretDownFilled from \"@ant-design/icons/es/icons/CaretDownFilled\";\nimport FileOutlined from \"@ant-design/icons/es/icons/FileOutlined\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport MinusSquareOutlined from \"@ant-design/icons/es/icons/MinusSquareOutlined\";\nimport PlusSquareOutlined from \"@ant-design/icons/es/icons/PlusSquareOutlined\";\nimport classNames from 'classnames';\nimport { cloneElement } from '../../_util/reactNode';\nconst SwitcherIconCom = props => {\n const {\n prefixCls,\n switcherIcon,\n treeNodeProps,\n showLine,\n switcherLoadingIcon\n } = props;\n const {\n isLeaf,\n expanded,\n loading\n } = treeNodeProps;\n if (loading) {\n if (/*#__PURE__*/React.isValidElement(switcherLoadingIcon)) {\n return switcherLoadingIcon;\n }\n return /*#__PURE__*/React.createElement(LoadingOutlined, {\n className: `${prefixCls}-switcher-loading-icon`\n });\n }\n let showLeafIcon;\n if (showLine && typeof showLine === 'object') {\n showLeafIcon = showLine.showLeafIcon;\n }\n if (isLeaf) {\n if (!showLine) {\n return null;\n }\n if (typeof showLeafIcon !== 'boolean' && !!showLeafIcon) {\n const leafIcon = typeof showLeafIcon === 'function' ? showLeafIcon(treeNodeProps) : showLeafIcon;\n const leafCls = `${prefixCls}-switcher-line-custom-icon`;\n if (/*#__PURE__*/React.isValidElement(leafIcon)) {\n return cloneElement(leafIcon, {\n className: classNames(leafIcon.props.className || '', leafCls)\n });\n }\n return leafIcon;\n }\n return showLeafIcon ? (/*#__PURE__*/React.createElement(FileOutlined, {\n className: `${prefixCls}-switcher-line-icon`\n })) : (/*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-switcher-leaf-line`\n }));\n }\n const switcherCls = `${prefixCls}-switcher-icon`;\n const switcher = typeof switcherIcon === 'function' ? switcherIcon(treeNodeProps) : switcherIcon;\n if (/*#__PURE__*/React.isValidElement(switcher)) {\n return cloneElement(switcher, {\n className: classNames(switcher.props.className || '', switcherCls)\n });\n }\n if (switcher !== undefined) {\n return switcher;\n }\n if (showLine) {\n return expanded ? (/*#__PURE__*/React.createElement(MinusSquareOutlined, {\n className: `${prefixCls}-switcher-line-icon`\n })) : (/*#__PURE__*/React.createElement(PlusSquareOutlined, {\n className: `${prefixCls}-switcher-line-icon`\n }));\n }\n return /*#__PURE__*/React.createElement(CaretDownFilled, {\n className: switcherCls\n });\n};\nexport default SwitcherIconCom;","\"use client\";\n\nimport React from 'react';\nimport HolderOutlined from \"@ant-design/icons/es/icons/HolderOutlined\";\nimport classNames from 'classnames';\nimport RcTree from 'rc-tree';\nimport initCollapseMotion from '../_util/motion';\nimport { ConfigContext } from '../config-provider';\nimport { useToken } from '../theme/internal';\nimport useStyle from './style';\nimport dropIndicatorRender from './utils/dropIndicator';\nimport SwitcherIconCom from './utils/iconUtil';\nconst Tree = /*#__PURE__*/React.forwardRef((props, ref) => {\n var _a;\n const {\n getPrefixCls,\n direction,\n virtual,\n tree\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className,\n showIcon = false,\n showLine,\n switcherIcon,\n switcherLoadingIcon,\n blockNode = false,\n children,\n checkable = false,\n selectable = true,\n draggable,\n motion: customMotion,\n style\n } = props;\n const prefixCls = getPrefixCls('tree', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const motion = customMotion !== null && customMotion !== void 0 ? customMotion : Object.assign(Object.assign({}, initCollapseMotion(rootPrefixCls)), {\n motionAppear: false\n });\n const newProps = Object.assign(Object.assign({}, props), {\n checkable,\n selectable,\n showIcon,\n motion,\n blockNode,\n showLine: Boolean(showLine),\n dropIndicatorRender\n });\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const [, token] = useToken();\n const itemHeight = token.paddingXS / 2 + (((_a = token.Tree) === null || _a === void 0 ? void 0 : _a.titleHeight) || token.controlHeightSM);\n const draggableConfig = React.useMemo(() => {\n if (!draggable) {\n return false;\n }\n let mergedDraggable = {};\n switch (typeof draggable) {\n case 'function':\n mergedDraggable.nodeDraggable = draggable;\n break;\n case 'object':\n mergedDraggable = Object.assign({}, draggable);\n break;\n default:\n break;\n // Do nothing\n }\n if (mergedDraggable.icon !== false) {\n mergedDraggable.icon = mergedDraggable.icon || /*#__PURE__*/React.createElement(HolderOutlined, null);\n }\n return mergedDraggable;\n }, [draggable]);\n const renderSwitcherIcon = nodeProps => (/*#__PURE__*/React.createElement(SwitcherIconCom, {\n prefixCls: prefixCls,\n switcherIcon: switcherIcon,\n switcherLoadingIcon: switcherLoadingIcon,\n treeNodeProps: nodeProps,\n showLine: showLine\n }));\n return wrapCSSVar(\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(RcTree, Object.assign({\n itemHeight: itemHeight,\n ref: ref,\n virtual: virtual\n }, newProps, {\n // newProps may contain style so declare style below it\n style: Object.assign(Object.assign({}, tree === null || tree === void 0 ? void 0 : tree.style), style),\n prefixCls: prefixCls,\n className: classNames({\n [`${prefixCls}-icon-hide`]: !showIcon,\n [`${prefixCls}-block-node`]: blockNode,\n [`${prefixCls}-unselectable`]: !selectable,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, tree === null || tree === void 0 ? void 0 : tree.className, className, hashId, cssVarCls),\n direction: direction,\n checkable: checkable ? /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-checkbox-inner`\n }) : checkable,\n selectable: selectable,\n switcherIcon: renderSwitcherIcon,\n draggable: draggableConfig\n }), children));\n});\nif (process.env.NODE_ENV !== 'production') {\n Tree.displayName = 'Tree';\n}\nexport default Tree;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { fillFieldNames } from \"rc-tree/es/utils/treeUtil\";\nconst RECORD_NONE = 0;\nconst RECORD_START = 1;\nconst RECORD_END = 2;\nfunction traverseNodesKey(treeData, callback, fieldNames) {\n const {\n key: fieldKey,\n children: fieldChildren\n } = fieldNames;\n function processNode(dataNode) {\n const key = dataNode[fieldKey];\n const children = dataNode[fieldChildren];\n if (callback(key, dataNode) !== false) {\n traverseNodesKey(children || [], callback, fieldNames);\n }\n }\n treeData.forEach(processNode);\n}\n/** 计算选中范围,只考虑expanded情况以优化性能 */\nexport function calcRangeKeys(_ref) {\n let {\n treeData,\n expandedKeys,\n startKey,\n endKey,\n fieldNames\n } = _ref;\n const keys = [];\n let record = RECORD_NONE;\n if (startKey && startKey === endKey) {\n return [startKey];\n }\n if (!startKey || !endKey) {\n return [];\n }\n function matchKey(key) {\n return key === startKey || key === endKey;\n }\n traverseNodesKey(treeData, key => {\n if (record === RECORD_END) {\n return false;\n }\n if (matchKey(key)) {\n // Match test\n keys.push(key);\n if (record === RECORD_NONE) {\n record = RECORD_START;\n } else if (record === RECORD_START) {\n record = RECORD_END;\n return false;\n }\n } else if (record === RECORD_START) {\n // Append selection\n keys.push(key);\n }\n return expandedKeys.includes(key);\n }, fillFieldNames(fieldNames));\n return keys;\n}\nexport function convertDirectoryKeysToNodes(treeData, keys, fieldNames) {\n const restKeys = _toConsumableArray(keys);\n const nodes = [];\n traverseNodesKey(treeData, (key, node) => {\n const index = restKeys.indexOf(key);\n if (index !== -1) {\n nodes.push(node);\n restKeys.splice(index, 1);\n }\n return !!restKeys.length;\n }, fillFieldNames(fieldNames));\n return nodes;\n}","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport FileOutlined from \"@ant-design/icons/es/icons/FileOutlined\";\nimport FolderOpenOutlined from \"@ant-design/icons/es/icons/FolderOpenOutlined\";\nimport FolderOutlined from \"@ant-design/icons/es/icons/FolderOutlined\";\nimport classNames from 'classnames';\nimport { conductExpandParent } from \"rc-tree/es/util\";\nimport { convertDataToEntities, convertTreeToData } from \"rc-tree/es/utils/treeUtil\";\nimport { ConfigContext } from '../config-provider';\nimport Tree from './Tree';\nimport { calcRangeKeys, convertDirectoryKeysToNodes } from './utils/dictUtil';\nfunction getIcon(props) {\n const {\n isLeaf,\n expanded\n } = props;\n if (isLeaf) {\n return /*#__PURE__*/React.createElement(FileOutlined, null);\n }\n return expanded ? /*#__PURE__*/React.createElement(FolderOpenOutlined, null) : /*#__PURE__*/React.createElement(FolderOutlined, null);\n}\nfunction getTreeData(_ref) {\n let {\n treeData,\n children\n } = _ref;\n return treeData || convertTreeToData(children);\n}\nconst DirectoryTree = (_a, ref) => {\n var {\n defaultExpandAll,\n defaultExpandParent,\n defaultExpandedKeys\n } = _a,\n props = __rest(_a, [\"defaultExpandAll\", \"defaultExpandParent\", \"defaultExpandedKeys\"]);\n // Shift click usage\n const lastSelectedKey = React.useRef(null);\n const cachedSelectedKeys = React.useRef(null);\n const getInitExpandedKeys = () => {\n const {\n keyEntities\n } = convertDataToEntities(getTreeData(props));\n let initExpandedKeys;\n // Expanded keys\n if (defaultExpandAll) {\n initExpandedKeys = Object.keys(keyEntities);\n } else if (defaultExpandParent) {\n initExpandedKeys = conductExpandParent(props.expandedKeys || defaultExpandedKeys || [], keyEntities);\n } else {\n initExpandedKeys = props.expandedKeys || defaultExpandedKeys || [];\n }\n return initExpandedKeys;\n };\n const [selectedKeys, setSelectedKeys] = React.useState(props.selectedKeys || props.defaultSelectedKeys || []);\n const [expandedKeys, setExpandedKeys] = React.useState(() => getInitExpandedKeys());\n React.useEffect(() => {\n if ('selectedKeys' in props) {\n setSelectedKeys(props.selectedKeys);\n }\n }, [props.selectedKeys]);\n React.useEffect(() => {\n if ('expandedKeys' in props) {\n setExpandedKeys(props.expandedKeys);\n }\n }, [props.expandedKeys]);\n const onExpand = (keys, info) => {\n var _a;\n if (!('expandedKeys' in props)) {\n setExpandedKeys(keys);\n }\n // Call origin function\n return (_a = props.onExpand) === null || _a === void 0 ? void 0 : _a.call(props, keys, info);\n };\n const onSelect = (keys, event) => {\n var _a;\n const {\n multiple,\n fieldNames\n } = props;\n const {\n node,\n nativeEvent\n } = event;\n const {\n key = ''\n } = node;\n const treeData = getTreeData(props);\n // const newState: DirectoryTreeState = {};\n // We need wrap this event since some value is not same\n const newEvent = Object.assign(Object.assign({}, event), {\n selected: true\n });\n // Windows / Mac single pick\n const ctrlPick = (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.ctrlKey) || (nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.metaKey);\n const shiftPick = nativeEvent === null || nativeEvent === void 0 ? void 0 : nativeEvent.shiftKey;\n // Generate new selected keys\n let newSelectedKeys;\n if (multiple && ctrlPick) {\n // Control click\n newSelectedKeys = keys;\n lastSelectedKey.current = key;\n cachedSelectedKeys.current = newSelectedKeys;\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys, fieldNames);\n } else if (multiple && shiftPick) {\n // Shift click\n newSelectedKeys = Array.from(new Set([].concat(_toConsumableArray(cachedSelectedKeys.current || []), _toConsumableArray(calcRangeKeys({\n treeData,\n expandedKeys,\n startKey: key,\n endKey: lastSelectedKey.current,\n fieldNames\n })))));\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys, fieldNames);\n } else {\n // Single click\n newSelectedKeys = [key];\n lastSelectedKey.current = key;\n cachedSelectedKeys.current = newSelectedKeys;\n newEvent.selectedNodes = convertDirectoryKeysToNodes(treeData, newSelectedKeys, fieldNames);\n }\n (_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, newSelectedKeys, newEvent);\n if (!('selectedKeys' in props)) {\n setSelectedKeys(newSelectedKeys);\n }\n };\n const {\n getPrefixCls,\n direction\n } = React.useContext(ConfigContext);\n const {\n prefixCls: customizePrefixCls,\n className,\n showIcon = true,\n expandAction = 'click'\n } = props,\n otherProps = __rest(props, [\"prefixCls\", \"className\", \"showIcon\", \"expandAction\"]);\n const prefixCls = getPrefixCls('tree', customizePrefixCls);\n const connectClassName = classNames(`${prefixCls}-directory`, {\n [`${prefixCls}-directory-rtl`]: direction === 'rtl'\n }, className);\n return /*#__PURE__*/React.createElement(Tree, Object.assign({\n icon: getIcon,\n ref: ref,\n blockNode: true\n }, otherProps, {\n showIcon: showIcon,\n expandAction: expandAction,\n prefixCls: prefixCls,\n className: connectClassName,\n expandedKeys: expandedKeys,\n selectedKeys: selectedKeys,\n onSelect: onSelect,\n onExpand: onExpand\n }));\n};\nconst ForwardDirectoryTree = /*#__PURE__*/React.forwardRef(DirectoryTree);\nif (process.env.NODE_ENV !== 'production') {\n ForwardDirectoryTree.displayName = 'DirectoryTree';\n}\nexport default ForwardDirectoryTree;","\"use client\";\n\nimport { TreeNode } from 'rc-tree';\nimport DirectoryTree from './DirectoryTree';\nimport TreePure from './Tree';\nconst Tree = TreePure;\nTree.DirectoryTree = DirectoryTree;\nTree.TreeNode = TreeNode;\nexport default Tree;","\"use client\";\n\nimport * as React from 'react';\nimport SearchOutlined from \"@ant-design/icons/es/icons/SearchOutlined\";\nimport Input from '../../../input/Input';\nconst FilterSearch = props => {\n const {\n value,\n filterSearch,\n tablePrefixCls,\n locale,\n onChange\n } = props;\n if (!filterSearch) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${tablePrefixCls}-filter-dropdown-search`\n }, /*#__PURE__*/React.createElement(Input, {\n prefix: /*#__PURE__*/React.createElement(SearchOutlined, null),\n placeholder: locale.filterSearchPlaceholder,\n onChange: onChange,\n value: value,\n // for skip min-width of input\n htmlSize: 1,\n className: `${tablePrefixCls}-filter-dropdown-search-input`\n }));\n};\nexport default FilterSearch;","\"use client\";\n\nimport * as React from 'react';\nimport KeyCode from \"rc-util/es/KeyCode\";\nconst onKeyDown = event => {\n const {\n keyCode\n } = event;\n if (keyCode === KeyCode.ENTER) {\n event.stopPropagation();\n }\n};\nconst FilterDropdownMenuWrapper = /*#__PURE__*/React.forwardRef((props, ref) => (/*#__PURE__*/React.createElement(\"div\", {\n className: props.className,\n onClick: e => e.stopPropagation(),\n onKeyDown: onKeyDown,\n ref: ref\n}, props.children)));\nif (process.env.NODE_ENV !== 'production') {\n FilterDropdownMenuWrapper.displayName = 'FilterDropdownMenuWrapper';\n}\nexport default FilterDropdownMenuWrapper;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport FilterFilled from \"@ant-design/icons/es/icons/FilterFilled\";\nimport classNames from 'classnames';\nimport isEqual from \"rc-util/es/isEqual\";\nimport extendsObject from '../../../_util/extendsObject';\nimport useSyncState from '../../../_util/hooks/useSyncState';\nimport { devUseWarning } from '../../../_util/warning';\nimport Button from '../../../button';\nimport Checkbox from '../../../checkbox';\nimport { ConfigContext } from '../../../config-provider/context';\nimport Dropdown from '../../../dropdown';\nimport Empty from '../../../empty';\nimport Menu from '../../../menu';\nimport { OverrideProvider } from '../../../menu/OverrideContext';\nimport Radio from '../../../radio';\nimport Tree from '../../../tree';\nimport FilterSearch from './FilterSearch';\nimport FilterDropdownMenuWrapper from './FilterWrapper';\nexport function flattenKeys(filters) {\n let keys = [];\n (filters || []).forEach(_ref => {\n let {\n value,\n children\n } = _ref;\n keys.push(value);\n if (children) {\n keys = [].concat(_toConsumableArray(keys), _toConsumableArray(flattenKeys(children)));\n }\n });\n return keys;\n}\nfunction hasSubMenu(filters) {\n return filters.some(_ref2 => {\n let {\n children\n } = _ref2;\n return children;\n });\n}\nfunction searchValueMatched(searchValue, text) {\n if (typeof text === 'string' || typeof text === 'number') {\n return text === null || text === void 0 ? void 0 : text.toString().toLowerCase().includes(searchValue.trim().toLowerCase());\n }\n return false;\n}\nfunction renderFilterItems(_ref3) {\n let {\n filters,\n prefixCls,\n filteredKeys,\n filterMultiple,\n searchValue,\n filterSearch\n } = _ref3;\n return filters.map((filter, index) => {\n const key = String(filter.value);\n if (filter.children) {\n return {\n key: key || index,\n label: filter.text,\n popupClassName: `${prefixCls}-dropdown-submenu`,\n children: renderFilterItems({\n filters: filter.children,\n prefixCls,\n filteredKeys,\n filterMultiple,\n searchValue,\n filterSearch\n })\n };\n }\n const Component = filterMultiple ? Checkbox : Radio;\n const item = {\n key: filter.value !== undefined ? key : index,\n label: (/*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Component, {\n checked: filteredKeys.includes(key)\n }), /*#__PURE__*/React.createElement(\"span\", null, filter.text)))\n };\n if (searchValue.trim()) {\n if (typeof filterSearch === 'function') {\n return filterSearch(searchValue, filter) ? item : null;\n }\n return searchValueMatched(searchValue, filter.text) ? item : null;\n }\n return item;\n });\n}\nfunction wrapStringListType(keys) {\n return keys || [];\n}\nconst FilterDropdown = props => {\n var _a, _b, _c, _d;\n const {\n tablePrefixCls,\n prefixCls,\n column,\n dropdownPrefixCls,\n columnKey,\n filterOnClose,\n filterMultiple,\n filterMode = 'menu',\n filterSearch = false,\n filterState,\n triggerFilter,\n locale,\n children,\n getPopupContainer,\n rootClassName\n } = props;\n const {\n filterResetToDefaultFilteredValue,\n defaultFilteredValue,\n filterDropdownProps = {},\n // Deprecated\n filterDropdownOpen,\n filterDropdownVisible,\n onFilterDropdownVisibleChange,\n onFilterDropdownOpenChange\n } = column;\n const [visible, setVisible] = React.useState(false);\n const filtered = !!(filterState && (((_a = filterState.filteredKeys) === null || _a === void 0 ? void 0 : _a.length) || filterState.forceFiltered));\n const triggerVisible = newVisible => {\n var _a;\n setVisible(newVisible);\n (_a = filterDropdownProps.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(filterDropdownProps, newVisible);\n // deprecated\n onFilterDropdownOpenChange === null || onFilterDropdownOpenChange === void 0 ? void 0 : onFilterDropdownOpenChange(newVisible);\n onFilterDropdownVisibleChange === null || onFilterDropdownVisibleChange === void 0 ? void 0 : onFilterDropdownVisibleChange(newVisible);\n };\n // =================Warning===================\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Table');\n const deprecatedList = [['filterDropdownOpen', 'filterDropdownProps.open'], ['filterDropdownVisible', 'filterDropdownProps.open'], ['onFilterDropdownOpenChange', 'filterDropdownProps.onOpenChange'], ['onFilterDropdownVisibleChange', 'filterDropdownProps.onOpenChange']];\n deprecatedList.forEach(_ref4 => {\n let [deprecatedName, newName] = _ref4;\n warning.deprecated(!(deprecatedName in column), deprecatedName, newName);\n });\n warning.deprecated(!('filterCheckall' in locale), 'filterCheckall', 'locale.filterCheckAll');\n }\n const mergedVisible = (_d = (_c = (_b = filterDropdownProps.open) !== null && _b !== void 0 ? _b : filterDropdownOpen) !== null && _c !== void 0 ? _c : filterDropdownVisible) !== null && _d !== void 0 ? _d : visible; // inner state\n // ===================== Select Keys =====================\n const propFilteredKeys = filterState === null || filterState === void 0 ? void 0 : filterState.filteredKeys;\n const [getFilteredKeysSync, setFilteredKeysSync] = useSyncState(wrapStringListType(propFilteredKeys));\n const onSelectKeys = _ref5 => {\n let {\n selectedKeys\n } = _ref5;\n setFilteredKeysSync(selectedKeys);\n };\n const onCheck = (keys, _ref6) => {\n let {\n node,\n checked\n } = _ref6;\n if (!filterMultiple) {\n onSelectKeys({\n selectedKeys: checked && node.key ? [node.key] : []\n });\n } else {\n onSelectKeys({\n selectedKeys: keys\n });\n }\n };\n React.useEffect(() => {\n if (!visible) {\n return;\n }\n onSelectKeys({\n selectedKeys: wrapStringListType(propFilteredKeys)\n });\n }, [propFilteredKeys]);\n // ====================== Open Keys ======================\n const [openKeys, setOpenKeys] = React.useState([]);\n const onOpenChange = keys => {\n setOpenKeys(keys);\n };\n // search in tree mode column filter\n const [searchValue, setSearchValue] = React.useState('');\n const onSearch = e => {\n const {\n value\n } = e.target;\n setSearchValue(value);\n };\n // clear search value after close filter dropdown\n React.useEffect(() => {\n if (!visible) {\n setSearchValue('');\n }\n }, [visible]);\n // ======================= Submit ========================\n const internalTriggerFilter = keys => {\n const mergedKeys = (keys === null || keys === void 0 ? void 0 : keys.length) ? keys : null;\n if (mergedKeys === null && (!filterState || !filterState.filteredKeys)) {\n return null;\n }\n if (isEqual(mergedKeys, filterState === null || filterState === void 0 ? void 0 : filterState.filteredKeys, true)) {\n return null;\n }\n triggerFilter({\n column,\n key: columnKey,\n filteredKeys: mergedKeys\n });\n };\n const onConfirm = () => {\n triggerVisible(false);\n internalTriggerFilter(getFilteredKeysSync());\n };\n const onReset = function () {\n let {\n confirm,\n closeDropdown\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n confirm: false,\n closeDropdown: false\n };\n if (confirm) {\n internalTriggerFilter([]);\n }\n if (closeDropdown) {\n triggerVisible(false);\n }\n setSearchValue('');\n if (filterResetToDefaultFilteredValue) {\n setFilteredKeysSync((defaultFilteredValue || []).map(key => String(key)));\n } else {\n setFilteredKeysSync([]);\n }\n };\n const doFilter = function () {\n let {\n closeDropdown\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n closeDropdown: true\n };\n if (closeDropdown) {\n triggerVisible(false);\n }\n internalTriggerFilter(getFilteredKeysSync());\n };\n const onVisibleChange = (newVisible, info) => {\n if (info.source === 'trigger') {\n if (newVisible && propFilteredKeys !== undefined) {\n // Sync filteredKeys on appear in controlled mode (propFilteredKeys !== undefined)\n setFilteredKeysSync(wrapStringListType(propFilteredKeys));\n }\n triggerVisible(newVisible);\n if (!newVisible && !column.filterDropdown && filterOnClose) {\n onConfirm();\n }\n }\n };\n // ======================== Style ========================\n const dropdownMenuClass = classNames({\n [`${dropdownPrefixCls}-menu-without-submenu`]: !hasSubMenu(column.filters || [])\n });\n const onCheckAll = e => {\n if (e.target.checked) {\n const allFilterKeys = flattenKeys(column === null || column === void 0 ? void 0 : column.filters).map(key => String(key));\n setFilteredKeysSync(allFilterKeys);\n } else {\n setFilteredKeysSync([]);\n }\n };\n const getTreeData = _ref7 => {\n let {\n filters\n } = _ref7;\n return (filters || []).map((filter, index) => {\n const key = String(filter.value);\n const item = {\n title: filter.text,\n key: filter.value !== undefined ? key : String(index)\n };\n if (filter.children) {\n item.children = getTreeData({\n filters: filter.children\n });\n }\n return item;\n });\n };\n const getFilterData = node => {\n var _a;\n return Object.assign(Object.assign({}, node), {\n text: node.title,\n value: node.key,\n children: ((_a = node.children) === null || _a === void 0 ? void 0 : _a.map(item => getFilterData(item))) || []\n });\n };\n let dropdownContent;\n const {\n direction,\n renderEmpty\n } = React.useContext(ConfigContext);\n if (typeof column.filterDropdown === 'function') {\n dropdownContent = column.filterDropdown({\n prefixCls: `${dropdownPrefixCls}-custom`,\n setSelectedKeys: selectedKeys => onSelectKeys({\n selectedKeys: selectedKeys\n }),\n selectedKeys: getFilteredKeysSync(),\n confirm: doFilter,\n clearFilters: onReset,\n filters: column.filters,\n visible: mergedVisible,\n close: () => {\n triggerVisible(false);\n }\n });\n } else if (column.filterDropdown) {\n dropdownContent = column.filterDropdown;\n } else {\n const selectedKeys = getFilteredKeysSync() || [];\n const getFilterComponent = () => {\n var _a, _b;\n const empty = (_a = renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Table.filter')) !== null && _a !== void 0 ? _a : (/*#__PURE__*/React.createElement(Empty, {\n image: Empty.PRESENTED_IMAGE_SIMPLE,\n description: locale.filterEmptyText,\n styles: {\n image: {\n height: 24\n }\n },\n style: {\n margin: 0,\n padding: '16px 0'\n }\n }));\n if ((column.filters || []).length === 0) {\n return empty;\n }\n if (filterMode === 'tree') {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {\n filterSearch: filterSearch,\n value: searchValue,\n onChange: onSearch,\n tablePrefixCls: tablePrefixCls,\n locale: locale\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: `${tablePrefixCls}-filter-dropdown-tree`\n }, filterMultiple ? (/*#__PURE__*/React.createElement(Checkbox, {\n checked: selectedKeys.length === flattenKeys(column.filters).length,\n indeterminate: selectedKeys.length > 0 && selectedKeys.length < flattenKeys(column.filters).length,\n className: `${tablePrefixCls}-filter-dropdown-checkall`,\n onChange: onCheckAll\n }, (_b = locale === null || locale === void 0 ? void 0 : locale.filterCheckall) !== null && _b !== void 0 ? _b : locale === null || locale === void 0 ? void 0 : locale.filterCheckAll)) : null, /*#__PURE__*/React.createElement(Tree, {\n checkable: true,\n selectable: false,\n blockNode: true,\n multiple: filterMultiple,\n checkStrictly: !filterMultiple,\n className: `${dropdownPrefixCls}-menu`,\n onCheck: onCheck,\n checkedKeys: selectedKeys,\n selectedKeys: selectedKeys,\n showIcon: false,\n treeData: getTreeData({\n filters: column.filters\n }),\n autoExpandParent: true,\n defaultExpandAll: true,\n filterTreeNode: searchValue.trim() ? node => {\n if (typeof filterSearch === 'function') {\n return filterSearch(searchValue, getFilterData(node));\n }\n return searchValueMatched(searchValue, node.title);\n } : undefined\n })));\n }\n const items = renderFilterItems({\n filters: column.filters || [],\n filterSearch,\n prefixCls,\n filteredKeys: getFilteredKeysSync(),\n filterMultiple,\n searchValue\n });\n const isEmpty = items.every(item => item === null);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FilterSearch, {\n filterSearch: filterSearch,\n value: searchValue,\n onChange: onSearch,\n tablePrefixCls: tablePrefixCls,\n locale: locale\n }), isEmpty ? empty : (/*#__PURE__*/React.createElement(Menu, {\n selectable: true,\n multiple: filterMultiple,\n prefixCls: `${dropdownPrefixCls}-menu`,\n className: dropdownMenuClass,\n onSelect: onSelectKeys,\n onDeselect: onSelectKeys,\n selectedKeys: selectedKeys,\n getPopupContainer: getPopupContainer,\n openKeys: openKeys,\n onOpenChange: onOpenChange,\n items: items\n })));\n };\n const getResetDisabled = () => {\n if (filterResetToDefaultFilteredValue) {\n return isEqual((defaultFilteredValue || []).map(key => String(key)), selectedKeys, true);\n }\n return selectedKeys.length === 0;\n };\n dropdownContent = /*#__PURE__*/React.createElement(React.Fragment, null, getFilterComponent(), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-dropdown-btns`\n }, /*#__PURE__*/React.createElement(Button, {\n type: \"link\",\n size: \"small\",\n disabled: getResetDisabled(),\n onClick: () => onReset()\n }, locale.filterReset), /*#__PURE__*/React.createElement(Button, {\n type: \"primary\",\n size: \"small\",\n onClick: onConfirm\n }, locale.filterConfirm)));\n }\n // We should not block customize Menu with additional props\n if (column.filterDropdown) {\n dropdownContent = /*#__PURE__*/React.createElement(OverrideProvider, {\n selectable: undefined\n }, dropdownContent);\n }\n dropdownContent = /*#__PURE__*/React.createElement(FilterDropdownMenuWrapper, {\n className: `${prefixCls}-dropdown`\n }, dropdownContent);\n const getDropdownTrigger = () => {\n let filterIcon;\n if (typeof column.filterIcon === 'function') {\n filterIcon = column.filterIcon(filtered);\n } else if (column.filterIcon) {\n filterIcon = column.filterIcon;\n } else {\n filterIcon = /*#__PURE__*/React.createElement(FilterFilled, null);\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n role: \"button\",\n tabIndex: -1,\n className: classNames(`${prefixCls}-trigger`, {\n active: filtered\n }),\n onClick: e => {\n e.stopPropagation();\n }\n }, filterIcon);\n };\n const mergedDropdownProps = extendsObject({\n trigger: ['click'],\n placement: direction === 'rtl' ? 'bottomLeft' : 'bottomRight',\n children: getDropdownTrigger(),\n getPopupContainer\n }, Object.assign(Object.assign({}, filterDropdownProps), {\n rootClassName: classNames(rootClassName, filterDropdownProps.rootClassName),\n open: mergedVisible,\n onOpenChange: onVisibleChange,\n dropdownRender: () => {\n if (typeof (filterDropdownProps === null || filterDropdownProps === void 0 ? void 0 : filterDropdownProps.dropdownRender) === 'function') {\n return filterDropdownProps.dropdownRender(dropdownContent);\n }\n return dropdownContent;\n }\n }));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-column`\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${tablePrefixCls}-column-title`\n }, children), /*#__PURE__*/React.createElement(Dropdown, Object.assign({}, mergedDropdownProps)));\n};\nexport default FilterDropdown;","import * as React from 'react';\nimport useForceUpdate from './useForceUpdate';\nexport default function useSyncState(initialValue) {\n const ref = React.useRef(initialValue);\n const forceUpdate = useForceUpdate();\n return [() => ref.current, newValue => {\n ref.current = newValue;\n // re-render\n forceUpdate();\n }];\n}","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport { devUseWarning } from '../../../_util/warning';\nimport { getColumnKey, getColumnPos, renderColumnTitle } from '../../util';\nimport FilterDropdown, { flattenKeys } from './FilterDropdown';\nconst collectFilterStates = (columns, init, pos) => {\n let filterStates = [];\n (columns || []).forEach((column, index) => {\n var _a;\n const columnPos = getColumnPos(index, pos);\n if (column.filters || 'filterDropdown' in column || 'onFilter' in column) {\n if ('filteredValue' in column) {\n // Controlled\n let filteredValues = column.filteredValue;\n if (!('filterDropdown' in column)) {\n filteredValues = (_a = filteredValues === null || filteredValues === void 0 ? void 0 : filteredValues.map(String)) !== null && _a !== void 0 ? _a : filteredValues;\n }\n filterStates.push({\n column,\n key: getColumnKey(column, columnPos),\n filteredKeys: filteredValues,\n forceFiltered: column.filtered\n });\n } else {\n // Uncontrolled\n filterStates.push({\n column,\n key: getColumnKey(column, columnPos),\n filteredKeys: init && column.defaultFilteredValue ? column.defaultFilteredValue : undefined,\n forceFiltered: column.filtered\n });\n }\n }\n if ('children' in column) {\n filterStates = [].concat(_toConsumableArray(filterStates), _toConsumableArray(collectFilterStates(column.children, init, columnPos)));\n }\n });\n return filterStates;\n};\nfunction injectFilter(prefixCls, dropdownPrefixCls, columns, filterStates, locale, triggerFilter, getPopupContainer, pos, rootClassName) {\n return columns.map((column, index) => {\n const columnPos = getColumnPos(index, pos);\n const {\n filterOnClose = true,\n filterMultiple = true,\n filterMode,\n filterSearch\n } = column;\n let newColumn = column;\n if (newColumn.filters || newColumn.filterDropdown) {\n const columnKey = getColumnKey(newColumn, columnPos);\n const filterState = filterStates.find(_ref => {\n let {\n key\n } = _ref;\n return columnKey === key;\n });\n newColumn = Object.assign(Object.assign({}, newColumn), {\n title: renderProps => (/*#__PURE__*/React.createElement(FilterDropdown, {\n tablePrefixCls: prefixCls,\n prefixCls: `${prefixCls}-filter`,\n dropdownPrefixCls: dropdownPrefixCls,\n column: newColumn,\n columnKey: columnKey,\n filterState: filterState,\n filterOnClose: filterOnClose,\n filterMultiple: filterMultiple,\n filterMode: filterMode,\n filterSearch: filterSearch,\n triggerFilter: triggerFilter,\n locale: locale,\n getPopupContainer: getPopupContainer,\n rootClassName: rootClassName\n }, renderColumnTitle(column.title, renderProps)))\n });\n }\n if ('children' in newColumn) {\n newColumn = Object.assign(Object.assign({}, newColumn), {\n children: injectFilter(prefixCls, dropdownPrefixCls, newColumn.children, filterStates, locale, triggerFilter, getPopupContainer, columnPos, rootClassName)\n });\n }\n return newColumn;\n });\n}\nconst generateFilterInfo = filterStates => {\n const currentFilters = {};\n filterStates.forEach(_ref2 => {\n let {\n key,\n filteredKeys,\n column\n } = _ref2;\n const keyAsString = key;\n const {\n filters,\n filterDropdown\n } = column;\n if (filterDropdown) {\n currentFilters[keyAsString] = filteredKeys || null;\n } else if (Array.isArray(filteredKeys)) {\n const keys = flattenKeys(filters);\n currentFilters[keyAsString] = keys.filter(originKey => filteredKeys.includes(String(originKey)));\n } else {\n currentFilters[keyAsString] = null;\n }\n });\n return currentFilters;\n};\nexport const getFilterData = (data, filterStates, childrenColumnName) => {\n const filterDatas = filterStates.reduce((currentData, filterState) => {\n const {\n column: {\n onFilter,\n filters\n },\n filteredKeys\n } = filterState;\n if (onFilter && filteredKeys && filteredKeys.length) {\n return currentData\n // shallow copy\n .map(record => Object.assign({}, record)).filter(record => filteredKeys.some(key => {\n const keys = flattenKeys(filters);\n const keyIndex = keys.findIndex(k => String(k) === String(key));\n const realKey = keyIndex !== -1 ? keys[keyIndex] : key;\n // filter children\n if (record[childrenColumnName]) {\n record[childrenColumnName] = getFilterData(record[childrenColumnName], filterStates, childrenColumnName);\n }\n return onFilter(realKey, record);\n }));\n }\n return currentData;\n }, data);\n return filterDatas;\n};\nconst getMergedColumns = rawMergedColumns => rawMergedColumns.flatMap(column => {\n if ('children' in column) {\n return [column].concat(_toConsumableArray(getMergedColumns(column.children || [])));\n }\n return [column];\n});\nconst useFilter = props => {\n const {\n prefixCls,\n dropdownPrefixCls,\n mergedColumns: rawMergedColumns,\n onFilterChange,\n getPopupContainer,\n locale: tableLocale,\n rootClassName\n } = props;\n const warning = devUseWarning('Table');\n const mergedColumns = React.useMemo(() => getMergedColumns(rawMergedColumns || []), [rawMergedColumns]);\n const [filterStates, setFilterStates] = React.useState(() => collectFilterStates(mergedColumns, true));\n const mergedFilterStates = React.useMemo(() => {\n const collectedStates = collectFilterStates(mergedColumns, false);\n if (collectedStates.length === 0) {\n return collectedStates;\n }\n let filteredKeysIsAllNotControlled = true;\n let filteredKeysIsAllControlled = true;\n collectedStates.forEach(_ref3 => {\n let {\n filteredKeys\n } = _ref3;\n if (filteredKeys !== undefined) {\n filteredKeysIsAllNotControlled = false;\n } else {\n filteredKeysIsAllControlled = false;\n }\n });\n // Return if not controlled\n if (filteredKeysIsAllNotControlled) {\n // Filter column may have been removed\n const keyList = (mergedColumns || []).map((column, index) => getColumnKey(column, getColumnPos(index)));\n return filterStates.filter(_ref4 => {\n let {\n key\n } = _ref4;\n return keyList.includes(key);\n }).map(item => {\n const col = mergedColumns[keyList.findIndex(key => key === item.key)];\n return Object.assign(Object.assign({}, item), {\n column: Object.assign(Object.assign({}, item.column), col),\n forceFiltered: col.filtered\n });\n });\n }\n process.env.NODE_ENV !== \"production\" ? warning(filteredKeysIsAllControlled, 'usage', 'Columns should all contain `filteredValue` or not contain `filteredValue`.') : void 0;\n return collectedStates;\n }, [mergedColumns, filterStates]);\n const filters = React.useMemo(() => generateFilterInfo(mergedFilterStates), [mergedFilterStates]);\n const triggerFilter = filterState => {\n const newFilterStates = mergedFilterStates.filter(_ref5 => {\n let {\n key\n } = _ref5;\n return key !== filterState.key;\n });\n newFilterStates.push(filterState);\n setFilterStates(newFilterStates);\n onFilterChange(generateFilterInfo(newFilterStates), newFilterStates);\n };\n const transformColumns = innerColumns => injectFilter(prefixCls, dropdownPrefixCls, innerColumns, mergedFilterStates, tableLocale, triggerFilter, getPopupContainer, undefined, rootClassName);\n return [transformColumns, mergedFilterStates, filters];\n};\nexport { flattenKeys };\nexport default useFilter;","import * as React from 'react';\nconst useLazyKVMap = (data, childrenColumnName, getRowKey) => {\n const mapCacheRef = React.useRef({});\n function getRecordByKey(key) {\n var _a;\n if (!mapCacheRef.current || mapCacheRef.current.data !== data || mapCacheRef.current.childrenColumnName !== childrenColumnName || mapCacheRef.current.getRowKey !== getRowKey) {\n const kvMap = new Map();\n function dig(records) {\n records.forEach((record, index) => {\n const rowKey = getRowKey(record, index);\n kvMap.set(rowKey, record);\n if (record && typeof record === 'object' && childrenColumnName in record) {\n dig(record[childrenColumnName] || []);\n }\n });\n }\n dig(data);\n mapCacheRef.current = {\n data,\n childrenColumnName,\n kvMap,\n getRowKey\n };\n }\n return (_a = mapCacheRef.current.kvMap) === null || _a === void 0 ? void 0 : _a.get(key);\n }\n return [getRecordByKey];\n};\nexport default useLazyKVMap;","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { useState } from 'react';\nimport extendsObject from '../../_util/extendsObject';\nexport const DEFAULT_PAGE_SIZE = 10;\nexport function getPaginationParam(mergedPagination, pagination) {\n const param = {\n current: mergedPagination.current,\n pageSize: mergedPagination.pageSize\n };\n const paginationObj = pagination && typeof pagination === 'object' ? pagination : {};\n Object.keys(paginationObj).forEach(pageProp => {\n const value = mergedPagination[pageProp];\n if (typeof value !== 'function') {\n param[pageProp] = value;\n }\n });\n return param;\n}\nfunction usePagination(total, onChange, pagination) {\n const _a = pagination && typeof pagination === 'object' ? pagination : {},\n {\n total: paginationTotal = 0\n } = _a,\n paginationObj = __rest(_a, [\"total\"]);\n const [innerPagination, setInnerPagination] = useState(() => ({\n current: 'defaultCurrent' in paginationObj ? paginationObj.defaultCurrent : 1,\n pageSize: 'defaultPageSize' in paginationObj ? paginationObj.defaultPageSize : DEFAULT_PAGE_SIZE\n }));\n // ============ Basic Pagination Config ============\n const mergedPagination = extendsObject(innerPagination, paginationObj, {\n total: paginationTotal > 0 ? paginationTotal : total\n });\n // Reset `current` if data length or pageSize changed\n const maxPage = Math.ceil((paginationTotal || total) / mergedPagination.pageSize);\n if (mergedPagination.current > maxPage) {\n // Prevent a maximum page count of 0\n mergedPagination.current = maxPage || 1;\n }\n const refreshPagination = (current, pageSize) => {\n setInnerPagination({\n current: current !== null && current !== void 0 ? current : 1,\n pageSize: pageSize || mergedPagination.pageSize\n });\n };\n const onInternalChange = (current, pageSize) => {\n var _a;\n if (pagination) {\n (_a = pagination.onChange) === null || _a === void 0 ? void 0 : _a.call(pagination, current, pageSize);\n }\n refreshPagination(current, pageSize);\n onChange(current, pageSize || (mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.pageSize));\n };\n if (pagination === false) {\n return [{}, () => {}];\n }\n return [Object.assign(Object.assign({}, mergedPagination), {\n onChange: onInternalChange\n }), refreshPagination];\n}\nexport default usePagination;","// This icon file is generated automatically.\nvar CaretUpOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z\" } }] }, \"name\": \"caret-up\", \"theme\": \"outlined\" };\nexport default CaretUpOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CaretUpOutlinedSvg from \"@ant-design/icons-svg/es/asn/CaretUpOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CaretUpOutlined = function CaretUpOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CaretUpOutlinedSvg\n }));\n};\n\n/**![caret-up](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1OC45IDY4OUw1MzAuNSAzMDguMmMtOS40LTEwLjktMjcuNS0xMC45LTM3IDBMMTY1LjEgNjg5Yy0xMi4yIDE0LjItMS4yIDM1IDE4LjUgMzVoNjU2LjhjMTkuNyAwIDMwLjctMjAuOCAxOC41LTM1eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CaretUpOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'CaretUpOutlined';\n}\nexport default RefIcon;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport CaretDownOutlined from \"@ant-design/icons/es/icons/CaretDownOutlined\";\nimport CaretUpOutlined from \"@ant-design/icons/es/icons/CaretUpOutlined\";\nimport classNames from 'classnames';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport Tooltip from '../../tooltip';\nimport { getColumnKey, getColumnPos, renderColumnTitle, safeColumnTitle } from '../util';\nconst ASCEND = 'ascend';\nconst DESCEND = 'descend';\nconst getMultiplePriority = column => {\n if (typeof column.sorter === 'object' && typeof column.sorter.multiple === 'number') {\n return column.sorter.multiple;\n }\n return false;\n};\nconst getSortFunction = sorter => {\n if (typeof sorter === 'function') {\n return sorter;\n }\n if (sorter && typeof sorter === 'object' && sorter.compare) {\n return sorter.compare;\n }\n return false;\n};\nconst nextSortDirection = (sortDirections, current) => {\n if (!current) {\n return sortDirections[0];\n }\n return sortDirections[sortDirections.indexOf(current) + 1];\n};\nconst collectSortStates = (columns, init, pos) => {\n let sortStates = [];\n const pushState = (column, columnPos) => {\n sortStates.push({\n column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.sortOrder\n });\n };\n (columns || []).forEach((column, index) => {\n const columnPos = getColumnPos(index, pos);\n if (column.children) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n }\n sortStates = [].concat(_toConsumableArray(sortStates), _toConsumableArray(collectSortStates(column.children, init, columnPos)));\n } else if (column.sorter) {\n if ('sortOrder' in column) {\n // Controlled\n pushState(column, columnPos);\n } else if (init && column.defaultSortOrder) {\n // Default sorter\n sortStates.push({\n column,\n key: getColumnKey(column, columnPos),\n multiplePriority: getMultiplePriority(column),\n sortOrder: column.defaultSortOrder\n });\n }\n }\n });\n return sortStates;\n};\nconst injectSorter = (prefixCls, columns, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, pos) => {\n const finalColumns = (columns || []).map((column, index) => {\n const columnPos = getColumnPos(index, pos);\n let newColumn = column;\n if (newColumn.sorter) {\n const sortDirections = newColumn.sortDirections || defaultSortDirections;\n const showSorterTooltip = newColumn.showSorterTooltip === undefined ? tableShowSorterTooltip : newColumn.showSorterTooltip;\n const columnKey = getColumnKey(newColumn, columnPos);\n const sorterState = sorterStates.find(_ref => {\n let {\n key\n } = _ref;\n return key === columnKey;\n });\n const sortOrder = sorterState ? sorterState.sortOrder : null;\n const nextSortOrder = nextSortDirection(sortDirections, sortOrder);\n let sorter;\n if (column.sortIcon) {\n sorter = column.sortIcon({\n sortOrder\n });\n } else {\n const upNode = sortDirections.includes(ASCEND) && (/*#__PURE__*/React.createElement(CaretUpOutlined, {\n className: classNames(`${prefixCls}-column-sorter-up`, {\n active: sortOrder === ASCEND\n })\n }));\n const downNode = sortDirections.includes(DESCEND) && (/*#__PURE__*/React.createElement(CaretDownOutlined, {\n className: classNames(`${prefixCls}-column-sorter-down`, {\n active: sortOrder === DESCEND\n })\n }));\n sorter = /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${prefixCls}-column-sorter`, {\n [`${prefixCls}-column-sorter-full`]: !!(upNode && downNode)\n })\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-column-sorter-inner`,\n \"aria-hidden\": \"true\"\n }, upNode, downNode));\n }\n const {\n cancelSort,\n triggerAsc,\n triggerDesc\n } = tableLocale || {};\n let sortTip = cancelSort;\n if (nextSortOrder === DESCEND) {\n sortTip = triggerDesc;\n } else if (nextSortOrder === ASCEND) {\n sortTip = triggerAsc;\n }\n const tooltipProps = typeof showSorterTooltip === 'object' ? Object.assign({\n title: sortTip\n }, showSorterTooltip) : {\n title: sortTip\n };\n newColumn = Object.assign(Object.assign({}, newColumn), {\n className: classNames(newColumn.className, {\n [`${prefixCls}-column-sort`]: sortOrder\n }),\n title: renderProps => {\n const columnSortersClass = `${prefixCls}-column-sorters`;\n const renderColumnTitleWrapper = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-column-title`\n }, renderColumnTitle(column.title, renderProps));\n const renderSortTitle = /*#__PURE__*/React.createElement(\"div\", {\n className: columnSortersClass\n }, renderColumnTitleWrapper, sorter);\n if (showSorterTooltip) {\n if (typeof showSorterTooltip !== 'boolean' && (showSorterTooltip === null || showSorterTooltip === void 0 ? void 0 : showSorterTooltip.target) === 'sorter-icon') {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${columnSortersClass} ${prefixCls}-column-sorters-tooltip-target-sorter`\n }, renderColumnTitleWrapper, /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, tooltipProps), sorter));\n }\n return /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, tooltipProps), renderSortTitle);\n }\n return renderSortTitle;\n },\n onHeaderCell: col => {\n var _a;\n const cell = ((_a = column.onHeaderCell) === null || _a === void 0 ? void 0 : _a.call(column, col)) || {};\n const originOnClick = cell.onClick;\n const originOKeyDown = cell.onKeyDown;\n cell.onClick = event => {\n triggerSorter({\n column,\n key: columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column)\n });\n originOnClick === null || originOnClick === void 0 ? void 0 : originOnClick(event);\n };\n cell.onKeyDown = event => {\n if (event.keyCode === KeyCode.ENTER) {\n triggerSorter({\n column,\n key: columnKey,\n sortOrder: nextSortOrder,\n multiplePriority: getMultiplePriority(column)\n });\n originOKeyDown === null || originOKeyDown === void 0 ? void 0 : originOKeyDown(event);\n }\n };\n const renderTitle = safeColumnTitle(column.title, {});\n const displayTitle = renderTitle === null || renderTitle === void 0 ? void 0 : renderTitle.toString();\n // Inform the screen-reader so it can tell the visually impaired user which column is sorted\n if (sortOrder) {\n cell['aria-sort'] = sortOrder === 'ascend' ? 'ascending' : 'descending';\n } else {\n cell['aria-label'] = displayTitle || '';\n }\n cell.className = classNames(cell.className, `${prefixCls}-column-has-sorters`);\n cell.tabIndex = 0;\n if (column.ellipsis) {\n cell.title = (renderTitle !== null && renderTitle !== void 0 ? renderTitle : '').toString();\n }\n return cell;\n }\n });\n }\n if ('children' in newColumn) {\n newColumn = Object.assign(Object.assign({}, newColumn), {\n children: injectSorter(prefixCls, newColumn.children, sorterStates, triggerSorter, defaultSortDirections, tableLocale, tableShowSorterTooltip, columnPos)\n });\n }\n return newColumn;\n });\n return finalColumns;\n};\nconst stateToInfo = sorterState => {\n const {\n column,\n sortOrder\n } = sorterState;\n return {\n column,\n order: sortOrder,\n field: column.dataIndex,\n columnKey: column.key\n };\n};\nconst generateSorterInfo = sorterStates => {\n const activeSorters = sorterStates.filter(_ref2 => {\n let {\n sortOrder\n } = _ref2;\n return sortOrder;\n }).map(stateToInfo);\n // =========== Legacy compatible support ===========\n // https://github.com/ant-design/ant-design/pull/19226\n if (activeSorters.length === 0 && sorterStates.length) {\n const lastIndex = sorterStates.length - 1;\n return Object.assign(Object.assign({}, stateToInfo(sorterStates[lastIndex])), {\n column: undefined,\n order: undefined,\n field: undefined,\n columnKey: undefined\n });\n }\n if (activeSorters.length <= 1) {\n return activeSorters[0] || {};\n }\n return activeSorters;\n};\nexport const getSortData = (data, sortStates, childrenColumnName) => {\n const innerSorterStates = sortStates.slice().sort((a, b) => b.multiplePriority - a.multiplePriority);\n const cloneData = data.slice();\n const runningSorters = innerSorterStates.filter(_ref3 => {\n let {\n column: {\n sorter\n },\n sortOrder\n } = _ref3;\n return getSortFunction(sorter) && sortOrder;\n });\n // Skip if no sorter needed\n if (!runningSorters.length) {\n return cloneData;\n }\n return cloneData.sort((record1, record2) => {\n for (let i = 0; i < runningSorters.length; i += 1) {\n const sorterState = runningSorters[i];\n const {\n column: {\n sorter\n },\n sortOrder\n } = sorterState;\n const compareFn = getSortFunction(sorter);\n if (compareFn && sortOrder) {\n const compareResult = compareFn(record1, record2, sortOrder);\n if (compareResult !== 0) {\n return sortOrder === ASCEND ? compareResult : -compareResult;\n }\n }\n }\n return 0;\n }).map(record => {\n const subRecords = record[childrenColumnName];\n if (subRecords) {\n return Object.assign(Object.assign({}, record), {\n [childrenColumnName]: getSortData(subRecords, sortStates, childrenColumnName)\n });\n }\n return record;\n });\n};\nconst useFilterSorter = props => {\n const {\n prefixCls,\n mergedColumns,\n sortDirections,\n tableLocale,\n showSorterTooltip,\n onSorterChange\n } = props;\n const [sortStates, setSortStates] = React.useState(collectSortStates(mergedColumns, true));\n const getColumnKeys = (columns, pos) => {\n const newKeys = [];\n columns.forEach((item, index) => {\n const columnPos = getColumnPos(index, pos);\n newKeys.push(getColumnKey(item, columnPos));\n if (Array.isArray(item.children)) {\n const childKeys = getColumnKeys(item.children, columnPos);\n newKeys.push.apply(newKeys, _toConsumableArray(childKeys));\n }\n });\n return newKeys;\n };\n const mergedSorterStates = React.useMemo(() => {\n let validate = true;\n const collectedStates = collectSortStates(mergedColumns, false);\n // Return if not controlled\n if (!collectedStates.length) {\n const mergedColumnsKeys = getColumnKeys(mergedColumns);\n return sortStates.filter(_ref4 => {\n let {\n key\n } = _ref4;\n return mergedColumnsKeys.includes(key);\n });\n }\n const validateStates = [];\n function patchStates(state) {\n if (validate) {\n validateStates.push(state);\n } else {\n validateStates.push(Object.assign(Object.assign({}, state), {\n sortOrder: null\n }));\n }\n }\n let multipleMode = null;\n collectedStates.forEach(state => {\n if (multipleMode === null) {\n patchStates(state);\n if (state.sortOrder) {\n if (state.multiplePriority === false) {\n validate = false;\n } else {\n multipleMode = true;\n }\n }\n } else if (multipleMode && state.multiplePriority !== false) {\n patchStates(state);\n } else {\n validate = false;\n patchStates(state);\n }\n });\n return validateStates;\n }, [mergedColumns, sortStates]);\n // Get render columns title required props\n const columnTitleSorterProps = React.useMemo(() => {\n var _a, _b;\n const sortColumns = mergedSorterStates.map(_ref5 => {\n let {\n column,\n sortOrder\n } = _ref5;\n return {\n column,\n order: sortOrder\n };\n });\n return {\n sortColumns,\n // Legacy\n sortColumn: (_a = sortColumns[0]) === null || _a === void 0 ? void 0 : _a.column,\n sortOrder: (_b = sortColumns[0]) === null || _b === void 0 ? void 0 : _b.order\n };\n }, [mergedSorterStates]);\n const triggerSorter = sortState => {\n let newSorterStates;\n if (sortState.multiplePriority === false || !mergedSorterStates.length || mergedSorterStates[0].multiplePriority === false) {\n newSorterStates = [sortState];\n } else {\n newSorterStates = [].concat(_toConsumableArray(mergedSorterStates.filter(_ref6 => {\n let {\n key\n } = _ref6;\n return key !== sortState.key;\n })), [sortState]);\n }\n setSortStates(newSorterStates);\n onSorterChange(generateSorterInfo(newSorterStates), newSorterStates);\n };\n const transformColumns = innerColumns => injectSorter(prefixCls, innerColumns, mergedSorterStates, triggerSorter, sortDirections, tableLocale, showSorterTooltip);\n const getSorters = () => generateSorterInfo(mergedSorterStates);\n return [transformColumns, mergedSorterStates, columnTitleSorterProps, getSorters];\n};\nexport default useFilterSorter;","import * as React from 'react';\nimport { renderColumnTitle } from '../util';\nconst fillTitle = (columns, columnTitleProps) => {\n const finalColumns = columns.map(column => {\n const cloneColumn = Object.assign({}, column);\n cloneColumn.title = renderColumnTitle(column.title, columnTitleProps);\n if ('children' in cloneColumn) {\n cloneColumn.children = fillTitle(cloneColumn.children, columnTitleProps);\n }\n return cloneColumn;\n });\n return finalColumns;\n};\nconst useTitleColumns = columnTitleProps => {\n const filledColumns = React.useCallback(columns => fillTitle(columns, columnTitleProps), [columnTitleProps]);\n return [filledColumns];\n};\nexport default useTitleColumns;","\"use client\";\n\nimport { genTable } from 'rc-table';\n/**\n * Same as `rc-table` but we modify trigger children update logic instead.\n */\nconst RcTable = genTable((prev, next) => {\n const {\n _renderTimes: prevRenderTimes\n } = prev;\n const {\n _renderTimes: nextRenderTimes\n } = next;\n return prevRenderTimes !== nextRenderTimes;\n});\nexport default RcTable;","\"use client\";\n\nimport { genVirtualTable } from 'rc-table';\n/**\n * Same as `rc-table` but we modify trigger children update logic instead.\n */\nconst RcVirtualTable = genVirtualTable((prev, next) => {\n const {\n _renderTimes: prevRenderTimes\n } = prev;\n const {\n _renderTimes: nextRenderTimes\n } = next;\n return prevRenderTimes !== nextRenderTimes;\n});\nexport default RcVirtualTable;","import { unit } from '@ant-design/cssinjs';\nconst genBorderedStyle = token => {\n const {\n componentCls,\n lineWidth,\n lineType,\n tableBorderColor,\n tableHeaderBg,\n tablePaddingVertical,\n tablePaddingHorizontal,\n calc\n } = token;\n const tableBorder = `${unit(lineWidth)} ${lineType} ${tableBorderColor}`;\n const getSizeBorderStyle = (size, paddingVertical, paddingHorizontal) => ({\n [`&${componentCls}-${size}`]: {\n [`> ${componentCls}-container`]: {\n [`> ${componentCls}-content, > ${componentCls}-body`]: {\n [`\n > table > tbody > tr > th,\n > table > tbody > tr > td\n `]: {\n [`> ${componentCls}-expanded-row-fixed`]: {\n margin: `${unit(calc(paddingVertical).mul(-1).equal())}\n ${unit(calc(calc(paddingHorizontal).add(lineWidth)).mul(-1).equal())}`\n }\n }\n }\n }\n }\n });\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}${componentCls}-bordered`]: Object.assign(Object.assign(Object.assign({\n // ============================ Title =============================\n [`> ${componentCls}-title`]: {\n border: tableBorder,\n borderBottom: 0\n },\n // ============================ Content ============================\n [`> ${componentCls}-container`]: {\n borderInlineStart: tableBorder,\n borderTop: tableBorder,\n [`\n > ${componentCls}-content,\n > ${componentCls}-header,\n > ${componentCls}-body,\n > ${componentCls}-summary\n `]: {\n '> table': {\n // ============================= Cell =============================\n [`\n > thead > tr > th,\n > thead > tr > td,\n > tbody > tr > th,\n > tbody > tr > td,\n > tfoot > tr > th,\n > tfoot > tr > td\n `]: {\n borderInlineEnd: tableBorder\n },\n // ============================ Header ============================\n '> thead': {\n '> tr:not(:last-child) > th': {\n borderBottom: tableBorder\n },\n '> tr > th::before': {\n backgroundColor: 'transparent !important'\n }\n },\n // Fixed right should provides additional border\n [`\n > thead > tr,\n > tbody > tr,\n > tfoot > tr\n `]: {\n [`> ${componentCls}-cell-fix-right-first::after`]: {\n borderInlineEnd: tableBorder\n }\n },\n // ========================== Expandable ==========================\n [`\n > tbody > tr > th,\n > tbody > tr > td\n `]: {\n [`> ${componentCls}-expanded-row-fixed`]: {\n margin: `${unit(calc(tablePaddingVertical).mul(-1).equal())} ${unit(calc(calc(tablePaddingHorizontal).add(lineWidth)).mul(-1).equal())}`,\n '&::after': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: lineWidth,\n bottom: 0,\n borderInlineEnd: tableBorder,\n content: '\"\"'\n }\n }\n }\n }\n }\n },\n // ============================ Scroll ============================\n [`&${componentCls}-scroll-horizontal`]: {\n [`> ${componentCls}-container > ${componentCls}-body`]: {\n '> table > tbody': {\n [`\n > tr${componentCls}-expanded-row,\n > tr${componentCls}-placeholder\n `]: {\n '> th, > td': {\n borderInlineEnd: 0\n }\n }\n }\n }\n }\n }, getSizeBorderStyle('middle', token.tablePaddingVerticalMiddle, token.tablePaddingHorizontalMiddle)), getSizeBorderStyle('small', token.tablePaddingVerticalSmall, token.tablePaddingHorizontalSmall)), {\n // ============================ Footer ============================\n [`> ${componentCls}-footer`]: {\n border: tableBorder,\n borderTop: 0\n }\n }),\n // ============================ Nested ============================\n [`${componentCls}-cell`]: {\n [`${componentCls}-container:first-child`]: {\n // :first-child to avoid the case when bordered and title is set\n borderTop: 0\n },\n // https://github.com/ant-design/ant-design/issues/35577\n '&-scrollbar:not([rowspan])': {\n boxShadow: `0 ${unit(lineWidth)} 0 ${unit(lineWidth)} ${tableHeaderBg}`\n }\n },\n [`${componentCls}-bordered ${componentCls}-cell-scrollbar`]: {\n borderInlineEnd: tableBorder\n }\n }\n };\n};\nexport default genBorderedStyle;","import { textEllipsis } from '../../style';\nconst genEllipsisStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-cell-ellipsis`]: Object.assign(Object.assign({}, textEllipsis), {\n wordBreak: 'keep-all',\n // Fixed first or last should special process\n [`\n &${componentCls}-cell-fix-left-last,\n &${componentCls}-cell-fix-right-first\n `]: {\n overflow: 'visible',\n [`${componentCls}-cell-content`]: {\n display: 'block',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n }\n },\n [`${componentCls}-column-title`]: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n wordBreak: 'keep-all'\n }\n })\n }\n };\n};\nexport default genEllipsisStyle;","// ========================= Placeholder ==========================\nconst genEmptyStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-tbody > tr${componentCls}-placeholder`]: {\n textAlign: 'center',\n color: token.colorTextDisabled,\n [`\n &:hover > th,\n &:hover > td,\n `]: {\n background: token.colorBgContainer\n }\n }\n }\n };\n};\nexport default genEmptyStyle;","import { unit } from '@ant-design/cssinjs';\nimport { operationUnit } from '../../style';\nconst genExpandStyle = token => {\n const {\n componentCls,\n antCls,\n motionDurationSlow,\n lineWidth,\n paddingXS,\n lineType,\n tableBorderColor,\n tableExpandIconBg,\n tableExpandColumnWidth,\n borderRadius,\n tablePaddingVertical,\n tablePaddingHorizontal,\n tableExpandedRowBg,\n paddingXXS,\n expandIconMarginTop,\n expandIconSize,\n expandIconHalfInner,\n expandIconScale,\n calc\n } = token;\n const tableBorder = `${unit(lineWidth)} ${lineType} ${tableBorderColor}`;\n const expandIconLineOffset = calc(paddingXXS).sub(lineWidth).equal();\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-expand-icon-col`]: {\n width: tableExpandColumnWidth\n },\n [`${componentCls}-row-expand-icon-cell`]: {\n textAlign: 'center',\n [`${componentCls}-row-expand-icon`]: {\n display: 'inline-flex',\n float: 'none',\n verticalAlign: 'sub'\n }\n },\n [`${componentCls}-row-indent`]: {\n height: 1,\n float: 'left'\n },\n [`${componentCls}-row-expand-icon`]: Object.assign(Object.assign({}, operationUnit(token)), {\n position: 'relative',\n float: 'left',\n width: expandIconSize,\n height: expandIconSize,\n color: 'inherit',\n lineHeight: unit(expandIconSize),\n background: tableExpandIconBg,\n border: tableBorder,\n borderRadius,\n transform: `scale(${expandIconScale})`,\n '&:focus, &:hover, &:active': {\n borderColor: 'currentcolor'\n },\n '&::before, &::after': {\n position: 'absolute',\n background: 'currentcolor',\n transition: `transform ${motionDurationSlow} ease-out`,\n content: '\"\"'\n },\n '&::before': {\n top: expandIconHalfInner,\n insetInlineEnd: expandIconLineOffset,\n insetInlineStart: expandIconLineOffset,\n height: lineWidth\n },\n '&::after': {\n top: expandIconLineOffset,\n bottom: expandIconLineOffset,\n insetInlineStart: expandIconHalfInner,\n width: lineWidth,\n transform: 'rotate(90deg)'\n },\n // Motion effect\n '&-collapsed::before': {\n transform: 'rotate(-180deg)'\n },\n '&-collapsed::after': {\n transform: 'rotate(0deg)'\n },\n '&-spaced': {\n '&::before, &::after': {\n display: 'none',\n content: 'none'\n },\n background: 'transparent',\n border: 0,\n visibility: 'hidden'\n }\n }),\n [`${componentCls}-row-indent + ${componentCls}-row-expand-icon`]: {\n marginTop: expandIconMarginTop,\n marginInlineEnd: paddingXS\n },\n [`tr${componentCls}-expanded-row`]: {\n '&, &:hover': {\n '> th, > td': {\n background: tableExpandedRowBg\n }\n },\n // https://github.com/ant-design/ant-design/issues/25573\n [`${antCls}-descriptions-view`]: {\n display: 'flex',\n table: {\n flex: 'auto',\n width: '100%'\n }\n }\n },\n // With fixed\n [`${componentCls}-expanded-row-fixed`]: {\n position: 'relative',\n margin: `${unit(calc(tablePaddingVertical).mul(-1).equal())} ${unit(calc(tablePaddingHorizontal).mul(-1).equal())}`,\n padding: `${unit(tablePaddingVertical)} ${unit(tablePaddingHorizontal)}`\n }\n }\n };\n};\nexport default genExpandStyle;","import { unit } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nconst genFilterStyle = token => {\n const {\n componentCls,\n antCls,\n iconCls,\n tableFilterDropdownWidth,\n tableFilterDropdownSearchWidth,\n paddingXXS,\n paddingXS,\n colorText,\n lineWidth,\n lineType,\n tableBorderColor,\n headerIconColor,\n fontSizeSM,\n tablePaddingHorizontal,\n borderRadius,\n motionDurationSlow,\n colorTextDescription,\n colorPrimary,\n tableHeaderFilterActiveBg,\n colorTextDisabled,\n tableFilterDropdownBg,\n tableFilterDropdownHeight,\n controlItemBgHover,\n controlItemBgActive,\n boxShadowSecondary,\n filterDropdownMenuBg,\n calc\n } = token;\n const dropdownPrefixCls = `${antCls}-dropdown`;\n const tableFilterDropdownPrefixCls = `${componentCls}-filter-dropdown`;\n const treePrefixCls = `${antCls}-tree`;\n const tableBorder = `${unit(lineWidth)} ${lineType} ${tableBorderColor}`;\n return [{\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-filter-column`]: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n [`${componentCls}-filter-trigger`]: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n marginBlock: calc(paddingXXS).mul(-1).equal(),\n marginInline: `${unit(paddingXXS)} ${unit(calc(tablePaddingHorizontal).div(2).mul(-1).equal())}`,\n padding: `0 ${unit(paddingXXS)}`,\n color: headerIconColor,\n fontSize: fontSizeSM,\n borderRadius,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '&:hover': {\n color: colorTextDescription,\n background: tableHeaderFilterActiveBg\n },\n '&.active': {\n color: colorPrimary\n }\n }\n }\n }, {\n // Dropdown\n [`${antCls}-dropdown`]: {\n [tableFilterDropdownPrefixCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n minWidth: tableFilterDropdownWidth,\n backgroundColor: tableFilterDropdownBg,\n borderRadius,\n boxShadow: boxShadowSecondary,\n overflow: 'hidden',\n // Reset menu\n [`${dropdownPrefixCls}-menu`]: {\n // https://github.com/ant-design/ant-design/issues/4916\n // https://github.com/ant-design/ant-design/issues/19542\n maxHeight: tableFilterDropdownHeight,\n overflowX: 'hidden',\n border: 0,\n boxShadow: 'none',\n borderRadius: 'unset',\n backgroundColor: filterDropdownMenuBg,\n '&:empty::after': {\n display: 'block',\n padding: `${unit(paddingXS)} 0`,\n color: colorTextDisabled,\n fontSize: fontSizeSM,\n textAlign: 'center',\n content: '\"Not Found\"'\n }\n },\n [`${tableFilterDropdownPrefixCls}-tree`]: {\n paddingBlock: `${unit(paddingXS)} 0`,\n paddingInline: paddingXS,\n [treePrefixCls]: {\n padding: 0\n },\n [`${treePrefixCls}-treenode ${treePrefixCls}-node-content-wrapper:hover`]: {\n backgroundColor: controlItemBgHover\n },\n [`${treePrefixCls}-treenode-checkbox-checked ${treePrefixCls}-node-content-wrapper`]: {\n '&, &:hover': {\n backgroundColor: controlItemBgActive\n }\n }\n },\n [`${tableFilterDropdownPrefixCls}-search`]: {\n padding: paddingXS,\n borderBottom: tableBorder,\n '&-input': {\n input: {\n minWidth: tableFilterDropdownSearchWidth\n },\n [iconCls]: {\n color: colorTextDisabled\n }\n }\n },\n [`${tableFilterDropdownPrefixCls}-checkall`]: {\n width: '100%',\n marginBottom: paddingXXS,\n marginInlineStart: paddingXXS\n },\n // Operation\n [`${tableFilterDropdownPrefixCls}-btns`]: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: `${unit(calc(paddingXS).sub(lineWidth).equal())} ${unit(paddingXS)}`,\n overflow: 'hidden',\n borderTop: tableBorder\n }\n })\n }\n },\n // Dropdown Menu & SubMenu\n {\n // submenu of table filter dropdown\n [`${antCls}-dropdown ${tableFilterDropdownPrefixCls}, ${tableFilterDropdownPrefixCls}-submenu`]: {\n // Checkbox\n [`${antCls}-checkbox-wrapper + span`]: {\n paddingInlineStart: paddingXS,\n color: colorText\n },\n '> ul': {\n maxHeight: 'calc(100vh - 130px)',\n overflowX: 'hidden',\n overflowY: 'auto'\n }\n }\n }];\n};\nexport default genFilterStyle;","const genFixedStyle = token => {\n const {\n componentCls,\n lineWidth,\n colorSplit,\n motionDurationSlow,\n zIndexTableFixed,\n tableBg,\n zIndexTableSticky,\n calc\n } = token;\n const shadowColor = colorSplit;\n // Follow style is magic of shadow which should not follow token:\n return {\n [`${componentCls}-wrapper`]: {\n [`\n ${componentCls}-cell-fix-left,\n ${componentCls}-cell-fix-right\n `]: {\n position: 'sticky !important',\n zIndex: zIndexTableFixed,\n background: tableBg\n },\n [`\n ${componentCls}-cell-fix-left-first::after,\n ${componentCls}-cell-fix-left-last::after\n `]: {\n position: 'absolute',\n top: 0,\n right: {\n _skip_check_: true,\n value: 0\n },\n bottom: calc(lineWidth).mul(-1).equal(),\n width: 30,\n transform: 'translateX(100%)',\n transition: `box-shadow ${motionDurationSlow}`,\n content: '\"\"',\n pointerEvents: 'none'\n },\n [`${componentCls}-cell-fix-left-all::after`]: {\n display: 'none'\n },\n [`\n ${componentCls}-cell-fix-right-first::after,\n ${componentCls}-cell-fix-right-last::after\n `]: {\n position: 'absolute',\n top: 0,\n bottom: calc(lineWidth).mul(-1).equal(),\n left: {\n _skip_check_: true,\n value: 0\n },\n width: 30,\n transform: 'translateX(-100%)',\n transition: `box-shadow ${motionDurationSlow}`,\n content: '\"\"',\n pointerEvents: 'none'\n },\n [`${componentCls}-container`]: {\n position: 'relative',\n '&::before, &::after': {\n position: 'absolute',\n top: 0,\n bottom: 0,\n zIndex: calc(zIndexTableSticky).add(1).equal({\n unit: false\n }),\n width: 30,\n transition: `box-shadow ${motionDurationSlow}`,\n content: '\"\"',\n pointerEvents: 'none'\n },\n '&::before': {\n insetInlineStart: 0\n },\n '&::after': {\n insetInlineEnd: 0\n }\n },\n [`${componentCls}-ping-left`]: {\n [`&:not(${componentCls}-has-fix-left) ${componentCls}-container::before`]: {\n boxShadow: `inset 10px 0 8px -8px ${shadowColor}`\n },\n [`\n ${componentCls}-cell-fix-left-first::after,\n ${componentCls}-cell-fix-left-last::after\n `]: {\n boxShadow: `inset 10px 0 8px -8px ${shadowColor}`\n },\n [`${componentCls}-cell-fix-left-last::before`]: {\n backgroundColor: 'transparent !important'\n }\n },\n [`${componentCls}-ping-right`]: {\n [`&:not(${componentCls}-has-fix-right) ${componentCls}-container::after`]: {\n boxShadow: `inset -10px 0 8px -8px ${shadowColor}`\n },\n [`\n ${componentCls}-cell-fix-right-first::after,\n ${componentCls}-cell-fix-right-last::after\n `]: {\n boxShadow: `inset -10px 0 8px -8px ${shadowColor}`\n }\n },\n // Gapped fixed Columns do not show the shadow\n [`${componentCls}-fixed-column-gapped`]: {\n [`\n ${componentCls}-cell-fix-left-first::after,\n ${componentCls}-cell-fix-left-last::after,\n ${componentCls}-cell-fix-right-first::after,\n ${componentCls}-cell-fix-right-last::after\n `]: {\n boxShadow: 'none'\n }\n }\n }\n };\n};\nexport default genFixedStyle;","import { unit } from '@ant-design/cssinjs';\nconst genPaginationStyle = token => {\n const {\n componentCls,\n antCls,\n margin\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n // ========================== Pagination ==========================\n [`${componentCls}-pagination${antCls}-pagination`]: {\n margin: `${unit(margin)} 0`\n },\n [`${componentCls}-pagination`]: {\n display: 'flex',\n flexWrap: 'wrap',\n rowGap: token.paddingXS,\n '> *': {\n flex: 'none'\n },\n '&-left': {\n justifyContent: 'flex-start'\n },\n '&-center': {\n justifyContent: 'center'\n },\n '&-right': {\n justifyContent: 'flex-end'\n }\n }\n }\n };\n};\nexport default genPaginationStyle;","import { unit } from '@ant-design/cssinjs';\nconst genRadiusStyle = token => {\n const {\n componentCls,\n tableRadius\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [componentCls]: {\n // https://github.com/ant-design/ant-design/issues/39115#issuecomment-1362314574\n [`${componentCls}-title, ${componentCls}-header`]: {\n borderRadius: `${unit(tableRadius)} ${unit(tableRadius)} 0 0`\n },\n [`${componentCls}-title + ${componentCls}-container`]: {\n borderStartStartRadius: 0,\n borderStartEndRadius: 0,\n // https://github.com/ant-design/ant-design/issues/41975\n [`${componentCls}-header, table`]: {\n borderRadius: 0\n },\n 'table > thead > tr:first-child': {\n 'th:first-child, th:last-child, td:first-child, td:last-child': {\n borderRadius: 0\n }\n }\n },\n '&-container': {\n borderStartStartRadius: tableRadius,\n borderStartEndRadius: tableRadius,\n 'table > thead > tr:first-child': {\n '> *:first-child': {\n borderStartStartRadius: tableRadius\n },\n '> *:last-child': {\n borderStartEndRadius: tableRadius\n }\n }\n },\n '&-footer': {\n borderRadius: `0 0 ${unit(tableRadius)} ${unit(tableRadius)}`\n }\n }\n }\n };\n};\nexport default genRadiusStyle;","const genStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-wrapper-rtl`]: {\n direction: 'rtl',\n table: {\n direction: 'rtl'\n },\n [`${componentCls}-pagination-left`]: {\n justifyContent: 'flex-end'\n },\n [`${componentCls}-pagination-right`]: {\n justifyContent: 'flex-start'\n },\n [`${componentCls}-row-expand-icon`]: {\n float: 'right',\n '&::after': {\n transform: 'rotate(-90deg)'\n },\n '&-collapsed::before': {\n transform: 'rotate(180deg)'\n },\n '&-collapsed::after': {\n transform: 'rotate(0deg)'\n }\n },\n [`${componentCls}-container`]: {\n '&::before': {\n insetInlineStart: 'unset',\n insetInlineEnd: 0\n },\n '&::after': {\n insetInlineStart: 0,\n insetInlineEnd: 'unset'\n },\n [`${componentCls}-row-indent`]: {\n float: 'right'\n }\n }\n }\n };\n};\nexport default genStyle;","import { unit } from '@ant-design/cssinjs';\nconst genSelectionStyle = token => {\n const {\n componentCls,\n antCls,\n iconCls,\n fontSizeIcon,\n padding,\n paddingXS,\n headerIconColor,\n headerIconHoverColor,\n tableSelectionColumnWidth,\n tableSelectedRowBg,\n tableSelectedRowHoverBg,\n tableRowHoverBg,\n tablePaddingHorizontal,\n calc\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n // ========================== Selections ==========================\n [`${componentCls}-selection-col`]: {\n width: tableSelectionColumnWidth,\n [`&${componentCls}-selection-col-with-dropdown`]: {\n width: calc(tableSelectionColumnWidth).add(fontSizeIcon).add(calc(padding).div(4)).equal()\n }\n },\n [`${componentCls}-bordered ${componentCls}-selection-col`]: {\n width: calc(tableSelectionColumnWidth).add(calc(paddingXS).mul(2)).equal(),\n [`&${componentCls}-selection-col-with-dropdown`]: {\n width: calc(tableSelectionColumnWidth).add(fontSizeIcon).add(calc(padding).div(4)).add(calc(paddingXS).mul(2)).equal()\n }\n },\n [`\n table tr th${componentCls}-selection-column,\n table tr td${componentCls}-selection-column,\n ${componentCls}-selection-column\n `]: {\n paddingInlineEnd: token.paddingXS,\n paddingInlineStart: token.paddingXS,\n textAlign: 'center',\n [`${antCls}-radio-wrapper`]: {\n marginInlineEnd: 0\n }\n },\n [`table tr th${componentCls}-selection-column${componentCls}-cell-fix-left`]: {\n zIndex: calc(token.zIndexTableFixed).add(1).equal({\n unit: false\n })\n },\n [`table tr th${componentCls}-selection-column::after`]: {\n backgroundColor: 'transparent !important'\n },\n [`${componentCls}-selection`]: {\n position: 'relative',\n display: 'inline-flex',\n flexDirection: 'column'\n },\n [`${componentCls}-selection-extra`]: {\n position: 'absolute',\n top: 0,\n zIndex: 1,\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n marginInlineStart: '100%',\n paddingInlineStart: unit(calc(tablePaddingHorizontal).div(4).equal()),\n [iconCls]: {\n color: headerIconColor,\n fontSize: fontSizeIcon,\n verticalAlign: 'baseline',\n '&:hover': {\n color: headerIconHoverColor\n }\n }\n },\n // ============================= Rows =============================\n [`${componentCls}-tbody`]: {\n [`${componentCls}-row`]: {\n [`&${componentCls}-row-selected`]: {\n [`> ${componentCls}-cell`]: {\n background: tableSelectedRowBg,\n '&-row-hover': {\n background: tableSelectedRowHoverBg\n }\n }\n },\n [`> ${componentCls}-cell-row-hover`]: {\n background: tableRowHoverBg\n }\n }\n }\n }\n };\n};\nexport default genSelectionStyle;","import { unit } from '@ant-design/cssinjs';\nconst genSizeStyle = token => {\n const {\n componentCls,\n tableExpandColumnWidth,\n calc\n } = token;\n const getSizeStyle = (size, paddingVertical, paddingHorizontal, fontSize) => ({\n [`${componentCls}${componentCls}-${size}`]: {\n fontSize,\n [`\n ${componentCls}-title,\n ${componentCls}-footer,\n ${componentCls}-cell,\n ${componentCls}-thead > tr > th,\n ${componentCls}-tbody > tr > th,\n ${componentCls}-tbody > tr > td,\n tfoot > tr > th,\n tfoot > tr > td\n `]: {\n padding: `${unit(paddingVertical)} ${unit(paddingHorizontal)}`\n },\n [`${componentCls}-filter-trigger`]: {\n marginInlineEnd: unit(calc(paddingHorizontal).div(2).mul(-1).equal())\n },\n [`${componentCls}-expanded-row-fixed`]: {\n margin: `${unit(calc(paddingVertical).mul(-1).equal())} ${unit(calc(paddingHorizontal).mul(-1).equal())}`\n },\n [`${componentCls}-tbody`]: {\n // ========================= Nest Table ===========================\n [`${componentCls}-wrapper:only-child ${componentCls}`]: {\n marginBlock: unit(calc(paddingVertical).mul(-1).equal()),\n marginInline: `${unit(calc(tableExpandColumnWidth).sub(paddingHorizontal).equal())} ${unit(calc(paddingHorizontal).mul(-1).equal())}`\n }\n },\n // https://github.com/ant-design/ant-design/issues/35167\n [`${componentCls}-selection-extra`]: {\n paddingInlineStart: unit(calc(paddingHorizontal).div(4).equal())\n }\n }\n });\n return {\n [`${componentCls}-wrapper`]: Object.assign(Object.assign({}, getSizeStyle('middle', token.tablePaddingVerticalMiddle, token.tablePaddingHorizontalMiddle, token.tableFontSizeMiddle)), getSizeStyle('small', token.tablePaddingVerticalSmall, token.tablePaddingHorizontalSmall, token.tableFontSizeSmall))\n };\n};\nexport default genSizeStyle;","const genSorterStyle = token => {\n const {\n componentCls,\n marginXXS,\n fontSizeIcon,\n headerIconColor,\n headerIconHoverColor\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-thead th${componentCls}-column-has-sorters`]: {\n outline: 'none',\n cursor: 'pointer',\n // why left 0s? Avoid column header move with transition when left is changed\n // https://github.com/ant-design/ant-design/issues/50588\n transition: `all ${token.motionDurationSlow}, left 0s`,\n '&:hover': {\n background: token.tableHeaderSortHoverBg,\n '&::before': {\n backgroundColor: 'transparent !important'\n }\n },\n '&:focus-visible': {\n color: token.colorPrimary\n },\n // https://github.com/ant-design/ant-design/issues/30969\n [`\n &${componentCls}-cell-fix-left:hover,\n &${componentCls}-cell-fix-right:hover\n `]: {\n background: token.tableFixedHeaderSortActiveBg\n }\n },\n [`${componentCls}-thead th${componentCls}-column-sort`]: {\n background: token.tableHeaderSortBg,\n '&::before': {\n backgroundColor: 'transparent !important'\n }\n },\n [`td${componentCls}-column-sort`]: {\n background: token.tableBodySortBg\n },\n [`${componentCls}-column-title`]: {\n position: 'relative',\n zIndex: 1,\n flex: 1\n },\n [`${componentCls}-column-sorters`]: {\n display: 'flex',\n flex: 'auto',\n alignItems: 'center',\n justifyContent: 'space-between',\n '&::after': {\n position: 'absolute',\n inset: 0,\n width: '100%',\n height: '100%',\n content: '\"\"'\n }\n },\n [`${componentCls}-column-sorters-tooltip-target-sorter`]: {\n '&::after': {\n content: 'none'\n }\n },\n [`${componentCls}-column-sorter`]: {\n marginInlineStart: marginXXS,\n color: headerIconColor,\n fontSize: 0,\n transition: `color ${token.motionDurationSlow}`,\n '&-inner': {\n display: 'inline-flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n '&-up, &-down': {\n fontSize: fontSizeIcon,\n '&.active': {\n color: token.colorPrimary\n }\n },\n [`${componentCls}-column-sorter-up + ${componentCls}-column-sorter-down`]: {\n marginTop: '-0.3em'\n }\n },\n [`${componentCls}-column-sorters:hover ${componentCls}-column-sorter`]: {\n color: headerIconHoverColor\n }\n }\n };\n};\nexport default genSorterStyle;","import { unit } from '@ant-design/cssinjs';\nconst genStickyStyle = token => {\n const {\n componentCls,\n opacityLoading,\n tableScrollThumbBg,\n tableScrollThumbBgHover,\n tableScrollThumbSize,\n tableScrollBg,\n zIndexTableSticky,\n stickyScrollBarBorderRadius,\n lineWidth,\n lineType,\n tableBorderColor\n } = token;\n const tableBorder = `${unit(lineWidth)} ${lineType} ${tableBorderColor}`;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-sticky`]: {\n '&-holder': {\n position: 'sticky',\n zIndex: zIndexTableSticky,\n background: token.colorBgContainer\n },\n '&-scroll': {\n position: 'sticky',\n bottom: 0,\n height: `${unit(tableScrollThumbSize)} !important`,\n zIndex: zIndexTableSticky,\n display: 'flex',\n alignItems: 'center',\n background: tableScrollBg,\n borderTop: tableBorder,\n opacity: opacityLoading,\n '&:hover': {\n transformOrigin: 'center bottom'\n },\n // fake scrollbar style of sticky\n '&-bar': {\n height: tableScrollThumbSize,\n backgroundColor: tableScrollThumbBg,\n borderRadius: stickyScrollBarBorderRadius,\n transition: `all ${token.motionDurationSlow}, transform none`,\n position: 'absolute',\n bottom: 0,\n '&:hover, &-active': {\n backgroundColor: tableScrollThumbBgHover\n }\n }\n }\n }\n }\n };\n};\nexport default genStickyStyle;","import { unit } from '@ant-design/cssinjs';\nconst genSummaryStyle = token => {\n const {\n componentCls,\n lineWidth,\n tableBorderColor,\n calc\n } = token;\n const tableBorder = `${unit(lineWidth)} ${token.lineType} ${tableBorderColor}`;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-summary`]: {\n position: 'relative',\n zIndex: token.zIndexTableFixed,\n background: token.tableBg,\n '> tr': {\n '> th, > td': {\n borderBottom: tableBorder\n }\n }\n },\n [`div${componentCls}-summary`]: {\n boxShadow: `0 ${unit(calc(lineWidth).mul(-1).equal())} 0 ${tableBorderColor}`\n }\n }\n };\n};\nexport default genSummaryStyle;","import { unit } from '@ant-design/cssinjs';\nconst genVirtualStyle = token => {\n const {\n componentCls,\n motionDurationMid,\n lineWidth,\n lineType,\n tableBorderColor,\n calc\n } = token;\n const tableBorder = `${unit(lineWidth)} ${lineType} ${tableBorderColor}`;\n const rowCellCls = `${componentCls}-expanded-row-cell`;\n return {\n [`${componentCls}-wrapper`]: {\n // ========================== Row ==========================\n [`${componentCls}-tbody-virtual`]: {\n [`${componentCls}-tbody-virtual-holder-inner`]: {\n [`\n & > ${componentCls}-row, \n & > div:not(${componentCls}-row) > ${componentCls}-row\n `]: {\n display: 'flex',\n boxSizing: 'border-box',\n width: '100%'\n }\n },\n [`${componentCls}-cell`]: {\n borderBottom: tableBorder,\n transition: `background ${motionDurationMid}`\n },\n [`${componentCls}-expanded-row`]: {\n [`${rowCellCls}${rowCellCls}-fixed`]: {\n position: 'sticky',\n insetInlineStart: 0,\n overflow: 'hidden',\n width: `calc(var(--virtual-width) - ${unit(lineWidth)})`,\n borderInlineEnd: 'none'\n }\n }\n },\n // ======================== Border =========================\n [`${componentCls}-bordered`]: {\n [`${componentCls}-tbody-virtual`]: {\n '&:after': {\n content: '\"\"',\n insetInline: 0,\n bottom: 0,\n borderBottom: tableBorder,\n position: 'absolute'\n },\n [`${componentCls}-cell`]: {\n borderInlineEnd: tableBorder,\n [`&${componentCls}-cell-fix-right-first:before`]: {\n content: '\"\"',\n position: 'absolute',\n insetBlock: 0,\n insetInlineStart: calc(lineWidth).mul(-1).equal(),\n borderInlineStart: tableBorder\n }\n }\n },\n // Empty placeholder\n [`&${componentCls}-virtual`]: {\n [`${componentCls}-placeholder ${componentCls}-cell`]: {\n borderInlineEnd: tableBorder,\n borderBottom: tableBorder\n }\n }\n }\n }\n };\n};\nexport default genVirtualStyle;","import { unit } from '@ant-design/cssinjs';\nimport { FastColor } from '@ant-design/fast-color';\nimport { clearFix, resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genBorderedStyle from './bordered';\nimport genEllipsisStyle from './ellipsis';\nimport genEmptyStyle from './empty';\nimport genExpandStyle from './expand';\nimport genFilterStyle from './filter';\nimport genFixedStyle from './fixed';\nimport genPaginationStyle from './pagination';\nimport genRadiusStyle from './radius';\nimport genRtlStyle from './rtl';\nimport genSelectionStyle from './selection';\nimport genSizeStyle from './size';\nimport genSorterStyle from './sorter';\nimport genStickyStyle from './sticky';\nimport genSummaryStyle from './summary';\nimport genVirtualStyle from './virtual';\nconst genTableStyle = token => {\n const {\n componentCls,\n fontWeightStrong,\n tablePaddingVertical,\n tablePaddingHorizontal,\n tableExpandColumnWidth,\n lineWidth,\n lineType,\n tableBorderColor,\n tableFontSize,\n tableBg,\n tableRadius,\n tableHeaderTextColor,\n motionDurationMid,\n tableHeaderBg,\n tableHeaderCellSplitColor,\n tableFooterTextColor,\n tableFooterBg,\n calc\n } = token;\n const tableBorder = `${unit(lineWidth)} ${lineType} ${tableBorderColor}`;\n return {\n [`${componentCls}-wrapper`]: Object.assign(Object.assign({\n clear: 'both',\n maxWidth: '100%'\n }, clearFix()), {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n fontSize: tableFontSize,\n background: tableBg,\n borderRadius: `${unit(tableRadius)} ${unit(tableRadius)} 0 0`,\n // https://github.com/ant-design/ant-design/issues/47486\n scrollbarColor: `${token.tableScrollThumbBg} ${token.tableScrollBg}`\n }),\n // https://github.com/ant-design/ant-design/issues/17611\n table: {\n width: '100%',\n textAlign: 'start',\n borderRadius: `${unit(tableRadius)} ${unit(tableRadius)} 0 0`,\n borderCollapse: 'separate',\n borderSpacing: 0\n },\n // ============================= Cell ==============================\n [`\n ${componentCls}-cell,\n ${componentCls}-thead > tr > th,\n ${componentCls}-tbody > tr > th,\n ${componentCls}-tbody > tr > td,\n tfoot > tr > th,\n tfoot > tr > td\n `]: {\n position: 'relative',\n padding: `${unit(tablePaddingVertical)} ${unit(tablePaddingHorizontal)}`,\n overflowWrap: 'break-word'\n },\n // ============================ Title =============================\n [`${componentCls}-title`]: {\n padding: `${unit(tablePaddingVertical)} ${unit(tablePaddingHorizontal)}`\n },\n // ============================ Header ============================\n [`${componentCls}-thead`]: {\n [`\n > tr > th,\n > tr > td\n `]: {\n position: 'relative',\n color: tableHeaderTextColor,\n fontWeight: fontWeightStrong,\n textAlign: 'start',\n background: tableHeaderBg,\n borderBottom: tableBorder,\n transition: `background ${motionDurationMid} ease`,\n \"&[colspan]:not([colspan='1'])\": {\n textAlign: 'center'\n },\n [`&:not(:last-child):not(${componentCls}-selection-column):not(${componentCls}-row-expand-icon-cell):not([colspan])::before`]: {\n position: 'absolute',\n top: '50%',\n insetInlineEnd: 0,\n width: 1,\n height: '1.6em',\n backgroundColor: tableHeaderCellSplitColor,\n transform: 'translateY(-50%)',\n transition: `background-color ${motionDurationMid}`,\n content: '\"\"'\n }\n },\n '> tr:not(:last-child) > th[colspan]': {\n borderBottom: 0\n }\n },\n // ============================ Body ============================\n [`${componentCls}-tbody`]: {\n '> tr': {\n '> th, > td': {\n transition: `background ${motionDurationMid}, border-color ${motionDurationMid}`,\n borderBottom: tableBorder,\n // ========================= Nest Table ===========================\n [`\n > ${componentCls}-wrapper:only-child,\n > ${componentCls}-expanded-row-fixed > ${componentCls}-wrapper:only-child\n `]: {\n [componentCls]: {\n marginBlock: unit(calc(tablePaddingVertical).mul(-1).equal()),\n marginInline: `${unit(calc(tableExpandColumnWidth).sub(tablePaddingHorizontal).equal())}\n ${unit(calc(tablePaddingHorizontal).mul(-1).equal())}`,\n [`${componentCls}-tbody > tr:last-child > td`]: {\n borderBottomWidth: 0,\n '&:first-child, &:last-child': {\n borderRadius: 0\n }\n }\n }\n }\n },\n '> th': {\n position: 'relative',\n color: tableHeaderTextColor,\n fontWeight: fontWeightStrong,\n textAlign: 'start',\n background: tableHeaderBg,\n borderBottom: tableBorder,\n transition: `background ${motionDurationMid} ease`\n }\n }\n },\n // ============================ Footer ============================\n [`${componentCls}-footer`]: {\n padding: `${unit(tablePaddingVertical)} ${unit(tablePaddingHorizontal)}`,\n color: tableFooterTextColor,\n background: tableFooterBg\n }\n })\n };\n};\nexport const prepareComponentToken = token => {\n const {\n colorFillAlter,\n colorBgContainer,\n colorTextHeading,\n colorFillSecondary,\n colorFillContent,\n controlItemBgActive,\n controlItemBgActiveHover,\n padding,\n paddingSM,\n paddingXS,\n colorBorderSecondary,\n borderRadiusLG,\n controlHeight,\n colorTextPlaceholder,\n fontSize,\n fontSizeSM,\n lineHeight,\n lineWidth,\n colorIcon,\n colorIconHover,\n opacityLoading,\n controlInteractiveSize\n } = token;\n const colorFillSecondarySolid = new FastColor(colorFillSecondary).onBackground(colorBgContainer).toHexString();\n const colorFillContentSolid = new FastColor(colorFillContent).onBackground(colorBgContainer).toHexString();\n const colorFillAlterSolid = new FastColor(colorFillAlter).onBackground(colorBgContainer).toHexString();\n const baseColorAction = new FastColor(colorIcon);\n const baseColorActionHover = new FastColor(colorIconHover);\n const expandIconHalfInner = controlInteractiveSize / 2 - lineWidth;\n const expandIconSize = expandIconHalfInner * 2 + lineWidth * 3;\n return {\n headerBg: colorFillAlterSolid,\n headerColor: colorTextHeading,\n headerSortActiveBg: colorFillSecondarySolid,\n headerSortHoverBg: colorFillContentSolid,\n bodySortBg: colorFillAlterSolid,\n rowHoverBg: colorFillAlterSolid,\n rowSelectedBg: controlItemBgActive,\n rowSelectedHoverBg: controlItemBgActiveHover,\n rowExpandedBg: colorFillAlter,\n cellPaddingBlock: padding,\n cellPaddingInline: padding,\n cellPaddingBlockMD: paddingSM,\n cellPaddingInlineMD: paddingXS,\n cellPaddingBlockSM: paddingXS,\n cellPaddingInlineSM: paddingXS,\n borderColor: colorBorderSecondary,\n headerBorderRadius: borderRadiusLG,\n footerBg: colorFillAlterSolid,\n footerColor: colorTextHeading,\n cellFontSize: fontSize,\n cellFontSizeMD: fontSize,\n cellFontSizeSM: fontSize,\n headerSplitColor: colorBorderSecondary,\n fixedHeaderSortActiveBg: colorFillSecondarySolid,\n headerFilterHoverBg: colorFillContent,\n filterDropdownMenuBg: colorBgContainer,\n filterDropdownBg: colorBgContainer,\n expandIconBg: colorBgContainer,\n selectionColumnWidth: controlHeight,\n stickyScrollBarBg: colorTextPlaceholder,\n stickyScrollBarBorderRadius: 100,\n expandIconMarginTop: (fontSize * lineHeight - lineWidth * 3) / 2 - Math.ceil((fontSizeSM * 1.4 - lineWidth * 3) / 2),\n headerIconColor: baseColorAction.clone().setA(baseColorAction.a * opacityLoading).toRgbString(),\n headerIconHoverColor: baseColorActionHover.clone().setA(baseColorActionHover.a * opacityLoading).toRgbString(),\n expandIconHalfInner,\n expandIconSize,\n expandIconScale: controlInteractiveSize / expandIconSize\n };\n};\nconst zIndexTableFixed = 2;\n// ============================== Export ==============================\nexport default genStyleHooks('Table', token => {\n const {\n colorTextHeading,\n colorSplit,\n colorBgContainer,\n controlInteractiveSize: checkboxSize,\n headerBg,\n headerColor,\n headerSortActiveBg,\n headerSortHoverBg,\n bodySortBg,\n rowHoverBg,\n rowSelectedBg,\n rowSelectedHoverBg,\n rowExpandedBg,\n cellPaddingBlock,\n cellPaddingInline,\n cellPaddingBlockMD,\n cellPaddingInlineMD,\n cellPaddingBlockSM,\n cellPaddingInlineSM,\n borderColor,\n footerBg,\n footerColor,\n headerBorderRadius,\n cellFontSize,\n cellFontSizeMD,\n cellFontSizeSM,\n headerSplitColor,\n fixedHeaderSortActiveBg,\n headerFilterHoverBg,\n filterDropdownBg,\n expandIconBg,\n selectionColumnWidth,\n stickyScrollBarBg,\n calc\n } = token;\n const tableToken = mergeToken(token, {\n tableFontSize: cellFontSize,\n tableBg: colorBgContainer,\n tableRadius: headerBorderRadius,\n tablePaddingVertical: cellPaddingBlock,\n tablePaddingHorizontal: cellPaddingInline,\n tablePaddingVerticalMiddle: cellPaddingBlockMD,\n tablePaddingHorizontalMiddle: cellPaddingInlineMD,\n tablePaddingVerticalSmall: cellPaddingBlockSM,\n tablePaddingHorizontalSmall: cellPaddingInlineSM,\n tableBorderColor: borderColor,\n tableHeaderTextColor: headerColor,\n tableHeaderBg: headerBg,\n tableFooterTextColor: footerColor,\n tableFooterBg: footerBg,\n tableHeaderCellSplitColor: headerSplitColor,\n tableHeaderSortBg: headerSortActiveBg,\n tableHeaderSortHoverBg: headerSortHoverBg,\n tableBodySortBg: bodySortBg,\n tableFixedHeaderSortActiveBg: fixedHeaderSortActiveBg,\n tableHeaderFilterActiveBg: headerFilterHoverBg,\n tableFilterDropdownBg: filterDropdownBg,\n tableRowHoverBg: rowHoverBg,\n tableSelectedRowBg: rowSelectedBg,\n tableSelectedRowHoverBg: rowSelectedHoverBg,\n zIndexTableFixed,\n zIndexTableSticky: calc(zIndexTableFixed).add(1).equal({\n unit: false\n }),\n tableFontSizeMiddle: cellFontSizeMD,\n tableFontSizeSmall: cellFontSizeSM,\n tableSelectionColumnWidth: selectionColumnWidth,\n tableExpandIconBg: expandIconBg,\n tableExpandColumnWidth: calc(checkboxSize).add(calc(token.padding).mul(2)).equal(),\n tableExpandedRowBg: rowExpandedBg,\n // Dropdown\n tableFilterDropdownWidth: 120,\n tableFilterDropdownHeight: 264,\n tableFilterDropdownSearchWidth: 140,\n // Virtual Scroll Bar\n tableScrollThumbSize: 8,\n // Mac scroll bar size\n tableScrollThumbBg: stickyScrollBarBg,\n tableScrollThumbBgHover: colorTextHeading,\n tableScrollBg: colorSplit\n });\n return [genTableStyle(tableToken), genPaginationStyle(tableToken), genSummaryStyle(tableToken), genSorterStyle(tableToken), genFilterStyle(tableToken), genBorderedStyle(tableToken), genRadiusStyle(tableToken), genExpandStyle(tableToken), genSummaryStyle(tableToken), genEmptyStyle(tableToken), genSelectionStyle(tableToken), genFixedStyle(tableToken), genStickyStyle(tableToken), genEllipsisStyle(tableToken), genSizeStyle(tableToken), genRtlStyle(tableToken), genVirtualStyle(tableToken)];\n}, prepareComponentToken, {\n unitless: {\n expandIconScale: true\n }\n});","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { INTERNAL_HOOKS } from 'rc-table';\nimport { convertChildrenToColumns } from \"rc-table/es/hooks/useColumns\";\nimport omit from \"rc-util/es/omit\";\nimport useProxyImperativeHandle from '../_util/hooks/useProxyImperativeHandle';\nimport scrollTo from '../_util/scrollTo';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider/context';\nimport DefaultRenderEmpty from '../config-provider/defaultRenderEmpty';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useSize from '../config-provider/hooks/useSize';\nimport useBreakpoint from '../grid/hooks/useBreakpoint';\nimport defaultLocale from '../locale/en_US';\nimport Pagination from '../pagination';\nimport Spin from '../spin';\nimport { useToken } from '../theme/internal';\nimport renderExpandIcon from './ExpandIcon';\nimport useContainerWidth from './hooks/useContainerWidth';\nimport useFilter, { getFilterData } from './hooks/useFilter';\nimport useLazyKVMap from './hooks/useLazyKVMap';\nimport usePagination, { DEFAULT_PAGE_SIZE, getPaginationParam } from './hooks/usePagination';\nimport useSelection from './hooks/useSelection';\nimport useSorter, { getSortData } from './hooks/useSorter';\nimport useTitleColumns from './hooks/useTitleColumns';\nimport RcTable from './RcTable';\nimport RcVirtualTable from './RcTable/VirtualTable';\nimport useStyle from './style';\nconst EMPTY_LIST = [];\nconst InternalTable = (props, ref) => {\n var _a, _b;\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n size: customizeSize,\n bordered,\n dropdownPrefixCls: customizeDropdownPrefixCls,\n dataSource,\n pagination,\n rowSelection,\n rowKey = 'key',\n rowClassName,\n columns,\n children,\n childrenColumnName: legacyChildrenColumnName,\n onChange,\n getPopupContainer,\n loading,\n expandIcon,\n expandable,\n expandedRowRender,\n expandIconColumnIndex,\n indentSize,\n scroll,\n sortDirections,\n locale,\n showSorterTooltip = {\n target: 'full-header'\n },\n virtual\n } = props;\n const warning = devUseWarning('Table');\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof rowKey === 'function' && rowKey.length > 1), 'usage', '`index` parameter of `rowKey` function is deprecated. There is no guarantee that it will work as expected.') : void 0;\n }\n const baseColumns = React.useMemo(() => columns || convertChildrenToColumns(children), [columns, children]);\n const needResponsive = React.useMemo(() => baseColumns.some(col => col.responsive), [baseColumns]);\n const screens = useBreakpoint(needResponsive);\n const mergedColumns = React.useMemo(() => {\n const matched = new Set(Object.keys(screens).filter(m => screens[m]));\n return baseColumns.filter(c => !c.responsive || c.responsive.some(r => matched.has(r)));\n }, [baseColumns, screens]);\n const tableProps = omit(props, ['className', 'style', 'columns']);\n const {\n locale: contextLocale = defaultLocale,\n direction,\n table,\n renderEmpty,\n getPrefixCls,\n getPopupContainer: getContextPopupContainer\n } = React.useContext(ConfigContext);\n const mergedSize = useSize(customizeSize);\n const tableLocale = Object.assign(Object.assign({}, contextLocale.Table), locale);\n const rawData = dataSource || EMPTY_LIST;\n const prefixCls = getPrefixCls('table', customizePrefixCls);\n const dropdownPrefixCls = getPrefixCls('dropdown', customizeDropdownPrefixCls);\n const [, token] = useToken();\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const mergedExpandable = Object.assign(Object.assign({\n childrenColumnName: legacyChildrenColumnName,\n expandIconColumnIndex\n }, expandable), {\n expandIcon: (_a = expandable === null || expandable === void 0 ? void 0 : expandable.expandIcon) !== null && _a !== void 0 ? _a : (_b = table === null || table === void 0 ? void 0 : table.expandable) === null || _b === void 0 ? void 0 : _b.expandIcon\n });\n const {\n childrenColumnName = 'children'\n } = mergedExpandable;\n const expandType = React.useMemo(() => {\n if (rawData.some(item => item === null || item === void 0 ? void 0 : item[childrenColumnName])) {\n return 'nest';\n }\n if (expandedRowRender || (expandable === null || expandable === void 0 ? void 0 : expandable.expandedRowRender)) {\n return 'row';\n }\n return null;\n }, [rawData]);\n const internalRefs = {\n body: React.useRef(null)\n };\n // ============================ Width =============================\n const getContainerWidth = useContainerWidth(prefixCls);\n // ============================= Refs =============================\n const rootRef = React.useRef(null);\n const tblRef = React.useRef(null);\n useProxyImperativeHandle(ref, () => Object.assign(Object.assign({}, tblRef.current), {\n nativeElement: rootRef.current\n }));\n // ============================ RowKey ============================\n const getRowKey = React.useMemo(() => {\n if (typeof rowKey === 'function') {\n return rowKey;\n }\n return record => record === null || record === void 0 ? void 0 : record[rowKey];\n }, [rowKey]);\n const [getRecordByKey] = useLazyKVMap(rawData, childrenColumnName, getRowKey);\n // ============================ Events =============================\n const changeEventInfo = {};\n const triggerOnChange = function (info, action) {\n let reset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _a, _b, _c, _d;\n const changeInfo = Object.assign(Object.assign({}, changeEventInfo), info);\n if (reset) {\n (_a = changeEventInfo.resetPagination) === null || _a === void 0 ? void 0 : _a.call(changeEventInfo);\n // Reset event param\n if ((_b = changeInfo.pagination) === null || _b === void 0 ? void 0 : _b.current) {\n changeInfo.pagination.current = 1;\n }\n // Trigger pagination events\n if (pagination) {\n (_c = pagination.onChange) === null || _c === void 0 ? void 0 : _c.call(pagination, 1, (_d = changeInfo.pagination) === null || _d === void 0 ? void 0 : _d.pageSize);\n }\n }\n if (scroll && scroll.scrollToFirstRowOnChange !== false && internalRefs.body.current) {\n scrollTo(0, {\n getContainer: () => internalRefs.body.current\n });\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(changeInfo.pagination, changeInfo.filters, changeInfo.sorter, {\n currentDataSource: getFilterData(getSortData(rawData, changeInfo.sorterStates, childrenColumnName), changeInfo.filterStates, childrenColumnName),\n action\n });\n };\n /**\n * Controlled state in `columns` is not a good idea that makes too many code (1000+ line?) to read\n * state out and then put it back to title render. Move these code into `hooks` but still too\n * complex. We should provides Table props like `sorter` & `filter` to handle control in next big\n * version.\n */\n // ============================ Sorter =============================\n const onSorterChange = (sorter, sorterStates) => {\n triggerOnChange({\n sorter,\n sorterStates\n }, 'sort', false);\n };\n const [transformSorterColumns, sortStates, sorterTitleProps, getSorters] = useSorter({\n prefixCls,\n mergedColumns,\n onSorterChange,\n sortDirections: sortDirections || ['ascend', 'descend'],\n tableLocale,\n showSorterTooltip\n });\n const sortedData = React.useMemo(() => getSortData(rawData, sortStates, childrenColumnName), [rawData, sortStates]);\n changeEventInfo.sorter = getSorters();\n changeEventInfo.sorterStates = sortStates;\n // ============================ Filter ============================\n const onFilterChange = (filters, filterStates) => {\n triggerOnChange({\n filters,\n filterStates\n }, 'filter', true);\n };\n const [transformFilterColumns, filterStates, filters] = useFilter({\n prefixCls,\n locale: tableLocale,\n dropdownPrefixCls,\n mergedColumns,\n onFilterChange,\n getPopupContainer: getPopupContainer || getContextPopupContainer,\n rootClassName: classNames(rootClassName, rootCls)\n });\n const mergedData = getFilterData(sortedData, filterStates, childrenColumnName);\n changeEventInfo.filters = filters;\n changeEventInfo.filterStates = filterStates;\n // ============================ Column ============================\n const columnTitleProps = React.useMemo(() => {\n const mergedFilters = {};\n Object.keys(filters).forEach(filterKey => {\n if (filters[filterKey] !== null) {\n mergedFilters[filterKey] = filters[filterKey];\n }\n });\n return Object.assign(Object.assign({}, sorterTitleProps), {\n filters: mergedFilters\n });\n }, [sorterTitleProps, filters]);\n const [transformTitleColumns] = useTitleColumns(columnTitleProps);\n // ========================== Pagination ==========================\n const onPaginationChange = (current, pageSize) => {\n triggerOnChange({\n pagination: Object.assign(Object.assign({}, changeEventInfo.pagination), {\n current,\n pageSize\n })\n }, 'paginate');\n };\n const [mergedPagination, resetPagination] = usePagination(mergedData.length, onPaginationChange, pagination);\n changeEventInfo.pagination = pagination === false ? {} : getPaginationParam(mergedPagination, pagination);\n changeEventInfo.resetPagination = resetPagination;\n // ============================= Data =============================\n const pageData = React.useMemo(() => {\n if (pagination === false || !mergedPagination.pageSize) {\n return mergedData;\n }\n const {\n current = 1,\n total,\n pageSize = DEFAULT_PAGE_SIZE\n } = mergedPagination;\n process.env.NODE_ENV !== \"production\" ? warning(current > 0, 'usage', '`current` should be positive number.') : void 0;\n // Dynamic table data\n if (mergedData.length < total) {\n if (mergedData.length > pageSize) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'usage', '`dataSource` length is less than `pagination.total` but large than `pagination.pageSize`. Please make sure your config correct data with async mode.') : void 0;\n return mergedData.slice((current - 1) * pageSize, current * pageSize);\n }\n return mergedData;\n }\n return mergedData.slice((current - 1) * pageSize, current * pageSize);\n }, [!!pagination, mergedData, mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.current, mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.pageSize, mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.total]);\n // ========================== Selections ==========================\n const [transformSelectionColumns, selectedKeySet] = useSelection({\n prefixCls,\n data: mergedData,\n pageData,\n getRowKey,\n getRecordByKey,\n expandType,\n childrenColumnName,\n locale: tableLocale,\n getPopupContainer: getPopupContainer || getContextPopupContainer\n }, rowSelection);\n const internalRowClassName = (record, index, indent) => {\n let mergedRowClassName;\n if (typeof rowClassName === 'function') {\n mergedRowClassName = classNames(rowClassName(record, index, indent));\n } else {\n mergedRowClassName = classNames(rowClassName);\n }\n return classNames({\n [`${prefixCls}-row-selected`]: selectedKeySet.has(getRowKey(record, index))\n }, mergedRowClassName);\n };\n // ========================== Expandable ==========================\n // Pass origin render status into `rc-table`, this can be removed when refactor with `rc-table`\n mergedExpandable.__PARENT_RENDER_ICON__ = mergedExpandable.expandIcon;\n // Customize expandable icon\n mergedExpandable.expandIcon = mergedExpandable.expandIcon || expandIcon || renderExpandIcon(tableLocale);\n // Adjust expand icon index, no overwrite expandIconColumnIndex if set.\n if (expandType === 'nest' && mergedExpandable.expandIconColumnIndex === undefined) {\n mergedExpandable.expandIconColumnIndex = rowSelection ? 1 : 0;\n } else if (mergedExpandable.expandIconColumnIndex > 0 && rowSelection) {\n mergedExpandable.expandIconColumnIndex -= 1;\n }\n // Indent size\n if (typeof mergedExpandable.indentSize !== 'number') {\n mergedExpandable.indentSize = typeof indentSize === 'number' ? indentSize : 15;\n }\n // ============================ Render ============================\n const transformColumns = React.useCallback(innerColumns => transformTitleColumns(transformSelectionColumns(transformFilterColumns(transformSorterColumns(innerColumns)))), [transformSorterColumns, transformFilterColumns, transformSelectionColumns]);\n let topPaginationNode;\n let bottomPaginationNode;\n if (pagination !== false && (mergedPagination === null || mergedPagination === void 0 ? void 0 : mergedPagination.total)) {\n let paginationSize;\n if (mergedPagination.size) {\n paginationSize = mergedPagination.size;\n } else {\n paginationSize = mergedSize === 'small' || mergedSize === 'middle' ? 'small' : undefined;\n }\n const renderPagination = position => (/*#__PURE__*/React.createElement(Pagination, Object.assign({}, mergedPagination, {\n className: classNames(`${prefixCls}-pagination ${prefixCls}-pagination-${position}`, mergedPagination.className),\n size: paginationSize\n })));\n const defaultPosition = direction === 'rtl' ? 'left' : 'right';\n const {\n position\n } = mergedPagination;\n if (position !== null && Array.isArray(position)) {\n const topPos = position.find(p => p.includes('top'));\n const bottomPos = position.find(p => p.includes('bottom'));\n const isDisable = position.every(p => `${p}` === 'none');\n if (!topPos && !bottomPos && !isDisable) {\n bottomPaginationNode = renderPagination(defaultPosition);\n }\n if (topPos) {\n topPaginationNode = renderPagination(topPos.toLowerCase().replace('top', ''));\n }\n if (bottomPos) {\n bottomPaginationNode = renderPagination(bottomPos.toLowerCase().replace('bottom', ''));\n }\n } else {\n bottomPaginationNode = renderPagination(defaultPosition);\n }\n }\n // >>>>>>>>> Spinning\n let spinProps;\n if (typeof loading === 'boolean') {\n spinProps = {\n spinning: loading\n };\n } else if (typeof loading === 'object') {\n spinProps = Object.assign({\n spinning: true\n }, loading);\n }\n const wrapperClassNames = classNames(cssVarCls, rootCls, `${prefixCls}-wrapper`, table === null || table === void 0 ? void 0 : table.className, {\n [`${prefixCls}-wrapper-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId);\n const mergedStyle = Object.assign(Object.assign({}, table === null || table === void 0 ? void 0 : table.style), style);\n const emptyText = typeof (locale === null || locale === void 0 ? void 0 : locale.emptyText) !== 'undefined' ? locale.emptyText : (renderEmpty === null || renderEmpty === void 0 ? void 0 : renderEmpty('Table')) || /*#__PURE__*/React.createElement(DefaultRenderEmpty, {\n componentName: \"Table\"\n });\n // ========================== Render ==========================\n const TableComponent = virtual ? RcVirtualTable : RcTable;\n // >>> Virtual Table props. We set height here since it will affect height collection\n const virtualProps = {};\n const listItemHeight = React.useMemo(() => {\n const {\n fontSize,\n lineHeight,\n lineWidth,\n padding,\n paddingXS,\n paddingSM\n } = token;\n const fontHeight = Math.floor(fontSize * lineHeight);\n switch (mergedSize) {\n case 'middle':\n return paddingSM * 2 + fontHeight + lineWidth;\n case 'small':\n return paddingXS * 2 + fontHeight + lineWidth;\n default:\n return padding * 2 + fontHeight + lineWidth;\n }\n }, [token, mergedSize]);\n if (virtual) {\n virtualProps.listItemHeight = listItemHeight;\n }\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n ref: rootRef,\n className: wrapperClassNames,\n style: mergedStyle\n }, /*#__PURE__*/React.createElement(Spin, Object.assign({\n spinning: false\n }, spinProps), topPaginationNode, /*#__PURE__*/React.createElement(TableComponent, Object.assign({}, virtualProps, tableProps, {\n ref: tblRef,\n columns: mergedColumns,\n direction: direction,\n expandable: mergedExpandable,\n prefixCls: prefixCls,\n className: classNames({\n [`${prefixCls}-middle`]: mergedSize === 'middle',\n [`${prefixCls}-small`]: mergedSize === 'small',\n [`${prefixCls}-bordered`]: bordered,\n [`${prefixCls}-empty`]: rawData.length === 0\n }, cssVarCls, rootCls, hashId),\n data: pageData,\n rowKey: getRowKey,\n rowClassName: internalRowClassName,\n emptyText: emptyText,\n // Internal\n internalHooks: INTERNAL_HOOKS,\n internalRefs: internalRefs,\n transformColumns: transformColumns,\n getContainerWidth: getContainerWidth\n })), bottomPaginationNode)));\n};\nexport default /*#__PURE__*/React.forwardRef(InternalTable);","export default function useContainerWidth(prefixCls) {\n const getContainerWidth = (ele, width) => {\n const container = ele.querySelector(`.${prefixCls}-container`);\n let returnWidth = width;\n if (container) {\n const style = getComputedStyle(container);\n const borderLeft = parseInt(style.borderLeftWidth, 10);\n const borderRight = parseInt(style.borderRightWidth, 10);\n returnWidth = width - borderLeft - borderRight;\n }\n return returnWidth;\n };\n return getContainerWidth;\n}","import raf from \"rc-util/es/raf\";\nimport { easeInOutCubic } from './easings';\nimport getScroll, { isWindow } from './getScroll';\nexport default function scrollTo(y) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n getContainer = () => window,\n callback,\n duration = 450\n } = options;\n const container = getContainer();\n const scrollTop = getScroll(container);\n const startTime = Date.now();\n const frameFunc = () => {\n const timestamp = Date.now();\n const time = timestamp - startTime;\n const nextScrollTop = easeInOutCubic(time > duration ? duration : time, scrollTop, y, duration);\n if (isWindow(container)) {\n container.scrollTo(window.pageXOffset, nextScrollTop);\n } else if (container instanceof Document || container.constructor.name === 'HTMLDocument') {\n container.documentElement.scrollTop = nextScrollTop;\n } else {\n container.scrollTop = nextScrollTop;\n }\n if (time < duration) {\n raf(frameFunc);\n } else if (typeof callback === 'function') {\n callback();\n }\n };\n raf(frameFunc);\n}","export function easeInOutCubic(t, b, c, d) {\n const cc = c - b;\n // biome-ignore lint: it is a common easing function\n t /= d / 2;\n if (t < 1) {\n return cc / 2 * t * t * t + b;\n }\n // biome-ignore lint: it is a common easing function\n return cc / 2 * ((t -= 2) * t * t + 2) + b;\n}","\"use client\";\n\nimport * as React from 'react';\nimport { EXPAND_COLUMN, Summary } from 'rc-table';\nimport Column from './Column';\nimport ColumnGroup from './ColumnGroup';\nimport { SELECTION_ALL, SELECTION_COLUMN, SELECTION_INVERT, SELECTION_NONE } from './hooks/useSelection';\nimport InternalTable from './InternalTable';\nconst Table = (props, ref) => {\n const renderTimesRef = React.useRef(0);\n renderTimesRef.current += 1;\n return /*#__PURE__*/React.createElement(InternalTable, Object.assign({}, props, {\n ref: ref,\n _renderTimes: renderTimesRef.current\n }));\n};\nconst ForwardTable = /*#__PURE__*/React.forwardRef(Table);\nForwardTable.SELECTION_COLUMN = SELECTION_COLUMN;\nForwardTable.EXPAND_COLUMN = EXPAND_COLUMN;\nForwardTable.SELECTION_ALL = SELECTION_ALL;\nForwardTable.SELECTION_INVERT = SELECTION_INVERT;\nForwardTable.SELECTION_NONE = SELECTION_NONE;\nForwardTable.Column = Column;\nForwardTable.ColumnGroup = ColumnGroup;\nForwardTable.Summary = Summary;\nif (process.env.NODE_ENV !== 'production') {\n ForwardTable.displayName = 'Table';\n}\nexport default ForwardTable;","\"use client\";\n\nimport Table from './Table';\nexport default Table;","import { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { fetchOrderLifeCycle } from '../../Redux/slice/orderSlice'; // Adjust path as necessary\nimport { Table, Spin, message } from 'antd';\n\nconst OrderCycle = () => {\n const dispatch = useDispatch();\n const { lifeCycle, status, error } = useSelector((state) => state.order);\n\n useEffect(() => {\n // Fetch order life cycle options on mount\n const fetchData = async () => {\n try {\n await dispatch(fetchOrderLifeCycle()).unwrap();\n } catch (err) {\n message.error('Failed to fetch lifecycle states: ' + err);\n }\n };\n\n fetchData();\n }, [dispatch, error]); // Added error to the dependency array\n\n // Define columns for Ant Design Table\n const columns = [\n {\n title: 'Order Cycle',\n dataIndex: 'orderCycle',\n key: 'orderCycle',\n },\n {\n title: 'Updated At',\n dataIndex: 'updatedAt', // Assuming there's an updatedAt field\n key: 'updatedAt',\n render: (text) => new Date(text).toLocaleString(), // Format date\n },\n ];\n\n return (\n
    \n

    Order Lifecycle States

    \n {status === 'loading' ? (\n \n ) : (\n \n )}\n {error &&

    Error: {error}

    }\n
    \n );\n};\n\nexport default OrderCycle;\n","import * as React from 'react';\nexport default function useDebounce(value) {\n const [cacheValue, setCacheValue] = React.useState(value);\n React.useEffect(() => {\n const timeout = setTimeout(() => {\n setCacheValue(value);\n }, value.length ? 0 : 10);\n return () => {\n clearTimeout(timeout);\n };\n }, [value]);\n return cacheValue;\n}","const genFormValidateMotionStyle = token => {\n const {\n componentCls\n } = token;\n const helpCls = `${componentCls}-show-help`;\n const helpItemCls = `${componentCls}-show-help-item`;\n return {\n [helpCls]: {\n // Explain holder\n transition: `opacity ${token.motionDurationFast} ${token.motionEaseInOut}`,\n '&-appear, &-enter': {\n opacity: 0,\n '&-active': {\n opacity: 1\n }\n },\n '&-leave': {\n opacity: 1,\n '&-active': {\n opacity: 0\n }\n },\n // Explain\n [helpItemCls]: {\n overflow: 'hidden',\n transition: `height ${token.motionDurationFast} ${token.motionEaseInOut},\n opacity ${token.motionDurationFast} ${token.motionEaseInOut},\n transform ${token.motionDurationFast} ${token.motionEaseInOut} !important`,\n [`&${helpItemCls}-appear, &${helpItemCls}-enter`]: {\n transform: `translateY(-5px)`,\n opacity: 0,\n '&-active': {\n transform: 'translateY(0)',\n opacity: 1\n }\n },\n [`&${helpItemCls}-leave-active`]: {\n transform: `translateY(-5px)`\n }\n }\n }\n };\n};\nexport default genFormValidateMotionStyle;","import { unit } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { genCollapseMotion, zoomIn } from '../../style/motion';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genFormValidateMotionStyle from './explain';\nconst resetForm = token => ({\n legend: {\n display: 'block',\n width: '100%',\n marginBottom: token.marginLG,\n padding: 0,\n color: token.colorTextDescription,\n fontSize: token.fontSizeLG,\n lineHeight: 'inherit',\n border: 0,\n borderBottom: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`\n },\n 'input[type=\"search\"]': {\n boxSizing: 'border-box'\n },\n // Position radios and checkboxes better\n 'input[type=\"radio\"], input[type=\"checkbox\"]': {\n lineHeight: 'normal'\n },\n 'input[type=\"file\"]': {\n display: 'block'\n },\n // Make range inputs behave like textual form controls\n 'input[type=\"range\"]': {\n display: 'block',\n width: '100%'\n },\n // Make multiple select elements height not fixed\n 'select[multiple], select[size]': {\n height: 'auto'\n },\n // Focus for file, radio, and checkbox\n [`input[type='file']:focus,\n input[type='radio']:focus,\n input[type='checkbox']:focus`]: {\n outline: 0,\n boxShadow: `0 0 0 ${unit(token.controlOutlineWidth)} ${token.controlOutline}`\n },\n // Adjust output element\n output: {\n display: 'block',\n paddingTop: 15,\n color: token.colorText,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight\n }\n});\nconst genFormSize = (token, height) => {\n const {\n formItemCls\n } = token;\n return {\n [formItemCls]: {\n [`${formItemCls}-label > label`]: {\n height\n },\n [`${formItemCls}-control-input`]: {\n minHeight: height\n }\n }\n };\n};\nconst genFormStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [token.componentCls]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), resetForm(token)), {\n [`${componentCls}-text`]: {\n display: 'inline-block',\n paddingInlineEnd: token.paddingSM\n },\n // ================================================================\n // = Size =\n // ================================================================\n '&-small': Object.assign({}, genFormSize(token, token.controlHeightSM)),\n '&-large': Object.assign({}, genFormSize(token, token.controlHeightLG))\n })\n };\n};\nconst genFormItemStyle = token => {\n const {\n formItemCls,\n iconCls,\n componentCls,\n rootPrefixCls,\n antCls,\n labelRequiredMarkColor,\n labelColor,\n labelFontSize,\n labelHeight,\n labelColonMarginInlineStart,\n labelColonMarginInlineEnd,\n itemMarginBottom\n } = token;\n return {\n [formItemCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n marginBottom: itemMarginBottom,\n verticalAlign: 'top',\n '&-with-help': {\n transition: 'none'\n },\n [`&-hidden,\n &-hidden${antCls}-row`]: {\n // https://github.com/ant-design/ant-design/issues/26141\n display: 'none'\n },\n '&-has-warning': {\n [`${formItemCls}-split`]: {\n color: token.colorError\n }\n },\n '&-has-error': {\n [`${formItemCls}-split`]: {\n color: token.colorWarning\n }\n },\n // ==============================================================\n // = Label =\n // ==============================================================\n [`${formItemCls}-label`]: {\n flexGrow: 0,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textAlign: 'end',\n verticalAlign: 'middle',\n '&-left': {\n textAlign: 'start'\n },\n '&-wrap': {\n overflow: 'unset',\n lineHeight: token.lineHeight,\n whiteSpace: 'unset'\n },\n '> label': {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n maxWidth: '100%',\n height: labelHeight,\n color: labelColor,\n fontSize: labelFontSize,\n [`> ${iconCls}`]: {\n fontSize: token.fontSize,\n verticalAlign: 'top'\n },\n // Required mark\n [`&${formItemCls}-required:not(${formItemCls}-required-mark-optional)::before`]: {\n display: 'inline-block',\n marginInlineEnd: token.marginXXS,\n color: labelRequiredMarkColor,\n fontSize: token.fontSize,\n fontFamily: 'SimSun, sans-serif',\n lineHeight: 1,\n content: '\"*\"',\n [`${componentCls}-hide-required-mark &`]: {\n display: 'none'\n }\n },\n // Optional mark\n [`${formItemCls}-optional`]: {\n display: 'inline-block',\n marginInlineStart: token.marginXXS,\n color: token.colorTextDescription,\n [`${componentCls}-hide-required-mark &`]: {\n display: 'none'\n }\n },\n // Optional mark\n [`${formItemCls}-tooltip`]: {\n color: token.colorTextDescription,\n cursor: 'help',\n writingMode: 'horizontal-tb',\n marginInlineStart: token.marginXXS\n },\n '&::after': {\n content: '\":\"',\n position: 'relative',\n marginBlock: 0,\n marginInlineStart: labelColonMarginInlineStart,\n marginInlineEnd: labelColonMarginInlineEnd\n },\n [`&${formItemCls}-no-colon::after`]: {\n content: '\"\\\\a0\"'\n }\n }\n },\n // ==============================================================\n // = Input =\n // ==============================================================\n [`${formItemCls}-control`]: {\n ['--ant-display']: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n [`&:first-child:not([class^=\"'${rootPrefixCls}-col-'\"]):not([class*=\"' ${rootPrefixCls}-col-'\"])`]: {\n width: '100%'\n },\n '&-input': {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n minHeight: token.controlHeight,\n '&-content': {\n flex: 'auto',\n maxWidth: '100%'\n }\n }\n },\n // ==============================================================\n // = Explain =\n // ==============================================================\n [formItemCls]: {\n '&-additional': {\n display: 'flex',\n flexDirection: 'column'\n },\n '&-explain, &-extra': {\n clear: 'both',\n color: token.colorTextDescription,\n fontSize: token.fontSize,\n lineHeight: token.lineHeight\n },\n '&-explain-connected': {\n width: '100%'\n },\n '&-extra': {\n minHeight: token.controlHeightSM,\n transition: `color ${token.motionDurationMid} ${token.motionEaseOut}` // sync input color transition\n },\n '&-explain': {\n '&-error': {\n color: token.colorError\n },\n '&-warning': {\n color: token.colorWarning\n }\n }\n },\n [`&-with-help ${formItemCls}-explain`]: {\n height: 'auto',\n opacity: 1\n },\n // ==============================================================\n // = Feedback Icon =\n // ==============================================================\n [`${formItemCls}-feedback-icon`]: {\n fontSize: token.fontSize,\n textAlign: 'center',\n visibility: 'visible',\n animationName: zoomIn,\n animationDuration: token.motionDurationMid,\n animationTimingFunction: token.motionEaseOutBack,\n pointerEvents: 'none',\n '&-success': {\n color: token.colorSuccess\n },\n '&-error': {\n color: token.colorError\n },\n '&-warning': {\n color: token.colorWarning\n },\n '&-validating': {\n color: token.colorPrimary\n }\n }\n })\n };\n};\nconst genHorizontalStyle = (token, className) => {\n const {\n formItemCls\n } = token;\n return {\n [`${className}-horizontal`]: {\n [`${formItemCls}-label`]: {\n flexGrow: 0\n },\n [`${formItemCls}-control`]: {\n flex: '1 1 0',\n // https://github.com/ant-design/ant-design/issues/32777\n // https://github.com/ant-design/ant-design/issues/33773\n minWidth: 0\n },\n // Do not change this to `ant-col-24`! `-24` match all the responsive rules\n // https://github.com/ant-design/ant-design/issues/32980\n // https://github.com/ant-design/ant-design/issues/34903\n // https://github.com/ant-design/ant-design/issues/44538\n [`${formItemCls}-label[class$='-24'], ${formItemCls}-label[class*='-24 ']`]: {\n [`& + ${formItemCls}-control`]: {\n minWidth: 'unset'\n }\n }\n }\n };\n};\nconst genInlineStyle = token => {\n const {\n componentCls,\n formItemCls,\n inlineItemMarginBottom\n } = token;\n return {\n [`${componentCls}-inline`]: {\n display: 'flex',\n flexWrap: 'wrap',\n [formItemCls]: {\n flex: 'none',\n marginInlineEnd: token.margin,\n marginBottom: inlineItemMarginBottom,\n '&-row': {\n flexWrap: 'nowrap'\n },\n [`> ${formItemCls}-label,\n > ${formItemCls}-control`]: {\n display: 'inline-block',\n verticalAlign: 'top'\n },\n [`> ${formItemCls}-label`]: {\n flex: 'none'\n },\n [`${componentCls}-text`]: {\n display: 'inline-block'\n },\n [`${formItemCls}-has-feedback`]: {\n display: 'inline-block'\n }\n }\n }\n };\n};\nconst makeVerticalLayoutLabel = token => ({\n padding: token.verticalLabelPadding,\n margin: token.verticalLabelMargin,\n whiteSpace: 'initial',\n textAlign: 'start',\n '> label': {\n margin: 0,\n '&::after': {\n // https://github.com/ant-design/ant-design/issues/43538\n visibility: 'hidden'\n }\n }\n});\nconst makeVerticalLayout = token => {\n const {\n componentCls,\n formItemCls,\n rootPrefixCls\n } = token;\n return {\n [`${formItemCls} ${formItemCls}-label`]: makeVerticalLayoutLabel(token),\n // ref: https://github.com/ant-design/ant-design/issues/45122\n [`${componentCls}:not(${componentCls}-inline)`]: {\n [formItemCls]: {\n flexWrap: 'wrap',\n [`${formItemCls}-label, ${formItemCls}-control`]: {\n // When developer pass `xs: { span }`,\n // It should follow the `xs` screen config\n // ref: https://github.com/ant-design/ant-design/issues/44386\n [`&:not([class*=\" ${rootPrefixCls}-col-xs\"])`]: {\n flex: '0 0 100%',\n maxWidth: '100%'\n }\n }\n }\n }\n };\n};\nconst genVerticalStyle = token => {\n const {\n componentCls,\n formItemCls,\n antCls\n } = token;\n return {\n [`${componentCls}-vertical`]: {\n [`${formItemCls}:not(${formItemCls}-horizontal)`]: {\n [`${formItemCls}-row`]: {\n flexDirection: 'column'\n },\n [`${formItemCls}-label > label`]: {\n height: 'auto'\n },\n [`${formItemCls}-control`]: {\n width: '100%'\n },\n [`${formItemCls}-label,\n ${antCls}-col-24${formItemCls}-label,\n ${antCls}-col-xl-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n },\n [`@media (max-width: ${unit(token.screenXSMax)})`]: [makeVerticalLayout(token), {\n [componentCls]: {\n [`${formItemCls}:not(${formItemCls}-horizontal)`]: {\n [`${antCls}-col-xs-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }\n }],\n [`@media (max-width: ${unit(token.screenSMMax)})`]: {\n [componentCls]: {\n [`${formItemCls}:not(${formItemCls}-horizontal)`]: {\n [`${antCls}-col-sm-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }\n },\n [`@media (max-width: ${unit(token.screenMDMax)})`]: {\n [componentCls]: {\n [`${formItemCls}:not(${formItemCls}-horizontal)`]: {\n [`${antCls}-col-md-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }\n },\n [`@media (max-width: ${unit(token.screenLGMax)})`]: {\n [componentCls]: {\n [`${formItemCls}:not(${formItemCls}-horizontal)`]: {\n [`${antCls}-col-lg-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }\n }\n };\n};\nconst genItemVerticalStyle = token => {\n const {\n formItemCls,\n antCls\n } = token;\n return {\n [`${formItemCls}-vertical`]: {\n [`${formItemCls}-row`]: {\n flexDirection: 'column'\n },\n [`${formItemCls}-label > label`]: {\n height: 'auto'\n },\n [`${formItemCls}-control`]: {\n width: '100%'\n }\n },\n [`${formItemCls}-vertical ${formItemCls}-label,\n ${antCls}-col-24${formItemCls}-label,\n ${antCls}-col-xl-24${formItemCls}-label`]: makeVerticalLayoutLabel(token),\n [`@media (max-width: ${unit(token.screenXSMax)})`]: [makeVerticalLayout(token), {\n [formItemCls]: {\n [`${antCls}-col-xs-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }],\n [`@media (max-width: ${unit(token.screenSMMax)})`]: {\n [formItemCls]: {\n [`${antCls}-col-sm-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n },\n [`@media (max-width: ${unit(token.screenMDMax)})`]: {\n [formItemCls]: {\n [`${antCls}-col-md-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n },\n [`@media (max-width: ${unit(token.screenLGMax)})`]: {\n [formItemCls]: {\n [`${antCls}-col-lg-24${formItemCls}-label`]: makeVerticalLayoutLabel(token)\n }\n }\n };\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => ({\n labelRequiredMarkColor: token.colorError,\n labelColor: token.colorTextHeading,\n labelFontSize: token.fontSize,\n labelHeight: token.controlHeight,\n labelColonMarginInlineStart: token.marginXXS / 2,\n labelColonMarginInlineEnd: token.marginXS,\n itemMarginBottom: token.marginLG,\n verticalLabelPadding: `0 0 ${token.paddingXS}px`,\n verticalLabelMargin: 0,\n inlineItemMarginBottom: 0\n});\nexport const prepareToken = (token, rootPrefixCls) => {\n const formToken = mergeToken(token, {\n formItemCls: `${token.componentCls}-item`,\n rootPrefixCls\n });\n return formToken;\n};\nexport default genStyleHooks('Form', (token, _ref) => {\n let {\n rootPrefixCls\n } = _ref;\n const formToken = prepareToken(token, rootPrefixCls);\n return [genFormStyle(formToken), genFormItemStyle(formToken), genFormValidateMotionStyle(formToken), genHorizontalStyle(formToken, formToken.componentCls), genHorizontalStyle(formToken, formToken.formItemCls), genInlineStyle(formToken), genVerticalStyle(formToken), genItemVerticalStyle(formToken), genCollapseMotion(formToken), zoomIn];\n}, prepareComponentToken, {\n // Let From style before the Grid\n // ref https://github.com/ant-design/ant-design/issues/44386\n order: -1000\n});","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport CSSMotion, { CSSMotionList } from 'rc-motion';\nimport initCollapseMotion from '../_util/motion';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport { FormItemPrefixContext } from './context';\nimport useDebounce from './hooks/useDebounce';\nimport useStyle from './style';\nconst EMPTY_LIST = [];\nfunction toErrorEntity(error, prefix, errorStatus) {\n let index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n return {\n key: typeof error === 'string' ? error : `${prefix}-${index}`,\n error,\n errorStatus\n };\n}\nconst ErrorList = _ref => {\n let {\n help,\n helpStatus,\n errors = EMPTY_LIST,\n warnings = EMPTY_LIST,\n className: rootClassName,\n fieldId,\n onVisibleChanged\n } = _ref;\n const {\n prefixCls\n } = React.useContext(FormItemPrefixContext);\n const baseClassName = `${prefixCls}-item-explain`;\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const collapseMotion = React.useMemo(() => initCollapseMotion(prefixCls), [prefixCls]);\n // We have to debounce here again since somewhere use ErrorList directly still need no shaking\n // ref: https://github.com/ant-design/ant-design/issues/36336\n const debounceErrors = useDebounce(errors);\n const debounceWarnings = useDebounce(warnings);\n const fullKeyList = React.useMemo(() => {\n if (help !== undefined && help !== null) {\n return [toErrorEntity(help, 'help', helpStatus)];\n }\n return [].concat(_toConsumableArray(debounceErrors.map((error, index) => toErrorEntity(error, 'error', 'error', index))), _toConsumableArray(debounceWarnings.map((warning, index) => toErrorEntity(warning, 'warning', 'warning', index))));\n }, [help, helpStatus, debounceErrors, debounceWarnings]);\n const filledKeyFullKeyList = React.useMemo(() => {\n const keysCount = {};\n fullKeyList.forEach(_ref2 => {\n let {\n key\n } = _ref2;\n keysCount[key] = (keysCount[key] || 0) + 1;\n });\n return fullKeyList.map((entity, index) => Object.assign(Object.assign({}, entity), {\n key: keysCount[entity.key] > 1 ? `${entity.key}-fallback-${index}` : entity.key\n }));\n }, [fullKeyList]);\n const helpProps = {};\n if (fieldId) {\n helpProps.id = `${fieldId}_help`;\n }\n return wrapCSSVar(/*#__PURE__*/React.createElement(CSSMotion, {\n motionDeadline: collapseMotion.motionDeadline,\n motionName: `${prefixCls}-show-help`,\n visible: !!filledKeyFullKeyList.length,\n onVisibleChanged: onVisibleChanged\n }, holderProps => {\n const {\n className: holderClassName,\n style: holderStyle\n } = holderProps;\n return /*#__PURE__*/React.createElement(\"div\", Object.assign({}, helpProps, {\n className: classNames(baseClassName, holderClassName, cssVarCls, rootCls, rootClassName, hashId),\n style: holderStyle\n }), /*#__PURE__*/React.createElement(CSSMotionList, Object.assign({\n keys: filledKeyFullKeyList\n }, initCollapseMotion(prefixCls), {\n motionName: `${prefixCls}-show-help-item`,\n component: false\n }), itemProps => {\n const {\n key,\n error,\n errorStatus,\n className: itemClassName,\n style: itemStyle\n } = itemProps;\n return /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n className: classNames(itemClassName, {\n [`${baseClassName}-${errorStatus}`]: errorStatus\n }),\n style: itemStyle\n }, error);\n }));\n }));\n};\nexport default ErrorList;","// Compute what scrolling needs to be done on required scrolling boxes for target to be in view\n\n// The type names here are named after the spec to make it easier to find more information around what they mean:\n// To reduce churn and reduce things that need be maintained things from the official TS DOM library is used here\n// https://drafts.csswg.org/cssom-view/\n\n// For a definition on what is \"block flow direction\" exactly, check this: https://drafts.csswg.org/css-writing-modes-4/#block-flow-direction\n\n/**\n * This new option is tracked in this PR, which is the most likely candidate at the time: https://github.com/w3c/csswg-drafts/pull/1805\n * @public\n */\nexport type ScrollMode = 'always' | 'if-needed'\n\n/** @public */\nexport interface Options {\n /**\n * Control the logical scroll position on the y-axis. The spec states that the `block` direction is related to the [writing-mode](https://developer.mozilla.org/en-US/docs/Web/CSS/writing-mode), but this is not implemented yet in this library.\n * This means that `block: 'start'` aligns to the top edge and `block: 'end'` to the bottom.\n * @defaultValue 'center'\n */\n block?: ScrollLogicalPosition\n /**\n * Like `block` this is affected by the [writing-mode](https://developer.mozilla.org/en-US/docs/Web/CSS/writing-mode). In left-to-right pages `inline: 'start'` will align to the left edge. In right-to-left it should be flipped. This will be supported in a future release.\n * @defaultValue 'nearest'\n */\n inline?: ScrollLogicalPosition\n /**\n * This is a proposed addition to the spec that you can track here: https://github.com/w3c/csswg-drafts/pull/5677\n *\n * This library will be updated to reflect any changes to the spec and will provide a migration path.\n * To be backwards compatible with `Element.scrollIntoViewIfNeeded` if something is not 100% visible it will count as \"needs scrolling\". If you need a different visibility ratio your best option would be to implement an [Intersection Observer](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API).\n * @defaultValue 'always'\n */\n scrollMode?: ScrollMode\n /**\n * By default there is no boundary. All the parent elements of your target is checked until it reaches the viewport ([`document.scrollingElement`](https://developer.mozilla.org/en-US/docs/Web/API/document/scrollingElement)) when calculating layout and what to scroll.\n * By passing a boundary you can short-circuit this loop depending on your needs:\n * \n * - Prevent the browser window from scrolling.\n * - Scroll elements into view in a list, without scrolling container elements.\n * \n * You can also pass a function to do more dynamic checks to override the scroll scoping:\n * \n * ```js\n * let actions = compute(target, {\n * boundary: (parent) => {\n * // By default `overflow: hidden` elements are allowed, only `overflow: visible | clip` is skipped as\n * // this is required by the CSSOM spec\n * if (getComputedStyle(parent)['overflow'] === 'hidden') {\n * return false\n * }\n\n * return true\n * },\n * })\n * ```\n * @defaultValue null\n */\n boundary?: Element | ((parent: Element) => boolean) | null\n /**\n * New option that skips auto-scrolling all nodes with overflow: hidden set\n * See FF implementation: https://hg.mozilla.org/integration/fx-team/rev/c48c3ec05012#l7.18\n * @defaultValue false\n * @public\n */\n skipOverflowHiddenElements?: boolean\n}\n\n/** @public */\nexport interface ScrollAction {\n el: Element\n top: number\n left: number\n}\n\n// @TODO better shadowdom test, 11 = document fragment\nconst isElement = (el: any): el is Element =>\n typeof el === 'object' && el != null && el.nodeType === 1\n\nconst canOverflow = (\n overflow: string | null,\n skipOverflowHiddenElements?: boolean\n) => {\n if (skipOverflowHiddenElements && overflow === 'hidden') {\n return false\n }\n\n return overflow !== 'visible' && overflow !== 'clip'\n}\n\nconst getFrameElement = (el: Element) => {\n if (!el.ownerDocument || !el.ownerDocument.defaultView) {\n return null\n }\n\n try {\n return el.ownerDocument.defaultView.frameElement\n } catch (e) {\n return null\n }\n}\n\nconst isHiddenByFrame = (el: Element): boolean => {\n const frame = getFrameElement(el)\n if (!frame) {\n return false\n }\n\n return (\n frame.clientHeight < el.scrollHeight || frame.clientWidth < el.scrollWidth\n )\n}\n\nconst isScrollable = (el: Element, skipOverflowHiddenElements?: boolean) => {\n if (el.clientHeight < el.scrollHeight || el.clientWidth < el.scrollWidth) {\n const style = getComputedStyle(el, null)\n return (\n canOverflow(style.overflowY, skipOverflowHiddenElements) ||\n canOverflow(style.overflowX, skipOverflowHiddenElements) ||\n isHiddenByFrame(el)\n )\n }\n\n return false\n}\n/**\n * Find out which edge to align against when logical scroll position is \"nearest\"\n * Interesting fact: \"nearest\" works similarily to \"if-needed\", if the element is fully visible it will not scroll it\n *\n * Legends:\n * ┌────────┐ ┏ ━ ━ ━ ┓\n * │ target │ frame\n * └────────┘ ┗ ━ ━ ━ ┛\n */\nconst alignNearest = (\n scrollingEdgeStart: number,\n scrollingEdgeEnd: number,\n scrollingSize: number,\n scrollingBorderStart: number,\n scrollingBorderEnd: number,\n elementEdgeStart: number,\n elementEdgeEnd: number,\n elementSize: number\n) => {\n /**\n * If element edge A and element edge B are both outside scrolling box edge A and scrolling box edge B\n *\n * ┌──┐\n * ┏━│━━│━┓\n * │ │\n * ┃ │ │ ┃ do nothing\n * │ │\n * ┗━│━━│━┛\n * └──┘\n *\n * If element edge C and element edge D are both outside scrolling box edge C and scrolling box edge D\n *\n * ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐\n * │┃ ┃│ do nothing\n * └───────────┘\n * ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart < scrollingEdgeStart &&\n elementEdgeEnd > scrollingEdgeEnd) ||\n (elementEdgeStart > scrollingEdgeStart && elementEdgeEnd < scrollingEdgeEnd)\n ) {\n return 0\n }\n\n /**\n * If element edge A is outside scrolling box edge A and element height is less than scrolling box height\n *\n * ┌──┐\n * ┏━│━━│━┓ ┏━┌━━┐━┓\n * └──┘ │ │\n * from ┃ ┃ to ┃ └──┘ ┃\n *\n * ┗━ ━━ ━┛ ┗━ ━━ ━┛\n *\n * If element edge B is outside scrolling box edge B and element height is greater than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━┌━━┐━┓\n * │ │\n * from ┃ ┌──┐ ┃ to ┃ │ │ ┃\n * │ │ │ │\n * ┗━│━━│━┛ ┗━│━━│━┛\n * │ │ └──┘\n * │ │\n * └──┘\n *\n * If element edge C is outside scrolling box edge C and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * │ ┃ │ ┃ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * ┃ │ ┃ │ ┃ ┃ │\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n */\n if (\n (elementEdgeStart <= scrollingEdgeStart && elementSize <= scrollingSize) ||\n (elementEdgeEnd >= scrollingEdgeEnd && elementSize >= scrollingSize)\n ) {\n return elementEdgeStart - scrollingEdgeStart - scrollingBorderStart\n }\n\n /**\n * If element edge B is outside scrolling box edge B and element height is less than scrolling box height\n *\n * ┏━ ━━ ━┓ ┏━ ━━ ━┓\n *\n * from ┃ ┃ to ┃ ┌──┐ ┃\n * ┌──┐ │ │\n * ┗━│━━│━┛ ┗━└━━┘━┛\n * └──┘\n *\n * If element edge A is outside scrolling box edge A and element height is greater than scrolling box height\n *\n * ┌──┐\n * │ │\n * │ │ ┌──┐\n * ┏━│━━│━┓ ┏━│━━│━┓\n * │ │ │ │\n * from ┃ └──┘ ┃ to ┃ │ │ ┃\n * │ │\n * ┗━ ━━ ━┛ ┗━└━━┘━┛\n *\n * If element edge C is outside scrolling box edge C and element width is greater than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───────────┐ ┌───────────┐\n * │ ┃ │ ┃ │ ┃ ┃\n * └───────────┘ └───────────┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n * If element edge D is outside scrolling box edge D and element width is less than scrolling box width\n *\n * from to\n * ┏ ━ ━ ━ ━ ┓ ┏ ━ ━ ━ ━ ┓\n * ┌───┐ ┌───┐\n * ┃ │ ┃ │ ┃ │ ┃\n * └───┘ └───┘\n * ┗ ━ ━ ━ ━ ┛ ┗ ━ ━ ━ ━ ┛\n *\n */\n if (\n (elementEdgeEnd > scrollingEdgeEnd && elementSize < scrollingSize) ||\n (elementEdgeStart < scrollingEdgeStart && elementSize > scrollingSize)\n ) {\n return elementEdgeEnd - scrollingEdgeEnd + scrollingBorderEnd\n }\n\n return 0\n}\n\nconst getParentElement = (element: Node): Element | null => {\n const parent = element.parentElement\n if (parent == null) {\n return (element.getRootNode() as ShadowRoot).host || null\n }\n return parent\n}\n\nconst getScrollMargins = (target: Element) => {\n const computedStyle = window.getComputedStyle(target)\n return {\n top: parseFloat(computedStyle.scrollMarginTop) || 0,\n right: parseFloat(computedStyle.scrollMarginRight) || 0,\n bottom: parseFloat(computedStyle.scrollMarginBottom) || 0,\n left: parseFloat(computedStyle.scrollMarginLeft) || 0,\n }\n}\n\n/** @public */\nexport const compute = (target: Element, options: Options): ScrollAction[] => {\n if (typeof document === 'undefined') {\n // If there's no DOM we assume it's not in a browser environment\n return []\n }\n\n const { scrollMode, block, inline, boundary, skipOverflowHiddenElements } =\n options\n // Allow using a callback to check the boundary\n // The default behavior is to check if the current target matches the boundary element or not\n // If undefined it'll check that target is never undefined (can happen as we recurse up the tree)\n const checkBoundary =\n typeof boundary === 'function' ? boundary : (node: any) => node !== boundary\n\n if (!isElement(target)) {\n throw new TypeError('Invalid target')\n }\n\n // Used to handle the top most element that can be scrolled\n const scrollingElement = document.scrollingElement || document.documentElement\n\n // Collect all the scrolling boxes, as defined in the spec: https://drafts.csswg.org/cssom-view/#scrolling-box\n const frames: Element[] = []\n let cursor: Element | null = target\n while (isElement(cursor) && checkBoundary(cursor)) {\n // Move cursor to parent\n cursor = getParentElement(cursor)\n\n // Stop when we reach the viewport\n if (cursor === scrollingElement) {\n frames.push(cursor)\n break\n }\n\n // Skip document.body if it's not the scrollingElement and documentElement isn't independently scrollable\n if (\n cursor != null &&\n cursor === document.body &&\n isScrollable(cursor) &&\n !isScrollable(document.documentElement)\n ) {\n continue\n }\n\n // Now we check if the element is scrollable, this code only runs if the loop haven't already hit the viewport or a custom boundary\n if (cursor != null && isScrollable(cursor, skipOverflowHiddenElements)) {\n frames.push(cursor)\n }\n }\n\n // Support pinch-zooming properly, making sure elements scroll into the visual viewport\n // Browsers that don't support visualViewport will report the layout viewport dimensions on document.documentElement.clientWidth/Height\n // and viewport dimensions on window.innerWidth/Height\n // https://www.quirksmode.org/mobile/viewports2.html\n // https://bokand.github.io/viewport/index.html\n const viewportWidth = window.visualViewport?.width ?? innerWidth\n const viewportHeight = window.visualViewport?.height ?? innerHeight\n const { scrollX, scrollY } = window\n\n const {\n height: targetHeight,\n width: targetWidth,\n top: targetTop,\n right: targetRight,\n bottom: targetBottom,\n left: targetLeft,\n } = target.getBoundingClientRect()\n const {\n top: marginTop,\n right: marginRight,\n bottom: marginBottom,\n left: marginLeft,\n } = getScrollMargins(target)\n\n // These values mutate as we loop through and generate scroll coordinates\n let targetBlock: number =\n block === 'start' || block === 'nearest'\n ? targetTop - marginTop\n : block === 'end'\n ? targetBottom + marginBottom\n : targetTop + targetHeight / 2 - marginTop + marginBottom // block === 'center\n let targetInline: number =\n inline === 'center'\n ? targetLeft + targetWidth / 2 - marginLeft + marginRight\n : inline === 'end'\n ? targetRight + marginRight\n : targetLeft - marginLeft // inline === 'start || inline === 'nearest\n\n // Collect new scroll positions\n const computations: ScrollAction[] = []\n // In chrome there's no longer a difference between caching the `frames.length` to a var or not, so we don't in this case (size > speed anyways)\n for (let index = 0; index < frames.length; index++) {\n const frame = frames[index]\n\n // @TODO add a shouldScroll hook here that allows userland code to take control\n\n const { height, width, top, right, bottom, left } =\n frame.getBoundingClientRect()\n\n // If the element is already visible we can end it here\n // @TODO targetBlock and targetInline should be taken into account to be compliant with https://github.com/w3c/csswg-drafts/pull/1805/files#diff-3c17f0e43c20f8ecf89419d49e7ef5e0R1333\n if (\n scrollMode === 'if-needed' &&\n targetTop >= 0 &&\n targetLeft >= 0 &&\n targetBottom <= viewportHeight &&\n targetRight <= viewportWidth &&\n // scrollingElement is added to the frames array even if it's not scrollable, in which case checking its bounds is not required\n ((frame === scrollingElement && !isScrollable(frame)) ||\n (targetTop >= top &&\n targetBottom <= bottom &&\n targetLeft >= left &&\n targetRight <= right))\n ) {\n // Break the loop and return the computations for things that are not fully visible\n return computations\n }\n\n const frameStyle = getComputedStyle(frame)\n const borderLeft = parseInt(frameStyle.borderLeftWidth as string, 10)\n const borderTop = parseInt(frameStyle.borderTopWidth as string, 10)\n const borderRight = parseInt(frameStyle.borderRightWidth as string, 10)\n const borderBottom = parseInt(frameStyle.borderBottomWidth as string, 10)\n\n let blockScroll: number = 0\n let inlineScroll: number = 0\n\n // The property existance checks for offfset[Width|Height] is because only HTMLElement objects have them, but any Element might pass by here\n // @TODO find out if the \"as HTMLElement\" overrides can be dropped\n const scrollbarWidth =\n 'offsetWidth' in frame\n ? (frame as HTMLElement).offsetWidth -\n (frame as HTMLElement).clientWidth -\n borderLeft -\n borderRight\n : 0\n const scrollbarHeight =\n 'offsetHeight' in frame\n ? (frame as HTMLElement).offsetHeight -\n (frame as HTMLElement).clientHeight -\n borderTop -\n borderBottom\n : 0\n\n const scaleX =\n 'offsetWidth' in frame\n ? (frame as HTMLElement).offsetWidth === 0\n ? 0\n : width / (frame as HTMLElement).offsetWidth\n : 0\n const scaleY =\n 'offsetHeight' in frame\n ? (frame as HTMLElement).offsetHeight === 0\n ? 0\n : height / (frame as HTMLElement).offsetHeight\n : 0\n\n if (scrollingElement === frame) {\n // Handle viewport logic (document.documentElement or document.body)\n\n if (block === 'start') {\n blockScroll = targetBlock\n } else if (block === 'end') {\n blockScroll = targetBlock - viewportHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n scrollY,\n scrollY + viewportHeight,\n viewportHeight,\n borderTop,\n borderBottom,\n scrollY + targetBlock,\n scrollY + targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - viewportHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline\n } else if (inline === 'center') {\n inlineScroll = targetInline - viewportWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - viewportWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n scrollX,\n scrollX + viewportWidth,\n viewportWidth,\n borderLeft,\n borderRight,\n scrollX + targetInline,\n scrollX + targetInline + targetWidth,\n targetWidth\n )\n }\n\n // Apply scroll position offsets and ensure they are within bounds\n // @TODO add more test cases to cover this 100%\n blockScroll = Math.max(0, blockScroll + scrollY)\n inlineScroll = Math.max(0, inlineScroll + scrollX)\n } else {\n // Handle each scrolling frame that might exist between the target and the viewport\n if (block === 'start') {\n blockScroll = targetBlock - top - borderTop\n } else if (block === 'end') {\n blockScroll = targetBlock - bottom + borderBottom + scrollbarHeight\n } else if (block === 'nearest') {\n blockScroll = alignNearest(\n top,\n bottom,\n height,\n borderTop,\n borderBottom + scrollbarHeight,\n targetBlock,\n targetBlock + targetHeight,\n targetHeight\n )\n } else {\n // block === 'center' is the default\n blockScroll = targetBlock - (top + height / 2) + scrollbarHeight / 2\n }\n\n if (inline === 'start') {\n inlineScroll = targetInline - left - borderLeft\n } else if (inline === 'center') {\n inlineScroll = targetInline - (left + width / 2) + scrollbarWidth / 2\n } else if (inline === 'end') {\n inlineScroll = targetInline - right + borderRight + scrollbarWidth\n } else {\n // inline === 'nearest' is the default\n inlineScroll = alignNearest(\n left,\n right,\n width,\n borderLeft,\n borderRight + scrollbarWidth,\n targetInline,\n targetInline + targetWidth,\n targetWidth\n )\n }\n\n const { scrollLeft, scrollTop } = frame\n // Ensure scroll coordinates are not out of bounds while applying scroll offsets\n blockScroll =\n scaleY === 0\n ? 0\n : Math.max(\n 0,\n Math.min(\n scrollTop + blockScroll / scaleY,\n frame.scrollHeight - height / scaleY + scrollbarHeight\n )\n )\n inlineScroll =\n scaleX === 0\n ? 0\n : Math.max(\n 0,\n Math.min(\n scrollLeft + inlineScroll / scaleX,\n frame.scrollWidth - width / scaleX + scrollbarWidth\n )\n )\n\n // Cache the offset so that parent frames can scroll this into view correctly\n targetBlock += scrollTop - blockScroll\n targetInline += scrollLeft - inlineScroll\n }\n\n computations.push({ el: frame, top: blockScroll, left: inlineScroll })\n }\n\n return computations\n}\n","import { compute } from 'compute-scroll-into-view'\nimport type {\n Options as BaseOptions,\n ScrollAction,\n} from 'compute-scroll-into-view'\n\n/** @public */\nexport type Options =\n | StandardBehaviorOptions\n | CustomBehaviorOptions\n\n/**\n * Only scrolls if the `node` is partially out of view:\n * ```ts\n * scrollIntoView(node, { scrollMode: 'if-needed' })\n * ```\n * Skips scrolling `overflow: hidden` elements:\n * ```ts\n * scrollIntoView(node, { skipOverflowHiddenElements: true })\n * ```\n * When scrolling is needed do the least and smoothest scrolling possible:\n * ```ts\n * scrollIntoView(node, {\n * behavior: 'smooth',\n * scrollMode: 'if-needed',\n * block: 'nearest',\n * inline: 'nearest',\n * })\n * ```\n * @public\n */\nexport interface StandardBehaviorOptions extends BaseOptions {\n /**\n * @defaultValue 'auto\n */\n behavior?: ScrollBehavior\n}\n\n/** @public */\nexport interface CustomBehaviorOptions extends BaseOptions {\n behavior: CustomScrollBehaviorCallback\n}\n\n/** @public */\nexport type CustomScrollBehaviorCallback = (\n actions: ScrollAction[]\n) => T\n\nconst isStandardScrollBehavior = (\n options: any\n): options is StandardBehaviorOptions =>\n options === Object(options) && Object.keys(options).length !== 0\n\nconst isCustomScrollBehavior = (\n options: any\n): options is CustomBehaviorOptions =>\n typeof options === 'object' ? typeof options.behavior === 'function' : false\n\nconst getOptions = (options: any): StandardBehaviorOptions => {\n // Handle alignToTop for legacy reasons, to be compatible with the spec\n if (options === false) {\n return { block: 'end', inline: 'nearest' }\n }\n\n if (isStandardScrollBehavior(options)) {\n // compute.ts ensures the defaults are block: 'center' and inline: 'nearest', to conform to the spec\n return options\n }\n\n // if options = {}, options = true or options = null, based on w3c web platform test\n return { block: 'start', inline: 'nearest' }\n}\n\nconst getScrollMargins = (target: Element) => {\n const computedStyle = window.getComputedStyle(target)\n return {\n top: parseFloat(computedStyle.scrollMarginTop) || 0,\n right: parseFloat(computedStyle.scrollMarginRight) || 0,\n bottom: parseFloat(computedStyle.scrollMarginBottom) || 0,\n left: parseFloat(computedStyle.scrollMarginLeft) || 0,\n }\n}\n\n// Determine if the element is part of the document (including shadow dom)\n// Derived from code of Andy Desmarais\n// https://terodox.tech/how-to-tell-if-an-element-is-in-the-dom-including-the-shadow-dom/\nconst isInDocument = (element: Node) => {\n let currentElement = element\n while (currentElement && currentElement.parentNode) {\n if (currentElement.parentNode === document) {\n return true\n } else if (currentElement.parentNode instanceof ShadowRoot) {\n currentElement = (currentElement.parentNode as ShadowRoot).host\n } else {\n currentElement = currentElement.parentNode\n }\n }\n return false\n}\n\n/**\n * Scrolls the given element into view, with options for when, and how.\n * Supports the same `options` as [`Element.prototype.scrollIntoView`](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView) with additions such as `scrollMode`, `behavior: Function` and `skipOverflowHiddenElements`.\n * @public\n */\nfunction scrollIntoView(\n target: Element,\n options?: StandardBehaviorOptions | boolean\n): void\n/**\n * Scrolls the given element into view, with options for when, and how.\n * Supports the same `options` as [`Element.prototype.scrollIntoView`](https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView) with additions such as `scrollMode`, `behavior: Function` and `skipOverflowHiddenElements`.\n *\n * You can set the expected return type for `behavior: Function`:\n * ```ts\n * await scrollIntoView>(node, {\n * behavior: async actions => {\n * return Promise.all(actions.map(\n * // animate() resolves to `true` if anything was animated, `false` if the element already were in the end state\n * ({ el, left, top }) => animate(el, {scroll: {left, top}})\n * ))\n * }\n * })\n * ```\n * @public\n */\nfunction scrollIntoView(\n target: Element,\n options: CustomBehaviorOptions\n): T\nfunction scrollIntoView(\n target: Element,\n options?: StandardBehaviorOptions | CustomBehaviorOptions | boolean\n): T | void {\n // Browsers treats targets that aren't in the dom as a no-op and so should we\n if (!target.isConnected || !isInDocument(target)) {\n return\n }\n\n const margins = getScrollMargins(target)\n\n if (isCustomScrollBehavior(options)) {\n return options.behavior(compute(target, options))\n }\n\n const behavior = typeof options === 'boolean' ? undefined : options?.behavior\n\n for (const { el, top, left } of compute(target, getOptions(options))) {\n const adjustedTop = top - margins.top + margins.bottom\n const adjustedLeft = left - margins.left + margins.right\n el.scroll({ top: adjustedTop, left: adjustedLeft, behavior })\n }\n}\n\nexport default scrollIntoView\n","// form item name black list. in form ,you can use form.id get the form item element.\n// use object hasOwnProperty will get better performance if black list is longer.\nconst formItemNameBlackList = ['parentNode'];\n// default form item id prefix.\nconst defaultItemNamePrefixCls = 'form_item';\nexport function toArray(candidate) {\n if (candidate === undefined || candidate === false) return [];\n return Array.isArray(candidate) ? candidate : [candidate];\n}\nexport function getFieldId(namePath, formName) {\n if (!namePath.length) {\n return undefined;\n }\n const mergedId = namePath.join('_');\n if (formName) {\n return `${formName}_${mergedId}`;\n }\n const isIllegalName = formItemNameBlackList.includes(mergedId);\n return isIllegalName ? `${defaultItemNamePrefixCls}_${mergedId}` : mergedId;\n}\n/**\n * Get merged status by meta or passed `validateStatus`.\n */\nexport function getStatus(errors, warnings, meta, defaultValidateStatus, hasFeedback, validateStatus) {\n let status = defaultValidateStatus;\n if (validateStatus !== undefined) {\n status = validateStatus;\n } else if (meta.validating) {\n status = 'validating';\n } else if (errors.length) {\n status = 'error';\n } else if (warnings.length) {\n status = 'warning';\n } else if (meta.touched || hasFeedback && meta.validated) {\n // success feedback should display when pass hasFeedback prop and current value is valid value\n status = 'success';\n }\n return status;\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { useForm as useRcForm } from 'rc-field-form';\nimport { getDOM } from \"rc-util/es/Dom/findDOMNode\";\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport { getFieldId, toArray } from '../util';\nfunction toNamePathStr(name) {\n const namePath = toArray(name);\n return namePath.join('_');\n}\nfunction getFieldDOMNode(name, wrapForm) {\n const field = wrapForm.getFieldInstance(name);\n const fieldDom = getDOM(field);\n if (fieldDom) {\n return fieldDom;\n }\n const fieldId = getFieldId(toArray(name), wrapForm.__INTERNAL__.name);\n if (fieldId) {\n return document.getElementById(fieldId);\n }\n}\nexport default function useForm(form) {\n const [rcForm] = useRcForm();\n const itemsRef = React.useRef({});\n const wrapForm = React.useMemo(() => form !== null && form !== void 0 ? form : Object.assign(Object.assign({}, rcForm), {\n __INTERNAL__: {\n itemRef: name => node => {\n const namePathStr = toNamePathStr(name);\n if (node) {\n itemsRef.current[namePathStr] = node;\n } else {\n delete itemsRef.current[namePathStr];\n }\n }\n },\n scrollToField: function (name) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n focus\n } = options,\n restOpt = __rest(options, [\"focus\"]);\n const node = getFieldDOMNode(name, wrapForm);\n if (node) {\n scrollIntoView(node, Object.assign({\n scrollMode: 'if-needed',\n block: 'nearest'\n }, restOpt));\n // Focus if scroll success\n if (focus) {\n wrapForm.focusField(name);\n }\n }\n },\n focusField: name => {\n var _a, _b;\n const itemRef = wrapForm.getFieldInstance(name);\n if (typeof (itemRef === null || itemRef === void 0 ? void 0 : itemRef.focus) === 'function') {\n itemRef.focus();\n } else {\n (_b = (_a = getFieldDOMNode(name, wrapForm)) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n },\n getFieldInstance: name => {\n const namePathStr = toNamePathStr(name);\n return itemsRef.current[namePathStr];\n }\n }), [form, rcForm]);\n return [wrapForm];\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport FieldForm, { List, useWatch } from 'rc-field-form';\nimport { useComponentConfig } from '../config-provider/context';\nimport DisabledContext, { DisabledContextProvider } from '../config-provider/DisabledContext';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useSize from '../config-provider/hooks/useSize';\nimport SizeContext from '../config-provider/SizeContext';\nimport { FormContext, FormProvider, VariantContext } from './context';\nimport useForm from './hooks/useForm';\nimport useFormWarning from './hooks/useFormWarning';\nimport useStyle from './style';\nimport ValidateMessagesContext from './validateMessagesContext';\nconst InternalForm = (props, ref) => {\n const contextDisabled = React.useContext(DisabledContext);\n const {\n getPrefixCls,\n direction,\n requiredMark: contextRequiredMark,\n colon: contextColon,\n scrollToFirstError: contextScrollToFirstError,\n className: contextClassName,\n style: contextStyle\n } = useComponentConfig('form');\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n size,\n disabled = contextDisabled,\n form,\n colon,\n labelAlign,\n labelWrap,\n labelCol,\n wrapperCol,\n hideRequiredMark,\n layout = 'horizontal',\n scrollToFirstError,\n requiredMark,\n onFinishFailed,\n name,\n style,\n feedbackIcons,\n variant\n } = props,\n restFormProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"size\", \"disabled\", \"form\", \"colon\", \"labelAlign\", \"labelWrap\", \"labelCol\", \"wrapperCol\", \"hideRequiredMark\", \"layout\", \"scrollToFirstError\", \"requiredMark\", \"onFinishFailed\", \"name\", \"style\", \"feedbackIcons\", \"variant\"]);\n const mergedSize = useSize(size);\n const contextValidateMessages = React.useContext(ValidateMessagesContext);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useFormWarning(props);\n }\n const mergedRequiredMark = React.useMemo(() => {\n if (requiredMark !== undefined) {\n return requiredMark;\n }\n if (hideRequiredMark) {\n return false;\n }\n if (contextRequiredMark !== undefined) {\n return contextRequiredMark;\n }\n return true;\n }, [hideRequiredMark, requiredMark, contextRequiredMark]);\n const mergedColon = colon !== null && colon !== void 0 ? colon : contextColon;\n const prefixCls = getPrefixCls('form', customizePrefixCls);\n // Style\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const formClassName = classNames(prefixCls, `${prefixCls}-${layout}`, {\n [`${prefixCls}-hide-required-mark`]: mergedRequiredMark === false,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-${mergedSize}`]: mergedSize\n }, cssVarCls, rootCls, hashId, contextClassName, className, rootClassName);\n const [wrapForm] = useForm(form);\n const {\n __INTERNAL__\n } = wrapForm;\n __INTERNAL__.name = name;\n const formContextValue = React.useMemo(() => ({\n name,\n labelAlign,\n labelCol,\n labelWrap,\n wrapperCol,\n vertical: layout === 'vertical',\n colon: mergedColon,\n requiredMark: mergedRequiredMark,\n itemRef: __INTERNAL__.itemRef,\n form: wrapForm,\n feedbackIcons\n }), [name, labelAlign, labelCol, wrapperCol, layout, mergedColon, mergedRequiredMark, wrapForm, feedbackIcons]);\n const nativeElementRef = React.useRef(null);\n React.useImperativeHandle(ref, () => {\n var _a;\n return Object.assign(Object.assign({}, wrapForm), {\n nativeElement: (_a = nativeElementRef.current) === null || _a === void 0 ? void 0 : _a.nativeElement\n });\n });\n const scrollToField = (options, fieldName) => {\n if (options) {\n let defaultScrollToFirstError = {\n block: 'nearest'\n };\n if (typeof options === 'object') {\n defaultScrollToFirstError = Object.assign(Object.assign({}, defaultScrollToFirstError), options);\n }\n wrapForm.scrollToField(fieldName, defaultScrollToFirstError);\n }\n };\n const onInternalFinishFailed = errorInfo => {\n onFinishFailed === null || onFinishFailed === void 0 ? void 0 : onFinishFailed(errorInfo);\n if (errorInfo.errorFields.length) {\n const fieldName = errorInfo.errorFields[0].name;\n if (scrollToFirstError !== undefined) {\n scrollToField(scrollToFirstError, fieldName);\n return;\n }\n if (contextScrollToFirstError !== undefined) {\n scrollToField(contextScrollToFirstError, fieldName);\n }\n }\n };\n return wrapCSSVar(/*#__PURE__*/React.createElement(VariantContext.Provider, {\n value: variant\n }, /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: disabled\n }, /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: mergedSize\n }, /*#__PURE__*/React.createElement(FormProvider, {\n // This is not list in API, we pass with spread\n validateMessages: contextValidateMessages\n }, /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: formContextValue\n }, /*#__PURE__*/React.createElement(FieldForm, Object.assign({\n id: name\n }, restFormProps, {\n name: name,\n onFinishFailed: onInternalFinishFailed,\n form: wrapForm,\n ref: nativeElementRef,\n style: Object.assign(Object.assign({}, contextStyle), style),\n className: formClassName\n }))))))));\n};\nconst Form = /*#__PURE__*/React.forwardRef(InternalForm);\nif (process.env.NODE_ENV !== 'production') {\n Form.displayName = 'Form';\n}\nexport { List, useForm, useWatch };\nexport default Form;","import * as React from 'react';\nimport { devUseWarning } from '../../_util/warning';\nimport { FormItemInputContext } from '../context';\nconst useFormItemStatus = () => {\n const {\n status,\n errors = [],\n warnings = []\n } = React.useContext(FormItemInputContext);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Form.Item');\n process.env.NODE_ENV !== \"production\" ? warning(status !== undefined, 'usage', 'Form.Item.useStatus should be used under Form.Item component. For more information: https://u.ant.design/form-item-usestatus') : void 0;\n }\n return {\n status,\n errors,\n warnings\n };\n};\n// Only used for compatible package. Not promise this will work on future version.\nuseFormItemStatus.Context = FormItemInputContext;\nexport default useFormItemStatus;","/**\n * Fallback of IE.\n * Safe to remove.\n */\n// Style as inline component\nimport { prepareToken } from '.';\nimport { genSubStyleComponent } from '../../theme/internal';\n// ============================= Fallback =============================\nconst genFallbackStyle = token => {\n const {\n formItemCls\n } = token;\n return {\n '@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none)': {\n // Fallback for IE, safe to remove we not support it anymore\n [`${formItemCls}-control`]: {\n display: 'flex'\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genSubStyleComponent(['Form', 'item-item'], (token, _ref) => {\n let {\n rootPrefixCls\n } = _ref;\n const formToken = prepareToken(token, rootPrefixCls);\n return [genFallbackStyle(formToken)];\n});","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { get, set } from 'rc-util';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport Col from '../grid/col';\nimport { FormContext, FormItemPrefixContext } from './context';\nimport ErrorList from './ErrorList';\nimport FallbackCmp from './style/fallbackCmp';\nconst GRID_MAX = 24;\nconst FormItemInput = props => {\n const {\n prefixCls,\n status,\n labelCol,\n wrapperCol,\n children,\n errors,\n warnings,\n _internalItemRender: formItemRender,\n extra,\n help,\n fieldId,\n marginBottom,\n onErrorVisibleChanged,\n label\n } = props;\n const baseClassName = `${prefixCls}-item`;\n const formContext = React.useContext(FormContext);\n const mergedWrapperCol = React.useMemo(() => {\n let mergedWrapper = Object.assign({}, wrapperCol || formContext.wrapperCol || {});\n if (label === null && !labelCol && !wrapperCol && formContext.labelCol) {\n const list = [undefined, 'xs', 'sm', 'md', 'lg', 'xl', 'xxl'];\n list.forEach(size => {\n const _size = size ? [size] : [];\n const formLabel = get(formContext.labelCol, _size);\n const formLabelObj = typeof formLabel === 'object' ? formLabel : {};\n const wrapper = get(mergedWrapper, _size);\n const wrapperObj = typeof wrapper === 'object' ? wrapper : {};\n if ('span' in formLabelObj && !('offset' in wrapperObj) && formLabelObj.span < GRID_MAX) {\n mergedWrapper = set(mergedWrapper, [].concat(_size, ['offset']), formLabelObj.span);\n }\n });\n }\n return mergedWrapper;\n }, [wrapperCol, formContext]);\n const className = classNames(`${baseClassName}-control`, mergedWrapperCol.className);\n // Pass to sub FormItem should not with col info\n const subFormContext = React.useMemo(() => {\n const {\n labelCol,\n wrapperCol\n } = formContext,\n rest = __rest(formContext, [\"labelCol\", \"wrapperCol\"]);\n return rest;\n }, [formContext]);\n const extraRef = React.useRef(null);\n const [extraHeight, setExtraHeight] = React.useState(0);\n useLayoutEffect(() => {\n if (extra && extraRef.current) {\n setExtraHeight(extraRef.current.clientHeight);\n } else {\n setExtraHeight(0);\n }\n }, [extra]);\n const inputDom = /*#__PURE__*/React.createElement(\"div\", {\n className: `${baseClassName}-control-input`\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: `${baseClassName}-control-input-content`\n }, children));\n const formItemContext = React.useMemo(() => ({\n prefixCls,\n status\n }), [prefixCls, status]);\n const errorListDom = marginBottom !== null || errors.length || warnings.length ? (/*#__PURE__*/React.createElement(FormItemPrefixContext.Provider, {\n value: formItemContext\n }, /*#__PURE__*/React.createElement(ErrorList, {\n fieldId: fieldId,\n errors: errors,\n warnings: warnings,\n help: help,\n helpStatus: status,\n className: `${baseClassName}-explain-connected`,\n onVisibleChanged: onErrorVisibleChanged\n }))) : null;\n const extraProps = {};\n if (fieldId) {\n extraProps.id = `${fieldId}_extra`;\n }\n // If extra = 0, && will goes wrong\n // 0&&error -> 0\n const extraDom = extra ? (/*#__PURE__*/React.createElement(\"div\", Object.assign({}, extraProps, {\n className: `${baseClassName}-extra`,\n ref: extraRef\n }), extra)) : null;\n const additionalDom = errorListDom || extraDom ? (/*#__PURE__*/React.createElement(\"div\", {\n className: `${baseClassName}-additional`,\n style: marginBottom ? {\n minHeight: marginBottom + extraHeight\n } : {}\n }, errorListDom, extraDom)) : null;\n const dom = formItemRender && formItemRender.mark === 'pro_table_render' && formItemRender.render ? formItemRender.render(props, {\n input: inputDom,\n errorList: errorListDom,\n extra: extraDom\n }) : (/*#__PURE__*/React.createElement(React.Fragment, null, inputDom, additionalDom));\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: subFormContext\n }, /*#__PURE__*/React.createElement(Col, Object.assign({}, mergedWrapperCol, {\n className: className\n }), dom), /*#__PURE__*/React.createElement(FallbackCmp, {\n prefixCls: prefixCls\n }));\n};\nexport default FormItemInput;","// This icon file is generated automatically.\nvar QuestionCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z\" } }] }, \"name\": \"question-circle\", \"theme\": \"outlined\" };\nexport default QuestionCircleOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport QuestionCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/QuestionCircleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar QuestionCircleOutlined = function QuestionCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: QuestionCircleOutlinedSvg\n }));\n};\n\n/**![question-circle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiIC8+PHBhdGggZD0iTTYyMy42IDMxNi43QzU5My42IDI5MC40IDU1NCAyNzYgNTEyIDI3NnMtODEuNiAxNC41LTExMS42IDQwLjdDMzY5LjIgMzQ0IDM1MiAzODAuNyAzNTIgNDIwdjcuNmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjQyMGMwLTQ0LjEgNDMuMS04MCA5Ni04MHM5NiAzNS45IDk2IDgwYzAgMzEuMS0yMiA1OS42LTU2LjEgNzIuNy0yMS4yIDguMS0zOS4yIDIyLjMtNTIuMSA0MC45LTEzLjEgMTktMTkuOSA0MS44LTE5LjkgNjQuOVY2MjBjMCA0LjQgMy42IDggOCA4aDQ4YzQuNCAwIDgtMy42IDgtOHYtMjIuN2E0OC4zIDQ4LjMgMCAwMTMwLjktNDQuOGM1OS0yMi43IDk3LjEtNzQuNyA5Ny4xLTEzMi41LjEtMzkuMy0xNy4xLTc2LTQ4LjMtMTAzLjN6TTQ3MiA3MzJhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAweiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(QuestionCircleOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'QuestionCircleOutlined';\n}\nexport default RefIcon;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport QuestionCircleOutlined from \"@ant-design/icons/es/icons/QuestionCircleOutlined\";\nimport classNames from 'classnames';\nimport Col from '../grid/col';\nimport { useLocale } from '../locale';\nimport defaultLocale from '../locale/en_US';\nimport Tooltip from '../tooltip';\nimport { FormContext } from './context';\nfunction toTooltipProps(tooltip) {\n if (!tooltip) {\n return null;\n }\n if (typeof tooltip === 'object' && ! /*#__PURE__*/React.isValidElement(tooltip)) {\n return tooltip;\n }\n return {\n title: tooltip\n };\n}\nconst FormItemLabel = _ref => {\n let {\n prefixCls,\n label,\n htmlFor,\n labelCol,\n labelAlign,\n colon,\n required,\n requiredMark,\n tooltip,\n vertical\n } = _ref;\n var _a;\n const [formLocale] = useLocale('Form');\n const {\n labelAlign: contextLabelAlign,\n labelCol: contextLabelCol,\n labelWrap,\n colon: contextColon\n } = React.useContext(FormContext);\n if (!label) {\n return null;\n }\n const mergedLabelCol = labelCol || contextLabelCol || {};\n const mergedLabelAlign = labelAlign || contextLabelAlign;\n const labelClsBasic = `${prefixCls}-item-label`;\n const labelColClassName = classNames(labelClsBasic, mergedLabelAlign === 'left' && `${labelClsBasic}-left`, mergedLabelCol.className, {\n [`${labelClsBasic}-wrap`]: !!labelWrap\n });\n let labelChildren = label;\n // Keep label is original where there should have no colon\n const computedColon = colon === true || contextColon !== false && colon !== false;\n const haveColon = computedColon && !vertical;\n // Remove duplicated user input colon\n if (haveColon && typeof label === 'string' && label.trim()) {\n labelChildren = label.replace(/[:|:]\\s*$/, '');\n }\n // Tooltip\n const tooltipProps = toTooltipProps(tooltip);\n if (tooltipProps) {\n const {\n icon = /*#__PURE__*/React.createElement(QuestionCircleOutlined, null)\n } = tooltipProps,\n restTooltipProps = __rest(tooltipProps, [\"icon\"]);\n const tooltipNode = /*#__PURE__*/React.createElement(Tooltip, Object.assign({}, restTooltipProps), /*#__PURE__*/React.cloneElement(icon, {\n className: `${prefixCls}-item-tooltip`,\n title: '',\n onClick: e => {\n // Prevent label behavior in tooltip icon\n // https://github.com/ant-design/ant-design/issues/46154\n e.preventDefault();\n },\n tabIndex: null\n }));\n labelChildren = /*#__PURE__*/React.createElement(React.Fragment, null, labelChildren, tooltipNode);\n }\n // Required Mark\n const isOptionalMark = requiredMark === 'optional';\n const isRenderMark = typeof requiredMark === 'function';\n if (isRenderMark) {\n labelChildren = requiredMark(labelChildren, {\n required: !!required\n });\n } else if (isOptionalMark && !required) {\n labelChildren = /*#__PURE__*/React.createElement(React.Fragment, null, labelChildren, /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-item-optional`,\n title: \"\"\n }, (formLocale === null || formLocale === void 0 ? void 0 : formLocale.optional) || ((_a = defaultLocale.Form) === null || _a === void 0 ? void 0 : _a.optional)));\n }\n const labelClassName = classNames({\n [`${prefixCls}-item-required`]: required,\n [`${prefixCls}-item-required-mark-optional`]: isOptionalMark || isRenderMark,\n [`${prefixCls}-item-no-colon`]: !computedColon\n });\n return /*#__PURE__*/React.createElement(Col, Object.assign({}, mergedLabelCol, {\n className: labelColClassName\n }), /*#__PURE__*/React.createElement(\"label\", {\n htmlFor: htmlFor,\n className: labelClassName,\n title: typeof label === 'string' ? label : ''\n }, labelChildren));\n};\nexport default FormItemLabel;","\"use client\";\n\nimport * as React from 'react';\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport { FormContext, FormItemInputContext } from '../context';\nimport { getStatus } from '../util';\nconst iconMap = {\n success: CheckCircleFilled,\n warning: ExclamationCircleFilled,\n error: CloseCircleFilled,\n validating: LoadingOutlined\n};\nexport default function StatusProvider(_ref) {\n let {\n children,\n errors,\n warnings,\n hasFeedback,\n validateStatus,\n prefixCls,\n meta,\n noStyle\n } = _ref;\n const itemPrefixCls = `${prefixCls}-item`;\n const {\n feedbackIcons\n } = React.useContext(FormContext);\n const mergedValidateStatus = getStatus(errors, warnings, meta, null, !!hasFeedback, validateStatus);\n const {\n isFormItemInput: parentIsFormItemInput,\n status: parentStatus,\n hasFeedback: parentHasFeedback,\n feedbackIcon: parentFeedbackIcon\n } = React.useContext(FormItemInputContext);\n // ====================== Context =======================\n const formItemStatusContext = React.useMemo(() => {\n var _a;\n let feedbackIcon;\n if (hasFeedback) {\n const customIcons = hasFeedback !== true && hasFeedback.icons || feedbackIcons;\n const customIconNode = mergedValidateStatus && ((_a = customIcons === null || customIcons === void 0 ? void 0 : customIcons({\n status: mergedValidateStatus,\n errors,\n warnings\n })) === null || _a === void 0 ? void 0 : _a[mergedValidateStatus]);\n const IconNode = mergedValidateStatus && iconMap[mergedValidateStatus];\n feedbackIcon = customIconNode !== false && IconNode ? (/*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${itemPrefixCls}-feedback-icon`, `${itemPrefixCls}-feedback-icon-${mergedValidateStatus}`)\n }, customIconNode || /*#__PURE__*/React.createElement(IconNode, null))) : null;\n }\n const context = {\n status: mergedValidateStatus || '',\n errors,\n warnings,\n hasFeedback: !!hasFeedback,\n feedbackIcon,\n isFormItemInput: true\n };\n // No style will follow parent context\n if (noStyle) {\n context.status = (mergedValidateStatus !== null && mergedValidateStatus !== void 0 ? mergedValidateStatus : parentStatus) || '';\n context.isFormItemInput = parentIsFormItemInput;\n context.hasFeedback = !!(hasFeedback !== null && hasFeedback !== void 0 ? hasFeedback : parentHasFeedback);\n context.feedbackIcon = hasFeedback !== undefined ? context.feedbackIcon : parentFeedbackIcon;\n }\n return context;\n }, [mergedValidateStatus, hasFeedback, noStyle, parentIsFormItemInput, parentStatus]);\n // ======================= Render =======================\n return /*#__PURE__*/React.createElement(FormItemInputContext.Provider, {\n value: formItemStatusContext\n }, children);\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport omit from \"rc-util/es/omit\";\nimport { Row } from '../../grid';\nimport { FormContext, NoStyleItemContext } from '../context';\nimport FormItemInput from '../FormItemInput';\nimport FormItemLabel from '../FormItemLabel';\nimport useDebounce from '../hooks/useDebounce';\nimport { getStatus } from '../util';\nimport StatusProvider from './StatusProvider';\nexport default function ItemHolder(props) {\n const {\n prefixCls,\n className,\n rootClassName,\n style,\n help,\n errors,\n warnings,\n validateStatus,\n meta,\n hasFeedback,\n hidden,\n children,\n fieldId,\n required,\n isRequired,\n onSubItemMetaChange,\n layout\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"style\", \"help\", \"errors\", \"warnings\", \"validateStatus\", \"meta\", \"hasFeedback\", \"hidden\", \"children\", \"fieldId\", \"required\", \"isRequired\", \"onSubItemMetaChange\", \"layout\"]);\n const itemPrefixCls = `${prefixCls}-item`;\n const {\n requiredMark,\n vertical: formVertical\n } = React.useContext(FormContext);\n const vertical = formVertical || layout === 'vertical';\n // ======================== Margin ========================\n const itemRef = React.useRef(null);\n const debounceErrors = useDebounce(errors);\n const debounceWarnings = useDebounce(warnings);\n const hasHelp = help !== undefined && help !== null;\n const hasError = !!(hasHelp || errors.length || warnings.length);\n const isOnScreen = !!itemRef.current && isVisible(itemRef.current);\n const [marginBottom, setMarginBottom] = React.useState(null);\n useLayoutEffect(() => {\n if (hasError && itemRef.current) {\n // The element must be part of the DOMTree to use getComputedStyle\n // https://stackoverflow.com/questions/35360711/getcomputedstyle-returns-a-cssstyledeclaration-but-all-properties-are-empty-on-a\n const itemStyle = getComputedStyle(itemRef.current);\n setMarginBottom(parseInt(itemStyle.marginBottom, 10));\n }\n }, [hasError, isOnScreen]);\n const onErrorVisibleChanged = nextVisible => {\n if (!nextVisible) {\n setMarginBottom(null);\n }\n };\n // ======================== Status ========================\n const getValidateState = function () {\n let isDebounce = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n const _errors = isDebounce ? debounceErrors : meta.errors;\n const _warnings = isDebounce ? debounceWarnings : meta.warnings;\n return getStatus(_errors, _warnings, meta, '', !!hasFeedback, validateStatus);\n };\n const mergedValidateStatus = getValidateState();\n // ======================== Render ========================\n const itemClassName = classNames(itemPrefixCls, className, rootClassName, {\n [`${itemPrefixCls}-with-help`]: hasHelp || debounceErrors.length || debounceWarnings.length,\n // Status\n [`${itemPrefixCls}-has-feedback`]: mergedValidateStatus && hasFeedback,\n [`${itemPrefixCls}-has-success`]: mergedValidateStatus === 'success',\n [`${itemPrefixCls}-has-warning`]: mergedValidateStatus === 'warning',\n [`${itemPrefixCls}-has-error`]: mergedValidateStatus === 'error',\n [`${itemPrefixCls}-is-validating`]: mergedValidateStatus === 'validating',\n [`${itemPrefixCls}-hidden`]: hidden,\n // Layout\n [`${itemPrefixCls}-${layout}`]: layout\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: itemClassName,\n style: style,\n ref: itemRef\n }, /*#__PURE__*/React.createElement(Row, Object.assign({\n className: `${itemPrefixCls}-row`\n }, omit(restProps, ['_internalItemRender', 'colon', 'dependencies', 'extra', 'fieldKey', 'getValueFromEvent', 'getValueProps', 'htmlFor', 'id',\n // It is deprecated because `htmlFor` is its replacement.\n 'initialValue', 'isListField', 'label', 'labelAlign', 'labelCol', 'labelWrap', 'messageVariables', 'name', 'normalize', 'noStyle', 'preserve', 'requiredMark', 'rules', 'shouldUpdate', 'trigger', 'tooltip', 'validateFirst', 'validateTrigger', 'valuePropName', 'wrapperCol', 'validateDebounce'])), /*#__PURE__*/React.createElement(FormItemLabel, Object.assign({\n htmlFor: fieldId\n }, props, {\n requiredMark: requiredMark,\n required: required !== null && required !== void 0 ? required : isRequired,\n prefixCls: prefixCls,\n vertical: vertical\n })), /*#__PURE__*/React.createElement(FormItemInput, Object.assign({}, props, meta, {\n errors: debounceErrors,\n warnings: debounceWarnings,\n prefixCls: prefixCls,\n status: mergedValidateStatus,\n help: help,\n marginBottom: marginBottom,\n onErrorVisibleChanged: onErrorVisibleChanged\n }), /*#__PURE__*/React.createElement(NoStyleItemContext.Provider, {\n value: onSubItemMetaChange\n }, /*#__PURE__*/React.createElement(StatusProvider, {\n prefixCls: prefixCls,\n meta: meta,\n errors: meta.errors,\n warnings: meta.warnings,\n hasFeedback: hasFeedback,\n // Already calculated\n validateStatus: mergedValidateStatus\n }, children)))), !!marginBottom && (/*#__PURE__*/React.createElement(\"div\", {\n className: `${itemPrefixCls}-margin-offset`,\n style: {\n marginBottom: -marginBottom\n }\n })));\n}","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Field, FieldContext, ListContext } from 'rc-field-form';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { supportRef } from \"rc-util/es/ref\";\nimport { cloneElement } from '../../_util/reactNode';\nimport { devUseWarning } from '../../_util/warning';\nimport { ConfigContext } from '../../config-provider';\nimport useCSSVarCls from '../../config-provider/hooks/useCSSVarCls';\nimport { FormContext, NoStyleItemContext } from '../context';\nimport useChildren from '../hooks/useChildren';\nimport useFormItemStatus from '../hooks/useFormItemStatus';\nimport useFrameState from '../hooks/useFrameState';\nimport useItemRef from '../hooks/useItemRef';\nimport useStyle from '../style';\nimport { getFieldId, toArray } from '../util';\nimport ItemHolder from './ItemHolder';\nimport StatusProvider from './StatusProvider';\nconst NAME_SPLIT = '__SPLIT__';\nconst _ValidateStatuses = ['success', 'warning', 'error', 'validating', ''];\n// https://github.com/ant-design/ant-design/issues/46417\n// `getValueProps` may modify the value props name,\n// we should check if the control is similar.\nfunction isSimilarControl(a, b) {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(key => {\n const propValueA = a[key];\n const propValueB = b[key];\n return propValueA === propValueB || typeof propValueA === 'function' || typeof propValueB === 'function';\n });\n}\nconst MemoInput = /*#__PURE__*/React.memo(_ref => {\n let {\n children\n } = _ref;\n return children;\n}, (prev, next) => isSimilarControl(prev.control, next.control) && prev.update === next.update && prev.childProps.length === next.childProps.length && prev.childProps.every((value, index) => value === next.childProps[index]));\nfunction genEmptyMeta() {\n return {\n errors: [],\n warnings: [],\n touched: false,\n validating: false,\n name: [],\n validated: false\n };\n}\nfunction InternalFormItem(props) {\n const {\n name,\n noStyle,\n className,\n dependencies,\n prefixCls: customizePrefixCls,\n shouldUpdate,\n rules,\n children,\n required,\n label,\n messageVariables,\n trigger = 'onChange',\n validateTrigger,\n hidden,\n help,\n layout\n } = props;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const {\n name: formName\n } = React.useContext(FormContext);\n const mergedChildren = useChildren(children);\n const isRenderProps = typeof mergedChildren === 'function';\n const notifyParentMetaChange = React.useContext(NoStyleItemContext);\n const {\n validateTrigger: contextValidateTrigger\n } = React.useContext(FieldContext);\n const mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : contextValidateTrigger;\n const hasName = !(name === undefined || name === null);\n const prefixCls = getPrefixCls('form', customizePrefixCls);\n // Style\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n // ========================= Warn =========================\n const warning = devUseWarning('Form.Item');\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(name !== null, 'usage', '`null` is passed as `name` property') : void 0;\n }\n // ========================= MISC =========================\n // Get `noStyle` required info\n const listContext = React.useContext(ListContext);\n const fieldKeyPathRef = React.useRef(null);\n // ======================== Errors ========================\n // >>>>> Collect sub field errors\n const [subFieldErrors, setSubFieldErrors] = useFrameState({});\n // >>>>> Current field errors\n const [meta, setMeta] = useState(() => genEmptyMeta());\n const onMetaChange = nextMeta => {\n // This keyInfo is not correct when field is removed\n // Since origin keyManager no longer keep the origin key anymore\n // Which means we need cache origin one and reuse when removed\n const keyInfo = listContext === null || listContext === void 0 ? void 0 : listContext.getKey(nextMeta.name);\n // Destroy will reset all the meta\n setMeta(nextMeta.destroy ? genEmptyMeta() : nextMeta, true);\n // Bump to parent since noStyle\n if (noStyle && help !== false && notifyParentMetaChange) {\n let namePath = nextMeta.name;\n if (!nextMeta.destroy) {\n if (keyInfo !== undefined) {\n const [fieldKey, restPath] = keyInfo;\n namePath = [fieldKey].concat(_toConsumableArray(restPath));\n fieldKeyPathRef.current = namePath;\n }\n } else {\n // Use origin cache data\n namePath = fieldKeyPathRef.current || namePath;\n }\n notifyParentMetaChange(nextMeta, namePath);\n }\n };\n // >>>>> Collect noStyle Field error to the top FormItem\n const onSubItemMetaChange = (subMeta, uniqueKeys) => {\n // Only `noStyle` sub item will trigger\n setSubFieldErrors(prevSubFieldErrors => {\n const clone = Object.assign({}, prevSubFieldErrors);\n // name: ['user', 1] + key: [4] = ['user', 4]\n const mergedNamePath = [].concat(_toConsumableArray(subMeta.name.slice(0, -1)), _toConsumableArray(uniqueKeys));\n const mergedNameKey = mergedNamePath.join(NAME_SPLIT);\n if (subMeta.destroy) {\n // Remove\n delete clone[mergedNameKey];\n } else {\n // Update\n clone[mergedNameKey] = subMeta;\n }\n return clone;\n });\n };\n // >>>>> Get merged errors\n const [mergedErrors, mergedWarnings] = React.useMemo(() => {\n const errorList = _toConsumableArray(meta.errors);\n const warningList = _toConsumableArray(meta.warnings);\n Object.values(subFieldErrors).forEach(subFieldError => {\n errorList.push.apply(errorList, _toConsumableArray(subFieldError.errors || []));\n warningList.push.apply(warningList, _toConsumableArray(subFieldError.warnings || []));\n });\n return [errorList, warningList];\n }, [subFieldErrors, meta.errors, meta.warnings]);\n // ===================== Children Ref =====================\n const getItemRef = useItemRef();\n // ======================== Render ========================\n function renderLayout(baseChildren, fieldId, isRequired) {\n if (noStyle && !hidden) {\n return /*#__PURE__*/React.createElement(StatusProvider, {\n prefixCls: prefixCls,\n hasFeedback: props.hasFeedback,\n validateStatus: props.validateStatus,\n meta: meta,\n errors: mergedErrors,\n warnings: mergedWarnings,\n noStyle: true\n }, baseChildren);\n }\n return /*#__PURE__*/React.createElement(ItemHolder, Object.assign({\n key: \"row\"\n }, props, {\n className: classNames(className, cssVarCls, rootCls, hashId),\n prefixCls: prefixCls,\n fieldId: fieldId,\n isRequired: isRequired,\n errors: mergedErrors,\n warnings: mergedWarnings,\n meta: meta,\n onSubItemMetaChange: onSubItemMetaChange,\n layout: layout\n }), baseChildren);\n }\n if (!hasName && !isRenderProps && !dependencies) {\n return wrapCSSVar(renderLayout(mergedChildren));\n }\n let variables = {};\n if (typeof label === 'string') {\n variables.label = label;\n } else if (name) {\n variables.label = String(name);\n }\n if (messageVariables) {\n variables = Object.assign(Object.assign({}, variables), messageVariables);\n }\n // >>>>> With Field\n return wrapCSSVar(/*#__PURE__*/React.createElement(Field, Object.assign({}, props, {\n messageVariables: variables,\n trigger: trigger,\n validateTrigger: mergedValidateTrigger,\n onMetaChange: onMetaChange\n }), (control, renderMeta, context) => {\n const mergedName = toArray(name).length && renderMeta ? renderMeta.name : [];\n const fieldId = getFieldId(mergedName, formName);\n const isRequired = required !== undefined ? required : !!(rules === null || rules === void 0 ? void 0 : rules.some(rule => {\n if (rule && typeof rule === 'object' && rule.required && !rule.warningOnly) {\n return true;\n }\n if (typeof rule === 'function') {\n const ruleEntity = rule(context);\n return (ruleEntity === null || ruleEntity === void 0 ? void 0 : ruleEntity.required) && !(ruleEntity === null || ruleEntity === void 0 ? void 0 : ruleEntity.warningOnly);\n }\n return false;\n }));\n // ======================= Children =======================\n const mergedControl = Object.assign({}, control);\n let childNode = null;\n process.env.NODE_ENV !== \"production\" ? warning(!(shouldUpdate && dependencies), 'usage', \"`shouldUpdate` and `dependencies` shouldn't be used together. See https://u.ant.design/form-deps.\") : void 0;\n if (Array.isArray(mergedChildren) && hasName) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'usage', 'A `Form.Item` with a `name` prop must have a single child element. For information on how to render more complex form items, see https://u.ant.design/complex-form-item.') : void 0;\n childNode = mergedChildren;\n } else if (isRenderProps && (!(shouldUpdate || dependencies) || hasName)) {\n process.env.NODE_ENV !== \"production\" ? warning(!!(shouldUpdate || dependencies), 'usage', 'A `Form.Item` with a render function must have either `shouldUpdate` or `dependencies`.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!hasName, 'usage', 'A `Form.Item` with a render function cannot be a field, and thus cannot have a `name` prop.') : void 0;\n } else if (dependencies && !isRenderProps && !hasName) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'usage', 'Must set `name` or use a render function when `dependencies` is set.') : void 0;\n } else if (/*#__PURE__*/React.isValidElement(mergedChildren)) {\n process.env.NODE_ENV !== \"production\" ? warning(mergedChildren.props.defaultValue === undefined, 'usage', '`defaultValue` will not work on controlled Field. You should use `initialValues` of Form instead.') : void 0;\n const childProps = Object.assign(Object.assign({}, mergedChildren.props), mergedControl);\n if (!childProps.id) {\n childProps.id = fieldId;\n }\n if (help || mergedErrors.length > 0 || mergedWarnings.length > 0 || props.extra) {\n const describedbyArr = [];\n if (help || mergedErrors.length > 0) {\n describedbyArr.push(`${fieldId}_help`);\n }\n if (props.extra) {\n describedbyArr.push(`${fieldId}_extra`);\n }\n childProps['aria-describedby'] = describedbyArr.join(' ');\n }\n if (mergedErrors.length > 0) {\n childProps['aria-invalid'] = 'true';\n }\n if (isRequired) {\n childProps['aria-required'] = 'true';\n }\n if (supportRef(mergedChildren)) {\n childProps.ref = getItemRef(mergedName, mergedChildren);\n }\n // We should keep user origin event handler\n const triggers = new Set([].concat(_toConsumableArray(toArray(trigger)), _toConsumableArray(toArray(mergedValidateTrigger))));\n triggers.forEach(eventName => {\n childProps[eventName] = function () {\n var _a2, _c2;\n var _a, _b, _c;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n (_a = mergedControl[eventName]) === null || _a === void 0 ? void 0 : (_a2 = _a).call.apply(_a2, [mergedControl].concat(args));\n (_c = (_b = mergedChildren.props)[eventName]) === null || _c === void 0 ? void 0 : (_c2 = _c).call.apply(_c2, [_b].concat(args));\n };\n });\n // List of props that need to be watched for changes -> if changes are detected in MemoInput -> rerender\n const watchingChildProps = [childProps['aria-required'], childProps['aria-invalid'], childProps['aria-describedby']];\n childNode = /*#__PURE__*/React.createElement(MemoInput, {\n control: mergedControl,\n update: mergedChildren,\n childProps: watchingChildProps\n }, cloneElement(mergedChildren, childProps));\n } else if (isRenderProps && (shouldUpdate || dependencies) && !hasName) {\n childNode = mergedChildren(context);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(!mergedName.length || !!noStyle, 'usage', '`name` is only used for validate React element. If you are using Form.Item as layout display, please remove `name` instead.') : void 0;\n childNode = mergedChildren;\n }\n return renderLayout(childNode, fieldId, isRequired);\n }));\n}\nconst FormItem = InternalFormItem;\nFormItem.useStatus = useFormItemStatus;\nexport default FormItem;","import toArray from \"rc-util/es/Children/toArray\";\nexport default function useChildren(children) {\n if (typeof children === 'function') {\n return children;\n }\n const childList = toArray(children);\n return childList.length <= 1 ? childList[0] : childList;\n}","import * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default function useFrameState(defaultValue) {\n const [value, setValue] = React.useState(defaultValue);\n const frameRef = React.useRef(null);\n const batchRef = React.useRef([]);\n const destroyRef = React.useRef(false);\n React.useEffect(() => {\n destroyRef.current = false;\n return () => {\n destroyRef.current = true;\n raf.cancel(frameRef.current);\n frameRef.current = null;\n };\n }, []);\n function setFrameValue(updater) {\n if (destroyRef.current) {\n return;\n }\n if (frameRef.current === null) {\n batchRef.current = [];\n frameRef.current = raf(() => {\n frameRef.current = null;\n setValue(prevValue => {\n let current = prevValue;\n batchRef.current.forEach(func => {\n current = func(current);\n });\n return current;\n });\n });\n }\n batchRef.current.push(updater);\n }\n return [value, setFrameValue];\n}","import * as React from 'react';\nimport { composeRef, getNodeRef } from \"rc-util/es/ref\";\nimport { FormContext } from '../context';\nexport default function useItemRef() {\n const {\n itemRef\n } = React.useContext(FormContext);\n const cacheRef = React.useRef({});\n function getRef(name, children) {\n // Outer caller already check the `supportRef`\n const childrenRef = children && typeof children === 'object' && getNodeRef(children);\n const nameStr = name.join('_');\n if (cacheRef.current.name !== nameStr || cacheRef.current.originRef !== childrenRef) {\n cacheRef.current.name = nameStr;\n cacheRef.current.originRef = childrenRef;\n cacheRef.current.ref = composeRef(itemRef(name), childrenRef);\n }\n return cacheRef.current.ref;\n }\n return getRef;\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { List } from 'rc-field-form';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport { FormItemPrefixContext } from './context';\nconst FormList = _a => {\n var {\n prefixCls: customizePrefixCls,\n children\n } = _a,\n props = __rest(_a, [\"prefixCls\", \"children\"]);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Form.List');\n process.env.NODE_ENV !== \"production\" ? warning(typeof props.name === 'number' || (Array.isArray(props.name) ? !!props.name.length : !!props.name), 'usage', 'Miss `name` prop.') : void 0;\n }\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('form', customizePrefixCls);\n const contextValue = React.useMemo(() => ({\n prefixCls,\n status: 'error'\n }), [prefixCls]);\n return /*#__PURE__*/React.createElement(List, Object.assign({}, props), (fields, operation, meta) => (/*#__PURE__*/React.createElement(FormItemPrefixContext.Provider, {\n value: contextValue\n }, children(fields.map(field => Object.assign(Object.assign({}, field), {\n fieldKey: field.key\n })), operation, {\n errors: meta.errors,\n warnings: meta.warnings\n }))));\n};\nexport default FormList;","\"use client\";\n\nimport warning from '../_util/warning';\nimport { FormProvider } from './context';\nimport ErrorList from './ErrorList';\nimport InternalForm, { useForm, useWatch } from './Form';\nimport Item from './FormItem';\nimport List from './FormList';\nimport useFormInstance from './hooks/useFormInstance';\nconst Form = InternalForm;\nForm.Item = Item;\nForm.List = List;\nForm.ErrorList = ErrorList;\nForm.useForm = useForm;\nForm.useFormInstance = useFormInstance;\nForm.useWatch = useWatch;\nForm.Provider = FormProvider;\nForm.create = () => {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Form', 'antd v4 removed `Form.create`. Please remove or use `@ant-design/compatible` instead.') : void 0;\n};\nexport default Form;","import * as React from 'react';\nimport { FormContext } from '../context';\nexport default function useFormInstance() {\n const {\n form\n } = React.useContext(FormContext);\n return form;\n}","// This icon file is generated automatically.\nvar LockOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z\" } }] }, \"name\": \"lock\", \"theme\": \"outlined\" };\nexport default LockOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport LockOutlinedSvg from \"@ant-design/icons-svg/es/asn/LockOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar LockOutlined = function LockOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: LockOutlinedSvg\n }));\n};\n\n/**![lock](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTgzMiA0NjRoLTY4VjI0MGMwLTcwLjctNTcuMy0xMjgtMTI4LTEyOEgzODhjLTcwLjcgMC0xMjggNTcuMy0xMjggMTI4djIyNGgtNjhjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjM4NGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWNDk2YzAtMTcuNy0xNC4zLTMyLTMyLTMyek0zMzIgMjQwYzAtMzAuOSAyNS4xLTU2IDU2LTU2aDI0OGMzMC45IDAgNTYgMjUuMSA1NiA1NnYyMjRIMzMyVjI0MHptNDYwIDYwMEgyMzJWNTM2aDU2MHYzMDR6TTQ4NCA3MDF2NTNjMCA0LjQgMy42IDggOCA4aDQwYzQuNCAwIDgtMy42IDgtOHYtNTNhNDguMDEgNDguMDEgMCAxMC01NiAweiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(LockOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'LockOutlined';\n}\nexport default RefIcon;","import { useState, useEffect } from 'react';\nimport { Form, Input, Button, message } from 'antd';\nimport { UserOutlined, LockOutlined, HomeOutlined, PhoneOutlined, MailOutlined } from '@ant-design/icons';\nimport { useDispatch } from 'react-redux';\nimport { createCustomer } from '../../Redux/slice/customerSlice';\nimport { useNavigate } from 'react-router-dom';\nimport { v4 as uuidv4 } from 'uuid';\nimport logo from '../../assets/frankoIcon.png';\n\nconst RegistrationPage = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const [formData, setFormData] = useState({\n customerAccountNumber: '',\n firstName: '',\n lastName: '',\n contactNumber: '',\n address: '',\n password: '',\n accountType: 'customer', // Default account type\n email: '', // Add email here\n accountStatus: '1', // Default account status (active) when signing up\n });\n\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n const accountNumber = uuidv4();\n setFormData((prevState) => ({\n ...prevState,\n customerAccountNumber: accountNumber,\n }));\n }, []);\n\n const handleChange = (e) => {\n const { name, value } = e.target;\n setFormData({ ...formData, [name]: value });\n };\n\n const handleSubmit = async (values) => {\n const finalData = {\n ...values,\n accountType: 'customer',\n customerAccountNumber: formData.customerAccountNumber,\n accountStatus: '1', // Automatically set account status to '1' when customer signs up\n };\n\n setLoading(true);\n try {\n await dispatch(createCustomer(finalData)).unwrap(); // Dispatch action\n message.success('Registration successful!');\n navigate('/'); // Navigate to home page\n } catch (error) {\n message.error('Registration failed: ' + error.message);\n console.error('Registration error:', error); // Log error\n } finally {\n setLoading(false);\n }\n };\n\n return (\n
    \n \n
    \n \"Logo\"\n

    Register

    \n
    \n\n \n\n \n } onChange={handleChange} />\n \n\n \n } onChange={handleChange} />\n \n\n \n } onChange={handleChange} />\n \n\n \n } onChange={handleChange} />\n \n\n \n } onChange={handleChange} />\n \n\n \n } onChange={handleChange} visibilityToggle />\n \n\n \n \n \n\n

    \n Already registered?{' '}\n navigate('/sign-in')}\n className=\"text-blue-500 cursor-pointer hover:underline\"\n >\n Login\n \n

    \n \n
    \n );\n};\n\nexport default RegistrationPage;\n","import { useState } from 'react';\nimport { Form, Input, Button, message } from 'antd';\nimport { useDispatch } from 'react-redux';\nimport { loginCustomer } from '../../Redux/slice/customerSlice';\nimport { useNavigate } from 'react-router-dom';\nimport logo from \"../../assets/frankoIcon.png\";\n\nconst LoginPage = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const [formData, setFormData] = useState({\n contactNumber: '',\n password: '',\n });\n const [loading, setLoading] = useState(false); // Add loading state\n\n const handleChange = (e) => {\n const { name, value } = e.target;\n setFormData({ ...formData, [name]: value });\n };\n\n const handleSubmit = async (values) => {\n setLoading(true); // Set loading to true\n try {\n await dispatch(loginCustomer(values)).unwrap();\n message.success('Login successful!');\n navigate('/');\n } catch (error) {\n message.error(error || 'Login failed.');\n navigate('/sign-up');\n } finally {\n setLoading(false); // Reset loading to false\n }\n };\n\n return (\n
    \n \n
    \n \"Logo\"\n

    Login

    \n
    \n\n \n \n \n\n \n \n \n\n \n \n \n\n

    \n Don’t have an account?{' '}\n navigate('/sign-up')}\n className=\"text-blue-500 cursor-pointer hover:underline\"\n >\n Register\n \n

    \n \n
    \n );\n};\n\nexport default LoginPage;\n","import React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchProductById } from \"../../Redux/slice/productSlice\";\nimport { Button, Modal, message } from \"antd\";\nimport { ShoppingCartOutlined } from \"@ant-design/icons\";\nimport { addToCart } from \"../../Redux/slice/cartSlice\";\nimport { Helmet } from \"react-helmet\";\nimport \"./ProductDetails.css\";\n\nconst formatPrice = (price) => price.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n\nconst ProductDetailModal = ({ productID, isModalVisible, onClose }) => {\n const dispatch = useDispatch();\n\n const currentProduct = useSelector((state) => state.products.currentProduct || []);\n const cartId = useSelector((state) => state.cart.cartId || null);\n\n const [isAddingToCart, setIsAddingToCart] = useState(false);\n\n useEffect(() => {\n if (isModalVisible && productID) {\n dispatch(fetchProductById(productID));\n }\n }, [dispatch, productID, isModalVisible]);\n\n const handleAddToCart = () => {\n if (!currentProduct.length) return;\n\n \n setIsAddingToCart(true);\n\n const cartData = {\n cartId,\n productID: currentProduct[0].productID,\n price: currentProduct[0].price,\n quantity: 1,\n };\n\n dispatch(addToCart(cartData))\n .then(() => {\n message.success(\"Product added to cart successfully!\");\n onClose();\n })\n .finally(() => setIsAddingToCart(false));\n };\n\n if (!currentProduct || !currentProduct.length) return
    No product found
    ;\n\n const product = currentProduct[0];\n const backendBaseURL = \"https://smfteapi.salesmate.app\";\n const imageUrl = `${backendBaseURL}/Media/Products_Images/${product.productImage?.split(\"\\\\\").pop()}`;\n\n return (\n \n \n \n {product.productName} - Best Price Online\n \n\n
    \n
    \n \n
    \n\n
    \n

    {product.productName}

    \n

    \n ₵{formatPrice(product.price)}.00\n

    \n
    \n {product.description?.split(\"\\n\").map((line, idx) => (\n

    \n {line}\n

    \n ))}\n
    \n
    \n
    \n\n
    \n }\n >\n Add to Cart\n \n
    \n \n );\n};\n\nexport default ProductDetailModal;\n","import React, { useEffect, useState, useMemo, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { fetchPaginatedProducts } from '../Redux/slice/productSlice';\nimport { Empty} from 'antd';\n\nimport { Helmet } from 'react-helmet';\n// Import search icon\nimport ProductDetailModal from './ProductDetails/ProductDetailsModal';\n\n\nconst ProductsPage = () => {\n const dispatch = useDispatch();\n const { products = [], loading } = useSelector((state) => state.products || {});\n\n const [currentPage, setCurrentPage] = useState(1);\n\n const [selectedProductId, setSelectedProductId] = useState(null);\n const [isModalVisible, setIsModalVisible] = useState(false);\n const [imageLoading, setImageLoading] = useState({});\n const [allProducts, setAllProducts] = useState([]); // Store paginated products cumulatively\n const [loadingMore, setLoadingMore] = useState(false); // Track auto-loading state\n\n const itemsPerPage = 24; // Load 24 products per request\n const observerRef = useRef(null); // Ref for Intersection Observer\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n useEffect(() => {\n setLoadingMore(true);\n dispatch(fetchPaginatedProducts({ pageNumber: currentPage, pageSize: itemsPerPage })).then((response) => {\n if (response.payload) {\n setAllProducts((prevProducts) => [...prevProducts, ...response.payload]); // Append new products\n }\n setLoadingMore(false);\n });\n }, [dispatch, currentPage]);\n\n // Filtering & Sorting Products\n const filteredProducts = useMemo(() => {\n return allProducts\n .filter((product) => product.status !== '0') // Exclude inactive products \n \n })\n \n\n const handleProductClick = (productId) => {\n setSelectedProductId(productId);\n setIsModalVisible(true);\n };\n\n const closeModal = () => {\n setSelectedProductId(null);\n setIsModalVisible(false);\n };\n\n // Intersection Observer to auto-load more products\n useEffect(() => {\n if (loadingMore) return; // Prevent multiple requests\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting) {\n setCurrentPage((prevPage) => prevPage + 1);\n }\n },\n { root: null, rootMargin: '100px', threshold: 0.1 }\n );\n\n if (observerRef.current) observer.observe(observerRef.current);\n\n return () => observer.disconnect();\n }, [loadingMore]);\n\n const formatPrice = (price) => price.toFixed(2).replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n\n return (\n
    \n \n Shop Phones & Gadgets | Best Prices at Franko Trading\n \n \n \n \n\n

    Shop

    \n\n\n\n {/* Products Display */}\n {loading && allProducts.length === 0 ? (\n
    \n {Array.from({ length: 12 }).map((_, index) => (\n
    \n
    \n
    \n
    \n
    \n ))}\n
    \n ) : filteredProducts.length > 0 ? (\n
    \n {filteredProducts.map((product) => (\n handleProductClick(product.productID)}\n >\n {/* Percentage Off Badge */}\n {product.oldPrice > 0 && product.oldPrice > product.price && (\n
    \n {Math.round(((product.oldPrice - product.price) / product.oldPrice) * 100)}% OFF\n
    \n )}\n \n {/* Product Image */}\n
    \n {imageLoading[product.productID] ? (\n
    \n ) : (\n setImageLoading((prev) => ({ ...prev, [product.productID]: false }))}\n onError={() => setImageLoading((prev) => ({ ...prev, [product.productID]: true }))}\n />\n )}\n
    \n \n {/* Product Name */}\n

    {product.productName}

    \n \n {/* Price Section */}\n
    \n \n

    \n ₵{formatPrice(product.price)}\n

    \n {product.oldPrice > 0 && (\n

    \n ₵{formatPrice(product.oldPrice)}\n

    \n )}\n
    \n
    \n \n ))}\n
    \n ) : (\n \n )}\n\n {/* Invisible trigger element for auto-loading */}\n
    \n\n{/* Show Skeleton Loader when loading more products */}\n{loadingMore && (\n
    \n {Array.from({ length: 8 }).map((_, index) => (\n
    \n
    \n
    \n
    \n
    \n ))}\n
    \n)}\n {selectedProductId && (\n \n )}\n
    \n );\n};\n\nexport default ProductsPage;\n","import dayjs from 'dayjs';\nimport weekday from 'dayjs/plugin/weekday';\nimport localeData from 'dayjs/plugin/localeData';\nimport weekOfYear from 'dayjs/plugin/weekOfYear';\nimport weekYear from 'dayjs/plugin/weekYear';\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\ndayjs.extend(customParseFormat);\ndayjs.extend(advancedFormat);\ndayjs.extend(weekday);\ndayjs.extend(localeData);\ndayjs.extend(weekOfYear);\ndayjs.extend(weekYear);\ndayjs.extend(function (o, c) {\n // todo support Wo (ISO week)\n var proto = c.prototype;\n var oldFormat = proto.format;\n proto.format = function f(formatStr) {\n var str = (formatStr || '').replace('Wo', 'wo');\n return oldFormat.bind(this)(str);\n };\n});\nvar localeMap = {\n // ar_EG:\n // az_AZ:\n // bg_BG:\n bn_BD: 'bn-bd',\n by_BY: 'be',\n // ca_ES:\n // cs_CZ:\n // da_DK:\n // de_DE:\n // el_GR:\n en_GB: 'en-gb',\n en_US: 'en',\n // es_ES:\n // et_EE:\n // fa_IR:\n // fi_FI:\n fr_BE: 'fr',\n // todo: dayjs has no fr_BE locale, use fr at present\n fr_CA: 'fr-ca',\n // fr_FR:\n // ga_IE:\n // gl_ES:\n // he_IL:\n // hi_IN:\n // hr_HR:\n // hu_HU:\n hy_AM: 'hy-am',\n // id_ID:\n // is_IS:\n // it_IT:\n // ja_JP:\n // ka_GE:\n // kk_KZ:\n // km_KH:\n kmr_IQ: 'ku',\n // kn_IN:\n // ko_KR:\n // ku_IQ: // previous ku in antd\n // lt_LT:\n // lv_LV:\n // mk_MK:\n // ml_IN:\n // mn_MN:\n // ms_MY:\n // nb_NO:\n // ne_NP:\n nl_BE: 'nl-be',\n // nl_NL:\n // pl_PL:\n pt_BR: 'pt-br',\n // pt_PT:\n // ro_RO:\n // ru_RU:\n // sk_SK:\n // sl_SI:\n // sr_RS:\n // sv_SE:\n // ta_IN:\n // th_TH:\n // tr_TR:\n // uk_UA:\n // ur_PK:\n // vi_VN:\n zh_CN: 'zh-cn',\n zh_HK: 'zh-hk',\n zh_TW: 'zh-tw'\n};\nvar parseLocale = function parseLocale(locale) {\n var mapLocale = localeMap[locale];\n return mapLocale || locale.split('_')[0];\n};\n\n/* istanbul ignore next */\nvar parseNoMatchNotice = function parseNoMatchNotice() {\n // zombieJ:\n // When user typing, its always miss match format.\n // This check is meaningless.\n // https://github.com/ant-design/ant-design/issues/51839\n // noteOnce(false, 'Not match any format. Please help to fire a issue about this.');\n};\nvar generateConfig = {\n // get\n getNow: function getNow() {\n var now = dayjs();\n // https://github.com/ant-design/ant-design/discussions/50934\n if (typeof now.tz === 'function') {\n return now.tz(); // use default timezone\n }\n return now;\n },\n getFixedDate: function getFixedDate(string) {\n return dayjs(string, ['YYYY-M-DD', 'YYYY-MM-DD']);\n },\n getEndDate: function getEndDate(date) {\n return date.endOf('month');\n },\n getWeekDay: function getWeekDay(date) {\n var clone = date.locale('en');\n return clone.weekday() + clone.localeData().firstDayOfWeek();\n },\n getYear: function getYear(date) {\n return date.year();\n },\n getMonth: function getMonth(date) {\n return date.month();\n },\n getDate: function getDate(date) {\n return date.date();\n },\n getHour: function getHour(date) {\n return date.hour();\n },\n getMinute: function getMinute(date) {\n return date.minute();\n },\n getSecond: function getSecond(date) {\n return date.second();\n },\n getMillisecond: function getMillisecond(date) {\n return date.millisecond();\n },\n // set\n addYear: function addYear(date, diff) {\n return date.add(diff, 'year');\n },\n addMonth: function addMonth(date, diff) {\n return date.add(diff, 'month');\n },\n addDate: function addDate(date, diff) {\n return date.add(diff, 'day');\n },\n setYear: function setYear(date, year) {\n return date.year(year);\n },\n setMonth: function setMonth(date, month) {\n return date.month(month);\n },\n setDate: function setDate(date, num) {\n return date.date(num);\n },\n setHour: function setHour(date, hour) {\n return date.hour(hour);\n },\n setMinute: function setMinute(date, minute) {\n return date.minute(minute);\n },\n setSecond: function setSecond(date, second) {\n return date.second(second);\n },\n setMillisecond: function setMillisecond(date, milliseconds) {\n return date.millisecond(milliseconds);\n },\n // Compare\n isAfter: function isAfter(date1, date2) {\n return date1.isAfter(date2);\n },\n isValidate: function isValidate(date) {\n return date.isValid();\n },\n locale: {\n getWeekFirstDay: function getWeekFirstDay(locale) {\n return dayjs().locale(parseLocale(locale)).localeData().firstDayOfWeek();\n },\n getWeekFirstDate: function getWeekFirstDate(locale, date) {\n return date.locale(parseLocale(locale)).weekday(0);\n },\n getWeek: function getWeek(locale, date) {\n return date.locale(parseLocale(locale)).week();\n },\n getShortWeekDays: function getShortWeekDays(locale) {\n return dayjs().locale(parseLocale(locale)).localeData().weekdaysMin();\n },\n getShortMonths: function getShortMonths(locale) {\n return dayjs().locale(parseLocale(locale)).localeData().monthsShort();\n },\n format: function format(locale, date, _format) {\n return date.locale(parseLocale(locale)).format(_format);\n },\n parse: function parse(locale, text, formats) {\n var localeStr = parseLocale(locale);\n for (var i = 0; i < formats.length; i += 1) {\n var format = formats[i];\n var formatText = text;\n if (format.includes('wo') || format.includes('Wo')) {\n // parse Wo\n var year = formatText.split('-')[0];\n var weekStr = formatText.split('-')[1];\n var firstWeek = dayjs(year, 'YYYY').startOf('year').locale(localeStr);\n for (var j = 0; j <= 52; j += 1) {\n var nextWeek = firstWeek.add(j, 'week');\n if (nextWeek.format('Wo') === weekStr) {\n return nextWeek;\n }\n }\n parseNoMatchNotice();\n return null;\n }\n var date = dayjs(formatText, format, true).locale(localeStr);\n if (date.isValid()) {\n return date;\n }\n }\n if (text) {\n parseNoMatchNotice();\n }\n return null;\n }\n }\n};\nexport default generateConfig;","// This icon file is generated automatically.\nvar CalendarOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z\" } }] }, \"name\": \"calendar\", \"theme\": \"outlined\" };\nexport default CalendarOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CalendarOutlinedSvg from \"@ant-design/icons-svg/es/asn/CalendarOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CalendarOutlined = function CalendarOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CalendarOutlinedSvg\n }));\n};\n\n/**![calendar](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4MCAxODRINzEydi02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMzg0di02NGMwLTQuNC0zLjYtOC04LThoLTU2Yy00LjQgMC04IDMuNi04IDh2NjRIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY2NjRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjIxNmMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDY1NkgxODRWNDYwaDY1NnYzODB6TTE4NCAzOTJWMjU2aDEyOHY0OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di00OGgyNTZ2NDhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtNDhoMTI4djEzNkgxODR6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CalendarOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'CalendarOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar ClockCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z\" } }] }, \"name\": \"clock-circle\", \"theme\": \"outlined\" };\nexport default ClockCircleOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ClockCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/ClockCircleOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ClockCircleOutlined = function ClockCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ClockCircleOutlinedSvg\n }));\n};\n\n/**![clock-circle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnoiIC8+PHBhdGggZD0iTTY4Ni43IDYzOC42TDU0NC4xIDUzNS41VjI4OGMwLTQuNC0zLjYtOC04LThINDg4Yy00LjQgMC04IDMuNi04IDh2Mjc1LjRjMCAyLjYgMS4yIDUgMy4zIDYuNWwxNjUuNCAxMjAuNmMzLjYgMi42IDguNiAxLjggMTEuMi0xLjdsMjguNi0zOWMyLjYtMy43IDEuOC04LjctMS44LTExLjJ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(ClockCircleOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'ClockCircleOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar SwapRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M873.1 596.2l-164-208A32 32 0 00684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z\" } }] }, \"name\": \"swap-right\", \"theme\": \"outlined\" };\nexport default SwapRightOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport SwapRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/SwapRightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar SwapRightOutlined = function SwapRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: SwapRightOutlinedSvg\n }));\n};\n\n/**![swap-right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg3My4xIDU5Ni4ybC0xNjQtMjA4QTMyIDMyIDAgMDA2ODQgMzc2aC02NC44Yy02LjcgMC0xMC40IDcuNy02LjMgMTNsMTQ0LjMgMTgzSDE1MmMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGg2OTUuOWMyNi44IDAgNDEuNy0zMC44IDI1LjItNTEuOHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(SwapRightOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'SwapRightOutlined';\n}\nexport default RefIcon;","import * as React from 'react';\nvar PickerContext = /*#__PURE__*/React.createContext(null);\nexport default PickerContext;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport Trigger from '@rc-component/trigger';\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { getRealPlacement } from \"../utils/uiUtil\";\nimport PickerContext from \"../PickerInput/context\";\nvar BUILT_IN_PLACEMENTS = {\n bottomLeft: {\n points: ['tl', 'bl'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n bottomRight: {\n points: ['tr', 'br'],\n offset: [0, 4],\n overflow: {\n adjustX: 1,\n adjustY: 1\n }\n },\n topLeft: {\n points: ['bl', 'tl'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n },\n topRight: {\n points: ['br', 'tr'],\n offset: [0, -4],\n overflow: {\n adjustX: 0,\n adjustY: 1\n }\n }\n};\nfunction PickerTrigger(_ref) {\n var popupElement = _ref.popupElement,\n popupStyle = _ref.popupStyle,\n popupClassName = _ref.popupClassName,\n popupAlign = _ref.popupAlign,\n transitionName = _ref.transitionName,\n getPopupContainer = _ref.getPopupContainer,\n children = _ref.children,\n range = _ref.range,\n placement = _ref.placement,\n _ref$builtinPlacement = _ref.builtinPlacements,\n builtinPlacements = _ref$builtinPlacement === void 0 ? BUILT_IN_PLACEMENTS : _ref$builtinPlacement,\n direction = _ref.direction,\n visible = _ref.visible,\n onClose = _ref.onClose;\n var _React$useContext = React.useContext(PickerContext),\n prefixCls = _React$useContext.prefixCls;\n var dropdownPrefixCls = \"\".concat(prefixCls, \"-dropdown\");\n var realPlacement = getRealPlacement(placement, direction === 'rtl');\n return /*#__PURE__*/React.createElement(Trigger, {\n showAction: [],\n hideAction: ['click'],\n popupPlacement: realPlacement,\n builtinPlacements: builtinPlacements,\n prefixCls: dropdownPrefixCls,\n popupTransitionName: transitionName,\n popup: popupElement,\n popupAlign: popupAlign,\n popupVisible: visible,\n popupClassName: classNames(popupClassName, _defineProperty(_defineProperty({}, \"\".concat(dropdownPrefixCls, \"-range\"), range), \"\".concat(dropdownPrefixCls, \"-rtl\"), direction === 'rtl')),\n popupStyle: popupStyle,\n stretch: \"minWidth\",\n getPopupContainer: getPopupContainer,\n onPopupVisibleChange: function onPopupVisibleChange(nextVisible) {\n if (!nextVisible) {\n onClose();\n }\n }\n }, children);\n}\nexport default PickerTrigger;","// ====================== Mode ======================\nexport function getRealPlacement(placement, rtl) {\n if (placement !== undefined) {\n return placement;\n }\n return rtl ? 'bottomRight' : 'bottomLeft';\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nexport function leftPad(str, length) {\n var fill = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';\n var current = String(str);\n while (current.length < length) {\n current = \"\".concat(fill).concat(current);\n }\n return current;\n}\n\n/**\n * Convert `value` to array. Will provide `[]` if is null or undefined.\n */\nexport function toArray(val) {\n if (val === null || val === undefined) {\n return [];\n }\n return Array.isArray(val) ? val : [val];\n}\nexport function fillIndex(ori, index, value) {\n var clone = _toConsumableArray(ori);\n clone[index] = value;\n return clone;\n}\n\n/** Pick props from the key list. Will filter empty value */\nexport function pickProps(props, keys) {\n var clone = {};\n var mergedKeys = keys || Object.keys(props);\n mergedKeys.forEach(function (key) {\n if (props[key] !== undefined) {\n clone[key] = props[key];\n }\n });\n return clone;\n}\nexport function getRowFormat(picker, locale, format) {\n if (format) {\n return format;\n }\n switch (picker) {\n // All from the `locale.fieldXXXFormat` first\n case 'time':\n return locale.fieldTimeFormat;\n case 'datetime':\n return locale.fieldDateTimeFormat;\n case 'month':\n return locale.fieldMonthFormat;\n case 'year':\n return locale.fieldYearFormat;\n case 'quarter':\n return locale.fieldQuarterFormat;\n case 'week':\n return locale.fieldWeekFormat;\n default:\n return locale.fieldDateFormat;\n }\n}\nexport function getFromDate(calendarValues, activeIndexList, activeIndex) {\n var mergedActiveIndex = activeIndex !== undefined ? activeIndex : activeIndexList[activeIndexList.length - 1];\n var firstValuedIndex = activeIndexList.find(function (index) {\n return calendarValues[index];\n });\n return mergedActiveIndex !== firstValuedIndex ? calendarValues[firstValuedIndex] : undefined;\n}","import { pickProps } from \"../utils/miscUtil\";\nexport function pickTriggerProps(props) {\n return pickProps(props, ['placement', 'builtinPlacements', 'popupAlign', 'getPopupContainer', 'transitionName', 'direction']);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { warning } from 'rc-util';\nimport * as React from 'react';\nexport default function useCellRender(cellRender, dateRender, monthCellRender, range) {\n // ========================= Warn =========================\n if (process.env.NODE_ENV !== 'production') {\n warning(!dateRender, \"'dateRender' is deprecated. Please use 'cellRender' instead.\");\n warning(!monthCellRender, \"'monthCellRender' is deprecated. Please use 'cellRender' instead.\");\n }\n\n // ======================== Render ========================\n // Merged render\n var mergedCellRender = React.useMemo(function () {\n if (cellRender) {\n return cellRender;\n }\n return function (current, info) {\n var date = current;\n if (dateRender && info.type === 'date') {\n return dateRender(date, info.today);\n }\n if (monthCellRender && info.type === 'month') {\n return monthCellRender(date, info.locale);\n }\n return info.originNode;\n };\n }, [cellRender, monthCellRender, dateRender]);\n\n // Cell render\n var onInternalCellRender = React.useCallback(function (date, info) {\n return mergedCellRender(date, _objectSpread(_objectSpread({}, info), {}, {\n range: range\n }));\n }, [mergedCellRender, range]);\n return onInternalCellRender;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { fillIndex } from \"../../utils/miscUtil\";\nimport * as React from 'react';\n/**\n * Used to control each fields invalidate status\n */\nexport default function useFieldsInvalidate(calendarValue, isInvalidateDate) {\n var allowEmpty = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var _React$useState = React.useState([false, false]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n fieldsInvalidates = _React$useState2[0],\n setFieldsInvalidates = _React$useState2[1];\n var onSelectorInvalid = function onSelectorInvalid(invalid, index) {\n setFieldsInvalidates(function (ori) {\n return fillIndex(ori, index, invalid);\n });\n };\n\n /**\n * For the Selector Input to mark as `aria-disabled`\n */\n var submitInvalidates = React.useMemo(function () {\n return fieldsInvalidates.map(function (invalid, index) {\n // If typing invalidate\n if (invalid) {\n return true;\n }\n var current = calendarValue[index];\n\n // Not check if all empty\n if (!current) {\n return false;\n }\n\n // Not allow empty\n if (!allowEmpty[index] && !current) {\n return true;\n }\n\n // Invalidate\n if (current && isInvalidateDate(current, {\n activeIndex: index\n })) {\n return true;\n }\n return false;\n });\n }, [calendarValue, fieldsInvalidates, isInvalidateDate, allowEmpty]);\n return [submitInvalidates, onSelectorInvalid];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport React from 'react';\nexport function fillTimeFormat(showHour, showMinute, showSecond, showMillisecond, showMeridiem) {\n var timeFormat = '';\n\n // Base HH:mm:ss\n var cells = [];\n if (showHour) {\n cells.push(showMeridiem ? 'hh' : 'HH');\n }\n if (showMinute) {\n cells.push('mm');\n }\n if (showSecond) {\n cells.push('ss');\n }\n timeFormat = cells.join(':');\n\n // Millisecond\n if (showMillisecond) {\n timeFormat += '.SSS';\n }\n\n // Meridiem\n if (showMeridiem) {\n timeFormat += ' A';\n }\n return timeFormat;\n}\n\n/**\n * Used for `useFilledProps` since it already in the React.useMemo\n */\nfunction fillLocale(locale, showHour, showMinute, showSecond, showMillisecond, use12Hours) {\n // Not fill `monthFormat` since `locale.shortMonths` handle this\n // Not fill `cellMeridiemFormat` since AM & PM by default\n var fieldDateTimeFormat = locale.fieldDateTimeFormat,\n fieldDateFormat = locale.fieldDateFormat,\n fieldTimeFormat = locale.fieldTimeFormat,\n fieldMonthFormat = locale.fieldMonthFormat,\n fieldYearFormat = locale.fieldYearFormat,\n fieldWeekFormat = locale.fieldWeekFormat,\n fieldQuarterFormat = locale.fieldQuarterFormat,\n yearFormat = locale.yearFormat,\n cellYearFormat = locale.cellYearFormat,\n cellQuarterFormat = locale.cellQuarterFormat,\n dayFormat = locale.dayFormat,\n cellDateFormat = locale.cellDateFormat;\n var timeFormat = fillTimeFormat(showHour, showMinute, showSecond, showMillisecond, use12Hours);\n return _objectSpread(_objectSpread({}, locale), {}, {\n fieldDateTimeFormat: fieldDateTimeFormat || \"YYYY-MM-DD \".concat(timeFormat),\n fieldDateFormat: fieldDateFormat || 'YYYY-MM-DD',\n fieldTimeFormat: fieldTimeFormat || timeFormat,\n fieldMonthFormat: fieldMonthFormat || 'YYYY-MM',\n fieldYearFormat: fieldYearFormat || 'YYYY',\n fieldWeekFormat: fieldWeekFormat || 'gggg-wo',\n fieldQuarterFormat: fieldQuarterFormat || 'YYYY-[Q]Q',\n yearFormat: yearFormat || 'YYYY',\n cellYearFormat: cellYearFormat || 'YYYY',\n cellQuarterFormat: cellQuarterFormat || '[Q]Q',\n cellDateFormat: cellDateFormat || dayFormat || 'D'\n });\n}\n\n/**\n * Fill locale format as start up\n */\nexport default function useLocale(locale, showProps) {\n var showHour = showProps.showHour,\n showMinute = showProps.showMinute,\n showSecond = showProps.showSecond,\n showMillisecond = showProps.showMillisecond,\n use12Hours = showProps.use12Hours;\n return React.useMemo(function () {\n return fillLocale(locale, showHour, showMinute, showSecond, showMillisecond, use12Hours);\n }, [locale, showHour, showMinute, showSecond, showMillisecond, use12Hours]);\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { getRowFormat, pickProps, toArray } from \"../utils/miscUtil\";\nimport { fillTimeFormat } from \"./useLocale\";\nfunction checkShow(format, keywords, show) {\n return show !== null && show !== void 0 ? show : keywords.some(function (keyword) {\n return format.includes(keyword);\n });\n}\nvar showTimeKeys = [\n// 'format',\n'showNow', 'showHour', 'showMinute', 'showSecond', 'showMillisecond', 'use12Hours', 'hourStep', 'minuteStep', 'secondStep', 'millisecondStep', 'hideDisabledOptions', 'defaultValue', 'disabledHours', 'disabledMinutes', 'disabledSeconds', 'disabledMilliseconds', 'disabledTime', 'changeOnScroll', 'defaultOpenValue'];\n\n/**\n * Get SharedTimeProps from props.\n */\nfunction pickTimeProps(props) {\n var timeProps = pickProps(props, showTimeKeys);\n var format = props.format,\n picker = props.picker;\n var propFormat = null;\n if (format) {\n propFormat = format;\n if (Array.isArray(propFormat)) {\n propFormat = propFormat[0];\n }\n propFormat = _typeof(propFormat) === 'object' ? propFormat.format : propFormat;\n }\n if (picker === 'time') {\n timeProps.format = propFormat;\n }\n return [timeProps, propFormat];\n}\nfunction isStringFormat(format) {\n return format && typeof format === 'string';\n}\n/** Check if all the showXXX is `undefined` */\nfunction existShowConfig(showHour, showMinute, showSecond, showMillisecond) {\n return [showHour, showMinute, showSecond, showMillisecond].some(function (show) {\n return show !== undefined;\n });\n}\n\n/** Fill the showXXX if needed */\nfunction fillShowConfig(hasShowConfig, showHour, showMinute, showSecond, showMillisecond) {\n var parsedShowHour = showHour;\n var parsedShowMinute = showMinute;\n var parsedShowSecond = showSecond;\n if (!hasShowConfig && !parsedShowHour && !parsedShowMinute && !parsedShowSecond && !showMillisecond) {\n parsedShowHour = true;\n parsedShowMinute = true;\n parsedShowSecond = true;\n } else if (hasShowConfig) {\n var _parsedShowHour, _parsedShowMinute, _parsedShowSecond;\n var existFalse = [parsedShowHour, parsedShowMinute, parsedShowSecond].some(function (show) {\n return show === false;\n });\n var existTrue = [parsedShowHour, parsedShowMinute, parsedShowSecond].some(function (show) {\n return show === true;\n });\n var defaultShow = existFalse ? true : !existTrue;\n parsedShowHour = (_parsedShowHour = parsedShowHour) !== null && _parsedShowHour !== void 0 ? _parsedShowHour : defaultShow;\n parsedShowMinute = (_parsedShowMinute = parsedShowMinute) !== null && _parsedShowMinute !== void 0 ? _parsedShowMinute : defaultShow;\n parsedShowSecond = (_parsedShowSecond = parsedShowSecond) !== null && _parsedShowSecond !== void 0 ? _parsedShowSecond : defaultShow;\n }\n return [parsedShowHour, parsedShowMinute, parsedShowSecond, showMillisecond];\n}\n\n/**\n * Get `showHour`, `showMinute`, `showSecond` or other from the props.\n * This is pure function, will not get `showXXX` from the `format` prop.\n */\nexport function getTimeProps(componentProps) {\n var showTime = componentProps.showTime;\n var _pickTimeProps = pickTimeProps(componentProps),\n _pickTimeProps2 = _slicedToArray(_pickTimeProps, 2),\n pickedProps = _pickTimeProps2[0],\n propFormat = _pickTimeProps2[1];\n var showTimeConfig = showTime && _typeof(showTime) === 'object' ? showTime : {};\n var timeConfig = _objectSpread(_objectSpread({\n defaultOpenValue: showTimeConfig.defaultOpenValue || showTimeConfig.defaultValue\n }, pickedProps), showTimeConfig);\n var showMillisecond = timeConfig.showMillisecond;\n var showHour = timeConfig.showHour,\n showMinute = timeConfig.showMinute,\n showSecond = timeConfig.showSecond;\n var hasShowConfig = existShowConfig(showHour, showMinute, showSecond, showMillisecond);\n var _fillShowConfig = fillShowConfig(hasShowConfig, showHour, showMinute, showSecond, showMillisecond);\n var _fillShowConfig2 = _slicedToArray(_fillShowConfig, 3);\n showHour = _fillShowConfig2[0];\n showMinute = _fillShowConfig2[1];\n showSecond = _fillShowConfig2[2];\n return [timeConfig, _objectSpread(_objectSpread({}, timeConfig), {}, {\n showHour: showHour,\n showMinute: showMinute,\n showSecond: showSecond,\n showMillisecond: showMillisecond\n }), timeConfig.format, propFormat];\n}\nexport function fillShowTimeConfig(picker, showTimeFormat, propFormat, timeConfig, locale) {\n var isTimePicker = picker === 'time';\n if (picker === 'datetime' || isTimePicker) {\n var pickedProps = timeConfig;\n\n // ====================== BaseFormat ======================\n var defaultLocaleFormat = getRowFormat(picker, locale, null);\n var baselineFormat = defaultLocaleFormat;\n var formatList = [showTimeFormat, propFormat];\n for (var i = 0; i < formatList.length; i += 1) {\n var format = toArray(formatList[i])[0];\n if (isStringFormat(format)) {\n baselineFormat = format;\n break;\n }\n }\n\n // ========================= Show =========================\n var showHour = pickedProps.showHour,\n showMinute = pickedProps.showMinute,\n showSecond = pickedProps.showSecond,\n showMillisecond = pickedProps.showMillisecond;\n var use12Hours = pickedProps.use12Hours;\n var showMeridiem = checkShow(baselineFormat, ['a', 'A', 'LT', 'LLL', 'LTS'], use12Hours);\n var hasShowConfig = existShowConfig(showHour, showMinute, showSecond, showMillisecond);\n\n // Fill with format, if needed\n if (!hasShowConfig) {\n showHour = checkShow(baselineFormat, ['H', 'h', 'k', 'LT', 'LLL']);\n showMinute = checkShow(baselineFormat, ['m', 'LT', 'LLL']);\n showSecond = checkShow(baselineFormat, ['s', 'LTS']);\n showMillisecond = checkShow(baselineFormat, ['SSS']);\n }\n\n // Fallback if all can not see\n // ======================== Format ========================\n var _fillShowConfig3 = fillShowConfig(hasShowConfig, showHour, showMinute, showSecond, showMillisecond);\n var _fillShowConfig4 = _slicedToArray(_fillShowConfig3, 3);\n showHour = _fillShowConfig4[0];\n showMinute = _fillShowConfig4[1];\n showSecond = _fillShowConfig4[2];\n var timeFormat = showTimeFormat || fillTimeFormat(showHour, showMinute, showSecond, showMillisecond, showMeridiem);\n\n // ======================== Props =========================\n return _objectSpread(_objectSpread({}, pickedProps), {}, {\n // Format\n format: timeFormat,\n // Show Config\n showHour: showHour,\n showMinute: showMinute,\n showSecond: showSecond,\n showMillisecond: showMillisecond,\n use12Hours: showMeridiem\n });\n }\n return null;\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\n\n/**\n * Used for `useFilledProps` since it already in the React.useMemo\n */\nexport function fillClearIcon(prefixCls, allowClear, clearIcon) {\n if (process.env.NODE_ENV !== 'production' && clearIcon) {\n warning(false, '`clearIcon` will be removed in future. Please use `allowClear` instead.');\n }\n if (allowClear === false) {\n return null;\n }\n var config = allowClear && _typeof(allowClear) === 'object' ? allowClear : {};\n return config.clearIcon || clearIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-clear-btn\")\n });\n}","export var WEEK_DAY_COUNT = 7;\n\n/**\n * Wrap the compare logic.\n * This will compare the each of value is empty first.\n * 1. All is empty, return true.\n * 2. One is empty, return false.\n * 3. return customize compare logic.\n */\nfunction nullableCompare(value1, value2, oriCompareFn) {\n if (!value1 && !value2 || value1 === value2) {\n return true;\n }\n if (!value1 || !value2) {\n return false;\n }\n return oriCompareFn();\n}\nexport function isSameDecade(generateConfig, decade1, decade2) {\n return nullableCompare(decade1, decade2, function () {\n var num1 = Math.floor(generateConfig.getYear(decade1) / 10);\n var num2 = Math.floor(generateConfig.getYear(decade2) / 10);\n return num1 === num2;\n });\n}\nexport function isSameYear(generateConfig, year1, year2) {\n return nullableCompare(year1, year2, function () {\n return generateConfig.getYear(year1) === generateConfig.getYear(year2);\n });\n}\nexport function getQuarter(generateConfig, date) {\n var quota = Math.floor(generateConfig.getMonth(date) / 3);\n return quota + 1;\n}\nexport function isSameQuarter(generateConfig, quarter1, quarter2) {\n return nullableCompare(quarter1, quarter2, function () {\n return isSameYear(generateConfig, quarter1, quarter2) && getQuarter(generateConfig, quarter1) === getQuarter(generateConfig, quarter2);\n });\n}\nexport function isSameMonth(generateConfig, month1, month2) {\n return nullableCompare(month1, month2, function () {\n return isSameYear(generateConfig, month1, month2) && generateConfig.getMonth(month1) === generateConfig.getMonth(month2);\n });\n}\nexport function isSameDate(generateConfig, date1, date2) {\n return nullableCompare(date1, date2, function () {\n return isSameYear(generateConfig, date1, date2) && isSameMonth(generateConfig, date1, date2) && generateConfig.getDate(date1) === generateConfig.getDate(date2);\n });\n}\nexport function isSameTime(generateConfig, time1, time2) {\n return nullableCompare(time1, time2, function () {\n return generateConfig.getHour(time1) === generateConfig.getHour(time2) && generateConfig.getMinute(time1) === generateConfig.getMinute(time2) && generateConfig.getSecond(time1) === generateConfig.getSecond(time2);\n });\n}\n\n/**\n * Check if the Date is all the same of timestamp\n */\nexport function isSameTimestamp(generateConfig, time1, time2) {\n return nullableCompare(time1, time2, function () {\n return isSameDate(generateConfig, time1, time2) && isSameTime(generateConfig, time1, time2) && generateConfig.getMillisecond(time1) === generateConfig.getMillisecond(time2);\n });\n}\nexport function isSameWeek(generateConfig, locale, date1, date2) {\n return nullableCompare(date1, date2, function () {\n var weekStartDate1 = generateConfig.locale.getWeekFirstDate(locale, date1);\n var weekStartDate2 = generateConfig.locale.getWeekFirstDate(locale, date2);\n return isSameYear(generateConfig, weekStartDate1, weekStartDate2) && generateConfig.locale.getWeek(locale, date1) === generateConfig.locale.getWeek(locale, date2);\n });\n}\nexport function isSame(generateConfig, locale, source, target, type) {\n switch (type) {\n case 'date':\n return isSameDate(generateConfig, source, target);\n case 'week':\n return isSameWeek(generateConfig, locale.locale, source, target);\n case 'month':\n return isSameMonth(generateConfig, source, target);\n case 'quarter':\n return isSameQuarter(generateConfig, source, target);\n case 'year':\n return isSameYear(generateConfig, source, target);\n case 'decade':\n return isSameDecade(generateConfig, source, target);\n case 'time':\n return isSameTime(generateConfig, source, target);\n default:\n return isSameTimestamp(generateConfig, source, target);\n }\n}\n\n/** Between in date but not equal of date */\nexport function isInRange(generateConfig, startDate, endDate, current) {\n if (!startDate || !endDate || !current) {\n return false;\n }\n return generateConfig.isAfter(current, startDate) && generateConfig.isAfter(endDate, current);\n}\nexport function isSameOrAfter(generateConfig, locale, date1, date2, type) {\n if (isSame(generateConfig, locale, date1, date2, type)) {\n return true;\n }\n return generateConfig.isAfter(date1, date2);\n}\nexport function getWeekStartDate(locale, generateConfig, value) {\n var weekFirstDay = generateConfig.locale.getWeekFirstDay(locale);\n var monthStartDate = generateConfig.setDate(value, 1);\n var startDateWeekDay = generateConfig.getWeekDay(monthStartDate);\n var alignStartDate = generateConfig.addDate(monthStartDate, weekFirstDay - startDateWeekDay);\n if (generateConfig.getMonth(alignStartDate) === generateConfig.getMonth(value) && generateConfig.getDate(alignStartDate) > 1) {\n alignStartDate = generateConfig.addDate(alignStartDate, -7);\n }\n return alignStartDate;\n}\nexport function formatValue(value, _ref) {\n var generateConfig = _ref.generateConfig,\n locale = _ref.locale,\n format = _ref.format;\n if (!value) {\n return '';\n }\n return typeof format === 'function' ? format(value) : generateConfig.locale.format(locale.locale, value, format);\n}\n\n/**\n * Fill the time info into Date if provided.\n */\nexport function fillTime(generateConfig, date, time) {\n var tmpDate = date;\n var getFn = ['getHour', 'getMinute', 'getSecond', 'getMillisecond'];\n var setFn = ['setHour', 'setMinute', 'setSecond', 'setMillisecond'];\n setFn.forEach(function (fn, index) {\n if (time) {\n tmpDate = generateConfig[fn](tmpDate, generateConfig[getFn[index]](time));\n } else {\n tmpDate = generateConfig[fn](tmpDate, 0);\n }\n });\n return tmpDate;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { warning } from 'rc-util';\nimport * as React from 'react';\nimport useLocale from \"../../hooks/useLocale\";\nimport { fillShowTimeConfig, getTimeProps } from \"../../hooks/useTimeConfig\";\nimport { toArray } from \"../../utils/miscUtil\";\nimport { fillClearIcon } from \"../Selector/hooks/useClearIcon\";\nimport useDisabledBoundary from \"./useDisabledBoundary\";\nimport { useFieldFormat } from \"./useFieldFormat\";\nimport useInputReadOnly from \"./useInputReadOnly\";\nimport useInvalidate from \"./useInvalidate\";\nfunction useList(value) {\n var fillMode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var values = React.useMemo(function () {\n var list = value ? toArray(value) : value;\n if (fillMode && list) {\n list[1] = list[1] || list[0];\n }\n return list;\n }, [value, fillMode]);\n return values;\n}\n\n/**\n * Align the outer props with unique typed and fill undefined props.\n * This is shared with both RangePicker and Picker. This will do:\n * - Convert `value` & `defaultValue` to array\n * - handle the legacy props fill like `clearIcon` + `allowClear` = `clearIcon`\n */\nexport default function useFilledProps(props, updater) {\n var generateConfig = props.generateConfig,\n locale = props.locale,\n _props$picker = props.picker,\n picker = _props$picker === void 0 ? 'date' : _props$picker,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-picker' : _props$prefixCls,\n _props$styles = props.styles,\n styles = _props$styles === void 0 ? {} : _props$styles,\n _props$classNames = props.classNames,\n classNames = _props$classNames === void 0 ? {} : _props$classNames,\n _props$order = props.order,\n order = _props$order === void 0 ? true : _props$order,\n _props$components = props.components,\n components = _props$components === void 0 ? {} : _props$components,\n inputRender = props.inputRender,\n allowClear = props.allowClear,\n clearIcon = props.clearIcon,\n needConfirm = props.needConfirm,\n multiple = props.multiple,\n format = props.format,\n inputReadOnly = props.inputReadOnly,\n disabledDate = props.disabledDate,\n minDate = props.minDate,\n maxDate = props.maxDate,\n showTime = props.showTime,\n value = props.value,\n defaultValue = props.defaultValue,\n pickerValue = props.pickerValue,\n defaultPickerValue = props.defaultPickerValue;\n var values = useList(value);\n var defaultValues = useList(defaultValue);\n var pickerValues = useList(pickerValue);\n var defaultPickerValues = useList(defaultPickerValue);\n\n // ======================== Picker ========================\n /** Almost same as `picker`, but add `datetime` for `date` with `showTime` */\n var internalPicker = picker === 'date' && showTime ? 'datetime' : picker;\n\n /** The picker is `datetime` or `time` */\n var multipleInteractivePicker = internalPicker === 'time' || internalPicker === 'datetime';\n var complexPicker = multipleInteractivePicker || multiple;\n var mergedNeedConfirm = needConfirm !== null && needConfirm !== void 0 ? needConfirm : multipleInteractivePicker;\n\n // ========================== Time ==========================\n // Auto `format` need to check `showTime.showXXX` first.\n // And then merge the `locale` into `mergedShowTime`.\n var _getTimeProps = getTimeProps(props),\n _getTimeProps2 = _slicedToArray(_getTimeProps, 4),\n timeProps = _getTimeProps2[0],\n localeTimeProps = _getTimeProps2[1],\n showTimeFormat = _getTimeProps2[2],\n propFormat = _getTimeProps2[3];\n\n // ======================= Locales ========================\n var mergedLocale = useLocale(locale, localeTimeProps);\n var mergedShowTime = React.useMemo(function () {\n return fillShowTimeConfig(internalPicker, showTimeFormat, propFormat, timeProps, mergedLocale);\n }, [internalPicker, showTimeFormat, propFormat, timeProps, mergedLocale]);\n\n // ======================= Warning ========================\n if (process.env.NODE_ENV !== 'production' && picker === 'time') {\n if (['disabledHours', 'disabledMinutes', 'disabledSeconds'].some(function (key) {\n return props[key];\n })) {\n warning(false, \"'disabledHours', 'disabledMinutes', 'disabledSeconds' will be removed in the next major version, please use 'disabledTime' instead.\");\n }\n }\n\n // ======================== Props =========================\n var filledProps = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, props), {}, {\n prefixCls: prefixCls,\n locale: mergedLocale,\n picker: picker,\n styles: styles,\n classNames: classNames,\n order: order,\n components: _objectSpread({\n input: inputRender\n }, components),\n clearIcon: fillClearIcon(prefixCls, allowClear, clearIcon),\n showTime: mergedShowTime,\n value: values,\n defaultValue: defaultValues,\n pickerValue: pickerValues,\n defaultPickerValue: defaultPickerValues\n }, updater === null || updater === void 0 ? void 0 : updater());\n }, [props]);\n\n // ======================== Format ========================\n var _useFieldFormat = useFieldFormat(internalPicker, mergedLocale, format),\n _useFieldFormat2 = _slicedToArray(_useFieldFormat, 2),\n formatList = _useFieldFormat2[0],\n maskFormat = _useFieldFormat2[1];\n\n // ======================= ReadOnly =======================\n var mergedInputReadOnly = useInputReadOnly(formatList, inputReadOnly, multiple);\n\n // ======================= Boundary =======================\n var disabledBoundaryDate = useDisabledBoundary(generateConfig, locale, disabledDate, minDate, maxDate);\n\n // ====================== Invalidate ======================\n var isInvalidateDate = useInvalidate(generateConfig, picker, disabledBoundaryDate, mergedShowTime);\n\n // ======================== Merged ========================\n var mergedProps = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, filledProps), {}, {\n needConfirm: mergedNeedConfirm,\n inputReadOnly: mergedInputReadOnly,\n disabledDate: disabledBoundaryDate\n });\n }, [filledProps, mergedNeedConfirm, mergedInputReadOnly, disabledBoundaryDate]);\n return [mergedProps, internalPicker, complexPicker, formatList, maskFormat, isInvalidateDate];\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nimport { getRowFormat, toArray } from \"../../utils/miscUtil\";\nexport function useFieldFormat(picker, locale, format) {\n return React.useMemo(function () {\n var rawFormat = getRowFormat(picker, locale, format);\n var formatList = toArray(rawFormat);\n var firstFormat = formatList[0];\n var maskFormat = _typeof(firstFormat) === 'object' && firstFormat.type === 'mask' ? firstFormat.format : null;\n return [\n // Format list\n formatList.map(function (config) {\n return typeof config === 'string' || typeof config === 'function' ? config : config.format;\n }),\n // Mask Format\n maskFormat];\n }, [picker, locale, format]);\n}","export default function useInputReadOnly(formatList, inputReadOnly, multiple) {\n if (typeof formatList[0] === 'function' || multiple) {\n return true;\n }\n return inputReadOnly;\n}","import { useEvent } from 'rc-util';\nimport { isSame } from \"../../utils/dateUtil\";\n/**\n * Merge `disabledDate` with `minDate` & `maxDate`.\n */\nexport default function useDisabledBoundary(generateConfig, locale, disabledDate, minDate, maxDate) {\n var mergedDisabledDate = useEvent(function (date, info) {\n if (disabledDate && disabledDate(date, info)) {\n return true;\n }\n if (minDate && generateConfig.isAfter(minDate, date) && !isSame(generateConfig, locale, minDate, date, info.type)) {\n return true;\n }\n if (maxDate && generateConfig.isAfter(date, maxDate) && !isSame(generateConfig, locale, maxDate, date, info.type)) {\n return true;\n }\n return false;\n });\n return mergedDisabledDate;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { useEvent } from 'rc-util';\n/**\n * Check if provided date is valid for the `disabledDate` & `showTime.disabledTime`.\n */\nexport default function useInvalidate(generateConfig, picker, disabledDate, showTime) {\n // Check disabled date\n var isInvalidate = useEvent(function (date, info) {\n var outsideInfo = _objectSpread({\n type: picker\n }, info);\n delete outsideInfo.activeIndex;\n if (\n // Date object is invalid\n !generateConfig.isValidate(date) ||\n // Date is disabled by `disabledDate`\n disabledDate && disabledDate(date, outsideInfo)) {\n return true;\n }\n if ((picker === 'date' || picker === 'time') && showTime) {\n var _showTime$disabledTim;\n var range = info && info.activeIndex === 1 ? 'end' : 'start';\n var _ref = ((_showTime$disabledTim = showTime.disabledTime) === null || _showTime$disabledTim === void 0 ? void 0 : _showTime$disabledTim.call(showTime, date, range, {\n from: outsideInfo.from\n })) || {},\n disabledHours = _ref.disabledHours,\n disabledMinutes = _ref.disabledMinutes,\n disabledSeconds = _ref.disabledSeconds,\n disabledMilliseconds = _ref.disabledMilliseconds;\n var legacyDisabledHours = showTime.disabledHours,\n legacyDisabledMinutes = showTime.disabledMinutes,\n legacyDisabledSeconds = showTime.disabledSeconds;\n var mergedDisabledHours = disabledHours || legacyDisabledHours;\n var mergedDisabledMinutes = disabledMinutes || legacyDisabledMinutes;\n var mergedDisabledSeconds = disabledSeconds || legacyDisabledSeconds;\n var hour = generateConfig.getHour(date);\n var minute = generateConfig.getMinute(date);\n var second = generateConfig.getSecond(date);\n var millisecond = generateConfig.getMillisecond(date);\n if (mergedDisabledHours && mergedDisabledHours().includes(hour)) {\n return true;\n }\n if (mergedDisabledMinutes && mergedDisabledMinutes(hour).includes(minute)) {\n return true;\n }\n if (mergedDisabledSeconds && mergedDisabledSeconds(hour, minute).includes(second)) {\n return true;\n }\n if (disabledMilliseconds && disabledMilliseconds(hour, minute, second).includes(millisecond)) {\n return true;\n }\n }\n return false;\n });\n return isInvalidate;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useDelayState from \"./useDelayState\";\n\n/**\n * Control the open state.\n * Will not close if activeElement is on the popup.\n */\nexport default function useOpen(open, defaultOpen) {\n var disabledList = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var onOpenChange = arguments.length > 3 ? arguments[3] : undefined;\n var mergedOpen = disabledList.every(function (disabled) {\n return disabled;\n }) ? false : open;\n\n // Delay for handle the open state, in case fast shift from `open` -> `close` -> `open`\n // const [rafOpen, setRafOpen] = useLockState(open, defaultOpen || false, onOpenChange);\n var _useDelayState = useDelayState(mergedOpen, defaultOpen || false, onOpenChange),\n _useDelayState2 = _slicedToArray(_useDelayState, 2),\n rafOpen = _useDelayState2[0],\n setRafOpen = _useDelayState2[1];\n function setOpen(next) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!config.inherit || rafOpen) {\n setRafOpen(next, config.force);\n }\n }\n return [rafOpen, setOpen];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent, useMergedState } from 'rc-util';\nimport raf from \"rc-util/es/raf\";\nimport React from 'react';\n\n/**\n * Will be `true` immediately for next effect.\n * But will be `false` for a delay of effect.\n */\nexport default function useDelayState(value, defaultValue, onChange) {\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n state = _useMergedState2[0],\n setState = _useMergedState2[1];\n var nextValueRef = React.useRef(value);\n\n // ============================= Update =============================\n var rafRef = React.useRef();\n var cancelRaf = function cancelRaf() {\n raf.cancel(rafRef.current);\n };\n var doUpdate = useEvent(function () {\n setState(nextValueRef.current);\n if (onChange && state !== nextValueRef.current) {\n onChange(nextValueRef.current);\n }\n });\n var updateValue = useEvent(function (next, immediately) {\n cancelRaf();\n nextValueRef.current = next;\n if (next || immediately) {\n doUpdate();\n } else {\n rafRef.current = raf(doUpdate);\n }\n });\n React.useEffect(function () {\n return cancelRaf;\n }, []);\n return [state, updateValue];\n}","import * as React from 'react';\nexport default function usePickerRef(ref) {\n var selectorRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n var _selectorRef$current;\n return {\n nativeElement: (_selectorRef$current = selectorRef.current) === null || _selectorRef$current === void 0 ? void 0 : _selectorRef$current.nativeElement,\n focus: function focus(options) {\n var _selectorRef$current2;\n (_selectorRef$current2 = selectorRef.current) === null || _selectorRef$current2 === void 0 || _selectorRef$current2.focus(options);\n },\n blur: function blur() {\n var _selectorRef$current3;\n (_selectorRef$current3 = selectorRef.current) === null || _selectorRef$current3 === void 0 || _selectorRef$current3.blur();\n }\n };\n });\n return selectorRef;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nexport default function usePresets(presets, legacyRanges) {\n return React.useMemo(function () {\n if (presets) {\n return presets;\n }\n if (legacyRanges) {\n warning(false, '`ranges` is deprecated. Please use `presets` instead.');\n return Object.entries(legacyRanges).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n label = _ref2[0],\n value = _ref2[1];\n return {\n label: label,\n value: value\n };\n });\n }\n return [];\n }, [presets, legacyRanges]);\n}","import { useLayoutUpdateEffect } from \"rc-util/es/hooks/useLayoutEffect\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\n\n/**\n * Trigger `callback` immediately when `condition` is `true`.\n * But trigger `callback` in next frame when `condition` is `false`.\n */\nexport default function useLockEffect(condition, callback) {\n var delayFrames = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var callbackRef = React.useRef(callback);\n callbackRef.current = callback;\n useLayoutUpdateEffect(function () {\n if (condition) {\n callbackRef.current(condition);\n } else {\n var id = raf(function () {\n callbackRef.current(condition);\n }, delayFrames);\n return function () {\n raf.cancel(id);\n };\n }\n }, [condition]);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useLockEffect from \"./useLockEffect\";\n/**\n * When user first focus one input, any submit will trigger focus another one.\n * When second time focus one input, submit will not trigger focus again.\n * When click outside to close the panel, trigger event if it can trigger onChange.\n */\nexport default function useRangeActive(disabled) {\n var empty = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var mergedOpen = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var _React$useState = React.useState(0),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeIndex = _React$useState2[0],\n setActiveIndex = _React$useState2[1];\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n focused = _React$useState4[0],\n setFocused = _React$useState4[1];\n var activeListRef = React.useRef([]);\n var submitIndexRef = React.useRef(null);\n var lastOperationRef = React.useRef(null);\n var updateSubmitIndex = function updateSubmitIndex(index) {\n submitIndexRef.current = index;\n };\n var hasActiveSubmitValue = function hasActiveSubmitValue(index) {\n return submitIndexRef.current === index;\n };\n var triggerFocus = function triggerFocus(nextFocus) {\n setFocused(nextFocus);\n };\n\n // ============================= Record =============================\n var lastOperation = function lastOperation(type) {\n if (type) {\n lastOperationRef.current = type;\n }\n return lastOperationRef.current;\n };\n\n // ============================ Strategy ============================\n // Trigger when input enter or input blur or panel close\n var nextActiveIndex = function nextActiveIndex(nextValue) {\n var list = activeListRef.current;\n var filledActiveSet = new Set(list.filter(function (index) {\n return nextValue[index] || empty[index];\n }));\n var nextIndex = list[list.length - 1] === 0 ? 1 : 0;\n if (filledActiveSet.size >= 2 || disabled[nextIndex]) {\n return null;\n }\n return nextIndex;\n };\n\n // ============================= Effect =============================\n // Wait in case it's from the click outside to blur\n useLockEffect(focused || mergedOpen, function () {\n if (!focused) {\n activeListRef.current = [];\n updateSubmitIndex(null);\n }\n });\n React.useEffect(function () {\n if (focused) {\n activeListRef.current.push(activeIndex);\n }\n }, [focused, activeIndex]);\n return [focused, triggerFocus, lastOperation, activeIndex, setActiveIndex, nextActiveIndex, activeListRef.current, updateSubmitIndex, hasActiveSubmitValue];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useMergedState } from 'rc-util';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { fillTime, isSame } from \"../../utils/dateUtil\";\nexport function offsetPanelDate(generateConfig, picker, date, offset) {\n switch (picker) {\n case 'date':\n case 'week':\n return generateConfig.addMonth(date, offset);\n case 'month':\n case 'quarter':\n return generateConfig.addYear(date, offset);\n case 'year':\n return generateConfig.addYear(date, offset * 10);\n case 'decade':\n return generateConfig.addYear(date, offset * 100);\n default:\n return date;\n }\n}\nvar EMPTY_LIST = [];\nexport default function useRangePickerValue(generateConfig, locale, calendarValue, modes, open, activeIndex, pickerMode, multiplePanel) {\n var defaultPickerValue = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : EMPTY_LIST;\n var pickerValue = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : EMPTY_LIST;\n var timeDefaultValue = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : EMPTY_LIST;\n var onPickerValueChange = arguments.length > 11 ? arguments[11] : undefined;\n var minDate = arguments.length > 12 ? arguments[12] : undefined;\n var maxDate = arguments.length > 13 ? arguments[13] : undefined;\n var isTimePicker = pickerMode === 'time';\n\n // ======================== Active ========================\n // `activeIndex` must be valid to avoid getting empty `pickerValue`\n var mergedActiveIndex = activeIndex || 0;\n\n // ===================== Picker Value =====================\n var getDefaultPickerValue = function getDefaultPickerValue(index) {\n var now = generateConfig.getNow();\n if (isTimePicker) {\n now = fillTime(generateConfig, now);\n }\n return defaultPickerValue[index] || calendarValue[index] || now;\n };\n\n // Align `pickerValue` with `showTime.defaultValue`\n var _pickerValue = _slicedToArray(pickerValue, 2),\n startPickerValue = _pickerValue[0],\n endPickerValue = _pickerValue[1];\n\n // PickerValue state\n var _useMergedState = useMergedState(function () {\n return getDefaultPickerValue(0);\n }, {\n value: startPickerValue\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedStartPickerValue = _useMergedState2[0],\n setStartPickerValue = _useMergedState2[1];\n var _useMergedState3 = useMergedState(function () {\n return getDefaultPickerValue(1);\n }, {\n value: endPickerValue\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n mergedEndPickerValue = _useMergedState4[0],\n setEndPickerValue = _useMergedState4[1];\n\n // Current PickerValue\n var currentPickerValue = React.useMemo(function () {\n var current = [mergedStartPickerValue, mergedEndPickerValue][mergedActiveIndex];\n\n // Merge the `showTime.defaultValue` into `pickerValue`\n return isTimePicker ? current : fillTime(generateConfig, current, timeDefaultValue[mergedActiveIndex]);\n }, [isTimePicker, mergedStartPickerValue, mergedEndPickerValue, mergedActiveIndex, generateConfig, timeDefaultValue]);\n var setCurrentPickerValue = function setCurrentPickerValue(nextPickerValue) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'panel';\n var updater = [setStartPickerValue, setEndPickerValue][mergedActiveIndex];\n updater(nextPickerValue);\n var clone = [mergedStartPickerValue, mergedEndPickerValue];\n clone[mergedActiveIndex] = nextPickerValue;\n if (onPickerValueChange && (!isSame(generateConfig, locale, mergedStartPickerValue, clone[0], pickerMode) || !isSame(generateConfig, locale, mergedEndPickerValue, clone[1], pickerMode))) {\n onPickerValueChange(clone, {\n source: source,\n range: mergedActiveIndex === 1 ? 'end' : 'start',\n mode: modes\n });\n }\n };\n\n // ======================== Effect ========================\n /**\n * EndDate pickerValue is little different. It should be:\n * - If date picker (without time), endDate is not same year & month as startDate\n * - pickerValue minus one month\n * - Else pass directly\n */\n var getEndDatePickerValue = function getEndDatePickerValue(startDate, endDate) {\n if (multiplePanel) {\n // Basic offset\n var SAME_CHECKER = {\n date: 'month',\n week: 'month',\n month: 'year',\n quarter: 'year'\n };\n var mode = SAME_CHECKER[pickerMode];\n if (mode && !isSame(generateConfig, locale, startDate, endDate, mode)) {\n return offsetPanelDate(generateConfig, pickerMode, endDate, -1);\n }\n\n // Year offset\n if (pickerMode === 'year' && startDate) {\n var srcYear = Math.floor(generateConfig.getYear(startDate) / 10);\n var tgtYear = Math.floor(generateConfig.getYear(endDate) / 10);\n if (srcYear !== tgtYear) {\n return offsetPanelDate(generateConfig, pickerMode, endDate, -1);\n }\n }\n }\n return endDate;\n };\n\n // >>> When switch field, reset the picker value as prev field picker value\n var prevActiveIndexRef = React.useRef(null);\n useLayoutEffect(function () {\n if (open) {\n if (!defaultPickerValue[mergedActiveIndex]) {\n var nextPickerValue = isTimePicker ? null : generateConfig.getNow();\n\n /**\n * 1. If has prevActiveIndex, use it to avoid panel jump\n * 2. If current field has value\n * - If `activeIndex` is 1 and `calendarValue[0]` is not same panel as `calendarValue[1]`,\n * offset `calendarValue[1]` and set it\n * - Else use `calendarValue[activeIndex]`\n * 3. If current field has no value but another field has value, use another field value\n * 4. Else use now (not any `calendarValue` can ref)\n */\n\n if (prevActiveIndexRef.current !== null && prevActiveIndexRef.current !== mergedActiveIndex) {\n // If from another field, not jump picker value\n nextPickerValue = [mergedStartPickerValue, mergedEndPickerValue][mergedActiveIndex ^ 1];\n } else if (calendarValue[mergedActiveIndex]) {\n // Current field has value\n nextPickerValue = mergedActiveIndex === 0 ? calendarValue[0] : getEndDatePickerValue(calendarValue[0], calendarValue[1]);\n } else if (calendarValue[mergedActiveIndex ^ 1]) {\n // Current field has no value but another field has value\n nextPickerValue = calendarValue[mergedActiveIndex ^ 1];\n }\n\n // Only sync when has value, this will sync in the `min-max` logic\n if (nextPickerValue) {\n // nextPickerValue < minDate\n if (minDate && generateConfig.isAfter(minDate, nextPickerValue)) {\n nextPickerValue = minDate;\n }\n\n // maxDate < nextPickerValue\n var offsetPickerValue = multiplePanel ? offsetPanelDate(generateConfig, pickerMode, nextPickerValue, 1) : nextPickerValue;\n if (maxDate && generateConfig.isAfter(offsetPickerValue, maxDate)) {\n nextPickerValue = multiplePanel ? offsetPanelDate(generateConfig, pickerMode, maxDate, -1) : maxDate;\n }\n setCurrentPickerValue(nextPickerValue, 'reset');\n }\n }\n }\n }, [open, mergedActiveIndex, calendarValue[mergedActiveIndex]]);\n\n // >>> Reset prevActiveIndex when panel closed\n React.useEffect(function () {\n if (open) {\n prevActiveIndexRef.current = mergedActiveIndex;\n } else {\n prevActiveIndexRef.current = null;\n }\n }, [open, mergedActiveIndex]);\n\n // >>> defaultPickerValue: Resync to `defaultPickerValue` for each panel focused\n useLayoutEffect(function () {\n if (open && defaultPickerValue) {\n if (defaultPickerValue[mergedActiveIndex]) {\n setCurrentPickerValue(defaultPickerValue[mergedActiveIndex], 'reset');\n }\n }\n }, [open, mergedActiveIndex]);\n return [currentPickerValue, setCurrentPickerValue];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n\n/**\n * Sync value with state.\n * This should only used for internal which not affect outside calculation.\n * Since it's not safe for suspense.\n */\nexport default function useSyncState(defaultValue, controlledValue) {\n var valueRef = React.useRef(defaultValue);\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n var getter = function getter(useControlledValueFirst) {\n return useControlledValueFirst && controlledValue !== undefined ? controlledValue : valueRef.current;\n };\n var setter = function setter(nextValue) {\n valueRef.current = nextValue;\n forceUpdate({});\n };\n return [getter, setter, getter(true)];\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { useEvent, useMergedState } from 'rc-util';\nimport * as React from 'react';\nimport useSyncState from \"../../hooks/useSyncState\";\nimport { formatValue, isSame, isSameTimestamp } from \"../../utils/dateUtil\";\nimport { fillIndex } from \"../../utils/miscUtil\";\nimport useLockEffect from \"./useLockEffect\";\nvar EMPTY_VALUE = [];\n\n// Submit Logic:\n// * ✅ Value:\n// * merged value using controlled value, if not, use stateValue\n// * When merged value change, [1] resync calendar value and submit value\n// * ✅ Calender Value:\n// * 💻 When user typing is validate, change the calendar value\n// * 🌅 When user click on the panel, change the calendar value\n// * Submit Value:\n// * 💻 When user blur the input, flush calendar value to submit value\n// * 🌅 When user click on the panel is no needConfirm, flush calendar value to submit value\n// * 🌅 When user click on the panel is needConfirm and click OK, flush calendar value to submit value\n// * Blur logic & close logic:\n// * ✅ For value, always try flush submit\n// * ✅ If `needConfirm`, reset as [1]\n// * Else (`!needConfirm`)\n// * If has another index field, active another index\n// * ✅ Flush submit:\n// * If all the start & end field is confirmed or all blur or panel closed\n// * Update `needSubmit` mark to true\n// * trigger onChange by `needSubmit` and update stateValue\n\nfunction useUtil(generateConfig, locale, formatList) {\n var getDateTexts = function getDateTexts(dates) {\n return dates.map(function (date) {\n return formatValue(date, {\n generateConfig: generateConfig,\n locale: locale,\n format: formatList[0]\n });\n });\n };\n var isSameDates = function isSameDates(source, target) {\n var maxLen = Math.max(source.length, target.length);\n var diffIndex = -1;\n for (var i = 0; i < maxLen; i += 1) {\n var prev = source[i] || null;\n var next = target[i] || null;\n if (prev !== next && !isSameTimestamp(generateConfig, prev, next)) {\n diffIndex = i;\n break;\n }\n }\n return [diffIndex < 0, diffIndex !== 0];\n };\n return [getDateTexts, isSameDates];\n}\nfunction orderDates(dates, generateConfig) {\n return _toConsumableArray(dates).sort(function (a, b) {\n return generateConfig.isAfter(a, b) ? 1 : -1;\n });\n}\n\n/**\n * Used for internal value management.\n * It should always use `mergedValue` in render logic\n */\nfunction useCalendarValue(mergedValue) {\n var _useSyncState = useSyncState(mergedValue),\n _useSyncState2 = _slicedToArray(_useSyncState, 2),\n calendarValue = _useSyncState2[0],\n setCalendarValue = _useSyncState2[1];\n\n /** Sync calendarValue & submitValue back with value */\n var syncWithValue = useEvent(function () {\n setCalendarValue(mergedValue);\n });\n React.useEffect(function () {\n syncWithValue();\n }, [mergedValue]);\n return [calendarValue, setCalendarValue];\n}\n\n/**\n * Control the internal `value` align with prop `value` and provide a temp `calendarValue` for ui.\n * `calendarValue` will be reset when blur & focus & open.\n */\nexport function useInnerValue(generateConfig, locale, formatList, /** Used for RangePicker. `true` means [DateType, DateType] or will be DateType[] */\nrangeValue,\n/**\n * Trigger order when trigger calendar value change.\n * This should only used in SinglePicker with `multiple` mode.\n * So when `rangeValue` is `true`, order will be ignored.\n */\norder, defaultValue, value, onCalendarChange, onOk) {\n // This is the root value which will sync with controlled or uncontrolled value\n var _useMergedState = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n innerValue = _useMergedState2[0],\n setInnerValue = _useMergedState2[1];\n var mergedValue = innerValue || EMPTY_VALUE;\n\n // ========================= Inner Values =========================\n var _useCalendarValue = useCalendarValue(mergedValue),\n _useCalendarValue2 = _slicedToArray(_useCalendarValue, 2),\n calendarValue = _useCalendarValue2[0],\n setCalendarValue = _useCalendarValue2[1];\n\n // ============================ Change ============================\n var _useUtil = useUtil(generateConfig, locale, formatList),\n _useUtil2 = _slicedToArray(_useUtil, 2),\n getDateTexts = _useUtil2[0],\n isSameDates = _useUtil2[1];\n var triggerCalendarChange = useEvent(function (nextCalendarValues) {\n var clone = _toConsumableArray(nextCalendarValues);\n if (rangeValue) {\n for (var i = 0; i < 2; i += 1) {\n clone[i] = clone[i] || null;\n }\n } else if (order) {\n clone = orderDates(clone.filter(function (date) {\n return date;\n }), generateConfig);\n }\n\n // Update merged value\n var _isSameDates = isSameDates(calendarValue(), clone),\n _isSameDates2 = _slicedToArray(_isSameDates, 2),\n isSameMergedDates = _isSameDates2[0],\n isSameStart = _isSameDates2[1];\n if (!isSameMergedDates) {\n setCalendarValue(clone);\n\n // Trigger calendar change event\n if (onCalendarChange) {\n var cellTexts = getDateTexts(clone);\n onCalendarChange(clone, cellTexts, {\n range: isSameStart ? 'end' : 'start'\n });\n }\n }\n });\n var triggerOk = function triggerOk() {\n if (onOk) {\n onOk(calendarValue());\n }\n };\n return [mergedValue, setInnerValue, calendarValue, triggerCalendarChange, triggerOk];\n}\nexport default function useRangeValue(info, mergedValue, setInnerValue, getCalendarValue, triggerCalendarChange, disabled, formatList, focused, open, isInvalidateDate) {\n var generateConfig = info.generateConfig,\n locale = info.locale,\n picker = info.picker,\n onChange = info.onChange,\n allowEmpty = info.allowEmpty,\n order = info.order;\n var orderOnChange = disabled.some(function (d) {\n return d;\n }) ? false : order;\n\n // ============================= Util =============================\n var _useUtil3 = useUtil(generateConfig, locale, formatList),\n _useUtil4 = _slicedToArray(_useUtil3, 2),\n getDateTexts = _useUtil4[0],\n isSameDates = _useUtil4[1];\n\n // ============================ Values ============================\n // Used for trigger `onChange` event.\n // Record current value which is wait for submit.\n var _useSyncState3 = useSyncState(mergedValue),\n _useSyncState4 = _slicedToArray(_useSyncState3, 2),\n submitValue = _useSyncState4[0],\n setSubmitValue = _useSyncState4[1];\n\n /** Sync calendarValue & submitValue back with value */\n var syncWithValue = useEvent(function () {\n setSubmitValue(mergedValue);\n });\n React.useEffect(function () {\n syncWithValue();\n }, [mergedValue]);\n\n // ============================ Submit ============================\n var triggerSubmit = useEvent(function (nextValue) {\n var isNullValue = nextValue === null;\n var clone = _toConsumableArray(nextValue || submitValue());\n\n // Fill null value\n if (isNullValue) {\n var maxLen = Math.max(disabled.length, clone.length);\n for (var i = 0; i < maxLen; i += 1) {\n if (!disabled[i]) {\n clone[i] = null;\n }\n }\n }\n\n // Only when exist value to sort\n if (orderOnChange && clone[0] && clone[1]) {\n clone = orderDates(clone, generateConfig);\n }\n\n // Sync `calendarValue`\n triggerCalendarChange(clone);\n\n // ========= Validate check =========\n var _clone = clone,\n _clone2 = _slicedToArray(_clone, 2),\n start = _clone2[0],\n end = _clone2[1];\n\n // >>> Empty\n var startEmpty = !start;\n var endEmpty = !end;\n var validateEmptyDateRange = allowEmpty ?\n // Validate empty start\n (!startEmpty || allowEmpty[0]) && (\n // Validate empty end\n !endEmpty || allowEmpty[1]) : true;\n\n // >>> Order\n var validateOrder = !order || startEmpty || endEmpty || isSame(generateConfig, locale, start, end, picker) || generateConfig.isAfter(end, start);\n\n // >>> Invalid\n var validateDates =\n // Validate start\n (disabled[0] || !start || !isInvalidateDate(start, {\n activeIndex: 0\n })) && (\n // Validate end\n disabled[1] || !end || !isInvalidateDate(end, {\n from: start,\n activeIndex: 1\n }));\n // >>> Result\n var allPassed =\n // Null value is from clear button\n isNullValue ||\n // Normal check\n validateEmptyDateRange && validateOrder && validateDates;\n if (allPassed) {\n // Sync value with submit value\n setInnerValue(clone);\n var _isSameDates3 = isSameDates(clone, mergedValue),\n _isSameDates4 = _slicedToArray(_isSameDates3, 1),\n isSameMergedDates = _isSameDates4[0];\n\n // Trigger `onChange` if needed\n if (onChange && !isSameMergedDates) {\n onChange(\n // Return null directly if all date are empty\n isNullValue && clone.every(function (val) {\n return !val;\n }) ? null : clone, getDateTexts(clone));\n }\n }\n return allPassed;\n });\n\n // ========================= Flush Submit =========================\n var flushSubmit = useEvent(function (index, needTriggerChange) {\n var nextSubmitValue = fillIndex(submitValue(), index, getCalendarValue()[index]);\n setSubmitValue(nextSubmitValue);\n if (needTriggerChange) {\n triggerSubmit();\n }\n });\n\n // ============================ Effect ============================\n // All finished action trigger after 2 frames\n var interactiveFinished = !focused && !open;\n useLockEffect(!interactiveFinished, function () {\n if (interactiveFinished) {\n // Always try to trigger submit first\n triggerSubmit();\n\n // Trigger calendar change since this is a effect reset\n // https://github.com/ant-design/ant-design/issues/22351\n triggerCalendarChange(mergedValue);\n\n // Sync with value anyway\n syncWithValue();\n }\n }, 2);\n\n // ============================ Return ============================\n return [flushSubmit, triggerSubmit];\n}","export default function useShowNow(picker, mode, showNow, showToday, rangePicker) {\n if (mode !== 'date' && mode !== 'time') {\n return false;\n }\n if (showNow !== undefined) {\n return showNow;\n }\n\n // Compatible with old version `showToday`\n if (showToday !== undefined) {\n return showToday;\n }\n return !rangePicker && (picker === 'date' || picker === 'time');\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { warning } from 'rc-util';\nimport * as React from 'react';\nimport { findValidateTime } from \"../PickerPanel/TimePanel/TimePanelBody/util\";\nimport { leftPad } from \"../utils/miscUtil\";\nfunction emptyDisabled() {\n return [];\n}\nfunction generateUnits(start, end) {\n var step = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var hideDisabledOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var disabledUnits = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];\n var pad = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 2;\n var units = [];\n var integerStep = step >= 1 ? step | 0 : 1;\n for (var i = start; i <= end; i += integerStep) {\n var disabled = disabledUnits.includes(i);\n if (!disabled || !hideDisabledOptions) {\n units.push({\n label: leftPad(i, pad),\n value: i,\n disabled: disabled\n });\n }\n }\n return units;\n}\n\n/**\n * Parse time props to get util info\n */\nexport default function useTimeInfo(generateConfig) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var date = arguments.length > 2 ? arguments[2] : undefined;\n var _ref = props || {},\n use12Hours = _ref.use12Hours,\n _ref$hourStep = _ref.hourStep,\n hourStep = _ref$hourStep === void 0 ? 1 : _ref$hourStep,\n _ref$minuteStep = _ref.minuteStep,\n minuteStep = _ref$minuteStep === void 0 ? 1 : _ref$minuteStep,\n _ref$secondStep = _ref.secondStep,\n secondStep = _ref$secondStep === void 0 ? 1 : _ref$secondStep,\n _ref$millisecondStep = _ref.millisecondStep,\n millisecondStep = _ref$millisecondStep === void 0 ? 100 : _ref$millisecondStep,\n hideDisabledOptions = _ref.hideDisabledOptions,\n disabledTime = _ref.disabledTime,\n disabledHours = _ref.disabledHours,\n disabledMinutes = _ref.disabledMinutes,\n disabledSeconds = _ref.disabledSeconds;\n var mergedDate = React.useMemo(function () {\n return date || generateConfig.getNow();\n }, [date, generateConfig]);\n\n // ======================== Warnings ========================\n if (process.env.NODE_ENV !== 'production') {\n var isHourStepValid = 24 % hourStep === 0;\n var isMinuteStepValid = 60 % minuteStep === 0;\n var isSecondStepValid = 60 % secondStep === 0;\n warning(isHourStepValid, \"`hourStep` \".concat(hourStep, \" is invalid. It should be a factor of 24.\"));\n warning(isMinuteStepValid, \"`minuteStep` \".concat(minuteStep, \" is invalid. It should be a factor of 60.\"));\n warning(isSecondStepValid, \"`secondStep` \".concat(secondStep, \" is invalid. It should be a factor of 60.\"));\n }\n\n // ======================== Disabled ========================\n var getDisabledTimes = React.useCallback(function (targetDate) {\n var disabledConfig = (disabledTime === null || disabledTime === void 0 ? void 0 : disabledTime(targetDate)) || {};\n return [disabledConfig.disabledHours || disabledHours || emptyDisabled, disabledConfig.disabledMinutes || disabledMinutes || emptyDisabled, disabledConfig.disabledSeconds || disabledSeconds || emptyDisabled, disabledConfig.disabledMilliseconds || emptyDisabled];\n }, [disabledTime, disabledHours, disabledMinutes, disabledSeconds]);\n var _React$useMemo = React.useMemo(function () {\n return getDisabledTimes(mergedDate);\n }, [mergedDate, getDisabledTimes]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 4),\n mergedDisabledHours = _React$useMemo2[0],\n mergedDisabledMinutes = _React$useMemo2[1],\n mergedDisabledSeconds = _React$useMemo2[2],\n mergedDisabledMilliseconds = _React$useMemo2[3];\n\n // ========================= Column =========================\n var getAllUnits = React.useCallback(function (getDisabledHours, getDisabledMinutes, getDisabledSeconds, getDisabledMilliseconds) {\n var hours = generateUnits(0, 23, hourStep, hideDisabledOptions, getDisabledHours());\n\n // Hours\n var rowHourUnits = use12Hours ? hours.map(function (unit) {\n return _objectSpread(_objectSpread({}, unit), {}, {\n label: leftPad(unit.value % 12 || 12, 2)\n });\n }) : hours;\n\n // Minutes\n var getMinuteUnits = function getMinuteUnits(nextHour) {\n return generateUnits(0, 59, minuteStep, hideDisabledOptions, getDisabledMinutes(nextHour));\n };\n\n // Seconds\n var getSecondUnits = function getSecondUnits(nextHour, nextMinute) {\n return generateUnits(0, 59, secondStep, hideDisabledOptions, getDisabledSeconds(nextHour, nextMinute));\n };\n\n // Milliseconds\n var getMillisecondUnits = function getMillisecondUnits(nextHour, nextMinute, nextSecond) {\n return generateUnits(0, 999, millisecondStep, hideDisabledOptions, getDisabledMilliseconds(nextHour, nextMinute, nextSecond), 3);\n };\n return [rowHourUnits, getMinuteUnits, getSecondUnits, getMillisecondUnits];\n }, [hideDisabledOptions, hourStep, use12Hours, millisecondStep, minuteStep, secondStep]);\n var _React$useMemo3 = React.useMemo(function () {\n return getAllUnits(mergedDisabledHours, mergedDisabledMinutes, mergedDisabledSeconds, mergedDisabledMilliseconds);\n }, [getAllUnits, mergedDisabledHours, mergedDisabledMinutes, mergedDisabledSeconds, mergedDisabledMilliseconds]),\n _React$useMemo4 = _slicedToArray(_React$useMemo3, 4),\n rowHourUnits = _React$useMemo4[0],\n getMinuteUnits = _React$useMemo4[1],\n getSecondUnits = _React$useMemo4[2],\n getMillisecondUnits = _React$useMemo4[3];\n\n // ======================== Validate ========================\n /**\n * Get validate time with `disabledTime`, `certainDate` to specific the date need to check\n */\n var getValidTime = function getValidTime(nextTime, certainDate) {\n var getCheckHourUnits = function getCheckHourUnits() {\n return rowHourUnits;\n };\n var getCheckMinuteUnits = getMinuteUnits;\n var getCheckSecondUnits = getSecondUnits;\n var getCheckMillisecondUnits = getMillisecondUnits;\n if (certainDate) {\n var _getDisabledTimes = getDisabledTimes(certainDate),\n _getDisabledTimes2 = _slicedToArray(_getDisabledTimes, 4),\n targetDisabledHours = _getDisabledTimes2[0],\n targetDisabledMinutes = _getDisabledTimes2[1],\n targetDisabledSeconds = _getDisabledTimes2[2],\n targetDisabledMilliseconds = _getDisabledTimes2[3];\n var _getAllUnits = getAllUnits(targetDisabledHours, targetDisabledMinutes, targetDisabledSeconds, targetDisabledMilliseconds),\n _getAllUnits2 = _slicedToArray(_getAllUnits, 4),\n targetRowHourUnits = _getAllUnits2[0],\n targetGetMinuteUnits = _getAllUnits2[1],\n targetGetSecondUnits = _getAllUnits2[2],\n targetGetMillisecondUnits = _getAllUnits2[3];\n getCheckHourUnits = function getCheckHourUnits() {\n return targetRowHourUnits;\n };\n getCheckMinuteUnits = targetGetMinuteUnits;\n getCheckSecondUnits = targetGetSecondUnits;\n getCheckMillisecondUnits = targetGetMillisecondUnits;\n }\n var validateDate = findValidateTime(nextTime, getCheckHourUnits, getCheckMinuteUnits, getCheckSecondUnits, getCheckMillisecondUnits, generateConfig);\n return validateDate;\n };\n return [\n // getValidTime\n getValidTime,\n // Units\n rowHourUnits, getMinuteUnits, getSecondUnits, getMillisecondUnits];\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nexport function findValidateTime(date, getHourUnits, getMinuteUnits, getSecondUnits, getMillisecondUnits, generateConfig) {\n var nextDate = date;\n function alignValidate(getUnitValue, setUnitValue, units) {\n var nextValue = generateConfig[getUnitValue](nextDate);\n var nextUnit = units.find(function (unit) {\n return unit.value === nextValue;\n });\n if (!nextUnit || nextUnit.disabled) {\n // Find most closest unit\n var validateUnits = units.filter(function (unit) {\n return !unit.disabled;\n });\n var reverseEnabledUnits = _toConsumableArray(validateUnits).reverse();\n var validateUnit = reverseEnabledUnits.find(function (unit) {\n return unit.value <= nextValue;\n }) || validateUnits[0];\n if (validateUnit) {\n nextValue = validateUnit.value;\n nextDate = generateConfig[setUnitValue](nextDate, nextValue);\n }\n }\n return nextValue;\n }\n\n // Find validate hour\n var nextHour = alignValidate('getHour', 'setHour', getHourUnits());\n\n // Find validate minute\n var nextMinute = alignValidate('getMinute', 'setMinute', getMinuteUnits(nextHour));\n\n // Find validate second\n var nextSecond = alignValidate('getSecond', 'setSecond', getSecondUnits(nextHour, nextMinute));\n\n // Find validate millisecond\n alignValidate('getMillisecond', 'setMillisecond', getMillisecondUnits(nextHour, nextMinute, nextSecond));\n return nextDate;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport useTimeInfo from \"../../hooks/useTimeInfo\";\nimport PickerContext from \"../context\";\nexport default function Footer(props) {\n var mode = props.mode,\n internalMode = props.internalMode,\n renderExtraFooter = props.renderExtraFooter,\n showNow = props.showNow,\n showTime = props.showTime,\n onSubmit = props.onSubmit,\n onNow = props.onNow,\n invalid = props.invalid,\n needConfirm = props.needConfirm,\n generateConfig = props.generateConfig,\n disabledDate = props.disabledDate;\n var _React$useContext = React.useContext(PickerContext),\n prefixCls = _React$useContext.prefixCls,\n locale = _React$useContext.locale,\n _React$useContext$but = _React$useContext.button,\n Button = _React$useContext$but === void 0 ? 'button' : _React$useContext$but;\n\n // >>> Now\n var now = generateConfig.getNow();\n var _useTimeInfo = useTimeInfo(generateConfig, showTime, now),\n _useTimeInfo2 = _slicedToArray(_useTimeInfo, 1),\n getValidTime = _useTimeInfo2[0];\n\n // ======================== Extra =========================\n var extraNode = renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter(mode);\n\n // ======================== Ranges ========================\n var nowDisabled = disabledDate(now, {\n type: mode\n });\n var onInternalNow = function onInternalNow() {\n if (!nowDisabled) {\n var validateNow = getValidTime(now);\n onNow(validateNow);\n }\n };\n var nowPrefixCls = \"\".concat(prefixCls, \"-now\");\n var nowBtnPrefixCls = \"\".concat(nowPrefixCls, \"-btn\");\n var presetNode = showNow && /*#__PURE__*/React.createElement(\"li\", {\n className: nowPrefixCls\n }, /*#__PURE__*/React.createElement(\"a\", {\n className: classNames(nowBtnPrefixCls, nowDisabled && \"\".concat(nowBtnPrefixCls, \"-disabled\")),\n \"aria-disabled\": nowDisabled,\n onClick: onInternalNow\n }, internalMode === 'date' ? locale.today : locale.now));\n\n // >>> OK\n var okNode = needConfirm && /*#__PURE__*/React.createElement(\"li\", {\n className: \"\".concat(prefixCls, \"-ok\")\n }, /*#__PURE__*/React.createElement(Button, {\n disabled: invalid,\n onClick: onSubmit\n }, locale.ok));\n var rangeNode = (presetNode || okNode) && /*#__PURE__*/React.createElement(\"ul\", {\n className: \"\".concat(prefixCls, \"-ranges\")\n }, presetNode, okNode);\n\n // ======================== Render ========================\n if (!extraNode && !rangeNode) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, extraNode && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer-extra\")\n }, extraNode), rangeNode);\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport { isSame } from \"../utils/dateUtil\";\n/**\n * Toggles the presence of a value in an array.\n * If the value exists in the array, removed it.\n * Else add it.\n */\nexport default function useToggleDates(generateConfig, locale, panelMode) {\n function toggleDates(list, target) {\n var index = list.findIndex(function (date) {\n return isSame(generateConfig, locale, date, target, panelMode);\n });\n if (index === -1) {\n return [].concat(_toConsumableArray(list), [target]);\n }\n var sliceList = _toConsumableArray(list);\n sliceList.splice(index, 1);\n return sliceList;\n }\n return toggleDates;\n}","import * as React from 'react';\n/** Used for each single Panel. e.g. DatePanel */\nexport var PanelContext = /*#__PURE__*/React.createContext(null);\nexport function usePanelContext() {\n return React.useContext(PanelContext);\n}\n\n/**\n * Get shared props for the SharedPanelProps interface.\n */\nexport function useInfo(props, panelType) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n disabledDate = props.disabledDate,\n minDate = props.minDate,\n maxDate = props.maxDate,\n cellRender = props.cellRender,\n hoverValue = props.hoverValue,\n hoverRangeValue = props.hoverRangeValue,\n onHover = props.onHover,\n values = props.values,\n pickerValue = props.pickerValue,\n onSelect = props.onSelect,\n prevIcon = props.prevIcon,\n nextIcon = props.nextIcon,\n superPrevIcon = props.superPrevIcon,\n superNextIcon = props.superNextIcon;\n\n // ========================= MISC =========================\n var now = generateConfig.getNow();\n\n // ========================= Info =========================\n var info = {\n now: now,\n values: values,\n pickerValue: pickerValue,\n prefixCls: prefixCls,\n disabledDate: disabledDate,\n minDate: minDate,\n maxDate: maxDate,\n cellRender: cellRender,\n hoverValue: hoverValue,\n hoverRangeValue: hoverRangeValue,\n onHover: onHover,\n locale: locale,\n generateConfig: generateConfig,\n onSelect: onSelect,\n panelType: panelType,\n // Icons\n prevIcon: prevIcon,\n nextIcon: nextIcon,\n superPrevIcon: superPrevIcon,\n superNextIcon: superNextIcon\n };\n return [info, now];\n}\n\n// ============================== Internal ==============================\n\n/**\n * Internal usage for RangePicker to not to show the operation arrow\n */\nexport var PickerHackContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n PickerHackContext.displayName = 'PickerHackContext';\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { formatValue, isInRange, isSame } from \"../utils/dateUtil\";\nimport { PickerHackContext, usePanelContext } from \"./context\";\nexport default function PanelBody(props) {\n var rowNum = props.rowNum,\n colNum = props.colNum,\n baseDate = props.baseDate,\n getCellDate = props.getCellDate,\n prefixColumn = props.prefixColumn,\n rowClassName = props.rowClassName,\n titleFormat = props.titleFormat,\n getCellText = props.getCellText,\n getCellClassName = props.getCellClassName,\n headerCells = props.headerCells,\n _props$cellSelection = props.cellSelection,\n cellSelection = _props$cellSelection === void 0 ? true : _props$cellSelection,\n disabledDate = props.disabledDate;\n var _usePanelContext = usePanelContext(),\n prefixCls = _usePanelContext.prefixCls,\n type = _usePanelContext.panelType,\n now = _usePanelContext.now,\n contextDisabledDate = _usePanelContext.disabledDate,\n cellRender = _usePanelContext.cellRender,\n onHover = _usePanelContext.onHover,\n hoverValue = _usePanelContext.hoverValue,\n hoverRangeValue = _usePanelContext.hoverRangeValue,\n generateConfig = _usePanelContext.generateConfig,\n values = _usePanelContext.values,\n locale = _usePanelContext.locale,\n onSelect = _usePanelContext.onSelect;\n var mergedDisabledDate = disabledDate || contextDisabledDate;\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n\n // ============================= Context ==============================\n var _React$useContext = React.useContext(PickerHackContext),\n onCellDblClick = _React$useContext.onCellDblClick;\n\n // ============================== Value ===============================\n var matchValues = function matchValues(date) {\n return values.some(function (singleValue) {\n return singleValue && isSame(generateConfig, locale, date, singleValue, type);\n });\n };\n\n // =============================== Body ===============================\n var rows = [];\n for (var row = 0; row < rowNum; row += 1) {\n var rowNode = [];\n var rowStartDate = void 0;\n var _loop = function _loop() {\n var offset = row * colNum + col;\n var currentDate = getCellDate(baseDate, offset);\n var disabled = mergedDisabledDate === null || mergedDisabledDate === void 0 ? void 0 : mergedDisabledDate(currentDate, {\n type: type\n });\n\n // Row Start Cell\n if (col === 0) {\n rowStartDate = currentDate;\n if (prefixColumn) {\n rowNode.push(prefixColumn(rowStartDate));\n }\n }\n\n // Range\n var inRange = false;\n var rangeStart = false;\n var rangeEnd = false;\n if (cellSelection && hoverRangeValue) {\n var _hoverRangeValue = _slicedToArray(hoverRangeValue, 2),\n hoverStart = _hoverRangeValue[0],\n hoverEnd = _hoverRangeValue[1];\n inRange = isInRange(generateConfig, hoverStart, hoverEnd, currentDate);\n rangeStart = isSame(generateConfig, locale, currentDate, hoverStart, type);\n rangeEnd = isSame(generateConfig, locale, currentDate, hoverEnd, type);\n }\n\n // Title\n var title = titleFormat ? formatValue(currentDate, {\n locale: locale,\n format: titleFormat,\n generateConfig: generateConfig\n }) : undefined;\n\n // Render\n var inner = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, getCellText(currentDate));\n rowNode.push( /*#__PURE__*/React.createElement(\"td\", {\n key: col,\n title: title,\n className: classNames(cellPrefixCls, _objectSpread(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(cellPrefixCls, \"-disabled\"), disabled), \"\".concat(cellPrefixCls, \"-hover\"), (hoverValue || []).some(function (date) {\n return isSame(generateConfig, locale, currentDate, date, type);\n })), \"\".concat(cellPrefixCls, \"-in-range\"), inRange && !rangeStart && !rangeEnd), \"\".concat(cellPrefixCls, \"-range-start\"), rangeStart), \"\".concat(cellPrefixCls, \"-range-end\"), rangeEnd), \"\".concat(prefixCls, \"-cell-selected\"), !hoverRangeValue &&\n // WeekPicker use row instead\n type !== 'week' && matchValues(currentDate)), getCellClassName(currentDate))),\n onClick: function onClick() {\n if (!disabled) {\n onSelect(currentDate);\n }\n },\n onDoubleClick: function onDoubleClick() {\n if (!disabled && onCellDblClick) {\n onCellDblClick();\n }\n },\n onMouseEnter: function onMouseEnter() {\n if (!disabled) {\n onHover === null || onHover === void 0 || onHover(currentDate);\n }\n },\n onMouseLeave: function onMouseLeave() {\n if (!disabled) {\n onHover === null || onHover === void 0 || onHover(null);\n }\n }\n }, cellRender ? cellRender(currentDate, {\n prefixCls: prefixCls,\n originNode: inner,\n today: now,\n type: type,\n locale: locale\n }) : inner));\n };\n for (var col = 0; col < colNum; col += 1) {\n _loop();\n }\n rows.push( /*#__PURE__*/React.createElement(\"tr\", {\n key: row,\n className: rowClassName === null || rowClassName === void 0 ? void 0 : rowClassName(rowStartDate)\n }, rowNode));\n }\n\n // ============================== Render ==============================\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-body\")\n }, /*#__PURE__*/React.createElement(\"table\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, headerCells && /*#__PURE__*/React.createElement(\"thead\", null, /*#__PURE__*/React.createElement(\"tr\", null, headerCells)), /*#__PURE__*/React.createElement(\"tbody\", null, rows)));\n}","import classNames from 'classnames';\nimport * as React from 'react';\nimport { isSameOrAfter } from \"../utils/dateUtil\";\nimport { PickerHackContext, usePanelContext } from \"./context\";\nvar HIDDEN_STYLE = {\n visibility: 'hidden'\n};\nfunction PanelHeader(props) {\n var offset = props.offset,\n superOffset = props.superOffset,\n onChange = props.onChange,\n getStart = props.getStart,\n getEnd = props.getEnd,\n children = props.children;\n var _usePanelContext = usePanelContext(),\n prefixCls = _usePanelContext.prefixCls,\n _usePanelContext$prev = _usePanelContext.prevIcon,\n prevIcon = _usePanelContext$prev === void 0 ? \"\\u2039\" : _usePanelContext$prev,\n _usePanelContext$next = _usePanelContext.nextIcon,\n nextIcon = _usePanelContext$next === void 0 ? \"\\u203A\" : _usePanelContext$next,\n _usePanelContext$supe = _usePanelContext.superPrevIcon,\n superPrevIcon = _usePanelContext$supe === void 0 ? \"\\xAB\" : _usePanelContext$supe,\n _usePanelContext$supe2 = _usePanelContext.superNextIcon,\n superNextIcon = _usePanelContext$supe2 === void 0 ? \"\\xBB\" : _usePanelContext$supe2,\n minDate = _usePanelContext.minDate,\n maxDate = _usePanelContext.maxDate,\n generateConfig = _usePanelContext.generateConfig,\n locale = _usePanelContext.locale,\n pickerValue = _usePanelContext.pickerValue,\n type = _usePanelContext.panelType;\n var headerPrefixCls = \"\".concat(prefixCls, \"-header\");\n var _React$useContext = React.useContext(PickerHackContext),\n hidePrev = _React$useContext.hidePrev,\n hideNext = _React$useContext.hideNext,\n hideHeader = _React$useContext.hideHeader;\n\n // ======================= Limitation =======================\n var disabledOffsetPrev = React.useMemo(function () {\n if (!minDate || !offset || !getEnd) {\n return false;\n }\n var prevPanelLimitDate = getEnd(offset(-1, pickerValue));\n return !isSameOrAfter(generateConfig, locale, prevPanelLimitDate, minDate, type);\n }, [minDate, offset, pickerValue, getEnd, generateConfig, locale, type]);\n var disabledSuperOffsetPrev = React.useMemo(function () {\n if (!minDate || !superOffset || !getEnd) {\n return false;\n }\n var prevPanelLimitDate = getEnd(superOffset(-1, pickerValue));\n return !isSameOrAfter(generateConfig, locale, prevPanelLimitDate, minDate, type);\n }, [minDate, superOffset, pickerValue, getEnd, generateConfig, locale, type]);\n var disabledOffsetNext = React.useMemo(function () {\n if (!maxDate || !offset || !getStart) {\n return false;\n }\n var nextPanelLimitDate = getStart(offset(1, pickerValue));\n return !isSameOrAfter(generateConfig, locale, maxDate, nextPanelLimitDate, type);\n }, [maxDate, offset, pickerValue, getStart, generateConfig, locale, type]);\n var disabledSuperOffsetNext = React.useMemo(function () {\n if (!maxDate || !superOffset || !getStart) {\n return false;\n }\n var nextPanelLimitDate = getStart(superOffset(1, pickerValue));\n return !isSameOrAfter(generateConfig, locale, maxDate, nextPanelLimitDate, type);\n }, [maxDate, superOffset, pickerValue, getStart, generateConfig, locale, type]);\n\n // ========================= Offset =========================\n var onOffset = function onOffset(distance) {\n if (offset) {\n onChange(offset(distance, pickerValue));\n }\n };\n var onSuperOffset = function onSuperOffset(distance) {\n if (superOffset) {\n onChange(superOffset(distance, pickerValue));\n }\n };\n\n // ========================= Render =========================\n if (hideHeader) {\n return null;\n }\n var prevBtnCls = \"\".concat(headerPrefixCls, \"-prev-btn\");\n var nextBtnCls = \"\".concat(headerPrefixCls, \"-next-btn\");\n var superPrevBtnCls = \"\".concat(headerPrefixCls, \"-super-prev-btn\");\n var superNextBtnCls = \"\".concat(headerPrefixCls, \"-super-next-btn\");\n return /*#__PURE__*/React.createElement(\"div\", {\n className: headerPrefixCls\n }, superOffset && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": locale.previousYear,\n onClick: function onClick() {\n return onSuperOffset(-1);\n },\n tabIndex: -1,\n className: classNames(superPrevBtnCls, disabledSuperOffsetPrev && \"\".concat(superPrevBtnCls, \"-disabled\")),\n disabled: disabledSuperOffsetPrev,\n style: hidePrev ? HIDDEN_STYLE : {}\n }, superPrevIcon), offset && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": locale.previousMonth,\n onClick: function onClick() {\n return onOffset(-1);\n },\n tabIndex: -1,\n className: classNames(prevBtnCls, disabledOffsetPrev && \"\".concat(prevBtnCls, \"-disabled\")),\n disabled: disabledOffsetPrev,\n style: hidePrev ? HIDDEN_STYLE : {}\n }, prevIcon), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(headerPrefixCls, \"-view\")\n }, children), offset && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": locale.nextMonth,\n onClick: function onClick() {\n return onOffset(1);\n },\n tabIndex: -1,\n className: classNames(nextBtnCls, disabledOffsetNext && \"\".concat(nextBtnCls, \"-disabled\")),\n disabled: disabledOffsetNext,\n style: hideNext ? HIDDEN_STYLE : {}\n }, nextIcon), superOffset && /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": locale.nextYear,\n onClick: function onClick() {\n return onSuperOffset(1);\n },\n tabIndex: -1,\n className: classNames(superNextBtnCls, disabledSuperOffsetNext && \"\".concat(superNextBtnCls, \"-disabled\")),\n disabled: disabledSuperOffsetNext,\n style: hideNext ? HIDDEN_STYLE : {}\n }, superNextIcon));\n}\nexport default PanelHeader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { formatValue, getWeekStartDate, isSameDate, isSameMonth, WEEK_DAY_COUNT } from \"../../utils/dateUtil\";\nimport { PanelContext, useInfo } from \"../context\";\nimport PanelBody from \"../PanelBody\";\nimport PanelHeader from \"../PanelHeader\";\nexport default function DatePanel(props) {\n var prefixCls = props.prefixCls,\n _props$panelName = props.panelName,\n panelName = _props$panelName === void 0 ? 'date' : _props$panelName,\n locale = props.locale,\n generateConfig = props.generateConfig,\n pickerValue = props.pickerValue,\n onPickerValueChange = props.onPickerValueChange,\n onModeChange = props.onModeChange,\n _props$mode = props.mode,\n mode = _props$mode === void 0 ? 'date' : _props$mode,\n disabledDate = props.disabledDate,\n onSelect = props.onSelect,\n onHover = props.onHover,\n showWeek = props.showWeek;\n var panelPrefixCls = \"\".concat(prefixCls, \"-\").concat(panelName, \"-panel\");\n var cellPrefixCls = \"\".concat(prefixCls, \"-cell\");\n var isWeek = mode === 'week';\n\n // ========================== Base ==========================\n var _useInfo = useInfo(props, mode),\n _useInfo2 = _slicedToArray(_useInfo, 2),\n info = _useInfo2[0],\n now = _useInfo2[1];\n var weekFirstDay = generateConfig.locale.getWeekFirstDay(locale.locale);\n var monthStartDate = generateConfig.setDate(pickerValue, 1);\n var baseDate = getWeekStartDate(locale.locale, generateConfig, monthStartDate);\n var month = generateConfig.getMonth(pickerValue);\n\n // =========================== PrefixColumn ===========================\n var showPrefixColumn = showWeek === undefined ? isWeek : showWeek;\n var prefixColumn = showPrefixColumn ? function (date) {\n // >>> Additional check for disabled\n var disabled = disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date, {\n type: 'week'\n });\n return /*#__PURE__*/React.createElement(\"td\", {\n key: \"week\",\n className: classNames(cellPrefixCls, \"\".concat(cellPrefixCls, \"-week\"), _defineProperty({}, \"\".concat(cellPrefixCls, \"-disabled\"), disabled))\n // Operation: Same as code in PanelBody\n ,\n onClick: function onClick() {\n if (!disabled) {\n onSelect(date);\n }\n },\n onMouseEnter: function onMouseEnter() {\n if (!disabled) {\n onHover === null || onHover === void 0 || onHover(date);\n }\n },\n onMouseLeave: function onMouseLeave() {\n if (!disabled) {\n onHover === null || onHover === void 0 || onHover(null);\n }\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, generateConfig.locale.getWeek(locale.locale, date)));\n } : null;\n\n // ========================= Cells ==========================\n // >>> Header Cells\n var headerCells = [];\n var weekDaysLocale = locale.shortWeekDays || (generateConfig.locale.getShortWeekDays ? generateConfig.locale.getShortWeekDays(locale.locale) : []);\n if (prefixColumn) {\n headerCells.push( /*#__PURE__*/React.createElement(\"th\", {\n key: \"empty\"\n }, /*#__PURE__*/React.createElement(\"span\", {\n style: {\n width: 0,\n height: 0,\n position: 'absolute',\n overflow: 'hidden',\n opacity: 0\n }\n }, locale.week)));\n }\n for (var i = 0; i < WEEK_DAY_COUNT; i += 1) {\n headerCells.push( /*#__PURE__*/React.createElement(\"th\", {\n key: i\n }, weekDaysLocale[(i + weekFirstDay) % WEEK_DAY_COUNT]));\n }\n\n // >>> Body Cells\n var getCellDate = function getCellDate(date, offset) {\n return generateConfig.addDate(date, offset);\n };\n var getCellText = function getCellText(date) {\n return formatValue(date, {\n locale: locale,\n format: locale.cellDateFormat,\n generateConfig: generateConfig\n });\n };\n var getCellClassName = function getCellClassName(date) {\n var classObj = _defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-cell-in-view\"), isSameMonth(generateConfig, date, pickerValue)), \"\".concat(prefixCls, \"-cell-today\"), isSameDate(generateConfig, date, now));\n return classObj;\n };\n\n // ========================= Header =========================\n var monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);\n var yearNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": locale.yearSelect,\n key: \"year\",\n onClick: function onClick() {\n onModeChange('year', pickerValue);\n },\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(pickerValue, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }));\n var monthNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n \"aria-label\": locale.monthSelect,\n key: \"month\",\n onClick: function onClick() {\n onModeChange('month', pickerValue);\n },\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-month-btn\")\n }, locale.monthFormat ? formatValue(pickerValue, {\n locale: locale,\n format: locale.monthFormat,\n generateConfig: generateConfig\n }) : monthsLocale[month]);\n var monthYearNodes = locale.monthBeforeYear ? [monthNode, yearNode] : [yearNode, monthNode];\n\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: info\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls, showWeek && \"\".concat(panelPrefixCls, \"-show-week\"))\n }, /*#__PURE__*/React.createElement(PanelHeader, {\n offset: function offset(distance) {\n return generateConfig.addMonth(pickerValue, distance);\n },\n superOffset: function superOffset(distance) {\n return generateConfig.addYear(pickerValue, distance);\n },\n onChange: onPickerValueChange\n // Limitation\n ,\n getStart: function getStart(date) {\n return generateConfig.setDate(date, 1);\n },\n getEnd: function getEnd(date) {\n var clone = generateConfig.setDate(date, 1);\n clone = generateConfig.addMonth(clone, 1);\n return generateConfig.addDate(clone, -1);\n }\n }, monthYearNodes), /*#__PURE__*/React.createElement(PanelBody, _extends({\n titleFormat: locale.fieldDateFormat\n }, props, {\n colNum: WEEK_DAY_COUNT,\n rowNum: 6,\n baseDate: baseDate\n // Header\n ,\n headerCells: headerCells\n // Body\n ,\n getCellDate: getCellDate,\n getCellText: getCellText,\n getCellClassName: getCellClassName,\n prefixColumn: prefixColumn,\n cellSelection: !isWeek\n }))));\n}","import { useEvent } from 'rc-util';\nimport raf from \"rc-util/es/raf\";\nimport isVisible from \"rc-util/es/Dom/isVisible\";\nimport * as React from 'react';\nvar SPEED_PTG = 1 / 3;\nexport default function useScrollTo(ulRef, value) {\n // ========================= Scroll =========================\n var scrollingRef = React.useRef(false);\n var scrollRafRef = React.useRef(null);\n var scrollDistRef = React.useRef(null);\n var isScrolling = function isScrolling() {\n return scrollingRef.current;\n };\n var stopScroll = function stopScroll() {\n raf.cancel(scrollRafRef.current);\n scrollingRef.current = false;\n };\n var scrollRafTimesRef = React.useRef();\n var startScroll = function startScroll() {\n var ul = ulRef.current;\n scrollDistRef.current = null;\n scrollRafTimesRef.current = 0;\n if (ul) {\n var targetLi = ul.querySelector(\"[data-value=\\\"\".concat(value, \"\\\"]\"));\n var firstLi = ul.querySelector(\"li\");\n var doScroll = function doScroll() {\n stopScroll();\n scrollingRef.current = true;\n scrollRafTimesRef.current += 1;\n var currentTop = ul.scrollTop;\n var firstLiTop = firstLi.offsetTop;\n var targetLiTop = targetLi.offsetTop;\n var targetTop = targetLiTop - firstLiTop;\n\n // Wait for element exist. 5 frames is enough\n if (targetLiTop === 0 && targetLi !== firstLi || !isVisible(ul)) {\n if (scrollRafTimesRef.current <= 5) {\n scrollRafRef.current = raf(doScroll);\n }\n return;\n }\n var nextTop = currentTop + (targetTop - currentTop) * SPEED_PTG;\n var dist = Math.abs(targetTop - nextTop);\n\n // Break if dist get larger, which means user is scrolling\n if (scrollDistRef.current !== null && scrollDistRef.current < dist) {\n stopScroll();\n return;\n }\n scrollDistRef.current = dist;\n\n // Stop when dist is less than 1\n if (dist <= 1) {\n ul.scrollTop = targetTop;\n stopScroll();\n return;\n }\n\n // IE not support `scrollTo`\n ul.scrollTop = nextTop;\n scrollRafRef.current = raf(doScroll);\n };\n if (targetLi && firstLi) {\n doScroll();\n }\n }\n };\n\n // ======================== Trigger =========================\n var syncScroll = useEvent(startScroll);\n return [syncScroll, stopScroll, isScrolling];\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport * as React from 'react';\nimport { usePanelContext } from \"../../context\";\nimport useScrollTo from \"./useScrollTo\";\nvar SCROLL_DELAY = 300;\n// Not use JSON.stringify to avoid dead loop\nfunction flattenUnits(units) {\n return units.map(function (_ref) {\n var value = _ref.value,\n label = _ref.label,\n disabled = _ref.disabled;\n return [value, label, disabled].join(',');\n }).join(';');\n}\nexport default function TimeColumn(props) {\n var units = props.units,\n value = props.value,\n optionalValue = props.optionalValue,\n type = props.type,\n onChange = props.onChange,\n onHover = props.onHover,\n onDblClick = props.onDblClick,\n changeOnScroll = props.changeOnScroll;\n var _usePanelContext = usePanelContext(),\n prefixCls = _usePanelContext.prefixCls,\n cellRender = _usePanelContext.cellRender,\n now = _usePanelContext.now,\n locale = _usePanelContext.locale;\n var panelPrefixCls = \"\".concat(prefixCls, \"-time-panel\");\n var cellPrefixCls = \"\".concat(prefixCls, \"-time-panel-cell\");\n\n // ========================== Refs ==========================\n var ulRef = React.useRef(null);\n\n // ========================= Scroll =========================\n var checkDelayRef = React.useRef();\n var clearDelayCheck = function clearDelayCheck() {\n clearTimeout(checkDelayRef.current);\n };\n\n // ========================== Sync ==========================\n var _useScrollTo = useScrollTo(ulRef, value !== null && value !== void 0 ? value : optionalValue),\n _useScrollTo2 = _slicedToArray(_useScrollTo, 3),\n syncScroll = _useScrollTo2[0],\n stopScroll = _useScrollTo2[1],\n isScrolling = _useScrollTo2[2];\n\n // Effect sync value scroll\n useLayoutEffect(function () {\n syncScroll();\n clearDelayCheck();\n return function () {\n stopScroll();\n clearDelayCheck();\n };\n }, [value, optionalValue, flattenUnits(units)]);\n\n // ========================= Change =========================\n // Scroll event if sync onScroll\n var onInternalScroll = function onInternalScroll(event) {\n clearDelayCheck();\n var target = event.target;\n if (!isScrolling() && changeOnScroll) {\n checkDelayRef.current = setTimeout(function () {\n var ul = ulRef.current;\n var firstLiTop = ul.querySelector(\"li\").offsetTop;\n var liList = Array.from(ul.querySelectorAll(\"li\"));\n var liTopList = liList.map(function (li) {\n return li.offsetTop - firstLiTop;\n });\n var liDistList = liTopList.map(function (top, index) {\n if (units[index].disabled) {\n return Number.MAX_SAFE_INTEGER;\n }\n return Math.abs(top - target.scrollTop);\n });\n\n // Find min distance index\n var minDist = Math.min.apply(Math, _toConsumableArray(liDistList));\n var minDistIndex = liDistList.findIndex(function (dist) {\n return dist === minDist;\n });\n var targetUnit = units[minDistIndex];\n if (targetUnit && !targetUnit.disabled) {\n onChange(targetUnit.value);\n }\n }, SCROLL_DELAY);\n }\n };\n\n // ========================= Render =========================\n var columnPrefixCls = \"\".concat(panelPrefixCls, \"-column\");\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: columnPrefixCls,\n ref: ulRef,\n \"data-type\": type,\n onScroll: onInternalScroll\n }, units.map(function (_ref2) {\n var label = _ref2.label,\n unitValue = _ref2.value,\n disabled = _ref2.disabled;\n var inner = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(cellPrefixCls, \"-inner\")\n }, label);\n return /*#__PURE__*/React.createElement(\"li\", {\n key: unitValue,\n className: classNames(cellPrefixCls, _defineProperty(_defineProperty({}, \"\".concat(cellPrefixCls, \"-selected\"), value === unitValue), \"\".concat(cellPrefixCls, \"-disabled\"), disabled)),\n onClick: function onClick() {\n if (!disabled) {\n onChange(unitValue);\n }\n },\n onDoubleClick: function onDoubleClick() {\n if (!disabled && onDblClick) {\n onDblClick();\n }\n },\n onMouseEnter: function onMouseEnter() {\n onHover(unitValue);\n },\n onMouseLeave: function onMouseLeave() {\n onHover(null);\n },\n \"data-value\": unitValue\n }, cellRender ? cellRender(unitValue, {\n prefixCls: prefixCls,\n originNode: inner,\n today: now,\n type: 'time',\n subType: type,\n locale: locale\n }) : inner);\n }));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useTimeInfo from \"../../../hooks/useTimeInfo\";\nimport { formatValue } from \"../../../utils/dateUtil\";\nimport { PickerHackContext, usePanelContext } from \"../../context\";\nimport TimeColumn from \"./TimeColumn\";\nfunction isAM(hour) {\n return hour < 12;\n}\nexport default function TimePanelBody(props) {\n var showHour = props.showHour,\n showMinute = props.showMinute,\n showSecond = props.showSecond,\n showMillisecond = props.showMillisecond,\n showMeridiem = props.use12Hours,\n changeOnScroll = props.changeOnScroll;\n var _usePanelContext = usePanelContext(),\n prefixCls = _usePanelContext.prefixCls,\n values = _usePanelContext.values,\n generateConfig = _usePanelContext.generateConfig,\n locale = _usePanelContext.locale,\n onSelect = _usePanelContext.onSelect,\n _usePanelContext$onHo = _usePanelContext.onHover,\n onHover = _usePanelContext$onHo === void 0 ? function () {} : _usePanelContext$onHo,\n pickerValue = _usePanelContext.pickerValue;\n var value = (values === null || values === void 0 ? void 0 : values[0]) || null;\n var _React$useContext = React.useContext(PickerHackContext),\n onCellDblClick = _React$useContext.onCellDblClick;\n\n // ========================== Info ==========================\n var _useTimeInfo = useTimeInfo(generateConfig, props, value),\n _useTimeInfo2 = _slicedToArray(_useTimeInfo, 5),\n getValidTime = _useTimeInfo2[0],\n rowHourUnits = _useTimeInfo2[1],\n getMinuteUnits = _useTimeInfo2[2],\n getSecondUnits = _useTimeInfo2[3],\n getMillisecondUnits = _useTimeInfo2[4];\n\n // ========================= Value ==========================\n // PickerValue will tell which one to align on the top\n var getUnitValue = function getUnitValue(func) {\n var valueUnitVal = value && generateConfig[func](value);\n var pickerUnitValue = pickerValue && generateConfig[func](pickerValue);\n return [valueUnitVal, pickerUnitValue];\n };\n var _getUnitValue = getUnitValue('getHour'),\n _getUnitValue2 = _slicedToArray(_getUnitValue, 2),\n hour = _getUnitValue2[0],\n pickerHour = _getUnitValue2[1];\n var _getUnitValue3 = getUnitValue('getMinute'),\n _getUnitValue4 = _slicedToArray(_getUnitValue3, 2),\n minute = _getUnitValue4[0],\n pickerMinute = _getUnitValue4[1];\n var _getUnitValue5 = getUnitValue('getSecond'),\n _getUnitValue6 = _slicedToArray(_getUnitValue5, 2),\n second = _getUnitValue6[0],\n pickerSecond = _getUnitValue6[1];\n var _getUnitValue7 = getUnitValue('getMillisecond'),\n _getUnitValue8 = _slicedToArray(_getUnitValue7, 2),\n millisecond = _getUnitValue8[0],\n pickerMillisecond = _getUnitValue8[1];\n var meridiem = hour === null ? null : isAM(hour) ? 'am' : 'pm';\n\n // ========================= Column =========================\n // Hours\n var hourUnits = React.useMemo(function () {\n if (!showMeridiem) {\n return rowHourUnits;\n }\n return isAM(hour) ? rowHourUnits.filter(function (h) {\n return isAM(h.value);\n }) : rowHourUnits.filter(function (h) {\n return !isAM(h.value);\n });\n }, [hour, rowHourUnits, showMeridiem]);\n\n // >>> Pick Fallback\n var getEnabled = function getEnabled(units, val) {\n var _enabledUnits$;\n var enabledUnits = units.filter(function (unit) {\n return !unit.disabled;\n });\n return val !== null && val !== void 0 ? val : // Fallback to enabled value\n enabledUnits === null || enabledUnits === void 0 || (_enabledUnits$ = enabledUnits[0]) === null || _enabledUnits$ === void 0 ? void 0 : _enabledUnits$.value;\n };\n\n // >>> Minutes\n var validHour = getEnabled(rowHourUnits, hour);\n var minuteUnits = React.useMemo(function () {\n return getMinuteUnits(validHour);\n }, [getMinuteUnits, validHour]);\n\n // >>> Seconds\n var validMinute = getEnabled(minuteUnits, minute);\n var secondUnits = React.useMemo(function () {\n return getSecondUnits(validHour, validMinute);\n }, [getSecondUnits, validHour, validMinute]);\n\n // >>> Milliseconds\n var validSecond = getEnabled(secondUnits, second);\n var millisecondUnits = React.useMemo(function () {\n return getMillisecondUnits(validHour, validMinute, validSecond);\n }, [getMillisecondUnits, validHour, validMinute, validSecond]);\n var validMillisecond = getEnabled(millisecondUnits, millisecond);\n\n // Meridiem\n var meridiemUnits = React.useMemo(function () {\n if (!showMeridiem) {\n return [];\n }\n var base = generateConfig.getNow();\n var amDate = generateConfig.setHour(base, 6);\n var pmDate = generateConfig.setHour(base, 18);\n var formatMeridiem = function formatMeridiem(date, defaultLabel) {\n var cellMeridiemFormat = locale.cellMeridiemFormat;\n return cellMeridiemFormat ? formatValue(date, {\n generateConfig: generateConfig,\n locale: locale,\n format: cellMeridiemFormat\n }) : defaultLabel;\n };\n return [{\n label: formatMeridiem(amDate, 'AM'),\n value: 'am',\n disabled: rowHourUnits.every(function (h) {\n return h.disabled || !isAM(h.value);\n })\n }, {\n label: formatMeridiem(pmDate, 'PM'),\n value: 'pm',\n disabled: rowHourUnits.every(function (h) {\n return h.disabled || isAM(h.value);\n })\n }];\n }, [rowHourUnits, showMeridiem, generateConfig, locale]);\n\n // ========================= Change =========================\n /**\n * Check if time is validate or will match to validate one\n */\n var triggerChange = function triggerChange(nextDate) {\n var validateDate = getValidTime(nextDate);\n onSelect(validateDate);\n };\n\n // ========================= Column =========================\n // Create a template date for the trigger change event\n var triggerDateTmpl = React.useMemo(function () {\n var tmpl = value || pickerValue || generateConfig.getNow();\n var isNotNull = function isNotNull(num) {\n return num !== null && num !== undefined;\n };\n if (isNotNull(hour)) {\n tmpl = generateConfig.setHour(tmpl, hour);\n tmpl = generateConfig.setMinute(tmpl, minute);\n tmpl = generateConfig.setSecond(tmpl, second);\n tmpl = generateConfig.setMillisecond(tmpl, millisecond);\n } else if (isNotNull(pickerHour)) {\n tmpl = generateConfig.setHour(tmpl, pickerHour);\n tmpl = generateConfig.setMinute(tmpl, pickerMinute);\n tmpl = generateConfig.setSecond(tmpl, pickerSecond);\n tmpl = generateConfig.setMillisecond(tmpl, pickerMillisecond);\n } else if (isNotNull(validHour)) {\n tmpl = generateConfig.setHour(tmpl, validHour);\n tmpl = generateConfig.setMinute(tmpl, validMinute);\n tmpl = generateConfig.setSecond(tmpl, validSecond);\n tmpl = generateConfig.setMillisecond(tmpl, validMillisecond);\n }\n return tmpl;\n }, [value, pickerValue, hour, minute, second, millisecond, validHour, validMinute, validSecond, validMillisecond, pickerHour, pickerMinute, pickerSecond, pickerMillisecond, generateConfig]);\n\n // ===================== Columns Change =====================\n var fillColumnValue = function fillColumnValue(val, func) {\n if (val === null) {\n return null;\n }\n return generateConfig[func](triggerDateTmpl, val);\n };\n var getNextHourTime = function getNextHourTime(val) {\n return fillColumnValue(val, 'setHour');\n };\n var getNextMinuteTime = function getNextMinuteTime(val) {\n return fillColumnValue(val, 'setMinute');\n };\n var getNextSecondTime = function getNextSecondTime(val) {\n return fillColumnValue(val, 'setSecond');\n };\n var getNextMillisecondTime = function getNextMillisecondTime(val) {\n return fillColumnValue(val, 'setMillisecond');\n };\n var getMeridiemTime = function getMeridiemTime(val) {\n if (val === null) {\n return null;\n }\n if (val === 'am' && !isAM(hour)) {\n return generateConfig.setHour(triggerDateTmpl, hour - 12);\n } else if (val === 'pm' && isAM(hour)) {\n return generateConfig.setHour(triggerDateTmpl, hour + 12);\n }\n return triggerDateTmpl;\n };\n var onHourChange = function onHourChange(val) {\n triggerChange(getNextHourTime(val));\n };\n var onMinuteChange = function onMinuteChange(val) {\n triggerChange(getNextMinuteTime(val));\n };\n var onSecondChange = function onSecondChange(val) {\n triggerChange(getNextSecondTime(val));\n };\n var onMillisecondChange = function onMillisecondChange(val) {\n triggerChange(getNextMillisecondTime(val));\n };\n var onMeridiemChange = function onMeridiemChange(val) {\n triggerChange(getMeridiemTime(val));\n };\n\n // ====================== Column Hover ======================\n var onHourHover = function onHourHover(val) {\n onHover(getNextHourTime(val));\n };\n var onMinuteHover = function onMinuteHover(val) {\n onHover(getNextMinuteTime(val));\n };\n var onSecondHover = function onSecondHover(val) {\n onHover(getNextSecondTime(val));\n };\n var onMillisecondHover = function onMillisecondHover(val) {\n onHover(getNextMillisecondTime(val));\n };\n var onMeridiemHover = function onMeridiemHover(val) {\n onHover(getMeridiemTime(val));\n };\n\n // ========================= Render =========================\n var sharedColumnProps = {\n onDblClick: onCellDblClick,\n changeOnScroll: changeOnScroll\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-content\")\n }, showHour && /*#__PURE__*/React.createElement(TimeColumn, _extends({\n units: hourUnits,\n value: hour,\n optionalValue: pickerHour,\n type: \"hour\",\n onChange: onHourChange,\n onHover: onHourHover\n }, sharedColumnProps)), showMinute && /*#__PURE__*/React.createElement(TimeColumn, _extends({\n units: minuteUnits,\n value: minute,\n optionalValue: pickerMinute,\n type: \"minute\",\n onChange: onMinuteChange,\n onHover: onMinuteHover\n }, sharedColumnProps)), showSecond && /*#__PURE__*/React.createElement(TimeColumn, _extends({\n units: secondUnits,\n value: second,\n optionalValue: pickerSecond,\n type: \"second\",\n onChange: onSecondChange,\n onHover: onSecondHover\n }, sharedColumnProps)), showMillisecond && /*#__PURE__*/React.createElement(TimeColumn, _extends({\n units: millisecondUnits,\n value: millisecond,\n optionalValue: pickerMillisecond,\n type: \"millisecond\",\n onChange: onMillisecondChange,\n onHover: onMillisecondHover\n }, sharedColumnProps)), showMeridiem && /*#__PURE__*/React.createElement(TimeColumn, _extends({\n units: meridiemUnits,\n value: meridiem,\n type: \"meridiem\",\n onChange: onMeridiemChange,\n onHover: onMeridiemHover\n }, sharedColumnProps)));\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { formatValue } from \"../../utils/dateUtil\";\nimport { PanelContext, useInfo } from \"../context\";\nimport PanelHeader from \"../PanelHeader\";\nimport TimePanelBody from \"./TimePanelBody\";\nexport default function TimePanel(props) {\n var prefixCls = props.prefixCls,\n value = props.value,\n locale = props.locale,\n generateConfig = props.generateConfig,\n showTime = props.showTime;\n var _ref = showTime || {},\n format = _ref.format;\n var panelPrefixCls = \"\".concat(prefixCls, \"-time-panel\");\n\n // ========================== Base ==========================\n var _useInfo = useInfo(props, 'time'),\n _useInfo2 = _slicedToArray(_useInfo, 1),\n info = _useInfo2[0];\n\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: info\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(panelPrefixCls)\n }, /*#__PURE__*/React.createElement(PanelHeader, null, value ? formatValue(value, {\n locale: locale,\n format: format,\n generateConfig: generateConfig\n }) : \"\\xA0\"), /*#__PURE__*/React.createElement(TimePanelBody, showTime)));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport { useEvent, useMergedState, warning } from 'rc-util';\nimport * as React from 'react';\nimport useLocale from \"../hooks/useLocale\";\nimport { fillShowTimeConfig, getTimeProps } from \"../hooks/useTimeConfig\";\nimport useToggleDates from \"../hooks/useToggleDates\";\nimport PickerContext from \"../PickerInput/context\";\nimport useCellRender from \"../PickerInput/hooks/useCellRender\";\nimport { isSame } from \"../utils/dateUtil\";\nimport { pickProps, toArray } from \"../utils/miscUtil\";\nimport { PickerHackContext } from \"./context\";\nimport DatePanel from \"./DatePanel\";\nimport DateTimePanel from \"./DateTimePanel\";\nimport DecadePanel from \"./DecadePanel\";\nimport MonthPanel from \"./MonthPanel\";\nimport QuarterPanel from \"./QuarterPanel\";\nimport TimePanel from \"./TimePanel\";\nimport WeekPanel from \"./WeekPanel\";\nimport YearPanel from \"./YearPanel\";\nvar DefaultComponents = {\n date: DatePanel,\n datetime: DateTimePanel,\n week: WeekPanel,\n month: MonthPanel,\n quarter: QuarterPanel,\n year: YearPanel,\n decade: DecadePanel,\n time: TimePanel\n};\nfunction PickerPanel(props, ref) {\n var _React$useContext;\n var locale = props.locale,\n generateConfig = props.generateConfig,\n direction = props.direction,\n prefixCls = props.prefixCls,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n multiple = props.multiple,\n defaultValue = props.defaultValue,\n value = props.value,\n onChange = props.onChange,\n onSelect = props.onSelect,\n defaultPickerValue = props.defaultPickerValue,\n pickerValue = props.pickerValue,\n onPickerValueChange = props.onPickerValueChange,\n mode = props.mode,\n onPanelChange = props.onPanelChange,\n _props$picker = props.picker,\n picker = _props$picker === void 0 ? 'date' : _props$picker,\n showTime = props.showTime,\n hoverValue = props.hoverValue,\n hoverRangeValue = props.hoverRangeValue,\n cellRender = props.cellRender,\n dateRender = props.dateRender,\n monthCellRender = props.monthCellRender,\n _props$components = props.components,\n components = _props$components === void 0 ? {} : _props$components,\n hideHeader = props.hideHeader;\n var mergedPrefixCls = ((_React$useContext = React.useContext(PickerContext)) === null || _React$useContext === void 0 ? void 0 : _React$useContext.prefixCls) || prefixCls || 'rc-picker';\n\n // ========================== Refs ==========================\n var rootRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n return {\n nativeElement: rootRef.current\n };\n });\n\n // ========================== Time ==========================\n // Auto `format` need to check `showTime.showXXX` first.\n // And then merge the `locale` into `mergedShowTime`.\n var _getTimeProps = getTimeProps(props),\n _getTimeProps2 = _slicedToArray(_getTimeProps, 4),\n timeProps = _getTimeProps2[0],\n localeTimeProps = _getTimeProps2[1],\n showTimeFormat = _getTimeProps2[2],\n propFormat = _getTimeProps2[3];\n\n // ========================= Locale =========================\n var filledLocale = useLocale(locale, localeTimeProps);\n\n // ========================= Picker =========================\n var internalPicker = picker === 'date' && showTime ? 'datetime' : picker;\n\n // ======================== ShowTime ========================\n var mergedShowTime = React.useMemo(function () {\n return fillShowTimeConfig(internalPicker, showTimeFormat, propFormat, timeProps, filledLocale);\n }, [internalPicker, showTimeFormat, propFormat, timeProps, filledLocale]);\n\n // ========================== Now ===========================\n var now = generateConfig.getNow();\n\n // ========================== Mode ==========================\n var _useMergedState = useMergedState(picker, {\n value: mode,\n postState: function postState(val) {\n return val || 'date';\n }\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedMode = _useMergedState2[0],\n setMergedMode = _useMergedState2[1];\n var internalMode = mergedMode === 'date' && mergedShowTime ? 'datetime' : mergedMode;\n\n // ========================= Toggle =========================\n var toggleDates = useToggleDates(generateConfig, locale, internalPicker);\n\n // ========================= Value ==========================\n // >>> Real value\n // Interactive with `onChange` event which only trigger when the `mode` is `picker`\n var _useMergedState3 = useMergedState(defaultValue, {\n value: value\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n innerValue = _useMergedState4[0],\n setMergedValue = _useMergedState4[1];\n var mergedValue = React.useMemo(function () {\n // Clean up `[null]`\n var values = toArray(innerValue).filter(function (val) {\n return val;\n });\n return multiple ? values : values.slice(0, 1);\n }, [innerValue, multiple]);\n\n // Sync value and only trigger onChange event when changed\n var triggerChange = useEvent(function (nextValue) {\n setMergedValue(nextValue);\n if (onChange && (nextValue === null || mergedValue.length !== nextValue.length || mergedValue.some(function (ori, index) {\n return !isSame(generateConfig, locale, ori, nextValue[index], internalPicker);\n }))) {\n onChange === null || onChange === void 0 || onChange(multiple ? nextValue : nextValue[0]);\n }\n });\n\n // >>> CalendarValue\n // CalendarValue is a temp value for user operation\n // which will only trigger `onCalendarChange` but not `onChange`\n var onInternalSelect = useEvent(function (newDate) {\n onSelect === null || onSelect === void 0 || onSelect(newDate);\n if (mergedMode === picker) {\n var nextValues = multiple ? toggleDates(mergedValue, newDate) : [newDate];\n triggerChange(nextValues);\n }\n });\n\n // >>> PickerValue\n // PickerValue is used to control the current displaying panel\n var _useMergedState5 = useMergedState(defaultPickerValue || mergedValue[0] || now, {\n value: pickerValue\n }),\n _useMergedState6 = _slicedToArray(_useMergedState5, 2),\n mergedPickerValue = _useMergedState6[0],\n setInternalPickerValue = _useMergedState6[1];\n React.useEffect(function () {\n if (mergedValue[0] && !pickerValue) {\n setInternalPickerValue(mergedValue[0]);\n }\n }, [mergedValue[0]]);\n\n // Both trigger when manually pickerValue or mode change\n var triggerPanelChange = function triggerPanelChange(viewDate, nextMode) {\n onPanelChange === null || onPanelChange === void 0 || onPanelChange(viewDate || pickerValue, nextMode || mergedMode);\n };\n var setPickerValue = function setPickerValue(nextPickerValue) {\n var triggerPanelEvent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n setInternalPickerValue(nextPickerValue);\n onPickerValueChange === null || onPickerValueChange === void 0 || onPickerValueChange(nextPickerValue);\n if (triggerPanelEvent) {\n triggerPanelChange(nextPickerValue);\n }\n };\n var triggerModeChange = function triggerModeChange(nextMode, viewDate) {\n setMergedMode(nextMode);\n if (viewDate) {\n setPickerValue(viewDate);\n }\n triggerPanelChange(viewDate, nextMode);\n };\n var onPanelValueSelect = function onPanelValueSelect(nextValue) {\n onInternalSelect(nextValue);\n setPickerValue(nextValue);\n\n // Update mode if needed\n if (mergedMode !== picker) {\n var decadeYearQueue = ['decade', 'year'];\n var decadeYearMonthQueue = [].concat(decadeYearQueue, ['month']);\n var pickerQueue = {\n quarter: [].concat(decadeYearQueue, ['quarter']),\n week: [].concat(_toConsumableArray(decadeYearMonthQueue), ['week']),\n date: [].concat(_toConsumableArray(decadeYearMonthQueue), ['date'])\n };\n var queue = pickerQueue[picker] || decadeYearMonthQueue;\n var index = queue.indexOf(mergedMode);\n var nextMode = queue[index + 1];\n if (nextMode) {\n triggerModeChange(nextMode, nextValue);\n }\n }\n };\n\n // ======================= Hover Date =======================\n var hoverRangeDate = React.useMemo(function () {\n var start;\n var end;\n if (Array.isArray(hoverRangeValue)) {\n var _hoverRangeValue = _slicedToArray(hoverRangeValue, 2);\n start = _hoverRangeValue[0];\n end = _hoverRangeValue[1];\n } else {\n start = hoverRangeValue;\n }\n\n // Return for not exist\n if (!start && !end) {\n return null;\n }\n\n // Fill if has empty\n start = start || end;\n end = end || start;\n return generateConfig.isAfter(start, end) ? [end, start] : [start, end];\n }, [hoverRangeValue, generateConfig]);\n\n // ======================= Components =======================\n // >>> cellRender\n var onInternalCellRender = useCellRender(cellRender, dateRender, monthCellRender);\n\n // ======================= Components =======================\n var PanelComponent = components[internalMode] || DefaultComponents[internalMode] || DatePanel;\n\n // ======================== Context =========================\n var parentHackContext = React.useContext(PickerHackContext);\n var pickerPanelContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, parentHackContext), {}, {\n hideHeader: hideHeader\n });\n }, [parentHackContext, hideHeader]);\n\n // ======================== Warnings ========================\n if (process.env.NODE_ENV !== 'production') {\n warning(!mergedValue || mergedValue.every(function (val) {\n return generateConfig.isValidate(val);\n }), 'Invalidate date pass to `value` or `defaultValue`.');\n }\n\n // ========================= Render =========================\n var panelCls = \"\".concat(mergedPrefixCls, \"-panel\");\n var panelProps = pickProps(props, [\n // Week\n 'showWeek',\n // Icons\n 'prevIcon', 'nextIcon', 'superPrevIcon', 'superNextIcon',\n // Disabled\n 'disabledDate', 'minDate', 'maxDate',\n // Hover\n 'onHover']);\n return /*#__PURE__*/React.createElement(PickerHackContext.Provider, {\n value: pickerPanelContext\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: rootRef,\n tabIndex: tabIndex,\n className: classNames(panelCls, _defineProperty({}, \"\".concat(panelCls, \"-rtl\"), direction === 'rtl'))\n }, /*#__PURE__*/React.createElement(PanelComponent, _extends({}, panelProps, {\n // Time\n showTime: mergedShowTime\n // MISC\n ,\n prefixCls: mergedPrefixCls,\n locale: filledLocale,\n generateConfig: generateConfig\n // Mode\n ,\n onModeChange: triggerModeChange\n // Value\n ,\n pickerValue: mergedPickerValue,\n onPickerValueChange: function onPickerValueChange(nextPickerValue) {\n setPickerValue(nextPickerValue, true);\n },\n value: mergedValue[0],\n onSelect: onPanelValueSelect,\n values: mergedValue\n // Render\n ,\n cellRender: onInternalCellRender\n // Hover\n ,\n hoverRangeValue: hoverRangeDate,\n hoverValue: hoverValue\n }))));\n}\nvar RefPanelPicker = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(PickerPanel));\nif (process.env.NODE_ENV !== 'production') {\n RefPanelPicker.displayName = 'PanelPicker';\n}\n\n// Make support generic\nexport default RefPanelPicker;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useTimeInfo from \"../../hooks/useTimeInfo\";\nimport { fillTime } from \"../../utils/dateUtil\";\nimport DatePanel from \"../DatePanel\";\nimport TimePanel from \"../TimePanel\";\nexport default function DateTimePanel(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n showTime = props.showTime,\n onSelect = props.onSelect,\n value = props.value,\n pickerValue = props.pickerValue,\n onHover = props.onHover;\n var panelPrefixCls = \"\".concat(prefixCls, \"-datetime-panel\");\n\n // =============================== Time ===============================\n var _useTimeInfo = useTimeInfo(generateConfig, showTime),\n _useTimeInfo2 = _slicedToArray(_useTimeInfo, 1),\n getValidTime = _useTimeInfo2[0];\n\n // Merge the time info from `value` or `pickerValue`\n var mergeTime = function mergeTime(date) {\n if (value) {\n return fillTime(generateConfig, date, value);\n }\n return fillTime(generateConfig, date, pickerValue);\n };\n\n // ============================== Hover ===============================\n var onDateHover = function onDateHover(date) {\n onHover === null || onHover === void 0 || onHover(date ? mergeTime(date) : date);\n };\n\n // ============================== Select ==============================\n var onDateSelect = function onDateSelect(date) {\n // Merge with current time\n var cloneDate = mergeTime(date);\n onSelect(getValidTime(cloneDate, cloneDate));\n };\n\n // ============================== Render ==============================\n return /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(DatePanel, _extends({}, props, {\n onSelect: onDateSelect,\n onHover: onDateHover\n })), /*#__PURE__*/React.createElement(TimePanel, props));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { isInRange, isSameWeek } from \"../../utils/dateUtil\";\nimport DatePanel from \"../DatePanel\";\nexport default function WeekPanel(props) {\n var prefixCls = props.prefixCls,\n generateConfig = props.generateConfig,\n locale = props.locale,\n value = props.value,\n hoverValue = props.hoverValue,\n hoverRangeValue = props.hoverRangeValue;\n\n // =============================== Row ================================\n var localeName = locale.locale;\n var rowPrefixCls = \"\".concat(prefixCls, \"-week-panel-row\");\n var rowClassName = function rowClassName(currentDate) {\n var rangeCls = {};\n if (hoverRangeValue) {\n var _hoverRangeValue = _slicedToArray(hoverRangeValue, 2),\n rangeStart = _hoverRangeValue[0],\n rangeEnd = _hoverRangeValue[1];\n var isRangeStart = isSameWeek(generateConfig, localeName, rangeStart, currentDate);\n var isRangeEnd = isSameWeek(generateConfig, localeName, rangeEnd, currentDate);\n rangeCls[\"\".concat(rowPrefixCls, \"-range-start\")] = isRangeStart;\n rangeCls[\"\".concat(rowPrefixCls, \"-range-end\")] = isRangeEnd;\n rangeCls[\"\".concat(rowPrefixCls, \"-range-hover\")] = !isRangeStart && !isRangeEnd && isInRange(generateConfig, rangeStart, rangeEnd, currentDate);\n }\n if (hoverValue) {\n rangeCls[\"\".concat(rowPrefixCls, \"-hover\")] = hoverValue.some(function (date) {\n return isSameWeek(generateConfig, localeName, currentDate, date);\n });\n }\n return classNames(rowPrefixCls, _defineProperty({}, \"\".concat(rowPrefixCls, \"-selected\"), !hoverRangeValue && isSameWeek(generateConfig, localeName, value, currentDate)),\n // Patch for hover range\n rangeCls);\n };\n\n // ============================== Render ==============================\n return /*#__PURE__*/React.createElement(DatePanel, _extends({}, props, {\n mode: \"week\",\n panelName: \"week\",\n rowClassName: rowClassName\n }));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { formatValue } from \"../../utils/dateUtil\";\nimport { PanelContext, useInfo } from \"../context\";\nimport PanelBody from \"../PanelBody\";\nimport PanelHeader from \"../PanelHeader\";\nexport default function MonthPanel(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n generateConfig = props.generateConfig,\n pickerValue = props.pickerValue,\n disabledDate = props.disabledDate,\n onPickerValueChange = props.onPickerValueChange,\n onModeChange = props.onModeChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-month-panel\");\n\n // ========================== Base ==========================\n var _useInfo = useInfo(props, 'month'),\n _useInfo2 = _slicedToArray(_useInfo, 1),\n info = _useInfo2[0];\n var baseDate = generateConfig.setMonth(pickerValue, 0);\n\n // ========================= Month ==========================\n var monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);\n\n // ========================= Cells ==========================\n var getCellDate = function getCellDate(date, offset) {\n return generateConfig.addMonth(date, offset);\n };\n var getCellText = function getCellText(date) {\n var month = generateConfig.getMonth(date);\n return locale.monthFormat ? formatValue(date, {\n locale: locale,\n format: locale.monthFormat,\n generateConfig: generateConfig\n }) : monthsLocale[month];\n };\n var getCellClassName = function getCellClassName() {\n return _defineProperty({}, \"\".concat(prefixCls, \"-cell-in-view\"), true);\n };\n\n // ======================== Disabled ========================\n var mergedDisabledDate = disabledDate ? function (currentDate, disabledInfo) {\n var startDate = generateConfig.setDate(currentDate, 1);\n var nextMonthStartDate = generateConfig.setMonth(startDate, generateConfig.getMonth(startDate) + 1);\n var endDate = generateConfig.addDate(nextMonthStartDate, -1);\n return disabledDate(startDate, disabledInfo) && disabledDate(endDate, disabledInfo);\n } : null;\n\n // ========================= Header =========================\n var yearNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n key: \"year\",\n \"aria-label\": locale.yearSelect,\n onClick: function onClick() {\n onModeChange('year');\n },\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(pickerValue, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }));\n\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: info\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(PanelHeader, {\n superOffset: function superOffset(distance) {\n return generateConfig.addYear(pickerValue, distance);\n },\n onChange: onPickerValueChange\n // Limitation\n ,\n getStart: function getStart(date) {\n return generateConfig.setMonth(date, 0);\n },\n getEnd: function getEnd(date) {\n return generateConfig.setMonth(date, 11);\n }\n }, yearNode), /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n disabledDate: mergedDisabledDate,\n titleFormat: locale.fieldMonthFormat,\n colNum: 3,\n rowNum: 4,\n baseDate: baseDate\n // Body\n ,\n getCellDate: getCellDate,\n getCellText: getCellText,\n getCellClassName: getCellClassName\n }))));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { formatValue } from \"../../utils/dateUtil\";\nimport { PanelContext, useInfo } from \"../context\";\nimport PanelBody from \"../PanelBody\";\nimport PanelHeader from \"../PanelHeader\";\nexport default function QuarterPanel(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n generateConfig = props.generateConfig,\n pickerValue = props.pickerValue,\n onPickerValueChange = props.onPickerValueChange,\n onModeChange = props.onModeChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-quarter-panel\");\n\n // ========================== Base ==========================\n var _useInfo = useInfo(props, 'quarter'),\n _useInfo2 = _slicedToArray(_useInfo, 1),\n info = _useInfo2[0];\n var baseDate = generateConfig.setMonth(pickerValue, 0);\n\n // ========================= Cells ==========================\n var getCellDate = function getCellDate(date, offset) {\n return generateConfig.addMonth(date, offset * 3);\n };\n var getCellText = function getCellText(date) {\n return formatValue(date, {\n locale: locale,\n format: locale.cellQuarterFormat,\n generateConfig: generateConfig\n });\n };\n var getCellClassName = function getCellClassName() {\n return _defineProperty({}, \"\".concat(prefixCls, \"-cell-in-view\"), true);\n };\n\n // ========================= Header =========================\n var yearNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n key: \"year\",\n \"aria-label\": locale.yearSelect,\n onClick: function onClick() {\n onModeChange('year');\n },\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-year-btn\")\n }, formatValue(pickerValue, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }));\n\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: info\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(PanelHeader, {\n superOffset: function superOffset(distance) {\n return generateConfig.addYear(pickerValue, distance);\n },\n onChange: onPickerValueChange\n // Limitation\n ,\n getStart: function getStart(date) {\n return generateConfig.setMonth(date, 0);\n },\n getEnd: function getEnd(date) {\n return generateConfig.setMonth(date, 11);\n }\n }, yearNode), /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n titleFormat: locale.fieldQuarterFormat,\n colNum: 4,\n rowNum: 1,\n baseDate: baseDate\n // Body\n ,\n getCellDate: getCellDate,\n getCellText: getCellText,\n getCellClassName: getCellClassName\n }))));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { formatValue, isInRange, isSameYear } from \"../../utils/dateUtil\";\nimport { PanelContext, useInfo } from \"../context\";\nimport PanelBody from \"../PanelBody\";\nimport PanelHeader from \"../PanelHeader\";\nexport default function YearPanel(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n generateConfig = props.generateConfig,\n pickerValue = props.pickerValue,\n disabledDate = props.disabledDate,\n onPickerValueChange = props.onPickerValueChange,\n onModeChange = props.onModeChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-year-panel\");\n\n // ========================== Base ==========================\n var _useInfo = useInfo(props, 'year'),\n _useInfo2 = _slicedToArray(_useInfo, 1),\n info = _useInfo2[0];\n var getStartYear = function getStartYear(date) {\n var startYear = Math.floor(generateConfig.getYear(date) / 10) * 10;\n return generateConfig.setYear(date, startYear);\n };\n var getEndYear = function getEndYear(date) {\n var startYear = getStartYear(date);\n return generateConfig.addYear(startYear, 9);\n };\n var startYearDate = getStartYear(pickerValue);\n var endYearDate = getEndYear(pickerValue);\n var baseDate = generateConfig.addYear(startYearDate, -1);\n\n // ========================= Cells ==========================\n var getCellDate = function getCellDate(date, offset) {\n return generateConfig.addYear(date, offset);\n };\n var getCellText = function getCellText(date) {\n return formatValue(date, {\n locale: locale,\n format: locale.cellYearFormat,\n generateConfig: generateConfig\n });\n };\n var getCellClassName = function getCellClassName(date) {\n return _defineProperty({}, \"\".concat(prefixCls, \"-cell-in-view\"), isSameYear(generateConfig, date, startYearDate) || isSameYear(generateConfig, date, endYearDate) || isInRange(generateConfig, startYearDate, endYearDate, date));\n };\n\n // ======================== Disabled ========================\n var mergedDisabledDate = disabledDate ? function (currentDate, disabledInfo) {\n // Start\n var startMonth = generateConfig.setMonth(currentDate, 0);\n var startDate = generateConfig.setDate(startMonth, 1);\n\n // End\n var endMonth = generateConfig.addYear(startDate, 1);\n var endDate = generateConfig.addDate(endMonth, -1);\n return disabledDate(startDate, disabledInfo) && disabledDate(endDate, disabledInfo);\n } : null;\n\n // ========================= Header =========================\n var yearNode = /*#__PURE__*/React.createElement(\"button\", {\n type: \"button\",\n key: \"decade\",\n \"aria-label\": locale.decadeSelect,\n onClick: function onClick() {\n onModeChange('decade');\n },\n tabIndex: -1,\n className: \"\".concat(prefixCls, \"-decade-btn\")\n }, formatValue(startYearDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }), \"-\", formatValue(endYearDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }));\n\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: info\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(PanelHeader, {\n superOffset: function superOffset(distance) {\n return generateConfig.addYear(pickerValue, distance * 10);\n },\n onChange: onPickerValueChange\n // Limitation\n ,\n getStart: getStartYear,\n getEnd: getEndYear\n }, yearNode), /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n disabledDate: mergedDisabledDate,\n titleFormat: locale.fieldYearFormat,\n colNum: 3,\n rowNum: 4,\n baseDate: baseDate\n // Body\n ,\n getCellDate: getCellDate,\n getCellText: getCellText,\n getCellClassName: getCellClassName\n }))));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { formatValue, isInRange, isSameDecade } from \"../../utils/dateUtil\";\nimport { PanelContext, useInfo } from \"../context\";\nimport PanelBody from \"../PanelBody\";\nimport PanelHeader from \"../PanelHeader\";\nexport default function DecadePanel(props) {\n var prefixCls = props.prefixCls,\n locale = props.locale,\n generateConfig = props.generateConfig,\n pickerValue = props.pickerValue,\n disabledDate = props.disabledDate,\n onPickerValueChange = props.onPickerValueChange;\n var panelPrefixCls = \"\".concat(prefixCls, \"-decade-panel\");\n\n // ========================== Base ==========================\n var _useInfo = useInfo(props, 'decade'),\n _useInfo2 = _slicedToArray(_useInfo, 1),\n info = _useInfo2[0];\n var getStartYear = function getStartYear(date) {\n var startYear = Math.floor(generateConfig.getYear(date) / 100) * 100;\n return generateConfig.setYear(date, startYear);\n };\n var getEndYear = function getEndYear(date) {\n var startYear = getStartYear(date);\n return generateConfig.addYear(startYear, 99);\n };\n var startYearDate = getStartYear(pickerValue);\n var endYearDate = getEndYear(pickerValue);\n var baseDate = generateConfig.addYear(startYearDate, -10);\n\n // ========================= Cells ==========================\n var getCellDate = function getCellDate(date, offset) {\n return generateConfig.addYear(date, offset * 10);\n };\n var getCellText = function getCellText(date) {\n var cellYearFormat = locale.cellYearFormat;\n var startYearStr = formatValue(date, {\n locale: locale,\n format: cellYearFormat,\n generateConfig: generateConfig\n });\n var endYearStr = formatValue(generateConfig.addYear(date, 9), {\n locale: locale,\n format: cellYearFormat,\n generateConfig: generateConfig\n });\n return \"\".concat(startYearStr, \"-\").concat(endYearStr);\n };\n var getCellClassName = function getCellClassName(date) {\n return _defineProperty({}, \"\".concat(prefixCls, \"-cell-in-view\"), isSameDecade(generateConfig, date, startYearDate) || isSameDecade(generateConfig, date, endYearDate) || isInRange(generateConfig, startYearDate, endYearDate, date));\n };\n\n // ======================== Disabled ========================\n var mergedDisabledDate = disabledDate ? function (currentDate, disabledInfo) {\n // Start\n var baseStartDate = generateConfig.setDate(currentDate, 1);\n var baseStartMonth = generateConfig.setMonth(baseStartDate, 0);\n var baseStartYear = generateConfig.setYear(baseStartMonth, Math.floor(generateConfig.getYear(baseStartMonth) / 10) * 10);\n\n // End\n var baseEndYear = generateConfig.addYear(baseStartYear, 10);\n var baseEndDate = generateConfig.addDate(baseEndYear, -1);\n return disabledDate(baseStartYear, disabledInfo) && disabledDate(baseEndDate, disabledInfo);\n } : null;\n\n // ========================= Header =========================\n var yearNode = \"\".concat(formatValue(startYearDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }), \"-\").concat(formatValue(endYearDate, {\n locale: locale,\n format: locale.yearFormat,\n generateConfig: generateConfig\n }));\n\n // ========================= Render =========================\n return /*#__PURE__*/React.createElement(PanelContext.Provider, {\n value: info\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: panelPrefixCls\n }, /*#__PURE__*/React.createElement(PanelHeader, {\n superOffset: function superOffset(distance) {\n return generateConfig.addYear(pickerValue, distance * 100);\n },\n onChange: onPickerValueChange\n // Limitation\n ,\n getStart: getStartYear,\n getEnd: getEndYear\n }, yearNode), /*#__PURE__*/React.createElement(PanelBody, _extends({}, props, {\n disabledDate: mergedDisabledDate,\n colNum: 3,\n rowNum: 4,\n baseDate: baseDate\n // Body\n ,\n getCellDate: getCellDate,\n getCellText: getCellText,\n getCellClassName: getCellClassName\n }))));\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nimport PickerPanel from \"../../PickerPanel\";\nimport { PickerHackContext } from \"../../PickerPanel/context\";\nimport PickerContext from \"../context\";\nimport { offsetPanelDate } from \"../hooks/useRangePickerValue\";\nexport default function PopupPanel(props) {\n var picker = props.picker,\n multiplePanel = props.multiplePanel,\n pickerValue = props.pickerValue,\n onPickerValueChange = props.onPickerValueChange,\n needConfirm = props.needConfirm,\n onSubmit = props.onSubmit,\n range = props.range,\n hoverValue = props.hoverValue;\n var _React$useContext = React.useContext(PickerContext),\n prefixCls = _React$useContext.prefixCls,\n generateConfig = _React$useContext.generateConfig;\n\n // ======================== Offset ========================\n var internalOffsetDate = React.useCallback(function (date, offset) {\n return offsetPanelDate(generateConfig, picker, date, offset);\n }, [generateConfig, picker]);\n var nextPickerValue = React.useMemo(function () {\n return internalOffsetDate(pickerValue, 1);\n }, [pickerValue, internalOffsetDate]);\n\n // Outside\n var onSecondPickerValueChange = function onSecondPickerValueChange(nextDate) {\n onPickerValueChange(internalOffsetDate(nextDate, -1));\n };\n\n // ======================= Context ========================\n var sharedContext = {\n onCellDblClick: function onCellDblClick() {\n if (needConfirm) {\n onSubmit();\n }\n }\n };\n var hideHeader = picker === 'time';\n\n // ======================== Props =========================\n var pickerProps = _objectSpread(_objectSpread({}, props), {}, {\n hoverValue: null,\n hoverRangeValue: null,\n hideHeader: hideHeader\n });\n if (range) {\n pickerProps.hoverRangeValue = hoverValue;\n } else {\n pickerProps.hoverValue = hoverValue;\n }\n\n // ======================== Render ========================\n // Multiple\n if (multiplePanel) {\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panels\")\n }, /*#__PURE__*/React.createElement(PickerHackContext.Provider, {\n value: _objectSpread(_objectSpread({}, sharedContext), {}, {\n hideNext: true\n })\n }, /*#__PURE__*/React.createElement(PickerPanel, pickerProps)), /*#__PURE__*/React.createElement(PickerHackContext.Provider, {\n value: _objectSpread(_objectSpread({}, sharedContext), {}, {\n hidePrev: true\n })\n }, /*#__PURE__*/React.createElement(PickerPanel, _extends({}, pickerProps, {\n pickerValue: nextPickerValue,\n onPickerValueChange: onSecondPickerValueChange\n }))));\n }\n\n // Single\n return /*#__PURE__*/React.createElement(PickerHackContext.Provider, {\n value: _objectSpread({}, sharedContext)\n }, /*#__PURE__*/React.createElement(PickerPanel, pickerProps));\n}","import * as React from 'react';\nfunction executeValue(value) {\n return typeof value === 'function' ? value() : value;\n}\nexport default function PresetPanel(props) {\n var prefixCls = props.prefixCls,\n presets = props.presets,\n _onClick = props.onClick,\n onHover = props.onHover;\n if (!presets.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-presets\")\n }, /*#__PURE__*/React.createElement(\"ul\", null, presets.map(function (_ref, index) {\n var label = _ref.label,\n value = _ref.value;\n return /*#__PURE__*/React.createElement(\"li\", {\n key: index,\n onClick: function onClick() {\n _onClick(executeValue(value));\n },\n onMouseEnter: function onMouseEnter() {\n onHover(executeValue(value));\n },\n onMouseLeave: function onMouseLeave() {\n onHover(null);\n }\n }, label);\n })));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport * as React from 'react';\nimport { toArray } from \"../../utils/miscUtil\";\nimport PickerContext from \"../context\";\nimport Footer from \"./Footer\";\nimport PopupPanel from \"./PopupPanel\";\nimport PresetPanel from \"./PresetPanel\";\nexport default function Popup(props) {\n var panelRender = props.panelRender,\n internalMode = props.internalMode,\n picker = props.picker,\n showNow = props.showNow,\n range = props.range,\n multiple = props.multiple,\n _props$activeInfo = props.activeInfo,\n activeInfo = _props$activeInfo === void 0 ? [0, 0, 0] : _props$activeInfo,\n presets = props.presets,\n onPresetHover = props.onPresetHover,\n onPresetSubmit = props.onPresetSubmit,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onPanelMouseDown = props.onPanelMouseDown,\n direction = props.direction,\n value = props.value,\n onSelect = props.onSelect,\n isInvalid = props.isInvalid,\n defaultOpenValue = props.defaultOpenValue,\n onOk = props.onOk,\n onSubmit = props.onSubmit;\n var _React$useContext = React.useContext(PickerContext),\n prefixCls = _React$useContext.prefixCls;\n var panelPrefixCls = \"\".concat(prefixCls, \"-panel\");\n var rtl = direction === 'rtl';\n\n // ========================= Refs =========================\n var arrowRef = React.useRef(null);\n var wrapperRef = React.useRef(null);\n\n // ======================== Offset ========================\n var _React$useState = React.useState(0),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n containerWidth = _React$useState2[0],\n setContainerWidth = _React$useState2[1];\n var _React$useState3 = React.useState(0),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n containerOffset = _React$useState4[0],\n setContainerOffset = _React$useState4[1];\n var _React$useState5 = React.useState(0),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n arrowOffset = _React$useState6[0],\n setArrowOffset = _React$useState6[1];\n var onResize = function onResize(info) {\n if (info.width) {\n setContainerWidth(info.width);\n }\n };\n var _activeInfo = _slicedToArray(activeInfo, 3),\n activeInputLeft = _activeInfo[0],\n activeInputRight = _activeInfo[1],\n selectorWidth = _activeInfo[2];\n React.useEffect(function () {\n // `activeOffset` is always align with the active input element\n // So we need only check container contains the `activeOffset`\n if (range && wrapperRef.current) {\n var _arrowRef$current;\n // Offset in case container has border radius\n var arrowWidth = ((_arrowRef$current = arrowRef.current) === null || _arrowRef$current === void 0 ? void 0 : _arrowRef$current.offsetWidth) || 0;\n\n // Arrow Offset\n var wrapperRect = wrapperRef.current.getBoundingClientRect();\n var nextArrowOffset = (rtl ? activeInputRight - arrowWidth : activeInputLeft) - wrapperRect.left;\n setArrowOffset(nextArrowOffset);\n\n // Container Offset\n if (containerWidth && containerWidth < selectorWidth) {\n var offset = rtl ? wrapperRect.right - (activeInputRight - arrowWidth + containerWidth) : activeInputLeft + arrowWidth - wrapperRect.left - containerWidth;\n var safeOffset = Math.max(0, offset);\n setContainerOffset(safeOffset);\n } else {\n setContainerOffset(0);\n }\n }\n }, [rtl, containerWidth, activeInputLeft, activeInputRight, selectorWidth, range]);\n\n // ======================== Custom ========================\n function filterEmpty(list) {\n return list.filter(function (item) {\n return item;\n });\n }\n var valueList = React.useMemo(function () {\n return filterEmpty(toArray(value));\n }, [value]);\n var isTimePickerEmptyValue = picker === 'time' && !valueList.length;\n var footerSubmitValue = React.useMemo(function () {\n if (isTimePickerEmptyValue) {\n return filterEmpty([defaultOpenValue]);\n }\n return valueList;\n }, [isTimePickerEmptyValue, valueList, defaultOpenValue]);\n var popupPanelValue = isTimePickerEmptyValue ? defaultOpenValue : valueList;\n var disableSubmit = React.useMemo(function () {\n // Empty is invalid\n if (!footerSubmitValue.length) {\n return true;\n }\n return footerSubmitValue.some(function (val) {\n return isInvalid(val);\n });\n }, [footerSubmitValue, isInvalid]);\n var onFooterSubmit = function onFooterSubmit() {\n // For TimePicker, we will additional trigger the value update\n if (isTimePickerEmptyValue) {\n onSelect(defaultOpenValue);\n }\n onOk();\n onSubmit();\n };\n var mergedNodes = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-panel-layout\")\n }, /*#__PURE__*/React.createElement(PresetPanel, {\n prefixCls: prefixCls,\n presets: presets,\n onClick: onPresetSubmit,\n onHover: onPresetHover\n }), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(PopupPanel, _extends({}, props, {\n value: popupPanelValue\n })), /*#__PURE__*/React.createElement(Footer, _extends({}, props, {\n showNow: multiple ? false : showNow,\n invalid: disableSubmit,\n onSubmit: onFooterSubmit\n }))));\n if (panelRender) {\n mergedNodes = panelRender(mergedNodes);\n }\n\n // ======================== Render ========================\n var containerPrefixCls = \"\".concat(panelPrefixCls, \"-container\");\n var marginLeft = 'marginLeft';\n var marginRight = 'marginRight';\n\n // Container\n var renderNode = /*#__PURE__*/React.createElement(\"div\", {\n onMouseDown: onPanelMouseDown,\n tabIndex: -1,\n className: classNames(containerPrefixCls, // Used for Today Button style, safe to remove if no need\n \"\".concat(prefixCls, \"-\").concat(internalMode, \"-panel-container\")),\n style: _defineProperty(_defineProperty({}, rtl ? marginRight : marginLeft, containerOffset), rtl ? marginLeft : marginRight, 'auto')\n // Still wish not to lose focus on mouse down\n // onMouseDown={(e) => {\n // // e.preventDefault();\n // }}\n ,\n onFocus: onFocus,\n onBlur: onBlur\n }, mergedNodes);\n if (range) {\n renderNode = /*#__PURE__*/React.createElement(\"div\", {\n onMouseDown: onPanelMouseDown,\n ref: wrapperRef,\n className: classNames(\"\".concat(prefixCls, \"-range-wrapper\"), \"\".concat(prefixCls, \"-\").concat(picker, \"-range-wrapper\"))\n }, /*#__PURE__*/React.createElement(\"div\", {\n ref: arrowRef,\n className: \"\".concat(prefixCls, \"-range-arrow\"),\n style: {\n left: arrowOffset\n }\n }), /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: onResize\n }, renderNode));\n }\n return renderNode;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport { warning } from 'rc-util';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\nimport { formatValue } from \"../../../utils/dateUtil\";\nexport default function useInputProps(props, /** Used for SinglePicker */\npostProps) {\n var format = props.format,\n maskFormat = props.maskFormat,\n generateConfig = props.generateConfig,\n locale = props.locale,\n preserveInvalidOnBlur = props.preserveInvalidOnBlur,\n inputReadOnly = props.inputReadOnly,\n required = props.required,\n ariaRequired = props['aria-required'],\n onSubmit = props.onSubmit,\n _onFocus = props.onFocus,\n _onBlur = props.onBlur,\n onInputChange = props.onInputChange,\n onInvalid = props.onInvalid,\n open = props.open,\n onOpenChange = props.onOpenChange,\n _onKeyDown = props.onKeyDown,\n _onChange = props.onChange,\n activeHelp = props.activeHelp,\n name = props.name,\n autoComplete = props.autoComplete,\n id = props.id,\n value = props.value,\n invalid = props.invalid,\n placeholder = props.placeholder,\n disabled = props.disabled,\n activeIndex = props.activeIndex,\n allHelp = props.allHelp,\n picker = props.picker;\n\n // ======================== Parser ========================\n var parseDate = function parseDate(str, formatStr) {\n var parsed = generateConfig.locale.parse(locale.locale, str, [formatStr]);\n return parsed && generateConfig.isValidate(parsed) ? parsed : null;\n };\n\n // ========================= Text =========================\n var firstFormat = format[0];\n var getText = React.useCallback(function (date) {\n return formatValue(date, {\n locale: locale,\n format: firstFormat,\n generateConfig: generateConfig\n });\n }, [locale, generateConfig, firstFormat]);\n var valueTexts = React.useMemo(function () {\n return value.map(getText);\n }, [value, getText]);\n\n // ========================= Size =========================\n var size = React.useMemo(function () {\n var defaultSize = picker === 'time' ? 8 : 10;\n var length = typeof firstFormat === 'function' ? firstFormat(generateConfig.getNow()).length : firstFormat.length;\n return Math.max(defaultSize, length) + 2;\n }, [firstFormat, picker, generateConfig]);\n\n // ======================= Validate =======================\n var _validateFormat = function validateFormat(text) {\n for (var i = 0; i < format.length; i += 1) {\n var singleFormat = format[i];\n\n // Only support string type\n if (typeof singleFormat === 'string') {\n var parsed = parseDate(text, singleFormat);\n if (parsed) {\n return parsed;\n }\n }\n }\n return false;\n };\n\n // ======================== Input =========================\n var getInputProps = function getInputProps(index) {\n function getProp(propValue) {\n return index !== undefined ? propValue[index] : propValue;\n }\n var pickedAttrs = pickAttrs(props, {\n aria: true,\n data: true\n });\n var inputProps = _objectSpread(_objectSpread({}, pickedAttrs), {}, {\n // ============== Shared ==============\n format: maskFormat,\n validateFormat: function validateFormat(text) {\n return !!_validateFormat(text);\n },\n preserveInvalidOnBlur: preserveInvalidOnBlur,\n readOnly: inputReadOnly,\n required: required,\n 'aria-required': ariaRequired,\n name: name,\n autoComplete: autoComplete,\n size: size,\n // ============= By Index =============\n id: getProp(id),\n value: getProp(valueTexts) || '',\n invalid: getProp(invalid),\n placeholder: getProp(placeholder),\n active: activeIndex === index,\n helped: allHelp || activeHelp && activeIndex === index,\n disabled: getProp(disabled),\n onFocus: function onFocus(event) {\n _onFocus(event, index);\n },\n onBlur: function onBlur(event) {\n // Blur do not trigger close\n // Since it may focus to the popup panel\n _onBlur(event, index);\n },\n onSubmit: onSubmit,\n // Get validate text value\n onChange: function onChange(text) {\n onInputChange();\n var parsed = _validateFormat(text);\n if (parsed) {\n onInvalid(false, index);\n _onChange(parsed, index);\n return;\n }\n\n // Tell outer that the value typed is invalid.\n // If text is empty, it means valid.\n onInvalid(!!text, index);\n },\n onHelp: function onHelp() {\n onOpenChange(true, {\n index: index\n });\n },\n onKeyDown: function onKeyDown(event) {\n var prevented = false;\n _onKeyDown === null || _onKeyDown === void 0 || _onKeyDown(event, function () {\n if (process.env.NODE_ENV !== 'production') {\n warning(false, '`preventDefault` callback is deprecated. Please call `event.preventDefault` directly.');\n }\n prevented = true;\n });\n if (!event.defaultPrevented && !prevented) {\n switch (event.key) {\n case 'Escape':\n onOpenChange(false, {\n index: index\n });\n break;\n case 'Enter':\n if (!open) {\n onOpenChange(true);\n }\n break;\n }\n }\n }\n }, postProps === null || postProps === void 0 ? void 0 : postProps({\n valueTexts: valueTexts\n }));\n\n // ============== Clean Up ==============\n Object.keys(inputProps).forEach(function (key) {\n if (inputProps[key] === undefined) {\n delete inputProps[key];\n }\n });\n return inputProps;\n };\n return [getInputProps, getText];\n}","import * as React from 'react';\nimport { pickProps } from \"../../../utils/miscUtil\";\nvar propNames = ['onMouseEnter', 'onMouseLeave'];\nexport default function useRootProps(props) {\n return React.useMemo(function () {\n return pickProps(props, propNames);\n }, [props]);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"icon\", \"type\"],\n _excluded2 = [\"onClear\"];\nimport * as React from 'react';\nimport PickerContext from \"../context\";\nexport default function Icon(props) {\n var icon = props.icon,\n type = props.type,\n restProps = _objectWithoutProperties(props, _excluded);\n var _React$useContext = React.useContext(PickerContext),\n prefixCls = _React$useContext.prefixCls;\n return icon ? /*#__PURE__*/React.createElement(\"span\", _extends({\n className: \"\".concat(prefixCls, \"-\").concat(type)\n }, restProps), icon) : null;\n}\nexport function ClearIcon(_ref) {\n var onClear = _ref.onClear,\n restProps = _objectWithoutProperties(_ref, _excluded2);\n return /*#__PURE__*/React.createElement(Icon, _extends({}, restProps, {\n type: \"clear\",\n role: \"button\",\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n },\n onClick: function onClick(e) {\n e.stopPropagation();\n onClear();\n }\n }));\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar FORMAT_KEYS = ['YYYY', 'MM', 'DD', 'HH', 'mm', 'ss', 'SSS'];\n// Use Chinese character to avoid conflict with the mask format\nvar REPLACE_KEY = '顧';\nvar MaskFormat = /*#__PURE__*/function () {\n function MaskFormat(format) {\n _classCallCheck(this, MaskFormat);\n _defineProperty(this, \"format\", void 0);\n _defineProperty(this, \"maskFormat\", void 0);\n _defineProperty(this, \"cells\", void 0);\n _defineProperty(this, \"maskCells\", void 0);\n this.format = format;\n\n // Generate mask format\n var replaceKeys = FORMAT_KEYS.map(function (key) {\n return \"(\".concat(key, \")\");\n }).join('|');\n var replaceReg = new RegExp(replaceKeys, 'g');\n this.maskFormat = format.replace(replaceReg,\n // Use Chinese character to avoid user use it in format\n function (key) {\n return REPLACE_KEY.repeat(key.length);\n });\n\n // Generate cells\n var cellReg = new RegExp(\"(\".concat(FORMAT_KEYS.join('|'), \")\"));\n var strCells = (format.split(cellReg) || []).filter(function (str) {\n return str;\n });\n var offset = 0;\n this.cells = strCells.map(function (text) {\n var mask = FORMAT_KEYS.includes(text);\n var start = offset;\n var end = offset + text.length;\n offset = end;\n return {\n text: text,\n mask: mask,\n start: start,\n end: end\n };\n });\n\n // Mask cells\n this.maskCells = this.cells.filter(function (cell) {\n return cell.mask;\n });\n }\n _createClass(MaskFormat, [{\n key: \"getSelection\",\n value: function getSelection(maskCellIndex) {\n var _ref = this.maskCells[maskCellIndex] || {},\n start = _ref.start,\n end = _ref.end;\n return [start || 0, end || 0];\n }\n\n /** Check given text match format */\n }, {\n key: \"match\",\n value: function match(text) {\n for (var i = 0; i < this.maskFormat.length; i += 1) {\n var maskChar = this.maskFormat[i];\n var textChar = text[i];\n if (!textChar || maskChar !== REPLACE_KEY && maskChar !== textChar) {\n return false;\n }\n }\n return true;\n }\n\n /** Get mask cell count */\n }, {\n key: \"size\",\n value: function size() {\n return this.maskCells.length;\n }\n }, {\n key: \"getMaskCellIndex\",\n value: function getMaskCellIndex(anchorIndex) {\n var closetDist = Number.MAX_SAFE_INTEGER;\n var closetIndex = 0;\n for (var i = 0; i < this.maskCells.length; i += 1) {\n var _this$maskCells$i = this.maskCells[i],\n start = _this$maskCells$i.start,\n end = _this$maskCells$i.end;\n if (anchorIndex >= start && anchorIndex <= end) {\n return i;\n }\n var dist = Math.min(Math.abs(anchorIndex - start), Math.abs(anchorIndex - end));\n if (dist < closetDist) {\n closetDist = dist;\n closetIndex = i;\n }\n }\n return closetIndex;\n }\n }]);\n return MaskFormat;\n}();\nexport { MaskFormat as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"active\", \"showActiveCls\", \"suffixIcon\", \"format\", \"validateFormat\", \"onChange\", \"onInput\", \"helped\", \"onHelp\", \"onSubmit\", \"onKeyDown\", \"preserveInvalidOnBlur\", \"invalid\", \"clearIcon\"];\nimport classNames from 'classnames';\nimport { useEvent } from 'rc-util';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport raf from \"rc-util/es/raf\";\nimport * as React from 'react';\nimport { leftPad } from \"../../utils/miscUtil\";\nimport PickerContext from \"../context\";\nimport useLockEffect from \"../hooks/useLockEffect\";\nimport Icon from \"./Icon\";\nimport MaskFormat from \"./MaskFormat\";\nimport { getMaskRange } from \"./util\";\n\n// Format logic\n//\n// First time on focus:\n// 1. check if the text is valid, if not fill with format\n// 2. set highlight cell to the first cell\n// Cells\n// 1. Selection the index cell, set inner `cacheValue` to ''\n// 2. Key input filter non-number char, patch after the `cacheValue`\n// 1. Replace the `cacheValue` with input align the cell length\n// 2. Re-selection the mask cell\n// 3. If `cacheValue` match the limit length or cell format (like 1 ~ 12 month), go to next cell\n\nvar Input = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var active = props.active,\n _props$showActiveCls = props.showActiveCls,\n showActiveCls = _props$showActiveCls === void 0 ? true : _props$showActiveCls,\n suffixIcon = props.suffixIcon,\n format = props.format,\n validateFormat = props.validateFormat,\n onChange = props.onChange,\n onInput = props.onInput,\n helped = props.helped,\n onHelp = props.onHelp,\n onSubmit = props.onSubmit,\n onKeyDown = props.onKeyDown,\n _props$preserveInvali = props.preserveInvalidOnBlur,\n preserveInvalidOnBlur = _props$preserveInvali === void 0 ? false : _props$preserveInvali,\n invalid = props.invalid,\n clearIcon = props.clearIcon,\n restProps = _objectWithoutProperties(props, _excluded);\n var value = props.value,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onMouseUp = props.onMouseUp;\n var _React$useContext = React.useContext(PickerContext),\n prefixCls = _React$useContext.prefixCls,\n _React$useContext$inp = _React$useContext.input,\n Component = _React$useContext$inp === void 0 ? 'input' : _React$useContext$inp;\n var inputPrefixCls = \"\".concat(prefixCls, \"-input\");\n\n // ======================== Value =========================\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n focused = _React$useState2[0],\n setFocused = _React$useState2[1];\n var _React$useState3 = React.useState(value),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n internalInputValue = _React$useState4[0],\n setInputValue = _React$useState4[1];\n var _React$useState5 = React.useState(''),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n focusCellText = _React$useState6[0],\n setFocusCellText = _React$useState6[1];\n var _React$useState7 = React.useState(null),\n _React$useState8 = _slicedToArray(_React$useState7, 2),\n focusCellIndex = _React$useState8[0],\n setFocusCellIndex = _React$useState8[1];\n var _React$useState9 = React.useState(null),\n _React$useState10 = _slicedToArray(_React$useState9, 2),\n forceSelectionSyncMark = _React$useState10[0],\n forceSelectionSync = _React$useState10[1];\n var inputValue = internalInputValue || '';\n\n // Sync value if needed\n React.useEffect(function () {\n setInputValue(value);\n }, [value]);\n\n // ========================= Refs =========================\n var holderRef = React.useRef();\n var inputRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n return {\n nativeElement: holderRef.current,\n inputElement: inputRef.current,\n focus: function focus(options) {\n inputRef.current.focus(options);\n },\n blur: function blur() {\n inputRef.current.blur();\n }\n };\n });\n\n // ======================== Format ========================\n var maskFormat = React.useMemo(function () {\n return new MaskFormat(format || '');\n }, [format]);\n var _React$useMemo = React.useMemo(function () {\n if (helped) {\n return [0, 0];\n }\n return maskFormat.getSelection(focusCellIndex);\n }, [maskFormat, focusCellIndex, helped]),\n _React$useMemo2 = _slicedToArray(_React$useMemo, 2),\n selectionStart = _React$useMemo2[0],\n selectionEnd = _React$useMemo2[1];\n\n // ======================== Modify ========================\n // When input modify content, trigger `onHelp` if is not the format\n var onModify = function onModify(text) {\n if (text && text !== format && text !== value) {\n onHelp();\n }\n };\n\n // ======================== Change ========================\n /**\n * Triggered by paste, keyDown and focus to show format\n */\n var triggerInputChange = useEvent(function (text) {\n if (validateFormat(text)) {\n onChange(text);\n }\n setInputValue(text);\n onModify(text);\n });\n\n // Directly trigger `onChange` if `format` is empty\n var onInternalChange = function onInternalChange(event) {\n // Hack `onChange` with format to do nothing\n if (!format) {\n var text = event.target.value;\n onModify(text);\n setInputValue(text);\n onChange(text);\n }\n };\n var onFormatPaste = function onFormatPaste(event) {\n // Get paste text\n var pasteText = event.clipboardData.getData('text');\n if (validateFormat(pasteText)) {\n triggerInputChange(pasteText);\n }\n };\n\n // ======================== Mouse =========================\n // When `mouseDown` get focus, it's better to not to change the selection\n // Since the up position maybe not is the first cell\n var mouseDownRef = React.useRef(false);\n var onFormatMouseDown = function onFormatMouseDown() {\n mouseDownRef.current = true;\n };\n var onFormatMouseUp = function onFormatMouseUp(event) {\n var _ref = event.target,\n start = _ref.selectionStart;\n var closeMaskIndex = maskFormat.getMaskCellIndex(start);\n setFocusCellIndex(closeMaskIndex);\n\n // Force update the selection\n forceSelectionSync({});\n onMouseUp === null || onMouseUp === void 0 || onMouseUp(event);\n mouseDownRef.current = false;\n };\n\n // ====================== Focus Blur ======================\n var onFormatFocus = function onFormatFocus(event) {\n setFocused(true);\n setFocusCellIndex(0);\n setFocusCellText('');\n onFocus(event);\n };\n var onSharedBlur = function onSharedBlur(event) {\n onBlur(event);\n };\n var onFormatBlur = function onFormatBlur(event) {\n setFocused(false);\n onSharedBlur(event);\n };\n\n // ======================== Active ========================\n // Check if blur need reset input value\n useLockEffect(active, function () {\n if (!active && !preserveInvalidOnBlur) {\n setInputValue(value);\n }\n });\n\n // ======================= Keyboard =======================\n var onSharedKeyDown = function onSharedKeyDown(event) {\n if (event.key === 'Enter' && validateFormat(inputValue)) {\n onSubmit();\n }\n onKeyDown === null || onKeyDown === void 0 || onKeyDown(event);\n };\n var onFormatKeyDown = function onFormatKeyDown(event) {\n onSharedKeyDown(event);\n var key = event.key;\n\n // Save the cache with cell text\n var nextCellText = null;\n\n // Fill in the input\n var nextFillText = null;\n var maskCellLen = selectionEnd - selectionStart;\n var cellFormat = format.slice(selectionStart, selectionEnd);\n\n // Cell Index\n var offsetCellIndex = function offsetCellIndex(offset) {\n setFocusCellIndex(function (idx) {\n var nextIndex = idx + offset;\n nextIndex = Math.max(nextIndex, 0);\n nextIndex = Math.min(nextIndex, maskFormat.size() - 1);\n return nextIndex;\n });\n };\n\n // Range\n var offsetCellValue = function offsetCellValue(offset) {\n var _getMaskRange = getMaskRange(cellFormat),\n _getMaskRange2 = _slicedToArray(_getMaskRange, 3),\n rangeStart = _getMaskRange2[0],\n rangeEnd = _getMaskRange2[1],\n rangeDefault = _getMaskRange2[2];\n var currentText = inputValue.slice(selectionStart, selectionEnd);\n var currentTextNum = Number(currentText);\n if (isNaN(currentTextNum)) {\n return String(rangeDefault ? rangeDefault : offset > 0 ? rangeStart : rangeEnd);\n }\n var num = currentTextNum + offset;\n var range = rangeEnd - rangeStart + 1;\n return String(rangeStart + (range + num - rangeStart) % range);\n };\n switch (key) {\n // =============== Remove ===============\n case 'Backspace':\n case 'Delete':\n nextCellText = '';\n nextFillText = cellFormat;\n break;\n\n // =============== Arrows ===============\n // Left key\n case 'ArrowLeft':\n nextCellText = '';\n offsetCellIndex(-1);\n break;\n\n // Right key\n case 'ArrowRight':\n nextCellText = '';\n offsetCellIndex(1);\n break;\n\n // Up key\n case 'ArrowUp':\n nextCellText = '';\n nextFillText = offsetCellValue(1);\n break;\n\n // Down key\n case 'ArrowDown':\n nextCellText = '';\n nextFillText = offsetCellValue(-1);\n break;\n\n // =============== Number ===============\n default:\n if (!isNaN(Number(key))) {\n nextCellText = focusCellText + key;\n nextFillText = nextCellText;\n }\n break;\n }\n\n // Update cell text\n if (nextCellText !== null) {\n setFocusCellText(nextCellText);\n if (nextCellText.length >= maskCellLen) {\n // Go to next cell\n offsetCellIndex(1);\n setFocusCellText('');\n }\n }\n\n // Update the input text\n if (nextFillText !== null) {\n // Replace selection range with `nextCellText`\n var nextFocusValue =\n // before\n inputValue.slice(0, selectionStart) +\n // replace\n leftPad(nextFillText, maskCellLen) +\n // after\n inputValue.slice(selectionEnd);\n triggerInputChange(nextFocusValue.slice(0, format.length));\n }\n\n // Always trigger selection sync after key down\n forceSelectionSync({});\n };\n\n // ======================== Format ========================\n var rafRef = React.useRef();\n useLayoutEffect(function () {\n if (!focused || !format || mouseDownRef.current) {\n return;\n }\n\n // Reset with format if not match\n if (!maskFormat.match(inputValue)) {\n triggerInputChange(format);\n return;\n }\n\n // Match the selection range\n inputRef.current.setSelectionRange(selectionStart, selectionEnd);\n\n // Chrome has the bug anchor position looks not correct but actually correct\n rafRef.current = raf(function () {\n inputRef.current.setSelectionRange(selectionStart, selectionEnd);\n });\n return function () {\n raf.cancel(rafRef.current);\n };\n }, [maskFormat, format, focused, inputValue, focusCellIndex, selectionStart, selectionEnd, forceSelectionSyncMark, triggerInputChange]);\n\n // ======================== Render ========================\n // Input props for format\n var inputProps = format ? {\n onFocus: onFormatFocus,\n onBlur: onFormatBlur,\n onKeyDown: onFormatKeyDown,\n onMouseDown: onFormatMouseDown,\n onMouseUp: onFormatMouseUp,\n onPaste: onFormatPaste\n } : {};\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: holderRef,\n className: classNames(inputPrefixCls, _defineProperty(_defineProperty({}, \"\".concat(inputPrefixCls, \"-active\"), active && showActiveCls), \"\".concat(inputPrefixCls, \"-placeholder\"), helped))\n }, /*#__PURE__*/React.createElement(Component, _extends({\n ref: inputRef,\n \"aria-invalid\": invalid,\n autoComplete: \"off\"\n }, restProps, {\n onKeyDown: onSharedKeyDown,\n onBlur: onSharedBlur\n // Replace with format\n }, inputProps, {\n // Value\n value: inputValue,\n onChange: onInternalChange\n })), /*#__PURE__*/React.createElement(Icon, {\n type: \"suffix\",\n icon: suffixIcon\n }), clearIcon);\n});\nif (process.env.NODE_ENV !== 'production') {\n Input.displayName = 'Input';\n}\nexport default Input;","export function getMaskRange(key) {\n var PresetRange = {\n YYYY: [0, 9999, new Date().getFullYear()],\n MM: [1, 12],\n DD: [1, 31],\n HH: [0, 23],\n mm: [0, 59],\n ss: [0, 59],\n SSS: [0, 999]\n };\n return PresetRange[key];\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefix\", \"clearIcon\", \"suffixIcon\", \"separator\", \"activeIndex\", \"activeHelp\", \"allHelp\", \"focused\", \"onFocus\", \"onBlur\", \"onKeyDown\", \"locale\", \"generateConfig\", \"placeholder\", \"className\", \"style\", \"onClick\", \"onClear\", \"value\", \"onChange\", \"onSubmit\", \"onInputChange\", \"format\", \"maskFormat\", \"preserveInvalidOnBlur\", \"onInvalid\", \"disabled\", \"invalid\", \"inputReadOnly\", \"direction\", \"onOpenChange\", \"onActiveInfo\", \"placement\", \"onMouseDown\", \"required\", \"aria-required\", \"autoFocus\", \"tabIndex\"],\n _excluded2 = [\"index\"];\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport { useEvent } from 'rc-util';\nimport * as React from 'react';\nimport PickerContext from \"../context\";\nimport useInputProps from \"./hooks/useInputProps\";\nimport useRootProps from \"./hooks/useRootProps\";\nimport Icon, { ClearIcon } from \"./Icon\";\nimport Input from \"./Input\";\nfunction RangeSelector(props, ref) {\n var id = props.id,\n prefix = props.prefix,\n clearIcon = props.clearIcon,\n suffixIcon = props.suffixIcon,\n _props$separator = props.separator,\n separator = _props$separator === void 0 ? '~' : _props$separator,\n activeIndex = props.activeIndex,\n activeHelp = props.activeHelp,\n allHelp = props.allHelp,\n focused = props.focused,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onKeyDown = props.onKeyDown,\n locale = props.locale,\n generateConfig = props.generateConfig,\n placeholder = props.placeholder,\n className = props.className,\n style = props.style,\n onClick = props.onClick,\n onClear = props.onClear,\n value = props.value,\n onChange = props.onChange,\n onSubmit = props.onSubmit,\n onInputChange = props.onInputChange,\n format = props.format,\n maskFormat = props.maskFormat,\n preserveInvalidOnBlur = props.preserveInvalidOnBlur,\n onInvalid = props.onInvalid,\n disabled = props.disabled,\n invalid = props.invalid,\n inputReadOnly = props.inputReadOnly,\n direction = props.direction,\n onOpenChange = props.onOpenChange,\n onActiveInfo = props.onActiveInfo,\n placement = props.placement,\n _onMouseDown = props.onMouseDown,\n required = props.required,\n ariaRequired = props['aria-required'],\n autoFocus = props.autoFocus,\n tabIndex = props.tabIndex,\n restProps = _objectWithoutProperties(props, _excluded);\n var rtl = direction === 'rtl';\n\n // ======================== Prefix ========================\n var _React$useContext = React.useContext(PickerContext),\n prefixCls = _React$useContext.prefixCls;\n\n // ========================== Id ==========================\n var ids = React.useMemo(function () {\n if (typeof id === 'string') {\n return [id];\n }\n var mergedId = id || {};\n return [mergedId.start, mergedId.end];\n }, [id]);\n\n // ========================= Refs =========================\n var rootRef = React.useRef();\n var inputStartRef = React.useRef();\n var inputEndRef = React.useRef();\n var getInput = function getInput(index) {\n var _index;\n return (_index = [inputStartRef, inputEndRef][index]) === null || _index === void 0 ? void 0 : _index.current;\n };\n React.useImperativeHandle(ref, function () {\n return {\n nativeElement: rootRef.current,\n focus: function focus(options) {\n if (_typeof(options) === 'object') {\n var _getInput;\n var _ref = options || {},\n _ref$index = _ref.index,\n _index2 = _ref$index === void 0 ? 0 : _ref$index,\n rest = _objectWithoutProperties(_ref, _excluded2);\n (_getInput = getInput(_index2)) === null || _getInput === void 0 || _getInput.focus(rest);\n } else {\n var _getInput2;\n (_getInput2 = getInput(options !== null && options !== void 0 ? options : 0)) === null || _getInput2 === void 0 || _getInput2.focus();\n }\n },\n blur: function blur() {\n var _getInput3, _getInput4;\n (_getInput3 = getInput(0)) === null || _getInput3 === void 0 || _getInput3.blur();\n (_getInput4 = getInput(1)) === null || _getInput4 === void 0 || _getInput4.blur();\n }\n };\n });\n\n // ======================== Props =========================\n var rootProps = useRootProps(restProps);\n\n // ===================== Placeholder ======================\n var mergedPlaceholder = React.useMemo(function () {\n return Array.isArray(placeholder) ? placeholder : [placeholder, placeholder];\n }, [placeholder]);\n\n // ======================== Inputs ========================\n var _useInputProps = useInputProps(_objectSpread(_objectSpread({}, props), {}, {\n id: ids,\n placeholder: mergedPlaceholder\n })),\n _useInputProps2 = _slicedToArray(_useInputProps, 1),\n getInputProps = _useInputProps2[0];\n\n // ====================== ActiveBar =======================\n var _React$useState = React.useState({\n position: 'absolute',\n width: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeBarStyle = _React$useState2[0],\n setActiveBarStyle = _React$useState2[1];\n var syncActiveOffset = useEvent(function () {\n var input = getInput(activeIndex);\n if (input) {\n var inputRect = input.nativeElement.getBoundingClientRect();\n var parentRect = rootRef.current.getBoundingClientRect();\n var rectOffset = inputRect.left - parentRect.left;\n setActiveBarStyle(function (ori) {\n return _objectSpread(_objectSpread({}, ori), {}, {\n width: inputRect.width,\n left: rectOffset\n });\n });\n onActiveInfo([inputRect.left, inputRect.right, parentRect.width]);\n }\n });\n React.useEffect(function () {\n syncActiveOffset();\n }, [activeIndex]);\n\n // ======================== Clear =========================\n var showClear = clearIcon && (value[0] && !disabled[0] || value[1] && !disabled[1]);\n\n // ======================= Disabled =======================\n var startAutoFocus = autoFocus && !disabled[0];\n var endAutoFocus = autoFocus && !startAutoFocus && !disabled[1];\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(ResizeObserver, {\n onResize: syncActiveOffset\n }, /*#__PURE__*/React.createElement(\"div\", _extends({}, rootProps, {\n className: classNames(prefixCls, \"\".concat(prefixCls, \"-range\"), _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-focused\"), focused), \"\".concat(prefixCls, \"-disabled\"), disabled.every(function (i) {\n return i;\n })), \"\".concat(prefixCls, \"-invalid\"), invalid.some(function (i) {\n return i;\n })), \"\".concat(prefixCls, \"-rtl\"), rtl), className),\n style: style,\n ref: rootRef,\n onClick: onClick\n // Not lose current input focus\n ,\n onMouseDown: function onMouseDown(e) {\n var target = e.target;\n if (target !== inputStartRef.current.inputElement && target !== inputEndRef.current.inputElement) {\n e.preventDefault();\n }\n _onMouseDown === null || _onMouseDown === void 0 || _onMouseDown(e);\n }\n }), prefix && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-prefix\")\n }, prefix), /*#__PURE__*/React.createElement(Input, _extends({\n ref: inputStartRef\n }, getInputProps(0), {\n autoFocus: startAutoFocus,\n tabIndex: tabIndex,\n \"date-range\": \"start\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-range-separator\")\n }, separator), /*#__PURE__*/React.createElement(Input, _extends({\n ref: inputEndRef\n }, getInputProps(1), {\n autoFocus: endAutoFocus,\n tabIndex: tabIndex,\n \"date-range\": \"end\"\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-active-bar\"),\n style: activeBarStyle\n }), /*#__PURE__*/React.createElement(Icon, {\n type: \"suffix\",\n icon: suffixIcon\n }), showClear && /*#__PURE__*/React.createElement(ClearIcon, {\n icon: clearIcon,\n onClear: onClear\n })));\n}\nvar RefRangeSelector = /*#__PURE__*/React.forwardRef(RangeSelector);\nif (process.env.NODE_ENV !== 'production') {\n RefRangeSelector.displayName = 'RangeSelector';\n}\nexport default RefRangeSelector;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent, useMergedState } from 'rc-util';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport omit from \"rc-util/es/omit\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport PickerTrigger from \"../PickerTrigger\";\nimport { pickTriggerProps } from \"../PickerTrigger/util\";\nimport { fillIndex, getFromDate, toArray } from \"../utils/miscUtil\";\nimport PickerContext from \"./context\";\nimport useCellRender from \"./hooks/useCellRender\";\nimport useFieldsInvalidate from \"./hooks/useFieldsInvalidate\";\nimport useFilledProps from \"./hooks/useFilledProps\";\nimport useOpen from \"./hooks/useOpen\";\nimport usePickerRef from \"./hooks/usePickerRef\";\nimport usePresets from \"./hooks/usePresets\";\nimport useRangeActive from \"./hooks/useRangeActive\";\nimport useRangeDisabledDate from \"./hooks/useRangeDisabledDate\";\nimport useRangePickerValue from \"./hooks/useRangePickerValue\";\nimport useRangeValue, { useInnerValue } from \"./hooks/useRangeValue\";\nimport useShowNow from \"./hooks/useShowNow\";\nimport Popup from \"./Popup\";\nimport RangeSelector from \"./Selector/RangeSelector\";\nfunction separateConfig(config, defaultConfig) {\n var singleConfig = config !== null && config !== void 0 ? config : defaultConfig;\n if (Array.isArray(singleConfig)) {\n return singleConfig;\n }\n return [singleConfig, singleConfig];\n}\n\n/** Used for change event, it should always be not undefined */\n\nfunction getActiveRange(activeIndex) {\n return activeIndex === 1 ? 'end' : 'start';\n}\nfunction RangePicker(props, ref) {\n // ========================= Prop =========================\n var _useFilledProps = useFilledProps(props, function () {\n var disabled = props.disabled,\n allowEmpty = props.allowEmpty;\n var mergedDisabled = separateConfig(disabled, false);\n var mergedAllowEmpty = separateConfig(allowEmpty, false);\n return {\n disabled: mergedDisabled,\n allowEmpty: mergedAllowEmpty\n };\n }),\n _useFilledProps2 = _slicedToArray(_useFilledProps, 6),\n filledProps = _useFilledProps2[0],\n internalPicker = _useFilledProps2[1],\n complexPicker = _useFilledProps2[2],\n formatList = _useFilledProps2[3],\n maskFormat = _useFilledProps2[4],\n isInvalidateDate = _useFilledProps2[5];\n var prefixCls = filledProps.prefixCls,\n styles = filledProps.styles,\n classNames = filledProps.classNames,\n defaultValue = filledProps.defaultValue,\n value = filledProps.value,\n needConfirm = filledProps.needConfirm,\n onKeyDown = filledProps.onKeyDown,\n disabled = filledProps.disabled,\n allowEmpty = filledProps.allowEmpty,\n disabledDate = filledProps.disabledDate,\n minDate = filledProps.minDate,\n maxDate = filledProps.maxDate,\n defaultOpen = filledProps.defaultOpen,\n open = filledProps.open,\n onOpenChange = filledProps.onOpenChange,\n locale = filledProps.locale,\n generateConfig = filledProps.generateConfig,\n picker = filledProps.picker,\n showNow = filledProps.showNow,\n showToday = filledProps.showToday,\n showTime = filledProps.showTime,\n mode = filledProps.mode,\n onPanelChange = filledProps.onPanelChange,\n onCalendarChange = filledProps.onCalendarChange,\n onOk = filledProps.onOk,\n defaultPickerValue = filledProps.defaultPickerValue,\n pickerValue = filledProps.pickerValue,\n onPickerValueChange = filledProps.onPickerValueChange,\n inputReadOnly = filledProps.inputReadOnly,\n suffixIcon = filledProps.suffixIcon,\n onFocus = filledProps.onFocus,\n onBlur = filledProps.onBlur,\n presets = filledProps.presets,\n ranges = filledProps.ranges,\n components = filledProps.components,\n cellRender = filledProps.cellRender,\n dateRender = filledProps.dateRender,\n monthCellRender = filledProps.monthCellRender,\n onClick = filledProps.onClick;\n\n // ========================= Refs =========================\n var selectorRef = usePickerRef(ref);\n\n // ========================= Open =========================\n var _useOpen = useOpen(open, defaultOpen, disabled, onOpenChange),\n _useOpen2 = _slicedToArray(_useOpen, 2),\n mergedOpen = _useOpen2[0],\n setMergeOpen = _useOpen2[1];\n var triggerOpen = function triggerOpen(nextOpen, config) {\n // No need to open if all disabled\n if (disabled.some(function (fieldDisabled) {\n return !fieldDisabled;\n }) || !nextOpen) {\n setMergeOpen(nextOpen, config);\n }\n };\n\n // ======================== Values ========================\n var _useInnerValue = useInnerValue(generateConfig, locale, formatList, true, false, defaultValue, value, onCalendarChange, onOk),\n _useInnerValue2 = _slicedToArray(_useInnerValue, 5),\n mergedValue = _useInnerValue2[0],\n setInnerValue = _useInnerValue2[1],\n getCalendarValue = _useInnerValue2[2],\n triggerCalendarChange = _useInnerValue2[3],\n triggerOk = _useInnerValue2[4];\n var calendarValue = getCalendarValue();\n\n // ======================== Active ========================\n var _useRangeActive = useRangeActive(disabled, allowEmpty, mergedOpen),\n _useRangeActive2 = _slicedToArray(_useRangeActive, 9),\n focused = _useRangeActive2[0],\n triggerFocus = _useRangeActive2[1],\n lastOperation = _useRangeActive2[2],\n activeIndex = _useRangeActive2[3],\n setActiveIndex = _useRangeActive2[4],\n nextActiveIndex = _useRangeActive2[5],\n activeIndexList = _useRangeActive2[6],\n updateSubmitIndex = _useRangeActive2[7],\n hasActiveSubmitValue = _useRangeActive2[8];\n var onSharedFocus = function onSharedFocus(event, index) {\n triggerFocus(true);\n onFocus === null || onFocus === void 0 || onFocus(event, {\n range: getActiveRange(index !== null && index !== void 0 ? index : activeIndex)\n });\n };\n var onSharedBlur = function onSharedBlur(event, index) {\n triggerFocus(false);\n onBlur === null || onBlur === void 0 || onBlur(event, {\n range: getActiveRange(index !== null && index !== void 0 ? index : activeIndex)\n });\n };\n\n // ======================= ShowTime =======================\n /** Used for Popup panel */\n var mergedShowTime = React.useMemo(function () {\n if (!showTime) {\n return null;\n }\n var disabledTime = showTime.disabledTime;\n var proxyDisabledTime = disabledTime ? function (date) {\n var range = getActiveRange(activeIndex);\n var fromDate = getFromDate(calendarValue, activeIndexList, activeIndex);\n return disabledTime(date, range, {\n from: fromDate\n });\n } : undefined;\n return _objectSpread(_objectSpread({}, showTime), {}, {\n disabledTime: proxyDisabledTime\n });\n }, [showTime, activeIndex, calendarValue, activeIndexList]);\n\n // ========================= Mode =========================\n var _useMergedState = useMergedState([picker, picker], {\n value: mode\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n modes = _useMergedState2[0],\n setModes = _useMergedState2[1];\n var mergedMode = modes[activeIndex] || picker;\n\n /** Extends from `mergedMode` to patch `datetime` mode */\n var internalMode = mergedMode === 'date' && mergedShowTime ? 'datetime' : mergedMode;\n\n // ====================== PanelCount ======================\n var multiplePanel = internalMode === picker && internalMode !== 'time';\n\n // ======================= Show Now =======================\n var mergedShowNow = useShowNow(picker, mergedMode, showNow, showToday, true);\n\n // ======================== Value =========================\n var _useRangeValue = useRangeValue(filledProps, mergedValue, setInnerValue, getCalendarValue, triggerCalendarChange, disabled, formatList, focused, mergedOpen, isInvalidateDate),\n _useRangeValue2 = _slicedToArray(_useRangeValue, 2),\n /** Trigger `onChange` by check `disabledDate` */\n flushSubmit = _useRangeValue2[0],\n /** Trigger `onChange` directly without check `disabledDate` */\n triggerSubmitChange = _useRangeValue2[1];\n\n // ===================== DisabledDate =====================\n var mergedDisabledDate = useRangeDisabledDate(calendarValue, disabled, activeIndexList, generateConfig, locale, disabledDate);\n\n // ======================= Validate =======================\n var _useFieldsInvalidate = useFieldsInvalidate(calendarValue, isInvalidateDate, allowEmpty),\n _useFieldsInvalidate2 = _slicedToArray(_useFieldsInvalidate, 2),\n submitInvalidates = _useFieldsInvalidate2[0],\n onSelectorInvalid = _useFieldsInvalidate2[1];\n\n // ===================== Picker Value =====================\n var _useRangePickerValue = useRangePickerValue(generateConfig, locale, calendarValue, modes, mergedOpen, activeIndex, internalPicker, multiplePanel, defaultPickerValue, pickerValue, mergedShowTime === null || mergedShowTime === void 0 ? void 0 : mergedShowTime.defaultOpenValue, onPickerValueChange, minDate, maxDate),\n _useRangePickerValue2 = _slicedToArray(_useRangePickerValue, 2),\n currentPickerValue = _useRangePickerValue2[0],\n setCurrentPickerValue = _useRangePickerValue2[1];\n\n // >>> Mode need wait for `pickerValue`\n var triggerModeChange = useEvent(function (nextPickerValue, nextMode, triggerEvent) {\n var clone = fillIndex(modes, activeIndex, nextMode);\n if (clone[0] !== modes[0] || clone[1] !== modes[1]) {\n setModes(clone);\n }\n\n // Compatible with `onPanelChange`\n if (onPanelChange && triggerEvent !== false) {\n var clonePickerValue = _toConsumableArray(calendarValue);\n if (nextPickerValue) {\n clonePickerValue[activeIndex] = nextPickerValue;\n }\n onPanelChange(clonePickerValue, clone);\n }\n });\n\n // ======================== Change ========================\n var fillCalendarValue = function fillCalendarValue(date, index) {\n return (\n // Trigger change only when date changed\n fillIndex(calendarValue, index, date)\n );\n };\n\n // ======================== Submit ========================\n /**\n * Trigger by confirm operation.\n * This function has already handle the `needConfirm` check logic.\n * - Selector: enter key\n * - Panel: OK button\n */\n var triggerPartConfirm = function triggerPartConfirm(date, skipFocus) {\n var nextValue = calendarValue;\n if (date) {\n nextValue = fillCalendarValue(date, activeIndex);\n }\n updateSubmitIndex(activeIndex);\n // Get next focus index\n var nextIndex = nextActiveIndex(nextValue);\n\n // Change calendar value and tell flush it\n triggerCalendarChange(nextValue);\n flushSubmit(activeIndex, nextIndex === null);\n if (nextIndex === null) {\n triggerOpen(false, {\n force: true\n });\n } else if (!skipFocus) {\n selectorRef.current.focus({\n index: nextIndex\n });\n }\n };\n\n // ======================== Click =========================\n var onSelectorClick = function onSelectorClick(event) {\n var _activeElement;\n var rootNode = event.target.getRootNode();\n if (!selectorRef.current.nativeElement.contains((_activeElement = rootNode.activeElement) !== null && _activeElement !== void 0 ? _activeElement : document.activeElement)) {\n // Click to focus the enabled input\n var enabledIndex = disabled.findIndex(function (d) {\n return !d;\n });\n if (enabledIndex >= 0) {\n selectorRef.current.focus({\n index: enabledIndex\n });\n }\n }\n triggerOpen(true);\n onClick === null || onClick === void 0 || onClick(event);\n };\n var onSelectorClear = function onSelectorClear() {\n triggerSubmitChange(null);\n triggerOpen(false, {\n force: true\n });\n };\n\n // ======================== Hover =========================\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n hoverSource = _React$useState2[0],\n setHoverSource = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n internalHoverValues = _React$useState4[0],\n setInternalHoverValues = _React$useState4[1];\n var hoverValues = React.useMemo(function () {\n return internalHoverValues || calendarValue;\n }, [calendarValue, internalHoverValues]);\n\n // Clean up `internalHoverValues` when closed\n React.useEffect(function () {\n if (!mergedOpen) {\n setInternalHoverValues(null);\n }\n }, [mergedOpen]);\n\n // ========================================================\n // == Panels ==\n // ========================================================\n // Save the offset with active bar position\n // const [activeOffset, setActiveOffset] = React.useState(0);\n var _React$useState5 = React.useState([0, 0, 0]),\n _React$useState6 = _slicedToArray(_React$useState5, 2),\n activeInfo = _React$useState6[0],\n setActiveInfo = _React$useState6[1];\n\n // ======================= Presets ========================\n var presetList = usePresets(presets, ranges);\n var onPresetHover = function onPresetHover(nextValues) {\n setInternalHoverValues(nextValues);\n setHoverSource('preset');\n };\n var onPresetSubmit = function onPresetSubmit(nextValues) {\n var passed = triggerSubmitChange(nextValues);\n if (passed) {\n triggerOpen(false, {\n force: true\n });\n }\n };\n var onNow = function onNow(now) {\n triggerPartConfirm(now);\n };\n\n // ======================== Panel =========================\n var onPanelHover = function onPanelHover(date) {\n setInternalHoverValues(date ? fillCalendarValue(date, activeIndex) : null);\n setHoverSource('cell');\n };\n\n // >>> Focus\n var onPanelFocus = function onPanelFocus(event) {\n triggerOpen(true);\n onSharedFocus(event);\n };\n\n // >>> MouseDown\n var onPanelMouseDown = function onPanelMouseDown() {\n lastOperation('panel');\n };\n\n // >>> Calendar\n var onPanelSelect = function onPanelSelect(date) {\n var clone = fillIndex(calendarValue, activeIndex, date);\n\n // Only trigger calendar event but not update internal `calendarValue` state\n triggerCalendarChange(clone);\n\n // >>> Trigger next active if !needConfirm\n // Fully logic check `useRangeValue` hook\n if (!needConfirm && !complexPicker && internalPicker === internalMode) {\n triggerPartConfirm(date);\n }\n };\n\n // >>> Close\n var onPopupClose = function onPopupClose() {\n // Close popup\n triggerOpen(false);\n };\n\n // >>> cellRender\n var onInternalCellRender = useCellRender(cellRender, dateRender, monthCellRender, getActiveRange(activeIndex));\n\n // >>> Value\n var panelValue = calendarValue[activeIndex] || null;\n\n // >>> invalid\n var isPopupInvalidateDate = useEvent(function (date) {\n return isInvalidateDate(date, {\n activeIndex: activeIndex\n });\n });\n var panelProps = React.useMemo(function () {\n var domProps = pickAttrs(filledProps, false);\n var restProps = omit(filledProps, [].concat(_toConsumableArray(Object.keys(domProps)), ['onChange', 'onCalendarChange', 'style', 'className', 'onPanelChange', 'disabledTime']));\n return restProps;\n }, [filledProps]);\n\n // >>> Render\n var panel = /*#__PURE__*/React.createElement(Popup, _extends({}, panelProps, {\n showNow: mergedShowNow,\n showTime: mergedShowTime\n // Range\n ,\n range: true,\n multiplePanel: multiplePanel,\n activeInfo: activeInfo\n // Disabled\n ,\n disabledDate: mergedDisabledDate\n // Focus\n ,\n onFocus: onPanelFocus,\n onBlur: onSharedBlur,\n onPanelMouseDown: onPanelMouseDown\n // Mode\n ,\n picker: picker,\n mode: mergedMode,\n internalMode: internalMode,\n onPanelChange: triggerModeChange\n // Value\n ,\n format: maskFormat,\n value: panelValue,\n isInvalid: isPopupInvalidateDate,\n onChange: null,\n onSelect: onPanelSelect\n // PickerValue\n ,\n pickerValue: currentPickerValue,\n defaultOpenValue: toArray(showTime === null || showTime === void 0 ? void 0 : showTime.defaultOpenValue)[activeIndex],\n onPickerValueChange: setCurrentPickerValue\n // Hover\n ,\n hoverValue: hoverValues,\n onHover: onPanelHover\n // Submit\n ,\n needConfirm: needConfirm,\n onSubmit: triggerPartConfirm,\n onOk: triggerOk\n // Preset\n ,\n presets: presetList,\n onPresetHover: onPresetHover,\n onPresetSubmit: onPresetSubmit\n // Now\n ,\n onNow: onNow\n // Render\n ,\n cellRender: onInternalCellRender\n }));\n\n // ========================================================\n // == Selector ==\n // ========================================================\n\n // ======================== Change ========================\n var onSelectorChange = function onSelectorChange(date, index) {\n var clone = fillCalendarValue(date, index);\n triggerCalendarChange(clone);\n };\n var onSelectorInputChange = function onSelectorInputChange() {\n lastOperation('input');\n };\n\n // ======================= Selector =======================\n var onSelectorFocus = function onSelectorFocus(event, index) {\n // Check if `needConfirm` but user not submit yet\n var activeListLen = activeIndexList.length;\n var lastActiveIndex = activeIndexList[activeListLen - 1];\n if (activeListLen && lastActiveIndex !== index && needConfirm &&\n // Not change index if is not filled\n !allowEmpty[lastActiveIndex] && !hasActiveSubmitValue(lastActiveIndex) && calendarValue[lastActiveIndex]) {\n selectorRef.current.focus({\n index: lastActiveIndex\n });\n return;\n }\n lastOperation('input');\n triggerOpen(true, {\n inherit: true\n });\n\n // When click input to switch the field, it will not trigger close.\n // Which means it will lose the part confirm and we need fill back.\n // ref: https://github.com/ant-design/ant-design/issues/49512\n if (activeIndex !== index && mergedOpen && !needConfirm && complexPicker) {\n triggerPartConfirm(null, true);\n }\n setActiveIndex(index);\n onSharedFocus(event, index);\n };\n var onSelectorBlur = function onSelectorBlur(event, index) {\n triggerOpen(false);\n if (!needConfirm && lastOperation() === 'input') {\n var nextIndex = nextActiveIndex(calendarValue);\n flushSubmit(activeIndex, nextIndex === null);\n }\n onSharedBlur(event, index);\n };\n var onSelectorKeyDown = function onSelectorKeyDown(event, preventDefault) {\n if (event.key === 'Tab') {\n triggerPartConfirm(null, true);\n }\n onKeyDown === null || onKeyDown === void 0 || onKeyDown(event, preventDefault);\n };\n\n // ======================= Context ========================\n var context = React.useMemo(function () {\n return {\n prefixCls: prefixCls,\n locale: locale,\n generateConfig: generateConfig,\n button: components.button,\n input: components.input\n };\n }, [prefixCls, locale, generateConfig, components.button, components.input]);\n\n // ======================== Effect ========================\n // >>> Mode\n // Reset for every active\n useLayoutEffect(function () {\n if (mergedOpen && activeIndex !== undefined) {\n // Legacy compatible. This effect update should not trigger `onPanelChange`\n triggerModeChange(null, picker, false);\n }\n }, [mergedOpen, activeIndex, picker]);\n\n // >>> For complex picker, we need check if need to focus next one\n useLayoutEffect(function () {\n var lastOp = lastOperation();\n\n // Trade as confirm on field leave\n if (!mergedOpen && lastOp === 'input') {\n triggerOpen(false);\n triggerPartConfirm(null, true);\n }\n\n // Submit with complex picker\n if (!mergedOpen && complexPicker && !needConfirm && lastOp === 'panel') {\n triggerOpen(true);\n triggerPartConfirm();\n }\n }, [mergedOpen]);\n\n // ====================== DevWarning ======================\n if (process.env.NODE_ENV !== 'production') {\n var isIndexEmpty = function isIndexEmpty(index) {\n return (\n // Value is empty\n !(value !== null && value !== void 0 && value[index]) &&\n // DefaultValue is empty\n !(defaultValue !== null && defaultValue !== void 0 && defaultValue[index])\n );\n };\n if (disabled.some(function (fieldDisabled, index) {\n return fieldDisabled && isIndexEmpty(index) && !allowEmpty[index];\n })) {\n warning(false, '`disabled` should not set with empty `value`. You should set `allowEmpty` or `value` instead.');\n }\n }\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(PickerContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(PickerTrigger, _extends({}, pickTriggerProps(filledProps), {\n popupElement: panel,\n popupStyle: styles.popup,\n popupClassName: classNames.popup\n // Visible\n ,\n visible: mergedOpen,\n onClose: onPopupClose\n // Range\n ,\n range: true\n }), /*#__PURE__*/React.createElement(RangeSelector\n // Shared\n , _extends({}, filledProps, {\n // Ref\n ref: selectorRef\n // Icon\n ,\n suffixIcon: suffixIcon\n // Active\n ,\n activeIndex: focused || mergedOpen ? activeIndex : null,\n activeHelp: !!internalHoverValues,\n allHelp: !!internalHoverValues && hoverSource === 'preset',\n focused: focused,\n onFocus: onSelectorFocus,\n onBlur: onSelectorBlur,\n onKeyDown: onSelectorKeyDown,\n onSubmit: triggerPartConfirm\n // Change\n ,\n value: hoverValues,\n maskFormat: maskFormat,\n onChange: onSelectorChange,\n onInputChange: onSelectorInputChange\n // Format\n ,\n format: formatList,\n inputReadOnly: inputReadOnly\n // Disabled\n ,\n disabled: disabled\n // Open\n ,\n open: mergedOpen,\n onOpenChange: triggerOpen\n // Click\n ,\n onClick: onSelectorClick,\n onClear: onSelectorClear\n // Invalid\n ,\n invalid: submitInvalidates,\n onInvalid: onSelectorInvalid\n // Offset\n ,\n onActiveInfo: setActiveInfo\n }))));\n}\nvar RefRangePicker = /*#__PURE__*/React.forwardRef(RangePicker);\nif (process.env.NODE_ENV !== 'production') {\n RefRangePicker.displayName = 'RefRangePicker';\n}\nexport default RefRangePicker;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { isSame } from \"../../utils/dateUtil\";\nimport { getFromDate } from \"../../utils/miscUtil\";\n\n/**\n * RangePicker need additional logic to handle the `disabled` case. e.g.\n * [disabled, enabled] should end date not before start date\n */\nexport default function useRangeDisabledDate(values, disabled, activeIndexList, generateConfig, locale, disabledDate) {\n var activeIndex = activeIndexList[activeIndexList.length - 1];\n var rangeDisabledDate = function rangeDisabledDate(date, info) {\n var _values = _slicedToArray(values, 2),\n start = _values[0],\n end = _values[1];\n var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n from: getFromDate(values, activeIndexList)\n });\n\n // ============================ Disabled ============================\n // Should not select days before the start date\n if (activeIndex === 1 && disabled[0] && start &&\n // Same date isOK\n !isSame(generateConfig, locale, start, date, mergedInfo.type) &&\n // Before start date\n generateConfig.isAfter(start, date)) {\n return true;\n }\n\n // Should not select days after the end date\n if (activeIndex === 0 && disabled[1] && end &&\n // Same date isOK\n !isSame(generateConfig, locale, end, date, mergedInfo.type) &&\n // After end date\n generateConfig.isAfter(date, end)) {\n return true;\n }\n\n // ============================= Origin =============================\n return disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date, mergedInfo);\n };\n return rangeDisabledDate;\n}","import classNames from 'classnames';\nimport Overflow from 'rc-overflow';\nimport * as React from 'react';\nexport default function MultipleDates(props) {\n var prefixCls = props.prefixCls,\n value = props.value,\n onRemove = props.onRemove,\n _props$removeIcon = props.removeIcon,\n removeIcon = _props$removeIcon === void 0 ? '×' : _props$removeIcon,\n formatDate = props.formatDate,\n disabled = props.disabled,\n maxTagCount = props.maxTagCount,\n placeholder = props.placeholder;\n var selectorCls = \"\".concat(prefixCls, \"-selector\");\n var selectionCls = \"\".concat(prefixCls, \"-selection\");\n var overflowCls = \"\".concat(selectionCls, \"-overflow\");\n\n // ========================= Item =========================\n function renderSelector(content, onClose) {\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(\"\".concat(selectionCls, \"-item\")),\n title: typeof content === 'string' ? content : null\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(selectionCls, \"-item-content\")\n }, content), !disabled && onClose && /*#__PURE__*/React.createElement(\"span\", {\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n },\n onClick: onClose,\n className: \"\".concat(selectionCls, \"-item-remove\")\n }, removeIcon));\n }\n function renderItem(date) {\n var displayLabel = formatDate(date);\n var onClose = function onClose(event) {\n if (event) event.stopPropagation();\n onRemove(date);\n };\n return renderSelector(displayLabel, onClose);\n }\n\n // ========================= Rest =========================\n function renderRest(omittedValues) {\n var content = \"+ \".concat(omittedValues.length, \" ...\");\n return renderSelector(content);\n }\n\n // ======================== Render ========================\n\n return /*#__PURE__*/React.createElement(\"div\", {\n className: selectorCls\n }, /*#__PURE__*/React.createElement(Overflow, {\n prefixCls: overflowCls,\n data: value,\n renderItem: renderItem,\n renderRest: renderRest\n // suffix={inputNode}\n ,\n itemKey: function itemKey(date) {\n return formatDate(date);\n },\n maxCount: maxTagCount\n }), !value.length && /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-selection-placeholder\")\n }, placeholder));\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"open\", \"prefix\", \"clearIcon\", \"suffixIcon\", \"activeHelp\", \"allHelp\", \"focused\", \"onFocus\", \"onBlur\", \"onKeyDown\", \"locale\", \"generateConfig\", \"placeholder\", \"className\", \"style\", \"onClick\", \"onClear\", \"internalPicker\", \"value\", \"onChange\", \"onSubmit\", \"onInputChange\", \"multiple\", \"maxTagCount\", \"format\", \"maskFormat\", \"preserveInvalidOnBlur\", \"onInvalid\", \"disabled\", \"invalid\", \"inputReadOnly\", \"direction\", \"onOpenChange\", \"onMouseDown\", \"required\", \"aria-required\", \"autoFocus\", \"tabIndex\", \"removeIcon\"];\nimport classNames from 'classnames';\nimport * as React from 'react';\nimport { isSame } from \"../../../utils/dateUtil\";\nimport PickerContext from \"../../context\";\nimport Icon, { ClearIcon } from \"../Icon\";\nimport Input from \"../Input\";\nimport useInputProps from \"../hooks/useInputProps\";\nimport useRootProps from \"../hooks/useRootProps\";\nimport MultipleDates from \"./MultipleDates\";\nfunction SingleSelector(props, ref) {\n var id = props.id,\n open = props.open,\n prefix = props.prefix,\n clearIcon = props.clearIcon,\n suffixIcon = props.suffixIcon,\n activeHelp = props.activeHelp,\n allHelp = props.allHelp,\n focused = props.focused,\n onFocus = props.onFocus,\n onBlur = props.onBlur,\n onKeyDown = props.onKeyDown,\n locale = props.locale,\n generateConfig = props.generateConfig,\n placeholder = props.placeholder,\n className = props.className,\n style = props.style,\n onClick = props.onClick,\n onClear = props.onClear,\n internalPicker = props.internalPicker,\n value = props.value,\n onChange = props.onChange,\n onSubmit = props.onSubmit,\n onInputChange = props.onInputChange,\n multiple = props.multiple,\n maxTagCount = props.maxTagCount,\n format = props.format,\n maskFormat = props.maskFormat,\n preserveInvalidOnBlur = props.preserveInvalidOnBlur,\n onInvalid = props.onInvalid,\n disabled = props.disabled,\n invalid = props.invalid,\n inputReadOnly = props.inputReadOnly,\n direction = props.direction,\n onOpenChange = props.onOpenChange,\n _onMouseDown = props.onMouseDown,\n required = props.required,\n ariaRequired = props['aria-required'],\n autoFocus = props.autoFocus,\n tabIndex = props.tabIndex,\n removeIcon = props.removeIcon,\n restProps = _objectWithoutProperties(props, _excluded);\n var rtl = direction === 'rtl';\n\n // ======================== Prefix ========================\n var _React$useContext = React.useContext(PickerContext),\n prefixCls = _React$useContext.prefixCls;\n\n // ========================= Refs =========================\n var rootRef = React.useRef();\n var inputRef = React.useRef();\n React.useImperativeHandle(ref, function () {\n return {\n nativeElement: rootRef.current,\n focus: function focus(options) {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus(options);\n },\n blur: function blur() {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 || _inputRef$current2.blur();\n }\n };\n });\n\n // ======================== Props =========================\n var rootProps = useRootProps(restProps);\n\n // ======================== Change ========================\n var onSingleChange = function onSingleChange(date) {\n onChange([date]);\n };\n var onMultipleRemove = function onMultipleRemove(date) {\n var nextValues = value.filter(function (oriDate) {\n return oriDate && !isSame(generateConfig, locale, oriDate, date, internalPicker);\n });\n onChange(nextValues);\n\n // When `open`, it means user is operating the\n if (!open) {\n onSubmit();\n }\n };\n\n // ======================== Inputs ========================\n var _useInputProps = useInputProps(_objectSpread(_objectSpread({}, props), {}, {\n onChange: onSingleChange\n }), function (_ref) {\n var valueTexts = _ref.valueTexts;\n return {\n value: valueTexts[0] || '',\n active: focused\n };\n }),\n _useInputProps2 = _slicedToArray(_useInputProps, 2),\n getInputProps = _useInputProps2[0],\n getText = _useInputProps2[1];\n\n // ======================== Clear =========================\n var showClear = !!(clearIcon && value.length && !disabled);\n\n // ======================= Multiple =======================\n var selectorNode = multiple ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MultipleDates, {\n prefixCls: prefixCls,\n value: value,\n onRemove: onMultipleRemove,\n formatDate: getText,\n maxTagCount: maxTagCount,\n disabled: disabled,\n removeIcon: removeIcon,\n placeholder: placeholder\n }), /*#__PURE__*/React.createElement(\"input\", {\n className: \"\".concat(prefixCls, \"-multiple-input\"),\n value: value.map(getText).join(','),\n ref: inputRef,\n readOnly: true,\n autoFocus: autoFocus,\n tabIndex: tabIndex\n }), /*#__PURE__*/React.createElement(Icon, {\n type: \"suffix\",\n icon: suffixIcon\n }), showClear && /*#__PURE__*/React.createElement(ClearIcon, {\n icon: clearIcon,\n onClear: onClear\n })) : /*#__PURE__*/React.createElement(Input, _extends({\n ref: inputRef\n }, getInputProps(), {\n autoFocus: autoFocus,\n tabIndex: tabIndex,\n suffixIcon: suffixIcon,\n clearIcon: showClear && /*#__PURE__*/React.createElement(ClearIcon, {\n icon: clearIcon,\n onClear: onClear\n }),\n showActiveCls: false\n }));\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, rootProps, {\n className: classNames(prefixCls, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(prefixCls, \"-multiple\"), multiple), \"\".concat(prefixCls, \"-focused\"), focused), \"\".concat(prefixCls, \"-disabled\"), disabled), \"\".concat(prefixCls, \"-invalid\"), invalid), \"\".concat(prefixCls, \"-rtl\"), rtl), className),\n style: style,\n ref: rootRef,\n onClick: onClick\n // Not lose current input focus\n ,\n onMouseDown: function onMouseDown(e) {\n var _inputRef$current3;\n var target = e.target;\n if (target !== ((_inputRef$current3 = inputRef.current) === null || _inputRef$current3 === void 0 ? void 0 : _inputRef$current3.inputElement)) {\n e.preventDefault();\n }\n _onMouseDown === null || _onMouseDown === void 0 || _onMouseDown(e);\n }\n }), prefix && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-prefix\")\n }, prefix), selectorNode);\n}\nvar RefSingleSelector = /*#__PURE__*/React.forwardRef(SingleSelector);\nif (process.env.NODE_ENV !== 'production') {\n RefSingleSelector.displayName = 'SingleSelector';\n}\nexport default RefSingleSelector;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEvent, useMergedState } from 'rc-util';\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport omit from \"rc-util/es/omit\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport * as React from 'react';\nimport useToggleDates from \"../hooks/useToggleDates\";\nimport PickerTrigger from \"../PickerTrigger\";\nimport { pickTriggerProps } from \"../PickerTrigger/util\";\nimport { toArray } from \"../utils/miscUtil\";\nimport PickerContext from \"./context\";\nimport useCellRender from \"./hooks/useCellRender\";\nimport useFieldsInvalidate from \"./hooks/useFieldsInvalidate\";\nimport useFilledProps from \"./hooks/useFilledProps\";\nimport useOpen from \"./hooks/useOpen\";\nimport usePickerRef from \"./hooks/usePickerRef\";\nimport usePresets from \"./hooks/usePresets\";\nimport useRangeActive from \"./hooks/useRangeActive\";\nimport useRangePickerValue from \"./hooks/useRangePickerValue\";\nimport useRangeValue, { useInnerValue } from \"./hooks/useRangeValue\";\nimport useShowNow from \"./hooks/useShowNow\";\nimport Popup from \"./Popup\";\nimport SingleSelector from \"./Selector/SingleSelector\";\n\n// TODO: isInvalidateDate with showTime.disabledTime should not provide `range` prop\n\n/** Internal usage. For cross function get same aligned props */\n\nfunction Picker(props, ref) {\n // ========================= Prop =========================\n var _useFilledProps = useFilledProps(props),\n _useFilledProps2 = _slicedToArray(_useFilledProps, 6),\n filledProps = _useFilledProps2[0],\n internalPicker = _useFilledProps2[1],\n complexPicker = _useFilledProps2[2],\n formatList = _useFilledProps2[3],\n maskFormat = _useFilledProps2[4],\n isInvalidateDate = _useFilledProps2[5];\n var _ref = filledProps,\n prefixCls = _ref.prefixCls,\n styles = _ref.styles,\n classNames = _ref.classNames,\n order = _ref.order,\n defaultValue = _ref.defaultValue,\n value = _ref.value,\n needConfirm = _ref.needConfirm,\n onChange = _ref.onChange,\n onKeyDown = _ref.onKeyDown,\n disabled = _ref.disabled,\n disabledDate = _ref.disabledDate,\n minDate = _ref.minDate,\n maxDate = _ref.maxDate,\n defaultOpen = _ref.defaultOpen,\n open = _ref.open,\n onOpenChange = _ref.onOpenChange,\n locale = _ref.locale,\n generateConfig = _ref.generateConfig,\n picker = _ref.picker,\n showNow = _ref.showNow,\n showToday = _ref.showToday,\n showTime = _ref.showTime,\n mode = _ref.mode,\n onPanelChange = _ref.onPanelChange,\n onCalendarChange = _ref.onCalendarChange,\n onOk = _ref.onOk,\n multiple = _ref.multiple,\n defaultPickerValue = _ref.defaultPickerValue,\n pickerValue = _ref.pickerValue,\n onPickerValueChange = _ref.onPickerValueChange,\n inputReadOnly = _ref.inputReadOnly,\n suffixIcon = _ref.suffixIcon,\n removeIcon = _ref.removeIcon,\n onFocus = _ref.onFocus,\n onBlur = _ref.onBlur,\n presets = _ref.presets,\n components = _ref.components,\n cellRender = _ref.cellRender,\n dateRender = _ref.dateRender,\n monthCellRender = _ref.monthCellRender,\n onClick = _ref.onClick;\n\n // ========================= Refs =========================\n var selectorRef = usePickerRef(ref);\n\n // ========================= Util =========================\n function pickerParam(values) {\n if (values === null) {\n return null;\n }\n return multiple ? values : values[0];\n }\n var toggleDates = useToggleDates(generateConfig, locale, internalPicker);\n\n // ========================= Open =========================\n var _useOpen = useOpen(open, defaultOpen, [disabled], onOpenChange),\n _useOpen2 = _slicedToArray(_useOpen, 2),\n mergedOpen = _useOpen2[0],\n triggerOpen = _useOpen2[1];\n\n // ======================= Calendar =======================\n var onInternalCalendarChange = function onInternalCalendarChange(dates, dateStrings, info) {\n if (onCalendarChange) {\n var filteredInfo = _objectSpread({}, info);\n delete filteredInfo.range;\n onCalendarChange(pickerParam(dates), pickerParam(dateStrings), filteredInfo);\n }\n };\n var onInternalOk = function onInternalOk(dates) {\n onOk === null || onOk === void 0 || onOk(pickerParam(dates));\n };\n\n // ======================== Values ========================\n var _useInnerValue = useInnerValue(generateConfig, locale, formatList, false, order, defaultValue, value, onInternalCalendarChange, onInternalOk),\n _useInnerValue2 = _slicedToArray(_useInnerValue, 5),\n mergedValue = _useInnerValue2[0],\n setInnerValue = _useInnerValue2[1],\n getCalendarValue = _useInnerValue2[2],\n triggerCalendarChange = _useInnerValue2[3],\n triggerOk = _useInnerValue2[4];\n var calendarValue = getCalendarValue();\n\n // ======================== Active ========================\n // In SinglePicker, we will always get `activeIndex` is 0.\n var _useRangeActive = useRangeActive([disabled]),\n _useRangeActive2 = _slicedToArray(_useRangeActive, 4),\n focused = _useRangeActive2[0],\n triggerFocus = _useRangeActive2[1],\n lastOperation = _useRangeActive2[2],\n activeIndex = _useRangeActive2[3];\n var onSharedFocus = function onSharedFocus(event) {\n triggerFocus(true);\n onFocus === null || onFocus === void 0 || onFocus(event, {});\n };\n var onSharedBlur = function onSharedBlur(event) {\n triggerFocus(false);\n onBlur === null || onBlur === void 0 || onBlur(event, {});\n };\n\n // ========================= Mode =========================\n var _useMergedState = useMergedState(picker, {\n value: mode\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n mergedMode = _useMergedState2[0],\n setMode = _useMergedState2[1];\n\n /** Extends from `mergedMode` to patch `datetime` mode */\n var internalMode = mergedMode === 'date' && showTime ? 'datetime' : mergedMode;\n\n // ======================= Show Now =======================\n var mergedShowNow = useShowNow(picker, mergedMode, showNow, showToday);\n\n // ======================== Value =========================\n var onInternalChange = onChange && function (dates, dateStrings) {\n onChange(pickerParam(dates), pickerParam(dateStrings));\n };\n var _useRangeValue = useRangeValue(_objectSpread(_objectSpread({}, filledProps), {}, {\n onChange: onInternalChange\n }), mergedValue, setInnerValue, getCalendarValue, triggerCalendarChange, [],\n //disabled,\n formatList, focused, mergedOpen, isInvalidateDate),\n _useRangeValue2 = _slicedToArray(_useRangeValue, 2),\n /** Trigger `onChange` directly without check `disabledDate` */\n triggerSubmitChange = _useRangeValue2[1];\n\n // ======================= Validate =======================\n var _useFieldsInvalidate = useFieldsInvalidate(calendarValue, isInvalidateDate),\n _useFieldsInvalidate2 = _slicedToArray(_useFieldsInvalidate, 2),\n submitInvalidates = _useFieldsInvalidate2[0],\n onSelectorInvalid = _useFieldsInvalidate2[1];\n var submitInvalidate = React.useMemo(function () {\n return submitInvalidates.some(function (invalidated) {\n return invalidated;\n });\n }, [submitInvalidates]);\n\n // ===================== Picker Value =====================\n // Proxy to single pickerValue\n var onInternalPickerValueChange = function onInternalPickerValueChange(dates, info) {\n if (onPickerValueChange) {\n var cleanInfo = _objectSpread(_objectSpread({}, info), {}, {\n mode: info.mode[0]\n });\n delete cleanInfo.range;\n onPickerValueChange(dates[0], cleanInfo);\n }\n };\n var _useRangePickerValue = useRangePickerValue(generateConfig, locale, calendarValue, [mergedMode], mergedOpen, activeIndex, internalPicker, false,\n // multiplePanel,\n defaultPickerValue, pickerValue, toArray(showTime === null || showTime === void 0 ? void 0 : showTime.defaultOpenValue), onInternalPickerValueChange, minDate, maxDate),\n _useRangePickerValue2 = _slicedToArray(_useRangePickerValue, 2),\n currentPickerValue = _useRangePickerValue2[0],\n setCurrentPickerValue = _useRangePickerValue2[1];\n\n // >>> Mode need wait for `pickerValue`\n var triggerModeChange = useEvent(function (nextPickerValue, nextMode, triggerEvent) {\n setMode(nextMode);\n\n // Compatible with `onPanelChange`\n if (onPanelChange && triggerEvent !== false) {\n var lastPickerValue = nextPickerValue || calendarValue[calendarValue.length - 1];\n onPanelChange(lastPickerValue, nextMode);\n }\n });\n\n // ======================== Submit ========================\n /**\n * Different with RangePicker, confirm should check `multiple` logic.\n * This will never provide `date` instead.\n */\n var triggerConfirm = function triggerConfirm() {\n triggerSubmitChange(getCalendarValue());\n triggerOpen(false, {\n force: true\n });\n };\n\n // ======================== Click =========================\n var onSelectorClick = function onSelectorClick(event) {\n if (!disabled && !selectorRef.current.nativeElement.contains(document.activeElement)) {\n // Click to focus the enabled input\n selectorRef.current.focus();\n }\n triggerOpen(true);\n onClick === null || onClick === void 0 || onClick(event);\n };\n var onSelectorClear = function onSelectorClear() {\n triggerSubmitChange(null);\n triggerOpen(false, {\n force: true\n });\n };\n\n // ======================== Hover =========================\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n hoverSource = _React$useState2[0],\n setHoverSource = _React$useState2[1];\n var _React$useState3 = React.useState(null),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n internalHoverValue = _React$useState4[0],\n setInternalHoverValue = _React$useState4[1];\n var hoverValues = React.useMemo(function () {\n var values = [internalHoverValue].concat(_toConsumableArray(calendarValue)).filter(function (date) {\n return date;\n });\n return multiple ? values : values.slice(0, 1);\n }, [calendarValue, internalHoverValue, multiple]);\n\n // Selector values is different with RangePicker\n // which can not use `hoverValue` directly\n var selectorValues = React.useMemo(function () {\n if (!multiple && internalHoverValue) {\n return [internalHoverValue];\n }\n return calendarValue.filter(function (date) {\n return date;\n });\n }, [calendarValue, internalHoverValue, multiple]);\n\n // Clean up `internalHoverValues` when closed\n React.useEffect(function () {\n if (!mergedOpen) {\n setInternalHoverValue(null);\n }\n }, [mergedOpen]);\n\n // ========================================================\n // == Panels ==\n // ========================================================\n // ======================= Presets ========================\n var presetList = usePresets(presets);\n var onPresetHover = function onPresetHover(nextValue) {\n setInternalHoverValue(nextValue);\n setHoverSource('preset');\n };\n\n // TODO: handle this\n var onPresetSubmit = function onPresetSubmit(nextValue) {\n var nextCalendarValues = multiple ? toggleDates(getCalendarValue(), nextValue) : [nextValue];\n var passed = triggerSubmitChange(nextCalendarValues);\n if (passed && !multiple) {\n triggerOpen(false, {\n force: true\n });\n }\n };\n var onNow = function onNow(now) {\n onPresetSubmit(now);\n };\n\n // ======================== Panel =========================\n var onPanelHover = function onPanelHover(date) {\n setInternalHoverValue(date);\n setHoverSource('cell');\n };\n\n // >>> Focus\n var onPanelFocus = function onPanelFocus(event) {\n triggerOpen(true);\n onSharedFocus(event);\n };\n\n // >>> Calendar\n var onPanelSelect = function onPanelSelect(date) {\n lastOperation('panel');\n\n // Not change values if multiple and current panel is to match with picker\n if (multiple && internalMode !== picker) {\n return;\n }\n var nextValues = multiple ? toggleDates(getCalendarValue(), date) : [date];\n\n // Only trigger calendar event but not update internal `calendarValue` state\n triggerCalendarChange(nextValues);\n\n // >>> Trigger next active if !needConfirm\n // Fully logic check `useRangeValue` hook\n if (!needConfirm && !complexPicker && internalPicker === internalMode) {\n triggerConfirm();\n }\n };\n\n // >>> Close\n var onPopupClose = function onPopupClose() {\n // Close popup\n triggerOpen(false);\n };\n\n // >>> cellRender\n var onInternalCellRender = useCellRender(cellRender, dateRender, monthCellRender);\n\n // >>> invalid\n\n var panelProps = React.useMemo(function () {\n var domProps = pickAttrs(filledProps, false);\n var restProps = omit(filledProps, [].concat(_toConsumableArray(Object.keys(domProps)), ['onChange', 'onCalendarChange', 'style', 'className', 'onPanelChange']));\n return _objectSpread(_objectSpread({}, restProps), {}, {\n multiple: filledProps.multiple\n });\n }, [filledProps]);\n\n // >>> Render\n var panel = /*#__PURE__*/React.createElement(Popup, _extends({}, panelProps, {\n showNow: mergedShowNow,\n showTime: showTime\n // Disabled\n ,\n disabledDate: disabledDate\n // Focus\n ,\n onFocus: onPanelFocus,\n onBlur: onSharedBlur\n // Mode\n ,\n picker: picker,\n mode: mergedMode,\n internalMode: internalMode,\n onPanelChange: triggerModeChange\n // Value\n ,\n format: maskFormat,\n value: calendarValue,\n isInvalid: isInvalidateDate,\n onChange: null,\n onSelect: onPanelSelect\n // PickerValue\n ,\n pickerValue: currentPickerValue,\n defaultOpenValue: showTime === null || showTime === void 0 ? void 0 : showTime.defaultOpenValue,\n onPickerValueChange: setCurrentPickerValue\n // Hover\n ,\n hoverValue: hoverValues,\n onHover: onPanelHover\n // Submit\n ,\n needConfirm: needConfirm,\n onSubmit: triggerConfirm,\n onOk: triggerOk\n // Preset\n ,\n presets: presetList,\n onPresetHover: onPresetHover,\n onPresetSubmit: onPresetSubmit,\n onNow: onNow\n // Render\n ,\n cellRender: onInternalCellRender\n }));\n\n // ========================================================\n // == Selector ==\n // ========================================================\n\n // ======================== Change ========================\n var onSelectorChange = function onSelectorChange(date) {\n triggerCalendarChange(date);\n };\n var onSelectorInputChange = function onSelectorInputChange() {\n lastOperation('input');\n };\n\n // ======================= Selector =======================\n var onSelectorFocus = function onSelectorFocus(event) {\n lastOperation('input');\n triggerOpen(true, {\n inherit: true\n });\n\n // setActiveIndex(index);\n\n onSharedFocus(event);\n };\n var onSelectorBlur = function onSelectorBlur(event) {\n triggerOpen(false);\n onSharedBlur(event);\n };\n var onSelectorKeyDown = function onSelectorKeyDown(event, preventDefault) {\n if (event.key === 'Tab') {\n triggerConfirm();\n }\n onKeyDown === null || onKeyDown === void 0 || onKeyDown(event, preventDefault);\n };\n\n // ======================= Context ========================\n var context = React.useMemo(function () {\n return {\n prefixCls: prefixCls,\n locale: locale,\n generateConfig: generateConfig,\n button: components.button,\n input: components.input\n };\n }, [prefixCls, locale, generateConfig, components.button, components.input]);\n\n // ======================== Effect ========================\n // >>> Mode\n // Reset for every active\n useLayoutEffect(function () {\n if (mergedOpen && activeIndex !== undefined) {\n // Legacy compatible. This effect update should not trigger `onPanelChange`\n triggerModeChange(null, picker, false);\n }\n }, [mergedOpen, activeIndex, picker]);\n\n // >>> For complex picker, we need check if need to focus next one\n useLayoutEffect(function () {\n var lastOp = lastOperation();\n\n // Trade as confirm on field leave\n if (!mergedOpen && lastOp === 'input') {\n triggerOpen(false);\n triggerConfirm();\n }\n\n // Submit with complex picker\n if (!mergedOpen && complexPicker && !needConfirm && lastOp === 'panel') {\n triggerOpen(true);\n triggerConfirm();\n }\n }, [mergedOpen]);\n\n // ======================== Render ========================\n return /*#__PURE__*/React.createElement(PickerContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(PickerTrigger, _extends({}, pickTriggerProps(filledProps), {\n popupElement: panel,\n popupStyle: styles.popup,\n popupClassName: classNames.popup\n // Visible\n ,\n visible: mergedOpen,\n onClose: onPopupClose\n }), /*#__PURE__*/React.createElement(SingleSelector\n // Shared\n , _extends({}, filledProps, {\n // Ref\n ref: selectorRef\n // Icon\n ,\n suffixIcon: suffixIcon,\n removeIcon: removeIcon\n // Active\n ,\n activeHelp: !!internalHoverValue,\n allHelp: !!internalHoverValue && hoverSource === 'preset',\n focused: focused,\n onFocus: onSelectorFocus,\n onBlur: onSelectorBlur,\n onKeyDown: onSelectorKeyDown,\n onSubmit: triggerConfirm\n // Change\n ,\n value: selectorValues,\n maskFormat: maskFormat,\n onChange: onSelectorChange,\n onInputChange: onSelectorInputChange,\n internalPicker: internalPicker\n // Format\n ,\n format: formatList,\n inputReadOnly: inputReadOnly\n // Disabled\n ,\n disabled: disabled\n // Open\n ,\n open: mergedOpen,\n onOpenChange: triggerOpen\n // Click\n ,\n onClick: onSelectorClick,\n onClear: onSelectorClear\n // Invalid\n ,\n invalid: submitInvalidate,\n onInvalid: function onInvalid(invalid) {\n // Only `single` mode support type date.\n // `multiple` mode can not typing.\n onSelectorInvalid(invalid, 0);\n }\n }))));\n}\nvar RefPicker = /*#__PURE__*/React.forwardRef(Picker);\nif (process.env.NODE_ENV !== 'production') {\n RefPicker.displayName = 'RefPicker';\n}\nexport default RefPicker;","/**\n * What's new?\n * - Common\n * - [Break] Support special year format, all the year will follow the locale config.\n * - Blur all of field will trigger `onChange` if validate\n * - Support `preserveInvalidOnBlur` to not to clean input if invalid and remove `changeOnBlur`\n * - `pickerValue` is now full controlled\n * - `defaultPickerValue` will take effect on every field active with popup opening.\n * - [Break] clear button return the event with `onClick`\n *\n * - Locale\n * - Remove `dateFormat` since it's never used\n * - Remove `dateTimeFormat` since it's never used\n *\n * - Picker\n * - TimePicker support `changeOnScroll`\n * - TimePicker support `millisecond`\n * - Support cellMeridiemFormat for AM/PM\n * - Get correct `disabledHours` when set `use12Hours`\n * - Support `showWeek`\n *\n * - RangePicker\n * - [Break] RangePicker is now not limit the range of clicked field.\n * - Trigger `onCalendarChange` when type correct\n * - [Break] Not order `value` if given `value` is wrong order.\n * - Hover `presets` will show date in input field.\n * - [Break] RangePicker go to end field, `pickerValue` will follow the start field if not controlled.\n */\n\nimport RangePicker from \"./PickerInput/RangePicker\";\nimport Picker from \"./PickerInput/SinglePicker\";\nimport PickerPanel from \"./PickerPanel\";\nexport { Picker, RangePicker, PickerPanel };\nexport default Picker;","import { unit } from '@ant-design/cssinjs';\nimport { genOverflowStyle, getMultipleSelectorUnit } from '../../select/style/multiple';\nimport { mergeToken } from '../../theme/internal';\nconst genSize = (token, suffix) => {\n const {\n componentCls,\n controlHeight\n } = token;\n const suffixCls = suffix ? `${componentCls}-${suffix}` : '';\n const multipleSelectorUnit = getMultipleSelectorUnit(token);\n return [\n // genSelectionStyle(token, suffix),\n {\n [`${componentCls}-multiple${suffixCls}`]: {\n paddingBlock: multipleSelectorUnit.containerPadding,\n paddingInlineStart: multipleSelectorUnit.basePadding,\n minHeight: controlHeight,\n // ======================== Selections ========================\n [`${componentCls}-selection-item`]: {\n height: multipleSelectorUnit.itemHeight,\n lineHeight: unit(multipleSelectorUnit.itemLineHeight)\n }\n }\n }];\n};\nconst genPickerMultipleStyle = token => {\n const {\n componentCls,\n calc,\n lineWidth\n } = token;\n const smallToken = mergeToken(token, {\n fontHeight: token.fontSize,\n selectHeight: token.controlHeightSM,\n multipleSelectItemHeight: token.multipleItemHeightSM,\n borderRadius: token.borderRadiusSM,\n borderRadiusSM: token.borderRadiusXS,\n controlHeight: token.controlHeightSM\n });\n const largeToken = mergeToken(token, {\n fontHeight: calc(token.multipleItemHeightLG).sub(calc(lineWidth).mul(2).equal()).equal(),\n fontSize: token.fontSizeLG,\n selectHeight: token.controlHeightLG,\n multipleSelectItemHeight: token.multipleItemHeightLG,\n borderRadius: token.borderRadiusLG,\n borderRadiusSM: token.borderRadius,\n controlHeight: token.controlHeightLG\n });\n return [\n // ======================== Size ========================\n genSize(smallToken, 'small'), genSize(token), genSize(largeToken, 'large'),\n // ====================== Selection ======================\n {\n [`${componentCls}${componentCls}-multiple`]: Object.assign(Object.assign({\n width: '100%',\n cursor: 'text',\n // ==================== Selector =====================\n [`${componentCls}-selector`]: {\n flex: 'auto',\n padding: 0,\n position: 'relative',\n '&:after': {\n margin: 0\n },\n // ================== placeholder ==================\n [`${componentCls}-selection-placeholder`]: {\n position: 'absolute',\n top: '50%',\n insetInlineStart: token.inputPaddingHorizontalBase,\n insetInlineEnd: 0,\n transform: 'translateY(-50%)',\n transition: `all ${token.motionDurationSlow}`,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n flex: 1,\n color: token.colorTextPlaceholder,\n pointerEvents: 'none'\n }\n }\n }, genOverflowStyle(token)), {\n // ====================== Input ======================\n // Input is `readonly`, which is used for a11y only\n [`${componentCls}-multiple-input`]: {\n width: 0,\n height: 0,\n border: 0,\n visibility: 'hidden',\n position: 'absolute',\n zIndex: -1\n }\n })\n }];\n};\nexport default genPickerMultipleStyle;","import { unit } from '@ant-design/cssinjs';\nimport { FastColor } from '@ant-design/fast-color';\nconst genPickerCellInnerStyle = token => {\n const {\n pickerCellCls,\n pickerCellInnerCls,\n cellHeight,\n borderRadiusSM,\n motionDurationMid,\n cellHoverBg,\n lineWidth,\n lineType,\n colorPrimary,\n cellActiveWithRangeBg,\n colorTextLightSolid,\n colorTextDisabled,\n cellBgDisabled,\n colorFillSecondary\n } = token;\n return {\n '&::before': {\n position: 'absolute',\n top: '50%',\n insetInlineStart: 0,\n insetInlineEnd: 0,\n zIndex: 1,\n height: cellHeight,\n transform: 'translateY(-50%)',\n content: '\"\"',\n pointerEvents: 'none'\n },\n // >>> Default\n [pickerCellInnerCls]: {\n position: 'relative',\n zIndex: 2,\n display: 'inline-block',\n minWidth: cellHeight,\n height: cellHeight,\n lineHeight: unit(cellHeight),\n borderRadius: borderRadiusSM,\n transition: `background ${motionDurationMid}`\n },\n // >>> Hover\n [`&:hover:not(${pickerCellCls}-in-view):not(${pickerCellCls}-disabled),\n &:hover:not(${pickerCellCls}-selected):not(${pickerCellCls}-range-start):not(${pickerCellCls}-range-end):not(${pickerCellCls}-disabled)`]: {\n [pickerCellInnerCls]: {\n background: cellHoverBg\n }\n },\n // >>> Today\n [`&-in-view${pickerCellCls}-today ${pickerCellInnerCls}`]: {\n '&::before': {\n position: 'absolute',\n top: 0,\n insetInlineEnd: 0,\n bottom: 0,\n insetInlineStart: 0,\n zIndex: 1,\n border: `${unit(lineWidth)} ${lineType} ${colorPrimary}`,\n borderRadius: borderRadiusSM,\n content: '\"\"'\n }\n },\n // >>> In Range\n [`&-in-view${pickerCellCls}-in-range,\n &-in-view${pickerCellCls}-range-start,\n &-in-view${pickerCellCls}-range-end`]: {\n position: 'relative',\n [`&:not(${pickerCellCls}-disabled):before`]: {\n background: cellActiveWithRangeBg\n }\n },\n // >>> Selected\n [`&-in-view${pickerCellCls}-selected,\n &-in-view${pickerCellCls}-range-start,\n &-in-view${pickerCellCls}-range-end`]: {\n [`&:not(${pickerCellCls}-disabled) ${pickerCellInnerCls}`]: {\n color: colorTextLightSolid,\n background: colorPrimary\n },\n [`&${pickerCellCls}-disabled ${pickerCellInnerCls}`]: {\n background: colorFillSecondary\n }\n },\n [`&-in-view${pickerCellCls}-range-start:not(${pickerCellCls}-disabled):before`]: {\n insetInlineStart: '50%'\n },\n [`&-in-view${pickerCellCls}-range-end:not(${pickerCellCls}-disabled):before`]: {\n insetInlineEnd: '50%'\n },\n // range start border-radius\n [`&-in-view${pickerCellCls}-range-start:not(${pickerCellCls}-range-end) ${pickerCellInnerCls}`]: {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM,\n borderStartEndRadius: 0,\n borderEndEndRadius: 0\n },\n // range end border-radius\n [`&-in-view${pickerCellCls}-range-end:not(${pickerCellCls}-range-start) ${pickerCellInnerCls}`]: {\n borderStartStartRadius: 0,\n borderEndStartRadius: 0,\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n },\n // >>> Disabled\n '&-disabled': {\n color: colorTextDisabled,\n cursor: 'not-allowed',\n [pickerCellInnerCls]: {\n background: 'transparent'\n },\n '&::before': {\n background: cellBgDisabled\n }\n },\n [`&-disabled${pickerCellCls}-today ${pickerCellInnerCls}::before`]: {\n borderColor: colorTextDisabled\n }\n };\n};\nexport const genPanelStyle = token => {\n const {\n componentCls,\n pickerCellCls,\n pickerCellInnerCls,\n pickerYearMonthCellWidth,\n pickerControlIconSize,\n cellWidth,\n paddingSM,\n paddingXS,\n paddingXXS,\n colorBgContainer,\n lineWidth,\n lineType,\n borderRadiusLG,\n colorPrimary,\n colorTextHeading,\n colorSplit,\n pickerControlIconBorderWidth,\n colorIcon,\n textHeight,\n motionDurationMid,\n colorIconHover,\n fontWeightStrong,\n cellHeight,\n pickerCellPaddingVertical,\n colorTextDisabled,\n colorText,\n fontSize,\n motionDurationSlow,\n withoutTimeCellHeight,\n pickerQuarterPanelContentHeight,\n borderRadiusSM,\n colorTextLightSolid,\n cellHoverBg,\n timeColumnHeight,\n timeColumnWidth,\n timeCellHeight,\n controlItemBgActive,\n marginXXS,\n pickerDatePanelPaddingHorizontal,\n pickerControlIconMargin\n } = token;\n const pickerPanelWidth = token.calc(cellWidth).mul(7).add(token.calc(pickerDatePanelPaddingHorizontal).mul(2)).equal();\n return {\n [componentCls]: {\n '&-panel': {\n display: 'inline-flex',\n flexDirection: 'column',\n textAlign: 'center',\n background: colorBgContainer,\n borderRadius: borderRadiusLG,\n outline: 'none',\n '&-focused': {\n borderColor: colorPrimary\n },\n '&-rtl': {\n [`${componentCls}-prev-icon,\n ${componentCls}-super-prev-icon`]: {\n transform: 'rotate(45deg)'\n },\n [`${componentCls}-next-icon,\n ${componentCls}-super-next-icon`]: {\n transform: 'rotate(-135deg)'\n },\n [`${componentCls}-time-panel`]: {\n [`${componentCls}-content`]: {\n direction: 'ltr',\n '> *': {\n direction: 'rtl'\n }\n }\n }\n }\n },\n // ========================================================\n // = Shared Panel =\n // ========================================================\n [`&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel,\n &-week-panel,\n &-date-panel,\n &-time-panel`]: {\n display: 'flex',\n flexDirection: 'column',\n width: pickerPanelWidth\n },\n // ======================= Header =======================\n '&-header': {\n display: 'flex',\n padding: `0 ${unit(paddingXS)}`,\n color: colorTextHeading,\n borderBottom: `${unit(lineWidth)} ${lineType} ${colorSplit}`,\n '> *': {\n flex: 'none'\n },\n button: {\n padding: 0,\n color: colorIcon,\n lineHeight: unit(textHeight),\n background: 'transparent',\n border: 0,\n cursor: 'pointer',\n transition: `color ${motionDurationMid}`,\n fontSize: 'inherit',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n '&:empty': {\n display: 'none'\n }\n },\n '> button': {\n minWidth: '1.6em',\n fontSize,\n '&:hover': {\n color: colorIconHover\n },\n '&:disabled': {\n opacity: 0.25,\n pointerEvents: 'none'\n }\n },\n '&-view': {\n flex: 'auto',\n fontWeight: fontWeightStrong,\n lineHeight: unit(textHeight),\n '> button': {\n color: 'inherit',\n fontWeight: 'inherit',\n '&:not(:first-child)': {\n marginInlineStart: paddingXS\n },\n '&:hover': {\n color: colorPrimary\n }\n }\n }\n },\n // Arrow button\n [`&-prev-icon,\n &-next-icon,\n &-super-prev-icon,\n &-super-next-icon`]: {\n position: 'relative',\n width: pickerControlIconSize,\n height: pickerControlIconSize,\n '&::before': {\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n width: pickerControlIconSize,\n height: pickerControlIconSize,\n border: `0 solid currentcolor`,\n borderBlockWidth: `${unit(pickerControlIconBorderWidth)} 0`,\n borderInlineWidth: `${unit(pickerControlIconBorderWidth)} 0`,\n content: '\"\"'\n }\n },\n [`&-super-prev-icon,\n &-super-next-icon`]: {\n '&::after': {\n position: 'absolute',\n top: pickerControlIconMargin,\n insetInlineStart: pickerControlIconMargin,\n display: 'inline-block',\n width: pickerControlIconSize,\n height: pickerControlIconSize,\n border: '0 solid currentcolor',\n borderBlockWidth: `${unit(pickerControlIconBorderWidth)} 0`,\n borderInlineWidth: `${unit(pickerControlIconBorderWidth)} 0`,\n content: '\"\"'\n }\n },\n '&-prev-icon, &-super-prev-icon': {\n transform: 'rotate(-45deg)'\n },\n '&-next-icon, &-super-next-icon': {\n transform: 'rotate(135deg)'\n },\n // ======================== Body ========================\n '&-content': {\n width: '100%',\n tableLayout: 'fixed',\n borderCollapse: 'collapse',\n 'th, td': {\n position: 'relative',\n minWidth: cellHeight,\n fontWeight: 'normal'\n },\n th: {\n height: token.calc(cellHeight).add(token.calc(pickerCellPaddingVertical).mul(2)).equal(),\n color: colorText,\n verticalAlign: 'middle'\n }\n },\n '&-cell': Object.assign({\n padding: `${unit(pickerCellPaddingVertical)} 0`,\n color: colorTextDisabled,\n cursor: 'pointer',\n // In view\n '&-in-view': {\n color: colorText\n }\n }, genPickerCellInnerStyle(token)),\n [`&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel`]: {\n [`${componentCls}-content`]: {\n height: token.calc(withoutTimeCellHeight).mul(4).equal()\n },\n [pickerCellInnerCls]: {\n padding: `0 ${unit(paddingXS)}`\n }\n },\n '&-quarter-panel': {\n [`${componentCls}-content`]: {\n height: pickerQuarterPanelContentHeight\n }\n },\n // ========================================================\n // = Special =\n // ========================================================\n // ===================== Decade Panel =====================\n '&-decade-panel': {\n [pickerCellInnerCls]: {\n padding: `0 ${unit(token.calc(paddingXS).div(2).equal())}`\n },\n [`${componentCls}-cell::before`]: {\n display: 'none'\n }\n },\n // ============= Year & Quarter & Month Panel =============\n [`&-year-panel,\n &-quarter-panel,\n &-month-panel`]: {\n [`${componentCls}-body`]: {\n padding: `0 ${unit(paddingXS)}`\n },\n [pickerCellInnerCls]: {\n width: pickerYearMonthCellWidth\n }\n },\n // ====================== Date Panel ======================\n '&-date-panel': {\n [`${componentCls}-body`]: {\n padding: `${unit(paddingXS)} ${unit(pickerDatePanelPaddingHorizontal)}`\n },\n [`${componentCls}-content th`]: {\n boxSizing: 'border-box',\n padding: 0\n }\n },\n // ====================== Week Panel ======================\n '&-week-panel': {\n // Clear cell style\n [`${componentCls}-cell`]: {\n [`&:hover ${pickerCellInnerCls},\n &-selected ${pickerCellInnerCls},\n ${pickerCellInnerCls}`]: {\n background: 'transparent !important'\n }\n },\n '&-row': {\n td: {\n '&:before': {\n transition: `background ${motionDurationMid}`\n },\n '&:first-child:before': {\n borderStartStartRadius: borderRadiusSM,\n borderEndStartRadius: borderRadiusSM\n },\n '&:last-child:before': {\n borderStartEndRadius: borderRadiusSM,\n borderEndEndRadius: borderRadiusSM\n }\n },\n '&:hover td:before': {\n background: cellHoverBg\n },\n '&-range-start td, &-range-end td, &-selected td, &-hover td': {\n // Rise priority to override hover style\n [`&${pickerCellCls}`]: {\n '&:before': {\n background: colorPrimary\n },\n [`&${componentCls}-cell-week`]: {\n color: new FastColor(colorTextLightSolid).setA(0.5).toHexString()\n },\n [pickerCellInnerCls]: {\n color: colorTextLightSolid\n }\n }\n },\n '&-range-hover td:before': {\n background: controlItemBgActive\n }\n }\n },\n // >>> ShowWeek\n '&-week-panel, &-date-panel-show-week': {\n [`${componentCls}-body`]: {\n padding: `${unit(paddingXS)} ${unit(paddingSM)}`\n },\n [`${componentCls}-content th`]: {\n width: 'auto'\n }\n },\n // ==================== Datetime Panel ====================\n '&-datetime-panel': {\n display: 'flex',\n [`${componentCls}-time-panel`]: {\n borderInlineStart: `${unit(lineWidth)} ${lineType} ${colorSplit}`\n },\n [`${componentCls}-date-panel,\n ${componentCls}-time-panel`]: {\n transition: `opacity ${motionDurationSlow}`\n },\n // Keyboard\n '&-active': {\n [`${componentCls}-date-panel,\n ${componentCls}-time-panel`]: {\n opacity: 0.3,\n '&-active': {\n opacity: 1\n }\n }\n }\n },\n // ====================== Time Panel ======================\n '&-time-panel': {\n width: 'auto',\n minWidth: 'auto',\n [`${componentCls}-content`]: {\n display: 'flex',\n flex: 'auto',\n height: timeColumnHeight\n },\n '&-column': {\n flex: '1 0 auto',\n width: timeColumnWidth,\n margin: `${unit(paddingXXS)} 0`,\n padding: 0,\n overflowY: 'hidden',\n textAlign: 'start',\n listStyle: 'none',\n transition: `background ${motionDurationMid}`,\n overflowX: 'hidden',\n '&::-webkit-scrollbar': {\n width: 8,\n backgroundColor: 'transparent'\n },\n '&::-webkit-scrollbar-thumb': {\n backgroundColor: token.colorTextTertiary,\n borderRadius: token.borderRadiusSM\n },\n // For Firefox\n '&': {\n scrollbarWidth: 'thin',\n scrollbarColor: `${token.colorTextTertiary} transparent`\n },\n '&::after': {\n display: 'block',\n height: `calc(100% - ${unit(timeCellHeight)})`,\n content: '\"\"'\n },\n '&:not(:first-child)': {\n borderInlineStart: `${unit(lineWidth)} ${lineType} ${colorSplit}`\n },\n '&-active': {\n background: new FastColor(controlItemBgActive).setA(0.2).toHexString()\n },\n '&:hover': {\n overflowY: 'auto'\n },\n '> li': {\n margin: 0,\n padding: 0,\n [`&${componentCls}-time-panel-cell`]: {\n marginInline: marginXXS,\n [`${componentCls}-time-panel-cell-inner`]: {\n display: 'block',\n width: token.calc(timeColumnWidth).sub(token.calc(marginXXS).mul(2)).equal(),\n height: timeCellHeight,\n margin: 0,\n paddingBlock: 0,\n paddingInlineEnd: 0,\n paddingInlineStart: token.calc(timeColumnWidth).sub(timeCellHeight).div(2).equal(),\n color: colorText,\n lineHeight: unit(timeCellHeight),\n borderRadius: borderRadiusSM,\n cursor: 'pointer',\n transition: `background ${motionDurationMid}`,\n '&:hover': {\n background: cellHoverBg\n }\n },\n '&-selected': {\n [`${componentCls}-time-panel-cell-inner`]: {\n background: controlItemBgActive\n }\n },\n '&-disabled': {\n [`${componentCls}-time-panel-cell-inner`]: {\n color: colorTextDisabled,\n background: 'transparent',\n cursor: 'not-allowed'\n }\n }\n }\n }\n }\n }\n }\n };\n};\nconst genPickerPanelStyle = token => {\n const {\n componentCls,\n textHeight,\n lineWidth,\n paddingSM,\n antCls,\n colorPrimary,\n cellActiveWithRangeBg,\n colorPrimaryBorder,\n lineType,\n colorSplit\n } = token;\n return {\n [`${componentCls}-dropdown`]: {\n // ======================== Footer ========================\n [`${componentCls}-footer`]: {\n borderTop: `${unit(lineWidth)} ${lineType} ${colorSplit}`,\n '&-extra': {\n padding: `0 ${unit(paddingSM)}`,\n lineHeight: unit(token.calc(textHeight).sub(token.calc(lineWidth).mul(2)).equal()),\n textAlign: 'start',\n '&:not(:last-child)': {\n borderBottom: `${unit(lineWidth)} ${lineType} ${colorSplit}`\n }\n }\n },\n // ==================== Footer > Ranges ===================\n [`${componentCls}-panels + ${componentCls}-footer ${componentCls}-ranges`]: {\n justifyContent: 'space-between'\n },\n [`${componentCls}-ranges`]: {\n marginBlock: 0,\n paddingInline: unit(paddingSM),\n overflow: 'hidden',\n textAlign: 'start',\n listStyle: 'none',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n '> li': {\n lineHeight: unit(token.calc(textHeight).sub(token.calc(lineWidth).mul(2)).equal()),\n display: 'inline-block'\n },\n [`${componentCls}-now-btn-disabled`]: {\n pointerEvents: 'none',\n color: token.colorTextDisabled\n },\n // https://github.com/ant-design/ant-design/issues/23687\n [`${componentCls}-preset > ${antCls}-tag-blue`]: {\n color: colorPrimary,\n background: cellActiveWithRangeBg,\n borderColor: colorPrimaryBorder,\n cursor: 'pointer'\n },\n [`${componentCls}-ok`]: {\n paddingBlock: token.calc(lineWidth).mul(2).equal(),\n marginInlineStart: 'auto'\n }\n }\n }\n };\n};\nexport default genPickerPanelStyle;","import { unit } from '@ant-design/cssinjs';\nimport { genBorderlessStyle, genFilledStyle, genOutlinedStyle, genUnderlinedStyle } from '../../input/style/variants';\nconst genVariantsStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [componentCls]: [Object.assign(Object.assign(Object.assign(Object.assign({}, genOutlinedStyle(token)), genUnderlinedStyle(token)), genFilledStyle(token)), genBorderlessStyle(token)),\n // ========================= Multiple =========================\n {\n '&-outlined': {\n [`&${componentCls}-multiple ${componentCls}-selection-item`]: {\n background: token.multipleItemBg,\n border: `${unit(token.lineWidth)} ${token.lineType} ${token.multipleItemBorderColor}`\n }\n },\n '&-filled': {\n [`&${componentCls}-multiple ${componentCls}-selection-item`]: {\n background: token.colorBgContainer,\n border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorSplit}`\n }\n },\n '&-borderless': {\n [`&${componentCls}-multiple ${componentCls}-selection-item`]: {\n background: token.multipleItemBg,\n border: `${unit(token.lineWidth)} ${token.lineType} ${token.multipleItemBorderColor}`\n }\n },\n '&-underlined': {\n [`&${componentCls}-multiple ${componentCls}-selection-item`]: {\n background: token.multipleItemBg,\n border: `${unit(token.lineWidth)} ${token.lineType} ${token.multipleItemBorderColor}`\n }\n }\n }]\n };\n};\nexport default genVariantsStyle;","import { unit } from '@ant-design/cssinjs';\nimport { genPlaceholderStyle, initInputToken } from '../../input/style';\nimport { resetComponent, textEllipsis } from '../../style';\nimport { genCompactItemStyle } from '../../style/compact-item';\nimport { initMoveMotion, initSlideMotion, slideDownIn, slideDownOut, slideUpIn, slideUpOut } from '../../style/motion';\nimport { genRoundedArrow } from '../../style/roundedArrow';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genPickerMultipleStyle from './multiple';\nimport genPickerPanelStyle, { genPanelStyle } from './panel';\nimport { initPanelComponentToken, initPickerPanelToken, prepareComponentToken } from './token';\nimport genVariantsStyle from './variants';\nexport { initPickerPanelToken, initPanelComponentToken, genPanelStyle };\nconst genPickerPadding = (token, inputHeight, fontHeight, paddingHorizontal) => {\n const height = token.calc(fontHeight).add(2).equal();\n const paddingTop = token.max(token.calc(inputHeight).sub(height).div(2).equal(), 0);\n const paddingBottom = token.max(token.calc(inputHeight).sub(height).sub(paddingTop).equal(), 0);\n return {\n padding: `${unit(paddingTop)} ${unit(paddingHorizontal)} ${unit(paddingBottom)}`\n };\n};\nconst genPickerStatusStyle = token => {\n const {\n componentCls,\n colorError,\n colorWarning\n } = token;\n return {\n [`${componentCls}:not(${componentCls}-disabled):not([disabled])`]: {\n [`&${componentCls}-status-error`]: {\n [`${componentCls}-active-bar`]: {\n background: colorError\n }\n },\n [`&${componentCls}-status-warning`]: {\n [`${componentCls}-active-bar`]: {\n background: colorWarning\n }\n }\n }\n };\n};\nconst genPickerStyle = token => {\n const {\n componentCls,\n antCls,\n controlHeight,\n paddingInline,\n lineWidth,\n lineType,\n colorBorder,\n borderRadius,\n motionDurationMid,\n colorTextDisabled,\n colorTextPlaceholder,\n controlHeightLG,\n fontSizeLG,\n controlHeightSM,\n paddingInlineSM,\n paddingXS,\n marginXS,\n colorTextDescription,\n lineWidthBold,\n colorPrimary,\n motionDurationSlow,\n zIndexPopup,\n paddingXXS,\n sizePopupArrow,\n colorBgElevated,\n borderRadiusLG,\n boxShadowSecondary,\n borderRadiusSM,\n colorSplit,\n cellHoverBg,\n presetsWidth,\n presetsMaxWidth,\n boxShadowPopoverArrow,\n fontHeight,\n fontHeightLG,\n lineHeightLG\n } = token;\n return [{\n [componentCls]: Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genPickerPadding(token, controlHeight, fontHeight, paddingInline)), {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n lineHeight: 1,\n borderRadius,\n transition: `border ${motionDurationMid}, box-shadow ${motionDurationMid}, background ${motionDurationMid}`,\n [`${componentCls}-prefix`]: {\n marginInlineEnd: token.inputAffixPadding\n },\n // ======================== Input =========================\n [`${componentCls}-input`]: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n width: '100%',\n '> input': Object.assign(Object.assign({\n position: 'relative',\n display: 'inline-block',\n width: '100%',\n color: 'inherit',\n fontSize: token.fontSize,\n lineHeight: token.lineHeight,\n transition: `all ${motionDurationMid}`\n }, genPlaceholderStyle(colorTextPlaceholder)), {\n flex: 'auto',\n // Fix Firefox flex not correct:\n // https://github.com/ant-design/ant-design/pull/20023#issuecomment-564389553\n minWidth: 1,\n height: 'auto',\n padding: 0,\n background: 'transparent',\n border: 0,\n fontFamily: 'inherit',\n '&:focus': {\n boxShadow: 'none',\n outline: 0\n },\n '&[disabled]': {\n background: 'transparent',\n color: colorTextDisabled,\n cursor: 'not-allowed'\n }\n }),\n '&-placeholder': {\n '> input': {\n color: colorTextPlaceholder\n }\n }\n },\n // Size\n '&-large': Object.assign(Object.assign({}, genPickerPadding(token, controlHeightLG, fontHeightLG, paddingInline)), {\n [`${componentCls}-input > input`]: {\n fontSize: fontSizeLG,\n lineHeight: lineHeightLG\n }\n }),\n '&-small': Object.assign({}, genPickerPadding(token, controlHeightSM, fontHeight, paddingInlineSM)),\n [`${componentCls}-suffix`]: {\n display: 'flex',\n flex: 'none',\n alignSelf: 'center',\n marginInlineStart: token.calc(paddingXS).div(2).equal(),\n color: colorTextDisabled,\n lineHeight: 1,\n pointerEvents: 'none',\n transition: `opacity ${motionDurationMid}, color ${motionDurationMid}`,\n '> *': {\n verticalAlign: 'top',\n '&:not(:last-child)': {\n marginInlineEnd: marginXS\n }\n }\n },\n [`${componentCls}-clear`]: {\n position: 'absolute',\n top: '50%',\n insetInlineEnd: 0,\n color: colorTextDisabled,\n lineHeight: 1,\n transform: 'translateY(-50%)',\n cursor: 'pointer',\n opacity: 0,\n transition: `opacity ${motionDurationMid}, color ${motionDurationMid}`,\n '> *': {\n verticalAlign: 'top'\n },\n '&:hover': {\n color: colorTextDescription\n }\n },\n '&:hover': {\n [`${componentCls}-clear`]: {\n opacity: 1\n },\n // Should use the following selector, but since `:has` has poor compatibility,\n // we use `:not(:last-child)` instead, which may cause some problems in some cases.\n // [`${componentCls}-suffix:has(+ ${componentCls}-clear)`]: {\n [`${componentCls}-suffix:not(:last-child)`]: {\n opacity: 0\n }\n },\n [`${componentCls}-separator`]: {\n position: 'relative',\n display: 'inline-block',\n width: '1em',\n height: fontSizeLG,\n color: colorTextDisabled,\n fontSize: fontSizeLG,\n verticalAlign: 'top',\n cursor: 'default',\n [`${componentCls}-focused &`]: {\n color: colorTextDescription\n },\n [`${componentCls}-range-separator &`]: {\n [`${componentCls}-disabled &`]: {\n cursor: 'not-allowed'\n }\n }\n },\n // ======================== Range =========================\n '&-range': {\n position: 'relative',\n display: 'inline-flex',\n // Active bar\n [`${componentCls}-active-bar`]: {\n bottom: token.calc(lineWidth).mul(-1).equal(),\n height: lineWidthBold,\n background: colorPrimary,\n opacity: 0,\n transition: `all ${motionDurationSlow} ease-out`,\n pointerEvents: 'none'\n },\n [`&${componentCls}-focused`]: {\n [`${componentCls}-active-bar`]: {\n opacity: 1\n }\n },\n [`${componentCls}-range-separator`]: {\n alignItems: 'center',\n padding: `0 ${unit(paddingXS)}`,\n lineHeight: 1\n }\n },\n // ======================== Clear =========================\n '&-range, &-multiple': {\n // Clear\n [`${componentCls}-clear`]: {\n insetInlineEnd: paddingInline\n },\n [`&${componentCls}-small`]: {\n [`${componentCls}-clear`]: {\n insetInlineEnd: paddingInlineSM\n }\n }\n },\n // ======================= Dropdown =======================\n '&-dropdown': Object.assign(Object.assign(Object.assign({}, resetComponent(token)), genPanelStyle(token)), {\n pointerEvents: 'none',\n position: 'absolute',\n // Fix incorrect position of picker popup\n // https://github.com/ant-design/ant-design/issues/35590\n top: -9999,\n left: {\n _skip_check_: true,\n value: -9999\n },\n zIndex: zIndexPopup,\n [`&${componentCls}-dropdown-hidden`]: {\n display: 'none'\n },\n '&-rtl': {\n direction: 'rtl'\n },\n [`&${componentCls}-dropdown-placement-bottomLeft,\n &${componentCls}-dropdown-placement-bottomRight`]: {\n [`${componentCls}-range-arrow`]: {\n top: 0,\n display: 'block',\n transform: 'translateY(-100%)'\n }\n },\n [`&${componentCls}-dropdown-placement-topLeft,\n &${componentCls}-dropdown-placement-topRight`]: {\n [`${componentCls}-range-arrow`]: {\n bottom: 0,\n display: 'block',\n transform: 'translateY(100%) rotate(180deg)'\n }\n },\n [`&${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-topLeft,\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-topRight,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-topLeft,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-topRight`]: {\n animationName: slideDownIn\n },\n [`&${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-bottomLeft,\n &${antCls}-slide-up-enter${antCls}-slide-up-enter-active${componentCls}-dropdown-placement-bottomRight,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-bottomLeft,\n &${antCls}-slide-up-appear${antCls}-slide-up-appear-active${componentCls}-dropdown-placement-bottomRight`]: {\n animationName: slideUpIn\n },\n // https://github.com/ant-design/ant-design/issues/48727\n [`&${antCls}-slide-up-leave ${componentCls}-panel-container`]: {\n pointerEvents: 'none'\n },\n [`&${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-topLeft,\n &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-topRight`]: {\n animationName: slideDownOut\n },\n [`&${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-bottomLeft,\n &${antCls}-slide-up-leave${antCls}-slide-up-leave-active${componentCls}-dropdown-placement-bottomRight`]: {\n animationName: slideUpOut\n },\n // Time picker with additional style\n [`${componentCls}-panel > ${componentCls}-time-panel`]: {\n paddingTop: paddingXXS\n },\n // ======================== Ranges ========================\n [`${componentCls}-range-wrapper`]: {\n display: 'flex',\n position: 'relative'\n },\n [`${componentCls}-range-arrow`]: Object.assign(Object.assign({\n position: 'absolute',\n zIndex: 1,\n display: 'none',\n paddingInline: token.calc(paddingInline).mul(1.5).equal(),\n boxSizing: 'content-box',\n transition: `all ${motionDurationSlow} ease-out`\n }, genRoundedArrow(token, colorBgElevated, boxShadowPopoverArrow)), {\n '&:before': {\n insetInlineStart: token.calc(paddingInline).mul(1.5).equal()\n }\n }),\n [`${componentCls}-panel-container`]: {\n overflow: 'hidden',\n verticalAlign: 'top',\n background: colorBgElevated,\n borderRadius: borderRadiusLG,\n boxShadow: boxShadowSecondary,\n transition: `margin ${motionDurationSlow}`,\n display: 'inline-block',\n pointerEvents: 'auto',\n // ======================== Layout ========================\n [`${componentCls}-panel-layout`]: {\n display: 'flex',\n flexWrap: 'nowrap',\n alignItems: 'stretch'\n },\n // ======================== Preset ========================\n [`${componentCls}-presets`]: {\n display: 'flex',\n flexDirection: 'column',\n minWidth: presetsWidth,\n maxWidth: presetsMaxWidth,\n ul: {\n height: 0,\n flex: 'auto',\n listStyle: 'none',\n overflow: 'auto',\n margin: 0,\n padding: paddingXS,\n borderInlineEnd: `${unit(lineWidth)} ${lineType} ${colorSplit}`,\n li: Object.assign(Object.assign({}, textEllipsis), {\n borderRadius: borderRadiusSM,\n paddingInline: paddingXS,\n paddingBlock: token.calc(controlHeightSM).sub(fontHeight).div(2).equal(),\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '+ li': {\n marginTop: marginXS\n },\n '&:hover': {\n background: cellHoverBg\n }\n })\n }\n },\n // ======================== Panels ========================\n [`${componentCls}-panels`]: {\n display: 'inline-flex',\n flexWrap: 'nowrap',\n // [`${componentCls}-panel`]: {\n // borderWidth: `0 0 ${unit(lineWidth)}`,\n // },\n '&:last-child': {\n [`${componentCls}-panel`]: {\n borderWidth: 0\n }\n }\n },\n [`${componentCls}-panel`]: {\n verticalAlign: 'top',\n background: 'transparent',\n borderRadius: 0,\n borderWidth: 0,\n [`${componentCls}-content, table`]: {\n textAlign: 'center'\n },\n '&-focused': {\n borderColor: colorBorder\n }\n }\n }\n }),\n '&-dropdown-range': {\n padding: `${unit(token.calc(sizePopupArrow).mul(2).div(3).equal())} 0`,\n '&-hidden': {\n display: 'none'\n }\n },\n '&-rtl': {\n direction: 'rtl',\n [`${componentCls}-separator`]: {\n transform: 'rotate(180deg)'\n },\n [`${componentCls}-footer`]: {\n '&-extra': {\n direction: 'rtl'\n }\n }\n }\n })\n },\n // Follow code may reuse in other components\n initSlideMotion(token, 'slide-up'), initSlideMotion(token, 'slide-down'), initMoveMotion(token, 'move-up'), initMoveMotion(token, 'move-down')];\n};\n// ============================== Export ==============================\nexport default genStyleHooks('DatePicker', token => {\n const pickerToken = mergeToken(initInputToken(token), initPickerPanelToken(token), {\n inputPaddingHorizontalBase: token.calc(token.paddingSM).sub(1).equal(),\n multipleSelectItemHeight: token.multipleItemHeight,\n selectHeight: token.controlHeight\n });\n return [genPickerPanelStyle(pickerToken), genPickerStyle(pickerToken), genVariantsStyle(pickerToken), genPickerStatusStyle(pickerToken), genPickerMultipleStyle(pickerToken),\n // =====================================================\n // == Space Compact ==\n // =====================================================\n genCompactItemStyle(token, {\n focusElCls: `${token.componentCls}-focused`\n })];\n}, prepareComponentToken);","import { FastColor } from '@ant-design/fast-color';\nimport { initComponentToken } from '../../input/style/token';\nimport { getArrowToken } from '../../style/roundedArrow';\nexport const initPickerPanelToken = token => {\n const {\n componentCls,\n controlHeightLG,\n paddingXXS,\n padding\n } = token;\n return {\n pickerCellCls: `${componentCls}-cell`,\n pickerCellInnerCls: `${componentCls}-cell-inner`,\n pickerYearMonthCellWidth: token.calc(controlHeightLG).mul(1.5).equal(),\n pickerQuarterPanelContentHeight: token.calc(controlHeightLG).mul(1.4).equal(),\n pickerCellPaddingVertical: token.calc(paddingXXS).add(token.calc(paddingXXS).div(2)).equal(),\n pickerCellBorderGap: 2,\n // Magic for gap between cells\n pickerControlIconSize: 7,\n pickerControlIconMargin: 4,\n pickerControlIconBorderWidth: 1.5,\n pickerDatePanelPaddingHorizontal: token.calc(padding).add(token.calc(paddingXXS).div(2)).equal() // 18 in normal\n };\n};\nexport const initPanelComponentToken = token => {\n const {\n colorBgContainerDisabled,\n controlHeight,\n controlHeightSM,\n controlHeightLG,\n paddingXXS,\n lineWidth\n } = token;\n // Item height default use `controlHeight - 2 * paddingXXS`,\n // but some case `paddingXXS=0`.\n // Let's fallback it.\n const dblPaddingXXS = paddingXXS * 2;\n const dblLineWidth = lineWidth * 2;\n const multipleItemHeight = Math.min(controlHeight - dblPaddingXXS, controlHeight - dblLineWidth);\n const multipleItemHeightSM = Math.min(controlHeightSM - dblPaddingXXS, controlHeightSM - dblLineWidth);\n const multipleItemHeightLG = Math.min(controlHeightLG - dblPaddingXXS, controlHeightLG - dblLineWidth);\n // FIXED_ITEM_MARGIN is a hardcode calculation since calc not support rounding\n const INTERNAL_FIXED_ITEM_MARGIN = Math.floor(paddingXXS / 2);\n const filledToken = {\n INTERNAL_FIXED_ITEM_MARGIN,\n cellHoverBg: token.controlItemBgHover,\n cellActiveWithRangeBg: token.controlItemBgActive,\n cellHoverWithRangeBg: new FastColor(token.colorPrimary).lighten(35).toHexString(),\n cellRangeBorderColor: new FastColor(token.colorPrimary).lighten(20).toHexString(),\n cellBgDisabled: colorBgContainerDisabled,\n timeColumnWidth: controlHeightLG * 1.4,\n timeColumnHeight: 28 * 8,\n timeCellHeight: 28,\n cellWidth: controlHeightSM * 1.5,\n cellHeight: controlHeightSM,\n textHeight: controlHeightLG,\n withoutTimeCellHeight: controlHeightLG * 1.65,\n multipleItemBg: token.colorFillSecondary,\n multipleItemBorderColor: 'transparent',\n multipleItemHeight,\n multipleItemHeightSM,\n multipleItemHeightLG,\n multipleSelectorBgDisabled: colorBgContainerDisabled,\n multipleItemColorDisabled: token.colorTextDisabled,\n multipleItemBorderColorDisabled: 'transparent'\n };\n return filledToken;\n};\nexport const prepareComponentToken = token => Object.assign(Object.assign(Object.assign(Object.assign({}, initComponentToken(token)), initPanelComponentToken(token)), getArrowToken(token)), {\n presetsWidth: 120,\n presetsMaxWidth: 200,\n zIndexPopup: token.zIndexPopupBase + 50\n});","import * as React from 'react';\nimport useSelectIcons from '../select/useIcons';\nexport function getPlaceholder(locale, picker, customizePlaceholder) {\n if (customizePlaceholder !== undefined) {\n return customizePlaceholder;\n }\n if (picker === 'year' && locale.lang.yearPlaceholder) {\n return locale.lang.yearPlaceholder;\n }\n if (picker === 'quarter' && locale.lang.quarterPlaceholder) {\n return locale.lang.quarterPlaceholder;\n }\n if (picker === 'month' && locale.lang.monthPlaceholder) {\n return locale.lang.monthPlaceholder;\n }\n if (picker === 'week' && locale.lang.weekPlaceholder) {\n return locale.lang.weekPlaceholder;\n }\n if (picker === 'time' && locale.timePickerLocale.placeholder) {\n return locale.timePickerLocale.placeholder;\n }\n return locale.lang.placeholder;\n}\nexport function getRangePlaceholder(locale, picker, customizePlaceholder) {\n if (customizePlaceholder !== undefined) {\n return customizePlaceholder;\n }\n if (picker === 'year' && locale.lang.yearPlaceholder) {\n return locale.lang.rangeYearPlaceholder;\n }\n if (picker === 'quarter' && locale.lang.quarterPlaceholder) {\n return locale.lang.rangeQuarterPlaceholder;\n }\n if (picker === 'month' && locale.lang.monthPlaceholder) {\n return locale.lang.rangeMonthPlaceholder;\n }\n if (picker === 'week' && locale.lang.weekPlaceholder) {\n return locale.lang.rangeWeekPlaceholder;\n }\n if (picker === 'time' && locale.timePickerLocale.placeholder) {\n return locale.timePickerLocale.rangePlaceholder;\n }\n return locale.lang.rangePlaceholder;\n}\nexport function useIcons(props, prefixCls) {\n const {\n allowClear = true\n } = props;\n const {\n clearIcon,\n removeIcon\n } = useSelectIcons(Object.assign(Object.assign({}, props), {\n prefixCls,\n componentName: 'DatePicker'\n }));\n const mergedAllowClear = React.useMemo(() => {\n if (allowClear === false) {\n return false;\n }\n const allowClearConfig = allowClear === true ? {} : allowClear;\n return Object.assign({\n clearIcon: clearIcon\n }, allowClearConfig);\n }, [allowClear, clearIcon]);\n return [mergedAllowClear, removeIcon];\n}","export const [WEEK, WEEKPICKER] = ['week', 'WeekPicker'];\nexport const [MONTH, MONTHPICKER] = ['month', 'MonthPicker'];\nexport const [YEAR, YEARPICKER] = ['year', 'YearPicker'];\nexport const [QUARTER, QUARTERPICKER] = ['quarter', 'QuarterPicker'];\nexport const [TIME, TIMEPICKER] = ['time', 'TimePicker'];","\"use client\";\n\nimport * as React from 'react';\nimport Button from '../button';\nconst PickerButton = props => (/*#__PURE__*/React.createElement(Button, Object.assign({\n size: \"small\",\n type: \"primary\"\n}, props)));\nexport default PickerButton;","import { useMemo } from 'react';\nimport PickerButton from '../PickerButton';\nexport default function useComponents(components) {\n return useMemo(() => Object.assign({\n button: PickerButton\n }, components), [components]);\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { forwardRef, useContext, useImperativeHandle } from 'react';\nimport CalendarOutlined from \"@ant-design/icons/es/icons/CalendarOutlined\";\nimport ClockCircleOutlined from \"@ant-design/icons/es/icons/ClockCircleOutlined\";\nimport SwapRightOutlined from \"@ant-design/icons/es/icons/SwapRightOutlined\";\nimport classNames from 'classnames';\nimport { RangePicker as RCRangePicker } from 'rc-picker';\nimport ContextIsolator from '../../_util/ContextIsolator';\nimport { useZIndex } from '../../_util/hooks/useZIndex';\nimport { getMergedStatus, getStatusClassNames } from '../../_util/statusUtils';\nimport { devUseWarning } from '../../_util/warning';\nimport { ConfigContext } from '../../config-provider';\nimport DisabledContext from '../../config-provider/DisabledContext';\nimport useCSSVarCls from '../../config-provider/hooks/useCSSVarCls';\nimport useSize from '../../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../../form/context';\nimport useVariant from '../../form/hooks/useVariants';\nimport { useLocale } from '../../locale';\nimport { useCompactItemContext } from '../../space/Compact';\nimport enUS from '../locale/en_US';\nimport useStyle from '../style';\nimport { getRangePlaceholder, useIcons } from '../util';\nimport { TIME } from './constant';\nimport useComponents from './useComponents';\nconst generateRangePicker = generateConfig => {\n const RangePicker = /*#__PURE__*/forwardRef((props, ref) => {\n var _a;\n const {\n prefixCls: customizePrefixCls,\n getPopupContainer: customGetPopupContainer,\n components,\n className,\n style,\n placement,\n size: customizeSize,\n disabled: customDisabled,\n bordered = true,\n placeholder,\n popupClassName,\n dropdownClassName,\n status: customStatus,\n rootClassName,\n variant: customVariant,\n picker\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"getPopupContainer\", \"components\", \"className\", \"style\", \"placement\", \"size\", \"disabled\", \"bordered\", \"placeholder\", \"popupClassName\", \"dropdownClassName\", \"status\", \"rootClassName\", \"variant\", \"picker\"]);\n const innerRef = React.useRef(null);\n const {\n getPrefixCls,\n direction,\n getPopupContainer,\n rangePicker\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('picker', customizePrefixCls);\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const rootPrefixCls = getPrefixCls();\n const [variant, enableVariantCls] = useVariant('rangePicker', customVariant, bordered);\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('DatePicker.RangePicker');\n warning.deprecated(!dropdownClassName, 'dropdownClassName', 'popupClassName');\n warning.deprecated(!('bordered' in props), 'bordered', 'variant');\n }\n // ===================== Icon =====================\n const [mergedAllowClear] = useIcons(props, prefixCls);\n // ================== components ==================\n const mergedComponents = useComponents(components);\n // ===================== Size =====================\n const mergedSize = useSize(ctx => {\n var _a;\n return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n });\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== FormItemInput =====================\n const formItemContext = useContext(FormItemInputContext);\n const {\n hasFeedback,\n status: contextStatus,\n feedbackIcon\n } = formItemContext;\n const suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, picker === TIME ? /*#__PURE__*/React.createElement(ClockCircleOutlined, null) : /*#__PURE__*/React.createElement(CalendarOutlined, null), hasFeedback && feedbackIcon);\n useImperativeHandle(ref, () => innerRef.current);\n const [contextLocale] = useLocale('Calendar', enUS);\n const locale = Object.assign(Object.assign({}, contextLocale), props.locale);\n // ============================ zIndex ============================\n const [zIndex] = useZIndex('DatePicker', (_a = props.popupStyle) === null || _a === void 0 ? void 0 : _a.zIndex);\n return wrapCSSVar(/*#__PURE__*/React.createElement(ContextIsolator, {\n space: true\n }, /*#__PURE__*/React.createElement(RCRangePicker, Object.assign({\n separator: /*#__PURE__*/React.createElement(\"span\", {\n \"aria-label\": \"to\",\n className: `${prefixCls}-separator`\n }, /*#__PURE__*/React.createElement(SwapRightOutlined, null)),\n disabled: mergedDisabled,\n ref: innerRef,\n placement: placement,\n placeholder: getRangePlaceholder(locale, picker, placeholder),\n suffixIcon: suffixNode,\n prevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-prev-icon`\n }),\n nextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-next-icon`\n }),\n superPrevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-prev-icon`\n }),\n superNextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-next-icon`\n }),\n transitionName: `${rootPrefixCls}-slide-up`,\n picker: picker\n }, restProps, {\n className: classNames({\n [`${prefixCls}-${mergedSize}`]: mergedSize,\n [`${prefixCls}-${variant}`]: enableVariantCls\n }, getStatusClassNames(prefixCls, getMergedStatus(contextStatus, customStatus), hasFeedback), hashId, compactItemClassnames, className, rangePicker === null || rangePicker === void 0 ? void 0 : rangePicker.className, cssVarCls, rootCls, rootClassName),\n style: Object.assign(Object.assign({}, rangePicker === null || rangePicker === void 0 ? void 0 : rangePicker.style), style),\n locale: locale.lang,\n prefixCls: prefixCls,\n getPopupContainer: customGetPopupContainer || getPopupContainer,\n generateConfig: generateConfig,\n components: mergedComponents,\n direction: direction,\n classNames: {\n popup: classNames(hashId, popupClassName || dropdownClassName, cssVarCls, rootCls, rootClassName)\n },\n styles: {\n popup: Object.assign(Object.assign({}, props.popupStyle), {\n zIndex\n })\n },\n allowClear: mergedAllowClear\n }))));\n });\n if (process.env.NODE_ENV !== 'production') {\n RangePicker.displayName = 'RangePicker';\n }\n return RangePicker;\n};\nexport default generateRangePicker;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { forwardRef, useContext, useImperativeHandle } from 'react';\nimport CalendarOutlined from \"@ant-design/icons/es/icons/CalendarOutlined\";\nimport ClockCircleOutlined from \"@ant-design/icons/es/icons/ClockCircleOutlined\";\nimport classNames from 'classnames';\nimport RCPicker from 'rc-picker';\nimport ContextIsolator from '../../_util/ContextIsolator';\nimport { useZIndex } from '../../_util/hooks/useZIndex';\nimport { getMergedStatus, getStatusClassNames } from '../../_util/statusUtils';\nimport { devUseWarning } from '../../_util/warning';\nimport { ConfigContext } from '../../config-provider';\nimport DisabledContext from '../../config-provider/DisabledContext';\nimport useCSSVarCls from '../../config-provider/hooks/useCSSVarCls';\nimport useSize from '../../config-provider/hooks/useSize';\nimport { FormItemInputContext } from '../../form/context';\nimport useVariant from '../../form/hooks/useVariants';\nimport { useLocale } from '../../locale';\nimport { useCompactItemContext } from '../../space/Compact';\nimport enUS from '../locale/en_US';\nimport useStyle from '../style';\nimport { getPlaceholder, useIcons } from '../util';\nimport { MONTH, MONTHPICKER, QUARTER, QUARTERPICKER, TIME, TIMEPICKER, WEEK, WEEKPICKER, YEAR, YEARPICKER } from './constant';\nimport useComponents from './useComponents';\nconst generatePicker = generateConfig => {\n const getPicker = (picker, displayName) => {\n const consumerName = displayName === TIMEPICKER ? 'timePicker' : 'datePicker';\n const Picker = /*#__PURE__*/forwardRef((props, ref) => {\n var _a;\n const {\n prefixCls: customizePrefixCls,\n getPopupContainer: customizeGetPopupContainer,\n components,\n style,\n className,\n rootClassName,\n size: customizeSize,\n bordered,\n placement,\n placeholder,\n popupClassName,\n dropdownClassName,\n disabled: customDisabled,\n status: customStatus,\n variant: customVariant,\n onCalendarChange\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"getPopupContainer\", \"components\", \"style\", \"className\", \"rootClassName\", \"size\", \"bordered\", \"placement\", \"placeholder\", \"popupClassName\", \"dropdownClassName\", \"disabled\", \"status\", \"variant\", \"onCalendarChange\"]);\n const {\n getPrefixCls,\n direction,\n getPopupContainer,\n // Consume different styles according to different names\n [consumerName]: consumerStyle\n } = useContext(ConfigContext);\n const prefixCls = getPrefixCls('picker', customizePrefixCls);\n const {\n compactSize,\n compactItemClassnames\n } = useCompactItemContext(prefixCls, direction);\n const innerRef = React.useRef(null);\n const [variant, enableVariantCls] = useVariant('datePicker', customVariant, bordered);\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n useImperativeHandle(ref, () => innerRef.current);\n const additionalProps = {\n showToday: true\n };\n const mergedPicker = picker || props.picker;\n const rootPrefixCls = getPrefixCls();\n // ==================== Legacy =====================\n const {\n onSelect,\n multiple\n } = restProps;\n const hasLegacyOnSelect = onSelect && picker === 'time' && !multiple;\n const onInternalCalendarChange = (date, dateStr, info) => {\n onCalendarChange === null || onCalendarChange === void 0 ? void 0 : onCalendarChange(date, dateStr, info);\n if (hasLegacyOnSelect) {\n onSelect(date);\n }\n };\n // =================== Warning =====================\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning(displayName || 'DatePicker');\n process.env.NODE_ENV !== \"production\" ? warning(picker !== 'quarter', 'deprecated', `DatePicker.${displayName} is legacy usage. Please use DatePicker[picker='${picker}'] directly.`) : void 0;\n warning.deprecated(!dropdownClassName, 'dropdownClassName', 'popupClassName');\n warning.deprecated(!('bordered' in props), 'bordered', 'variant');\n warning.deprecated(!hasLegacyOnSelect, 'onSelect', 'onCalendarChange');\n }\n // ===================== Icon =====================\n const [mergedAllowClear, removeIcon] = useIcons(props, prefixCls);\n // ================== components ==================\n const mergedComponents = useComponents(components);\n // ===================== Size =====================\n const mergedSize = useSize(ctx => {\n var _a;\n return (_a = customizeSize !== null && customizeSize !== void 0 ? customizeSize : compactSize) !== null && _a !== void 0 ? _a : ctx;\n });\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n // ===================== FormItemInput =====================\n const formItemContext = useContext(FormItemInputContext);\n const {\n hasFeedback,\n status: contextStatus,\n feedbackIcon\n } = formItemContext;\n const suffixNode = /*#__PURE__*/React.createElement(React.Fragment, null, mergedPicker === 'time' ? /*#__PURE__*/React.createElement(ClockCircleOutlined, null) : /*#__PURE__*/React.createElement(CalendarOutlined, null), hasFeedback && feedbackIcon);\n const [contextLocale] = useLocale('DatePicker', enUS);\n const locale = Object.assign(Object.assign({}, contextLocale), props.locale);\n // ============================ zIndex ============================\n const [zIndex] = useZIndex('DatePicker', (_a = props.popupStyle) === null || _a === void 0 ? void 0 : _a.zIndex);\n return wrapCSSVar(/*#__PURE__*/React.createElement(ContextIsolator, {\n space: true\n }, /*#__PURE__*/React.createElement(RCPicker, Object.assign({\n ref: innerRef,\n placeholder: getPlaceholder(locale, mergedPicker, placeholder),\n suffixIcon: suffixNode,\n placement: placement,\n prevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-prev-icon`\n }),\n nextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-next-icon`\n }),\n superPrevIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-prev-icon`\n }),\n superNextIcon: /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-super-next-icon`\n }),\n transitionName: `${rootPrefixCls}-slide-up`,\n picker: picker,\n onCalendarChange: onInternalCalendarChange\n }, additionalProps, restProps, {\n locale: locale.lang,\n className: classNames({\n [`${prefixCls}-${mergedSize}`]: mergedSize,\n [`${prefixCls}-${variant}`]: enableVariantCls\n }, getStatusClassNames(prefixCls, getMergedStatus(contextStatus, customStatus), hasFeedback), hashId, compactItemClassnames, consumerStyle === null || consumerStyle === void 0 ? void 0 : consumerStyle.className, className, cssVarCls, rootCls, rootClassName),\n style: Object.assign(Object.assign({}, consumerStyle === null || consumerStyle === void 0 ? void 0 : consumerStyle.style), style),\n prefixCls: prefixCls,\n getPopupContainer: customizeGetPopupContainer || getPopupContainer,\n generateConfig: generateConfig,\n components: mergedComponents,\n direction: direction,\n disabled: mergedDisabled,\n classNames: {\n popup: classNames(hashId, cssVarCls, rootCls, rootClassName, popupClassName || dropdownClassName)\n },\n styles: {\n popup: Object.assign(Object.assign({}, props.popupStyle), {\n zIndex\n })\n },\n allowClear: mergedAllowClear,\n removeIcon: removeIcon\n }))));\n });\n if (process.env.NODE_ENV !== 'production' && displayName) {\n Picker.displayName = displayName;\n }\n return Picker;\n };\n const DatePicker = getPicker();\n const WeekPicker = getPicker(WEEK, WEEKPICKER);\n const MonthPicker = getPicker(MONTH, MONTHPICKER);\n const YearPicker = getPicker(YEAR, YEARPICKER);\n const QuarterPicker = getPicker(QUARTER, QUARTERPICKER);\n const TimePicker = getPicker(TIME, TIMEPICKER);\n return {\n DatePicker,\n WeekPicker,\n MonthPicker,\n YearPicker,\n TimePicker,\n QuarterPicker\n };\n};\nexport default generatePicker;","\"use client\";\n\nimport generateRangePicker from './generateRangePicker';\nimport generateSinglePicker from './generateSinglePicker';\nconst generatePicker = generateConfig => {\n // =========================== Picker ===========================\n const {\n DatePicker,\n WeekPicker,\n MonthPicker,\n YearPicker,\n TimePicker,\n QuarterPicker\n } = generateSinglePicker(generateConfig);\n // ======================== Range Picker ========================\n const RangePicker = generateRangePicker(generateConfig);\n const MergedDatePicker = DatePicker;\n MergedDatePicker.WeekPicker = WeekPicker;\n MergedDatePicker.MonthPicker = MonthPicker;\n MergedDatePicker.YearPicker = YearPicker;\n MergedDatePicker.RangePicker = RangePicker;\n MergedDatePicker.TimePicker = TimePicker;\n MergedDatePicker.QuarterPicker = QuarterPicker;\n if (process.env.NODE_ENV !== 'production') {\n MergedDatePicker.displayName = 'DatePicker';\n }\n return MergedDatePicker;\n};\nexport default generatePicker;","\"use client\";\n\nimport dayjsGenerateConfig from \"rc-picker/es/generate/dayjs\";\nimport genPurePanel from '../_util/PurePanel';\nimport generatePicker from './generatePicker';\nconst DatePicker = generatePicker(dayjsGenerateConfig);\n// We don't care debug panel\n/* istanbul ignore next */\nconst PurePanel = genPurePanel(DatePicker, 'popupAlign', undefined, 'picker');\nDatePicker._InternalPanelDoNotUseOrYouWillBeFired = PurePanel;\nconst PureRangePanel = genPurePanel(DatePicker.RangePicker, 'popupAlign', undefined, 'picker');\nDatePicker._InternalRangePanelDoNotUseOrYouWillBeFired = PureRangePanel;\nDatePicker.generatePicker = generatePicker;\nexport default DatePicker;","// This icon file is generated automatically.\nvar ShoppingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M832 312H696v-16c0-101.6-82.4-184-184-184s-184 82.4-184 184v16H192c-17.7 0-32 14.3-32 32v536c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V344c0-17.7-14.3-32-32-32zm-432-16c0-61.9 50.1-112 112-112s112 50.1 112 112v16H400v-16zm392 544H232V384h96v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h224v88c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-88h96v456z\" } }] }, \"name\": \"shopping\", \"theme\": \"outlined\" };\nexport default ShoppingOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ShoppingOutlinedSvg from \"@ant-design/icons-svg/es/asn/ShoppingOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ShoppingOutlined = function ShoppingOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ShoppingOutlinedSvg\n }));\n};\n\n/**![shopping](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTgzMiAzMTJINjk2di0xNmMwLTEwMS42LTgyLjQtMTg0LTE4NC0xODRzLTE4NCA4Mi40LTE4NCAxODR2MTZIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjM0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQzMi0xNmMwLTYxLjkgNTAuMS0xMTIgMTEyLTExMnMxMTIgNTAuMSAxMTIgMTEydjE2SDQwMHYtMTZ6bTM5MiA1NDRIMjMyVjM4NGg5NnY4OGMwIDQuNCAzLjYgOCA4IDhoNTZjNC40IDAgOC0zLjYgOC04di04OGgyMjR2ODhjMCA0LjQgMy42IDggOCA4aDU2YzQuNCAwIDgtMy42IDgtOHYtODhoOTZ2NDU2eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(ShoppingOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'ShoppingOutlined';\n}\nexport default RefIcon;","/* eslint-disable no-nested-ternary */\nvar PIXEL_PATTERN = /margin|padding|width|height|max|min|offset/;\nvar removePixel = {\n left: true,\n top: true\n};\nvar floatMap = {\n cssFloat: 1,\n styleFloat: 1,\n float: 1\n};\nfunction getComputedStyle(node) {\n return node.nodeType === 1 ? node.ownerDocument.defaultView.getComputedStyle(node, null) : {};\n}\nfunction getStyleValue(node, type, value) {\n type = type.toLowerCase();\n if (value === 'auto') {\n if (type === 'height') {\n return node.offsetHeight;\n }\n if (type === 'width') {\n return node.offsetWidth;\n }\n }\n if (!(type in removePixel)) {\n removePixel[type] = PIXEL_PATTERN.test(type);\n }\n return removePixel[type] ? parseFloat(value) || 0 : value;\n}\nexport function get(node, name) {\n var length = arguments.length;\n var style = getComputedStyle(node);\n name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;\n return length === 1 ? style : getStyleValue(node, name, style[name] || node.style[name]);\n}\nexport function set(node, name, value) {\n var length = arguments.length;\n name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;\n if (length === 3) {\n if (typeof value === 'number' && PIXEL_PATTERN.test(name)) {\n value = \"\".concat(value, \"px\");\n }\n node.style[name] = value; // Number\n return value;\n }\n for (var x in name) {\n if (name.hasOwnProperty(x)) {\n set(node, x, name[x]);\n }\n }\n return getComputedStyle(node);\n}\nexport function getOuterWidth(el) {\n if (el === document.body) {\n return document.documentElement.clientWidth;\n }\n return el.offsetWidth;\n}\nexport function getOuterHeight(el) {\n if (el === document.body) {\n return window.innerHeight || document.documentElement.clientHeight;\n }\n return el.offsetHeight;\n}\nexport function getDocSize() {\n var width = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth);\n var height = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);\n return {\n width: width,\n height: height\n };\n}\nexport function getClientSize() {\n var width = document.documentElement.clientWidth;\n var height = window.innerHeight || document.documentElement.clientHeight;\n return {\n width: width,\n height: height\n };\n}\nexport function getScroll() {\n return {\n scrollLeft: Math.max(document.documentElement.scrollLeft, document.body.scrollLeft),\n scrollTop: Math.max(document.documentElement.scrollTop, document.body.scrollTop)\n };\n}\nexport function getOffset(node) {\n var box = node.getBoundingClientRect();\n var docElem = document.documentElement;\n\n // < ie8 不支持 win.pageXOffset, 则使用 docElem.scrollLeft\n return {\n left: box.left + (window.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || document.body.clientLeft || 0),\n top: box.top + (window.pageYOffset || docElem.scrollTop) - (docElem.clientTop || document.body.clientTop || 0)\n };\n}","import * as React from 'react';\nexport var PreviewGroupContext = /*#__PURE__*/React.createContext(null);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport Portal from '@rc-component/portal';\nimport classnames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { PreviewGroupContext } from \"./context\";\nvar Operations = function Operations(props) {\n var visible = props.visible,\n maskTransitionName = props.maskTransitionName,\n getContainer = props.getContainer,\n prefixCls = props.prefixCls,\n rootClassName = props.rootClassName,\n icons = props.icons,\n countRender = props.countRender,\n showSwitch = props.showSwitch,\n showProgress = props.showProgress,\n current = props.current,\n transform = props.transform,\n count = props.count,\n scale = props.scale,\n minScale = props.minScale,\n maxScale = props.maxScale,\n closeIcon = props.closeIcon,\n onActive = props.onActive,\n onClose = props.onClose,\n onZoomIn = props.onZoomIn,\n onZoomOut = props.onZoomOut,\n onRotateRight = props.onRotateRight,\n onRotateLeft = props.onRotateLeft,\n onFlipX = props.onFlipX,\n onFlipY = props.onFlipY,\n onReset = props.onReset,\n toolbarRender = props.toolbarRender,\n zIndex = props.zIndex,\n image = props.image;\n var groupContext = useContext(PreviewGroupContext);\n var rotateLeft = icons.rotateLeft,\n rotateRight = icons.rotateRight,\n zoomIn = icons.zoomIn,\n zoomOut = icons.zoomOut,\n close = icons.close,\n left = icons.left,\n right = icons.right,\n flipX = icons.flipX,\n flipY = icons.flipY;\n var toolClassName = \"\".concat(prefixCls, \"-operations-operation\");\n React.useEffect(function () {\n var onKeyDown = function onKeyDown(e) {\n if (e.keyCode === KeyCode.ESC) {\n onClose();\n }\n };\n if (visible) {\n window.addEventListener('keydown', onKeyDown);\n }\n return function () {\n window.removeEventListener('keydown', onKeyDown);\n };\n }, [visible]);\n var handleActive = function handleActive(e, offset) {\n e.preventDefault();\n e.stopPropagation();\n onActive(offset);\n };\n var renderOperation = React.useCallback(function (_ref) {\n var type = _ref.type,\n disabled = _ref.disabled,\n onClick = _ref.onClick,\n icon = _ref.icon;\n return /*#__PURE__*/React.createElement(\"div\", {\n key: type,\n className: classnames(toolClassName, \"\".concat(prefixCls, \"-operations-operation-\").concat(type), _defineProperty({}, \"\".concat(prefixCls, \"-operations-operation-disabled\"), !!disabled)),\n onClick: onClick\n }, icon);\n }, [toolClassName, prefixCls]);\n var switchPrevNode = showSwitch ? renderOperation({\n icon: left,\n onClick: function onClick(e) {\n return handleActive(e, -1);\n },\n type: 'prev',\n disabled: current === 0\n }) : undefined;\n var switchNextNode = showSwitch ? renderOperation({\n icon: right,\n onClick: function onClick(e) {\n return handleActive(e, 1);\n },\n type: 'next',\n disabled: current === count - 1\n }) : undefined;\n var flipYNode = renderOperation({\n icon: flipY,\n onClick: onFlipY,\n type: 'flipY'\n });\n var flipXNode = renderOperation({\n icon: flipX,\n onClick: onFlipX,\n type: 'flipX'\n });\n var rotateLeftNode = renderOperation({\n icon: rotateLeft,\n onClick: onRotateLeft,\n type: 'rotateLeft'\n });\n var rotateRightNode = renderOperation({\n icon: rotateRight,\n onClick: onRotateRight,\n type: 'rotateRight'\n });\n var zoomOutNode = renderOperation({\n icon: zoomOut,\n onClick: onZoomOut,\n type: 'zoomOut',\n disabled: scale <= minScale\n });\n var zoomInNode = renderOperation({\n icon: zoomIn,\n onClick: onZoomIn,\n type: 'zoomIn',\n disabled: scale === maxScale\n });\n var toolbarNode = /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-operations\")\n }, flipYNode, flipXNode, rotateLeftNode, rotateRightNode, zoomOutNode, zoomInNode);\n return /*#__PURE__*/React.createElement(CSSMotion, {\n visible: visible,\n motionName: maskTransitionName\n }, function (_ref2) {\n var className = _ref2.className,\n style = _ref2.style;\n return /*#__PURE__*/React.createElement(Portal, {\n open: true,\n getContainer: getContainer !== null && getContainer !== void 0 ? getContainer : document.body\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(\"\".concat(prefixCls, \"-operations-wrapper\"), className, rootClassName),\n style: _objectSpread(_objectSpread({}, style), {}, {\n zIndex: zIndex\n })\n }, closeIcon === null ? null : /*#__PURE__*/React.createElement(\"button\", {\n className: \"\".concat(prefixCls, \"-close\"),\n onClick: onClose\n }, closeIcon || close), showSwitch && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(\"\".concat(prefixCls, \"-switch-left\"), _defineProperty({}, \"\".concat(prefixCls, \"-switch-left-disabled\"), current === 0)),\n onClick: function onClick(e) {\n return handleActive(e, -1);\n }\n }, left), /*#__PURE__*/React.createElement(\"div\", {\n className: classnames(\"\".concat(prefixCls, \"-switch-right\"), _defineProperty({}, \"\".concat(prefixCls, \"-switch-right-disabled\"), current === count - 1)),\n onClick: function onClick(e) {\n return handleActive(e, 1);\n }\n }, right)), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-footer\")\n }, showProgress && /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-progress\")\n }, countRender ? countRender(current + 1, count) : \"\".concat(current + 1, \" / \").concat(count)), toolbarRender ? toolbarRender(toolbarNode, _objectSpread(_objectSpread({\n icons: {\n prevIcon: switchPrevNode,\n nextIcon: switchNextNode,\n flipYIcon: flipYNode,\n flipXIcon: flipXNode,\n rotateLeftIcon: rotateLeftNode,\n rotateRightIcon: rotateRightNode,\n zoomOutIcon: zoomOutNode,\n zoomInIcon: zoomInNode\n },\n actions: {\n onActive: onActive,\n onFlipY: onFlipY,\n onFlipX: onFlipX,\n onRotateLeft: onRotateLeft,\n onRotateRight: onRotateRight,\n onZoomOut: onZoomOut,\n onZoomIn: onZoomIn,\n onReset: onReset,\n onClose: onClose\n },\n transform: transform\n }, groupContext ? {\n current: current,\n total: count\n } : {}), {}, {\n image: image\n })) : toolbarNode)));\n });\n};\nexport default Operations;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { getClientSize } from \"rc-util/es/Dom/css\";\nimport isEqual from \"rc-util/es/isEqual\";\nimport raf from \"rc-util/es/raf\";\nimport { useRef, useState } from 'react';\nvar initialTransform = {\n x: 0,\n y: 0,\n rotate: 0,\n scale: 1,\n flipX: false,\n flipY: false\n};\nexport default function useImageTransform(imgRef, minScale, maxScale, onTransform) {\n var frame = useRef(null);\n var queue = useRef([]);\n var _useState = useState(initialTransform),\n _useState2 = _slicedToArray(_useState, 2),\n transform = _useState2[0],\n setTransform = _useState2[1];\n var resetTransform = function resetTransform(action) {\n setTransform(initialTransform);\n if (!isEqual(initialTransform, transform)) {\n onTransform === null || onTransform === void 0 || onTransform({\n transform: initialTransform,\n action: action\n });\n }\n };\n\n /** Direct update transform */\n var updateTransform = function updateTransform(newTransform, action) {\n if (frame.current === null) {\n queue.current = [];\n frame.current = raf(function () {\n setTransform(function (preState) {\n var memoState = preState;\n queue.current.forEach(function (queueState) {\n memoState = _objectSpread(_objectSpread({}, memoState), queueState);\n });\n frame.current = null;\n onTransform === null || onTransform === void 0 || onTransform({\n transform: memoState,\n action: action\n });\n return memoState;\n });\n });\n }\n queue.current.push(_objectSpread(_objectSpread({}, transform), newTransform));\n };\n\n /** Scale according to the position of centerX and centerY */\n var dispatchZoomChange = function dispatchZoomChange(ratio, action, centerX, centerY, isTouch) {\n var _imgRef$current = imgRef.current,\n width = _imgRef$current.width,\n height = _imgRef$current.height,\n offsetWidth = _imgRef$current.offsetWidth,\n offsetHeight = _imgRef$current.offsetHeight,\n offsetLeft = _imgRef$current.offsetLeft,\n offsetTop = _imgRef$current.offsetTop;\n var newRatio = ratio;\n var newScale = transform.scale * ratio;\n if (newScale > maxScale) {\n newScale = maxScale;\n newRatio = maxScale / transform.scale;\n } else if (newScale < minScale) {\n // For mobile interactions, allow scaling down to the minimum scale.\n newScale = isTouch ? newScale : minScale;\n newRatio = newScale / transform.scale;\n }\n\n /** Default center point scaling */\n var mergedCenterX = centerX !== null && centerX !== void 0 ? centerX : innerWidth / 2;\n var mergedCenterY = centerY !== null && centerY !== void 0 ? centerY : innerHeight / 2;\n var diffRatio = newRatio - 1;\n /** Deviation calculated from image size */\n var diffImgX = diffRatio * width * 0.5;\n var diffImgY = diffRatio * height * 0.5;\n /** The difference between the click position and the edge of the document */\n var diffOffsetLeft = diffRatio * (mergedCenterX - transform.x - offsetLeft);\n var diffOffsetTop = diffRatio * (mergedCenterY - transform.y - offsetTop);\n /** Final positioning */\n var newX = transform.x - (diffOffsetLeft - diffImgX);\n var newY = transform.y - (diffOffsetTop - diffImgY);\n\n /**\n * When zooming the image\n * When the image size is smaller than the width and height of the window, the position is initialized\n */\n if (ratio < 1 && newScale === 1) {\n var mergedWidth = offsetWidth * newScale;\n var mergedHeight = offsetHeight * newScale;\n var _getClientSize = getClientSize(),\n clientWidth = _getClientSize.width,\n clientHeight = _getClientSize.height;\n if (mergedWidth <= clientWidth && mergedHeight <= clientHeight) {\n newX = 0;\n newY = 0;\n }\n }\n updateTransform({\n x: newX,\n y: newY,\n scale: newScale\n }, action);\n };\n return {\n transform: transform,\n resetTransform: resetTransform,\n updateTransform: updateTransform,\n dispatchZoomChange: dispatchZoomChange\n };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { getClientSize } from \"rc-util/es/Dom/css\";\nfunction fixPoint(key, start, width, clientWidth) {\n var startAddWidth = start + width;\n var offsetStart = (width - clientWidth) / 2;\n if (width > clientWidth) {\n if (start > 0) {\n return _defineProperty({}, key, offsetStart);\n }\n if (start < 0 && startAddWidth < clientWidth) {\n return _defineProperty({}, key, -offsetStart);\n }\n } else if (start < 0 || startAddWidth > clientWidth) {\n return _defineProperty({}, key, start < 0 ? offsetStart : -offsetStart);\n }\n return {};\n}\n\n/**\n * Fix positon x,y point when\n *\n * Ele width && height < client\n * - Back origin\n *\n * - Ele width | height > clientWidth | clientHeight\n * - left | top > 0 -> Back 0\n * - left | top + width | height < clientWidth | clientHeight -> Back left | top + width | height === clientWidth | clientHeight\n *\n * Regardless of other\n */\nexport default function getFixScaleEleTransPosition(width, height, left, top) {\n var _getClientSize = getClientSize(),\n clientWidth = _getClientSize.width,\n clientHeight = _getClientSize.height;\n var fixPos = null;\n if (width <= clientWidth && height <= clientHeight) {\n fixPos = {\n x: 0,\n y: 0\n };\n } else if (width > clientWidth || height > clientHeight) {\n fixPos = _objectSpread(_objectSpread({}, fixPoint('x', left, width, clientWidth)), fixPoint('y', top, height, clientHeight));\n }\n return fixPos;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useRef, useState } from 'react';\nimport { isImageValid } from \"../util\";\nexport default function useStatus(_ref) {\n var src = _ref.src,\n isCustomPlaceholder = _ref.isCustomPlaceholder,\n fallback = _ref.fallback;\n var _useState = useState(isCustomPlaceholder ? 'loading' : 'normal'),\n _useState2 = _slicedToArray(_useState, 2),\n status = _useState2[0],\n setStatus = _useState2[1];\n var isLoaded = useRef(false);\n var isError = status === 'error';\n\n // https://github.com/react-component/image/pull/187\n useEffect(function () {\n var isCurrentSrc = true;\n isImageValid(src).then(function (isValid) {\n // https://github.com/ant-design/ant-design/issues/44948\n // If src changes, the previous setStatus should not be triggered\n if (!isValid && isCurrentSrc) {\n setStatus('error');\n }\n });\n return function () {\n isCurrentSrc = false;\n };\n }, [src]);\n useEffect(function () {\n if (isCustomPlaceholder && !isLoaded.current) {\n setStatus('loading');\n } else if (isError) {\n setStatus('normal');\n }\n }, [src]);\n var onLoad = function onLoad() {\n setStatus('normal');\n };\n var getImgRef = function getImgRef(img) {\n isLoaded.current = false;\n if (status === 'loading' && img !== null && img !== void 0 && img.complete && (img.naturalWidth || img.naturalHeight)) {\n isLoaded.current = true;\n onLoad();\n }\n };\n var srcAndOnload = isError && fallback ? {\n src: fallback\n } : {\n onLoad: onLoad,\n src: src\n };\n return [getImgRef, srcAndOnload, status];\n}","export function isImageValid(src) {\n return new Promise(function (resolve) {\n var img = document.createElement('img');\n img.onerror = function () {\n return resolve(false);\n };\n img.onload = function () {\n return resolve(true);\n };\n img.src = src;\n });\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { useEffect, useRef, useState } from 'react';\nimport getFixScaleEleTransPosition from \"../getFixScaleEleTransPosition\";\nfunction getDistance(a, b) {\n var x = a.x - b.x;\n var y = a.y - b.y;\n return Math.hypot(x, y);\n}\nfunction getCenter(oldPoint1, oldPoint2, newPoint1, newPoint2) {\n // Calculate the distance each point has moved\n var distance1 = getDistance(oldPoint1, newPoint1);\n var distance2 = getDistance(oldPoint2, newPoint2);\n\n // If both distances are 0, return the original points\n if (distance1 === 0 && distance2 === 0) {\n return [oldPoint1.x, oldPoint1.y];\n }\n\n // Calculate the ratio of the distances\n var ratio = distance1 / (distance1 + distance2);\n\n // Calculate the new center point based on the ratio\n var x = oldPoint1.x + ratio * (oldPoint2.x - oldPoint1.x);\n var y = oldPoint1.y + ratio * (oldPoint2.y - oldPoint1.y);\n return [x, y];\n}\nexport default function useTouchEvent(imgRef, movable, visible, minScale, transform, updateTransform, dispatchZoomChange) {\n var rotate = transform.rotate,\n scale = transform.scale,\n x = transform.x,\n y = transform.y;\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isTouching = _useState2[0],\n setIsTouching = _useState2[1];\n var touchPointInfo = useRef({\n point1: {\n x: 0,\n y: 0\n },\n point2: {\n x: 0,\n y: 0\n },\n eventType: 'none'\n });\n var updateTouchPointInfo = function updateTouchPointInfo(values) {\n touchPointInfo.current = _objectSpread(_objectSpread({}, touchPointInfo.current), values);\n };\n var onTouchStart = function onTouchStart(event) {\n if (!movable) return;\n event.stopPropagation();\n setIsTouching(true);\n var _event$touches = event.touches,\n touches = _event$touches === void 0 ? [] : _event$touches;\n if (touches.length > 1) {\n // touch zoom\n updateTouchPointInfo({\n point1: {\n x: touches[0].clientX,\n y: touches[0].clientY\n },\n point2: {\n x: touches[1].clientX,\n y: touches[1].clientY\n },\n eventType: 'touchZoom'\n });\n } else {\n // touch move\n updateTouchPointInfo({\n point1: {\n x: touches[0].clientX - x,\n y: touches[0].clientY - y\n },\n eventType: 'move'\n });\n }\n };\n var onTouchMove = function onTouchMove(event) {\n var _event$touches2 = event.touches,\n touches = _event$touches2 === void 0 ? [] : _event$touches2;\n var _touchPointInfo$curre = touchPointInfo.current,\n point1 = _touchPointInfo$curre.point1,\n point2 = _touchPointInfo$curre.point2,\n eventType = _touchPointInfo$curre.eventType;\n if (touches.length > 1 && eventType === 'touchZoom') {\n // touch zoom\n var newPoint1 = {\n x: touches[0].clientX,\n y: touches[0].clientY\n };\n var newPoint2 = {\n x: touches[1].clientX,\n y: touches[1].clientY\n };\n var _getCenter = getCenter(point1, point2, newPoint1, newPoint2),\n _getCenter2 = _slicedToArray(_getCenter, 2),\n centerX = _getCenter2[0],\n centerY = _getCenter2[1];\n var ratio = getDistance(newPoint1, newPoint2) / getDistance(point1, point2);\n dispatchZoomChange(ratio, 'touchZoom', centerX, centerY, true);\n updateTouchPointInfo({\n point1: newPoint1,\n point2: newPoint2,\n eventType: 'touchZoom'\n });\n } else if (eventType === 'move') {\n // touch move\n updateTransform({\n x: touches[0].clientX - point1.x,\n y: touches[0].clientY - point1.y\n }, 'move');\n updateTouchPointInfo({\n eventType: 'move'\n });\n }\n };\n var onTouchEnd = function onTouchEnd() {\n if (!visible) return;\n if (isTouching) {\n setIsTouching(false);\n }\n updateTouchPointInfo({\n eventType: 'none'\n });\n if (minScale > scale) {\n /** When the scaling ratio is less than the minimum scaling ratio, reset the scaling ratio */\n return updateTransform({\n x: 0,\n y: 0,\n scale: minScale\n }, 'touchZoom');\n }\n var width = imgRef.current.offsetWidth * scale;\n var height = imgRef.current.offsetHeight * scale;\n // eslint-disable-next-line @typescript-eslint/no-shadow\n var _imgRef$current$getBo = imgRef.current.getBoundingClientRect(),\n left = _imgRef$current$getBo.left,\n top = _imgRef$current$getBo.top;\n var isRotate = rotate % 180 !== 0;\n var fixState = getFixScaleEleTransPosition(isRotate ? height : width, isRotate ? width : height, left, top);\n if (fixState) {\n updateTransform(_objectSpread({}, fixState), 'dragRebound');\n }\n };\n useEffect(function () {\n var onTouchMoveListener;\n if (visible && movable) {\n onTouchMoveListener = addEventListener(window, 'touchmove', function (e) {\n return e.preventDefault();\n }, {\n passive: false\n });\n }\n return function () {\n var _onTouchMoveListener;\n (_onTouchMoveListener = onTouchMoveListener) === null || _onTouchMoveListener === void 0 || _onTouchMoveListener.remove();\n };\n }, [visible, movable]);\n return {\n isTouching: isTouching,\n onTouchStart: onTouchStart,\n onTouchMove: onTouchMove,\n onTouchEnd: onTouchEnd\n };\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"fallback\", \"src\", \"imgRef\"],\n _excluded2 = [\"prefixCls\", \"src\", \"alt\", \"imageInfo\", \"fallback\", \"movable\", \"onClose\", \"visible\", \"icons\", \"rootClassName\", \"closeIcon\", \"getContainer\", \"current\", \"count\", \"countRender\", \"scaleStep\", \"minScale\", \"maxScale\", \"transitionName\", \"maskTransitionName\", \"imageRender\", \"imgCommonProps\", \"toolbarRender\", \"onTransform\", \"onChange\"];\nimport classnames from 'classnames';\nimport Dialog from 'rc-dialog';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport KeyCode from \"rc-util/es/KeyCode\";\nimport React, { useContext, useEffect, useRef, useState } from 'react';\nimport Operations from \"./Operations\";\nimport { PreviewGroupContext } from \"./context\";\nimport useImageTransform from \"./hooks/useImageTransform\";\nimport useMouseEvent from \"./hooks/useMouseEvent\";\nimport useStatus from \"./hooks/useStatus\";\nimport useTouchEvent from \"./hooks/useTouchEvent\";\nimport { BASE_SCALE_RATIO } from \"./previewConfig\";\nvar PreviewImage = function PreviewImage(_ref) {\n var fallback = _ref.fallback,\n src = _ref.src,\n imgRef = _ref.imgRef,\n props = _objectWithoutProperties(_ref, _excluded);\n var _useStatus = useStatus({\n src: src,\n fallback: fallback\n }),\n _useStatus2 = _slicedToArray(_useStatus, 2),\n getImgRef = _useStatus2[0],\n srcAndOnload = _useStatus2[1];\n return /*#__PURE__*/React.createElement(\"img\", _extends({\n ref: function ref(_ref2) {\n imgRef.current = _ref2;\n getImgRef(_ref2);\n }\n }, props, srcAndOnload));\n};\nvar Preview = function Preview(props) {\n var prefixCls = props.prefixCls,\n src = props.src,\n alt = props.alt,\n imageInfo = props.imageInfo,\n fallback = props.fallback,\n _props$movable = props.movable,\n movable = _props$movable === void 0 ? true : _props$movable,\n onClose = props.onClose,\n visible = props.visible,\n _props$icons = props.icons,\n icons = _props$icons === void 0 ? {} : _props$icons,\n rootClassName = props.rootClassName,\n closeIcon = props.closeIcon,\n getContainer = props.getContainer,\n _props$current = props.current,\n current = _props$current === void 0 ? 0 : _props$current,\n _props$count = props.count,\n count = _props$count === void 0 ? 1 : _props$count,\n countRender = props.countRender,\n _props$scaleStep = props.scaleStep,\n scaleStep = _props$scaleStep === void 0 ? 0.5 : _props$scaleStep,\n _props$minScale = props.minScale,\n minScale = _props$minScale === void 0 ? 1 : _props$minScale,\n _props$maxScale = props.maxScale,\n maxScale = _props$maxScale === void 0 ? 50 : _props$maxScale,\n _props$transitionName = props.transitionName,\n transitionName = _props$transitionName === void 0 ? 'zoom' : _props$transitionName,\n _props$maskTransition = props.maskTransitionName,\n maskTransitionName = _props$maskTransition === void 0 ? 'fade' : _props$maskTransition,\n imageRender = props.imageRender,\n imgCommonProps = props.imgCommonProps,\n toolbarRender = props.toolbarRender,\n onTransform = props.onTransform,\n onChange = props.onChange,\n restProps = _objectWithoutProperties(props, _excluded2);\n var imgRef = useRef();\n var groupContext = useContext(PreviewGroupContext);\n var showLeftOrRightSwitches = groupContext && count > 1;\n var showOperationsProgress = groupContext && count >= 1;\n var _useState = useState(true),\n _useState2 = _slicedToArray(_useState, 2),\n enableTransition = _useState2[0],\n setEnableTransition = _useState2[1];\n var _useImageTransform = useImageTransform(imgRef, minScale, maxScale, onTransform),\n transform = _useImageTransform.transform,\n resetTransform = _useImageTransform.resetTransform,\n updateTransform = _useImageTransform.updateTransform,\n dispatchZoomChange = _useImageTransform.dispatchZoomChange;\n var _useMouseEvent = useMouseEvent(imgRef, movable, visible, scaleStep, transform, updateTransform, dispatchZoomChange),\n isMoving = _useMouseEvent.isMoving,\n onMouseDown = _useMouseEvent.onMouseDown,\n onWheel = _useMouseEvent.onWheel;\n var _useTouchEvent = useTouchEvent(imgRef, movable, visible, minScale, transform, updateTransform, dispatchZoomChange),\n isTouching = _useTouchEvent.isTouching,\n onTouchStart = _useTouchEvent.onTouchStart,\n onTouchMove = _useTouchEvent.onTouchMove,\n onTouchEnd = _useTouchEvent.onTouchEnd;\n var rotate = transform.rotate,\n scale = transform.scale;\n var wrapClassName = classnames(_defineProperty({}, \"\".concat(prefixCls, \"-moving\"), isMoving));\n useEffect(function () {\n if (!enableTransition) {\n setEnableTransition(true);\n }\n }, [enableTransition]);\n var onAfterClose = function onAfterClose() {\n resetTransform('close');\n };\n var onZoomIn = function onZoomIn() {\n dispatchZoomChange(BASE_SCALE_RATIO + scaleStep, 'zoomIn');\n };\n var onZoomOut = function onZoomOut() {\n dispatchZoomChange(BASE_SCALE_RATIO / (BASE_SCALE_RATIO + scaleStep), 'zoomOut');\n };\n var onRotateRight = function onRotateRight() {\n updateTransform({\n rotate: rotate + 90\n }, 'rotateRight');\n };\n var onRotateLeft = function onRotateLeft() {\n updateTransform({\n rotate: rotate - 90\n }, 'rotateLeft');\n };\n var onFlipX = function onFlipX() {\n updateTransform({\n flipX: !transform.flipX\n }, 'flipX');\n };\n var onFlipY = function onFlipY() {\n updateTransform({\n flipY: !transform.flipY\n }, 'flipY');\n };\n var onReset = function onReset() {\n resetTransform('reset');\n };\n var onActive = function onActive(offset) {\n var position = current + offset;\n if (!Number.isInteger(position) || position < 0 || position > count - 1) {\n return;\n }\n setEnableTransition(false);\n resetTransform(offset < 0 ? 'prev' : 'next');\n onChange === null || onChange === void 0 || onChange(position, current);\n };\n var onKeyDown = function onKeyDown(event) {\n if (!visible || !showLeftOrRightSwitches) return;\n if (event.keyCode === KeyCode.LEFT) {\n onActive(-1);\n } else if (event.keyCode === KeyCode.RIGHT) {\n onActive(1);\n }\n };\n var onDoubleClick = function onDoubleClick(event) {\n if (visible) {\n if (scale !== 1) {\n updateTransform({\n x: 0,\n y: 0,\n scale: 1\n }, 'doubleClick');\n } else {\n dispatchZoomChange(BASE_SCALE_RATIO + scaleStep, 'doubleClick', event.clientX, event.clientY);\n }\n }\n };\n useEffect(function () {\n var onKeyDownListener = addEventListener(window, 'keydown', onKeyDown, false);\n return function () {\n onKeyDownListener.remove();\n };\n }, [visible, showLeftOrRightSwitches, current]);\n var imgNode = /*#__PURE__*/React.createElement(PreviewImage, _extends({}, imgCommonProps, {\n width: props.width,\n height: props.height,\n imgRef: imgRef,\n className: \"\".concat(prefixCls, \"-img\"),\n alt: alt,\n style: {\n transform: \"translate3d(\".concat(transform.x, \"px, \").concat(transform.y, \"px, 0) scale3d(\").concat(transform.flipX ? '-' : '').concat(scale, \", \").concat(transform.flipY ? '-' : '').concat(scale, \", 1) rotate(\").concat(rotate, \"deg)\"),\n transitionDuration: (!enableTransition || isTouching) && '0s'\n },\n fallback: fallback,\n src: src,\n onWheel: onWheel,\n onMouseDown: onMouseDown,\n onDoubleClick: onDoubleClick,\n onTouchStart: onTouchStart,\n onTouchMove: onTouchMove,\n onTouchEnd: onTouchEnd,\n onTouchCancel: onTouchEnd\n }));\n var image = _objectSpread({\n url: src,\n alt: alt\n }, imageInfo);\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Dialog, _extends({\n transitionName: transitionName,\n maskTransitionName: maskTransitionName,\n closable: false,\n keyboard: true,\n prefixCls: prefixCls,\n onClose: onClose,\n visible: visible,\n classNames: {\n wrapper: wrapClassName\n },\n rootClassName: rootClassName,\n getContainer: getContainer\n }, restProps, {\n afterClose: onAfterClose\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-img-wrapper\")\n }, imageRender ? imageRender(imgNode, _objectSpread({\n transform: transform,\n image: image\n }, groupContext ? {\n current: current\n } : {})) : imgNode)), /*#__PURE__*/React.createElement(Operations, {\n visible: visible,\n transform: transform,\n maskTransitionName: maskTransitionName,\n closeIcon: closeIcon,\n getContainer: getContainer,\n prefixCls: prefixCls,\n rootClassName: rootClassName,\n icons: icons,\n countRender: countRender,\n showSwitch: showLeftOrRightSwitches,\n showProgress: showOperationsProgress,\n current: current,\n count: count,\n scale: scale,\n minScale: minScale,\n maxScale: maxScale,\n toolbarRender: toolbarRender,\n onActive: onActive,\n onZoomIn: onZoomIn,\n onZoomOut: onZoomOut,\n onRotateRight: onRotateRight,\n onRotateLeft: onRotateLeft,\n onFlipX: onFlipX,\n onFlipY: onFlipY,\n onClose: onClose,\n onReset: onReset,\n zIndex: restProps.zIndex !== undefined ? restProps.zIndex + 1 : undefined,\n image: image\n }));\n};\nexport default Preview;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport { warning } from \"rc-util/es/warning\";\nimport { useEffect, useRef, useState } from 'react';\nimport getFixScaleEleTransPosition from \"../getFixScaleEleTransPosition\";\nimport { BASE_SCALE_RATIO, WHEEL_MAX_SCALE_RATIO } from \"../previewConfig\";\nexport default function useMouseEvent(imgRef, movable, visible, scaleStep, transform, updateTransform, dispatchZoomChange) {\n var rotate = transform.rotate,\n scale = transform.scale,\n x = transform.x,\n y = transform.y;\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isMoving = _useState2[0],\n setMoving = _useState2[1];\n var startPositionInfo = useRef({\n diffX: 0,\n diffY: 0,\n transformX: 0,\n transformY: 0\n });\n var onMouseDown = function onMouseDown(event) {\n // Only allow main button\n if (!movable || event.button !== 0) return;\n event.preventDefault();\n event.stopPropagation();\n startPositionInfo.current = {\n diffX: event.pageX - x,\n diffY: event.pageY - y,\n transformX: x,\n transformY: y\n };\n setMoving(true);\n };\n var onMouseMove = function onMouseMove(event) {\n if (visible && isMoving) {\n updateTransform({\n x: event.pageX - startPositionInfo.current.diffX,\n y: event.pageY - startPositionInfo.current.diffY\n }, 'move');\n }\n };\n var onMouseUp = function onMouseUp() {\n if (visible && isMoving) {\n setMoving(false);\n\n /** No need to restore the position when the picture is not moved, So as not to interfere with the click */\n var _startPositionInfo$cu = startPositionInfo.current,\n transformX = _startPositionInfo$cu.transformX,\n transformY = _startPositionInfo$cu.transformY;\n var hasChangedPosition = x !== transformX && y !== transformY;\n if (!hasChangedPosition) return;\n var width = imgRef.current.offsetWidth * scale;\n var height = imgRef.current.offsetHeight * scale;\n // eslint-disable-next-line @typescript-eslint/no-shadow\n var _imgRef$current$getBo = imgRef.current.getBoundingClientRect(),\n left = _imgRef$current$getBo.left,\n top = _imgRef$current$getBo.top;\n var isRotate = rotate % 180 !== 0;\n var fixState = getFixScaleEleTransPosition(isRotate ? height : width, isRotate ? width : height, left, top);\n if (fixState) {\n updateTransform(_objectSpread({}, fixState), 'dragRebound');\n }\n }\n };\n var onWheel = function onWheel(event) {\n if (!visible || event.deltaY == 0) return;\n // Scale ratio depends on the deltaY size\n var scaleRatio = Math.abs(event.deltaY / 100);\n // Limit the maximum scale ratio\n var mergedScaleRatio = Math.min(scaleRatio, WHEEL_MAX_SCALE_RATIO);\n // Scale the ratio each time\n var ratio = BASE_SCALE_RATIO + mergedScaleRatio * scaleStep;\n if (event.deltaY > 0) {\n ratio = BASE_SCALE_RATIO / ratio;\n }\n dispatchZoomChange(ratio, 'wheel', event.clientX, event.clientY);\n };\n useEffect(function () {\n var onTopMouseUpListener;\n var onTopMouseMoveListener;\n var onMouseUpListener;\n var onMouseMoveListener;\n if (movable) {\n onMouseUpListener = addEventListener(window, 'mouseup', onMouseUp, false);\n onMouseMoveListener = addEventListener(window, 'mousemove', onMouseMove, false);\n try {\n // Resolve if in iframe lost event\n /* istanbul ignore next */\n if (window.top !== window.self) {\n onTopMouseUpListener = addEventListener(window.top, 'mouseup', onMouseUp, false);\n onTopMouseMoveListener = addEventListener(window.top, 'mousemove', onMouseMove, false);\n }\n } catch (error) {\n /* istanbul ignore next */\n warning(false, \"[rc-image] \".concat(error));\n }\n }\n return function () {\n var _onMouseUpListener, _onMouseMoveListener, _onTopMouseUpListener, _onTopMouseMoveListen;\n (_onMouseUpListener = onMouseUpListener) === null || _onMouseUpListener === void 0 || _onMouseUpListener.remove();\n (_onMouseMoveListener = onMouseMoveListener) === null || _onMouseMoveListener === void 0 || _onMouseMoveListener.remove();\n /* istanbul ignore next */\n (_onTopMouseUpListener = onTopMouseUpListener) === null || _onTopMouseUpListener === void 0 || _onTopMouseUpListener.remove();\n /* istanbul ignore next */\n (_onTopMouseMoveListen = onTopMouseMoveListener) === null || _onTopMouseMoveListen === void 0 || _onTopMouseMoveListen.remove();\n };\n }, [visible, isMoving, x, y, rotate, movable]);\n return {\n isMoving: isMoving,\n onMouseDown: onMouseDown,\n onMouseMove: onMouseMove,\n onMouseUp: onMouseUp,\n onWheel: onWheel\n };\n}","/** Scale the ratio base */\nexport var BASE_SCALE_RATIO = 1;\n/** The maximum zoom ratio when the mouse zooms in, adjustable */\nexport var WHEEL_MAX_SCALE_RATIO = 1;","export var COMMON_PROPS = ['crossOrigin', 'decoding', 'draggable', 'loading', 'referrerPolicy', 'sizes', 'srcSet', 'useMap', 'alt'];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"visible\", \"onVisibleChange\", \"getContainer\", \"current\", \"movable\", \"minScale\", \"maxScale\", \"countRender\", \"closeIcon\", \"onChange\", \"onTransform\", \"toolbarRender\", \"imageRender\"],\n _excluded2 = [\"src\"];\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { useState } from 'react';\nimport Preview from \"./Preview\";\nimport { PreviewGroupContext } from \"./context\";\nimport usePreviewItems from \"./hooks/usePreviewItems\";\nvar Group = function Group(_ref) {\n var _mergedItems$current;\n var _ref$previewPrefixCls = _ref.previewPrefixCls,\n previewPrefixCls = _ref$previewPrefixCls === void 0 ? 'rc-image-preview' : _ref$previewPrefixCls,\n children = _ref.children,\n _ref$icons = _ref.icons,\n icons = _ref$icons === void 0 ? {} : _ref$icons,\n items = _ref.items,\n preview = _ref.preview,\n fallback = _ref.fallback;\n var _ref2 = _typeof(preview) === 'object' ? preview : {},\n previewVisible = _ref2.visible,\n onVisibleChange = _ref2.onVisibleChange,\n getContainer = _ref2.getContainer,\n currentIndex = _ref2.current,\n movable = _ref2.movable,\n minScale = _ref2.minScale,\n maxScale = _ref2.maxScale,\n countRender = _ref2.countRender,\n closeIcon = _ref2.closeIcon,\n onChange = _ref2.onChange,\n onTransform = _ref2.onTransform,\n toolbarRender = _ref2.toolbarRender,\n imageRender = _ref2.imageRender,\n dialogProps = _objectWithoutProperties(_ref2, _excluded);\n\n // ========================== Items ===========================\n var _usePreviewItems = usePreviewItems(items),\n _usePreviewItems2 = _slicedToArray(_usePreviewItems, 3),\n mergedItems = _usePreviewItems2[0],\n register = _usePreviewItems2[1],\n fromItems = _usePreviewItems2[2];\n\n // ========================= Preview ==========================\n // >>> Index\n var _useMergedState = useMergedState(0, {\n value: currentIndex\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n current = _useMergedState2[0],\n setCurrent = _useMergedState2[1];\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n keepOpenIndex = _useState2[0],\n setKeepOpenIndex = _useState2[1];\n\n // >>> Image\n var _ref3 = ((_mergedItems$current = mergedItems[current]) === null || _mergedItems$current === void 0 ? void 0 : _mergedItems$current.data) || {},\n src = _ref3.src,\n imgCommonProps = _objectWithoutProperties(_ref3, _excluded2);\n // >>> Visible\n var _useMergedState3 = useMergedState(!!previewVisible, {\n value: previewVisible,\n onChange: function onChange(val, prevVal) {\n onVisibleChange === null || onVisibleChange === void 0 || onVisibleChange(val, prevVal, current);\n }\n }),\n _useMergedState4 = _slicedToArray(_useMergedState3, 2),\n isShowPreview = _useMergedState4[0],\n setShowPreview = _useMergedState4[1];\n\n // >>> Position\n var _useState3 = useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n mousePosition = _useState4[0],\n setMousePosition = _useState4[1];\n var onPreviewFromImage = React.useCallback(function (id, imageSrc, mouseX, mouseY) {\n var index = fromItems ? mergedItems.findIndex(function (item) {\n return item.data.src === imageSrc;\n }) : mergedItems.findIndex(function (item) {\n return item.id === id;\n });\n setCurrent(index < 0 ? 0 : index);\n setShowPreview(true);\n setMousePosition({\n x: mouseX,\n y: mouseY\n });\n setKeepOpenIndex(true);\n }, [mergedItems, fromItems]);\n\n // Reset current when reopen\n React.useEffect(function () {\n if (isShowPreview) {\n if (!keepOpenIndex) {\n setCurrent(0);\n }\n } else {\n setKeepOpenIndex(false);\n }\n }, [isShowPreview]);\n\n // ========================== Events ==========================\n var onInternalChange = function onInternalChange(next, prev) {\n setCurrent(next);\n onChange === null || onChange === void 0 || onChange(next, prev);\n };\n var onPreviewClose = function onPreviewClose() {\n setShowPreview(false);\n setMousePosition(null);\n };\n\n // ========================= Context ==========================\n var previewGroupContext = React.useMemo(function () {\n return {\n register: register,\n onPreview: onPreviewFromImage\n };\n }, [register, onPreviewFromImage]);\n\n // ========================== Render ==========================\n return /*#__PURE__*/React.createElement(PreviewGroupContext.Provider, {\n value: previewGroupContext\n }, children, /*#__PURE__*/React.createElement(Preview, _extends({\n \"aria-hidden\": !isShowPreview,\n movable: movable,\n visible: isShowPreview,\n prefixCls: previewPrefixCls,\n closeIcon: closeIcon,\n onClose: onPreviewClose,\n mousePosition: mousePosition,\n imgCommonProps: imgCommonProps,\n src: src,\n fallback: fallback,\n icons: icons,\n minScale: minScale,\n maxScale: maxScale,\n getContainer: getContainer,\n current: current,\n count: mergedItems.length,\n countRender: countRender,\n onTransform: onTransform,\n toolbarRender: toolbarRender,\n imageRender: imageRender,\n onChange: onInternalChange\n }, dialogProps)));\n};\nexport default Group;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { PreviewGroupContext } from \"../context\";\nvar uid = 0;\nexport default function useRegisterImage(canPreview, data) {\n var _React$useState = React.useState(function () {\n uid += 1;\n return String(uid);\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n id = _React$useState2[0];\n var groupContext = React.useContext(PreviewGroupContext);\n var registerData = {\n data: data,\n canPreview: canPreview\n };\n\n // Keep order start\n // Resolve https://github.com/ant-design/ant-design/issues/28881\n // Only need unRegister when component unMount\n React.useEffect(function () {\n if (groupContext) {\n return groupContext.register(id, registerData);\n }\n }, []);\n React.useEffect(function () {\n if (groupContext) {\n groupContext.register(id, registerData);\n }\n }, [canPreview, data]);\n return id;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"src\", \"alt\", \"onPreviewClose\", \"prefixCls\", \"previewPrefixCls\", \"placeholder\", \"fallback\", \"width\", \"height\", \"style\", \"preview\", \"className\", \"onClick\", \"onError\", \"wrapperClassName\", \"wrapperStyle\", \"rootClassName\"],\n _excluded2 = [\"src\", \"visible\", \"onVisibleChange\", \"getContainer\", \"mask\", \"maskClassName\", \"movable\", \"icons\", \"scaleStep\", \"minScale\", \"maxScale\", \"imageRender\", \"toolbarRender\"];\nimport cn from 'classnames';\nimport { getOffset } from \"rc-util/es/Dom/css\";\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport * as React from 'react';\nimport { useContext, useMemo, useState } from 'react';\nimport Preview from \"./Preview\";\nimport PreviewGroup from \"./PreviewGroup\";\nimport { COMMON_PROPS } from \"./common\";\nimport { PreviewGroupContext } from \"./context\";\nimport useRegisterImage from \"./hooks/useRegisterImage\";\nimport useStatus from \"./hooks/useStatus\";\nvar ImageInternal = function ImageInternal(props) {\n var imgSrc = props.src,\n alt = props.alt,\n onInitialPreviewClose = props.onPreviewClose,\n _props$prefixCls = props.prefixCls,\n prefixCls = _props$prefixCls === void 0 ? 'rc-image' : _props$prefixCls,\n _props$previewPrefixC = props.previewPrefixCls,\n previewPrefixCls = _props$previewPrefixC === void 0 ? \"\".concat(prefixCls, \"-preview\") : _props$previewPrefixC,\n placeholder = props.placeholder,\n fallback = props.fallback,\n width = props.width,\n height = props.height,\n style = props.style,\n _props$preview = props.preview,\n preview = _props$preview === void 0 ? true : _props$preview,\n className = props.className,\n onClick = props.onClick,\n onError = props.onError,\n wrapperClassName = props.wrapperClassName,\n wrapperStyle = props.wrapperStyle,\n rootClassName = props.rootClassName,\n otherProps = _objectWithoutProperties(props, _excluded);\n var isCustomPlaceholder = placeholder && placeholder !== true;\n var _ref = _typeof(preview) === 'object' ? preview : {},\n previewSrc = _ref.src,\n _ref$visible = _ref.visible,\n previewVisible = _ref$visible === void 0 ? undefined : _ref$visible,\n _ref$onVisibleChange = _ref.onVisibleChange,\n onPreviewVisibleChange = _ref$onVisibleChange === void 0 ? onInitialPreviewClose : _ref$onVisibleChange,\n _ref$getContainer = _ref.getContainer,\n getPreviewContainer = _ref$getContainer === void 0 ? undefined : _ref$getContainer,\n previewMask = _ref.mask,\n maskClassName = _ref.maskClassName,\n movable = _ref.movable,\n icons = _ref.icons,\n scaleStep = _ref.scaleStep,\n minScale = _ref.minScale,\n maxScale = _ref.maxScale,\n imageRender = _ref.imageRender,\n toolbarRender = _ref.toolbarRender,\n dialogProps = _objectWithoutProperties(_ref, _excluded2);\n var src = previewSrc !== null && previewSrc !== void 0 ? previewSrc : imgSrc;\n var _useMergedState = useMergedState(!!previewVisible, {\n value: previewVisible,\n onChange: onPreviewVisibleChange\n }),\n _useMergedState2 = _slicedToArray(_useMergedState, 2),\n isShowPreview = _useMergedState2[0],\n setShowPreview = _useMergedState2[1];\n var _useStatus = useStatus({\n src: imgSrc,\n isCustomPlaceholder: isCustomPlaceholder,\n fallback: fallback\n }),\n _useStatus2 = _slicedToArray(_useStatus, 3),\n getImgRef = _useStatus2[0],\n srcAndOnload = _useStatus2[1],\n status = _useStatus2[2];\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n mousePosition = _useState2[0],\n setMousePosition = _useState2[1];\n var groupContext = useContext(PreviewGroupContext);\n var canPreview = !!preview;\n var onPreviewClose = function onPreviewClose() {\n setShowPreview(false);\n setMousePosition(null);\n };\n var wrapperClass = cn(prefixCls, wrapperClassName, rootClassName, _defineProperty({}, \"\".concat(prefixCls, \"-error\"), status === 'error'));\n\n // ========================= ImageProps =========================\n var imgCommonProps = useMemo(function () {\n var obj = {};\n COMMON_PROPS.forEach(function (prop) {\n if (props[prop] !== undefined) {\n obj[prop] = props[prop];\n }\n });\n return obj;\n }, COMMON_PROPS.map(function (prop) {\n return props[prop];\n }));\n\n // ========================== Register ==========================\n var registerData = useMemo(function () {\n return _objectSpread(_objectSpread({}, imgCommonProps), {}, {\n src: src\n });\n }, [src, imgCommonProps]);\n var imageId = useRegisterImage(canPreview, registerData);\n\n // ========================== Preview ===========================\n var onPreview = function onPreview(e) {\n var _getOffset = getOffset(e.target),\n left = _getOffset.left,\n top = _getOffset.top;\n if (groupContext) {\n groupContext.onPreview(imageId, src, left, top);\n } else {\n setMousePosition({\n x: left,\n y: top\n });\n setShowPreview(true);\n }\n onClick === null || onClick === void 0 || onClick(e);\n };\n\n // =========================== Render ===========================\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", _extends({}, otherProps, {\n className: wrapperClass,\n onClick: canPreview ? onPreview : onClick,\n style: _objectSpread({\n width: width,\n height: height\n }, wrapperStyle)\n }), /*#__PURE__*/React.createElement(\"img\", _extends({}, imgCommonProps, {\n className: cn(\"\".concat(prefixCls, \"-img\"), _defineProperty({}, \"\".concat(prefixCls, \"-img-placeholder\"), placeholder === true), className),\n style: _objectSpread({\n height: height\n }, style),\n ref: getImgRef\n }, srcAndOnload, {\n width: width,\n height: height,\n onError: onError\n })), status === 'loading' && /*#__PURE__*/React.createElement(\"div\", {\n \"aria-hidden\": \"true\",\n className: \"\".concat(prefixCls, \"-placeholder\")\n }, placeholder), previewMask && canPreview && /*#__PURE__*/React.createElement(\"div\", {\n className: cn(\"\".concat(prefixCls, \"-mask\"), maskClassName),\n style: {\n display: (style === null || style === void 0 ? void 0 : style.display) === 'none' ? 'none' : undefined\n }\n }, previewMask)), !groupContext && canPreview && /*#__PURE__*/React.createElement(Preview, _extends({\n \"aria-hidden\": !isShowPreview,\n visible: isShowPreview,\n prefixCls: previewPrefixCls,\n onClose: onPreviewClose,\n mousePosition: mousePosition,\n src: src,\n alt: alt,\n imageInfo: {\n width: width,\n height: height\n },\n fallback: fallback,\n getContainer: getPreviewContainer,\n icons: icons,\n movable: movable,\n scaleStep: scaleStep,\n minScale: minScale,\n maxScale: maxScale,\n rootClassName: rootClassName,\n imageRender: imageRender,\n imgCommonProps: imgCommonProps,\n toolbarRender: toolbarRender\n }, dialogProps)));\n};\nImageInternal.PreviewGroup = PreviewGroup;\nif (process.env.NODE_ENV !== 'production') {\n ImageInternal.displayName = 'Image';\n}\nexport default ImageInternal;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { COMMON_PROPS } from \"../common\";\n/**\n * Merge props provided `items` or context collected images\n */\nexport default function usePreviewItems(items) {\n // Context collection image data\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n images = _React$useState2[0],\n setImages = _React$useState2[1];\n var registerImage = React.useCallback(function (id, data) {\n setImages(function (imgs) {\n return _objectSpread(_objectSpread({}, imgs), {}, _defineProperty({}, id, data));\n });\n return function () {\n setImages(function (imgs) {\n var cloneImgs = _objectSpread({}, imgs);\n delete cloneImgs[id];\n return cloneImgs;\n });\n };\n }, []);\n\n // items\n var mergedItems = React.useMemo(function () {\n // use `items` first\n if (items) {\n return items.map(function (item) {\n if (typeof item === 'string') {\n return {\n data: {\n src: item\n }\n };\n }\n var data = {};\n Object.keys(item).forEach(function (key) {\n if (['src'].concat(_toConsumableArray(COMMON_PROPS)).includes(key)) {\n data[key] = item[key];\n }\n });\n return {\n data: data\n };\n });\n }\n\n // use registered images secondly\n return Object.keys(images).reduce(function (total, id) {\n var _images$id = images[id],\n canPreview = _images$id.canPreview,\n data = _images$id.data;\n if (canPreview) {\n total.push({\n data: data,\n id: id\n });\n }\n return total;\n }, []);\n }, [items, images]);\n return [mergedItems, registerImage, !!items];\n}","import Image from \"./Image\";\nexport * from \"./Image\";\nexport default Image;","// This icon file is generated automatically.\nvar RotateLeftOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H188V494h440v326z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M819.3 328.5c-78.8-100.7-196-153.6-314.6-154.2l-.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7.4 12.6-6.1v-63.9c12.9.1 25.9.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8a325.95 325.95 0 016.5 140.9h74.9c14.8-103.6-11.3-213-81-302.3z\" } }] }, \"name\": \"rotate-left\", \"theme\": \"outlined\" };\nexport default RotateLeftOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport RotateLeftOutlinedSvg from \"@ant-design/icons-svg/es/asn/RotateLeftOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar RotateLeftOutlined = function RotateLeftOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: RotateLeftOutlinedSvg\n }));\n};\n\n/**![rotate-left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PHN0eWxlIC8+PC9kZWZzPjxwYXRoIGQ9Ik02NzIgNDE4SDE0NGMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2NDE0YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDUyOGMxNy43IDAgMzItMTQuMyAzMi0zMlY0NTBjMC0xNy43LTE0LjMtMzItMzItMzJ6bS00NCA0MDJIMTg4VjQ5NGg0NDB2MzI2eiIgLz48cGF0aCBkPSJNODE5LjMgMzI4LjVjLTc4LjgtMTAwLjctMTk2LTE1My42LTMxNC42LTE1NC4ybC0uMi02NGMwLTYuNS03LjYtMTAuMS0xMi42LTYuMWwtMTI4IDEwMWMtNCAzLjEtMy45IDkuMSAwIDEyLjNMNDkyIDMxOC42YzUuMSA0IDEyLjcuNCAxMi42LTYuMXYtNjMuOWMxMi45LjEgMjUuOS45IDM4LjggMi41IDQyLjEgNS4yIDgyLjEgMTguMiAxMTkgMzguNyAzOC4xIDIxLjIgNzEuMiA0OS43IDk4LjQgODQuMyAyNy4xIDM0LjcgNDYuNyA3My43IDU4LjEgMTE1LjhhMzI1Ljk1IDMyNS45NSAwIDAxNi41IDE0MC45aDc0LjljMTQuOC0xMDMuNi0xMS4zLTIxMy04MS0zMDIuM3oiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(RotateLeftOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'RotateLeftOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar RotateRightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M480.5 251.2c13-1.6 25.9-2.4 38.8-2.5v63.9c0 6.5 7.5 10.1 12.6 6.1L660 217.6c4-3.2 4-9.2 0-12.3l-128-101c-5.1-4-12.6-.4-12.6 6.1l-.2 64c-118.6.5-235.8 53.4-314.6 154.2A399.75 399.75 0 00123.5 631h74.9c-.9-5.3-1.7-10.7-2.4-16.1-5.1-42.1-2.1-84.1 8.9-124.8 11.4-42.2 31-81.1 58.1-115.8 27.2-34.7 60.3-63.2 98.4-84.3 37-20.6 76.9-33.6 119.1-38.8z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M880 418H352c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H396V494h440v326z\" } }] }, \"name\": \"rotate-right\", \"theme\": \"outlined\" };\nexport default RotateRightOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport RotateRightOutlinedSvg from \"@ant-design/icons-svg/es/asn/RotateRightOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar RotateRightOutlined = function RotateRightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: RotateRightOutlinedSvg\n }));\n};\n\n/**![rotate-right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PHN0eWxlIC8+PC9kZWZzPjxwYXRoIGQ9Ik00ODAuNSAyNTEuMmMxMy0xLjYgMjUuOS0yLjQgMzguOC0yLjV2NjMuOWMwIDYuNSA3LjUgMTAuMSAxMi42IDYuMUw2NjAgMjE3LjZjNC0zLjIgNC05LjIgMC0xMi4zbC0xMjgtMTAxYy01LjEtNC0xMi42LS40LTEyLjYgNi4xbC0uMiA2NGMtMTE4LjYuNS0yMzUuOCA1My40LTMxNC42IDE1NC4yQTM5OS43NSAzOTkuNzUgMCAwMDEyMy41IDYzMWg3NC45Yy0uOS01LjMtMS43LTEwLjctMi40LTE2LjEtNS4xLTQyLjEtMi4xLTg0LjEgOC45LTEyNC44IDExLjQtNDIuMiAzMS04MS4xIDU4LjEtMTE1LjggMjcuMi0zNC43IDYwLjMtNjMuMiA5OC40LTg0LjMgMzctMjAuNiA3Ni45LTMzLjYgMTE5LjEtMzguOHoiIC8+PHBhdGggZD0iTTg4MCA0MThIMzUyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY0MTRjMCAxNy43IDE0LjMgMzIgMzIgMzJoNTI4YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjQ1MGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQ0IDQwMkgzOTZWNDk0aDQ0MHYzMjZ6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(RotateRightOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'RotateRightOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar SwapOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"swap\", \"theme\": \"outlined\" };\nexport default SwapOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport SwapOutlinedSvg from \"@ant-design/icons-svg/es/asn/SwapOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar SwapOutlined = function SwapOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: SwapOutlinedSvg\n }));\n};\n\n/**![swap](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg0Ny45IDU5MkgxNTJjLTQuNCAwLTggMy42LTggOHY2MGMwIDQuNCAzLjYgOCA4IDhoNjA1LjJMNjEyLjkgODUxYy00LjEgNS4yLS40IDEzIDYuMyAxM2g3Mi41YzQuOSAwIDkuNS0yLjIgMTIuNi02LjFsMTY4LjgtMjE0LjFjMTYuNS0yMSAxLjYtNTEuOC0yNS4yLTUxLjh6TTg3MiAzNTZIMjY2LjhsMTQ0LjMtMTgzYzQuMS01LjIuNC0xMy02LjMtMTNoLTcyLjVjLTQuOSAwLTkuNSAyLjItMTIuNiA2LjFMMTUwLjkgMzgwLjJjLTE2LjUgMjEtMS42IDUxLjggMjUuMSA1MS44aDY5NmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(SwapOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'SwapOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar ZoomInOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M637 443H519V309c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v134H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h118v134c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V519h118c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z\" } }] }, \"name\": \"zoom-in\", \"theme\": \"outlined\" };\nexport default ZoomInOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ZoomInOutlinedSvg from \"@ant-design/icons-svg/es/asn/ZoomInOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ZoomInOutlined = function ZoomInOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ZoomInOutlinedSvg\n }));\n};\n\n/**![zoom-in](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYzNyA0NDNINTE5VjMwOWMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDh2MTM0SDMyNWMtNC40IDAtOCAzLjYtOCA4djYwYzAgNC40IDMuNiA4IDggOGgxMTh2MTM0YzAgNC40IDMuNiA4IDggOGg2MGM0LjQgMCA4LTMuNiA4LThWNTE5aDExOGM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHptMjg0IDQyNEw3NzUgNzIxYzEyMi4xLTE0OC45IDExMy42LTM2OS41LTI2LTUwOS0xNDgtMTQ4LjEtMzg4LjQtMTQ4LjEtNTM3IDAtMTQ4LjEgMTQ4LjYtMTQ4LjEgMzg5IDAgNTM3IDEzOS41IDEzOS42IDM2MC4xIDE0OC4xIDUwOSAyNmwxNDYgMTQ2YzMuMiAyLjggOC4zIDIuOCAxMSAwbDQzLTQzYzIuOC0yLjcgMi44LTcuOCAwLTExek02OTYgNjk2Yy0xMTguOCAxMTguNy0zMTEuMiAxMTguNy00MzAgMC0xMTguNy0xMTguOC0xMTguNy0zMTEuMiAwLTQzMCAxMTguOC0xMTguNyAzMTEuMi0xMTguNyA0MzAgMCAxMTguNyAxMTguOCAxMTguNyAzMTEuMiAwIDQzMHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(ZoomInOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'ZoomInOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar ZoomOutOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M637 443H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h312c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z\" } }] }, \"name\": \"zoom-out\", \"theme\": \"outlined\" };\nexport default ZoomOutOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ZoomOutOutlinedSvg from \"@ant-design/icons-svg/es/asn/ZoomOutOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ZoomOutOutlined = function ZoomOutOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ZoomOutOutlinedSvg\n }));\n};\n\n/**![zoom-out](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYzNyA0NDNIMzI1Yy00LjQgMC04IDMuNi04IDh2NjBjMCA0LjQgMy42IDggOCA4aDMxMmM0LjQgMCA4LTMuNiA4LTh2LTYwYzAtNC40LTMuNi04LTgtOHptMjg0IDQyNEw3NzUgNzIxYzEyMi4xLTE0OC45IDExMy42LTM2OS41LTI2LTUwOS0xNDgtMTQ4LjEtMzg4LjQtMTQ4LjEtNTM3IDAtMTQ4LjEgMTQ4LjYtMTQ4LjEgMzg5IDAgNTM3IDEzOS41IDEzOS42IDM2MC4xIDE0OC4xIDUwOSAyNmwxNDYgMTQ2YzMuMiAyLjggOC4zIDIuOCAxMSAwbDQzLTQzYzIuOC0yLjcgMi44LTcuOCAwLTExek02OTYgNjk2Yy0xMTguOCAxMTguNy0zMTEuMiAxMTguNy00MzAgMC0xMTguNy0xMTguOC0xMTguNy0zMTEuMiAwLTQzMCAxMTguOC0xMTguNyAzMTEuMi0xMTguNyA0MzAgMCAxMTguNyAxMTguOCAxMTguNyAzMTEuMiAwIDQzMHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(ZoomOutOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'ZoomOutOutlined';\n}\nexport default RefIcon;","import { unit } from '@ant-design/cssinjs';\nimport { FastColor } from '@ant-design/fast-color';\nimport { genModalMaskStyle } from '../../modal/style';\nimport { textEllipsis } from '../../style';\nimport { initFadeMotion, initZoomMotion } from '../../style/motion';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nexport const genBoxStyle = position => ({\n position: position || 'absolute',\n inset: 0\n});\nexport const genImageMaskStyle = token => {\n const {\n iconCls,\n motionDurationSlow,\n paddingXXS,\n marginXXS,\n prefixCls,\n colorTextLightSolid\n } = token;\n return {\n position: 'absolute',\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: colorTextLightSolid,\n background: new FastColor('#000').setA(0.5).toRgbString(),\n cursor: 'pointer',\n opacity: 0,\n transition: `opacity ${motionDurationSlow}`,\n [`.${prefixCls}-mask-info`]: Object.assign(Object.assign({}, textEllipsis), {\n padding: `0 ${unit(paddingXXS)}`,\n [iconCls]: {\n marginInlineEnd: marginXXS,\n svg: {\n verticalAlign: 'baseline'\n }\n }\n })\n };\n};\nexport const genPreviewOperationsStyle = token => {\n const {\n previewCls,\n modalMaskBg,\n paddingSM,\n marginXL,\n margin,\n paddingLG,\n previewOperationColorDisabled,\n previewOperationHoverColor,\n motionDurationSlow,\n iconCls,\n colorTextLightSolid\n } = token;\n const operationBg = new FastColor(modalMaskBg).setA(0.1);\n const operationBgHover = operationBg.clone().setA(0.2);\n return {\n [`${previewCls}-footer`]: {\n position: 'fixed',\n bottom: marginXL,\n left: {\n _skip_check_: true,\n value: '50%'\n },\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n color: token.previewOperationColor,\n transform: 'translateX(-50%)'\n },\n [`${previewCls}-progress`]: {\n marginBottom: margin\n },\n [`${previewCls}-close`]: {\n position: 'fixed',\n top: marginXL,\n right: {\n _skip_check_: true,\n value: marginXL\n },\n display: 'flex',\n color: colorTextLightSolid,\n backgroundColor: operationBg.toRgbString(),\n borderRadius: '50%',\n padding: paddingSM,\n outline: 0,\n border: 0,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n '&:hover': {\n backgroundColor: operationBgHover.toRgbString()\n },\n [`& > ${iconCls}`]: {\n fontSize: token.previewOperationSize\n }\n },\n [`${previewCls}-operations`]: {\n display: 'flex',\n alignItems: 'center',\n padding: `0 ${unit(paddingLG)}`,\n backgroundColor: operationBg.toRgbString(),\n borderRadius: 100,\n '&-operation': {\n marginInlineStart: paddingSM,\n padding: paddingSM,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n userSelect: 'none',\n [`&:not(${previewCls}-operations-operation-disabled):hover > ${iconCls}`]: {\n color: previewOperationHoverColor\n },\n '&-disabled': {\n color: previewOperationColorDisabled,\n cursor: 'not-allowed'\n },\n '&:first-of-type': {\n marginInlineStart: 0\n },\n [`& > ${iconCls}`]: {\n fontSize: token.previewOperationSize\n }\n }\n }\n };\n};\nexport const genPreviewSwitchStyle = token => {\n const {\n modalMaskBg,\n iconCls,\n previewOperationColorDisabled,\n previewCls,\n zIndexPopup,\n motionDurationSlow\n } = token;\n const operationBg = new FastColor(modalMaskBg).setA(0.1);\n const operationBgHover = operationBg.clone().setA(0.2);\n return {\n [`${previewCls}-switch-left, ${previewCls}-switch-right`]: {\n position: 'fixed',\n insetBlockStart: '50%',\n zIndex: token.calc(zIndexPopup).add(1).equal(),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: token.imagePreviewSwitchSize,\n height: token.imagePreviewSwitchSize,\n marginTop: token.calc(token.imagePreviewSwitchSize).mul(-1).div(2).equal(),\n color: token.previewOperationColor,\n background: operationBg.toRgbString(),\n borderRadius: '50%',\n transform: `translateY(-50%)`,\n cursor: 'pointer',\n transition: `all ${motionDurationSlow}`,\n userSelect: 'none',\n '&:hover': {\n background: operationBgHover.toRgbString()\n },\n '&-disabled': {\n '&, &:hover': {\n color: previewOperationColorDisabled,\n background: 'transparent',\n cursor: 'not-allowed',\n [`> ${iconCls}`]: {\n cursor: 'not-allowed'\n }\n }\n },\n [`> ${iconCls}`]: {\n fontSize: token.previewOperationSize\n }\n },\n [`${previewCls}-switch-left`]: {\n insetInlineStart: token.marginSM\n },\n [`${previewCls}-switch-right`]: {\n insetInlineEnd: token.marginSM\n }\n };\n};\nexport const genImagePreviewStyle = token => {\n const {\n motionEaseOut,\n previewCls,\n motionDurationSlow,\n componentCls\n } = token;\n return [{\n [`${componentCls}-preview-root`]: {\n [previewCls]: {\n height: '100%',\n textAlign: 'center',\n pointerEvents: 'none'\n },\n [`${previewCls}-body`]: Object.assign(Object.assign({}, genBoxStyle()), {\n overflow: 'hidden'\n }),\n [`${previewCls}-img`]: {\n maxWidth: '100%',\n maxHeight: '70%',\n verticalAlign: 'middle',\n transform: 'scale3d(1, 1, 1)',\n cursor: 'grab',\n transition: `transform ${motionDurationSlow} ${motionEaseOut} 0s`,\n userSelect: 'none',\n '&-wrapper': Object.assign(Object.assign({}, genBoxStyle()), {\n transition: `transform ${motionDurationSlow} ${motionEaseOut} 0s`,\n // https://github.com/ant-design/ant-design/issues/39913\n // TailwindCSS will reset img default style.\n // Let's set back.\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n '& > *': {\n pointerEvents: 'auto'\n },\n '&::before': {\n display: 'inline-block',\n width: 1,\n height: '50%',\n marginInlineEnd: -1,\n content: '\"\"'\n }\n })\n },\n [`${previewCls}-moving`]: {\n [`${previewCls}-preview-img`]: {\n cursor: 'grabbing',\n '&-wrapper': {\n transitionDuration: '0s'\n }\n }\n }\n }\n },\n // Override\n {\n [`${componentCls}-preview-root`]: {\n [`${previewCls}-wrap`]: {\n zIndex: token.zIndexPopup\n }\n }\n },\n // Preview operations & switch\n {\n [`${componentCls}-preview-operations-wrapper`]: {\n position: 'fixed',\n zIndex: token.calc(token.zIndexPopup).add(1).equal()\n },\n '&': [genPreviewOperationsStyle(token), genPreviewSwitchStyle(token)]\n }];\n};\nconst genImageStyle = token => {\n const {\n componentCls\n } = token;\n return {\n // ============================== image ==============================\n [componentCls]: {\n position: 'relative',\n display: 'inline-block',\n [`${componentCls}-img`]: {\n width: '100%',\n height: 'auto',\n verticalAlign: 'middle'\n },\n [`${componentCls}-img-placeholder`]: {\n backgroundColor: token.colorBgContainerDisabled,\n backgroundImage: \"url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=')\",\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center center',\n backgroundSize: '30%'\n },\n [`${componentCls}-mask`]: Object.assign({}, genImageMaskStyle(token)),\n [`${componentCls}-mask:hover`]: {\n opacity: 1\n },\n [`${componentCls}-placeholder`]: Object.assign({}, genBoxStyle())\n }\n };\n};\nconst genPreviewMotion = token => {\n const {\n previewCls\n } = token;\n return {\n [`${previewCls}-root`]: initZoomMotion(token, 'zoom'),\n '&': initFadeMotion(token, true)\n };\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => ({\n zIndexPopup: token.zIndexPopupBase + 80,\n previewOperationColor: new FastColor(token.colorTextLightSolid).setA(0.65).toRgbString(),\n previewOperationHoverColor: new FastColor(token.colorTextLightSolid).setA(0.85).toRgbString(),\n previewOperationColorDisabled: new FastColor(token.colorTextLightSolid).setA(0.25).toRgbString(),\n previewOperationSize: token.fontSizeIcon * 1.5 // FIXME: fontSizeIconLG\n});\nexport default genStyleHooks('Image', token => {\n const previewCls = `${token.componentCls}-preview`;\n const imageToken = mergeToken(token, {\n previewCls,\n modalMaskBg: new FastColor('#000').setA(0.45).toRgbString(),\n // FIXME: Shared Token\n imagePreviewSwitchSize: token.controlHeightLG\n });\n return [genImageStyle(imageToken), genImagePreviewStyle(imageToken), genModalMaskStyle(mergeToken(imageToken, {\n componentCls: previewCls\n })), genPreviewMotion(imageToken)];\n}, prepareComponentToken);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport LeftOutlined from \"@ant-design/icons/es/icons/LeftOutlined\";\nimport RightOutlined from \"@ant-design/icons/es/icons/RightOutlined\";\nimport RotateLeftOutlined from \"@ant-design/icons/es/icons/RotateLeftOutlined\";\nimport RotateRightOutlined from \"@ant-design/icons/es/icons/RotateRightOutlined\";\nimport SwapOutlined from \"@ant-design/icons/es/icons/SwapOutlined\";\nimport ZoomInOutlined from \"@ant-design/icons/es/icons/ZoomInOutlined\";\nimport ZoomOutOutlined from \"@ant-design/icons/es/icons/ZoomOutOutlined\";\nimport classNames from 'classnames';\nimport RcImage from 'rc-image';\nimport { useZIndex } from '../_util/hooks/useZIndex';\nimport { getTransitionName } from '../_util/motion';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useStyle from './style';\nexport const icons = {\n rotateLeft: /*#__PURE__*/React.createElement(RotateLeftOutlined, null),\n rotateRight: /*#__PURE__*/React.createElement(RotateRightOutlined, null),\n zoomIn: /*#__PURE__*/React.createElement(ZoomInOutlined, null),\n zoomOut: /*#__PURE__*/React.createElement(ZoomOutOutlined, null),\n close: /*#__PURE__*/React.createElement(CloseOutlined, null),\n left: /*#__PURE__*/React.createElement(LeftOutlined, null),\n right: /*#__PURE__*/React.createElement(RightOutlined, null),\n flipX: /*#__PURE__*/React.createElement(SwapOutlined, null),\n flipY: /*#__PURE__*/React.createElement(SwapOutlined, {\n rotate: 90\n })\n};\nconst InternalPreviewGroup = _a => {\n var {\n previewPrefixCls: customizePrefixCls,\n preview\n } = _a,\n otherProps = __rest(_a, [\"previewPrefixCls\", \"preview\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('image', customizePrefixCls);\n const previewPrefixCls = `${prefixCls}-preview`;\n const rootPrefixCls = getPrefixCls();\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const [zIndex] = useZIndex('ImagePreview', typeof preview === 'object' ? preview.zIndex : undefined);\n const mergedPreview = React.useMemo(() => {\n var _a;\n if (preview === false) {\n return preview;\n }\n const _preview = typeof preview === 'object' ? preview : {};\n const mergedRootClassName = classNames(hashId, cssVarCls, rootCls, (_a = _preview.rootClassName) !== null && _a !== void 0 ? _a : '');\n return Object.assign(Object.assign({}, _preview), {\n transitionName: getTransitionName(rootPrefixCls, 'zoom', _preview.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', _preview.maskTransitionName),\n rootClassName: mergedRootClassName,\n zIndex\n });\n }, [preview]);\n return wrapCSSVar(/*#__PURE__*/React.createElement(RcImage.PreviewGroup, Object.assign({\n preview: mergedPreview,\n previewPrefixCls: previewPrefixCls,\n icons: icons\n }, otherProps)));\n};\nexport default InternalPreviewGroup;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport RcImage from 'rc-image';\nimport { useZIndex } from '../_util/hooks/useZIndex';\nimport { getTransitionName } from '../_util/motion';\nimport { useComponentConfig } from '../config-provider/context';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport { useLocale } from '../locale';\nimport PreviewGroup, { icons } from './PreviewGroup';\nimport useStyle from './style';\nconst Image = props => {\n const {\n prefixCls: customizePrefixCls,\n preview,\n className,\n rootClassName,\n style\n } = props,\n otherProps = __rest(props, [\"prefixCls\", \"preview\", \"className\", \"rootClassName\", \"style\"]);\n const {\n getPrefixCls,\n getPopupContainer: getContextPopupContainer,\n className: contextClassName,\n style: contextStyle,\n preview: contextPreview\n } = useComponentConfig('image');\n const [imageLocale] = useLocale('Image');\n const prefixCls = getPrefixCls('image', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n // Style\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n const mergedRootClassName = classNames(rootClassName, hashId, cssVarCls, rootCls);\n const mergedClassName = classNames(className, hashId, contextClassName);\n const [zIndex] = useZIndex('ImagePreview', typeof preview === 'object' ? preview.zIndex : undefined);\n const mergedPreview = React.useMemo(() => {\n if (preview === false) {\n return preview;\n }\n const _preview = typeof preview === 'object' ? preview : {};\n const {\n getContainer,\n closeIcon,\n rootClassName\n } = _preview,\n restPreviewProps = __rest(_preview, [\"getContainer\", \"closeIcon\", \"rootClassName\"]);\n return Object.assign(Object.assign({\n mask: (/*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-mask-info`\n }, /*#__PURE__*/React.createElement(EyeOutlined, null), imageLocale === null || imageLocale === void 0 ? void 0 : imageLocale.preview)),\n icons\n }, restPreviewProps), {\n rootClassName: classNames(mergedRootClassName, rootClassName),\n getContainer: getContainer !== null && getContainer !== void 0 ? getContainer : getContextPopupContainer,\n transitionName: getTransitionName(rootPrefixCls, 'zoom', _preview.transitionName),\n maskTransitionName: getTransitionName(rootPrefixCls, 'fade', _preview.maskTransitionName),\n zIndex,\n closeIcon: closeIcon !== null && closeIcon !== void 0 ? closeIcon : contextPreview === null || contextPreview === void 0 ? void 0 : contextPreview.closeIcon\n });\n }, [preview, imageLocale, contextPreview === null || contextPreview === void 0 ? void 0 : contextPreview.closeIcon]);\n const mergedStyle = Object.assign(Object.assign({}, contextStyle), style);\n return wrapCSSVar(/*#__PURE__*/React.createElement(RcImage, Object.assign({\n prefixCls: prefixCls,\n preview: mergedPreview,\n rootClassName: mergedRootClassName,\n className: mergedClassName,\n style: mergedStyle\n }, otherProps)));\n};\nImage.PreviewGroup = PreviewGroup;\nif (process.env.NODE_ENV !== 'production') {\n Image.displayName = 'Image';\n}\nexport default Image;","// This icon file is generated automatically.\nvar DownloadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"download\", \"theme\": \"outlined\" };\nexport default DownloadOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DownloadOutlinedSvg from \"@ant-design/icons-svg/es/asn/DownloadOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DownloadOutlined = function DownloadOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DownloadOutlinedSvg\n }));\n};\n\n/**![download](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUwNS43IDY2MWE4IDggMCAwMDEyLjYgMGwxMTItMTQxLjdjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc0LjFWMTY4YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYzMzguM0g0MDBjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45bDExMiAxNDEuOHpNODc4IDYyNmgtNjBjLTQuNCAwLTggMy42LTggOHYxNTRIMjE0VjYzNGMwLTQuNC0zLjYtOC04LThoLTYwYy00LjQgMC04IDMuNi04IDh2MTk4YzAgMTcuNyAxNC4zIDMyIDMyIDMyaDY4NGMxNy43IDAgMzItMTQuMyAzMi0zMlY2MzRjMC00LjQtMy42LTgtOC04eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DownloadOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'DownloadOutlined';\n}\nexport default RefIcon;","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { fetchSalesOrderById, fetchOrderDeliveryAddress } from '../../Redux/slice/orderSlice';\nimport { Modal, Spin, Typography, Image, Divider, Card, Button } from 'antd';\nimport { UserOutlined, PhoneOutlined, HomeOutlined, EditOutlined, DownloadOutlined } from '@ant-design/icons';\nimport 'jspdf-autotable';\nimport html2pdf from 'html2pdf.js';\n\nconst { Title, Text } = Typography;\n\n\n\nconst OrderModal = ({ orderId, isModalVisible, onClose }) => {\n const dispatch = useDispatch();\n const { salesOrder, loading, error, deliveryAddress } = useSelector((state) => state.orders);\n\n useEffect(() => {\n if (orderId) {\n dispatch(fetchSalesOrderById(orderId));\n dispatch(fetchOrderDeliveryAddress(orderId));\n }\n }, [dispatch, orderId]);\n\n const isLoading = loading && !salesOrder?.length;\n if (isLoading) return
    ;\n if (error) return
    Error loading order: {error.message || 'An error occurred'}
    ;\n if (!salesOrder || salesOrder.length === 0) return \n\n const order = salesOrder[0];\n const address = deliveryAddress?.[0] || {};\n const backendBaseURL = 'https://smfteapi.salesmate.app';\n const totalAmount = salesOrder.reduce((acc, item) => acc + item.total, 0);\n\n const downloadInvoice = () => {\n // Create a temporary container for the HTML content\n const element = document.createElement('div');\n \n // Add the invoice content to the element\n element.innerHTML = `\n
    \n \n \n
    \n

    Order Code: ${order?.orderCode}

    \n

    Order Date: ${new Date(order?.orderDate).toLocaleDateString()}

    \n

    Recipient: ${address?.recipientName || 'N/A'}

    \n

    Contact: ${address?.recipientContactNumber || 'N/A'}

    \n

    Address: ${address?.address || 'N/A'}

    \n

    Note: ${address?.orderNote || 'N/A'}

    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n ${salesOrder.map((item, index) => `\n \n \n \n \n \n \n `).join('')}\n \n
    SNProduct NameQuantityUnit Price (₵)
    ${index + 1}${item.productName || 'N/A'}${item.quantity || 0}${formatPrice(item.price || 0)}
    \n \n \n
    \n Total Amount: ₵${formatPrice(salesOrder.reduce((total, item) => total + (item.price * item.quantity), 0))}\n
    \n `;\n \n // Set up the options for html2pdf\n const options = {\n margin: 20,\n filename: `Invoice_${order?.orderCode}.pdf`,\n image: { type: 'png', quality: 1 },\n html2canvas: { scale: 2 },\n jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' }\n };\n \n // Use html2pdf to generate the PDF\n html2pdf()\n .from(element)\n .set(options)\n .save();\n };\n \n \n // Utility function to format price correctly\n const formatPrice = (amount) => {\n return amount.toFixed(2); // Ensure 2 decimal places\n };\n \n\n return (\n \n
    \n Total Amount: \n ₵{formatPrice(totalAmount)}.00\n
    \n\n \n
    ,\n ]}\n width={500}\n centered\n className=\"rounded-lg\"\n >\n {/* Scrollable content container */}\n
    \n
    \n Order Date: \n {new Date(order?.orderDate).toLocaleDateString()}\n
    \n\n {address ? (\n \n Delivery Address\n
    \n
    Recipient: {address?.recipientName}
    \n
    Contact: {address?.recipientContactNumber}
    \n
    Address: {address?.address}
    \n
    Note: {address?.orderNote}
    \n
    \n
    \n ) : (\n No delivery address available.\n )}\n\n \n\n {salesOrder.map((item, index) => {\n const imagePath = item?.imagePath;\n const imageUrl = imagePath ? `${backendBaseURL}/Media/Products_Images/${imagePath.split('\\\\').pop()}` : null;\n\n return (\n
    \n
    \n {imageUrl ? (\n \n ) : (\n Image not available.\n )}\n
    \n
    \n
    Product Name: {item?.productName || 'N/A'}
    \n
    Quantity: {item?.quantity || 0}
    \n
    Price: ₵{formatPrice(item?.price || 0)}.00
    \n
    \n
    \n );\n })}\n\n \n\n \n
    \n \n );\n};\n\nexport default OrderModal;\n","import React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchOrdersByCustomer } from \"../../Redux/slice/orderSlice\";\nimport { DatePicker, Table, Spin, Tooltip, Button } from \"antd\";\nimport { EyeOutlined, ShoppingOutlined } from \"@ant-design/icons\";\nimport moment from \"moment\";\nimport OrderModal from \"./OrderModal\"; // Import the new OrderModal component\nimport noOrders from \"../../assets/no_order.png\";\n\nconst OrderHistoryPage = () => {\n const dispatch = useDispatch();\n\nconst ordersData = useSelector((state) => state.orders || { orders: [], loading: false, error: null });\n\nconst orders = ordersData.orders || [];\nconst loading = ordersData.loading || false;\nconst error = ordersData.error || null;\n\n \n const today = moment();\n const defaultFromDate = moment(\"01/01/2000\", \"MM/DD/YYYY\");\n const defaultToDate = today.clone().add(1, \"days\");\n\n const [dateRange, setDateRange] = useState([defaultFromDate, defaultToDate]);\n const [isModalVisible, setIsModalVisible] = useState(false);\n const [selectedOrderId, setSelectedOrderId] = useState(null);\n\n const customerObject = JSON.parse(localStorage.getItem(\"customer\"));\n const customerId = customerObject?.customerAccountNumber;\n\n useEffect(() => {\n if (customerId) {\n const [from, to] = dateRange.map((date) => date.format(\"MM/DD/YYYY\"));\n dispatch(fetchOrdersByCustomer({ from, to, customerId }));\n }\n }, [dateRange, customerId, dispatch]);\n\n const handleDateChange = (dates) => {\n if (dates) {\n setDateRange(dates);\n }\n };\n\n const handleViewOrder = (orderId) => {\n setSelectedOrderId(orderId);\n setIsModalVisible(true);\n };\n\n const handleModalClose = () => {\n setIsModalVisible(false);\n };\n\n const columns = [\n {\n title: \"Order ID\",\n dataIndex: \"orderId\",\n key: \"orderId\",\n render: (orderId) => orderId.slice(-6),\n },\n { title: \"Order Date\", dataIndex: \"orderDate\", key: \"orderDate\" },\n { title: \"Order Status\", dataIndex: \"orderCycle\", key: \"orderCycle\" },\n {\n title: \"Action\",\n key: \"action\",\n render: (_, record) => (\n \n handleViewOrder(record.orderId)}\n />\n \n ),\n },\n ];\n\n const transformedOrders = (orders || [])\n .map((order, index) => ({\n key: index,\n orderId: order?.orderCode || \"N/A\",\n orderDate: moment(order?.orderDate).format(\"MM/DD/YYYY\") || \"N/A\",\n customerName: order?.fullName || \"N/A\",\n orderCycle: order?.orderCycle || \"N/A\",\n }))\n .sort((a, b) =>\n moment(b.orderDate).isBefore(moment(a.orderDate)) ? 1 : -1\n );\n\n return (\n
    \n

    Order History

    \n\n {orders?.length > 0 && (\n
    \n \n \n
    \n )}\n\n{loading ? (\n \n) : error ? (\n

    Error: {error}

    \n) : orders.length > 0 ? (\n \n) : (\n
    \n \"No\n

    You have no orders yet.

    \n }\n size=\"large\"\n onClick={() => (window.location.href = \"/home\")}\n className=\"bg-red-500 text-white\"\n >\n Start Shopping\n \n
    \n)}\n\n \n
    \n );\n};\n\nexport default OrderHistoryPage;\n","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { ConfigContext } from '../config-provider';\nimport { useComponentConfig } from '../config-provider/context';\nimport { LayoutContext } from './context';\nimport useHasSider from './hooks/useHasSider';\nimport useStyle from './style';\nfunction generator(_ref) {\n let {\n suffixCls,\n tagName,\n displayName\n } = _ref;\n return BasicComponent => {\n const Adapter = /*#__PURE__*/React.forwardRef((props, ref) => (/*#__PURE__*/React.createElement(BasicComponent, Object.assign({\n ref: ref,\n suffixCls: suffixCls,\n tagName: tagName\n }, props))));\n if (process.env.NODE_ENV !== 'production') {\n Adapter.displayName = displayName;\n }\n return Adapter;\n };\n}\nconst Basic = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n suffixCls,\n className,\n tagName: TagName\n } = props,\n others = __rest(props, [\"prefixCls\", \"suffixCls\", \"className\", \"tagName\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('layout', customizePrefixCls);\n const [wrapSSR, hashId, cssVarCls] = useStyle(prefixCls);\n const prefixWithSuffixCls = suffixCls ? `${prefixCls}-${suffixCls}` : prefixCls;\n return wrapSSR(/*#__PURE__*/React.createElement(TagName, Object.assign({\n className: classNames(customizePrefixCls || prefixWithSuffixCls, className, hashId, cssVarCls),\n ref: ref\n }, others)));\n});\nconst BasicLayout = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n direction\n } = React.useContext(ConfigContext);\n const [siders, setSiders] = React.useState([]);\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n children,\n hasSider,\n tagName: Tag,\n style\n } = props,\n others = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"children\", \"hasSider\", \"tagName\", \"style\"]);\n const passedProps = omit(others, ['suffixCls']);\n const {\n getPrefixCls,\n className: contextClassName,\n style: contextStyle\n } = useComponentConfig('layout');\n const prefixCls = getPrefixCls('layout', customizePrefixCls);\n const mergedHasSider = useHasSider(siders, children, hasSider);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const classString = classNames(prefixCls, {\n [`${prefixCls}-has-sider`]: mergedHasSider,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, contextClassName, className, rootClassName, hashId, cssVarCls);\n const contextValue = React.useMemo(() => ({\n siderHook: {\n addSider: id => {\n setSiders(prev => [].concat(_toConsumableArray(prev), [id]));\n },\n removeSider: id => {\n setSiders(prev => prev.filter(currentId => currentId !== id));\n }\n }\n }), []);\n return wrapCSSVar(/*#__PURE__*/React.createElement(LayoutContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Tag, Object.assign({\n ref: ref,\n className: classString,\n style: Object.assign(Object.assign({}, contextStyle), style)\n }, passedProps), children)));\n});\nconst Layout = generator({\n tagName: 'div',\n displayName: 'Layout'\n})(BasicLayout);\nconst Header = generator({\n suffixCls: 'header',\n tagName: 'header',\n displayName: 'Header'\n})(Basic);\nconst Footer = generator({\n suffixCls: 'footer',\n tagName: 'footer',\n displayName: 'Footer'\n})(Basic);\nconst Content = generator({\n suffixCls: 'content',\n tagName: 'main',\n displayName: 'Content'\n})(Basic);\nexport { Content, Footer, Header };\nexport default Layout;","import toArray from \"rc-util/es/Children/toArray\";\nimport Sider from '../Sider';\nexport default function useHasSider(siders, children, hasSider) {\n if (typeof hasSider === 'boolean') {\n return hasSider;\n }\n if (siders.length) {\n return true;\n }\n const childNodes = toArray(children);\n return childNodes.some(node => node.type === Sider);\n}","\"use client\";\n\nimport InternalLayout, { Content, Footer, Header } from './layout';\nimport Sider, { SiderContext } from './Sider';\nconst Layout = InternalLayout;\nLayout.Header = Header;\nLayout.Footer = Footer;\nLayout.Content = Content;\nLayout.Sider = Sider;\nLayout._InternalSiderContext = SiderContext;\nexport default Layout;","\"use client\";\n\nimport { Row } from '../grid';\nexport default Row;","\"use client\";\n\nimport { Col } from '../grid';\nexport default Col;","// This icon file is generated automatically.\nvar VerifiedOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"defs\", \"attrs\": {}, \"children\": [{ \"tag\": \"style\", \"attrs\": {} }] }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M447.8 588.8l-7.3-32.5c-.2-1-.6-1.9-1.1-2.7a7.94 7.94 0 00-11.1-2.2L405 567V411c0-4.4-3.6-8-8-8h-81c-4.4 0-8 3.6-8 8v36c0 4.4 3.6 8 8 8h37v192.4a8 8 0 0012.7 6.5l79-56.8c2.6-1.9 3.8-5.1 3.1-8.3zm-56.7-216.6l.2.2c3.2 3 8.3 2.8 11.3-.5l24.1-26.2a8.1 8.1 0 00-.3-11.2l-53.7-52.1a8 8 0 00-11.2.1l-24.7 24.7c-3.1 3.1-3.1 8.2.1 11.3l54.2 53.7z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M866.9 169.9L527.1 54.1C523 52.7 517.5 52 512 52s-11 .7-15.1 2.1L157.1 169.9c-8.3 2.8-15.1 12.4-15.1 21.2v482.4c0 8.8 5.7 20.4 12.6 25.9L499.3 968c3.5 2.7 8 4.1 12.6 4.1s9.2-1.4 12.6-4.1l344.7-268.6c6.9-5.4 12.6-17 12.6-25.9V191.1c.2-8.8-6.6-18.3-14.9-21.2zM810 654.3L512 886.5 214 654.3V226.7l298-101.6 298 101.6v427.6z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M452 297v36c0 4.4 3.6 8 8 8h108v274h-38V405c0-4.4-3.6-8-8-8h-35c-4.4 0-8 3.6-8 8v210h-31c-4.4 0-8 3.6-8 8v37c0 4.4 3.6 8 8 8h244c4.4 0 8-3.6 8-8v-37c0-4.4-3.6-8-8-8h-72V493h58c4.4 0 8-3.6 8-8v-35c0-4.4-3.6-8-8-8h-58V341h63c4.4 0 8-3.6 8-8v-36c0-4.4-3.6-8-8-8H460c-4.4 0-8 3.6-8 8z\" } }] }, \"name\": \"verified\", \"theme\": \"outlined\" };\nexport default VerifiedOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport VerifiedOutlinedSvg from \"@ant-design/icons-svg/es/asn/VerifiedOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar VerifiedOutlined = function VerifiedOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: VerifiedOutlinedSvg\n }));\n};\n\n/**![verified](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PHN0eWxlIC8+PC9kZWZzPjxwYXRoIGQ9Ik00NDcuOCA1ODguOGwtNy4zLTMyLjVjLS4yLTEtLjYtMS45LTEuMS0yLjdhNy45NCA3Ljk0IDAgMDAtMTEuMS0yLjJMNDA1IDU2N1Y0MTFjMC00LjQtMy42LTgtOC04aC04MWMtNC40IDAtOCAzLjYtOCA4djM2YzAgNC40IDMuNiA4IDggOGgzN3YxOTIuNGE4IDggMCAwMDEyLjcgNi41bDc5LTU2LjhjMi42LTEuOSAzLjgtNS4xIDMuMS04LjN6bS01Ni43LTIxNi42bC4yLjJjMy4yIDMgOC4zIDIuOCAxMS4zLS41bDI0LjEtMjYuMmE4LjEgOC4xIDAgMDAtLjMtMTEuMmwtNTMuNy01Mi4xYTggOCAwIDAwLTExLjIuMWwtMjQuNyAyNC43Yy0zLjEgMy4xLTMuMSA4LjIuMSAxMS4zbDU0LjIgNTMuN3oiIC8+PHBhdGggZD0iTTg2Ni45IDE2OS45TDUyNy4xIDU0LjFDNTIzIDUyLjcgNTE3LjUgNTIgNTEyIDUycy0xMSAuNy0xNS4xIDIuMUwxNTcuMSAxNjkuOWMtOC4zIDIuOC0xNS4xIDEyLjQtMTUuMSAyMS4ydjQ4Mi40YzAgOC44IDUuNyAyMC40IDEyLjYgMjUuOUw0OTkuMyA5NjhjMy41IDIuNyA4IDQuMSAxMi42IDQuMXM5LjItMS40IDEyLjYtNC4xbDM0NC43LTI2OC42YzYuOS01LjQgMTIuNi0xNyAxMi42LTI1LjlWMTkxLjFjLjItOC44LTYuNi0xOC4zLTE0LjktMjEuMnpNODEwIDY1NC4zTDUxMiA4ODYuNSAyMTQgNjU0LjNWMjI2LjdsMjk4LTEwMS42IDI5OCAxMDEuNnY0MjcuNnoiIC8+PHBhdGggZD0iTTQ1MiAyOTd2MzZjMCA0LjQgMy42IDggOCA4aDEwOHYyNzRoLTM4VjQwNWMwLTQuNC0zLjYtOC04LThoLTM1Yy00LjQgMC04IDMuNi04IDh2MjEwaC0zMWMtNC40IDAtOCAzLjYtOCA4djM3YzAgNC40IDMuNiA4IDggOGgyNDRjNC40IDAgOC0zLjYgOC04di0zN2MwLTQuNC0zLjYtOC04LThoLTcyVjQ5M2g1OGM0LjQgMCA4LTMuNiA4LTh2LTM1YzAtNC40LTMuNi04LTgtOGgtNThWMzQxaDYzYzQuNCAwIDgtMy42IDgtOHYtMzZjMC00LjQtMy42LTgtOC04SDQ2MGMtNC40IDAtOCAzLjYtOCA4eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(VerifiedOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'VerifiedOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar DollarOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z\" } }] }, \"name\": \"dollar\", \"theme\": \"outlined\" };\nexport default DollarOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DollarOutlinedSvg from \"@ant-design/icons-svg/es/asn/DollarOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DollarOutlined = function DollarOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DollarOutlinedSvg\n }));\n};\n\n/**![dollar](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptNDcuNy0zOTUuMmwtMjUuNC01LjlWMzQ4LjZjMzggNS4yIDYxLjUgMjkgNjUuNSA1OC4yLjUgNCAzLjkgNi45IDcuOSA2LjloNDQuOWM0LjcgMCA4LjQtNC4xIDgtOC44LTYuMS02Mi4zLTU3LjQtMTAyLjMtMTI1LjktMTA5LjJWMjYzYzAtNC40LTMuNi04LTgtOGgtMjguMWMtNC40IDAtOCAzLjYtOCA4djMzYy03MC44IDYuOS0xMjYuMiA0Ni0xMjYuMiAxMTkgMCA2Ny42IDQ5LjggMTAwLjIgMTAyLjEgMTEyLjdsMjQuNyA2LjN2MTQyLjdjLTQ0LjItNS45LTY5LTI5LjUtNzQuMS02MS4zLS42LTMuOC00LTYuNi03LjktNi42SDM2M2MtNC43IDAtOC40IDQtOCA4LjcgNC41IDU1IDQ2LjIgMTA1LjYgMTM1LjIgMTEyLjFWNzYxYzAgNC40IDMuNiA4IDggOGgyOC40YzQuNCAwIDgtMy42IDgtOC4xbC0uMi0zMS43Yzc4LjMtNi45IDEzNC4zLTQ4LjggMTM0LjMtMTI0LS4xLTY5LjQtNDQuMi0xMDAuNC0xMDktMTE2LjR6bS02OC42LTE2LjJjLTUuNi0xLjYtMTAuMy0zLjEtMTUtNS0zMy44LTEyLjItNDkuNS0zMS45LTQ5LjUtNTcuMyAwLTM2LjMgMjcuNS01NyA2NC41LTYxLjd2MTI0ek01MzQuMyA2NzdWNTQzLjNjMy4xLjkgNS45IDEuNiA4LjggMi4yIDQ3LjMgMTQuNCA2My4yIDM0LjQgNjMuMiA2NS4xIDAgMzkuMS0yOS40IDYyLjYtNzIgNjYuNHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DollarOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'DollarOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar RocketOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M864 736c0-111.6-65.4-208-160-252.9V317.3c0-15.1-5.3-29.7-15.1-41.2L536.5 95.4C530.1 87.8 521 84 512 84s-18.1 3.8-24.5 11.4L335.1 276.1a63.97 63.97 0 00-15.1 41.2v165.8C225.4 528 160 624.4 160 736h156.5c-2.3 7.2-3.5 15-3.5 23.8 0 22.1 7.6 43.7 21.4 60.8a97.2 97.2 0 0043.1 30.6c23.1 54 75.6 88.8 134.5 88.8 29.1 0 57.3-8.6 81.4-24.8 23.6-15.8 41.9-37.9 53-64a97 97 0 0043.1-30.5 97.52 97.52 0 0021.4-60.8c0-8.4-1.1-16.4-3.1-23.8H864zM762.3 621.4c9.4 14.6 17 30.3 22.5 46.6H700V558.7a211.6 211.6 0 0162.3 62.7zM388 483.1V318.8l124-147 124 147V668H388V483.1zM239.2 668c5.5-16.3 13.1-32 22.5-46.6 16.3-25.2 37.5-46.5 62.3-62.7V668h-84.8zm388.9 116.2c-5.2 3-11.2 4.2-17.1 3.4l-19.5-2.4-2.8 19.4c-5.4 37.9-38.4 66.5-76.7 66.5-38.3 0-71.3-28.6-76.7-66.5l-2.8-19.5-19.5 2.5a27.7 27.7 0 01-17.1-3.5c-8.7-5-14.1-14.3-14.1-24.4 0-10.6 5.9-19.4 14.6-23.8h231.3c8.8 4.5 14.6 13.3 14.6 23.8-.1 10.2-5.5 19.6-14.2 24.5zM464 400a48 48 0 1096 0 48 48 0 10-96 0z\" } }] }, \"name\": \"rocket\", \"theme\": \"outlined\" };\nexport default RocketOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport RocketOutlinedSvg from \"@ant-design/icons-svg/es/asn/RocketOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar RocketOutlined = function RocketOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: RocketOutlinedSvg\n }));\n};\n\n/**![rocket](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg2NCA3MzZjMC0xMTEuNi02NS40LTIwOC0xNjAtMjUyLjlWMzE3LjNjMC0xNS4xLTUuMy0yOS43LTE1LjEtNDEuMkw1MzYuNSA5NS40QzUzMC4xIDg3LjggNTIxIDg0IDUxMiA4NHMtMTguMSAzLjgtMjQuNSAxMS40TDMzNS4xIDI3Ni4xYTYzLjk3IDYzLjk3IDAgMDAtMTUuMSA0MS4ydjE2NS44QzIyNS40IDUyOCAxNjAgNjI0LjQgMTYwIDczNmgxNTYuNWMtMi4zIDcuMi0zLjUgMTUtMy41IDIzLjggMCAyMi4xIDcuNiA0My43IDIxLjQgNjAuOGE5Ny4yIDk3LjIgMCAwMDQzLjEgMzAuNmMyMy4xIDU0IDc1LjYgODguOCAxMzQuNSA4OC44IDI5LjEgMCA1Ny4zLTguNiA4MS40LTI0LjggMjMuNi0xNS44IDQxLjktMzcuOSA1My02NGE5NyA5NyAwIDAwNDMuMS0zMC41IDk3LjUyIDk3LjUyIDAgMDAyMS40LTYwLjhjMC04LjQtMS4xLTE2LjQtMy4xLTIzLjhIODY0ek03NjIuMyA2MjEuNGM5LjQgMTQuNiAxNyAzMC4zIDIyLjUgNDYuNkg3MDBWNTU4LjdhMjExLjYgMjExLjYgMCAwMTYyLjMgNjIuN3pNMzg4IDQ4My4xVjMxOC44bDEyNC0xNDcgMTI0IDE0N1Y2NjhIMzg4VjQ4My4xek0yMzkuMiA2NjhjNS41LTE2LjMgMTMuMS0zMiAyMi41LTQ2LjYgMTYuMy0yNS4yIDM3LjUtNDYuNSA2Mi4zLTYyLjdWNjY4aC04NC44em0zODguOSAxMTYuMmMtNS4yIDMtMTEuMiA0LjItMTcuMSAzLjRsLTE5LjUtMi40LTIuOCAxOS40Yy01LjQgMzcuOS0zOC40IDY2LjUtNzYuNyA2Ni41LTM4LjMgMC03MS4zLTI4LjYtNzYuNy02Ni41bC0yLjgtMTkuNS0xOS41IDIuNWEyNy43IDI3LjcgMCAwMS0xNy4xLTMuNWMtOC43LTUtMTQuMS0xNC4zLTE0LjEtMjQuNCAwLTEwLjYgNS45LTE5LjQgMTQuNi0yMy44aDIzMS4zYzguOCA0LjUgMTQuNiAxMy4zIDE0LjYgMjMuOC0uMSAxMC4yLTUuNSAxOS42LTE0LjIgMjQuNXpNNDY0IDQwMGE0OCA0OCAwIDEwOTYgMCA0OCA0OCAwIDEwLTk2IDB6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(RocketOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'RocketOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar CustomerServiceOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384zM328 632v192H200V632h128zm496 192H696V632h128v192z\" } }] }, \"name\": \"customer-service\", \"theme\": \"outlined\" };\nexport default CustomerServiceOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport CustomerServiceOutlinedSvg from \"@ant-design/icons-svg/es/asn/CustomerServiceOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar CustomerServiceOutlined = function CustomerServiceOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: CustomerServiceOutlinedSvg\n }));\n};\n\n/**![customer-service](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMiAxMjhjLTIxMi4xIDAtMzg0IDE3MS45LTM4NCAzODR2MzYwYzAgMTMuMyAxMC43IDI0IDI0IDI0aDE4NGMzNS4zIDAgNjQtMjguNyA2NC02NFY2MjRjMC0zNS4zLTI4LjctNjQtNjQtNjRIMjAwdi00OGMwLTE3Mi4zIDEzOS43LTMxMiAzMTItMzEyczMxMiAxMzkuNyAzMTIgMzEydjQ4SDY4OGMtMzUuMyAwLTY0IDI4LjctNjQgNjR2MjA4YzAgMzUuMyAyOC43IDY0IDY0IDY0aDE4NGMxMy4zIDAgMjQtMTAuNyAyNC0yNFY1MTJjMC0yMTIuMS0xNzEuOS0zODQtMzg0LTM4NHpNMzI4IDYzMnYxOTJIMjAwVjYzMmgxMjh6bTQ5NiAxOTJINjk2VjYzMmgxMjh2MTkyeiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(CustomerServiceOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'CustomerServiceOutlined';\n}\nexport default RefIcon;","import { Layout, Row, Col, Typography, Card, Divider, Tabs } from 'antd';\nimport { DollarOutlined, RocketOutlined, CustomerServiceOutlined, VerifiedOutlined } from '@ant-design/icons';\nimport { Helmet } from 'react-helmet';\nimport franko from '../../assets/franko_office.png';\nimport franco from '../../assets/franko_office2.png';\nimport { useEffect } from 'react';\n\nconst About = () => {\n const { Content } = Layout;\n const { Title, Paragraph } = Typography;\n const { TabPane } = Tabs;\n\n // Scroll to top when the page is loaded\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n return (\n <>\n \n Franko Trading | About Us\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
    \n {/* About Section */}\n \n \n About Us\n \n Franko Trading Limited is the leading retail and wholesale company of mobile phones, computers,\n laptops, televisions, and accessories. Established in 2004, we are committed to bringing the latest\n technological gadgets to Ghana at affordable prices. Our head office is located at Adabraka Opposite Roxy Cinema in Accra.\n \n \n Known as \"Phone Papa Fie\" (Home of Quality Phones), we ensure quality and affordability for every Ghanaian.\n \n \n \n \n \n \n\n {/* Tabs Section */}\n \n \n \n \n \n \n \n Our Vision\n \n To devote our human and technological resources to create superior household electronics and\n mobile phone markets through research and innovation in Ghana and the West African Sub-region.\n \n \n \n Our Mission\n \n To be the leader in inspiring Africa and the world with innovative products and designs,\n revolutionizing the electronics and mobile phone market.\n \n \n \n Our Values\n
      \n
    • Integrity
    • \n
    • Accountability
    • \n
    • Customer Satisfaction
    • \n
    • Teamwork
    • \n
    \n
    \n
    \n \n
    \n\n \n\n {/* Why Choose Us Section */}\n \n \n \n Why Choose Us\n \n \n {[\n {\n icon: ,\n title: 'Quality Products',\n description: 'We offer only the best electronics from top brands.',\n },\n {\n icon: ,\n title: 'Competitive Prices',\n description: 'Get the best deals and discounts on top products.',\n },\n {\n icon: ,\n title: 'Fast Shipping',\n description: 'Quick and reliable delivery to your doorstep.',\n },\n {\n icon: ,\n title: 'Excellent Support',\n description: 'Timely customer support to assist with your needs.',\n },\n ].map((item, index) => (\n \n \n {item.icon}\n {item.title}\n {item.description}\n \n \n ))}\n \n \n \n
    \n
    \n
    \n \n );\n};\n\nexport default About;\n","import { Keyframes } from '@ant-design/cssinjs';\nconst genNotificationPlacementStyle = token => {\n const {\n componentCls,\n notificationMarginEdge,\n animationMaxHeight\n } = token;\n const noticeCls = `${componentCls}-notice`;\n const rightFadeIn = new Keyframes('antNotificationFadeIn', {\n '0%': {\n transform: `translate3d(100%, 0, 0)`,\n opacity: 0\n },\n '100%': {\n transform: `translate3d(0, 0, 0)`,\n opacity: 1\n }\n });\n const topFadeIn = new Keyframes('antNotificationTopFadeIn', {\n '0%': {\n top: -animationMaxHeight,\n opacity: 0\n },\n '100%': {\n top: 0,\n opacity: 1\n }\n });\n const bottomFadeIn = new Keyframes('antNotificationBottomFadeIn', {\n '0%': {\n bottom: token.calc(animationMaxHeight).mul(-1).equal(),\n opacity: 0\n },\n '100%': {\n bottom: 0,\n opacity: 1\n }\n });\n const leftFadeIn = new Keyframes('antNotificationLeftFadeIn', {\n '0%': {\n transform: `translate3d(-100%, 0, 0)`,\n opacity: 0\n },\n '100%': {\n transform: `translate3d(0, 0, 0)`,\n opacity: 1\n }\n });\n return {\n [componentCls]: {\n [`&${componentCls}-top, &${componentCls}-bottom`]: {\n marginInline: 0,\n [noticeCls]: {\n marginInline: 'auto auto'\n }\n },\n [`&${componentCls}-top`]: {\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: topFadeIn\n }\n },\n [`&${componentCls}-bottom`]: {\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: bottomFadeIn\n }\n },\n [`&${componentCls}-topRight, &${componentCls}-bottomRight`]: {\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: rightFadeIn\n }\n },\n [`&${componentCls}-topLeft, &${componentCls}-bottomLeft`]: {\n marginRight: {\n value: 0,\n _skip_check_: true\n },\n marginLeft: {\n value: notificationMarginEdge,\n _skip_check_: true\n },\n [noticeCls]: {\n marginInlineEnd: 'auto',\n marginInlineStart: 0\n },\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationName: leftFadeIn\n }\n }\n }\n };\n};\nexport default genNotificationPlacementStyle;","export const NotificationPlacements = ['top', 'topLeft', 'topRight', 'bottom', 'bottomLeft', 'bottomRight'];","import { NotificationPlacements } from '../interface';\nconst placementAlignProperty = {\n topLeft: 'left',\n topRight: 'right',\n bottomLeft: 'left',\n bottomRight: 'right',\n top: 'left',\n bottom: 'left'\n};\nconst genPlacementStackStyle = (token, placement) => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-${placement}`]: {\n [`&${componentCls}-stack > ${componentCls}-notice-wrapper`]: {\n [placement.startsWith('top') ? 'top' : 'bottom']: 0,\n [placementAlignProperty[placement]]: {\n value: 0,\n _skip_check_: true\n }\n }\n }\n };\n};\nconst genStackChildrenStyle = token => {\n const childrenStyle = {};\n for (let i = 1; i < token.notificationStackLayer; i++) {\n childrenStyle[`&:nth-last-child(${i + 1})`] = {\n overflow: 'hidden',\n [`& > ${token.componentCls}-notice`]: {\n opacity: 0,\n transition: `opacity ${token.motionDurationMid}`\n }\n };\n }\n return Object.assign({\n [`&:not(:nth-last-child(-n+${token.notificationStackLayer}))`]: {\n opacity: 0,\n overflow: 'hidden',\n color: 'transparent',\n pointerEvents: 'none'\n }\n }, childrenStyle);\n};\nconst genStackedNoticeStyle = token => {\n const childrenStyle = {};\n for (let i = 1; i < token.notificationStackLayer; i++) {\n childrenStyle[`&:nth-last-child(${i + 1})`] = {\n background: token.colorBgBlur,\n backdropFilter: 'blur(10px)',\n '-webkit-backdrop-filter': 'blur(10px)'\n };\n }\n return Object.assign({}, childrenStyle);\n};\nconst genStackStyle = token => {\n const {\n componentCls\n } = token;\n return Object.assign({\n [`${componentCls}-stack`]: {\n [`& > ${componentCls}-notice-wrapper`]: Object.assign({\n transition: `transform ${token.motionDurationSlow}, backdrop-filter 0s`,\n willChange: 'transform, opacity',\n position: 'absolute'\n }, genStackChildrenStyle(token))\n },\n [`${componentCls}-stack:not(${componentCls}-stack-expanded)`]: {\n [`& > ${componentCls}-notice-wrapper`]: Object.assign({}, genStackedNoticeStyle(token))\n },\n [`${componentCls}-stack${componentCls}-stack-expanded`]: {\n [`& > ${componentCls}-notice-wrapper`]: {\n '&:not(:nth-last-child(-n + 1))': {\n opacity: 1,\n overflow: 'unset',\n color: 'inherit',\n pointerEvents: 'auto',\n [`& > ${token.componentCls}-notice`]: {\n opacity: 1\n }\n },\n '&:after': {\n content: '\"\"',\n position: 'absolute',\n height: token.margin,\n width: '100%',\n insetInline: 0,\n bottom: token.calc(token.margin).mul(-1).equal(),\n background: 'transparent',\n pointerEvents: 'auto'\n }\n }\n }\n }, NotificationPlacements.map(placement => genPlacementStackStyle(token, placement)).reduce((acc, cur) => Object.assign(Object.assign({}, acc), cur), {}));\n};\nexport default genStackStyle;","import { Keyframes, unit } from '@ant-design/cssinjs';\nimport { CONTAINER_MAX_OFFSET } from '../../_util/hooks/useZIndex';\nimport { genFocusStyle, resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genNotificationPlacementStyle from './placement';\nimport genStackStyle from './stack';\nexport const genNoticeStyle = token => {\n const {\n iconCls,\n componentCls,\n // .ant-notification\n boxShadow,\n fontSizeLG,\n notificationMarginBottom,\n borderRadiusLG,\n colorSuccess,\n colorInfo,\n colorWarning,\n colorError,\n colorTextHeading,\n notificationBg,\n notificationPadding,\n notificationMarginEdge,\n notificationProgressBg,\n notificationProgressHeight,\n fontSize,\n lineHeight,\n width,\n notificationIconSize,\n colorText\n } = token;\n const noticeCls = `${componentCls}-notice`;\n return {\n position: 'relative',\n marginBottom: notificationMarginBottom,\n marginInlineStart: 'auto',\n background: notificationBg,\n borderRadius: borderRadiusLG,\n boxShadow,\n [noticeCls]: {\n padding: notificationPadding,\n width,\n maxWidth: `calc(100vw - ${unit(token.calc(notificationMarginEdge).mul(2).equal())})`,\n overflow: 'hidden',\n lineHeight,\n wordWrap: 'break-word'\n },\n [`${noticeCls}-message`]: {\n marginBottom: token.marginXS,\n color: colorTextHeading,\n fontSize: fontSizeLG,\n lineHeight: token.lineHeightLG\n },\n [`${noticeCls}-description`]: {\n fontSize,\n color: colorText\n },\n [`${noticeCls}-closable ${noticeCls}-message`]: {\n paddingInlineEnd: token.paddingLG\n },\n [`${noticeCls}-with-icon ${noticeCls}-message`]: {\n marginBottom: token.marginXS,\n marginInlineStart: token.calc(token.marginSM).add(notificationIconSize).equal(),\n fontSize: fontSizeLG\n },\n [`${noticeCls}-with-icon ${noticeCls}-description`]: {\n marginInlineStart: token.calc(token.marginSM).add(notificationIconSize).equal(),\n fontSize\n },\n // Icon & color style in different selector level\n // https://github.com/ant-design/ant-design/issues/16503\n // https://github.com/ant-design/ant-design/issues/15512\n [`${noticeCls}-icon`]: {\n position: 'absolute',\n fontSize: notificationIconSize,\n lineHeight: 1,\n // icon-font\n [`&-success${iconCls}`]: {\n color: colorSuccess\n },\n [`&-info${iconCls}`]: {\n color: colorInfo\n },\n [`&-warning${iconCls}`]: {\n color: colorWarning\n },\n [`&-error${iconCls}`]: {\n color: colorError\n }\n },\n [`${noticeCls}-close`]: Object.assign({\n position: 'absolute',\n top: token.notificationPaddingVertical,\n insetInlineEnd: token.notificationPaddingHorizontal,\n color: token.colorIcon,\n outline: 'none',\n width: token.notificationCloseButtonSize,\n height: token.notificationCloseButtonSize,\n borderRadius: token.borderRadiusSM,\n transition: `background-color ${token.motionDurationMid}, color ${token.motionDurationMid}`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n '&:hover': {\n color: token.colorIconHover,\n backgroundColor: token.colorBgTextHover\n },\n '&:active': {\n backgroundColor: token.colorBgTextActive\n }\n }, genFocusStyle(token)),\n [`${noticeCls}-progress`]: {\n position: 'absolute',\n display: 'block',\n appearance: 'none',\n WebkitAppearance: 'none',\n inlineSize: `calc(100% - ${unit(borderRadiusLG)} * 2)`,\n left: {\n _skip_check_: true,\n value: borderRadiusLG\n },\n right: {\n _skip_check_: true,\n value: borderRadiusLG\n },\n bottom: 0,\n blockSize: notificationProgressHeight,\n border: 0,\n '&, &::-webkit-progress-bar': {\n borderRadius: borderRadiusLG,\n backgroundColor: `rgba(0, 0, 0, 0.04)`\n },\n '&::-moz-progress-bar': {\n background: notificationProgressBg\n },\n '&::-webkit-progress-value': {\n borderRadius: borderRadiusLG,\n background: notificationProgressBg\n }\n },\n [`${noticeCls}-actions`]: {\n float: 'right',\n marginTop: token.marginSM\n }\n };\n};\nconst genNotificationStyle = token => {\n const {\n componentCls,\n // .ant-notification\n notificationMarginBottom,\n notificationMarginEdge,\n motionDurationMid,\n motionEaseInOut\n } = token;\n const noticeCls = `${componentCls}-notice`;\n const fadeOut = new Keyframes('antNotificationFadeOut', {\n '0%': {\n maxHeight: token.animationMaxHeight,\n marginBottom: notificationMarginBottom\n },\n '100%': {\n maxHeight: 0,\n marginBottom: 0,\n paddingTop: 0,\n paddingBottom: 0,\n opacity: 0\n }\n });\n return [\n // ============================ Holder ============================\n {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n position: 'fixed',\n zIndex: token.zIndexPopup,\n marginRight: {\n value: notificationMarginEdge,\n _skip_check_: true\n },\n [`${componentCls}-hook-holder`]: {\n position: 'relative'\n },\n // animation\n [`${componentCls}-fade-appear-prepare`]: {\n opacity: '0 !important'\n },\n [`${componentCls}-fade-enter, ${componentCls}-fade-appear`]: {\n animationDuration: token.motionDurationMid,\n animationTimingFunction: motionEaseInOut,\n animationFillMode: 'both',\n opacity: 0,\n animationPlayState: 'paused'\n },\n [`${componentCls}-fade-leave`]: {\n animationTimingFunction: motionEaseInOut,\n animationFillMode: 'both',\n animationDuration: motionDurationMid,\n animationPlayState: 'paused'\n },\n [`${componentCls}-fade-enter${componentCls}-fade-enter-active, ${componentCls}-fade-appear${componentCls}-fade-appear-active`]: {\n animationPlayState: 'running'\n },\n [`${componentCls}-fade-leave${componentCls}-fade-leave-active`]: {\n animationName: fadeOut,\n animationPlayState: 'running'\n },\n // RTL\n '&-rtl': {\n direction: 'rtl',\n [`${noticeCls}-actions`]: {\n float: 'left'\n }\n }\n })\n },\n // ============================ Notice ============================\n {\n [componentCls]: {\n [`${noticeCls}-wrapper`]: Object.assign({}, genNoticeStyle(token))\n }\n }];\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => ({\n zIndexPopup: token.zIndexPopupBase + CONTAINER_MAX_OFFSET + 50,\n width: 384\n});\nexport const prepareNotificationToken = token => {\n const notificationPaddingVertical = token.paddingMD;\n const notificationPaddingHorizontal = token.paddingLG;\n const notificationToken = mergeToken(token, {\n notificationBg: token.colorBgElevated,\n notificationPaddingVertical,\n notificationPaddingHorizontal,\n notificationIconSize: token.calc(token.fontSizeLG).mul(token.lineHeightLG).equal(),\n notificationCloseButtonSize: token.calc(token.controlHeightLG).mul(0.55).equal(),\n notificationMarginBottom: token.margin,\n notificationPadding: `${unit(token.paddingMD)} ${unit(token.paddingContentHorizontalLG)}`,\n notificationMarginEdge: token.marginLG,\n animationMaxHeight: 150,\n notificationStackLayer: 3,\n notificationProgressHeight: 2,\n notificationProgressBg: `linear-gradient(90deg, ${token.colorPrimaryBorderHover}, ${token.colorPrimary})`\n });\n return notificationToken;\n};\nexport default genStyleHooks('Notification', token => {\n const notificationToken = prepareNotificationToken(token);\n return [genNotificationStyle(notificationToken), genNotificationPlacementStyle(notificationToken), genStackStyle(notificationToken)];\n}, prepareComponentToken);","import { unit } from '@ant-design/cssinjs';\nimport { genNoticeStyle, prepareComponentToken, prepareNotificationToken } from '.';\nimport { genSubStyleComponent } from '../../theme/internal';\nexport default genSubStyleComponent(['Notification', 'PurePanel'], token => {\n const noticeCls = `${token.componentCls}-notice`;\n const notificationToken = prepareNotificationToken(token);\n return {\n [`${noticeCls}-pure-panel`]: Object.assign(Object.assign({}, genNoticeStyle(notificationToken)), {\n width: notificationToken.width,\n maxWidth: `calc(100vw - ${unit(token.calc(notificationToken.notificationMarginEdge).mul(2).equal())})`,\n margin: 0\n })\n };\n}, prepareComponentToken);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport { Notice } from 'rc-notification';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport useStyle from './style';\nimport PurePanelStyle from './style/pure-panel';\nexport const TypeIcon = {\n info: /*#__PURE__*/React.createElement(InfoCircleFilled, null),\n success: /*#__PURE__*/React.createElement(CheckCircleFilled, null),\n error: /*#__PURE__*/React.createElement(CloseCircleFilled, null),\n warning: /*#__PURE__*/React.createElement(ExclamationCircleFilled, null),\n loading: /*#__PURE__*/React.createElement(LoadingOutlined, null)\n};\nexport function getCloseIcon(prefixCls, closeIcon) {\n if (closeIcon === null || closeIcon === false) {\n return null;\n }\n return closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {\n className: `${prefixCls}-close-icon`\n });\n}\nconst typeToIcon = {\n success: CheckCircleFilled,\n info: InfoCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled\n};\nexport const PureContent = props => {\n const {\n prefixCls,\n icon,\n type,\n message,\n description,\n actions,\n role = 'alert'\n } = props;\n let iconNode = null;\n if (icon) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-icon`\n }, icon);\n } else if (type) {\n iconNode = /*#__PURE__*/React.createElement(typeToIcon[type] || null, {\n className: classNames(`${prefixCls}-icon`, `${prefixCls}-icon-${type}`)\n });\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames({\n [`${prefixCls}-with-icon`]: iconNode\n }),\n role: role\n }, iconNode, /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-message`\n }, message), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-description`\n }, description), actions && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-actions`\n }, actions));\n};\n/** @private Internal Component. Do not use in your production. */\nconst PurePanel = props => {\n const {\n prefixCls: staticPrefixCls,\n className,\n icon,\n type,\n message,\n description,\n btn,\n actions,\n closable = true,\n closeIcon,\n className: notificationClassName\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"icon\", \"type\", \"message\", \"description\", \"btn\", \"actions\", \"closable\", \"closeIcon\", \"className\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const mergedActions = actions !== null && actions !== void 0 ? actions : btn;\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Notification');\n warning.deprecated(!btn, 'btn', 'actions');\n }\n const prefixCls = staticPrefixCls || getPrefixCls('notification');\n const noticePrefixCls = `${prefixCls}-notice`;\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${noticePrefixCls}-pure-panel`, hashId, className, cssVarCls, rootCls)\n }, /*#__PURE__*/React.createElement(PurePanelStyle, {\n prefixCls: prefixCls\n }), /*#__PURE__*/React.createElement(Notice, Object.assign({}, restProps, {\n prefixCls: prefixCls,\n eventKey: \"pure\",\n duration: null,\n closable: closable,\n className: classNames({\n notificationClassName\n }),\n closeIcon: getCloseIcon(prefixCls, closeIcon),\n content: /*#__PURE__*/React.createElement(PureContent, {\n prefixCls: noticePrefixCls,\n icon: icon,\n type: type,\n message: message,\n description: description,\n actions: mergedActions\n })\n }))));\n};\nexport default PurePanel;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { useContext } from 'react';\nimport classNames from 'classnames';\nimport { NotificationProvider, useNotification as useRcNotification } from 'rc-notification';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport useCSSVarCls from '../config-provider/hooks/useCSSVarCls';\nimport { useToken } from '../theme/internal';\nimport { getCloseIcon, PureContent } from './PurePanel';\nimport useStyle from './style';\nimport { getMotion, getPlacementStyle, getCloseIconConfig } from './util';\nconst DEFAULT_OFFSET = 24;\nconst DEFAULT_DURATION = 4.5;\nconst DEFAULT_PLACEMENT = 'topRight';\nconst Wrapper = _ref => {\n let {\n children,\n prefixCls\n } = _ref;\n const rootCls = useCSSVarCls(prefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, rootCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(NotificationProvider, {\n classNames: {\n list: classNames(hashId, cssVarCls, rootCls)\n }\n }, children));\n};\nconst renderNotifications = (node, _ref2) => {\n let {\n prefixCls,\n key\n } = _ref2;\n return /*#__PURE__*/React.createElement(Wrapper, {\n prefixCls: prefixCls,\n key: key\n }, node);\n};\nconst Holder = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n top,\n bottom,\n prefixCls: staticPrefixCls,\n getContainer: staticGetContainer,\n maxCount,\n rtl,\n onAllRemoved,\n stack,\n duration,\n pauseOnHover = true,\n showProgress\n } = props;\n const {\n getPrefixCls,\n getPopupContainer,\n notification,\n direction\n } = useContext(ConfigContext);\n const [, token] = useToken();\n const prefixCls = staticPrefixCls || getPrefixCls('notification');\n // =============================== Style ===============================\n const getStyle = placement => getPlacementStyle(placement, top !== null && top !== void 0 ? top : DEFAULT_OFFSET, bottom !== null && bottom !== void 0 ? bottom : DEFAULT_OFFSET);\n const getClassName = () => classNames({\n [`${prefixCls}-rtl`]: rtl !== null && rtl !== void 0 ? rtl : direction === 'rtl'\n });\n // ============================== Motion ===============================\n const getNotificationMotion = () => getMotion(prefixCls);\n // ============================== Origin ===============================\n const [api, holder] = useRcNotification({\n prefixCls,\n style: getStyle,\n className: getClassName,\n motion: getNotificationMotion,\n closable: true,\n closeIcon: getCloseIcon(prefixCls),\n duration: duration !== null && duration !== void 0 ? duration : DEFAULT_DURATION,\n getContainer: () => (staticGetContainer === null || staticGetContainer === void 0 ? void 0 : staticGetContainer()) || (getPopupContainer === null || getPopupContainer === void 0 ? void 0 : getPopupContainer()) || document.body,\n maxCount,\n pauseOnHover,\n showProgress,\n onAllRemoved,\n renderNotifications,\n stack: stack === false ? false : {\n threshold: typeof stack === 'object' ? stack === null || stack === void 0 ? void 0 : stack.threshold : undefined,\n offset: 8,\n gap: token.margin\n }\n });\n // ================================ Ref ================================\n React.useImperativeHandle(ref, () => Object.assign(Object.assign({}, api), {\n prefixCls,\n notification\n }));\n return holder;\n});\n// ==============================================================================\n// == Hook ==\n// ==============================================================================\nexport function useInternalNotification(notificationConfig) {\n const holderRef = React.useRef(null);\n const warning = devUseWarning('Notification');\n // ================================ API ================================\n const wrapAPI = React.useMemo(() => {\n // Wrap with notification content\n // >>> Open\n const open = config => {\n var _a;\n if (!holderRef.current) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'usage', 'You are calling notice in render which will break in React 18 concurrent mode. Please trigger in effect instead.') : void 0;\n return;\n }\n const {\n open: originOpen,\n prefixCls,\n notification\n } = holderRef.current;\n const noticePrefixCls = `${prefixCls}-notice`;\n const {\n message,\n description,\n icon,\n type,\n btn,\n actions,\n className,\n style,\n role = 'alert',\n closeIcon,\n closable\n } = config,\n restConfig = __rest(config, [\"message\", \"description\", \"icon\", \"type\", \"btn\", \"actions\", \"className\", \"style\", \"role\", \"closeIcon\", \"closable\"]);\n if (process.env.NODE_ENV !== 'production') {\n warning.deprecated(!btn, 'btn', 'actions');\n }\n const mergedActions = actions !== null && actions !== void 0 ? actions : btn;\n const realCloseIcon = getCloseIcon(noticePrefixCls, getCloseIconConfig(closeIcon, notificationConfig, notification));\n return originOpen(Object.assign(Object.assign({\n // use placement from props instead of hard-coding \"topRight\"\n placement: (_a = notificationConfig === null || notificationConfig === void 0 ? void 0 : notificationConfig.placement) !== null && _a !== void 0 ? _a : DEFAULT_PLACEMENT\n }, restConfig), {\n content: (/*#__PURE__*/React.createElement(PureContent, {\n prefixCls: noticePrefixCls,\n icon: icon,\n type: type,\n message: message,\n description: description,\n actions: mergedActions,\n role: role\n })),\n className: classNames(type && `${noticePrefixCls}-${type}`, className, notification === null || notification === void 0 ? void 0 : notification.className),\n style: Object.assign(Object.assign({}, notification === null || notification === void 0 ? void 0 : notification.style), style),\n closeIcon: realCloseIcon,\n closable: closable !== null && closable !== void 0 ? closable : !!realCloseIcon\n }));\n };\n // >>> destroy\n const destroy = key => {\n var _a, _b;\n if (key !== undefined) {\n (_a = holderRef.current) === null || _a === void 0 ? void 0 : _a.close(key);\n } else {\n (_b = holderRef.current) === null || _b === void 0 ? void 0 : _b.destroy();\n }\n };\n const clone = {\n open,\n destroy\n };\n const keys = ['success', 'info', 'warning', 'error'];\n keys.forEach(type => {\n clone[type] = config => open(Object.assign(Object.assign({}, config), {\n type\n }));\n });\n return clone;\n }, []);\n // ============================== Return ===============================\n return [wrapAPI, /*#__PURE__*/React.createElement(Holder, Object.assign({\n key: \"notification-holder\"\n }, notificationConfig, {\n ref: holderRef\n }))];\n}\nexport default function useNotification(notificationConfig) {\n return useInternalNotification(notificationConfig);\n}","export function getPlacementStyle(placement, top, bottom) {\n let style;\n switch (placement) {\n case 'top':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top,\n bottom: 'auto'\n };\n break;\n case 'topLeft':\n style = {\n left: 0,\n top,\n bottom: 'auto'\n };\n break;\n case 'topRight':\n style = {\n right: 0,\n top,\n bottom: 'auto'\n };\n break;\n case 'bottom':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top: 'auto',\n bottom\n };\n break;\n case 'bottomLeft':\n style = {\n left: 0,\n top: 'auto',\n bottom\n };\n break;\n default:\n style = {\n right: 0,\n top: 'auto',\n bottom\n };\n break;\n }\n return style;\n}\nexport function getMotion(prefixCls) {\n return {\n motionName: `${prefixCls}-fade`\n };\n}\nexport function getCloseIconConfig(closeIcon, notificationConfig, notification) {\n if (typeof closeIcon !== 'undefined') {\n return closeIcon;\n }\n if (typeof (notificationConfig === null || notificationConfig === void 0 ? void 0 : notificationConfig.closeIcon) !== 'undefined') {\n return notificationConfig.closeIcon;\n }\n return notification === null || notification === void 0 ? void 0 : notification.closeIcon;\n}","\"use client\";\n\nimport React, { useContext } from 'react';\nimport { AppConfigContext } from '../app/context';\nimport ConfigProvider, { ConfigContext, globalConfig, warnContext } from '../config-provider';\nimport { getReactRender } from '../config-provider/UnstableContext';\nimport PurePanel from './PurePanel';\nimport useNotification, { useInternalNotification } from './useNotification';\nlet notification = null;\nlet act = callback => callback();\nlet taskQueue = [];\nlet defaultGlobalConfig = {};\nfunction getGlobalContext() {\n const {\n getContainer,\n rtl,\n maxCount,\n top,\n bottom,\n showProgress,\n pauseOnHover\n } = defaultGlobalConfig;\n const mergedContainer = (getContainer === null || getContainer === void 0 ? void 0 : getContainer()) || document.body;\n return {\n getContainer: () => mergedContainer,\n rtl,\n maxCount,\n top,\n bottom,\n showProgress,\n pauseOnHover\n };\n}\nconst GlobalHolder = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n notificationConfig,\n sync\n } = props;\n const {\n getPrefixCls\n } = useContext(ConfigContext);\n const prefixCls = defaultGlobalConfig.prefixCls || getPrefixCls('notification');\n const appConfig = useContext(AppConfigContext);\n const [api, holder] = useInternalNotification(Object.assign(Object.assign(Object.assign({}, notificationConfig), {\n prefixCls\n }), appConfig.notification));\n React.useEffect(sync, []);\n React.useImperativeHandle(ref, () => {\n const instance = Object.assign({}, api);\n Object.keys(instance).forEach(method => {\n instance[method] = function () {\n sync();\n return api[method].apply(api, arguments);\n };\n });\n return {\n instance,\n sync\n };\n });\n return holder;\n});\nconst GlobalHolderWrapper = /*#__PURE__*/React.forwardRef((_, ref) => {\n const [notificationConfig, setNotificationConfig] = React.useState(getGlobalContext);\n const sync = () => {\n setNotificationConfig(getGlobalContext);\n };\n React.useEffect(sync, []);\n const global = globalConfig();\n const rootPrefixCls = global.getRootPrefixCls();\n const rootIconPrefixCls = global.getIconPrefixCls();\n const theme = global.getTheme();\n const dom = /*#__PURE__*/React.createElement(GlobalHolder, {\n ref: ref,\n sync: sync,\n notificationConfig: notificationConfig\n });\n return /*#__PURE__*/React.createElement(ConfigProvider, {\n prefixCls: rootPrefixCls,\n iconPrefixCls: rootIconPrefixCls,\n theme: theme\n }, global.holderRender ? global.holderRender(dom) : dom);\n});\nfunction flushNotice() {\n if (!notification) {\n const holderFragment = document.createDocumentFragment();\n const newNotification = {\n fragment: holderFragment\n };\n notification = newNotification;\n // Delay render to avoid sync issue\n act(() => {\n const reactRender = getReactRender();\n reactRender(/*#__PURE__*/React.createElement(GlobalHolderWrapper, {\n ref: node => {\n const {\n instance,\n sync\n } = node || {};\n Promise.resolve().then(() => {\n if (!newNotification.instance && instance) {\n newNotification.instance = instance;\n newNotification.sync = sync;\n flushNotice();\n }\n });\n }\n }), holderFragment);\n });\n return;\n }\n // Notification not ready\n if (!notification.instance) {\n return;\n }\n // >>> Execute task\n taskQueue.forEach(task => {\n switch (task.type) {\n case 'open':\n {\n act(() => {\n notification.instance.open(Object.assign(Object.assign({}, defaultGlobalConfig), task.config));\n });\n break;\n }\n case 'destroy':\n act(() => {\n notification === null || notification === void 0 ? void 0 : notification.instance.destroy(task.key);\n });\n break;\n }\n });\n // Clean up\n taskQueue = [];\n}\n// ==============================================================================\n// == Export ==\n// ==============================================================================\nfunction setNotificationGlobalConfig(config) {\n defaultGlobalConfig = Object.assign(Object.assign({}, defaultGlobalConfig), config);\n // Trigger sync for it\n act(() => {\n var _a;\n (_a = notification === null || notification === void 0 ? void 0 : notification.sync) === null || _a === void 0 ? void 0 : _a.call(notification);\n });\n}\nfunction open(config) {\n const global = globalConfig();\n if (process.env.NODE_ENV !== 'production' && !global.holderRender) {\n warnContext('notification');\n }\n taskQueue.push({\n type: 'open',\n config\n });\n flushNotice();\n}\nconst destroy = key => {\n taskQueue.push({\n type: 'destroy',\n key\n });\n flushNotice();\n};\nconst methods = ['success', 'info', 'warning', 'error'];\nconst baseStaticMethods = {\n open,\n destroy,\n config: setNotificationGlobalConfig,\n useNotification,\n _InternalPanelDoNotUseOrYouWillBeFired: PurePanel\n};\nconst staticMethods = baseStaticMethods;\nmethods.forEach(type => {\n staticMethods[type] = config => open(Object.assign(Object.assign({}, config), {\n type\n }));\n});\n// ==============================================================================\n// == Test ==\n// ==============================================================================\nconst noop = () => {};\n/** @internal Only Work in test env */\n// eslint-disable-next-line import/no-mutable-exports\nexport let actWrapper = noop;\nif (process.env.NODE_ENV === 'test') {\n actWrapper = wrapper => {\n act = wrapper;\n };\n}\n/** @internal Only Work in test env */\n// eslint-disable-next-line import/no-mutable-exports\nexport let actDestroy = noop;\nif (process.env.NODE_ENV === 'test') {\n actDestroy = () => {\n notification = null;\n };\n}\nexport default staticMethods;","// This icon file is generated automatically.\nvar InstagramOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 306.9c-113.5 0-205.1 91.6-205.1 205.1S398.5 717.1 512 717.1 717.1 625.5 717.1 512 625.5 306.9 512 306.9zm0 338.4c-73.4 0-133.3-59.9-133.3-133.3S438.6 378.7 512 378.7 645.3 438.6 645.3 512 585.4 645.3 512 645.3zm213.5-394.6c-26.5 0-47.9 21.4-47.9 47.9s21.4 47.9 47.9 47.9 47.9-21.3 47.9-47.9a47.84 47.84 0 00-47.9-47.9zM911.8 512c0-55.2.5-109.9-2.6-165-3.1-64-17.7-120.8-64.5-167.6-46.9-46.9-103.6-61.4-167.6-64.5-55.2-3.1-109.9-2.6-165-2.6-55.2 0-109.9-.5-165 2.6-64 3.1-120.8 17.7-167.6 64.5C132.6 226.3 118.1 283 115 347c-3.1 55.2-2.6 109.9-2.6 165s-.5 109.9 2.6 165c3.1 64 17.7 120.8 64.5 167.6 46.9 46.9 103.6 61.4 167.6 64.5 55.2 3.1 109.9 2.6 165 2.6 55.2 0 109.9.5 165-2.6 64-3.1 120.8-17.7 167.6-64.5 46.9-46.9 61.4-103.6 64.5-167.6 3.2-55.1 2.6-109.8 2.6-165zm-88 235.8c-7.3 18.2-16.1 31.8-30.2 45.8-14.1 14.1-27.6 22.9-45.8 30.2C695.2 844.7 570.3 840 512 840c-58.3 0-183.3 4.7-235.9-16.1-18.2-7.3-31.8-16.1-45.8-30.2-14.1-14.1-22.9-27.6-30.2-45.8C179.3 695.2 184 570.3 184 512c0-58.3-4.7-183.3 16.1-235.9 7.3-18.2 16.1-31.8 30.2-45.8s27.6-22.9 45.8-30.2C328.7 179.3 453.7 184 512 184s183.3-4.7 235.9 16.1c18.2 7.3 31.8 16.1 45.8 30.2 14.1 14.1 22.9 27.6 30.2 45.8C844.7 328.7 840 453.7 840 512c0 58.3 4.7 183.2-16.2 235.8z\" } }] }, \"name\": \"instagram\", \"theme\": \"outlined\" };\nexport default InstagramOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport InstagramOutlinedSvg from \"@ant-design/icons-svg/es/asn/InstagramOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar InstagramOutlined = function InstagramOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: InstagramOutlinedSvg\n }));\n};\n\n/**![instagram](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMiAzMDYuOWMtMTEzLjUgMC0yMDUuMSA5MS42LTIwNS4xIDIwNS4xUzM5OC41IDcxNy4xIDUxMiA3MTcuMSA3MTcuMSA2MjUuNSA3MTcuMSA1MTIgNjI1LjUgMzA2LjkgNTEyIDMwNi45em0wIDMzOC40Yy03My40IDAtMTMzLjMtNTkuOS0xMzMuMy0xMzMuM1M0MzguNiAzNzguNyA1MTIgMzc4LjcgNjQ1LjMgNDM4LjYgNjQ1LjMgNTEyIDU4NS40IDY0NS4zIDUxMiA2NDUuM3ptMjEzLjUtMzk0LjZjLTI2LjUgMC00Ny45IDIxLjQtNDcuOSA0Ny45czIxLjQgNDcuOSA0Ny45IDQ3LjkgNDcuOS0yMS4zIDQ3LjktNDcuOWE0Ny44NCA0Ny44NCAwIDAwLTQ3LjktNDcuOXpNOTExLjggNTEyYzAtNTUuMi41LTEwOS45LTIuNi0xNjUtMy4xLTY0LTE3LjctMTIwLjgtNjQuNS0xNjcuNi00Ni45LTQ2LjktMTAzLjYtNjEuNC0xNjcuNi02NC41LTU1LjItMy4xLTEwOS45LTIuNi0xNjUtMi42LTU1LjIgMC0xMDkuOS0uNS0xNjUgMi42LTY0IDMuMS0xMjAuOCAxNy43LTE2Ny42IDY0LjVDMTMyLjYgMjI2LjMgMTE4LjEgMjgzIDExNSAzNDdjLTMuMSA1NS4yLTIuNiAxMDkuOS0yLjYgMTY1cy0uNSAxMDkuOSAyLjYgMTY1YzMuMSA2NCAxNy43IDEyMC44IDY0LjUgMTY3LjYgNDYuOSA0Ni45IDEwMy42IDYxLjQgMTY3LjYgNjQuNSA1NS4yIDMuMSAxMDkuOSAyLjYgMTY1IDIuNiA1NS4yIDAgMTA5LjkuNSAxNjUtMi42IDY0LTMuMSAxMjAuOC0xNy43IDE2Ny42LTY0LjUgNDYuOS00Ni45IDYxLjQtMTAzLjYgNjQuNS0xNjcuNiAzLjItNTUuMSAyLjYtMTA5LjggMi42LTE2NXptLTg4IDIzNS44Yy03LjMgMTguMi0xNi4xIDMxLjgtMzAuMiA0NS44LTE0LjEgMTQuMS0yNy42IDIyLjktNDUuOCAzMC4yQzY5NS4yIDg0NC43IDU3MC4zIDg0MCA1MTIgODQwYy01OC4zIDAtMTgzLjMgNC43LTIzNS45LTE2LjEtMTguMi03LjMtMzEuOC0xNi4xLTQ1LjgtMzAuMi0xNC4xLTE0LjEtMjIuOS0yNy42LTMwLjItNDUuOEMxNzkuMyA2OTUuMiAxODQgNTcwLjMgMTg0IDUxMmMwLTU4LjMtNC43LTE4My4zIDE2LjEtMjM1LjkgNy4zLTE4LjIgMTYuMS0zMS44IDMwLjItNDUuOHMyNy42LTIyLjkgNDUuOC0zMC4yQzMyOC43IDE3OS4zIDQ1My43IDE4NCA1MTIgMTg0czE4My4zLTQuNyAyMzUuOSAxNi4xYzE4LjIgNy4zIDMxLjggMTYuMSA0NS44IDMwLjIgMTQuMSAxNC4xIDIyLjkgMjcuNiAzMC4yIDQ1LjhDODQ0LjcgMzI4LjcgODQwIDQ1My43IDg0MCA1MTJjMCA1OC4zIDQuNyAxODMuMi0xNi4yIDIzNS44eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(InstagramOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'InstagramOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar XOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"fill-rule\": \"evenodd\", \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M921 912L601.11 445.75l.55.43L890.08 112H793.7L558.74 384 372.15 112H119.37l298.65 435.31-.04-.04L103 912h96.39L460.6 609.38 668.2 912zM333.96 184.73l448.83 654.54H706.4L257.2 184.73z\" } }] }, \"name\": \"x\", \"theme\": \"outlined\" };\nexport default XOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport XOutlinedSvg from \"@ant-design/icons-svg/es/asn/XOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar XOutlined = function XOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: XOutlinedSvg\n }));\n};\n\n/**![x](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdmlld0JveD0iNjQgNjQgODk2IDg5NiIgZm9jdXNhYmxlPSJmYWxzZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOTIxIDkxMkw2MDEuMTEgNDQ1Ljc1bC41NS40M0w4OTAuMDggMTEySDc5My43TDU1OC43NCAzODQgMzcyLjE1IDExMkgxMTkuMzdsMjk4LjY1IDQzNS4zMS0uMDQtLjA0TDEwMyA5MTJoOTYuMzlMNDYwLjYgNjA5LjM4IDY2OC4yIDkxMnpNMzMzLjk2IDE4NC43M2w0NDguODMgNjU0LjU0SDcwNi40TDI1Ny4yIDE4NC43M3oiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(XOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'XOutlined';\n}\nexport default RefIcon;","export class EmailJSResponseStatus {\n constructor(_status = 0, _text = 'Network Error') {\n this.status = _status;\n this.text = _text;\n }\n}\n","export const createWebStorage = () => {\n if (typeof localStorage === 'undefined')\n return;\n return {\n get: (key) => Promise.resolve(localStorage.getItem(key)),\n set: (key, value) => Promise.resolve(localStorage.setItem(key, value)),\n remove: (key) => Promise.resolve(localStorage.removeItem(key)),\n };\n};\n","import { createWebStorage } from '../utils/createWebStorage/createWebStorage';\nexport const store = {\n origin: 'https://api.emailjs.com',\n blockHeadless: false,\n storageProvider: createWebStorage(),\n};\n","export const buildOptions = (options) => {\n if (!options)\n return {};\n // support compatibility with SDK v3\n if (typeof options === 'string') {\n return {\n publicKey: options,\n };\n }\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n if (options.toString() === '[object Object]') {\n return options;\n }\n return {};\n};\n","import { EmailJSResponseStatus } from '../models/EmailJSResponseStatus';\nimport { store } from '../store/store';\nexport const sendPost = async (url, data, headers = {}) => {\n const response = await fetch(store.origin + url, {\n method: 'POST',\n headers,\n body: data,\n });\n const message = await response.text();\n const responseStatus = new EmailJSResponseStatus(response.status, message);\n if (response.ok) {\n return responseStatus;\n }\n throw responseStatus;\n};\n","export const validateParams = (publicKey, serviceID, templateID) => {\n if (!publicKey || typeof publicKey !== 'string') {\n throw 'The public key is required. Visit https://dashboard.emailjs.com/admin/account';\n }\n if (!serviceID || typeof serviceID !== 'string') {\n throw 'The service ID is required. Visit https://dashboard.emailjs.com/admin';\n }\n if (!templateID || typeof templateID !== 'string') {\n throw 'The template ID is required. Visit https://dashboard.emailjs.com/admin/templates';\n }\n};\n","export const isHeadless = (navigator) => {\n return navigator.webdriver || !navigator.languages || navigator.languages.length === 0;\n};\n","import { EmailJSResponseStatus } from '../../models/EmailJSResponseStatus';\nexport const headlessError = () => {\n return new EmailJSResponseStatus(451, 'Unavailable For Headless Browser');\n};\n","import { validateBlockListParams } from '../validateBlockListParams/validateBlockListParams';\nconst isBlockListDisabled = (options) => {\n return !options.list?.length || !options.watchVariable;\n};\nconst getValue = (data, name) => {\n return data instanceof FormData ? data.get(name) : data[name];\n};\nexport const isBlockedValueInParams = (options, params) => {\n if (isBlockListDisabled(options))\n return false;\n validateBlockListParams(options.list, options.watchVariable);\n const value = getValue(params, options.watchVariable);\n if (typeof value !== 'string')\n return false;\n return options.list.includes(value);\n};\n","export const validateBlockListParams = (list, watchVariable) => {\n if (!Array.isArray(list)) {\n throw 'The BlockList list has to be an array';\n }\n if (typeof watchVariable !== 'string') {\n throw 'The BlockList watchVariable has to be a string';\n }\n};\n","import { EmailJSResponseStatus } from '../../models/EmailJSResponseStatus';\nexport const blockedEmailError = () => {\n return new EmailJSResponseStatus(403, 'Forbidden');\n};\n","import { validateLimitRateParams } from '../validateLimitRateParams/validateLimitRateParams';\nconst getLeftTime = async (id, throttle, storage) => {\n const lastTime = Number((await storage.get(id)) || 0);\n return throttle - Date.now() + lastTime;\n};\nexport const isLimitRateHit = async (defaultID, options, storage) => {\n if (!options.throttle || !storage) {\n return false;\n }\n validateLimitRateParams(options.throttle, options.id);\n const id = options.id || defaultID;\n const leftTime = await getLeftTime(id, options.throttle, storage);\n if (leftTime > 0) {\n return true;\n }\n await storage.set(id, Date.now().toString());\n return false;\n};\n","export const validateLimitRateParams = (throttle, id) => {\n if (typeof throttle !== 'number' || throttle < 0) {\n throw 'The LimitRate throttle has to be a positive number';\n }\n if (id && typeof id !== 'string') {\n throw 'The LimitRate ID has to be a non-empty string';\n }\n};\n","import { EmailJSResponseStatus } from '../../models/EmailJSResponseStatus';\nexport const limitRateError = () => {\n return new EmailJSResponseStatus(429, 'Too Many Requests');\n};\n","import { EmailJSResponseStatus } from './models/EmailJSResponseStatus';\nimport { init } from './methods/init/init';\nimport { send } from './methods/send/send';\nimport { sendForm } from './methods/sendForm/sendForm';\nexport { init, send, sendForm, EmailJSResponseStatus };\nexport default {\n init,\n send,\n sendForm,\n EmailJSResponseStatus,\n};\n","import { store } from '../../store/store';\nimport { sendPost } from '../../api/sendPost';\nimport { buildOptions } from '../../utils/buildOptions/buildOptions';\nimport { validateParams } from '../../utils/validateParams/validateParams';\nimport { validateTemplateParams } from '../../utils/validateTemplateParams/validateTemplateParams';\nimport { isHeadless } from '../../utils/isHeadless/isHeadless';\nimport { headlessError } from '../../errors/headlessError/headlessError';\nimport { isBlockedValueInParams } from '../../utils/isBlockedValueInParams/isBlockedValueInParams';\nimport { blockedEmailError } from '../../errors/blockedEmailError/blockedEmailError';\nimport { isLimitRateHit } from '../../utils/isLimitRateHit/isLimitRateHit';\nimport { limitRateError } from '../../errors/limitRateError/limitRateError';\n/**\n * Send a template to the specific EmailJS service\n * @param {string} serviceID - the EmailJS service ID\n * @param {string} templateID - the EmailJS template ID\n * @param {object} templateParams - the template params, what will be set to the EmailJS template\n * @param {object} options - the EmailJS SDK config options\n * @returns {Promise}\n */\nexport const send = async (serviceID, templateID, templateParams, options) => {\n const opts = buildOptions(options);\n const publicKey = opts.publicKey || store.publicKey;\n const blockHeadless = opts.blockHeadless || store.blockHeadless;\n const storageProvider = opts.storageProvider || store.storageProvider;\n const blockList = { ...store.blockList, ...opts.blockList };\n const limitRate = { ...store.limitRate, ...opts.limitRate };\n if (blockHeadless && isHeadless(navigator)) {\n return Promise.reject(headlessError());\n }\n validateParams(publicKey, serviceID, templateID);\n validateTemplateParams(templateParams);\n if (templateParams && isBlockedValueInParams(blockList, templateParams)) {\n return Promise.reject(blockedEmailError());\n }\n if (await isLimitRateHit(location.pathname, limitRate, storageProvider)) {\n return Promise.reject(limitRateError());\n }\n const params = {\n lib_version: '4.4.1',\n user_id: publicKey,\n service_id: serviceID,\n template_id: templateID,\n template_params: templateParams,\n };\n return sendPost('/api/v1.0/email/send', JSON.stringify(params), {\n 'Content-type': 'application/json',\n });\n};\n","export const validateTemplateParams = (templateParams) => {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n if (templateParams && templateParams.toString() !== '[object Object]') {\n throw 'The template params have to be the object. Visit https://www.emailjs.com/docs/sdk/send/';\n }\n};\n","import {\n Layout,\n Row,\n Col,\n Card,\n Typography,\n Form,\n Input,\n Button,\n Table,\n notification,\n Tooltip,\n } from \"antd\";\n import {\n PhoneOutlined,\n MailOutlined,\n FacebookOutlined,\n InstagramOutlined,\n XOutlined,\n } from \"@ant-design/icons\";\n import { FaTiktok, FaWhatsapp } from \"react-icons/fa\";\n import emailjs from \"@emailjs/browser\";\n import \"./Contact.css\";\n import { Helmet } from \"react-helmet\";\n \n const { Content } = Layout;\n const { Title, Paragraph } = Typography;\n \n const Contact = () => {\n const locations = [\n {\n title: \"ADABRAKA\",\n address: \"OPPOSITE ROXY BUS STOP ADABRAKA - ACCRA\",\n tel: \"0264189099\",\n lat: 5.558,\n lng: -0.2057,\n },\n {\n title: \"ACCRA\",\n address: \"UTC NEAR DESPITE BUILDING\",\n tel: \"0561925889\",\n lat: 5.552,\n lng: -0.2022,\n },\n {\n title: \"CIRCLE\",\n address: \"NEAR ODO RICE BUILDING\",\n tel: \"0302250396\",\n lat: 5.5599,\n lng: -0.2076,\n },\n {\n title: \"CIRCLE\",\n address: \"OPPOSITE ODO RICE BUILDING\",\n tel: \"0261506861\",\n lat: 5.559,\n lng: -0.207,\n },\n \n {\n title: \"CIRCLE\",\n address: \"ADJACENT ODO RICE BUILDING\",\n tel: \"0509842053\",\n lat: 5.5591,\n lng: -0.2069,\n },\n {\n title: \"OSU\",\n address: \"OXFORD STREET BEHIND VODAFONE OFFICE\",\n tel: \"0302772103\",\n lat: 5.557,\n lng: -0.182,\n },\n {\n title: \"TEMA\",\n address: \"COMMUNITY 1 STADIUM ROAD OPPOSITE WATER WORKS\",\n tel: \"0303214499\",\n lat: 5.678,\n lng: -0.0166,\n },\n {\n title: \"MADINA\",\n address: \"MADINA OLD ROAD AROUND ABSA BANK, REPUBLIC BANK\",\n tel: \"0241184688\",\n lat: 5.683,\n lng: -0.1654,\n },\n {\n title: \"HAATSO\",\n address: \"HAATSO STATION/BEIGE CAPITAL BUILDING, OPPOSITE MTN\",\n tel: \"0243628837\",\n lat: 5.653,\n lng: -0.213,\n },\n {\n title: \"LAPAZ\",\n address: \"NII BOI JUNCTION OPPOSITE PRUDENTIAL BANK\",\n tel: \"0561944202\",\n lat: 5.607,\n lng: -0.235,\n },\n {\n title: \"KASOA\",\n address: \"OPPOSITE POLYCLINIC\",\n tel: \"0264084686\",\n lat: 5.534,\n lng: -0.4244,\n },\n {\n title: \"KOFORIDUA\",\n address: \"ALL NATION UNIVERSITY TOWERS, PRINCE BOATENG AROUND ABOUT\",\n tel: \"0268313323\",\n lat: 6.09,\n lng: -0.259,\n },\n {\n title: \"KUMASI\",\n address: \"OPPOSITE HOTEL DE KINGSWAY\",\n tel: \"0322041018\",\n lat: 6.692,\n lng: -1.618,\n },\n {\n title: \"KUMASI\",\n address: \"ASEDA HOUSE OPPOSITE CHALLENGE BOOKSHOP\",\n tel: \"0322081949\",\n lat: 6.688,\n lng: -1.622,\n },\n {\n title: \"KUMASI\",\n address: \"ADJACENT MELCOM ADUM\",\n tel: \"0322047303\",\n lat: 6.693,\n lng: -1.619,\n },\n {\n title: \"KUMASI\",\n address: \"NEAR BARCLAYS BANK\",\n tel: \"0206310483\",\n lat: 6.691,\n lng: -1.6225,\n },\n {\n title: \"KUMASI\",\n address: \"NEAR KUFFOUR CLINIC\",\n tel: \"0501538602\",\n lat: 6.694,\n lng: -1.621,\n },\n {\n title: \"KUMASI\",\n address: \"OPPOSITE KEJETIA\",\n tel: \"0501525698\",\n lat: 6.69,\n lng: -1.623,\n },\n {\n title: \"HO\",\n address: \"OPPOSITE AMEGASHI (GOD IS GREAT BUILDING)\",\n tel: \"0362025775\",\n lat: 6.612,\n lng: 0.47,\n },\n {\n title: \"HO ANNEX\",\n address: \"NEAR THE HO MAIN STATION\",\n tel: \"0501647165\",\n lat: 6.6125,\n lng: 0.4695,\n },\n {\n title: \"SUNYANI\",\n address: \"OPPOSITE COCOA BOARD\",\n tel: \"0202765836\",\n lat: 7.34,\n lng: -2.326,\n },\n {\n title: \"TECHIMAN\",\n address: \"TECHIMAN TAXI RANK NEAR REPUBLIC BANK\",\n tel: \"0352522426\",\n lat: 7.583,\n lng: -1.939,\n },\n {\n title: \"BEREKUM\",\n address: \"BEREKUM ROUNDABOUT OPPOSITE SG-SSB BANK\",\n tel: \"0209835344\",\n lat: 7.456,\n lng: -2.586,\n },\n {\n title: \"CAPE COAST\",\n address: \"LONDON BRIDGE OPPOSITE OLD GUINNESS DEPOT\",\n tel: \"0264212339\",\n lat: 5.106,\n lng: -1.246,\n },\n {\n title: \"TAKORADI\",\n address: \"CAPE COAST STATION NEAR SUPER STAR HOTEL\",\n tel: \"0249902589\",\n lat: 4.889,\n lng: -1.755,\n },\n {\n title: \"TARKWA\",\n address: \"TARKWA STATION NEAR THE SHELL FILLING STATION\",\n tel: \"0312320144\",\n lat: 5.312,\n lng: -1.995,\n },\n {\n title: \"TAMALE\",\n address: \"OLD SALAGA STATION NEAR PK\",\n tel: \"0265462241\",\n lat: 9.407,\n lng: -0.853,\n },\n {\n title: \"HOHOE\",\n address: \"JAHLEX STORE NEAR THE TRAFFIC LIGHT\",\n tel: \"0558106241\",\n lat: 7.15,\n lng: 0.473,\n },\n {\n title: \"WA\",\n address: \"ZONGO OPPOSITE MAMA'S KITCHEN\",\n tel: \"0261915228\",\n lat: 10.06,\n lng: -2.501,\n },\n {\n title: \"WA\",\n address: \"WA MAIN STATION\",\n tel: \"0507316718\",\n lat: 10.0605,\n lng: -2.5005,\n },\n {\n title: \"BOLGA\",\n address: \"COMMERCIAL STREET NEAR ACCESS BANK\",\n tel: \"0501538603\",\n lat: 10.787,\n lng: -0.851,\n },\n {\n title: \"OBUASI\",\n address: \"CENTRAL MOSQUE-OPPOSITE ADANSI RURAL BANK\",\n tel: \"0263535131\",\n lat: 6.204,\n lng: -1.666,\n },\n {\n title: \"SWEDRU\",\n address: \"OPPOSITE MELCOM\",\n tel: \"0557872937\",\n lat: 5.532,\n lng: -0.682,\n },\n {\n title: \"ASHIAMAN\",\n address: \"OPPOSITE MAIN LORRY STATION\",\n tel: \"0509570736\",\n lat: 5.688,\n lng: -0.04,\n },\n {\n title: \"CIRCLE SERVICE CENTER\",\n address: \"NEAR ODO RICE\",\n tel: \"0501575745\",\n lat: 5.5597,\n lng: -0.208,\n },\n {\n title: \"KUMASI SERVICE CENTER\",\n address: \"ADUM BEHIND THE OLD MELCOM BUILDING\",\n tel: \"0322033821\",\n lat: 6.693,\n lng: -1.619,\n },\n {\n title: \"TAMALE SERVICE CENTER\",\n address: \"ADJACENT QUALITY FIRST SHOPPING CENTER\",\n tel: \"0501505020\",\n lat: 9.411,\n lng: -0.856,\n },\n {\n title: \"TOGO\",\n address: \"\",\n tel: \"+228 92 01 97 45\",\n lat: 6.137,\n lng: 1.212,\n },\n ];\n \n const columns = [\n {\n title: \"Shop Name\",\n dataIndex: \"title\",\n key: \"title\",\n },\n {\n title: \"Address\",\n dataIndex: \"address\",\n key: \"address\",\n render: (text, record) => (\n \n {text}\n \n ),\n },\n {\n title: \"Telephone\",\n dataIndex: \"tel\",\n key: \"tel\",\n render: (text) => (\n {text}\n ),\n },\n ];\n \n \n const handleFormSubmit = (values) => {\n emailjs\n .send(\"service_1rrjoml\", \"template_ypg8soa\", values, \"YOUR_USER_ID\")\n .then((_response) => {\n console.log(_response);\n notification.success({\n message: \"Message Sent\",\n description: \"Your message has been sent successfully!\",\n });\n })\n .catch((error) => {\n console.log(error);\n notification.error({\n message: \"Message Failed\",\n description:\n \"There was an error sending your message. Please try again later.\",\n });\n });\n };\n \n return (\n \n \n Contact Franko Trading Enterprise\n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n

    Contact Us

    \n \n \n \n \n Call Us\n We are available 6 days a week.\n 0246422338\n \n Follow Us\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 Write To Us\n \n Fill out our form and we will contact you within 24 hours.\n \n \n online@frankotrading.com\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 Send Message\n \n \n \n
    \n

    Our Locations

    \n \n \n \n \n \n
    \n
    \n
    \n );\n };\n \n export default Contact;","import React from \"react\";\nimport { Row, Col, Card, Typography } from \"antd\";\n\nconst { Title, Paragraph } = Typography;\n\nfunction Policies() {\n return (\n
    \n \n \n \n \n FRANKO TRADING LIMITED\n \n\n \n RETURN POLICY\n \n\n \n Subject to Terms and Conditions, Franko Trading Enterprise offers\n returns and/or exchange or refund for items purchased within{\" \"}\n 7 DAYS OF PURCHASE. We do not accept returns and\n or exchange for any reason whatsoever after the stated period has\n elapsed.\n \n\n \n ELIGIBILITY FOR REFUND, RETURN, AND/OR EXCHANGE\n \n\n {/* WRONG ITEM DELIVERED Card */}\n \n \n WRONG ITEM DELIVERED\n \n
      \n
    • The seals on the box must not be broken/opened.
    • \n
    • There should be no dents and liquid intrusion on the item.
    • \n
    • Proof of Purchase/Receipt must be provided.
    • \n
    \n \n\n {/* MANUFACTURING DEFECTS Card */}\n \n \n MANUFACTURING DEFECTS\n \n
      \n
    • \n Within the 7 days, defective items would be replaced with the\n same piece/unit (depending on stock availability).\n
    • \n
    • \n All items shall go through inspection and diagnosis on return\n to verify the reason provided.\n
    • \n
    • \n Returns (defective items) after 7 days would be sent to the\n Brand’s Service Centre for repairs under the Manufacturer\n Warranty.\n
    • \n
    \n \n\n {/* INCOMPLETE PACKAGE Card */}\n \n \n INCOMPLETE PACKAGE\n \n
      \n
    • \n Incomplete package or missing complementary items must be\n reported within 7 days for immediate redress.\n
    • \n
    \n \n\n \n REFUND/CHARGE BACK POLICY\n \n\n {/* UNDELIVERED ORDER/PACKAGE Card */}\n \n \n UNDELIVERED ORDER/PACKAGE\n \n
      \n
    • \n Refund/charge back request for undelivered orders will go\n through vetting and approval, with refunds made within 30\n days.\n
    • \n
    • \n Charge back requests must be initiated through customer’s bank\n for payments made via credit card or other banking platforms.\n
    • \n
    • \n Refunds will be made by cheque for accounting purposes.\n
    • \n
    \n \n \n \n
    \n
    \n );\n}\n\nexport default Policies;\n","import React, { useEffect, useState } from 'react';\nimport { Card, Row, Col, Typography, Avatar, Button, Select, Spin, message } from 'antd';\nimport { PhoneOutlined, MailOutlined, UserOutlined, HomeOutlined } from '@ant-design/icons';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n fetchShippingCountries,\n fetchShippingDivisions,\n fetchShippingLocations,\n} from '../Redux/slice/shippingSlice';\n\nconst { Title, Paragraph } = Typography;\nconst { Option } = Select;\n\nconst UserProfile = () => {\n const [user, setUser] = useState(null);\n\n const dispatch = useDispatch();\n const { countries, divisions, locations, loading } = useSelector((state) => state.shipping);\n const [selectedCountry, setSelectedCountry] = useState('');\n const [selectedDivision, setSelectedDivision] = useState('');\n const [selectedLocation, setSelectedLocation] = useState('');\n const [shippingDetails, setShippingDetails] = useState({});\n\n useEffect(() => {\n window.scrollTo(0, 0); // Scroll to top on page load\n\n const userData = JSON.parse(localStorage.getItem('customer')) || {};\n setUser(userData);\n\n dispatch(fetchShippingCountries());\n\n const savedShippingDetails = JSON.parse(localStorage.getItem('shippingDetails'));\n if (savedShippingDetails) {\n setShippingDetails(savedShippingDetails);\n setSelectedCountry(savedShippingDetails.country || '');\n setSelectedDivision(savedShippingDetails.division || '');\n setSelectedLocation(savedShippingDetails.location || '');\n }\n }, [dispatch]);\n\n const handleCountryChange = (value) => {\n setSelectedCountry(value);\n setSelectedDivision('');\n setSelectedLocation('');\n dispatch(fetchShippingDivisions(value));\n };\n\n const handleDivisionChange = (value) => {\n setSelectedDivision(value);\n setSelectedLocation('');\n dispatch(fetchShippingLocations(value));\n };\n\n const handleSaveShippingDetails = () => {\n const selectedLocationDetails = locations.find((location) => location.locationCode === selectedLocation);\n const selectedDivisionDetails = divisions.find((division) => division.divisionCode === selectedDivision);\n\n const details = {\n country: selectedCountry,\n division: selectedDivisionDetails?.divisionName || '',\n location: selectedLocationDetails?.locationName || '',\n locationCharge: selectedLocationDetails?.shippingCharge || 0,\n };\n setShippingDetails(details);\n localStorage.setItem('shippingDetails', JSON.stringify(details));\n message.success('Shipping details saved successfully!');\n };\n\n const getContactNumber = () =>\n user.contactNumber || user.ContactNumber || 'Not Provided';\n\n if (!user) {\n return ;\n }\n\n return (\n
    \n \n {/* Customer Details */}\n \n \n
    \n }\n src={user.imagePath || 'https://www.gravatar.com/avatar/00000000000000000000000000000000?d=mp&f=y'}\n style={{ backgroundColor: '#1890ff' }}\n />\n \n {user.firstName} {user.lastName}\n \n Account Number: {user.customerAccountNumber || 'N/A'}\n
    \n
    \n \n \n Email: {user.email || 'N/A'}\n \n \n \n Phone: {getContactNumber()}\n \n \n \n Address: {user.address || 'N/A'}\n \n
    \n \n \n\n {/* Shipping Details */}\n \n \n \n Shipping Information\n \n
    \n \n \n {countries.map((country) => (\n \n ))}\n \n
    \n {selectedCountry && (\n
    \n \n \n {divisions.map((division) => (\n \n ))}\n \n
    \n )}\n {selectedDivision && (\n
    \n \n \n {locations.map((location) => (\n \n ))}\n \n
    \n )}\n \n Save Shipping Details\n \n \n \n
    \n
    \n );\n};\n\nexport default UserProfile;\n","import { createSlice, createAsyncThunk } from '@reduxjs/toolkit';\nimport axios from 'axios';\n\n\nconst API_BASE_URL = process.env.REACT_APP_API_BASE_URL;\nconst AUTO_LOGOUT_INTERVAL = 3 * 60 * 60 * 1000; // 3 hours in milliseconds\n\n// Helper to update the last activity time\nconst updateLastActivityTime = () => {\n localStorage.setItem('loginTime', Date.now());\n};\n\n// Periodically check for auto-logout\nconst checkAutoLogout = (dispatch) => {\n const loginTime = localStorage.getItem('loginTime');\n if (loginTime && Date.now() - loginTime > AUTO_LOGOUT_INTERVAL) {\n dispatch(logoutUser());\n\n }\n};\n\n// Set up interval to check for auto-logout\nconst startAutoLogoutCheck = (dispatch) => {\n setInterval(() => {\n checkAutoLogout(dispatch);\n }, 60000); // Check every minute\n};\n\n// Async thunk for creating a new user\nexport const createUser = createAsyncThunk(\n 'users/createUser',\n async (userData, { rejectWithValue }) => {\n try {\n const response = await axios.post(`${API_BASE_URL}/Users/User-Post`, userData);\n return response.data;\n } catch (error) {\n return rejectWithValue(error.response?.data || 'An unknown error occurred.');\n }\n }\n);\n\n// Async thunk for fetching all users\nexport const fetchUsers = createAsyncThunk(\n \"users/fetchUsers\",\n async (_, { rejectWithValue }) => {\n try {\n const response = await axios.get(`${API_BASE_URL}/Users/Users-Get`);\n \n return response.data;\n } catch (error) {\n \n return rejectWithValue(error.response?.data || \"An error occurred.\");\n }\n }\n);\n\n// Async thunk for login\nexport const loginUser = createAsyncThunk(\n 'users/loginUser',\n async ({ contact, password }, { dispatch, rejectWithValue }) => {\n try {\n const fetchUsersResult = await dispatch(fetchUsers()).unwrap();\n\n const normalizedUsers = fetchUsersResult.map((user) => ({\n ...user,\n contact: user.contact || user.contactNumber,\n }));\n\n const matchingUser = normalizedUsers.find(\n (user) => user.contact === contact && user.password === password\n );\n\n if (matchingUser) {\n const loginTime = Date.now();\n localStorage.setItem('user', JSON.stringify(matchingUser));\n localStorage.setItem('loginTime', loginTime);\n return matchingUser;\n } else {\n return rejectWithValue('Invalid contact number or password.');\n }\n } catch (error) {\n return rejectWithValue(error.message || 'An unknown error occurred.');\n }\n }\n);\n\n// Initial state\nconst initialState = {\n currentUser: JSON.parse(localStorage.getItem('user')) || null,\n currentUserDetails: null,\n userList: [],\n loading: false,\n error: null,\n};\n\n// Create the user slice\nconst userSlice = createSlice({\n name: 'user',\n initialState,\n reducers: {\n logoutUser: (state) => {\n state.currentUser = null;\n state.currentUserDetails = null;\n localStorage.removeItem('user');\n localStorage.removeItem('loginTime');\n },\n clearUsers: (state) => {\n state.userList = [];\n },\n setUser: (state, action) => {\n state.currentUser = action.payload;\n localStorage.setItem('user', JSON.stringify(action.payload));\n updateLastActivityTime();\n },\n clearSelectedUser: (state) => {\n state.currentUserDetails = null;\n },\n },\n extraReducers: (builder) => {\n builder\n .addCase(createUser.pending, (state) => {\n state.loading = true;\n state.error = null;\n })\n .addCase(createUser.fulfilled, (state, action) => {\n state.loading = false;\n if (action.payload && action.payload.ResponseCode === '1') {\n const newUser = {\n ...action.meta.arg,\n ...action.payload,\n };\n state.currentUser = newUser;\n localStorage.setItem('user', JSON.stringify(newUser));\n } else {\n state.error = 'Failed to create user.';\n }\n })\n .addCase(createUser.rejected, (state, action) => {\n state.loading = false;\n state.error = action.error?.message || 'An unknown error occurred.';\n })\n \n .addCase(fetchUsers.pending, (state) => {\n state.loading = true;\n })\n .addCase(fetchUsers.fulfilled, (state, action) => {\n \n state.loading = false;\n state.users = action.payload; // ✅ Ensure users array is updated\n })\n \n .addCase(fetchUsers.rejected, (state, action) => {\n state.error = action.error.message;\n state.loading = false;\n })\n .addCase(loginUser.pending, (state) => {\n state.loading = true;\n state.error = null;\n })\n .addCase(loginUser.fulfilled, (state, action) => {\n state.loading = false;\n state.currentUser = action.payload;\n state.currentUserDetails = action.payload;\n \n })\n .addCase(loginUser.rejected, (state, action) => {\n state.loading = false;\n state.error = action.payload || 'Login failed.';\n });\n },\n});\n\n// Start auto-logout monitoring after user logs in\nexport const { logoutUser, clearUsers, setUser, clearSelectedUser } = userSlice.actions;\n\n// Monitor user activity\ndocument.addEventListener('mousemove', updateLastActivityTime);\ndocument.addEventListener('keydown', updateLastActivityTime);\n\n// Export the reducer\nexport default userSlice.reducer;\n\n// Initialize auto-logout check on app start\nstartAutoLogoutCheck((action) => userSlice.actions[action]);\n","import { useState } from 'react';\nimport { Form, Input, Button, message } from 'antd';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useNavigate, Link } from 'react-router-dom'; // Import Link for navigation\nimport { loginUser } from '../Redux/slice/userSlice'; // Adjust the path based on your file structure\nimport logo from \"../assets/frankoIcon.png\";\n\nconst Login = () => {\n const [form] = Form.useForm();\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const { loading } = useSelector((state) => state.user); // To manage the loading state\n const [contact, setContact] = useState(''); // This will handle the input for contact\n const [password, setPassword] = useState('');\n\n const onFinish = () => {\n // Modify the dispatch to use 'contact' instead of 'contactNumber'\n dispatch(loginUser({ contact, password }))\n .unwrap()\n .then(() => {\n message.success('Login successful!');\n navigate('/admin/dashboard'); // Redirect to dashboard after login\n })\n .catch((error) => {\n message.error(`Login failed: ${error.message}`);\n });\n };\n\n const onFinishFailed = (errorInfo) => {\n message.error('Please fill in all required fields!');\n console.error('Failed:', errorInfo);\n };\n\n return (\n
    \n {/* Logo */}\n
    \n \"Logo\" {/* Adjust logo path */}\n
    \n\n {/* Login Form */}\n

    Login

    \n \n \n setContact(e.target.value)}\n placeholder=\"Enter your contact number\"\n className=\"w-full p-2 border rounded-md\"\n />\n \n\n \n setPassword(e.target.value)}\n placeholder=\"Enter your password\"\n className=\"w-full p-2 border rounded-md\"\n />\n \n\n \n \n Login\n \n \n \n\n {/* Sign Up Link */}\n
    \n

    \n Don't have an account?{' '}\n \n Sign Up\n \n

    \n
    \n
    \n );\n};\n\nexport default Login;\n","import React, { useState } from 'react';\nimport { Form, Input, Button, message } from 'antd';\nimport { useDispatch } from 'react-redux';\nimport { v4 as uuidv4 } from 'uuid';\nimport { createUser } from '../Redux/slice/userSlice'; // Adjust path as per your file structure\nimport { useNavigate, Link } from 'react-router-dom';\nimport Franko from \"../assets/frankoIcon.png\"\n\nconst UserRegistration = () => {\n const [form] = Form.useForm();\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(false);\n const navigate = useNavigate();\n\n const onFinish = (values) => {\n setLoading(true);\n\n if (values.password !== values.confirmPassword) {\n message.error('Passwords do not match!');\n setLoading(false);\n return;\n }\n\n const newUser = {\n uuserid: uuidv4(), // Generate a unique user ID\n fullName: values.fullName,\n email: values.email,\n password: values.password,\n address: values.address,\n contact: values.contact,\n position: values.position,\n };\n\n dispatch(createUser(newUser))\n .unwrap()\n .then(() => {\n message.success('User registered successfully!');\n form.resetFields();\n navigate('/admin/login');\n })\n .catch((error) => {\n message.error(`Registration failed: ${error.message}`);\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n const onFinishFailed = (errorInfo) => {\n console.error(errorInfo);\n message.error('Please fill in all required fields!');\n };\n\n return (\n
    \n {/* Logo */}\n
    \n \"Franko\n
    \n\n {/* Registration Form */}\n

    Sign up

    \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 Register\n \n \n \n\n {/* Already Registered? Login Link */}\n
    \n

    \n Already registered?{' '}\n \n Login here\n \n

    \n
    \n
    \n );\n};\n\nexport default UserRegistration;\n","// This icon file is generated automatically.\nvar ShopOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M882 272.1V144c0-17.7-14.3-32-32-32H174c-17.7 0-32 14.3-32 32v128.1c-16.7 1-30 14.9-30 31.9v131.7a177 177 0 0014.4 70.4c4.3 10.2 9.6 19.8 15.6 28.9v345c0 17.6 14.3 32 32 32h676c17.7 0 32-14.3 32-32V535a175 175 0 0015.6-28.9c9.5-22.3 14.4-46 14.4-70.4V304c0-17-13.3-30.9-30-31.9zM214 184h596v88H214v-88zm362 656.1H448V736h128v104.1zm234 0H640V704c0-17.7-14.3-32-32-32H416c-17.7 0-32 14.3-32 32v136.1H214V597.9c2.9 1.4 5.9 2.8 9 4 22.3 9.4 46 14.1 70.4 14.1s48-4.7 70.4-14.1c13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0038.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 13.8-5.8 26.8-13.2 38.7-22.1.2-.1.4-.1.6 0a180.4 180.4 0 0038.7 22.1c22.3 9.4 46 14.1 70.4 14.1 24.4 0 48-4.7 70.4-14.1 3-1.3 6-2.6 9-4v242.2zm30-404.4c0 59.8-49 108.3-109.3 108.3-40.8 0-76.4-22.1-95.2-54.9-2.9-5-8.1-8.1-13.9-8.1h-.6c-5.7 0-11 3.1-13.9 8.1A109.24 109.24 0 01512 544c-40.7 0-76.2-22-95-54.7-3-5.1-8.4-8.3-14.3-8.3s-11.4 3.2-14.3 8.3a109.63 109.63 0 01-95.1 54.7C233 544 184 495.5 184 435.7v-91.2c0-.3.2-.5.5-.5h655c.3 0 .5.2.5.5v91.2z\" } }] }, \"name\": \"shop\", \"theme\": \"outlined\" };\nexport default ShopOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ShopOutlinedSvg from \"@ant-design/icons-svg/es/asn/ShopOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ShopOutlined = function ShopOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ShopOutlinedSvg\n }));\n};\n\n/**![shop](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4MiAyNzIuMVYxNDRjMC0xNy43LTE0LjMtMzItMzItMzJIMTc0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnYxMjguMWMtMTYuNyAxLTMwIDE0LjktMzAgMzEuOXYxMzEuN2ExNzcgMTc3IDAgMDAxNC40IDcwLjRjNC4zIDEwLjIgOS42IDE5LjggMTUuNiAyOC45djM0NWMwIDE3LjYgMTQuMyAzMiAzMiAzMmg2NzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWNTM1YTE3NSAxNzUgMCAwMDE1LjYtMjguOWM5LjUtMjIuMyAxNC40LTQ2IDE0LjQtNzAuNFYzMDRjMC0xNy0xMy4zLTMwLjktMzAtMzEuOXpNMjE0IDE4NGg1OTZ2ODhIMjE0di04OHptMzYyIDY1Ni4xSDQ0OFY3MzZoMTI4djEwNC4xem0yMzQgMEg2NDBWNzA0YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQxNmMtMTcuNyAwLTMyIDE0LjMtMzIgMzJ2MTM2LjFIMjE0VjU5Ny45YzIuOSAxLjQgNS45IDIuOCA5IDQgMjIuMyA5LjQgNDYgMTQuMSA3MC40IDE0LjFzNDgtNC43IDcwLjQtMTQuMWMxMy44LTUuOCAyNi44LTEzLjIgMzguNy0yMi4xLjItLjEuNC0uMS42IDBhMTgwLjQgMTgwLjQgMCAwMDM4LjcgMjIuMWMyMi4zIDkuNCA0NiAxNC4xIDcwLjQgMTQuMSAyNC40IDAgNDgtNC43IDcwLjQtMTQuMSAxMy44LTUuOCAyNi44LTEzLjIgMzguNy0yMi4xLjItLjEuNC0uMS42IDBhMTgwLjQgMTgwLjQgMCAwMDM4LjcgMjIuMWMyMi4zIDkuNCA0NiAxNC4xIDcwLjQgMTQuMSAyNC40IDAgNDgtNC43IDcwLjQtMTQuMSAzLTEuMyA2LTIuNiA5LTR2MjQyLjJ6bTMwLTQwNC40YzAgNTkuOC00OSAxMDguMy0xMDkuMyAxMDguMy00MC44IDAtNzYuNC0yMi4xLTk1LjItNTQuOS0yLjktNS04LjEtOC4xLTEzLjktOC4xaC0uNmMtNS43IDAtMTEgMy4xLTEzLjkgOC4xQTEwOS4yNCAxMDkuMjQgMCAwMTUxMiA1NDRjLTQwLjcgMC03Ni4yLTIyLTk1LTU0LjctMy01LjEtOC40LTguMy0xNC4zLTguM3MtMTEuNCAzLjItMTQuMyA4LjNhMTA5LjYzIDEwOS42MyAwIDAxLTk1LjEgNTQuN0MyMzMgNTQ0IDE4NCA0OTUuNSAxODQgNDM1Ljd2LTkxLjJjMC0uMy4yLS41LjUtLjVoNjU1Yy4zIDAgLjUuMi41LjV2OTEuMnoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(ShopOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'ShopOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar TagsOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M483.2 790.3L861.4 412c1.7-1.7 2.5-4 2.3-6.3l-25.5-301.4c-.7-7.8-6.8-13.9-14.6-14.6L522.2 64.3c-2.3-.2-4.7.6-6.3 2.3L137.7 444.8a8.03 8.03 0 000 11.3l334.2 334.2c3.1 3.2 8.2 3.2 11.3 0zm62.6-651.7l224.6 19 19 224.6L477.5 694 233.9 450.5l311.9-311.9zm60.16 186.23a48 48 0 1067.88-67.89 48 48 0 10-67.88 67.89zM889.7 539.8l-39.6-39.5a8.03 8.03 0 00-11.3 0l-362 361.3-237.6-237a8.03 8.03 0 00-11.3 0l-39.6 39.5a8.03 8.03 0 000 11.3l243.2 242.8 39.6 39.5c3.1 3.1 8.2 3.1 11.3 0l407.3-406.6c3.1-3.1 3.1-8.2 0-11.3z\" } }] }, \"name\": \"tags\", \"theme\": \"outlined\" };\nexport default TagsOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport TagsOutlinedSvg from \"@ant-design/icons-svg/es/asn/TagsOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar TagsOutlined = function TagsOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: TagsOutlinedSvg\n }));\n};\n\n/**![tags](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQ4My4yIDc5MC4zTDg2MS40IDQxMmMxLjctMS43IDIuNS00IDIuMy02LjNsLTI1LjUtMzAxLjRjLS43LTcuOC02LjgtMTMuOS0xNC42LTE0LjZMNTIyLjIgNjQuM2MtMi4zLS4yLTQuNy42LTYuMyAyLjNMMTM3LjcgNDQ0LjhhOC4wMyA4LjAzIDAgMDAwIDExLjNsMzM0LjIgMzM0LjJjMy4xIDMuMiA4LjIgMy4yIDExLjMgMHptNjIuNi02NTEuN2wyMjQuNiAxOSAxOSAyMjQuNkw0NzcuNSA2OTQgMjMzLjkgNDUwLjVsMzExLjktMzExLjl6bTYwLjE2IDE4Ni4yM2E0OCA0OCAwIDEwNjcuODgtNjcuODkgNDggNDggMCAxMC02Ny44OCA2Ny44OXpNODg5LjcgNTM5LjhsLTM5LjYtMzkuNWE4LjAzIDguMDMgMCAwMC0xMS4zIDBsLTM2MiAzNjEuMy0yMzcuNi0yMzdhOC4wMyA4LjAzIDAgMDAtMTEuMyAwbC0zOS42IDM5LjVhOC4wMyA4LjAzIDAgMDAwIDExLjNsMjQzLjIgMjQyLjggMzkuNiAzOS41YzMuMSAzLjEgOC4yIDMuMSAxMS4zIDBsNDA3LjMtNDA2LjZjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM3oiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(TagsOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'TagsOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar TrademarkOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm87.5-334.7c34.8-12.8 78.4-49 78.4-119.2 0-71.2-45.5-131.1-144.2-131.1H378c-4.4 0-8 3.6-8 8v410c0 4.4 3.6 8 8 8h54.5c4.4 0 8-3.6 8-8V561.2h88.7l74.6 159.2c1.3 2.8 4.1 4.6 7.2 4.6h62a7.9 7.9 0 007.1-11.5l-80.6-164.2zM522 505h-81.5V357h83.4c48 0 80.9 25.3 80.9 75.5 0 46.9-29.8 72.5-82.8 72.5z\" } }] }, \"name\": \"trademark\", \"theme\": \"outlined\" };\nexport default TrademarkOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport TrademarkOutlinedSvg from \"@ant-design/icons-svg/es/asn/TrademarkOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar TrademarkOutlined = function TrademarkOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: TrademarkOutlinedSvg\n }));\n};\n\n/**![trademark](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUxMiA2NEMyNjQuNiA2NCA2NCAyNjQuNiA2NCA1MTJzMjAwLjYgNDQ4IDQ0OCA0NDggNDQ4LTIwMC42IDQ0OC00NDhTNzU5LjQgNjQgNTEyIDY0em0wIDgyMGMtMjA1LjQgMC0zNzItMTY2LjYtMzcyLTM3MnMxNjYuNi0zNzIgMzcyLTM3MiAzNzIgMTY2LjYgMzcyIDM3Mi0xNjYuNiAzNzItMzcyIDM3MnptODcuNS0zMzQuN2MzNC44LTEyLjggNzguNC00OSA3OC40LTExOS4yIDAtNzEuMi00NS41LTEzMS4xLTE0NC4yLTEzMS4xSDM3OGMtNC40IDAtOCAzLjYtOCA4djQxMGMwIDQuNCAzLjYgOCA4IDhoNTQuNWM0LjQgMCA4LTMuNiA4LThWNTYxLjJoODguN2w3NC42IDE1OS4yYzEuMyAyLjggNC4xIDQuNiA3LjIgNC42aDYyYTcuOSA3LjkgMCAwMDcuMS0xMS41bC04MC42LTE2NC4yek01MjIgNTA1aC04MS41VjM1N2g4My40YzQ4IDAgODAuOSAyNS4zIDgwLjkgNzUuNSAwIDQ2LjktMjkuOCA3Mi41LTgyLjggNzIuNXoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(TrademarkOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'TrademarkOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar FileImageOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 00-12.6 0l-99.8 127.2a7.98 7.98 0 006.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 00-12.7 0zM360 442a40 40 0 1080 0 40 40 0 10-80 0zm494.6-153.4L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z\" } }] }, \"name\": \"file-image\", \"theme\": \"outlined\" };\nexport default FileImageOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FileImageOutlinedSvg from \"@ant-design/icons-svg/es/asn/FileImageOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FileImageOutlined = function FileImageOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FileImageOutlinedSvg\n }));\n};\n\n/**![file-image](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTU1My4xIDUwOS4xbC03Ny44IDk5LjItNDEuMS01Mi40YTggOCAwIDAwLTEyLjYgMGwtOTkuOCAxMjcuMmE3Ljk4IDcuOTggMCAwMDYuMyAxMi45SDY5NmM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOWwtMTM2LjUtMTc0YTguMSA4LjEgMCAwMC0xMi43IDB6TTM2MCA0NDJhNDAgNDAgMCAxMDgwIDAgNDAgNDAgMCAxMC04MCAwem00OTQuNi0xNTMuNEw2MzkuNCA3My40Yy02LTYtMTQuMS05LjQtMjIuNi05LjRIMTkyYy0xNy43IDAtMzIgMTQuMy0zMiAzMnY4MzJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjQwYzE3LjcgMCAzMi0xNC4zIDMyLTMyVjMxMS4zYzAtOC41LTMuNC0xNi43LTkuNC0yMi43ek03OTAuMiAzMjZINjAyVjEzNy44TDc5MC4yIDMyNnptMS44IDU2MkgyMzJWMTM2aDMwMnYyMTZhNDIgNDIgMCAwMDQyIDQyaDIxNnY0OTR6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(FileImageOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'FileImageOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar UsergroupAddOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M892 772h-80v-80c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v80h-80c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h80v80c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-80h80c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM373.5 498.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 01-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.8-1.7-203.2 89.2-203.2 200 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 008 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.8-1.1 6.4-4.8 5.9-8.8zM824 472c0-109.4-87.9-198.3-196.9-200C516.3 270.3 424 361.2 424 472c0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 00-86.4 60.4C357 742.6 326 814.8 324 891.8a8 8 0 008 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5C505.8 695.7 563 672 624 672c110.4 0 200-89.5 200-200zm-109.5 90.5C690.3 586.7 658.2 600 624 600s-66.3-13.3-90.5-37.5a127.26 127.26 0 01-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4-.1 34.2-13.4 66.3-37.6 90.5z\" } }] }, \"name\": \"usergroup-add\", \"theme\": \"outlined\" };\nexport default UsergroupAddOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UsergroupAddOutlinedSvg from \"@ant-design/icons-svg/es/asn/UsergroupAddOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar UsergroupAddOutlined = function UsergroupAddOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UsergroupAddOutlinedSvg\n }));\n};\n\n/**![usergroup-add](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg5MiA3NzJoLTgwdi04MGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2ODBoLTgwYy00LjQgMC04IDMuNi04IDh2NDhjMCA0LjQgMy42IDggOCA4aDgwdjgwYzAgNC40IDMuNiA4IDggOGg0OGM0LjQgMCA4LTMuNiA4LTh2LTgwaDgwYzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek0zNzMuNSA0OTguNGMtLjktOC43LTEuNC0xNy41LTEuNC0yNi40IDAtMTUuOSAxLjUtMzEuNCA0LjMtNDYuNS43LTMuNi0xLjItNy4zLTQuNS04LjgtMTMuNi02LjEtMjYuMS0xNC41LTM2LjktMjUuMWExMjcuNTQgMTI3LjU0IDAgMDEtMzguNy05NS40Yy45LTMyLjEgMTMuOC02Mi42IDM2LjMtODUuNiAyNC43LTI1LjMgNTcuOS0zOS4xIDkzLjItMzguNyAzMS45LjMgNjIuNyAxMi42IDg2IDM0LjQgNy45IDcuNCAxNC43IDE1LjYgMjAuNCAyNC40IDIgMy4xIDUuOSA0LjQgOS4zIDMuMiAxNy42LTYuMSAzNi4yLTEwLjQgNTUuMy0xMi40IDUuNi0uNiA4LjgtNi42IDYuMy0xMS42LTMyLjUtNjQuMy05OC45LTEwOC43LTE3NS43LTEwOS45LTExMC44LTEuNy0yMDMuMiA4OS4yLTIwMy4yIDIwMCAwIDYyLjggMjguOSAxMTguOCA3NC4yIDE1NS41LTMxLjggMTQuNy02MS4xIDM1LTg2LjUgNjAuNC01NC44IDU0LjctODUuOCAxMjYuOS04Ny44IDIwNGE4IDggMCAwMDggOC4yaDU2LjFjNC4zIDAgNy45LTMuNCA4LTcuNyAxLjktNTggMjUuNC0xMTIuMyA2Ni43LTE1My41IDI5LjQtMjkuNCA2NS40LTQ5LjggMTA0LjctNTkuNyAzLjgtMS4xIDYuNC00LjggNS45LTguOHpNODI0IDQ3MmMwLTEwOS40LTg3LjktMTk4LjMtMTk2LjktMjAwQzUxNi4zIDI3MC4zIDQyNCAzNjEuMiA0MjQgNDcyYzAgNjIuOCAyOSAxMTguOCA3NC4yIDE1NS41YTMwMC45NSAzMDAuOTUgMCAwMC04Ni40IDYwLjRDMzU3IDc0Mi42IDMyNiA4MTQuOCAzMjQgODkxLjhhOCA4IDAgMDA4IDguMmg1NmM0LjMgMCA3LjktMy40IDgtNy43IDEuOS01OCAyNS40LTExMi4zIDY2LjctMTUzLjVDNTA1LjggNjk1LjcgNTYzIDY3MiA2MjQgNjcyYzExMC40IDAgMjAwLTg5LjUgMjAwLTIwMHptLTEwOS41IDkwLjVDNjkwLjMgNTg2LjcgNjU4LjIgNjAwIDYyNCA2MDBzLTY2LjMtMTMuMy05MC41LTM3LjVhMTI3LjI2IDEyNy4yNiAwIDAxLTM3LjUtOTEuOGMuMy0zMi44IDEzLjQtNjQuNSAzNi4zLTg4IDI0LTI0LjYgNTYuMS0zOC4zIDkwLjQtMzguNyAzMy45LS4zIDY2LjggMTIuOSA5MSAzNi42IDI0LjggMjQuMyAzOC40IDU2LjggMzguNCA5MS40LS4xIDM0LjItMTMuNCA2Ni4zLTM3LjYgOTAuNXoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(UsergroupAddOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'UsergroupAddOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar MenuUnfoldOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 000-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0014.4 7z\" } }] }, \"name\": \"menu-unfold\", \"theme\": \"outlined\" };\nexport default MenuUnfoldOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport MenuUnfoldOutlinedSvg from \"@ant-design/icons-svg/es/asn/MenuUnfoldOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar MenuUnfoldOutlined = function MenuUnfoldOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: MenuUnfoldOutlinedSvg\n }));\n};\n\n/**![menu-unfold](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQwOCA0NDJoNDgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDQwOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptLTggMjA0YzAgNC40IDMuNiA4IDggOGg0ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThINDA4Yy00LjQgMC04IDMuNi04IDh2NTZ6bTUwNC00ODZIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCA2MzJIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTQyLjQgNjQyLjFMMjk4LjcgNTE5YTguODQgOC44NCAwIDAwMC0xMy45TDE0Mi40IDM4MS45Yy01LjgtNC42LTE0LjQtLjUtMTQuNCA2Ljl2MjQ2LjNhOC45IDguOSAwIDAwMTQuNCA3eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(MenuUnfoldOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'MenuUnfoldOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar MenuFoldOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 000 13.8z\" } }] }, \"name\": \"menu-fold\", \"theme\": \"outlined\" };\nexport default MenuFoldOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport MenuFoldOutlinedSvg from \"@ant-design/icons-svg/es/asn/MenuFoldOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar MenuFoldOutlined = function MenuFoldOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: MenuFoldOutlinedSvg\n }));\n};\n\n/**![menu-fold](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQwOCA0NDJoNDgwYzQuNCAwIDgtMy42IDgtOHYtNTZjMC00LjQtMy42LTgtOC04SDQwOGMtNC40IDAtOCAzLjYtOCA4djU2YzAgNC40IDMuNiA4IDggOHptLTggMjA0YzAgNC40IDMuNiA4IDggOGg0ODBjNC40IDAgOC0zLjYgOC04di01NmMwLTQuNC0zLjYtOC04LThINDA4Yy00LjQgMC04IDMuNi04IDh2NTZ6bTUwNC00ODZIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHptMCA2MzJIMTIwYy00LjQgMC04IDMuNi04IDh2NTZjMCA0LjQgMy42IDggOCA4aDc4NGM0LjQgMCA4LTMuNiA4LTh2LTU2YzAtNC40LTMuNi04LTgtOHpNMTE1LjQgNTE4LjlMMjcxLjcgNjQyYzUuOCA0LjYgMTQuNC41IDE0LjQtNi45VjM4OC45YzAtNy40LTguNS0xMS41LTE0LjQtNi45TDExNS40IDUwNS4xYTguNzQgOC43NCAwIDAwMCAxMy44eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(MenuFoldOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'MenuFoldOutlined';\n}\nexport default RefIcon;","import { useState } from 'react';\nimport { Layout, Menu, Avatar, Dropdown, Button, Modal, Typography } from 'antd';\nimport {\n UserOutlined,\n ShopOutlined,\n ShoppingCartOutlined,\n AppstoreOutlined,\n TagsOutlined,\n TrademarkOutlined,\n LogoutOutlined,\n MenuFoldOutlined,\n MenuUnfoldOutlined,\n UsergroupAddOutlined,\n HomeOutlined,\n FileImageOutlined \n} from '@ant-design/icons';\nimport { useLocation, Link, useNavigate } from 'react-router-dom';\nimport { useDispatch } from 'react-redux';\nimport { logoutUser } from '../Redux/slice/userSlice';\nimport './Layout.css'; // Custom CSS for additional styling\n\nconst { Header, Sider, Content } = Layout;\nconst { Text } = Typography;\n\nconst AdminLayout = ({ children }) => {\n const [collapsed, setCollapsed] = useState(false);\n const [isLogoutModalVisible, setIsLogoutModalVisible] = useState(false);\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n const location = useLocation();\n const currentPath = location.pathname;\n\n const user = JSON.parse(localStorage.getItem('user'));\n const userName = user ? user.fullName : 'Admin';\n const userPosition = user ? user.position : '';\n\n const toggleCollapsed = () => {\n setCollapsed(!collapsed);\n };\n\n const showLogoutModal = () => {\n setIsLogoutModalVisible(true);\n };\n\n const handleLogout = () => {\n localStorage.clear();\n dispatch(logoutUser());\n setIsLogoutModalVisible(false);\n navigate('/admin/login');\n };\n\n const handleCancel = () => {\n setIsLogoutModalVisible(false);\n };\n\n const menuItems = [\n { key: '/admin/dashboard', icon: , label: 'Dashboard', link: '/admin/dashboard' },\n { key: '/admin/orders', icon: , label: 'Orders', link: '/admin/orders' },\n { key: '/admin/categories', icon: , label: 'Categories', link: '/admin/categories' },\n { key: '/admin/products', icon: , label: 'Products', link: '/admin/products' },\n { key: '/admin/brands', icon: , label: 'Brands', link: '/admin/brands' },\n { key: '/admin/showroom', icon: , label: 'Showroom', link: '/admin/showroom' },\n {key: \"/admin/banner\", icon: , label: \"Banner\", link: \"/admin/banner\"},\n { key: '/admin/users', icon: , label: 'Users', link: '/admin/users' },\n\n { key: '/admin/customers', icon: , label: 'Customers', link: '/admin/customers' },\n { key: 'logout', icon: , label: 'Logout', action: showLogoutModal },\n ];\n\n const userMenu = (\n \n \n Profile\n \n \n {userPosition ? `Position: ${userPosition}` : 'Position: N/A'}\n \n \n Logout\n \n \n );\n\n return (\n \n \n
    \n {collapsed ? 'Admin' : 'Admin Panel'}\n
    \n \n {menuItems.map((item) => (\n \n {item.link ? {item.label} : item.label}\n \n ))}\n \n \n\n \n \n \n navigate('/')}\n icon={}\n >\n Home\n \n
    \n \n } />\n \n Hello, {userName}\n
    \n \n\n \n {children}\n \n
    \n\n \n Are you sure you want to log out?\n
    \n \n Yes, Logout\n \n \n Cancel\n \n
    \n \n
    \n );\n};\n\nexport default AdminLayout;\n","\"use client\";\n\nimport * as React from 'react';\nconst StatisticNumber = props => {\n const {\n value,\n formatter,\n precision,\n decimalSeparator,\n groupSeparator = '',\n prefixCls\n } = props;\n let valueNode;\n if (typeof formatter === 'function') {\n // Customize formatter\n valueNode = formatter(value);\n } else {\n // Internal formatter\n const val = String(value);\n const cells = val.match(/^(-?)(\\d*)(\\.(\\d+))?$/);\n // Process if illegal number\n if (!cells || val === '-') {\n valueNode = val;\n } else {\n const negative = cells[1];\n let int = cells[2] || '0';\n let decimal = cells[4] || '';\n int = int.replace(/\\B(?=(\\d{3})+(?!\\d))/g, groupSeparator);\n if (typeof precision === 'number') {\n decimal = decimal.padEnd(precision, '0').slice(0, precision > 0 ? precision : 0);\n }\n if (decimal) {\n decimal = `${decimalSeparator}${decimal}`;\n }\n valueNode = [/*#__PURE__*/React.createElement(\"span\", {\n key: \"int\",\n className: `${prefixCls}-content-value-int`\n }, negative, int), decimal && (/*#__PURE__*/React.createElement(\"span\", {\n key: \"decimal\",\n className: `${prefixCls}-content-value-decimal`\n }, decimal))];\n }\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-content-value`\n }, valueNode);\n};\nexport default StatisticNumber;","import { resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nconst genStatisticStyle = token => {\n const {\n componentCls,\n marginXXS,\n padding,\n colorTextDescription,\n titleFontSize,\n colorTextHeading,\n contentFontSize,\n fontFamily\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n [`${componentCls}-title`]: {\n marginBottom: marginXXS,\n color: colorTextDescription,\n fontSize: titleFontSize\n },\n [`${componentCls}-skeleton`]: {\n paddingTop: padding\n },\n [`${componentCls}-content`]: {\n color: colorTextHeading,\n fontSize: contentFontSize,\n fontFamily,\n [`${componentCls}-content-value`]: {\n display: 'inline-block',\n direction: 'ltr'\n },\n [`${componentCls}-content-prefix, ${componentCls}-content-suffix`]: {\n display: 'inline-block'\n },\n [`${componentCls}-content-prefix`]: {\n marginInlineEnd: marginXXS\n },\n [`${componentCls}-content-suffix`]: {\n marginInlineStart: marginXXS\n }\n }\n })\n };\n};\n// ============================== Export ==============================\nexport const prepareComponentToken = token => {\n const {\n fontSizeHeading3,\n fontSize\n } = token;\n return {\n titleFontSize: fontSize,\n contentFontSize: fontSizeHeading3\n };\n};\nexport default genStyleHooks('Statistic', token => {\n const statisticToken = mergeToken(token, {});\n return [genStatisticStyle(statisticToken)];\n}, prepareComponentToken);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport { useComponentConfig } from '../config-provider/context';\nimport Skeleton from '../skeleton';\nimport StatisticNumber from './Number';\nimport useStyle from './style';\nconst Statistic = props => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n valueStyle,\n value = 0,\n title,\n valueRender,\n prefix,\n suffix,\n loading = false,\n /* --- FormatConfig starts --- */\n formatter,\n precision,\n decimalSeparator = '.',\n groupSeparator = ',',\n /* --- FormatConfig starts --- */\n onMouseEnter,\n onMouseLeave\n } = props,\n rest = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"style\", \"valueStyle\", \"value\", \"title\", \"valueRender\", \"prefix\", \"suffix\", \"loading\", \"formatter\", \"precision\", \"decimalSeparator\", \"groupSeparator\", \"onMouseEnter\", \"onMouseLeave\"]);\n const {\n getPrefixCls,\n direction,\n className: contextClassName,\n style: contextStyle\n } = useComponentConfig('statistic');\n const prefixCls = getPrefixCls('statistic', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const valueNode = /*#__PURE__*/React.createElement(StatisticNumber, {\n decimalSeparator: decimalSeparator,\n groupSeparator: groupSeparator,\n prefixCls: prefixCls,\n formatter: formatter,\n precision: precision,\n value: value\n });\n const cls = classNames(prefixCls, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, contextClassName, className, rootClassName, hashId, cssVarCls);\n const restProps = pickAttrs(rest, {\n aria: true,\n data: true\n });\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({}, restProps, {\n className: cls,\n style: Object.assign(Object.assign({}, contextStyle), style),\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave\n }), title && /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-title`\n }, title), /*#__PURE__*/React.createElement(Skeleton, {\n paragraph: false,\n loading: loading,\n className: `${prefixCls}-skeleton`\n }, /*#__PURE__*/React.createElement(\"div\", {\n style: valueStyle,\n className: `${prefixCls}-content`\n }, prefix && /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-content-prefix`\n }, prefix), valueRender ? valueRender(valueNode) : valueNode, suffix && /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-content-suffix`\n }, suffix)))));\n};\nif (process.env.NODE_ENV !== 'production') {\n Statistic.displayName = 'Statistic';\n}\nexport default Statistic;","// Countdown\nconst timeUnits = [['Y', 1000 * 60 * 60 * 24 * 365],\n// years\n['M', 1000 * 60 * 60 * 24 * 30],\n// months\n['D', 1000 * 60 * 60 * 24],\n// days\n['H', 1000 * 60 * 60],\n// hours\n['m', 1000 * 60],\n// minutes\n['s', 1000],\n// seconds\n['S', 1] // million seconds\n];\nexport function formatTimeStr(duration, format) {\n let leftDuration = duration;\n const escapeRegex = /\\[[^\\]]*]/g;\n const keepList = (format.match(escapeRegex) || []).map(str => str.slice(1, -1));\n const templateText = format.replace(escapeRegex, '[]');\n const replacedText = timeUnits.reduce((current, _ref) => {\n let [name, unit] = _ref;\n if (current.includes(name)) {\n const value = Math.floor(leftDuration / unit);\n leftDuration -= value * unit;\n return current.replace(new RegExp(`${name}+`, 'g'), match => {\n const len = match.length;\n return value.toString().padStart(len, '0');\n });\n }\n return current;\n }, templateText);\n let index = 0;\n return replacedText.replace(escapeRegex, () => {\n const match = keepList[index];\n index += 1;\n return match;\n });\n}\nexport function formatCountdown(value, config) {\n const {\n format = ''\n } = config;\n const target = new Date(value).getTime();\n const current = Date.now();\n const diff = Math.max(target - current, 0);\n return formatTimeStr(diff, format);\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport useForceUpdate from '../_util/hooks/useForceUpdate';\nimport { cloneElement } from '../_util/reactNode';\nimport Statistic from './Statistic';\nimport { formatCountdown } from './utils';\nconst REFRESH_INTERVAL = 1000 / 30;\nfunction getTime(value) {\n return new Date(value).getTime();\n}\nconst Countdown = props => {\n const {\n value,\n format = 'HH:mm:ss',\n onChange,\n onFinish\n } = props,\n rest = __rest(props, [\"value\", \"format\", \"onChange\", \"onFinish\"]);\n const forceUpdate = useForceUpdate();\n const countdown = React.useRef(null);\n const stopTimer = () => {\n onFinish === null || onFinish === void 0 ? void 0 : onFinish();\n if (countdown.current) {\n clearInterval(countdown.current);\n countdown.current = null;\n }\n };\n const syncTimer = () => {\n const timestamp = getTime(value);\n if (timestamp >= Date.now()) {\n countdown.current = setInterval(() => {\n forceUpdate();\n onChange === null || onChange === void 0 ? void 0 : onChange(timestamp - Date.now());\n if (timestamp < Date.now()) {\n stopTimer();\n }\n }, REFRESH_INTERVAL);\n }\n };\n React.useEffect(() => {\n syncTimer();\n return () => {\n if (countdown.current) {\n clearInterval(countdown.current);\n countdown.current = null;\n }\n };\n }, [value]);\n const formatter = (formatValue, config) => formatCountdown(formatValue, Object.assign(Object.assign({}, config), {\n format\n }));\n const valueRender = node => cloneElement(node, {\n title: undefined\n });\n return /*#__PURE__*/React.createElement(Statistic, Object.assign({}, rest, {\n value: value,\n valueRender: valueRender,\n formatter: formatter\n }));\n};\nexport default /*#__PURE__*/React.memo(Countdown);","\"use client\";\n\nimport Countdown from './Countdown';\nimport Statistic from './Statistic';\nStatistic.Countdown = Countdown;\nexport default Statistic;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t 0) {\n return 1;\n }\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return lodashIsNumber(value) && !isNan(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n\n/**\n * Get percent value of a total value\n * @param {number|string} percent A percent\n * @param {number} totalValue Total value\n * @param {number} defaultValue The value returned when percent is undefined or invalid\n * @param {boolean} validate If set to be true, the result will be validated\n * @return {number} value\n */\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (!isNumber(percent) && !isString(percent)) {\n return defaultValue;\n }\n var value;\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n if (isNan(value)) {\n value = defaultValue;\n }\n if (validate && value > totalValue) {\n value = totalValue;\n }\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n var keys = Object.keys(obj);\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!Array.isArray(ary)) {\n return false;\n }\n var len = ary.length;\n var cache = {};\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n return false;\n};\n\n/* @todo consider to rename this function into `getInterpolator` */\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n return function () {\n return numberB;\n };\n};\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : get(entry, specifiedKey)) === specifiedValue;\n });\n}\n\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n var xcurrent = 0;\n var ycurrent = 0;\n for (var i = 0; i < len; i++) {\n xcurrent = data[i].cx || 0;\n ycurrent = data[i].cy || 0;\n xsum += xcurrent;\n ysum += ycurrent;\n xysum += xcurrent * ycurrent;\n xxsum += xcurrent * xcurrent;\n xmin = Math.min(xmin, xcurrent);\n xmax = Math.max(xmax, xcurrent);\n }\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n return true;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport { isValidElement } from 'react';\nimport isObject from 'lodash/isObject';\n\n/**\n * Determines how values are stacked:\n *\n * - `none` is the default, it adds values on top of each other. No smarts. Negative values will overlap.\n * - `expand` make it so that the values always add up to 1 - so the chart will look like a rectangle.\n * - `wiggle` and `silhouette` tries to keep the chart centered.\n * - `sign` stacks positive values above zero and negative values below zero. Similar to `none` but handles negatives.\n * - `positive` ignores all negative values, and then behaves like \\`none\\`.\n *\n * Also see https://d3js.org/d3-shape/stack#stack-offsets\n * (note that the `diverging` offset in d3 is named `sign` in recharts)\n */\n\n//\n// Event Handler Types -- Copied from @types/react/index.d.ts and adapted for Props.\n//\n\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nexport var SVGElementPropKeys = ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style',\n/*\n * removed 'type' SVGElementPropKey because we do not currently use any SVG elements\n * that can use it and it conflicts with the recharts prop 'type'\n * https://github.com/recharts/recharts/pull/3327\n * https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/type\n */\n// 'type',\n'target', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar PolyElementKeys = ['points', 'pathLength'];\n\n/** svg element types that have specific attribute filtration requirements */\n\n/** map of svg element types to unique svg attributes that belong to that element */\nexport var FilteredElementKeyMap = {\n svg: SVGContainerPropKeys,\n polygon: PolyElementKeys,\n polyline: PolyElementKeys\n};\nexport var EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture'];\n\n/** The type of easing function to use for animations */\n\n/** Specifies the duration of animation, the unit of this option is ms. */\n\n/** the offset of a chart, which define the blank space all around */\n\n/**\n * The domain of axis.\n * This is the definition\n *\n * Numeric domain is always defined by an array of exactly two values, for the min and the max of the axis.\n * Categorical domain is defined as array of all possible values.\n *\n * Can be specified in many ways:\n * - array of numbers\n * - with special strings like 'dataMin' and 'dataMax'\n * - with special string math like 'dataMin - 100'\n * - with keyword 'auto'\n * - or a function\n * - array of functions\n * - or a combination of the above\n */\n\n/**\n * NumberDomain is an evaluated {@link AxisDomain}.\n * Unlike {@link AxisDomain}, it has no variety - it's a tuple of two number.\n * This is after all the keywords and functions were evaluated and what is left is [min, max].\n *\n * Know that the min, max values are not guaranteed to be nice numbers - values like -Infinity or NaN are possible.\n *\n * There are also `category` axes that have different things than numbers in their domain.\n */\n\n/** The props definition of base axis */\n\n/** Defines how ticks are placed and whether / how tick collisions are handled.\n * 'preserveStart' keeps the left tick on collision and ensures that the first tick is always shown.\n * 'preserveEnd' keeps the right tick on collision and ensures that the last tick is always shown.\n * 'preserveStartEnd' keeps the left tick on collision and ensures that the first and last ticks are always shown.\n * 'equidistantPreserveStart' selects a number N such that every nTh tick will be shown without collision.\n */\n\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!isObject(inputProps)) {\n return null;\n }\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n if (EventKeys.includes(key)) {\n out[key] = newHandler || function (e) {\n return inputProps[key](inputProps, e);\n };\n }\n });\n return out;\n};\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n if (EventKeys.includes(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};","var _excluded = [\"children\"],\n _excluded2 = [\"children\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport get from 'lodash/get';\nimport isNil from 'lodash/isNil';\nimport isString from 'lodash/isString';\nimport isFunction from 'lodash/isFunction';\nimport isObject from 'lodash/isObject';\nimport { Children, isValidElement } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nimport { FilteredElementKeyMap, SVGElementPropKeys, EventKeys } from './types';\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart',\n contextmenu: 'onContextMenu',\n dblclick: 'onDoubleClick'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n if (!Comp) {\n return '';\n }\n return Comp.displayName || Comp.name || 'Component';\n};\n\n// `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\nvar lastChildren = null;\nvar lastResult = null;\nexport var toArray = function toArray(children) {\n if (children === lastChildren && Array.isArray(lastResult)) {\n return lastResult;\n }\n var result = [];\n Children.forEach(children, function (child) {\n if (isNil(child)) return;\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n // @ts-expect-error this could still be Iterable and TS does not like that\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n\n/*\n * Find and return all matched children by type.\n * `type` must be a React.ComponentType\n */\nexport function findAllByType(children, type) {\n var result = [];\n var types = [];\n if (Array.isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(function (child) {\n var childType = get(child, 'type.displayName') || get(child, 'type.name');\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n}\n\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` must be a React.ComponentType\n */\nexport function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n}\n\n/*\n * Create a new array of children excluding the ones matched the type\n */\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n if (Array.isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(function (child) {\n var displayName = get(child, 'type.displayName');\n if (displayName && types.indexOf(displayName) !== -1) {\n return;\n }\n newChildren.push(child);\n });\n return newChildren;\n};\n\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n return true;\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\nexport var hasClipDot = function hasClipDot(dot) {\n return dot && _typeof(dot) === 'object' && 'clipDot' in dot;\n};\n\n/**\n * Checks if the property is valid to spread onto an SVG element or onto a specific component\n * @param {unknown} property property value currently being compared\n * @param {string} key property key currently being compared\n * @param {boolean} includeEvents if events are included in spreadable props\n * @param {boolean} svgElementType checks against map of SVG element types to attributes\n * @returns {boolean} is prop valid\n */\nexport var isValidSpreadableProp = function isValidSpreadableProp(property, key, includeEvents, svgElementType) {\n var _FilteredElementKeyMa;\n /**\n * If the svg element type is explicitly included, check against the filtered element key map\n * to determine if there are attributes that should only exist on that element type.\n * @todo Add an internal cjs version of https://github.com/wooorm/svg-element-attributes for full coverage.\n */\n var matchingElementTypeKeys = (_FilteredElementKeyMa = FilteredElementKeyMap === null || FilteredElementKeyMap === void 0 ? void 0 : FilteredElementKeyMap[svgElementType]) !== null && _FilteredElementKeyMa !== void 0 ? _FilteredElementKeyMa : [];\n return !isFunction(property) && (svgElementType && matchingElementTypeKeys.includes(key) || SVGElementPropKeys.includes(key)) || includeEvents && EventKeys.includes(key);\n};\n\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n toArray(children).forEach(function (entry) {\n if (isSvgElement(entry)) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\nexport var filterProps = function filterProps(props, includeEvents, svgElementType) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!isObject(inputProps)) {\n return null;\n }\n var out = {};\n\n /**\n * Props are blindly spread onto SVG elements. This loop filters out properties that we don't want to spread.\n * Items filtered out are as follows:\n * - functions in properties that are SVG attributes (functions are included when includeEvents is true)\n * - props that are SVG attributes but don't matched the passed svgElementType\n * - any prop that is not in SVGElementPropKeys (or in EventKeys if includeEvents is true)\n */\n Object.keys(inputProps).forEach(function (key) {\n var _inputProps;\n if (isValidSpreadableProp((_inputProps = inputProps) === null || _inputProps === void 0 ? void 0 : _inputProps[key], key, includeEvents, svgElementType)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\n\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n var count = Children.count(nextChildren);\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n if (count === 0) {\n return true;\n }\n if (count === 1) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return isSingleChildEqual(Array.isArray(nextChildren) ? nextChildren[0] : nextChildren, Array.isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n if (Array.isArray(nextChild) || Array.isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n return true;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (isNil(nextChild) && isNil(prevChild)) {\n return true;\n }\n if (!isNil(nextChild) && !isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, _excluded);\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, _excluded2);\n if (nextChildren && prevChildren) {\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n return false;\n }\n return false;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n toArray(children).forEach(function (child, index) {\n if (isSvgElement(child)) {\n elements.push(child);\n } else if (child) {\n var displayName = getDisplayName(child.type);\n var _ref3 = renderMap[displayName] || {},\n handler = _ref3.handler,\n once = _ref3.once;\n if (handler && (!once || !record[displayName])) {\n var results = handler(child, displayName, index);\n elements.push(results);\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n return toArray(children).indexOf(child);\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * @fileOverview Wrapper component to make charts adapt to the size of parent * DOM\n */\nimport clsx from 'clsx';\nimport React, { forwardRef, cloneElement, useState, useImperativeHandle, useRef, useEffect, useMemo, useCallback } from 'react';\nimport throttle from 'lodash/throttle';\nimport { isPercent } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { getDisplayName } from '../util/ReactUtils';\nexport var ResponsiveContainer = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var aspect = _ref.aspect,\n _ref$initialDimension = _ref.initialDimension,\n initialDimension = _ref$initialDimension === void 0 ? {\n width: -1,\n height: -1\n } : _ref$initialDimension,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? '100%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '100%' : _ref$height,\n _ref$minWidth = _ref.minWidth,\n minWidth = _ref$minWidth === void 0 ? 0 : _ref$minWidth,\n minHeight = _ref.minHeight,\n maxHeight = _ref.maxHeight,\n children = _ref.children,\n _ref$debounce = _ref.debounce,\n debounce = _ref$debounce === void 0 ? 0 : _ref$debounce,\n id = _ref.id,\n className = _ref.className,\n onResize = _ref.onResize,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style;\n var containerRef = useRef(null);\n var onResizeRef = useRef();\n onResizeRef.current = onResize;\n useImperativeHandle(ref, function () {\n return Object.defineProperty(containerRef.current, 'current', {\n get: function get() {\n // eslint-disable-next-line no-console\n console.warn('The usage of ref.current.current is deprecated and will no longer be supported.');\n return containerRef.current;\n },\n configurable: true\n });\n });\n var _useState = useState({\n containerWidth: initialDimension.width,\n containerHeight: initialDimension.height\n }),\n _useState2 = _slicedToArray(_useState, 2),\n sizes = _useState2[0],\n setSizes = _useState2[1];\n var setContainerSize = useCallback(function (newWidth, newHeight) {\n setSizes(function (prevState) {\n var roundedWidth = Math.round(newWidth);\n var roundedHeight = Math.round(newHeight);\n if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n return prevState;\n }\n return {\n containerWidth: roundedWidth,\n containerHeight: roundedHeight\n };\n });\n }, []);\n useEffect(function () {\n var callback = function callback(entries) {\n var _onResizeRef$current;\n var _entries$0$contentRec = entries[0].contentRect,\n containerWidth = _entries$0$contentRec.width,\n containerHeight = _entries$0$contentRec.height;\n setContainerSize(containerWidth, containerHeight);\n (_onResizeRef$current = onResizeRef.current) === null || _onResizeRef$current === void 0 || _onResizeRef$current.call(onResizeRef, containerWidth, containerHeight);\n };\n if (debounce > 0) {\n callback = throttle(callback, debounce, {\n trailing: true,\n leading: false\n });\n }\n var observer = new ResizeObserver(callback);\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n containerWidth = _containerRef$current.width,\n containerHeight = _containerRef$current.height;\n setContainerSize(containerWidth, containerHeight);\n observer.observe(containerRef.current);\n return function () {\n observer.disconnect();\n };\n }, [setContainerSize, debounce]);\n var chartContent = useMemo(function () {\n var containerWidth = sizes.containerWidth,\n containerHeight = sizes.containerHeight;\n if (containerWidth < 0 || containerHeight < 0) {\n return null;\n }\n warn(isPercent(width) || isPercent(height), \"The width(%s) and height(%s) are both fixed numbers,\\n maybe you don't need to use a ResponsiveContainer.\", width, height);\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var calculatedWidth = isPercent(width) ? containerWidth : width;\n var calculatedHeight = isPercent(height) ? containerHeight : height;\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n }\n\n // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n if (maxHeight && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n warn(calculatedWidth > 0 || calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n var isCharts = !Array.isArray(children) && getDisplayName(children.type).endsWith('Chart');\n return React.Children.map(children, function (child) {\n if ( /*#__PURE__*/React.isValidElement(child)) {\n return /*#__PURE__*/cloneElement(child, _objectSpread({\n width: calculatedWidth,\n height: calculatedHeight\n }, isCharts ? {\n style: _objectSpread({\n height: '100%',\n width: '100%',\n maxHeight: calculatedHeight,\n maxWidth: calculatedWidth\n }, child.props.style)\n } : {}));\n }\n return child;\n });\n }, [aspect, children, height, maxHeight, minHeight, minWidth, sizes, width]);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id ? \"\".concat(id) : undefined,\n className: clsx('recharts-responsive-container', className),\n style: _objectSpread(_objectSpread({}, style), {}, {\n width: width,\n height: height,\n minWidth: minWidth,\n minHeight: minHeight,\n maxHeight: maxHeight\n }),\n ref: containerRef\n }, chartContent);\n});","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","var _excluded = [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\", \"title\", \"desc\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nexport function Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n title = props.title,\n desc = props.desc,\n others = _objectWithoutProperties(props, _excluded);\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = clsx('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, filterProps(others, true, 'svg'), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height)\n }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"desc\", null, desc), children);\n}","var _excluded = [\"children\", \"className\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nexport var Layer = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, _excluded);\n var layerClass = clsx('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true), {\n ref: ref\n }), children);\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Default Tooltip Content\n */\n\nimport React from 'react';\nimport sortBy from 'lodash/sortBy';\nimport isNil from 'lodash/isNil';\nimport clsx from 'clsx';\nimport { isNumOrStr } from '../util/DataUtils';\nfunction defaultFormatter(value) {\n return Array.isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\nexport var DefaultTooltipContent = function DefaultTooltipContent(props) {\n var _props$separator = props.separator,\n separator = _props$separator === void 0 ? ' : ' : _props$separator,\n _props$contentStyle = props.contentStyle,\n contentStyle = _props$contentStyle === void 0 ? {} : _props$contentStyle,\n _props$itemStyle = props.itemStyle,\n itemStyle = _props$itemStyle === void 0 ? {} : _props$itemStyle,\n _props$labelStyle = props.labelStyle,\n labelStyle = _props$labelStyle === void 0 ? {} : _props$labelStyle,\n payload = props.payload,\n formatter = props.formatter,\n itemSorter = props.itemSorter,\n wrapperClassName = props.wrapperClassName,\n labelClassName = props.labelClassName,\n label = props.label,\n labelFormatter = props.labelFormatter,\n _props$accessibilityL = props.accessibilityLayer,\n accessibilityLayer = _props$accessibilityL === void 0 ? false : _props$accessibilityL;\n var renderContent = function renderContent() {\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var value = entry.value,\n name = entry.name;\n var finalValue = value;\n var finalName = name;\n if (finalFormatter && finalValue != null && finalName != null) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n finalValue = _formatted[0];\n finalName = _formatted[1];\n } else {\n finalValue = formatted;\n }\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, finalName) : null, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, finalValue), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n return null;\n };\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n var hasLabel = !isNil(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = clsx('recharts-default-tooltip', wrapperClassName);\n var labelCN = clsx('recharts-tooltip-label', labelClassName);\n if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {\n finalLabel = labelFormatter(label, payload);\n }\n var accessibilityAttributes = accessibilityLayer ? {\n role: 'status',\n 'aria-live': 'assertive'\n } : {};\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: wrapperCN,\n style: finalStyle\n }, accessibilityAttributes), /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), renderContent());\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport clsx from 'clsx';\nimport { isNumber } from '../DataUtils';\nvar CSS_CLASS_PREFIX = 'recharts-tooltip-wrapper';\nvar TOOLTIP_HIDDEN = {\n visibility: 'hidden'\n};\nexport function getTooltipCSSClassName(_ref) {\n var coordinate = _ref.coordinate,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n return clsx(CSS_CLASS_PREFIX, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(CSS_CLASS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), \"\".concat(CSS_CLASS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), \"\".concat(CSS_CLASS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), \"\".concat(CSS_CLASS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y));\n}\nexport function getTooltipTranslateXY(_ref2) {\n var allowEscapeViewBox = _ref2.allowEscapeViewBox,\n coordinate = _ref2.coordinate,\n key = _ref2.key,\n offsetTopLeft = _ref2.offsetTopLeft,\n position = _ref2.position,\n reverseDirection = _ref2.reverseDirection,\n tooltipDimension = _ref2.tooltipDimension,\n viewBox = _ref2.viewBox,\n viewBoxDimension = _ref2.viewBoxDimension;\n if (position && isNumber(position[key])) {\n return position[key];\n }\n var negative = coordinate[key] - tooltipDimension - offsetTopLeft;\n var positive = coordinate[key] + offsetTopLeft;\n if (allowEscapeViewBox[key]) {\n return reverseDirection[key] ? negative : positive;\n }\n if (reverseDirection[key]) {\n var _tooltipBoundary = negative;\n var _viewBoxBoundary = viewBox[key];\n if (_tooltipBoundary < _viewBoxBoundary) {\n return Math.max(positive, viewBox[key]);\n }\n return Math.max(negative, viewBox[key]);\n }\n var tooltipBoundary = positive + tooltipDimension;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(negative, viewBox[key]);\n }\n return Math.max(positive, viewBox[key]);\n}\nexport function getTransformStyle(_ref3) {\n var translateX = _ref3.translateX,\n translateY = _ref3.translateY,\n useTranslate3d = _ref3.useTranslate3d;\n return {\n transform: useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n };\n}\nexport function getTooltipTranslate(_ref4) {\n var allowEscapeViewBox = _ref4.allowEscapeViewBox,\n coordinate = _ref4.coordinate,\n offsetTopLeft = _ref4.offsetTopLeft,\n position = _ref4.position,\n reverseDirection = _ref4.reverseDirection,\n tooltipBox = _ref4.tooltipBox,\n useTranslate3d = _ref4.useTranslate3d,\n viewBox = _ref4.viewBox;\n var cssProperties, translateX, translateY;\n if (tooltipBox.height > 0 && tooltipBox.width > 0 && coordinate) {\n translateX = getTooltipTranslateXY({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n key: 'x',\n offsetTopLeft: offsetTopLeft,\n position: position,\n reverseDirection: reverseDirection,\n tooltipDimension: tooltipBox.width,\n viewBox: viewBox,\n viewBoxDimension: viewBox.width\n });\n translateY = getTooltipTranslateXY({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n key: 'y',\n offsetTopLeft: offsetTopLeft,\n position: position,\n reverseDirection: reverseDirection,\n tooltipDimension: tooltipBox.height,\n viewBox: viewBox,\n viewBoxDimension: viewBox.height\n });\n cssProperties = getTransformStyle({\n translateX: translateX,\n translateY: translateY,\n useTranslate3d: useTranslate3d\n });\n } else {\n cssProperties = TOOLTIP_HIDDEN;\n }\n return {\n cssProperties: cssProperties,\n cssClasses: getTooltipCSSClassName({\n translateX: translateX,\n translateY: translateY,\n coordinate: coordinate\n })\n };\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { PureComponent } from 'react';\nimport { getTooltipTranslate } from '../util/tooltip/translate';\nvar EPSILON = 1;\nexport var TooltipBoundingBox = /*#__PURE__*/function (_PureComponent) {\n function TooltipBoundingBox() {\n var _this;\n _classCallCheck(this, TooltipBoundingBox);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, TooltipBoundingBox, [].concat(args));\n _defineProperty(_this, \"state\", {\n dismissed: false,\n dismissedAtCoordinate: {\n x: 0,\n y: 0\n },\n lastBoundingBox: {\n width: -1,\n height: -1\n }\n });\n _defineProperty(_this, \"handleKeyDown\", function (event) {\n if (event.key === 'Escape') {\n var _this$props$coordinat, _this$props$coordinat2, _this$props$coordinat3, _this$props$coordinat4;\n _this.setState({\n dismissed: true,\n dismissedAtCoordinate: {\n x: (_this$props$coordinat = (_this$props$coordinat2 = _this.props.coordinate) === null || _this$props$coordinat2 === void 0 ? void 0 : _this$props$coordinat2.x) !== null && _this$props$coordinat !== void 0 ? _this$props$coordinat : 0,\n y: (_this$props$coordinat3 = (_this$props$coordinat4 = _this.props.coordinate) === null || _this$props$coordinat4 === void 0 ? void 0 : _this$props$coordinat4.y) !== null && _this$props$coordinat3 !== void 0 ? _this$props$coordinat3 : 0\n }\n });\n }\n });\n return _this;\n }\n _inherits(TooltipBoundingBox, _PureComponent);\n return _createClass(TooltipBoundingBox, [{\n key: \"updateBBox\",\n value: function updateBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n if (Math.abs(box.width - this.state.lastBoundingBox.width) > EPSILON || Math.abs(box.height - this.state.lastBoundingBox.height) > EPSILON) {\n this.setState({\n lastBoundingBox: {\n width: box.width,\n height: box.height\n }\n });\n }\n } else if (this.state.lastBoundingBox.width !== -1 || this.state.lastBoundingBox.height !== -1) {\n this.setState({\n lastBoundingBox: {\n width: -1,\n height: -1\n }\n });\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('keydown', this.handleKeyDown);\n this.updateBBox();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var _this$props$coordinat5, _this$props$coordinat6;\n if (this.props.active) {\n this.updateBBox();\n }\n if (!this.state.dismissed) {\n return;\n }\n if (((_this$props$coordinat5 = this.props.coordinate) === null || _this$props$coordinat5 === void 0 ? void 0 : _this$props$coordinat5.x) !== this.state.dismissedAtCoordinate.x || ((_this$props$coordinat6 = this.props.coordinate) === null || _this$props$coordinat6 === void 0 ? void 0 : _this$props$coordinat6.y) !== this.state.dismissedAtCoordinate.y) {\n this.state.dismissed = false;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props = this.props,\n active = _this$props.active,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n children = _this$props.children,\n coordinate = _this$props.coordinate,\n hasPayload = _this$props.hasPayload,\n isAnimationActive = _this$props.isAnimationActive,\n offset = _this$props.offset,\n position = _this$props.position,\n reverseDirection = _this$props.reverseDirection,\n useTranslate3d = _this$props.useTranslate3d,\n viewBox = _this$props.viewBox,\n wrapperStyle = _this$props.wrapperStyle;\n var _getTooltipTranslate = getTooltipTranslate({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n offsetTopLeft: offset,\n position: position,\n reverseDirection: reverseDirection,\n tooltipBox: this.state.lastBoundingBox,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox\n }),\n cssClasses = _getTooltipTranslate.cssClasses,\n cssProperties = _getTooltipTranslate.cssProperties;\n var outerStyle = _objectSpread(_objectSpread({\n transition: isAnimationActive && active ? \"transform \".concat(animationDuration, \"ms \").concat(animationEasing) : undefined\n }, cssProperties), {}, {\n pointerEvents: 'none',\n visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n return (\n /*#__PURE__*/\n // This element allow listening to the `Escape` key.\n // See https://github.com/recharts/recharts/pull/2925\n React.createElement(\"div\", {\n tabIndex: -1,\n className: cssClasses,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, children)\n );\n }\n }]);\n}(PureComponent);","var parseIsSsrByDefault = function parseIsSsrByDefault() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\nexport var Global = {\n isSsr: parseIsSsrByDefault(),\n get: function get(key) {\n return Global[key];\n },\n set: function set(key, value) {\n if (typeof key === 'string') {\n Global[key] = value;\n } else {\n var keys = Object.keys(key);\n if (keys && keys.length) {\n keys.forEach(function (k) {\n Global[k] = key[k];\n });\n }\n }\n }\n};","import uniqBy from 'lodash/uniqBy';\nimport isFunction from 'lodash/isFunction';\n\n/**\n * This is configuration option that decides how to filter for unique values only:\n *\n * - `false` means \"no filter\"\n * - `true` means \"use recharts default filter\"\n * - function means \"use return of this function as the default key\"\n */\n\nexport function getUniqPayload(payload, option, defaultUniqBy) {\n if (option === true) {\n return uniqBy(payload, defaultUniqBy);\n }\n if (isFunction(option)) {\n return uniqBy(payload, option);\n }\n return payload;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { TooltipBoundingBox } from './TooltipBoundingBox';\nimport { Global } from '../util/Global';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n function Tooltip() {\n _classCallCheck(this, Tooltip);\n return _callSuper(this, Tooltip, arguments);\n }\n _inherits(Tooltip, _PureComponent);\n return _createClass(Tooltip, [{\n key: \"render\",\n value: function render() {\n var _this = this;\n var _this$props = this.props,\n active = _this$props.active,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n content = _this$props.content,\n coordinate = _this$props.coordinate,\n filterNull = _this$props.filterNull,\n isAnimationActive = _this$props.isAnimationActive,\n offset = _this$props.offset,\n payload = _this$props.payload,\n payloadUniqBy = _this$props.payloadUniqBy,\n position = _this$props.position,\n reverseDirection = _this$props.reverseDirection,\n useTranslate3d = _this$props.useTranslate3d,\n viewBox = _this$props.viewBox,\n wrapperStyle = _this$props.wrapperStyle;\n var finalPayload = payload !== null && payload !== void 0 ? payload : [];\n if (filterNull && finalPayload.length) {\n finalPayload = getUniqPayload(payload.filter(function (entry) {\n return entry.value != null && (entry.hide !== true || _this.props.includeHidden);\n }), payloadUniqBy, defaultUniqBy);\n }\n var hasPayload = finalPayload.length > 0;\n return /*#__PURE__*/React.createElement(TooltipBoundingBox, {\n allowEscapeViewBox: allowEscapeViewBox,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n isAnimationActive: isAnimationActive,\n active: active,\n coordinate: coordinate,\n hasPayload: hasPayload,\n offset: offset,\n position: position,\n reverseDirection: reverseDirection,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox,\n wrapperStyle: wrapperStyle\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: finalPayload\n })));\n }\n }]);\n}(PureComponent);\n_defineProperty(Tooltip, \"displayName\", 'Tooltip');\n_defineProperty(Tooltip, \"defaultProps\", {\n accessibilityLayer: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n animationDuration: 400,\n animationEasing: 'ease',\n contentStyle: {},\n coordinate: {\n x: 0,\n y: 0\n },\n cursor: true,\n cursorStyle: {},\n filterNull: true,\n isAnimationActive: !Global.isSsr,\n itemStyle: {},\n labelStyle: {},\n offset: 10,\n reverseDirection: {\n x: false,\n y: false\n },\n separator: ' : ',\n trigger: 'hover',\n useTranslate3d: false,\n viewBox: {\n x: 0,\n y: 0,\n height: 0,\n width: 0\n },\n wrapperStyle: {}\n});","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {pi, sqrt, tau} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst tan30 = sqrt(1 / 3);\nconst tan30_2 = tan30 * 2;\n\nexport default {\n draw(context, size) {\n const y = sqrt(size / tan30_2);\n const x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const w = sqrt(size);\n const x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {sin, cos, sqrt, pi, tau} from \"../math.js\";\n\nconst ka = 0.89081309152928522810;\nconst kr = sin(pi / 10) / sin(7 * pi / 10);\nconst kx = sin(tau / 10) * kr;\nconst ky = -cos(tau / 10) * kr;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size * ka);\n const x = kx * r;\n const y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (let i = 1; i < 5; ++i) {\n const a = tau * i / 5;\n const c = cos(a);\n const s = sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const y = -sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst c = -0.5;\nconst s = sqrt(3) / 2;\nconst k = 1 / sqrt(12);\nconst a = (k / 2 + 1) * 3;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / a);\n const x0 = r / 2, y0 = r * k;\n const x1 = x0, y1 = r * k + r;\n const x2 = -x1, y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","import {min, sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const r = sqrt(size + min(size / 28, 0.75)) * 0.59436;\n const t = r / 2;\n const u = t * sqrt3;\n context.moveTo(0, r);\n context.lineTo(0, -r);\n context.moveTo(-u, -t);\n context.lineTo(u, t);\n context.moveTo(-u, t);\n context.lineTo(u, -t);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const s = sqrt(size) * 0.6824;\n const t = s / 2;\n const u = (s * sqrt3) / 2; // cos(Math.PI / 6)\n context.moveTo(0, -s);\n context.lineTo(u, t);\n context.lineTo(-u, t);\n context.closePath();\n }\n};\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"type\", \"size\", \"sizeType\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport upperFirst from 'lodash/upperFirst';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'victory-vendor/d3-shape';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nvar symbolFactories = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n case 'square':\n return size * size;\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n default:\n return Math.PI * size * size / 4;\n }\n};\nvar registerSymbol = function registerSymbol(key, factory) {\n symbolFactories[\"symbol\".concat(upperFirst(key))] = factory;\n};\nexport var Symbols = function Symbols(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'circle' : _ref$type,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 64 : _ref$size,\n _ref$sizeType = _ref.sizeType,\n sizeType = _ref$sizeType === void 0 ? 'area' : _ref$sizeType,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread(_objectSpread({}, rest), {}, {\n type: type,\n size: size,\n sizeType: sizeType\n });\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n var getPath = function getPath() {\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n };\n var className = props.className,\n cx = props.cx,\n cy = props.cy;\n var filteredProps = filterProps(props, true);\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filteredProps, {\n className: clsx('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: getPath()\n }));\n }\n return null;\n};\nSymbols.registerSymbol = registerSymbol;","import constant from \"./constant.js\";\nimport {withPath} from \"./path.js\";\nimport asterisk from \"./symbol/asterisk.js\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport diamond2 from \"./symbol/diamond2.js\";\nimport plus from \"./symbol/plus.js\";\nimport square from \"./symbol/square.js\";\nimport square2 from \"./symbol/square2.js\";\nimport star from \"./symbol/star.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport triangle2 from \"./symbol/triangle2.js\";\nimport wye from \"./symbol/wye.js\";\nimport times from \"./symbol/times.js\";\n\n// These symbols are designed to be filled.\nexport const symbolsFill = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\n// These symbols are designed to be stroked (with a width of 1.5px and round caps).\nexport const symbolsStroke = [\n circle,\n plus,\n times,\n triangle2,\n asterisk,\n square2,\n diamond2\n];\n\nexport default function Symbol(type, size) {\n let context = null,\n path = withPath(symbol);\n\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n let buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { warn } from '../util/LogUtils';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n return _callSuper(this, DefaultLegendContent, arguments);\n }\n _inherits(DefaultLegendContent, _PureComponent);\n return _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var finalFormatter = entry.formatter || formatter;\n var className = clsx(_defineProperty(_defineProperty({\n 'recharts-legend-item': true\n }, \"legend-item-\".concat(i), true), \"inactive\", entry.inactive));\n if (entry.type === 'none') {\n return null;\n }\n\n // Do not render entry.value as functions. Always require static string properties.\n var entryValue = !isFunction(entry.value) ? entry.value : null;\n warn(!isFunction(entry.value), \"The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: \" // eslint-disable-line max-len\n );\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle\n // eslint-disable-next-line react/no-array-index-key\n ,\n key: \"legend-item-\".concat(i)\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entryValue, entry, i) : entryValue));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n if (!payload || !payload.length) {\n return null;\n }\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n}(PureComponent);\n_defineProperty(DefaultLegendContent, \"displayName\", 'Legend');\n_defineProperty(DefaultLegendContent, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"ref\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n function Legend() {\n var _this;\n _classCallCheck(this, Legend);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Legend, [].concat(args));\n _defineProperty(_this, \"lastBoundingBox\", {\n width: -1,\n height: -1\n });\n return _this;\n }\n _inherits(Legend, _PureComponent);\n return _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n box.height = this.wrapperNode.offsetHeight;\n box.width = this.wrapperNode.offsetWidth;\n return box;\n }\n return null;\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var onBBoxUpdate = this.props.onBBoxUpdate;\n var box = this.getBBox();\n if (box) {\n if (Math.abs(box.width - this.lastBoundingBox.width) > EPS || Math.abs(box.height - this.lastBoundingBox.height) > EPS) {\n this.lastBoundingBox.width = box.width;\n this.lastBoundingBox.height = box.height;\n if (onBBoxUpdate) {\n onBBoxUpdate(box);\n }\n }\n } else if (this.lastBoundingBox.width !== -1 || this.lastBoundingBox.height !== -1) {\n this.lastBoundingBox.width = -1;\n this.lastBoundingBox.height = -1;\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n }\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n if (this.lastBoundingBox.width >= 0 && this.lastBoundingBox.height >= 0) {\n return _objectSpread({}, this.lastBoundingBox);\n }\n return {\n width: 0,\n height: 0\n };\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var box = this.getBBoxSnapshot();\n hPos = {\n left: ((chartWidth || 0) - box.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box = this.getBBoxSnapshot();\n vPos = {\n top: ((chartHeight || 0) - _box.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payload, payloadUniqBy, defaultUniqBy)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var _this$defaultProps$it = _objectSpread(_objectSpread({}, this.defaultProps), item.props),\n layout = _this$defaultProps$it.layout;\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n return null;\n }\n }]);\n}(PureComponent);\n_defineProperty(Legend, \"displayName\", 'Legend');\n_defineProperty(Legend, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n});","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Dot\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nexport var Dot = function Dot(props) {\n var cx = props.cx,\n cy = props.cy,\n r = props.r,\n className = props.className;\n var layerClass = clsx('recharts-dot', className);\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(props, false), adaptEventHandlers(props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n return null;\n};","import type {\n AnyEqualityComparator,\n Cache,\n CircularState,\n Dictionary,\n State,\n TypeEqualityComparator,\n} from './internalTypes';\n\nconst { getOwnPropertyNames, getOwnPropertySymbols } = Object;\nconst { hasOwnProperty } = Object.prototype;\n\n/**\n * Combine two comparators into a single comparators.\n */\nexport function combineComparators(\n comparatorA: AnyEqualityComparator,\n comparatorB: AnyEqualityComparator,\n) {\n return function isEqual(a: A, b: B, state: State) {\n return comparatorA(a, b, state) && comparatorB(a, b, state);\n };\n}\n\n/**\n * Wrap the provided `areItemsEqual` method to manage the circular state, allowing\n * for circular references to be safely included in the comparison without creating\n * stack overflows.\n */\nexport function createIsCircular<\n AreItemsEqual extends TypeEqualityComparator,\n>(areItemsEqual: AreItemsEqual): AreItemsEqual {\n return function isCircular(\n a: any,\n b: any,\n state: CircularState>,\n ) {\n if (!a || !b || typeof a !== 'object' || typeof b !== 'object') {\n return areItemsEqual(a, b, state);\n }\n\n const { cache } = state;\n\n const cachedA = cache.get(a);\n const cachedB = cache.get(b);\n\n if (cachedA && cachedB) {\n return cachedA === b && cachedB === a;\n }\n\n cache.set(a, b);\n cache.set(b, a);\n\n const result = areItemsEqual(a, b, state);\n\n cache.delete(a);\n cache.delete(b);\n\n return result;\n } as AreItemsEqual;\n}\n\n/**\n * Get the properties to strictly examine, which include both own properties that are\n * not enumerable and symbol properties.\n */\nexport function getStrictProperties(\n object: Dictionary,\n): Array {\n return (getOwnPropertyNames(object) as Array).concat(\n getOwnPropertySymbols(object),\n );\n}\n\n/**\n * Whether the object contains the property passed as an own property.\n */\nexport const hasOwn =\n Object.hasOwn ||\n ((object: Dictionary, property: number | string | symbol) =>\n hasOwnProperty.call(object, property));\n\n/**\n * Whether the values passed are strictly equal or both NaN.\n */\nexport function sameValueZeroEqual(a: any, b: any): boolean {\n return a === b || (!a && !b && a !== a && b !== b);\n}\n","import { getStrictProperties, hasOwn, sameValueZeroEqual } from './utils';\nimport type {\n Dictionary,\n PrimitiveWrapper,\n State,\n TypedArray,\n} from './internalTypes';\n\nconst PREACT_VNODE = '__v';\nconst PREACT_OWNER = '__o';\nconst REACT_OWNER = '_owner';\n\nconst { getOwnPropertyDescriptor, keys } = Object;\n\n/**\n * Whether the arrays are equal in value.\n */\nexport function areArraysEqual(a: any[], b: any[], state: State) {\n let index = a.length;\n\n if (b.length !== index) {\n return false;\n }\n\n while (index-- > 0) {\n if (!state.equals(a[index], b[index], index, index, a, b, state)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Whether the dates passed are equal in value.\n */\nexport function areDatesEqual(a: Date, b: Date): boolean {\n return sameValueZeroEqual(a.getTime(), b.getTime());\n}\n\n/**\n * Whether the errors passed are equal in value.\n */\nexport function areErrorsEqual(a: Error, b: Error): boolean {\n return (\n a.name === b.name &&\n a.message === b.message &&\n a.cause === b.cause &&\n a.stack === b.stack\n );\n}\n\n/**\n * Whether the functions passed are equal in value.\n */\nexport function areFunctionsEqual(\n a: (...args: any[]) => any,\n b: (...args: any[]) => any,\n): boolean {\n return a === b;\n}\n\n/**\n * Whether the `Map`s are equal in value.\n */\nexport function areMapsEqual(\n a: Map,\n b: Map,\n state: State,\n): boolean {\n const size = a.size;\n\n if (size !== b.size) {\n return false;\n }\n\n if (!size) {\n return true;\n }\n\n const matchedIndices: Array = new Array(size);\n const aIterable = a.entries();\n\n let aResult: IteratorResult<[any, any]>;\n let bResult: IteratorResult<[any, any]>;\n let index = 0;\n\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n\n const bIterable = b.entries();\n\n let hasMatch = false;\n let matchIndex = 0;\n\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n\n if (matchedIndices[matchIndex]) {\n matchIndex++;\n continue;\n }\n\n const aEntry = aResult.value;\n const bEntry = bResult.value;\n\n if (\n state.equals(aEntry[0], bEntry[0], index, matchIndex, a, b, state) &&\n state.equals(aEntry[1], bEntry[1], aEntry[0], bEntry[0], a, b, state)\n ) {\n hasMatch = matchedIndices[matchIndex] = true;\n break;\n }\n\n matchIndex++;\n }\n\n if (!hasMatch) {\n return false;\n }\n\n index++;\n }\n\n return true;\n}\n\n/**\n * Whether the numbers are equal in value.\n */\nexport const areNumbersEqual = sameValueZeroEqual;\n\n/**\n * Whether the objects are equal in value.\n */\nexport function areObjectsEqual(\n a: Dictionary,\n b: Dictionary,\n state: State,\n): boolean {\n const properties = keys(a);\n\n let index = properties.length;\n\n if (keys(b).length !== index) {\n return false;\n }\n\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n if (!isPropertyEqual(a, b, state, properties[index]!)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Whether the objects are equal in value with strict property checking.\n */\nexport function areObjectsEqualStrict(\n a: Dictionary,\n b: Dictionary,\n state: State,\n): boolean {\n const properties = getStrictProperties(a);\n\n let index = properties.length;\n\n if (getStrictProperties(b).length !== index) {\n return false;\n }\n\n let property: string | symbol;\n let descriptorA: ReturnType;\n let descriptorB: ReturnType;\n\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n property = properties[index]!;\n\n if (!isPropertyEqual(a, b, state, property)) {\n return false;\n }\n\n descriptorA = getOwnPropertyDescriptor(a, property);\n descriptorB = getOwnPropertyDescriptor(b, property);\n\n if (\n (descriptorA || descriptorB) &&\n (!descriptorA ||\n !descriptorB ||\n descriptorA.configurable !== descriptorB.configurable ||\n descriptorA.enumerable !== descriptorB.enumerable ||\n descriptorA.writable !== descriptorB.writable)\n ) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Whether the primitive wrappers passed are equal in value.\n */\nexport function arePrimitiveWrappersEqual(\n a: PrimitiveWrapper,\n b: PrimitiveWrapper,\n): boolean {\n return sameValueZeroEqual(a.valueOf(), b.valueOf());\n}\n\n/**\n * Whether the regexps passed are equal in value.\n */\nexport function areRegExpsEqual(a: RegExp, b: RegExp): boolean {\n return a.source === b.source && a.flags === b.flags;\n}\n\n/**\n * Whether the `Set`s are equal in value.\n */\nexport function areSetsEqual(\n a: Set,\n b: Set,\n state: State,\n): boolean {\n const size = a.size;\n\n if (size !== b.size) {\n return false;\n }\n\n if (!size) {\n return true;\n }\n\n const matchedIndices: Array = new Array(size);\n const aIterable = a.values();\n\n let aResult: IteratorResult;\n let bResult: IteratorResult;\n\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n\n const bIterable = b.values();\n\n let hasMatch = false;\n let matchIndex = 0;\n\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n\n if (\n !matchedIndices[matchIndex] &&\n state.equals(\n aResult.value,\n bResult.value,\n aResult.value,\n bResult.value,\n a,\n b,\n state,\n )\n ) {\n hasMatch = matchedIndices[matchIndex] = true;\n break;\n }\n\n matchIndex++;\n }\n\n if (!hasMatch) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Whether the TypedArray instances are equal in value.\n */\nexport function areTypedArraysEqual(a: TypedArray, b: TypedArray) {\n let index = a.length;\n\n if (b.length !== index) {\n return false;\n }\n\n while (index-- > 0) {\n if (a[index] !== b[index]) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Whether the URL instances are equal in value.\n */\nexport function areUrlsEqual(a: URL, b: URL): boolean {\n return (\n a.hostname === b.hostname &&\n a.pathname === b.pathname &&\n a.protocol === b.protocol &&\n a.port === b.port &&\n a.hash === b.hash &&\n a.username === b.username &&\n a.password === b.password\n );\n}\n\nfunction isPropertyEqual(\n a: Dictionary,\n b: Dictionary,\n state: State,\n property: string | symbol,\n) {\n if (\n (property === REACT_OWNER ||\n property === PREACT_OWNER ||\n property === PREACT_VNODE) &&\n (a.$$typeof || b.$$typeof)\n ) {\n return true;\n }\n\n return (\n hasOwn(b, property) &&\n state.equals(a[property], b[property], property, property, a, b, state)\n );\n}\n","import {\n areArraysEqual as areArraysEqualDefault,\n areDatesEqual as areDatesEqualDefault,\n areErrorsEqual as areErrorsEqualDefault,\n areFunctionsEqual as areFunctionsEqualDefault,\n areMapsEqual as areMapsEqualDefault,\n areNumbersEqual as areNumbersEqualDefault,\n areObjectsEqual as areObjectsEqualDefault,\n areObjectsEqualStrict as areObjectsEqualStrictDefault,\n arePrimitiveWrappersEqual as arePrimitiveWrappersEqualDefault,\n areRegExpsEqual as areRegExpsEqualDefault,\n areSetsEqual as areSetsEqualDefault,\n areTypedArraysEqual as areTypedArraysEqualDefault,\n areUrlsEqual as areUrlsEqualDefault,\n} from './equals';\nimport { combineComparators, createIsCircular } from './utils';\nimport type {\n ComparatorConfig,\n CreateState,\n CustomEqualCreatorOptions,\n EqualityComparator,\n InternalEqualityComparator,\n State,\n} from './internalTypes';\n\nconst ARGUMENTS_TAG = '[object Arguments]';\nconst BOOLEAN_TAG = '[object Boolean]';\nconst DATE_TAG = '[object Date]';\nconst ERROR_TAG = '[object Error]';\nconst MAP_TAG = '[object Map]';\nconst NUMBER_TAG = '[object Number]';\nconst OBJECT_TAG = '[object Object]';\nconst REG_EXP_TAG = '[object RegExp]';\nconst SET_TAG = '[object Set]';\nconst STRING_TAG = '[object String]';\nconst URL_TAG = '[object URL]';\n\nconst { isArray } = Array;\nconst isTypedArray =\n typeof ArrayBuffer === 'function' && ArrayBuffer.isView\n ? ArrayBuffer.isView\n : null;\nconst { assign } = Object;\nconst getTag = Object.prototype.toString.call.bind(\n Object.prototype.toString,\n) as (a: object) => string;\n\ninterface CreateIsEqualOptions {\n circular: boolean;\n comparator: EqualityComparator;\n createState: CreateState | undefined;\n equals: InternalEqualityComparator;\n strict: boolean;\n}\n\n/**\n * Create a comparator method based on the type-specific equality comparators passed.\n */\nexport function createEqualityComparator({\n areArraysEqual,\n areDatesEqual,\n areErrorsEqual,\n areFunctionsEqual,\n areMapsEqual,\n areNumbersEqual,\n areObjectsEqual,\n arePrimitiveWrappersEqual,\n areRegExpsEqual,\n areSetsEqual,\n areTypedArraysEqual,\n areUrlsEqual,\n}: ComparatorConfig): EqualityComparator {\n /**\n * compare the value of the two objects and return true if they are equivalent in values\n */\n return function comparator(a: any, b: any, state: State): boolean {\n // If the items are strictly equal, no need to do a value comparison.\n if (a === b) {\n return true;\n }\n\n // If either of the items are nullish and fail the strictly equal check\n // above, then they must be unequal.\n if (a == null || b == null) {\n return false;\n }\n\n const type = typeof a;\n\n if (type !== typeof b) {\n return false;\n }\n\n if (type !== 'object') {\n if (type === 'number') {\n return areNumbersEqual(a, b, state);\n }\n\n if (type === 'function') {\n return areFunctionsEqual(a, b, state);\n }\n\n // If a primitive value that is not strictly equal, it must be unequal.\n return false;\n }\n\n const constructor = a.constructor;\n\n // Checks are listed in order of commonality of use-case:\n // 1. Common complex object types (plain object, array)\n // 2. Common data values (date, regexp)\n // 3. Less-common complex object types (map, set)\n // 4. Less-common data values (promise, primitive wrappers)\n // Inherently this is both subjective and assumptive, however\n // when reviewing comparable libraries in the wild this order\n // appears to be generally consistent.\n\n // Constructors should match, otherwise there is potential for false positives\n // between class and subclass or custom object and POJO.\n if (constructor !== b.constructor) {\n return false;\n }\n\n // `isPlainObject` only checks against the object's own realm. Cross-realm\n // comparisons are rare, and will be handled in the ultimate fallback, so\n // we can avoid capturing the string tag.\n if (constructor === Object) {\n return areObjectsEqual(a, b, state);\n }\n\n // `isArray()` works on subclasses and is cross-realm, so we can avoid capturing\n // the string tag or doing an `instanceof` check.\n if (isArray(a)) {\n return areArraysEqual(a, b, state);\n }\n\n // `isTypedArray()` works on all possible TypedArray classes, so we can avoid\n // capturing the string tag or comparing against all possible constructors.\n if (isTypedArray != null && isTypedArray(a)) {\n return areTypedArraysEqual(a, b, state);\n }\n\n // Try to fast-path equality checks for other complex object types in the\n // same realm to avoid capturing the string tag. Strict equality is used\n // instead of `instanceof` because it is more performant for the common\n // use-case. If someone is subclassing a native class, it will be handled\n // with the string tag comparison.\n\n if (constructor === Date) {\n return areDatesEqual(a, b, state);\n }\n\n if (constructor === RegExp) {\n return areRegExpsEqual(a, b, state);\n }\n\n if (constructor === Map) {\n return areMapsEqual(a, b, state);\n }\n\n if (constructor === Set) {\n return areSetsEqual(a, b, state);\n }\n\n // Since this is a custom object, capture the string tag to determing its type.\n // This is reasonably performant in modern environments like v8 and SpiderMonkey.\n const tag = getTag(a);\n\n if (tag === DATE_TAG) {\n return areDatesEqual(a, b, state);\n }\n\n // For RegExp, the properties are not enumerable, and therefore will give false positives if\n // tested like a standard object.\n if (tag === REG_EXP_TAG) {\n return areRegExpsEqual(a, b, state);\n }\n\n if (tag === MAP_TAG) {\n return areMapsEqual(a, b, state);\n }\n\n if (tag === SET_TAG) {\n return areSetsEqual(a, b, state);\n }\n\n if (tag === OBJECT_TAG) {\n // The exception for value comparison is custom `Promise`-like class instances. These should\n // be treated the same as standard `Promise` objects, which means strict equality, and if\n // it reaches this point then that strict equality comparison has already failed.\n return (\n typeof a.then !== 'function' &&\n typeof b.then !== 'function' &&\n areObjectsEqual(a, b, state)\n );\n }\n\n // If a URL tag, it should be tested explicitly. Like RegExp, the properties are not\n // enumerable, and therefore will give false positives if tested like a standard object.\n if (tag === URL_TAG) {\n return areUrlsEqual(a, b, state);\n }\n\n // If an error tag, it should be tested explicitly. Like RegExp, the properties are not\n // enumerable, and therefore will give false positives if tested like a standard object.\n if (tag === ERROR_TAG) {\n return areErrorsEqual(a, b, state);\n }\n\n // If an arguments tag, it should be treated as a standard object.\n if (tag === ARGUMENTS_TAG) {\n return areObjectsEqual(a, b, state);\n }\n\n // As the penultimate fallback, check if the values passed are primitive wrappers. This\n // is very rare in modern JS, which is why it is deprioritized compared to all other object\n // types.\n if (tag === BOOLEAN_TAG || tag === NUMBER_TAG || tag === STRING_TAG) {\n return arePrimitiveWrappersEqual(a, b, state);\n }\n\n // If not matching any tags that require a specific type of comparison, then we hard-code false because\n // the only thing remaining is strict equality, which has already been compared. This is for a few reasons:\n // - Certain types that cannot be introspected (e.g., `WeakMap`). For these types, this is the only\n // comparison that can be made.\n // - For types that can be introspected, but rarely have requirements to be compared\n // (`ArrayBuffer`, `DataView`, etc.), the cost is avoided to prioritize the common\n // use-cases (may be included in a future release, if requested enough).\n // - For types that can be introspected but do not have an objective definition of what\n // equality is (`Error`, etc.), the subjective decision is to be conservative and strictly compare.\n // In all cases, these decisions should be reevaluated based on changes to the language and\n // common development practices.\n return false;\n };\n}\n\n/**\n * Create the configuration object used for building comparators.\n */\nexport function createEqualityComparatorConfig({\n circular,\n createCustomConfig,\n strict,\n}: CustomEqualCreatorOptions): ComparatorConfig {\n let config = {\n areArraysEqual: strict\n ? areObjectsEqualStrictDefault\n : areArraysEqualDefault,\n areDatesEqual: areDatesEqualDefault,\n areErrorsEqual: areErrorsEqualDefault,\n areFunctionsEqual: areFunctionsEqualDefault,\n areMapsEqual: strict\n ? combineComparators(areMapsEqualDefault, areObjectsEqualStrictDefault)\n : areMapsEqualDefault,\n areNumbersEqual: areNumbersEqualDefault,\n areObjectsEqual: strict\n ? areObjectsEqualStrictDefault\n : areObjectsEqualDefault,\n arePrimitiveWrappersEqual: arePrimitiveWrappersEqualDefault,\n areRegExpsEqual: areRegExpsEqualDefault,\n areSetsEqual: strict\n ? combineComparators(areSetsEqualDefault, areObjectsEqualStrictDefault)\n : areSetsEqualDefault,\n areTypedArraysEqual: strict\n ? areObjectsEqualStrictDefault\n : areTypedArraysEqualDefault,\n areUrlsEqual: areUrlsEqualDefault,\n };\n\n if (createCustomConfig) {\n config = assign({}, config, createCustomConfig(config));\n }\n\n if (circular) {\n const areArraysEqual = createIsCircular(config.areArraysEqual);\n const areMapsEqual = createIsCircular(config.areMapsEqual);\n const areObjectsEqual = createIsCircular(config.areObjectsEqual);\n const areSetsEqual = createIsCircular(config.areSetsEqual);\n\n config = assign({}, config, {\n areArraysEqual,\n areMapsEqual,\n areObjectsEqual,\n areSetsEqual,\n });\n }\n\n return config;\n}\n\n/**\n * Default equality comparator pass-through, used as the standard `isEqual` creator for\n * use inside the built comparator.\n */\nexport function createInternalEqualityComparator(\n compare: EqualityComparator,\n): InternalEqualityComparator {\n return function (\n a: any,\n b: any,\n _indexOrKeyA: any,\n _indexOrKeyB: any,\n _parentA: any,\n _parentB: any,\n state: State,\n ) {\n return compare(a, b, state);\n };\n}\n\n/**\n * Create the `isEqual` function used by the consuming application.\n */\nexport function createIsEqual({\n circular,\n comparator,\n createState,\n equals,\n strict,\n}: CreateIsEqualOptions) {\n if (createState) {\n return function isEqual(a: A, b: B): boolean {\n const { cache = circular ? new WeakMap() : undefined, meta } =\n createState!();\n\n return comparator(a, b, {\n cache,\n equals,\n meta,\n strict,\n } as State);\n };\n }\n\n if (circular) {\n return function isEqual(a: A, b: B): boolean {\n return comparator(a, b, {\n cache: new WeakMap(),\n equals,\n meta: undefined as Meta,\n strict,\n } as State);\n };\n }\n\n const state = {\n cache: undefined,\n equals,\n meta: undefined,\n strict,\n } as State;\n\n return function isEqual(a: A, b: B): boolean {\n return comparator(a, b, state);\n };\n}\n","import {\n createEqualityComparatorConfig,\n createEqualityComparator,\n createInternalEqualityComparator,\n createIsEqual,\n} from './comparator';\nimport type { CustomEqualCreatorOptions } from './internalTypes';\nimport { sameValueZeroEqual } from './utils';\n\nexport { sameValueZeroEqual };\nexport type {\n AnyEqualityComparator,\n Cache,\n CircularState,\n ComparatorConfig,\n CreateCustomComparatorConfig,\n CreateState,\n CustomEqualCreatorOptions,\n DefaultState,\n Dictionary,\n EqualityComparator,\n EqualityComparatorCreator,\n InternalEqualityComparator,\n PrimitiveWrapper,\n State,\n TypeEqualityComparator,\n TypedArray,\n} from './internalTypes';\n\n/**\n * Whether the items passed are deeply-equal in value.\n */\nexport const deepEqual = createCustomEqual();\n\n/**\n * Whether the items passed are deeply-equal in value based on strict comparison.\n */\nexport const strictDeepEqual = createCustomEqual({ strict: true });\n\n/**\n * Whether the items passed are deeply-equal in value, including circular references.\n */\nexport const circularDeepEqual = createCustomEqual({ circular: true });\n\n/**\n * Whether the items passed are deeply-equal in value, including circular references,\n * based on strict comparison.\n */\nexport const strictCircularDeepEqual = createCustomEqual({\n circular: true,\n strict: true,\n});\n\n/**\n * Whether the items passed are shallowly-equal in value.\n */\nexport const shallowEqual = createCustomEqual({\n createInternalComparator: () => sameValueZeroEqual,\n});\n\n/**\n * Whether the items passed are shallowly-equal in value based on strict comparison\n */\nexport const strictShallowEqual = createCustomEqual({\n strict: true,\n createInternalComparator: () => sameValueZeroEqual,\n});\n\n/**\n * Whether the items passed are shallowly-equal in value, including circular references.\n */\nexport const circularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: () => sameValueZeroEqual,\n});\n\n/**\n * Whether the items passed are shallowly-equal in value, including circular references,\n * based on strict comparison.\n */\nexport const strictCircularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: () => sameValueZeroEqual,\n strict: true,\n});\n\n/**\n * Create a custom equality comparison method.\n *\n * This can be done to create very targeted comparisons in extreme hot-path scenarios\n * where the standard methods are not performant enough, but can also be used to provide\n * support for legacy environments that do not support expected features like\n * `RegExp.prototype.flags` out of the box.\n */\nexport function createCustomEqual(\n options: CustomEqualCreatorOptions = {},\n) {\n const {\n circular = false,\n createInternalComparator: createCustomInternalComparator,\n createState,\n strict = false,\n } = options;\n\n const config = createEqualityComparatorConfig(options);\n const comparator = createEqualityComparator(config);\n const equals = createCustomInternalComparator\n ? createCustomInternalComparator(comparator)\n : createInternalEqualityComparator(comparator);\n\n return createIsEqual({ circular, comparator, createState, equals, strict });\n}\n","function safeRequestAnimationFrame(callback) {\n if (typeof requestAnimationFrame !== 'undefined') requestAnimationFrame(callback);\n}\nexport default function setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n safeRequestAnimationFrame(shouldUpdate);\n }\n };\n requestAnimationFrame(shouldUpdate);\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport setRafTimeout from './setRafTimeout';\nexport default function createAnimateManager() {\n var currStyle = {};\n var handleChange = function handleChange() {\n return null;\n };\n var shouldStop = false;\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n var styles = _style;\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n if (typeof curr === 'number') {\n setRafTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n setStyle(curr);\n setRafTimeout(setStyle.bind(null, restStyles));\n return;\n }\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n if (typeof _style === 'function') {\n _style();\n }\n };\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* eslint no-console: 0 */\n\nexport var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return [Object.keys(preObj), Object.keys(nextObj)].reduce(function (a, b) {\n return a.filter(function (c) {\n return b.includes(c);\n });\n });\n};\nexport var identity = function identity(param) {\n return param;\n};\n\n/*\n * @description: convert camel case to dash case\n * string => string\n */\nexport var getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return \"-\".concat(v.toLowerCase());\n });\n};\nexport var log = function log() {\n var _console;\n (_console = console).log.apply(_console, arguments);\n};\n\n/*\n * @description: log the value of a varible\n * string => any => any\n */\nexport var debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\nexport var debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var res = f.apply(void 0, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = \"(\".concat(args.map(JSON.stringify).join(', '), \")\");\n log(\"\".concat(name, \": \").concat(argNames, \" => \").concat(JSON.stringify(res)));\n return res;\n };\n};\n\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\nexport var mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\nexport var getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing);\n }).join(',');\n};\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { warn } from './util';\nvar ACCURACY = 1e-4;\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n var newParams = [].concat(_toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)), [0]);\n return multyTime(newParams, t);\n };\n};\n\n// calculate cubic-bezier using Newton's method\nexport var configBezier = function configBezier() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n default:\n {\n var easing = args[0].split('(');\n if (easing[0] === 'cubic-bezier' && easing[1].split(')')[0].split(',').length === 4) {\n var _easing$1$split$0$spl = easing[1].split(')')[0].split(',').map(function (x) {\n return parseFloat(x);\n });\n var _easing$1$split$0$spl2 = _slicedToArray(_easing$1$split$0$spl, 4);\n x1 = _easing$1$split$0$spl2[0];\n y1 = _easing$1$split$0$spl2[1];\n x2 = _easing$1$split$0$spl2[2];\n y2 = _easing$1$split$0$spl2[3];\n } else {\n warn(false, '[configBezier]: arguments should be one of ' + \"oneOf 'linear', 'ease', 'ease-in', 'ease-out', \" + \"'ease-in-out','cubic-bezier(x1,y1,x2,y2)', instead received %s\", args);\n }\n }\n }\n }\n warn([x1, x2, y1, y2].every(function (num) {\n return typeof num === 'number' && num >= 0 && num <= 1;\n }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n };\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n x = rangeValue(x - evalT / derVal);\n }\n return curveY(x);\n };\n bezier.isStepper = false;\n return bezier;\n};\nexport var configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 17 : _config$dt;\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n return [newX, newV];\n };\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nexport var configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n var easing = args[0];\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n case 'spring':\n return configSpring();\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\n warn(false, \"[configEasing]: first argument should be one of 'ease', 'ease-in', \" + \"'ease-out', 'ease-in-out','cubic-bezier(x1,y1,x2,y2)', 'linear' and 'spring', instead received %s\", args);\n }\n }\n if (typeof easing === 'function') {\n return easing;\n }\n warn(false, '[configEasing]: first argument type should be function or string, instead received %s', args);\n return null;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { getIntersectionKeys, mapObject } from './util';\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\nvar calStepperVals = function calStepperVals(easing, preVals, steps) {\n var nextStepVals = mapObject(function (key, val) {\n if (needContinue(val)) {\n var _easing = easing(val.from, val.to, val.velocity),\n _easing2 = _slicedToArray(_easing, 2),\n newX = _easing2[0],\n newV = _easing2[1];\n return _objectSpread(_objectSpread({}, val), {}, {\n from: newX,\n velocity: newV\n });\n }\n return val;\n }, preVals);\n if (steps < 1) {\n return mapObject(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread(_objectSpread({}, val), {}, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n return val;\n }, preVals);\n }\n return calStepperVals(easing, nextStepVals, steps - 1);\n};\n\n// configure update function\nexport default (function (from, to, easing, duration, render) {\n var interKeys = getIntersectionKeys(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime;\n var beginTime;\n var update = function update() {\n return null;\n };\n var getCurrStyle = function getCurrStyle() {\n return mapObject(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n var shouldStopAnimation = function shouldStopAnimation() {\n return !Object.values(stepperStyle).filter(needContinue).length;\n };\n\n // stepper timing function like spring\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps);\n // get union set and add compatible prefix\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), getCurrStyle(stepperStyle)));\n preTime = now;\n if (!shouldStopAnimation()) {\n cafId = requestAnimationFrame(update);\n }\n };\n\n // t => val timing function like cubic-bezier\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\n var t = (now - beginTime) / duration;\n var currStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle);\n\n // get union set and add compatible prefix\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), currStyle));\n if (t < 1) {\n cafId = requestAnimationFrame(update);\n } else {\n var finalStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), finalStyle));\n }\n };\n update = easing.isStepper ? stepperUpdate : timingUpdate;\n\n // return start animation method\n return function () {\n requestAnimationFrame(update);\n\n // return stop animation method\n return function () {\n cancelAnimationFrame(cafId);\n };\n };\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { PureComponent, cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { deepEqual } from 'fast-equals';\nimport createAnimateManager from './AnimateManager';\nimport { configEasing } from './easing';\nimport configUpdate from './configUpdate';\nimport { getTransitionVal, identity } from './util';\nvar Animate = /*#__PURE__*/function (_PureComponent) {\n _inherits(Animate, _PureComponent);\n var _super = _createSuper(Animate);\n function Animate(props, context) {\n var _this;\n _classCallCheck(this, Animate);\n _this = _super.call(this, props, context);\n var _this$props = _this.props,\n isActive = _this$props.isActive,\n attributeName = _this$props.attributeName,\n from = _this$props.from,\n to = _this$props.to,\n steps = _this$props.steps,\n children = _this$props.children,\n duration = _this$props.duration;\n _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_this));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_this));\n if (!isActive || duration <= 0) {\n _this.state = {\n style: {}\n };\n\n // if children is a function and animation is not active, set style to 'to'\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n return _possibleConstructorReturn(_this);\n }\n if (steps && steps.length) {\n _this.state = {\n style: steps[0].style\n };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n return _possibleConstructorReturn(_this);\n }\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n return _this;\n }\n _createClass(Animate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props2 = this.props,\n isActive = _this$props2.isActive,\n canBegin = _this$props2.canBegin;\n this.mounted = true;\n if (!isActive || !canBegin) {\n return;\n }\n this.runAnimation(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n isActive = _this$props3.isActive,\n canBegin = _this$props3.canBegin,\n attributeName = _this$props3.attributeName,\n shouldReAnimate = _this$props3.shouldReAnimate,\n to = _this$props3.to,\n currentFrom = _this$props3.from;\n var style = this.state.style;\n if (!canBegin) {\n return;\n }\n if (!isActive) {\n var newState = {\n style: attributeName ? _defineProperty({}, attributeName, to) : to\n };\n if (this.state && style) {\n if (attributeName && style[attributeName] !== to || !attributeName && style !== to) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n return;\n }\n if (deepEqual(prevProps.to, to) && prevProps.canBegin && prevProps.isActive) {\n return;\n }\n var isTriggered = !prevProps.canBegin || !prevProps.isActive;\n if (this.manager) {\n this.manager.stop();\n }\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n var from = isTriggered || shouldReAnimate ? currentFrom : prevProps.to;\n if (this.state && style) {\n var _newState = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n if (attributeName && style[attributeName] !== from || !attributeName && style !== from) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(_newState);\n }\n }\n this.runAnimation(_objectSpread(_objectSpread({}, this.props), {}, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n var onAnimationEnd = this.props.onAnimationEnd;\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, this.changeStyle);\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n if (typeof easing === 'function' || easing === 'spring') {\n return [].concat(_toConsumableArray(sequence), [_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n var transition = getTransitionVal(properties, duration, easing);\n var newStyle = _objectSpread(_objectSpread(_objectSpread({}, preItem.style), style), {}, {\n transition: transition\n });\n return [].concat(_toConsumableArray(sequence), [newStyle, duration, onAnimationEnd]).filter(identity);\n };\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = createAnimateManager();\n }\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsTo = props.to,\n easing = props.easing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n steps = props.steps,\n children = props.children;\n var manager = this.manager;\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = getTransitionVal(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread(_objectSpread({}, to), {}, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n begin = _this$props4.begin,\n duration = _this$props4.duration,\n attributeName = _this$props4.attributeName,\n easing = _this$props4.easing,\n isActive = _this$props4.isActive,\n steps = _this$props4.steps,\n from = _this$props4.from,\n to = _this$props4.to,\n canBegin = _this$props4.canBegin,\n onAnimationEnd = _this$props4.onAnimationEnd,\n shouldReAnimate = _this$props4.shouldReAnimate,\n onAnimationReStart = _this$props4.onAnimationReStart,\n others = _objectWithoutProperties(_this$props4, _excluded);\n var count = Children.count(children);\n // eslint-disable-next-line react/destructuring-assignment\n var stateStyle = this.state.style;\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n if (!isActive || count === 0 || duration <= 0) {\n return children;\n }\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = /*#__PURE__*/cloneElement(container, _objectSpread(_objectSpread({}, others), {}, {\n style: _objectSpread(_objectSpread({}, style), stateStyle),\n className: className\n }));\n return res;\n };\n if (count === 1) {\n return cloneContainer(Children.only(children));\n }\n return /*#__PURE__*/React.createElement(\"div\", null, Children.map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n return Animate;\n}(PureComponent);\nAnimate.displayName = 'Animate';\nAnimate.defaultProps = {\n begin: 0,\n duration: 1000,\n from: '',\n to: '',\n attributeName: '',\n easing: 'ease',\n isActive: true,\n canBegin: true,\n steps: [],\n onAnimationEnd: function onAnimationEnd() {},\n onAnimationStart: function onAnimationStart() {}\n};\nAnimate.propTypes = {\n from: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n to: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n attributeName: PropTypes.string,\n // animation duration\n duration: PropTypes.number,\n begin: PropTypes.number,\n easing: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n steps: PropTypes.arrayOf(PropTypes.shape({\n duration: PropTypes.number.isRequired,\n style: PropTypes.object.isRequired,\n easing: PropTypes.oneOfType([PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), PropTypes.func]),\n // transition css properties(dash case), optional\n properties: PropTypes.arrayOf('string'),\n onAnimationEnd: PropTypes.func\n })),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n isActive: PropTypes.bool,\n canBegin: PropTypes.bool,\n onAnimationEnd: PropTypes.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: PropTypes.bool,\n onAnimationStart: PropTypes.func,\n onAnimationReStart: PropTypes.func\n};\nexport default Animate;","import Animate from './Animate';\nimport { configBezier, configSpring } from './easing';\nimport AnimateGroup from './AnimateGroup';\nexport { configSpring, configBezier, AnimateGroup };\nexport default Animate;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getRectanglePath = function getRectanglePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n return path;\n};\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\n var px = point.x,\n py = point.y;\n var x = rect.x,\n y = rect.y,\n width = rect.width,\n height = rect.height;\n if (Math.abs(width) > 0 && Math.abs(height) > 0) {\n var minX = Math.min(x, x + width);\n var maxX = Math.max(x, x + width);\n var minY = Math.min(y, y + height);\n var maxY = Math.max(y, y + height);\n return px >= minX && px <= maxX && py >= minY && py <= maxY;\n }\n return false;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Rectangle = function Rectangle(rectangleProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), rectangleProps);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n radius = props.radius,\n className = props.className;\n var animationEasing = props.animationEasing,\n animationDuration = props.animationDuration,\n animationBegin = props.animationBegin,\n isAnimationActive = props.isAnimationActive,\n isUpdateAnimationActive = props.isUpdateAnimationActive;\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-rectangle', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: pathRef\n })));\n });\n};","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { Global } from './Global';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n return value;\n}\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nfunction removeInvalidKeys(obj) {\n var copyObj = _objectSpread({}, obj);\n Object.keys(copyObj).forEach(function (key) {\n if (!copyObj[key]) {\n delete copyObj[key];\n }\n });\n return copyObj;\n}\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n var copyStyle = removeInvalidKeys(style);\n var cacheKey = JSON.stringify({\n text: text,\n copyStyle: copyStyle\n });\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n }\n // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), copyStyle);\n Object.assign(measurementSpan.style, measurementSpanStyle);\n measurementSpan.textContent = \"\".concat(text);\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(rect) {\n return {\n top: rect.top + window.scrollY - document.documentElement.clientTop,\n left: rect.left + window.scrollX - document.documentElement.clientLeft\n };\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar MULTIPLY_OR_DIVIDE_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([*/])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar ADD_OR_SUBTRACT_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([+-])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar CSS_LENGTH_UNIT_REGEX = /^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/;\nvar NUM_SPLIT_REGEX = /(-?\\d+(?:\\.\\d+)?)([a-zA-Z%]+)?/;\nvar CONVERSION_RATES = {\n cm: 96 / 2.54,\n mm: 96 / 25.4,\n pt: 96 / 72,\n pc: 96 / 6,\n \"in\": 96,\n Q: 96 / (2.54 * 40),\n px: 1\n};\nvar FIXED_CSS_LENGTH_UNITS = Object.keys(CONVERSION_RATES);\nvar STR_NAN = 'NaN';\nfunction convertToPx(value, unit) {\n return value * CONVERSION_RATES[unit];\n}\nvar DecimalCSS = /*#__PURE__*/function () {\n function DecimalCSS(num, unit) {\n _classCallCheck(this, DecimalCSS);\n this.num = num;\n this.unit = unit;\n this.num = num;\n this.unit = unit;\n if (Number.isNaN(num)) {\n this.unit = '';\n }\n if (unit !== '' && !CSS_LENGTH_UNIT_REGEX.test(unit)) {\n this.num = NaN;\n this.unit = '';\n }\n if (FIXED_CSS_LENGTH_UNITS.includes(unit)) {\n this.num = convertToPx(num, unit);\n this.unit = 'px';\n }\n }\n return _createClass(DecimalCSS, [{\n key: \"add\",\n value: function add(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num + other.num, this.unit);\n }\n }, {\n key: \"subtract\",\n value: function subtract(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num - other.num, this.unit);\n }\n }, {\n key: \"multiply\",\n value: function multiply(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num * other.num, this.unit || other.unit);\n }\n }, {\n key: \"divide\",\n value: function divide(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num / other.num, this.unit || other.unit);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.num).concat(this.unit);\n }\n }, {\n key: \"isNaN\",\n value: function isNaN() {\n return Number.isNaN(this.num);\n }\n }], [{\n key: \"parse\",\n value: function parse(str) {\n var _NUM_SPLIT_REGEX$exec;\n var _ref = (_NUM_SPLIT_REGEX$exec = NUM_SPLIT_REGEX.exec(str)) !== null && _NUM_SPLIT_REGEX$exec !== void 0 ? _NUM_SPLIT_REGEX$exec : [],\n _ref2 = _slicedToArray(_ref, 3),\n numStr = _ref2[1],\n unit = _ref2[2];\n return new DecimalCSS(parseFloat(numStr), unit !== null && unit !== void 0 ? unit : '');\n }\n }]);\n}();\nfunction calculateArithmetic(expr) {\n if (expr.includes(STR_NAN)) {\n return STR_NAN;\n }\n var newExpr = expr;\n while (newExpr.includes('*') || newExpr.includes('/')) {\n var _MULTIPLY_OR_DIVIDE_R;\n var _ref3 = (_MULTIPLY_OR_DIVIDE_R = MULTIPLY_OR_DIVIDE_REGEX.exec(newExpr)) !== null && _MULTIPLY_OR_DIVIDE_R !== void 0 ? _MULTIPLY_OR_DIVIDE_R : [],\n _ref4 = _slicedToArray(_ref3, 4),\n leftOperand = _ref4[1],\n operator = _ref4[2],\n rightOperand = _ref4[3];\n var lTs = DecimalCSS.parse(leftOperand !== null && leftOperand !== void 0 ? leftOperand : '');\n var rTs = DecimalCSS.parse(rightOperand !== null && rightOperand !== void 0 ? rightOperand : '');\n var result = operator === '*' ? lTs.multiply(rTs) : lTs.divide(rTs);\n if (result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(MULTIPLY_OR_DIVIDE_REGEX, result.toString());\n }\n while (newExpr.includes('+') || /.-\\d+(?:\\.\\d+)?/.test(newExpr)) {\n var _ADD_OR_SUBTRACT_REGE;\n var _ref5 = (_ADD_OR_SUBTRACT_REGE = ADD_OR_SUBTRACT_REGEX.exec(newExpr)) !== null && _ADD_OR_SUBTRACT_REGE !== void 0 ? _ADD_OR_SUBTRACT_REGE : [],\n _ref6 = _slicedToArray(_ref5, 4),\n _leftOperand = _ref6[1],\n _operator = _ref6[2],\n _rightOperand = _ref6[3];\n var _lTs = DecimalCSS.parse(_leftOperand !== null && _leftOperand !== void 0 ? _leftOperand : '');\n var _rTs = DecimalCSS.parse(_rightOperand !== null && _rightOperand !== void 0 ? _rightOperand : '');\n var _result = _operator === '+' ? _lTs.add(_rTs) : _lTs.subtract(_rTs);\n if (_result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(ADD_OR_SUBTRACT_REGEX, _result.toString());\n }\n return newExpr;\n}\nvar PARENTHESES_REGEX = /\\(([^()]*)\\)/;\nfunction calculateParentheses(expr) {\n var newExpr = expr;\n while (newExpr.includes('(')) {\n var _PARENTHESES_REGEX$ex = PARENTHESES_REGEX.exec(newExpr),\n _PARENTHESES_REGEX$ex2 = _slicedToArray(_PARENTHESES_REGEX$ex, 2),\n parentheticalExpression = _PARENTHESES_REGEX$ex2[1];\n newExpr = newExpr.replace(PARENTHESES_REGEX, calculateArithmetic(parentheticalExpression));\n }\n return newExpr;\n}\nfunction evaluateExpression(expression) {\n var newExpr = expression.replace(/\\s+/g, '');\n newExpr = calculateParentheses(newExpr);\n newExpr = calculateArithmetic(newExpr);\n return newExpr;\n}\nexport function safeEvaluateExpression(expression) {\n try {\n return evaluateExpression(expression);\n } catch (e) {\n /* istanbul ignore next */\n return STR_NAN;\n }\n}\nexport function reduceCSSCalc(expression) {\n var result = safeEvaluateExpression(expression.slice(5, -1));\n if (result === STR_NAN) {\n // notify the user\n return '';\n }\n return result;\n}","var _excluded = [\"x\", \"y\", \"lineHeight\", \"capHeight\", \"scaleToFit\", \"textAnchor\", \"verticalAnchor\", \"fill\"],\n _excluded2 = [\"dx\", \"dy\", \"angle\", \"className\", \"breakAll\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport React, { useMemo } from 'react';\nimport isNil from 'lodash/isNil';\nimport clsx from 'clsx';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/ReactUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { reduceCSSCalc } from '../util/ReduceCSSCalc';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\nvar calculateWordWidths = function calculateWordWidths(_ref) {\n var children = _ref.children,\n breakAll = _ref.breakAll,\n style = _ref.style;\n try {\n var words = [];\n if (!isNil(children)) {\n if (breakAll) {\n words = children.toString().split('');\n } else {\n words = children.toString().split(BREAKING_SPACES);\n }\n }\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, style).width\n };\n });\n var spaceWidth = breakAll ? 0 : getStringSize(\"\\xA0\", style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\nvar calculateWordsByLines = function calculateWordsByLines(_ref2, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var maxLines = _ref2.maxLines,\n children = _ref2.children,\n style = _ref2.style,\n breakAll = _ref2.breakAll;\n var shouldLimitLines = isNumber(maxLines);\n var text = children;\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref3) {\n var word = _ref3.word,\n width = _ref3.width;\n var currentLine = result[result.length - 1];\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < Number(lineWidth))) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n return result;\n }, []);\n };\n var originalResult = calculate(initialWordsWithComputedWith);\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n if (!shouldLimitLines) {\n return originalResult;\n }\n var suffix = '…';\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths({\n breakAll: breakAll,\n style: style,\n children: tempText + suffix\n }).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > maxLines || findLongestLine(result).width > Number(lineWidth);\n return [doesOverflow, result];\n };\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n iterations++;\n }\n\n // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n return trimmedResult || originalResult;\n};\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\nvar getWordsByLines = function getWordsByLines(_ref4) {\n var width = _ref4.width,\n scaleToFit = _ref4.scaleToFit,\n children = _ref4.children,\n style = _ref4.style,\n breakAll = _ref4.breakAll,\n maxLines = _ref4.maxLines;\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((width || scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n var wordWidths = calculateWordWidths({\n breakAll: breakAll,\n children: children,\n style: style\n });\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(children);\n }\n return calculateWordsByLines({\n breakAll: breakAll,\n children: children,\n maxLines: maxLines,\n style: style\n }, wordsWithComputedWidth, spaceWidth, width, scaleToFit);\n }\n return getWordsWithoutCalculate(children);\n};\nvar DEFAULT_FILL = '#808080';\nexport var Text = function Text(_ref5) {\n var _ref5$x = _ref5.x,\n propsX = _ref5$x === void 0 ? 0 : _ref5$x,\n _ref5$y = _ref5.y,\n propsY = _ref5$y === void 0 ? 0 : _ref5$y,\n _ref5$lineHeight = _ref5.lineHeight,\n lineHeight = _ref5$lineHeight === void 0 ? '1em' : _ref5$lineHeight,\n _ref5$capHeight = _ref5.capHeight,\n capHeight = _ref5$capHeight === void 0 ? '0.71em' : _ref5$capHeight,\n _ref5$scaleToFit = _ref5.scaleToFit,\n scaleToFit = _ref5$scaleToFit === void 0 ? false : _ref5$scaleToFit,\n _ref5$textAnchor = _ref5.textAnchor,\n textAnchor = _ref5$textAnchor === void 0 ? 'start' : _ref5$textAnchor,\n _ref5$verticalAnchor = _ref5.verticalAnchor,\n verticalAnchor = _ref5$verticalAnchor === void 0 ? 'end' : _ref5$verticalAnchor,\n _ref5$fill = _ref5.fill,\n fill = _ref5$fill === void 0 ? DEFAULT_FILL : _ref5$fill,\n props = _objectWithoutProperties(_ref5, _excluded);\n var wordsByLines = useMemo(function () {\n return getWordsByLines({\n breakAll: props.breakAll,\n children: props.children,\n maxLines: props.maxLines,\n scaleToFit: scaleToFit,\n style: props.style,\n width: props.width\n });\n }, [props.breakAll, props.children, props.maxLines, scaleToFit, props.style, props.width]);\n var dx = props.dx,\n dy = props.dy,\n angle = props.angle,\n className = props.className,\n breakAll = props.breakAll,\n textProps = _objectWithoutProperties(props, _excluded2);\n if (!isNumOrStr(propsX) || !isNumOrStr(propsY)) {\n return null;\n }\n var x = propsX + (isNumber(dx) ? dx : 0);\n var y = propsY + (isNumber(dy) ? dy : 0);\n var startDy;\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n var transforms = [];\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: clsx('recharts-text', className),\n textAnchor: textAnchor,\n fill: fill.includes('url') ? DEFAULT_FILL : fill\n }), wordsByLines.map(function (line, index) {\n var words = line.words.join(breakAll ? '' : ' ');\n return (\n /*#__PURE__*/\n // duplicate words will cause duplicate keys\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: \"\".concat(words, \"-\").concat(index)\n }, words)\n );\n }));\n};","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format, formatSpecifier} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : x => Math.pow(base, x);\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), x => Math.log(x) / base);\n}\n\nfunction reflect(f) {\n return (x, k) => -f(-x, k);\n}\n\nexport function loggish(transform) {\n const scale = transform(transformLog, transformExp);\n const domain = scale.domain;\n let base = 10;\n let logs;\n let pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = count => {\n const d = domain();\n let u = d[0];\n let v = d[d.length - 1];\n const r = v < u;\n\n if (r) ([u, v] = [v, u]);\n\n let i = logs(u);\n let j = logs(v);\n let k;\n let t;\n const n = count == null ? 10 : +count;\n let z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1; k < base; ++k) {\n t = i < 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1; k >= 1; --k) {\n t = i > 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = (count, specifier) => {\n if (count == null) count = 10;\n if (specifier == null) specifier = base === 10 ? \"s\" : \",\";\n if (typeof specifier !== \"function\") {\n if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;\n specifier = format(specifier);\n }\n if (count === Infinity) return specifier;\n const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return d => {\n let i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = () => {\n return domain(nice(domain(), {\n floor: x => pows(Math.floor(logs(x))),\n ceil: x => pows(Math.ceil(logs(x)))\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n const scale = loggish(transformer()).domain([1, 10]);\n scale.copy = () => copy(scale, log()).base(scale.base());\n initRange.apply(scale, arguments);\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f] = F;\n if ((f && f.length !== 2) || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascendingDefined(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascendingDefined(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(compareDefined(f));\n}\n\nexport function compareDefined(compare = ascending) {\n if (compare === ascending) return ascendingDefined;\n if (typeof compare !== \"function\") throw new TypeError(\"compare is not a function\");\n return (a, b) => {\n const x = compare(a, b);\n if (x || x === 0) return x;\n return (compare(b, b) === 0) - (compare(a, a) === 0);\n };\n}\n\nexport function ascendingDefined(a, b) {\n return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);\n}\n","import {ascendingDefined, compareDefined} from \"./sort.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = Infinity, compare) {\n k = Math.floor(k);\n left = Math.floor(Math.max(0, left));\n right = Math.floor(Math.min(array.length - 1, right));\n\n if (!(left <= k && k <= right)) return array;\n\n compare = compare === undefined ? ascendingDefined : compareDefined(compare);\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport maxIndex from \"./maxIndex.js\";\nimport min from \"./min.js\";\nimport minIndex from \"./minIndex.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\nimport {ascendingDefined} from \"./sort.js\";\nimport greatest from \"./greatest.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileIndex(values, p, valueof = number) {\n if (isNaN(p = +p)) return;\n numbers = Float64Array.from(values, (_, i) => number(valueof(values[i], i, values)));\n if (p <= 0) return minIndex(numbers);\n if (p >= 1) return maxIndex(numbers);\n var numbers,\n index = Uint32Array.from(values, (_, i) => i),\n j = numbers.length - 1,\n i = Math.floor(j * p);\n quickselect(index, i, 0, j, (i, j) => ascendingDefined(numbers[i], numbers[j]));\n i = greatest(index.subarray(0, i + 1), (i) => numbers[i]);\n return i >= 0 ? i : -1;\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar identity = function identity(i) {\n return i;\n};\n\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nexport var curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\nexport var range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\nexport var map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\nexport var memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};","/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\n\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = []; // magic number to prevent infinite loop\n\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = curry(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport default {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport Arithmetic from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\n\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n\n var digitCount = Arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new Decimal(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(Arithmetic.getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(function (n) {\n return middle.add(new Decimal(n - middleIndex).mul(step)).toNumber();\n }), range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : [].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return -Infinity;\n })), [cormax]);\n\n return min > max ? reverse(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = compose(map(function (n) {\n return new Decimal(cormin).add(new Decimal(n).mul(step)).toNumber();\n }), range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(Arithmetic.rangeStep(new Decimal(cormin), new Decimal(cormax).sub(new Decimal(0.99).mul(step)), step)), [cormax]);\n return min > max ? reverse(values) : values;\n}\n\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValues = memoize(getTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","var _excluded = [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Render a group of error bar\n */\nimport React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/ReactUtils';\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var ErrorBar = /*#__PURE__*/function (_React$Component) {\n function ErrorBar() {\n _classCallCheck(this, ErrorBar);\n return _callSuper(this, ErrorBar, arguments);\n }\n _inherits(ErrorBar, _React$Component);\n return _createClass(ErrorBar, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n offset = _this$props.offset,\n layout = _this$props.layout,\n width = _this$props.width,\n dataKey = _this$props.dataKey,\n data = _this$props.data,\n dataPointFormatter = _this$props.dataPointFormatter,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis,\n others = _objectWithoutProperties(_this$props, _excluded);\n var svgProps = filterProps(others, false);\n !!(this.props.direction === 'x' && xAxis.type !== 'number') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ErrorBar requires Axis type property to be \"number\".') : invariant(false) : void 0;\n var errorBars = data.map(function (entry) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n if (!errorVal) {\n return null;\n }\n var lineCoordinates = [];\n var lowBound, highBound;\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n if (layout === 'vertical') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var scale = xAxis.scale;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale(value - lowBound);\n var xMax = scale(value + highBound);\n\n // the right line of |--|\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n });\n // the middle line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n });\n // the left line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n } else if (layout === 'horizontal') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var _scale = yAxis.scale;\n var xMid = x + offset;\n var _xMin = xMid - width;\n var _xMax = xMid + width;\n var _yMin = _scale(value - lowBound);\n var _yMax = _scale(value + highBound);\n\n // the top line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n });\n // the middle line\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n });\n // the bottom line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(lineCoordinates.map(function (c) {\n return \"\".concat(c.x1, \"-\").concat(c.x2, \"-\").concat(c.y1, \"-\").concat(c.y2);\n }))\n }, svgProps), lineCoordinates.map(function (coordinates) {\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, coordinates, {\n key: \"line-\".concat(coordinates.x1, \"-\").concat(coordinates.x2, \"-\").concat(coordinates.y1, \"-\").concat(coordinates.y2)\n }));\n }));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n }\n }]);\n}(React.Component);\n_defineProperty(ErrorBar, \"defaultProps\", {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n});\n_defineProperty(ErrorBar, \"displayName\", 'ErrorBar');","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { Legend } from '../component/Legend';\nimport { getMainColorOfGraphicItem } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nexport var getLegendProps = function getLegendProps(_ref) {\n var children = _ref.children,\n formattedGraphicalItems = _ref.formattedGraphicalItems,\n legendWidth = _ref.legendWidth,\n legendContent = _ref.legendContent;\n var legendItem = findChildByType(children, Legend);\n if (!legendItem) {\n return null;\n }\n var legendDefaultProps = Legend.defaultProps;\n var legendProps = legendDefaultProps !== undefined ? _objectSpread(_objectSpread({}, legendDefaultProps), legendItem.props) : {};\n var legendData;\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formattedGraphicalItems || []).reduce(function (result, _ref2) {\n var item = _ref2.item,\n props = _ref2.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formattedGraphicalItems || []).map(function (_ref3) {\n var item = _ref3.item;\n var itemDefaultProps = item.type.defaultProps;\n var itemProps = itemDefaultProps !== undefined ? _objectSpread(_objectSpread({}, itemDefaultProps), item.props) : {};\n var dataKey = itemProps.dataKey,\n name = itemProps.name,\n legendType = itemProps.legendType,\n hide = itemProps.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendProps.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n // @ts-expect-error property strokeDasharray is required in Payload but optional in props\n payload: itemProps\n };\n });\n }\n return _objectSpread(_objectSpread(_objectSpread({}, legendProps), Legend.getWithHeight(legendItem, legendWidth)), {}, {\n payload: legendData,\n item: legendItem\n });\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport * as d3Scales from 'victory-vendor/d3-scale';\nimport { stack as shapeStack, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle, stackOrderNone } from 'victory-vendor/d3-shape';\nimport max from 'lodash/max';\nimport min from 'lodash/min';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport get from 'lodash/get';\nimport flatMap from 'lodash/flatMap';\nimport isNan from 'lodash/isNaN';\nimport upperFirst from 'lodash/upperFirst';\nimport isEqual from 'lodash/isEqual';\nimport sortBy from 'lodash/sortBy';\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport { ErrorBar } from '../cartesian/ErrorBar';\nimport { findEntryInArray, getPercentValue, isNumber, isNumOrStr, mathSign, uniqueId } from './DataUtils';\nimport { filterProps, findAllByType, getDisplayName } from './ReactUtils';\n// TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\n\nimport { getLegendProps } from './getLegendProps';\n\n// Exported for backwards compatibility\nexport { getLegendProps };\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (isNil(obj) || isNil(dataKey)) {\n return defaultValue;\n }\n if (isNumOrStr(dataKey)) {\n return get(obj, dataKey, defaultValue);\n }\n if (isFunction(dataKey)) {\n return dataKey(obj);\n }\n return defaultValue;\n}\n/**\n * Get domain of data by key.\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n if (type === 'number') {\n // @ts-expect-error parseFloat type only accepts strings\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [min(domain), max(domain)] : [Infinity, -Infinity];\n }\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !isNil(entry);\n }) : flattenData;\n\n // Supports x-axis of Date type\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n // if there are 1 or less ticks ticks then the active tick is at index 0\n if (len <= 1) {\n return 0;\n }\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range;\n // ticks are distributed in a circle\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var minValue = Math.min(before, after);\n var maxValue = Math.max(before, after);\n if (coordinate > (minValue + cur) / 2 && coordinate <= (maxValue + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n return index;\n};\n\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _item$type;\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n var defaultedProps = (_item$type = item.type) !== null && _item$type !== void 0 && _item$type.defaultProps ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var stroke = defaultedProps.stroke,\n fill = defaultedProps.fill;\n var result;\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n default:\n result = fill;\n break;\n }\n return result;\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\nexport var getBarSizeList = function getBarSizeList(_ref2) {\n var globalSize = _ref2.barSize,\n totalSize = _ref2.totalSize,\n _ref2$stackGroups = _ref2.stackGroups,\n stackGroups = _ref2$stackGroups === void 0 ? {} : _ref2$stackGroups;\n if (!stackGroups) {\n return {};\n }\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n if (barItems && barItems.length) {\n var barItemDefaultProps = barItems[0].type.defaultProps;\n var barItemProps = barItemDefaultProps !== undefined ? _objectSpread(_objectSpread({}, barItemDefaultProps), barItems[0].props) : barItems[0].props;\n var selfSize = barItemProps.barSize;\n var cateId = barItemProps[cateAxisId];\n if (!result[cateId]) {\n result[cateId] = [];\n }\n var barSize = isNil(selfSize) ? globalSize : selfSize;\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: isNil(barSize) ? undefined : getPercentValue(barSize, totalSize, 0)\n });\n }\n }\n }\n return result;\n};\n/**\n * Calculate the size of each bar and offset between start of band and the bar\n *\n * @param {number} bandSize is the size of area where bars can render\n * @param {number | string} barGap is the gap size, as a percentage of `bandSize`.\n * Can be defined as number or percent string\n * @param {number | string} barCategoryGap is the gap size, as a percentage of `bandSize`.\n * Can be defined as number or percent string\n * @param {Array} sizeList Sizes of all groups\n * @param {number} maxBarSize The maximum size of each bar\n * @return {Array} The size and offset of each bar\n */\nexport var getBarPosition = function getBarPosition(_ref3) {\n var barGap = _ref3.barGap,\n barCategoryGap = _ref3.barCategoryGap,\n bandSize = _ref3.bandSize,\n _ref3$sizeList = _ref3.sizeList,\n sizeList = _ref3$sizeList === void 0 ? [] : _ref3$sizeList,\n maxBarSize = _ref3.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result;\n var initialValue = [];\n\n // whether or not is barSize setted by user\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n // @ts-expect-error the type check above does not check for type number explicitly\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newPosition = {\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n // @ts-expect-error the type check above does not check for type number explicitly\n size: useFull ? fullBarSize : entry.barSize\n }\n };\n var newRes = [].concat(_toConsumableArray(res), [newPosition]);\n prev = newRes[newRes.length - 1].position;\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n return newRes;\n }, initialValue);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n return newRes;\n }, initialValue);\n }\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, _unused, props, legendBox) {\n var children = props.children,\n width = props.width,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n if (legendProps) {\n var _ref4 = legendBox || {},\n boxWidth = _ref4.width,\n boxHeight = _ref4.height;\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'middle') && align !== 'center' && isNumber(offset[align])) {\n return _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, offset[align] + (boxWidth || 0)));\n }\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && verticalAlign !== 'middle' && isNumber(offset[verticalAlign])) {\n return _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, offset[verticalAlign] + (boxHeight || 0)));\n }\n }\n return offset;\n};\nvar isErrorBarRelevantForAxis = function isErrorBarRelevantForAxis(layout, axisType, direction) {\n if (isNil(axisType)) {\n return true;\n }\n if (layout === 'horizontal') {\n return axisType === 'yAxis';\n }\n if (layout === 'vertical') {\n return axisType === 'xAxis';\n }\n if (direction === 'x') {\n return axisType === 'xAxis';\n }\n if (direction === 'y') {\n return axisType === 'yAxis';\n }\n return true;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, layout, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, ErrorBar).filter(function (errorBarChild) {\n return isErrorBarRelevantForAxis(layout, axisType, errorBarChild.props.direction);\n });\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey);\n if (isNil(entryValue)) return result;\n var mainValue = Array.isArray(entryValue) ? [min(entryValue), max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(Array.isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(Array.isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType, layout) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, layout, axisType);\n }).filter(function (entry) {\n return !isNil(entry);\n });\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\n\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {LayoutType} layout The type of layout\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, layout, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey, layout) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(\n // @ts-expect-error if (type === number) means that the domain is numerical type\n // - but this link is missing in the type definition\n function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n var tag = {};\n // Get the union set of category axis\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n // @ts-expect-error Date cannot index an object\n if (!tag[entry[i]]) {\n // @ts-expect-error Date cannot index an object\n tag[entry[i]] = true;\n\n // @ts-expect-error Date cannot index an object\n result.push(entry[i]);\n }\n }\n return result;\n }, []);\n};\nexport var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} minValue The minimun value of axis\n * @param {Number} maxValue The maximun value of axis\n * @param {boolean} syncWithTicks Synchronize grid lines with ticks or not\n * @return {Array} Coordinates\n */\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, minValue, maxValue, syncWithTicks) {\n if (syncWithTicks) {\n return ticks.map(function (entry) {\n return entry.coordinate;\n });\n }\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === minValue) {\n hasMin = true;\n }\n if (entry.coordinate === maxValue) {\n hasMax = true;\n }\n return entry.coordinate;\n });\n if (!hasMin) {\n values.push(minValue);\n }\n if (!hasMax) {\n values.push(maxValue);\n }\n return values;\n};\n\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offsetForBand = axis.realScaleType === 'scaleBand' ? scale.bandwidth() / 2 : 2;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axis.axisType === 'angleAxis' && (range === null || range === void 0 ? void 0 : range.length) >= 2 ? mathSign(range[0] - range[1]) * 2 * offset : offset;\n\n // The ticks set by user should only affect the ticks adjacent to axis line\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n var result = (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n // If the scaleContent is not a number, the coordinate will be NaN.\n // That could be the case for example with a PointScale and a string as domain.\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n return result.filter(function (row) {\n return !isNan(row.coordinate);\n });\n }\n\n // When axis is a categorial axis, but the type of axis is number or the scale of axis is not \"auto\"\n if (axis.isCategorical && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nvar handlerWeakMap = new WeakMap();\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, childHandler) {\n if (typeof childHandler !== 'function') {\n return defaultHandler;\n }\n if (!handlerWeakMap.has(defaultHandler)) {\n handlerWeakMap.set(defaultHandler, new WeakMap());\n }\n var childWeakMap = handlerWeakMap.get(defaultHandler);\n if (childWeakMap.has(childHandler)) {\n return childWeakMap.get(childHandler);\n }\n var combineHandler = function combineHandler() {\n defaultHandler.apply(void 0, arguments);\n childHandler.apply(void 0, arguments);\n };\n childWeakMap.set(childHandler, combineHandler);\n return combineHandler;\n};\n\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @param {Boolean} hasBar if it has a bar\n * @return {object} The scale function and resolved name\n */\nexport var parseScale = function parseScale(axis, chartType, hasBar) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (isString(scale)) {\n var name = \"scale\".concat(upperFirst(scale));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n return isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n if (!domain || domain.length <= 2) {\n return;\n }\n var len = domain.length;\n var range = scale.range();\n var minValue = Math.min(range[0], range[1]) - EPS;\n var maxValue = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n if (first < minValue || first > maxValue || last < minValue || last > maxValue) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n return null;\n};\n\n/**\n * Both value and domain are tuples of two numbers\n * - but the type stays as array of numbers until we have better support in rest of the app\n * @param {Array} value input that will be truncated\n * @param {Array} domain boundaries\n * @returns {Array} tuple of two numbers\n */\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n var minValue = Math.min(domain[0], domain[1]);\n var maxValue = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n if (!isNumber(value[0]) || value[0] < minValue) {\n result[0] = minValue;\n }\n if (!isNumber(value[1]) || value[1] > maxValue) {\n result[1] = maxValue;\n }\n if (result[0] > maxValue) {\n result[0] = maxValue;\n }\n if (result[1] < minValue) {\n result[1] = minValue;\n }\n return result;\n};\n\n/**\n * Stacks all positive numbers above zero and all negative numbers below zero.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n for (var i = 0; i < n; ++i) {\n var value = isNan(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring, no-param-reassign */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring, no-param-reassign */\n }\n }\n};\n\n/**\n * Replaces all negative values with zero when stacking data.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n for (var i = 0; i < n; ++i) {\n var value = isNan(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring, no-param-reassign */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = 0;\n series[i][j][1] = 0;\n }\n /* eslint-enable prefer-destructuring, no-param-reassign */\n }\n }\n};\n\n/**\n * Function type to compute offset for stacked data.\n *\n * d3-shape has something fishy going on with its types.\n * In @definitelytyped/d3-shape, this function (the offset accessor) is typed as Series<> => void.\n * However! When I actually open the storybook I can see that the offset accessor actually receives Array>.\n * The same I can see in the source code itself:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n * That one unfortunately has no types but we can tell it passes three-dimensional array.\n *\n * Which leads me to believe that definitelytyped is wrong on this one.\n * There's open discussion on this topic without much attention:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n */\n\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n // @ts-expect-error definitelytyped types are incorrect\n expand: stackOffsetExpand,\n // @ts-expect-error definitelytyped types are incorrect\n none: stackOffsetNone,\n // @ts-expect-error definitelytyped types are incorrect\n silhouette: stackOffsetSilhouette,\n // @ts-expect-error definitelytyped types are incorrect\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var offsetAccessor = STACK_OFFSET_MAP[offsetType];\n var stack = shapeStack()\n // @ts-expect-error stack.keys type wants an array of strings, but we provide array of DataKeys\n .keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone)\n // @ts-expect-error definitelytyped types are incorrect\n .offset(offsetAccessor);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n }\n\n // reversing items to affect render order (for layering)\n var items = reverseStackOrder ? _items.reverse() : _items;\n var parentStackGroupsInitialValue = {};\n var stackGroups = items.reduce(function (result, item) {\n var _item$type2;\n var defaultedProps = (_item$type2 = item.type) !== null && _item$type2 !== void 0 && _item$type2.defaultProps ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var stackId = defaultedProps.stackId,\n hide = defaultedProps.hide;\n if (hide) {\n return result;\n }\n var axisId = defaultedProps[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, parentStackGroupsInitialValue);\n var axisStackGroupsInitialValue = {};\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n if (group.hasStack) {\n var stackGroupsInitialValue = {};\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, stackGroupsInitialValue);\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));\n }, axisStackGroupsInitialValue);\n};\n\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n if (!domain.length) {\n return null;\n }\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain([min(tickValues), max(tickValues)]);\n return {\n niceTicks: tickValues\n };\n }\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n return {\n niceTicks: _tickValues\n };\n }\n return null;\n};\nexport function getCateCoordinateOfLine(_ref5) {\n var axis = _ref5.axis,\n ticks = _ref5.ticks,\n bandSize = _ref5.bandSize,\n entry = _ref5.entry,\n index = _ref5.index,\n dataKey = _ref5.dataKey;\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n if (!axis.allowDuplicatedCategory && axis.dataKey && !isNil(entry[axis.dataKey])) {\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n var value = getValueByDataKey(entry, !isNil(dataKey) ? dataKey : axis.dataKey);\n return !isNil(value) ? axis.scale(value) : null;\n}\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref6) {\n var axis = _ref6.axis,\n ticks = _ref6.ticks,\n offset = _ref6.offset,\n bandSize = _ref6.bandSize,\n entry = _ref6.entry,\n index = _ref6.index;\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref7) {\n var numericAxis = _ref7.numericAxis;\n var domain = numericAxis.scale.domain();\n if (numericAxis.type === 'number') {\n var minValue = Math.min(domain[0], domain[1]);\n var maxValue = Math.max(domain[0], domain[1]);\n if (minValue <= 0 && maxValue >= 0) {\n return 0;\n }\n if (maxValue < 0) {\n return maxValue;\n }\n return minValue;\n }\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var _item$type3;\n var defaultedProps = (_item$type3 = item.type) !== null && _item$type3 !== void 0 && _item$type3.defaultProps ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var stackId = defaultedProps.stackId;\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n if (group) {\n var itemIndex = group.items.indexOf(item);\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n return null;\n};\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [min(entry.concat([result[0]]).filter(isNumber)), max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (isFunction(specifiedDomain)) {\n return specifiedDomain(dataDomain, allowDataOverflow);\n }\n if (!Array.isArray(specifiedDomain)) {\n return dataDomain;\n }\n var domain = [];\n\n /* eslint-disable prefer-destructuring */\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n domain[1] = dataDomain[1] + _value;\n } else if (isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n return domain;\n};\n\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {\n // @ts-expect-error we need to rethink scale type\n if (axis && axis.scale && axis.scale.bandwidth) {\n // @ts-expect-error we need to rethink scale type\n var bandWidth = axis.scale.bandwidth();\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = sortBy(ticks, function (o) {\n return o.coordinate;\n });\n var bandSize = Infinity;\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n return bandSize === Infinity ? 0 : bandSize;\n }\n return isBar ? undefined : 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis ReactElement\n * @returns {Array} domains\n */\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n if (isEqual(specifiedDomain, get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n return specifiedDomain;\n};\nexport var getTooltipItem = function getTooltipItem(graphicalItem, payload) {\n var defaultedProps = graphicalItem.type.defaultProps ? _objectSpread(_objectSpread({}, graphicalItem.type.defaultProps), graphicalItem.props) : graphicalItem.props;\n var dataKey = defaultedProps.dataKey,\n name = defaultedProps.name,\n unit = defaultedProps.unit,\n formatter = defaultedProps.formatter,\n tooltipType = defaultedProps.tooltipType,\n chartType = defaultedProps.chartType,\n hide = defaultedProps.hide;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem, false)), {}, {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(graphicalItem),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload,\n chartType: chartType,\n hide: hide\n });\n};","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport clsx from 'clsx';\nimport { scalePoint } from 'victory-vendor/d3-scale';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar createScale = function createScale(_ref) {\n var data = _ref.data,\n startIndex = _ref.startIndex,\n endIndex = _ref.endIndex,\n x = _ref.x,\n width = _ref.width,\n travellerWidth = _ref.travellerWidth;\n if (!data || !data.length) {\n return {};\n }\n var len = data.length;\n var scale = scalePoint().domain(range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(function (entry) {\n return scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n isTravellerFocused: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n function Brush(props) {\n var _this;\n _classCallCheck(this, Brush);\n _this = _callSuper(this, Brush, [props]);\n _defineProperty(_this, \"handleDrag\", function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n });\n _defineProperty(_this, \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n });\n _defineProperty(_this, \"handleDragEnd\", function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n }, function () {\n var _this$props = _this.props,\n endIndex = _this$props.endIndex,\n onDragEnd = _this$props.onDragEnd,\n startIndex = _this$props.startIndex;\n onDragEnd === null || onDragEnd === void 0 || onDragEnd({\n endIndex: endIndex,\n startIndex: startIndex\n });\n });\n _this.detachDragEndListener();\n });\n _defineProperty(_this, \"handleLeaveWrapper\", function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n });\n _defineProperty(_this, \"handleEnterSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: true\n });\n });\n _defineProperty(_this, \"handleLeaveSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: false\n });\n });\n _defineProperty(_this, \"handleSlideDragStart\", function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n _this.attachDragEndListener();\n });\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_this, 'startX'),\n endX: _this.handleTravellerDragStart.bind(_this, 'endX')\n };\n _this.state = {};\n return _this;\n }\n _inherits(Brush, _PureComponent);\n return _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n this.detachDragEndListener();\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref2) {\n var startX = _ref2.startX,\n endX = _ref2.endX;\n var scaleValues = this.state.scaleValues;\n var _this$props2 = this.props,\n gap = _this$props2.gap,\n data = _this$props2.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = Brush.getIndexInRange(scaleValues, min);\n var maxIndex = Brush.getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props3 = this.props,\n data = _this$props3.data,\n tickFormatter = _this$props3.tickFormatter,\n dataKey = _this$props3.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return isFunction(tickFormatter) ? tickFormatter(text, index) : text;\n }\n }, {\n key: \"attachDragEndListener\",\n value: function attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n window.addEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n window.removeEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n startIndex = _this$props4.startIndex,\n endIndex = _this$props4.endIndex,\n onChange = _this$props4.onChange;\n var delta = e.pageX - slideMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props5 = this.props,\n x = _this$props5.x,\n width = _this$props5.width,\n travellerWidth = _this$props5.travellerWidth,\n onChange = _this$props5.onChange,\n gap = _this$props5.gap,\n data = _this$props5.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n return false;\n };\n this.setState(_defineProperty(_defineProperty({}, movingTravellerId, prevValue + delta), \"brushMoveStartX\", e.pageX), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"handleTravellerMoveKeyboard\",\n value: function handleTravellerMoveKeyboard(direction, id) {\n var _this2 = this;\n // scaleValues are a list of coordinates. For example: [65, 250, 435, 620, 805, 990].\n var _this$state3 = this.state,\n scaleValues = _this$state3.scaleValues,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n // currentScaleValue refers to which coordinate the current traveller should be placed at.\n var currentScaleValue = this.state[id];\n var currentIndex = scaleValues.indexOf(currentScaleValue);\n if (currentIndex === -1) {\n return;\n }\n var newIndex = currentIndex + direction;\n if (newIndex === -1 || newIndex >= scaleValues.length) {\n return;\n }\n var newScaleValue = scaleValues[newIndex];\n\n // Prevent travellers from being on top of each other or overlapping\n if (id === 'startX' && newScaleValue >= endX || id === 'endX' && newScaleValue <= startX) {\n return;\n }\n this.setState(_defineProperty({}, id, newScaleValue), function () {\n _this2.props.onChange(_this2.getIndex({\n startX: _this2.state.startX,\n endX: _this2.state.endX\n }));\n });\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n fill = _this$props6.fill,\n stroke = _this$props6.stroke;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props7 = this.props,\n x = _this$props7.x,\n y = _this$props7.y,\n width = _this$props7.width,\n height = _this$props7.height,\n data = _this$props7.data,\n children = _this$props7.children,\n padding = _this$props7.padding;\n var chartElement = Children.only(children);\n if (!chartElement) {\n return null;\n }\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTravellerLayer\",\n value: function renderTravellerLayer(travellerX, id) {\n var _data$startIndex,\n _data$endIndex,\n _this3 = this;\n var _this$props8 = this.props,\n y = _this$props8.y,\n travellerWidth = _this$props8.travellerWidth,\n height = _this$props8.height,\n traveller = _this$props8.traveller,\n ariaLabel = _this$props8.ariaLabel,\n data = _this$props8.data,\n startIndex = _this$props8.startIndex,\n endIndex = _this$props8.endIndex;\n var x = Math.max(travellerX, this.props.x);\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props, false)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n var ariaLabelBrush = ariaLabel || \"Min value: \".concat((_data$startIndex = data[startIndex]) === null || _data$startIndex === void 0 ? void 0 : _data$startIndex.name, \", Max value: \").concat((_data$endIndex = data[endIndex]) === null || _data$endIndex === void 0 ? void 0 : _data$endIndex.name);\n return /*#__PURE__*/React.createElement(Layer, {\n tabIndex: 0,\n role: \"slider\",\n \"aria-label\": ariaLabelBrush,\n \"aria-valuenow\": travellerX,\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n onKeyDown: function onKeyDown(e) {\n if (!['ArrowLeft', 'ArrowRight'].includes(e.key)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n _this3.handleTravellerMoveKeyboard(e.key === 'ArrowRight' ? 1 : -1, id);\n },\n onFocus: function onFocus() {\n _this3.setState({\n isTravellerFocused: true\n });\n },\n onBlur: function onBlur() {\n _this3.setState({\n isTravellerFocused: false\n });\n },\n style: {\n cursor: 'col-resize'\n }\n }, Brush.renderTraveller(traveller, travellerProps));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props9 = this.props,\n y = _this$props9.y,\n height = _this$props9.height,\n stroke = _this$props9.stroke,\n travellerWidth = _this$props9.travellerWidth;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props10 = this.props,\n startIndex = _this$props10.startIndex,\n endIndex = _this$props10.endIndex,\n y = _this$props10.y,\n height = _this$props10.height,\n travellerWidth = _this$props10.travellerWidth,\n stroke = _this$props10.stroke;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props11 = this.props,\n data = _this$props11.data,\n className = _this$props11.className,\n children = _this$props11.children,\n x = _this$props11.x,\n y = _this$props11.y,\n width = _this$props11.width,\n height = _this$props11.height,\n alwaysShowText = _this$props11.alwaysShowText;\n var _this$state5 = this.state,\n startX = _this$state5.startX,\n endX = _this$state5.endX,\n isTextActive = _this$state5.isTextActive,\n isSlideMoving = _this$state5.isSlideMoving,\n isTravellerMoving = _this$state5.isTravellerMoving,\n isTravellerFocused = _this$state5.isTravellerFocused;\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n var layerClass = clsx('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || isTravellerFocused || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"renderDefaultTraveller\",\n value: function renderDefaultTraveller(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n stroke = props.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(option, props) {\n var rectangle;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = Brush.renderDefaultTraveller(props);\n }\n return rectangle;\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n x = nextProps.x,\n travellerWidth = nextProps.travellerWidth,\n updateId = nextProps.updateId,\n startIndex = nextProps.startIndex,\n endIndex = nextProps.endIndex;\n if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data: data,\n width: width,\n x: x,\n travellerWidth: travellerWidth,\n startIndex: startIndex,\n endIndex: endIndex\n }) : {\n scale: null,\n scaleValues: null\n });\n }\n if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevState.scale.range([x, x + width - travellerWidth]);\n var scaleValues = prevState.scale.domain().map(function (entry) {\n return prevState.scale(entry);\n });\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width,\n startX: prevState.scale(nextProps.startIndex),\n endX: prevState.scale(nextProps.endIndex),\n scaleValues: scaleValues\n };\n }\n return null;\n }\n }, {\n key: \"getIndexInRange\",\n value: function getIndexInRange(valueRange, x) {\n var len = valueRange.length;\n var start = 0;\n var end = len - 1;\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n if (valueRange[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n return x >= valueRange[end] ? end : start;\n }\n }]);\n}(PureComponent);\n_defineProperty(Brush, \"displayName\", 'Brush');\n_defineProperty(Brush, \"defaultProps\", {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport isNil from 'lodash/isNil';\nimport { isValidElement } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n if (isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n var _range2 = _slicedToArray(_range, 2);\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n if (radius === 0) {\n return true;\n }\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n var formatAngle = angle;\n var inRange;\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n return null;\n};\nexport var getTickClassName = function getTickClassName(tick) {\n return ! /*#__PURE__*/isValidElement(tick) && !isFunction(tick) && typeof tick !== 'boolean' ? tick.className : '';\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"offset\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport isObject from 'lodash/isObject';\nimport clsx from 'clsx';\nimport { Text } from './Text';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = isNil(props.children) ? value : props.children;\n if (isFunction(formatter)) {\n return formatter(label);\n }\n return label;\n};\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: clsx('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n var r = (innerRadius + outerRadius) / 2;\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height;\n\n // Define vertical offsets and position inverts based on the value being positive or negative\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end';\n\n // Define horizontal offsets and position inverts based on the value being positive or negative\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\nvar isPolar = function isPolar(viewBox) {\n return 'cx' in viewBox && isNumber(viewBox.cx);\n};\nexport function Label(_ref4) {\n var _ref4$offset = _ref4.offset,\n offset = _ref4$offset === void 0 ? 5 : _ref4$offset,\n restProps = _objectWithoutProperties(_ref4, _excluded);\n var props = _objectSpread({\n offset: offset\n }, restProps);\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n if (!viewBox || isNil(value) && isNil(children) && ! /*#__PURE__*/isValidElement(content) && !isFunction(content)) {\n return null;\n }\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n var label;\n if (isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: clsx('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n if (labelViewBox) {\n return labelViewBox;\n }\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n if (props.viewBox) {\n return props.viewBox;\n }\n return {};\n};\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n return null;\n};\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n // eslint-disable-next-line react/no-array-index-key\n key: \"label-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n return ifOverflow === value;\n};","/**\n * @fileOverview Cross\n */\n\nexport var Cell = function Cell(_props) {\n return null;\n};\nCell.displayName = 'Cell';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"valueAccessor\"],\n _excluded2 = [\"data\", \"dataKey\", \"clockWise\", \"id\", \"textBreakAll\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nimport React, { cloneElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isObject from 'lodash/isObject';\nimport isFunction from 'lodash/isFunction';\nimport last from 'lodash/last';\nimport { Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nvar defaultAccessor = function defaultAccessor(entry) {\n return Array.isArray(entry.value) ? last(entry.value) : entry.value;\n};\nexport function LabelList(_ref) {\n var _ref$valueAccessor = _ref.valueAccessor,\n valueAccessor = _ref$valueAccessor === void 0 ? defaultAccessor : _ref$valueAccessor,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var data = restProps.data,\n dataKey = restProps.dataKey,\n clockWise = restProps.clockWise,\n id = restProps.id,\n textBreakAll = restProps.textBreakAll,\n others = _objectWithoutProperties(restProps, _excluded2);\n if (!data || !data.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({}, filterProps(entry, true), others, idProps, {\n parentViewBox: entry.parentViewBox,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: Label.parseViewBox(isNil(clockWise) ? entry : _objectSpread(_objectSpread({}, entry), {}, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n ,\n index: index\n }));\n }));\n}\nLabelList.displayName = 'LabelList';\nfunction parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n if ( /*#__PURE__*/React.isValidElement(label) || isFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n if (isObject(label)) {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n return null;\n}\nfunction renderCallByParent(parentProps, data) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var explicitChildren = findAllByType(children, LabelList).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n data: data,\n // eslint-disable-next-line react/no-array-index-key\n key: \"labelList-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChildren));\n}\nLabelList.renderCallByParent = renderCallByParent;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getTrapezoidPath = function getTrapezoidPath(x, y, upperWidth, lowerWidth, height) {\n var widthGap = upperWidth - lowerWidth;\n var path;\n path = \"M \".concat(x, \",\").concat(y);\n path += \"L \".concat(x + upperWidth, \",\").concat(y);\n path += \"L \".concat(x + upperWidth - widthGap / 2, \",\").concat(y + height);\n path += \"L \".concat(x + upperWidth - widthGap / 2 - lowerWidth, \",\").concat(y + height);\n path += \"L \".concat(x, \",\").concat(y, \" Z\");\n return path;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n upperWidth: 0,\n lowerWidth: 0,\n height: 0,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Trapezoid = function Trapezoid(props) {\n var trapezoidProps = _objectSpread(_objectSpread({}, defaultProps), props);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = trapezoidProps.x,\n y = trapezoidProps.y,\n upperWidth = trapezoidProps.upperWidth,\n lowerWidth = trapezoidProps.lowerWidth,\n height = trapezoidProps.height,\n className = trapezoidProps.className;\n var animationEasing = trapezoidProps.animationEasing,\n animationDuration = trapezoidProps.animationDuration,\n animationBegin = trapezoidProps.animationBegin,\n isUpdateAnimationActive = trapezoidProps.isUpdateAnimationActive;\n if (x !== +x || y !== +y || upperWidth !== +upperWidth || lowerWidth !== +lowerWidth || height !== +height || upperWidth === 0 && lowerWidth === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-trapezoid', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(x, y, upperWidth, lowerWidth, height)\n })));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n upperWidth: 0,\n lowerWidth: 0,\n height: height,\n x: x,\n y: y\n },\n to: {\n upperWidth: upperWidth,\n lowerWidth: lowerWidth,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currUpperWidth = _ref.upperWidth,\n currLowerWidth = _ref.lowerWidth,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(currX, currY, currUpperWidth, currLowerWidth, currHeight),\n ref: pathRef\n })));\n });\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Sector\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle);\n // The coordinate of point which is tangent to the circle\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle);\n // The coordinate of point which is tangent to the radius line\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle);\n\n // When the angle of sector equals to 360, star point and end point coincide\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n return path;\n};\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n return path;\n};\nvar defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};\nexport var Sector = function Sector(sectorProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), sectorProps);\n var cx = props.cx,\n cy = props.cy,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n cornerRadius = props.cornerRadius,\n forceCornerRadius = props.forceCornerRadius,\n cornerIsExternal = props.cornerIsExternal,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n className = props.className;\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n var layerClass = clsx('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: path,\n role: \"img\"\n }));\n};","var _excluded = [\"option\", \"shapeType\", \"propTransformer\", \"activeClassName\", \"isActive\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { isValidElement, cloneElement } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport isPlainObject from 'lodash/isPlainObject';\nimport isBoolean from 'lodash/isBoolean';\nimport isEqual from 'lodash/isEqual';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Trapezoid } from '../shape/Trapezoid';\nimport { Sector } from '../shape/Sector';\nimport { Layer } from '../container/Layer';\nimport { Symbols } from '../shape/Symbols';\n\n/**\n * This is an abstraction for rendering a user defined prop for a customized shape in several forms.\n *\n * is the root and will handle taking in:\n * - an object of svg properties\n * - a boolean\n * - a render prop(inline function that returns jsx)\n * - a react element\n *\n * is a subcomponent of and used to match a component\n * to the value of props.shapeType that is passed to the root.\n *\n */\n\nfunction defaultPropTransformer(option, props) {\n return _objectSpread(_objectSpread({}, props), option);\n}\nfunction isSymbolsProps(shapeType, _elementProps) {\n return shapeType === 'symbols';\n}\nfunction ShapeSelector(_ref) {\n var shapeType = _ref.shapeType,\n elementProps = _ref.elementProps;\n switch (shapeType) {\n case 'rectangle':\n return /*#__PURE__*/React.createElement(Rectangle, elementProps);\n case 'trapezoid':\n return /*#__PURE__*/React.createElement(Trapezoid, elementProps);\n case 'sector':\n return /*#__PURE__*/React.createElement(Sector, elementProps);\n case 'symbols':\n if (isSymbolsProps(shapeType, elementProps)) {\n return /*#__PURE__*/React.createElement(Symbols, elementProps);\n }\n break;\n default:\n return null;\n }\n}\nexport function getPropsFromShapeOption(option) {\n if ( /*#__PURE__*/isValidElement(option)) {\n return option.props;\n }\n return option;\n}\nexport function Shape(_ref2) {\n var option = _ref2.option,\n shapeType = _ref2.shapeType,\n _ref2$propTransformer = _ref2.propTransformer,\n propTransformer = _ref2$propTransformer === void 0 ? defaultPropTransformer : _ref2$propTransformer,\n _ref2$activeClassName = _ref2.activeClassName,\n activeClassName = _ref2$activeClassName === void 0 ? 'recharts-active-shape' : _ref2$activeClassName,\n isActive = _ref2.isActive,\n props = _objectWithoutProperties(_ref2, _excluded);\n var shape;\n if ( /*#__PURE__*/isValidElement(option)) {\n shape = /*#__PURE__*/cloneElement(option, _objectSpread(_objectSpread({}, props), getPropsFromShapeOption(option)));\n } else if (isFunction(option)) {\n shape = option(props);\n } else if (isPlainObject(option) && !isBoolean(option)) {\n var nextProps = propTransformer(option, props);\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: nextProps\n });\n } else {\n var elementProps = props;\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: elementProps\n });\n }\n if (isActive) {\n return /*#__PURE__*/React.createElement(Layer, {\n className: activeClassName\n }, shape);\n }\n return shape;\n}\n\n/**\n * This is an abstraction to handle identifying the active index from a tooltip mouse interaction\n */\n\nexport function isFunnel(graphicalItem, _item) {\n return _item != null && 'trapezoids' in graphicalItem.props;\n}\nexport function isPie(graphicalItem, _item) {\n return _item != null && 'sectors' in graphicalItem.props;\n}\nexport function isScatter(graphicalItem, _item) {\n return _item != null && 'points' in graphicalItem.props;\n}\nexport function compareFunnel(shapeData, activeTooltipItem) {\n var _activeTooltipItem$la, _activeTooltipItem$la2;\n var xMatches = shapeData.x === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la === void 0 ? void 0 : _activeTooltipItem$la.x) || shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la2 = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la2 === void 0 ? void 0 : _activeTooltipItem$la2.y) || shapeData.y === activeTooltipItem.y;\n return xMatches && yMatches;\n}\nexport function comparePie(shapeData, activeTooltipItem) {\n var startAngleMatches = shapeData.endAngle === activeTooltipItem.endAngle;\n var endAngleMatches = shapeData.startAngle === activeTooltipItem.startAngle;\n return startAngleMatches && endAngleMatches;\n}\nexport function compareScatter(shapeData, activeTooltipItem) {\n var xMatches = shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === activeTooltipItem.y;\n var zMatches = shapeData.z === activeTooltipItem.z;\n return xMatches && yMatches && zMatches;\n}\nfunction getComparisonFn(graphicalItem, activeItem) {\n var comparison;\n if (isFunnel(graphicalItem, activeItem)) {\n comparison = compareFunnel;\n } else if (isPie(graphicalItem, activeItem)) {\n comparison = comparePie;\n } else if (isScatter(graphicalItem, activeItem)) {\n comparison = compareScatter;\n }\n return comparison;\n}\nfunction getShapeDataKey(graphicalItem, activeItem) {\n var shapeKey;\n if (isFunnel(graphicalItem, activeItem)) {\n shapeKey = 'trapezoids';\n } else if (isPie(graphicalItem, activeItem)) {\n shapeKey = 'sectors';\n } else if (isScatter(graphicalItem, activeItem)) {\n shapeKey = 'points';\n }\n return shapeKey;\n}\nfunction getActiveShapeTooltipPayload(graphicalItem, activeItem) {\n if (isFunnel(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa;\n return (_activeItem$tooltipPa = activeItem.tooltipPayload) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa[0]) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa.payload) === null || _activeItem$tooltipPa === void 0 ? void 0 : _activeItem$tooltipPa.payload;\n }\n if (isPie(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa2;\n return (_activeItem$tooltipPa2 = activeItem.tooltipPayload) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2[0]) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2.payload) === null || _activeItem$tooltipPa2 === void 0 ? void 0 : _activeItem$tooltipPa2.payload;\n }\n if (isScatter(graphicalItem, activeItem)) {\n return activeItem.payload;\n }\n return {};\n}\n/**\n *\n * @param {GetActiveShapeIndexForTooltip} arg an object of incoming attributes from Tooltip\n * @returns {number}\n *\n * To handle possible duplicates in the data set,\n * match both the data value of the active item to a data value on a graph item,\n * and match the mouse coordinates of the active item to the coordinates of in a particular components shape data.\n * This assumes equal lengths of shape objects to data items.\n */\nexport function getActiveShapeIndexForTooltip(_ref3) {\n var activeTooltipItem = _ref3.activeTooltipItem,\n graphicalItem = _ref3.graphicalItem,\n itemData = _ref3.itemData;\n var shapeKey = getShapeDataKey(graphicalItem, activeTooltipItem);\n var tooltipPayload = getActiveShapeTooltipPayload(graphicalItem, activeTooltipItem);\n var activeItemMatches = itemData.filter(function (datum, dataIndex) {\n var valuesMatch = isEqual(tooltipPayload, datum);\n var mouseCoordinateMatches = graphicalItem.props[shapeKey].filter(function (shapeData) {\n var comparison = getComparisonFn(graphicalItem, activeTooltipItem);\n return comparison(shapeData, activeTooltipItem);\n });\n\n // get the last index in case of multiple matches\n var indexOfMouseCoordinates = graphicalItem.props[shapeKey].indexOf(mouseCoordinateMatches[mouseCoordinateMatches.length - 1]);\n var coordinatesMatch = dataIndex === indexOfMouseCoordinates;\n return valuesMatch && coordinatesMatch;\n });\n\n // get the last index in case of multiple matches\n var activeIndex = itemData.indexOf(activeItemMatches[activeItemMatches.length - 1]);\n return activeIndex;\n}","var _excluded = [\"x\", \"y\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nimport React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Shape } from './ActiveShapeUtils';\n\n// Rectangle props is expecting x, y, height, width as numbers, name as a string, and radius as a custom type\n// When props are being spread in from a user defined component in Bar,\n// the prop types of an SVGElement have these typed as something else.\n// This function will return the passed in props\n// along with x, y, height as numbers, name as a string, and radius as number | [number, number, number, number]\nfunction typeguardBarRectangleProps(_ref, props) {\n var xProp = _ref.x,\n yProp = _ref.y,\n option = _objectWithoutProperties(_ref, _excluded);\n var xValue = \"\".concat(xProp);\n var x = parseInt(xValue, 10);\n var yValue = \"\".concat(yProp);\n var y = parseInt(yValue, 10);\n var heightValue = \"\".concat(props.height || option.height);\n var height = parseInt(heightValue, 10);\n var widthValue = \"\".concat(props.width || option.width);\n var width = parseInt(widthValue, 10);\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), option), x ? {\n x: x\n } : {}), y ? {\n y: y\n } : {}), {}, {\n height: height,\n width: width,\n name: props.name,\n radius: props.radius\n });\n}\nexport function BarRectangle(props) {\n return /*#__PURE__*/React.createElement(Shape, _extends({\n shapeType: \"rectangle\",\n propTransformer: typeguardBarRectangleProps,\n activeClassName: \"recharts-active-bar\"\n }, props));\n}\n/**\n * Safely gets minPointSize from from the minPointSize prop if it is a function\n * @param minPointSize minPointSize as passed to the Bar component\n * @param defaultValue default minPointSize\n * @returns minPointSize\n */\nexport var minPointSizeCallback = function minPointSizeCallback(minPointSize) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return function (value, index) {\n if (typeof minPointSize === 'number') return minPointSize;\n var isValueNumber = typeof value === 'number';\n if (isValueNumber) {\n return minPointSize(value, index);\n }\n !isValueNumber ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"minPointSize callback function received a value with type of \".concat(_typeof(value), \". Currently only numbers are supported.\")) : invariant(false) : void 0;\n return defaultValue;\n };\n};","var _excluded = [\"value\", \"background\"];\nvar _Bar;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { PureComponent } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport isEqual from 'lodash/isEqual';\nimport isNil from 'lodash/isNil';\nimport { Layer } from '../container/Layer';\nimport { ErrorBar } from './ErrorBar';\nimport { Cell } from '../component/Cell';\nimport { LabelList } from '../component/LabelList';\nimport { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { filterProps, findAllByType } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar, getTooltipItem } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { BarRectangle, minPointSizeCallback } from '../util/BarUtils';\nexport var Bar = /*#__PURE__*/function (_PureComponent) {\n function Bar() {\n var _this;\n _classCallCheck(this, Bar);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Bar, [].concat(args));\n _defineProperty(_this, \"state\", {\n isAnimationFinished: false\n });\n _defineProperty(_this, \"id\", uniqueId('recharts-bar-'));\n _defineProperty(_this, \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n });\n _defineProperty(_this, \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (onAnimationStart) {\n onAnimationStart();\n }\n });\n return _this;\n }\n _inherits(Bar, _PureComponent);\n return _createClass(Bar, [{\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n var _this$props = this.props,\n shape = _this$props.shape,\n dataKey = _this$props.dataKey,\n activeIndex = _this$props.activeIndex,\n activeBar = _this$props.activeBar;\n var baseProps = filterProps(this.props, false);\n return data && data.map(function (entry, i) {\n var isActive = i === activeIndex;\n var option = isActive ? activeBar : shape;\n var props = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {\n isActive: isActive,\n option: option,\n index: i,\n dataKey: dataKey,\n onAnimationStart: _this2.handleAnimationStart,\n onAnimationEnd: _this2.handleAnimationEnd\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n key: \"rectangle-\".concat(entry === null || entry === void 0 ? void 0 : entry.x, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.y, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.value)\n }), /*#__PURE__*/React.createElement(BarRectangle, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n var _this$props2 = this.props,\n data = _this$props2.data,\n layout = _this$props2.layout,\n isAnimationActive = _this$props2.isAnimationActive,\n animationBegin = _this$props2.animationBegin,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n animationId = _this$props2.animationId;\n var prevData = this.state.prevData;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n if (prev) {\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n var interpolatorWidth = interpolateNumber(prev.width, entry.width);\n var interpolatorHeight = interpolateNumber(prev.height, entry.height);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n var h = _interpolatorHeight(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w\n });\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props3 = this.props,\n data = _this$props3.data,\n isAnimationActive = _this$props3.isAnimationActive;\n var prevData = this.state.prevData;\n if (isAnimationActive && data && data.length && (!prevData || !isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n var _this$props4 = this.props,\n data = _this$props4.data,\n dataKey = _this$props4.dataKey,\n activeIndex = _this$props4.activeIndex;\n var backgroundProps = filterProps(this.props.background, false);\n return data.map(function (entry, i) {\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, _excluded);\n if (!background) {\n return null;\n }\n var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {\n fill: '#eee'\n }, background), backgroundProps), adaptEventsOfChild(_this4.props, entry, i)), {}, {\n onAnimationStart: _this4.handleAnimationStart,\n onAnimationEnd: _this4.handleAnimationEnd,\n dataKey: dataKey,\n index: i,\n className: 'recharts-bar-background-rectangle'\n });\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({\n key: \"background-bar-\".concat(i),\n option: _this4.props.background,\n isActive: i === activeIndex\n }, props));\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar(needClip, clipPathId) {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props5 = this.props,\n data = _this$props5.data,\n xAxis = _this$props5.xAxis,\n yAxis = _this$props5.yAxis,\n layout = _this$props5.layout,\n children = _this$props5.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n var dataPointFormatter = function dataPointFormatter(dataPoint, dataKey) {\n /**\n * if the value coming from `getComposedData` is an array then this is a stacked bar chart.\n * arr[1] represents end value of the bar since the data is in the form of [startValue, endValue].\n * */\n var value = Array.isArray(dataPoint.value) ? dataPoint.value[1] : dataPoint.value;\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n };\n var errorBarProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, errorBarProps, errorBarItems.map(function (item) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"error-bar-\".concat(clipPathId, \"-\").concat(item.props.dataKey),\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n data = _this$props6.data,\n className = _this$props6.className,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n left = _this$props6.left,\n top = _this$props6.top,\n width = _this$props6.width,\n height = _this$props6.height,\n isAnimationActive = _this$props6.isAnimationActive,\n background = _this$props6.background,\n id = _this$props6.id;\n if (hide || !data || !data.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = clsx('recharts-bar', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n }))) : null, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curData: nextProps.data,\n prevData: prevState.curData\n };\n }\n if (nextProps.data !== prevState.curData) {\n return {\n curData: nextProps.data\n };\n }\n return null;\n }\n }]);\n}(PureComponent);\n_Bar = Bar;\n_defineProperty(Bar, \"displayName\", 'Bar');\n_defineProperty(Bar, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n data: [],\n layout: 'vertical',\n activeBar: false,\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease'\n});\n/**\n * Compose the data of each group\n * @param {Object} props Props for the component\n * @param {Object} item An instance of Bar\n * @param {Array} barPosition The offset and size of each bar\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {Array} stackedData The stacked data of a bar item\n * @return{Array} Composed data\n */\n_defineProperty(Bar, \"getComposedData\", function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n if (!pos) {\n return null;\n }\n var layout = props.layout;\n var itemDefaultProps = item.type.defaultProps;\n var itemProps = itemDefaultProps !== undefined ? _objectSpread(_objectSpread({}, itemDefaultProps), item.props) : item.props;\n var dataKey = itemProps.dataKey,\n children = itemProps.children,\n minPointSizeProp = itemProps.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n }\n }\n var minPointSize = minPointSizeCallback(minPointSizeProp, _Bar.defaultProps.minPointSize)(value[1], index);\n if (layout === 'horizontal') {\n var _ref4;\n var _ref3 = [yAxis.scale(value[0]), yAxis.scale(value[1])],\n baseValueScale = _ref3[0],\n currentValueScale = _ref3[1];\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = (_ref4 = currentValueScale !== null && currentValueScale !== void 0 ? currentValueScale : baseValueScale) !== null && _ref4 !== void 0 ? _ref4 : undefined;\n width = pos.size;\n var computedHeight = baseValueScale - currentValueScale;\n height = Number.isNaN(computedHeight) ? 0 : computedHeight;\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n var _ref5 = [xAxis.scale(value[0]), xAxis.scale(value[1])],\n _baseValueScale = _ref5[0],\n _currentValueScale = _ref5[1];\n x = _baseValueScale;\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = _currentValueScale - _baseValueScale;\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n width += _delta;\n }\n }\n return _objectSpread(_objectSpread(_objectSpread({}, entry), {}, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props), {}, {\n tooltipPayload: [getTooltipItem(item, entry)],\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n }\n });\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport mapValues from 'lodash/mapValues';\nimport every from 'lodash/every';\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { getPercentValue } from './DataUtils';\nimport { Bar } from '../cartesian/Bar';\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, Bar);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort();\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n if (Number.isFinite(smallestDistanceBetweenValues)) {\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n }\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n this.scale = scale;\n }\n return _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n if (value === undefined) {\n return undefined;\n }\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n return this.scale(value) + _offset;\n }\n default:\n {\n return this.scale(value);\n }\n }\n }\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + _offset2;\n }\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n}();\n_defineProperty(ScaleHelper, \"EPS\", 1e-4);\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n return mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};\n\n/** Normalizes the angle so that 0 <= angle < 180.\n * @param {number} angle Angle in degrees.\n * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */\nexport function normalizeAngle(angle) {\n return (angle % 180 + 180) % 180;\n}\n\n/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n * @param {Object} size Width and height of the text in a horizontal position.\n * @param {number} angle Angle in degrees in which the text is displayed.\n * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n */\nexport var getAngledRectangleWidth = function getAngledRectangleWidth(_ref6) {\n var width = _ref6.width,\n height = _ref6.height;\n var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Ensure angle is >= 0 && < 180\n var normalizedAngle = normalizeAngle(angle);\n var angleRadians = normalizedAngle * Math.PI / 180;\n\n /* Depending on the height and width of the rectangle, we may need to use different formulas to calculate the angled\n * width. This threshold defines when each formula should kick in. */\n var angleThreshold = Math.atan(height / width);\n var angledWidth = angleRadians > angleThreshold && angleRadians < Math.PI - angleThreshold ? height / Math.sin(angleRadians) : width / Math.cos(angleRadians);\n return Math.abs(angledWidth);\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Reference Dot\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Label } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { createLabeledScales } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getCoordinate = function getCoordinate(props) {\n var x = props.x,\n y = props.y,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n return result;\n};\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var ReferenceDot = /*#__PURE__*/function (_React$Component) {\n function ReferenceDot() {\n _classCallCheck(this, ReferenceDot);\n return _callSuper(this, ReferenceDot, arguments);\n }\n _inherits(ReferenceDot, _React$Component);\n return _createClass(ReferenceDot, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n r = _this$props.r,\n alwaysShow = _this$props.alwaysShow,\n clipPathId = _this$props.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n if (!isX || !isY) {\n return null;\n }\n var coordinate = getCoordinate(this.props);\n if (!coordinate) {\n return null;\n }\n var cx = coordinate.x,\n cy = coordinate.y;\n var _this$props2 = this.props,\n shape = _this$props2.shape,\n className = _this$props2.className;\n var clipPath = ifOverflowMatches(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var dotProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(this.props, true)), {}, {\n cx: cx,\n cy: cy\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-dot', className)\n }, ReferenceDot.renderDot(shape, dotProps), Label.renderCallByParent(this.props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n }\n }]);\n}(React.Component);\n_defineProperty(ReferenceDot, \"displayName\", 'ReferenceDot');\n_defineProperty(ReferenceDot, \"defaultProps\", {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n});\n_defineProperty(ReferenceDot, \"renderDot\", function (option, props) {\n var dot;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dot = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n return dot;\n});","import memoize from 'lodash/memoize';\n/**\n * This is memoized because the viewBox is unlikely to change often\n * - but because it is computed from offset, any change to it would re-render all children.\n *\n * And because we have many readers of the viewBox, and update it only rarely,\n * then let's optimize with memoization.\n */\nexport var calculateViewBox = memoize(function (offset) {\n return {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n };\n}, function (offset) {\n return ['l', offset.left, 't', offset.top, 'w', offset.width, 'h', offset.height].join('');\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport React, { createContext, useContext } from 'react';\nimport invariant from 'tiny-invariant';\nimport find from 'lodash/find';\nimport every from 'lodash/every';\nimport { calculateViewBox } from '../util/calculateViewBox';\nimport { getAnyElementOfObject } from '../util/DataUtils';\nexport var XAxisContext = /*#__PURE__*/createContext(undefined);\nexport var YAxisContext = /*#__PURE__*/createContext(undefined);\nexport var ViewBoxContext = /*#__PURE__*/createContext(undefined);\nexport var OffsetContext = /*#__PURE__*/createContext({});\nexport var ClipPathIdContext = /*#__PURE__*/createContext(undefined);\nexport var ChartHeightContext = /*#__PURE__*/createContext(0);\nexport var ChartWidthContext = /*#__PURE__*/createContext(0);\n\n/**\n * Will add all the properties required to render all individual Recharts components into a React Context.\n *\n * If you want to read these properties, see the collection of hooks exported from this file.\n *\n * @param {object} props CategoricalChartState, plus children\n * @returns {ReactElement} React Context Provider\n */\nexport var ChartLayoutContextProvider = function ChartLayoutContextProvider(props) {\n var _props$state = props.state,\n xAxisMap = _props$state.xAxisMap,\n yAxisMap = _props$state.yAxisMap,\n offset = _props$state.offset,\n clipPathId = props.clipPathId,\n children = props.children,\n width = props.width,\n height = props.height;\n\n /**\n * Perhaps we should compute this property when reading? Let's see what is more often used\n */\n var viewBox = calculateViewBox(offset);\n\n /*\n * This pretends to be a single context but actually is split into multiple smaller ones.\n * Why?\n * Because one React Context only allows to set one value.\n * But we need to set multiple values.\n * If we do that with one context, then we force re-render on components that might not even be interested\n * in the part of the state that has changed.\n *\n * By splitting into smaller contexts, we allow each components to be optimized and only re-render when its dependencies change.\n *\n * To actually achieve the optimal re-render, it is necessary to use React.memo().\n * See the test file for details.\n */\n return /*#__PURE__*/React.createElement(XAxisContext.Provider, {\n value: xAxisMap\n }, /*#__PURE__*/React.createElement(YAxisContext.Provider, {\n value: yAxisMap\n }, /*#__PURE__*/React.createElement(OffsetContext.Provider, {\n value: offset\n }, /*#__PURE__*/React.createElement(ViewBoxContext.Provider, {\n value: viewBox\n }, /*#__PURE__*/React.createElement(ClipPathIdContext.Provider, {\n value: clipPathId\n }, /*#__PURE__*/React.createElement(ChartHeightContext.Provider, {\n value: height\n }, /*#__PURE__*/React.createElement(ChartWidthContext.Provider, {\n value: width\n }, children)))))));\n};\nexport var useClipPathId = function useClipPathId() {\n return useContext(ClipPathIdContext);\n};\nfunction getKeysForDebug(object) {\n var keys = Object.keys(object);\n if (keys.length === 0) {\n return 'There are no available ids.';\n }\n return \"Available ids are: \".concat(keys, \".\");\n}\n\n/**\n * This either finds and returns Axis by the specified ID, or throws an exception if an axis with this ID does not exist.\n *\n * @param xAxisId identifier of the axis - it's either autogenerated ('0'), or passed via `id` prop as \n * @returns axis configuration object\n * @throws Error if no axis with this ID exists\n */\nexport var useXAxisOrThrow = function useXAxisOrThrow(xAxisId) {\n var xAxisMap = useContext(XAxisContext);\n !(xAxisMap != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find Recharts context; are you sure this is rendered inside a Recharts wrapper component?') : invariant(false) : void 0;\n var xAxis = xAxisMap[xAxisId];\n !(xAxis != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find xAxis by id \\\"\".concat(xAxisId, \"\\\" [\").concat(_typeof(xAxisId), \"]. \").concat(getKeysForDebug(xAxisMap))) : invariant(false) : void 0;\n return xAxis;\n};\n\n/**\n * This will find an arbitrary first XAxis. If there's exactly one it always returns that one\n * - but if there are multiple then it can return any of those.\n *\n * If you want specific XAxis out of multiple then prefer using useXAxisOrThrow\n *\n * @returns X axisOptions, or undefined - if there are no X axes\n */\nexport var useArbitraryXAxis = function useArbitraryXAxis() {\n var xAxisMap = useContext(XAxisContext);\n return getAnyElementOfObject(xAxisMap);\n};\n\n/**\n * This will find an arbitrary first YAxis. If there's exactly one it always returns that one\n * - but if there are multiple then it can return any of those.\n *\n * If you want specific YAxis out of multiple then prefer using useXAxisOrThrow\n *\n * @returns Y axisOptions, or undefined - if there are no Y axes\n */\nexport var useArbitraryYAxis = function useArbitraryYAxis() {\n var yAxisMap = useContext(YAxisContext);\n return getAnyElementOfObject(yAxisMap);\n};\n\n/**\n * This hooks will:\n * 1st attempt to find an YAxis that has all elements in its domain finite\n * If no such axis exists, it will return an arbitrary YAxis\n * if there are no Y axes then it returns undefined\n *\n * @returns Either Y axisOptions, or undefined if there are no Y axes\n */\nexport var useYAxisWithFiniteDomainOrRandom = function useYAxisWithFiniteDomainOrRandom() {\n var yAxisMap = useContext(YAxisContext);\n var yAxisWithFiniteDomain = find(yAxisMap, function (axis) {\n return every(axis.domain, Number.isFinite);\n });\n return yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n};\n\n/**\n * This either finds and returns Axis by the specified ID, or throws an exception if an axis with this ID does not exist.\n *\n * @param yAxisId identifier of the axis - it's either autogenerated ('0'), or passed via `id` prop as \n * @returns axis configuration object\n * @throws Error if no axis with this ID exists\n */\nexport var useYAxisOrThrow = function useYAxisOrThrow(yAxisId) {\n var yAxisMap = useContext(YAxisContext);\n !(yAxisMap != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find Recharts context; are you sure this is rendered inside a Recharts wrapper component?') : invariant(false) : void 0;\n var yAxis = yAxisMap[yAxisId];\n !(yAxis != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find yAxis by id \\\"\".concat(yAxisId, \"\\\" [\").concat(_typeof(yAxisId), \"]. \").concat(getKeysForDebug(yAxisMap))) : invariant(false) : void 0;\n return yAxis;\n};\nexport var useViewBox = function useViewBox() {\n var viewBox = useContext(ViewBoxContext);\n return viewBox;\n};\nexport var useOffset = function useOffset() {\n return useContext(OffsetContext);\n};\nexport var useChartWidth = function useChartWidth() {\n return useContext(ChartWidthContext);\n};\nexport var useChartHeight = function useChartHeight() {\n return useContext(ChartHeightContext);\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport some from 'lodash/some';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { createLabeledScales, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nimport { useClipPathId, useViewBox, useXAxisOrThrow, useYAxisOrThrow } from '../context/chartLayoutContext';\n\n/**\n * This excludes `viewBox` prop from svg for two reasons:\n * 1. The components wants viewBox of object type, and svg wants string\n * - so there's a conflict, and the component will throw if it gets string\n * 2. Internally the component calls `filterProps` which filters the viewBox away anyway\n */\n\nvar renderLine = function renderLine(option, props) {\n var line;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n line = option(props);\n } else {\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n return line;\n};\n// TODO: ScaleHelper\nexport var getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, viewBox, position, xAxisOrientation, yAxisOrientation, props) {\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n if (isFixedY) {\n var yCoord = props.y;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return yAxisOrientation === 'left' ? points.reverse() : points;\n }\n if (isFixedX) {\n var xCoord = props.x;\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return xAxisOrientation === 'top' ? _points.reverse() : _points;\n }\n if (isSegment) {\n var segment = props.segment;\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n if (ifOverflowMatches(props, 'discard') && some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n return _points2;\n }\n return null;\n};\nfunction ReferenceLineImpl(props) {\n var fixedX = props.x,\n fixedY = props.y,\n segment = props.segment,\n xAxisId = props.xAxisId,\n yAxisId = props.yAxisId,\n shape = props.shape,\n className = props.className,\n alwaysShow = props.alwaysShow;\n var clipPathId = useClipPathId();\n var xAxis = useXAxisOrThrow(xAxisId);\n var yAxis = useYAxisOrThrow(yAxisId);\n var viewBox = useViewBox();\n if (!clipPathId || !viewBox) {\n return null;\n }\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = getEndPoints(scales, isX, isY, isSegment, viewBox, props.position, xAxis.orientation, yAxis.orientation, props);\n if (!endPoints) {\n return null;\n }\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var lineProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-line', className)\n }, renderLine(shape, lineProps), Label.renderCallByParent(props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n}\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var ReferenceLine = /*#__PURE__*/function (_React$Component) {\n function ReferenceLine() {\n _classCallCheck(this, ReferenceLine);\n return _callSuper(this, ReferenceLine, arguments);\n }\n _inherits(ReferenceLine, _React$Component);\n return _createClass(ReferenceLine, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ReferenceLineImpl, this.props);\n }\n }]);\n}(React.Component);\n_defineProperty(ReferenceLine, \"displayName\", 'ReferenceLine');\n_defineProperty(ReferenceLine, \"defaultProps\", {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n});","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { createLabeledScales, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { filterProps } from '../util/ReactUtils';\nvar getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {\n var xValue1 = props.x1,\n xValue2 = props.x2,\n yValue1 = props.y1,\n yValue2 = props.y2,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n if (!xAxis || !yAxis) return null;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scales.x.apply(xValue1, {\n position: 'start'\n }) : scales.x.rangeMin,\n y: hasY1 ? scales.y.apply(yValue1, {\n position: 'start'\n }) : scales.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scales.x.apply(xValue2, {\n position: 'end'\n }) : scales.x.rangeMax,\n y: hasY2 ? scales.y.apply(yValue2, {\n position: 'end'\n }) : scales.y.rangeMax\n };\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n return rectWithPoints(p1, p2);\n};\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var ReferenceArea = /*#__PURE__*/function (_React$Component) {\n function ReferenceArea() {\n _classCallCheck(this, ReferenceArea);\n return _callSuper(this, ReferenceArea, arguments);\n }\n _inherits(ReferenceArea, _React$Component);\n return _createClass(ReferenceArea, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x1 = _this$props.x1,\n x2 = _this$props.x2,\n y1 = _this$props.y1,\n y2 = _this$props.y2,\n className = _this$props.className,\n alwaysShow = _this$props.alwaysShow,\n clipPathId = _this$props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = this.props.shape;\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, this.props);\n if (!rect && !shape) {\n return null;\n }\n var clipPath = ifOverflowMatches(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-area', className)\n }, ReferenceArea.renderRect(shape, _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(this.props, true)), rect)), Label.renderCallByParent(this.props, rect));\n }\n }]);\n}(React.Component);\n_defineProperty(ReferenceArea, \"displayName\", 'ReferenceArea');\n_defineProperty(ReferenceArea, \"defaultProps\", {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n});\n_defineProperty(ReferenceArea, \"renderRect\", function (option, props) {\n var rect;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n return rect;\n});","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { ReferenceDot } from '../cartesian/ReferenceDot';\nimport { ReferenceLine } from '../cartesian/ReferenceLine';\nimport { ReferenceArea } from '../cartesian/ReferenceArea';\nimport { ifOverflowMatches } from './IfOverflowMatches';\nimport { findAllByType } from './ReactUtils';\nimport { isNumber } from './DataUtils';\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine);\n var dots = findAllByType(children, ReferenceDot);\n var elements = [].concat(_toConsumableArray(lines), _toConsumableArray(dots));\n var areas = findAllByType(children, ReferenceArea);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n return result;\n }, finalDomain);\n }\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n return result;\n }, finalDomain);\n }\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n return result;\n }, finalDomain);\n }\n return finalDomain;\n};","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nexport var AccessibilityManager = /*#__PURE__*/function () {\n function AccessibilityManager() {\n _classCallCheck(this, AccessibilityManager);\n _defineProperty(this, \"activeIndex\", 0);\n _defineProperty(this, \"coordinateList\", []);\n _defineProperty(this, \"layout\", 'horizontal');\n }\n return _createClass(AccessibilityManager, [{\n key: \"setDetails\",\n value: function setDetails(_ref) {\n var _ref2;\n var _ref$coordinateList = _ref.coordinateList,\n coordinateList = _ref$coordinateList === void 0 ? null : _ref$coordinateList,\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? null : _ref$container,\n _ref$layout = _ref.layout,\n layout = _ref$layout === void 0 ? null : _ref$layout,\n _ref$offset = _ref.offset,\n offset = _ref$offset === void 0 ? null : _ref$offset,\n _ref$mouseHandlerCall = _ref.mouseHandlerCallback,\n mouseHandlerCallback = _ref$mouseHandlerCall === void 0 ? null : _ref$mouseHandlerCall;\n this.coordinateList = (_ref2 = coordinateList !== null && coordinateList !== void 0 ? coordinateList : this.coordinateList) !== null && _ref2 !== void 0 ? _ref2 : [];\n this.container = container !== null && container !== void 0 ? container : this.container;\n this.layout = layout !== null && layout !== void 0 ? layout : this.layout;\n this.offset = offset !== null && offset !== void 0 ? offset : this.offset;\n this.mouseHandlerCallback = mouseHandlerCallback !== null && mouseHandlerCallback !== void 0 ? mouseHandlerCallback : this.mouseHandlerCallback;\n\n // Keep activeIndex in the bounds between 0 and the last coordinate index\n this.activeIndex = Math.min(Math.max(this.activeIndex, 0), this.coordinateList.length - 1);\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.spoofMouse();\n }\n }, {\n key: \"keyboardEvent\",\n value: function keyboardEvent(e) {\n // The AccessibilityManager relies on the Tooltip component. When tooltips suddenly stop existing,\n // it can cause errors. We use this function to check. We don't want arrow keys to be processed\n // if there are no tooltips, since that will cause unexpected behavior of users.\n if (this.coordinateList.length === 0) {\n return;\n }\n switch (e.key) {\n case 'ArrowRight':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.min(this.activeIndex + 1, this.coordinateList.length - 1);\n this.spoofMouse();\n break;\n }\n case 'ArrowLeft':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.max(this.activeIndex - 1, 0);\n this.spoofMouse();\n break;\n }\n default:\n {\n break;\n }\n }\n }\n }, {\n key: \"setIndex\",\n value: function setIndex(newIndex) {\n this.activeIndex = newIndex;\n }\n }, {\n key: \"spoofMouse\",\n value: function spoofMouse() {\n var _window, _window2;\n if (this.layout !== 'horizontal') {\n return;\n }\n\n // This can happen when the tooltips suddenly stop existing as children of the component\n // That update doesn't otherwise fire events, so we have to double check here.\n if (this.coordinateList.length === 0) {\n return;\n }\n var _this$container$getBo = this.container.getBoundingClientRect(),\n x = _this$container$getBo.x,\n y = _this$container$getBo.y,\n height = _this$container$getBo.height;\n var coordinate = this.coordinateList[this.activeIndex].coordinate;\n var scrollOffsetX = ((_window = window) === null || _window === void 0 ? void 0 : _window.scrollX) || 0;\n var scrollOffsetY = ((_window2 = window) === null || _window2 === void 0 ? void 0 : _window2.scrollY) || 0;\n var pageX = x + coordinate + scrollOffsetX;\n var pageY = y + this.offset.top + height / 2 + scrollOffsetY;\n this.mouseHandlerCallback({\n pageX: pageX,\n pageY: pageY\n });\n }\n }]);\n}();","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(area);\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveBumpX, curveBumpY, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'victory-vendor/d3-shape';\nimport upperFirst from 'lodash/upperFirst';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveBumpX: curveBumpX,\n curveBumpY: curveBumpY,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\nvar getX = function getX(p) {\n return p.x;\n};\nvar getY = function getY(p) {\n return p.y;\n};\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (isFunction(type)) {\n return type;\n }\n var name = \"curve\".concat(upperFirst(type));\n if ((name === 'curveMonotone' || name === 'curveBump') && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n return CURVE_FACTORIES[name] || curveLinear;\n};\n/**\n * Calculate the path of curve. Returns null if points is an empty array.\n * @return path or null\n */\nexport var getPath = function getPath(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'linear' : _ref$type,\n _ref$points = _ref.points,\n points = _ref$points === void 0 ? [] : _ref$points,\n baseLine = _ref.baseLine,\n layout = _ref.layout,\n _ref$connectNulls = _ref.connectNulls,\n connectNulls = _ref$connectNulls === void 0 ? false : _ref$connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n if (Array.isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n base: formatBaseLine[index]\n });\n });\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n};\nexport var Curve = function Curve(props) {\n var className = props.className,\n points = props.points,\n path = props.path,\n pathRef = props.pathRef;\n if ((!points || !points.length) && !path) {\n return null;\n }\n var realPath = points && points.length ? getPath(props) : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, false), adaptEventHandlers(props), {\n className: clsx('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"x\", \"y\", \"top\", \"left\", \"width\", \"height\", \"className\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Cross\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getPath = function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n};\nexport var Cross = function Cross(_ref) {\n var _ref$x = _ref.x,\n x = _ref$x === void 0 ? 0 : _ref$x,\n _ref$y = _ref.y,\n y = _ref$y === void 0 ? 0 : _ref$y,\n _ref$top = _ref.top,\n top = _ref$top === void 0 ? 0 : _ref$top,\n _ref$left = _ref.left,\n left = _ref$left === void 0 ? 0 : _ref$left,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? 0 : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? 0 : _ref$height,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread({\n x: x,\n y: y,\n top: top,\n left: left,\n width: width,\n height: height\n }, rest);\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: clsx('recharts-cross', className),\n d: getPath(x, y, width, height, top, left)\n }));\n};","import { polarToCartesian } from '../PolarUtils';\n/**\n * Only applicable for radial layouts\n * @param {Object} activeCoordinate ChartCoordinate\n * @returns {Object} RadialCursorPoints\n */\nexport function getRadialCursorPoints(activeCoordinate) {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(cx, cy, radius, startAngle);\n var endPoint = polarToCartesian(cx, cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: cx,\n cy: cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n}","import { polarToCartesian } from '../PolarUtils';\nimport { getRadialCursorPoints } from './getRadialCursorPoints';\nexport function getCursorPoints(layout, activeCoordinate, offset) {\n var x1, y1, x2, y2;\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (activeCoordinate.cx != null && activeCoordinate.cy != null) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n return getRadialCursorPoints(activeCoordinate);\n }\n }\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { cloneElement, createElement, isValidElement } from 'react';\nimport clsx from 'clsx';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { getCursorRectangle } from '../util/cursor/getCursorRectangle';\nimport { Rectangle } from '../shape/Rectangle';\nimport { getRadialCursorPoints } from '../util/cursor/getRadialCursorPoints';\nimport { Sector } from '../shape/Sector';\nimport { getCursorPoints } from '../util/cursor/getCursorPoints';\nimport { filterProps } from '../util/ReactUtils';\n/*\n * Cursor is the background, or a highlight,\n * that shows when user mouses over or activates\n * an area.\n *\n * It usually shows together with a tooltip\n * to emphasise which part of the chart does the tooltip refer to.\n */\nexport function Cursor(props) {\n var _element$props$cursor, _defaultProps;\n var element = props.element,\n tooltipEventType = props.tooltipEventType,\n isActive = props.isActive,\n activeCoordinate = props.activeCoordinate,\n activePayload = props.activePayload,\n offset = props.offset,\n activeTooltipIndex = props.activeTooltipIndex,\n tooltipAxisBandSize = props.tooltipAxisBandSize,\n layout = props.layout,\n chartName = props.chartName;\n var elementPropsCursor = (_element$props$cursor = element.props.cursor) !== null && _element$props$cursor !== void 0 ? _element$props$cursor : (_defaultProps = element.type.defaultProps) === null || _defaultProps === void 0 ? void 0 : _defaultProps.cursor;\n if (!element || !elementPropsCursor || !isActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n var restProps;\n var cursorComp = Curve;\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize);\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _getRadialCursorPoint = getRadialCursorPoints(activeCoordinate),\n cx = _getRadialCursorPoint.cx,\n cy = _getRadialCursorPoint.cy,\n radius = _getRadialCursorPoint.radius,\n startAngle = _getRadialCursorPoint.startAngle,\n endAngle = _getRadialCursorPoint.endAngle;\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: getCursorPoints(layout, activeCoordinate, offset)\n };\n cursorComp = Curve;\n }\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), filterProps(elementPropsCursor, false)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n className: clsx('recharts-tooltip-cursor', elementPropsCursor.className)\n });\n return /*#__PURE__*/isValidElement(elementPropsCursor) ? /*#__PURE__*/cloneElement(elementPropsCursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n}","export function getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize) {\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n}","var _excluded = [\"item\"],\n _excluded2 = [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\", \"title\", \"desc\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { Component, cloneElement, isValidElement, forwardRef } from 'react';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport get from 'lodash/get';\nimport sortBy from 'lodash/sortBy';\nimport throttle from 'lodash/throttle';\nimport clsx from 'clsx';\n// eslint-disable-next-line no-restricted-imports\n\nimport invariant from 'tiny-invariant';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Legend } from '../component/Legend';\nimport { Dot } from '../shape/Dot';\nimport { isInRectangle } from '../shape/Rectangle';\nimport { filterProps, findAllByType, findChildByType, getDisplayName, getReactEventByType, isChildrenEqual, parseChildIndex, renderByOrder, validateWidthHeight } from '../util/ReactUtils';\nimport { Brush } from '../cartesian/Brush';\nimport { getOffset } from '../util/DOMUtils';\nimport { findEntryInArray, getAnyElementOfObject, hasDuplicate, isNumber, uniqueId } from '../util/DataUtils';\nimport { appendOffsetOfLegend, calculateActiveTickIndex, combineEventHandlers, getBandSizeOfAxis, getBarPosition, getBarSizeList, getDomainOfDataByKey, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getLegendProps, getMainColorOfGraphicItem, getStackedDataOfItem, getStackGroupsByAxisId, getTicksOfAxis, getTooltipItem, isCategoricalAxis, parseDomainOfCategoryAxis, parseErrorBarsOfAxis, parseSpecifiedDomain } from '../util/ChartUtils';\nimport { detectReferenceElementsDomain } from '../util/DetectReferenceElementsDomain';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nimport { adaptEventHandlers } from '../util/types';\nimport { AccessibilityManager } from './AccessibilityManager';\nimport { isDomainSpecifiedByUser } from '../util/isDomainSpecifiedByUser';\nimport { getActiveShapeIndexForTooltip, isFunnel, isPie, isScatter } from '../util/ActiveShapeUtils';\nimport { Cursor } from '../component/Cursor';\nimport { ChartLayoutContextProvider } from '../context/chartLayoutContext';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar FULL_WIDTH_AND_HEIGHT = {\n width: '100%',\n height: '100%'\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n};\n\n/**\n * This function exists as a temporary workaround.\n *\n * Why? generateCategoricalChart does not render `{children}` directly;\n * instead it passes them through `renderByOrder` function which reads their handlers.\n *\n * So, this is a handler that does nothing.\n * Once we get rid of `renderByOrder` and switch to JSX only, we can get rid of this handler too.\n *\n * @param {JSX} element as is in JSX\n * @returns {JSX} the same element\n */\nfunction renderAsIs(element) {\n return element;\n}\nvar calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n return rangeObj.radius;\n};\nvar getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle: angle,\n radius: radius\n });\n }\n return originCoordinate;\n};\nvar getDisplayedData = function getDisplayedData(data, _ref) {\n var graphicalItems = _ref.graphicalItems,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n var itemsData = (graphicalItems !== null && graphicalItems !== void 0 ? graphicalItems : []).reduce(function (result, child) {\n var itemData = child.props.data;\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n return result;\n }, []);\n if (itemsData.length > 0) {\n return itemsData;\n }\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n return [];\n};\nfunction getDefaultDomainByAxisType(axisType) {\n return axisType === 'number' ? [0, 'auto'] : undefined;\n}\n\n/**\n * Get the content to be displayed in the tooltip\n * @param {Object} state Current state\n * @param {Array} chartData The data defined in chart\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\nvar getTooltipContent = function getTooltipContent(state, chartData, activeIndex, activeLabel) {\n var graphicalItems = state.graphicalItems,\n tooltipAxis = state.tooltipAxis;\n var displayedData = getDisplayedData(chartData, state);\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n }\n // get data by activeIndex when the axis don't allow duplicated category\n return graphicalItems.reduce(function (result, child) {\n var _child$props$data;\n /**\n * Fixes: https://github.com/recharts/recharts/issues/3669\n * Defaulting to chartData below to fix an edge case where the tooltip does not include data from all charts\n * when a separate dataset is passed to chart prop data and specified on Line/Area/etc prop data\n */\n var data = (_child$props$data = child.props.data) !== null && _child$props$data !== void 0 ? _child$props$data : chartData;\n if (data && state.dataStartIndex + state.dataEndIndex !== 0 &&\n // https://github.com/recharts/recharts/issues/4717\n // The data is sliced only when the active index is within the start/end index range.\n state.dataEndIndex - state.dataStartIndex >= activeIndex) {\n data = data.slice(state.dataStartIndex, state.dataEndIndex + 1);\n }\n var payload;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n var entries = data === undefined ? displayedData : data;\n payload = findEntryInArray(entries, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n if (!payload) {\n return result;\n }\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\n }, []);\n};\n\n/**\n * Returns tooltip data based on a mouse position (as a parameter or in state)\n * @param {Object} state current state\n * @param {Array} chartData the data defined in chart\n * @param {String} layout The layout type of chart\n * @param {Object} rangeObj { x, y } coordinates\n * @return {Object} Tooltip data data\n */\nvar getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {\n var rangeData = rangeObj || {\n x: state.chartX,\n y: state.chartY\n };\n var pos = calculateTooltipPos(rangeData, layout);\n var ticks = state.orderedTooltipTicks,\n axis = state.tooltipAxis,\n tooltipTicks = state.tooltipTicks;\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);\n var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);\n return {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n }\n return null;\n};\n\n/**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nexport var getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {\n var axes = _ref2.axes,\n graphicalItems = _ref2.graphicalItems,\n axisType = _ref2.axisType,\n axisIdKey = _ref2.axisIdKey,\n stackGroups = _ref2.stackGroups,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorical = isCategoricalAxis(layout, axisType);\n\n // Eliminate duplicated axes\n return axes.reduce(function (result, child) {\n var _childProps$domain2;\n var childProps = child.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, child.type.defaultProps), child.props) : child.props;\n var type = childProps.type,\n dataKey = childProps.dataKey,\n allowDataOverflow = childProps.allowDataOverflow,\n allowDuplicatedCategory = childProps.allowDuplicatedCategory,\n scale = childProps.scale,\n ticks = childProps.ticks,\n includeHidden = childProps.includeHidden;\n var axisId = childProps[axisIdKey];\n if (result[axisId]) {\n return result;\n }\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems.filter(function (item) {\n var _defaultProps;\n var itemAxisId = axisIdKey in item.props ? item.props[axisIdKey] : (_defaultProps = item.type.defaultProps) === null || _defaultProps === void 0 ? void 0 : _defaultProps[axisIdKey];\n return itemAxisId === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var domain, duplicateDomain, categoricalDomain;\n\n /*\n * This is a hack to short-circuit the domain creation here to enhance performance.\n * Usually, the data is used to determine the domain, but when the user specifies\n * a domain upfront (via props), there is no need to calculate the domain start and end,\n * which is very expensive for a larger amount of data.\n * The only thing that would prohibit short-circuiting is when the user doesn't allow data overflow,\n * because the axis is supposed to ignore the specified domain that way.\n */\n if (isDomainSpecifiedByUser(childProps.domain, allowDataOverflow, type)) {\n domain = parseSpecifiedDomain(childProps.domain, null, allowDataOverflow);\n /* The chart can be categorical and have the domain specified in numbers\n * we still need to calculate the categorical domain\n * TODO: refactor this more\n */\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n }\n\n // if the domain is defaulted we need this for `originalDomain` as well\n var defaultDomain = getDefaultDomainByAxisType(type);\n\n // we didn't create the domain from user's props above, so we need to calculate it\n if (!domain || domain.length === 0) {\n var _childProps$domain;\n var childDomain = (_childProps$domain = childProps.domain) !== null && _childProps$domain !== void 0 ? _childProps$domain : defaultDomain;\n if (dataKey) {\n // has dataKey in \n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is categorical axis\n var duplicate = hasDuplicate(domain);\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain;\n // When category axis has duplicated text, serial numbers are used to generate scale\n domain = range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n // the field type is category data and this axis is numerical axis\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !isNil(entry);\n });\n }\n } else if (type === 'number') {\n // the field type is numerical\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n var _defaultProps2, _defaultProps3;\n var itemAxisId = axisIdKey in item.props ? item.props[axisIdKey] : (_defaultProps2 = item.type.defaultProps) === null || _defaultProps2 === void 0 ? void 0 : _defaultProps2[axisIdKey];\n var itemHide = 'hide' in item.props ? item.props.hide : (_defaultProps3 = item.type.defaultProps) === null || _defaultProps3 === void 0 ? void 0 : _defaultProps3.hide;\n return itemAxisId === axisId && (includeHidden || !itemHide);\n }), dataKey, axisType, layout);\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorical) {\n // the axis is a categorical axis\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n var itemAxisId = axisIdKey in item.props ? item.props[axisIdKey] : item.type.defaultProps[axisIdKey];\n var itemHide = 'hide' in item.props ? item.props.hide : item.type.defaultProps.hide;\n return itemAxisId === axisId && (includeHidden || !itemHide);\n }), type, layout, true);\n }\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n if (childDomain) {\n domain = parseSpecifiedDomain(childDomain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && childDomain) {\n var axisDomain = childDomain;\n var isDomainValid = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n if (isDomainValid) {\n domain = axisDomain;\n }\n }\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, childProps), {}, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: (_childProps$domain2 = childProps.domain) !== null && _childProps$domain2 !== void 0 ? _childProps$domain2 : defaultDomain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }, {});\n};\n\n/**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMapByItems = function getAxisMapByItems(props, _ref3) {\n var graphicalItems = _ref3.graphicalItems,\n Axis = _ref3.Axis,\n axisType = _ref3.axisType,\n axisIdKey = _ref3.axisIdKey,\n stackGroups = _ref3.stackGroups,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorical = isCategoricalAxis(layout, axisType);\n var index = -1;\n\n // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n return graphicalItems.reduce(function (result, child) {\n var childProps = child.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, child.type.defaultProps), child.props) : child.props;\n var axisId = childProps[axisIdKey];\n var originalDomain = getDefaultDomainByAxisType('number');\n if (!result[axisId]) {\n index++;\n var domain;\n if (isCategorical) {\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(originalDomain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n var _defaultProps4, _defaultProps5;\n var itemAxisId = axisIdKey in item.props ? item.props[axisIdKey] : (_defaultProps4 = item.type.defaultProps) === null || _defaultProps4 === void 0 ? void 0 : _defaultProps4[axisIdKey];\n var itemHide = 'hide' in item.props ? item.props.hide : (_defaultProps5 = item.type.defaultProps) === null || _defaultProps5 === void 0 ? void 0 : _defaultProps5.hide;\n return itemAxisId === axisId && !itemHide;\n }), 'number', layout), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({\n axisType: axisType\n }, Axis.defaultProps), {}, {\n hide: true,\n orientation: get(ORIENT_MAP, \"\".concat(axisType, \".\").concat(index % 2), null),\n domain: domain,\n originalDomain: originalDomain,\n isCategorical: isCategorical,\n layout: layout\n // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n })));\n }\n return result;\n }, {});\n};\n\n/**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {React.ComponentType} [AxisComp] Axis Component\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMap = function getAxisMap(props, _ref4) {\n var _ref4$axisType = _ref4.axisType,\n axisType = _ref4$axisType === void 0 ? 'xAxis' : _ref4$axisType,\n AxisComp = _ref4.AxisComp,\n graphicalItems = _ref4.graphicalItems,\n stackGroups = _ref4.stackGroups,\n dataStartIndex = _ref4.dataStartIndex,\n dataEndIndex = _ref4.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\");\n // Get all the instance of Axis\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n if (axes && axes.length) {\n axisMap = getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n return axisMap;\n};\nvar tooltipTicksGenerator = function tooltipTicksGenerator(axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis, tooltipTicks)\n };\n};\n\n/**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\nexport var createDefaultState = function createDefaultState(props) {\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush);\n var startIndex = 0;\n var endIndex = 0;\n if (props.data && props.data.length !== 0) {\n endIndex = props.data.length - 1;\n }\n if (brushItem && brushItem.props) {\n if (brushItem.props.startIndex >= 0) {\n startIndex = brushItem.props.startIndex;\n }\n if (brushItem.props.endIndex >= 0) {\n endIndex = brushItem.props.endIndex;\n }\n }\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: Boolean(defaultShowTooltip)\n };\n};\nvar hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n};\nvar getAxisNameByLayout = function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n};\n\n/**\n * Calculate the offset of main part in the svg element\n * @param {Object} params.props Latest props\n * @param {Array} params.graphicalItems The instances of item\n * @param {Object} params.xAxisMap The configuration of x-axis\n * @param {Object} params.yAxisMap The configuration of y-axis\n * @param {Object} prevLegendBBox The boundary box of legend\n * @return {Object} The offset of main part in the svg element\n */\nvar calculateOffset = function calculateOffset(_ref5, prevLegendBBox) {\n var props = _ref5.props,\n graphicalItems = _ref5.graphicalItems,\n _ref5$xAxisMap = _ref5.xAxisMap,\n xAxisMap = _ref5$xAxisMap === void 0 ? {} : _ref5$xAxisMap,\n _ref5$yAxisMap = _ref5.yAxisMap,\n yAxisMap = _ref5$yAxisMap === void 0 ? {} : _ref5$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush);\n var legendItem = findChildByType(children, Legend);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, get(result, \"\".concat(orientation)) + entry.height));\n }\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n var brushBottom = offset.bottom;\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n if (legendItem && prevLegendBBox) {\n // @ts-expect-error margin is optional in props but required in appendOffsetOfLegend\n offset = appendOffsetOfLegend(offset, graphicalItems, props, prevLegendBBox);\n }\n var offsetWidth = width - offset.left - offset.right;\n var offsetHeight = height - offset.top - offset.bottom;\n return _objectSpread(_objectSpread({\n brushBottom: brushBottom\n }, offset), {}, {\n // never return negative values for height and width\n width: Math.max(offsetWidth, 0),\n height: Math.max(offsetHeight, 0)\n });\n};\n// Determine the size of the axis, used for calculation of relative bar sizes\nvar getCartesianAxisSize = function getCartesianAxisSize(axisObj, axisName) {\n if (axisName === 'xAxis') {\n return axisObj[axisName].width;\n }\n if (axisName === 'yAxis') {\n return axisObj[axisName].height;\n }\n // This is only supported for Bar charts (i.e. charts with cartesian axes), so we should never get here\n return undefined;\n};\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var chartName = _ref6.chartName,\n GraphicalChild = _ref6.GraphicalChild,\n _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,\n defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,\n _ref6$validateTooltip = _ref6.validateTooltipEventTypes,\n validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,\n axisComponents = _ref6.axisComponents,\n legendContent = _ref6.legendContent,\n formatAxisMap = _ref6.formatAxisMap,\n defaultProps = _ref6.defaultProps;\n var getFormatItems = function getFormatItems(props, currentState) {\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n var hasBar = hasGraphicalBarItem(graphicalItems);\n var formattedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: [item],\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var itemProps = item.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var dataKey = itemProps.dataKey,\n childMaxBarSize = itemProps.maxBarSize;\n // axisId of the numerical axis\n var numericAxisId = itemProps[\"\".concat(numericAxisName, \"Id\")];\n // axisId of the categorical axis\n var cateAxisId = itemProps[\"\".concat(cateAxisName, \"Id\")];\n var axisObjInitialValue = {};\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _item$type$displayNam, _item$type;\n // map of axisId to axis for a specific axis type\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n // axisId of axis we are currently computing\n var id = itemProps[\"\".concat(entry.axisType, \"Id\")];\n\n /**\n * tell the user in dev mode that their configuration is incorrect if we cannot find a match between\n * axisId on the chart and axisId on the axis. zAxis does not get passed in the map for ComposedChart,\n * leave it out of the check for now.\n */\n !(axisMap && axisMap[id] || entry.axisType === 'zAxis') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Specifying a(n) \".concat(entry.axisType, \"Id requires a corresponding \").concat(entry.axisType\n // @ts-expect-error we should stop reading data from ReactElements\n , \"Id on the targeted graphical component \").concat((_item$type$displayNam = item === null || item === void 0 || (_item$type = item.type) === null || _item$type === void 0 ? void 0 : _item$type.displayName) !== null && _item$type$displayNam !== void 0 ? _item$type$displayNam : '')) : invariant(false) : void 0;\n\n // the axis we are currently formatting\n var axis = axisMap[id];\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty(_defineProperty({}, entry.axisType, axis), \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)));\n }, axisObjInitialValue);\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var itemIsBar = getDisplayName(item.type).indexOf('Bar') >= 0;\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var barPosition = [];\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups,\n totalSize: getCartesianAxisSize(axisObj, cateAxisName)\n });\n if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis;\n // If it is bar, calculate the position of bar\n var maxBarSize = isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barBandSize = (_ref7 = (_getBandSizeOfAxis = getBandSizeOfAxis(cateAxis, cateTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref7 !== void 0 ? _ref7 : 0;\n barPosition = getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: barBandSize !== bandSize ? barBandSize : bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n if (barBandSize !== bandSize) {\n barPosition = barPosition.map(function (pos) {\n return _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n });\n });\n }\n }\n // @ts-expect-error we should stop reading data from ReactElements\n var composedFn = item && item.type && item.type.getComposedData;\n if (composedFn) {\n formattedItems.push({\n props: _objectSpread(_objectSpread({}, composedFn(_objectSpread(_objectSpread({}, axisObj), {}, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))), {}, _defineProperty(_defineProperty(_defineProperty({\n key: item.key || \"item-\".concat(index)\n }, numericAxisName, axisObj[numericAxisName]), cateAxisName, axisObj[cateAxisName]), \"animationId\", updateId)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formattedItems;\n };\n\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * dataStartIndex: The start index of the data series when a brush is applied\n * dataEndIndex: The end index of the data series when a brush is applied\n * updateId: The update id\n * @param {Object} prevState Prev state\n * @return {Object} state New state to set\n */\n var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref8, prevState) {\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {\n props: props,\n graphicalItems: graphicalItems\n }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = tooltipTicksGenerator(cateAxisMap);\n var formattedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread(_objectSpread({\n formattedGraphicalItems: formattedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj), axisObj);\n };\n var CategoricalChartWrapper = /*#__PURE__*/function (_Component) {\n function CategoricalChartWrapper(_props) {\n var _props$id, _props$throttleDelay;\n var _this;\n _classCallCheck(this, CategoricalChartWrapper);\n _this = _callSuper(this, CategoricalChartWrapper, [_props]);\n _defineProperty(_this, \"eventEmitterSymbol\", Symbol('rechartsEventEmitter'));\n _defineProperty(_this, \"accessibilityManager\", new AccessibilityManager());\n _defineProperty(_this, \"handleLegendBBoxUpdate\", function (box) {\n if (box) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n _this.setState(_objectSpread({\n legendBBox: box\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _objectSpread(_objectSpread({}, _this.state), {}, {\n legendBBox: box\n }))));\n }\n });\n _defineProperty(_this, \"handleReceiveSyncEvent\", function (cId, data, emitter) {\n if (_this.props.syncId === cId) {\n if (emitter === _this.eventEmitterSymbol && typeof _this.props.syncMethod !== 'function') {\n return;\n }\n _this.applySyncEvent(data);\n }\n });\n _defineProperty(_this, \"handleBrushChange\", function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex;\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }, _this.state));\n });\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n });\n /**\n * The handler of mouse entering chart\n * @param {Object} e Event object\n * @return {Null} null\n */\n _defineProperty(_this, \"handleMouseEnter\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState);\n _this.triggerSyncEvent(_nextState);\n var onMouseEnter = _this.props.onMouseEnter;\n if (isFunction(onMouseEnter)) {\n onMouseEnter(_nextState, e);\n }\n }\n });\n _defineProperty(_this, \"triggeredAfterMouseMove\", function (e) {\n var mouse = _this.getMouseInfo(e);\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseMove = _this.props.onMouseMove;\n if (isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n });\n /**\n * The handler of mouse entering a scatter\n * @param {Object} el The active scatter\n * @return {Object} no return\n */\n _defineProperty(_this, \"handleItemMouseEnter\", function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n });\n /**\n * The handler of mouse leaving a scatter\n * @return {Object} no return\n */\n _defineProperty(_this, \"handleItemMouseLeave\", function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n });\n /**\n * The handler of mouse moving in chart\n * @param {React.MouseEvent} e Event object\n * @return {void} no return\n */\n _defineProperty(_this, \"handleMouseMove\", function (e) {\n e.persist();\n _this.throttleTriggeredAfterMouseMove(e);\n });\n /**\n * The handler if mouse leaving chart\n * @param {Object} e Event object\n * @return {Null} no return\n */\n _defineProperty(_this, \"handleMouseLeave\", function (e) {\n _this.throttleTriggeredAfterMouseMove.cancel();\n var nextState = {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseLeave = _this.props.onMouseLeave;\n if (isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n });\n _defineProperty(_this, \"handleOuterEvent\", function (e) {\n var eventName = getReactEventByType(e);\n var event = get(_this.props, \"\".concat(eventName));\n if (eventName && isFunction(event)) {\n var _mouse;\n var mouse;\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n event((_mouse = mouse) !== null && _mouse !== void 0 ? _mouse : {}, e);\n }\n });\n _defineProperty(_this, \"handleClick\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState2 = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState2);\n _this.triggerSyncEvent(_nextState2);\n var onClick = _this.props.onClick;\n if (isFunction(onClick)) {\n onClick(_nextState2, e);\n }\n }\n });\n _defineProperty(_this, \"handleMouseDown\", function (e) {\n var onMouseDown = _this.props.onMouseDown;\n if (isFunction(onMouseDown)) {\n var _nextState3 = _this.getMouseInfo(e);\n onMouseDown(_nextState3, e);\n }\n });\n _defineProperty(_this, \"handleMouseUp\", function (e) {\n var onMouseUp = _this.props.onMouseUp;\n if (isFunction(onMouseUp)) {\n var _nextState4 = _this.getMouseInfo(e);\n onMouseUp(_nextState4, e);\n }\n });\n _defineProperty(_this, \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.throttleTriggeredAfterMouseMove(e.changedTouches[0]);\n }\n });\n _defineProperty(_this, \"handleTouchStart\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n });\n _defineProperty(_this, \"handleTouchEnd\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n });\n _defineProperty(_this, \"handleDoubleClick\", function (e) {\n var onDoubleClick = _this.props.onDoubleClick;\n if (isFunction(onDoubleClick)) {\n var _nextState5 = _this.getMouseInfo(e);\n onDoubleClick(_nextState5, e);\n }\n });\n _defineProperty(_this, \"handleContextMenu\", function (e) {\n var onContextMenu = _this.props.onContextMenu;\n if (isFunction(onContextMenu)) {\n var _nextState6 = _this.getMouseInfo(e);\n onContextMenu(_nextState6, e);\n }\n });\n _defineProperty(_this, \"triggerSyncEvent\", function (data) {\n if (_this.props.syncId !== undefined) {\n eventCenter.emit(SYNC_EVENT, _this.props.syncId, data, _this.eventEmitterSymbol);\n }\n });\n _defineProperty(_this, \"applySyncEvent\", function (data) {\n var _this$props = _this.props,\n layout = _this$props.layout,\n syncMethod = _this$props.syncMethod;\n var updateId = _this.state.updateId;\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n if (data.dataStartIndex !== undefined || data.dataEndIndex !== undefined) {\n _this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _this.state)));\n } else if (data.activeTooltipIndex !== undefined) {\n var chartX = data.chartX,\n chartY = data.chartY;\n var activeTooltipIndex = data.activeTooltipIndex;\n var _this$state2 = _this.state,\n offset = _this$state2.offset,\n tooltipTicks = _this$state2.tooltipTicks;\n if (!offset) {\n return;\n }\n if (typeof syncMethod === 'function') {\n // Call a callback function. If there is an application specific algorithm\n activeTooltipIndex = syncMethod(tooltipTicks, data);\n } else if (syncMethod === 'value') {\n // Set activeTooltipIndex to the index with the same value as data.activeLabel\n // For loop instead of findIndex because the latter is very slow in some browsers\n activeTooltipIndex = -1; // in case we cannot find the element\n for (var i = 0; i < tooltipTicks.length; i++) {\n if (tooltipTicks[i].value === data.activeLabel) {\n activeTooltipIndex = i;\n break;\n }\n }\n }\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n });\n // When a categorical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n var activePayload = getTooltipContent(_this.state, _this.props.data, activeTooltipIndex);\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n _this.setState(_objectSpread(_objectSpread({}, data), {}, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex\n }));\n } else {\n _this.setState(data);\n }\n });\n _defineProperty(_this, \"renderCursor\", function (element) {\n var _element$props$active;\n var _this$state3 = _this.state,\n isTooltipActive = _this$state3.isTooltipActive,\n activeCoordinate = _this$state3.activeCoordinate,\n activePayload = _this$state3.activePayload,\n offset = _this$state3.offset,\n activeTooltipIndex = _this$state3.activeTooltipIndex,\n tooltipAxisBandSize = _this$state3.tooltipAxisBandSize;\n var tooltipEventType = _this.getTooltipEventType();\n // The cursor is a part of the Tooltip, and it should be shown (by default) when the Tooltip is active.\n var isActive = (_element$props$active = element.props.active) !== null && _element$props$active !== void 0 ? _element$props$active : isTooltipActive;\n var layout = _this.props.layout;\n var key = element.key || '_recharts-cursor';\n return /*#__PURE__*/React.createElement(Cursor, {\n key: key,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex,\n chartName: chartName,\n element: element,\n isActive: isActive,\n layout: layout,\n offset: offset,\n tooltipAxisBandSize: tooltipAxisBandSize,\n tooltipEventType: tooltipEventType\n });\n });\n _defineProperty(_this, \"renderPolarAxis\", function (element, displayName, index) {\n var axisType = get(element, 'type.axisType');\n var axisMap = get(_this.state, \"\".concat(axisType, \"Map\"));\n var elementDefaultProps = element.type.defaultProps;\n var elementProps = elementDefaultProps !== undefined ? _objectSpread(_objectSpread({}, elementDefaultProps), element.props) : element.props;\n var axisOption = axisMap && axisMap[elementProps[\"\".concat(axisType, \"Id\")]];\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, axisOption), {}, {\n className: clsx(axisType, axisOption.className),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n });\n _defineProperty(_this, \"renderPolarGrid\", function (element) {\n var _element$props = element.props,\n radialLines = _element$props.radialLines,\n polarAngles = _element$props.polarAngles,\n polarRadius = _element$props.polarRadius;\n var _this$state4 = _this.state,\n radiusAxisMap = _this$state4.radiusAxisMap,\n angleAxisMap = _this$state4.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return /*#__PURE__*/cloneElement(element, {\n polarAngles: Array.isArray(polarAngles) ? polarAngles : getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: Array.isArray(polarRadius) ? polarRadius : getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid',\n radialLines: radialLines\n });\n });\n /**\n * Draw legend\n * @return {ReactElement} The instance of Legend\n */\n _defineProperty(_this, \"renderLegend\", function () {\n var formattedGraphicalItems = _this.state.formattedGraphicalItems;\n var _this$props2 = _this.props,\n children = _this$props2.children,\n width = _this$props2.width,\n height = _this$props2.height;\n var margin = _this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var props = getLegendProps({\n children: children,\n formattedGraphicalItems: formattedGraphicalItems,\n legendWidth: legendWidth,\n legendContent: legendContent\n });\n if (!props) {\n return null;\n }\n var item = props.item,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, otherProps), {}, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n onBBoxUpdate: _this.handleLegendBBoxUpdate\n }));\n });\n /**\n * Draw Tooltip\n * @return {ReactElement} The instance of Tooltip\n */\n _defineProperty(_this, \"renderTooltip\", function () {\n var _tooltipItem$props$ac;\n var _this$props3 = _this.props,\n children = _this$props3.children,\n accessibilityLayer = _this$props3.accessibilityLayer;\n var tooltipItem = findChildByType(children, Tooltip);\n if (!tooltipItem) {\n return null;\n }\n var _this$state5 = _this.state,\n isTooltipActive = _this$state5.isTooltipActive,\n activeCoordinate = _this$state5.activeCoordinate,\n activePayload = _this$state5.activePayload,\n activeLabel = _this$state5.activeLabel,\n offset = _this$state5.offset;\n\n // The user can set isActive on the Tooltip,\n // and we respect the user to enable customisation.\n // The Tooltip is active if the user has set isActive, or if the tooltip is active due to a mouse event.\n var isActive = (_tooltipItem$props$ac = tooltipItem.props.active) !== null && _tooltipItem$props$ac !== void 0 ? _tooltipItem$props$ac : isTooltipActive;\n return /*#__PURE__*/cloneElement(tooltipItem, {\n viewBox: _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }),\n active: isActive,\n label: activeLabel,\n payload: isActive ? activePayload : [],\n coordinate: activeCoordinate,\n accessibilityLayer: accessibilityLayer\n });\n });\n _defineProperty(_this, \"renderBrush\", function (element) {\n var _this$props4 = _this.props,\n margin = _this$props4.margin,\n data = _this$props4.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId;\n\n // TODO: update brush when children update\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n });\n _defineProperty(_this, \"renderReferenceElement\", function (element, displayName, index) {\n if (!element) {\n return null;\n }\n var _this2 = _this,\n clipPathId = _this2.clipPathId;\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var elementDefaultProps = element.type.defaultProps || {};\n var _element$props2 = element.props,\n _element$props2$xAxis = _element$props2.xAxisId,\n xAxisId = _element$props2$xAxis === void 0 ? elementDefaultProps.xAxisId : _element$props2$xAxis,\n _element$props2$yAxis = _element$props2.yAxisId,\n yAxisId = _element$props2$yAxis === void 0 ? elementDefaultProps.yAxisId : _element$props2$yAxis;\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n });\n _defineProperty(_this, \"renderActivePoints\", function (_ref10) {\n var item = _ref10.item,\n activePoint = _ref10.activePoint,\n basePoint = _ref10.basePoint,\n childIndex = _ref10.childIndex,\n isRange = _ref10.isRange;\n var result = [];\n // item is not a React Element so we don't need to resolve defaultProps.\n var key = item.props.key;\n var itemItemProps = item.item.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, item.item.type.defaultProps), item.item.props) : item.item.props;\n var activeDot = itemItemProps.activeDot,\n dataKey = itemItemProps.dataKey;\n var dotProps = _objectSpread(_objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value\n }, filterProps(activeDot, false)), adaptEventHandlers(activeDot));\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps, \"\".concat(key, \"-activePoint-\").concat(childIndex)));\n if (basePoint) {\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {\n cx: basePoint.x,\n cy: basePoint.y\n }), \"\".concat(key, \"-basePoint-\").concat(childIndex)));\n } else if (isRange) {\n result.push(null);\n }\n return result;\n });\n _defineProperty(_this, \"renderGraphicChild\", function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n if (!item) {\n return null;\n }\n var tooltipEventType = _this.getTooltipEventType();\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n // item is not a React Element so we don't need to resolve defaultProps\n var _item$props = item.props,\n points = _item$props.points,\n isRange = _item$props.isRange,\n baseLine = _item$props.baseLine;\n var itemItemProps = item.item.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, item.item.type.defaultProps), item.item.props) : item.item.props;\n var activeDot = itemItemProps.activeDot,\n hide = itemItemProps.hide,\n activeBar = itemItemProps.activeBar,\n activeShape = itemItemProps.activeShape;\n var hasActive = Boolean(!hide && isTooltipActive && tooltipItem && (activeDot || activeBar || activeShape));\n var itemEvents = {};\n if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {\n itemEvents = {\n onClick: combineEventHandlers(_this.handleItemMouseEnter, element.props.onClick)\n };\n } else if (tooltipEventType !== 'axis') {\n itemEvents = {\n onMouseLeave: combineEventHandlers(_this.handleItemMouseLeave, element.props.onMouseLeave),\n onMouseEnter: combineEventHandlers(_this.handleItemMouseEnter, element.props.onMouseEnter)\n };\n }\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n function findWithPayload(entry) {\n // TODO needs to verify dataKey is Function\n return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;\n }\n if (hasActive) {\n if (activeTooltipIndex >= 0) {\n var activePoint, basePoint;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // number transform to string\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points === null || points === void 0 ? void 0 : points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n if (activeShape || activeBar) {\n var activeIndex = element.props.activeIndex !== undefined ? element.props.activeIndex : activeTooltipIndex;\n return [/*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: activeIndex\n })), null, null];\n }\n if (!isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n } else {\n var _this$getItemByXY;\n /**\n * We hit this block if consumer uses a Tooltip without XAxis and/or YAxis.\n * In which case, this.state.activeTooltipIndex never gets set\n * because the mouse events that trigger that value getting set never get trigged without the axis components.\n *\n * An example usage case is a FunnelChart\n */\n var _ref11 = (_this$getItemByXY = _this.getItemByXY(_this.state.activeCoordinate)) !== null && _this$getItemByXY !== void 0 ? _this$getItemByXY : {\n graphicalItem: graphicalItem\n },\n _ref11$graphicalItem = _ref11.graphicalItem,\n _ref11$graphicalItem$ = _ref11$graphicalItem.item,\n xyItem = _ref11$graphicalItem$ === void 0 ? element : _ref11$graphicalItem$,\n childIndex = _ref11$graphicalItem.childIndex;\n var elementProps = _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: childIndex\n });\n return [/*#__PURE__*/cloneElement(xyItem, elementProps), null, null];\n }\n }\n if (isRange) {\n return [graphicalItem, null, null];\n }\n return [graphicalItem, null];\n });\n _defineProperty(_this, \"renderCustomized\", function (element, displayName, index) {\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({\n key: \"recharts-customized-\".concat(index)\n }, _this.props), _this.state));\n });\n _defineProperty(_this, \"renderMap\", {\n CartesianGrid: {\n handler: renderAsIs,\n once: true\n },\n ReferenceArea: {\n handler: _this.renderReferenceElement\n },\n ReferenceLine: {\n handler: renderAsIs\n },\n ReferenceDot: {\n handler: _this.renderReferenceElement\n },\n XAxis: {\n handler: renderAsIs\n },\n YAxis: {\n handler: renderAsIs\n },\n Brush: {\n handler: _this.renderBrush,\n once: true\n },\n Bar: {\n handler: _this.renderGraphicChild\n },\n Line: {\n handler: _this.renderGraphicChild\n },\n Area: {\n handler: _this.renderGraphicChild\n },\n Radar: {\n handler: _this.renderGraphicChild\n },\n RadialBar: {\n handler: _this.renderGraphicChild\n },\n Scatter: {\n handler: _this.renderGraphicChild\n },\n Pie: {\n handler: _this.renderGraphicChild\n },\n Funnel: {\n handler: _this.renderGraphicChild\n },\n Tooltip: {\n handler: _this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: _this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: _this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: _this.renderPolarAxis\n },\n Customized: {\n handler: _this.renderCustomized\n }\n });\n _this.clipPathId = \"\".concat((_props$id = _props.id) !== null && _props$id !== void 0 ? _props$id : uniqueId('recharts'), \"-clip\");\n\n // trigger 60fps\n _this.throttleTriggeredAfterMouseMove = throttle(_this.triggeredAfterMouseMove, (_props$throttleDelay = _props.throttleDelay) !== null && _props$throttleDelay !== void 0 ? _props$throttleDelay : 1000 / 60);\n _this.state = {};\n return _this;\n }\n _inherits(CategoricalChartWrapper, _Component);\n return _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props$margin$le, _this$props$margin$to;\n this.addListener();\n this.accessibilityManager.setDetails({\n container: this.container,\n offset: {\n left: (_this$props$margin$le = this.props.margin.left) !== null && _this$props$margin$le !== void 0 ? _this$props$margin$le : 0,\n top: (_this$props$margin$to = this.props.margin.top) !== null && _this$props$margin$to !== void 0 ? _this$props$margin$to : 0\n },\n coordinateList: this.state.tooltipTicks,\n mouseHandlerCallback: this.triggeredAfterMouseMove,\n layout: this.props.layout\n });\n this.displayDefaultTooltip();\n }\n }, {\n key: \"displayDefaultTooltip\",\n value: function displayDefaultTooltip() {\n var _this$props5 = this.props,\n children = _this$props5.children,\n data = _this$props5.data,\n height = _this$props5.height,\n layout = _this$props5.layout;\n var tooltipElem = findChildByType(children, Tooltip);\n // If the chart doesn't include a element, there's no tooltip to display\n if (!tooltipElem) {\n return;\n }\n var defaultIndex = tooltipElem.props.defaultIndex;\n\n // Protect against runtime errors\n if (typeof defaultIndex !== 'number' || defaultIndex < 0 || defaultIndex > this.state.tooltipTicks.length - 1) {\n return;\n }\n var activeLabel = this.state.tooltipTicks[defaultIndex] && this.state.tooltipTicks[defaultIndex].value;\n var activePayload = getTooltipContent(this.state, data, defaultIndex, activeLabel);\n var independentAxisCoord = this.state.tooltipTicks[defaultIndex].coordinate;\n var dependentAxisCoord = (this.state.offset.top + height) / 2;\n var isHorizontal = layout === 'horizontal';\n var activeCoordinate = isHorizontal ? {\n x: independentAxisCoord,\n y: dependentAxisCoord\n } : {\n y: independentAxisCoord,\n x: dependentAxisCoord\n };\n\n // Unlike other chart types, scatter plot's tooltip positions rely on both X and Y coordinates. Only the scatter plot\n // element knows its own Y coordinates.\n // If there's a scatter plot, we'll want to grab that element for an interrogation.\n var scatterPlotElement = this.state.formattedGraphicalItems.find(function (_ref12) {\n var item = _ref12.item;\n return item.type.name === 'Scatter';\n });\n if (scatterPlotElement) {\n activeCoordinate = _objectSpread(_objectSpread({}, activeCoordinate), scatterPlotElement.props.points[defaultIndex].tooltipPosition);\n activePayload = scatterPlotElement.props.points[defaultIndex].tooltipPayload;\n }\n var nextState = {\n activeTooltipIndex: defaultIndex,\n isTooltipActive: true,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n this.setState(nextState);\n this.renderCursor(tooltipElem);\n\n // Make sure that anyone who keyboard-only users who tab to the chart will start their\n // cursors at defaultIndex\n this.accessibilityManager.setIndex(defaultIndex);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps, prevState) {\n if (!this.props.accessibilityLayer) {\n return null;\n }\n if (this.state.tooltipTicks !== prevState.tooltipTicks) {\n this.accessibilityManager.setDetails({\n coordinateList: this.state.tooltipTicks\n });\n }\n if (this.props.layout !== prevProps.layout) {\n this.accessibilityManager.setDetails({\n layout: this.props.layout\n });\n }\n if (this.props.margin !== prevProps.margin) {\n var _this$props$margin$le2, _this$props$margin$to2;\n this.accessibilityManager.setDetails({\n offset: {\n left: (_this$props$margin$le2 = this.props.margin.left) !== null && _this$props$margin$le2 !== void 0 ? _this$props$margin$le2 : 0,\n top: (_this$props$margin$to2 = this.props.margin.top) !== null && _this$props$margin$to2 !== void 0 ? _this$props$margin$to2 : 0\n }\n });\n }\n\n // Something has to be returned for getSnapshotBeforeUpdate\n return null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // Check to see if the Tooltip updated. If so, re-check default tooltip position\n if (!isChildrenEqual([findChildByType(prevProps.children, Tooltip)], [findChildByType(this.props.children, Tooltip)])) {\n this.displayDefaultTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeListener();\n this.throttleTriggeredAfterMouseMove.cancel();\n }\n }, {\n key: \"getTooltipEventType\",\n value: function getTooltipEventType() {\n var tooltipItem = findChildByType(this.props.children, Tooltip);\n if (tooltipItem && typeof tooltipItem.props.shared === 'boolean') {\n var eventType = tooltipItem.props.shared ? 'axis' : 'item';\n return validateTooltipEventTypes.indexOf(eventType) >= 0 ? eventType : defaultTooltipEventType;\n }\n return defaultTooltipEventType;\n }\n\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {MousePointer} event The event object\n * @return {Object} Mouse data\n */\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n var element = this.container;\n var boundingRect = element.getBoundingClientRect();\n var containerOffset = getOffset(boundingRect);\n var e = {\n chartX: Math.round(event.pageX - containerOffset.left),\n chartY: Math.round(event.pageY - containerOffset.top)\n };\n var scale = boundingRect.width / element.offsetWidth || 1;\n var rangeObj = this.inRange(e.chartX, e.chartY, scale);\n if (!rangeObj) {\n return null;\n }\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n var tooltipEventType = this.getTooltipEventType();\n if (tooltipEventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread(_objectSpread({}, e), {}, {\n xValue: xValue,\n yValue: yValue\n });\n }\n var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);\n if (toolTipData) {\n return _objectSpread(_objectSpread({}, e), toolTipData);\n }\n return null;\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var scale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var layout = this.props.layout;\n var scaledX = x / scale,\n scaledY = y / scale;\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = scaledX >= offset.left && scaledX <= offset.left + offset.width && scaledY >= offset.top && scaledY <= offset.top + offset.height;\n return isInRange ? {\n x: scaledX,\n y: scaledY\n } : null;\n }\n var _this$state10 = this.state,\n angleAxisMap = _this$state10.angleAxisMap,\n radiusAxisMap = _this$state10.radiusAxisMap;\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: scaledX,\n y: scaledY\n }, angleAxis);\n }\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipEventType = this.getTooltipEventType();\n var tooltipItem = findChildByType(children, Tooltip);\n var tooltipEvents = {};\n if (tooltipItem && tooltipEventType === 'axis') {\n if (tooltipItem.props.trigger === 'click') {\n tooltipEvents = {\n onClick: this.handleClick\n };\n } else {\n tooltipEvents = {\n onMouseEnter: this.handleMouseEnter,\n onDoubleClick: this.handleDoubleClick,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd,\n onContextMenu: this.handleContextMenu\n };\n }\n }\n\n // @ts-expect-error adaptEventHandlers expects DOM Event but generateCategoricalChart works with React UIEvents\n var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n return null;\n }\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"getXScales\",\n value: function getXScales() {\n var xAxisMap = this.state.xAxisMap;\n return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n axisId = _ref14[0],\n axisProps = _ref14[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getYScales\",\n value: function getYScales() {\n var yAxisMap = this.state.yAxisMap;\n return yAxisMap ? Object.entries(yAxisMap).reduce(function (res, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n axisId = _ref16[0],\n axisProps = _ref16[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getXScaleByAxisId\",\n value: function getXScaleByAxisId(axisId) {\n var _this$state$xAxisMap;\n return (_this$state$xAxisMap = this.state.xAxisMap) === null || _this$state$xAxisMap === void 0 || (_this$state$xAxisMap = _this$state$xAxisMap[axisId]) === null || _this$state$xAxisMap === void 0 ? void 0 : _this$state$xAxisMap.scale;\n }\n }, {\n key: \"getYScaleByAxisId\",\n value: function getYScaleByAxisId(axisId) {\n var _this$state$yAxisMap;\n return (_this$state$yAxisMap = this.state.yAxisMap) === null || _this$state$yAxisMap === void 0 || (_this$state$yAxisMap = _this$state$yAxisMap[axisId]) === null || _this$state$yAxisMap === void 0 ? void 0 : _this$state$yAxisMap.scale;\n }\n }, {\n key: \"getItemByXY\",\n value: function getItemByXY(chartXY) {\n var _this$state11 = this.state,\n formattedGraphicalItems = _this$state11.formattedGraphicalItems,\n activeItem = _this$state11.activeItem;\n if (formattedGraphicalItems && formattedGraphicalItems.length) {\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var graphicalItem = formattedGraphicalItems[i];\n // graphicalItem is not a React Element so we don't need to resolve defaultProps\n var props = graphicalItem.props,\n item = graphicalItem.item;\n var itemProps = item.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var itemDisplayName = getDisplayName(item.type);\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\n if (activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: activeBarItem\n };\n }\n } else if (itemDisplayName === 'RadialBar') {\n var _activeBarItem = (props.data || []).find(function (entry) {\n return inRangeOfSector(chartXY, entry);\n });\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n } else if (isFunnel(graphicalItem, activeItem) || isPie(graphicalItem, activeItem) || isScatter(graphicalItem, activeItem)) {\n var activeIndex = getActiveShapeIndexForTooltip({\n graphicalItem: graphicalItem,\n activeTooltipItem: activeItem,\n itemData: itemProps.data\n });\n var childIndex = itemProps.activeIndex === undefined ? activeIndex : itemProps.activeIndex;\n return {\n graphicalItem: _objectSpread(_objectSpread({}, graphicalItem), {}, {\n childIndex: childIndex\n }),\n payload: isScatter(graphicalItem, activeItem) ? itemProps.data[activeIndex] : graphicalItem.props.data[activeIndex]\n };\n }\n }\n }\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n if (!validateWidthHeight(this)) {\n return null;\n }\n var _this$props6 = this.props,\n children = _this$props6.children,\n className = _this$props6.className,\n width = _this$props6.width,\n height = _this$props6.height,\n style = _this$props6.style,\n compact = _this$props6.compact,\n title = _this$props6.title,\n desc = _this$props6.desc,\n others = _objectWithoutProperties(_this$props6, _excluded2);\n var attrs = filterProps(others, false);\n\n // The \"compact\" mode is mainly used as the panorama within Brush\n if (compact) {\n return /*#__PURE__*/React.createElement(ChartLayoutContextProvider, {\n state: this.state,\n width: this.props.width,\n height: this.props.height,\n clipPathId: this.clipPathId\n }, /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc\n }), this.renderClipPath(), renderByOrder(children, this.renderMap)));\n }\n if (this.props.accessibilityLayer) {\n var _this$props$tabIndex, _this$props$role;\n // Set tabIndex to 0 by default (can be overwritten)\n attrs.tabIndex = (_this$props$tabIndex = this.props.tabIndex) !== null && _this$props$tabIndex !== void 0 ? _this$props$tabIndex : 0;\n // Set role to img by default (can be overwritten)\n attrs.role = (_this$props$role = this.props.role) !== null && _this$props$role !== void 0 ? _this$props$role : 'application';\n attrs.onKeyDown = function (e) {\n _this3.accessibilityManager.keyboardEvent(e);\n // 'onKeyDown' is not currently a supported prop that can be passed through\n // if it's added, this should be added: this.props.onKeyDown(e);\n };\n attrs.onFocus = function () {\n _this3.accessibilityManager.focus();\n // 'onFocus' is not currently a supported prop that can be passed through\n // if it's added, the focus event should be forwarded to the prop\n };\n }\n var events = this.parseEventsOfWrapper();\n return /*#__PURE__*/React.createElement(ChartLayoutContextProvider, {\n state: this.state,\n width: this.props.width,\n height: this.props.height,\n clipPathId: this.clipPathId\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this3.container = node;\n }\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc,\n style: FULL_WIDTH_AND_HEIGHT\n }), this.renderClipPath(), renderByOrder(children, this.renderMap)), this.renderLegend(), this.renderTooltip()));\n }\n }]);\n }(Component);\n _defineProperty(CategoricalChartWrapper, \"displayName\", chartName);\n // todo join specific chart propTypes\n _defineProperty(CategoricalChartWrapper, \"defaultProps\", _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false,\n syncMethod: 'index'\n }, defaultProps));\n _defineProperty(CategoricalChartWrapper, \"getDerivedStateFromProps\", function (nextProps, prevState) {\n var dataKey = nextProps.dataKey,\n data = nextProps.data,\n children = nextProps.children,\n width = nextProps.width,\n height = nextProps.height,\n layout = nextProps.layout,\n stackOffset = nextProps.stackOffset,\n margin = nextProps.margin;\n var dataStartIndex = prevState.dataStartIndex,\n dataEndIndex = prevState.dataEndIndex;\n if (prevState.updateId === undefined) {\n var defaultState = createDefaultState(nextProps);\n return _objectSpread(_objectSpread(_objectSpread({}, defaultState), {}, {\n updateId: 0\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, defaultState), {}, {\n updateId: 0\n }), prevState)), {}, {\n prevDataKey: dataKey,\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (dataKey !== prevState.prevDataKey || data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || layout !== prevState.prevLayout || stackOffset !== prevState.prevStackOffset || !shallowEqual(margin, prevState.prevMargin)) {\n var _defaultState = createDefaultState(nextProps);\n\n // Fixes https://github.com/recharts/recharts/issues/2143\n var keepFromPrevState = {\n // (chartX, chartY) are (0,0) in default state, but we want to keep the last mouse position to avoid\n // any flickering\n chartX: prevState.chartX,\n chartY: prevState.chartY,\n // The tooltip should stay active when it was active in the previous render. If this is not\n // the case, the tooltip disappears and immediately re-appears, causing a flickering effect\n isTooltipActive: prevState.isTooltipActive\n };\n var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {\n updateId: prevState.updateId + 1\n });\n var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);\n return _objectSpread(_objectSpread(_objectSpread({}, newState), updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, newState), prevState)), {}, {\n prevDataKey: dataKey,\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (!isChildrenEqual(children, prevState.prevChildren)) {\n var _brush$props$startInd, _brush$props, _brush$props$endIndex, _brush$props2;\n // specifically check for Brush - if it exists and the start and end indexes are different, re-render with the new ones\n var brush = findChildByType(children, Brush);\n var startIndex = brush ? (_brush$props$startInd = (_brush$props = brush.props) === null || _brush$props === void 0 ? void 0 : _brush$props.startIndex) !== null && _brush$props$startInd !== void 0 ? _brush$props$startInd : dataStartIndex : dataStartIndex;\n var endIndex = brush ? (_brush$props$endIndex = (_brush$props2 = brush.props) === null || _brush$props2 === void 0 ? void 0 : _brush$props2.endIndex) !== null && _brush$props$endIndex !== void 0 ? _brush$props$endIndex : dataEndIndex : dataEndIndex;\n var hasDifferentStartOrEndIndex = startIndex !== dataStartIndex || endIndex !== dataEndIndex;\n\n // update configuration in children\n var hasGlobalData = !isNil(data);\n var newUpdateId = hasGlobalData && !hasDifferentStartOrEndIndex ? prevState.updateId : prevState.updateId + 1;\n return _objectSpread(_objectSpread({\n updateId: newUpdateId\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, prevState), {}, {\n updateId: newUpdateId,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }), prevState)), {}, {\n prevChildren: children,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n return null;\n });\n _defineProperty(CategoricalChartWrapper, \"renderActiveDot\", function (option, props, key) {\n var dot;\n if ( /*#__PURE__*/isValidElement(option)) {\n dot = /*#__PURE__*/cloneElement(option, props);\n } else if (isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, props);\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: key\n }, dot);\n });\n var CategoricalChart = /*#__PURE__*/forwardRef(function CategoricalChart(props, ref) {\n return /*#__PURE__*/React.createElement(CategoricalChartWrapper, _extends({}, props, {\n ref: ref\n }));\n });\n CategoricalChart.displayName = CategoricalChartWrapper.displayName;\n return CategoricalChart;\n};","import { isNumber } from './DataUtils';\n/**\n * Takes a domain and user props to determine whether he provided the domain via props or if we need to calculate it.\n * @param {AxisDomain} domain The potential domain from props\n * @param {Boolean} allowDataOverflow from props\n * @param {String} axisType from props\n * @returns {Boolean} `true` if domain is specified by user\n */\nexport function isDomainSpecifiedByUser(domain, allowDataOverflow, axisType) {\n if (axisType === 'number' && allowDataOverflow === true && Array.isArray(domain)) {\n var domainStart = domain === null || domain === void 0 ? void 0 : domain[0];\n var domainEnd = domain === null || domain === void 0 ? void 0 : domain[1];\n\n /*\n * The `isNumber` check is needed because the user could also provide strings like \"dataMin\" via the domain props.\n * In such case, we have to compute the domain from the data.\n */\n if (!!domainStart && !!domainEnd && isNumber(domainStart) && isNumber(domainEnd)) {\n return true;\n }\n }\n return false;\n}","var _excluded = [\"type\", \"layout\", \"connectNulls\", \"ref\"],\n _excluded2 = [\"key\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Line\n */\nimport React, { PureComponent } from 'react';\nimport Animate from 'react-smooth';\nimport isFunction from 'lodash/isFunction';\nimport isNil from 'lodash/isNil';\nimport isEqual from 'lodash/isEqual';\nimport clsx from 'clsx';\nimport { Curve } from '../shape/Curve';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { LabelList } from '../component/LabelList';\nimport { ErrorBar } from './ErrorBar';\nimport { uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { findAllByType, filterProps, hasClipDot } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\nexport var Line = /*#__PURE__*/function (_PureComponent) {\n function Line() {\n var _this;\n _classCallCheck(this, Line);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Line, [].concat(args));\n _defineProperty(_this, \"state\", {\n isAnimationFinished: true,\n totalLength: 0\n });\n _defineProperty(_this, \"generateSimpleStrokeDasharray\", function (totalLength, length) {\n return \"\".concat(length, \"px \").concat(totalLength - length, \"px\");\n });\n _defineProperty(_this, \"getStrokeDasharray\", function (length, totalLength, lines) {\n var lineLength = lines.reduce(function (pre, next) {\n return pre + next;\n });\n\n // if lineLength is 0 return the default when no strokeDasharray is provided\n if (!lineLength) {\n return _this.generateSimpleStrokeDasharray(totalLength, length);\n }\n var count = Math.floor(length / lineLength);\n var remainLength = length % lineLength;\n var restLength = totalLength - length;\n var remainLines = [];\n for (var i = 0, sum = 0; i < lines.length; sum += lines[i], ++i) {\n if (sum + lines[i] > remainLength) {\n remainLines = [].concat(_toConsumableArray(lines.slice(0, i)), [remainLength - sum]);\n break;\n }\n }\n var emptyLines = remainLines.length % 2 === 0 ? [0, restLength] : [restLength];\n return [].concat(_toConsumableArray(Line.repeat(lines, count)), _toConsumableArray(remainLines), emptyLines).map(function (line) {\n return \"\".concat(line, \"px\");\n }).join(', ');\n });\n _defineProperty(_this, \"id\", uniqueId('recharts-line-'));\n _defineProperty(_this, \"pathRef\", function (node) {\n _this.mainCurve = node;\n });\n _defineProperty(_this, \"handleAnimationEnd\", function () {\n _this.setState({\n isAnimationFinished: true\n });\n if (_this.props.onAnimationEnd) {\n _this.props.onAnimationEnd();\n }\n });\n _defineProperty(_this, \"handleAnimationStart\", function () {\n _this.setState({\n isAnimationFinished: false\n });\n if (_this.props.onAnimationStart) {\n _this.props.onAnimationStart();\n }\n });\n return _this;\n }\n _inherits(Line, _PureComponent);\n return _createClass(Line, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.props.isAnimationActive) {\n return;\n }\n var totalLength = this.getTotalLength();\n this.setState({\n totalLength: totalLength\n });\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (!this.props.isAnimationActive) {\n return;\n }\n var totalLength = this.getTotalLength();\n if (totalLength !== this.state.totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n }\n }, {\n key: \"getTotalLength\",\n value: function getTotalLength() {\n var curveDom = this.mainCurve;\n try {\n return curveDom && curveDom.getTotalLength && curveDom.getTotalLength() || 0;\n } catch (err) {\n return 0;\n }\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar(needClip, clipPathId) {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props = this.props,\n points = _this$props.points,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis,\n layout = _this$props.layout,\n children = _this$props.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n var dataPointFormatter = function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint.payload, dataKey)\n };\n };\n var errorBarProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, errorBarProps, errorBarItems.map(function (item) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"bar-\".concat(item.props.dataKey),\n data: points,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n dataPointFormatter: dataPointFormatter\n });\n }));\n }\n }, {\n key: \"renderDots\",\n value: function renderDots(needClip, clipDot, clipPathId) {\n var isAnimationActive = this.props.isAnimationActive;\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props2 = this.props,\n dot = _this$props2.dot,\n points = _this$props2.points,\n dataKey = _this$props2.dataKey;\n var lineProps = filterProps(this.props, false);\n var customDotProps = filterProps(dot, true);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread(_objectSpread(_objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, lineProps), customDotProps), {}, {\n value: entry.value,\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n payload: entry.payload\n });\n return Line.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipDot ? '' : 'dots-').concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-line-dots\",\n key: \"dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderCurveStatically\",\n value: function renderCurveStatically(points, needClip, clipPathId, props) {\n var _this$props3 = this.props,\n type = _this$props3.type,\n layout = _this$props3.layout,\n connectNulls = _this$props3.connectNulls,\n ref = _this$props3.ref,\n others = _objectWithoutProperties(_this$props3, _excluded);\n var curveProps = _objectSpread(_objectSpread(_objectSpread({}, filterProps(others, true)), {}, {\n fill: 'none',\n className: 'recharts-line-curve',\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null,\n points: points\n }, props), {}, {\n type: type,\n layout: layout,\n connectNulls: connectNulls\n });\n return /*#__PURE__*/React.createElement(Curve, _extends({}, curveProps, {\n pathRef: this.pathRef\n }));\n }\n }, {\n key: \"renderCurveWithAnimation\",\n value: function renderCurveWithAnimation(needClip, clipPathId) {\n var _this2 = this;\n var _this$props4 = this.props,\n points = _this$props4.points,\n strokeDasharray = _this$props4.strokeDasharray,\n isAnimationActive = _this$props4.isAnimationActive,\n animationBegin = _this$props4.animationBegin,\n animationDuration = _this$props4.animationDuration,\n animationEasing = _this$props4.animationEasing,\n animationId = _this$props4.animationId,\n animateNewValues = _this$props4.animateNewValues,\n width = _this$props4.width,\n height = _this$props4.height;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n totalLength = _this$state.totalLength;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"line-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n var stepData = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n // magic number of faking previous x and y location\n if (animateNewValues) {\n var _interpolatorX = interpolateNumber(width * 2, entry.x);\n var _interpolatorY = interpolateNumber(height / 2, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: _interpolatorX(t),\n y: _interpolatorY(t)\n });\n }\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: entry.x,\n y: entry.y\n });\n });\n return _this2.renderCurveStatically(stepData, needClip, clipPathId);\n }\n var interpolator = interpolateNumber(0, totalLength);\n var curLength = interpolator(t);\n var currentStrokeDasharray;\n if (strokeDasharray) {\n var lines = \"\".concat(strokeDasharray).split(/[,\\s]+/gim).map(function (num) {\n return parseFloat(num);\n });\n currentStrokeDasharray = _this2.getStrokeDasharray(curLength, totalLength, lines);\n } else {\n currentStrokeDasharray = _this2.generateSimpleStrokeDasharray(totalLength, curLength);\n }\n return _this2.renderCurveStatically(points, needClip, clipPathId, {\n strokeDasharray: currentStrokeDasharray\n });\n });\n }\n }, {\n key: \"renderCurve\",\n value: function renderCurve(needClip, clipPathId) {\n var _this$props5 = this.props,\n points = _this$props5.points,\n isAnimationActive = _this$props5.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n totalLength = _this$state2.totalLength;\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !isEqual(prevPoints, points))) {\n return this.renderCurveWithAnimation(needClip, clipPathId);\n }\n return this.renderCurveStatically(points, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _filterProps;\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n dot = _this$props6.dot,\n points = _this$props6.points,\n className = _this$props6.className,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n top = _this$props6.top,\n left = _this$props6.left,\n width = _this$props6.width,\n height = _this$props6.height,\n isAnimationActive = _this$props6.isAnimationActive,\n id = _this$props6.id;\n if (hide || !points || !points.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = clsx('recharts-line', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n var _ref2 = (_filterProps = filterProps(dot, false)) !== null && _filterProps !== void 0 ? _filterProps : {\n r: 3,\n strokeWidth: 2\n },\n _ref2$r = _ref2.r,\n r = _ref2$r === void 0 ? 3 : _ref2$r,\n _ref2$strokeWidth = _ref2.strokeWidth,\n strokeWidth = _ref2$strokeWidth === void 0 ? 2 : _ref2$strokeWidth;\n var _ref3 = hasClipDot(dot) ? dot : {},\n _ref3$clipDot = _ref3.clipDot,\n clipDot = _ref3$clipDot === void 0 ? true : _ref3$clipDot;\n var dotSize = r * 2 + strokeWidth;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n })), !clipDot && /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-dots-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left - dotSize / 2,\n y: top - dotSize / 2,\n width: width + dotSize,\n height: height + dotSize\n }))) : null, !hasSinglePoint && this.renderCurve(needClip, clipPathId), this.renderErrorBar(needClip, clipPathId), (hasSinglePoint || dot) && this.renderDots(needClip, clipDot, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curPoints: nextProps.points,\n prevPoints: prevState.curPoints\n };\n }\n if (nextProps.points !== prevState.curPoints) {\n return {\n curPoints: nextProps.points\n };\n }\n return null;\n }\n }, {\n key: \"repeat\",\n value: function repeat(lines, count) {\n var linesUnit = lines.length % 2 !== 0 ? [].concat(_toConsumableArray(lines), [0]) : lines;\n var result = [];\n for (var i = 0; i < count; ++i) {\n result = [].concat(_toConsumableArray(result), _toConsumableArray(linesUnit));\n }\n return result;\n }\n }, {\n key: \"renderDotItem\",\n value: function renderDotItem(option, props) {\n var dotItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dotItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dotItem = option(props);\n } else {\n var key = props.key,\n dotProps = _objectWithoutProperties(props, _excluded2);\n var className = clsx('recharts-line-dot', typeof option !== 'boolean' ? option.className : '');\n dotItem = /*#__PURE__*/React.createElement(Dot, _extends({\n key: key\n }, dotProps, {\n className: className\n }));\n }\n return dotItem;\n }\n }]);\n}(PureComponent);\n_defineProperty(Line, \"displayName\", 'Line');\n_defineProperty(Line, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n connectNulls: false,\n activeDot: true,\n dot: true,\n legendType: 'line',\n stroke: '#3182bd',\n strokeWidth: 1,\n fill: '#fff',\n points: [],\n isAnimationActive: !Global.isSsr,\n animateNewValues: true,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n hide: false,\n label: false\n});\n/**\n * Compose the data of each group\n * @param {Object} props The props from the component\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {String} dataKey The unique key of a group\n * @return {Array} Composed data\n */\n_defineProperty(Line, \"getComposedData\", function (_ref4) {\n var props = _ref4.props,\n xAxis = _ref4.xAxis,\n yAxis = _ref4.yAxis,\n xAxisTicks = _ref4.xAxisTicks,\n yAxisTicks = _ref4.yAxisTicks,\n dataKey = _ref4.dataKey,\n bandSize = _ref4.bandSize,\n displayedData = _ref4.displayedData,\n offset = _ref4.offset;\n var layout = props.layout;\n var points = displayedData.map(function (entry, index) {\n var value = getValueByDataKey(entry, dataKey);\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: isNil(value) ? null : yAxis.scale(value),\n value: value,\n payload: entry\n };\n }\n return {\n x: isNil(value) ? null : xAxis.scale(value),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n return _objectSpread({\n points: points,\n layout: layout\n }, offset);\n});","/**\n * Given an array and a number N, return a new array which contains every nTh\n * element of the input array. For n below 1, an empty array is returned.\n * If isValid is provided, all candidates must suffice the condition, else undefined is returned.\n * @param {T[]} array An input array.\n * @param {integer} n A number\n * @param {Function} isValid A function to evaluate a candidate form the array\n * @returns {T[]} The result array of the same type as the input array.\n */\nexport function getEveryNthWithCondition(array, n, isValid) {\n if (n < 1) {\n return [];\n }\n if (n === 1 && isValid === undefined) {\n return array;\n }\n var result = [];\n for (var i = 0; i < array.length; i += n) {\n if (isValid === undefined || isValid(array[i]) === true) {\n result.push(array[i]);\n } else {\n return undefined;\n }\n }\n return result;\n}","import { getAngledRectangleWidth } from './CartesianUtils';\nimport { getEveryNthWithCondition } from './getEveryNthWithCondition';\nexport function getAngledTickWidth(contentSize, unitSize, angle) {\n var size = {\n width: contentSize.width + unitSize.width,\n height: contentSize.height + unitSize.height\n };\n return getAngledRectangleWidth(size, angle);\n}\nexport function getTickBoundaries(viewBox, sign, sizeKey) {\n var isWidth = sizeKey === 'width';\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n if (sign === 1) {\n return {\n start: isWidth ? x : y,\n end: isWidth ? x + width : y + height\n };\n }\n return {\n start: isWidth ? x + width : y + height,\n end: isWidth ? x : y\n };\n}\nexport function isVisible(sign, tickPosition, getSize, start, end) {\n /* Since getSize() is expensive (it reads the ticks' size from the DOM), we do this check first to avoid calculating\n * the tick's size. */\n if (sign * tickPosition < sign * start || sign * tickPosition > sign * end) {\n return false;\n }\n var size = getSize();\n return sign * (tickPosition - sign * size / 2 - start) >= 0 && sign * (tickPosition + sign * size / 2 - end) <= 0;\n}\nexport function getNumberIntervalTicks(ticks, interval) {\n return getEveryNthWithCondition(ticks, interval + 1);\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport isFunction from 'lodash/isFunction';\nimport { mathSign, isNumber } from '../util/DataUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Global } from '../util/Global';\nimport { isVisible, getTickBoundaries, getNumberIntervalTicks, getAngledTickWidth } from '../util/TickUtils';\nimport { getEquidistantTicks } from './getEquidistantTicks';\nfunction getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start;\n var end = boundaries.end;\n var _loop = function _loop(i) {\n var entry = result[i];\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * getSize() / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n end = entry.tickCoord - sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n };\n for (var i = len - 1; i >= 0; i--) {\n _loop(i);\n }\n return result;\n}\nfunction getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, preserveEnd) {\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start,\n end = boundaries.end;\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailSize = getTickSize(tail, len - 1);\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = isVisible(sign, tail.tickCoord, function () {\n return tailSize;\n }, start, end);\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n var count = preserveEnd ? len - 1 : len;\n var _loop2 = function _loop2(i) {\n var entry = result[i];\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * getSize() / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n start = entry.tickCoord + sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n };\n for (var i = 0; i < count; i++) {\n _loop2(i);\n }\n return result;\n}\nexport function getTicks(props, fontSize, letterSpacing) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit,\n angle = props.angle;\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n if (isNumber(interval) || Global.isSsr) {\n return getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n var candidates = [];\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }) : {\n width: 0,\n height: 0\n };\n var getTickSize = function getTickSize(content, index) {\n var value = isFunction(tickFormatter) ? tickFormatter(content.value, index) : content.value;\n // Recharts only supports angles when sizeKey === 'width'\n return sizeKey === 'width' ? getAngledTickWidth(getStringSize(value, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }), unitSize, angle) : getStringSize(value, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey];\n };\n var sign = ticks.length >= 2 ? mathSign(ticks[1].coordinate - ticks[0].coordinate) : 1;\n var boundaries = getTickBoundaries(viewBox, sign, sizeKey);\n if (interval === 'equidistantPreserveStart') {\n return getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n if (interval === 'preserveStart' || interval === 'preserveStartEnd') {\n candidates = getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, interval === 'preserveStartEnd');\n } else {\n candidates = getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n return candidates.filter(function (entry) {\n return entry.isShow;\n });\n}","import { isVisible } from '../util/TickUtils';\nimport { getEveryNthWithCondition } from '../util/getEveryNthWithCondition';\nexport function getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var initialStart = boundaries.start,\n end = boundaries.end;\n var index = 0;\n // Premature optimisation idea 1: Estimate a lower bound, and start from there.\n // For now, start from every tick\n var stepsize = 1;\n var start = initialStart;\n var _loop = function _loop() {\n // Given stepsize, evaluate whether every stepsize-th tick can be shown.\n // If it can not, then increase the stepsize by 1, and try again.\n\n var entry = ticks === null || ticks === void 0 ? void 0 : ticks[index];\n\n // Break condition - If we have evaluate all the ticks, then we are done.\n if (entry === undefined) {\n return {\n v: getEveryNthWithCondition(ticks, stepsize)\n };\n }\n\n // Check if the element collides with the next element\n var i = index;\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n var tickCoord = entry.coordinate;\n // We will always show the first tick.\n var isShow = index === 0 || isVisible(sign, tickCoord, getSize, start, end);\n if (!isShow) {\n // Start all over with a larger stepsize\n index = 0;\n start = initialStart;\n stepsize += 1;\n }\n if (isShow) {\n // If it can be shown, update the start\n start = tickCoord + sign * (getSize() / 2 + minTickGap);\n index += stepsize;\n }\n },\n _ret;\n while (stepsize <= result.length) {\n _ret = _loop();\n if (_ret) return _ret.v;\n }\n return [];\n}","var _excluded = [\"viewBox\"],\n _excluded2 = [\"viewBox\"],\n _excluded3 = [\"ticks\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport get from 'lodash/get';\nimport clsx from 'clsx';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { isNumber } from '../util/DataUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { getTicks } from './getTicks';\n\n/** The orientation of the axis in correspondence to the chart */\n\n/** A unit to be appended to a value */\n\n/** The formatter function of tick */\n\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n function CartesianAxis(props) {\n var _this;\n _classCallCheck(this, CartesianAxis);\n _this = _callSuper(this, CartesianAxis, [props]);\n _this.state = {\n fontSize: '',\n letterSpacing: ''\n };\n return _this;\n }\n _inherits(CartesianAxis, _Component);\n return _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref, nextState) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, _excluded);\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, _excluded2);\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld) || !shallowEqual(nextState, this.state);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var htmlLayer = this.layerReference;\n if (!htmlLayer) return;\n var tick = htmlLayer.getElementsByClassName('recharts-cartesian-axis-tick-value')[0];\n if (tick) {\n this.setState({\n fontSize: window.getComputedStyle(tick).fontSize,\n letterSpacing: window.getComputedStyle(tick).letterSpacing\n });\n }\n }\n\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n default:\n textAnchor = 'middle';\n break;\n }\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props, false)), filterProps(axisLine, false)), {}, {\n fill: 'none'\n });\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: clsx('recharts-cartesian-axis-line', get(axisLine, 'className'))\n }));\n }\n }, {\n key: \"renderTicks\",\n value:\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @param {string} fontSize Fontsize to consider for tick spacing\n * @param {string} letterSpacing Letterspacing to consider for tick spacing\n * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks, fontSize, letterSpacing) {\n var _this2 = this;\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }), fontSize, letterSpacing);\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props, false);\n var customTickProps = filterProps(tick, false);\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine, false));\n var items = finalTicks.map(function (entry, i) {\n var _this2$getTickLineCoo = _this2.getTickLineCoord(entry),\n lineCoord = _this2$getTickLineCoo.line,\n tickCoord = _this2$getTickLineCoo.tick;\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(entry.value, \"-\").concat(entry.coordinate, \"-\").concat(entry.tickCoord)\n }, adaptEventsOfChild(_this2.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: clsx('recharts-cartesian-axis-tick-line', get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n if (hide) {\n return null;\n }\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, _excluded3);\n var finalTicks = ticks;\n if (isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-cartesian-axis', className),\n ref: function ref(_ref2) {\n _this3.layerReference = _ref2;\n }\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks, this.state.fontSize, this.state.letterSpacing), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n return tickItem;\n }\n }]);\n}(Component);\n_defineProperty(CartesianAxis, \"displayName\", 'CartesianAxis');\n_defineProperty(CartesianAxis, \"defaultProps\", {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview X Axis\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { useChartHeight, useChartWidth, useXAxisOrThrow } from '../context/chartLayoutContext';\nimport { CartesianAxis } from './CartesianAxis';\nimport { getTicksOfAxis } from '../util/ChartUtils';\n\n/** Define of XAxis props */\n\nfunction XAxisImpl(_ref) {\n var xAxisId = _ref.xAxisId;\n var width = useChartWidth();\n var height = useChartHeight();\n var axisOptions = useXAxisOrThrow(xAxisId);\n if (axisOptions == null) {\n return null;\n }\n return (\n /*#__PURE__*/\n // @ts-expect-error the axisOptions type is not exactly what CartesianAxis is expecting.\n React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: clsx(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: function ticksGenerator(axis) {\n return getTicksOfAxis(axis, true);\n }\n }))\n );\n}\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var XAxis = /*#__PURE__*/function (_React$Component) {\n function XAxis() {\n _classCallCheck(this, XAxis);\n return _callSuper(this, XAxis, arguments);\n }\n _inherits(XAxis, _React$Component);\n return _createClass(XAxis, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(XAxisImpl, this.props);\n }\n }]);\n}(React.Component);\n_defineProperty(XAxis, \"displayName\", 'XAxis');\n_defineProperty(XAxis, \"defaultProps\", {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Y Axis\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { useChartHeight, useChartWidth, useYAxisOrThrow } from '../context/chartLayoutContext';\nimport { CartesianAxis } from './CartesianAxis';\nimport { getTicksOfAxis } from '../util/ChartUtils';\nvar YAxisImpl = function YAxisImpl(_ref) {\n var yAxisId = _ref.yAxisId;\n var width = useChartWidth();\n var height = useChartHeight();\n var axisOptions = useYAxisOrThrow(yAxisId);\n if (axisOptions == null) {\n return null;\n }\n return (\n /*#__PURE__*/\n // @ts-expect-error the axisOptions type is not exactly what CartesianAxis is expecting.\n React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: clsx(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: function ticksGenerator(axis) {\n return getTicksOfAxis(axis, true);\n }\n }))\n );\n};\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var YAxis = /*#__PURE__*/function (_React$Component) {\n function YAxis() {\n _classCallCheck(this, YAxis);\n return _callSuper(this, YAxis, arguments);\n }\n _inherits(YAxis, _React$Component);\n return _createClass(YAxis, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(YAxisImpl, this.props);\n }\n }]);\n}(React.Component);\n_defineProperty(YAxis, \"displayName\", 'YAxis');\n_defineProperty(YAxis, \"defaultProps\", {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n});","/**\n * @fileOverview Line Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Line } from '../cartesian/Line';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var LineChart = generateCategoricalChart({\n chartName: 'LineChart',\n GraphicalChild: Line,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","var _excluded = [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"],\n _excluded2 = [\"offset\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Cartesian Grid\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport { warn } from '../util/LogUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nimport { getCoordinatesOfGrid, getTicksOfAxis } from '../util/ChartUtils';\nimport { getTicks } from './getTicks';\nimport { CartesianAxis } from './CartesianAxis';\nimport { useArbitraryXAxis, useChartHeight, useChartWidth, useOffset, useYAxisWithFiniteDomainOrRandom } from '../context/chartLayoutContext';\n\n/**\n * The {\n const dispatch = useDispatch();\n const { products } = useSelector((state) => state.products);\n const { brands } = useSelector((state) => state.brands);\n const { orders = [] } = useSelector((state) => state.orders);\n const { customerList } = useSelector((state) => state.customer);\n\n const loading = !(products && brands && orders && customerList);\n const error = !loading && (!products || !brands || !orders || !customerList);\n\n const [dailyOrders, setDailyOrders] = useState([]);\n const [monthlyOrders, setMonthlyOrders] = useState([]);\n\n useEffect(() => {\n const startDate = '2020-01-01';\n const endDate = moment().add(1, 'day').format('YYYY-MM-DD'); // Fetch orders up to a day after the current date\n dispatch(fetchOrdersByDate({ from: startDate, to: endDate }));\n dispatch(fetchAllProducts());\n dispatch(fetchBrands());\n dispatch(fetchCustomers());\n }, [dispatch]);\n\n useEffect(() => {\n if (orders && orders.length > 0) {\n const dailyData = calculateDailyOrders(orders);\n const monthlyData = calculateMonthlyOrders(orders);\n setDailyOrders(dailyData);\n setMonthlyOrders(monthlyData);\n }\n }, [orders]);\n\n // Calculate daily orders for the last 7 days\n \n const calculateDailyOrders = (orders) => {\n const endDate = moment().add(1, 'day');\n const startDate = moment().subtract(6, 'days'); // Last 7 days\n\n const dailyCounts = [];\n let currentDate = startDate.clone();\n\n while (currentDate.isBefore(endDate, 'day')) {\n const dailyCount = orders.filter((order) =>\n moment(order.orderDate).isSame(currentDate, 'day')\n ).length;\n\n dailyCounts.push({\n name: currentDate.format('MM/DD/YYYY'),\n totalOrders: dailyCount,\n });\n\n currentDate.add(1, 'day');\n }\n\n return dailyCounts;\n };\n\n // Calculate monthly orders for the last 6 months\n const calculateMonthlyOrders = (orders) => {\n const endDate = moment().add(1, 'day');\n const startDate = moment().subtract(5, 'months').startOf('month'); // 6-month range\n\n const monthlyCounts = [];\n let currentMonth = startDate.clone();\n\n while (currentMonth.isSameOrBefore(endDate, 'month')) {\n const monthlyOrdersCount = orders.filter((order) =>\n moment(order.orderDate).isBetween(\n currentMonth,\n currentMonth.clone().endOf('month'),\n null,\n '[]'\n )\n ).length;\n\n monthlyCounts.push({\n name: currentMonth.format('MM/YYYY'),\n totalOrders: monthlyOrdersCount,\n });\n\n currentMonth.add(1, 'month');\n }\n\n return monthlyCounts;\n };\n\n if (loading) {\n return ;\n }\n\n if (error) {\n return
    Error loading data
    ;\n }\n\n return (\n
    \n Admin Dashboard\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\nexport default Dashboard;\n","import warning from \"rc-util/es/warning\";\nexport default (function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = file.type || '';\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim();\n // This is something like */*,* allow all files\n if (/^\\*(\\/\\*)?$/.test(type)) {\n return true;\n }\n\n // like .jpg, .png\n if (validType.charAt(0) === '.') {\n var lowerFileName = fileName.toLowerCase();\n var lowerType = validType.toLowerCase();\n var affixList = [lowerType];\n if (lowerType === '.jpg' || lowerType === '.jpeg') {\n affixList = ['.jpg', '.jpeg'];\n }\n return affixList.some(function (affix) {\n return lowerFileName.endsWith(affix);\n });\n }\n\n // This is something like a image/* mime type\n if (/\\/\\*$/.test(validType)) {\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n // Full match\n if (mimeType === validType) {\n return true;\n }\n\n // Invalidate type should skip\n if (/^\\w+$/.test(validType)) {\n warning(false, \"Upload takes an invalidate 'accept' type '\".concat(validType, \"'.Skip for check.\"));\n return true;\n }\n return false;\n });\n }\n return true;\n});","function getError(option, xhr) {\n var msg = \"cannot \".concat(option.method, \" \").concat(option.action, \" \").concat(xhr.status, \"'\");\n var err = new Error(msg);\n err.status = xhr.status;\n err.method = option.method;\n err.url = option.action;\n return err;\n}\nfunction getBody(xhr) {\n var text = xhr.responseText || xhr.response;\n if (!text) {\n return text;\n }\n try {\n return JSON.parse(text);\n } catch (e) {\n return text;\n }\n}\nexport default function upload(option) {\n // eslint-disable-next-line no-undef\n var xhr = new XMLHttpRequest();\n if (option.onProgress && xhr.upload) {\n xhr.upload.onprogress = function progress(e) {\n if (e.total > 0) {\n e.percent = e.loaded / e.total * 100;\n }\n option.onProgress(e);\n };\n }\n\n // eslint-disable-next-line no-undef\n var formData = new FormData();\n if (option.data) {\n Object.keys(option.data).forEach(function (key) {\n var value = option.data[key];\n // support key-value array data\n if (Array.isArray(value)) {\n value.forEach(function (item) {\n // { list: [ 11, 22 ] }\n // formData.append('list[]', 11);\n formData.append(\"\".concat(key, \"[]\"), item);\n });\n return;\n }\n formData.append(key, value);\n });\n }\n\n // eslint-disable-next-line no-undef\n if (option.file instanceof Blob) {\n formData.append(option.filename, option.file, option.file.name);\n } else {\n formData.append(option.filename, option.file);\n }\n xhr.onerror = function error(e) {\n option.onError(e);\n };\n xhr.onload = function onload() {\n // allow success when 2xx status\n // see https://github.com/react-component/upload/issues/34\n if (xhr.status < 200 || xhr.status >= 300) {\n return option.onError(getError(option, xhr), getBody(xhr));\n }\n return option.onSuccess(getBody(xhr), xhr);\n };\n xhr.open(option.method, option.action, true);\n\n // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179\n if (option.withCredentials && 'withCredentials' in xhr) {\n xhr.withCredentials = true;\n }\n var headers = option.headers || {};\n\n // when set headers['X-Requested-With'] = null , can close default XHR header\n // see https://github.com/react-component/upload/issues/33\n if (headers['X-Requested-With'] !== null) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n Object.keys(headers).forEach(function (h) {\n if (headers[h] !== null) {\n xhr.setRequestHeader(h, headers[h]);\n }\n });\n xhr.send(formData);\n return {\n abort: function abort() {\n xhr.abort();\n }\n };\n}","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\n// https://github.com/ant-design/ant-design/issues/50080\nvar traverseFileTree = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(files, isAccepted) {\n var flattenFileList, progressFileList, readDirectory, _readDirectory, readFile, _readFile, _traverseFileTree, wipIndex;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _readFile = function _readFile3() {\n _readFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(item) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", new Promise(function (reslove) {\n item.file(function (file) {\n if (isAccepted(file)) {\n // https://github.com/ant-design/ant-design/issues/16426\n if (item.fullPath && !file.webkitRelativePath) {\n Object.defineProperties(file, {\n webkitRelativePath: {\n writable: true\n }\n });\n // eslint-disable-next-line no-param-reassign\n file.webkitRelativePath = item.fullPath.replace(/^\\//, '');\n Object.defineProperties(file, {\n webkitRelativePath: {\n writable: false\n }\n });\n }\n reslove(file);\n } else {\n reslove(null);\n }\n });\n }));\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return _readFile.apply(this, arguments);\n };\n readFile = function _readFile2(_x4) {\n return _readFile.apply(this, arguments);\n };\n _readDirectory = function _readDirectory3() {\n _readDirectory = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(directory) {\n var dirReader, entries, results, n, i;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n dirReader = directory.createReader();\n entries = [];\n case 2:\n if (!true) {\n _context2.next = 12;\n break;\n }\n _context2.next = 5;\n return new Promise(function (resolve) {\n dirReader.readEntries(resolve, function () {\n return resolve([]);\n });\n });\n case 5:\n results = _context2.sent;\n n = results.length;\n if (n) {\n _context2.next = 9;\n break;\n }\n return _context2.abrupt(\"break\", 12);\n case 9:\n for (i = 0; i < n; i++) {\n entries.push(results[i]);\n }\n _context2.next = 2;\n break;\n case 12:\n return _context2.abrupt(\"return\", entries);\n case 13:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }));\n return _readDirectory.apply(this, arguments);\n };\n readDirectory = function _readDirectory2(_x3) {\n return _readDirectory.apply(this, arguments);\n };\n flattenFileList = [];\n progressFileList = [];\n files.forEach(function (file) {\n return progressFileList.push(file.webkitGetAsEntry());\n });\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n _traverseFileTree = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(item, path) {\n var _file, entries;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n if (item) {\n _context.next = 2;\n break;\n }\n return _context.abrupt(\"return\");\n case 2:\n // eslint-disable-next-line no-param-reassign\n item.path = path || '';\n if (!item.isFile) {\n _context.next = 10;\n break;\n }\n _context.next = 6;\n return readFile(item);\n case 6:\n _file = _context.sent;\n if (_file) {\n flattenFileList.push(_file);\n }\n _context.next = 15;\n break;\n case 10:\n if (!item.isDirectory) {\n _context.next = 15;\n break;\n }\n _context.next = 13;\n return readDirectory(item);\n case 13:\n entries = _context.sent;\n progressFileList.push.apply(progressFileList, _toConsumableArray(entries));\n case 15:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function _traverseFileTree(_x5, _x6) {\n return _ref2.apply(this, arguments);\n };\n }();\n wipIndex = 0;\n case 9:\n if (!(wipIndex < progressFileList.length)) {\n _context4.next = 15;\n break;\n }\n _context4.next = 12;\n return _traverseFileTree(progressFileList[wipIndex]);\n case 12:\n wipIndex++;\n _context4.next = 9;\n break;\n case 15:\n return _context4.abrupt(\"return\", flattenFileList);\n case 16:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return function traverseFileTree(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\nexport default traverseFileTree;","var now = +new Date();\nvar index = 0;\nexport default function uid() {\n // eslint-disable-next-line no-plusplus\n return \"rc-upload-\".concat(now, \"-\").concat(++index);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"component\", \"prefixCls\", \"className\", \"classNames\", \"disabled\", \"id\", \"name\", \"style\", \"styles\", \"multiple\", \"accept\", \"capture\", \"children\", \"directory\", \"openFileDialogOnClick\", \"onMouseEnter\", \"onMouseLeave\", \"hasControlInside\"];\n/* eslint react/no-is-mounted:0,react/sort-comp:0,react/prop-types:0 */\nimport clsx from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport React, { Component } from 'react';\nimport attrAccept from \"./attr-accept\";\nimport defaultRequest from \"./request\";\nimport traverseFileTree from \"./traverseFileTree\";\nimport getUid from \"./uid\";\nvar AjaxUploader = /*#__PURE__*/function (_Component) {\n _inherits(AjaxUploader, _Component);\n var _super = _createSuper(AjaxUploader);\n function AjaxUploader() {\n var _this;\n _classCallCheck(this, AjaxUploader);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n uid: getUid()\n });\n _defineProperty(_assertThisInitialized(_this), \"reqs\", {});\n _defineProperty(_assertThisInitialized(_this), \"fileInput\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"_isMounted\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"onChange\", function (e) {\n var _this$props = _this.props,\n accept = _this$props.accept,\n directory = _this$props.directory;\n var files = e.target.files;\n var acceptedFiles = _toConsumableArray(files).filter(function (file) {\n return !directory || attrAccept(file, accept);\n });\n _this.uploadFiles(acceptedFiles);\n _this.reset();\n });\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var el = _this.fileInput;\n if (!el) {\n return;\n }\n var target = event.target;\n var onClick = _this.props.onClick;\n if (target && target.tagName === 'BUTTON') {\n var parent = el.parentNode;\n parent.focus();\n target.blur();\n }\n el.click();\n if (onClick) {\n onClick(event);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onKeyDown\", function (e) {\n if (e.key === 'Enter') {\n _this.onClick(e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"onFileDrop\", /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(e) {\n var multiple, files, _files;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n multiple = _this.props.multiple;\n e.preventDefault();\n if (!(e.type === 'dragover')) {\n _context.next = 4;\n break;\n }\n return _context.abrupt(\"return\");\n case 4:\n if (!_this.props.directory) {\n _context.next = 11;\n break;\n }\n _context.next = 7;\n return traverseFileTree(Array.prototype.slice.call(e.dataTransfer.items), function (_file) {\n return attrAccept(_file, _this.props.accept);\n });\n case 7:\n files = _context.sent;\n _this.uploadFiles(files);\n _context.next = 14;\n break;\n case 11:\n _files = _toConsumableArray(e.dataTransfer.files).filter(function (file) {\n return attrAccept(file, _this.props.accept);\n });\n if (multiple === false) {\n _files = _files.slice(0, 1);\n }\n _this.uploadFiles(_files);\n case 14:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }());\n _defineProperty(_assertThisInitialized(_this), \"uploadFiles\", function (files) {\n var originFiles = _toConsumableArray(files);\n var postFiles = originFiles.map(function (file) {\n // eslint-disable-next-line no-param-reassign\n file.uid = getUid();\n return _this.processFile(file, originFiles);\n });\n\n // Batch upload files\n Promise.all(postFiles).then(function (fileList) {\n var onBatchStart = _this.props.onBatchStart;\n onBatchStart === null || onBatchStart === void 0 || onBatchStart(fileList.map(function (_ref2) {\n var origin = _ref2.origin,\n parsedFile = _ref2.parsedFile;\n return {\n file: origin,\n parsedFile: parsedFile\n };\n }));\n fileList.filter(function (file) {\n return file.parsedFile !== null;\n }).forEach(function (file) {\n _this.post(file);\n });\n });\n });\n /**\n * Process file before upload. When all the file is ready, we start upload.\n */\n _defineProperty(_assertThisInitialized(_this), \"processFile\", /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(file, fileList) {\n var beforeUpload, transformedFile, action, mergedAction, data, mergedData, parsedData, parsedFile, mergedParsedFile;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n beforeUpload = _this.props.beforeUpload;\n transformedFile = file;\n if (!beforeUpload) {\n _context2.next = 14;\n break;\n }\n _context2.prev = 3;\n _context2.next = 6;\n return beforeUpload(file, fileList);\n case 6:\n transformedFile = _context2.sent;\n _context2.next = 12;\n break;\n case 9:\n _context2.prev = 9;\n _context2.t0 = _context2[\"catch\"](3);\n // Rejection will also trade as false\n transformedFile = false;\n case 12:\n if (!(transformedFile === false)) {\n _context2.next = 14;\n break;\n }\n return _context2.abrupt(\"return\", {\n origin: file,\n parsedFile: null,\n action: null,\n data: null\n });\n case 14:\n // Get latest action\n action = _this.props.action;\n if (!(typeof action === 'function')) {\n _context2.next = 21;\n break;\n }\n _context2.next = 18;\n return action(file);\n case 18:\n mergedAction = _context2.sent;\n _context2.next = 22;\n break;\n case 21:\n mergedAction = action;\n case 22:\n // Get latest data\n data = _this.props.data;\n if (!(typeof data === 'function')) {\n _context2.next = 29;\n break;\n }\n _context2.next = 26;\n return data(file);\n case 26:\n mergedData = _context2.sent;\n _context2.next = 30;\n break;\n case 29:\n mergedData = data;\n case 30:\n parsedData =\n // string type is from legacy `transformFile`.\n // Not sure if this will work since no related test case works with it\n (_typeof(transformedFile) === 'object' || typeof transformedFile === 'string') && transformedFile ? transformedFile : file;\n if (parsedData instanceof File) {\n parsedFile = parsedData;\n } else {\n parsedFile = new File([parsedData], file.name, {\n type: file.type\n });\n }\n mergedParsedFile = parsedFile;\n mergedParsedFile.uid = file.uid;\n return _context2.abrupt(\"return\", {\n origin: file,\n data: mergedData,\n parsedFile: mergedParsedFile,\n action: mergedAction\n });\n case 35:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[3, 9]]);\n }));\n return function (_x2, _x3) {\n return _ref3.apply(this, arguments);\n };\n }());\n _defineProperty(_assertThisInitialized(_this), \"saveFileInput\", function (node) {\n _this.fileInput = node;\n });\n return _this;\n }\n _createClass(AjaxUploader, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._isMounted = true;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._isMounted = false;\n this.abort();\n }\n }, {\n key: \"post\",\n value: function post(_ref4) {\n var _this2 = this;\n var data = _ref4.data,\n origin = _ref4.origin,\n action = _ref4.action,\n parsedFile = _ref4.parsedFile;\n if (!this._isMounted) {\n return;\n }\n var _this$props2 = this.props,\n onStart = _this$props2.onStart,\n customRequest = _this$props2.customRequest,\n name = _this$props2.name,\n headers = _this$props2.headers,\n withCredentials = _this$props2.withCredentials,\n method = _this$props2.method;\n var uid = origin.uid;\n var request = customRequest || defaultRequest;\n var requestOption = {\n action: action,\n filename: name,\n data: data,\n file: parsedFile,\n headers: headers,\n withCredentials: withCredentials,\n method: method || 'post',\n onProgress: function onProgress(e) {\n var onProgress = _this2.props.onProgress;\n onProgress === null || onProgress === void 0 || onProgress(e, parsedFile);\n },\n onSuccess: function onSuccess(ret, xhr) {\n var onSuccess = _this2.props.onSuccess;\n onSuccess === null || onSuccess === void 0 || onSuccess(ret, parsedFile, xhr);\n delete _this2.reqs[uid];\n },\n onError: function onError(err, ret) {\n var onError = _this2.props.onError;\n onError === null || onError === void 0 || onError(err, ret, parsedFile);\n delete _this2.reqs[uid];\n }\n };\n onStart(origin);\n this.reqs[uid] = request(requestOption);\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.setState({\n uid: getUid()\n });\n }\n }, {\n key: \"abort\",\n value: function abort(file) {\n var reqs = this.reqs;\n if (file) {\n var uid = file.uid ? file.uid : file;\n if (reqs[uid] && reqs[uid].abort) {\n reqs[uid].abort();\n }\n delete reqs[uid];\n } else {\n Object.keys(reqs).forEach(function (uid) {\n if (reqs[uid] && reqs[uid].abort) {\n reqs[uid].abort();\n }\n delete reqs[uid];\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n Tag = _this$props3.component,\n prefixCls = _this$props3.prefixCls,\n className = _this$props3.className,\n _this$props3$classNam = _this$props3.classNames,\n classNames = _this$props3$classNam === void 0 ? {} : _this$props3$classNam,\n disabled = _this$props3.disabled,\n id = _this$props3.id,\n name = _this$props3.name,\n style = _this$props3.style,\n _this$props3$styles = _this$props3.styles,\n styles = _this$props3$styles === void 0 ? {} : _this$props3$styles,\n multiple = _this$props3.multiple,\n accept = _this$props3.accept,\n capture = _this$props3.capture,\n children = _this$props3.children,\n directory = _this$props3.directory,\n openFileDialogOnClick = _this$props3.openFileDialogOnClick,\n onMouseEnter = _this$props3.onMouseEnter,\n onMouseLeave = _this$props3.onMouseLeave,\n hasControlInside = _this$props3.hasControlInside,\n otherProps = _objectWithoutProperties(_this$props3, _excluded);\n var cls = clsx(_defineProperty(_defineProperty(_defineProperty({}, prefixCls, true), \"\".concat(prefixCls, \"-disabled\"), disabled), className, className));\n // because input don't have directory/webkitdirectory type declaration\n var dirProps = directory ? {\n directory: 'directory',\n webkitdirectory: 'webkitdirectory'\n } : {};\n var events = disabled ? {} : {\n onClick: openFileDialogOnClick ? this.onClick : function () {},\n onKeyDown: openFileDialogOnClick ? this.onKeyDown : function () {},\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onDrop: this.onFileDrop,\n onDragOver: this.onFileDrop,\n tabIndex: hasControlInside ? undefined : '0'\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({}, events, {\n className: cls,\n role: hasControlInside ? undefined : 'button',\n style: style\n }), /*#__PURE__*/React.createElement(\"input\", _extends({}, pickAttrs(otherProps, {\n aria: true,\n data: true\n }), {\n id: id\n /**\n * https://github.com/ant-design/ant-design/issues/50643,\n * https://github.com/react-component/upload/pull/575#issuecomment-2320646552\n */,\n name: name,\n disabled: disabled,\n type: \"file\",\n ref: this.saveFileInput,\n onClick: function onClick(e) {\n return e.stopPropagation();\n } // https://github.com/ant-design/ant-design/issues/19948\n ,\n key: this.state.uid,\n style: _objectSpread({\n display: 'none'\n }, styles.input),\n className: classNames.input,\n accept: accept\n }, dirProps, {\n multiple: multiple,\n onChange: this.onChange\n }, capture != null ? {\n capture: capture\n } : {})), children);\n }\n }]);\n return AjaxUploader;\n}(Component);\nexport default AjaxUploader;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n/* eslint react/prop-types:0 */\nimport React, { Component } from 'react';\nimport AjaxUpload from \"./AjaxUploader\";\nfunction empty() {}\nvar Upload = /*#__PURE__*/function (_Component) {\n _inherits(Upload, _Component);\n var _super = _createSuper(Upload);\n function Upload() {\n var _this;\n _classCallCheck(this, Upload);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"uploader\", void 0);\n _defineProperty(_assertThisInitialized(_this), \"saveUploader\", function (node) {\n _this.uploader = node;\n });\n return _this;\n }\n _createClass(Upload, [{\n key: \"abort\",\n value: function abort(file) {\n this.uploader.abort(file);\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(AjaxUpload, _extends({}, this.props, {\n ref: this.saveUploader\n }));\n }\n }]);\n return Upload;\n}(Component);\n_defineProperty(Upload, \"defaultProps\", {\n component: 'span',\n prefixCls: 'rc-upload',\n data: {},\n headers: {},\n name: 'file',\n multipart: false,\n onStart: empty,\n onError: empty,\n onSuccess: empty,\n multiple: false,\n beforeUpload: null,\n customRequest: null,\n withCredentials: false,\n openFileDialogOnClick: true,\n hasControlInside: false\n});\nexport default Upload;","import Upload from \"./Upload\";\nexport default Upload;","import { unit } from '@ant-design/cssinjs';\nconst genDraggerStyle = token => {\n const {\n componentCls,\n iconCls\n } = token;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-drag`]: {\n position: 'relative',\n width: '100%',\n height: '100%',\n textAlign: 'center',\n background: token.colorFillAlter,\n border: `${unit(token.lineWidth)} dashed ${token.colorBorder}`,\n borderRadius: token.borderRadiusLG,\n cursor: 'pointer',\n transition: `border-color ${token.motionDurationSlow}`,\n [componentCls]: {\n padding: token.padding\n },\n [`${componentCls}-btn`]: {\n display: 'table',\n width: '100%',\n height: '100%',\n outline: 'none',\n borderRadius: token.borderRadiusLG,\n '&:focus-visible': {\n outline: `${unit(token.lineWidthFocus)} solid ${token.colorPrimaryBorder}`\n }\n },\n [`${componentCls}-drag-container`]: {\n display: 'table-cell',\n verticalAlign: 'middle'\n },\n [`\n &:not(${componentCls}-disabled):hover,\n &-hover:not(${componentCls}-disabled)\n `]: {\n borderColor: token.colorPrimaryHover\n },\n [`p${componentCls}-drag-icon`]: {\n marginBottom: token.margin,\n [iconCls]: {\n color: token.colorPrimary,\n fontSize: token.uploadThumbnailSize\n }\n },\n [`p${componentCls}-text`]: {\n margin: `0 0 ${unit(token.marginXXS)}`,\n color: token.colorTextHeading,\n fontSize: token.fontSizeLG\n },\n [`p${componentCls}-hint`]: {\n color: token.colorTextDescription,\n fontSize: token.fontSize\n },\n // ===================== Disabled =====================\n [`&${componentCls}-disabled`]: {\n [`p${componentCls}-drag-icon ${iconCls},\n p${componentCls}-text,\n p${componentCls}-hint\n `]: {\n color: token.colorTextDisabled\n }\n }\n }\n }\n };\n};\nexport default genDraggerStyle;","import { unit } from '@ant-design/cssinjs';\nimport { clearFix, textEllipsis } from '../../style';\nconst genListStyle = token => {\n const {\n componentCls,\n iconCls,\n fontSize,\n lineHeight,\n calc\n } = token;\n const itemCls = `${componentCls}-list-item`;\n const actionsCls = `${itemCls}-actions`;\n const actionCls = `${itemCls}-action`;\n return {\n [`${componentCls}-wrapper`]: {\n [`${componentCls}-list`]: Object.assign(Object.assign({}, clearFix()), {\n lineHeight: token.lineHeight,\n [itemCls]: {\n position: 'relative',\n height: calc(token.lineHeight).mul(fontSize).equal(),\n marginTop: token.marginXS,\n fontSize,\n display: 'flex',\n alignItems: 'center',\n transition: `background-color ${token.motionDurationSlow}`,\n borderRadius: token.borderRadiusSM,\n '&:hover': {\n backgroundColor: token.controlItemBgHover\n },\n [`${itemCls}-name`]: Object.assign(Object.assign({}, textEllipsis), {\n padding: `0 ${unit(token.paddingXS)}`,\n lineHeight,\n flex: 'auto',\n transition: `all ${token.motionDurationSlow}`\n }),\n [actionsCls]: {\n whiteSpace: 'nowrap',\n [actionCls]: {\n opacity: 0\n },\n [iconCls]: {\n color: token.actionsColor,\n transition: `all ${token.motionDurationSlow}`\n },\n [`\n ${actionCls}:focus-visible,\n &.picture ${actionCls}\n `]: {\n opacity: 1\n }\n },\n [`${componentCls}-icon ${iconCls}`]: {\n color: token.colorTextDescription,\n fontSize\n },\n [`${itemCls}-progress`]: {\n position: 'absolute',\n bottom: token.calc(token.uploadProgressOffset).mul(-1).equal(),\n width: '100%',\n paddingInlineStart: calc(fontSize).add(token.paddingXS).equal(),\n fontSize,\n lineHeight: 0,\n pointerEvents: 'none',\n '> div': {\n margin: 0\n }\n }\n },\n [`${itemCls}:hover ${actionCls}`]: {\n opacity: 1\n },\n [`${itemCls}-error`]: {\n color: token.colorError,\n [`${itemCls}-name, ${componentCls}-icon ${iconCls}`]: {\n color: token.colorError\n },\n [actionsCls]: {\n [`${iconCls}, ${iconCls}:hover`]: {\n color: token.colorError\n },\n [actionCls]: {\n opacity: 1\n }\n }\n },\n [`${componentCls}-list-item-container`]: {\n transition: `opacity ${token.motionDurationSlow}, height ${token.motionDurationSlow}`,\n // For smooth removing animation\n '&::before': {\n display: 'table',\n width: 0,\n height: 0,\n content: '\"\"'\n }\n }\n })\n }\n };\n};\nexport default genListStyle;","import { Keyframes } from '@ant-design/cssinjs';\nimport { initFadeMotion } from '../../style/motion';\n// =========================== Motion ===========================\nconst genMotionStyle = token => {\n const {\n componentCls\n } = token;\n const uploadAnimateInlineIn = new Keyframes('uploadAnimateInlineIn', {\n from: {\n width: 0,\n height: 0,\n padding: 0,\n opacity: 0,\n margin: token.calc(token.marginXS).div(-2).equal()\n }\n });\n const uploadAnimateInlineOut = new Keyframes('uploadAnimateInlineOut', {\n to: {\n width: 0,\n height: 0,\n padding: 0,\n opacity: 0,\n margin: token.calc(token.marginXS).div(-2).equal()\n }\n });\n const inlineCls = `${componentCls}-animate-inline`;\n return [{\n [`${componentCls}-wrapper`]: {\n [`${inlineCls}-appear, ${inlineCls}-enter, ${inlineCls}-leave`]: {\n animationDuration: token.motionDurationSlow,\n animationTimingFunction: token.motionEaseInOutCirc,\n animationFillMode: 'forwards'\n },\n [`${inlineCls}-appear, ${inlineCls}-enter`]: {\n animationName: uploadAnimateInlineIn\n },\n [`${inlineCls}-leave`]: {\n animationName: uploadAnimateInlineOut\n }\n }\n }, {\n [`${componentCls}-wrapper`]: initFadeMotion(token)\n }, uploadAnimateInlineIn, uploadAnimateInlineOut];\n};\nexport default genMotionStyle;","import { blue } from '@ant-design/colors';\nimport { unit } from '@ant-design/cssinjs';\nimport { clearFix, textEllipsis } from '../../style';\nconst genPictureStyle = token => {\n const {\n componentCls,\n iconCls,\n uploadThumbnailSize,\n uploadProgressOffset,\n calc\n } = token;\n const listCls = `${componentCls}-list`;\n const itemCls = `${listCls}-item`;\n return {\n [`${componentCls}-wrapper`]: {\n // ${listCls} 增加优先级\n [`\n ${listCls}${listCls}-picture,\n ${listCls}${listCls}-picture-card,\n ${listCls}${listCls}-picture-circle\n `]: {\n [itemCls]: {\n position: 'relative',\n height: calc(uploadThumbnailSize).add(calc(token.lineWidth).mul(2)).add(calc(token.paddingXS).mul(2)).equal(),\n padding: token.paddingXS,\n border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadiusLG,\n '&:hover': {\n background: 'transparent'\n },\n [`${itemCls}-thumbnail`]: Object.assign(Object.assign({}, textEllipsis), {\n width: uploadThumbnailSize,\n height: uploadThumbnailSize,\n lineHeight: unit(calc(uploadThumbnailSize).add(token.paddingSM).equal()),\n textAlign: 'center',\n flex: 'none',\n [iconCls]: {\n fontSize: token.fontSizeHeading2,\n color: token.colorPrimary\n },\n img: {\n display: 'block',\n width: '100%',\n height: '100%',\n overflow: 'hidden'\n }\n }),\n [`${itemCls}-progress`]: {\n bottom: uploadProgressOffset,\n width: `calc(100% - ${unit(calc(token.paddingSM).mul(2).equal())})`,\n marginTop: 0,\n paddingInlineStart: calc(uploadThumbnailSize).add(token.paddingXS).equal()\n }\n },\n [`${itemCls}-error`]: {\n borderColor: token.colorError,\n // Adjust the color of the error icon : https://github.com/ant-design/ant-design/pull/24160\n [`${itemCls}-thumbnail ${iconCls}`]: {\n [`svg path[fill='${blue[0]}']`]: {\n fill: token.colorErrorBg\n },\n [`svg path[fill='${blue.primary}']`]: {\n fill: token.colorError\n }\n }\n },\n [`${itemCls}-uploading`]: {\n borderStyle: 'dashed',\n [`${itemCls}-name`]: {\n marginBottom: uploadProgressOffset\n }\n }\n },\n [`${listCls}${listCls}-picture-circle ${itemCls}`]: {\n [`&, &::before, ${itemCls}-thumbnail`]: {\n borderRadius: '50%'\n }\n }\n }\n };\n};\nconst genPictureCardStyle = token => {\n const {\n componentCls,\n iconCls,\n fontSizeLG,\n colorTextLightSolid,\n calc\n } = token;\n const listCls = `${componentCls}-list`;\n const itemCls = `${listCls}-item`;\n const uploadPictureCardSize = token.uploadPicCardSize;\n return {\n [`\n ${componentCls}-wrapper${componentCls}-picture-card-wrapper,\n ${componentCls}-wrapper${componentCls}-picture-circle-wrapper\n `]: Object.assign(Object.assign({}, clearFix()), {\n display: 'block',\n [`${componentCls}${componentCls}-select`]: {\n width: uploadPictureCardSize,\n height: uploadPictureCardSize,\n textAlign: 'center',\n verticalAlign: 'top',\n backgroundColor: token.colorFillAlter,\n border: `${unit(token.lineWidth)} dashed ${token.colorBorder}`,\n borderRadius: token.borderRadiusLG,\n cursor: 'pointer',\n transition: `border-color ${token.motionDurationSlow}`,\n [`> ${componentCls}`]: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n textAlign: 'center'\n },\n [`&:not(${componentCls}-disabled):hover`]: {\n borderColor: token.colorPrimary\n }\n },\n // list\n [`${listCls}${listCls}-picture-card, ${listCls}${listCls}-picture-circle`]: {\n display: 'flex',\n flexWrap: 'wrap',\n '@supports not (gap: 1px)': {\n '& > *': {\n marginBlockEnd: token.marginXS,\n marginInlineEnd: token.marginXS\n }\n },\n '@supports (gap: 1px)': {\n gap: token.marginXS\n },\n [`${listCls}-item-container`]: {\n display: 'inline-block',\n width: uploadPictureCardSize,\n height: uploadPictureCardSize,\n verticalAlign: 'top'\n },\n '&::after': {\n display: 'none'\n },\n '&::before': {\n display: 'none'\n },\n [itemCls]: {\n height: '100%',\n margin: 0,\n '&::before': {\n position: 'absolute',\n zIndex: 1,\n width: `calc(100% - ${unit(calc(token.paddingXS).mul(2).equal())})`,\n height: `calc(100% - ${unit(calc(token.paddingXS).mul(2).equal())})`,\n backgroundColor: token.colorBgMask,\n opacity: 0,\n transition: `all ${token.motionDurationSlow}`,\n content: '\" \"'\n }\n },\n [`${itemCls}:hover`]: {\n [`&::before, ${itemCls}-actions`]: {\n opacity: 1\n }\n },\n [`${itemCls}-actions`]: {\n position: 'absolute',\n insetInlineStart: 0,\n zIndex: 10,\n width: '100%',\n whiteSpace: 'nowrap',\n textAlign: 'center',\n opacity: 0,\n transition: `all ${token.motionDurationSlow}`,\n [`\n ${iconCls}-eye,\n ${iconCls}-download,\n ${iconCls}-delete\n `]: {\n zIndex: 10,\n width: fontSizeLG,\n margin: `0 ${unit(token.marginXXS)}`,\n fontSize: fontSizeLG,\n cursor: 'pointer',\n transition: `all ${token.motionDurationSlow}`,\n color: colorTextLightSolid,\n '&:hover': {\n color: colorTextLightSolid\n },\n svg: {\n verticalAlign: 'baseline'\n }\n }\n },\n [`${itemCls}-thumbnail, ${itemCls}-thumbnail img`]: {\n position: 'static',\n display: 'block',\n width: '100%',\n height: '100%',\n objectFit: 'contain'\n },\n [`${itemCls}-name`]: {\n display: 'none',\n textAlign: 'center'\n },\n [`${itemCls}-file + ${itemCls}-name`]: {\n position: 'absolute',\n bottom: token.margin,\n display: 'block',\n width: `calc(100% - ${unit(calc(token.paddingXS).mul(2).equal())})`\n },\n [`${itemCls}-uploading`]: {\n [`&${itemCls}`]: {\n backgroundColor: token.colorFillAlter\n },\n [`&::before, ${iconCls}-eye, ${iconCls}-download, ${iconCls}-delete`]: {\n display: 'none'\n }\n },\n [`${itemCls}-progress`]: {\n bottom: token.marginXL,\n width: `calc(100% - ${unit(calc(token.paddingXS).mul(2).equal())})`,\n paddingInlineStart: 0\n }\n }\n }),\n [`${componentCls}-wrapper${componentCls}-picture-circle-wrapper`]: {\n [`${componentCls}${componentCls}-select`]: {\n borderRadius: '50%'\n }\n }\n };\n};\nexport { genPictureStyle, genPictureCardStyle };","// =========================== Motion ===========================\nconst genRtlStyle = token => {\n const {\n componentCls\n } = token;\n return {\n [`${componentCls}-rtl`]: {\n direction: 'rtl'\n }\n };\n};\nexport default genRtlStyle;","import { resetComponent } from '../../style';\nimport { genCollapseMotion } from '../../style/motion';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nimport genDraggerStyle from './dragger';\nimport genListStyle from './list';\nimport genMotionStyle from './motion';\nimport { genPictureCardStyle, genPictureStyle } from './picture';\nimport genRtlStyle from './rtl';\nconst genBaseStyle = token => {\n const {\n componentCls,\n colorTextDisabled\n } = token;\n return {\n [`${componentCls}-wrapper`]: Object.assign(Object.assign({}, resetComponent(token)), {\n [componentCls]: {\n outline: 0,\n \"input[type='file']\": {\n cursor: 'pointer'\n }\n },\n [`${componentCls}-select`]: {\n display: 'inline-block'\n },\n [`${componentCls}-hidden`]: {\n display: 'none'\n },\n [`${componentCls}-disabled`]: {\n color: colorTextDisabled,\n cursor: 'not-allowed'\n }\n })\n };\n};\nexport const prepareComponentToken = token => ({\n actionsColor: token.colorTextDescription\n});\n// ============================== Export ==============================\nexport default genStyleHooks('Upload', token => {\n const {\n fontSizeHeading3,\n fontHeight,\n lineWidth,\n controlHeightLG,\n calc\n } = token;\n const uploadToken = mergeToken(token, {\n uploadThumbnailSize: calc(fontSizeHeading3).mul(2).equal(),\n uploadProgressOffset: calc(calc(fontHeight).div(2)).add(lineWidth).equal(),\n uploadPicCardSize: calc(controlHeightLG).mul(2.55).equal()\n });\n return [genBaseStyle(uploadToken), genDraggerStyle(uploadToken), genPictureStyle(uploadToken), genPictureCardStyle(uploadToken), genListStyle(uploadToken), genMotionStyle(uploadToken), genRtlStyle(uploadToken), genCollapseMotion(uploadToken)];\n}, prepareComponentToken);","// This icon file is generated automatically.\nvar FileTwoTone = { \"icon\": function render(primaryColor, secondaryColor) { return { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M534 352V136H232v752h560V394H576a42 42 0 01-42-42z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z\", \"fill\": primaryColor } }] }; }, \"name\": \"file\", \"theme\": \"twotone\" };\nexport default FileTwoTone;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FileTwoToneSvg from \"@ant-design/icons-svg/es/asn/FileTwoTone\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FileTwoTone = function FileTwoTone(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FileTwoToneSvg\n }));\n};\n\n/**![file](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUzNCAzNTJWMTM2SDIzMnY3NTJoNTYwVjM5NEg1NzZhNDIgNDIgMCAwMS00Mi00MnoiIGZpbGw9IiNlNmY0ZmYiIC8+PHBhdGggZD0iTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTYwMiAxMzcuOEw3OTAuMiAzMjZINjAyVjEzNy44ek03OTIgODg4SDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoiIGZpbGw9IiMxNjc3ZmYiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(FileTwoTone);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'FileTwoTone';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar PaperClipOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 00174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z\" } }] }, \"name\": \"paper-clip\", \"theme\": \"outlined\" };\nexport default PaperClipOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport PaperClipOutlinedSvg from \"@ant-design/icons-svg/es/asn/PaperClipOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar PaperClipOutlined = function PaperClipOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: PaperClipOutlinedSvg\n }));\n};\n\n/**![paper-clip](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTc3OS4zIDE5Ni42Yy05NC4yLTk0LjItMjQ3LjYtOTQuMi0zNDEuNyAwbC0yNjEgMjYwLjhjLTEuNyAxLjctMi42IDQtMi42IDYuNHMuOSA0LjcgMi42IDYuNGwzNi45IDM2LjlhOSA5IDAgMDAxMi43IDBsMjYxLTI2MC44YzMyLjQtMzIuNCA3NS41LTUwLjIgMTIxLjMtNTAuMnM4OC45IDE3LjggMTIxLjIgNTAuMmMzMi40IDMyLjQgNTAuMiA3NS41IDUwLjIgMTIxLjIgMCA0NS44LTE3LjggODguOC01MC4yIDEyMS4ybC0yNjYgMjY1LjktNDMuMSA0My4xYy00MC4zIDQwLjMtMTA1LjggNDAuMy0xNDYuMSAwLTE5LjUtMTkuNS0zMC4yLTQ1LjQtMzAuMi03M3MxMC43LTUzLjUgMzAuMi03M2wyNjMuOS0yNjMuOGM2LjctNi42IDE1LjUtMTAuMyAyNC45LTEwLjNoLjFjOS40IDAgMTguMSAzLjcgMjQuNyAxMC4zIDYuNyA2LjcgMTAuMyAxNS41IDEwLjMgMjQuOSAwIDkuMy0zLjcgMTguMS0xMC4zIDI0LjdMMzcyLjQgNjUzYy0xLjcgMS43LTIuNiA0LTIuNiA2LjRzLjkgNC43IDIuNiA2LjRsMzYuOSAzNi45YTkgOSAwIDAwMTIuNyAwbDIxNS42LTIxNS42YzE5LjktMTkuOSAzMC44LTQ2LjMgMzAuOC03NC40cy0xMS01NC42LTMwLjgtNzQuNGMtNDEuMS00MS4xLTEwNy45LTQxLTE0OSAwTDQ2MyAzNjQgMjI0LjggNjAyLjFBMTcyLjIyIDE3Mi4yMiAwIDAwMTc0IDcyNC44YzAgNDYuMyAxOC4xIDg5LjggNTAuOCAxMjIuNSAzMy45IDMzLjggNzguMyA1MC43IDEyMi43IDUwLjcgNDQuNCAwIDg4LjgtMTYuOSAxMjIuNi01MC43bDMwOS4yLTMwOUM4MjQuOCA0OTIuNyA4NTAgNDMyIDg1MCAzNjcuNWMuMS02NC42LTI1LjEtMTI1LjMtNzAuNy0xNzAuOXoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(PaperClipOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'PaperClipOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar PictureTwoTone = { \"icon\": function render(primaryColor, secondaryColor) { return { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2z\", \"fill\": primaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M424.6 765.8l-150.1-178L136 752.1V792h752v-30.4L658.1 489z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M136 652.7l132.4-157c3.2-3.8 9-3.8 12.2 0l144 170.7L652 396.8c3.2-3.8 9-3.8 12.2 0L888 662.2V232H136v420.7zM304 280a88 88 0 110 176 88 88 0 010-176z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M276 368a28 28 0 1056 0 28 28 0 10-56 0z\", \"fill\": secondaryColor } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z\", \"fill\": primaryColor } }] }; }, \"name\": \"picture\", \"theme\": \"twotone\" };\nexport default PictureTwoTone;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport PictureTwoToneSvg from \"@ant-design/icons-svg/es/asn/PictureTwoTone\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar PictureTwoTone = function PictureTwoTone(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: PictureTwoToneSvg\n }));\n};\n\n/**![picture](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkyOCAxNjBIOTZjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjY0MGMwIDE3LjcgMTQuMyAzMiAzMiAzMmg4MzJjMTcuNyAwIDMyLTE0LjMgMzItMzJWMTkyYzAtMTcuNy0xNC4zLTMyLTMyLTMyem0tNDAgNjMySDEzNnYtMzkuOWwxMzguNS0xNjQuMyAxNTAuMSAxNzhMNjU4LjEgNDg5IDg4OCA3NjEuNlY3OTJ6bTAtMTI5LjhMNjY0LjIgMzk2LjhjLTMuMi0zLjgtOS0zLjgtMTIuMiAwTDQyNC42IDY2Ni40bC0xNDQtMTcwLjdjLTMuMi0zLjgtOS0zLjgtMTIuMiAwTDEzNiA2NTIuN1YyMzJoNzUydjQzMC4yeiIgZmlsbD0iIzE2NzdmZiIgLz48cGF0aCBkPSJNNDI0LjYgNzY1LjhsLTE1MC4xLTE3OEwxMzYgNzUyLjFWNzkyaDc1MnYtMzAuNEw2NTguMSA0ODl6IiBmaWxsPSIjZTZmNGZmIiAvPjxwYXRoIGQ9Ik0xMzYgNjUyLjdsMTMyLjQtMTU3YzMuMi0zLjggOS0zLjggMTIuMiAwbDE0NCAxNzAuN0w2NTIgMzk2LjhjMy4yLTMuOCA5LTMuOCAxMi4yIDBMODg4IDY2Mi4yVjIzMkgxMzZ2NDIwLjd6TTMwNCAyODBhODggODggMCAxMTAgMTc2IDg4IDg4IDAgMDEwLTE3NnoiIGZpbGw9IiNlNmY0ZmYiIC8+PHBhdGggZD0iTTI3NiAzNjhhMjggMjggMCAxMDU2IDAgMjggMjggMCAxMC01NiAweiIgZmlsbD0iI2U2ZjRmZiIgLz48cGF0aCBkPSJNMzA0IDQ1NmE4OCA4OCAwIDEwMC0xNzYgODggODggMCAwMDAgMTc2em0wLTExNmMxNS41IDAgMjggMTIuNSAyOCAyOHMtMTIuNSAyOC0yOCAyOC0yOC0xMi41LTI4LTI4IDEyLjUtMjggMjgtMjh6IiBmaWxsPSIjMTY3N2ZmIiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(PictureTwoTone);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'PictureTwoTone';\n}\nexport default RefIcon;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nexport function file2Obj(file) {\n return Object.assign(Object.assign({}, file), {\n lastModified: file.lastModified,\n lastModifiedDate: file.lastModifiedDate,\n name: file.name,\n size: file.size,\n type: file.type,\n uid: file.uid,\n percent: 0,\n originFileObj: file\n });\n}\n/** Upload fileList. Replace file if exist or just push into it. */\nexport function updateFileList(file, fileList) {\n const nextFileList = _toConsumableArray(fileList);\n const fileIndex = nextFileList.findIndex(_ref => {\n let {\n uid\n } = _ref;\n return uid === file.uid;\n });\n if (fileIndex === -1) {\n nextFileList.push(file);\n } else {\n nextFileList[fileIndex] = file;\n }\n return nextFileList;\n}\nexport function getFileItem(file, fileList) {\n const matchKey = file.uid !== undefined ? 'uid' : 'name';\n return fileList.filter(item => item[matchKey] === file[matchKey])[0];\n}\nexport function removeFileItem(file, fileList) {\n const matchKey = file.uid !== undefined ? 'uid' : 'name';\n const removed = fileList.filter(item => item[matchKey] !== file[matchKey]);\n if (removed.length === fileList.length) {\n return null;\n }\n return removed;\n}\n// ==================== Default Image Preview ====================\nconst extname = function () {\n let url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n const temp = url.split('/');\n const filename = temp[temp.length - 1];\n const filenameWithoutSuffix = filename.split(/#|\\?/)[0];\n return (/\\.[^./\\\\]*$/.exec(filenameWithoutSuffix) || [''])[0];\n};\nconst isImageFileType = type => type.indexOf('image/') === 0;\nexport const isImageUrl = file => {\n if (file.type && !file.thumbUrl) {\n return isImageFileType(file.type);\n }\n const url = file.thumbUrl || file.url || '';\n const extension = extname(url);\n if (/^data:image\\//.test(url) || /(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico|heic|heif)$/i.test(extension)) {\n return true;\n }\n if (/^data:/.test(url)) {\n // other file types of base64\n return false;\n }\n if (extension) {\n // other file types which have extension\n return false;\n }\n return true;\n};\nconst MEASURE_SIZE = 200;\nexport function previewImage(file) {\n return new Promise(resolve => {\n if (!file.type || !isImageFileType(file.type)) {\n resolve('');\n return;\n }\n const canvas = document.createElement('canvas');\n canvas.width = MEASURE_SIZE;\n canvas.height = MEASURE_SIZE;\n canvas.style.cssText = `position: fixed; left: 0; top: 0; width: ${MEASURE_SIZE}px; height: ${MEASURE_SIZE}px; z-index: 9999; display: none;`;\n document.body.appendChild(canvas);\n const ctx = canvas.getContext('2d');\n const img = new Image();\n img.onload = () => {\n const {\n width,\n height\n } = img;\n let drawWidth = MEASURE_SIZE;\n let drawHeight = MEASURE_SIZE;\n let offsetX = 0;\n let offsetY = 0;\n if (width > height) {\n drawHeight = height * (MEASURE_SIZE / width);\n offsetY = -(drawHeight - drawWidth) / 2;\n } else {\n drawWidth = width * (MEASURE_SIZE / height);\n offsetX = -(drawWidth - drawHeight) / 2;\n }\n ctx.drawImage(img, offsetX, offsetY, drawWidth, drawHeight);\n const dataURL = canvas.toDataURL();\n document.body.removeChild(canvas);\n window.URL.revokeObjectURL(img.src);\n resolve(dataURL);\n };\n img.crossOrigin = 'anonymous';\n if (file.type.startsWith('image/svg+xml')) {\n const reader = new FileReader();\n reader.onload = () => {\n if (reader.result && typeof reader.result === 'string') {\n img.src = reader.result;\n }\n };\n reader.readAsDataURL(file);\n } else if (file.type.startsWith('image/gif')) {\n const reader = new FileReader();\n reader.onload = () => {\n if (reader.result) {\n resolve(reader.result);\n }\n };\n reader.readAsDataURL(file);\n } else {\n img.src = window.URL.createObjectURL(file);\n }\n });\n}","import { useRef, useEffect } from 'react';\nexport var defaultProps = {\n percent: 0,\n prefixCls: 'rc-progress',\n strokeColor: '#2db7f5',\n strokeLinecap: 'round',\n strokeWidth: 1,\n trailColor: '#D9D9D9',\n trailWidth: 1,\n gapPosition: 'bottom'\n};\nexport var useTransitionDuration = function useTransitionDuration() {\n var pathsRef = useRef([]);\n var prevTimeStamp = useRef(null);\n useEffect(function () {\n var now = Date.now();\n var updated = false;\n pathsRef.current.forEach(function (path) {\n if (!path) {\n return;\n }\n updated = true;\n var pathStyle = path.style;\n pathStyle.transitionDuration = '.3s, .3s, .3s, .06s';\n if (prevTimeStamp.current && now - prevTimeStamp.current < 100) {\n pathStyle.transitionDuration = '0s, 0s';\n }\n });\n if (updated) {\n prevTimeStamp.current = Date.now();\n }\n });\n return pathsRef.current;\n};","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nvar uuid = 0;\n\n/** Is client side and not jsdom */\nexport var isBrowserClient = process.env.NODE_ENV !== 'test' && canUseDom();\n\n/** Get unique id for accessibility usage */\nfunction getUUID() {\n var retId;\n\n // Test never reach\n /* istanbul ignore if */\n if (isBrowserClient) {\n retId = uuid;\n uuid += 1;\n } else {\n retId = 'TEST_OR_SSR';\n }\n return retId;\n}\nexport default (function (id) {\n // Inner id for accessibility usage. Only work in client side\n var _React$useState = React.useState(),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n innerId = _React$useState2[0],\n setInnerId = _React$useState2[1];\n React.useEffect(function () {\n setInnerId(\"rc_progress_\".concat(getUUID()));\n }, []);\n return id || innerId;\n});","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport * as React from 'react';\nvar Block = function Block(_ref) {\n var bg = _ref.bg,\n children = _ref.children;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: {\n width: '100%',\n height: '100%',\n background: bg\n }\n }, children);\n};\nfunction getPtgColors(color, scale) {\n return Object.keys(color).map(function (key) {\n var parsedKey = parseFloat(key);\n var ptgKey = \"\".concat(Math.floor(parsedKey * scale), \"%\");\n return \"\".concat(color[key], \" \").concat(ptgKey);\n });\n}\nvar PtgCircle = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var prefixCls = props.prefixCls,\n color = props.color,\n gradientId = props.gradientId,\n radius = props.radius,\n circleStyleForStack = props.style,\n ptg = props.ptg,\n strokeLinecap = props.strokeLinecap,\n strokeWidth = props.strokeWidth,\n size = props.size,\n gapDegree = props.gapDegree;\n var isGradient = color && _typeof(color) === 'object';\n var stroke = isGradient ? \"#FFF\" : undefined;\n\n // ========================== Circle ==========================\n var halfSize = size / 2;\n var circleNode = /*#__PURE__*/React.createElement(\"circle\", {\n className: \"\".concat(prefixCls, \"-circle-path\"),\n r: radius,\n cx: halfSize,\n cy: halfSize,\n stroke: stroke,\n strokeLinecap: strokeLinecap,\n strokeWidth: strokeWidth,\n opacity: ptg === 0 ? 0 : 1,\n style: circleStyleForStack,\n ref: ref\n });\n\n // ========================== Render ==========================\n if (!isGradient) {\n return circleNode;\n }\n var maskId = \"\".concat(gradientId, \"-conic\");\n var fromDeg = gapDegree ? \"\".concat(180 + gapDegree / 2, \"deg\") : '0deg';\n var conicColors = getPtgColors(color, (360 - gapDegree) / 360);\n var linearColors = getPtgColors(color, 1);\n var conicColorBg = \"conic-gradient(from \".concat(fromDeg, \", \").concat(conicColors.join(', '), \")\");\n var linearColorBg = \"linear-gradient(to \".concat(gapDegree ? 'bottom' : 'top', \", \").concat(linearColors.join(', '), \")\");\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"mask\", {\n id: maskId\n }, circleNode), /*#__PURE__*/React.createElement(\"foreignObject\", {\n x: 0,\n y: 0,\n width: size,\n height: size,\n mask: \"url(#\".concat(maskId, \")\")\n }, /*#__PURE__*/React.createElement(Block, {\n bg: linearColorBg\n }, /*#__PURE__*/React.createElement(Block, {\n bg: conicColorBg\n }))));\n});\nif (process.env.NODE_ENV !== 'production') {\n PtgCircle.displayName = 'PtgCircle';\n}\nexport default PtgCircle;","export var VIEW_BOX_SIZE = 100;\nexport var getCircleStyle = function getCircleStyle(perimeter, perimeterWithoutGap, offset, percent, rotateDeg, gapDegree, gapPosition, strokeColor, strokeLinecap, strokeWidth) {\n var stepSpace = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : 0;\n var offsetDeg = offset / 100 * 360 * ((360 - gapDegree) / 360);\n var positionDeg = gapDegree === 0 ? 0 : {\n bottom: 0,\n top: 180,\n left: 90,\n right: -90\n }[gapPosition];\n var strokeDashoffset = (100 - percent) / 100 * perimeterWithoutGap;\n // Fix percent accuracy when strokeLinecap is round\n // https://github.com/ant-design/ant-design/issues/35009\n if (strokeLinecap === 'round' && percent !== 100) {\n strokeDashoffset += strokeWidth / 2;\n // when percent is small enough (<= 1%), keep smallest value to avoid it's disappearance\n if (strokeDashoffset >= perimeterWithoutGap) {\n strokeDashoffset = perimeterWithoutGap - 0.01;\n }\n }\n var halfSize = VIEW_BOX_SIZE / 2;\n return {\n stroke: typeof strokeColor === 'string' ? strokeColor : undefined,\n strokeDasharray: \"\".concat(perimeterWithoutGap, \"px \").concat(perimeter),\n strokeDashoffset: strokeDashoffset + stepSpace,\n transform: \"rotate(\".concat(rotateDeg + offsetDeg + positionDeg, \"deg)\"),\n transformOrigin: \"\".concat(halfSize, \"px \").concat(halfSize, \"px\"),\n transition: 'stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s',\n fillOpacity: 0\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"id\", \"prefixCls\", \"steps\", \"strokeWidth\", \"trailWidth\", \"gapDegree\", \"gapPosition\", \"trailColor\", \"strokeLinecap\", \"style\", \"className\", \"strokeColor\", \"percent\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { defaultProps, useTransitionDuration } from \"../common\";\nimport useId from \"../hooks/useId\";\nimport PtgCircle from \"./PtgCircle\";\nimport { VIEW_BOX_SIZE, getCircleStyle } from \"./util\";\nfunction toArray(value) {\n var mergedValue = value !== null && value !== void 0 ? value : [];\n return Array.isArray(mergedValue) ? mergedValue : [mergedValue];\n}\nvar Circle = function Circle(props) {\n var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),\n id = _defaultProps$props.id,\n prefixCls = _defaultProps$props.prefixCls,\n steps = _defaultProps$props.steps,\n strokeWidth = _defaultProps$props.strokeWidth,\n trailWidth = _defaultProps$props.trailWidth,\n _defaultProps$props$g = _defaultProps$props.gapDegree,\n gapDegree = _defaultProps$props$g === void 0 ? 0 : _defaultProps$props$g,\n gapPosition = _defaultProps$props.gapPosition,\n trailColor = _defaultProps$props.trailColor,\n strokeLinecap = _defaultProps$props.strokeLinecap,\n style = _defaultProps$props.style,\n className = _defaultProps$props.className,\n strokeColor = _defaultProps$props.strokeColor,\n percent = _defaultProps$props.percent,\n restProps = _objectWithoutProperties(_defaultProps$props, _excluded);\n var halfSize = VIEW_BOX_SIZE / 2;\n var mergedId = useId(id);\n var gradientId = \"\".concat(mergedId, \"-gradient\");\n var radius = halfSize - strokeWidth / 2;\n var perimeter = Math.PI * 2 * radius;\n var rotateDeg = gapDegree > 0 ? 90 + gapDegree / 2 : -90;\n var perimeterWithoutGap = perimeter * ((360 - gapDegree) / 360);\n var _ref = _typeof(steps) === 'object' ? steps : {\n count: steps,\n gap: 2\n },\n stepCount = _ref.count,\n stepGap = _ref.gap;\n var percentList = toArray(percent);\n var strokeColorList = toArray(strokeColor);\n var gradient = strokeColorList.find(function (color) {\n return color && _typeof(color) === 'object';\n });\n var isConicGradient = gradient && _typeof(gradient) === 'object';\n var mergedStrokeLinecap = isConicGradient ? 'butt' : strokeLinecap;\n var circleStyle = getCircleStyle(perimeter, perimeterWithoutGap, 0, 100, rotateDeg, gapDegree, gapPosition, trailColor, mergedStrokeLinecap, strokeWidth);\n var paths = useTransitionDuration();\n var getStokeList = function getStokeList() {\n var stackPtg = 0;\n return percentList.map(function (ptg, index) {\n var color = strokeColorList[index] || strokeColorList[strokeColorList.length - 1];\n var circleStyleForStack = getCircleStyle(perimeter, perimeterWithoutGap, stackPtg, ptg, rotateDeg, gapDegree, gapPosition, color, mergedStrokeLinecap, strokeWidth);\n stackPtg += ptg;\n return /*#__PURE__*/React.createElement(PtgCircle, {\n key: index,\n color: color,\n ptg: ptg,\n radius: radius,\n prefixCls: prefixCls,\n gradientId: gradientId,\n style: circleStyleForStack,\n strokeLinecap: mergedStrokeLinecap,\n strokeWidth: strokeWidth,\n gapDegree: gapDegree,\n ref: function ref(elem) {\n // https://reactjs.org/docs/refs-and-the-dom.html#callback-refs\n // React will call the ref callback with the DOM element when the component mounts,\n // and call it with `null` when it unmounts.\n // Refs are guaranteed to be up-to-date before componentDidMount or componentDidUpdate fires.\n\n paths[index] = elem;\n },\n size: VIEW_BOX_SIZE\n });\n }).reverse();\n };\n var getStepStokeList = function getStepStokeList() {\n // only show the first percent when pass steps\n var current = Math.round(stepCount * (percentList[0] / 100));\n var stepPtg = 100 / stepCount;\n var stackPtg = 0;\n return new Array(stepCount).fill(null).map(function (_, index) {\n var color = index <= current - 1 ? strokeColorList[0] : trailColor;\n var stroke = color && _typeof(color) === 'object' ? \"url(#\".concat(gradientId, \")\") : undefined;\n var circleStyleForStack = getCircleStyle(perimeter, perimeterWithoutGap, stackPtg, stepPtg, rotateDeg, gapDegree, gapPosition, color, 'butt', strokeWidth, stepGap);\n stackPtg += (perimeterWithoutGap - circleStyleForStack.strokeDashoffset + stepGap) * 100 / perimeterWithoutGap;\n return /*#__PURE__*/React.createElement(\"circle\", {\n key: index,\n className: \"\".concat(prefixCls, \"-circle-path\"),\n r: radius,\n cx: halfSize,\n cy: halfSize,\n stroke: stroke,\n strokeWidth: strokeWidth,\n opacity: 1,\n style: circleStyleForStack,\n ref: function ref(elem) {\n paths[index] = elem;\n }\n });\n });\n };\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n className: classNames(\"\".concat(prefixCls, \"-circle\"), className),\n viewBox: \"0 0 \".concat(VIEW_BOX_SIZE, \" \").concat(VIEW_BOX_SIZE),\n style: style,\n id: id,\n role: \"presentation\"\n }, restProps), !stepCount && /*#__PURE__*/React.createElement(\"circle\", {\n className: \"\".concat(prefixCls, \"-circle-trail\"),\n r: radius,\n cx: halfSize,\n cy: halfSize,\n stroke: trailColor,\n strokeLinecap: mergedStrokeLinecap,\n strokeWidth: trailWidth || strokeWidth,\n style: circleStyle\n }), stepCount ? getStepStokeList() : getStokeList());\n};\nif (process.env.NODE_ENV !== 'production') {\n Circle.displayName = 'Circle';\n}\nexport default Circle;","import { presetPrimaryColors } from '@ant-design/colors';\nexport function validProgress(progress) {\n if (!progress || progress < 0) {\n return 0;\n }\n if (progress > 100) {\n return 100;\n }\n return progress;\n}\nexport function getSuccessPercent(_ref) {\n let {\n success,\n successPercent\n } = _ref;\n let percent = successPercent;\n /** @deprecated Use `percent` instead */\n if (success && 'progress' in success) {\n percent = success.progress;\n }\n if (success && 'percent' in success) {\n percent = success.percent;\n }\n return percent;\n}\nexport const getPercentage = _ref2 => {\n let {\n percent,\n success,\n successPercent\n } = _ref2;\n const realSuccessPercent = validProgress(getSuccessPercent({\n success,\n successPercent\n }));\n return [realSuccessPercent, validProgress(validProgress(percent) - realSuccessPercent)];\n};\nexport const getStrokeColor = _ref3 => {\n let {\n success = {},\n strokeColor\n } = _ref3;\n const {\n strokeColor: successColor\n } = success;\n return [successColor || presetPrimaryColors.green, strokeColor || null];\n};\nexport const getSize = (size, type, extra) => {\n var _a, _b, _c, _d;\n let width = -1;\n let height = -1;\n if (type === 'step') {\n const steps = extra.steps;\n const strokeWidth = extra.strokeWidth;\n if (typeof size === 'string' || typeof size === 'undefined') {\n width = size === 'small' ? 2 : 14;\n height = strokeWidth !== null && strokeWidth !== void 0 ? strokeWidth : 8;\n } else if (typeof size === 'number') {\n [width, height] = [size, size];\n } else {\n [width = 14, height = 8] = Array.isArray(size) ? size : [size.width, size.height];\n }\n width *= steps;\n } else if (type === 'line') {\n const strokeWidth = extra === null || extra === void 0 ? void 0 : extra.strokeWidth;\n if (typeof size === 'string' || typeof size === 'undefined') {\n height = strokeWidth || (size === 'small' ? 6 : 8);\n } else if (typeof size === 'number') {\n [width, height] = [size, size];\n } else {\n [width = -1, height = 8] = Array.isArray(size) ? size : [size.width, size.height];\n }\n } else if (type === 'circle' || type === 'dashboard') {\n if (typeof size === 'string' || typeof size === 'undefined') {\n [width, height] = size === 'small' ? [60, 60] : [120, 120];\n } else if (typeof size === 'number') {\n [width, height] = [size, size];\n } else if (Array.isArray(size)) {\n width = (_b = (_a = size[0]) !== null && _a !== void 0 ? _a : size[1]) !== null && _b !== void 0 ? _b : 120;\n height = (_d = (_c = size[0]) !== null && _c !== void 0 ? _c : size[1]) !== null && _d !== void 0 ? _d : 120;\n }\n }\n return [width, height];\n};","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Circle as RCCircle } from 'rc-progress';\nimport Tooltip from '../tooltip';\nimport { getPercentage, getSize, getStrokeColor } from './utils';\nconst CIRCLE_MIN_STROKE_WIDTH = 3;\nconst getMinPercent = width => CIRCLE_MIN_STROKE_WIDTH / width * 100;\nconst Circle = props => {\n const {\n prefixCls,\n trailColor = null,\n strokeLinecap = 'round',\n gapPosition,\n gapDegree,\n width: originWidth = 120,\n type,\n children,\n success,\n size = originWidth,\n steps\n } = props;\n const [width, height] = getSize(size, 'circle');\n let {\n strokeWidth\n } = props;\n if (strokeWidth === undefined) {\n strokeWidth = Math.max(getMinPercent(width), 6);\n }\n const circleStyle = {\n width,\n height,\n fontSize: width * 0.15 + 6\n };\n const realGapDegree = React.useMemo(() => {\n // Support gapDeg = 0 when type = 'dashboard'\n if (gapDegree || gapDegree === 0) {\n return gapDegree;\n }\n if (type === 'dashboard') {\n return 75;\n }\n return undefined;\n }, [gapDegree, type]);\n const percentArray = getPercentage(props);\n const gapPos = gapPosition || type === 'dashboard' && 'bottom' || undefined;\n // using className to style stroke color\n const isGradient = Object.prototype.toString.call(props.strokeColor) === '[object Object]';\n const strokeColor = getStrokeColor({\n success,\n strokeColor: props.strokeColor\n });\n const wrapperClassName = classNames(`${prefixCls}-inner`, {\n [`${prefixCls}-circle-gradient`]: isGradient\n });\n const circleContent = /*#__PURE__*/React.createElement(RCCircle, {\n steps: steps,\n percent: steps ? percentArray[1] : percentArray,\n strokeWidth: strokeWidth,\n trailWidth: strokeWidth,\n strokeColor: steps ? strokeColor[1] : strokeColor,\n strokeLinecap: strokeLinecap,\n trailColor: trailColor,\n prefixCls: prefixCls,\n gapDegree: realGapDegree,\n gapPosition: gapPos\n });\n const smallCircle = width <= 20;\n const node = /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperClassName,\n style: circleStyle\n }, circleContent, !smallCircle && children);\n if (smallCircle) {\n return /*#__PURE__*/React.createElement(Tooltip, {\n title: children\n }, node);\n }\n return node;\n};\nexport default Circle;","import { Keyframes, unit } from '@ant-design/cssinjs';\nimport { resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nexport const LineStrokeColorVar = '--progress-line-stroke-color';\nexport const Percent = '--progress-percent';\nconst genAntProgressActive = isRtl => {\n const direction = isRtl ? '100%' : '-100%';\n return new Keyframes(`antProgress${isRtl ? 'RTL' : 'LTR'}Active`, {\n '0%': {\n transform: `translateX(${direction}) scaleX(0)`,\n opacity: 0.1\n },\n '20%': {\n transform: `translateX(${direction}) scaleX(0)`,\n opacity: 0.5\n },\n to: {\n transform: 'translateX(0) scaleX(1)',\n opacity: 0\n }\n });\n};\nconst genBaseStyle = token => {\n const {\n componentCls: progressCls,\n iconCls: iconPrefixCls\n } = token;\n return {\n [progressCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-block',\n '&-rtl': {\n direction: 'rtl'\n },\n '&-line': {\n position: 'relative',\n width: '100%',\n fontSize: token.fontSize\n },\n [`${progressCls}-outer`]: {\n display: 'inline-flex',\n alignItems: 'center',\n width: '100%'\n },\n [`${progressCls}-inner`]: {\n position: 'relative',\n display: 'inline-block',\n width: '100%',\n flex: 1,\n overflow: 'hidden',\n verticalAlign: 'middle',\n backgroundColor: token.remainingColor,\n borderRadius: token.lineBorderRadius\n },\n [`${progressCls}-inner:not(${progressCls}-circle-gradient)`]: {\n [`${progressCls}-circle-path`]: {\n stroke: token.defaultColor\n }\n },\n [`${progressCls}-success-bg, ${progressCls}-bg`]: {\n position: 'relative',\n background: token.defaultColor,\n borderRadius: token.lineBorderRadius,\n transition: `all ${token.motionDurationSlow} ${token.motionEaseInOutCirc}`\n },\n [`${progressCls}-layout-bottom`]: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n [`${progressCls}-text`]: {\n width: 'max-content',\n marginInlineStart: 0,\n marginTop: token.marginXXS\n }\n },\n [`${progressCls}-bg`]: {\n overflow: 'hidden',\n '&::after': {\n content: '\"\"',\n background: {\n _multi_value_: true,\n value: ['inherit', `var(${LineStrokeColorVar})`]\n },\n height: '100%',\n width: `calc(1 / var(${Percent}) * 100%)`,\n display: 'block'\n },\n [`&${progressCls}-bg-inner`]: {\n minWidth: 'max-content',\n '&::after': {\n content: 'none'\n },\n [`${progressCls}-text-inner`]: {\n color: token.colorWhite,\n [`&${progressCls}-text-bright`]: {\n color: 'rgba(0, 0, 0, 0.45)'\n }\n }\n }\n },\n [`${progressCls}-success-bg`]: {\n position: 'absolute',\n insetBlockStart: 0,\n insetInlineStart: 0,\n backgroundColor: token.colorSuccess\n },\n [`${progressCls}-text`]: {\n display: 'inline-block',\n marginInlineStart: token.marginXS,\n color: token.colorText,\n lineHeight: 1,\n width: '2em',\n whiteSpace: 'nowrap',\n textAlign: 'start',\n verticalAlign: 'middle',\n wordBreak: 'normal',\n [iconPrefixCls]: {\n fontSize: token.fontSize\n },\n [`&${progressCls}-text-outer`]: {\n width: 'max-content'\n },\n [`&${progressCls}-text-outer${progressCls}-text-start`]: {\n width: 'max-content',\n marginInlineStart: 0,\n marginInlineEnd: token.marginXS\n }\n },\n [`${progressCls}-text-inner`]: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n width: '100%',\n height: '100%',\n marginInlineStart: 0,\n padding: `0 ${unit(token.paddingXXS)}`,\n [`&${progressCls}-text-start`]: {\n justifyContent: 'start'\n },\n [`&${progressCls}-text-end`]: {\n justifyContent: 'end'\n }\n },\n [`&${progressCls}-status-active`]: {\n [`${progressCls}-bg::before`]: {\n position: 'absolute',\n inset: 0,\n backgroundColor: token.colorBgContainer,\n borderRadius: token.lineBorderRadius,\n opacity: 0,\n animationName: genAntProgressActive(),\n animationDuration: token.progressActiveMotionDuration,\n animationTimingFunction: token.motionEaseOutQuint,\n animationIterationCount: 'infinite',\n content: '\"\"'\n }\n },\n [`&${progressCls}-rtl${progressCls}-status-active`]: {\n [`${progressCls}-bg::before`]: {\n animationName: genAntProgressActive(true)\n }\n },\n [`&${progressCls}-status-exception`]: {\n [`${progressCls}-bg`]: {\n backgroundColor: token.colorError\n },\n [`${progressCls}-text`]: {\n color: token.colorError\n }\n },\n [`&${progressCls}-status-exception ${progressCls}-inner:not(${progressCls}-circle-gradient)`]: {\n [`${progressCls}-circle-path`]: {\n stroke: token.colorError\n }\n },\n [`&${progressCls}-status-success`]: {\n [`${progressCls}-bg`]: {\n backgroundColor: token.colorSuccess\n },\n [`${progressCls}-text`]: {\n color: token.colorSuccess\n }\n },\n [`&${progressCls}-status-success ${progressCls}-inner:not(${progressCls}-circle-gradient)`]: {\n [`${progressCls}-circle-path`]: {\n stroke: token.colorSuccess\n }\n }\n })\n };\n};\nconst genCircleStyle = token => {\n const {\n componentCls: progressCls,\n iconCls: iconPrefixCls\n } = token;\n return {\n [progressCls]: {\n [`${progressCls}-circle-trail`]: {\n stroke: token.remainingColor\n },\n [`&${progressCls}-circle ${progressCls}-inner`]: {\n position: 'relative',\n lineHeight: 1,\n backgroundColor: 'transparent'\n },\n [`&${progressCls}-circle ${progressCls}-text`]: {\n position: 'absolute',\n insetBlockStart: '50%',\n insetInlineStart: 0,\n width: '100%',\n margin: 0,\n padding: 0,\n color: token.circleTextColor,\n fontSize: token.circleTextFontSize,\n lineHeight: 1,\n whiteSpace: 'normal',\n textAlign: 'center',\n transform: 'translateY(-50%)',\n [iconPrefixCls]: {\n fontSize: token.circleIconFontSize\n }\n },\n [`${progressCls}-circle&-status-exception`]: {\n [`${progressCls}-text`]: {\n color: token.colorError\n }\n },\n [`${progressCls}-circle&-status-success`]: {\n [`${progressCls}-text`]: {\n color: token.colorSuccess\n }\n }\n },\n [`${progressCls}-inline-circle`]: {\n lineHeight: 1,\n [`${progressCls}-inner`]: {\n verticalAlign: 'bottom'\n }\n }\n };\n};\nconst genStepStyle = token => {\n const {\n componentCls: progressCls\n } = token;\n return {\n [progressCls]: {\n [`${progressCls}-steps`]: {\n display: 'inline-block',\n '&-outer': {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center'\n },\n '&-item': {\n flexShrink: 0,\n minWidth: token.progressStepMinWidth,\n marginInlineEnd: token.progressStepMarginInlineEnd,\n backgroundColor: token.remainingColor,\n transition: `all ${token.motionDurationSlow}`,\n '&-active': {\n backgroundColor: token.defaultColor\n }\n }\n }\n }\n };\n};\nconst genSmallLine = token => {\n const {\n componentCls: progressCls,\n iconCls: iconPrefixCls\n } = token;\n return {\n [progressCls]: {\n [`${progressCls}-small&-line, ${progressCls}-small&-line ${progressCls}-text ${iconPrefixCls}`]: {\n fontSize: token.fontSizeSM\n }\n }\n };\n};\nexport const prepareComponentToken = token => ({\n circleTextColor: token.colorText,\n defaultColor: token.colorInfo,\n remainingColor: token.colorFillSecondary,\n lineBorderRadius: 100,\n // magic for capsule shape, should be a very large number\n circleTextFontSize: '1em',\n circleIconFontSize: `${token.fontSize / token.fontSizeSM}em`\n});\nexport default genStyleHooks('Progress', token => {\n const progressStepMarginInlineEnd = token.calc(token.marginXXS).div(2).equal();\n const progressToken = mergeToken(token, {\n progressStepMarginInlineEnd,\n progressStepMinWidth: progressStepMarginInlineEnd,\n progressActiveMotionDuration: '2.4s'\n });\n return [genBaseStyle(progressToken), genCircleStyle(progressToken), genStepStyle(progressToken), genSmallLine(progressToken)];\n}, prepareComponentToken);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { presetPrimaryColors } from '@ant-design/colors';\nimport classNames from 'classnames';\nimport { devUseWarning } from '../_util/warning';\nimport { LineStrokeColorVar, Percent } from './style';\nimport { getSize, getSuccessPercent, validProgress } from './utils';\n/**\n * @example\n * {\n * \"0%\": \"#afc163\",\n * \"75%\": \"#009900\",\n * \"50%\": \"green\", // ====> '#afc163 0%, #66FF00 25%, #00CC00 50%, #009900 75%, #ffffff 100%'\n * \"25%\": \"#66FF00\",\n * \"100%\": \"#ffffff\"\n * }\n */\nexport const sortGradient = gradients => {\n let tempArr = [];\n Object.keys(gradients).forEach(key => {\n const formattedKey = parseFloat(key.replace(/%/g, ''));\n if (!Number.isNaN(formattedKey)) {\n tempArr.push({\n key: formattedKey,\n value: gradients[key]\n });\n }\n });\n tempArr = tempArr.sort((a, b) => a.key - b.key);\n return tempArr.map(_ref => {\n let {\n key,\n value\n } = _ref;\n return `${value} ${key}%`;\n }).join(', ');\n};\n/**\n * Then this man came to realize the truth: Besides six pence, there is the moon. Besides bread and\n * butter, there is the bug. And... Besides women, there is the code.\n *\n * @example\n * {\n * \"0%\": \"#afc163\",\n * \"25%\": \"#66FF00\",\n * \"50%\": \"#00CC00\", // ====> linear-gradient(to right, #afc163 0%, #66FF00 25%,\n * \"75%\": \"#009900\", // #00CC00 50%, #009900 75%, #ffffff 100%)\n * \"100%\": \"#ffffff\"\n * }\n */\nexport const handleGradient = (strokeColor, directionConfig) => {\n const {\n from = presetPrimaryColors.blue,\n to = presetPrimaryColors.blue,\n direction = directionConfig === 'rtl' ? 'to left' : 'to right'\n } = strokeColor,\n rest = __rest(strokeColor, [\"from\", \"to\", \"direction\"]);\n if (Object.keys(rest).length !== 0) {\n const sortedGradients = sortGradient(rest);\n const background = `linear-gradient(${direction}, ${sortedGradients})`;\n return {\n background,\n [LineStrokeColorVar]: background\n };\n }\n const background = `linear-gradient(${direction}, ${from}, ${to})`;\n return {\n background,\n [LineStrokeColorVar]: background\n };\n};\nconst Line = props => {\n const {\n prefixCls,\n direction: directionConfig,\n percent,\n size,\n strokeWidth,\n strokeColor,\n strokeLinecap = 'round',\n children,\n trailColor = null,\n percentPosition,\n success\n } = props;\n const {\n align: infoAlign,\n type: infoPosition\n } = percentPosition;\n const backgroundProps = strokeColor && typeof strokeColor !== 'string' ? handleGradient(strokeColor, directionConfig) : {\n [LineStrokeColorVar]: strokeColor,\n background: strokeColor\n };\n const borderRadius = strokeLinecap === 'square' || strokeLinecap === 'butt' ? 0 : undefined;\n const mergedSize = size !== null && size !== void 0 ? size : [-1, strokeWidth || (size === 'small' ? 6 : 8)];\n const [width, height] = getSize(mergedSize, 'line', {\n strokeWidth\n });\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Progress');\n warning.deprecated(!('strokeWidth' in props), 'strokeWidth', 'size');\n }\n const trailStyle = {\n backgroundColor: trailColor || undefined,\n borderRadius\n };\n const percentStyle = Object.assign(Object.assign({\n width: `${validProgress(percent)}%`,\n height,\n borderRadius\n }, backgroundProps), {\n [Percent]: validProgress(percent) / 100\n });\n const successPercent = getSuccessPercent(props);\n const successPercentStyle = {\n width: `${validProgress(successPercent)}%`,\n height,\n borderRadius,\n backgroundColor: success === null || success === void 0 ? void 0 : success.strokeColor\n };\n const outerStyle = {\n width: width < 0 ? '100%' : width\n };\n const lineInner = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-inner`,\n style: trailStyle\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-bg`, `${prefixCls}-bg-${infoPosition}`),\n style: percentStyle\n }, infoPosition === 'inner' && children), successPercent !== undefined && (/*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-success-bg`,\n style: successPercentStyle\n })));\n const isOuterStart = infoPosition === 'outer' && infoAlign === 'start';\n const isOuterEnd = infoPosition === 'outer' && infoAlign === 'end';\n return infoPosition === 'outer' && infoAlign === 'center' ? (/*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-layout-bottom`\n }, lineInner, children)) : (/*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-outer`,\n style: outerStyle\n }, isOuterStart && children, lineInner, isOuterEnd && children));\n};\nexport default Line;","\"use client\";\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { getSize } from './utils';\nconst Steps = props => {\n const {\n size,\n steps,\n rounding: customRounding = Math.round,\n percent = 0,\n strokeWidth = 8,\n strokeColor,\n trailColor = null,\n prefixCls,\n children\n } = props;\n const current = customRounding(steps * (percent / 100));\n const stepWidth = size === 'small' ? 2 : 14;\n const mergedSize = size !== null && size !== void 0 ? size : [stepWidth, strokeWidth];\n const [width, height] = getSize(mergedSize, 'step', {\n steps,\n strokeWidth\n });\n const unitWidth = width / steps;\n const styledSteps = new Array(steps);\n for (let i = 0; i < steps; i++) {\n const color = Array.isArray(strokeColor) ? strokeColor[i] : strokeColor;\n styledSteps[i] = /*#__PURE__*/React.createElement(\"div\", {\n key: i,\n className: classNames(`${prefixCls}-steps-item`, {\n [`${prefixCls}-steps-item-active`]: i <= current - 1\n }),\n style: {\n backgroundColor: i <= current - 1 ? color : trailColor,\n width: unitWidth,\n height\n }\n });\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-steps-outer`\n }, styledSteps, children);\n};\nexport default Steps;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CheckOutlined from \"@ant-design/icons/es/icons/CheckOutlined\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport { FastColor } from '@ant-design/fast-color';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport Circle from './Circle';\nimport Line from './Line';\nimport Steps from './Steps';\nimport useStyle from './style';\nimport { getSize, getSuccessPercent, validProgress } from './utils';\nexport const ProgressTypes = ['line', 'circle', 'dashboard'];\nconst ProgressStatuses = ['normal', 'exception', 'active', 'success'];\nconst Progress = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n steps,\n strokeColor,\n percent = 0,\n size = 'default',\n showInfo = true,\n type = 'line',\n status,\n format,\n style,\n percentPosition = {}\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"className\", \"rootClassName\", \"steps\", \"strokeColor\", \"percent\", \"size\", \"showInfo\", \"type\", \"status\", \"format\", \"style\", \"percentPosition\"]);\n const {\n align: infoAlign = 'end',\n type: infoPosition = 'outer'\n } = percentPosition;\n const strokeColorNotArray = Array.isArray(strokeColor) ? strokeColor[0] : strokeColor;\n const strokeColorNotGradient = typeof strokeColor === 'string' || Array.isArray(strokeColor) ? strokeColor : undefined;\n const strokeColorIsBright = React.useMemo(() => {\n if (strokeColorNotArray) {\n const color = typeof strokeColorNotArray === 'string' ? strokeColorNotArray : Object.values(strokeColorNotArray)[0];\n return new FastColor(color).isLight();\n }\n return false;\n }, [strokeColor]);\n const percentNumber = React.useMemo(() => {\n var _a, _b;\n const successPercent = getSuccessPercent(props);\n return parseInt(successPercent !== undefined ? (_a = successPercent !== null && successPercent !== void 0 ? successPercent : 0) === null || _a === void 0 ? void 0 : _a.toString() : (_b = percent !== null && percent !== void 0 ? percent : 0) === null || _b === void 0 ? void 0 : _b.toString(), 10);\n }, [percent, props.success, props.successPercent]);\n const progressStatus = React.useMemo(() => {\n if (!ProgressStatuses.includes(status) && percentNumber >= 100) {\n return 'success';\n }\n return status || 'normal';\n }, [status, percentNumber]);\n const {\n getPrefixCls,\n direction,\n progress: progressStyle\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('progress', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const isLineType = type === 'line';\n const isPureLineType = isLineType && !steps;\n const progressInfo = React.useMemo(() => {\n if (!showInfo) {\n return null;\n }\n const successPercent = getSuccessPercent(props);\n let text;\n const textFormatter = format || (number => `${number}%`);\n const isBrightInnerColor = isLineType && strokeColorIsBright && infoPosition === 'inner';\n if (infoPosition === 'inner' || format || progressStatus !== 'exception' && progressStatus !== 'success') {\n text = textFormatter(validProgress(percent), validProgress(successPercent));\n } else if (progressStatus === 'exception') {\n text = isLineType ? /*#__PURE__*/React.createElement(CloseCircleFilled, null) : /*#__PURE__*/React.createElement(CloseOutlined, null);\n } else if (progressStatus === 'success') {\n text = isLineType ? /*#__PURE__*/React.createElement(CheckCircleFilled, null) : /*#__PURE__*/React.createElement(CheckOutlined, null);\n }\n return /*#__PURE__*/React.createElement(\"span\", {\n className: classNames(`${prefixCls}-text`, {\n [`${prefixCls}-text-bright`]: isBrightInnerColor,\n [`${prefixCls}-text-${infoAlign}`]: isPureLineType,\n [`${prefixCls}-text-${infoPosition}`]: isPureLineType\n }),\n title: typeof text === 'string' ? text : undefined\n }, text);\n }, [showInfo, percent, percentNumber, progressStatus, type, prefixCls, format]);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Progress');\n warning.deprecated(!('successPercent' in props), 'successPercent', 'success.percent');\n warning.deprecated(!('width' in props), 'width', 'size');\n if (type === 'circle' || type === 'dashboard') {\n if (Array.isArray(size)) {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'usage', 'Type \"circle\" and \"dashboard\" do not accept array as `size`, please use number or preset size instead.') : void 0;\n } else if (typeof size === 'object') {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'usage', 'Type \"circle\" and \"dashboard\" do not accept object as `size`, please use number or preset size instead.') : void 0;\n }\n }\n if (props.success && 'progress' in props.success) {\n warning.deprecated(false, 'success.progress', 'success.percent');\n }\n }\n let progress;\n // Render progress shape\n if (type === 'line') {\n progress = steps ? (/*#__PURE__*/React.createElement(Steps, Object.assign({}, props, {\n strokeColor: strokeColorNotGradient,\n prefixCls: prefixCls,\n steps: typeof steps === 'object' ? steps.count : steps\n }), progressInfo)) : (/*#__PURE__*/React.createElement(Line, Object.assign({}, props, {\n strokeColor: strokeColorNotArray,\n prefixCls: prefixCls,\n direction: direction,\n percentPosition: {\n align: infoAlign,\n type: infoPosition\n }\n }), progressInfo));\n } else if (type === 'circle' || type === 'dashboard') {\n progress = /*#__PURE__*/React.createElement(Circle, Object.assign({}, props, {\n strokeColor: strokeColorNotArray,\n prefixCls: prefixCls,\n progressStatus: progressStatus\n }), progressInfo);\n }\n const classString = classNames(prefixCls, `${prefixCls}-status-${progressStatus}`, {\n [`${prefixCls}-${type === 'dashboard' && 'circle' || type}`]: type !== 'line',\n [`${prefixCls}-inline-circle`]: type === 'circle' && getSize(size, 'circle')[0] <= 20,\n [`${prefixCls}-line`]: isPureLineType,\n [`${prefixCls}-line-align-${infoAlign}`]: isPureLineType,\n [`${prefixCls}-line-position-${infoPosition}`]: isPureLineType,\n [`${prefixCls}-steps`]: steps,\n [`${prefixCls}-show-info`]: showInfo,\n [`${prefixCls}-${size}`]: typeof size === 'string',\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, progressStyle === null || progressStyle === void 0 ? void 0 : progressStyle.className, className, rootClassName, hashId, cssVarCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"div\", Object.assign({\n ref: ref,\n style: Object.assign(Object.assign({}, progressStyle === null || progressStyle === void 0 ? void 0 : progressStyle.style), style),\n className: classString,\n role: \"progressbar\",\n \"aria-valuenow\": percentNumber,\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100\n }, omit(restProps, ['trailColor', 'strokeWidth', 'width', 'gapDegree', 'gapPosition', 'strokeLinecap', 'success', 'successPercent'])), progress));\n});\nif (process.env.NODE_ENV !== 'production') {\n Progress.displayName = 'Progress';\n}\nexport default Progress;","\"use client\";\n\nimport Progress from './progress';\nexport default Progress;","\"use client\";\n\nimport * as React from 'react';\nimport DeleteOutlined from \"@ant-design/icons/es/icons/DeleteOutlined\";\nimport DownloadOutlined from \"@ant-design/icons/es/icons/DownloadOutlined\";\nimport EyeOutlined from \"@ant-design/icons/es/icons/EyeOutlined\";\nimport classNames from 'classnames';\nimport CSSMotion from 'rc-motion';\nimport { ConfigContext } from '../../config-provider';\nimport Progress from '../../progress';\nimport Tooltip from '../../tooltip';\nconst ListItem = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n prefixCls,\n className,\n style,\n locale,\n listType,\n file,\n items,\n progress: progressProps,\n iconRender,\n actionIconRender,\n itemRender,\n isImgUrl,\n showPreviewIcon,\n showRemoveIcon,\n showDownloadIcon,\n previewIcon: customPreviewIcon,\n removeIcon: customRemoveIcon,\n downloadIcon: customDownloadIcon,\n extra: customExtra,\n onPreview,\n onDownload,\n onClose\n } = _ref;\n var _a, _b;\n // Status: which will ignore `removed` status\n const {\n status\n } = file;\n const [mergedStatus, setMergedStatus] = React.useState(status);\n React.useEffect(() => {\n if (status !== 'removed') {\n setMergedStatus(status);\n }\n }, [status]);\n // Delay to show the progress bar\n const [showProgress, setShowProgress] = React.useState(false);\n React.useEffect(() => {\n const timer = setTimeout(() => {\n setShowProgress(true);\n }, 300);\n return () => {\n clearTimeout(timer);\n };\n }, []);\n const iconNode = iconRender(file);\n let icon = /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-icon`\n }, iconNode);\n if (listType === 'picture' || listType === 'picture-card' || listType === 'picture-circle') {\n if (mergedStatus === 'uploading' || !file.thumbUrl && !file.url) {\n const uploadingClassName = classNames(`${prefixCls}-list-item-thumbnail`, {\n [`${prefixCls}-list-item-file`]: mergedStatus !== 'uploading'\n });\n icon = /*#__PURE__*/React.createElement(\"div\", {\n className: uploadingClassName\n }, iconNode);\n } else {\n const thumbnail = (isImgUrl === null || isImgUrl === void 0 ? void 0 : isImgUrl(file)) ? (/*#__PURE__*/React.createElement(\"img\", {\n src: file.thumbUrl || file.url,\n alt: file.name,\n className: `${prefixCls}-list-item-image`,\n crossOrigin: file.crossOrigin\n })) : iconNode;\n const aClassName = classNames(`${prefixCls}-list-item-thumbnail`, {\n [`${prefixCls}-list-item-file`]: isImgUrl && !isImgUrl(file)\n });\n icon = /*#__PURE__*/React.createElement(\"a\", {\n className: aClassName,\n onClick: e => onPreview(file, e),\n href: file.url || file.thumbUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, thumbnail);\n }\n }\n const listItemClassName = classNames(`${prefixCls}-list-item`, `${prefixCls}-list-item-${mergedStatus}`);\n const linkProps = typeof file.linkProps === 'string' ? JSON.parse(file.linkProps) : file.linkProps;\n const removeIcon = (typeof showRemoveIcon === 'function' ? showRemoveIcon(file) : showRemoveIcon) ? actionIconRender((typeof customRemoveIcon === 'function' ? customRemoveIcon(file) : customRemoveIcon) || (/*#__PURE__*/React.createElement(DeleteOutlined, null)), () => onClose(file), prefixCls, locale.removeFile,\n // acceptUploadDisabled is true, only remove icon will follow Upload disabled prop\n // https://github.com/ant-design/ant-design/issues/46171\n true) : null;\n const downloadIcon = (typeof showDownloadIcon === 'function' ? showDownloadIcon(file) : showDownloadIcon) && mergedStatus === 'done' ? actionIconRender((typeof customDownloadIcon === 'function' ? customDownloadIcon(file) : customDownloadIcon) || /*#__PURE__*/React.createElement(DownloadOutlined, null), () => onDownload(file), prefixCls, locale.downloadFile) : null;\n const downloadOrDelete = listType !== 'picture-card' && listType !== 'picture-circle' && (/*#__PURE__*/React.createElement(\"span\", {\n key: \"download-delete\",\n className: classNames(`${prefixCls}-list-item-actions`, {\n picture: listType === 'picture'\n })\n }, downloadIcon, removeIcon));\n const extraContent = typeof customExtra === 'function' ? customExtra(file) : customExtra;\n const extra = extraContent && (/*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-list-item-extra`\n }, extraContent));\n const listItemNameClass = classNames(`${prefixCls}-list-item-name`);\n const fileName = file.url ? (/*#__PURE__*/React.createElement(\"a\", Object.assign({\n key: \"view\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: listItemNameClass,\n title: file.name\n }, linkProps, {\n href: file.url,\n onClick: e => onPreview(file, e)\n }), file.name, extra)) : (/*#__PURE__*/React.createElement(\"span\", {\n key: \"view\",\n className: listItemNameClass,\n onClick: e => onPreview(file, e),\n title: file.name\n }, file.name, extra));\n const previewIcon = (typeof showPreviewIcon === 'function' ? showPreviewIcon(file) : showPreviewIcon) && (file.url || file.thumbUrl) ? (/*#__PURE__*/React.createElement(\"a\", {\n href: file.url || file.thumbUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n onClick: e => onPreview(file, e),\n title: locale.previewFile\n }, typeof customPreviewIcon === 'function' ? customPreviewIcon(file) : customPreviewIcon || /*#__PURE__*/React.createElement(EyeOutlined, null))) : null;\n const pictureCardActions = (listType === 'picture-card' || listType === 'picture-circle') && mergedStatus !== 'uploading' && (/*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-list-item-actions`\n }, previewIcon, mergedStatus === 'done' && downloadIcon, removeIcon));\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const rootPrefixCls = getPrefixCls();\n const dom = /*#__PURE__*/React.createElement(\"div\", {\n className: listItemClassName\n }, icon, fileName, downloadOrDelete, pictureCardActions, showProgress && (/*#__PURE__*/React.createElement(CSSMotion, {\n motionName: `${rootPrefixCls}-fade`,\n visible: mergedStatus === 'uploading',\n motionDeadline: 2000\n }, _ref2 => {\n let {\n className: motionClassName\n } = _ref2;\n // show loading icon if upload progress listener is disabled\n const loadingProgress = 'percent' in file ? (/*#__PURE__*/React.createElement(Progress, Object.assign({}, progressProps, {\n type: \"line\",\n percent: file.percent,\n \"aria-label\": file['aria-label'],\n \"aria-labelledby\": file['aria-labelledby']\n }))) : null;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-list-item-progress`, motionClassName)\n }, loadingProgress);\n })));\n const message = file.response && typeof file.response === 'string' ? file.response : ((_a = file.error) === null || _a === void 0 ? void 0 : _a.statusText) || ((_b = file.error) === null || _b === void 0 ? void 0 : _b.message) || locale.uploadError;\n const item = mergedStatus === 'error' ? (/*#__PURE__*/React.createElement(Tooltip, {\n title: message,\n getPopupContainer: node => node.parentNode\n }, dom)) : dom;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(`${prefixCls}-list-item-container`, className),\n style: style,\n ref: ref\n }, itemRender ? itemRender(item, file, items, {\n download: onDownload.bind(null, file),\n preview: onPreview.bind(null, file),\n remove: onClose.bind(null, file)\n }) : item);\n});\nexport default ListItem;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport FileTwoTone from \"@ant-design/icons/es/icons/FileTwoTone\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport PaperClipOutlined from \"@ant-design/icons/es/icons/PaperClipOutlined\";\nimport PictureTwoTone from \"@ant-design/icons/es/icons/PictureTwoTone\";\nimport classNames from 'classnames';\nimport CSSMotion, { CSSMotionList } from 'rc-motion';\nimport omit from \"rc-util/es/omit\";\nimport useForceUpdate from '../../_util/hooks/useForceUpdate';\nimport initCollapseMotion from '../../_util/motion';\nimport { cloneElement } from '../../_util/reactNode';\nimport Button from '../../button';\nimport { ConfigContext } from '../../config-provider';\nimport { isImageUrl, previewImage } from '../utils';\nimport ListItem from './ListItem';\nconst InternalUploadList = (props, ref) => {\n const {\n listType = 'text',\n previewFile = previewImage,\n onPreview,\n onDownload,\n onRemove,\n locale,\n iconRender,\n isImageUrl: isImgUrl = isImageUrl,\n prefixCls: customizePrefixCls,\n items = [],\n showPreviewIcon = true,\n showRemoveIcon = true,\n showDownloadIcon = false,\n removeIcon,\n previewIcon,\n downloadIcon,\n extra,\n progress = {\n size: [-1, 2],\n showInfo: false\n },\n appendAction,\n appendActionVisible = true,\n itemRender,\n disabled\n } = props;\n const forceUpdate = useForceUpdate();\n const [motionAppear, setMotionAppear] = React.useState(false);\n const isPictureCardOrCirle = ['picture-card', 'picture-circle'].includes(listType);\n // ============================= Effect =============================\n React.useEffect(() => {\n if (!listType.startsWith('picture')) {\n return;\n }\n (items || []).forEach(file => {\n if (!(file.originFileObj instanceof File || file.originFileObj instanceof Blob) || file.thumbUrl !== undefined) {\n return;\n }\n file.thumbUrl = '';\n previewFile === null || previewFile === void 0 ? void 0 : previewFile(file.originFileObj).then(previewDataUrl => {\n // Need append '' to avoid dead loop\n file.thumbUrl = previewDataUrl || '';\n forceUpdate();\n });\n });\n }, [listType, items, previewFile]);\n React.useEffect(() => {\n setMotionAppear(true);\n }, []);\n // ============================= Events =============================\n const onInternalPreview = (file, e) => {\n if (!onPreview) {\n return;\n }\n e === null || e === void 0 ? void 0 : e.preventDefault();\n return onPreview(file);\n };\n const onInternalDownload = file => {\n if (typeof onDownload === 'function') {\n onDownload(file);\n } else if (file.url) {\n window.open(file.url);\n }\n };\n const onInternalClose = file => {\n onRemove === null || onRemove === void 0 ? void 0 : onRemove(file);\n };\n const internalIconRender = file => {\n if (iconRender) {\n return iconRender(file, listType);\n }\n const isLoading = file.status === 'uploading';\n if (listType.startsWith('picture')) {\n const loadingIcon = listType === 'picture' ? /*#__PURE__*/React.createElement(LoadingOutlined, null) : locale.uploading;\n const fileIcon = (isImgUrl === null || isImgUrl === void 0 ? void 0 : isImgUrl(file)) ? /*#__PURE__*/React.createElement(PictureTwoTone, null) : /*#__PURE__*/React.createElement(FileTwoTone, null);\n return isLoading ? loadingIcon : fileIcon;\n }\n return isLoading ? /*#__PURE__*/React.createElement(LoadingOutlined, null) : /*#__PURE__*/React.createElement(PaperClipOutlined, null);\n };\n const actionIconRender = (customIcon, callback, prefixCls, title, acceptUploadDisabled) => {\n const btnProps = {\n type: 'text',\n size: 'small',\n title,\n onClick: e => {\n var _a, _b;\n callback();\n if (/*#__PURE__*/React.isValidElement(customIcon)) {\n (_b = (_a = customIcon.props).onClick) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n }\n },\n className: `${prefixCls}-list-item-action`\n };\n if (acceptUploadDisabled) {\n btnProps.disabled = disabled;\n }\n return /*#__PURE__*/React.isValidElement(customIcon) ? (/*#__PURE__*/React.createElement(Button, Object.assign({}, btnProps, {\n icon: cloneElement(customIcon, Object.assign(Object.assign({}, customIcon.props), {\n onClick: () => {}\n }))\n }))) : (/*#__PURE__*/React.createElement(Button, Object.assign({}, btnProps), /*#__PURE__*/React.createElement(\"span\", null, customIcon)));\n };\n // ============================== Ref ===============================\n // Test needs\n React.useImperativeHandle(ref, () => ({\n handlePreview: onInternalPreview,\n handleDownload: onInternalDownload\n }));\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n // ============================= Render =============================\n const prefixCls = getPrefixCls('upload', customizePrefixCls);\n const rootPrefixCls = getPrefixCls();\n const listClassNames = classNames(`${prefixCls}-list`, `${prefixCls}-list-${listType}`);\n const listItemMotion = React.useMemo(() => omit(initCollapseMotion(rootPrefixCls), ['onAppearEnd', 'onEnterEnd', 'onLeaveEnd']), [rootPrefixCls]);\n const motionConfig = Object.assign(Object.assign({}, isPictureCardOrCirle ? {} : listItemMotion), {\n motionDeadline: 2000,\n motionName: `${prefixCls}-${isPictureCardOrCirle ? 'animate-inline' : 'animate'}`,\n keys: _toConsumableArray(items.map(file => ({\n key: file.uid,\n file\n }))),\n motionAppear\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: listClassNames\n }, /*#__PURE__*/React.createElement(CSSMotionList, Object.assign({}, motionConfig, {\n component: false\n }), _ref => {\n let {\n key,\n file,\n className: motionClassName,\n style: motionStyle\n } = _ref;\n return /*#__PURE__*/React.createElement(ListItem, {\n key: key,\n locale: locale,\n prefixCls: prefixCls,\n className: motionClassName,\n style: motionStyle,\n file: file,\n items: items,\n progress: progress,\n listType: listType,\n isImgUrl: isImgUrl,\n showPreviewIcon: showPreviewIcon,\n showRemoveIcon: showRemoveIcon,\n showDownloadIcon: showDownloadIcon,\n removeIcon: removeIcon,\n previewIcon: previewIcon,\n downloadIcon: downloadIcon,\n extra: extra,\n iconRender: internalIconRender,\n actionIconRender: actionIconRender,\n itemRender: itemRender,\n onPreview: onInternalPreview,\n onDownload: onInternalDownload,\n onClose: onInternalClose\n });\n }), appendAction && (/*#__PURE__*/React.createElement(CSSMotion, Object.assign({}, motionConfig, {\n visible: appendActionVisible,\n forceRender: true\n }), _ref2 => {\n let {\n className: motionClassName,\n style: motionStyle\n } = _ref2;\n return cloneElement(appendAction, oriProps => ({\n className: classNames(oriProps.className, motionClassName),\n style: Object.assign(Object.assign(Object.assign({}, motionStyle), {\n // prevent the element has hover css pseudo-class that may cause animation to end prematurely.\n pointerEvents: motionClassName ? 'none' : undefined\n }), oriProps.style)\n }));\n })));\n};\nconst UploadList = /*#__PURE__*/React.forwardRef(InternalUploadList);\nif (process.env.NODE_ENV !== 'production') {\n UploadList.displayName = 'UploadList';\n}\nexport default UploadList;","\"use client\";\n\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport * as React from 'react';\nimport { flushSync } from 'react-dom';\nimport classNames from 'classnames';\nimport RcUpload from 'rc-upload';\nimport useMergedState from \"rc-util/es/hooks/useMergedState\";\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport DisabledContext from '../config-provider/DisabledContext';\nimport { useLocale } from '../locale';\nimport defaultLocale from '../locale/en_US';\nimport useStyle from './style';\nimport UploadList from './UploadList';\nimport { file2Obj, getFileItem, removeFileItem, updateFileList } from './utils';\nexport const LIST_IGNORE = `__LIST_IGNORE_${Date.now()}__`;\nconst InternalUpload = (props, ref) => {\n const {\n fileList,\n defaultFileList,\n onRemove,\n showUploadList = true,\n listType = 'text',\n onPreview,\n onDownload,\n onChange,\n onDrop,\n previewFile,\n disabled: customDisabled,\n locale: propLocale,\n iconRender,\n isImageUrl,\n progress,\n prefixCls: customizePrefixCls,\n className,\n type = 'select',\n children,\n style,\n itemRender,\n maxCount,\n data = {},\n multiple = false,\n hasControlInside = true,\n action = '',\n accept = '',\n supportServerRender = true,\n rootClassName\n } = props;\n // ===================== Disabled =====================\n const disabled = React.useContext(DisabledContext);\n const mergedDisabled = customDisabled !== null && customDisabled !== void 0 ? customDisabled : disabled;\n const [mergedFileList, setMergedFileList] = useMergedState(defaultFileList || [], {\n value: fileList,\n postState: list => list !== null && list !== void 0 ? list : []\n });\n const [dragState, setDragState] = React.useState('drop');\n const upload = React.useRef(null);\n const wrapRef = React.useRef(null);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Upload');\n process.env.NODE_ENV !== \"production\" ? warning('fileList' in props || !('value' in props), 'usage', '`value` is not a valid prop, do you mean `fileList`?') : void 0;\n warning.deprecated(!('transformFile' in props), 'transformFile', 'beforeUpload');\n }\n // Control mode will auto fill file uid if not provided\n React.useMemo(() => {\n const timestamp = Date.now();\n (fileList || []).forEach((file, index) => {\n if (!file.uid && !Object.isFrozen(file)) {\n file.uid = `__AUTO__${timestamp}_${index}__`;\n }\n });\n }, [fileList]);\n const onInternalChange = (file, changedFileList, event) => {\n let cloneList = _toConsumableArray(changedFileList);\n let exceedMaxCount = false;\n // Cut to match count\n if (maxCount === 1) {\n cloneList = cloneList.slice(-1);\n } else if (maxCount) {\n exceedMaxCount = cloneList.length > maxCount;\n cloneList = cloneList.slice(0, maxCount);\n }\n // Prevent React18 auto batch since input[upload] trigger process at same time\n // which makes fileList closure problem\n flushSync(() => {\n setMergedFileList(cloneList);\n });\n const changeInfo = {\n file: file,\n fileList: cloneList\n };\n if (event) {\n changeInfo.event = event;\n }\n if (!exceedMaxCount || file.status === 'removed' ||\n // We should ignore event if current file is exceed `maxCount`\n cloneList.some(f => f.uid === file.uid)) {\n flushSync(() => {\n onChange === null || onChange === void 0 ? void 0 : onChange(changeInfo);\n });\n }\n };\n const mergedBeforeUpload = (file, fileListArgs) => __awaiter(void 0, void 0, void 0, function* () {\n const {\n beforeUpload,\n transformFile\n } = props;\n let parsedFile = file;\n if (beforeUpload) {\n const result = yield beforeUpload(file, fileListArgs);\n if (result === false) {\n return false;\n }\n // Hack for LIST_IGNORE, we add additional info to remove from the list\n delete file[LIST_IGNORE];\n if (result === LIST_IGNORE) {\n Object.defineProperty(file, LIST_IGNORE, {\n value: true,\n configurable: true\n });\n return false;\n }\n if (typeof result === 'object' && result) {\n parsedFile = result;\n }\n }\n if (transformFile) {\n parsedFile = yield transformFile(parsedFile);\n }\n return parsedFile;\n });\n const onBatchStart = batchFileInfoList => {\n // Skip file which marked as `LIST_IGNORE`, these file will not add to file list\n const filteredFileInfoList = batchFileInfoList.filter(info => !info.file[LIST_IGNORE]);\n // Nothing to do since no file need upload\n if (!filteredFileInfoList.length) {\n return;\n }\n const objectFileList = filteredFileInfoList.map(info => file2Obj(info.file));\n // Concat new files with prev files\n let newFileList = _toConsumableArray(mergedFileList);\n objectFileList.forEach(fileObj => {\n // Replace file if exist\n newFileList = updateFileList(fileObj, newFileList);\n });\n objectFileList.forEach((fileObj, index) => {\n // Repeat trigger `onChange` event for compatible\n let triggerFileObj = fileObj;\n if (!filteredFileInfoList[index].parsedFile) {\n // `beforeUpload` return false\n const {\n originFileObj\n } = fileObj;\n let clone;\n try {\n clone = new File([originFileObj], originFileObj.name, {\n type: originFileObj.type\n });\n } catch (_a) {\n clone = new Blob([originFileObj], {\n type: originFileObj.type\n });\n clone.name = originFileObj.name;\n clone.lastModifiedDate = new Date();\n clone.lastModified = new Date().getTime();\n }\n clone.uid = fileObj.uid;\n triggerFileObj = clone;\n } else {\n // Inject `uploading` status\n fileObj.status = 'uploading';\n }\n onInternalChange(triggerFileObj, newFileList);\n });\n };\n const onSuccess = (response, file, xhr) => {\n try {\n if (typeof response === 'string') {\n // biome-ignore lint/style/noParameterAssign: we need to modify response\n response = JSON.parse(response);\n }\n } catch (_a) {\n /* do nothing */\n }\n // removed\n if (!getFileItem(file, mergedFileList)) {\n return;\n }\n const targetItem = file2Obj(file);\n targetItem.status = 'done';\n targetItem.percent = 100;\n targetItem.response = response;\n targetItem.xhr = xhr;\n const nextFileList = updateFileList(targetItem, mergedFileList);\n onInternalChange(targetItem, nextFileList);\n };\n const onProgress = (e, file) => {\n // removed\n if (!getFileItem(file, mergedFileList)) {\n return;\n }\n const targetItem = file2Obj(file);\n targetItem.status = 'uploading';\n targetItem.percent = e.percent;\n const nextFileList = updateFileList(targetItem, mergedFileList);\n onInternalChange(targetItem, nextFileList, e);\n };\n const onError = (error, response, file) => {\n // removed\n if (!getFileItem(file, mergedFileList)) {\n return;\n }\n const targetItem = file2Obj(file);\n targetItem.error = error;\n targetItem.response = response;\n targetItem.status = 'error';\n const nextFileList = updateFileList(targetItem, mergedFileList);\n onInternalChange(targetItem, nextFileList);\n };\n const handleRemove = file => {\n let currentFile;\n Promise.resolve(typeof onRemove === 'function' ? onRemove(file) : onRemove).then(ret => {\n var _a;\n // Prevent removing file\n if (ret === false) {\n return;\n }\n const removedFileList = removeFileItem(file, mergedFileList);\n if (removedFileList) {\n currentFile = Object.assign(Object.assign({}, file), {\n status: 'removed'\n });\n mergedFileList === null || mergedFileList === void 0 ? void 0 : mergedFileList.forEach(item => {\n const matchKey = currentFile.uid !== undefined ? 'uid' : 'name';\n if (item[matchKey] === currentFile[matchKey] && !Object.isFrozen(item)) {\n item.status = 'removed';\n }\n });\n (_a = upload.current) === null || _a === void 0 ? void 0 : _a.abort(currentFile);\n onInternalChange(currentFile, removedFileList);\n }\n });\n };\n const onFileDrop = e => {\n setDragState(e.type);\n if (e.type === 'drop') {\n onDrop === null || onDrop === void 0 ? void 0 : onDrop(e);\n }\n };\n // Test needs\n React.useImperativeHandle(ref, () => ({\n onBatchStart,\n onSuccess,\n onProgress,\n onError,\n fileList: mergedFileList,\n upload: upload.current,\n nativeElement: wrapRef.current\n }));\n const {\n getPrefixCls,\n direction,\n upload: ctxUpload\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('upload', customizePrefixCls);\n const rcUploadProps = Object.assign(Object.assign({\n onBatchStart,\n onError,\n onProgress,\n onSuccess\n }, props), {\n data,\n multiple,\n action,\n accept,\n supportServerRender,\n prefixCls,\n disabled: mergedDisabled,\n beforeUpload: mergedBeforeUpload,\n onChange: undefined,\n hasControlInside\n });\n delete rcUploadProps.className;\n delete rcUploadProps.style;\n // Remove id to avoid open by label when trigger is hidden\n // !children: https://github.com/ant-design/ant-design/issues/14298\n // disabled: https://github.com/ant-design/ant-design/issues/16478\n // https://github.com/ant-design/ant-design/issues/24197\n if (!children || mergedDisabled) {\n delete rcUploadProps.id;\n }\n const wrapperCls = `${prefixCls}-wrapper`;\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls, wrapperCls);\n const [contextLocale] = useLocale('Upload', defaultLocale.Upload);\n const {\n showRemoveIcon,\n showPreviewIcon,\n showDownloadIcon,\n removeIcon,\n previewIcon,\n downloadIcon,\n extra\n } = typeof showUploadList === 'boolean' ? {} : showUploadList;\n // use showRemoveIcon if it is specified explicitly\n const realShowRemoveIcon = typeof showRemoveIcon === 'undefined' ? !mergedDisabled : showRemoveIcon;\n const renderUploadList = (button, buttonVisible) => {\n if (!showUploadList) {\n return button;\n }\n return /*#__PURE__*/React.createElement(UploadList, {\n prefixCls: prefixCls,\n listType: listType,\n items: mergedFileList,\n previewFile: previewFile,\n onPreview: onPreview,\n onDownload: onDownload,\n onRemove: handleRemove,\n showRemoveIcon: realShowRemoveIcon,\n showPreviewIcon: showPreviewIcon,\n showDownloadIcon: showDownloadIcon,\n removeIcon: removeIcon,\n previewIcon: previewIcon,\n downloadIcon: downloadIcon,\n iconRender: iconRender,\n extra: extra,\n locale: Object.assign(Object.assign({}, contextLocale), propLocale),\n isImageUrl: isImageUrl,\n progress: progress,\n appendAction: button,\n appendActionVisible: buttonVisible,\n itemRender: itemRender,\n disabled: mergedDisabled\n });\n };\n const mergedCls = classNames(wrapperCls, className, rootClassName, hashId, cssVarCls, ctxUpload === null || ctxUpload === void 0 ? void 0 : ctxUpload.className, {\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-picture-card-wrapper`]: listType === 'picture-card',\n [`${prefixCls}-picture-circle-wrapper`]: listType === 'picture-circle'\n });\n const mergedStyle = Object.assign(Object.assign({}, ctxUpload === null || ctxUpload === void 0 ? void 0 : ctxUpload.style), style);\n // ======================== Render ========================\n if (type === 'drag') {\n const dragCls = classNames(hashId, prefixCls, `${prefixCls}-drag`, {\n [`${prefixCls}-drag-uploading`]: mergedFileList.some(file => file.status === 'uploading'),\n [`${prefixCls}-drag-hover`]: dragState === 'dragover',\n [`${prefixCls}-disabled`]: mergedDisabled,\n [`${prefixCls}-rtl`]: direction === 'rtl'\n });\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"span\", {\n className: mergedCls,\n ref: wrapRef\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: dragCls,\n style: mergedStyle,\n onDrop: onFileDrop,\n onDragOver: onFileDrop,\n onDragLeave: onFileDrop\n }, /*#__PURE__*/React.createElement(RcUpload, Object.assign({}, rcUploadProps, {\n ref: upload,\n className: `${prefixCls}-btn`\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: `${prefixCls}-drag-container`\n }, children))), renderUploadList()));\n }\n const uploadBtnCls = classNames(prefixCls, `${prefixCls}-select`, {\n [`${prefixCls}-disabled`]: mergedDisabled,\n [`${prefixCls}-hidden`]: !children\n });\n const uploadButton = /*#__PURE__*/React.createElement(\"div\", {\n className: uploadBtnCls\n }, /*#__PURE__*/React.createElement(RcUpload, Object.assign({}, rcUploadProps, {\n ref: upload\n })));\n if (listType === 'picture-card' || listType === 'picture-circle') {\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"span\", {\n className: mergedCls,\n ref: wrapRef\n }, renderUploadList(uploadButton, !!children)));\n }\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"span\", {\n className: mergedCls,\n ref: wrapRef\n }, uploadButton, renderUploadList()));\n};\nconst Upload = /*#__PURE__*/React.forwardRef(InternalUpload);\nif (process.env.NODE_ENV !== 'production') {\n Upload.displayName = 'Upload';\n}\nexport default Upload;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport Upload from './Upload';\nconst Dragger = /*#__PURE__*/React.forwardRef((_a, ref) => {\n var {\n style,\n height,\n hasControlInside = false\n } = _a,\n restProps = __rest(_a, [\"style\", \"height\", \"hasControlInside\"]);\n return /*#__PURE__*/React.createElement(Upload, Object.assign({\n ref: ref,\n hasControlInside: hasControlInside\n }, restProps, {\n type: \"drag\",\n style: Object.assign(Object.assign({}, style), {\n height\n })\n }));\n});\nif (process.env.NODE_ENV !== 'production') {\n Dragger.displayName = 'Dragger';\n}\nexport default Dragger;","\"use client\";\n\nimport Dragger from './Dragger';\nimport InternalUpload, { LIST_IGNORE } from './Upload';\nconst Upload = InternalUpload;\nUpload.Dragger = Dragger;\nUpload.LIST_IGNORE = LIST_IGNORE;\nexport default Upload;","// This icon file is generated automatically.\nvar UploadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"upload\", \"theme\": \"outlined\" };\nexport default UploadOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UploadOutlinedSvg from \"@ant-design/icons-svg/es/asn/UploadOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar UploadOutlined = function UploadOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UploadOutlinedSvg\n }));\n};\n\n/**![upload](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQwMCAzMTcuN2g3My45VjY1NmMwIDQuNCAzLjYgOCA4IDhoNjBjNC40IDAgOC0zLjYgOC04VjMxNy43SDYyNGM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUw1MTguMyAxNjNhOCA4IDAgMDAtMTIuNiAwbC0xMTIgMTQxLjdjLTQuMSA1LjMtLjQgMTMgNi4zIDEzek04NzggNjI2aC02MGMtNC40IDAtOCAzLjYtOCA4djE1NEgyMTRWNjM0YzAtNC40LTMuNi04LTgtOGgtNjBjLTQuNCAwLTggMy42LTggOHYxOThjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjg0YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjYzNGMwLTQuNC0zLjYtOC04LTh6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(UploadOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'UploadOutlined';\n}\nexport default RefIcon;","import React, { useEffect, useState, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n fetchBrands,\n addBrand,\n updateBrand,\n} from \"../Redux/slice/brandSlice\";\nimport { fetchCategories } from \"../Redux/slice/categorySlice\";\nimport {\n Select,\n Form,\n Input,\n Button,\n Table,\n Upload,\n Modal,\n message,\n Row,\n Col,\n} from \"antd\";\nimport { PlusOutlined, EditOutlined, UploadOutlined } from \"@ant-design/icons\";\nimport { debounce } from \"lodash\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nconst backendBaseURL = \"https://smfteapi.salesmate.app\";\n\nconst BrandPage = () => {\n const dispatch = useDispatch();\n const { brands, loading, totalRecords } = useSelector((state) => state.brands);\n const { categories, loading: categoryLoading } = useSelector(\n (state) => state.categories\n );\n\n const [isModalVisible, setIsModalVisible] = useState(false);\n const [form] = Form.useForm();\n const [currentBrand, setCurrentBrand] = useState(null);\n const [previewLogo, setPreviewLogo] = useState(null);\n const [submitLoading, setSubmitLoading] = useState(false);\n const [searchText, setSearchText] = useState(\"\");\n const [currentPage, setCurrentPage] = useState(1);\n\n\n\n useEffect(() => {\n dispatch(fetchBrands({ page: currentPage, limit: 10 }));\n dispatch(fetchCategories());\n }, [dispatch, currentPage]);\n\n useEffect(() => {\n if (currentBrand) {\n console.log(\"Current Brand: \", currentBrand); // Log to verify the categoryId\n console.log(\"Categories: \", categories); // Log categories data to ensure it's available\n form.setFieldsValue({\n BrandName: currentBrand.brandName,\n CategoryId: currentBrand.categoryId.toString(), // Ensure it's a string\n });\n }\n }, [currentBrand, categories, form]);\n const showModal = (brand = null) => {\n console.log(\"Selected Brand: \", brand); // Debugging: log selected brand\n setCurrentBrand(brand);\n if (brand) {\n form.setFieldsValue({\n BrandName: brand.brandName,\n CategoryId: brand.categoryId ? brand.categoryId.toString() : '', // Ensure it's a string\n });\n setPreviewLogo(brand.logoUrl);\n } else {\n form.resetFields();\n setPreviewLogo(null);\n }\n setIsModalVisible(true);\n };\n \n const handleSubmit = async (values) => {\n setSubmitLoading(true);\n try {\n const formData = new FormData();\n formData.append(\"BrandName\", values.BrandName);\n formData.append(\"CategoryId\", values.CategoryId);\n \n if (values.LogoName?.file) {\n formData.append(\"LogoName\", values.LogoName.file);\n } else if (currentBrand?.logoUrl) {\n formData.append(\"LogoName\", currentBrand.logoName);\n }\n \n if (currentBrand) {\n // Update brand\n await dispatch(updateBrand({ id: currentBrand.brandId, formData })).unwrap();\n message.success(\"Brand updated successfully!\");\n \n // Refetch the brands after update\n dispatch(fetchBrands({ page: currentPage, limit: 10 })).then(() => {\n // Ensure we reset currentBrand after the update\n setCurrentBrand(null);\n });\n } else {\n // Add brand\n formData.append(\"BrandId\", uuidv4());\n await dispatch(addBrand(formData)).unwrap();\n message.success(\"Brand added successfully!\");\n }\n \n setIsModalVisible(false);\n form.resetFields();\n } catch (error) {\n console.error(\"Error saving brand:\", error);\n message.error(error?.message || \"Failed to save brand. Please try again.\");\n } finally {\n setSubmitLoading(false);\n }\n };\n \n\n const handleFileChange = ({ file }) => {\n if (file) {\n const reader = new FileReader();\n reader.onload = (e) => setPreviewLogo(e.target.result);\n reader.readAsDataURL(file);\n } else {\n setPreviewLogo(null);\n }\n };\n\n const handleSearchChange = debounce((e) => {\n setSearchText(e.target.value.toLowerCase());\n }, 300);\n\n const filteredBrands = useMemo(() => {\n return brands.filter((brand) => {\n const brandNameMatch =\n brand.brandName?.toLowerCase().includes(searchText) || false;\n const categoryMatch = categories.some(\n (category) =>\n category.categoryName?.toLowerCase().includes(searchText) &&\n category.categoryId === brand.categoryId\n );\n return brandNameMatch || categoryMatch;\n });\n }, [brands, categories, searchText]);\n\n const columns = [\n { title: \"Brand Name\", dataIndex: \"brandName\", key: \"brandName\" },\n {\n title: \"Category\",\n dataIndex: \"categoryId\",\n key: \"categoryId\",\n render: (categoryId) => {\n const category = categories.find((cat) => cat.categoryId === categoryId);\n return category ? category.categoryName : \"Unknown\";\n },\n },\n {\n title: \"Image\",\n dataIndex: \"logoName\",\n key: \"logoName\",\n render: (imagePath) => {\n const imageUrl = `${backendBaseURL}/Media/Brand_Logo/${imagePath\n .split(\"\\\\\")\n .pop()}`;\n return (\n {\n setPreviewLogo(imageUrl);\n setIsModalVisible(true);\n }}\n />\n );\n },\n },\n {\n title: \"Actions\",\n key: \"actions\",\n render: (_, record) => (\n }\n onClick={() => showModal(record)}\n className=\"bg-green-600 text-white transition rounded-full\"\n >\n Edit\n \n ),\n },\n ];\n\n return (\n
    \n \n \n

    Brands Management

    \n \n \n }\n onClick={() => showModal()}\n className=\"bg-green-600 text-white transition rounded-full\"\n >\n Add Brand\n \n \n
    \n\n \n \n \n \n \n\n setCurrentPage(page),\n }}\n style={{ marginTop: 20 }}\n />\n\n setIsModalVisible(false)}\n footer={null}\n centered\n bodyStyle={{ padding: 20 }}\n key={currentBrand ? currentBrand.brandId : \"add\"} // Add key to force re-render\n>\n
    \n \n \n \n\n \n {\n console.log(\"Category changed:\", value); // Add this log to see the selected category\n }}\n >\n {categories.map((cat) => (\n \n {cat.categoryName}\n \n ))}\n \n\n\n\n\n \n false}\n onChange={handleFileChange}\n >\n \n \n \n\n {previewLogo && (\n
    \n \n
    \n )}\n\n \n \n {currentBrand ? \"Update Brand\" : \"Add Brand\"}\n \n \n \n \n
    \n );\n};\n\n\nexport default BrandPage;\n\n","import React, { useState, useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { fetchCategories, addCategory, updateCategory } from '../Redux/slice/categorySlice';\nimport { Modal, Spin, Button, Input, Table, Pagination } from 'antd';\nimport { PlusOutlined, EditOutlined } from '@ant-design/icons';\nimport { v4 as uuidv4 } from 'uuid';\n\nconst Categories = () => {\n const dispatch = useDispatch();\n const { categories = [], loading, error } = useSelector((state) => state.categories);\n\n\n const [isModalVisible, setIsModalVisible] = useState(false);\n const [categoryName, setCategoryName] = useState('');\n const [categoryId, setCategoryId] = useState('');\n const [isEditing, setIsEditing] = useState(false);\n const [currentPage, setCurrentPage] = useState(1);\n const [searchQuery, setSearchQuery] = useState('');\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const categoriesPerPage = 6;\n\n useEffect(() => {\n if (!categories || categories.length === 0) {\n dispatch(fetchCategories());\n }\n }, [dispatch, categories]);\n \n const showModal = (category = null) => {\n if (category) {\n // Edit existing category\n setCategoryId(category.categoryId);\n setCategoryName(category.categoryName);\n setIsEditing(true);\n } else {\n // Add new category (generate new UUID)\n setCategoryId(uuidv4());\n setCategoryName('');\n setIsEditing(false);\n }\n setIsModalVisible(true);\n };\n\n const hideModal = () => {\n setCategoryName('');\n setCategoryId('');\n setIsEditing(false);\n setIsModalVisible(false);\n };\n\n const handleNameChange = (e) => setCategoryName(e.target.value);\n const handleSearchChange = (e) => setSearchQuery(e.target.value);\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n\n const categoryData = {\n categoryId,\n categoryName,\n };\n\n try {\n setIsSubmitting(true);\n if (isEditing) {\n // Update category\n await dispatch(updateCategory({ categoryId, categoryData })).unwrap();\n } else {\n // Add new category\n await dispatch(addCategory(categoryData)).unwrap();\n }\n await dispatch(fetchCategories()); // Fetch updated categories\n hideModal();\n } catch (error) {\n console.error('Failed to add/update category:', error);\n } finally {\n setIsSubmitting(false);\n }\n };\n\n const filteredCategories = categories\n ? categories.filter((category) =>\n category?.categoryName?.toLowerCase().includes(searchQuery.toLowerCase())\n )\n : [];\n\n const indexOfLastCategory = currentPage * categoriesPerPage;\n const indexOfFirstCategory = indexOfLastCategory - categoriesPerPage;\n const currentCategories = filteredCategories.slice(indexOfFirstCategory, indexOfLastCategory);\n\n const columns = [\n {\n title: 'Category ID',\n dataIndex: 'categoryId',\n key: 'categoryId',\n },\n {\n title: 'Category Name',\n dataIndex: 'categoryName',\n key: 'categoryName',\n },\n {\n title: 'Actions',\n key: 'actions',\n render: (text, record) => (\n }\n onClick={() => showModal(record)} // Use showModal directly\n className=\"bg-green-600 text-white transition rounded-full\"\n >\n Edit\n \n ),\n },\n ];\n\n return (\n
    \n
    \n

    Categories

    \n
    \n \n }\n onClick={() => showModal()} // For adding a new category\n className=\"w-full md:w-auto bg-green-500 hover:bg-green-600 text-white rounded-full\"\n >\n Add Category\n \n
    \n
    \n\n {loading ? (\n
    \n \n
    \n ) : error ? (\n

    Error: {error}

    \n ) : (\n \n )}\n\n setCurrentPage(page)}\n pageSize={categoriesPerPage}\n total={filteredCategories.length}\n className=\"mt-4 text-center\"\n showSizeChanger={false}\n showTotal={(total) => `Total ${total} categories`}\n />\n\n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n \n {isSubmitting ? : null}\n {isSubmitting ? 'Updating' : isEditing ? 'Update Category' : 'Add Category'}\n \n \n \n
    \n );\n};\n\nexport default Categories;\n","import { unit } from '@ant-design/cssinjs';\nimport { FastColor } from '@ant-design/fast-color';\nimport { resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\n// ============================== Styles ==============================\nconst genBaseStyle = token => {\n const {\n paddingXXS,\n lineWidth,\n tagPaddingHorizontal,\n componentCls,\n calc\n } = token;\n const paddingInline = calc(tagPaddingHorizontal).sub(lineWidth).equal();\n const iconMarginInline = calc(paddingXXS).sub(lineWidth).equal();\n return {\n // Result\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n display: 'inline-block',\n height: 'auto',\n // https://github.com/ant-design/ant-design/pull/47504\n marginInlineEnd: token.marginXS,\n paddingInline,\n fontSize: token.tagFontSize,\n lineHeight: token.tagLineHeight,\n whiteSpace: 'nowrap',\n background: token.defaultBg,\n border: `${unit(token.lineWidth)} ${token.lineType} ${token.colorBorder}`,\n borderRadius: token.borderRadiusSM,\n opacity: 1,\n transition: `all ${token.motionDurationMid}`,\n textAlign: 'start',\n position: 'relative',\n // RTL\n [`&${componentCls}-rtl`]: {\n direction: 'rtl'\n },\n '&, a, a:hover': {\n color: token.defaultColor\n },\n [`${componentCls}-close-icon`]: {\n marginInlineStart: iconMarginInline,\n fontSize: token.tagIconSize,\n color: token.colorTextDescription,\n cursor: 'pointer',\n transition: `all ${token.motionDurationMid}`,\n '&:hover': {\n color: token.colorTextHeading\n }\n },\n [`&${componentCls}-has-color`]: {\n borderColor: 'transparent',\n [`&, a, a:hover, ${token.iconCls}-close, ${token.iconCls}-close:hover`]: {\n color: token.colorTextLightSolid\n }\n },\n '&-checkable': {\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n cursor: 'pointer',\n [`&:not(${componentCls}-checkable-checked):hover`]: {\n color: token.colorPrimary,\n backgroundColor: token.colorFillSecondary\n },\n '&:active, &-checked': {\n color: token.colorTextLightSolid\n },\n '&-checked': {\n backgroundColor: token.colorPrimary,\n '&:hover': {\n backgroundColor: token.colorPrimaryHover\n }\n },\n '&:active': {\n backgroundColor: token.colorPrimaryActive\n }\n },\n '&-hidden': {\n display: 'none'\n },\n // To ensure that a space will be placed between character and `Icon`.\n [`> ${token.iconCls} + span, > span + ${token.iconCls}`]: {\n marginInlineStart: paddingInline\n }\n }),\n [`${componentCls}-borderless`]: {\n borderColor: 'transparent',\n background: token.tagBorderlessBg\n }\n };\n};\n// ============================== Export ==============================\nexport const prepareToken = token => {\n const {\n lineWidth,\n fontSizeIcon,\n calc\n } = token;\n const tagFontSize = token.fontSizeSM;\n const tagToken = mergeToken(token, {\n tagFontSize,\n tagLineHeight: unit(calc(token.lineHeightSM).mul(tagFontSize).equal()),\n tagIconSize: calc(fontSizeIcon).sub(calc(lineWidth).mul(2)).equal(),\n // Tag icon is much smaller\n tagPaddingHorizontal: 8,\n // Fixed padding.\n tagBorderlessBg: token.defaultBg\n });\n return tagToken;\n};\nexport const prepareComponentToken = token => ({\n defaultBg: new FastColor(token.colorFillQuaternary).onBackground(token.colorBgContainer).toHexString(),\n defaultColor: token.colorText\n});\nexport default genStyleHooks('Tag', token => {\n const tagToken = prepareToken(token);\n return genBaseStyle(tagToken);\n}, prepareComponentToken);","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { ConfigContext } from '../config-provider';\nimport useStyle from './style';\nconst CheckableTag = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n prefixCls: customizePrefixCls,\n style,\n className,\n checked,\n onChange,\n onClick\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"style\", \"className\", \"checked\", \"onChange\", \"onClick\"]);\n const {\n getPrefixCls,\n tag\n } = React.useContext(ConfigContext);\n const handleClick = e => {\n onChange === null || onChange === void 0 ? void 0 : onChange(!checked);\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n };\n const prefixCls = getPrefixCls('tag', customizePrefixCls);\n // Style\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const cls = classNames(prefixCls, `${prefixCls}-checkable`, {\n [`${prefixCls}-checkable-checked`]: checked\n }, tag === null || tag === void 0 ? void 0 : tag.className, className, hashId, cssVarCls);\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"span\", Object.assign({}, restProps, {\n ref: ref,\n style: Object.assign(Object.assign({}, style), tag === null || tag === void 0 ? void 0 : tag.style),\n className: cls,\n onClick: handleClick\n })));\n});\nexport default CheckableTag;","// Style as status component\nimport { prepareComponentToken, prepareToken } from '.';\nimport { genPresetColor, genSubStyleComponent } from '../../theme/internal';\n// ============================== Preset ==============================\nconst genPresetStyle = token => genPresetColor(token, (colorKey, _ref) => {\n let {\n textColor,\n lightBorderColor,\n lightColor,\n darkColor\n } = _ref;\n return {\n [`${token.componentCls}${token.componentCls}-${colorKey}`]: {\n color: textColor,\n background: lightColor,\n borderColor: lightBorderColor,\n // Inverse color\n '&-inverse': {\n color: token.colorTextLightSolid,\n background: darkColor,\n borderColor: darkColor\n },\n [`&${token.componentCls}-borderless`]: {\n borderColor: 'transparent'\n }\n }\n };\n});\n// ============================== Export ==============================\nexport default genSubStyleComponent(['Tag', 'preset'], token => {\n const tagToken = prepareToken(token);\n return genPresetStyle(tagToken);\n}, prepareComponentToken);","import { prepareComponentToken, prepareToken } from '.';\nimport capitalize from '../../_util/capitalize';\nimport { genSubStyleComponent } from '../../theme/internal';\nconst genTagStatusStyle = (token, status, cssVariableType) => {\n const capitalizedCssVariableType = capitalize(cssVariableType);\n return {\n [`${token.componentCls}${token.componentCls}-${status}`]: {\n color: token[`color${cssVariableType}`],\n background: token[`color${capitalizedCssVariableType}Bg`],\n borderColor: token[`color${capitalizedCssVariableType}Border`],\n [`&${token.componentCls}-borderless`]: {\n borderColor: 'transparent'\n }\n }\n };\n};\n// ============================== Export ==============================\nexport default genSubStyleComponent(['Tag', 'status'], token => {\n const tagToken = prepareToken(token);\n return [genTagStatusStyle(tagToken, 'success', 'Success'), genTagStatusStyle(tagToken, 'processing', 'Info'), genTagStatusStyle(tagToken, 'error', 'Error'), genTagStatusStyle(tagToken, 'warning', 'Warning')];\n}, prepareComponentToken);","export default function capitalize(str) {\n if (typeof str !== 'string') {\n return str;\n }\n const ret = str.charAt(0).toUpperCase() + str.slice(1);\n return ret;\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport omit from \"rc-util/es/omit\";\nimport { isPresetColor, isPresetStatusColor } from '../_util/colors';\nimport useClosable, { pickClosable } from '../_util/hooks/useClosable';\nimport { replaceElement } from '../_util/reactNode';\nimport { devUseWarning } from '../_util/warning';\nimport Wave from '../_util/wave';\nimport { ConfigContext } from '../config-provider';\nimport CheckableTag from './CheckableTag';\nimport useStyle from './style';\nimport PresetCmp from './style/presetCmp';\nimport StatusCmp from './style/statusCmp';\nconst InternalTag = /*#__PURE__*/React.forwardRef((tagProps, ref) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n rootClassName,\n style,\n children,\n icon,\n color,\n onClose,\n bordered = true,\n visible: deprecatedVisible\n } = tagProps,\n props = __rest(tagProps, [\"prefixCls\", \"className\", \"rootClassName\", \"style\", \"children\", \"icon\", \"color\", \"onClose\", \"bordered\", \"visible\"]);\n const {\n getPrefixCls,\n direction,\n tag: tagContext\n } = React.useContext(ConfigContext);\n const [visible, setVisible] = React.useState(true);\n const domProps = omit(props, ['closeIcon', 'closable']);\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Tag');\n warning.deprecated(!('visible' in tagProps), 'visible', 'visible && ');\n }\n React.useEffect(() => {\n if (deprecatedVisible !== undefined) {\n setVisible(deprecatedVisible);\n }\n }, [deprecatedVisible]);\n const isPreset = isPresetColor(color);\n const isStatus = isPresetStatusColor(color);\n const isInternalColor = isPreset || isStatus;\n const tagStyle = Object.assign(Object.assign({\n backgroundColor: color && !isInternalColor ? color : undefined\n }, tagContext === null || tagContext === void 0 ? void 0 : tagContext.style), style);\n const prefixCls = getPrefixCls('tag', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n // Style\n const tagClassName = classNames(prefixCls, tagContext === null || tagContext === void 0 ? void 0 : tagContext.className, {\n [`${prefixCls}-${color}`]: isInternalColor,\n [`${prefixCls}-has-color`]: color && !isInternalColor,\n [`${prefixCls}-hidden`]: !visible,\n [`${prefixCls}-rtl`]: direction === 'rtl',\n [`${prefixCls}-borderless`]: !bordered\n }, className, rootClassName, hashId, cssVarCls);\n const handleCloseClick = e => {\n e.stopPropagation();\n onClose === null || onClose === void 0 ? void 0 : onClose(e);\n if (e.defaultPrevented) {\n return;\n }\n setVisible(false);\n };\n const [, mergedCloseIcon] = useClosable(pickClosable(tagProps), pickClosable(tagContext), {\n closable: false,\n closeIconRender: iconNode => {\n const replacement = /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-close-icon`,\n onClick: handleCloseClick\n }, iconNode);\n return replaceElement(iconNode, replacement, originProps => ({\n onClick: e => {\n var _a;\n (_a = originProps === null || originProps === void 0 ? void 0 : originProps.onClick) === null || _a === void 0 ? void 0 : _a.call(originProps, e);\n handleCloseClick(e);\n },\n className: classNames(originProps === null || originProps === void 0 ? void 0 : originProps.className, `${prefixCls}-close-icon`)\n }));\n }\n });\n const isNeedWave = typeof props.onClick === 'function' || children && children.type === 'a';\n const iconNode = icon || null;\n const kids = iconNode ? (/*#__PURE__*/React.createElement(React.Fragment, null, iconNode, children && /*#__PURE__*/React.createElement(\"span\", null, children))) : children;\n const tagNode = /*#__PURE__*/React.createElement(\"span\", Object.assign({}, domProps, {\n ref: ref,\n className: tagClassName,\n style: tagStyle\n }), kids, mergedCloseIcon, isPreset && /*#__PURE__*/React.createElement(PresetCmp, {\n key: \"preset\",\n prefixCls: prefixCls\n }), isStatus && /*#__PURE__*/React.createElement(StatusCmp, {\n key: \"status\",\n prefixCls: prefixCls\n }));\n return wrapCSSVar(isNeedWave ? /*#__PURE__*/React.createElement(Wave, {\n component: \"Tag\"\n }, tagNode) : tagNode);\n});\nconst Tag = InternalTag;\nif (process.env.NODE_ENV !== 'production') {\n Tag.displayName = 'Tag';\n}\nTag.CheckableTag = CheckableTag;\nexport default Tag;","import { useDispatch, useSelector } from 'react-redux';\nimport { addProduct, fetchProducts } from '../../Redux/slice/productSlice';\nimport { fetchBrands } from '../../Redux/slice/brandSlice';\nimport { fetchShowrooms } from '../../Redux/slice/showRoomSlice';\nimport { Modal, Form, Input, Select, Button, message, Upload, Progress, Row, Col } from 'antd';\nimport { UploadOutlined } from '@ant-design/icons';\nimport PropTypes from 'prop-types';\nimport { useState, useEffect } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nconst { Option } = Select;\n\nconst AddProduct = ({ visible, onClose }) => {\n const dispatch = useDispatch();\n const [form] = Form.useForm();\n const [uploading, setUploading] = useState(false);\n const [uploadProgress, setUploadProgress] = useState(0);\n const [productImageFile, setProductImageFile] = useState(null);\n const [imagePreview, setImagePreview] = useState(null);\n const [loading, setLoading] = useState(false); // Track the button loading state\n const [charCount, setCharCount] = useState(0);\n\n const brands = useSelector((state) => state.brands.brands);\n const showrooms = useSelector((state) => state.showrooms.showrooms);\n\n useEffect(() => {\n dispatch(fetchBrands());\n dispatch(fetchShowrooms());\n }, [dispatch]);\n\n const onFinish = async (values) => {\n const formData = new FormData();\n Object.keys(values).forEach((key) => {\n // If OldPrice is not provided, set it to 0\n if (key === 'oldPrice' && !values[key]) {\n formData.append('oldPrice', '0');\n } else {\n formData.append(key, values[key]);\n }\n });\n \n const productID = uuidv4();\n const UserId = 'user-uuid'; // Replace with actual user ID retrieval logic\n const dateCreated = new Date().toISOString();\n \n formData.append('UserId', UserId);\n formData.append('productID', productID);\n formData.append('dateCreated', dateCreated);\n \n if (productImageFile) {\n formData.append('productImage', productImageFile);\n } else {\n message.error('Please upload a product image');\n return;\n }\n \n try {\n setUploading(true);\n await dispatch(addProduct(formData)).unwrap();\n message.success('Product added successfully!');\n await dispatch(fetchProducts()).unwrap();\n \n form.resetFields();\n setProductImageFile(null);\n setUploadProgress(0);\n setImagePreview(null);\n onClose();\n } catch (err) {\n console.error(err);\n message.error('Failed to add product.');\n } finally {\n setUploading(false);\n }\n };\n const handleChange = (e) => {\n const value = e.target.value;\n if (value.length <= 500) {\n setCharCount(value.length);\n }\n };\n\n \n\n const handleUploadChange = (info) => {\n if (info.file.status === 'uploading') {\n setUploading(true);\n }\n if (info.file.status === 'done') {\n const { originFileObj } = info.file;\n setProductImageFile(originFileObj);\n setImagePreview(URL.createObjectURL(originFileObj));\n setUploading(false);\n message.success(`${info.file.name} file uploaded successfully.`);\n } else if (info.file.status === 'error') {\n setUploading(false);\n message.error(`${info.file.name} file upload failed.`);\n }\n };\n\n const uploadProps = {\n beforeUpload: (file) => {\n setProductImageFile(file);\n setImagePreview(URL.createObjectURL(file));\n return false;\n },\n onChange: handleUploadChange,\n showUploadList: false,\n progress: {\n onProgress: ({ percent }) => setUploadProgress(percent),\n },\n };\n\n return (\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 {charCount} / 1000\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 {uploading && (\n <>\n \n Uploading...\n \n )}\n {imagePreview && (\n
    \n \"Preview\"\n
    \n )}\n
    \n\n \n \n \n \n \n );\n};\n\nAddProduct.propTypes = {\n visible: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n};\n\nexport default AddProduct;\n","\nimport { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { updateProduct } from \"../../Redux/slice/productSlice\";\nimport { Modal, Form, Input, Select, Button, message, Row, Col } from \"antd\";\nimport PropTypes from \"prop-types\";\n\nconst { Option } = Select;\n\nconst UpdateProduct = ({ visible, onClose, product, brands, showrooms }) => {\n const dispatch = useDispatch();\n const [form] = Form.useForm();\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n if (product && Object.keys(product).length > 0) {\n form.setFieldsValue({\n Productid: product.productID,\n ProductName: product.productName,\n price: product.price,\n oldPrice: product.oldPrice,\n Description: product.description,\n BrandId: product.brandId,\n ShowRoomId: product.showRoomId,\n status: product.status,\n });\n }\n }, [product, form]);\n\n const onFinish = async (values) => {\n const payload = {\n Productid: product?.productID, // Preserve the original product ID\n productName: values.ProductName,\n description: values.Description,\n price: values.price,\n oldPrice: values.oldPrice,\n brandId: values.BrandId,\n showRoomId: values.ShowRoomId,\n status: values.status === \"1\" ? \"1\" : \"0\",\n };\n \n if (!payload.Productid) {\n message.error(\"Product ID is missing!\");\n return;\n }\n \n try {\n setLoading(true);\n await dispatch(updateProduct(payload)).unwrap();\n message.success(\"Product updated successfully!\");\n onClose();\n form.resetFields();\n } catch (err) {\n console.error(\"Error updating product:\", err);\n message.error(\"Failed to update product.\");\n } finally {\n setLoading(false);\n }\n };\n \n\n return (\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};\n\nUpdateProduct.propTypes = {\n visible: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n product: PropTypes.object.isRequired,\n brands: PropTypes.array.isRequired,\n showrooms: PropTypes.array.isRequired,\n};\n\nexport default UpdateProduct;","import React, { useState } from \"react\";\nimport { Modal, Upload, Button, Form, notification } from \"antd\";\nimport { UploadOutlined } from \"@ant-design/icons\";\nimport { useDispatch } from \"react-redux\";\nimport { updateProductImage } from \"../../Redux/slice/productSlice\";\n\nconst UpdateProductImage = ({ visible, onClose, productID }) => {\n const [imageFile, setImageFile] = useState(null);\n const [imagePreviewUrl, setImagePreviewUrl] = useState(null); // To store the preview URL\n const [loading, setLoading] = useState(false);\n const dispatch = useDispatch();\n\n const handleFileChange = ({ fileList }) => {\n if (fileList.length > 0) {\n const selectedFile = fileList[0].originFileObj;\n setImageFile(selectedFile);\n setImagePreviewUrl(URL.createObjectURL(selectedFile)); // Generate image preview URL\n } else {\n setImageFile(null);\n setImagePreviewUrl(null); // Reset preview if no file is selected\n }\n };\n\n const handleSubmit = async () => {\n if (!productID || !imageFile) {\n notification.error({\n message: \"Error\",\n description: \"Please select an image.\",\n });\n return;\n }\n\n setLoading(true);\n\n try {\n const formData = new FormData();\n formData.append(\"ProductId\", productID); // Ensure case matches backend\n formData.append(\"ImageName\", imageFile); // Append the file\n\n await dispatch(updateProductImage({ productID, imageFile })).unwrap();\n\n notification.success({\n message: \"Success\",\n description: \"Product image updated successfully.\",\n });\n onClose();\n } catch (error) {\n console.error(\"Error details:\", error); // Log full error for debugging\n notification.error({\n message: \"Error\",\n description: error.message || \"Failed to update product image.\",\n });\n } finally {\n setLoading(false);\n }\n };\n\n return (\n \n
    \n \n false} // Prevent automatic upload\n onChange={handleFileChange}\n maxCount={1}\n >\n \n \n {imagePreviewUrl && (\n
    \n \n
    \n )}\n
    \n \n
    \n \n );\n};\n\nexport default UpdateProductImage;\n","import { useEffect, useState, useCallback } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchAllProducts } from \"../../Redux/slice/productSlice\";\nimport { fetchBrands } from \"../../Redux/slice/brandSlice\";\nimport { fetchShowrooms } from \"../../Redux/slice/showRoomSlice\";\nimport { Button, Table, message, Input, Modal, Tooltip, Tag, Checkbox } from \"antd\";\nimport { EyeOutlined, EditOutlined , PlusOutlined , UploadOutlined } from \"@ant-design/icons\";\nimport AddProduct from \"./AddProduct\";\nimport UpdateProduct from \"./EditProduct\";\nimport UpdateProductImage from \"./UpdateProductImage\";\n\n\nconst Products = () => {\n const dispatch = useDispatch();\n const { products } = useSelector((state) => state.products);\n const { brands } = useSelector((state) => state.brands);\n const { showrooms } = useSelector((state) => state.showrooms);\n const [isAddModalVisible, setIsAddModalVisible] = useState(false);\n const [isUpdateModalVisible, setIsUpdateModalVisible] = useState(false);\n const [isImageModalVisible, setIsImageModalVisible] = useState(false);\n const [isDetailModalVisible, setIsDetailModalVisible] = useState(false);\n const [isDescriptionModalVisible, setIsDescriptionModalVisible] = useState(false);\n const [selectedProduct, setSelectedProduct] = useState(null);\n const [searchText, setSearchText] = useState(\"\");\n const [fullImageUrl, setFullImageUrl] = useState(\"\");\n const [descriptionText, setDescriptionText] = useState(\"\");\n const [filterOutOfStock, setFilterOutOfStock] = useState(false);\n const [isUpdateImageModalVisible, setIsUpdateImageModalVisible] = useState(false);\nconst [selectedProductIdForImage, setSelectedProductIdForImage] = useState(null);\n\n\n const backendBaseURL = process.env.REACT_APP_API_BASE_URL\n const fetchProductData = useCallback(async () => {\n try {\n await dispatch(fetchAllProducts()).unwrap();\n await dispatch(fetchBrands()).unwrap();\n await dispatch(fetchShowrooms()).unwrap();\n } catch (err) {\n console.error(err);\n message.error(\"Failed to load data.\");\n }\n }, [dispatch]);\n\n useEffect(() => {\n fetchProductData();\n }, [fetchProductData]);\n\n const handleAddProduct = () => {\n setSelectedProduct(null);\n setIsAddModalVisible(true);\n };\n\n const handleUpdateProduct = (product) => {\n setSelectedProduct(product);\n setIsUpdateModalVisible(true); // Show the Update modal\n };\n const handleUpdateProductImage = (productID) => {\n setSelectedProductIdForImage(productID);\n setIsUpdateImageModalVisible(true);\n };\n \n\n const handleViewProductDetails = (product) => {\n setSelectedProduct(product);\n setIsDetailModalVisible(true);\n };\n\n const handleSearch = (e) => {\n setSearchText(e.target.value);\n };\n\n const handleDescriptionClick = (description) => {\n setDescriptionText(description);\n setIsDescriptionModalVisible(true);\n };\n const filteredProducts = (products || []).filter((product) => {\n const productNameMatch =\n product.productName?.toLowerCase().includes(searchText.toLowerCase()) || false;\n const showroomMatch =\n product.showRoomName?.toLowerCase().includes(searchText.toLowerCase()) || false;\n const brandMatch =\n product.brandName?.toLowerCase().includes(searchText.toLowerCase()) || false;\n const stockFilter = filterOutOfStock ? product.status == 0 : true; // status 0 means out of stock\n \n return (productNameMatch || showroomMatch || brandMatch) && stockFilter;\n })\n\n const sortedProducts = filteredProducts.sort(\n (a, b) => new Date(b.dateCreated) - new Date(a.dateCreated)\n );\n\n const columns = [\n {\n title: \"Image\",\n dataIndex: \"productImage\",\n key: \"productImage\",\n render: (imagePath) => {\n const imageUrl = `${backendBaseURL}/Media/Products_Images/${imagePath\n .split(\"\\\\\")\n .pop()}`;\n\n return (\n {\n setFullImageUrl(imageUrl);\n setIsImageModalVisible(true);\n }}\n />\n );\n },\n },\n {\n title: \"Product Name\",\n dataIndex: \"productName\",\n key: \"productName\",\n },\n {\n title: \"Description\",\n dataIndex: \"description\",\n key: \"description\",\n render: (text) => {\n const truncatedText = text.length > 30 ? `${text.substring(0, 30)}...` : text;\n \n return (\n \n handleDescriptionClick(text)}>\n {truncatedText}\n \n \n );\n },\n },\n \n \n {\n title: \"Price\",\n dataIndex: \"price\",\n key: \"price\",\n render: (text) => `₵${parseFloat(text).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`,\n },\n \n {\n title: \"Date Created\",\n dataIndex: \"dateCreated\",\n key: \"dateCreated\",\n render: (text) => new Date(text).toLocaleDateString(),\n sorter: (a, b) => new Date(a.dateCreated) - new Date(b.dateCreated),\n },\n {\n title: \"Brand\",\n dataIndex: \"brandName\",\n key: \"brandName\",\n },\n {\n title: 'Availability',\n dataIndex: 'status',\n key: 'status',\n render: (status) => (\n // eslint-disable-next-line eqeqeq\n status == 1 ? \n In Stock : \n Out of Stock\n ),\n },\n \n \n \n {\n title: \"Actions\",\n key: \"actions\",\n render: (text, record) => (\n
    \n \n
    \n ),\n }\n \n ];\n\n return (\n
    \n

    Products Management

    \n
    \n \n }\n type=\"primary\"\n onClick={handleAddProduct}\n className=\"bg-green-600 text-white transition rounded-full\"\n >\n Add Product\n \n setFilterOutOfStock(e.target.checked)}\n style={{ marginLeft: \"auto\" }}\n >\n Show Only Out of Stock\n \n
    \n\n \n\n {/* Add Product Modal */}\n {\n setIsAddModalVisible(false);\n fetchProductData();\n }}\n brands={brands}\n showrooms={showrooms}\n />\n \n {\n setIsUpdateModalVisible(false);\n fetchProductData();\n }}\n product={selectedProduct || {}}\n brands={brands}\n showrooms={showrooms}\n/>\n {\n setIsUpdateImageModalVisible(false);\n fetchProductData(); // Refresh product data after image update\n }}\n productID={selectedProductIdForImage}\n/>\n\n\n \n {/* Full Image Modal */}\n setIsImageModalVisible(false)}\n footer={null}\n title=\"Product Image\"\n >\n \n \n\n {/* Product Details Modal */}\n setIsDetailModalVisible(false)}\n footer={null}\n centered\n bodyStyle={{ padding: 0 }}\n width={500}\n>\n {selectedProduct && (\n
    \n {/* Product Image */}\n
    \n \n
    \n\n {/* Product Details */}\n
    \n

    \n {selectedProduct.productName}\n

    \n
    \n \n ₵{parseFloat(selectedProduct.price).toLocaleString(\"en-US\", { minimumFractionDigits: 2 })}\n \n {selectedProduct.oldPrice > 0 && (\n \n ₵{parseFloat(selectedProduct.oldPrice).toLocaleString(\"en-US\", { minimumFractionDigits: 2 })}\n \n )}\n
    \n\n

    \n Product ID: {selectedProduct.productID}\n

    \n\n\n
    \n

    Category: {selectedProduct.categoryName}

    \n

    Brand: {selectedProduct.brandName}

    \n

    Showroom: {selectedProduct.showRoomName}

    \n

    Date Created: {new Date(selectedProduct.dateCreated).toLocaleDateString()}

    \n
    \n
    \n
    \n )}\n\n\n\n\n {/* Full Description Modal */}\n setIsDescriptionModalVisible(false)}\n footer={null}\n title=\"Product Description\"\n >\n

    {descriptionText}

    \n \n
    \n );\n};\n\nexport default Products;","import React, { useState, useEffect } from \"react\";\nimport { Modal, Select, Button, message } from \"antd\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { updateOrderTransition } from \"../../Redux/slice/orderSlice\"; // Assuming you have this action\n\nconst UpdateOrderCycleModal = ({ isVisible, onClose, orderCode, fetchOrders }) => {\n const dispatch = useDispatch();\n const { orders } = useSelector((state) => state.orders);\n const [orderCycle, setOrderCycle] = useState(\"\");\n\n const order = orders.find((order) => order.orderCode === orderCode);\n\n useEffect(() => {\n if (order) {\n setOrderCycle(order.orderCycle);\n }\n }, [order, orderCode]);\n\n const handleStatusChange = (value) => {\n setOrderCycle(value);\n };\n\n // Function to update the order cycle\n const handleUpdateOrderCycle = async () => {\n \n if (!orderCode || !orderCycle) {\n message.error(\"Order cycle or order code is missing\");\n return;\n }\n \n try {\n const response = await dispatch(updateOrderTransition({ CycleName: orderCycle, OrderId: orderCode }));\n if (response.payload?.responseCode === \"1\") {\n message.success(\"Order status updated successfully\");\n fetchOrders(); // Re-fetch orders to reflect the update\n onClose(); // Close the modal\n } else {\n message.error(\"Failed to update order cycle\");\n }\n } catch (error) {\n message.error(\"Error updating order cycle\");\n }\n };\n \n\n return (\n Cancel,\n , // Use handleUpdateOrderCycle here\n ]}\n >\n \n \n );\n};\n\nexport default UpdateOrderCycleModal;\n","// This icon file is generated automatically.\nvar FileTextOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z\" } }] }, \"name\": \"file-text\", \"theme\": \"outlined\" };\nexport default FileTextOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FileTextOutlinedSvg from \"@ant-design/icons-svg/es/asn/FileTextOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FileTextOutlined = function FileTextOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FileTextOutlinedSvg\n }));\n};\n\n/**![file-text](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHpNNTA0IDYxOEgzMjBjLTQuNCAwLTggMy42LTggOHY0OGMwIDQuNCAzLjYgOCA4IDhoMTg0YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04ek0zMTIgNDkwdjQ4YzAgNC40IDMuNiA4IDggOGgzODRjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThIMzIwYy00LjQgMC04IDMuNi04IDh6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(FileTextOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'FileTextOutlined';\n}\nexport default RefIcon;","import React from 'react';\nimport { Typography, Row, Col, Image, Divider } from 'antd';\nimport logo from '../../assets/frankoIcon.png';\n\nconst { Title, Text } = Typography;\n\nconst formatPrice = (amount) => {\n return amount.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n};\n\nconst PrintableInvoice = React.forwardRef(({ orderId, salesOrder, deliveryAddress }, ref) => {\n const backendBaseURL = 'https://smfteapi.salesmate.app/';\n const customer = salesOrder[0];\n const totalAmount = salesOrder.reduce((acc, order) => acc + order.total, 0);\n const subAmount = totalAmount;\n const discount = \"0\";\n const shippingFee = \"0\"; // Example shipping fee\n const address = deliveryAddress?.[0] || {};\n\n const invoiceDate = new Date();\n const orderDate = new Date(customer?.orderDate || Date.now());\n\n return (\n \n {/* Header Section */}\n
    \n \n \n Franko Trading Limited\n \n Opposite Roxy Cinema, Kwame Nkrumah Avenue, Accra,Ghana | Contact: +233 246 422 338\n
    \n Email: online@frankotrading.com | Website: www.frankotrading.com\n \n
    \n

    INVOICE

    \n {/* Invoice Details and Shipping Address */}\n \n {/* Invoice Details */}\n
    \n Invoice Details\n
    \n Order No: {orderId.slice(-7)}\n
    \n Order Date: {orderDate.toLocaleDateString('en-GB', { day: '2-digit', month: '2-digit', year: 'numeric' })}\n
    \nInvoice Print Date: {invoiceDate.toLocaleDateString('en-GB', { day: '2-digit', month: '2-digit', year: 'numeric' })}\n\n
    \n\n {/* Shipping Address */}\n
    \n Shipping Address\n
    \n Recipient Name: {address.recipientName}\n
    \n Contact Number: {address.recipientContactNumber}\n
    \n Delivery Address: {address.address}\n
    \n Order Note: {address.orderNote}\n
    \n \n\n \n\n {/* Order Items */}\n Order Items\n \n \n \n \n \n \n \n \n \n \n \n \n {salesOrder.map((order, index) => (\n \n \n \n \n \n \n \n \n ))}\n \n
    S.NOProduct ImageProduct NameQuantityUnit PriceTotal Price
    {index + 1}\n \n {order.productName}{order.quantity}₵{formatPrice(order.price)}.00₵{formatPrice(order.total)}.00
    \n\n \n\n {/* Total Section */}\n \n \n
    \n Subtotal: ₵{formatPrice(subAmount)}.00\n
    \n Discount: ₵{formatPrice(discount)}.00\n
    \n Shipping Fee: {shippingFee > 0 ? `₵${formatPrice(shippingFee)}.00` : 'Delivery Charges applicable'}\n
    \n Total Amount: ₵{formatPrice(totalAmount)}.00\n
    \n \n
    \n \n );\n});\n\nexport default PrintableInvoice;\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 React, { useEffect, useRef } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { fetchSalesOrderById, fetchOrderDeliveryAddress } from '../../Redux/slice/orderSlice';\nimport { Modal, Spin, Typography, Row, Col, Button, Divider, Card, Image } from 'antd';\nimport {\n UserOutlined,\n PhoneOutlined,\n HomeOutlined,\n EditOutlined,\n FileTextOutlined,\n ClockCircleOutlined,\n} from '@ant-design/icons';\nimport PrintableInvoice from './PrintableInvoice';\nimport { saveAs } from 'file-saver';\n\n\nimport * as XLSX from 'xlsx';\n\nconst { Title, Text } = Typography;\n\nconst formatPrice = (amount) => {\n return amount.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n};\n\nconst OrderDetailsModal = ({ orderId, onClose }) => {\n const dispatch = useDispatch();\n const { salesOrder, loading, error, deliveryAddress } = useSelector((state) => state.orders);\n\n const printRef = useRef();\n const downloadRef = useRef(null); // New ref for PDF download\n\n useEffect(() => {\n if (orderId) {\n dispatch(fetchSalesOrderById(orderId));\n dispatch(fetchOrderDeliveryAddress(orderId));\n }\n }, [dispatch, orderId]);\n\n const handlePrint = () => {\n const printContent = printRef.current;\n const newWindow = window.open('', '_blank');\n newWindow.document.write(printContent.innerHTML);\n newWindow.document.close();\n newWindow.print();\n onClose();\n };\n\n const exportToExcel = () => {\n if (!salesOrder || salesOrder.length === 0) {\n console.error(\"No order details available for export.\");\n return;\n }\n \n const invoiceData = [\n [\"Invoice Details\"],\n [\"Order No\", orderId?.slice(-7) || \"N/A\"],\n [\"Order Date\", new Date().toLocaleDateString('en-GB')],\n [],\n [\"S.NO\", \"Product Name\", \"Quantity\", \"Unit Price (₵)\", \"Total Price (₵)\"],\n ...salesOrder.map((order, index) => [\n index + 1,\n order.productName,\n order.quantity,\n order.price,\n order.total,\n ]),\n ];\n \n const ws = XLSX.utils.aoa_to_sheet(invoiceData);\n const wb = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(wb, ws, \"Invoice\");\n \n const excelBuffer = XLSX.write(wb, { bookType: \"xlsx\", type: \"array\" });\n const data = new Blob([excelBuffer], { type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\" });\n \n saveAs(data, `Invoice_${orderId?.slice(-7) || \"Unknown\"}.xlsx`);\n };\n \n\n \n if (loading) return ;\n if (error) return
    Error loading order: {error.message || 'An error occurred'}
    ;\n if (!salesOrder || salesOrder.length === 0) return
    No order details found.
    ;\n\n const backendBaseURL = 'https://smfteapi.salesmate.app/';\n const totalAmount = salesOrder.reduce((acc, order) => acc + order.total, 0);\n const address = deliveryAddress?.[0] || {};\n\n return (\n \n
    \n \n Order Details\n
    \n
    \n \n Date & Time: {new Date(salesOrder[0]?.orderDate).toLocaleString()}\n
    \n \n }\n visible={true}\n footer={null}\n width={700}\n onCancel={onClose}\n className=\"rounded-lg shadow-xl\"\n style={{\n maxHeight: '85vh',\n overflowY: 'auto',\n borderRadius: '4px',\n scrollbarWidth: 'thin',\n \n }}\n bodyStyle={{\n overflowY: 'auto',\n maxHeight: '70vh',\n padding: '20px',\n scrollbarWidth: 'thin',\n }}\n >\n \n
    \n {/* Customer Information */}\n
    \n \n Customer Information\n \n \n \n \n Name:\n \n
    \n {salesOrder[0]?.fullName}\n \n \n \n Contact:\n \n
    \n {salesOrder[0]?.contactNumber}\n \n \n \n Address:\n \n
    \n {salesOrder[0]?.address}\n \n
    \n
    \n\n {/* Delivery Address */}\n
    \n \n Delivery Address\n \n {address.recipientName ? (\n \n \n \n Recipient Name:\n \n
    \n {address.recipientName}\n \n \n \n Contact:\n \n
    \n {address.recipientContactNumber}\n \n \n \n Address:\n \n
    \n {address.address}\n \n \n \n Note:\n \n
    \n {address.orderNote}\n \n
    \n ) : (\n No delivery address available.\n )}\n
    \n\n {/* Order Details */}\n
    \n \n Order Details\n \n {salesOrder.map((order, index) => {\n const imagePath = order?.imagePath;\n const imageUrl = imagePath\n ? `${backendBaseURL}Media/Products_Images/${imagePath.split('\\\\').pop()}`\n : null;\n\n return (\n \n \n \n {imageUrl ? (\n \n ) : (\n Image not available.\n )}\n \n \n Product: {order.productName}\n
    \n Quantity: {order.quantity}\n
    \n Price: ₵{formatPrice(order.price)}.00\n
    \n Total: ₵{formatPrice(order.total)}.00\n
    \n \n \n
    \n \n );\n })}\n
    \n\n {/* Total Amount */}\n \n \n \n Total Amount: ₵{formatPrice(totalAmount)}.00\n \n \n
    \n\n {/* Buttons */}\n \n \n \n \n Print Invoice\n \n \n \n \n Export to Excel\n \n\n\n \n \n \n\n\n\n {/* Hidden Printable Invoice */}\n
    \n \n \n \n
    \n \n );\n};\n\nexport default OrderDetailsModal;\n","import React, { useEffect, useState, useCallback } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchOrdersByDate,fetchSalesOrderById } from \"../../Redux/slice/orderSlice\";\nimport {\n DatePicker,\n Button,\n Table,\n message,\n Empty,\n Input,\n Tag,\n Tooltip,\n Checkbox \n} from \"antd\";\nimport { EyeOutlined } from \"@ant-design/icons\";\nimport UpdateOrderCycleModal from \"./UpdateOrderCycleModal\";\nimport OrderDetailsModal from \"./OrderDetailsModal\";\nimport spin from \"../../assets/load.gif\"\nimport * as XLSX from \"xlsx\";\n\nconst { RangePicker } = DatePicker;\nconst { Search } = Input;\n\nconst Orders = () => {\n const dispatch = useDispatch();\n const { orders = [], loading } = useSelector((state) => state.orders);\n const [selectedCheckboxes, setSelectedCheckboxes] = useState({});\n const [selectAll, setSelectAll] = useState(false);\n const [dateRange, setDateRange] = useState([null, null]);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [isDetailModalOpen, setIsDetailModalOpen] = useState(false);\n const [selectedOrderId, setSelectedOrderId] = useState(null);\n const [selectedOrderCycle, setSelectedOrderCycle] = useState(null);\n const [searchText, setSearchText] = useState(\"\");\n const [pagination, setPagination] = useState({\n current: 1,\n pageSize: 10,\n });\n const [cachedOrderDetails, setCachedOrderDetails] = useState({});\n\n const fetchCurrentMonthOrders = useCallback(() => {\n const currentDate = new Date(); // Today's date\n const startOfMonth = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1); // Start of the month\n const nextDay = new Date(currentDate);\n nextDay.setDate(nextDay.getDate() + 1); // A day after the current date\n \n const from = startOfMonth.toISOString().split(\"T\")[0];\n const to = nextDay.toISOString().split(\"T\")[0];\n \n dispatch(fetchOrdersByDate({ from, to }));\n }, [dispatch]);\n \n \n\n const handleDateChange = (dates) => {\n if (dates) {\n setDateRange(dates);\n } else {\n setDateRange([null, null]);\n }\n };\n\n const handleFetchOrders = () => {\n if (dateRange[0] && dateRange[1]) {\n const from = dateRange[0].format(\"YYYY-MM-DD\");\n const to = dateRange[1].add(1, \"day\").format(\"YYYY-MM-DD\");\n dispatch(fetchOrdersByDate({ from, to }));\n } else {\n message.error(\"Please select a date range\");\n }\n };\n\n const handleSearch = (value) => {\n setSearchText(value.toLowerCase());\n setPagination({ ...pagination, current: 1 });\n };\n\n const handleTableChange = (pagination) => {\n setPagination(pagination);\n };\n\n useEffect(() => {\n fetchCurrentMonthOrders();\n }, [fetchCurrentMonthOrders]);\n\n const openCycleModal = (order) => {\n setSelectedOrderId(order.orderCode);\n setSelectedOrderCycle(order.orderCycle);\n setIsModalOpen(true);\n };\n const handleSelectAll = () => {\n const newCheckedState = !selectAll;\n setSelectAll(newCheckedState);\n const updatedCheckboxes = {};\n groupedOrders.forEach((order) => {\n updatedCheckboxes[order.orderCode] = newCheckedState;\n });\n setSelectedCheckboxes(updatedCheckboxes);\n };\n const handleCheckboxClick = (orderCode) => {\n setSelectedCheckboxes((prev) => ({\n ...prev,\n [orderCode]: !prev[orderCode], // Toggle checkbox selection\n }));\n };\n\n const openDetailModal = async (orderId) => {\n if (!cachedOrderDetails[orderId]) {\n const orderDetails = await fetchSalesOrderById(orderId);\n setCachedOrderDetails((prev) => ({ ...prev, [orderId]: orderDetails }));\n }\n setSelectedOrderId(orderId);\n setIsDetailModalOpen(true);\n\n // Select checkbox when opening the details\n handleCheckboxClick(orderId);\n };\n\n\n const groupedOrders = Object.values(\n (orders || []).reduce((acc, order) => {\n if (!acc[order.orderCode]) {\n acc[order.orderCode] = { ...order, orders: [order] };\n } else {\n acc[order.orderCode].orders.push(order);\n }\n return acc;\n }, {})\n );\n\n const filteredOrders = groupedOrders\n .filter((order) => {\n if (!order) return false;\n const fullNameMatch =\n order.fullName && order.fullName.toLowerCase().includes(searchText);\n const statusMatch =\n order.orderCycle && order.orderCycle.toLowerCase().includes(searchText);\n return fullNameMatch || statusMatch;\n })\n .sort((a, b) => new Date(b.orderDate) - new Date(a.orderDate));\n\n const exportToExcel = () => {\n if (!filteredOrders.length) {\n message.warning(\"No orders available to export\");\n return;\n }\n \n const formattedData = filteredOrders.map((order) => ({\n \"Order Code\": order.orderCode,\n \"Order Date\": order.orderDate,\n \"Full Name\": order.fullName,\n \"Contact Number\": order.contactNumber,\n \"Payment Mode\": order.paymentMode || \"N/A\",\n Status: order.orderCycle,\n }));\n \n const worksheet = XLSX.utils.json_to_sheet(formattedData);\n const workbook = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(workbook, worksheet, \"Orders\");\n \n XLSX.writeFile(workbook, \"Orders.xlsx\");\n };\n const columns = [\n {\n title: (\n
    \n \n Select\n
    \n ),\n key: \"select\",\n render: (_, record) => (\n handleCheckboxClick(record.orderCode)}\n />\n ),\n },\n {\n title: \"Order Code\",\n dataIndex: \"orderCode\",\n key: \"orderCode\",\n render: (orderCode) => orderCode.slice(-5),\n },\n {\n title: \"Order Date\",\n dataIndex: \"orderDate\",\n key: \"orderDate\",\n render: (date) => {\n if (date === \"0001-01-01\") return \"N/A\";\n \n // Parse the date string as UTC\n const utcDate = new Date(date);\n \n // Convert UTC to GMT (no timezone offset)\n const options = {\n timeZone: \"UTC\", // GMT timezone\n dateStyle: \"medium\", // Medium date format\n timeStyle: \"short\", // Short time format\n };\n \n // Format the time in GMT\n const gmtTime = new Intl.DateTimeFormat(\"en-GB\", options).format(utcDate);\n \n return gmtTime;\n },\n sorter: (a, b) =>\n new Date(a.orderDate).getTime() - new Date(b.orderDate).getTime(),\n }\n \n \n \n, \n { title: \"Full Name\", dataIndex: \"fullName\", key: \"fullName\" },\n { title: \"Contact Number\", dataIndex: \"contactNumber\", key: \"contactNumber\" },\n {\n title: \"Payment Mode\",\n dataIndex: \"paymentMode\",\n key: \"paymentMode\",\n render: (paymentMode) => paymentMode || \"N/A\",\n },\n {\n title: \"Status\",\n dataIndex: \"orderCycle\",\n key: \"orderCycle\",\n render: (orderCycle, record) => {\n const colors = {\n \"Order Placement\": \"orange\",\n Processing: \"blue\",\n Confirmed: \"green\",\n Pending: \"yellow\",\n Unreachable: \"red\",\n \"Out of Stock\": \"red\",\n \"Wrong Number\": \"purple\",\n Cancelled: \"red\",\n \"Not Answered\": \"yellow\",\n Delivery: \"green\",\n Completed: \"lime\",\n };\n return (\n \n openCycleModal(record)}\n style={{ cursor: \"pointer\" }}\n >\n {orderCycle}\n
    \n
    \n );\n },\n },\n {\n title: \"Actions\",\n key: \"actions\",\n render: (_, record) => (\n \n }\n onClick={() => openDetailModal(record.orderCode)}\n shape=\"circle\"\n />\n \n ),\n },\n ];\n \n return (\n
    \n
    Orders
    \n
    \n \n \n Fetch Orders\n \n
    \n \n
    \n
    \n Total Filtered Orders: {filteredOrders.length}\n
    \n \n
    \n\n\n {loading ? (\n
    \n \n \"Loading...\"\n
    \n Please wait...\n
    \n
    \n \n ) : filteredOrders.length > 0 ? (\n \n ) : (\n \n )}\n setIsModalOpen(false)}\n orderCode={selectedOrderId}\n orderCycle={selectedOrderCycle}\n fetchOrders={fetchCurrentMonthOrders}\n />\n {isDetailModalOpen && (\n setIsDetailModalOpen(false)}\n />\n )}\n
    \n );\n};\n\nexport default Orders;\n","import { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchBrands } from \"../Redux/slice/brandSlice\";\nimport {\n fetchShowrooms,\n addShowroom,\n updateShowroom,\n} from \"../Redux/slice/showRoomSlice\";\nimport {\n Button,\n Select,\n Typography,\n message,\n Spin,\n Modal,\n Form,\n Input,\n Pagination,\n Table\n} from \"antd\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport { DatePicker } from \"antd\";\nimport dayjs from \"dayjs\";\n\nimport { EditOutlined, PlusOutlined } from \"@ant-design/icons\";\n\nconst { Title } = Typography;\n\nconst ShowRoom = () => {\n const dispatch = useDispatch();\n const { brands, loading: loadingBrands } = useSelector((state) => state.brands);\n const { showrooms, loading: loadingShowrooms } = useSelector((state) => state.showrooms);\n\n const [form] = Form.useForm();\n const [modalVisible, setModalVisible] = useState(false);\n const [isEditing, setIsEditing] = useState(false);\n const [currentShowroom, setCurrentShowroom] = useState(null);\n const [currentPage, setCurrentPage] = useState(1);\n const showroomsPerPage = 8; // Showrooms per page\n\n useEffect(() => {\n dispatch(fetchBrands());\n dispatch(fetchShowrooms());\n }, [dispatch]);\n\nconst onFinish = (values) => {\n const showRoomID = currentShowroom ? currentShowroom.showRoomID : uuidv4();\n\n // Convert elapsed time to ISO format\n const showroomData = {\n Showroomid: showRoomID,\n ...values,\n elaspedTime: values.elaspedTime\n ? dayjs(values.elaspedTime).toISOString()\n : new Date().toISOString(),\n };\n if (isEditing) {\n dispatch(updateShowroom({ showRoomID, ...showroomData }))\n .unwrap()\n .then(() => {\n message.success(\"Showroom updated successfully!\");\n resetForm();\n })\n .catch((error) => {\n message.error(\"Failed to update showroom: \" + error.message);\n });\n } else {\n dispatch(addShowroom(showroomData))\n .unwrap()\n .then(() => {\n message.success(\"Showroom added successfully!\");\n resetForm();\n })\n .catch((error) => {\n message.error(\"Failed to add showroom: \" + error.message);\n });\n }\n};\n\nconst handleEditShowroom = (showroom) => {\n setCurrentShowroom(showroom);\n form.setFieldsValue({\n showRoomID: showroom.showRoomID,\n showRoomName: showroom.showRoomName,\n brandId: showroom.brandId,\n showAtHomePage: showroom.showAtHomePage,\n orderIndex: showroom.orderIndex,\n headerColorCode: showroom.headerColorCode,\n elaspedTime: showroom.elaspedTime ? dayjs(showroom.elaspedTime) : null, // Convert string to DatePicker format\n });\n setIsEditing(true);\n setModalVisible(true);\n};\n\n \n\nconst resetForm = () => {\n form.resetFields();\n setModalVisible(false);\n setIsEditing(false);\n setCurrentShowroom(null);\n dispatch(fetchShowrooms()); // Refresh showrooms after adding/updating\n };\n\n const showroomsWithBrandNames = showrooms.map((showroom) => {\n const brand = brands.find((b) => b.brandId === showroom.brandId);\n return {\n ...showroom,\n brandName: brand ? brand.brandName : \"Unknown\",\n };\n });\n\n // Pagination logic\n const indexOfLastShowroom = currentPage * showroomsPerPage;\n const indexOfFirstShowroom = indexOfLastShowroom - showroomsPerPage;\n const currentShowrooms = showroomsWithBrandNames.slice(\n indexOfFirstShowroom,\n indexOfLastShowroom\n );\n const handleElapsedTimeChange = (_, dateString) => {\n form.setFieldsValue({ elaspedTime: dateString }); // Set value in form\n };\n \n // Table Columns\n const columns = [\n {\n title: \"Showroom Name\",\n dataIndex: \"showRoomName\",\n key: \"showRoomName\",\n },\n {\n title: \"Brand\",\n dataIndex: \"brandName\",\n key: \"brandName\",\n },\n {\n title: \"Show on Homepage\",\n dataIndex: \"showAtHomePage\",\n key: \"showAtHomePage\",\n render: (value) => (value === 1 ? \"Yes\" : \"No\"),\n },\n {\n title: \"Order Index\",\n dataIndex: \"orderIndex\",\n key: \"orderIndex\",\n },\n {\n title: \"Header Color\",\n dataIndex: \"headerColorCode\",\n key: \"headerColorCode\",\n render: (color) => {color},\n },\n {\n title: \"Elapsed Time\",\n dataIndex: \"elaspedTime\",\n key: \"elaspedTime\",\n render: (date) => (dayjs(date).isValid() ? dayjs(date).format(\"YYYY-MM-DD HH:mm:ss\") : \"N/A\"),\n },\n \n \n\n \n {\n title: \"Actions\",\n key: \"actions\",\n render: (_, showroom) => (\n }\n onClick={() => handleEditShowroom(showroom)}\n className=\"bg-green-600 text-white transition rounded-full\"\n >\n Edit\n \n ),\n },\n ];\n\n return (\n
    \n \n Showrooms\n \n\n {loadingBrands || loadingShowrooms ? (\n
    \n \n
    \n ) : (\n <>\n \n\n }\n onClick={() => {\n setModalVisible(true);\n setIsEditing(false);\n }}\n className=\"mb-6 bg-green-600 text-white transition rounded-full\"\n >\n Add New Showroom\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 form.setFieldsValue({ elaspedTime: dateString })}\n />\n\n\n \n \n \n \n \n\n \n\n setCurrentPage(page)}\n pageSize={showroomsPerPage}\n total={showroomsWithBrandNames.length}\n className=\"text-center\"\n showSizeChanger={false}\n showTotal={(total) => `Total ${total} showrooms`}\n />\n \n )}\n
    \n );\n};\n\nexport default ShowRoom;\n","import { useEffect, useState, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchUsers } from \"../Redux/slice/userSlice\";\nimport { Table, Spin, Alert, Input } from \"antd\";\n\nconst { Search } = Input;\n\nconst Users = () => {\n const dispatch = useDispatch();\n const { users = [], loading, error } = useSelector((state) => state.user);\n\n const [searchText, setSearchText] = useState(\"\");\n\n useEffect(() => {\n dispatch(fetchUsers());\n }, [dispatch]);\n\n useEffect(() => {\n\n }, [users]);\n\n const filteredUsers = useMemo(() => {\n if (!searchText) return users;\n const lowercasedValue = searchText.toLowerCase();\n\n return users.filter(\n (user) =>\n user?.fullName?.toLowerCase().includes(lowercasedValue) ||\n user?.contact?.toLowerCase().includes(lowercasedValue) ||\n user?.position?.toLowerCase().includes(lowercasedValue)\n );\n }, [users, searchText]);\n\n const handleSearch = (value) => {\n setSearchText(value);\n };\n\n const columns = [\n { title: \"ID\", dataIndex: \"uuserid\", key: \"uuserid\" },\n { title: \"Name\", dataIndex: \"fullName\", key: \"fullName\" },\n { title: \"Email\", dataIndex: \"email\", key: \"email\" },\n { title: \"Contact\", dataIndex: \"contact\", key: \"contact\" },\n { title: \"Address\", dataIndex: \"address\", key: \"address\" },\n { title: \"Position\", dataIndex: \"position\", key: \"position\" },\n ];\n\n return (\n
    \n

    Users

    \n\n handleSearch(e.target.value)}\n value={searchText}\n style={{ marginBottom: \"20px\", maxWidth: \"500px\" }}\n />\n\n {loading ? (\n
    \n \n
    \n ) : error ? (\n \n ) : filteredUsers.length > 0 ? (\n ({\n ...user,\n key: user.uuserid || index, // Ensure unique row key\n }))}\n columns={columns}\n bordered\n pagination={{ pageSize: 10 }}\n />\n ) : (\n \n )}\n
    \n );\n};\n\nexport default Users;\n","import { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchCustomers } from \"../Redux/slice/customerSlice\";\nimport { Table, Spin, Alert, Input, Button } from \"antd\";\nimport jsPDF from \"jspdf\";\nimport \"jspdf-autotable\";\n\nconst { Search } = Input;\n\nconst Customers = () => {\n const dispatch = useDispatch();\n const { customerList, loading, error } = useSelector((state) => state.customer);\n const [filteredData, setFilteredData] = useState([]);\n const [searchText, setSearchText] = useState(\"\");\n\n useEffect(() => {\n dispatch(fetchCustomers()); // Fetch customers on component mount\n }, [dispatch]);\n\n useEffect(() => {\n if (customerList) {\n const sortedCustomers = [...customerList].sort(\n (a, b) => new Date(b.createdAt) - new Date(a.createdAt)\n );\n setFilteredData(sortedCustomers);\n }\n }, [customerList]);\n\n const handleSearch = (value) => {\n setSearchText(value);\n const lowercasedValue = value.toLowerCase();\n const filtered = customerList.filter((customer) =>\n customer.firstName.toLowerCase().includes(lowercasedValue) ||\n customer.address.toLowerCase().includes(lowercasedValue) ||\n customer.contactNumber.toLowerCase().includes(lowercasedValue) ||\n customer.accountType.toLowerCase().includes(lowercasedValue)\n );\n setFilteredData(filtered);\n };\n\n const downloadPDF = () => {\n const doc = new jsPDF();\n doc.text(\"Customer List\", 14, 20);\n \n // Map table data to include only the last 6 digits of account numbers\n const tableData = filteredData.map((customer, index) => [\n index + 1,\n customer.customerAccountNumber.slice(-6), // Last 6 digits\n customer.firstName,\n customer.lastName,\n customer.contactNumber,\n customer.email,\n customer.address,\n customer.accountType,\n ]);\n \n // Generate PDF with custom header styles\n doc.autoTable({\n head: [\n [\n \"S/N\",\n \"Account Number\",\n \"First Name\",\n \"Last Name\",\n \"Contact Number\",\n \"Email\",\n \"Address\",\n \"Account Type\",\n ],\n ],\n body: tableData,\n startY: 30,\n theme: \"grid\",\n headStyles: { fillColor: [0, 128, 0] }, // Green header\n });\n \n doc.save(\"customers.pdf\");\n };\n \n\n const columns = [\n {\n title: \"Account Number\",\n dataIndex: \"customerAccountNumber\",\n key: \"customerAccountNumber\",\n },\n {\n title: \"First Name\",\n dataIndex: \"firstName\",\n key: \"firstName\",\n },\n {\n title: \"Last Name\",\n dataIndex: \"lastName\",\n key: \"lastName\",\n },\n {\n title: \"Contact Number\",\n dataIndex: \"contactNumber\",\n key: \"contactNumber\",\n },\n {\n title: \"Email\",\n dataIndex: \"email\",\n key: \"email\",\n },\n // {\n // title: \"Password\",\n // dataIndex: \"password\",\n // key: \"password\",\n // },\n \n {\n title: \"Address\",\n dataIndex: \"address\",\n key: \"address\",\n },\n {\n title: \"Account Type\",\n dataIndex: \"accountType\",\n key: \"accountType\",\n },\n ];\n\n if (loading) {\n return ;\n }\n\n if (error) {\n return ;\n }\n\n return (\n
    \n

    Customers

    \n
    \n handleSearch(e.target.value)}\n value={searchText}\n style={{ maxWidth: \"500px\" }}\n />\n \n
    \n record.customerAccountNumber}\n bordered\n pagination={{ pageSize: 10 }}\n />\n
    \n );\n};\n\nexport default Customers;\n","import React, { useState, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Table, Form, Input, Button, Upload, message, Modal, Select, Image } from \"antd\";\nimport { UploadOutlined, EditOutlined, PlusOutlined } from \"@ant-design/icons\";\nimport { postAdvertisment, getAdvertisment, putAdvertisment } from \"../Redux/slice/advertismentSlice\";\n\nconst { Option } = Select;\nconst adOptions = [\"Home Page\", \"Banner\", \"Phone Page\", \"Laptop Page\", \"Tablet Page\"];\n\nconst AdvertisementPage = () => {\n const dispatch = useDispatch();\n const { advertisments, loading } = useSelector((state) => state.advertisment);\n\n const [form] = Form.useForm();\n const [editForm] = Form.useForm();\n const [editModalVisible, setEditModalVisible] = useState(false);\n const [addModalVisible, setAddModalVisible] = useState(false);\n const [selectedAd, setSelectedAd] = useState(null);\n const [selectedAdsName, setSelectedAdsName] = useState(\"Banner\");\n const [imagePreview, setImagePreview] = useState({ visible: false, fileName: \"\" });\n const [previewLogo, setPreviewLogo] = useState(null);\nconst [isModalVisible, setIsModalVisible] = useState(false);\n\n const backendBaseURL = \"https://smfteapi.salesmate.app\";\n\n\n // Fetch Advertisements whenever the selectedAdsName changes\n useEffect(() => {\n dispatch(getAdvertisment(selectedAdsName))\n .unwrap()\n .then((data) => {\n console.log(\"Fetched data:\", data); // Check what is returned\n })\n .catch(() => {\n message.error(\"Failed to fetch advertisements\");\n });\n\n }, [selectedAdsName, dispatch]);\n\n // Add Advertisement\n const handlePost = (values) => {\n const formData = new FormData();\n formData.append(\"AdsName\", values.AdsName);\n formData.append(\"IndexOrder\", values.IndexOrder);\n formData.append(\"AdsNote\", values.AdsNote);\n formData.append(\"FileName\", values.FileName.file);\n\n dispatch(postAdvertisment(formData))\n .unwrap()\n .then(() => {\n message.success(\"Advertisement added successfully\");\n form.resetFields();\n setSelectedAdsName(values.AdsName);\n setAddModalVisible(false);\n })\n .catch((err) => message.error(err));\n };\n\n // Edit Advertisement\n const handleEdit = (values) => {\n const fileId = values.Fileid || selectedAd?.fileId; // Ensure correct key\n \n console.log(\"File ID extracted:\", fileId);\n \n if (!fileId) {\n message.error(\"File ID is missing!\");\n return;\n }\n \n let fileToUpload = null;\n if (values.FileName && values.FileName.fileList && values.FileName.fileList.length > 0) {\n fileToUpload = values.FileName.fileList[0].originFileObj;\n } else {\n message.error(\"Please upload an image.\");\n return;\n }\n \n console.log(\"File to Upload:\", fileToUpload);\n \n const formData = new FormData();\n formData.append(\"Fileid\", fileId);\n formData.append(\"AdsName\", values.AdsName);\n formData.append(\"IndexOrder\", values.IndexOrder);\n formData.append(\"AdsNote\", values.AdsNote);\n formData.append(\"FileName\", fileToUpload);\n \n // Debugging: Log formData entries\n console.log(\"FormData before dispatch:\");\n for (let [key, value] of formData.entries()) {\n console.log(key, value);\n }\n \n dispatch(putAdvertisment({ Fileid: fileId, AdsName: values.AdsName, IndexOrder: values.IndexOrder, AdsNote: values.AdsNote, FileName: fileToUpload }))\n .unwrap()\n .then(() => {\n message.success(\"Advertisement updated successfully\");\n setEditModalVisible(false);\n })\n .catch((err) => {\n console.error(\"Update failed:\", err);\n message.error(err);\n });\n };\n \n \n\n // Open Edit Modal\n \n const handleEditClick = (record) => {\n console.log(\"Selected Ad Record:\", record); // Debugging\n \n setSelectedAd(record);\n editForm.setFieldsValue({\n AdsName: record.adsName,\n IndexOrder: record.indexOrder,\n AdsNote: record.adsNote,\n Fileid: record.fileId, // Ensure this matches API expectations\n });\n \n console.log(\"Form values set in modal:\", {\n AdsName: record.adsName,\n IndexOrder: record.indexOrder,\n AdsNote: record.adsNote,\n Fileid: record.fileId,\n });\n \n setEditModalVisible(true);\n };\n \n \n // Open Image Preview\n const handleImageClick = (imageUrl) => {\n if (imageUrl) {\n setPreviewLogo(imageUrl);\n setIsModalVisible(true);\n } \n };\n \n\n // Table Columns\n const columns = [\n { title: \"File ID\", dataIndex: \"fileId\", key: \"fileId\" },\n { title: \"Ads Name\", dataIndex: \"adsName\", key: \"adsName\" },\n { title: \"Ads Note\", dataIndex: \"adsNote\", key: \"adsNote\" },\n {\n title: \"Image\",\n dataIndex: \"fileName\",\n key: \"fileName\",\n render: (fileName) => {\n if (!fileName) {\n return No Image; // Show a fallback message\n }\n \n const imageUrl = `${backendBaseURL}/Media/Ads/${fileName.split(\"\\\\\").pop()}`;\n return (\n handleImageClick(imageUrl)}\n />\n );\n },\n },\n \n \n {\n title: \"Actions\",\n key: \"actions\",\n render: (_, record) => (\n \n ),\n },\n ];\n\n return (\n
    \n

    Manage Advertisements

    \n\n {/* Dropdown & Fetch Button */}\n
    \n \n {adOptions.map((option) => (\n \n ))}\n \n \n
    \n\n {/* Advertisement Table */}\n \n\n {/* Image Modal */}\n setImagePreview({ visible: false, fileName: \"\" })}\n >\n \"Preview\"\n \n\n {/* Add Advertisement Modal */}\n setAddModalVisible(false)}\n footer={null}\n >\n
    \n \n \n \n \n \n \n \n \n \n \n false} maxCount={1}>\n \n \n \n \n
    \n \n\n {/* Edit Advertisement Modal */}\n setEditModalVisible(false)}\n footer={null}\n >\n
    \n \n \n \n \n \n \n \n \n \n \n false} maxCount={1}>\n \n \n\n\n \n
    \n \n setIsModalVisible(false)}\n>\n \"Preview\"\n\n\n
    \n );\n};\n\nexport default AdvertisementPage;\n","import React from 'react';\nimport { useLocation, Navigate } from 'react-router-dom';\nimport AdminLayout from '../Layout/Layout'; // Assuming AdminLayout provides sidebar and layout\nimport Dashboard from './Dashboard';\nimport Brands from './Brands';\nimport Categories from './Categories';\nimport Products from './Products/Products';\nimport Orders from './Orders/Orders';\nimport ShowRoom from './ShowRoom';\nimport Users from './Users';\nimport Customers from './Customers';\nimport AdvertisementPage from './Advertisment';\n\nconst AdminPage = () => {\n const location = useLocation();\n const currentPath = location.pathname;\n\n // Function to render content based on the current path\n const renderContent = () => {\n switch (currentPath) {\n case '/admin/dashboard':\n return ;\n case '/admin/brands':\n return ;\n case '/admin/categories':\n return ;\n case '/admin/products':\n return ;\n case '/admin/orders':\n return ;\n case '/admin/showroom':\n return ;\n case \"/admin/banner\":\n return ;\n case '/admin/users':\n return ;\n case '/admin/customers':\n return ;\n case '/admin':\n return ;\n default:\n return ;\n }\n };\n\n return (\n \n
    \n {renderContent()}\n
    \n
    \n );\n};\n\nexport default AdminPage\n","// This icon file is generated automatically.\nvar DashboardOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M924.8 385.6a446.7 446.7 0 00-96-142.4 446.7 446.7 0 00-142.4-96C631.1 123.8 572.5 112 512 112s-119.1 11.8-174.4 35.2a446.7 446.7 0 00-142.4 96 446.7 446.7 0 00-96 142.4C75.8 440.9 64 499.5 64 560c0 132.7 58.3 257.7 159.9 343.1l1.7 1.4c5.8 4.8 13.1 7.5 20.6 7.5h531.7c7.5 0 14.8-2.7 20.6-7.5l1.7-1.4C901.7 817.7 960 692.7 960 560c0-60.5-11.9-119.1-35.2-174.4zM761.4 836H262.6A371.12 371.12 0 01140 560c0-99.4 38.7-192.8 109-263 70.3-70.3 163.7-109 263-109 99.4 0 192.8 38.7 263 109 70.3 70.3 109 163.7 109 263 0 105.6-44.5 205.5-122.6 276zM623.5 421.5a8.03 8.03 0 00-11.3 0L527.7 506c-18.7-5-39.4-.2-54.1 14.5a55.95 55.95 0 000 79.2 55.95 55.95 0 0079.2 0 55.87 55.87 0 0014.5-54.1l84.5-84.5c3.1-3.1 3.1-8.2 0-11.3l-28.3-28.3zM490 320h44c4.4 0 8-3.6 8-8v-80c0-4.4-3.6-8-8-8h-44c-4.4 0-8 3.6-8 8v80c0 4.4 3.6 8 8 8zm260 218v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8h-80c-4.4 0-8 3.6-8 8zm12.7-197.2l-31.1-31.1a8.03 8.03 0 00-11.3 0l-56.6 56.6a8.03 8.03 0 000 11.3l31.1 31.1c3.1 3.1 8.2 3.1 11.3 0l56.6-56.6c3.1-3.1 3.1-8.2 0-11.3zm-458.6-31.1a8.03 8.03 0 00-11.3 0l-31.1 31.1a8.03 8.03 0 000 11.3l56.6 56.6c3.1 3.1 8.2 3.1 11.3 0l31.1-31.1c3.1-3.1 3.1-8.2 0-11.3l-56.6-56.6zM262 530h-80c-4.4 0-8 3.6-8 8v44c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8v-44c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"dashboard\", \"theme\": \"outlined\" };\nexport default DashboardOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport DashboardOutlinedSvg from \"@ant-design/icons-svg/es/asn/DashboardOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar DashboardOutlined = function DashboardOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: DashboardOutlinedSvg\n }));\n};\n\n/**![dashboard](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkyNC44IDM4NS42YTQ0Ni43IDQ0Ni43IDAgMDAtOTYtMTQyLjQgNDQ2LjcgNDQ2LjcgMCAwMC0xNDIuNC05NkM2MzEuMSAxMjMuOCA1NzIuNSAxMTIgNTEyIDExMnMtMTE5LjEgMTEuOC0xNzQuNCAzNS4yYTQ0Ni43IDQ0Ni43IDAgMDAtMTQyLjQgOTYgNDQ2LjcgNDQ2LjcgMCAwMC05NiAxNDIuNEM3NS44IDQ0MC45IDY0IDQ5OS41IDY0IDU2MGMwIDEzMi43IDU4LjMgMjU3LjcgMTU5LjkgMzQzLjFsMS43IDEuNGM1LjggNC44IDEzLjEgNy41IDIwLjYgNy41aDUzMS43YzcuNSAwIDE0LjgtMi43IDIwLjYtNy41bDEuNy0xLjRDOTAxLjcgODE3LjcgOTYwIDY5Mi43IDk2MCA1NjBjMC02MC41LTExLjktMTE5LjEtMzUuMi0xNzQuNHpNNzYxLjQgODM2SDI2Mi42QTM3MS4xMiAzNzEuMTIgMCAwMTE0MCA1NjBjMC05OS40IDM4LjctMTkyLjggMTA5LTI2MyA3MC4zLTcwLjMgMTYzLjctMTA5IDI2My0xMDkgOTkuNCAwIDE5Mi44IDM4LjcgMjYzIDEwOSA3MC4zIDcwLjMgMTA5IDE2My43IDEwOSAyNjMgMCAxMDUuNi00NC41IDIwNS41LTEyMi42IDI3NnpNNjIzLjUgNDIxLjVhOC4wMyA4LjAzIDAgMDAtMTEuMyAwTDUyNy43IDUwNmMtMTguNy01LTM5LjQtLjItNTQuMSAxNC41YTU1Ljk1IDU1Ljk1IDAgMDAwIDc5LjIgNTUuOTUgNTUuOTUgMCAwMDc5LjIgMCA1NS44NyA1NS44NyAwIDAwMTQuNS01NC4xbDg0LjUtODQuNWMzLjEtMy4xIDMuMS04LjIgMC0xMS4zbC0yOC4zLTI4LjN6TTQ5MCAzMjBoNDRjNC40IDAgOC0zLjYgOC04di04MGMwLTQuNC0zLjYtOC04LThoLTQ0Yy00LjQgMC04IDMuNi04IDh2ODBjMCA0LjQgMy42IDggOCA4em0yNjAgMjE4djQ0YzAgNC40IDMuNiA4IDggOGg4MGM0LjQgMCA4LTMuNiA4LTh2LTQ0YzAtNC40LTMuNi04LTgtOGgtODBjLTQuNCAwLTggMy42LTggOHptMTIuNy0xOTcuMmwtMzEuMS0zMS4xYTguMDMgOC4wMyAwIDAwLTExLjMgMGwtNTYuNiA1Ni42YTguMDMgOC4wMyAwIDAwMCAxMS4zbDMxLjEgMzEuMWMzLjEgMy4xIDguMiAzLjEgMTEuMyAwbDU2LjYtNTYuNmMzLjEtMy4xIDMuMS04LjIgMC0xMS4zem0tNDU4LjYtMzEuMWE4LjAzIDguMDMgMCAwMC0xMS4zIDBsLTMxLjEgMzEuMWE4LjAzIDguMDMgMCAwMDAgMTEuM2w1Ni42IDU2LjZjMy4xIDMuMSA4LjIgMy4xIDExLjMgMGwzMS4xLTMxLjFjMy4xLTMuMSAzLjEtOC4yIDAtMTEuM2wtNTYuNi01Ni42ek0yNjIgNTMwaC04MGMtNC40IDAtOCAzLjYtOCA4djQ0YzAgNC40IDMuNiA4IDggOGg4MGM0LjQgMCA4LTMuNiA4LTh2LTQ0YzAtNC40LTMuNi04LTgtOHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(DashboardOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'DashboardOutlined';\n}\nexport default RefIcon;","import React, { useState } from 'react';\nimport { Layout, Menu, Button, Typography } from 'antd';\nimport {\n DashboardOutlined,\n ShoppingOutlined,\n MenuFoldOutlined,\n MenuUnfoldOutlined,\n} from '@ant-design/icons';\nimport { useNavigate, useLocation } from 'react-router-dom';\n\nconst { Sider, Content } = Layout;\nconst { Title } = Typography;\n\nconst GREEN_COLOR = \"#3F6634\";\n\nconst AgentHome = ({ children }) => {\n const [collapsed, setCollapsed] = useState(false);\n const navigate = useNavigate();\n const location = useLocation(); // Get current location\n\n const toggleCollapse = () => setCollapsed(!collapsed);\n\n // Function to determine the active menu item based on the current route\n const getSelectedKey = () => {\n const path = location.pathname;\n if (path.includes('/orders')) {\n return '2'; // Orders\n }\n return '1'; // Dashboard\n };\n\n return (\n \n {/* Sidebar */}\n \n {/* Sidebar Header */}\n \n {!collapsed && Agent Panel}\n : }\n style={{\n color: 'white',\n fontSize: 16,\n }}\n />\n \n\n {/* Sidebar Menu */}\n \n }\n onClick={() => navigate('/agent-dashboard')}\n style={{\n margin: '8px 0',\n color: 'white',\n }}\n >\n Dashboard\n \n }\n onClick={() => navigate('/agent-dashboard/orders')}\n style={{\n margin: '8px 0',\n color: 'white',\n }}\n >\n Orders\n \n \n \n\n {/* Content Area */}\n \n \n {children}\n \n \n \n );\n};\n\nexport default AgentHome;\n","import React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchOrdersByThirdParty } from \"../../Redux/slice/orderSlice\";\nimport { DatePicker, Table, Spin, Tag } from \"antd\";\nimport { EyeOutlined } from \"@ant-design/icons\";\nimport moment from \"moment\";\nimport OrderModal from \"../../Pages/OrderHistory/OrderModal\"; // Import the new OrderModal component\n\nconst AgentOrders = () => {\n const dispatch = useDispatch();\n const ordersData = useSelector((state) => state.orders);\n\n const orders = ordersData?.orders || [];\n const loading = ordersData?.loading || {};\n const error = ordersData?.error || {};\n\n const today = moment();\n const defaultFromDate = moment(\"01/01/2000\", \"MM/DD/YYYY\");\n const defaultToDate = today.clone().add(1, \"days\");\n\n const [dateRange, setDateRange] = useState([defaultFromDate, defaultToDate]);\n const [isModalVisible, setIsModalVisible] = useState(false);\n const [selectedOrderId, setSelectedOrderId] = useState(null);\n\n const customerObject = JSON.parse(localStorage.getItem(\"customer\"));\n const ThirdPartyAccountNumber = customerObject?.customerAccountNumber;\n\n useEffect(() => {\n if (ThirdPartyAccountNumber) {\n const [from, to] = dateRange.map((date) => date.format(\"MM/DD/YYYY\"));\n dispatch(fetchOrdersByThirdParty({ from, to, ThirdPartyAccountNumber }));\n }\n }, [dateRange, ThirdPartyAccountNumber, dispatch]);\n\n const handleDateChange = (dates) => {\n if (dates) {\n setDateRange(dates);\n }\n };\n\n const handleViewOrder = (orderId) => {\n setSelectedOrderId(orderId);\n setIsModalVisible(true);\n };\n\n const handleModalClose = () => {\n setIsModalVisible(false);\n };\n\n const columns = [\n {\n title: \"Order ID\",\n dataIndex: \"orderId\",\n key: \"orderId\",\n render: (orderId) => orderId.slice(-6),\n },\n {\n title: \"Order Date\",\n dataIndex: \"orderDate\",\n key: \"orderDate\",\n sorter: (a, b) => moment(b.orderDate).isBefore(moment(a.orderDate)) ? 1 : -1, // Sort by date\n },\n {\n title: \"Order Status\",\n dataIndex: \"orderCycle\",\n key: \"orderCycle\",\n render: (orderCycle) => {\n let color;\n switch (orderCycle) {\n case \"Order Placement\":\n color = \"orange\";\n break;\n case \"Processing\":\n color = \"blue\";\n break;\n case \"Confirmed\":\n color = \"green\";\n break;\n case \"Pending\":\n color = \"orange\";\n break;\n case \"Unreachable\":\n color = \"red\";\n break;\n case \"Wrong Number\":\n color = \"purple\";\n break;\n case \"Cancelled\":\n color = \"gray\";\n break;\n case \"Not Answered\":\n color = \"cyan\";\n break;\n case \"Delivery\":\n color = \"gold\";\n break;\n case \"Completed\":\n color = \"lime\";\n break;\n default:\n color = \"default\";\n break;\n }\n return {orderCycle};\n },\n },\n {\n title: \"Action\",\n key: \"action\",\n render: (_, record) => (\n handleViewOrder(record.orderId)}\n />\n ),\n },\n ];\n\n const transformedOrders = (orders || [])\n .map((order, index) => ({\n key: index,\n orderId: order?.orderCode || \"N/A\",\n orderDate: moment(order?.orderDate).format(\"MM/DD/YYYY\") || \"N/A\",\n customerName: order?.fullName || \"N/A\",\n orderCycle: order?.orderCycle || \"N/A\",\n }))\n .sort((a, b) =>\n moment(b.orderDate).isBefore(moment(a.orderDate)) ? 1 : -1\n ); // Sorting from newest to oldest\n\n return (\n
    \n

    Order History

    \n
    \n \n \n
    \n\n {loading.orders ? (\n \n ) : error.orders ? (\n

    Error: {error.orders}

    \n ) : orders?.length > 0 ? (\n \n ) : (\n

    No orders found.

    \n )}\n\n \n
    \n );\n};\n\nexport default AgentOrders;\n","// This icon file is generated automatically.\nvar RiseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M917 211.1l-199.2 24c-6.6.8-9.4 8.9-4.7 13.6l59.3 59.3-226 226-101.8-101.7c-6.3-6.3-16.4-6.2-22.6 0L100.3 754.1a8.03 8.03 0 000 11.3l45 45.2c3.1 3.1 8.2 3.1 11.3 0L433.3 534 535 635.7c6.3 6.2 16.4 6.2 22.6 0L829 364.5l59.3 59.3a8.01 8.01 0 0013.6-4.7l24-199.2c.7-5.1-3.7-9.5-8.9-8.8z\" } }] }, \"name\": \"rise\", \"theme\": \"outlined\" };\nexport default RiseOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport RiseOutlinedSvg from \"@ant-design/icons-svg/es/asn/RiseOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar RiseOutlined = function RiseOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: RiseOutlinedSvg\n }));\n};\n\n/**![rise](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkxNyAyMTEuMWwtMTk5LjIgMjRjLTYuNi44LTkuNCA4LjktNC43IDEzLjZsNTkuMyA1OS4zLTIyNiAyMjYtMTAxLjgtMTAxLjdjLTYuMy02LjMtMTYuNC02LjItMjIuNiAwTDEwMC4zIDc1NC4xYTguMDMgOC4wMyAwIDAwMCAxMS4zbDQ1IDQ1LjJjMy4xIDMuMSA4LjIgMy4xIDExLjMgMEw0MzMuMyA1MzQgNTM1IDYzNS43YzYuMyA2LjIgMTYuNCA2LjIgMjIuNiAwTDgyOSAzNjQuNWw1OS4zIDU5LjNhOC4wMSA4LjAxIDAgMDAxMy42LTQuN2wyNC0xOTkuMmMuNy01LjEtMy43LTkuNS04LjktOC44eiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(RiseOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'RiseOutlined';\n}\nexport default RefIcon;","// This icon file is generated automatically.\nvar FallOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M925.9 804l-24-199.2c-.8-6.6-8.9-9.4-13.6-4.7L829 659.5 557.7 388.3c-6.3-6.2-16.4-6.2-22.6 0L433.3 490 156.6 213.3a8.03 8.03 0 00-11.3 0l-45 45.2a8.03 8.03 0 000 11.3L422 591.7c6.2 6.3 16.4 6.3 22.6 0L546.4 490l226.1 226-59.3 59.3a8.01 8.01 0 004.7 13.6l199.2 24c5.1.7 9.5-3.7 8.8-8.9z\" } }] }, \"name\": \"fall\", \"theme\": \"outlined\" };\nexport default FallOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport FallOutlinedSvg from \"@ant-design/icons-svg/es/asn/FallOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar FallOutlined = function FallOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: FallOutlinedSvg\n }));\n};\n\n/**![fall](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkyNS45IDgwNGwtMjQtMTk5LjJjLS44LTYuNi04LjktOS40LTEzLjYtNC43TDgyOSA2NTkuNSA1NTcuNyAzODguM2MtNi4zLTYuMi0xNi40LTYuMi0yMi42IDBMNDMzLjMgNDkwIDE1Ni42IDIxMy4zYTguMDMgOC4wMyAwIDAwLTExLjMgMGwtNDUgNDUuMmE4LjAzIDguMDMgMCAwMDAgMTEuM0w0MjIgNTkxLjdjNi4yIDYuMyAxNi40IDYuMyAyMi42IDBMNTQ2LjQgNDkwbDIyNi4xIDIyNi01OS4zIDU5LjNhOC4wMSA4LjAxIDAgMDA0LjcgMTMuNmwxOTkuMiAyNGM1LjEuNyA5LjUtMy43IDguOC04Ljl6IiAvPjwvc3ZnPg==) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(FallOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'FallOutlined';\n}\nexport default RefIcon;","import React, { useEffect, useState, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchOrdersByThirdParty } from \"../../Redux/slice/orderSlice\";\nimport { Card, Col, Row, Statistic, Typography } from \"antd\";\nimport { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, BarChart, Bar } from \"recharts\";\nimport { RiseOutlined, FallOutlined, ShoppingCartOutlined, CalendarOutlined, FileTextOutlined } from \"@ant-design/icons\";\nimport moment from \"moment\";\nimport OrderModal from \"../../Pages/OrderHistory/OrderModal\";\n\nconst AgentDashboard = () => {\n const dispatch = useDispatch();\n const ordersData = useSelector((state) => state.orders);\n\n const orders = useMemo(() => ordersData?.orders || [], [ordersData]);\n \n const [weeklyOrders, setWeeklyOrders] = useState([]);\n const [dailyOrders, setDailyOrders] = useState(0);\n const [monthlyOrders, setMonthlyOrders] = useState([]);\n const [percentageChange, setPercentageChange] = useState(0);\n\n const customerObject = JSON.parse(localStorage.getItem(\"customer\"));\n const ThirdPartyAccountNumber = customerObject?.customerAccountNumber;\n\n useEffect(() => {\n if (ThirdPartyAccountNumber) {\n const startDate = \"2020-01-01\"; // From a fixed start date to the current date\n const endDate = moment().add(1, \"days\").format(\"YYYY-MM-DD\");\n dispatch(fetchOrdersByThirdParty({ from: startDate, to: endDate, ThirdPartyAccountNumber }));\n }\n }, [ThirdPartyAccountNumber, dispatch]);\n\n useEffect(() => {\n if (orders.length > 0) {\n const dailyData = calculateDailyOrders(orders);\n const monthlyData = calculateMonthlyOrders(orders);\n setDailyOrders(dailyData[dailyData.length - 1]?.totalOrders || 0);\n setWeeklyOrders(calculateWeeklyOrders(orders));\n setMonthlyOrders(monthlyData);\n updateDailyOrders(dailyData);\n }\n }, [orders]);\n\n const calculateDailyOrders = (orders) => {\n const endDate = moment().add(1, \"day\");\n const startDate = moment().subtract(6, \"days\"); // Last 7 days\n\n const dailyCounts = [];\n let currentDate = startDate.clone();\n\n while (currentDate.isBefore(endDate, \"day\")) {\n const dailyCount = orders.filter((order) =>\n moment(order.orderDate).isSame(currentDate, \"day\")\n ).length;\n\n dailyCounts.push({\n name: currentDate.format(\"MM/DD/YYYY\"),\n totalOrders: dailyCount,\n });\n\n currentDate.add(1, \"day\");\n }\n\n return dailyCounts;\n };\n\n const calculateWeeklyOrders = (orders) => {\n const endDate = moment().add(1, \"day\");\n const startDate = moment().subtract(6, \"days\"); // Last 6 days\n\n const weeklyCounts = [];\n let currentDate = startDate.clone();\n\n while (currentDate.isBefore(endDate, \"day\")) {\n const dailyCount = orders.filter((order) =>\n moment(order.orderDate).isSame(currentDate, \"day\")\n ).length;\n\n weeklyCounts.push({\n name: currentDate.format(\"MM/DD\"),\n totalOrders: dailyCount,\n });\n\n currentDate.add(1, \"day\");\n }\n\n return weeklyCounts;\n };\n\n const calculateMonthlyOrders = (orders) => {\n const endDate = moment().add(1, \"day\");\n const startDate = moment().subtract(5, \"months\").startOf(\"month\");\n\n const monthlyCounts = [];\n let currentMonth = startDate.clone();\n\n while (currentMonth.isSameOrBefore(endDate, \"month\")) {\n const monthlyOrdersCount = orders.filter((order) =>\n moment(order.orderDate).isBetween(\n currentMonth,\n currentMonth.clone().endOf(\"month\"),\n null,\n \"[]\"\n )\n ).length;\n\n monthlyCounts.push({\n name: currentMonth.format(\"MM/YYYY\"),\n totalOrders: monthlyOrdersCount,\n });\n\n currentMonth.add(1, \"month\");\n }\n\n return monthlyCounts;\n };\n\n const updateDailyOrders = (dailyData) => {\n const todayOrders = dailyData[dailyData.length - 1]?.totalOrders || 0;\n const yesterdayOrders = dailyData[dailyData.length - 2]?.totalOrders || 0;\n const change =\n yesterdayOrders > 0\n ? ((todayOrders - yesterdayOrders) / yesterdayOrders) * 100\n : 0;\n\n setPercentageChange(change.toFixed(2));\n };\n\n\n\n const getTotalLengthOfCurrentMonthOrders = () => {\n const monthlyData = calculateMonthlyOrders(orders);\n const currentMonthData = monthlyData.find(\n (month) => month.name === moment().format(\"MM/YYYY\")\n );\n return currentMonthData?.totalOrders || 0;\n };\n\n return (\n
    \n \n Agent Dashboard\n \n\n \n {/* Daily Orders */}\n \n \n
    \n
    \n \n
    \n
    \n = 0 ? \"#3f8600\" : \"#cf1322\",\n fontSize: \"24px\",\n }}\n prefix={percentageChange >= 0 ? : }\n suffix={\n = 0 ? \"#3f8600\" : \"#cf1322\",\n }}\n >\n {`${Math.abs(percentageChange)}%`}\n \n }\n />\n
    \n
    \n
    \n \n\n {/* Total Orders */}\n \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n\n {/* Total Orders This Month */}\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\nexport default AgentDashboard;\n","import { useEffect } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { useParams, useNavigate } from \"react-router-dom\";\nimport { checkOutOrder, updateOrderDelivery } from \"../Redux/slice/orderSlice\";\nimport { clearCart } from \"../Redux/slice/cartSlice\";\nimport { message } from \"antd\";\nimport gif from \"../assets//wired-outline-1092-applause-hover-pinch.gif\"\n\nconst OrderSuccessPage = () => {\n const dispatch = useDispatch();\n const { orderId } = useParams();\n const navigate = useNavigate();\n\n useEffect(() => {\n const handleOrderCompletion = async () => {\n try {\n // Retrieve checkout and address details from localStorage\n const checkoutDetails = JSON.parse(localStorage.getItem(\"checkoutDetails\"));\n const addressDetails = JSON.parse(localStorage.getItem(\"orderAddressDetails\"));\n \n if (!checkoutDetails || !addressDetails) {\n message.warning(\"Order details are missing.\");\n return;\n }\n \n if (checkoutDetails.orderCode !== orderId) {\n message.warning(\"Order details do not match.\");\n return;\n }\n \n const checkoutPayload = {\n Cartid: localStorage.getItem(\"cartId\"),\n customerId: checkoutDetails.customerId,\n orderCode: checkoutDetails.orderCode,\n address: checkoutDetails.address,\n PaymentMode: checkoutDetails.PaymentMode,\n PaymentAccountNumber: checkoutDetails.PaymentAccountNumber,\n customerAccountType: \"Customer\",\n paymentService: \"Mtn\",\n totalAmount: checkoutDetails.totalAmount,\n };\n \n const addressPayload = {\n Customerid: addressDetails.Customerid, // Adjusted field name\n orderCode: addressDetails.orderCode, // Adjusted field name\n address: addressDetails.address,\n recipientName: addressDetails.recipientName, // Adjusted field name\n recipientContactNumber: addressDetails.recipientContactNumber, // Adjusted field name\n orderNote: addressDetails.orderNote || \"N/A\",\n geoLocation: addressDetails.geoLocation\n };\n \n \n // Dispatch actions\n await dispatch(checkOutOrder(checkoutPayload)).unwrap();\n await dispatch(updateOrderDelivery(addressPayload)).unwrap();\n \n // Clear cart and checkout details\n dispatch(clearCart());\n localStorage.removeItem(\"checkoutDetails\");\n localStorage.removeItem(\"orderAddressDetails\");\n \n message.success(\"Your order has been confirmed!\");\n } catch (error) {\n\n message.error(\"Failed to process your order. Please try again.\");\n }\n };\n \n handleOrderCompletion();\n }, [dispatch, orderId]);\n \n\n return (\n
    \n
    \n \n

    Thank You for Your Order!

    \n

    Your order has been successfully received and is being processed.

    \n \n
    \n

    Order ID: {orderId}

    \n \n
    \n\n
    \n navigate('/order-history')}\n className=\"w-full sm:w-auto py-3 px-8 bg-green-500 text-white font-semibold rounded-lg shadow-lg transform transition duration-300 hover:bg-green-600 focus:outline-none focus:ring-2 focus:ring-green-400\"\n >\n View Orders\n \n navigate('/')}\n className=\"w-full sm:w-auto py-3 px-8 bg-white text-green-500 font-semibold rounded-lg shadow-lg border-2 border-green-500 transform transition duration-300 hover:bg-green-50 focus:outline-none focus:ring-2 focus:ring-green-400\"\n >\n Back to Shopping\n \n
    \n
    \n
    \n );\n};\n\nexport default OrderSuccessPage;","import React from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport gif from \"../assets//wired-outline-1092-applause-hover-pinch.gif\"\n\nfunction OrderReceived() {\n const navigate = useNavigate();\n\n const handleViewOrders = () => {\n navigate('/order-history'); // Navigate to the orders page\n };\n\n const handleBackToShopping = () => {\n navigate('/'); // Navigate back to the shopping page\n };\n\n return (\n
    \n
    \n {/* GIF integration */}\n \n

    Thank You for Your Order!

    \n

    \n Your order has been successfully received and is being processed.\n

    \n\n
    \n \n View Orders\n \n \n Back to Shopping\n \n
    \n
    \n
    \n );\n}\n\nexport default OrderReceived;\n","// This icon file is generated automatically.\nvar ReloadOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z\" } }] }, \"name\": \"reload\", \"theme\": \"outlined\" };\nexport default ReloadOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ReloadOutlinedSvg from \"@ant-design/icons-svg/es/asn/ReloadOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ReloadOutlined = function ReloadOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ReloadOutlinedSvg\n }));\n};\n\n/**![reload](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkwOS4xIDIwOS4zbC01Ni40IDQ0LjFDNzc1LjggMTU1LjEgNjU2LjIgOTIgNTIxLjkgOTIgMjkwIDkyIDEwMi4zIDI3OS41IDEwMiA1MTEuNSAxMDEuNyA3NDMuNyAyODkuOCA5MzIgNTIxLjkgOTMyYzE4MS4zIDAgMzM1LjgtMTE1IDM5NC42LTI3Ni4xIDEuNS00LjItLjctOC45LTQuOS0xMC4zbC01Ni43LTE5LjVhOCA4IDAgMDAtMTAuMSA0LjhjLTEuOCA1LTMuOCAxMC01LjkgMTQuOS0xNy4zIDQxLTQyLjEgNzcuOC03My43IDEwOS40QTM0NC43NyAzNDQuNzcgMCAwMTY1NS45IDgyOWMtNDIuMyAxNy45LTg3LjQgMjctMTMzLjggMjctNDYuNSAwLTkxLjUtOS4xLTEzMy44LTI3QTM0MS41IDM0MS41IDAgMDEyNzkgNzU1LjJhMzQyLjE2IDM0Mi4xNiAwIDAxLTczLjctMTA5LjRjLTE3LjktNDIuNC0yNy04Ny40LTI3LTEzMy45czkuMS05MS41IDI3LTEzMy45YzE3LjMtNDEgNDIuMS03Ny44IDczLjctMTA5LjQgMzEuNi0zMS42IDY4LjQtNTYuNCAxMDkuMy03My44IDQyLjMtMTcuOSA4Ny40LTI3IDEzMy44LTI3IDQ2LjUgMCA5MS41IDkuMSAxMzMuOCAyN2EzNDEuNSAzNDEuNSAwIDAxMTA5LjMgNzMuOGM5LjkgOS45IDE5LjIgMjAuNCAyNy44IDMxLjRsLTYwLjIgNDdhOCA4IDAgMDAzIDE0LjFsMTc1LjYgNDNjNSAxLjIgOS45LTIuNiA5LjktNy43bC44LTE4MC45Yy0uMS02LjYtNy44LTEwLjMtMTMtNi4yeiIgLz48L3N2Zz4=) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(ReloadOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'ReloadOutlined';\n}\nexport default RefIcon;","import React, { useEffect, useState } from \"react\";\nimport { Button } from \"antd\";\nimport { ReloadOutlined } from \"@ant-design/icons\";\nimport NoInternetVector from \"../assets/NoInternet.png\"; // Add a vector image in the assets folder\n\nconst NoInternetPage = () => {\n const [isOnline, setIsOnline] = useState(navigator.onLine);\n\n useEffect(() => {\n const handleOnline = () => setIsOnline(true);\n const handleOffline = () => setIsOnline(false);\n\n window.addEventListener(\"online\", handleOnline);\n window.addEventListener(\"offline\", handleOffline);\n\n return () => {\n window.removeEventListener(\"online\", handleOnline);\n window.removeEventListener(\"offline\", handleOffline);\n };\n }, []);\n\n if (isOnline) {\n return null; // Don't display anything if online\n }\n\n return (\n
    \n
    \n \n

    Connection Lost

    \n

    \n Oops! It seems you're not connected to the internet. Please check your\n connection.\n

    \n }\n onClick={() => window.location.reload()}\n className=\"bg-green-500 hover:bg-green-600 text-white px-6 py-2 rounded-lg shadow-md\"\n >\n Retry\n \n
    \n
    \n );\n};\n\nexport default NoInternetPage;\n","// This icon file is generated automatically.\nvar ClusterOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M888 680h-54V540H546v-92h238c8.8 0 16-7.2 16-16V168c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v264c0 8.8 7.2 16 16 16h238v92H190v140h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8h-54v-72h220v72h-54c-4.4 0-8 3.6-8 8v176c0 4.4 3.6 8 8 8h176c4.4 0 8-3.6 8-8V688c0-4.4-3.6-8-8-8zM256 805.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zm288 0c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM288 384V216h448v168H288zm544 421.3c0 1.5-1.2 2.7-2.7 2.7h-58.7c-1.5 0-2.7-1.2-2.7-2.7v-58.7c0-1.5 1.2-2.7 2.7-2.7h58.7c1.5 0 2.7 1.2 2.7 2.7v58.7zM360 300a40 40 0 1080 0 40 40 0 10-80 0z\" } }] }, \"name\": \"cluster\", \"theme\": \"outlined\" };\nexport default ClusterOutlined;\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport ClusterOutlinedSvg from \"@ant-design/icons-svg/es/asn/ClusterOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nvar ClusterOutlined = function ClusterOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: ClusterOutlinedSvg\n }));\n};\n\n/**![cluster](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4OCA2ODBoLTU0VjU0MEg1NDZ2LTkyaDIzOGM4LjggMCAxNi03LjIgMTYtMTZWMTY4YzAtOC44LTcuMi0xNi0xNi0xNkgyNDBjLTguOCAwLTE2IDcuMi0xNiAxNnYyNjRjMCA4LjggNy4yIDE2IDE2IDE2aDIzOHY5MkgxOTB2MTQwaC01NGMtNC40IDAtOCAzLjYtOCA4djE3NmMwIDQuNCAzLjYgOCA4IDhoMTc2YzQuNCAwIDgtMy42IDgtOFY2ODhjMC00LjQtMy42LTgtOC04aC01NHYtNzJoMjIwdjcyaC01NGMtNC40IDAtOCAzLjYtOCA4djE3NmMwIDQuNCAzLjYgOCA4IDhoMTc2YzQuNCAwIDgtMy42IDgtOFY2ODhjMC00LjQtMy42LTgtOC04aC01NHYtNzJoMjIwdjcyaC01NGMtNC40IDAtOCAzLjYtOCA4djE3NmMwIDQuNCAzLjYgOCA4IDhoMTc2YzQuNCAwIDgtMy42IDgtOFY2ODhjMC00LjQtMy42LTgtOC04ek0yNTYgODA1LjNjMCAxLjUtMS4yIDIuNy0yLjcgMi43aC01OC43Yy0xLjUgMC0yLjctMS4yLTIuNy0yLjd2LTU4LjdjMC0xLjUgMS4yLTIuNyAyLjctMi43aDU4LjdjMS41IDAgMi43IDEuMiAyLjcgMi43djU4Ljd6bTI4OCAwYzAgMS41LTEuMiAyLjctMi43IDIuN2gtNTguN2MtMS41IDAtMi43LTEuMi0yLjctMi43di01OC43YzAtMS41IDEuMi0yLjcgMi43LTIuN2g1OC43YzEuNSAwIDIuNyAxLjIgMi43IDIuN3Y1OC43ek0yODggMzg0VjIxNmg0NDh2MTY4SDI4OHptNTQ0IDQyMS4zYzAgMS41LTEuMiAyLjctMi43IDIuN2gtNTguN2MtMS41IDAtMi43LTEuMi0yLjctMi43di01OC43YzAtMS41IDEuMi0yLjcgMi43LTIuN2g1OC43YzEuNSAwIDIuNyAxLjIgMi43IDIuN3Y1OC43ek0zNjAgMzAwYTQwIDQwIDAgMTA4MCAwIDQwIDQwIDAgMTAtODAgMHoiIC8+PC9zdmc+) */\nvar RefIcon = /*#__PURE__*/React.forwardRef(ClusterOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'ClusterOutlined';\n}\nexport default RefIcon;","import React, { useState} from 'react';\nimport { Layout, Menu, Button, Typography, Modal } from 'antd';\nimport { Link, useNavigate, useLocation } from 'react-router-dom';\nimport {\n ShoppingCartOutlined, AppstoreAddOutlined, ClusterOutlined, HomeOutlined, MenuFoldOutlined ,FileImageOutlined , MenuUnfoldOutlined, DashboardOutlined \n} from '@ant-design/icons';\n\nconst { Header, Sider, Content } = Layout;\nconst { Title } = Typography;\n\nconst ContentManagerPage = ({ children }) => {\n const [collapsed, setCollapsed] = useState(false);\n const [showModal, setShowModal] = useState(false); // State to control modal visibility\n const navigate = useNavigate();\n const location = useLocation(); // To track the current route\n\n // Get user data from localStorage\n const user = JSON.parse(localStorage.getItem('user'));\n const fullName = user?.fullName || 'Guest'; // Display \"Guest\" if fullName is not available\n\n const toggleSidebar = () => {\n setCollapsed(!collapsed);\n };\n\n const handleMenuClick = (e) => {\n if (e.key === 'home') {\n navigate('/content/dashboard');\n }\n // Handle other menu items similarly...\n };\n\n const handleLogout = () => {\n // Display the logout confirmation modal\n setShowModal(true);\n };\n\n const confirmLogout = () => {\n // Redirect to login page after confirming logout\n setShowModal(false); // Close the modal\n navigate('/admin/login'); // Navigate to the login page\n };\n\n const cancelLogout = () => {\n // Close the modal without logging out\n setShowModal(false);\n };\n\n return (\n \n {/* Sidebar */}\n \n
    \n \n {collapsed ? 'CM' : 'Content Manager'}\n \n
    \n \n }\n style={{\n backgroundColor: location.pathname === '/content/dashboard' ? '#ff4d4f' : '',\n color: location.pathname === '/content/dashboard' ? 'white' : ''\n }}\n >\n Dashboard\n \n }\n style={{\n backgroundColor: location.pathname === '/content/products' ? '#ff4d4f' : '',\n color: location.pathname === '/content/products' ? 'white' : ''\n }}\n >\n Products\n \n }\n style={{\n backgroundColor: location.pathname === '/content/brands' ? '#ff4d4f' : '',\n color: location.pathname === '/content/brands' ? 'white' : ''\n }}\n >\n Brands\n \n }\n style={{\n backgroundColor: location.pathname === '/content/category' ? '#ff4d4f' : '',\n color: location.pathname === '/content/category' ? 'white' : ''\n }}\n >\n Category\n \n }\n style={{\n backgroundColor: location.pathname === '/content/showroom' ? '#ff4d4f' : '',\n color: location.pathname === '/content/showroom' ? 'white' : ''\n }}\n >\n Showroom\n \n }\n style={{\n backgroundColor: location.pathname === '/content/banner' ? '#ff4d4f' : '',\n color: location.pathname === '/content/banner' ? 'white' : ''\n }}\n >\n Banners\n \n \n \n\n {/* Main Layout */}\n \n {/* Header */}\n \n
    \n : }\n onClick={toggleSidebar}\n style={{ marginRight: 16 }}\n />\n \n Content Management\n \n
    \n
    \n {/* Home Icon to navigate to home */}\n navigate('/')}\n />\n \n \n \n \n
    \n \n\n {/* Content */}\n \n \n {children}\n \n \n
    \n\n {/* Logout Confirmation Modal */}\n \n

    Are you sure you want to logout?

    \n \n
    \n );\n};\n\nexport default ContentManagerPage;\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { fetchProducts } from '../../Redux/slice/productSlice';\nimport { fetchBrands } from '../../Redux/slice/brandSlice';\nimport { fetchCategories } from '../../Redux/slice/categorySlice';\nimport { fetchShowrooms } from '../../Redux/slice/showRoomSlice';\nimport { ShoppingCartOutlined, AppstoreAddOutlined, ClusterOutlined, HomeOutlined } from '@ant-design/icons';\nimport { Tooltip } from 'antd';\n\nfunction ContentDashboard() {\n const dispatch = useDispatch();\n const { products } = useSelector((state) => state.products);\n const { brands } = useSelector((state) => state.brands);\n const { categories } = useSelector((state) => state.categories);\n const { showrooms } = useSelector((state) => state.showrooms);\n\n useEffect(() => {\n dispatch(fetchProducts());\n dispatch(fetchBrands());\n dispatch(fetchCategories());\n dispatch(fetchShowrooms());\n }, [dispatch]);\n\n return (\n
    \n

    Content Dashboard

    \n\n
    \n {/* Products Count */}\n \n
    \n \n

    Total Products

    \n

    {products.length}

    \n
    \n
    \n\n {/* Brands Count */}\n \n
    \n \n

    Total Brands

    \n

    {brands.length}

    \n
    \n
    \n\n {/* Categories Count */}\n \n
    \n \n

    Total Categories

    \n

    {categories.length}

    \n
    \n
    \n\n {/* Showrooms Count */}\n \n
    \n \n

    Total Showrooms

    \n

    {showrooms.length}

    \n
    \n
    \n
    \n
    \n );\n}\n\nexport default ContentDashboard;\n","import React from 'react'\nimport Products from '../../AdminPages/Products/Products'\n\nfunction ProductsPage() {\n return (\n
    \n \n
    \n )\n}\n\nexport default ProductsPage\n","import React from 'react'\nimport ShowRoom from '../../AdminPages/ShowRoom'\n\nfunction Showroom() {\n return (\n
    \n \n
    \n )\n}\n\nexport default Showroom\n","import React from 'react'\nimport BrandPage from '../../AdminPages/Brands'\n\nfunction Brands() {\n return (\n
    \n \n
    \n )\n}\n\nexport default Brands\n","import Categories from \"../../AdminPages/Categories\"\n\n\nfunction Category() {\n return (\n
    \n \n
    \n )\n}\n\nexport default Category\n","import React from 'react'\nimport AdvertisementPage from '../../AdminPages/Advertisment'\n\nfunction Banner() {\n return (\n
    \n \n
    \n )\n}\n\nexport default Banner\n","import React from 'react';\nimport { useLocation, Navigate } from 'react-router-dom';\nimport ContentManagerPage from './ContentHome'; // Assuming ContentManagerPage provides sidebar and layout\nimport ContentDashboard from './ContentManager/ContentDashboard';\nimport Products from './ContentManager/Products';\nimport Showroom from './ContentManager/Showroom';\nimport Brands from './ContentManager/Brands';\nimport Category from './ContentManager/Category';\nimport Banner from './ContentManager/Banner';\n\nconst ContentPage = () => {\n const location = useLocation();\n const currentPath = location.pathname;\n\n // Function to render content based on the current path\n const renderContent = () => {\n switch (currentPath) {\n case '/content/dashboard':\n return ;\n case '/content/products':\n return ;\n case '/content/showroom':\n return ;\n case '/content/brands':\n return ;\n case '/content/category':\n return ;\n case \"/content/banner\":\n return ;\n case '/webcontent':\n return ;\n default:\n return ;\n }\n };\n\n return (\n \n
    \n {renderContent()}\n
    \n
    \n );\n};\n\nexport default ContentPage;\n","import React, { useState } from 'react';\nimport { Layout, Menu, Button, Typography, Modal } from 'antd';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { HomeOutlined, MenuFoldOutlined, MenuUnfoldOutlined, UserOutlined} from '@ant-design/icons';\n\nconst { Header, Sider, Content } = Layout;\nconst { Title } = Typography;\n\nconst FulfillmentHome = ({ children }) => {\n const [collapsed, setCollapsed] = useState(false);\n const [isLogoutModalVisible, setIsLogoutModalVisible] = useState(false);\n const navigate = useNavigate();\n\n // Get user data from localStorage\n const user = JSON.parse(localStorage.getItem('user'));\n const fullName = user?.fullName || 'Guest';\n\n\n const toggleSidebar = () => {\n setCollapsed(!collapsed);\n };\n\n const handleMenuClick = (e) => {\n if (e.key === 'home') {\n navigate('/fulfillment/dashboard');\n }\n // Handle other menu items similarly...\n };\n\n \n\n const showLogoutModal = () => {\n setIsLogoutModalVisible(true);\n };\n\n const handleLogout = () => {\n // Redirect to the login page\n navigate('/admin/login');\n };\n\n const handleCancelLogout = () => {\n setIsLogoutModalVisible(false);\n };\n\n return (\n \n {/* Sidebar */}\n \n
    \n \n {collapsed ? 'FM' : 'Fulfillment Manager'}\n \n
    \n \n }>\n Dashboard\n \n }>\n Orders\n \n \n \n\n {/* Main Layout */}\n \n {/* Header */}\n \n
    \n : }\n onClick={toggleSidebar}\n style={{ marginRight: 16 }}\n />\n \n Fulfillment Manager\n \n
    \n
    \n {/* Home Icon to navigate to home */}\n navigate('/')}\n />\n \n \n \n \n \n \n
    \n \n\n {/* Content */}\n \n \n {children}\n \n \n
    \n\n {/* Logout Modal */}\n \n

    Are you sure you want to log out?

    \n \n
    \n );\n};\n\nexport default FulfillmentHome;\n","\nimport React from 'react'\n\nimport Orders from '../../AdminPages/Orders/Orders'\n\nfunction FulfillmentsOrder() {\n return (\n
    \n \n
    \n )\n}\n\nexport default FulfillmentsOrder\n\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Card, Row, Col, Statistic, Spin, Typography } from 'antd';\nimport {\n LineChart,\n Line,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n ResponsiveContainer,\n BarChart,\n Bar,\n} from 'recharts';\nimport moment from 'moment';\nimport { ShoppingOutlined } from '@ant-design/icons';\nimport { fetchOrdersByDate } from '../../Redux/slice/orderSlice';\n\nconst FulfillmentsDashboard = () => {\n const dispatch = useDispatch();\n const { orders = [] } = useSelector((state) => state.orders);\n\n const [dailyOrders, setDailyOrders] = useState([]);\n const [weeklyOrders, setWeeklyOrders] = useState([]);\n const [monthlyOrders, setMonthlyOrders] = useState([]);\n const [totalOrders, setTotalOrders] = useState(0);\n\n useEffect(() => {\n const startDate = '2020-01-01';\n const endDate = moment().add(1, 'day').format('YYYY-MM-DD'); // Fetch orders up to today\n dispatch(fetchOrdersByDate({ from: startDate, to: endDate }));\n }, [dispatch]);\n\n useEffect(() => {\n if (orders.length > 0) {\n setDailyOrders(calculateDailyOrders(orders));\n setWeeklyOrders(calculateWeeklyOrders(orders));\n setMonthlyOrders(calculateMonthlyOrders(orders));\n setTotalOrders(orders.length);\n }\n }, [orders]);\n\n const calculateDailyOrders = (orders) => {\n const endDate = moment().add(1, 'day');\n const startDate = moment().subtract(6, 'days'); // Last 7 days\n\n const dailyCounts = [];\n let currentDate = startDate.clone();\n\n while (currentDate.isBefore(endDate, 'day')) {\n const dailyCount = orders.filter((order) =>\n moment(order.orderDate).isSame(currentDate, 'day')\n ).length;\n\n dailyCounts.push({\n name: currentDate.format('MM/DD/YYYY'),\n totalOrders: dailyCount,\n });\n\n currentDate.add(1, 'day');\n }\n\n return dailyCounts;\n };\n\n const calculateWeeklyOrders = (orders) => {\n const endDate = moment().add(1, 'day');\n const startDate = moment().subtract(6, 'days'); // Last 6 days\n\n const weeklyCounts = [];\n let currentDate = startDate.clone();\n\n while (currentDate.isBefore(endDate, 'day')) {\n const dailyCount = orders.filter((order) =>\n moment(order.orderDate).isSame(currentDate, 'day')\n ).length;\n\n weeklyCounts.push({\n name: currentDate.format('MM/DD'),\n totalOrders: dailyCount,\n });\n\n currentDate.add(1, 'day');\n }\n\n return weeklyCounts;\n };\n\n const calculateMonthlyOrders = (orders) => {\n const endDate = moment().add(1, 'day');\n const startDate = moment().subtract(5, 'months').startOf('month'); // 6-month range\n\n const monthlyCounts = [];\n let currentMonth = startDate.clone();\n\n while (currentMonth.isSameOrBefore(endDate, 'month')) {\n const monthlyOrdersCount = orders.filter((order) =>\n moment(order.orderDate).isBetween(\n currentMonth,\n currentMonth.clone().endOf('month'),\n null,\n '[]'\n )\n ).length;\n\n monthlyCounts.push({\n name: currentMonth.format('MM/YYYY'),\n totalOrders: monthlyOrdersCount,\n });\n\n currentMonth.add(1, 'month');\n }\n\n return monthlyCounts;\n };\n\n if (!orders) {\n return ;\n }\n\n return (\n
    \n \n Fulfillment Manager Dashboard\n \n\n \n \n }\n >\n \n \n \n \n }\n >\n sum + week.totalOrders, 0)}\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\nexport default FulfillmentsDashboard;\n","import React from 'react';\nimport { useLocation, Navigate } from 'react-router-dom';\nimport FulfillmentHome from '../FulfillmentsHome';\nimport FulfillmentsOrder from './FulfillmentsOrder';\nimport FulfillmentsDashboard from './FulfillmentsDashboard';\n\nconst FulfillmentPage = () => {\n const location = useLocation();\n const currentPath = location.pathname;\n\n // Function to render content based on the current path\n const renderContent = () => {\n switch (currentPath) {\n case '/fulfillment/dashboard':\n return ;\n case '/fulfillment/orders':\n return ;\n \n case '/fulfillment':\n return ;\n default:\n return ;\n }\n };\n\n return (\n \n
    \n {renderContent()}\n
    \n
    \n );\n};\n\nexport default FulfillmentPage\n","import React from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nfunction Cancellation() {\n const navigate = useNavigate();\n\n return (\n
    \n
    \n
    \n

    Order Cancellation

    \n

    \n We're sorry to hear you're cancelling your order.\n

    \n\n {/* Cancellation Information */}\n
    \n

    Please note:

    \n

    \n Cancelling an order will remove it from our system, and you will not be charged for this purchase.\n

    \n
    \n\n {/* Action Buttons */}\n
    \n navigate(\"/\")}\n >\n Back To Shopping\n \n
    \n
    \n
    \n
    \n );\n}\n\nexport default Cancellation;\n","import { useEffect, useState } from \"react\";\nimport { useParams, useNavigate } from \"react-router-dom\";\n\nconst PaymentStatusChecker = () => {\n const [status, setStatus] = useState(\"Checking...\");\n const [loading, setLoading] = useState(true);\n const { orderId } = useParams(); // Get orderId from URL path\n const navigate = useNavigate();\n\n useEffect(() => {\n if (!orderId) {\n setStatus(\"Invalid Order ID\");\n setLoading(false);\n return;\n }\n pollPaymentStatus(orderId);\n }, [orderId]);\n\n const getPaymentStatus = async (orderId) => {\n const username = \"RMWBWl0\";\n const password = \"3c42a596cd044fed81b492e74da4ae30\";\n const encodedCredentials = btoa(`${username}:${password}`);\n const merchantAccountNumber = \"2020892\";\n \n const url = `https://rmsc.hubtel.com/v1/merchantaccount/merchants/${merchantAccountNumber}/transactions/status?clientReference=${orderId}`;\n\n try {\n const response = await fetch(url, {\n method: \"GET\",\n headers: {\n Authorization: `Basic ${encodedCredentials}`,\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (!response.ok) {\n throw new Error(\"Failed to fetch payment status\");\n }\n\n const result = await response.json();\n return result.data?.status || \"Error\";\n } catch (error) {\n console.error(\"Error fetching payment status:\", error);\n return \"Error\";\n }\n };\n\n const pollPaymentStatus = async (orderId) => {\n let attempts = 0;\n const maxAttempts = 10;\n const pollingInterval = 5000;\n\n const returnUrl = `https://frankotrading.com/order-success/${orderId}`;\n const cancelUrl = \"https://frankotrading.com/order-cancelled\";\n\n const interval = setInterval(async () => {\n attempts++;\n const paymentStatus = await getPaymentStatus(orderId);\n\n if (paymentStatus === \"Paid\") {\n clearInterval(interval);\n setStatus(\"Payment Successful! Redirecting...\");\n setLoading(false);\n setTimeout(() => navigate(returnUrl), 2000);\n } else if (paymentStatus === \"Error\" || attempts >= maxAttempts) {\n clearInterval(interval);\n setStatus(\"Payment Failed. Redirecting...\");\n setLoading(false);\n setTimeout(() => navigate(cancelUrl), 2000);\n }\n }, pollingInterval);\n };\n\n return (\n
    \n
    \n

    Payment Status

    \n

    {loading ? \"Checking payment status...\" : status}

    \n
    \n
    \n );\n};\n\nexport default PaymentStatusChecker;\n","import React from \"react\";\n\nconst Sitemap = () => {\n const sitemapContent = `\n \n https://www.frankotrading.com/\n https://www.frankotrading.com/cart\n https://www.frankotrading.com/checkout\n https://www.frankotrading.com/products\n https://www.frankotrading.com/about\n https://www.frankotrading.com/contact\n https://www.frankotrading.com/order-history\n https://www.frankotrading.com/sign-in\n https://www.frankotrading.com/sign-up\n `;\n\n return (\n
    {sitemapContent}
    \n );\n};\n\nexport default Sitemap;\n","import { useState, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Button, Tag, message, Modal, Card} from \"antd\";\nimport { ShoppingCartOutlined, CheckCircleFilled } from \"@ant-design/icons\";\nimport { addToCart } from \"../../Redux/slice/cartSlice\";\nimport { fetchProductsByBrand } from \"../../Redux/slice/productSlice\";\nimport { useNavigate } from \"react-router-dom\";\nimport productImage from \"../../assets/iphone16.jpg\";\nconst formatPrice = (price) => price.toLocaleString();\nconst BRAND_ID = \"5c6cf9ae-d44f-42a9-82e5-c82bbf6913cd\";\nconst backendBaseURL = \"https://smfteapi.salesmate.app\";\n\nconst IPhone16 = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const { products, loading } = useSelector((state) => state.products);\n const cartItems = useSelector((state) => state.cart.cart);\n const cartId = useSelector((state) => state.cart.cartId);\n\n const [isAddingToCart, setIsAddingToCart] = useState(false);\n const [isModalOpen, setIsModalOpen] = useState(false);\n\n useEffect(() => {\n dispatch(fetchProductsByBrand(BRAND_ID));\n }, [dispatch]);\n\n const product = {\n productID: \"iphone16\",\n productName: \"iPhone 16 (128GB)\",\n description: `📱 Display: 6.1-inch Super Retina XDR OLED\n💾 Storage: 128GB\n⚡ Chipset: Apple A18 (3nm)\n🔋 Battery: 4000mAh\n📷 Camera: 48MP + 12MP`,\n price: 12500,\n productImage: productImage,\n categoryName: \"Phones\",\n brandName: \"iPhones\",\n showRoomName: \"Explore our Products\",\n };\n\n const imageUrl = `${backendBaseURL}/Media/Products_Images/${product.productImage.split(\"\\\\\").pop()}`;\n\n const handleAddToCart = async (selectedProduct) => {\n if (cartItems.some((item) => item.productID === selectedProduct.productID)) {\n message.warning(\"Product is already in the cart.\");\n return;\n }\n\n setIsAddingToCart(true);\n try {\n await dispatch(\n addToCart({\n cartId,\n productId: selectedProduct.productID,\n price: selectedProduct.price,\n quantity: 1,\n })\n );\n message.success(\"Product added to cart successfully!\");\n } catch (error) {\n message.error(`Failed to add product: ${error.message}`);\n } finally {\n setIsAddingToCart(false);\n }\n };\n\n const filteredProducts = products.filter((item) => item.productID !== product.productID);\n\n return (\n
    \n
    \n {/* Product Image */}\n
    \n setIsModalOpen(true)}\n />\n
    \n\n {/* Product Details */}\n
    \n

    {product.productName}

    \n

    ₵{formatPrice(product.price)}.00

    \n\n
    \n
    \n \n Availability:\n In Stock\n
    \n
    \n\n
    \n {product.showRoomName}\n {product.categoryName}\n {product.brandName}\n
    \n\n

    {product.description}

    \n\n }\n className=\"w-full bg-red-400 hover:bg-green-600 border-none text-white py-3 font-semibold\"\n onClick={() => handleAddToCart(product)}\n loading={isAddingToCart}\n >\n {isAddingToCart ? \"Adding...\" : \"Add to Cart\"}\n \n
    \n
    \n\n {/* Sticky Add to Cart Button (Mobile) */}\n \n\n {/* For You Section */}\n
    \n
    \n

    For You

    \n
    \n {loading ? (\n
    \n {Array.from({ length: 8 }).map((_, index) => (\n \n
    \n
    \n
    \n
    \n
    \n ))}\n
    \n ) : (\n
    \n {filteredProducts.map((item) => (\n \n navigate(`/product/${item.productID}`)\n }\n className=\"cursor-pointer relative\"\n >\n \n
    \n }\n >\n {item.productName}

    }\n description={

    ₵{formatPrice(item.price)}.00

    }\n />\n }\n className=\"absolute bottom-2 right-2 bg-red-500 text-white opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n handleAddToCart(item);\n }}\n />\n \n ))}\n \n )}\n \n\n {/* Modal for Enlarged Image */}\n setIsModalOpen(false)} footer={null} centered>\n \"Enlarged\n \n \n );\n};\n\nexport default IPhone16;\n","import { useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Button, Card} from \"antd\";\nimport { ShoppingCartOutlined, } from \"@ant-design/icons\";\n\nimport { fetchProductsByBrand } from \"../../Redux/slice/productSlice\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { Helmet } from \"react-helmet\";\n\nconst formatPrice = (price) => price.toLocaleString();\nconst BRAND_ID = \"760af684-7a19-46ab-acc5-7445ef32073a\";\nconst backendBaseURL = \"https://smfteapi.salesmate.app\";\n\nconst Samsung = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const { products, loading } = useSelector((state) => state.products);\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n \n\n useEffect(() => {\n dispatch(fetchProductsByBrand(BRAND_ID));\n }, [dispatch]);\n\n\n \n const filteredProducts = products.filter((item) => item.productID );\n\n return (\n \n
    \n\n\n\n Buy Samsung Mobile Phones | Best Deals on samsung phones\n \n \n \n \n {/* Open Graph Meta Tags */}\n \n \n \n \n \n\n {/* Twitter Meta Tags */}\n \n \n \n \n\n {/* JSON-LD Structured Data */}\n \n\n\n\n \n \n\n {/* For You Section */}\n
    \n
    \n OFFICIAL\n
    \n \n

    \n SAMSUNG STORE\n

    \n \n
    \n
    \n\n {loading ? (\n
    \n {Array.from({ length: 12 }).map((_, index) => (\n \n
    \n
    \n
    \n
    \n
    \n ))}\n
    \n ) : (\n
    \n {filteredProducts.map((item) => (\n \n navigate(`/product/${item.productID}`)\n }\n className=\"cursor-pointer relative\"\n >\n \n
    \n }\n >\n {item.productName}

    }\n description={

    ₵{formatPrice(item.price)}.00

    }\n />\n }\n className=\"absolute bottom-2 right-2 bg-red-500 text-white opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n \n }}\n />\n \n ))}\n \n )}\n \n\n {/* Modal for Enlarged Image */}\n \n \n );\n};\n\nexport default Samsung;\n","import { useState, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Button, Tag, message, Modal, Card} from \"antd\";\nimport { ShoppingCartOutlined, CheckCircleFilled } from \"@ant-design/icons\";\nimport { addToCart } from \"../../Redux/slice/cartSlice\";\nimport { fetchProductsByBrand } from \"../../Redux/slice/productSlice\";\nimport { useNavigate } from \"react-router-dom\";\nimport productImage from \"../../assets/realme.jpg\";\nconst formatPrice = (price) => price.toLocaleString();\nconst BRAND_ID = \"86cca959-70a4-448e-86f1-3601309f49a6\";\nconst backendBaseURL = \"https://smfteapi.salesmate.app\";\n\nconst Tecno = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const { products, loading } = useSelector((state) => state.products);\n const cartItems = useSelector((state) => state.cart.cart);\n const cartId = useSelector((state) => state.cart.cartId);\n\n const [isAddingToCart, setIsAddingToCart] = useState(false);\n const [isModalOpen, setIsModalOpen] = useState(false);\n\n useEffect(() => {\n dispatch(fetchProductsByBrand(BRAND_ID));\n }, [dispatch]);\n\n const product = {\n productID: \"Tecno\",\n productName: \"Realme C53 (Rmx3760) (256gb+8gb)\",\n description: `📱 Display: 6.74\" 90Hz \n💾 Storage: 256GB | RAM: 8GB \n⚡ Processor: Powerful Octa-Core Chipset \n📷 Camera: 50MP AI Camera \n🔋 Battery: 5000mAh | 33W SUPERVOOC Charge \n📡 Network: Dual SIM \n📶 Connectivity: NFC | USB Type-C \n📏 Design: 7.49mm Ultra Slim \n🎁 Includes: Phone Cover & Type-C Charger \n\n`,\n price: 1600,\n productImage: productImage,\n categoryName: \"Phones\",\n brandName: \"Tecno\",\n showRoomName: \"Explore our Products\",\n };\n\n\n\n const handleAddToCart = async (selectedProduct) => {\n if (cartItems.some((item) => item.productID === selectedProduct.productID)) {\n message.warning(\"Product is already in the cart.\");\n return;\n }\n\n setIsAddingToCart(true);\n try {\n await dispatch(\n addToCart({\n cartId,\n productId: selectedProduct.productID,\n price: selectedProduct.price,\n quantity: 1,\n })\n );\n message.success(\"Product added to cart successfully!\");\n } catch (error) {\n message.error(`Failed to add product: ${error.message}`);\n } finally {\n setIsAddingToCart(false);\n }\n };\n\n const filteredProducts = products.filter((item) => item.productID !== product.productID);\n\n return (\n
    \n
    \n {/* Product Image */}\n
    \n setIsModalOpen(true)}\n />\n
    \n\n {/* Product Details */}\n
    \n

    {product.productName}

    \n

    ₵{formatPrice(product.price)}.00

    \n\n
    \n
    \n \n Availability:\n In Stock\n
    \n
    \n\n
    \n {product.showRoomName}\n {product.categoryName}\n {product.brandName}\n
    \n\n

    {product.description}

    \n\n }\n className=\"w-full bg-red-400 hover:bg-green-600 border-none text-white py-3 font-semibold\"\n onClick={() => handleAddToCart(product)}\n loading={isAddingToCart}\n >\n {isAddingToCart ? \"Adding...\" : \"Add to Cart\"}\n \n
    \n
    \n\n {/* Sticky Add to Cart Button (Mobile) */}\n \n\n {/* For You Section */}\n
    \n
    \n

    For You

    \n
    \n {loading ? (\n
    \n {Array.from({ length: 8 }).map((_, index) => (\n \n
    \n
    \n
    \n
    \n
    \n ))}\n
    \n ) : (\n
    \n {filteredProducts.map((item) => (\n \n navigate(`/product/${item.productID}`)\n }\n className=\"cursor-pointer relative\"\n >\n \n
    \n }\n >\n {item.productName}

    }\n description={

    ₵{formatPrice(item.price)}.00

    }\n />\n }\n className=\"absolute bottom-2 right-2 bg-red-500 text-white opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n handleAddToCart(item);\n }}\n />\n \n ))}\n \n )}\n \n\n {/* Modal for Enlarged Image */}\n setIsModalOpen(false)} footer={null} centered>\n \"Enlarged\n \n \n );\n};\n\nexport default Tecno;\n","import { useState, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Button, Tag, message, Modal, Card} from \"antd\";\nimport { ShoppingCartOutlined, CheckCircleFilled } from \"@ant-design/icons\";\nimport { addToCart } from \"../../Redux/slice/cartSlice\";\nimport { fetchProductsByBrand } from \"../../Redux/slice/productSlice\";\nimport { useNavigate } from \"react-router-dom\";\nimport productImage from \"../../assets/Tcl.jpg\";\nconst formatPrice = (price) => price.toLocaleString();\nconst BRAND_ID = \"ad5c14b2-322b-4940-8f7e-0f2b6ff34857\";\nconst backendBaseURL = \"https://smfteapi.salesmate.app\";\n\nconst Tablet = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const { products, loading } = useSelector((state) => state.products);\n const cartItems = useSelector((state) => state.cart.cart);\n const cartId = useSelector((state) => state.cart.cartId);\n\n const [isAddingToCart, setIsAddingToCart] = useState(false);\n const [isModalOpen, setIsModalOpen] = useState(false);\n\n useEffect(() => {\n dispatch(fetchProductsByBrand(BRAND_ID));\n }, [dispatch]);\n\n const product = {\n productID: \"Tablet\",\n productName: \"TCL TAB 10 Lte Gen2( 64gb+4gb)\",\n description: `📱 Display: 10.4\" IPS LCD \n💾 Storage: Expandable via microSDXC \n⚡ Processor: LTE-Enabled \n📷 Camera: 8MP (Rear) | 5MP (Front) \n🔋 Battery: 6000mAh \n🔓 Security: Face Unlock \n📡 Network: GSM / HSPA / LTE \n📏 Dimensions: 243.2 x 158.2 x 9.2 mm \n📲 OS: Android 13 `,\n price: 1600,\n productImage: productImage,\n categoryName: \"Tablet\",\n brandName: \"TCL\",\n showRoomName: \"Explore our Products\",\n };\n\n\n const handleAddToCart = async (selectedProduct) => {\n if (cartItems.some((item) => item.productID === selectedProduct.productID)) {\n message.warning(\"Product is already in the cart.\");\n return;\n }\n\n setIsAddingToCart(true);\n try {\n await dispatch(\n addToCart({\n cartId,\n productId: selectedProduct.productID,\n price: selectedProduct.price,\n quantity: 1,\n })\n );\n message.success(\"Product added to cart successfully!\");\n } catch (error) {\n message.error(`Failed to add product: ${error.message}`);\n } finally {\n setIsAddingToCart(false);\n }\n };\n\n const filteredProducts = products.filter((item) => item.productID !== product.productID);\n\n return (\n
    \n
    \n {/* Product Image */}\n
    \n setIsModalOpen(true)}\n />\n
    \n\n {/* Product Details */}\n
    \n

    {product.productName}

    \n

    ₵{formatPrice(product.price)}.00

    \n\n
    \n
    \n \n Availability:\n In Stock\n
    \n
    \n\n
    \n {product.showRoomName}\n {product.categoryName}\n {product.brandName}\n
    \n\n

    {product.description}

    \n\n }\n className=\"w-full bg-red-400 hover:bg-green-600 border-none text-white py-3 font-semibold\"\n onClick={() => handleAddToCart(product)}\n loading={isAddingToCart}\n >\n {isAddingToCart ? \"Adding...\" : \"Add to Cart\"}\n \n
    \n
    \n\n {/* Sticky Add to Cart Button (Mobile) */}\n \n\n {/* For You Section */}\n
    \n
    \n

    For You

    \n
    \n {loading ? (\n
    \n {Array.from({ length: 8 }).map((_, index) => (\n \n
    \n
    \n
    \n
    \n
    \n ))}\n
    \n ) : (\n
    \n {filteredProducts.map((item) => (\n \n navigate(`/product/${item.productID}`)\n }\n className=\"cursor-pointer relative\"\n >\n \n
    \n }\n >\n {item.productName}

    }\n description={

    ₵{formatPrice(item.price)}.00

    }\n />\n }\n className=\"absolute bottom-2 right-2 bg-red-500 text-white opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n handleAddToCart(item);\n }}\n />\n \n ))}\n \n )}\n \n\n {/* Modal for Enlarged Image */}\n setIsModalOpen(false)} footer={null} centered>\n \"Enlarged\n \n \n );\n};\n\nexport default Tablet;\n","\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchProductsByCategory } from \"../../Redux/slice/productSlice\";\nimport { Card, Button, Tag } from \"antd\";\nimport { ShoppingCartOutlined } from \"@ant-design/icons\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\n\nconst Phones = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const { productsByCategory = {}, loading: productsLoading } = useSelector((state) => state.products);\n const [imageLoading, setImageLoading] = useState({});\n const GTM_ID = \"GTM-WKCL4JTV\"; // Your GTM ID\n const hardcodedCategoryId = \"51d1fff2-7b71-46aa-9b34-2e553a40e921\";\n\n useEffect(() => {\n window.scrollTo(0, 0);\n dispatch(fetchProductsByCategory(hardcodedCategoryId));\n }, [dispatch]);\n\n const filteredProducts = useMemo(() => {\n return (productsByCategory[hardcodedCategoryId] || [])\n .slice()\n .sort((a, b) => new Date(b.dateCreated) - new Date(a.dateCreated));\n }, [productsByCategory]);\n\n\n const formatPrice = (amount) =>\n amount.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n\n const handleImageLoad = (productId) => {\n setImageLoading((prev) => ({ ...prev, [productId]: false }));\n };\n\n const handleImageError = (productId) => {\n setImageLoading((prev) => ({ ...prev, [productId]: true }));\n };\n\n\n\n if ( productsLoading) {\n return (\n
    \n
    \n {Array.from({ length: 12 }).map((_, index) => (\n
    \n
    \n
    \n
    \n
    \n
    \n ))}\n
    \n
    \n );\n }const getValidImageUrl = (imagePath) => {\n if (!imagePath) return \"default-image-url\";\n if (imagePath.includes(\"\\\\\")) {\n return `https://smfteapi.salesmate.app/Media/Products_Images/${imagePath.split(\"\\\\\").pop()}`;\n }\n return imagePath;\n };\n \n \n\n return (\n
    \n {/* React Helmet for SEO */}\n \n Best Mobile Phones for Sale | Shop Latest Smartphones\n \n \n \n \n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"} />\n \n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"} />\n \n {/* JSON-LD Structured Data for Schema.org */}\n \n\n\n\n\n {/* Section Title */}\n {/* Section Header */}\n
    \n BEST & QUALITY\n
    \n \n

    \n PHONES & TABLETS\n

    \n \n
    \n
    \n\n\n {/* Products Grid */}\n
    \n {filteredProducts.map((item) => (\n navigate(`/product/${item.productID}`)}\n className=\"cursor-pointer relative h-full flex items-center justify-center\"\n >\n
    \n {imageLoading[item.productID] ? (\n \n ) : (\n handleImageLoad(item.productID)}\n onError={() => handleImageError(item.productID)}\n />\n )}\n
    \n
    \n }\n >\n
    \n

    {item.productName}

    \n

    ₵{formatPrice(item.price)}

    \n
    \n {item.brandName}\n }\n className=\"absolute bottom-4 right-4 bg-red-500 text-white opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n }}\n />\n \n \n ))}\n
    \n\n\n \n );\n};\n\nexport default Phones;","import React, { useEffect, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { fetchProductsByCategory } from \"../../Redux/slice/productSlice\";\nimport { Card, Button, Tag } from \"antd\";\nimport { ShoppingCartOutlined } from \"@ant-design/icons\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\n\nconst Computers = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const { productsByCategory = {}, loading: productsLoading } = useSelector((state) => state.products);\n const GTM_ID = \"GTM-WKCL4JTV\"; // Your GTM ID\n const hardcodedCategoryId = \"12f11417-4f9e-4e4a-a18d-f9ff0d4c85a6\"\n useEffect(() => {\n window.scrollTo(0, 0);\n dispatch(fetchProductsByCategory(hardcodedCategoryId));\n }, [dispatch]);\n\n const filteredProducts = useMemo(() => {\n return (productsByCategory[hardcodedCategoryId] || [])\n .slice()\n .sort((a, b) => new Date(b.dateCreated) - new Date(a.dateCreated));\n }, [productsByCategory]);\n const formatPrice = (amount) =>\n amount.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n\n\n if ( productsLoading) {\n return (\n
    \n
    \n {Array.from({ length: 12 }).map((_, index) => (\n \n
    \n
    \n
    \n
    \n
    \n
    \n ))}\n \n \n );\n }\n \n\n return (\n <>\n\n Computers - Buy Laptops, Desktops, and Accessories\n \n \n\n {/* Open Graph (Facebook, LinkedIn) */}\n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"} />\n \n \n\n {/* Twitter Card */}\n \n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"} />\n \n {/* JSON-LD Structured Data */}\n \n\n \n\n\n\n\n\n
    \n
    \n BEST & QUALITY\n
    \n \n

    \n LAPTOPS AND COMPUTERS\n

    \n \n
    \n
    \n\n
    \n {filteredProducts.map((item) => (\n {\n navigate(`/product/${item.productID}`);\n }}\n className=\"cursor-pointer relative h-full flex items-center justify-center\"\n >\n \n
    \n }\n >\n
    \n

    {item.productName}

    \n

    ₵{formatPrice(item.price)}

    \n
    \n {item.brandName}\n }\n className=\"absolute bottom-4 right-4 bg-red-500 text-white opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n }}\n />\n \n ))}\n
    \n \n \n );\n};\n\nexport default Computers;\n","import React, { useEffect, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchProductsByCategory } from \"../../Redux/slice/productSlice\";\nimport { Card, Button, Tag } from \"antd\";\nimport { ShoppingCartOutlined } from \"@ant-design/icons\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\n\nconst Television = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n \n const { productsByCategory = {}, loading: productsLoading } = useSelector((state) => state.products);\n const GTM_ID = \"GTM-WKCL4JTV\"; // Your GTM ID\n const hardcodedCategoryId = \"b51e02c2-540a-484a-9307-392fac7b50ed\"\n useEffect(() => {\n window.scrollTo(0, 0);\n dispatch(fetchProductsByCategory(hardcodedCategoryId));\n }, [dispatch]);\n \n const filteredProducts = useMemo(() => {\n return (productsByCategory[hardcodedCategoryId] || [])\n .slice()\n .sort((a, b) => new Date(b.dateCreated) - new Date(a.dateCreated));\n }, [productsByCategory]);\n\n\n const formatPrice = (amount) =>\n amount.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n\n // ✅ Enhanced JSON-LD Structured Data for SEO\n const structuredData = {\n \"@context\": \"https://schema.org/\",\n \"@type\": \"ItemList\",\n \"name\": \"Television Collection\",\n \"description\": \"Browse our latest collection of televisions with high-quality resolution and top brands.\",\n \"itemListElement\": filteredProducts.map((item, index) => ({\n \"@type\": \"Product\",\n \"position\": index + 1,\n \"name\": item.productName,\n \"image\": `https://smfteapi.salesmate.app/Media/Products_Images/${item.productImage.split(\"\\\\\").pop()}`,\n \"description\": item.description,\n \"brand\": {\n \"@type\": \"Brand\",\n \"name\": item.brandName,\n },\n \"offers\": {\n \"@type\": \"Offer\",\n \"priceCurrency\": \"GHS\",\n \"price\": item.price,\n \"priceValidUntil\": \"2025-12-31\",\n \"itemCondition\": \"https://schema.org/NewCondition\",\n \"availability\": \"https://schema.org/InStock\",\n \"url\": `https://frankotrading.com/product/${item.productID}`,\n \"seller\": {\n \"@type\": \"Organization\",\n \"name\": \"Franko Trading\"\n },\n \"shippingDetails\": {\n \"@type\": \"OfferShippingDetails\",\n \"shippingRate\": {\n \"@type\": \"MonetaryAmount\",\n \"currency\": \"GHS\",\n \"value\": \"100.00\"\n },\n \"shippingDestination\": {\n \"@type\": \"DefinedRegion\",\n \"addressCountry\": \"GH\"\n },\n \"deliveryTime\": {\n \"@type\": \"ShippingDeliveryTime\",\n \"handlingTime\": {\n \"@type\": \"QuantitativeValue\",\n \"minValue\": 1,\n \"maxValue\": 2,\n \"unitCode\": \"DAY\"\n },\n \"transitTime\": {\n \"@type\": \"QuantitativeValue\",\n \"minValue\": 3,\n \"maxValue\": 5,\n \"unitCode\": \"DAY\"\n }\n }\n },\n \"hasMerchantReturnPolicy\": {\n \"@type\": \"MerchantReturnPolicy\",\n \"returnPolicyCategory\": \"https://schema.org/MerchantReturnFiniteReturnWindow\",\n \"merchantReturnDays\": 14,\n \"returnMethod\": \"https://schema.org/ReturnByMail\",\n \"returnFees\": \"https://schema.org/FreeReturn\", \n \"applicableCountry\": \"GH\"\n },\n },\n \"aggregateRating\": {\n \"@type\": \"AggregateRating\",\n \"ratingValue\": \"4.5\",\n \"reviewCount\": \"120\"\n },\n \"review\": {\n \"@type\": \"Review\",\n \"author\": {\n \"@type\": \"Person\",\n \"name\": \"John Doe\"\n },\n \"reviewRating\": {\n \"@type\": \"Rating\",\n \"ratingValue\": \"5\",\n \"bestRating\": \"5\"\n }\n }\n })),\n };\n\n if ( productsLoading) {\n return (\n
    \n
    \n {Array.from({ length: 12 }).map((_, index) => (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n ))}\n
    \n
    \n );\n }\n \n return (\n
    \n {/* ✅ Improved React Helmet for SEO Optimization */}\n \n Buy the Latest Televisions Online | 4K, Smart TVs & Best Deals\n \n \n \n\n {/* Open Graph (OG) meta tags for better social media preview */}\n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"}/>\n \n \n\n {/* Twitter Card for better Twitter sharing */}\n \n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"}/>\n\n {/* Injecting JSON-LD for structured data */}\n \n\n \n \n\n {/* Section Title */}\n
    \n BEST & QUALITY\n
    \n \n

    \n SMART TELEVISIONS\n

    \n \n
    \n
    \n {/* Products Grid */}\n
    \n {filteredProducts.map((item) => (\n navigate(`/product/${item.productID}`)}\n className=\"cursor-pointer relative h-full flex items-center justify-center\"\n >\n \n
    \n }\n >\n
    \n

    {item.productName}

    \n

    ₵{formatPrice(item.price)}

    \n
    \n {item.brandName}\n }\n className=\"absolute bottom-4 right-4 bg-red-500 text-white opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => e.stopPropagation()}\n />\n \n ))}\n
    \n \n );\n};\n\nexport default Television;\n","import React, { useEffect, useMemo } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchProductsByCategory } from \"../../Redux/slice/productSlice\";\nimport { Card, Button, Tag } from \"antd\";\nimport { ShoppingCartOutlined } from \"@ant-design/icons\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst Aircondition = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const { productsByCategory = {}, loading: productsLoading } = useSelector((state) => state.products);\n const GTM_ID = \"GTM-WKCL4JTV\"; // Your GTM ID\n const hardcodedCategoryId = \"db54033b-e95d-4a6c-8744-45e4d462c19e\"\n useEffect(() => {\n window.scrollTo(0, 0);\n dispatch(fetchProductsByCategory(hardcodedCategoryId));\n }, [dispatch]);\n\n const filteredProducts = useMemo(() => {\n return (productsByCategory[hardcodedCategoryId] || [])\n .slice()\n .sort((a, b) => new Date(b.dateCreated) - new Date(a.dateCreated));\n }, [productsByCategory]);\n\n const formatPrice = (amount) =>\n amount.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n\n // Google Tag Manager\n useEffect(() => {\n const script = document.createElement(\"script\");\n script.async = true;\n script.src = `https://www.googletagmanager.com/gtm.js?id=${GTM_ID}`;\n document.head.appendChild(script);\n }, []);\n\n // Google AdSense\n useEffect(() => {\n const script = document.createElement(\"script\");\n script.async = true;\n script.crossOrigin = \"anonymous\";\n script.src = \"https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\";\n script.setAttribute(\"data-ad-client\", \"YOUR_ADSENSE_CLIENT_ID\"); // Add the actual AdSense Client ID\n document.head.appendChild(script);\n }, []);\n \n\n if ( productsLoading) {\n return (\n
    \n
    \n {Array.from({ length: 4 }).map((_, index) => (\n
    \n
    \n
    \n
    \n
    \n
    \n ))}\n
    \n
    \n );\n }\n\n return (\n
    \n \n\n {/* SEO Metadata */}\n \n \n Buy Air Conditioners Online - Best Prices in Ghana\n \n \n\n {/* Open Graph Meta Tags for Social Media */}\n \n \n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"} />\n\n {/* Twitter Card for better previews on Twitter */}\n \n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"} />\n {/* Canonical URL */}\n \n {/* JSON-LD Structured Data for Schema.org */}\n \n\n\n\n\n {/* Section Title */}\n
    \n BEST & QUALITY\n
    \n \n

    \n AIR-CONDITONERS\n

    \n \n
    \n
    \n {/* Products Grid */}\n
    \n {filteredProducts.map((item) => (\n navigate(`/product/${item.productID}`)}\n className=\"cursor-pointer relative h-full flex items-center justify-center\"\n >\n \n
    \n }\n >\n
    \n

    {item.productName}

    \n

    ₵{formatPrice(item.price)}

    \n
    \n {item.brandName}\n }\n className=\"absolute bottom-4 right-4 bg-red-500 text-white opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n }}\n />\n \n ))}\n
    \n \n );\n};\n\nexport default Aircondition;\n","import React, { useEffect, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchProductsByCategory } from \"../../Redux/slice/productSlice\";\nimport { Card, Button, Tag } from \"antd\";\nimport { ShoppingCartOutlined } from \"@ant-design/icons\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\n\nconst Refrigerator = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const { productsByCategory = {}, loading: productsLoading } = useSelector((state) => state.products);\n const GTM_ID = \"GTM-WKCL4JTV\"; // Your GTM ID\n const hardcodedCategoryId = \"4f5076f8-34b6-42b8-a9c5-a1e92e3d08fb\"\n \n useEffect(() => {\n window.scrollTo(0, 0);\n dispatch(fetchProductsByCategory(hardcodedCategoryId));\n }, [dispatch]);\n\n const filteredProducts = useMemo(() => {\n return (productsByCategory[hardcodedCategoryId] || [])\n .slice()\n .sort((a, b) => new Date(b.dateCreated) - new Date(a.dateCreated));\n }, [productsByCategory]);\n \n const formatPrice = (amount) =>\n amount.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n\n if (productsLoading) {\n return (\n
    \n
    \n {Array.from({ length: 12 }).map((_, index) => (\n
    \n {/* Franko Logo Background */}\n
    \n
    \n
    \n
    \n
    \n
    \n ))}\n
    \n \n );\n }\n \n return (\n
    \n {/* ✅ React Helmet for SEO */}\n \n {/* Dynamic Page Title */}\n Shop Refrigerators - Best Prices & Top Brands\n \n {/* SEO Meta Description */}\n \n \n {/* Open Graph (OG) Tags for Social Media */}\n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"} />\n \n \n\n {/* Twitter Card for Better Social Sharing */}\n \n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"} />\n\n {/* Canonical URL to Prevent Duplicate Content Issues */}\n \n\n {/* JSON-LD Structured Data */}\n \n \n\n\n\n\n {/* Section Title */}\n
    \n BEST & QUALITY\n
    \n \n

    \n REFRIGERATORS\n

    \n \n
    \n
    \n\n {/* Products Grid */}\n
    \n {filteredProducts.map((item) => (\n navigate(`/product/${item.productID}`)}\n className=\"cursor-pointer relative h-full flex items-center justify-center\"\n >\n \n
    \n }\n >\n
    \n

    {item.productName}

    \n

    ₵{formatPrice(item.price)}

    \n
    \n {item.brandName}\n }\n className=\"absolute bottom-4 right-4 bg-red-500 text-white opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n // Add to cart logic here\n }}\n />\n \n ))}\n
    \n \n );\n};\n\nexport default Refrigerator;\n","import React, { useEffect, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { fetchProductsByCategory } from \"../../Redux/slice/productSlice\";\nimport { Card, Button, Tag } from \"antd\";\nimport { ShoppingCartOutlined } from \"@ant-design/icons\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\n\nconst Accessories = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const { productsByCategory = {}, loading: productsLoading } = useSelector((state) => state.products);\n const GTM_ID = \"GTM-WKCL4JTV\"; // Your GTM ID\n const hardcodedCategoryId = \"2cfdb823-bbfd-495b-84a5-b5508356c1f6\"\n useEffect(() => {\n window.scrollTo(0, 0);\n dispatch(fetchProductsByCategory(hardcodedCategoryId));\n }, [dispatch]);\n\n const filteredProducts = useMemo(() => {\n return (productsByCategory[hardcodedCategoryId] || [])\n .slice()\n .sort((a, b) => new Date(b.dateCreated) - new Date(a.dateCreated));\n }, [productsByCategory]);\n \n\n\n const formatPrice = (amount) =>\n amount.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n\n if ( productsLoading) {\n return (\n
    \n
    \n {Array.from({ length: 12 }).map((_, index) => (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n ))}\n
    \n \n );\n }\n \n return (\n
    \n {/* Helmet for SEO */}\n \n {/* Title and Description */}\n Accessories - Shop the Best Products\n \n \n {/* Open Graph Metadata for Social Sharing */}\n \n \n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"} />\n \n \n \n {/* Twitter Card for Social Media */}\n \n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"} />\n\n {/* Canonical URL */}\n \n\n {/* JSON-LD Schema for Structured Data */}\n \n\n\n\n \n\n {/* Section Title */}\n
    \n BEST & QUALITY\n
    \n \n

    \n ACCESSORIES\n

    \n \n
    \n
    \n\n {/* Products Grid */}\n
    \n {filteredProducts.map((item) => (\n {\n \n navigate(`/product/${item.productID}`);\n }}\n className=\"cursor-pointer relative h-full flex items-center justify-center\"\n >\n \n
    \n }\n >\n
    \n

    {item.productName}

    \n

    ₵{formatPrice(item.price)}

    \n
    \n {item.brandName}\n }\n className=\"absolute bottom-4 right-4 bg-red-500 text-white opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n }}\n />\n \n ))}\n
    \n \n );\n};\n\nexport default Accessories;\n","import React, { useEffect, useMemo } from \"react\";\nimport Helmet from \"react-helmet\"; // Use React Helmet\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchProductsByCategory } from \"../../Redux/slice/productSlice\";\nimport { Card, Button, Tag } from \"antd\";\nimport { ShoppingCartOutlined } from \"@ant-design/icons\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst Speakers = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const { productsByCategory = {}, loading: productsLoading } = useSelector((state) => state.products);\nconst GTM_ID = \"GTM-WKCL4JTV\"; \nconst hardcodedCategoryId = \"38f7245d-b5f4-408a-9607-c3e3cb410ae4\"\n\nuseEffect(() => {\n window.scrollTo(0, 0);\n dispatch(fetchProductsByCategory(hardcodedCategoryId));\n}, [dispatch]);\n\nconst filteredProducts = useMemo(() => {\n return (productsByCategory[hardcodedCategoryId] || [])\n .slice()\n .sort((a, b) => new Date(b.dateCreated) - new Date(a.dateCreated));\n}, [productsByCategory]);\n\n const formatPrice = (amount) =>\n amount.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n\n if ( productsLoading) {\n return (\n
    \n
    \n {Array.from({ length: 12 }).map((_, index) => (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n ))}\n
    \n \n );\n }\n \n return (\n
    \n {/* ✅ SEO Optimization with React Helmet */}\n \n {/* Page Title & Meta Tags */}\n Best Speakers for Sale | Affordable Audio Systems\n \n \n \n\n {/* Open Graph (Facebook & LinkedIn) */}\n \n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"} />\n \n\n {/* Twitter Cards */}\n \n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"} />\n \n {/* JSON-LD Structured Data for Rich Snippets */}\n \n\n\n\n\n\n\n\n {/* ✅ Section Title */}\n
    \n BEST & QUALITY\n
    \n \n

    \n HOME THEATERS\n

    \n \n
    \n
    \n\n {/* ✅ Products Grid */}\n
    \n {filteredProducts.map((item) => (\n navigate(`/product/${item.productID}`)} className=\"cursor-pointer relative h-full flex items-center justify-center\">\n \n
    \n }\n >\n
    \n

    {item.productName}

    \n

    ₵{formatPrice(item.price)}

    \n
    \n {item.brandName}\n }\n className=\"absolute bottom-4 right-4 bg-red-500 text-white opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => e.stopPropagation()}\n />\n \n ))}\n
    \n \n );\n};\n\nexport default Speakers;\n","import React, { useEffect, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nimport { fetchProductsByCategory } from \"../../Redux/slice/productSlice\";\nimport { Card, Button, Tag } from \"antd\";\nimport { ShoppingCartOutlined } from \"@ant-design/icons\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\n\nconst Blender = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const { productsByCategory = {}, loading: productsLoading } = useSelector((state) => state.products);\n const GTM_ID = \"GTM-WKCL4JTV\"; // Your GTM ID\n\n const hardcodedCategoryId = \"9170b363-bb16-4980-83a1-7e3a3bbba964\"\n\n useEffect(() => {\n window.scrollTo(0, 0);\n dispatch(fetchProductsByCategory(hardcodedCategoryId));\n }, [dispatch]);\n\n const filteredProducts = useMemo(() => {\n return (productsByCategory[hardcodedCategoryId] || [])\n .slice()\n .sort((a, b) => new Date(b.dateCreated) - new Date(a.dateCreated));\n }, [productsByCategory]);\n \n const formatPrice = (amount) =>\n amount.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n\n // Scroll to top when component mounts\n useEffect(() => {\n window.scrollTo(0, 0);\n }, []);\n\n // Google Tag Manager script\n\n\n if ( productsLoading) {\n return (\n
    \n
    \n {Array.from({ length: 8 }).map((_, index) => (\n \n
    \n
    \n
    \n
    \n
    \n
    \n ))}\n \n \n );\n }\n \n return (\n
    \n {/* SEO Helmet */}\n \n {/* Page Title & Meta Description */}\n Best Appliances in Ghana | Buy Affordable & Quality Appliances\n \n \n\n {/* Open Graph (Facebook & WhatsApp) */}\n \n \n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"} />\n\n {/* Twitter Card */}\n \n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"} />\n\n {/* Canonical URL */}\n \n\n {/* JSON-LD Structured Data */}\n \n\n\n\n \n\n\n {/* Section Title */}\n
    \n BEST & QUALITY\n
    \n \n

    \n APPLIANCES\n

    \n \n
    \n
    \n\n {/* Products Grid */}\n
    \n {filteredProducts.map((item) => (\n {\n navigate(`/product/${item.productID}`);\n }}\n className=\"cursor-pointer relative h-full flex items-center justify-center\"\n >\n \n
    \n }\n >\n
    \n

    {item.productName}

    \n

    ₵{formatPrice(item.price)}

    \n
    \n {item.brandName}\n }\n className=\"absolute bottom-4 right-4 bg-red-500 text-white opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n }}\n />\n \n ))}\n
    \n \n );\n};\n\nexport default Blender;\n","import React, { useEffect, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchProductsByCategory } from \"../../Redux/slice/productSlice\";\nimport { Card, Button, Tag } from \"antd\";\nimport { ShoppingCartOutlined } from \"@ant-design/icons\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\n\nconst Fan = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const { productsByCategory = {}, loading: productsLoading } = useSelector((state) => state.products);\n const GTM_ID = \"GTM-WKCL4JTV\"; // Your GTM ID\n const hardcodedCategoryId = \"bbfdf52f-37a0-4b9d-9798-7c65cfad54e3\" \n \n useEffect(() => {\n window.scrollTo(0, 0);\n dispatch(fetchProductsByCategory(hardcodedCategoryId));\n }, [dispatch]);\n\n const filteredProducts = useMemo(() => {\n return (productsByCategory[hardcodedCategoryId] || [])\n .slice()\n .sort((a, b) => new Date(b.dateCreated) - new Date(a.dateCreated));\n }, [productsByCategory]);\n \n\n const formatPrice = (amount) =>\n amount.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n\n\n\n if ( productsLoading) {\n return (\n
    \n
    \n {Array.from({ length: 4 }).map((_, index) => (\n
    \n {/* Franko Logo Background */}\n
    \n
    \n
    \n
    \n
    \n
    \n ))}\n
    \n \n );\n }\n \n return (\n
    \n {/* React Helmet for SEO */}\n \n Shop Fans - Best Deals on Cooling Fans | Franko Trading\n \n \n \n {/* Open Graph Metadata for Social Sharing */}\n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"} />\n \n \n\n {/* Twitter Card for Better Social Media Display */}\n \n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"} />\n\n {/* Canonical URL */}\n \n\n {/* Structured Data JSON-LD */}\n \n \n\n\n\n\n {/* Section Title */}\n
    \n BEST & QUALITY\n
    \n \n

    \n COOLING FANS\n

    \n \n
    \n
    \n\n {/* Products Grid */}\n
    \n {filteredProducts.map((item) => (\n navigate(`/product/${item.productID}`)}\n className=\"cursor-pointer relative h-full flex items-center justify-center\"\n >\n \n
    \n }\n >\n
    \n

    {item.productName}

    \n

    ₵{formatPrice(item.price)}

    \n
    \n {item.brandName}\n }\n className=\"absolute bottom-4 right-4 bg-red-500 text-white opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n // Add to cart logic here\n }}\n />\n \n ))}\n
    \n \n );\n};\n\nexport default Fan;\n","import React, { useEffect, useMemo } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchProductsByCategory } from \"../../Redux/slice/productSlice\";\nimport { Card, Button, Tag } from \"antd\";\nimport { ShoppingCartOutlined } from \"@ant-design/icons\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Helmet } from \"react-helmet\";\nimport TagManager from \"react-gtm-module\";\n\nconst Combo = () => {\n const dispatch = useDispatch();\n const navigate = useNavigate();\n\n const { productsByCategory = {}, loading: productsLoading } = useSelector((state) => state.products);\n const GTM_ID = \"GTM-WKCL4JTV\"; // Your GTM ID\n\n const hardcodedCategoryId = \"4bdb194e-b308-4fd2-981d-e2c94736c773\"\n useEffect(() => {\n window.scrollTo(0, 0);\n dispatch(fetchProductsByCategory(hardcodedCategoryId));\n }, [dispatch]);\n \n const filteredProducts = useMemo(() => {\n return (productsByCategory[hardcodedCategoryId] || [])\n .slice()\n .sort((a, b) => new Date(b.dateCreated) - new Date(a.dateCreated));\n }, [productsByCategory]);\n\n useEffect(() => {\n // Initialize Google Tag Manager\n TagManager.initialize({ gtmId: \"GTM-WKCL4JTV\" }); // Replace with your GTM ID\n }, []);\n\n\n const formatPrice = (amount) =>\n amount.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n\n const structuredData = {\n \"@context\": \"https://schema.org/\",\n \"@type\": \"Product\",\n \"name\": \"Combo Deals\",\n \"image\": filteredProducts.length\n ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}`\n : \"\",\n \"description\": \"Discover the best combo deals on our platform with amazing discounts.\",\n \"brand\": {\n \"@type\": \"Brand\",\n \"name\": \"Brand Name\"\n },\n \"category\": \"Electronics\", // Modify as per product category\n \"offers\": filteredProducts.map((item) => ({\n \"@type\": \"Offer\",\n \"sku\": item.productID,\n \"priceCurrency\": \"GHS\",\n \"price\": item.price,\n \"priceValidUntil\": \"2025-12-31\",\n \"itemCondition\": \"https://schema.org/NewCondition\",\n \"availability\": \"https://schema.org/InStock\",\n \"url\": `https://frankotrading.com/product/${item.productID}`,\n \"shippingDetails\": {\n \"@type\": \"OfferShippingDetails\",\n \"shippingRate\": {\n \"@type\": \"MonetaryAmount\",\n \"currency\": \"GHS\",\n \"value\": \"30.00\"\n },\n \"shippingDestination\": {\n \"@type\": \"DefinedRegion\",\n \"addressCountry\": \"GH\"\n },\n \"deliveryTime\": {\n \"@type\": \"ShippingDeliveryTime\",\n \"handlingTime\": {\n \"@type\": \"QuantitativeValue\",\n \"minValue\": 1,\n \"maxValue\": 2,\n \"unitCode\": \"DAY\"\n },\n \"transitTime\": {\n \"@type\": \"QuantitativeValue\",\n \"minValue\": 3,\n \"maxValue\": 5,\n \"unitCode\": \"DAY\"\n }\n }\n },\n \"hasMerchantReturnPolicy\": {\n \"@type\": \"MerchantReturnPolicy\",\n \"returnPolicyCategory\": \"https://schema.org/MerchantReturnFiniteReturnWindow\",\n \"merchantReturnDays\": 14,\n \"returnMethod\": \"https://schema.org/ReturnByMail\",\n \"returnFees\": \"https://schema.org/FreeReturn\",\n \"applicableCountry\": \"GH\"\n }\n })),\n \"aggregateRating\": {\n \"@type\": \"AggregateRating\",\n \"ratingValue\": \"4.5\",\n \"reviewCount\": \"120\"\n },\n \"review\": {\n \"@type\": \"Review\",\n \"author\": {\n \"@type\": \"Person\",\n \"name\": \"Verified Buyer\"\n },\n \"reviewBody\": \"Great deal on this product! Highly recommended.\",\n \"reviewRating\": {\n \"@type\": \"Rating\",\n \"ratingValue\": \"5\",\n \"bestRating\": \"5\"\n }\n }\n };\n \n\n if ( productsLoading) {\n return (\n
    \n \n
    \n {Array.from({ length: 12 }).map((_, index) => (\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n ))}\n
    \n
    \n );\n }\n \n return (\n
    \n
    \n \n {/* SEO Metadata */}\n \n Combo Deals - Best Discounts\n \n \n \n \n \n \n \n \n \n 0 ? `https://smfteapi.salesmate.app/Media/Products_Images/${filteredProducts[0].productImage.split(\"\\\\\").pop()}` : \"default-image-url\"} />\n \n \n {/* Google Tag Manager */}\n\n \n \n\n {/* Section Title */}\n \n\n
    \n BEST\n
    \n \n

    \n COMBO DEALS\n

    \n \n
    \n
    \n {/* Products Grid */}\n
    \n {filteredProducts.map((item) => (\n navigate(`/product/${item.productID}`)}\n className=\"cursor-pointer relative h-full flex items-center justify-center\"\n >\n \n
    \n }\n >\n
    \n

    {item.productName}

    \n

    ₵{formatPrice(item.price)}

    \n
    \n {item.brandName}\n }\n className=\"absolute bottom-4 right-4 bg-red-500 text-white opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => {\n e.stopPropagation();\n }}\n />\n \n ))}\n
    \n
    \n \n );\n};\n\nexport default Combo;\n","import { useEffect, useState } from \"react\";\nimport { useParams, useNavigate } from \"react-router-dom\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { fetchProductsByShowroom } from \"../../Redux/slice/productSlice\";\nimport { fetchShowrooms } from \"../../Redux/slice/showRoomSlice\";\nimport { Empty, Input, Button, Pagination } from \"antd\";\nimport { ShoppingCartOutlined, FilterOutlined } from \"@ant-design/icons\";\n\nconst ShowroomProductsPage = () => {\n const { showRoomID } = useParams();\n const dispatch = useDispatch();\n const navigate = useNavigate();\n \n const { productsByShowroom = {}, loading, showroom } = useSelector(\n (state) => state.products\n );\n\n // Pagination States\n const [currentPage, setCurrentPage] = useState(1);\n const itemsPerPage = 12;\n\n // Price Filter States\n const [minPrice, setMinPrice] = useState(0);\n const [maxPrice, setMaxPrice] = useState(200000);\n\n useEffect(() => {\n window.scrollTo(0, 0);\n if (showRoomID) {\n dispatch(fetchProductsByShowroom(showRoomID));\n dispatch(fetchShowrooms());\n }\n }, [dispatch, showRoomID]);\n\n // Filtering products based on price range\n const filteredProducts = (productsByShowroom[showRoomID] || [])\n .filter((product) => product.price >= minPrice && product.price <= maxPrice)\n .sort((a, b) => new Date(b.dateCreated) - new Date(a.dateCreated));\n\n // Pagination logic\n const indexOfLastProduct = currentPage * itemsPerPage;\n const indexOfFirstProduct = indexOfLastProduct - itemsPerPage;\n const currentProducts = filteredProducts.slice(indexOfFirstProduct, indexOfLastProduct);\n\n // Format price with commas\n const formatPrice = (price) => price.toFixed(2).replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n\n // Calculate discount percentage\n const calculateDiscount = (oldPrice, price) => {\n if (oldPrice > price) {\n return Math.round(((oldPrice - price) / oldPrice) * 100);\n }\n return 0;\n };\n\n return (\n
    \n

    \n {showroom ? `${showroom.showRoomName} Products` : \"Showroom Products\"}\n

    \n\n {/* Price Filter Section */}\n
    \n

    Filter by Price

    \n
    \n setMinPrice(Number(e.target.value))}\n placeholder=\"Min Price\"\n style={{ width: 100 }}\n />\n -\n setMaxPrice(Number(e.target.value))}\n placeholder=\"Max Price\"\n style={{ width: 100 }}\n />\n }\n onClick={() => setCurrentPage(1)} // Reset to first page on filter change\n >\n Filter\n \n
    \n
    \n\n {/* Loading State */}\n {loading ? (\n
    \n {Array.from({ length: 12 }).map((_, index) => (\n
    \n
    \n
    \n
    \n
    \n ))}\n
    \n ) : currentProducts.length > 0 ? (\n <>\n {/* Products Grid */}\n
    \n {currentProducts.map((product) => {\n const discount = calculateDiscount(product.oldPrice, product.price);\n return (\n navigate(`/product/${product.productID}`)}\n >\n {discount > 0 && (\n
    \n {`${discount}% OFF`}\n
    \n )}\n
    \n \n
    \n
    \n

    \n {product.productName}\n

    \n
    \n \n {`₵${formatPrice(product.price)}`}\n \n {product.oldPrice > 0 && (\n \n {`₵${formatPrice(product.oldPrice)}`}\n \n )}\n
    \n
    \n }\n className=\"absolute bottom-2 right-2 bg-red-500 text-white opacity-0 group-hover:opacity-100 transition-opacity\"\n onClick={(e) => e.stopPropagation()}\n />\n
    \n );\n })}\n
    \n\n {/* Pagination Component */}\n {filteredProducts.length > itemsPerPage && (\n
    \n setCurrentPage(page)}\n showSizeChanger={false}\n />\n
    \n )}\n \n ) : (\n
    \n No Products Found}\n image={Empty.PRESENTED_IMAGE_SIMPLE}\n imageStyle={{ height: 200, marginBottom: 6 }}\n />\n
    \n )}\n \n );\n};\n\nexport default ShowroomProductsPage;\n","\"use client\";\n\nimport * as React from 'react';\nimport { ConfigContext } from '../config-provider';\nconst BreadcrumbSeparator = _ref => {\n let {\n children\n } = _ref;\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('breadcrumb');\n return /*#__PURE__*/React.createElement(\"li\", {\n className: `${prefixCls}-separator`,\n \"aria-hidden\": \"true\"\n }, children === '' ? children : children || '/');\n};\nBreadcrumbSeparator.__ANT_BREADCRUMB_SEPARATOR = true;\nexport default BreadcrumbSeparator;","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nfunction getBreadcrumbName(route, params) {\n if (route.title === undefined || route.title === null) {\n return null;\n }\n const paramsKeys = Object.keys(params).join('|');\n return typeof route.title === 'object' ? route.title : String(route.title).replace(new RegExp(`:(${paramsKeys})`, 'g'), (replacement, key) => params[key] || replacement);\n}\nexport function renderItem(prefixCls, item, children, href) {\n if (children === null || children === undefined) {\n return null;\n }\n const {\n className,\n onClick\n } = item,\n restItem = __rest(item, [\"className\", \"onClick\"]);\n const passedProps = Object.assign(Object.assign({}, pickAttrs(restItem, {\n data: true,\n aria: true\n })), {\n onClick\n });\n if (href !== undefined) {\n return /*#__PURE__*/React.createElement(\"a\", Object.assign({}, passedProps, {\n className: classNames(`${prefixCls}-link`, className),\n href: href\n }), children);\n }\n return /*#__PURE__*/React.createElement(\"span\", Object.assign({}, passedProps, {\n className: classNames(`${prefixCls}-link`, className)\n }), children);\n}\nexport default function useItemRender(prefixCls, itemRender) {\n const mergedItemRender = (item, params, routes, path, href) => {\n if (itemRender) {\n return itemRender(item, params, routes, path);\n }\n const name = getBreadcrumbName(item, params);\n return renderItem(prefixCls, item, name, href);\n };\n return mergedItemRender;\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport DownOutlined from \"@ant-design/icons/es/icons/DownOutlined\";\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport Dropdown from '../dropdown/dropdown';\nimport BreadcrumbSeparator from './BreadcrumbSeparator';\nimport { renderItem } from './useItemRender';\nexport const InternalBreadcrumbItem = props => {\n const {\n prefixCls,\n separator = '/',\n children,\n menu,\n overlay,\n dropdownProps,\n href\n } = props;\n // Warning for deprecated usage\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Breadcrumb.Item');\n warning.deprecated(!('overlay' in props), 'overlay', 'menu');\n }\n /** If overlay is have Wrap a Dropdown */\n const renderBreadcrumbNode = breadcrumbItem => {\n if (menu || overlay) {\n const mergeDropDownProps = Object.assign({}, dropdownProps);\n if (menu) {\n const _a = menu || {},\n {\n items\n } = _a,\n menuProps = __rest(_a, [\"items\"]);\n mergeDropDownProps.menu = Object.assign(Object.assign({}, menuProps), {\n items: items === null || items === void 0 ? void 0 : items.map((_a, index) => {\n var {\n key,\n title,\n label,\n path\n } = _a,\n itemProps = __rest(_a, [\"key\", \"title\", \"label\", \"path\"]);\n let mergedLabel = label !== null && label !== void 0 ? label : title;\n if (path) {\n mergedLabel = /*#__PURE__*/React.createElement(\"a\", {\n href: `${href}${path}`\n }, mergedLabel);\n }\n return Object.assign(Object.assign({}, itemProps), {\n key: key !== null && key !== void 0 ? key : index,\n label: mergedLabel\n });\n })\n });\n } else if (overlay) {\n mergeDropDownProps.overlay = overlay;\n }\n return /*#__PURE__*/React.createElement(Dropdown, Object.assign({\n placement: \"bottom\"\n }, mergeDropDownProps), /*#__PURE__*/React.createElement(\"span\", {\n className: `${prefixCls}-overlay-link`\n }, breadcrumbItem, /*#__PURE__*/React.createElement(DownOutlined, null)));\n }\n return breadcrumbItem;\n };\n // wrap to dropDown\n const link = renderBreadcrumbNode(children);\n if (link !== undefined && link !== null) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"li\", null, link), separator && /*#__PURE__*/React.createElement(BreadcrumbSeparator, null, separator));\n }\n return null;\n};\nconst BreadcrumbItem = props => {\n const {\n prefixCls: customizePrefixCls,\n children,\n href\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"children\", \"href\"]);\n const {\n getPrefixCls\n } = React.useContext(ConfigContext);\n const prefixCls = getPrefixCls('breadcrumb', customizePrefixCls);\n return /*#__PURE__*/React.createElement(InternalBreadcrumbItem, Object.assign({}, restProps, {\n prefixCls: prefixCls\n }), renderItem(prefixCls, restProps, children, href));\n};\nBreadcrumbItem.__ANT_BREADCRUMB_ITEM = true;\nexport default BreadcrumbItem;","import { unit } from '@ant-design/cssinjs';\nimport { genFocusStyle, resetComponent } from '../../style';\nimport { genStyleHooks, mergeToken } from '../../theme/internal';\nconst genBreadcrumbStyle = token => {\n const {\n componentCls,\n iconCls,\n calc\n } = token;\n return {\n [componentCls]: Object.assign(Object.assign({}, resetComponent(token)), {\n color: token.itemColor,\n fontSize: token.fontSize,\n [iconCls]: {\n fontSize: token.iconFontSize\n },\n ol: {\n display: 'flex',\n flexWrap: 'wrap',\n margin: 0,\n padding: 0,\n listStyle: 'none'\n },\n a: Object.assign({\n color: token.linkColor,\n transition: `color ${token.motionDurationMid}`,\n padding: `0 ${unit(token.paddingXXS)}`,\n borderRadius: token.borderRadiusSM,\n height: token.fontHeight,\n display: 'inline-block',\n marginInline: calc(token.marginXXS).mul(-1).equal(),\n '&:hover': {\n color: token.linkHoverColor,\n backgroundColor: token.colorBgTextHover\n }\n }, genFocusStyle(token)),\n 'li:last-child': {\n color: token.lastItemColor\n },\n [`${componentCls}-separator`]: {\n marginInline: token.separatorMargin,\n color: token.separatorColor\n },\n [`${componentCls}-link`]: {\n [`\n > ${iconCls} + span,\n > ${iconCls} + a\n `]: {\n marginInlineStart: token.marginXXS\n }\n },\n [`${componentCls}-overlay-link`]: {\n borderRadius: token.borderRadiusSM,\n height: token.fontHeight,\n display: 'inline-block',\n padding: `0 ${unit(token.paddingXXS)}`,\n marginInline: calc(token.marginXXS).mul(-1).equal(),\n [`> ${iconCls}`]: {\n marginInlineStart: token.marginXXS,\n fontSize: token.fontSizeIcon\n },\n '&:hover': {\n color: token.linkHoverColor,\n backgroundColor: token.colorBgTextHover,\n a: {\n color: token.linkHoverColor\n }\n },\n a: {\n '&:hover': {\n backgroundColor: 'transparent'\n }\n }\n },\n // rtl style\n [`&${token.componentCls}-rtl`]: {\n direction: 'rtl'\n }\n })\n };\n};\nexport const prepareComponentToken = token => ({\n itemColor: token.colorTextDescription,\n lastItemColor: token.colorText,\n iconFontSize: token.fontSize,\n linkColor: token.colorTextDescription,\n linkHoverColor: token.colorText,\n separatorColor: token.colorTextDescription,\n separatorMargin: token.marginXS\n});\n// ============================== Export ==============================\nexport default genStyleHooks('Breadcrumb', token => {\n const breadcrumbToken = mergeToken(token, {});\n return genBreadcrumbStyle(breadcrumbToken);\n}, prepareComponentToken);","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { useMemo } from 'react';\nfunction route2item(route) {\n const {\n breadcrumbName,\n children\n } = route,\n rest = __rest(route, [\"breadcrumbName\", \"children\"]);\n const clone = Object.assign({\n title: breadcrumbName\n }, rest);\n if (children) {\n clone.menu = {\n items: children.map(_a => {\n var {\n breadcrumbName: itemBreadcrumbName\n } = _a,\n itemProps = __rest(_a, [\"breadcrumbName\"]);\n return Object.assign(Object.assign({}, itemProps), {\n title: itemBreadcrumbName\n });\n })\n };\n }\n return clone;\n}\nexport default function useItems(items, routes) {\n return useMemo(() => {\n if (items) {\n return items;\n }\n if (routes) {\n return routes.map(route2item);\n }\n return null;\n }, [items, routes]);\n}","\"use client\";\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport { cloneElement } from '../_util/reactNode';\nimport { devUseWarning } from '../_util/warning';\nimport { ConfigContext } from '../config-provider';\nimport BreadcrumbItem, { InternalBreadcrumbItem } from './BreadcrumbItem';\nimport BreadcrumbSeparator from './BreadcrumbSeparator';\nimport useStyle from './style';\nimport useItemRender from './useItemRender';\nimport useItems from './useItems';\nconst getPath = (params, path) => {\n if (path === undefined) {\n return path;\n }\n let mergedPath = (path || '').replace(/^\\//, '');\n Object.keys(params).forEach(key => {\n mergedPath = mergedPath.replace(`:${key}`, params[key]);\n });\n return mergedPath;\n};\nconst Breadcrumb = props => {\n const {\n prefixCls: customizePrefixCls,\n separator = '/',\n style,\n className,\n rootClassName,\n routes: legacyRoutes,\n items,\n children,\n itemRender,\n params = {}\n } = props,\n restProps = __rest(props, [\"prefixCls\", \"separator\", \"style\", \"className\", \"rootClassName\", \"routes\", \"items\", \"children\", \"itemRender\", \"params\"]);\n const {\n getPrefixCls,\n direction,\n breadcrumb\n } = React.useContext(ConfigContext);\n let crumbs;\n const prefixCls = getPrefixCls('breadcrumb', customizePrefixCls);\n const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls);\n const mergedItems = useItems(items, legacyRoutes);\n if (process.env.NODE_ENV !== 'production') {\n const warning = devUseWarning('Breadcrumb');\n warning.deprecated(!legacyRoutes, 'routes', 'items');\n // Deprecated warning for breadcrumb children\n if (!mergedItems || mergedItems.length === 0) {\n const childList = toArray(children);\n warning.deprecated(childList.length === 0, 'Breadcrumb.Item and Breadcrumb.Separator', 'items');\n childList.forEach(element => {\n if (element) {\n process.env.NODE_ENV !== \"production\" ? warning(element.type && (element.type.__ANT_BREADCRUMB_ITEM === true || element.type.__ANT_BREADCRUMB_SEPARATOR === true), 'usage', \"Only accepts Breadcrumb.Item and Breadcrumb.Separator as it's children\") : void 0;\n }\n });\n }\n }\n const mergedItemRender = useItemRender(prefixCls, itemRender);\n if (mergedItems && mergedItems.length > 0) {\n // generated by route\n const paths = [];\n const itemRenderRoutes = items || legacyRoutes;\n crumbs = mergedItems.map((item, index) => {\n const {\n path,\n key,\n type,\n menu,\n overlay,\n onClick,\n className: itemClassName,\n separator: itemSeparator,\n dropdownProps\n } = item;\n const mergedPath = getPath(params, path);\n if (mergedPath !== undefined) {\n paths.push(mergedPath);\n }\n const mergedKey = key !== null && key !== void 0 ? key : index;\n if (type === 'separator') {\n return /*#__PURE__*/React.createElement(BreadcrumbSeparator, {\n key: mergedKey\n }, itemSeparator);\n }\n const itemProps = {};\n const isLastItem = index === mergedItems.length - 1;\n if (menu) {\n itemProps.menu = menu;\n } else if (overlay) {\n itemProps.overlay = overlay;\n }\n let {\n href\n } = item;\n if (paths.length && mergedPath !== undefined) {\n href = `#/${paths.join('/')}`;\n }\n return /*#__PURE__*/React.createElement(InternalBreadcrumbItem, Object.assign({\n key: mergedKey\n }, itemProps, pickAttrs(item, {\n data: true,\n aria: true\n }), {\n className: itemClassName,\n dropdownProps: dropdownProps,\n href: href,\n separator: isLastItem ? '' : separator,\n onClick: onClick,\n prefixCls: prefixCls\n }), mergedItemRender(item, params, itemRenderRoutes, paths, href));\n });\n } else if (children) {\n const childrenLength = toArray(children).length;\n crumbs = toArray(children).map((element, index) => {\n if (!element) {\n return element;\n }\n const isLastItem = index === childrenLength - 1;\n return cloneElement(element, {\n separator: isLastItem ? '' : separator,\n // eslint-disable-next-line react/no-array-index-key\n key: index\n });\n });\n }\n const breadcrumbClassName = classNames(prefixCls, breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.className, {\n [`${prefixCls}-rtl`]: direction === 'rtl'\n }, className, rootClassName, hashId, cssVarCls);\n const mergedStyle = Object.assign(Object.assign({}, breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.style), style);\n return wrapCSSVar(/*#__PURE__*/React.createElement(\"nav\", Object.assign({\n className: breadcrumbClassName,\n style: mergedStyle\n }, restProps), /*#__PURE__*/React.createElement(\"ol\", null, crumbs)));\n};\nBreadcrumb.Item = BreadcrumbItem;\nBreadcrumb.Separator = BreadcrumbSeparator;\nif (process.env.NODE_ENV !== 'production') {\n Breadcrumb.displayName = 'Breadcrumb';\n}\nexport default Breadcrumb;","\"use client\";\n\nimport Breadcrumb from './Breadcrumb';\nexport default Breadcrumb;","import React from \"react\";\nimport { Breadcrumb } from \"antd\";\nimport { Link, useLocation } from \"react-router-dom\";\n\nconst Breadcrumbs = () => {\n const location = useLocation();\n const pathnames = location.pathname.split(\"/\").filter((x) => { return x !== ''; });\n\n // Check if the current page is the home page\n const isHomePage = location.pathname === \"/\";\n\n // Define an array of paths where breadcrumbs should NOT be displayed\n const excludedPaths = [\n \"/login\", \"/register\", \"/admin/brands\", \"/admin/dashboard\", \"/admin/orders\",\n \"/admin/showroom\", \"/admin/categories\",\"/admin/products\", \"/admin/banner\", \"/admin/users\", \n \"/admin/customers\", \"/admin/login\", \"/admin/register\", \"/sign-in\", \"/sign-up\",\n \"/content/dashboard\", \"/content/products\", \"/content/showroom\", \"/content/brands\",\n \"/content/categories\", \"/content/banner\", \"/fulfillment/dashboard\", \"/fulfillment/orders\",\n \"/cart\", \"/order-status\", \"/order-history\", \"/order-received\"\n ]; \n\n // Define regex patterns for dynamic paths\n const dynamicPathPatterns = [\n /^\\/cart\\/.+$/, /^\\/cart\\/update\\/.+$/, /^\\/order-success\\/.+$/,\n /^\\/payment-status-checker\\/.+$/, /^\\/product\\/.+$/, /^\\/category\\/.+$/,\n /^\\/brand\\/.+$/, /^\\/showroom\\/.+$/\n ];\n\n // Check if the path should be excluded\n const isExcluded = isHomePage || excludedPaths.some((path) => location.pathname.startsWith(path)) ||\n dynamicPathPatterns.some((pattern) => pattern.test(location.pathname));\n\n if (isExcluded) {\n return null; // Do not render breadcrumbs\n }\n\n return (\n
    \n \">\n \n Home\n \n {pathnames.map((value, index) => {\n const url = `/${pathnames.slice(0, index + 1).join(\"/\")}`;\n return (\n \n {value.replace(/-/g, \" \")}\n \n );\n })}\n \n
    \n );\n};\n\nexport default Breadcrumbs;\n","import React, { useState, useEffect } from \"react\";\nimport {\n BrowserRouter as Router,\n Routes,\n Route,\n Navigate,\n useLocation,\n} from \"react-router-dom\";\n\n// Import components\nimport Navbar from \"./Components/Navbar/Navbar\";\nimport Home from \"./Pages/Home/Home\";\nimport Cart from \"./Pages/Cart/Cart\";\nimport Checkout from \"./Pages/Checkout/Checkout\";\nimport Brand from \"./Pages/Brand/Brand\";\nimport ProductDetail from \"./Pages/ProductDetails/ProductDetails\";\nimport OrderCycle from \"./Pages/Orders/OrderCycle\";\nimport RegistrationPage from \"./Pages/SignUp/SignUp\";\nimport CartUpdatePage from \"./Pages/Cart/CartUpdate\";\nimport LoginPage from \"./Pages/LogIn/Signin\";\nimport ProductsPage from \"./Pages/AllProducts\";\nimport OrderHistory from \"./Pages/OrderHistory/OrderHistory\";\nimport About from \"./Pages/About/About\";\nimport Contact from \"./Pages/Contact/Contact\";\nimport Policies from \"./Pages/Policy\";\nimport UserProfile from \"./Pages/Profile\";\n\n// Agent-specific imports\nimport AdminLogin from \"./AdminPages/Login\";\nimport AdminRegister from \"./AdminPages/Register\";\nimport AdminPage from \"./AdminPages/AdminPage\";\nimport AgentHome from \"./Agents/AgentHome\";\nimport AgentOrders from \"./Agents/AgentPage/AgentOrders\";\nimport AgentDashboard from \"./Agents/AgentPage/AgentDashboard\";\nimport OrderSuccess from \"./Pages/OrderSuccessPage\";\nimport OrderReceived from \"./Pages/OrderReceived\";\nimport NoInternetPage from \"./Pages/NoInternet\";\nimport ContentPage from \"./ContentManager/ContentPage\";\nimport ContentDashboard from \"./ContentManager/ContentManager/ContentDashboard\";\nimport Products from \"./ContentManager/ContentManager/Products\";\nimport Brands from \"./ContentManager/ContentManager/Brands\";\nimport Category from \"./ContentManager/ContentManager/Category\";\nimport Showroom from \"./ContentManager/ContentManager/Showroom\";\nimport FulfillmentPage from \"./Fufilments/Fufilments/FulfillmentsPage\";\nimport FulfillmentsDashboard from \"./Fufilments/Fufilments/FulfillmentsDashboard\";\nimport FulfillmentsOrder from \"./Fufilments/Fufilments/FulfillmentsOrder\";\nimport Dashboard from \"./AdminPages/Dashboard\";\nimport Cancellation from \"./Pages/Cancellation\";\nimport PaymentStatusChecker from \"./Pages/PaymentStatusChecker\";\nimport Sitemap from \"./Pages/sitemap\";\nimport Iphone16 from \"./Pages/SEO/iphone16\";\nimport Samsung from \"./Pages/SEO/Samsung\";\nimport Tecno from \"./Pages/SEO/Tecno\";\nimport Tablet from \"./Pages/SEO/Tablet\";\nimport Phones from \"./Pages/Categories/Phones\";\nimport Computers from \"./Pages/Categories/Computers\";\nimport Television from \"./Pages/Categories/Television\";\nimport Aircondition from \"./Pages/Categories/AC\";\nimport Refrigerator from \"./Pages/Categories/Fridge\";\nimport Accessories from \"./Pages/Categories/Accessories\";\nimport Speakers from \"./Pages/Categories/Speakers\";\nimport Blender from \"./Pages/Categories/Blender\";\nimport Fan from \"./Pages/Categories/Fans\";\nimport Combo from \"./Pages/Categories/Combo\";\nimport ShowroomProductsPage from \"./Components/ShowRoom/ShowRoomPage\";\nimport Banner from \"./ContentManager/ContentManager/Banner\";\nimport Breadcrumbs from \"./Components/Breadcrumbs\";\n\n\n\n\n// Utility to fetch customer role\nconst getUserRole = () => {\n try {\n const customer = JSON.parse(localStorage.getItem(\"customer\"));\n const user = JSON.parse(localStorage.getItem(\"user\"));\n if (!customer && !user) {\n return ;\n }\n // First, check user position from the user object, if exists\n if (user && user.position) {\n return user.position; // e.g., 'Supervisor', 'Webcontentmanager', 'Fulfillment'\n }\n \n // If the user object doesn't have a position, fallback to the customer object\n return customer?.accountType || null; // 'customer', 'agent', or 'admin'\n } catch (error) {\n console.error(\"Error parsing customer or user data from localStorage:\", error);\n return null;\n }\n};\n\nconst getUserPosition = () => {\n try {\n const user = JSON.parse(localStorage.getItem(\"user\"));\n return user?.position || null; // e.g., 'Supervisor', 'Webcontentmanager', 'Fulfillment'\n } catch (error) {\n console.error(\"Error parsing user data from localStorage:\", error);\n return null;\n }\n};\n\n\n// Protected Route Component\nconst ProtectedRoute = ({ children, allowedRoles }) => {\n const userRole = getUserRole();\n const userPosition = getUserPosition();\n\n // Check user position and redirect accordingly (if position exists in the user object)\nif (userPosition) {\n if (userPosition === \"Supervisor\") {\n // Render AdminPage directly for Supervisor\n return ;\n } else if (userPosition === \"Webcontentmanager\") {\n return ;\n } else if (userPosition === \"Fulfillment\") {\n return ;\n }\n}\n // If no userPosition is found, check the role-based redirection (from userRole)\n if (!userRole || !allowedRoles.includes(userRole)) {\n return ;\n }\n\n return children;\n};\n\nconst App = () => {\n const [isOnline, setIsOnline] = useState(navigator.onLine);\n\n \n\n\n // Monitor network status\n useEffect(() => {\n const handleOnline = () => setIsOnline(true);\n const handleOffline = () => setIsOnline(false);\n \n \n\n window.addEventListener(\"online\", handleOnline);\n window.addEventListener(\"offline\", handleOffline);\n return () => {\n window.removeEventListener(\"online\", handleOnline);\n window.removeEventListener(\"offline\", handleOffline);\n };\n }, []);\n\n if (!isOnline) {\n return ; // Render NoInternetPage if offline\n }\n return (\n \n \n \n \n \n \n \n {/* Public Routes */}\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 {/* Admin Routes */}\n} />\n} />\n \n \n \n \n \n \n } \n/>\n\n {/* Agent Routes */}\n \n \n {\" \"}\n {/* This renders inside AgentHome when /agent-dashboard is visited */}\n \n \n }\n />\n\n \n \n {\" \"}\n {/* This renders inside AgentHome when /agent-dashboard/orders is visited */}\n \n \n }\n />\n \n {/* Content Manager Routes */}\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 {/* Fulfillment Routes */}\n \n \n \n }\n />\n \n \n \n }\n />\n \n {/* Default route redirects */}\n } />\n \n\n \n \n );\n};\n\n// Navbar and Footer Components\nconst ConditionalNavbar = () => {\n const location = useLocation();\n const hiddenPaths = [\n \"/admin/login\",\n \"/admin/register\",\n \"/sign-in\",\n \"/sign-up\",\n \"/content/dashboard\",\n \"/content/products\",\n \"/content/showroom\",\n \"/content/brands\",\n \"/content/categories\",\n \"/content/banner\",\n \"/fulfillment/dashboard\",\n \"/fulfillment/orders\",\n ];\n const isAdminPath = location.pathname.startsWith(\"/admin/\");\n\n return !hiddenPaths.includes(location.pathname) && !isAdminPath && ;\n};\n\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","export var KEY_PREFIX = 'persist:';\nexport var FLUSH = 'persist/FLUSH';\nexport var REHYDRATE = 'persist/REHYDRATE';\nexport var PAUSE = 'persist/PAUSE';\nexport var PERSIST = 'persist/PERSIST';\nexport var PURGE = 'persist/PURGE';\nexport var REGISTER = 'persist/REGISTER';\nexport var DEFAULT_VERSION = -1;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/*\n autoMergeLevel1: \n - merges 1 level of substate\n - skips substate if already modified\n*/\nexport default function autoMergeLevel1(inboundState, originalState, reducedState, _ref) {\n var debug = _ref.debug;\n\n var newState = _objectSpread({}, reducedState); // only rehydrate if inboundState exists and is an object\n\n\n if (inboundState && _typeof(inboundState) === 'object') {\n Object.keys(inboundState).forEach(function (key) {\n // ignore _persist data\n if (key === '_persist') return; // if reducer modifies substate, skip auto rehydration\n\n if (originalState[key] !== reducedState[key]) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log('redux-persist/stateReconciler: sub state for key `%s` modified, skipping.', key);\n return;\n } // otherwise hard set the new value\n\n\n newState[key] = inboundState[key];\n });\n }\n\n if (process.env.NODE_ENV !== 'production' && debug && inboundState && _typeof(inboundState) === 'object') console.log(\"redux-persist/stateReconciler: rehydrated keys '\".concat(Object.keys(inboundState).join(', '), \"'\"));\n return newState;\n}","import { KEY_PREFIX, REHYDRATE } from './constants';\n// @TODO remove once flow < 0.63 support is no longer required.\nexport default function createPersistoid(config) {\n // defaults\n var blacklist = config.blacklist || null;\n var whitelist = config.whitelist || null;\n var transforms = config.transforms || [];\n var throttle = config.throttle || 0;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var serialize;\n\n if (config.serialize === false) {\n serialize = function serialize(x) {\n return x;\n };\n } else if (typeof config.serialize === 'function') {\n serialize = config.serialize;\n } else {\n serialize = defaultSerialize;\n }\n\n var writeFailHandler = config.writeFailHandler || null; // initialize stateful values\n\n var lastState = {};\n var stagedState = {};\n var keysToProcess = [];\n var timeIterator = null;\n var writePromise = null;\n\n var update = function update(state) {\n // add any changed keys to the queue\n Object.keys(state).forEach(function (key) {\n if (!passWhitelistBlacklist(key)) return; // is keyspace ignored? noop\n\n if (lastState[key] === state[key]) return; // value unchanged? noop\n\n if (keysToProcess.indexOf(key) !== -1) return; // is key already queued? noop\n\n keysToProcess.push(key); // add key to queue\n }); //if any key is missing in the new state which was present in the lastState,\n //add it for processing too\n\n Object.keys(lastState).forEach(function (key) {\n if (state[key] === undefined && passWhitelistBlacklist(key) && keysToProcess.indexOf(key) === -1 && lastState[key] !== undefined) {\n keysToProcess.push(key);\n }\n }); // start the time iterator if not running (read: throttle)\n\n if (timeIterator === null) {\n timeIterator = setInterval(processNextKey, throttle);\n }\n\n lastState = state;\n };\n\n function processNextKey() {\n if (keysToProcess.length === 0) {\n if (timeIterator) clearInterval(timeIterator);\n timeIterator = null;\n return;\n }\n\n var key = keysToProcess.shift();\n var endState = transforms.reduce(function (subState, transformer) {\n return transformer.in(subState, key, lastState);\n }, lastState[key]);\n\n if (endState !== undefined) {\n try {\n stagedState[key] = serialize(endState);\n } catch (err) {\n console.error('redux-persist/createPersistoid: error serializing state', err);\n }\n } else {\n //if the endState is undefined, no need to persist the existing serialized content\n delete stagedState[key];\n }\n\n if (keysToProcess.length === 0) {\n writeStagedState();\n }\n }\n\n function writeStagedState() {\n // cleanup any removed keys just before write.\n Object.keys(stagedState).forEach(function (key) {\n if (lastState[key] === undefined) {\n delete stagedState[key];\n }\n });\n writePromise = storage.setItem(storageKey, serialize(stagedState)).catch(onWriteFail);\n }\n\n function passWhitelistBlacklist(key) {\n if (whitelist && whitelist.indexOf(key) === -1 && key !== '_persist') return false;\n if (blacklist && blacklist.indexOf(key) !== -1) return false;\n return true;\n }\n\n function onWriteFail(err) {\n // @TODO add fail handlers (typically storage full)\n if (writeFailHandler) writeFailHandler(err);\n\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('Error storing data', err);\n }\n }\n\n var flush = function flush() {\n while (keysToProcess.length !== 0) {\n processNextKey();\n }\n\n return writePromise || Promise.resolve();\n }; // return `persistoid`\n\n\n return {\n update: update,\n flush: flush\n };\n} // @NOTE in the future this may be exposed via config\n\nfunction defaultSerialize(data) {\n return JSON.stringify(data);\n}","import { KEY_PREFIX } from './constants';\nexport default function getStoredState(config) {\n var transforms = config.transforms || [];\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n var storage = config.storage;\n var debug = config.debug;\n var deserialize;\n\n if (config.deserialize === false) {\n deserialize = function deserialize(x) {\n return x;\n };\n } else if (typeof config.deserialize === 'function') {\n deserialize = config.deserialize;\n } else {\n deserialize = defaultDeserialize;\n }\n\n return storage.getItem(storageKey).then(function (serialized) {\n if (!serialized) return undefined;else {\n try {\n var state = {};\n var rawState = deserialize(serialized);\n Object.keys(rawState).forEach(function (key) {\n state[key] = transforms.reduceRight(function (subState, transformer) {\n return transformer.out(subState, key, rawState);\n }, deserialize(rawState[key]));\n });\n return state;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production' && debug) console.log(\"redux-persist/getStoredState: Error restoring data \".concat(serialized), err);\n throw err;\n }\n }\n });\n}\n\nfunction defaultDeserialize(serial) {\n return JSON.parse(serial);\n}","import { KEY_PREFIX } from './constants';\nexport default function purgeStoredState(config) {\n var storage = config.storage;\n var storageKey = \"\".concat(config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX).concat(config.key);\n return storage.removeItem(storageKey, warnIfRemoveError);\n}\n\nfunction warnIfRemoveError(err) {\n if (err && process.env.NODE_ENV !== 'production') {\n console.error('redux-persist/purgeStoredState: Error purging data stored state', err);\n }\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { FLUSH, PAUSE, PERSIST, PURGE, REHYDRATE, DEFAULT_VERSION } from './constants';\nimport autoMergeLevel1 from './stateReconciler/autoMergeLevel1';\nimport createPersistoid from './createPersistoid';\nimport defaultGetStoredState from './getStoredState';\nimport purgeStoredState from './purgeStoredState';\nvar DEFAULT_TIMEOUT = 5000;\n/*\n @TODO add validation / handling for:\n - persisting a reducer which has nested _persist\n - handling actions that fire before reydrate is called\n*/\n\nexport default function persistReducer(config, baseReducer) {\n if (process.env.NODE_ENV !== 'production') {\n if (!config) throw new Error('config is required for persistReducer');\n if (!config.key) throw new Error('key is required in persistor config');\n if (!config.storage) throw new Error(\"redux-persist: config.storage is required. Try using one of the provided storage engines `import storage from 'redux-persist/lib/storage'`\");\n }\n\n var version = config.version !== undefined ? config.version : DEFAULT_VERSION;\n var debug = config.debug || false;\n var stateReconciler = config.stateReconciler === undefined ? autoMergeLevel1 : config.stateReconciler;\n var getStoredState = config.getStoredState || defaultGetStoredState;\n var timeout = config.timeout !== undefined ? config.timeout : DEFAULT_TIMEOUT;\n var _persistoid = null;\n var _purge = false;\n var _paused = true;\n\n var conditionalUpdate = function conditionalUpdate(state) {\n // update the persistoid only if we are rehydrated and not paused\n state._persist.rehydrated && _persistoid && !_paused && _persistoid.update(state);\n return state;\n };\n\n return function (state, action) {\n var _ref = state || {},\n _persist = _ref._persist,\n rest = _objectWithoutProperties(_ref, [\"_persist\"]); // $FlowIgnore need to update State type\n\n\n var restState = rest;\n\n if (action.type === PERSIST) {\n var _sealed = false;\n\n var _rehydrate = function _rehydrate(payload, err) {\n // dev warning if we are already sealed\n if (process.env.NODE_ENV !== 'production' && _sealed) console.error(\"redux-persist: rehydrate for \\\"\".concat(config.key, \"\\\" called after timeout.\"), payload, err); // only rehydrate if we are not already sealed\n\n if (!_sealed) {\n action.rehydrate(config.key, payload, err);\n _sealed = true;\n }\n };\n\n timeout && setTimeout(function () {\n !_sealed && _rehydrate(undefined, new Error(\"redux-persist: persist timed out for persist key \\\"\".concat(config.key, \"\\\"\")));\n }, timeout); // @NOTE PERSIST resumes if paused.\n\n _paused = false; // @NOTE only ever create persistoid once, ensure we call it at least once, even if _persist has already been set\n\n if (!_persistoid) _persistoid = createPersistoid(config); // @NOTE PERSIST can be called multiple times, noop after the first\n\n if (_persist) {\n // We still need to call the base reducer because there might be nested\n // uses of persistReducer which need to be aware of the PERSIST action\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n }\n\n if (typeof action.rehydrate !== 'function' || typeof action.register !== 'function') throw new Error('redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.');\n action.register(config.key);\n getStoredState(config).then(function (restoredState) {\n var migrate = config.migrate || function (s, v) {\n return Promise.resolve(s);\n };\n\n migrate(restoredState, version).then(function (migratedState) {\n _rehydrate(migratedState);\n }, function (migrateErr) {\n if (process.env.NODE_ENV !== 'production' && migrateErr) console.error('redux-persist: migration error', migrateErr);\n\n _rehydrate(undefined, migrateErr);\n });\n }, function (err) {\n _rehydrate(undefined, err);\n });\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: {\n version: version,\n rehydrated: false\n }\n });\n } else if (action.type === PURGE) {\n _purge = true;\n action.result(purgeStoredState(config));\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n } else if (action.type === FLUSH) {\n action.result(_persistoid && _persistoid.flush());\n return _objectSpread({}, baseReducer(restState, action), {\n _persist: _persist\n });\n } else if (action.type === PAUSE) {\n _paused = true;\n } else if (action.type === REHYDRATE) {\n // noop on restState if purging\n if (_purge) return _objectSpread({}, restState, {\n _persist: _objectSpread({}, _persist, {\n rehydrated: true\n }) // @NOTE if key does not match, will continue to default else below\n\n });\n\n if (action.key === config.key) {\n var reducedState = baseReducer(restState, action);\n var inboundState = action.payload; // only reconcile state if stateReconciler and inboundState are both defined\n\n var reconciledRest = stateReconciler !== false && inboundState !== undefined ? stateReconciler(inboundState, state, reducedState, config) : reducedState;\n\n var _newState = _objectSpread({}, reconciledRest, {\n _persist: _objectSpread({}, _persist, {\n rehydrated: true\n })\n });\n\n return conditionalUpdate(_newState);\n }\n } // if we have not already handled PERSIST, straight passthrough\n\n\n if (!_persist) return baseReducer(state, action); // run base reducer:\n // is state modified ? return original : return updated\n\n var newState = baseReducer(restState, action);\n if (newState === restState) return state;\n return conditionalUpdate(_objectSpread({}, newState, {\n _persist: _persist\n }));\n };\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { createStore } from 'redux';\nimport { FLUSH, PAUSE, PERSIST, PURGE, REGISTER, REHYDRATE } from './constants';\nvar initialState = {\n registry: [],\n bootstrapped: false\n};\n\nvar persistorReducer = function persistorReducer() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case REGISTER:\n return _objectSpread({}, state, {\n registry: [].concat(_toConsumableArray(state.registry), [action.key])\n });\n\n case REHYDRATE:\n var firstIndex = state.registry.indexOf(action.key);\n\n var registry = _toConsumableArray(state.registry);\n\n registry.splice(firstIndex, 1);\n return _objectSpread({}, state, {\n registry: registry,\n bootstrapped: registry.length === 0\n });\n\n default:\n return state;\n }\n};\n\nexport default function persistStore(store, options, cb) {\n // help catch incorrect usage of passing PersistConfig in as PersistorOptions\n if (process.env.NODE_ENV !== 'production') {\n var optionsToTest = options || {};\n var bannedKeys = ['blacklist', 'whitelist', 'transforms', 'storage', 'keyPrefix', 'migrate'];\n bannedKeys.forEach(function (k) {\n if (!!optionsToTest[k]) console.error(\"redux-persist: invalid option passed to persistStore: \\\"\".concat(k, \"\\\". You may be incorrectly passing persistConfig into persistStore, whereas it should be passed into persistReducer.\"));\n });\n }\n\n var boostrappedCb = cb || false;\n\n var _pStore = createStore(persistorReducer, initialState, options && options.enhancer ? options.enhancer : undefined);\n\n var register = function register(key) {\n _pStore.dispatch({\n type: REGISTER,\n key: key\n });\n };\n\n var rehydrate = function rehydrate(key, payload, err) {\n var rehydrateAction = {\n type: REHYDRATE,\n payload: payload,\n err: err,\n key: key // dispatch to `store` to rehydrate and `persistor` to track result\n\n };\n store.dispatch(rehydrateAction);\n\n _pStore.dispatch(rehydrateAction);\n\n if (boostrappedCb && persistor.getState().bootstrapped) {\n boostrappedCb();\n boostrappedCb = false;\n }\n };\n\n var persistor = _objectSpread({}, _pStore, {\n purge: function purge() {\n var results = [];\n store.dispatch({\n type: PURGE,\n result: function result(purgeResult) {\n results.push(purgeResult);\n }\n });\n return Promise.all(results);\n },\n flush: function flush() {\n var results = [];\n store.dispatch({\n type: FLUSH,\n result: function result(flushResult) {\n results.push(flushResult);\n }\n });\n return Promise.all(results);\n },\n pause: function pause() {\n store.dispatch({\n type: PAUSE\n });\n },\n persist: function persist() {\n store.dispatch({\n type: PERSIST,\n register: register,\n rehydrate: rehydrate\n });\n }\n });\n\n if (!(options && options.manualPersist)) {\n persistor.persist();\n }\n\n return persistor;\n}","import { configureStore } from '@reduxjs/toolkit';\nimport storage from 'redux-persist/lib/storage'; // Default storage (localStorage for web)\nimport { persistStore, persistReducer } from 'redux-persist';\nimport { combineReducers } from 'redux';\nimport categoryReducer from './slice/categorySlice';\nimport brandReducer from './slice/brandSlice';\nimport productReducer from './slice/productSlice';\nimport showroomReducer from './slice/showRoomSlice';\nimport orderReducer from './slice/orderSlice';\nimport userReducer from './slice/userSlice';\nimport customerReducer from './slice/customerSlice';\nimport cartReducer from './slice/cartSlice';\nimport shippingReducer from './slice/shippingSlice';\nimport advertismentReducer from './slice/advertismentSlice';\n\n// Combine reducers\nconst rootReducer = combineReducers({\n categories: categoryReducer,\n brands: brandReducer,\n products: productReducer,\n showrooms: showroomReducer,\n orders: orderReducer,\n user: userReducer,\n customer: customerReducer,\n cart: cartReducer,\n shipping: shippingReducer,\n advertisment: advertismentReducer\n \n});\n\n// Redux Persist configuration\nconst persistConfig = {\n key: 'root',\n storage, // Use localStorage as the storage engine\n whitelist: ['categories', 'brands', 'products', 'showrooms', 'orders'], // Specify slices to persist\n};\n\nconst persistedReducer = persistReducer(persistConfig, rootReducer);\n\n// Create store\nexport const store = configureStore({\n reducer: persistedReducer,\n middleware: (getDefaultMiddleware) =>\n getDefaultMiddleware({\n serializableCheck: false, // Required for Redux Persist\n }),\n});\n\n// Create persistor\nexport const persistor = persistStore(store);\n","import { formatProdErrorMessage as _formatProdErrorMessage, formatProdErrorMessage as _formatProdErrorMessage2, formatProdErrorMessage as _formatProdErrorMessage3, formatProdErrorMessage as _formatProdErrorMessage4, formatProdErrorMessage as _formatProdErrorMessage5, formatProdErrorMessage as _formatProdErrorMessage6, formatProdErrorMessage as _formatProdErrorMessage7 } from \"@reduxjs/toolkit\";\nimport type { Reducer, ReducersMapObject, Middleware, Action, StoreEnhancer, Store, UnknownAction } from 'redux';\nimport { applyMiddleware, createStore, compose, combineReducers, isPlainObject } from 'redux';\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension';\nimport { composeWithDevTools } from './devtoolsExtension';\nimport type { ThunkMiddlewareFor, GetDefaultMiddleware } from './getDefaultMiddleware';\nimport { buildGetDefaultMiddleware } from './getDefaultMiddleware';\nimport type { ExtractDispatchExtensions, ExtractStoreExtensions, ExtractStateExtensions, UnknownIfNonSpecific } from './tsHelpers';\nimport type { Tuple } from './utils';\nimport type { GetDefaultEnhancers } from './getDefaultEnhancers';\nimport { buildGetDefaultEnhancers } from './getDefaultEnhancers';\n\n/**\n * Options for `configureStore()`.\n *\n * @public\n */\nexport interface ConfigureStoreOptions> = Tuple>, E extends Tuple = Tuple, P = S> {\n /**\n * A single reducer function that will be used as the root reducer, or an\n * object of slice reducers that will be passed to `combineReducers()`.\n */\n reducer: Reducer | ReducersMapObject;\n\n /**\n * An array of Redux middleware to install, or a callback receiving `getDefaultMiddleware` and returning a Tuple of middleware.\n * If not supplied, defaults to the set of middleware returned by `getDefaultMiddleware()`.\n *\n * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\n * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\n */\n middleware?: (getDefaultMiddleware: GetDefaultMiddleware) => M;\n\n /**\n * Whether to enable Redux DevTools integration. Defaults to `true`.\n *\n * Additional configuration can be done by passing Redux DevTools options\n */\n devTools?: boolean | DevToolsOptions;\n\n /**\n * The initial state, same as Redux's createStore.\n * You may optionally specify it to hydrate the state\n * from the server in universal apps, or to restore a previously serialized\n * user session. If you use `combineReducers()` to produce the root reducer\n * function (either directly or indirectly by passing an object as `reducer`),\n * this must be an object with the same shape as the reducer map keys.\n */\n // we infer here, and instead complain if the reducer doesn't match\n preloadedState?: P;\n\n /**\n * The store enhancers to apply. See Redux's `createStore()`.\n * All enhancers will be included before the DevTools Extension enhancer.\n * If you need to customize the order of enhancers, supply a callback\n * function that will receive a `getDefaultEnhancers` function that returns a Tuple,\n * and should return a Tuple of enhancers (such as `getDefaultEnhancers().concat(offline)`).\n * If you only need to add middleware, you can use the `middleware` parameter instead.\n */\n enhancers?: (getDefaultEnhancers: GetDefaultEnhancers) => E;\n}\nexport type Middlewares = ReadonlyArray>;\ntype Enhancers = ReadonlyArray;\n\n/**\n * A Redux store returned by `configureStore()`. Supports dispatching\n * side-effectful _thunks_ in addition to plain actions.\n *\n * @public\n */\nexport type EnhancedStore = ExtractStoreExtensions & Store>>;\n\n/**\n * A friendly abstraction over the standard Redux `createStore()` function.\n *\n * @param options The store configuration.\n * @returns A configured Redux store.\n *\n * @public\n */\nexport function configureStore> = Tuple<[ThunkMiddlewareFor]>, E extends Tuple = Tuple<[StoreEnhancer<{\n dispatch: ExtractDispatchExtensions;\n}>, StoreEnhancer]>, P = S>(options: ConfigureStoreOptions): EnhancedStore {\n const getDefaultMiddleware = buildGetDefaultMiddleware();\n const {\n reducer = undefined,\n middleware,\n devTools = true,\n preloadedState = undefined,\n enhancers = undefined\n } = options || {};\n let rootReducer: Reducer;\n if (typeof reducer === 'function') {\n rootReducer = reducer;\n } else if (isPlainObject(reducer)) {\n rootReducer = combineReducers(reducer) as unknown as Reducer;\n } else {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(1) : '`reducer` is a required argument, and must be a function or an object of functions that can be passed to combineReducers');\n }\n if (process.env.NODE_ENV !== 'production' && middleware && typeof middleware !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage2(2) : '`middleware` field must be a callback');\n }\n let finalMiddleware: Tuple>;\n if (typeof middleware === 'function') {\n finalMiddleware = middleware(getDefaultMiddleware);\n if (process.env.NODE_ENV !== 'production' && !Array.isArray(finalMiddleware)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage3(3) : 'when using a middleware builder function, an array of middleware must be returned');\n }\n } else {\n finalMiddleware = getDefaultMiddleware();\n }\n if (process.env.NODE_ENV !== 'production' && finalMiddleware.some((item: any) => typeof item !== 'function')) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage4(4) : 'each middleware provided to configureStore must be a function');\n }\n let finalCompose = compose;\n if (devTools) {\n finalCompose = composeWithDevTools({\n // Enable capture of stack traces for dispatched Redux actions\n trace: process.env.NODE_ENV !== 'production',\n ...(typeof devTools === 'object' && devTools)\n });\n }\n const middlewareEnhancer = applyMiddleware(...finalMiddleware);\n const getDefaultEnhancers = buildGetDefaultEnhancers(middlewareEnhancer);\n if (process.env.NODE_ENV !== 'production' && enhancers && typeof enhancers !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage5(5) : '`enhancers` field must be a callback');\n }\n let storeEnhancers = typeof enhancers === 'function' ? enhancers(getDefaultEnhancers) : getDefaultEnhancers();\n if (process.env.NODE_ENV !== 'production' && !Array.isArray(storeEnhancers)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage6(6) : '`enhancers` callback must return an array');\n }\n if (process.env.NODE_ENV !== 'production' && storeEnhancers.some((item: any) => typeof item !== 'function')) {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage7(7) : 'each enhancer provided to configureStore must be a function');\n }\n if (process.env.NODE_ENV !== 'production' && finalMiddleware.length && !storeEnhancers.includes(middlewareEnhancer)) {\n console.error('middlewares were provided, but middleware enhancer was not included in final enhancers - make sure to call `getDefaultEnhancers`');\n }\n const composedEnhancer: StoreEnhancer = finalCompose(...storeEnhancers);\n return createStore(rootReducer, preloadedState as P, composedEnhancer);\n}","import { formatProdErrorMessage as _formatProdErrorMessage } from \"src/utils/formatProdErrorMessage\";\nimport compose from './compose';\nimport { Middleware, MiddlewareAPI } from './types/middleware';\nimport { StoreEnhancer, Dispatch } from './types/store';\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param middlewares The middleware chain to be applied.\n * @returns A store enhancer applying the middleware.\n *\n * @template Ext Dispatch signature added by a middleware.\n * @template S The type of the state supported by a middleware.\n */\nexport default function applyMiddleware(): StoreEnhancer;\nexport default function applyMiddleware(middleware1: Middleware): StoreEnhancer<{\n dispatch: Ext1;\n}>;\nexport default function applyMiddleware(middleware1: Middleware, middleware2: Middleware): StoreEnhancer<{\n dispatch: Ext1 & Ext2;\n}>;\nexport default function applyMiddleware(middleware1: Middleware, middleware2: Middleware, middleware3: Middleware): StoreEnhancer<{\n dispatch: Ext1 & Ext2 & Ext3;\n}>;\nexport default function applyMiddleware(middleware1: Middleware, middleware2: Middleware, middleware3: Middleware, middleware4: Middleware): StoreEnhancer<{\n dispatch: Ext1 & Ext2 & Ext3 & Ext4;\n}>;\nexport default function applyMiddleware(middleware1: Middleware, middleware2: Middleware, middleware3: Middleware, middleware4: Middleware, middleware5: Middleware): StoreEnhancer<{\n dispatch: Ext1 & Ext2 & Ext3 & Ext4 & Ext5;\n}>;\nexport default function applyMiddleware(...middlewares: Middleware[]): StoreEnhancer<{\n dispatch: Ext;\n}>;\nexport default function applyMiddleware(...middlewares: Middleware[]): StoreEnhancer {\n return createStore => (reducer, preloadedState) => {\n const store = createStore(reducer, preloadedState);\n let dispatch: Dispatch = () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? _formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n const middlewareAPI: MiddlewareAPI = {\n getState: store.getState,\n dispatch: (action, ...args) => dispatch(action, ...args)\n };\n const chain = middlewares.map(middleware => middleware(middlewareAPI));\n dispatch = compose(...chain)(store.dispatch);\n return {\n ...store,\n dispatch\n };\n };\n}","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { PureComponent } from 'react'; // eslint-disable-line import/no-unresolved\n\nexport var PersistGate =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(PersistGate, _PureComponent);\n\n function PersistGate() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, PersistGate);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(PersistGate)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n bootstrapped: false\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_unsubscribe\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"handlePersistorState\", function () {\n var persistor = _this.props.persistor;\n\n var _persistor$getState = persistor.getState(),\n bootstrapped = _persistor$getState.bootstrapped;\n\n if (bootstrapped) {\n if (_this.props.onBeforeLift) {\n Promise.resolve(_this.props.onBeforeLift()).finally(function () {\n return _this.setState({\n bootstrapped: true\n });\n });\n } else {\n _this.setState({\n bootstrapped: true\n });\n }\n\n _this._unsubscribe && _this._unsubscribe();\n }\n });\n\n return _this;\n }\n\n _createClass(PersistGate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._unsubscribe = this.props.persistor.subscribe(this.handlePersistorState);\n this.handlePersistorState();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._unsubscribe && this._unsubscribe();\n }\n }, {\n key: \"render\",\n value: function render() {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof this.props.children === 'function' && this.props.loading) console.error('redux-persist: PersistGate expects either a function child or loading prop, but not both. The loading prop will be ignored.');\n }\n\n if (typeof this.props.children === 'function') {\n return this.props.children(this.state.bootstrapped);\n }\n\n return this.state.bootstrapped ? this.props.children : this.props.loading;\n }\n }]);\n\n return PersistGate;\n}(PureComponent);\n\n_defineProperty(PersistGate, \"defaultProps\", {\n children: null,\n loading: null\n});","import React from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport \"./index.css\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\nimport { Provider } from \"react-redux\"; // Import Provider\nimport { store, persistor } from \"./Redux/store\"; // Import the Redux store and persistor\nimport { PersistGate } from \"redux-persist/integration/react\"; // Import PersistGate\nimport TagManager from \"react-gtm-module\"; // Import GTM module\n\n// Initialize GTM\nconst tagManagerArgs = {\n gtmId: \"GTM-WKCL4JTV\", // Replace with your actual GTM ID\n};\n\nTagManager.initialize(tagManagerArgs);\n\nconst root = ReactDOM.createRoot(document.getElementById(\"root\"));\nroot.render(\n \n \n \n \n \n \n \n);\n\n// Measuring app performance\nreportWebVitals();\n"],"names":["module","exports","value","other","factory","self","__WEBPACK_EXTERNAL_MODULE_jspdf__","__WEBPACK_EXTERNAL_MODULE_html2canvas__","__webpack_modules__","__unused_webpack_module","__webpack_exports__","__webpack_require__","r","_worker_js__WEBPACK_IMPORTED_MODULE_2__","_utils_js__WEBPACK_IMPORTED_MODULE_3__","linkInfo","orig","toContainer","default","prototype","toPdf","call","this","then","opt","enableLinks","container","prop","links","querySelectorAll","containerRect","unitConvert","getBoundingClientRect","pageSize","k","Array","forEach","link","clientRects","getClientRects","i","length","clientRect","left","top","page","Math","floor","inner","height","margin","push","l","pdf","setPage","width","url","href","nPages","internal","getNumberOfPages","jspdf__WEBPACK_IMPORTED_MODULE_7__","_typeof","obj","Symbol","iterator","constructor","jsPDF","getPageSize","orientation","unit","format","options","toLowerCase","format_as_string","pageFormats","hasOwnProperty","pageHeight","pageWidth","err","Error","tmp","_worker_js__WEBPACK_IMPORTED_MODULE_5__","_utils_js__WEBPACK_IMPORTED_MODULE_6__","template","pagebreak","mode","before","after","avoid","root","pxPageHeight","px","modeSrc","concat","avoidAll","indexOf","css","legacy","select","key","all","slice","join","legacyEls","els","el","rules","style","window","getComputedStyle","breakOpt","breakBefore","pageBreakBefore","breakAfter","pageBreakAfter","breakInside","pageBreakInside","Object","keys","startPage","endPage","bottom","abs","pad","createElement","display","parentNode","insertBefore","nextSibling","d","objType","cloneNode","toPx","type","String","Number","Function","nodeType","tagName","document","className","innerHTML","scripts","getElementsByTagName","removeChild","node","javascriptEnabled","clone","createTextNode","nodeValue","child","firstChild","nodeName","appendChild","getContext","drawImage","addEventListener","scrollTop","scrollLeft","newObj","val","jspdf__WEBPACK_IMPORTED_MODULE_8__","html2canvas__WEBPACK_IMPORTED_MODULE_9__","_utils_js__WEBPACK_IMPORTED_MODULE_10__","es6_promise__WEBPACK_IMPORTED_MODULE_11__","Promise","n","es6_promise__WEBPACK_IMPORTED_MODULE_11___default","Worker","assign","convert","resolve","JSON","parse","stringify","setProgress","set","create","promise","inherit","__proto__","src","overlay","canvas","img","progress","state","stack","filename","image","quality","html2canvas","from","getType","error","to","target","toCanvas","toImg","thenList","setPageSize","overlayCSS","position","overflow","zIndex","right","backgroundColor","containerCSS","opacity","source","body","prereqs","contains","onrendered","imgData","toDataURL","pxFullHeight","ratio","ceil","pageCanvas","pageCtx","w","h","fillStyle","fillRect","addPage","addImage","output","outputImg","outputPdf","undefined","location","save","fns","map","setMargin","bind","get","cbk","updateProgress","onFulfilled","onRejected","thenCore","thenBase","selfPromise","toString","name","returnVal","thenExternal","fn","catchExternal","msg","using","saveAs","export","run","it","TypeError","__unused_webpack_exports","isObject","wellKnownSymbol","definePropertyModule","UNSCOPABLES","ArrayPrototype","f","configurable","$forEach","STRICT_METHOD","arrayMethodIsStrict","callbackfn","arguments","toIndexedObject","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","O","index","includes","IndexedObject","toObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","that","specificCreate","result","boundFunction","filter","some","every","find","findIndex","filterReject","fails","V8_VERSION","SPECIES","METHOD_NAME","array","foo","Boolean","argument","method","isArray","originalArray","C","arraySpeciesConstructor","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tag","tryGet","callee","has","ownKeys","getOwnPropertyDescriptorModule","defineProperty","getOwnPropertyDescriptor","F","getPrototypeOf","requireObjectCoercible","quot","string","attribute","S","p1","replace","IteratorPrototype","createPropertyDescriptor","setToStringTag","Iterators","returnThis","IteratorConstructor","NAME","next","DESCRIPTORS","object","bitmap","enumerable","writable","toPropertyKey","propertyKey","$","createIteratorConstructor","setPrototypeOf","createNonEnumerableProperty","redefine","IS_PURE","IteratorsCore","BUGGY_SAFARI_ITERATORS","ITERATOR","KEYS","VALUES","ENTRIES","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","proto","forced","path","wrappedWellKnownSymbolModule","global","EXISTS","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","getBuiltIn","match","version","userAgent","process","Deno","versions","v8","split","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","exec","aFunction","a","b","c","apply","namespace","variable","check","globalThis","hasOwn","classof","propertyIsEnumerable","dummy","Wrapper","NewTarget","NewTargetPrototype","store","functionToString","inspectSource","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","arg","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","USE_SYMBOL_AS_UID","$Symbol","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","test","getOwnPropertySymbols","symbol","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","A","B","alphabet","chr","T","argumentsLength","j","activeXDocument","anObject","defineProperties","enumBugKeys","html","documentCreateElement","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","domain","iframeDocument","iframe","JS","contentWindow","open","NullProtoObjectViaIFrame","Properties","IE8_DOM_DEFINE","$defineProperty","P","Attributes","$getOwnPropertyDescriptor","$getOwnPropertyNames","windowNames","getOwnPropertyNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","names","$propertyIsEnumerable","NASHORN_BUG","V","aPossiblePrototype","setter","CORRECT_SETTER","input","pref","valueOf","getOwnPropertyNamesModule","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","ignoreCase","multiline","dotAll","unicode","sticky","TAG","uid","SHARED","copyright","toInteger","CONVERT_TO_STRING","pos","first","second","size","charCodeAt","charAt","codeAt","whitespace","ltrim","RegExp","rtrim","start","end","trim","max","min","integer","isNaN","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","id","postfix","random","NATIVE_SYMBOL","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","createProperty","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","len","E","addToUnscopables","defineIterator","ARRAY_ITERATOR","setInternalState","iterated","kind","done","Arguments","nativeJoin","ES3_STRINGS","separator","$map","HAS_SPECIES_SUPPORT","nativeSlice","Constructor","fin","FunctionPrototype","FunctionPrototypeToString","nameRE","inheritIfRequired","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","third","radix","maxCode","digits","code","NaN","parseInt","NumberWrapper","nativeKeys","$toString","flags","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","R","p","rf","STRING_ITERATOR","point","createHTML","forcedStringHTMLMethod","NativeSymbol","description","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","regexp","desc","defineWellKnownSymbol","nativeObjectCreate","getOwnPropertyNamesExternal","HIDDEN","SYMBOL","$stringify","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","wrap","$defineProperties","properties","$getOwnPropertySymbols","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","replacer","space","$replacer","args","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","ArrayIteratorMethods","ArrayValues","objectOrFunction","x","isFunction","vertxNext","customSchedulerFn","asap","callback","queue","flush","scheduleFlush","setScheduler","scheduleFn","setAsap","asapFn","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","isWorker","Uint8ClampedArray","importScripts","MessageChannel","useNextTick","nextTick","useVertxTimer","useSetTimeout","useMutationObserver","iterations","observer","observe","characterData","useMessageChannel","channel","port1","onmessage","port2","postMessage","globalSetTimeout","setTimeout","attemptVertx","vertx","require","runOnLoop","runOnContext","e","onFulfillment","onRejection","parent","noop","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","resolve$1","substring","PENDING","FULFILLED","REJECTED","selfFulfillment","cannotReturnOwn","tryThen","then$$1","fulfillmentHandler","rejectionHandler","handleForeignThenable","thenable","sealed","fulfill","reason","reject","_label","handleOwnThenable","handleMaybeThenable","maybeThenable","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","hasCallback","succeeded","initializePromise","resolver","nextId","validationError","Enumerator","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","resolve$$1","_then","didError","_settledAt","Promise$1","_willSettleAt","enumerator","race","_","reject$1","needsResolver","needsNew","catch","finally","polyfill","local","promiseToString","cast","_setScheduler","_setAsap","_asap","__webpack_module_cache__","moduleId","cachedModule","getter","__esModule","definition","o","toStringTag","_worker_js__WEBPACK_IMPORTED_MODULE_0__","html2pdf","worker","selection","getSelection","rangeCount","active","activeElement","ranges","getRangeAt","toUpperCase","blur","removeAllRanges","range","addRange","focus","reWhitespace","iteratee","t","s","u","$locale","weekStart","Ls","locale","formats","months","monthsShort","firstDayOfWeek","weekdays","weekdaysMin","weekdaysShort","longDateFormat","meridiem","ordinal","localeData","comparer","sort","getMapData","y","M","m","v","z","utcOffset","date","year","month","add","D","ms","Q","g","$L","utc","$u","$x","$offset","$d","Date","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","getTime","toDate","$set","daysInMonth","round","subtract","invalidDate","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","extend","$i","isDayjs","en","asyncGeneratorStep","_asyncToGenerator","_next","_throw","baseExtremum","baseGt","identity","_TagManager","_TagManager2","__WEBPACK_EXTERNAL_MODULE__964__","__extends","extendStatics","__","CellHookData","HookData","doc","table","cursor","pageNumber","pageCount","settings","getDocument","_super","cell","row","column","_this","section","htmlParser_1","autoTableText_1","documentHandler_1","inputParser_1","tableDrawer_1","tableCalculator_1","API","autoTable","_i","console","columns","parseInput","createTable","drawTable","lastAutoTable","previousAutoTable","previous","autoTableText","text","styles","autoTableSetDefaults","defaults","DocHandler","setDefaults","autoTableHtmlToJson","tableElem","includeHiddenElements","_a","_b","parseHtml","head","rows","autoTableEndPosY","prev","finalY","autoTableAddPageContent","hook","globalDefaults","addPageContent","autoTableAddPage","scaleFactor","fontSize","getFontSize","lineHeight","getLineHeightFactor","splitText","lineCount","valign","halign","alignSize","iLine","getStringUnitWidth","maxWidth","align","getFillStyle","lineWidth","fillColor","drawLine","drawBackground","parseSpacing","defaultValue","_c","_d","vertical","horizontal","getPageAvailableWidth","addTableBorder","getStringWidth","applyStyles","getTextWidth","reduce","startPos","tableLineWidth","lineColor","tableLineColor","rect","getWidth","margins","getTheme","defaultStyles","HtmlRowInput","element","_element","font","fontStyle","textColor","cellPadding","cellWidth","minCellHeight","minCellWidth","striped","foot","alternateRow","grid","plain","parseCss","common_1","parseColor","styleGetter","cssColor","realColor","rgba","color","elem","bg","parentElement","supportedFonts","pxScaleFactor","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","linePadding","inputPadding","parsePadding","borderColorSide","finalScaleFactor","btw","borderTopWidth","borderBottomWidth","borderRightWidth","borderLeftWidth","borderWidth","parseFloat","borderColor","accepted","textAlign","verticalAlign","res","fontWeight","parseFontStyle","fontFamily","jsPDFDocument","userStyles","getTextColor","getFont","fontName","getLineWidth","getDrawColor","__autoTableDocumentDefaults","unifyColor","fontOnly","setFontStyle","availableFontStyles","getFontList","setFont","setFontSize","setFillColor","setTextColor","setDrawColor","setLineWidth","splitTextToSize","opts","getLastAutoTable","getGlobalOptions","getDocumentOptions","getHeight","getLineHeight","pageInfo","getCurrentPageInfo","cssParser_1","config_1","parseRowContent","includeHidden","useCss","resultRow","cells","style_1","cellStyles","rowSpan","colSpan","parseCellContent","orgCell","part","innerText","textContent","includeHiddenHtml","tableElement","querySelector","polyfills_1","inputValidator_1","current","win","gInput","dInput","cInput","styleOptions","headStyles","bodyStyles","footStyles","alternateRowStyles","columnStyles","_loop_1","global_1","document_1","parseStyles","hooks","didParseCell","willDrawCell","didDrawCell","willDrawPage","didDrawPage","allOptions_1","parseHooks","_e","_f","_g","_h","_j","_k","_l","_m","showFoot","showHead","startY","userStartY","sf","currentPage","isSamePageAsPreviousTable","startPageNumber","getStartY","theme","horizontalPageBreak","horizontalPageBreakRepeat","pageBreak","rowPageBreak","tableWidth","horizontalPageBreakBehaviour","parseSettings","hidden","htmlContent","firstRow","rowResult","dataKey","parseColumns","parseContent","tableId","checkStyles","rowHeight","columnWidth","extendWidth","afterPageContent","beforePageContent","afterPageAdd","deprecated","deprecatedOption","Column","Cell","Row","Table","HookData_1","getHeadHeight","acc","getMaxCellHeight","getFootHeight","allRows","callCellHooks","handlers","handlers_1","handler","callEndPageHooks","callWillDrawPageHooks","total","col","wrappedWidth","raw","spansMultiplePages","hasRowSpan","canEntireRowFit","getMinimumRowHeight","oneRowHeight","contentHeight","contentWidth","minReadableWidth","minWidth","title","getTextPos","netHeight","netWidth","getContentHeight","lineHeightFactor","getMaxCustomCellWidth","s1","s2","s3","nextSource","nextKey","models_1","widthCalculator_1","parseSection","sectionName","sectionRows","styleProps","rowSpansLeftForColumn","rawRow","rowIndex","skippedRowForRowSpans","colSpansAdded","columnSpansLeft","columns_1","rawCell","cellInputStyles","times","generateSectionRow","sectionRow","header","footer","getSectionTitle","themeName","sectionStyles","otherStyles","colStyles","rowStyles","defaultStyle","themeStyles","jsPDFDoc","createColumns","calculateWidths","tablePrinter_1","printHead","printRow","printBodyWithoutPageBreaks","startRowIndex","maxNumberOfRows","endRowIndex","lastPrintedRowIndex","isLastRow","remainingSpace","getRemainingPageSpace","printFoot","getRemainingLineCount","remainingPageSpace","vPadding","remainingLines","printFullRow","maxRowHeight","minRowHeight","minRowFits","rowHasRowSpanCell","shouldPrintOnCurrentPage","remainderRow","remainderCell","remainingLineCount","splice","modifyRowToFit","drawCellRect","textPos","getFillColor","x1","y1","x2","y2","line","drawCellBorders","bottomContentHeight","suppressFooter","nextPage","sectionsHeight","minTableBottomPos","allColumnsCanFitResult","calculateAllColumnsCanFitInPage","colsAndIndexes","printBody","lastRowIndexOfLastPage_1","firstColumnsToFitResult","firstColumnsToFit","printTableWithHorizontalPageBreak","getColumnsCanFitInPage","config","remainingWidth","repeatColumnsMap","Map","colIndexes","field","item","colWidth","lastIndex","allResults","ellipsize","resizeColumns","resizeWidth","getMinWidth","initialResizeWidth","sumWrappedWidth","suggestedChange","suggestedWidth","newWidth","resizableColumns","str","precision","ellipsizeStr","availablePageWidth","longestWordWidth","defaultMinWidth","calculate","initialTableWidth","customWidth","warn","colSpanCell","combinedColSpanWidth","colSpansLeft","columnIndex","applyColSpans","rowSpanHeight","count","textSpace","realContentHeight","fitContent","rowSpanCells","colRowSpansLeft","remaining","applyRowSpans","__drawTable","__createTable","applyPlugin","applyPlugin_1","models_2","baseGetTag","isObjectLike","upperFirst","createCaseFirst","rsAstralRange","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsSeq","rsSymbol","reUnicode","arrayPush","isFlattenable","baseFlatten","depth","predicate","isStrict","__data__","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","eq","isArrayLike","isIndex","baseIteratee","baseUniq","coreJsData","baseToString","trimmedEndIndex","reTrimStart","overArg","for","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","ref","__self","__source","q","defaultProps","$$typeof","props","_owner","Fragment","jsx","jsxs","func","thisArg","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","camel2hyphen","obj2mq","mq","features","isDimension","query","srcValue","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","bool","number","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","comparator","assocIndexOf","baseAssignValue","baseForOwn","Set","getNative","propIsEnumerable","test1","test2","fromCharCode","test3","letter","shouldUseNative","symbols","nativeCreate","baseEach","collection","getPrototype","funcProto","objectProto","funcToString","objectCtorString","Ctor","autoBom","Blob","XMLHttpRequest","responseType","onload","response","onerror","send","status","dispatchEvent","MouseEvent","createEvent","initMouseEvent","navigator","HTMLAnchorElement","URL","webkitURL","download","rel","origin","createObjectURL","revokeObjectURL","msSaveOrOpenBlob","HTMLElement","safari","FileReader","onloadend","readAsDataURL","baseFindIndex","nativeMax","arrayMap","baseGet","baseMap","baseSortBy","compareMultiple","iteratees","orders","reIsDeepProp","reIsPlainProp","isKeyable","aa","ca","encodeURIComponent","da","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","ra","sa","ta","pa","qa","oa","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","Reflect","construct","displayName","Pa","render","Qa","_context","_payload","_init","Ra","Sa","Ta","Va","_valueTracker","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","ownerDocument","eb","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","children","hb","ib","jb","kb","lb","mb","nb","namespaceURI","MSApp","execUnsafeLocalFunction","ob","lastChild","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","setProperty","tb","menuitem","area","base","br","embed","hr","keygen","meta","param","track","wbr","ub","vb","is","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","removeEventListener","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","shift","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","now","isTrusted","td","ud","view","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","repeat","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","datetime","email","password","search","tel","time","week","me","ne","oe","event","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","offset","Le","compareDocumentPosition","Me","HTMLIFrameElement","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","defaultView","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","setEnd","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","instance","listener","of","pf","qf","capture","passive","J","tf","uf","vf","wf","na","xa","$a","ba","je","char","ke","unshift","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","clearTimeout","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","_stringRef","refs","Mg","Ng","Og","Pg","Qg","Rg","implementation","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","ah","_currentValue","bh","childLanes","ch","dependencies","firstContext","lanes","dh","eh","context","memoizedValue","fh","gh","hh","interleaved","ih","jh","kh","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","pending","effects","lh","mh","eventTime","lane","payload","nh","K","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","L","Ch","revealOrder","Dh","Eh","_workInProgressVersionPrimary","Fh","ReactCurrentDispatcher","Gh","Hh","N","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","baseQueue","Uh","Vh","Wh","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","Xh","Yh","Zh","$h","ai","getSnapshot","bi","ci","di","lastEffect","stores","ei","fi","gi","hi","ii","destroy","deps","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ci","Di","Ei","isMounted","_reactInternals","enqueueSetState","enqueueReplaceState","enqueueForceUpdate","Fi","shouldComponentUpdate","isPureReactComponent","Gi","contextType","updater","Hi","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ii","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Ji","message","digest","Ki","Li","Mi","Ni","Oi","Pi","Qi","getDerivedStateFromError","componentDidCatch","Ri","componentStack","Si","pingCache","Ti","Ui","Vi","Wi","Xi","Yi","Zi","aj","compare","bj","cj","dj","baseLanes","cachePool","transitions","ej","fj","gj","hj","ij","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","jj","kj","pendingContext","lj","zj","Aj","Bj","Cj","mj","nj","oj","fallback","pj","qj","sj","dataset","dgst","tj","uj","_reactRetry","rj","subtreeFlags","vj","wj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","xj","Dj","Ej","Fj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","createElementNS","autoFocus","Gj","Hj","Ij","Jj","U","Kj","WeakSet","Lj","W","Mj","Nj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","_reactRootContainer","Wj","X","Xj","Yj","Zj","onCommitFiberUnmount","componentWillUnmount","ak","bk","ck","dk","ek","isHidden","fk","gk","hk","ik","jk","kk","__reactInternalSnapshotBeforeUpdate","Vk","lk","mk","nk","ok","Y","Z","pk","qk","rk","sk","tk","Infinity","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","finishedWork","finishedLanes","Pk","timeoutHandle","Qk","Rk","Sk","Tk","Uk","mutableReadLanes","Bc","Oj","onCommitFiberRoot","mc","onRecoverableError","Wk","onPostCommitFiberRoot","Xk","Yk","$k","isReactComponent","pendingChildren","al","mutableSourceEagerHydrationData","bl","cache","pendingSuspenseBoundaries","dl","fl","gl","hl","il","yj","Zk","kl","reportError","ll","_internalRoot","ml","nl","ol","pl","rl","ql","unmount","unstable_scheduleHydration","form","sl","usingClientEntryPoint","Events","tl","findFiberByHostInstance","bundleType","rendererPackageName","ul","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","vl","isDisabled","supportsFiber","inject","createPortal","cl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","baseIsArguments","isArguments","Uint8Array","castPath","toKey","transform","baseTimes","isBuffer","inherited","isArr","isArg","isBuff","isType","skipIndexes","baseRange","isIterateeCall","toFinite","fromRight","step","baseHasIn","hasPath","FUNC_ERROR_TEXT","HASH_UNDEFINED","PLACEHOLDER","WRAP_CURRY_RIGHT_FLAG","WRAP_PARTIAL_FLAG","WRAP_PARTIAL_RIGHT_FLAG","WRAP_ARY_FLAG","WRAP_REARG_FLAG","INFINITY","NAN","MAX_ARRAY_LENGTH","wrapFlags","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","rePropName","reRegExpChar","reHasRegExpChar","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEscapeChar","reEsTemplate","reFlags","reIsHostCtor","reIsUint","reLatin","reNoMatch","reUnescapedString","rsComboRange","rsComboMarksRange","rsDingbatRange","rsLowerRange","rsUpperRange","rsVarRange","rsBreakRange","rsMathOpRange","rsApos","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsEmoji","reApos","reComboMark","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","typedArrayTags","cloneableTags","stringEscapes","freeParseFloat","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","types","binding","nodeIsArrayBuffer","isArrayBuffer","nodeIsDate","isDate","nodeIsMap","isMap","nodeIsRegExp","isRegExp","nodeIsSet","isSet","arrayAggregator","accumulator","arrayEach","arrayEachRight","arrayEvery","arrayFilter","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","baseFindKey","eachFunc","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseValues","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","deburrLetter","escapeHtmlChar","escapeStringChar","hasUnicode","mapToArray","replaceHolders","placeholder","setToArray","setToPairs","stringSize","unicodeSize","stringToArray","unicodeToArray","asciiToArray","unescapeHtmlChar","runInContext","pick","arrayProto","idCounter","maskSrcKey","nativeObjectToString","oldDash","reIsNative","Buffer","allocUnsafe","objectCreate","spreadableSymbol","symIterator","symToStringTag","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","nativeIsBuffer","nativeIsFinite","isFinite","nativeMin","nativeNow","nativeParseInt","nativeRandom","nativeReverse","reverse","DataView","metaMap","realNames","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","lodash","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","Hash","clear","ListCache","MapCache","SetCache","Stack","arrayLikeKeys","arraySample","baseRandom","arraySampleSize","shuffleSelf","copyArray","baseClamp","arrayShuffle","assignMergeValue","assignValue","objValue","baseAggregator","baseAssign","copyObject","baseAt","paths","skip","lower","upper","baseClone","bitmask","customizer","isDeep","isFlat","isFull","initCloneArray","getTag","isFunc","cloneBuffer","initCloneObject","getSymbolsIn","copySymbolsIn","keysIn","baseAssignIn","getSymbols","copySymbols","cloneArrayBuffer","dataView","buffer","byteOffset","byteLength","cloneDataView","cloneTypedArray","cloneRegExp","initCloneByTag","stacked","subValue","getAllKeysIn","getAllKeys","baseConformsTo","baseDelay","wait","baseDifference","isCommon","valuesLength","outer","computed","valuesIndex","templateSettings","pop","pairs","LARGE_ARRAY_SIZE","createBaseEach","baseEachRight","baseForOwnRight","baseEvery","baseFilter","baseFor","createBaseFor","baseForRight","baseFunctions","baseGetAllKeys","keysFunc","symbolsFunc","isOwn","unmasked","getRawTag","objectToString","baseHas","baseIntersection","arrays","othLength","othIndex","caches","maxLength","seen","baseInvoke","baseIsEqual","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","isPartial","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","othProps","objStacked","othStacked","skipCtor","othValue","compared","objCtor","othCtor","equalObjects","baseIsEqualDeep","baseIsMatch","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","baseIsNative","baseMatchesProperty","baseMatches","property","baseKeys","isPrototype","baseKeysIn","nativeKeysIn","isProto","baseLt","getMatchData","matchesStrictComparable","isKey","isStrictComparable","hasIn","baseMerge","srcIndex","mergeFunc","safeGet","newValue","isTyped","isArrayLikeObject","isPlainObject","toPlainObject","baseMergeDeep","baseNth","baseOrderBy","getIteratee","criteria","objCriteria","othCriteria","ordersLength","compareAscending","basePickBy","baseSet","basePullAll","basePullAt","indexes","baseUnset","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","nested","baseSetData","baseSetToString","constant","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","low","high","mid","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","createSet","seenIndex","baseUpdate","baseWhile","isDrop","baseWrapperValue","actions","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","stringToPath","castRest","castSlice","copy","arrayBuffer","typedArray","valIsDefined","valIsReflexive","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","isNew","createAggregator","initializer","createAssigner","assigner","sources","guard","iterable","methodName","trailing","createCompounder","words","deburr","createCtor","thisBinding","createFind","findIndexFunc","createFlow","flatRest","funcs","prereq","thru","wrapper","getFuncName","funcName","getData","isLaziable","plant","createHybrid","partialsRight","holdersRight","argPos","ary","arity","isAry","isBind","isBindKey","isFlip","getHolder","holdersCount","countHolders","newHolders","createRecurry","arrLength","oldArray","reorder","createInverter","toIteratee","baseInverter","createMathOperation","operator","createOver","arrayFunc","createPadding","chars","charsLength","createRelationalOperation","wrapFunc","isCurry","newData","setData","setWrapToString","createRound","pair","createToPairs","baseToPairs","createWrap","srcBitmask","newBitmask","isCombo","mergeData","createCurry","createPartial","createBind","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","arrStacked","arrValue","flatten","otherFunc","stubArray","hasFunc","isLength","ArrayBuffer","ctorString","isMaskable","stubFalse","otherArgs","shortOut","reference","details","insertWrapDetails","updateWrapDetails","getWrapDetails","lastCalled","stamp","rand","memoize","memoizeCapped","quote","subString","difference","differenceBy","differenceWith","findLastIndex","intersection","mapped","intersectionBy","intersectionWith","pull","pullAll","pullAt","union","unionBy","unionWith","unzip","group","unzipWith","without","xor","xorBy","xorWith","zip","zipWith","chain","interceptor","wrapperAt","countBy","findLast","forEachRight","groupBy","invokeMap","keyBy","partition","sortBy","bindKey","WRAP_BIND_FLAG","debounce","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","cancel","defer","delay","memoized","Cache","negate","overArgs","transforms","funcsLength","partial","partialRight","rearg","gt","gte","isError","isInteger","isNumber","isString","lt","lte","toArray","iteratorToArray","remainder","assignIn","assignInWith","assignWith","at","propsIndex","propsLength","defaultsDeep","mergeWith","invert","invertBy","invoke","merge","omit","CLONE_DEEP_FLAG","basePick","pickBy","toPairs","toPairsIn","camelCase","word","capitalize","kebabCase","lowerCase","lowerFirst","snakeCase","startCase","upperCase","pattern","hasUnicodeWord","unicodeWords","asciiWords","attempt","bindAll","methodNames","flow","flowRight","methodOf","mixin","over","overEvery","overSome","basePropertyDeep","rangeRight","augend","addend","divide","dividend","divisor","multiply","multiplier","multiplicand","minuend","subtrahend","castArray","chunk","compact","cond","conforms","baseConforms","curry","curryRight","drop","dropRight","dropRightWhile","dropWhile","fill","baseFill","flatMap","flatMapDeep","flatMapDepth","flattenDeep","flattenDepth","flip","fromPairs","functions","functionsIn","initial","mapKeys","mapValues","matches","matchesProperty","nthArg","omitBy","once","orderBy","propertyOf","pullAllBy","pullAllWith","remove","rest","sampleSize","setWith","shuffle","sortedUniq","sortedUniqBy","limit","spread","take","takeRight","takeRightWhile","takeWhile","tap","throttle","toPath","isArrLike","unary","uniq","uniqBy","uniqWith","unset","update","updateWith","valuesIn","zipObject","zipObjectDeep","entriesIn","extendWith","clamp","cloneDeep","cloneDeepWith","cloneWith","conformsTo","defaultTo","endsWith","escape","escapeRegExp","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","inRange","baseInRange","isBoolean","isElement","isEmpty","isEqual","isEqualWith","isMatch","isMatchWith","isNative","isNil","isNull","isSafeInteger","isUndefined","isWeakMap","isWeakSet","lastIndexOf","strictLastIndexOf","maxBy","mean","meanBy","minBy","stubObject","stubString","stubTrue","nth","noConflict","strLength","padEnd","padStart","floating","reduceRight","sample","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","startsWith","sum","sumBy","isEscaping","isEvaluating","imports","importsKeys","importsValues","interpolate","reDelimiters","evaluate","sourceURL","escapeValue","interpolateValue","esTemplateValue","evaluateValue","toLower","toSafeInteger","toUpper","trimEnd","trimStart","truncate","omission","newEnd","unescape","uniqueId","prefix","each","eachRight","VERSION","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isHybrid","isUnwrapped","onlyLazy","chainName","dir","isRight","getView","iterLength","takeCount","iterIndex","commit","wrapped","define","storageType","storage","testKey","setItem","getItem","removeItem","hasStorage","noopStorage","setState","forceUpdate","_status","Children","only","Component","Profiler","PureComponent","StrictMode","Suspense","act","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","_defineProperty","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","ForwardRef","isFragment","isMemo","__assign","__awaiter","_arguments","generator","adopt","fulfilled","rejected","__generator","label","sent","trys","ops","verb","op","__spreadArray","pack","ar","Bounds","fromClientRect","windowBounds","fromDOMRectList","domRectList","domRect","EMPTY","parseBounds","parseDocumentSize","scrollWidth","offsetWidth","clientWidth","scrollHeight","offsetHeight","clientHeight","toCodePoints$1","codePoints","extra","fromCodePoint$1","fromCodePoint","codeUnits","codePoint","chars$2","lookup$2","i$2","chars$1$1","lookup$1$1","i$1$1","decode$1","base64","encoded1","encoded2","encoded3","encoded4","bufferLength","bytes","polyUint16Array$1","polyUint32Array$1","UTRIE2_SHIFT_2$1","UTRIE2_SHIFT_1$1","UTRIE2_INDEX_SHIFT$1","UTRIE2_LSCP_INDEX_2_OFFSET$1","UTRIE2_DATA_MASK$1","UTRIE2_INDEX_1_OFFSET$1","UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1","UTRIE2_INDEX_2_MASK$1","slice16$1","Uint16Array","slice32$1","Uint32Array","createTrieFromBase64$1","_byteLength","view32","view16","headerLength","Trie$1","Trie","errorValue","highStart","highValueIndex","ix","chars$3","lookup$3","i$3","LETTER_NUMBER_MODIFIER","BK","CR$1","LF$1","CM","NL","WJ","ZW","GL","SP","ZWJ$1","B2","BA","BB","HY","CB","CL","CP","EX","IN","NS","OP","QU","IS","NU","PO","PR","SY","AI","AL","CJ","EB","EM","H2","H3","HL","ID","JL","JV","JT","RI$1","SA","XX","ea_OP","BREAK_MANDATORY","BREAK_NOT_ALLOWED$1","BREAK_ALLOWED$1","UnicodeTrie$1","ALPHABETICS","HARD_LINE_BREAKS","SPACE$1","PREFIX_POSTFIX","LINE_BREAKS","KOREAN_SYLLABLE_BLOCK","HYPHEN","codePointsToCharacterClasses","lineBreak","indices","categories","classType","isAdjacentWithSpaceIgnored","currentIndex","classTypes","previousNonSpaceClassType","_lineBreakAtIndex","indicies","forbiddenBreaks","beforeIndex","afterIndex","prevIndex","cssFormattedClasses","wordBreak","isLetterNumber","forbiddenBreakpoints","letterNumber","Break","required","LineBreaker","lastEnd","nextIndex","FLAG_UNRESTRICTED","FLAG_ID","FLAG_INTEGER","FLAG_NUMBER","LINE_FEED","SOLIDUS","REVERSE_SOLIDUS","CHARACTER_TABULATION","SPACE","QUOTATION_MARK","EQUALS_SIGN","NUMBER_SIGN","DOLLAR_SIGN","PERCENTAGE_SIGN","APOSTROPHE","LEFT_PARENTHESIS","RIGHT_PARENTHESIS","LOW_LINE","HYPHEN_MINUS","EXCLAMATION_MARK","LESS_THAN_SIGN","GREATER_THAN_SIGN","COMMERCIAL_AT","LEFT_SQUARE_BRACKET","RIGHT_SQUARE_BRACKET","CIRCUMFLEX_ACCENT","LEFT_CURLY_BRACKET","QUESTION_MARK","RIGHT_CURLY_BRACKET","VERTICAL_LINE","TILDE","CONTROL","REPLACEMENT_CHARACTER","ASTERISK","PLUS_SIGN","COMMA","COLON","SEMICOLON","FULL_STOP","NULL","BACKSPACE","LINE_TABULATION","SHIFT_OUT","INFORMATION_SEPARATOR_ONE","DELETE","EOF","ZERO","isDigit","isSurrogateCodePoint","isHex","isLowerCaseLetter","isUpperCaseLetter","isLetter","isNonASCIICodePoint","isWhiteSpace","isNameStartCodePoint","isNameCodePoint","isNonPrintableCodePoint","isValidEscape","c1","c2","isIdentifierStart","c3","isNumberStart","stringToNumber","sign","integers","int","fraction","fracd","frac","expsign","exponent","exp","pow","LEFT_PARENTHESIS_TOKEN","RIGHT_PARENTHESIS_TOKEN","COMMA_TOKEN","SUFFIX_MATCH_TOKEN","PREFIX_MATCH_TOKEN","COLUMN_TOKEN","DASH_MATCH_TOKEN","INCLUDE_MATCH_TOKEN","LEFT_CURLY_BRACKET_TOKEN","RIGHT_CURLY_BRACKET_TOKEN","SUBSTRING_MATCH_TOKEN","BAD_URL_TOKEN","BAD_STRING_TOKEN","CDO_TOKEN","CDC_TOKEN","COLON_TOKEN","SEMICOLON_TOKEN","LEFT_SQUARE_BRACKET_TOKEN","RIGHT_SQUARE_BRACKET_TOKEN","WHITESPACE_TOKEN","EOF_TOKEN","Tokenizer","_value","read","tokens","token","consumeToken","consumeCodePoint","consumeStringToken","peekCodePoint","consumeName","reconsumeCodePoint","consumeNumericToken","e1","e2","e3","consumeIdentLikeToken","a1","a2","a3","u1","u2","consumeUnicodeRangeToken","consumeWhiteSpace","delta","questionMarks","digit","endDigits","consumeUrlToken","stringToken","consumeBadUrlRemnants","consumeEscapedCodePoint","consumeStringSlice","SLICE_STACK_SIZE","amount","endingCodePoint","consumeNumber","repr","hex","hexCodePoint","Parser","_tokens","tokenizer","parseValue","parseComponentValue","parseValues","parseComponentValues","SyntaxError","reconsumeToken","consumeComponentValue","consumeSimpleBlock","consumeFunction","block","isEndingTokenFor","functionToken","cssFunction","isDimensionToken","isNumberToken","isIdentToken","isStringToken","isIdentWithValue","nonWhiteSpace","nonFunctionArgSeparator","parseFunctionArgs","isLengthPercentage","parseLengthPercentageTuple","ZERO_LENGTH","FIFTY_PERCENT","HUNDRED_PERCENT","getAbsoluteValueForTuple","tuple","getAbsoluteValue","DEG","GRAD","RAD","TURN","angle","PI","isAngle","parseNamedSide","ident","deg","color$1","colorFunction","SUPPORTED_COLOR_FUNCTIONS","namedColor","COLORS","TRANSPARENT","isTransparent","asString","alpha","blue","green","red","getTokenColorValue","rgb","hue2rgb","t1","t2","hue","hsl","saturation","lightness","hsla","ALICEBLUE","ANTIQUEWHITE","AQUA","AQUAMARINE","AZURE","BEIGE","BISQUE","BLACK","BLANCHEDALMOND","BLUE","BLUEVIOLET","BROWN","BURLYWOOD","CADETBLUE","CHARTREUSE","CHOCOLATE","CORAL","CORNFLOWERBLUE","CORNSILK","CRIMSON","CYAN","DARKBLUE","DARKCYAN","DARKGOLDENROD","DARKGRAY","DARKGREEN","DARKGREY","DARKKHAKI","DARKMAGENTA","DARKOLIVEGREEN","DARKORANGE","DARKORCHID","DARKRED","DARKSALMON","DARKSEAGREEN","DARKSLATEBLUE","DARKSLATEGRAY","DARKSLATEGREY","DARKTURQUOISE","DARKVIOLET","DEEPPINK","DEEPSKYBLUE","DIMGRAY","DIMGREY","DODGERBLUE","FIREBRICK","FLORALWHITE","FORESTGREEN","FUCHSIA","GAINSBORO","GHOSTWHITE","GOLD","GOLDENROD","GRAY","GREEN","GREENYELLOW","GREY","HONEYDEW","HOTPINK","INDIANRED","INDIGO","IVORY","KHAKI","LAVENDER","LAVENDERBLUSH","LAWNGREEN","LEMONCHIFFON","LIGHTBLUE","LIGHTCORAL","LIGHTCYAN","LIGHTGOLDENRODYELLOW","LIGHTGRAY","LIGHTGREEN","LIGHTGREY","LIGHTPINK","LIGHTSALMON","LIGHTSEAGREEN","LIGHTSKYBLUE","LIGHTSLATEGRAY","LIGHTSLATEGREY","LIGHTSTEELBLUE","LIGHTYELLOW","LIME","LIMEGREEN","LINEN","MAGENTA","MAROON","MEDIUMAQUAMARINE","MEDIUMBLUE","MEDIUMORCHID","MEDIUMPURPLE","MEDIUMSEAGREEN","MEDIUMSLATEBLUE","MEDIUMSPRINGGREEN","MEDIUMTURQUOISE","MEDIUMVIOLETRED","MIDNIGHTBLUE","MINTCREAM","MISTYROSE","MOCCASIN","NAVAJOWHITE","NAVY","OLDLACE","OLIVE","OLIVEDRAB","ORANGE","ORANGERED","ORCHID","PALEGOLDENROD","PALEGREEN","PALETURQUOISE","PALEVIOLETRED","PAPAYAWHIP","PEACHPUFF","PERU","PINK","PLUM","POWDERBLUE","PURPLE","REBECCAPURPLE","RED","ROSYBROWN","ROYALBLUE","SADDLEBROWN","SALMON","SANDYBROWN","SEAGREEN","SEASHELL","SIENNA","SILVER","SKYBLUE","SLATEBLUE","SLATEGRAY","SLATEGREY","SNOW","SPRINGGREEN","STEELBLUE","TAN","TEAL","THISTLE","TOMATO","TURQUOISE","VIOLET","WHEAT","WHITE","WHITESMOKE","YELLOW","YELLOWGREEN","backgroundClip","parseColorStop","stop","processColorStops","stops","lineLength","processStops","stop_1","absoluteValue","gapBegin","stop_2","gapLength","gapValue","getAngleFromCorner","corner","centerX","centerY","atan2","calculateGradientDirection","radian","sin","cos","halfWidth","halfHeight","halfLineLength","yDiff","xDiff","distance","sqrt","findCorner","closest","cx","cy","optimumDistance","optimumCorner","calculateRadius","gradient","rx","ry","prefixLinearGradient","angle$1","firstToken","colorStop","CLOSEST_SIDE","FARTHEST_SIDE","CLOSEST_CORNER","FARTHEST_CORNER","CIRCLE","ELLIPSE","COVER","CONTAIN","prefixRadialGradient","isColorStop","isLinearGradient","background","isRadialGradient","image_1","imageFunction","SUPPORTED_IMAGE_FUNCTIONS","isSupportedImage","BACKGROUND_SIZE","isAtPosition_1","backgroundImage","backgroundOrigin","backgroundPosition","backgroundRepeat","parseBackgroundRepeat","LINE_BREAK","backgroundSize","isBackgroundSizeInfoToken","borderColorForSide","side","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderRadiusForSide","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderStyleForSide","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderWidthForSide","direction","bit","parseDisplayValue","float","letterSpacing","WORD_BREAK","STRICT","NORMAL","computeLineHeight","listStyleImage","listStylePosition","listStyleType","marginForSide","marginTop","marginRight","marginBottom","marginLeft","overflowWrap","paddingForSide","textShadow","shadow","offsetX","offsetY","textTransform","transform$1","transformFunction","SUPPORTED_TRANSFORM_FUNCTIONS","matrix","matrix3d","b1","b2","a4","b4","DEFAULT_VALUE","transformOrigin","origins","visibility","BREAK_ALL","KEEP_ALL","auto","textDecorationColor","textDecorationLine","results","fontVariant","counterIncrement","increments","filtered","counter","increment","counterReset","resets","reset","duration","quotes","open_1","close_1","getQuote","boxShadow","inset","paintOrder","layers","webkitTextStrokeColor","webkitTextStrokeWidth","CSSParsedDeclaration","declaration","animationDuration","cssFloat","overflowTuple","overflowX","overflowY","textDecoration","isVisible","isTransformed","isPositioned","isPositionedWithZIndex","isFloating","isInlineLevel","CSSParsedPseudoDeclaration","CSSParsedCounterDeclaration","parser","length_1","value_1","elementDebuggerAttribute","getElementDebugType","getAttribute","isDebugging","ElementContainer","textNodes","elements","isHTMLElementNode","bounds","chars$1","lookup$1","i$1","decode","polyUint16Array","polyUint32Array","UTRIE2_SHIFT_2","UTRIE2_SHIFT_1","UTRIE2_INDEX_SHIFT","UTRIE2_LSCP_INDEX_2_OFFSET","UTRIE2_DATA_MASK","UTRIE2_INDEX_1_OFFSET","UTRIE2_OMITTED_BMP_INDEX_1_LENGTH","UTRIE2_INDEX_2_MASK","slice16","slice32","createTrieFromBase64","lookup","PseudoElementType","Prepend","CR","LF","Extend","SpacingMark","LV","LVT","ZWJ","Extended_Pictographic","RI","toCodePoints","UnicodeTrie","BREAK_NOT_ALLOWED","BREAK_ALLOWED","codePointToClass","_graphemeBreakAtIndex","_codePoints","countRI","GraphemeBreaker","graphemeBreak","splitGraphemes","breaker","graphemes","testRangeBounds","TEST_HEIGHT","testElement","selectNode","rangeBounds","rangeHeight","testIOSLineBreak","wordSpacing","textList","supports","boundAhead","testCORS","Image","crossOrigin","testResponseType","testSVG","ctx","isGreenPixel","testForeignObject","greenImageSrc","svg","createForeignObjectSVG","loadSerializedSVG$1","getImageData","xmlns","foreignObject","XMLSerializer","serializeToString","FEATURES","SUPPORT_RANGE_BOUNDS","SUPPORT_WORD_BREAKING","SUPPORT_SVG_DRAWING","SUPPORT_FOREIGNOBJECT_DRAWING","fetch","SUPPORT_CORS_IMAGES","SUPPORT_RESPONSE_TYPE","SUPPORT_CORS_XHR","SUPPORT_NATIVE_TEXT_SEGMENTATION","Intl","Segmenter","TextBounds","parseTextBounds","breakText","textBounds","subSegments","segmentGraphemes","subOffset_1","subSegment","replacementNode","getWrapperBounds","replaceChild","segmenter","granularity","segment","segmentWords","breakWords","wordSeparators","word_1","TextContainer","CAPITALIZE","p2","ImageElementContainer","currentSrc","intrinsicWidth","naturalWidth","intrinsicHeight","naturalHeight","CanvasElementContainer","SVGElementContainer","baseVal","LIElementContainer","OLElementContainer","reversed","CHECKBOX_BORDER_RADIUS","RADIO_BORDER_RADIUS","reformatInputBounds","getInputValue","PASSWORD","CHECKBOX","RADIO","INPUT_COLOR","InputElementContainer","SelectElementContainer","option","selectedIndex","TextareaElementContainer","IFrameElementContainer","tree","parseTree","documentBackgroundColor","bodyBackgroundColor","LIST_OWNERS","parseNodeTree","childNode","nextNode","isTextNode","isElementNode","isSlotElement","assignedNodes","createContainer","createsRealStackingContext","createsStackingContext","slot","shadowRoot","isTextareaElement","isSVGElement","isSelectElement","isImageElement","isCanvasElement","isLIElement","isOLElement","isInputElement","isIFrameElement","isBodyElement","Node","TEXT_NODE","ELEMENT_NODE","isSVGElementNode","isHTMLElement","isVideoElement","isStyleElement","isScriptElement","isCustomElement","CounterState","counters","getCounterValue","getCounterValues","canReset","counterNames","ROMAN_UPPER","ARMENIAN","HEBREW","GEORGIAN","createAdditiveCounter","suffix","createCounterText","createCounterStyleWithSymbolResolver","codePointRangeLength","isNumeric","createCounterStyleFromRange","codePointRangeStart","codePointRangeEnd","createCounterStyleFromSymbols","CJK_ZEROS","CJK_TEN_COEFFICIENTS","CJK_TEN_HIGH_COEFFICIENTS","CJK_HUNDRED_COEFFICIENTS","createCJKCounter","numbers","multipliers","negativeSign","coefficient","CHINESE_INFORMAL_MULTIPLIERS","CHINESE_FORMAL_MULTIPLIERS","JAPANESE_NEGATIVE","KOREAN_NEGATIVE","appendSuffix","defaultSuffix","cjkSuffix","koreanSuffix","spaceSuffix","IGNORE_ATTRIBUTE","DocumentCloner","scrolledElements","referenceElement","quoteDepth","toIFrame","windowSize","createIFrameContainer","scrollX","pageXOffset","scrollY","pageYOffset","cloneWindow","documentClone","iframeLoad","iframeLoader","restoreNodeScroll","scrollTo","logger","onclone","clonedReferenceElement","fonts","ready","imagesReady","serializeDoctype","doctype","restoreOwnerScroll","adoptNode","createElementClone","createCanvasClone","createVideoClone","createStyleClone","srcset","loading","createCustomElementClone","copyCSSStyles","sheet","cssRules","rule","cssText","inlineImages","info","clonedCanvas","clonedCtx","allowTaint","putImageData","attribs","getContextAttributes","preserveDrawingBuffer","video","blankCanvas","appendChildNode","copyStyles","hasAttribute","ignoreElements","cloneChildNodes","assignedNode","transitionProperty","styleBefore","styleAfter","createPseudoHideStyles","resolvePseudoContent","BEFORE","AFTER","pseudoElt","anonymousReplacedElement","attr","counterStyle","counterState","counterType","delim","counterStates","counterType_1","PSEUDO_HIDE_ELEMENT_CLASS_BEFORE","PSEUDO_HIDE_ELEMENT_CLASS_AFTER","newClassName","baseValue","CORNER","cloneIframeContainer","border","scrolling","imageReady","complete","images","interval","setInterval","childNodes","readyState","clearInterval","ignoredStyleProperties","getPropertyValue","internalSubset","publicId","systemId","PSEUDO_BEFORE","PSEUDO_AFTER","PSEUDO_HIDE_ELEMENT_STYLE","createStyles","CacheStorage","getOrigin","_link","protocol","hostname","port","isSameOrigin","_origin","setContext","_options","_cache","isBlobImage","isRenderable","loadImage","useCORS","isInlineImage","useProxy","proxy","debug","isInlineBase64Image","imageTimeout","xhr","reader_1","queryString","timeout_1","timeout","ontimeout","INLINE_SVG","INLINE_BASE64","INLINE_IMG","isSVG","substr","Vector","lerp","BezierCurve","startControl","endControl","subdivide","firstHalf","abbc","bccd","dest","isBezierCurve","BoundCurves","tlh","tlv","trh","trv","brh","brv","blh","blv","factors","maxFactor","topWidth","rightHeight","bottomWidth","leftHeight","topLeftBorderDoubleOuterBox","getCurvePoints","TOP_LEFT","topRightBorderDoubleOuterBox","TOP_RIGHT","bottomRightBorderDoubleOuterBox","BOTTOM_RIGHT","bottomLeftBorderDoubleOuterBox","BOTTOM_LEFT","topLeftBorderDoubleInnerBox","topRightBorderDoubleInnerBox","bottomRightBorderDoubleInnerBox","bottomLeftBorderDoubleInnerBox","topLeftBorderStroke","topRightBorderStroke","bottomRightBorderStroke","bottomLeftBorderStroke","topLeftBorderBox","topRightBorderBox","bottomRightBorderBox","bottomLeftBorderBox","topLeftPaddingBox","topRightPaddingBox","bottomRightPaddingBox","bottomLeftPaddingBox","topLeftContentBox","topRightContentBox","bottomRightContentBox","bottomLeftContentBox","r1","r2","kappa","ox","oy","xm","ym","calculateBorderBoxPath","curves","calculateContentBoxPath","calculatePaddingBoxPath","TransformEffect","ClipEffect","OpacityEffect","isTransformEffect","effect","isClipEffect","isOpacityEffect","equalPath","transformPath","deltaW","deltaH","StackingContext","inlineLevel","nonInlineLevel","negativeZIndex","zeroOrAutoZIndexOrTransformedOrOpacity","positiveZIndex","nonPositionedFloats","nonPositionedInlineLevel","ElementPaint","borderBox","paddingBox","getEffects","inFlow","croplessEffects","parseStackTree","stackingContext","realStackingContext","listItems","treatAsRealStackingContext","paintContainer","listOwnerItems","parentStack","order_1","index_1","index_2","processListItems","owner","numbering","listValue","parseStackingContexts","parsePathForBorder","borderSide","createPathFromCurves","parsePathForBorderDoubleOuter","parsePathForBorderDoubleInner","parsePathForBorderStroke","createStrokePathFromCurves","outer1","outer2","inner1","inner2","contentBox","calculateBackgroundPositioningArea","calculateBackgroundPaintingArea","calculateBackgroundRendering","intrinsicSize","backgroundPositioningArea","getBackgroundValueForIndex","backgroundPaintingArea","backgroundImageSize","calculateBackgroundSize","sizeWidth","sizeHeight","calculateBackgroundRepeatPath","isAuto","AUTO","hasIntrinsicValue","intrinsicProportion","hasIntrinsicProportion","hasIntrinsicWidth","hasIntrinsicHeight","hasIntrinsicDimensions","width_3","height_3","SMALL_IMAGE","SAMPLE_TEXT","FontMetrics","_data","_document","parseMetrics","span","whiteSpace","baseline","offsetTop","middle","getMetrics","Renderer","MASK_OFFSET","CanvasRenderer","_activeEffects","scale","fontMetrics","translate","textBaseline","applyEffects","popEffect","applyEffect","globalAlpha","clip","restore","renderStack","renderStackContent","renderNode","paint","renderNodeBackgroundAndBorders","renderNodeContent","renderTextWithLetterSpacing","fillText","measureText","createFontStyle","variant","fixIOSSystemFonts","renderTextNode","paintOrderLayer","textShadows","shadowColor","shadowOffsetX","shadowOffsetY","shadowBlur","strokeStyle","lineJoin","chrome","strokeText","renderReplacedElement","box","beginPath","arc","isTextInputElement","canvasTextAlign","_p","_o","mask","moveTo","lineTo","formatPath","closePath","bezierCurveTo","renderRepeat","resizeImage","renderBackgroundImage","this_1","createPattern","x0","y0","gradient_1","createLinearGradient","addColorStop","top_1","radialGradient_1","createRadialGradient","midX","midY","invF","renderSolidBorder","curvePoints","renderDoubleBorder","outerPaths","innerPaths","hasBackground","borders","calculateBackgroundCurvedPaintingArea","borderBoxArea","maskOffset","shadowPaintingArea","borders_1","renderDashedDottedBorder","strokePaths","boxPaths","startX","endX","endY","dashLength","spaceLength","useLineDash","numberOfDashes","minSpace","maxSpace","setLineDash","lineCap","stroke","path1","path2","iOSBrokenFonts","fontFamilies","ForeignObjectRenderer","loadSerializedSVG","Logger","enabled","instances","Context","instanceName","instanceCount","logging","renderElement","resourceOptions","contextOptions","windowOptions","windowWidth","innerWidth","windowHeight","innerHeight","foreignObjectRendering","cloneOptions","documentCloner","clonedElement","_u","parseBackgroundColor","renderOptions","devicePixelRatio","_q","_r","_s","_t","removeContainer","backgroundColorOverride","defaultBackgroundColor","deselectCurrent","clipboardToIE11Formatting","reselectPrevious","mark","success","ariaHidden","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","clearData","onCopy","selectNodeContents","execCommand","copyKey","prompt","removeRange","_warn","_warn2","Snippets","tags","_ref","events","dataLayer","dataLayerName","preview","gtm_auth","auth","gtm_preview","script","dataLayerVar","_dataLayer","stackClear","stackDelete","stackGet","stackHas","stackSet","hookCallback","setHookCallback","hasOwnProp","isObjectEmpty","arr","arrLen","createUTC","strict","createLocalOrUTC","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","rfc2822","weekdayMismatch","getParsingFlags","_pf","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","_isValid","createInvalid","fun","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","argLen","deprecations","deprecateSimple","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","mom","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","LTS","LL","LLL","LLLL","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","future","past","ss","mm","ww","MM","yy","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","aliases","dates","days","day","weekday","isoweekdays","isoweekday","DDD","dayofyears","dayofyear","hours","hour","milliseconds","millisecond","minutes","minute","quarters","quarter","seconds","weekyears","weekyear","GG","isoweekyears","isoweekyear","weeks","isoweeks","isoweek","years","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","isoWeekday","dayOfYear","weekYear","isoWeekYear","isoWeek","getPrioritizedUnits","unitsObj","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","match1to2NoLeadingZero","match1to2HasZero","addRegexToken","regex","strictRegex","getParseRegexForToken","unescapeFormat","regexEscape","matched","p3","p4","absFloor","toInt","argumentForCoercion","coercedNumber","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","isLeapYear","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","parseTwoDigitYear","getSetYear","makeGetSet","getIsLeapYear","keepTime","set$1","isUTC","getUTCMilliseconds","getUTCSeconds","getUTCMinutes","getUTCHours","getUTCDate","getUTCDay","getUTCMonth","getUTCFullYear","setUTCMilliseconds","setMilliseconds","setUTCSeconds","setSeconds","setUTCMinutes","setMinutes","setUTCHours","setHours","setUTCDate","setDate","setUTCFullYear","setFullYear","stringGet","stringSet","prioritized","prioritizedLen","mod","modMonth","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","isFormat","localeMonthsShort","_monthsShort","handleStrictParse","monthName","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","setMonth","setUTCMonth","getSetMonth","getDaysInMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortP","longP","shortPieces","longPieces","mixedPieces","createDate","createUTCDate","firstWeekOffset","dow","doy","fwd","dayOfYearFromWeeks","resYear","resDayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","kInput","_isPm","isPM","_meridiem","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","isLower","globalLocale","baseConfig","dayOfMonthOrdinalParse","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","loadLocale","isLocaleNameSane","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","createFromInputFallback","currentDateArray","nowValue","_useUTC","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekdayOverflow","curWeek","createLocal","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","isPm","meridiemHour","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromObject","dayOrDate","createFromConfig","prepareConfig","preparse","configFromInput","prototypeMin","prototypeMax","moments","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","_milliseconds","_days","_bubble","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offsetFromString","chunkOffset","matcher","parts","cloneWithOffset","model","setTime","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","createAdder","period","isAdding","invalid","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","sod","calendarFormat","localInput","isBetween","inclusivity","localFrom","localTo","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","wholeMonthDiff","anchor","keepOffset","inspect","zone","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","localStartOfDate","utcStartOfDate","startOfDate","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","erasName","erasAbbr","erasNarrow","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","isDSTShifted","proto$1","get$1","listMonthsImpl","out","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","argWithSuffix","argThresholds","withSuffix","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","toFixed","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","hasElementType","Element","hasMap","hasSet","hasArrayBuffer","isView","equal","_getStorage","yearStart","isMasked","offsetName","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","scheduling","isInputPending","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","EE","addListener","emitter","evt","_events","_eventsCount","clearEvent","EventEmitter","eventNames","listenerCount","emit","a5","removeListener","on","removeAllListeners","off","prefixed","_Snippets","_Snippets2","TagManager","dataScript","gtm","snippets","noScript","noscript","initialize","gtmId","_ref$events","_ref$dataLayerName","_ref$auth","_ref$preview","_ref2","_ref2$dataLayerName","u8","u16","i32","Int32Array","fleb","fdeb","clim","freb","revfl","revfd","rev","hMap","co","rvb","sv","r_1","flt","fdt","flm","flrm","fdm","fdrm","bits","bits16","shft","slc","subarray","ind","nt","captureStackTrace","inflt","dat","st","buf","dict","noBuf","resize","noSt","cbuf","nbuf","final","bt","lm","dm","lbt","dbt","tbts","hLit","hcLen","ldt","clt","clb","clbmsk","clm","dt","lms","dms","lpos","dsym","dend","wbits","wbits16","hTree","et","i0","i1","i2","maxSym","tr","mbt","ln","lft","cst","i2_1","i2_2","i2_3","cli","cln","cls","clen","wfblk","wblk","syms","bs","dlt","mlb","ddt","mdb","lclt","nlc","lcdt","ndc","lcfreq","lct","mlcb","nlcc","flen","ftlen","dtlen","llm","lcts","clct","dst","deo","dflt","lvl","plvl","pre","post","lst","msk_1","bs1_1","bs2_1","hsh","lc_1","hv","imod","pimod","rem","ch_1","dif","maxn","maxd","mmd","lin","din","adler","dopt","dictionary","newDat","level","mem","wbytes","zlh","lv","zls","zlibSync","unzlibSync","TextDecoder","stream","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","example","toRGB","toHex","atob","btoa","print","modify","perm","processOwnerPassword","encryptionKey","lsbFirstWord","hexToBytes","unsubscribe","getTopics","objectNumber","gState","coords","colors","boundingBox","xStep","yStep","cloneIndex","compress","compressPdf","encryption","userPassword","ownerPassword","userPermissions","userUnit","floatPrecision","defaultPathOperation","filters","putOnlyUsedFonts","__private__","PubSub","getPdfVersion","setPdfVersion","a0","a6","a7","a8","a9","a10","b0","b3","b5","b6","b7","b8","b9","b10","c0","c4","c5","c6","c7","c8","c9","c10","legal","ledger","tabloid","getPageFormats","getPageFormat","saveGraphicsState","Vt","Rr","restoreGraphicsState","combineFontStyleAndFontWeight","advancedAPI","compatAPI","isAdvancedAPI","roundToPrecision","hpf","f2","f3","setPrecision","getFileId","setFileId","convertDateToPDFDate","convertPDFDateToDate","setCreationDate","getCreationDate","padd2","tt","padd2Hex","rt","ot","ct","setCustomOutputDestination","ht","resetCustomOutputDestination","ft","getArrayBuffer","pt","getStandardFonts","mt","vt","R2L","setR2L","getR2L","yt","wt","setZoomMode","getZoomMode","Nt","Lt","setPageMode","getPageMode","At","setLayoutMode","getLayoutMode","setDisplayMode","xt","subject","author","keywords","creator","getDocumentProperty","getDocumentProperties","setDocumentProperties","setProperties","setDocumentProperty","St","Pt","kt","It","Ft","Ct","jt","Ot","Bt","Mt","Et","qt","Dt","Rt","Tt","Ut","hotfixes","zt","Ht","Wt","_matrix","shx","sx","decompose","sy","shy","tx","ty","rotate","skew","inversed","applyToPoint","Cr","applyToRectangle","jr","Matrix","Gt","matrixMult","Yt","unitMatrix","identityMatrix","Jt","ShadingPattern","TilingPattern","addShadingPattern","beginTilingPattern","Br","endTilingPattern","Xt","newObject","Kt","Zt","newObjectDeferred","$t","newAdditionalObject","objId","Qt","decodeColorString","encodeColorString","ch1","ch2","ch3","ch4","pdfColorType","getFilters","putStream","alreadyAppliedFilters","addLength1","objectId","encryptor","additionalKeyValues","processDataByFilters","reverseChain","putPage","contentsObjId","rootDictionaryObjId","resourceDictionaryObjId","mediaBox","bottomLeftX","bottomLeftY","topRightX","topRightY","cropBox","bleedBox","trimBox","artBox","pageContext","putPages","isAlreadyPutted","postScriptName","encoding","pages","resourcesOid","objectOid","isStandardFont","pdfEscape","sourceEncoding","outputEncoding","autoencode","codePages","noBOM","beginPage","pr","fr","Lr","kr","Ir","disableWarning","noFallback","normal","putInfo","putCatalog","putTrailer","oid","putHeader","putXRef","buildDocument","toHexString","getBlob","pdfObjectUrl","pdfJsUrl","PDFViewerApplication","alert","bar","Ge","getPageInfo","getPageInfoByObjId","insertPage","movePage","deletePage","scope","lr","TabLen","mutex","activeFontKey","activeFontSize","rotationDirection","charSpace","setCharSpace","getCharSpace","horizontalScale","renderingMode","usedRenderingMode","doKerning","yr","ut","xr","clipEvenOdd","discardPath","isValidStyle","setDefaultPathOperation","getStyle","er","rr","fillEvenOdd","fillStroke","fillStrokeEvenOdd","nr","ir","or","setGState","sr","cr","ur","curveTo","lines","triangle","roundedRect","SQRT2","ellipse","circle","addFont","dr","setLineDashPattern","gr","mr","setLineHeightFactor","vr","getHorizontalCoordinate","getVerticalCoordinate","wr","getHorizontalCoordinateString","Nr","getVerticalCoordinateString","strokeColor","getStrokeColor","setStrokeColor","Ar","Sr","Pr","CapJoinStyles","butt","but","miter","rounded","projecting","project","square","bevel","setLineCap","setLineJoin","setLineMiterLimit","setMiterLimit","GState","Fr","equals","addGState","setCurrentTransformationMatrix","comment","Or","pagesContext","qr","outputDestination","Dr","Tr","Er","beginFormObject","endFormObject","Mr","doFormObject","getFormObject","returnPromise","unload","getPageWidth","setPageWidth","getPageHeight","setPageHeight","getCoordinateString","collections","newObjectDeferredBegin","setWidth","setHeight","encryptionOptions","getEncryptor","getPDFVersion","Point","Rectangle","hasHotfix","__acroform__","BBox","setBit","clearBit","getBit","getBitForPdf","setBitForPdf","clearBitForPdf","calculateCoordinates","lowerLeft_X","lowerLeft_Y","upperRight_X","upperRight_Y","appearanceStreamContent","DV","_V","maxFontSize","fields","xForms","acroFormDictionaryRoot","printedOut","isInitialized","annotations","acroformPlugin","FieldNum","_eventID","Fields","hasAnnotation","Kids","Rect","DA","createDefaultAppearanceStream","getKeyValueListForStream","hasAppearanceStream","arrayToPdfArray","_objId","_scope","FT","getOptions","setOptions","addOption","removeOption","combo","edit","CA","pushButton","radio","caption","appearanceState","_AppearanceType","RadioButton","Circle","createAppearanceStream","optionName","setAppearance","getCA","createOption","Parent","CheckBox","On","YesNormal","YesPushDown","Off","OffPushDown","Bezier_C","Cross","calculateCross","x4","x3","addField","AcroFormChoiceField","AcroFormListBox","AcroFormComboBox","AcroFormEditBox","AcroFormButton","AcroFormPushButton","AcroFormRadioButton","AcroFormCheckBox","AcroFormTextField","AcroFormPasswordField","AcroFormAppearance","AcroForm","ChoiceField","ListBox","ComboBox","EditBox","Button","PushButton","TextField","PasswordField","Appearance","__addimage__","PNG","TIFF","JPEG","JPEG2000","GIF87a","GIF89a","WEBP","BMP","getImageFileTypeByImageData","colorSpace","INDEXED","palette","sMask","DEVICE_CMYK","bitsPerComponent","decodeParameters","transparency","predictor","addImage_images","loadFile","color_spaces","DEVICE_RGB","DEVICE_GRAY","CAL_GREY","CAL_RGB","LAB","ICC_BASED","PATTERN","SEPARATION","DEVICE_N","DCT_DECODE","FLATE_DECODE","LZW_DECODE","JPX_DECODE","JBIG2_DECODE","ASCII85_DECODE","ASCII_HEX_DECODE","RUN_LENGTH_DECODE","CCITT_FAX_DECODE","image_compression","NONE","FAST","MEDIUM","SLOW","sHashCode","validateStringAsBase64","extractImageFromDataUrl","mimeType","charset","supportsArrayBuffer","isArrayBufferView","Int8Array","Int16Array","Float32Array","Float64Array","binaryStringToUint8Array","arrayBufferToBinaryString","imageData","compression","rotation","convertBase64ToBinaryString","getImageProperties","fileType","contents","_nameMap","finalBounds","magFactor","createAnnotation","textWithLink","__arabicParser__","isInArabicSubstitutionA","isArabicLetter","isArabicEndLetter","isArabicAlfLetter","arabicLetterHasIsolatedForm","arabicLetterHasFinalForm","arabicLetterHasInitialForm","arabicLetterHasMedialForm","resolveLigatures","isArabicDiacritic","getCorrectForm","processArabic","autoPrint","addJS","pageWrapXEnabled","pageWrapX","pageWrapYEnabled","pageWrapY","context2d","_canvas","__cell__","headerFunction","lastCell","lineNumber","setHeaderFunction","getTextDimensions","cellAddPage","tableHeaderRow","printHeaders","printHeaderRow","autoSize","headerBackgroundColor","headerTextColor","table_font_size","setTableHeaderRow","rowStart","cellStart","table_x","table_y","italic","oblique","family","weight","stretch","fixed","monospace","terminal","cursive","fantasy","serif","icon","menu","trimLeft","isStrokeTransparent","isFillTransparent","globalCompositeOperation","clip_path","currentPoint","miterLimit","lastPoint","lineDashOffset","lineDash","prevPageLastElemOffset","ignoreClearRect","fontFaces","defaultFontFamily","genericFontFamilies","arial","Arial","verdana","Verdana","helvetica","Helvetica","getLineDash","quadraticCurveTo","isIdentity","radius","startAngle","endAngle","counterclockwise","arcTo","strokeRect","clearRect","ctxStack","isCanvasGradient","getColor","scaleX","setTransform","autoPaging","posY","posX","begin","deltas","colorStops","y3","y4","prevLineDash","overrideMimeType","responseText","loadImageFile","DOMPurify","dompurify","sanitize","toContext2d","async","doCallback","outline","createNamedDestinations","makeRef","genIds_r","renderRoot","renderItems","objStart","count_r","objEnd","makeString","processJPEG","numcomponents","readUInt32","colorType","compressionMethod","filterMethod","interlaceMethod","numFrames","numPlays","frames","xOffset","yOffset","readUInt16","disposeOp","blendOp","indexed","grayscale","hasAlphaChannel","pixelBitlength","decodePixels","decodePalette","copyToImageData","_decodedPalette","decodeFrames","createImageData","renderFrame","animate","_timeout","stopAnimation","_png","has_local_palette","palette_offset","palette_size","data_offset","data_length","transparent_index","interlaced","disposal","loopCount","frameInfo","decodeAndBlitFrameBGRA","decodeAndBlitFrameRGBA","encode","datav","is_with_alpha","bottom_up","flag","parseHeader","parseBGR","Ur","zr","Hr","Hn","Wn","Vn","Gn","Ed","Cd","RGBA","Sd","Tn","Sn","An","qn","Rn","Un","memory","$n","nc","Gr","Wr","Vr","Zr","$r","Yr","En","Qr","tn","Dn","nn","xn","zn","rn","Xr","VP8LMapColor32b","Jr","VP8LMapColor8b","Kr","Qn","Xn","Zn","Jn","Yn","Kn","_n","Kd","Ud","Gd","ga","put","Cn","Pn","kn","In","Fn","an","cn","un","hn","sn","dn","pn","gn","mn","vn","bn","yn","wn","Nn","Ln","Bn","jn","Mn","Predictor0","Predictor1","Predictor2","Predictor3","Predictor4","Predictor5","Predictor6","Predictor7","Predictor8","Predictor9","Predictor10","Predictor11","Predictor12","Predictor13","PredictorAdd0","PredictorAdd1","PredictorAdd2","ColorIndexInverseTransform","MapARGB","VP8LColorIndexInverseTransformAlpha","MapAlpha","VP8LPredictorsAdd","VP8LPredictors","VP8LPredictorsAdd_C","VP8LPredictors_C","UpsampleRgbLinePair","UpsampleBgrLinePair","UpsampleRgbaLinePair","UpsampleBgraLinePair","UpsampleArgbLinePair","UpsampleRgba4444LinePair","UpsampleRgb565LinePair","WebPDecodeRGBA","src_off","src_size","feature_flags","canvas_width","canvas_height","bgcolor","loop_count","offset_x","offset_y","dispose","blend","rgbaoutput","dataurl","loop_counter","imgwidth","imgheight","processPNG","processGIF89A","processGIF87A","fileSize","getUint32","reserved","headerSize","getInt32","planes","getUint16","bitPP","rawSize","importantColors","getUint8","quad","bit1","bit4","bit8","bit15","bit16","bit24","bit32","processBMP","processWEBP","processRGBA","setLanguage","languageSettings","isSubscribed","sq","hy","ast","az","eu","my","cv","cs","eo","fo","fy","fur","gu","hu","iu","ks","km","ky","ko","mo","nv","no","om","qu","rm","ro","ru","sz","so","es","sw","tig","ts","hsb","vo","zu","languageCode","getCharWidthsArray","widths","Unicode","fof","kerning","widthOfString","widthOfGlyph","characterToGlyph","textIndent","lineIndent","__fontmetrics__","uncompress","WinAnsiEncoding","Courier","ZapfDingbats","existsFileInVFS","getFileFromVFS","TTFFont","glyIdsUsed","canvg","addSvgAsImage","ignoreMouse","ignoreAnimation","ignoreDimensions","fromString","putTotalPages","pdfEscape16","viewerPreferences","HideToolbar","explicitSet","valueSet","pdfVersion","HideMenubar","HideWindowUI","FitWindow","CenterWindow","DisplayDocTitle","NonFullScreenPageMode","Direction","ViewArea","ViewClip","PrintArea","PrintClip","PrintScaling","Duplex","PickTrayByPDFSize","PrintPageRange","NumCopies","viewerpreferences","configuration","__metadata__","namespaceuri","metadata_object_number","addMetadata","toUnicode","subset","PDFObject","bbox","stemV","italicAngle","ascender","decender","capHeight","rawData","hmtx","unitsPerEm","cmap","codeMap","vFS","addFileToVFS","__bidiEngine__","EN","AN","hiLevel","doBidiReorder","isInputVisual","isOutputVisual","isInputRtl","isOutputRtl","isSymmetricSwapping","readString","registerTTF","directory","hhea","maxp","os2","loca","glyf","exists","lineGap","xMin","yMin","xMax","yMax","italic_angle","xHeight","familyClass","isSerif","isScript","isFixedPitch","forGlyph","advance","readByte","writeByte","writeUInt32","readInt32","writeInt32","writeUInt16","readInt16","writeInt16","writeString","readShort","writeShort","readLongLong","writeLongLong","readInt","writeInt","scalarType","tableCount","searchRange","entrySelector","rangeShift","tables","checksum","__super__","file","revision","checkSumAdjustment","magicNumber","created","modified","macStyle","lowestRecPPEM","fontDirectionHint","indexToLocFormat","glyphDataFormat","platformID","encodingID","language","isUnicode","old","new","charMap","subtable","maxGlyphID","advanceWidthMax","minLeftSideBearing","minRightSideBearing","xMaxExtent","caretSlopeRise","caretSlopeRun","caretOffset","metricDataFormat","numberOfMetrics","averageCharWidth","weightClass","widthClass","ySubscriptXSize","ySubscriptYSize","ySubscriptXOffset","ySubscriptYOffset","ySuperscriptXSize","ySuperscriptYSize","ySuperscriptXOffset","ySuperscriptYOffset","yStrikeoutSize","yStrikeoutPosition","panose","charRange","vendorID","firstCharIndex","lastCharIndex","ascent","descent","winAscent","winDescent","codePageRange","defaultChar","breakChar","maxContext","underlinePosition","underlineThickness","minMemType42","maxMemType42","minMemType1","maxMemType1","glyphNameIndex","offsets","numGlyphs","languageID","nameID","strings","fontSubfamily","uniqueSubfamily","postscriptName","trademark","manufacturer","designer","vendorUrl","designerUrl","license","licenseUrl","preferredFamily","preferredSubfamily","compatibleFull","sampleText","maxPoints","maxContours","maxCompositePoints","maxComponentContours","maxZones","maxTwilightPoints","maxStorage","maxFunctionDefs","maxInstructionDefs","maxStackElements","maxSizeOfInstructions","maxComponentElements","maxComponentDepth","metrics","lsb","leftSideBearings","glyphFor","lengthOf","numberOfContours","compound","glyphIDs","glyphOffsets","unicodes","generateCmap","glyphsFor","checkDCE","classNames","classes","appendClass","newClass","ex","React","React__default","canUseDOM","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","WrappedComponent","mountedInstances","emitChange","SideEffect","_PureComponent","subClass","superClass","peek","rewind","recordedState","_proto","getDisplayName","ONE","MAX_DIGITS","Decimal","rounding","toExpNeg","toExpPos","LN10","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","isDecimal","BASE","MAX_E","carry","checkInt32","digitsToString","indexOfLastWord","getZeroString","comparedTo","cmp","xdL","ydL","decimalPlaces","dp","dividedBy","div","dividedToIntegerBy","idiv","getBase10Exponent","greaterThan","greaterThanOrEqualTo","isint","isNegative","isneg","isPositive","ispos","isZero","lessThan","lessThanOrEqualTo","logarithm","wpr","minus","sub","modulo","naturalExponential","naturalLogarithm","negated","neg","plus","squareRoot","toExponential","mul","rL","toDecimalPlaces","todp","toint","toPower","yIsInt","toPrecision","toSignificantDigits","tosd","multiplyInteger","aL","bL","prod","prodL","remL","rem0","xL","yd0","yL","yz","denominator","getLn10","zs","numerator","parseDecimal","doRound","xdi","xLTy","isExp","ps","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","objectIs","useSyncExternalStoreWithSelector","getServerSnapshot","selector","instRef","inst","hasValue","memoizedSelector","nextSnapshot","hasMemo","memoizedSnapshot","currentSelection","memoizedSelection","nextSelection","maybeGetServerSnapshot","hashClear","hashDelete","hashGet","hashHas","hashSet","_default","setCacheAdd","setCacheHas","afternoon","SS","SSS","HH","DD","Do","MMM","MMMM","YY","YYYY","ZZ","customParseFormat","loaded","leafPrototypes","getProto","ns","def","chunkId","promises","miniCssF","inProgress","dataWebpackPrefix","needAttach","onScriptComplete","doneFns","nmd","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","Action","PopStateEventType","invariant","warning","getHistoryState","usr","idx","createLocation","_extends","pathname","hash","parsePath","createPath","parsedPath","hashIndex","searchIndex","getUrlBasedHistory","getLocation","createHref","validateLocation","v5Compat","globalHistory","history","Pop","getIndex","handlePop","createURL","replaceState","listen","encodeLocation","Push","historyState","pushState","DOMException","Replace","go","ResultType","matchRoutes","routes","locationArg","basename","matchRoutesImpl","allowPartial","stripBasename","branches","flattenRoutes","siblings","compareIndexes","routesMeta","childrenIndex","rankRouteBranches","decoded","decodePath","matchRouteBranch","parentsMeta","parentPath","flattenRoute","route","relativePath","caseSensitive","joinPaths","computeScore","_route$path","exploded","explodeOptionalSegments","segments","isOptional","restExploded","subpath","paramRe","dynamicSegmentValue","indexRouteValue","emptySegmentValue","staticSegmentValue","splatPenalty","isSplat","initialScore","branch","matchedParams","matchedPathname","remainingPathname","matchPath","params","pathnameBase","normalizePathname","compiledParams","regexpSource","paramName","compilePath","captureGroups","splatValue","decodeURIComponent","startIndex","nextChar","getInvalidPathError","getPathContributingMatches","getResolveToMatches","v7_relativeSplatPath","pathMatches","resolveTo","toArg","routePathnames","locationPathname","isPathRelative","isEmptyPath","toPathname","routePathnameIndex","toSegments","fromPathname","resolvePathname","normalizeSearch","normalizeHash","resolvePath","hasExplicitTrailingSlash","hasCurrentTrailingSlash","isRouteErrorResponse","statusText","validMutationMethodsArr","validRequestMethodsArr","DataRouterContext","DataRouterStateContext","NavigationContext","LocationContext","RouteContext","outlet","isDataRoute","RouteErrorContext","useInRouterContext","useLocation","UNSAFE_invariant","useIsomorphicLayoutEffect","static","useNavigate","router","useDataRouterContext","DataRouterHook","UseNavigateStable","useCurrentRouteId","DataRouterStateHook","activeRef","navigate","fromRouteId","useNavigateStable","dataRouterContext","routePathnamesJson","UNSAFE_getResolveToMatches","relative","useNavigateUnstable","useParams","routeMatch","useResolvedPath","_temp2","useRoutesImpl","dataRouterState","isStatic","parentMatches","parentParams","parentPathnameBase","locationFromContext","_parsedLocationArg$pa","parsedLocationArg","parentSegments","renderedMatches","_renderMatches","navigationType","DefaultErrorComponent","_state$errors","useDataRouterState","UseRouteError","routeId","errors","useRouteError","preStyles","defaultErrorElement","RenderErrorBoundary","super","revalidation","errorInfo","routeContext","component","RenderedRoute","staticContext","errorElement","ErrorBoundary","_deepestRenderedBoundaryId","_dataRouterState","_future","v7_partialHydration","initialized","errorIndex","renderFallback","fallbackIndex","HydrateFallback","hydrateFallbackElement","loaderData","needsToRunLoader","loader","shouldRenderHydrateFallback","alreadyWarned$1","getChildren","hookName","useRouteContext","thisRoute","logV6DeprecationWarnings","renderFuture","routerFuture","v7_startTransition","v7_fetcherPersist","v7_normalizeFormMethod","v7_skipActionErrorRevalidation","Navigate","_ref4","jsonPath","Route","_props","Router","_ref5","basenameProp","locationProp","staticProp","navigationContext","locationContext","trailingPathname","Routes","_ref6","createRoutesFromChildren","treePath","hasErrorBoundary","shouldRevalidate","handle","__reactRouterVersion","startTransitionImpl","ReactDOM","BrowserRouter","historyRef","setStateImpl","newState","UNSAFE_logV6DeprecationWarnings","isBrowser","ABSOLUTE_URL_REGEX","Link","_ref7","absoluteHref","reloadDocument","preventScrollReset","viewTransition","_objectWithoutPropertiesLoose","_excluded","UNSAFE_NavigationContext","isExternal","currentUrl","targetUrl","_temp","joinedPathname","useHref","internalOnClick","replaceProp","isModifiedEvent","shouldProcessLinkClick","useLinkClickHandler","getOwnPropertyDescriptors","REACT_ELEMENT_TYPE_18","REACT_ELEMENT_TYPE_19","REACT_FRAGMENT_TYPE","keepEmpty","warned","preWarningFns","valid","note","warningOnce","preMessage","resetWarned","noteOnce","isDOM","SVGElement","getDOM","nativeElement","_ReactDOM$findDOMNode","domNode","condition","shouldUpdate","cacheRef","ReactMajorVersion","fillRef","composeRef","_len","_key","refList","useComposeRef","_len2","_key2","supportRef","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","isReactElement","getNodeRef","ele","CollectionContext","MapShim","class_1","__entries__","global$1","requestAnimationFrame$1","requestAnimationFrame","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","resolvePending","timeoutCallback","addObserver","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","attributes","childList","subtree","disconnect","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","positions","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","getBBox","getContentRect","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","ResizeObserver","elementListeners","resizeObserver","entities","entity","_elementListeners$get","ReferenceError","DomWrapper","_React$Component","_inherits","_createSuper","_classCallCheck","_createClass","SingleObserver","elementRef","wrapperRef","onCollectionResize","isRenderProps","mergedChildren","sizeRef","canRef","originRef","mergedRef","getDom","_elementRef$current","propsRef","onInternalResize","_propsRef$current","onResize","_target$getBoundingCl","fixedWidth","fixedHeight","mergedOffsetWidth","mergedOffsetHeight","sizeInfo","_objectSpread","currentElement","RefResizeObserver","onBatchResize","resizeIdRef","resizeInfosRef","currentId","canUseDom","useInternalLayoutEffect","firstMountRef","useLayoutUpdateEffect","firstMount","UNDEFINED","InternalItem","prefixCls","invalidate","renderItem","responsive","responsiveDisabled","registerSize","itemKey","_props$component","restProps","_objectWithoutProperties","mergedHidden","internalRegisterSize","overflowStyle","pointerEvents","overflowProps","itemNode","Item","useEvent","fnRef","memoFn","_fnRef$current","raf","caf","num","cancelAnimationFrame","rafUUID","rafIds","cleanup","wrapperRaf","callRef","leftTimes","realId","useBatcher","updateFuncRef","channelUpdate","useEffectState","notifyEffectUpdate","_React$useState2","_slicedToArray","stateValue","setStateValue","nextValue","OverflowContext","_excluded2","_excluded3","InternalRawItem","_restProps","contextClassName","restContext","RawItem","RESPONSIVE","INVALIDATE","defaultRenderRest","omittedItems","Overflow","_props$prefixCls","_props$data","renderRawItem","_props$itemWidth","itemWidth","ssr","maxCount","renderRest","renderRawRest","itemComponent","onVisibleChange","fullySSR","_useEffectState2","containerWidth","setContainerWidth","mergedContainerWidth","_useEffectState4","itemWidths","setItemWidths","_useEffectState6","prevRestWidth","setPrevRestWidth","_useEffectState8","restWidth","setRestWidth","_useEffectState10","suffixWidth","setSuffixWidth","_useState2","suffixFixedStart","setSuffixFixedStart","_useState4","displayCount","setDisplayCount","mergedDisplayCount","_useState6","restReady","setRestReady","itemPrefixCls","mergedRestWidth","isResponsive","shouldResponsive","showRest","mergedData","items","getKey","mergedRenderItem","updateDisplayCount","suffixFixedStartVal","notReady","getItemWidth","totalWidth","currentItemWidth","displayRest","suffixStyle","itemSharedProps","internalRenderItemNode","restContextProps","mergedRenderRest","restNode","overflowNode","ForwardOverflow","useSafeState","destroyRef","ignoreDestroy","useMergedState","defaultStateValue","onChange","postState","innerValue","setInnerValue","mergedValue","postMergedValue","onChangeFn","prevValue","setPrevValue","obj1","obj2","shallow","refSet","deepEqual","circular","newLevel","IdContext","getMenuId","uuid","eventKey","useMenuId","MenuContext","InheritableContextProvider","locked","inheritableContext","mergeProps","EmptyList","PathRegisterContext","useMeasure","PathTrackerContext","useFullPath","parentKeyPath","_toConsumableArray","PathUserContext","offsetParent","_getBBox","_element$getBoundingC","_width","_height","focusable","includePositive","isFocusableElement","isContentEditable","tabIndexAttr","tabIndexNum","tabIndex","getFocusNodeList","KeyCode","MAC_ENTER","TAB","NUM_CENTER","ENTER","SHIFT","CTRL","ALT","PAUSE","CAPS_LOCK","ESC","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","PRINT_SCREEN","INSERT","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","META","WIN_KEY_RIGHT","CONTEXT_MENU","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","NUMLOCK","DASH","EQUALS","PERIOD","SLASH","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","WIN_KEY","MAC_FF_META","WIN_IME","isTextModifyingKeyEvent","isCharacterKey","ArrowKeys","getFocusableElements","getNextFocusElement","parentQueryContainer","focusMenuElement","sameLevelFocusableMenuElementList","focusIndex","refreshElements","key2element","element2key","useAccessibility","activeKey","isRtl","containerRef","getKeys","getKeyPath","triggerActiveKey","triggerAccessibilityOpen","originOnKeyDown","rafRef","cleanRaf","refreshedElements","_refreshedElements","getFocusElement","focusMenuKey","offsetObj","isRootLevel","_offsets","inlineTrigger","inline","inlineSub","horizontalSub","verticalSub","getOffset","tryFocus","menuElement","focusTargetElement","targetKey","targetElement","focusableElements","findContainerUL","controlId","getElementById","keyPath","parentKey","parentMenuElement","PATH_SPLIT","getPathStr","OVERFLOW_KEY","useKeyRecords","internalForceUpdate","key2pathRef","path2keyRef","_React$useState4","overflowKeys","setOverflowKeys","updateRef","registerPath","connectedPath","unregisterPath","refreshOverflowKeys","includeOverflow","fullPath","isSubPathKey","pathKeys","pathKey","getSubPathKeys","useMemoCallback","funRef","_funRef$current","uniquePrefix","internalId","useActive","onMouseEnter","onMouseLeave","_React$useContext","onActive","onInactive","domEvent","useDirectionStyle","rtl","inlineIndent","Icon","iconNode","warnItemProp","restInfo","LegacyMenuItem","_this$props","passedProps","InternalMenuItem","warnKey","itemIcon","role","onKeyDown","onFocus","domDataId","onItemClick","contextDisabled","overflowDisabled","contextItemIcon","selectedKeys","_internalRenderMenuItem","PrivateContext","itemCls","legacyMenuItemRef","mergedDisabled","mergedEleRef","connectedKeys","getEventInfo","mergedItemIcon","_useActive","activeProps","directionStyle","optionRoleProps","isSelected","MenuItem","measure","connectedKeyPath","InternalSubMenuList","SubMenuList","parseChildren","_eventKey","_child$props","cloneProps","EMPTY_LIST","cached","APPEND_ORDER","APPEND_PRIORITY","containerCache","getMark","getContainer","attachTo","findStyles","injectCSS","csp","prepend","_option$priority","mergedOrder","getOrder","isPrependQueue","styleNode","nonce","existStyle","nodePriority","findExistNode","removeCSS","existNode","updateCSS","originOption","cachedRealContainer","placeholderStyle","syncRealContainer","_option$csp","_option$csp2","_option$csp3","newNode","measureScrollbarSize","randomId","measureEle","fallbackWidth","fallbackHeight","measureStyle","targetStyle","scrollbarColor","scrollbarWidth","webkitScrollbarStyle","widthStyle","heightStyle","getScrollBarSize","fresh","getTargetScrollBarSize","UNIQUE_ID","useScrollLocker","lock","mergedLock","scrollbarSize","isOverflow","getPortalContainer","Portal","autoLock","_props$autoDestroy","autoDestroy","shouldRender","setShouldRender","mergedRender","innerContainer","setInnerContainer","customizeContainer","_useDom","appendedRef","queueCreate","OrderContext","setQueue","mergedQueueCreate","appendFn","append","_ele$parentElement","useDom","_useDom2","defaultContainer","mergedContainer","childRef","nextInline","renderInline","reffedChildren","getRoot","_ele$getRootNode","getRootNode","getShadowRoot","ShadowRoot","inShadow","useOriginId","reactId","innerId","setInnerId","agent","vendor","opera","MotionProvider","internalSet","removeIfUndefined","_paths","_toArray","restPath","createEmpty","internalMerge","parentLoopSet","loopSet","originValue","STATUS_NONE","STATUS_APPEAR","STATUS_ENTER","STATUS_LEAVE","STEP_NONE","STEP_PREPARE","STEP_START","STEP_ACTIVE","STEP_ACTIVATED","STEP_PREPARED","makePrefixMap","styleProp","eventName","prefixes","vendorPrefixes","domSupport","getVendorPrefixes","_document$createEleme","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","getTransitionName","transitionName","transitionType","FULL_STEP_QUEUE","SIMPLE_STEP_QUEUE","SkipStep","prepareOnly","setStep","_useNextFrame","nextFrameRef","cancelNextFrame","nextFrame","nextFrameId","isCanceled","useNextFrame","_useNextFrame2","STEP_QUEUE","nextStep","doNext","useStatus","supportMotion","visible","getElement","_ref$motionEnter","motionEnter","_ref$motionAppear","motionAppear","_ref$motionLeave","motionLeave","motionDeadline","motionLeaveImmediately","onAppearPrepare","onEnterPrepare","onLeavePrepare","onAppearStart","onEnterStart","onLeaveStart","onAppearActive","onEnterActive","onLeaveActive","onAppearEnd","onEnterEnd","onLeaveEnd","onVisibleChanged","asyncVisible","setAsyncVisible","_useSyncState","currentValueRef","useSyncState","_useSyncState2","getStatus","setStatus","setStyle","currentStatus","mountedRef","deadlineRef","getDomElement","updateMotionEndStatus","onInternalMotionEnd","deadline","canEnd","currentActive","_useDomMotionEvents","cacheElementRef","removeMotionEvents","useDomMotionEvents","patchMotionEvents","getEventHandlers","targetStatus","eventHandlers","_useStepQueue2","useStepQueue","newStep","onPrepare","_eventHandlers$step","startStep","visibleRef","nextStatus","nextEventHandlers","firstMountChangeRef","mergedStyle","transitionSupport","CSSMotion","_props$visible","_props$removeOnLeave","removeOnLeave","forceRender","motionName","leavedClassName","eventProps","contextMotion","isSupportTransition","motion","nodeRef","wrapperNodeRef","_useStatus2","statusStep","statusStyle","mergedVisible","renderedRef","motionChildren","setNodeRef","mergedProps","statusSuffix","motionCls","STATUS_ADD","STATUS_KEEP","STATUS_REMOVE","STATUS_REMOVED","wrapKeyToObject","keyObj","parseKeys","MOTION_PROP_NAMES","OriginCSSMotion","CSSMotionList","_assertThisInitialized","keyEntities","removeKey","prevState","onAllRemoved","_this2","_onVisibleChanged","motionProps","changedVisible","_ref3","parsedKeyObjects","mixedKeyEntities","prevKeys","currentKeys","list","currentLen","prevKeyObjects","currentKeyObjects","hit","currentKeyObj","matchKey","diffKeys","prevEntity","Arrow","arrow","arrowPos","_arrowPos$x","_arrowPos$y","arrowRef","points","alignStyle","autoArrow","popupPoints","targetPoints","popupTB","popupLR","targetTB","targetLR","Mask","popup","keepDom","maskMotion","getPopupContainer","portal","onPointerEnter","onPointerDownCapture","offsetR","offsetB","onAlign","targetWidth","targetHeight","isNodeVisible","getPopupContainerNeedParams","show","setShow","offsetStyle","_experimental","dynamicInset","alignRight","alignBottom","miscStyle","minHeight","resizeObserverRef","nextVisible","_motion$onVisibleChan","motionRef","motionClassName","motionStyle","PopupContent","getTriggerDOMNode","canUseRef","setRef","isPointsEq","getMotion","getWin","collectScroller","scrollerList","scrollStyle","_getWin$getComputedSt","toNum","getPxValue","getVisibleArea","initArea","visibleArea","HTMLBodyElement","HTMLHtmlElement","_getWin$getComputedSt2","overflowClipMargin","eleRect","eleOutHeight","eleInnerHeight","eleOutWidth","eleInnerWidth","borderTopNum","borderBottomNum","borderLeftNum","borderRightNum","scaleY","eleScrollWidth","eleScrollHeight","scaledBorderTopWidth","scaledBorderBottomWidth","scaledBorderLeftWidth","scaledBorderRightWidth","clipMarginWidth","clipMarginHeight","clipNum","eleLeft","eleTop","eleRight","eleBottom","getUnitOffset","offsetStr","getNumberOffset","splitPoints","getAlignPoint","topBottom","leftRight","reversePoints","reverseMap","PortalComponent","_props$action","showAction","hideAction","popupVisible","defaultPopupVisible","onPopupVisibleChange","afterPopupVisibleChange","mouseEnterDelay","_props$mouseLeaveDela","mouseLeaveDelay","focusDelay","blurDelay","_props$maskClosable","maskClosable","destroyPopupOnHide","popupClassName","popupStyle","popupPlacement","_props$builtinPlaceme","builtinPlacements","popupAlign","getPopupClassNameFromAlign","alignPoint","onPopupClick","onPopupAlign","popupMotion","popupTransitionName","popupAnimation","maskTransitionName","maskAnimation","mergedAutoDestroy","mobile","setMobile","isMobile","subPopupElements","parentContext","TriggerContext","registerSubPopup","subPopupEle","popupEle","setPopupEle","externalPopupRef","setPopupRef","_React$useState6","targetEle","setTargetEle","externalForwardRef","setTargetRef","originChildProps","inPopupOrChild","_getShadowRoot","_getShadowRoot2","childDOM","host","mergePopupMotion","mergeMaskMotion","_React$useState8","internalOpen","setInternalOpen","mergedOpen","setMergedOpen","nextOpen","openRef","lastTriggerRef","internalTriggerOpen","_lastTriggerRef$curre","delayRef","clearDelay","triggerOpen","_React$useState10","inMotion","setInMotion","_React$useState12","motionPrepareResolve","setMotionPrepareResolve","_React$useState14","mousePos","setMousePos","setMousePosByEvent","_useAlign","placement","arrowX","arrowY","offsetInfo","setOffsetInfo","alignCountRef","prevFlipRef","_popupElement$parentE","_popupRect$x","_popupRect$y","_popupElement$parentE2","targetRect","popupElement","_win$getComputedStyle","popupPosition","originLeft","originTop","originRight","originBottom","originOverflow","placementInfo","placeholderElement","offsetLeft","_rect$x","_rect$y","popupRect","_doc$documentElement","popupHeight","popupWidth","visibleRegion","scrollRegion","htmlRegion","VISIBLE","VISIBLE_FIRST","isVisibleFirst","scrollRegionArea","visibleRegionArea","adjustCheckVisibleArea","popupMirrorRect","_scaleX","_scaleY","targetOffset","_getNumberOffset2","popupOffsetX","popupOffsetY","_getNumberOffset4","targetOffsetX","targetOffsetY","popupPoint","targetAlignPoint","popupAlignPoint","nextAlignInfo","nextOffsetX","nextOffsetY","getIntersectionVisibleArea","visibleL","visibleT","visibleR","visibleB","nextPopupY","nextPopupBottom","nextPopupX","nextPopupRight","originIntersectionVisibleArea","originIntersectionRecommendArea","targetAlignPointTL","popupAlignPointTL","targetAlignPointBR","popupAlignPointBR","adjustX","adjustY","shiftX","shiftY","supportAdjust","syncNextPopupPosition","needAdjustY","sameTB","tmpNextOffsetY","newVisibleArea","newVisibleRecommendArea","_tmpNextOffsetY","_newVisibleArea","_newVisibleRecommendArea","needAdjustX","sameLR","tmpNextOffsetX","_newVisibleArea2","_newVisibleRecommendArea2","_tmpNextOffsetX","_newVisibleArea3","_newVisibleRecommendArea3","numShiftX","numShiftY","popupLeft","popupRight","popupTop","popupBottom","targetLeft","targetRight","targetTop","targetBottom","nextArrowX","nextArrowY","offsetX4Right","offsetY4Bottom","resetReady","ori","useAlign","_useAlign2","alignInfo","_useAction","mergedShowAction","mergedHideAction","showActionSet","hideActionSet","useAction","_useAction2","showActions","hideActions","clickToShow","clickToHide","triggerAlign","onScroll","targetScrollList","popupScrollList","mergedList","notifyScroll","scroller","useWatch","alignedClassName","baseClassName","isAlignPoint","placements","_builtinPlacements$pl","getAlignPopupClassName","forceAlign","_React$useState16","setTargetWidth","_React$useState18","setTargetHeight","syncTargetSize","wrapperAction","preEvent","_originChildProps$eve","_originChildProps$onC","onPopupMouseEnter","onPopupMouseLeave","onPopupPointerDown","popupPointerDownRef","onPointerDown","onTriggerClose","_e$composedPath","composedPath","targetShadowRoot","useWinClick","hoverToShow","hoverToHide","onMouseMove","_originChildProps$onM","onContextMenu","_originChildProps$onC2","_len3","_key3","mergedChildrenProps","_mergedChildrenProps$","_len4","_key4","triggerNode","innerArrow","TriggerWrapper","Popup","autoAdjustOverflow","topLeft","topRight","bottomLeft","bottomRight","leftTop","leftBottom","rightTop","rightBottom","placementsRtl","defaultMotions","popupPlacementMap","PopupTrigger","popupOffset","subMenuOpenDelay","subMenuCloseDelay","triggerSubMenuAction","forceSubMenuRender","rootClassName","innerVisible","setInnerVisible","targetMotion","targetMotionRef","mergedMotion","Trigger","InlineSubMenuList","fixedMode","sameModeRef","setDestroy","originOnVisibleChanged","newVisible","MenuContextProvider","InternalSubMenu","internalPopupClose","expandIcon","onTitleClick","onTitleMouseEnter","onTitleMouseLeave","openKeys","contextExpandIcon","onOpenChange","_internalRenderSubMenuItem","subMenuPrefixCls","popupRef","mergedExpandIcon","originOpen","childrenSelected","childrenActive","setChildrenActive","triggerChildrenActive","newActive","mergedActive","onMergedItemClick","popupId","titleNode","isOpen","isSubMenu","triggerModeRef","triggerMode","listNode","Divider","InternalMenuItemGroup","groupPrefixCls","convertItemsToNodes","components","MergedMenuItem","MergedMenuItemGroup","MergedSubMenu","submenu","MergedDivider","divider","mergedKey","parseItems","mergedComponents","MenuItemGroup","SubMenu","ExportMenu","_childList$","_ref$prefixCls","_ref$tabIndex","_ref$mode","inlineCollapsed","disabledOverflow","_ref$subMenuOpenDelay","_ref$subMenuCloseDela","defaultOpenKeys","defaultActiveFirst","_ref$selectable","selectable","_ref$multiple","defaultSelectedKeys","onSelect","onDeselect","_ref$inlineIndent","_ref$triggerSubMenuAc","_ref$overflowedIndica","overflowedIndicator","overflowedIndicatorPopupClassName","openAnimation","openTransitionName","_internalComponents","_React$useMemo2","measureChildList","mounted","setMounted","_useMergedState2","setUUID","newId","useUUID","mergedOpenKeys","setMergedOpenKeys","triggerOpenKeys","doUpdate","inlineCacheOpenKeys","setInlineCacheOpenKeys","mountRef","_React$useMemo4","mergedMode","mergedInlineCollapsed","isInlineMode","internalMode","setInternalMode","internalInlineCollapsed","setInternalInlineCollapsed","lastVisibleIndex","setLastVisibleIndex","allVisible","_useKeyRecords","registerPathContext","pathUserContext","_useMergedState4","mergedActiveKey","setMergedActiveKey","_childList$find","_elementToFocus$focus","_refreshElements","shouldFocusKey","elementToFocus","_useMergedState6","mergedSelectKeys","setMergedSelectKeys","onInternalClick","newSelectKeys","exist","selectInfo","triggerSelection","onInternalOpenChange","newOpenKeys","subPathKeys","onInternalKeyDown","privateContext","wrappedChildList","omitItems","originOmitItems","newLastIndex","ItemGroup","splitColorStr","parseNum","numList","parseHSVorHSL","limitRange","mergedMax","FastColor","matchFormat","trimStr","matchPrefix","fromHexString","fromRgbString","fromHslString","fromHsvString","_v","fromHsl","fromHsv","setR","_sc","setG","setB","setA","setHue","hsv","toHsv","getLuminance","adjustGamma","getHue","getMax","getMin","getSaturation","getLightness","getBrightness","_brightness","darken","lighten","mix","calc","tint","shade","onBackground","isDark","isLight","rHex","gHex","bHex","aHex","toHsl","toHslString","toRgb","toRgbString","_max","_min","withoutPrefix","connectNum","index1","index2","huePrime","chroma","secondComponent","lightnessModification","vv","txt","darkColorMap","light","generate","patterns","pColor","presetPrimaryColors","primary","volcano","geekblue","grey","presetPalettes","redDark","volcanoDark","orangeDark","goldDark","yellowDark","limeDark","greenDark","cyanDark","blueDark","geekblueDark","purpleDark","magentaDark","greyDark","isIconDefinition","normalizeAttrs","attrs","class","rootProps","getSecondaryColor","primaryColor","generateColor","normalizeTwoToneColors","twoToneColor","twoToneColorPalette","secondaryColor","calculated","IconBase","svgRef","eleRef","_useContext","IconContext","layer","mergedStyleStr","useInsertStyles","getTwoToneColors","setTwoToneColors","setTwoToneColor","_normalizeTwoToneColo2","ReactIcon","spin","_React$useContext$pre","classString","iconTabIndex","svgStyle","msTransform","getTwoToneColor","BarsOutlined","AntdIcon","BarsOutlinedSvg","LeftOutlined","LeftOutlinedSvg","RightOutlined","RightOutlinedSvg","defaultPrefixCls","defaultIconPrefixCls","Variants","ConfigContext","getPrefixCls","defaultGetPrefixCls","suffixCls","customizePrefixCls","iconPrefixCls","ConfigConsumer","EMPTY_OBJECT","useComponentConfig","propValue","LayoutContext","siderHook","addSider","removeSider","Entity","instanceId","opGet","keyPathStr","valueFn","opUpdate","ATTR_TOKEN","ATTR_MARK","CSS_IN_JS_INSTANCE","createCache","cssinjsInstanceId","styleHash","_style$parentNode","CacheEntity","StyleContext","hashPriority","defaultCache","CALC_UNIT","ThemeCache","cacheCallTimes","derivativeOption","_cache2","_cache3","updateCallTimes","derivative","_this$internalGet","internalGet","MAX_CACHE_SIZE","MAX_CACHE_OFFSET","_this$keys$reduce","callTimes","cacheValue","currentCache","derivatives","_cache$value","deleteByPath","sameDerivativeOption","Theme","cacheThemes","createTheme","derivativeArr","resultCache","RESULT_VALUE","flattenTokenCache","flattenToken","token2key","salt","isClientSide","toStyleStr","tokenKey","styleId","_objectSpread2","attrStr","token2CSSVar","serializeCSSVar","cssVars","hashId","transformToken","themeKey","_config$preserve","_config$ignore","preserve","ignore","_config$unitless","cssVar","unitless","renderEffect","effectCleanups","cleanupFlag","useGlobalCache","cacheFn","onCacheRemove","onCacheEffect","globalCache","fullPathStr","register","useEffectCleanupRegister","buildCache","useHMR","prevCache","_ref2$","cacheContent","useCompatibleInsertionEffect","_ref6$","EMPTY_OVERRIDE","tokenKeys","cleanTokenStyle","tokenKeyList","cleanableKeyList","removeStyleTags","TOKEN_PREFIX","useCacheToken","_option$salt","_option$override","override","formatToken","compute","getComputedToken","mergedToken","dep","memoResult","tokenStr","overrideTokenStr","cssVarStr","cachedToken","_cssVar$key","mergedDerivativeToken","originToken","overrideToken","getDerivativeToken","actualToken","cssVarsStr","_transformToken2","_tokenKey","_themeKey","recordCleanToken","_hashId","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","WebkitLineClamp","COMMENT","RULESET","DECLARATION","indexof","charat","strlen","serialize","character","characters","caret","alloc","dealloc","delimit","delimiter","escaping","commenter","identifier","compile","rulesets","pseudo","declarations","atrule","scanning","ampersand","ruleset","sizeof","cachePathMap","ATTR_CACHE_MAP","CSS_FILE_STYLE","fromCSSFile","existPath","_item$split2","_inlineMapStyle$paren","inlineMapStyle","prepare","MULTI_VALUE","normalizeStyle","styleStr","injectSelectorHash","hashClassName","hashSelector","_firstPath$match","firstPath","htmlElement","parseStyle","interpolation","parentSelectors","injectHash","_config$transformers","transformers","linters","effectStyle","parseKeyframes","keyframes","getName","_parsedStr","flattenStyleList","flattenList","fullList","originStyle","_keyframe","trans","_trans$visit","visit","isCompoundCSSProperty","appendStyle","cssKey","cssValue","styleName","formatValue","actualValue","subInjectHash","nextRoot","_parseStyle4","_parsedStr2","childEffectStyle","uniqueHash","Empty","STYLE_PREFIX","useStyleRegister","styleFn","clientOnly","_info$order","autoClear","mock","ssrInline","enableLayer","isMergedClientSide","_useGlobalCache","cachePath","_getStyleAndHash","_style","getStyleAndHash","_getStyleAndHash2","inlineCacheStyleStr","styleObj","_parseStyle6","parsedStyle","fromHMR","mergedCSSConfig","nonceStr","effectLayerKeys","effectRestKeys","effectKey","_useGlobalCache2","cachedStyleStr","cachedTokenKey","cachedStyleId","CSS_VAR_PREFIX","_config$scope","stylePath","_ExtractStyleFns","effectStyles","keyStyleText","sharedAttrs","effectStyleHTML","realToken","cssVarKey","Keyframe","noSplit","notSplit","AbstractCalculator","CSSCalculator","_AbstractCalculator","unitlessCssVar","numType","getResult","lowPriority","force","cssUnit","mergedUnit","NumCalculator","Calculator","defaultToken","customToken","deprecatedTokens","_customToken$newToken","oldTokenKey","newTokenKey","enableStatistic","CSSINJS_STATISTIC","recording","objs","statistic","Proxy","_tokenKeys","componentToken","_statistic$componentN","getDefaultToken","_token$component","mergeToken","ArrayKeyMap","compositeKey","getCompositeKey","lastAccessBeat","accessBeat","getObjectID","objectIDMap","nextID","beat","uniqueMap","cachedValue","_config$useCSP","useCSP","useDefaultCSP","useToken","usePrefix","getResetStyles","getCommonStyle","getCompUnitless","genComponentStyleHook","concatComponent","mergedLayer","rootCls","_useToken3","_usePrefix","rootPrefixCls","useUniqueMemo","getCompVarPrefix","genCalc","_genMaxMin","genMaxMin","sharedConfig","injectStyle","_statisticToken","statisticToken","proxyToken","defaultComponentToken","getDefaultComponentToken","componentCls","getComponentToken","iconCls","antCls","styleInterpolation","commonStyle","resetFont","resetStyle","genStyleHooks","prefixToken","originUnitless","compUnitless","mergedOptions","useStyle","useCSSVar","_options$injectStyle","CSSVarRegister","_ref$cssVar","useCSSVarRegister","genCSSVarRegister","_useCSSVar2","genSubStyleComponent","_ref2$rootCls","textEllipsis","textOverflow","resetComponent","needInheritFontFamily","colorText","listStyle","genLinkStyle","colorLink","linkDecoration","motionDurationSlow","colorLinkHover","colorLinkActive","linkHoverDecoration","linkFocusDecoration","colorTextDisabled","genFocusOutline","lineWidthFocus","colorPrimaryBorder","outlineOffset","genFocusStyle","genIconStyle","alignItems","textRendering","operationUnit","defaultPresetColors","colorPrimary","colorSuccess","colorWarning","colorError","colorInfo","colorTextBase","colorBgBase","fontFamilyCode","lineType","motionUnit","motionBase","motionEaseOutCirc","motionEaseInOutCirc","motionEaseOut","motionEaseInOut","motionEaseOutBack","motionEaseInBack","motionEaseInQuint","motionEaseOutQuint","borderRadius","sizeUnit","sizeStep","sizePopupArrow","controlHeight","zIndexBase","zIndexPopupBase","opacityImage","wireframe","defaultConfig","defaultSeedToken","hashed","DesignTokenContext","radiusBase","radiusLG","radiusSM","radiusXS","radiusOuter","borderRadiusXS","borderRadiusSM","borderRadiusLG","borderRadiusOuter","controlHeightSM","controlHeightXS","controlHeightLG","fontSizePairs","fontSizes","baseSize","intSize","genFontSizes","lineHeights","fontSizeMD","fontSizeSM","fontSizeLG","lineHeightSM","lineHeightLG","fontSizeXL","fontSizeHeading1","fontSizeHeading2","fontSizeHeading3","fontSizeHeading4","fontSizeHeading5","fontHeight","fontHeightLG","fontHeightSM","lineHeightHeading1","lineHeightHeading2","lineHeightHeading3","lineHeightHeading4","lineHeightHeading5","getAlphaColor","baseColor","getSolidColor","brightness","generateColorPalettes","generateNeutralColorPalettes","bgBaseColor","textBaseColor","colorTextSecondary","colorTextTertiary","colorTextQuaternary","colorFill","colorFillSecondary","colorFillTertiary","colorFillQuaternary","colorBgSolid","colorBgSolidHover","colorBgSolidActive","colorBgLayout","colorBgContainer","colorBgElevated","colorBgSpotlight","colorBgBlur","colorBorder","colorBorderSecondary","colorPalettes","colorKey","cur","seed","colorSuccessBase","colorWarningBase","colorErrorBase","colorInfoBase","colorPrimaryBase","primaryColors","successColors","warningColors","errorColors","infoColors","neutralColors","linkColors","colorErrorBgFilledHover","colorPrimaryBg","colorPrimaryBgHover","colorPrimaryBorderHover","colorPrimaryHover","colorPrimaryActive","colorPrimaryTextHover","colorPrimaryText","colorPrimaryTextActive","colorSuccessBg","colorSuccessBgHover","colorSuccessBorder","colorSuccessBorderHover","colorSuccessHover","colorSuccessActive","colorSuccessTextHover","colorSuccessText","colorSuccessTextActive","colorErrorBg","colorErrorBgHover","colorErrorBgActive","colorErrorBorder","colorErrorBorderHover","colorErrorHover","colorErrorActive","colorErrorTextHover","colorErrorText","colorErrorTextActive","colorWarningBg","colorWarningBgHover","colorWarningBorder","colorWarningBorderHover","colorWarningHover","colorWarningActive","colorWarningTextHover","colorWarningText","colorWarningTextActive","colorInfoBg","colorInfoBgHover","colorInfoBorder","colorInfoBorderHover","colorInfoHover","colorInfoActive","colorInfoTextHover","colorInfoText","colorInfoTextActive","colorBgMask","colorWhite","genColorMapToken","genFontMapToken","sizeXXL","sizeXL","sizeLG","sizeMD","sizeMS","sizeSM","sizeXS","sizeXXS","genSizeMapToken","genControlHeight","motionDurationFast","motionDurationMid","lineWidthBold","genRadius","genCommonMapToken","isStableColor","frontColor","fR","fG","fB","originAlpha","bR","bG","bB","fA","__rest","derivativeToken","restToken","overrideTokens","seedToken","screenXL","screenXXL","fastDuration","colorFillContent","colorFillContentHover","colorFillAlter","colorBgContainerDisabled","colorBorderBg","colorSplit","colorTextPlaceholder","colorTextHeading","colorTextLabel","colorTextDescription","colorTextLightSolid","colorHighlight","colorBgTextHover","colorBgTextActive","colorIcon","colorIconHover","colorErrorOutline","colorWarningOutline","fontSizeIcon","controlOutlineWidth","controlInteractiveSize","controlItemBgHover","controlItemBgActive","controlItemBgActiveHover","controlItemBgActiveDisabled","controlTmpOutline","controlOutline","fontWeightStrong","opacityLoading","controlPaddingHorizontal","controlPaddingHorizontalSM","paddingXXS","paddingXS","paddingSM","paddingMD","paddingLG","paddingXL","paddingContentHorizontalLG","paddingContentVerticalLG","paddingContentHorizontal","paddingContentVertical","paddingContentHorizontalSM","paddingContentVerticalSM","marginXXS","marginXS","marginSM","marginMD","marginLG","marginXL","marginXXL","boxShadowSecondary","boxShadowTertiary","screenXS","screenXSMin","screenXSMax","screenSM","screenSMMin","screenSMMax","screenMD","screenMDMin","screenMDMax","screenLG","screenLGMin","screenLGMax","screenXLMin","screenXLMax","screenXXLMin","boxShadowPopoverArrow","boxShadowCard","boxShadowDrawerRight","boxShadowDrawerLeft","boxShadowDrawerUp","boxShadowDrawerDown","boxShadowTabsOverflowLeft","boxShadowTabsOverflowRight","boxShadowTabsOverflowTop","boxShadowTabsOverflowBottom","componentTheme","componentTokens","mergedComponentToken","rootDesignToken","mergedTheme","defaultTheme","genStyleUtils","useLocalToken","genCommonStyle","componentPrefixCls","prefixSelector","rootPrefixSelector","resetFontStyle","genLayoutStyle","footerBg","headerHeight","headerPadding","headerColor","footerPadding","bodyBg","headerBg","flexDirection","prepareComponentToken","paddingInline","colorBgHeader","colorBgBody","colorBgTrigger","siderBg","triggerHeight","triggerBg","triggerColor","zeroTriggerWidth","zeroTriggerHeight","lightSiderBg","lightTriggerBg","lightTriggerColor","DEPRECATED_TOKENS","genSiderStyle","insetInlineEnd","justifyContent","insetInlineStart","borderInlineStart","dimensionMaxMap","xs","sm","xl","xxl","SiderContext","generateId","trigger","defaultCollapsed","collapsible","reverseArrow","collapsedWidth","zeroWidthTriggerStyle","breakpoint","onCollapse","onBreakpoint","otherProps","collapsed","setCollapsed","below","setBelow","handleSetCollapsed","wrapCSSVar","cssVarCls","responsiveHandlerRef","mql","responsiveHandler","matchMedia","toggle","divProps","rawWidth","siderWidth","zeroWidthTrigger","reverseIcon","defaultTrigger","expanded","triggerDom","divStyle","siderCls","contextValue","siderCollapsed","EllipsisOutlined","EllipsisOutlinedSvg","getCollapsedHeight","getRealHeight","getCurrentHeight","skipOpacityTransition","replaceElement","firstLevel","dashed","innerStyle","overlayInnerStyle","bodyClassName","autoAdjustOverflowTopBottom","autoAdjustOverflowLeftRight","Tooltip","overlayClassName","_props$trigger","_props$mouseEnterDela","overlayStyle","afterVisibleChange","_props$placement","_props$align","_props$destroyTooltip","destroyTooltipOnHide","defaultVisible","getTooltipContainer","arrowContent","_props$showArrow","showArrow","tooltipClassNames","tooltipStyles","mergedId","triggerRef","extraProps","childProps","asyncIterator","Generator","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","_invoke","AsyncIterator","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","awrap","rval","finish","delegateYield","HOOK_MARK","warningFunc","getFieldValue","getFieldsValue","getFieldError","getFieldWarning","getFieldsError","isFieldsTouched","isFieldTouched","isFieldValidating","isFieldsValidating","resetFields","setFields","setFieldValue","setFieldsValue","validateFields","submit","getInternalHooks","initEntityValue","registerField","useSubscribe","setInitialValues","destroyForm","setCallbacks","registerWatch","getFields","setValidateMessages","setPreserve","getInitialValue","newMessages","enum","boolean","mismatch","cloned","messages","formatRegExp","convertFieldsError","isEmptyValue","isNativeStringType","asyncSerialArray","original","AsyncValidationError","_Error","_wrapNativeSuper","asyncMap","objArr","_pending","flattenArr","flattenObjArr","firstFields","objArrKeys","objArrLength","asyncParallelArray","complementError","fieldValue","fullFields","fullField","deepMerge","ENUM","urlReg","getYear","includeBoundaries","v4","v6seg","v6List","v6","v46Exact","v4exact","v6exact","ip","ipv4","ipv6","getUrlRegex","ruleType","dateObject","Schema","defaultMessages","_messages","source_","series","validator","getValidationMethod","errorFields","doIt","deep","defaultField","addFullField","schema","errorList","suppressWarning","filledErrors","fieldsSchema","paredFieldsSchema","fieldSchema","fieldSchemaList","validate","errs","finalErrors","asyncValidator","_console$error","_console","suppressValidatorError","_errors","validators","messageIndex","typeTemplate","defaultValidateMessages","AsyncValidator","replaceMessage","kv","CODE_LOGIC_ERROR","validateRule","_x","_x2","_x3","_x4","_x5","_validateRule","_regeneratorRuntime","_callee2","messageVariables","cloneRule","originValidator","subRuleField","subResults","fillVariableResult","_context2","ruleIndex","validateMessages","t0","mergedMessage","validateRules","namePath","validateFirst","summaryPromise","filledRules","currentRule","originValidatorFunc","hasPromise","w1","warningOnly","w2","_callee","_x6","_x7","rulePromises","_x9","_finishOnFirstFailed","finishOnFirstFailed","_x8","_finishOnAllFailed","finishOnAllFailed","_callee3","_context3","errorsList","_callee4","_context4","ruleError","getNamePath","cloneByNamePathList","namePathList","newStore","containsNamePath","partialMatch","matchNamePath","subNamePath","nameUnit","defaultGetValueFromEvent","valuePropName","move","moveIndex","toIndex","EMPTY_ERRORS","requireUpdate","Field","resetCount","isListField","cancelRegisterFunc","_this$props2","_fieldContext$prefixN","fieldContext","prefixName","_this$props3","_this$props3$rules","onMetaChange","_meta","getMeta","metaCache","prevStore","_this$props4","_this$props4$dependen","onReset","curValue","namePathMatch","touched","dirty","validatePromise","warnings","triggerMetaEvent","reRender","validating","dependency","relatedFields","currentValue","triggerName","_ref2$validateOnly","validateOnly","rootPromise","_this$props5","_this$props5$validate","validateDebounce","filteredRules","getRules","validateTrigger","ruleErrors","_ruleErrors$forEach","nextErrors","nextWarnings","_ref4$errors","isList","prevValidating","validated","_meta2","getOnlyChild","getControlled","toChildrenArray","_this$props6","getValueFromEvent","getValueProps","mergedValidateTrigger","mergedGetValueProps","originTriggerFunc","valueProps","control","originTrigger","_this$props7","cancelRegister","returnChildNode","_this$getOnlyChild","FieldContext","_restProps$isListFiel","listContext","ListContext","isMergedListField","wrapperListContext","keyManager","parentPrefixName","pathName","_ref3$value","getNewValue","operations","indexSet","keysIndex","valueIndex","_move","SPLIT","NameMap","kvs","_cell$match2","json","FormStore","forceRootUpdate","formHooked","subscribable","initialValues","_this$prevWithoutPres","nextStore","prevWithoutPreserves","updateStore","clearOnDestroy","getFieldEntities","isMergedPreserve","isPreserve","initValue","callbacks","watchList","allValues","fieldEntities","pure","nameList","getFieldsMap","INVALIDATE_NAME_PATH","filterFunc","mergedNameList","mergedFilterFunc","mergedStrict","warningUnhooked","getFieldEntitiesForNamePathList","filteredNameList","_isListField","_isList","getErrors","getWarnings","arg0","arg1","isAllFieldsTouched","shortNamePath","fieldNamePath","isNamePathListTouched","namePathListEntities","testField","records","requiredFieldEntities","_requiredFieldEntitie","skipExist","resetWithFieldInitialValue","notifyObservers","notifyWatch","fieldData","fieldPreserve","mergedPreserve","_prevStore","triggerDependenciesUpdate","updateValue","_namePath","mergedInfo","onStoreChange","childrenFields","getDependencyChildrenFields","onValuesChange","triggerOnFieldsChange","rootNamePath","dependencies2fields","dependencyNamePath","fillChildren","isFieldDirty","filedErrors","onFieldsChange","changedFields","fieldName","arg2","provideNameList","promiseList","TMP_SPLIT","validateNamePathList","_ref8","recursive","mergedErrors","mergedWarnings","_ref9","hasError","allPromiseFinish","lastValidatePromise","resultNamePathList","_ref10","outOfDate","triggerNamePathList","onFinish","onFinishFailed","formRef","formStore","getForm","FormContext","triggerFormChange","triggerFormFinish","registerForm","unregisterForm","FormProvider","onFormChange","onFormFinish","formContext","formsRef","forms","newForms","_ref$component","_ref$validateTrigger","_onFieldsChange","_onFinish","nativeElementRef","formInstance","useForm","_getInternalHooks","childrenNode","childrenRenderProps","prevFieldsRef","sourceKeys","targetKeys","sourceValue","targetValue","isSimilar","formContextValue","wrapperNode","onSubmit","_restProps$onReset","useWatchWarning","_args$","_form","isFormInstance","valueStr","valueStrRef","isValidForm","namePathRef","getWatchValue","watchValue","nextValueStr","RefForm","FieldForm","List","labelAlign","itemRef","NoStyleItemContext","providerProps","RcFormProvider","FormItemPrefixContext","FormItemInputContext","NoFormStyle","formItemInputContext","newFormItemInputContext","newContext","isFormItemInput","hasFeedback","feedbackIcon","VariantContext","SizeContext","SizeContextProvider","originSize","customSize","genSpaceStyle","genSpaceGapStyle","rowGap","spaceGapSmallSize","spaceGapMiddleSize","spaceGapLargeSize","columnGap","spaceToken","genSpaceCompactStyle","SpaceCompactItemContext","useCompactItemContext","compactItemContext","compactItemClassnames","compactDirection","isFirstItem","isLastItem","compactSize","NoCompactStyle","CompactItem","others","directionConfig","mergedSize","useSize","clx","nodes","CONTAINER_OFFSET","CONTAINER_MAX_OFFSET","containerBaseZIndexOffset","Modal","Drawer","Popover","Popconfirm","Tour","FloatButton","consumerBaseZIndexOffset","SelectLike","Dropdown","DatePicker","ImagePreview","useZIndex","componentType","customZIndex","parentZIndex","zIndexContext","isContainer","getArrowToken","unitWidth","ay","bx","by","dx","dy","ey","fx","shadowWidth","polygonOffset","arrowShadowWidth","arrowPath","arrowPolygon","genRoundedArrow","bgColor","clipPath","_multi_value_","insetInline","_skip_check_","getArrowOffsetToken","contentRadius","limitVerticalRadius","arrowOffset","arrowOffsetHorizontal","arrowOffsetVertical","isInject","getArrowStyle","colorBg","arrowDistance","arrowPlacement","PlacementAlignMap","ArrowCenterPlacementAlignMap","DisableAutoArrowList","getPlacements","arrowWidth","arrowPointAtCenter","visibleFirst","halfArrowWidth","placementMap","baseOverflow","mergedOverflow","getOverflowOptions","WarningContext","devUseWarning","noopWarning","initMotionCommon","animationFillMode","initMotionCommonLeave","initMotion","inKeyframes","outKeyframes","sameLevelPrefix","animationPlayState","zoomIn","Keyframes","zoomOut","zoomBigIn","zoomBigOut","zoomUpIn","zoomUpOut","zoomLeftIn","zoomLeftOut","zoomRightIn","zoomRightOut","zoomDownIn","zoomDownOut","zoomMotion","initZoomMotion","animationTimingFunction","PresetColors","genPresetColor","genCss","lightColor","lightBorderColor","darkColor","genTooltipStyle","tooltipMaxWidth","tooltipColor","tooltipBg","tooltipBorderRadius","zIndexPopup","edgeAlignMinWidth","centerAlignMinWidth","wordWrap","TooltipToken","inverseColors","PresetStatusColorTypes","isPresetColor","isInternalColor","arrowStyle","arrowContentStyle","formattedOverlayInnerStyle","openClassName","afterOpenChange","mergedShowArrow","getContextPopupContainer","contextStyle","contextClassNames","contextStyles","tooltipRef","forcePopupAlign","setOpen","defaultOpen","noTitle","tooltipPlacements","mergedArrowPointAtCenter","pointAtCenter","memoOverlay","memoOverlayWrapper","ContextIsolator","injectFromPopover","tempOpen","childCls","rootClassNames","bodyClassNames","contextZIndex","RcTooltip","vis","_InternalPanelDoNotUseOrYouWillBeFired","PurePanel","danger","disableMenuItemTitleTooltip","isInlineCollapsed","tooltipTitle","tooltipProps","childrenLength","returnNode","wrapNode","renderItemChildren","OverrideContext","OverrideProvider","slideUpIn","slideUpOut","slideDownIn","slideDownOut","slideLeftIn","slideLeftOut","slideRightIn","slideRightOut","slideMotion","initSlideMotion","horizontalLineHeight","itemPaddingInline","borderBottom","menuArrowOffset","accessibilityFocus","getThemeStyle","themeSuffix","itemColor","itemSelectedColor","subMenuItemSelectedColor","groupTitleColor","itemBg","subMenuItemBg","itemSelectedBg","activeBarHeight","activeBarWidth","activeBarBorderWidth","itemHoverColor","itemDisabledColor","dangerItemColor","dangerItemHoverColor","dangerItemSelectedColor","dangerItemActiveBg","dangerItemSelectedBg","popupBg","itemHoverBg","itemActiveBg","menuSubMenuBg","horizontalItemSelectedColor","horizontalItemSelectedBg","horizontalItemBorderRadius","horizontalItemHoverBg","borderInlineEnd","insetBlock","borderInlineEndColor","getVerticalInlineStyle","itemHeight","itemMarginInline","menuArrowSize","itemMarginBlock","paddingWithArrow","marginInline","marginBlock","paddingInlineEnd","dropdownWidth","collapsedIconSize","inlineItemStyle","maxHeight","paddingInlineStart","genMenuItemStyle","iconSize","iconMarginInlineEnd","marginInlineStart","marginInlineEnd","genSubMenuArrowStyle","getBaseStyle","subMenuItemBorderRadius","groupTitleLineHeight","groupTitleFontSize","itemBorderRadius","borderStyle","colorTextDark","radiusItem","radiusSubMenuItem","colorItemText","colorItemTextHover","colorItemTextHoverHorizontal","horizontalItemHoverColor","colorGroupTitle","colorItemTextSelected","colorItemTextSelectedHorizontal","colorItemBg","colorItemBgHover","colorItemBgActive","colorSubItemBg","colorItemBgSelected","colorItemBgSelectedHorizontal","colorActiveBarWidth","colorActiveBarHeight","colorActiveBarBorderSize","colorItemTextDisabled","colorDangerItemText","colorDangerItemTextHover","colorDangerItemTextSelected","colorDangerItemBgActive","colorDangerItemBgSelected","darkItemDisabledColor","darkItemColor","darkDangerItemColor","darkItemBg","darkPopupBg","darkSubMenuItemBg","darkItemSelectedColor","darkItemSelectedBg","darkDangerItemSelectedBg","darkItemHoverBg","darkGroupTitleColor","darkItemHoverColor","darkDangerItemHoverColor","darkDangerItemSelectedColor","darkDangerItemActiveBg","customTheme","contextTheme","titleIsSpan","RcSubMenu","isEmptyIcon","MENU_COMPONENTS","overrideObj","_internalDisableMenuItemTitleTooltip","mergedSelectable","initCollapseMotion","useCSSVarCls","menuToken","menuHorizontalHeight","menuDarkToken","getHorizontalStyle","getVerticalStyle","getRTLStyle","genCollapseMotion","menuClassName","mergedIcon","RcMenu","menuRef","InternalMenu","MenuDivider","overlayNode","composedRef","_children$props","_props$arrow","_props$placements","Placements","triggerVisible","setTriggerVisible","overlayRef","handleVisibleChange","focusMenuRef","handleCloseMenuAndReturnFocus","_triggerRef$current","_triggerRef$current$f","focusMenu","_overlayRef$current","handleKeyDown","focusResult","getMenuElement","Overlay","getOpenClassName","triggerHideAction","minOverlayWidthMatchTrigger","getMinOverlayWidthMatchTrigger","onOverlayClick","items_per_page","jump_to","jump_to_confirm","prev_page","next_page","prev_5","next_5","prev_3","next_3","page_size","yearFormat","dayFormat","cellMeridiemFormat","monthBeforeYear","today","backToToday","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","dateTimeFormat","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","rangePlaceholder","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","rangeYearPlaceholder","rangeQuarterPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","CalendarLocale","timePickerLocale","TimePickerLocale","Pagination","TimePicker","Calendar","filterTitle","filterConfirm","filterReset","filterEmptyText","filterCheckAll","filterSearchPlaceholder","emptyText","selectAll","selectInvert","selectNone","selectionAll","sortTitle","expand","collapse","triggerDesc","triggerAsc","cancelSort","Next","Previous","Finish","okText","cancelText","justOkText","Transfer","titles","searchPlaceholder","itemUnit","itemsUnit","selectCurrent","removeCurrent","deselectAll","removeAll","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","Text","copied","Form","optional","QRCode","expired","scanned","ColorPicker","presetEmpty","transparent","singleColor","gradientColor","runtimeLocale","defaultLocale","localeList","generateLocale","merged","getConfirmLocale","_ANT_MARK__","clearLocale","newLocale","cloneLocale","changeConfirmLocale","getMemoizedContextValue","LocaleContext","dynamicStyleMark","registerTheme","globalPrefixCls","variables","formatColor","colorVal","primaryActiveColor","successColor","warningColor","errorColor","infoColor","DisabledContext","DisabledContextProvider","originDisabled","componentDisabled","componentSize","fullClone","useEmptyId","MotionWrapper","needWrapMotionProviderRef","useResetIconStyle","PASSED_PROPS","globalIconPrefixCls","globalTheme","globalHolderRender","getGlobalPrefixCls","getGlobalIconPrefixCls","globalConfig","getIconPrefixCls","getRootPrefixCls","holderRender","ProviderChildren","customCsp","autoInsertSpaceInButton","splitter","virtual","dropdownMatchSelectWidth","popupMatchSelectWidth","popupOverflow","legacyLocale","customIconPrefixCls","segmented","carousel","cascader","typography","checkbox","descriptions","drawer","skeleton","steps","layout","mentions","modal","slider","breadcrumb","pagination","textArea","badge","rate","switch","SWITCH","transfer","avatar","card","tabs","timeline","timePicker","upload","notification","colorPicker","datePicker","rangePicker","wave","dropdown","warningConfig","tour","tooltip","popover","popconfirm","floatButtonGroup","inputNumber","treeSelect","mergedPrefixCls","parentTheme","themeConfig","parentThemeConfig","useThemeKey","mergedCssVar","prevTheme","nextTheme","useTheme","autoInsertSpace","memoedConfig","prevConfig","currentConfig","CssInJsStyleContext","memoIconContextValue","PropWarning","ValidateMessagesContext","LocaleProvider","memoTheme","algorithm","themeObj","parsedComponents","parsedToken","ConfigProvider","antLocale","isLegacyTheme","useConfig","withPureRenderTheme","genPurePanel","alignPropName","postProps","getDropdownCls","holderRef","setPopupHeight","setPopupWidth","dropdownCls","moveDownIn","moveDownOut","moveLeftIn","moveLeftOut","moveRightIn","moveRightOut","moveMotion","initMoveMotion","menuCls","genBaseStyle","dropdownArrowDistance","paddingBlock","dropdownEdgeChildPadding","dropdownToken","genStatusStyle","dropdownRender","memoTransitionName","memoPlacement","isPrimitive","dropdownTrigger","triggerActions","onInnerOpenChange","overlayClassNameCustomized","onMenuClick","RcDropdown","renderOverlay","genWaveStyle","TARGET_CLS","reactRender","toggleWarning","MARK","modernRender","legacyRender","modernUnmount","_modernUnmount","_container$MARK","legacyUnmount","_unmount","unstableRender","defaultReactRender","getReactRender","isValidWaveColor","validateNum","WaveEffect","registerUnmount","divRef","unmountRef","setWaveColor","setBorderRadius","setLeft","setTop","setEnabled","waveStyle","syncPos","nodeStyle","getTargetWaveColor","isSmallComponent","classList","holder","showWaveEffect","unmountCallback","useWave","showWave","targetNode","showEffect","rafId","GroupSizeContext","sizeCls","rxTwoCNChar","isTwoCNChar","convertLegacyProps","isUnBorderedButtonVariant","spaceChildren","needInserted","isPrevChildPure","isCurrentChildPure","splitCNCharsBySpace","LoadingOutlined","LoadingOutlinedSvg","iconWrapperCls","InnerLoadingIcon","iconClassName","mergedIconCls","IconWrapper","getCollapsedWidth","getRealWidth","existIcon","mount","genButtonBorderStyle","buttonTypeCls","borderInlineStartColor","groupBorderColor","borderStartEndRadius","borderEndEndRadius","borderStartStartRadius","borderEndStartRadius","getRoundNumber","Color","_FastColor","convertHsb2Hsv","toHsb","hsbString","hsbaString","_this$toHsv","AggregationColor","cleared","metaColor","percent","RcColor","toHsbString","toHexFormat","getHex","isGradient","isBright","bgColorToken","prepareToken","onlyIconSize","buttonPaddingHorizontal","buttonPaddingVertical","buttonIconOnlyFontSize","contentFontSize","contentFontSizeSM","contentFontSizeLG","contentLineHeight","contentLineHeightSM","contentLineHeightLG","solidTextColor","shadowColorTokens","defaultShadow","primaryShadow","dangerShadow","dangerColor","borderColorDisabled","defaultGhostColor","ghostBg","defaultGhostBorderColor","paddingInlineLG","paddingInlineSM","onlyIconSizeSM","onlyIconSizeLG","linkHoverBg","textTextColor","textTextHoverColor","textTextActiveColor","textHoverBg","defaultColor","defaultBg","defaultBorderColor","defaultBorderColorDisabled","defaultHoverBg","defaultHoverColor","defaultHoverBorderColor","defaultActiveBg","defaultActiveColor","defaultActiveBorderColor","paddingBlockSM","paddingBlockLG","genSharedButtonStyle","gap","touchAction","genHoverActiveButtonStyle","btnCls","hoverStyle","activeStyle","genCircleButtonStyle","genRoundButtonStyle","genDisabledStyle","genGhostButtonStyle","textColorDisabled","genSolidDisabledButtonStyle","genPureDisabledButtonStyle","genVariantButtonStyle","genDisabledButtonStyle","genSolidButtonStyle","genOutlinedDashedButtonStyle","genDashedButtonStyle","genFilledButtonStyle","genTextLinkButtonStyle","genDefaultButtonStyle","genPrimaryButtonStyle","genDangerousStyle","genColorButtonStyle","hoverColor","lightHoverColor","activeColor","genPresetColorStyle","genCompatibleButtonStyle","genButtonStyle","genSizeBaseButtonStyle","baseToken","genSizeSmallButtonStyle","smallToken","genSizeLargeButtonStyle","largeToken","genBlockButtonStyle","buttonToken","genGroupStyle","compactItemBorder","parentCls","focusElCls","borderElCls","childCombinator","hoverEffects","compactItemBorderRadius","genCompactItemStyle","compactCls","compactItemVerticalBorder","genCompactItemVerticalStyle","genButtonCompactStyle","insetOffset","getCompactBorderStyle","ButtonTypeMap","customizeSize","customDisabled","iconPosition","ghost","htmlType","customClassNames","customStyle","mergedType","mergedColor","mergedVariant","colorVariantPair","mergedColorText","contextAutoInsertSpace","mergedInsertSpace","groupSize","loadingOrDelay","getLoadingConfig","innerLoading","setLoading","hasTwoCNChar","setHasTwoCNChar","buttonRef","isMountRef","delayTimer","buttonText","handleClick","sizeClassNameMap","large","small","sizeFullName","ctxSize","iconType","linkButtonRestProps","fullStyle","iconClasses","iconStyle","DefaultLoadingIcon","kids","buttonNode","Compact","Wave","Group","__ANT_BUTTON","isPresetSize","isValidGapNumber","SpaceContext","latestIndex","SpaceContextProvider","Space","contextSize","horizontalSize","verticalSize","isPresetVerticalSize","isPresetHorizontalSize","isValidVerticalSize","isValidHorizontalSize","mergedAlign","itemClassName","spaceContext","gapStyle","flexWrap","DropdownButton","buttonsRender","buttonPrefixCls","dropdownProps","leftButton","rightButton","leftButtonToRender","rightButtonToRender","InternalDropdown","responsiveArray","useResponsiveObserver","responsiveMap","getResponsiveMap","indexableToken","revBreakpoints","breakpointUpper","screenMin","screen","screenMax","nextScreenMin","validateBreakpoints","subUid","screens","matchHandlers","pointMap","paramToken","unregister","matchMediaQuery","useForceUpdate","refreshOnChange","screensRef","responsiveObserver","supportScreens","avatarBg","avatarColor","containerSize","containerSizeLG","containerSizeSM","textFontSize","textFontSizeLG","textFontSizeSM","avatarSizeStyle","objectFit","groupOverlapping","groupSpace","avatarToken","InternalAvatar","setScale","isImgExist","setIsImgExist","avatarNodeRef","avatarChildrenRef","avatarNodeMergedRef","avatarCtx","AvatarContext","setScaleParam","childrenWidth","nodeWidth","handleImgLoadError","srcSet","alt","draggable","needResponsive","useBreakpoint","responsiveSizeStyle","currentBreakpoint","currentSize","hasImageElement","mergedShape","sizeStyle","childrenToRender","transformString","childrenStyle","WebkitTransform","getRenderPropValue","popoverColor","titleMinWidth","innerPadding","titleMarginBottom","popoverBg","titleBorderBottom","innerContentPadding","titlePadding","genColorStyle","popoverToken","titlePaddingBlockDist","popoverTitlePaddingBlockTop","popoverTitlePaddingBlockBottom","popoverPaddingHorizontal","RawPurePanel","contentNode","popoverClassNames","settingOpen","AvatarContextProvider","avatarContextValue","maxStyle","maxPopoverPlacement","maxPopoverTrigger","childrenWithProps","mergeCount","numOfChildren","childrenShow","childrenHidden","mergeStyle","mergePopoverTrigger","mergePopoverPlacement","Avatar","AvatarGroup","antStatusProcessing","antZoomBadgeIn","antZoomBadgeOut","antNoWrapperZoomBadgeIn","antNoWrapperZoomBadgeOut","antBadgeLoadingCircle","badgeFontHeight","badgeShadowSize","badgeTextColor","badgeColor","badgeColorHover","badgeShadowColor","badgeProcessingDuration","badgeRibbonOffset","badgeRibbonCornerTransform","badgeRibbonCornerFilter","indicatorZIndex","indicatorHeight","indicatorHeightSM","dotSize","textFontWeight","statusSize","numberPrefixCls","colorPreset","bdi","unicodeBidi","WebkitTransformStyle","WebkitBackfaceVisibility","genSharedBadgeStyle","ribbonPrefixCls","ribbonWrapperPrefixCls","statusRibbonPreset","borderBlockEndColor","genRibbonStyle","wrapperCls","colorInPreset","ribbonCls","colorStyle","cornerColorStyle","UnitNumber","originCount","prevCount","setPrevCount","onTransitionEnd","unitNodes","timer","unitNumberList","singleUnit","newProps","numberNodes","numberList","SingleNumber","oriProps","Badge","scrollNumberPrefixCls","customizeScrollNumberPrefixCls","overflowCount","dot","showZero","numberedDisplayCount","hasStatus","showAsDot","mergedCount","countRef","livingCount","displayCountRef","isDotRef","statusTextNode","displayNode","statusCls","classnames","indicator","badgeClassName","statusTextColor","isDot","scrollNumberCls","scrollNumberStyle","ScrollNumber","Ribbon","CheckCircleFilled","CheckCircleFilledSvg","CloseCircleFilled","CloseCircleFilledSvg","ExclamationCircleFilled","ExclamationCircleFilledSvg","InfoCircleFilled","InfoCircleFilledSvg","useLocale","fullLocale","defaultLocaleData","localeFromContext","localeCode","isThenable","thing","buttonProps","emitEvent","isSilent","quitOnNullishReturnValue","actionFn","clickedRef","onInternalClose","timeoutId","preventScroll","returnValueOfOnOk","handlePromiseOnOk","ModalContext","ModalContextProvider","ConfirmCancelBtn","autoFocusButton","cancelButtonProps","cancelTextLocale","mergedOkCancel","onCancel","onConfirm","ActionButton","ConfirmOkBtn","okButtonProps","okTextLocale","okType","onOk","CloseOutlined","CloseOutlinedSvg","RefContext","propList","pickAttrs","mergedConfig","ariaOnly","aria","getMotionName","getScroll","sentinelStyle","entityStyle","ariaId","closable","closeIcon","onClose","bodyStyle","bodyProps","modalRender","onMouseDown","onMouseUp","modalClassNames","modalStyles","panelRef","panel","sentinelStartRef","sentinelEndRef","_sentinelStartRef$cur","changeActive","contentStyle","footerNode","headerNode","closableObj","ariaProps","closeBtnIsDisabled","closerNode","MemoChildren","Content","destroyOnClose","mousePosition","dialogRef","setTransformOrigin","elementOffset","Panel","maskProps","_props$keyboard","keyboard","_props$focusTriggerAf","focusTriggerAfterClose","wrapStyle","wrapClassName","wrapProps","afterClose","_props$closable","_props$mask","maskStyle","lastOutSideActiveElementRef","contentRef","animatedVisible","setAnimatedVisible","contentClickRef","contentTimeoutRef","onWrapperClick","_contentRef$current","focusDialogContent","DialogWrap","_props$destroyOnClose","_afterClose","refContext","Dialog","pickClosable","useClosableConfig","closableCollection","closableConfig","assignWithoutUndefined","objList","EmptyFallbackCloseCollection","useClosable","propCloseCollection","contextCloseCollection","fallbackCloseCollection","propCloseConfig","contextCloseConfig","mergedFallbackCloseCollection","mergedClosableConfig","closeIconRender","mergedCloseIcon","shapeCls","skeletonClsLoading","genSkeletonElementCommonSize","genSkeletonElementAvatarSize","genSkeletonColor","skeletonLoadingBackground","skeletonLoadingMotionDuration","genSkeletonElementInputSize","genSkeletonElementAvatar","skeletonAvatarCls","gradientFromColor","genSkeletonElementInput","skeletonInputCls","genSkeletonElementImageSize","genSkeletonElementImage","skeletonImageCls","imageSizeBase","genSkeletonElementButtonShape","buttonCls","skeletonButtonCls","genSkeletonElementButtonSize","genSkeletonElementButton","skeletonTitleCls","skeletonParagraphCls","titleHeight","blockRadius","paragraphLiHeight","paragraphMarginTop","marginBlockStart","skeletonToken","gradientToColor","colorGradientEnd","viewBox","rowList","getComponentProps","Skeleton","paragraph","hasAvatar","hasTitle","hasParagraph","avatarNode","avatarProps","getAvatarBasicProps","$title","paragraphNode","titleProps","getTitleBasicProps","Title","paragraphProps","basicProps","getParagraphBasicProps","Paragraph","SkeletonAvatar","Input","SkeletonInput","SkeletonImage","SkeletonNode","voidFunc","WatermarkContext","usePanelRef","panelSelector","watermark","panelEleRef","innerContentEle","NormalCancelBtn","NormalOkBtn","confirmLoading","renderCloseIcon","Footer","btnCtxValue","btnCtxValueMemo","OkBtn","CancelBtn","genGridColStyle","genGridStyle","genLoopGridColumnsStyle","gridColumns","gridColumnsStyle","useRowStyle","flexFlow","prepareRowComponentToken","getMediaSize","useColStyle","gridToken","gridMediaSizesMap","genGridMediaStyle","screenSize","prepareColComponentToken","fadeIn","fadeOut","initFadeMotion","sameLevel","genModalMaskStyle","WebkitOverflowScrolling","genModalStyle","titleColor","titleFontSize","titleLineHeight","contentBg","contentPadding","modalHeaderHeight","modalCloseBtnSize","modalCloseIconColor","modalCloseIconHoverColor","headerMarginBottom","headerBorderBottom","bodyPadding","footerMarginTop","borderTop","footerBorderTop","footerBorderRadius","genRTLStyle","genResponsiveWidthStyle","responsiveStyles","headerPaddingVertical","headerFontSize","headerLineHeight","modalFooterBorderColorSplit","modalFooterBorderStyle","modalFooterBorderWidth","modalConfirmIconSize","modalTitleHeight","confirmBodyPadding","confirmIconMarginInlineEnd","confirmBtnsMarginTop","modalToken","getClickPosition","modalContext","handleCancel","centered","wrapClassNameExtended","dialogFooter","mergedClosable","numWidth","responsiveWidth","responsiveWidthVars","vars","breakpointWidth","genModalConfirmStyle","confirmComponentCls","ConfirmContent","confirmPrefixCls","okCancel","staticLocale","resetProps","mergedLocale","footerOriginNode","bodyCls","Confirm","ConfirmDialog","mergedZIndex","triggerCancel","defaultRootPrefixCls","ConfirmDialogWrapper","mergedGetContainer","confirm","createDocumentFragment","reactUnmount","_a2","destroyFns","dom","configUpdate","withWarn","withInfo","withSuccess","withError","withConfirm","additionalProps","HookModal","hookAfterClose","innerConfig","setInnerConfig","newConfig","originConfig","contextLocale","ElementsHolder","patchElement","setElements","originElements","usePatchElement","actionQueue","setActionQueue","getConfirmFunc","withFunc","modalRef","resolvePromise","closeFunc","silent","confirmed","destroyAction","updateAction","modalWarn","OriginModal","useModal","destroyAll","UserOutlined","UserOutlinedSvg","CarryOutOutlined","CarryOutOutlinedSvg","LogoutOutlined","LogoutOutlinedSvg","LoginOutlined","LoginOutlinedSvg","UserAddOutlined","UserAddOutlinedSvg","HomeOutlined","HomeOutlinedSvg","SearchOutlined","SearchOutlinedSvg","ShoppingCartOutlined","ShoppingCartOutlinedSvg","defaultNoopBatch","nullListeners","notify","createSubscription","parentSub","subscriptionsAmount","selfSubscribed","handleChangeWrapper","subscription","onStateChange","trySubscribe","addNestedSub","createListenerCollection","tryUnsubscribe","cleanupListener","removed","notifyNestedSubs","getListeners","isReactNative","isRunningInReactNative","product","getUseIsomorphicLayoutEffect","ContextKey","gT","contextMap","realContext","ReactReduxContext","Provider_default","serverState","getServerState","previousState","getState","createReduxContextHook","useReduxContext","createStoreHook","useReduxContext2","useStore2","useStore","withTypes","createDispatchHook","useDispatch2","useDispatch","refEquality","createSelectorHook","useSelector2","equalityFnOrOptions","equalityFn","reduxContext","wrappedSelector","selectedState","useSelector","formatProdErrorMessage","symbol_observable_default","observable","randomString","actionTypes_default","INIT","REPLACE","PROBE_UNKNOWN_ACTION","createStore","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","listenerIdCounter","isDispatching","ensureCanMutateNextListeners","listenerId","replaceReducer","nextReducer","outerSubscribe","observeState","observerAsObserver","combineReducers","reducers","reducerKeys","finalReducers","finalReducerKeys","shapeAssertionError","assertReducerShape","hasChanged","nextState","previousStateForKey","nextStateForKey","compose","createThunkMiddleware","extraArgument","thunk","withExtraArgument","NOTHING","DRAFTABLE","DRAFT_STATE","die","isDraft","isDraftable","iter","getArchtype","type_","propOrOldValue","latest","copy_","base_","shallowCopy","isPlain","descriptors","freeze","dontMutateFrozenCollections","currentScope","plugins","getPlugin","pluginKey","plugin","getCurrentScope","usePatchesInScope","patchListener","patches_","inversePatches_","patchListener_","revokeScope","leaveScope","drafts_","revokeDraft","parent_","enterScope","immer2","immer_","canAutoFreeze_","unfinalizedDrafts_","draft","revoke_","revoked_","processResult","baseDraft","modified_","finalize","maybeFreeze","generateReplacementPatches_","rootScope","childValue","finalizeProperty","scope_","finalized_","resultEach","isSet2","generatePatches_","parentState","targetObject","rootPath","targetIsSet","assigned_","autoFreeze_","objectTraps","getDescriptorFromProto","draft_","readPropFromProto","prepareCopy","createProxy","current2","markChanged","deleteProperty","arrayTraps","useStrictShallowCopy_","proxyMap_","proxySet_","isManual_","traps","revoke","revocable","createProxyProxy","currentImpl","immer","produce","recipe","defaultBase","base2","produceWithPatches","patches","inversePatches","autoFreeze","setAutoFreeze","useStrictShallowCopy","setUseStrictShallowCopy","createDraft","finishDraft","applyPatches","patch","applyPatchesImpl","applyPatches_","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","hasMatchFunction","__REDUX_DEVTOOLS_EXTENSION__","createAction","prepareAction","actionCreator","prepared","isAction","Tuple","_Tuple","species","freezeDraftable","createNextState","getOrInsertComputed","SHOULD_AUTOBATCH","createQueueWithTimer","buildGetDefaultEnhancers","middlewareEnhancer","autoBatch","enhancerArray","notifying","shouldNotifyAtEndOfTick","notificationQueued","queueCallback","queueNotification","notifyListeners","listener2","wrappedListener","autoBatchEnhancer","executeReducerBuilderCallback","builderCallback","actionsMap","actionMatchers","defaultCaseReducer","builder","addCase","typeOrActionCreator","addMatcher","addDefaultCase","isAnyOf","matchers","nanoid","commonProperties","RejectWithValue","_type","FulfillWithMeta","miniSerializeError","simpleError","createAsyncThunk","createAsyncThunk2","typePrefix","payloadCreator","requestId","requestStatus","serializeError","rejectedWithValue","aborted","idGenerator","abortController","AbortController","abortHandler","abortReason","abort","finalAction","conditionResult","signal","abortedPromise","getPendingMeta","rejectWithValue","fulfillWithValue","dispatchConditionRejection","unwrap","unwrapResult","asyncThunkSymbol","actionKey","buildCreateSlice","creators","cAT","asyncThunk","reducerPath","_reducerDefinitionType","caseReducer","preparedReducer","buildReducerCreators","reducerNames","sliceCaseReducersByName","sliceCaseReducersByType","actionCreators","sliceMatchers","contextMethods","reducer2","exposeAction","name2","exposeCaseReducer","buildReducer","extraReducers","finalCaseReducers","initialState","mapOrBuilderCallback","getInitialState","finalActionMatchers","finalDefaultCaseReducer","frozenInitialState","caseReducers","isDraft2","isDraftable2","createNextState2","createReducer","sM","reducerName","reducerDefinition","reducerDetails","createNotation","isAsyncThunkSliceReducerDefinition","maybeReducerWithPrepare","prepareCallback","isCaseReducerWithPrepareDefinition","handleNormalReducerDefinition","handleThunkCaseReducerDefinition","selectSelf","injectedSelectorCache","_reducer","makeSelectorProps","reducerPath2","injected","selectSlice","sliceState","getSelectors","selectState","selectorCache","selectors","wrapSelector","injectInto","injectable","pathOpt","newReducerPath","rootState","_len11","_key11","unwrapped","createSlice","kindOf","kindOfTest","typeOfTest","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","_global","isContextDefined","TypedArray","isHTMLForm","reduceDescriptors","reducedDescriptors","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","_setImmediate","setImmediateSupported","postMessageSupported","isFormData","FormData","isStream","pipe","caseless","stripBOM","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","searchString","forEachEntry","matchAll","regExp","freezeMethods","toObjectSet","arrayOrString","toCamelCase","toFiniteNumber","generateString","isSpecCompliantForm","toJSONObject","reducedValue","AxiosError","utils","fileName","columnNumber","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","predicates","formData","metaTokens","visitor","defaultVisitor","useBlob","convertValue","isFlatArray","exposedHelpers","build","AxiosURLSearchParams","_pairs","toFormData","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","use","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams","protocols","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","platform","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","transitional","transitionalDefaults","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","formDataToJSON","setContentType","helpers","toURLEncodedForm","formSerializer","_FormData","env","rawValue","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","parseHeaders","tokensRE","parseTokens","deleted","deleteHeader","normalized","formatHeader","targets","asStrings","accessor","accessors","defineAccessor","accessorName","arg3","buildAccessors","headerValue","transformData","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","samplesCount","timestamps","firstSampleTS","chunkLength","startedAt","bytesCount","passed","freq","timestamp","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","speedometer","lengthComputable","progressBytes","estimated","progressEventDecorator","throttled","asyncDecorator","isMSIE","expires","secure","cookie","toGMTString","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withCredentials","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","username","isURLSameOrigin","xsrfValue","cookies","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","responseHeaders","getAllResponseHeaders","onreadystatechange","responseURL","onabort","ECONNABORTED","ERR_NETWORK","timeoutErrorMessage","ETIMEDOUT","setRequestHeader","parseProtocol","composeSignals","signals","streamChunk","chunkSize","readStream","reader","getReader","trackStream","onProgress","readBytes","ReadableStream","loadedBytes","enqueue","highWaterMark","isFetchSupported","Request","Response","isReadableStreamSupported","encodeText","TextEncoder","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","_request","getBodyLength","knownAdapters","http","xhrAdapter","fetchOptions","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","isCredentialsSupported","credentials","isStreamResponse","responseContentLength","responseData","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","deprecatedWarnings","formatMessage","ERR_DEPRECATED","spelling","correctSpelling","assertOptions","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","InterceptorManager","configOrUrl","function","baseUrl","withXsrfToken","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","responseInterceptorChain","getUri","generateHTTPMethod","isForm","CancelToken","executor","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","Cancel","isAxiosError","formToJSON","getAdapter","randomUUID","crypto","getRandomValues","rnds8","byteToHex","unsafeStringify","rnds","rng","RangeError","loadCartFromLocalStorage","savedCart","localStorage","saveCartToLocalStorage","cart","totalItems","quantity","cartId","uuidv4","addToCart","cartItem","productId","productID","price","getCartById","updateCartItem","deleteCartItem","cartSlice","addCart","itemIndex","removeFromCart","clearCart","setCartItems","existingItemIndex","API_BASE_URL","createCustomer","customerData","_error$response","fetchCustomers","_error$response2","loginCustomer","contactNumber","matchingCustomer","customer","customerSlice","currentCustomer","currentCustomerDetails","customerList","logoutCustomer","clearCustomers","setCustomer","selectedCustomer","clearSelectedCustomer","ResponseCode","newCustomer","_action$error","_action$error2","ATTRIBUTE_NAMES","TAG_NAMES","BODY","HEAD","HTML","LINK","NOSCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","createClass","protoProps","staticProps","objectWithoutProperties","encodeSpecialCharacters","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","objectAssign","rafPolyfill","clock","currentTime","cafPolyfill","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","_helmetCallback","commitTagChanges","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","indexToSave","headElement","tagNodes","indexToDelete","newElement","styleSheet","existingTag","isEqualNode","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","generateTitleAsReactComponent","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","_ref$title","HelmetExport","_class","HelmetWrapper","classCallCheck","possibleConstructorReturn","nextProps","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","initAttributes","convertReactPropstoHtmlAttributes","propTypes","defaultTitle","titleTemplate","mappedState","Helmet","withSideEffect","renderStatic","initInputToken","inputAffixPadding","initComponentToken","addonBg","activeBorderColor","hoverBorderColor","activeShadow","errorActiveShadow","warningActiveShadow","hoverBg","activeBg","inputFontSize","inputFontSizeLG","inputFontSizeSM","genHoverStyle","genBaseOutlinedStyle","genOutlinedStatusStyle","affixColor","genOutlinedStyle","extraStyles","genOutlinedGroupStatusStyle","addonBorderColor","addonColor","genOutlinedGroupStyle","genBorderlessStyle","genBaseFilledStyle","inputColor","genFilledStatusStyle","genFilledStyle","genFilledGroupStatusStyle","genFilledGroupStyle","genBaseUnderlinedStyle","genUnderlinedStatusStyle","genUnderlinedStyle","genPlaceholderStyle","genInputLargeStyle","genInputSmallStyle","genBasicInputStyle","genInputGroupStyle","borderCollapse","borderSpacing","borderInlineEndWidth","genInputStyle","colorSmallPadding","genAllowClearStyle","genAffixStyle","affixCls","affixClsDisabled","genSearchInputStyle","searchPrefixCls","insetBlockStart","insetBlockEnd","genRangeStyle","useSharedStyle","inputToken","inputPrefixCls","formItemContext","groupFormItemContext","onBlur","cloneEvent","newEvent","setSelectionRange","resolveOnChange","triggerFocus","_props2","_props3","inputEl","inputElement","addonBefore","addonAfter","readOnly","focused","allowClear","handleReset","dataAttrs","onClear","AffixWrapperComponent","affixWrapper","GroupWrapperComponent","groupWrapper","WrapperComponent","GroupAddonComponent","groupAddon","hasAffix","hasPrefixSuffix","clsx","groupRef","clearIcon","needClear","clearIconCls","affixWrapperPrefixCls","affixWrapperCls","suffixNode","_containerRef$current","hasAddon","addonCls","groupWrapperCls","mergedWrapperClassName","mergedGroupClassName","useCount","showCount","formatter","showFormatter","strategy","autoComplete","onPressEnter","onKeyUp","htmlSize","_props$type","_onCompositionStart","onCompositionStart","onCompositionEnd","setFocused","compositionRef","keyLockRef","inputRef","setSelection","countConfig","valueLength","isOutOfRange","_holderRef$current","_inputRef$current","_inputRef$current2","_inputRef$current3","triggerChange","_inputRef$current4","_inputRef$current5","cutValue","exceedFormatter","_inputRef$current6","onInternalChange","onInternalCompositionEnd","handleKeyUp","handleFocus","handleBlur","outOfRangeCls","BaseInput","hasMaxLength","dataCount","getSuffix","getInputElement","mergedAllowClear","getStatusClassNames","getMergedStatus","contextStatus","customStatus","legacyBordered","configVariant","componentConfig","ctxVariant","configComponentVariant","useRemovePasswordTimeout","triggerOnMount","removePasswordTimeoutRef","removePasswordTimeout","bordered","customVariant","contextAllowClear","contextAutoComplete","wrapSharedCSSVar","mergedStatus","inputHasPrefixSuffix","getAllowClear","enableVariantCls","useVariant","RcInput","genOTPStyle","onActiveChange","internalValue","syncSelection","inputEle","onInput","strToArr","inputMode","domAttrs","proxyFormContext","internalFormatter","valueCells","setValueCells","triggerValueCellsChange","nextValueCells","patchValue","nextCells","formattedValue","onInputChange","onInputActiveChange","inputSharedProps","singleValue","OTPInput","renderSeparator","EyeInvisibleOutlined","EyeInvisibleOutlinedSvg","EyeOutlined","EyeOutlinedSvg","defaultIconRender","actionMap","click","hover","visibilityToggle","iconRender","visibilityControlled","setVisible","customizeInputPrefixCls","suffixIcon","iconTrigger","iconProps","getIcon","inputClassName","omittedProps","enterButton","onSearch","customOnSearch","customOnChange","searchIcon","btnClassName","enterButtonAsElement","isAntdButton","hiddenTextarea","SIZING_STYLE","computedStyleCache","calculateAutoSizeStyle","uiTextNode","useCache","minRows","maxRows","_calculateNodeStyling","paddingSize","borderSize","nodeInfo","sizingStyle","calculateNodeStyling","singleRowHeight","onInternalAutoSize","setMergedValue","textareaRef","needAutoSize","resizeState","setResizeState","autoSizeStyle","setAutoSizeStyle","startResize","textareaStyles","_textareaRef$current","fixFirefoxAutoScroll","resizeRafRef","mergedAutoSizeStyle","_countConfig$max","customValue","textareaResized","setTextareaResized","resizableTextAreaRef","getTextArea","_resizableTextAreaRef","resizableTextArea","_getTextArea","isPureTextArea","ResizableTextArea","textarea","_getTextArea2","genTextAreaStyle","textareaPrefixCls","innerRef","RcTextArea","InternalInput","Search","TextArea","Password","OTP","themeStyle","fillRule","Simple","contentColor","genSharedEmptyStyle","emptyImgHeight","emptyImgHeightMD","emptyImgHeightSM","emptyToken","emptyImgCls","defaultEmptyImg","DefaultEmptyImg","simpleEmptyImg","SimpleEmptyImg","imageStyle","emptyClassNames","des","imageNode","PRESENTED_IMAGE_DEFAULT","PRESENTED_IMAGE_SIMPLE","useMergedPropByScreen","oriProp","setProp","calcMergedAlignOrJustify","curVal","justify","gutter","setScreens","curScreens","setCurScreens","mergedJustify","gutterRef","currentGutter","gutters","getGutter","rowStyle","horizontalGutter","gutterH","gutterV","rowContext","RowContext","DoubleLeftOutlined","DoubleLeftOutlinedSvg","DoubleRightOutlined","DoubleRightOutlinedSvg","defaultPageSizeOptions","_props$pageSizeOption","pageSizeOptions","changeSize","goButton","quickGo","buildOptionText","showSizeChanger","sizeChangerRender","goInputText","setGoInputText","getValidValue","mergeBuildOptionText","KEYCODE","changeSelect","goInput","gotoButton","onSizeChange","showTitle","onKeyPress","itemRender","pager","defaultItemRender","calculatePage","_pageSize","_props$selectPrefixCl","selectPrefixCls","currentProp","_props$defaultCurrent","defaultCurrent","_props$total","pageSizeProp","_props$defaultPageSiz","defaultPageSize","_props$onChange","hideOnSinglePage","_props$showPrevNextJu","showPrevNextJumpers","showQuickJumper","showLessItems","_props$showTitle","_props$onShowSizeChan","onShowSizeChange","_props$locale","zhCN","_props$totalBoundaryS","totalBoundaryShowSizeChanger","showTotal","_props$showSizeChange","_props$itemRender","jumpPrevIcon","jumpNextIcon","prevIcon","nextIcon","paginationRef","setCurrent","internalInputVal","setInternalInputVal","jumpPrevPage","jumpNextPage","getItemIcon","inputValue","allPages","shouldDisplayQuickJumper","handleChange","newPage","hasPrev","hasNext","prevHandle","nextHandle","jumpPrevHandle","jumpNextHandle","runIfEnter","restParams","handleGoTO","jumpPrev","dataOrAriaAttributeProps","totalText","jumpNext","pagerList","pagerProps","prevPage","isReadOnly","simplePager","pageBufferSize","Pager","prevItemTitle","nextItemTitle","jumpPrevContent","jumpNextContent","lastOne","prevButton","renderPrev","prevDisabled","nextDisabled","nextTabIndex","nextButton","renderNext","Options","newCurrent","nextCurrent","customizeIcon","customizeIconProps","_onMouseDown","WebkitUserSelect","unselectable","BaseSelectContext","useLock","lockRef","timeoutRef","_inputNode2","editable","activeDescendantId","_onKeyDown","_onChange","onPaste","_onCompositionEnd","_onBlur","inputNode","_inputNode","originProps","onOriginKeyDown","onOriginChange","onOriginMouseDown","onOriginCompositionStart","onOriginCompositionEnd","onOriginBlur","isBrowserClient","isTitleType","getTitle","_value$key","onPreventMouseDown","searchValue","autoClearSearchValue","showSearch","removeIcon","maxTagCount","maxTagTextLength","_props$maxTagPlacehol","maxTagPlaceholder","omittedValues","tagRender","onToggleOpen","onRemove","onInputPaste","onInputKeyDown","onInputMouseDown","onInputCompositionStart","onInputCompositionEnd","onInputBlur","measureRef","inputWidth","setInputWidth","selectionPrefixCls","inputEditable","defaultRenderSelector","itemDisabled","TransBtn","customizeRenderSelector","isMaxTag","selectionNode","valueItem","displayLabel","strLabel","activeValue","inputChanged","setInputChanged","combobox","hasTextInput","selectionTitle","placeholderNode","Selector","compositionStatusRef","tokenWithEnter","onSearchSubmit","domRef","_useLock2","getInputMouseDown","setInputMouseDown","pastedTextRef","triggerOnSearch","sharedProps","currentKeyCode","isTextAreaElement","HTMLTextAreaElement","replacedText","MultipleSelector","SingleSelector","msTouchAction","inputMouseDown","SelectTrigger","dropdownStyle","dropdownClassName","_props$direction","dropdownAlign","dropdownPrefixCls","popupNode","mergedBuiltinPlacements","getBuiltInPlacements","mergedTransitionName","isNumberPopupWidth","triggerPopupRef","getPopupElement","_triggerPopupRef$curr","isValidCount","fillFieldNames","fieldNames","childrenAsData","mergedLabel","groupLabel","injectPropsWithOption","newOption","Polite","DEFAULT_OMIT_PROPS","isMultiple","_customizeRawInputEle","omitDomProps","displayValues","onDisplayValuesChange","emptyOptions","_props$notFoundConten","notFoundContent","getRawInputElement","onDropdownVisibleChange","onActiveValueChange","onSearchSplit","tokenSeparators","OptionList","_props$showAction","mergedShowSearch","domProps","selectorDomRef","selectorRef","listRef","blurRef","_useDelayReset","setBool","cancelLatest","useDelayReset","_useDelayReset2","mockFocused","setMockFocused","cancelSetMockFocused","_selectorRef$current","_selectorRef$current2","_listRef$current","mergedSearchValue","_displayValues$","customizeInputElement","customizeRawInputElement","customizeRawInputRef","rendered","setRendered","innerOpen","setInnerOpen","emptyListContent","newOpen","tokenSeparator","SelectContext","rawValues","onInternalSearch","searchText","fromTyping","isCompositing","newSearchText","separatedList","separate","restTokens","prevList","unitStr","getSeparatedContent","patchLabels","getClearLock","setClearLock","focusRef","activeTimeoutIds","onTriggerVisibleChange","customizedTrigger","onGlobalMouseDown","composed","useSelectTriggerControl","_triggerRef$current2","arrowNode","baseSelectContext","toggleOpen","showSuffixIcon","_useAllowClear","onClearMouseDown","mergedClearIcon","useAllowClear","_selectorRef$current4","clearNode","optionList","mergedClassName","selectorNode","newValues","_selectorRef$current3","restArgs","_listRef$current2","clearLock","isEnterKey","cloneDisplayValues","removedDisplayValue","_listRef$current3","OptGroup","isSelectOptGroup","Option","isSelectOption","Filler","onInnerResize","innerProps","outerStyle","refFunc","useDiffItem","onDiff","prevData","setPrevData","diffItem","setDiffItem","originList","targetList","shortList","longList","originLen","targetLen","notExistKey","__EMPTY_ITEM__","getItemKey","diffIndex","shortKey","findListDiffIndex","isScrollAtTop","isScrollAtBottom","isScrollAtLeft","isScrollAtRight","lockTimeoutRef","scrollPingRef","isHorizontal","smoothOffset","originScroll","useFrameWheel","inVirtual","horizontalScroll","onWheelDelta","offsetRef","wheelValueRef","isMouseScrollRef","useOriginScroll","wheelDirectionRef","wheelDirectionCleanRef","mergedDeltaX","mergedDeltaY","absX","absY","_virtualHandled","isFF","patchMultiple","onWheelY","onWheelX","CacheMap","maps","parseNumber","SMOOTH_PTG","smoothScrollOffset","getPageXY","scrollOffset","scrollRange","onStartMove","onStopMove","spinSize","propsThumbStyle","thumbStyle","showScrollBar","dragging","setDragging","pageXY","setPageXY","startTop","setStartTop","isLTR","scrollbarRef","thumbRef","visibleTimeoutRef","delayHidden","enableScrollRange","enableOffsetRange","stateRef","onThumbMouseDown","onScrollbarTouchStart","scrollbarEle","thumbEle","enableScrollRangeRef","enableOffsetRangeRef","moveRafId","_stateRef$current","stateDragging","statePageY","stateStartTop","newTop","tmpEnableScrollRange","tmpEnableOffsetRange","ptg","newScrollTop","scrollbarPrefixCls","containerStyle","getSpinSize","EMPTY_DATA","ScrollStyle","overflowAnchor","RawList","_props$fullHeight","fullHeight","onVirtualScroll","extraRender","_props$showScrollBar","_useHeights","onItemAdd","onItemRemove","updatedMark","setUpdatedMark","instanceRef","heightsRef","promiseIdRef","cancelRaf","collectHeight","sync","doCollect","changed","_getComputedStyle","totalHeight","useHeights","_useHeights2","setInstanceRef","heights","heightUpdatedMark","useVirtual","containerHeight","curr","isRTL","componentRef","fillerInnerRef","setOffsetTop","setOffsetLeft","scrollMoving","setScrollMoving","onScrollbarStartMove","onScrollbarStopMove","syncScrollTop","alignedTop","maxScrollHeightRef","keepInRange","rangeRef","diffItemRef","_React$useMemo","_fillerInnerRef$curre","startOffset","endIndex","itemTop","dataLen","_item","cacheHeight","currentItemBottom","fillerOffset","changedRecord","getRecord","recordKey","diffHeight","resetRecord","setSize","verticalScrollBarRef","horizontalScrollBarRef","horizontalScrollBarSpinSize","verticalScrollBarSpinSize","maxScrollHeight","getVirtualScrollInfo","lastVirtualScrollInfoRef","triggerScroll","nextInfo","onScrollBar","newScrollOffset","newOffset","keepInHorizontalRange","nextOffsetLeft","tmpOffsetLeft","offsetXY","fromHorizontal","_useFrameWheel2","onRawWheel","onFireFoxScroll","cleanUpEvents","touchedRef","touchXRef","touchYRef","intervalRef","onTouchMove","currentX","currentY","_isHorizontal","scrollHandled","onTouchEnd","onTouchStart","useMobileTouchMove","onScrollOffset","mouseDownLock","stopScroll","continueScroll","mouseY","_ele$getBoundingClien","useScrollDrag","onMozMousePixelScroll","scrollingUpAtTop","scrollingDownAtBottom","componentEle","newOffsetLeft","delayHideScrollBar","_verticalScrollBarRef","_horizontalScrollBarR","_scrollTo","triggerFlash","scrollRef","syncState","setSyncState","targetAlign","originAlign","needCollectHeight","newTargetAlign","stackTop","itemBottom","maxLen","_cacheHeight","lastTop","_arg$offset","useScrollTo","getScrollInfo","renderList","getSize","key2Index","bottomList","startKey","endKey","_heights$get","useGetSize","extraContent","listChildren","renderFunc","useChildren","componentStyle","containerProps","ScrollBar","verticalScrollBar","verticalScrollBarThumb","horizontalScrollBar","horizontalScrollBarThumb","_useBaseProps","onPopupScroll","flattenOptions","onActiveValue","defaultActiveFirstOption","menuItemSelectedIcon","listHeight","listItemHeight","optionRender","memoFlattenOptions","overMaxCount","onListMouseDown","scrollIntoView","getEnabledActiveIndex","activeIndex","setActiveIndex","setActive","fromKeyboard","flattenItem","isAriaSelected","onSelectValue","appVersion","nextActiveIndex","_item$data","omitFieldNameList","getLabel","getItemAriaProps","itemData","a11yProps","groupOption","_data$title","groupTitle","optionPrefixCls","optionClassName","iconVisible","optionTitle","retId","getUUID","convertChildrenToData","optionOnly","_ref2$props","_ref$props","convertNodeToOption","optionFilterProp","optionLabelProp","valueOptions","labelOptions","setLabelOptions","labelOptionsMap","dig","isChildren","useRefFunc","funcRef","OMIT_DOM_PROPS","TypedSelect","backfill","_props$autoClearSearc","_props$dropdownMatchS","filterOption","filterSort","_props$listHeight","_props$listItemHeight","labelRender","labelInValue","mergedFilterOption","mergedFieldNames","setSearchValue","parsedOptions","useOptions","convert2LabelValues","draftValues","rawLabel","rawKey","rawDisabled","rawTitle","_val$value","isRawValue","_option$key","setInternalValue","rawLabeledValues","_values$","isComboNoValue","_useCache","labeledValues","_cacheRef$current","prevValueCache","prevOptionCache","patchedValues","_prevValueCache$get","valueCache","optionCache","_useCache2","mergedValues","getMixedOption","firstValue","_mergedValues$","strValue","createTagOption","filteredOptions","fieldOptions","fieldLabel","customizeFilter","upperSearch","wrapOption","subOptions","subItem","useFilterOptions","existOptions","filledSearchOptions","sorter","inputOptions","orderedFilteredOptions","displayOptions","_fillFieldNames","isGroupOption","grpLabel","newVal","_mergedValues$index","returnValues","returnOptions","setActiveValue","accessibilityIndex","setAccessibilityIndex","mergedDefaultActiveFirstOption","_ref3$source","triggerSelect","getSelectEnt","_option$key2","_getSelectEnt2","wrappedValue","_option","_getSelectEnt4","_wrappedValue","_option2","onInternalSelect","cloneValues","mergedSelect","selectContext","realVirtual","BaseSelect","nextValues","formatted","newRawValues","patchValues","newRawValue","buildInPlacements","genItemStyle","optionHeight","optionFontSize","optionLineHeight","optionPadding","selectItemCls","slideUpEnterActive","slideUpAppearActive","slideUpLeaveActive","dropdownPlacementCls","selectedItemCls","optionActiveBg","optionSelectedColor","optionSelectedFontWeight","optionSelectedBg","getMultipleSelectorUnit","multipleSelectItemHeight","INTERNAL_FIXED_ITEM_MARGIN","basePadding","containerPadding","itemLineHeight","genOverflowStyle","multipleItemColorDisabled","multipleItemBorderColorDisabled","selectOverflowPrefixCls","alignSelf","genSelectionStyle","selectItemHeight","selectItemDist","selectHeight","getSelectItemStyle","multipleSelectorUnit","multipleSelectorBgDisabled","inputPaddingHorizontalBase","genSizeStyle","rawStyle","multipleItemHeightSM","multipleItemHeightLG","selectHeightWithoutBorder","WebkitAppearance","showArrowPaddingInlineEnd","genSingleStyle","inputPaddingHorizontalSM","singleItemHeightLG","selectorBg","hoverBorderHover","activeOutlineColor","multipleItemBg","multipleItemBorderColor","genSelectorStyle","getSearchInputWithoutBorderStyle","appearance","selectAffixPadding","genSelectStyle","genMultipleStyle","genDropdownStyle","selectToken","multipleItemHeight","genVariantsStyle","dblPaddingXXS","dblLineWidth","clearBg","CheckOutlined","CheckOutlinedSvg","DownOutlined","DownOutlinedSvg","useIcons","getSuffixIconNode","arrowIcon","mergedSuffixIcon","mergedRemoveIcon","SECRET_COMBOBOX_MODE_DO_NOT_USE","InternalSelect","customListItemHeight","propDirection","customizeVariant","renderEmpty","contextDirection","contextPopupMatchSelectWidth","contextSelect","useVariants","useShowArrow","mergedPopupMatchSelectWidth","mergedNotFound","DefaultRenderEmpty","selectProps","mergedPopupClassName","RcSelect","Select","genPaginationDisabledStyle","itemActiveBgDisabled","itemActiveColorDisabled","genPaginationMiniStyle","itemSizeSM","paginationMiniOptionsMarginInlineStart","miniOptionsSizeChangerTop","paginationMiniQuickJumperInputWidth","genPaginationSimpleStyle","paginationItemPaddingInline","itemInputBg","inputOutlineOffset","genPaginationJumpStyle","paginationEllipsisLetterSpacing","paginationEllipsisTextIndent","itemSize","paginationSlashMarginInlineEnd","paginationSlashMarginInlineStart","genPaginationItemStyle","genPaginationStyle","genPaginationFocusStyle","itemLinkBg","paginationToken","genBorderedStyle","useShowSizeChanger","customizeSelectPrefixCls","customLocale","selectComponentClass","contextShowSizeChangerConfig","isSmall","enUS","propShowSizeChanger","propSizeChangerSelectProps","contextShowSizeChanger","contextSizeChangerSelectProps","mergedShowSizeChanger","mergedShowSizeChangerSelectProps","SizeChanger","mergedPageSizeOptions","iconsProps","ellipsis","extendedClassName","BorderedStyle","RcPagination","ariaLabel","sizeChangerClassName","propSizeChangerClassName","propSizeChangerOnChange","selectedValue","nextSize","_ref$atBegin","atBegin","timeoutID","_ref$noTrailing","noTrailing","_ref$noLeading","noLeading","_ref$debounceMode","debounceMode","cancelled","lastExec","clearExistingTimeout","arguments_","elapsed","_ref2$upcomingOnly","upcomingOnly","circumference","CustomCircle","dotClassName","hasCircleCls","viewSize","holderClassName","hideClassName","setRender","safePtg","circleStyle","Looper","Progress","Indicator","antSpinMove","antRotate","genSpinStyle","dotSizeSM","dotSizeLG","spinDotDefault","animationDirection","animationDelay","strokeLinecap","spinToken","STEP_BUCKETS","defaultIndicator","Spin","spinning","customSpinning","tip","wrapperClassName","fullscreen","contextIndicator","setSpinning","shouldDelay","mergedPercent","mockPercent","setMockPercent","mockIntervalRef","restPTG","stepPtg","usePercent","showSpinning","isNestedPattern","spinClassName","containerClassName","mergedIndicator","spinElement","setDefaultIndicator","parseFlex","sizes","sizeClassObj","sizeProps","propSize","customizeClassNames","colStyle","itemLayout","moduleClass","moduleName","moduleStyle","actionsContent","itemChildren","isItemContainsTextNodeAndNotSingular","Col","listBorderedCls","itemPaddingSM","itemPaddingLG","genResponsiveStyle","itemPadding","emptyTextPadding","metaMarginBottom","avatarMarginRight","descriptionFontSize","marginBlockEnd","borderBlockEnd","listToken","InternalList","loadMore","dataSource","rowKey","paginationObj","paginationCurrent","setPaginationCurrent","paginationSize","setPaginationSize","triggerPaginationEvent","onPaginationChange","onPaginationShowSizeChange","loadingProp","isLoading","paginationProps","extendsObject","largestPage","paginationContent","splitDataSource","childrenContent","renderInnerItem","paginationPosition","addProduct","productData","updateProduct","Productid","restData","updateProductImage","imageFile","fetchAllProducts","dateCreated","fetchProducts","products","fetchProduct","fetchPaginatedProducts","PageNumber","PageSize","fetchProductsByCategory","categoryId","fetchProductsByBrand","brandId","fetchProductsByShowroom","showRoomID","fetchProductById","fetchActiveProducts","fetchInactiveProducts","fetchProductByShowroomAndRecord","showRoomCode","recordNumber","ShowRommCode","RecordNumber","productSlice","filteredProducts","productsByShowroom","productsByCategory","currentProduct","clearProducts","setProductsCache","productsCache","resetProducts","updatedProduct","activeProducts","inactiveProducts","setFilteredProducts","searchQuery","setSearchQuery","debounceSearch","_product$productName","productName","highlightText","_jsxs","_jsx","productImage","toLocaleString","AppstoreOutlined","AppstoreOutlinedSvg","CaretDownOutlined","CaretDownOutlinedSvg","TagOutlined","TagOutlinedSvg","CaretRightOutlined","CaretRightOutlinedSvg","PhoneOutlined","PhoneOutlinedSvg","WhatsAppOutlined","WhatsAppOutlinedSvg","fetchCategories","addCategory","categoryData","updateCategory","category","fetchBrands","addBrand","brandData","updateBrand","_error$response$data","brands","brand","HelpNavbar","selectedCategory","setSelectedCategory","showCategories","setShowCategories","categoryRef","handleClickOutside","stockStatus","categoryName","brandName","AccountDropdown","onLogout","firstName","lastName","handleProfileNavigation","handleOrdersNavigation","customerDetails","accountType","handleLogout","Navbar","_customerDetails$firs","isSearchModalOpen","setIsSearchModalOpen","isAccountDropdownVisible","setAccountDropdownVisible","isMusicModalVisible","setIsMusicModalVisible","isUserLoggedIn","initials","GuestDropdown","frankoLogo","SearchModal","animating","autoplaying","currentDirection","currentLeft","currentSlide","edgeDragged","lazyLoadedList","listWidth","slideCount","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","curX","curY","trackStyle","trackWidth","targetSlide","accessibility","adaptiveHeight","afterChange","appendDots","arrows","autoplay","autoplaySpeed","beforeChange","centerMode","centerPadding","cssEase","customPaging","dotsClass","easing","edgeFriction","fade","focusOnSelect","infinite","initialSlide","lazyLoad","nextArrow","onEdge","onInit","onLazyLoadError","onReInit","pauseOnDotsHover","pauseOnFocus","pauseOnHover","prevArrow","slide","slidesPerRow","slidesToScroll","slidesToShow","speed","swipe","swipeEvent","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","waitForAnimate","asNavFor","lowerBound","upperBound","safePreventDefault","getOnDemandLazySlides","spec","onDemandSlides","lazyStartIndex","lazyEndIndex","slideIndex","lazySlidesOnLeft","lazySlidesOnRight","getSwipeDirection","xDist","yDist","swipeAngle","verticalSwiping","canGoNext","canGo","extractObject","checkNavigable","navigables","getNavigableIndexes","prevNavigable","getSlideCount","centerOffset","swipedSlide","slickList","slides","checkSpecKeys","keysArray","getTrackCSS","trackHeight","unslick","getTotalSlides","WebkitTransition","getTrackAnimateCSS","getTrackLeft","trackRef","slidesToOffset","getPreClones","targetSlideIndex","trackElem","getPostClones","siblingDirection","slidesOnRight","slidesOnLeft","validSettings","getSlideClasses","slickActive","slickCenter","slickCloned","fallbackKey","renderSlides","preCloneSlides","postCloneSlides","childrenCount","childOnClickOptions","childStyle","getSlideStyle","slideClass","slideClasses","preCloneNo","Track","_React$PureComponent","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","mouseEvents","onMouseOver","handleRef","Dots","clickHandler","dotCount","_rightBound","rightBound","_leftBound","leftBound","dotOptions","_callSuper","PrevArrow","prevClasses","prevHandler","prevArrowProps","NextArrow","_React$PureComponent2","nextClasses","nextHandler","nextArrowProps","InnerSlider","slidesToLoad","onLazyLoad","updateState","adaptHeight","autoPlay","lazyLoadTimer","progressiveLazyLoad","onWindowResized","callbackTimers","onfocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","autoplayTimer","prevProps","checkImagesLoad","setTrackStyle","didPropsChange","changeSlide","pause","debouncedResize","resizeWindow","updatedState","trackNode","centerPaddingAdj","initializedState","_trackWidth","_trackLeft","childrenWidths","preClones","postClones","_i2","_trackStyle","currentWidth","trackLeft","imagesCount","loadedCount","prevClickHandler","_index","dontAnimate","_slideHandler","finalSlide","animationLeft","finalLeft","animationSlide","slideHandler","asNavForIndex","innerSlider","firstBatch","indexOffset","previousInt","slideOffset","previousTargetSlide","clickable","keyHandler","ontouchmove","disableBodyScroll","swipeStart","curLeft","swipeLength","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","swipeMove","onSwipe","minSwipe","newSlide","activeSlide","swipeEnd","triggerSlideHandler","enableBodyScroll","playType","play","pauseType","trackProps","onTrackOver","onTrackLeave","selectHandler","dotProps","onDotsLeave","onDotsOver","arrowProps","verticalHeightStyle","centerPaddingStyle","listProps","touchEnd","onTouchCancel","innerSliderProps","listRefHandler","trackRefHandler","ssrState","ssrInit","_i3","_Object$keys","Slider","slickPrev","slickNext","slickGoTo","_responsiveMediaHandlers","breakpoints","breakpt","bQuery","json2mq","media","_this3","resp","newChildren","innerSliderRefHandler","settingName","filterSettings","DotDuration","genCarouselStyle","WebkitTouchCallout","WebkitTapHighlightColor","genArrowsStyle","arrowSize","arrowLength","borderInlineWidth","borderBlockWidth","genDotsStyle","dotOffset","dotWidth","dotHeight","dotGap","dotActiveWidth","genCarouselVerticalStyle","reverseSizeOfDot","genCarouselRtlStyle","dotWidthActive","ArrowButton","dotPosition","customClassName","slickRef","goTo","enableDots","dsClass","dotDurationStyle","dotDuration","SlickCarousel","DrawerContext","parseWidthHeight","DrawerPopup","_pushConfig$distance","_pushConfig","drawerClassNames","rootStyle","maskClassName","drawerRender","_panelRef$current","pushed","setPushed","pushDistance","mergedContext","_parentContext$push","_parentContext$pull","_parentContext$pull2","maskNode","maskRef","motionMaskClassName","motionMaskStyle","wrapperStyle","panelNode","DrawerPanel","_sentinelEndRef$curre","_props$open","_props$autoFocus","_props$width","lastActiveRef","drawerPopupProps","_popupRef$current","_lastActiveRef$curren","headerStyle","footerStyle","drawerStyles","drawerContext","customCloseIconRender","footerClassName","getMoveTranslate","getEnterLeaveStyle","startStyle","endStyle","getFadeStyle","getPanelMotionStyles","genDrawerStyle","footerPaddingBlock","footerPaddingInline","drawerToken","genMotionStyle","defaultPushState","customizeGetContainer","drawerStyle","contentWrapperStyle","drawerClassName","mergedWidth","mergedHeight","propClassNames","propStyles","RcDrawer","motionPlacement","MenuOutlined","MenuOutlinedSvg","postAdvertisment","getAdvertisment","AdsName","getBannerPageAdvertisment","_error$response3","getHomePageAdvertisment","_error$response4","putAdvertisment","Fileid","IndexOrder","AdsNote","FileName","fileToUpload","originFileObj","queryParams","_error$response5","_error$response6","advertisments","backendBaseURL","Header","isMenuOpen","setIsMenuOpen","expandedCategoryId","setExpandedCategoryId","filteredAds","setFilteredAds","advertisment","ban","Carousel","MailOutlined","MailOutlinedSvg","FacebookOutlined","FacebookOutlinedSvg","TwitterOutlined","TwitterOutlinedSvg","DefaultContext","excluded","sourceSymbolKeys","_toPrimitive","_toPropertyKey","Tree2Element","GenIcon","conf","svgProps","computedSize","FaApple","FaGooglePlay","FaTiktok","FaWhatsapp","qrcodegen","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__objRest","exclude","qrcodegen2","_QrCode","errorCorrectionLevel","dataCodewords","msk","modules","MIN_VERSION","MAX_VERSION","drawFunctionPatterns","allCodewords","addEccAndInterleave","drawCodewords","minPenalty","applyMask","drawFormatBits","penalty","getPenaltyScore","assert","ecl","segs","QrSegment","makeSegments","encodeSegments","encodeBinary","seg","makeBytes","dataUsedBits","minVersion","maxVersion","boostEcl","dataCapacityBits2","getNumDataCodewords","usedBits","getTotalBits","newEcl","Ecc","QUARTILE","HIGH","appendBits","modeBits","numChars","numCharCountBits","dataCapacityBits","padByte","getModule","getModules","setFunctionModule","drawFinderPattern","alignPatPos","getAlignmentPatternPositions","numAlign","drawAlignmentPattern","drawVersion","formatBits","dist","xx","ver","numBlocks","NUM_ERROR_CORRECTION_BLOCKS","blockEccLen","ECC_CODEWORDS_PER_BLOCK","rawCodewords","getNumRawDataModules","numShortBlocks","shortBlockLen","blocks","rsDiv","reedSolomonComputeDivisor","ecc","reedSolomonComputeRemainder","vert","runColor","runX","runHistory","PENALTY_N1","finderPenaltyAddHistory","finderPenaltyCountPatterns","PENALTY_N3","finderPenaltyTerminateAndCount","runY","PENALTY_N2","dark","PENALTY_N4","degree","reedSolomonMultiply","factor","coef","core","currentRunColor","currentRunLength","QrCode","_QrSegment","bitData","Mode","BYTE","makeNumeric","NUMERIC","makeAlphanumeric","isAlphanumeric","ALPHANUMERIC_CHARSET","ALPHANUMERIC","toUtf8ByteArray","makeEci","assignVal","ECI","NUMERIC_REGEX","ALPHANUMERIC_REGEX","ccbits","encodeURI","QrCode2","_Ecc","LOW","QrSegment2","_Mode","numBitsCharCount","KANJI","qrcodegen_default","ERROR_LEVEL_MAP","DEFAULT_SIZE","DEFAULT_LEVEL","DEFAULT_BGCOLOR","DEFAULT_FGCOLOR","DEFAULT_INCLUDEMARGIN","DEFAULT_MINVERSION","generatePath","excavateModules","excavation","useQRCode","includeMargin","marginSize","imageSettings","boostLevel","qrcode","accum","numCells","calculatedImageSettings","cells2","margin2","getMarginSize","numCells2","calculatedImageSettings2","defaultSize","excavate","floorX","floorY","getImageSettings","SUPPORTS_PATH2D","Path2D","addPath","QRCodeCanvas","forwardedRef","fgColor","imgSrc","_image","setCanvasRef","isImgLoaded","setIsImageLoaded","cellsToDraw","haveImageToRender","pixelRatio","rdx","cdx","canvasStyle","onLoad","preserveAspectRatio","fgPath","shapeRendering","ShopByBrandsBanner","showArrows","setShowArrows","updateArrowVisibility","_Fragment","scrollBy","behavior","scrollRight","logo","SamsungLogo","InfinixLogo","HmdLogo","TecnoLogo","AppleLogo","HuaweiLogo","itelLogo","hpLogo","skyLogo","navigateToBrand","InfoBanner","homePageAd","setHomePageAd","matchingAd","fileId","imageUrl","speakerImg","accessoriesImg","blenderImg","fanImg","CategoryComponent","_containerRef$current2","fetchShowrooms","fetchHomePageShowrooms","_error$response2$data","addShowroom","showroomData","_error$response3$data","updateShowroom","Showroomid","_error$response4$data","showroomSlice","showrooms","homePageShowrooms","clearShowrooms","showroom","ComboComponent","imageLoading","setImageLoading","containerRefs","_productsByShowroom$s","showRoomName","_containerRefs$curren","_containerRefs$curren2","oldPrice","handleImageLoad","handleImageError","NumberFormat","currency","PhoneDeals","hardcodedCategoryId","timeLeft","setTimeLeft","getCountdown","updateArrows","formatPrice","minimumFractionDigits","maximumFractionDigits","imagePath","LaptopDeals","RefrigeratorDeals","TelevisionDeals","AppliancesDeals","SpeakerDeals","AccessoriesDeals","SamsungDeals","Home","Combo","genAlertTypeStyle","iconColor","alertCls","withDescriptionIconSize","withDescriptionPadding","defaultPadding","genTypeStyle","genActionStyle","iconMapFilled","IconNode","CloseIconNode","isClosable","handleClose","banner","showIcon","closeText","closed","setClosed","internalRef","contextClosable","contextCloseIcon","isShowIcon","mergedAriaProps","errorMessage","errorDescription","Alert","InternalAlert","UpOutlined","UpOutlinedSvg","supportBigInt","BigInt","trimNumber","numStr","negative","splitNumber","integerStr","decimalStr","negativeStr","fullStr","isE","getNumberPrecision","decimalMatch","validateNumber","num2str","MIN_SAFE_INTEGER","BigIntDecimal","nan","trimRet","decimal","decimalLen","decimalLength","getIntegerStr","getDecimalStr","calculator","calDecimalLen","maxDecimalLength","alignDecimal","nextDecimalLength","_trimNumber","hydrateValueStr","isInvalidate","cal","num1","num2","NumberDecimal","maxPrecision","getMiniDecimal","separatorStr","cutOnly","precisionDecimalStr","numberWithoutDecimal","advancedNum","StepHandler","upNode","downNode","upDisabled","downDisabled","onStep","stepTimeoutRef","frameIds","onStepRef","onStopStep","onStepMouseDown","up","loopStep","useMobile","handlerClassName","upClassName","downClassName","safeOnStopStep","sharedHandlerProps","getDecupleSteps","stepStr","getDecimalValue","stringMode","decimalValue","getDecimalIfValidate","InternalInputNumber","_props$step","upHandler","downHandler","_props$changeOnWheel","changeOnWheel","_props$controls","controls","decimalSeparator","_props$changeOnBlur","changeOnBlur","inputProps","setFocus","userTypingRef","shiftKeyRef","setDecimalValue","getPrecision","userTyping","mergedParser","parsedStr","inputValueRef","mergedFormatter","mergedPrecision","setInternalInputValue","setInputValue","maxDecimal","minDecimal","lessEquals","_useCursor","selectionRef","beforeTxt","afterTxt","_selectionRef$current","beforeLastChar","newIndex","useCursor","_useCursor2","recordCursor","restoreCursor","getRangeValue","isInRange","triggerValueUpdate","newDecimal","isRangeValidate","onNextPromise","idRef","cleanUp","useFrame","collectInputValue","inputStr","finalValue","finalDecimal","nextInputStr","onInternalStep","stepDecimal","updatedValue","flushInputValue","parsedValue","onWheel","currentParsedValue","onBeforeInput","inputNumberDomRef","inputFocusRef","extendProps","originProp","genRadiusStyle","genInputNumberStyles","handleHoverColor","handleOpacity","handleBg","handleActiveBg","controlWidth","handleBorderColor","filledHandleBg","borderBlockStart","webkitAppearance","handleWidth","handleVisibleWidth","handleFontSize","genAffixWrapperStyles","inputNumberToken","handleVisible","InputNumber","upIcon","downIcon","controlsTemp","inputNumberClass","RcInputNumber","TypedInputNumber","genSharedDividerStyle","sizePaddingEdgeHorizontal","textPaddingInline","orientationMargin","verticalMarginInline","dividerHorizontalGutterMargin","dividerHorizontalWithTextGutterMargin","borderBlockStartColor","borderInlineStartWidth","dividerToken","dividerClassName","dividerStyle","hasChildren","mergedOrientation","hasMarginStart","hasMarginEnd","memoizedOrientationMargin","EditOutlined","EditOutlinedSvg","DeleteOutlined","DeleteOutlinedSvg","currentQuantity","onUpdate","setQuantity","Cart","transactionNumber","cartItems","checkoutLoading","setCheckoutLoading","isModalVisible","setIsModalVisible","selectedProductId","setSelectedProductId","selectedQuantity","setSelectedQuantity","confirmDeleteItem","setConfirmDeleteItem","renderImage","totalPrice","sortedProducts","pic","handleDelete","handleProceedToCheckout","customerId","customerAccountNumber","UpdateCartModal","refreshCartItems","confirmDelete","fetchOrdersByDate","checkOutOrder","Cartid","orderCode","PaymentMode","paymentService","PaymentAccountNumber","customerAccountType","fetchOrdersByCustomer","fetchOrdersByThirdParty","ThirdPartyAccountNumber","updateOrderTransition","CycleName","OrderId","fetchOrderLifeCycle","_ref11","fetchSalesOrderById","orderId","_ref12","_error$response7","updateOrderDelivery","_ref13","_ref14","address","recipientName","recipientContactNumber","orderNote","geoLocation","Customerid","_error$response8","orderAddress","_ref15","_ref16","OrderCode","RecipientName","RecipientContactNumber","_error$response9","fetchOrderDeliveryAddress","_ref17","_error$response10","orderSlice","salesOrder","deliveryAddress","checkoutDetails","orderAddressDetails","deliveryUpdate","lifeCycle","clearLocalStorage","saveCheckoutDetails","saveAddressDetails","storeLocalOrder","userId","storedOrders","existingOrderIndex","fetchOrdersByUser","clearOrders","updatedOrder","isStyleNameSupport","styleNameList","isStyleSupport","styleValue","isStyleValueSupport","EnterOutlined","EnterOutlinedSvg","getTitleStyles","headingLevel","getTitleStyle","getLinkStyles","kbd","textDecorationSkipInk","strong","blockquote","getEditableStyles","inputShift","MozTransition","getCopyableStyles","genTypographyStyle","titleMarginTop","WebkitBoxOrient","onSave","onEnd","enterIcon","inComposition","lastKeyCode","confirmChange","textAreaClassName","setCopied","copyLoading","setCopyLoading","copyIdRef","cleanCopyId","copyOptions","candidate","toList","useMergedConfig","propConfig","templateConfig","support","useTooltipProps","editConfigText","setContentRef","typographyDirection","componentClassName","CopyOutlined","CopyOutlinedSvg","getNode","defaultNode","needDom","isValidText","iconOnly","tooltips","btnLoading","tooltipNodes","iconNodes","copiedText","copyText","systemStr","copyTitle","MeasureText","spanRef","isExceed","sliceNodes","nodeList","currLen","currentNodeList","nextLen","restLen","STATUS_MEASURE_NONE","STATUS_MEASURE_NO_NEED_ELLIPSIS","lineClipStyle","EllipsisMeasure","enableMeasure","miscDeps","onEllipsis","nodeLen","totalLen","getNodesLen","fullContent","ellipsisCutIndex","setEllipsisCutIndex","cutMidRef","measureWhiteSpaceRef","needEllipsisRef","descRowsEllipsisRef","symbolRowEllipsisRef","canEllipsis","setCanEllipsis","needEllipsis","setNeedEllipsis","ellipsisHeight","setEllipsisHeight","parentWhiteSpace","setParentWhiteSpace","nextWhiteSpace","baseRowsEllipsisHeight","descRowsEllipsisHeight","symbolRowEllipsisHeight","maxRowsHeight","cutMidIndex","minIndex","maxIndex","targetMidIndex","finalContent","enableEllipsis","isEllipsis","copyable","textLocale","typographyRef","editIconRef","textProps","enableEdit","editConfig","editing","setEditing","triggerType","triggerEdit","onStart","prevEditing","usePrevious","onEditClick","onEditChange","onEditCancel","enableCopy","onCopyClick","useCopyClick","isLineClampSupport","setIsLineClampSupport","isTextOverflowSupport","setIsTextOverflowSupport","isJsEllipsis","setIsJsEllipsis","isNativeEllipsis","setIsNativeEllipsis","isNativeVisible","setIsNativeVisible","ellipsisConfig","expandable","isExpanded","setExpanded","defaultExpanded","mergedEnableEllipsis","needMeasureEllipsis","cssEllipsis","setCssEllipsis","canUseCssEllipsis","isMergedEllipsis","cssTextOverflow","cssLineClamp","ellipsisWidth","setEllipsisWidth","onJsEllipsis","jsEllipsis","textEle","currentEllipsis","childDiv","childRect","isEleEllipsis","IntersectionObserver","topAriaLabel","Editable","renderExpand","onExpandClick","onExpand","renderEdit","editTitle","renderOperations","CopyBtn","resizeRef","EllipsisTooltip","Typography","Ellipsis","underline","del","currentContent","needed","wrapperDecorations","renderEllipsis","Base","mergedEllipsis","TITLE_ELE_LIST","OriginTypography","AppConfigContext","_props$duration","showProgress","_props$pauseOnHover","_props$closeIcon","onNoticeClose","forcedHovering","hovering","setHovering","setPercent","spentTime","setSpentTime","mergedHovering","mergedShowProgress","animationFrame","validPercent","noticePrefixCls","_divProps$onMouseEnte","_divProps$onMouseLeav","NotificationContext","_config$offset","_config$threshold","_config$gap","configList","onAllNoticeRemoved","stackConfig","ctxCls","dictRef","latestNotice","setLatestNotice","hoverKeys","setHoverKeys","_useStack2","useStack","_useStack2$","placementMotion","_keys","_keys2","motionIndex","strKey","configClassName","configStyle","configClassNames","configStyles","restConfig","dataIndex","stackStyle","transformX","_dictRef$current$strK","_dictRef$current$strK2","_dictRef$current$strK3","verticalOffset","_dictRef$current$keys","transformY","Notice","notice","renderNotifications","setConfigList","_config$onClose","_list$index","setPlacements","nextPlacements","_config$placement","originPlacements","emptyRef","placementList","placementConfigList","NoticeList","defaultGetContainer","uniqueKey","useNotification","rootConfig","_rootConfig$getContai","shareConfig","setContainer","notificationsRef","contextHolder","Notifications","taskQueue","setTaskQueue","api","oriTaskQueue","tgtTaskQueue","task","oriQueue","genMessageStyle","noticeCls","messageMoveIn","messageMoveOut","noticeStyle","combinedToken","TypeIcon","PureContent","staticPrefixCls","wrapPromiseFn","openFn","closeFn","closePromise","filled","DEFAULT_DURATION","NotificationProvider","Holder","staticGetContainer","useRcNotification","getClassName","getNotificationMotion","keyIndex","useInternalMessage","messageConfig","fakeResult","typeOpen","jointContent","mergedDuration","mergedOnClose","defaultGlobalConfig","getGlobalContext","GlobalHolder","appConfig","GlobalHolderWrapper","setMessageConfig","rootIconPrefixCls","flushNotice","holderFragment","newMessage","fragment","setCloseFn","_message$instance","staticMethods","useMessage","PlusOutlined","PlusOutlinedSvg","activeTabOffset","_options$indicator","_indicator$align","inkStyle","setInkStyle","inkBarRafRef","getLength","cleanInkBarRaf","newInkStyle","defaultState","SPEED_OFF_MULTIPLE","useUpdate","setCount","effectRef","callbackRef","_callbackRef$current","tgt","genDataNodeKey","getRemovable","showAdd","addAriaLabel","onEdit","addIcon","assertExtra","OperationNode","_props$more","more","moreProps","tabBarGutter","removeAriaLabel","onTabClick","selectedKey","setSelectedKey","_moreProps$icon","moreIcon","dropdownPrefix","selectedItemId","dropdownAriaLabel","tab","removable","onRemoveTab","selectOffset","enabledTabs","moreStyle","moreNode","AddButton","_props$tab","renderWrapper","tabCount","currentPosition","tabPrefix","labelNode","btnRef","refObj","_ref$offsetWidth","_ref$offsetHeight","_refObj$current$getBo","getUnitValue","tabPositionTopOrBottom","animated","tabPosition","onTabScroll","TabContext","extraLeftRef","extraRightRef","tabsWrapperRef","tabListRef","operationsRef","innerAddButtonRef","transformLeft","setTransformLeft","_useSyncState4","transformTop","setTransformTop","containerExcludeExtraSize","setContainerExcludeExtraSize","tabContentSize","setTabContentSize","addSize","setAddSize","_useState8","operationSize","setOperationSize","_useUpdateState","batchRef","flushUpdate","useUpdateState","_useUpdateState2","tabSizes","setTabSizes","tabOffsets","holderScrollWidth","_tabs$","lastOffset","rightOffset","_tabs","useOffsets","containerExcludeExtraSizeValue","tabContentSizeValue","addSizeValue","operationSizeValue","needScroll","visibleTabContentValue","operationsHiddenClassName","transformMin","transformMax","alignInRange","touchMovingRef","_useState10","lockAnimation","setLockAnimation","doLockAnimation","clearTouchMoving","onOffset","touchPosition","setTouchPosition","lastTimestamp","setLastTimestamp","lastTimeDiff","setLastTimeDiff","setLastOffset","lastWheelDirectionRef","touchEventsRef","_e$touches$","_e$touches$2","distanceX","distanceY","mixed","onProxyTouchMove","onProxyTouchEnd","useTouchMove","doMove","_useVisibleRange","addNodeSizeValue","operationNodeSizeValue","charUnit","transformSize","useVisibleRange","_useVisibleRange2","visibleStart","visibleEnd","scrollToTab","tabOffset","newTransform","_newTransform","_useState12","focusKey","setFocusKey","_useState14","isMouse","setIsMouse","newKey","firstEnabledTab","lastEnabledTab","removeIndex","removeTab","tabNodeStyle","tabNodes","TabNode","updateTabSizes","_tabListRef$current","newSizes","listRect","_tabListRef$current2","btnNode","_getTabSize","_tab$getBoundingClien","getTabSize","_getTabSize2","onListHolderResize","extraLeftSize","extraRightSize","newAddSize","newOperationSize","tabContentFullSize","startHiddenTabs","endHiddenTabs","hiddenTabs","indicatorStyle","useIndicator","pingLeft","pingRight","pingTop","pingBottom","hasDropdown","wrapPrefix","ExtraContent","inkBar","tabMoving","tabKey","renderTabBar","panes","restTabProps","TabPane","TabNavList","destroyInactiveTabPane","tabPaneAnimated","tabPane","tabPanePrefixCls","paneStyle","paneClassName","itemDestroyInactiveTabPane","tabPaneMotion","defaultActiveKey","_props$tabPosition","tabBarStyle","tabBarExtraContent","mergedAnimated","useAnimateConfig","_tabs$newActiveIndex","newActiveIndex","setMergedId","tabNavBarProps","isActiveChanged","TabNavListWrapper","TabPanelList","genCardStyle","tabsCardPadding","cardBg","cardGutter","dropdownEdgeChildVerticalPadding","tabsDropdownHeight","tabsDropdownWidth","genPositionStyle","horizontalMargin","verticalItemPadding","verticalItemMargin","borderLeft","borderRight","cardPaddingSM","cardPaddingLG","horizontalItemPaddingSM","horizontalItemPaddingLG","titleFontSizeSM","titleFontSizeLG","genTabStyle","itemActiveColor","tabsHorizontalItemMargin","horizontalItemPadding","tabCls","tabsActiveTextShadow","genRtlStyle","tabsHorizontalItemMarginRTL","rtlCls","genTabsStyle","cardHeight","inkBarColor","tabsToken","cardPadding","horizontalItemGutter","horizontalItemMargin","horizontalItemMarginRTL","Tabs","hideAdd","indicatorSize","editType","mergedItems","useLegacyItems","RcTabs","hoverable","genCardHeadStyle","tabsMarginBottom","genCardGridStyle","cardPaddingBase","cardShadow","genCardActionsStyle","actionsLiMargin","cardActionsIconSize","actionsBg","genCardMetaStyle","genCardTypeInnerStyle","genCardLoadingStyle","cardHeadPadding","extraColor","genCardSizeStyle","bodyPaddingSM","headerPaddingSM","headerHeightSM","headerFontSizeSM","cardToken","ActionNode","actionClasses","actionStyle","avatarDom","titleDom","descriptionDom","MetaDetail","Card","headStyle","cover","tabList","activeTabKey","defaultActiveTabKey","tabProps","customStyles","isContainGrid","containGrid","Grid","loadingBlock","hasActiveTabKey","onTabChange","headClasses","titleClasses","extraClasses","mergedHeadStyle","coverClasses","coverDom","bodyClasses","mergedBodyStyle","actionDom","_props$defaultChecked","setRawValue","genCheckboxStyle","checkboxCls","checkboxSize","checkboxToken","useBubbleLock","onOriginInputClick","labelClickLockRef","onLabelClick","InternalCheckbox","indeterminate","skipGroup","checkboxGroup","GroupContext","checkboxRef","registerValue","cancelValue","checkboxProps","toggleOption","checkboxClass","onInputClick","RcCheckbox","registeredValues","setRegisteredValues","memoOptions","Checkbox","optionIndex","prevValues","__ANT_CHECKBOX","CreditCardOutlined","CreditCardOutlinedSvg","fetchShippingCountries","fetchShippingDivisions","countryCode","fetchShippingLocations","divisionCode","shippingSlice","countries","divisions","locations","clearShippingData","_action$error3","shipping","selectedCountry","setSelectedCountry","selectedDivision","setSelectedDivision","selectedLocation","setSelectedLocation","shippingDetails","setShippingDetails","htmlFor","country","countryName","division","divisionName","locationCode","locationName","shippingCharge","handleSaveShippingDetails","selectedLocationDetails","selectedDivisionDetails","locationCharge","GrDeliver","GiTakeMyMoney","CheckoutPage","setAddress","setOrderNote","paymentMethod","setPaymentMethod","addressPromptVisible","setAddressPromptVisible","isAddressAlertVisible","setIsAddressAlertVisible","customerName","setCustomerName","customerNumber","setCustomerNumber","ContactNumber","shippingFee","setShippingFee","storedCart","storedShippingDetails","electronicItems","keyword","calculateTotalAmount","processDirectCheckout","addressDetails","dispatchOrderCheckout","dispatchOrderAddress","checkoutPayload","initiatePayment","totalAmount","encodedCredentials","callbackUrl","returnUrl","merchantAccountNumber","cancellationUrl","clientReference","Authorization","checkoutUrl","handleOpenModal","orderDate","storeCheckoutDetailsInLocalStorage","paymentUrl","ShippingComponent","handleCloseModal","FilterOutlined","FilterOutlinedSvg","filteredBrands","selectedBrandId","showLeftArrow","setShowLeftArrow","showRightArrow","setShowRightArrow","checkScrollPosition","scrollElement","hasScroll","handleResize","scrollBehavior","Brand","minPrice","setMinPrice","maxPrice","setMaxPrice","setCurrentPage","itemsPerPage","imageLoadStates","setImageLoadStates","selectedBrand","lastProductRef","isIntersecting","currentProducts","jsonLdData","RelatedBrands","ShareAltOutlined","ShareAltOutlinedSvg","ProductDetailSkeleton","ProductDetail","isImageModalVisible","setImageModalVisible","isShareModalVisible","setShareModalVisible","isSticky","setIsSticky","isAddingToCart","setIsAddingToCart","viewedProducts","setViewedProducts","viewed","updatedViewed","storedViewed","recentProducts","handleAddToCart","cartData","ecommerce","item_name","item_id","productUrl","handleStickyButton","productDescription","handleFacebookShare","handleWhatsAppShare","EXPAND_COLUMN","INTERNAL_HOOKS","valueRef","eventSelector","nextSelectorValue","createImmutable","ImmutableContext","useImmutableMark","makeImmutable","shouldTriggerRender","refAble","ImmutableComponent","refProps","renderTimesRef","responseImmutable","propsAreEqual","_createImmutable","renderWithProps","getColumnsKey","columnKeys","validateValue","useCellRender","record","renderIndex","shouldCellUpdate","perfRecord","PerfContext","returnCellProps","renderData","prevRecord","nextRecord","_legacyCellProps$colS","_legacyCellProps$rowS","_additionalProps$titl","_classNames","rowType","fixLeft","fixRight","firstFixLeft","lastFixLeft","firstFixRight","lastFixRight","appendNode","_props$additionalProp","cellPrefixCls","TableContext","supportSticky","allColumnsFixedLeft","rowHoverable","_useCellRender2","legacyCellProps","fixedStyle","isFixLeft","isFixRight","mergedColSpan","mergedRowSpan","_useHoverState","cellStartRow","cellRowSpan","startRow","endRow","hoverStartRow","hoverEndRow","onHover","useHoverState","_useHoverState2","_additionalProps$onMo","_additionalProps$onMo2","getTitleFromCellRenderChildren","mergedChildNode","getCellFixedInfo","colStart","colEnd","stickyOffsets","startColumn","endColumn","nextColumn","prevColumn","canLastFix","Summary","_ref$colSpan","SummaryContext","scrollColumnIndex","fixedInfo","flattenColumns","lastColumnIndex","scrollColumn","summaryContext","scrollbar","FooterComponents","fillRecords","indent","childrenColumnName","expandedKeys","getRowKey","useFlattenRecords","useRowInfo","recordIndex","computeRowClassName","expandableType","onTriggerExpand","rowExpandable","onRow","expandRowByClick","rowClassName","nestExpandable","rowSupportExpand","mergedExpandable","hasNestChildren","onInternalTriggerExpand","rowProps","onRowClick","columnsKey","cellComponent","fixHeader","fixColumn","componentWidth","horizonScroll","renderExpandIcon","expandClassName","computedExpandedClassName","getCellProps","rowInfo","colIndex","appendCellNode","additionalCellProps","fixedInfoList","expandIconColumnIndex","indentSize","onCell","_props$indent","RowComponent","rowComponent","scopeCellComponent","expandedRowClassName","expandedRowRender","expandedRef","expandRowNode","expandedClsName","baseRowNode","columnClassName","_getCellProps","rowScope","expandContent","ExpandedRow","MeasureCell","columnKey","onColumnResize","cellRef","MeasureRow","infoList","measureColumnWidth","getComponent","emptyNode","flattenData","perfRef","trComponent","tdComponent","thComponent","BodyRow","INTERNAL_COL_DEFINE","colWidths","columCount","tableLayout","cols","mustInsert","restAdditionalProps","columnType","FixedHolder","noData","stickyTopOffset","stickyBottomOffset","stickyClassName","maxContentScroll","TableComponent","combinationScrollBarSize","setScrollRef","_scrollRef$current","_scrollRef$current2","allFlattenColumnsWithWidth","lastColumn","ScrollBarColumn","onHeaderCell","columnsWithScrollbar","flattenColumnsWithScrollbar","headerStickyOffsets","mergedColumnWidth","cloneColumns","useColumnWidth","ColGroup","CellComponent","onHeaderRow","cellIndex","rootColumns","fillRowCells","currentColIndex","subColumns","hasSubColumns","rowCount","_loop","parseHeaderRows","HeaderRow","parseColWidth","convertChildrenToColumns","nodeChildren","filterHiddenColumns","flatColumns","parsedFixed","subColum","transformColumns","columnTitle","baseColumns","withExpandColumns","expandColIndex","expandColumnIndex","fixedColumn","expandColumn","recordExpandable","mergedColumns","finalColumns","revertForRtl","hasGapFixed","lastLeftIndex","colFixed","_colFixed","firstRightIndex","_useWidthColumns2","missWidthCount","maxFitWidth","restCount","avgWidth","realTotal","filledColumns","colAvgWidth","useWidthColumns","realScrollWidth","useExpand","expandableConfig","legacyExpandableConfig","showExpandColumn","getExpandableProps","expandedRowKeys","defaultExpandedRowKeys","defaultExpandAllRows","onExpandedRowsChange","mergedChildrenColumnName","internalHooks","__PARENT_RENDER_ICON__","_React$useState","findAllChildrenKeys","innerExpandedKeys","setInnerExpandedKeys","mergedExpandedKeys","newExpandedKeys","hasKey","useLayoutState","lastPromiseRef","updateBatchRef","prevBatch","batchUpdater","getOffsets","startOffsets","endOffsets","addEventListenerWrap","eventType","docElem","clientLeft","clientTop","StickyScrollBar","_scrollBodyRef$curren","_scrollBodyRef$curren2","scrollBodyRef","offsetScroll","bodyScrollWidth","bodyWidth","scrollBarWidth","scrollBarRef","_useLayoutState2","isHiddenScrollBar","scrollState","setScrollState","refState","_window","checkScrollBarVisible","tableOffsetTop","tableBottomOffset","currentClientOffset","setScrollLeft","onMouseUpListener","onMouseMoveListener","scrollParents","bodyNode","DEFAULT_PREFIX","EMPTY_SCROLL_TARGET","defaultEmpty","tableProps","scroll","summary","showHeader","internalRefs","tailor","getContainerWidth","_props$rowHoverable","hasData","useInternalHooks","defaultComponent","customizeScrollBody","_useHover","setStartRow","setEndRow","useHover","_useHover2","_useExpand2","setComponentWidth","_useColumns2","useColumns","flattenScrollX","mergedScrollX","columnContext","fullTableRef","scrollHeaderRef","scrollBodyContainerRef","_scrollBodyRef$curren3","scrollXStyle","scrollYStyle","scrollTableStyle","scrollSummaryRef","pingedLeft","setPingedLeft","pingedRight","setPingedRight","colsWidths","updateColsWidths","pureColWidths","useStickyOffsets","stickyRef","_useSticky","_ref$offsetHeader","offsetHeader","_ref$offsetSummary","offsetSummary","_ref$offsetScroll","_ref$getContainer","useSticky","summaryNode","fixFooter","newWidths","_useTimeoutLock2","frameRef","useTimeoutLock","setScrollTarget","getScrollTarget","forceScroll","onInternalScroll","_stickyRef$current","mergedScrollLeft","compareTarget","measureTarget","onBodyScroll","triggerOnScroll","_scrollBodyRef$curren4","setScrollbarSize","setSupportSticky","groupTableNode","renderFixedHeaderTable","fixedHolderPassProps","renderFixedFooterTable","mergedTableLayout","headerProps","bodyTable","Body","bodyColGroup","captionElement","dataProps","bodyContent","fixedHolderProps","fullTable","_stickyRef$current2","useFixedInfo","TableContextValue","RefTable","genTable","ImmutableTable","ColumnGroup","StaticContext","GridContext","inverse","columnsOffset","cellStyle","_additionalCellProps$","_additionalCellProps$2","concatColWidth","getColumnWidth","marginOffset","needHide","cellSpan","rowCellCls","rowNode","VirtualCell","_useContext2","onTablePropScroll","columnsWidth","_listRef$current4","getRowSpan","_flattenData$index","_cellProps$rowSpan","cellProps","gridContext","tblPrefixCls","wrapperComponent","horizontalScrollBarStyle","VirtualList","_listRef$current5","firstRowSpanColumns","lastRowSpanColumns","_loop2","spanLines","_loop3","BodyLine","endItemIndex","endItemKey","itemProps","renderBody","VirtualTable","RefVirtualTable","genVirtualTable","TreeContext","UnstableContext","Indent","isStart","isEnd","getEntity","getPosition","mergedTitle","_title","convertTreeToData","rootNodes","treeNode","isTreeNode","_treeNode$props","dataNode","parsedChildren","flattenTreeData","treeNodeList","fieldTitles","fieldKey","fieldChildren","expandedKeySet","fieldTitle","flattenNode","convertDataToEntities","dataNodes","initWrapper","processEntity","onProcessFinished","externalGetKey","childrenPropName","mergedExternalGetKey","posEntities","syntheticGetKey","_mergedConfig","_fillFieldNames2","mergeChildrenPropName","processNode","pathNodes","connectNodes","parentPos","subNode","subIndex","traverseDataNodes","getTreeNodeProps","loadedKeys","loadingKeys","checkedKeys","halfCheckedKeys","dragOverNodeKey","dropPosition","halfChecked","dragOver","dragOverGapTop","dragOverGapBottom","convertNodePropsToEventData","eventData","ICON_OPEN","ICON_CLOSE","TreeNode","_context$filterTreeNo","_classNames4","isLeaf","unstableContext","selectHandleRef","dragNodeHighlight","setDragNodeHighlight","_unstableContext$node","nodeDisabled","isCheckable","checkable","onCheck","disableCheckbox","onNodeCheck","isSelectable","onSelectorClick","onNodeClick","onNodeSelect","onSelectorDoubleClick","onNodeDoubleClick","onNodeMouseEnter","onNodeMouseLeave","onNodeContextMenu","isDraggable","nodeDraggable","onNodeExpand","memoizedIsLeaf","loadData","onNodeLoad","dragHandlerNode","_context$draggable","renderSwitcherIconDom","isInternalLeaf","switcherIcon","checkboxNode","$custom","nodeState","dropIndicatorNode","rootDraggable","dropIndicatorRender","dropLevelOffset","$icon","_props$title","wrapClass","currentIcon","titleRender","onDoubleClick","isEndNode","draggableWithoutDisabled","draggingNodeKey","ariaSelected","dropTargetKey","dropContainerKey","filterTreeNode","onDragStart","onNodeDragStart","_unused","onDragEnter","onNodeDragEnter","onDragOver","onNodeDragOver","onDragLeave","onNodeDragLeave","onDrop","onNodeDrop","onDragEnd","onNodeDragEnd","_switcherIconDom","switcherIconDom","renderSwitcher","arrDel","arrAdd","posToArr","getDragChildrenKeys","dragNodeKey","dragChildrenKeys","isLastChild","treeNodeEntity","posArr","calcDropPosition","dragNodeProps","targetNodeProps","startMousePosition","allowDrop","flattenedNodes","expandKeys","_abstractDropNodeEnti","_getBoundingClientRec","rawDropLevelOffset","filteredExpandKeys","_keyEntities$key","abstractDropNodeEntity","nodeIndex","flattenedNode","prevNodeKey","initialAbstractDropNodeKey","abstractDragOverEntity","abstractDragDataNode","abstractDropDataNode","dropAllowed","isFirstChild","dragNode","dropNode","dropTargetPos","calcSelectedKeys","parseCheckedKeys","keyProps","conductExpandParent","keyList","conductUp","removeFromCheckedKeys","filteredKeys","isCheckDisabled","conductCheck","getCheckDisabled","syntheticGetCheckDisabled","warningMissKeys","hasEntity","levelEntities","maxLevel","levelSet","_entity$children","childEntity","visitedKeys","_level","allChecked","partialChecked","fillConductCheck","halfKeys","_entity$children2","_level2","cleanConductCheck","RadioGroupContext","RadioGroupContextProvider","RadioOptionTypeContext","RadioOptionTypeContextProvider","getGroupRadioStyle","getRadioBasicStyle","wrapperMarginInlineEnd","radioSize","dotColorDisabled","radioColor","radioBgColor","radioInnerPrefixCls","radioDotDisabledSize","radioSizeCalc","getRadioButtonStyle","buttonColor","buttonPaddingInline","buttonBg","buttonCheckedBg","buttonSolidCheckedColor","buttonCheckedBgDisabled","buttonCheckedColorDisabled","buttonSolidCheckedBg","buttonSolidCheckedHoverBg","buttonSolidCheckedActiveBg","borderBlockStartWidth","radioFocusShadow","radioToken","radioButtonFocusShadow","dotPadding","InternalRadio","groupContext","radioOptionTypeContext","radioPrefixCls","isButtonType","optionType","radioProps","wrapperClassString","RadioGroup","defaultName","buttonStyle","customizedValue","onRadioChange","lastValue","Radio","__ANT_RADIO","SELECTION_COLUMN","SELECTION_ALL","SELECTION_INVERT","SELECTION_NONE","useSelection","rowSelection","preserveSelectedRowKeys","selectedRowKeys","defaultSelectedRowKeys","getCheckboxProps","onSelectionChange","onSelectAll","onSelectInvert","onSelectNone","onSelectMultiple","selectionColWidth","selectionType","selections","renderCell","customizeRenderCell","hideSelectAll","checkStrictly","pageData","getRecordByKey","expandType","tableLocale","multipleSelect","updatePrevSelectedIndex","prevSelectedIndex","setPrevSelectedIndex","currentSelectedIndex","configPrevSelectedIndex","rangeKeys","shouldSelected","rangeKey","changedKeys","useMultipleSelect","mergedSelectedKeys","setMergedSelectedKeys","preserveRecordsRef","updatePreserveRecordsCache","newCache","flattedData","convertData","keysSet","preserveRecords","checkboxPropsMap","isCheckboxDisabled","derivedSelectedKeys","derivedHalfSelectedKeys","derivedSelectedKeySet","derivedHalfSelectedKeySet","setSelectedKeys","availableKeys","triggerSingleSelection","mergedSelections","checkProps","keySet","recordKeys","checkedCurrentAll","checkedCurrentSome","onSelectAllChange","changeKeys","columnTitleCheckbox","customizeSelections","onSelectionClick","allDisabledData","allDisabled","allDisabledAndChecked","allDisabledSomeChecked","mergedIndeterminate","originCheckedKeys","nextCheckedKeys","tempKeySet","restColumns","selectionColumnIndex","prevCol","nextCol","mergedFixed","columnCls","selectionColumn","renderSelectionCell","useProxyImperativeHandle","_antProxy","isWindow","Document","iconPrefix","getColumnKey","defaultKey","getColumnPos","renderColumnTitle","FilterFilled","FilterFilledSvg","triggerStart","triggerEnd","setFirstMount","motionNodes","motionType","onOriginMotionStart","onMotionStart","onOriginMotionEnd","onMotionEnd","treeNodeRequiredProps","targetVisible","triggerMotionEndRef","triggerMotionEnd","useUnmount","_objectDestructuringEmpty","treeNodeProps","getExpandRange","shorter","longer","shorterStartIndex","shorterEndNode","longerStartIndex","longerEndIndex","HIDDEN_STYLE","MOTION_KEY","MotionNode","MotionEntity","MotionFlattenData","getMinimumRangeTransitionRange","activeItem","onListChangeStart","onListChangeEnd","indentMeasurerRef","getIndentWidth","prevExpandedKeys","setPrevExpandedKeys","transitionData","setTransitionData","transitionRange","setTransitionRange","setMotionType","dataRef","latestData","diffExpanded","prevLen","findExpandedKeys","rangeNodes","newTransitionData","_keyIndex","_rangeNodes","_newTransitionData","getAccessibilityPath","MotionTreeNode","Tree","_args","treeData","flattenNodes","listChanging","nodeProps","_this$state","dragStartMousePosition","setExpandedKeys","onWindowDragEnd","_this$state2","currentMouseOverDroppableNodeKey","_calcDropPosition","delayedDragEnterLogic","resetDragState","_this$state3","_calcDropPosition2","cleanDragState","_this$getActiveItem","outsideTree","_this$state4","abstractDropNodeProps","getTreeNodeRequiredProps","getActiveItem","dropToChild","dropResult","dragNodesKeys","dropToGap","_this$state5","nodeItem","eventNode","expandAction","triggerExpandActionExpand","_this$state6","targetSelected","selectedNodes","setUncontrolledState","checkedObj","_this$state7","oriCheckedKeys","oriHalfCheckedKeys","eventObj","checkedNodes","checkedKey","_conductCheck","_checkedKeys","_halfCheckedKeys","_conductCheck2","checkedNodesPositions","loadPromise","_ref$loadedKeys","_ref$loadingKeys","newLoadedKeys","loadingRetryTimes","currentLoadedKeys","onRightClick","_this$state8","_this$state9","_this$state10","_this$props8","certain","targetExpanded","newFlattenTreeData","expandedKeysToRestore","newActiveKey","_this$props9","_this$props9$itemScro","itemScrollOffset","_this$state11","_this$state12","_this$state13","_this$props10","offsetActiveKey","atomic","forceState","destroyed","needSync","allPassed","onUpdated","_this$props11","_this$props11$itemScr","draggableConfig","_this$state14","_this$props12","showLine","_this$props12$tabInde","entitiesMap","checkedKeyEntity","autoExpandParent","defaultExpandParent","defaultExpandAll","cloneKeyEntities","nextExpandedKeys","defaultExpandedKeys","defaultCheckedKeys","_checkedKeyEntity","_checkedKeyEntity$che","_checkedKeyEntity$hal","conductKeys","DropIndicator","FileOutlined","FileOutlinedSvg","FolderOpenOutlined","FolderOpenOutlinedSvg","FolderOutlined","FolderOutlinedSvg","HolderOutlined","HolderOutlinedSvg","genDirectoryStyle","treeCls","treeNodeCls","directoryNodeSelectedBg","directoryNodeSelectedColor","treeNodeFX","getSwitchStyle","getDropIndicatorStyle","treeNodePadding","nodeSelectedBg","nodeHoverBg","nodeHoverColor","nodeSelectedColor","genTreeStyle","treeToken","getCheckboxStyle","startPosition","endPosition","CaretDownFilled","CaretDownFilledSvg","MinusSquareOutlined","MinusSquareOutlinedSvg","PlusSquareOutlined","PlusSquareOutlinedSvg","switcherLoadingIcon","showLeafIcon","leafIcon","leafCls","switcherCls","switcher","blockNode","customMotion","mergedDraggable","RcTree","SwitcherIconCom","traverseNodesKey","calcRangeKeys","convertDirectoryKeysToNodes","restKeys","getTreeData","DirectoryTree","lastSelectedKey","cachedSelectedKeys","getInitExpandedKeys","initExpandedKeys","connectClassName","ctrlPick","shiftPick","newSelectedKeys","TreePure","filterSearch","tablePrefixCls","flattenKeys","searchValueMatched","renderFilterItems","filterMultiple","wrapStringListType","filterOnClose","filterMode","filterState","triggerFilter","filterResetToDefaultFilteredValue","defaultFilteredValue","filterDropdownProps","filterDropdownOpen","filterDropdownVisible","onFilterDropdownVisibleChange","onFilterDropdownOpenChange","forceFiltered","propFilteredKeys","getFilteredKeysSync","setFilteredKeysSync","onSelectKeys","setOpenKeys","internalTriggerFilter","mergedKeys","closeDropdown","doFilter","dropdownMenuClass","onCheckAll","allFilterKeys","getFilterData","dropdownContent","filterDropdown","clearFilters","getFilterComponent","FilterSearch","filterCheckall","getResetDisabled","FilterDropdownMenuWrapper","mergedDropdownProps","getDropdownTrigger","filterIcon","collectFilterStates","filterStates","columnPos","filteredValues","filteredValue","injectFilter","newColumn","renderProps","FilterDropdown","generateFilterInfo","currentFilters","keyAsString","originKey","currentData","onFilter","realKey","getMergedColumns","rawMergedColumns","onFilterChange","setFilterStates","mergedFilterStates","collectedStates","filteredKeysIsAllNotControlled","filteredKeysIsAllControlled","newFilterStates","innerColumns","useLazyKVMap","mapCacheRef","kvMap","DEFAULT_PAGE_SIZE","paginationTotal","innerPagination","setInnerPagination","mergedPagination","maxPage","refreshPagination","CaretUpOutlined","CaretUpOutlinedSvg","ASCEND","DESCEND","getMultiplePriority","getSortFunction","collectSortStates","sortStates","multiplePriority","sortOrder","defaultSortOrder","injectSorter","sorterStates","triggerSorter","defaultSortDirections","tableShowSorterTooltip","sortDirections","showSorterTooltip","sorterState","nextSortOrder","nextSortDirection","sortIcon","sortTip","columnSortersClass","renderColumnTitleWrapper","renderSortTitle","originOnClick","originOKeyDown","renderTitle","safeColumnTitle","displayTitle","stateToInfo","generateSorterInfo","activeSorters","getSortData","innerSorterStates","cloneData","runningSorters","record1","record2","compareFn","compareResult","subRecords","onSorterChange","setSortStates","getColumnKeys","newKeys","childKeys","mergedSorterStates","mergedColumnsKeys","validateStates","patchStates","multipleMode","columnTitleSorterProps","sortColumns","sortColumn","sortState","newSorterStates","getSorters","fillTitle","columnTitleProps","cloneColumn","_renderTimes","prevRenderTimes","nextRenderTimes","tableBorderColor","tableHeaderBg","tablePaddingVertical","tablePaddingHorizontal","tableBorder","getSizeBorderStyle","paddingVertical","paddingHorizontal","tablePaddingVerticalMiddle","tablePaddingHorizontalMiddle","tablePaddingVerticalSmall","tablePaddingHorizontalSmall","tableExpandIconBg","tableExpandColumnWidth","tableExpandedRowBg","expandIconMarginTop","expandIconSize","expandIconHalfInner","expandIconScale","expandIconLineOffset","tableFilterDropdownWidth","tableFilterDropdownSearchWidth","headerIconColor","tableHeaderFilterActiveBg","tableFilterDropdownBg","tableFilterDropdownHeight","filterDropdownMenuBg","tableFilterDropdownPrefixCls","treePrefixCls","zIndexTableFixed","tableBg","zIndexTableSticky","tableRadius","headerIconHoverColor","tableSelectionColumnWidth","tableSelectedRowBg","tableSelectedRowHoverBg","tableRowHoverBg","getSizeStyle","tableFontSizeMiddle","tableFontSizeSmall","tableHeaderSortHoverBg","tableFixedHeaderSortActiveBg","tableHeaderSortBg","tableBodySortBg","tableScrollThumbBg","tableScrollThumbBgHover","tableScrollThumbSize","tableScrollBg","stickyScrollBarBorderRadius","genTableStyle","tableFontSize","tableHeaderTextColor","tableHeaderCellSplitColor","tableFooterTextColor","tableFooterBg","headerSortActiveBg","headerSortHoverBg","bodySortBg","rowHoverBg","rowSelectedBg","rowSelectedHoverBg","rowExpandedBg","cellPaddingBlock","cellPaddingInline","cellPaddingBlockMD","cellPaddingInlineMD","cellPaddingBlockSM","cellPaddingInlineSM","footerColor","headerBorderRadius","cellFontSize","cellFontSizeMD","cellFontSizeSM","headerSplitColor","fixedHeaderSortActiveBg","headerFilterHoverBg","filterDropdownBg","expandIconBg","selectionColumnWidth","stickyScrollBarBg","tableToken","genSummaryStyle","genSorterStyle","genFilterStyle","genExpandStyle","genEmptyStyle","genFixedStyle","genStickyStyle","genEllipsisStyle","genVirtualStyle","colorFillSecondarySolid","colorFillContentSolid","colorFillAlterSolid","baseColorAction","baseColorActionHover","InternalTable","customizeDropdownPrefixCls","legacyChildrenColumnName","returnWidth","useContainerWidth","rootRef","tblRef","changeEventInfo","triggerOnChange","changeInfo","resetPagination","scrollToFirstRowOnChange","frameFunc","nextScrollTop","easeInOutCubic","currentDataSource","transformSorterColumns","sorterTitleProps","useSorter","sortedData","transformFilterColumns","useFilter","mergedFilters","filterKey","transformTitleColumns","useTitleColumns","usePagination","pageProp","getPaginationParam","transformSelectionColumns","selectedKeySet","topPaginationNode","bottomPaginationNode","spinProps","renderPagination","defaultPosition","topPos","bottomPos","isDisable","wrapperClassNames","RcVirtualTable","RcTable","virtualProps","internalRowClassName","mergedRowClassName","ForwardTable","OrderCycle","fetchData","useDebounce","setCacheValue","helpCls","helpItemCls","resetForm","legend","genFormSize","formItemCls","genFormStyle","genFormItemStyle","labelRequiredMarkColor","labelColor","labelFontSize","labelHeight","labelColonMarginInlineStart","labelColonMarginInlineEnd","itemMarginBottom","writingMode","genHorizontalStyle","genInlineStyle","inlineItemMarginBottom","makeVerticalLayoutLabel","verticalLabelPadding","verticalLabelMargin","makeVerticalLayout","genVerticalStyle","genItemVerticalStyle","formToken","genFormValidateMotionStyle","toErrorEntity","errorStatus","help","helpStatus","fieldId","collapseMotion","debounceErrors","debounceWarnings","fullKeyList","filledKeyFullKeyList","keysCount","helpProps","holderProps","holderStyle","itemStyle","frameElement","scrollMode","boundary","skipOverflowHiddenElements","scrollingElement","visualViewport","scrollMarginTop","scrollMarginRight","scrollMarginBottom","scrollMarginLeft","isConnected","formItemNameBlackList","getFieldId","formName","defaultValidateStatus","toNamePathStr","getFieldDOMNode","wrapForm","fieldDom","getFieldInstance","__INTERNAL__","rcForm","useRcForm","itemsRef","namePathStr","scrollToField","restOpt","focusField","InternalForm","requiredMark","contextRequiredMark","colon","contextColon","scrollToFirstError","contextScrollToFirstError","labelWrap","labelCol","wrapperCol","hideRequiredMark","feedbackIcons","restFormProps","contextValidateMessages","mergedRequiredMark","mergedColon","formClassName","defaultScrollToFirstError","useFormItemStatus","genFallbackStyle","_internalItemRender","formItemRender","onErrorVisibleChanged","mergedWrapperCol","mergedWrapper","_size","formLabel","formLabelObj","subFormContext","extraRef","extraHeight","setExtraHeight","inputDom","errorListDom","ErrorList","extraDom","additionalDom","FallbackCmp","QuestionCircleOutlined","QuestionCircleOutlinedSvg","formLocale","contextLabelAlign","contextLabelCol","mergedLabelCol","mergedLabelAlign","labelClsBasic","labelColClassName","labelChildren","computedColon","toTooltipProps","restTooltipProps","tooltipNode","isOptionalMark","isRenderMark","labelClassName","iconMap","StatusProvider","noStyle","mergedValidateStatus","parentIsFormItemInput","parentStatus","parentHasFeedback","parentFeedbackIcon","formItemStatusContext","customIcons","icons","customIconNode","ItemHolder","onSubItemMetaChange","formVertical","hasHelp","isOnScreen","setMarginBottom","isDebounce","getValidateState","FormItemLabel","FormItemInput","MemoInput","keysA","keysB","propValueA","propValueB","isSimilarControl","FormItem","notifyParentMetaChange","contextValidateTrigger","hasName","fieldKeyPathRef","subFieldErrors","setSubFieldErrors","useFrameState","setMeta","subMeta","uniqueKeys","prevSubFieldErrors","mergedNameKey","warningList","subFieldError","getItemRef","childrenRef","nameStr","useItemRef","renderLayout","baseChildren","nextMeta","keyInfo","renderMeta","mergedName","ruleEntity","mergedControl","describedbyArr","_c2","watchingChildProps","operation","useFormInstance","LockOutlined","LockOutlinedSvg","RegistrationPage","setFormData","accountStatus","accountNumber","finalData","LoginPage","_product$productImage","_product$description","ProductsPage","allProducts","setAllProducts","loadingMore","setLoadingMore","observerRef","prevProducts","rootMargin","handleProductClick","ProductDetailModal","closeModal","dayjs","advancedFormat","oldFormat","formatStr","localeMap","bn_BD","by_BY","en_GB","en_US","fr_BE","fr_CA","hy_AM","kmr_IQ","nl_BE","pt_BR","zh_CN","zh_HK","zh_TW","parseLocale","getNow","tz","getFixedDate","getEndDate","getWeekDay","getHour","getMinute","getSecond","getMillisecond","addYear","addMonth","addDate","setYear","setHour","setMinute","setSecond","setMillisecond","date1","date2","isValidate","getWeekFirstDay","getWeekFirstDate","getWeek","getShortWeekDays","getShortMonths","_format","localeStr","formatText","weekStr","firstWeek","CalendarOutlined","CalendarOutlinedSvg","ClockCircleOutlined","ClockCircleOutlinedSvg","SwapRightOutlined","SwapRightOutlinedSvg","BUILT_IN_PLACEMENTS","_ref$builtinPlacement","PickerContext","realPlacement","getRealPlacement","leftPad","fillIndex","pickProps","getRowFormat","picker","fieldTimeFormat","fieldDateTimeFormat","fieldMonthFormat","fieldYearFormat","fieldQuarterFormat","fieldWeekFormat","fieldDateFormat","getFromDate","calendarValues","activeIndexList","mergedActiveIndex","firstValuedIndex","pickTriggerProps","cellRender","dateRender","monthCellRender","mergedCellRender","originNode","useFieldsInvalidate","calendarValue","isInvalidateDate","allowEmpty","fieldsInvalidates","setFieldsInvalidates","fillTimeFormat","showHour","showMinute","showSecond","showMillisecond","showMeridiem","showProps","use12Hours","cellYearFormat","cellQuarterFormat","cellDateFormat","fillLocale","checkShow","showTimeKeys","isStringFormat","existShowConfig","fillShowConfig","hasShowConfig","parsedShowHour","parsedShowMinute","parsedShowSecond","_parsedShowHour","_parsedShowMinute","_parsedShowSecond","existFalse","existTrue","defaultShow","getTimeProps","componentProps","showTime","_pickTimeProps","timeProps","propFormat","pickTimeProps","_pickTimeProps2","pickedProps","showTimeConfig","timeConfig","defaultOpenValue","_fillShowConfig2","fillShowTimeConfig","showTimeFormat","baselineFormat","formatList","_fillShowConfig4","fillClearIcon","nullableCompare","value1","value2","oriCompareFn","isSameDecade","generateConfig","decade1","decade2","isSameYear","year1","year2","getQuarter","isSameMonth","month1","month2","isSameDate","isSameTime","time1","time2","isSameTimestamp","isSameWeek","weekStartDate1","weekStartDate2","quarter1","quarter2","isSameQuarter","startDate","endDate","fillTime","tmpDate","getFn","useList","fillMode","useFilledProps","_props$picker","_props$styles","_props$classNames","_props$order","_props$components","inputRender","needConfirm","inputReadOnly","disabledDate","minDate","maxDate","pickerValue","defaultPickerValue","defaultValues","pickerValues","defaultPickerValues","internalPicker","multipleInteractivePicker","complexPicker","mergedNeedConfirm","_getTimeProps2","localeTimeProps","mergedShowTime","filledProps","_useFieldFormat","firstFormat","maskFormat","useFieldFormat","_useFieldFormat2","mergedInputReadOnly","useInputReadOnly","disabledBoundaryDate","useDisabledBoundary","outsideInfo","_showTime$disabledTim","disabledTime","disabledHours","disabledMinutes","disabledSeconds","disabledMilliseconds","legacyDisabledHours","legacyDisabledMinutes","legacyDisabledSeconds","mergedDisabledHours","mergedDisabledMinutes","mergedDisabledSeconds","useInvalidate","useOpen","_useDelayState","nextValueRef","immediately","useDelayState","_useDelayState2","rafOpen","setRafOpen","usePickerRef","usePresets","presets","legacyRanges","useLockEffect","delayFrames","useRangeActive","activeListRef","submitIndexRef","lastOperationRef","updateSubmitIndex","nextFocus","filledActiveSet","offsetPanelDate","useRangePickerValue","modes","pickerMode","multiplePanel","timeDefaultValue","onPickerValueChange","isTimePicker","getDefaultPickerValue","_pickerValue","startPickerValue","endPickerValue","mergedStartPickerValue","setStartPickerValue","mergedEndPickerValue","setEndPickerValue","currentPickerValue","setCurrentPickerValue","nextPickerValue","prevActiveIndexRef","getEndDatePickerValue","offsetPickerValue","controlledValue","useControlledValueFirst","EMPTY_VALUE","useUtil","orderDates","useInnerValue","rangeValue","onCalendarChange","_useCalendarValue","setCalendarValue","syncWithValue","useCalendarValue","_useCalendarValue2","_useUtil2","getDateTexts","isSameDates","triggerCalendarChange","nextCalendarValues","_isSameDates2","isSameMergedDates","isSameStart","cellTexts","useRangeValue","getCalendarValue","orderOnChange","_useUtil4","submitValue","setSubmitValue","triggerSubmit","isNullValue","_clone2","startEmpty","endEmpty","validateEmptyDateRange","validateOrder","validateDates","flushSubmit","needTriggerChange","nextSubmitValue","interactiveFinished","useShowNow","showNow","showToday","emptyDisabled","generateUnits","hideDisabledOptions","disabledUnits","integerStep","useTimeInfo","_ref$hourStep","hourStep","_ref$minuteStep","minuteStep","_ref$secondStep","secondStep","_ref$millisecondStep","millisecondStep","mergedDate","getDisabledTimes","targetDate","disabledConfig","mergedDisabledMilliseconds","getAllUnits","getDisabledHours","getDisabledMinutes","getDisabledSeconds","getDisabledMilliseconds","nextHour","nextMinute","nextSecond","rowHourUnits","getMinuteUnits","getSecondUnits","getMillisecondUnits","nextTime","certainDate","getCheckHourUnits","getCheckMinuteUnits","getCheckSecondUnits","getCheckMillisecondUnits","_getDisabledTimes2","targetDisabledHours","targetDisabledMinutes","targetDisabledSeconds","targetDisabledMilliseconds","_getAllUnits2","targetRowHourUnits","validateDate","getHourUnits","nextDate","alignValidate","setUnitValue","nextUnit","validateUnits","validateUnit","findValidateTime","renderExtraFooter","onNow","_React$useContext$but","getValidTime","extraNode","nowDisabled","nowPrefixCls","nowBtnPrefixCls","presetNode","validateNow","okNode","rangeNode","useToggleDates","panelMode","sliceList","PanelContext","usePanelContext","useInfo","panelType","hoverValue","hoverRangeValue","superPrevIcon","superNextIcon","PickerHackContext","PanelBody","rowNum","colNum","baseDate","getCellDate","prefixColumn","titleFormat","getCellText","getCellClassName","headerCells","_props$cellSelection","cellSelection","_usePanelContext","contextDisabledDate","mergedDisabledDate","onCellDblClick","rowStartDate","rangeStart","rangeEnd","_hoverRangeValue","hoverStart","hoverEnd","superOffset","getStart","getEnd","_usePanelContext$prev","_usePanelContext$next","_usePanelContext$supe","_usePanelContext$supe2","headerPrefixCls","hidePrev","hideNext","hideHeader","disabledOffsetPrev","prevPanelLimitDate","disabledSuperOffsetPrev","disabledOffsetNext","nextPanelLimitDate","disabledSuperOffsetNext","onSuperOffset","prevBtnCls","nextBtnCls","superPrevBtnCls","superNextBtnCls","DatePanel","_props$panelName","panelName","onModeChange","_props$mode","showWeek","panelPrefixCls","isWeek","_useInfo2","weekFirstDay","monthStartDate","startDateWeekDay","alignStartDate","getWeekStartDate","weekDaysLocale","shortWeekDays","monthsLocale","shortMonths","yearNode","monthNode","monthFormat","monthYearNodes","PanelHeader","SPEED_PTG","flattenUnits","TimeColumn","optionalValue","onDblClick","changeOnScroll","ulRef","checkDelayRef","clearDelayCheck","_useScrollTo","scrollingRef","scrollRafRef","scrollDistRef","scrollRafTimesRef","targetLi","firstLi","doScroll","currentTop","firstLiTop","targetLiTop","nextTop","_useScrollTo2","syncScroll","isScrolling","columnPrefixCls","liDistList","minDist","minDistIndex","targetUnit","unitValue","subType","isAM","TimePanelBody","_usePanelContext$onHo","_useTimeInfo2","_getUnitValue2","pickerHour","_getUnitValue4","pickerMinute","_getUnitValue6","pickerSecond","_getUnitValue8","pickerMillisecond","hourUnits","getEnabled","_enabledUnits$","enabledUnits","validHour","minuteUnits","validMinute","secondUnits","validSecond","millisecondUnits","validMillisecond","meridiemUnits","amDate","pmDate","formatMeridiem","defaultLabel","triggerDateTmpl","tmpl","isNotNull","fillColumnValue","getNextHourTime","getNextMinuteTime","getNextSecondTime","getNextMillisecondTime","getMeridiemTime","sharedColumnProps","TimePanel","DefaultComponents","mergeTime","cloneDate","localeName","rowPrefixCls","rangeCls","isRangeStart","isRangeEnd","disabledInfo","nextMonthStartDate","getStartYear","startYear","getEndYear","startYearDate","endYearDate","startMonth","endMonth","decade","baseStartDate","baseStartMonth","baseStartYear","baseEndYear","baseEndDate","startYearStr","endYearStr","PickerPanel","_props$tabIndex","onPanelChange","filledLocale","setMergedMode","toggleDates","newDate","mergedPickerValue","setInternalPickerValue","triggerPanelChange","viewDate","nextMode","setPickerValue","triggerPanelEvent","triggerModeChange","hoverRangeDate","onInternalCellRender","PanelComponent","parentHackContext","pickerPanelContext","panelCls","panelProps","decadeYearQueue","decadeYearMonthQueue","PopupPanel","internalOffsetDate","sharedContext","pickerProps","executeValue","PresetPanel","_onClick","panelRender","_props$activeInfo","activeInfo","onPresetHover","onPresetSubmit","onPanelMouseDown","isInvalid","containerOffset","setContainerOffset","setArrowOffset","_activeInfo","activeInputLeft","activeInputRight","selectorWidth","filterEmpty","_arrowRef$current","wrapperRect","nextArrowOffset","safeOffset","valueList","isTimePickerEmptyValue","footerSubmitValue","popupPanelValue","disableSubmit","mergedNodes","containerPrefixCls","useInputProps","preserveInvalidOnBlur","ariaRequired","_onFocus","onInvalid","activeHelp","allHelp","parseDate","getText","valueTexts","_validateFormat","singleFormat","getProp","validateFormat","helped","onHelp","prevented","propNames","useRootProps","ClearIcon","FORMAT_KEYS","MaskFormat","replaceKeys","replaceReg","cellReg","strCells","maskCells","maskCellIndex","maskChar","textChar","anchorIndex","closetDist","closetIndex","_this$maskCells$i","_props$showActiveCls","showActiveCls","_props$preserveInvali","_React$useContext$inp","internalInputValue","focusCellText","setFocusCellText","focusCellIndex","setFocusCellIndex","forceSelectionSyncMark","forceSelectionSync","onModify","triggerInputChange","mouseDownRef","onSharedBlur","onSharedKeyDown","nextCellText","nextFillText","maskCellLen","cellFormat","offsetCellIndex","offsetCellValue","_getMaskRange","getMaskRange","_getMaskRange2","rangeDefault","currentText","currentTextNum","nextFocusValue","closeMaskIndex","getMaskCellIndex","pasteText","RangeSelector","_props$separator","onActiveInfo","ids","inputStartRef","inputEndRef","getInput","_getInput","_ref$index","_index2","_getInput2","_getInput3","_getInput4","mergedPlaceholder","getInputProps","activeBarStyle","setActiveBarStyle","syncActiveOffset","inputRect","parentRect","rectOffset","showClear","startAutoFocus","endAutoFocus","separateConfig","singleConfig","getActiveRange","RangePicker","_useFilledProps","_useFilledProps2","_useOpen2","setMergeOpen","fieldDisabled","_useInnerValue2","triggerOk","_useRangeActive2","lastOperation","hasActiveSubmitValue","onSharedFocus","proxyDisabledTime","fromDate","setModes","mergedShowNow","_useRangeValue2","triggerSubmitChange","_values","useRangeDisabledDate","_useFieldsInvalidate2","submitInvalidates","onSelectorInvalid","_useRangePickerValue2","triggerEvent","clonePickerValue","fillCalendarValue","triggerPartConfirm","skipFocus","hoverSource","setHoverSource","internalHoverValues","setInternalHoverValues","hoverValues","setActiveInfo","presetList","panelValue","isPopupInvalidateDate","lastOp","PickerTrigger","activeListLen","lastActiveIndex","_activeElement","rootNode","enabledIndex","MultipleDates","_props$removeIcon","formatDate","selectorCls","selectionCls","overflowCls","renderSelector","_useInputProps2","oriDate","Picker","pickerParam","dateStrings","filteredInfo","setMode","submitInvalidate","invalidated","cleanInfo","lastPickerValue","triggerConfirm","internalHoverValue","setInternalHoverValue","selectorValues","genSize","genPickerCellInnerStyle","pickerCellCls","pickerCellInnerCls","cellHeight","cellHoverBg","cellActiveWithRangeBg","cellBgDisabled","genPanelStyle","pickerYearMonthCellWidth","pickerControlIconSize","pickerControlIconBorderWidth","textHeight","pickerCellPaddingVertical","withoutTimeCellHeight","pickerQuarterPanelContentHeight","timeColumnHeight","timeColumnWidth","timeCellHeight","pickerDatePanelPaddingHorizontal","pickerControlIconMargin","pickerPanelWidth","genPickerPadding","inputHeight","genPickerStatusStyle","genPickerStyle","presetsWidth","presetsMaxWidth","pickerToken","pickerCellBorderGap","initPickerPanelToken","genPickerPanelStyle","genPickerMultipleStyle","cellHoverWithRangeBg","cellRangeBorderColor","initPanelComponentToken","getPlaceholder","customizePlaceholder","getRangePlaceholder","useSelectIcons","allowClearConfig","WEEKPICKER","MONTHPICKER","YEARPICKER","QUARTER","QUARTERPICKER","TIMEPICKER","useComponents","PickerButton","customGetPopupContainer","RCRangePicker","getPicker","consumerName","customizeGetPopupContainer","consumerStyle","mergedPicker","hasLegacyOnSelect","RCPicker","onInternalCalendarChange","dateStr","WeekPicker","MonthPicker","YearPicker","QuarterPicker","generateSinglePicker","generateRangePicker","MergedDatePicker","generatePicker","dayjsGenerateConfig","PureRangePanel","_InternalRangePanelDoNotUseOrYouWillBeFired","ShoppingOutlined","ShoppingOutlinedSvg","getClientSize","PreviewGroupContext","countRender","showSwitch","minScale","maxScale","onZoomIn","onZoomOut","onRotateRight","onRotateLeft","onFlipX","onFlipY","toolbarRender","rotateLeft","rotateRight","flipX","flipY","toolClassName","handleActive","renderOperation","switchPrevNode","switchNextNode","flipYNode","flipXNode","rotateLeftNode","rotateRightNode","zoomOutNode","zoomInNode","toolbarNode","flipYIcon","flipXIcon","rotateLeftIcon","rotateRightIcon","zoomOutIcon","zoomInIcon","initialTransform","fixPoint","startAddWidth","offsetStart","getFixScaleEleTransPosition","_getClientSize","fixPos","isCustomPlaceholder","isLoaded","isCurrentSrc","isImageValid","getDistance","hypot","useTouchEvent","imgRef","movable","updateTransform","dispatchZoomChange","isTouching","setIsTouching","touchPointInfo","point1","point2","updateTouchPointInfo","onTouchMoveListener","_onTouchMoveListener","_event$touches","_event$touches2","_touchPointInfo$curre","newPoint1","newPoint2","_getCenter","oldPoint1","oldPoint2","distance1","distance2","getCenter","_getCenter2","_imgRef$current$getBo","isRotate","fixState","PreviewImage","getImgRef","srcAndOnload","imageInfo","_props$movable","_props$icons","_props$current","_props$count","_props$scaleStep","scaleStep","_props$minScale","_props$maxScale","_props$transitionName","_props$maskTransition","imageRender","imgCommonProps","onTransform","showLeftOrRightSwitches","showOperationsProgress","enableTransition","setEnableTransition","_useImageTransform","frame","preState","memoState","queueState","resetTransform","isTouch","_imgRef$current","newRatio","newScale","mergedCenterX","mergedCenterY","diffRatio","diffImgX","diffImgY","diffOffsetLeft","diffOffsetTop","newX","newY","useImageTransform","_useMouseEvent","isMoving","setMoving","startPositionInfo","diffX","diffY","_startPositionInfo$cu","onTopMouseUpListener","onTopMouseMoveListener","_onMouseUpListener","_onMouseMoveListener","_onTopMouseUpListener","_onTopMouseMoveListen","scaleRatio","useMouseEvent","_useTouchEvent","onKeyDownListener","imgNode","transitionDuration","Operations","COMMON_PROPS","ImageInternal","onInitialPreviewClose","onPreviewClose","_props$previewPrefixC","previewPrefixCls","_props$preview","previewSrc","_ref$visible","previewVisible","_ref$onVisibleChange","onPreviewVisibleChange","getPreviewContainer","previewMask","dialogProps","isShowPreview","setShowPreview","setMousePosition","canPreview","wrapperClass","imageId","registerData","useRegisterImage","_getOffset","onPreview","Preview","PreviewGroup","_mergedItems$current","_ref$previewPrefixCls","_ref$icons","_usePreviewItems","setImages","registerImage","imgs","cloneImgs","_images$id","usePreviewItems","_usePreviewItems2","fromItems","keepOpenIndex","setKeepOpenIndex","prevVal","onPreviewFromImage","imageSrc","mouseX","previewGroupContext","RotateLeftOutlined","RotateLeftOutlinedSvg","RotateRightOutlined","RotateRightOutlinedSvg","SwapOutlined","SwapOutlinedSvg","ZoomInOutlined","ZoomInOutlinedSvg","ZoomOutOutlined","ZoomOutOutlinedSvg","genBoxStyle","genImageMaskStyle","genPreviewOperationsStyle","previewCls","modalMaskBg","previewOperationColorDisabled","previewOperationHoverColor","operationBg","operationBgHover","previewOperationColor","previewOperationSize","genPreviewSwitchStyle","imagePreviewSwitchSize","genImagePreviewStyle","genImageStyle","genPreviewMotion","imageToken","contextPreview","imageLocale","mergedRootClassName","mergedPreview","_preview","restPreviewProps","RcImage","DownloadOutlined","DownloadOutlinedSvg","downloadInvoice","toLocaleDateString","OrderHistoryPage","ordersData","moment","defaultFromDate","defaultToDate","dateRange","setDateRange","selectedOrderId","setSelectedOrderId","customerObject","handleViewOrder","transformedOrders","fullName","orderCycle","noOrders","OrderModal","handleModalClose","BasicComponent","Basic","TagName","wrapSSR","prefixWithSuffixCls","BasicLayout","siders","setSiders","hasSider","Tag","mergedHasSider","Sider","useHasSider","Layout","_InternalSiderContext","VerifiedOutlined","VerifiedOutlinedSvg","DollarOutlined","DollarOutlinedSvg","RocketOutlined","RocketOutlinedSvg","CustomerServiceOutlined","CustomerServiceOutlinedSvg","About","franko","franco","notificationMarginEdge","animationMaxHeight","rightFadeIn","topFadeIn","bottomFadeIn","leftFadeIn","NotificationPlacements","placementAlignProperty","genStackChildrenStyle","notificationStackLayer","genStackedNoticeStyle","backdropFilter","willChange","genPlacementStackStyle","genNoticeStyle","notificationMarginBottom","notificationBg","notificationPadding","notificationProgressBg","notificationProgressHeight","notificationIconSize","notificationPaddingVertical","notificationPaddingHorizontal","notificationCloseButtonSize","inlineSize","blockSize","genNotificationStyle","prepareNotificationToken","notificationToken","genNotificationPlacementStyle","genStackStyle","getCloseIcon","typeToIcon","btn","notificationClassName","mergedActions","PurePanelStyle","getPlacementStyle","useInternalNotification","notificationConfig","realCloseIcon","getCloseIconConfig","setNotificationConfig","newNotification","InstagramOutlined","InstagramOutlinedSvg","XOutlined","XOutlinedSvg","EmailJSResponseStatus","_text","blockHeadless","storageProvider","createWebStorage","buildOptions","publicKey","sendPost","responseStatus","validateParams","serviceID","templateID","isHeadless","webdriver","languages","headlessError","isBlockedValueInParams","watchVariable","isBlockListDisabled","validateBlockListParams","blockedEmailError","isLimitRateHit","defaultID","validateLimitRateParams","leftTime","lastTime","getLeftTime","limitRateError","templateParams","blockList","limitRate","validateTemplateParams","lib_version","user_id","service_id","template_id","template_params","Contact","lat","lng","emailjs","_response","UserProfile","user","setUser","userData","savedShippingDetails","updateLastActivityTime","createUser","fetchUsers","loginUser","contact","fetchUsersResult","matchingUser","loginTime","userSlice","currentUser","currentUserDetails","userList","logoutUser","clearUsers","clearSelectedUser","newUser","users","checkAutoLogout","Login","setContact","setPassword","UserRegistration","Franko","confirmPassword","uuserid","ShopOutlined","ShopOutlinedSvg","TagsOutlined","TagsOutlinedSvg","TrademarkOutlined","TrademarkOutlinedSvg","FileImageOutlined","FileImageOutlinedSvg","UsergroupAddOutlined","UsergroupAddOutlinedSvg","MenuUnfoldOutlined","MenuUnfoldOutlinedSvg","MenuFoldOutlined","MenuFoldOutlinedSvg","isLogoutModalVisible","setIsLogoutModalVisible","currentPath","userName","userPosition","showLogoutModal","menuItems","userMenu","toggleCollapsed","groupSeparator","valueNode","genStatisticStyle","valueStyle","valueRender","StatisticNumber","timeUnits","formatCountdown","leftDuration","escapeRegex","keepList","templateText","formatTimeStr","REFRESH_INTERVAL","Countdown","countdown","syncTimer","Statistic","mathSign","isPercent","lodashIsNumber","isNan","isNumOrStr","getPercentValue","totalValue","getAnyElementOfObject","interpolateNumber","numberA","numberB","findEntryInArray","specifiedKey","specifiedValue","shallowEqual","SVGElementPropKeys","PolyElementKeys","FilteredElementKeyMap","polygon","polyline","EventKeys","adaptEventHandlers","newHandler","adaptEventsOfChild","originalHandler","getEventHandlerOfChild","REACT_BROWSER_EVENT_MAP","mousedown","mouseup","mouseover","mousemove","mouseout","mouseenter","mouseleave","touchcancel","touchend","touchmove","touchstart","dblclick","Comp","lastChildren","lastResult","findAllByType","childType","findChildByType","validateWidthHeight","_el$props","SVG_TAGS","isSvgElement","filterProps","includeEvents","svgElementType","_inputProps","_FilteredElementKeyMa","matchingElementTypeKeys","isValidSpreadableProp","isChildrenEqual","nextChildren","prevChildren","isSingleChildEqual","nextChild","prevChild","renderByOrder","renderMap","_arrayWithHoles","_iterableToArrayLimit","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","ResponsiveContainer","aspect","_ref$initialDimension","initialDimension","_ref$width","_ref$height","_ref$minWidth","_ref$debounce","_ref$style","onResizeRef","setSizes","setContainerSize","newHeight","roundedWidth","roundedHeight","_onResizeRef$current","_entries$0$contentRec","chartContent","calculatedWidth","calculatedHeight","isCharts","Surface","svgView","layerClass","Layer","defaultFormatter","DefaultTooltipContent","_props$contentStyle","_props$itemStyle","_props$labelStyle","labelStyle","itemSorter","labelFormatter","_props$accessibilityL","accessibilityLayer","finalStyle","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","accessibilityAttributes","finalItemStyle","finalFormatter","finalName","_formatted","renderContent","CSS_CLASS_PREFIX","TOOLTIP_HIDDEN","getTooltipCSSClassName","coordinate","translateX","translateY","getTooltipTranslateXY","allowEscapeViewBox","offsetTopLeft","reverseDirection","tooltipDimension","viewBoxDimension","positive","_defineProperties","_setPrototypeOf","TooltipBoundingBox","dismissed","dismissedAtCoordinate","lastBoundingBox","_this$props$coordinat","_this$props$coordinat2","_this$props$coordinat3","_this$props$coordinat4","updateBBox","_this$props$coordinat5","_this$props$coordinat6","animationEasing","hasPayload","isAnimationActive","useTranslate3d","_getTooltipTranslate","tooltipBox","cssProperties","getTransformStyle","cssClasses","getTooltipTranslate","Global","isSsr","getUniqPayload","defaultUniqBy","filterNull","payloadUniqBy","finalPayload","hide","cursorStyle","tau","draw","tan30","tan30_2","kx","sqrt3","epsilon","tauEpsilon","Path","_x0","_y0","_x1","_y1","_append","appendRound","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","ccw","cw","withPath","symbolFactories","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","RADIAN","Symbols","_ref$type","_ref$size","_ref$sizeType","sizeType","filteredProps","symbolFactory","getSymbolFactory","shapeSymbol","calculateAreaSize","getPath","registerSymbol","SIZE","DefaultLegendContent","inactiveColor","halfSize","sixthSize","thirdSize","inactive","legendIcon","entryValue","renderIcon","Legend","chartWidth","onBBoxUpdate","hPos","vPos","chartHeight","getBBoxSnapshot","getDefaultPosition","Dot","combineComparators","comparatorA","comparatorB","createIsCircular","areItemsEqual","cachedA","cachedB","getStrictProperties","sameValueZeroEqual","areArraysEqual","areDatesEqual","areErrorsEqual","areFunctionsEqual","areMapsEqual","aResult","bResult","matchedIndices","aIterable","bIterable","hasMatch","matchIndex","aEntry","bEntry","areNumbersEqual","areObjectsEqual","isPropertyEqual","areObjectsEqualStrict","descriptorA","descriptorB","arePrimitiveWrappersEqual","areRegExpsEqual","areSetsEqual","areTypedArraysEqual","areUrlsEqual","createCustomEqual","createInternalComparator","createCustomInternalComparator","createState","createCustomConfig","areArraysEqual$1","areMapsEqual$1","areObjectsEqual$1","areSetsEqual$1","createEqualityComparatorConfig","createEqualityComparator","createIsEqual","_indexOrKeyA","_indexOrKeyB","_parentA","_parentB","setRafTimeout","currTime","safeRequestAnimationFrame","_iterableToArray","createAnimateManager","shouldStop","_styles","restStyles","_handleChange","hint","prim","mapObject","getTransitionVal","_arrayWithoutHoles","_nonIterableSpread","ACCURACY","cubicBezierFactor","multyTime","cubicBezier","configBezier","_easing$1$split$0$spl2","curveX","curveY","derCurveX","newParams","bezier","evalT","derVal","isStepper","configEasing","_config$stiff","stiff","_config$damping","damping","_config$dt","stepper","currX","destX","currV","newV","configSpring","needContinue","calStepperVals","preVals","nextStepVals","_easing2","velocity","preObj","nextObj","preTime","beginTime","interKeys","timingStyle","stepperStyle","cafId","currStyle","Derived","hasNativeReflectConstruct","Super","Animate","handleStyleChange","changeStyle","canBegin","runAnimation","shouldReAnimate","currentFrom","isTriggered","manager","stopJSAnimation","_newState","onAnimationEnd","unSubscribe","onAnimationStart","startAnimation","_steps$","initialStyle","_steps$$duration","initialTime","sequence","nextItem","_nextItem$easing","nextProperties","preItem","runJSAnimation","newStyle","propsTo","runStepAnimation","onAnimationReStart","stateStyle","cloneContainer","_container$props","_container$props$styl","getRectanglePath","maxRadius","ySign","xSign","clockWise","newRadius","_newRadius","isInRectangle","py","minX","maxX","minY","maxY","isUpdateAnimationActive","animationBegin","rectangleProps","pathRef","totalLength","setTotalLength","getTotalLength","pathTotalLength","currWidth","currHeight","currY","initRange","initInterpolator","interpolator","InternMap","keyof","_intern","intern_get","intern_set","intern_delete","implicit","unknown","band","bandwidth","ordinalRange","r0","paddingInner","paddingOuter","rescale","rangeRound","pointish","stringCache","widthCache","cacheCount","SPAN_STYLE","MEASUREMENT_SPAN_ID","getStringSize","copyStyle","copyObj","removeInvalidKeys","cacheKey","measurementSpan","measurementSpanStyle","MULTIPLY_OR_DIVIDE_REGEX","ADD_OR_SUBTRACT_REGEX","CSS_LENGTH_UNIT_REGEX","NUM_SPLIT_REGEX","CONVERSION_RATES","cm","FIXED_CSS_LENGTH_UNITS","STR_NAN","DecimalCSS","convertToPx","_NUM_SPLIT_REGEX$exec","calculateArithmetic","expr","newExpr","_MULTIPLY_OR_DIVIDE_R","leftOperand","rightOperand","lTs","rTs","_ADD_OR_SUBTRACT_REGE","_leftOperand","_operator","_rightOperand","_lTs","_rTs","PARENTHESES_REGEX","evaluateExpression","expression","parentheticalExpression","calculateParentheses","reduceCSSCalc","safeEvaluateExpression","BREAKING_SPACES","calculateWordWidths","breakAll","wordsWithComputedWidth","spaceWidth","getWordsWithoutCalculate","getWordsByLines","scaleToFit","maxLines","wordWidths","initialWordsWithComputedWith","shouldLimitLines","currentLine","newLine","originalResult","trimmedResult","tempText","doesOverflow","findLongestLine","_checkOverflow2","doesPrevOverflow","doesMiddleOverflow","calculateWordsByLines","DEFAULT_FILL","_ref5$x","propsX","_ref5$y","propsY","_ref5$lineHeight","_ref5$capHeight","_ref5$scaleToFit","_ref5$textAnchor","textAnchor","_ref5$verticalAnchor","verticalAnchor","_ref5$fill","wordsByLines","startDy","e10","e5","tickSpec","power","log10","inc","ticks","tickIncrement","tickStep","ascending","descending","bisector","compare1","compare2","lo","zero","center","ascendingBisect","bisectRight","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","darkgrey","darkslategrey","dimgrey","lightgray","lightslategrey","rebeccapurple","slategrey","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgb_formatHex","rgb_formatRgb","clampa","clampi","Hsl","hslConvert","clamph","clampt","hsl2rgb","m1","m2","basis","v0","v1","v2","v3","t3","channels","displayable","formatHex8","formatHsl","linear","gamma","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","spline","genericArray","reA","reB","am","bm","one","numberArray","bimap","d0","d1","polymap","bisect","transformer","untransform","piecewise","clamper","interpolateRound","continuous","prefixExponent","formatSpecifier","specifier","FormatSpecifier","comma","formatDecimalParts","%","formatRounded","formatPrefix","grouping","thousands","currencyPrefix","currencySuffix","numerals","formatNumerals","newFormat","formatTypes","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","tickFormat","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","log2","logp","powp","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","radial","squared","unsquare","valueof","compareDefined","ascendingDefined","quickselect","swap","quantile","value0","quantileSorted","invertExtent","quantiles","quantize","formatLocale","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","timeInterval","floori","offseti","timeMinute","utcMinute","timeHour","utcHour","timeDay","utcDay","unixDay","timeWeekday","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","utcMonth","timeYear","utcYear","ticker","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","utcDate","utcFormat","pads","numberRe","percentRe","requoteRe","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekNumberMonday","parseFullYear","parseYear","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","timeWeek","timeSecond","utcTime","utcWeek","utcSecond","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","k21","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","s0","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","locale_shortWeekdays","shortDays","locale_months","locale_shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","utcFormats","parses","parseSpecifier","newParse","utcParse","stackValue","stackSeries","PLACE_HOLDER","isPlaceHolder","curry0","_curried","curryN","newArgs","firstFn","tailsFn","rangeStep","getDigitCount","newA","uninterpolateNumber","uninterpolateTruncation","_arr","getValidInterval","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","digitCount","Arithmetic","digitCountValue","stepRatio","stepRatioScale","formatStep","getTickOfSingleValue","tickCount","absVal","middleIndex","calculateStep","tickMin","tickMax","belowCount","upCount","scaleCount","getNiceTickValues","_getValidInterval2","cormin","cormax","_calculateStep","getTickValuesFixedDomain","_getValidInterval4","_getValidInterval6","ErrorBar","dataPointFormatter","xAxis","yAxis","errorBars","_dataPointFormatter","errorVal","lowBound","highBound","lineCoordinates","_errorVal","yMid","_scale","xMid","_xMin","_xMax","_yMin","_yMax","coordinates","getLegendProps","formattedGraphicalItems","legendWidth","legendContent","legendItem","legendData","legendDefaultProps","legendProps","sectors","legendType","itemDefaultProps","getMainColorOfGraphicItem","getWithHeight","getValueByDataKey","getDomainOfDataByKey","filterNil","_item$type","defaultedProps","getDomainOfErrorBars","axisType","errorBarChild","isErrorBarRelevantForAxis","mainValue","errorDomain","prevErrorArr","lowerValue","upperValue","getDomainOfItemsWithSameAxis","domains","isCategoricalAxis","getCoordinatesOfGrid","minValue","maxValue","syncWithTicks","hasMin","hasMax","getTicksOfAxis","axis","isGrid","isAll","duplicateDomain","offsetForBand","realScaleType","niceTicks","scaleContent","isCategorical","categoricalDomain","handlerWeakMap","combineEventHandlers","defaultHandler","childHandler","childWeakMap","combineHandler","EPS","STACK_OFFSET_MAP","none","stackOffsetNone","silhouette","wiggle","sij0","getStackedData","stackItems","offsetType","dataKeys","offsetAccessor","orderNone","offsetNone","oz","shapeStack","stackOrderNone","getCateCoordinateOfLine","bandSize","allowDuplicatedCategory","matchedTick","getCateCoordinateOfBar","getDomainOfStackGroups","stackGroups","stackId","stackedData","MIN_VALUE_REG","MAX_VALUE_REG","parseSpecifiedDomain","specifiedDomain","dataDomain","allowDataOverflow","getBandSizeOfAxis","isBar","bandWidth","orderedTicks","parseDomainOfCategoryAxis","calculatedDomain","axisChild","getTooltipItem","graphicalItem","tooltipType","chartType","PREFIX_LIST","Brush","leaveTimer","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","handleDrag","detachDragEndListener","handleDragEnd","leaveTimeOut","isTextActive","slideMoveStartX","attachDragEndListener","travellerDragStartHandlers","handleTravellerDragStart","scaleValues","getIndexInRange","tickFormatter","travellerWidth","movingTravellerId","brushMoveStartX","isFullGap","currentScaleValue","newScaleValue","chartElement","travellerX","_data$startIndex","_data$endIndex","traveller","travellerProps","ariaLabelBrush","handleEnterSlideOrTraveller","handleLeaveSlideOrTraveller","handleTravellerMoveKeyboard","isTravellerFocused","renderTraveller","handleSlideDragStart","getTextOfTick","alwaysShowText","isPanoramic","camelName","generatePrefixStyle","handleLeaveWrapper","handleTouchMove","renderBackground","renderPanorama","renderSlide","renderTravellerLayer","renderText","lineY","renderDefaultTraveller","updateId","prevUpdateId","prevTravellerWidth","prevX","prevWidth","scalePoint","createScale","valueRange","radianToDegree","angleInRadian","polarToCartesian","getAngleOfPoint","anotherPoint","distanceBetweenPoints","reverseFormatAngleOfSetor","startCnt","endCnt","inRangeOfSector","sector","_getAngleOfPoint","innerRadius","outerRadius","_formatAngleOfSector","formatAngleOfSector","formatAngle","renderRadialLabel","labelProps","labelAngle","deltaAngle","getDeltaAngle","startPoint","endPoint","dominantBaseline","Label","_ref4$offset","_props$className","textBreakAll","isPolarLabel","isPolar","positionAttrs","midAngle","_polarToCartesian","_polarToCartesian2","getAttrsOfPolarLabel","parentViewBox","verticalSign","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs2","_attrs3","sizeAttrs","getAttrsOfCartesianLabel","parseViewBox","labelViewBox","renderCallByParent","parentProps","checkPropsLabel","explicitChildren","implicitLabel","parseLabel","ifOverflowMatches","alwaysShow","ifOverflow","defaultAccessor","LabelList","_ref$valueAccessor","valueAccessor","idProps","parseLabelList","getTrapezoidPath","upperWidth","lowerWidth","widthGap","Trapezoid","trapezoidProps","currUpperWidth","currLowerWidth","getTangentCircle","cornerRadius","cornerIsExternal","centerRadius","theta","asin","centerAngle","lineTangencyAngle","circleTangency","lineTangency","getSectorPath","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","forceCornerRadius","Sector","sectorProps","deltaRadius","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","getSectorWithCorner","defaultPropTransformer","ShapeSelector","shapeType","elementProps","isSymbolsProps","Shape","_ref2$propTransformer","propTransformer","_ref2$activeClassName","activeClassName","getPropsFromShapeOption","isFunnel","isPie","isScatter","compareFunnel","shapeData","activeTooltipItem","_activeTooltipItem$la","_activeTooltipItem$la2","xMatches","yMatches","comparePie","startAngleMatches","endAngleMatches","compareScatter","zMatches","getActiveShapeIndexForTooltip","shapeKey","getShapeDataKey","tooltipPayload","_activeItem$tooltipPa","_activeItem$tooltipPa2","getActiveShapeTooltipPayload","activeItemMatches","datum","valuesMatch","mouseCoordinateMatches","comparison","getComparisonFn","indexOfMouseCoordinates","typeguardBarRectangleProps","xProp","yProp","xValue","yValue","heightValue","widthValue","BarRectangle","_Bar","Bar","isAnimationFinished","animationId","prevAnimationId","curData","activeBar","baseProps","handleAnimationStart","handleAnimationEnd","stepData","interpolatorX","interpolatorY","interpolatorWidth","interpolatorHeight","_interpolatorHeight","renderRectanglesStatically","renderRectanglesWithAnimation","_this4","backgroundProps","needClip","clipPathId","errorBarItems","dataPoint","errorBarProps","needClipX","needClipY","renderRectangles","renderErrorBar","xAxisId","yAxisId","minPointSize","barPosition","xAxisTicks","yAxisTicks","dataStartIndex","displayedData","findPositionOfBar","minPointSizeProp","numericAxis","stackedDomain","getBaseValueOfBar","rects","truncateByDomain","isValueNumber","minPointSizeCallback","baseValueScale","currentValueScale","computedHeight","_baseValueScale","_currentValueScale","tooltipPosition","formatAxisMap","axisMap","chartName","leftMirror","rightMirror","topMirror","bottomMirror","hasBar","calculatedPadding","needSpace","_axis$padding","mirror","offsetKey","smallestDistanceBetweenValues","sortedValues","smallestDistanceInPercent","rangeWidth","barCategoryGap","halfBand","_parseScale","d3Scales","parseScale","checkDomainOfScale","originalDomain","scaleType","tickValues","_domain","getTicksOfScale","finalAxis","rectWithPoints","ScaleHelper","bandAware","_offset2","createLabeledScales","scales","coord","ReferenceDot","isX","isY","getCoordinate","renderDot","isFront","calculateViewBox","XAxisContext","YAxisContext","ViewBoxContext","OffsetContext","ClipPathIdContext","ChartHeightContext","ChartWidthContext","ChartLayoutContextProvider","_props$state","xAxisMap","yAxisMap","useXAxisOrThrow","useYAxisOrThrow","useChartWidth","useChartHeight","ReferenceLineImpl","fixedX","fixedY","endPoints","isFixedX","isFixedY","isSegment","xAxisOrientation","yAxisOrientation","yCoord","xCoord","_coord","_points","_points2","getEndPoints","_endPoints","_endPoints$","_endPoints$2","lineProps","renderLine","rectWithCoords","ReferenceLine","ReferenceArea","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","rangeMin","rangeMax","getRect","renderRect","detectReferenceElementsDomain","axisId","specifiedTicks","areas","idKey","valueKey","finalDomain","key1","key2","tick","eventCenter","SYNC_EVENT","AccessibilityManager","_ref$coordinateList","coordinateList","_ref$container","_ref$layout","_ref$offset","_ref$mouseHandlerCall","mouseHandlerCallback","spoofMouse","_window2","_this$container$getBo","scrollOffsetX","scrollOffsetY","Basis","BasisClosed","BasisOpen","areaStart","_line","areaEnd","lineStart","_point","lineEnd","_y2","_y3","_y4","Bump","LinearClosed","Linear","slope3","h0","h1","slope2","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","Step","defined","curve","curveLinear","defined0","pointX","pointY","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","_t0","_y","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveBumpX","curveBumpY","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","getX","getY","lineFunction","_ref$points","baseLine","_ref$connectNulls","connectNulls","curveFactory","getCurveFactory","formatPoints","formatBaseLine","areaPoints","shapeArea","shapeLine","Curve","realPath","_ref$x","_ref$y","_ref$top","_ref$left","getRadialCursorPoints","activeCoordinate","getCursorPoints","innerPoint","outerPoint","Cursor","_element$props$cursor","_defaultProps","tooltipEventType","activePayload","activeTooltipIndex","tooltipAxisBandSize","elementPropsCursor","cursorComp","getCursorRectangle","_getRadialCursorPoint","cursorProps","payloadIndex","ORIENT_MAP","FULL_WIDTH_AND_HEIGHT","originCoordinate","renderAsIs","getDisplayedData","graphicalItems","dataEndIndex","itemsData","getDefaultDomainByAxisType","getTooltipContent","chartData","activeLabel","tooltipAxis","_child$props$data","getTooltipData","rangeObj","rangeData","chartX","chartY","calculateTooltipPos","orderedTooltipTicks","tooltipTicks","_ticks$length","unsortedTicks","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","calculateActiveTickIndex","_angle","_radius","getActiveCoordinate","getAxisMapByAxes","axes","axisIdKey","stackOffset","_childProps$domain2","domainStart","domainEnd","isDomainSpecifiedByUser","defaultDomain","_childProps$domain","childDomain","duplicate","hasDuplicate","errorBarsDomain","parseErrorBarsOfAxis","_defaultProps2","_defaultProps3","itemAxisId","itemHide","hasStack","axisDomain","getAxisMap","_ref4$axisType","AxisComp","Axis","_defaultProps4","_defaultProps5","getAxisMapByItems","createDefaultState","defaultShowTooltip","brushItem","isTooltipActive","getAxisNameByLayout","numericAxisName","cateAxisName","prevLegendBBox","_ref5$xAxisMap","_ref5$yAxisMap","offsetH","offsetV","brushBottom","legendBox","boxWidth","boxHeight","appendOffsetOfLegend","getCartesianAxisSize","axisObj","axisName","generateCategoricalChart","GraphicalChild","_ref6$defaultTooltipE","defaultTooltipEventType","_ref6$validateTooltip","validateTooltipEventTypes","axisComponents","getFormatItems","barSize","barGap","globalMaxBarSize","maxBarSize","_getAxisNameByLayout","hasGraphicalBarItem","formattedItems","childMaxBarSize","numericAxisId","cateAxisId","cateAxis","cateTicks","_item$type3","getStackedDataOfItem","itemIsBar","sizeList","globalSize","totalSize","_ref2$stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","barItems","barItemDefaultProps","barItemProps","selfSize","cateId","stackList","getBarSizeList","_getBandSizeOfAxis","barBandSize","_ref3$sizeList","realBarGap","useFull","fullBarSize","newPosition","newRes","originalSize","getBarPosition","composedFn","getComposedData","childIndex","updateStateOfAxisMapsOffsetAndStackGroups","reverseStackOrder","_getAxisNameByLayout2","_items","_item$type2","parentGroup","childGroup","getStackGroupsByAxisId","legendBBox","ticksObj","tooltipTicksGenerator","CategoricalChartWrapper","_Component","_props$id","_props$throttleDelay","cId","syncId","eventEmitterSymbol","syncMethod","applySyncEvent","triggerSyncEvent","mouse","getMouseInfo","_nextState","throttleTriggeredAfterMouseMove","_mouse","getReactEventByType","_nextState2","handleMouseDown","handleMouseUp","validateChartX","validateChartY","_element$props$active","getTooltipEventType","elementDefaultProps","axisOption","_element$props","radialLines","polarAngles","polarRadius","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","handleLegendBBoxUpdate","_tooltipItem$props$ac","tooltipItem","handleBrushChange","_element$props2","_element$props2$xAxis","_element$props2$yAxis","activePoint","basePoint","isRange","itemItemProps","activeDot","renderActiveDot","filterFormatItem","_item$props","activeShape","itemEvents","handleItemMouseEnter","handleItemMouseLeave","_this$getItemByXY","_ref11$graphicalItem","getItemByXY","_ref11$graphicalItem$","xyItem","renderActivePoints","CartesianGrid","renderReferenceElement","XAxis","YAxis","renderBrush","renderGraphicChild","Line","Area","Radar","RadialBar","Scatter","Pie","Funnel","renderCursor","PolarGrid","renderPolarGrid","PolarAngleAxis","renderPolarAxis","PolarRadiusAxis","Customized","renderCustomized","triggeredAfterMouseMove","throttleDelay","_this$props$margin$le","_this$props$margin$to","accessibilityManager","setDetails","displayDefaultTooltip","tooltipElem","defaultIndex","independentAxisCoord","dependentAxisCoord","scatterPlotElement","setIndex","_this$props$margin$le2","_this$props$margin$to2","boundingRect","xScale","yScale","toolTipData","scaledX","scaledY","tooltipEvents","handleMouseEnter","handleDoubleClick","handleMouseMove","handleMouseLeave","handleTouchStart","handleTouchEnd","handleContextMenu","handleOuterEvent","handleReceiveSyncEvent","_this$state$offset","axisProps","_this$state$xAxisMap","_this$state$yAxisMap","chartXY","itemDisplayName","activeBarItem","_activeBarItem","_this$props$tabIndex","_this$props$role","renderClipPath","keyboardEvent","parseEventsOfWrapper","renderLegend","renderTooltip","prevDataKey","prevHeight","prevLayout","prevStackOffset","prevMargin","_defaultState","keepFromPrevState","updatesToState","_brush$props$startInd","_brush$props","_brush$props$endIndex","_brush$props2","brush","hasDifferentStartOrEndIndex","newUpdateId","CategoricalChart","generateSimpleStrokeDasharray","remainLength","restLength","remainLines","emptyLines","mainCurve","curPoints","prevPoints","linesUnit","dotItem","curveDom","clipDot","customDotProps","renderDotItem","dotsProps","curveProps","animateNewValues","prevPointsDiffFactor","prevPointIndex","_interpolatorX","_interpolatorY","renderCurveStatically","currentStrokeDasharray","curLength","getStrokeDasharray","renderCurveWithAnimation","_filterProps","hasSinglePoint","_ref2$r","_ref2$strokeWidth","_ref3$clipDot","hasClipDot","renderCurve","renderDots","getEveryNthWithCondition","getAngledTickWidth","contentSize","unitSize","normalizedAngle","normalizeAngle","angleRadians","angleThreshold","atan","angledWidth","getAngledRectangleWidth","tickPosition","getTicks","minTickGap","getNumberIntervalTicks","candidates","sizeKey","getTickSize","boundaries","isWidth","getTickBoundaries","_ret","initialStart","stepsize","tickCoord","isShow","getEquidistantTicks","preserveEnd","tailSize","tailGap","getTicksStart","getTicksEnd","CartesianAxis","viewBoxOld","restPropsOld","htmlLayer","layerReference","getElementsByClassName","tickSize","tickMargin","finalTickSize","axisLine","needHeight","needWidth","tickLine","finalTicks","getTickTextAnchor","getTickVerticalAnchor","customTickProps","tickLineProps","_this2$getTickLineCoo","getTickLineCoord","lineCoord","tickProps","visibleTicksCount","renderTickItem","ticksGenerator","noTicksProps","renderAxisLine","renderTicks","XAxisImpl","axisOptions","YAxisImpl","LineChart","Background","renderLineItem","lineItem","restOfFilteredProps","HorizontalGridLines","_props$horizontal","horizontalPoints","lineItemProps","VerticalGridLines","_props$vertical","verticalPoints","HorizontalStripes","horizontalFill","_props$horizontal2","roundedSortedHorizontalPoints","colorIndex","VerticalStripes","_props$vertical2","verticalFill","roundedSortedVerticalPoints","defaultVerticalCoordinatesGenerator","defaultHorizontalCoordinatesGenerator","_props$stroke","_props$fill","_props$horizontal3","_props$horizontalFill","_props$vertical3","_props$verticalFill","propsIncludingDefaults","horizontalValues","verticalValues","useArbitraryXAxis","useYAxisWithFiniteDomainOrRandom","verticalCoordinatesGenerator","horizontalCoordinatesGenerator","isHorizontalValues","generatorResult","isVerticalValues","_generatorResult","BarChart","ProductOutlined","ProductOutlinedSvg","AppstoreAddOutlined","AppstoreAddOutlinedSvg","Dashboard","dailyOrders","setDailyOrders","monthlyOrders","setMonthlyOrders","dailyData","calculateDailyOrders","monthlyData","calculateMonthlyOrders","dailyCounts","dailyCount","totalOrders","monthlyCounts","currentMonth","monthlyOrdersCount","acceptedFiles","acceptedFilesArray","baseMimeType","validType","lowerFileName","lowerType","affixList","affix","getBody","onprogress","getError","onSuccess","files","isAccepted","flattenFileList","progressFileList","readDirectory","_readDirectory","readFile","_readFile","_traverseFileTree","wipIndex","reslove","webkitRelativePath","dirReader","createReader","readEntries","webkitGetAsEntry","_file","isDirectory","AjaxUploader","getUid","accept","attrAccept","uploadFiles","fileInput","_files","traverseFileTree","originFiles","postFiles","processFile","fileList","onBatchStart","parsedFile","beforeUpload","transformedFile","mergedAction","parsedData","mergedParsedFile","File","_isMounted","customRequest","defaultRequest","requestOption","reqs","_this$props3$classNam","_this$props3$styles","openFileDialogOnClick","hasControlInside","dirProps","webkitdirectory","onFileDrop","saveFileInput","uploader","AjaxUpload","saveUploader","multipart","uploadThumbnailSize","actionsCls","actionCls","actionsColor","uploadProgressOffset","uploadAnimateInlineIn","uploadAnimateInlineOut","inlineCls","genPictureStyle","listCls","genPictureCardStyle","uploadPictureCardSize","uploadPicCardSize","uploadToken","genDraggerStyle","genListStyle","FileTwoTone","FileTwoToneSvg","PaperClipOutlined","PaperClipOutlinedSvg","PictureTwoTone","PictureTwoToneSvg","file2Obj","lastModified","lastModifiedDate","updateFileList","nextFileList","fileIndex","getFileItem","isImageFileType","isImageUrl","thumbUrl","extension","filenameWithoutSuffix","extname","MEASURE_SIZE","previewImage","drawWidth","drawHeight","dataURL","trailColor","trailWidth","gapPosition","useTransitionDuration","pathsRef","prevTimeStamp","updated","pathStyle","Block","getPtgColors","parsedKey","ptgKey","gradientId","circleStyleForStack","gapDegree","circleNode","maskId","fromDeg","conicColors","linearColors","conicColorBg","linearColorBg","VIEW_BOX_SIZE","getCircleStyle","perimeter","perimeterWithoutGap","rotateDeg","stepSpace","offsetDeg","positionDeg","_defaultProps$props","_defaultProps$props$g","stepCount","stepGap","percentList","strokeColorList","mergedStrokeLinecap","stackPtg","getStepStokeList","PtgCircle","getStokeList","validProgress","getSuccessPercent","successPercent","originWidth","getMinPercent","realGapDegree","percentArray","realSuccessPercent","getPercentage","gapPos","circleContent","RCCircle","smallCircle","LineStrokeColorVar","Percent","genAntProgressActive","progressCls","remainingColor","lineBorderRadius","progressActiveMotionDuration","genCircleStyle","circleTextColor","circleTextFontSize","circleIconFontSize","genStepStyle","progressStepMinWidth","progressStepMarginInlineEnd","genSmallLine","progressToken","handleGradient","gradients","tempArr","formattedKey","sortGradient","percentPosition","infoAlign","infoPosition","trailStyle","percentStyle","successPercentStyle","lineInner","isOuterStart","isOuterEnd","customRounding","styledSteps","ProgressStatuses","showInfo","strokeColorNotArray","strokeColorNotGradient","strokeColorIsBright","percentNumber","progressStatus","progressStyle","isLineType","isPureLineType","progressInfo","isBrightInnerColor","Steps","listType","progressProps","actionIconRender","isImgUrl","showPreviewIcon","showRemoveIcon","showDownloadIcon","previewIcon","customPreviewIcon","customRemoveIcon","downloadIcon","customDownloadIcon","customExtra","onDownload","setMergedStatus","setShowProgress","uploadingClassName","thumbnail","aClassName","listItemClassName","linkProps","downloadOrDelete","picture","listItemNameClass","pictureCardActions","loadingProgress","InternalUploadList","appendAction","appendActionVisible","setMotionAppear","isPictureCardOrCirle","previewDataUrl","onInternalPreview","onInternalDownload","internalIconRender","loadingIcon","fileIcon","customIcon","acceptUploadDisabled","btnProps","handlePreview","handleDownload","listClassNames","listItemMotion","motionConfig","ListItem","LIST_IGNORE","InternalUpload","defaultFileList","showUploadList","propLocale","supportServerRender","mergedFileList","setMergedFileList","dragState","setDragState","wrapRef","changedFileList","cloneList","exceedMaxCount","batchFileInfoList","filteredFileInfoList","objectFileList","newFileList","fileObj","triggerFileObj","targetItem","handleRemove","currentFile","removedFileList","removeFileItem","ctxUpload","rcUploadProps","mergedBeforeUpload","fileListArgs","transformFile","realShowRemoveIcon","renderUploadList","buttonVisible","UploadList","mergedCls","dragCls","RcUpload","uploadBtnCls","uploadButton","Dragger","UploadOutlined","UploadOutlinedSvg","BrandPage","totalRecords","categoryLoading","currentBrand","setCurrentBrand","previewLogo","setPreviewLogo","submitLoading","setSubmitLoading","setSearchText","BrandName","CategoryId","showModal","logoUrl","handleSearchChange","_brand$brandName","brandNameMatch","categoryMatch","_category$categoryNam","cat","_values$LogoName","LogoName","logoName","Categories","setCategoryName","setCategoryId","isEditing","setIsEditing","isSubmitting","setIsSubmitting","hideModal","filteredCategories","indexOfLastCategory","indexOfFirstCategory","currentCategories","tagFontSize","tagLineHeight","tagIconSize","tagPaddingHorizontal","tagBorderlessBg","iconMarginInline","genPresetStyle","genTagStatusStyle","cssVariableType","capitalizedCssVariableType","tagToken","tagProps","deprecatedVisible","tagContext","isPreset","isStatus","isPresetStatusColor","tagStyle","tagClassName","handleCloseClick","isNeedWave","tagNode","PresetCmp","StatusCmp","CheckableTag","setUploading","uploadProgress","setUploadProgress","productImageFile","setProductImageFile","imagePreview","setImagePreview","charCount","setCharCount","uploadProps","ProductName","Description","BrandId","ShowRoomId","showRoomId","setImageFile","imagePreviewUrl","setImagePreviewUrl","selectedFile","Products","isAddModalVisible","setIsAddModalVisible","isUpdateModalVisible","setIsUpdateModalVisible","setIsImageModalVisible","isDetailModalVisible","setIsDetailModalVisible","isDescriptionModalVisible","setIsDescriptionModalVisible","selectedProduct","setSelectedProduct","fullImageUrl","setFullImageUrl","descriptionText","setDescriptionText","filterOutOfStock","setFilterOutOfStock","isUpdateImageModalVisible","setIsUpdateImageModalVisible","selectedProductIdForImage","setSelectedProductIdForImage","fetchProductData","_product$showRoomName","_product$brandName","productNameMatch","showroomMatch","brandMatch","stockFilter","truncatedText","handleUpdateProductImage","handleAddProduct","AddProduct","UpdateProduct","UpdateProductImage","fetchOrders","setOrderCycle","_response$payload","responseCode","FileTextOutlined","FileTextOutlinedSvg","subAmount","invoiceDate","_order$imagePath","XLSX","current_codepage","current_ansi","VALID_ANSI","CS2CP","set_ansi","cp","set_cp","reset_cp","utf16beread","$cptable","_getchar","_getansi","Base64_map","Base64_encode","e4","Base64_decode","has_buf","Buffer_from","nbfs","enc","new_raw_buf","new_unsafe_buf","s2a","s2ab","a2s","bconcat","bufs","maxlen","chr0","chr1","_strrev","pad0","pad_","rpad_","p2_32","pad0r","pad0r1","pad0r2","SSF_isgeneral","table_fmt","SSF_default_map","SSF_default_str","SSF_frac","sgn","P_2","P_1","Q_2","Q_1","SSF_parse_date_code","dout","date1904","SSF_fix_hijri","SSFbasedate","SSFdnthresh","SSFbase1904","datenum_local","epoch","SSF_strip_decimal","SSF_general_num","LOG10E","SSF_small_exp","SSF_large_exp","SSF_normalize_exp","SSF_general","SSF_format","SSF_write_date","fmt","ss0","outl","commaify","pct1","write_num_exp","fakee","$$","$1","$2","$3","frac1","dec1","closeparen","phone","hashq","rnd","dec","_frac","write_num_flt","ffmt","write_num","write_num_cm","sfmt","write_num_pct","aval","den","myn","myd","write_num_f1","lres","rres","flr","write_num_exp2","write_num_int","write_num_cm2","write_num_pct2","write_num_f2","SSF_abstime","fmt_is_date","cfregex2","chkcond","thresh","choose_fmt","in_str","SSF_split_fmt","dateNF","ssm","nstr","myv","ostr","decpt","lasti","retval","eval_fmt","SSF_load","SSF_load_table","tbl","make_ssf","dateNFregex","CRC32","T0","signed_crc_table","TT","slice_by_16_tables","T1","T2","T3","T4","T5","T6","T7","T8","T9","bstr","CFB","fs","dirname","write_dos_date","hms","write_shift","ymd","parse_extra_field","blob","prep_blob","read_shift","mtime","atime","ctime","get_fs","parse_zip","mboundary","FileIndex","FullPaths","init_cfb","start_di","fcnt","parse_mime","parse_mad","mver","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","ssz","fat_addrs","mv","chk","HEADER_SIGNATURE","check_get_mver","check_shifts","dir_cnt","nsectors","sectorify","sleuth_fat","sector_list","chkd","buf_chain","modulus","addr","__readInt32LE","__toBuffer","make_sector_list","ENDOFCHAIN","Paths","mini","minifat_store","namelen","__utf16le","clsid","read_date","get_sector_list","get_mfat_entry","read_directory","FI","FP","dad","build_full_paths","MSSZ","new_buf","cnt","__readUInt32LE","cfb","CLSID","nm","rebuild_cfb","seed_cfb","fullPaths","HEADER_CLSID","namecmp","elt","_write","_opts","fp","cstr","dispcnt","csl","qp","get_content_type","write_quoted_printable","write_base64_76","write_mad","cdirs","start_cd","crcs","sz_cd","namebuf","outbuf","_deflateRawSync","write_zip","mini_size","fat_size","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","consts","DIFSECT","FATSECT","_nm","_zlib","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","bit_swap_8","use_typed_arrays","bitswap8","bit_swap_n","read_bits_2","read_bits_3","read_bits_5","read_bits_7","read_bits_n","write_bits_3","write_bits_1","write_bits_8","write_bits_16","realloc","zero_fill_array","build_tree","clens","MAX","ccode","bl_count","ctree","cleni","fix_lmap","fix_dmap","dlens","_deflateRaw","DST_LN_RE","LEN_LN_RE","boff","write_stored","addrs","mlen","len_eb","dst_eb","write_huff_fixed","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","read_bits_4","next_code","hcodes","h2","_inflate","usz","woff","OL","max_len_1","max_len_2","inflate","warn_or_throw","wrn","csz","efsz","fcsz","EF","parse_local_file","meth","parse_dos_date","_csz","_usz","InflRaw","InflateRaw","_processChunk","_finishFlushFlag","bytesRead","_inflateRawSync","cfb_add","ContentTypeMap","ctype","ext","encoded","fdata","fname","cte","parse_quoted_printable","fpath","cfb_gc","UCFullPaths","UCPaths","UCPath","readFileSync","read_file","writeFileSync","writeFile","cfb_new","cfb_del","cfb_mov","old_name","new_name","ReadShift","CheckField","use_zlib","zlib","_inflateRaw","_fs","blobify","a2u","write_dl","utf8write","IE_SaveFile","msSaveBlob","downloads","Folder","o2","evert_key","evert","evert_num","basedate","datenum","refdate","dnthresh","refoffset","numdate","good_pd_date_1","good_pd_date","good_pd","fixdate","cc2str","debomit","dup","fuzzynum","lower_months","fuzzydate","zip_add_file","widx","ridx","utf8decode","zip_new","XML_HEADER","encodings","rencoding","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","parsexmlbool","utf8reada","utf8readb","utf8readc","utf8corpus","utf8read","htmldecode","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","XMLNS","XMLNS_main","XLMLNS","___toBuffer","___utf16le","__readUInt16LE","___hexlify","__hexlify","___utf8","__readUInt8","__utf8","___lpstr","__lpstr","___cpstr","__cpstr","___lpwstr","__lpwstr","___lpp4","__lpp4","___8lpp4","__8lpp4","___double","read_double_le","__double","is_buf","cpdoit","readUInt32LE","readDoubleLE","__readInt16LE","__readInt32BE","oI","oR","loc","oo","lens","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","cppayload","av","write_double_le","hexstr","fld","parsenoop","buf_array","blksz","newblk","curbuf","endbuf","_bufs","write_record","XLSBRecordEnum","shift_cell_xls","cRel","rRel","biff","shift_range_xls","encode_cell_xls","encode_cell","fix_row","encode_range_xls","encode_row","encode_col","decode_row","rowstr","decode_col","colstr","decode_cell","decode_range","encode_range","safe_decode_range","safe_format_cell","XF","numFmtId","format_cell","BErr","sheet_to_workbook","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","dense","_R","_C","_range","__R","__C","nullError","sheetStubs","cellDates","cell_ref","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","parse_RichStr","rgsStrRun","dwSizeStrRun","parse_BrtCommentText","write_BrtCommentText","write_StrRun","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBShortCell","write_XLSBShortCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","write_BrtColor","nTS","VT_STRING","DocSummaryPIDDSI","SummaryPIDSI","rgbify","XLSIcv","ct2type","CT_LIST","workbooks","xlsx","xlsm","xlsb","xlam","xltx","strs","comments","charts","dialogs","macros","write_ct","type2ct","evert_arr","f1","bookType","RELS","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","CMNT","CORE_PROPS","EXT_PROPS","CUST_PROPS","SST","STY","THEME","CHART","CHARTEX","CS","WS","DS","MS","IMG","DRAW","XLMETA","TCMNT","PEOPLE","VBA","get_rels_path","write_rels","rels","rid","add_rels","rId","relobj","targetmode","Type","Target","TargetMode","write_rdf_type","write_meta_ods","cp_doit","write_core_props","Props","CreatedDate","WTF","ModifiedDate","PseudoPropsPairs","write_ext_props","Application","Worksheets","baseType","write_cust_props","pid","write_vt","XLMLDocPropsMap","Subject","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","Language","write_TypedPropertyValue","write_FILETIME","XLSPSSkip","guess_property_type","write_PropertySet","RE","PIDSI","hdr","piao","pio","pinfo","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsebool","writebool","parseuint16","writeuint16","write_Bes","parse_ShortXLUnicodeString","cch","write_XLUnicodeRichExtendedString","xlstr","otext","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","write_HyperlinkString","write_Hyperlink","hashidx","Pretarget","write_XLSCell","ixfe","parse_XTI","parse_Ref8U","rwFirst","rwLast","write_Ref8U","write_BOF","write_BoundSheet8","hs","write_Format","write_XF","ixfeP","parse_ExternSheet","parse_BIFF5ExternSheet","write_HLink","write_HLinkTooltip","parse_ColInfo","colFirst","colLast","coldx","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_sheet","vfp","l7","nrow","fpos","rlen","current_cp","codepage","hend","sheetRows","dbf_to_aoa","wch","_RLEN","to_workbook","to_sheet","from_sheet","aoa","sheet_to_json","hcnt","coltypes","colwidths","coldecimals","guess","_guess","rout","SYLK","sylk_escapes","AA","HA","JA","AE","BE","CE","HE","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Ao","Bo","Co","Ho","Au","Bu","Cu","Hu","KC","DN","Hy","sylk_char_regex","sylk_char_fn","decode_sylk_char","newcc","sylk_to_aoa_str","next_cell_format","sht","rowinfo","colinfo","Mval","rstr","RT","C_seen_K","C_seen_X","C_seen_S","C_seen_E","formula","rc_to_a1","shrbase","shift_formula_str","F_seen","process_col","hpt","hpx","pt2px","sylk_to_sheet","aoasht","sylk_to_aoa","write_ws_cell_sylk","a1_to_rc","preamble","RS","rec","wpx","width2px","px2char","px2pt","write_ws_rows_sylk","DIF","dif_to_aoa_str","dif_to_sheet","dif_to_aoa","push_field","topic","push_value","ETH","eth_to_sheet","eth_to_aoa","sep","sheet_to_eth_data","PRN","set_text_arr","guess_seps","guess_sep_weights","guess_sep","instr","dsv_to_sheet_str","FS","sepcc","startcc","_re","dateNF_regex","finish_cell","datestr","timestr","dateNF_fix","cellText","cellNF","prn_to_sheet_str","prn_to_aoa_str","prn_to_sheet","firstbyte","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook_buf","next_n","sidx","snames","realnames","refguess","vers","qpro","tmpcell","WK3Enum","osheets","rnames","parse_cell","parse_LABEL","write_LABEL","write_INTEGER","write_NUMBER","wk1_parse_rc","FuncTab","BinOpTab","parse_cell_3","write_LABEL_16","wsidx","parse_NUMBER_17","write_NUMBER_17","parse_NUMBER_27","parse_SHEETNAMECS","write_XFORMAT_SHEETNAME","argc","argL","argR","wk1_fmla_to_csf","sheet_to_wk1","write_biff_rec","write_BOF_WK1","write_RANGE","max_R","book_to_wk3","wscnt","write_BOF_WK3","straywsregex","write_sst_xml","sst","bookSST","Count","uniqueCount","Unique","sitag","write_BrtSSTItem","write_sst_bin","write_BrtBeginSst","_JS2ANSI","crypto_CreatePasswordVerifier_Method1","PasswordArray","Verifier","PasswordDecoded","RTF","rtf_to_sheet","rtf_to_sheet_str","rowtf","rtfre","last_index","rgb2Hex","MDW","char2width","coll","PPI","write_sty_xml","SSF","NF","formatCode","write_numFmts","cellXfs","write_cellXfs","write_BrtFmt","write_BrtFont","grbit","strike","condense","write_FontFlags","bold","sss","vertAlign","scheme","rev_XLSBFillPTNames","XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","patternType","write_BrtXF","write_Blxf","parse_BrtBorder","write_BORDERS_bin","write_STYLES_bin","xfId","builtinId","write_TABLESTYLES_bin","defTableStyle","defPivotStyle","write_BrtBeginTableStyles","write_sty_bin","write_FMTS_bin","write_FONTS_bin","write_FILLS_bin","fontId","fillId","borderId","write_CELLSTYLEXFS_bin","write_CELLXFS_bin","write_DXFS_bin","write_theme","Themes","themeXLSX","write_xlmeta_bin","write_BrtMdtinfo","write_BrtBeginEsfmd","write_BrtBeginEsmdb","write_BrtMdb","write_xlmeta_xml","_shapeid","write_comments_vml","csize","joinstyle","gradientshapeok","coordsize","fillopts","fillparm","fillxml","fillcolor","strokecolor","write_comments_xml","iauthor","lastauthor","write_tcmnt_xml","people","carr","rootid","tcopts","tcid","parentId","personId","parse_BrtCommentAuthor","write_comments_bin","write_BrtCommentAuthor","write_BrtBeginComment","VBAFMTS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_PtgAttrBaxcel","bitSemi","parse_PtgAttrSpaceType","parse_SerAr","parse_PtgExtraMem","cce","parse_PtgExtraArray","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfLel","PtgListRT","PtgTypes","iftab","FtabArgc","Ftab","cparams","parsetab","Cetab","nameindex","parse_RgceLocRel_BIFF2","parse_RgceLocRel","parse_RgceAreaRel","ixti","parse_PtgNameX_BIFF5","PtgDupes","Ptg18","coltype","Ptg19","bitIf","bitGoto","parse_RgbExtra","rgce","parse_Rgce","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","get_ixti_raw","supbooks","XTI","SID","Name","get_ixti","ixtiraw","sname","formula_quote_sheet_name","stringify_formula","nameidx","last_sp","sp","fflen","lbl","xlfn","externbook","bookidx","itab","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","_left","write_Formula","os","o1","write_FormulaValue","o3","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","browser_has_Map","get_sst_id","revarr","col_obj_w","outlineLevel","default_margins","defs","get_cell_style","revssf","ssf","applyNumberFormat","check_ws","sheetprot_deffalse","sheetprot_deftrue","write_ws_xml_cell","oldt","oldv","Strings","revStrings","write_ws_xml","rdata","_drawing","vbaraw","cname","Workbook","CodeName","codeName","outlineprops","summaryBelow","summaryRight","above","write_ws_xml_sheetpr","sview","workbookViewId","Views","rightToLeft","RTL","write_ws_xml_sheetviews","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","write_ws_xml_cols","_cell","customHeight","write_ws_xml_data","write_ws_xml_protection","Names","Sheet","Ref","write_ws_xml_autofilter","merges","write_ws_xml_merges","relc","ignoreEC","numberStoredAsText","sqref","write_row_header","miyRw","ncolspan","lcs","caddr","write_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","parse_BrtShortReal","parse_BrtMergeCell","write_BrtMergeCell","BrtMarginKeys","write_ws_bin_cell","last_seen","ncell","write_BrtShortIsst","write_BrtCellIsst","write_BrtShortSt","write_BrtCellSt","write_BrtShortRk","write_BrtCellRk","write_BrtShortReal","write_BrtCellReal","write_BrtShortBool","write_BrtCellBool","write_BrtShortError","write_BrtCellError","write_BrtShortBlank","write_BrtCellBlank","write_MERGECELLS","write_COLINFOS","write_BrtColInfo","write_IGNOREECS","write_BrtCellIgnoreEC","write_HLINKS","locidx","write_BrtHLink","write_WSVIEWS2","write_BrtBeginWsView","write_SHEETPROTECT","write_ws_bin","write_BrtWsProp","cap","write_CELLTABLE","write_AUTOFILTER","write_LEGACYDRAWING","WBPropsDef","badchars","check_ws_name","safe","_good","check_wb","codes","write_wb_xml","write_names","workbookPr","WBProps","Hidden","sheetId","Comment","localSheetId","write_BOOKVIEWS","vistab","write_wb_bin","write_BrtFileVersion","filterPrivacy","write_BrtWbProp","iTabID","strRelID","write_BrtBundleSh","write_BUNDLESHS","write_ws","write_cmnt","write_props_xlml","xlml_write_docprops","Custprops","BLACKLIST","xlml_write_custprops","write_name_xlml","write_ws_xlml_cell","marr","write_ws_xlml_row","write_ws_xlml","write_ws_xlml_names","write_ws_xlml_table","objects","scenarios","selectLockedCells","selectUnlockedCells","write_ws_xlml_wsopts","write_xlml","write_sty_xlml","write_names_xlml","PSCLSID","write_xlscfb","wbpath","write_biff_buf","Keys","DSEntries","SEntries","CEntries","DocSummaryRE","SummaryRE","CEntries2","write_xls_props","vba","newpath","fill_vba_xls","cellFormula","Ptg","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","parse_FontFlags","bCharSet","xColorType","icv","parse_BrtColor","ixfeParent","ifmt","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","rfx","fAlwaysCalc","relId","write_BIFF2Cell","write_ws_biff2_cell","write_BIFF2INT","write_BIFF2NUM","write_BIFF2BERR","write_BIFF2LABEL","write_biff2_buf","write_ws_biff2","write_FONTS_biff8","write_Font","write_ws_cols_biff8","write_ColInfo","write_ws_biff8_cell","write_Number","write_BoolErr","write_LabelSst","write_Label","write_ws_biff8","_WB","_sheet","MAX_ROWS","guts","write_Guts","write_Dimensions","write_Window2","write_MergeCells","write_ws_biff8_hlinks","write_FEAT","write_biff8_global","_sheets","_wb","writezeroes","write_WriteAccess","write_RRTabId","write_Window1","safe1904","write_FMTS_biff8","write_CELLXFS_biff8","write_biff_continue","write_SST","blen","fix_write_opts","write_biff8_buf","make_html_row","rowspan","colspan","HTML_BEGIN","HTML_END","make_html_preamble","sheet_to_html","sheet_add_dom","or_R","or_C","midx","is_dom_element_hidden","elts","Aelts","Aelti","parse_dom_table","get_computed_style","get_get_computed_style_function","write_styles_ods","master_styles","write_content_ods","null_cell_xml","ods","ROWS","textp","_Fref","text_p","_tgt","fods","cidx","colobj","write_automatic_styles_ods","write_ods","manifest","rdf","write_rdf","write_manifest","u8_to_dataview","stru8","u8concat","u8a","parse_varint49","ptr","varint","write_varint49","varint_to_i32","parse_shallow","write_shallow","parse_iwa_file","write_iwa_file","ias","midata","aipayload","parse_snappy_chunk","chunks","decompress_iwa_file","compress_iwa_file","write_new_storage","dv","mantissa","writeDecimal128LE","setFloat64","setUint32","write_old_storage","parse_TSP_Reference","write_tile_row","tri","last_offset","cell_storage","_dv","_last_offset","_cell_storage","celload","_celload","setUint16","fix_opts_func","trunc","dependents","packet2","indices_varint","ivi","mess","u8contains","docroot","packet","sheetrootref","cruidsref","oldbucket","cruids","row_header_ref","base_bucket","_bucket","col_header_ref","sstref","sstroot","sentry","sxi","sstdata","newsst","raw32","tile","tileref","tileroot","tentry","tiledata","rowload","R2","tilerow","raw3","write_numbers_iwa","wbrels","wbext","vbafmt","threadedcomments","coreprops","extprops","custprops","themes","calcchains","drawings","TODO","_sn","wsrels","need_vml","rId1","write_sst","write_wb","write_sty","write_xlmeta","write_zip_xlsxb","write_zip_xlsx","needtc","person","providerId","write_people_xml","write_cfb_ctr","write_zip_denouement","oopts","ftype","encrypt_agile","write_string_type","bom","write_binary_type","writeSync","write_stxt_type","sheet_to_txt","sheet_to_csv","write_cfb_type","write_zip_type","resolve_book_type","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","header_cnt","skipHidden","blankrows","qreg","make_csv_row","rs","forceQuotes","endregex","strip","sheet_add_json","js","skipHeader","ws_get_cell_stub","RC","book_new","book_append_sheet","roll","cell_set_hyperlink","split_cell","json_to_sheet","table_to_sheet","table_to_book","sheet_to_formulae","cmds","sheet_to_row_object_array","sheet_get_cell","book_set_sheet_visibility","wb_sheet_idx","cell_set_number_format","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","dynamic","rngstr","SHEET_VISIBLE","SHEET_HIDDEN","SHEET_VERY_HIDDEN","_salesOrder$","_salesOrder$2","_salesOrder$3","_salesOrder$4","printRef","downloadRef","handlePrint","printContent","newWindow","exportToExcel","invoiceData","excelBuffer","PrintableInvoice","Orders","selectedCheckboxes","setSelectedCheckboxes","setSelectAll","isModalOpen","setIsModalOpen","isDetailModalOpen","setIsDetailModalOpen","selectedOrderCycle","setSelectedOrderCycle","setPagination","cachedOrderDetails","setCachedOrderDetails","fetchCurrentMonthOrders","startOfMonth","handleCheckboxClick","groupedOrders","filteredOrders","fullNameMatch","statusMatch","handleSelectAll","newCheckedState","updatedCheckboxes","DateTimeFormat","timeZone","dateStyle","timeStyle","paymentMode","Confirmed","Pending","Unreachable","Cancelled","Delivery","Completed","openCycleModal","orderDetails","openDetailModal","handleFetchOrders","formattedData","Status","worksheet","workbook","UpdateOrderCycleModal","OrderDetailsModal","ShowRoom","loadingBrands","loadingShowrooms","modalVisible","setModalVisible","currentShowroom","setCurrentShowroom","showroomsWithBrandNames","indexOfLastShowroom","indexOfFirstShowroom","currentShowrooms","showAtHomePage","orderIndex","headerColorCode","elaspedTime","handleEditShowroom","dateString","Users","filteredUsers","lowercasedValue","_user$fullName","_user$contact","_user$position","handleSearch","Customers","filteredData","setFilteredData","sortedCustomers","createdAt","downloadPDF","tableData","adOptions","AdvertisementPage","editForm","editModalVisible","setEditModalVisible","addModalVisible","setAddModalVisible","selectedAd","setSelectedAd","selectedAdsName","setSelectedAdsName","handleImageClick","adsName","indexOrder","adsNote","handleEditClick","AdminPage","AdminLayout","Brands","DashboardOutlined","DashboardOutlinedSvg","GREEN_COLOR","toggleCollapse","AgentOrders","RiseOutlined","RiseOutlinedSvg","FallOutlined","FallOutlinedSvg","AgentDashboard","weeklyOrders","setWeeklyOrders","percentageChange","setPercentageChange","_dailyData","calculateWeeklyOrders","updateDailyOrders","weeklyCounts","_dailyData2","_dailyData3","todayOrders","yesterdayOrders","getTotalLengthOfCurrentMonthOrders","currentMonthData","OrderSuccessPage","addressPayload","handleOrderCompletion","gif","handleViewOrders","handleBackToShopping","ReloadOutlined","ReloadOutlinedSvg","NoInternetPage","isOnline","setIsOnline","onLine","handleOnline","handleOffline","NoInternetVector","reload","ClusterOutlined","ClusterOutlinedSvg","setShowModal","toggleSidebar","confirmLogout","cancelLogout","ContentPage","ContentManagerPage","ContentDashboard","Showroom","Banner","handleCancelLogout","FulfillmentsDashboard","_dailyOrders$at","setTotalOrders","FulfillmentPage","FulfillmentHome","FulfillmentsOrder","PaymentStatusChecker","pollPaymentStatus","attempts","paymentStatus","_result$data","Accept","getPaymentStatus","Sitemap","IPhone16","Samsung","Tecno","Tablet","Phones","productsLoading","Computers","Television","structuredData","Aircondition","GTM_ID","Refrigerator","Accessories","Speakers","Blender","Fan","ShowroomProductsPage","indexOfLastProduct","indexOfFirstProduct","discount","calculateDiscount","BreadcrumbSeparator","__ANT_BREADCRUMB_SEPARATOR","restItem","useItemRender","mergedItemRender","paramsKeys","getBreadcrumbName","InternalBreadcrumbItem","breadcrumbItem","mergeDropDownProps","menuProps","renderBreadcrumbNode","BreadcrumbItem","__ANT_BREADCRUMB_ITEM","iconFontSize","linkColor","linkHoverColor","lastItemColor","separatorMargin","separatorColor","genBreadcrumbStyle","route2item","breadcrumbName","itemBreadcrumbName","Breadcrumb","legacyRoutes","crumbs","useItems","itemRenderRoutes","itemSeparator","mergedPath","breadcrumbClassName","Separator","Breadcrumbs","pathnames","ProtectedRoute","allowedRoles","userRole","getUserRole","getUserPosition","ConditionalNavbar","isAdminPath","App","Checkout","CartUpdatePage","OrderHistory","Policies","OrderSuccess","OrderReceived","Cancellation","Iphone16","AdminLogin","AdminRegister","AgentHome","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","KEY_PREFIX","FLUSH","REHYDRATE","PERSIST","PURGE","REGISTER","enumerableOnly","autoMergeLevel1","inboundState","originalState","reducedState","createPersistoid","blacklist","whitelist","storageKey","keyPrefix","defaultSerialize","writeFailHandler","lastState","stagedState","keysToProcess","timeIterator","writePromise","processNextKey","endState","subState","in","onWriteFail","passWhitelistBlacklist","getStoredState","deserialize","defaultDeserialize","serialized","rawState","serial","warnIfRemoveError","registry","bootstrapped","persistorReducer","firstIndex","rootReducer","categoryReducer","brandReducer","productReducer","showroomReducer","orderReducer","userReducer","customerReducer","cartReducer","shippingReducer","advertismentReducer","getDefaultMiddleware","immutableCheck","serializableCheck","actionCreatorCheck","middlewareArray","thunkMiddleware","middleware","devTools","enhancers","finalMiddleware","isPlainObject2","finalCompose","compose2","trace","middlewares","createStore2","middlewareAPI","applyMiddleware","getDefaultEnhancers","configureStore","baseReducer","stateReconciler","defaultGetStoredState","_persistoid","_purge","_paused","conditionalUpdate","_persist","rehydrated","restState","_sealed","_rehydrate","rehydrate","restoredState","migrate","migratedState","migrateErr","purgeStoredState","persistReducer","persistor","boostrappedCb","_pStore","rehydrateAction","purge","purgeResult","flushResult","manualPersist","persistStore","PersistGate","_getPrototypeOf2","onBeforeLift","_unsubscribe","handlePersistorState","reportWebVitals"],"sourceRoot":""}