{"version":3,"file":"vendor.js","mappings":"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AAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA,mCAAmC,oCAAoC,gBAAgB;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP,6EAA6E,OAAO;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACA;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9OA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMw8D,gBAAN,CAAuB;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,gBAAN,CAAuB;AAGvB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,UAAU,GAAG,GAAnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,OAAT,CAAiBlgG,IAAjB,EAAuBmgG,WAAvB,EAAoC;EAChC,OAAO;IAAE19F,IAAI,EAAE;IAAE;IAAV;IAA+CzC,IAA/C;IAAqDmgG,WAArD;IAAkEnyF,OAAO,EAAE;EAA3E,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASoyF,OAAT,CAAiBC,OAAjB,EAA0BC,MAAM,GAAG,IAAnC,EAAyC;EACrC,OAAO;IAAE79F,IAAI,EAAE;IAAE;IAAV;IAA+C69F,MAA/C;IAAuDD;EAAvD,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,KAAT,CAAeC,KAAf,EAAsBxyF,OAAO,GAAG,IAAhC,EAAsC;EAClC,OAAO;IAAEvL,IAAI,EAAE;IAAE;IAAV;IAA6C+9F,KAA7C;IAAoDxyF;EAApD,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyyF,QAAT,CAAkBD,KAAlB,EAAyBxyF,OAAO,GAAG,IAAnC,EAAyC;EACrC,OAAO;IAAEvL,IAAI,EAAE;IAAE;IAAV;IAAgD+9F,KAAhD;IAAuDxyF;EAAvD,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASo6C,KAAT,CAAes4C,MAAf,EAAuB;EACnB,OAAO;IAAEj+F,IAAI,EAAE;IAAE;IAAV;IAA6C69F,MAAM,EAAEI,MAArD;IAA6D7S,MAAM,EAAE;EAArE,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASroF,KAAT,CAAexF,IAAf,EAAqBsgG,MAArB,EAA6BtyF,OAA7B,EAAsC;EAClC,OAAO;IAAEvL,IAAI,EAAE;IAAE;IAAV;IAA6CzC,IAA7C;IAAmDsgG,MAAnD;IAA2DtyF;EAA3D,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2yF,SAAT,CAAmBH,KAAnB,EAA0B;EACtB,OAAO;IAAE/9F,IAAI,EAAE;IAAE;IAAV;IAAiD+9F;EAAjD,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASI,UAAT,CAAoBC,eAApB,EAAqCL,KAArC,EAA4CxyF,OAAO,GAAG,IAAtD,EAA4D;EACxD,OAAO;IAAEvL,IAAI,EAAE;IAAE;IAAV;IAAkDiwB,IAAI,EAAEmuE,eAAxD;IAAyEC,SAAS,EAAEN,KAApF;IAA2FxyF;EAA3F,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8yF,SAAT,CAAmBN,KAAnB,EAA0BxyF,OAAO,GAAG,IAApC,EAA0C;EACtC,OAAO;IAAEvL,IAAI,EAAE;IAAE;IAAV;IAAiDq+F,SAAS,EAAEN,KAA5D;IAAmExyF;EAAnE,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+yF,YAAT,CAAsB/yF,OAAO,GAAG,IAAhC,EAAsC;EAClC,OAAO;IAAEvL,IAAI,EAAE;IAAE;IAAV;IAAoDuL;EAApD,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgzF,YAAT,CAAsBF,SAAtB,EAAiC9yF,OAAO,GAAG,IAA3C,EAAiD;EAC7C,OAAO;IAAEvL,IAAI,EAAE;IAAG;IAAX;IAAmDq+F,SAAnD;IAA8D9yF;EAA9D,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASu9E,KAAT,CAAe3+E,QAAf,EAAyBk0F,SAAzB,EAAoC9yF,OAAO,GAAG,IAA9C,EAAoD;EAChD,OAAO;IAAEvL,IAAI,EAAE;IAAG;IAAX;IAA8CmK,QAA9C;IAAwDk0F,SAAxD;IAAmE9yF;EAAnE,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,OAAN,CAAc;EACV1vI,WAAW,CAAC2vI,cAAD,EAAiBC,SAAjB,EAA4BC,QAA5B,EAAsC;IAC7C,KAAKF,cAAL,GAAsBA,cAAtB;IACA,KAAKC,SAAL,GAAiBA,SAAjB;IACA,KAAKC,QAAL,GAAgBA,QAAhB;IACA,KAAKC,QAAL,GAAgB,IAAhB;IACA,KAAKC,aAAL,GAAqB,IAArB;IACA,KAAKC,OAAL,GAAe,IAAf;EACH;EACD;AACJ;AACA;AACA;;;EACe,IAAPT,OAAO,CAACA,OAAD,EAAU;IACjB,KAAKO,QAAL,GAAgBP,OAAhB;IACA,KAAKQ,aAAL,GAAqB,IAArB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACoB,IAAZE,YAAY,CAAC19C,EAAD,EAAK;IACjB,IAAIkd,WAAW,IAAIld,EAAE,IAAI,IAArB,IAA6B,OAAOA,EAAP,KAAc,UAA/C,EAA2D;MACvD;MACA,IAAIud,OAAO,IAAIA,OAAO,CAACC,IAAvB,EAA6B;QACzBD,OAAO,CAACC,IAAR,CAAc,4CAA2C/uF,IAAI,CAACC,SAAL,CAAesxE,EAAf,CAAmB,IAA/D,GACR,oFADL;MAEH;IACJ;;IACD,KAAK29C,UAAL,GAAkB39C,EAAlB;EACH;;EACe,IAAZ09C,YAAY,GAAG;IACf,OAAO,KAAKC,UAAZ;EACH;EACD;AACJ;AACA;AACA;;;EACqB,IAAbC,aAAa,CAACtsI,KAAD,EAAQ;IACrB;IACA;IACA;IACA,IAAIA,KAAJ,EAAW;MACP,KAAK+rI,SAAL,GAAiB/rI,KAAjB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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM+uI,IAAN,CAAW;EACPrxI,WAAW,CAAC2vI,cAAD,EAAiB2B,WAAjB,EAA8B;IACrC,KAAK3B,cAAL,GAAsBA,cAAtB;IACA,KAAK4B,QAAL,GAAgB,IAAIC,WAAJ,EAAhB;IACA,KAAKC,gBAAL,GAAwB,IAAxB;IACA,KAAKC,gBAAL,GAAwB,IAAxB;IACA,KAAKC,YAAL,GAAoB,IAApB;IACA,KAAKC,YAAL,GAAoB,IAApB;IACA,KAAKH,gBAAL,GAAwBH,WAAxB;EACH;EACD;AACJ;AACA;;;EACY,IAAJO,IAAI,CAACC,SAAD,EAAY;IAChB,KAAKP,QAAL,CAAcjC,SAAd,GAA0B,KAAKiC,QAAL,CAAcM,IAAd,GAAqBC,SAA/C;;IACA,KAAKC,WAAL;EACH;EACD;AACJ;AACA;;;EACgB,IAARC,QAAQ,CAACV,WAAD,EAAc;IACtBW,cAAc,CAAC,UAAD,EAAaX,WAAb,CAAd;IACA,KAAKG,gBAAL,GAAwBH,WAAxB;IACA,KAAKK,YAAL,GAAoB,IAApB,CAHsB,CAGI;;IAC1B,KAAKI,WAAL;EACH;EACD;AACJ;AACA;;;EACgB,IAARG,QAAQ,CAACZ,WAAD,EAAc;IACtBW,cAAc,CAAC,UAAD,EAAaX,WAAb,CAAd;IACA,KAAKI,gBAAL,GAAwBJ,WA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,IAAI,EAAE2yH,+CADqG;IAE3GxyH,IAAI,EAAE,CAAC;MACC5C,IAAI,EAAE,WADP;MAECmuI,UAAU,EAAE;IAFb,CAAD;EAFqG,CAAD,CAAtH;AAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAMuJ,0BAA0B,GAAG,IAAIl6I,yDAAJ,CAAmB,4BAAnB,CAAnC,EACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMm6I,QAAN,CAAe;EACXx3I,WAAW,CAACu6H,MAAD,EAASkd,eAAT,EAA0B;IACjC,KAAKld,MAAL,GAAcA,MAAd;IACA,KAAKkd,eAAL,GAAuBA,eAAvB;EACH;;EACDd,SAAS,CAAC9yI,KAAD,EAAQ26H,MAAM,GA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diC,EAejC,YAfiC,EAgBjC,WAhBiC,EAiBjC,cAjBiC,EAkBjC,WAlBiC,CAAtB,CAAf;IAoBA0rD,eAAe,CAACnuC,eAAe,CAACsuC,YAAjB,EAA+B,CAC1C,aAD0C,EAE1C,iBAF0C,EAG1C,WAH0C,EAI1C,WAJ0C,EAK1C,WAL0C,EAM1C,cAN0C,EAO1C,eAP0C,EAQ1C,YAR0C,EAS1C,WAT0C,EAU1C,WAV0C,EAW1C,iBAX0C,EAY1C,aAZ0C,EAa1C,YAb0C,CAA/B,CAAf;EAeH;;EACD,OAAOL,gBAAP;AACH;;AACD,SAASE,eAAT,CAAyB97L,GAAzB,EAA8Bk8L,KAA9B,EAAqC;EACjC,KAAK,MAAMC,IAAX,IAAmBD,KAAnB,EACIN,gBAAgB,CAACO,IAAI,CAACn9L,WAAL,EAAD,CAAhB,GAAuCgB,GAAvC;AACP;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMo8L,+BAA+B,GAAG,IAAI5mH,GAAJ,CAAQ,CAAC,SAAD,EAAY,OAAZ,EAAqB,iBAArB,EAAwC,gBAAxC,EAA0D,KAA1D,EAAiE,eAAjE,CAAR,CAAxC;AACA;AACA;AACA;AACA;;AACA,SAAS6mH,6BAAT,CAAuC/0D,QAAvC,EAAiD;EAC7C;EACA;EACA,OAAO80D,+BAA+B,CAAClvK,GAAhC,CAAoCo6G,QAAQ,CAACtoI,WAAT,EAApC,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,kCAAkC,GAAG,CAA3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,cAAN,CAAqB;EACjBhxM,WAAW,CAACixM,cAAD,EAAiB;IACxB,KAAKA,cAAL,GAAsBA,cAAtB;IACA;;IACA,KAAKC,iBAAL,GAAyB,KAAzB;IACA;AACR;AACA;AACA;;IACQ,KAAKC,WAAL,GAAmB,KAAnB;IACA,KAAKC,oBAAL,GAA4B,KAA5B;IACA;;IACA,KAAKC,cAAL,GAAsB,IAAtB;IACA;;IACA,KAAKC,cAAL,GAAsB,IAAtB;IACA;;IACA,KAAKC,kBAAL,GAA0B,IAA1B;IACA;;IACA,KAAKC,kBAAL,GAA0B,IAA1B;IACA,KAAKC,iBAAL,GAAyB,IAAzB;IACA,KAAKC,kBAAL,GAA0B,IAA1B,CAnBwB,CAoBxB;IACA;;IACA;AACR;AACA;AACA;AACA;;IACQ,KAAKC,YAAL,GAAoB,IAAIl9L,GAAJ,EAApB;IACA;AACR;AACA;AACA;AACA;;IACQ,KAAKm9L,aAAL,GAAqB,IAAIn9L,GAAJ,EAArB;IACA,KAAKo9L,mBAAL,GAA2B,EAA3B;IACA,KAAKC,mBAAL,GAA2B,EAA3B;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIC,kBAAkB,CAAC3uK,KAAD,EAAQ;IACtB;IACA;IACA;IACA;IACA;IACA;IACA,IAAI4uK,OAAO,GAAG,IAAd;IACA,IAAInyM,IAAI,GAAGujC,KAAK,CAACvjC,IAAjB;;IACA,QAAQujC,KAAK,CAAC9gC,IAAd;MACI,KAAK;MAAE;MAAP;QACI0vM,OAAO,GAAG,KAAKC,w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ACH;;AACD,SAASgzM,oBAAT,GAAgC;EAC5B,OAAON,gBAAgB,CAACC,MAAjB,CAAwBM,iBAA/B;AACH;;AACD,SAASC,yBAAT,GAAqC;EACjCR,gBAAgB,CAACC,MAAjB,CAAwBM,iBAAxB;AACH;;AACD,SAASE,yBAAT,GAAqC;EACjCT,gBAAgB,CAACC,MAAjB,CAAwBM,iBAAxB;AACH;;AACD,SAASG,kBAAT,GAA8B;EAC1B,OAAOV,gBAAgB,CAACG,eAAxB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASQ,gBAAT,GAA4B;EACxBX,gBAAgB,CAACG,eAAjB,GAAmC,IAAnC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASS,iBAAT,GAA6B;EACzBZ,gBAAgB,CAACG,eAAjB,GAAmC,KAAnC;AACH;AACD;AACA;AACA;;;AACA,SAASU,QAAT,GAAoB;EAChB,OAAOb,gBAAgB,CAACC,MAAjB,CAAwB7E,KAA/B;AACH;AACD;AACA;AACA;;;AACA,SAAS0F,QAAT,GAAoB;EAChB,OAAOd,gBAAgB,CAACC,MAAjB,CAAwBnL,KAA/B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASiM,aAAT,CAAuBC,aAAvB,EAAsC;EAClChB,gBAAgB,CAACC,MAAjB,CAAwBgB,YAAxB,GAAuCD,aAAvC;EACA,OAAOA,aAAa,CAAC5H,OAAD,CAApB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8H,WAAT,CAAqB1/P,KAArB,EAA4B;EACxBw+P,gBAAgB,CAACC,MAAjB,CAAwBgB,YAAxB,GAAuC,IAAvC;EACA,OAAOz/P,KAAP;AACH;;AACD,SAAS2/P,eAAT,GAA2B;EACvB,IAAIC,YAAY,GAAGC,4BAA4B,EAA/C;;EACA,OAAOD,YAAY,K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;AACA;AACA;AACA;AACA;;;AACA,MAAM0Z,0BAAN,CAAiC;;AAEjCA,0BAA0B,CAACC,IAA3B,GAAoC,eAAe,IAAIH,6BAAJ,EAAnD;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA,SAASI,gBAAT,GAA4B;EACxB,OAAOC,gBAAgB,CAACxuB,eAAe,EAAhB,EAAoBN,QAAQ,EAA5B,CAAvB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8uB,gBAAT,CAA0B96B,KAA1B,EAAiCuG,KAAjC,EAAwC;EACpC,OAAO,IAAInoI,UAAJ,CAAegsI,gBAAgB,CAACpK,KAAD,EAAQuG,KAAR,CAA/B,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMnoI,UAAN,CAAiB;EACbt1H,WAAW,CAAC4tI,aAAD,EAAgB;IACvB,KAAKA,aAAL,GAAqBA,aAArB;EACH;;AAHY;AAKjB;AACA;AACA;AACA;;;AACAtY,UAAU,CAAC2jI,iBAAX,GAA+B84B,gBAA/B;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASE,gBAAT,CAA0BpuR,KAA1B,EAAiC;EAC7B,OAAOA,KAAK,YAAYyxH,UAAjB,GAA8BzxH,KAAK,CAAC+pI,aAApC,GAAoD/pI,KAA3D;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMquR,oBAAoB,GAAG,IAAI70R,cAAJ,CAAmB,sBAAnB,CAA7B;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM80R,gBAAN,CAAuB;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM98J,SAAN,CAAgB;AAEhB;AACA;AACA;AACA;;;AACAA,SAAS,CAAC4jI,iBAAV,GAA8B,MAAMm5B,eAAe,EAAnD;AACA;;;AACA,SAASA,eAAT,GAA2B;EACvB;EACA;EACA,MAAM30B,KAAK,GAAGyF,QAA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI2+B,MAAM,GAAG;IACL,KAAK3+B,MAAL,CAAYrU,KAAZ,KAAsB,CAAC;IAAG;IAA1B;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIizC,QAAQ,GAAG;IACP,KAAK5+B,MAAL,CAAYrU,KAAZ,KAAsB;IAAG;IAAzB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIkzC,aAAa,GAAG;IACZ5B,qBAAqB,CAAC,KAAKj9B,MAAL,CAAYtU,KAAZ,CAAD,EAAqB,KAAKsU,MAA1B,EAAkC,KAAK78K,OAAvC,CAArB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACI27M,cAAc,GAAG;IACb,IAAI5rS,SAAJ,EAAe;MACXkqS,sBAAsB,CAAC,KAAKp9B,MAAL,CAAYtU,KAAZ,CAAD,EAAqB,KAAKsU,MAA1B,EAAkC,KAAK78K,OAAvC,CAAtB;IACH;EACJ;;EACD47M,wBAAwB,GAAG;IACvB,IAAI,KAAKP,OAAT,EAAkB;MACd,MAAM,IAAIx7C,YAAJ,CAAiB;MAAI;MAArB,EAAmE9vP,SAAS,IAAI,+DAAhF,CAAN;IACH;;IACD,KAAKurS,wBAAL,GAAgC,IAAhC;EACH;;EACDO,gBAAgB,GAAG;IACf,KAAKR,OAAL,GAAe,IAAf;IACAxtB,gBAAgB,CAAC,KAAKhR,MAAL,CAAYtU,KAAZ,CAAD,EAAqB,KAAKsU,MAA1B,CAAh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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIC,mEAAJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,qBAAT,CAA+Bl1C,KAA/B,EAAsChO,KAAtC,EAA6CmjD,qBAA7C,EAAoExwR,KAApE,EAA2EmrM,aAA3E,EAA0FslF,cAA1F,EAA0G;EACtG53S,SAAS,IAAIi8P,qBAAqB,CAACwE,QAAQ,EAAT,CAAlC;EACA,IAAIo3C,SAAS,GAAGD,cAAc,GAAGpjD,KAAK,CAACqpC,aAAT,GAAyBrpC,KAAK,CAACspC,aAA7D;EACA,IAAIga,QAAQ,GAAGpd,oBAAoB,CAACmd,SAAD,CAAnC;EACA,IAAIE,QAAQ,GAAGhd,oBAAoB,CAAC8c,SAAD,CAAnC;EACAr1C,KAAK,CAACr7O,KAAD,CAA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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASO,0BAAT,CAAoCz5C,KAApC,EAA2ChO,KAA3C,EAAkD5jD,YAAlD,EAAgE;EAC5D,MAAM0M,QAAQ,GAAG1M,YAAY,GAAG4jD,KAAK,CAACqpC,aAAT,GAAyBrpC,KAAK,CAACspC,aAA5D;;EACA,IAAI/C,oBAAoB,CAACz9E,QAAD,CAApB,KAAmC,CAAvC,EAA0C;IACtC;IACA,OAAOz9M,SAAP;EACH;;EACD,OAAO2iQ,KAAK,CAACk4B,oBAAoB,CAACp9E,QAAD,CAArB,CAAZ;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4+F,0BAAT,CAAoC15C,KAApC,EAA2ChO,KAA3C,EAAkD5jD,YAAlD,EAAgEqnG,WAAhE,EAA6E;EACzE,MAAM36F,QAAQ,GAAG1M,YAAY,GAAG4jD,KAAK,CAACqpC,aAAT,GAAyBrpC,KAAK,CAACspC,aAA5D;EACA99R,SAAS,IACLyxP,cAAc,CAACspC,oBAAoB,CAACz9E,QAAD,CAArB,EAAiC,CAAjC,EAAoC,0DAApC,CADlB;EAEAklD,KAAK,CAACk4B,oBAAoB,CAACp9E,QAAD,CAArB,CAAL,GAAwC26F,WAAxC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASkE,eAAT,CAAyB35C,KAAzB,EAAgChO,KAAhC,EAAuC5jD,YAAvC,EAAqD;EACjD,IAAI0nG,QAAQ,GAAGz4S,SAAf;EACA,MAAMmlQ,YAAY,GAAGxQ,KAAK,CAACwQ,YAA3B;EACAhlQ,SAAS,IACLyxP,cAAc,CAAC+C,KAAK,CAAC6oC,oBAAP,EAA6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,CAACD,IAAD,EAAO+rD,IAAP,KAAgBqrL,WAAW,CAACp3O,IAAD,EAAO+rD,IAAP,CAAzF,CAA1B;AACA;AACA;AACA;AACA;;AACA,MAAMomE,KAAK,GAAGg9I,iBAAiB,CAAC,OAAD,EAAWh1B,mBAAD,KAA0B;EAAEA;AAAF,CAA1B,CAAV,CAA/B;AACA;AACA;AACA;AACA;;AACA,MAAM4mF,MAAM,GAAG5xD,iBAAiB,CAAC,QAAD,EAAYh1B,mBAAD,KAA0B;EAAEA;AAAF,CAA1B,CAAX,CAAhC;AACA;AACA;AACA;AACA;;AACA,MAAM6mF,WAAW,GAAG7xD,iBAAiB,CAAC,aAAD,EAAiB9zB,gBAAD,KAAuB;EAAEA;AAAF,CAAvB,CAAhB,CAArC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM4lF,YAAY,GAAG9xD,iBAAiB,CAAC,cAAD,EAAiB,CAAChlN,SAAD,EAAYhqD,IAAZ,MAAsB;EAAEgqD,SAAF;EAAahqD;AAAb,CAAtB,CAAjB,CAAtC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA,MAAM9E,QAAQ,GAAG4yQ,aAAa,CAAC,UAAD,EAAczjQ,QAAD,IAAcA,QAA3B,EAAqCvK,SAArC,EAAgDA,SAAhD;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAACD,IAAD,EAAO+rD,IAAP,KAAgBouI,eAAe,CAACn6L,IAAD,EAAO+rD,IAAP,CAZD,CAA9B;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASwjC,IAAT,CAAc,GAAGpvF,IAAjB,EAAuB,CACnB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAM+gU,gBAAgB,GAAG,IAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,eAAe,GAAG,IAAIpmU,cAAJ,CAAmB,yBAAnB,CAAxB;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMqmU,qBAAN,CAA4B;EACxB1jU,WAAW,CAAC2jU,QAAD,EAAW;IAClB,KAAKA,QAAL,GAAgBA,QAAhB;IACA,KAAKl1T,OAAL,GAAeojF,IAAf;IACA,KAAKzhF,MAAL,GAAcyhF,IAAd;IACA,KAAKz9E,WAAL,GAAmB,KAAnB;IACA,KAAK5D,IAAL,GAAY,KAAZ;IACA,KAAKozT,WAAL,GAAmB,IAAIp1T,OAAJ,CAAY,CAAC89C,GAAD,EAAMu3Q,GAAN,KAAc;MACzC,KAAKp1T,OAAL,GAAe69C,GAAf;MACA,KAAKl8C,MAAL,GAAcyzT,GAAd;IACH,CAHkB,CAAnB;EAIH;EACD;;;EACAC,eAAe,GAAG;IACd,IAAI,KAAK1vT,WAAT,EAAsB;MAClB;IACH;;IACD,MAAM2vT,iBAAiB,GAAG,EAA1B;;IACA,MAAMv0O,QAAQ,GAAG,MAAM;MACnB,KAAKh/E,IAAL,GAAY,IAAZ;MACA,KAAK/B,OAAL;IACH,CAHD;;IAIA,IAAI,KAAKk1T,QAAT,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AL,KAAgB,IADnD,EACyD;IACrD;IACA;IACA;IACA,OAAOjiB,IAAI,CAACiiB,MAAZ;EACH,CAND,MAOK;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,OAAQ,OAAOC,SAAP,KAAqB,WAArB,IAAoCA,SAAS,CAACxqM,MAA/C,IAA0DupL,iBAAjE;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM1vL,SAAS,GAAG,IAAI/2H,cAAJ,CAAmB,UAAnB,EAA+B;EAC7C+4H,UAAU,EAAE,MADiC;EAE7Ch0H,OAAO,EAAE,MAAM0xH,MAAM,CAACM,SAAD,EAAY0hI,WAAW,CAACt4P,QAAZ,GAAuBs4P,WAAW,CAAC0P,QAA/C,CAAN,IAAkEq/D,eAAe;AAFnD,CAA/B,CAAlB;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM3vM,qBAAqB,GAAG,IAAI73H,cAAJ,CAAmB,qBAAnB,EAA0C;EACpE+4H,UAAU,EAAE,MADwD;EAEpEh0H,OAAO,EAAE,MAAM2hT;AAFqD,CAA1C,CAA9B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMihB,YAAY,GAAG,IAAI3nU,cAAJ,CAAmB,cAAnB,CAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM4nU,mBAAmB,GAAG,IAAI5nU,cAAJ,CAAmB,oBAAnB,CAA5B;AACA;AA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;IACA,IAAID,8BAAJ,EAAoC;MAChCF,2BAA2B,GAAGE,8BAA9B;IACH;;IACD,MAAME,6BAA6B,GAAGH,0BAA0B,CAACH,IAAI,CAACK,UAAL,CAAgB,kBAAhB,CAAD,CAAhE;;IACA,IAAIC,6BAAJ,EAAmC;MAC/BH,0BAA0B,GAAGG,6BAA7B;IACH;EACJ;;EACD,OAAO;IAAEJ,2BAAF;IAA+BC;EAA/B,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMhxM,MAAN,CAAa;EACTz1H,WAAW,CAAC;IAAE6mU,oBAAoB,GAAG,KAAzB;IAAgCC,kCAAkC,GAAG,KAArE;IAA4EC,gCAAgC,GAAG;EAA/G,CAAD,EAAyH;IAChI,KAAKC,oBAAL,GAA4B,KAA5B;IACA,KAAKC,oBAAL,GAA4B,KAA5B;IACA;AACR;AACA;;IACQ,KAAKC,QAAL,GAAgB,IAAhB;IACA;AACR;AACA;;IACQ,KAAKC,UAAL,GAAkB,IAAIpzM,YAAJ,CAAiB,KAAjB,CAAlB;IACA;AACR;AACA;AACA;AACA;;IACQ,KAAKqzM,gBAAL,GAAwB,IAAIrzM,YAAJ,CAAiB,KAAjB,CAAxB;IACA;AACR;AACA;AACA;AACA;;IACQ,KAAKszM,QAAL,GAAgB,IAAItzM,YAAJ,CAAiB,KAAjB,CAAhB;IACA;AACR;AACA;;IACQ,KAAKr7B,OAAL,GAAe,IAAIq7B,YAAJ,CAAiB,KAAjB,CAAf;;IACA,IAAI,OAAOuyM,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,CAAyB,MAAMkoJ,YAAY,CAACroF,WAAb,CAAyBn1M,CAAzB,CAA/B,EADuB,CAEvB;;QACA,MAAMA,CAAN;MACH,CAJM,CAAP;IAKH;;IACD,OAAOnH,MAAP;EACH,CAVD,CAWA,OAAOmH,CAAP,EAAU;IACNq1I,MAAM,CAACC,iBAAP,CAAyB,MAAMkoJ,YAAY,CAACroF,WAAb,CAAyBn1M,CAAzB,CAA/B,EADM,CAEN;;IACA,MAAMA,CAAN;EACH;AACJ;;AACD,SAAS8/T,cAAT,CAAwBhlE,GAAxB,EAA6BmxB,IAA7B,EAAmC;EAC/B,IAAIzyR,KAAK,CAACiqF,OAAN,CAAcwoM,IAAd,CAAJ,EAAyB;IACrBnxB,GAAG,GAAGmxB,IAAI,CAACt+N,MAAL,CAAYmyQ,cAAZ,EAA4BhlE,GAA5B,CAAN;EACH,CAFD,MAGK;IACDA,GAAG,GAAG,EAAE,GAAGA,GAAL;MAAU,GAAGmxB;IAAb,CAAN;EACH;;EACD,OAAOnxB,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMikE,cAAN,CAAqB;EACjB;EACA3uU,WAAW,CAACkwU,KAAD,EAAQ5d,SAAR,EAAmB6d,iBAAnB,EAAsC;IAC7C,KAAKD,KAAL,GAAaA,KAAb;IACA,KAAK5d,SAAL,GAAiBA,SAAjB;IACA,KAAK6d,iBAAL,GAAyBA,iBAAzB;IAC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C66E,MAA/B,EAAuC;IACnC;IACA;IACA,MAAMx0D,aAAa,GAAG9b,wBAAwB,CAACvK,KAAK,CAACrtO,KAAP,EAAc4zO,KAAd,CAA9C,CAHmC,CAGiC;;IACpE,OAAO,IAAIqwC,SAAJ,CAAcvwB,aAAd,EAA6BA,aAA7B,CAAP;EACH,CALD,MAMK,IAAIrmB,KAAK,CAAC50P,IAAN,IAAc;EAAE;EAAF,EAA6B;EAAG;EAAhC,EAA+D;EAAG;EAAhF,CAAJ,EAA0G;IAC3G;IACA;IACA,MAAM0vU,iBAAiB,GAAGv0E,KAAK,CAACxB,0BAAD,CAA/B,CAH2G,CAG9C;;IAC7D,OAAO,IAAI6xC,SAAJ,CAAckkC,iBAAd,EAAiCv0E,KAAjC,CAAP;EACH;;EACD,OAAO,IAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMw0E,OAAN,SAAsBl7L,iBAAtB,CAAwC;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMm7L,eAAN,SAA8BD,OAA9B,CAAsC;AAGtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIE,6BAA6B,GAAG,EAApC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA,MAAMC,kBAAN,CAAyB;EACrBpyU,WAAW,CAACH,IAAD,EAAOof,QAAP,EAAiB;IACxB,KAAKpf,IAAL,GAAYA,IAAZ;IACA,KAAKof,QAAL,GAAgBA,QAAhB;EACH;;AAJoB;AAMzB;AACA;AACA;;;AACA,SAASozT,gBAAT,CAA0BC,QAA1B,EA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CA,OAAO+0R,QAAQ,CAACt9C,sBAAT,CAAgCJ,cAAhC,EAAiD,SAAQpuD,IAAI,CAACjpL,IAAL,CAAUzC,IAAK,WAAxE,EAAoF0rL,IAApF,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASx8C,eAAT,CAAyBopI,SAAzB,EAAoCtqQ,OAApC,EAA6C;EACzCnL,SAAS,IAAI8wR,kBAAkB,CAACrb,SAAD,CAA/B;EACA,MAAMgD,YAAY,GAAG9gB,eAAe,CAAC8d,SAAD,CAApC;EACA,MAAM2jE,eAAe,GAAGjuU,OAAO,CAACiuU,eAAR,IAA2BxsD,eAAe,EAAlE;EACA,MAAMltR,OAAO,GAAG,IAAIysS,gBAAJ,CAAqB1zB,YAArB,CAAhB;EACA,OAAO/4Q,OAAO,CAAC2L,MAAR,CAAe+tU,eAAf,EAAgCjuU,OAAO,CAACohI,gBAAxC,EAA0DphI,OAAO,CAACk2G,WAAlE,EAA+El2G,OAAO,CAACyhS,mBAAvF,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASysC,oBAAT,CAA8B5jE,SAA9B,EAAyC;EACrC,MAAMgD,YAAY,GAAG9gB,eAAe,CAAC8d,SAAD,CAApC;EACA,IAAI,CAACgD,YAAL,EACI,OAAO,IAAP;EACJ,MAAM/4Q,OAAO,GAAG,IAAIysS,gBAAJ,CAAqB1zB,YAArB,CAAhB;EACA,OAAO;IACH,IAAI1uQ,QAAJ,GAAe;MACX,OAAOrK,OAAO,CAACqK,QAAf;IACH,CAHE;;IAIH,IAAInK,IAAJ,GAAW;MACP,OAAOF,OAAO,CAAC+sS,aAAf;IACH,CANE;;IAOH,IAAI9nJ,MAAJ,GAAa;MACT,OAAOjlJ,OAAO,CAACilJ,MAAf;IACH,CATE;;IAUH,IAAI8/B,OAAJ,GAAc;MACV,OAAO/kL,OAAO,CAAC+kL,OAAf;IACH,CAZE;;IAaH,IAAIwyC,kBAAJ,GAAyB;MACrB,OAAOv3N,OAAO,CAACu3N,kBAAf;IACH,CAfE;;IAgBH,IAAIv7B,YAAJ,GAAmB;MACf,OAAO+8E,YAAY,CAACntI,UAApB;IACH;;EAlBE,CAAP;AAoBH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAI,OAAOtrI,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;EAC/C;EACA;EACA;EACAo5J,OAAO,CAACipK,SAAR,GAAoBjpK,OAAO,CAACipK,SAAR,IAAqB,YAAY;IACjD,MAAM,IAAIntS,KAAJ,CAAU,+EACZ,iFADY,GAEZ,+DAFY,GAGZ,gGAHY,GAIZ,uFAJE,CAAN;EAKH,CAND;AAOH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACtm6BA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMupT,qBAAqB,GAAG,IAAI9jV,yDAAJ,CAAmB,gBAAnB,CAA9B;AACA;AACA;AACA;;AACA,MAAM+jV,4BAA4B,GAAG;EACjCp0U,OAAO,EAAEy3T,2DADwB;EAEjCx3T,QAAQ,EAAE;AAFuB,CAArC;AAIA,MAAMo0U,kBAAkB,GAAG,CAAC;EAAEr0U,OAAO,EAAEo4T,mDAAX;EAAqB/uM,UAAU,EAAE,MAAM,IAAI+uM,mDAAJ;AAAvC,CAAD,CAA3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMkc,kBAAN,CAAyB;EACrB;EACAthV,WAAW,CAACuhV,cAAD,EAAiB;IACxB,MAAMzU,eAAe,GAAG;MACpB3uF,MAAM,EAAE,IADY;MAEpBD,oBAAoB,EAAErkF,qEAFF;MAGpBwkF,kBAAkB,EAAElkF,6EAAkCl/E;IAHlC,CAAxB;IAKA,KAAKumQ,eAAL,GAAuB,CAAC1U,eAAD,EAAkB,GAAGyU,cAArB,CAAvB;EACH;;EACDE,cAAc,CAAC5zU,OAAO,GAAG,EAAX,EAAe;IACzB,MAAMonP,IAAI,GAAGysF,aAAa,CAAC,KAAKF,eAAL,CAAqBxvU,MAArB,CAA4BnE,OAA5B,CAAD,CAA1B;;IACA,MAAM6gI,QAAQ,GAAGnZ,0DAAA,CAAgB,CAC7B8rN,kBAD6B,EACT;MAChBr0U,OAAO,EAAEixO,6DADO;MAEhB5nH,UAAU,EAAE,MAAM;QACd,OAAO,IAAI4nH,6DAAJ,CAAmB;UACtB;UACA;UACAE,MAAM,EAAE8W,IAAI,CAAC9W,MAHS;UAItBC,UAAU,EAAEozF,wDAAS,EAJC;UAKtB;UACA;UACAtzF,oBAAoB,EAAE+W,IAAI,CAAC/W,oBAPL;UAQtBG,kBAAkB,EAAE4W,IAAI,CAAC5W,kBARH;UAStB3L,mBAAmB,EAAEuiB,IAAI,CAACviB;QATJ,CAAnB,CAAP;MAWH,CAde;MAehBvnG,IAAI,EAAE;IAfU,CADS,EAkB7B8pH,IAAI,CAACloP,SAlBwB,CAAhB,CAAjB;IAoBA,OAAO2hI,QAAQ,CAACtjI,GAAT,CAAag6T,mDAAb,CAAP;EACH;;AAjCoB;;AAmCzB,SAASsc,aAAT,CAAuBC,UAAvB,EAAmC;EAC/B,OAAO;IACHxjG,MAAM,EAAE4uF,YAAY,CAAC4U,UAAU,CAAC5iV,GAAX,CAAe8O,OAAO,IAAIA,OAAO,CAACswO,MAAlC,CAAD,CADjB;IAEHD,oBAAoB,EAAE6uF,YAAY,CAAC4U,UAAU,CAAC5iV,GAAX,CAAe8O,OAAO,IAAIA,OAAO,CAACqwO,oBAAlC,CAAD,CAF/B;IAGHnxO,SAAS,EAAEkgU,YAAY,CAAC0U,UAAU,CAAC5iV,GAAX,CAAe8O,OAAO,IAAIA,OAAO,CAACd,SAAlC,CAAD,CAHpB;IAIHsxO,kBAAkB,EAAE0uF,YAAY,CAAC4U,UAAU,CAAC5iV,GAAX,CAAe8O,OAAO,IAAIA,OAAO,CAACwwO,kBAAlC,CAAD,CAJ7B;IAKH3L,mBAAmB,EAAEq6F,YAAY,CAAC4U,UAAU,CAAC5iV,GAAX,CAAe8O,OAAO,IAAIA,OAAO,CAAC6kO,mBAAlC,CAAD;EAL9B,CAAP;AAOH;;AACD,SAASq6F,YAAT,CAAsBtqU,IAAtB,EAA4B;EACxB,KAAK,IAAI8M,CAAC,GAAG9M,IAAI,CAACoC,MAAL,GAAc,CAA3B,EAA8B0K,CAAC,IAAI,CAAnC,EAAsCA,CAAC,EAAvC,EAA2C;IACvC,IAAI9M,IAAI,CAAC8M,CAAD,CAAJ,KAAYhN,SAAhB,EAA2B;MACvB,OAAOE,IAAI,CAAC8M,CAAD,CAAX;IACH;EACJ;;EACD,OAAOhN,SAAP;AACH;;AACD,SAAS0qU,YAAT,CAAsBriR,KAAtB,EAA6B;EACzB,MAAMniD,MAAM,GAAG,EAAf;EACAmiD,KAAK,CAAC9gD,OAAN,CAAe41H,IAAD,IAAUA,IAAI,IAAIj3H,MAAM,CAACyB,IAAP,CAAY,GAAGw1H,IAAf,CAAhC;EACA,OAAOj3H,MAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMm5U,mBAAmB,GAAGhT,oEAAqB,CAACoM,uDAAD,EAAe,aAAf,EAA8B,CAC3E;EAAEhuU,OAAO,EAAE84T,2DAAX;EAA6B74T,QAAQ,EAAE,EAAvC;EAA2Cm8F,KAAK,EAAE;AAAlD,CAD2E,EAE3E;EAAEp8F,OAAO,EAAE+4T,0DAAX;EAA4BvyK,QAAQ,EAAE8tL,kBAAtC;EAA0Dn2M,IAAI,EAAE,CAAC26L,2DAAD;AAAhE,CAF2E,CAA9B,CAAjD;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM+b,kBAAN,SAAiCvoG,6DAAjC,CAAgD;EAC5CluO,GAAG,CAAC9G,GAAD,EAAM;IACL,IAAImK,OAAJ;IACA,IAAI2B,MAAJ;IACA,MAAMknF,OAAO,GAAG,IAAI9oF,OAAJ,CAAY,CAAC89C,GAAD,EAAMu3Q,GAAN,KAAc;MACtCp1T,OAAO,GAAG69C,GAAV;MACAl8C,MAAM,GAAGyzT,GAAT;IACH,CAHe,CAAhB;IAIA,MAAMh6Q,GAAG,GAAG,IAAIC,cAAJ,EAAZ;IACAD,GAAG,CAAC1xB,IAAJ,CAAS,KAAT,EAAgB7zB,GAAhB,EAAqB,IAArB;IACAulD,GAAG,CAAC4jG,YAAJ,GAAmB,MAAnB;;IACA5jG,GAAG,CAACG,MAAJ,GAAa,YAAY;MACrB;MACA;MACA;MACA,MAAMpkD,QAAQ,GAAGikD,GAAG,CAACjkD,QAAJ,IAAgBikD,GAAG,CAACK,YAArC,CAJqB,CAKrB;;MACA,IAAIvmD,MAAM,GAAGkmD,GAAG,CAAClmD,MAAJ,KAAe,IAAf,GAAsB,GAAtB,GAA4BkmD,GAAG,CAAClmD,MAA7C,CANqB,CAOrB;MACA;MACA;;MACA,IAAIA,MAAM,KAAK,CAAf,EAAkB;QACdA,MAAM,GAAGiC,QAAQ,GAAG,GAAH,GAAS,CAA1B;MACH;;MACD,IAAI,OAAOjC,MAAP,IAAiBA,MAAM,IAAI,GAA/B,EAAoC;QAChC8K,OAAO,CAAC7I,QAAD,CAAP;MACH,CAFD,MAGK;QACDwK,MAAM,CAAE,kBAAiB9L,GAAI,EAAvB,CAAN;MACH;IACJ,CAnBD;;IAoBAulD,GAAG,CAACO,OAAJ,GAAc,YAAY;MACtBh6C,MAAM,CAAE,kBAAiB9L,GAAI,EAAvB,CAAN;IACH,CAFD;;IAGAulD,GAAG,CAACQ,IAAJ;IACA,OAAOitC,OAAP;EACH;;AApC2C;;AAsChDuqP,kBAAkB,CAAChgV,IAAnB;EAAA;EAAA;IAAA,8EAAqGgiG,mEAArG,CAA+Gg+O,kBAA/G,SAA+GA,kBAA/G;EAAA;AAAA;;AACAA,kBAAkB,CAAC5/U,KAAnB,kBADqG4hG,gEACrG;EAAA,OAAmHg+O,kBAAnH;EAAA,SAAmHA,kBAAnH;AAAA;;AACA;EAAA,mDAFqGh+O,+DAErG,CAA2Fg+O,kBAA3F,EAA2H,CAAC;IAChHv/U,IAAI,EAAEhF,qDAAUA;EADgG,CAAD,CAA3H;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAMwkV,2CAA2C,GAAG,CAChDZ,8FADgD,EAEhD;EACIl0U,OAAO,EAAE84T,2DADb;EAEI74T,QAAQ,EAAE;IAAEF,SAAS,EAAE,CAAC;MAAEC,OAAO,EAAEssO,6DAAX;MAA2B9lF,QAAQ,EAAEquL,kBAArC;MAAyD12M,IAAI,EAAE;IAA/D,CAAD;EAAb,CAFd;EAGI/hC,KAAK,EAAE;AAHX,CAFgD,EAOhD;EAAEp8F,OAAO,EAAEwoH,sDAAX;EAAwBvoH,QAAQ,EAAEu8I,oEAAoBA;AAAtD,CAPgD,CAApD;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMu4L,oBAAN,SAAmCzoG,6DAAnC,CAAkD;EAC9Ct5O,WAAW,GAAG;IACV;IACA,KAAKgiV,MAAL,GAAcxC,oEAAd;;IACA,IAAI,KAAKwC,MAAL,IAAe,IAAnB,EAAyB;MACrB,MAAM,IAAIpqT,KAAJ,CAAU,uEAAV,CAAN;IACH;EACJ;;EACDxsB,GAAG,CAAC9G,GAAD,EAAM;IACL,IAAI,KAAK09U,MAAL,CAAY9yU,cAAZ,CAA2B5K,GAA3B,CAAJ,EAAqC;MACjC,OAAOkK,OAAO,CAACC,OAAR,CAAgB,KAAKuzU,MAAL,CAAY19U,GAAZ,CAAhB,CAAP;IACH,CAFD,MAGK;MACD,OAAOkK,OAAO,CAAC4B,MAAR,CAAe,4DAA4D9L,GAA3E,CAAP;IACH;EACJ;;AAf6C;AAkBlD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAM7G,OAAO,GAAG,IAAI03H,kDAAJ,CAAY,QAAZ,CAAhB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM+sN,uBAAuB,GAAG,CAAC;EAAEl1U,OAAO,EAAEssO,6DAAX;EAA2B9lF,QAAQ,EAAEuuL,oBAArC;EAA2D52M,IAAI,EAAE;AAAjE,CAAD,CAAhC;AACA;AACA;AACA;;AACA,MAAMg3M,sBAAsB,GAAGvT,oEAAqB,CAACgT,mBAAD,EAAsB,gBAAtB,EAAwCE,2CAAxC,CAApD;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtRA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMU,uBAAN,SAAsC5iP,iEAAtC,CAAuD;EACnD5/F,WAAW,CAACyiV,YAAD,EAAelwL,GAAf,EAAoB;IAC3B;IACA,KAAKmwL,gBAAL,GAAwB,CAAxB;IACA,MAAMC,QAAQ,GAAG;MAAExvT,EAAE,EAAE,GAAN;MAAW3mB,aAAa,EAAEqtJ,iEAA1B;MAAkD15D,MAAM,EAAE,EAA1D;MAA8D/7E,IAAI,EAAE;QAAEu8E,SAAS,EAAE;MAAb;IAApE,CAAjB;IACA,KAAK0rC,SAAL,GAAiBo2M,YAAY,CAACj3C,cAAb,CAA4Bj5I,GAAG,CAAC5hJ,IAAhC,EAAsCgyU,QAAtC,CAAjB;EACH;;EACDhxO,KAAK,CAAChR,SAAD,EAAY;IACb,MAAMxtE,EAAE,GAAG,KAAKuvT,gBAAL,CAAsBx9T,QAAtB,EAAX;;IACA,KAAKw9T,gBAAL;IACA,MAAMr3U,KAAK,GAAGjC,KAAK,CAACiqF,OAAN,CAAcsN,SAAd,IAA2BL,6DAAQ,CAACK,SAAD,CAAnC,GAAiDA,SAA/D;IACAiiP,qBAAqB,CAAC,KAAKv2M,SAAN,EAAiB,IAAjB,EAAuBl5G,EAAvB,EAA2B,UAA3B,EAAuC,CAAC9nB,KAAD,CAAvC,CAArB;IACA,OAAO,IAAIw3U,uBAAJ,CAA4B1vT,EAA5B,EAAgC,KAAKk5G,SAArC,CAAP;EACH;;AAbkD;;AAevDm2M,uBAAuB,CAAC3gV,IAAxB;EAAA,iBAAoH2gV,uBAApH,EAA0G3+O,sDAA1G,CAA6JA,2DAA7J,GAA0GA,sDAA1G,CAA6LhmG,qDAA7L;AAAA;;AACA2kV,uBAAuB,CAACvgV,KAAxB,kBAD0G4hG,gEAC1G;EAAA,OAAwH2+O,uBAAxH;EAAA,SAAwHA,uBAAxH;AAAA;;AACA;EAAA,mDAF0G3+O,+DAE1G,CAA2F2+O,uBAA3F,EAAgI,CAAC;IACrHlgV,IAAI,EAAEhF,qDAAUA;EADqG,CAAD,CAAhI,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAEgF,IAAI,EAAEuhG,2DAAmBsuL;IAA3B,CAAD,EAAgC;MAAE7vR,IAAI,EAAEC,SAAR;MAAmBC,UAAU,EAAE,CAAC;QAC7FF,IAAI,EAAE/E,iDADuF;QAE7FkF,IAAI,EAAE,CAAC5E,qDAAD;MAFuF,CAAD;IAA/B,CAAhC,CAAP;EAGlB,CALxB;AAAA;;AAMA,MAAMglV,uBAAN,SAAsChjP,iEAAtC,CAAuD;EACnD7/F,WAAW,CAAC8iV,GAAD,EAAMz2M,SAAN,EAAiB;IACxB;IACA,KAAKy2M,GAAL,GAAWA,GAAX;IACA,KAAKz2M,SAAL,GAAiBA,SAAjB;EACH;;EACDt+H,MAAM,CAACw5F,OAAD,EAAU15F,OAAV,EAAmB;IACrB,OAAO,IAAIk1U,uBAAJ,CAA4B,KAAKD,GAAjC,EAAsCv7O,OAAtC,EAA+C15F,OAAO,IAAI,EAA1D,EAA8D,KAAKw+H,SAAnE,CAAP;EACH;;AARkD;;AAUvD,MAAM02M,uBAAN,CAA8B;EAC1B/iV,WAAW,CAACmzB,EAAD,EAAKo0E,OAAL,EAAc15F,OAAd,EAAuBw+H,SAAvB,EAAkC;IACzC,KAAKl5G,EAAL,GAAUA,EAAV;IACA,KAAKo0E,OAAL,GAAeA,OAAf;IACA,KAAK8kC,SAAL,GAAiBA,SAAjB;IACA,KAAK3qC,YAAL,GAAoB,IAApB;IACA,KAAKJ,QAAL,GAAgB,KAAhB;IACA,KAAKK,SAAL,GAAiB,CAAjB;;IACA,KAAKqhP,QAAL,CAAc,QAAd,EAAwBn1U,OAAxB;EACH;;EACDo1U,OAAO,CAACx2R,SAAD,EAAYxtC,QAAZ,EAAsB;IACzB,OAAO,KAAKotH,SAAL,CAAe9pB,MAAf,CAAsB,KAAKhb,OAA3B,EAAqC,KAAI,KAAKp0E,EAAG,IAAGs5B,SAAU,EAA9D,EAAiExtC,QAAjE,CAAP;EACH;;EACD+jU,QAAQ,CAACn6O,OAAD,EAAU,GAAGpmG,IAAb,EAAmB;IACvB,OAAOmgV,qBAAqB,CAAC,KAAKv2M,SAAN,EAAiB,KAAK9kC,OAAtB,EAA+B,KAAKp0E,EAApC,EAAwC01E,OAAxC,EAAiDpmG,IAAjD,CAA5B;EACH;;EACDq/F,MAAM,CAACvP,EAAD,EAAK;IACP,KAAK0wP,OAAL,CAAa,MAAb,EAAqB1wP,EAArB;EACH;;EACDsP,OAAO,CAACtP,EAAD,EAAK;IACR,KAAK0wP,OAAL,CAAa,OAAb,EAAsB1wP,EAAtB;EACH;;EACDwP,SAAS,CAACxP,EAAD,EAAK;IACV,KAAK0wP,OAAL,CAAa,SAAb,EAAwB1wP,EAAxB;EACH;;EACDgG,IAAI,GAAG;IACH,KAAKyqP,QAAL,CAAc,MAAd;EACH;;EACDhhP,UAAU,GAAG;IACT,OAAO,KAAKV,QAAZ;EACH;;EACDW,IAAI,GAAG;IACH,KAAK+gP,QAAL,CAAc,MAAd;;IACA,KAAK1hP,QAAL,GAAgB,IAAhB;EACH;;EACDc,KAAK,GAAG;IACJ,KAAK4gP,QAAL,CAAc,OAAd;EACH;;EACD3gP,OAAO,GAAG;IACN,KAAK2gP,QAAL,CAAc,SAAd;EACH;;EACD1gP,MAAM,GAAG;IACL,KAAK0gP,QAAL,CAAc,QAAd;EACH;;EACDzgP,OAAO,GAAG;IACN,KAAKygP,QAAL,CAAc,SAAd;EACH;;EACD9mP,KAAK,GAAG;IACJ,KAAK8mP,QAAL,CAAc,OAAd;;IACA,KAAK1hP,QAAL,GAAgB,KAAhB;EACH;;EACDkB,WAAW,CAACxzF,CAAD,EAAI;IACX,KAAKg0U,QAAL,CAAc,aAAd,EAA6Bh0U,CAA7B;EACH;;EACDyzF,WAAW,GAAG;IACV,OAAO,KAAK4pC,SAAL,CAAe5lB,MAAf,CAAsB1jB,OAAtB,CAA8B,CAAC,KAAK5vE,EAApC,GAAyCsvE,WAAzC,MAA0D,CAAjE;EACH;;AAxDyB;;AA0D9B,SAASmgP,qBAAT,CAA+BnhM,QAA/B,EAAyCl6C,OAAzC,EAAkDp0E,EAAlD,EAAsD01E,OAAtD,EAA+DpmG,IAA/D,EAAqE;EACjE,OAAOg/I,QAAQ,CAAC8oH,WAAT,CAAqBhjK,OAArB,EAA+B,KAAIp0E,EAAG,IAAG01E,OAAQ,EAAjD,EAAoDpmG,IAApD,CAAP;AACH;;AAED,MAAMygV,gBAAgB,GAAG,GAAzB;AACA,MAAMC,uBAAuB,GAAG,YAAhC;;AACA,MAAMC,wBAAN,CAA+B;EAC3BpjV,WAAW,CAAC49F,QAAD,EAAW6oB,MAAX,EAAmBypN,KAAnB,EAA0B;IACjC,KAAKtyO,QAAL,GAAgBA,QAAhB;IACA,KAAK6oB,MAAL,GAAcA,MAAd;IACA,KAAKypN,KAAL,GAAaA,KAAb;IACA,KAAKmT,UAAL,GAAkB,CAAlB;IACA,KAAKC,YAAL,GAAoB,CAApB;IACA,KAAKC,yBAAL,GAAiC,EAAjC;IACA,KAAKC,cAAL,GAAsB,IAAI/uU,GAAJ,EAAtB;IACA,KAAKgvU,aAAL,GAAqB,CAArB;IACA,KAAKnsP,OAAL,GAAe9oF,OAAO,CAACC,OAAR,CAAgB,CAAhB,CAAf;;IACAg4G,MAAM,CAAC6B,iBAAP,GAA2B,CAAC/gB,OAAD,EAAU3J,QAAV,KAAuB;MAC9C;MACA;MACA;MACA;MACA,MAAMr1C,UAAU,GAAGq1C,QAAQ,EAAEr1C,UAAV,CAAqBg/C,OAArB,CAAnB;;MACA,IAAIh/C,UAAJ,EAAgB;QACZq1C,QAAQ,CAACp1C,WAAT,CAAqBD,UAArB,EAAiCg/C,OAAjC;MACH;IACJ,CATD;EAUH;;EACDikM,cAAc,CAACznL,WAAD,EAAczhH,IAAd,EAAoB;IAC9B,MAAMohV,kBAAkB,GAAG,EAA3B,CAD8B,CAE9B;IACA;;IACA,MAAM9lP,QAAQ,GAAG,KAAKA,QAAL,CAAc4tM,cAAd,CAA6BznL,WAA7B,EAA0CzhH,IAA1C,CAAjB;;IACA,IAAI,CAACyhH,WAAD,IAAgB,CAACzhH,IAAjB,IAAyB,CAACA,IAAI,CAAC8hB,IAA/B,IAAuC,CAAC9hB,IAAI,CAAC8hB,IAAL,CAAU,WAAV,CAA5C,EAAoE;MAChE,IAAIq9H,QAAQ,GAAG,KAAK+hM,cAAL,CAAoBp4U,GAApB,CAAwBwyF,QAAxB,CAAf;;MACA,IAAI,CAAC6jD,QAAL,EAAe;QACX;QACA;QACA,MAAMkiM,iBAAiB,GAAG,MAAM,KAAKH,cAAL,CAAoB9nU,MAApB,CAA2BkiF,QAA3B,CAAhC;;QACA6jD,QAAQ,GACJ,IAAImiM,qBAAJ,CAA0BF,kBAA1B,EAA8C9lP,QAA9C,EAAwD,KAAK6oB,MAA7D,EAAqEk9N,iBAArE,CADJ,CAJW,CAMX;;QACA,KAAKH,cAAL,CAAoB76U,GAApB,CAAwBi1F,QAAxB,EAAkC6jD,QAAlC;MACH;;MACD,OAAOA,QAAP;IACH;;IACD,MAAMlxB,WAAW,GAAGjuH,IAAI,CAAC6wB,EAAzB;IACA,MAAM8vF,WAAW,GAAG3gH,IAAI,CAAC6wB,EAAL,GAAU,GAAV,GAAgB,KAAKkwT,UAAzC;IACA,KAAKA,UAAL;IACA,KAAK58N,MAAL,CAAYvE,QAAZ,CAAqBe,WAArB,EAAkCc,WAAlC;;IACA,MAAMiF,eAAe,GAAIjpB,OAAD,IAAa;MACjC,IAAI32F,KAAK,CAACiqF,OAAN,CAAc0M,OAAd,CAAJ,EAA4B;QACxBA,OAAO,CAACj2F,OAAR,CAAgBk/G,eAAhB;MACH,CAFD,MAGK;QACD,KAAKvC,MAAL,CAAYuC,eAAZ,CAA4BuH,WAA5B,EAAyCtN,WAAzC,EAAsDc,WAAtD,EAAmEhkB,OAAO,CAAClgG,IAA3E,EAAiFkgG,OAAjF;MACH;IACJ,CAPD;;IAQA,MAAM8jP,iBAAiB,GAAGvhV,IAAI,CAAC8hB,IAAL,CAAU,WAAV,CAA1B;IACAy/T,iBAAiB,CAAC/5U,OAAlB,CAA0Bk/G,eAA1B;IACA,OAAO,IAAI86N,iBAAJ,CAAsB,IAAtB,EAA4B7gO,WAA5B,EAAyCrlB,QAAzC,EAAmD,KAAK6oB,MAAxD,CAAP;EACH;;EACDkmL,KAAK,GAAG;IACJ,KAAK82C,aAAL;;IACA,IAAI,KAAK7lP,QAAL,CAAc+uM,KAAlB,EAAyB;MACrB,KAAK/uM,QAAL,CAAc+uM,KAAd;IACH;EACJ;;EACDo3C,kBAAkB,GAAG;IACjB;IACA,KAAKzsP,OAAL,CAAa7mF,IAAb,CAAkB,MAAM;MACpB,KAAK6yU,YAAL;IACH,CAFD;EAGH;EACD;;;EACAU,wBAAwB,CAACzqT,KAAD,EAAQg5D,EAAR,EAAYnuE,IAAZ,EAAkB;IACtC,IAAImV,KAAK,IAAI,CAAT,IAAcA,KAAK,GAAG,KAAK+pT,YAA/B,EAA6C;MACzC,KAAKpT,KAAL,CAAWlI,GAAX,CAAe,MAAMz1O,EAAE,CAACnuE,IAAD,CAAvB;;MACA;IACH;;IACD,IAAI,KAAKm/T,yBAAL,CAA+B1+U,MAA/B,IAAyC,CAA7C,EAAgD;MAC5C2J,OAAO,CAACC,OAAR,CAAgB,IAAhB,EAAsBgC,IAAtB,CAA2B,MAAM;QAC7B,KAAKy/T,KAAL,CAAWlI,GAAX,CAAe,MAAM;UACjB,KAAKub,yBAAL,CAA+Bz5U,OAA/B,CAAuCmqG,KAAK,IAAI;YAC5C,MAAM,CAAC1hB,EAAD,EAAKnuE,IAAL,IAAa6vF,KAAnB;YACA1hB,EAAE,CAACnuE,IAAD,CAAF;UACH,CAHD;;UAIA,KAAKm/T,yBAAL,GAAiC,EAAjC;QACH,CAND;MAOH,CARD;IASH;;IACD,KAAKA,yBAAL,CAA+Br5U,IAA/B,CAAoC,CAACqoF,EAAD,EAAKnuE,IAAL,CAApC;EACH;;EACDwzG,GAAG,GAAG;IACF,KAAK6rN,aAAL,GADE,CAEF;IACA;;IACA,IAAI,KAAKA,aAAL,IAAsB,CAA1B,EAA6B;MACzB,KAAKvT,KAAL,CAAWhrL,iBAAX,CAA6B,MAAM;QAC/B,KAAK6+L,kBAAL;;QACA,KAAKt9N,MAAL,CAAYsD,KAAZ,CAAkB,KAAKu5N,YAAvB;MACH,CAHD;IAIH;;IACD,IAAI,KAAK1lP,QAAL,CAAcg6B,GAAlB,EAAuB;MACnB,KAAKh6B,QAAL,CAAcg6B,GAAd;IACH;EACJ;;EACD/N,iBAAiB,GAAG;IAChB,OAAO,KAAKpD,MAAL,CAAYoD,iBAAZ,EAAP;EACH;;AAvG0B;;AAyG/Bu5N,wBAAwB,CAACvhV,IAAzB;EAAA,iBAAqHuhV,wBAArH,EA3L0Gv/O,sDA2L1G,CAA+JA,2DAA/J,GA3L0GA,sDA2L1G,CAA+LkmD,4EAA/L,GA3L0GlmD,sDA2L1G,CAA+NA,iDAA/N;AAAA;;AACAu/O,wBAAwB,CAACnhV,KAAzB,kBA5L0G4hG,gEA4L1G;EAAA,OAAyHu/O,wBAAzH;EAAA,SAAyHA,wBAAzH;AAAA;;AACA;EAAA,mDA7L0Gv/O,+DA6L1G,CAA2Fu/O,wBAA3F,EAAiI,CAAC;IACtH9gV,IAAI,EAAEhF,qDAAUA;EADsG,CAAD,CAAjI,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAEgF,IAAI,EAAEuhG,2DAAmBsuL;IAA3B,CAAD,EAAgC;MAAE7vR,IAAI,EAAEynJ,4EAAmB92B;IAA3B,CAAhC,EAA+D;MAAE3wH,IAAI,EAAEuhG,iDAAS4xB;IAAjB,CAA/D,CAAP;EAA6F,CAFvI;AAAA;;AAGA,MAAMmuN,qBAAN,CAA4B;EACxB5jV,WAAW,CAACijH,WAAD,EAAcrlB,QAAd,EAAwB6oB,MAAxB,EAAgCpjB,UAAhC,EAA4C;IACnD,KAAK4f,WAAL,GAAmBA,WAAnB;IACA,KAAKrlB,QAAL,GAAgBA,QAAhB;IACA,KAAK6oB,MAAL,GAAcA,MAAd;IACA,KAAKpjB,UAAL,GAAkBA,UAAlB;IACA,KAAKs8K,WAAL,GAAmB,KAAK/hL,QAAL,CAAc+hL,WAAd,GAA6BnwQ,CAAD,IAAOouF,QAAQ,CAAC+hL,WAAT,CAAqBnwQ,CAArB,CAAnC,GAA6D,IAAhF;EACH;;EACO,IAAJ4U,IAAI,GAAG;IACP,OAAO,KAAKw5E,QAAL,CAAcx5E,IAArB;EACH;;EACDm+E,OAAO,GAAG;IACN,KAAKkkB,MAAL,CAAYlkB,OAAZ,CAAoB,KAAK0gB,WAAzB,EAAsC,KAAKrlB,QAA3C;IACA,KAAKA,QAAL,CAAc2E,OAAd;IACA,KAAKc,UAAL;EACH;;EACDv4F,aAAa,CAACjL,IAAD,EAAOohQ,SAAP,EAAkB;IAC3B,OAAO,KAAKrjK,QAAL,CAAc9yF,aAAd,CAA4BjL,IAA5B,EAAkCohQ,SAAlC,CAAP;EACH;;EACDif,aAAa,CAACr8Q,KAAD,EAAQ;IACjB,OAAO,KAAK+5F,QAAL,CAAcsiL,aAAd,CAA4Br8Q,KAA5B,CAAP;EACH;;EACDi8Q,UAAU,CAACj8Q,KAAD,EAAQ;IACd,OAAO,KAAK+5F,QAAL,CAAckiL,UAAd,CAAyBj8Q,KAAzB,CAAP;EACH;;EACDykD,WAAW,CAACqH,MAAD,EAASs0R,QAAT,EAAmB;IAC1B,KAAKrmP,QAAL,CAAct1C,WAAd,CAA0BqH,MAA1B,EAAkCs0R,QAAlC;IACA,KAAKx9N,MAAL,CAAY+J,QAAZ,CAAqB,KAAKvN,WAA1B,EAAuCghO,QAAvC,EAAiDt0R,MAAjD,EAAyD,KAAzD;EACH;;EACDw5D,YAAY,CAACx5D,MAAD,EAASs0R,QAAT,EAAmBC,QAAnB,EAA6BthE,MAAM,GAAG,IAAtC,EAA4C;IACpD,KAAKhlL,QAAL,CAAcurB,YAAd,CAA2Bx5D,MAA3B,EAAmCs0R,QAAnC,EAA6CC,QAA7C,EADoD,CAEpD;;IACA,KAAKz9N,MAAL,CAAY+J,QAAZ,CAAqB,KAAKvN,WAA1B,EAAuCghO,QAAvC,EAAiDt0R,MAAjD,EAAyDizN,MAAzD;EACH;;EACDp6N,WAAW,CAACmH,MAAD,EAASw0R,QAAT,EAAmB96N,aAAnB,EAAkC;IACzC,KAAK5C,MAAL,CAAYgK,QAAZ,CAAqB,KAAKxN,WAA1B,EAAuCkhO,QAAvC,EAAiD,KAAKvmP,QAAtD,EAAgEyrB,aAAhE;EACH;;EACD2+K,iBAAiB,CAACgpC,cAAD,EAAiBlpC,eAAjB,EAAkC;IAC/C,OAAO,KAAKlqM,QAAL,CAAcoqM,iBAAd,CAAgCgpC,cAAhC,EAAgDlpC,eAAhD,CAAP;EACH;;EACDv/O,UAAU,CAACmmD,IAAD,EAAO;IACb,OAAO,KAAK9Q,QAAL,CAAcr1C,UAAd,CAAyBmmD,IAAzB,CAAP;EACH;;EACDw0K,WAAW,CAACx0K,IAAD,EAAO;IACd,OAAO,KAAK9Q,QAAL,CAAcslL,WAAd,CAA0Bx0K,IAA1B,CAAP;EACH;;EACDrmD,YAAY,CAAC6yF,EAAD,EAAKr7I,IAAL,EAAWgE,KAAX,EAAkBo9P,SAAlB,EAA6B;IACrC,KAAKrjK,QAAL,CAAcv1C,YAAd,CAA2B6yF,EAA3B,EAA+Br7I,IAA/B,EAAqCgE,KAArC,EAA4Co9P,SAA5C;EACH;;EACD4kB,eAAe,CAAC3qI,EAAD,EAAKr7I,IAAL,EAAWohQ,SAAX,EAAsB;IACjC,KAAKrjK,QAAL,CAAcioL,eAAd,CAA8B3qI,EAA9B,EAAkCr7I,IAAlC,EAAwCohQ,SAAxC;EACH;;EACD58I,QAAQ,CAAC62B,EAAD,EAAKr7I,IAAL,EAAW;IACf,KAAK+9F,QAAL,CAAcymB,QAAd,CAAuB62B,EAAvB,EAA2Br7I,IAA3B;EACH;;EACDwlH,WAAW,CAAC61B,EAAD,EAAKr7I,IAAL,EAAW;IAClB,KAAK+9F,QAAL,CAAcynB,WAAd,CAA0B61B,EAA1B,EAA8Br7I,IAA9B;EACH;;EACDq1I,QAAQ,CAACgG,EAAD,EAAKjzF,KAAL,EAAYpkD,KAAZ,EAAmBmxI,KAAnB,EAA0B;IAC9B,KAAKp3C,QAAL,CAAcs3C,QAAd,CAAuBgG,EAAvB,EAA2BjzF,KAA3B,EAAkCpkD,KAAlC,EAAyCmxI,KAAzC;EACH;;EACDG,WAAW,CAAC+F,EAAD,EAAKjzF,KAAL,EAAY+sF,KAAZ,EAAmB;IAC1B,KAAKp3C,QAAL,CAAcu3C,WAAd,CAA0B+F,EAA1B,EAA8BjzF,KAA9B,EAAqC+sF,KAArC;EACH;;EACDu1H,WAAW,CAACrvH,EAAD,EAAKr7I,IAAL,EAAWgE,KAAX,EAAkB;IACzB,IAAIhE,IAAI,CAACiyB,MAAL,CAAY,CAAZ,KAAkBoxT,gBAAlB,IAAsCrjV,IAAI,IAAIsjV,uBAAlD,EAA2E;MACvE,KAAKzyN,iBAAL,CAAuBwqB,EAAvB,EAA2B,CAAC,CAACr3I,KAA7B;IACH,CAFD,MAGK;MACD,KAAK+5F,QAAL,CAAc2sK,WAAd,CAA0BrvH,EAA1B,EAA8Br7I,IAA9B,EAAoCgE,KAApC;IACH;EACJ;;EACDm8Q,QAAQ,CAACtxK,IAAD,EAAO7qG,KAAP,EAAc;IAClB,KAAK+5F,QAAL,CAAcoiL,QAAd,CAAuBtxK,IAAvB,EAA6B7qG,KAA7B;EACH;;EACD0+G,MAAM,CAACjqF,MAAD,EAASm0B,SAAT,EAAoBxtC,QAApB,EAA8B;IAChC,OAAO,KAAK2+E,QAAL,CAAc2kB,MAAd,CAAqBjqF,MAArB,EAA6Bm0B,SAA7B,EAAwCxtC,QAAxC,CAAP;EACH;;EACDyxG,iBAAiB,CAACnpB,OAAD,EAAU1jG,KAAV,EAAiB;IAC9B,KAAK4iH,MAAL,CAAYiK,iBAAZ,CAA8BnpB,OAA9B,EAAuC1jG,KAAvC;EACH;;AAhFuB;;AAkF5B,MAAMigV,iBAAN,SAAgCF,qBAAhC,CAAsD;EAClD5jV,WAAW,CAACoC,OAAD,EAAU6gH,WAAV,EAAuBrlB,QAAvB,EAAiC6oB,MAAjC,EAAyC1kB,SAAzC,EAAoD;IAC3D,MAAMkhB,WAAN,EAAmBrlB,QAAnB,EAA6B6oB,MAA7B,EAAqC1kB,SAArC;IACA,KAAK3/F,OAAL,GAAeA,OAAf;IACA,KAAK6gH,WAAL,GAAmBA,WAAnB;EACH;;EACDsnJ,WAAW,CAACrvH,EAAD,EAAKr7I,IAAL,EAAWgE,KAAX,EAAkB;IACzB,IAAIhE,IAAI,CAACiyB,MAAL,CAAY,CAAZ,KAAkBoxT,gBAAtB,EAAwC;MACpC,IAAIrjV,IAAI,CAACiyB,MAAL,CAAY,CAAZ,KAAkB,GAAlB,IAAyBjyB,IAAI,IAAIsjV,uBAArC,EAA8D;QAC1Dt/U,KAAK,GAAGA,KAAK,KAAKtB,SAAV,GAAsB,IAAtB,GAA6B,CAAC,CAACsB,KAAvC;QACA,KAAK6sH,iBAAL,CAAuBwqB,EAAvB,EAA2Br3I,KAA3B;MACH,CAHD,MAIK;QACD,KAAK4iH,MAAL,CAAYhvB,OAAZ,CAAoB,KAAKwrB,WAAzB,EAAsCi4B,EAAtC,EAA0Cr7I,IAAI,CAAC8oF,KAAL,CAAW,CAAX,CAA1C,EAAyD9kF,KAAzD;MACH;IACJ,CARD,MASK;MACD,KAAK+5F,QAAL,CAAc2sK,WAAd,CAA0BrvH,EAA1B,EAA8Br7I,IAA9B,EAAoCgE,KAApC;IACH;EACJ;;EACD0+G,MAAM,CAACjqF,MAAD,EAASm0B,SAAT,EAAoBxtC,QAApB,EAA8B;IAChC,IAAIwtC,SAAS,CAAC36B,MAAV,CAAiB,CAAjB,KAAuBoxT,gBAA3B,EAA6C;MACzC,MAAM37O,OAAO,GAAG68O,wBAAwB,CAAC9rT,MAAD,CAAxC;MACA,IAAIz4B,IAAI,GAAG4sD,SAAS,CAACk8B,KAAV,CAAgB,CAAhB,CAAX;MACA,IAAI8d,KAAK,GAAG,EAAZ,CAHyC,CAIzC;MACA;;MACA,IAAI5mG,IAAI,CAACiyB,MAAL,CAAY,CAAZ,KAAkBoxT,gBAAtB,EAAwC;QACpC,CAACrjV,IAAD,EAAO4mG,KAAP,IAAgB49O,wBAAwB,CAACxkV,IAAD,CAAxC;MACH;;MACD,OAAO,KAAK4mH,MAAL,CAAYlE,MAAZ,CAAmB,KAAKU,WAAxB,EAAqC1b,OAArC,EAA8C1nG,IAA9C,EAAoD4mG,KAApD,EAA2DzsF,KAAK,IAAI;QACvE,MAAMsqU,OAAO,GAAGtqU,KAAK,CAAC,OAAD,CAAL,IAAkB,CAAC,CAAnC;QACA,KAAK5X,OAAL,CAAa4hV,wBAAb,CAAsCM,OAAtC,EAA+CrlU,QAA/C,EAAyDjF,KAAzD;MACH,CAHM,CAAP;IAIH;;IACD,OAAO,KAAK4jF,QAAL,CAAc2kB,MAAd,CAAqBjqF,MAArB,EAA6Bm0B,SAA7B,EAAwCxtC,QAAxC,CAAP;EACH;;AApCiD;;AAsCtD,SAASmlU,wBAAT,CAAkC9rT,MAAlC,EAA0C;EACtC,QAAQA,MAAR;IACI,KAAK,MAAL;MACI,OAAO7zB,QAAQ,CAACkM,IAAhB;;IACJ,KAAK,UAAL;MACI,OAAOlM,QAAP;;IACJ,KAAK,QAAL;MACI,OAAOM,MAAP;;IACJ;MACI,OAAOuzB,MAAP;EARR;AAUH;;AACD,SAAS+rT,wBAAT,CAAkC77O,WAAlC,EAA+C;EAC3C,MAAM+7O,QAAQ,GAAG/7O,WAAW,CAACthG,OAAZ,CAAoB,GAApB,CAAjB;EACA,MAAM64F,OAAO,GAAGyI,WAAW,CAACz2E,SAAZ,CAAsB,CAAtB,EAAyBwyT,QAAzB,CAAhB;EACA,MAAM99O,KAAK,GAAG+B,WAAW,CAAC7f,KAAZ,CAAkB47P,QAAQ,GAAG,CAA7B,CAAd;EACA,OAAO,CAACxkP,OAAD,EAAU0G,KAAV,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM+9O,yBAAN,SAAwCvxN,4EAAxC,CAAyD;EACrD;EACA;EACA;EACAjzH,WAAW,CAACuyJ,GAAD,EAAMlrD,MAAN,EAAcC,UAAd,EAA0BonM,MAA1B,EAAkC;IACzC,MAAMn8I,GAAG,CAAC5hJ,IAAV,EAAgB02F,MAAhB,EAAwBC,UAAxB;EACH;;EACDkxB,WAAW,GAAG;IACV,KAAKzO,KAAL;EACH;;AAToD;;AAWzDy6N,yBAAyB,CAAC3iV,IAA1B;EAAA,iBAAsH2iV,yBAAtH,EA7V0G3gP,sDA6V1G,CAAiKhmG,qDAAjK,GA7V0GgmG,sDA6V1G,CAAsLkmD,wEAAtL,GA7V0GlmD,sDA6V1G,CAAqNkmD,qFAArN,GA7V0GlmD,sDA6V1G,CAA8PA,yDAA9P;AAAA;;AACA2gP,yBAAyB,CAACviV,KAA1B,kBA9V0G4hG,gEA8V1G;EAAA,OAA0H2gP,yBAA1H;EAAA,SAA0HA,yBAA1H;AAAA;;AACA;EAAA,mDA/V0G3gP,+DA+V1G,CAA2F2gP,yBAA3F,EAAkI,CAAC;IACvHliV,IAAI,EAAEhF,qDAAUA;EADuG,CAAD,CAAlI,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAEgF,IAAI,EAAEC,SAAR;MAAmBC,UAAU,EAAE,CAAC;QAC9DF,IAAI,EAAE/E,iDADwD;QAE9DkF,IAAI,EAAE,CAAC5E,qDAAD;MAFwD,CAAD;IAA/B,CAAD,EAG3B;MAAEyE,IAAI,EAAEynJ,wEAAkB7+C;IAA1B,CAH2B,EAGG;MAAE5oG,IAAI,EAAEynJ,qFAA4B72B;IAApC,CAHH,EAG2C;MAAE5wH,IAAI,EAAEuhG,yDAAiB8qO;IAAzB,CAH3C,CAAP;EAGiF,CAL3H;AAAA;;AAMA,SAAS8V,iCAAT,GAA6C;EACzC,OAAO,IAAIlxN,yFAAJ,EAAP;AACH;;AACD,SAASmxN,0BAAT,CAAoCjjM,QAApC,EAA8Ch7B,MAA9C,EAAsD0d,IAAtD,EAA4D;EACxD,OAAO,IAAIi/M,wBAAJ,CAA6B3hM,QAA7B,EAAuCh7B,MAAvC,EAA+C0d,IAA/C,CAAP;AACH;;AACD,MAAMwgN,0BAA0B,GAAG,CAC/B;EAAE33U,OAAO,EAAE4yF,iEAAX;EAA6B4zD,QAAQ,EAAEgvL;AAAvC,CAD+B,EAE/B;EAAEx1U,OAAO,EAAEkmH,qFAAX;EAAsCmD,UAAU,EAAEouN;AAAlD,CAF+B,EAG/B;EAAEz3U,OAAO,EAAEimH,4EAAX;EAA6BugC,QAAQ,EAAEgxL;AAAvC,CAH+B,EAGqC;EAChEx3U,OAAO,EAAEmlR,2DADuD;EAEhE97J,UAAU,EAAEquN,0BAFoD;EAGhEv5M,IAAI,EAAE,CAACm3M,8EAAD,EAAuBrvN,4EAAvB,EAAyCwC,iDAAzC;AAH0D,CAHrC,CAAnC;AASA;AACA;AACA;AACA;;AACA,MAAMmvN,4BAA4B,GAAG,CACjC;EAAE53U,OAAO,EAAEk+F,wEAAX;EAA4BmrB,UAAU,EAAE,MAAM,IAAIhD,gFAAJ;AAA9C,CADiC,EAEjC;EAAErmH,OAAO,EAAE03T,gEAAX;EAAkCz3T,QAAQ,EAAE;AAA5C,CAFiC,EAEkC,GAAG03U,0BAFrC,CAArC;AAIA;AACA;AACA;AACA;;AACA,MAAME,iCAAiC,GAAG,CACtC;EAAE73U,OAAO,EAAEk+F,wEAAX;EAA4BsoD,QAAQ,EAAErgC,gFAAoBA;AAA1D,CADsC,EAEtC;EAAEnmH,OAAO,EAAE03T,gEAAX;EAAkCz3T,QAAQ,EAAE;AAA5C,CAFsC,EAE0B,GAAG03U,0BAF7B,CAA1C;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMG,uBAAN,CAA8B;EAC1B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACqB,OAAVC,UAAU,CAAC5wU,MAAD,EAAS;IACtB,OAAO;MACHrH,QAAQ,EAAEg4U,uBADP;MAEH/3U,SAAS,EAAEoH,MAAM,CAACu8G,iBAAP,GAA2Bm0N,iCAA3B,GACPD;IAHD,CAAP;EAKH;;AAvByB;;AAyB9BE,uBAAuB,CAACjjV,IAAxB;EAAA,iBAAoHijV,uBAApH;AAAA;;AACAA,uBAAuB,CAAC33U,IAAxB,kBA3a0G02F,8DA2a1G;EAAA,MAAqHihP,uBAArH;EAAA,UAAwJvC,oEAAxJ;AAAA;AACAuC,uBAAuB,CAACz3U,IAAxB,kBA5a0Gw2F,8DA4a1G;EAAA,WAAyJ+gP,4BAAzJ;EAAA,UAAiMrC,oEAAjM;AAAA;;AACA;EAAA,mDA7a0G1+O,+DA6a1G,CAA2FihP,uBAA3F,EAAgI,CAAC;IACrHxiV,IAAI,EAAE3E,mDAD+G;IAErH8E,IAAI,EAAE,CAAC;MACC+2I,OAAO,EAAE,CAAC+oM,oEAAD,CADV;MAECx1U,SAAS,EAAE63U;IAFZ,CAAD;EAF+G,CAAD,CAAhI;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASI,iBAAT,GAA6B;EACzB;EACA;EACA,OAAO,CAAC,GAAGJ,4BAAJ,CAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,MAAMK,oBAAN,CAA2B;;AAE3BA,oBAAoB,CAACpjV,IAArB;EAAA,iBAAiHojV,oBAAjH;AAAA;;AACAA,oBAAoB,CAAC93U,IAArB,kBAvd0G02F,8DAud1G;EAAA,MAAkHohP,oBAAlH;EAAA,UAAkJ1C,oEAAlJ;AAAA;AACA0C,oBAAoB,CAAC53U,IAArB,kBAxd0Gw2F,8DAwd1G;EAAA,WAAmJghP,iCAAnJ;EAAA,UAAgMtC,oEAAhM;AAAA;;AACA;EAAA,mDAzd0G1+O,+DAyd1G,CAA2FohP,oBAA3F,EAA6H,CAAC;IAClH3iV,IAAI,EAAE3E,mDAD4G;IAElH8E,IAAI,EAAE,CAAC;MACC+2I,OAAO,EAAE,CAAC+oM,oEAAD,CADV;MAECx1U,SAAS,EAAE83U;IAFZ,CAAD;EAF4G,CAAD,CAA7H;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASK,qBAAT,GAAiC;EAC7B;EACA;EACA,OAAO,CAAC,GAAGL,iCAAJ,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnkBA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMW,wBAAN,SAAuCl8L,2DAAvC,CAAmD;EAC/CtpJ,WAAW,GAAG;IACV,MAAM,GAAGyP,SAAT;IACA,KAAKg2U,iBAAL,GAAyB,IAAzB;EACH;;AAJ8C;AAOnD;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;AACA,MAAMC,iBAAN,SAAgCF,wBAAhC,CAAyD;EACnC,OAAXG,WAAW,GAAG;IACjB77L,sEAAkB,CAAC,IAAI47L,iBAAJ,EAAD,CAAlB;EACH;;EACDE,WAAW,CAAC1qM,EAAD,EAAK2qM,GAAL,EAAUt/N,QAAV,EAAoB;IAC3B20B,EAAE,CAAC1gI,gBAAH,CAAoBqrU,GAApB,EAAyBt/N,QAAzB,EAAmC,KAAnC,EAD2B,CAE3B;IACA;;IACA,OAAO,MAAM;MACT20B,EAAE,CAACngI,mBAAH,CAAuB8qU,GAAvB,EAA4Bt/N,QAA5B,EAAsC,KAAtC;IACH,CAFD;EAGH;;EACDu/N,aAAa,CAAC5qM,EAAD,EAAK2qM,GAAL,EAAU;IACnB3qM,EAAE,CAAC4qM,aAAH,CAAiBD,GAAjB;EACH;;EACDvyP,MAAM,CAACob,IAAD,EAAO;IACT,IAAIA,IAAI,CAACnmD,UAAT,EAAqB;MACjBmmD,IAAI,CAACnmD,UAAL,CAAgBC,WAAhB,CAA4BkmD,IAA5B;IACH;EACJ;;EACD5jG,aAAa,CAACqpJ,OAAD,EAAU5B,GAAV,EAAe;IACxBA,GAAG,GAAGA,GAAG,IAAI,KAAKwzL,kBAAL,EAAb;IACA,OAAOxzL,GAAG,CAACznJ,aAAJ,CAAkBqpJ,OAAlB,CAAP;EACH;;EACD6xL,kBAAkB,GAAG;IACjB,OAAOvhV,QAAQ,CAAC8rJ,cAAT,CAAwBC,kBAAxB,CAA2C,WAA3C,CAAP;EACH;;EACDu1L,kBAAkB,GAAG;IACjB,OAAOthV,QAAP;EACH;;EACDykH,aAAa,CAACxa,IAAD,EAAO;IAChB,OAAOA,IAAI,CAAClK,QAAL,KAAkBowJ,IAAI,CAACy0B,YAA9B;EACH;;EACD48D,YAAY,CAACv3O,IAAD,EAAO;IACf,OAAOA,IAAI,YAAYw3O,gBAAvB;EACH;EACD;;;EACApvN,oBAAoB,CAACy7B,GAAD,EAAMj6H,MAAN,EAAc;IAC9B,IAAIA,MAAM,KAAK,QAAf,EAAyB;MACrB,OAAOvzB,MAAP;IACH;;IACD,IAAIuzB,MAAM,KAAK,UAAf,EAA2B;MACvB,OAAOi6H,GAAP;IACH;;IACD,IAAIj6H,MAAM,KAAK,MAAf,EAAuB;MACnB,OAAOi6H,GAAG,CAAC5hJ,IAAX;IACH;;IACD,OAAO,IAAP;EACH;;EACDimH,WAAW,CAAC27B,GAAD,EAAM;IACb,MAAMztJ,IAAI,GAAGqhV,kBAAkB,EAA/B;IACA,OAAOrhV,IAAI,IAAI,IAAR,GAAe,IAAf,GAAsBshV,YAAY,CAACthV,IAAD,CAAzC;EACH;;EACDuhV,gBAAgB,GAAG;IACfjiL,WAAW,GAAG,IAAd;EACH;;EACDkiL,YAAY,GAAG;IACX,OAAOvhV,MAAM,CAACikD,SAAP,CAAiBkH,SAAxB;EACH;;EACDq2R,SAAS,CAAC1mV,IAAD,EAAO;IACZ,OAAOgqJ,qEAAiB,CAACplJ,QAAQ,CAACmtB,MAAV,EAAkB/xB,IAAlB,CAAxB;EACH;;AA7DoD;;AA+DzD,IAAIukK,WAAW,GAAG,IAAlB;;AACA,SAAS+hL,kBAAT,GAA8B;EAC1B/hL,WAAW,GAAGA,WAAW,IAAI3/J,QAAQ,CAACmlG,aAAT,CAAuB,MAAvB,CAA7B;EACA,OAAOw6D,WAAW,GAAGA,WAAW,CAACoiL,YAAZ,CAAyB,MAAzB,CAAH,GAAsC,IAAxD;AACH,EACD;;;AACA,IAAIC,cAAJ;;AACA,SAASL,YAAT,CAAsB9hV,GAAtB,EAA2B;EACvBmiV,cAAc,GAAGA,cAAc,IAAIhiV,QAAQ,CAACqG,aAAT,CAAuB,GAAvB,CAAnC;EACA27U,cAAc,CAACp+R,YAAf,CAA4B,MAA5B,EAAoC/jD,GAApC;EACA,MAAMoiV,QAAQ,GAAGD,cAAc,CAACj3R,QAAhC;EACA,OAAOk3R,QAAQ,CAAC50T,MAAT,CAAgB,CAAhB,MAAuB,GAAvB,GAA6B40T,QAA7B,GAAyC,IAAGA,QAAS,EAA5D;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAMC,aAAa,GAAG,IAAItpV,yDAAJ,CAAmB,eAAnB,CAAtB;;AACA,SAASupV,qBAAT,CAA+BC,YAA/B,EAA6CpiV,QAA7C,EAAuDiqI,QAAvD,EAAiE;EAC7D,OAAO,MAAM;IACT;IACA;IACAA,QAAQ,CAACtjI,GAAT,CAAas4T,gEAAb,EAAoCE,WAApC,CAAgDnzT,IAAhD,CAAqD,MAAM;MACvD,MAAMq2U,GAAG,GAAGl9L,2DAAO,EAAnB;MACA,MAAMzpD,MAAM,GAAG17F,QAAQ,CAACilG,gBAAT,CAA2B,wBAAuBm9O,YAAa,IAA/D,CAAf;;MACA,KAAK,IAAIt3U,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4wF,MAAM,CAACt7F,MAA3B,EAAmC0K,CAAC,EAApC,EAAwC;QACpCu3U,GAAG,CAACxzP,MAAJ,CAAW6M,MAAM,CAAC5wF,CAAD,CAAjB;MACH;IACJ,CAND;EAOH,CAVD;AAWH;;AACD,MAAMw3U,2BAA2B,GAAG,CAChC;EACI/5U,OAAO,EAAEy2T,0DADb;EAEIptM,UAAU,EAAEuwN,qBAFhB;EAGIz7M,IAAI,EAAE,CAACw7M,aAAD,EAAgB9oV,qDAAhB,EAA0B03H,mDAA1B,CAHV;EAIInsB,KAAK,EAAE;AAJX,CADgC,CAApC;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM49O,qBAAN,CAA4B;EACxBtc,WAAW,CAACt0G,QAAD,EAAW;IAClBopH,2EAAA,GAAmC,CAAC71O,IAAD,EAAO2iO,eAAe,GAAG,IAAzB,KAAkC;MACjE,MAAMN,WAAW,GAAG51G,QAAQ,CAACi2G,qBAAT,CAA+B1iO,IAA/B,EAAqC2iO,eAArC,CAApB;;MACA,IAAIN,WAAW,IAAI,IAAnB,EAAyB;QACrB,MAAM,IAAIp0S,KAAJ,CAAU,yCAAV,CAAN;MACH;;MACD,OAAOo0S,WAAP;IACH,CAND;;IAOAwT,gFAAA,GAAwC,MAAMppH,QAAQ,CAAC+1G,mBAAT,EAA9C;;IACAqT,+EAAA,GAAuC,MAAMppH,QAAQ,CAACg2G,kBAAT,EAA7C;;IACA,MAAM6a,aAAa,GAAG,CAAChoU;IAAS;IAAV,KAAgC;MAClD,MAAMioU,aAAa,GAAG1H,gFAAA,EAAtB;MACA,IAAIjmT,KAAK,GAAG2tT,aAAa,CAACriV,MAA1B;MACA,IAAIsiV,OAAO,GAAG,KAAd;;MACA,MAAMC,SAAS,GAAG,UAAUC;MAAS;MAAnB,EAAsC;QACpDF,OAAO,GAAGA,OAAO,IAAIE,QAArB;QACA9tT,KAAK;;QACL,IAAIA,KAAK,IAAI,CAAb,EAAgB;UACZta,QAAQ,CAACkoU,OAAD,CAAR;QACH;MACJ,CAND;;MAOAD,aAAa,CAACp9U,OAAd,CAAsB,UAAUkiU;MAAY;MAAtB,EAAyC;QAC3DA,WAAW,CAACV,UAAZ,CAAuB8b,SAAvB;MACH,CAFD;IAGH,CAdD;;IAeA,IAAI,CAAC5H,0EAAL,EAAsC;MAClCA,0EAAA,GAAkC,EAAlC;IACH;;IACDA,+EAAA,CAAqCyH,aAArC;EACH;;EACD5a,qBAAqB,CAACj2G,QAAD,EAAWzsH,IAAX,EAAiB2iO,eAAjB,EAAkC;IACnD,IAAI3iO,IAAI,IAAI,IAAZ,EAAkB;MACd,OAAO,IAAP;IACH;;IACD,MAAM5nG,CAAC,GAAGq0N,QAAQ,CAAC81G,cAAT,CAAwBviO,IAAxB,CAAV;;IACA,IAAI5nG,CAAC,IAAI,IAAT,EAAe;MACX,OAAOA,CAAP;IACH,CAFD,MAGK,IAAI,CAACuqU,eAAL,EAAsB;MACvB,OAAO,IAAP;IACH;;IACD,IAAI1iL,2DAAO,GAAGq8L,YAAV,CAAuBt8O,IAAvB,CAAJ,EAAkC;MAC9B,OAAO,KAAK0iO,qBAAL,CAA2Bj2G,QAA3B,EAAqCzsH,IAAI,CAACzvC,IAA1C,EAAgD,IAAhD,CAAP;IACH;;IACD,OAAO,KAAKmyQ,qBAAL,CAA2Bj2G,QAA3B,EAAqCzsH,IAAI,CAAC6kH,aAA1C,EAAyD,IAAzD,CAAP;EACH;;AA9CuB;AAiD5B;AACA;AACA;;;AACA,MAAM84H,UAAN,CAAiB;EACb31O,KAAK,GAAG;IACJ,OAAO,IAAI7nD,cAAJ,EAAP;EACH;;AAHY;;AAKjBw9R,UAAU,CAACzlV,IAAX;EAAA,iBAAuGylV,UAAvG;AAAA;;AACAA,UAAU,CAACrlV,KAAX,kBAD6F4hG,gEAC7F;EAAA,OAA2GyjP,UAA3G;EAAA,SAA2GA,UAA3G;AAAA;;AACA;EAAA,mDAF6FzjP,+DAE7F,CAA2FyjP,UAA3F,EAAmH,CAAC;IACxGhlV,IAAI,EAAEhF,qDAAUA;EADwF,CAAD,CAAnH;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMiqV,qBAAqB,GAAG,IAAIlqV,yDAAJ,CAAmB,qBAAnB,CAA9B;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMmqV,YAAN,CAAmB;EACf;AACJ;AACA;EACIxnV,WAAW,CAACynV,OAAD,EAAUvX,KAAV,EAAiB;IACxB,KAAKA,KAAL,GAAaA,KAAb;IACA,KAAKwX,kBAAL,GAA0B,IAAIjzU,GAAJ,EAA1B;IACAgzU,OAAO,CAAC39U,OAAR,CAAgBkF,CAAC,IAAIA,CAAC,CAAC24U,OAAF,GAAY,IAAjC;IACA,KAAKC,QAAL,GAAgBH,OAAO,CAAC9+P,KAAR,GAAgBo9C,OAAhB,EAAhB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIvrH,gBAAgB,CAAC+sF,OAAD,EAAU96C,SAAV,EAAqBoxC,OAArB,EAA8B;IAC1C,MAAMgqP,MAAM,GAAG,KAAKC,cAAL,CAAoBr7R,SAApB,CAAf;;IACA,OAAOo7R,MAAM,CAACrtU,gBAAP,CAAwB+sF,OAAxB,EAAiC96C,SAAjC,EAA4CoxC,OAA5C,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIkqP,sBAAsB,CAACzvT,MAAD,EAASm0B,SAAT,EAAoBoxC,OAApB,EAA6B;IAC/C,MAAMgqP,MAAM,GAAG,KAAKC,cAAL,CAAoBr7R,SAApB,CAAf;;IACA,OAAOo7R,MAAM,CAACE,sBAAP,CAA8BzvT,MAA9B,EAAsCm0B,SAAtC,EAAiDoxC,OAAjD,CAAP;EACH;EACD;AACJ;AACA;;;EACImqP,OAAO,GAAG;IACN,OAAO,KAAK9X,KAAZ;EACH;EACD;;;EACA4X,cAAc,CAACr7R,SAAD,EAAY;IACtB,MAAMo7R,MAAM,GAAG,KAAKH,kBAAL,CAAwBt8U,GAAxB,CAA4BqhD,SAA5B,CAAf;;IACA,IAAIo7R,MAAJ,EAAY;MACR,OAAOA,MAAP;IACH;;IACD,MAAMJ,OAAO,GAAG,KAAKG,QAArB;;IACA,KAAK,IAAIr4U,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGk4U,OAAO,CAAC5iV,MAA5B,EAAoC0K,CAAC,EAArC,EAAyC;MACrC,MAAMs4U,MAAM,GAAGJ,OAAO,CAACl4U,CAAD,CAAtB;;MACA,IAAIs4U,MAAM,CAACvuM,QAAP,CAAgB7sF,SAAhB,CAAJ,EAAgC;QAC5B,KAAKi7R,kBAAL,CAAwB/+U,GAAxB,CAA4B8jD,SAA5B,EAAuCo7R,MAAvC;;QACA,OAAOA,MAAP;MACH;IACJ;;IACD,MAAM,IAAIjwT,KAAJ,CAAW,2CAA0C60B,SAAU,EAA/D,CAAN;EACH;;AA1Dc;;AA4DnB+6R,YAAY,CAAC3lV,IAAb;EAAA,iBAAyG2lV,YAAzG,EArF6F3jP,sDAqF7F,CAAuI0jP,qBAAvI,GArF6F1jP,sDAqF7F,CAAyKA,iDAAzK;AAAA;;AACA2jP,YAAY,CAACvlV,KAAb,kBAtF6F4hG,gEAsF7F;EAAA,OAA6G2jP,YAA7G;EAAA,SAA6GA,YAA7G;AAAA;;AACA;EAAA,mDAvF6F3jP,+DAuF7F,CAA2F2jP,YAA3F,EAAqH,CAAC;IAC1GllV,IAAI,EAAEhF,qDAAUA;EAD0F,CAAD,CAArH,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAEgF,IAAI,EAAEC,SAAR;MAAmBC,UAAU,EAAE,CAAC;QAC9DF,IAAI,EAAE/E,iDADwD;QAE9DkF,IAAI,EAAE,CAAC8kV,qBAAD;MAFwD,CAAD;IAA/B,CAAD,EAG3B;MAAEjlV,IAAI,EAAEuhG,iDAAS4xB;IAAjB,CAH2B,CAAP;EAGG,CAL7C;AAAA;;AAMA,MAAMwyN,kBAAN,CAAyB;EACrBjoV,WAAW,CAACw2H,IAAD,EAAO;IACd,KAAKA,IAAL,GAAYA,IAAZ;EACH;;EACDuxN,sBAAsB,CAACxgP,OAAD,EAAU96C,SAAV,EAAqBoxC,OAArB,EAA8B;IAChD,MAAMvlE,MAAM,GAAGsxH,2DAAO,GAAG9yB,oBAAV,CAA+B,KAAKN,IAApC,EAA0CjvB,OAA1C,CAAf;;IACA,IAAI,CAACjvE,MAAL,EAAa;MACT,MAAM,IAAIV,KAAJ,CAAW,4BAA2BU,MAAO,cAAam0B,SAAU,EAApE,CAAN;IACH;;IACD,OAAO,KAAKjyC,gBAAL,CAAsB8d,MAAtB,EAA8Bm0B,SAA9B,EAAyCoxC,OAAzC,CAAP;EACH;;AAVoB;AAazB;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMqqP,gBAAN,CAAuB;EACnBloV,WAAW,GAAG;IACV;IACA,KAAKmoV,UAAL,GAAkB,IAAIpmQ,GAAJ,EAAlB;EACH;;EACDqmQ,SAAS,CAACjoP,MAAD,EAAS;IACd,MAAMkoP,SAAS,GAAG,IAAItmQ,GAAJ,EAAlB;IACAoe,MAAM,CAACr2F,OAAP,CAAem+C,KAAK,IAAI;MACpB,IAAI,CAAC,KAAKkgS,UAAL,CAAgB1uT,GAAhB,CAAoBwuB,KAApB,CAAL,EAAiC;QAC7B,KAAKkgS,UAAL,CAAgBnmQ,GAAhB,CAAoB/5B,KAApB;;QACAogS,SAAS,CAACrmQ,GAAV,CAAc/5B,KAAd;MACH;IACJ,CALD;IAMA,KAAKqgS,aAAL,CAAmBD,SAAnB;EACH;;EACDC,aAAa,CAACD,SAAD,EAAY,CAAG;;EAC5BE,YAAY,GAAG;IACX,OAAOn/U,KAAK,CAAC5K,IAAN,CAAW,KAAK2pV,UAAhB,CAAP;EACH;;AAlBkB;;AAoBvBD,gBAAgB,CAACrmV,IAAjB;EAAA,iBAA6GqmV,gBAA7G;AAAA;;AACAA,gBAAgB,CAACjmV,KAAjB,kBAtI6F4hG,gEAsI7F;EAAA,OAAiHqkP,gBAAjH;EAAA,SAAiHA,gBAAjH;AAAA;;AACA;EAAA,mDAvI6FrkP,+DAuI7F,CAA2FqkP,gBAA3F,EAAyH,CAAC;IAC9G5lV,IAAI,EAAEhF,qDAAUA;EAD8F,CAAD,CAAzH;AAAA;;AAGA,MAAMkrV,mBAAN,SAAkCN,gBAAlC,CAAmD;EAC/CloV,WAAW,CAACw2H,IAAD,EAAO;IACd;IACA,KAAKA,IAAL,GAAYA,IAAZ,CAFc,CAGd;;IACA,KAAKiyN,UAAL,GAAkB,IAAIh0U,GAAJ,EAAlB;;IACA,KAAKg0U,UAAL,CAAgB9/U,GAAhB,CAAoB6tH,IAAI,CAACqrB,IAAzB,EAA+B,EAA/B;EACH;;EACD6mM,gBAAgB,CAACvoP,MAAD,EAASjmC,IAAT,EAAe27K,UAAf,EAA2B;IACvC11I,MAAM,CAACr2F,OAAP,CAAgBm+C,KAAD,IAAW;MACtB,MAAM0gS,OAAO,GAAG,KAAKnyN,IAAL,CAAU1rH,aAAV,CAAwB,OAAxB,CAAhB;;MACA69U,OAAO,CAACjmD,WAAR,GAAsBz6O,KAAtB;MACA4tL,UAAU,CAAC3rO,IAAX,CAAgBgwD,IAAI,CAAC5R,WAAL,CAAiBqgS,OAAjB,CAAhB;IACH,CAJD;EAKH;;EACDC,OAAO,CAACC,QAAD,EAAW;IACd,MAAMhzG,UAAU,GAAG,EAAnB;;IACA,KAAK6yG,gBAAL,CAAsB,KAAKP,UAA3B,EAAuCU,QAAvC,EAAiDhzG,UAAjD;;IACA,KAAK4yG,UAAL,CAAgB9/U,GAAhB,CAAoBkgV,QAApB,EAA8BhzG,UAA9B;EACH;;EACDizG,UAAU,CAACD,QAAD,EAAW;IACjB,MAAMhzG,UAAU,GAAG,KAAK4yG,UAAL,CAAgBr9U,GAAhB,CAAoBy9U,QAApB,CAAnB;;IACA,IAAIhzG,UAAJ,EAAgB;MACZA,UAAU,CAAC/rO,OAAX,CAAmBqrI,WAAnB;IACH;;IACD,KAAKszM,UAAL,CAAgB/sU,MAAhB,CAAuBmtU,QAAvB;EACH;;EACDP,aAAa,CAACD,SAAD,EAAY;IACrB,KAAKI,UAAL,CAAgB3+U,OAAhB,CAAwB,CAAC+rO,UAAD,EAAagzG,QAAb,KAA0B;MAC9C,KAAKH,gBAAL,CAAsBL,SAAtB,EAAiCQ,QAAjC,EAA2ChzG,UAA3C;IACH,CAFD;EAGH;;EACDr9G,WAAW,GAAG;IACV,KAAKiwN,UAAL,CAAgB3+U,OAAhB,CAAwB+rO,UAAU,IAAIA,UAAU,CAAC/rO,OAAX,CAAmBqrI,WAAnB,CAAtC;EACH;;AAlC8C;;AAoCnDqzM,mBAAmB,CAAC3mV,IAApB;EAAA,iBAAgH2mV,mBAAhH,EA9K6F3kP,sDA8K7F,CAAqJhmG,qDAArJ;AAAA;;AACA2qV,mBAAmB,CAACvmV,KAApB,kBA/K6F4hG,gEA+K7F;EAAA,OAAoH2kP,mBAApH;EAAA,SAAoHA,mBAApH;AAAA;;AACA;EAAA,mDAhL6F3kP,+DAgL7F,CAA2F2kP,mBAA3F,EAA4H,CAAC;IACjHlmV,IAAI,EAAEhF,qDAAUA;EADiG,CAAD,CAA5H,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAEgF,IAAI,EAAEC,SAAR;MAAmBC,UAAU,EAAE,CAAC;QAC9DF,IAAI,EAAE/E,iDADwD;QAE9DkF,IAAI,EAAE,CAAC5E,qDAAD;MAFwD,CAAD;IAA/B,CAAD,CAAP;EAGlB,CALxB;AAAA;;AAMA,SAASs3I,WAAT,CAAqB4zM,SAArB,EAAgC;EAC5Bn/L,2DAAO,GAAGt2D,MAAV,CAAiBy1P,SAAjB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,cAAc,GAAG;EACnB,OAAO,4BADY;EAEnB,SAAS,8BAFU;EAGnB,SAAS,8BAHU;EAInB,OAAO,sCAJY;EAKnB,SAAS,+BALU;EAMnB,QAAQ;AANW,CAAvB;AAQA,MAAMC,eAAe,GAAG,SAAxB;AACA,MAAMC,aAAa,GAAG,OAAOxmV,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAA5D;AACA,MAAMkxO,kBAAkB,GAAG,QAA3B;AACA,MAAMC,SAAS,GAAI,WAAUD,kBAAmB,EAAhD;AACA,MAAME,YAAY,GAAI,cAAaF,kBAAmB,EAAtD;;AACA,SAASu1G,oBAAT,CAA8BC,gBAA9B,EAAgD;EAC5C,OAAOt1G,YAAY,CAAC9rM,OAAb,CAAqBihT,eAArB,EAAsCG,gBAAtC,CAAP;AACH;;AACD,SAASC,iBAAT,CAA2BD,gBAA3B,EAA6C;EACzC,OAAOv1G,SAAS,CAAC7rM,OAAV,CAAkBihT,eAAlB,EAAmCG,gBAAnC,CAAP;AACH;;AACD,SAASjtO,aAAT,CAAuBmtO,MAAvB,EAA+BnpP,MAA/B,EAAuC7nE,MAAvC,EAA+C;EAC3C,KAAK,IAAI/oB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4wF,MAAM,CAACt7F,MAA3B,EAAmC0K,CAAC,EAApC,EAAwC;IACpC,IAAI04C,KAAK,GAAGk4C,MAAM,CAAC5wF,CAAD,CAAlB;;IACA,IAAInG,KAAK,CAACiqF,OAAN,CAAcprC,KAAd,CAAJ,EAA0B;MACtBk0D,aAAa,CAACmtO,MAAD,EAASrhS,KAAT,EAAgB3vB,MAAhB,CAAb;IACH,CAFD,MAGK;MACD2vB,KAAK,GAAGA,KAAK,CAACjgB,OAAN,CAAcihT,eAAd,EAA+BK,MAA/B,CAAR;MACAhxT,MAAM,CAACpuB,IAAP,CAAY+9C,KAAZ;IACH;EACJ;;EACD,OAAO3vB,MAAP;AACH;;AACD,SAASixT,sBAAT,CAAgCp0U,YAAhC,EAA8C;EAC1C;EACA;EACA;EACA;EACA,OAAQ6E,KAAD,IAAW;IACd;IACA;IACA;IACA;IACA,IAAIA,KAAK,KAAK,cAAd,EAA8B;MAC1B,OAAO7E,YAAP;IACH;;IACD,MAAMq0U,oBAAoB,GAAGr0U,YAAY,CAAC6E,KAAD,CAAzC;;IACA,IAAIwvU,oBAAoB,KAAK,KAA7B,EAAoC;MAChC;MACAxvU,KAAK,CAACqmC,cAAN;MACArmC,KAAK,CAAC2+R,WAAN,GAAoB,KAApB;IACH;;IACD,OAAOp2S,SAAP;EACH,CAfD;AAgBH;;AACD,IAAIknV,mCAAmC,GAAG,KAA1C;;AACA,MAAMC,mBAAN,CAA0B;EACtB1pV,WAAW,CAAC2pV,YAAD,EAAeC,gBAAf,EAAiCC,KAAjC,EAAwC;IAC/C,KAAKF,YAAL,GAAoBA,YAApB;IACA,KAAKC,gBAAL,GAAwBA,gBAAxB;IACA,KAAKC,KAAL,GAAaA,KAAb;IACA,KAAKC,gBAAL,GAAwB,IAAIr1U,GAAJ,EAAxB;IACA,KAAKs1U,eAAL,GAAuB,IAAIC,mBAAJ,CAAwBL,YAAxB,CAAvB;EACH;;EACDn+C,cAAc,CAACjkM,OAAD,EAAUjlG,IAAV,EAAgB;IAC1B,IAAI,CAACilG,OAAD,IAAY,CAACjlG,IAAjB,EAAuB;MACnB,OAAO,KAAKynV,eAAZ;IACH;;IACD,QAAQznV,IAAI,CAACkK,aAAb;MACI,KAAKqtJ,qEAAL;QAAiC;UAC7B,IAAIpY,QAAQ,GAAG,KAAKqoM,gBAAL,CAAsB1+U,GAAtB,CAA0B9I,IAAI,CAAC6wB,EAA/B,CAAf;;UACA,IAAI,CAACsuH,QAAL,EAAe;YACXA,QAAQ,GAAG,IAAIwoM,iCAAJ,CAAsC,KAAKN,YAA3C,EAAyD,KAAKC,gBAA9D,EAAgFtnV,IAAhF,EAAsF,KAAKunV,KAA3F,CAAX;YACA,KAAKC,gBAAL,CAAsBnhV,GAAtB,CAA0BrG,IAAI,CAAC6wB,EAA/B,EAAmCsuH,QAAnC;UACH;;UACDA,QAAQ,CAACyoM,WAAT,CAAqB3iP,OAArB;UACA,OAAOk6C,QAAP;QACH;MACD;MACA;;MACA,KAAK,CAAL;MACA,KAAKoY,sEAAL;QACI;QACA,IAAI,CAAC,OAAOn3J,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KACA;QACA;QACA;QACA,CAAC+mV,mCAJD,IAIwCnnV,IAAI,CAACkK,aAAL,KAAuB,CAJnE,EAIsE;UAClEi9U,mCAAmC,GAAG,IAAtC;UACA35O,OAAO,CAACC,IAAR,CAAa,oIAAb;QACH;;QACD,OAAO,IAAIo6O,iBAAJ,CAAsB,KAAKR,YAA3B,EAAyC,KAAKC,gBAA9C,EAAgEriP,OAAhE,EAAyEjlG,IAAzE,CAAP;;MACJ;QAAS;UACL,IAAI,CAAC,KAAKwnV,gBAAL,CAAsBrwT,GAAtB,CAA0Bn3B,IAAI,CAAC6wB,EAA/B,CAAL,EAAyC;YACrC,MAAMgtE,MAAM,GAAGgc,aAAa,CAAC75G,IAAI,CAAC6wB,EAAN,EAAU7wB,IAAI,CAAC69F,MAAf,EAAuB,EAAvB,CAA5B;YACA,KAAKypP,gBAAL,CAAsBxB,SAAtB,CAAgCjoP,MAAhC;YACA,KAAK2pP,gBAAL,CAAsBnhV,GAAtB,CAA0BrG,IAAI,CAAC6wB,EAA/B,EAAmC,KAAK42T,eAAxC;UACH;;UACD,OAAO,KAAKA,eAAZ;QACH;IA/BL;EAiCH;;EACDp9C,KAAK,GAAG,CAAG;;EACX/0K,GAAG,GAAG,CAAG;;AA/Ca;;AAiD1B8xN,mBAAmB,CAAC7nV,IAApB;EAAA,iBAAgH6nV,mBAAhH,EAzS6F7lP,sDAyS7F,CAAqJ2jP,YAArJ,GAzS6F3jP,sDAyS7F,CAA8K2kP,mBAA9K,GAzS6F3kP,sDAyS7F,CAA8MsgO,iDAA9M;AAAA;;AACAulB,mBAAmB,CAACznV,KAApB,kBA1S6F4hG,gEA0S7F;EAAA,OAAoH6lP,mBAApH;EAAA,SAAoHA,mBAApH;AAAA;;AACA;EAAA,mDA3S6F7lP,+DA2S7F,CAA2F6lP,mBAA3F,EAA4H,CAAC;IACjHpnV,IAAI,EAAEhF,qDAAUA;EADiG,CAAD,CAA5H,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAEgF,IAAI,EAAEklV;IAAR,CAAD,EAAyB;MAAEllV,IAAI,EAAEkmV;IAAR,CAAzB,EAAwD;MAAElmV,IAAI,EAAEC,SAAR;MAAmBC,UAAU,EAAE,CAAC;QACrHF,IAAI,EAAE/E,iDAD+G;QAErHkF,IAAI,EAAE,CAAC0hU,iDAAD;MAF+G,CAAD;IAA/B,CAAxD,CAAP;EAGlB,CALxB;AAAA;;AAMA,MAAM6lB,mBAAN,CAA0B;EACtBhqV,WAAW,CAAC2pV,YAAD,EAAe;IACtB,KAAKA,YAAL,GAAoBA,YAApB;IACA,KAAKvlU,IAAL,GAAY7e,MAAM,CAACwI,MAAP,CAAc,IAAd,CAAZ;IACA,KAAK4xQ,WAAL,GAAmB,IAAnB;EACH;;EACDp9K,OAAO,GAAG,CAAG;;EACbz3F,aAAa,CAACjL,IAAD,EAAOohQ,SAAP,EAAkB;IAC3B,IAAIA,SAAJ,EAAe;MACX;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,OAAOx8P,QAAQ,CAAC2lV,eAAT,CAAyBpB,cAAc,CAAC/nF,SAAD,CAAd,IAA6BA,SAAtD,EAAiEphQ,IAAjE,CAAP;IACH;;IACD,OAAO4E,QAAQ,CAACqG,aAAT,CAAuBjL,IAAvB,CAAP;EACH;;EACDqgR,aAAa,CAACr8Q,KAAD,EAAQ;IACjB,OAAOY,QAAQ,CAACy7Q,aAAT,CAAuBr8Q,KAAvB,CAAP;EACH;;EACDi8Q,UAAU,CAACj8Q,KAAD,EAAQ;IACd,OAAOY,QAAQ,CAACo7Q,cAAT,CAAwBh8Q,KAAxB,CAAP;EACH;;EACDykD,WAAW,CAACqH,MAAD,EAASs0R,QAAT,EAAmB;IAC1B,MAAMoG,YAAY,GAAGtnE,cAAc,CAACpzN,MAAD,CAAd,GAAyBA,MAAM,CAACytH,OAAhC,GAA0CztH,MAA/D;IACA06R,YAAY,CAAC/hS,WAAb,CAAyB27R,QAAzB;EACH;;EACD96N,YAAY,CAACx5D,MAAD,EAASs0R,QAAT,EAAmBC,QAAnB,EAA6B;IACrC,IAAIv0R,MAAJ,EAAY;MACR,MAAM06R,YAAY,GAAGtnE,cAAc,CAACpzN,MAAD,CAAd,GAAyBA,MAAM,CAACytH,OAAhC,GAA0CztH,MAA/D;MACA06R,YAAY,CAAClhO,YAAb,CAA0B86N,QAA1B,EAAoCC,QAApC;IACH;EACJ;;EACD17R,WAAW,CAACmH,MAAD,EAASw0R,QAAT,EAAmB;IAC1B,IAAIx0R,MAAJ,EAAY;MACRA,MAAM,CAACnH,WAAP,CAAmB27R,QAAnB;IACH;EACJ;;EACDn8C,iBAAiB,CAACgpC,cAAD,EAAiBlpC,eAAjB,EAAkC;IAC/C,IAAI5sJ,EAAE,GAAG,OAAO81L,cAAP,KAA0B,QAA1B,GAAqCvsU,QAAQ,CAACmlG,aAAT,CAAuBonO,cAAvB,CAArC,GACLA,cADJ;;IAEA,IAAI,CAAC91L,EAAL,EAAS;MACL,MAAM,IAAItjH,KAAJ,CAAW,iBAAgBo5S,cAAe,8BAA1C,CAAN;IACH;;IACD,IAAI,CAAClpC,eAAL,EAAsB;MAClB5sJ,EAAE,CAACwnJ,WAAH,GAAiB,EAAjB;IACH;;IACD,OAAOxnJ,EAAP;EACH;;EACD3yF,UAAU,CAACmmD,IAAD,EAAO;IACb,OAAOA,IAAI,CAACnmD,UAAZ;EACH;;EACD26N,WAAW,CAACx0K,IAAD,EAAO;IACd,OAAOA,IAAI,CAACw0K,WAAZ;EACH;;EACD76N,YAAY,CAAC6yF,EAAD,EAAKr7I,IAAL,EAAWgE,KAAX,EAAkBo9P,SAAlB,EAA6B;IACrC,IAAIA,SAAJ,EAAe;MACXphQ,IAAI,GAAGohQ,SAAS,GAAG,GAAZ,GAAkBphQ,IAAzB;MACA,MAAMyqV,YAAY,GAAGtB,cAAc,CAAC/nF,SAAD,CAAnC;;MACA,IAAIqpF,YAAJ,EAAkB;QACdpvM,EAAE,CAACqvM,cAAH,CAAkBD,YAAlB,EAAgCzqV,IAAhC,EAAsCgE,KAAtC;MACH,CAFD,MAGK;QACDq3I,EAAE,CAAC7yF,YAAH,CAAgBxoD,IAAhB,EAAsBgE,KAAtB;MACH;IACJ,CATD,MAUK;MACDq3I,EAAE,CAAC7yF,YAAH,CAAgBxoD,IAAhB,EAAsBgE,KAAtB;IACH;EACJ;;EACDgiR,eAAe,CAAC3qI,EAAD,EAAKr7I,IAAL,EAAWohQ,SAAX,EAAsB;IACjC,IAAIA,SAAJ,EAAe;MACX,MAAMqpF,YAAY,GAAGtB,cAAc,CAAC/nF,SAAD,CAAnC;;MACA,IAAIqpF,YAAJ,EAAkB;QACdpvM,EAAE,CAACsvM,iBAAH,CAAqBF,YAArB,EAAmCzqV,IAAnC;MACH,CAFD,MAGK;QACDq7I,EAAE,CAAC2qI,eAAH,CAAoB,GAAE5kB,SAAU,IAAGphQ,IAAK,EAAxC;MACH;IACJ,CARD,MASK;MACDq7I,EAAE,CAAC2qI,eAAH,CAAmBhmR,IAAnB;IACH;EACJ;;EACDwkH,QAAQ,CAAC62B,EAAD,EAAKr7I,IAAL,EAAW;IACfq7I,EAAE,CAACpxB,SAAH,CAAa9nC,GAAb,CAAiBniF,IAAjB;EACH;;EACDwlH,WAAW,CAAC61B,EAAD,EAAKr7I,IAAL,EAAW;IAClBq7I,EAAE,CAACpxB,SAAH,CAAax2B,MAAb,CAAoBzzF,IAApB;EACH;;EACDq1I,QAAQ,CAACgG,EAAD,EAAKjzF,KAAL,EAAYpkD,KAAZ,EAAmBmxI,KAAnB,EAA0B;IAC9B,IAAIA,KAAK,IAAIlgB,uEAAA,GAA+BA,wEAAnC,CAAT,EAA4E;MACxEomB,EAAE,CAACjzF,KAAH,CAASsiN,WAAT,CAAqBtiN,KAArB,EAA4BpkD,KAA5B,EAAmCmxI,KAAK,GAAGlgB,wEAAR,GAAwC,WAAxC,GAAsD,EAAzF;IACH,CAFD,MAGK;MACDomB,EAAE,CAACjzF,KAAH,CAASA,KAAT,IAAkBpkD,KAAlB;IACH;EACJ;;EACDsxI,WAAW,CAAC+F,EAAD,EAAKjzF,KAAL,EAAY+sF,KAAZ,EAAmB;IAC1B,IAAIA,KAAK,GAAGlgB,uEAAZ,EAA0C;MACtComB,EAAE,CAACjzF,KAAH,CAASwiS,cAAT,CAAwBxiS,KAAxB;IACH,CAFD,MAGK;MACD;MACA;MACAizF,EAAE,CAACjzF,KAAH,CAASA,KAAT,IAAkB,EAAlB;IACH;EACJ;;EACDsiN,WAAW,CAACrvH,EAAD,EAAKr7I,IAAL,EAAWgE,KAAX,EAAkB;IACzBqlV,aAAa,IAAIwB,oBAAoB,CAAC7qV,IAAD,EAAO,UAAP,CAArC;IACAq7I,EAAE,CAACr7I,IAAD,CAAF,GAAWgE,KAAX;EACH;;EACDm8Q,QAAQ,CAACtxK,IAAD,EAAO7qG,KAAP,EAAc;IAClB6qG,IAAI,CAACm8K,SAAL,GAAiBhnR,KAAjB;EACH;;EACD0+G,MAAM,CAACjqF,MAAD,EAASte,KAAT,EAAgBiF,QAAhB,EAA0B;IAC5BiqU,aAAa,IAAIwB,oBAAoB,CAAC1wU,KAAD,EAAQ,UAAR,CAArC;;IACA,IAAI,OAAOse,MAAP,KAAkB,QAAtB,EAAgC;MAC5B,OAAO,KAAKqxT,YAAL,CAAkB5B,sBAAlB,CAAyCzvT,MAAzC,EAAiDte,KAAjD,EAAwDuvU,sBAAsB,CAACtqU,QAAD,CAA9E,CAAP;IACH;;IACD,OAAO,KAAK0qU,YAAL,CAAkBnvU,gBAAlB,CAAmC8d,MAAnC,EAA2Cte,KAA3C,EAAkDuvU,sBAAsB,CAACtqU,QAAD,CAAxE,CAAP;EACH;;AA9HqB;;AAgI1B,MAAM0rU,WAAW,GAAG,CAAC,MAAM,IAAIxgT,UAAJ,CAAe,CAAf,CAAP,GAApB;;AACA,SAASugT,oBAAT,CAA8B7qV,IAA9B,EAAoC+qV,QAApC,EAA8C;EAC1C,IAAI/qV,IAAI,CAACsqC,UAAL,CAAgB,CAAhB,MAAuBwgT,WAA3B,EAAwC;IACpC,MAAM,IAAI/yT,KAAJ,CAAW,wBAAuBgzT,QAAS,IAAG/qV,IAAK;AACjE;AACA,qEAAqEA,IAAK,gIAF5D,CAAN;EAGH;AACJ;;AACD,SAASkjR,cAAT,CAAwBr0K,IAAxB,EAA8B;EAC1B,OAAOA,IAAI,CAACylD,OAAL,KAAiB,UAAjB,IAA+BzlD,IAAI,CAAC0uE,OAAL,KAAiB76K,SAAvD;AACH;;AACD,MAAM0nV,iCAAN,SAAgDD,mBAAhD,CAAoE;EAChEhqV,WAAW,CAAC2pV,YAAD,EAAeC,gBAAf,EAAiCzxE,SAAjC,EAA4C0xE,KAA5C,EAAmD;IAC1D,MAAMF,YAAN;IACA,KAAKxxE,SAAL,GAAiBA,SAAjB;IACA,MAAMh4K,MAAM,GAAGgc,aAAa,CAAC0tO,KAAK,GAAG,GAAR,GAAc1xE,SAAS,CAAChlP,EAAzB,EAA6BglP,SAAS,CAACh4K,MAAvC,EAA+C,EAA/C,CAA5B;IACAypP,gBAAgB,CAACxB,SAAjB,CAA2BjoP,MAA3B;IACA,KAAK0qP,WAAL,GAAmB1B,oBAAoB,CAACU,KAAK,GAAG,GAAR,GAAc1xE,SAAS,CAAChlP,EAAzB,CAAvC;IACA,KAAK23T,QAAL,GAAgBzB,iBAAiB,CAACQ,KAAK,GAAG,GAAR,GAAc1xE,SAAS,CAAChlP,EAAzB,CAAjC;EACH;;EACD+2T,WAAW,CAAC3iP,OAAD,EAAU;IACjB,MAAMl/C,YAAN,CAAmBk/C,OAAnB,EAA4B,KAAKujP,QAAjC,EAA2C,EAA3C;EACH;;EACDhgV,aAAa,CAAC6kD,MAAD,EAAS9vD,IAAT,EAAe;IACxB,MAAMq7I,EAAE,GAAG,MAAMpwI,aAAN,CAAoB6kD,MAApB,EAA4B9vD,IAA5B,CAAX;IACA,MAAMwoD,YAAN,CAAmB6yF,EAAnB,EAAuB,KAAK2vM,WAA5B,EAAyC,EAAzC;IACA,OAAO3vM,EAAP;EACH;;AAhB+D;;AAkBpE,MAAMivM,iBAAN,SAAgCH,mBAAhC,CAAoD;EAChDhqV,WAAW,CAAC2pV,YAAD,EAAeC,gBAAf,EAAiCmB,MAAjC,EAAyC5yE,SAAzC,EAAoD;IAC3D,MAAMwxE,YAAN;IACA,KAAKC,gBAAL,GAAwBA,gBAAxB;IACA,KAAKmB,MAAL,GAAcA,MAAd;IACA,KAAK5uM,UAAL,GAAkB4uM,MAAM,CAACjvM,YAAP,CAAoB;MAAEkqD,IAAI,EAAE;IAAR,CAApB,CAAlB;IACA,KAAK4jJ,gBAAL,CAAsBhB,OAAtB,CAA8B,KAAKzsM,UAAnC;IACA,MAAMh8C,MAAM,GAAGgc,aAAa,CAACg8J,SAAS,CAAChlP,EAAX,EAAeglP,SAAS,CAACh4K,MAAzB,EAAiC,EAAjC,CAA5B;;IACA,KAAK,IAAI5wF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4wF,MAAM,CAACt7F,MAA3B,EAAmC0K,CAAC,EAApC,EAAwC;MACpC,MAAMo5U,OAAO,GAAGlkV,QAAQ,CAACqG,aAAT,CAAuB,OAAvB,CAAhB;MACA69U,OAAO,CAACjmD,WAAR,GAAsBviM,MAAM,CAAC5wF,CAAD,CAA5B;MACA,KAAK4sI,UAAL,CAAgB7zF,WAAhB,CAA4BqgS,OAA5B;IACH;EACJ;;EACDqC,gBAAgB,CAACt8O,IAAD,EAAO;IACnB,OAAOA,IAAI,KAAK,KAAKq8O,MAAd,GAAuB,KAAK5uM,UAA5B,GAAyCztC,IAAhD;EACH;;EACDnM,OAAO,GAAG;IACN,KAAKqnP,gBAAL,CAAsBd,UAAtB,CAAiC,KAAK3sM,UAAtC;EACH;;EACD7zF,WAAW,CAACqH,MAAD,EAASs0R,QAAT,EAAmB;IAC1B,OAAO,MAAM37R,WAAN,CAAkB,KAAK0iS,gBAAL,CAAsBr7R,MAAtB,CAAlB,EAAiDs0R,QAAjD,CAAP;EACH;;EACD96N,YAAY,CAACx5D,MAAD,EAASs0R,QAAT,EAAmBC,QAAnB,EAA6B;IACrC,OAAO,MAAM/6N,YAAN,CAAmB,KAAK6hO,gBAAL,CAAsBr7R,MAAtB,CAAnB,EAAkDs0R,QAAlD,EAA4DC,QAA5D,CAAP;EACH;;EACD17R,WAAW,CAACmH,MAAD,EAASw0R,QAAT,EAAmB;IAC1B,OAAO,MAAM37R,WAAN,CAAkB,KAAKwiS,gBAAL,CAAsBr7R,MAAtB,CAAlB,EAAiDw0R,QAAjD,CAAP;EACH;;EACD57R,UAAU,CAACmmD,IAAD,EAAO;IACb,OAAO,KAAKs8O,gBAAL,CAAsB,MAAMziS,UAAN,CAAiB,KAAKyiS,gBAAL,CAAsBt8O,IAAtB,CAAjB,CAAtB,CAAP;EACH;;AA/B+C;AAkCpD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMu8O,eAAN,SAA8BhD,kBAA9B,CAAiD;EAC7CjoV,WAAW,CAACuyJ,GAAD,EAAM;IACb,MAAMA,GAAN;EACH,CAH4C,CAI7C;EACA;;;EACAjZ,QAAQ,CAAC7sF,SAAD,EAAY;IAChB,OAAO,IAAP;EACH;;EACDjyC,gBAAgB,CAAC+sF,OAAD,EAAU96C,SAAV,EAAqBoxC,OAArB,EAA8B;IAC1C0J,OAAO,CAAC/sF,gBAAR,CAAyBiyC,SAAzB,EAAoCoxC,OAApC,EAA6C,KAA7C;IACA,OAAO,MAAM,KAAK9iF,mBAAL,CAAyBwsF,OAAzB,EAAkC96C,SAAlC,EAA6CoxC,OAA7C,CAAb;EACH;;EACD9iF,mBAAmB,CAACud,MAAD,EAASm0B,SAAT,EAAoBxtC,QAApB,EAA8B;IAC7C,OAAOqZ,MAAM,CAACvd,mBAAP,CAA2B0xC,SAA3B,EAAsCxtC,QAAtC,CAAP;EACH;;AAf4C;;AAiBjDgsU,eAAe,CAACppV,IAAhB;EAAA,iBAA4GopV,eAA5G,EAxgB6FpnP,sDAwgB7F,CAA6IhmG,qDAA7I;AAAA;;AACAotV,eAAe,CAAChpV,KAAhB,kBAzgB6F4hG,gEAygB7F;EAAA,OAAgHonP,eAAhH;EAAA,SAAgHA,eAAhH;AAAA;;AACA;EAAA,mDA1gB6FpnP,+DA0gB7F,CAA2FonP,eAA3F,EAAwH,CAAC;IAC7G3oV,IAAI,EAAEhF,qDAAUA;EAD6F,CAAD,CAAxH,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAEgF,IAAI,EAAEC,SAAR;MAAmBC,UAAU,EAAE,CAAC;QAC9DF,IAAI,EAAE/E,iDADwD;QAE9DkF,IAAI,EAAE,CAAC5E,qDAAD;MAFwD,CAAD;IAA/B,CAAD,CAAP;EAGlB,CALxB;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAMqtV,aAAa,GAAG,CAAC,KAAD,EAAQ,SAAR,EAAmB,MAAnB,EAA2B,OAA3B,CAAtB,EACA;AACA;;AACA,MAAMC,OAAO,GAAG;EACZ,MAAM,WADM;EAEZ,MAAM,KAFM;EAGZ,QAAQ,QAHI;EAIZ,QAAQ,QAJI;EAKZ,OAAO,QALK;EAMZ,OAAO,QANK;EAOZ,QAAQ,WAPI;EAQZ,SAAS,YARG;EASZ,MAAM,SATM;EAUZ,QAAQ,WAVI;EAWZ,QAAQ,aAXI;EAYZ,UAAU,YAZE;EAaZ,OAAO;AAbK,CAAhB;AAeA;AACA;AACA;;AACA,MAAMC,oBAAoB,GAAG;EACzB,OAAQpxU,KAAD,IAAWA,KAAK,CAACqxU,MADC;EAEzB,WAAYrxU,KAAD,IAAWA,KAAK,CAACsxU,OAFH;EAGzB,QAAStxU,KAAD,IAAWA,KAAK,CAACuxU,OAHA;EAIzB,SAAUvxU,KAAD,IAAWA,KAAK,CAACwxU;AAJD,CAA7B;AAMA;AACA;AACA;AACA;;AACA,MAAMC,eAAN,SAA8BxD,kBAA9B,CAAiD;EAC7C;AACJ;AACA;AACA;EACIjoV,WAAW,CAACuyJ,GAAD,EAAM;IACb,MAAMA,GAAN;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACIjZ,QAAQ,CAAC7sF,SAAD,EAAY;IAChB,OAAOg/R,eAAe,CAACC,cAAhB,CAA+Bj/R,SAA/B,KAA6C,IAApD;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIjyC,gBAAgB,CAAC+sF,OAAD,EAAU96C,SAAV,EAAqBoxC,OAArB,EAA8B;IAC1C,MAAM8tP,WAAW,GAAGF,eAAe,CAACC,cAAhB,CAA+Bj/R,SAA/B,CAApB;IACA,MAAMm/R,cAAc,GAAGH,eAAe,CAACI,aAAhB,CAA8BF,WAAW,CAAC,SAAD,CAAzC,EAAsD9tP,OAAtD,EAA+D,KAAK8pP,OAAL,CAAaK,OAAb,EAA/D,CAAvB;IACA,OAAO,KAAKL,OAAL,CAAaK,OAAb,GAAuB9iM,iBAAvB,CAAyC,MAAM;MAClD,OAAO0E,2DAAO,GAAGg8L,WAAV,CAAsBr+O,OAAtB,EAA+BokP,WAAW,CAAC,cAAD,CAA1C,EAA4DC,cAA5D,CAAP;IACH,CAFM,CAAP;EAGH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACyB,OAAdF,cAAc,CAACj/R,SAAD,EAAY;IAC7B,MAAM7B,KAAK,GAAG6B,SAAS,CAAClhD,WAAV,GAAwBlL,KAAxB,CAA8B,GAA9B,CAAd;IACA,MAAMyrV,YAAY,GAAGlhS,KAAK,CAACE,KAAN,EAArB;;IACA,IAAKF,KAAK,CAAC/lD,MAAN,KAAiB,CAAlB,IAAwB,EAAEinV,YAAY,KAAK,SAAjB,IAA8BA,YAAY,KAAK,OAAjD,CAA5B,EAAuF;MACnF,OAAO,IAAP;IACH;;IACD,MAAM/hV,GAAG,GAAG0hV,eAAe,CAACM,aAAhB,CAA8BnhS,KAAK,CAACtqD,GAAN,EAA9B,CAAZ;;IACA,IAAI0rV,OAAO,GAAG,EAAd;IACA,IAAIC,MAAM,GAAGrhS,KAAK,CAAC1jD,OAAN,CAAc,MAAd,CAAb;;IACA,IAAI+kV,MAAM,GAAG,CAAC,CAAd,EAAiB;MACbrhS,KAAK,CAACx+B,MAAN,CAAa6/T,MAAb,EAAqB,CAArB;MACAD,OAAO,GAAG,OAAV;IACH;;IACDd,aAAa,CAACphV,OAAd,CAAsBoiV,YAAY,IAAI;MAClC,MAAMriU,KAAK,GAAG+gC,KAAK,CAAC1jD,OAAN,CAAcglV,YAAd,CAAd;;MACA,IAAIriU,KAAK,GAAG,CAAC,CAAb,EAAgB;QACZ+gC,KAAK,CAACx+B,MAAN,CAAavC,KAAb,EAAoB,CAApB;QACAmiU,OAAO,IAAIE,YAAY,GAAG,GAA1B;MACH;IACJ,CAND;IAOAF,OAAO,IAAIjiV,GAAX;;IACA,IAAI6gD,KAAK,CAAC/lD,MAAN,IAAgB,CAAhB,IAAqBkF,GAAG,CAAClF,MAAJ,KAAe,CAAxC,EAA2C;MACvC;MACA,OAAO,IAAP;IACH,CAxB4B,CAyB7B;IACA;IACA;;;IACA,MAAM4D,MAAM,GAAG,EAAf;IACAA,MAAM,CAAC,cAAD,CAAN,GAAyBqjV,YAAzB;IACArjV,MAAM,CAAC,SAAD,CAAN,GAAoBujV,OAApB;IACA,OAAOvjV,MAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACgC,OAArB0jV,qBAAqB,CAACnyU,KAAD,EAAQoyU,WAAR,EAAqB;IAC7C,IAAIC,OAAO,GAAGlB,OAAO,CAACnxU,KAAK,CAACjQ,GAAP,CAAP,IAAsBiQ,KAAK,CAACjQ,GAA1C;IACA,IAAIA,GAAG,GAAG,EAAV;;IACA,IAAIqiV,WAAW,CAACllV,OAAZ,CAAoB,OAApB,IAA+B,CAAC,CAApC,EAAuC;MACnCmlV,OAAO,GAAGryU,KAAK,CAACqB,IAAhB;MACAtR,GAAG,GAAG,OAAN;IACH,CAN4C,CAO7C;;;IACA,IAAIsiV,OAAO,IAAI,IAAX,IAAmB,CAACA,OAAxB,EACI,OAAO,KAAP;IACJA,OAAO,GAAGA,OAAO,CAAC9gV,WAAR,EAAV;;IACA,IAAI8gV,OAAO,KAAK,GAAhB,EAAqB;MACjBA,OAAO,GAAG,OAAV,CADiB,CACE;IACtB,CAFD,MAGK,IAAIA,OAAO,KAAK,GAAhB,EAAqB;MACtBA,OAAO,GAAG,KAAV,CADsB,CACL;IACpB;;IACDnB,aAAa,CAACphV,OAAd,CAAsBoiV,YAAY,IAAI;MAClC,IAAIA,YAAY,KAAKG,OAArB,EAA8B;QAC1B,MAAMC,cAAc,GAAGlB,oBAAoB,CAACc,YAAD,CAA3C;;QACA,IAAII,cAAc,CAACtyU,KAAD,CAAlB,EAA2B;UACvBjQ,GAAG,IAAImiV,YAAY,GAAG,GAAtB;QACH;MACJ;IACJ,CAPD;IAQAniV,GAAG,IAAIsiV,OAAP;IACA,OAAOtiV,GAAG,KAAKqiV,WAAf;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACwB,OAAbP,aAAa,CAACG,OAAD,EAAUnuP,OAAV,EAAmBsmC,IAAnB,EAAyB;IACzC,OAAQnqH,KAAD,IAAW;MACd,IAAIyxU,eAAe,CAACU,qBAAhB,CAAsCnyU,KAAtC,EAA6CgyU,OAA7C,CAAJ,EAA2D;QACvD7nN,IAAI,CAACqkM,UAAL,CAAgB,MAAM3qO,OAAO,CAAC7jF,KAAD,CAA7B;MACH;IACJ,CAJD;EAKH;EACD;;;EACoB,OAAb+xU,aAAa,CAACQ,OAAD,EAAU;IAC1B;IACA,QAAQA,OAAR;MACI,KAAK,KAAL;QACI,OAAO,QAAP;;MACJ;QACI,OAAOA,OAAP;IAJR;EAMH;;AAtI4C;;AAwIjDd,eAAe,CAAC5pV,IAAhB;EAAA,iBAA4G4pV,eAA5G,EAlsB6F5nP,sDAksB7F,CAA6IhmG,qDAA7I;AAAA;;AACA4tV,eAAe,CAACxpV,KAAhB,kBAnsB6F4hG,gEAmsB7F;EAAA,OAAgH4nP,eAAhH;EAAA,SAAgHA,eAAhH;AAAA;;AACA;EAAA,mDApsB6F5nP,+DAosB7F,CAA2F4nP,eAA3F,EAAwH,CAAC;IAC7GnpV,IAAI,EAAEhF,qDAAUA;EAD6F,CAAD,CAAxH,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAEgF,IAAI,EAAEC,SAAR;MAAmBC,UAAU,EAAE,CAAC;QAC9DF,IAAI,EAAE/E,iDADwD;QAE9DkF,IAAI,EAAE,CAAC5E,qDAAD;MAFwD,CAAD;IAA/B,CAAD,CAAP;EAGlB,CALxB;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM4xG,WAAW,GAAG,OAAO/sG,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAA1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAAS8pV,oBAAT,CAA8B/uE,aAA9B,EAA6C5vQ,OAA7C,EAAsD;EAClD,OAAO6xU,4EAA0B,CAAC;IAAEjiE,aAAF;IAAiB,GAAGgvE,qBAAqB,CAAC5+U,OAAD;EAAzC,CAAD,CAAjC;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS6+U,iBAAT,CAA2B7+U,OAA3B,EAAoC;EAChC,OAAO6xU,4EAA0B,CAAC+M,qBAAqB,CAAC5+U,OAAD,CAAtB,CAAjC;AACH;;AACD,SAAS4+U,qBAAT,CAA+B5+U,OAA/B,EAAwC;EACpC,OAAO;IACHigU,YAAY,EAAE,CACV,GAAG6e,wBADO,EAEV,IAAI9+U,OAAO,EAAEd,SAAT,IAAsB,EAA1B,CAFU,CADX;IAKHghU,iBAAiB,EAAE6e;EALhB,CAAP;AAOH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,+BAAT,GAA2C;EACvC;EACA;EACA,OAAO,CAAC,GAAGC,qBAAJ,CAAP;AACH;;AACD,SAASC,cAAT,GAA0B;EACtBrH,iBAAiB,CAACC,WAAlB;AACH;;AACD,SAASv4C,YAAT,GAAwB;EACpB,OAAO,IAAIxa,uDAAJ,EAAP;AACH;;AACD,SAAS7qR,SAAT,GAAqB;EACjB;EACA24U,8DAAY,CAACj8U,QAAD,CAAZ;EACA,OAAOA,QAAP;AACH;;AACD,MAAMmoV,mCAAmC,GAAG,CACxC;EAAE5/U,OAAO,EAAEwoH,sDAAX;EAAwBvoH,QAAQ,EAAEu8I,oEAAoBA;AAAtD,CADwC,EAExC;EAAEx8I,OAAO,EAAEu3T,+DAAX;EAAiCt3T,QAAQ,EAAE8/U,cAA3C;EAA2D3jP,KAAK,EAAE;AAAlE,CAFwC,EAGxC;EAAEp8F,OAAO,EAAEnP,qDAAX;EAAqBw4H,UAAU,EAAEtuH,SAAjC;EAA4CojI,IAAI,EAAE;AAAlD,CAHwC,CAA5C;AAKA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM6hN,eAAe,GAAGpe,oEAAqB,CAACoM,uDAAD,EAAe,SAAf,EAA0B4R,mCAA1B,CAA7C;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMK,+BAA+B,GAAG,IAAI5vV,yDAAJ,CAAmBoyG,WAAW,GAAG,gCAAH,GAAsC,EAApE,CAAxC;AACA,MAAMq9O,qBAAqB,GAAG,CAC1B;EACI9/U,OAAO,EAAEywU,iEADb;EAEIjqL,QAAQ,EAAEwzL,qBAFd;EAGI77M,IAAI,EAAE;AAHV,CAD0B,EAM1B;EACIn+H,OAAO,EAAEwwU,0DADb;EAEIhqL,QAAQ,EAAEw2K,sDAFd;EAGI7+L,IAAI,EAAE,CAAC1V,iDAAD,EAASq2M,8DAAT,EAA8B2R,iEAA9B;AAHV,CAN0B,EAW1B;EACIzwU,OAAO,EAAEg9T,sDADb;EAEIx2K,QAAQ,EAAEw2K,sDAFd;EAGI7+L,IAAI,EAAE,CAAC1V,iDAAD,EAASq2M,8DAAT,EAA8B2R,iEAA9B;AAHV,CAX0B,CAA9B;AAiBA,MAAMkP,wBAAwB,GAAG,CAC7B;EAAE3/U,OAAO,EAAEsvU,6DAAX;EAA4BrvU,QAAQ,EAAE;AAAtC,CAD6B,EAE7B;EAAED,OAAO,EAAE4lR,uDAAX;EAAyBv8J,UAAU,EAAE+2K,YAArC;EAAmDjiK,IAAI,EAAE;AAAzD,CAF6B,EAEkC;EAC3Dn+H,OAAO,EAAEu6U,qBADkD;EAE3D/zL,QAAQ,EAAEy3L,eAFiD;EAG3D7hP,KAAK,EAAE,IAHoD;EAI3D+hC,IAAI,EAAE,CAACttI,qDAAD,EAAW43H,iDAAX,EAAmBD,sDAAnB;AAJqD,CAFlC,EAQ7B;EAAExoH,OAAO,EAAEu6U,qBAAX;EAAkC/zL,QAAQ,EAAEi4L,eAA5C;EAA6DriP,KAAK,EAAE,IAApE;EAA0E+hC,IAAI,EAAE,CAACttI,qDAAD;AAAhF,CAR6B,EAQiE;EAC1FmP,OAAO,EAAE08U,mBADiF;EAE1Fl2L,QAAQ,EAAEk2L,mBAFgF;EAG1Fv+M,IAAI,EAAE,CAACq8M,YAAD,EAAegB,mBAAf,EAAoCrkB,iDAApC;AAHoF,CARjE,EAa7B;EAAEn3T,OAAO,EAAEmlR,2DAAX;EAA6Bz+H,WAAW,EAAEg2L;AAA1C,CAb6B,EAc7B;EAAE18U,OAAO,EAAEk7U,gBAAX;EAA6Bx0L,WAAW,EAAE80L;AAA1C,CAd6B,EAe7B;EAAEx7U,OAAO,EAAEw7U,mBAAX;EAAgCh1L,QAAQ,EAAEg1L,mBAA1C;EAA+Dr9M,IAAI,EAAE,CAACttI,qDAAD;AAArE,CAf6B,EAgB7B;EAAEmP,OAAO,EAAEw6U,YAAX;EAAyBh0L,QAAQ,EAAEg0L,YAAnC;EAAiDr8M,IAAI,EAAE,CAACo8M,qBAAD,EAAwB9xN,iDAAxB;AAAvD,CAhB6B,EAiB7B;EAAEzoH,OAAO,EAAEuvI,uDAAX;EAAuBiX,QAAQ,EAAE8zL,UAAjC;EAA6Cn8M,IAAI,EAAE;AAAnD,CAjB6B,EAkB7B17B,WAAW,GAAG;EAAEziG,OAAO,EAAEigV,+BAAX;EAA4ChgV,QAAQ,EAAE;AAAtD,CAAH,GAAkE,EAlBhD,CAAjC;AAoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMs1U,aAAN,CAAoB;EAChBviV,WAAW,CAACktV,uBAAD,EAA0B;IACjC,IAAIz9O,WAAW,IAAIy9O,uBAAnB,EAA4C;MACxC,MAAM,IAAIt1T,KAAJ,CAAW,oFAAD,GACX,mFADC,CAAN;IAEH;EACJ;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EAC+B,OAApBu1T,oBAAoB,CAACjvS,MAAD,EAAS;IAChC,OAAO;MACHpxC,QAAQ,EAAEy1U,aADP;MAEHx1U,SAAS,EAAE,CACP;QAAEC,OAAO,EAAEm3T,iDAAX;QAAmBl3T,QAAQ,EAAEixC,MAAM,CAAC2rS;MAApC,CADO,EAEP;QAAE78U,OAAO,EAAE25U,aAAX;QAA0BjzL,WAAW,EAAEywK,iDAAMA;MAA7C,CAFO,EAGP4iB,2BAHO;IAFR,CAAP;EAQH;;AAxBe;;AA0BpBxE,aAAa,CAAC1gV,IAAd;EAAA,iBAA0G0gV,aAA1G,EAl6B6F1+O,sDAk6B7F,CAAyIopP,+BAAzI;AAAA;;AACA1K,aAAa,CAACp1U,IAAd,kBAn6B6F02F,8DAm6B7F;EAAA,MAA2G0+O,aAA3G;EAAA,UAAoIzkV,yDAApI,EAAkJm9U,4DAAlJ;AAAA;AACAsH,aAAa,CAACl1U,IAAd,kBAp6B6Fw2F,8DAo6B7F;EAAA,WAAqI,CAC7H,GAAG8oP,wBAD0H,EAE7H,GAAGG,qBAF0H,CAArI;EAAA,UAGiBhvV,yDAHjB,EAG+Bm9U,4DAH/B;AAAA;;AAIA;EAAA,mDAx6B6Fp3O,+DAw6B7F,CAA2F0+O,aAA3F,EAAsH,CAAC;IAC3GjgV,IAAI,EAAE3E,mDADqG;IAE3G8E,IAAI,EAAE,CAAC;MACCsK,SAAS,EAAE,CACP,GAAG4/U,wBADI,EAEP,GAAGG,qBAFI,CADZ;MAKCtzM,OAAO,EAAE,CAAC17I,yDAAD,EAAem9U,4DAAf;IALV,CAAD;EAFqG,CAAD,CAAtH,EAS4B,YAAY;IAAE,OAAO,CAAC;MAAE34U,IAAI,EAAEC,SAAR;MAAmBC,UAAU,EAAE,CAAC;QAC9DF,IAAI,EAAE9E,mDAAQA;MADgD,CAAD,EAE9D;QACC8E,IAAI,EAAEkjQ,mDAAQA;MADf,CAF8D,EAI9D;QACCljQ,IAAI,EAAE/E,iDADP;QAECkF,IAAI,EAAE,CAACwqV,+BAAD;MAFP,CAJ8D;IAA/B,CAAD,CAAP;EAOlB,CAhBxB;AAAA;AAkBA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,SAASG,UAAT,GAAsB;EAClB,OAAO,IAAIC,IAAJ,CAASrrV,0DAAQ,CAACnE,qDAAD,CAAjB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMwvV,IAAN,CAAW;EACPrtV,WAAW,CAACw2H,IAAD,EAAO;IACd,KAAKA,IAAL,GAAYA,IAAZ;IACA,KAAK82N,IAAL,GAAY1jM,2DAAO,EAAnB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI2jM,MAAM,CAAC92L,GAAD,EAAM+2L,aAAa,GAAG,KAAtB,EAA6B;IAC/B,IAAI,CAAC/2L,GAAL,EACI,OAAO,IAAP;IACJ,OAAO,KAAKg3L,mBAAL,CAAyBh3L,GAAzB,EAA8B+2L,aAA9B,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIE,OAAO,CAACrgL,IAAD,EAAOmgL,aAAa,GAAG,KAAvB,EAA8B;IACjC,IAAI,CAACngL,IAAL,EACI,OAAO,EAAP;IACJ,OAAOA,IAAI,CAAC9vG,MAAL,CAAY,CAAC90D,MAAD,EAASguJ,GAAT,KAAiB;MAChC,IAAIA,GAAJ,EAAS;QACLhuJ,MAAM,CAACyB,IAAP,CAAY,KAAKujV,mBAAL,CAAyBh3L,GAAzB,EAA8B+2L,aAA9B,CAAZ;MACH;;MACD,OAAO/kV,MAAP;IACH,CALM,EAKJ,EALI,CAAP;EAMH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIklV,MAAM,CAACC,YAAD,EAAe;IACjB,IAAI,CAACA,YAAL,EACI,OAAO,IAAP;IACJ,OAAO,KAAKp3N,IAAL,CAAU5sB,aAAV,CAAyB,QAAOgkP,YAAa,GAA7C,KAAoD,IAA3D;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIC,OAAO,CAACD,YAAD,EAAe;IAClB,IAAI,CAACA,YAAL,EACI,OAAO,EAAP;;IACJ,MAAM9hM;IAAK;IAAD,EAAgB,KAAKt1B,IAAL,CAAU9sB,gBAAV,CAA4B,QAAOkkP,YAAa,GAAhD,CAA1B;;IACA,OAAO9hM,IAAI,GAAG,GAAGnjE,KAAH,CAASx6E,IAAT,CAAc29I,IAAd,CAAH,GAAyB,EAApC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIgiM,SAAS,CAACr3L,GAAD,EAAMhqJ,QAAN,EAAgB;IACrB,IAAI,CAACgqJ,GAAL,EACI,OAAO,IAAP;IACJhqJ,QAAQ,GAAGA,QAAQ,IAAI,KAAKshV,cAAL,CAAoBt3L,GAApB,CAAvB;IACA,MAAMpoG,IAAI,GAAG,KAAKs/R,MAAL,CAAYlhV,QAAZ,CAAb;;IACA,IAAI4hD,IAAJ,EAAU;MACN,OAAO,KAAK2/R,yBAAL,CAA+Bv3L,GAA/B,EAAoCpoG,IAApC,CAAP;IACH;;IACD,OAAO,KAAKo/R,mBAAL,CAAyBh3L,GAAzB,EAA8B,IAA9B,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACIw3L,SAAS,CAACL,YAAD,EAAe;IACpB,KAAKM,gBAAL,CAAsB,KAAKP,MAAL,CAAYC,YAAZ,CAAtB;EACH;EACD;AACJ;AACA;AACA;;;EACIM,gBAAgB,CAAC7/R,IAAD,EAAO;IACnB,IAAIA,IAAJ,EAAU;MACN,KAAKi/R,IAAL,CAAUh6P,MAAV,CAAiBjlC,IAAjB;IACH;EACJ;;EACDo/R,mBAAmB,CAACp/R,IAAD,EAAOm/R,aAAa,GAAG,KAAvB,EAA8B;IAC7C,IAAI,CAACA,aAAL,EAAoB;MAChB,MAAM/gV,QAAQ,GAAG,KAAKshV,cAAL,CAAoB1/R,IAApB,CAAjB,CADgB,CAEhB;MACA;MACA;;;MACA,MAAMs7C,IAAI,GAAG,KAAKkkP,OAAL,CAAaphV,QAAb,EAAuBrN,MAAvB,CAA8BuqG,IAAI,IAAI,KAAKwkP,mBAAL,CAAyB9/R,IAAzB,EAA+Bs7C,IAA/B,CAAtC,EAA4E,CAA5E,CAAb;MACA,IAAIA,IAAI,KAAKpnG,SAAb,EACI,OAAOonG,IAAP;IACP;;IACD,MAAMpC,OAAO,GAAG,KAAK+lP,IAAL,CAAUxiV,aAAV,CAAwB,MAAxB,CAAhB;;IACA,KAAKkjV,yBAAL,CAA+B3/R,IAA/B,EAAqCk5C,OAArC;;IACA,MAAMs6C,IAAI,GAAG,KAAKrrB,IAAL,CAAU9xH,oBAAV,CAA+B,MAA/B,EAAuC,CAAvC,CAAb;;IACAm9I,IAAI,CAACv5F,WAAL,CAAiBi/C,OAAjB;IACA,OAAOA,OAAP;EACH;;EACDymP,yBAAyB,CAACv3L,GAAD,EAAMvb,EAAN,EAAU;IAC/B31I,MAAM,CAAC+D,IAAP,CAAYmtJ,GAAZ,EAAiB3sJ,OAAjB,CAA0Bm7F,IAAD,IAAUi2C,EAAE,CAAC7yF,YAAH,CAAgB,KAAK+lS,cAAL,CAAoBnpP,IAApB,CAAhB,EAA2CwxD,GAAG,CAACxxD,IAAD,CAA9C,CAAnC;IACA,OAAOi2C,EAAP;EACH;;EACD6yM,cAAc,CAACt3L,GAAD,EAAM;IAChB,MAAMzN,IAAI,GAAGyN,GAAG,CAAC52J,IAAJ,GAAW,MAAX,GAAoB,UAAjC;IACA,OAAQ,GAAEmpJ,IAAK,KAAIyN,GAAG,CAACzN,IAAD,CAAO,GAA7B;EACH;;EACDmlM,mBAAmB,CAAC13L,GAAD,EAAM9sD,IAAN,EAAY;IAC3B,OAAOpkG,MAAM,CAAC+D,IAAP,CAAYmtJ,GAAZ,EAAiB7zE,KAAjB,CAAwB74E,GAAD,IAAS4/F,IAAI,CAAC68O,YAAL,CAAkB,KAAK4H,cAAL,CAAoBrkV,GAApB,CAAlB,MAAgD0sJ,GAAG,CAAC1sJ,GAAD,CAAnF,CAAP;EACH;;EACDqkV,cAAc,CAACnpP,IAAD,EAAO;IACjB,OAAOopP,aAAa,CAACppP,IAAD,CAAb,IAAuBA,IAA9B;EACH;;AA9HM;;AAgIXooP,IAAI,CAACxrV,IAAL;EAAA,iBAAiGwrV,IAAjG,EA7lC6FxpP,sDA6lC7F,CAAuHhmG,qDAAvH;AAAA;;AACAwvV,IAAI,CAACprV,KAAL,kBA9lC6F4hG,gEA8lC7F;EAAA,OAAqGwpP,IAArG;EAAA;IAAA;;IAAA;MAAA;IAAA;MAAA,IAA2ID,UAA3I;IAAA;;IAAA;EAAA;EAAA,YAAuH;AAAvH;;AACA;EAAA,mDA/lC6FvpP,+DA+lC7F,CAA2FwpP,IAA3F,EAA6G,CAAC;IAClG/qV,IAAI,EAAEhF,qDAD4F;IAElGmF,IAAI,EAAE,CAAC;MAAE2zH,UAAU,EAAE,MAAd;MAAsBC,UAAU,EAAE+2N,UAAlC;MAA8CjiN,IAAI,EAAE;IAApD,CAAD;EAF4F,CAAD,CAA7G,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAE7oI,IAAI,EAAEC,SAAR;MAAmBC,UAAU,EAAE,CAAC;QAC9DF,IAAI,EAAE/E,iDADwD;QAE9DkF,IAAI,EAAE,CAAC5E,qDAAD;MAFwD,CAAD;IAA/B,CAAD,CAAP;EAGlB,CANxB;AAAA;AAOA;AACA;AACA;;;AACA,MAAMwwV,aAAa,GAAG;EAClBC,SAAS,EAAE;AADO,CAAtB;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA,SAASC,WAAT,GAAuB;EACnB,OAAO,IAAIC,KAAJ,CAAUxsV,0DAAQ,CAACnE,qDAAD,CAAlB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM2wV,KAAN,CAAY;EACRxuV,WAAW,CAACw2H,IAAD,EAAO;IACd,KAAKA,IAAL,GAAYA,IAAZ;EACH;EACD;AACJ;AACA;;;EACIi4N,QAAQ,GAAG;IACP,OAAO,KAAKj4N,IAAL,CAAUp8E,KAAjB;EACH;EACD;AACJ;AACA;AACA;;;EACIs0S,QAAQ,CAACC,QAAD,EAAW;IACf,KAAKn4N,IAAL,CAAUp8E,KAAV,GAAkBu0S,QAAQ,IAAI,EAA9B;EACH;;AAhBO;;AAkBZH,KAAK,CAAC3sV,IAAN;EAAA,iBAAkG2sV,KAAlG,EAtpC6F3qP,sDAspC7F,CAAyHhmG,qDAAzH;AAAA;;AACA2wV,KAAK,CAACvsV,KAAN,kBAvpC6F4hG,gEAupC7F;EAAA,OAAsG2qP,KAAtG;EAAA;IAAA;;IAAA;MAAA;IAAA;MAAA,IAA6ID,WAA7I;IAAA;;IAAA;EAAA;EAAA,YAAyH;AAAzH;;AACA;EAAA,mDAxpC6F1qP,+DAwpC7F,CAA2F2qP,KAA3F,EAA8G,CAAC;IACnGlsV,IAAI,EAAEhF,qDAD6F;IAEnGmF,IAAI,EAAE,CAAC;MAAE2zH,UAAU,EAAE,MAAd;MAAsBC,UAAU,EAAEk4N,WAAlC;MAA+CpjN,IAAI,EAAE;IAArD,CAAD;EAF6F,CAAD,CAA9G,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAE7oI,IAAI,EAAEC,SAAR;MAAmBC,UAAU,EAAE,CAAC;QAC9DF,IAAI,EAAE/E,iDADwD;QAE9DkF,IAAI,EAAE,CAAC5E,qDAAD;MAFwD,CAAD;IAA/B,CAAD,CAAP;EAGlB,CANxB;AAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMk1R,iBAAiB,GAAG,UAA1B;AACA,MAAM7kL,gBAAgB,GAAG,WAAzB;;AACA,SAASb,mBAAT,CAA6BjqE,KAA7B,EAAoC;EAChC,OAAOA,KAAK,CAAC4E,OAAN,CAAc+qP,iBAAd,EAAiC,CAAC,GAAGnhR,CAAJ,KAAU,MAAMA,CAAC,CAAC,CAAD,CAAD,CAAKrG,WAAL,EAAjD,CAAP;AACH;;AACD,SAASiiG,mBAAT,CAA6BpqE,KAA7B,EAAoC;EAChC,OAAOA,KAAK,CAAC4E,OAAN,CAAckmE,gBAAd,EAAgC,CAAC,GAAGt8F,CAAJ,KAAUA,CAAC,CAAC,CAAD,CAAD,CAAKkgE,WAAL,EAA1C,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS88Q,WAAT,CAAqB/uV,IAArB,EAA2BgE,KAA3B,EAAkC;EAC9B,IAAI,OAAOwiU,QAAP,KAAoB,WAApB,IAAmC,CAACA,QAAxC,EAAkD;IAC9C;IACA;IACA;IACA;IACA,MAAMtoF,EAAE,GAAGyhG,wDAAA,GAAgBA,wDAAA,IAAiB,EAA5C;IACAzhG,EAAE,CAACl+O,IAAD,CAAF,GAAWgE,KAAX;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM44I,GAAG,GAAG,OAAO13I,MAAP,KAAkB,WAAlB,IAAiCA,MAAjC,IAA2C,EAAvD;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM8pV,yBAAN,CAAgC;EAC5B7uV,WAAW,CAAC8uV,SAAD,EAAYC,QAAZ,EAAsB;IAC7B,KAAKD,SAAL,GAAiBA,SAAjB;IACA,KAAKC,QAAL,GAAgBA,QAAhB;EACH;;AAJ2B;AAMhC;AACA;AACA;AACA;;;AACA,MAAMC,eAAN,CAAsB;EAClBhvV,WAAW,CAACo2I,GAAD,EAAM;IACb,KAAKs4J,MAAL,GAAct4J,GAAG,CAAC1H,QAAJ,CAAatjI,GAAb,CAAiBujU,yDAAjB,CAAd;EACH,CAHiB,CAIlB;;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIsgB,mBAAmB,CAAC96U,MAAD,EAAS;IACxB,MAAMk5H,MAAM,GAAGl5H,MAAM,IAAIA,MAAM,CAAC,QAAD,CAA/B;IACA,MAAM+6U,WAAW,GAAG,kBAApB,CAFwB,CAGxB;;IACA,MAAMC,mBAAmB,GAAG1yM,GAAG,CAAC3sC,OAAJ,CAAYs/O,OAAZ,IAAuB,IAAnD;;IACA,IAAI/hN,MAAM,IAAI8hN,mBAAd,EAAmC;MAC/B1yM,GAAG,CAAC3sC,OAAJ,CAAYs/O,OAAZ,CAAoBF,WAApB;IACH;;IACD,MAAMnxO,KAAK,GAAGsxO,cAAc,EAA5B;IACA,IAAIN,QAAQ,GAAG,CAAf;;IACA,OAAOA,QAAQ,GAAG,CAAX,IAAiBM,cAAc,KAAKtxO,KAApB,GAA6B,GAApD,EAAyD;MACrD,KAAK2wL,MAAL,CAAYgiC,IAAZ;MACAqe,QAAQ;IACX;;IACD,MAAMn3N,GAAG,GAAGy3N,cAAc,EAA1B;;IACA,IAAIhiN,MAAM,IAAI8hN,mBAAd,EAAmC;MAC/B1yM,GAAG,CAAC3sC,OAAJ,CAAYw/O,UAAZ,CAAuBJ,WAAvB;IACH;;IACD,MAAMJ,SAAS,GAAG,CAACl3N,GAAG,GAAG7Z,KAAP,IAAgBgxO,QAAlC;IACAtyM,GAAG,CAAC3sC,OAAJ,CAAY/0B,GAAZ,CAAiB,OAAMg0Q,QAAS,0BAAhC;IACAtyM,GAAG,CAAC3sC,OAAJ,CAAY/0B,GAAZ,CAAiB,GAAE+zQ,SAAS,CAACS,OAAV,CAAkB,CAAlB,CAAqB,eAAxC;IACA,OAAO,IAAIV,yBAAJ,CAA8BC,SAA9B,EAAyCC,QAAzC,CAAP;EACH;;AA3CiB;;AA6CtB,SAASM,cAAT,GAA0B;EACtB,OAAO5yM,GAAG,CAACj1F,WAAJ,IAAmBi1F,GAAG,CAACj1F,WAAJ,CAAgBxV,GAAnC,GAAyCyqG,GAAG,CAACj1F,WAAJ,CAAgBxV,GAAhB,EAAzC,GACH,IAAI1f,IAAJ,GAAWE,OAAX,EADJ;AAEH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMg9T,oBAAoB,GAAG,UAA7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,gBAAT,CAA0Br5M,GAA1B,EAA+B;EAC3Bw4M,WAAW,CAACY,oBAAD,EAAuB,IAAIR,eAAJ,CAAoB54M,GAApB,CAAvB,CAAX;EACA,OAAOA,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASs5M,iBAAT,GAA6B;EACzBd,WAAW,CAACY,oBAAD,EAAuB,IAAvB,CAAX;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,UAAT,CAAoB5vN,IAApB,EAA0B;EACtB,MAAM6vN,WAAW,GAAG;IAChB,KAAK,KADW;IAEhB,KAAK,KAFW;IAGhB,MAAM,KAHU;IAIhB,KAAK,KAJW;IAKhB,KAAK;EALW,CAApB;EAOA,OAAO7vN,IAAI,CAAC/3F,OAAL,CAAa,UAAb,EAAyB14B,CAAC,IAAIsgV,WAAW,CAACtgV,CAAD,CAAzC,CAAP;AACH;;AACD,SAASugV,YAAT,CAAsB9vN,IAAtB,EAA4B;EACxB,MAAM+vN,aAAa,GAAG;IAClB,OAAO,GADW;IAElB,OAAO,GAFW;IAGlB,OAAO,IAHW;IAIlB,OAAO,GAJW;IAKlB,OAAO;EALW,CAAtB;EAOA,OAAO/vN,IAAI,CAAC/3F,OAAL,CAAa,UAAb,EAAyB14B,CAAC,IAAIwgV,aAAa,CAACxgV,CAAD,CAA3C,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASygV,YAAT,CAAsBhmV,GAAtB,EAA2B;EACvB,OAAOA,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMimV,aAAN,CAAoB;EAChBhwV,WAAW,GAAG;IACV,KAAKugQ,KAAL,GAAa,EAAb;IACA,KAAK0vF,oBAAL,GAA4B,EAA5B;EACH;EACD;AACJ;AACA;;;EACI7kV,GAAG,CAACrB,GAAD,EAAMsvF,YAAN,EAAoB;IACnB,OAAO,KAAKknK,KAAL,CAAWx2P,GAAX,MAAoBxH,SAApB,GAAgC,KAAKg+P,KAAL,CAAWx2P,GAAX,CAAhC,GAAkDsvF,YAAzD;EACH;EACD;AACJ;AACA;;;EACI1wF,GAAG,CAACoB,GAAD,EAAMlG,KAAN,EAAa;IACZ,KAAK08P,KAAL,CAAWx2P,GAAX,IAAkBlG,KAAlB;EACH;EACD;AACJ;AACA;;;EACIyvF,MAAM,CAACvpF,GAAD,EAAM;IACR,OAAO,KAAKw2P,KAAL,CAAWx2P,GAAX,CAAP;EACH;EACD;AACJ;AACA;;;EACImmV,MAAM,CAACnmV,GAAD,EAAM;IACR,OAAO,KAAKw2P,KAAL,CAAWrxP,cAAX,CAA0BnF,GAA1B,CAAP;EACH;EACD;AACJ;AACA;;;EACe,IAAPsqB,OAAO,GAAG;IACV,OAAO9uB,MAAM,CAAC+D,IAAP,CAAY,KAAKi3P,KAAjB,EAAwB17P,MAAxB,KAAmC,CAA1C;EACH;EACD;AACJ;AACA;;;EACIsrV,WAAW,CAACpmV,GAAD,EAAMkV,QAAN,EAAgB;IACvB,KAAKgxU,oBAAL,CAA0BlmV,GAA1B,IAAiCkV,QAAjC;EACH;EACD;AACJ;AACA;;;EACImxU,MAAM,GAAG;IACL;IACA,KAAK,MAAMrmV,GAAX,IAAkB,KAAKkmV,oBAAvB,EAA6C;MACzC,IAAI,KAAKA,oBAAL,CAA0B/gV,cAA1B,CAAyCnF,GAAzC,CAAJ,EAAmD;QAC/C,IAAI;UACA,KAAKw2P,KAAL,CAAWx2P,GAAX,IAAkB,KAAKkmV,oBAAL,CAA0BlmV,GAA1B,GAAlB;QACH,CAFD,CAGA,OAAO6F,CAAP,EAAU;UACNkgG,OAAO,CAACC,IAAR,CAAa,qCAAb,EAAoDngG,CAApD;QACH;MACJ;IACJ;;IACD,OAAOoR,IAAI,CAACC,SAAL,CAAe,KAAKs/O,KAApB,CAAP;EACH;;AAzDe;;AA2DpByvF,aAAa,CAACnuV,IAAd;EAAA,iBAA0GmuV,aAA1G;AAAA;;AACAA,aAAa,CAAC/tV,KAAd,kBAt6C6F4hG,gEAs6C7F;EAAA,OAA8GmsP,aAA9G;EAAA;IAAA,QAA6J,MAAM;MAC3J,MAAMz9L,GAAG,GAAGz+B,qDAAM,CAACj2H,qDAAD,CAAlB;MACA,MAAMgsV,KAAK,GAAG/1N,qDAAM,CAACqwM,iDAAD,CAApB;MACA,MAAM9+T,KAAK,GAAG,IAAI2qV,aAAJ,EAAd;MACA3qV,KAAK,CAACk7P,KAAN,GAAc8vF,wBAAwB,CAAC99L,GAAD,EAAMs3L,KAAN,CAAtC;MACA,OAAOxkV,KAAP;IACH,CANL;EAAA;EAAA,YAAyI;AAAzI;;AAOA;EAAA,mDA76C6Fw+F,+DA66C7F,CAA2FmsP,aAA3F,EAAsH,CAAC;IAC3G1tV,IAAI,EAAEhF,qDADqG;IAE3GmF,IAAI,EAAE,CAAC;MACC2zH,UAAU,EAAE,MADb;MAECC,UAAU,EAAE,MAAM;QACd,MAAMk8B,GAAG,GAAGz+B,qDAAM,CAACj2H,qDAAD,CAAlB;QACA,MAAMgsV,KAAK,GAAG/1N,qDAAM,CAACqwM,iDAAD,CAApB;QACA,MAAM9+T,KAAK,GAAG,IAAI2qV,aAAJ,EAAd;QACA3qV,KAAK,CAACk7P,KAAN,GAAc8vF,wBAAwB,CAAC99L,GAAD,EAAMs3L,KAAN,CAAtC;QACA,OAAOxkV,KAAP;MACH;IARF,CAAD;EAFqG,CAAD,CAAtH;AAAA;;AAaA,SAASgrV,wBAAT,CAAkC99L,GAAlC,EAAuCs3L,KAAvC,EAA8C;EAC1C;EACA;EACA,MAAMv5L,MAAM,GAAGiC,GAAG,CAAC7W,cAAJ,CAAmBmuM,KAAK,GAAG,QAA3B,CAAf;EACA,IAAIyG,YAAY,GAAG,EAAnB;;EACA,IAAIhgM,MAAM,IAAIA,MAAM,CAACoyI,WAArB,EAAkC;IAC9B,IAAI;MACA;MACA4tD,YAAY,GAAGtvU,IAAI,CAAC2K,KAAL,CAAWkkU,YAAY,CAACv/L,MAAM,CAACoyI,WAAR,CAAvB,CAAf;IACH,CAHD,CAIA,OAAO9yR,CAAP,EAAU;MACNkgG,OAAO,CAACC,IAAR,CAAa,qDAAqD85O,KAAlE,EAAyEj6U,CAAzE;IACH;EACJ;;EACD,OAAO0gV,YAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,0BAAN,CAAiC;;AAEjCA,0BAA0B,CAAC1uV,IAA3B;EAAA,iBAAuH0uV,0BAAvH;AAAA;;AACAA,0BAA0B,CAACpjV,IAA3B,kBAr9C6F02F,8DAq9C7F;EAAA,MAAwH0sP;AAAxH;AACAA,0BAA0B,CAACljV,IAA3B,kBAt9C6Fw2F,8DAs9C7F;;AACA;EAAA,mDAv9C6FA,+DAu9C7F,CAA2F0sP,0BAA3F,EAAmI,CAAC;IACxHjuV,IAAI,EAAE3E,mDADkH;IAExH8E,IAAI,EAAE,CAAC,EAAD;EAFkH,CAAD,CAAnI;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM+tV,EAAN,CAAS;EACL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACc,OAAHhyR,GAAG,GAAG;IACT,OAAO,MAAM,IAAb;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACc,OAAHiyR,GAAG,CAAChkV,QAAD,EAAW;IACjB,OAAQikV,YAAD,IAAkB;MACrB,OAAOA,YAAY,CAAC9iN,aAAb,IAA8B,IAA9B,GACH+iN,cAAc,CAACD,YAAY,CAAC9iN,aAAd,EAA6BnhI,QAA7B,CADX,GAEH,KAFJ;IAGH,CAJD;EAKH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACoB,OAATggP,SAAS,CAACnqP,IAAD,EAAO;IACnB,OAAQiyU,SAAD,IAAeA,SAAS,CAACrhB,cAAV,CAAyBhsT,OAAzB,CAAiC5E,IAAjC,MAA2C,CAAC,CAAlE;EACH;;AArCI;;AAuCT,SAASquV,cAAT,CAAwBnhV,CAAxB,EAA2B/C,QAA3B,EAAqC;EACjC,IAAIm9I,2DAAO,GAAG1gC,aAAV,CAAwB15G,CAAxB,CAAJ,EAAgC;IAC5B,OAAOA,CAAC,CAACqqD,OAAF,IAAarqD,CAAC,CAACqqD,OAAF,CAAUptD,QAAV,CAAb,IACH+C,CAAC,CAACohV,iBAAF,IAAuBphV,CAAC,CAACohV,iBAAF,CAAoBnkV,QAApB,CADpB,IAEH+C,CAAC,CAACqhV,qBAAF,IAA2BrhV,CAAC,CAACqhV,qBAAF,CAAwBpkV,QAAxB,CAF/B;EAGH;;EACD,OAAO,KAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAMqkV,WAAW,GAAG;EAChB;EACA,OAAO,IAFS;EAGhB,YAAY,IAHI;EAIhB,WAAW,IAJK;EAKhB,UAAU,IALM;EAMhB,aAAa,IANG;EAOhB,WAAW,IAPK;EAQhB,YAAY,IARI;EAShB,SAAS,IATO;EAUhB,WAAW,IAVK;EAWhB;EACA,SAAS,IAZO;EAahB,cAAc,IAbE;EAchB,aAAa,IAdG;EAehB,YAAY,IAfI;EAgBhB,eAAe,IAhBC;EAiBhB,WAAW,IAjBK;EAkBhB,YAAY,IAlBI;EAmBhB;EACA,SAAS,IApBO;EAqBhB,WAAW,IArBK;EAsBhB;EACA,UAAU,IAvBM;EAwBhB,eAAe,IAxBC;EAyBhB,cAAc,IAzBE;EA0BhB,aAAa,IA1BG;EA2BhB,gBAAgB,IA3BA;EA4BhB;EACA,SAAS,IA7BO;EA8BhB,aAAa,IA9BG;EA+BhB,cAAc,IA/BE;EAgChB,WAAW,IAhCK;EAiChB,aAAa,IAjCG;EAkChB;EACA,OAAO,IAnCS;EAoChB,aAAa;AApCG,CAApB;AAsCA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,qBAAqB,GAAG,IAAI1zV,yDAAJ,CAAmB,qBAAnB,CAA9B;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM2zV,aAAa,GAAG,IAAI3zV,yDAAJ,CAAmB,cAAnB,CAAtB;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM4zV,mBAAN,CAA0B;EACtBjxV,WAAW,GAAG;IACV;AACR;AACA;AACA;AACA;IACQ,KAAKynF,MAAL,GAAc,EAAd;IACA;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACQ,KAAKypQ,SAAL,GAAiB,EAAjB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACIC,WAAW,CAAC5pP,OAAD,EAAU;IACjB,MAAM6pP,EAAE,GAAG,IAAIC,MAAJ,CAAW9pP,OAAX,EAAoB,KAAK15F,OAAzB,CAAX;IACAujV,EAAE,CAAChmV,GAAH,CAAO,OAAP,EAAgBzC,GAAhB,CAAoB;MAAE2oV,MAAM,EAAE;IAAV,CAApB;IACAF,EAAE,CAAChmV,GAAH,CAAO,QAAP,EAAiBzC,GAAjB,CAAqB;MAAE2oV,MAAM,EAAE;IAAV,CAArB;;IACA,KAAK,MAAM7kS,SAAX,IAAwB,KAAKykS,SAA7B,EAAwC;MACpCE,EAAE,CAAChmV,GAAH,CAAOqhD,SAAP,EAAkB9jD,GAAlB,CAAsB,KAAKuoV,SAAL,CAAezkS,SAAf,CAAtB;IACH;;IACD,OAAO2kS,EAAP;EACH;;AAxCqB;;AA0C1BH,mBAAmB,CAACpvV,IAApB;EAAA,iBAAgHovV,mBAAhH;AAAA;;AACAA,mBAAmB,CAAChvV,KAApB,kBAtoD6F4hG,gEAsoD7F;EAAA,OAAoHotP,mBAApH;EAAA,SAAoHA,mBAApH;AAAA;;AACA;EAAA,mDAvoD6FptP,+DAuoD7F,CAA2FotP,mBAA3F,EAA4H,CAAC;IACjH3uV,IAAI,EAAEhF,qDAAUA;EADiG,CAAD,CAA5H;AAAA;AAGA;AACA;AACA;AACA;AACA;;;AACA,MAAMi0V,oBAAN,SAAmCtJ,kBAAnC,CAAsD;EAClDjoV,WAAW,CAACuyJ,GAAD,EAAMi/L,OAAN,EAAe1hP,OAAf,EAAwBq5C,MAAxB,EAAgC;IACvC,MAAMoJ,GAAN;IACA,KAAKi/L,OAAL,GAAeA,OAAf;IACA,KAAK1hP,OAAL,GAAeA,OAAf;IACA,KAAKq5C,MAAL,GAAcA,MAAd;IACA,KAAKsoM,cAAL,GAAsB,IAAtB;EACH;;EACDn4M,QAAQ,CAAC7sF,SAAD,EAAY;IAChB,IAAI,CAACqkS,WAAW,CAAC5hV,cAAZ,CAA2Bu9C,SAAS,CAAClhD,WAAV,EAA3B,CAAD,IAAwD,CAAC,KAAKmmV,aAAL,CAAmBjlS,SAAnB,CAA7D,EAA4F;MACxF,OAAO,KAAP;IACH;;IACD,IAAI,CAAC1nD,MAAM,CAACssV,MAAR,IAAkB,CAAC,KAAKloM,MAA5B,EAAoC;MAChC,IAAI,OAAOzmJ,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;QAC/C,KAAKotG,OAAL,CAAaC,IAAb,CAAmB,QAAOtjD,SAAU,mDAAlB,GACb,iDADL;MAEH;;MACD,OAAO,KAAP;IACH;;IACD,OAAO,IAAP;EACH;;EACDjyC,gBAAgB,CAAC+sF,OAAD,EAAU96C,SAAV,EAAqBoxC,OAArB,EAA8B;IAC1C,MAAMsmC,IAAI,GAAG,KAAKwjN,OAAL,CAAaK,OAAb,EAAb;IACAv7R,SAAS,GAAGA,SAAS,CAAClhD,WAAV,EAAZ,CAF0C,CAG1C;IACA;;IACA,IAAI,CAACxG,MAAM,CAACssV,MAAR,IAAkB,KAAKloM,MAA3B,EAAmC;MAC/B,KAAKsoM,cAAL,GAAsB,KAAKA,cAAL,IAAuBttN,IAAI,CAAC+gB,iBAAL,CAAuB,MAAM,KAAKiE,MAAL,EAA7B,CAA7C,CAD+B,CAE/B;MACA;MACA;;MACA,IAAIwoM,kBAAkB,GAAG,KAAzB;;MACA,IAAIrsO,UAAU,GAAG,MAAM;QACnBqsO,kBAAkB,GAAG,IAArB;MACH,CAFD;;MAGAxtN,IAAI,CAAC+gB,iBAAL,CAAuB,MAAM,KAAKusM,cAAL,CACxBhhV,IADwB,CACnB,MAAM;QACZ;QACA,IAAI,CAAC1L,MAAM,CAACssV,MAAZ,EAAoB;UAChB,IAAI,OAAO3uV,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;YAC/C,KAAKotG,OAAL,CAAaC,IAAb,CAAmB,mEAAnB;UACH;;UACDuV,UAAU,GAAG,MAAM,CAAG,CAAtB;;UACA;QACH;;QACD,IAAI,CAACqsO,kBAAL,EAAyB;UACrB;UACA;UACA;UACArsO,UAAU,GAAG,KAAK9qG,gBAAL,CAAsB+sF,OAAtB,EAA+B96C,SAA/B,EAA0CoxC,OAA1C,CAAb;QACH;MACJ,CAhB4B,EAiBxB1lF,KAjBwB,CAiBlB,MAAM;QACb,IAAI,OAAOzV,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;UAC/C,KAAKotG,OAAL,CAAaC,IAAb,CAAmB,QAAOtjD,SAAU,6CAAlB,GACb,0BADL;QAEH;;QACD64D,UAAU,GAAG,MAAM,CAAG,CAAtB;MACH,CAvB4B,CAA7B,EAT+B,CAiC/B;MACA;MACA;;MACA,OAAO,MAAM;QACTA,UAAU;MACb,CAFD;IAGH;;IACD,OAAO6e,IAAI,CAAC+gB,iBAAL,CAAuB,MAAM;MAChC;MACA,MAAMksM,EAAE,GAAG,KAAKI,OAAL,CAAaL,WAAb,CAAyB5pP,OAAzB,CAAX;;MACA,MAAMtoF,QAAQ,GAAG,UAAUo0T,QAAV,EAAoB;QACjClvM,IAAI,CAACqkM,UAAL,CAAgB,YAAY;UACxB3qO,OAAO,CAACw1O,QAAD,CAAP;QACH,CAFD;MAGH,CAJD;;MAKA+d,EAAE,CAAC90P,EAAH,CAAM7vC,SAAN,EAAiBxtC,QAAjB;MACA,OAAO,MAAM;QACTmyU,EAAE,CAACQ,GAAH,CAAOnlS,SAAP,EAAkBxtC,QAAlB,EADS,CAET;;QACA,IAAI,OAAOmyU,EAAE,CAAC7uP,OAAV,KAAsB,UAA1B,EAAsC;UAClC6uP,EAAE,CAAC7uP,OAAH;QACH;MACJ,CAND;IAOH,CAhBM,CAAP;EAiBH;;EACDmvP,aAAa,CAACjlS,SAAD,EAAY;IACrB,OAAO,KAAK+kS,OAAL,CAAa/pQ,MAAb,CAAoBvgF,OAApB,CAA4BulD,SAA5B,IAAyC,CAAC,CAAjD;EACH;;AAtFiD;;AAwFtD8kS,oBAAoB,CAAC1vV,IAArB;EAAA,iBAAiH0vV,oBAAjH,EAvuD6F1tP,sDAuuD7F,CAAuJhmG,qDAAvJ,GAvuD6FgmG,sDAuuD7F,CAA4KktP,qBAA5K,GAvuD6FltP,sDAuuD7F,CAA8MA,sDAA9M,GAvuD6FA,sDAuuD7F,CAAsOmtP,aAAtO;AAAA;;AACAO,oBAAoB,CAACtvV,KAArB,kBAxuD6F4hG,gEAwuD7F;EAAA,OAAqH0tP,oBAArH;EAAA,SAAqHA,oBAArH;AAAA;;AACA;EAAA,mDAzuD6F1tP,+DAyuD7F,CAA2F0tP,oBAA3F,EAA6H,CAAC;IAClHjvV,IAAI,EAAEhF,qDAAUA;EADkG,CAAD,CAA7H,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAEgF,IAAI,EAAEC,SAAR;MAAmBC,UAAU,EAAE,CAAC;QAC9DF,IAAI,EAAE/E,iDADwD;QAE9DkF,IAAI,EAAE,CAAC5E,qDAAD;MAFwD,CAAD;IAA/B,CAAD,EAG3B;MAAEyE,IAAI,EAAE2uV,mBAAR;MAA6BzuV,UAAU,EAAE,CAAC;QAC5CF,IAAI,EAAE/E,iDADsC;QAE5CkF,IAAI,EAAE,CAACsuV,qBAAD;MAFsC,CAAD;IAAzC,CAH2B,EAM3B;MAAEzuV,IAAI,EAAEuhG,sDAAWu4O;IAAnB,CAN2B,EAMJ;MAAE95U,IAAI,EAAEC,SAAR;MAAmBC,UAAU,EAAE,CAAC;QACzDF,IAAI,EAAE9E,mDAAQA;MAD2C,CAAD,EAEzD;QACC8E,IAAI,EAAE/E,iDADP;QAECkF,IAAI,EAAE,CAACuuV,aAAD;MAFP,CAFyD;IAA/B,CANI,CAAP;EAWlB,CAbxB;AAAA;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMa,YAAN,CAAmB;;AAEnBA,YAAY,CAAChwV,IAAb;EAAA,iBAAyGgwV,YAAzG;AAAA;;AACAA,YAAY,CAAC1kV,IAAb,kBArwD6F02F,8DAqwD7F;EAAA,MAA0GguP;AAA1G;AACAA,YAAY,CAACxkV,IAAb,kBAtwD6Fw2F,8DAswD7F;EAAA,WAAmI,CAC3H;IACI72F,OAAO,EAAEu6U,qBADb;IAEI/zL,QAAQ,EAAE+9L,oBAFd;IAGInoP,KAAK,EAAE,IAHX;IAII+hC,IAAI,EAAE,CAACttI,qDAAD,EAAWkzV,qBAAX,EAAkC3U,sDAAlC,EAA4C,CAAC,IAAI5+U,mDAAJ,EAAD,EAAiBwzV,aAAjB,CAA5C;EAJV,CAD2H,EAO3H;IAAEhkV,OAAO,EAAE+jV,qBAAX;IAAkCv9L,QAAQ,EAAEy9L,mBAA5C;IAAiE9lN,IAAI,EAAE;EAAvE,CAP2H;AAAnI;;AASA;EAAA,mDA/wD6FtnC,+DA+wD7F,CAA2FguP,YAA3F,EAAqH,CAAC;IAC1GvvV,IAAI,EAAE3E,mDADoG;IAE1G8E,IAAI,EAAE,CAAC;MACCsK,SAAS,EAAE,CACP;QACIC,OAAO,EAAEu6U,qBADb;QAEI/zL,QAAQ,EAAE+9L,oBAFd;QAGInoP,KAAK,EAAE,IAHX;QAII+hC,IAAI,EAAE,CAACttI,qDAAD,EAAWkzV,qBAAX,EAAkC3U,sDAAlC,EAA4C,CAAC,IAAI5+U,mDAAJ,EAAD,EAAiBwzV,aAAjB,CAA5C;MAJV,CADO,EAOP;QAAEhkV,OAAO,EAAE+jV,qBAAX;QAAkCv9L,QAAQ,EAAEy9L,mBAA5C;QAAiE9lN,IAAI,EAAE;MAAvE,CAPO;IADZ,CAAD;EAFoG,CAAD,CAArH;AAAA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM2mN,YAAN,CAAmB;;AAEnBA,YAAY,CAACjwV,IAAb;EAAA,iBAAyGiwV,YAAzG;AAAA;;AACAA,YAAY,CAAC7vV,KAAb,kBAv0D6F4hG,gEAu0D7F;EAAA,OAA6GiuP,YAA7G;EAAA;IAAA;;IAAA;MAAA,cAA6GA,YAA7G;IAAA;MAAA,IAv0D6FjuP,sDAu0D7F,CAA+LkuP,gBAA/L;IAAA;;IAAA;EAAA;EAAA,YAAuI;AAAvI;;AACA;EAAA,mDAx0D6FluP,+DAw0D7F,CAA2FiuP,YAA3F,EAAqH,CAAC;IAC1GxvV,IAAI,EAAEhF,qDADoG;IAE1GmF,IAAI,EAAE,CAAC;MAAE2zH,UAAU,EAAE,MAAd;MAAsBs9B,WAAW,EAAE8lB,yDAAU,CAAC,MAAMu4K,gBAAP;IAA7C,CAAD;EAFoG,CAAD,CAArH;AAAA;;AAIA,SAASC,uBAAT,CAAiCtjN,QAAjC,EAA2C;EACvC,OAAO,IAAIqjN,gBAAJ,CAAqBrjN,QAAQ,CAACtjI,GAAT,CAAavN,qDAAb,CAArB,CAAP;AACH;;AACD,MAAMk0V,gBAAN,SAA+BD,YAA/B,CAA4C;EACxC9xV,WAAW,CAACw2H,IAAD,EAAO;IACd;IACA,KAAKA,IAAL,GAAYA,IAAZ;EACH;;EACD01J,QAAQ,CAAC3/Q,GAAD,EAAM1I,KAAN,EAAa;IACjB,IAAIA,KAAK,IAAI,IAAb,EACI,OAAO,IAAP;;IACJ,QAAQ0I,GAAR;MACI,KAAK2tJ,+DAAL;QACI,OAAOr2J,KAAP;;MACJ,KAAKq2J,+DAAL;QACI,IAAI2jL,kFAAgC,CAACh6U,KAAD,EAAQ;QAAO;QAAf,CAApC,EAA2E;UACvE,OAAOk9U,kEAAgB,CAACl9U,KAAD,CAAvB;QACH;;QACD,OAAO85U,gEAAc,CAAC,KAAKnnN,IAAN,EAAY9rF,MAAM,CAAC7mC,KAAD,CAAlB,CAAd,CAAyCqhB,QAAzC,EAAP;;MACJ,KAAKg1I,gEAAL;QACI,IAAI2jL,kFAAgC,CAACh6U,KAAD,EAAQ;QAAQ;QAAhB,CAApC,EAA6E;UACzE,OAAOk9U,kEAAgB,CAACl9U,KAAD,CAAvB;QACH;;QACD,OAAOA,KAAP;;MACJ,KAAKq2J,iEAAL;QACI,IAAI2jL,kFAAgC,CAACh6U,KAAD,EAAQ;QAAS;QAAjB,CAApC,EAA+E;UAC3E,OAAOk9U,kEAAgB,CAACl9U,KAAD,CAAvB;QACH;;QACD,MAAM,IAAI+zB,KAAJ,CAAU,uCAAV,CAAN;;MACJ,KAAKsiI,8DAAL;QACI,IAAI2jL,kFAAgC,CAACh6U,KAAD,EAAQ;QAAM;QAAd,CAApC,EAAyE;UACrE,OAAOk9U,kEAAgB,CAACl9U,KAAD,CAAvB;QACH;;QACD,OAAO+5U,+DAAa,CAAClzS,MAAM,CAAC7mC,KAAD,CAAP,CAApB;;MACJ,KAAKq2J,uEAAL;QACI,IAAI2jL,kFAAgC,CAACh6U,KAAD,EAAQ;QAAc;QAAtB,CAApC,EAAyF;UACrF,OAAOk9U,kEAAgB,CAACl9U,KAAD,CAAvB;QACH;;QACD,MAAM,IAAI+zB,KAAJ,CAAU,gFAAV,CAAN;;MACJ;QACI,MAAM,IAAIA,KAAJ,CAAW,8BAA6BrrB,GAAI,qCAA5C,CAAN;IA7BR;EA+BH;;EACD0lV,uBAAuB,CAACpuV,KAAD,EAAQ;IAC3B,OAAOi6U,8EAA4B,CAACj6U,KAAD,CAAnC;EACH;;EACDquV,wBAAwB,CAACruV,KAAD,EAAQ;IAC5B,OAAOo6U,+EAA6B,CAACp6U,KAAD,CAApC;EACH;;EACDsuV,yBAAyB,CAACtuV,KAAD,EAAQ;IAC7B,OAAOm6U,gFAA8B,CAACn6U,KAAD,CAArC;EACH;;EACDuuV,sBAAsB,CAACvuV,KAAD,EAAQ;IAC1B,OAAOq6U,6EAA2B,CAACr6U,KAAD,CAAlC;EACH;;EACDwuV,8BAA8B,CAACxuV,KAAD,EAAQ;IAClC,OAAOk6U,qFAAmC,CAACl6U,KAAD,CAA1C;EACH;;AAtDuC;;AAwD5CkuV,gBAAgB,CAAClwV,IAAjB;EAAA,iBAA6GkwV,gBAA7G,EAv4D6FluP,sDAu4D7F,CAA+IhmG,qDAA/I;AAAA;;AACAk0V,gBAAgB,CAAC9vV,KAAjB,kBAx4D6F4hG,gEAw4D7F;EAAA,OAAiHkuP,gBAAjH;EAAA;IAAA;;IAAA;MAAA;IAAA;MAAA,IAAmKC,uBAAnK,CAx4D6FnuP,sDAw4D7F,CAA4M0xB,mDAA5M;IAAA;;IAAA;EAAA;EAAA,YAA+I;AAA/I;;AACA;EAAA,mDAz4D6F1xB,+DAy4D7F,CAA2FkuP,gBAA3F,EAAyH,CAAC;IAC9GzvV,IAAI,EAAEhF,qDADwG;IAE9GmF,IAAI,EAAE,CAAC;MAAE2zH,UAAU,EAAE,MAAd;MAAsBC,UAAU,EAAE27N,uBAAlC;MAA2D7mN,IAAI,EAAE,CAAC5V,mDAAD;IAAjE,CAAD;EAFwG,CAAD,CAAzH,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAEjzH,IAAI,EAAEC,SAAR;MAAmBC,UAAU,EAAE,CAAC;QAC9DF,IAAI,EAAE/E,iDADwD;QAE9DkF,IAAI,EAAE,CAAC5E,qDAAD;MAFwD,CAAD;IAA/B,CAAD,CAAP;EAGlB,CANxB;AAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAMJ,OAAO,GAAG,IAAI03H,kDAAJ,CAAY,QAAZ,CAAhB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5pEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMm+N,cAAc,GAAG,SAAvB;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,aAAa,GAAGliV,MAAM,CAAC,YAAD,CAA5B;;AACA,MAAMmiV,WAAN,CAAkB;EACdxzV,WAAW,CAACk+C,MAAD,EAAS;IAChB,KAAKA,MAAL,GAAcA,MAAM,IAAI,EAAxB;EACH;;EACDzkB,GAAG,CAAC55B,IAAD,EAAO;IACN,OAAO0F,MAAM,CAAC0J,SAAP,CAAiBC,cAAjB,CAAgCf,IAAhC,CAAqC,KAAK+vC,MAA1C,EAAkDr+C,IAAlD,CAAP;EACH;;EACDuL,GAAG,CAACvL,IAAD,EAAO;IACN,IAAI,KAAK45B,GAAL,CAAS55B,IAAT,CAAJ,EAAoB;MAChB,MAAM0R,CAAC,GAAG,KAAK2sC,MAAL,CAAYr+C,IAAZ,CAAV;MACA,OAAOuJ,KAAK,CAACiqF,OAAN,CAAc9hF,CAAd,IAAmBA,CAAC,CAAC,CAAD,CAApB,GAA0BA,CAAjC;IACH;;IACD,OAAO,IAAP;EACH;;EACDm5I,MAAM,CAAC7qJ,IAAD,EAAO;IACT,IAAI,KAAK45B,GAAL,CAAS55B,IAAT,CAAJ,EAAoB;MAChB,MAAM0R,CAAC,GAAG,KAAK2sC,MAAL,CAAYr+C,IAAZ,CAAV;MACA,OAAOuJ,KAAK,CAACiqF,OAAN,CAAc9hF,CAAd,IAAmBA,CAAnB,GAAuB,CAACA,CAAD,CAA9B;IACH;;IACD,OAAO,EAAP;EACH;;EACO,IAAJjI,IAAI,GAAG;IACP,OAAO/D,MAAM,CAAC+D,IAAP,CAAY,KAAK40C,MAAjB,CAAP;EACH;;AAvBa;AAyBlB;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASu1S,iBAAT,CAA2Bv1S,MAA3B,EAAmC;EAC/B,OAAO,IAAIs1S,WAAJ,CAAgBt1S,MAAhB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASw1S,iBAAT,CAA2Bx1K,QAA3B,EAAqCy1K,YAArC,EAAmDlsV,KAAnD,EAA0D;EACtD,MAAMmjD,KAAK,GAAGnjD,KAAK,CAACrH,IAAN,CAAWC,KAAX,CAAiB,GAAjB,CAAd;;EACA,IAAIuqD,KAAK,CAAC/lD,MAAN,GAAeq5K,QAAQ,CAACr5K,MAA5B,EAAoC;IAChC;IACA,OAAO,IAAP;EACH;;EACD,IAAI4C,KAAK,CAACmsV,SAAN,KAAoB,MAApB,KACCD,YAAY,CAACvnH,WAAb,MAA8BxhL,KAAK,CAAC/lD,MAAN,GAAeq5K,QAAQ,CAACr5K,MADvD,CAAJ,EACoE;IAChE;IACA,OAAO,IAAP;EACH;;EACD,MAAMgvV,SAAS,GAAG,EAAlB,CAXsD,CAYtD;;EACA,KAAK,IAAIhqU,KAAK,GAAG,CAAjB,EAAoBA,KAAK,GAAG+gC,KAAK,CAAC/lD,MAAlC,EAA0CglB,KAAK,EAA/C,EAAmD;IAC/C,MAAM61G,IAAI,GAAG90E,KAAK,CAAC/gC,KAAD,CAAlB;IACA,MAAMs0J,OAAO,GAAGD,QAAQ,CAACr0J,KAAD,CAAxB;IACA,MAAMiqU,WAAW,GAAGp0N,IAAI,CAACv6H,UAAL,CAAgB,GAAhB,CAApB;;IACA,IAAI2uV,WAAJ,EAAiB;MACbD,SAAS,CAACn0N,IAAI,CAAC3tG,SAAL,CAAe,CAAf,CAAD,CAAT,GAA+BosJ,OAA/B;IACH,CAFD,MAGK,IAAIz+C,IAAI,KAAKy+C,OAAO,CAAC/9K,IAArB,EAA2B;MAC5B;MACA,OAAO,IAAP;IACH;EACJ;;EACD,OAAO;IAAE2zV,QAAQ,EAAE71K,QAAQ,CAACv1F,KAAT,CAAe,CAAf,EAAkB/9B,KAAK,CAAC/lD,MAAxB,CAAZ;IAA6CgvV;EAA7C,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,kBAAT,CAA4BpjS,CAA5B,EAA+B/hD,CAA/B,EAAkC;EAC9B,IAAI+hD,CAAC,CAAC/rD,MAAF,KAAagK,CAAC,CAAChK,MAAnB,EACI,OAAO,KAAP;;EACJ,KAAK,IAAI0K,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqhD,CAAC,CAAC/rD,MAAtB,EAA8B,EAAE0K,CAAhC,EAAmC;IAC/B,IAAI,CAAC0kV,YAAY,CAACrjS,CAAC,CAACrhD,CAAD,CAAF,EAAOV,CAAC,CAACU,CAAD,CAAR,CAAjB,EACI,OAAO,KAAP;EACP;;EACD,OAAO,IAAP;AACH;;AACD,SAAS0kV,YAAT,CAAsBrjS,CAAtB,EAAyB/hD,CAAzB,EAA4B;EACxB;EACA;EACA,MAAMkhH,EAAE,GAAGn/D,CAAC,GAAGrrD,MAAM,CAAC+D,IAAP,CAAYsnD,CAAZ,CAAH,GAAoBruD,SAAhC;EACA,MAAMytH,EAAE,GAAGnhH,CAAC,GAAGtJ,MAAM,CAAC+D,IAAP,CAAYuF,CAAZ,CAAH,GAAoBtM,SAAhC;;EACA,IAAI,CAACwtH,EAAD,IAAO,CAACC,EAAR,IAAcD,EAAE,CAAClrH,MAAH,IAAamrH,EAAE,CAACnrH,MAAlC,EAA0C;IACtC,OAAO,KAAP;EACH;;EACD,IAAIkF,GAAJ;;EACA,KAAK,IAAIwF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwgH,EAAE,CAAClrH,MAAvB,EAA+B0K,CAAC,EAAhC,EAAoC;IAChCxF,GAAG,GAAGgmH,EAAE,CAACxgH,CAAD,CAAR;;IACA,IAAI,CAAC2kV,mBAAmB,CAACtjS,CAAC,CAAC7mD,GAAD,CAAF,EAAS8E,CAAC,CAAC9E,GAAD,CAAV,CAAxB,EAA0C;MACtC,OAAO,KAAP;IACH;EACJ;;EACD,OAAO,IAAP;AACH;AACD;AACA;AACA;;;AACA,SAASmqV,mBAAT,CAA6BtjS,CAA7B,EAAgC/hD,CAAhC,EAAmC;EAC/B,IAAIzF,KAAK,CAACiqF,OAAN,CAAcziC,CAAd,KAAoBxnD,KAAK,CAACiqF,OAAN,CAAcxkF,CAAd,CAAxB,EAA0C;IACtC,IAAI+hD,CAAC,CAAC/rD,MAAF,KAAagK,CAAC,CAAChK,MAAnB,EACI,OAAO,KAAP;IACJ,MAAMsvV,OAAO,GAAG,CAAC,GAAGvjS,CAAJ,EAAOvB,IAAP,EAAhB;IACA,MAAM+kS,OAAO,GAAG,CAAC,GAAGvlV,CAAJ,EAAOwgD,IAAP,EAAhB;IACA,OAAO8kS,OAAO,CAACvxQ,KAAR,CAAc,CAACc,GAAD,EAAM75D,KAAN,KAAgBuqU,OAAO,CAACvqU,KAAD,CAAP,KAAmB65D,GAAjD,CAAP;EACH,CAND,MAOK;IACD,OAAO9yB,CAAC,KAAK/hD,CAAb;EACH;AACJ;AACD;AACA;AACA;;;AACA,SAAS8gO,OAAT,CAAiBriJ,GAAjB,EAAsB;EAClB,OAAOlkF,KAAK,CAAC6F,SAAN,CAAgB+C,MAAhB,CAAuBtC,KAAvB,CAA6B,EAA7B,EAAiC49E,GAAjC,CAAP;AACH;AACD;AACA;AACA;;;AACA,SAAS0D,IAAT,CAAcpgC,CAAd,EAAiB;EACb,OAAOA,CAAC,CAAC/rD,MAAF,GAAW,CAAX,GAAe+rD,CAAC,CAACA,CAAC,CAAC/rD,MAAF,GAAW,CAAZ,CAAhB,GAAiC,IAAxC;AACH;AACD;AACA;AACA;;;AACA,SAASwhK,GAAT,CAAaguL,KAAb,EAAoB;EAChB,OAAO,CAACA,KAAK,CAACr6Q,IAAN,CAAWzoE,CAAC,IAAI,CAACA,CAAjB,CAAR;AACH;;AACD,SAASzH,OAAT,CAAiB/K,GAAjB,EAAsBkgB,QAAtB,EAAgC;EAC5B,KAAK,MAAMgmF,IAAX,IAAmBlmG,GAAnB,EAAwB;IACpB,IAAIA,GAAG,CAACmQ,cAAJ,CAAmB+1F,IAAnB,CAAJ,EAA8B;MAC1BhmF,QAAQ,CAAClgB,GAAG,CAACkmG,IAAD,CAAJ,EAAYA,IAAZ,CAAR;IACH;EACJ;AACJ;;AACD,SAASqvP,kBAAT,CAA4BzwV,KAA5B,EAAmC;EAC/B,IAAIi8U,+DAAa,CAACj8U,KAAD,CAAjB,EAA0B;IACtB,OAAOA,KAAP;EACH;;EACD,IAAIkxH,4DAAU,CAAClxH,KAAD,CAAd,EAAuB;IACnB;IACA;IACA;IACA,OAAOrF,0CAAI,CAACgQ,OAAO,CAACC,OAAR,CAAgB5K,KAAhB,CAAD,CAAX;EACH;;EACD,OAAOjF,wCAAE,CAACiF,KAAD,CAAT;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM0wV,aAAa,GAAG,OAAO7xV,SAAP,KAAqB,WAArB,IAAoCA,SAA1D;;AACA,SAAS8xV,kBAAT,GAA8B;EAC1B,OAAO,IAAIC,OAAJ,CAAY,IAAIC,eAAJ,CAAoB,EAApB,EAAwB,EAAxB,CAAZ,EAAyC,EAAzC,EAA6C,IAA7C,CAAP;AACH;;AACD,MAAMC,cAAc,GAAG;EACnB,SAASC,kBADU;EAEnB,UAAUC;AAFS,CAAvB;AAIA,MAAMC,eAAe,GAAG;EACpB,SAASC,WADW;EAEpB,UAAUC,cAFU;EAGpB,WAAW,MAAM;AAHG,CAAxB;;AAKA,SAASC,YAAT,CAAsB72L,SAAtB,EAAiC82L,SAAjC,EAA4CrnV,OAA5C,EAAqD;EACjD,OAAO8mV,cAAc,CAAC9mV,OAAO,CAACsnV,KAAT,CAAd,CAA8B/2L,SAAS,CAACr3J,IAAxC,EAA8CmuV,SAAS,CAACnuV,IAAxD,EAA8D8G,OAAO,CAACunV,YAAtE,KACHN,eAAe,CAACjnV,OAAO,CAACyzE,WAAT,CAAf,CAAqC88E,SAAS,CAAC98E,WAA/C,EAA4D4zQ,SAAS,CAAC5zQ,WAAtE,CADG,IAEH,EAAEzzE,OAAO,CAAC7G,QAAR,KAAqB,OAArB,IAAgCo3J,SAAS,CAACp3J,QAAV,KAAuBkuV,SAAS,CAACluV,QAAnE,CAFJ;AAGH;;AACD,SAAS+tV,WAAT,CAAqB32L,SAArB,EAAgC82L,SAAhC,EAA2C;EACvC;EACA,OAAOjB,YAAY,CAAC71L,SAAD,EAAY82L,SAAZ,CAAnB;AACH;;AACD,SAASN,kBAAT,CAA4Bx2L,SAA5B,EAAuC82L,SAAvC,EAAkDE,YAAlD,EAAgE;EAC5D,IAAI,CAACC,SAAS,CAACj3L,SAAS,CAAC8f,QAAX,EAAqBg3K,SAAS,CAACh3K,QAA/B,CAAd,EACI,OAAO,KAAP;;EACJ,IAAI,CAACo3K,iBAAiB,CAACl3L,SAAS,CAAC8f,QAAX,EAAqBg3K,SAAS,CAACh3K,QAA/B,EAAyCk3K,YAAzC,CAAtB,EAA8E;IAC1E,OAAO,KAAP;EACH;;EACD,IAAIh3L,SAAS,CAACm3L,gBAAV,KAA+BL,SAAS,CAACK,gBAA7C,EACI,OAAO,KAAP;;EACJ,KAAK,MAAM91L,CAAX,IAAgBy1L,SAAS,CAAC72L,QAA1B,EAAoC;IAChC,IAAI,CAACD,SAAS,CAACC,QAAV,CAAmBoB,CAAnB,CAAL,EACI,OAAO,KAAP;IACJ,IAAI,CAACm1L,kBAAkB,CAACx2L,SAAS,CAACC,QAAV,CAAmBoB,CAAnB,CAAD,EAAwBy1L,SAAS,CAAC72L,QAAV,CAAmBoB,CAAnB,CAAxB,EAA+C21L,YAA/C,CAAvB,EACI,OAAO,KAAP;EACP;;EACD,OAAO,IAAP;AACH;;AACD,SAASJ,cAAT,CAAwB52L,SAAxB,EAAmC82L,SAAnC,EAA8C;EAC1C,OAAO3vV,MAAM,CAAC+D,IAAP,CAAY4rV,SAAZ,EAAuBrwV,MAAvB,IAAiCU,MAAM,CAAC+D,IAAP,CAAY80J,SAAZ,EAAuBv5J,MAAxD,IACHU,MAAM,CAAC+D,IAAP,CAAY4rV,SAAZ,EAAuBtyQ,KAAvB,CAA6B74E,GAAG,IAAImqV,mBAAmB,CAAC91L,SAAS,CAACr0J,GAAD,CAAV,EAAiBmrV,SAAS,CAACnrV,GAAD,CAA1B,CAAvD,CADJ;AAEH;;AACD,SAAS8qV,oBAAT,CAA8Bz2L,SAA9B,EAAyC82L,SAAzC,EAAoDE,YAApD,EAAkE;EAC9D,OAAOI,0BAA0B,CAACp3L,SAAD,EAAY82L,SAAZ,EAAuBA,SAAS,CAACh3K,QAAjC,EAA2Ck3K,YAA3C,CAAjC;AACH;;AACD,SAASI,0BAAT,CAAoCp3L,SAApC,EAA+C82L,SAA/C,EAA0DO,cAA1D,EAA0EL,YAA1E,EAAwF;EACpF,IAAIh3L,SAAS,CAAC8f,QAAV,CAAmBr5K,MAAnB,GAA4B4wV,cAAc,CAAC5wV,MAA/C,EAAuD;IACnD,MAAM0xJ,OAAO,GAAG6H,SAAS,CAAC8f,QAAV,CAAmBv1F,KAAnB,CAAyB,CAAzB,EAA4B8sQ,cAAc,CAAC5wV,MAA3C,CAAhB;IACA,IAAI,CAACwwV,SAAS,CAAC9+L,OAAD,EAAUk/L,cAAV,CAAd,EACI,OAAO,KAAP;IACJ,IAAIP,SAAS,CAAC9oH,WAAV,EAAJ,EACI,OAAO,KAAP;IACJ,IAAI,CAACkpH,iBAAiB,CAAC/+L,OAAD,EAAUk/L,cAAV,EAA0BL,YAA1B,CAAtB,EACI,OAAO,KAAP;IACJ,OAAO,IAAP;EACH,CATD,MAUK,IAAIh3L,SAAS,CAAC8f,QAAV,CAAmBr5K,MAAnB,KAA8B4wV,cAAc,CAAC5wV,MAAjD,EAAyD;IAC1D,IAAI,CAACwwV,SAAS,CAACj3L,SAAS,CAAC8f,QAAX,EAAqBu3K,cAArB,CAAd,EACI,OAAO,KAAP;IACJ,IAAI,CAACH,iBAAiB,CAACl3L,SAAS,CAAC8f,QAAX,EAAqBu3K,cAArB,EAAqCL,YAArC,CAAtB,EACI,OAAO,KAAP;;IACJ,KAAK,MAAM31L,CAAX,IAAgBy1L,SAAS,CAAC72L,QAA1B,EAAoC;MAChC,IAAI,CAACD,SAAS,CAACC,QAAV,CAAmBoB,CAAnB,CAAL,EACI,OAAO,KAAP;;MACJ,IAAI,CAACo1L,oBAAoB,CAACz2L,SAAS,CAACC,QAAV,CAAmBoB,CAAnB,CAAD,EAAwBy1L,SAAS,CAAC72L,QAAV,CAAmBoB,CAAnB,CAAxB,EAA+C21L,YAA/C,CAAzB,EAAuF;QACnF,OAAO,KAAP;MACH;IACJ;;IACD,OAAO,IAAP;EACH,CAbI,MAcA;IACD,MAAM7+L,OAAO,GAAGk/L,cAAc,CAAC9sQ,KAAf,CAAqB,CAArB,EAAwBy1E,SAAS,CAAC8f,QAAV,CAAmBr5K,MAA3C,CAAhB;IACA,MAAMnB,IAAI,GAAG+xV,cAAc,CAAC9sQ,KAAf,CAAqBy1E,SAAS,CAAC8f,QAAV,CAAmBr5K,MAAxC,CAAb;IACA,IAAI,CAACwwV,SAAS,CAACj3L,SAAS,CAAC8f,QAAX,EAAqB3nB,OAArB,CAAd,EACI,OAAO,KAAP;IACJ,IAAI,CAAC++L,iBAAiB,CAACl3L,SAAS,CAAC8f,QAAX,EAAqB3nB,OAArB,EAA8B6+L,YAA9B,CAAtB,EACI,OAAO,KAAP;IACJ,IAAI,CAACh3L,SAAS,CAACC,QAAV,CAAmBi1L,cAAnB,CAAL,EACI,OAAO,KAAP;IACJ,OAAOkC,0BAA0B,CAACp3L,SAAS,CAACC,QAAV,CAAmBi1L,cAAnB,CAAD,EAAqC4B,SAArC,EAAgDxxV,IAAhD,EAAsD0xV,YAAtD,CAAjC;EACH;AACJ;;AACD,SAASE,iBAAT,CAA2BI,cAA3B,EAA2CD,cAA3C,EAA2D5nV,OAA3D,EAAoE;EAChE,OAAO4nV,cAAc,CAAC7yQ,KAAf,CAAqB,CAAC+yQ,gBAAD,EAAmBpmV,CAAnB,KAAyB;IACjD,OAAOulV,eAAe,CAACjnV,OAAD,CAAf,CAAyB6nV,cAAc,CAACnmV,CAAD,CAAd,CAAkBktE,UAA3C,EAAuDk5Q,gBAAgB,CAACl5Q,UAAxE,CAAP;EACH,CAFM,CAAP;AAGH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMg4Q,OAAN,CAAc;EACV;EACAz0V,WAAW;EACX;EACA+G,IAFW;EAGX;EACAu6E,WAJW;EAKX;EACAt6E,QANW,EAMD;IACN,KAAKD,IAAL,GAAYA,IAAZ;IACA,KAAKu6E,WAAL,GAAmBA,WAAnB;IACA,KAAKt6E,QAAL,GAAgBA,QAAhB;EACH;;EACgB,IAAb4uV,aAAa,GAAG;IAChB,IAAI,CAAC,KAAKC,cAAV,EAA0B;MACtB,KAAKA,cAAL,GAAsBpC,iBAAiB,CAAC,KAAKnyQ,WAAN,CAAvC;IACH;;IACD,OAAO,KAAKu0Q,cAAZ;EACH;EACD;;;EACA3wU,QAAQ,GAAG;IACP,OAAO4wU,kBAAkB,CAAClqK,SAAnB,CAA6B,IAA7B,CAAP;EACH;;AAtBS;AAwBd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM8oK,eAAN,CAAsB;EAClB10V,WAAW;EACX;EACAk+K,QAFW;EAGX;EACA7f,QAJW,EAID;IACN,KAAK6f,QAAL,GAAgBA,QAAhB;IACA,KAAK7f,QAAL,GAAgBA,QAAhB;IACA;;IACA,KAAK1uG,MAAL,GAAc,IAAd;IACA7lD,OAAO,CAACu0J,QAAD,EAAW,CAAC9sJ,CAAD,EAAIo/C,CAAJ,KAAUp/C,CAAC,CAACo+C,MAAF,GAAW,IAAhC,CAAP;EACH;EACD;;;EACAy8K,WAAW,GAAG;IACV,OAAO,KAAKmpH,gBAAL,GAAwB,CAA/B;EACH;EACD;;;EACoB,IAAhBA,gBAAgB,GAAG;IACnB,OAAOhwV,MAAM,CAAC+D,IAAP,CAAY,KAAK+0J,QAAjB,EAA2Bx5J,MAAlC;EACH;EACD;;;EACAqgB,QAAQ,GAAG;IACP,OAAO6wU,cAAc,CAAC,IAAD,CAArB;EACH;;AAvBiB;AAyBtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,UAAN,CAAiB;EACbh2V,WAAW;EACX;EACAI,IAFW;EAGX;EACAq8E,UAJW,EAIC;IACR,KAAKr8E,IAAL,GAAYA,IAAZ;IACA,KAAKq8E,UAAL,GAAkBA,UAAlB;EACH;;EACe,IAAZw5Q,YAAY,GAAG;IACf,IAAI,CAAC,KAAKC,aAAV,EAAyB;MACrB,KAAKA,aAAL,GAAqBzC,iBAAiB,CAAC,KAAKh3Q,UAAN,CAAtC;IACH;;IACD,OAAO,KAAKy5Q,aAAZ;EACH;EACD;;;EACAhxU,QAAQ,GAAG;IACP,OAAOixU,aAAa,CAAC,IAAD,CAApB;EACH;;AAlBY;;AAoBjB,SAASC,aAAT,CAAuBC,EAAvB,EAA2BC,EAA3B,EAA+B;EAC3B,OAAOjB,SAAS,CAACgB,EAAD,EAAKC,EAAL,CAAT,IAAqBD,EAAE,CAACzzQ,KAAH,CAAS,CAAChyB,CAAD,EAAIrhD,CAAJ,KAAU0kV,YAAY,CAACrjS,CAAC,CAAC6rB,UAAH,EAAe65Q,EAAE,CAAC/mV,CAAD,CAAF,CAAMktE,UAArB,CAA/B,CAA5B;AACH;;AACD,SAAS44Q,SAAT,CAAmBgB,EAAnB,EAAuBC,EAAvB,EAA2B;EACvB,IAAID,EAAE,CAACxxV,MAAH,KAAcyxV,EAAE,CAACzxV,MAArB,EACI,OAAO,KAAP;EACJ,OAAOwxV,EAAE,CAACzzQ,KAAH,CAAS,CAAChyB,CAAD,EAAIrhD,CAAJ,KAAUqhD,CAAC,CAACxwD,IAAF,KAAWk2V,EAAE,CAAC/mV,CAAD,CAAF,CAAMnP,IAApC,CAAP;AACH;;AACD,SAASm2V,oBAAT,CAA8Bp4K,OAA9B,EAAuC5rF,EAAvC,EAA2C;EACvC,IAAIjmC,GAAG,GAAG,EAAV;EACAxiD,OAAO,CAACq0K,OAAO,CAAC9f,QAAT,EAAmB,CAACC,KAAD,EAAQk4L,WAAR,KAAwB;IAC9C,IAAIA,WAAW,KAAKlD,cAApB,EAAoC;MAChChnS,GAAG,GAAGA,GAAG,CAACt6C,MAAJ,CAAWugF,EAAE,CAAC+rE,KAAD,EAAQk4L,WAAR,CAAb,CAAN;IACH;EACJ,CAJM,CAAP;EAKA1sV,OAAO,CAACq0K,OAAO,CAAC9f,QAAT,EAAmB,CAACC,KAAD,EAAQk4L,WAAR,KAAwB;IAC9C,IAAIA,WAAW,KAAKlD,cAApB,EAAoC;MAChChnS,GAAG,GAAGA,GAAG,CAACt6C,MAAJ,CAAWugF,EAAE,CAAC+rE,KAAD,EAAQk4L,WAAR,CAAb,CAAN;IACH;EACJ,CAJM,CAAP;EAKA,OAAOlqS,GAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMmqS,aAAN,CAAoB;;AAEpBA,aAAa,CAAC50V,IAAd;EAAA,iBAA0G40V,aAA1G;AAAA;;AACAA,aAAa,CAACx0V,KAAd,kBADgG4hG,gEAChG;EAAA,OAA8G4yP,aAA9G;EAAA;IAAA,QAA6J,MAAM,IAAIC,oBAAJ,EAAnK;EAAA;EAAA,YAAyI;AAAzI;;AACA;EAAA,mDAFgG7yP,+DAEhG,CAA2F4yP,aAA3F,EAAsH,CAAC;IAC3Gn0V,IAAI,EAAEhF,qDADqG;IAE3GmF,IAAI,EAAE,CAAC;MAAE2zH,UAAU,EAAE,MAAd;MAAsBC,UAAU,EAAE,MAAM,IAAIqgO,oBAAJ;IAAxC,CAAD;EAFqG,CAAD,CAAtH;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMA,oBAAN,CAA2B;EACvB;EACA/qU,KAAK,CAACrnB,GAAD,EAAM;IACP,MAAM0K,CAAC,GAAG,IAAI2nV,SAAJ,CAAcryV,GAAd,CAAV;IACA,OAAO,IAAImwV,OAAJ,CAAYzlV,CAAC,CAAC4nV,gBAAF,EAAZ,EAAkC5nV,CAAC,CAAC6nV,gBAAF,EAAlC,EAAwD7nV,CAAC,CAAC8nV,aAAF,EAAxD,CAAP;EACH;EACD;;;EACAlrK,SAAS,CAACmrK,IAAD,EAAO;IACZ,MAAM54K,OAAO,GAAI,IAAG64K,gBAAgB,CAACD,IAAI,CAAChwV,IAAN,EAAY,IAAZ,CAAkB,EAAtD;IACA,MAAMqkF,KAAK,GAAG6rQ,oBAAoB,CAACF,IAAI,CAACz1Q,WAAN,CAAlC;IACA,MAAMt6E,QAAQ,GAAG,OAAO+vV,IAAI,CAAC/vV,QAAZ,KAA0B,QAA1B,GAAqC,IAAGkwV,iBAAiB,CAACH,IAAI,CAAC/vV,QAAN,CAAgB,EAAzE,GAA6E,EAA9F;IACA,OAAQ,GAAEm3K,OAAQ,GAAE/yF,KAAM,GAAEpkF,QAAS,EAArC;EACH;;AAZsB;;AAc3B,MAAM8uV,kBAAkB,GAAG,IAAIY,oBAAJ,EAA3B;;AACA,SAASX,cAAT,CAAwB53K,OAAxB,EAAiC;EAC7B,OAAOA,OAAO,CAACD,QAAR,CAAiBn/K,GAAjB,CAAqBiQ,CAAC,IAAImnV,aAAa,CAACnnV,CAAD,CAAvC,EAA4Ci5B,IAA5C,CAAiD,GAAjD,CAAP;AACH;;AACD,SAAS+uT,gBAAT,CAA0B74K,OAA1B,EAAmCp3K,IAAnC,EAAyC;EACrC,IAAI,CAACo3K,OAAO,CAACiuD,WAAR,EAAL,EAA4B;IACxB,OAAO2pH,cAAc,CAAC53K,OAAD,CAArB;EACH;;EACD,IAAIp3K,IAAJ,EAAU;IACN,MAAMowV,OAAO,GAAGh5K,OAAO,CAAC9f,QAAR,CAAiBi1L,cAAjB,IACZ0D,gBAAgB,CAAC74K,OAAO,CAAC9f,QAAR,CAAiBi1L,cAAjB,CAAD,EAAmC,KAAnC,CADJ,GAEZ,EAFJ;IAGA,MAAMj1L,QAAQ,GAAG,EAAjB;IACAv0J,OAAO,CAACq0K,OAAO,CAAC9f,QAAT,EAAmB,CAAC9sJ,CAAD,EAAIo/C,CAAJ,KAAU;MAChC,IAAIA,CAAC,KAAK2iS,cAAV,EAA0B;QACtBj1L,QAAQ,CAACn0J,IAAT,CAAe,GAAEymD,CAAE,IAAGqmS,gBAAgB,CAACzlV,CAAD,EAAI,KAAJ,CAAW,EAAjD;MACH;IACJ,CAJM,CAAP;IAKA,OAAO8sJ,QAAQ,CAACx5J,MAAT,GAAkB,CAAlB,GAAuB,GAAEsyV,OAAQ,IAAG94L,QAAQ,CAACp2H,IAAT,CAAc,IAAd,CAAoB,GAAxD,GAA6DkvT,OAApE;EACH,CAXD,MAYK;IACD,MAAM94L,QAAQ,GAAGk4L,oBAAoB,CAACp4K,OAAD,EAAU,CAAC5sK,CAAD,EAAIo/C,CAAJ,KAAU;MACrD,IAAIA,CAAC,KAAK2iS,cAAV,EAA0B;QACtB,OAAO,CAAC0D,gBAAgB,CAAC74K,OAAO,CAAC9f,QAAR,CAAiBi1L,cAAjB,CAAD,EAAmC,KAAnC,CAAjB,CAAP;MACH;;MACD,OAAO,CAAE,GAAE3iS,CAAE,IAAGqmS,gBAAgB,CAACzlV,CAAD,EAAI,KAAJ,CAAW,EAApC,CAAP;IACH,CALoC,CAArC,CADC,CAOD;;IACA,IAAIhM,MAAM,CAAC+D,IAAP,CAAY60K,OAAO,CAAC9f,QAApB,EAA8Bx5J,MAA9B,KAAyC,CAAzC,IAA8Cs5K,OAAO,CAAC9f,QAAR,CAAiBi1L,cAAjB,KAAoC,IAAtF,EAA4F;MACxF,OAAQ,GAAEyC,cAAc,CAAC53K,OAAD,CAAU,IAAG9f,QAAQ,CAAC,CAAD,CAAI,EAAjD;IACH;;IACD,OAAQ,GAAE03L,cAAc,CAAC53K,OAAD,CAAU,KAAI9f,QAAQ,CAACp2H,IAAT,CAAc,IAAd,CAAoB,GAA1D;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmvT,eAAT,CAAyB9nV,CAAzB,EAA4B;EACxB,OAAOmiB,kBAAkB,CAACniB,CAAD,CAAlB,CACF04B,OADE,CACM,MADN,EACc,GADd,EAEFA,OAFE,CAEM,OAFN,EAEe,GAFf,EAGFA,OAHE,CAGM,MAHN,EAGc,GAHd,EAIFA,OAJE,CAIM,OAJN,EAIe,GAJf,CAAP;AAKH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqvT,cAAT,CAAwB/nV,CAAxB,EAA2B;EACvB,OAAO8nV,eAAe,CAAC9nV,CAAD,CAAf,CAAmB04B,OAAnB,CAA2B,OAA3B,EAAoC,GAApC,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASkvT,iBAAT,CAA2B5nV,CAA3B,EAA8B;EAC1B,OAAOgoV,SAAS,CAAChoV,CAAD,CAAhB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASioV,gBAAT,CAA0BjoV,CAA1B,EAA6B;EACzB,OAAO8nV,eAAe,CAAC9nV,CAAD,CAAf,CAAmB04B,OAAnB,CAA2B,KAA3B,EAAkC,KAAlC,EAAyCA,OAAzC,CAAiD,KAAjD,EAAwD,KAAxD,EAA+DA,OAA/D,CAAuE,OAAvE,EAAgF,GAAhF,CAAP;AACH;;AACD,SAAS1E,MAAT,CAAgBh0B,CAAhB,EAAmB;EACf,OAAO0iB,kBAAkB,CAAC1iB,CAAD,CAAzB;AACH,EACD;AACA;;;AACA,SAASkoV,WAAT,CAAqBloV,CAArB,EAAwB;EACpB,OAAOg0B,MAAM,CAACh0B,CAAC,CAAC04B,OAAF,CAAU,KAAV,EAAiB,KAAjB,CAAD,CAAb;AACH;;AACD,SAASmuT,aAAT,CAAuB/1V,IAAvB,EAA6B;EACzB,OAAQ,GAAEm3V,gBAAgB,CAACn3V,IAAI,CAACA,IAAN,CAAY,GAAEq3V,qBAAqB,CAACr3V,IAAI,CAACq8E,UAAN,CAAkB,EAA/E;AACH;;AACD,SAASg7Q,qBAAT,CAA+Bv5S,MAA/B,EAAuC;EACnC,OAAO34C,MAAM,CAAC+D,IAAP,CAAY40C,MAAZ,EACFn/C,GADE,CACEgL,GAAG,IAAK,IAAGwtV,gBAAgB,CAACxtV,GAAD,CAAM,IAAGwtV,gBAAgB,CAACr5S,MAAM,CAACn0C,GAAD,CAAP,CAAc,EADpE,EAEFk+B,IAFE,CAEG,EAFH,CAAP;AAGH;;AACD,SAASgvT,oBAAT,CAA8B/4S,MAA9B,EAAsC;EAClC,MAAMw5S,SAAS,GAAGnyV,MAAM,CAAC+D,IAAP,CAAY40C,MAAZ,EACbn/C,GADa,CACRc,IAAD,IAAU;IACf,MAAMgE,KAAK,GAAGq6C,MAAM,CAACr+C,IAAD,CAApB;IACA,OAAOuJ,KAAK,CAACiqF,OAAN,CAAcxvF,KAAd,IACHA,KAAK,CAAC9E,GAAN,CAAUwS,CAAC,IAAK,GAAE8lV,cAAc,CAACx3V,IAAD,CAAO,IAAGw3V,cAAc,CAAC9lV,CAAD,CAAI,EAA5D,EAA+D02B,IAA/D,CAAoE,GAApE,CADG,GAEF,GAAEovT,cAAc,CAACx3V,IAAD,CAAO,IAAGw3V,cAAc,CAACxzV,KAAD,CAAQ,EAFrD;EAGH,CANiB,EAObzE,MAPa,CAONkQ,CAAC,IAAI,CAAC,CAACA,CAPD,CAAlB;EAQA,OAAOooV,SAAS,CAAC7yV,MAAV,GAAoB,IAAG6yV,SAAS,CAACzvT,IAAV,CAAe,GAAf,CAAoB,EAA3C,GAA+C,EAAtD;AACH;;AACD,MAAM0vT,UAAU,GAAG,eAAnB;;AACA,SAASC,aAAT,CAAuBzqQ,GAAvB,EAA4B;EACxB,MAAM7zB,KAAK,GAAG6zB,GAAG,CAAC7zB,KAAJ,CAAUq+R,UAAV,CAAd;EACA,OAAOr+R,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAR,GAAc,EAA1B;AACH;;AACD,MAAMu+R,cAAc,GAAG,WAAvB,EACA;;AACA,SAASC,gBAAT,CAA0B3qQ,GAA1B,EAA+B;EAC3B,MAAM7zB,KAAK,GAAG6zB,GAAG,CAAC7zB,KAAJ,CAAUu+R,cAAV,CAAd;EACA,OAAOv+R,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAR,GAAc,EAA1B;AACH;;AACD,MAAMy+R,oBAAoB,GAAG,SAA7B,EACA;;AACA,SAASC,uBAAT,CAAiC7qQ,GAAjC,EAAsC;EAClC,MAAM7zB,KAAK,GAAG6zB,GAAG,CAAC7zB,KAAJ,CAAUy+R,oBAAV,CAAd;EACA,OAAOz+R,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAR,GAAc,EAA1B;AACH;;AACD,MAAMq9R,SAAN,CAAgB;EACZ32V,WAAW,CAACsE,GAAD,EAAM;IACb,KAAKA,GAAL,GAAWA,GAAX;IACA,KAAK2zV,SAAL,GAAiB3zV,GAAjB;EACH;;EACDsyV,gBAAgB,GAAG;IACf,KAAKsB,eAAL,CAAqB,GAArB;;IACA,IAAI,KAAKD,SAAL,KAAmB,EAAnB,IAAyB,KAAKE,cAAL,CAAoB,GAApB,CAAzB,IAAqD,KAAKA,cAAL,CAAoB,GAApB,CAAzD,EAAmF;MAC/E,OAAO,IAAIzD,eAAJ,CAAoB,EAApB,EAAwB,EAAxB,CAAP;IACH,CAJc,CAKf;;;IACA,OAAO,IAAIA,eAAJ,CAAoB,EAApB,EAAwB,KAAK0D,aAAL,EAAxB,CAAP;EACH;;EACDvB,gBAAgB,GAAG;IACf,MAAM34S,MAAM,GAAG,EAAf;;IACA,IAAI,KAAKg6S,eAAL,CAAqB,GAArB,CAAJ,EAA+B;MAC3B,GAAG;QACC,KAAKG,eAAL,CAAqBn6S,MAArB;MACH,CAFD,QAES,KAAKg6S,eAAL,CAAqB,GAArB,CAFT;IAGH;;IACD,OAAOh6S,MAAP;EACH;;EACD44S,aAAa,GAAG;IACZ,OAAO,KAAKoB,eAAL,CAAqB,GAArB,IAA4BlmU,kBAAkB,CAAC,KAAKimU,SAAN,CAA9C,GAAiE,IAAxE;EACH;;EACDG,aAAa,GAAG;IACZ,IAAI,KAAKH,SAAL,KAAmB,EAAvB,EAA2B;MACvB,OAAO,EAAP;IACH;;IACD,KAAKC,eAAL,CAAqB,GAArB;IACA,MAAMh6K,QAAQ,GAAG,EAAjB;;IACA,IAAI,CAAC,KAAKi6K,cAAL,CAAoB,GAApB,CAAL,EAA+B;MAC3Bj6K,QAAQ,CAACh0K,IAAT,CAAc,KAAKouV,YAAL,EAAd;IACH;;IACD,OAAO,KAAKH,cAAL,CAAoB,GAApB,KAA4B,CAAC,KAAKA,cAAL,CAAoB,IAApB,CAA7B,IAA0D,CAAC,KAAKA,cAAL,CAAoB,IAApB,CAAlE,EAA6F;MACzF,KAAKI,OAAL,CAAa,GAAb;MACAr6K,QAAQ,CAACh0K,IAAT,CAAc,KAAKouV,YAAL,EAAd;IACH;;IACD,IAAIj6L,QAAQ,GAAG,EAAf;;IACA,IAAI,KAAK85L,cAAL,CAAoB,IAApB,CAAJ,EAA+B;MAC3B,KAAKI,OAAL,CAAa,GAAb;MACAl6L,QAAQ,GAAG,KAAKm6L,WAAL,CAAiB,IAAjB,CAAX;IACH;;IACD,IAAIlsS,GAAG,GAAG,EAAV;;IACA,IAAI,KAAK6rS,cAAL,CAAoB,GAApB,CAAJ,EAA8B;MAC1B7rS,GAAG,GAAG,KAAKksS,WAAL,CAAiB,KAAjB,CAAN;IACH;;IACD,IAAIt6K,QAAQ,CAACr5K,MAAT,GAAkB,CAAlB,IAAuBU,MAAM,CAAC+D,IAAP,CAAY+0J,QAAZ,EAAsBx5J,MAAtB,GAA+B,CAA1D,EAA6D;MACzDynD,GAAG,CAACgnS,cAAD,CAAH,GAAsB,IAAIoB,eAAJ,CAAoBx2K,QAApB,EAA8B7f,QAA9B,CAAtB;IACH;;IACD,OAAO/xG,GAAP;EACH,CAnDW,CAoDZ;EACA;;;EACAgsS,YAAY,GAAG;IACX,MAAMl4V,IAAI,GAAGw3V,aAAa,CAAC,KAAKK,SAAN,CAA1B;;IACA,IAAI73V,IAAI,KAAK,EAAT,IAAe,KAAK+3V,cAAL,CAAoB,GAApB,CAAnB,EAA6C;MACzC,MAAM,IAAIr0P,2DAAJ,CAAkB;MAAK;MAAvB,EAAsEywP,aAAa,IAAK,mDAAkD,KAAK0D,SAAU,IAAzJ,CAAN;IACH;;IACD,KAAKM,OAAL,CAAan4V,IAAb;IACA,OAAO,IAAI41V,UAAJ,CAAe1yT,MAAM,CAACljC,IAAD,CAArB,EAA6B,KAAKq4V,iBAAL,EAA7B,CAAP;EACH;;EACDA,iBAAiB,GAAG;IAChB,MAAMv6S,MAAM,GAAG,EAAf;;IACA,OAAO,KAAKg6S,eAAL,CAAqB,GAArB,CAAP,EAAkC;MAC9B,KAAKQ,UAAL,CAAgBx6S,MAAhB;IACH;;IACD,OAAOA,MAAP;EACH;;EACDw6S,UAAU,CAACx6S,MAAD,EAAS;IACf,MAAMn0C,GAAG,GAAG6tV,aAAa,CAAC,KAAKK,SAAN,CAAzB;;IACA,IAAI,CAACluV,GAAL,EAAU;MACN;IACH;;IACD,KAAKwuV,OAAL,CAAaxuV,GAAb;IACA,IAAIlG,KAAK,GAAG,EAAZ;;IACA,IAAI,KAAKq0V,eAAL,CAAqB,GAArB,CAAJ,EAA+B;MAC3B,MAAMS,UAAU,GAAGf,aAAa,CAAC,KAAKK,SAAN,CAAhC;;MACA,IAAIU,UAAJ,EAAgB;QACZ90V,KAAK,GAAG80V,UAAR;QACA,KAAKJ,OAAL,CAAa10V,KAAb;MACH;IACJ;;IACDq6C,MAAM,CAAC5a,MAAM,CAACv5B,GAAD,CAAP,CAAN,GAAsBu5B,MAAM,CAACz/B,KAAD,CAA5B;EACH,CApFW,CAqFZ;;;EACAw0V,eAAe,CAACn6S,MAAD,EAAS;IACpB,MAAMn0C,GAAG,GAAG+tV,gBAAgB,CAAC,KAAKG,SAAN,CAA5B;;IACA,IAAI,CAACluV,GAAL,EAAU;MACN;IACH;;IACD,KAAKwuV,OAAL,CAAaxuV,GAAb;IACA,IAAIlG,KAAK,GAAG,EAAZ;;IACA,IAAI,KAAKq0V,eAAL,CAAqB,GAArB,CAAJ,EAA+B;MAC3B,MAAMS,UAAU,GAAGX,uBAAuB,CAAC,KAAKC,SAAN,CAA1C;;MACA,IAAIU,UAAJ,EAAgB;QACZ90V,KAAK,GAAG80V,UAAR;QACA,KAAKJ,OAAL,CAAa10V,KAAb;MACH;IACJ;;IACD,MAAM+0V,UAAU,GAAGpB,WAAW,CAACztV,GAAD,CAA9B;IACA,MAAM8uV,UAAU,GAAGrB,WAAW,CAAC3zV,KAAD,CAA9B;;IACA,IAAIq6C,MAAM,CAAChvC,cAAP,CAAsB0pV,UAAtB,CAAJ,EAAuC;MACnC;MACA,IAAIE,UAAU,GAAG56S,MAAM,CAAC06S,UAAD,CAAvB;;MACA,IAAI,CAACxvV,KAAK,CAACiqF,OAAN,CAAcylQ,UAAd,CAAL,EAAgC;QAC5BA,UAAU,GAAG,CAACA,UAAD,CAAb;QACA56S,MAAM,CAAC06S,UAAD,CAAN,GAAqBE,UAArB;MACH;;MACDA,UAAU,CAAC5uV,IAAX,CAAgB2uV,UAAhB;IACH,CARD,MASK;MACD;MACA36S,MAAM,CAAC06S,UAAD,CAAN,GAAqBC,UAArB;IACH;EACJ,CAnHW,CAoHZ;;;EACAL,WAAW,CAACO,YAAD,EAAe;IACtB,MAAM76K,QAAQ,GAAG,EAAjB;IACA,KAAKq6K,OAAL,CAAa,GAAb;;IACA,OAAO,CAAC,KAAKL,eAAL,CAAqB,GAArB,CAAD,IAA8B,KAAKD,SAAL,CAAepzV,MAAf,GAAwB,CAA7D,EAAgE;MAC5D,MAAMzE,IAAI,GAAGw3V,aAAa,CAAC,KAAKK,SAAN,CAA1B;MACA,MAAMv0V,IAAI,GAAG,KAAKu0V,SAAL,CAAe73V,IAAI,CAACyE,MAApB,CAAb,CAF4D,CAG5D;MACA;;MACA,IAAInB,IAAI,KAAK,GAAT,IAAgBA,IAAI,KAAK,GAAzB,IAAgCA,IAAI,KAAK,GAA7C,EAAkD;QAC9C,MAAM,IAAIogG,2DAAJ,CAAkB;QAAK;QAAvB,EAA8DywP,aAAa,IAAK,qBAAoB,KAAKjwV,GAAI,GAA7G,CAAN;MACH;;MACD,IAAI00V,UAAU,GAAGz2V,SAAjB;;MACA,IAAInC,IAAI,CAAC8G,OAAL,CAAa,GAAb,IAAoB,CAAC,CAAzB,EAA4B;QACxB8xV,UAAU,GAAG54V,IAAI,CAACuoF,KAAL,CAAW,CAAX,EAAcvoF,IAAI,CAAC8G,OAAL,CAAa,GAAb,CAAd,CAAb;QACA,KAAKqxV,OAAL,CAAaS,UAAb;QACA,KAAKT,OAAL,CAAa,GAAb;MACH,CAJD,MAKK,IAAIQ,YAAJ,EAAkB;QACnBC,UAAU,GAAG1F,cAAb;MACH;;MACD,MAAMj1L,QAAQ,GAAG,KAAK+5L,aAAL,EAAjB;MACAl6K,QAAQ,CAAC86K,UAAD,CAAR,GAAuBzzV,MAAM,CAAC+D,IAAP,CAAY+0J,QAAZ,EAAsBx5J,MAAtB,KAAiC,CAAjC,GAAqCw5J,QAAQ,CAACi1L,cAAD,CAA7C,GACnB,IAAIoB,eAAJ,CAAoB,EAApB,EAAwBr2L,QAAxB,CADJ;MAEA,KAAK65L,eAAL,CAAqB,IAArB;IACH;;IACD,OAAOh6K,QAAP;EACH;;EACDi6K,cAAc,CAAChrQ,GAAD,EAAM;IAChB,OAAO,KAAK8qQ,SAAL,CAAe9yV,UAAf,CAA0BgoF,GAA1B,CAAP;EACH,CAlJW,CAmJZ;;;EACA+qQ,eAAe,CAAC/qQ,GAAD,EAAM;IACjB,IAAI,KAAKgrQ,cAAL,CAAoBhrQ,GAApB,CAAJ,EAA8B;MAC1B,KAAK8qQ,SAAL,GAAiB,KAAKA,SAAL,CAAelmU,SAAf,CAAyBo7D,GAAG,CAACtoF,MAA7B,CAAjB;MACA,OAAO,IAAP;IACH;;IACD,OAAO,KAAP;EACH;;EACD0zV,OAAO,CAACprQ,GAAD,EAAM;IACT,IAAI,CAAC,KAAK+qQ,eAAL,CAAqB/qQ,GAArB,CAAL,EAAgC;MAC5B,MAAM,IAAI2W,2DAAJ,CAAkB;MAAK;MAAvB,EAAuEywP,aAAa,IAAK,aAAYpnQ,GAAI,IAAzG,CAAN;IACH;EACJ;;AA/JW;;AAiKhB,SAASoyF,UAAT,CAAoB05K,aAApB,EAAmC;EAC/B,OAAOA,aAAa,CAAC/6K,QAAd,CAAuBr5K,MAAvB,GAAgC,CAAhC,GACH,IAAI6vV,eAAJ,CAAoB,EAApB,EAAwB;IAAE,CAACpB,cAAD,GAAkB2F;EAApB,CAAxB,CADG,GAEHA,aAFJ;AAGH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASC,kBAAT,CAA4BvF,YAA5B,EAA0C;EACtC,MAAMhrK,WAAW,GAAG,EAApB;;EACA,KAAK,MAAM6tK,WAAX,IAA0BjxV,MAAM,CAAC+D,IAAP,CAAYqqV,YAAY,CAACt1L,QAAzB,CAA1B,EAA8D;IAC1D,MAAMC,KAAK,GAAGq1L,YAAY,CAACt1L,QAAb,CAAsBm4L,WAAtB,CAAd;IACA,MAAM2C,cAAc,GAAGD,kBAAkB,CAAC56L,KAAD,CAAzC,CAF0D,CAG1D;;IACA,IAAI66L,cAAc,CAACj7K,QAAf,CAAwBr5K,MAAxB,GAAiC,CAAjC,IAAsCs0V,cAAc,CAAC/sH,WAAf,EAA1C,EAAwE;MACpEzjD,WAAW,CAAC6tK,WAAD,CAAX,GAA2B2C,cAA3B;IACH;EACJ;;EACD,MAAM7pV,CAAC,GAAG,IAAIolV,eAAJ,CAAoBf,YAAY,CAACz1K,QAAjC,EAA2CyK,WAA3C,CAAV;EACA,OAAOywK,oBAAoB,CAAC9pV,CAAD,CAA3B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8pV,oBAAT,CAA8B9pV,CAA9B,EAAiC;EAC7B,IAAIA,CAAC,CAACimV,gBAAF,KAAuB,CAAvB,IAA4BjmV,CAAC,CAAC+uJ,QAAF,CAAWi1L,cAAX,CAAhC,EAA4D;IACxD,MAAM7zL,CAAC,GAAGnwJ,CAAC,CAAC+uJ,QAAF,CAAWi1L,cAAX,CAAV;IACA,OAAO,IAAIoB,eAAJ,CAAoBplV,CAAC,CAAC4uK,QAAF,CAAWlsK,MAAX,CAAkBytJ,CAAC,CAACye,QAApB,CAApB,EAAmDze,CAAC,CAACpB,QAArD,CAAP;EACH;;EACD,OAAO/uJ,CAAP;AACH;;AACD,SAAS+pV,SAAT,CAAmB9nV,CAAnB,EAAsB;EAClB,OAAOA,CAAC,YAAYkjV,OAApB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM6E,aAAa,GAAG,OAAO52V,SAAP,KAAqB,WAArB,IAAoCA,SAA1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAAS62V,yBAAT,CAAmCC,UAAnC,EAA+CC,QAA/C,EAAyDn4Q,WAAW,GAAG,IAAvE,EAA6Et6E,QAAQ,GAAG,IAAxF,EAA8F;EAC1F,MAAM0yV,yBAAyB,GAAGC,2BAA2B,CAACH,UAAD,CAA7D;EACA,OAAOI,6BAA6B,CAACF,yBAAD,EAA4BD,QAA5B,EAAsCn4Q,WAAtC,EAAmDt6E,QAAnD,CAApC;AACH;;AACD,SAAS2yV,2BAAT,CAAqClyV,KAArC,EAA4C;EACxC,IAAIoyV,WAAJ;;EACA,SAASC,oCAAT,CAA8CC,YAA9C,EAA4D;IACxD,MAAMC,YAAY,GAAG,EAArB;;IACA,KAAK,MAAMC,aAAX,IAA4BF,YAAY,CAAC17L,QAAzC,EAAmD;MAC/C,MAAMt3J,IAAI,GAAG+yV,oCAAoC,CAACG,aAAD,CAAjD;MACAD,YAAY,CAACC,aAAa,CAACC,MAAf,CAAZ,GAAqCnzV,IAArC;IACH;;IACD,MAAM4sV,YAAY,GAAG,IAAIe,eAAJ,CAAoBqF,YAAY,CAACz1V,GAAjC,EAAsC01V,YAAtC,CAArB;;IACA,IAAID,YAAY,KAAKtyV,KAArB,EAA4B;MACxBoyV,WAAW,GAAGlG,YAAd;IACH;;IACD,OAAOA,YAAP;EACH;;EACD,MAAMsF,aAAa,GAAGa,oCAAoC,CAACryV,KAAK,CAACV,IAAP,CAA1D;EACA,MAAMozV,gBAAgB,GAAG56K,UAAU,CAAC05K,aAAD,CAAnC;EACA,OAAOY,WAAW,IAAIM,gBAAtB;AACH;;AACD,SAASP,6BAAT,CAAuCJ,UAAvC,EAAmDC,QAAnD,EAA6Dn4Q,WAA7D,EAA0Et6E,QAA1E,EAAoF;EAChF,IAAID,IAAI,GAAGyyV,UAAX;;EACA,OAAOzyV,IAAI,CAAC4oD,MAAZ,EAAoB;IAChB5oD,IAAI,GAAGA,IAAI,CAAC4oD,MAAZ;EACH,CAJ+E,CAKhF;EACA;EACA;;;EACA,IAAI8pS,QAAQ,CAAC50V,MAAT,KAAoB,CAAxB,EAA2B;IACvB,OAAOkyV,IAAI,CAAChwV,IAAD,EAAOA,IAAP,EAAaA,IAAb,EAAmBu6E,WAAnB,EAAgCt6E,QAAhC,CAAX;EACH;;EACD,MAAMozV,GAAG,GAAGC,iBAAiB,CAACZ,QAAD,CAA7B;;EACA,IAAIW,GAAG,CAACE,MAAJ,EAAJ,EAAkB;IACd,OAAOvD,IAAI,CAAChwV,IAAD,EAAOA,IAAP,EAAa,IAAI2tV,eAAJ,CAAoB,EAApB,EAAwB,EAAxB,CAAb,EAA0CpzQ,WAA1C,EAAuDt6E,QAAvD,CAAX;EACH;;EACD,MAAMmhD,QAAQ,GAAGoyS,kCAAkC,CAACH,GAAD,EAAMrzV,IAAN,EAAYyyV,UAAZ,CAAnD;EACA,MAAMgB,eAAe,GAAGryS,QAAQ,CAACsyS,eAAT,GACpBC,0BAA0B,CAACvyS,QAAQ,CAACwrS,YAAV,EAAwBxrS,QAAQ,CAACt+B,KAAjC,EAAwCuwU,GAAG,CAACX,QAA5C,CADN,GAEpBkB,kBAAkB,CAACxyS,QAAQ,CAACwrS,YAAV,EAAwBxrS,QAAQ,CAACt+B,KAAjC,EAAwCuwU,GAAG,CAACX,QAA5C,CAFtB;EAGA,OAAO1C,IAAI,CAAChwV,IAAD,EAAOohD,QAAQ,CAACwrS,YAAhB,EAA8B6G,eAA9B,EAA+Cl5Q,WAA/C,EAA4Dt6E,QAA5D,CAAX;AACH;;AACD,SAAS4zV,aAAT,CAAuBnzV,KAAvB,EAA8BozV,OAA9B,EAAuCpB,QAAvC,EAAiDn4Q,WAAjD,EAA8Dt6E,QAA9D,EAAwE;EACpE,IAAIyyV,QAAQ,CAAC50V,MAAT,KAAoB,CAAxB,EAA2B;IACvB,OAAOkyV,IAAI,CAAC8D,OAAO,CAAC9zV,IAAT,EAAe8zV,OAAO,CAAC9zV,IAAvB,EAA6B8zV,OAAO,CAAC9zV,IAArC,EAA2Cu6E,WAA3C,EAAwDt6E,QAAxD,CAAX;EACH;;EACD,MAAMozV,GAAG,GAAGC,iBAAiB,CAACZ,QAAD,CAA7B;;EACA,IAAIW,GAAG,CAACE,MAAJ,EAAJ,EAAkB;IACd,OAAOvD,IAAI,CAAC8D,OAAO,CAAC9zV,IAAT,EAAe8zV,OAAO,CAAC9zV,IAAvB,EAA6B,IAAI2tV,eAAJ,CAAoB,EAApB,EAAwB,EAAxB,CAA7B,EAA0DpzQ,WAA1D,EAAuEt6E,QAAvE,CAAX;EACH;;EACD,SAAS8zV,wBAAT,CAAkCC,aAAlC,EAAiD;IAC7C,MAAMC,gBAAgB,GAAGC,oBAAoB,CAACb,GAAD,EAAMS,OAAN,EAAepzV,KAAK,CAACyzV,QAAN,EAAgBC,WAA/B,EAA4CJ,aAA5C,CAA7C;IACA,MAAMpH,YAAY,GAAGqH,gBAAgB,CAACP,eAAjB,GACjBC,0BAA0B,CAACM,gBAAgB,CAACrH,YAAlB,EAAgCqH,gBAAgB,CAACnxU,KAAjD,EAAwDuwU,GAAG,CAACX,QAA5D,CADT,GAEjBkB,kBAAkB,CAACK,gBAAgB,CAACrH,YAAlB,EAAgCqH,gBAAgB,CAACnxU,KAAjD,EAAwDuwU,GAAG,CAACX,QAA5D,CAFtB;IAGA,OAAO1C,IAAI,CAAC8D,OAAO,CAAC9zV,IAAT,EAAei0V,gBAAgB,CAACrH,YAAhC,EAA8CA,YAA9C,EAA4DryQ,WAA5D,EAAyEt6E,QAAzE,CAAX;EACH,CAdmE,CAepE;EACA;EACA;EACA;;;EACA,MAAMyB,MAAM,GAAGqyV,wBAAwB,CAACrzV,KAAK,CAACyzV,QAAN,EAAgBE,cAAjB,CAAvC,CAnBoE,CAoBpE;;EACA,IAAI,OAAO14V,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAA1C,EAAqD;IACjD,MAAM24V,eAAe,GAAGP,wBAAwB,CAACrzV,KAAK,CAACyzV,QAAN,EAAgBI,uBAAjB,CAAhD;;IACA,IAAID,eAAe,CAACn2U,QAAhB,OAA+Bzc,MAAM,CAACyc,QAAP,EAAnC,EAAsD;MAClD4qF,OAAO,CAACC,IAAR,CAAc,kHAAiHtnG,MAAM,CAACyc,QAAP,EAAkB,mBAAkBm2U,eAAe,CAACn2U,QAAhB,EAA2B,0CAA9L;IACH;EACJ;;EACD,OAAOzc,MAAP;AACH;;AACD,SAAS8yV,cAAT,CAAwB1yP,OAAxB,EAAiC;EAC7B,OAAO,OAAOA,OAAP,KAAmB,QAAnB,IAA+BA,OAAO,IAAI,IAA1C,IAAkD,CAACA,OAAO,CAAC2yP,OAA3D,IAAsE,CAAC3yP,OAAO,CAAC4yP,WAAtF;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASC,oBAAT,CAA8B7yP,OAA9B,EAAuC;EACnC,OAAO,OAAOA,OAAP,KAAmB,QAAnB,IAA+BA,OAAO,IAAI,IAA1C,IAAkDA,OAAO,CAAC2yP,OAAjE;AACH;;AACD,SAASzE,IAAT,CAAc4E,OAAd,EAAuBC,eAAvB,EAAwCpB,eAAxC,EAAyDl5Q,WAAzD,EAAsEt6E,QAAtE,EAAgF;EAC5E,IAAI60V,EAAE,GAAG,EAAT;;EACA,IAAIv6Q,WAAJ,EAAiB;IACbx3E,OAAO,CAACw3E,WAAD,EAAc,CAACz9E,KAAD,EAAQhE,IAAR,KAAiB;MAClCg8V,EAAE,CAACh8V,IAAD,CAAF,GAAWuJ,KAAK,CAACiqF,OAAN,CAAcxvF,KAAd,IAAuBA,KAAK,CAAC9E,GAAN,CAAWwS,CAAD,IAAQ,GAAEA,CAAE,EAAtB,CAAvB,GAAmD,GAAE1N,KAAM,EAAtE;IACH,CAFM,CAAP;EAGH;;EACD,IAAIo1V,aAAJ;;EACA,IAAI0C,OAAO,KAAKC,eAAhB,EAAiC;IAC7B3C,aAAa,GAAGuB,eAAhB;EACH,CAFD,MAGK;IACDvB,aAAa,GAAG6C,cAAc,CAACH,OAAD,EAAUC,eAAV,EAA2BpB,eAA3B,CAA9B;EACH;;EACD,MAAMuB,OAAO,GAAGx8K,UAAU,CAAC25K,kBAAkB,CAACD,aAAD,CAAnB,CAA1B;EACA,OAAO,IAAIxE,OAAJ,CAAYsH,OAAZ,EAAqBF,EAArB,EAAyB70V,QAAzB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS80V,cAAT,CAAwBvlM,OAAxB,EAAiCylM,UAAjC,EAA6CC,UAA7C,EAAyD;EACrD,MAAM59L,QAAQ,GAAG,EAAjB;EACAv0J,OAAO,CAACysJ,OAAO,CAAC8H,QAAT,EAAmB,CAACoB,CAAD,EAAIu5L,UAAJ,KAAmB;IACzC,IAAIv5L,CAAC,KAAKu8L,UAAV,EAAsB;MAClB39L,QAAQ,CAAC26L,UAAD,CAAR,GAAuBiD,UAAvB;IACH,CAFD,MAGK;MACD59L,QAAQ,CAAC26L,UAAD,CAAR,GAAuB8C,cAAc,CAACr8L,CAAD,EAAIu8L,UAAJ,EAAgBC,UAAhB,CAArC;IACH;EACJ,CAPM,CAAP;EAQA,OAAO,IAAIvH,eAAJ,CAAoBn+L,OAAO,CAAC2nB,QAA5B,EAAsC7f,QAAtC,CAAP;AACH;;AACD,MAAM69L,UAAN,CAAiB;EACbl8V,WAAW,CAACm8V,UAAD,EAAaC,kBAAb,EAAiC3C,QAAjC,EAA2C;IAClD,KAAK0C,UAAL,GAAkBA,UAAlB;IACA,KAAKC,kBAAL,GAA0BA,kBAA1B;IACA,KAAK3C,QAAL,GAAgBA,QAAhB;;IACA,IAAI0C,UAAU,IAAI1C,QAAQ,CAAC50V,MAAT,GAAkB,CAAhC,IAAqC02V,cAAc,CAAC9B,QAAQ,CAAC,CAAD,CAAT,CAAvD,EAAsE;MAClE,MAAM,IAAI31P,2DAAJ,CAAkB;MAAK;MAAvB,EAA0Ew1P,aAAa,IAAI,4CAA3F,CAAN;IACH;;IACD,MAAM+C,aAAa,GAAG5C,QAAQ,CAACnkP,IAAT,CAAcomP,oBAAd,CAAtB;;IACA,IAAIW,aAAa,IAAIA,aAAa,KAAKrrQ,IAAI,CAACyoQ,QAAD,CAA3C,EAAuD;MACnD,MAAM,IAAI31P,2DAAJ,CAAkB;MAAK;MAAvB,EAAyEw1P,aAAa,IAAI,yCAA1F,CAAN;IACH;EACJ;;EACDgB,MAAM,GAAG;IACL,OAAO,KAAK6B,UAAL,IAAmB,KAAK1C,QAAL,CAAc50V,MAAd,KAAyB,CAA5C,IAAiD,KAAK40V,QAAL,CAAc,CAAd,KAAoB,GAA5E;EACH;;AAfY;AAiBjB;;;AACA,SAASY,iBAAT,CAA2BZ,QAA3B,EAAqC;EACjC,IAAK,OAAOA,QAAQ,CAAC,CAAD,CAAf,KAAuB,QAAxB,IAAqCA,QAAQ,CAAC50V,MAAT,KAAoB,CAAzD,IAA8D40V,QAAQ,CAAC,CAAD,CAAR,KAAgB,GAAlF,EAAuF;IACnF,OAAO,IAAIyC,UAAJ,CAAe,IAAf,EAAqB,CAArB,EAAwBzC,QAAxB,CAAP;EACH;;EACD,IAAI2C,kBAAkB,GAAG,CAAzB;EACA,IAAID,UAAU,GAAG,KAAjB;EACA,MAAM7vS,GAAG,GAAGmtS,QAAQ,CAACl8R,MAAT,CAAgB,CAACjR,GAAD,EAAMgwS,GAAN,EAAWC,MAAX,KAAsB;IAC9C,IAAI,OAAOD,GAAP,KAAe,QAAf,IAA2BA,GAAG,IAAI,IAAtC,EAA4C;MACxC,IAAIA,GAAG,CAACd,OAAR,EAAiB;QACb,MAAMA,OAAO,GAAG,EAAhB;QACA1xV,OAAO,CAACwyV,GAAG,CAACd,OAAL,EAAc,CAAC/B,QAAD,EAAW55V,IAAX,KAAoB;UACrC27V,OAAO,CAAC37V,IAAD,CAAP,GAAgB,OAAO45V,QAAP,KAAoB,QAApB,GAA+BA,QAAQ,CAACp5V,KAAT,CAAe,GAAf,CAA/B,GAAqDo5V,QAArE;QACH,CAFM,CAAP;QAGA,OAAO,CAAC,GAAGntS,GAAJ,EAAS;UAAEkvS;QAAF,CAAT,CAAP;MACH;;MACD,IAAIc,GAAG,CAACb,WAAR,EAAqB;QACjB,OAAO,CAAC,GAAGnvS,GAAJ,EAASgwS,GAAG,CAACb,WAAb,CAAP;MACH;IACJ;;IACD,IAAI,EAAE,OAAOa,GAAP,KAAe,QAAjB,CAAJ,EAAgC;MAC5B,OAAO,CAAC,GAAGhwS,GAAJ,EAASgwS,GAAT,CAAP;IACH;;IACD,IAAIC,MAAM,KAAK,CAAf,EAAkB;MACdD,GAAG,CAACj8V,KAAJ,CAAU,GAAV,EAAeyJ,OAAf,CAAuB,CAAC0yV,OAAD,EAAU3xL,SAAV,KAAwB;QAC3C,IAAIA,SAAS,IAAI,CAAb,IAAkB2xL,OAAO,KAAK,GAAlC,EAAuC,CACnC;QACH,CAFD,MAGK,IAAI3xL,SAAS,IAAI,CAAb,IAAkB2xL,OAAO,KAAK,EAAlC,EAAsC;UAAE;UACzCL,UAAU,GAAG,IAAb;QACH,CAFI,MAGA,IAAIK,OAAO,KAAK,IAAhB,EAAsB;UAAE;UACzBJ,kBAAkB;QACrB,CAFI,MAGA,IAAII,OAAO,IAAI,EAAf,EAAmB;UACpBlwS,GAAG,CAACpiD,IAAJ,CAASsyV,OAAT;QACH;MACJ,CAbD;MAcA,OAAOlwS,GAAP;IACH;;IACD,OAAO,CAAC,GAAGA,GAAJ,EAASgwS,GAAT,CAAP;EACH,CAlCW,EAkCT,EAlCS,CAAZ;EAmCA,OAAO,IAAIJ,UAAJ,CAAeC,UAAf,EAA2BC,kBAA3B,EAA+C9vS,GAA/C,CAAP;AACH;;AACD,MAAMmwS,QAAN,CAAe;EACXz8V,WAAW,CAAC2zV,YAAD,EAAe8G,eAAf,EAAgC5wU,KAAhC,EAAuC;IAC9C,KAAK8pU,YAAL,GAAoBA,YAApB;IACA,KAAK8G,eAAL,GAAuBA,eAAvB;IACA,KAAK5wU,KAAL,GAAaA,KAAb;EACH;;AALU;;AAOf,SAAS0wU,kCAAT,CAA4CH,GAA5C,EAAiDrzV,IAAjD,EAAuDuxB,MAAvD,EAA+D;EAC3D,IAAI8hU,GAAG,CAAC+B,UAAR,EAAoB;IAChB,OAAO,IAAIM,QAAJ,CAAa11V,IAAb,EAAmB,IAAnB,EAAyB,CAAzB,CAAP;EACH;;EACD,IAAI,CAACuxB,MAAL,EAAa;IACT;IACA;IACA;IACA;IACA,OAAO,IAAImkU,QAAJ,CAAa11V,IAAb,EAAmB,KAAnB,EAA0B21V,GAA1B,CAAP;EACH;;EACD,IAAIpkU,MAAM,CAACq3B,MAAP,KAAkB,IAAtB,EAA4B;IACxB,OAAO,IAAI8sS,QAAJ,CAAankU,MAAb,EAAqB,IAArB,EAA2B,CAA3B,CAAP;EACH;;EACD,MAAM8pI,QAAQ,GAAGm5L,cAAc,CAACnB,GAAG,CAACX,QAAJ,CAAa,CAAb,CAAD,CAAd,GAAkC,CAAlC,GAAsC,CAAvD;EACA,MAAM5vU,KAAK,GAAGyO,MAAM,CAAC4lJ,QAAP,CAAgBr5K,MAAhB,GAAyB,CAAzB,GAA6Bu9J,QAA3C;EACA,OAAOu6L,gCAAgC,CAACrkU,MAAD,EAASzO,KAAT,EAAgBuwU,GAAG,CAACgC,kBAApB,CAAvC;AACH;;AACD,SAASnB,oBAAT,CAA8Bb,GAA9B,EAAmCrD,IAAnC,EAAyCpD,YAAzC,EAAuDoH,aAAvD,EAAsE;EAClE,IAAIX,GAAG,CAAC+B,UAAR,EAAoB;IAChB,OAAO,IAAIM,QAAJ,CAAa1F,IAAI,CAAChwV,IAAlB,EAAwB,IAAxB,EAA8B,CAA9B,CAAP;EACH;;EACD,IAAIg0V,aAAa,KAAK,CAAC,CAAvB,EAA0B;IACtB;IACA;IACA;IACA,MAAMN,eAAe,GAAG9G,YAAY,KAAKoD,IAAI,CAAChwV,IAA9C;IACA,OAAO,IAAI01V,QAAJ,CAAa9I,YAAb,EAA2B8G,eAA3B,EAA4C,CAA5C,CAAP;EACH;;EACD,MAAMr4L,QAAQ,GAAGm5L,cAAc,CAACnB,GAAG,CAACX,QAAJ,CAAa,CAAb,CAAD,CAAd,GAAkC,CAAlC,GAAsC,CAAvD;EACA,MAAM5vU,KAAK,GAAGkxU,aAAa,GAAG34L,QAA9B;EACA,OAAOu6L,gCAAgC,CAAChJ,YAAD,EAAe9pU,KAAf,EAAsBuwU,GAAG,CAACgC,kBAA1B,CAAvC;AACH;;AACD,SAASO,gCAAT,CAA0Cv8P,KAA1C,EAAiDv2E,KAAjD,EAAwDuyU,kBAAxD,EAA4E;EACxE,IAAIjrV,CAAC,GAAGivF,KAAR;EACA,IAAIw8P,EAAE,GAAG/yU,KAAT;EACA,IAAIgzU,EAAE,GAAGT,kBAAT;;EACA,OAAOS,EAAE,GAAGD,EAAZ,EAAgB;IACZC,EAAE,IAAID,EAAN;IACAzrV,CAAC,GAAGA,CAAC,CAACw+C,MAAN;;IACA,IAAI,CAACx+C,CAAL,EAAQ;MACJ,MAAM,IAAI2yF,2DAAJ,CAAkB;MAAK;MAAvB,EAAmEw1P,aAAa,IAAI,2BAApF,CAAN;IACH;;IACDsD,EAAE,GAAGzrV,CAAC,CAAC+sK,QAAF,CAAWr5K,MAAhB;EACH;;EACD,OAAO,IAAI43V,QAAJ,CAAatrV,CAAb,EAAgB,KAAhB,EAAuByrV,EAAE,GAAGC,EAA5B,CAAP;AACH;;AACD,SAASC,UAAT,CAAoBrD,QAApB,EAA8B;EAC1B,IAAIiC,oBAAoB,CAACjC,QAAQ,CAAC,CAAD,CAAT,CAAxB,EAAuC;IACnC,OAAOA,QAAQ,CAAC,CAAD,CAAR,CAAY+B,OAAnB;EACH;;EACD,OAAO;IAAE,CAAClI,cAAD,GAAkBmG;EAApB,CAAP;AACH;;AACD,SAASkB,kBAAT,CAA4BhH,YAA5B,EAA0CpnP,UAA1C,EAAsDktP,QAAtD,EAAgE;EAC5D,IAAI,CAAC9F,YAAL,EAAmB;IACfA,YAAY,GAAG,IAAIe,eAAJ,CAAoB,EAApB,EAAwB,EAAxB,CAAf;EACH;;EACD,IAAIf,YAAY,CAACz1K,QAAb,CAAsBr5K,MAAtB,KAAiC,CAAjC,IAAsC8uV,YAAY,CAACvnH,WAAb,EAA1C,EAAsE;IAClE,OAAOsuH,0BAA0B,CAAC/G,YAAD,EAAepnP,UAAf,EAA2BktP,QAA3B,CAAjC;EACH;;EACD,MAAM7nV,CAAC,GAAGmrV,YAAY,CAACpJ,YAAD,EAAepnP,UAAf,EAA2BktP,QAA3B,CAAtB;EACA,MAAMuD,cAAc,GAAGvD,QAAQ,CAAC9wQ,KAAT,CAAe/2E,CAAC,CAACqrV,YAAjB,CAAvB;;EACA,IAAIrrV,CAAC,CAAC0nD,KAAF,IAAW1nD,CAAC,CAACsrV,SAAF,GAAcvJ,YAAY,CAACz1K,QAAb,CAAsBr5K,MAAnD,EAA2D;IACvD,MAAMsM,CAAC,GAAG,IAAIujV,eAAJ,CAAoBf,YAAY,CAACz1K,QAAb,CAAsBv1F,KAAtB,CAA4B,CAA5B,EAA+B/2E,CAAC,CAACsrV,SAAjC,CAApB,EAAiE,EAAjE,CAAV;IACA/rV,CAAC,CAACktJ,QAAF,CAAWi1L,cAAX,IACI,IAAIoB,eAAJ,CAAoBf,YAAY,CAACz1K,QAAb,CAAsBv1F,KAAtB,CAA4B/2E,CAAC,CAACsrV,SAA9B,CAApB,EAA8DvJ,YAAY,CAACt1L,QAA3E,CADJ;IAEA,OAAOq8L,0BAA0B,CAACvpV,CAAD,EAAI,CAAJ,EAAO6rV,cAAP,CAAjC;EACH,CALD,MAMK,IAAIprV,CAAC,CAAC0nD,KAAF,IAAW0jS,cAAc,CAACn4V,MAAf,KAA0B,CAAzC,EAA4C;IAC7C,OAAO,IAAI6vV,eAAJ,CAAoBf,YAAY,CAACz1K,QAAjC,EAA2C,EAA3C,CAAP;EACH,CAFI,MAGA,IAAItsK,CAAC,CAAC0nD,KAAF,IAAW,CAACq6R,YAAY,CAACvnH,WAAb,EAAhB,EAA4C;IAC7C,OAAO+wH,qBAAqB,CAACxJ,YAAD,EAAepnP,UAAf,EAA2BktP,QAA3B,CAA5B;EACH,CAFI,MAGA,IAAI7nV,CAAC,CAAC0nD,KAAN,EAAa;IACd,OAAOohS,0BAA0B,CAAC/G,YAAD,EAAe,CAAf,EAAkBqJ,cAAlB,CAAjC;EACH,CAFI,MAGA;IACD,OAAOG,qBAAqB,CAACxJ,YAAD,EAAepnP,UAAf,EAA2BktP,QAA3B,CAA5B;EACH;AACJ;;AACD,SAASiB,0BAAT,CAAoC/G,YAApC,EAAkDpnP,UAAlD,EAA8DktP,QAA9D,EAAwE;EACpE,IAAIA,QAAQ,CAAC50V,MAAT,KAAoB,CAAxB,EAA2B;IACvB,OAAO,IAAI6vV,eAAJ,CAAoBf,YAAY,CAACz1K,QAAjC,EAA2C,EAA3C,CAAP;EACH,CAFD,MAGK;IACD,MAAMs9K,OAAO,GAAGsB,UAAU,CAACrD,QAAD,CAA1B;IACA,MAAMp7L,QAAQ,GAAG,EAAjB;IACAv0J,OAAO,CAAC0xV,OAAD,EAAU,CAAC/B,QAAD,EAAWS,MAAX,KAAsB;MACnC,IAAI,OAAOT,QAAP,KAAoB,QAAxB,EAAkC;QAC9BA,QAAQ,GAAG,CAACA,QAAD,CAAX;MACH;;MACD,IAAIA,QAAQ,KAAK,IAAjB,EAAuB;QACnBp7L,QAAQ,CAAC67L,MAAD,CAAR,GAAmBS,kBAAkB,CAAChH,YAAY,CAACt1L,QAAb,CAAsB67L,MAAtB,CAAD,EAAgC3tP,UAAhC,EAA4CktP,QAA5C,CAArC;MACH;IACJ,CAPM,CAAP;IAQA3vV,OAAO,CAAC6pV,YAAY,CAACt1L,QAAd,EAAwB,CAACC,KAAD,EAAQk4L,WAAR,KAAwB;MACnD,IAAIgF,OAAO,CAAChF,WAAD,CAAP,KAAyBj0V,SAA7B,EAAwC;QACpC87J,QAAQ,CAACm4L,WAAD,CAAR,GAAwBl4L,KAAxB;MACH;IACJ,CAJM,CAAP;IAKA,OAAO,IAAIo2L,eAAJ,CAAoBf,YAAY,CAACz1K,QAAjC,EAA2C7f,QAA3C,CAAP;EACH;AACJ;;AACD,SAAS0+L,YAAT,CAAsBpJ,YAAtB,EAAoCpnP,UAApC,EAAgDktP,QAAhD,EAA0D;EACtD,IAAI2D,mBAAmB,GAAG,CAA1B;EACA,IAAIC,gBAAgB,GAAG9wP,UAAvB;EACA,MAAM+wP,OAAO,GAAG;IAAEhkS,KAAK,EAAE,KAAT;IAAgB4jS,SAAS,EAAE,CAA3B;IAA8BD,YAAY,EAAE;EAA5C,CAAhB;;EACA,OAAOI,gBAAgB,GAAG1J,YAAY,CAACz1K,QAAb,CAAsBr5K,MAAhD,EAAwD;IACpD,IAAIu4V,mBAAmB,IAAI3D,QAAQ,CAAC50V,MAApC,EACI,OAAOy4V,OAAP;IACJ,MAAMl9V,IAAI,GAAGuzV,YAAY,CAACz1K,QAAb,CAAsBm/K,gBAAtB,CAAb;IACA,MAAMx0P,OAAO,GAAG4wP,QAAQ,CAAC2D,mBAAD,CAAxB,CAJoD,CAKpD;IACA;IACA;;IACA,IAAI1B,oBAAoB,CAAC7yP,OAAD,CAAxB,EAAmC;MAC/B;IACH;;IACD,MAAM00P,IAAI,GAAI,GAAE10P,OAAQ,EAAxB;IACA,MAAMnlG,IAAI,GAAG05V,mBAAmB,GAAG3D,QAAQ,CAAC50V,MAAT,GAAkB,CAAxC,GAA4C40V,QAAQ,CAAC2D,mBAAmB,GAAG,CAAvB,CAApD,GAAgF,IAA7F;IACA,IAAIC,gBAAgB,GAAG,CAAnB,IAAwBE,IAAI,KAAKh7V,SAArC,EACI;;IACJ,IAAIg7V,IAAI,IAAI75V,IAAR,IAAiB,OAAOA,IAAP,KAAgB,QAAjC,IAA8CA,IAAI,CAAC83V,OAAL,KAAiBj5V,SAAnE,EAA8E;MAC1E,IAAI,CAACi7V,OAAO,CAACD,IAAD,EAAO75V,IAAP,EAAatD,IAAb,CAAZ,EACI,OAAOk9V,OAAP;MACJF,mBAAmB,IAAI,CAAvB;IACH,CAJD,MAKK;MACD,IAAI,CAACI,OAAO,CAACD,IAAD,EAAO,EAAP,EAAWn9V,IAAX,CAAZ,EACI,OAAOk9V,OAAP;MACJF,mBAAmB;IACtB;;IACDC,gBAAgB;EACnB;;EACD,OAAO;IAAE/jS,KAAK,EAAE,IAAT;IAAe4jS,SAAS,EAAEG,gBAA1B;IAA4CJ,YAAY,EAAEG;EAA1D,CAAP;AACH;;AACD,SAASD,qBAAT,CAA+BxJ,YAA/B,EAA6CpnP,UAA7C,EAAyDktP,QAAzD,EAAmE;EAC/D,MAAMtE,KAAK,GAAGxB,YAAY,CAACz1K,QAAb,CAAsBv1F,KAAtB,CAA4B,CAA5B,EAA+B4jB,UAA/B,CAAd;EACA,IAAIh9F,CAAC,GAAG,CAAR;;EACA,OAAOA,CAAC,GAAGkqV,QAAQ,CAAC50V,MAApB,EAA4B;IACxB,MAAMgkG,OAAO,GAAG4wP,QAAQ,CAAClqV,CAAD,CAAxB;;IACA,IAAImsV,oBAAoB,CAAC7yP,OAAD,CAAxB,EAAmC;MAC/B,MAAMw1D,QAAQ,GAAGo/L,wBAAwB,CAAC50P,OAAO,CAAC2yP,OAAT,CAAzC;MACA,OAAO,IAAI9G,eAAJ,CAAoBS,KAApB,EAA2B92L,QAA3B,CAAP;IACH,CALuB,CAMxB;;;IACA,IAAI9uJ,CAAC,KAAK,CAAN,IAAWgsV,cAAc,CAAC9B,QAAQ,CAAC,CAAD,CAAT,CAA7B,EAA4C;MACxC,MAAMzqV,CAAC,GAAG2kV,YAAY,CAACz1K,QAAb,CAAsB3xE,UAAtB,CAAV;MACA4oP,KAAK,CAACjrV,IAAN,CAAW,IAAI8rV,UAAJ,CAAehnV,CAAC,CAAC5O,IAAjB,EAAuB6gB,SAAS,CAACw4U,QAAQ,CAAC,CAAD,CAAT,CAAhC,CAAX;MACAlqV,CAAC;MACD;IACH;;IACD,MAAMguV,IAAI,GAAG7B,oBAAoB,CAAC7yP,OAAD,CAApB,GAAgCA,OAAO,CAAC2yP,OAAR,CAAgBlI,cAAhB,CAAhC,GAAmE,GAAEzqP,OAAQ,EAA1F;IACA,MAAMnlG,IAAI,GAAI6L,CAAC,GAAGkqV,QAAQ,CAAC50V,MAAT,GAAkB,CAAvB,GAA4B40V,QAAQ,CAAClqV,CAAC,GAAG,CAAL,CAApC,GAA8C,IAA3D;;IACA,IAAIguV,IAAI,IAAI75V,IAAR,IAAgB63V,cAAc,CAAC73V,IAAD,CAAlC,EAA0C;MACtCyxV,KAAK,CAACjrV,IAAN,CAAW,IAAI8rV,UAAJ,CAAeuH,IAAf,EAAqBt8U,SAAS,CAACvd,IAAD,CAA9B,CAAX;MACA6L,CAAC,IAAI,CAAL;IACH,CAHD,MAIK;MACD4lV,KAAK,CAACjrV,IAAN,CAAW,IAAI8rV,UAAJ,CAAeuH,IAAf,EAAqB,EAArB,CAAX;MACAhuV,CAAC;IACJ;EACJ;;EACD,OAAO,IAAImlV,eAAJ,CAAoBS,KAApB,EAA2B,EAA3B,CAAP;AACH;;AACD,SAASsI,wBAAT,CAAkCjC,OAAlC,EAA2C;EACvC,MAAMn9L,QAAQ,GAAG,EAAjB;EACAv0J,OAAO,CAAC0xV,OAAD,EAAU,CAAC/B,QAAD,EAAWS,MAAX,KAAsB;IACnC,IAAI,OAAOT,QAAP,KAAoB,QAAxB,EAAkC;MAC9BA,QAAQ,GAAG,CAACA,QAAD,CAAX;IACH;;IACD,IAAIA,QAAQ,KAAK,IAAjB,EAAuB;MACnBp7L,QAAQ,CAAC67L,MAAD,CAAR,GAAmBiD,qBAAqB,CAAC,IAAIzI,eAAJ,CAAoB,EAApB,EAAwB,EAAxB,CAAD,EAA8B,CAA9B,EAAiC+E,QAAjC,CAAxC;IACH;EACJ,CAPM,CAAP;EAQA,OAAOp7L,QAAP;AACH;;AACD,SAASp9I,SAAT,CAAmBi9B,MAAnB,EAA2B;EACvB,MAAMoO,GAAG,GAAG,EAAZ;EACAxiD,OAAO,CAACo0C,MAAD,EAAS,CAAC3sC,CAAD,EAAIo/C,CAAJ,KAAUrE,GAAG,CAACqE,CAAD,CAAH,GAAU,GAAEp/C,CAAE,EAAjC,CAAP;EACA,OAAO+6C,GAAP;AACH;;AACD,SAASkxS,OAAT,CAAiBp9V,IAAjB,EAAuB89C,MAAvB,EAA+BigI,OAA/B,EAAwC;EACpC,OAAO/9K,IAAI,IAAI+9K,OAAO,CAAC/9K,IAAhB,IAAwB6zV,YAAY,CAAC/1S,MAAD,EAASigI,OAAO,CAAC1hG,UAAjB,CAA3C;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMihR,WAAN,CAAkB;EACd19V,WAAW;EACX;EACAmzB,EAFW;EAGX;EACA7uB,GAJW,EAIN;IACD,KAAK6uB,EAAL,GAAUA,EAAV;IACA,KAAK7uB,GAAL,GAAWA,GAAX;EACH;;AARa;AAUlB;AACA;AACA;AACA;AACA;;;AACA,MAAMq5V,eAAN,SAA8BD,WAA9B,CAA0C;EACtC19V,WAAW;EACX;EACAmzB,EAFW;EAGX;EACA7uB,GAJW;EAKX;EACAs5V,iBAAiB,GAAG,YANT;EAOX;EACAC,aAAa,GAAG,IARL,EAQW;IAClB,MAAM1qU,EAAN,EAAU7uB,GAAV;IACA,KAAKhC,IAAL,GAAY;IAAE;IAAd;IACA,KAAKs7V,iBAAL,GAAyBA,iBAAzB;IACA,KAAKC,aAAL,GAAqBA,aAArB;EACH;EACD;;;EACA34U,QAAQ,GAAG;IACP,OAAQ,uBAAsB,KAAKiO,EAAG,WAAU,KAAK7uB,GAAI,IAAzD;EACH;;AAlBqC;AAoB1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMw5V,aAAN,SAA4BJ,WAA5B,CAAwC;EACpC19V,WAAW;EACX;EACAmzB,EAFW;EAGX;EACA7uB,GAJW;EAKX;EACAy5V,iBANW,EAMQ;IACf,MAAM5qU,EAAN,EAAU7uB,GAAV;IACA,KAAKy5V,iBAAL,GAAyBA,iBAAzB;IACA,KAAKz7V,IAAL,GAAY;IAAE;IAAd;EACH;EACD;;;EACA4iB,QAAQ,GAAG;IACP,OAAQ,qBAAoB,KAAKiO,EAAG,WAAU,KAAK7uB,GAAI,0BAAyB,KAAKy5V,iBAAkB,IAAvG;EACH;;AAfmC;AAiBxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,gBAAN,SAA+BN,WAA/B,CAA2C;EACvC19V,WAAW;EACX;EACAmzB,EAFW;EAGX;EACA7uB,GAJW;EAKX;AACJ;AACA;AACA;EACI8iJ,MATW;EAUX;AACJ;AACA;AACA;AACA;EACI/rI,IAfW,EAeL;IACF,MAAM8X,EAAN,EAAU7uB,GAAV;IACA,KAAK8iJ,MAAL,GAAcA,MAAd;IACA,KAAK/rI,IAAL,GAAYA,IAAZ;IACA,KAAK/Y,IAAL,GAAY;IAAE;IAAd;EACH;EACD;;;EACA4iB,QAAQ,GAAG;IACP,OAAQ,wBAAuB,KAAKiO,EAAG,WAAU,KAAK7uB,GAAI,IAA1D;EACH;;AAzBsC;AA2B3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM25V,eAAN,SAA8BP,WAA9B,CAA0C;EACtC19V,WAAW;EACX;EACAmzB,EAFW;EAGX;EACA7uB,GAJW;EAKX;EACA6C,KANW;EAOX;AACJ;AACA;AACA;AACA;AACA;EACImxB,MAbW,EAaH;IACJ,MAAMnF,EAAN,EAAU7uB,GAAV;IACA,KAAK6C,KAAL,GAAaA,KAAb;IACA,KAAKmxB,MAAL,GAAcA,MAAd;IACA,KAAKh2B,IAAL,GAAY;IAAE;IAAd;EACH;EACD;;;EACA4iB,QAAQ,GAAG;IACP,OAAQ,uBAAsB,KAAKiO,EAAG,WAAU,KAAK7uB,GAAI,aAAY,KAAK6C,KAAM,GAAhF;EACH;;AAvBqC;AAyB1C;AACA;AACA;AACA;AACA;;;AACA,MAAM+2V,gBAAN,SAA+BR,WAA/B,CAA2C;EACvC19V,WAAW;EACX;EACAmzB,EAFW;EAGX;EACA7uB,GAJW;EAKX;EACAy5V,iBANW;EAOX;EACA14V,KARW,EAQJ;IACH,MAAM8tB,EAAN,EAAU7uB,GAAV;IACA,KAAKy5V,iBAAL,GAAyBA,iBAAzB;IACA,KAAK14V,KAAL,GAAaA,KAAb;IACA,KAAK/C,IAAL,GAAY;IAAE;IAAd;EACH;EACD;;;EACA4iB,QAAQ,GAAG;IACP,OAAQ,wBAAuB,KAAKiO,EAAG,WAAU,KAAK7uB,GAAI,0BAAyB,KAAKy5V,iBAAkB,aAAY,KAAK14V,KAAM,GAAjI;EACH;;AAlBsC;AAoB3C;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM84V,gBAAN,SAA+BT,WAA/B,CAA2C;EACvC19V,WAAW;EACX;EACAmzB,EAFW;EAGX;EACA7uB,GAJW;EAKX;EACAy5V,iBANW;EAOX;EACA14V,KARW,EAQJ;IACH,MAAM8tB,EAAN,EAAU7uB,GAAV;IACA,KAAKy5V,iBAAL,GAAyBA,iBAAzB;IACA,KAAK14V,KAAL,GAAaA,KAAb;IACA,KAAK/C,IAAL,GAAY;IAAE;IAAd;EACH;;EACD4iB,QAAQ,GAAG;IACP,OAAQ,wBAAuB,KAAKiO,EAAG,WAAU,KAAK7uB,GAAI,0BAAyB,KAAKy5V,iBAAkB,aAAY,KAAK14V,KAAM,GAAjI;EACH;;AAjBsC;AAmB3C;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM+4V,cAAN,SAA6BV,WAA7B,CAAyC;EACrC19V,WAAW;EACX;EACAmzB,EAFW;EAGX;EACA7uB,GAJW;EAKX;EACAy5V,iBANW;EAOX;EACA14V,KARW;EASX;EACAg5V,cAVW,EAUK;IACZ,MAAMlrU,EAAN,EAAU7uB,GAAV;IACA,KAAKy5V,iBAAL,GAAyBA,iBAAzB;IACA,KAAK14V,KAAL,GAAaA,KAAb;IACA,KAAKg5V,cAAL,GAAsBA,cAAtB;IACA,KAAK/7V,IAAL,GAAY;IAAE;IAAd;EACH;;EACD4iB,QAAQ,GAAG;IACP,OAAQ,sBAAqB,KAAKiO,EAAG,WAAU,KAAK7uB,GAAI,0BAAyB,KAAKy5V,iBAAkB,aAAY,KAAK14V,KAAM,qBAAoB,KAAKg5V,cAAe,GAAvK;EACH;;AApBoC;AAsBzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,YAAN,SAA2BZ,WAA3B,CAAuC;EACnC19V,WAAW;EACX;EACAmzB,EAFW;EAGX;EACA7uB,GAJW;EAKX;EACAy5V,iBANW;EAOX;EACA14V,KARW,EAQJ;IACH,MAAM8tB,EAAN,EAAU7uB,GAAV;IACA,KAAKy5V,iBAAL,GAAyBA,iBAAzB;IACA,KAAK14V,KAAL,GAAaA,KAAb;IACA,KAAK/C,IAAL,GAAY;IAAE;IAAd;EACH;;EACD4iB,QAAQ,GAAG;IACP,OAAQ,oBAAmB,KAAKiO,EAAG,WAAU,KAAK7uB,GAAI,0BAAyB,KAAKy5V,iBAAkB,aAAY,KAAK14V,KAAM,GAA7H;EACH;;AAjBkC;AAmBvC;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMk5V,UAAN,SAAyBb,WAAzB,CAAqC;EACjC19V,WAAW;EACX;EACAmzB,EAFW;EAGX;EACA7uB,GAJW;EAKX;EACAy5V,iBANW;EAOX;EACA14V,KARW,EAQJ;IACH,MAAM8tB,EAAN,EAAU7uB,GAAV;IACA,KAAKy5V,iBAAL,GAAyBA,iBAAzB;IACA,KAAK14V,KAAL,GAAaA,KAAb;IACA,KAAK/C,IAAL,GAAY;IAAE;IAAd;EACH;;EACD4iB,QAAQ,GAAG;IACP,OAAQ,kBAAiB,KAAKiO,EAAG,WAAU,KAAK7uB,GAAI,0BAAyB,KAAKy5V,iBAAkB,aAAY,KAAK14V,KAAM,GAA3H;EACH;;AAjBgC;AAmBrC;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMm5V,oBAAN,CAA2B;EACvBx+V,WAAW;EACX;EACAyH,KAFW,EAEJ;IACH,KAAKA,KAAL,GAAaA,KAAb;IACA,KAAKnF,IAAL,GAAY;IAAE;IAAd;EACH;;EACD4iB,QAAQ,GAAG;IACP,OAAQ,8BAA6B,KAAKzd,KAAL,CAAWrH,IAAK,GAArD;EACH;;AATsB;AAW3B;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMq+V,kBAAN,CAAyB;EACrBz+V,WAAW;EACX;EACAyH,KAFW,EAEJ;IACH,KAAKA,KAAL,GAAaA,KAAb;IACA,KAAKnF,IAAL,GAAY;IAAG;IAAf;EACH;;EACD4iB,QAAQ,GAAG;IACP,OAAQ,4BAA2B,KAAKzd,KAAL,CAAWrH,IAAK,GAAnD;EACH;;AAToB;AAWzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMs+V,oBAAN,CAA2B;EACvB1+V,WAAW;EACX;EACAk7V,QAFW,EAED;IACN,KAAKA,QAAL,GAAgBA,QAAhB;IACA,KAAK54V,IAAL,GAAY;IAAG;IAAf;EACH;;EACD4iB,QAAQ,GAAG;IACP,MAAM9kB,IAAI,GAAG,KAAK86V,QAAL,CAAcyD,WAAd,IAA6B,KAAKzD,QAAL,CAAcyD,WAAd,CAA0Bv+V,IAAvD,IAA+D,EAA5E;IACA,OAAQ,+BAA8BA,IAAK,IAA3C;EACH;;AAVsB;AAY3B;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMw+V,kBAAN,CAAyB;EACrB5+V,WAAW;EACX;EACAk7V,QAFW,EAED;IACN,KAAKA,QAAL,GAAgBA,QAAhB;IACA,KAAK54V,IAAL,GAAY;IAAG;IAAf;EACH;;EACD4iB,QAAQ,GAAG;IACP,MAAM9kB,IAAI,GAAG,KAAK86V,QAAL,CAAcyD,WAAd,IAA6B,KAAKzD,QAAL,CAAcyD,WAAd,CAA0Bv+V,IAAvD,IAA+D,EAA5E;IACA,OAAQ,6BAA4BA,IAAK,IAAzC;EACH;;AAVoB;AAYzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMy+V,eAAN,CAAsB;EAClB7+V,WAAW;EACX;EACAk7V,QAFW,EAED;IACN,KAAKA,QAAL,GAAgBA,QAAhB;IACA,KAAK54V,IAAL,GAAY;IAAG;IAAf;EACH;;EACD4iB,QAAQ,GAAG;IACP,MAAM9kB,IAAI,GAAG,KAAK86V,QAAL,CAAcyD,WAAd,IAA6B,KAAKzD,QAAL,CAAcyD,WAAd,CAA0Bv+V,IAAvD,IAA+D,EAA5E;IACA,OAAQ,0BAAyBA,IAAK,IAAtC;EACH;;AAViB;AAYtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM0+V,aAAN,CAAoB;EAChB9+V,WAAW;EACX;EACAk7V,QAFW,EAED;IACN,KAAKA,QAAL,GAAgBA,QAAhB;IACA,KAAK54V,IAAL,GAAY;IAAG;IAAf;EACH;;EACD4iB,QAAQ,GAAG;IACP,MAAM9kB,IAAI,GAAG,KAAK86V,QAAL,CAAcyD,WAAd,IAA6B,KAAKzD,QAAL,CAAcyD,WAAd,CAA0Bv+V,IAAvD,IAA+D,EAA5E;IACA,OAAQ,wBAAuBA,IAAK,IAApC;EACH;;AAVe;AAYpB;AACA;AACA;AACA;AACA;;;AACA,MAAM2+V,MAAN,CAAa;EACT/+V,WAAW;EACX;EACAg/V,WAFW;EAGX;EACA72S,QAJW;EAKX;EACAm0F,MANW,EAMH;IACJ,KAAK0iN,WAAL,GAAmBA,WAAnB;IACA,KAAK72S,QAAL,GAAgBA,QAAhB;IACA,KAAKm0F,MAAL,GAAcA,MAAd;IACA,KAAKh6I,IAAL,GAAY;IAAG;IAAf;EACH;;EACD4iB,QAAQ,GAAG;IACP,MAAMolH,GAAG,GAAG,KAAKniF,QAAL,GAAiB,GAAE,KAAKA,QAAL,CAAc,CAAd,CAAiB,KAAI,KAAKA,QAAL,CAAc,CAAd,CAAiB,EAAzD,GAA6D,IAAzE;IACA,OAAQ,mBAAkB,KAAKm0F,MAAO,iBAAgBhS,GAAI,IAA1D;EACH;;AAhBQ;;AAkBb,SAAS20N,cAAT,CAAwBD,WAAxB,EAAqC;EACjC,IAAI,EAAE,UAAUA,WAAZ,CAAJ,EAA8B;IAC1B,OAAQ,yBAAwBA,WAAW,CAACh/V,WAAZ,CAAwBH,IAAK,EAA7D;EACH;;EACD,QAAQm/V,WAAW,CAAC18V,IAApB;IACI,KAAK;IAAG;IAAR;MACI,OAAQ,wBAAuB08V,WAAW,CAAC9D,QAAZ,CAAqByD,WAArB,EAAkCv+V,IAAlC,IAA0C,EAAG,IAA5E;;IACJ,KAAK;IAAG;IAAR;MACI,OAAQ,0BAAyB4+V,WAAW,CAAC9D,QAAZ,CAAqByD,WAArB,EAAkCv+V,IAAlC,IAA0C,EAAG,IAA9E;;IACJ,KAAK;IAAG;IAAR;MACI,OAAQ,6BAA4B4+V,WAAW,CAAC9D,QAAZ,CAAqByD,WAArB,EAAkCv+V,IAAlC,IAA0C,EAAG,IAAjF;;IACJ,KAAK;IAAG;IAAR;MACI,OAAQ,+BAA8B4+V,WAAW,CAAC9D,QAAZ,CAAqByD,WAArB,EAAkCv+V,IAAlC,IAA0C,EAAG,IAAnF;;IACJ,KAAK;IAAE;IAAP;MACI,OAAQ,sBAAqB4+V,WAAW,CAAC7rU,EAAG,WAAU6rU,WAAW,CAAC16V,GAAI,0BAAyB06V,WAAW,CAACjB,iBAAkB,aAAYiB,WAAW,CAAC35V,KAAM,qBAAoB25V,WAAW,CAACX,cAAe,GAA1M;;IACJ,KAAK;IAAE;IAAP;MACI,OAAQ,wBAAuBW,WAAW,CAAC7rU,EAAG,WAAU6rU,WAAW,CAAC16V,GAAI,0BAAyB06V,WAAW,CAACjB,iBAAkB,aAAYiB,WAAW,CAAC35V,KAAM,GAA7J;;IACJ,KAAK;IAAE;IAAP;MACI,OAAQ,wBAAuB25V,WAAW,CAAC7rU,EAAG,WAAU6rU,WAAW,CAAC16V,GAAI,IAAxE;;IACJ,KAAK;IAAE;IAAP;MACI,OAAQ,qBAAoB06V,WAAW,CAAC7rU,EAAG,WAAU6rU,WAAW,CAAC16V,GAAI,0BAAyB06V,WAAW,CAACjB,iBAAkB,IAA5H;;IACJ,KAAK;IAAE;IAAP;MACI,OAAQ,uBAAsBiB,WAAW,CAAC7rU,EAAG,WAAU6rU,WAAW,CAAC16V,GAAI,aAAY06V,WAAW,CAAC73V,KAAM,GAArG;;IACJ,KAAK;IAAE;IAAP;MACI,OAAQ,uBAAsB63V,WAAW,CAAC7rU,EAAG,WAAU6rU,WAAW,CAAC16V,GAAI,IAAvE;;IACJ,KAAK;IAAE;IAAP;MACI,OAAQ,kBAAiB06V,WAAW,CAAC7rU,EAAG,WAAU6rU,WAAW,CAAC16V,GAAI,0BAAyB06V,WAAW,CAACjB,iBAAkB,aAAYiB,WAAW,CAAC35V,KAAM,GAAvJ;;IACJ,KAAK;IAAE;IAAP;MACI,OAAQ,oBAAmB25V,WAAW,CAAC7rU,EAAG,WAAU6rU,WAAW,CAAC16V,GAAI,0BAAyB06V,WAAW,CAACjB,iBAAkB,aAAYiB,WAAW,CAAC35V,KAAM,GAAzJ;;IACJ,KAAK;IAAG;IAAR;MACI,OAAQ,4BAA2B25V,WAAW,CAACv3V,KAAZ,CAAkBrH,IAAK,GAA1D;;IACJ,KAAK;IAAE;IAAP;MACI,OAAQ,8BAA6B4+V,WAAW,CAACv3V,KAAZ,CAAkBrH,IAAK,GAA5D;;IACJ,KAAK;IAAE;IAAP;MACI,OAAQ,wBAAuB4+V,WAAW,CAAC7rU,EAAG,WAAU6rU,WAAW,CAAC16V,GAAI,0BAAyB06V,WAAW,CAACjB,iBAAkB,aAAYiB,WAAW,CAAC35V,KAAM,GAA7J;;IACJ,KAAK;IAAG;IAAR;MACI,MAAMilI,GAAG,GAAG00N,WAAW,CAAC72S,QAAZ,GAAwB,GAAE62S,WAAW,CAAC72S,QAAZ,CAAqB,CAArB,CAAwB,KAAI62S,WAAW,CAAC72S,QAAZ,CAAqB,CAArB,CAAwB,EAA9E,GAAkF,IAA9F;MACA,OAAQ,mBAAkB62S,WAAW,CAAC1iN,MAAO,iBAAgBhS,GAAI,IAAjE;EAjCR;AAmCH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM40N,IAAN,CAAW;EACPl/V,WAAW,CAAC+G,IAAD,EAAO;IACd,KAAKo4V,KAAL,GAAap4V,IAAb;EACH;;EACO,IAAJA,IAAI,GAAG;IACP,OAAO,KAAKo4V,KAAL,CAAWt7V,KAAlB;EACH;EACD;AACJ;AACA;;;EACI8rD,MAAM,CAAC5tD,CAAD,EAAI;IACN,MAAMiN,CAAC,GAAG,KAAKowV,YAAL,CAAkBr9V,CAAlB,CAAV;IACA,OAAOiN,CAAC,CAACnK,MAAF,GAAW,CAAX,GAAemK,CAAC,CAACA,CAAC,CAACnK,MAAF,GAAW,CAAZ,CAAhB,GAAiC,IAAxC;EACH;EACD;AACJ;AACA;;;EACIw5J,QAAQ,CAACt8J,CAAD,EAAI;IACR,MAAMyN,CAAC,GAAG6vV,QAAQ,CAACt9V,CAAD,EAAI,KAAKo9V,KAAT,CAAlB;IACA,OAAO3vV,CAAC,GAAGA,CAAC,CAAC6uJ,QAAF,CAAWt/J,GAAX,CAAegD,CAAC,IAAIA,CAAC,CAAC8B,KAAtB,CAAH,GAAkC,EAA1C;EACH;EACD;AACJ;AACA;;;EACImiQ,UAAU,CAACjkQ,CAAD,EAAI;IACV,MAAMyN,CAAC,GAAG6vV,QAAQ,CAACt9V,CAAD,EAAI,KAAKo9V,KAAT,CAAlB;IACA,OAAO3vV,CAAC,IAAIA,CAAC,CAAC6uJ,QAAF,CAAWx5J,MAAX,GAAoB,CAAzB,GAA6B2K,CAAC,CAAC6uJ,QAAF,CAAW,CAAX,EAAcx6J,KAA3C,GAAmD,IAA1D;EACH;EACD;AACJ;AACA;;;EACIy7V,QAAQ,CAACv9V,CAAD,EAAI;IACR,MAAMiN,CAAC,GAAGuwV,QAAQ,CAACx9V,CAAD,EAAI,KAAKo9V,KAAT,CAAlB;IACA,IAAInwV,CAAC,CAACnK,MAAF,GAAW,CAAf,EACI,OAAO,EAAP;IACJ,MAAM46J,CAAC,GAAGzwJ,CAAC,CAACA,CAAC,CAACnK,MAAF,GAAW,CAAZ,CAAD,CAAgBw5J,QAAhB,CAAyBt/J,GAAzB,CAA6B0gK,CAAC,IAAIA,CAAC,CAAC57J,KAApC,CAAV;IACA,OAAO47J,CAAC,CAACrgK,MAAF,CAASogW,EAAE,IAAIA,EAAE,KAAKz9V,CAAtB,CAAP;EACH;EACD;AACJ;AACA;;;EACIq9V,YAAY,CAACr9V,CAAD,EAAI;IACZ,OAAOw9V,QAAQ,CAACx9V,CAAD,EAAI,KAAKo9V,KAAT,CAAR,CAAwBpgW,GAAxB,CAA4BuQ,CAAC,IAAIA,CAAC,CAACzL,KAAnC,CAAP;EACH;;AA3CM,EA6CX;;;AACA,SAASw7V,QAAT,CAAkBx7V,KAAlB,EAAyB6qG,IAAzB,EAA+B;EAC3B,IAAI7qG,KAAK,KAAK6qG,IAAI,CAAC7qG,KAAnB,EACI,OAAO6qG,IAAP;;EACJ,KAAK,MAAM4vD,KAAX,IAAoB5vD,IAAI,CAAC2vD,QAAzB,EAAmC;IAC/B,MAAM3vD,IAAI,GAAG2wP,QAAQ,CAACx7V,KAAD,EAAQy6J,KAAR,CAArB;IACA,IAAI5vD,IAAJ,EACI,OAAOA,IAAP;EACP;;EACD,OAAO,IAAP;AACH,EACD;;;AACA,SAAS6wP,QAAT,CAAkB17V,KAAlB,EAAyB6qG,IAAzB,EAA+B;EAC3B,IAAI7qG,KAAK,KAAK6qG,IAAI,CAAC7qG,KAAnB,EACI,OAAO,CAAC6qG,IAAD,CAAP;;EACJ,KAAK,MAAM4vD,KAAX,IAAoB5vD,IAAI,CAAC2vD,QAAzB,EAAmC;IAC/B,MAAMj+J,IAAI,GAAGm/V,QAAQ,CAAC17V,KAAD,EAAQy6J,KAAR,CAArB;;IACA,IAAIl+J,IAAI,CAACyE,MAAT,EAAiB;MACbzE,IAAI,CAAC2oH,OAAL,CAAara,IAAb;MACA,OAAOtuG,IAAP;IACH;EACJ;;EACD,OAAO,EAAP;AACH;;AACD,MAAMq/V,QAAN,CAAe;EACXz/V,WAAW,CAAC6D,KAAD,EAAQw6J,QAAR,EAAkB;IACzB,KAAKx6J,KAAL,GAAaA,KAAb;IACA,KAAKw6J,QAAL,GAAgBA,QAAhB;EACH;;EACDn5I,QAAQ,GAAG;IACP,OAAQ,YAAW,KAAKrhB,KAAM,GAA9B;EACH;;AAPU,EASf;;;AACA,SAAS67V,iBAAT,CAA2BhxP,IAA3B,EAAiC;EAC7B,MAAM3vG,GAAG,GAAG,EAAZ;;EACA,IAAI2vG,IAAJ,EAAU;IACNA,IAAI,CAAC2vD,QAAL,CAAcv0J,OAAd,CAAsBw0J,KAAK,IAAIv/J,GAAG,CAACu/J,KAAK,CAACz6J,KAAN,CAAYq2V,MAAb,CAAH,GAA0B57L,KAAzD;EACH;;EACD,OAAOv/J,GAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM4gW,WAAN,SAA0BT,IAA1B,CAA+B;EAC3B;EACAl/V,WAAW,CAAC+G,IAAD;EACX;EACAm0V,QAFW,EAED;IACN,MAAMn0V,IAAN;IACA,KAAKm0V,QAAL,GAAgBA,QAAhB;IACA0E,cAAc,CAAC,IAAD,EAAO74V,IAAP,CAAd;EACH;;EACDme,QAAQ,GAAG;IACP,OAAO,KAAKg2U,QAAL,CAAch2U,QAAd,EAAP;EACH;;AAX0B;;AAa/B,SAAS26U,gBAAT,CAA0BhF,OAA1B,EAAmCp9E,aAAnC,EAAkD;EAC9C,MAAMy9E,QAAQ,GAAG4E,wBAAwB,CAACjF,OAAD,EAAUp9E,aAAV,CAAzC;EACA,MAAMsiF,QAAQ,GAAG,IAAIphW,iDAAJ,CAAoB,CAAC,IAAIq3V,UAAJ,CAAe,EAAf,EAAmB,EAAnB,CAAD,CAApB,CAAjB;EACA,MAAMgK,WAAW,GAAG,IAAIrhW,iDAAJ,CAAoB,EAApB,CAApB;EACA,MAAMshW,SAAS,GAAG,IAAIthW,iDAAJ,CAAoB,EAApB,CAAlB;EACA,MAAMuhW,gBAAgB,GAAG,IAAIvhW,iDAAJ,CAAoB,EAApB,CAAzB;EACA,MAAMqI,QAAQ,GAAG,IAAIrI,iDAAJ,CAAoB,EAApB,CAAjB;EACA,MAAMwhW,SAAS,GAAG,IAAIC,cAAJ,CAAmBL,QAAnB,EAA6BC,WAA7B,EAA0CE,gBAA1C,EAA4Dl5V,QAA5D,EAAsEi5V,SAAtE,EAAiF3M,cAAjF,EAAiG71E,aAAjG,EAAgHy9E,QAAQ,CAACn0V,IAAzH,CAAlB;EACAo5V,SAAS,CAACjF,QAAV,GAAqBA,QAAQ,CAACn0V,IAA9B;EACA,OAAO,IAAI44V,WAAJ,CAAgB,IAAIF,QAAJ,CAAaU,SAAb,EAAwB,EAAxB,CAAhB,EAA6CjF,QAA7C,CAAP;AACH;;AACD,SAAS4E,wBAAT,CAAkCjF,OAAlC,EAA2Cp9E,aAA3C,EAA0D;EACtD,MAAMuiF,WAAW,GAAG,EAApB;EACA,MAAMC,SAAS,GAAG,EAAlB;EACA,MAAMC,gBAAgB,GAAG,EAAzB;EACA,MAAMl5V,QAAQ,GAAG,EAAjB;EACA,MAAMm5V,SAAS,GAAG,IAAIE,sBAAJ,CAA2B,EAA3B,EAA+BL,WAA/B,EAA4CE,gBAA5C,EAA8Dl5V,QAA9D,EAAwEi5V,SAAxE,EAAmF3M,cAAnF,EAAmG71E,aAAnG,EAAkH,IAAlH,EAAwHo9E,OAAO,CAAC9zV,IAAhI,EAAsI,CAAC,CAAvI,EAA0I,EAA1I,CAAlB;EACA,OAAO,IAAIu5V,mBAAJ,CAAwB,EAAxB,EAA4B,IAAIb,QAAJ,CAAaU,SAAb,EAAwB,EAAxB,CAA5B,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,cAAN,CAAqB;EACjB;EACApgW,WAAW;EACX;EACAsE,GAFW;EAGX;EACA45C,MAJW;EAKX;EACAojC,WANW;EAOX;EACAt6E,QARW;EASX;EACAod,IAVW;EAWX;EACA81U,MAZW;EAaX;EACA/hF,SAdW,EAcAooF,cAdA,EAcgB;IACvB,KAAKj8V,GAAL,GAAWA,GAAX;IACA,KAAK45C,MAAL,GAAcA,MAAd;IACA,KAAKojC,WAAL,GAAmBA,WAAnB;IACA,KAAKt6E,QAAL,GAAgBA,QAAhB;IACA,KAAKod,IAAL,GAAYA,IAAZ;IACA,KAAK81U,MAAL,GAAcA,MAAd;IACA,KAAK/hF,SAAL,GAAiBA,SAAjB;IACA;;IACA,KAAK/9N,KAAL,GAAa,KAAKh2B,IAAL,EAAWze,IAAX,CAAgB5G,mDAAG,CAAE6P,CAAD,IAAOA,CAAC,CAAC2kV,aAAD,CAAT,CAAnB,KAAiD30V,wCAAE,CAAC2D,SAAD,CAAhE;IACA,KAAKi+V,eAAL,GAAuBD,cAAvB;EACH;EACD;;;EACe,IAAX5B,WAAW,GAAG;IACd,OAAO,KAAK6B,eAAL,CAAqB7B,WAA5B;EACH;EACD;;;EACQ,IAAJ53V,IAAI,GAAG;IACP,OAAO,KAAK05V,YAAL,CAAkB15V,IAAzB;EACH;EACD;;;EACU,IAAN4oD,MAAM,GAAG;IACT,OAAO,KAAK8wS,YAAL,CAAkB9wS,MAAlB,CAAyB,IAAzB,CAAP;EACH;EACD;;;EACc,IAAVq2M,UAAU,GAAG;IACb,OAAO,KAAKy6F,YAAL,CAAkBz6F,UAAlB,CAA6B,IAA7B,CAAP;EACH;EACD;;;EACY,IAAR3nG,QAAQ,GAAG;IACX,OAAO,KAAKoiM,YAAL,CAAkBpiM,QAAlB,CAA2B,IAA3B,CAAP;EACH;EACD;;;EACgB,IAAZ+gM,YAAY,GAAG;IACf,OAAO,KAAKqB,YAAL,CAAkBrB,YAAlB,CAA+B,IAA/B,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACgB,IAARsB,QAAQ,GAAG;IACX,IAAI,CAAC,KAAKC,SAAV,EAAqB;MACjB,KAAKA,SAAL,GAAiB,KAAKziT,MAAL,CAAYv4C,IAAZ,CAAiB5G,mDAAG,CAAEiQ,CAAD,IAAOykV,iBAAiB,CAACzkV,CAAD,CAAzB,CAApB,CAAjB;IACH;;IACD,OAAO,KAAK2xV,SAAZ;EACH;EACD;AACJ;AACA;AACA;;;EACqB,IAAb/K,aAAa,GAAG;IAChB,IAAI,CAAC,KAAKC,cAAV,EAA0B;MACtB,KAAKA,cAAL,GACI,KAAKv0Q,WAAL,CAAiB37E,IAAjB,CAAsB5G,mDAAG,CAAEiQ,CAAD,IAAOykV,iBAAiB,CAACzkV,CAAD,CAAzB,CAAzB,CADJ;IAEH;;IACD,OAAO,KAAK6mV,cAAZ;EACH;;EACD3wU,QAAQ,GAAG;IACP,OAAO,KAAKg2U,QAAL,GAAgB,KAAKA,QAAL,CAAch2U,QAAd,EAAhB,GAA4C,UAAS,KAAKs7U,eAAgB,GAAjF;EACH;;AA5EgB;AA8ErB;AACA;AACA;AACA;AACA;;;AACA,SAASI,0BAAT,CAAoCn5V,KAApC,EAA2Co5V,yBAAyB,GAAG,WAAvE,EAAoF;EAChF,MAAMzB,YAAY,GAAG33V,KAAK,CAAC23V,YAA3B;EACA,IAAI0B,sBAAsB,GAAG,CAA7B;;EACA,IAAID,yBAAyB,KAAK,QAAlC,EAA4C;IACxCC,sBAAsB,GAAG1B,YAAY,CAACv6V,MAAb,GAAsB,CAA/C;;IACA,OAAOi8V,sBAAsB,IAAI,CAAjC,EAAoC;MAChC,MAAMvqM,OAAO,GAAG6oM,YAAY,CAAC0B,sBAAD,CAA5B;MACA,MAAMnxS,MAAM,GAAGyvS,YAAY,CAAC0B,sBAAsB,GAAG,CAA1B,CAA3B,CAFgC,CAGhC;;MACA,IAAIvqM,OAAO,CAACooM,WAAR,IAAuBpoM,OAAO,CAACooM,WAAR,CAAoBv+V,IAApB,KAA6B,EAAxD,EAA4D;QACxD0gW,sBAAsB,GADkC,CAExD;MACH,CAHD,MAIK,IAAI,CAACnxS,MAAM,CAACwoN,SAAZ,EAAuB;QACxB2oF,sBAAsB;MACzB,CAFI,MAGA;QACD;MACH;IACJ;EACJ;;EACD,OAAOC,gBAAgB,CAAC3B,YAAY,CAACz2Q,KAAb,CAAmBm4Q,sBAAnB,CAAD,CAAvB;AACH;AACD;;;AACA,SAASC,gBAAT,CAA0B3B,YAA1B,EAAwC;EACpC,OAAOA,YAAY,CAAC7hS,MAAb,CAAoB,CAACjR,GAAD,EAAMixS,IAAN,KAAe;IACtC,MAAMr/S,MAAM,GAAG,EAAE,GAAGoO,GAAG,CAACpO,MAAT;MAAiB,GAAGq/S,IAAI,CAACr/S;IAAzB,CAAf;IACA,MAAM95B,IAAI,GAAG,EAAE,GAAGkoC,GAAG,CAACloC,IAAT;MAAe,GAAGm5U,IAAI,CAACn5U;IAAvB,CAAb;IACA,MAAM3V,OAAO,GAAG,EAAE,GAAG8uV,IAAI,CAACn5U,IAAV;MAAgB,GAAGkoC,GAAG,CAAC79C,OAAvB;MAAgC,GAAG8uV,IAAI,CAACoB,WAAL,EAAkBv6U,IAArD;MAA2D,GAAGm5U,IAAI,CAACyD;IAAnE,CAAhB;IACA,OAAO;MAAE9iT,MAAF;MAAU95B,IAAV;MAAgB3V;IAAhB,CAAP;EACH,CALM,EAKJ;IAAEyvC,MAAM,EAAE,EAAV;IAAc95B,IAAI,EAAE,EAApB;IAAwB3V,OAAO,EAAE;EAAjC,CALI,CAAP;AAMH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM4xV,sBAAN,CAA6B;EACzB;EACArgW,WAAW;EACX;EACAsE,GAFW;EAGX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACI45C,MAtBW;EAuBX;EACAojC,WAxBW;EAyBX;EACAt6E,QA1BW;EA2BX;EACAod,IA5BW;EA6BX;EACA81U,MA9BW;EA+BX;EACA/hF,SAhCW,EAgCAwmF,WAhCA,EAgCasC,UAhCb,EAgCyBlG,aAhCzB,EAgCwCtsV,OAhCxC,EAgCiDyyV,sBAhCjD,EAgCyE;IAChF,KAAK58V,GAAL,GAAWA,GAAX;IACA,KAAK45C,MAAL,GAAcA,MAAd;IACA,KAAKojC,WAAL,GAAmBA,WAAnB;IACA,KAAKt6E,QAAL,GAAgBA,QAAhB;IACA,KAAKod,IAAL,GAAYA,IAAZ;IACA,KAAK81U,MAAL,GAAcA,MAAd;IACA,KAAK/hF,SAAL,GAAiBA,SAAjB;IACA;;IACA,KAAK/9N,KAAL,GAAa,KAAKh2B,IAAL,GAAYmvU,aAAZ,CAAb;IACA,KAAKoL,WAAL,GAAmBA,WAAnB;IACA,KAAKxD,WAAL,GAAmB8F,UAAnB;IACA,KAAK7F,cAAL,GAAsBL,aAAtB;IACA,KAAKO,uBAAL,GAA+B4F,sBAAsB,IAAInG,aAAzD;IACA,KAAKoG,QAAL,GAAgB1yV,OAAhB;EACH;EACD;;;EACQ,IAAJ1H,IAAI,GAAG;IACP,OAAO,KAAK05V,YAAL,CAAkB15V,IAAzB;EACH;EACD;;;EACU,IAAN4oD,MAAM,GAAG;IACT,OAAO,KAAK8wS,YAAL,CAAkB9wS,MAAlB,CAAyB,IAAzB,CAAP;EACH;EACD;;;EACc,IAAVq2M,UAAU,GAAG;IACb,OAAO,KAAKy6F,YAAL,CAAkBz6F,UAAlB,CAA6B,IAA7B,CAAP;EACH;EACD;;;EACY,IAAR3nG,QAAQ,GAAG;IACX,OAAO,KAAKoiM,YAAL,CAAkBpiM,QAAlB,CAA2B,IAA3B,CAAP;EACH;EACD;;;EACgB,IAAZ+gM,YAAY,GAAG;IACf,OAAO,KAAKqB,YAAL,CAAkBrB,YAAlB,CAA+B,IAA/B,CAAP;EACH;;EACW,IAARsB,QAAQ,GAAG;IACX,IAAI,CAAC,KAAKC,SAAV,EAAqB;MACjB,KAAKA,SAAL,GAAiBlN,iBAAiB,CAAC,KAAKv1S,MAAN,CAAlC;IACH;;IACD,OAAO,KAAKyiT,SAAZ;EACH;;EACgB,IAAb/K,aAAa,GAAG;IAChB,IAAI,CAAC,KAAKC,cAAV,EAA0B;MACtB,KAAKA,cAAL,GAAsBpC,iBAAiB,CAAC,KAAKnyQ,WAAN,CAAvC;IACH;;IACD,OAAO,KAAKu0Q,cAAZ;EACH;;EACD3wU,QAAQ,GAAG;IACP,MAAM5gB,GAAG,GAAG,KAAKA,GAAL,CAASvF,GAAT,CAAao/K,OAAO,IAAIA,OAAO,CAACj5J,QAAR,EAAxB,EAA4C+iB,IAA5C,CAAiD,GAAjD,CAAZ;IACA,MAAMorG,OAAO,GAAG,KAAKsrN,WAAL,GAAmB,KAAKA,WAAL,CAAiBv+V,IAApC,GAA2C,EAA3D;IACA,OAAQ,cAAakE,GAAI,YAAW+uI,OAAQ,IAA5C;EACH;;AAtFwB;AAwF7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMitN,mBAAN,SAAkCpB,IAAlC,CAAuC;EACnC;EACAl/V,WAAW;EACX;EACAsE,GAFW,EAENyC,IAFM,EAEA;IACP,MAAMA,IAAN;IACA,KAAKzC,GAAL,GAAWA,GAAX;IACAs7V,cAAc,CAAC,IAAD,EAAO74V,IAAP,CAAd;EACH;;EACDme,QAAQ,GAAG;IACP,OAAOk8U,aAAa,CAAC,KAAKjC,KAAN,CAApB;EACH;;AAXkC;;AAavC,SAASS,cAAT,CAAwBv6V,KAAxB,EAA+BqpG,IAA/B,EAAqC;EACjCA,IAAI,CAAC7qG,KAAL,CAAW48V,YAAX,GAA0Bp7V,KAA1B;EACAqpG,IAAI,CAAC2vD,QAAL,CAAcv0J,OAAd,CAAsB21J,CAAC,IAAImgM,cAAc,CAACv6V,KAAD,EAAQo6J,CAAR,CAAzC;AACH;;AACD,SAAS2hM,aAAT,CAAuB1yP,IAAvB,EAA6B;EACzB,MAAM+wD,CAAC,GAAG/wD,IAAI,CAAC2vD,QAAL,CAAcx5J,MAAd,GAAuB,CAAvB,GAA4B,MAAK6pG,IAAI,CAAC2vD,QAAL,CAAct/J,GAAd,CAAkBqiW,aAAlB,EAAiCn5T,IAAjC,CAAsC,IAAtC,CAA4C,KAA7E,GAAoF,EAA9F;EACA,OAAQ,GAAEymE,IAAI,CAAC7qG,KAAM,GAAE47J,CAAE,EAAzB;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAAS4hM,qBAAT,CAA+B55V,KAA/B,EAAsC;EAClC,IAAIA,KAAK,CAACyzV,QAAV,EAAoB;IAChB,MAAMppO,eAAe,GAAGrqH,KAAK,CAACyzV,QAA9B;IACA,MAAMoG,YAAY,GAAG75V,KAAK,CAAC+4V,eAA3B;IACA/4V,KAAK,CAACyzV,QAAN,GAAiBoG,YAAjB;;IACA,IAAI,CAACrN,YAAY,CAACniO,eAAe,CAACxwC,WAAjB,EAA8BggR,YAAY,CAAChgR,WAA3C,CAAjB,EAA0E;MACtE75E,KAAK,CAAC65E,WAAN,CAAkB59E,IAAlB,CAAuB49V,YAAY,CAAChgR,WAApC;IACH;;IACD,IAAIwwC,eAAe,CAAC9qH,QAAhB,KAA6Bs6V,YAAY,CAACt6V,QAA9C,EAAwD;MACpDS,KAAK,CAACT,QAAN,CAAetD,IAAf,CAAoB49V,YAAY,CAACt6V,QAAjC;IACH;;IACD,IAAI,CAACitV,YAAY,CAACniO,eAAe,CAAC5zE,MAAjB,EAAyBojT,YAAY,CAACpjT,MAAtC,CAAjB,EAAgE;MAC5Dz2C,KAAK,CAACy2C,MAAN,CAAax6C,IAAb,CAAkB49V,YAAY,CAACpjT,MAA/B;IACH;;IACD,IAAI,CAAC81S,kBAAkB,CAACliO,eAAe,CAACxtH,GAAjB,EAAsBg9V,YAAY,CAACh9V,GAAnC,CAAvB,EAAgE;MAC5DmD,KAAK,CAACnD,GAAN,CAAUZ,IAAV,CAAe49V,YAAY,CAACh9V,GAA5B;IACH;;IACD,IAAI,CAAC2vV,YAAY,CAACniO,eAAe,CAAC1tG,IAAjB,EAAuBk9U,YAAY,CAACl9U,IAApC,CAAjB,EAA4D;MACxD3c,KAAK,CAAC2c,IAAN,CAAW1gB,IAAX,CAAgB49V,YAAY,CAACl9U,IAA7B;IACH;EACJ,CAnBD,MAoBK;IACD3c,KAAK,CAACyzV,QAAN,GAAiBzzV,KAAK,CAAC+4V,eAAvB,CADC,CAED;;IACA/4V,KAAK,CAAC2c,IAAN,CAAW1gB,IAAX,CAAgB+D,KAAK,CAAC+4V,eAAN,CAAsBp8U,IAAtC;EACH;AACJ;;AACD,SAASm9U,yBAAT,CAAmC3wS,CAAnC,EAAsC/hD,CAAtC,EAAyC;EACrC,MAAM2yV,cAAc,GAAGvN,YAAY,CAACrjS,CAAC,CAAC1S,MAAH,EAAWrvC,CAAC,CAACqvC,MAAb,CAAZ,IAAoCk4S,aAAa,CAACxlS,CAAC,CAACtsD,GAAH,EAAQuK,CAAC,CAACvK,GAAV,CAAxE;EACA,MAAMm9V,eAAe,GAAG,CAAC7wS,CAAC,CAACjB,MAAH,KAAc,CAAC9gD,CAAC,CAAC8gD,MAAzC;EACA,OAAO6xS,cAAc,IAAI,CAACC,eAAnB,KACF,CAAC7wS,CAAC,CAACjB,MAAH,IAAa4xS,yBAAyB,CAAC3wS,CAAC,CAACjB,MAAH,EAAW9gD,CAAC,CAAC8gD,MAAb,CADpC,CAAP;AAEH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+xS,iBAAT,CAA2BC,kBAA3B,EAA+CpE,IAA/C,EAAqDqE,SAArD,EAAgE;EAC5D,MAAM76V,IAAI,GAAG86V,UAAU,CAACF,kBAAD,EAAqBpE,IAAI,CAAC4B,KAA1B,EAAiCyC,SAAS,GAAGA,SAAS,CAACzC,KAAb,GAAqB58V,SAA/D,CAAvB;EACA,OAAO,IAAIo9V,WAAJ,CAAgB54V,IAAhB,EAAsBw2V,IAAtB,CAAP;AACH;;AACD,SAASsE,UAAT,CAAoBF,kBAApB,EAAwCpE,IAAxC,EAA8CqE,SAA9C,EAAyD;EACrD;EACA,IAAIA,SAAS,IAAID,kBAAkB,CAACG,gBAAnB,CAAoCvE,IAAI,CAAC15V,KAAzC,EAAgD+9V,SAAS,CAAC/9V,KAAV,CAAgBq3V,QAAhE,CAAjB,EAA4F;IACxF,MAAMr3V,KAAK,GAAG+9V,SAAS,CAAC/9V,KAAxB;IACAA,KAAK,CAAC28V,eAAN,GAAwBjD,IAAI,CAAC15V,KAA7B;IACA,MAAMw6J,QAAQ,GAAG0jM,qBAAqB,CAACJ,kBAAD,EAAqBpE,IAArB,EAA2BqE,SAA3B,CAAtC;IACA,OAAO,IAAInC,QAAJ,CAAa57V,KAAb,EAAoBw6J,QAApB,CAAP;EACH,CALD,MAMK;IACD,IAAIsjM,kBAAkB,CAACK,YAAnB,CAAgCzE,IAAI,CAAC15V,KAArC,CAAJ,EAAiD;MAC7C;MACA,MAAMo+V,mBAAmB,GAAGN,kBAAkB,CAACO,QAAnB,CAA4B3E,IAAI,CAAC15V,KAAjC,CAA5B;;MACA,IAAIo+V,mBAAmB,KAAK,IAA5B,EAAkC;QAC9B,MAAMlL,IAAI,GAAGkL,mBAAmB,CAACx6V,KAAjC;QACAsvV,IAAI,CAAClzV,KAAL,CAAW28V,eAAX,GAA6BjD,IAAI,CAAC15V,KAAlC;QACAkzV,IAAI,CAAC14L,QAAL,GAAgBk/L,IAAI,CAACl/L,QAAL,CAAct/J,GAAd,CAAkB0gK,CAAC,IAAIoiM,UAAU,CAACF,kBAAD,EAAqBliM,CAArB,CAAjC,CAAhB;QACA,OAAOs3L,IAAP;MACH;IACJ;;IACD,MAAMlzV,KAAK,GAAGs+V,oBAAoB,CAAC5E,IAAI,CAAC15V,KAAN,CAAlC;IACA,MAAMw6J,QAAQ,GAAGk/L,IAAI,CAACl/L,QAAL,CAAct/J,GAAd,CAAkB0gK,CAAC,IAAIoiM,UAAU,CAACF,kBAAD,EAAqBliM,CAArB,CAAjC,CAAjB;IACA,OAAO,IAAIggM,QAAJ,CAAa57V,KAAb,EAAoBw6J,QAApB,CAAP;EACH;AACJ;;AACD,SAAS0jM,qBAAT,CAA+BJ,kBAA/B,EAAmDpE,IAAnD,EAAyDqE,SAAzD,EAAoE;EAChE,OAAOrE,IAAI,CAACl/L,QAAL,CAAct/J,GAAd,CAAkBu/J,KAAK,IAAI;IAC9B,KAAK,MAAMtvJ,CAAX,IAAgB4yV,SAAS,CAACvjM,QAA1B,EAAoC;MAChC,IAAIsjM,kBAAkB,CAACG,gBAAnB,CAAoCxjM,KAAK,CAACz6J,KAA1C,EAAiDmL,CAAC,CAACnL,KAAF,CAAQq3V,QAAzD,CAAJ,EAAwE;QACpE,OAAO2G,UAAU,CAACF,kBAAD,EAAqBrjM,KAArB,EAA4BtvJ,CAA5B,CAAjB;MACH;IACJ;;IACD,OAAO6yV,UAAU,CAACF,kBAAD,EAAqBrjM,KAArB,CAAjB;EACH,CAPM,CAAP;AAQH;;AACD,SAAS6jM,oBAAT,CAA8B1iM,CAA9B,EAAiC;EAC7B,OAAO,IAAI2gM,cAAJ,CAAmB,IAAIzhW,iDAAJ,CAAoB8gK,CAAC,CAACn7J,GAAtB,CAAnB,EAA+C,IAAI3F,iDAAJ,CAAoB8gK,CAAC,CAACvhH,MAAtB,CAA/C,EAA8E,IAAIv/C,iDAAJ,CAAoB8gK,CAAC,CAACn+E,WAAtB,CAA9E,EAAkH,IAAI3iF,iDAAJ,CAAoB8gK,CAAC,CAACz4J,QAAtB,CAAlH,EAAmJ,IAAIrI,iDAAJ,CAAoB8gK,CAAC,CAACr7I,IAAtB,CAAnJ,EAAgLq7I,CAAC,CAACy6L,MAAlL,EAA0Lz6L,CAAC,CAAC04G,SAA5L,EAAuM14G,CAAvM,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM2iM,0BAA0B,GAAG,4BAAnC;;AACA,SAASC,0BAAT,CAAoCC,aAApC,EAAmDC,QAAnD,EAA6D;EACzD,MAAM;IAAEC,UAAF;IAAcC;EAAd,IAA4CpJ,SAAS,CAACkJ,QAAD,CAAT,GAAsB;IAAEC,UAAU,EAAED,QAAd;IAAwBE,yBAAyB,EAAElgW;EAAnD,CAAtB,GAAuFggW,QAAzI;EACA,MAAMp7V,KAAK,GAAGu7V,wBAAwB,CAAChgW,SAAS,IAAK,mBAAkB4/V,aAAa,CAAC12K,SAAd,CAAwB42K,UAAxB,CAAoC,GAArE,EAAyE;EAAE;EAA3E,EAAsHD,QAAtH,CAAtC;EACAp7V,KAAK,CAAC7C,GAAN,GAAYk+V,UAAZ;EACAr7V,KAAK,CAACs7V,yBAAN,GAAkCA,yBAAlC;EACA,OAAOt7V,KAAP;AACH;;AACD,SAASu7V,wBAAT,CAAkCj/V,OAAlC,EAA2C4X,IAA3C,EAAiDsnV,WAAjD,EAA8D;EAC1D,MAAMx7V,KAAK,GAAG,IAAIywB,KAAJ,CAAU,gCAAgCn0B,OAAO,IAAI,EAA3C,CAAV,CAAd;EACA0D,KAAK,CAACi7V,0BAAD,CAAL,GAAoC,IAApC;EACAj7V,KAAK,CAACy7V,gBAAN,GAAyBvnV,IAAzB;;EACA,IAAIsnV,WAAJ,EAAiB;IACbx7V,KAAK,CAAC7C,GAAN,GAAYq+V,WAAZ;EACH;;EACD,OAAOx7V,KAAP;AACH;;AACD,SAAS07V,uCAAT,CAAiD17V,KAAjD,EAAwD;EACpD,OAAO27V,4BAA4B,CAAC37V,KAAD,CAA5B,IAAuCkyV,SAAS,CAAClyV,KAAK,CAAC7C,GAAP,CAAvD;AACH;;AACD,SAASw+V,4BAAT,CAAsC37V,KAAtC,EAA6C;EACzC,OAAOA,KAAK,IAAIA,KAAK,CAACi7V,0BAAD,CAArB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMW,aAAN,CAAoB;EAChB/iW,WAAW,GAAG;IACV,KAAKk6V,MAAL,GAAc,IAAd;IACA,KAAKzyV,KAAL,GAAa,IAAb;IACA;AACR;AACA;AACA;;IACQ,KAAKgd,QAAL,GAAgB,IAAhB;IACA,KAAKiqH,QAAL,GAAgB,IAAhB;IACA,KAAK2vB,QAAL,GAAgB,IAAI2kM,sBAAJ,EAAhB;IACA,KAAKC,SAAL,GAAiB,IAAjB;EACH;;AAZe;AAcpB;AACA;AACA;AACA;AACA;;;AACA,MAAMD,sBAAN,CAA6B;EACzBhjW,WAAW,GAAG;IACV;IACA,KAAKkjW,QAAL,GAAgB,IAAIzuV,GAAJ,EAAhB;EACH;EACD;;;EACA0uV,oBAAoB,CAACC,SAAD,EAAYlJ,MAAZ,EAAoB;IACpC,MAAMvnQ,OAAO,GAAG,KAAK0wQ,kBAAL,CAAwBD,SAAxB,CAAhB;IACAzwQ,OAAO,CAACunQ,MAAR,GAAiBA,MAAjB;IACA,KAAKgJ,QAAL,CAAcv6V,GAAd,CAAkBy6V,SAAlB,EAA6BzwQ,OAA7B;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACI2wQ,sBAAsB,CAACF,SAAD,EAAY;IAC9B,MAAMzwQ,OAAO,GAAG,KAAK6lG,UAAL,CAAgB4qK,SAAhB,CAAhB;;IACA,IAAIzwQ,OAAJ,EAAa;MACTA,OAAO,CAACunQ,MAAR,GAAiB,IAAjB;MACAvnQ,OAAO,CAACswQ,SAAR,GAAoB,IAApB;IACH;EACJ;EACD;AACJ;AACA;AACA;;;EACIM,mBAAmB,GAAG;IAClB,MAAML,QAAQ,GAAG,KAAKA,QAAtB;IACA,KAAKA,QAAL,GAAgB,IAAIzuV,GAAJ,EAAhB;IACA,OAAOyuV,QAAP;EACH;;EACDM,kBAAkB,CAACN,QAAD,EAAW;IACzB,KAAKA,QAAL,GAAgBA,QAAhB;EACH;;EACDG,kBAAkB,CAACD,SAAD,EAAY;IAC1B,IAAIzwQ,OAAO,GAAG,KAAK6lG,UAAL,CAAgB4qK,SAAhB,CAAd;;IACA,IAAI,CAACzwQ,OAAL,EAAc;MACVA,OAAO,GAAG,IAAIowQ,aAAJ,EAAV;MACA,KAAKG,QAAL,CAAcv6V,GAAd,CAAkBy6V,SAAlB,EAA6BzwQ,OAA7B;IACH;;IACD,OAAOA,OAAP;EACH;;EACD6lG,UAAU,CAAC4qK,SAAD,EAAY;IAClB,OAAO,KAAKF,QAAL,CAAc93V,GAAd,CAAkBg4V,SAAlB,KAAgC,IAAvC;EACH;;AA7CwB;;AA+C7BJ,sBAAsB,CAACnhW,IAAvB;EAAA,iBAAmHmhW,sBAAnH;AAAA;;AACAA,sBAAsB,CAAC/gW,KAAvB,kBAp4DgG4hG,gEAo4DhG;EAAA,OAAuHm/P,sBAAvH;EAAA,SAAuHA,sBAAvH;EAAA,YAA2J;AAA3J;;AACA;EAAA,mDAr4DgGn/P,+DAq4DhG,CAA2Fm/P,sBAA3F,EAA+H,CAAC;IACpH1gW,IAAI,EAAEhF,qDAD8G;IAEpHmF,IAAI,EAAE,CAAC;MAAE2zH,UAAU,EAAE;IAAd,CAAD;EAF8G,CAAD,CAA/H;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMqtO,aAAa,GAAG,OAAO/gW,SAAP,KAAqB,WAArB,IAAoCA,SAA1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMghW,YAAN,CAAmB;EACf1jW,WAAW,CAAC2jW,cAAD,EAAiBzjW,QAAjB,EAA2BL,IAA3B,EAAiC+jW,cAAjC,EAAiDt0D,mBAAjD,EAAsE;IAC7E,KAAKq0D,cAAL,GAAsBA,cAAtB;IACA,KAAKzjW,QAAL,GAAgBA,QAAhB;IACA,KAAK0jW,cAAL,GAAsBA,cAAtB;IACA,KAAKt0D,mBAAL,GAA2BA,mBAA3B;IACA,KAAK6wD,SAAL,GAAiB,IAAjB;IACA,KAAK0D,eAAL,GAAuB,IAAvB;IACA,KAAKC,cAAL,GAAsB,IAAI/vO,uDAAJ,EAAtB;IACA,KAAKgwO,gBAAL,GAAwB,IAAIhwO,uDAAJ,EAAxB;IACA;AACR;AACA;AACA;;IACQ,KAAKiwO,YAAL,GAAoB,IAAIjwO,uDAAJ,EAApB;IACA;AACR;AACA;AACA;;IACQ,KAAKkwO,YAAL,GAAoB,IAAIlwO,uDAAJ,EAApB;IACA,KAAKl0H,IAAL,GAAYA,IAAI,IAAIyzV,cAApB;IACAqQ,cAAc,CAACR,oBAAf,CAAoC,KAAKtjW,IAAzC,EAA+C,IAA/C;EACH;EACD;;;EACA24H,WAAW,GAAG;IACV;IACA,IAAI,KAAKmrO,cAAL,CAAoBnrK,UAApB,CAA+B,KAAK34L,IAApC,GAA2Cq6V,MAA3C,KAAsD,IAA1D,EAAgE;MAC5D,KAAKyJ,cAAL,CAAoBL,sBAApB,CAA2C,KAAKzjW,IAAhD;IACH;EACJ;EACD;;;EACA+L,QAAQ,GAAG;IACP,IAAI,CAAC,KAAKu0V,SAAV,EAAqB;MACjB;MACA;MACA,MAAMxtQ,OAAO,GAAG,KAAKgxQ,cAAL,CAAoBnrK,UAApB,CAA+B,KAAK34L,IAApC,CAAhB;;MACA,IAAI8yF,OAAO,IAAIA,OAAO,CAAClrF,KAAvB,EAA8B;QAC1B,IAAIkrF,OAAO,CAACswQ,SAAZ,EAAuB;UACnB;UACA,KAAKiB,MAAL,CAAYvxQ,OAAO,CAACswQ,SAApB,EAA+BtwQ,OAAO,CAAClrF,KAAvC;QACH,CAHD,MAIK;UACD;UACA,KAAK08V,YAAL,CAAkBxxQ,OAAO,CAAClrF,KAA1B,EAAiCkrF,OAAO,CAAC+7C,QAAzC;QACH;MACJ;IACJ;EACJ;;EACc,IAAX01N,WAAW,GAAG;IACd,OAAO,CAAC,CAAC,KAAKjE,SAAd;EACH;EACD;AACJ;AACA;AACA;;;EACiB,IAAThoF,SAAS,GAAG;IACZ,IAAI,CAAC,KAAKgoF,SAAV,EACI,MAAM,IAAIr8P,2DAAJ,CAAkB;IAAK;IAAvB,EAAoE2/P,aAAa,IAAI,yBAArF,CAAN;IACJ,OAAO,KAAKtD,SAAL,CAAelgW,QAAtB;EACH;;EACiB,IAAdokW,cAAc,GAAG;IACjB,IAAI,CAAC,KAAKlE,SAAV,EACI,MAAM,IAAIr8P,2DAAJ,CAAkB;IAAK;IAAvB,EAAoE2/P,aAAa,IAAI,yBAArF,CAAN;IACJ,OAAO,KAAKI,eAAZ;EACH;;EACqB,IAAlBS,kBAAkB,GAAG;IACrB,IAAI,KAAKT,eAAT,EAA0B;MACtB,OAAO,KAAKA,eAAL,CAAqB3I,QAArB,CAA8B92U,IAArC;IACH;;IACD,OAAO,EAAP;EACH;EACD;AACJ;AACA;;;EACI+pR,MAAM,GAAG;IACL,IAAI,CAAC,KAAKgyD,SAAV,EACI,MAAM,IAAIr8P,2DAAJ,CAAkB;IAAK;IAAvB,EAAoE2/P,aAAa,IAAI,yBAArF,CAAN;IACJ,KAAKvjW,QAAL,CAAciuS,MAAd;IACA,MAAMo2D,GAAG,GAAG,KAAKpE,SAAjB;IACA,KAAKA,SAAL,GAAiB,IAAjB;IACA,KAAK0D,eAAL,GAAuB,IAAvB;IACA,KAAKI,YAAL,CAAkB7qO,IAAlB,CAAuBmrO,GAAG,CAACtkW,QAA3B;IACA,OAAOskW,GAAP;EACH;EACD;AACJ;AACA;;;EACIL,MAAM,CAAC9tN,GAAD,EAAMiuN,cAAN,EAAsB;IACxB,KAAKlE,SAAL,GAAiB/pN,GAAjB;IACA,KAAKytN,eAAL,GAAuBQ,cAAvB;IACA,KAAKnkW,QAAL,CAAcg5T,MAAd,CAAqB9iL,GAAG,CAACsrH,QAAzB;IACA,KAAKsiG,YAAL,CAAkB5qO,IAAlB,CAAuBgd,GAAG,CAACn2I,QAA3B;EACH;;EACDukW,UAAU,GAAG;IACT,IAAI,KAAKrE,SAAT,EAAoB;MAChB,MAAM1gM,CAAC,GAAG,KAAK04G,SAAf;MACA,KAAKgoF,SAAL,CAAe59P,OAAf;MACA,KAAK49P,SAAL,GAAiB,IAAjB;MACA,KAAK0D,eAAL,GAAuB,IAAvB;MACA,KAAKE,gBAAL,CAAsB3qO,IAAtB,CAA2BqmC,CAA3B;IACH;EACJ;;EACD0kM,YAAY,CAACE,cAAD,EAAiBI,kBAAjB,EAAqC;IAC7C,IAAI,KAAKL,WAAT,EAAsB;MAClB,MAAM,IAAItgQ,2DAAJ,CAAkB;MAAK;MAAvB,EAAwE2/P,aAAa,IAAI,6CAAzF,CAAN;IACH;;IACD,KAAKI,eAAL,GAAuBQ,cAAvB;IACA,MAAMnkW,QAAQ,GAAG,KAAKA,QAAtB;IACA,MAAMg7V,QAAQ,GAAGmJ,cAAc,CAAC7D,eAAhC;IACA,MAAMroF,SAAS,GAAG+iF,QAAQ,CAAC/iF,SAA3B;IACA,MAAMusF,aAAa,GAAG,KAAKf,cAAL,CAAoBN,kBAApB,CAAuC,KAAKxjW,IAA5C,EAAkDw+J,QAAxE;IACA,MAAM3vB,QAAQ,GAAG,IAAIi2N,cAAJ,CAAmBN,cAAnB,EAAmCK,aAAnC,EAAkDxkW,QAAQ,CAACwuI,QAA3D,CAAjB;;IACA,IAAI+1N,kBAAkB,IAAIG,0BAA0B,CAACH,kBAAD,CAApD,EAA0E;MACtE,MAAMriW,OAAO,GAAGqiW,kBAAkB,CAAC7yE,uBAAnB,CAA2CzZ,SAA3C,CAAhB;MACA,KAAKgoF,SAAL,GAAiBjgW,QAAQ,CAAC6uI,eAAT,CAAyB3sI,OAAzB,EAAkClC,QAAQ,CAAC2E,MAA3C,EAAmD6pI,QAAnD,CAAjB;IACH,CAHD,MAIK;MACD,MAAM4gK,mBAAmB,GAAGm1D,kBAAkB,IAAI,KAAKn1D,mBAAvD;MACA,KAAK6wD,SAAL,GAAiBjgW,QAAQ,CAAC6uI,eAAT,CAAyBopI,SAAzB,EAAoC;QAAEtuP,KAAK,EAAE3pB,QAAQ,CAAC2E,MAAlB;QAA0B6pI,QAA1B;QAAoC4gK;MAApC,CAApC,CAAjB;IACH,CAjB4C,CAkB7C;IACA;;;IACA,KAAKs0D,cAAL,CAAoB9sN,YAApB;IACA,KAAKgtN,cAAL,CAAoB1qO,IAApB,CAAyB,KAAK+mO,SAAL,CAAelgW,QAAxC;EACH;;AA5Hc;;AA8HnByjW,YAAY,CAAC7hW,IAAb;EAAA,iBAAyG6hW,YAAzG,EAnkEgG7/P,+DAmkEhG,CAAuIm/P,sBAAvI,GAnkEgGn/P,+DAmkEhG,CAA0KA,2DAA1K,GAnkEgGA,+DAmkEhG,CAA0M,MAA1M,GAnkEgGA,+DAmkEhG,CAA8OA,4DAA9O,GAnkEgGA,+DAmkEhG,CAA+QA,8DAA/Q;AAAA;;AACA6/P,YAAY,CAAC31N,IAAb,kBApkEgGlqC,+DAokEhG;EAAA,MAA6F6/P,YAA7F;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;EAAA;AAAA;;AACA;EAAA,mDArkEgG7/P,+DAqkEhG,CAA2F6/P,YAA3F,EAAqH,CAAC;IAC1GphW,IAAI,EAAEkyH,oDADoG;IAE1G/xH,IAAI,EAAE,CAAC;MACCgK,QAAQ,EAAE,eADX;MAEC6nO,QAAQ,EAAE,QAFX;MAGCtmG,UAAU,EAAE;IAHb,CAAD;EAFoG,CAAD,CAArH,EAO4B,YAAY;IAAE,OAAO,CAAC;MAAE1rI,IAAI,EAAE0gW;IAAR,CAAD,EAAmC;MAAE1gW,IAAI,EAAEuhG,2DAAmBsrC;IAA3B,CAAnC,EAAkE;MAAE7sI,IAAI,EAAEC,SAAR;MAAmBC,UAAU,EAAE,CAAC;QAC/HF,IAAI,EAAEuyH,oDADyH;QAE/HpyH,IAAI,EAAE,CAAC,MAAD;MAFyH,CAAD;IAA/B,CAAlE,EAG3B;MAAEH,IAAI,EAAEuhG,4DAAoBkzC;IAA5B,CAH2B,EAGK;MAAEz0I,IAAI,EAAEuhG,8DAAsB0rL;IAA9B,CAHL,CAAP;EAGgD,CAV1F,EAU4G;IAAEu0E,cAAc,EAAE,CAAC;MAC/GxhW,IAAI,EAAE+gU,iDADyG;MAE/G5gU,IAAI,EAAE,CAAC,UAAD;IAFyG,CAAD,CAAlB;IAG5FshW,gBAAgB,EAAE,CAAC;MACnBzhW,IAAI,EAAE+gU,iDADa;MAEnB5gU,IAAI,EAAE,CAAC,YAAD;IAFa,CAAD,CAH0E;IAM5FuhW,YAAY,EAAE,CAAC;MACf1hW,IAAI,EAAE+gU,iDADS;MAEf5gU,IAAI,EAAE,CAAC,QAAD;IAFS,CAAD,CAN8E;IAS5FwhW,YAAY,EAAE,CAAC;MACf3hW,IAAI,EAAE+gU,iDADS;MAEf5gU,IAAI,EAAE,CAAC,QAAD;IAFS,CAAD;EAT8E,CAV5G;AAAA;;AAuBA,MAAMkiW,cAAN,CAAqB;EACjB3kW,WAAW,CAACyH,KAAD,EAAQi9V,aAAR,EAAuB/0S,MAAvB,EAA+B;IACtC,KAAKloD,KAAL,GAAaA,KAAb;IACA,KAAKi9V,aAAL,GAAqBA,aAArB;IACA,KAAK/0S,MAAL,GAAcA,MAAd;EACH;;EACDvkD,GAAG,CAACjJ,KAAD,EAAQi0P,aAAR,EAAuB;IACtB,IAAIj0P,KAAK,KAAKi+V,cAAd,EAA8B;MAC1B,OAAO,KAAK34V,KAAZ;IACH;;IACD,IAAItF,KAAK,KAAK6gW,sBAAd,EAAsC;MAClC,OAAO,KAAK0B,aAAZ;IACH;;IACD,OAAO,KAAK/0S,MAAL,CAAYvkD,GAAZ,CAAgBjJ,KAAhB,EAAuBi0P,aAAvB,CAAP;EACH;;AAdgB;;AAgBrB,SAASwuG,0BAAT,CAAoC5+U,IAApC,EAA0C;EACtC,OAAO,CAAC,CAACA,IAAI,CAAC4rQ,uBAAd;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMizE,qBAAN,CAA4B;;AAE5BA,qBAAqB,CAAChjW,IAAtB;EAAA,iBAAkHgjW,qBAAlH;AAAA;;AACAA,qBAAqB,CAAC94V,IAAtB,kBAnoEgG83F,+DAmoEhG;EAAA,MAAsGghQ,qBAAtG;EAAA;EAAA;EAAA,WAnoEgGhhQ,iEAmoEhG;EAAA;EAAA;EAAA;IAAA;MAnoEgGA,uDAmoEoG,oBAApM;IAAA;EAAA;EAAA,eAAgS6/P,YAAhS;EAAA;AAAA;;AACA;EAAA,mDApoEgG7/P,+DAooEhG,CAA2FghQ,qBAA3F,EAA8H,CAAC;IACnHviW,IAAI,EAAE5E,oDAD6G;IAEnH+E,IAAI,EAAE,CAAC;MACC2J,QAAQ,EAAG,iCADZ;MAECmB,OAAO,EAAE,CAACm2V,YAAD,CAFV;MAGC11N,UAAU,EAAE;IAHb,CAAD;EAF6G,CAAD,CAA9H;AAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS82N,gCAAT,CAA0Cr9V,KAA1C,EAAiDs9V,eAAjD,EAAkE;EAC9D,IAAIt9V,KAAK,CAACsF,SAAN,IAAmB,CAACtF,KAAK,CAAC6qT,SAA9B,EAAyC;IACrC7qT,KAAK,CAAC6qT,SAAN,GACIH,wEAAyB,CAAC1qT,KAAK,CAACsF,SAAP,EAAkBg4V,eAAlB,EAAoC,UAASt9V,KAAK,CAACrH,IAAK,EAAxD,CAD7B;EAEH;;EACD,OAAOqH,KAAK,CAAC6qT,SAAN,IAAmByyC,eAA1B;AACH;;AACD,SAASC,eAAT,CAAyBv9V,KAAzB,EAAgC;EAC5B,OAAOA,KAAK,CAACw9V,aAAb;AACH;;AACD,SAASC,iBAAT,CAA2Bz9V,KAA3B,EAAkC;EAC9B,OAAOA,KAAK,CAAC09V,eAAb;AACH;;AACD,SAASC,kBAAT,CAA4B39V,KAA5B,EAAmC;EAC/B,OAAOA,KAAK,CAAC49V,gBAAb;AACH;;AACD,SAASC,oBAAT,CAA8B79V,KAA9B,EAAqC;EACjC,OAAOA,KAAK,CAAC6qT,SAAb;AACH;;AACD,SAASizC,cAAT,CAAwBpxV,MAAxB,EAAgCqxV,UAAU,GAAG,EAA7C,EAAiDC,2BAA2B,GAAG,KAA/E,EAAsF;EAClF;EACA,KAAK,IAAIl2V,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4E,MAAM,CAACtP,MAA3B,EAAmC0K,CAAC,EAApC,EAAwC;IACpC,MAAM9H,KAAK,GAAG0M,MAAM,CAAC5E,CAAD,CAApB;IACA,MAAMm2V,QAAQ,GAAGC,WAAW,CAACH,UAAD,EAAa/9V,KAAb,CAA5B;IACAm+V,YAAY,CAACn+V,KAAD,EAAQi+V,QAAR,EAAkBD,2BAAlB,CAAZ;EACH;AACJ;;AACD,SAASI,gBAAT,CAA0BH,QAA1B,EAAoCvtF,SAApC,EAA+C;EAC3C,IAAIA,SAAS,IAAI,CAAC4nE,+DAAa,CAAC5nE,SAAD,CAA/B,EAA4C;IACxC,MAAM,IAAIr0K,2DAAJ,CAAkB;IAAK;IAAvB,EAAqE,mCAAkC4hQ,QAAS,sCAAhH,CAAN;EACH;AACJ;;AACD,SAASE,YAAT,CAAsBn+V,KAAtB,EAA6Bi+V,QAA7B,EAAuCD,2BAAvC,EAAoE;EAChE,IAAI,OAAO/iW,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;IAC/C,IAAI,CAAC+E,KAAL,EAAY;MACR,MAAM,IAAIq8F,2DAAJ,CAAkB;MAAK;MAAvB,EAAqE;AACvF,wCAAwC4hQ,QAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAVkB,CAAN;IAWH;;IACD,IAAIt8V,KAAK,CAACiqF,OAAN,CAAc5rF,KAAd,CAAJ,EAA0B;MACtB,MAAM,IAAIq8F,2DAAJ,CAAkB;MAAK;MAAvB,EAAqE,mCAAkC4hQ,QAAS,8BAAhH,CAAN;IACH;;IACD,IAAI,CAACj+V,KAAK,CAAC+6V,UAAP,IAAqB,CAAC/6V,KAAK,CAAC0wQ,SAA5B,IAAyC,CAAC1wQ,KAAK,CAACq+V,aAAhD,IAAiE,CAACr+V,KAAK,CAAC42J,QAAxE,IACA,CAAC52J,KAAK,CAACs+V,YADP,IACwBt+V,KAAK,CAACyyV,MAAN,IAAgBzyV,KAAK,CAACyyV,MAAN,KAAiB5G,cAD7D,EAC8E;MAC1E,MAAM,IAAIxvP,2DAAJ,CAAkB;MAAK;MAAvB,EAAqE,mCAAkC4hQ,QAAS,0FAAhH,CAAN;IACH;;IACD,IAAIj+V,KAAK,CAAC+6V,UAAN,IAAoB/6V,KAAK,CAAC42J,QAA9B,EAAwC;MACpC,MAAM,IAAIv6D,2DAAJ,CAAkB;MAAK;MAAvB,EAAqE,mCAAkC4hQ,QAAS,oDAAhH,CAAN;IACH;;IACD,IAAIj+V,KAAK,CAAC+6V,UAAN,IAAoB/6V,KAAK,CAACs+V,YAA9B,EAA4C;MACxC,MAAM,IAAIjiQ,2DAAJ,CAAkB;MAAK;MAAvB,EAAqE,mCAAkC4hQ,QAAS,wDAAhH,CAAN;IACH;;IACD,IAAIj+V,KAAK,CAAC42J,QAAN,IAAkB52J,KAAK,CAACs+V,YAA5B,EAA0C;MACtC,MAAM,IAAIjiQ,2DAAJ,CAAkB;MAAK;MAAvB,EAAqE,mCAAkC4hQ,QAAS,sDAAhH,CAAN;IACH;;IACD,IAAIj+V,KAAK,CAAC+6V,UAAN,KAAqB/6V,KAAK,CAAC0wQ,SAAN,IAAmB1wQ,KAAK,CAACq+V,aAA9C,CAAJ,EAAkE;MAC9D,MAAM,IAAIhiQ,2DAAJ,CAAkB;MAAK;MAAvB,EAAqE,mCAAkC4hQ,QAAS,mEAAhH,CAAN;IACH;;IACD,IAAIj+V,KAAK,CAAC0wQ,SAAN,IAAmB1wQ,KAAK,CAACq+V,aAA7B,EAA4C;MACxC,MAAM,IAAIhiQ,2DAAJ,CAAkB;MAAK;MAAvB,EAAqE,mCAAkC4hQ,QAAS,wDAAhH,CAAN;IACH;;IACD,IAAIj+V,KAAK,CAAC+6V,UAAN,IAAoB/6V,KAAK,CAACD,WAA9B,EAA2C;MACvC,MAAM,IAAIs8F,2DAAJ,CAAkB;MAAK;MAAvB,EAAqE,mCAAkC4hQ,QAAS,4FAA5C,GACrE,wCADC,CAAN;IAEH;;IACD,IAAIj+V,KAAK,CAACrH,IAAN,IAAcqH,KAAK,CAACgxJ,OAAxB,EAAiC;MAC7B,MAAM,IAAI30D,2DAAJ,CAAkB;MAAK;MAAvB,EAAqE,mCAAkC4hQ,QAAS,6CAAhH,CAAN;IACH;;IACD,IAAIj+V,KAAK,CAAC+6V,UAAN,KAAqB,KAAK,CAA1B,IAA+B,CAAC/6V,KAAK,CAAC0wQ,SAAtC,IAAmD,CAAC1wQ,KAAK,CAACq+V,aAA1D,IACA,CAACr+V,KAAK,CAAC42J,QADP,IACmB,CAAC52J,KAAK,CAACs+V,YAD9B,EAC4C;MACxC,MAAM,IAAIjiQ,2DAAJ,CAAkB;MAAK;MAAvB,EAAqE,mCAAkC4hQ,QAAS,0GAAhH,CAAN;IACH;;IACD,IAAIj+V,KAAK,CAACrH,IAAN,KAAe,KAAK,CAApB,IAAyBqH,KAAK,CAACgxJ,OAAN,KAAkB,KAAK,CAApD,EAAuD;MACnD,MAAM,IAAI30D,2DAAJ,CAAkB;MAAK;MAAvB,EAAqE,mCAAkC4hQ,QAAS,0DAAhH,CAAN;IACH;;IACD,IAAI,OAAOj+V,KAAK,CAACrH,IAAb,KAAsB,QAAtB,IAAkCqH,KAAK,CAACrH,IAAN,CAAW0xB,MAAX,CAAkB,CAAlB,MAAyB,GAA/D,EAAoE;MAChE,MAAM,IAAIgyE,2DAAJ,CAAkB;MAAK;MAAvB,EAAqE,mCAAkC4hQ,QAAS,mCAAhH,CAAN;IACH;;IACD,IAAIj+V,KAAK,CAACrH,IAAN,KAAe,EAAf,IAAqBqH,KAAK,CAAC+6V,UAAN,KAAqB,KAAK,CAA/C,IAAoD/6V,KAAK,CAACmsV,SAAN,KAAoB,KAAK,CAAjF,EAAoF;MAChF,MAAM3vP,GAAG,GAAI,sFAAb;MACA,MAAM,IAAIH,2DAAJ,CAAkB;MAAK;MAAvB,EAAqE,2CAA0C4hQ,QAAS,mBAAkBj+V,KAAK,CAAC+6V,UAAW,oCAAmCv+P,GAAI,EAAlM,CAAN;IACH;;IACD,IAAIwhQ,2BAAJ,EAAiC;MAC7BI,gBAAgB,CAACH,QAAD,EAAWj+V,KAAK,CAAC0wQ,SAAjB,CAAhB;IACH;EACJ;;EACD,IAAI1wQ,KAAK,CAAC42J,QAAV,EAAoB;IAChBknM,cAAc,CAAC99V,KAAK,CAAC42J,QAAP,EAAiBqnM,QAAjB,EAA2BD,2BAA3B,CAAd;EACH;AACJ;;AACD,SAASE,WAAT,CAAqBH,UAArB,EAAiCzL,YAAjC,EAA+C;EAC3C,IAAI,CAACA,YAAL,EAAmB;IACf,OAAOyL,UAAP;EACH;;EACD,IAAI,CAACA,UAAD,IAAe,CAACzL,YAAY,CAAC35V,IAAjC,EAAuC;IACnC,OAAO,EAAP;EACH,CAFD,MAGK,IAAIolW,UAAU,IAAI,CAACzL,YAAY,CAAC35V,IAAhC,EAAsC;IACvC,OAAQ,GAAEolW,UAAW,GAArB;EACH,CAFI,MAGA,IAAI,CAACA,UAAD,IAAezL,YAAY,CAAC35V,IAAhC,EAAsC;IACvC,OAAO25V,YAAY,CAAC35V,IAApB;EACH,CAFI,MAGA;IACD,OAAQ,GAAEolW,UAAW,IAAGzL,YAAY,CAAC35V,IAAK,EAA1C;EACH;AACJ;AACD;AACA;AACA;;;AACA,SAAS4lW,iBAAT,CAA2Bn0V,CAA3B,EAA8B;EAC1B,MAAMwsJ,QAAQ,GAAGxsJ,CAAC,CAACwsJ,QAAF,IAAcxsJ,CAAC,CAACwsJ,QAAF,CAAWt/J,GAAX,CAAeinW,iBAAf,CAA/B;EACA,MAAMvmM,CAAC,GAAGpB,QAAQ,GAAG,EAAE,GAAGxsJ,CAAL;IAAQwsJ;EAAR,CAAH,GAAwB,EAAE,GAAGxsJ;EAAL,CAA1C;;EACA,IAAK,CAAC4tJ,CAAC,CAAC04G,SAAH,IAAgB,CAAC14G,CAAC,CAACqmM,aAApB,KAAuCznM,QAAQ,IAAIoB,CAAC,CAACsmM,YAArD,KACCtmM,CAAC,CAACy6L,MAAF,IAAYz6L,CAAC,CAACy6L,MAAF,KAAa5G,cAD9B,EAC+C;IAC3C7zL,CAAC,CAAC04G,SAAF,GAAc0sF,qBAAd;EACH;;EACD,OAAOplM,CAAP;AACH;AACD;;;AACA,SAASwmM,SAAT,CAAmBx+V,KAAnB,EAA0B;EACtB,OAAOA,KAAK,CAACyyV,MAAN,IAAgB5G,cAAvB;AACH;AACD;AACA;AACA;AACA;;;AACA,SAAS4S,qBAAT,CAA+BC,MAA/B,EAAuCnN,UAAvC,EAAmD;EAC/C,MAAMoN,YAAY,GAAGD,MAAM,CAAC/mW,MAAP,CAAcyS,CAAC,IAAIo0V,SAAS,CAACp0V,CAAD,CAAT,KAAiBmnV,UAApC,CAArB;EACAoN,YAAY,CAACl8V,IAAb,CAAkB,GAAGi8V,MAAM,CAAC/mW,MAAP,CAAcyS,CAAC,IAAIo0V,SAAS,CAACp0V,CAAD,CAAT,KAAiBmnV,UAApC,CAArB;EACA,OAAOoN,YAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,uBAAT,CAAiCnL,QAAjC,EAA2C;EACvC,IAAI,CAACA,QAAL,EACI,OAAO,IAAP,CAFmC,CAGvC;EACA;EACA;;EACA,IAAIA,QAAQ,CAACyD,WAAT,EAAsBrsC,SAA1B,EAAqC;IACjC,OAAO4oC,QAAQ,CAACyD,WAAT,CAAqBrsC,SAA5B;EACH;;EACD,KAAK,IAAIhjT,CAAC,GAAG4rV,QAAQ,CAACvrS,MAAtB,EAA8BrgD,CAA9B,EAAiCA,CAAC,GAAGA,CAAC,CAACqgD,MAAvC,EAA+C;IAC3C,MAAMloD,KAAK,GAAG6H,CAAC,CAACqvV,WAAhB,CAD2C,CAE3C;IACA;IACA;IACA;;IACA,IAAIl3V,KAAK,EAAE09V,eAAX,EACI,OAAO19V,KAAK,CAAC09V,eAAb;IACJ,IAAI19V,KAAK,EAAE6qT,SAAX,EACI,OAAO7qT,KAAK,CAAC6qT,SAAb;EACP;;EACD,OAAO,IAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMg0C,cAAc,GAAG,CAACC,YAAD,EAAe5E,kBAAf,EAAmC6E,YAAnC,KAAoDznW,mDAAG,CAACgD,CAAC,IAAI;EAChF,IAAI0kW,cAAJ,CAAmB9E,kBAAnB,EAAuC5/V,CAAC,CAAC2kW,iBAAzC,EAA4D3kW,CAAC,CAAC4kW,kBAA9D,EAAkFH,YAAlF,EACKI,QADL,CACcL,YADd;EAEA,OAAOxkW,CAAP;AACH,CAJ6E,CAA9E;;AAKA,MAAM0kW,cAAN,CAAqB;EACjBzmW,WAAW,CAAC2hW,kBAAD,EAAqBkF,WAArB,EAAkCC,SAAlC,EAA6CN,YAA7C,EAA2D;IAClE,KAAK7E,kBAAL,GAA0BA,kBAA1B;IACA,KAAKkF,WAAL,GAAmBA,WAAnB;IACA,KAAKC,SAAL,GAAiBA,SAAjB;IACA,KAAKN,YAAL,GAAoBA,YAApB;EACH;;EACDI,QAAQ,CAACjD,cAAD,EAAiB;IACrB,MAAMoD,UAAU,GAAG,KAAKF,WAAL,CAAiB1H,KAApC;IACA,MAAM6H,QAAQ,GAAG,KAAKF,SAAL,GAAiB,KAAKA,SAAL,CAAe3H,KAAhC,GAAwC,IAAzD;IACA,KAAK8H,qBAAL,CAA2BF,UAA3B,EAAuCC,QAAvC,EAAiDrD,cAAjD;IACAtC,qBAAqB,CAAC,KAAKwF,WAAL,CAAiB9/V,IAAlB,CAArB;IACA,KAAKmgW,mBAAL,CAAyBH,UAAzB,EAAqCC,QAArC,EAA+CrD,cAA/C;EACH,CAbgB,CAcjB;;;EACAsD,qBAAqB,CAACE,UAAD,EAAaC,QAAb,EAAuBlE,QAAvB,EAAiC;IAClD,MAAM7kM,QAAQ,GAAGqhM,iBAAiB,CAAC0H,QAAD,CAAlC,CADkD,CAElD;;IACAD,UAAU,CAAC9oM,QAAX,CAAoBv0J,OAApB,CAA4Bu9V,WAAW,IAAI;MACvC,MAAMC,eAAe,GAAGD,WAAW,CAACxjW,KAAZ,CAAkBq2V,MAA1C;MACA,KAAKqN,gBAAL,CAAsBF,WAAtB,EAAmChpM,QAAQ,CAACipM,eAAD,CAA3C,EAA8DpE,QAA9D;MACA,OAAO7kM,QAAQ,CAACipM,eAAD,CAAf;IACH,CAJD,EAHkD,CAQlD;;IACAx9V,OAAO,CAACu0J,QAAD,EAAW,CAAC9sJ,CAAD,EAAI6xV,SAAJ,KAAkB;MAChC,KAAKoE,6BAAL,CAAmCj2V,CAAnC,EAAsC2xV,QAAtC;IACH,CAFM,CAAP;EAGH;;EACDqE,gBAAgB,CAACJ,UAAD,EAAaC,QAAb,EAAuBxtP,aAAvB,EAAsC;IAClD,MAAM6tP,MAAM,GAAGN,UAAU,CAACtjW,KAA1B;IACA,MAAM05V,IAAI,GAAG6J,QAAQ,GAAGA,QAAQ,CAACvjW,KAAZ,GAAoB,IAAzC;;IACA,IAAI4jW,MAAM,KAAKlK,IAAf,EAAqB;MACjB;MACA,IAAIkK,MAAM,CAACtvF,SAAX,EAAsB;QAClB;QACA,MAAMxlL,OAAO,GAAGinB,aAAa,CAAC4+E,UAAd,CAAyBivK,MAAM,CAACvN,MAAhC,CAAhB;;QACA,IAAIvnQ,OAAJ,EAAa;UACT,KAAKs0Q,qBAAL,CAA2BE,UAA3B,EAAuCC,QAAvC,EAAiDz0Q,OAAO,CAAC0rE,QAAzD;QACH;MACJ,CAND,MAOK;QACD;QACA,KAAK4oM,qBAAL,CAA2BE,UAA3B,EAAuCC,QAAvC,EAAiDxtP,aAAjD;MACH;IACJ,CAbD,MAcK;MACD,IAAI2jP,IAAJ,EAAU;QACN;QACA,KAAKiK,6BAAL,CAAmCJ,QAAnC,EAA6CxtP,aAA7C;MACH;IACJ;EACJ;;EACD4tP,6BAA6B,CAAC//V,KAAD,EAAQk8V,cAAR,EAAwB;IACjD;IACA;IACA,IAAIl8V,KAAK,CAAC5D,KAAN,CAAYs0Q,SAAZ,IAAyB,KAAKwpF,kBAAL,CAAwB+F,YAAxB,CAAqCjgW,KAAK,CAAC5D,KAAN,CAAYq3V,QAAjD,CAA7B,EAAyF;MACrF,KAAKyM,0BAAL,CAAgClgW,KAAhC,EAAuCk8V,cAAvC;IACH,CAFD,MAGK;MACD,KAAKiE,wBAAL,CAA8BngW,KAA9B,EAAqCk8V,cAArC;IACH;EACJ;;EACDgE,0BAA0B,CAAClgW,KAAD,EAAQk8V,cAAR,EAAwB;IAC9C,MAAMhxQ,OAAO,GAAGgxQ,cAAc,CAACnrK,UAAf,CAA0B/wL,KAAK,CAAC5D,KAAN,CAAYq2V,MAAtC,CAAhB;IACA,MAAMgJ,QAAQ,GAAGvwQ,OAAO,IAAIlrF,KAAK,CAAC5D,KAAN,CAAYs0Q,SAAvB,GAAmCxlL,OAAO,CAAC0rE,QAA3C,GAAsDslM,cAAvE;IACA,MAAMtlM,QAAQ,GAAGqhM,iBAAiB,CAACj4V,KAAD,CAAlC;;IACA,KAAK,MAAM+uV,WAAX,IAA0BjxV,MAAM,CAAC+D,IAAP,CAAY+0J,QAAZ,CAA1B,EAAiD;MAC7C,KAAKmpM,6BAAL,CAAmCnpM,QAAQ,CAACm4L,WAAD,CAA3C,EAA0D0M,QAA1D;IACH;;IACD,IAAIvwQ,OAAO,IAAIA,OAAO,CAACunQ,MAAvB,EAA+B;MAC3B,MAAM3gC,YAAY,GAAG5mO,OAAO,CAACunQ,MAAR,CAAe/rD,MAAf,EAArB;MACA,MAAM+0D,QAAQ,GAAGvwQ,OAAO,CAAC0rE,QAAR,CAAiBklM,mBAAjB,EAAjB;MACA,KAAK5B,kBAAL,CAAwBphG,KAAxB,CAA8B94P,KAAK,CAAC5D,KAAN,CAAYq3V,QAA1C,EAAoD;QAAE3hC,YAAF;QAAgB9xT,KAAhB;QAAuBy7V;MAAvB,CAApD;IACH;EACJ;;EACD0E,wBAAwB,CAACngW,KAAD,EAAQk8V,cAAR,EAAwB;IAC5C,MAAMhxQ,OAAO,GAAGgxQ,cAAc,CAACnrK,UAAf,CAA0B/wL,KAAK,CAAC5D,KAAN,CAAYq2V,MAAtC,CAAhB,CAD4C,CAE5C;IACA;;IACA,MAAMgJ,QAAQ,GAAGvwQ,OAAO,IAAIlrF,KAAK,CAAC5D,KAAN,CAAYs0Q,SAAvB,GAAmCxlL,OAAO,CAAC0rE,QAA3C,GAAsDslM,cAAvE;IACA,MAAMtlM,QAAQ,GAAGqhM,iBAAiB,CAACj4V,KAAD,CAAlC;;IACA,KAAK,MAAM+uV,WAAX,IAA0BjxV,MAAM,CAAC+D,IAAP,CAAY+0J,QAAZ,CAA1B,EAAiD;MAC7C,KAAKmpM,6BAAL,CAAmCnpM,QAAQ,CAACm4L,WAAD,CAA3C,EAA0D0M,QAA1D;IACH;;IACD,IAAIvwQ,OAAO,IAAIA,OAAO,CAACunQ,MAAvB,EAA+B;MAC3B;MACAvnQ,OAAO,CAACunQ,MAAR,CAAesK,UAAf,GAF2B,CAG3B;;MACA7xQ,OAAO,CAAC0rE,QAAR,CAAiBklM,mBAAjB,GAJ2B,CAK3B;MACA;;MACA5wQ,OAAO,CAACswQ,SAAR,GAAoB,IAApB;MACAtwQ,OAAO,CAACluE,QAAR,GAAmB,IAAnB;MACAkuE,OAAO,CAAClrF,KAAR,GAAgB,IAAhB;IACH;EACJ;;EACDy/V,mBAAmB,CAACC,UAAD,EAAaC,QAAb,EAAuBlE,QAAvB,EAAiC;IAChD,MAAM7kM,QAAQ,GAAGqhM,iBAAiB,CAAC0H,QAAD,CAAlC;IACAD,UAAU,CAAC9oM,QAAX,CAAoBv0J,OAApB,CAA4B21J,CAAC,IAAI;MAC7B,KAAK6mM,cAAL,CAAoB7mM,CAApB,EAAuBpB,QAAQ,CAACoB,CAAC,CAAC57J,KAAF,CAAQq2V,MAAT,CAA/B,EAAiDgJ,QAAjD;MACA,KAAKsD,YAAL,CAAkB,IAAI1H,aAAJ,CAAkBr/L,CAAC,CAAC57J,KAAF,CAAQq3V,QAA1B,CAAlB;IACH,CAHD;;IAIA,IAAIiM,UAAU,CAAC9oM,QAAX,CAAoBx5J,MAAxB,EAAgC;MAC5B,KAAK2hW,YAAL,CAAkB,IAAI5H,kBAAJ,CAAuBuI,UAAU,CAACtjW,KAAX,CAAiBq3V,QAAxC,CAAlB;IACH;EACJ;;EACDoL,cAAc,CAACa,UAAD,EAAaC,QAAb,EAAuBzD,cAAvB,EAAuC;IACjD,MAAM8D,MAAM,GAAGN,UAAU,CAACtjW,KAA1B;IACA,MAAM05V,IAAI,GAAG6J,QAAQ,GAAGA,QAAQ,CAACvjW,KAAZ,GAAoB,IAAzC;IACAw9V,qBAAqB,CAACoG,MAAD,CAArB,CAHiD,CAIjD;;IACA,IAAIA,MAAM,KAAKlK,IAAf,EAAqB;MACjB,IAAIkK,MAAM,CAACtvF,SAAX,EAAsB;QAClB;QACA,MAAMxlL,OAAO,GAAGgxQ,cAAc,CAACN,kBAAf,CAAkCoE,MAAM,CAACvN,MAAzC,CAAhB;QACA,KAAKgN,mBAAL,CAAyBC,UAAzB,EAAqCC,QAArC,EAA+Cz0Q,OAAO,CAAC0rE,QAAvD;MACH,CAJD,MAKK;QACD;QACA,KAAK6oM,mBAAL,CAAyBC,UAAzB,EAAqCC,QAArC,EAA+CzD,cAA/C;MACH;IACJ,CAVD,MAWK;MACD,IAAI8D,MAAM,CAACtvF,SAAX,EAAsB;QAClB;QACA,MAAMxlL,OAAO,GAAGgxQ,cAAc,CAACN,kBAAf,CAAkCoE,MAAM,CAACvN,MAAzC,CAAhB;;QACA,IAAI,KAAKyH,kBAAL,CAAwBK,YAAxB,CAAqCyF,MAAM,CAACvM,QAA5C,CAAJ,EAA2D;UACvD,MAAM2M,MAAM,GAAG,KAAKlG,kBAAL,CAAwBO,QAAxB,CAAiCuF,MAAM,CAACvM,QAAxC,CAAf;UACA,KAAKyG,kBAAL,CAAwBphG,KAAxB,CAA8BknG,MAAM,CAACvM,QAArC,EAA+C,IAA/C;UACAvoQ,OAAO,CAAC0rE,QAAR,CAAiBmlM,kBAAjB,CAAoCqE,MAAM,CAAC3E,QAA3C;UACAvwQ,OAAO,CAACswQ,SAAR,GAAoB4E,MAAM,CAACtuC,YAA3B;UACA5mO,OAAO,CAAClrF,KAAR,GAAgBogW,MAAM,CAACpgW,KAAP,CAAa5D,KAA7B;;UACA,IAAI8uF,OAAO,CAACunQ,MAAZ,EAAoB;YAChB;YACA;YACAvnQ,OAAO,CAACunQ,MAAR,CAAegK,MAAf,CAAsB2D,MAAM,CAACtuC,YAA7B,EAA2CsuC,MAAM,CAACpgW,KAAP,CAAa5D,KAAxD;UACH;;UACDw9V,qBAAqB,CAACwG,MAAM,CAACpgW,KAAP,CAAa5D,KAAd,CAArB;UACA,KAAKqjW,mBAAL,CAAyBC,UAAzB,EAAqC,IAArC,EAA2Cx0Q,OAAO,CAAC0rE,QAAnD;QACH,CAbD,MAcK;UACD,MAAM3vB,QAAQ,GAAG23N,uBAAuB,CAACoB,MAAM,CAACvM,QAAR,CAAxC;UACA,MAAM4M,kBAAkB,GAAGp5N,QAAQ,EAAEtjI,GAAV,CAAcwjS,mEAAd,KAA2C,IAAtE;UACAj8M,OAAO,CAACswQ,SAAR,GAAoB,IAApB;UACAtwQ,OAAO,CAAClrF,KAAR,GAAgBggW,MAAhB;UACA90Q,OAAO,CAACluE,QAAR,GAAmBqjV,kBAAnB;UACAn1Q,OAAO,CAAC+7C,QAAR,GAAmBA,QAAnB;;UACA,IAAI/7C,OAAO,CAACunQ,MAAZ,EAAoB;YAChB;YACA;YACAvnQ,OAAO,CAACunQ,MAAR,CAAeiK,YAAf,CAA4BsD,MAA5B,EAAoC90Q,OAAO,CAAC+7C,QAA5C;UACH;;UACD,KAAKw4N,mBAAL,CAAyBC,UAAzB,EAAqC,IAArC,EAA2Cx0Q,OAAO,CAAC0rE,QAAnD;QACH;MACJ,CA/BD,MAgCK;QACD;QACA,KAAK6oM,mBAAL,CAAyBC,UAAzB,EAAqC,IAArC,EAA2CxD,cAA3C;MACH;IACJ;EACJ;;AAhKgB;AAmKrB;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMoE,WAAN,CAAkB;EACd/nW,WAAW,CAACI,IAAD,EAAO;IACd,KAAKA,IAAL,GAAYA,IAAZ;IACA,KAAKqH,KAAL,GAAa,KAAKrH,IAAL,CAAU,KAAKA,IAAL,CAAUyE,MAAV,GAAmB,CAA7B,CAAb;EACH;;AAJa;;AAMlB,MAAMmjW,aAAN,CAAoB;EAChBhoW,WAAW,CAACm4Q,SAAD,EAAY1wQ,KAAZ,EAAmB;IAC1B,KAAK0wQ,SAAL,GAAiBA,SAAjB;IACA,KAAK1wQ,KAAL,GAAaA,KAAb;EACH;;AAJe;;AAMpB,SAASwgW,iBAAT,CAA2BR,MAA3B,EAAmClK,IAAnC,EAAyCoG,cAAzC,EAAyD;EACrD,MAAMoD,UAAU,GAAGU,MAAM,CAACtI,KAA1B;EACA,MAAM6H,QAAQ,GAAGzJ,IAAI,GAAGA,IAAI,CAAC4B,KAAR,GAAgB,IAArC;EACA,OAAO+I,mBAAmB,CAACnB,UAAD,EAAaC,QAAb,EAAuBrD,cAAvB,EAAuC,CAACoD,UAAU,CAACljW,KAAZ,CAAvC,CAA1B;AACH;;AACD,SAASskW,mBAAT,CAA6Bn5V,CAA7B,EAAgC;EAC5B,MAAMtH,gBAAgB,GAAGsH,CAAC,CAAC2vV,WAAF,GAAgB3vV,CAAC,CAAC2vV,WAAF,CAAcj3V,gBAA9B,GAAiD,IAA1E;EACA,IAAI,CAACA,gBAAD,IAAqBA,gBAAgB,CAAC7C,MAAjB,KAA4B,CAArD,EACI,OAAO,IAAP;EACJ,OAAO;IAAE6pG,IAAI,EAAE1/F,CAAR;IAAWo5V,MAAM,EAAE1gW;EAAnB,CAAP;AACH;;AACD,SAAS2gW,0BAAT,CAAoCC,eAApC,EAAqD55N,QAArD,EAA+D;EAC3D,MAAMo9H,SAAS,GAAGz6P,MAAM,EAAxB;EACA,MAAM5I,MAAM,GAAGimI,QAAQ,CAACtjI,GAAT,CAAak9V,eAAb,EAA8Bx8F,SAA9B,CAAf;;EACA,IAAIrjQ,MAAM,KAAKqjQ,SAAf,EAA0B;IACtB,IAAI,OAAOw8F,eAAP,KAA2B,UAA3B,IAAyC,CAACzoB,+DAAa,CAACyoB,eAAD,CAA3D,EAA8E;MAC1E;MACA,OAAOA,eAAP;IACH,CAHD,MAIK;MACD;MACA,OAAO55N,QAAQ,CAACtjI,GAAT,CAAak9V,eAAb,CAAP;IACH;EACJ;;EACD,OAAO7/V,MAAP;AACH;;AACD,SAASy/V,mBAAT,CAA6Bf,UAA7B,EAAyCC,QAAzC,EAAmDlE,QAAnD,EAA6DqF,UAA7D,EAAyEC,MAAM,GAAG;EAC9EC,mBAAmB,EAAE,EADyD;EAE9EC,iBAAiB,EAAE;AAF2D,CAAlF,EAGG;EACC,MAAMC,YAAY,GAAGjJ,iBAAiB,CAAC0H,QAAD,CAAtC,CADD,CAEC;;EACAD,UAAU,CAAC9oM,QAAX,CAAoBv0J,OAApB,CAA4B21J,CAAC,IAAI;IAC7BmpM,cAAc,CAACnpM,CAAD,EAAIkpM,YAAY,CAAClpM,CAAC,CAAC57J,KAAF,CAAQq2V,MAAT,CAAhB,EAAkCgJ,QAAlC,EAA4CqF,UAAU,CAACv2V,MAAX,CAAkB,CAACytJ,CAAC,CAAC57J,KAAH,CAAlB,CAA5C,EAA0E2kW,MAA1E,CAAd;IACA,OAAOG,YAAY,CAAClpM,CAAC,CAAC57J,KAAF,CAAQq2V,MAAT,CAAnB;EACH,CAHD,EAHD,CAOC;;EACApwV,OAAO,CAAC6+V,YAAD,EAAe,CAACp3V,CAAD,EAAIo/C,CAAJ,KAAU62S,6BAA6B,CAACj2V,CAAD,EAAI2xV,QAAQ,CAAC1qK,UAAT,CAAoB7nI,CAApB,CAAJ,EAA4B63S,MAA5B,CAAtD,CAAP;EACA,OAAOA,MAAP;AACH;;AACD,SAASI,cAAT,CAAwBzB,UAAxB,EAAoCC,QAApC,EAA8CzD,cAA9C,EAA8D4E,UAA9D,EAA0EC,MAAM,GAAG;EAC/EC,mBAAmB,EAAE,EAD0D;EAE/EC,iBAAiB,EAAE;AAF4D,CAAnF,EAGG;EACC,MAAMjB,MAAM,GAAGN,UAAU,CAACtjW,KAA1B;EACA,MAAM05V,IAAI,GAAG6J,QAAQ,GAAGA,QAAQ,CAACvjW,KAAZ,GAAoB,IAAzC;EACA,MAAM8uF,OAAO,GAAGgxQ,cAAc,GAAGA,cAAc,CAACnrK,UAAf,CAA0B2uK,UAAU,CAACtjW,KAAX,CAAiBq2V,MAA3C,CAAH,GAAwD,IAAtF,CAHD,CAIC;;EACA,IAAIqD,IAAI,IAAIkK,MAAM,CAAC9I,WAAP,KAAuBpB,IAAI,CAACoB,WAAxC,EAAqD;IACjD,MAAMkK,SAAS,GAAGC,2BAA2B,CAACvL,IAAD,EAAOkK,MAAP,EAAeA,MAAM,CAAC9I,WAAP,CAAmBoK,qBAAlC,CAA7C;;IACA,IAAIF,SAAJ,EAAe;MACXL,MAAM,CAACE,iBAAP,CAAyBx+V,IAAzB,CAA8B,IAAI69V,WAAJ,CAAgBQ,UAAhB,CAA9B;IACH,CAFD,MAGK;MACD;MACAd,MAAM,CAACrjV,IAAP,GAAcm5U,IAAI,CAACn5U,IAAnB;MACAqjV,MAAM,CAACzG,aAAP,GAAuBzD,IAAI,CAACyD,aAA5B;IACH,CATgD,CAUjD;;;IACA,IAAIyG,MAAM,CAACtvF,SAAX,EAAsB;MAClB+vF,mBAAmB,CAACf,UAAD,EAAaC,QAAb,EAAuBz0Q,OAAO,GAAGA,OAAO,CAAC0rE,QAAX,GAAsB,IAApD,EAA0DkqM,UAA1D,EAAsEC,MAAtE,CAAnB,CADkB,CAElB;IACH,CAHD,MAIK;MACDN,mBAAmB,CAACf,UAAD,EAAaC,QAAb,EAAuBzD,cAAvB,EAAuC4E,UAAvC,EAAmDC,MAAnD,CAAnB;IACH;;IACD,IAAIK,SAAS,IAAIl2Q,OAAb,IAAwBA,OAAO,CAACunQ,MAAhC,IAA0CvnQ,OAAO,CAACunQ,MAAR,CAAekK,WAA7D,EAA0E;MACtEoE,MAAM,CAACC,mBAAP,CAA2Bv+V,IAA3B,CAAgC,IAAI89V,aAAJ,CAAkBr1Q,OAAO,CAACunQ,MAAR,CAAe/hF,SAAjC,EAA4ColF,IAA5C,CAAhC;IACH;EACJ,CArBD,MAsBK;IACD,IAAIA,IAAJ,EAAU;MACNiK,6BAA6B,CAACJ,QAAD,EAAWz0Q,OAAX,EAAoB61Q,MAApB,CAA7B;IACH;;IACDA,MAAM,CAACE,iBAAP,CAAyBx+V,IAAzB,CAA8B,IAAI69V,WAAJ,CAAgBQ,UAAhB,CAA9B,EAJC,CAKD;;IACA,IAAId,MAAM,CAACtvF,SAAX,EAAsB;MAClB+vF,mBAAmB,CAACf,UAAD,EAAa,IAAb,EAAmBx0Q,OAAO,GAAGA,OAAO,CAAC0rE,QAAX,GAAsB,IAAhD,EAAsDkqM,UAAtD,EAAkEC,MAAlE,CAAnB,CADkB,CAElB;IACH,CAHD,MAIK;MACDN,mBAAmB,CAACf,UAAD,EAAa,IAAb,EAAmBxD,cAAnB,EAAmC4E,UAAnC,EAA+CC,MAA/C,CAAnB;IACH;EACJ;;EACD,OAAOA,MAAP;AACH;;AACD,SAASM,2BAAT,CAAqCvL,IAArC,EAA2CkK,MAA3C,EAAmDzhK,IAAnD,EAAyD;EACrD,IAAI,OAAOA,IAAP,KAAgB,UAApB,EAAgC;IAC5B,OAAOA,IAAI,CAACu3J,IAAD,EAAOkK,MAAP,CAAX;EACH;;EACD,QAAQzhK,IAAR;IACI,KAAK,kBAAL;MACI,OAAO,CAACqvJ,SAAS,CAACkI,IAAI,CAACj5V,GAAN,EAAWmjW,MAAM,CAACnjW,GAAlB,CAAjB;;IACJ,KAAK,+BAAL;MACI,OAAO,CAAC+wV,SAAS,CAACkI,IAAI,CAACj5V,GAAN,EAAWmjW,MAAM,CAACnjW,GAAlB,CAAV,IACH,CAAC2vV,YAAY,CAACsJ,IAAI,CAACj8Q,WAAN,EAAmBmmR,MAAM,CAACnmR,WAA1B,CADjB;;IAEJ,KAAK,QAAL;MACI,OAAO,IAAP;;IACJ,KAAK,2BAAL;MACI,OAAO,CAACigR,yBAAyB,CAAChE,IAAD,EAAOkK,MAAP,CAA1B,IACH,CAACxT,YAAY,CAACsJ,IAAI,CAACj8Q,WAAN,EAAmBmmR,MAAM,CAACnmR,WAA1B,CADjB;;IAEJ,KAAK,cAAL;IACA;MACI,OAAO,CAACigR,yBAAyB,CAAChE,IAAD,EAAOkK,MAAP,CAAjC;EAbR;AAeH;;AACD,SAASD,6BAAT,CAAuC//V,KAAvC,EAA8CkrF,OAA9C,EAAuD61Q,MAAvD,EAA+D;EAC3D,MAAMnqM,QAAQ,GAAGqhM,iBAAiB,CAACj4V,KAAD,CAAlC;EACA,MAAMoK,CAAC,GAAGpK,KAAK,CAAC5D,KAAhB;EACAiG,OAAO,CAACu0J,QAAD,EAAW,CAAC3vD,IAAD,EAAO00P,SAAP,KAAqB;IACnC,IAAI,CAACvxV,CAAC,CAACsmQ,SAAP,EAAkB;MACdqvF,6BAA6B,CAAC94P,IAAD,EAAO/b,OAAP,EAAgB61Q,MAAhB,CAA7B;IACH,CAFD,MAGK,IAAI71Q,OAAJ,EAAa;MACd60Q,6BAA6B,CAAC94P,IAAD,EAAO/b,OAAO,CAAC0rE,QAAR,CAAiBm6B,UAAjB,CAA4B4qK,SAA5B,CAAP,EAA+CoF,MAA/C,CAA7B;IACH,CAFI,MAGA;MACDhB,6BAA6B,CAAC94P,IAAD,EAAO,IAAP,EAAa85P,MAAb,CAA7B;IACH;EACJ,CAVM,CAAP;;EAWA,IAAI,CAAC32V,CAAC,CAACsmQ,SAAP,EAAkB;IACdqwF,MAAM,CAACC,mBAAP,CAA2Bv+V,IAA3B,CAAgC,IAAI89V,aAAJ,CAAkB,IAAlB,EAAwBn2V,CAAxB,CAAhC;EACH,CAFD,MAGK,IAAI8gF,OAAO,IAAIA,OAAO,CAACunQ,MAAnB,IAA6BvnQ,OAAO,CAACunQ,MAAR,CAAekK,WAAhD,EAA6D;IAC9DoE,MAAM,CAACC,mBAAP,CAA2Bv+V,IAA3B,CAAgC,IAAI89V,aAAJ,CAAkBr1Q,OAAO,CAACunQ,MAAR,CAAe/hF,SAAjC,EAA4CtmQ,CAA5C,CAAhC;EACH,CAFI,MAGA;IACD22V,MAAM,CAACC,mBAAP,CAA2Bv+V,IAA3B,CAAgC,IAAI89V,aAAJ,CAAkB,IAAlB,EAAwBn2V,CAAxB,CAAhC;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASq9E,UAAT,CAAoB39E,CAApB,EAAuB;EACnB,OAAO,OAAOA,CAAP,KAAa,UAApB;AACH;;AACD,SAASy3V,SAAT,CAAmBz3V,CAAnB,EAAsB;EAClB,OAAO,OAAOA,CAAP,KAAa,SAApB;AACH;;AACD,SAAS03V,SAAT,CAAmBnmL,KAAnB,EAA0B;EACtB,OAAOA,KAAK,IAAI5zF,UAAU,CAAC4zF,KAAK,CAACn7K,OAAP,CAA1B;AACH;;AACD,SAASuhW,aAAT,CAAuBpmL,KAAvB,EAA8B;EAC1B,OAAOA,KAAK,IAAI5zF,UAAU,CAAC4zF,KAAK,CAACt7K,WAAP,CAA1B;AACH;;AACD,SAAS2hW,kBAAT,CAA4BrmL,KAA5B,EAAmC;EAC/B,OAAOA,KAAK,IAAI5zF,UAAU,CAAC4zF,KAAK,CAACp7K,gBAAP,CAA1B;AACH;;AACD,SAAS0hW,eAAT,CAAyBtmL,KAAzB,EAAgC;EAC5B,OAAOA,KAAK,IAAI5zF,UAAU,CAAC4zF,KAAK,CAACumL,aAAP,CAA1B;AACH;;AACD,SAASC,UAAT,CAAoBxmL,KAApB,EAA2B;EACvB,OAAOA,KAAK,IAAI5zF,UAAU,CAAC4zF,KAAK,CAACymL,QAAP,CAA1B;AACH;;AACD,SAASC,qCAAT,CAA+CriW,KAA/C,EAAsD;EAClD,OAAOsiW,0BAA0B,CAACtiW,KAAD,CAA1B,IAAqCkyV,SAAS,CAAClyV,KAAK,CAAC7C,GAAP,CAArD;AACH;;AACD,SAASmlW,0BAAT,CAAoCtiW,KAApC,EAA2C;EACvC,OAAOA,KAAK,IAAIA,KAAK,CAACi7V,0BAAD,CAArB;AACH;;AACD,SAASsH,YAAT,CAAsB95V,CAAtB,EAAyB;EACrB,OAAOA,CAAC,YAAY6pF,4CAAb,IAA2B7pF,CAAC,EAAE/P,IAAH,KAAY,YAA9C;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM8pW,aAAa,GAAGt4V,MAAM,CAAC,eAAD,CAA5B;;AACA,SAASu4V,qBAAT,GAAiC;EAC7B,OAAO1qW,yDAAS,CAACm4F,GAAG,IAAI;IACpB,OAAOjC,mDAAa,CAACiC,GAAG,CAACt4F,GAAJ,CAAQ4S,CAAC,IAAIA,CAAC,CAAChM,IAAF,CAAOxG,oDAAI,CAAC,CAAD,CAAX,EAAgBq9F,yDAAS,CAACmtQ,aAAD,CAAzB,CAAb,CAAD,CAAb,CACFhkW,IADE,CACG5G,mDAAG,CAAEq8G,OAAD,IAAa;MACvB,KAAK,MAAM3yG,MAAX,IAAqB2yG,OAArB,EAA8B;QAC1B,IAAI3yG,MAAM,KAAK,IAAf,EAAqB;UACjB;UACA;QACH,CAHD,MAIK,IAAIA,MAAM,KAAKkhW,aAAf,EAA8B;UAC/B;UACA,OAAOA,aAAP;QACH,CAHI,MAIA,IAAIlhW,MAAM,KAAK,KAAX,IAAoBA,MAAM,YAAYgsV,OAA1C,EAAmD;UACpD;UACA;UACA;UACA,OAAOhsV,MAAP;QACH;MACJ,CAhBsB,CAiBvB;;;MACA,OAAO,IAAP;IACH,CAnBY,CADN,EAoBHrJ,uDAAM,CAAE4mB,IAAD,IAAUA,IAAI,KAAK2jV,aAApB,CApBH,EAoBuCxqW,oDAAI,CAAC,CAAD,CApB3C,CAAP;EAqBH,CAtBe,CAAhB;AAuBH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0qW,WAAT,CAAqBn7N,QAArB,EAA+B83N,YAA/B,EAA6C;EACzC,OAAOttQ,yDAAQ,CAACn3F,CAAC,IAAI;IACjB,MAAM;MAAE+nW,cAAF;MAAkBh4O,eAAlB;MAAmCs2O,MAAM,EAAE;QAAEM,iBAAF;QAAqBD;MAArB;IAA3C,IAA0F1mW,CAAhG;;IACA,IAAI0mW,mBAAmB,CAAC5jW,MAApB,KAA+B,CAA/B,IAAoC6jW,iBAAiB,CAAC7jW,MAAlB,KAA6B,CAArE,EAAwE;MACpE,OAAOjG,wCAAE,CAAC,EAAE,GAAGmD,CAAL;QAAQgoW,YAAY,EAAE;MAAtB,CAAD,CAAT;IACH;;IACD,OAAOC,sBAAsB,CAACvB,mBAAD,EAAsBqB,cAAtB,EAAsCh4O,eAAtC,EAAuD4c,QAAvD,CAAtB,CACF/oI,IADE,CACGuzF,yDAAQ,CAACmwQ,aAAa,IAAI;MAChC,OAAOA,aAAa,IAAIL,SAAS,CAACK,aAAD,CAA1B,GACHY,oBAAoB,CAACH,cAAD,EAAiBpB,iBAAjB,EAAoCh6N,QAApC,EAA8C83N,YAA9C,CADjB,GAEH5nW,wCAAE,CAACyqW,aAAD,CAFN;IAGH,CAJiB,CADX,EAKHtqW,mDAAG,CAACgrW,YAAY,KAAK,EAAE,GAAGhoW,CAAL;MAAQgoW;IAAR,CAAL,CAAb,CALA,CAAP;EAMH,CAXc,CAAf;AAYH;;AACD,SAASC,sBAAT,CAAgCxB,MAAhC,EAAwC0B,SAAxC,EAAmDC,OAAnD,EAA4Dz7N,QAA5D,EAAsE;EAClE,OAAOlwI,0CAAI,CAACgqW,MAAD,CAAJ,CAAa7iW,IAAb,CAAkBuzF,yDAAQ,CAACg+O,KAAK,IAAIkzB,gBAAgB,CAAClzB,KAAK,CAAC/+D,SAAP,EAAkB++D,KAAK,CAACzvU,KAAxB,EAA+B0iW,OAA/B,EAAwCD,SAAxC,EAAmDx7N,QAAnD,CAA1B,CAA1B,EAAmH/0C,sDAAK,CAAClxF,MAAM,IAAI;IACtI,OAAOA,MAAM,KAAK,IAAlB;EACH,CAF8H,EAE5H,IAF4H,CAAxH,CAAP;AAGH;;AACD,SAASwhW,oBAAT,CAA8B1J,cAA9B,EAA8CiI,MAA9C,EAAsD95N,QAAtD,EAAgE83N,YAAhE,EAA8E;EAC1E,OAAOhoW,0CAAI,CAACgqW,MAAD,CAAJ,CAAa7iW,IAAb,CAAkB3G,0DAAS,CAAEk4U,KAAD,IAAW;IAC1C,OAAOllU,6CAAM,CAACq4V,wBAAwB,CAACnzB,KAAK,CAACzvU,KAAN,CAAYkoD,MAAb,EAAqB62S,YAArB,CAAzB,EAA6D8D,mBAAmB,CAACpzB,KAAK,CAACzvU,KAAP,EAAc++V,YAAd,CAAhF,EAA6G+D,mBAAmB,CAAChK,cAAD,EAAiBrpB,KAAK,CAAC92U,IAAvB,EAA6BsuI,QAA7B,CAAhI,EAAwK87N,cAAc,CAACjK,cAAD,EAAiBrpB,KAAK,CAACzvU,KAAvB,EAA8BinI,QAA9B,CAAtL,CAAb;EACH,CAFiC,CAA3B,EAEH/0C,sDAAK,CAAClxF,MAAM,IAAI;IAChB,OAAOA,MAAM,KAAK,IAAlB;EACH,CAFQ,EAEN,IAFM,CAFF,CAAP;AAKH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS6hW,mBAAT,CAA6BpP,QAA7B,EAAuCsL,YAAvC,EAAqD;EACjD,IAAItL,QAAQ,KAAK,IAAb,IAAqBsL,YAAzB,EAAuC;IACnCA,YAAY,CAAC,IAAI3H,eAAJ,CAAoB3D,QAApB,CAAD,CAAZ;EACH;;EACD,OAAOt8V,wCAAE,CAAC,IAAD,CAAT;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyrW,wBAAT,CAAkCnP,QAAlC,EAA4CsL,YAA5C,EAA0D;EACtD,IAAItL,QAAQ,KAAK,IAAb,IAAqBsL,YAAzB,EAAuC;IACnCA,YAAY,CAAC,IAAI9H,oBAAJ,CAAyBxD,QAAzB,CAAD,CAAZ;EACH;;EACD,OAAOt8V,wCAAE,CAAC,IAAD,CAAT;AACH;;AACD,SAAS4rW,cAAT,CAAwBN,SAAxB,EAAmCO,SAAnC,EAA8C/7N,QAA9C,EAAwD;EACpD,MAAMlnI,WAAW,GAAGijW,SAAS,CAAC9L,WAAV,GAAwB8L,SAAS,CAAC9L,WAAV,CAAsBn3V,WAA9C,GAA4D,IAAhF;EACA,IAAI,CAACA,WAAD,IAAgBA,WAAW,CAAC3C,MAAZ,KAAuB,CAA3C,EACI,OAAOjG,wCAAE,CAAC,IAAD,CAAT;EACJ,MAAM8rW,sBAAsB,GAAGljW,WAAW,CAACzI,GAAZ,CAAiByI,WAAD,IAAiB;IAC5D,OAAOyuF,4CAAK,CAAC,MAAM;MACf,MAAM00Q,eAAe,GAAGtE,uBAAuB,CAACoE,SAAD,CAAvB,IAAsC/7N,QAA9D;MACA,MAAMo0C,KAAK,GAAGulL,0BAA0B,CAAC7gW,WAAD,EAAcmjW,eAAd,CAAxC;MACA,MAAMC,QAAQ,GAAG1B,aAAa,CAACpmL,KAAD,CAAb,GACbA,KAAK,CAACt7K,WAAN,CAAkBijW,SAAlB,EAA6BP,SAA7B,CADa,GAEbS,eAAe,CAACz6E,YAAhB,CAA6B,MAAMptG,KAAK,CAAC2nL,SAAD,EAAYP,SAAZ,CAAxC,CAFJ;MAGA,OAAO5V,kBAAkB,CAACsW,QAAD,CAAlB,CAA6BjlW,IAA7B,CAAkCg0F,sDAAK,EAAvC,CAAP;IACH,CAPW,CAAZ;EAQH,CAT8B,CAA/B;EAUA,OAAO/6F,wCAAE,CAAC8rW,sBAAD,CAAF,CAA2B/kW,IAA3B,CAAgCikW,qBAAqB,EAArD,CAAP;AACH;;AACD,SAASW,mBAAT,CAA6BL,SAA7B,EAAwC9pW,IAAxC,EAA8CsuI,QAA9C,EAAwD;EACpD,MAAM+7N,SAAS,GAAGrqW,IAAI,CAACA,IAAI,CAACyE,MAAL,GAAc,CAAf,CAAtB;EACA,MAAMgmW,sBAAsB,GAAGzqW,IAAI,CAACuoF,KAAL,CAAW,CAAX,EAAcvoF,IAAI,CAACyE,MAAL,GAAc,CAA5B,EAC1BkhI,OAD0B,GAE1BhnI,GAF0B,CAEtBiQ,CAAC,IAAIm5V,mBAAmB,CAACn5V,CAAD,CAFF,EAG1B5P,MAH0B,CAGnBwR,CAAC,IAAIA,CAAC,KAAK,IAHQ,CAA/B;EAIA,MAAMk6V,4BAA4B,GAAGD,sBAAsB,CAAC9rW,GAAvB,CAA4B6P,CAAD,IAAO;IACnE,OAAOqnF,4CAAK,CAAC,MAAM;MACf,MAAM80Q,YAAY,GAAGn8V,CAAC,CAACw5V,MAAF,CAASrpW,GAAT,CAAc2I,gBAAD,IAAsB;QACpD,MAAMijW,eAAe,GAAGtE,uBAAuB,CAACz3V,CAAC,CAAC8/F,IAAH,CAAvB,IAAmCggC,QAA3D;QACA,MAAMo0C,KAAK,GAAGulL,0BAA0B,CAAC3gW,gBAAD,EAAmBijW,eAAnB,CAAxC;QACA,MAAMC,QAAQ,GAAGzB,kBAAkB,CAACrmL,KAAD,CAAlB,GACbA,KAAK,CAACp7K,gBAAN,CAAuB+iW,SAAvB,EAAkCP,SAAlC,CADa,GAEbS,eAAe,CAACz6E,YAAhB,CAA6B,MAAMptG,KAAK,CAAC2nL,SAAD,EAAYP,SAAZ,CAAxC,CAFJ;QAGA,OAAO5V,kBAAkB,CAACsW,QAAD,CAAlB,CAA6BjlW,IAA7B,CAAkCg0F,sDAAK,EAAvC,CAAP;MACH,CAPoB,CAArB;MAQA,OAAO/6F,wCAAE,CAACmsW,YAAD,CAAF,CAAiBplW,IAAjB,CAAsBikW,qBAAqB,EAA3C,CAAP;IACH,CAVW,CAAZ;EAWH,CAZoC,CAArC;EAaA,OAAOhrW,wCAAE,CAACksW,4BAAD,CAAF,CAAiCnlW,IAAjC,CAAsCikW,qBAAqB,EAA3D,CAAP;AACH;;AACD,SAASQ,gBAAT,CAA0BjyF,SAA1B,EAAqC6yF,OAArC,EAA8Cb,OAA9C,EAAuDD,SAAvD,EAAkEx7N,QAAlE,EAA4E;EACxE,MAAM26N,aAAa,GAAG2B,OAAO,IAAIA,OAAO,CAACrM,WAAnB,GAAiCqM,OAAO,CAACrM,WAAR,CAAoB0K,aAArD,GAAqE,IAA3F;EACA,IAAI,CAACA,aAAD,IAAkBA,aAAa,CAACxkW,MAAd,KAAyB,CAA/C,EACI,OAAOjG,wCAAE,CAAC,IAAD,CAAT;EACJ,MAAMqsW,wBAAwB,GAAG5B,aAAa,CAACtqW,GAAd,CAAmB0gK,CAAD,IAAO;IACtD,MAAMkrM,eAAe,GAAGtE,uBAAuB,CAAC2E,OAAD,CAAvB,IAAoCt8N,QAA5D;IACA,MAAMo0C,KAAK,GAAGulL,0BAA0B,CAAC5oM,CAAD,EAAIkrM,eAAJ,CAAxC;IACA,MAAMC,QAAQ,GAAGxB,eAAe,CAACtmL,KAAD,CAAf,GACbA,KAAK,CAACumL,aAAN,CAAoBlxF,SAApB,EAA+B6yF,OAA/B,EAAwCb,OAAxC,EAAiDD,SAAjD,CADa,GAEbS,eAAe,CAACz6E,YAAhB,CAA6B,MAAMptG,KAAK,CAACq1F,SAAD,EAAY6yF,OAAZ,EAAqBb,OAArB,EAA8BD,SAA9B,CAAxC,CAFJ;IAGA,OAAO5V,kBAAkB,CAACsW,QAAD,CAAlB,CAA6BjlW,IAA7B,CAAkCg0F,sDAAK,EAAvC,CAAP;EACH,CAPgC,CAAjC;EAQA,OAAO/6F,wCAAE,CAACqsW,wBAAD,CAAF,CAA6BtlW,IAA7B,CAAkCikW,qBAAqB,EAAvD,CAAP;AACH;;AACD,SAASsB,gBAAT,CAA0Bx8N,QAA1B,EAAoCjnI,KAApC,EAA2Cy2K,QAA3C,EAAqDokL,aAArD,EAAoE;EAChE,MAAM36V,OAAO,GAAGF,KAAK,CAACE,OAAtB;;EACA,IAAIA,OAAO,KAAKpF,SAAZ,IAAyBoF,OAAO,CAAC9C,MAAR,KAAmB,CAAhD,EAAmD;IAC/C,OAAOjG,wCAAE,CAAC,IAAD,CAAT;EACH;;EACD,MAAMusW,kBAAkB,GAAGxjW,OAAO,CAAC5I,GAAR,CAAaqsW,cAAD,IAAoB;IACvD,MAAMtoL,KAAK,GAAGulL,0BAA0B,CAAC+C,cAAD,EAAiB18N,QAAjB,CAAxC;IACA,MAAMk8N,QAAQ,GAAG3B,SAAS,CAACnmL,KAAD,CAAT,GACbA,KAAK,CAACn7K,OAAN,CAAcF,KAAd,EAAqBy2K,QAArB,CADa,GAEbxvC,QAAQ,CAACwhJ,YAAT,CAAsB,MAAMptG,KAAK,CAACr7K,KAAD,EAAQy2K,QAAR,CAAjC,CAFJ;IAGA,OAAOo2K,kBAAkB,CAACsW,QAAD,CAAzB;EACH,CAN0B,CAA3B;EAOA,OAAOhsW,wCAAE,CAACusW,kBAAD,CAAF,CACFxlW,IADE,CACGikW,qBAAqB,EADxB,EAC4ByB,iBAAiB,CAAC/I,aAAD,CAD7C,CAAP;AAEH;;AACD,SAAS+I,iBAAT,CAA2B/I,aAA3B,EAA0C;EACtC,OAAO38V,2CAAI,CAACq3F,oDAAG,CAAEv0F,MAAD,IAAY;IACxB,IAAI,CAAC4wV,SAAS,CAAC5wV,MAAD,CAAd,EACI;IACJ,MAAM45V,0BAA0B,CAACC,aAAD,EAAgB75V,MAAhB,CAAhC;EACH,CAJc,CAAJ,EAIP1J,mDAAG,CAAC0J,MAAM,IAAIA,MAAM,KAAK,IAAtB,CAJI,CAAX;AAKH;;AACD,SAAS6iW,iBAAT,CAA2B58N,QAA3B,EAAqCjnI,KAArC,EAA4Cy2K,QAA5C,EAAsDokL,aAAtD,EAAqE;EACjE,MAAMiH,QAAQ,GAAG9hW,KAAK,CAAC8hW,QAAvB;EACA,IAAI,CAACA,QAAD,IAAaA,QAAQ,CAAC1kW,MAAT,KAAoB,CAArC,EACI,OAAOjG,wCAAE,CAAC,IAAD,CAAT;EACJ,MAAM2sW,mBAAmB,GAAGhC,QAAQ,CAACxqW,GAAT,CAAaqsW,cAAc,IAAI;IACvD,MAAMtoL,KAAK,GAAGulL,0BAA0B,CAAC+C,cAAD,EAAiB18N,QAAjB,CAAxC;IACA,MAAMk8N,QAAQ,GAAGtB,UAAU,CAACxmL,KAAD,CAAV,GACbA,KAAK,CAACymL,QAAN,CAAe9hW,KAAf,EAAsBy2K,QAAtB,CADa,GAEbxvC,QAAQ,CAACwhJ,YAAT,CAAsB,MAAMptG,KAAK,CAACr7K,KAAD,EAAQy2K,QAAR,CAAjC,CAFJ;IAGA,OAAOo2K,kBAAkB,CAACsW,QAAD,CAAzB;EACH,CAN2B,CAA5B;EAOA,OAAOhsW,wCAAE,CAAC2sW,mBAAD,CAAF,CACF5lW,IADE,CACGikW,qBAAqB,EADxB,EAC4ByB,iBAAiB,CAAC/I,aAAD,CAD7C,CAAP;AAEH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMkJ,SAAS,GAAG;EACdn4N,OAAO,EAAE,KADK;EAEdo4N,gBAAgB,EAAE,EAFJ;EAGdC,iBAAiB,EAAE,EAHL;EAIdjvR,UAAU,EAAE,EAJE;EAKdkvR,uBAAuB,EAAE;AALX,CAAlB;;AAOA,SAASC,eAAT,CAAyBjY,YAAzB,EAAuClsV,KAAvC,EAA8Cy2K,QAA9C,EAAwDxvC,QAAxD,EAAkE4zN,aAAlE,EAAiF;EAC7E,MAAM75V,MAAM,GAAG6wD,KAAK,CAACq6R,YAAD,EAAelsV,KAAf,EAAsBy2K,QAAtB,CAApB;;EACA,IAAI,CAACz1K,MAAM,CAAC4qI,OAAZ,EAAqB;IACjB,OAAOz0I,wCAAE,CAAC6J,MAAD,CAAT;EACH,CAJ4E,CAK7E;EACA;;;EACAimI,QAAQ,GAAGo2N,gCAAgC,CAACr9V,KAAD,EAAQinI,QAAR,CAA3C;EACA,OAAO48N,iBAAiB,CAAC58N,QAAD,EAAWjnI,KAAX,EAAkBy2K,QAAlB,EAA4BokL,aAA5B,CAAjB,CACF38V,IADE,CACG5G,mDAAG,CAAEwS,CAAD,IAAOA,CAAC,KAAK,IAAN,GAAa9I,MAAb,GAAsB,EAAE,GAAG+iW;EAAL,CAA9B,CADN,CAAP;AAEH;;AACD,SAASlyS,KAAT,CAAeq6R,YAAf,EAA6BlsV,KAA7B,EAAoCy2K,QAApC,EAA8C;EAC1C,IAAIz2K,KAAK,CAACrH,IAAN,KAAe,EAAnB,EAAuB;IACnB,IAAIqH,KAAK,CAACmsV,SAAN,KAAoB,MAApB,KAA+BD,YAAY,CAACvnH,WAAb,MAA8BluD,QAAQ,CAACr5K,MAAT,GAAkB,CAA/E,CAAJ,EAAuF;MACnF,OAAO,EAAE,GAAG2mW;MAAL,CAAP;IACH;;IACD,OAAO;MACHn4N,OAAO,EAAE,IADN;MAEHo4N,gBAAgB,EAAE,EAFf;MAGHC,iBAAiB,EAAExtL,QAHhB;MAIHzhG,UAAU,EAAE,EAJT;MAKHkvR,uBAAuB,EAAE;IALtB,CAAP;EAOH;;EACD,MAAMlzM,OAAO,GAAGhxJ,KAAK,CAACgxJ,OAAN,IAAiBi7L,iBAAjC;EACA,MAAMpnS,GAAG,GAAGmsG,OAAO,CAACylB,QAAD,EAAWy1K,YAAX,EAAyBlsV,KAAzB,CAAnB;EACA,IAAI,CAAC6kD,GAAL,EACI,OAAO,EAAE,GAAGk/S;EAAL,CAAP;EACJ,MAAM3X,SAAS,GAAG,EAAlB;EACA/pV,OAAO,CAACwiD,GAAG,CAACunS,SAAL,EAAgB,CAACtiV,CAAD,EAAIo/C,CAAJ,KAAU;IAC7BkjS,SAAS,CAACljS,CAAD,CAAT,GAAep/C,CAAC,CAACnR,IAAjB;EACH,CAFM,CAAP;EAGA,MAAMq8E,UAAU,GAAGnwB,GAAG,CAACynS,QAAJ,CAAalvV,MAAb,GAAsB,CAAtB,GACf,EAAE,GAAGgvV,SAAL;IAAgB,GAAGvnS,GAAG,CAACynS,QAAJ,CAAaznS,GAAG,CAACynS,QAAJ,CAAalvV,MAAb,GAAsB,CAAnC,EAAsC43E;EAAzD,CADe,GAEfo3Q,SAFJ;EAGA,OAAO;IACHxgN,OAAO,EAAE,IADN;IAEHo4N,gBAAgB,EAAEn/S,GAAG,CAACynS,QAFnB;IAGH2X,iBAAiB,EAAExtL,QAAQ,CAACv1F,KAAT,CAAer8B,GAAG,CAACynS,QAAJ,CAAalvV,MAA5B,CAHhB;IAIH;IACA43E,UALG;IAMHkvR,uBAAuB,EAAEr/S,GAAG,CAACunS,SAAJ,IAAiB;EANvC,CAAP;AAQH;;AACD,SAASxzV,KAAT,CAAeszV,YAAf,EAA6B8X,gBAA7B,EAA+CI,cAA/C,EAA+D13V,MAA/D,EAAuE23V,sBAAsB,GAAG,WAAhG,EAA6G;EACzG,IAAID,cAAc,CAAChnW,MAAf,GAAwB,CAAxB,IACAknW,wCAAwC,CAACpY,YAAD,EAAekY,cAAf,EAA+B13V,MAA/B,CAD5C,EACoF;IAChF,MAAM7E,CAAC,GAAG,IAAIolV,eAAJ,CAAoB+W,gBAApB,EAAsCO,2BAA2B,CAACrY,YAAD,EAAe8X,gBAAf,EAAiCt3V,MAAjC,EAAyC,IAAIugV,eAAJ,CAAoBmX,cAApB,EAAoClY,YAAY,CAACt1L,QAAjD,CAAzC,CAAjE,CAAV;IACA/uJ,CAAC,CAAC28V,cAAF,GAAmBtY,YAAnB;IACArkV,CAAC,CAAC48V,kBAAF,GAAuBT,gBAAgB,CAAC5mW,MAAxC;IACA,OAAO;MAAE8uV,YAAY,EAAErkV,CAAhB;MAAmBu8V,cAAc,EAAE;IAAnC,CAAP;EACH;;EACD,IAAIA,cAAc,CAAChnW,MAAf,KAA0B,CAA1B,IACAsnW,wBAAwB,CAACxY,YAAD,EAAekY,cAAf,EAA+B13V,MAA/B,CAD5B,EACoE;IAChE,MAAM7E,CAAC,GAAG,IAAIolV,eAAJ,CAAoBf,YAAY,CAACz1K,QAAjC,EAA2CkuL,+BAA+B,CAACzY,YAAD,EAAe8X,gBAAf,EAAiCI,cAAjC,EAAiD13V,MAAjD,EAAyDw/U,YAAY,CAACt1L,QAAtE,EAAgFytM,sBAAhF,CAA1E,CAAV;IACAx8V,CAAC,CAAC28V,cAAF,GAAmBtY,YAAnB;IACArkV,CAAC,CAAC48V,kBAAF,GAAuBT,gBAAgB,CAAC5mW,MAAxC;IACA,OAAO;MAAE8uV,YAAY,EAAErkV,CAAhB;MAAmBu8V;IAAnB,CAAP;EACH;;EACD,MAAMv8V,CAAC,GAAG,IAAIolV,eAAJ,CAAoBf,YAAY,CAACz1K,QAAjC,EAA2Cy1K,YAAY,CAACt1L,QAAxD,CAAV;EACA/uJ,CAAC,CAAC28V,cAAF,GAAmBtY,YAAnB;EACArkV,CAAC,CAAC48V,kBAAF,GAAuBT,gBAAgB,CAAC5mW,MAAxC;EACA,OAAO;IAAE8uV,YAAY,EAAErkV,CAAhB;IAAmBu8V;EAAnB,CAAP;AACH;;AACD,SAASO,+BAAT,CAAyCzY,YAAzC,EAAuD8X,gBAAvD,EAAyEI,cAAzE,EAAyF1F,MAAzF,EAAiG9nM,QAAjG,EAA2GytM,sBAA3G,EAAmI;EAC/H,MAAMx/S,GAAG,GAAG,EAAZ;;EACA,KAAK,MAAMz6C,CAAX,IAAgBs0V,MAAhB,EAAwB;IACpB,IAAIkG,cAAc,CAAC1Y,YAAD,EAAekY,cAAf,EAA+Bh6V,CAA/B,CAAd,IAAmD,CAACwsJ,QAAQ,CAAC4nM,SAAS,CAACp0V,CAAD,CAAV,CAAhE,EAAgF;MAC5E,MAAMvC,CAAC,GAAG,IAAIolV,eAAJ,CAAoB,EAApB,EAAwB,EAAxB,CAAV;MACAplV,CAAC,CAAC28V,cAAF,GAAmBtY,YAAnB;;MACA,IAAImY,sBAAsB,KAAK,QAA/B,EAAyC;QACrCx8V,CAAC,CAAC48V,kBAAF,GAAuBvY,YAAY,CAACz1K,QAAb,CAAsBr5K,MAA7C;;QACA,IAAI,OAAOnC,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAA1C,EAAqD;UACjD4M,CAAC,CAACg9V,2BAAF,GAAgCb,gBAAgB,CAAC5mW,MAAjD;QACH;MACJ,CALD,MAMK;QACDyK,CAAC,CAAC48V,kBAAF,GAAuBT,gBAAgB,CAAC5mW,MAAxC;MACH;;MACDynD,GAAG,CAAC25S,SAAS,CAACp0V,CAAD,CAAV,CAAH,GAAoBvC,CAApB;IACH;EACJ;;EACD,OAAO,EAAE,GAAG+uJ,QAAL;IAAe,GAAG/xG;EAAlB,CAAP;AACH;;AACD,SAAS0/S,2BAAT,CAAqCrY,YAArC,EAAmD8X,gBAAnD,EAAqEtF,MAArE,EAA6EoG,cAA7E,EAA6F;EACzF,MAAMjgT,GAAG,GAAG,EAAZ;EACAA,GAAG,CAACgnS,cAAD,CAAH,GAAsBiZ,cAAtB;EACAA,cAAc,CAACN,cAAf,GAAgCtY,YAAhC;EACA4Y,cAAc,CAACL,kBAAf,GAAoCT,gBAAgB,CAAC5mW,MAArD;;EACA,KAAK,MAAMgN,CAAX,IAAgBs0V,MAAhB,EAAwB;IACpB,IAAIt0V,CAAC,CAACzR,IAAF,KAAW,EAAX,IAAiB6lW,SAAS,CAACp0V,CAAD,CAAT,KAAiByhV,cAAtC,EAAsD;MAClD,MAAMhkV,CAAC,GAAG,IAAIolV,eAAJ,CAAoB,EAApB,EAAwB,EAAxB,CAAV;MACAplV,CAAC,CAAC28V,cAAF,GAAmBtY,YAAnB;MACArkV,CAAC,CAAC48V,kBAAF,GAAuBT,gBAAgB,CAAC5mW,MAAxC;MACAynD,GAAG,CAAC25S,SAAS,CAACp0V,CAAD,CAAV,CAAH,GAAoBvC,CAApB;IACH;EACJ;;EACD,OAAOg9C,GAAP;AACH;;AACD,SAASy/S,wCAAT,CAAkDpY,YAAlD,EAAgEkY,cAAhE,EAAgF1F,MAAhF,EAAwF;EACpF,OAAOA,MAAM,CAACnsR,IAAP,CAAYnoE,CAAC,IAAIw6V,cAAc,CAAC1Y,YAAD,EAAekY,cAAf,EAA+Bh6V,CAA/B,CAAd,IAAmDo0V,SAAS,CAACp0V,CAAD,CAAT,KAAiByhV,cAArF,CAAP;AACH;;AACD,SAAS6Y,wBAAT,CAAkCxY,YAAlC,EAAgDkY,cAAhD,EAAgE1F,MAAhE,EAAwE;EACpE,OAAOA,MAAM,CAACnsR,IAAP,CAAYnoE,CAAC,IAAIw6V,cAAc,CAAC1Y,YAAD,EAAekY,cAAf,EAA+Bh6V,CAA/B,CAA/B,CAAP;AACH;;AACD,SAASw6V,cAAT,CAAwB1Y,YAAxB,EAAsCkY,cAAtC,EAAsDh6V,CAAtD,EAAyD;EACrD,IAAI,CAAC8hV,YAAY,CAACvnH,WAAb,MAA8By/H,cAAc,CAAChnW,MAAf,GAAwB,CAAvD,KAA6DgN,CAAC,CAAC+hV,SAAF,KAAgB,MAAjF,EAAyF;IACrF,OAAO,KAAP;EACH;;EACD,OAAO/hV,CAAC,CAACzR,IAAF,KAAW,EAAlB;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASosW,gBAAT,CAA0B/kW,KAA1B,EAAiCglW,UAAjC,EAA6CvuL,QAA7C,EAAuDg8K,MAAvD,EAA+D;EAC3D;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI+L,SAAS,CAACx+V,KAAD,CAAT,KAAqByyV,MAArB,KACCA,MAAM,KAAK5G,cAAX,IAA6B,CAAC+Y,cAAc,CAACI,UAAD,EAAavuL,QAAb,EAAuBz2K,KAAvB,CAD7C,CAAJ,EACiF;IAC7E,OAAO,KAAP;EACH;;EACD,IAAIA,KAAK,CAACrH,IAAN,KAAe,IAAnB,EAAyB;IACrB,OAAO,IAAP;EACH;;EACD,OAAOk5D,KAAK,CAACmzS,UAAD,EAAahlW,KAAb,EAAoBy2K,QAApB,CAAL,CAAmC7qC,OAA1C;AACH;;AACD,SAASq5N,gBAAT,CAA0B/Y,YAA1B,EAAwCz1K,QAAxC,EAAkDg8K,MAAlD,EAA0D;EACtD,OAAOh8K,QAAQ,CAACr5K,MAAT,KAAoB,CAApB,IAAyB,CAAC8uV,YAAY,CAACt1L,QAAb,CAAsB67L,MAAtB,CAAjC;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMyS,aAAa,GAAG,OAAOjqW,SAAP,KAAqB,WAArB,IAAoCA,SAA1D;;AACA,MAAMkqW,SAAN,CAAgB;EACZ5sW,WAAW,CAAC2zV,YAAD,EAAe;IACtB,KAAKA,YAAL,GAAoBA,YAAY,IAAI,IAApC;EACH;;AAHW;;AAKhB,MAAMkZ,gBAAN,CAAuB;EACnB7sW,WAAW,CAAC66V,OAAD,EAAU;IACjB,KAAKA,OAAL,GAAeA,OAAf;EACH;;AAHkB;;AAKvB,SAASyC,OAAT,CAAiB3J,YAAjB,EAA+B;EAC3B,OAAOv7P,iDAAU,CAAC,IAAIw0Q,SAAJ,CAAcjZ,YAAd,CAAD,CAAjB;AACH;;AACD,SAASmZ,gBAAT,CAA0BC,OAA1B,EAAmC;EAC/B,OAAO30Q,iDAAU,CAAC,IAAIy0Q,gBAAJ,CAAqBE,OAArB,CAAD,CAAjB;AACH;;AACD,SAASC,oBAAT,CAA8BxK,UAA9B,EAA0C;EACtC,OAAOpqQ,iDAAU,CAAC,IAAI0L,2DAAJ,CAAkB;EAAK;EAAvB,EAAqE6oQ,aAAa,IAC/F,gEAA+DnK,UAAW,GAD7D,CAAD,CAAjB;AAEH;;AACD,SAASyK,YAAT,CAAsBxlW,KAAtB,EAA6B;EACzB,OAAO2wF,iDAAU,CAACsqQ,wBAAwB,CAACiK,aAAa,IACnD,+DAA8DllW,KAAK,CAACrH,IAAK,mBADpC,EACwD;EAAE;EAD1D,CAAzB,CAAjB;AAEH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAAS8sW,gBAAT,CAA0Bx+N,QAA1B,EAAoCy+N,YAApC,EAAkD7K,aAAlD,EAAiEzH,OAAjE,EAA0E1mV,MAA1E,EAAkF;EAC9E,OAAO,IAAIi5V,cAAJ,CAAmB1+N,QAAnB,EAA6By+N,YAA7B,EAA2C7K,aAA3C,EAA0DzH,OAA1D,EAAmE1mV,MAAnE,EAA2EzE,KAA3E,EAAP;AACH;;AACD,MAAM09V,cAAN,CAAqB;EACjBptW,WAAW,CAAC0uI,QAAD,EAAWy+N,YAAX,EAAyB7K,aAAzB,EAAwCzH,OAAxC,EAAiD1mV,MAAjD,EAAyD;IAChE,KAAKu6H,QAAL,GAAgBA,QAAhB;IACA,KAAKy+N,YAAL,GAAoBA,YAApB;IACA,KAAK7K,aAAL,GAAqBA,aAArB;IACA,KAAKzH,OAAL,GAAeA,OAAf;IACA,KAAK1mV,MAAL,GAAcA,MAAd;IACA,KAAKk5V,cAAL,GAAsB,IAAtB;EACH;;EACD39V,KAAK,GAAG;IACJ,MAAM49V,UAAU,GAAGjtW,KAAK,CAAC,KAAKw6V,OAAL,CAAa9zV,IAAd,EAAoB,EAApB,EAAwB,EAAxB,EAA4B,KAAKoN,MAAjC,CAAL,CAA8Cw/U,YAAjE,CADI,CAEJ;IACA;IACA;IACA;IACA;IACA;;IACA,MAAMwG,gBAAgB,GAAG,IAAIzF,eAAJ,CAAoB4Y,UAAU,CAACpvL,QAA/B,EAAyCovL,UAAU,CAACjvM,QAApD,CAAzB;IACA,MAAMkvM,SAAS,GAAG,KAAKC,kBAAL,CAAwB,KAAK9+N,QAA7B,EAAuC,KAAKv6H,MAA5C,EAAoDgmV,gBAApD,EAAsE7G,cAAtE,CAAlB;IACA,MAAMma,SAAS,GAAGF,SAAS,CAAC5nW,IAAV,CAAe5G,mDAAG,CAAEo7V,gBAAD,IAAsB;MACvD,OAAO,KAAKS,aAAL,CAAmB1B,kBAAkB,CAACiB,gBAAD,CAArC,EAAyD,KAAKU,OAAL,CAAav5Q,WAAtE,EAAmF,KAAKu5Q,OAAL,CAAa7zV,QAAhG,CAAP;IACH,CAFmC,CAAlB,CAAlB;IAGA,OAAOymW,SAAS,CAAC9nW,IAAV,CAAe1G,2DAAU,CAAE2Q,CAAD,IAAO;MACpC,IAAIA,CAAC,YAAYi9V,gBAAjB,EAAmC;QAC/B;QACA;QACA,KAAKQ,cAAL,GAAsB,KAAtB,CAH+B,CAI/B;;QACA,OAAO,KAAK/zS,KAAL,CAAW1pD,CAAC,CAACirV,OAAb,CAAP;MACH;;MACD,IAAIjrV,CAAC,YAAYg9V,SAAjB,EAA4B;QACxB,MAAM,KAAKc,YAAL,CAAkB99V,CAAlB,CAAN;MACH;;MACD,MAAMA,CAAN;IACH,CAZ+B,CAAzB,CAAP;EAaH;;EACD0pD,KAAK,CAACy9R,IAAD,EAAO;IACR,MAAMwW,SAAS,GAAG,KAAKC,kBAAL,CAAwB,KAAK9+N,QAA7B,EAAuC,KAAKv6H,MAA5C,EAAoD4iV,IAAI,CAAChwV,IAAzD,EAA+DusV,cAA/D,CAAlB;IACA,MAAMqa,OAAO,GAAGJ,SAAS,CAAC5nW,IAAV,CAAe5G,mDAAG,CAAEo7V,gBAAD,IAAsB;MACrD,OAAO,KAAKS,aAAL,CAAmB1B,kBAAkB,CAACiB,gBAAD,CAArC,EAAyDpD,IAAI,CAACz1Q,WAA9D,EAA2Ey1Q,IAAI,CAAC/vV,QAAhF,CAAP;IACH,CAFiC,CAAlB,CAAhB;IAGA,OAAO2mW,OAAO,CAAChoW,IAAR,CAAa1G,2DAAU,CAAE2Q,CAAD,IAAO;MAClC,IAAIA,CAAC,YAAYg9V,SAAjB,EAA4B;QACxB,MAAM,KAAKc,YAAL,CAAkB99V,CAAlB,CAAN;MACH;;MACD,MAAMA,CAAN;IACH,CAL6B,CAAvB,CAAP;EAMH;;EACD89V,YAAY,CAAC99V,CAAD,EAAI;IACZ,OAAO,IAAIk0F,2DAAJ,CAAkB;IAAK;IAAvB,EAAwD6oQ,aAAa,IAAK,0CAAyC/8V,CAAC,CAAC+jV,YAAa,GAAlI,CAAP;EACH;;EACDiH,aAAa,CAAC3B,aAAD,EAAgB33Q,WAAhB,EAA6Bt6E,QAA7B,EAAuC;IAChD,MAAMD,IAAI,GAAGw4K,UAAU,CAAC05K,aAAD,CAAvB;IACA,OAAO,IAAIxE,OAAJ,CAAY1tV,IAAZ,EAAkBu6E,WAAlB,EAA+Bt6E,QAA/B,CAAP;EACH;;EACDwmW,kBAAkB,CAAC9+N,QAAD,EAAWy3N,MAAX,EAAmBxS,YAAnB,EAAiCuG,MAAjC,EAAyC;IACvD,IAAIvG,YAAY,CAACz1K,QAAb,CAAsBr5K,MAAtB,KAAiC,CAAjC,IAAsC8uV,YAAY,CAACvnH,WAAb,EAA1C,EAAsE;MAClE,OAAO,KAAKwhI,cAAL,CAAoBl/N,QAApB,EAA8By3N,MAA9B,EAAsCxS,YAAtC,EACFhuV,IADE,CACG5G,mDAAG,CAAEs/J,QAAD,IAAc,IAAIq2L,eAAJ,CAAoB,EAApB,EAAwBr2L,QAAxB,CAAf,CADN,CAAP;IAEH;;IACD,OAAO,KAAKwvM,aAAL,CAAmBn/N,QAAnB,EAA6BilN,YAA7B,EAA2CwS,MAA3C,EAAmDxS,YAAY,CAACz1K,QAAhE,EAA0Eg8K,MAA1E,EAAkF,IAAlF,CAAP;EACH,CA7DgB,CA8DjB;;;EACA0T,cAAc,CAACl/N,QAAD,EAAWy3N,MAAX,EAAmBxS,YAAnB,EAAiC;IAC3C;IACA;IACA,MAAMqG,YAAY,GAAG,EAArB;;IACA,KAAK,MAAM17L,KAAX,IAAoB/4J,MAAM,CAAC+D,IAAP,CAAYqqV,YAAY,CAACt1L,QAAzB,CAApB,EAAwD;MACpD,IAAIC,KAAK,KAAK,SAAd,EAAyB;QACrB07L,YAAY,CAACjxO,OAAb,CAAqBu1C,KAArB;MACH,CAFD,MAGK;QACD07L,YAAY,CAAC9vV,IAAb,CAAkBo0J,KAAlB;MACH;IACJ;;IACD,OAAO9/J,0CAAI,CAACw7V,YAAD,CAAJ,CACFr0V,IADE,CACG3G,0DAAS,CAACw3V,WAAW,IAAI;MAC/B,MAAMl4L,KAAK,GAAGq1L,YAAY,CAACt1L,QAAb,CAAsBm4L,WAAtB,CAAd,CAD+B,CAE/B;MACA;MACA;;MACA,MAAMsX,YAAY,GAAG5H,qBAAqB,CAACC,MAAD,EAAS3P,WAAT,CAA1C;MACA,OAAO,KAAKgX,kBAAL,CAAwB9+N,QAAxB,EAAkCo/N,YAAlC,EAAgDxvM,KAAhD,EAAuDk4L,WAAvD,EACF7wV,IADE,CACG5G,mDAAG,CAACuQ,CAAC,KAAK;QAAE6uK,OAAO,EAAE7uK,CAAX;QAAc4qV,MAAM,EAAE1D;MAAtB,CAAL,CAAF,CADN,CAAP;IAEH,CARkB,CADZ,EASHv7P,qDAAI,CAAC,CAACojE,QAAD,EAAW0vM,aAAX,KAA6B;MAClC1vM,QAAQ,CAAC0vM,aAAa,CAAC7T,MAAf,CAAR,GAAiC6T,aAAa,CAAC5vL,OAA/C;MACA,OAAO9f,QAAP;IACH,CAHO,EAGL,EAHK,CATD,EAYCg1L,qDAAM,EAZP,CAAP;EAaH;;EACDwa,aAAa,CAACn/N,QAAD,EAAWilN,YAAX,EAAyBwS,MAAzB,EAAiCjoL,QAAjC,EAA2Cg8K,MAA3C,EAAmDmT,cAAnD,EAAmE;IAC5E,OAAO7uW,0CAAI,CAAC2nW,MAAD,CAAJ,CAAaxgW,IAAb,CAAkB3G,0DAAS,CAAC6S,CAAC,IAAI;MACpC,MAAM07V,SAAS,GAAG,KAAKS,yBAAL,CAA+Bt/N,QAA/B,EAAyCilN,YAAzC,EAAuDwS,MAAvD,EAA+Dt0V,CAA/D,EAAkEqsK,QAAlE,EAA4Eg8K,MAA5E,EAAoFmT,cAApF,CAAlB;MACA,OAAOE,SAAS,CAAC5nW,IAAV,CAAe1G,2DAAU,CAAE2Q,CAAD,IAAO;QACpC,IAAIA,CAAC,YAAYg9V,SAAjB,EAA4B;UACxB,OAAOhuW,wCAAE,CAAC,IAAD,CAAT;QACH;;QACD,MAAMgR,CAAN;MACH,CAL+B,CAAzB,CAAP;IAMH,CARiC,CAA3B,EAQH+pF,sDAAK,CAAErqF,CAAD,IAAO,CAAC,CAACA,CAAV,CARF,EAQgBrQ,2DAAU,CAAC,CAAC2Q,CAAD,EAAIgB,CAAJ,KAAU;MACxC,IAAI84V,YAAY,CAAC95V,CAAD,CAAhB,EAAqB;QACjB,IAAI88V,gBAAgB,CAAC/Y,YAAD,EAAez1K,QAAf,EAAyBg8K,MAAzB,CAApB,EAAsD;UAClD,OAAOt7V,wCAAE,CAAC,IAAI81V,eAAJ,CAAoB,EAApB,EAAwB,EAAxB,CAAD,CAAT;QACH;;QACD,OAAO4I,OAAO,CAAC3J,YAAD,CAAd;MACH;;MACD,MAAM/jV,CAAN;IACH,CARgC,CAR1B,CAAP;EAiBH;;EACDo+V,yBAAyB,CAACt/N,QAAD,EAAWilN,YAAX,EAAyBwS,MAAzB,EAAiC1+V,KAAjC,EAAwC0tV,KAAxC,EAA+C+E,MAA/C,EAAuDmT,cAAvD,EAAuE;IAC5F,IAAI,CAACb,gBAAgB,CAAC/kW,KAAD,EAAQksV,YAAR,EAAsBwB,KAAtB,EAA6B+E,MAA7B,CAArB,EAA2D;MACvD,OAAOoD,OAAO,CAAC3J,YAAD,CAAd;IACH;;IACD,IAAIlsV,KAAK,CAAC+6V,UAAN,KAAqBjgW,SAAzB,EAAoC;MAChC,OAAO,KAAK0rW,wBAAL,CAA8Bv/N,QAA9B,EAAwCilN,YAAxC,EAAsDlsV,KAAtD,EAA6D0tV,KAA7D,EAAoE+E,MAApE,CAAP;IACH;;IACD,IAAImT,cAAc,IAAI,KAAKA,cAA3B,EAA2C;MACvC,OAAO,KAAKa,sCAAL,CAA4Cx/N,QAA5C,EAAsDilN,YAAtD,EAAoEwS,MAApE,EAA4E1+V,KAA5E,EAAmF0tV,KAAnF,EAA0F+E,MAA1F,CAAP;IACH;;IACD,OAAOoD,OAAO,CAAC3J,YAAD,CAAd;EACH;;EACDua,sCAAsC,CAACx/N,QAAD,EAAWilN,YAAX,EAAyBwS,MAAzB,EAAiC1+V,KAAjC,EAAwCy2K,QAAxC,EAAkDg8K,MAAlD,EAA0D;IAC5F,IAAIzyV,KAAK,CAACrH,IAAN,KAAe,IAAnB,EAAyB;MACrB,OAAO,KAAK+tW,iDAAL,CAAuDz/N,QAAvD,EAAiEy3N,MAAjE,EAAyE1+V,KAAzE,EAAgFyyV,MAAhF,CAAP;IACH;;IACD,OAAO,KAAKkU,6CAAL,CAAmD1/N,QAAnD,EAA6DilN,YAA7D,EAA2EwS,MAA3E,EAAmF1+V,KAAnF,EAA0Fy2K,QAA1F,EAAoGg8K,MAApG,CAAP;EACH;;EACDiU,iDAAiD,CAACz/N,QAAD,EAAWy3N,MAAX,EAAmB1+V,KAAnB,EAA0ByyV,MAA1B,EAAkC;IAC/E,MAAM6S,OAAO,GAAG,KAAKsB,qBAAL,CAA2B,EAA3B,EAA+B5mW,KAAK,CAAC+6V,UAArC,EAAiD,EAAjD,CAAhB;;IACA,IAAI/6V,KAAK,CAAC+6V,UAAN,CAAiBr9V,UAAjB,CAA4B,GAA5B,CAAJ,EAAsC;MAClC,OAAO2nW,gBAAgB,CAACC,OAAD,CAAvB;IACH;;IACD,OAAO,KAAKuB,kBAAL,CAAwB7mW,KAAxB,EAA+BslW,OAA/B,EAAwCpnW,IAAxC,CAA6CuzF,yDAAQ,CAAEq1Q,WAAD,IAAiB;MAC1E,MAAMnuQ,KAAK,GAAG,IAAIs0P,eAAJ,CAAoB6Z,WAApB,EAAiC,EAAjC,CAAd;MACA,OAAO,KAAKV,aAAL,CAAmBn/N,QAAnB,EAA6BtuC,KAA7B,EAAoC+lQ,MAApC,EAA4CoI,WAA5C,EAAyDrU,MAAzD,EAAiE,KAAjE,CAAP;IACH,CAH2D,CAArD,CAAP;EAIH;;EACDkU,6CAA6C,CAAC1/N,QAAD,EAAWilN,YAAX,EAAyBwS,MAAzB,EAAiC1+V,KAAjC,EAAwCy2K,QAAxC,EAAkDg8K,MAAlD,EAA0D;IACnG,MAAM;MAAE7mN,OAAF;MAAWo4N,gBAAX;MAA6BC,iBAA7B;MAAgDC;IAAhD,IAA4EryS,KAAK,CAACq6R,YAAD,EAAelsV,KAAf,EAAsBy2K,QAAtB,CAAvF;IACA,IAAI,CAAC7qC,OAAL,EACI,OAAOiqN,OAAO,CAAC3J,YAAD,CAAd;IACJ,MAAMoZ,OAAO,GAAG,KAAKsB,qBAAL,CAA2B5C,gBAA3B,EAA6ChkW,KAAK,CAAC+6V,UAAnD,EAA+DmJ,uBAA/D,CAAhB;;IACA,IAAIlkW,KAAK,CAAC+6V,UAAN,CAAiBr9V,UAAjB,CAA4B,GAA5B,CAAJ,EAAsC;MAClC,OAAO2nW,gBAAgB,CAACC,OAAD,CAAvB;IACH;;IACD,OAAO,KAAKuB,kBAAL,CAAwB7mW,KAAxB,EAA+BslW,OAA/B,EAAwCpnW,IAAxC,CAA6CuzF,yDAAQ,CAAEq1Q,WAAD,IAAiB;MAC1E,OAAO,KAAKV,aAAL,CAAmBn/N,QAAnB,EAA6BilN,YAA7B,EAA2CwS,MAA3C,EAAmDoI,WAAW,CAACv8V,MAAZ,CAAmB05V,iBAAnB,CAAnD,EAA0FxR,MAA1F,EAAkG,KAAlG,CAAP;IACH,CAF2D,CAArD,CAAP;EAGH;;EACD+T,wBAAwB,CAACv/N,QAAD,EAAW8/N,eAAX,EAA4B/mW,KAA5B,EAAmCy2K,QAAnC,EAA6Cg8K,MAA7C,EAAqD;IACzE,IAAIzyV,KAAK,CAACrH,IAAN,KAAe,IAAnB,EAAyB;MACrB;MACAsuI,QAAQ,GAAGo2N,gCAAgC,CAACr9V,KAAD,EAAQinI,QAAR,CAA3C;;MACA,IAAIjnI,KAAK,CAACs+V,YAAV,EAAwB;QACpB,MAAM0I,OAAO,GAAGhnW,KAAK,CAACw9V,aAAN,GACZrmW,wCAAE,CAAC;UAAEunW,MAAM,EAAE1+V,KAAK,CAACw9V,aAAhB;UAA+Bv2N,QAAQ,EAAEjnI,KAAK,CAAC09V;QAA/C,CAAD,CADU,GAEZ,KAAKgI,YAAL,CAAkBpH,YAAlB,CAA+Br3N,QAA/B,EAAyCjnI,KAAzC,CAFJ;QAGA,OAAOgnW,OAAO,CAAC9oW,IAAR,CAAa5G,mDAAG,CAAE2vW,GAAD,IAAS;UAC7BjnW,KAAK,CAACw9V,aAAN,GAAsByJ,GAAG,CAACvI,MAA1B;UACA1+V,KAAK,CAAC09V,eAAN,GAAwBuJ,GAAG,CAAChgO,QAA5B;UACA,OAAO,IAAIgmN,eAAJ,CAAoBx2K,QAApB,EAA8B,EAA9B,CAAP;QACH,CAJsB,CAAhB,CAAP;MAKH;;MACD,OAAOt/K,wCAAE,CAAC,IAAI81V,eAAJ,CAAoBx2K,QAApB,EAA8B,EAA9B,CAAD,CAAT;IACH;;IACD,OAAO0tL,eAAe,CAAC4C,eAAD,EAAkB/mW,KAAlB,EAAyBy2K,QAAzB,EAAmCxvC,QAAnC,EAA6C,KAAK4zN,aAAlD,CAAf,CACF38V,IADE,CACGzG,yDAAS,CAAC,CAAC;MAAEm0I,OAAF;MAAWo4N,gBAAX;MAA6BC;IAA7B,CAAD,KAAsD;MACtE,IAAI,CAACr4N,OAAL,EACI,OAAOiqN,OAAO,CAACkR,eAAD,CAAd,CAFkE,CAGtE;;MACA9/N,QAAQ,GAAGjnI,KAAK,CAAC6qT,SAAN,IAAmB5jL,QAA9B;MACA,MAAMigO,YAAY,GAAG,KAAKC,cAAL,CAAoBlgO,QAApB,EAA8BjnI,KAA9B,EAAqCy2K,QAArC,CAArB;MACA,OAAOywL,YAAY,CAAChpW,IAAb,CAAkBuzF,yDAAQ,CAAE21Q,YAAD,IAAkB;QAChD,MAAMC,aAAa,GAAGD,YAAY,CAACngO,QAAb,IAAyBA,QAA/C;QACA,MAAMqgO,WAAW,GAAGF,YAAY,CAAC1I,MAAjC;QACA,MAAM;UAAExS,YAAY,EAAEqb,iBAAhB;UAAmCnD;QAAnC,IAAsDxrW,KAAK,CAACmuW,eAAD,EAAkB/C,gBAAlB,EAAoCC,iBAApC,EAAuDqD,WAAvD,CAAjE,CAHgD,CAIhD;;QACA,MAAMpb,YAAY,GAAG,IAAIe,eAAJ,CAAoBsa,iBAAiB,CAAC9wL,QAAtC,EAAgD8wL,iBAAiB,CAAC3wM,QAAlE,CAArB;;QACA,IAAIwtM,cAAc,CAAChnW,MAAf,KAA0B,CAA1B,IAA+B8uV,YAAY,CAACvnH,WAAb,EAAnC,EAA+D;UAC3D,MAAMmhI,SAAS,GAAG,KAAKK,cAAL,CAAoBkB,aAApB,EAAmCC,WAAnC,EAAgDpb,YAAhD,CAAlB;UACA,OAAO4Z,SAAS,CAAC5nW,IAAV,CAAe5G,mDAAG,CAAEs/J,QAAD,IAAc,IAAIq2L,eAAJ,CAAoB+W,gBAApB,EAAsCptM,QAAtC,CAAf,CAAlB,CAAP;QACH;;QACD,IAAI0wM,WAAW,CAAClqW,MAAZ,KAAuB,CAAvB,IAA4BgnW,cAAc,CAAChnW,MAAf,KAA0B,CAA1D,EAA6D;UACzD,OAAOjG,wCAAE,CAAC,IAAI81V,eAAJ,CAAoB+W,gBAApB,EAAsC,EAAtC,CAAD,CAAT;QACH;;QACD,MAAMwD,eAAe,GAAGhJ,SAAS,CAACx+V,KAAD,CAAT,KAAqByyV,MAA7C;QACA,MAAMqT,SAAS,GAAG,KAAKM,aAAL,CAAmBiB,aAAnB,EAAkCnb,YAAlC,EAAgDob,WAAhD,EAA6DlD,cAA7D,EAA6EoD,eAAe,GAAG3b,cAAH,GAAoB4G,MAAhH,EAAwH,IAAxH,CAAlB;QACA,OAAOqT,SAAS,CAAC5nW,IAAV,CAAe5G,mDAAG,CAAEmwW,EAAD,IAAQ,IAAIxa,eAAJ,CAAoB+W,gBAAgB,CAACz5V,MAAjB,CAAwBk9V,EAAE,CAAChxL,QAA3B,CAApB,EAA0DgxL,EAAE,CAAC7wM,QAA7D,CAAT,CAAlB,CAAP;MACH,CAhBgC,CAA1B,CAAP;IAiBH,CAvBkB,CADZ,CAAP;EAyBH;;EACDuwM,cAAc,CAAClgO,QAAD,EAAWjnI,KAAX,EAAkBy2K,QAAlB,EAA4B;IACtC,IAAIz2K,KAAK,CAAC42J,QAAV,EAAoB;MAChB;MACA,OAAOz/J,wCAAE,CAAC;QAAEunW,MAAM,EAAE1+V,KAAK,CAAC42J,QAAhB;QAA0B3vB;MAA1B,CAAD,CAAT;IACH;;IACD,IAAIjnI,KAAK,CAACs+V,YAAV,EAAwB;MACpB;MACA,IAAIt+V,KAAK,CAACw9V,aAAN,KAAwB1iW,SAA5B,EAAuC;QACnC,OAAO3D,wCAAE,CAAC;UAAEunW,MAAM,EAAE1+V,KAAK,CAACw9V,aAAhB;UAA+Bv2N,QAAQ,EAAEjnI,KAAK,CAAC09V;QAA/C,CAAD,CAAT;MACH;;MACD,OAAO+F,gBAAgB,CAACx8N,QAAD,EAAWjnI,KAAX,EAAkBy2K,QAAlB,EAA4B,KAAKokL,aAAjC,CAAhB,CACF38V,IADE,CACGuzF,yDAAQ,CAAEi2Q,gBAAD,IAAsB;QACrC,IAAIA,gBAAJ,EAAsB;UAClB,OAAO,KAAKhC,YAAL,CAAkBpH,YAAlB,CAA+Br3N,QAA/B,EAAyCjnI,KAAzC,EACF9B,IADE,CACGq3F,oDAAG,CAAE0xQ,GAAD,IAAS;YACnBjnW,KAAK,CAACw9V,aAAN,GAAsByJ,GAAG,CAACvI,MAA1B;YACA1+V,KAAK,CAAC09V,eAAN,GAAwBuJ,GAAG,CAAChgO,QAA5B;UACH,CAHY,CADN,CAAP;QAKH;;QACD,OAAOu+N,YAAY,CAACxlW,KAAD,CAAnB;MACH,CATiB,CADX,CAAP;IAWH;;IACD,OAAO7I,wCAAE,CAAC;MAAEunW,MAAM,EAAE,EAAV;MAAcz3N;IAAd,CAAD,CAAT;EACH;;EACD4/N,kBAAkB,CAAC7mW,KAAD,EAAQozV,OAAR,EAAiB;IAC/B,IAAIvuS,GAAG,GAAG,EAAV;IACA,IAAImzG,CAAC,GAAGo7L,OAAO,CAAC9zV,IAAhB;;IACA,OAAO,IAAP,EAAa;MACTulD,GAAG,GAAGA,GAAG,CAACt6C,MAAJ,CAAWytJ,CAAC,CAACye,QAAb,CAAN;;MACA,IAAIze,CAAC,CAAC81L,gBAAF,KAAuB,CAA3B,EAA8B;QAC1B,OAAO32V,wCAAE,CAAC0tD,GAAD,CAAT;MACH;;MACD,IAAImzG,CAAC,CAAC81L,gBAAF,GAAqB,CAArB,IAA0B,CAAC91L,CAAC,CAACpB,QAAF,CAAWi1L,cAAX,CAA/B,EAA2D;QACvD,OAAO0Z,oBAAoB,CAACvlW,KAAK,CAAC+6V,UAAP,CAA3B;MACH;;MACD/iM,CAAC,GAAGA,CAAC,CAACpB,QAAF,CAAWi1L,cAAX,CAAJ;IACH;EACJ;;EACD+a,qBAAqB,CAACnwL,QAAD,EAAWskL,UAAX,EAAuB3O,SAAvB,EAAkC;IACnD,OAAO,KAAKub,0BAAL,CAAgC5M,UAAhC,EAA4C,KAAKF,aAAL,CAAmB32U,KAAnB,CAAyB62U,UAAzB,CAA5C,EAAkFtkL,QAAlF,EAA4F21K,SAA5F,CAAP;EACH;;EACDub,0BAA0B,CAAC5M,UAAD,EAAa3H,OAAb,EAAsB38K,QAAtB,EAAgC21K,SAAhC,EAA2C;IACjE,MAAMkI,OAAO,GAAG,KAAKsT,kBAAL,CAAwB7M,UAAxB,EAAoC3H,OAAO,CAAC9zV,IAA5C,EAAkDm3K,QAAlD,EAA4D21K,SAA5D,CAAhB;IACA,OAAO,IAAIY,OAAJ,CAAYsH,OAAZ,EAAqB,KAAKuT,iBAAL,CAAuBzU,OAAO,CAACv5Q,WAA/B,EAA4C,KAAKu5Q,OAAL,CAAav5Q,WAAzD,CAArB,EAA4Fu5Q,OAAO,CAAC7zV,QAApG,CAAP;EACH;;EACDsoW,iBAAiB,CAACC,gBAAD,EAAmBC,YAAnB,EAAiC;IAC9C,MAAMljT,GAAG,GAAG,EAAZ;IACAxiD,OAAO,CAACylW,gBAAD,EAAmB,CAACh+V,CAAD,EAAIo/C,CAAJ,KAAU;MAChC,MAAM8+S,eAAe,GAAG,OAAOl+V,CAAP,KAAa,QAAb,IAAyBA,CAAC,CAACpM,UAAF,CAAa,GAAb,CAAjD;;MACA,IAAIsqW,eAAJ,EAAqB;QACjB,MAAMC,UAAU,GAAGn+V,CAAC,CAACwgB,SAAF,CAAY,CAAZ,CAAnB;QACAu6B,GAAG,CAACqE,CAAD,CAAH,GAAS6+S,YAAY,CAACE,UAAD,CAArB;MACH,CAHD,MAIK;QACDpjT,GAAG,CAACqE,CAAD,CAAH,GAASp/C,CAAT;MACH;IACJ,CATM,CAAP;IAUA,OAAO+6C,GAAP;EACH;;EACD+iT,kBAAkB,CAAC7M,UAAD,EAAapiQ,KAAb,EAAoB89E,QAApB,EAA8B21K,SAA9B,EAAyC;IACvD,MAAM8b,eAAe,GAAG,KAAKC,cAAL,CAAoBpN,UAApB,EAAgCpiQ,KAAK,CAAC89E,QAAtC,EAAgDA,QAAhD,EAA0D21K,SAA1D,CAAxB;IACA,IAAIx1L,QAAQ,GAAG,EAAf;IACAv0J,OAAO,CAACs2F,KAAK,CAACi+D,QAAP,EAAiB,CAACC,KAAD,EAAQz+J,IAAR,KAAiB;MACrCw+J,QAAQ,CAACx+J,IAAD,CAAR,GAAiB,KAAKwvW,kBAAL,CAAwB7M,UAAxB,EAAoClkM,KAApC,EAA2C4f,QAA3C,EAAqD21K,SAArD,CAAjB;IACH,CAFM,CAAP;IAGA,OAAO,IAAIa,eAAJ,CAAoBib,eAApB,EAAqCtxM,QAArC,CAAP;EACH;;EACDuxM,cAAc,CAACpN,UAAD,EAAaqN,kBAAb,EAAiCC,cAAjC,EAAiDjc,SAAjD,EAA4D;IACtE,OAAOgc,kBAAkB,CAAC9wW,GAAnB,CAAuBuQ,CAAC,IAAIA,CAAC,CAAClP,IAAF,CAAO+E,UAAP,CAAkB,GAAlB,IAAyB,KAAK4qW,YAAL,CAAkBvN,UAAlB,EAA8BlzV,CAA9B,EAAiCukV,SAAjC,CAAzB,GAC/B,KAAKmc,YAAL,CAAkB1gW,CAAlB,EAAqBwgW,cAArB,CADG,CAAP;EAEH;;EACDC,YAAY,CAACvN,UAAD,EAAayN,oBAAb,EAAmCpc,SAAnC,EAA8C;IACtD,MAAMvpN,GAAG,GAAGupN,SAAS,CAACoc,oBAAoB,CAAC7vW,IAArB,CAA0B2xB,SAA1B,CAAoC,CAApC,CAAD,CAArB;IACA,IAAI,CAACu4G,GAAL,EACI,MAAM,IAAIxmC,2DAAJ,CAAkB;IAAK;IAAvB,EAAgE6oQ,aAAa,IAC9E,uBAAsBnK,UAAW,mBAAkByN,oBAAoB,CAAC7vW,IAAK,IAD5E,CAAN;IAEJ,OAAOkqI,GAAP;EACH;;EACD0lO,YAAY,CAACC,oBAAD,EAAuBH,cAAvB,EAAuC;IAC/C,IAAIrjN,GAAG,GAAG,CAAV;;IACA,KAAK,MAAMn9I,CAAX,IAAgBwgW,cAAhB,EAAgC;MAC5B,IAAIxgW,CAAC,CAAClP,IAAF,KAAW6vW,oBAAoB,CAAC7vW,IAApC,EAA0C;QACtC0vW,cAAc,CAAC1jV,MAAf,CAAsBqgI,GAAtB;QACA,OAAOn9I,CAAP;MACH;;MACDm9I,GAAG;IACN;;IACD,OAAOwjN,oBAAP;EACH;;AAtRgB;AAyRrB;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,cAAT,CAAwB5gE,mBAAxB,EAA6C69D,YAA7C,EAA2D7K,aAA3D,EAA0EnuV,MAA1E,EAAkF;EAC9E,OAAOjV,yDAAS,CAAC6C,CAAC,IAAImrW,gBAAgB,CAAC59D,mBAAD,EAAsB69D,YAAtB,EAAoC7K,aAApC,EAAmDvgW,CAAC,CAACouW,YAArD,EAAmEh8V,MAAnE,CAAhB,CACjBxO,IADiB,CACZ5G,mDAAG,CAACg/V,iBAAiB,KAAK,EAAE,GAAGh8V,CAAL;IAAQg8V;EAAR,CAAL,CAAlB,CADS,CAAN,CAAhB;AAEH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMqS,aAAa,GAAG,OAAO1tW,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAA5D;;AACA,MAAM2tW,OAAN,CAAc;;AAEd,SAASC,kBAAT,CAA4B1gW,CAA5B,EAA+B;EAC3B;EACA,OAAO,IAAIw/E,6CAAJ,CAAgBiI,GAAD,IAASA,GAAG,CAAClwF,KAAJ,CAAUyI,CAAV,CAAxB,CAAP;AACH;;AACD,SAAS2gW,WAAT,CAAqB7hO,QAArB,EAA+B8hO,iBAA/B,EAAkDr8V,MAAlD,EAA0D0mV,OAA1D,EAAmEv2V,GAAnE,EAAwEg+V,aAAxE,EAAuFzB,yBAAyB,GAAG,WAAnH,EAAgIiL,sBAAsB,GAAG,QAAzJ,EAAmK;EAC/J,OAAO,IAAI2E,UAAJ,CAAe/hO,QAAf,EAAyB8hO,iBAAzB,EAA4Cr8V,MAA5C,EAAoD0mV,OAApD,EAA6Dv2V,GAA7D,EAAkEu8V,yBAAlE,EAA6FiL,sBAA7F,EAAqHxJ,aAArH,EACFoO,SADE,GAEF/qW,IAFE,CAEGzG,yDAAS,CAACuJ,MAAM,IAAI;IAC1B,IAAIA,MAAM,KAAK,IAAf,EAAqB;MACjB,OAAO6nW,kBAAkB,CAAC,IAAID,OAAJ,EAAD,CAAzB;IACH,CAFD,MAGK;MACD,OAAOzxW,wCAAE,CAAC6J,MAAD,CAAT;IACH;EACJ,CAPkB,CAFZ,CAAP;AAUH;;AACD,MAAMgoW,UAAN,CAAiB;EACbzwW,WAAW,CAAC0uI,QAAD,EAAW8hO,iBAAX,EAA8Br8V,MAA9B,EAAsC0mV,OAAtC,EAA+Cv2V,GAA/C,EAAoDu8V,yBAApD,EAA+EiL,sBAA/E,EAAuGxJ,aAAvG,EAAsH;IAC7H,KAAK5zN,QAAL,GAAgBA,QAAhB;IACA,KAAK8hO,iBAAL,GAAyBA,iBAAzB;IACA,KAAKr8V,MAAL,GAAcA,MAAd;IACA,KAAK0mV,OAAL,GAAeA,OAAf;IACA,KAAKv2V,GAAL,GAAWA,GAAX;IACA,KAAKu8V,yBAAL,GAAiCA,yBAAjC;IACA,KAAKiL,sBAAL,GAA8BA,sBAA9B;IACA,KAAKxJ,aAAL,GAAqBA,aAArB;EACH;;EACDoO,SAAS,GAAG;IACR,MAAMvW,gBAAgB,GAAG95V,KAAK,CAAC,KAAKw6V,OAAL,CAAa9zV,IAAd,EAAoB,EAApB,EAAwB,EAAxB,EAA4B,KAAKoN,MAAL,CAAY/U,MAAZ,CAAmBqgK,CAAC,IAAIA,CAAC,CAAC+iM,UAAF,KAAiBjgW,SAAzC,CAA5B,EAAiF,KAAKupW,sBAAtF,CAAL,CACpBnY,YADL;IAEA,OAAO,KAAKgd,mBAAL,CAAyB,KAAKjiO,QAA9B,EAAwC,KAAKv6H,MAA7C,EAAqDgmV,gBAArD,EAAuE7G,cAAvE,EACF3tV,IADE,CACG5G,mDAAG,CAACs/J,QAAQ,IAAI;MACtB,IAAIA,QAAQ,KAAK,IAAjB,EAAuB;QACnB,OAAO,IAAP;MACH,CAHqB,CAItB;MACA;;;MACA,MAAMt3J,IAAI,GAAG,IAAIs5V,sBAAJ,CAA2B,EAA3B,EAA+B96V,MAAM,CAACm1J,MAAP,CAAc,EAAd,CAA/B,EAAkDn1J,MAAM,CAACm1J,MAAP,CAAc,EAAE,GAAG,KAAKmgM,OAAL,CAAav5Q;MAAlB,CAAd,CAAlD,EAAkG,KAAKu5Q,OAAL,CAAa7zV,QAA/G,EAAyH,EAAzH,EAA6HssV,cAA7H,EAA6I,KAAKkd,iBAAlJ,EAAqK,IAArK,EAA2K,KAAK3V,OAAL,CAAa9zV,IAAxL,EAA8L,CAAC,CAA/L,EAAkM,EAAlM,CAAb;MACA,MAAMomL,QAAQ,GAAG,IAAIsyK,QAAJ,CAAa14V,IAAb,EAAmBs3J,QAAnB,CAAjB;MACA,MAAMuyM,UAAU,GAAG,IAAItQ,mBAAJ,CAAwB,KAAKh8V,GAA7B,EAAkC6oL,QAAlC,CAAnB;MACA,KAAK0jL,oBAAL,CAA0BD,UAAU,CAACzR,KAArC;MACA,OAAOyR,UAAP;IACH,CAXY,CADN,CAAP;EAaH;;EACDC,oBAAoB,CAACC,SAAD,EAAY;IAC5B,MAAMrpW,KAAK,GAAGqpW,SAAS,CAACjtW,KAAxB;IACA,MAAM0L,CAAC,GAAGqxV,0BAA0B,CAACn5V,KAAD,EAAQ,KAAKo5V,yBAAb,CAApC;IACAp5V,KAAK,CAACy2C,MAAN,GAAe34C,MAAM,CAACm1J,MAAP,CAAcnrJ,CAAC,CAAC2uC,MAAhB,CAAf;IACAz2C,KAAK,CAAC2c,IAAN,GAAa7e,MAAM,CAACm1J,MAAP,CAAcnrJ,CAAC,CAAC6U,IAAhB,CAAb;IACA0sV,SAAS,CAACzyM,QAAV,CAAmBv0J,OAAnB,CAA2B0F,CAAC,IAAI,KAAKqhW,oBAAL,CAA0BrhW,CAA1B,CAAhC;EACH;;EACDmhW,mBAAmB,CAACjiO,QAAD,EAAWv6H,MAAX,EAAmBw/U,YAAnB,EAAiCuG,MAAjC,EAAyC;IACxD,IAAIvG,YAAY,CAACz1K,QAAb,CAAsBr5K,MAAtB,KAAiC,CAAjC,IAAsC8uV,YAAY,CAACvnH,WAAb,EAA1C,EAAsE;MAClE,OAAO,KAAKquH,eAAL,CAAqB/rN,QAArB,EAA+Bv6H,MAA/B,EAAuCw/U,YAAvC,CAAP;IACH;;IACD,OAAO,KAAKod,cAAL,CAAoBriO,QAApB,EAA8Bv6H,MAA9B,EAAsCw/U,YAAtC,EAAoDA,YAAY,CAACz1K,QAAjE,EAA2Eg8K,MAA3E,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIO,eAAe,CAAC/rN,QAAD,EAAWv6H,MAAX,EAAmBw/U,YAAnB,EAAiC;IAC5C,OAAOn1V,0CAAI,CAAC+G,MAAM,CAAC+D,IAAP,CAAYqqV,YAAY,CAACt1L,QAAzB,CAAD,CAAJ,CACF14J,IADE,CACG3G,0DAAS,CAACw3V,WAAW,IAAI;MAC/B,MAAMl4L,KAAK,GAAGq1L,YAAY,CAACt1L,QAAb,CAAsBm4L,WAAtB,CAAd,CAD+B,CAE/B;MACA;MACA;;MACA,MAAM4P,YAAY,GAAGF,qBAAqB,CAAC/xV,MAAD,EAASqiV,WAAT,CAA1C;MACA,OAAO,KAAKma,mBAAL,CAAyBjiO,QAAzB,EAAmC03N,YAAnC,EAAiD9nM,KAAjD,EAAwDk4L,WAAxD,CAAP;IACH,CAPkB,CADZ,EAQHv7P,qDAAI,CAAC,CAACojE,QAAD,EAAW2yM,cAAX,KAA8B;MACnC,IAAI,CAAC3yM,QAAD,IAAa,CAAC2yM,cAAlB,EACI,OAAO,IAAP;MACJ3yM,QAAQ,CAACn0J,IAAT,CAAc,GAAG8mW,cAAjB;MACA,OAAO3yM,QAAP;IACH,CALO,CARD,EAaHvhE,0DAAS,CAACuhE,QAAQ,IAAIA,QAAQ,KAAK,IAA1B,CAbN,EAauCjlE,+DAAc,CAAC,IAAD,CAbrD,EAa6Di6P,qDAAM,EAbnE,EAauEt0V,mDAAG,CAACs/J,QAAQ,IAAI;MAC1F,IAAIA,QAAQ,KAAK,IAAjB,EACI,OAAO,IAAP,CAFsF,CAG1F;MACA;MACA;;MACA,MAAM4yM,cAAc,GAAGC,qBAAqB,CAAC7yM,QAAD,CAA5C;;MACA,IAAI+xM,aAAJ,EAAmB;QACf;QACA;QACAe,yBAAyB,CAACF,cAAD,CAAzB;MACH;;MACDG,2BAA2B,CAACH,cAAD,CAA3B;MACA,OAAOA,cAAP;IACH,CAdgF,CAb1E,CAAP;EA4BH;;EACDF,cAAc,CAACriO,QAAD,EAAWy3N,MAAX,EAAmBxS,YAAnB,EAAiCz1K,QAAjC,EAA2Cg8K,MAA3C,EAAmD;IAC7D,OAAO17V,0CAAI,CAAC2nW,MAAD,CAAJ,CAAaxgW,IAAb,CAAkB3G,0DAAS,CAAC6S,CAAC,IAAI;MACpC,OAAO,KAAKw/V,0BAAL,CAAgCx/V,CAAC,CAACygT,SAAF,IAAe5jL,QAA/C,EAAyD78H,CAAzD,EAA4D8hV,YAA5D,EAA0Ez1K,QAA1E,EAAoFg8K,MAApF,CAAP;IACH,CAFiC,CAA3B,EAEHvgQ,sDAAK,CAAE1J,CAAD,IAAO,CAAC,CAACA,CAAV,CAFF,EAEgBhxF,2DAAU,CAAC2Q,CAAC,IAAI;MACnC,IAAI85V,YAAY,CAAC95V,CAAD,CAAhB,EAAqB;QACjB,IAAI88V,gBAAgB,CAAC/Y,YAAD,EAAez1K,QAAf,EAAyBg8K,MAAzB,CAApB,EAAsD;UAClD,OAAOt7V,wCAAE,CAAC,EAAD,CAAT;QACH;;QACD,OAAOA,wCAAE,CAAC,IAAD,CAAT;MACH;;MACD,MAAMgR,CAAN;IACH,CARgC,CAF1B,CAAP;EAWH;;EACDyhW,0BAA0B,CAAC3iO,QAAD,EAAWjnI,KAAX,EAAkBglW,UAAlB,EAA8BvuL,QAA9B,EAAwCg8K,MAAxC,EAAgD;IACtE,IAAIzyV,KAAK,CAAC+6V,UAAN,IAAoB,CAACgK,gBAAgB,CAAC/kW,KAAD,EAAQglW,UAAR,EAAoBvuL,QAApB,EAA8Bg8K,MAA9B,CAAzC,EACI,OAAOt7V,wCAAE,CAAC,IAAD,CAAT;IACJ,IAAI0yW,WAAJ;;IACA,IAAI7pW,KAAK,CAACrH,IAAN,KAAe,IAAnB,EAAyB;MACrB,MAAM89C,MAAM,GAAGggI,QAAQ,CAACr5K,MAAT,GAAkB,CAAlB,GAAsBmsF,IAAI,CAACktF,QAAD,CAAJ,CAAezhG,UAArC,GAAkD,EAAjE;MACA,MAAM80R,cAAc,GAAGC,iBAAiB,CAAC/E,UAAD,CAAjB,GAAgCvuL,QAAQ,CAACr5K,MAAhE;MACA,MAAMq2V,QAAQ,GAAG,IAAImF,sBAAJ,CAA2BniL,QAA3B,EAAqChgI,MAArC,EAA6C34C,MAAM,CAACm1J,MAAP,CAAc,EAAE,GAAG,KAAKmgM,OAAL,CAAav5Q;MAAlB,CAAd,CAA7C,EAA6F,KAAKu5Q,OAAL,CAAa7zV,QAA1G,EAAoHyqW,OAAO,CAAChqW,KAAD,CAA3H,EAAoIw+V,SAAS,CAACx+V,KAAD,CAA7I,EAAsJA,KAAK,CAAC0wQ,SAAN,IAAmB1wQ,KAAK,CAAC49V,gBAAzB,IAA6C,IAAnM,EAAyM59V,KAAzM,EAAgNiqW,qBAAqB,CAACjF,UAAD,CAArO,EAAmP8E,cAAnP,EAAmQI,UAAU,CAAClqW,KAAD,CAA7Q,EACjB;MACA;MACA;MACC2oW,aAAa,GAAGwB,0BAA0B,CAACnF,UAAD,CAA1B,GAAyCvuL,QAAQ,CAACr5K,MAArD,GACV0sW,cALa,CAAjB;MAMAD,WAAW,GAAG1yW,wCAAE,CAAC;QACbs8V,QADa;QAEbuQ,gBAAgB,EAAE,EAFL;QAGbC,iBAAiB,EAAE;MAHN,CAAD,CAAhB;IAKH,CAdD,MAeK;MACD4F,WAAW,GACP1F,eAAe,CAACa,UAAD,EAAahlW,KAAb,EAAoBy2K,QAApB,EAA8BxvC,QAA9B,EAAwC,KAAK4zN,aAA7C,CAAf,CACK38V,IADL,CACU5G,mDAAG,CAAC,CAAC;QAAEs0I,OAAF;QAAWo4N,gBAAX;QAA6BC,iBAA7B;QAAgDjvR;MAAhD,CAAD,KAAkE;QAC5E,IAAI,CAAC42D,OAAL,EAAc;UACV,OAAO,IAAP;QACH;;QACD,MAAMk+N,cAAc,GAAGC,iBAAiB,CAAC/E,UAAD,CAAjB,GAAgChB,gBAAgB,CAAC5mW,MAAxE;QACA,MAAMq2V,QAAQ,GAAG,IAAImF,sBAAJ,CAA2BoL,gBAA3B,EAA6ChvR,UAA7C,EAAyDl3E,MAAM,CAACm1J,MAAP,CAAc,EAAE,GAAG,KAAKmgM,OAAL,CAAav5Q;QAAlB,CAAd,CAAzD,EAAyG,KAAKu5Q,OAAL,CAAa7zV,QAAtH,EAAgIyqW,OAAO,CAAChqW,KAAD,CAAvI,EAAgJw+V,SAAS,CAACx+V,KAAD,CAAzJ,EAAkKA,KAAK,CAAC0wQ,SAAN,IAAmB1wQ,KAAK,CAAC49V,gBAAzB,IAA6C,IAA/M,EAAqN59V,KAArN,EAA4NiqW,qBAAqB,CAACjF,UAAD,CAAjP,EAA+P8E,cAA/P,EAA+QI,UAAU,CAAClqW,KAAD,CAAzR,EAAmS2oW,aAAa,GAC7TwB,0BAA0B,CAACnF,UAAD,CAA1B,GAAyChB,gBAAgB,CAAC5mW,MADmQ,GAE7T0sW,cAFa,CAAjB;QAGA,OAAO;UAAErW,QAAF;UAAYuQ,gBAAZ;UAA8BC;QAA9B,CAAP;MACH,CATY,CADb,CADJ;IAYH;;IACD,OAAO4F,WAAW,CAAC3rW,IAAZ,CAAiBzG,yDAAS,CAAEuJ,MAAD,IAAY;MAC1C,IAAIA,MAAM,KAAK,IAAf,EAAqB;QACjB,OAAO7J,wCAAE,CAAC,IAAD,CAAT;MACH;;MACD,MAAM;QAAEs8V,QAAF;QAAYuQ,gBAAZ;QAA8BC;MAA9B,IAAoDjjW,MAA1D,CAJ0C,CAK1C;;MACAimI,QAAQ,GAAGjnI,KAAK,CAAC6qT,SAAN,IAAmB5jL,QAA9B;MACA,MAAMogO,aAAa,GAAGrnW,KAAK,CAAC09V,eAAN,IAAyBz2N,QAA/C;MACA,MAAMqgO,WAAW,GAAGH,cAAc,CAACnnW,KAAD,CAAlC;MACA,MAAM;QAAEksV,YAAF;QAAgBkY;MAAhB,IAAmCxrW,KAAK,CAACosW,UAAD,EAAahB,gBAAb,EAA+BC,iBAA/B,EAC9C;MACA;MACA;MACAqD,WAAW,CAAC3vW,MAAZ,CAAmBqgK,CAAC,IAAIA,CAAC,CAAC+iM,UAAF,KAAiBjgW,SAAzC,CAJ8C,EAIO,KAAKupW,sBAJZ,CAA9C;;MAKA,IAAID,cAAc,CAAChnW,MAAf,KAA0B,CAA1B,IAA+B8uV,YAAY,CAACvnH,WAAb,EAAnC,EAA+D;QAC3D,OAAO,KAAKquH,eAAL,CAAqBqU,aAArB,EAAoCC,WAApC,EAAiDpb,YAAjD,EAA+DhuV,IAA/D,CAAoE5G,mDAAG,CAACs/J,QAAQ,IAAI;UACvF,IAAIA,QAAQ,KAAK,IAAjB,EAAuB;YACnB,OAAO,IAAP;UACH;;UACD,OAAO,CAAC,IAAIohM,QAAJ,CAAavE,QAAb,EAAuB78L,QAAvB,CAAD,CAAP;QACH,CAL6E,CAAvE,CAAP;MAMH;;MACD,IAAI0wM,WAAW,CAAClqW,MAAZ,KAAuB,CAAvB,IAA4BgnW,cAAc,CAAChnW,MAAf,KAA0B,CAA1D,EAA6D;QACzD,OAAOjG,wCAAE,CAAC,CAAC,IAAI6gW,QAAJ,CAAavE,QAAb,EAAuB,EAAvB,CAAD,CAAD,CAAT;MACH;;MACD,MAAM+T,eAAe,GAAGhJ,SAAS,CAACx+V,KAAD,CAAT,KAAqByyV,MAA7C,CAzB0C,CA0B1C;MACA;MACA;MACA;MACA;MACA;MACA;MACA;;MACA,OAAO,KACF6W,cADE,CACajC,aADb,EAC4BC,WAD5B,EACyCpb,YADzC,EACuDkY,cADvD,EACuEoD,eAAe,GAAG3b,cAAH,GAAoB4G,MAD1G,EAEFv0V,IAFE,CAEG5G,mDAAG,CAACs/J,QAAQ,IAAI;QACtB,IAAIA,QAAQ,KAAK,IAAjB,EAAuB;UACnB,OAAO,IAAP;QACH;;QACD,OAAO,CAAC,IAAIohM,QAAJ,CAAavE,QAAb,EAAuB78L,QAAvB,CAAD,CAAP;MACH,CALY,CAFN,CAAP;IAQH,CA1CgC,CAA1B,CAAP;EA2CH;;AAxKY;;AA0KjB,SAAS+yM,2BAAT,CAAqCtmP,KAArC,EAA4C;EACxCA,KAAK,CAACz7D,IAAN,CAAW,CAACuB,CAAD,EAAI/hD,CAAJ,KAAU;IACjB,IAAI+hD,CAAC,CAAC/sD,KAAF,CAAQq2V,MAAR,KAAmB5G,cAAvB,EACI,OAAO,CAAC,CAAR;IACJ,IAAIzkV,CAAC,CAAChL,KAAF,CAAQq2V,MAAR,KAAmB5G,cAAvB,EACI,OAAO,CAAP;IACJ,OAAO1iS,CAAC,CAAC/sD,KAAF,CAAQq2V,MAAR,CAAe2X,aAAf,CAA6BhjW,CAAC,CAAChL,KAAF,CAAQq2V,MAArC,CAAP;EACH,CAND;AAOH;;AACD,SAAS0U,cAAT,CAAwBnnW,KAAxB,EAA+B;EAC3B,IAAIA,KAAK,CAAC42J,QAAV,EAAoB;IAChB,OAAO52J,KAAK,CAAC42J,QAAb;EACH;;EACD,IAAI52J,KAAK,CAACs+V,YAAV,EAAwB;IACpB,OAAOt+V,KAAK,CAACw9V,aAAb;EACH;;EACD,OAAO,EAAP;AACH;;AACD,SAAS6M,kBAAT,CAA4BpjQ,IAA5B,EAAkC;EAC9B,MAAMv6F,MAAM,GAAGu6F,IAAI,CAAC7qG,KAAL,CAAW86V,WAA1B;EACA,OAAOxqV,MAAM,IAAIA,MAAM,CAAC/T,IAAP,KAAgB,EAA1B,IAAgC+T,MAAM,CAACquV,UAAP,KAAsBjgW,SAA7D;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAAS2uW,qBAAT,CAA+BpmP,KAA/B,EAAsC;EAClC,MAAMriH,MAAM,GAAG,EAAf,CADkC,CAElC;;EACA,MAAMspW,WAAW,GAAG,IAAIhwR,GAAJ,EAApB;;EACA,KAAK,MAAM2sB,IAAX,IAAmBoc,KAAnB,EAA0B;IACtB,IAAI,CAACgnP,kBAAkB,CAACpjQ,IAAD,CAAvB,EAA+B;MAC3BjmG,MAAM,CAACyB,IAAP,CAAYwkG,IAAZ;MACA;IACH;;IACD,MAAMsjQ,sBAAsB,GAAGvpW,MAAM,CAAC6sG,IAAP,CAAY28P,UAAU,IAAIvjQ,IAAI,CAAC7qG,KAAL,CAAW86V,WAAX,KAA2BsT,UAAU,CAACpuW,KAAX,CAAiB86V,WAAtE,CAA/B;;IACA,IAAIqT,sBAAsB,KAAKzvW,SAA/B,EAA0C;MACtCyvW,sBAAsB,CAAC3zM,QAAvB,CAAgCn0J,IAAhC,CAAqC,GAAGwkG,IAAI,CAAC2vD,QAA7C;MACA0zM,WAAW,CAAC/vR,GAAZ,CAAgBgwR,sBAAhB;IACH,CAHD,MAIK;MACDvpW,MAAM,CAACyB,IAAP,CAAYwkG,IAAZ;IACH;EACJ,CAjBiC,CAkBlC;EACA;EACA;EACA;;;EACA,KAAK,MAAMwjQ,UAAX,IAAyBH,WAAzB,EAAsC;IAClC,MAAMd,cAAc,GAAGC,qBAAqB,CAACgB,UAAU,CAAC7zM,QAAZ,CAA5C;IACA51J,MAAM,CAACyB,IAAP,CAAY,IAAIu1V,QAAJ,CAAayS,UAAU,CAACruW,KAAxB,EAA+BotW,cAA/B,CAAZ;EACH;;EACD,OAAOxoW,MAAM,CAACrJ,MAAP,CAAcoQ,CAAC,IAAI,CAACuiW,WAAW,CAACt4U,GAAZ,CAAgBjqB,CAAhB,CAApB,CAAP;AACH;;AACD,SAAS2hW,yBAAT,CAAmCrmP,KAAnC,EAA0C;EACtC,MAAMqnP,KAAK,GAAG,EAAd;EACArnP,KAAK,CAAChhH,OAAN,CAAc0F,CAAC,IAAI;IACf,MAAM4iW,uBAAuB,GAAGD,KAAK,CAAC3iW,CAAC,CAAC3L,KAAF,CAAQq2V,MAAT,CAArC;;IACA,IAAIkY,uBAAJ,EAA6B;MACzB,MAAMpjW,CAAC,GAAGojW,uBAAuB,CAAC9tW,GAAxB,CAA4BvF,GAA5B,CAAgCuQ,CAAC,IAAIA,CAAC,CAAC4V,QAAF,EAArC,EAAmD+iB,IAAnD,CAAwD,GAAxD,CAAV;MACA,MAAMw3H,CAAC,GAAGjwJ,CAAC,CAAC3L,KAAF,CAAQS,GAAR,CAAYvF,GAAZ,CAAgBuQ,CAAC,IAAIA,CAAC,CAAC4V,QAAF,EAArB,EAAmC+iB,IAAnC,CAAwC,GAAxC,CAAV;MACA,MAAM,IAAI67D,2DAAJ,CAAkB;MAAK;MAAvB,EAA6EssQ,aAAa,IAAK,mDAAkDphW,CAAE,UAASywJ,CAAE,IAA9J,CAAN;IACH;;IACD0yM,KAAK,CAAC3iW,CAAC,CAAC3L,KAAF,CAAQq2V,MAAT,CAAL,GAAwB1qV,CAAC,CAAC3L,KAA1B;EACH,CARD;AASH;;AACD,SAAS6tW,qBAAT,CAA+B/d,YAA/B,EAA6C;EACzC,IAAIrkV,CAAC,GAAGqkV,YAAR;;EACA,OAAOrkV,CAAC,CAAC28V,cAAT,EAAyB;IACrB38V,CAAC,GAAGA,CAAC,CAAC28V,cAAN;EACH;;EACD,OAAO38V,CAAP;AACH;;AACD,SAASkiW,iBAAT,CAA2B7d,YAA3B,EAAyC;EACrC,IAAIrkV,CAAC,GAAGqkV,YAAR;EACA,IAAIrnS,GAAG,GAAGh9C,CAAC,CAAC48V,kBAAF,IAAwB,CAAlC;;EACA,OAAO58V,CAAC,CAAC28V,cAAT,EAAyB;IACrB38V,CAAC,GAAGA,CAAC,CAAC28V,cAAN;IACA3/S,GAAG,IAAIh9C,CAAC,CAAC48V,kBAAF,IAAwB,CAA/B;EACH;;EACD,OAAO5/S,GAAG,GAAG,CAAb;AACH;;AACD,SAASslT,0BAAT,CAAoCje,YAApC,EAAkD;EAC9C,IAAIrkV,CAAC,GAAGqkV,YAAR;EACA,IAAIrnS,GAAG,GAAGh9C,CAAC,CAACg9V,2BAAF,IAAiCh9V,CAAC,CAAC48V,kBAAnC,IAAyD,CAAnE;;EACA,OAAO58V,CAAC,CAAC28V,cAAT,EAAyB;IACrB38V,CAAC,GAAGA,CAAC,CAAC28V,cAAN;IACA3/S,GAAG,IAAIh9C,CAAC,CAACg9V,2BAAF,IAAiCh9V,CAAC,CAAC48V,kBAAnC,IAAyD,CAAhE;EACH;;EACD,OAAO5/S,GAAG,GAAG,CAAb;AACH;;AACD,SAASmlT,OAAT,CAAiBhqW,KAAjB,EAAwB;EACpB,OAAOA,KAAK,CAAC2c,IAAN,IAAc,EAArB;AACH;;AACD,SAASutV,UAAT,CAAoBlqW,KAApB,EAA2B;EACvB,OAAOA,KAAK,CAACgH,OAAN,IAAiB,EAAxB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASiiW,SAAT,CAAmBhiO,QAAnB,EAA6B8hO,iBAA7B,EAAgDr8V,MAAhD,EAAwDuqN,UAAxD,EAAoEmiI,yBAApE,EAA+FiL,sBAA/F,EAAuH;EACnH,OAAO5yQ,yDAAQ,CAACn3F,CAAC,IAAIwuW,WAAW,CAAC7hO,QAAD,EAAW8hO,iBAAX,EAA8Br8V,MAA9B,EAAsCpS,CAAC,CAACg8V,iBAAxC,EAA2Dr/H,UAAU,CAAC9yC,SAAX,CAAqB7pL,CAAC,CAACg8V,iBAAvB,CAA3D,EAAsGr/H,UAAtG,EAAkHmiI,yBAAlH,EAA6IiL,sBAA7I,CAAX,CAChBnmW,IADgB,CACX5G,mDAAG,CAAC+qW,cAAc,KAAK,EAAE,GAAG/nW,CAAL;IAAQ+nW;EAAR,CAAL,CAAf,CADQ,CAAN,CAAf;AAEH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASuI,WAAT,CAAqBxR,yBAArB,EAAgDnyN,QAAhD,EAA0D;EACtD,OAAOx1C,yDAAQ,CAACn3F,CAAC,IAAI;IACjB,MAAM;MAAE+nW,cAAF;MAAkB1B,MAAM,EAAE;QAAEM;MAAF;IAA1B,IAAoD3mW,CAA1D;;IACA,IAAI,CAAC2mW,iBAAiB,CAAC7jW,MAAvB,EAA+B;MAC3B,OAAOjG,wCAAE,CAACmD,CAAD,CAAT;IACH;;IACD,IAAIuwW,yBAAyB,GAAG,CAAhC;IACA,OAAO9zW,0CAAI,CAACkqW,iBAAD,CAAJ,CACF/iW,IADE,CACG3G,0DAAS,CAACk4U,KAAK,IAAIq7B,UAAU,CAACr7B,KAAK,CAACzvU,KAAP,EAAcqiW,cAAd,EAA8BjJ,yBAA9B,EAAyDnyN,QAAzD,CAApB,CADZ,EACqG1xC,oDAAG,CAAC,MAAMs1Q,yBAAyB,EAAhC,CADxG,EAC6Iz4Q,yDAAQ,CAAC,CAAD,CADrJ,EAC0JX,yDAAQ,CAACtoF,CAAC,IAAI0hW,yBAAyB,KAAK5J,iBAAiB,CAAC7jW,MAAhD,GAAyDjG,wCAAE,CAACmD,CAAD,CAA3D,GAAiElD,wCAAvE,CADlK,CAAP;EAEH,CARc,CAAf;AASH;;AACD,SAAS0zW,UAAT,CAAoB9H,SAApB,EAA+BP,SAA/B,EAA0CrJ,yBAA1C,EAAqEnyN,QAArE,EAA+E;EAC3E,MAAMv6H,MAAM,GAAGs2V,SAAS,CAAC9L,WAAzB;EACA,MAAMlwV,OAAO,GAAGg8V,SAAS,CAACtJ,QAA1B;;EACA,IAAIhtV,MAAM,EAAEimC,KAAR,KAAkB73C,SAAlB,IAA+B,CAACiwW,cAAc,CAACr+V,MAAD,CAAlD,EAA4D;IACxD1F,OAAO,CAAC8kV,aAAD,CAAP,GAAyBp/U,MAAM,CAACimC,KAAhC;EACH;;EACD,OAAOq4T,WAAW,CAAChkW,OAAD,EAAUg8V,SAAV,EAAqBP,SAArB,EAAgCx7N,QAAhC,CAAX,CAAqD/oI,IAArD,CAA0D5G,mDAAG,CAAE2zW,YAAD,IAAkB;IACnFjI,SAAS,CAACzJ,aAAV,GAA0B0R,YAA1B;IACAjI,SAAS,CAACrmV,IAAV,GAAiBw8U,0BAA0B,CAAC6J,SAAD,EAAY5J,yBAAZ,CAA1B,CAAiEpyV,OAAlF;;IACA,IAAI0F,MAAM,IAAIq+V,cAAc,CAACr+V,MAAD,CAA5B,EAAsC;MAClCs2V,SAAS,CAACrmV,IAAV,CAAemvU,aAAf,IAAgCp/U,MAAM,CAACimC,KAAvC;IACH;;IACD,OAAO,IAAP;EACH,CAPmE,CAA7D,CAAP;AAQH;;AACD,SAASq4T,WAAT,CAAqBhkW,OAArB,EAA8Bg8V,SAA9B,EAAyCP,SAAzC,EAAoDx7N,QAApD,EAA8D;EAC1D,MAAMplI,IAAI,GAAGqpW,WAAW,CAAClkW,OAAD,CAAxB;;EACA,IAAInF,IAAI,CAACzE,MAAL,KAAgB,CAApB,EAAuB;IACnB,OAAOjG,wCAAE,CAAC,EAAD,CAAT;EACH;;EACD,MAAMwlB,IAAI,GAAG,EAAb;EACA,OAAO5lB,0CAAI,CAAC8K,IAAD,CAAJ,CAAW3D,IAAX,CAAgBuzF,yDAAQ,CAACnvF,GAAG,IAAI6oW,WAAW,CAACnkW,OAAO,CAAC1E,GAAD,CAAR,EAAe0gW,SAAf,EAA0BP,SAA1B,EAAqCx7N,QAArC,CAAX,CAClC/oI,IADkC,CAC7Bg0F,sDAAK,EADwB,EACpBqD,oDAAG,CAAEn5F,KAAD,IAAW;IAC9BugB,IAAI,CAACra,GAAD,CAAJ,GAAYlG,KAAZ;EACH,CAFqB,CADiB,CAAR,CAAxB,EAGDg2F,yDAAQ,CAAC,CAAD,CAHP,EAGYC,sDAAK,CAAC11E,IAAD,CAHjB,EAGyBnlB,2DAAU,CAAE2Q,CAAD,IAAO85V,YAAY,CAAC95V,CAAD,CAAZ,GAAkB/Q,wCAAlB,GAA0Bu5F,iDAAU,CAACxoF,CAAD,CAA5C,CAHnC,CAAP;AAIH;;AACD,SAAS+iW,WAAT,CAAqBvjT,GAArB,EAA0B;EACtB,OAAO,CAAC,GAAG7pD,MAAM,CAAC+D,IAAP,CAAY8lD,GAAZ,CAAJ,EAAsB,GAAG7pD,MAAM,CAACsK,qBAAP,CAA6Bu/C,GAA7B,CAAzB,CAAP;AACH;;AACD,SAASwjT,WAAT,CAAqBxH,cAArB,EAAqCX,SAArC,EAAgDP,SAAhD,EAA2Dx7N,QAA3D,EAAqE;EACjE,MAAMi8N,eAAe,GAAGtE,uBAAuB,CAACoE,SAAD,CAAvB,IAAsC/7N,QAA9D;EACA,MAAMjqH,QAAQ,GAAG4jV,0BAA0B,CAAC+C,cAAD,EAAiBT,eAAjB,CAA3C;EACA,MAAMkI,aAAa,GAAGpuV,QAAQ,CAAChW,OAAT,GAClBgW,QAAQ,CAAChW,OAAT,CAAiBg8V,SAAjB,EAA4BP,SAA5B,CADkB,GAElBS,eAAe,CAACz6E,YAAhB,CAA6B,MAAMzrQ,QAAQ,CAACgmV,SAAD,EAAYP,SAAZ,CAA3C,CAFJ;EAGA,OAAO5V,kBAAkB,CAACue,aAAD,CAAzB;AACH;;AACD,SAASL,cAAT,CAAwBr+V,MAAxB,EAAgC;EAC5B,OAAO,OAAOA,MAAM,CAACimC,KAAd,KAAwB,QAAxB,IAAoCjmC,MAAM,CAACimC,KAAP,KAAiB,IAA5D;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS04T,SAAT,CAAmBpvW,IAAnB,EAAyB;EACrB,OAAOxE,yDAAS,CAACqS,CAAC,IAAI;IAClB,MAAMwhW,UAAU,GAAGrvW,IAAI,CAAC6N,CAAD,CAAvB;;IACA,IAAIwhW,UAAJ,EAAgB;MACZ,OAAOv0W,0CAAI,CAACu0W,UAAD,CAAJ,CAAiBptW,IAAjB,CAAsB5G,mDAAG,CAAC,MAAMwS,CAAP,CAAzB,CAAP;IACH;;IACD,OAAO3S,wCAAE,CAAC2S,CAAD,CAAT;EACH,CANe,CAAhB;AAOH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMyhW,aAAN,CAAoB;EAChB;AACJ;AACA;EACIC,UAAU,CAAC/X,QAAD,EAAW;IACjB,IAAIgY,SAAJ;IACA,IAAIzrW,KAAK,GAAGyzV,QAAQ,CAACn0V,IAArB;;IACA,OAAOU,KAAK,KAAKlF,SAAjB,EAA4B;MACxB2wW,SAAS,GAAG,KAAKC,wBAAL,CAA8B1rW,KAA9B,KAAwCyrW,SAApD;MACAzrW,KAAK,GAAGA,KAAK,CAAC42J,QAAN,CAAe/oD,IAAf,CAAoBgpD,KAAK,IAAIA,KAAK,CAAC47L,MAAN,KAAiB5G,cAA9C,CAAR;IACH;;IACD,OAAO4f,SAAP;EACH;EACD;AACJ;AACA;AACA;;;EACIC,wBAAwB,CAACjY,QAAD,EAAW;IAC/B,OAAOA,QAAQ,CAAC92U,IAAT,CAAcmvU,aAAd,CAAP;EACH;;AAnBe;;AAqBpByf,aAAa,CAACnxW,IAAd;EAAA,iBAA0GmxW,aAA1G;AAAA;;AACAA,aAAa,CAAC/wW,KAAd,kBA3xHgG4hG,gEA2xHhG;EAAA,OAA8GmvQ,aAA9G;EAAA;IAAA,QAA6J,MAAMl/O,qDAAM,CAACs/O,oBAAD,CAAzK;EAAA;EAAA,YAAyI;AAAzI;;AACA;EAAA,mDA5xHgGvvQ,+DA4xHhG,CAA2FmvQ,aAA3F,EAAsH,CAAC;IAC3G1wW,IAAI,EAAEhF,qDADqG;IAE3GmF,IAAI,EAAE,CAAC;MAAE2zH,UAAU,EAAE,MAAd;MAAsBC,UAAU,EAAE,MAAMvC,qDAAM,CAACs/O,oBAAD;IAA9C,CAAD;EAFqG,CAAD,CAAtH;AAAA;AAIA;AACA;AACA;;;AACA,MAAMA,oBAAN,SAAmCJ,aAAnC,CAAiD;EAC7ChzW,WAAW,CAACo6C,KAAD,EAAQ;IACf;IACA,KAAKA,KAAL,GAAaA,KAAb;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACIi5T,WAAW,CAACnY,QAAD,EAAW;IAClB,MAAM9gT,KAAK,GAAG,KAAK64T,UAAL,CAAgB/X,QAAhB,CAAd;;IACA,IAAI9gT,KAAK,KAAK73C,SAAd,EAAyB;MACrB,KAAK63C,KAAL,CAAWs0S,QAAX,CAAoBt0S,KAApB;IACH;EACJ;;AAf4C;;AAiBjDg5T,oBAAoB,CAACvxW,IAArB;EAAA,iBAAiHuxW,oBAAjH,EApzHgGvvQ,sDAozHhG,CAAuJkmD,6DAAvJ;AAAA;;AACAqpN,oBAAoB,CAACnxW,KAArB,kBArzHgG4hG,gEAqzHhG;EAAA,OAAqHuvQ,oBAArH;EAAA,SAAqHA,oBAArH;EAAA,YAAuJ;AAAvJ;;AACA;EAAA,mDAtzHgGvvQ,+DAszHhG,CAA2FuvQ,oBAA3F,EAA6H,CAAC;IAClH9wW,IAAI,EAAEhF,qDAD4G;IAElHmF,IAAI,EAAE,CAAC;MAAE2zH,UAAU,EAAE;IAAd,CAAD;EAF4G,CAAD,CAA7H,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAE9zH,IAAI,EAAEynJ,6DAAQykM;IAAhB,CAAD,CAAP;EAA8B,CAHxE;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,SAAS8kB,4BAAT,CAAsCnvW,MAAtC,EAA8C,CAAG;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMovW,kBAAN,CAAyB;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,sBAAN,CAA6B;EACzB;AACJ;AACA;AACA;EACI9L,YAAY,CAACjgW,KAAD,EAAQ;IAChB,OAAO,KAAP;EACH;EACD;AACJ;AACA;;;EACI84P,KAAK,CAAC94P,KAAD,EAAQgsW,YAAR,EAAsB,CAAG;EAC9B;;;EACAzR,YAAY,CAACv6V,KAAD,EAAQ;IAChB,OAAO,KAAP;EACH;EACD;;;EACAy6V,QAAQ,CAACz6V,KAAD,EAAQ;IACZ,OAAO,IAAP;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACIq6V,gBAAgB,CAAC2F,MAAD,EAASlK,IAAT,EAAe;IAC3B,OAAOkK,MAAM,CAAC9I,WAAP,KAAuBpB,IAAI,CAACoB,WAAnC;EACH;;AA3BwB;;AA6B7B,MAAM+U,yBAAN,SAAwCF,sBAAxC,CAA+D;AAG/D;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMG,aAAa,GAAG,OAAOjxW,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAA5D;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMkxW,oBAAoB,GAAG,IAAIv2W,yDAAJ,CAAmBs2W,aAAa,GAAG,eAAH,GAAqB,EAArD,EAAyD;EAClFv9O,UAAU,EAAE,MADsE;EAElFh0H,OAAO,EAAE,OAAO,EAAP;AAFyE,CAAzD,CAA7B;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMyxW,aAAa,GAAG,OAAOnxW,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAA5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMoxW,MAAM,GAAG,IAAIz2W,yDAAJ,CAAmB,QAAnB,CAAf;;AACA,MAAM02W,kBAAN,CAAyB;EACrB/zW,WAAW,CAAC0uI,QAAD,EAAW2oJ,QAAX,EAAqB;IAC5B,KAAK3oJ,QAAL,GAAgBA,QAAhB;IACA,KAAK2oJ,QAAL,GAAgBA,QAAhB;IACA,KAAK28E,gBAAL,GAAwB,IAAIviP,OAAJ,EAAxB;IACA,KAAKwiP,eAAL,GAAuB,IAAIxiP,OAAJ,EAAvB;EACH;;EACDq0O,aAAa,CAACr+V,KAAD,EAAQ;IACjB,IAAI,KAAKusW,gBAAL,CAAsB5oW,GAAtB,CAA0B3D,KAA1B,CAAJ,EAAsC;MAClC,OAAO,KAAKusW,gBAAL,CAAsB5oW,GAAtB,CAA0B3D,KAA1B,CAAP;IACH,CAFD,MAGK,IAAIA,KAAK,CAAC49V,gBAAV,EAA4B;MAC7B,OAAOzmW,wCAAE,CAAC6I,KAAK,CAAC49V,gBAAP,CAAT;IACH;;IACD,IAAI,KAAK6O,mBAAT,EAA8B;MAC1B,KAAKA,mBAAL,CAAyBzsW,KAAzB;IACH;;IACD,MAAM0sW,UAAU,GAAG7f,kBAAkB,CAAC7sV,KAAK,CAACq+V,aAAN,EAAD,CAAlB,CACdngW,IADc,CACTq3F,oDAAG,CAACm7K,SAAS,IAAI;MACvB,IAAI,KAAKi8F,iBAAT,EAA4B;QACxB,KAAKA,iBAAL,CAAuB3sW,KAAvB;MACH;;MACDosW,aAAa,IAAIhO,gBAAgB,CAACp+V,KAAK,CAACrH,IAAN,IAAc,EAAf,EAAmB+3Q,SAAnB,CAAjC;MACA1wQ,KAAK,CAAC49V,gBAAN,GAAyBltF,SAAzB;IACH,CANY,CADM,EAOf3+K,yDAAQ,CAAC,MAAM;MACf,KAAKw6Q,gBAAL,CAAsBt4V,MAAtB,CAA6BjU,KAA7B;IACH,CAFW,CAPO,CAAnB,CAViB,CAoBjB;;IACA,MAAM0hJ,MAAM,GAAG,IAAI/0D,wDAAJ,CAA0B+/Q,UAA1B,EAAsC,MAAM,IAAIz1W,0CAAJ,EAA5C,EAA2DiH,IAA3D,CAAgEquF,yDAAQ,EAAxE,CAAf;IACA,KAAKggR,gBAAL,CAAsBrrW,GAAtB,CAA0BlB,KAA1B,EAAiC0hJ,MAAjC;IACA,OAAOA,MAAP;EACH;;EACD48M,YAAY,CAACn3N,cAAD,EAAiBnnI,KAAjB,EAAwB;IAChC,IAAI,KAAKwsW,eAAL,CAAqB7oW,GAArB,CAAyB3D,KAAzB,CAAJ,EAAqC;MACjC,OAAO,KAAKwsW,eAAL,CAAqB7oW,GAArB,CAAyB3D,KAAzB,CAAP;IACH,CAFD,MAGK,IAAIA,KAAK,CAACw9V,aAAV,EAAyB;MAC1B,OAAOrmW,wCAAE,CAAC;QAAEunW,MAAM,EAAE1+V,KAAK,CAACw9V,aAAhB;QAA+Bv2N,QAAQ,EAAEjnI,KAAK,CAAC09V;MAA/C,CAAD,CAAT;IACH;;IACD,IAAI,KAAK+O,mBAAT,EAA8B;MAC1B,KAAKA,mBAAL,CAAyBzsW,KAAzB;IACH;;IACD,MAAM4sW,sBAAsB,GAAG,KAAKC,yBAAL,CAA+B7sW,KAAK,CAACs+V,YAArC,CAA/B;IACA,MAAMoO,UAAU,GAAGE,sBAAsB,CAAC1uW,IAAvB,CAA4B5G,mDAAG,CAAEw1W,eAAD,IAAqB;MACpE,IAAI,KAAKH,iBAAT,EAA4B;QACxB,KAAKA,iBAAL,CAAuB3sW,KAAvB;MACH,CAHmE,CAIpE;MACA;;;MACA,IAAIinI,QAAJ;MACA,IAAI8lO,SAAJ;MACA,IAAI/O,2BAA2B,GAAG,KAAlC;;MACA,IAAIr8V,KAAK,CAACiqF,OAAN,CAAckhR,eAAd,CAAJ,EAAoC;QAChCC,SAAS,GAAGD,eAAZ;QACA9O,2BAA2B,GAAG,IAA9B;MACH,CAHD,MAIK;QACD/2N,QAAQ,GAAG6lO,eAAe,CAACxmW,MAAhB,CAAuB6gI,cAAvB,EAAuCF,QAAlD,CADC,CAED;QACA;QACA;QACA;;QACA8lO,SAAS,GAAG7kI,OAAO,CAACjhG,QAAQ,CAACtjI,GAAT,CAAa0oW,MAAb,EAAqB,EAArB,EAAyBh+G,2DAAA,GAAmBA,+DAA5C,CAAD,CAAnB;MACH;;MACD,MAAMqwG,MAAM,GAAGqO,SAAS,CAACz1W,GAAV,CAAcinW,iBAAd,CAAf;MACA6N,aAAa,IAAItO,cAAc,CAACY,MAAD,EAAS1+V,KAAK,CAACrH,IAAf,EAAqBqlW,2BAArB,CAA/B;MACA,OAAO;QAAEU,MAAF;QAAUz3N;MAAV,CAAP;IACH,CAxBiD,CAA/B,EAwBfl1C,yDAAQ,CAAC,MAAM;MACf,KAAKy6Q,eAAL,CAAqBv4V,MAArB,CAA4BjU,KAA5B;IACH,CAFW,CAxBO,CAAnB,CAXgC,CAsChC;;IACA,MAAM0hJ,MAAM,GAAG,IAAI/0D,wDAAJ,CAA0B+/Q,UAA1B,EAAsC,MAAM,IAAIz1W,0CAAJ,EAA5C,EACViH,IADU,CACLquF,yDAAQ,EADH,CAAf;IAEA,KAAKigR,eAAL,CAAqBtrW,GAArB,CAAyBlB,KAAzB,EAAgC0hJ,MAAhC;IACA,OAAOA,MAAP;EACH;;EACDmrN,yBAAyB,CAACvO,YAAD,EAAe;IACpC,OAAOzR,kBAAkB,CAACyR,YAAY,EAAb,CAAlB,CAAmCpgW,IAAnC,CAAwCuzF,yDAAQ,CAAEn3F,CAAD,IAAO;MAC3D,IAAIA,CAAC,YAAYkwT,0DAAb,IAAgC7oT,KAAK,CAACiqF,OAAN,CAActxF,CAAd,CAApC,EAAsD;QAClD,OAAOnD,wCAAE,CAACmD,CAAD,CAAT;MACH,CAFD,MAGK;QACD,OAAOvD,0CAAI,CAAC,KAAK64R,QAAL,CAAciuC,kBAAd,CAAiCvjU,CAAjC,CAAD,CAAX;MACH;IACJ,CAPsD,CAAhD,CAAP;EAQH;;AArFoB;;AAuFzBgyW,kBAAkB,CAAClyW,IAAnB;EAAA,iBAA+GkyW,kBAA/G,EApgIgGlwQ,sDAogIhG,CAAmJA,mDAAnJ,GApgIgGA,sDAogIhG,CAA2KA,mDAA3K;AAAA;;AACAkwQ,kBAAkB,CAAC9xW,KAAnB,kBArgIgG4hG,gEAqgIhG;EAAA,OAAmHkwQ,kBAAnH;EAAA,SAAmHA,kBAAnH;EAAA,YAAmJ;AAAnJ;;AACA;EAAA,mDAtgIgGlwQ,+DAsgIhG,CAA2FkwQ,kBAA3F,EAA2H,CAAC;IAChHzxW,IAAI,EAAEhF,qDAD0G;IAEhHmF,IAAI,EAAE,CAAC;MAAE2zH,UAAU,EAAE;IAAd,CAAD;EAF0G,CAAD,CAA3H,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAE9zH,IAAI,EAAEuhG,mDAAW0xB;IAAnB,CAAD,EAAwB;MAAEjzH,IAAI,EAAEuhG,mDAAWuhO;IAAnB,CAAxB,CAAP;EAAwD,CAHlG;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMqvC,mBAAN,CAA0B;AAE1B;AACA;AACA;;;AACA,MAAMC,0BAAN,CAAiC;EAC7BC,gBAAgB,CAACrwW,GAAD,EAAM;IAClB,OAAO,IAAP;EACH;;EACD86O,OAAO,CAAC96O,GAAD,EAAM;IACT,OAAOA,GAAP;EACH;;EACD2zF,KAAK,CAAC28Q,UAAD,EAAaC,QAAb,EAAuB;IACxB,OAAOD,UAAP;EACH;;AAT4B;AAYjC;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,aAAa,GAAG,OAAOpyW,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAA5D;;AACA,SAASowF,mBAAT,CAA6B3rF,KAA7B,EAAoC;EAChC,MAAMA,KAAN;AACH;;AACD,SAAS4tW,+BAAT,CAAyC5tW,KAAzC,EAAgDm7V,aAAhD,EAA+Dh+V,GAA/D,EAAoE;EAChE,OAAOg+V,aAAa,CAAC32U,KAAd,CAAoB,GAApB,CAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,MAAMqpV,iBAAiB,GAAG;EACtB7f,KAAK,EAAE,OADe;EAEtBnuV,QAAQ,EAAE,SAFY;EAGtBouV,YAAY,EAAE,SAHQ;EAItB9zQ,WAAW,EAAE;AAJS,CAA1B;AAMA;AACA;AACA;AACA;;AACA,MAAM2zR,kBAAkB,GAAG;EACvB9f,KAAK,EAAE,QADgB;EAEvBnuV,QAAQ,EAAE,SAFa;EAGvBouV,YAAY,EAAE,SAHS;EAIvB9zQ,WAAW,EAAE;AAJU,CAA3B;;AAMA,SAAS4zR,0BAAT,CAAoCjgH,IAApC,EAA0C9wP,MAA1C,EAAkD;EAC9C,IAAI8wP,IAAI,CAACm4C,YAAT,EAAuB;IACnBjpS,MAAM,CAACipS,YAAP,GAAsBn4C,IAAI,CAACm4C,YAA3B;EACH;;EACD,IAAIn4C,IAAI,CAACkgH,wBAAT,EAAmC;IAC/BhxW,MAAM,CAACgxW,wBAAP,GAAkClgH,IAAI,CAACkgH,wBAAvC;EACH;;EACD,IAAIlgH,IAAI,CAACmgH,mBAAT,EAA8B;IAC1BjxW,MAAM,CAACixW,mBAAP,GAA6BngH,IAAI,CAACmgH,mBAAlC;EACH;;EACD,IAAIngH,IAAI,CAAC4rG,yBAAT,EAAoC;IAChC18V,MAAM,CAAC08V,yBAAP,GAAmC5rG,IAAI,CAAC4rG,yBAAxC;EACH;;EACD,IAAI5rG,IAAI,CAAC62G,sBAAT,EAAiC;IAC7B3nW,MAAM,CAAC2nW,sBAAP,GAAgC72G,IAAI,CAAC62G,sBAArC;EACH;;EACD,IAAI72G,IAAI,CAACogH,iBAAT,EAA4B;IACxBlxW,MAAM,CAACkxW,iBAAP,GAA2BpgH,IAAI,CAACogH,iBAAhC;EACH;;EACD,IAAIpgH,IAAI,CAACqgH,4BAAT,EAAuC;IACnCnxW,MAAM,CAACmxW,4BAAP,GAAsCrgH,IAAI,CAACqgH,4BAA3C;EACH;AACJ;;AACD,SAASC,WAAT,GAAuB;EACnB,MAAMjT,aAAa,GAAGxuO,qDAAM,CAAC2iO,aAAD,CAA5B;EACA,MAAMyM,QAAQ,GAAGpvO,qDAAM,CAACkvO,sBAAD,CAAvB;EACA,MAAM9iW,QAAQ,GAAG4zH,qDAAM,CAACl2H,sDAAD,CAAvB;EACA,MAAM8wI,QAAQ,GAAG5a,qDAAM,CAACyB,mDAAD,CAAvB;EACA,MAAM8hK,QAAQ,GAAGvjK,qDAAM,CAACsxM,mDAAD,CAAvB;EACA,MAAMjxT,MAAM,GAAG2/G,qDAAM,CAACggP,MAAD,EAAS;IAAE3+P,QAAQ,EAAE;EAAZ,CAAT,CAAN,IAAsC,EAArD;EACA,MAAM8/I,IAAI,GAAGnhI,qDAAM,CAAC8/O,oBAAD,EAAuB;IAAEz+P,QAAQ,EAAE;EAAZ,CAAvB,CAAN,IAAoD,EAAjE;EACA,MAAMqgQ,oBAAoB,GAAG1hP,qDAAM,CAACs/O,oBAAD,CAAnC;EACA,MAAMqC,aAAa,GAAG3hP,qDAAM,CAACk/O,aAAD,EAAgB;IAAE79P,QAAQ,EAAE;EAAZ,CAAhB,CAA5B;EACA,MAAMugQ,mBAAmB,GAAG5hP,qDAAM,CAAC2gP,mBAAD,EAAsB;IAAEt/P,QAAQ,EAAE;EAAZ,CAAtB,CAAlC;EACA,MAAMwsP,kBAAkB,GAAG7tO,qDAAM,CAACy/O,kBAAD,EAAqB;IAAEp+P,QAAQ,EAAE;EAAZ,CAArB,CAAjC;EACA,MAAMhxG,MAAM,GAAG,IAAIrF,MAAJ,CAAW,IAAX,EAAiBwjW,aAAjB,EAAgCY,QAAhC,EAA0ChjW,QAA1C,EAAoDwuI,QAApD,EAA8D2oJ,QAA9D,EAAwE1nD,OAAO,CAACx7N,MAAD,CAA/E,CAAf;;EACA,IAAIuhW,mBAAJ,EAAyB;IACrBvxW,MAAM,CAACuxW,mBAAP,GAA6BA,mBAA7B;EACH;;EACD,IAAI/T,kBAAJ,EAAwB;IACpBx9V,MAAM,CAACw9V,kBAAP,GAA4BA,kBAA5B;EACH;;EACDx9V,MAAM,CAACsxW,aAAP,GAAuBA,aAAa,IAAID,oBAAxC;EACAN,0BAA0B,CAACjgH,IAAD,EAAO9wP,MAAP,CAA1B;EACAmvW,4BAA4B,CAACnvW,MAAD,CAA5B;EACA,OAAOA,MAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMrF,MAAN,CAAa;EACT;AACJ;AACA;EACI;EACAkB,WAAW,CAACwwW,iBAAD,EAAoBlO,aAApB,EAAmCiE,YAAnC,EAAiDrmW,QAAjD,EAA2DwuI,QAA3D,EAAqE2oJ,QAArE,EAA+EljR,MAA/E,EAAuF;IAC9F,KAAKq8V,iBAAL,GAAyBA,iBAAzB;IACA,KAAKlO,aAAL,GAAqBA,aAArB;IACA,KAAKiE,YAAL,GAAoBA,YAApB;IACA,KAAKrmW,QAAL,GAAgBA,QAAhB;IACA,KAAKiU,MAAL,GAAcA,MAAd;IACA,KAAKwhW,wBAAL,GAAgC,IAAhC;IACA,KAAKC,iBAAL,GAAyB,IAAzB;IACA,KAAKC,QAAL,GAAgB,KAAhB;IACA,KAAKC,YAAL,GAAoB,CAApB;IACA;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;IACQ,KAAKC,aAAL,GAAqB,CAArB;IACA,KAAKC,eAAL,GAAuB,KAAvB;IACA;AACR;AACA;;IACQ,KAAKvuR,MAAL,GAAc,IAAI/oF,0CAAJ,EAAd;IACA;AACR;AACA;;IACQ,KAAK0uS,YAAL,GAAoBt6M,mBAApB;IACA;AACR;AACA;AACA;AACA;AACA;;IACQ,KAAKqiR,wBAAL,GAAgCJ,+BAAhC;IACA;AACR;AACA;AACA;;IACQ,KAAKkB,SAAL,GAAiB,KAAjB;IACA,KAAKC,gBAAL,GAAwB,CAAC,CAAzB;IACA;AACR;AACA;AACA;AACA;AACA;;IACQ,KAAKC,kBAAL,GAA0B,MAAMv3W,wCAAE,CAAC,KAAK,CAAN,CAAlC;IACA;AACR;AACA;AACA;;;IACQ,KAAK82W,mBAAL,GAA2B,IAAIhB,0BAAJ,EAA3B;IACA;AACR;AACA;;IACQ,KAAK/S,kBAAL,GAA0B,IAAI+R,yBAAJ,EAA1B;IACA;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACQ,KAAK0B,mBAAL,GAA2B,QAA3B;IACA;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACQ,KAAKvU,yBAAL,GAAiC,WAAjC;IACA;AACR;AACA;AACA;AACA;AACA;AACA;;IACQ,KAAKwU,iBAAL,GAAyB,UAAzB;IACA;AACR;AACA;AACA;AACA;AACA;;IACQ,KAAKvJ,sBAAL,GAA8B,WAA9B;IACA;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IACQ,KAAKwJ,4BAAL,GAAoC,SAApC;;IACA,MAAMc,WAAW,GAAIvkW,CAAD,IAAO,KAAKwkW,YAAL,CAAkB,IAAI7X,oBAAJ,CAAyB3sV,CAAzB,CAAlB,CAA3B;;IACA,MAAMykW,SAAS,GAAIzkW,CAAD,IAAO,KAAKwkW,YAAL,CAAkB,IAAI5X,kBAAJ,CAAuB5sV,CAAvB,CAAlB,CAAzB;;IACA,KAAKs7V,YAAL,GAAoBz+N,QAAQ,CAACtjI,GAAT,CAAa2oW,kBAAb,CAApB;IACA,KAAK5G,YAAL,CAAkBiH,iBAAlB,GAAsCkC,SAAtC;IACA,KAAKnJ,YAAL,CAAkB+G,mBAAlB,GAAwCkC,WAAxC;IACA,KAAKtpW,QAAL,GAAgB4hI,QAAQ,CAACtjI,GAAT,CAAaupH,sDAAb,CAAhB;IACA,KAAK7kB,OAAL,GAAe4+B,QAAQ,CAACtjI,GAAT,CAAagxU,sDAAb,CAAf;IACA,MAAMn3L,MAAM,GAAGvW,QAAQ,CAACtjI,GAAT,CAAaqqH,iDAAb,CAAf;IACA,KAAKugP,eAAL,GAAuB/wN,MAAM,YAAYxvB,iDAAlB,IAA4BA,iEAAA,EAAnD;IACA,KAAK8gP,WAAL,CAAiBpiW,MAAjB;IACA,KAAKqiW,cAAL,GAAsBhiB,kBAAkB,EAAxC;IACA,KAAKiiB,UAAL,GAAkB,KAAKD,cAAvB;IACA,KAAKE,cAAL,GAAsB,KAAKF,cAA3B;IACA,KAAKG,WAAL,GAAmB9W,gBAAgB,CAAC,KAAK2W,cAAN,EAAsB,KAAKhG,iBAA3B,CAAnC;IACA,KAAKj+P,WAAL,GAAmB,IAAI5zG,iDAAJ,CAAoB;MACnCw0B,EAAE,EAAE,CAD+B;MAEnCyjV,YAAY,EAAE,CAFqB;MAGnCJ,cAAc,EAAE,KAAKA,cAHc;MAInCK,aAAa,EAAE,KAAKL,cAJe;MAKnCrG,YAAY,EAAE,KAAKuF,mBAAL,CAAyBt2H,OAAzB,CAAiC,KAAKo3H,cAAtC,CALqB;MAMnCzY,iBAAiB,EAAE,KAAK2X,mBAAL,CAAyBt2H,OAAzB,CAAiC,KAAKo3H,cAAtC,CANgB;MAOnCM,MAAM,EAAE,KAAKN,cAPsB;MAQnCO,MAAM,EAAE,EAR2B;MASnCtoW,OAAO,EAAE,IAT0B;MAUnC2B,MAAM,EAAE,IAV2B;MAWnCknF,OAAO,EAAE9oF,OAAO,CAACC,OAAR,CAAgB,IAAhB,CAX0B;MAYnC0V,MAAM,EAAE,YAZ2B;MAanC05U,aAAa,EAAE,IAboB;MAcnC/rO,eAAe,EAAE,KAAK6kP,WAAL,CAAiBzb,QAdC;MAenC4O,cAAc,EAAE,IAfmB;MAgBnCnD,kBAAkB,EAAE,KAAKgQ,WAhBU;MAiBnCjQ,iBAAiB,EAAE,IAjBgB;MAkBnC0B,MAAM,EAAE;QAAEM,iBAAiB,EAAE,EAArB;QAAyBD,mBAAmB,EAAE;MAA9C,CAlB2B;MAmBnCsB,YAAY,EAAE;IAnBqB,CAApB,CAAnB;IAqBA,KAAKiN,WAAL,GAAmB,KAAKC,gBAAL,CAAsB,KAAK1kQ,WAA3B,CAAnB;IACA,KAAK2kQ,kBAAL;EACH;EACD;AACJ;AACA;AACA;AACA;;;EACqB,IAAbC,aAAa,GAAG;IAChB,OAAO,KAAKj3W,QAAL,CAAcu3H,QAAd,IAA0B2/O,aAAjC;EACH;;EACDH,gBAAgB,CAAC1kQ,WAAD,EAAc;IAC1B,MAAM8kQ,aAAa,GAAG,KAAK5vR,MAA3B;IACA,OAAO8qB,WAAW,CAAC5sG,IAAZ,CAAiBvG,uDAAM,CAAC2C,CAAC,IAAIA,CAAC,CAACoxB,EAAF,KAAS,CAAf,CAAvB,EACP;IACAp0B,mDAAG,CAACgD,CAAC,KAAK,EAAE,GAAGA,CAAL;MAAQouW,YAAY,EAAE,KAAKuF,mBAAL,CAAyBt2H,OAAzB,CAAiCr9O,CAAC,CAAC+0W,MAAnC;IAAtB,CAAL,CAAF,CAFI,EAGP;IACA53W,yDAAS,CAACo4W,sBAAsB,IAAI;MAChC,IAAIC,SAAS,GAAG,KAAhB;MACA,IAAIC,OAAO,GAAG,KAAd;MACA,OAAO54W,wCAAE,CAAC04W,sBAAD,CAAF,CACF3xW,IADE,EAEP;MACAq3F,oDAAG,CAACj7F,CAAC,IAAI;QACL,KAAK6zW,iBAAL,GAAyB;UACrBziV,EAAE,EAAEpxB,CAAC,CAACoxB,EADe;UAErBskV,UAAU,EAAE11W,CAAC,CAAC+0W,MAFO;UAGrB3G,YAAY,EAAEpuW,CAAC,CAACouW,YAHK;UAIrBpwQ,OAAO,EAAEh+F,CAAC,CAACoiB,MAJU;UAKrB4yV,MAAM,EAAEh1W,CAAC,CAACg1W,MALW;UAMrBW,kBAAkB,EAAE,KAAK/B,wBAAL,GAChB,EAAE,GAAG,KAAKA,wBAAV;YAAoC+B,kBAAkB,EAAE;UAAxD,CADgB,GAEhB;QARiB,CAAzB;MAUH,CAXE,CAHI,EAcHx4W,yDAAS,CAAC6C,CAAC,IAAI;QACf,MAAM20W,cAAc,GAAG,KAAKA,cAAL,CAAoBxxV,QAApB,EAAvB;QACA,MAAMyyV,aAAa,GAAG,CAAC,KAAK1B,SAAN,IAClBl0W,CAAC,CAACouW,YAAF,CAAejrV,QAAf,OAA8BwxV,cADZ,IAElB;QACA;QACA;QACA;QACAA,cAAc,KAAK,KAAKF,cAAL,CAAoBtxV,QAApB,EANvB;QAOA,MAAM0yV,iBAAiB,GAAG,CAAC,KAAKxC,mBAAL,KAA6B,QAA7B,GAAwC,IAAxC,GAA+CuC,aAAhD,KACtB,KAAKjC,mBAAL,CAAyBf,gBAAzB,CAA0C5yW,CAAC,CAAC+0W,MAA5C,CADJ;;QAEA,IAAIc,iBAAJ,EAAuB;UACnB;UACA;UACA,IAAIC,4BAA4B,CAAC91W,CAAC,CAACoiB,MAAH,CAAhC,EAA4C;YACxC,KAAKuyV,cAAL,GAAsB30W,CAAC,CAACouW,YAAxB;UACH;;UACD,OAAOvxW,wCAAE,CAACmD,CAAD,CAAF,CAAM4D,IAAN,EACP;UACAzG,yDAAS,CAAC6C,CAAC,IAAI;YACX,MAAM0+F,UAAU,GAAG,KAAK8R,WAAL,CAAiBvkB,QAAjB,EAAnB;YACAqpR,aAAa,CAAC3zW,IAAd,CAAmB,IAAIi6V,eAAJ,CAAoB57V,CAAC,CAACoxB,EAAtB,EAA0B,KAAK2kV,YAAL,CAAkB/1W,CAAC,CAACouW,YAApB,CAA1B,EAA6DpuW,CAAC,CAACoiB,MAA/D,EAAuEpiB,CAAC,CAAC87V,aAAzE,CAAnB;;YACA,IAAIp9P,UAAU,KAAK,KAAK8R,WAAL,CAAiBvkB,QAAjB,EAAnB,EAAgD;cAC5C,OAAOnvF,wCAAP;YACH,CALU,CAMX;YACA;;;YACA,OAAO2P,OAAO,CAACC,OAAR,CAAgB1M,CAAhB,CAAP;UACH,CATQ,CAFF,EAYP;UACAmuW,cAAc,CAAC,KAAKpjW,QAAL,CAAc4hI,QAAf,EAAyB,KAAKy+N,YAA9B,EAA4C,KAAK7K,aAAjD,EAAgE,KAAKnuV,MAArE,CAbP,EAcP;UACA;UACA6oF,oDAAG,CAACj7F,CAAC,IAAI;YACL,KAAK6zW,iBAAL,GAAyB,EACrB,GAAG,KAAKA,iBADa;cAErBmC,QAAQ,EAAEh2W,CAAC,CAACg8V;YAFS,CAAzB;YAIAuZ,sBAAsB,CAACvZ,iBAAvB,GAA2Ch8V,CAAC,CAACg8V,iBAA7C;UACH,CANE,CAhBI,EAuBP;UACA2S,SAAS,CAAC,KAAK5jW,QAAL,CAAc4hI,QAAf,EAAyB,KAAK8hO,iBAA9B,EAAiD,KAAKr8V,MAAtD,EAA8D,KAAKmuV,aAAnE,EAAkF,KAAKzB,yBAAvF,EAAkH,KAAKiL,sBAAvH,CAxBF,EAyBP;UACA9uQ,oDAAG,CAACj7F,CAAC,IAAI;YACLu1W,sBAAsB,CAACxN,cAAvB,GAAwC/nW,CAAC,CAAC+nW,cAA1C;;YACA,IAAI,KAAKuL,iBAAL,KAA2B,OAA/B,EAAwC;cACpC,IAAI,CAACtzW,CAAC,CAACg1W,MAAF,CAASiB,kBAAd,EAAkC;gBAC9B,MAAMlB,MAAM,GAAG,KAAKpB,mBAAL,CAAyBz9Q,KAAzB,CAA+Bl2F,CAAC,CAACg8V,iBAAjC,EAAoDh8V,CAAC,CAAC+0W,MAAtD,CAAf;gBACA,KAAKmB,aAAL,CAAmBnB,MAAnB,EAA2B/0W,CAA3B;cACH;;cACD,KAAK20W,cAAL,GAAsB30W,CAAC,CAACg8V,iBAAxB;YACH,CARI,CASL;;;YACA,MAAMma,gBAAgB,GAAG,IAAIha,gBAAJ,CAAqBn8V,CAAC,CAACoxB,EAAvB,EAA2B,KAAK2kV,YAAL,CAAkB/1W,CAAC,CAACouW,YAApB,CAA3B,EAA8D,KAAK2H,YAAL,CAAkB/1W,CAAC,CAACg8V,iBAApB,CAA9D,EAAsGh8V,CAAC,CAAC+nW,cAAxG,CAAzB;YACAuN,aAAa,CAAC3zW,IAAd,CAAmBw0W,gBAAnB;UACH,CAZE,CA1BI,CAAP;QAuCH,CA7CD,MA8CK;UACD,MAAMC,kBAAkB,GAAGR,aAAa,IAAI,KAAKlB,UAAtB,IACvB,KAAKf,mBAAL,CAAyBf,gBAAzB,CAA0C,KAAK8B,UAA/C,CADJ;UAEA;AACpB;AACA;;UACoB,IAAI0B,kBAAJ,EAAwB;YACpB,MAAM;cAAEhlV,EAAF;cAAMg9U,YAAN;cAAoBhsV,MAApB;cAA4B05U,aAA5B;cAA2CkZ;YAA3C,IAAsDh1W,CAA5D;YACA,MAAMq2W,QAAQ,GAAG,IAAIza,eAAJ,CAAoBxqU,EAApB,EAAwB,KAAK2kV,YAAL,CAAkB3H,YAAlB,CAAxB,EAAyDhsV,MAAzD,EAAiE05U,aAAjE,CAAjB;YACAwZ,aAAa,CAAC3zW,IAAd,CAAmB00W,QAAnB;YACA,MAAMtO,cAAc,GAAGjK,gBAAgB,CAACsQ,YAAD,EAAe,KAAKK,iBAApB,CAAhB,CAAuDtV,QAA9E;YACAoc,sBAAsB,GAAG,EACrB,GAAGv1W,CADkB;cAErB+nW,cAFqB;cAGrB/L,iBAAiB,EAAEoS,YAHE;cAIrB4G,MAAM,EAAE,EAAE,GAAGA,MAAL;gBAAaiB,kBAAkB,EAAE,KAAjC;gBAAwCzpW,UAAU,EAAE;cAApD;YAJa,CAAzB;YAMA,OAAO3P,wCAAE,CAAC04W,sBAAD,CAAT;UACH,CAZD,MAaK;YACD;AACxB;AACA;AACA;AACA;YACwB,KAAKb,UAAL,GAAkB10W,CAAC,CAAC+0W,MAApB;YACA/0W,CAAC,CAAC0M,OAAF,CAAU,IAAV;YACA,OAAO5P,wCAAP;UACH;QACJ;MACJ,CAvFY,CAdN,EAsGP;MACAm+F,oDAAG,CAACj7F,CAAC,IAAI;QACL,MAAMs2W,WAAW,GAAG,IAAIla,gBAAJ,CAAqBp8V,CAAC,CAACoxB,EAAvB,EAA2B,KAAK2kV,YAAL,CAAkB/1W,CAAC,CAACouW,YAApB,CAA3B,EAA8D,KAAK2H,YAAL,CAAkB/1W,CAAC,CAACg8V,iBAApB,CAA9D,EAAsGh8V,CAAC,CAAC+nW,cAAxG,CAApB;QACA,KAAKuM,YAAL,CAAkBgC,WAAlB;MACH,CAHE,CAvGI,EA0GHt5W,mDAAG,CAACgD,CAAC,IAAI;QACTu1W,sBAAsB,GAAG,EACrB,GAAGv1W,CADkB;UAErBqmW,MAAM,EAAEH,iBAAiB,CAAClmW,CAAC,CAAC+nW,cAAH,EAAmB/nW,CAAC,CAAC+vH,eAArB,EAAsC,KAAKy0O,YAA3C;QAFJ,CAAzB;QAIA,OAAO+Q,sBAAP;MACH,CANM,CA1GA,EAgHHzN,WAAW,CAAC,KAAK/8V,QAAL,CAAc4hI,QAAf,EAA0Bm3M,GAAD,IAAS,KAAKwwB,YAAL,CAAkBxwB,GAAlB,CAAlC,CAhHR,EAgHmE7oP,oDAAG,CAACj7F,CAAC,IAAI;QAC/Eu1W,sBAAsB,CAACvN,YAAvB,GAAsChoW,CAAC,CAACgoW,YAAxC;;QACA,IAAI1Q,SAAS,CAACt3V,CAAC,CAACgoW,YAAH,CAAb,EAA+B;UAC3B,MAAM1H,0BAA0B,CAAC,KAAKC,aAAN,EAAqBvgW,CAAC,CAACgoW,YAAvB,CAAhC;QACH;;QACD,MAAMuO,SAAS,GAAG,IAAIla,cAAJ,CAAmBr8V,CAAC,CAACoxB,EAArB,EAAyB,KAAK2kV,YAAL,CAAkB/1W,CAAC,CAACouW,YAApB,CAAzB,EAA4D,KAAK2H,YAAL,CAAkB/1W,CAAC,CAACg8V,iBAApB,CAA5D,EAAoGh8V,CAAC,CAAC+nW,cAAtG,EAAsH,CAAC,CAAC/nW,CAAC,CAACgoW,YAA1H,CAAlB;QACA,KAAKsM,YAAL,CAAkBiC,SAAlB;MACH,CAP4E,CAhHtE,EAuHHl5W,uDAAM,CAAC2C,CAAC,IAAI;QACZ,IAAI,CAACA,CAAC,CAACgoW,YAAP,EAAqB;UACjB,KAAKwO,cAAL,CAAoBx2W,CAApB;UACA,KAAKy2W,0BAAL,CAAgCz2W,CAAhC,EAAmC,EAAnC,EAAuC;UAAE;UAAzC;UACA,OAAO,KAAP;QACH;;QACD,OAAO,IAAP;MACH,CAPS,CAvHH,EA+HP;MACA+wW,SAAS,CAAC/wW,CAAC,IAAI;QACX,IAAIA,CAAC,CAACqmW,MAAF,CAASM,iBAAT,CAA2B7jW,MAA/B,EAAuC;UACnC,OAAOjG,wCAAE,CAACmD,CAAD,CAAF,CAAM4D,IAAN,CAAWq3F,oDAAG,CAACj7F,CAAC,IAAI;YACvB,MAAM02W,YAAY,GAAG,IAAIna,YAAJ,CAAiBv8V,CAAC,CAACoxB,EAAnB,EAAuB,KAAK2kV,YAAL,CAAkB/1W,CAAC,CAACouW,YAApB,CAAvB,EAA0D,KAAK2H,YAAL,CAAkB/1W,CAAC,CAACg8V,iBAApB,CAA1D,EAAkGh8V,CAAC,CAAC+nW,cAApG,CAArB;YACA,KAAKuM,YAAL,CAAkBoC,YAAlB;UACH,CAHoB,CAAd,EAGHv5W,yDAAS,CAAC6C,CAAC,IAAI;YACf,IAAI22W,YAAY,GAAG,KAAnB;YACA,OAAO95W,wCAAE,CAACmD,CAAD,CAAF,CAAM4D,IAAN,CAAW0sW,WAAW,CAAC,KAAKxR,yBAAN,EAAiC,KAAK/zV,QAAL,CAAc4hI,QAA/C,CAAtB,EAAgF1xC,oDAAG,CAAC;cACvFt5F,IAAI,EAAE,MAAMg1W,YAAY,GAAG,IAD4D;cAEvFlpR,QAAQ,EAAE,MAAM;gBACZ,IAAI,CAACkpR,YAAL,EAAmB;kBACf,KAAKH,cAAL,CAAoBx2W,CAApB;kBACA,KAAKy2W,0BAAL,CAAgCz2W,CAAhC,EAAmC+yW,aAAa,GAC3C,oDAD2C,GAE5C,EAFJ,EAEQ;kBAAE;kBAFV;gBAGH;cACJ;YATsF,CAAD,CAAnF,CAAP;UAWH,CAbY,CAHN,EAgBH93Q,oDAAG,CAACj7F,CAAC,IAAI;YACT,MAAM42W,UAAU,GAAG,IAAIpa,UAAJ,CAAex8V,CAAC,CAACoxB,EAAjB,EAAqB,KAAK2kV,YAAL,CAAkB/1W,CAAC,CAACouW,YAApB,CAArB,EAAwD,KAAK2H,YAAL,CAAkB/1W,CAAC,CAACg8V,iBAApB,CAAxD,EAAgGh8V,CAAC,CAAC+nW,cAAlG,CAAnB;YACA,KAAKuM,YAAL,CAAkBsC,UAAlB;UACH,CAHM,CAhBA,CAAP;QAoBH;;QACD,OAAOp2W,SAAP;MACH,CAxBQ,CAhIF,EAyJP;MACAuwW,SAAS,CAAE/wW,CAAD,IAAO;QACb,MAAM62W,cAAc,GAAInxW,KAAD,IAAW;UAC9B,MAAMoxW,OAAO,GAAG,EAAhB;;UACA,IAAIpxW,KAAK,CAACk3V,WAAN,EAAmBmH,aAAnB,IACA,CAACr+V,KAAK,CAACk3V,WAAN,CAAkB0G,gBADvB,EACyC;YACrCwT,OAAO,CAAC3uW,IAAR,CAAa,KAAKijW,YAAL,CAAkBrH,aAAlB,CAAgCr+V,KAAK,CAACk3V,WAAtC,EACRh5V,IADQ,CACHq3F,oDAAG,CAAC87Q,eAAe,IAAI;cAC7BrxW,KAAK,CAAC0wQ,SAAN,GAAkB2gG,eAAlB;YACH,CAFY,CADA,EAGT/5W,mDAAG,CAAC,MAAM,KAAK,CAAZ,CAHM,CAAb;UAIH;;UACD,KAAK,MAAMu/J,KAAX,IAAoB72J,KAAK,CAAC42J,QAA1B,EAAoC;YAChCw6M,OAAO,CAAC3uW,IAAR,CAAa,GAAG0uW,cAAc,CAACt6M,KAAD,CAA9B;UACH;;UACD,OAAOu6M,OAAP;QACH,CAbD;;QAcA,OAAOzjR,mDAAa,CAACwjR,cAAc,CAAC72W,CAAC,CAAC+nW,cAAF,CAAiB/iW,IAAlB,CAAf,CAAb,CACFpB,IADE,CACGyzF,+DAAc,EADjB,EACqBj6F,oDAAI,CAAC,CAAD,CADzB,CAAP;MAEH,CAjBQ,CA1JF,EA2KH2zW,SAAS,CAAC,MAAM,KAAKqD,kBAAL,EAAP,CA3KN,EA2KyCp3W,mDAAG,CAAEgD,CAAD,IAAO;QACvD,MAAM2kW,iBAAiB,GAAGhF,iBAAiB,CAAC,KAAKC,kBAAN,EAA0B5/V,CAAC,CAAC+nW,cAA5B,EAA4C/nW,CAAC,CAAC4kW,kBAA9C,CAA3C;QACA2Q,sBAAsB,GAAG,EAAE,GAAGv1W,CAAL;UAAQ2kW;QAAR,CAAzB;QACA,OAAQ4Q,sBAAR;MACH,CAJkD,CA3K5C;MAgLP;AACZ;AACA;AACA;AACA;MACYt6Q,oDAAG,CAAEj7F,CAAD,IAAO;QACP,KAAKy0W,cAAL,GAAsBz0W,CAAC,CAACg8V,iBAAxB;QACA,KAAK0Y,UAAL,GACI,KAAKf,mBAAL,CAAyBz9Q,KAAzB,CAA+Bl2F,CAAC,CAACg8V,iBAAjC,EAAoDh8V,CAAC,CAAC+0W,MAAtD,CADJ;QAEA,KAAKH,WAAL,GAAmB50W,CAAC,CAAC2kW,iBAArB;;QACA,IAAI,KAAK2O,iBAAL,KAA2B,UAA/B,EAA2C;UACvC,IAAI,CAACtzW,CAAC,CAACg1W,MAAF,CAASiB,kBAAd,EAAkC;YAC9B,KAAKC,aAAL,CAAmB,KAAKxB,UAAxB,EAAoC10W,CAApC;UACH;;UACD,KAAK20W,cAAL,GAAsB30W,CAAC,CAACg8V,iBAAxB;QACH;MACJ,CAXE,CArLI,EAgMHuI,cAAc,CAAC,KAAKC,YAAN,EAAoB,KAAK5E,kBAAzB,EAA8C9b,GAAD,IAAS,KAAKwwB,YAAL,CAAkBxwB,GAAlB,CAAtD,CAhMX,EAgM0F7oP,oDAAG,CAAC;QACjGt5F,IAAI,GAAG;UACH6zW,SAAS,GAAG,IAAZ;QACH,CAHgG;;QAIjG/nR,QAAQ,GAAG;UACP+nR,SAAS,GAAG,IAAZ;QACH;;MANgG,CAAD,CAhM7F,EAuMH/9Q,yDAAQ,CAAC,MAAM;QACf;AAChB;AACA;AACA;AACA;AACA;QACgB,IAAI,CAAC+9Q,SAAD,IAAc,CAACC,OAAnB,EAA4B;UACxB,MAAMuB,iBAAiB,GAAGjE,aAAa,GAClC,iBAAgBwC,sBAAsB,CAClCnkV,EAAG,8CAA6C,KAAK2iV,YAAa,EAFpC,GAGnC,EAHJ;UAIA,KAAK0C,0BAAL,CAAgClB,sBAAhC,EAAwDyB,iBAAxD,EAA2E;UAAE;UAA7E;QACH,CAbc,CAcf;QACA;;;QACA,IAAI,KAAKnD,iBAAL,EAAwBziV,EAAxB,KAA+BmkV,sBAAsB,CAACnkV,EAA1D,EAA8D;UAC1D,KAAKyiV,iBAAL,GAAyB,IAAzB;QACH;MACJ,CAnBW,CAvML,EA0NH32W,2DAAU,CAAE2Q,CAAD,IAAO;QAClB4nW,OAAO,GAAG,IAAV;QACA;AAChB;;QACgB,IAAI1U,4BAA4B,CAAClzV,CAAD,CAAhC,EAAqC;UACjC,IAAI,CAACizV,uCAAuC,CAACjzV,CAAD,CAA5C,EAAiD;YAC7C;YACA;YACA;YACA;YACA;YACA;YACA,KAAKqmW,SAAL,GAAiB,IAAjB;YACA,KAAKsC,cAAL,CAAoBjB,sBAApB,EAA4C,IAA5C;UACH;;UACD,MAAM0B,SAAS,GAAG,IAAIhb,gBAAJ,CAAqBsZ,sBAAsB,CAACnkV,EAA5C,EAAgD,KAAK2kV,YAAL,CAAkBR,sBAAsB,CAACnH,YAAzC,CAAhD,EAAwGvgW,CAAC,CAACnM,OAA1G,EAAmHmM,CAAC,CAACgzV,gBAArH,CAAlB;UACAyU,aAAa,CAAC3zW,IAAd,CAAmBs1W,SAAnB,EAZiC,CAajC;UACA;;UACA,IAAI,CAACnW,uCAAuC,CAACjzV,CAAD,CAA5C,EAAiD;YAC7C0nW,sBAAsB,CAAC7oW,OAAvB,CAA+B,KAA/B;UACH,CAFD,MAGK;YACD,MAAMwqW,UAAU,GAAG,KAAKvD,mBAAL,CAAyBz9Q,KAAzB,CAA+BroF,CAAC,CAACtL,GAAjC,EAAsC,KAAKmyW,UAA3C,CAAnB;YACA,MAAMM,MAAM,GAAG;cACXiB,kBAAkB,EAAEV,sBAAsB,CAACP,MAAvB,CAA8BiB,kBADvC;cAEX;cACA;cACA;cACA;cACAzpW,UAAU,EAAE,KAAK8mW,iBAAL,KAA2B,OAA3B,IACRwC,4BAA4B,CAACP,sBAAsB,CAACnzV,MAAxB;YAPrB,CAAf;YASA,KAAK+0V,kBAAL,CAAwBD,UAAxB,EAAoC,YAApC,EAAkD,IAAlD,EAAwDlC,MAAxD,EAAgE;cAC5DtoW,OAAO,EAAE6oW,sBAAsB,CAAC7oW,OAD4B;cAE5D2B,MAAM,EAAEknW,sBAAsB,CAAClnW,MAF6B;cAG5DknF,OAAO,EAAEggR,sBAAsB,CAAChgR;YAH4B,CAAhE;UAKH;UACD;AACpB;;QACiB,CArCD,MAsCK;UACD,KAAKihR,cAAL,CAAoBjB,sBAApB,EAA4C,IAA5C;UACA,MAAM6B,QAAQ,GAAG,IAAIlb,eAAJ,CAAoBqZ,sBAAsB,CAACnkV,EAA3C,EAA+C,KAAK2kV,YAAL,CAAkBR,sBAAsB,CAACnH,YAAzC,CAA/C,EAAuGvgW,CAAvG,EAA0G0nW,sBAAsB,CAACxN,cAAvB,IAAyCvnW,SAAnJ,CAAjB;UACA80W,aAAa,CAAC3zW,IAAd,CAAmBy1W,QAAnB;;UACA,IAAI;YACA7B,sBAAsB,CAAC7oW,OAAvB,CAA+B,KAAK2+R,YAAL,CAAkBx9R,CAAlB,CAA/B;UACH,CAFD,CAGA,OAAOwpW,EAAP,EAAW;YACP9B,sBAAsB,CAAClnW,MAAvB,CAA8BgpW,EAA9B;UACH;QACJ;;QACD,OAAOv6W,wCAAP;MACH,CAtDa,CA1NP,CAAP,CAHgC,CAoRhC;IACH,CArRQ,CAJF,CAAP;EA0RH;EACD;AACJ;AACA;AACA;;;EACIw6W,sBAAsB,CAAC7I,iBAAD,EAAoB;IACtC,KAAKA,iBAAL,GAAyBA,iBAAzB,CADsC,CAEtC;IACA;;IACA,KAAKmG,WAAL,CAAiB5vW,IAAjB,CAAsBoxQ,SAAtB,GAAkC,KAAKq4F,iBAAvC;EACH;;EACD8I,aAAa,CAACv3W,CAAD,EAAI;IACb,KAAKwwG,WAAL,CAAiB7uG,IAAjB,CAAsB,EAAE,GAAG,KAAK6uG,WAAL,CAAiB1uG,KAAtB;MAA6B,GAAG9B;IAAhC,CAAtB;EACH;EACD;AACJ;AACA;;;EACIw3W,iBAAiB,GAAG;IAChB,KAAKC,2BAAL;;IACA,IAAI,KAAK1D,YAAL,KAAsB,CAA1B,EAA6B;MACzB,KAAKxnW,aAAL,CAAmB,KAAKpO,QAAL,CAAcE,IAAd,CAAmB,IAAnB,CAAnB,EAA6C;QAAEmO,UAAU,EAAE;MAAd,CAA7C;IACH;EACJ;EACD;AACJ;AACA;AACA;AACA;;;EACIirW,2BAA2B,GAAG;IAC1B;IACA;IACA;IACA,IAAI,CAAC,KAAKC,oBAAV,EAAgC;MAC5B,KAAKA,oBAAL,GAA4B,KAAKv5W,QAAL,CAAckE,SAAd,CAAwB4V,KAAK,IAAI;QACzD,MAAMmK,MAAM,GAAGnK,KAAK,CAAC,MAAD,CAAL,KAAkB,UAAlB,GAA+B,UAA/B,GAA4C,YAA3D;;QACA,IAAImK,MAAM,KAAK,UAAf,EAA2B;UACvB;UACA;UACAJ,UAAU,CAAC,MAAM;YACb,MAAMgzV,MAAM,GAAG;cAAExoW,UAAU,EAAE;YAAd,CAAf,CADa,CAEb;YACA;;YACA,MAAMlJ,KAAK,GAAG2U,KAAK,CAAC3U,KAAN,EAAaywW,YAAb,GAA4B97V,KAAK,CAAC3U,KAAlC,GAA0C,IAAxD;;YACA,IAAIA,KAAJ,EAAW;cACP,MAAMq0W,SAAS,GAAG,EAAE,GAAGr0W;cAAL,CAAlB;cACA,OAAOq0W,SAAS,CAAC5D,YAAjB;cACA,OAAO4D,SAAS,CAACtC,aAAjB;;cACA,IAAI7xW,MAAM,CAAC+D,IAAP,CAAYowW,SAAZ,EAAuB70W,MAAvB,KAAkC,CAAtC,EAAyC;gBACrCkyW,MAAM,CAAC1xW,KAAP,GAAeq0W,SAAf;cACH;YACJ;;YACD,MAAM7e,OAAO,GAAG,KAAKx2V,QAAL,CAAc2V,KAAK,CAAC,KAAD,CAAnB,CAAhB;YACA,KAAKk/V,kBAAL,CAAwBre,OAAxB,EAAiC12U,MAAjC,EAAyC9e,KAAzC,EAAgD0xW,MAAhD;UACH,CAfS,EAeP,CAfO,CAAV;QAgBH;MACJ,CAtB2B,CAA5B;IAuBH;EACJ;EACD;;;EACO,IAAHzyW,GAAG,GAAG;IACN,OAAO,KAAKwzW,YAAL,CAAkB,KAAKtB,cAAvB,CAAP;EACH;EACD;AACJ;AACA;AACA;;;EACImD,oBAAoB,GAAG;IACnB,OAAO,KAAK/D,iBAAZ;EACH;EACD;;;EACAS,YAAY,CAACr8V,KAAD,EAAQ;IAChB,KAAKytE,MAAL,CAAY/jF,IAAZ,CAAiBsW,KAAjB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIu8V,WAAW,CAACpiW,MAAD,EAAS;IAChB2gW,aAAa,IAAIvP,cAAc,CAACpxV,MAAD,CAA/B;IACA,KAAKA,MAAL,GAAcA,MAAM,CAACpV,GAAP,CAAWinW,iBAAX,CAAd;IACA,KAAKiQ,SAAL,GAAiB,KAAjB;IACA,KAAKC,gBAAL,GAAwB,CAAC,CAAzB;EACH;EACD;;;EACA19O,WAAW,GAAG;IACV,KAAKud,OAAL;EACH;EACD;;;EACAA,OAAO,GAAG;IACN,KAAKxjC,WAAL,CAAiB/iB,QAAjB;;IACA,IAAI,KAAKiqR,oBAAT,EAA+B;MAC3B,KAAKA,oBAAL,CAA0B3pR,WAA1B;MACA,KAAK2pR,oBAAL,GAA4Bl3W,SAA5B;IACH;;IACD,KAAKszW,QAAL,GAAgB,IAAhB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIjb,aAAa,CAACnB,QAAD,EAAWmgB,gBAAgB,GAAG,EAA9B,EAAkC;IAC3C,MAAM;MAAEpgB,UAAF;MAAcl4Q,WAAd;MAA2Bt6E,QAA3B;MAAqC6yW,mBAArC;MAA0DC;IAA1D,IAA+EF,gBAArF;IACA,MAAMhpT,CAAC,GAAG4oS,UAAU,IAAI,KAAKmd,WAAL,CAAiB5vW,IAAzC;IACA,MAAMkK,CAAC,GAAG6oW,gBAAgB,GAAG,KAAKtD,cAAL,CAAoBxvW,QAAvB,GAAkCA,QAA5D;IACA,IAAIgrE,CAAC,GAAG,IAAR;;IACA,QAAQ6nS,mBAAR;MACI,KAAK,OAAL;QACI7nS,CAAC,GAAG,EAAE,GAAG,KAAKwkS,cAAL,CAAoBl1R,WAAzB;UAAsC,GAAGA;QAAzC,CAAJ;QACA;;MACJ,KAAK,UAAL;QACItP,CAAC,GAAG,KAAKwkS,cAAL,CAAoBl1R,WAAxB;QACA;;MACJ;QACItP,CAAC,GAAGsP,WAAW,IAAI,IAAnB;IARR;;IAUA,IAAItP,CAAC,KAAK,IAAV,EAAgB;MACZA,CAAC,GAAG,KAAK+nS,gBAAL,CAAsB/nS,CAAtB,CAAJ;IACH;;IACD,OAAO4oR,aAAa,CAAChqS,CAAD,EAAI,KAAK4lT,cAAT,EAAyB/c,QAAzB,EAAmCznR,CAAnC,EAAsC/gE,CAAC,IAAI,IAA3C,CAApB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI3C,aAAa,CAAChK,GAAD,EAAMyyW,MAAM,GAAG;IACxBiB,kBAAkB,EAAE;EADI,CAAf,EAEV;IACC,IAAI,OAAOt1W,SAAP,KAAqB,WAArB,IACAA,SAAS,IAAI,KAAKszW,eAAlB,IAAqC,CAACvgP,iEAAA,EAD1C,EACoE;MAChE,KAAK3lB,OAAL,CAAaC,IAAb,CAAmB,mFAAnB;IACH;;IACD,MAAM8qP,OAAO,GAAGxB,SAAS,CAAC/0V,GAAD,CAAT,GAAiBA,GAAjB,GAAuB,KAAKD,QAAL,CAAcC,GAAd,CAAvC;IACA,MAAM20W,UAAU,GAAG,KAAKvD,mBAAL,CAAyBz9Q,KAAzB,CAA+B4iQ,OAA/B,EAAwC,KAAK4b,UAA7C,CAAnB;IACA,OAAO,KAAKyC,kBAAL,CAAwBD,UAAxB,EAAoC,YAApC,EAAkD,IAAlD,EAAwDlC,MAAxD,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIl1T,QAAQ,CAAC43S,QAAD,EAAWsd,MAAM,GAAG;IAAEiB,kBAAkB,EAAE;EAAtB,CAApB,EAAmD;IACvDgC,gBAAgB,CAACvgB,QAAD,CAAhB;IACA,OAAO,KAAKnrV,aAAL,CAAmB,KAAKssV,aAAL,CAAmBnB,QAAnB,EAA6Bsd,MAA7B,CAAnB,EAAyDA,MAAzD,CAAP;EACH;EACD;;;EACAe,YAAY,CAACxzW,GAAD,EAAM;IACd,OAAO,KAAKg+V,aAAL,CAAmB12K,SAAnB,CAA6BtnL,GAA7B,CAAP;EACH;EACD;;;EACAD,QAAQ,CAACC,GAAD,EAAM;IACV,IAAIu2V,OAAJ;;IACA,IAAI;MACAA,OAAO,GAAG,KAAKyH,aAAL,CAAmB32U,KAAnB,CAAyBrnB,GAAzB,CAAV;IACH,CAFD,CAGA,OAAOsL,CAAP,EAAU;MACNirV,OAAO,GAAG,KAAKsa,wBAAL,CAA8BvlW,CAA9B,EAAiC,KAAK0yV,aAAtC,EAAqDh+V,GAArD,CAAV;IACH;;IACD,OAAOu2V,OAAP;EACH;;EACDof,QAAQ,CAAC31W,GAAD,EAAM41W,YAAN,EAAoB;IACxB,IAAIrsW,OAAJ;;IACA,IAAIqsW,YAAY,KAAK,IAArB,EAA2B;MACvBrsW,OAAO,GAAG,EAAE,GAAGmnW;MAAL,CAAV;IACH,CAFD,MAGK,IAAIkF,YAAY,KAAK,KAArB,EAA4B;MAC7BrsW,OAAO,GAAG,EAAE,GAAGonW;MAAL,CAAV;IACH,CAFI,MAGA;MACDpnW,OAAO,GAAGqsW,YAAV;IACH;;IACD,IAAI7gB,SAAS,CAAC/0V,GAAD,CAAb,EAAoB;MAChB,OAAO2wV,YAAY,CAAC,KAAKuhB,cAAN,EAAsBlyW,GAAtB,EAA2BuJ,OAA3B,CAAnB;IACH;;IACD,MAAMgtV,OAAO,GAAG,KAAKx2V,QAAL,CAAcC,GAAd,CAAhB;IACA,OAAO2wV,YAAY,CAAC,KAAKuhB,cAAN,EAAsB3b,OAAtB,EAA+BhtV,OAA/B,CAAnB;EACH;;EACDksW,gBAAgB,CAAC77T,MAAD,EAAS;IACrB,OAAO34C,MAAM,CAAC+D,IAAP,CAAY40C,MAAZ,EAAoBqf,MAApB,CAA2B,CAAC90D,MAAD,EAASsB,GAAT,KAAiB;MAC/C,MAAMlG,KAAK,GAAGq6C,MAAM,CAACn0C,GAAD,CAApB;;MACA,IAAIlG,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAKtB,SAAhC,EAA2C;QACvCkG,MAAM,CAACsB,GAAD,CAAN,GAAclG,KAAd;MACH;;MACD,OAAO4E,MAAP;IACH,CANM,EAMJ,EANI,CAAP;EAOH;;EACDyuW,kBAAkB,GAAG;IACjB,KAAKF,WAAL,CAAiB5yW,SAAjB,CAA2BrC,CAAC,IAAI;MAC5B,KAAKk0W,SAAL,GAAiB,IAAjB;MACA,KAAKC,gBAAL,GAAwBn0W,CAAC,CAACoxB,EAA1B;MACA,KAAK4iV,aAAL,GAAqBh0W,CAAC,CAAC60W,YAAvB;MACA,KAAKnvR,MAAL,CACK/jF,IADL,CACU,IAAIo6V,aAAJ,CAAkB/7V,CAAC,CAACoxB,EAApB,EAAwB,KAAK2kV,YAAL,CAAkB/1W,CAAC,CAACouW,YAApB,CAAxB,EAA2D,KAAK2H,YAAL,CAAkB,KAAKtB,cAAvB,CAA3D,CADV;MAEA,KAAKb,wBAAL,GAAgC,KAAKC,iBAArC;MACA,KAAKH,aAAL,EAAoBpC,WAApB,CAAgC,KAAKsD,WAAL,CAAiBzb,QAAjD;MACAn5V,CAAC,CAAC0M,OAAF,CAAU,IAAV;IACH,CATD,EASGmB,CAAC,IAAI;MACJ,KAAKkgG,OAAL,CAAaC,IAAb,CAAmB,+BAA8BngG,CAAE,EAAnD;IACH,CAXD;EAYH;;EACDspW,kBAAkB,CAACpC,MAAD,EAAS3yV,MAAT,EAAiB05U,aAAjB,EAAgCkZ,MAAhC,EAAwCoD,YAAxC,EAAsD;IACpE,IAAI,KAAKtE,QAAT,EAAmB;MACf,OAAOrnW,OAAO,CAACC,OAAR,CAAgB,KAAhB,CAAP;IACH;;IACD,IAAIA,OAAJ;IACA,IAAI2B,MAAJ;IACA,IAAIknF,OAAJ;;IACA,IAAI6iR,YAAJ,EAAkB;MACd1rW,OAAO,GAAG0rW,YAAY,CAAC1rW,OAAvB;MACA2B,MAAM,GAAG+pW,YAAY,CAAC/pW,MAAtB;MACAknF,OAAO,GAAG6iR,YAAY,CAAC7iR,OAAvB;IACH,CAJD,MAKK;MACDA,OAAO,GAAG,IAAI9oF,OAAJ,CAAY,CAAC89C,GAAD,EAAMu3Q,GAAN,KAAc;QAChCp1T,OAAO,GAAG69C,GAAV;QACAl8C,MAAM,GAAGyzT,GAAT;MACH,CAHS,CAAV;IAIH;;IACD,MAAM1wS,EAAE,GAAG,EAAE,KAAK2iV,YAAlB;IACA,IAAIc,YAAJ;;IACA,IAAI,KAAKtB,4BAAL,KAAsC,UAA1C,EAAsD;MAClD,MAAM8E,aAAa,GAAG,KAAKrE,aAAL,KAAuB,CAA7C;;MACA,IAAIqE,aAAJ,EAAmB;QACfvc,aAAa,GAAG,KAAK39V,QAAL,CAAcu3H,QAAd,EAAhB;MACH,CAJiD,CAKlD;MACA;MACA;;;MACA,IAAIomO,aAAa,IAAIA,aAAa,CAACuZ,aAAnC,EAAkD;QAC9CR,YAAY,GAAG/Y,aAAa,CAACuZ,aAA7B;MACH,CAFD,MAGK;QACD;QACA;QACA,IAAIL,MAAM,CAACxoW,UAAP,IAAqBwoW,MAAM,CAACiB,kBAAhC,EAAoD;UAChDpB,YAAY,GAAG,KAAKO,aAAL,IAAsB,CAArC;QACH,CAFD,MAGK;UACDP,YAAY,GAAG,CAAC,KAAKO,aAAL,IAAsB,CAAvB,IAA4B,CAA3C;QACH;MACJ;IACJ,CArBD,MAsBK;MACD;MACAP,YAAY,GAAG,CAAf;IACH;;IACD,KAAK0C,aAAL,CAAmB;MACfnmV,EADe;MAEfyjV,YAFe;MAGfzyV,MAHe;MAIf05U,aAJe;MAKf2Y,cAAc,EAAE,KAAKA,cALN;MAMfK,aAAa,EAAE,KAAKJ,UANL;MAOfK,MAPe;MAQfC,MARe;MASftoW,OATe;MAUf2B,MAVe;MAWfknF,OAXe;MAYfw6B,eAAe,EAAE,KAAK6kP,WAAL,CAAiBzb,QAZnB;MAafyL,kBAAkB,EAAE,KAAKgQ;IAbV,CAAnB,EA9CoE,CA6DpE;IACA;;IACA,OAAOr/Q,OAAO,CAACn/E,KAAR,CAAevI,CAAD,IAAO;MACxB,OAAOpB,OAAO,CAAC4B,MAAR,CAAeR,CAAf,CAAP;IACH,CAFM,CAAP;EAGH;;EACDqoW,aAAa,CAAC3zW,GAAD,EAAMvC,CAAN,EAAS;IAClB,MAAM3B,IAAI,GAAG,KAAKkiW,aAAL,CAAmB12K,SAAnB,CAA6BtnL,GAA7B,CAAb;IACA,MAAMe,KAAK,GAAG,EAAE,GAAGtD,CAAC,CAACg1W,MAAF,CAAS1xW,KAAd;MAAqB,GAAG,KAAKg1W,qBAAL,CAA2Bt4W,CAAC,CAACoxB,EAA7B,EAAiCpxB,CAAC,CAAC60W,YAAnC;IAAxB,CAAd;;IACA,IAAI,KAAK12W,QAAL,CAAcm5H,oBAAd,CAAmCj5H,IAAnC,KAA4C,CAAC,CAAC2B,CAAC,CAACg1W,MAAF,CAASxoW,UAA3D,EAAuE;MACnE,KAAKrO,QAAL,CAAcqvD,YAAd,CAA2BnvD,IAA3B,EAAiC,EAAjC,EAAqCiF,KAArC;IACH,CAFD,MAGK;MACD,KAAKnF,QAAL,CAAcs3H,EAAd,CAAiBp3H,IAAjB,EAAuB,EAAvB,EAA2BiF,KAA3B;IACH;EACJ;EACD;AACJ;AACA;AACA;;;EACIkzW,cAAc,CAACx2W,CAAD,EAAIu4W,wBAAwB,GAAG,KAA/B,EAAsC;IAChD,IAAI,KAAKhF,4BAAL,KAAsC,UAA1C,EAAsD;MAClD,MAAMiF,kBAAkB,GAAG,KAAKxE,aAAL,GAAqBh0W,CAAC,CAAC60W,YAAlD,CADkD,CAElD;MACA;MACA;MACA;MACA;;MACA,MAAM4D,wBAAwB,GAAIz4W,CAAC,CAACoiB,MAAF,KAAa,UAAb,IAA2B,KAAKkxV,iBAAL,KAA2B,OAAtD,IAC9B,KAAKmB,cAAL,KAAwB,KAAKZ,iBAAL,EAAwBmC,QADpD;;MAEA,IAAIyC,wBAAwB,IAAID,kBAAkB,KAAK,CAAvD,EAA0D;QACtD,KAAKr6W,QAAL,CAAc+1H,SAAd,CAAwBskP,kBAAxB;MACH,CAFD,MAGK,IAAI,KAAK/D,cAAL,KAAwB,KAAKZ,iBAAL,EAAwBmC,QAAhD,IAA4DwC,kBAAkB,KAAK,CAAvF,EAA0F;QAC3F;QACA;QACA;QACA,KAAKE,UAAL,CAAgB14W,CAAhB,EAJ2F,CAK3F;QACA;;QACA,KAAK20W,cAAL,GAAsB30W,CAAC,CAACy0W,cAAxB;QACA,KAAKkE,wBAAL;MACH,CATI,MAUA,CACD;QACA;MACH;IACJ,CA1BD,MA2BK,IAAI,KAAKpF,4BAAL,KAAsC,SAA1C,EAAqD;MACtD;MACA;MACA;MACA;MACA,IAAIgF,wBAAJ,EAA8B;QAC1B,KAAKG,UAAL,CAAgB14W,CAAhB;MACH;;MACD,KAAK24W,wBAAL;IACH;EACJ;;EACDD,UAAU,CAAC14W,CAAD,EAAI;IACV,KAAK40W,WAAL,GAAmB50W,CAAC,CAAC4kW,kBAArB;IACA,KAAK6P,cAAL,GAAsBz0W,CAAC,CAACy0W,cAAxB,CAFU,CAGV;IACA;IACA;IACA;IACA;;IACA,KAAKC,UAAL,GAAkB,KAAKf,mBAAL,CAAyBz9Q,KAAzB,CAA+B,KAAKu+Q,cAApC,EAAoDz0W,CAAC,CAAC+0W,MAAtD,CAAlB;EACH;;EACD4D,wBAAwB,GAAG;IACvB,KAAKx6W,QAAL,CAAcqvD,YAAd,CAA2B,KAAK+yS,aAAL,CAAmB12K,SAAnB,CAA6B,KAAK6qL,UAAlC,CAA3B,EAA0E,EAA1E,EAA8E,KAAK4D,qBAAL,CAA2B,KAAKnE,gBAAhC,EAAkD,KAAKH,aAAvD,CAA9E;EACH;;EACDyC,0BAA0B,CAACz2W,CAAD,EAAIqlJ,MAAJ,EAAY/rI,IAAZ,EAAkB;IACxC,MAAM29V,SAAS,GAAG,IAAIhb,gBAAJ,CAAqBj8V,CAAC,CAACoxB,EAAvB,EAA2B,KAAK2kV,YAAL,CAAkB/1W,CAAC,CAACouW,YAApB,CAA3B,EAA8D/oN,MAA9D,EAAsE/rI,IAAtE,CAAlB;IACA,KAAKg7V,YAAL,CAAkB2C,SAAlB;IACAj3W,CAAC,CAAC0M,OAAF,CAAU,KAAV;EACH;;EACD4rW,qBAAqB,CAACvE,YAAD,EAAe6E,YAAf,EAA6B;IAC9C,IAAI,KAAKrF,4BAAL,KAAsC,UAA1C,EAAsD;MAClD,OAAO;QAAEQ,YAAF;QAAgBsB,aAAa,EAAEuD;MAA/B,CAAP;IACH;;IACD,OAAO;MAAE7E;IAAF,CAAP;EACH;;AAj4BQ;;AAm4Bbh3W,MAAM,CAAC+C,IAAP;EA1gKgGgiG,8DA0gKhG;AAAA;;AACA/kG,MAAM,CAACmD,KAAP,kBA3gKgG4hG,gEA2gKhG;EAAA,OAAuG/kG,MAAvG;EAAA;IAAA,OAA+Iy2W,WAA/I;EAAA;EAAA,YAA2H;AAA3H;;AACA;EAAA,mDA5gKgG1xQ,+DA4gKhG,CAA2F/kG,MAA3F,EAA+G,CAAC;IACpGwD,IAAI,EAAEhF,qDAD8F;IAEpGmF,IAAI,EAAE,CAAC;MACC2zH,UAAU,EAAE,MADb;MAECC,UAAU,EAAEk/O;IAFb,CAAD;EAF8F,CAAD,CAA/G,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAEjzW,IAAI,EAAEuhG,+CAAO82D;IAAf,CAAD,EAAoB;MAAEr4J,IAAI,EAAEm0V;IAAR,CAApB,EAA6C;MAAEn0V,IAAI,EAAE0gW;IAAR,CAA7C,EAA+E;MAAE1gW,IAAI,EAAEo8K,sDAAW9gL;IAAnB,CAA/E,EAAsG;MAAE0E,IAAI,EAAEuhG,mDAAW0xB;IAAnB,CAAtG,EAA6H;MAAEjzH,IAAI,EAAEuhG,mDAAWuhO;IAAnB,CAA7H,EAAoJ;MAAE9iU,IAAI,EAAEC;IAAR,CAApJ,CAAP;EAAkL,CAN5N;AAAA;;AAOA,SAASy3W,gBAAT,CAA0BvgB,QAA1B,EAAoC;EAChC,KAAK,IAAIlqV,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkqV,QAAQ,CAAC50V,MAA7B,EAAqC0K,CAAC,EAAtC,EAA0C;IACtC,MAAM+sV,GAAG,GAAG7C,QAAQ,CAAClqV,CAAD,CAApB;;IACA,IAAI+sV,GAAG,IAAI,IAAX,EAAiB;MACb,MAAM,IAAIx4P,2DAAJ,CAAkB;MAAK;MAAvB,EAA+DgxQ,aAAa,IAAK,+BAA8BxY,GAAI,qBAAoB/sV,CAAE,EAAzI,CAAN;IACH;EACJ;AACJ;;AACD,SAASsoW,4BAAT,CAAsC1zV,MAAtC,EAA8C;EAC1C,OAAOA,MAAM,KAAK,YAAlB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMy2V,UAAN,CAAiB;EACb56W,WAAW,CAACmE,MAAD,EAASsD,KAAT,EAAgBozW,iBAAhB,EAAmCp5N,QAAnC,EAA6CvG,EAA7C,EAAiD;IACxD,KAAK/2I,MAAL,GAAcA,MAAd;IACA,KAAKsD,KAAL,GAAaA,KAAb;IACA,KAAKozW,iBAAL,GAAyBA,iBAAzB;IACA,KAAKp5N,QAAL,GAAgBA,QAAhB;IACA,KAAKvG,EAAL,GAAUA,EAAV;IACA,KAAK4/N,iBAAL,GAAyB,KAAzB;IACA,KAAKC,mBAAL,GAA2B,KAA3B;IACA,KAAKC,WAAL,GAAmB,KAAnB;IACA,KAAKvhB,QAAL,GAAgB,IAAhB;IACA;;IACA,KAAKwhB,SAAL,GAAiB,IAAIv8W,0CAAJ,EAAjB;IACA,KAAKw8W,0BAAL,CAAgC,GAAhC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACwB,IAAhBpB,gBAAgB,CAACA,gBAAD,EAAmB;IACnC,KAAKgB,iBAAL,GAAyB18B,kEAAgB,CAAC07B,gBAAD,CAAzC;EACH;;EACmB,IAAhBA,gBAAgB,GAAG;IACnB,OAAO,KAAKgB,iBAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EAC0B,IAAlB9C,kBAAkB,CAACA,kBAAD,EAAqB;IACvC,KAAK+C,mBAAL,GAA2B38B,kEAAgB,CAAC45B,kBAAD,CAA3C;EACH;;EACqB,IAAlBA,kBAAkB,GAAG;IACrB,OAAO,KAAK+C,mBAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACkB,IAAVxsW,UAAU,CAACA,UAAD,EAAa;IACvB,KAAKysW,WAAL,GAAmB58B,kEAAgB,CAAC7vU,UAAD,CAAnC;EACH;;EACa,IAAVA,UAAU,GAAG;IACb,OAAO,KAAKysW,WAAZ;EACH;EACD;AACJ;AACA;AACA;;;EACIE,0BAA0B,CAACC,WAAD,EAAc;IACpC,IAAI,KAAKN,iBAAL,IAA0B;IAAK;IAAnC,EAAsE;MAClE;IACH;;IACD,MAAMp5N,QAAQ,GAAG,KAAKA,QAAtB;IACA,MAAM7T,aAAa,GAAG,KAAKsN,EAAL,CAAQtN,aAA9B;;IACA,IAAIutO,WAAW,KAAK,IAApB,EAA0B;MACtB15N,QAAQ,CAACp5F,YAAT,CAAsBulF,aAAtB,EAAqC,UAArC,EAAiDutO,WAAjD;IACH,CAFD,MAGK;MACD15N,QAAQ,CAACokI,eAAT,CAAyBj4I,aAAzB,EAAwC,UAAxC;IACH;EACJ;EACD;;;EACAQ,WAAW,CAACjB,OAAD,EAAU;IACjB;IACA;IACA,KAAK8tO,SAAL,CAAev3W,IAAf,CAAoB,IAApB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACkB,IAAV03W,UAAU,CAAC3hB,QAAD,EAAW;IACrB,IAAIA,QAAQ,IAAI,IAAhB,EAAsB;MAClB,KAAKA,QAAL,GAAgBrwV,KAAK,CAACiqF,OAAN,CAAcomQ,QAAd,IAA0BA,QAA1B,GAAqC,CAACA,QAAD,CAArD;MACA,KAAKyhB,0BAAL,CAAgC,GAAhC;IACH,CAHD,MAIK;MACD,KAAKzhB,QAAL,GAAgB,IAAhB;MACA,KAAKyhB,0BAAL,CAAgC,IAAhC;IACH;EACJ;EACD;;;EACAG,OAAO,GAAG;IACN,IAAI,KAAKxgB,OAAL,KAAiB,IAArB,EAA2B;MACvB,OAAO,IAAP;IACH;;IACD,MAAMkc,MAAM,GAAG;MACXiB,kBAAkB,EAAE,KAAKA,kBADd;MAEXzpW,UAAU,EAAE,KAAKA,UAFN;MAGXlJ,KAAK,EAAE,KAAKA;IAHD,CAAf;IAKA,KAAKlB,MAAL,CAAYmK,aAAZ,CAA0B,KAAKusV,OAA/B,EAAwCkc,MAAxC;IACA,OAAO,IAAP;EACH;;EACU,IAAPlc,OAAO,GAAG;IACV,IAAI,KAAKpB,QAAL,KAAkB,IAAtB,EAA4B;MACxB,OAAO,IAAP;IACH;;IACD,OAAO,KAAKt1V,MAAL,CAAYy2V,aAAZ,CAA0B,KAAKnB,QAA/B,EAAyC;MAC5C;MACA;MACAD,UAAU,EAAE,KAAKA,UAAL,KAAoBj3V,SAApB,GAAgC,KAAKi3V,UAArC,GAAkD,KAAK/xV,KAHvB;MAI5C65E,WAAW,EAAE,KAAKA,WAJ0B;MAK5Ct6E,QAAQ,EAAE,KAAKA,QAL6B;MAM5C6yW,mBAAmB,EAAE,KAAKA,mBANkB;MAO5CC,gBAAgB,EAAE,KAAKA;IAPqB,CAAzC,CAAP;EASH;;AArHY;;AAuHjBc,UAAU,CAAC/4W,IAAX;EAAA,iBAAuG+4W,UAAvG,EA9vKgG/2Q,+DA8vKhG,CAAmI/kG,MAAnI,GA9vKgG+kG,+DA8vKhG,CAAsJu8P,cAAtJ,GA9vKgGv8P,+DA8vKhG,CAAiL,UAAjL,GA9vKgGA,+DA8vKhG,CAAyNA,oDAAzN,GA9vKgGA,+DA8vKhG,CAAkPA,qDAAlP;AAAA;;AACA+2Q,UAAU,CAAC7sO,IAAX,kBA/vKgGlqC,+DA+vKhG;EAAA,MAA2F+2Q,UAA3F;EAAA;EAAA;IAAA;MA/vKgG/2Q,wDA+vKhG;QAAA,OAA2F,aAA3F;MAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;EAAA,WA/vKgGA,kEA+vKhG;AAAA;;AACA;EAAA,mDAhwKgGA,+DAgwKhG,CAA2F+2Q,UAA3F,EAAmH,CAAC;IACxGt4W,IAAI,EAAEkyH,oDADkG;IAExG/xH,IAAI,EAAE,CAAC;MACCgK,QAAQ,EAAE,+BADX;MAECuhI,UAAU,EAAE;IAFb,CAAD;EAFkG,CAAD,CAAnH,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAE1rI,IAAI,EAAExD;IAAR,CAAD,EAAmB;MAAEwD,IAAI,EAAE89V;IAAR,CAAnB,EAA6C;MAAE99V,IAAI,EAAEC,SAAR;MAAmBC,UAAU,EAAE,CAAC;QAC1GF,IAAI,EAAEuyH,oDADoG;QAE1GpyH,IAAI,EAAE,CAAC,UAAD;MAFoG,CAAD;IAA/B,CAA7C,EAG3B;MAAEH,IAAI,EAAEuhG,oDAAYwxB;IAApB,CAH2B,EAGH;MAAE/yH,IAAI,EAAEuhG,qDAAayxB;IAArB,CAHG,CAAP;EAG+B,CATzE,EAS2F;IAAEh0C,WAAW,EAAE,CAAC;MAC3Fh/E,IAAI,EAAEmyH,gDAAKA;IADgF,CAAD,CAAf;IAE3EztH,QAAQ,EAAE,CAAC;MACX1E,IAAI,EAAEmyH,gDAAKA;IADA,CAAD,CAFiE;IAI3EolP,mBAAmB,EAAE,CAAC;MACtBv3W,IAAI,EAAEmyH,gDAAKA;IADW,CAAD,CAJsD;IAM3EpvH,KAAK,EAAE,CAAC;MACR/C,IAAI,EAAEmyH,gDAAKA;IADH,CAAD,CANoE;IAQ3E+kO,UAAU,EAAE,CAAC;MACbl3V,IAAI,EAAEmyH,gDAAKA;IADE,CAAD,CAR+D;IAU3EqlP,gBAAgB,EAAE,CAAC;MACnBx3W,IAAI,EAAEmyH,gDAAKA;IADQ,CAAD,CAVyD;IAY3EujP,kBAAkB,EAAE,CAAC;MACrB11W,IAAI,EAAEmyH,gDAAKA;IADU,CAAD,CAZuD;IAc3ElmH,UAAU,EAAE,CAAC;MACbjM,IAAI,EAAEmyH,gDAAKA;IADE,CAAD,CAd+D;IAgB3E2mP,UAAU,EAAE,CAAC;MACb94W,IAAI,EAAEmyH,gDAAKA;IADE,CAAD,CAhB+D;IAkB3E4mP,OAAO,EAAE,CAAC;MACV/4W,IAAI,EAAEihU,uDADI;MAEV9gU,IAAI,EAAE,CAAC,OAAD;IAFI,CAAD;EAlBkE,CAT3F;AAAA;AA+BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM64W,kBAAN,CAAyB;EACrBt7W,WAAW,CAACmE,MAAD,EAASsD,KAAT,EAAgBoxH,gBAAhB,EAAkC;IACzC,KAAK10H,MAAL,GAAcA,MAAd;IACA,KAAKsD,KAAL,GAAaA,KAAb;IACA,KAAKoxH,gBAAL,GAAwBA,gBAAxB;IACA,KAAKiiP,iBAAL,GAAyB,KAAzB;IACA,KAAKC,mBAAL,GAA2B,KAA3B;IACA,KAAKC,WAAL,GAAmB,KAAnB;IACA,KAAKvhB,QAAL,GAAgB,IAAhB,CAPyC,CAQzC;IACA;IACA;;IACA,KAAK30V,IAAL,GAAY,IAAZ;IACA;;IACA,KAAKm2W,SAAL,GAAiB,IAAIv8W,0CAAJ,EAAjB;IACA,KAAKyvF,YAAL,GAAoBhqF,MAAM,CAACsjF,MAAP,CAAcrjF,SAAd,CAAyBkL,CAAD,IAAO;MAC/C,IAAIA,CAAC,YAAYwuV,aAAjB,EAAgC;QAC5B,KAAKyd,sBAAL;MACH;IACJ,CAJmB,CAApB;EAKH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACwB,IAAhBzB,gBAAgB,CAACA,gBAAD,EAAmB;IACnC,KAAKgB,iBAAL,GAAyB18B,kEAAgB,CAAC07B,gBAAD,CAAzC;EACH;;EACmB,IAAhBA,gBAAgB,GAAG;IACnB,OAAO,KAAKgB,iBAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EAC0B,IAAlB9C,kBAAkB,CAACA,kBAAD,EAAqB;IACvC,KAAK+C,mBAAL,GAA2B38B,kEAAgB,CAAC45B,kBAAD,CAA3C;EACH;;EACqB,IAAlBA,kBAAkB,GAAG;IACrB,OAAO,KAAK+C,mBAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACkB,IAAVxsW,UAAU,CAACA,UAAD,EAAa;IACvB,KAAKysW,WAAL,GAAmB58B,kEAAgB,CAAC7vU,UAAD,CAAnC;EACH;;EACa,IAAVA,UAAU,GAAG;IACb,OAAO,KAAKysW,WAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACkB,IAAVI,UAAU,CAAC3hB,QAAD,EAAW;IACrB,IAAIA,QAAQ,IAAI,IAAhB,EAAsB;MAClB,KAAKA,QAAL,GAAgBrwV,KAAK,CAACiqF,OAAN,CAAcomQ,QAAd,IAA0BA,QAA1B,GAAqC,CAACA,QAAD,CAArD;IACH,CAFD,MAGK;MACD,KAAKA,QAAL,GAAgB,IAAhB;IACH;EACJ;EACD;;;EACArrN,WAAW,CAACjB,OAAD,EAAU;IACjB,KAAKouO,sBAAL;IACA,KAAKN,SAAL,CAAev3W,IAAf,CAAoB,IAApB;EACH;EACD;;;EACA80H,WAAW,GAAG;IACV,KAAKrqC,YAAL,CAAkB2B,WAAlB;EACH;EACD;;;EACAurR,OAAO,CAACG,MAAD,EAASlwB,OAAT,EAAkBE,QAAlB,EAA4BH,MAA5B,EAAoCE,OAApC,EAA6C;IAChD,IAAIiwB,MAAM,KAAK,CAAX,IAAgBlwB,OAAhB,IAA2BE,QAA3B,IAAuCH,MAAvC,IAAiDE,OAArD,EAA8D;MAC1D,OAAO,IAAP;IACH;;IACD,IAAI,OAAO,KAAKjzT,MAAZ,KAAuB,QAAvB,IAAmC,KAAKA,MAAL,IAAe,OAAlD,IAA6D,KAAKuiU,OAAL,KAAiB,IAAlF,EAAwF;MACpF,OAAO,IAAP;IACH;;IACD,MAAMkc,MAAM,GAAG;MACXiB,kBAAkB,EAAE,KAAKA,kBADd;MAEXzpW,UAAU,EAAE,KAAKA,UAFN;MAGXlJ,KAAK,EAAE,KAAKA;IAHD,CAAf;IAKA,KAAKlB,MAAL,CAAYmK,aAAZ,CAA0B,KAAKusV,OAA/B,EAAwCkc,MAAxC;IACA,OAAO,KAAP;EACH;;EACDwE,sBAAsB,GAAG;IACrB,KAAKz2W,IAAL,GAAY,KAAK+1V,OAAL,KAAiB,IAAjB,GACR,KAAKhiO,gBAAL,CAAsB3zH,kBAAtB,CAAyC,KAAKf,MAAL,CAAY2zW,YAAZ,CAAyB,KAAKjd,OAA9B,CAAzC,CADQ,GAER,IAFJ;EAGH;;EACU,IAAPA,OAAO,GAAG;IACV,IAAI,KAAKpB,QAAL,KAAkB,IAAtB,EAA4B;MACxB,OAAO,IAAP;IACH;;IACD,OAAO,KAAKt1V,MAAL,CAAYy2V,aAAZ,CAA0B,KAAKnB,QAA/B,EAAyC;MAC5C;MACA;MACAD,UAAU,EAAE,KAAKA,UAAL,KAAoBj3V,SAApB,GAAgC,KAAKi3V,UAArC,GAAkD,KAAK/xV,KAHvB;MAI5C65E,WAAW,EAAE,KAAKA,WAJ0B;MAK5Ct6E,QAAQ,EAAE,KAAKA,QAL6B;MAM5C6yW,mBAAmB,EAAE,KAAKA,mBANkB;MAO5CC,gBAAgB,EAAE,KAAKA;IAPqB,CAAzC,CAAP;EASH;;AAnHoB;;AAqHzBwB,kBAAkB,CAACz5W,IAAnB;EAAA,iBAA+Gy5W,kBAA/G,EA/5KgGz3Q,+DA+5KhG,CAAmJ/kG,MAAnJ,GA/5KgG+kG,+DA+5KhG,CAAsKu8P,cAAtK,GA/5KgGv8P,+DA+5KhG,CAAiM66E,8DAAjM;AAAA;;AACA48L,kBAAkB,CAACvtO,IAAnB,kBAh6KgGlqC,+DAg6KhG;EAAA,MAAmGy3Q,kBAAnG;EAAA;EAAA;EAAA;IAAA;MAh6KgGz3Q,wDAg6KhG;QAAA,OAAmG,0FAAnG;MAAA;IAAA;;IAAA;MAh6KgGA,yDAg6KhG,yCAh6KgGA,2DAg6KhG;IAAA;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;EAAA,WAh6KgGA,kEAg6KhG;AAAA;;AACA;EAAA,mDAj6KgGA,+DAi6KhG,CAA2Fy3Q,kBAA3F,EAA2H,CAAC;IAChHh5W,IAAI,EAAEkyH,oDAD0G;IAEhH/xH,IAAI,EAAE,CAAC;MAAEgK,QAAQ,EAAE,gCAAZ;MAA8CuhI,UAAU,EAAE;IAA1D,CAAD;EAF0G,CAAD,CAA3H,EAG4B,YAAY;IAAE,OAAO,CAAC;MAAE1rI,IAAI,EAAExD;IAAR,CAAD,EAAmB;MAAEwD,IAAI,EAAE89V;IAAR,CAAnB,EAA6C;MAAE99V,IAAI,EAAEo8K,8DAAmBxmD;IAA3B,CAA7C,CAAP;EAAqF,CAH/H,EAGiJ;IAAE5/F,MAAM,EAAE,CAAC;MAC5Ih2B,IAAI,EAAEghU,sDADsI;MAE5I7gU,IAAI,EAAE,CAAC,aAAD;IAFsI,CAAD,EAG5I;MACCH,IAAI,EAAEmyH,gDAAKA;IADZ,CAH4I,CAAV;IAKjInzC,WAAW,EAAE,CAAC;MACdh/E,IAAI,EAAEmyH,gDAAKA;IADG,CAAD,CALoH;IAOjIztH,QAAQ,EAAE,CAAC;MACX1E,IAAI,EAAEmyH,gDAAKA;IADA,CAAD,CAPuH;IASjIolP,mBAAmB,EAAE,CAAC;MACtBv3W,IAAI,EAAEmyH,gDAAKA;IADW,CAAD,CAT4G;IAWjIpvH,KAAK,EAAE,CAAC;MACR/C,IAAI,EAAEmyH,gDAAKA;IADH,CAAD,CAX0H;IAajI+kO,UAAU,EAAE,CAAC;MACbl3V,IAAI,EAAEmyH,gDAAKA;IADE,CAAD,CAbqH;IAejI3vH,IAAI,EAAE,CAAC;MACPxC,IAAI,EAAEghU,sDADC;MAEP7gU,IAAI,EAAE,CAAC,WAAD;IAFC,CAAD,CAf2H;IAkBjIq3W,gBAAgB,EAAE,CAAC;MACnBx3W,IAAI,EAAEmyH,gDAAKA;IADQ,CAAD,CAlB+G;IAoBjIujP,kBAAkB,EAAE,CAAC;MACrB11W,IAAI,EAAEmyH,gDAAKA;IADU,CAAD,CApB6G;IAsBjIlmH,UAAU,EAAE,CAAC;MACbjM,IAAI,EAAEmyH,gDAAKA;IADE,CAAD,CAtBqH;IAwBjI2mP,UAAU,EAAE,CAAC;MACb94W,IAAI,EAAEmyH,gDAAKA;IADE,CAAD,CAxBqH;IA0BjI4mP,OAAO,EAAE,CAAC;MACV/4W,IAAI,EAAEihU,uDADI;MAEV9gU,IAAI,EAAE,CAAC,OAAD,EACF,CAAC,eAAD,EAAkB,gBAAlB,EAAoC,iBAApC,EAAuD,eAAvD,EAAwE,gBAAxE,CADE;IAFI,CAAD;EA1BwH,CAHjJ;AAAA;AAmCA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMg5W,gBAAN,CAAuB;EACnBz7W,WAAW,CAACmE,MAAD,EAASojG,OAAT,EAAkBk6C,QAAlB,EAA4Bi6N,GAA5B,EAAiC7wW,IAAjC,EAAuC8wW,YAAvC,EAAqD;IAC5D,KAAKx3W,MAAL,GAAcA,MAAd;IACA,KAAKojG,OAAL,GAAeA,OAAf;IACA,KAAKk6C,QAAL,GAAgBA,QAAhB;IACA,KAAKi6N,GAAL,GAAWA,GAAX;IACA,KAAK7wW,IAAL,GAAYA,IAAZ;IACA,KAAK8wW,YAAL,GAAoBA,YAApB;IACA,KAAKthN,OAAL,GAAe,EAAf;IACA,KAAK4/M,QAAL,GAAgB,KAAhB;IACA;AACR;AACA;AACA;AACA;AACA;AACA;;IACQ,KAAK2B,uBAAL,GAA+B;MAAEC,KAAK,EAAE;IAAT,CAA/B;IACA;AACR;AACA;AACA;AAC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","sources":["./node_modules/@azure/msal-angular/__ivy_ngcc__/fesm2015/azure-msal-angular.js","./node_modules/@azure/msal-browser/dist/_virtual/_tslib.js","./node_modules/@azure/msal-browser/dist/app/ClientApplication.js","./node_modules/@azure/msal-browser/dist/app/PublicClientApplication.js","./node_modules/@azure/msal-browser/dist/broker/nativeBroker/NativeMessageHandler.js","./node_modules/@azure/msal-browser/dist/cache/AsyncMemoryStorage.js","./node_modules/@azure/msal-browser/dist/cache/BrowserCacheManager.js","./node_modules/@azure/msal-browser/dist/cache/BrowserStorage.js","./node_modules/@azure/msal-browser/dist/cache/CryptoKeyStore.js","./node_modules/@azure/msal-browser/dist/cache/DatabaseStorage.js","./node_modules/@azure/msal-browser/dist/cache/MemoryStorage.js","./node_modules/@azure/msal-browser/dist/cache/TokenCache.js","./node_modules/@azure/msal-browser/dist/config/Configuration.js","./node_modules/@azure/msal-browser/dist/crypto/BrowserCrypto.js","./node_modules/@azure/msal-browser/dist/crypto/CryptoOps.js","./node_modules/@azure/msal-browser/dist/crypto/GuidGenerator.js","./node_modules/@azure/msal-browser/dist/crypto/ModernBrowserCrypto.js","./node_modules/@azure/msal-browser/dist/crypto/MsBrowserCrypto.js","./node_modules/@azure/msal-browser/dist/crypto/MsrBrowserCrypto.js","./node_modules/@azure/msal-browser/dist/crypto/PkceGenerator.js","./node_modules/@azure/msal-browser/dist/encode/Base64Decode.js","./node_modules/@azure/msal-browser/dist/encode/Base64Encode.js","./node_modules/@azure/msal-browser/dist/error/BrowserAuthError.js","./node_modules/@azure/msal-browser/dist/error/BrowserConfigurationAuthError.js","./node_modules/@azure/msal-browser/dist/error/NativeAuthError.js","./node_modules/@azure/msal-browser/dist/event/EventHandler.js","./node_modules/@azure/msal-browser/dist/event/EventMessage.js","./node_modules/@azure/msal-browser/dist/event/EventType.js","./node_modules/@azure/msal-browser/dist/interaction_client/BaseInteractionClient.js","./node_modules/@azure/msal-browser/dist/interaction_client/HybridSpaAuthorizationCodeClient.js","./node_modules/@azure/msal-browser/dist/interaction_client/NativeInteractionClient.js","./node_modules/@azure/msal-browser/dist/interaction_client/PopupClient.js","./node_modules/@azure/msal-browser/dist/interaction_client/RedirectClient.js","./node_modules/@azure/msal-browser/dist/interaction_client/SilentAuthCodeClient.js","./node_modules/@azure/msal-browser/dist/interaction_client/SilentCacheClient.js","./node_modules/@azure/msal-browser/dist/interaction_client/SilentIframeClient.js","./node_modules/@azure/msal-browser/dist/interaction_client/SilentRefreshClient.js","./node_modules/@azure/msal-browser/dist/interaction_client/StandardInteractionClient.js","./node_modules/@azure/msal-browser/dist/interaction_handler/InteractionHandler.js","./node_modules/@azure/msal-browser/dist/interaction_handler/RedirectHandler.js","./node_modules/@azure/msal-browser/dist/interaction_handler/SilentHandler.js","./node_modules/@azure/msal-browser/dist/navigation/NavigationClient.js","./node_modules/@azure/msal-browser/dist/network/FetchClient.js","./node_modules/@azure/msal-browser/dist/network/XhrClient.js","./node_modules/@azure/msal-browser/dist/packageMetadata.js","./node_modules/@azure/msal-browser/dist/telemetry/BrowserPerformanceClient.js","./node_modules/@azure/msal-browser/dist/telemetry/BrowserPerformanceMeasurement.js","./node_modules/@azure/msal-browser/dist/utils/BrowserConstants.js","./node_modules/@azure/msal-browser/dist/utils/BrowserProtocolUtils.js","./node_modules/@azure/msal-browser/dist/utils/BrowserStringUtils.js","./node_modules/@azure/msal-browser/dist/utils/BrowserUtils.js","./node_modules/@azure/msal-browser/dist/utils/MathUtils.js","./node_modules/@azure/msal-common/dist/_virtual/_tslib.js","./node_modules/@azure/msal-common/dist/account/AuthToken.js","./node_modules/@azure/msal-common/dist/account/CcsCredential.js","./node_modules/@azure/msal-common/dist/account/ClientInfo.js","./node_modules/@azure/msal-common/dist/authority/Authority.js","./node_modules/@azure/msal-common/dist/authority/AuthorityFactory.js","./node_modules/@azure/msal-common/dist/authority/AuthorityMetadata.js","./node_modules/@azure/msal-common/dist/authority/AuthorityOptions.js","./node_modules/@azure/msal-common/dist/authority/AuthorityType.js","./node_modules/@azure/msal-common/dist/authority/CloudInstanceDiscoveryErrorResponse.js","./node_modules/@azure/msal-common/dist/authority/CloudInstanceDiscoveryResponse.js","./node_modules/@azure/msal-common/dist/authority/OpenIdConfigResponse.js","./node_modules/@azure/msal-common/dist/authority/ProtocolMode.js","./node_modules/@azure/msal-common/dist/authority/RegionDiscovery.js","./node_modules/@azure/msal-common/dist/cache/CacheManager.js","./node_modules/@azure/msal-common/dist/cache/entities/AccessTokenEntity.js","./node_modules/@azure/msal-common/dist/cache/entities/AccountEntity.js","./node_modules/@azure/msal-common/dist/cache/entities/AppMetadataEntity.js","./node_modules/@azure/msal-common/dist/cache/entities/AuthorityMetadataEntity.js","./node_modules/@azure/msal-common/dist/cache/entities/CacheRecord.js","./node_modules/@azure/msal-common/dist/cache/entities/CredentialEntity.js","./node_modules/@azure/msal-common/dist/cache/entities/IdTokenEntity.js","./node_modules/@azure/msal-common/dist/cache/entities/RefreshTokenEntity.js","./node_modules/@azure/msal-common/dist/cache/entities/ServerTelemetryEntity.js","./node_modules/@azure/msal-common/dist/cache/entities/ThrottlingEntity.js","./node_modules/@azure/msal-common/dist/cache/persistence/TokenCacheContext.js","./node_modules/@azure/msal-common/dist/client/AuthorizationCodeClient.js","./node_modules/@azure/msal-common/dist/client/BaseClient.js","./node_modules/@azure/msal-common/dist/client/RefreshTokenClient.js","./node_modules/@azure/msal-common/dist/client/SilentFlowClient.js","./node_modules/@azure/msal-common/dist/config/ClientConfiguration.js","./node_modules/@azure/msal-common/dist/crypto/ICrypto.js","./node_modules/@azure/msal-common/dist/crypto/JoseHeader.js","./node_modules/@azure/msal-common/dist/crypto/PopTokenGenerator.js","./node_modules/@azure/msal-common/dist/error/AuthError.js","./node_modules/@azure/msal-common/dist/error/ClientAuthError.js","./node_modules/@azure/msal-common/dist/error/ClientConfigurationError.js","./node_modules/@azure/msal-common/dist/error/InteractionRequiredAuthError.js","./node_modules/@azure/msal-common/dist/error/JoseHeaderError.js","./node_modules/@azure/msal-common/dist/error/ServerError.js","./node_modules/@azure/msal-common/dist/logger/Logger.js","./node_modules/@azure/msal-common/dist/network/INetworkModule.js","./node_modules/@azure/msal-common/dist/network/NetworkManager.js","./node_modules/@azure/msal-common/dist/network/ThrottlingUtils.js","./node_modules/@azure/msal-common/dist/packageMetadata.js","./node_modules/@azure/msal-common/dist/request/RequestParameterBuilder.js","./node_modules/@azure/msal-common/dist/request/RequestValidator.js","./node_modules/@azure/msal-common/dist/request/ScopeSet.js","./node_modules/@azure/msal-common/dist/response/ResponseHandler.js","./node_modules/@azure/msal-common/dist/telemetry/performance/PerformanceClient.js","./node_modules/@azure/msal-common/dist/telemetry/performance/PerformanceEvent.js","./node_modules/@azure/msal-common/dist/telemetry/performance/StubPerformanceClient.js","./node_modules/@azure/msal-common/dist/telemetry/server/ServerTelemetryManager.js","./node_modules/@azure/msal-common/dist/url/UrlString.js","./node_modules/@azure/msal-common/dist/utils/Constants.js","./node_modules/@azure/msal-common/dist/utils/ProtocolUtils.js","./node_modules/@azure/msal-common/dist/utils/StringUtils.js","./node_modules/@azure/msal-common/dist/utils/TimeUtils.js","./node_modules/rxjs/dist/esm/internal/BehaviorSubject.js","./node_modules/rxjs/dist/esm/internal/NotificationFactories.js","./node_modules/rxjs/dist/esm/internal/Observable.js","./node_modules/rxjs/dist/esm/internal/ReplaySubject.js","./node_modules/rxjs/dist/esm/internal/Subject.js","./node_modules/rxjs/dist/esm/internal/Subscriber.js","./node_modules/rxjs/dist/esm/internal/Subscription.js","./node_modules/rxjs/dist/esm/internal/config.js","./node_modules/rxjs/dist/esm/internal/observable/ConnectableObservable.js","./node_modules/rxjs/dist/esm/internal/observable/combineLatest.js","./node_modules/rxjs/dist/esm/internal/observable/concat.js","./node_modules/rxjs/dist/esm/internal/observable/defer.js","./node_modules/rxjs/dist/esm/internal/observable/empty.js","./node_modules/rxjs/dist/esm/internal/observable/from.js","./node_modules/rxjs/dist/esm/internal/observable/innerFrom.js","./node_modules/rxjs/dist/esm/internal/observable/merge.js","./node_modules/rxjs/dist/esm/internal/observable/of.js","./node_modules/rxjs/dist/esm/internal/observable/throwError.js","./node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","./node_modules/rxjs/dist/esm/internal/operators/catchError.js","./node_modules/rxjs/dist/esm/internal/operators/concatAll.js","./node_modules/rxjs/dist/esm/internal/operators/concatMap.js","./node_modules/rxjs/dist/esm/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/filter.js","./node_modules/rxjs/dist/esm/internal/operators/finalize.js","./node_modules/rxjs/dist/esm/internal/operators/first.js","./node_modules/rxjs/dist/esm/internal/operators/last.js","./node_modules/rxjs/dist/esm/internal/operators/map.js","./node_modules/rxjs/dist/esm/internal/operators/mapTo.js","./node_modules/rxjs/dist/esm/internal/operators/mergeAll.js","./node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","./node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","./node_modules/rxjs/dist/esm/internal/operators/observeOn.js","./node_modules/rxjs/dist/esm/internal/operators/refCount.js","./node_modules/rxjs/dist/esm/internal/operators/scan.js","./node_modules/rxjs/dist/esm/internal/operators/scanInternals.js","./node_modules/rxjs/dist/esm/internal/operators/share.js","./node_modules/rxjs/dist/esm/internal/operators/startWith.js","./node_modules/rxjs/dist/esm/internal/operators/subscribeOn.js","./node_modules/rxjs/dist/esm/internal/operators/switchMap.js","./node_modules/rxjs/dist/esm/internal/operators/take.js","./node_modules/rxjs/dist/esm/internal/operators/takeLast.js","./node_modules/rxjs/dist/esm/internal/operators/takeWhile.js","./node_modules/rxjs/dist/esm/internal/operators/tap.js","./node_modules/rxjs/dist/esm/internal/operators/throwIfEmpty.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleArray.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/dist/esm/internal/scheduled/schedulePromise.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduled.js","./node_modules/rxjs/dist/esm/internal/scheduler/dateTimestampProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js","./node_modules/rxjs/dist/esm/internal/symbol/iterator.js","./node_modules/rxjs/dist/esm/internal/symbol/observable.js","./node_modules/rxjs/dist/esm/internal/util/EmptyError.js","./node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js","./node_modules/rxjs/dist/esm/internal/util/args.js","./node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.js","./node_modules/rxjs/dist/esm/internal/util/arrRemove.js","./node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","./node_modules/rxjs/dist/esm/internal/util/createObject.js","./node_modules/rxjs/dist/esm/internal/util/errorContext.js","./node_modules/rxjs/dist/esm/internal/util/executeSchedule.js","./node_modules/rxjs/dist/esm/internal/util/identity.js","./node_modules/rxjs/dist/esm/internal/util/isArrayLike.js","./node_modules/rxjs/dist/esm/internal/util/isAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/util/isFunction.js","./node_modules/rxjs/dist/esm/internal/util/isInteropObservable.js","./node_modules/rxjs/dist/esm/internal/util/isIterable.js","./node_modules/rxjs/dist/esm/internal/util/isPromise.js","./node_modules/rxjs/dist/esm/internal/util/isReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/util/isScheduler.js","./node_modules/rxjs/dist/esm/internal/util/lift.js","./node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js","./node_modules/rxjs/dist/esm/internal/util/noop.js","./node_modules/rxjs/dist/esm/internal/util/pipe.js","./node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","./node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js","./node_modules/tslib/tslib.es6.js","./node_modules/@angular/animations/fesm2020/animations.mjs","./node_modules/@angular/animations/fesm2020/browser.mjs","./node_modules/@angular/common/fesm2020/common.mjs","./node_modules/@angular/common/fesm2020/http.mjs","./node_modules/@angular/common/locales/sv.mjs","./node_modules/@angular/compiler/fesm2020/compiler.mjs","./node_modules/@angular/core/fesm2020/core.mjs","./node_modules/@angular/platform-browser-dynamic/fesm2020/platform-browser-dynamic.mjs","./node_modules/@angular/platform-browser/fesm2020/animations.mjs","./node_modules/@angular/platform-browser/fesm2020/platform-browser.mjs","./node_modules/@angular/router/fesm2020/router.mjs"],"sourcesContent":["import { InjectionToken, Injectable, Inject, Optional, VERSION, Component, NgModule } from '@angular/core';\nimport { Location, DOCUMENT, CommonModule } from '@angular/common';\nimport { WrapperSKU, InteractionStatus, EventMessageUtils, InteractionType, BrowserConfigurationAuthError, UrlString, BrowserUtils, StringUtils, NavigationClient } from '@azure/msal-browser';\nimport { from, ReplaySubject, Subject, BehaviorSubject, of, EMPTY } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { map, concatMap, catchError, switchMap, take, filter } from 'rxjs/operators';\nimport { __awaiter } from 'tslib';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\nimport * as ɵngcc2 from '@angular/router';\nconst MSAL_INSTANCE = new InjectionToken(\"MSAL_INSTANCE\");\r\nconst MSAL_GUARD_CONFIG = new InjectionToken(\"MSAL_GUARD_CONFIG\");\r\nconst MSAL_INTERCEPTOR_CONFIG = new InjectionToken(\"MSAL_INTERCEPTOR_CONFIG\");\r\nconst MSAL_BROADCAST_CONFIG = new InjectionToken(\"MSAL_BROADCAST_CONFIG\");\n\n/* eslint-disable header/header */\r\nconst name = \"@azure/msal-angular\";\r\nconst version = \"2.5.7\";\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass MsalService {\r\n constructor(instance, location) {\r\n this.instance = instance;\r\n this.location = location;\r\n const hash = this.location.path(true).split(\"#\").pop();\r\n if (hash) {\r\n this.redirectHash = `#${hash}`;\r\n }\r\n this.instance.initializeWrapperLibrary(WrapperSKU.Angular, version);\r\n }\r\n initialize() {\r\n return from(this.instance.initialize());\r\n }\r\n acquireTokenPopup(request) {\r\n return from(this.instance.acquireTokenPopup(request));\r\n }\r\n acquireTokenRedirect(request) {\r\n return from(this.instance.acquireTokenRedirect(request));\r\n }\r\n acquireTokenSilent(silentRequest) {\r\n return from(this.instance.acquireTokenSilent(silentRequest));\r\n }\r\n handleRedirectObservable(hash) {\r\n return from(this.instance.handleRedirectPromise(hash || this.redirectHash));\r\n }\r\n loginPopup(request) {\r\n return from(this.instance.loginPopup(request));\r\n }\r\n loginRedirect(request) {\r\n return from(this.instance.loginRedirect(request));\r\n }\r\n logout(logoutRequest) {\r\n return from(this.instance.logout(logoutRequest));\r\n }\r\n logoutRedirect(logoutRequest) {\r\n return from(this.instance.logoutRedirect(logoutRequest));\r\n }\r\n logoutPopup(logoutRequest) {\r\n return from(this.instance.logoutPopup(logoutRequest));\r\n }\r\n ssoSilent(request) {\r\n return from(this.instance.ssoSilent(request));\r\n }\r\n /**\r\n * Gets logger for msal-angular.\r\n * If no logger set, returns logger instance created with same options as msal-browser\r\n */\r\n getLogger() {\r\n if (!this.logger) {\r\n this.logger = this.instance.getLogger().clone(name, version);\r\n }\r\n return this.logger;\r\n }\r\n // Create a logger instance for msal-angular with the same options as msal-browser\r\n setLogger(logger) {\r\n this.logger = logger.clone(name, version);\r\n this.instance.setLogger(logger);\r\n }\r\n}\nMsalService.ɵfac = function MsalService_Factory(t) { return new (t || MsalService)(ɵngcc0.ɵɵinject(MSAL_INSTANCE), ɵngcc0.ɵɵinject(ɵngcc1.Location)); };\nMsalService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MsalService, factory: MsalService.ɵfac });\r\nMsalService.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Inject, args: [MSAL_INSTANCE,] }] },\r\n { type: Location }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalService, [{\n type: Injectable\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [MSAL_INSTANCE]\n }] }, { type: ɵngcc1.Location }]; }, null); })();\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass MsalBroadcastService {\r\n constructor(msalInstance, authService, msalBroadcastConfig) {\r\n this.msalInstance = msalInstance;\r\n this.authService = authService;\r\n this.msalBroadcastConfig = msalBroadcastConfig;\r\n // Make _msalSubject a ReplaySubject if configured to replay past events\r\n if (this.msalBroadcastConfig && this.msalBroadcastConfig.eventsToReplay > 0) {\r\n this.authService.getLogger().verbose(`BroadcastService - replayPastEvents set on BroadcastConfig, replaying the last ${this.msalBroadcastConfig.eventsToReplay} events`);\r\n this._msalSubject = new ReplaySubject(this.msalBroadcastConfig.eventsToReplay);\r\n }\r\n else {\r\n // Defaults to _msalSubject being a Subject\r\n this._msalSubject = new Subject();\r\n }\r\n this.msalSubject$ = this._msalSubject.asObservable();\r\n // InProgress as BehaviorSubject so most recent inProgress state will be available upon subscription\r\n this._inProgress = new BehaviorSubject(InteractionStatus.Startup);\r\n this.inProgress$ = this._inProgress.asObservable();\r\n this.msalInstance.addEventCallback((message) => {\r\n this._msalSubject.next(message);\r\n const status = EventMessageUtils.getInteractionStatusFromEvent(message, this._inProgress.value);\r\n if (status !== null) {\r\n this.authService.getLogger().verbose(`BroadcastService - ${message.eventType} results in setting inProgress from ${this._inProgress.value} to ${status}`);\r\n this._inProgress.next(status);\r\n }\r\n });\r\n }\r\n}\nMsalBroadcastService.ɵfac = function MsalBroadcastService_Factory(t) { return new (t || MsalBroadcastService)(ɵngcc0.ɵɵinject(MSAL_INSTANCE), ɵngcc0.ɵɵinject(MsalService), ɵngcc0.ɵɵinject(MSAL_BROADCAST_CONFIG, 8)); };\nMsalBroadcastService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MsalBroadcastService, factory: MsalBroadcastService.ɵfac });\r\nMsalBroadcastService.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Inject, args: [MSAL_INSTANCE,] }] },\r\n { type: MsalService },\r\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MSAL_BROADCAST_CONFIG,] }] }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalBroadcastService, [{\n type: Injectable\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [MSAL_INSTANCE]\n }] }, { type: MsalService }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MSAL_BROADCAST_CONFIG]\n }] }]; }, null); })();\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass MsalGuard {\r\n constructor(msalGuardConfig, msalBroadcastService, authService, location, router) {\r\n this.msalGuardConfig = msalGuardConfig;\r\n this.msalBroadcastService = msalBroadcastService;\r\n this.authService = authService;\r\n this.location = location;\r\n this.router = router;\r\n // Subscribing so events in MsalGuard will set inProgress$ observable\r\n this.msalBroadcastService.inProgress$.subscribe();\r\n }\r\n /**\r\n * Parses url string to UrlTree\r\n * @param url\r\n */\r\n parseUrl(url) {\r\n return this.router.parseUrl(url);\r\n }\r\n /**\r\n * Builds the absolute url for the destination page\r\n * @param path Relative path of requested page\r\n * @returns Full destination url\r\n */\r\n getDestinationUrl(path) {\r\n this.authService.getLogger().verbose(\"Guard - getting destination url\");\r\n // Absolute base url for the application (default to origin if base element not present)\r\n const baseElements = document.getElementsByTagName(\"base\");\r\n const baseUrl = this.location.normalize(baseElements.length ? baseElements[0].href : window.location.origin);\r\n // Path of page (including hash, if using hash routing)\r\n const pathUrl = this.location.prepareExternalUrl(path);\r\n // Hash location strategy\r\n if (pathUrl.startsWith(\"#\")) {\r\n this.authService.getLogger().verbose(\"Guard - destination by hash routing\");\r\n return `${baseUrl}/${pathUrl}`;\r\n }\r\n /*\r\n * If using path location strategy, pathUrl will include the relative portion of the base path (e.g. /base/page).\r\n * Since baseUrl also includes /base, can just concatentate baseUrl + path\r\n */\r\n return `${baseUrl}${path}`;\r\n }\r\n /**\r\n * Interactively prompt the user to login\r\n * @param url Path of the requested page\r\n */\r\n loginInteractively(state) {\r\n const authRequest = typeof this.msalGuardConfig.authRequest === \"function\"\r\n ? this.msalGuardConfig.authRequest(this.authService, state)\r\n : Object.assign({}, this.msalGuardConfig.authRequest);\r\n if (this.msalGuardConfig.interactionType === InteractionType.Popup) {\r\n this.authService.getLogger().verbose(\"Guard - logging in by popup\");\r\n return this.authService.loginPopup(authRequest)\r\n .pipe(map((response) => {\r\n this.authService.getLogger().verbose(\"Guard - login by popup successful, can activate, setting active account\");\r\n this.authService.instance.setActiveAccount(response.account);\r\n return true;\r\n }));\r\n }\r\n this.authService.getLogger().verbose(\"Guard - logging in by redirect\");\r\n const redirectStartPage = this.getDestinationUrl(state.url);\r\n return this.authService.loginRedirect(Object.assign({ redirectStartPage }, authRequest))\r\n .pipe(map(() => false));\r\n }\r\n /**\r\n * Helper which checks for the correct interaction type, prevents page with Guard to be set as reidrect, and calls handleRedirectObservable\r\n * @param state\r\n */\r\n activateHelper(state) {\r\n if (this.msalGuardConfig.interactionType !== InteractionType.Popup && this.msalGuardConfig.interactionType !== InteractionType.Redirect) {\r\n throw new BrowserConfigurationAuthError(\"invalid_interaction_type\", \"Invalid interaction type provided to MSAL Guard. InteractionType.Popup or InteractionType.Redirect must be provided in the MsalGuardConfiguration\");\r\n }\r\n this.authService.getLogger().verbose(\"MSAL Guard activated\");\r\n /*\r\n * If a page with MSAL Guard is set as the redirect for acquireTokenSilent,\r\n * short-circuit to prevent redirecting or popups.\r\n */\r\n if (typeof window !== \"undefined\") {\r\n if (UrlString.hashContainsKnownProperties(window.location.hash) && BrowserUtils.isInIframe() && !this.authService.instance.getConfiguration().system.allowRedirectInIframe) {\r\n this.authService.getLogger().warning(\"Guard - redirectUri set to page with MSAL Guard. It is recommended to not set redirectUri to a page that requires authentication.\");\r\n return of(false);\r\n }\r\n }\r\n else {\r\n this.authService.getLogger().info(\"Guard - window is undefined, MSAL does not support server-side token acquisition\");\r\n return of(true);\r\n }\r\n /**\r\n * If a loginFailedRoute is set in the config, set this as the loginFailedRoute\r\n */\r\n if (this.msalGuardConfig.loginFailedRoute) {\r\n this.loginFailedRoute = this.parseUrl(this.msalGuardConfig.loginFailedRoute);\r\n }\r\n // Capture current path before it gets changed by handleRedirectObservable\r\n const currentPath = this.location.path(true);\r\n return this.authService.handleRedirectObservable()\r\n .pipe(concatMap(() => {\r\n if (!this.authService.instance.getAllAccounts().length) {\r\n if (state) {\r\n this.authService.getLogger().verbose(\"Guard - no accounts retrieved, log in required to activate\");\r\n return this.loginInteractively(state);\r\n }\r\n this.authService.getLogger().verbose(\"Guard - no accounts retrieved, no state, cannot load\");\r\n return of(false);\r\n }\r\n this.authService.getLogger().verbose(\"Guard - at least 1 account exists, can activate or load\");\r\n // Prevent navigating the app to /#code= or /code=\r\n if (state) {\r\n /*\r\n * Path routing:\r\n * state.url: /#code=...\r\n * state.root.fragment: code=...\r\n */\r\n /*\r\n * Hash routing:\r\n * state.url: /code\r\n * state.root.fragment: null\r\n */\r\n const urlContainsCode = this.includesCode(state.url);\r\n const fragmentContainsCode = !!state.root && !!state.root.fragment && this.includesCode(`#${state.root.fragment}`);\r\n const hashRouting = this.location.prepareExternalUrl(state.url).indexOf(\"#\") === 0;\r\n // Ensure code parameter is in fragment (and not in query parameter), or that hash hash routing is used\r\n if (urlContainsCode && (fragmentContainsCode || hashRouting)) {\r\n this.authService.getLogger().info(\"Guard - Hash contains known code response, stopping navigation.\");\r\n // Path routing (navigate to current path without hash)\r\n if (currentPath.indexOf(\"#\") > -1) {\r\n return of(this.parseUrl(this.location.path()));\r\n }\r\n // Hash routing (navigate to root path)\r\n return of(this.parseUrl(\"\"));\r\n }\r\n }\r\n return of(true);\r\n }), catchError((error) => {\r\n this.authService.getLogger().error(\"Guard - error while logging in, unable to activate\");\r\n this.authService.getLogger().errorPii(`Guard - error: ${error.message}`);\r\n /**\r\n * If a loginFailedRoute is set, checks to see if Angular 10+ is used and state is passed in before returning route\r\n * Apps using Angular 9 will receive of(false) in canLoad interface, as it does not support UrlTree return types\r\n */\r\n if (this.loginFailedRoute && parseInt(VERSION.major, 10) > 9 && state) {\r\n this.authService.getLogger().verbose(\"Guard - loginFailedRoute set, redirecting\");\r\n return of(this.loginFailedRoute);\r\n }\r\n return of(false);\r\n }));\r\n }\r\n includesCode(path) {\r\n return (path.lastIndexOf(\"/code\") > -1 &&\r\n path.lastIndexOf(\"/code\") === path.length - \"/code\".length) || // path.endsWith(\"/code\")\r\n path.indexOf(\"#code=\") > -1 ||\r\n path.indexOf(\"&code=\") > -1;\r\n }\r\n canActivate(route, state) {\r\n this.authService.getLogger().verbose(\"Guard - canActivate\");\r\n return this.activateHelper(state);\r\n }\r\n canActivateChild(route, state) {\r\n this.authService.getLogger().verbose(\"Guard - canActivateChild\");\r\n return this.activateHelper(state);\r\n }\r\n canLoad() {\r\n this.authService.getLogger().verbose(\"Guard - canLoad\");\r\n // @ts-ignore\r\n return this.activateHelper();\r\n }\r\n}\nMsalGuard.ɵfac = function MsalGuard_Factory(t) { return new (t || MsalGuard)(ɵngcc0.ɵɵinject(MSAL_GUARD_CONFIG), ɵngcc0.ɵɵinject(MsalBroadcastService), ɵngcc0.ɵɵinject(MsalService), ɵngcc0.ɵɵinject(ɵngcc1.Location), ɵngcc0.ɵɵinject(ɵngcc2.Router)); };\nMsalGuard.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MsalGuard, factory: MsalGuard.ɵfac });\r\nMsalGuard.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Inject, args: [MSAL_GUARD_CONFIG,] }] },\r\n { type: MsalBroadcastService },\r\n { type: MsalService },\r\n { type: Location },\r\n { type: Router }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalGuard, [{\n type: Injectable\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [MSAL_GUARD_CONFIG]\n }] }, { type: MsalBroadcastService }, { type: MsalService }, { type: ɵngcc1.Location }, { type: ɵngcc2.Router }]; }, null); })();\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass MsalInterceptor {\r\n constructor(msalInterceptorConfig, authService, location, msalBroadcastService, \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n document) {\r\n this.msalInterceptorConfig = msalInterceptorConfig;\r\n this.authService = authService;\r\n this.location = location;\r\n this.msalBroadcastService = msalBroadcastService;\r\n this._document = document;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n intercept(req, next) {\r\n if (this.msalInterceptorConfig.interactionType !== InteractionType.Popup && this.msalInterceptorConfig.interactionType !== InteractionType.Redirect) {\r\n throw new BrowserConfigurationAuthError(\"invalid_interaction_type\", \"Invalid interaction type provided to MSAL Interceptor. InteractionType.Popup, InteractionType.Redirect must be provided in the msalInterceptorConfiguration\");\r\n }\r\n this.authService.getLogger().verbose(\"MSAL Interceptor activated\");\r\n const scopes = this.getScopesForEndpoint(req.url, req.method);\r\n // If no scopes for endpoint, does not acquire token\r\n if (!scopes || scopes.length === 0) {\r\n this.authService.getLogger().verbose(\"Interceptor - no scopes for endpoint\");\r\n return next.handle(req);\r\n }\r\n // Sets account as active account or first account\r\n let account;\r\n if (!!this.authService.instance.getActiveAccount()) {\r\n this.authService.getLogger().verbose(\"Interceptor - active account selected\");\r\n account = this.authService.instance.getActiveAccount();\r\n }\r\n else {\r\n this.authService.getLogger().verbose(\"Interceptor - no active account, fallback to first account\");\r\n account = this.authService.instance.getAllAccounts()[0];\r\n }\r\n const authRequest = typeof this.msalInterceptorConfig.authRequest === \"function\"\r\n ? this.msalInterceptorConfig.authRequest(this.authService, req, { account: account })\r\n : Object.assign(Object.assign({}, this.msalInterceptorConfig.authRequest), { account });\r\n this.authService.getLogger().info(`Interceptor - ${scopes.length} scopes found for endpoint`);\r\n this.authService.getLogger().infoPii(`Interceptor - [${scopes}] scopes found for ${req.url}`);\r\n return this.acquireToken(authRequest, scopes, account)\r\n .pipe(switchMap((result) => {\r\n this.authService.getLogger().verbose(\"Interceptor - setting authorization headers\");\r\n const headers = req.headers\r\n .set(\"Authorization\", `Bearer ${result.accessToken}`);\r\n const requestClone = req.clone({ headers });\r\n return next.handle(requestClone);\r\n }));\r\n }\r\n /**\r\n * Try to acquire token silently. Invoke interaction if acquireTokenSilent rejected with error or resolved with null access token\r\n * @param authRequest Request\r\n * @param scopes Array of scopes for the request\r\n * @param account Account\r\n * @returns Authentication result\r\n */\r\n acquireToken(authRequest, scopes, account) {\r\n // Note: For MSA accounts, include openid scope when calling acquireTokenSilent to return idToken\r\n return this.authService.acquireTokenSilent(Object.assign(Object.assign({}, authRequest), { scopes, account }))\r\n .pipe(catchError(() => {\r\n this.authService.getLogger().error(\"Interceptor - acquireTokenSilent rejected with error. Invoking interaction to resolve.\");\r\n return this.msalBroadcastService.inProgress$\r\n .pipe(take(1), switchMap((status) => {\r\n if (status === InteractionStatus.None) {\r\n return this.acquireTokenInteractively(authRequest, scopes);\r\n }\r\n return this.msalBroadcastService.inProgress$\r\n .pipe(filter((status) => status === InteractionStatus.None), take(1), switchMap(() => this.acquireToken(authRequest, scopes, account)));\r\n }));\r\n }), switchMap((result) => {\r\n if (!result.accessToken) {\r\n this.authService.getLogger().error(\"Interceptor - acquireTokenSilent resolved with null access token. Known issue with B2C tenants, invoking interaction to resolve.\");\r\n return this.msalBroadcastService.inProgress$\r\n .pipe(filter((status) => status === InteractionStatus.None), take(1), switchMap(() => this.acquireTokenInteractively(authRequest, scopes)));\r\n }\r\n return of(result);\r\n }));\r\n }\r\n /**\r\n * Invoke interaction for the given set of scopes\r\n * @param authRequest Request\r\n * @param scopes Array of scopes for the request\r\n * @returns Result from the interactive request\r\n */\r\n acquireTokenInteractively(authRequest, scopes) {\r\n if (this.msalInterceptorConfig.interactionType === InteractionType.Popup) {\r\n this.authService.getLogger().verbose(\"Interceptor - error acquiring token silently, acquiring by popup\");\r\n return this.authService.acquireTokenPopup(Object.assign(Object.assign({}, authRequest), { scopes }));\r\n }\r\n this.authService.getLogger().verbose(\"Interceptor - error acquiring token silently, acquiring by redirect\");\r\n const redirectStartPage = window.location.href;\r\n this.authService.acquireTokenRedirect(Object.assign(Object.assign({}, authRequest), { scopes, redirectStartPage }));\r\n return EMPTY;\r\n }\r\n /**\r\n * Looks up the scopes for the given endpoint from the protectedResourceMap\r\n * @param endpoint Url of the request\r\n * @param httpMethod Http method of the request\r\n * @returns Array of scopes, or null if not found\r\n *\r\n */\r\n getScopesForEndpoint(endpoint, httpMethod) {\r\n this.authService.getLogger().verbose(\"Interceptor - getting scopes for endpoint\");\r\n // Ensures endpoints and protected resources compared are normalized\r\n const normalizedEndpoint = this.location.normalize(endpoint);\r\n const protectedResourcesArray = Array.from(this.msalInterceptorConfig.protectedResourceMap.keys());\r\n const matchingProtectedResources = this.matchResourcesToEndpoint(protectedResourcesArray, normalizedEndpoint);\r\n // Check absolute urls of resources first before checking relative to prevent incorrect matching where multiple resources have similar relative urls\r\n if (matchingProtectedResources.absoluteResources.length > 0) {\r\n return this.matchScopesToEndpoint(this.msalInterceptorConfig.protectedResourceMap, matchingProtectedResources.absoluteResources, httpMethod);\r\n }\r\n else if (matchingProtectedResources.relativeResources.length > 0) {\r\n return this.matchScopesToEndpoint(this.msalInterceptorConfig.protectedResourceMap, matchingProtectedResources.relativeResources, httpMethod);\r\n }\r\n return null;\r\n }\r\n /**\r\n * Finds resource endpoints that match request endpoint\r\n * @param protectedResourcesEndpoints\r\n * @param endpoint\r\n * @returns\r\n */\r\n matchResourcesToEndpoint(protectedResourcesEndpoints, endpoint) {\r\n const matchingResources = { absoluteResources: [], relativeResources: [] };\r\n protectedResourcesEndpoints.forEach(key => {\r\n // Normalizes and adds resource to matchingResources.absoluteResources if key matches endpoint. StringUtils.matchPattern accounts for wildcards\r\n const normalizedKey = this.location.normalize(key);\r\n if (StringUtils.matchPattern(normalizedKey, endpoint)) {\r\n matchingResources.absoluteResources.push(key);\r\n }\r\n // Get url components for relative urls\r\n const absoluteKey = this.getAbsoluteUrl(key);\r\n const keyComponents = new UrlString(absoluteKey).getUrlComponents();\r\n const absoluteEndpoint = this.getAbsoluteUrl(endpoint);\r\n const endpointComponents = new UrlString(absoluteEndpoint).getUrlComponents();\r\n // Normalized key should include query strings if applicable\r\n const relativeNormalizedKey = keyComponents.QueryString ? `${keyComponents.AbsolutePath}?${keyComponents.QueryString}` : this.location.normalize(keyComponents.AbsolutePath);\r\n // Add resource to matchingResources.relativeResources if same origin, relativeKey matches endpoint, and is not empty\r\n if (keyComponents.HostNameAndPort === endpointComponents.HostNameAndPort && StringUtils.matchPattern(relativeNormalizedKey, absoluteEndpoint) && relativeNormalizedKey !== \"\" && relativeNormalizedKey !== \"/*\") {\r\n matchingResources.relativeResources.push(key);\r\n }\r\n });\r\n return matchingResources;\r\n }\r\n /**\r\n * Transforms relative urls to absolute urls\r\n * @param url\r\n * @returns\r\n */\r\n getAbsoluteUrl(url) {\r\n const link = this._document.createElement(\"a\");\r\n link.href = url;\r\n return link.href;\r\n }\r\n /**\r\n * Finds scopes from first matching endpoint with HTTP method that matches request\r\n * @param protectedResourceMap Protected resource map\r\n * @param endpointArray Array of resources that match request endpoint\r\n * @param httpMethod Http method of the request\r\n * @returns\r\n */\r\n matchScopesToEndpoint(protectedResourceMap, endpointArray, httpMethod) {\r\n const allMatchedScopes = [];\r\n // Check each matched endpoint for matching HttpMethod and scopes\r\n endpointArray.forEach(matchedEndpoint => {\r\n const scopesForEndpoint = [];\r\n const methodAndScopesArray = protectedResourceMap.get(matchedEndpoint);\r\n // Return if resource is unprotected\r\n if (methodAndScopesArray === null) {\r\n allMatchedScopes.push(null);\r\n return;\r\n }\r\n methodAndScopesArray.forEach(entry => {\r\n // Entry is either array of scopes or ProtectedResourceScopes object\r\n if (typeof entry === \"string\") {\r\n scopesForEndpoint.push(entry);\r\n }\r\n else {\r\n // Ensure methods being compared are normalized\r\n const normalizedRequestMethod = httpMethod.toLowerCase();\r\n const normalizedResourceMethod = entry.httpMethod.toLowerCase();\r\n // Method in protectedResourceMap matches request http method\r\n if (normalizedResourceMethod === normalizedRequestMethod) {\r\n // Validate if scopes comes null to unprotect the resource in a certain http method\r\n if (entry.scopes === null) {\r\n allMatchedScopes.push(null);\r\n }\r\n else {\r\n entry.scopes.forEach((scope) => {\r\n scopesForEndpoint.push(scope);\r\n });\r\n }\r\n }\r\n }\r\n });\r\n // Only add to all scopes if scopes for endpoint and method is found\r\n if (scopesForEndpoint.length > 0) {\r\n allMatchedScopes.push(scopesForEndpoint);\r\n }\r\n });\r\n if (allMatchedScopes.length > 0) {\r\n if (allMatchedScopes.length > 1) {\r\n this.authService.getLogger().warning(\"Interceptor - More than 1 matching scopes for endpoint found.\");\r\n }\r\n // Returns scopes for first matching endpoint\r\n return allMatchedScopes[0];\r\n }\r\n return null;\r\n }\r\n}\nMsalInterceptor.ɵfac = function MsalInterceptor_Factory(t) { return new (t || MsalInterceptor)(ɵngcc0.ɵɵinject(MSAL_INTERCEPTOR_CONFIG), ɵngcc0.ɵɵinject(MsalService), ɵngcc0.ɵɵinject(ɵngcc1.Location), ɵngcc0.ɵɵinject(MsalBroadcastService), ɵngcc0.ɵɵinject(DOCUMENT)); };\nMsalInterceptor.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MsalInterceptor, factory: MsalInterceptor.ɵfac });\r\nMsalInterceptor.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Inject, args: [MSAL_INTERCEPTOR_CONFIG,] }] },\r\n { type: MsalService },\r\n { type: Location },\r\n { type: MsalBroadcastService },\r\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalInterceptor, [{\n type: Injectable\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [MSAL_INTERCEPTOR_CONFIG]\n }] }, { type: MsalService }, { type: ɵngcc1.Location }, { type: MsalBroadcastService }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, null); })();\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass MsalRedirectComponent {\r\n constructor(authService) {\r\n this.authService = authService;\r\n }\r\n ngOnInit() {\r\n this.authService.getLogger().verbose(\"MsalRedirectComponent activated\");\r\n this.authService.initialize().pipe(concatMap(() => {\r\n return this.authService.handleRedirectObservable();\r\n })).subscribe();\r\n }\r\n}\nMsalRedirectComponent.ɵfac = function MsalRedirectComponent_Factory(t) { return new (t || MsalRedirectComponent)(ɵngcc0.ɵɵdirectiveInject(MsalService)); };\nMsalRedirectComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MsalRedirectComponent, selectors: [[\"app-redirect\"]], decls: 0, vars: 0, template: function MsalRedirectComponent_Template(rf, ctx) { }, encapsulation: 2 });\r\nMsalRedirectComponent.ctorParameters = () => [\r\n { type: MsalService }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalRedirectComponent, [{\n type: Component,\n args: [{\n selector: \"app-redirect\",\n template: \"\"\n }]\n }], function () { return [{ type: MsalService }]; }, null); })();\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nclass MsalModule {\r\n static forRoot(msalInstance, guardConfig, interceptorConfig) {\r\n return {\r\n ngModule: MsalModule,\r\n providers: [\r\n {\r\n provide: MSAL_INSTANCE,\r\n useValue: msalInstance\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useValue: guardConfig\r\n },\r\n {\r\n provide: MSAL_INTERCEPTOR_CONFIG,\r\n useValue: interceptorConfig\r\n },\r\n MsalService\r\n ]\r\n };\r\n }\r\n}\nMsalModule.ɵfac = function MsalModule_Factory(t) { return new (t || MsalModule)(); };\nMsalModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: MsalModule });\nMsalModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [\n MsalGuard,\n MsalBroadcastService\n ], imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalModule, [{\n type: NgModule,\n args: [{\n declarations: [MsalRedirectComponent],\n imports: [\n CommonModule\n ],\n providers: [\n MsalGuard,\n MsalBroadcastService\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(MsalModule, { declarations: function () { return [MsalRedirectComponent]; }, imports: function () { return [CommonModule]; } }); })();\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Custom navigation used for Angular client-side navigation.\r\n * See performance doc for details:\r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angular/docs/v2-docs/performance.md\r\n */\r\nclass MsalCustomNavigationClient extends NavigationClient {\r\n constructor(authService, router, location) {\r\n super();\r\n this.authService = authService;\r\n this.router = router;\r\n this.location = location;\r\n }\r\n navigateInternal(url, options) {\r\n const _super = Object.create(null, {\r\n navigateInternal: { get: () => super.navigateInternal }\r\n });\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.authService.getLogger().trace(\"MsalCustomNavigationClient called\");\r\n this.authService.getLogger().verbose(\"MsalCustomNavigationClient - navigating\");\r\n this.authService.getLogger().verbosePii(`MsalCustomNavigationClient - navigating to url: ${url}`);\r\n // Prevent hash clearing from causing an issue with Client-side navigation after redirect is handled\r\n if (options.noHistory) {\r\n return _super.navigateInternal.call(this, url, options);\r\n }\r\n else {\r\n // Normalizing newUrl if no query string\r\n const urlComponents = new UrlString(url).getUrlComponents();\r\n const newUrl = urlComponents.QueryString ? `${urlComponents.AbsolutePath}?${urlComponents.QueryString}` : this.location.normalize(urlComponents.AbsolutePath);\r\n this.router.navigateByUrl(newUrl, { replaceUrl: options.noHistory });\r\n }\r\n return Promise.resolve(options.noHistory);\r\n });\r\n }\r\n}\nMsalCustomNavigationClient.ɵfac = function MsalCustomNavigationClient_Factory(t) { return new (t || MsalCustomNavigationClient)(ɵngcc0.ɵɵinject(MsalService), ɵngcc0.ɵɵinject(ɵngcc2.Router), ɵngcc0.ɵɵinject(ɵngcc1.Location)); };\nMsalCustomNavigationClient.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: MsalCustomNavigationClient, factory: MsalCustomNavigationClient.ɵfac });\r\nMsalCustomNavigationClient.ctorParameters = () => [\r\n { type: MsalService },\r\n { type: Router },\r\n { type: Location }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MsalCustomNavigationClient, [{\n type: Injectable\n }], function () { return [{ type: MsalService }, { type: ɵngcc2.Router }, { type: ɵngcc1.Location }]; }, null); })();\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { MSAL_BROADCAST_CONFIG, MSAL_GUARD_CONFIG, MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG, MsalBroadcastService, MsalCustomNavigationClient, MsalGuard, MsalInterceptor, MsalModule, MsalRedirectComponent, MsalService, version };\n\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\n\nexport { __assign, __awaiter, __extends, __generator, __read, __rest, __spread };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { CryptoOps } from '../crypto/CryptoOps.js';\nimport { PerformanceEvents, Constants, InteractionRequiredAuthError, AuthError, ClientAuthError, PromptValue, Logger, StubPerformanceClient, DEFAULT_CRYPTO_IMPLEMENTATION } from '@azure/msal-common';\nimport { BrowserCacheManager, DEFAULT_BROWSER_CACHE_MANAGER } from '../cache/BrowserCacheManager.js';\nimport { buildConfiguration } from '../config/Configuration.js';\nimport { InteractionType, ApiId, TemporaryCacheKeys, CacheLookupPolicy, BrowserCacheLocation } from '../utils/BrowserConstants.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { name, version } from '../packageMetadata.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\nimport { EventHandler } from '../event/EventHandler.js';\nimport { PopupClient } from '../interaction_client/PopupClient.js';\nimport { RedirectClient } from '../interaction_client/RedirectClient.js';\nimport { SilentIframeClient } from '../interaction_client/SilentIframeClient.js';\nimport { SilentRefreshClient } from '../interaction_client/SilentRefreshClient.js';\nimport { TokenCache } from '../cache/TokenCache.js';\nimport { NativeInteractionClient } from '../interaction_client/NativeInteractionClient.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\nimport { NativeAuthError } from '../error/NativeAuthError.js';\nimport { SilentCacheClient } from '../interaction_client/SilentCacheClient.js';\nimport { SilentAuthCodeClient } from '../interaction_client/SilentAuthCodeClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserPerformanceClient } from '../telemetry/BrowserPerformanceClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ClientApplication = /** @class */ (function () {\r\n /**\r\n * @constructor\r\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n * - authority: the authority URL for your application.\r\n * - redirect_uri: the uri of your application registered in the portal.\r\n *\r\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\r\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n *\r\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n * Full B2C functionality will be available in this library in future versions.\r\n *\r\n * @param configuration Object for the MSAL PublicClientApplication instance\r\n */\r\n function ClientApplication(configuration) {\r\n /*\r\n * If loaded in an environment where window is not available,\r\n * set internal flag to false so that further requests fail.\r\n * This is to support server-side rendering environments.\r\n */\r\n this.isBrowserEnvironment = typeof window !== \"undefined\";\r\n // Set the configuration.\r\n this.config = buildConfiguration(configuration, this.isBrowserEnvironment);\r\n this.initialized = false;\r\n // Initialize logger\r\n this.logger = new Logger(this.config.system.loggerOptions, name, version);\r\n // Initialize the network module class.\r\n this.networkClient = this.config.system.networkClient;\r\n // Initialize the navigation client class.\r\n this.navigationClient = this.config.system.navigationClient;\r\n // Initialize redirectResponse Map\r\n this.redirectResponse = new Map();\r\n // Initial hybrid spa map\r\n this.hybridAuthCodeResponses = new Map();\r\n // Initialize performance client\r\n this.performanceClient = this.isBrowserEnvironment ?\r\n new BrowserPerformanceClient(this.config.auth.clientId, this.config.auth.authority, this.logger, name, version, this.config.telemetry.application, this.config.system.cryptoOptions) :\r\n new StubPerformanceClient(this.config.auth.clientId, this.config.auth.authority, this.logger, name, version, this.config.telemetry.application);\r\n // Initialize the crypto class.\r\n this.browserCrypto = this.isBrowserEnvironment ? new CryptoOps(this.logger, this.performanceClient, this.config.system.cryptoOptions) : DEFAULT_CRYPTO_IMPLEMENTATION;\r\n this.eventHandler = new EventHandler(this.logger, this.browserCrypto);\r\n // Initialize the browser storage class.\r\n this.browserStorage = this.isBrowserEnvironment ?\r\n new BrowserCacheManager(this.config.auth.clientId, this.config.cache, this.browserCrypto, this.logger) :\r\n DEFAULT_BROWSER_CACHE_MANAGER(this.config.auth.clientId, this.logger);\r\n // initialize in memory storage for native flows\r\n var nativeCacheOptions = {\r\n cacheLocation: BrowserCacheLocation.MemoryStorage,\r\n temporaryCacheLocation: BrowserCacheLocation.MemoryStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false,\r\n cacheMigrationEnabled: false\r\n };\r\n this.nativeInternalStorage = new BrowserCacheManager(this.config.auth.clientId, nativeCacheOptions, this.browserCrypto, this.logger);\r\n // Initialize the token cache\r\n this.tokenCache = new TokenCache(this.config, this.browserStorage, this.logger, this.browserCrypto);\r\n // Register listener functions\r\n this.trackPageVisibilityWithMeasurement = this.trackPageVisibilityWithMeasurement.bind(this);\r\n }\r\n /**\r\n * Initializer function to perform async startup tasks such as connecting to WAM extension\r\n */\r\n ClientApplication.prototype.initialize = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var allowNativeBroker, initMeasurement, _a, e_1;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.logger.trace(\"initialize called\");\r\n if (this.initialized) {\r\n this.logger.info(\"initialize has already been called, exiting early.\");\r\n return [2 /*return*/];\r\n }\r\n allowNativeBroker = this.config.system.allowNativeBroker;\r\n initMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.InitializeClientApplication);\r\n this.eventHandler.emitEvent(EventType.INITIALIZE_START);\r\n if (!allowNativeBroker) return [3 /*break*/, 4];\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n _a = this;\r\n return [4 /*yield*/, NativeMessageHandler.createProvider(this.logger, this.config.system.nativeBrokerHandshakeTimeout, this.performanceClient)];\r\n case 2:\r\n _a.nativeExtensionProvider = _b.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_1 = _b.sent();\r\n this.logger.verbose(e_1);\r\n return [3 /*break*/, 4];\r\n case 4:\r\n this.initialized = true;\r\n this.eventHandler.emitEvent(EventType.INITIALIZE_END);\r\n initMeasurement.endMeasurement({ allowNativeBroker: allowNativeBroker, success: true });\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // #region Redirect Flow\r\n /**\r\n * Event handler function which allows users to fire events after the PublicClientApplication object\r\n * has loaded during redirect flows. This should be invoked on all page loads involved in redirect\r\n * auth flows.\r\n * @param hash Hash to process. Defaults to the current value of window.location.hash. Only needs to be provided explicitly if the response to be handled is not contained in the current value.\r\n * @returns Token response or null. If the return value is null, then no auth redirect was detected.\r\n */\r\n ClientApplication.prototype.handleRedirectPromise = function (hash) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var loggedInAccounts, redirectResponseKey, response, request, redirectResponse, nativeClient, correlationId, redirectClient;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.logger.verbose(\"handleRedirectPromise called\");\r\n // Block token acquisition before initialize has been called if native brokering is enabled\r\n BrowserUtils.blockNativeBrokerCalledBeforeInitialized(this.config.system.allowNativeBroker, this.initialized);\r\n loggedInAccounts = this.getAllAccounts();\r\n if (this.isBrowserEnvironment) {\r\n redirectResponseKey = hash || Constants.EMPTY_STRING;\r\n response = this.redirectResponse.get(redirectResponseKey);\r\n if (typeof response === \"undefined\") {\r\n this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_START, InteractionType.Redirect);\r\n this.logger.verbose(\"handleRedirectPromise has been called for the first time, storing the promise\");\r\n request = this.browserStorage.getCachedNativeRequest();\r\n redirectResponse = void 0;\r\n if (request && NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeExtensionProvider) && this.nativeExtensionProvider && !hash) {\r\n this.logger.trace(\"handleRedirectPromise - acquiring token from native platform\");\r\n nativeClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.handleRedirectPromise, this.performanceClient, this.nativeExtensionProvider, request.accountId, this.nativeInternalStorage, request.correlationId);\r\n redirectResponse = nativeClient.handleRedirectPromise();\r\n }\r\n else {\r\n this.logger.trace(\"handleRedirectPromise - acquiring token from web flow\");\r\n correlationId = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, true) || Constants.EMPTY_STRING;\r\n redirectClient = this.createRedirectClient(correlationId);\r\n redirectResponse = redirectClient.handleRedirectPromise(hash);\r\n }\r\n response = redirectResponse.then(function (result) {\r\n if (result) {\r\n // Emit login event if number of accounts change\r\n var isLoggingIn = loggedInAccounts.length < _this.getAllAccounts().length;\r\n if (isLoggingIn) {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Redirect, result);\r\n _this.logger.verbose(\"handleRedirectResponse returned result, login success\");\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Redirect, result);\r\n _this.logger.verbose(\"handleRedirectResponse returned result, acquire token success\");\r\n }\r\n }\r\n _this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\r\n return result;\r\n }).catch(function (e) {\r\n // Emit login event if there is an account\r\n if (loggedInAccounts.length > 0) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n _this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\r\n throw e;\r\n });\r\n this.redirectResponse.set(redirectResponseKey, response);\r\n }\r\n else {\r\n this.logger.verbose(\"handleRedirectPromise has been called previously, returning the result from the first call\");\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n this.logger.verbose(\"handleRedirectPromise returns null, not browser environment\");\r\n return [2 /*return*/, null];\r\n });\r\n });\r\n };\r\n /**\r\n * Use when you want to obtain an access_token for your API by redirecting the user's browser window to the authorization endpoint. This function redirects\r\n * the page, so any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n ClientApplication.prototype.acquireTokenRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, isLoggedIn, result, nativeClient, redirectClient;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n this.logger.verbose(\"acquireTokenRedirect called\", correlationId);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\r\n isLoggedIn = this.getAllAccounts().length > 0;\r\n if (isLoggedIn) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Redirect, request);\r\n }\r\n else {\r\n this.eventHandler.emitEvent(EventType.LOGIN_START, InteractionType.Redirect, request);\r\n }\r\n if (this.nativeExtensionProvider && this.canUseNative(request)) {\r\n nativeClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenRedirect, this.performanceClient, this.nativeExtensionProvider, this.getNativeAccountId(request), this.nativeInternalStorage, request.correlationId);\r\n result = nativeClient.acquireTokenRedirect(request).catch(function (e) {\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n _this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n var redirectClient = _this.createRedirectClient(request.correlationId);\r\n return redirectClient.acquireToken(request);\r\n }\r\n else if (e instanceof InteractionRequiredAuthError) {\r\n _this.logger.verbose(\"acquireTokenRedirect - Resolving interaction required error thrown by native broker by falling back to web flow\");\r\n var redirectClient = _this.createRedirectClient(request.correlationId);\r\n return redirectClient.acquireToken(request);\r\n }\r\n _this.browserStorage.setInteractionInProgress(false);\r\n throw e;\r\n });\r\n }\r\n else {\r\n redirectClient = this.createRedirectClient(request.correlationId);\r\n result = redirectClient.acquireToken(request);\r\n }\r\n return [2 /*return*/, result.catch(function (e) {\r\n // If logged in, emit acquire token events\r\n if (isLoggedIn) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n throw e;\r\n })];\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Popup Flow\r\n /**\r\n * Use when you want to obtain an access_token for your API via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.acquireTokenPopup = function (request) {\r\n var _this = this;\r\n var correlationId = this.getRequestCorrelationId(request);\r\n var atPopupMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenPopup, correlationId);\r\n try {\r\n this.logger.verbose(\"acquireTokenPopup called\", correlationId);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\r\n }\r\n catch (e) {\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n // If logged in, emit acquire token events\r\n var loggedInAccounts = this.getAllAccounts();\r\n if (loggedInAccounts.length > 0) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Popup, request);\r\n }\r\n else {\r\n this.eventHandler.emitEvent(EventType.LOGIN_START, InteractionType.Popup, request);\r\n }\r\n var result;\r\n if (this.canUseNative(request)) {\r\n result = this.acquireTokenNative(request, ApiId.acquireTokenPopup).then(function (response) {\r\n _this.browserStorage.setInteractionInProgress(false);\r\n atPopupMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: true,\r\n requestId: response.requestId\r\n });\r\n return response;\r\n }).catch(function (e) {\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n _this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n var popupClient = _this.createPopupClient(request.correlationId);\r\n return popupClient.acquireToken(request);\r\n }\r\n else if (e instanceof InteractionRequiredAuthError) {\r\n _this.logger.verbose(\"acquireTokenPopup - Resolving interaction required error thrown by native broker by falling back to web flow\");\r\n var popupClient = _this.createPopupClient(request.correlationId);\r\n return popupClient.acquireToken(request);\r\n }\r\n _this.browserStorage.setInteractionInProgress(false);\r\n throw e;\r\n });\r\n }\r\n else {\r\n var popupClient = this.createPopupClient(request.correlationId);\r\n result = popupClient.acquireToken(request);\r\n }\r\n return result.then(function (result) {\r\n /*\r\n * If logged in, emit acquire token events\r\n */\r\n var isLoggingIn = loggedInAccounts.length < _this.getAllAccounts().length;\r\n if (isLoggingIn) {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Popup, result);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Popup, result);\r\n }\r\n atPopupMeasurement.addStaticFields({\r\n accessTokenSize: result.accessToken.length,\r\n idTokenSize: result.idToken.length\r\n });\r\n atPopupMeasurement.endMeasurement({\r\n success: true,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n }).catch(function (e) {\r\n if (loggedInAccounts.length > 0) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Popup, null, e);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Popup, null, e);\r\n }\r\n atPopupMeasurement.endMeasurement({\r\n errorCode: e.errorCode,\r\n subErrorCode: e.subError,\r\n success: false\r\n });\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n });\r\n };\r\n ClientApplication.prototype.trackPageVisibilityWithMeasurement = function () {\r\n var measurement = this.ssoSilentMeasurement || this.acquireTokenByCodeAsyncMeasurement;\r\n if (!measurement) {\r\n return;\r\n }\r\n this.logger.info(\"Perf: Visibility change detected in \", measurement.event.name);\r\n measurement.increment({\r\n visibilityChangeCount: 1,\r\n });\r\n };\r\n // #endregion\r\n // #region Silent Flow\r\n /**\r\n * This function uses a hidden iframe to fetch an authorization code from the eSTS. There are cases where this may not work:\r\n * - Any browser using a form of Intelligent Tracking Prevention\r\n * - If there is not an established session with the service\r\n *\r\n * In these cases, the request must be done inside a popup or full frame redirect.\r\n *\r\n * For the cases where interaction is required, you cannot send a request with prompt=none.\r\n *\r\n * If your refresh token has expired, you can use this function to fetch a new set of tokens silently as long as\r\n * you session on the server still exists.\r\n * @param request {@link SsoSilentRequest}\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.ssoSilent = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, validRequest, result, silentIframeClient;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n validRequest = __assign(__assign({}, request), { \r\n // will be PromptValue.NONE or PromptValue.NO_SESSION\r\n prompt: request.prompt, correlationId: correlationId });\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.ssoSilentMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SsoSilent, correlationId);\r\n (_a = this.ssoSilentMeasurement) === null || _a === void 0 ? void 0 : _a.increment({\r\n visibilityChangeCount: 0\r\n });\r\n document.addEventListener(\"visibilitychange\", this.trackPageVisibilityWithMeasurement);\r\n this.logger.verbose(\"ssoSilent called\", correlationId);\r\n this.eventHandler.emitEvent(EventType.SSO_SILENT_START, InteractionType.Silent, validRequest);\r\n if (this.canUseNative(validRequest)) {\r\n result = this.acquireTokenNative(validRequest, ApiId.ssoSilent).catch(function (e) {\r\n // If native token acquisition fails for availability reasons fallback to standard flow\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n _this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n var silentIframeClient = _this.createSilentIframeClient(validRequest.correlationId);\r\n return silentIframeClient.acquireToken(validRequest);\r\n }\r\n throw e;\r\n });\r\n }\r\n else {\r\n silentIframeClient = this.createSilentIframeClient(validRequest.correlationId);\r\n result = silentIframeClient.acquireToken(validRequest);\r\n }\r\n return [2 /*return*/, result.then(function (response) {\r\n var _a, _b;\r\n _this.eventHandler.emitEvent(EventType.SSO_SILENT_SUCCESS, InteractionType.Silent, response);\r\n (_a = _this.ssoSilentMeasurement) === null || _a === void 0 ? void 0 : _a.addStaticFields({\r\n accessTokenSize: response.accessToken.length,\r\n idTokenSize: response.idToken.length\r\n });\r\n (_b = _this.ssoSilentMeasurement) === null || _b === void 0 ? void 0 : _b.endMeasurement({\r\n success: true,\r\n isNativeBroker: response.fromNativeBroker,\r\n requestId: response.requestId\r\n });\r\n return response;\r\n }).catch(function (e) {\r\n var _a;\r\n _this.eventHandler.emitEvent(EventType.SSO_SILENT_FAILURE, InteractionType.Silent, null, e);\r\n (_a = _this.ssoSilentMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n errorCode: e.errorCode,\r\n subErrorCode: e.subError,\r\n success: false\r\n });\r\n throw e;\r\n }).finally(function () {\r\n document.removeEventListener(\"visibilitychange\", _this.trackPageVisibilityWithMeasurement);\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * This function redeems an authorization code (passed as code) from the eSTS token endpoint.\r\n * This authorization code should be acquired server-side using a confidential client to acquire a spa_code.\r\n * This API is not indended for normal authorization code acquisition and redemption.\r\n *\r\n * Redemption of this authorization code will not require PKCE, as it was acquired by a confidential client.\r\n *\r\n * @param request {@link AuthorizationCodeRequest}\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.acquireTokenByCode = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, atbcMeasurement, hybridAuthCode_1, response;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.logger.trace(\"acquireTokenByCode called\", correlationId);\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_START, InteractionType.Silent, request);\r\n atbcMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenByCode, request.correlationId);\r\n try {\r\n if (request.code && request.nativeAccountId) {\r\n // Throw error in case server returns both spa_code and spa_accountid in exchange for auth code.\r\n throw BrowserAuthError.createSpaCodeAndNativeAccountIdPresentError();\r\n }\r\n else if (request.code) {\r\n hybridAuthCode_1 = request.code;\r\n response = this.hybridAuthCodeResponses.get(hybridAuthCode_1);\r\n if (!response) {\r\n this.logger.verbose(\"Initiating new acquireTokenByCode request\", correlationId);\r\n response = this.acquireTokenByCodeAsync(__assign(__assign({}, request), { correlationId: correlationId }))\r\n .then(function (result) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_SUCCESS, InteractionType.Silent, result);\r\n _this.hybridAuthCodeResponses.delete(hybridAuthCode_1);\r\n atbcMeasurement.addStaticFields({\r\n accessTokenSize: result.accessToken.length,\r\n idTokenSize: result.idToken.length\r\n });\r\n atbcMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: result.fromNativeBroker,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.hybridAuthCodeResponses.delete(hybridAuthCode_1);\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_FAILURE, InteractionType.Silent, null, error);\r\n atbcMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n });\r\n this.hybridAuthCodeResponses.set(hybridAuthCode_1, response);\r\n }\r\n else {\r\n this.logger.verbose(\"Existing acquireTokenByCode request found\", request.correlationId);\r\n atbcMeasurement.discardMeasurement();\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n else if (request.nativeAccountId) {\r\n if (this.canUseNative(request, request.nativeAccountId)) {\r\n return [2 /*return*/, this.acquireTokenNative(request, ApiId.acquireTokenByCode, request.nativeAccountId).catch(function (e) {\r\n // If native token acquisition fails for availability reasons fallback to standard flow\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n _this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n }\r\n throw e;\r\n })];\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToAcquireTokenFromNativePlatformError();\r\n }\r\n }\r\n else {\r\n throw BrowserAuthError.createAuthCodeOrNativeAccountIdRequiredError();\r\n }\r\n }\r\n catch (e) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_FAILURE, InteractionType.Silent, null, e);\r\n atbcMeasurement.endMeasurement({\r\n errorCode: e instanceof AuthError && e.errorCode || undefined,\r\n subErrorCode: e instanceof AuthError && e.subError || undefined,\r\n success: false\r\n });\r\n throw e;\r\n }\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Creates a SilentAuthCodeClient to redeem an authorization code.\r\n * @param request\r\n * @returns Result of the operation to redeem the authorization code\r\n */\r\n ClientApplication.prototype.acquireTokenByCodeAsync = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentAuthCodeClient, silentTokenResult;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.logger.trace(\"acquireTokenByCodeAsync called\", request.correlationId);\r\n this.acquireTokenByCodeAsyncMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenByCodeAsync, request.correlationId);\r\n (_a = this.acquireTokenByCodeAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.increment({\r\n visibilityChangeCount: 0\r\n });\r\n document.addEventListener(\"visibilitychange\", this.trackPageVisibilityWithMeasurement);\r\n silentAuthCodeClient = this.createSilentAuthCodeClient(request.correlationId);\r\n return [4 /*yield*/, silentAuthCodeClient.acquireToken(request).then(function (response) {\r\n var _a;\r\n (_a = _this.acquireTokenByCodeAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n success: true,\r\n fromCache: response.fromCache,\r\n isNativeBroker: response.fromNativeBroker,\r\n requestId: response.requestId\r\n });\r\n return response;\r\n }).catch(function (tokenRenewalError) {\r\n var _a;\r\n (_a = _this.acquireTokenByCodeAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n errorCode: tokenRenewalError.errorCode,\r\n subErrorCode: tokenRenewalError.subError,\r\n success: false\r\n });\r\n throw tokenRenewalError;\r\n }).finally(function () {\r\n document.removeEventListener(\"visibilitychange\", _this.trackPageVisibilityWithMeasurement);\r\n })];\r\n case 1:\r\n silentTokenResult = _b.sent();\r\n return [2 /*return*/, silentTokenResult];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Attempt to acquire an access token from the cache\r\n * @param silentCacheClient SilentCacheClient\r\n * @param commonRequest CommonSilentFlowRequest\r\n * @param silentRequest SilentRequest\r\n * @returns A promise that, when resolved, returns the access token\r\n */\r\n ClientApplication.prototype.acquireTokenFromCache = function (silentCacheClient, commonRequest, silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenFromCache, commonRequest.correlationId);\r\n switch (silentRequest.cacheLookupPolicy) {\r\n case CacheLookupPolicy.Default:\r\n case CacheLookupPolicy.AccessToken:\r\n case CacheLookupPolicy.AccessTokenAndRefreshToken:\r\n return [2 /*return*/, silentCacheClient.acquireToken(commonRequest)];\r\n default:\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Attempt to acquire an access token via a refresh token\r\n * @param commonRequest CommonSilentFlowRequest\r\n * @param silentRequest SilentRequest\r\n * @returns A promise that, when resolved, returns the access token\r\n */\r\n ClientApplication.prototype.acquireTokenByRefreshToken = function (commonRequest, silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRefreshClient;\r\n return __generator(this, function (_a) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenByRefreshToken, commonRequest.correlationId);\r\n switch (silentRequest.cacheLookupPolicy) {\r\n case CacheLookupPolicy.Default:\r\n case CacheLookupPolicy.AccessTokenAndRefreshToken:\r\n case CacheLookupPolicy.RefreshToken:\r\n case CacheLookupPolicy.RefreshTokenAndNetwork:\r\n silentRefreshClient = this.createSilentRefreshClient(commonRequest.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentRefreshClientAcquireToken, commonRequest.correlationId);\r\n return [2 /*return*/, silentRefreshClient.acquireToken(commonRequest)];\r\n default:\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Attempt to acquire an access token via an iframe\r\n * @param request CommonSilentFlowRequest\r\n * @returns A promise that, when resolved, returns the access token\r\n */\r\n ClientApplication.prototype.acquireTokenBySilentIframe = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentIframeClient;\r\n return __generator(this, function (_a) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenBySilentIframe, request.correlationId);\r\n silentIframeClient = this.createSilentIframeClient(request.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentIframeClientAcquireToken, request.correlationId);\r\n return [2 /*return*/, silentIframeClient.acquireToken(request)];\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Logout\r\n /**\r\n * Deprecated logout function. Use logoutRedirect or logoutPopup instead\r\n * @param logoutRequest\r\n * @deprecated\r\n */\r\n ClientApplication.prototype.logout = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(logoutRequest);\r\n this.logger.warning(\"logout API is deprecated and will be removed in msal-browser v3.0.0. Use logoutRedirect instead.\", correlationId);\r\n return [2 /*return*/, this.logoutRedirect(__assign({ correlationId: correlationId }, logoutRequest))];\r\n });\r\n });\r\n };\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param logoutRequest\r\n */\r\n ClientApplication.prototype.logoutRedirect = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, redirectClient;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(logoutRequest);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\r\n redirectClient = this.createRedirectClient(correlationId);\r\n return [2 /*return*/, redirectClient.logout(logoutRequest)];\r\n });\r\n });\r\n };\r\n /**\r\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n * @param logoutRequest\r\n */\r\n ClientApplication.prototype.logoutPopup = function (logoutRequest) {\r\n try {\r\n var correlationId = this.getRequestCorrelationId(logoutRequest);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\r\n var popupClient = this.createPopupClient(correlationId);\r\n return popupClient.logout(logoutRequest);\r\n }\r\n catch (e) {\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n };\r\n // #endregion\r\n // #region Account APIs\r\n /**\r\n * Returns all accounts that MSAL currently has data for.\r\n * (the account object is created at the time of successful login)\r\n * or empty array when no accounts are found\r\n * @returns Array of account objects in cache\r\n */\r\n ClientApplication.prototype.getAllAccounts = function () {\r\n this.logger.verbose(\"getAllAccounts called\");\r\n return this.isBrowserEnvironment ? this.browserStorage.getAllAccounts() : [];\r\n };\r\n /**\r\n * Returns the signed in account matching username.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found.\r\n * This API is provided for convenience but getAccountById should be used for best reliability\r\n * @param username\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByUsername = function (username) {\r\n this.logger.trace(\"getAccountByUsername called\");\r\n if (!username) {\r\n this.logger.warning(\"getAccountByUsername: No username provided\");\r\n return null;\r\n }\r\n var account = this.browserStorage.getAccountInfoFilteredBy({ username: username });\r\n if (account) {\r\n this.logger.verbose(\"getAccountByUsername: Account matching username found, returning\");\r\n this.logger.verbosePii(\"getAccountByUsername: Returning signed-in accounts matching username: \" + username);\r\n return account;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByUsername: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Returns the signed in account matching homeAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param homeAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByHomeId = function (homeAccountId) {\r\n this.logger.trace(\"getAccountByHomeId called\");\r\n if (!homeAccountId) {\r\n this.logger.warning(\"getAccountByHomeId: No homeAccountId provided\");\r\n return null;\r\n }\r\n var account = this.browserStorage.getAccountInfoFilteredBy({ homeAccountId: homeAccountId });\r\n if (account) {\r\n this.logger.verbose(\"getAccountByHomeId: Account matching homeAccountId found, returning\");\r\n this.logger.verbosePii(\"getAccountByHomeId: Returning signed-in accounts matching homeAccountId: \" + homeAccountId);\r\n return account;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByHomeId: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Returns the signed in account matching localAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param localAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByLocalId = function (localAccountId) {\r\n this.logger.trace(\"getAccountByLocalId called\");\r\n if (!localAccountId) {\r\n this.logger.warning(\"getAccountByLocalId: No localAccountId provided\");\r\n return null;\r\n }\r\n var account = this.browserStorage.getAccountInfoFilteredBy({ localAccountId: localAccountId });\r\n if (account) {\r\n this.logger.verbose(\"getAccountByLocalId: Account matching localAccountId found, returning\");\r\n this.logger.verbosePii(\"getAccountByLocalId: Returning signed-in accounts matching localAccountId: \" + localAccountId);\r\n return account;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByLocalId: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Sets the account to use as the active account. If no account is passed to the acquireToken APIs, then MSAL will use this active account.\r\n * @param account\r\n */\r\n ClientApplication.prototype.setActiveAccount = function (account) {\r\n this.browserStorage.setActiveAccount(account);\r\n };\r\n /**\r\n * Gets the currently active account\r\n */\r\n ClientApplication.prototype.getActiveAccount = function () {\r\n return this.browserStorage.getActiveAccount();\r\n };\r\n // #endregion\r\n // #region Helpers\r\n /**\r\n * Helper to validate app environment before making an auth request\r\n *\r\n * @protected\r\n * @param {InteractionType} interactionType What kind of interaction is being used\r\n * @param {boolean} [setInteractionInProgress=true] Whether to set interaction in progress temp cache flag\r\n */\r\n ClientApplication.prototype.preflightBrowserEnvironmentCheck = function (interactionType, setInteractionInProgress) {\r\n if (setInteractionInProgress === void 0) { setInteractionInProgress = true; }\r\n this.logger.verbose(\"preflightBrowserEnvironmentCheck started\");\r\n // Block request if not in browser environment\r\n BrowserUtils.blockNonBrowserEnvironment(this.isBrowserEnvironment);\r\n // Block redirects if in an iframe\r\n BrowserUtils.blockRedirectInIframe(interactionType, this.config.system.allowRedirectInIframe);\r\n // Block auth requests inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n // Block redirectUri opened in a popup from calling MSAL APIs\r\n BrowserUtils.blockAcquireTokenInPopups();\r\n // Block token acquisition before initialize has been called if native brokering is enabled\r\n BrowserUtils.blockNativeBrokerCalledBeforeInitialized(this.config.system.allowNativeBroker, this.initialized);\r\n // Block redirects if memory storage is enabled but storeAuthStateInCookie is not\r\n if (interactionType === InteractionType.Redirect &&\r\n this.config.cache.cacheLocation === BrowserCacheLocation.MemoryStorage &&\r\n !this.config.cache.storeAuthStateInCookie) {\r\n throw BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError();\r\n }\r\n if (interactionType === InteractionType.Redirect || interactionType === InteractionType.Popup) {\r\n this.preflightInteractiveRequest(setInteractionInProgress);\r\n }\r\n };\r\n /**\r\n * Preflight check for interactive requests\r\n *\r\n * @protected\r\n * @param {boolean} setInteractionInProgress Whether to set interaction in progress temp cache flag\r\n */\r\n ClientApplication.prototype.preflightInteractiveRequest = function (setInteractionInProgress) {\r\n this.logger.verbose(\"preflightInteractiveRequest called, validating app environment\");\r\n // block the reload if it occurred inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n // Set interaction in progress temporary cache or throw if alread set.\r\n if (setInteractionInProgress) {\r\n this.browserStorage.setInteractionInProgress(true);\r\n }\r\n };\r\n /**\r\n * Acquire a token from native device (e.g. WAM)\r\n * @param request\r\n */\r\n ClientApplication.prototype.acquireTokenNative = function (request, apiId, accountId) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var nativeClient;\r\n return __generator(this, function (_a) {\r\n this.logger.trace(\"acquireTokenNative called\");\r\n if (!this.nativeExtensionProvider) {\r\n throw BrowserAuthError.createNativeConnectionNotEstablishedError();\r\n }\r\n nativeClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, apiId, this.performanceClient, this.nativeExtensionProvider, accountId || this.getNativeAccountId(request), this.nativeInternalStorage, request.correlationId);\r\n return [2 /*return*/, nativeClient.acquireToken(request)];\r\n });\r\n });\r\n };\r\n /**\r\n * Returns boolean indicating if this request can use the native broker\r\n * @param request\r\n */\r\n ClientApplication.prototype.canUseNative = function (request, accountId) {\r\n this.logger.trace(\"canUseNative called\");\r\n if (!NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeExtensionProvider, request.authenticationScheme)) {\r\n this.logger.trace(\"canUseNative: isNativeAvailable returned false, returning false\");\r\n return false;\r\n }\r\n if (request.prompt) {\r\n switch (request.prompt) {\r\n case PromptValue.NONE:\r\n case PromptValue.CONSENT:\r\n case PromptValue.LOGIN:\r\n this.logger.trace(\"canUseNative: prompt is compatible with native flow\");\r\n break;\r\n default:\r\n this.logger.trace(\"canUseNative: prompt = \" + request.prompt + \" is not compatible with native flow, returning false\");\r\n return false;\r\n }\r\n }\r\n if (!accountId && !this.getNativeAccountId(request)) {\r\n this.logger.trace(\"canUseNative: nativeAccountId is not available, returning false\");\r\n return false;\r\n }\r\n return true;\r\n };\r\n /**\r\n * Get the native accountId from the account\r\n * @param request\r\n * @returns\r\n */\r\n ClientApplication.prototype.getNativeAccountId = function (request) {\r\n var account = request.account || this.browserStorage.getAccountInfoByHints(request.loginHint, request.sid) || this.getActiveAccount();\r\n return account && account.nativeAccountId || \"\";\r\n };\r\n /**\r\n * Returns new instance of the Popup Interaction Client\r\n * @param correlationId\r\n */\r\n ClientApplication.prototype.createPopupClient = function (correlationId) {\r\n return new PopupClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeInternalStorage, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Redirect Interaction Client\r\n * @param correlationId\r\n */\r\n ClientApplication.prototype.createRedirectClient = function (correlationId) {\r\n return new RedirectClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeInternalStorage, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Silent Iframe Interaction Client\r\n * @param correlationId\r\n */\r\n ClientApplication.prototype.createSilentIframeClient = function (correlationId) {\r\n return new SilentIframeClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.ssoSilent, this.performanceClient, this.nativeInternalStorage, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Silent Cache Interaction Client\r\n */\r\n ClientApplication.prototype.createSilentCacheClient = function (correlationId) {\r\n return new SilentCacheClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Silent Refresh Interaction Client\r\n */\r\n ClientApplication.prototype.createSilentRefreshClient = function (correlationId) {\r\n return new SilentRefreshClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Silent AuthCode Interaction Client\r\n */\r\n ClientApplication.prototype.createSilentAuthCodeClient = function (correlationId) {\r\n return new SilentAuthCodeClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenByCode, this.performanceClient, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback\r\n */\r\n ClientApplication.prototype.addEventCallback = function (callback) {\r\n return this.eventHandler.addEventCallback(callback);\r\n };\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n ClientApplication.prototype.removeEventCallback = function (callbackId) {\r\n this.eventHandler.removeEventCallback(callbackId);\r\n };\r\n /**\r\n * Registers a callback to receive performance events.\r\n *\r\n * @param {PerformanceCallbackFunction} callback\r\n * @returns {string}\r\n */\r\n ClientApplication.prototype.addPerformanceCallback = function (callback) {\r\n return this.performanceClient.addPerformanceCallback(callback);\r\n };\r\n /**\r\n * Removes a callback registered with addPerformanceCallback.\r\n *\r\n * @param {string} callbackId\r\n * @returns {boolean}\r\n */\r\n ClientApplication.prototype.removePerformanceCallback = function (callbackId) {\r\n return this.performanceClient.removePerformanceCallback(callbackId);\r\n };\r\n /**\r\n * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n ClientApplication.prototype.enableAccountStorageEvents = function () {\r\n this.eventHandler.enableAccountStorageEvents();\r\n };\r\n /**\r\n * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n ClientApplication.prototype.disableAccountStorageEvents = function () {\r\n this.eventHandler.disableAccountStorageEvents();\r\n };\r\n /**\r\n * Gets the token cache for the application.\r\n */\r\n ClientApplication.prototype.getTokenCache = function () {\r\n return this.tokenCache;\r\n };\r\n /**\r\n * Returns the logger instance\r\n */\r\n ClientApplication.prototype.getLogger = function () {\r\n return this.logger;\r\n };\r\n /**\r\n * Replaces the default logger set in configurations with new Logger with new configurations\r\n * @param logger Logger instance\r\n */\r\n ClientApplication.prototype.setLogger = function (logger) {\r\n this.logger = logger;\r\n };\r\n /**\r\n * Called by wrapper libraries (Angular & React) to set SKU and Version passed down to telemetry, logger, etc.\r\n * @param sku\r\n * @param version\r\n */\r\n ClientApplication.prototype.initializeWrapperLibrary = function (sku, version) {\r\n // Validate the SKU passed in is one we expect\r\n this.browserStorage.setWrapperMetadata(sku, version);\r\n };\r\n /**\r\n * Sets navigation client\r\n * @param navigationClient\r\n */\r\n ClientApplication.prototype.setNavigationClient = function (navigationClient) {\r\n this.navigationClient = navigationClient;\r\n };\r\n /**\r\n * Returns the configuration object\r\n */\r\n ClientApplication.prototype.getConfiguration = function () {\r\n return this.config;\r\n };\r\n /**\r\n * Generates a correlation id for a request if none is provided.\r\n *\r\n * @protected\r\n * @param {?Partial} [request]\r\n * @returns {string}\r\n */\r\n ClientApplication.prototype.getRequestCorrelationId = function (request) {\r\n if (request === null || request === void 0 ? void 0 : request.correlationId) {\r\n return request.correlationId;\r\n }\r\n if (this.isBrowserEnvironment) {\r\n return this.browserCrypto.createNewGuid();\r\n }\r\n /*\r\n * Included for fallback for non-browser environments,\r\n * and to ensure this method always returns a string.\r\n */\r\n return Constants.EMPTY_STRING;\r\n };\r\n return ClientApplication;\r\n}());\n\nexport { ClientApplication };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { PerformanceEvents, Constants, ServerError, InteractionRequiredAuthError } from '@azure/msal-common';\nimport { DEFAULT_REQUEST, InteractionType, CacheLookupPolicy, ApiId, BrowserConstants } from '../utils/BrowserConstants.js';\nimport { ClientApplication } from './ClientApplication.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { NativeAuthError } from '../error/NativeAuthError.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The PublicClientApplication class is the object exposed by the library to perform authentication and authorization functions in Single Page Applications\r\n * to obtain JWT tokens as described in the OAuth 2.0 Authorization Code Flow with PKCE specification.\r\n */\r\nvar PublicClientApplication = /** @class */ (function (_super) {\r\n __extends(PublicClientApplication, _super);\r\n /**\r\n * @constructor\r\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n * - authority: the authority URL for your application.\r\n * - redirect_uri: the uri of your application registered in the portal.\r\n *\r\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\r\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n *\r\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n * Full B2C functionality will be available in this library in future versions.\r\n *\r\n * @param configuration object for the MSAL PublicClientApplication instance\r\n */\r\n function PublicClientApplication(configuration) {\r\n var _this = _super.call(this, configuration) || this;\r\n _this.astsAsyncMeasurement = undefined;\r\n _this.activeSilentTokenRequests = new Map();\r\n // Register listener functions\r\n _this.trackPageVisibility = _this.trackPageVisibility.bind(_this);\r\n return _this;\r\n }\r\n /**\r\n * Use when initiating the login process by redirecting the user's browser to the authorization endpoint. This function redirects the page, so\r\n * any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n PublicClientApplication.prototype.loginRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n this.logger.verbose(\"loginRedirect called\", correlationId);\r\n return [2 /*return*/, this.acquireTokenRedirect(__assign({ correlationId: correlationId }, (request || DEFAULT_REQUEST)))];\r\n });\r\n });\r\n };\r\n /**\r\n * Use when initiating the login process via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n PublicClientApplication.prototype.loginPopup = function (request) {\r\n var correlationId = this.getRequestCorrelationId(request);\r\n this.logger.verbose(\"loginPopup called\", correlationId);\r\n return this.acquireTokenPopup(__assign({ correlationId: correlationId }, (request || DEFAULT_REQUEST)));\r\n };\r\n /**\r\n * Silently acquire an access token for a given set of scopes. Returns currently processing promise if parallel requests are made.\r\n *\r\n * @param {@link (SilentRequest:type)}\r\n * @returns {Promise.} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse} object\r\n */\r\n PublicClientApplication.prototype.acquireTokenSilent = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, atsMeasurement, account, thumbprint, silentRequestKey, cachedResponse, response;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n atsMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenSilent, correlationId);\r\n atsMeasurement.addStaticFields({\r\n cacheLookupPolicy: request.cacheLookupPolicy\r\n });\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.logger.verbose(\"acquireTokenSilent called\", correlationId);\r\n account = request.account || this.getActiveAccount();\r\n if (!account) {\r\n throw BrowserAuthError.createNoAccountError();\r\n }\r\n thumbprint = {\r\n clientId: this.config.auth.clientId,\r\n authority: request.authority || Constants.EMPTY_STRING,\r\n scopes: request.scopes,\r\n homeAccountIdentifier: account.homeAccountId,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n silentRequestKey = JSON.stringify(thumbprint);\r\n cachedResponse = this.activeSilentTokenRequests.get(silentRequestKey);\r\n if (typeof cachedResponse === \"undefined\") {\r\n this.logger.verbose(\"acquireTokenSilent called for the first time, storing active request\", correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.AcquireTokenSilentAsync, correlationId);\r\n response = this.acquireTokenSilentAsync(__assign(__assign({}, request), { correlationId: correlationId }), account)\r\n .then(function (result) {\r\n _this.activeSilentTokenRequests.delete(silentRequestKey);\r\n atsMeasurement.addStaticFields({\r\n accessTokenSize: result.accessToken.length,\r\n idTokenSize: result.idToken.length\r\n });\r\n atsMeasurement.endMeasurement({\r\n success: true,\r\n fromCache: result.fromCache,\r\n isNativeBroker: result.fromNativeBroker,\r\n cacheLookupPolicy: request.cacheLookupPolicy,\r\n requestId: result.requestId,\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.activeSilentTokenRequests.delete(silentRequestKey);\r\n atsMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n });\r\n this.activeSilentTokenRequests.set(silentRequestKey, response);\r\n return [2 /*return*/, response];\r\n }\r\n else {\r\n this.logger.verbose(\"acquireTokenSilent has been called previously, returning the result from the first call\", correlationId);\r\n // Discard measurements for memoized calls, as they are usually only a couple of ms and will artificially deflate metrics\r\n atsMeasurement.discardMeasurement();\r\n return [2 /*return*/, cachedResponse];\r\n }\r\n });\r\n });\r\n };\r\n PublicClientApplication.prototype.trackPageVisibility = function () {\r\n if (!this.astsAsyncMeasurement) {\r\n return;\r\n }\r\n this.logger.info(\"Perf: Visibility change detected\");\r\n this.astsAsyncMeasurement.increment({\r\n visibilityChangeCount: 1,\r\n });\r\n };\r\n /**\r\n * Silently acquire an access token for a given set of scopes. Will use cached token if available, otherwise will attempt to acquire a new token from the network via refresh token.\r\n * @param {@link (SilentRequest:type)}\r\n * @param {@link (AccountInfo:type)}\r\n * @returns {Promise.} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse}\r\n */\r\n PublicClientApplication.prototype.acquireTokenSilentAsync = function (request, account) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var result, silentRequest, silentCacheClient, silentRequest_1, requestWithCLP_1;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenSilentAsync, request.correlationId);\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Silent, request);\r\n this.astsAsyncMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenSilentAsync, request.correlationId);\r\n (_a = this.astsAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.increment({\r\n visibilityChangeCount: 0\r\n });\r\n document.addEventListener(\"visibilitychange\", this.trackPageVisibility);\r\n if (!(NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeExtensionProvider, request.authenticationScheme) && account.nativeAccountId)) return [3 /*break*/, 1];\r\n this.logger.verbose(\"acquireTokenSilent - attempting to acquire token from native platform\");\r\n silentRequest = __assign(__assign({}, request), { account: account });\r\n result = this.acquireTokenNative(silentRequest, ApiId.acquireTokenSilent_silentFlow).catch(function (e) { return __awaiter(_this, void 0, void 0, function () {\r\n var silentIframeClient;\r\n return __generator(this, function (_a) {\r\n // If native token acquisition fails for availability reasons fallback to web flow\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n this.logger.verbose(\"acquireTokenSilent - native platform unavailable, falling back to web flow\");\r\n this.nativeExtensionProvider = undefined; // Prevent future requests from continuing to attempt\r\n silentIframeClient = this.createSilentIframeClient(request.correlationId);\r\n return [2 /*return*/, silentIframeClient.acquireToken(request)];\r\n }\r\n throw e;\r\n });\r\n }); });\r\n return [3 /*break*/, 3];\r\n case 1:\r\n this.logger.verbose(\"acquireTokenSilent - attempting to acquire token from web flow\");\r\n silentCacheClient = this.createSilentCacheClient(request.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeSilentRequest, request.correlationId);\r\n return [4 /*yield*/, silentCacheClient.initializeSilentRequest(request, account)];\r\n case 2:\r\n silentRequest_1 = _b.sent();\r\n requestWithCLP_1 = __assign(__assign({}, request), { \r\n // set the request's CacheLookupPolicy to Default if it was not optionally passed in\r\n cacheLookupPolicy: request.cacheLookupPolicy || CacheLookupPolicy.Default });\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.AcquireTokenFromCache, silentRequest_1.correlationId);\r\n result = this.acquireTokenFromCache(silentCacheClient, silentRequest_1, requestWithCLP_1).catch(function (cacheError) {\r\n if (requestWithCLP_1.cacheLookupPolicy === CacheLookupPolicy.AccessToken) {\r\n throw cacheError;\r\n }\r\n // block the reload if it occurred inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_NETWORK_START, InteractionType.Silent, silentRequest_1);\r\n _this.performanceClient.setPreQueueTime(PerformanceEvents.AcquireTokenByRefreshToken, silentRequest_1.correlationId);\r\n return _this.acquireTokenByRefreshToken(silentRequest_1, requestWithCLP_1).catch(function (refreshTokenError) {\r\n var isServerError = refreshTokenError instanceof ServerError;\r\n var isInteractionRequiredError = refreshTokenError instanceof InteractionRequiredAuthError;\r\n var isInvalidGrantError = (refreshTokenError.errorCode === BrowserConstants.INVALID_GRANT_ERROR);\r\n if ((!isServerError ||\r\n !isInvalidGrantError ||\r\n isInteractionRequiredError ||\r\n requestWithCLP_1.cacheLookupPolicy === CacheLookupPolicy.AccessTokenAndRefreshToken ||\r\n requestWithCLP_1.cacheLookupPolicy === CacheLookupPolicy.RefreshToken)\r\n && (requestWithCLP_1.cacheLookupPolicy !== CacheLookupPolicy.Skip)) {\r\n throw refreshTokenError;\r\n }\r\n _this.logger.verbose(\"Refresh token expired/invalid or CacheLookupPolicy is set to Skip, attempting acquire token by iframe.\", request.correlationId);\r\n _this.performanceClient.setPreQueueTime(PerformanceEvents.AcquireTokenBySilentIframe, silentRequest_1.correlationId);\r\n return _this.acquireTokenBySilentIframe(silentRequest_1);\r\n });\r\n });\r\n _b.label = 3;\r\n case 3: return [2 /*return*/, result.then(function (response) {\r\n var _a;\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, response);\r\n (_a = _this.astsAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n success: true,\r\n fromCache: response.fromCache,\r\n isNativeBroker: response.fromNativeBroker,\r\n requestId: response.requestId\r\n });\r\n return response;\r\n }).catch(function (tokenRenewalError) {\r\n var _a;\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Silent, null, tokenRenewalError);\r\n (_a = _this.astsAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n errorCode: tokenRenewalError.errorCode,\r\n subErrorCode: tokenRenewalError.subError,\r\n success: false\r\n });\r\n throw tokenRenewalError;\r\n }).finally(function () {\r\n document.removeEventListener(\"visibilitychange\", _this.trackPageVisibility);\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n return PublicClientApplication;\r\n}(ClientApplication));\n\nexport { PublicClientApplication };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../../_virtual/_tslib.js';\nimport { NativeConstants, NativeExtensionMethod } from '../../utils/BrowserConstants.js';\nimport { AuthError, AuthenticationScheme, PerformanceEvents } from '@azure/msal-common';\nimport { NativeAuthError } from '../../error/NativeAuthError.js';\nimport { BrowserAuthError } from '../../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NativeMessageHandler = /** @class */ (function () {\r\n function NativeMessageHandler(logger, handshakeTimeoutMs, performanceClient, extensionId) {\r\n this.logger = logger;\r\n this.handshakeTimeoutMs = handshakeTimeoutMs;\r\n this.extensionId = extensionId;\r\n this.resolvers = new Map(); // Used for non-handshake messages\r\n this.handshakeResolvers = new Map(); // Used for handshake messages\r\n this.responseId = 0;\r\n this.messageChannel = new MessageChannel();\r\n this.windowListener = this.onWindowMessage.bind(this); // Window event callback doesn't have access to 'this' unless it's bound\r\n this.performanceClient = performanceClient;\r\n this.handshakeEvent = performanceClient.startMeasurement(PerformanceEvents.NativeMessageHandlerHandshake);\r\n }\r\n /**\r\n * Sends a given message to the extension and resolves with the extension response\r\n * @param body\r\n */\r\n NativeMessageHandler.prototype.sendMessage = function (body) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var req;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.logger.trace(\"NativeMessageHandler - sendMessage called.\");\r\n req = {\r\n channel: NativeConstants.CHANNEL_ID,\r\n extensionId: this.extensionId,\r\n responseId: this.responseId++,\r\n body: body\r\n };\r\n this.logger.trace(\"NativeMessageHandler - Sending request to browser extension\");\r\n this.logger.tracePii(\"NativeMessageHandler - Sending request to browser extension: \" + JSON.stringify(req));\r\n this.messageChannel.port1.postMessage(req);\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n _this.resolvers.set(req.responseId, { resolve: resolve, reject: reject });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Returns an instance of the MessageHandler that has successfully established a connection with an extension\r\n * @param {Logger} logger\r\n * @param {number} handshakeTimeoutMs\r\n * @param {IPerformanceClient} performanceClient\r\n */\r\n NativeMessageHandler.createProvider = function (logger, handshakeTimeoutMs, performanceClient) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var preferredProvider, backupProvider;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n logger.trace(\"NativeMessageHandler - createProvider called.\");\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 5]);\r\n preferredProvider = new NativeMessageHandler(logger, handshakeTimeoutMs, performanceClient, NativeConstants.PREFERRED_EXTENSION_ID);\r\n return [4 /*yield*/, preferredProvider.sendHandshakeRequest()];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, preferredProvider];\r\n case 3:\r\n _a.sent();\r\n backupProvider = new NativeMessageHandler(logger, handshakeTimeoutMs, performanceClient);\r\n return [4 /*yield*/, backupProvider.sendHandshakeRequest()];\r\n case 4:\r\n _a.sent();\r\n return [2 /*return*/, backupProvider];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Send handshake request helper.\r\n */\r\n NativeMessageHandler.prototype.sendHandshakeRequest = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var req;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.logger.trace(\"NativeMessageHandler - sendHandshakeRequest called.\");\r\n // Register this event listener before sending handshake\r\n window.addEventListener(\"message\", this.windowListener, false); // false is important, because content script message processing should work first\r\n req = {\r\n channel: NativeConstants.CHANNEL_ID,\r\n extensionId: this.extensionId,\r\n responseId: this.responseId++,\r\n body: {\r\n method: NativeExtensionMethod.HandshakeRequest\r\n }\r\n };\r\n this.handshakeEvent.addStaticFields({\r\n extensionId: this.extensionId,\r\n extensionHandshakeTimeoutMs: this.handshakeTimeoutMs\r\n });\r\n this.messageChannel.port1.onmessage = function (event) {\r\n _this.onChannelMessage(event);\r\n };\r\n window.postMessage(req, window.origin, [this.messageChannel.port2]);\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n _this.handshakeResolvers.set(req.responseId, { resolve: resolve, reject: reject });\r\n _this.timeoutId = window.setTimeout(function () {\r\n /*\r\n * Throw an error if neither HandshakeResponse nor original Handshake request are received in a reasonable timeframe.\r\n * This typically suggests an event handler stopped propagation of the Handshake request but did not respond to it on the MessageChannel port\r\n */\r\n window.removeEventListener(\"message\", _this.windowListener, false);\r\n _this.messageChannel.port1.close();\r\n _this.messageChannel.port2.close();\r\n _this.handshakeEvent.endMeasurement({ extensionHandshakeTimedOut: true, success: false });\r\n reject(BrowserAuthError.createNativeHandshakeTimeoutError());\r\n _this.handshakeResolvers.delete(req.responseId);\r\n }, _this.handshakeTimeoutMs); // Use a reasonable timeout in milliseconds here\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Invoked when a message is posted to the window. If a handshake request is received it means the extension is not installed.\r\n * @param event\r\n */\r\n NativeMessageHandler.prototype.onWindowMessage = function (event) {\r\n this.logger.trace(\"NativeMessageHandler - onWindowMessage called\");\r\n // We only accept messages from ourselves\r\n if (event.source !== window) {\r\n return;\r\n }\r\n var request = event.data;\r\n if (!request.channel || request.channel !== NativeConstants.CHANNEL_ID) {\r\n return;\r\n }\r\n if (request.extensionId && request.extensionId !== this.extensionId) {\r\n return;\r\n }\r\n if (request.body.method === NativeExtensionMethod.HandshakeRequest) {\r\n // If we receive this message back it means no extension intercepted the request, meaning no extension supporting handshake protocol is installed\r\n this.logger.verbose(request.extensionId ? \"Extension with id: \" + request.extensionId + \" not installed\" : \"No extension installed\");\r\n clearTimeout(this.timeoutId);\r\n this.messageChannel.port1.close();\r\n this.messageChannel.port2.close();\r\n window.removeEventListener(\"message\", this.windowListener, false);\r\n var handshakeResolver = this.handshakeResolvers.get(request.responseId);\r\n if (handshakeResolver) {\r\n this.handshakeEvent.endMeasurement({ success: false, extensionInstalled: false });\r\n handshakeResolver.reject(BrowserAuthError.createNativeExtensionNotInstalledError());\r\n }\r\n }\r\n };\r\n /**\r\n * Invoked when a message is received from the extension on the MessageChannel port\r\n * @param event\r\n */\r\n NativeMessageHandler.prototype.onChannelMessage = function (event) {\r\n this.logger.trace(\"NativeMessageHandler - onChannelMessage called.\");\r\n var request = event.data;\r\n var resolver = this.resolvers.get(request.responseId);\r\n var handshakeResolver = this.handshakeResolvers.get(request.responseId);\r\n try {\r\n var method = request.body.method;\r\n if (method === NativeExtensionMethod.Response) {\r\n if (!resolver) {\r\n return;\r\n }\r\n var response = request.body.response;\r\n this.logger.trace(\"NativeMessageHandler - Received response from browser extension\");\r\n this.logger.tracePii(\"NativeMessageHandler - Received response from browser extension: \" + JSON.stringify(response));\r\n if (response.status !== \"Success\") {\r\n resolver.reject(NativeAuthError.createError(response.code, response.description, response.ext));\r\n }\r\n else if (response.result) {\r\n if (response.result[\"code\"] && response.result[\"description\"]) {\r\n resolver.reject(NativeAuthError.createError(response.result[\"code\"], response.result[\"description\"], response.result[\"ext\"]));\r\n }\r\n else {\r\n resolver.resolve(response.result);\r\n }\r\n }\r\n else {\r\n throw AuthError.createUnexpectedError(\"Event does not contain result.\");\r\n }\r\n this.resolvers.delete(request.responseId);\r\n }\r\n else if (method === NativeExtensionMethod.HandshakeResponse) {\r\n if (!handshakeResolver) {\r\n return;\r\n }\r\n clearTimeout(this.timeoutId); // Clear setTimeout\r\n window.removeEventListener(\"message\", this.windowListener, false); // Remove 'No extension' listener\r\n this.extensionId = request.extensionId;\r\n this.extensionVersion = request.body.version;\r\n this.logger.verbose(\"NativeMessageHandler - Received HandshakeResponse from extension: \" + this.extensionId);\r\n this.handshakeEvent.endMeasurement({ extensionInstalled: true, success: true });\r\n handshakeResolver.resolve();\r\n this.handshakeResolvers.delete(request.responseId);\r\n }\r\n // Do nothing if method is not Response or HandshakeResponse\r\n }\r\n catch (err) {\r\n this.logger.error(\"Error parsing response from WAM Extension\");\r\n this.logger.errorPii(\"Error parsing response from WAM Extension: \" + err.toString());\r\n this.logger.errorPii(\"Unable to parse \" + event);\r\n if (resolver) {\r\n resolver.reject(err);\r\n }\r\n else if (handshakeResolver) {\r\n handshakeResolver.reject(err);\r\n }\r\n }\r\n };\r\n /**\r\n * Returns the Id for the browser extension this handler is communicating with\r\n * @returns\r\n */\r\n NativeMessageHandler.prototype.getExtensionId = function () {\r\n return this.extensionId;\r\n };\r\n /**\r\n * Returns the version for the browser extension this handler is communicating with\r\n * @returns\r\n */\r\n NativeMessageHandler.prototype.getExtensionVersion = function () {\r\n return this.extensionVersion;\r\n };\r\n /**\r\n * Returns boolean indicating whether or not the request should attempt to use native broker\r\n * @param logger\r\n * @param config\r\n * @param nativeExtensionProvider\r\n * @param authenticationScheme\r\n */\r\n NativeMessageHandler.isNativeAvailable = function (config, logger, nativeExtensionProvider, authenticationScheme) {\r\n logger.trace(\"isNativeAvailable called\");\r\n if (!config.system.allowNativeBroker) {\r\n logger.trace(\"isNativeAvailable: allowNativeBroker is not enabled, returning false\");\r\n // Developer disabled WAM\r\n return false;\r\n }\r\n if (!nativeExtensionProvider) {\r\n logger.trace(\"isNativeAvailable: WAM extension provider is not initialized, returning false\");\r\n // Extension is not available\r\n return false;\r\n }\r\n if (authenticationScheme) {\r\n switch (authenticationScheme) {\r\n case AuthenticationScheme.BEARER:\r\n case AuthenticationScheme.POP:\r\n logger.trace(\"isNativeAvailable: authenticationScheme is supported, returning true\");\r\n return true;\r\n default:\r\n logger.trace(\"isNativeAvailable: authenticationScheme is not supported, returning false\");\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n return NativeMessageHandler;\r\n}());\n\nexport { NativeMessageHandler };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\nimport { DatabaseStorage } from './DatabaseStorage.js';\nimport { MemoryStorage } from './MemoryStorage.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class allows MSAL to store artifacts asynchronously using the DatabaseStorage IndexedDB wrapper,\r\n * backed up with the more volatile MemoryStorage object for cases in which IndexedDB may be unavailable.\r\n */\r\nvar AsyncMemoryStorage = /** @class */ (function () {\r\n function AsyncMemoryStorage(logger, storeName) {\r\n this.inMemoryCache = new MemoryStorage();\r\n this.indexedDBCache = new DatabaseStorage();\r\n this.logger = logger;\r\n this.storeName = storeName;\r\n }\r\n AsyncMemoryStorage.prototype.handleDatabaseAccessError = function (error) {\r\n if (error instanceof BrowserAuthError && error.errorCode === BrowserAuthErrorMessage.databaseUnavailable.code) {\r\n this.logger.error(\"Could not access persistent storage. This may be caused by browser privacy features which block persistent storage in third-party contexts.\");\r\n }\r\n else {\r\n throw error;\r\n }\r\n };\r\n /**\r\n * Get the item matching the given key. Tries in-memory cache first, then in the asynchronous\r\n * storage object if item isn't found in-memory.\r\n * @param key\r\n */\r\n AsyncMemoryStorage.prototype.getItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var item, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n item = this.inMemoryCache.getItem(key);\r\n if (!!item) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"Queried item not found in in-memory cache, now querying persistent storage.\");\r\n return [4 /*yield*/, this.indexedDBCache.getItem(key)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n case 3:\r\n e_1 = _a.sent();\r\n this.handleDatabaseAccessError(e_1);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/, item];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Sets the item in the in-memory cache and then tries to set it in the asynchronous\r\n * storage object with the given key.\r\n * @param key\r\n * @param value\r\n */\r\n AsyncMemoryStorage.prototype.setItem = function (key, value) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.inMemoryCache.setItem(key, value);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.indexedDBCache.setItem(key, value)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_2 = _a.sent();\r\n this.handleDatabaseAccessError(e_2);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes the item matching the key from the in-memory cache, then tries to remove it from the asynchronous storage object.\r\n * @param key\r\n */\r\n AsyncMemoryStorage.prototype.removeItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.inMemoryCache.removeItem(key);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.indexedDBCache.removeItem(key)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_3 = _a.sent();\r\n this.handleDatabaseAccessError(e_3);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get all the keys from the in-memory cache as an iterable array of strings. If no keys are found, query the keys in the\r\n * asynchronous storage object.\r\n */\r\n AsyncMemoryStorage.prototype.getKeys = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cacheKeys, e_4;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n cacheKeys = this.inMemoryCache.getKeys();\r\n if (!(cacheKeys.length === 0)) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"In-memory cache is empty, now querying persistent storage.\");\r\n return [4 /*yield*/, this.indexedDBCache.getKeys()];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n case 3:\r\n e_4 = _a.sent();\r\n this.handleDatabaseAccessError(e_4);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/, cacheKeys];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Returns true or false if the given key is present in the cache.\r\n * @param key\r\n */\r\n AsyncMemoryStorage.prototype.containsKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var containsKey, e_5;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n containsKey = this.inMemoryCache.containsKey(key);\r\n if (!!containsKey) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"Key not found in in-memory cache, now querying persistent storage.\");\r\n return [4 /*yield*/, this.indexedDBCache.containsKey(key)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n case 3:\r\n e_5 = _a.sent();\r\n this.handleDatabaseAccessError(e_5);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/, containsKey];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Clears in-memory Map\r\n */\r\n AsyncMemoryStorage.prototype.clearInMemory = function () {\r\n // InMemory cache is a Map instance, clear is straightforward\r\n this.logger.verbose(\"Deleting in-memory keystore \" + this.storeName);\r\n this.inMemoryCache.clear();\r\n this.logger.verbose(\"In-memory keystore \" + this.storeName + \" deleted\");\r\n };\r\n /**\r\n * Tries to delete the IndexedDB database\r\n * @returns\r\n */\r\n AsyncMemoryStorage.prototype.clearPersistent = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var dbDeleted, e_6;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n this.logger.verbose(\"Deleting persistent keystore\");\r\n return [4 /*yield*/, this.indexedDBCache.deleteDatabase()];\r\n case 1:\r\n dbDeleted = _a.sent();\r\n if (dbDeleted) {\r\n this.logger.verbose(\"Persistent keystore deleted\");\r\n }\r\n return [2 /*return*/, dbDeleted];\r\n case 2:\r\n e_6 = _a.sent();\r\n this.handleDatabaseAccessError(e_6);\r\n return [2 /*return*/, false];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return AsyncMemoryStorage;\r\n}());\n\nexport { AsyncMemoryStorage };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __extends, __awaiter, __generator, __spread } from '../_virtual/_tslib.js';\nimport { CredentialType, RefreshTokenEntity, CacheManager, AccessTokenEntity, IdTokenEntity, AccountEntity, ClientAuthError, AppMetadataEntity, ServerTelemetryEntity, AuthorityMetadataEntity, Constants, PersistentCacheKeys, ThrottlingEntity, StringUtils, ProtocolUtils, CcsCredentialType, IdToken, DEFAULT_CRYPTO_IMPLEMENTATION } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserCacheLocation, StaticCacheKeys, InMemoryCacheKeys, TemporaryCacheKeys } from '../utils/BrowserConstants.js';\nimport { BrowserStorage } from './BrowserStorage.js';\nimport { MemoryStorage } from './MemoryStorage.js';\nimport { BrowserProtocolUtils } from '../utils/BrowserProtocolUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the cache storage interface for MSAL through browser local or session storage.\r\n * Cookies are only used if storeAuthStateInCookie is true, and are only used for\r\n * parameters such as state and nonce, generally.\r\n */\r\nvar BrowserCacheManager = /** @class */ (function (_super) {\r\n __extends(BrowserCacheManager, _super);\r\n function BrowserCacheManager(clientId, cacheConfig, cryptoImpl, logger) {\r\n var _this = _super.call(this, clientId, cryptoImpl, logger) || this;\r\n // Cookie life calculation (hours * minutes * seconds * ms)\r\n _this.COOKIE_LIFE_MULTIPLIER = 24 * 60 * 60 * 1000;\r\n _this.cacheConfig = cacheConfig;\r\n _this.logger = logger;\r\n _this.internalStorage = new MemoryStorage();\r\n _this.browserStorage = _this.setupBrowserStorage(_this.cacheConfig.cacheLocation);\r\n _this.temporaryCacheStorage = _this.setupTemporaryCacheStorage(_this.cacheConfig.temporaryCacheLocation, _this.cacheConfig.cacheLocation);\r\n // Migrate cache entries from older versions of MSAL.\r\n if (cacheConfig.cacheMigrationEnabled) {\r\n _this.migrateCacheEntries();\r\n _this.createKeyMaps();\r\n }\r\n return _this;\r\n }\r\n /**\r\n * Returns a window storage class implementing the IWindowStorage interface that corresponds to the configured cacheLocation.\r\n * @param cacheLocation\r\n */\r\n BrowserCacheManager.prototype.setupBrowserStorage = function (cacheLocation) {\r\n switch (cacheLocation) {\r\n case BrowserCacheLocation.LocalStorage:\r\n case BrowserCacheLocation.SessionStorage:\r\n try {\r\n return new BrowserStorage(cacheLocation);\r\n }\r\n catch (e) {\r\n this.logger.verbose(e);\r\n break;\r\n }\r\n }\r\n this.cacheConfig.cacheLocation = BrowserCacheLocation.MemoryStorage;\r\n return new MemoryStorage();\r\n };\r\n /**\r\n * Returns a window storage class implementing the IWindowStorage interface that corresponds to the configured temporaryCacheLocation.\r\n * @param temporaryCacheLocation\r\n * @param cacheLocation\r\n */\r\n BrowserCacheManager.prototype.setupTemporaryCacheStorage = function (temporaryCacheLocation, cacheLocation) {\r\n switch (cacheLocation) {\r\n case BrowserCacheLocation.LocalStorage:\r\n case BrowserCacheLocation.SessionStorage:\r\n try {\r\n /*\r\n * When users do not explicitly choose their own temporaryCacheLocation,\r\n * temporary cache items will always be stored in session storage to mitigate problems caused by multiple tabs\r\n */\r\n return new BrowserStorage(temporaryCacheLocation || BrowserCacheLocation.SessionStorage);\r\n }\r\n catch (e) {\r\n this.logger.verbose(e);\r\n return this.internalStorage;\r\n }\r\n case BrowserCacheLocation.MemoryStorage:\r\n default:\r\n return this.internalStorage;\r\n }\r\n };\r\n /**\r\n * Migrate all old cache entries to new schema. No rollback supported.\r\n * @param storeAuthStateInCookie\r\n */\r\n BrowserCacheManager.prototype.migrateCacheEntries = function () {\r\n var _this = this;\r\n var idTokenKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ID_TOKEN;\r\n var clientInfoKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.CLIENT_INFO;\r\n var errorKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ERROR;\r\n var errorDescKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ERROR_DESC;\r\n var idTokenValue = this.browserStorage.getItem(idTokenKey);\r\n var clientInfoValue = this.browserStorage.getItem(clientInfoKey);\r\n var errorValue = this.browserStorage.getItem(errorKey);\r\n var errorDescValue = this.browserStorage.getItem(errorDescKey);\r\n var values = [idTokenValue, clientInfoValue, errorValue, errorDescValue];\r\n var keysToMigrate = [PersistentCacheKeys.ID_TOKEN, PersistentCacheKeys.CLIENT_INFO, PersistentCacheKeys.ERROR, PersistentCacheKeys.ERROR_DESC];\r\n keysToMigrate.forEach(function (cacheKey, index) { return _this.migrateCacheEntry(cacheKey, values[index]); });\r\n };\r\n /**\r\n * Utility function to help with migration.\r\n * @param newKey\r\n * @param value\r\n * @param storeAuthStateInCookie\r\n */\r\n BrowserCacheManager.prototype.migrateCacheEntry = function (newKey, value) {\r\n if (value) {\r\n this.setTemporaryCache(newKey, value, true);\r\n }\r\n };\r\n /**\r\n * Searches all cache entries for MSAL accounts and creates the account key map\r\n * This is used to migrate users from older versions of MSAL which did not create the map.\r\n * @returns\r\n */\r\n BrowserCacheManager.prototype.createKeyMaps = function () {\r\n var _this = this;\r\n this.logger.trace(\"BrowserCacheManager - createKeyMaps called.\");\r\n var accountKeys = this.getItem(StaticCacheKeys.ACCOUNT_KEYS);\r\n var tokenKeys = this.getItem(StaticCacheKeys.TOKEN_KEYS + \".\" + this.clientId);\r\n if (accountKeys && tokenKeys) {\r\n this.logger.verbose(\"BrowserCacheManager:createKeyMaps - account and token key maps already exist, skipping migration.\");\r\n // Key maps already exist, no need to iterate through cache\r\n return;\r\n }\r\n var allKeys = this.browserStorage.getKeys();\r\n allKeys.forEach(function (key) {\r\n if (_this.isCredentialKey(key)) {\r\n // Get item, parse, validate and write key to map\r\n var value = _this.getItem(key);\r\n if (value) {\r\n var credObj = _this.validateAndParseJson(value);\r\n if (credObj && credObj.hasOwnProperty(\"credentialType\")) {\r\n switch (credObj[\"credentialType\"]) {\r\n case CredentialType.ID_TOKEN:\r\n if (IdTokenEntity.isIdTokenEntity(credObj)) {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - idToken found, saving key to token key map\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - idToken with key: \" + key + \" found, saving key to token key map\");\r\n var idTokenEntity = CacheManager.toObject(new IdTokenEntity(), credObj);\r\n var newKey = _this.updateCredentialCacheKey(key, idTokenEntity);\r\n _this.addTokenKey(newKey, CredentialType.ID_TOKEN);\r\n return;\r\n }\r\n else {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - key found matching idToken schema with value containing idToken credentialType field but value failed IdTokenEntity validation, skipping.\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - failed idToken validation on key: \" + key);\r\n }\r\n break;\r\n case CredentialType.ACCESS_TOKEN:\r\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:\r\n if (AccessTokenEntity.isAccessTokenEntity(credObj)) {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - accessToken found, saving key to token key map\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - accessToken with key: \" + key + \" found, saving key to token key map\");\r\n var accessTokenEntity = CacheManager.toObject(new AccessTokenEntity(), credObj);\r\n var newKey = _this.updateCredentialCacheKey(key, accessTokenEntity);\r\n _this.addTokenKey(newKey, CredentialType.ACCESS_TOKEN);\r\n return;\r\n }\r\n else {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - key found matching accessToken schema with value containing accessToken credentialType field but value failed AccessTokenEntity validation, skipping.\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - failed accessToken validation on key: \" + key);\r\n }\r\n break;\r\n case CredentialType.REFRESH_TOKEN:\r\n if (RefreshTokenEntity.isRefreshTokenEntity(credObj)) {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - refreshToken found, saving key to token key map\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - refreshToken with key: \" + key + \" found, saving key to token key map\");\r\n var refreshTokenEntity = CacheManager.toObject(new RefreshTokenEntity(), credObj);\r\n var newKey = _this.updateCredentialCacheKey(key, refreshTokenEntity);\r\n _this.addTokenKey(newKey, CredentialType.REFRESH_TOKEN);\r\n return;\r\n }\r\n else {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - key found matching refreshToken schema with value containing refreshToken credentialType field but value failed RefreshTokenEntity validation, skipping.\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - failed refreshToken validation on key: \" + key);\r\n }\r\n break;\r\n // If credentialType isn't one of our predefined ones, it may not be an MSAL cache value. Ignore.\r\n }\r\n }\r\n }\r\n }\r\n if (_this.isAccountKey(key)) {\r\n var value = _this.getItem(key);\r\n if (value) {\r\n var accountObj = _this.validateAndParseJson(value);\r\n if (accountObj && AccountEntity.isAccountEntity(accountObj)) {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - account found, saving key to account key map\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - account with key: \" + key + \" found, saving key to account key map\");\r\n _this.addAccountKeyToMap(key);\r\n }\r\n }\r\n }\r\n });\r\n };\r\n /**\r\n * Parses passed value as JSON object, JSON.parse() will throw an error.\r\n * @param input\r\n */\r\n BrowserCacheManager.prototype.validateAndParseJson = function (jsonValue) {\r\n try {\r\n var parsedJson = JSON.parse(jsonValue);\r\n /**\r\n * There are edge cases in which JSON.parse will successfully parse a non-valid JSON object\r\n * (e.g. JSON.parse will parse an escaped string into an unescaped string), so adding a type check\r\n * of the parsed value is necessary in order to be certain that the string represents a valid JSON object.\r\n *\r\n */\r\n return (parsedJson && typeof parsedJson === \"object\") ? parsedJson : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n };\r\n /**\r\n * fetches the entry from the browser storage based off the key\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getItem = function (key) {\r\n return this.browserStorage.getItem(key);\r\n };\r\n /**\r\n * sets the entry in the browser storage\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setItem = function (key, value) {\r\n this.browserStorage.setItem(key, value);\r\n };\r\n /**\r\n * fetch the account entity from the platform cache\r\n * @param accountKey\r\n */\r\n BrowserCacheManager.prototype.getAccount = function (accountKey) {\r\n this.logger.trace(\"BrowserCacheManager.getAccount called\");\r\n var account = this.getItem(accountKey);\r\n if (!account) {\r\n this.removeAccountKeyFromMap(accountKey);\r\n return null;\r\n }\r\n var parsedAccount = this.validateAndParseJson(account);\r\n if (!parsedAccount || !AccountEntity.isAccountEntity(parsedAccount)) {\r\n this.removeAccountKeyFromMap(accountKey);\r\n return null;\r\n }\r\n return CacheManager.toObject(new AccountEntity(), parsedAccount);\r\n };\r\n /**\r\n * set account entity in the platform cache\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setAccount = function (account) {\r\n this.logger.trace(\"BrowserCacheManager.setAccount called\");\r\n var key = account.generateAccountKey();\r\n this.setItem(key, JSON.stringify(account));\r\n this.addAccountKeyToMap(key);\r\n };\r\n /**\r\n * Returns the array of account keys currently cached\r\n * @returns\r\n */\r\n BrowserCacheManager.prototype.getAccountKeys = function () {\r\n this.logger.trace(\"BrowserCacheManager.getAccountKeys called\");\r\n var accountKeys = this.getItem(StaticCacheKeys.ACCOUNT_KEYS);\r\n if (accountKeys) {\r\n return JSON.parse(accountKeys);\r\n }\r\n this.logger.verbose(\"BrowserCacheManager.getAccountKeys - No account keys found\");\r\n return [];\r\n };\r\n /**\r\n * Add a new account to the key map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.addAccountKeyToMap = function (key) {\r\n this.logger.trace(\"BrowserCacheManager.addAccountKeyToMap called\");\r\n this.logger.tracePii(\"BrowserCacheManager.addAccountKeyToMap called with key: \" + key);\r\n var accountKeys = this.getAccountKeys();\r\n if (accountKeys.indexOf(key) === -1) {\r\n // Only add key if it does not already exist in the map\r\n accountKeys.push(key);\r\n this.setItem(StaticCacheKeys.ACCOUNT_KEYS, JSON.stringify(accountKeys));\r\n this.logger.verbose(\"BrowserCacheManager.addAccountKeyToMap account key added\");\r\n }\r\n else {\r\n this.logger.verbose(\"BrowserCacheManager.addAccountKeyToMap account key already exists in map\");\r\n }\r\n };\r\n /**\r\n * Remove an account from the key map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeAccountKeyFromMap = function (key) {\r\n this.logger.trace(\"BrowserCacheManager.removeAccountKeyFromMap called\");\r\n this.logger.tracePii(\"BrowserCacheManager.removeAccountKeyFromMap called with key: \" + key);\r\n var accountKeys = this.getAccountKeys();\r\n var removalIndex = accountKeys.indexOf(key);\r\n if (removalIndex > -1) {\r\n accountKeys.splice(removalIndex, 1);\r\n this.setItem(StaticCacheKeys.ACCOUNT_KEYS, JSON.stringify(accountKeys));\r\n this.logger.trace(\"BrowserCacheManager.removeAccountKeyFromMap account key removed\");\r\n }\r\n else {\r\n this.logger.trace(\"BrowserCacheManager.removeAccountKeyFromMap key not found in existing map\");\r\n }\r\n };\r\n /**\r\n * Extends inherited removeAccount function to include removal of the account key from the map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeAccount = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n _super.prototype.removeAccount.call(this, key);\r\n this.removeAccountKeyFromMap(key);\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Removes given idToken from the cache and from the key map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeIdToken = function (key) {\r\n _super.prototype.removeIdToken.call(this, key);\r\n this.removeTokenKey(key, CredentialType.ID_TOKEN);\r\n };\r\n /**\r\n * Removes given accessToken from the cache and from the key map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeAccessToken = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n _super.prototype.removeAccessToken.call(this, key);\r\n this.removeTokenKey(key, CredentialType.ACCESS_TOKEN);\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Removes given refreshToken from the cache and from the key map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeRefreshToken = function (key) {\r\n _super.prototype.removeRefreshToken.call(this, key);\r\n this.removeTokenKey(key, CredentialType.REFRESH_TOKEN);\r\n };\r\n /**\r\n * Gets the keys for the cached tokens associated with this clientId\r\n * @returns\r\n */\r\n BrowserCacheManager.prototype.getTokenKeys = function () {\r\n this.logger.trace(\"BrowserCacheManager.getTokenKeys called\");\r\n var item = this.getItem(StaticCacheKeys.TOKEN_KEYS + \".\" + this.clientId);\r\n if (item) {\r\n var tokenKeys = this.validateAndParseJson(item);\r\n if (tokenKeys &&\r\n tokenKeys.hasOwnProperty(\"idToken\") &&\r\n tokenKeys.hasOwnProperty(\"accessToken\") &&\r\n tokenKeys.hasOwnProperty(\"refreshToken\")) {\r\n return tokenKeys;\r\n }\r\n else {\r\n this.logger.error(\"BrowserCacheManager.getTokenKeys - Token keys found but in an unknown format. Returning empty key map.\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"BrowserCacheManager.getTokenKeys - No token keys found\");\r\n }\r\n return {\r\n idToken: [],\r\n accessToken: [],\r\n refreshToken: []\r\n };\r\n };\r\n /**\r\n * Adds the given key to the token key map\r\n * @param key\r\n * @param type\r\n */\r\n BrowserCacheManager.prototype.addTokenKey = function (key, type) {\r\n this.logger.trace(\"BrowserCacheManager addTokenKey called\");\r\n var tokenKeys = this.getTokenKeys();\r\n switch (type) {\r\n case CredentialType.ID_TOKEN:\r\n if (tokenKeys.idToken.indexOf(key) === -1) {\r\n this.logger.info(\"BrowserCacheManager: addTokenKey - idToken added to map\");\r\n tokenKeys.idToken.push(key);\r\n }\r\n break;\r\n case CredentialType.ACCESS_TOKEN:\r\n if (tokenKeys.accessToken.indexOf(key) === -1) {\r\n this.logger.info(\"BrowserCacheManager: addTokenKey - accessToken added to map\");\r\n tokenKeys.accessToken.push(key);\r\n }\r\n break;\r\n case CredentialType.REFRESH_TOKEN:\r\n if (tokenKeys.refreshToken.indexOf(key) === -1) {\r\n this.logger.info(\"BrowserCacheManager: addTokenKey - refreshToken added to map\");\r\n tokenKeys.refreshToken.push(key);\r\n }\r\n break;\r\n default:\r\n this.logger.error(\"BrowserCacheManager:addTokenKey - CredentialType provided invalid. CredentialType: \" + type);\r\n ClientAuthError.createUnexpectedCredentialTypeError();\r\n }\r\n this.setItem(StaticCacheKeys.TOKEN_KEYS + \".\" + this.clientId, JSON.stringify(tokenKeys));\r\n };\r\n /**\r\n * Removes the given key from the token key map\r\n * @param key\r\n * @param type\r\n */\r\n BrowserCacheManager.prototype.removeTokenKey = function (key, type) {\r\n this.logger.trace(\"BrowserCacheManager removeTokenKey called\");\r\n var tokenKeys = this.getTokenKeys();\r\n switch (type) {\r\n case CredentialType.ID_TOKEN:\r\n this.logger.infoPii(\"BrowserCacheManager: removeTokenKey - attempting to remove idToken with key: \" + key + \" from map\");\r\n var idRemoval = tokenKeys.idToken.indexOf(key);\r\n if (idRemoval > -1) {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - idToken removed from map\");\r\n tokenKeys.idToken.splice(idRemoval, 1);\r\n }\r\n else {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - idToken does not exist in map. Either it was previously removed or it was never added.\");\r\n }\r\n break;\r\n case CredentialType.ACCESS_TOKEN:\r\n this.logger.infoPii(\"BrowserCacheManager: removeTokenKey - attempting to remove accessToken with key: \" + key + \" from map\");\r\n var accessRemoval = tokenKeys.accessToken.indexOf(key);\r\n if (accessRemoval > -1) {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - accessToken removed from map\");\r\n tokenKeys.accessToken.splice(accessRemoval, 1);\r\n }\r\n else {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - accessToken does not exist in map. Either it was previously removed or it was never added.\");\r\n }\r\n break;\r\n case CredentialType.REFRESH_TOKEN:\r\n this.logger.infoPii(\"BrowserCacheManager: removeTokenKey - attempting to remove refreshToken with key: \" + key + \" from map\");\r\n var refreshRemoval = tokenKeys.refreshToken.indexOf(key);\r\n if (refreshRemoval > -1) {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - refreshToken removed from map\");\r\n tokenKeys.refreshToken.splice(refreshRemoval, 1);\r\n }\r\n else {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - refreshToken does not exist in map. Either it was previously removed or it was never added.\");\r\n }\r\n break;\r\n default:\r\n this.logger.error(\"BrowserCacheManager:removeTokenKey - CredentialType provided invalid. CredentialType: \" + type);\r\n ClientAuthError.createUnexpectedCredentialTypeError();\r\n }\r\n this.setItem(StaticCacheKeys.TOKEN_KEYS + \".\" + this.clientId, JSON.stringify(tokenKeys));\r\n };\r\n /**\r\n * generates idToken entity from a string\r\n * @param idTokenKey\r\n */\r\n BrowserCacheManager.prototype.getIdTokenCredential = function (idTokenKey) {\r\n var value = this.getItem(idTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(idTokenKey, CredentialType.ID_TOKEN);\r\n return null;\r\n }\r\n var parsedIdToken = this.validateAndParseJson(value);\r\n if (!parsedIdToken || !IdTokenEntity.isIdTokenEntity(parsedIdToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(idTokenKey, CredentialType.ID_TOKEN);\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: cache hit\");\r\n return CacheManager.toObject(new IdTokenEntity(), parsedIdToken);\r\n };\r\n /**\r\n * set IdToken credential to the platform cache\r\n * @param idToken\r\n */\r\n BrowserCacheManager.prototype.setIdTokenCredential = function (idToken) {\r\n this.logger.trace(\"BrowserCacheManager.setIdTokenCredential called\");\r\n var idTokenKey = idToken.generateCredentialKey();\r\n this.setItem(idTokenKey, JSON.stringify(idToken));\r\n this.addTokenKey(idTokenKey, CredentialType.ID_TOKEN);\r\n };\r\n /**\r\n * generates accessToken entity from a string\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getAccessTokenCredential = function (accessTokenKey) {\r\n var value = this.getItem(accessTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(accessTokenKey, CredentialType.ACCESS_TOKEN);\r\n return null;\r\n }\r\n var parsedAccessToken = this.validateAndParseJson(value);\r\n if (!parsedAccessToken || !AccessTokenEntity.isAccessTokenEntity(parsedAccessToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(accessTokenKey, CredentialType.ACCESS_TOKEN);\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: cache hit\");\r\n return CacheManager.toObject(new AccessTokenEntity(), parsedAccessToken);\r\n };\r\n /**\r\n * set accessToken credential to the platform cache\r\n * @param accessToken\r\n */\r\n BrowserCacheManager.prototype.setAccessTokenCredential = function (accessToken) {\r\n this.logger.trace(\"BrowserCacheManager.setAccessTokenCredential called\");\r\n var accessTokenKey = accessToken.generateCredentialKey();\r\n this.setItem(accessTokenKey, JSON.stringify(accessToken));\r\n this.addTokenKey(accessTokenKey, CredentialType.ACCESS_TOKEN);\r\n };\r\n /**\r\n * generates refreshToken entity from a string\r\n * @param refreshTokenKey\r\n */\r\n BrowserCacheManager.prototype.getRefreshTokenCredential = function (refreshTokenKey) {\r\n var value = this.getItem(refreshTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(refreshTokenKey, CredentialType.REFRESH_TOKEN);\r\n return null;\r\n }\r\n var parsedRefreshToken = this.validateAndParseJson(value);\r\n if (!parsedRefreshToken || !RefreshTokenEntity.isRefreshTokenEntity(parsedRefreshToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(refreshTokenKey, CredentialType.REFRESH_TOKEN);\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: cache hit\");\r\n return CacheManager.toObject(new RefreshTokenEntity(), parsedRefreshToken);\r\n };\r\n /**\r\n * set refreshToken credential to the platform cache\r\n * @param refreshToken\r\n */\r\n BrowserCacheManager.prototype.setRefreshTokenCredential = function (refreshToken) {\r\n this.logger.trace(\"BrowserCacheManager.setRefreshTokenCredential called\");\r\n var refreshTokenKey = refreshToken.generateCredentialKey();\r\n this.setItem(refreshTokenKey, JSON.stringify(refreshToken));\r\n this.addTokenKey(refreshTokenKey, CredentialType.REFRESH_TOKEN);\r\n };\r\n /**\r\n * fetch appMetadata entity from the platform cache\r\n * @param appMetadataKey\r\n */\r\n BrowserCacheManager.prototype.getAppMetadata = function (appMetadataKey) {\r\n var value = this.getItem(appMetadataKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (!parsedMetadata || !AppMetadataEntity.isAppMetadataEntity(appMetadataKey, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: cache hit\");\r\n return CacheManager.toObject(new AppMetadataEntity(), parsedMetadata);\r\n };\r\n /**\r\n * set appMetadata entity to the platform cache\r\n * @param appMetadata\r\n */\r\n BrowserCacheManager.prototype.setAppMetadata = function (appMetadata) {\r\n this.logger.trace(\"BrowserCacheManager.setAppMetadata called\");\r\n var appMetadataKey = appMetadata.generateAppMetadataKey();\r\n this.setItem(appMetadataKey, JSON.stringify(appMetadata));\r\n };\r\n /**\r\n * fetch server telemetry entity from the platform cache\r\n * @param serverTelemetryKey\r\n */\r\n BrowserCacheManager.prototype.getServerTelemetry = function (serverTelemetryKey) {\r\n var value = this.getItem(serverTelemetryKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (!parsedMetadata || !ServerTelemetryEntity.isServerTelemetryEntity(serverTelemetryKey, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: cache hit\");\r\n return CacheManager.toObject(new ServerTelemetryEntity(), parsedMetadata);\r\n };\r\n /**\r\n * set server telemetry entity to the platform cache\r\n * @param serverTelemetryKey\r\n * @param serverTelemetry\r\n */\r\n BrowserCacheManager.prototype.setServerTelemetry = function (serverTelemetryKey, serverTelemetry) {\r\n this.logger.trace(\"BrowserCacheManager.setServerTelemetry called\");\r\n this.setItem(serverTelemetryKey, JSON.stringify(serverTelemetry));\r\n };\r\n /**\r\n *\r\n */\r\n BrowserCacheManager.prototype.getAuthorityMetadata = function (key) {\r\n var value = this.internalStorage.getItem(key);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (parsedMetadata && AuthorityMetadataEntity.isAuthorityMetadataEntity(key, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: cache hit\");\r\n return CacheManager.toObject(new AuthorityMetadataEntity(), parsedMetadata);\r\n }\r\n return null;\r\n };\r\n /**\r\n *\r\n */\r\n BrowserCacheManager.prototype.getAuthorityMetadataKeys = function () {\r\n var _this = this;\r\n var allKeys = this.internalStorage.getKeys();\r\n return allKeys.filter(function (key) {\r\n return _this.isAuthorityMetadata(key);\r\n });\r\n };\r\n /**\r\n * Sets wrapper metadata in memory\r\n * @param wrapperSKU\r\n * @param wrapperVersion\r\n */\r\n BrowserCacheManager.prototype.setWrapperMetadata = function (wrapperSKU, wrapperVersion) {\r\n this.internalStorage.setItem(InMemoryCacheKeys.WRAPPER_SKU, wrapperSKU);\r\n this.internalStorage.setItem(InMemoryCacheKeys.WRAPPER_VER, wrapperVersion);\r\n };\r\n /**\r\n * Returns wrapper metadata from in-memory storage\r\n */\r\n BrowserCacheManager.prototype.getWrapperMetadata = function () {\r\n var sku = this.internalStorage.getItem(InMemoryCacheKeys.WRAPPER_SKU) || Constants.EMPTY_STRING;\r\n var version = this.internalStorage.getItem(InMemoryCacheKeys.WRAPPER_VER) || Constants.EMPTY_STRING;\r\n return [sku, version];\r\n };\r\n /**\r\n *\r\n * @param entity\r\n */\r\n BrowserCacheManager.prototype.setAuthorityMetadata = function (key, entity) {\r\n this.logger.trace(\"BrowserCacheManager.setAuthorityMetadata called\");\r\n this.internalStorage.setItem(key, JSON.stringify(entity));\r\n };\r\n /**\r\n * Gets the active account\r\n */\r\n BrowserCacheManager.prototype.getActiveAccount = function () {\r\n var activeAccountKeyFilters = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT_FILTERS);\r\n var activeAccountValueFilters = this.getItem(activeAccountKeyFilters);\r\n if (!activeAccountValueFilters) {\r\n // if new active account cache type isn't found, it's an old version, so look for that instead\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: No active account filters cache schema found, looking for legacy schema\");\r\n var activeAccountKeyLocal = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT);\r\n var activeAccountValueLocal = this.getItem(activeAccountKeyLocal);\r\n if (!activeAccountValueLocal) {\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: No active account found\");\r\n return null;\r\n }\r\n var activeAccount = this.getAccountInfoByFilter({ localAccountId: activeAccountValueLocal })[0] || null;\r\n if (activeAccount) {\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: Legacy active account cache schema found\");\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: Adding active account filters cache schema\");\r\n this.setActiveAccount(activeAccount);\r\n return activeAccount;\r\n }\r\n return null;\r\n }\r\n var activeAccountValueObj = this.validateAndParseJson(activeAccountValueFilters);\r\n if (activeAccountValueObj) {\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: Active account filters schema found\");\r\n return this.getAccountInfoByFilter({\r\n homeAccountId: activeAccountValueObj.homeAccountId,\r\n localAccountId: activeAccountValueObj.localAccountId\r\n })[0] || null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: No active account found\");\r\n return null;\r\n };\r\n /**\r\n * Sets the active account's localAccountId in cache\r\n * @param account\r\n */\r\n BrowserCacheManager.prototype.setActiveAccount = function (account) {\r\n var activeAccountKey = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT_FILTERS);\r\n var activeAccountKeyLocal = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT);\r\n if (account) {\r\n this.logger.verbose(\"setActiveAccount: Active account set\");\r\n var activeAccountValue = {\r\n homeAccountId: account.homeAccountId,\r\n localAccountId: account.localAccountId\r\n };\r\n this.browserStorage.setItem(activeAccountKey, JSON.stringify(activeAccountValue));\r\n this.browserStorage.setItem(activeAccountKeyLocal, account.localAccountId);\r\n }\r\n else {\r\n this.logger.verbose(\"setActiveAccount: No account passed, active account not set\");\r\n this.browserStorage.removeItem(activeAccountKey);\r\n this.browserStorage.removeItem(activeAccountKeyLocal);\r\n }\r\n };\r\n /**\r\n * Gets a list of accounts that match all of the filters provided\r\n * @param account\r\n */\r\n BrowserCacheManager.prototype.getAccountInfoByFilter = function (accountFilter) {\r\n var allAccounts = this.getAllAccounts();\r\n this.logger.trace(\"BrowserCacheManager.getAccountInfoByFilter: total \" + allAccounts.length + \" accounts found\");\r\n return allAccounts.filter(function (accountObj) {\r\n if (accountFilter.username && accountFilter.username.toLowerCase() !== accountObj.username.toLowerCase()) {\r\n return false;\r\n }\r\n if (accountFilter.homeAccountId && accountFilter.homeAccountId !== accountObj.homeAccountId) {\r\n return false;\r\n }\r\n if (accountFilter.localAccountId && accountFilter.localAccountId !== accountObj.localAccountId) {\r\n return false;\r\n }\r\n if (accountFilter.tenantId && accountFilter.tenantId !== accountObj.tenantId) {\r\n return false;\r\n }\r\n if (accountFilter.environment && accountFilter.environment !== accountObj.environment) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n };\r\n /**\r\n * Checks the cache for accounts matching loginHint or SID\r\n * @param loginHint\r\n * @param sid\r\n */\r\n BrowserCacheManager.prototype.getAccountInfoByHints = function (loginHint, sid) {\r\n var matchingAccounts = this.getAllAccounts().filter(function (accountInfo) {\r\n if (sid) {\r\n var accountSid = accountInfo.idTokenClaims && accountInfo.idTokenClaims[\"sid\"];\r\n return sid === accountSid;\r\n }\r\n if (loginHint) {\r\n return loginHint === accountInfo.username;\r\n }\r\n return false;\r\n });\r\n if (matchingAccounts.length === 1) {\r\n return matchingAccounts[0];\r\n }\r\n else if (matchingAccounts.length > 1) {\r\n throw ClientAuthError.createMultipleMatchingAccountsInCacheError();\r\n }\r\n return null;\r\n };\r\n /**\r\n * fetch throttling entity from the platform cache\r\n * @param throttlingCacheKey\r\n */\r\n BrowserCacheManager.prototype.getThrottlingCache = function (throttlingCacheKey) {\r\n var value = this.getItem(throttlingCacheKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedThrottlingCache = this.validateAndParseJson(value);\r\n if (!parsedThrottlingCache || !ThrottlingEntity.isThrottlingEntity(throttlingCacheKey, parsedThrottlingCache)) {\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: cache hit\");\r\n return CacheManager.toObject(new ThrottlingEntity(), parsedThrottlingCache);\r\n };\r\n /**\r\n * set throttling entity to the platform cache\r\n * @param throttlingCacheKey\r\n * @param throttlingCache\r\n */\r\n BrowserCacheManager.prototype.setThrottlingCache = function (throttlingCacheKey, throttlingCache) {\r\n this.logger.trace(\"BrowserCacheManager.setThrottlingCache called\");\r\n this.setItem(throttlingCacheKey, JSON.stringify(throttlingCache));\r\n };\r\n /**\r\n * Gets cache item with given key.\r\n * Will retrieve from cookies if storeAuthStateInCookie is set to true.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getTemporaryCache = function (cacheKey, generateKey) {\r\n var key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n var itemCookie = this.getItemCookie(key);\r\n if (itemCookie) {\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: storeAuthStateInCookies set to true, retrieving from cookies\");\r\n return itemCookie;\r\n }\r\n }\r\n var value = this.temporaryCacheStorage.getItem(key);\r\n if (!value) {\r\n // If temp cache item not found in session/memory, check local storage for items set by old versions\r\n if (this.cacheConfig.cacheLocation === BrowserCacheLocation.LocalStorage) {\r\n var item = this.browserStorage.getItem(key);\r\n if (item) {\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item found in local storage\");\r\n return item;\r\n }\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: No cache item found in local storage\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item returned\");\r\n return value;\r\n };\r\n /**\r\n * Sets the cache item with the key and value given.\r\n * Stores in cookie if storeAuthStateInCookie is set to true.\r\n * This can cause cookie overflow if used incorrectly.\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setTemporaryCache = function (cacheKey, value, generateKey) {\r\n var key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n this.temporaryCacheStorage.setItem(key, value);\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n this.logger.trace(\"BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie\");\r\n this.setItemCookie(key, value);\r\n }\r\n };\r\n /**\r\n * Removes the cache item with the given key.\r\n * Will also clear the cookie item if storeAuthStateInCookie is set to true.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeItem = function (key) {\r\n this.browserStorage.removeItem(key);\r\n this.temporaryCacheStorage.removeItem(key);\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n this.logger.trace(\"BrowserCacheManager.removeItem: storeAuthStateInCookie is true, clearing item cookie\");\r\n this.clearItemCookie(key);\r\n }\r\n };\r\n /**\r\n * Checks whether key is in cache.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.containsKey = function (key) {\r\n return this.browserStorage.containsKey(key) || this.temporaryCacheStorage.containsKey(key);\r\n };\r\n /**\r\n * Gets all keys in window.\r\n */\r\n BrowserCacheManager.prototype.getKeys = function () {\r\n return __spread(this.browserStorage.getKeys(), this.temporaryCacheStorage.getKeys());\r\n };\r\n /**\r\n * Clears all cache entries created by MSAL.\r\n */\r\n BrowserCacheManager.prototype.clear = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: \r\n // Removes all accounts and their credentials\r\n return [4 /*yield*/, this.removeAllAccounts()];\r\n case 1:\r\n // Removes all accounts and their credentials\r\n _a.sent();\r\n this.removeAppMetadata();\r\n // Removes all remaining MSAL cache items\r\n this.getKeys().forEach(function (cacheKey) {\r\n // Check if key contains msal prefix; For now, we are clearing all the cache items created by MSAL.js\r\n if ((_this.browserStorage.containsKey(cacheKey) || _this.temporaryCacheStorage.containsKey(cacheKey)) && ((cacheKey.indexOf(Constants.CACHE_PREFIX) !== -1) || (cacheKey.indexOf(_this.clientId) !== -1))) {\r\n _this.removeItem(cacheKey);\r\n }\r\n });\r\n this.internalStorage.clear();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Add value to cookies\r\n * @param cookieName\r\n * @param cookieValue\r\n * @param expires\r\n */\r\n BrowserCacheManager.prototype.setItemCookie = function (cookieName, cookieValue, expires) {\r\n var cookieStr = encodeURIComponent(cookieName) + \"=\" + encodeURIComponent(cookieValue) + \";path=/;SameSite=Lax;\";\r\n if (expires) {\r\n var expireTime = this.getCookieExpirationTime(expires);\r\n cookieStr += \"expires=\" + expireTime + \";\";\r\n }\r\n if (this.cacheConfig.secureCookies) {\r\n cookieStr += \"Secure;\";\r\n }\r\n document.cookie = cookieStr;\r\n };\r\n /**\r\n * Get one item by key from cookies\r\n * @param cookieName\r\n */\r\n BrowserCacheManager.prototype.getItemCookie = function (cookieName) {\r\n var name = encodeURIComponent(cookieName) + \"=\";\r\n var cookieList = document.cookie.split(\";\");\r\n for (var i = 0; i < cookieList.length; i++) {\r\n var cookie = cookieList[i];\r\n while (cookie.charAt(0) === \" \") {\r\n cookie = cookie.substring(1);\r\n }\r\n if (cookie.indexOf(name) === 0) {\r\n return decodeURIComponent(cookie.substring(name.length, cookie.length));\r\n }\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n /**\r\n * Clear all msal-related cookies currently set in the browser. Should only be used to clear temporary cache items.\r\n */\r\n BrowserCacheManager.prototype.clearMsalCookies = function () {\r\n var _this = this;\r\n var cookiePrefix = Constants.CACHE_PREFIX + \".\" + this.clientId;\r\n var cookieList = document.cookie.split(\";\");\r\n cookieList.forEach(function (cookie) {\r\n while (cookie.charAt(0) === \" \") {\r\n // eslint-disable-next-line no-param-reassign\r\n cookie = cookie.substring(1);\r\n }\r\n if (cookie.indexOf(cookiePrefix) === 0) {\r\n var cookieKey = cookie.split(\"=\")[0];\r\n _this.clearItemCookie(cookieKey);\r\n }\r\n });\r\n };\r\n /**\r\n * Clear an item in the cookies by key\r\n * @param cookieName\r\n */\r\n BrowserCacheManager.prototype.clearItemCookie = function (cookieName) {\r\n this.setItemCookie(cookieName, Constants.EMPTY_STRING, -1);\r\n };\r\n /**\r\n * Get cookie expiration time\r\n * @param cookieLifeDays\r\n */\r\n BrowserCacheManager.prototype.getCookieExpirationTime = function (cookieLifeDays) {\r\n var today = new Date();\r\n var expr = new Date(today.getTime() + cookieLifeDays * this.COOKIE_LIFE_MULTIPLIER);\r\n return expr.toUTCString();\r\n };\r\n /**\r\n * Gets the cache object referenced by the browser\r\n */\r\n BrowserCacheManager.prototype.getCache = function () {\r\n return this.browserStorage;\r\n };\r\n /**\r\n * interface compat, we cannot overwrite browser cache; Functionality is supported by individual entities in browser\r\n */\r\n BrowserCacheManager.prototype.setCache = function () {\r\n // sets nothing\r\n };\r\n /**\r\n * Prepend msal. to each key; Skip for any JSON object as Key (defined schemas do not need the key appended: AccessToken Keys or the upcoming schema)\r\n * @param key\r\n * @param addInstanceId\r\n */\r\n BrowserCacheManager.prototype.generateCacheKey = function (key) {\r\n var generatedKey = this.validateAndParseJson(key);\r\n if (!generatedKey) {\r\n if (StringUtils.startsWith(key, Constants.CACHE_PREFIX) || StringUtils.startsWith(key, PersistentCacheKeys.ADAL_ID_TOKEN)) {\r\n return key;\r\n }\r\n return Constants.CACHE_PREFIX + \".\" + this.clientId + \".\" + key;\r\n }\r\n return JSON.stringify(key);\r\n };\r\n /**\r\n * Create authorityKey to cache authority\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.generateAuthorityKey = function (stateString) {\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.AUTHORITY + \".\" + stateId);\r\n };\r\n /**\r\n * Create Nonce key to cache nonce\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.generateNonceKey = function (stateString) {\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.NONCE_IDTOKEN + \".\" + stateId);\r\n };\r\n /**\r\n * Creates full cache key for the request state\r\n * @param stateString State string for the request\r\n */\r\n BrowserCacheManager.prototype.generateStateKey = function (stateString) {\r\n // Use the library state id to key temp storage for uniqueness for multiple concurrent requests\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.REQUEST_STATE + \".\" + stateId);\r\n };\r\n /**\r\n * Gets the cached authority based on the cached state. Returns empty if no cached state found.\r\n */\r\n BrowserCacheManager.prototype.getCachedAuthority = function (cachedState) {\r\n var stateCacheKey = this.generateStateKey(cachedState);\r\n var state = this.getTemporaryCache(stateCacheKey);\r\n if (!state) {\r\n return null;\r\n }\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n return this.getTemporaryCache(authorityCacheKey);\r\n };\r\n /**\r\n * Updates account, authority, and state in cache\r\n * @param serverAuthenticationRequest\r\n * @param account\r\n */\r\n BrowserCacheManager.prototype.updateCacheEntries = function (state, nonce, authorityInstance, loginHint, account) {\r\n this.logger.trace(\"BrowserCacheManager.updateCacheEntries called\");\r\n // Cache the request state\r\n var stateCacheKey = this.generateStateKey(state);\r\n this.setTemporaryCache(stateCacheKey, state, false);\r\n // Cache the nonce\r\n var nonceCacheKey = this.generateNonceKey(state);\r\n this.setTemporaryCache(nonceCacheKey, nonce, false);\r\n // Cache authorityKey\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n this.setTemporaryCache(authorityCacheKey, authorityInstance, false);\r\n if (account) {\r\n var ccsCredential = {\r\n credential: account.homeAccountId,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n };\r\n this.setTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, JSON.stringify(ccsCredential), true);\r\n }\r\n else if (!StringUtils.isEmpty(loginHint)) {\r\n var ccsCredential = {\r\n credential: loginHint,\r\n type: CcsCredentialType.UPN\r\n };\r\n this.setTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, JSON.stringify(ccsCredential), true);\r\n }\r\n };\r\n /**\r\n * Reset all temporary cache items\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.resetRequestCache = function (state) {\r\n var _this = this;\r\n this.logger.trace(\"BrowserCacheManager.resetRequestCache called\");\r\n // check state and remove associated cache items\r\n if (!StringUtils.isEmpty(state)) {\r\n this.getKeys().forEach(function (key) {\r\n if (key.indexOf(state) !== -1) {\r\n _this.removeItem(key);\r\n }\r\n });\r\n }\r\n // delete generic interactive request parameters\r\n if (state) {\r\n this.removeItem(this.generateStateKey(state));\r\n this.removeItem(this.generateNonceKey(state));\r\n this.removeItem(this.generateAuthorityKey(state));\r\n }\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.ORIGIN_URI));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.CORRELATION_ID));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.CCS_CREDENTIAL));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.NATIVE_REQUEST));\r\n this.setInteractionInProgress(false);\r\n };\r\n /**\r\n * Removes temporary cache for the provided state\r\n * @param stateString\r\n */\r\n BrowserCacheManager.prototype.cleanRequestByState = function (stateString) {\r\n this.logger.trace(\"BrowserCacheManager.cleanRequestByState called\");\r\n // Interaction is completed - remove interaction status.\r\n if (stateString) {\r\n var stateKey = this.generateStateKey(stateString);\r\n var cachedState = this.temporaryCacheStorage.getItem(stateKey);\r\n this.logger.infoPii(\"BrowserCacheManager.cleanRequestByState: Removing temporary cache items for state: \" + cachedState);\r\n this.resetRequestCache(cachedState || Constants.EMPTY_STRING);\r\n }\r\n this.clearMsalCookies();\r\n };\r\n /**\r\n * Looks in temporary cache for any state values with the provided interactionType and removes all temporary cache items for that state\r\n * Used in scenarios where temp cache needs to be cleaned but state is not known, such as clicking browser back button.\r\n * @param interactionType\r\n */\r\n BrowserCacheManager.prototype.cleanRequestByInteractionType = function (interactionType) {\r\n var _this = this;\r\n this.logger.trace(\"BrowserCacheManager.cleanRequestByInteractionType called\");\r\n // Loop through all keys to find state key\r\n this.getKeys().forEach(function (key) {\r\n // If this key is not the state key, move on\r\n if (key.indexOf(TemporaryCacheKeys.REQUEST_STATE) === -1) {\r\n return;\r\n }\r\n // Retrieve state value, return if not a valid value\r\n var stateValue = _this.temporaryCacheStorage.getItem(key);\r\n if (!stateValue) {\r\n return;\r\n }\r\n // Extract state and ensure it matches given InteractionType, then clean request cache\r\n var parsedState = BrowserProtocolUtils.extractBrowserRequestState(_this.cryptoImpl, stateValue);\r\n if (parsedState && parsedState.interactionType === interactionType) {\r\n _this.logger.infoPii(\"BrowserCacheManager.cleanRequestByInteractionType: Removing temporary cache items for state: \" + stateValue);\r\n _this.resetRequestCache(stateValue);\r\n }\r\n });\r\n this.clearMsalCookies();\r\n this.setInteractionInProgress(false);\r\n };\r\n BrowserCacheManager.prototype.cacheCodeRequest = function (authCodeRequest, browserCrypto) {\r\n this.logger.trace(\"BrowserCacheManager.cacheCodeRequest called\");\r\n var encodedValue = browserCrypto.base64Encode(JSON.stringify(authCodeRequest));\r\n this.setTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, encodedValue, true);\r\n };\r\n /**\r\n * Gets the token exchange parameters from the cache. Throws an error if nothing is found.\r\n */\r\n BrowserCacheManager.prototype.getCachedRequest = function (state, browserCrypto) {\r\n this.logger.trace(\"BrowserCacheManager.getCachedRequest called\");\r\n // Get token request from cache and parse as TokenExchangeParameters.\r\n var encodedTokenRequest = this.getTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, true);\r\n if (!encodedTokenRequest) {\r\n throw BrowserAuthError.createNoTokenRequestCacheError();\r\n }\r\n var parsedRequest = this.validateAndParseJson(browserCrypto.base64Decode(encodedTokenRequest));\r\n if (!parsedRequest) {\r\n throw BrowserAuthError.createUnableToParseTokenRequestCacheError();\r\n }\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n // Get cached authority and use if no authority is cached with request.\r\n if (StringUtils.isEmpty(parsedRequest.authority)) {\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n var cachedAuthority = this.getTemporaryCache(authorityCacheKey);\r\n if (!cachedAuthority) {\r\n throw BrowserAuthError.createNoCachedAuthorityError();\r\n }\r\n parsedRequest.authority = cachedAuthority;\r\n }\r\n return parsedRequest;\r\n };\r\n /**\r\n * Gets cached native request for redirect flows\r\n */\r\n BrowserCacheManager.prototype.getCachedNativeRequest = function () {\r\n this.logger.trace(\"BrowserCacheManager.getCachedNativeRequest called\");\r\n var cachedRequest = this.getTemporaryCache(TemporaryCacheKeys.NATIVE_REQUEST, true);\r\n if (!cachedRequest) {\r\n this.logger.trace(\"BrowserCacheManager.getCachedNativeRequest: No cached native request found\");\r\n return null;\r\n }\r\n var parsedRequest = this.validateAndParseJson(cachedRequest);\r\n if (!parsedRequest) {\r\n this.logger.error(\"BrowserCacheManager.getCachedNativeRequest: Unable to parse native request\");\r\n return null;\r\n }\r\n return parsedRequest;\r\n };\r\n BrowserCacheManager.prototype.isInteractionInProgress = function (matchClientId) {\r\n var clientId = this.getInteractionInProgress();\r\n if (matchClientId) {\r\n return clientId === this.clientId;\r\n }\r\n else {\r\n return !!clientId;\r\n }\r\n };\r\n BrowserCacheManager.prototype.getInteractionInProgress = function () {\r\n var key = Constants.CACHE_PREFIX + \".\" + TemporaryCacheKeys.INTERACTION_STATUS_KEY;\r\n return this.getTemporaryCache(key, false);\r\n };\r\n BrowserCacheManager.prototype.setInteractionInProgress = function (inProgress) {\r\n // Ensure we don't overwrite interaction in progress for a different clientId\r\n var key = Constants.CACHE_PREFIX + \".\" + TemporaryCacheKeys.INTERACTION_STATUS_KEY;\r\n if (inProgress) {\r\n if (this.getInteractionInProgress()) {\r\n throw BrowserAuthError.createInteractionInProgressError();\r\n }\r\n else {\r\n // No interaction is in progress\r\n this.setTemporaryCache(key, this.clientId, false);\r\n }\r\n }\r\n else if (!inProgress && this.getInteractionInProgress() === this.clientId) {\r\n this.removeItem(key);\r\n }\r\n };\r\n /**\r\n * Returns username retrieved from ADAL or MSAL v1 idToken\r\n */\r\n BrowserCacheManager.prototype.getLegacyLoginHint = function () {\r\n // Only check for adal/msal token if no SSO params are being used\r\n var adalIdTokenString = this.getTemporaryCache(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n if (adalIdTokenString) {\r\n this.browserStorage.removeItem(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n this.logger.verbose(\"Cached ADAL id token retrieved.\");\r\n }\r\n // Check for cached MSAL v1 id token\r\n var msalIdTokenString = this.getTemporaryCache(PersistentCacheKeys.ID_TOKEN, true);\r\n if (msalIdTokenString) {\r\n this.removeItem(this.generateCacheKey(PersistentCacheKeys.ID_TOKEN));\r\n this.logger.verbose(\"Cached MSAL.js v1 id token retrieved\");\r\n }\r\n var cachedIdTokenString = msalIdTokenString || adalIdTokenString;\r\n if (cachedIdTokenString) {\r\n var cachedIdToken = new IdToken(cachedIdTokenString, this.cryptoImpl);\r\n if (cachedIdToken.claims && cachedIdToken.claims.preferred_username) {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 preferred_username as loginHint\");\r\n return cachedIdToken.claims.preferred_username;\r\n }\r\n else if (cachedIdToken.claims && cachedIdToken.claims.upn) {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 upn as loginHint\");\r\n return cachedIdToken.claims.upn;\r\n }\r\n else {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, however, no account hint claim found. Enable preferred_username or upn id token claim to get SSO.\");\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Updates a credential's cache key if the current cache key is outdated\r\n */\r\n BrowserCacheManager.prototype.updateCredentialCacheKey = function (currentCacheKey, credential) {\r\n var updatedCacheKey = credential.generateCredentialKey();\r\n if (currentCacheKey !== updatedCacheKey) {\r\n var cacheItem = this.getItem(currentCacheKey);\r\n if (cacheItem) {\r\n this.removeItem(currentCacheKey);\r\n this.setItem(updatedCacheKey, cacheItem);\r\n this.logger.verbose(\"Updated an outdated \" + credential.credentialType + \" cache key\");\r\n return updatedCacheKey;\r\n }\r\n else {\r\n this.logger.error(\"Attempted to update an outdated \" + credential.credentialType + \" cache key but no item matching the outdated key was found in storage\");\r\n }\r\n }\r\n return currentCacheKey;\r\n };\r\n /**\r\n * Returns application id as redirect context during AcquireTokenRedirect flow.\r\n */\r\n BrowserCacheManager.prototype.getRedirectRequestContext = function () {\r\n return this.getTemporaryCache(TemporaryCacheKeys.REDIRECT_CONTEXT, true);\r\n };\r\n /**\r\n * Sets application id as the redirect context during AcquireTokenRedirect flow.\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setRedirectRequestContext = function (value) {\r\n this.setTemporaryCache(TemporaryCacheKeys.REDIRECT_CONTEXT, value, true);\r\n };\r\n return BrowserCacheManager;\r\n}(CacheManager));\r\nvar DEFAULT_BROWSER_CACHE_MANAGER = function (clientId, logger) {\r\n var cacheOptions = {\r\n cacheLocation: BrowserCacheLocation.MemoryStorage,\r\n temporaryCacheLocation: BrowserCacheLocation.MemoryStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false,\r\n cacheMigrationEnabled: false\r\n };\r\n return new BrowserCacheManager(clientId, cacheOptions, DEFAULT_CRYPTO_IMPLEMENTATION, logger);\r\n};\n\nexport { BrowserCacheManager, DEFAULT_BROWSER_CACHE_MANAGER };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\nimport { BrowserCacheLocation } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserStorage = /** @class */ (function () {\r\n function BrowserStorage(cacheLocation) {\r\n this.validateWindowStorage(cacheLocation);\r\n this.windowStorage = window[cacheLocation];\r\n }\r\n BrowserStorage.prototype.validateWindowStorage = function (cacheLocation) {\r\n if (cacheLocation !== BrowserCacheLocation.LocalStorage && cacheLocation !== BrowserCacheLocation.SessionStorage) {\r\n throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\r\n }\r\n var storageSupported = !!window[cacheLocation];\r\n if (!storageSupported) {\r\n throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\r\n }\r\n };\r\n BrowserStorage.prototype.getItem = function (key) {\r\n return this.windowStorage.getItem(key);\r\n };\r\n BrowserStorage.prototype.setItem = function (key, value) {\r\n this.windowStorage.setItem(key, value);\r\n };\r\n BrowserStorage.prototype.removeItem = function (key) {\r\n this.windowStorage.removeItem(key);\r\n };\r\n BrowserStorage.prototype.getKeys = function () {\r\n return Object.keys(this.windowStorage);\r\n };\r\n BrowserStorage.prototype.containsKey = function (key) {\r\n return this.windowStorage.hasOwnProperty(key);\r\n };\r\n return BrowserStorage;\r\n}());\n\nexport { BrowserStorage };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AsyncMemoryStorage } from './AsyncMemoryStorage.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CryptoKeyStoreNames;\r\n(function (CryptoKeyStoreNames) {\r\n CryptoKeyStoreNames[\"asymmetricKeys\"] = \"asymmetricKeys\";\r\n CryptoKeyStoreNames[\"symmetricKeys\"] = \"symmetricKeys\";\r\n})(CryptoKeyStoreNames || (CryptoKeyStoreNames = {}));\r\n/**\r\n * MSAL CryptoKeyStore DB Version 2\r\n */\r\nvar CryptoKeyStore = /** @class */ (function () {\r\n function CryptoKeyStore(logger) {\r\n this.logger = logger;\r\n this.asymmetricKeys = new AsyncMemoryStorage(this.logger, CryptoKeyStoreNames.asymmetricKeys);\r\n this.symmetricKeys = new AsyncMemoryStorage(this.logger, CryptoKeyStoreNames.symmetricKeys);\r\n }\r\n CryptoKeyStore.prototype.clear = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Delete in-memory keystores\r\n this.asymmetricKeys.clearInMemory();\r\n this.symmetricKeys.clearInMemory();\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.asymmetricKeys.clearPersistent()];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, true];\r\n case 3:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof Error) {\r\n this.logger.error(\"Clearing keystore failed with error: \" + e_1.message);\r\n }\r\n else {\r\n this.logger.error(\"Clearing keystore failed with unknown error\");\r\n }\r\n return [2 /*return*/, false];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return CryptoKeyStore;\r\n}());\n\nexport { CryptoKeyStore, CryptoKeyStoreNames };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { DB_NAME, DB_VERSION, DB_TABLE_NAME } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Storage wrapper for IndexedDB storage in browsers: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API\r\n */\r\nvar DatabaseStorage = /** @class */ (function () {\r\n function DatabaseStorage() {\r\n this.dbName = DB_NAME;\r\n this.version = DB_VERSION;\r\n this.tableName = DB_TABLE_NAME;\r\n this.dbOpen = false;\r\n }\r\n /**\r\n * Opens IndexedDB instance.\r\n */\r\n DatabaseStorage.prototype.open = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var openDB = window.indexedDB.open(_this.dbName, _this.version);\r\n openDB.addEventListener(\"upgradeneeded\", function (e) {\r\n var event = e;\r\n event.target.result.createObjectStore(_this.tableName);\r\n });\r\n openDB.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.db = event.target.result;\r\n _this.dbOpen = true;\r\n resolve();\r\n });\r\n openDB.addEventListener(\"error\", function () { return reject(BrowserAuthError.createDatabaseUnavailableError()); });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Closes the connection to IndexedDB database when all pending transactions\r\n * complete.\r\n */\r\n DatabaseStorage.prototype.closeConnection = function () {\r\n var db = this.db;\r\n if (db && this.dbOpen) {\r\n db.close();\r\n this.dbOpen = false;\r\n }\r\n };\r\n /**\r\n * Opens database if it's not already open\r\n */\r\n DatabaseStorage.prototype.validateDbIsOpen = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!!this.dbOpen) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.open()];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Retrieves item from IndexedDB instance.\r\n * @param key\r\n */\r\n DatabaseStorage.prototype.getItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n // TODO: Add timeouts?\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbGet = objectStore.get(key);\r\n dbGet.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.closeConnection();\r\n resolve(event.target.result);\r\n });\r\n dbGet.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Adds item to IndexedDB under given key\r\n * @param key\r\n * @param payload\r\n */\r\n DatabaseStorage.prototype.setItem = function (key, payload) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n // TODO: Add timeouts?\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readwrite\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbPut = objectStore.put(payload, key);\r\n dbPut.addEventListener(\"success\", function () {\r\n _this.closeConnection();\r\n resolve();\r\n });\r\n dbPut.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes item from IndexedDB under given key\r\n * @param key\r\n */\r\n DatabaseStorage.prototype.removeItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readwrite\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbDelete = objectStore.delete(key);\r\n dbDelete.addEventListener(\"success\", function () {\r\n _this.closeConnection();\r\n resolve();\r\n });\r\n dbDelete.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get all the keys from the storage object as an iterable array of strings.\r\n */\r\n DatabaseStorage.prototype.getKeys = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbGetKeys = objectStore.getAllKeys();\r\n dbGetKeys.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.closeConnection();\r\n resolve(event.target.result);\r\n });\r\n dbGetKeys.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * Checks whether there is an object under the search key in the object store\r\n */\r\n DatabaseStorage.prototype.containsKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbContainsKey = objectStore.count(key);\r\n dbContainsKey.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.closeConnection();\r\n resolve(event.target.result === 1);\r\n });\r\n dbContainsKey.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Deletes the MSAL database. The database is deleted rather than cleared to make it possible\r\n * for client applications to downgrade to a previous MSAL version without worrying about forward compatibility issues\r\n * with IndexedDB database versions.\r\n */\r\n DatabaseStorage.prototype.deleteDatabase = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n // Check if database being deleted exists\r\n if (this.db && this.dbOpen) {\r\n this.closeConnection();\r\n }\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var deleteDbRequest = window.indexedDB.deleteDatabase(DB_NAME);\r\n deleteDbRequest.addEventListener(\"success\", function () { return resolve(true); });\r\n deleteDbRequest.addEventListener(\"blocked\", function () { return resolve(true); });\r\n deleteDbRequest.addEventListener(\"error\", function () { return reject(false); });\r\n })];\r\n });\r\n });\r\n };\r\n return DatabaseStorage;\r\n}());\n\nexport { DatabaseStorage };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar MemoryStorage = /** @class */ (function () {\r\n function MemoryStorage() {\r\n this.cache = new Map();\r\n }\r\n MemoryStorage.prototype.getItem = function (key) {\r\n return this.cache.get(key) || null;\r\n };\r\n MemoryStorage.prototype.setItem = function (key, value) {\r\n this.cache.set(key, value);\r\n };\r\n MemoryStorage.prototype.removeItem = function (key) {\r\n this.cache.delete(key);\r\n };\r\n MemoryStorage.prototype.getKeys = function () {\r\n var cacheKeys = [];\r\n this.cache.forEach(function (value, key) {\r\n cacheKeys.push(key);\r\n });\r\n return cacheKeys;\r\n };\r\n MemoryStorage.prototype.containsKey = function (key) {\r\n return this.cache.has(key);\r\n };\r\n MemoryStorage.prototype.clear = function () {\r\n this.cache.clear();\r\n };\r\n return MemoryStorage;\r\n}());\n\nexport { MemoryStorage };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { AuthToken, CacheRecord, Authority, AccountEntity, IdTokenEntity, ScopeSet, AccessTokenEntity, RefreshTokenEntity, Constants } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Token cache manager\r\n */\r\nvar TokenCache = /** @class */ (function () {\r\n function TokenCache(configuration, storage, logger, cryptoObj) {\r\n this.isBrowserEnvironment = typeof window !== \"undefined\";\r\n this.config = configuration;\r\n this.storage = storage;\r\n this.logger = logger;\r\n this.cryptoObj = cryptoObj;\r\n }\r\n // Move getAllAccounts here and cache utility APIs\r\n /**\r\n * API to load tokens to msal-browser cache.\r\n * @param request\r\n * @param response\r\n * @param options\r\n * @returns `AuthenticationResult` for the response that was loaded.\r\n */\r\n TokenCache.prototype.loadExternalTokens = function (request, response, options) {\r\n this.logger.info(\"TokenCache - loadExternalTokens called\");\r\n if (!response.id_token) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please ensure server response includes id token.\");\r\n }\r\n var idToken = new AuthToken(response.id_token, this.cryptoObj);\r\n var cacheRecord;\r\n var authority;\r\n if (request.account) {\r\n var cacheRecordAccount = this.loadAccount(idToken, request.account.environment, undefined, undefined, request.account.homeAccountId);\r\n cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(idToken, cacheRecordAccount.homeAccountId, request.account.environment, request.account.tenantId), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, request.account.environment, request.account.tenantId, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, request.account.environment));\r\n }\r\n else if (request.authority) {\r\n var authorityUrl = Authority.generateAuthority(request.authority, request.azureCloudOptions);\r\n var authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata,\r\n skipAuthorityMetadataCache: this.config.auth.skipAuthorityMetadataCache,\r\n };\r\n authority = new Authority(authorityUrl, this.config.system.networkClient, this.storage, authorityOptions, this.logger);\r\n // \"clientInfo\" from options takes precedence over \"clientInfo\" in response\r\n if (options.clientInfo) {\r\n this.logger.trace(\"TokenCache - homeAccountId from options\");\r\n var cacheRecordAccount = this.loadAccount(idToken, authority.hostnameAndPort, options.clientInfo, authority.authorityType);\r\n cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(idToken, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort));\r\n }\r\n else if (response.client_info) {\r\n this.logger.trace(\"TokenCache - homeAccountId from response\");\r\n var cacheRecordAccount = this.loadAccount(idToken, authority.hostnameAndPort, response.client_info, authority.authorityType);\r\n cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(idToken, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort));\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please provide clientInfo in the response or options.\");\r\n }\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please provide a request with an account or a request with authority.\");\r\n }\r\n return this.generateAuthenticationResult(request, idToken, cacheRecord, authority);\r\n };\r\n /**\r\n * Helper function to load account to msal-browser cache\r\n * @param idToken\r\n * @param environment\r\n * @param clientInfo\r\n * @param authorityType\r\n * @param requestHomeAccountId\r\n * @returns `AccountEntity`\r\n */\r\n TokenCache.prototype.loadAccount = function (idToken, environment, clientInfo, authorityType, requestHomeAccountId) {\r\n var homeAccountId;\r\n if (requestHomeAccountId) {\r\n homeAccountId = requestHomeAccountId;\r\n }\r\n else if (authorityType !== undefined && clientInfo) {\r\n homeAccountId = AccountEntity.generateHomeAccountId(clientInfo, authorityType, this.logger, this.cryptoObj, idToken);\r\n }\r\n if (!homeAccountId) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Unexpected missing homeAccountId\");\r\n }\r\n var accountEntity = clientInfo ?\r\n AccountEntity.createAccount(clientInfo, homeAccountId, idToken, undefined, undefined, undefined, environment) :\r\n AccountEntity.createGenericAccount(homeAccountId, idToken, undefined, undefined, undefined, environment);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading account\");\r\n this.storage.setAccount(accountEntity);\r\n return accountEntity;\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n /**\r\n * Helper function to load id tokens to msal-browser cache\r\n * @param idToken\r\n * @param homeAccountId\r\n * @param environment\r\n * @param tenantId\r\n * @returns `IdTokenEntity`\r\n */\r\n TokenCache.prototype.loadIdToken = function (idToken, homeAccountId, environment, tenantId) {\r\n var idTokenEntity = IdTokenEntity.createIdTokenEntity(homeAccountId, environment, idToken.rawToken, this.config.auth.clientId, tenantId);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading id token\");\r\n this.storage.setIdTokenCredential(idTokenEntity);\r\n return idTokenEntity;\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n /**\r\n * Helper function to load access tokens to msal-browser cache\r\n * @param request\r\n * @param response\r\n * @param homeAccountId\r\n * @param environment\r\n * @param tenantId\r\n * @returns `AccessTokenEntity`\r\n */\r\n TokenCache.prototype.loadAccessToken = function (request, response, homeAccountId, environment, tenantId, options) {\r\n if (!response.access_token) {\r\n this.logger.verbose(\"TokenCache - No access token provided for caching\");\r\n return null;\r\n }\r\n if (!response.expires_in) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please ensure server response includes expires_in value.\");\r\n }\r\n if (!options.extendedExpiresOn) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please provide an extendedExpiresOn value in the options.\");\r\n }\r\n var scopes = new ScopeSet(request.scopes).printScopes();\r\n var expiresOn = options.expiresOn || (response.expires_in + new Date().getTime() / 1000);\r\n var extendedExpiresOn = options.extendedExpiresOn;\r\n var accessTokenEntity = AccessTokenEntity.createAccessTokenEntity(homeAccountId, environment, response.access_token, this.config.auth.clientId, tenantId, scopes, expiresOn, extendedExpiresOn, this.cryptoObj);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading access token\");\r\n this.storage.setAccessTokenCredential(accessTokenEntity);\r\n return accessTokenEntity;\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n /**\r\n * Helper function to load refresh tokens to msal-browser cache\r\n * @param request\r\n * @param response\r\n * @param homeAccountId\r\n * @param environment\r\n * @returns `RefreshTokenEntity`\r\n */\r\n TokenCache.prototype.loadRefreshToken = function (request, response, homeAccountId, environment) {\r\n if (!response.refresh_token) {\r\n this.logger.verbose(\"TokenCache - No refresh token provided for caching\");\r\n return null;\r\n }\r\n var refreshTokenEntity = RefreshTokenEntity.createRefreshTokenEntity(homeAccountId, environment, response.refresh_token, this.config.auth.clientId);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading refresh token\");\r\n this.storage.setRefreshTokenCredential(refreshTokenEntity);\r\n return refreshTokenEntity;\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n /**\r\n * Helper function to generate an `AuthenticationResult` for the result.\r\n * @param request\r\n * @param idTokenObj\r\n * @param cacheRecord\r\n * @param authority\r\n * @returns `AuthenticationResult`\r\n */\r\n TokenCache.prototype.generateAuthenticationResult = function (request, idTokenObj, cacheRecord, authority) {\r\n var _a, _b, _c;\r\n var accessToken = Constants.EMPTY_STRING;\r\n var responseScopes = [];\r\n var expiresOn = null;\r\n var extExpiresOn;\r\n if (cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.accessToken) {\r\n accessToken = cacheRecord.accessToken.secret;\r\n responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();\r\n expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);\r\n extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);\r\n }\r\n var uid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.oid) || (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.sub) || Constants.EMPTY_STRING;\r\n var tid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.tid) || Constants.EMPTY_STRING;\r\n return {\r\n authority: authority ? authority.canonicalAuthority : Constants.EMPTY_STRING,\r\n uniqueId: uid,\r\n tenantId: tid,\r\n scopes: responseScopes,\r\n account: (cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.account) ? cacheRecord.account.getAccountInfo() : null,\r\n idToken: idTokenObj ? idTokenObj.rawToken : Constants.EMPTY_STRING,\r\n idTokenClaims: idTokenObj ? idTokenObj.claims : {},\r\n accessToken: accessToken,\r\n fromCache: true,\r\n expiresOn: expiresOn,\r\n correlationId: request.correlationId || Constants.EMPTY_STRING,\r\n requestId: Constants.EMPTY_STRING,\r\n extExpiresOn: extExpiresOn,\r\n familyId: Constants.EMPTY_STRING,\r\n tokenType: ((_a = cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.accessToken) === null || _a === void 0 ? void 0 : _a.tokenType) || Constants.EMPTY_STRING,\r\n state: Constants.EMPTY_STRING,\r\n cloudGraphHostName: ((_b = cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.account) === null || _b === void 0 ? void 0 : _b.cloudGraphHostName) || Constants.EMPTY_STRING,\r\n msGraphHost: ((_c = cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.account) === null || _c === void 0 ? void 0 : _c.msGraphHost) || Constants.EMPTY_STRING,\r\n code: undefined,\r\n fromNativeBroker: false\r\n };\r\n };\r\n return TokenCache;\r\n}());\n\nexport { TokenCache };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __assign } from '../_virtual/_tslib.js';\nimport { DEFAULT_SYSTEM_OPTIONS, StubbedNetworkModule, Constants, ProtocolMode, AzureCloudInstance, LogLevel } from '@azure/msal-common';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { BrowserConstants, BrowserCacheLocation } from '../utils/BrowserConstants.js';\nimport { NavigationClient } from '../navigation/NavigationClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Default timeout for popup windows and iframes in milliseconds\r\nvar DEFAULT_POPUP_TIMEOUT_MS = 60000;\r\nvar DEFAULT_IFRAME_TIMEOUT_MS = 6000;\r\nvar DEFAULT_REDIRECT_TIMEOUT_MS = 30000;\r\nvar DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS = 2000;\r\n/**\r\n * MSAL function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param auth\r\n * @param cache\r\n * @param system\r\n *\r\n * @returns Configuration object\r\n */\r\nfunction buildConfiguration(_a, isBrowserEnvironment) {\r\n var userInputAuth = _a.auth, userInputCache = _a.cache, userInputSystem = _a.system, userInputTelemetry = _a.telemetry;\r\n // Default auth options for browser\r\n var DEFAULT_AUTH_OPTIONS = {\r\n clientId: Constants.EMPTY_STRING,\r\n authority: \"\" + Constants.DEFAULT_AUTHORITY,\r\n knownAuthorities: [],\r\n cloudDiscoveryMetadata: Constants.EMPTY_STRING,\r\n authorityMetadata: Constants.EMPTY_STRING,\r\n redirectUri: Constants.EMPTY_STRING,\r\n postLogoutRedirectUri: Constants.EMPTY_STRING,\r\n navigateToLoginRequestUrl: true,\r\n clientCapabilities: [],\r\n protocolMode: ProtocolMode.AAD,\r\n azureCloudOptions: {\r\n azureCloudInstance: AzureCloudInstance.None,\r\n tenant: Constants.EMPTY_STRING\r\n },\r\n skipAuthorityMetadataCache: false,\r\n };\r\n // Default cache options for browser\r\n var DEFAULT_CACHE_OPTIONS = {\r\n cacheLocation: BrowserCacheLocation.SessionStorage,\r\n temporaryCacheLocation: BrowserCacheLocation.SessionStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false,\r\n // Default cache migration to true if cache location is localStorage since entries are preserved across tabs/windows. Migration has little to no benefit in sessionStorage and memoryStorage\r\n cacheMigrationEnabled: userInputCache && userInputCache.cacheLocation === BrowserCacheLocation.LocalStorage ? true : false\r\n };\r\n // Default logger options for browser\r\n var DEFAULT_LOGGER_OPTIONS = {\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n loggerCallback: function () {\r\n // allow users to not set logger call back \r\n },\r\n logLevel: LogLevel.Info,\r\n piiLoggingEnabled: false\r\n };\r\n // Default system options for browser\r\n var DEFAULT_BROWSER_SYSTEM_OPTIONS = __assign(__assign({}, DEFAULT_SYSTEM_OPTIONS), { loggerOptions: DEFAULT_LOGGER_OPTIONS, networkClient: isBrowserEnvironment ? BrowserUtils.getBrowserNetworkClient() : StubbedNetworkModule, navigationClient: new NavigationClient(), loadFrameTimeout: 0, \r\n // If loadFrameTimeout is provided, use that as default.\r\n windowHashTimeout: (userInputSystem === null || userInputSystem === void 0 ? void 0 : userInputSystem.loadFrameTimeout) || DEFAULT_POPUP_TIMEOUT_MS, iframeHashTimeout: (userInputSystem === null || userInputSystem === void 0 ? void 0 : userInputSystem.loadFrameTimeout) || DEFAULT_IFRAME_TIMEOUT_MS, navigateFrameWait: isBrowserEnvironment && BrowserUtils.detectIEOrEdge() ? 500 : 0, redirectNavigationTimeout: DEFAULT_REDIRECT_TIMEOUT_MS, asyncPopups: false, allowRedirectInIframe: false, allowNativeBroker: false, nativeBrokerHandshakeTimeout: (userInputSystem === null || userInputSystem === void 0 ? void 0 : userInputSystem.nativeBrokerHandshakeTimeout) || DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS, pollIntervalMilliseconds: BrowserConstants.DEFAULT_POLL_INTERVAL_MS, cryptoOptions: {\r\n useMsrCrypto: false,\r\n entropy: undefined\r\n } });\r\n var providedSystemOptions = __assign(__assign({}, userInputSystem), { loggerOptions: (userInputSystem === null || userInputSystem === void 0 ? void 0 : userInputSystem.loggerOptions) || DEFAULT_LOGGER_OPTIONS });\r\n var DEFAULT_TELEMETRY_OPTIONS = {\r\n application: {\r\n appName: Constants.EMPTY_STRING,\r\n appVersion: Constants.EMPTY_STRING\r\n }\r\n };\r\n var overlayedConfig = {\r\n auth: __assign(__assign({}, DEFAULT_AUTH_OPTIONS), userInputAuth),\r\n cache: __assign(__assign({}, DEFAULT_CACHE_OPTIONS), userInputCache),\r\n system: __assign(__assign({}, DEFAULT_BROWSER_SYSTEM_OPTIONS), providedSystemOptions),\r\n telemetry: __assign(__assign({}, DEFAULT_TELEMETRY_OPTIONS), userInputTelemetry)\r\n };\r\n return overlayedConfig;\r\n}\n\nexport { DEFAULT_IFRAME_TIMEOUT_MS, DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS, DEFAULT_POPUP_TIMEOUT_MS, DEFAULT_REDIRECT_TIMEOUT_MS, buildConfiguration };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { ModernBrowserCrypto } from './ModernBrowserCrypto.js';\nimport { MsrBrowserCrypto } from './MsrBrowserCrypto.js';\nimport { MsBrowserCrypto } from './MsBrowserCrypto.js';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * See here for more info on RsaHashedKeyGenParams: https://developer.mozilla.org/en-US/docs/Web/API/RsaHashedKeyGenParams\r\n */\r\n// RSA KeyGen Algorithm\r\nvar PKCS1_V15_KEYGEN_ALG = \"RSASSA-PKCS1-v1_5\";\r\n// SHA-256 hashing algorithm\r\nvar S256_HASH_ALG = \"SHA-256\";\r\n// MOD length for PoP tokens\r\nvar MODULUS_LENGTH = 2048;\r\n// Public Exponent\r\nvar PUBLIC_EXPONENT = new Uint8Array([0x01, 0x00, 0x01]);\r\n/**\r\n * This class implements functions used by the browser library to perform cryptography operations such as\r\n * hashing and encoding. It also has helper functions to validate the availability of specific APIs.\r\n */\r\nvar BrowserCrypto = /** @class */ (function () {\r\n function BrowserCrypto(logger, cryptoOptions) {\r\n var _a, _b;\r\n this.logger = logger;\r\n this.cryptoOptions = cryptoOptions;\r\n if (this.hasBrowserCrypto()) {\r\n // Use standard modern web crypto if available\r\n this.logger.verbose(\"BrowserCrypto: modern crypto interface available\");\r\n this.subtleCrypto = new ModernBrowserCrypto();\r\n }\r\n else if (this.hasIECrypto()) {\r\n // For IE11, use msCrypto interface\r\n this.logger.verbose(\"BrowserCrypto: MS crypto interface available\");\r\n this.subtleCrypto = new MsBrowserCrypto();\r\n }\r\n else if (this.hasMsrCrypto() && ((_a = this.cryptoOptions) === null || _a === void 0 ? void 0 : _a.useMsrCrypto)) {\r\n // For other browsers, use MSR Crypto if found\r\n this.logger.verbose(\"BrowserCrypto: MSR crypto interface available\");\r\n this.subtleCrypto = new MsrBrowserCrypto();\r\n }\r\n else {\r\n if (this.hasMsrCrypto()) {\r\n this.logger.info(\"BrowserCrypto: MSR Crypto interface available but system.cryptoOptions.useMsrCrypto not enabled\");\r\n }\r\n this.logger.error(\"BrowserCrypto: No crypto interfaces available.\");\r\n throw BrowserAuthError.createCryptoNotAvailableError(\"Browser crypto, msCrypto, or msrCrypto interfaces not available.\");\r\n }\r\n // Mainly needed for MSR Crypto: https://github.com/microsoft/MSR-JavaScript-Crypto#random-number-generator-prng\r\n if (this.subtleCrypto.initPrng) {\r\n this.logger.verbose(\"BrowserCrypto: Interface requires entropy\");\r\n if (!((_b = this.cryptoOptions) === null || _b === void 0 ? void 0 : _b.entropy)) {\r\n this.logger.error(\"BrowserCrypto: Interface requires entropy but none provided.\");\r\n throw BrowserConfigurationAuthError.createEntropyNotProvided();\r\n }\r\n this.logger.verbose(\"BrowserCrypto: Entropy provided\");\r\n this.subtleCrypto.initPrng(this.cryptoOptions.entropy);\r\n }\r\n this.keygenAlgorithmOptions = {\r\n name: PKCS1_V15_KEYGEN_ALG,\r\n hash: S256_HASH_ALG,\r\n modulusLength: MODULUS_LENGTH,\r\n publicExponent: PUBLIC_EXPONENT\r\n };\r\n }\r\n /**\r\n * Check whether IE crypto or other browser cryptography is available.\r\n */\r\n BrowserCrypto.prototype.hasIECrypto = function () {\r\n return \"msCrypto\" in window;\r\n };\r\n /**\r\n * Check whether browser crypto is available.\r\n */\r\n BrowserCrypto.prototype.hasBrowserCrypto = function () {\r\n return \"crypto\" in window;\r\n };\r\n /**\r\n * Check whether MSR crypto polyfill is available\r\n */\r\n BrowserCrypto.prototype.hasMsrCrypto = function () {\r\n return \"msrCrypto\" in window;\r\n };\r\n /**\r\n * Returns a sha-256 hash of the given dataString as an ArrayBuffer.\r\n * @param dataString\r\n */\r\n BrowserCrypto.prototype.sha256Digest = function (dataString) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var data;\r\n return __generator(this, function (_a) {\r\n data = BrowserStringUtils.stringToUtf8Arr(dataString);\r\n // MSR Crypto wants object with name property, instead of string\r\n return [2 /*return*/, this.subtleCrypto.digest({ name: S256_HASH_ALG }, data)];\r\n });\r\n });\r\n };\r\n /**\r\n * Populates buffer with cryptographically random values.\r\n * @param dataBuffer\r\n */\r\n BrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n return this.subtleCrypto.getRandomValues(dataBuffer);\r\n };\r\n /**\r\n * Generates a keypair based on current keygen algorithm config.\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.generateKeyPair = function (extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.subtleCrypto.generateKey(this.keygenAlgorithmOptions, extractable, usages)];\r\n });\r\n });\r\n };\r\n /**\r\n * Export key as Json Web Key (JWK)\r\n * @param key\r\n * @param format\r\n */\r\n BrowserCrypto.prototype.exportJwk = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.subtleCrypto.exportKey(key)];\r\n });\r\n });\r\n };\r\n /**\r\n * Imports key as Json Web Key (JWK), can set extractable and usages.\r\n * @param key\r\n * @param format\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.importJwk = function (key, extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.subtleCrypto.importKey(key, this.keygenAlgorithmOptions, extractable, usages)];\r\n });\r\n });\r\n };\r\n /**\r\n * Signs given data with given key\r\n * @param key\r\n * @param data\r\n */\r\n BrowserCrypto.prototype.sign = function (key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.subtleCrypto.sign(this.keygenAlgorithmOptions, key, data)];\r\n });\r\n });\r\n };\r\n return BrowserCrypto;\r\n}());\n\nexport { BrowserCrypto };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { PerformanceEvents, JoseHeader } from '@azure/msal-common';\nimport { GuidGenerator } from './GuidGenerator.js';\nimport { Base64Encode } from '../encode/Base64Encode.js';\nimport { Base64Decode } from '../encode/Base64Decode.js';\nimport { PkceGenerator } from './PkceGenerator.js';\nimport { BrowserCrypto } from './BrowserCrypto.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { CryptoKeyStore } from '../cache/CryptoKeyStore.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements MSAL's crypto interface, which allows it to perform base64 encoding and decoding, generating cryptographically random GUIDs and\r\n * implementing Proof Key for Code Exchange specs for the OAuth Authorization Code Flow using PKCE (rfc here: https://tools.ietf.org/html/rfc7636).\r\n */\r\nvar CryptoOps = /** @class */ (function () {\r\n function CryptoOps(logger, performanceClient, cryptoConfig) {\r\n this.logger = logger;\r\n // Browser crypto needs to be validated first before any other classes can be set.\r\n this.browserCrypto = new BrowserCrypto(this.logger, cryptoConfig);\r\n this.b64Encode = new Base64Encode();\r\n this.b64Decode = new Base64Decode();\r\n this.guidGenerator = new GuidGenerator(this.browserCrypto);\r\n this.pkceGenerator = new PkceGenerator(this.browserCrypto);\r\n this.cache = new CryptoKeyStore(this.logger);\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Creates a new random GUID - used to populate state and nonce.\r\n * @returns string (GUID)\r\n */\r\n CryptoOps.prototype.createNewGuid = function () {\r\n return this.guidGenerator.generateGuid();\r\n };\r\n /**\r\n * Encodes input string to base64.\r\n * @param input\r\n */\r\n CryptoOps.prototype.base64Encode = function (input) {\r\n return this.b64Encode.encode(input);\r\n };\r\n /**\r\n * Decodes input string from base64.\r\n * @param input\r\n */\r\n CryptoOps.prototype.base64Decode = function (input) {\r\n return this.b64Decode.decode(input);\r\n };\r\n /**\r\n * Generates PKCE codes used in Authorization Code Flow.\r\n */\r\n CryptoOps.prototype.generatePkceCodes = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.pkceGenerator.generateCodes()];\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a keypair, stores it and returns a thumbprint\r\n * @param request\r\n */\r\n CryptoOps.prototype.getPublicKeyThumbprint = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var publicKeyThumbMeasurement, keyPair, publicKeyJwk, pubKeyThumprintObj, publicJwkString, publicJwkHash, privateKeyJwk, unextractablePrivateKey;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n publicKeyThumbMeasurement = (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.startMeasurement(PerformanceEvents.CryptoOptsGetPublicKeyThumbprint, request.correlationId);\r\n return [4 /*yield*/, this.browserCrypto.generateKeyPair(CryptoOps.EXTRACTABLE, CryptoOps.POP_KEY_USAGES)];\r\n case 1:\r\n keyPair = _b.sent();\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(keyPair.publicKey)];\r\n case 2:\r\n publicKeyJwk = _b.sent();\r\n pubKeyThumprintObj = {\r\n e: publicKeyJwk.e,\r\n kty: publicKeyJwk.kty,\r\n n: publicKeyJwk.n\r\n };\r\n publicJwkString = BrowserStringUtils.getSortedObjectString(pubKeyThumprintObj);\r\n return [4 /*yield*/, this.hashString(publicJwkString)];\r\n case 3:\r\n publicJwkHash = _b.sent();\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(keyPair.privateKey)];\r\n case 4:\r\n privateKeyJwk = _b.sent();\r\n return [4 /*yield*/, this.browserCrypto.importJwk(privateKeyJwk, false, [\"sign\"])];\r\n case 5:\r\n unextractablePrivateKey = _b.sent();\r\n // Store Keypair data in keystore\r\n return [4 /*yield*/, this.cache.asymmetricKeys.setItem(publicJwkHash, {\r\n privateKey: unextractablePrivateKey,\r\n publicKey: keyPair.publicKey,\r\n requestMethod: request.resourceRequestMethod,\r\n requestUri: request.resourceRequestUri\r\n })];\r\n case 6:\r\n // Store Keypair data in keystore\r\n _b.sent();\r\n if (publicKeyThumbMeasurement) {\r\n publicKeyThumbMeasurement.endMeasurement({\r\n success: true\r\n });\r\n }\r\n return [2 /*return*/, publicJwkHash];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes cryptographic keypair from key store matching the keyId passed in\r\n * @param kid\r\n */\r\n CryptoOps.prototype.removeTokenBindingKey = function (kid) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var keyFound;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.cache.asymmetricKeys.removeItem(kid)];\r\n case 1:\r\n _a.sent();\r\n return [4 /*yield*/, this.cache.asymmetricKeys.containsKey(kid)];\r\n case 2:\r\n keyFound = _a.sent();\r\n return [2 /*return*/, !keyFound];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes all cryptographic keys from IndexedDB storage\r\n */\r\n CryptoOps.prototype.clearKeystore = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.cache.clear()];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Signs the given object as a jwt payload with private key retrieved by given kid.\r\n * @param payload\r\n * @param kid\r\n */\r\n CryptoOps.prototype.signJwt = function (payload, kid, correlationId) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var signJwtMeasurement, cachedKeyPair, publicKeyJwk, publicKeyJwkString, encodedKeyIdThumbprint, shrHeader, encodedShrHeader, encodedPayload, tokenString, tokenBuffer, signatureBuffer, encodedSignature, signedJwt;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n signJwtMeasurement = (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.startMeasurement(PerformanceEvents.CryptoOptsSignJwt, correlationId);\r\n return [4 /*yield*/, this.cache.asymmetricKeys.getItem(kid)];\r\n case 1:\r\n cachedKeyPair = _b.sent();\r\n if (!cachedKeyPair) {\r\n throw BrowserAuthError.createSigningKeyNotFoundInStorageError(kid);\r\n }\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(cachedKeyPair.publicKey)];\r\n case 2:\r\n publicKeyJwk = _b.sent();\r\n publicKeyJwkString = BrowserStringUtils.getSortedObjectString(publicKeyJwk);\r\n encodedKeyIdThumbprint = this.b64Encode.urlEncode(JSON.stringify({ kid: kid }));\r\n shrHeader = JoseHeader.getShrHeaderString({ kid: encodedKeyIdThumbprint, alg: publicKeyJwk.alg });\r\n encodedShrHeader = this.b64Encode.urlEncode(shrHeader);\r\n // Generate payload\r\n payload.cnf = {\r\n jwk: JSON.parse(publicKeyJwkString)\r\n };\r\n encodedPayload = this.b64Encode.urlEncode(JSON.stringify(payload));\r\n tokenString = encodedShrHeader + \".\" + encodedPayload;\r\n tokenBuffer = BrowserStringUtils.stringToArrayBuffer(tokenString);\r\n return [4 /*yield*/, this.browserCrypto.sign(cachedKeyPair.privateKey, tokenBuffer)];\r\n case 3:\r\n signatureBuffer = _b.sent();\r\n encodedSignature = this.b64Encode.urlEncodeArr(new Uint8Array(signatureBuffer));\r\n signedJwt = tokenString + \".\" + encodedSignature;\r\n if (signJwtMeasurement) {\r\n signJwtMeasurement.endMeasurement({\r\n success: true\r\n });\r\n }\r\n return [2 /*return*/, signedJwt];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Returns the SHA-256 hash of an input string\r\n * @param plainText\r\n */\r\n CryptoOps.prototype.hashString = function (plainText) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var hashBuffer, hashBytes;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.browserCrypto.sha256Digest(plainText)];\r\n case 1:\r\n hashBuffer = _a.sent();\r\n hashBytes = new Uint8Array(hashBuffer);\r\n return [2 /*return*/, this.b64Encode.urlEncodeArr(hashBytes)];\r\n }\r\n });\r\n });\r\n };\r\n CryptoOps.POP_KEY_USAGES = [\"sign\", \"verify\"];\r\n CryptoOps.EXTRACTABLE = true;\r\n return CryptoOps;\r\n}());\n\nexport { CryptoOps };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { Constants } from '@azure/msal-common';\nimport { MathUtils } from '../utils/MathUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar GuidGenerator = /** @class */ (function () {\r\n function GuidGenerator(cryptoObj) {\r\n this.cryptoObj = cryptoObj;\r\n }\r\n /*\r\n * RFC4122: The version 4 UUID is meant for generating UUIDs from truly-random or\r\n * pseudo-random numbers.\r\n * The algorithm is as follows:\r\n * Set the two most significant bits (bits 6 and 7) of the\r\n * clock_seq_hi_and_reserved to zero and one, respectively.\r\n * Set the four most significant bits (bits 12 through 15) of the\r\n * time_hi_and_version field to the 4-bit version number from\r\n * Section 4.1.3. Version4\r\n * Set all the other bits to randomly (or pseudo-randomly) chosen\r\n * values.\r\n * UUID = time-low \"-\" time-mid \"-\"time-high-and-version \"-\"clock-seq-reserved and low(2hexOctet)\"-\" node\r\n * time-low = 4hexOctet\r\n * time-mid = 2hexOctet\r\n * time-high-and-version = 2hexOctet\r\n * clock-seq-and-reserved = hexOctet:\r\n * clock-seq-low = hexOctet\r\n * node = 6hexOctet\r\n * Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\r\n * y could be 1000, 1001, 1010, 1011 since most significant two bits needs to be 10\r\n * y values are 8, 9, A, B\r\n */\r\n GuidGenerator.prototype.generateGuid = function () {\r\n try {\r\n var buffer = new Uint8Array(16);\r\n this.cryptoObj.getRandomValues(buffer);\r\n // buffer[6] and buffer[7] represents the time_hi_and_version field. We will set the four most significant bits (4 through 7) of buffer[6] to represent decimal number 4 (UUID version number).\r\n buffer[6] |= 0x40; // buffer[6] | 01000000 will set the 6 bit to 1.\r\n buffer[6] &= 0x4f; // buffer[6] & 01001111 will set the 4, 5, and 7 bit to 0 such that bits 4-7 == 0100 = \"4\".\r\n // buffer[8] represents the clock_seq_hi_and_reserved field. We will set the two most significant bits (6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively.\r\n buffer[8] |= 0x80; // buffer[8] | 10000000 will set the 7 bit to 1.\r\n buffer[8] &= 0xbf; // buffer[8] & 10111111 will set the 6 bit to 0.\r\n return MathUtils.decimalToHex(buffer[0]) + MathUtils.decimalToHex(buffer[1])\r\n + MathUtils.decimalToHex(buffer[2]) + MathUtils.decimalToHex(buffer[3])\r\n + \"-\" + MathUtils.decimalToHex(buffer[4]) + MathUtils.decimalToHex(buffer[5])\r\n + \"-\" + MathUtils.decimalToHex(buffer[6]) + MathUtils.decimalToHex(buffer[7])\r\n + \"-\" + MathUtils.decimalToHex(buffer[8]) + MathUtils.decimalToHex(buffer[9])\r\n + \"-\" + MathUtils.decimalToHex(buffer[10]) + MathUtils.decimalToHex(buffer[11])\r\n + MathUtils.decimalToHex(buffer[12]) + MathUtils.decimalToHex(buffer[13])\r\n + MathUtils.decimalToHex(buffer[14]) + MathUtils.decimalToHex(buffer[15]);\r\n }\r\n catch (err) {\r\n var guidHolder = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\";\r\n var hex = \"0123456789abcdef\";\r\n var r = 0;\r\n var guidResponse = Constants.EMPTY_STRING;\r\n for (var i = 0; i < 36; i++) {\r\n if (guidHolder[i] !== \"-\" && guidHolder[i] !== \"4\") {\r\n // each x and y needs to be random\r\n r = Math.random() * 16 | 0;\r\n }\r\n if (guidHolder[i] === \"x\") {\r\n guidResponse += hex[r];\r\n }\r\n else if (guidHolder[i] === \"y\") {\r\n // clock-seq-and-reserved first hex is filtered and remaining hex values are random\r\n r &= 0x3; // bit and with 0011 to set pos 2 to zero ?0??\r\n r |= 0x8; // set pos 3 to 1 as 1???\r\n guidResponse += hex[r];\r\n }\r\n else {\r\n guidResponse += guidHolder[i];\r\n }\r\n }\r\n return guidResponse;\r\n }\r\n };\r\n /**\r\n * verifies if a string is GUID\r\n * @param guid\r\n */\r\n GuidGenerator.prototype.isGuid = function (guid) {\r\n var regexGuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\r\n return regexGuid.test(guid);\r\n };\r\n return GuidGenerator;\r\n}());\n\nexport { GuidGenerator };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ModernBrowserCrypto = /** @class */ (function () {\r\n function ModernBrowserCrypto() {\r\n }\r\n ModernBrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n return window.crypto.getRandomValues(dataBuffer);\r\n };\r\n ModernBrowserCrypto.prototype.generateKey = function (algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.generateKey(algorithm, extractable, keyUsages)];\r\n });\r\n });\r\n };\r\n ModernBrowserCrypto.prototype.exportKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.exportKey(KEY_FORMAT_JWK, key)];\r\n });\r\n });\r\n };\r\n ModernBrowserCrypto.prototype.importKey = function (keyData, algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.importKey(KEY_FORMAT_JWK, keyData, algorithm, extractable, keyUsages)];\r\n });\r\n });\r\n };\r\n ModernBrowserCrypto.prototype.sign = function (algorithm, key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.sign(algorithm, key, data)];\r\n });\r\n });\r\n };\r\n ModernBrowserCrypto.prototype.digest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.digest(algorithm, data)];\r\n });\r\n });\r\n };\r\n return ModernBrowserCrypto;\r\n}());\n\nexport { ModernBrowserCrypto };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { Constants } from '@azure/msal-common';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar MsBrowserCrypto = /** @class */ (function () {\r\n function MsBrowserCrypto() {\r\n }\r\n MsBrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n return window[\"msCrypto\"].getRandomValues(dataBuffer);\r\n };\r\n MsBrowserCrypto.prototype.generateKey = function (algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msGenerateKey = window[\"msCrypto\"].subtle.generateKey(algorithm, extractable, keyUsages);\r\n msGenerateKey.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msGenerateKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n MsBrowserCrypto.prototype.exportKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msExportKey = window[\"msCrypto\"].subtle.exportKey(KEY_FORMAT_JWK, key);\r\n msExportKey.addEventListener(\"complete\", function (e) {\r\n var resultBuffer = e.target.result;\r\n var resultString = BrowserStringUtils.utf8ArrToString(new Uint8Array(resultBuffer))\r\n .replace(/\\r/g, Constants.EMPTY_STRING)\r\n .replace(/\\n/g, Constants.EMPTY_STRING)\r\n .replace(/\\t/g, Constants.EMPTY_STRING)\r\n .split(\" \").join(Constants.EMPTY_STRING)\r\n .replace(\"\\u0000\", Constants.EMPTY_STRING);\r\n try {\r\n resolve(JSON.parse(resultString));\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n });\r\n msExportKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n MsBrowserCrypto.prototype.importKey = function (keyData, algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var keyString, keyBuffer;\r\n return __generator(this, function (_a) {\r\n keyString = BrowserStringUtils.getSortedObjectString(keyData);\r\n keyBuffer = BrowserStringUtils.stringToArrayBuffer(keyString);\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msImportKey = window[\"msCrypto\"].subtle.importKey(KEY_FORMAT_JWK, keyBuffer, algorithm, extractable, keyUsages);\r\n msImportKey.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msImportKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n MsBrowserCrypto.prototype.sign = function (algorithm, key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msSign = window[\"msCrypto\"].subtle.sign(algorithm, key, data);\r\n msSign.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msSign.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n MsBrowserCrypto.prototype.digest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var digestOperation = window[\"msCrypto\"].subtle.digest(algorithm, data.buffer);\r\n digestOperation.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n digestOperation.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n return MsBrowserCrypto;\r\n}());\n\nexport { MsBrowserCrypto };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __spread, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar MsrBrowserCrypto = /** @class */ (function () {\r\n function MsrBrowserCrypto() {\r\n }\r\n MsrBrowserCrypto.prototype.initPrng = function (entropy) {\r\n // Turn into array, as initPrng seems to not always like Uint8Array (even though it should support both)\r\n return window.msrCrypto.initPrng(__spread(entropy));\r\n };\r\n MsrBrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n return window.msrCrypto.getRandomValues(dataBuffer);\r\n };\r\n MsrBrowserCrypto.prototype.generateKey = function (algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.generateKey(algorithm, extractable, keyUsages)];\r\n });\r\n });\r\n };\r\n MsrBrowserCrypto.prototype.exportKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.exportKey(KEY_FORMAT_JWK, key)];\r\n });\r\n });\r\n };\r\n MsrBrowserCrypto.prototype.importKey = function (keyData, algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.importKey(KEY_FORMAT_JWK, keyData, algorithm, extractable, keyUsages)];\r\n });\r\n });\r\n };\r\n MsrBrowserCrypto.prototype.sign = function (algorithm, key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.sign(algorithm, key, data)];\r\n });\r\n });\r\n };\r\n MsrBrowserCrypto.prototype.digest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.digest(algorithm, data)];\r\n });\r\n });\r\n };\r\n return MsrBrowserCrypto;\r\n}());\n\nexport { MsrBrowserCrypto };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { Base64Encode } from '../encode/Base64Encode.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Constant byte array length\r\nvar RANDOM_BYTE_ARR_LENGTH = 32;\r\n/**\r\n * Class which exposes APIs to generate PKCE codes and code verifiers.\r\n */\r\nvar PkceGenerator = /** @class */ (function () {\r\n function PkceGenerator(cryptoObj) {\r\n this.base64Encode = new Base64Encode();\r\n this.cryptoObj = cryptoObj;\r\n }\r\n /**\r\n * Generates PKCE Codes. See the RFC for more information: https://tools.ietf.org/html/rfc7636\r\n */\r\n PkceGenerator.prototype.generateCodes = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var codeVerifier, codeChallenge;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n codeVerifier = this.generateCodeVerifier();\r\n return [4 /*yield*/, this.generateCodeChallengeFromVerifier(codeVerifier)];\r\n case 1:\r\n codeChallenge = _a.sent();\r\n return [2 /*return*/, {\r\n verifier: codeVerifier,\r\n challenge: codeChallenge\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a random 32 byte buffer and returns the base64\r\n * encoded string to be used as a PKCE Code Verifier\r\n */\r\n PkceGenerator.prototype.generateCodeVerifier = function () {\r\n try {\r\n // Generate random values as utf-8\r\n var buffer = new Uint8Array(RANDOM_BYTE_ARR_LENGTH);\r\n this.cryptoObj.getRandomValues(buffer);\r\n // encode verifier as base64\r\n var pkceCodeVerifierB64 = this.base64Encode.urlEncodeArr(buffer);\r\n return pkceCodeVerifierB64;\r\n }\r\n catch (e) {\r\n throw BrowserAuthError.createPkceNotGeneratedError(e);\r\n }\r\n };\r\n /**\r\n * Creates a base64 encoded PKCE Code Challenge string from the\r\n * hash created from the PKCE Code Verifier supplied\r\n */\r\n PkceGenerator.prototype.generateCodeChallengeFromVerifier = function (pkceCodeVerifier) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var pkceHashedCodeVerifier, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.cryptoObj.sha256Digest(pkceCodeVerifier)];\r\n case 1:\r\n pkceHashedCodeVerifier = _a.sent();\r\n // encode hash as base64\r\n return [2 /*return*/, this.base64Encode.urlEncodeArr(new Uint8Array(pkceHashedCodeVerifier))];\r\n case 2:\r\n e_1 = _a.sent();\r\n throw BrowserAuthError.createPkceNotGeneratedError(e_1);\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return PkceGenerator;\r\n}());\n\nexport { PkceGenerator };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { Constants } from '@azure/msal-common';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to decode base64 strings to plaintext. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Decode = /** @class */ (function () {\r\n function Base64Decode() {\r\n }\r\n /**\r\n * Returns a URL-safe plaintext decoded string from b64 encoded input.\r\n * @param input\r\n */\r\n Base64Decode.prototype.decode = function (input) {\r\n var encodedString = input.replace(/-/g, \"+\").replace(/_/g, \"/\");\r\n switch (encodedString.length % 4) {\r\n case 0:\r\n break;\r\n case 2:\r\n encodedString += \"==\";\r\n break;\r\n case 3:\r\n encodedString += \"=\";\r\n break;\r\n default:\r\n throw new Error(\"Invalid base64 string\");\r\n }\r\n var inputUtf8Arr = this.base64DecToArr(encodedString);\r\n return BrowserStringUtils.utf8ArrToString(inputUtf8Arr);\r\n };\r\n /**\r\n * Decodes base64 into Uint8Array\r\n * @param base64String\r\n * @param nBlockSize\r\n */\r\n Base64Decode.prototype.base64DecToArr = function (base64String, nBlockSize) {\r\n var sB64Enc = base64String.replace(/[^A-Za-z0-9\\+\\/]/g, Constants.EMPTY_STRING);\r\n var nInLen = sB64Enc.length;\r\n var nOutLen = nBlockSize ? Math.ceil((nInLen * 3 + 1 >>> 2) / nBlockSize) * nBlockSize : nInLen * 3 + 1 >>> 2;\r\n var aBytes = new Uint8Array(nOutLen);\r\n for (var nMod3 = void 0, nMod4 = void 0, nUint24 = 0, nOutIdx = 0, nInIdx = 0; nInIdx < nInLen; nInIdx++) {\r\n nMod4 = nInIdx & 3;\r\n nUint24 |= this.b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << 18 - 6 * nMod4;\r\n if (nMod4 === 3 || nInLen - nInIdx === 1) {\r\n for (nMod3 = 0; nMod3 < 3 && nOutIdx < nOutLen; nMod3++, nOutIdx++) {\r\n aBytes[nOutIdx] = nUint24 >>> (16 >>> nMod3 & 24) & 255;\r\n }\r\n nUint24 = 0;\r\n }\r\n }\r\n return aBytes;\r\n };\r\n /**\r\n * Base64 string to array decoding helper\r\n * @param charNum\r\n */\r\n Base64Decode.prototype.b64ToUint6 = function (charNum) {\r\n return charNum > 64 && charNum < 91 ?\r\n charNum - 65\r\n : charNum > 96 && charNum < 123 ?\r\n charNum - 71\r\n : charNum > 47 && charNum < 58 ?\r\n charNum + 4\r\n : charNum === 43 ?\r\n 62\r\n : charNum === 47 ?\r\n 63\r\n :\r\n 0;\r\n };\r\n return Base64Decode;\r\n}());\n\nexport { Base64Decode };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { Constants } from '@azure/msal-common';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to encode plaintext to base64 encoded string. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Encode = /** @class */ (function () {\r\n function Base64Encode() {\r\n }\r\n /**\r\n * Returns URL Safe b64 encoded string from a plaintext string.\r\n * @param input\r\n */\r\n Base64Encode.prototype.urlEncode = function (input) {\r\n return encodeURIComponent(this.encode(input)\r\n .replace(/=/g, Constants.EMPTY_STRING)\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\"));\r\n };\r\n /**\r\n * Returns URL Safe b64 encoded string from an int8Array.\r\n * @param inputArr\r\n */\r\n Base64Encode.prototype.urlEncodeArr = function (inputArr) {\r\n return this.base64EncArr(inputArr)\r\n .replace(/=/g, Constants.EMPTY_STRING)\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\");\r\n };\r\n /**\r\n * Returns b64 encoded string from plaintext string.\r\n * @param input\r\n */\r\n Base64Encode.prototype.encode = function (input) {\r\n var inputUtf8Arr = BrowserStringUtils.stringToUtf8Arr(input);\r\n return this.base64EncArr(inputUtf8Arr);\r\n };\r\n /**\r\n * Base64 encode byte array\r\n * @param aBytes\r\n */\r\n Base64Encode.prototype.base64EncArr = function (aBytes) {\r\n var eqLen = (3 - (aBytes.length % 3)) % 3;\r\n var sB64Enc = Constants.EMPTY_STRING;\r\n for (var nMod3 = void 0, nLen = aBytes.length, nUint24 = 0, nIdx = 0; nIdx < nLen; nIdx++) {\r\n nMod3 = nIdx % 3;\r\n /* Uncomment the following line in order to split the output in lines 76-character long: */\r\n /*\r\n *if (nIdx > 0 && (nIdx * 4 / 3) % 76 === 0) { sB64Enc += \"\\r\\n\"; }\r\n */\r\n nUint24 |= aBytes[nIdx] << (16 >>> nMod3 & 24);\r\n if (nMod3 === 2 || aBytes.length - nIdx === 1) {\r\n sB64Enc += String.fromCharCode(this.uint6ToB64(nUint24 >>> 18 & 63), this.uint6ToB64(nUint24 >>> 12 & 63), this.uint6ToB64(nUint24 >>> 6 & 63), this.uint6ToB64(nUint24 & 63));\r\n nUint24 = 0;\r\n }\r\n }\r\n return eqLen === 0 ? sB64Enc : sB64Enc.substring(0, sB64Enc.length - eqLen) + (eqLen === 1 ? \"=\" : \"==\");\r\n };\r\n /**\r\n * Base64 string to array encoding helper\r\n * @param nUint6\r\n */\r\n Base64Encode.prototype.uint6ToB64 = function (nUint6) {\r\n return nUint6 < 26 ?\r\n nUint6 + 65\r\n : nUint6 < 52 ?\r\n nUint6 + 71\r\n : nUint6 < 62 ?\r\n nUint6 - 4\r\n : nUint6 === 62 ?\r\n 43\r\n : nUint6 === 63 ?\r\n 47\r\n :\r\n 65;\r\n };\r\n return Base64Encode;\r\n}());\n\nexport { Base64Encode };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { StringUtils, AuthError } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserAuthErrorMessage = {\r\n pkceNotGenerated: {\r\n code: \"pkce_not_created\",\r\n desc: \"The PKCE code challenge and verifier could not be generated.\"\r\n },\r\n cryptoDoesNotExist: {\r\n code: \"crypto_nonexistent\",\r\n desc: \"The crypto object or function is not available.\"\r\n },\r\n httpMethodNotImplementedError: {\r\n code: \"http_method_not_implemented\",\r\n desc: \"The HTTP method given has not been implemented in this library.\"\r\n },\r\n emptyNavigateUriError: {\r\n code: \"empty_navigate_uri\",\r\n desc: \"Navigation URI is empty. Please check stack trace for more info.\"\r\n },\r\n hashEmptyError: {\r\n code: \"hash_empty_error\",\r\n desc: \"Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n hashDoesNotContainStateError: {\r\n code: \"no_state_in_hash\",\r\n desc: \"Hash does not contain state. Please verify that the request originated from msal.\"\r\n },\r\n hashDoesNotContainKnownPropertiesError: {\r\n code: \"hash_does_not_contain_known_properties\",\r\n desc: \"Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n unableToParseStateError: {\r\n code: \"unable_to_parse_state\",\r\n desc: \"Unable to parse state. Please verify that the request originated from msal.\"\r\n },\r\n stateInteractionTypeMismatchError: {\r\n code: \"state_interaction_type_mismatch\",\r\n desc: \"Hash contains state but the interaction type does not match the caller.\"\r\n },\r\n interactionInProgress: {\r\n code: \"interaction_in_progress\",\r\n desc: \"Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n popupWindowError: {\r\n code: \"popup_window_error\",\r\n desc: \"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.\"\r\n },\r\n emptyWindowError: {\r\n code: \"empty_window_error\",\r\n desc: \"window.open returned null or undefined window object.\"\r\n },\r\n userCancelledError: {\r\n code: \"user_cancelled\",\r\n desc: \"User cancelled the flow.\"\r\n },\r\n monitorPopupTimeoutError: {\r\n code: \"monitor_window_timeout\",\r\n desc: \"Token acquisition in popup failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n monitorIframeTimeoutError: {\r\n code: \"monitor_window_timeout\",\r\n desc: \"Token acquisition in iframe failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n redirectInIframeError: {\r\n code: \"redirect_in_iframe\",\r\n desc: \"Redirects are not supported for iframed or brokered applications. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs.\"\r\n },\r\n blockTokenRequestsInHiddenIframeError: {\r\n code: \"block_iframe_reload\",\r\n desc: \"Request was blocked inside an iframe because MSAL detected an authentication response. For more visit: aka.ms/msaljs/browser-errors\"\r\n },\r\n blockAcquireTokenInPopupsError: {\r\n code: \"block_nested_popups\",\r\n desc: \"Request was blocked inside a popup because MSAL detected it was running in a popup.\"\r\n },\r\n iframeClosedPrematurelyError: {\r\n code: \"iframe_closed_prematurely\",\r\n desc: \"The iframe being monitored was closed prematurely.\"\r\n },\r\n silentLogoutUnsupportedError: {\r\n code: \"silent_logout_unsupported\",\r\n desc: \"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.\"\r\n },\r\n noAccountError: {\r\n code: \"no_account_error\",\r\n desc: \"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.\"\r\n },\r\n silentPromptValueError: {\r\n code: \"silent_prompt_value_error\",\r\n desc: \"The value given for the prompt value is not valid for silent requests - must be set to 'none' or 'no_session'.\"\r\n },\r\n noTokenRequestCacheError: {\r\n code: \"no_token_request_cache_error\",\r\n desc: \"No token request found in cache.\"\r\n },\r\n unableToParseTokenRequestCacheError: {\r\n code: \"unable_to_parse_token_request_cache_error\",\r\n desc: \"The cached token request could not be parsed.\"\r\n },\r\n noCachedAuthorityError: {\r\n code: \"no_cached_authority_error\",\r\n desc: \"No cached authority found.\"\r\n },\r\n authRequestNotSet: {\r\n code: \"auth_request_not_set_error\",\r\n desc: \"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler\"\r\n },\r\n invalidCacheType: {\r\n code: \"invalid_cache_type\",\r\n desc: \"Invalid cache type\"\r\n },\r\n notInBrowserEnvironment: {\r\n code: \"non_browser_environment\",\r\n desc: \"Login and token requests are not supported in non-browser environments.\"\r\n },\r\n databaseNotOpen: {\r\n code: \"database_not_open\",\r\n desc: \"Database is not open!\"\r\n },\r\n noNetworkConnectivity: {\r\n code: \"no_network_connectivity\",\r\n desc: \"No network connectivity. Check your internet connection.\"\r\n },\r\n postRequestFailed: {\r\n code: \"post_request_failed\",\r\n desc: \"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'\"\r\n },\r\n getRequestFailed: {\r\n code: \"get_request_failed\",\r\n desc: \"Network request failed. Please check the network trace to determine root cause.\"\r\n },\r\n failedToParseNetworkResponse: {\r\n code: \"failed_to_parse_response\",\r\n desc: \"Failed to parse network response. Check network trace.\"\r\n },\r\n unableToLoadTokenError: {\r\n code: \"unable_to_load_token\",\r\n desc: \"Error loading token to cache.\"\r\n },\r\n signingKeyNotFoundInStorage: {\r\n code: \"crypto_key_not_found\",\r\n desc: \"Cryptographic Key or Keypair not found in browser storage.\"\r\n },\r\n authCodeRequired: {\r\n code: \"auth_code_required\",\r\n desc: \"An authorization code must be provided (as the `code` property on the request) to this flow.\"\r\n },\r\n authCodeOrNativeAccountRequired: {\r\n code: \"auth_code_or_nativeAccountId_required\",\r\n desc: \"An authorization code or nativeAccountId must be provided to this flow.\"\r\n },\r\n spaCodeAndNativeAccountPresent: {\r\n code: \"spa_code_and_nativeAccountId_present\",\r\n desc: \"Request cannot contain both spa code and native account id.\"\r\n },\r\n databaseUnavailable: {\r\n code: \"database_unavailable\",\r\n desc: \"IndexedDB, which is required for persistent cryptographic key storage, is unavailable. This may be caused by browser privacy features which block persistent storage in third-party contexts.\"\r\n },\r\n unableToAcquireTokenFromNativePlatform: {\r\n code: \"unable_to_acquire_token_from_native_platform\",\r\n desc: \"Unable to acquire token from native platform. For a list of possible reasons visit aka.ms/msaljs/browser-errors.\"\r\n },\r\n nativeHandshakeTimeout: {\r\n code: \"native_handshake_timeout\",\r\n desc: \"Timed out while attempting to establish connection to browser extension\"\r\n },\r\n nativeExtensionNotInstalled: {\r\n code: \"native_extension_not_installed\",\r\n desc: \"Native extension is not installed. If you think this is a mistake call the initialize function.\"\r\n },\r\n nativeConnectionNotEstablished: {\r\n code: \"native_connection_not_established\",\r\n desc: \"Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). For more please visit aka.ms/msaljs/browser-errors.\"\r\n },\r\n nativeBrokerCalledBeforeInitialize: {\r\n code: \"native_broker_called_before_initialize\",\r\n desc: \"You must call and await the initialize function before attempting to call any other MSAL API when native brokering is enabled. For more please visit aka.ms/msaljs/browser-errors.\"\r\n },\r\n nativePromptNotSupported: {\r\n code: \"native_prompt_not_supported\",\r\n desc: \"The provided prompt is not supported by the native platform. This request should be routed to the web based flow.\"\r\n }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserAuthError = /** @class */ (function (_super) {\r\n __extends(BrowserAuthError, _super);\r\n function BrowserAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n Object.setPrototypeOf(_this, BrowserAuthError.prototype);\r\n _this.name = \"BrowserAuthError\";\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when PKCE is not implemented.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createPkceNotGeneratedError = function (errDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.pkceNotGenerated.code, BrowserAuthErrorMessage.pkceNotGenerated.desc + \" Detail:\" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the crypto object is unavailable.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createCryptoNotAvailableError = function (errDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.cryptoDoesNotExist.code, BrowserAuthErrorMessage.cryptoDoesNotExist.desc + \" Detail:\" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when an HTTP method hasn't been implemented by the browser class.\r\n * @param method\r\n */\r\n BrowserAuthError.createHttpMethodNotImplementedError = function (method) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.httpMethodNotImplementedError.code, BrowserAuthErrorMessage.httpMethodNotImplementedError.desc + \" Given Method: \" + method);\r\n };\r\n /**\r\n * Creates an error thrown when the navigation URI is empty.\r\n */\r\n BrowserAuthError.createEmptyNavigationUriError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyNavigateUriError.code, BrowserAuthErrorMessage.emptyNavigateUriError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n * @param hashValue\r\n */\r\n BrowserAuthError.createEmptyHashError = function (hashValue) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashEmptyError.code, BrowserAuthErrorMessage.hashEmptyError.desc + \" Given Url: \" + hashValue);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n */\r\n BrowserAuthError.createHashDoesNotContainStateError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainStateError.code, BrowserAuthErrorMessage.hashDoesNotContainStateError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value does not contain known properties\r\n */\r\n BrowserAuthError.createHashDoesNotContainKnownPropertiesError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.code, BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n */\r\n BrowserAuthError.createUnableToParseStateError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseStateError.code, BrowserAuthErrorMessage.unableToParseStateError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the state value in the hash does not match the interaction type of the API attempting to consume it.\r\n */\r\n BrowserAuthError.createStateInteractionTypeMismatchError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.stateInteractionTypeMismatchError.code, BrowserAuthErrorMessage.stateInteractionTypeMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a browser interaction (redirect or popup) is in progress.\r\n */\r\n BrowserAuthError.createInteractionInProgressError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.interactionInProgress.code, BrowserAuthErrorMessage.interactionInProgress.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the popup window could not be opened.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createPopupWindowError = function (errDetail) {\r\n var errorMessage = BrowserAuthErrorMessage.popupWindowError.desc;\r\n errorMessage = !StringUtils.isEmpty(errDetail) ? errorMessage + \" Details: \" + errDetail : errorMessage;\r\n return new BrowserAuthError(BrowserAuthErrorMessage.popupWindowError.code, errorMessage);\r\n };\r\n /**\r\n * Creates an error thrown when window.open returns an empty window object.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createEmptyWindowCreatedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyWindowError.code, BrowserAuthErrorMessage.emptyWindowError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the user closes a popup.\r\n */\r\n BrowserAuthError.createUserCancelledError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.userCancelledError.code, BrowserAuthErrorMessage.userCancelledError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when monitorPopupFromHash times out for a given popup.\r\n */\r\n BrowserAuthError.createMonitorPopupTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorPopupTimeoutError.code, BrowserAuthErrorMessage.monitorPopupTimeoutError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when monitorIframeFromHash times out for a given iframe.\r\n */\r\n BrowserAuthError.createMonitorIframeTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorIframeTimeoutError.code, BrowserAuthErrorMessage.monitorIframeTimeoutError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when navigateWindow is called inside an iframe or brokered applications.\r\n * @param windowParentCheck\r\n */\r\n BrowserAuthError.createRedirectInIframeError = function (windowParentCheck) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.redirectInIframeError.code, BrowserAuthErrorMessage.redirectInIframeError.desc + \" (window.parent !== window) => \" + windowParentCheck);\r\n };\r\n /**\r\n * Creates an error thrown when an auth reload is done inside an iframe.\r\n */\r\n BrowserAuthError.createBlockReloadInHiddenIframeError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.code, BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a popup attempts to call an acquireToken API\r\n * @returns\r\n */\r\n BrowserAuthError.createBlockAcquireTokenInPopupsError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.code, BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when an iframe is found to be closed before the timeout is reached.\r\n */\r\n BrowserAuthError.createIframeClosedPrematurelyError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.iframeClosedPrematurelyError.code, BrowserAuthErrorMessage.iframeClosedPrematurelyError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the logout API is called on any of the silent interaction clients\r\n */\r\n BrowserAuthError.createSilentLogoutUnsupportedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.silentLogoutUnsupportedError.code, BrowserAuthErrorMessage.silentLogoutUnsupportedError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the account object is not provided in the acquireTokenSilent API.\r\n */\r\n BrowserAuthError.createNoAccountError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noAccountError.code, BrowserAuthErrorMessage.noAccountError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a given prompt value is invalid for silent requests.\r\n */\r\n BrowserAuthError.createSilentPromptValueError = function (givenPrompt) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.silentPromptValueError.code, BrowserAuthErrorMessage.silentPromptValueError.desc + \" Given value: \" + givenPrompt);\r\n };\r\n /**\r\n * Creates an error thrown when the cached token request could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createUnableToParseTokenRequestCacheError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.code, BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the token request could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createNoTokenRequestCacheError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noTokenRequestCacheError.code, BrowserAuthErrorMessage.noTokenRequestCacheError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when handleCodeResponse is called before initiateAuthRequest (InteractionHandler)\r\n */\r\n BrowserAuthError.createAuthRequestNotSetError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.authRequestNotSet.code, BrowserAuthErrorMessage.authRequestNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the authority could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createNoCachedAuthorityError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noCachedAuthorityError.code, BrowserAuthErrorMessage.noCachedAuthorityError.desc);\r\n };\r\n /**\r\n * Creates an error thrown if cache type is invalid.\r\n */\r\n BrowserAuthError.createInvalidCacheTypeError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.invalidCacheType.code, \"\" + BrowserAuthErrorMessage.invalidCacheType.desc);\r\n };\r\n /**\r\n * Create an error thrown when login and token requests are made from a non-browser environment\r\n */\r\n BrowserAuthError.createNonBrowserEnvironmentError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.notInBrowserEnvironment.code, BrowserAuthErrorMessage.notInBrowserEnvironment.desc);\r\n };\r\n /**\r\n * Create an error thrown when indexDB database is not open\r\n */\r\n BrowserAuthError.createDatabaseNotOpenError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseNotOpen.code, BrowserAuthErrorMessage.databaseNotOpen.desc);\r\n };\r\n /**\r\n * Create an error thrown when token fetch fails due to no internet\r\n */\r\n BrowserAuthError.createNoNetworkConnectivityError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noNetworkConnectivity.code, BrowserAuthErrorMessage.noNetworkConnectivity.desc);\r\n };\r\n /**\r\n * Create an error thrown when token fetch fails due to reasons other than internet connectivity\r\n */\r\n BrowserAuthError.createPostRequestFailedError = function (errorDesc, endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.postRequestFailed.code, BrowserAuthErrorMessage.postRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when get request fails due to reasons other than internet connectivity\r\n */\r\n BrowserAuthError.createGetRequestFailedError = function (errorDesc, endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.getRequestFailed.code, BrowserAuthErrorMessage.getRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when network client fails to parse network response\r\n */\r\n BrowserAuthError.createFailedToParseNetworkResponseError = function (endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.failedToParseNetworkResponse.code, BrowserAuthErrorMessage.failedToParseNetworkResponse.desc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when the necessary information is not available to sideload tokens\r\n */\r\n BrowserAuthError.createUnableToLoadTokenError = function (errorDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToLoadTokenError.code, BrowserAuthErrorMessage.unableToLoadTokenError.desc + \" | \" + errorDetail);\r\n };\r\n /**\r\n * Create an error thrown when the queried cryptographic key is not found in IndexedDB\r\n */\r\n BrowserAuthError.createSigningKeyNotFoundInStorageError = function (keyId) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.signingKeyNotFoundInStorage.code, BrowserAuthErrorMessage.signingKeyNotFoundInStorage.desc + \" | No match found for KeyId: \" + keyId);\r\n };\r\n /**\r\n * Create an error when an authorization code is required but not provided\r\n */\r\n BrowserAuthError.createAuthCodeRequiredError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.authCodeRequired.code, BrowserAuthErrorMessage.authCodeRequired.desc);\r\n };\r\n /**\r\n * Create an error when an authorization code or native account ID is required but not provided\r\n */\r\n BrowserAuthError.createAuthCodeOrNativeAccountIdRequiredError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.authCodeOrNativeAccountRequired.code, BrowserAuthErrorMessage.authCodeOrNativeAccountRequired.desc);\r\n };\r\n /**\r\n * Create an error when both authorization code and native account ID are provided\r\n */\r\n BrowserAuthError.createSpaCodeAndNativeAccountIdPresentError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.spaCodeAndNativeAccountPresent.code, BrowserAuthErrorMessage.spaCodeAndNativeAccountPresent.desc);\r\n };\r\n /**\r\n * Create an error when IndexedDB is unavailable\r\n */\r\n BrowserAuthError.createDatabaseUnavailableError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseUnavailable.code, BrowserAuthErrorMessage.databaseUnavailable.desc);\r\n };\r\n /**\r\n * Create an error when native token acquisition is not possible\r\n */\r\n BrowserAuthError.createUnableToAcquireTokenFromNativePlatformError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToAcquireTokenFromNativePlatform.code, BrowserAuthErrorMessage.unableToAcquireTokenFromNativePlatform.desc);\r\n };\r\n /**\r\n * Create an error thrown when Handshake with browser extension times out\r\n */\r\n BrowserAuthError.createNativeHandshakeTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeHandshakeTimeout.code, BrowserAuthErrorMessage.nativeHandshakeTimeout.desc);\r\n };\r\n /**\r\n * Create an error thrown when browser extension is not installed\r\n */\r\n BrowserAuthError.createNativeExtensionNotInstalledError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeExtensionNotInstalled.code, BrowserAuthErrorMessage.nativeExtensionNotInstalled.desc);\r\n };\r\n /**\r\n * Create an error when native connection has not been established\r\n * @returns\r\n */\r\n BrowserAuthError.createNativeConnectionNotEstablishedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeConnectionNotEstablished.code, BrowserAuthErrorMessage.nativeConnectionNotEstablished.desc);\r\n };\r\n /**\r\n * Create an error thrown when the initialize function hasn't been called\r\n */\r\n BrowserAuthError.createNativeBrokerCalledBeforeInitialize = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeBrokerCalledBeforeInitialize.code, BrowserAuthErrorMessage.nativeBrokerCalledBeforeInitialize.desc);\r\n };\r\n /**\r\n * Create an error thrown when requesting a token directly from the native platform with an unsupported prompt parameter e.g. select_account, login or create\r\n * These requests must go through eSTS to ensure eSTS is aware of the new account\r\n */\r\n BrowserAuthError.createNativePromptParameterNotSupportedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativePromptNotSupported.code, BrowserAuthErrorMessage.nativePromptNotSupported.desc);\r\n };\r\n return BrowserAuthError;\r\n}(AuthError));\n\nexport { BrowserAuthError, BrowserAuthErrorMessage };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserConfigurationAuthErrorMessage = {\r\n redirectUriNotSet: {\r\n code: \"redirect_uri_empty\",\r\n desc: \"A redirect URI is required for all calls, and none has been set.\"\r\n },\r\n postLogoutUriNotSet: {\r\n code: \"post_logout_uri_empty\",\r\n desc: \"A post logout redirect has not been set.\"\r\n },\r\n storageNotSupportedError: {\r\n code: \"storage_not_supported\",\r\n desc: \"Given storage configuration option was not supported.\"\r\n },\r\n noRedirectCallbacksSet: {\r\n code: \"no_redirect_callbacks\",\r\n desc: \"No redirect callbacks have been set. Please call setRedirectCallbacks() with the appropriate function arguments before continuing. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n invalidCallbackObject: {\r\n code: \"invalid_callback_object\",\r\n desc: \"The object passed for the callback was invalid. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n stubPcaInstanceCalled: {\r\n code: \"stubbed_public_client_application_called\",\r\n desc: \"Stub instance of Public Client Application was called. If using msal-react, please ensure context is not used without a provider. For more visit: aka.ms/msaljs/browser-errors\"\r\n },\r\n inMemRedirectUnavailable: {\r\n code: \"in_mem_redirect_unavailable\",\r\n desc: \"Redirect cannot be supported. In-memory storage was selected and storeAuthStateInCookie=false, which would cause the library to be unable to handle the incoming hash. If you would like to use the redirect API, please use session/localStorage or set storeAuthStateInCookie=true.\"\r\n },\r\n entropyNotProvided: {\r\n code: \"entropy_not_provided\",\r\n desc: \"The available browser crypto interface requires entropy set via system.cryptoOptions.entropy configuration option.\"\r\n }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserConfigurationAuthError = /** @class */ (function (_super) {\r\n __extends(BrowserConfigurationAuthError, _super);\r\n function BrowserConfigurationAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"BrowserConfigurationAuthError\";\r\n Object.setPrototypeOf(_this, BrowserConfigurationAuthError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when the redirect uri is empty (not set by caller)\r\n */\r\n BrowserConfigurationAuthError.createRedirectUriEmptyError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.redirectUriNotSet.code, BrowserConfigurationAuthErrorMessage.redirectUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\r\n */\r\n BrowserConfigurationAuthError.createPostLogoutRedirectUriEmptyError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.code, BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.desc);\r\n };\r\n /**\r\n * Creates error thrown when given storage location is not supported.\r\n * @param givenStorageLocation\r\n */\r\n BrowserConfigurationAuthError.createStorageNotSupportedError = function (givenStorageLocation) {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.storageNotSupportedError.code, BrowserConfigurationAuthErrorMessage.storageNotSupportedError.desc + \" Given Location: \" + givenStorageLocation);\r\n };\r\n /**\r\n * Creates error thrown when redirect callbacks are not set before calling loginRedirect() or acquireTokenRedirect().\r\n */\r\n BrowserConfigurationAuthError.createRedirectCallbacksNotSetError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.code, BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.desc);\r\n };\r\n /**\r\n * Creates error thrown when the stub instance of PublicClientApplication is called.\r\n */\r\n BrowserConfigurationAuthError.createStubPcaInstanceCalledError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.code, BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.desc);\r\n };\r\n /*\r\n * Create an error thrown when in-memory storage is used and storeAuthStateInCookie=false.\r\n */\r\n BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.code, BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a crypto interface that requires entropy is initialized without entropy\r\n */\r\n BrowserConfigurationAuthError.createEntropyNotProvided = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.entropyNotProvided.code, BrowserConfigurationAuthErrorMessage.entropyNotProvided.desc);\r\n };\r\n return BrowserConfigurationAuthError;\r\n}(AuthError));\n\nexport { BrowserConfigurationAuthError, BrowserConfigurationAuthErrorMessage };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { InteractionRequiredAuthError, AuthError } from '@azure/msal-common';\nimport { BrowserAuthError } from './BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NativeStatusCode;\r\n(function (NativeStatusCode) {\r\n NativeStatusCode[\"USER_INTERACTION_REQUIRED\"] = \"USER_INTERACTION_REQUIRED\";\r\n NativeStatusCode[\"USER_CANCEL\"] = \"USER_CANCEL\";\r\n NativeStatusCode[\"NO_NETWORK\"] = \"NO_NETWORK\";\r\n NativeStatusCode[\"TRANSIENT_ERROR\"] = \"TRANSIENT_ERROR\";\r\n NativeStatusCode[\"PERSISTENT_ERROR\"] = \"PERSISTENT_ERROR\";\r\n NativeStatusCode[\"DISABLED\"] = \"DISABLED\";\r\n NativeStatusCode[\"ACCOUNT_UNAVAILABLE\"] = \"ACCOUNT_UNAVAILABLE\";\r\n})(NativeStatusCode || (NativeStatusCode = {}));\r\nvar NativeAuthErrorMessage = {\r\n extensionError: {\r\n code: \"ContentError\"\r\n },\r\n userSwitch: {\r\n code: \"user_switch\",\r\n desc: \"User attempted to switch accounts in the native broker, which is not allowed. All new accounts must sign-in through the standard web flow first, please try again.\"\r\n },\r\n tokensNotFoundInCache: {\r\n code: \"tokens_not_found_in_internal_memory_cache\",\r\n desc: \"Tokens not cached in MSAL JS internal memory, please make the WAM request\"\r\n }\r\n};\r\nvar NativeAuthError = /** @class */ (function (_super) {\r\n __extends(NativeAuthError, _super);\r\n function NativeAuthError(errorCode, description, ext) {\r\n var _this = _super.call(this, errorCode, description) || this;\r\n Object.setPrototypeOf(_this, NativeAuthError.prototype);\r\n _this.name = \"NativeAuthError\";\r\n _this.ext = ext;\r\n return _this;\r\n }\r\n /**\r\n * These errors should result in a fallback to the 'standard' browser based auth flow.\r\n */\r\n NativeAuthError.prototype.isFatal = function () {\r\n if (this.ext && this.ext.status && (this.ext.status === NativeStatusCode.PERSISTENT_ERROR || this.ext.status === NativeStatusCode.DISABLED)) {\r\n return true;\r\n }\r\n switch (this.errorCode) {\r\n case NativeAuthErrorMessage.extensionError.code:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n };\r\n /**\r\n * Create the appropriate error object based on the WAM status code.\r\n * @param code\r\n * @param description\r\n * @param ext\r\n * @returns\r\n */\r\n NativeAuthError.createError = function (code, description, ext) {\r\n if (ext && ext.status) {\r\n switch (ext.status) {\r\n case NativeStatusCode.ACCOUNT_UNAVAILABLE:\r\n return InteractionRequiredAuthError.createNativeAccountUnavailableError();\r\n case NativeStatusCode.USER_INTERACTION_REQUIRED:\r\n return new InteractionRequiredAuthError(code, description);\r\n case NativeStatusCode.USER_CANCEL:\r\n return BrowserAuthError.createUserCancelledError();\r\n case NativeStatusCode.NO_NETWORK:\r\n return BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n }\r\n return new NativeAuthError(code, description, ext);\r\n };\r\n /**\r\n * Creates user switch error when the user chooses a different account in the native broker prompt\r\n * @returns\r\n */\r\n NativeAuthError.createUserSwitchError = function () {\r\n return new NativeAuthError(NativeAuthErrorMessage.userSwitch.code, NativeAuthErrorMessage.userSwitch.desc);\r\n };\r\n /**\r\n * Creates a tokens not found error when the internal cache look up fails\r\n * @returns NativeAuthError: tokensNotFoundInCache\r\n */\r\n NativeAuthError.createTokensNotFoundInCacheError = function () {\r\n return new NativeAuthError(NativeAuthErrorMessage.tokensNotFoundInCache.code, NativeAuthErrorMessage.tokensNotFoundInCache.desc);\r\n };\r\n return NativeAuthError;\r\n}(AuthError));\n\nexport { NativeAuthError, NativeAuthErrorMessage, NativeStatusCode };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { AccountEntity, CacheManager } from '@azure/msal-common';\nimport { EventType } from './EventType.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventHandler = /** @class */ (function () {\r\n function EventHandler(logger, browserCrypto) {\r\n this.eventCallbacks = new Map();\r\n this.logger = logger;\r\n this.browserCrypto = browserCrypto;\r\n this.listeningToStorageEvents = false;\r\n this.handleAccountCacheChange = this.handleAccountCacheChange.bind(this);\r\n }\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback\r\n */\r\n EventHandler.prototype.addEventCallback = function (callback) {\r\n if (typeof window !== \"undefined\") {\r\n var callbackId = this.browserCrypto.createNewGuid();\r\n this.eventCallbacks.set(callbackId, callback);\r\n this.logger.verbose(\"Event callback registered with id: \" + callbackId);\r\n return callbackId;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n EventHandler.prototype.removeEventCallback = function (callbackId) {\r\n this.eventCallbacks.delete(callbackId);\r\n this.logger.verbose(\"Event callback \" + callbackId + \" removed.\");\r\n };\r\n /**\r\n * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n EventHandler.prototype.enableAccountStorageEvents = function () {\r\n if (typeof window === \"undefined\") {\r\n return;\r\n }\r\n if (!this.listeningToStorageEvents) {\r\n this.logger.verbose(\"Adding account storage listener.\");\r\n this.listeningToStorageEvents = true;\r\n window.addEventListener(\"storage\", this.handleAccountCacheChange);\r\n }\r\n else {\r\n this.logger.verbose(\"Account storage listener already registered.\");\r\n }\r\n };\r\n /**\r\n * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n EventHandler.prototype.disableAccountStorageEvents = function () {\r\n if (typeof window === \"undefined\") {\r\n return;\r\n }\r\n if (this.listeningToStorageEvents) {\r\n this.logger.verbose(\"Removing account storage listener.\");\r\n window.removeEventListener(\"storage\", this.handleAccountCacheChange);\r\n this.listeningToStorageEvents = false;\r\n }\r\n else {\r\n this.logger.verbose(\"No account storage listener registered.\");\r\n }\r\n };\r\n /**\r\n * Emits events by calling callback with event message\r\n * @param eventType\r\n * @param interactionType\r\n * @param payload\r\n * @param error\r\n */\r\n EventHandler.prototype.emitEvent = function (eventType, interactionType, payload, error) {\r\n var _this = this;\r\n if (typeof window !== \"undefined\") {\r\n var message_1 = {\r\n eventType: eventType,\r\n interactionType: interactionType || null,\r\n payload: payload || null,\r\n error: error || null,\r\n timestamp: Date.now()\r\n };\r\n this.logger.info(\"Emitting event: \" + eventType);\r\n this.eventCallbacks.forEach(function (callback, callbackId) {\r\n _this.logger.verbose(\"Emitting event to callback \" + callbackId + \": \" + eventType);\r\n callback.apply(null, [message_1]);\r\n });\r\n }\r\n };\r\n /**\r\n * Emit account added/removed events when cached accounts are changed in a different tab or frame\r\n */\r\n EventHandler.prototype.handleAccountCacheChange = function (e) {\r\n try {\r\n var cacheValue = e.newValue || e.oldValue;\r\n if (!cacheValue) {\r\n return;\r\n }\r\n var parsedValue = JSON.parse(cacheValue);\r\n if (typeof parsedValue !== \"object\" || !AccountEntity.isAccountEntity(parsedValue)) {\r\n return;\r\n }\r\n var accountEntity = CacheManager.toObject(new AccountEntity(), parsedValue);\r\n var accountInfo = accountEntity.getAccountInfo();\r\n if (!e.oldValue && e.newValue) {\r\n this.logger.info(\"Account was added to cache in a different window\");\r\n this.emitEvent(EventType.ACCOUNT_ADDED, undefined, accountInfo);\r\n }\r\n else if (!e.newValue && e.oldValue) {\r\n this.logger.info(\"Account was removed from cache in a different window\");\r\n this.emitEvent(EventType.ACCOUNT_REMOVED, undefined, accountInfo);\r\n }\r\n }\r\n catch (e) {\r\n return;\r\n }\r\n };\r\n return EventHandler;\r\n}());\n\nexport { EventHandler };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { EventType } from './EventType.js';\nimport { InteractionType, InteractionStatus } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventMessageUtils = /** @class */ (function () {\r\n function EventMessageUtils() {\r\n }\r\n /**\r\n * Gets interaction status from event message\r\n * @param message\r\n * @param currentStatus\r\n */\r\n EventMessageUtils.getInteractionStatusFromEvent = function (message, currentStatus) {\r\n switch (message.eventType) {\r\n case EventType.LOGIN_START:\r\n return InteractionStatus.Login;\r\n case EventType.SSO_SILENT_START:\r\n return InteractionStatus.SsoSilent;\r\n case EventType.ACQUIRE_TOKEN_START:\r\n if (message.interactionType === InteractionType.Redirect || message.interactionType === InteractionType.Popup) {\r\n return InteractionStatus.AcquireToken;\r\n }\r\n break;\r\n case EventType.HANDLE_REDIRECT_START:\r\n return InteractionStatus.HandleRedirect;\r\n case EventType.LOGOUT_START:\r\n return InteractionStatus.Logout;\r\n case EventType.SSO_SILENT_SUCCESS:\r\n case EventType.SSO_SILENT_FAILURE:\r\n if (currentStatus && currentStatus !== InteractionStatus.SsoSilent) {\r\n // Prevent this event from clearing any status other than ssoSilent\r\n break;\r\n }\r\n return InteractionStatus.None;\r\n case EventType.LOGOUT_END:\r\n if (currentStatus && currentStatus !== InteractionStatus.Logout) {\r\n // Prevent this event from clearing any status other than logout\r\n break;\r\n }\r\n return InteractionStatus.None;\r\n case EventType.HANDLE_REDIRECT_END:\r\n if (currentStatus && currentStatus !== InteractionStatus.HandleRedirect) {\r\n // Prevent this event from clearing any status other than handleRedirect\r\n break;\r\n }\r\n return InteractionStatus.None;\r\n case EventType.LOGIN_SUCCESS:\r\n case EventType.LOGIN_FAILURE:\r\n case EventType.ACQUIRE_TOKEN_SUCCESS:\r\n case EventType.ACQUIRE_TOKEN_FAILURE:\r\n if (message.interactionType === InteractionType.Redirect || message.interactionType === InteractionType.Popup) {\r\n if (currentStatus && currentStatus !== InteractionStatus.Login && currentStatus !== InteractionStatus.AcquireToken) {\r\n // Prevent this event from clearing any status other than login or acquireToken\r\n break;\r\n }\r\n return InteractionStatus.None;\r\n }\r\n break;\r\n }\r\n return null;\r\n };\r\n return EventMessageUtils;\r\n}());\n\nexport { EventMessageUtils };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventType;\r\n(function (EventType) {\r\n EventType[\"INITIALIZE_START\"] = \"msal:initializeStart\";\r\n EventType[\"INITIALIZE_END\"] = \"msal:initializeEnd\";\r\n EventType[\"ACCOUNT_ADDED\"] = \"msal:accountAdded\";\r\n EventType[\"ACCOUNT_REMOVED\"] = \"msal:accountRemoved\";\r\n EventType[\"LOGIN_START\"] = \"msal:loginStart\";\r\n EventType[\"LOGIN_SUCCESS\"] = \"msal:loginSuccess\";\r\n EventType[\"LOGIN_FAILURE\"] = \"msal:loginFailure\";\r\n EventType[\"ACQUIRE_TOKEN_START\"] = \"msal:acquireTokenStart\";\r\n EventType[\"ACQUIRE_TOKEN_SUCCESS\"] = \"msal:acquireTokenSuccess\";\r\n EventType[\"ACQUIRE_TOKEN_FAILURE\"] = \"msal:acquireTokenFailure\";\r\n EventType[\"ACQUIRE_TOKEN_NETWORK_START\"] = \"msal:acquireTokenFromNetworkStart\";\r\n EventType[\"SSO_SILENT_START\"] = \"msal:ssoSilentStart\";\r\n EventType[\"SSO_SILENT_SUCCESS\"] = \"msal:ssoSilentSuccess\";\r\n EventType[\"SSO_SILENT_FAILURE\"] = \"msal:ssoSilentFailure\";\r\n EventType[\"ACQUIRE_TOKEN_BY_CODE_START\"] = \"msal:acquireTokenByCodeStart\";\r\n EventType[\"ACQUIRE_TOKEN_BY_CODE_SUCCESS\"] = \"msal:acquireTokenByCodeSuccess\";\r\n EventType[\"ACQUIRE_TOKEN_BY_CODE_FAILURE\"] = \"msal:acquireTokenByCodeFailure\";\r\n EventType[\"HANDLE_REDIRECT_START\"] = \"msal:handleRedirectStart\";\r\n EventType[\"HANDLE_REDIRECT_END\"] = \"msal:handleRedirectEnd\";\r\n EventType[\"POPUP_OPENED\"] = \"msal:popupOpened\";\r\n EventType[\"LOGOUT_START\"] = \"msal:logoutStart\";\r\n EventType[\"LOGOUT_SUCCESS\"] = \"msal:logoutSuccess\";\r\n EventType[\"LOGOUT_FAILURE\"] = \"msal:logoutFailure\";\r\n EventType[\"LOGOUT_END\"] = \"msal:logoutEnd\";\r\n})(EventType || (EventType = {}));\n\nexport { EventType };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator, __spread, __assign } from '../_virtual/_tslib.js';\nimport { AccountEntity, PerformanceEvents, AuthenticationScheme, ClientConfigurationError, StringUtils, UrlString, ServerTelemetryManager, AuthorityFactory } from '@azure/msal-common';\nimport { version } from '../packageMetadata.js';\nimport { BrowserConstants } from '../utils/BrowserConstants.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BaseInteractionClient = /** @class */ (function () {\r\n function BaseInteractionClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) {\r\n this.config = config;\r\n this.browserStorage = storageImpl;\r\n this.browserCrypto = browserCrypto;\r\n this.networkClient = this.config.system.networkClient;\r\n this.eventHandler = eventHandler;\r\n this.navigationClient = navigationClient;\r\n this.nativeMessageHandler = nativeMessageHandler;\r\n this.correlationId = correlationId || this.browserCrypto.createNewGuid();\r\n this.logger = logger.clone(BrowserConstants.MSAL_SKU, version, this.correlationId);\r\n this.performanceClient = performanceClient;\r\n }\r\n BaseInteractionClient.prototype.clearCacheOnLogout = function (account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!account) return [3 /*break*/, 5];\r\n if (AccountEntity.accountInfoIsEqual(account, this.browserStorage.getActiveAccount(), false)) {\r\n this.logger.verbose(\"Setting active account to null\");\r\n this.browserStorage.setActiveAccount(null);\r\n }\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.browserStorage.removeAccount(AccountEntity.generateAccountCacheKey(account))];\r\n case 2:\r\n _a.sent();\r\n this.logger.verbose(\"Cleared cache items belonging to the account provided in the logout request.\");\r\n return [3 /*break*/, 4];\r\n case 3:\r\n _a.sent();\r\n this.logger.error(\"Account provided in logout request was not found. Local cache unchanged.\");\r\n return [3 /*break*/, 4];\r\n case 4: return [3 /*break*/, 9];\r\n case 5:\r\n _a.trys.push([5, 8, , 9]);\r\n this.logger.verbose(\"No account provided in logout request, clearing all cache items.\", this.correlationId);\r\n // Clear all accounts and tokens\r\n return [4 /*yield*/, this.browserStorage.clear()];\r\n case 6:\r\n // Clear all accounts and tokens\r\n _a.sent();\r\n // Clear any stray keys from IndexedDB\r\n return [4 /*yield*/, this.browserCrypto.clearKeystore()];\r\n case 7:\r\n // Clear any stray keys from IndexedDB\r\n _a.sent();\r\n return [3 /*break*/, 9];\r\n case 8:\r\n _a.sent();\r\n this.logger.error(\"Attempted to clear all MSAL cache items and failed. Local cache unchanged.\");\r\n return [3 /*break*/, 9];\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Initializer function for all request APIs\r\n * @param request\r\n */\r\n BaseInteractionClient.prototype.initializeBaseRequest = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authority, scopes, validatedRequest, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.InitializeBaseRequest, request.correlationId);\r\n this.logger.verbose(\"Initializing BaseAuthRequest\");\r\n authority = request.authority || this.config.auth.authority;\r\n scopes = __spread(((request && request.scopes) || []));\r\n validatedRequest = __assign(__assign({}, request), { correlationId: this.correlationId, authority: authority,\r\n scopes: scopes });\r\n // Set authenticationScheme to BEARER if not explicitly set in the request\r\n if (!validatedRequest.authenticationScheme) {\r\n validatedRequest.authenticationScheme = AuthenticationScheme.BEARER;\r\n this.logger.verbose(\"Authentication Scheme wasn't explicitly set in request, defaulting to \\\"Bearer\\\" request\");\r\n }\r\n else {\r\n if (validatedRequest.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (!request.sshJwk) {\r\n throw ClientConfigurationError.createMissingSshJwkError();\r\n }\r\n if (!request.sshKid) {\r\n throw ClientConfigurationError.createMissingSshKidError();\r\n }\r\n }\r\n this.logger.verbose(\"Authentication Scheme set to \\\"\" + validatedRequest.authenticationScheme + \"\\\" as configured in Auth request\");\r\n }\r\n if (!(request.claims && !StringUtils.isEmpty(request.claims))) return [3 /*break*/, 2];\r\n _a = validatedRequest;\r\n return [4 /*yield*/, this.browserCrypto.hashString(request.claims)];\r\n case 1:\r\n _a.requestedClaimsHash = _b.sent();\r\n _b.label = 2;\r\n case 2: return [2 /*return*/, validatedRequest];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * Use to get the redirect uri configured in MSAL or null.\r\n * @param requestRedirectUri\r\n * @returns Redirect URL\r\n *\r\n */\r\n BaseInteractionClient.prototype.getRedirectUri = function (requestRedirectUri) {\r\n this.logger.verbose(\"getRedirectUri called\");\r\n var redirectUri = requestRedirectUri || this.config.auth.redirectUri || BrowserUtils.getCurrentUri();\r\n return UrlString.getAbsoluteUrl(redirectUri, BrowserUtils.getCurrentUri());\r\n };\r\n /**\r\n *\r\n * @param apiId\r\n * @param correlationId\r\n * @param forceRefresh\r\n */\r\n BaseInteractionClient.prototype.initializeServerTelemetryManager = function (apiId, forceRefresh) {\r\n this.logger.verbose(\"initializeServerTelemetryManager called\");\r\n var telemetryPayload = {\r\n clientId: this.config.auth.clientId,\r\n correlationId: this.correlationId,\r\n apiId: apiId,\r\n forceRefresh: forceRefresh || false,\r\n wrapperSKU: this.browserStorage.getWrapperMetadata()[0],\r\n wrapperVer: this.browserStorage.getWrapperMetadata()[1]\r\n };\r\n return new ServerTelemetryManager(telemetryPayload, this.browserStorage);\r\n };\r\n /**\r\n * Used to get a discovered version of the default authority.\r\n * @param requestAuthority\r\n * @param requestCorrelationId\r\n */\r\n BaseInteractionClient.prototype.getDiscoveredAuthority = function (requestAuthority) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authorityOptions;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"getDiscoveredAuthority called\");\r\n authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata\r\n };\r\n if (!requestAuthority) return [3 /*break*/, 2];\r\n this.logger.verbose(\"Creating discovered authority with request authority\");\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(requestAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions, this.logger)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2:\r\n this.logger.verbose(\"Creating discovered authority with configured authority\");\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(this.config.auth.authority, this.config.system.networkClient, this.browserStorage, authorityOptions, this.logger)];\r\n case 3: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return BaseInteractionClient;\r\n}());\n\nexport { BaseInteractionClient };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthorizationCodeClient } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar HybridSpaAuthorizationCodeClient = /** @class */ (function (_super) {\r\n __extends(HybridSpaAuthorizationCodeClient, _super);\r\n function HybridSpaAuthorizationCodeClient(config) {\r\n var _this = _super.call(this, config) || this;\r\n _this.includeRedirectUri = false;\r\n return _this;\r\n }\r\n return HybridSpaAuthorizationCodeClient;\r\n}(AuthorizationCodeClient));\n\nexport { HybridSpaAuthorizationCodeClient };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __extends, __awaiter, __generator, __rest, __assign } from '../_virtual/_tslib.js';\nimport { ScopeSet, AuthToken, Constants, AccountEntity, AuthorityType, IdTokenEntity, AccessTokenEntity, PerformanceEvents, TimeUtils, ClientAuthError, AuthenticationScheme, PopTokenGenerator, UrlString, OIDC_DEFAULT_SCOPES, PromptValue } from '@azure/msal-common';\nimport { BaseInteractionClient } from './BaseInteractionClient.js';\nimport { TemporaryCacheKeys, NativeExtensionMethod, NativeConstants, ApiId } from '../utils/BrowserConstants.js';\nimport { NativeAuthError } from '../error/NativeAuthError.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { SilentCacheClient } from './SilentCacheClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NativeInteractionClient = /** @class */ (function (_super) {\r\n __extends(NativeInteractionClient, _super);\r\n function NativeInteractionClient(config, browserStorage, browserCrypto, logger, eventHandler, navigationClient, apiId, performanceClient, provider, accountId, nativeStorageImpl, correlationId) {\r\n var _this = _super.call(this, config, browserStorage, browserCrypto, logger, eventHandler, navigationClient, performanceClient, provider, correlationId) || this;\r\n _this.apiId = apiId;\r\n _this.accountId = accountId;\r\n _this.nativeMessageHandler = provider;\r\n _this.nativeStorageManager = nativeStorageImpl;\r\n _this.silentCacheClient = new SilentCacheClient(config, _this.nativeStorageManager, browserCrypto, logger, eventHandler, navigationClient, performanceClient, provider, correlationId);\r\n return _this;\r\n }\r\n /**\r\n * Acquire token from native platform via browser extension\r\n * @param request\r\n */\r\n NativeInteractionClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var nativeATMeasurement, reqTimestamp, nativeRequest, result, messageBody, response, validatedResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - acquireToken called.\");\r\n nativeATMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.NativeInteractionClientAcquireToken, request.correlationId);\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n return [4 /*yield*/, this.initializeNativeRequest(request)];\r\n case 1:\r\n nativeRequest = _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n return [4 /*yield*/, this.acquireTokensFromCache(this.accountId, nativeRequest)];\r\n case 3:\r\n result = _a.sent();\r\n nativeATMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: false,\r\n fromCache: true\r\n });\r\n return [2 /*return*/, result];\r\n case 4:\r\n _a.sent();\r\n // continue with a native call for any and all errors\r\n this.logger.info(\"MSAL internal Cache does not contain tokens, proceed to make a native call\");\r\n return [3 /*break*/, 5];\r\n case 5:\r\n messageBody = {\r\n method: NativeExtensionMethod.GetToken,\r\n request: nativeRequest\r\n };\r\n return [4 /*yield*/, this.nativeMessageHandler.sendMessage(messageBody)];\r\n case 6:\r\n response = _a.sent();\r\n validatedResponse = this.validateNativeResponse(response);\r\n return [2 /*return*/, this.handleNativeResponse(validatedResponse, nativeRequest, reqTimestamp)\r\n .then(function (result) {\r\n nativeATMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: true,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n nativeATMeasurement.endMeasurement({\r\n success: false,\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n isNativeBroker: true\r\n });\r\n throw error;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates silent flow request\r\n * @param request\r\n * @param cachedAccount\r\n * @returns CommonSilentFlowRequest\r\n */\r\n NativeInteractionClient.prototype.createSilentCacheRequest = function (request, cachedAccount) {\r\n return {\r\n authority: request.authority,\r\n correlationId: this.correlationId,\r\n scopes: ScopeSet.fromString(request.scope).asArray(),\r\n account: cachedAccount,\r\n forceRefresh: false,\r\n };\r\n };\r\n /**\r\n * Fetches the tokens from the cache if un-expired\r\n * @param nativeAccountId\r\n * @param request\r\n * @returns authenticationResult\r\n */\r\n NativeInteractionClient.prototype.acquireTokensFromCache = function (nativeAccountId, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var account, silentRequest, result, e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!nativeAccountId) {\r\n this.logger.warning(\"NativeInteractionClient:acquireTokensFromCache - No nativeAccountId provided\");\r\n throw ClientAuthError.createNoAccountFoundError();\r\n }\r\n account = this.browserStorage.getAccountInfoFilteredBy({ nativeAccountId: nativeAccountId });\r\n if (!account) {\r\n throw ClientAuthError.createNoAccountFoundError();\r\n }\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n silentRequest = this.createSilentCacheRequest(request, account);\r\n return [4 /*yield*/, this.silentCacheClient.acquireToken(silentRequest)];\r\n case 2:\r\n result = _a.sent();\r\n return [2 /*return*/, result];\r\n case 3:\r\n e_2 = _a.sent();\r\n throw e_2;\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Acquires a token from native platform then redirects to the redirectUri instead of returning the response\r\n * @param request\r\n */\r\n NativeInteractionClient.prototype.acquireTokenRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var nativeRequest, messageBody, response, e_3, navigationOptions, redirectUri;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - acquireTokenRedirect called.\");\r\n return [4 /*yield*/, this.initializeNativeRequest(request)];\r\n case 1:\r\n nativeRequest = _a.sent();\r\n messageBody = {\r\n method: NativeExtensionMethod.GetToken,\r\n request: nativeRequest\r\n };\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n return [4 /*yield*/, this.nativeMessageHandler.sendMessage(messageBody)];\r\n case 3:\r\n response = _a.sent();\r\n this.validateNativeResponse(response);\r\n return [3 /*break*/, 5];\r\n case 4:\r\n e_3 = _a.sent();\r\n // Only throw fatal errors here to allow application to fallback to regular redirect. Otherwise proceed and the error will be thrown in handleRedirectPromise\r\n if (e_3 instanceof NativeAuthError && e_3.isFatal()) {\r\n throw e_3;\r\n }\r\n return [3 /*break*/, 5];\r\n case 5:\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.NATIVE_REQUEST, JSON.stringify(nativeRequest), true);\r\n navigationOptions = {\r\n apiId: ApiId.acquireTokenRedirect,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n redirectUri = this.config.auth.navigateToLoginRequestUrl ? window.location.href : this.getRedirectUri(request.redirectUri);\r\n return [4 /*yield*/, this.navigationClient.navigateExternal(redirectUri, navigationOptions)];\r\n case 6:\r\n _a.sent(); // Need to treat this as external to ensure handleRedirectPromise is run again\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * If the previous page called native platform for a token using redirect APIs, send the same request again and return the response\r\n */\r\n NativeInteractionClient.prototype.handleRedirectPromise = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cachedRequest, prompt, request, messageBody, reqTimestamp, response, result, e_4;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - handleRedirectPromise called.\");\r\n if (!this.browserStorage.isInteractionInProgress(true)) {\r\n this.logger.info(\"handleRedirectPromise called but there is no interaction in progress, returning null.\");\r\n return [2 /*return*/, null];\r\n }\r\n cachedRequest = this.browserStorage.getCachedNativeRequest();\r\n if (!cachedRequest) {\r\n this.logger.verbose(\"NativeInteractionClient - handleRedirectPromise called but there is no cached request, returning null.\");\r\n return [2 /*return*/, null];\r\n }\r\n prompt = cachedRequest.prompt, request = __rest(cachedRequest, [\"prompt\"]);\r\n if (prompt) {\r\n this.logger.verbose(\"NativeInteractionClient - handleRedirectPromise called and prompt was included in the original request, removing prompt from cached request to prevent second interaction with native broker window.\");\r\n }\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.NATIVE_REQUEST));\r\n messageBody = {\r\n method: NativeExtensionMethod.GetToken,\r\n request: request\r\n };\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"NativeInteractionClient - handleRedirectPromise sending message to native broker.\");\r\n return [4 /*yield*/, this.nativeMessageHandler.sendMessage(messageBody)];\r\n case 2:\r\n response = _a.sent();\r\n this.validateNativeResponse(response);\r\n result = this.handleNativeResponse(response, request, reqTimestamp);\r\n this.browserStorage.setInteractionInProgress(false);\r\n return [2 /*return*/, result];\r\n case 3:\r\n e_4 = _a.sent();\r\n this.browserStorage.setInteractionInProgress(false);\r\n throw e_4;\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Logout from native platform via browser extension\r\n * @param request\r\n */\r\n NativeInteractionClient.prototype.logout = function () {\r\n this.logger.trace(\"NativeInteractionClient - logout called.\");\r\n return Promise.reject(\"Logout not implemented yet\");\r\n };\r\n /**\r\n * Transform response from native platform into AuthenticationResult object which will be returned to the end user\r\n * @param response\r\n * @param request\r\n * @param reqTimestamp\r\n */\r\n NativeInteractionClient.prototype.handleNativeResponse = function (response, request, reqTimestamp) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authority, authorityPreferredCache, idTokenObj, homeAccountIdentifier, accountEntity, result;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - handleNativeResponse called.\");\r\n if (response.account.id !== request.accountId) {\r\n // User switch in native broker prompt is not supported. All users must first sign in through web flow to ensure server state is in sync\r\n throw NativeAuthError.createUserSwitchError();\r\n }\r\n return [4 /*yield*/, this.getDiscoveredAuthority(request.authority)];\r\n case 1:\r\n authority = _a.sent();\r\n authorityPreferredCache = authority.getPreferredCache();\r\n idTokenObj = this.createIdTokenObj(response);\r\n homeAccountIdentifier = this.createHomeAccountIdentifier(response, idTokenObj);\r\n accountEntity = this.createAccountEntity(response, homeAccountIdentifier, idTokenObj, authorityPreferredCache);\r\n return [4 /*yield*/, this.generateAuthenticationResult(response, request, idTokenObj, accountEntity, authority.canonicalAuthority, reqTimestamp)];\r\n case 2:\r\n result = _a.sent();\r\n // cache accounts and tokens in the appropriate storage\r\n this.cacheAccount(accountEntity);\r\n this.cacheNativeTokens(response, request, homeAccountIdentifier, idTokenObj, result.accessToken, result.tenantId, reqTimestamp);\r\n return [2 /*return*/, result];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Create an idToken Object (not entity)\r\n * @param response\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.createIdTokenObj = function (response) {\r\n return new AuthToken(response.id_token || Constants.EMPTY_STRING, this.browserCrypto);\r\n };\r\n /**\r\n * creates an homeAccountIdentifier for the account\r\n * @param response\r\n * @param idTokenObj\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.createHomeAccountIdentifier = function (response, idTokenObj) {\r\n // Save account in browser storage\r\n var homeAccountIdentifier = AccountEntity.generateHomeAccountId(response.client_info || Constants.EMPTY_STRING, AuthorityType.Default, this.logger, this.browserCrypto, idTokenObj);\r\n return homeAccountIdentifier;\r\n };\r\n /**\r\n * Creates account entity\r\n * @param response\r\n * @param homeAccountIdentifier\r\n * @param idTokenObj\r\n * @param authority\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.createAccountEntity = function (response, homeAccountIdentifier, idTokenObj, authority) {\r\n return AccountEntity.createAccount(response.client_info, homeAccountIdentifier, idTokenObj, undefined, undefined, undefined, authority, response.account.id);\r\n };\r\n /**\r\n * Helper to generate scopes\r\n * @param response\r\n * @param request\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.generateScopes = function (response, request) {\r\n return response.scope ? ScopeSet.fromString(response.scope) : ScopeSet.fromString(request.scope);\r\n };\r\n /**\r\n * If PoP token is requesred, records the PoP token if returned from the WAM, else generates one in the browser\r\n * @param request\r\n * @param response\r\n */\r\n NativeInteractionClient.prototype.generatePopAccessToken = function (response, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var popTokenGenerator, shrParameters;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!(request.tokenType === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n /**\r\n * This code prioritizes SHR returned from the native layer. In case of error/SHR not calculated from WAM and the AT\r\n * is still received, SHR is calculated locally\r\n */\r\n // Check if native layer returned an SHR token\r\n if (response.shr) {\r\n this.logger.trace(\"handleNativeServerResponse: SHR is enabled in native layer\");\r\n return [2 /*return*/, response.shr];\r\n }\r\n popTokenGenerator = new PopTokenGenerator(this.browserCrypto);\r\n shrParameters = {\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n shrNonce: request.shrNonce\r\n };\r\n /**\r\n * KeyID must be present in the native request from when the PoP key was generated in order for\r\n * PopTokenGenerator to query the full key for signing\r\n */\r\n if (!request.keyId) {\r\n throw ClientAuthError.createKeyIdMissingError();\r\n }\r\n return [4 /*yield*/, popTokenGenerator.signPopToken(response.access_token, request.keyId, shrParameters)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [2 /*return*/, response.access_token];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates authentication result\r\n * @param response\r\n * @param request\r\n * @param idTokenObj\r\n * @param accountEntity\r\n * @param authority\r\n * @param reqTimestamp\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.generateAuthenticationResult = function (response, request, idTokenObj, accountEntity, authority, reqTimestamp) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var mats, responseScopes, accountProperties, uid, tid, responseAccessToken, tokenType, result;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n mats = this.addTelemetryFromNativeResponse(response);\r\n responseScopes = response.scope ? ScopeSet.fromString(response.scope) : ScopeSet.fromString(request.scope);\r\n accountProperties = response.account.properties || {};\r\n uid = accountProperties[\"UID\"] || idTokenObj.claims.oid || idTokenObj.claims.sub || Constants.EMPTY_STRING;\r\n tid = accountProperties[\"TenantId\"] || idTokenObj.claims.tid || Constants.EMPTY_STRING;\r\n return [4 /*yield*/, this.generatePopAccessToken(response, request)];\r\n case 1:\r\n responseAccessToken = _a.sent();\r\n tokenType = (request.tokenType === AuthenticationScheme.POP) ? AuthenticationScheme.POP : AuthenticationScheme.BEARER;\r\n result = {\r\n authority: authority,\r\n uniqueId: uid,\r\n tenantId: tid,\r\n scopes: responseScopes.asArray(),\r\n account: accountEntity.getAccountInfo(),\r\n idToken: response.id_token,\r\n idTokenClaims: idTokenObj.claims,\r\n accessToken: responseAccessToken,\r\n fromCache: mats ? this.isResponseFromCache(mats) : false,\r\n expiresOn: new Date(Number(reqTimestamp + response.expires_in) * 1000),\r\n tokenType: tokenType,\r\n correlationId: this.correlationId,\r\n state: response.state,\r\n fromNativeBroker: true\r\n };\r\n return [2 /*return*/, result];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * cache the account entity in browser storage\r\n * @param accountEntity\r\n */\r\n NativeInteractionClient.prototype.cacheAccount = function (accountEntity) {\r\n var _this = this;\r\n // Store the account info and hence `nativeAccountId` in browser cache\r\n this.browserStorage.setAccount(accountEntity);\r\n // Remove any existing cached tokens for this account in browser storage\r\n this.browserStorage.removeAccountContext(accountEntity).catch(function (e) {\r\n _this.logger.error(\"Error occurred while removing account context from browser storage. \" + e);\r\n });\r\n };\r\n /**\r\n * Stores the access_token and id_token in inmemory storage\r\n * @param response\r\n * @param request\r\n * @param homeAccountIdentifier\r\n * @param idTokenObj\r\n * @param responseAccessToken\r\n * @param tenantId\r\n * @param reqTimestamp\r\n */\r\n NativeInteractionClient.prototype.cacheNativeTokens = function (response, request, homeAccountIdentifier, idTokenObj, responseAccessToken, tenantId, reqTimestamp) {\r\n // cache idToken in inmemory storage\r\n var idTokenEntity = IdTokenEntity.createIdTokenEntity(homeAccountIdentifier, request.authority, response.id_token || Constants.EMPTY_STRING, request.clientId, idTokenObj.claims.tid || Constants.EMPTY_STRING);\r\n this.nativeStorageManager.setIdTokenCredential(idTokenEntity);\r\n // cache accessToken in inmemory storage\r\n var expiresIn = (request.tokenType === AuthenticationScheme.POP)\r\n ? Constants.SHR_NONCE_VALIDITY\r\n : (typeof response.expires_in === \"string\"\r\n ? parseInt(response.expires_in, 10)\r\n : response.expires_in) || 0;\r\n var tokenExpirationSeconds = reqTimestamp + expiresIn;\r\n var responseScopes = this.generateScopes(response, request);\r\n var accessTokenEntity = AccessTokenEntity.createAccessTokenEntity(homeAccountIdentifier, request.authority, responseAccessToken, request.clientId, tenantId, responseScopes.printScopes(), tokenExpirationSeconds, 0, this.browserCrypto);\r\n this.nativeStorageManager.setAccessTokenCredential(accessTokenEntity);\r\n };\r\n NativeInteractionClient.prototype.addTelemetryFromNativeResponse = function (response) {\r\n var mats = this.getMATSFromResponse(response);\r\n if (!mats) {\r\n return null;\r\n }\r\n this.performanceClient.addStaticFields({\r\n extensionId: this.nativeMessageHandler.getExtensionId(),\r\n extensionVersion: this.nativeMessageHandler.getExtensionVersion(),\r\n matsBrokerVersion: mats.broker_version,\r\n matsAccountJoinOnStart: mats.account_join_on_start,\r\n matsAccountJoinOnEnd: mats.account_join_on_end,\r\n matsDeviceJoin: mats.device_join,\r\n matsPromptBehavior: mats.prompt_behavior,\r\n matsApiErrorCode: mats.api_error_code,\r\n matsUiVisible: mats.ui_visible,\r\n matsSilentCode: mats.silent_code,\r\n matsSilentBiSubCode: mats.silent_bi_sub_code,\r\n matsSilentMessage: mats.silent_message,\r\n matsSilentStatus: mats.silent_status,\r\n matsHttpStatus: mats.http_status,\r\n matsHttpEventCount: mats.http_event_count\r\n }, this.correlationId);\r\n return mats;\r\n };\r\n /**\r\n * Validates native platform response before processing\r\n * @param response\r\n */\r\n NativeInteractionClient.prototype.validateNativeResponse = function (response) {\r\n if (response.hasOwnProperty(\"access_token\") &&\r\n response.hasOwnProperty(\"id_token\") &&\r\n response.hasOwnProperty(\"client_info\") &&\r\n response.hasOwnProperty(\"account\") &&\r\n response.hasOwnProperty(\"scope\") &&\r\n response.hasOwnProperty(\"expires_in\")) {\r\n return response;\r\n }\r\n else {\r\n throw NativeAuthError.createUnexpectedError(\"Response missing expected properties.\");\r\n }\r\n };\r\n /**\r\n * Gets MATS telemetry from native response\r\n * @param response\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.getMATSFromResponse = function (response) {\r\n if (response.properties.MATS) {\r\n try {\r\n return JSON.parse(response.properties.MATS);\r\n }\r\n catch (e) {\r\n this.logger.error(\"NativeInteractionClient - Error parsing MATS telemetry, returning null instead\");\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Returns whether or not response came from native cache\r\n * @param response\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.isResponseFromCache = function (mats) {\r\n if (typeof mats.is_cached === \"undefined\") {\r\n this.logger.verbose(\"NativeInteractionClient - MATS telemetry does not contain field indicating if response was served from cache. Returning false.\");\r\n return false;\r\n }\r\n return !!mats.is_cached;\r\n };\r\n /**\r\n * Translates developer provided request object into NativeRequest object\r\n * @param request\r\n */\r\n NativeInteractionClient.prototype.initializeNativeRequest = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authority, canonicalAuthority, scopes, remainingProperties, scopeSet, getPrompt, validatedRequest, shrParameters, popTokenGenerator, reqCnfData;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - initializeNativeRequest called\");\r\n authority = request.authority || this.config.auth.authority;\r\n canonicalAuthority = new UrlString(authority);\r\n canonicalAuthority.validateAsUri();\r\n scopes = request.scopes, remainingProperties = __rest(request, [\"scopes\"]);\r\n scopeSet = new ScopeSet(scopes || []);\r\n scopeSet.appendScopes(OIDC_DEFAULT_SCOPES);\r\n getPrompt = function () {\r\n // If request is silent, prompt is always none\r\n switch (_this.apiId) {\r\n case ApiId.ssoSilent:\r\n case ApiId.acquireTokenSilent_silentFlow:\r\n _this.logger.trace(\"initializeNativeRequest: silent request sets prompt to none\");\r\n return PromptValue.NONE;\r\n }\r\n // Prompt not provided, request may proceed and native broker decides if it needs to prompt\r\n if (!request.prompt) {\r\n _this.logger.trace(\"initializeNativeRequest: prompt was not provided\");\r\n return undefined;\r\n }\r\n // If request is interactive, check if prompt provided is allowed to go directly to native broker\r\n switch (request.prompt) {\r\n case PromptValue.NONE:\r\n case PromptValue.CONSENT:\r\n case PromptValue.LOGIN:\r\n _this.logger.trace(\"initializeNativeRequest: prompt is compatible with native flow\");\r\n return request.prompt;\r\n default:\r\n _this.logger.trace(\"initializeNativeRequest: prompt = \" + request.prompt + \" is not compatible with native flow\");\r\n throw BrowserAuthError.createNativePromptParameterNotSupportedError();\r\n }\r\n };\r\n validatedRequest = __assign(__assign({}, remainingProperties), { accountId: this.accountId, clientId: this.config.auth.clientId, authority: canonicalAuthority.urlString, scope: scopeSet.printScopes(), redirectUri: this.getRedirectUri(request.redirectUri), prompt: getPrompt(), correlationId: this.correlationId, tokenType: request.authenticationScheme, windowTitleSubstring: document.title, extraParameters: __assign(__assign(__assign({}, request.extraQueryParameters), request.tokenQueryParameters), { telemetry: NativeConstants.MATS_TELEMETRY }), extendedExpiryToken: false // Make this configurable?\r\n });\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n shrParameters = {\r\n resourceRequestUri: request.resourceRequestUri,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n shrClaims: request.shrClaims,\r\n shrNonce: request.shrNonce\r\n };\r\n popTokenGenerator = new PopTokenGenerator(this.browserCrypto);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(shrParameters)];\r\n case 1:\r\n reqCnfData = _a.sent();\r\n // to reduce the URL length, it is recommended to send the hash of the req_cnf instead of the whole string\r\n validatedRequest.reqCnf = reqCnfData.reqCnfHash;\r\n validatedRequest.keyId = reqCnfData.kid;\r\n _a.label = 2;\r\n case 2: return [2 /*return*/, validatedRequest];\r\n }\r\n });\r\n });\r\n };\r\n return NativeInteractionClient;\r\n}(BaseInteractionClient));\n\nexport { NativeInteractionClient };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { OIDC_DEFAULT_SCOPES, StringUtils, UrlString, Constants, AuthError, ThrottlingUtils, ProtocolUtils, PerformanceEvents } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserConstants, InteractionType, ApiId } from '../utils/BrowserConstants.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { NativeInteractionClient } from './NativeInteractionClient.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { InteractionHandler } from '../interaction_handler/InteractionHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar PopupClient = /** @class */ (function (_super) {\r\n __extends(PopupClient, _super);\r\n function PopupClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeStorageImpl, nativeMessageHandler, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) || this;\r\n // Properly sets this reference for the unload event.\r\n _this.unloadWindow = _this.unloadWindow.bind(_this);\r\n _this.nativeStorage = nativeStorageImpl;\r\n return _this;\r\n }\r\n /**\r\n * Acquires tokens by opening a popup window to the /authorize endpoint of the authority\r\n * @param request\r\n */\r\n PopupClient.prototype.acquireToken = function (request) {\r\n try {\r\n var popupName = this.generatePopupName(request.scopes || OIDC_DEFAULT_SCOPES, request.authority || this.config.auth.authority);\r\n var popupWindowAttributes = request.popupWindowAttributes || {};\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true, acquiring token\");\r\n // Passes on popup position and dimensions if in request\r\n return this.acquireTokenPopupAsync(request, popupName, popupWindowAttributes);\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before acquiring token.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup before acquiring token\");\r\n var popup = this.openSizedPopup(\"about:blank\", popupName, popupWindowAttributes);\r\n return this.acquireTokenPopupAsync(request, popupName, popupWindowAttributes, popup);\r\n }\r\n }\r\n catch (e) {\r\n return Promise.reject(e);\r\n }\r\n };\r\n /**\r\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n * @param logoutRequest\r\n */\r\n PopupClient.prototype.logout = function (logoutRequest) {\r\n try {\r\n this.logger.verbose(\"logoutPopup called\");\r\n var validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n var popupName = this.generateLogoutPopupName(validLogoutRequest);\r\n var authority = logoutRequest && logoutRequest.authority;\r\n var mainWindowRedirectUri = logoutRequest && logoutRequest.mainWindowRedirectUri;\r\n var popupWindowAttributes = (logoutRequest === null || logoutRequest === void 0 ? void 0 : logoutRequest.popupWindowAttributes) || {};\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true\");\r\n // Passes on popup position and dimensions if in request\r\n return this.logoutPopupAsync(validLogoutRequest, popupName, popupWindowAttributes, authority, undefined, mainWindowRedirectUri);\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before logging out.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup\");\r\n var popup = this.openSizedPopup(\"about:blank\", popupName, popupWindowAttributes);\r\n return this.logoutPopupAsync(validLogoutRequest, popupName, popupWindowAttributes, authority, popup, mainWindowRedirectUri);\r\n }\r\n }\r\n catch (e) {\r\n // Since this function is synchronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n };\r\n /**\r\n * Helper which obtains an access_token for your API via opening a popup window in the user's browser\r\n * @param validRequest\r\n * @param popupName\r\n * @param popup\r\n * @param popupWindowAttributes\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n PopupClient.prototype.acquireTokenPopupAsync = function (request, popupName, popupWindowAttributes, popup) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, validRequest, authCodeRequest, authClient, isNativeBroker, fetchNativeAccountIdMeasurement, navigateUrl, interactionHandler, popupParameters, popupWindow, hash, serverParams, state_1, nativeInteractionClient, userRequestState, result, e_1;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"acquireTokenPopupAsync called\");\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenPopup);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(request, InteractionType.Popup)];\r\n case 1:\r\n validRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(validRequest.state, validRequest.nonce, validRequest.authority, validRequest.loginHint || Constants.EMPTY_STRING, validRequest.account || null);\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 8, , 9]);\r\n // Create auth code request and generate PKCE params\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n case 3:\r\n authCodeRequest = _a.sent();\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, request.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority, validRequest.azureCloudOptions)];\r\n case 4:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n isNativeBroker = NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeMessageHandler, request.authenticationScheme);\r\n fetchNativeAccountIdMeasurement = void 0;\r\n if (isNativeBroker) {\r\n fetchNativeAccountIdMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.FetchAccountIdWithNativeBroker, request.correlationId);\r\n }\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(__assign(__assign({}, validRequest), { nativeBroker: isNativeBroker }))];\r\n case 5:\r\n navigateUrl = _a.sent();\r\n interactionHandler = new InteractionHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.performanceClient);\r\n popupParameters = {\r\n popup: popup,\r\n popupName: popupName,\r\n popupWindowAttributes: popupWindowAttributes\r\n };\r\n popupWindow = this.initiateAuthRequest(navigateUrl, popupParameters);\r\n this.eventHandler.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n return [4 /*yield*/, this.monitorPopupForHash(popupWindow)];\r\n case 6:\r\n hash = _a.sent();\r\n serverParams = UrlString.getDeserializedHash(hash);\r\n state_1 = this.validateAndExtractStateFromHash(serverParams, InteractionType.Popup, validRequest.correlationId);\r\n // Remove throttle if it exists\r\n ThrottlingUtils.removeThrottle(this.browserStorage, this.config.auth.clientId, authCodeRequest);\r\n if (serverParams.accountId) {\r\n this.logger.verbose(\"Account id found in hash, calling WAM for token\");\r\n // end measurement for server call with native brokering enabled\r\n if (fetchNativeAccountIdMeasurement) {\r\n fetchNativeAccountIdMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: true\r\n });\r\n }\r\n if (!this.nativeMessageHandler) {\r\n throw BrowserAuthError.createNativeConnectionNotEstablishedError();\r\n }\r\n nativeInteractionClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenPopup, this.performanceClient, this.nativeMessageHandler, serverParams.accountId, this.nativeStorage, validRequest.correlationId);\r\n userRequestState = ProtocolUtils.parseRequestState(this.browserCrypto, state_1).userRequestState;\r\n return [2 /*return*/, nativeInteractionClient.acquireToken(__assign(__assign({}, validRequest), { state: userRequestState, prompt: undefined // Server should handle the prompt, ideally native broker can do this part silently\r\n })).finally(function () {\r\n _this.browserStorage.cleanRequestByState(state_1);\r\n })];\r\n }\r\n return [4 /*yield*/, interactionHandler.handleCodeResponseFromHash(hash, state_1, authClient.authority, this.networkClient)];\r\n case 7:\r\n result = _a.sent();\r\n return [2 /*return*/, result];\r\n case 8:\r\n e_1 = _a.sent();\r\n if (popup) {\r\n // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n popup.close();\r\n }\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n throw e_1;\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * @param validRequest\r\n * @param popupName\r\n * @param requestAuthority\r\n * @param popup\r\n * @param mainWindowRedirectUri\r\n * @param popupWindowAttributes\r\n */\r\n PopupClient.prototype.logoutPopupAsync = function (validRequest, popupName, popupWindowAttributes, requestAuthority, popup, mainWindowRedirectUri) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, authClient, logoutUri, popupWindow, navigationOptions, absoluteUrl, e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"logoutPopupAsync called\");\r\n this.eventHandler.emitEvent(EventType.LOGOUT_START, InteractionType.Popup, validRequest);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logoutPopup);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 5, , 6]);\r\n // Clear cache on logout\r\n return [4 /*yield*/, this.clearCacheOnLogout(validRequest.account)];\r\n case 2:\r\n // Clear cache on logout\r\n _a.sent();\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, validRequest.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, requestAuthority)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n logoutUri = authClient.getLogoutUri(validRequest);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Popup, validRequest);\r\n popupWindow = this.openPopup(logoutUri, { popupName: popupName, popupWindowAttributes: popupWindowAttributes, popup: popup });\r\n this.eventHandler.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n return [4 /*yield*/, this.waitForLogoutPopup(popupWindow)];\r\n case 4:\r\n _a.sent();\r\n if (mainWindowRedirectUri) {\r\n navigationOptions = {\r\n apiId: ApiId.logoutPopup,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n absoluteUrl = UrlString.getAbsoluteUrl(mainWindowRedirectUri, BrowserUtils.getCurrentUri());\r\n this.logger.verbose(\"Redirecting main window to url specified in the request\");\r\n this.logger.verbosePii(\"Redirecting main window to: \" + absoluteUrl);\r\n this.navigationClient.navigateInternal(absoluteUrl, navigationOptions);\r\n }\r\n else {\r\n this.logger.verbose(\"No main window navigation requested\");\r\n }\r\n return [3 /*break*/, 6];\r\n case 5:\r\n e_2 = _a.sent();\r\n if (popup) {\r\n // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n popup.close();\r\n }\r\n if (e_2 instanceof AuthError) {\r\n e_2.setCorrelationId(this.correlationId);\r\n }\r\n this.browserStorage.setInteractionInProgress(false);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Popup, null, e_2);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Popup);\r\n serverTelemetryManager.cacheFailedRequest(e_2);\r\n throw e_2;\r\n case 6:\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Popup);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Opens a popup window with given request Url.\r\n * @param requestUrl\r\n */\r\n PopupClient.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n // Check that request url is not empty.\r\n if (!StringUtils.isEmpty(requestUrl)) {\r\n this.logger.infoPii(\"Navigate to: \" + requestUrl);\r\n // Open the popup window to requestUrl.\r\n return this.openPopup(requestUrl, params);\r\n }\r\n else {\r\n // Throw error if request URL is empty.\r\n this.logger.error(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n };\r\n /**\r\n * Monitors a window until it loads a url with the same origin.\r\n * @param popupWindow - window that is being monitored\r\n * @param timeout - timeout for processing hash once popup is redirected back to application\r\n */\r\n PopupClient.prototype.monitorPopupForHash = function (popupWindow) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n /*\r\n * Polling for popups needs to be tick-based,\r\n * since a non-trivial amount of time can be spent on interaction (which should not count against the timeout).\r\n */\r\n var maxTicks = _this.config.system.windowHashTimeout / _this.config.system.pollIntervalMilliseconds;\r\n var ticks = 0;\r\n _this.logger.verbose(\"PopupHandler.monitorPopupForHash - polling started\");\r\n var intervalId = setInterval(function () {\r\n // Window is closed\r\n if (popupWindow.closed) {\r\n _this.logger.error(\"PopupHandler.monitorPopupForHash - window closed\");\r\n _this.cleanPopup();\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createUserCancelledError());\r\n return;\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n var hash = Constants.EMPTY_STRING;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = popupWindow.location.href;\r\n hash = popupWindow.location.hash;\r\n }\r\n catch (e) { }\r\n // Don't process blank pages or cross domain\r\n if (StringUtils.isEmpty(href) || href === \"about:blank\") {\r\n return;\r\n }\r\n _this.logger.verbose(\"PopupHandler.monitorPopupForHash - popup window is on same origin as caller\");\r\n /*\r\n * Only run clock when we are on same domain for popups\r\n * as popup operations can take a long time.\r\n */\r\n ticks++;\r\n if (hash) {\r\n _this.logger.verbose(\"PopupHandler.monitorPopupForHash - found hash in url\");\r\n clearInterval(intervalId);\r\n _this.cleanPopup(popupWindow);\r\n if (UrlString.hashContainsKnownProperties(hash)) {\r\n _this.logger.verbose(\"PopupHandler.monitorPopupForHash - hash contains known properties, returning.\");\r\n resolve(hash);\r\n }\r\n else {\r\n _this.logger.error(\"PopupHandler.monitorPopupForHash - found hash in url but it does not contain known properties. Check that your router is not changing the hash prematurely.\");\r\n _this.logger.errorPii(\"PopupHandler.monitorPopupForHash - hash found: \" + hash);\r\n reject(BrowserAuthError.createHashDoesNotContainKnownPropertiesError());\r\n }\r\n }\r\n else if (ticks > maxTicks) {\r\n _this.logger.error(\"PopupHandler.monitorPopupForHash - unable to find hash in url, timing out\");\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createMonitorPopupTimeoutError());\r\n }\r\n }, _this.config.system.pollIntervalMilliseconds);\r\n });\r\n };\r\n /**\r\n * Waits for user interaction in logout popup window\r\n * @param popupWindow\r\n * @returns\r\n */\r\n PopupClient.prototype.waitForLogoutPopup = function (popupWindow) {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n _this.logger.verbose(\"PopupHandler.waitForLogoutPopup - polling started\");\r\n var intervalId = setInterval(function () {\r\n // Window is closed\r\n if (popupWindow.closed) {\r\n _this.logger.error(\"PopupHandler.waitForLogoutPopup - window closed\");\r\n _this.cleanPopup();\r\n clearInterval(intervalId);\r\n resolve();\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = popupWindow.location.href;\r\n }\r\n catch (e) { }\r\n // Don't process blank pages or cross domain\r\n if (StringUtils.isEmpty(href) || href === \"about:blank\") {\r\n return;\r\n }\r\n _this.logger.verbose(\"PopupHandler.waitForLogoutPopup - popup window is on same origin as caller, closing.\");\r\n clearInterval(intervalId);\r\n _this.cleanPopup(popupWindow);\r\n resolve();\r\n }, _this.config.system.pollIntervalMilliseconds);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Configures popup window for login.\r\n *\r\n * @param urlNavigate\r\n * @param title\r\n * @param popUpWidth\r\n * @param popUpHeight\r\n * @param popupWindowAttributes\r\n * @ignore\r\n * @hidden\r\n */\r\n PopupClient.prototype.openPopup = function (urlNavigate, popupParams) {\r\n try {\r\n var popupWindow = void 0;\r\n // Popup window passed in, setting url to navigate to\r\n if (popupParams.popup) {\r\n popupWindow = popupParams.popup;\r\n this.logger.verbosePii(\"Navigating popup window to: \" + urlNavigate);\r\n popupWindow.location.assign(urlNavigate);\r\n }\r\n else if (typeof popupParams.popup === \"undefined\") {\r\n // Popup will be undefined if it was not passed in\r\n this.logger.verbosePii(\"Opening popup window to: \" + urlNavigate);\r\n popupWindow = this.openSizedPopup(urlNavigate, popupParams.popupName, popupParams.popupWindowAttributes);\r\n }\r\n // Popup will be null if popups are blocked\r\n if (!popupWindow) {\r\n throw BrowserAuthError.createEmptyWindowCreatedError();\r\n }\r\n if (popupWindow.focus) {\r\n popupWindow.focus();\r\n }\r\n this.currentWindow = popupWindow;\r\n window.addEventListener(\"beforeunload\", this.unloadWindow);\r\n return popupWindow;\r\n }\r\n catch (e) {\r\n this.logger.error(\"error opening popup \" + e.message);\r\n this.browserStorage.setInteractionInProgress(false);\r\n throw BrowserAuthError.createPopupWindowError(e.toString());\r\n }\r\n };\r\n /**\r\n * Helper function to set popup window dimensions and position\r\n * @param urlNavigate\r\n * @param popupName\r\n * @param popupWindowAttributes\r\n * @returns\r\n */\r\n PopupClient.prototype.openSizedPopup = function (urlNavigate, popupName, popupWindowAttributes) {\r\n var _a, _b, _c, _d;\r\n /**\r\n * adding winLeft and winTop to account for dual monitor\r\n * using screenLeft and screenTop for IE8 and earlier\r\n */\r\n var winLeft = window.screenLeft ? window.screenLeft : window.screenX;\r\n var winTop = window.screenTop ? window.screenTop : window.screenY;\r\n /**\r\n * window.innerWidth displays browser window\"s height and width excluding toolbars\r\n * using document.documentElement.clientWidth for IE8 and earlier\r\n */\r\n var winWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\r\n var winHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\r\n var width = (_a = popupWindowAttributes.popupSize) === null || _a === void 0 ? void 0 : _a.width;\r\n var height = (_b = popupWindowAttributes.popupSize) === null || _b === void 0 ? void 0 : _b.height;\r\n var top = (_c = popupWindowAttributes.popupPosition) === null || _c === void 0 ? void 0 : _c.top;\r\n var left = (_d = popupWindowAttributes.popupPosition) === null || _d === void 0 ? void 0 : _d.left;\r\n if (!width || width < 0 || width > winWidth) {\r\n this.logger.verbose(\"Default popup window width used. Window width not configured or invalid.\");\r\n width = BrowserConstants.POPUP_WIDTH;\r\n }\r\n if (!height || height < 0 || height > winHeight) {\r\n this.logger.verbose(\"Default popup window height used. Window height not configured or invalid.\");\r\n height = BrowserConstants.POPUP_HEIGHT;\r\n }\r\n if (!top || top < 0 || top > winHeight) {\r\n this.logger.verbose(\"Default popup window top position used. Window top not configured or invalid.\");\r\n top = Math.max(0, ((winHeight / 2) - (BrowserConstants.POPUP_HEIGHT / 2)) + winTop);\r\n }\r\n if (!left || left < 0 || left > winWidth) {\r\n this.logger.verbose(\"Default popup window left position used. Window left not configured or invalid.\");\r\n left = Math.max(0, ((winWidth / 2) - (BrowserConstants.POPUP_WIDTH / 2)) + winLeft);\r\n }\r\n return window.open(urlNavigate, popupName, \"width=\" + width + \", height=\" + height + \", top=\" + top + \", left=\" + left + \", scrollbars=yes\");\r\n };\r\n /**\r\n * Event callback to unload main window.\r\n */\r\n PopupClient.prototype.unloadWindow = function (e) {\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Popup);\r\n if (this.currentWindow) {\r\n this.currentWindow.close();\r\n }\r\n // Guarantees browser unload will happen, so no other errors will be thrown.\r\n e.preventDefault();\r\n };\r\n /**\r\n * Closes popup, removes any state vars created during popup calls.\r\n * @param popupWindow\r\n */\r\n PopupClient.prototype.cleanPopup = function (popupWindow) {\r\n if (popupWindow) {\r\n // Close window.\r\n popupWindow.close();\r\n }\r\n // Remove window unload function\r\n window.removeEventListener(\"beforeunload\", this.unloadWindow);\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.setInteractionInProgress(false);\r\n };\r\n /**\r\n * Generates the name for the popup based on the client id and request\r\n * @param clientId\r\n * @param request\r\n */\r\n PopupClient.prototype.generatePopupName = function (scopes, authority) {\r\n return BrowserConstants.POPUP_NAME_PREFIX + \".\" + this.config.auth.clientId + \".\" + scopes.join(\"-\") + \".\" + authority + \".\" + this.correlationId;\r\n };\r\n /**\r\n * Generates the name for the popup based on the client id and request for logouts\r\n * @param clientId\r\n * @param request\r\n */\r\n PopupClient.prototype.generateLogoutPopupName = function (request) {\r\n var homeAccountId = request.account && request.account.homeAccountId;\r\n return BrowserConstants.POPUP_NAME_PREFIX + \".\" + this.config.auth.clientId + \".\" + homeAccountId + \".\" + this.correlationId;\r\n };\r\n return PopupClient;\r\n}(StandardInteractionClient));\n\nexport { PopupClient };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { UrlString, AuthError, PerformanceEvents, Constants, ThrottlingUtils, ProtocolUtils } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { TemporaryCacheKeys, ApiId, InteractionType } from '../utils/BrowserConstants.js';\nimport { RedirectHandler } from '../interaction_handler/RedirectHandler.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { NativeInteractionClient } from './NativeInteractionClient.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RedirectClient = /** @class */ (function (_super) {\r\n __extends(RedirectClient, _super);\r\n function RedirectClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeStorageImpl, nativeMessageHandler, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) || this;\r\n _this.nativeStorage = nativeStorageImpl;\r\n return _this;\r\n }\r\n /**\r\n * Redirects the page to the /authorize endpoint of the IDP\r\n * @param request\r\n */\r\n RedirectClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var validRequest, serverTelemetryManager, handleBackButton, authCodeRequest, authClient, interactionHandler, navigateUrl, redirectStartPage, e_1;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(request, InteractionType.Redirect)];\r\n case 1:\r\n validRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(validRequest.state, validRequest.nonce, validRequest.authority, validRequest.loginHint || Constants.EMPTY_STRING, validRequest.account || null);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenRedirect);\r\n handleBackButton = function (event) {\r\n // Clear temporary cache if the back button is clicked during the redirect flow.\r\n if (event.persisted) {\r\n _this.logger.verbose(\"Page was restored from back/forward cache. Clearing temporary cache.\");\r\n _this.browserStorage.cleanRequestByState(validRequest.state);\r\n }\r\n };\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 7, , 8]);\r\n // Create auth code request and generate PKCE params\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n case 3:\r\n authCodeRequest = _a.sent();\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, request.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority, validRequest.azureCloudOptions)];\r\n case 4:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n interactionHandler = new RedirectHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.browserCrypto, this.performanceClient);\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(__assign(__assign({}, validRequest), { nativeBroker: NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeMessageHandler, request.authenticationScheme) }))];\r\n case 5:\r\n navigateUrl = _a.sent();\r\n redirectStartPage = this.getRedirectStartPage(request.redirectStartPage);\r\n this.logger.verbosePii(\"Redirect start page: \" + redirectStartPage);\r\n // Clear temporary cache if the back button is clicked during the redirect flow.\r\n window.addEventListener(\"pageshow\", handleBackButton);\r\n return [4 /*yield*/, interactionHandler.initiateAuthRequest(navigateUrl, {\r\n navigationClient: this.navigationClient,\r\n redirectTimeout: this.config.system.redirectNavigationTimeout,\r\n redirectStartPage: redirectStartPage,\r\n onRedirectNavigate: request.onRedirectNavigate\r\n })];\r\n case 6: \r\n // Show the UI once the url has been created. Response will come back in the hash, which will be handled in the handleRedirectCallback function.\r\n return [2 /*return*/, _a.sent()];\r\n case 7:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n window.removeEventListener(\"pageshow\", handleBackButton);\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n throw e_1;\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Checks if navigateToLoginRequestUrl is set, and:\r\n * - if true, performs logic to cache and navigate\r\n * - if false, handles hash string and parses response\r\n * @param hash\r\n */\r\n RedirectClient.prototype.handleRedirectPromise = function (hash) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, responseHash, state, serverParams, loginRequestUrl, loginRequestUrlNormalized, currentUrlNormalized, handleHashResult, navigationOptions, processHashOnRedirect, homepage, e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.handleRedirectPromise);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 10, , 11]);\r\n if (!this.browserStorage.isInteractionInProgress(true)) {\r\n this.logger.info(\"handleRedirectPromise called but there is no interaction in progress, returning null.\");\r\n return [2 /*return*/, null];\r\n }\r\n responseHash = this.getRedirectResponseHash(hash || window.location.hash);\r\n if (!responseHash) {\r\n // Not a recognized server response hash or hash not associated with a redirect request\r\n this.logger.info(\"handleRedirectPromise did not detect a response hash as a result of a redirect. Cleaning temporary cache.\");\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n return [2 /*return*/, null];\r\n }\r\n state = void 0;\r\n try {\r\n serverParams = UrlString.getDeserializedHash(responseHash);\r\n state = this.validateAndExtractStateFromHash(serverParams, InteractionType.Redirect);\r\n this.logger.verbose(\"State extracted from hash\");\r\n }\r\n catch (e) {\r\n this.logger.info(\"handleRedirectPromise was unable to extract state due to: \" + e);\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n return [2 /*return*/, null];\r\n }\r\n loginRequestUrl = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, true) || Constants.EMPTY_STRING;\r\n loginRequestUrlNormalized = UrlString.removeHashFromUrl(loginRequestUrl);\r\n currentUrlNormalized = UrlString.removeHashFromUrl(window.location.href);\r\n if (!(loginRequestUrlNormalized === currentUrlNormalized && this.config.auth.navigateToLoginRequestUrl)) return [3 /*break*/, 3];\r\n // We are on the page we need to navigate to - handle hash\r\n this.logger.verbose(\"Current page is loginRequestUrl, handling hash\");\r\n return [4 /*yield*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n case 2:\r\n handleHashResult = _a.sent();\r\n if (loginRequestUrl.indexOf(\"#\") > -1) {\r\n // Replace current hash with non-msal hash, if present\r\n BrowserUtils.replaceHash(loginRequestUrl);\r\n }\r\n return [2 /*return*/, handleHashResult];\r\n case 3:\r\n if (!!this.config.auth.navigateToLoginRequestUrl) return [3 /*break*/, 4];\r\n this.logger.verbose(\"NavigateToLoginRequestUrl set to false, handling hash\");\r\n return [2 /*return*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n case 4:\r\n if (!(!BrowserUtils.isInIframe() || this.config.system.allowRedirectInIframe)) return [3 /*break*/, 9];\r\n /*\r\n * Returned from authority using redirect - need to perform navigation before processing response\r\n * Cache the hash to be retrieved after the next redirect\r\n */\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.URL_HASH, responseHash, true);\r\n navigationOptions = {\r\n apiId: ApiId.handleRedirectPromise,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: true\r\n };\r\n processHashOnRedirect = true;\r\n if (!(!loginRequestUrl || loginRequestUrl === \"null\")) return [3 /*break*/, 6];\r\n homepage = BrowserUtils.getHomepage();\r\n // Cache the homepage under ORIGIN_URI to ensure cached hash is processed on homepage\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, homepage, true);\r\n this.logger.warning(\"Unable to get valid login request url from cache, redirecting to home page\");\r\n return [4 /*yield*/, this.navigationClient.navigateInternal(homepage, navigationOptions)];\r\n case 5:\r\n processHashOnRedirect = _a.sent();\r\n return [3 /*break*/, 8];\r\n case 6:\r\n // Navigate to page that initiated the redirect request\r\n this.logger.verbose(\"Navigating to loginRequestUrl: \" + loginRequestUrl);\r\n return [4 /*yield*/, this.navigationClient.navigateInternal(loginRequestUrl, navigationOptions)];\r\n case 7:\r\n processHashOnRedirect = _a.sent();\r\n _a.label = 8;\r\n case 8:\r\n // If navigateInternal implementation returns false, handle the hash now\r\n if (!processHashOnRedirect) {\r\n return [2 /*return*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n }\r\n _a.label = 9;\r\n case 9: return [2 /*return*/, null];\r\n case 10:\r\n e_2 = _a.sent();\r\n if (e_2 instanceof AuthError) {\r\n e_2.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_2);\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n throw e_2;\r\n case 11: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Gets the response hash for a redirect request\r\n * Returns null if interactionType in the state value is not \"redirect\" or the hash does not contain known properties\r\n * @param hash\r\n */\r\n RedirectClient.prototype.getRedirectResponseHash = function (hash) {\r\n this.logger.verbose(\"getRedirectResponseHash called\");\r\n // Get current location hash from window or cache.\r\n var isResponseHash = UrlString.hashContainsKnownProperties(hash);\r\n if (isResponseHash) {\r\n BrowserUtils.clearHash(window);\r\n this.logger.verbose(\"Hash contains known properties, returning response hash\");\r\n return hash;\r\n }\r\n var cachedHash = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.URL_HASH, true);\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n this.logger.verbose(\"Hash does not contain known properties, returning cached hash\");\r\n return cachedHash;\r\n };\r\n /**\r\n * Checks if hash exists and handles in window.\r\n * @param hash\r\n * @param state\r\n */\r\n RedirectClient.prototype.handleHash = function (hash, state, serverTelemetryManager) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cachedRequest, serverParams, nativeInteractionClient, userRequestState, currentAuthority, authClient, interactionHandler;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n cachedRequest = this.browserStorage.getCachedRequest(state, this.browserCrypto);\r\n this.logger.verbose(\"handleHash called, retrieved cached request\");\r\n serverParams = UrlString.getDeserializedHash(hash);\r\n if (serverParams.accountId) {\r\n this.logger.verbose(\"Account id found in hash, calling WAM for token\");\r\n if (!this.nativeMessageHandler) {\r\n throw BrowserAuthError.createNativeConnectionNotEstablishedError();\r\n }\r\n nativeInteractionClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenPopup, this.performanceClient, this.nativeMessageHandler, serverParams.accountId, this.browserStorage, cachedRequest.correlationId);\r\n userRequestState = ProtocolUtils.parseRequestState(this.browserCrypto, state).userRequestState;\r\n return [2 /*return*/, nativeInteractionClient.acquireToken(__assign(__assign({}, cachedRequest), { state: userRequestState, prompt: undefined // Server should handle the prompt, ideally native broker can do this part silently\r\n })).finally(function () {\r\n _this.browserStorage.cleanRequestByState(state);\r\n })];\r\n }\r\n currentAuthority = this.browserStorage.getCachedAuthority(state);\r\n if (!currentAuthority) {\r\n throw BrowserAuthError.createNoCachedAuthorityError();\r\n }\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, cachedRequest.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, currentAuthority)];\r\n case 1:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n ThrottlingUtils.removeThrottle(this.browserStorage, this.config.auth.clientId, cachedRequest);\r\n interactionHandler = new RedirectHandler(authClient, this.browserStorage, cachedRequest, this.logger, this.browserCrypto, this.performanceClient);\r\n return [4 /*yield*/, interactionHandler.handleCodeResponseFromHash(hash, state, authClient.authority, this.networkClient)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param logoutRequest\r\n */\r\n RedirectClient.prototype.logout = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var validLogoutRequest, serverTelemetryManager, navigationOptions, authClient, logoutUri, navigate, e_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"logoutRedirect called\");\r\n validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logout);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 10, , 11]);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_START, InteractionType.Redirect, logoutRequest);\r\n // Clear cache on logout\r\n return [4 /*yield*/, this.clearCacheOnLogout(validLogoutRequest.account)];\r\n case 2:\r\n // Clear cache on logout\r\n _a.sent();\r\n navigationOptions = {\r\n apiId: ApiId.logout,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, validLogoutRequest.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, logoutRequest && logoutRequest.authority)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n logoutUri = authClient.getLogoutUri(validLogoutRequest);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Redirect, validLogoutRequest);\r\n if (!(logoutRequest && typeof logoutRequest.onRedirectNavigate === \"function\")) return [3 /*break*/, 7];\r\n navigate = logoutRequest.onRedirectNavigate(logoutUri);\r\n if (!(navigate !== false)) return [3 /*break*/, 5];\r\n this.logger.verbose(\"Logout onRedirectNavigate did not return false, navigating\");\r\n // Ensure interaction is in progress\r\n if (!this.browserStorage.getInteractionInProgress()) {\r\n this.browserStorage.setInteractionInProgress(true);\r\n }\r\n return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n case 4:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 5:\r\n // Ensure interaction is not in progress\r\n this.browserStorage.setInteractionInProgress(false);\r\n this.logger.verbose(\"Logout onRedirectNavigate returned false, stopping navigation\");\r\n _a.label = 6;\r\n case 6: return [3 /*break*/, 9];\r\n case 7:\r\n // Ensure interaction is in progress\r\n if (!this.browserStorage.getInteractionInProgress()) {\r\n this.browserStorage.setInteractionInProgress(true);\r\n }\r\n return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n case 8:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 9: return [3 /*break*/, 11];\r\n case 10:\r\n e_3 = _a.sent();\r\n if (e_3 instanceof AuthError) {\r\n e_3.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_3);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Redirect, null, e_3);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Redirect);\r\n throw e_3;\r\n case 11:\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Redirect);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Use to get the redirectStartPage either from request or use current window\r\n * @param requestStartPage\r\n */\r\n RedirectClient.prototype.getRedirectStartPage = function (requestStartPage) {\r\n var redirectStartPage = requestStartPage || window.location.href;\r\n return UrlString.getAbsoluteUrl(redirectStartPage, BrowserUtils.getCurrentUri());\r\n };\r\n return RedirectClient;\r\n}(StandardInteractionClient));\n\nexport { RedirectClient };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthError, PerformanceEvents, Constants } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { InteractionType } from '../utils/BrowserConstants.js';\nimport { SilentHandler } from '../interaction_handler/SilentHandler.js';\nimport { HybridSpaAuthorizationCodeClient } from './HybridSpaAuthorizationCodeClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentAuthCodeClient = /** @class */ (function (_super) {\r\n __extends(SilentAuthCodeClient, _super);\r\n function SilentAuthCodeClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, apiId, performanceClient, nativeMessageHandler, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) || this;\r\n _this.apiId = apiId;\r\n return _this;\r\n }\r\n /**\r\n * Acquires a token silently by redeeming an authorization code against the /token endpoint\r\n * @param request\r\n */\r\n SilentAuthCodeClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRequest, serverTelemetryManager, authCodeRequest, clientConfig, authClient, silentHandler, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"SilentAuthCodeClient.acquireToken called\");\r\n // Auth code payload is required\r\n if (!request.code) {\r\n throw BrowserAuthError.createAuthCodeRequiredError();\r\n }\r\n // Create silent request\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(request, InteractionType.Silent)];\r\n case 1:\r\n silentRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(silentRequest.state, silentRequest.nonce, silentRequest.authority, silentRequest.loginHint || Constants.EMPTY_STRING, silentRequest.account || null);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n authCodeRequest = __assign(__assign({}, silentRequest), { code: request.code });\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, request.correlationId);\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, silentRequest.authority)];\r\n case 3:\r\n clientConfig = _a.sent();\r\n authClient = new HybridSpaAuthorizationCodeClient(clientConfig);\r\n this.logger.verbose(\"Auth code client created\");\r\n silentHandler = new SilentHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.config.system, this.performanceClient);\r\n // Handle auth code parameters from request\r\n return [2 /*return*/, silentHandler.handleCodeResponseFromServer({\r\n code: request.code,\r\n msgraph_host: request.msGraphHost,\r\n cloud_graph_host_name: request.cloudGraphHostName,\r\n cloud_instance_host_name: request.cloudInstanceHostName\r\n }, silentRequest.state, authClient.authority, this.networkClient, false)];\r\n case 4:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(silentRequest.state);\r\n throw e_1;\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentAuthCodeClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n return SilentAuthCodeClient;\r\n}(StandardInteractionClient));\n\nexport { SilentAuthCodeClient };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { AuthError, PerformanceEvents, SilentFlowClient } from '@azure/msal-common';\nimport { ApiId } from '../utils/BrowserConstants.js';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentCacheClient = /** @class */ (function (_super) {\r\n __extends(SilentCacheClient, _super);\r\n function SilentCacheClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Returns unexpired tokens from the cache, if available\r\n * @param silentRequest\r\n */\r\n SilentCacheClient.prototype.acquireToken = function (silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var acquireTokenMeasurement, serverTelemetryManager, silentAuthClient, cachedToken, error_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n acquireTokenMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SilentCacheClientAcquireToken, silentRequest.correlationId);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);\r\n return [4 /*yield*/, this.createSilentFlowClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions)];\r\n case 1:\r\n silentAuthClient = _a.sent();\r\n this.logger.verbose(\"Silent auth client created\");\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n return [4 /*yield*/, silentAuthClient.acquireCachedToken(silentRequest)];\r\n case 3:\r\n cachedToken = _a.sent();\r\n acquireTokenMeasurement.endMeasurement({\r\n success: true,\r\n fromCache: true\r\n });\r\n return [2 /*return*/, cachedToken];\r\n case 4:\r\n error_1 = _a.sent();\r\n if (error_1 instanceof BrowserAuthError && error_1.errorCode === BrowserAuthErrorMessage.signingKeyNotFoundInStorage.code) {\r\n this.logger.verbose(\"Signing keypair for bound access token not found. Refreshing bound access token and generating a new crypto keypair.\");\r\n }\r\n acquireTokenMeasurement.endMeasurement({\r\n errorCode: error_1 instanceof AuthError && error_1.errorCode || undefined,\r\n subErrorCode: error_1 instanceof AuthError && error_1.subError || undefined,\r\n success: false\r\n });\r\n throw error_1;\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentCacheClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Creates an Silent Flow Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n SilentCacheClient.prototype.createSilentFlowClient = function (serverTelemetryManager, authorityUrl, azureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Create auth module.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl, azureCloudOptions)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new SilentFlowClient(clientConfig, this.performanceClient)];\r\n }\r\n });\r\n });\r\n };\r\n SilentCacheClient.prototype.initializeSilentRequest = function (request, account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.InitializeSilentRequest, this.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeBaseRequest, this.correlationId);\r\n _a = [__assign({}, request)];\r\n return [4 /*yield*/, this.initializeBaseRequest(request)];\r\n case 1: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _a.concat([_b.sent()])), { account: account, forceRefresh: request.forceRefresh || false }])];\r\n }\r\n });\r\n });\r\n };\r\n return SilentCacheClient;\r\n}(StandardInteractionClient));\n\nexport { SilentCacheClient };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthError, PerformanceEvents, Constants, StringUtils, PromptValue, UrlString, ProtocolUtils } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { InteractionType } from '../utils/BrowserConstants.js';\nimport { SilentHandler } from '../interaction_handler/SilentHandler.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\nimport { NativeInteractionClient } from './NativeInteractionClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentIframeClient = /** @class */ (function (_super) {\r\n __extends(SilentIframeClient, _super);\r\n function SilentIframeClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, apiId, performanceClient, nativeStorageImpl, nativeMessageHandler, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) || this;\r\n _this.apiId = apiId;\r\n _this.nativeStorage = nativeStorageImpl;\r\n return _this;\r\n }\r\n /**\r\n * Acquires a token silently by opening a hidden iframe to the /authorize endpoint with prompt=none or prompt=no_session\r\n * @param request\r\n */\r\n SilentIframeClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var acquireTokenMeasurement, silentRequest, serverTelemetryManager, authClient, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentIframeClientAcquireToken, request.correlationId);\r\n this.logger.verbose(\"acquireTokenByIframe called\");\r\n acquireTokenMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SilentIframeClientAcquireToken, request.correlationId);\r\n // Check that we have some SSO data\r\n if (StringUtils.isEmpty(request.loginHint) && StringUtils.isEmpty(request.sid) && (!request.account || StringUtils.isEmpty(request.account.username))) {\r\n this.logger.warning(\"No user hint provided. The authorization server may need more information to complete this request.\");\r\n }\r\n // Check that prompt is set to none or no_session, throw error if it is set to anything else.\r\n if (request.prompt && (request.prompt !== PromptValue.NONE) && (request.prompt !== PromptValue.NO_SESSION)) {\r\n acquireTokenMeasurement.endMeasurement({\r\n success: false\r\n });\r\n throw BrowserAuthError.createSilentPromptValueError(request.prompt);\r\n }\r\n // Create silent request\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(__assign(__assign({}, request), { prompt: request.prompt || PromptValue.NONE }), InteractionType.Silent)];\r\n case 1:\r\n silentRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(silentRequest.state, silentRequest.nonce, silentRequest.authority, silentRequest.loginHint || Constants.EMPTY_STRING, silentRequest.account || null);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 5, , 6]);\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, request.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentIframeClientTokenHelper, request.correlationId);\r\n return [4 /*yield*/, this.silentTokenHelper(authClient, silentRequest).then(function (result) {\r\n acquireTokenMeasurement.endMeasurement({\r\n success: true,\r\n fromCache: false,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n })];\r\n case 4: return [2 /*return*/, _a.sent()];\r\n case 5:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(silentRequest.state);\r\n acquireTokenMeasurement.endMeasurement({\r\n errorCode: e_1 instanceof AuthError && e_1.errorCode || undefined,\r\n subErrorCode: e_1 instanceof AuthError && e_1.subError || undefined,\r\n success: false\r\n });\r\n throw e_1;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentIframeClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Helper which acquires an authorization code silently using a hidden iframe from given url\r\n * using the scopes requested as part of the id, and exchanges the code for a set of OAuth tokens.\r\n * @param navigateUrl\r\n * @param userRequestScopes\r\n */\r\n SilentIframeClient.prototype.silentTokenHelper = function (authClient, silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authCodeRequest, navigateUrl, silentHandler, msalFrame, hash, serverParams, state, nativeInteractionClient, userRequestState;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentIframeClientTokenHelper, silentRequest.correlationId);\r\n // Create auth code request and generate PKCE params\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, silentRequest.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(silentRequest)];\r\n case 1:\r\n authCodeRequest = _a.sent();\r\n // Create authorize request url\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.GetAuthCodeUrl, silentRequest.correlationId);\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(__assign(__assign({}, silentRequest), { nativeBroker: NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeMessageHandler, silentRequest.authenticationScheme) }))];\r\n case 2:\r\n navigateUrl = _a.sent();\r\n silentHandler = new SilentHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.config.system, this.performanceClient);\r\n // Get the frame handle for the silent request\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentHandlerInitiateAuthRequest, silentRequest.correlationId);\r\n return [4 /*yield*/, silentHandler.initiateAuthRequest(navigateUrl)];\r\n case 3:\r\n msalFrame = _a.sent();\r\n // Monitor the window for the hash. Return the string value and close the popup when the hash is received. Default timeout is 60 seconds.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentHandlerMonitorIframeForHash, silentRequest.correlationId);\r\n return [4 /*yield*/, silentHandler.monitorIframeForHash(msalFrame, this.config.system.iframeHashTimeout)];\r\n case 4:\r\n hash = _a.sent();\r\n serverParams = UrlString.getDeserializedHash(hash);\r\n state = this.validateAndExtractStateFromHash(serverParams, InteractionType.Silent, authCodeRequest.correlationId);\r\n if (serverParams.accountId) {\r\n this.logger.verbose(\"Account id found in hash, calling WAM for token\");\r\n if (!this.nativeMessageHandler) {\r\n throw BrowserAuthError.createNativeConnectionNotEstablishedError();\r\n }\r\n nativeInteractionClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.apiId, this.performanceClient, this.nativeMessageHandler, serverParams.accountId, this.browserStorage, this.correlationId);\r\n userRequestState = ProtocolUtils.parseRequestState(this.browserCrypto, state).userRequestState;\r\n return [2 /*return*/, nativeInteractionClient.acquireToken(__assign(__assign({}, silentRequest), { state: userRequestState, prompt: silentRequest.prompt || PromptValue.NONE })).finally(function () {\r\n _this.browserStorage.cleanRequestByState(state);\r\n })];\r\n }\r\n // Handle response from hash string\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.HandleCodeResponseFromHash, silentRequest.correlationId);\r\n return [2 /*return*/, silentHandler.handleCodeResponseFromHash(hash, state, authClient.authority, this.networkClient)];\r\n }\r\n });\r\n });\r\n };\r\n return SilentIframeClient;\r\n}(StandardInteractionClient));\n\nexport { SilentIframeClient };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { PerformanceEvents, AuthError, RefreshTokenClient } from '@azure/msal-common';\nimport { ApiId } from '../utils/BrowserConstants.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentRefreshClient = /** @class */ (function (_super) {\r\n __extends(SilentRefreshClient, _super);\r\n function SilentRefreshClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Exchanges the refresh token for new tokens\r\n * @param request\r\n */\r\n SilentRefreshClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRequest, _a, acquireTokenMeasurement, serverTelemetryManager, refreshTokenClient;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentRefreshClientAcquireToken, request.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeBaseRequest, request.correlationId);\r\n _a = [__assign({}, request)];\r\n return [4 /*yield*/, this.initializeBaseRequest(request)];\r\n case 1:\r\n silentRequest = __assign.apply(void 0, _a.concat([_b.sent()]));\r\n acquireTokenMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SilentRefreshClientAcquireToken, silentRequest.correlationId);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);\r\n return [4 /*yield*/, this.createRefreshTokenClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions)];\r\n case 2:\r\n refreshTokenClient = _b.sent();\r\n this.logger.verbose(\"Refresh token client created\");\r\n // Send request to renew token. Auth module will throw errors if token cannot be renewed.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireTokenByRefreshToken, request.correlationId);\r\n return [2 /*return*/, refreshTokenClient.acquireTokenByRefreshToken(silentRequest)\r\n .then(function (result) {\r\n acquireTokenMeasurement.endMeasurement({\r\n success: true,\r\n fromCache: result.fromCache,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n })\r\n .catch(function (e) {\r\n if (e instanceof AuthError) {\r\n e.setCorrelationId(_this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e);\r\n acquireTokenMeasurement.endMeasurement({\r\n errorCode: e.errorCode,\r\n subErrorCode: e.subError,\r\n success: false\r\n });\r\n throw e;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentRefreshClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Creates a Refresh Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n SilentRefreshClient.prototype.createRefreshTokenClient = function (serverTelemetryManager, authorityUrl, azureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Create auth module.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl, azureCloudOptions)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new RefreshTokenClient(clientConfig, this.performanceClient)];\r\n }\r\n });\r\n });\r\n };\r\n return SilentRefreshClient;\r\n}(StandardInteractionClient));\n\nexport { SilentRefreshClient };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { UrlString, Constants, PerformanceEvents, AuthorizationCodeClient, Authority, AuthorityFactory, ResponseMode, StringUtils, ProtocolUtils } from '@azure/msal-common';\nimport { BaseInteractionClient } from './BaseInteractionClient.js';\nimport { BrowserConstants } from '../utils/BrowserConstants.js';\nimport { version } from '../packageMetadata.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserProtocolUtils } from '../utils/BrowserProtocolUtils.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Defines the class structure and helper functions used by the \"standard\", non-brokered auth flows (popup, redirect, silent (RT), silent (iframe))\r\n */\r\nvar StandardInteractionClient = /** @class */ (function (_super) {\r\n __extends(StandardInteractionClient, _super);\r\n function StandardInteractionClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Generates an auth code request tied to the url request.\r\n * @param request\r\n */\r\n StandardInteractionClient.prototype.initializeAuthorizationCodeRequest = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var generatedPkceParams, authCodeRequest;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, request.correlationId);\r\n this.logger.verbose(\"initializeAuthorizationRequest called\", request.correlationId);\r\n return [4 /*yield*/, this.browserCrypto.generatePkceCodes()];\r\n case 1:\r\n generatedPkceParams = _a.sent();\r\n authCodeRequest = __assign(__assign({}, request), { redirectUri: request.redirectUri, code: Constants.EMPTY_STRING, codeVerifier: generatedPkceParams.verifier });\r\n request.codeChallenge = generatedPkceParams.challenge;\r\n request.codeChallengeMethod = Constants.S256_CODE_CHALLENGE_METHOD;\r\n return [2 /*return*/, authCodeRequest];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Initializer for the logout request.\r\n * @param logoutRequest\r\n */\r\n StandardInteractionClient.prototype.initializeLogoutRequest = function (logoutRequest) {\r\n this.logger.verbose(\"initializeLogoutRequest called\", logoutRequest === null || logoutRequest === void 0 ? void 0 : logoutRequest.correlationId);\r\n var validLogoutRequest = __assign({ correlationId: this.correlationId || this.browserCrypto.createNewGuid() }, logoutRequest);\r\n /**\r\n * Set logout_hint to be login_hint from ID Token Claims if present\r\n * and logoutHint attribute wasn't manually set in logout request\r\n */\r\n if (logoutRequest) {\r\n // If logoutHint isn't set and an account was passed in, try to extract logoutHint from ID Token Claims\r\n if (!logoutRequest.logoutHint) {\r\n if (logoutRequest.account) {\r\n var logoutHint = this.getLogoutHintFromIdTokenClaims(logoutRequest.account);\r\n if (logoutHint) {\r\n this.logger.verbose(\"Setting logoutHint to login_hint ID Token Claim value for the account provided\");\r\n validLogoutRequest.logoutHint = logoutHint;\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint was not set and account was not passed into logout request, logoutHint will not be set\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint has already been set in logoutRequest\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint will not be set since no logout request was configured\");\r\n }\r\n /*\r\n * Only set redirect uri if logout request isn't provided or the set uri isn't null.\r\n * Otherwise, use passed uri, config, or current page.\r\n */\r\n if (!logoutRequest || logoutRequest.postLogoutRedirectUri !== null) {\r\n if (logoutRequest && logoutRequest.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to uri set on logout request\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(logoutRequest.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri === null) {\r\n this.logger.verbose(\"postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect\", validLogoutRequest.correlationId);\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to configured uri\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n }\r\n else {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to current page\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(BrowserUtils.getCurrentUri(), BrowserUtils.getCurrentUri());\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"postLogoutRedirectUri passed as null, not setting post logout redirect uri\", validLogoutRequest.correlationId);\r\n }\r\n return validLogoutRequest;\r\n };\r\n /**\r\n * Parses login_hint ID Token Claim out of AccountInfo object to be used as\r\n * logout_hint in end session request.\r\n * @param account\r\n */\r\n StandardInteractionClient.prototype.getLogoutHintFromIdTokenClaims = function (account) {\r\n var idTokenClaims = account.idTokenClaims;\r\n if (idTokenClaims) {\r\n if (idTokenClaims.login_hint) {\r\n return idTokenClaims.login_hint;\r\n }\r\n else {\r\n this.logger.verbose(\"The ID Token Claims tied to the provided account do not contain a login_hint claim, logoutHint will not be added to logout request\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"The provided account does not contain ID Token Claims, logoutHint will not be added to logout request\");\r\n }\r\n return null;\r\n };\r\n /**\r\n * Creates an Authorization Code Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n StandardInteractionClient.prototype.createAuthCodeClient = function (serverTelemetryManager, authorityUrl, requestAzureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, this.correlationId);\r\n // Create auth module.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl, requestAzureCloudOptions)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new AuthorizationCodeClient(clientConfig, this.performanceClient)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates a Client Configuration object with the given request authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param requestAuthority\r\n * @param requestCorrelationId\r\n */\r\n StandardInteractionClient.prototype.getClientConfiguration = function (serverTelemetryManager, requestAuthority, requestAzureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var discoveredAuthority, logger;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);\r\n this.logger.verbose(\"getClientConfiguration called\", this.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority, this.correlationId);\r\n return [4 /*yield*/, this.getDiscoveredAuthority(requestAuthority, requestAzureCloudOptions)];\r\n case 1:\r\n discoveredAuthority = _a.sent();\r\n logger = this.config.system.loggerOptions;\r\n return [2 /*return*/, {\r\n authOptions: {\r\n clientId: this.config.auth.clientId,\r\n authority: discoveredAuthority,\r\n clientCapabilities: this.config.auth.clientCapabilities\r\n },\r\n systemOptions: {\r\n tokenRenewalOffsetSeconds: this.config.system.tokenRenewalOffsetSeconds,\r\n preventCorsPreflight: true\r\n },\r\n loggerOptions: {\r\n loggerCallback: logger.loggerCallback,\r\n piiLoggingEnabled: logger.piiLoggingEnabled,\r\n logLevel: logger.logLevel,\r\n correlationId: this.correlationId\r\n },\r\n cryptoInterface: this.browserCrypto,\r\n networkInterface: this.networkClient,\r\n storageInterface: this.browserStorage,\r\n serverTelemetryManager: serverTelemetryManager,\r\n libraryInfo: {\r\n sku: BrowserConstants.MSAL_SKU,\r\n version: version,\r\n cpu: Constants.EMPTY_STRING,\r\n os: Constants.EMPTY_STRING\r\n },\r\n telemetry: this.config.telemetry\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * @param hash\r\n * @param interactionType\r\n */\r\n StandardInteractionClient.prototype.validateAndExtractStateFromHash = function (serverParams, interactionType, requestCorrelationId) {\r\n this.logger.verbose(\"validateAndExtractStateFromHash called\", requestCorrelationId);\r\n if (!serverParams.state) {\r\n throw BrowserAuthError.createHashDoesNotContainStateError();\r\n }\r\n var platformStateObj = BrowserProtocolUtils.extractBrowserRequestState(this.browserCrypto, serverParams.state);\r\n if (!platformStateObj) {\r\n throw BrowserAuthError.createUnableToParseStateError();\r\n }\r\n if (platformStateObj.interactionType !== interactionType) {\r\n throw BrowserAuthError.createStateInteractionTypeMismatchError();\r\n }\r\n this.logger.verbose(\"Returning state from hash\", requestCorrelationId);\r\n return serverParams.state;\r\n };\r\n /**\r\n * Used to get a discovered version of the default authority.\r\n * @param requestAuthority\r\n * @param requestCorrelationId\r\n */\r\n StandardInteractionClient.prototype.getDiscoveredAuthority = function (requestAuthority, requestAzureCloudOptions) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var getAuthorityMeasurement, authorityOptions, userAuthority, builtAuthority;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority, this.correlationId);\r\n this.logger.verbose(\"getDiscoveredAuthority called\", this.correlationId);\r\n getAuthorityMeasurement = (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.startMeasurement(PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority, this.correlationId);\r\n authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata,\r\n skipAuthorityMetadataCache: this.config.auth.skipAuthorityMetadataCache\r\n };\r\n userAuthority = requestAuthority ? requestAuthority : this.config.auth.authority;\r\n builtAuthority = Authority.generateAuthority(userAuthority, requestAzureCloudOptions || this.config.auth.azureCloudOptions);\r\n this.logger.verbose(\"Creating discovered authority with configured authority\", this.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.AuthorityFactoryCreateDiscoveredInstance, this.correlationId);\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(builtAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions, this.logger, this.performanceClient, this.correlationId)\r\n .then(function (result) {\r\n getAuthorityMeasurement.endMeasurement({\r\n success: true,\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n getAuthorityMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n })];\r\n case 1: return [2 /*return*/, _b.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper to initialize required request parameters for interactive APIs and ssoSilent()\r\n * @param request\r\n * @param interactionType\r\n */\r\n StandardInteractionClient.prototype.initializeAuthorizationRequest = function (request, interactionType) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var redirectUri, browserState, state, validatedRequest, _a, account, legacyLoginHint;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.correlationId);\r\n this.logger.verbose(\"initializeAuthorizationRequest called\", this.correlationId);\r\n redirectUri = this.getRedirectUri(request.redirectUri);\r\n browserState = {\r\n interactionType: interactionType\r\n };\r\n state = ProtocolUtils.setRequestState(this.browserCrypto, (request && request.state) || Constants.EMPTY_STRING, browserState);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeBaseRequest, this.correlationId);\r\n _a = [{}];\r\n return [4 /*yield*/, this.initializeBaseRequest(request)];\r\n case 1:\r\n validatedRequest = __assign.apply(void 0, [__assign.apply(void 0, _a.concat([_b.sent()])), { redirectUri: redirectUri, state: state, nonce: request.nonce || this.browserCrypto.createNewGuid(), responseMode: ResponseMode.FRAGMENT }]);\r\n account = request.account || this.browserStorage.getActiveAccount();\r\n if (account) {\r\n this.logger.verbose(\"Setting validated request account\", this.correlationId);\r\n this.logger.verbosePii(\"Setting validated request account: \" + account.homeAccountId, this.correlationId);\r\n validatedRequest.account = account;\r\n }\r\n // Check for ADAL/MSAL v1 SSO\r\n if (StringUtils.isEmpty(validatedRequest.loginHint) && !account) {\r\n legacyLoginHint = this.browserStorage.getLegacyLoginHint();\r\n if (legacyLoginHint) {\r\n validatedRequest.loginHint = legacyLoginHint;\r\n }\r\n }\r\n return [2 /*return*/, validatedRequest];\r\n }\r\n });\r\n });\r\n };\r\n return StandardInteractionClient;\r\n}(BaseInteractionClient));\n\nexport { StandardInteractionClient };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { PerformanceEvents, StringUtils, ClientAuthError, ServerError, AuthorityFactory } from '@azure/msal-common';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Abstract class which defines operations for a browser interaction handling class.\r\n */\r\nvar InteractionHandler = /** @class */ (function () {\r\n function InteractionHandler(authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) {\r\n this.authModule = authCodeModule;\r\n this.browserStorage = storageImpl;\r\n this.authCodeRequest = authCodeRequest;\r\n this.logger = logger;\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Function to handle response parameters from hash.\r\n * @param locationHash\r\n */\r\n InteractionHandler.prototype.handleCodeResponseFromHash = function (locationHash, state, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, authCodeResponse;\r\n return __generator(this, function (_a) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromHash, this.authCodeRequest.correlationId);\r\n this.logger.verbose(\"InteractionHandler.handleCodeResponse called\");\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n try {\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n }\r\n catch (e) {\r\n if (e instanceof ServerError && e.subError === BrowserAuthErrorMessage.userCancelledError.code) {\r\n // Translate server error caused by user closing native prompt to corresponding first class MSAL error\r\n throw BrowserAuthError.createUserCancelledError();\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.HandleCodeResponseFromServer, this.authCodeRequest.correlationId);\r\n return [2 /*return*/, this.handleCodeResponseFromServer(authCodeResponse, state, authority, networkModule)];\r\n });\r\n });\r\n };\r\n /**\r\n * Process auth code response from AAD\r\n * @param authCodeResponse\r\n * @param state\r\n * @param authority\r\n * @param networkModule\r\n * @returns\r\n */\r\n InteractionHandler.prototype.handleCodeResponseFromServer = function (authCodeResponse, state, authority, networkModule, validateNonce) {\r\n if (validateNonce === void 0) { validateNonce = true; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, nonceKey, cachedNonce, cachedCcsCred, tokenResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromServer, this.authCodeRequest.correlationId);\r\n this.logger.trace(\"InteractionHandler.handleCodeResponseFromServer called\");\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.UpdateTokenEndpointAuthority, this.authCodeRequest.correlationId);\r\n return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n // Nonce validation not needed when redirect not involved (e.g. hybrid spa, renewing token via rt)\r\n if (validateNonce) {\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n }\r\n authCodeResponse.state = requestState;\r\n // Add CCS parameters if available\r\n if (authCodeResponse.client_info) {\r\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\r\n }\r\n else {\r\n cachedCcsCred = this.checkCcsCredentials();\r\n if (cachedCcsCred) {\r\n this.authCodeRequest.ccsCredential = cachedCcsCred;\r\n }\r\n }\r\n // Acquire token with retrieved code.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.AuthClientAcquireToken, this.authCodeRequest.correlationId);\r\n return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n case 3:\r\n tokenResponse = _a.sent();\r\n this.browserStorage.cleanRequestByState(state);\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates authority based on cloudInstanceHostname\r\n * @param cloudInstanceHostname\r\n * @param authority\r\n * @param networkModule\r\n */\r\n InteractionHandler.prototype.updateTokenEndpointAuthority = function (cloudInstanceHostname, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cloudInstanceAuthorityUri, cloudInstanceAuthority;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.UpdateTokenEndpointAuthority, this.authCodeRequest.correlationId);\r\n cloudInstanceAuthorityUri = \"https://\" + cloudInstanceHostname + \"/\" + authority.tenant + \"/\";\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(cloudInstanceAuthorityUri, networkModule, this.browserStorage, authority.options, this.logger, this.performanceClient, this.authCodeRequest.correlationId)];\r\n case 1:\r\n cloudInstanceAuthority = _a.sent();\r\n this.authModule.updateAuthority(cloudInstanceAuthority);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Looks up ccs creds in the cache\r\n */\r\n InteractionHandler.prototype.checkCcsCredentials = function () {\r\n // Look up ccs credential in temp cache\r\n var cachedCcsCred = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, true);\r\n if (cachedCcsCred) {\r\n try {\r\n return JSON.parse(cachedCcsCred);\r\n }\r\n catch (e) {\r\n this.authModule.logger.error(\"Cache credential could not be parsed\");\r\n this.authModule.logger.errorPii(\"Cache credential could not be parsed: \" + cachedCcsCred);\r\n }\r\n }\r\n return null;\r\n };\r\n return InteractionHandler;\r\n}());\n\nexport { InteractionHandler };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { StringUtils, ClientAuthError, ServerError } from '@azure/msal-common';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys, ApiId } from '../utils/BrowserConstants.js';\nimport { InteractionHandler } from './InteractionHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RedirectHandler = /** @class */ (function (_super) {\r\n __extends(RedirectHandler, _super);\r\n function RedirectHandler(authCodeModule, storageImpl, authCodeRequest, logger, browserCrypto, performanceClient) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) || this;\r\n _this.browserCrypto = browserCrypto;\r\n return _this;\r\n }\r\n /**\r\n * Redirects window to given URL.\r\n * @param urlNavigate\r\n */\r\n RedirectHandler.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var navigationOptions, navigate;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest called\");\r\n if (!!StringUtils.isEmpty(requestUrl)) return [3 /*break*/, 7];\r\n // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true\r\n if (params.redirectStartPage) {\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page\");\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);\r\n }\r\n // Set interaction status in the library.\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, this.authCodeRequest.correlationId, true);\r\n this.browserStorage.cacheCodeRequest(this.authCodeRequest, this.browserCrypto);\r\n this.logger.infoPii(\"RedirectHandler.initiateAuthRequest: Navigate to: \" + requestUrl);\r\n navigationOptions = {\r\n apiId: ApiId.acquireTokenRedirect,\r\n timeout: params.redirectTimeout,\r\n noHistory: false\r\n };\r\n if (!(typeof params.onRedirectNavigate === \"function\")) return [3 /*break*/, 4];\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback\");\r\n navigate = params.onRedirectNavigate(requestUrl);\r\n if (!(navigate !== false)) return [3 /*break*/, 2];\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating\");\r\n return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 2:\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation\");\r\n return [2 /*return*/];\r\n case 3: return [3 /*break*/, 6];\r\n case 4:\r\n // Navigate window to request URL\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: Navigating window to navigate url\");\r\n return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n case 5:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 6: return [3 /*break*/, 8];\r\n case 7:\r\n // Throw error if request URL is empty.\r\n this.logger.info(\"RedirectHandler.initiateAuthRequest: Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Handle authorization code response in the window.\r\n * @param hash\r\n */\r\n RedirectHandler.prototype.handleCodeResponseFromHash = function (locationHash, state, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, cachedCcsCred, tokenResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"RedirectHandler.handleCodeResponse called\");\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.setInteractionInProgress(false);\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n try {\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n }\r\n catch (e) {\r\n if (e instanceof ServerError && e.subError === BrowserAuthErrorMessage.userCancelledError.code) {\r\n // Translate server error caused by user closing native prompt to corresponding first class MSAL error\r\n throw BrowserAuthError.createUserCancelledError();\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n authCodeResponse.state = requestState;\r\n // Add CCS parameters if available\r\n if (authCodeResponse.client_info) {\r\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\r\n }\r\n else {\r\n cachedCcsCred = this.checkCcsCredentials();\r\n if (cachedCcsCred) {\r\n this.authCodeRequest.ccsCredential = cachedCcsCred;\r\n }\r\n }\r\n return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n case 3:\r\n tokenResponse = _a.sent();\r\n this.browserStorage.cleanRequestByState(state);\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n return RedirectHandler;\r\n}(InteractionHandler));\n\nexport { RedirectHandler };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { PerformanceEvents, StringUtils, Constants, UrlString } from '@azure/msal-common';\nimport { InteractionHandler } from './InteractionHandler.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { DEFAULT_IFRAME_TIMEOUT_MS } from '../config/Configuration.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentHandler = /** @class */ (function (_super) {\r\n __extends(SilentHandler, _super);\r\n function SilentHandler(authCodeModule, storageImpl, authCodeRequest, logger, systemOptions, performanceClient) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) || this;\r\n _this.navigateFrameWait = systemOptions.navigateFrameWait;\r\n _this.pollIntervalMilliseconds = systemOptions.pollIntervalMilliseconds;\r\n return _this;\r\n }\r\n /**\r\n * Creates a hidden iframe to given URL using user-requested scopes as an id.\r\n * @param urlNavigate\r\n * @param userRequestScopes\r\n */\r\n SilentHandler.prototype.initiateAuthRequest = function (requestUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerInitiateAuthRequest, this.authCodeRequest.correlationId);\r\n if (StringUtils.isEmpty(requestUrl)) {\r\n // Throw error if request URL is empty.\r\n this.logger.info(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n if (!this.navigateFrameWait) return [3 /*break*/, 2];\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentHandlerLoadFrame, this.authCodeRequest.correlationId);\r\n return [4 /*yield*/, this.loadFrame(requestUrl)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [2 /*return*/, this.loadFrameSync(requestUrl)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Monitors an iframe content window until it loads a url with a known hash, or hits a specified timeout.\r\n * @param iframe\r\n * @param timeout\r\n */\r\n SilentHandler.prototype.monitorIframeForHash = function (iframe, timeout) {\r\n var _this = this;\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerMonitorIframeForHash, this.authCodeRequest.correlationId);\r\n return new Promise(function (resolve, reject) {\r\n if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {\r\n _this.logger.warning(\"system.loadFrameTimeout or system.iframeHashTimeout set to lower (\" + timeout + \"ms) than the default (\" + DEFAULT_IFRAME_TIMEOUT_MS + \"ms). This may result in timeouts.\");\r\n }\r\n /*\r\n * Polling for iframes can be purely timing based,\r\n * since we don't need to account for interaction.\r\n */\r\n var nowMark = window.performance.now();\r\n var timeoutMark = nowMark + timeout;\r\n var intervalId = setInterval(function () {\r\n if (window.performance.now() > timeoutMark) {\r\n _this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createMonitorIframeTimeoutError());\r\n return;\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n var contentWindow = iframe.contentWindow;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = contentWindow ? contentWindow.location.href : Constants.EMPTY_STRING;\r\n }\r\n catch (e) { }\r\n if (StringUtils.isEmpty(href)) {\r\n return;\r\n }\r\n var contentHash = contentWindow ? contentWindow.location.hash : Constants.EMPTY_STRING;\r\n if (UrlString.hashContainsKnownProperties(contentHash)) {\r\n // Success case\r\n _this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n resolve(contentHash);\r\n return;\r\n }\r\n }, _this.pollIntervalMilliseconds);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads iframe with authorization endpoint URL\r\n * @ignore\r\n */\r\n SilentHandler.prototype.loadFrame = function (urlNavigate) {\r\n var _this = this;\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerLoadFrame, this.authCodeRequest.correlationId);\r\n /*\r\n * This trick overcomes iframe navigation in IE\r\n * IE does not load the page consistently in iframe\r\n */\r\n return new Promise(function (resolve, reject) {\r\n var frameHandle = _this.createHiddenIframe();\r\n setTimeout(function () {\r\n if (!frameHandle) {\r\n reject(\"Unable to load iframe\");\r\n return;\r\n }\r\n frameHandle.src = urlNavigate;\r\n resolve(frameHandle);\r\n }, _this.navigateFrameWait);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads the iframe synchronously when the navigateTimeFrame is set to `0`\r\n * @param urlNavigate\r\n * @param frameName\r\n * @param logger\r\n */\r\n SilentHandler.prototype.loadFrameSync = function (urlNavigate) {\r\n var frameHandle = this.createHiddenIframe();\r\n frameHandle.src = urlNavigate;\r\n return frameHandle;\r\n };\r\n /**\r\n * @hidden\r\n * Creates a new hidden iframe or gets an existing one for silent token renewal.\r\n * @ignore\r\n */\r\n SilentHandler.prototype.createHiddenIframe = function () {\r\n var authFrame = document.createElement(\"iframe\");\r\n authFrame.style.visibility = \"hidden\";\r\n authFrame.style.position = \"absolute\";\r\n authFrame.style.width = authFrame.style.height = \"0\";\r\n authFrame.style.border = \"0\";\r\n authFrame.setAttribute(\"sandbox\", \"allow-scripts allow-same-origin allow-forms\");\r\n document.getElementsByTagName(\"body\")[0].appendChild(authFrame);\r\n return authFrame;\r\n };\r\n /**\r\n * @hidden\r\n * Removes a hidden iframe from the page.\r\n * @ignore\r\n */\r\n SilentHandler.prototype.removeHiddenIframe = function (iframe) {\r\n if (document.body === iframe.parentNode) {\r\n document.body.removeChild(iframe);\r\n }\r\n };\r\n return SilentHandler;\r\n}(InteractionHandler));\n\nexport { SilentHandler };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NavigationClient = /** @class */ (function () {\r\n function NavigationClient() {\r\n }\r\n /**\r\n * Navigates to other pages within the same web application\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.prototype.navigateInternal = function (url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n };\r\n /**\r\n * Navigates to other pages outside the web application i.e. the Identity Provider\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.prototype.navigateExternal = function (url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n };\r\n /**\r\n * Default navigation implementation invoked by the internal and external functions\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.defaultNavigateWindow = function (url, options) {\r\n if (options.noHistory) {\r\n window.location.replace(url);\r\n }\r\n else {\r\n window.location.assign(url);\r\n }\r\n return new Promise(function (resolve) {\r\n setTimeout(function () {\r\n resolve(true);\r\n }, options.timeout);\r\n });\r\n };\r\n return NavigationClient;\r\n}());\n\nexport { NavigationClient };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { Constants } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { HTTP_REQUEST_TYPE } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the Fetch API for GET and POST requests. See more here: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API\r\n */\r\nvar FetchClient = /** @class */ (function () {\r\n function FetchClient() {\r\n }\r\n /**\r\n * Fetch Client for REST endpoints - Get request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n FetchClient.prototype.sendGetRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response, e_1, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _b.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, fetch(url, {\r\n method: HTTP_REQUEST_TYPE.GET,\r\n headers: this.getFetchHeaders(options)\r\n })];\r\n case 1:\r\n response = _b.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n e_1 = _b.sent();\r\n if (window.navigator.onLine) {\r\n throw BrowserAuthError.createGetRequestFailedError(e_1, url);\r\n }\r\n else {\r\n throw BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n case 3:\r\n _b.trys.push([3, 5, , 6]);\r\n _a = {\r\n headers: this.getHeaderDict(response.headers)\r\n };\r\n return [4 /*yield*/, response.json()];\r\n case 4: return [2 /*return*/, (_a.body = (_b.sent()),\r\n _a.status = response.status,\r\n _a)];\r\n case 5:\r\n _b.sent();\r\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Fetch Client for REST endpoints - Post request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n FetchClient.prototype.sendPostRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var reqBody, response, e_3, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n reqBody = (options && options.body) || Constants.EMPTY_STRING;\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, fetch(url, {\r\n method: HTTP_REQUEST_TYPE.POST,\r\n headers: this.getFetchHeaders(options),\r\n body: reqBody\r\n })];\r\n case 2:\r\n response = _b.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_3 = _b.sent();\r\n if (window.navigator.onLine) {\r\n throw BrowserAuthError.createPostRequestFailedError(e_3, url);\r\n }\r\n else {\r\n throw BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n case 4:\r\n _b.trys.push([4, 6, , 7]);\r\n _a = {\r\n headers: this.getHeaderDict(response.headers)\r\n };\r\n return [4 /*yield*/, response.json()];\r\n case 5: return [2 /*return*/, (_a.body = (_b.sent()),\r\n _a.status = response.status,\r\n _a)];\r\n case 6:\r\n _b.sent();\r\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get Fetch API Headers object from string map\r\n * @param inputHeaders\r\n */\r\n FetchClient.prototype.getFetchHeaders = function (options) {\r\n var headers = new Headers();\r\n if (!(options && options.headers)) {\r\n return headers;\r\n }\r\n var optionsHeaders = options.headers;\r\n Object.keys(optionsHeaders).forEach(function (key) {\r\n headers.append(key, optionsHeaders[key]);\r\n });\r\n return headers;\r\n };\r\n FetchClient.prototype.getHeaderDict = function (headers) {\r\n var headerDict = {};\r\n headers.forEach(function (value, key) {\r\n headerDict[key] = value;\r\n });\r\n return headerDict;\r\n };\r\n return FetchClient;\r\n}());\n\nexport { FetchClient };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { HTTP_REQUEST_TYPE } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This client implements the XMLHttpRequest class to send GET and POST requests.\r\n */\r\nvar XhrClient = /** @class */ (function () {\r\n function XhrClient() {\r\n }\r\n /**\r\n * XhrClient for REST endpoints - Get request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n XhrClient.prototype.sendGetRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.sendRequestAsync(url, HTTP_REQUEST_TYPE.GET, options)];\r\n });\r\n });\r\n };\r\n /**\r\n * XhrClient for REST endpoints - Post request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n XhrClient.prototype.sendPostRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.sendRequestAsync(url, HTTP_REQUEST_TYPE.POST, options)];\r\n });\r\n });\r\n };\r\n /**\r\n * Helper for XhrClient requests.\r\n * @param url\r\n * @param method\r\n * @param options\r\n */\r\n XhrClient.prototype.sendRequestAsync = function (url, method, options) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(method, url, /* async: */ true);\r\n _this.setXhrHeaders(xhr, options);\r\n xhr.onload = function () {\r\n if (xhr.status < 200 || xhr.status >= 300) {\r\n if (method === HTTP_REQUEST_TYPE.POST) {\r\n reject(BrowserAuthError.createPostRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n else {\r\n reject(BrowserAuthError.createGetRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n }\r\n try {\r\n var jsonResponse = JSON.parse(xhr.responseText);\r\n var networkResponse = {\r\n headers: _this.getHeaderDict(xhr),\r\n body: jsonResponse,\r\n status: xhr.status\r\n };\r\n resolve(networkResponse);\r\n }\r\n catch (e) {\r\n reject(BrowserAuthError.createFailedToParseNetworkResponseError(url));\r\n }\r\n };\r\n xhr.onerror = function () {\r\n if (window.navigator.onLine) {\r\n if (method === HTTP_REQUEST_TYPE.POST) {\r\n reject(BrowserAuthError.createPostRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n else {\r\n reject(BrowserAuthError.createGetRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n }\r\n else {\r\n reject(BrowserAuthError.createNoNetworkConnectivityError());\r\n }\r\n };\r\n if (method === HTTP_REQUEST_TYPE.POST && options && options.body) {\r\n xhr.send(options.body);\r\n }\r\n else if (method === HTTP_REQUEST_TYPE.GET) {\r\n xhr.send();\r\n }\r\n else {\r\n throw BrowserAuthError.createHttpMethodNotImplementedError(method);\r\n }\r\n });\r\n };\r\n /**\r\n * Helper to set XHR headers for request.\r\n * @param xhr\r\n * @param options\r\n */\r\n XhrClient.prototype.setXhrHeaders = function (xhr, options) {\r\n if (options && options.headers) {\r\n var headers_1 = options.headers;\r\n Object.keys(headers_1).forEach(function (key) {\r\n xhr.setRequestHeader(key, headers_1[key]);\r\n });\r\n }\r\n };\r\n /**\r\n * Gets a string map of the headers received in the response.\r\n *\r\n * Algorithm comes from https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders\r\n * @param xhr\r\n */\r\n XhrClient.prototype.getHeaderDict = function (xhr) {\r\n var headerString = xhr.getAllResponseHeaders();\r\n var headerArr = headerString.trim().split(/[\\r\\n]+/);\r\n var headerDict = {};\r\n headerArr.forEach(function (value) {\r\n var parts = value.split(\": \");\r\n var headerName = parts.shift();\r\n var headerVal = parts.join(\": \");\r\n if (headerName && headerVal) {\r\n headerDict[headerName] = headerVal;\r\n }\r\n });\r\n return headerDict;\r\n };\r\n return XhrClient;\r\n}());\n\nexport { XhrClient };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\n/* eslint-disable header/header */\r\nvar name = \"@azure/msal-browser\";\r\nvar version = \"2.37.0\";\n\nexport { name, version };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { __extends, __assign } from '../_virtual/_tslib.js';\nimport { PerformanceClient } from '@azure/msal-common';\nimport { BrowserCrypto } from '../crypto/BrowserCrypto.js';\nimport { GuidGenerator } from '../crypto/GuidGenerator.js';\nimport { BrowserPerformanceMeasurement } from './BrowserPerformanceMeasurement.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserPerformanceClient = /** @class */ (function (_super) {\r\n __extends(BrowserPerformanceClient, _super);\r\n function BrowserPerformanceClient(clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry, cryptoOptions) {\r\n var _this = _super.call(this, clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry) || this;\r\n _this.browserCrypto = new BrowserCrypto(_this.logger, cryptoOptions);\r\n _this.guidGenerator = new GuidGenerator(_this.browserCrypto);\r\n return _this;\r\n }\r\n BrowserPerformanceClient.prototype.startPerformanceMeasuremeant = function (measureName, correlationId) {\r\n return new BrowserPerformanceMeasurement(measureName, correlationId);\r\n };\r\n BrowserPerformanceClient.prototype.generateId = function () {\r\n return this.guidGenerator.generateGuid();\r\n };\r\n BrowserPerformanceClient.prototype.getPageVisibility = function () {\r\n var _a;\r\n return ((_a = document.visibilityState) === null || _a === void 0 ? void 0 : _a.toString()) || null;\r\n };\r\n BrowserPerformanceClient.prototype.deleteIncompleteSubMeasurements = function (inProgressEvent) {\r\n var rootEvent = this.eventsByCorrelationId.get(inProgressEvent.event.correlationId);\r\n var isRootEvent = rootEvent && rootEvent.eventId === inProgressEvent.event.eventId;\r\n var incompleteMeasurements = [];\r\n if (isRootEvent && (rootEvent === null || rootEvent === void 0 ? void 0 : rootEvent.incompleteSubMeasurements)) {\r\n rootEvent.incompleteSubMeasurements.forEach(function (subMeasurement) {\r\n incompleteMeasurements.push(__assign({}, subMeasurement));\r\n });\r\n }\r\n // Clean up remaining marks for incomplete sub-measurements\r\n if (incompleteMeasurements.length > 0) {\r\n BrowserPerformanceMeasurement.flushMeasurements(inProgressEvent.event.correlationId, incompleteMeasurements);\r\n }\r\n };\r\n BrowserPerformanceClient.prototype.supportsBrowserPerformanceNow = function () {\r\n return typeof window !== \"undefined\" &&\r\n typeof window.performance !== \"undefined\" &&\r\n typeof window.performance.now === \"function\";\r\n };\r\n /**\r\n * Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.\r\n * Also captures browser page visibilityState.\r\n *\r\n * @param {PerformanceEvents} measureName\r\n * @param {?string} [correlationId]\r\n * @returns {((event?: Partial) => PerformanceEvent| null)}\r\n */\r\n BrowserPerformanceClient.prototype.startMeasurement = function (measureName, correlationId) {\r\n var _this = this;\r\n // Capture page visibilityState and then invoke start/end measurement\r\n var startPageVisibility = this.getPageVisibility();\r\n var inProgressEvent = _super.prototype.startMeasurement.call(this, measureName, correlationId);\r\n return __assign(__assign({}, inProgressEvent), { endMeasurement: function (event) {\r\n var res = inProgressEvent.endMeasurement(__assign({ startPageVisibility: startPageVisibility, endPageVisibility: _this.getPageVisibility() }, event));\r\n _this.deleteIncompleteSubMeasurements(inProgressEvent);\r\n return res;\r\n }, discardMeasurement: function () {\r\n inProgressEvent.discardMeasurement();\r\n _this.deleteIncompleteSubMeasurements(inProgressEvent);\r\n inProgressEvent.measurement.flushMeasurement();\r\n } });\r\n };\r\n /**\r\n * Adds pre-queue time to preQueueTimeByCorrelationId map.\r\n * @param {PerformanceEvents} eventName\r\n * @param {?string} correlationId\r\n * @returns\r\n */\r\n BrowserPerformanceClient.prototype.setPreQueueTime = function (eventName, correlationId) {\r\n if (!this.supportsBrowserPerformanceNow()) {\r\n this.logger.trace(\"BrowserPerformanceClient: window performance API not available, unable to set telemetry queue time for \" + eventName);\r\n return;\r\n }\r\n if (!correlationId) {\r\n this.logger.trace(\"BrowserPerformanceClient: correlationId for \" + eventName + \" not provided, unable to set telemetry queue time\");\r\n return;\r\n }\r\n var preQueueEvent = this.preQueueTimeByCorrelationId.get(correlationId);\r\n /**\r\n * Manually complete queue measurement if there is an incomplete pre-queue event.\r\n * Incomplete pre-queue events are instrumentation bugs that should be fixed.\r\n */\r\n if (preQueueEvent) {\r\n this.logger.trace(\"BrowserPerformanceClient: Incomplete pre-queue \" + preQueueEvent.name + \" found\", correlationId);\r\n this.addQueueMeasurement(preQueueEvent.name, correlationId, undefined, true);\r\n }\r\n this.preQueueTimeByCorrelationId.set(correlationId, { name: eventName, time: window.performance.now() });\r\n };\r\n /**\r\n * Calculates and adds queue time measurement for given performance event.\r\n *\r\n * @param {PerformanceEvents} eventName\r\n * @param {?string} correlationId\r\n * @param {?number} queueTime\r\n * @param {?boolean} manuallyCompleted - indicator for manually completed queue measurements\r\n * @returns\r\n */\r\n BrowserPerformanceClient.prototype.addQueueMeasurement = function (eventName, correlationId, queueTime, manuallyCompleted) {\r\n if (!this.supportsBrowserPerformanceNow()) {\r\n this.logger.trace(\"BrowserPerformanceClient: window performance API not available, unable to add queue measurement for \" + eventName);\r\n return;\r\n }\r\n if (!correlationId) {\r\n this.logger.trace(\"BrowserPerformanceClient: correlationId for \" + eventName + \" not provided, unable to add queue measurement\");\r\n return;\r\n }\r\n var preQueueTime = _super.prototype.getPreQueueTime.call(this, eventName, correlationId);\r\n if (!preQueueTime) {\r\n return;\r\n }\r\n var currentTime = window.performance.now();\r\n var resQueueTime = queueTime || _super.prototype.calculateQueuedTime.call(this, preQueueTime, currentTime);\r\n return _super.prototype.addQueueMeasurement.call(this, eventName, correlationId, resQueueTime, manuallyCompleted);\r\n };\r\n return BrowserPerformanceClient;\r\n}(PerformanceClient));\n\nexport { BrowserPerformanceClient };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserPerformanceMeasurement = /** @class */ (function () {\r\n function BrowserPerformanceMeasurement(name, correlationId) {\r\n this.correlationId = correlationId;\r\n this.measureName = BrowserPerformanceMeasurement.makeMeasureName(name, correlationId);\r\n this.startMark = BrowserPerformanceMeasurement.makeStartMark(name, correlationId);\r\n this.endMark = BrowserPerformanceMeasurement.makeEndMark(name, correlationId);\r\n }\r\n BrowserPerformanceMeasurement.makeMeasureName = function (name, correlationId) {\r\n return \"msal.measure.\" + name + \".\" + correlationId;\r\n };\r\n BrowserPerformanceMeasurement.makeStartMark = function (name, correlationId) {\r\n return \"msal.start.\" + name + \".\" + correlationId;\r\n };\r\n BrowserPerformanceMeasurement.makeEndMark = function (name, correlationId) {\r\n return \"msal.end.\" + name + \".\" + correlationId;\r\n };\r\n BrowserPerformanceMeasurement.supportsBrowserPerformance = function () {\r\n return typeof window !== \"undefined\" &&\r\n typeof window.performance !== \"undefined\" &&\r\n typeof window.performance.mark === \"function\" &&\r\n typeof window.performance.measure === \"function\" &&\r\n typeof window.performance.clearMarks === \"function\" &&\r\n typeof window.performance.clearMeasures === \"function\" &&\r\n typeof window.performance.getEntriesByName === \"function\";\r\n };\r\n /**\r\n * Flush browser marks and measurements.\r\n * @param {string} correlationId\r\n * @param {SubMeasurement} measurements\r\n */\r\n BrowserPerformanceMeasurement.flushMeasurements = function (correlationId, measurements) {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n measurements.forEach(function (measurement) {\r\n var measureName = BrowserPerformanceMeasurement.makeMeasureName(measurement.name, correlationId);\r\n var entriesForMeasurement = window.performance.getEntriesByName(measureName, \"measure\");\r\n if (entriesForMeasurement.length > 0) {\r\n window.performance.clearMeasures(measureName);\r\n window.performance.clearMarks(BrowserPerformanceMeasurement.makeStartMark(measureName, correlationId));\r\n window.performance.clearMarks(BrowserPerformanceMeasurement.makeEndMark(measureName, correlationId));\r\n }\r\n });\r\n }\r\n catch (e) {\r\n // Silently catch and return null\r\n }\r\n }\r\n };\r\n BrowserPerformanceMeasurement.prototype.startMeasurement = function () {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n window.performance.mark(this.startMark);\r\n }\r\n catch (e) {\r\n // Silently catch\r\n }\r\n }\r\n };\r\n BrowserPerformanceMeasurement.prototype.endMeasurement = function () {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n window.performance.mark(this.endMark);\r\n window.performance.measure(this.measureName, this.startMark, this.endMark);\r\n }\r\n catch (e) {\r\n // Silently catch\r\n }\r\n }\r\n };\r\n BrowserPerformanceMeasurement.prototype.flushMeasurement = function () {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n var entriesForMeasurement = window.performance.getEntriesByName(this.measureName, \"measure\");\r\n if (entriesForMeasurement.length > 0) {\r\n var durationMs = entriesForMeasurement[0].duration;\r\n window.performance.clearMeasures(this.measureName);\r\n window.performance.clearMarks(this.startMark);\r\n window.performance.clearMarks(this.endMark);\r\n return durationMs;\r\n }\r\n }\r\n catch (e) {\r\n // Silently catch and return null\r\n }\r\n }\r\n return null;\r\n };\r\n return BrowserPerformanceMeasurement;\r\n}());\n\nexport { BrowserPerformanceMeasurement };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { OIDC_DEFAULT_SCOPES } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Constants\r\n */\r\nvar BrowserConstants = {\r\n /**\r\n * Interaction in progress cache value\r\n */\r\n INTERACTION_IN_PROGRESS_VALUE: \"interaction_in_progress\",\r\n /**\r\n * Invalid grant error code\r\n */\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n /**\r\n * Default popup window width\r\n */\r\n POPUP_WIDTH: 483,\r\n /**\r\n * Default popup window height\r\n */\r\n POPUP_HEIGHT: 600,\r\n /**\r\n * Name of the popup window starts with\r\n */\r\n POPUP_NAME_PREFIX: \"msal\",\r\n /**\r\n * Default popup monitor poll interval in milliseconds\r\n */\r\n DEFAULT_POLL_INTERVAL_MS: 30,\r\n /**\r\n * Msal-browser SKU\r\n */\r\n MSAL_SKU: \"msal.js.browser\",\r\n};\r\nvar NativeConstants = {\r\n CHANNEL_ID: \"53ee284d-920a-4b59-9d30-a60315b26836\",\r\n PREFERRED_EXTENSION_ID: \"ppnbnpeolgkicgegkbkbjmhlideopiji\",\r\n MATS_TELEMETRY: \"MATS\"\r\n};\r\nvar NativeExtensionMethod;\r\n(function (NativeExtensionMethod) {\r\n NativeExtensionMethod[\"HandshakeRequest\"] = \"Handshake\";\r\n NativeExtensionMethod[\"HandshakeResponse\"] = \"HandshakeResponse\";\r\n NativeExtensionMethod[\"GetToken\"] = \"GetToken\";\r\n NativeExtensionMethod[\"Response\"] = \"Response\";\r\n})(NativeExtensionMethod || (NativeExtensionMethod = {}));\r\nvar BrowserCacheLocation;\r\n(function (BrowserCacheLocation) {\r\n BrowserCacheLocation[\"LocalStorage\"] = \"localStorage\";\r\n BrowserCacheLocation[\"SessionStorage\"] = \"sessionStorage\";\r\n BrowserCacheLocation[\"MemoryStorage\"] = \"memoryStorage\";\r\n})(BrowserCacheLocation || (BrowserCacheLocation = {}));\r\n/**\r\n * HTTP Request types supported by MSAL.\r\n */\r\nvar HTTP_REQUEST_TYPE;\r\n(function (HTTP_REQUEST_TYPE) {\r\n HTTP_REQUEST_TYPE[\"GET\"] = \"GET\";\r\n HTTP_REQUEST_TYPE[\"POST\"] = \"POST\";\r\n})(HTTP_REQUEST_TYPE || (HTTP_REQUEST_TYPE = {}));\r\n/**\r\n * Temporary cache keys for MSAL, deleted after any request.\r\n */\r\nvar TemporaryCacheKeys;\r\n(function (TemporaryCacheKeys) {\r\n TemporaryCacheKeys[\"AUTHORITY\"] = \"authority\";\r\n TemporaryCacheKeys[\"ACQUIRE_TOKEN_ACCOUNT\"] = \"acquireToken.account\";\r\n TemporaryCacheKeys[\"SESSION_STATE\"] = \"session.state\";\r\n TemporaryCacheKeys[\"REQUEST_STATE\"] = \"request.state\";\r\n TemporaryCacheKeys[\"NONCE_IDTOKEN\"] = \"nonce.id_token\";\r\n TemporaryCacheKeys[\"ORIGIN_URI\"] = \"request.origin\";\r\n TemporaryCacheKeys[\"RENEW_STATUS\"] = \"token.renew.status\";\r\n TemporaryCacheKeys[\"URL_HASH\"] = \"urlHash\";\r\n TemporaryCacheKeys[\"REQUEST_PARAMS\"] = \"request.params\";\r\n TemporaryCacheKeys[\"SCOPES\"] = \"scopes\";\r\n TemporaryCacheKeys[\"INTERACTION_STATUS_KEY\"] = \"interaction.status\";\r\n TemporaryCacheKeys[\"CCS_CREDENTIAL\"] = \"ccs.credential\";\r\n TemporaryCacheKeys[\"CORRELATION_ID\"] = \"request.correlationId\";\r\n TemporaryCacheKeys[\"NATIVE_REQUEST\"] = \"request.native\";\r\n TemporaryCacheKeys[\"REDIRECT_CONTEXT\"] = \"request.redirect.context\";\r\n})(TemporaryCacheKeys || (TemporaryCacheKeys = {}));\r\nvar StaticCacheKeys;\r\n(function (StaticCacheKeys) {\r\n StaticCacheKeys[\"ACCOUNT_KEYS\"] = \"msal.account.keys\";\r\n StaticCacheKeys[\"TOKEN_KEYS\"] = \"msal.token.keys\";\r\n})(StaticCacheKeys || (StaticCacheKeys = {}));\r\n/**\r\n * Cache keys stored in-memory\r\n */\r\nvar InMemoryCacheKeys;\r\n(function (InMemoryCacheKeys) {\r\n InMemoryCacheKeys[\"WRAPPER_SKU\"] = \"wrapper.sku\";\r\n InMemoryCacheKeys[\"WRAPPER_VER\"] = \"wrapper.version\";\r\n})(InMemoryCacheKeys || (InMemoryCacheKeys = {}));\r\n/**\r\n * API Codes for Telemetry purposes.\r\n * Before adding a new code you must claim it in the MSAL Telemetry tracker as these number spaces are shared across all MSALs\r\n * 0-99 Silent Flow\r\n * 800-899 Auth Code Flow\r\n */\r\nvar ApiId;\r\n(function (ApiId) {\r\n ApiId[ApiId[\"acquireTokenRedirect\"] = 861] = \"acquireTokenRedirect\";\r\n ApiId[ApiId[\"acquireTokenPopup\"] = 862] = \"acquireTokenPopup\";\r\n ApiId[ApiId[\"ssoSilent\"] = 863] = \"ssoSilent\";\r\n ApiId[ApiId[\"acquireTokenSilent_authCode\"] = 864] = \"acquireTokenSilent_authCode\";\r\n ApiId[ApiId[\"handleRedirectPromise\"] = 865] = \"handleRedirectPromise\";\r\n ApiId[ApiId[\"acquireTokenByCode\"] = 866] = \"acquireTokenByCode\";\r\n ApiId[ApiId[\"acquireTokenSilent_silentFlow\"] = 61] = \"acquireTokenSilent_silentFlow\";\r\n ApiId[ApiId[\"logout\"] = 961] = \"logout\";\r\n ApiId[ApiId[\"logoutPopup\"] = 962] = \"logoutPopup\";\r\n})(ApiId || (ApiId = {}));\r\n/*\r\n * Interaction type of the API - used for state and telemetry\r\n */\r\nvar InteractionType;\r\n(function (InteractionType) {\r\n InteractionType[\"Redirect\"] = \"redirect\";\r\n InteractionType[\"Popup\"] = \"popup\";\r\n InteractionType[\"Silent\"] = \"silent\";\r\n InteractionType[\"None\"] = \"none\";\r\n})(InteractionType || (InteractionType = {}));\r\n/**\r\n * Types of interaction currently in progress.\r\n * Used in events in wrapper libraries to invoke functions when certain interaction is in progress or all interactions are complete.\r\n */\r\nvar InteractionStatus;\r\n(function (InteractionStatus) {\r\n /**\r\n * Initial status before interaction occurs\r\n */\r\n InteractionStatus[\"Startup\"] = \"startup\";\r\n /**\r\n * Status set when all login calls occuring\r\n */\r\n InteractionStatus[\"Login\"] = \"login\";\r\n /**\r\n * Status set when logout call occuring\r\n */\r\n InteractionStatus[\"Logout\"] = \"logout\";\r\n /**\r\n * Status set for acquireToken calls\r\n */\r\n InteractionStatus[\"AcquireToken\"] = \"acquireToken\";\r\n /**\r\n * Status set for ssoSilent calls\r\n */\r\n InteractionStatus[\"SsoSilent\"] = \"ssoSilent\";\r\n /**\r\n * Status set when handleRedirect in progress\r\n */\r\n InteractionStatus[\"HandleRedirect\"] = \"handleRedirect\";\r\n /**\r\n * Status set when interaction is complete\r\n */\r\n InteractionStatus[\"None\"] = \"none\";\r\n})(InteractionStatus || (InteractionStatus = {}));\r\nvar DEFAULT_REQUEST = {\r\n scopes: OIDC_DEFAULT_SCOPES\r\n};\r\n/**\r\n * JWK Key Format string (Type MUST be defined for window crypto APIs)\r\n */\r\nvar KEY_FORMAT_JWK = \"jwk\";\r\n// Supported wrapper SKUs\r\nvar WrapperSKU;\r\n(function (WrapperSKU) {\r\n WrapperSKU[\"React\"] = \"@azure/msal-react\";\r\n WrapperSKU[\"Angular\"] = \"@azure/msal-angular\";\r\n})(WrapperSKU || (WrapperSKU = {}));\r\n// DatabaseStorage Constants\r\nvar DB_NAME = \"msal.db\";\r\nvar DB_VERSION = 1;\r\nvar DB_TABLE_NAME = DB_NAME + \".keys\";\r\nvar CacheLookupPolicy;\r\n(function (CacheLookupPolicy) {\r\n /*\r\n * acquireTokenSilent will attempt to retrieve an access token from the cache. If the access token is expired\r\n * or cannot be found the refresh token will be used to acquire a new one. Finally, if the refresh token\r\n * is expired acquireTokenSilent will attempt to acquire new access and refresh tokens.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"Default\"] = 0] = \"Default\";\r\n /*\r\n * acquireTokenSilent will only look for access tokens in the cache. It will not attempt to renew access or\r\n * refresh tokens.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"AccessToken\"] = 1] = \"AccessToken\";\r\n /*\r\n * acquireTokenSilent will attempt to retrieve an access token from the cache. If the access token is expired or\r\n * cannot be found, the refresh token will be used to acquire a new one. If the refresh token is expired, it\r\n * will not be renewed and acquireTokenSilent will fail.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"AccessTokenAndRefreshToken\"] = 2] = \"AccessTokenAndRefreshToken\";\r\n /*\r\n * acquireTokenSilent will not attempt to retrieve access tokens from the cache and will instead attempt to\r\n * exchange the cached refresh token for a new access token. If the refresh token is expired, it will not be\r\n * renewed and acquireTokenSilent will fail.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"RefreshToken\"] = 3] = \"RefreshToken\";\r\n /*\r\n * acquireTokenSilent will not look in the cache for the access token. It will go directly to network with the\r\n * cached refresh token. If the refresh token is expired an attempt will be made to renew it. This is equivalent to\r\n * setting \"forceRefresh: true\".\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"RefreshTokenAndNetwork\"] = 4] = \"RefreshTokenAndNetwork\";\r\n /*\r\n * acquireTokenSilent will attempt to renew both access and refresh tokens. It will not look in the cache. This will\r\n * always fail if 3rd party cookies are blocked by the browser.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"Skip\"] = 5] = \"Skip\";\r\n})(CacheLookupPolicy || (CacheLookupPolicy = {}));\n\nexport { ApiId, BrowserCacheLocation, BrowserConstants, CacheLookupPolicy, DB_NAME, DB_TABLE_NAME, DB_VERSION, DEFAULT_REQUEST, HTTP_REQUEST_TYPE, InMemoryCacheKeys, InteractionStatus, InteractionType, KEY_FORMAT_JWK, NativeConstants, NativeExtensionMethod, StaticCacheKeys, TemporaryCacheKeys, WrapperSKU };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { StringUtils, ProtocolUtils, ClientAuthError, UrlString } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserProtocolUtils = /** @class */ (function () {\r\n function BrowserProtocolUtils() {\r\n }\r\n /**\r\n * Extracts the BrowserStateObject from the state string.\r\n * @param browserCrypto\r\n * @param state\r\n */\r\n BrowserProtocolUtils.extractBrowserRequestState = function (browserCrypto, state) {\r\n if (StringUtils.isEmpty(state)) {\r\n return null;\r\n }\r\n try {\r\n var requestStateObj = ProtocolUtils.parseRequestState(browserCrypto, state);\r\n return requestStateObj.libraryState.meta;\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createInvalidStateError(state, e);\r\n }\r\n };\r\n /**\r\n * Parses properties of server response from url hash\r\n * @param locationHash Hash from url\r\n */\r\n BrowserProtocolUtils.parseServerResponseFromHash = function (locationHash) {\r\n if (!locationHash) {\r\n return {};\r\n }\r\n var hashUrlString = new UrlString(locationHash);\r\n return UrlString.getDeserializedHash(hashUrlString.getHash());\r\n };\r\n return BrowserProtocolUtils;\r\n}());\n\nexport { BrowserProtocolUtils };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { Constants } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility functions for strings in a browser. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar BrowserStringUtils = /** @class */ (function () {\r\n function BrowserStringUtils() {\r\n }\r\n /**\r\n * Converts string to Uint8Array\r\n * @param sDOMStr\r\n */\r\n BrowserStringUtils.stringToUtf8Arr = function (sDOMStr) {\r\n var nChr;\r\n var nArrLen = 0;\r\n var nStrLen = sDOMStr.length;\r\n /* mapping... */\r\n for (var nMapIdx = 0; nMapIdx < nStrLen; nMapIdx++) {\r\n nChr = sDOMStr.charCodeAt(nMapIdx);\r\n nArrLen += nChr < 0x80 ? 1 : nChr < 0x800 ? 2 : nChr < 0x10000 ? 3 : nChr < 0x200000 ? 4 : nChr < 0x4000000 ? 5 : 6;\r\n }\r\n var aBytes = new Uint8Array(nArrLen);\r\n /* transcription... */\r\n for (var nIdx = 0, nChrIdx = 0; nIdx < nArrLen; nChrIdx++) {\r\n nChr = sDOMStr.charCodeAt(nChrIdx);\r\n if (nChr < 128) {\r\n /* one byte */\r\n aBytes[nIdx++] = nChr;\r\n }\r\n else if (nChr < 0x800) {\r\n /* two bytes */\r\n aBytes[nIdx++] = 192 + (nChr >>> 6);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x10000) {\r\n /* three bytes */\r\n aBytes[nIdx++] = 224 + (nChr >>> 12);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x200000) {\r\n /* four bytes */\r\n aBytes[nIdx++] = 240 + (nChr >>> 18);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x4000000) {\r\n /* five bytes */\r\n aBytes[nIdx++] = 248 + (nChr >>> 24);\r\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else /* if (nChr <= 0x7fffffff) */ {\r\n /* six bytes */\r\n aBytes[nIdx++] = 252 + (nChr >>> 30);\r\n aBytes[nIdx++] = 128 + (nChr >>> 24 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n }\r\n return aBytes;\r\n };\r\n /**\r\n * Converst string to ArrayBuffer\r\n * @param dataString\r\n */\r\n BrowserStringUtils.stringToArrayBuffer = function (dataString) {\r\n var data = new ArrayBuffer(dataString.length);\r\n var dataView = new Uint8Array(data);\r\n for (var i = 0; i < dataString.length; i++) {\r\n dataView[i] = dataString.charCodeAt(i);\r\n }\r\n return data;\r\n };\r\n /**\r\n * Converts Uint8Array to a string\r\n * @param aBytes\r\n */\r\n BrowserStringUtils.utf8ArrToString = function (aBytes) {\r\n var sView = Constants.EMPTY_STRING;\r\n for (var nPart = void 0, nLen = aBytes.length, nIdx = 0; nIdx < nLen; nIdx++) {\r\n nPart = aBytes[nIdx];\r\n sView += String.fromCharCode(nPart > 251 && nPart < 254 && nIdx + 5 < nLen ? /* six bytes */\r\n /* (nPart - 252 << 30) may be not so safe in ECMAScript! So...: */\r\n (nPart - 252) * 1073741824 + (aBytes[++nIdx] - 128 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 247 && nPart < 252 && nIdx + 4 < nLen ? /* five bytes */\r\n (nPart - 248 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 239 && nPart < 248 && nIdx + 3 < nLen ? /* four bytes */\r\n (nPart - 240 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 223 && nPart < 240 && nIdx + 2 < nLen ? /* three bytes */\r\n (nPart - 224 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 191 && nPart < 224 && nIdx + 1 < nLen ? /* two bytes */\r\n (nPart - 192 << 6) + aBytes[++nIdx] - 128\r\n : /* nPart < 127 ? */ /* one byte */\r\n nPart);\r\n }\r\n return sView;\r\n };\r\n /**\r\n * Returns stringified jwk.\r\n * @param jwk\r\n */\r\n BrowserStringUtils.getSortedObjectString = function (obj) {\r\n return JSON.stringify(obj, Object.keys(obj).sort());\r\n };\r\n return BrowserStringUtils;\r\n}());\n\nexport { BrowserStringUtils };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\nimport { Constants, UrlString } from '@azure/msal-common';\nimport { FetchClient } from '../network/FetchClient.js';\nimport { XhrClient } from '../network/XhrClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserConstants, InteractionType } from './BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class for browser specific functions\r\n */\r\nvar BrowserUtils = /** @class */ (function () {\r\n function BrowserUtils() {\r\n }\r\n // #region Window Navigation and URL management\r\n /**\r\n * Clears hash from window url.\r\n */\r\n BrowserUtils.clearHash = function (contentWindow) {\r\n // Office.js sets history.replaceState to null\r\n contentWindow.location.hash = Constants.EMPTY_STRING;\r\n if (typeof contentWindow.history.replaceState === \"function\") {\r\n // Full removes \"#\" from url\r\n contentWindow.history.replaceState(null, Constants.EMPTY_STRING, \"\" + contentWindow.location.origin + contentWindow.location.pathname + contentWindow.location.search);\r\n }\r\n };\r\n /**\r\n * Replaces current hash with hash from provided url\r\n */\r\n BrowserUtils.replaceHash = function (url) {\r\n var urlParts = url.split(\"#\");\r\n urlParts.shift(); // Remove part before the hash\r\n window.location.hash = urlParts.length > 0 ? urlParts.join(\"#\") : Constants.EMPTY_STRING;\r\n };\r\n /**\r\n * Returns boolean of whether the current window is in an iframe or not.\r\n */\r\n BrowserUtils.isInIframe = function () {\r\n return window.parent !== window;\r\n };\r\n /**\r\n * Returns boolean of whether or not the current window is a popup opened by msal\r\n */\r\n BrowserUtils.isInPopup = function () {\r\n return typeof window !== \"undefined\" && !!window.opener &&\r\n window.opener !== window &&\r\n typeof window.name === \"string\" &&\r\n window.name.indexOf(BrowserConstants.POPUP_NAME_PREFIX + \".\") === 0;\r\n };\r\n // #endregion\r\n /**\r\n * Returns current window URL as redirect uri\r\n */\r\n BrowserUtils.getCurrentUri = function () {\r\n return window.location.href.split(\"?\")[0].split(\"#\")[0];\r\n };\r\n /**\r\n * Gets the homepage url for the current window location.\r\n */\r\n BrowserUtils.getHomepage = function () {\r\n var currentUrl = new UrlString(window.location.href);\r\n var urlComponents = currentUrl.getUrlComponents();\r\n return urlComponents.Protocol + \"//\" + urlComponents.HostNameAndPort + \"/\";\r\n };\r\n /**\r\n * Returns best compatible network client object.\r\n */\r\n BrowserUtils.getBrowserNetworkClient = function () {\r\n if (window.fetch && window.Headers) {\r\n return new FetchClient();\r\n }\r\n else {\r\n return new XhrClient();\r\n }\r\n };\r\n /**\r\n * Throws error if we have completed an auth and are\r\n * attempting another auth request inside an iframe.\r\n */\r\n BrowserUtils.blockReloadInHiddenIframes = function () {\r\n var isResponseHash = UrlString.hashContainsKnownProperties(window.location.hash);\r\n // return an error if called from the hidden iframe created by the msal js silent calls\r\n if (isResponseHash && BrowserUtils.isInIframe()) {\r\n throw BrowserAuthError.createBlockReloadInHiddenIframeError();\r\n }\r\n };\r\n /**\r\n * Block redirect operations in iframes unless explicitly allowed\r\n * @param interactionType Interaction type for the request\r\n * @param allowRedirectInIframe Config value to allow redirects when app is inside an iframe\r\n */\r\n BrowserUtils.blockRedirectInIframe = function (interactionType, allowRedirectInIframe) {\r\n var isIframedApp = BrowserUtils.isInIframe();\r\n if (interactionType === InteractionType.Redirect && isIframedApp && !allowRedirectInIframe) {\r\n // If we are not in top frame, we shouldn't redirect. This is also handled by the service.\r\n throw BrowserAuthError.createRedirectInIframeError(isIframedApp);\r\n }\r\n };\r\n /**\r\n * Block redirectUri loaded in popup from calling AcquireToken APIs\r\n */\r\n BrowserUtils.blockAcquireTokenInPopups = function () {\r\n // Popups opened by msal popup APIs are given a name that starts with \"msal.\"\r\n if (BrowserUtils.isInPopup()) {\r\n throw BrowserAuthError.createBlockAcquireTokenInPopupsError();\r\n }\r\n };\r\n /**\r\n * Throws error if token requests are made in non-browser environment\r\n * @param isBrowserEnvironment Flag indicating if environment is a browser.\r\n */\r\n BrowserUtils.blockNonBrowserEnvironment = function (isBrowserEnvironment) {\r\n if (!isBrowserEnvironment) {\r\n throw BrowserAuthError.createNonBrowserEnvironmentError();\r\n }\r\n };\r\n /**\r\n * Throws error if native brokering is enabled but initialize hasn't been called\r\n * @param allowNativeBroker\r\n * @param initialized\r\n */\r\n BrowserUtils.blockNativeBrokerCalledBeforeInitialized = function (allowNativeBroker, initialized) {\r\n if (allowNativeBroker && !initialized) {\r\n throw BrowserAuthError.createNativeBrokerCalledBeforeInitialize();\r\n }\r\n };\r\n /**\r\n * Returns boolean of whether current browser is an Internet Explorer or Edge browser.\r\n */\r\n BrowserUtils.detectIEOrEdge = function () {\r\n var ua = window.navigator.userAgent;\r\n var msie = ua.indexOf(\"MSIE \");\r\n var msie11 = ua.indexOf(\"Trident/\");\r\n var msedge = ua.indexOf(\"Edge/\");\r\n var isIE = msie > 0 || msie11 > 0;\r\n var isEdge = msedge > 0;\r\n return isIE || isEdge;\r\n };\r\n return BrowserUtils;\r\n}());\n\nexport { BrowserUtils };\n","/*! @azure/msal-browser v2.37.0 2023-05-01 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class for math specific functions in browser.\r\n */\r\nvar MathUtils = /** @class */ (function () {\r\n function MathUtils() {\r\n }\r\n /**\r\n * Decimal to Hex\r\n *\r\n * @param num\r\n */\r\n MathUtils.decimalToHex = function (num) {\r\n var hex = num.toString(16);\r\n while (hex.length < 2) {\r\n hex = \"0\" + hex;\r\n }\r\n return hex;\r\n };\r\n return MathUtils;\r\n}());\n\nexport { MathUtils };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\n\nexport { __assign, __awaiter, __extends, __generator, __spreadArrays };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * JWT Token representation class. Parses token string and generates claims object.\r\n */\r\nvar AuthToken = /** @class */ (function () {\r\n function AuthToken(rawToken, crypto) {\r\n if (StringUtils.isEmpty(rawToken)) {\r\n throw ClientAuthError.createTokenNullOrEmptyError(rawToken);\r\n }\r\n this.rawToken = rawToken;\r\n this.claims = AuthToken.extractTokenClaims(rawToken, crypto);\r\n }\r\n /**\r\n * Extract token by decoding the rawToken\r\n *\r\n * @param encodedToken\r\n */\r\n AuthToken.extractTokenClaims = function (encodedToken, crypto) {\r\n var decodedToken = StringUtils.decodeAuthToken(encodedToken);\r\n // token will be decoded to get the username\r\n try {\r\n var base64TokenPayload = decodedToken.JWSPayload;\r\n // base64Decode() should throw an error if there is an issue\r\n var base64Decoded = crypto.base64Decode(base64TokenPayload);\r\n return JSON.parse(base64Decoded);\r\n }\r\n catch (err) {\r\n throw ClientAuthError.createTokenParsingError(err);\r\n }\r\n };\r\n /**\r\n * Determine if the token's max_age has transpired\r\n */\r\n AuthToken.checkMaxAge = function (authTime, maxAge) {\r\n /*\r\n * per https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest\r\n * To force an immediate re-authentication: If an app requires that a user re-authenticate prior to access,\r\n * provide a value of 0 for the max_age parameter and the AS will force a fresh login.\r\n */\r\n var fiveMinuteSkew = 300000; // five minutes in milliseconds\r\n if ((maxAge === 0) || ((Date.now() - fiveMinuteSkew) > (authTime + maxAge))) {\r\n throw ClientAuthError.createMaxAgeTranspiredError();\r\n }\r\n };\r\n return AuthToken;\r\n}());\n\nexport { AuthToken };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CcsCredentialType;\r\n(function (CcsCredentialType) {\r\n CcsCredentialType[\"HOME_ACCOUNT_ID\"] = \"home_account_id\";\r\n CcsCredentialType[\"UPN\"] = \"UPN\";\r\n})(CcsCredentialType || (CcsCredentialType = {}));\n\nexport { CcsCredentialType };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { Separators, Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Function to build a client info object from server clientInfo string\r\n * @param rawClientInfo\r\n * @param crypto\r\n */\r\nfunction buildClientInfo(rawClientInfo, crypto) {\r\n if (StringUtils.isEmpty(rawClientInfo)) {\r\n throw ClientAuthError.createClientInfoEmptyError();\r\n }\r\n try {\r\n var decodedClientInfo = crypto.base64Decode(rawClientInfo);\r\n return JSON.parse(decodedClientInfo);\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createClientInfoDecodingError(e.message);\r\n }\r\n}\r\n/**\r\n * Function to build a client info object from cached homeAccountId string\r\n * @param homeAccountId\r\n */\r\nfunction buildClientInfoFromHomeAccountId(homeAccountId) {\r\n if (StringUtils.isEmpty(homeAccountId)) {\r\n throw ClientAuthError.createClientInfoDecodingError(\"Home account ID was empty.\");\r\n }\r\n var clientInfoParts = homeAccountId.split(Separators.CLIENT_INFO_SEPARATOR, 2);\r\n return {\r\n uid: clientInfoParts[0],\r\n utid: clientInfoParts.length < 2 ? Constants.EMPTY_STRING : clientInfoParts[1]\r\n };\r\n}\n\nexport { buildClientInfo, buildClientInfoFromHomeAccountId };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthorityType } from './AuthorityType.js';\nimport { isOpenIdConfigResponse } from './OpenIdConfigResponse.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { Constants, AuthorityMetadataSource, RegionDiscoveryOutcomes } from '../utils/Constants.js';\nimport { EndpointMetadata, InstanceDiscoveryMetadata } from './AuthorityMetadata.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ProtocolMode } from './ProtocolMode.js';\nimport { AuthorityMetadataEntity } from '../cache/entities/AuthorityMetadataEntity.js';\nimport { AzureCloudInstance } from './AuthorityOptions.js';\nimport { isCloudInstanceDiscoveryResponse } from './CloudInstanceDiscoveryResponse.js';\nimport { isCloudInstanceDiscoveryErrorResponse } from './CloudInstanceDiscoveryErrorResponse.js';\nimport { RegionDiscovery } from './RegionDiscovery.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The authority class validates the authority URIs used by the user, and retrieves the OpenID Configuration Data from the\r\n * endpoint. It will store the pertinent config data in this object for use during token calls.\r\n */\r\nvar Authority = /** @class */ (function () {\r\n function Authority(authority, networkInterface, cacheManager, authorityOptions, logger, performanceClient, correlationId) {\r\n this.canonicalAuthority = authority;\r\n this._canonicalAuthority.validateAsUri();\r\n this.networkInterface = networkInterface;\r\n this.cacheManager = cacheManager;\r\n this.authorityOptions = authorityOptions;\r\n this.regionDiscoveryMetadata = { region_used: undefined, region_source: undefined, region_outcome: undefined };\r\n this.logger = logger;\r\n this.performanceClient = performanceClient;\r\n this.correlationId = correlationId;\r\n this.regionDiscovery = new RegionDiscovery(networkInterface, this.performanceClient, this.correlationId);\r\n }\r\n Object.defineProperty(Authority.prototype, \"authorityType\", {\r\n // See above for AuthorityType\r\n get: function () {\r\n // CIAM auth url pattern is being standardized as: .ciamlogin.com\r\n if (this.canonicalAuthorityUrlComponents.HostNameAndPort.endsWith(Constants.CIAM_AUTH_URL)) {\r\n return AuthorityType.Ciam;\r\n }\r\n var pathSegments = this.canonicalAuthorityUrlComponents.PathSegments;\r\n if (pathSegments.length) {\r\n switch (pathSegments[0].toLowerCase()) {\r\n case Constants.ADFS:\r\n return AuthorityType.Adfs;\r\n case Constants.DSTS:\r\n return AuthorityType.Dsts;\r\n }\r\n }\r\n return AuthorityType.Default;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"protocolMode\", {\r\n /**\r\n * ProtocolMode enum representing the way endpoints are constructed.\r\n */\r\n get: function () {\r\n return this.authorityOptions.protocolMode;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"options\", {\r\n /**\r\n * Returns authorityOptions which can be used to reinstantiate a new authority instance\r\n */\r\n get: function () {\r\n return this.authorityOptions;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"canonicalAuthority\", {\r\n /**\r\n * A URL that is the authority set by the developer\r\n */\r\n get: function () {\r\n return this._canonicalAuthority.urlString;\r\n },\r\n /**\r\n * Sets canonical authority.\r\n */\r\n set: function (url) {\r\n this._canonicalAuthority = new UrlString(url);\r\n this._canonicalAuthority.validateAsUri();\r\n this._canonicalAuthorityUrlComponents = null;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"canonicalAuthorityUrlComponents\", {\r\n /**\r\n * Get authority components.\r\n */\r\n get: function () {\r\n if (!this._canonicalAuthorityUrlComponents) {\r\n this._canonicalAuthorityUrlComponents = this._canonicalAuthority.getUrlComponents();\r\n }\r\n return this._canonicalAuthorityUrlComponents;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"hostnameAndPort\", {\r\n /**\r\n * Get hostname and port i.e. login.microsoftonline.com\r\n */\r\n get: function () {\r\n return this.canonicalAuthorityUrlComponents.HostNameAndPort.toLowerCase();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"tenant\", {\r\n /**\r\n * Get tenant for authority.\r\n */\r\n get: function () {\r\n return this.canonicalAuthorityUrlComponents.PathSegments[0];\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"authorizationEndpoint\", {\r\n /**\r\n * OAuth /authorize endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.authorization_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"tokenEndpoint\", {\r\n /**\r\n * OAuth /token endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.token_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"deviceCodeEndpoint\", {\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.token_endpoint.replace(\"/token\", \"/devicecode\"));\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"endSessionEndpoint\", {\r\n /**\r\n * OAuth logout endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n // ROPC policies may not have end_session_endpoint set\r\n if (!this.metadata.end_session_endpoint) {\r\n throw ClientAuthError.createLogoutNotSupportedError();\r\n }\r\n var endpoint = this.replacePath(this.metadata.end_session_endpoint);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"selfSignedJwtAudience\", {\r\n /**\r\n * OAuth issuer for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.issuer);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"jwksUri\", {\r\n /**\r\n * Jwks_uri for token signing keys\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n var endpoint = this.replacePath(this.metadata.jwks_uri);\r\n return this.replaceTenant(endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Replaces tenant in url path with current tenant. Defaults to common.\r\n * @param urlString\r\n */\r\n Authority.prototype.replaceTenant = function (urlString) {\r\n return urlString.replace(/{tenant}|{tenantid}/g, this.tenant);\r\n };\r\n /**\r\n * Replaces path such as tenant or policy with the current tenant or policy.\r\n * @param urlString\r\n */\r\n Authority.prototype.replacePath = function (urlString) {\r\n var endpoint = urlString;\r\n var cachedAuthorityUrl = new UrlString(this.metadata.canonical_authority);\r\n var cachedAuthorityParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\r\n var currentAuthorityParts = this.canonicalAuthorityUrlComponents.PathSegments;\r\n currentAuthorityParts.forEach(function (currentPart, index) {\r\n var cachedPart = cachedAuthorityParts[index];\r\n if (currentPart !== cachedPart) {\r\n endpoint = endpoint.replace(\"/\" + cachedPart + \"/\", \"/\" + currentPart + \"/\");\r\n }\r\n });\r\n return endpoint;\r\n };\r\n Object.defineProperty(Authority.prototype, \"defaultOpenIdConfigurationEndpoint\", {\r\n /**\r\n * The default open id configuration endpoint for any canonical authority.\r\n */\r\n get: function () {\r\n if (this.authorityType === AuthorityType.Adfs ||\r\n this.authorityType === AuthorityType.Dsts ||\r\n this.protocolMode === ProtocolMode.OIDC) {\r\n return this.canonicalAuthority + \".well-known/openid-configuration\";\r\n }\r\n return this.canonicalAuthority + \"v2.0/.well-known/openid-configuration\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Boolean that returns whethr or not tenant discovery has been completed.\r\n */\r\n Authority.prototype.discoveryComplete = function () {\r\n return !!this.metadata;\r\n };\r\n /**\r\n * Perform endpoint discovery to discover aliases, preferred_cache, preferred_network\r\n * and the /authorize, /token and logout endpoints.\r\n */\r\n Authority.prototype.resolveEndpointsAsync = function () {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadataEntity, cloudDiscoverySource, endpointSource, cacheKey;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityResolveEndpointsAsync, this.correlationId);\r\n metadataEntity = this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);\r\n if (!metadataEntity) {\r\n metadataEntity = new AuthorityMetadataEntity();\r\n metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\r\n }\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthorityUpdateCloudDiscoveryMetadata, this.correlationId);\r\n return [4 /*yield*/, this.updateCloudDiscoveryMetadata(metadataEntity)];\r\n case 1:\r\n cloudDiscoverySource = _d.sent();\r\n this.canonicalAuthority = this.canonicalAuthority.replace(this.hostnameAndPort, metadataEntity.preferred_network);\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.AuthorityUpdateEndpointMetadata, this.correlationId);\r\n return [4 /*yield*/, this.updateEndpointMetadata(metadataEntity)];\r\n case 2:\r\n endpointSource = _d.sent();\r\n if (cloudDiscoverySource !== AuthorityMetadataSource.CACHE && endpointSource !== AuthorityMetadataSource.CACHE) {\r\n // Reset the expiration time unless both values came from a successful cache lookup\r\n metadataEntity.resetExpiresAt();\r\n metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\r\n }\r\n cacheKey = this.cacheManager.generateAuthorityMetadataCacheKey(metadataEntity.preferred_cache);\r\n this.cacheManager.setAuthorityMetadata(cacheKey, metadataEntity);\r\n this.metadata = metadataEntity;\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Update AuthorityMetadataEntity with new endpoints and return where the information came from\r\n * @param metadataEntity\r\n */\r\n Authority.prototype.updateEndpointMetadata = function (metadataEntity) {\r\n var _a, _b, _c, _d, _e, _f;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadata, harcodedMetadata;\r\n return __generator(this, function (_g) {\r\n switch (_g.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityUpdateEndpointMetadata, this.correlationId);\r\n metadata = this.getEndpointMetadataFromConfig();\r\n if (metadata) {\r\n metadataEntity.updateEndpointMetadata(metadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.CONFIG];\r\n }\r\n if (this.isAuthoritySameType(metadataEntity) && metadataEntity.endpointsFromNetwork && !metadataEntity.isExpired()) {\r\n // No need to update\r\n return [2 /*return*/, AuthorityMetadataSource.CACHE];\r\n }\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthorityGetEndpointMetadataFromNetwork, this.correlationId);\r\n return [4 /*yield*/, this.getEndpointMetadataFromNetwork()];\r\n case 1:\r\n metadata = _g.sent();\r\n if (!metadata) return [3 /*break*/, 4];\r\n if (!((_c = this.authorityOptions.azureRegionConfiguration) === null || _c === void 0 ? void 0 : _c.azureRegion)) return [3 /*break*/, 3];\r\n (_d = this.performanceClient) === null || _d === void 0 ? void 0 : _d.setPreQueueTime(PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation, this.correlationId);\r\n return [4 /*yield*/, this.updateMetadataWithRegionalInformation(metadata)];\r\n case 2:\r\n metadata = _g.sent();\r\n _g.label = 3;\r\n case 3:\r\n metadataEntity.updateEndpointMetadata(metadata, true);\r\n return [2 /*return*/, AuthorityMetadataSource.NETWORK];\r\n case 4:\r\n harcodedMetadata = this.getEndpointMetadataFromHardcodedValues();\r\n if (!(harcodedMetadata && !this.authorityOptions.skipAuthorityMetadataCache)) return [3 /*break*/, 7];\r\n if (!((_e = this.authorityOptions.azureRegionConfiguration) === null || _e === void 0 ? void 0 : _e.azureRegion)) return [3 /*break*/, 6];\r\n (_f = this.performanceClient) === null || _f === void 0 ? void 0 : _f.setPreQueueTime(PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation, this.correlationId);\r\n return [4 /*yield*/, this.updateMetadataWithRegionalInformation(harcodedMetadata)];\r\n case 5:\r\n harcodedMetadata = _g.sent();\r\n _g.label = 6;\r\n case 6:\r\n metadataEntity.updateEndpointMetadata(harcodedMetadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.HARDCODED_VALUES];\r\n case 7: throw ClientAuthError.createUnableToGetOpenidConfigError(this.defaultOpenIdConfigurationEndpoint);\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Compares the number of url components after the domain to determine if the cached\r\n * authority metadata can be used for the requested authority. Protects against same domain different\r\n * authority such as login.microsoftonline.com/tenant and login.microsoftonline.com/tfp/tenant/policy\r\n * @param metadataEntity\r\n */\r\n Authority.prototype.isAuthoritySameType = function (metadataEntity) {\r\n var cachedAuthorityUrl = new UrlString(metadataEntity.canonical_authority);\r\n var cachedParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\r\n return cachedParts.length === this.canonicalAuthorityUrlComponents.PathSegments.length;\r\n };\r\n /**\r\n * Parse authorityMetadata config option\r\n */\r\n Authority.prototype.getEndpointMetadataFromConfig = function () {\r\n if (this.authorityOptions.authorityMetadata) {\r\n try {\r\n return JSON.parse(this.authorityOptions.authorityMetadata);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidAuthorityMetadataError();\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Gets OAuth endpoints from the given OpenID configuration endpoint.\r\n *\r\n * @param hasHardcodedMetadata boolean\r\n */\r\n Authority.prototype.getEndpointMetadataFromNetwork = function () {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var options, response;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityGetEndpointMetadataFromNetwork, this.correlationId);\r\n options = {};\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkInterface.\r\n sendGetRequestAsync(this.defaultOpenIdConfigurationEndpoint, options)];\r\n case 2:\r\n response = _b.sent();\r\n return [2 /*return*/, isOpenIdConfigResponse(response.body) ? response.body : null];\r\n case 3:\r\n _b.sent();\r\n return [2 /*return*/, null];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get OAuth endpoints for common authorities.\r\n */\r\n Authority.prototype.getEndpointMetadataFromHardcodedValues = function () {\r\n if (this.canonicalAuthority in EndpointMetadata) {\r\n return EndpointMetadata[this.canonicalAuthority];\r\n }\r\n return null;\r\n };\r\n /**\r\n * Update the retrieved metadata with regional information.\r\n */\r\n Authority.prototype.updateMetadataWithRegionalInformation = function (metadata) {\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var autodetectedRegionName, azureRegion;\r\n return __generator(this, function (_h) {\r\n switch (_h.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation, this.correlationId);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.RegionDiscoveryDetectRegion, this.correlationId);\r\n return [4 /*yield*/, this.regionDiscovery.detectRegion((_c = this.authorityOptions.azureRegionConfiguration) === null || _c === void 0 ? void 0 : _c.environmentRegion, this.regionDiscoveryMetadata)];\r\n case 1:\r\n autodetectedRegionName = _h.sent();\r\n azureRegion = ((_d = this.authorityOptions.azureRegionConfiguration) === null || _d === void 0 ? void 0 : _d.azureRegion) === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG\r\n ? autodetectedRegionName\r\n : (_e = this.authorityOptions.azureRegionConfiguration) === null || _e === void 0 ? void 0 : _e.azureRegion;\r\n if (((_f = this.authorityOptions.azureRegionConfiguration) === null || _f === void 0 ? void 0 : _f.azureRegion) === Constants.AZURE_REGION_AUTO_DISCOVER_FLAG) {\r\n this.regionDiscoveryMetadata.region_outcome = autodetectedRegionName ?\r\n RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_SUCCESSFUL :\r\n RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_FAILED;\r\n }\r\n else {\r\n if (autodetectedRegionName) {\r\n this.regionDiscoveryMetadata.region_outcome = (((_g = this.authorityOptions.azureRegionConfiguration) === null || _g === void 0 ? void 0 : _g.azureRegion) === autodetectedRegionName) ?\r\n RegionDiscoveryOutcomes.CONFIGURED_MATCHES_DETECTED :\r\n RegionDiscoveryOutcomes.CONFIGURED_NOT_DETECTED;\r\n }\r\n else {\r\n this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.CONFIGURED_NO_AUTO_DETECTION;\r\n }\r\n }\r\n if (azureRegion) {\r\n this.regionDiscoveryMetadata.region_used = azureRegion;\r\n return [2 /*return*/, Authority.replaceWithRegionalInformation(metadata, azureRegion)];\r\n }\r\n return [2 /*return*/, metadata];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates the AuthorityMetadataEntity with new aliases, preferred_network and preferred_cache\r\n * and returns where the information was retrieved from\r\n * @param metadataEntity\r\n * @returns AuthorityMetadataSource\r\n */\r\n Authority.prototype.updateCloudDiscoveryMetadata = function (metadataEntity) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadata, metadataEntityExpired, harcodedMetadata;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityUpdateCloudDiscoveryMetadata, this.correlationId);\r\n // attempt to read metadata from the config\r\n this.logger.verbose(\"Attempting to get cloud discovery metadata in the config\");\r\n this.logger.verbosePii(\"Known Authorities: \" + (this.authorityOptions.knownAuthorities || Constants.NOT_APPLICABLE));\r\n this.logger.verbosePii(\"Authority Metadata: \" + (this.authorityOptions.authorityMetadata || Constants.NOT_APPLICABLE));\r\n this.logger.verbosePii(\"Canonical Authority: \" + (metadataEntity.canonical_authority || Constants.NOT_APPLICABLE));\r\n metadata = this.getCloudDiscoveryMetadataFromConfig();\r\n if (metadata) {\r\n this.logger.verbose(\"Found cloud discovery metadata in the config.\");\r\n metadataEntity.updateCloudDiscoveryMetadata(metadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.CONFIG];\r\n }\r\n // If the cached metadata came from config but that config was not passed to this instance, we must go to the network\r\n this.logger.verbose(\"Did not find cloud discovery metadata in the config... Attempting to get cloud discovery metadata from the cache.\");\r\n metadataEntityExpired = metadataEntity.isExpired();\r\n if (this.isAuthoritySameType(metadataEntity) && metadataEntity.aliasesFromNetwork && !metadataEntityExpired) {\r\n this.logger.verbose(\"Found metadata in the cache.\");\r\n // No need to update\r\n return [2 /*return*/, AuthorityMetadataSource.CACHE];\r\n }\r\n else if (metadataEntityExpired) {\r\n this.logger.verbose(\"The metadata entity is expired.\");\r\n }\r\n this.logger.verbose(\"Did not find cloud discovery metadata in the cache... Attempting to get cloud discovery metadata from the network.\");\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthorityGetCloudDiscoveryMetadataFromNetwork, this.correlationId);\r\n return [4 /*yield*/, this.getCloudDiscoveryMetadataFromNetwork()];\r\n case 1:\r\n metadata = _c.sent();\r\n if (metadata) {\r\n this.logger.verbose(\"cloud discovery metadata was successfully returned from getCloudDiscoveryMetadataFromNetwork()\");\r\n metadataEntity.updateCloudDiscoveryMetadata(metadata, true);\r\n return [2 /*return*/, AuthorityMetadataSource.NETWORK];\r\n }\r\n this.logger.verbose(\"Did not find cloud discovery metadata from the network... Attempting to get cloud discovery metadata from hardcoded values.\");\r\n harcodedMetadata = this.getCloudDiscoveryMetadataFromHarcodedValues();\r\n if (harcodedMetadata && !this.options.skipAuthorityMetadataCache) {\r\n this.logger.verbose(\"Found cloud discovery metadata from hardcoded values.\");\r\n metadataEntity.updateCloudDiscoveryMetadata(harcodedMetadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.HARDCODED_VALUES];\r\n }\r\n // Metadata could not be obtained from the config, cache, network or hardcoded values\r\n this.logger.error(\"Did not find cloud discovery metadata from hardcoded values... Metadata could not be obtained from config, cache, network or hardcoded values. Throwing Untrusted Authority Error.\");\r\n throw ClientConfigurationError.createUntrustedAuthorityError();\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Parse cloudDiscoveryMetadata config or check knownAuthorities\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromConfig = function () {\r\n // CIAM does not support cloud discovery metadata\r\n if (this.authorityType === AuthorityType.Ciam) {\r\n this.logger.verbose(\"CIAM authorities do not support cloud discovery metadata, generate the aliases from authority host.\");\r\n return Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n // Check if network response was provided in config\r\n if (this.authorityOptions.cloudDiscoveryMetadata) {\r\n this.logger.verbose(\"The cloud discovery metadata has been provided as a network response, in the config.\");\r\n try {\r\n this.logger.verbose(\"Attempting to parse the cloud discovery metadata.\");\r\n var parsedResponse = JSON.parse(this.authorityOptions.cloudDiscoveryMetadata);\r\n var metadata = Authority.getCloudDiscoveryMetadataFromNetworkResponse(parsedResponse.metadata, this.hostnameAndPort);\r\n this.logger.verbose(\"Parsed the cloud discovery metadata.\");\r\n if (metadata) {\r\n this.logger.verbose(\"There is returnable metadata attached to the parsed cloud discovery metadata.\");\r\n return metadata;\r\n }\r\n else {\r\n this.logger.verbose(\"There is no metadata attached to the parsed cloud discovery metadata.\");\r\n }\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Unable to parse the cloud discovery metadata. Throwing Invalid Cloud Discovery Metadata Error.\");\r\n throw ClientConfigurationError.createInvalidCloudDiscoveryMetadataError();\r\n }\r\n }\r\n // If cloudDiscoveryMetadata is empty or does not contain the host, check knownAuthorities\r\n if (this.isInKnownAuthorities()) {\r\n this.logger.verbose(\"The host is included in knownAuthorities. Creating new cloud discovery metadata from the host.\");\r\n return Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n return null;\r\n };\r\n /**\r\n * Called to get metadata from network if CloudDiscoveryMetadata was not populated by config\r\n *\r\n * @param hasHardcodedMetadata boolean\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromNetwork = function () {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var instanceDiscoveryEndpoint, options, match, response, typedResponseBody, metadata, error_1, typedError;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityGetCloudDiscoveryMetadataFromNetwork, this.correlationId);\r\n instanceDiscoveryEndpoint = \"\" + Constants.AAD_INSTANCE_DISCOVERY_ENDPT + this.canonicalAuthority + \"oauth2/v2.0/authorize\";\r\n options = {};\r\n match = null;\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(instanceDiscoveryEndpoint, options)];\r\n case 2:\r\n response = _b.sent();\r\n typedResponseBody = void 0;\r\n metadata = void 0;\r\n if (isCloudInstanceDiscoveryResponse(response.body)) {\r\n typedResponseBody = response.body;\r\n metadata = typedResponseBody.metadata;\r\n this.logger.verbosePii(\"tenant_discovery_endpoint is: \" + typedResponseBody.tenant_discovery_endpoint);\r\n }\r\n else if (isCloudInstanceDiscoveryErrorResponse(response.body)) {\r\n this.logger.warning(\"A CloudInstanceDiscoveryErrorResponse was returned. The cloud instance discovery network request's status code is: \" + response.status);\r\n typedResponseBody = response.body;\r\n if (typedResponseBody.error === Constants.INVALID_INSTANCE) {\r\n this.logger.error(\"The CloudInstanceDiscoveryErrorResponse error is invalid_instance.\");\r\n return [2 /*return*/, null];\r\n }\r\n this.logger.warning(\"The CloudInstanceDiscoveryErrorResponse error is \" + typedResponseBody.error);\r\n this.logger.warning(\"The CloudInstanceDiscoveryErrorResponse error description is \" + typedResponseBody.error_description);\r\n this.logger.warning(\"Setting the value of the CloudInstanceDiscoveryMetadata (returned from the network) to []\");\r\n metadata = [];\r\n }\r\n else {\r\n this.logger.error(\"AAD did not return a CloudInstanceDiscoveryResponse or CloudInstanceDiscoveryErrorResponse\");\r\n return [2 /*return*/, null];\r\n }\r\n this.logger.verbose(\"Attempting to find a match between the developer's authority and the CloudInstanceDiscoveryMetadata returned from the network request.\");\r\n match = Authority.getCloudDiscoveryMetadataFromNetworkResponse(metadata, this.hostnameAndPort);\r\n return [3 /*break*/, 4];\r\n case 3:\r\n error_1 = _b.sent();\r\n if (error_1 instanceof AuthError) {\r\n this.logger.error(\"There was a network error while attempting to get the cloud discovery instance metadata.\\nError: \" + error_1.errorCode + \"\\nError Description: \" + error_1.errorMessage);\r\n }\r\n else {\r\n typedError = error_1;\r\n this.logger.error(\"A non-MSALJS error was thrown while attempting to get the cloud instance discovery metadata.\\nError: \" + typedError.name + \"\\nError Description: \" + typedError.message);\r\n }\r\n return [2 /*return*/, null];\r\n case 4:\r\n // Custom Domain scenario, host is trusted because Instance Discovery call succeeded\r\n if (!match) {\r\n this.logger.warning(\"The developer's authority was not found within the CloudInstanceDiscoveryMetadata returned from the network request.\");\r\n this.logger.verbose(\"Creating custom Authority for custom domain scenario.\");\r\n match = Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n return [2 /*return*/, match];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get cloud discovery metadata for common authorities\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromHarcodedValues = function () {\r\n if (this.canonicalAuthority in InstanceDiscoveryMetadata) {\r\n return InstanceDiscoveryMetadata[this.canonicalAuthority];\r\n }\r\n return null;\r\n };\r\n /**\r\n * Helper function to determine if this host is included in the knownAuthorities config option\r\n */\r\n Authority.prototype.isInKnownAuthorities = function () {\r\n var _this = this;\r\n var matches = this.authorityOptions.knownAuthorities.filter(function (authority) {\r\n return UrlString.getDomainFromUrl(authority).toLowerCase() === _this.hostnameAndPort;\r\n });\r\n return matches.length > 0;\r\n };\r\n /**\r\n * helper function to populate the authority based on azureCloudOptions\r\n * @param authorityString\r\n * @param azureCloudOptions\r\n */\r\n Authority.generateAuthority = function (authorityString, azureCloudOptions) {\r\n var authorityAzureCloudInstance;\r\n if (azureCloudOptions && azureCloudOptions.azureCloudInstance !== AzureCloudInstance.None) {\r\n var tenant = azureCloudOptions.tenant ? azureCloudOptions.tenant : Constants.DEFAULT_COMMON_TENANT;\r\n authorityAzureCloudInstance = azureCloudOptions.azureCloudInstance + \"/\" + tenant + \"/\";\r\n }\r\n return authorityAzureCloudInstance ? authorityAzureCloudInstance : authorityString;\r\n };\r\n /**\r\n * Creates cloud discovery metadata object from a given host\r\n * @param host\r\n */\r\n Authority.createCloudDiscoveryMetadataFromHost = function (host) {\r\n return {\r\n preferred_network: host,\r\n preferred_cache: host,\r\n aliases: [host]\r\n };\r\n };\r\n /**\r\n * Searches instance discovery network response for the entry that contains the host in the aliases list\r\n * @param response\r\n * @param authority\r\n */\r\n Authority.getCloudDiscoveryMetadataFromNetworkResponse = function (response, authority) {\r\n for (var i = 0; i < response.length; i++) {\r\n var metadata = response[i];\r\n if (metadata.aliases.indexOf(authority) > -1) {\r\n return metadata;\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * helper function to generate environment from authority object\r\n */\r\n Authority.prototype.getPreferredCache = function () {\r\n if (this.discoveryComplete()) {\r\n return this.metadata.preferred_cache;\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n };\r\n /**\r\n * Returns whether or not the provided host is an alias of this authority instance\r\n * @param host\r\n */\r\n Authority.prototype.isAlias = function (host) {\r\n return this.metadata.aliases.indexOf(host) > -1;\r\n };\r\n /**\r\n * Checks whether the provided host is that of a public cloud authority\r\n *\r\n * @param authority string\r\n * @returns bool\r\n */\r\n Authority.isPublicCloudAuthority = function (host) {\r\n return Constants.KNOWN_PUBLIC_CLOUDS.indexOf(host) >= 0;\r\n };\r\n /**\r\n * Rebuild the authority string with the region\r\n *\r\n * @param host string\r\n * @param region string\r\n */\r\n Authority.buildRegionalAuthorityString = function (host, region, queryString) {\r\n // Create and validate a Url string object with the initial authority string\r\n var authorityUrlInstance = new UrlString(host);\r\n authorityUrlInstance.validateAsUri();\r\n var authorityUrlParts = authorityUrlInstance.getUrlComponents();\r\n var hostNameAndPort = region + \".\" + authorityUrlParts.HostNameAndPort;\r\n if (this.isPublicCloudAuthority(authorityUrlParts.HostNameAndPort)) {\r\n hostNameAndPort = region + \".\" + Constants.REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX;\r\n }\r\n // Include the query string portion of the url\r\n var url = UrlString.constructAuthorityUriFromObject(__assign(__assign({}, authorityUrlInstance.getUrlComponents()), { HostNameAndPort: hostNameAndPort })).urlString;\r\n // Add the query string if a query string was provided\r\n if (queryString)\r\n return url + \"?\" + queryString;\r\n return url;\r\n };\r\n /**\r\n * Replace the endpoints in the metadata object with their regional equivalents.\r\n *\r\n * @param metadata OpenIdConfigResponse\r\n * @param azureRegion string\r\n */\r\n Authority.replaceWithRegionalInformation = function (metadata, azureRegion) {\r\n metadata.authorization_endpoint = Authority.buildRegionalAuthorityString(metadata.authorization_endpoint, azureRegion);\r\n // TODO: Enquire on whether we should leave the query string or remove it before releasing the feature\r\n metadata.token_endpoint = Authority.buildRegionalAuthorityString(metadata.token_endpoint, azureRegion, Constants.REGIONAL_AUTH_NON_MSI_QUERY_STRING);\r\n if (metadata.end_session_endpoint) {\r\n metadata.end_session_endpoint = Authority.buildRegionalAuthorityString(metadata.end_session_endpoint, azureRegion);\r\n }\r\n return metadata;\r\n };\r\n /**\r\n * Transform CIAM_AUTHORIY as per the below rules:\r\n * If no path segments found and it is a CIAM authority (hostname ends with .ciamlogin.com), then transform it\r\n *\r\n * NOTE: The transformation path should go away once STS supports CIAM with the format: `tenantIdorDomain.ciamlogin.com`\r\n * `ciamlogin.com` can also change in the future and we should accommodate the same\r\n *\r\n * @param authority\r\n */\r\n Authority.transformCIAMAuthority = function (authority) {\r\n var ciamAuthority = authority.endsWith(Constants.FORWARD_SLASH) ? authority : \"\" + authority + Constants.FORWARD_SLASH;\r\n var authorityUrl = new UrlString(authority);\r\n var authorityUrlComponents = authorityUrl.getUrlComponents();\r\n // check if transformation is needed\r\n if (authorityUrlComponents.PathSegments.length === 0 && (authorityUrlComponents.HostNameAndPort.endsWith(Constants.CIAM_AUTH_URL))) {\r\n var tenantIdOrDomain = authorityUrlComponents.HostNameAndPort.split(\".\")[0];\r\n ciamAuthority = \"\" + ciamAuthority + tenantIdOrDomain + Constants.AAD_TENANT_DOMAIN_SUFFIX;\r\n }\r\n return ciamAuthority;\r\n };\r\n return Authority;\r\n}());\n\nexport { Authority };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { Authority } from './Authority.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AuthorityFactory = /** @class */ (function () {\r\n function AuthorityFactory() {\r\n }\r\n /**\r\n * Create an authority object of the correct type based on the url\r\n * Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)\r\n *\r\n * Also performs endpoint discovery.\r\n *\r\n * @param authorityUri\r\n * @param networkClient\r\n * @param protocolMode\r\n */\r\n AuthorityFactory.createDiscoveredInstance = function (authorityUri, networkClient, cacheManager, authorityOptions, logger, performanceClient, correlationId) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authorityUriFinal, acquireTokenAuthority, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n performanceClient === null || performanceClient === void 0 ? void 0 : performanceClient.addQueueMeasurement(PerformanceEvents.AuthorityFactoryCreateDiscoveredInstance, correlationId);\r\n authorityUriFinal = Authority.transformCIAMAuthority(authorityUri);\r\n acquireTokenAuthority = AuthorityFactory.createInstance(authorityUriFinal, networkClient, cacheManager, authorityOptions, logger, performanceClient, correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n performanceClient === null || performanceClient === void 0 ? void 0 : performanceClient.setPreQueueTime(PerformanceEvents.AuthorityResolveEndpointsAsync, correlationId);\r\n return [4 /*yield*/, acquireTokenAuthority.resolveEndpointsAsync()];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, acquireTokenAuthority];\r\n case 3:\r\n e_1 = _a.sent();\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(e_1);\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Create an authority object of the correct type based on the url\r\n * Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)\r\n *\r\n * Does not perform endpoint discovery.\r\n *\r\n * @param authorityUrl\r\n * @param networkInterface\r\n * @param protocolMode\r\n */\r\n AuthorityFactory.createInstance = function (authorityUrl, networkInterface, cacheManager, authorityOptions, logger, performanceClient, correlationId) {\r\n // Throw error if authority url is empty\r\n if (StringUtils.isEmpty(authorityUrl)) {\r\n throw ClientConfigurationError.createUrlEmptyError();\r\n }\r\n return new Authority(authorityUrl, networkInterface, cacheManager, authorityOptions, logger, performanceClient, correlationId);\r\n };\r\n return AuthorityFactory;\r\n}());\n\nexport { AuthorityFactory };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar rawMetdataJSON = { \"endpointMetadata\": { \"https://login.microsoftonline.com/common/\": { \"token_endpoint\": \"https://login.microsoftonline.com/common/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.com/common/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.com/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.com/common/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.com/common/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.com/common/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.com/common/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.com\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pas.windows.net\" }, \"https://login.chinacloudapi.cn/common/\": { \"token_endpoint\": \"https://login.chinacloudapi.cn/common/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.chinacloudapi.cn/common/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.partner.microsoftonline.cn/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo\", \"authorization_endpoint\": \"https://login.chinacloudapi.cn/common/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.chinacloudapi.cn/common/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.chinacloudapi.cn/common/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.chinacloudapi.cn/common/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"partner.microsoftonline.cn\", \"cloud_graph_host_name\": \"graph.chinacloudapi.cn\", \"msgraph_host\": \"microsoftgraph.chinacloudapi.cn\", \"rbac_url\": \"https://pas.chinacloudapi.cn\" }, \"https://login.microsoftonline.us/common/\": { \"token_endpoint\": \"https://login.microsoftonline.us/common/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.us/common/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.us/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.us/common/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.us/common/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.us/common/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.us/common/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.us\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pasff.usgovcloudapi.net\" }, \"https://login.microsoftonline.com/consumers/\": { \"token_endpoint\": \"https://login.microsoftonline.com/consumers/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.com/consumers/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.com/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.com/consumers/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.com/consumers/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.com/consumers/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.com\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pas.windows.net\" }, \"https://login.chinacloudapi.cn/consumers/\": { \"token_endpoint\": \"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.chinacloudapi.cn/consumers/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.partner.microsoftonline.cn/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo\", \"authorization_endpoint\": \"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.chinacloudapi.cn/consumers/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"partner.microsoftonline.cn\", \"cloud_graph_host_name\": \"graph.chinacloudapi.cn\", \"msgraph_host\": \"microsoftgraph.chinacloudapi.cn\", \"rbac_url\": \"https://pas.chinacloudapi.cn\" }, \"https://login.microsoftonline.us/consumers/\": { \"token_endpoint\": \"https://login.microsoftonline.us/consumers/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.us/consumers/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.us/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.us/consumers/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.us/consumers/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.us/consumers/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.us/consumers/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.us\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pasff.usgovcloudapi.net\" }, \"https://login.microsoftonline.com/organizations/\": { \"token_endpoint\": \"https://login.microsoftonline.com/organizations/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.com/organizations/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.com/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.com/organizations/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.com/organizations/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.com/organizations/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.com\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pas.windows.net\" }, \"https://login.chinacloudapi.cn/organizations/\": { \"token_endpoint\": \"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.chinacloudapi.cn/organizations/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.partner.microsoftonline.cn/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo\", \"authorization_endpoint\": \"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.chinacloudapi.cn/organizations/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"partner.microsoftonline.cn\", \"cloud_graph_host_name\": \"graph.chinacloudapi.cn\", \"msgraph_host\": \"microsoftgraph.chinacloudapi.cn\", \"rbac_url\": \"https://pas.chinacloudapi.cn\" }, \"https://login.microsoftonline.us/organizations/\": { \"token_endpoint\": \"https://login.microsoftonline.us/organizations/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.us/organizations/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.us/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.us/organizations/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.us/organizations/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.us/organizations/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.us/organizations/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.us\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pasff.usgovcloudapi.net\" } }, \"instanceDiscoveryMetadata\": { \"https://login.microsoftonline.com/common/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.chinacloudapi.cn/common/\": { \"tenant_discovery_endpoint\": \"https://login.chinacloudapi.cn/common/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.us/common/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.us/common/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.com/consumers/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.com/consumers/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.chinacloudapi.cn/consumers/\": { \"tenant_discovery_endpoint\": \"https://login.chinacloudapi.cn/consumers/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.us/consumers/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.us/consumers/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.com/organizations/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.com/organizations/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.chinacloudapi.cn/organizations/\": { \"tenant_discovery_endpoint\": \"https://login.chinacloudapi.cn/organizations/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.us/organizations/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.us/organizations/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] } } };\r\nvar EndpointMetadata = rawMetdataJSON.endpointMetadata;\r\nvar InstanceDiscoveryMetadata = rawMetdataJSON.instanceDiscoveryMetadata;\n\nexport { EndpointMetadata, InstanceDiscoveryMetadata, rawMetdataJSON };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AzureCloudInstance;\r\n(function (AzureCloudInstance) {\r\n // AzureCloudInstance is not specified.\r\n AzureCloudInstance[AzureCloudInstance[\"None\"] = 0] = \"None\";\r\n // Microsoft Azure public cloud\r\n AzureCloudInstance[\"AzurePublic\"] = \"https://login.microsoftonline.com\";\r\n // Microsoft PPE\r\n AzureCloudInstance[\"AzurePpe\"] = \"https://login.windows-ppe.net\";\r\n // Microsoft Chinese national cloud\r\n AzureCloudInstance[\"AzureChina\"] = \"https://login.chinacloudapi.cn\";\r\n // Microsoft German national cloud (\"Black Forest\")\r\n AzureCloudInstance[\"AzureGermany\"] = \"https://login.microsoftonline.de\";\r\n // US Government cloud\r\n AzureCloudInstance[\"AzureUsGovernment\"] = \"https://login.microsoftonline.us\";\r\n})(AzureCloudInstance || (AzureCloudInstance = {}));\n\nexport { AzureCloudInstance };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Authority types supported by MSAL.\r\n */\r\nvar AuthorityType;\r\n(function (AuthorityType) {\r\n AuthorityType[AuthorityType[\"Default\"] = 0] = \"Default\";\r\n AuthorityType[AuthorityType[\"Adfs\"] = 1] = \"Adfs\";\r\n AuthorityType[AuthorityType[\"Dsts\"] = 2] = \"Dsts\";\r\n AuthorityType[AuthorityType[\"Ciam\"] = 3] = \"Ciam\";\r\n})(AuthorityType || (AuthorityType = {}));\n\nexport { AuthorityType };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isCloudInstanceDiscoveryErrorResponse(response) {\r\n return (response.hasOwnProperty(\"error\") &&\r\n response.hasOwnProperty(\"error_description\"));\r\n}\n\nexport { isCloudInstanceDiscoveryErrorResponse };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isCloudInstanceDiscoveryResponse(response) {\r\n return (response.hasOwnProperty(\"tenant_discovery_endpoint\") &&\r\n response.hasOwnProperty(\"metadata\"));\r\n}\n\nexport { isCloudInstanceDiscoveryResponse };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isOpenIdConfigResponse(response) {\r\n return (response.hasOwnProperty(\"authorization_endpoint\") &&\r\n response.hasOwnProperty(\"token_endpoint\") &&\r\n response.hasOwnProperty(\"issuer\") &&\r\n response.hasOwnProperty(\"jwks_uri\"));\r\n}\n\nexport { isOpenIdConfigResponse };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Protocol modes supported by MSAL.\r\n */\r\nvar ProtocolMode;\r\n(function (ProtocolMode) {\r\n ProtocolMode[\"AAD\"] = \"AAD\";\r\n ProtocolMode[\"OIDC\"] = \"OIDC\";\r\n})(ProtocolMode || (ProtocolMode = {}));\n\nexport { ProtocolMode };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { RegionDiscoverySources, ResponseCodes, Constants } from '../utils/Constants.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RegionDiscovery = /** @class */ (function () {\r\n function RegionDiscovery(networkInterface, performanceClient, correlationId) {\r\n this.networkInterface = networkInterface;\r\n this.performanceClient = performanceClient;\r\n this.correlationId = correlationId;\r\n }\r\n /**\r\n * Detect the region from the application's environment.\r\n *\r\n * @returns Promise\r\n */\r\n RegionDiscovery.prototype.detectRegion = function (environmentRegion, regionDiscoveryMetadata) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var autodetectedRegionName, options, localIMDSVersionResponse, currentIMDSVersion, currentIMDSVersionResponse;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RegionDiscoveryDetectRegion, this.correlationId);\r\n autodetectedRegionName = environmentRegion;\r\n if (!!autodetectedRegionName) return [3 /*break*/, 8];\r\n options = RegionDiscovery.IMDS_OPTIONS;\r\n _e.label = 1;\r\n case 1:\r\n _e.trys.push([1, 6, , 7]);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.RegionDiscoveryGetRegionFromIMDS, this.correlationId);\r\n return [4 /*yield*/, this.getRegionFromIMDS(Constants.IMDS_VERSION, options)];\r\n case 2:\r\n localIMDSVersionResponse = _e.sent();\r\n if (localIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\r\n autodetectedRegionName = localIMDSVersionResponse.body;\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\r\n }\r\n if (!(localIMDSVersionResponse.status === ResponseCodes.httpBadRequest)) return [3 /*break*/, 5];\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RegionDiscoveryGetCurrentVersion, this.correlationId);\r\n return [4 /*yield*/, this.getCurrentVersion(options)];\r\n case 3:\r\n currentIMDSVersion = _e.sent();\r\n if (!currentIMDSVersion) {\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n return [2 /*return*/, null];\r\n }\r\n (_d = this.performanceClient) === null || _d === void 0 ? void 0 : _d.setPreQueueTime(PerformanceEvents.RegionDiscoveryGetRegionFromIMDS, this.correlationId);\r\n return [4 /*yield*/, this.getRegionFromIMDS(currentIMDSVersion, options)];\r\n case 4:\r\n currentIMDSVersionResponse = _e.sent();\r\n if (currentIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\r\n autodetectedRegionName = currentIMDSVersionResponse.body;\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\r\n }\r\n _e.label = 5;\r\n case 5: return [3 /*break*/, 7];\r\n case 6:\r\n _e.sent();\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n return [2 /*return*/, null];\r\n case 7: return [3 /*break*/, 9];\r\n case 8:\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.ENVIRONMENT_VARIABLE;\r\n _e.label = 9;\r\n case 9:\r\n // If no region was auto detected from the environment or from the IMDS endpoint, mark the attempt as a FAILED_AUTO_DETECTION\r\n if (!autodetectedRegionName) {\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n }\r\n return [2 /*return*/, autodetectedRegionName || null];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Make the call to the IMDS endpoint\r\n *\r\n * @param imdsEndpointUrl\r\n * @returns Promise>\r\n */\r\n RegionDiscovery.prototype.getRegionFromIMDS = function (version, options) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_b) {\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RegionDiscoveryGetRegionFromIMDS, this.correlationId);\r\n return [2 /*return*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + \"?api-version=\" + version + \"&format=text\", options, Constants.IMDS_TIMEOUT)];\r\n });\r\n });\r\n };\r\n /**\r\n * Get the most recent version of the IMDS endpoint available\r\n *\r\n * @returns Promise\r\n */\r\n RegionDiscovery.prototype.getCurrentVersion = function (options) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RegionDiscoveryGetCurrentVersion, this.correlationId);\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + \"?format=json\", options)];\r\n case 2:\r\n response = _b.sent();\r\n // When IMDS endpoint is called without the api version query param, bad request response comes back with latest version.\r\n if (response.status === ResponseCodes.httpBadRequest && response.body && response.body[\"newest-versions\"] && response.body[\"newest-versions\"].length > 0) {\r\n return [2 /*return*/, response.body[\"newest-versions\"][0]];\r\n }\r\n return [2 /*return*/, null];\r\n case 3:\r\n _b.sent();\r\n return [2 /*return*/, null];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // Options for the IMDS endpoint request\r\n RegionDiscovery.IMDS_OPTIONS = {\r\n headers: {\r\n Metadata: \"true\",\r\n },\r\n };\r\n return RegionDiscovery;\r\n}());\n\nexport { RegionDiscovery };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator, __assign, __extends } from '../_virtual/_tslib.js';\nimport { Separators, CredentialType, AuthenticationScheme, THE_FAMILY_ID, APP_METADATA, AUTHORITY_METADATA_CONSTANTS } from '../utils/Constants.js';\nimport { ScopeSet } from '../request/ScopeSet.js';\nimport { AccountEntity } from './entities/AccountEntity.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { name, version } from '../packageMetadata.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Interface class which implement cache storage functions used by MSAL to perform validity checks, and store tokens.\r\n */\r\nvar CacheManager = /** @class */ (function () {\r\n function CacheManager(clientId, cryptoImpl, logger) {\r\n this.clientId = clientId;\r\n this.cryptoImpl = cryptoImpl;\r\n this.commonLogger = logger.clone(name, version);\r\n }\r\n /**\r\n * Returns all accounts in cache\r\n */\r\n CacheManager.prototype.getAllAccounts = function () {\r\n var _this = this;\r\n var allAccountKeys = this.getAccountKeys();\r\n if (allAccountKeys.length < 1) {\r\n return [];\r\n }\r\n var accountEntities = allAccountKeys.reduce(function (accounts, key) {\r\n var entity = _this.getAccount(key);\r\n if (!entity) {\r\n return accounts;\r\n }\r\n accounts.push(entity);\r\n return accounts;\r\n }, []);\r\n if (accountEntities.length < 1) {\r\n return [];\r\n }\r\n else {\r\n var allAccounts = accountEntities.map(function (accountEntity) {\r\n return _this.getAccountInfoFromEntity(accountEntity);\r\n });\r\n return allAccounts;\r\n }\r\n };\r\n /**\r\n * Gets accountInfo object based on provided filters\r\n */\r\n CacheManager.prototype.getAccountInfoFilteredBy = function (accountFilter) {\r\n var allAccounts = this.getAccountsFilteredBy(accountFilter);\r\n if (allAccounts.length > 0) {\r\n return this.getAccountInfoFromEntity(allAccounts[0]);\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n CacheManager.prototype.getAccountInfoFromEntity = function (accountEntity) {\r\n var accountInfo = accountEntity.getAccountInfo();\r\n var idToken = this.getIdToken(accountInfo);\r\n if (idToken) {\r\n accountInfo.idToken = idToken.secret;\r\n accountInfo.idTokenClaims = new AuthToken(idToken.secret, this.cryptoImpl).claims;\r\n }\r\n return accountInfo;\r\n };\r\n /**\r\n * saves a cache record\r\n * @param cacheRecord\r\n */\r\n CacheManager.prototype.saveCacheRecord = function (cacheRecord) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!cacheRecord) {\r\n throw ClientAuthError.createNullOrUndefinedCacheRecord();\r\n }\r\n if (!!cacheRecord.account) {\r\n this.setAccount(cacheRecord.account);\r\n }\r\n if (!!cacheRecord.idToken) {\r\n this.setIdTokenCredential(cacheRecord.idToken);\r\n }\r\n if (!!!cacheRecord.accessToken) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.saveAccessToken(cacheRecord.accessToken)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n if (!!cacheRecord.refreshToken) {\r\n this.setRefreshTokenCredential(cacheRecord.refreshToken);\r\n }\r\n if (!!cacheRecord.appMetadata) {\r\n this.setAppMetadata(cacheRecord.appMetadata);\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * saves access token credential\r\n * @param credential\r\n */\r\n CacheManager.prototype.saveAccessToken = function (credential) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var accessTokenFilter, tokenKeys, currentScopes, removedAccessTokens;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n accessTokenFilter = {\r\n clientId: credential.clientId,\r\n credentialType: credential.credentialType,\r\n environment: credential.environment,\r\n homeAccountId: credential.homeAccountId,\r\n realm: credential.realm,\r\n tokenType: credential.tokenType,\r\n requestedClaimsHash: credential.requestedClaimsHash\r\n };\r\n tokenKeys = this.getTokenKeys();\r\n currentScopes = ScopeSet.fromString(credential.target);\r\n removedAccessTokens = [];\r\n tokenKeys.accessToken.forEach(function (key) {\r\n if (!_this.accessTokenKeyMatchesFilter(key, accessTokenFilter, false)) {\r\n return;\r\n }\r\n var tokenEntity = _this.getAccessTokenCredential(key);\r\n if (tokenEntity && _this.credentialMatchesFilter(tokenEntity, accessTokenFilter)) {\r\n var tokenScopeSet = ScopeSet.fromString(tokenEntity.target);\r\n if (tokenScopeSet.intersectingScopeSets(currentScopes)) {\r\n removedAccessTokens.push(_this.removeAccessToken(key));\r\n }\r\n }\r\n });\r\n return [4 /*yield*/, Promise.all(removedAccessTokens)];\r\n case 1:\r\n _a.sent();\r\n this.setAccessTokenCredential(credential);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * retrieve accounts matching all provided filters; if no filter is set, get all accounts\r\n * not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared\r\n * @param homeAccountId\r\n * @param environment\r\n * @param realm\r\n */\r\n CacheManager.prototype.getAccountsFilteredBy = function (accountFilter) {\r\n var _this = this;\r\n var allAccountKeys = this.getAccountKeys();\r\n var matchingAccounts = [];\r\n allAccountKeys.forEach(function (cacheKey) {\r\n if (!_this.isAccountKey(cacheKey, accountFilter.homeAccountId, accountFilter.realm)) {\r\n // Don't parse value if the key doesn't match the account filters\r\n return;\r\n }\r\n var entity = _this.getAccount(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!accountFilter.homeAccountId && !_this.matchHomeAccountId(entity, accountFilter.homeAccountId)) {\r\n return;\r\n }\r\n if (!!accountFilter.localAccountId && !_this.matchLocalAccountId(entity, accountFilter.localAccountId)) {\r\n return;\r\n }\r\n if (!!accountFilter.username && !_this.matchUsername(entity, accountFilter.username)) {\r\n return;\r\n }\r\n if (!!accountFilter.environment && !_this.matchEnvironment(entity, accountFilter.environment)) {\r\n return;\r\n }\r\n if (!!accountFilter.realm && !_this.matchRealm(entity, accountFilter.realm)) {\r\n return;\r\n }\r\n if (!!accountFilter.nativeAccountId && !_this.matchNativeAccountId(entity, accountFilter.nativeAccountId)) {\r\n return;\r\n }\r\n matchingAccounts.push(entity);\r\n });\r\n return matchingAccounts;\r\n };\r\n /**\r\n * Returns true if the given key matches our account key schema. Also matches homeAccountId and/or tenantId if provided\r\n * @param key\r\n * @param homeAccountId\r\n * @param tenantId\r\n * @returns\r\n */\r\n CacheManager.prototype.isAccountKey = function (key, homeAccountId, tenantId) {\r\n if (key.split(Separators.CACHE_KEY_SEPARATOR).length < 3) {\r\n // Account cache keys contain 3 items separated by '-' (each item may also contain '-')\r\n return false;\r\n }\r\n if (homeAccountId && !key.toLowerCase().includes(homeAccountId.toLowerCase())) {\r\n return false;\r\n }\r\n if (tenantId && !key.toLowerCase().includes(tenantId.toLowerCase())) {\r\n return false;\r\n }\r\n // Do not check environment as aliasing can cause false negatives\r\n return true;\r\n };\r\n /**\r\n * Returns true if the given key matches our credential key schema.\r\n * @param key\r\n */\r\n CacheManager.prototype.isCredentialKey = function (key) {\r\n if (key.split(Separators.CACHE_KEY_SEPARATOR).length < 6) {\r\n // Credential cache keys contain 6 items separated by '-' (each item may also contain '-')\r\n return false;\r\n }\r\n var lowerCaseKey = key.toLowerCase();\r\n // Credential keys must indicate what credential type they represent\r\n if (lowerCaseKey.indexOf(CredentialType.ID_TOKEN.toLowerCase()) === -1 &&\r\n lowerCaseKey.indexOf(CredentialType.ACCESS_TOKEN.toLowerCase()) === -1 &&\r\n lowerCaseKey.indexOf(CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()) === -1 &&\r\n lowerCaseKey.indexOf(CredentialType.REFRESH_TOKEN.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (lowerCaseKey.indexOf(CredentialType.REFRESH_TOKEN.toLowerCase()) > -1) {\r\n // Refresh tokens must contain the client id or family id\r\n var clientIdValidation = \"\" + CredentialType.REFRESH_TOKEN + Separators.CACHE_KEY_SEPARATOR + this.clientId + Separators.CACHE_KEY_SEPARATOR;\r\n var familyIdValidation = \"\" + CredentialType.REFRESH_TOKEN + Separators.CACHE_KEY_SEPARATOR + THE_FAMILY_ID + Separators.CACHE_KEY_SEPARATOR;\r\n if (lowerCaseKey.indexOf(clientIdValidation.toLowerCase()) === -1 && lowerCaseKey.indexOf(familyIdValidation.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n }\r\n else if (lowerCaseKey.indexOf(this.clientId.toLowerCase()) === -1) {\r\n // Tokens must contain the clientId\r\n return false;\r\n }\r\n return true;\r\n };\r\n /**\r\n * Returns whether or not the given credential entity matches the filter\r\n * @param entity\r\n * @param filter\r\n * @returns\r\n */\r\n CacheManager.prototype.credentialMatchesFilter = function (entity, filter) {\r\n if (!!filter.clientId && !this.matchClientId(entity, filter.clientId)) {\r\n return false;\r\n }\r\n if (!!filter.userAssertionHash && !this.matchUserAssertionHash(entity, filter.userAssertionHash)) {\r\n return false;\r\n }\r\n /*\r\n * homeAccountId can be undefined, and we want to filter out cached items that have a homeAccountId of \"\"\r\n * because we don't want a client_credential request to return a cached token that has a homeAccountId\r\n */\r\n if ((typeof filter.homeAccountId === \"string\") && !this.matchHomeAccountId(entity, filter.homeAccountId)) {\r\n return false;\r\n }\r\n if (!!filter.environment && !this.matchEnvironment(entity, filter.environment)) {\r\n return false;\r\n }\r\n if (!!filter.realm && !this.matchRealm(entity, filter.realm)) {\r\n return false;\r\n }\r\n if (!!filter.credentialType && !this.matchCredentialType(entity, filter.credentialType)) {\r\n return false;\r\n }\r\n if (!!filter.familyId && !this.matchFamilyId(entity, filter.familyId)) {\r\n return false;\r\n }\r\n /*\r\n * idTokens do not have \"target\", target specific refreshTokens do exist for some types of authentication\r\n * Resource specific refresh tokens case will be added when the support is deemed necessary\r\n */\r\n if (!!filter.target && !this.matchTarget(entity, filter.target)) {\r\n return false;\r\n }\r\n // If request OR cached entity has requested Claims Hash, check if they match\r\n if (filter.requestedClaimsHash || entity.requestedClaimsHash) {\r\n // Don't match if either is undefined or they are different\r\n if (entity.requestedClaimsHash !== filter.requestedClaimsHash) {\r\n return false;\r\n }\r\n }\r\n // Access Token with Auth Scheme specific matching\r\n if (entity.credentialType === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME) {\r\n if (!!filter.tokenType && !this.matchTokenType(entity, filter.tokenType)) {\r\n return false;\r\n }\r\n // KeyId (sshKid) in request must match cached SSH certificate keyId because SSH cert is bound to a specific key\r\n if (filter.tokenType === AuthenticationScheme.SSH) {\r\n if (filter.keyId && !this.matchKeyId(entity, filter.keyId)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n /**\r\n * retrieve appMetadata matching all provided filters; if no filter is set, get all appMetadata\r\n * @param filter\r\n */\r\n CacheManager.prototype.getAppMetadataFilteredBy = function (filter) {\r\n return this.getAppMetadataFilteredByInternal(filter.environment, filter.clientId);\r\n };\r\n /**\r\n * Support function to help match appMetadata\r\n * @param environment\r\n * @param clientId\r\n */\r\n CacheManager.prototype.getAppMetadataFilteredByInternal = function (environment, clientId) {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n var matchingAppMetadata = {};\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-appMetadata type cache entities\r\n if (!_this.isAppMetadata(cacheKey)) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getAppMetadata(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n return;\r\n }\r\n if (!!clientId && !_this.matchClientId(entity, clientId)) {\r\n return;\r\n }\r\n matchingAppMetadata[cacheKey] = entity;\r\n });\r\n return matchingAppMetadata;\r\n };\r\n /**\r\n * retrieve authorityMetadata that contains a matching alias\r\n * @param filter\r\n */\r\n CacheManager.prototype.getAuthorityMetadataByAlias = function (host) {\r\n var _this = this;\r\n var allCacheKeys = this.getAuthorityMetadataKeys();\r\n var matchedEntity = null;\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-authorityMetadata type cache entities\r\n if (!_this.isAuthorityMetadata(cacheKey) || cacheKey.indexOf(_this.clientId) === -1) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getAuthorityMetadata(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (entity.aliases.indexOf(host) === -1) {\r\n return;\r\n }\r\n matchedEntity = entity;\r\n });\r\n return matchedEntity;\r\n };\r\n /**\r\n * Removes all accounts and related tokens from cache.\r\n */\r\n CacheManager.prototype.removeAllAccounts = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var allAccountKeys, removedAccounts;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n allAccountKeys = this.getAccountKeys();\r\n removedAccounts = [];\r\n allAccountKeys.forEach(function (cacheKey) {\r\n removedAccounts.push(_this.removeAccount(cacheKey));\r\n });\r\n return [4 /*yield*/, Promise.all(removedAccounts)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes the account and related tokens for a given account key\r\n * @param account\r\n */\r\n CacheManager.prototype.removeAccount = function (accountKey) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var account;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n account = this.getAccount(accountKey);\r\n if (!account) {\r\n throw ClientAuthError.createNoAccountFoundError();\r\n }\r\n return [4 /*yield*/, this.removeAccountContext(account)];\r\n case 1:\r\n _a.sent();\r\n this.removeItem(accountKey);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes credentials associated with the provided account\r\n * @param account\r\n */\r\n CacheManager.prototype.removeAccountContext = function (account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var allTokenKeys, accountId, removedCredentials;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n allTokenKeys = this.getTokenKeys();\r\n accountId = account.generateAccountId();\r\n removedCredentials = [];\r\n allTokenKeys.idToken.forEach(function (key) {\r\n if (key.indexOf(accountId) === 0) {\r\n _this.removeIdToken(key);\r\n }\r\n });\r\n allTokenKeys.accessToken.forEach(function (key) {\r\n if (key.indexOf(accountId) === 0) {\r\n removedCredentials.push(_this.removeAccessToken(key));\r\n }\r\n });\r\n allTokenKeys.refreshToken.forEach(function (key) {\r\n if (key.indexOf(accountId) === 0) {\r\n _this.removeRefreshToken(key);\r\n }\r\n });\r\n return [4 /*yield*/, Promise.all(removedCredentials)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * returns a boolean if the given credential is removed\r\n * @param credential\r\n */\r\n CacheManager.prototype.removeAccessToken = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var credential, accessTokenWithAuthSchemeEntity, kid;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n credential = this.getAccessTokenCredential(key);\r\n if (!credential) {\r\n return [2 /*return*/];\r\n }\r\n if (!(credential.credentialType.toLowerCase() === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase())) return [3 /*break*/, 4];\r\n if (!(credential.tokenType === AuthenticationScheme.POP)) return [3 /*break*/, 4];\r\n accessTokenWithAuthSchemeEntity = credential;\r\n kid = accessTokenWithAuthSchemeEntity.keyId;\r\n if (!kid) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.cryptoImpl.removeTokenBindingKey(kid)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n _a.sent();\r\n throw ClientAuthError.createBindingKeyNotRemovedError();\r\n case 4: return [2 /*return*/, this.removeItem(key)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes all app metadata objects from cache.\r\n */\r\n CacheManager.prototype.removeAppMetadata = function () {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n allCacheKeys.forEach(function (cacheKey) {\r\n if (_this.isAppMetadata(cacheKey)) {\r\n _this.removeItem(cacheKey);\r\n }\r\n });\r\n return true;\r\n };\r\n /**\r\n * Retrieve the cached credentials into a cacherecord\r\n * @param account\r\n * @param clientId\r\n * @param scopes\r\n * @param environment\r\n * @param authScheme\r\n */\r\n CacheManager.prototype.readCacheRecord = function (account, request, environment) {\r\n var tokenKeys = this.getTokenKeys();\r\n var cachedAccount = this.readAccountFromCache(account);\r\n var cachedIdToken = this.getIdToken(account, tokenKeys);\r\n var cachedAccessToken = this.getAccessToken(account, request, tokenKeys);\r\n var cachedRefreshToken = this.getRefreshToken(account, false, tokenKeys);\r\n var cachedAppMetadata = this.readAppMetadataFromCache(environment);\r\n if (cachedAccount && cachedIdToken) {\r\n cachedAccount.idTokenClaims = new AuthToken(cachedIdToken.secret, this.cryptoImpl).claims;\r\n }\r\n return {\r\n account: cachedAccount,\r\n idToken: cachedIdToken,\r\n accessToken: cachedAccessToken,\r\n refreshToken: cachedRefreshToken,\r\n appMetadata: cachedAppMetadata,\r\n };\r\n };\r\n /**\r\n * Retrieve AccountEntity from cache\r\n * @param account\r\n */\r\n CacheManager.prototype.readAccountFromCache = function (account) {\r\n var accountKey = AccountEntity.generateAccountCacheKey(account);\r\n return this.getAccount(accountKey);\r\n };\r\n /**\r\n * Retrieve IdTokenEntity from cache\r\n * @param clientId\r\n * @param account\r\n * @param inputRealm\r\n */\r\n CacheManager.prototype.getIdToken = function (account, tokenKeys) {\r\n this.commonLogger.trace(\"CacheManager - getIdToken called\");\r\n var idTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: CredentialType.ID_TOKEN,\r\n clientId: this.clientId,\r\n realm: account.tenantId,\r\n };\r\n var idTokens = this.getIdTokensByFilter(idTokenFilter, tokenKeys);\r\n var numIdTokens = idTokens.length;\r\n if (numIdTokens < 1) {\r\n this.commonLogger.info(\"CacheManager:getIdToken - No token found\");\r\n return null;\r\n }\r\n else if (numIdTokens > 1) {\r\n throw ClientAuthError.createMultipleMatchingTokensInCacheError();\r\n }\r\n this.commonLogger.info(\"CacheManager:getIdToken - Returning id token\");\r\n return idTokens[0];\r\n };\r\n /**\r\n * Gets all idTokens matching the given filter\r\n * @param filter\r\n * @returns\r\n */\r\n CacheManager.prototype.getIdTokensByFilter = function (filter, tokenKeys) {\r\n var _this = this;\r\n var idTokenKeys = tokenKeys && tokenKeys.idToken || this.getTokenKeys().idToken;\r\n var idTokens = [];\r\n idTokenKeys.forEach(function (key) {\r\n if (!_this.idTokenKeyMatchesFilter(key, __assign({ clientId: _this.clientId }, filter))) {\r\n return;\r\n }\r\n var idToken = _this.getIdTokenCredential(key);\r\n if (idToken && _this.credentialMatchesFilter(idToken, filter)) {\r\n idTokens.push(idToken);\r\n }\r\n });\r\n return idTokens;\r\n };\r\n /**\r\n * Validate the cache key against filter before retrieving and parsing cache value\r\n * @param key\r\n * @param filter\r\n * @returns\r\n */\r\n CacheManager.prototype.idTokenKeyMatchesFilter = function (inputKey, filter) {\r\n var key = inputKey.toLowerCase();\r\n if (filter.clientId && key.indexOf(filter.clientId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.homeAccountId && key.indexOf(filter.homeAccountId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n /**\r\n * Removes idToken from the cache\r\n * @param key\r\n */\r\n CacheManager.prototype.removeIdToken = function (key) {\r\n this.removeItem(key);\r\n };\r\n /**\r\n * Removes refresh token from the cache\r\n * @param key\r\n */\r\n CacheManager.prototype.removeRefreshToken = function (key) {\r\n this.removeItem(key);\r\n };\r\n /**\r\n * Retrieve AccessTokenEntity from cache\r\n * @param clientId\r\n * @param account\r\n * @param scopes\r\n * @param authScheme\r\n */\r\n CacheManager.prototype.getAccessToken = function (account, request, tokenKeys) {\r\n var _this = this;\r\n this.commonLogger.trace(\"CacheManager - getAccessToken called\");\r\n var scopes = ScopeSet.createSearchScopes(request.scopes);\r\n var authScheme = request.authenticationScheme || AuthenticationScheme.BEARER;\r\n /*\r\n * Distinguish between Bearer and PoP/SSH token cache types\r\n * Cast to lowercase to handle \"bearer\" from ADFS\r\n */\r\n var credentialType = (authScheme && authScheme.toLowerCase() !== AuthenticationScheme.BEARER.toLowerCase()) ? CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME : CredentialType.ACCESS_TOKEN;\r\n var accessTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: credentialType,\r\n clientId: this.clientId,\r\n realm: account.tenantId,\r\n target: scopes,\r\n tokenType: authScheme,\r\n keyId: request.sshKid,\r\n requestedClaimsHash: request.requestedClaimsHash,\r\n };\r\n var accessTokenKeys = tokenKeys && tokenKeys.accessToken || this.getTokenKeys().accessToken;\r\n var accessTokens = [];\r\n accessTokenKeys.forEach(function (key) {\r\n // Validate key\r\n if (_this.accessTokenKeyMatchesFilter(key, accessTokenFilter, true)) {\r\n var accessToken = _this.getAccessTokenCredential(key);\r\n // Validate value\r\n if (accessToken && _this.credentialMatchesFilter(accessToken, accessTokenFilter)) {\r\n accessTokens.push(accessToken);\r\n }\r\n }\r\n });\r\n var numAccessTokens = accessTokens.length;\r\n if (numAccessTokens < 1) {\r\n this.commonLogger.info(\"CacheManager:getAccessToken - No token found\");\r\n return null;\r\n }\r\n else if (numAccessTokens > 1) {\r\n throw ClientAuthError.createMultipleMatchingTokensInCacheError();\r\n }\r\n this.commonLogger.info(\"CacheManager:getAccessToken - Returning access token\");\r\n return accessTokens[0];\r\n };\r\n /**\r\n * Validate the cache key against filter before retrieving and parsing cache value\r\n * @param key\r\n * @param filter\r\n * @param keyMustContainAllScopes\r\n * @returns\r\n */\r\n CacheManager.prototype.accessTokenKeyMatchesFilter = function (inputKey, filter, keyMustContainAllScopes) {\r\n var key = inputKey.toLowerCase();\r\n if (filter.clientId && key.indexOf(filter.clientId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.homeAccountId && key.indexOf(filter.homeAccountId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.realm && key.indexOf(filter.realm.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.requestedClaimsHash && key.indexOf(filter.requestedClaimsHash.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.target) {\r\n var scopes = filter.target.asArray();\r\n for (var i = 0; i < scopes.length; i++) {\r\n if (keyMustContainAllScopes && !key.includes(scopes[i].toLowerCase())) {\r\n // When performing a cache lookup a missing scope would be a cache miss\r\n return false;\r\n }\r\n else if (!keyMustContainAllScopes && key.includes(scopes[i].toLowerCase())) {\r\n // When performing a cache write, any token with a subset of requested scopes should be replaced\r\n return true;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n /**\r\n * Gets all access tokens matching the filter\r\n * @param filter\r\n * @returns\r\n */\r\n CacheManager.prototype.getAccessTokensByFilter = function (filter) {\r\n var _this = this;\r\n var tokenKeys = this.getTokenKeys();\r\n var accessTokens = [];\r\n tokenKeys.accessToken.forEach(function (key) {\r\n if (!_this.accessTokenKeyMatchesFilter(key, filter, true)) {\r\n return;\r\n }\r\n var accessToken = _this.getAccessTokenCredential(key);\r\n if (accessToken && _this.credentialMatchesFilter(accessToken, filter)) {\r\n accessTokens.push(accessToken);\r\n }\r\n });\r\n return accessTokens;\r\n };\r\n /**\r\n * Helper to retrieve the appropriate refresh token from cache\r\n * @param clientId\r\n * @param account\r\n * @param familyRT\r\n */\r\n CacheManager.prototype.getRefreshToken = function (account, familyRT, tokenKeys) {\r\n var _this = this;\r\n this.commonLogger.trace(\"CacheManager - getRefreshToken called\");\r\n var id = familyRT ? THE_FAMILY_ID : undefined;\r\n var refreshTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: CredentialType.REFRESH_TOKEN,\r\n clientId: this.clientId,\r\n familyId: id,\r\n };\r\n var refreshTokenKeys = tokenKeys && tokenKeys.refreshToken || this.getTokenKeys().refreshToken;\r\n var refreshTokens = [];\r\n refreshTokenKeys.forEach(function (key) {\r\n // Validate key\r\n if (_this.refreshTokenKeyMatchesFilter(key, refreshTokenFilter)) {\r\n var refreshToken = _this.getRefreshTokenCredential(key);\r\n // Validate value\r\n if (refreshToken && _this.credentialMatchesFilter(refreshToken, refreshTokenFilter)) {\r\n refreshTokens.push(refreshToken);\r\n }\r\n }\r\n });\r\n var numRefreshTokens = refreshTokens.length;\r\n if (numRefreshTokens < 1) {\r\n this.commonLogger.info(\"CacheManager:getRefreshToken - No refresh token found.\");\r\n return null;\r\n }\r\n // address the else case after remove functions address environment aliases\r\n this.commonLogger.info(\"CacheManager:getRefreshToken - returning refresh token\");\r\n return refreshTokens[0];\r\n };\r\n /**\r\n * Validate the cache key against filter before retrieving and parsing cache value\r\n * @param key\r\n * @param filter\r\n */\r\n CacheManager.prototype.refreshTokenKeyMatchesFilter = function (inputKey, filter) {\r\n var key = inputKey.toLowerCase();\r\n if (filter.familyId && key.indexOf(filter.familyId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n // If familyId is used, clientId is not in the key\r\n if (!filter.familyId && filter.clientId && key.indexOf(filter.clientId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.homeAccountId && key.indexOf(filter.homeAccountId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n /**\r\n * Retrieve AppMetadataEntity from cache\r\n */\r\n CacheManager.prototype.readAppMetadataFromCache = function (environment) {\r\n var appMetadataFilter = {\r\n environment: environment,\r\n clientId: this.clientId,\r\n };\r\n var appMetadata = this.getAppMetadataFilteredBy(appMetadataFilter);\r\n var appMetadataEntries = Object.keys(appMetadata).map(function (key) { return appMetadata[key]; });\r\n var numAppMetadata = appMetadataEntries.length;\r\n if (numAppMetadata < 1) {\r\n return null;\r\n }\r\n else if (numAppMetadata > 1) {\r\n throw ClientAuthError.createMultipleMatchingAppMetadataInCacheError();\r\n }\r\n return appMetadataEntries[0];\r\n };\r\n /**\r\n * Return the family_id value associated with FOCI\r\n * @param environment\r\n * @param clientId\r\n */\r\n CacheManager.prototype.isAppMetadataFOCI = function (environment) {\r\n var appMetadata = this.readAppMetadataFromCache(environment);\r\n return !!(appMetadata && appMetadata.familyId === THE_FAMILY_ID);\r\n };\r\n /**\r\n * helper to match account ids\r\n * @param value\r\n * @param homeAccountId\r\n */\r\n CacheManager.prototype.matchHomeAccountId = function (entity, homeAccountId) {\r\n return !!((typeof entity.homeAccountId === \"string\") && (homeAccountId === entity.homeAccountId));\r\n };\r\n /**\r\n * helper to match account ids\r\n * @param entity\r\n * @param localAccountId\r\n * @returns\r\n */\r\n CacheManager.prototype.matchLocalAccountId = function (entity, localAccountId) {\r\n return !!((typeof entity.localAccountId === \"string\") && (localAccountId === entity.localAccountId));\r\n };\r\n /**\r\n * helper to match usernames\r\n * @param entity\r\n * @param username\r\n * @returns\r\n */\r\n CacheManager.prototype.matchUsername = function (entity, username) {\r\n return !!((typeof entity.username === \"string\") && (username.toLowerCase() === entity.username.toLowerCase()));\r\n };\r\n /**\r\n * helper to match assertion\r\n * @param value\r\n * @param oboAssertion\r\n */\r\n CacheManager.prototype.matchUserAssertionHash = function (entity, userAssertionHash) {\r\n return !!(entity.userAssertionHash && userAssertionHash === entity.userAssertionHash);\r\n };\r\n /**\r\n * helper to match environment\r\n * @param value\r\n * @param environment\r\n */\r\n CacheManager.prototype.matchEnvironment = function (entity, environment) {\r\n var cloudMetadata = this.getAuthorityMetadataByAlias(environment);\r\n if (cloudMetadata && cloudMetadata.aliases.indexOf(entity.environment) > -1) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * helper to match credential type\r\n * @param entity\r\n * @param credentialType\r\n */\r\n CacheManager.prototype.matchCredentialType = function (entity, credentialType) {\r\n return (entity.credentialType && credentialType.toLowerCase() === entity.credentialType.toLowerCase());\r\n };\r\n /**\r\n * helper to match client ids\r\n * @param entity\r\n * @param clientId\r\n */\r\n CacheManager.prototype.matchClientId = function (entity, clientId) {\r\n return !!(entity.clientId && clientId === entity.clientId);\r\n };\r\n /**\r\n * helper to match family ids\r\n * @param entity\r\n * @param familyId\r\n */\r\n CacheManager.prototype.matchFamilyId = function (entity, familyId) {\r\n return !!(entity.familyId && familyId === entity.familyId);\r\n };\r\n /**\r\n * helper to match realm\r\n * @param entity\r\n * @param realm\r\n */\r\n CacheManager.prototype.matchRealm = function (entity, realm) {\r\n return !!(entity.realm && realm === entity.realm);\r\n };\r\n /**\r\n * helper to match nativeAccountId\r\n * @param entity\r\n * @param nativeAccountId\r\n * @returns boolean indicating the match result\r\n */\r\n CacheManager.prototype.matchNativeAccountId = function (entity, nativeAccountId) {\r\n return !!(entity.nativeAccountId && nativeAccountId === entity.nativeAccountId);\r\n };\r\n /**\r\n * Returns true if the target scopes are a subset of the current entity's scopes, false otherwise.\r\n * @param entity\r\n * @param target\r\n */\r\n CacheManager.prototype.matchTarget = function (entity, target) {\r\n var isNotAccessTokenCredential = (entity.credentialType !== CredentialType.ACCESS_TOKEN && entity.credentialType !== CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME);\r\n if (isNotAccessTokenCredential || !entity.target) {\r\n return false;\r\n }\r\n var entityScopeSet = ScopeSet.fromString(entity.target);\r\n return entityScopeSet.containsScopeSet(target);\r\n };\r\n /**\r\n * Returns true if the credential's tokenType or Authentication Scheme matches the one in the request, false otherwise\r\n * @param entity\r\n * @param tokenType\r\n */\r\n CacheManager.prototype.matchTokenType = function (entity, tokenType) {\r\n return !!(entity.tokenType && entity.tokenType === tokenType);\r\n };\r\n /**\r\n * Returns true if the credential's keyId matches the one in the request, false otherwise\r\n * @param entity\r\n * @param tokenType\r\n */\r\n CacheManager.prototype.matchKeyId = function (entity, keyId) {\r\n return !!(entity.keyId && entity.keyId === keyId);\r\n };\r\n /**\r\n * returns if a given cache entity is of the type appmetadata\r\n * @param key\r\n */\r\n CacheManager.prototype.isAppMetadata = function (key) {\r\n return key.indexOf(APP_METADATA) !== -1;\r\n };\r\n /**\r\n * returns if a given cache entity is of the type authoritymetadata\r\n * @param key\r\n */\r\n CacheManager.prototype.isAuthorityMetadata = function (key) {\r\n return key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) !== -1;\r\n };\r\n /**\r\n * returns cache key used for cloud instance metadata\r\n */\r\n CacheManager.prototype.generateAuthorityMetadataCacheKey = function (authority) {\r\n return AUTHORITY_METADATA_CONSTANTS.CACHE_KEY + \"-\" + this.clientId + \"-\" + authority;\r\n };\r\n /**\r\n * Helper to convert serialized data to object\r\n * @param obj\r\n * @param json\r\n */\r\n CacheManager.toObject = function (obj, json) {\r\n for (var propertyName in json) {\r\n obj[propertyName] = json[propertyName];\r\n }\r\n return obj;\r\n };\r\n return CacheManager;\r\n}());\r\nvar DefaultStorageClass = /** @class */ (function (_super) {\r\n __extends(DefaultStorageClass, _super);\r\n function DefaultStorageClass() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DefaultStorageClass.prototype.setAccount = function () {\r\n var notImplErr = \"Storage interface - setAccount() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAccount = function () {\r\n var notImplErr = \"Storage interface - getAccount() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setIdTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setIdTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getIdTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getIdTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAccessTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAccessTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setRefreshTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getRefreshTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAppMetadata = function () {\r\n var notImplErr = \"Storage interface - setAppMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAppMetadata = function () {\r\n var notImplErr = \"Storage interface - getAppMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setServerTelemetry = function () {\r\n var notImplErr = \"Storage interface - setServerTelemetry() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getServerTelemetry = function () {\r\n var notImplErr = \"Storage interface - getServerTelemetry() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAuthorityMetadata = function () {\r\n var notImplErr = \"Storage interface - setAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAuthorityMetadata = function () {\r\n var notImplErr = \"Storage interface - getAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAuthorityMetadataKeys = function () {\r\n var notImplErr = \"Storage interface - getAuthorityMetadataKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setThrottlingCache = function () {\r\n var notImplErr = \"Storage interface - setThrottlingCache() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getThrottlingCache = function () {\r\n var notImplErr = \"Storage interface - getThrottlingCache() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.removeItem = function () {\r\n var notImplErr = \"Storage interface - removeItem() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.containsKey = function () {\r\n var notImplErr = \"Storage interface - containsKey() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getKeys = function () {\r\n var notImplErr = \"Storage interface - getKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAccountKeys = function () {\r\n var notImplErr = \"Storage interface - getAccountKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getTokenKeys = function () {\r\n var notImplErr = \"Storage interface - getTokenKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.clear = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Storage interface - clear() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n };\r\n DefaultStorageClass.prototype.updateCredentialCacheKey = function () {\r\n var notImplErr = \"Storage interface - updateCredentialCacheKey() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n return DefaultStorageClass;\r\n}(CacheManager));\n\nexport { CacheManager, DefaultStorageClass };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType, AuthenticationScheme } from '../../utils/Constants.js';\nimport { TimeUtils } from '../../utils/TimeUtils.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\nimport { AuthToken } from '../../account/AuthToken.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ACCESS_TOKEN Credential Type\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-accesstoken-clientId-contoso.com-user.read\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, usually only used for refresh tokens\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * cachedAt: Absolute device time when entry was created in the cache.\r\n * expiresOn: Token expiry time, calculated based on current UTC time in seconds. Represented as a string.\r\n * extendedExpiresOn: Additional extended expiry time until when token is valid in case of server-side outage. Represented as string in UTC seconds.\r\n * keyId: used for POP and SSH tokenTypes\r\n * tokenType: Type of the token issued. Usually \"Bearer\"\r\n * }\r\n */\r\nvar AccessTokenEntity = /** @class */ (function (_super) {\r\n __extends(AccessTokenEntity, _super);\r\n function AccessTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create AccessTokenEntity\r\n * @param homeAccountId\r\n * @param environment\r\n * @param accessToken\r\n * @param clientId\r\n * @param tenantId\r\n * @param scopes\r\n * @param expiresOn\r\n * @param extExpiresOn\r\n */\r\n AccessTokenEntity.createAccessTokenEntity = function (homeAccountId, environment, accessToken, clientId, tenantId, scopes, expiresOn, extExpiresOn, cryptoUtils, refreshOn, tokenType, userAssertionHash, keyId, requestedClaims, requestedClaimsHash) {\r\n var _a, _b;\r\n var atEntity = new AccessTokenEntity();\r\n atEntity.homeAccountId = homeAccountId;\r\n atEntity.credentialType = CredentialType.ACCESS_TOKEN;\r\n atEntity.secret = accessToken;\r\n var currentTime = TimeUtils.nowSeconds();\r\n atEntity.cachedAt = currentTime.toString();\r\n /*\r\n * Token expiry time.\r\n * This value should be  calculated based on the current UTC time measured locally and the value  expires_in Represented as a string in JSON.\r\n */\r\n atEntity.expiresOn = expiresOn.toString();\r\n atEntity.extendedExpiresOn = extExpiresOn.toString();\r\n if (refreshOn) {\r\n atEntity.refreshOn = refreshOn.toString();\r\n }\r\n atEntity.environment = environment;\r\n atEntity.clientId = clientId;\r\n atEntity.realm = tenantId;\r\n atEntity.target = scopes;\r\n atEntity.userAssertionHash = userAssertionHash;\r\n atEntity.tokenType = StringUtils.isEmpty(tokenType) ? AuthenticationScheme.BEARER : tokenType;\r\n if (requestedClaims) {\r\n atEntity.requestedClaims = requestedClaims;\r\n atEntity.requestedClaimsHash = requestedClaimsHash;\r\n }\r\n /*\r\n * Create Access Token With Auth Scheme instead of regular access token\r\n * Cast to lower to handle \"bearer\" from ADFS\r\n */\r\n if (((_a = atEntity.tokenType) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== AuthenticationScheme.BEARER.toLowerCase()) {\r\n atEntity.credentialType = CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;\r\n switch (atEntity.tokenType) {\r\n case AuthenticationScheme.POP:\r\n // Make sure keyId is present and add it to credential\r\n var tokenClaims = AuthToken.extractTokenClaims(accessToken, cryptoUtils);\r\n if (!((_b = tokenClaims === null || tokenClaims === void 0 ? void 0 : tokenClaims.cnf) === null || _b === void 0 ? void 0 : _b.kid)) {\r\n throw ClientAuthError.createTokenClaimsRequiredError();\r\n }\r\n atEntity.keyId = tokenClaims.cnf.kid;\r\n break;\r\n case AuthenticationScheme.SSH:\r\n atEntity.keyId = keyId;\r\n }\r\n }\r\n return atEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AccessTokenEntity.isAccessTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity.hasOwnProperty(\"target\") &&\r\n (entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN || entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME));\r\n };\r\n return AccessTokenEntity;\r\n}(CredentialEntity));\n\nexport { AccessTokenEntity };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { Separators, CacheAccountType, CacheType, Constants } from '../../utils/Constants.js';\nimport { buildClientInfo } from '../../account/ClientInfo.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\nimport { AuthorityType } from '../../authority/AuthorityType.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Type that defines required and optional parameters for an Account field (based on universal cache schema implemented by all MSALs).\r\n *\r\n * Key : Value Schema\r\n *\r\n * Key: --\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * localAccountId: Original tenant-specific accountID, usually used for legacy cases\r\n * username: primary username that represents the user, usually corresponds to preferred_username in the v2 endpt\r\n * authorityType: Accounts authority type as a string\r\n * name: Full name for the account, including given name and family name,\r\n * clientInfo: Full base64 encoded client info received from ESTS\r\n * lastModificationTime: last time this entity was modified in the cache\r\n * lastModificationApp:\r\n * idTokenClaims: Object containing claims parsed from ID token\r\n * nativeAccountId: Account identifier on the native device\r\n * }\r\n */\r\nvar AccountEntity = /** @class */ (function () {\r\n function AccountEntity() {\r\n }\r\n /**\r\n * Generate Account Id key component as per the schema: -\r\n */\r\n AccountEntity.prototype.generateAccountId = function () {\r\n var accountId = [this.homeAccountId, this.environment];\r\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generate Account Cache Key as per the schema: --\r\n */\r\n AccountEntity.prototype.generateAccountKey = function () {\r\n return AccountEntity.generateAccountCacheKey({\r\n homeAccountId: this.homeAccountId,\r\n environment: this.environment,\r\n tenantId: this.realm,\r\n username: this.username,\r\n localAccountId: this.localAccountId\r\n });\r\n };\r\n /**\r\n * returns the type of the cache (in this case account)\r\n */\r\n AccountEntity.prototype.generateType = function () {\r\n switch (this.authorityType) {\r\n case CacheAccountType.ADFS_ACCOUNT_TYPE:\r\n return CacheType.ADFS;\r\n case CacheAccountType.MSAV1_ACCOUNT_TYPE:\r\n return CacheType.MSA;\r\n case CacheAccountType.MSSTS_ACCOUNT_TYPE:\r\n return CacheType.MSSTS;\r\n case CacheAccountType.GENERIC_ACCOUNT_TYPE:\r\n return CacheType.GENERIC;\r\n default: {\r\n throw ClientAuthError.createUnexpectedAccountTypeError();\r\n }\r\n }\r\n };\r\n /**\r\n * Returns the AccountInfo interface for this account.\r\n */\r\n AccountEntity.prototype.getAccountInfo = function () {\r\n return {\r\n homeAccountId: this.homeAccountId,\r\n environment: this.environment,\r\n tenantId: this.realm,\r\n username: this.username,\r\n localAccountId: this.localAccountId,\r\n name: this.name,\r\n idTokenClaims: this.idTokenClaims,\r\n nativeAccountId: this.nativeAccountId\r\n };\r\n };\r\n /**\r\n * Generates account key from interface\r\n * @param accountInterface\r\n */\r\n AccountEntity.generateAccountCacheKey = function (accountInterface) {\r\n var accountKey = [\r\n accountInterface.homeAccountId,\r\n accountInterface.environment || Constants.EMPTY_STRING,\r\n accountInterface.tenantId || Constants.EMPTY_STRING,\r\n ];\r\n return accountKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Build Account cache from IdToken, clientInfo and authority/policy. Associated with AAD.\r\n * @param clientInfo\r\n * @param authority\r\n * @param idToken\r\n * @param policy\r\n */\r\n AccountEntity.createAccount = function (clientInfo, homeAccountId, idToken, authority, cloudGraphHostName, msGraphHost, environment, nativeAccountId) {\r\n var _a, _b, _c, _d, _e, _f;\r\n var account = new AccountEntity();\r\n account.authorityType = CacheAccountType.MSSTS_ACCOUNT_TYPE;\r\n account.clientInfo = clientInfo;\r\n account.homeAccountId = homeAccountId;\r\n account.nativeAccountId = nativeAccountId;\r\n var env = environment || (authority && authority.getPreferredCache());\r\n if (!env) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n account.environment = env;\r\n // non AAD scenarios can have empty realm\r\n account.realm = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.tid) || Constants.EMPTY_STRING;\r\n if (idToken) {\r\n account.idTokenClaims = idToken.claims;\r\n // How do you account for MSA CID here?\r\n account.localAccountId = ((_b = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _b === void 0 ? void 0 : _b.oid) || ((_c = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _c === void 0 ? void 0 : _c.sub) || Constants.EMPTY_STRING;\r\n /*\r\n * In B2C scenarios the emails claim is used instead of preferred_username and it is an array.\r\n * In most cases it will contain a single email. This field should not be relied upon if a custom\r\n * policy is configured to return more than 1 email.\r\n */\r\n var preferredUsername = (_d = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _d === void 0 ? void 0 : _d.preferred_username;\r\n var email = ((_e = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _e === void 0 ? void 0 : _e.emails) ? idToken.claims.emails[0] : null;\r\n account.username = preferredUsername || email || Constants.EMPTY_STRING;\r\n account.name = (_f = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _f === void 0 ? void 0 : _f.name;\r\n }\r\n account.cloudGraphHostName = cloudGraphHostName;\r\n account.msGraphHost = msGraphHost;\r\n return account;\r\n };\r\n /**\r\n * Builds non-AAD/ADFS account.\r\n * @param authority\r\n * @param idToken\r\n */\r\n AccountEntity.createGenericAccount = function (homeAccountId, idToken, authority, cloudGraphHostName, msGraphHost, environment) {\r\n var _a, _b, _c, _d;\r\n var account = new AccountEntity();\r\n account.authorityType = (authority &&\r\n authority.authorityType === AuthorityType.Adfs) ? CacheAccountType.ADFS_ACCOUNT_TYPE : CacheAccountType.GENERIC_ACCOUNT_TYPE;\r\n account.homeAccountId = homeAccountId;\r\n // non AAD scenarios can have empty realm\r\n account.realm = Constants.EMPTY_STRING;\r\n var env = environment || authority && authority.getPreferredCache();\r\n if (!env) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n if (idToken) {\r\n // How do you account for MSA CID here?\r\n account.localAccountId = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.oid) || ((_b = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _b === void 0 ? void 0 : _b.sub) || Constants.EMPTY_STRING;\r\n // upn claim for most ADFS scenarios\r\n account.username = ((_c = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _c === void 0 ? void 0 : _c.upn) || Constants.EMPTY_STRING;\r\n account.name = ((_d = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _d === void 0 ? void 0 : _d.name) || Constants.EMPTY_STRING;\r\n account.idTokenClaims = idToken === null || idToken === void 0 ? void 0 : idToken.claims;\r\n }\r\n account.environment = env;\r\n account.cloudGraphHostName = cloudGraphHostName;\r\n account.msGraphHost = msGraphHost;\r\n /*\r\n * add uniqueName to claims\r\n * account.name = idToken.claims.uniqueName;\r\n */\r\n return account;\r\n };\r\n /**\r\n * Generate HomeAccountId from server response\r\n * @param serverClientInfo\r\n * @param authType\r\n */\r\n AccountEntity.generateHomeAccountId = function (serverClientInfo, authType, logger, cryptoObj, idToken) {\r\n var _a;\r\n var accountId = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.sub) ? idToken.claims.sub : Constants.EMPTY_STRING;\r\n // since ADFS does not have tid and does not set client_info\r\n if (authType === AuthorityType.Adfs || authType === AuthorityType.Dsts) {\r\n return accountId;\r\n }\r\n // for cases where there is clientInfo\r\n if (serverClientInfo) {\r\n try {\r\n var clientInfo = buildClientInfo(serverClientInfo, cryptoObj);\r\n if (!StringUtils.isEmpty(clientInfo.uid) && !StringUtils.isEmpty(clientInfo.utid)) {\r\n return \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid;\r\n }\r\n }\r\n catch (e) { }\r\n }\r\n // default to \"sub\" claim\r\n logger.verbose(\"No client info in response\");\r\n return accountId;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AccountEntity.isAccountEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"localAccountId\") &&\r\n entity.hasOwnProperty(\"username\") &&\r\n entity.hasOwnProperty(\"authorityType\"));\r\n };\r\n /**\r\n * Helper function to determine whether 2 accountInfo objects represent the same account\r\n * @param accountA\r\n * @param accountB\r\n * @param compareClaims - If set to true idTokenClaims will also be compared to determine account equality\r\n */\r\n AccountEntity.accountInfoIsEqual = function (accountA, accountB, compareClaims) {\r\n if (!accountA || !accountB) {\r\n return false;\r\n }\r\n var claimsMatch = true; // default to true so as to not fail comparison below if compareClaims: false\r\n if (compareClaims) {\r\n var accountAClaims = (accountA.idTokenClaims || {});\r\n var accountBClaims = (accountB.idTokenClaims || {});\r\n // issued at timestamp and nonce are expected to change each time a new id token is acquired\r\n claimsMatch = (accountAClaims.iat === accountBClaims.iat) &&\r\n (accountAClaims.nonce === accountBClaims.nonce);\r\n }\r\n return (accountA.homeAccountId === accountB.homeAccountId) &&\r\n (accountA.localAccountId === accountB.localAccountId) &&\r\n (accountA.username === accountB.username) &&\r\n (accountA.tenantId === accountB.tenantId) &&\r\n (accountA.environment === accountB.environment) &&\r\n (accountA.nativeAccountId === accountB.nativeAccountId) &&\r\n claimsMatch;\r\n };\r\n return AccountEntity;\r\n}());\n\nexport { AccountEntity };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { Separators, APP_METADATA } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * APP_METADATA Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key: appmetadata--\r\n *\r\n * Value:\r\n * {\r\n * clientId: client ID of the application\r\n * environment: entity that issued the token, represented as a full host\r\n * familyId: Family ID identifier, '1' represents Microsoft Family\r\n * }\r\n */\r\nvar AppMetadataEntity = /** @class */ (function () {\r\n function AppMetadataEntity() {\r\n }\r\n /**\r\n * Generate AppMetadata Cache Key as per the schema: appmetadata--\r\n */\r\n AppMetadataEntity.prototype.generateAppMetadataKey = function () {\r\n return AppMetadataEntity.generateAppMetadataCacheKey(this.environment, this.clientId);\r\n };\r\n /**\r\n * Generate AppMetadata Cache Key\r\n */\r\n AppMetadataEntity.generateAppMetadataCacheKey = function (environment, clientId) {\r\n var appMetaDataKeyArray = [\r\n APP_METADATA,\r\n environment,\r\n clientId,\r\n ];\r\n return appMetaDataKeyArray.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Creates AppMetadataEntity\r\n * @param clientId\r\n * @param environment\r\n * @param familyId\r\n */\r\n AppMetadataEntity.createAppMetadataEntity = function (clientId, environment, familyId) {\r\n var appMetadata = new AppMetadataEntity();\r\n appMetadata.clientId = clientId;\r\n appMetadata.environment = environment;\r\n if (familyId) {\r\n appMetadata.familyId = familyId;\r\n }\r\n return appMetadata;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AppMetadataEntity.isAppMetadataEntity = function (key, entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (key.indexOf(APP_METADATA) === 0 &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"environment\"));\r\n };\r\n return AppMetadataEntity;\r\n}());\n\nexport { AppMetadataEntity };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { AUTHORITY_METADATA_CONSTANTS } from '../../utils/Constants.js';\nimport { TimeUtils } from '../../utils/TimeUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AuthorityMetadataEntity = /** @class */ (function () {\r\n function AuthorityMetadataEntity() {\r\n this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\r\n }\r\n /**\r\n * Update the entity with new aliases, preferred_cache and preferred_network values\r\n * @param metadata\r\n * @param fromNetwork\r\n */\r\n AuthorityMetadataEntity.prototype.updateCloudDiscoveryMetadata = function (metadata, fromNetwork) {\r\n this.aliases = metadata.aliases;\r\n this.preferred_cache = metadata.preferred_cache;\r\n this.preferred_network = metadata.preferred_network;\r\n this.aliasesFromNetwork = fromNetwork;\r\n };\r\n /**\r\n * Update the entity with new endpoints\r\n * @param metadata\r\n * @param fromNetwork\r\n */\r\n AuthorityMetadataEntity.prototype.updateEndpointMetadata = function (metadata, fromNetwork) {\r\n this.authorization_endpoint = metadata.authorization_endpoint;\r\n this.token_endpoint = metadata.token_endpoint;\r\n this.end_session_endpoint = metadata.end_session_endpoint;\r\n this.issuer = metadata.issuer;\r\n this.endpointsFromNetwork = fromNetwork;\r\n this.jwks_uri = metadata.jwks_uri;\r\n };\r\n /**\r\n * Save the authority that was used to create this cache entry\r\n * @param authority\r\n */\r\n AuthorityMetadataEntity.prototype.updateCanonicalAuthority = function (authority) {\r\n this.canonical_authority = authority;\r\n };\r\n /**\r\n * Reset the exiresAt value\r\n */\r\n AuthorityMetadataEntity.prototype.resetExpiresAt = function () {\r\n this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\r\n };\r\n /**\r\n * Returns whether or not the data needs to be refreshed\r\n */\r\n AuthorityMetadataEntity.prototype.isExpired = function () {\r\n return this.expiresAt <= TimeUtils.nowSeconds();\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AuthorityMetadataEntity.isAuthorityMetadataEntity = function (key, entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) === 0 &&\r\n entity.hasOwnProperty(\"aliases\") &&\r\n entity.hasOwnProperty(\"preferred_cache\") &&\r\n entity.hasOwnProperty(\"preferred_network\") &&\r\n entity.hasOwnProperty(\"canonical_authority\") &&\r\n entity.hasOwnProperty(\"authorization_endpoint\") &&\r\n entity.hasOwnProperty(\"token_endpoint\") &&\r\n entity.hasOwnProperty(\"issuer\") &&\r\n entity.hasOwnProperty(\"aliasesFromNetwork\") &&\r\n entity.hasOwnProperty(\"endpointsFromNetwork\") &&\r\n entity.hasOwnProperty(\"expiresAt\") &&\r\n entity.hasOwnProperty(\"jwks_uri\"));\r\n };\r\n return AuthorityMetadataEntity;\r\n}());\n\nexport { AuthorityMetadataEntity };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CacheRecord = /** @class */ (function () {\r\n function CacheRecord(accountEntity, idTokenEntity, accessTokenEntity, refreshTokenEntity, appMetadataEntity) {\r\n this.account = accountEntity || null;\r\n this.idToken = idTokenEntity || null;\r\n this.accessToken = accessTokenEntity || null;\r\n this.refreshToken = refreshTokenEntity || null;\r\n this.appMetadata = appMetadataEntity || null;\r\n }\r\n return CacheRecord;\r\n}());\n\nexport { CacheRecord };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { CredentialType, CacheType, Separators, Constants, AuthenticationScheme } from '../../utils/Constants.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base type for credentials to be stored in the cache: eg: ACCESS_TOKEN, ID_TOKEN etc\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key: -------\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, usually only used for refresh tokens\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * tokenType: Matches the authentication scheme for which the token was issued (i.e. Bearer or pop)\r\n * requestedClaimsHash: Matches the SHA 256 hash of the claims object included in the token request\r\n * userAssertionHash: Matches the SHA 256 hash of the obo_assertion for the OBO flow\r\n * }\r\n */\r\nvar CredentialEntity = /** @class */ (function () {\r\n function CredentialEntity() {\r\n }\r\n /**\r\n * Generate Account Id key component as per the schema: -\r\n */\r\n CredentialEntity.prototype.generateAccountId = function () {\r\n return CredentialEntity.generateAccountIdForCacheKey(this.homeAccountId, this.environment);\r\n };\r\n /**\r\n * Generate Credential Id key component as per the schema: --\r\n */\r\n CredentialEntity.prototype.generateCredentialId = function () {\r\n return CredentialEntity.generateCredentialIdForCacheKey(this.credentialType, this.clientId, this.realm, this.familyId);\r\n };\r\n /**\r\n * Generate target key component as per schema: \r\n */\r\n CredentialEntity.prototype.generateTarget = function () {\r\n return CredentialEntity.generateTargetForCacheKey(this.target);\r\n };\r\n /**\r\n * generates credential key\r\n */\r\n CredentialEntity.prototype.generateCredentialKey = function () {\r\n return CredentialEntity.generateCredentialCacheKey(this.homeAccountId, this.environment, this.credentialType, this.clientId, this.realm, this.target, this.familyId, this.tokenType, this.requestedClaimsHash);\r\n };\r\n /**\r\n * returns the type of the cache (in this case credential)\r\n */\r\n CredentialEntity.prototype.generateType = function () {\r\n switch (this.credentialType) {\r\n case CredentialType.ID_TOKEN:\r\n return CacheType.ID_TOKEN;\r\n case CredentialType.ACCESS_TOKEN:\r\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:\r\n return CacheType.ACCESS_TOKEN;\r\n case CredentialType.REFRESH_TOKEN:\r\n return CacheType.REFRESH_TOKEN;\r\n default: {\r\n throw ClientAuthError.createUnexpectedCredentialTypeError();\r\n }\r\n }\r\n };\r\n /**\r\n * generates credential key\r\n * -\\-----\r\n */\r\n CredentialEntity.generateCredentialCacheKey = function (homeAccountId, environment, credentialType, clientId, realm, target, familyId, tokenType, requestedClaimsHash) {\r\n var credentialKey = [\r\n this.generateAccountIdForCacheKey(homeAccountId, environment),\r\n this.generateCredentialIdForCacheKey(credentialType, clientId, realm, familyId),\r\n this.generateTargetForCacheKey(target),\r\n this.generateClaimsHashForCacheKey(requestedClaimsHash),\r\n this.generateSchemeForCacheKey(tokenType)\r\n ];\r\n return credentialKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * generates Account Id for keys\r\n * @param homeAccountId\r\n * @param environment\r\n */\r\n CredentialEntity.generateAccountIdForCacheKey = function (homeAccountId, environment) {\r\n var accountId = [homeAccountId, environment];\r\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generates Credential Id for keys\r\n * @param credentialType\r\n * @param realm\r\n * @param clientId\r\n * @param familyId\r\n */\r\n CredentialEntity.generateCredentialIdForCacheKey = function (credentialType, clientId, realm, familyId) {\r\n var clientOrFamilyId = credentialType === CredentialType.REFRESH_TOKEN\r\n ? familyId || clientId\r\n : clientId;\r\n var credentialId = [\r\n credentialType,\r\n clientOrFamilyId,\r\n realm || Constants.EMPTY_STRING,\r\n ];\r\n return credentialId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generate target key component as per schema: \r\n */\r\n CredentialEntity.generateTargetForCacheKey = function (scopes) {\r\n return (scopes || Constants.EMPTY_STRING).toLowerCase();\r\n };\r\n /**\r\n * Generate requested claims key component as per schema: \r\n */\r\n CredentialEntity.generateClaimsHashForCacheKey = function (requestedClaimsHash) {\r\n return (requestedClaimsHash || Constants.EMPTY_STRING).toLowerCase();\r\n };\r\n /**\r\n * Generate scheme key componenet as per schema: \r\n */\r\n CredentialEntity.generateSchemeForCacheKey = function (tokenType) {\r\n /*\r\n * PoP Tokens and SSH certs include scheme in cache key\r\n * Cast to lowercase to handle \"bearer\" from ADFS\r\n */\r\n return (tokenType && tokenType.toLowerCase() !== AuthenticationScheme.BEARER.toLowerCase()) ? tokenType.toLowerCase() : Constants.EMPTY_STRING;\r\n };\r\n return CredentialEntity;\r\n}());\n\nexport { CredentialEntity };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ID_TOKEN Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-idtoken-clientId-contoso.com-\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * }\r\n */\r\nvar IdTokenEntity = /** @class */ (function (_super) {\r\n __extends(IdTokenEntity, _super);\r\n function IdTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create IdTokenEntity\r\n * @param homeAccountId\r\n * @param authenticationResult\r\n * @param clientId\r\n * @param authority\r\n */\r\n IdTokenEntity.createIdTokenEntity = function (homeAccountId, environment, idToken, clientId, tenantId) {\r\n var idTokenEntity = new IdTokenEntity();\r\n idTokenEntity.credentialType = CredentialType.ID_TOKEN;\r\n idTokenEntity.homeAccountId = homeAccountId;\r\n idTokenEntity.environment = environment;\r\n idTokenEntity.clientId = clientId;\r\n idTokenEntity.secret = idToken;\r\n idTokenEntity.realm = tenantId;\r\n return idTokenEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n IdTokenEntity.isIdTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity[\"credentialType\"] === CredentialType.ID_TOKEN);\r\n };\r\n return IdTokenEntity;\r\n}(CredentialEntity));\n\nexport { IdTokenEntity };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * REFRESH_TOKEN Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-refreshtoken-clientId--\r\n *\r\n * Value:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, '1' represents Microsoft Family\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * }\r\n */\r\nvar RefreshTokenEntity = /** @class */ (function (_super) {\r\n __extends(RefreshTokenEntity, _super);\r\n function RefreshTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create RefreshTokenEntity\r\n * @param homeAccountId\r\n * @param authenticationResult\r\n * @param clientId\r\n * @param authority\r\n */\r\n RefreshTokenEntity.createRefreshTokenEntity = function (homeAccountId, environment, refreshToken, clientId, familyId, userAssertionHash) {\r\n var rtEntity = new RefreshTokenEntity();\r\n rtEntity.clientId = clientId;\r\n rtEntity.credentialType = CredentialType.REFRESH_TOKEN;\r\n rtEntity.environment = environment;\r\n rtEntity.homeAccountId = homeAccountId;\r\n rtEntity.secret = refreshToken;\r\n rtEntity.userAssertionHash = userAssertionHash;\r\n if (familyId)\r\n rtEntity.familyId = familyId;\r\n return rtEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n RefreshTokenEntity.isRefreshTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity[\"credentialType\"] === CredentialType.REFRESH_TOKEN);\r\n };\r\n return RefreshTokenEntity;\r\n}(CredentialEntity));\n\nexport { RefreshTokenEntity };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { SERVER_TELEM_CONSTANTS } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ServerTelemetryEntity = /** @class */ (function () {\r\n function ServerTelemetryEntity() {\r\n this.failedRequests = [];\r\n this.errors = [];\r\n this.cacheHits = 0;\r\n }\r\n /**\r\n * validates if a given cache entry is \"Telemetry\", parses \r\n * @param key\r\n * @param entity\r\n */\r\n ServerTelemetryEntity.isServerTelemetryEntity = function (key, entity) {\r\n var validateKey = key.indexOf(SERVER_TELEM_CONSTANTS.CACHE_KEY) === 0;\r\n var validateEntity = true;\r\n if (entity) {\r\n validateEntity =\r\n entity.hasOwnProperty(\"failedRequests\") &&\r\n entity.hasOwnProperty(\"errors\") &&\r\n entity.hasOwnProperty(\"cacheHits\");\r\n }\r\n return validateKey && validateEntity;\r\n };\r\n return ServerTelemetryEntity;\r\n}());\n\nexport { ServerTelemetryEntity };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { ThrottlingConstants } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ThrottlingEntity = /** @class */ (function () {\r\n function ThrottlingEntity() {\r\n }\r\n /**\r\n * validates if a given cache entry is \"Throttling\", parses \r\n * @param key\r\n * @param entity\r\n */\r\n ThrottlingEntity.isThrottlingEntity = function (key, entity) {\r\n var validateKey = false;\r\n if (key) {\r\n validateKey = key.indexOf(ThrottlingConstants.THROTTLING_PREFIX) === 0;\r\n }\r\n var validateEntity = true;\r\n if (entity) {\r\n validateEntity = entity.hasOwnProperty(\"throttleTime\");\r\n }\r\n return validateKey && validateEntity;\r\n };\r\n return ThrottlingEntity;\r\n}());\n\nexport { ThrottlingEntity };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class instance helps track the memory changes facilitating\r\n * decisions to read from and write to the persistent cache\r\n */ var TokenCacheContext = /** @class */ (function () {\r\n function TokenCacheContext(tokenCache, hasChanged) {\r\n this.cache = tokenCache;\r\n this.hasChanged = hasChanged;\r\n }\r\n Object.defineProperty(TokenCacheContext.prototype, \"cacheHasChanged\", {\r\n /**\r\n * boolean which indicates the changes in cache\r\n */\r\n get: function () {\r\n return this.hasChanged;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TokenCacheContext.prototype, \"tokenCache\", {\r\n /**\r\n * function to retrieve the token cache\r\n */\r\n get: function () {\r\n return this.cache;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return TokenCacheContext;\r\n}());\n\nexport { TokenCacheContext };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign, __spreadArrays } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\nimport { Separators, AADServerParamKeys, AuthenticationScheme, GrantType, PromptValue, HeaderNames } from '../utils/Constants.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { buildClientInfo, buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { RequestValidator } from '../request/RequestValidator.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Oauth2.0 Authorization Code client\r\n */\r\nvar AuthorizationCodeClient = /** @class */ (function (_super) {\r\n __extends(AuthorizationCodeClient, _super);\r\n function AuthorizationCodeClient(configuration, performanceClient) {\r\n var _this = _super.call(this, configuration, performanceClient) || this;\r\n // Flag to indicate if client is for hybrid spa auth code redemption\r\n _this.includeRedirectUri = true;\r\n return _this;\r\n }\r\n /**\r\n * Creates the URL of the authorization request letting the user input credentials and consent to the\r\n * application. The URL target the /authorize endpoint of the authority configured in the\r\n * application object.\r\n *\r\n * Once the user inputs their credentials and consents, the authority will send a response to the redirect URI\r\n * sent in the request and should contain an authorization code, which can then be used to acquire tokens via\r\n * acquireToken(AuthorizationCodeRequest)\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.getAuthCodeUrl = function (request) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var queryString;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.GetAuthCodeUrl, request.correlationId);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthClientCreateQueryString, request.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeUrlQueryString(request)];\r\n case 1:\r\n queryString = _c.sent();\r\n return [2 /*return*/, UrlString.appendQueryString(this.authority.authorizationEndpoint, queryString)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * API to acquire a token in exchange of 'authorization_code` acquired by the user in the first leg of the\r\n * authorization_code_grant\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.acquireToken = function (request, authCodePayload) {\r\n var _a, _b, _c, _d, _e, _f;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var atsMeasurement, reqTimestamp, response, requestId, httpVerAuthority, responseHandler;\r\n var _this = this;\r\n return __generator(this, function (_g) {\r\n switch (_g.label) {\r\n case 0:\r\n if (!request || !request.code) {\r\n throw ClientAuthError.createTokenRequestCannotBeMadeError();\r\n }\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthClientAcquireToken, request.correlationId);\r\n atsMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(\"AuthCodeClientAcquireToken\", request.correlationId);\r\n this.logger.info(\"in acquireToken call in auth-code client\");\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.AuthClientExecuteTokenRequest, request.correlationId);\r\n return [4 /*yield*/, this.executeTokenRequest(this.authority, request)];\r\n case 1:\r\n response = _g.sent();\r\n requestId = (_d = response.headers) === null || _d === void 0 ? void 0 : _d[HeaderNames.X_MS_REQUEST_ID];\r\n httpVerAuthority = (_e = response.headers) === null || _e === void 0 ? void 0 : _e[HeaderNames.X_MS_HTTP_VERSION];\r\n if (httpVerAuthority) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.addStaticFields({\r\n httpVerAuthority: httpVerAuthority\r\n });\r\n }\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin, this.performanceClient);\r\n // Validate response. This function throws a server error if an error is returned by the server.\r\n responseHandler.validateTokenResponse(response.body);\r\n (_f = this.performanceClient) === null || _f === void 0 ? void 0 : _f.setPreQueueTime(PerformanceEvents.HandleServerTokenResponse, request.correlationId);\r\n return [2 /*return*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, authCodePayload, undefined, undefined, undefined, requestId).then(function (result) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n success: true\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.logger.verbose(\"Error in fetching token in ACC\", request.correlationId);\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Handles the hash fragment response from public client code request. Returns a code response used by\r\n * the client to exchange for a token in acquireToken.\r\n * @param hashFragment\r\n */\r\n AuthorizationCodeClient.prototype.handleFragmentResponse = function (hashFragment, cachedState) {\r\n // Handle responses.\r\n var responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, null, null);\r\n // Deserialize hash fragment response parameters.\r\n var hashUrlString = new UrlString(hashFragment);\r\n // Deserialize hash fragment response parameters.\r\n var serverParams = UrlString.getDeserializedHash(hashUrlString.getHash());\r\n // Get code response\r\n responseHandler.validateServerAuthorizationCodeResponse(serverParams, cachedState, this.cryptoUtils);\r\n // throw when there is no auth code in the response\r\n if (!serverParams.code) {\r\n throw ClientAuthError.createNoAuthCodeInServerResponseError();\r\n }\r\n return __assign(__assign({}, serverParams), { \r\n // Code param is optional in ServerAuthorizationCodeResponse but required in AuthorizationCodePaylod\r\n code: serverParams.code });\r\n };\r\n /**\r\n * Used to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param authorityUri\r\n */\r\n AuthorizationCodeClient.prototype.getLogoutUri = function (logoutRequest) {\r\n // Throw error if logoutRequest is null/undefined\r\n if (!logoutRequest) {\r\n throw ClientConfigurationError.createEmptyLogoutRequestError();\r\n }\r\n var queryString = this.createLogoutUrlQueryString(logoutRequest);\r\n // Construct logout URI\r\n return UrlString.appendQueryString(this.authority.endSessionEndpoint, queryString);\r\n };\r\n /**\r\n * Executes POST request to token endpoint\r\n * @param authority\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.executeTokenRequest = function (authority, request) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var queryParametersString, endpoint, requestBody, ccsCredential, clientInfo, headers, thumbprint;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthClientExecuteTokenRequest, request.correlationId);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthClientCreateTokenRequestBody, request.correlationId);\r\n queryParametersString = this.createTokenQueryParameters(request);\r\n endpoint = UrlString.appendQueryString(authority.tokenEndpoint, queryParametersString);\r\n return [4 /*yield*/, this.createTokenRequestBody(request)];\r\n case 1:\r\n requestBody = _c.sent();\r\n ccsCredential = undefined;\r\n if (request.clientInfo) {\r\n try {\r\n clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils);\r\n ccsCredential = {\r\n credential: \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n };\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\r\n }\r\n }\r\n headers = this.createTokenRequestHeaders(ccsCredential || request.ccsCredential);\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: authority.canonicalAuthority,\r\n scopes: request.scopes,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n return [2 /*return*/, this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a map for all the params to be sent to the service\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createTokenRequestBody = function (request) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var parameterBuilder, clientAssertion, popTokenGenerator, reqCnfData, correlationId, ccsCred, clientInfo, clientInfo;\r\n var _c;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthClientCreateTokenRequestBody, request.correlationId);\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n /*\r\n * For hybrid spa flow, there will be a code but no verifier\r\n * In this scenario, don't include redirect uri as auth code will not be bound to redirect URI\r\n */\r\n if (!this.includeRedirectUri) {\r\n // Just validate\r\n RequestValidator.validateRedirectUri(request.redirectUri);\r\n }\r\n else {\r\n // Validate and include redirect uri\r\n parameterBuilder.addRedirectUri(request.redirectUri);\r\n }\r\n // Add scope array, parameter builder will add default scopes and dedupe\r\n parameterBuilder.addScopes(request.scopes);\r\n // add code: user set, not validated\r\n parameterBuilder.addAuthorizationCode(request.code);\r\n // Add library metadata\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n parameterBuilder.addThrottling();\r\n if (this.serverTelemetryManager) {\r\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\r\n }\r\n // add code_verifier if passed\r\n if (request.codeVerifier) {\r\n parameterBuilder.addCodeVerifier(request.codeVerifier);\r\n }\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n parameterBuilder.addGrantType(GrantType.AUTHORIZATION_CODE_GRANT);\r\n parameterBuilder.addClientInfo();\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils, this.performanceClient);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.PopTokenGenerateCnf, request.correlationId);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n reqCnfData = _d.sent();\r\n // SPA PoP requires full Base64Url encoded req_cnf string (unhashed)\r\n parameterBuilder.addPopToken(reqCnfData.reqCnfString);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n if (request.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (request.sshJwk) {\r\n parameterBuilder.addSshJwk(request.sshJwk);\r\n }\r\n else {\r\n throw ClientConfigurationError.createMissingSshJwkError();\r\n }\r\n }\r\n _d.label = 3;\r\n case 3:\r\n correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n ccsCred = undefined;\r\n if (request.clientInfo) {\r\n try {\r\n clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils);\r\n ccsCred = {\r\n credential: \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n };\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\r\n }\r\n }\r\n else {\r\n ccsCred = request.ccsCredential;\r\n }\r\n // Adds these as parameters in the request instead of headers to prevent CORS preflight request\r\n if (this.config.systemOptions.preventCorsPreflight && ccsCred) {\r\n switch (ccsCred.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n parameterBuilder.addCcsUpn(ccsCred.credential);\r\n break;\r\n }\r\n }\r\n if (request.tokenBodyParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenBodyParameters);\r\n }\r\n // Add hybrid spa parameters if not already provided\r\n if (request.enableSpaAuthorizationCode && (!request.tokenBodyParameters || !request.tokenBodyParameters[AADServerParamKeys.RETURN_SPA_CODE])) {\r\n parameterBuilder.addExtraQueryParameters((_c = {},\r\n _c[AADServerParamKeys.RETURN_SPA_CODE] = \"1\",\r\n _c));\r\n }\r\n return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This API validates the `AuthorizationCodeUrlRequest` and creates a URL\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createAuthCodeUrlQueryString = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var parameterBuilder, requestScopes, correlationId, accountSid, accountLoginHintClaim, clientInfo, clientInfo, clientInfo, popTokenGenerator, reqCnfData;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthClientCreateQueryString, request.correlationId);\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n requestScopes = __spreadArrays(request.scopes || [], request.extraScopesToConsent || []);\r\n parameterBuilder.addScopes(requestScopes);\r\n // validate the redirectUri (to be a non null value)\r\n parameterBuilder.addRedirectUri(request.redirectUri);\r\n correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n // add response_mode. If not passed in it defaults to query.\r\n parameterBuilder.addResponseMode(request.responseMode);\r\n // add response_type = code\r\n parameterBuilder.addResponseTypeCode();\r\n // add library info parameters\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n // add client_info=1\r\n parameterBuilder.addClientInfo();\r\n if (request.codeChallenge && request.codeChallengeMethod) {\r\n parameterBuilder.addCodeChallengeParams(request.codeChallenge, request.codeChallengeMethod);\r\n }\r\n if (request.prompt) {\r\n parameterBuilder.addPrompt(request.prompt);\r\n }\r\n if (request.domainHint) {\r\n parameterBuilder.addDomainHint(request.domainHint);\r\n }\r\n // Add sid or loginHint with preference for login_hint claim (in request) -> sid -> loginHint (upn/email) -> username of AccountInfo object\r\n if (request.prompt !== PromptValue.SELECT_ACCOUNT) {\r\n // AAD will throw if prompt=select_account is passed with an account hint\r\n if (request.sid && request.prompt === PromptValue.NONE) {\r\n // SessionID is only used in silent calls\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from request\");\r\n parameterBuilder.addSid(request.sid);\r\n }\r\n else if (request.account) {\r\n accountSid = this.extractAccountSid(request.account);\r\n accountLoginHintClaim = this.extractLoginHint(request.account);\r\n // If login_hint claim is present, use it over sid/username\r\n if (accountLoginHintClaim) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: login_hint claim present on account\");\r\n parameterBuilder.addLoginHint(accountLoginHintClaim);\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header\");\r\n }\r\n }\r\n else if (accountSid && request.prompt === PromptValue.NONE) {\r\n /*\r\n * If account and loginHint are provided, we will check account first for sid before adding loginHint\r\n * SessionId is only used in silent calls\r\n */\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from account\");\r\n parameterBuilder.addSid(accountSid);\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header\");\r\n }\r\n }\r\n else if (request.loginHint) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from request\");\r\n parameterBuilder.addLoginHint(request.loginHint);\r\n parameterBuilder.addCcsUpn(request.loginHint);\r\n }\r\n else if (request.account.username) {\r\n // Fallback to account username if provided\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from account\");\r\n parameterBuilder.addLoginHint(request.account.username);\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header\");\r\n }\r\n }\r\n }\r\n else if (request.loginHint) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: No account, adding login_hint from request\");\r\n parameterBuilder.addLoginHint(request.loginHint);\r\n parameterBuilder.addCcsUpn(request.loginHint);\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints\");\r\n }\r\n if (request.nonce) {\r\n parameterBuilder.addNonce(request.nonce);\r\n }\r\n if (request.state) {\r\n parameterBuilder.addState(request.state);\r\n }\r\n if (!StringUtils.isEmpty(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n if (request.extraQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.extraQueryParameters);\r\n }\r\n if (!request.nativeBroker) return [3 /*break*/, 2];\r\n // signal ests that this is a WAM call\r\n parameterBuilder.addNativeBroker();\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n reqCnfData = _b.sent();\r\n parameterBuilder.addPopToken(reqCnfData.reqCnfHash);\r\n _b.label = 2;\r\n case 2: return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This API validates the `EndSessionRequest` and creates a URL\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createLogoutUrlQueryString = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n if (request.postLogoutRedirectUri) {\r\n parameterBuilder.addPostLogoutRedirectUri(request.postLogoutRedirectUri);\r\n }\r\n if (request.correlationId) {\r\n parameterBuilder.addCorrelationId(request.correlationId);\r\n }\r\n if (request.idTokenHint) {\r\n parameterBuilder.addIdTokenHint(request.idTokenHint);\r\n }\r\n if (request.state) {\r\n parameterBuilder.addState(request.state);\r\n }\r\n if (request.logoutHint) {\r\n parameterBuilder.addLogoutHint(request.logoutHint);\r\n }\r\n if (request.extraQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.extraQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n /**\r\n * Helper to get sid from account. Returns null if idTokenClaims are not present or sid is not present.\r\n * @param account\r\n */\r\n AuthorizationCodeClient.prototype.extractAccountSid = function (account) {\r\n var _a;\r\n return ((_a = account.idTokenClaims) === null || _a === void 0 ? void 0 : _a.sid) || null;\r\n };\r\n AuthorizationCodeClient.prototype.extractLoginHint = function (account) {\r\n var _a;\r\n return ((_a = account.idTokenClaims) === null || _a === void 0 ? void 0 : _a.login_hint) || null;\r\n };\r\n return AuthorizationCodeClient;\r\n}(BaseClient));\n\nexport { AuthorizationCodeClient };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { buildClientConfiguration } from '../config/ClientConfiguration.js';\nimport { NetworkManager } from '../network/NetworkManager.js';\nimport { Logger } from '../logger/Logger.js';\nimport { HeaderNames, Constants } from '../utils/Constants.js';\nimport { name, version } from '../packageMetadata.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base application class which will construct requests to send to and handle responses from the Microsoft STS using the authorization code flow.\r\n */\r\nvar BaseClient = /** @class */ (function () {\r\n function BaseClient(configuration, performanceClient) {\r\n // Set the configuration\r\n this.config = buildClientConfiguration(configuration);\r\n // Initialize the logger\r\n this.logger = new Logger(this.config.loggerOptions, name, version);\r\n // Initialize crypto\r\n this.cryptoUtils = this.config.cryptoInterface;\r\n // Initialize storage interface\r\n this.cacheManager = this.config.storageInterface;\r\n // Set the network interface\r\n this.networkClient = this.config.networkInterface;\r\n // Set the NetworkManager\r\n this.networkManager = new NetworkManager(this.networkClient, this.cacheManager);\r\n // Set TelemetryManager\r\n this.serverTelemetryManager = this.config.serverTelemetryManager;\r\n // set Authority\r\n this.authority = this.config.authOptions.authority;\r\n // set performance telemetry client\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Creates default headers for requests to token endpoint\r\n */\r\n BaseClient.prototype.createTokenRequestHeaders = function (ccsCred) {\r\n var headers = {};\r\n headers[HeaderNames.CONTENT_TYPE] = Constants.URL_FORM_CONTENT_TYPE;\r\n if (!this.config.systemOptions.preventCorsPreflight && ccsCred) {\r\n switch (ccsCred.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n var clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\r\n headers[HeaderNames.CCS_HEADER] = \"Oid:\" + clientInfo.uid + \"@\" + clientInfo.utid;\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n headers[HeaderNames.CCS_HEADER] = \"UPN: \" + ccsCred.credential;\r\n break;\r\n }\r\n }\r\n return headers;\r\n };\r\n /**\r\n * Http post to token endpoint\r\n * @param tokenEndpoint\r\n * @param queryString\r\n * @param headers\r\n * @param thumbprint\r\n */\r\n BaseClient.prototype.executePostToTokenEndpoint = function (tokenEndpoint, queryString, headers, thumbprint) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.networkManager.sendPostRequest(thumbprint, tokenEndpoint, { body: queryString, headers: headers })];\r\n case 1:\r\n response = _a.sent();\r\n if (this.config.serverTelemetryManager && response.status < 500 && response.status !== 429) {\r\n // Telemetry data successfully logged by server, clear Telemetry cache\r\n this.config.serverTelemetryManager.clearTelemetryCache();\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates the authority object of the client. Endpoint discovery must be completed.\r\n * @param updatedAuthority\r\n */\r\n BaseClient.prototype.updateAuthority = function (updatedAuthority) {\r\n if (!updatedAuthority.discoveryComplete()) {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Updated authority has not completed endpoint discovery.\");\r\n }\r\n this.authority = updatedAuthority;\r\n };\r\n /**\r\n * Creates query string for the /token request\r\n * @param request\r\n */\r\n BaseClient.prototype.createTokenQueryParameters = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n if (request.tokenQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n return BaseClient;\r\n}());\n\nexport { BaseClient };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\nimport { AuthenticationScheme, GrantType, HeaderNames, Errors } from '../utils/Constants.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { ServerError } from '../error/ServerError.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\nimport { InteractionRequiredAuthError, InteractionRequiredAuthErrorMessage } from '../error/InteractionRequiredAuthError.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * OAuth2.0 refresh token client\r\n */\r\nvar RefreshTokenClient = /** @class */ (function (_super) {\r\n __extends(RefreshTokenClient, _super);\r\n function RefreshTokenClient(configuration, performanceClient) {\r\n return _super.call(this, configuration, performanceClient) || this;\r\n }\r\n RefreshTokenClient.prototype.acquireToken = function (request) {\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var atsMeasurement, reqTimestamp, response, httpVerToken, requestId, responseHandler;\r\n var _this = this;\r\n return __generator(this, function (_h) {\r\n switch (_h.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientAcquireToken, request.correlationId);\r\n atsMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(PerformanceEvents.RefreshTokenClientAcquireToken, request.correlationId);\r\n this.logger.verbose(\"RefreshTokenClientAcquireToken called\", request.correlationId);\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RefreshTokenClientExecuteTokenRequest, request.correlationId);\r\n return [4 /*yield*/, this.executeTokenRequest(request, this.authority)];\r\n case 1:\r\n response = _h.sent();\r\n httpVerToken = (_d = response.headers) === null || _d === void 0 ? void 0 : _d[HeaderNames.X_MS_HTTP_VERSION];\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.addStaticFields({\r\n refreshTokenSize: ((_e = response.body.refresh_token) === null || _e === void 0 ? void 0 : _e.length) || 0,\r\n });\r\n if (httpVerToken) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.addStaticFields({\r\n httpVerToken: httpVerToken,\r\n });\r\n }\r\n requestId = (_f = response.headers) === null || _f === void 0 ? void 0 : _f[HeaderNames.X_MS_REQUEST_ID];\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);\r\n responseHandler.validateTokenResponse(response.body);\r\n (_g = this.performanceClient) === null || _g === void 0 ? void 0 : _g.setPreQueueTime(PerformanceEvents.HandleServerTokenResponse, request.correlationId);\r\n return [2 /*return*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, undefined, undefined, true, request.forceCache, requestId).then(function (result) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n success: true\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.logger.verbose(\"Error in fetching refresh token\", request.correlationId);\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Gets cached refresh token and attaches to request, then calls acquireToken API\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.acquireTokenByRefreshToken = function (request) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isFOCI, noFamilyRTInCache, clientMismatchErrorWithFamilyRT;\r\n return __generator(this, function (_e) {\r\n // Cannot renew token if no request object is given.\r\n if (!request) {\r\n throw ClientConfigurationError.createEmptyTokenRequestError();\r\n }\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientAcquireTokenByRefreshToken, request.correlationId);\r\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n if (!request.account) {\r\n throw ClientAuthError.createNoAccountInSilentRequestError();\r\n }\r\n isFOCI = this.cacheManager.isAppMetadataFOCI(request.account.environment);\r\n // if the app is part of the family, retrive a Family refresh token if present and make a refreshTokenRequest\r\n if (isFOCI) {\r\n try {\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, true)];\r\n }\r\n catch (e) {\r\n noFamilyRTInCache = e instanceof InteractionRequiredAuthError && e.errorCode === InteractionRequiredAuthErrorMessage.noTokensFoundError.code;\r\n clientMismatchErrorWithFamilyRT = e instanceof ServerError && e.errorCode === Errors.INVALID_GRANT_ERROR && e.subError === Errors.CLIENT_MISMATCH_ERROR;\r\n // if family Refresh Token (FRT) cache acquisition fails or if client_mismatch error is seen with FRT, reattempt with application Refresh Token (ART)\r\n if (noFamilyRTInCache || clientMismatchErrorWithFamilyRT) {\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, false)];\r\n // throw in all other cases\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n // fall back to application refresh token acquisition\r\n (_d = this.performanceClient) === null || _d === void 0 ? void 0 : _d.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, false)];\r\n });\r\n });\r\n };\r\n /**\r\n * makes a network call to acquire tokens by exchanging RefreshToken available in userCache; throws if refresh token is not cached\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.acquireTokenWithCachedRefreshToken = function (request, foci) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var atsMeasurement, refreshToken, refreshTokenRequest;\r\n return __generator(this, function (_d) {\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n atsMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n this.logger.verbose(\"RefreshTokenClientAcquireTokenWithCachedRefreshToken called\", request.correlationId);\r\n refreshToken = this.cacheManager.getRefreshToken(request.account, foci);\r\n if (!refreshToken) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.discardMeasurement();\r\n throw InteractionRequiredAuthError.createNoTokensFoundError();\r\n }\r\n // attach cached RT size to the current measurement\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n success: true\r\n });\r\n refreshTokenRequest = __assign(__assign({}, request), { refreshToken: refreshToken.secret, authenticationScheme: request.authenticationScheme || AuthenticationScheme.BEARER, ccsCredential: {\r\n credential: request.account.homeAccountId,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n } });\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireToken, request.correlationId);\r\n return [2 /*return*/, this.acquireToken(refreshTokenRequest)];\r\n });\r\n });\r\n };\r\n /**\r\n * Constructs the network message and makes a NW call to the underlying secure token service\r\n * @param request\r\n * @param authority\r\n */\r\n RefreshTokenClient.prototype.executeTokenRequest = function (request, authority) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var acquireTokenMeasurement, queryParametersString, endpoint, requestBody, headers, thumbprint;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientExecuteTokenRequest, request.correlationId);\r\n acquireTokenMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(PerformanceEvents.RefreshTokenClientExecuteTokenRequest, request.correlationId);\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RefreshTokenClientCreateTokenRequestBody, request.correlationId);\r\n queryParametersString = this.createTokenQueryParameters(request);\r\n endpoint = UrlString.appendQueryString(authority.tokenEndpoint, queryParametersString);\r\n return [4 /*yield*/, this.createTokenRequestBody(request)];\r\n case 1:\r\n requestBody = _d.sent();\r\n headers = this.createTokenRequestHeaders(request.ccsCredential);\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: authority.canonicalAuthority,\r\n scopes: request.scopes,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n return [2 /*return*/, this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)\r\n .then(function (result) {\r\n acquireTokenMeasurement === null || acquireTokenMeasurement === void 0 ? void 0 : acquireTokenMeasurement.endMeasurement({\r\n success: true\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n acquireTokenMeasurement === null || acquireTokenMeasurement === void 0 ? void 0 : acquireTokenMeasurement.endMeasurement({\r\n success: false\r\n });\r\n throw error;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper function to create the token request body\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.createTokenRequestBody = function (request) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, acquireTokenMeasurement, parameterBuilder, clientAssertion, popTokenGenerator, reqCnfData, clientInfo;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientCreateTokenRequestBody, request.correlationId);\r\n correlationId = request.correlationId;\r\n acquireTokenMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(PerformanceEvents.BaseClientCreateTokenRequestHeaders, correlationId);\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n parameterBuilder.addScopes(request.scopes);\r\n parameterBuilder.addGrantType(GrantType.REFRESH_TOKEN_GRANT);\r\n parameterBuilder.addClientInfo();\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n parameterBuilder.addThrottling();\r\n if (this.serverTelemetryManager) {\r\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\r\n }\r\n parameterBuilder.addCorrelationId(correlationId);\r\n parameterBuilder.addRefreshToken(request.refreshToken);\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils, this.performanceClient);\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.PopTokenGenerateCnf, request.correlationId);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n reqCnfData = _d.sent();\r\n // SPA PoP requires full Base64Url encoded req_cnf string (unhashed)\r\n parameterBuilder.addPopToken(reqCnfData.reqCnfString);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n if (request.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (request.sshJwk) {\r\n parameterBuilder.addSshJwk(request.sshJwk);\r\n }\r\n else {\r\n acquireTokenMeasurement === null || acquireTokenMeasurement === void 0 ? void 0 : acquireTokenMeasurement.endMeasurement({\r\n success: false\r\n });\r\n throw ClientConfigurationError.createMissingSshJwkError();\r\n }\r\n }\r\n _d.label = 3;\r\n case 3:\r\n if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n if (this.config.systemOptions.preventCorsPreflight && request.ccsCredential) {\r\n switch (request.ccsCredential.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.ccsCredential.credential);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n parameterBuilder.addCcsUpn(request.ccsCredential.credential);\r\n break;\r\n }\r\n }\r\n acquireTokenMeasurement === null || acquireTokenMeasurement === void 0 ? void 0 : acquireTokenMeasurement.endMeasurement({\r\n success: true\r\n });\r\n return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n return RefreshTokenClient;\r\n}(BaseClient));\n\nexport { RefreshTokenClient };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { RefreshTokenClient } from './RefreshTokenClient.js';\nimport { ClientAuthError, ClientAuthErrorMessage } from '../error/ClientAuthError.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { CacheOutcome } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentFlowClient = /** @class */ (function (_super) {\r\n __extends(SilentFlowClient, _super);\r\n function SilentFlowClient(configuration, performanceClient) {\r\n return _super.call(this, configuration, performanceClient) || this;\r\n }\r\n /**\r\n * Retrieves a token from cache if it is still valid, or uses the cached refresh token to renew\r\n * the given token and returns the renewed token\r\n * @param request\r\n */\r\n SilentFlowClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_1, refreshTokenClient;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.acquireCachedToken(request)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof ClientAuthError && e_1.errorCode === ClientAuthErrorMessage.tokenRefreshRequired.code) {\r\n refreshTokenClient = new RefreshTokenClient(this.config, this.performanceClient);\r\n return [2 /*return*/, refreshTokenClient.acquireTokenByRefreshToken(request)];\r\n }\r\n else {\r\n throw e_1;\r\n }\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Retrieves token from cache or throws an error if it must be refreshed.\r\n * @param request\r\n */\r\n SilentFlowClient.prototype.acquireCachedToken = function (request) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var environment, cacheRecord;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n // Cannot renew token if no request object is given.\r\n if (!request) {\r\n throw ClientConfigurationError.createEmptyTokenRequestError();\r\n }\r\n if (request.forceRefresh) {\r\n // Must refresh due to present force_refresh flag.\r\n (_a = this.serverTelemetryManager) === null || _a === void 0 ? void 0 : _a.setCacheOutcome(CacheOutcome.FORCE_REFRESH);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - Skipping cache because forceRefresh is true.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n if (!request.account) {\r\n throw ClientAuthError.createNoAccountInSilentRequestError();\r\n }\r\n environment = request.authority || this.authority.getPreferredCache();\r\n cacheRecord = this.cacheManager.readCacheRecord(request.account, request, environment);\r\n if (!cacheRecord.accessToken) {\r\n // Must refresh due to non-existent access_token.\r\n (_b = this.serverTelemetryManager) === null || _b === void 0 ? void 0 : _b.setCacheOutcome(CacheOutcome.NO_CACHED_ACCESS_TOKEN);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - No access token found in cache for the given properties.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n else if (TimeUtils.wasClockTurnedBack(cacheRecord.accessToken.cachedAt) ||\r\n TimeUtils.isTokenExpired(cacheRecord.accessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds)) {\r\n // Must refresh due to expired access_token.\r\n (_c = this.serverTelemetryManager) === null || _c === void 0 ? void 0 : _c.setCacheOutcome(CacheOutcome.CACHED_ACCESS_TOKEN_EXPIRED);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - Cached access token is expired or will expire within \" + this.config.systemOptions.tokenRenewalOffsetSeconds + \" seconds.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n else if (cacheRecord.accessToken.refreshOn && TimeUtils.isTokenExpired(cacheRecord.accessToken.refreshOn, 0)) {\r\n // Must refresh due to the refresh_in value.\r\n (_d = this.serverTelemetryManager) === null || _d === void 0 ? void 0 : _d.setCacheOutcome(CacheOutcome.REFRESH_CACHED_ACCESS_TOKEN);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n if (this.config.serverTelemetryManager) {\r\n this.config.serverTelemetryManager.incrementCacheHits();\r\n }\r\n return [4 /*yield*/, this.generateResultFromCacheRecord(cacheRecord, request)];\r\n case 1: return [2 /*return*/, _e.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper function to build response object from the CacheRecord\r\n * @param cacheRecord\r\n */\r\n SilentFlowClient.prototype.generateResultFromCacheRecord = function (cacheRecord, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var idTokenObj, authTime;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (cacheRecord.idToken) {\r\n idTokenObj = new AuthToken(cacheRecord.idToken.secret, this.config.cryptoInterface);\r\n }\r\n // token max_age check\r\n if (request.maxAge || (request.maxAge === 0)) {\r\n authTime = idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.auth_time;\r\n if (!authTime) {\r\n throw ClientAuthError.createAuthTimeNotFoundError();\r\n }\r\n AuthToken.checkMaxAge(authTime, request.maxAge);\r\n }\r\n return [4 /*yield*/, ResponseHandler.generateAuthenticationResult(this.cryptoUtils, this.authority, cacheRecord, true, request, idTokenObj)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return SilentFlowClient;\r\n}(BaseClient));\n\nexport { SilentFlowClient };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __assign, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { DEFAULT_CRYPTO_IMPLEMENTATION } from '../crypto/ICrypto.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { Logger, LogLevel } from '../logger/Logger.js';\nimport { Constants } from '../utils/Constants.js';\nimport { version } from '../packageMetadata.js';\nimport { AzureCloudInstance } from '../authority/AuthorityOptions.js';\nimport { DefaultStorageClass } from '../cache/CacheManager.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Token renewal offset default in seconds\r\nvar DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;\r\nvar DEFAULT_SYSTEM_OPTIONS = {\r\n tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,\r\n preventCorsPreflight: false\r\n};\r\nvar DEFAULT_LOGGER_IMPLEMENTATION = {\r\n loggerCallback: function () {\r\n // allow users to not set loggerCallback\r\n },\r\n piiLoggingEnabled: false,\r\n logLevel: LogLevel.Info,\r\n correlationId: Constants.EMPTY_STRING\r\n};\r\nvar DEFAULT_NETWORK_IMPLEMENTATION = {\r\n sendGetRequestAsync: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n sendPostRequestAsync: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n }\r\n};\r\nvar DEFAULT_LIBRARY_INFO = {\r\n sku: Constants.SKU,\r\n version: version,\r\n cpu: Constants.EMPTY_STRING,\r\n os: Constants.EMPTY_STRING\r\n};\r\nvar DEFAULT_CLIENT_CREDENTIALS = {\r\n clientSecret: Constants.EMPTY_STRING,\r\n clientAssertion: undefined\r\n};\r\nvar DEFAULT_AZURE_CLOUD_OPTIONS = {\r\n azureCloudInstance: AzureCloudInstance.None,\r\n tenant: \"\" + Constants.DEFAULT_COMMON_TENANT\r\n};\r\nvar DEFAULT_TELEMETRY_OPTIONS = {\r\n application: {\r\n appName: \"\",\r\n appVersion: \"\"\r\n }\r\n};\r\n/**\r\n * Function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param Configuration\r\n *\r\n * @returns Configuration\r\n */\r\nfunction buildClientConfiguration(_a) {\r\n var userAuthOptions = _a.authOptions, userSystemOptions = _a.systemOptions, userLoggerOption = _a.loggerOptions, storageImplementation = _a.storageInterface, networkImplementation = _a.networkInterface, cryptoImplementation = _a.cryptoInterface, clientCredentials = _a.clientCredentials, libraryInfo = _a.libraryInfo, telemetry = _a.telemetry, serverTelemetryManager = _a.serverTelemetryManager, persistencePlugin = _a.persistencePlugin, serializableCache = _a.serializableCache;\r\n var loggerOptions = __assign(__assign({}, DEFAULT_LOGGER_IMPLEMENTATION), userLoggerOption);\r\n return {\r\n authOptions: buildAuthOptions(userAuthOptions),\r\n systemOptions: __assign(__assign({}, DEFAULT_SYSTEM_OPTIONS), userSystemOptions),\r\n loggerOptions: loggerOptions,\r\n storageInterface: storageImplementation || new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION, new Logger(loggerOptions)),\r\n networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,\r\n cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,\r\n clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,\r\n libraryInfo: __assign(__assign({}, DEFAULT_LIBRARY_INFO), libraryInfo),\r\n telemetry: __assign(__assign({}, DEFAULT_TELEMETRY_OPTIONS), telemetry),\r\n serverTelemetryManager: serverTelemetryManager || null,\r\n persistencePlugin: persistencePlugin || null,\r\n serializableCache: serializableCache || null,\r\n };\r\n}\r\n/**\r\n * Construct authoptions from the client and platform passed values\r\n * @param authOptions\r\n */\r\nfunction buildAuthOptions(authOptions) {\r\n return __assign({ clientCapabilities: [], azureCloudOptions: DEFAULT_AZURE_CLOUD_OPTIONS, skipAuthorityMetadataCache: false }, authOptions);\r\n}\n\nexport { DEFAULT_SYSTEM_OPTIONS, buildClientConfiguration };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AuthError } from '../error/AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar DEFAULT_CRYPTO_IMPLEMENTATION = {\r\n createNewGuid: function () {\r\n var notImplErr = \"Crypto interface - createNewGuid() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n base64Decode: function () {\r\n var notImplErr = \"Crypto interface - base64Decode() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n base64Encode: function () {\r\n var notImplErr = \"Crypto interface - base64Encode() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n generatePkceCodes: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - generatePkceCodes() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n getPublicKeyThumbprint: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - getPublicKeyThumbprint() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n removeTokenBindingKey: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - removeTokenBindingKey() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n clearKeystore: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - clearKeystore() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n signJwt: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - signJwt() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n hashString: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - hashString() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n }\r\n};\n\nexport { DEFAULT_CRYPTO_IMPLEMENTATION };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { JoseHeaderError } from '../error/JoseHeaderError.js';\nimport { JsonTypes } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar JoseHeader = /** @class */ (function () {\r\n function JoseHeader(options) {\r\n this.typ = options.typ;\r\n this.alg = options.alg;\r\n this.kid = options.kid;\r\n }\r\n /**\r\n * Builds SignedHttpRequest formatted JOSE Header from the\r\n * JOSE Header options provided or previously set on the object and returns\r\n * the stringified header object.\r\n * Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.\r\n * @param shrHeaderOptions\r\n * @returns\r\n */\r\n JoseHeader.getShrHeaderString = function (shrHeaderOptions) {\r\n // KeyID is required on the SHR header\r\n if (!shrHeaderOptions.kid) {\r\n throw JoseHeaderError.createMissingKidError();\r\n }\r\n // Alg is required on the SHR header\r\n if (!shrHeaderOptions.alg) {\r\n throw JoseHeaderError.createMissingAlgError();\r\n }\r\n var shrHeader = new JoseHeader({\r\n // Access Token PoP headers must have type pop, but the type header can be overriden for special cases\r\n typ: shrHeaderOptions.typ || JsonTypes.Pop,\r\n kid: shrHeaderOptions.kid,\r\n alg: shrHeaderOptions.alg\r\n });\r\n return JSON.stringify(shrHeader);\r\n };\r\n return JoseHeader;\r\n}());\n\nexport { JoseHeader };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar KeyLocation;\r\n(function (KeyLocation) {\r\n KeyLocation[\"SW\"] = \"sw\";\r\n KeyLocation[\"UHW\"] = \"uhw\";\r\n})(KeyLocation || (KeyLocation = {}));\r\nvar PopTokenGenerator = /** @class */ (function () {\r\n function PopTokenGenerator(cryptoUtils, performanceClient) {\r\n this.cryptoUtils = cryptoUtils;\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Generates the req_cnf validated at the RP in the POP protocol for SHR parameters\r\n * and returns an object containing the keyid, the full req_cnf string and the req_cnf string hash\r\n * @param request\r\n * @returns\r\n */\r\n PopTokenGenerator.prototype.generateCnf = function (request) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var reqCnf, reqCnfString, _c;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.PopTokenGenerateCnf, request.correlationId);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.PopTokenGenerateKid, request.correlationId);\r\n return [4 /*yield*/, this.generateKid(request)];\r\n case 1:\r\n reqCnf = _d.sent();\r\n reqCnfString = this.cryptoUtils.base64Encode(JSON.stringify(reqCnf));\r\n _c = {\r\n kid: reqCnf.kid,\r\n reqCnfString: reqCnfString\r\n };\r\n return [4 /*yield*/, this.cryptoUtils.hashString(reqCnfString)];\r\n case 2: return [2 /*return*/, (_c.reqCnfHash = _d.sent(),\r\n _c)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates key_id for a SHR token request\r\n * @param request\r\n * @returns\r\n */\r\n PopTokenGenerator.prototype.generateKid = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var kidThumbprint;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.PopTokenGenerateKid, request.correlationId);\r\n return [4 /*yield*/, this.cryptoUtils.getPublicKeyThumbprint(request)];\r\n case 1:\r\n kidThumbprint = _b.sent();\r\n return [2 /*return*/, {\r\n kid: kidThumbprint,\r\n xms_ksl: KeyLocation.SW\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Signs the POP access_token with the local generated key-pair\r\n * @param accessToken\r\n * @param request\r\n * @returns\r\n */\r\n PopTokenGenerator.prototype.signPopToken = function (accessToken, keyId, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.signPayload(accessToken, keyId, request)];\r\n });\r\n });\r\n };\r\n /**\r\n * Utility function to generate the signed JWT for an access_token\r\n * @param payload\r\n * @param kid\r\n * @param request\r\n * @param claims\r\n * @returns\r\n */\r\n PopTokenGenerator.prototype.signPayload = function (payload, keyId, request, claims) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var resourceRequestMethod, resourceRequestUri, shrClaims, shrNonce, resourceUrlString, resourceUrlComponents;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n resourceRequestMethod = request.resourceRequestMethod, resourceRequestUri = request.resourceRequestUri, shrClaims = request.shrClaims, shrNonce = request.shrNonce;\r\n resourceUrlString = (resourceRequestUri) ? new UrlString(resourceRequestUri) : undefined;\r\n resourceUrlComponents = resourceUrlString === null || resourceUrlString === void 0 ? void 0 : resourceUrlString.getUrlComponents();\r\n return [4 /*yield*/, this.cryptoUtils.signJwt(__assign({ at: payload, ts: TimeUtils.nowSeconds(), m: resourceRequestMethod === null || resourceRequestMethod === void 0 ? void 0 : resourceRequestMethod.toUpperCase(), u: resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.HostNameAndPort, nonce: shrNonce || this.cryptoUtils.createNewGuid(), p: resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.AbsolutePath, q: (resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.QueryString) ? [[], resourceUrlComponents.QueryString] : undefined, client_claims: shrClaims || undefined }, claims), keyId, request.correlationId)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return PopTokenGenerator;\r\n}());\n\nexport { PopTokenGenerator };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * AuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar AuthErrorMessage = {\r\n unexpectedError: {\r\n code: \"unexpected_error\",\r\n desc: \"Unexpected error in authentication.\"\r\n },\r\n postRequestFailed: {\r\n code: \"post_request_failed\",\r\n desc: \"Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details.\"\r\n }\r\n};\r\n/**\r\n * General error class thrown by the MSAL.js library.\r\n */\r\nvar AuthError = /** @class */ (function (_super) {\r\n __extends(AuthError, _super);\r\n function AuthError(errorCode, errorMessage, suberror) {\r\n var _this = this;\r\n var errorString = errorMessage ? errorCode + \": \" + errorMessage : errorCode;\r\n _this = _super.call(this, errorString) || this;\r\n Object.setPrototypeOf(_this, AuthError.prototype);\r\n _this.errorCode = errorCode || Constants.EMPTY_STRING;\r\n _this.errorMessage = errorMessage || Constants.EMPTY_STRING;\r\n _this.subError = suberror || Constants.EMPTY_STRING;\r\n _this.name = \"AuthError\";\r\n return _this;\r\n }\r\n AuthError.prototype.setCorrelationId = function (correlationId) {\r\n this.correlationId = correlationId;\r\n };\r\n /**\r\n * Creates an error that is thrown when something unexpected happens in the library.\r\n * @param errDesc\r\n */\r\n AuthError.createUnexpectedError = function (errDesc) {\r\n return new AuthError(AuthErrorMessage.unexpectedError.code, AuthErrorMessage.unexpectedError.desc + \": \" + errDesc);\r\n };\r\n /**\r\n * Creates an error for post request failures.\r\n * @param errDesc\r\n * @returns\r\n */\r\n AuthError.createPostRequestFailed = function (errDesc) {\r\n return new AuthError(AuthErrorMessage.postRequestFailed.code, AuthErrorMessage.postRequestFailed.desc + \": \" + errDesc);\r\n };\r\n return AuthError;\r\n}(Error));\n\nexport { AuthError, AuthErrorMessage };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar ClientAuthErrorMessage = {\r\n clientInfoDecodingError: {\r\n code: \"client_info_decoding_error\",\r\n desc: \"The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause.\"\r\n },\r\n clientInfoEmptyError: {\r\n code: \"client_info_empty_error\",\r\n desc: \"The client info was empty. Please review the trace to determine the root cause.\"\r\n },\r\n tokenParsingError: {\r\n code: \"token_parsing_error\",\r\n desc: \"Token cannot be parsed. Please review stack trace to determine root cause.\"\r\n },\r\n nullOrEmptyToken: {\r\n code: \"null_or_empty_token\",\r\n desc: \"The token is null or empty. Please review the trace to determine the root cause.\"\r\n },\r\n endpointResolutionError: {\r\n code: \"endpoints_resolution_error\",\r\n desc: \"Error: could not resolve endpoints. Please check network and try again.\"\r\n },\r\n networkError: {\r\n code: \"network_error\",\r\n desc: \"Network request failed. Please check network trace to determine root cause.\"\r\n },\r\n unableToGetOpenidConfigError: {\r\n code: \"openid_config_error\",\r\n desc: \"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.\"\r\n },\r\n hashNotDeserialized: {\r\n code: \"hash_not_deserialized\",\r\n desc: \"The hash parameters could not be deserialized. Please review the trace to determine the root cause.\"\r\n },\r\n blankGuidGenerated: {\r\n code: \"blank_guid_generated\",\r\n desc: \"The guid generated was blank. Please review the trace to determine the root cause.\"\r\n },\r\n invalidStateError: {\r\n code: \"invalid_state\",\r\n desc: \"State was not the expected format. Please check the logs to determine whether the request was sent using ProtocolUtils.setRequestState().\"\r\n },\r\n stateMismatchError: {\r\n code: \"state_mismatch\",\r\n desc: \"State mismatch error. Please check your network. Continued requests may cause cache overflow.\"\r\n },\r\n stateNotFoundError: {\r\n code: \"state_not_found\",\r\n desc: \"State not found\"\r\n },\r\n nonceMismatchError: {\r\n code: \"nonce_mismatch\",\r\n desc: \"Nonce mismatch error. This may be caused by a race condition in concurrent requests.\"\r\n },\r\n nonceNotFoundError: {\r\n code: \"nonce_not_found\",\r\n desc: \"nonce not found\"\r\n },\r\n authTimeNotFoundError: {\r\n code: \"auth_time_not_found\",\r\n desc: \"Max Age was requested and the ID token is missing the auth_time variable.\" +\r\n \" auth_time is an optional claim and is not enabled by default - it must be enabled.\" +\r\n \" See https://aka.ms/msaljs/optional-claims for more information.\"\r\n },\r\n maxAgeTranspiredError: {\r\n code: \"max_age_transpired\",\r\n desc: \"Max Age is set to 0, or too much time has elapsed since the last end-user authentication.\"\r\n },\r\n noTokensFoundError: {\r\n code: \"no_tokens_found\",\r\n desc: \"No tokens were found for the given scopes, and no authorization code was passed to acquireToken. You must retrieve an authorization code before making a call to acquireToken().\"\r\n },\r\n multipleMatchingTokens: {\r\n code: \"multiple_matching_tokens\",\r\n desc: \"The cache contains multiple tokens satisfying the requirements. \" +\r\n \"Call AcquireToken again providing more requirements such as authority or account.\"\r\n },\r\n multipleMatchingAccounts: {\r\n code: \"multiple_matching_accounts\",\r\n desc: \"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account\"\r\n },\r\n multipleMatchingAppMetadata: {\r\n code: \"multiple_matching_appMetadata\",\r\n desc: \"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata\"\r\n },\r\n tokenRequestCannotBeMade: {\r\n code: \"request_cannot_be_made\",\r\n desc: \"Token request cannot be made without authorization code or refresh token.\"\r\n },\r\n appendEmptyScopeError: {\r\n code: \"cannot_append_empty_scope\",\r\n desc: \"Cannot append null or empty scope to ScopeSet. Please check the stack trace for more info.\"\r\n },\r\n removeEmptyScopeError: {\r\n code: \"cannot_remove_empty_scope\",\r\n desc: \"Cannot remove null or empty scope from ScopeSet. Please check the stack trace for more info.\"\r\n },\r\n appendScopeSetError: {\r\n code: \"cannot_append_scopeset\",\r\n desc: \"Cannot append ScopeSet due to error.\"\r\n },\r\n emptyInputScopeSetError: {\r\n code: \"empty_input_scopeset\",\r\n desc: \"Empty input ScopeSet cannot be processed.\"\r\n },\r\n DeviceCodePollingCancelled: {\r\n code: \"device_code_polling_cancelled\",\r\n desc: \"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.\"\r\n },\r\n DeviceCodeExpired: {\r\n code: \"device_code_expired\",\r\n desc: \"Device code is expired.\"\r\n },\r\n DeviceCodeUnknownError: {\r\n code: \"device_code_unknown_error\",\r\n desc: \"Device code stopped polling for unknown reasons.\"\r\n },\r\n NoAccountInSilentRequest: {\r\n code: \"no_account_in_silent_request\",\r\n desc: \"Please pass an account object, silent flow is not supported without account information\"\r\n },\r\n invalidCacheRecord: {\r\n code: \"invalid_cache_record\",\r\n desc: \"Cache record object was null or undefined.\"\r\n },\r\n invalidCacheEnvironment: {\r\n code: \"invalid_cache_environment\",\r\n desc: \"Invalid environment when attempting to create cache entry\"\r\n },\r\n noAccountFound: {\r\n code: \"no_account_found\",\r\n desc: \"No account found in cache for given key.\"\r\n },\r\n CachePluginError: {\r\n code: \"no cache plugin set on CacheManager\",\r\n desc: \"ICachePlugin needs to be set before using readFromStorage or writeFromStorage\"\r\n },\r\n noCryptoObj: {\r\n code: \"no_crypto_object\",\r\n desc: \"No crypto object detected. This is required for the following operation: \"\r\n },\r\n invalidCacheType: {\r\n code: \"invalid_cache_type\",\r\n desc: \"Invalid cache type\"\r\n },\r\n unexpectedAccountType: {\r\n code: \"unexpected_account_type\",\r\n desc: \"Unexpected account type.\"\r\n },\r\n unexpectedCredentialType: {\r\n code: \"unexpected_credential_type\",\r\n desc: \"Unexpected credential type.\"\r\n },\r\n invalidAssertion: {\r\n code: \"invalid_assertion\",\r\n desc: \"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515\"\r\n },\r\n invalidClientCredential: {\r\n code: \"invalid_client_credential\",\r\n desc: \"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential\"\r\n },\r\n tokenRefreshRequired: {\r\n code: \"token_refresh_required\",\r\n desc: \"Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired.\"\r\n },\r\n userTimeoutReached: {\r\n code: \"user_timeout_reached\",\r\n desc: \"User defined timeout for device code polling reached\",\r\n },\r\n tokenClaimsRequired: {\r\n code: \"token_claims_cnf_required_for_signedjwt\",\r\n desc: \"Cannot generate a POP jwt if the token_claims are not populated\"\r\n },\r\n noAuthorizationCodeFromServer: {\r\n code: \"authorization_code_missing_from_server_response\",\r\n desc: \"Server response does not contain an authorization code to proceed\"\r\n },\r\n noAzureRegionDetected: {\r\n code: \"no_azure_region_detected\",\r\n desc: \"No azure region was detected and no fallback was made available\"\r\n },\r\n accessTokenEntityNullError: {\r\n code: \"access_token_entity_null\",\r\n desc: \"Access token entity is null, please check logs and cache to ensure a valid access token is present.\"\r\n },\r\n bindingKeyNotRemovedError: {\r\n code: \"binding_key_not_removed\",\r\n desc: \"Could not remove the credential's binding key from storage.\"\r\n },\r\n logoutNotSupported: {\r\n code: \"end_session_endpoint_not_supported\",\r\n desc: \"Provided authority does not support logout.\"\r\n },\r\n keyIdMissing: {\r\n code: \"key_id_missing\",\r\n desc: \"A keyId value is missing from the requested bound token's cache record and is required to match the token to it's stored binding key.\"\r\n },\r\n noNetworkConnectivity: {\r\n code: \"no_network_connectivity\",\r\n desc: \"No network connectivity. Check your internet connection.\"\r\n },\r\n userCanceledError: {\r\n code: \"user_canceled\",\r\n desc: \"User canceled the flow.\"\r\n }\r\n};\r\n/**\r\n * Error thrown when there is an error in the client code running on the browser.\r\n */\r\nvar ClientAuthError = /** @class */ (function (_super) {\r\n __extends(ClientAuthError, _super);\r\n function ClientAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ClientAuthError\";\r\n Object.setPrototypeOf(_this, ClientAuthError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when client info object doesn't decode correctly.\r\n * @param caughtError\r\n */\r\n ClientAuthError.createClientInfoDecodingError = function (caughtError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoDecodingError.code, ClientAuthErrorMessage.clientInfoDecodingError.desc + \" Failed with error: \" + caughtError);\r\n };\r\n /**\r\n * Creates an error thrown if the client info is empty.\r\n * @param rawClientInfo\r\n */\r\n ClientAuthError.createClientInfoEmptyError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoEmptyError.code, \"\" + ClientAuthErrorMessage.clientInfoEmptyError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the id token extraction errors out.\r\n * @param err\r\n */\r\n ClientAuthError.createTokenParsingError = function (caughtExtractionError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenParsingError.code, ClientAuthErrorMessage.tokenParsingError.desc + \" Failed with error: \" + caughtExtractionError);\r\n };\r\n /**\r\n * Creates an error thrown when the id token string is null or empty.\r\n * @param invalidRawTokenString\r\n */\r\n ClientAuthError.createTokenNullOrEmptyError = function (invalidRawTokenString) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nullOrEmptyToken.code, ClientAuthErrorMessage.nullOrEmptyToken.desc + \" Raw Token Value: \" + invalidRawTokenString);\r\n };\r\n /**\r\n * Creates an error thrown when the endpoint discovery doesn't complete correctly.\r\n */\r\n ClientAuthError.createEndpointDiscoveryIncompleteError = function (errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.endpointResolutionError.code, ClientAuthErrorMessage.endpointResolutionError.desc + \" Detail: \" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the fetch client throws\r\n */\r\n ClientAuthError.createNetworkError = function (endpoint, errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.networkError.code, ClientAuthErrorMessage.networkError.desc + \" | Fetch client threw: \" + errDetail + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Creates an error thrown when the openid-configuration endpoint cannot be reached or does not contain the required data\r\n */\r\n ClientAuthError.createUnableToGetOpenidConfigError = function (errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.unableToGetOpenidConfigError.code, ClientAuthErrorMessage.unableToGetOpenidConfigError.desc + \" Attempted to retrieve endpoints from: \" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the hash cannot be deserialized.\r\n * @param hashParamObj\r\n */\r\n ClientAuthError.createHashNotDeserializedError = function (hashParamObj) {\r\n return new ClientAuthError(ClientAuthErrorMessage.hashNotDeserialized.code, ClientAuthErrorMessage.hashNotDeserialized.desc + \" Given Object: \" + hashParamObj);\r\n };\r\n /**\r\n * Creates an error thrown when the state cannot be parsed.\r\n * @param invalidState\r\n */\r\n ClientAuthError.createInvalidStateError = function (invalidState, errorString) {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidStateError.code, ClientAuthErrorMessage.invalidStateError.desc + \" Invalid State: \" + invalidState + \", Root Err: \" + errorString);\r\n };\r\n /**\r\n * Creates an error thrown when two states do not match.\r\n */\r\n ClientAuthError.createStateMismatchError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.stateMismatchError.code, ClientAuthErrorMessage.stateMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the state is not present\r\n * @param missingState\r\n */\r\n ClientAuthError.createStateNotFoundError = function (missingState) {\r\n return new ClientAuthError(ClientAuthErrorMessage.stateNotFoundError.code, ClientAuthErrorMessage.stateNotFoundError.desc + \": \" + missingState);\r\n };\r\n /**\r\n * Creates an error thrown when the nonce does not match.\r\n */\r\n ClientAuthError.createNonceMismatchError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.nonceMismatchError.code, ClientAuthErrorMessage.nonceMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when max_age was provided in the request, but auth_time is not in the token claims\r\n * @param missingNonce\r\n */\r\n ClientAuthError.createAuthTimeNotFoundError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.authTimeNotFoundError.code, ClientAuthErrorMessage.authTimeNotFoundError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when too much time has elapsed since the last end-user authentication\r\n */\r\n ClientAuthError.createMaxAgeTranspiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.maxAgeTranspiredError.code, ClientAuthErrorMessage.maxAgeTranspiredError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the mnonce is not present\r\n * @param missingNonce\r\n */\r\n ClientAuthError.createNonceNotFoundError = function (missingNonce) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nonceNotFoundError.code, ClientAuthErrorMessage.nonceNotFoundError.desc + \": \" + missingNonce);\r\n };\r\n /**\r\n * Throws error when multiple tokens are in cache.\r\n */\r\n ClientAuthError.createMultipleMatchingTokensInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingTokens.code, ClientAuthErrorMessage.multipleMatchingTokens.desc + \".\");\r\n };\r\n /**\r\n * Throws error when multiple accounts are in cache for the given params\r\n */\r\n ClientAuthError.createMultipleMatchingAccountsInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAccounts.code, ClientAuthErrorMessage.multipleMatchingAccounts.desc);\r\n };\r\n /**\r\n * Throws error when multiple appMetada are in cache for the given clientId.\r\n */\r\n ClientAuthError.createMultipleMatchingAppMetadataInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAppMetadata.code, ClientAuthErrorMessage.multipleMatchingAppMetadata.desc);\r\n };\r\n /**\r\n * Throws error when no auth code or refresh token is given to ServerTokenRequestParameters.\r\n */\r\n ClientAuthError.createTokenRequestCannotBeMadeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenRequestCannotBeMade.code, ClientAuthErrorMessage.tokenRequestCannotBeMade.desc);\r\n };\r\n /**\r\n * Throws error when attempting to append a null, undefined or empty scope to a set\r\n * @param givenScope\r\n */\r\n ClientAuthError.createAppendEmptyScopeToSetError = function (givenScope) {\r\n return new ClientAuthError(ClientAuthErrorMessage.appendEmptyScopeError.code, ClientAuthErrorMessage.appendEmptyScopeError.desc + \" Given Scope: \" + givenScope);\r\n };\r\n /**\r\n * Throws error when attempting to append a null, undefined or empty scope to a set\r\n * @param givenScope\r\n */\r\n ClientAuthError.createRemoveEmptyScopeFromSetError = function (givenScope) {\r\n return new ClientAuthError(ClientAuthErrorMessage.removeEmptyScopeError.code, ClientAuthErrorMessage.removeEmptyScopeError.desc + \" Given Scope: \" + givenScope);\r\n };\r\n /**\r\n * Throws error when attempting to append null or empty ScopeSet.\r\n * @param appendError\r\n */\r\n ClientAuthError.createAppendScopeSetError = function (appendError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.appendScopeSetError.code, ClientAuthErrorMessage.appendScopeSetError.desc + \" Detail Error: \" + appendError);\r\n };\r\n /**\r\n * Throws error if ScopeSet is null or undefined.\r\n * @param givenScopeSet\r\n */\r\n ClientAuthError.createEmptyInputScopeSetError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.emptyInputScopeSetError.code, \"\" + ClientAuthErrorMessage.emptyInputScopeSetError.desc);\r\n };\r\n /**\r\n * Throws error if user sets CancellationToken.cancel = true during polling of token endpoint during device code flow\r\n */\r\n ClientAuthError.createDeviceCodeCancelledError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodePollingCancelled.code, \"\" + ClientAuthErrorMessage.DeviceCodePollingCancelled.desc);\r\n };\r\n /**\r\n * Throws error if device code is expired\r\n */\r\n ClientAuthError.createDeviceCodeExpiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeExpired.code, \"\" + ClientAuthErrorMessage.DeviceCodeExpired.desc);\r\n };\r\n /**\r\n * Throws error if device code is expired\r\n */\r\n ClientAuthError.createDeviceCodeUnknownError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeUnknownError.code, \"\" + ClientAuthErrorMessage.DeviceCodeUnknownError.desc);\r\n };\r\n /**\r\n * Throws error when silent requests are made without an account object\r\n */\r\n ClientAuthError.createNoAccountInSilentRequestError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.NoAccountInSilentRequest.code, \"\" + ClientAuthErrorMessage.NoAccountInSilentRequest.desc);\r\n };\r\n /**\r\n * Throws error when cache record is null or undefined.\r\n */\r\n ClientAuthError.createNullOrUndefinedCacheRecord = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheRecord.code, ClientAuthErrorMessage.invalidCacheRecord.desc);\r\n };\r\n /**\r\n * Throws error when provided environment is not part of the CloudDiscoveryMetadata object\r\n */\r\n ClientAuthError.createInvalidCacheEnvironmentError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheEnvironment.code, ClientAuthErrorMessage.invalidCacheEnvironment.desc);\r\n };\r\n /**\r\n * Throws error when account is not found in cache.\r\n */\r\n ClientAuthError.createNoAccountFoundError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noAccountFound.code, ClientAuthErrorMessage.noAccountFound.desc);\r\n };\r\n /**\r\n * Throws error if ICachePlugin not set on CacheManager.\r\n */\r\n ClientAuthError.createCachePluginError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.CachePluginError.code, \"\" + ClientAuthErrorMessage.CachePluginError.desc);\r\n };\r\n /**\r\n * Throws error if crypto object not found.\r\n * @param operationName\r\n */\r\n ClientAuthError.createNoCryptoObjectError = function (operationName) {\r\n return new ClientAuthError(ClientAuthErrorMessage.noCryptoObj.code, \"\" + ClientAuthErrorMessage.noCryptoObj.desc + operationName);\r\n };\r\n /**\r\n * Throws error if cache type is invalid.\r\n */\r\n ClientAuthError.createInvalidCacheTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheType.code, \"\" + ClientAuthErrorMessage.invalidCacheType.desc);\r\n };\r\n /**\r\n * Throws error if unexpected account type.\r\n */\r\n ClientAuthError.createUnexpectedAccountTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedAccountType.code, \"\" + ClientAuthErrorMessage.unexpectedAccountType.desc);\r\n };\r\n /**\r\n * Throws error if unexpected credential type.\r\n */\r\n ClientAuthError.createUnexpectedCredentialTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedCredentialType.code, \"\" + ClientAuthErrorMessage.unexpectedCredentialType.desc);\r\n };\r\n /**\r\n * Throws error if client assertion is not valid.\r\n */\r\n ClientAuthError.createInvalidAssertionError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidAssertion.code, \"\" + ClientAuthErrorMessage.invalidAssertion.desc);\r\n };\r\n /**\r\n * Throws error if client assertion is not valid.\r\n */\r\n ClientAuthError.createInvalidCredentialError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidClientCredential.code, \"\" + ClientAuthErrorMessage.invalidClientCredential.desc);\r\n };\r\n /**\r\n * Throws error if token cannot be retrieved from cache due to refresh being required.\r\n */\r\n ClientAuthError.createRefreshRequiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenRefreshRequired.code, ClientAuthErrorMessage.tokenRefreshRequired.desc);\r\n };\r\n /**\r\n * Throws error if the user defined timeout is reached.\r\n */\r\n ClientAuthError.createUserTimeoutReachedError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.userTimeoutReached.code, ClientAuthErrorMessage.userTimeoutReached.desc);\r\n };\r\n /*\r\n * Throws error if token claims are not populated for a signed jwt generation\r\n */\r\n ClientAuthError.createTokenClaimsRequiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenClaimsRequired.code, ClientAuthErrorMessage.tokenClaimsRequired.desc);\r\n };\r\n /**\r\n * Throws error when the authorization code is missing from the server response\r\n */\r\n ClientAuthError.createNoAuthCodeInServerResponseError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noAuthorizationCodeFromServer.code, ClientAuthErrorMessage.noAuthorizationCodeFromServer.desc);\r\n };\r\n ClientAuthError.createBindingKeyNotRemovedError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.bindingKeyNotRemovedError.code, ClientAuthErrorMessage.bindingKeyNotRemovedError.desc);\r\n };\r\n /**\r\n * Thrown when logout is attempted for an authority that doesnt have an end_session_endpoint\r\n */\r\n ClientAuthError.createLogoutNotSupportedError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.logoutNotSupported.code, ClientAuthErrorMessage.logoutNotSupported.desc);\r\n };\r\n /**\r\n * Create an error when kid attribute is missing from a PoP token's cache record\r\n */\r\n ClientAuthError.createKeyIdMissingError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.keyIdMissing.code, ClientAuthErrorMessage.keyIdMissing.desc);\r\n };\r\n /**\r\n * Create an error when the client does not have network connectivity\r\n */\r\n ClientAuthError.createNoNetworkConnectivityError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noNetworkConnectivity.code, ClientAuthErrorMessage.noNetworkConnectivity.desc);\r\n };\r\n /**\r\n * Create an error when the user cancels the flow\r\n */\r\n ClientAuthError.createUserCanceledError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.userCanceledError.code, ClientAuthErrorMessage.userCanceledError.desc);\r\n };\r\n return ClientAuthError;\r\n}(AuthError));\n\nexport { ClientAuthError, ClientAuthErrorMessage };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { ClientAuthError } from './ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientConfigurationErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar ClientConfigurationErrorMessage = {\r\n redirectUriNotSet: {\r\n code: \"redirect_uri_empty\",\r\n desc: \"A redirect URI is required for all calls, and none has been set.\"\r\n },\r\n postLogoutUriNotSet: {\r\n code: \"post_logout_uri_empty\",\r\n desc: \"A post logout redirect has not been set.\"\r\n },\r\n claimsRequestParsingError: {\r\n code: \"claims_request_parsing_error\",\r\n desc: \"Could not parse the given claims request object.\"\r\n },\r\n authorityUriInsecure: {\r\n code: \"authority_uri_insecure\",\r\n desc: \"Authority URIs must use https. Please see here for valid authority configuration options: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-js-initializing-client-applications#configuration-options\"\r\n },\r\n urlParseError: {\r\n code: \"url_parse_error\",\r\n desc: \"URL could not be parsed into appropriate segments.\"\r\n },\r\n urlEmptyError: {\r\n code: \"empty_url_error\",\r\n desc: \"URL was empty or null.\"\r\n },\r\n emptyScopesError: {\r\n code: \"empty_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.\"\r\n },\r\n nonArrayScopesError: {\r\n code: \"nonarray_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as non-array.\"\r\n },\r\n clientIdSingleScopeError: {\r\n code: \"clientid_input_scopes_error\",\r\n desc: \"Client ID can only be provided as a single scope.\"\r\n },\r\n invalidPrompt: {\r\n code: \"invalid_prompt_value\",\r\n desc: \"Supported prompt values are 'login', 'select_account', 'consent', 'create', 'none' and 'no_session'. Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest\",\r\n },\r\n invalidClaimsRequest: {\r\n code: \"invalid_claims\",\r\n desc: \"Given claims parameter must be a stringified JSON object.\"\r\n },\r\n tokenRequestEmptyError: {\r\n code: \"token_request_empty\",\r\n desc: \"Token request was empty and not found in cache.\"\r\n },\r\n logoutRequestEmptyError: {\r\n code: \"logout_request_empty\",\r\n desc: \"The logout request was null or undefined.\"\r\n },\r\n invalidCodeChallengeMethod: {\r\n code: \"invalid_code_challenge_method\",\r\n desc: \"code_challenge_method passed is invalid. Valid values are \\\"plain\\\" and \\\"S256\\\".\"\r\n },\r\n invalidCodeChallengeParams: {\r\n code: \"pkce_params_missing\",\r\n desc: \"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request\"\r\n },\r\n invalidCloudDiscoveryMetadata: {\r\n code: \"invalid_cloud_discovery_metadata\",\r\n desc: \"Invalid cloudDiscoveryMetadata provided. Must be a stringified JSON object containing tenant_discovery_endpoint and metadata fields\"\r\n },\r\n invalidAuthorityMetadata: {\r\n code: \"invalid_authority_metadata\",\r\n desc: \"Invalid authorityMetadata provided. Must by a stringified JSON object containing authorization_endpoint, token_endpoint, issuer fields.\"\r\n },\r\n untrustedAuthority: {\r\n code: \"untrusted_authority\",\r\n desc: \"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter.\"\r\n },\r\n invalidAzureCloudInstance: {\r\n code: \"invalid_azure_cloud_instance\",\r\n desc: \"Invalid AzureCloudInstance provided. Please refer MSAL JS docs: aks.ms/msaljs/azure_cloud_instance for valid values\"\r\n },\r\n missingSshJwk: {\r\n code: \"missing_ssh_jwk\",\r\n desc: \"Missing sshJwk in SSH certificate request. A stringified JSON Web Key is required when using the SSH authentication scheme.\"\r\n },\r\n missingSshKid: {\r\n code: \"missing_ssh_kid\",\r\n desc: \"Missing sshKid in SSH certificate request. A string that uniquely identifies the public SSH key is required when using the SSH authentication scheme.\"\r\n },\r\n missingNonceAuthenticationHeader: {\r\n code: \"missing_nonce_authentication_header\",\r\n desc: \"Unable to find an authentication header containing server nonce. Either the Authentication-Info or WWW-Authenticate headers must be present in order to obtain a server nonce.\"\r\n },\r\n invalidAuthenticationHeader: {\r\n code: \"invalid_authentication_header\",\r\n desc: \"Invalid authentication header provided\"\r\n }\r\n};\r\n/**\r\n * Error thrown when there is an error in configuration of the MSAL.js library.\r\n */\r\nvar ClientConfigurationError = /** @class */ (function (_super) {\r\n __extends(ClientConfigurationError, _super);\r\n function ClientConfigurationError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ClientConfigurationError\";\r\n Object.setPrototypeOf(_this, ClientConfigurationError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when the redirect uri is empty (not set by caller)\r\n */\r\n ClientConfigurationError.createRedirectUriEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.redirectUriNotSet.code, ClientConfigurationErrorMessage.redirectUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\r\n */\r\n ClientConfigurationError.createPostLogoutRedirectUriEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.postLogoutUriNotSet.code, ClientConfigurationErrorMessage.postLogoutUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the claims request could not be successfully parsed\r\n */\r\n ClientConfigurationError.createClaimsRequestParsingError = function (claimsRequestParseError) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.claimsRequestParsingError.code, ClientConfigurationErrorMessage.claimsRequestParsingError.desc + \" Given value: \" + claimsRequestParseError);\r\n };\r\n /**\r\n * Creates an error thrown if authority uri is given an insecure protocol.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createInsecureAuthorityUriError = function (urlString) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.authorityUriInsecure.code, ClientConfigurationErrorMessage.authorityUriInsecure.desc + \" Given URI: \" + urlString);\r\n };\r\n /**\r\n * Creates an error thrown if URL string does not parse into separate segments.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createUrlParseError = function (urlParseError) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.urlParseError.code, ClientConfigurationErrorMessage.urlParseError.desc + \" Given Error: \" + urlParseError);\r\n };\r\n /**\r\n * Creates an error thrown if URL string is empty or null.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createUrlEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.urlEmptyError.code, ClientConfigurationErrorMessage.urlEmptyError.desc);\r\n };\r\n /**\r\n * Error thrown when scopes are empty.\r\n * @param scopesValue\r\n */\r\n ClientConfigurationError.createEmptyScopesArrayError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.emptyScopesError.code, \"\" + ClientConfigurationErrorMessage.emptyScopesError.desc);\r\n };\r\n /**\r\n * Error thrown when client id scope is not provided as single scope.\r\n * @param inputScopes\r\n */\r\n ClientConfigurationError.createClientIdSingleScopeError = function (inputScopes) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.clientIdSingleScopeError.code, ClientConfigurationErrorMessage.clientIdSingleScopeError.desc + \" Given Scopes: \" + inputScopes);\r\n };\r\n /**\r\n * Error thrown when prompt is not an allowed type.\r\n * @param promptValue\r\n */\r\n ClientConfigurationError.createInvalidPromptError = function (promptValue) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidPrompt.code, ClientConfigurationErrorMessage.invalidPrompt.desc + \" Given value: \" + promptValue);\r\n };\r\n /**\r\n * Creates error thrown when claims parameter is not a stringified JSON object\r\n */\r\n ClientConfigurationError.createInvalidClaimsRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidClaimsRequest.code, ClientConfigurationErrorMessage.invalidClaimsRequest.desc);\r\n };\r\n /**\r\n * Throws error when token request is empty and nothing cached in storage.\r\n */\r\n ClientConfigurationError.createEmptyLogoutRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.logoutRequestEmptyError.code, ClientConfigurationErrorMessage.logoutRequestEmptyError.desc);\r\n };\r\n /**\r\n * Throws error when token request is empty and nothing cached in storage.\r\n */\r\n ClientConfigurationError.createEmptyTokenRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.tokenRequestEmptyError.code, ClientConfigurationErrorMessage.tokenRequestEmptyError.desc);\r\n };\r\n /**\r\n * Throws error when an invalid code_challenge_method is passed by the user\r\n */\r\n ClientConfigurationError.createInvalidCodeChallengeMethodError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCodeChallengeMethod.code, ClientConfigurationErrorMessage.invalidCodeChallengeMethod.desc);\r\n };\r\n /**\r\n * Throws error when both params: code_challenge and code_challenge_method are not passed together\r\n */\r\n ClientConfigurationError.createInvalidCodeChallengeParamsError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCodeChallengeParams.code, ClientConfigurationErrorMessage.invalidCodeChallengeParams.desc);\r\n };\r\n /**\r\n * Throws an error when the user passes invalid cloudDiscoveryMetadata\r\n */\r\n ClientConfigurationError.createInvalidCloudDiscoveryMetadataError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.code, ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.desc);\r\n };\r\n /**\r\n * Throws an error when the user passes invalid cloudDiscoveryMetadata\r\n */\r\n ClientConfigurationError.createInvalidAuthorityMetadataError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthorityMetadata.code, ClientConfigurationErrorMessage.invalidAuthorityMetadata.desc);\r\n };\r\n /**\r\n * Throws error when provided authority is not a member of the trusted host list\r\n */\r\n ClientConfigurationError.createUntrustedAuthorityError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.untrustedAuthority.code, ClientConfigurationErrorMessage.untrustedAuthority.desc);\r\n };\r\n /**\r\n * Throws error when the AzureCloudInstance is set to an invalid value\r\n */\r\n ClientConfigurationError.createInvalidAzureCloudInstanceError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAzureCloudInstance.code, ClientConfigurationErrorMessage.invalidAzureCloudInstance.desc);\r\n };\r\n /**\r\n * Throws an error when the authentication scheme is set to SSH but the SSH public key is omitted from the request\r\n */\r\n ClientConfigurationError.createMissingSshJwkError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.missingSshJwk.code, ClientConfigurationErrorMessage.missingSshJwk.desc);\r\n };\r\n /**\r\n * Throws an error when the authentication scheme is set to SSH but the SSH public key ID is omitted from the request\r\n */\r\n ClientConfigurationError.createMissingSshKidError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.missingSshKid.code, ClientConfigurationErrorMessage.missingSshKid.desc);\r\n };\r\n /**\r\n * Throws error when provided headers don't contain a header that a server nonce can be extracted from\r\n */\r\n ClientConfigurationError.createMissingNonceAuthenticationHeadersError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.missingNonceAuthenticationHeader.code, ClientConfigurationErrorMessage.missingNonceAuthenticationHeader.desc);\r\n };\r\n /**\r\n * Throws error when a provided header is invalid in any way\r\n */\r\n ClientConfigurationError.createInvalidAuthenticationHeaderError = function (invalidHeaderName, details) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthenticationHeader.code, ClientConfigurationErrorMessage.invalidAuthenticationHeader.desc + \". Invalid header: \" + invalidHeaderName + \". Details: \" + details);\r\n };\r\n return ClientConfigurationError;\r\n}(ClientAuthError));\n\nexport { ClientConfigurationError, ClientConfigurationErrorMessage };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { Constants } from '../utils/Constants.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * InteractionRequiredServerErrorMessage contains string constants used by error codes and messages returned by the server indicating interaction is required\r\n */\r\nvar InteractionRequiredServerErrorMessage = [\r\n \"interaction_required\",\r\n \"consent_required\",\r\n \"login_required\"\r\n];\r\nvar InteractionRequiredAuthSubErrorMessage = [\r\n \"message_only\",\r\n \"additional_action\",\r\n \"basic_action\",\r\n \"user_password_expired\",\r\n \"consent_required\"\r\n];\r\n/**\r\n * Interaction required errors defined by the SDK\r\n */\r\nvar InteractionRequiredAuthErrorMessage = {\r\n noTokensFoundError: {\r\n code: \"no_tokens_found\",\r\n desc: \"No refresh token found in the cache. Please sign-in.\"\r\n },\r\n native_account_unavailable: {\r\n code: \"native_account_unavailable\",\r\n desc: \"The requested account is not available in the native broker. It may have been deleted or logged out. Please sign-in again using an interactive API.\"\r\n }\r\n};\r\n/**\r\n * Error thrown when user interaction is required.\r\n */\r\nvar InteractionRequiredAuthError = /** @class */ (function (_super) {\r\n __extends(InteractionRequiredAuthError, _super);\r\n function InteractionRequiredAuthError(errorCode, errorMessage, subError, timestamp, traceId, correlationId, claims) {\r\n var _this = _super.call(this, errorCode, errorMessage, subError) || this;\r\n Object.setPrototypeOf(_this, InteractionRequiredAuthError.prototype);\r\n _this.timestamp = timestamp || Constants.EMPTY_STRING;\r\n _this.traceId = traceId || Constants.EMPTY_STRING;\r\n _this.correlationId = correlationId || Constants.EMPTY_STRING;\r\n _this.claims = claims || Constants.EMPTY_STRING;\r\n _this.name = \"InteractionRequiredAuthError\";\r\n return _this;\r\n }\r\n /**\r\n * Helper function used to determine if an error thrown by the server requires interaction to resolve\r\n * @param errorCode\r\n * @param errorString\r\n * @param subError\r\n */\r\n InteractionRequiredAuthError.isInteractionRequiredError = function (errorCode, errorString, subError) {\r\n var isInteractionRequiredErrorCode = !!errorCode && InteractionRequiredServerErrorMessage.indexOf(errorCode) > -1;\r\n var isInteractionRequiredSubError = !!subError && InteractionRequiredAuthSubErrorMessage.indexOf(subError) > -1;\r\n var isInteractionRequiredErrorDesc = !!errorString && InteractionRequiredServerErrorMessage.some(function (irErrorCode) {\r\n return errorString.indexOf(irErrorCode) > -1;\r\n });\r\n return isInteractionRequiredErrorCode || isInteractionRequiredErrorDesc || isInteractionRequiredSubError;\r\n };\r\n /**\r\n * Creates an error thrown when the authorization code required for a token request is null or empty.\r\n */\r\n InteractionRequiredAuthError.createNoTokensFoundError = function () {\r\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.noTokensFoundError.code, InteractionRequiredAuthErrorMessage.noTokensFoundError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the native broker returns ACCOUNT_UNAVAILABLE status, indicating that the account was removed and interactive sign-in is required\r\n * @returns\r\n */\r\n InteractionRequiredAuthError.createNativeAccountUnavailableError = function () {\r\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.native_account_unavailable.code, InteractionRequiredAuthErrorMessage.native_account_unavailable.desc);\r\n };\r\n return InteractionRequiredAuthError;\r\n}(AuthError));\n\nexport { InteractionRequiredAuthError, InteractionRequiredAuthErrorMessage, InteractionRequiredAuthSubErrorMessage, InteractionRequiredServerErrorMessage };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar JoseHeaderErrorMessage = {\r\n missingKidError: {\r\n code: \"missing_kid_error\",\r\n desc: \"The JOSE Header for the requested JWT, JWS or JWK object requires a keyId to be configured as the 'kid' header claim. No 'kid' value was provided.\"\r\n },\r\n missingAlgError: {\r\n code: \"missing_alg_error\",\r\n desc: \"The JOSE Header for the requested JWT, JWS or JWK object requires an algorithm to be specified as the 'alg' header claim. No 'alg' value was provided.\"\r\n },\r\n};\r\n/**\r\n * Error thrown when there is an error in the client code running on the browser.\r\n */\r\nvar JoseHeaderError = /** @class */ (function (_super) {\r\n __extends(JoseHeaderError, _super);\r\n function JoseHeaderError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"JoseHeaderError\";\r\n Object.setPrototypeOf(_this, JoseHeaderError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when keyId isn't set on JOSE header.\r\n */\r\n JoseHeaderError.createMissingKidError = function () {\r\n return new JoseHeaderError(JoseHeaderErrorMessage.missingKidError.code, JoseHeaderErrorMessage.missingKidError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when algorithm isn't set on JOSE header.\r\n */\r\n JoseHeaderError.createMissingAlgError = function () {\r\n return new JoseHeaderError(JoseHeaderErrorMessage.missingAlgError.code, JoseHeaderErrorMessage.missingAlgError.desc);\r\n };\r\n return JoseHeaderError;\r\n}(AuthError));\n\nexport { JoseHeaderError, JoseHeaderErrorMessage };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Error thrown when there is an error with the server code, for example, unavailability.\r\n */\r\nvar ServerError = /** @class */ (function (_super) {\r\n __extends(ServerError, _super);\r\n function ServerError(errorCode, errorMessage, subError) {\r\n var _this = _super.call(this, errorCode, errorMessage, subError) || this;\r\n _this.name = \"ServerError\";\r\n Object.setPrototypeOf(_this, ServerError.prototype);\r\n return _this;\r\n }\r\n return ServerError;\r\n}(AuthError));\n\nexport { ServerError };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Log message level.\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\r\n LogLevel[LogLevel[\"Warning\"] = 1] = \"Warning\";\r\n LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\r\n LogLevel[LogLevel[\"Verbose\"] = 3] = \"Verbose\";\r\n LogLevel[LogLevel[\"Trace\"] = 4] = \"Trace\";\r\n})(LogLevel || (LogLevel = {}));\r\n/**\r\n * Class which facilitates logging of messages to a specific place.\r\n */\r\nvar Logger = /** @class */ (function () {\r\n function Logger(loggerOptions, packageName, packageVersion) {\r\n // Current log level, defaults to info.\r\n this.level = LogLevel.Info;\r\n var defaultLoggerCallback = function () {\r\n return;\r\n };\r\n var setLoggerOptions = loggerOptions || Logger.createDefaultLoggerOptions();\r\n this.localCallback = setLoggerOptions.loggerCallback || defaultLoggerCallback;\r\n this.piiLoggingEnabled = setLoggerOptions.piiLoggingEnabled || false;\r\n this.level = typeof (setLoggerOptions.logLevel) === \"number\" ? setLoggerOptions.logLevel : LogLevel.Info;\r\n this.correlationId = setLoggerOptions.correlationId || Constants.EMPTY_STRING;\r\n this.packageName = packageName || Constants.EMPTY_STRING;\r\n this.packageVersion = packageVersion || Constants.EMPTY_STRING;\r\n }\r\n Logger.createDefaultLoggerOptions = function () {\r\n return {\r\n loggerCallback: function () {\r\n // allow users to not set loggerCallback\r\n },\r\n piiLoggingEnabled: false,\r\n logLevel: LogLevel.Info\r\n };\r\n };\r\n /**\r\n * Create new Logger with existing configurations.\r\n */\r\n Logger.prototype.clone = function (packageName, packageVersion, correlationId) {\r\n return new Logger({ loggerCallback: this.localCallback, piiLoggingEnabled: this.piiLoggingEnabled, logLevel: this.level, correlationId: correlationId || this.correlationId }, packageName, packageVersion);\r\n };\r\n /**\r\n * Log message with required options.\r\n */\r\n Logger.prototype.logMessage = function (logMessage, options) {\r\n if ((options.logLevel > this.level) || (!this.piiLoggingEnabled && options.containsPii)) {\r\n return;\r\n }\r\n var timestamp = new Date().toUTCString();\r\n // Add correlationId to logs if set, correlationId provided on log messages take precedence\r\n var logHeader;\r\n if (!StringUtils.isEmpty(options.correlationId)) {\r\n logHeader = \"[\" + timestamp + \"] : [\" + options.correlationId + \"]\";\r\n }\r\n else if (!StringUtils.isEmpty(this.correlationId)) {\r\n logHeader = \"[\" + timestamp + \"] : [\" + this.correlationId + \"]\";\r\n }\r\n else {\r\n logHeader = \"[\" + timestamp + \"]\";\r\n }\r\n var log = logHeader + \" : \" + this.packageName + \"@\" + this.packageVersion + \" : \" + LogLevel[options.logLevel] + \" - \" + logMessage;\r\n // debug(`msal:${LogLevel[options.logLevel]}${options.containsPii ? \"-Pii\": Constants.EMPTY_STRING}${options.context ? `:${options.context}` : Constants.EMPTY_STRING}`)(logMessage);\r\n this.executeCallback(options.logLevel, log, options.containsPii || false);\r\n };\r\n /**\r\n * Execute callback with message.\r\n */\r\n Logger.prototype.executeCallback = function (level, message, containsPii) {\r\n if (this.localCallback) {\r\n this.localCallback(level, message, containsPii);\r\n }\r\n };\r\n /**\r\n * Logs error messages.\r\n */\r\n Logger.prototype.error = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs error messages with PII.\r\n */\r\n Logger.prototype.errorPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs warning messages.\r\n */\r\n Logger.prototype.warning = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs warning messages with PII.\r\n */\r\n Logger.prototype.warningPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs info messages.\r\n */\r\n Logger.prototype.info = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs info messages with PII.\r\n */\r\n Logger.prototype.infoPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs verbose messages.\r\n */\r\n Logger.prototype.verbose = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs verbose messages with PII.\r\n */\r\n Logger.prototype.verbosePii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs trace messages.\r\n */\r\n Logger.prototype.trace = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Trace,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs trace messages with PII.\r\n */\r\n Logger.prototype.tracePii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Trace,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Returns whether PII Logging is enabled or not.\r\n */\r\n Logger.prototype.isPiiLoggingEnabled = function () {\r\n return this.piiLoggingEnabled || false;\r\n };\r\n return Logger;\r\n}());\n\nexport { LogLevel, Logger };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { AuthError } from '../error/AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar StubbedNetworkModule = {\r\n sendGetRequestAsync: function () {\r\n var notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented for the Network interface.\";\r\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n },\r\n sendPostRequestAsync: function () {\r\n var notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented for the Network interface.\";\r\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n }\r\n};\n\nexport { StubbedNetworkModule };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { ThrottlingUtils } from './ThrottlingUtils.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NetworkManager = /** @class */ (function () {\r\n function NetworkManager(networkClient, cacheManager) {\r\n this.networkClient = networkClient;\r\n this.cacheManager = cacheManager;\r\n }\r\n /**\r\n * Wraps sendPostRequestAsync with necessary preflight and postflight logic\r\n * @param thumbprint\r\n * @param tokenEndpoint\r\n * @param options\r\n */\r\n NetworkManager.prototype.sendPostRequest = function (thumbprint, tokenEndpoint, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n ThrottlingUtils.preProcess(this.cacheManager, thumbprint);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkClient.sendPostRequestAsync(tokenEndpoint, options)];\r\n case 2:\r\n response = _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n throw e_1;\r\n }\r\n else {\r\n throw ClientAuthError.createNetworkError(tokenEndpoint, e_1);\r\n }\r\n case 4:\r\n ThrottlingUtils.postProcess(this.cacheManager, thumbprint, response);\r\n return [2 /*return*/, response];\r\n }\r\n });\r\n });\r\n };\r\n return NetworkManager;\r\n}());\n\nexport { NetworkManager };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { ThrottlingConstants, Constants, HeaderNames } from '../utils/Constants.js';\nimport { ServerError } from '../error/ServerError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ThrottlingUtils = /** @class */ (function () {\r\n function ThrottlingUtils() {\r\n }\r\n /**\r\n * Prepares a RequestThumbprint to be stored as a key.\r\n * @param thumbprint\r\n */\r\n ThrottlingUtils.generateThrottlingStorageKey = function (thumbprint) {\r\n return ThrottlingConstants.THROTTLING_PREFIX + \".\" + JSON.stringify(thumbprint);\r\n };\r\n /**\r\n * Performs necessary throttling checks before a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n */\r\n ThrottlingUtils.preProcess = function (cacheManager, thumbprint) {\r\n var _a;\r\n var key = ThrottlingUtils.generateThrottlingStorageKey(thumbprint);\r\n var value = cacheManager.getThrottlingCache(key);\r\n if (value) {\r\n if (value.throttleTime < Date.now()) {\r\n cacheManager.removeItem(key);\r\n return;\r\n }\r\n throw new ServerError(((_a = value.errorCodes) === null || _a === void 0 ? void 0 : _a.join(\" \")) || Constants.EMPTY_STRING, value.errorMessage, value.subError);\r\n }\r\n };\r\n /**\r\n * Performs necessary throttling checks after a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n * @param response\r\n */\r\n ThrottlingUtils.postProcess = function (cacheManager, thumbprint, response) {\r\n if (ThrottlingUtils.checkResponseStatus(response) || ThrottlingUtils.checkResponseForRetryAfter(response)) {\r\n var thumbprintValue = {\r\n throttleTime: ThrottlingUtils.calculateThrottleTime(parseInt(response.headers[HeaderNames.RETRY_AFTER])),\r\n error: response.body.error,\r\n errorCodes: response.body.error_codes,\r\n errorMessage: response.body.error_description,\r\n subError: response.body.suberror\r\n };\r\n cacheManager.setThrottlingCache(ThrottlingUtils.generateThrottlingStorageKey(thumbprint), thumbprintValue);\r\n }\r\n };\r\n /**\r\n * Checks a NetworkResponse object's status codes against 429 or 5xx\r\n * @param response\r\n */\r\n ThrottlingUtils.checkResponseStatus = function (response) {\r\n return response.status === 429 || response.status >= 500 && response.status < 600;\r\n };\r\n /**\r\n * Checks a NetworkResponse object's RetryAfter header\r\n * @param response\r\n */\r\n ThrottlingUtils.checkResponseForRetryAfter = function (response) {\r\n if (response.headers) {\r\n return response.headers.hasOwnProperty(HeaderNames.RETRY_AFTER) && (response.status < 200 || response.status >= 300);\r\n }\r\n return false;\r\n };\r\n /**\r\n * Calculates the Unix-time value for a throttle to expire given throttleTime in seconds.\r\n * @param throttleTime\r\n */\r\n ThrottlingUtils.calculateThrottleTime = function (throttleTime) {\r\n var time = throttleTime <= 0 ? 0 : throttleTime;\r\n var currentSeconds = Date.now() / 1000;\r\n return Math.floor(Math.min(currentSeconds + (time || ThrottlingConstants.DEFAULT_THROTTLE_TIME_SECONDS), currentSeconds + ThrottlingConstants.DEFAULT_MAX_THROTTLE_TIME_SECONDS) * 1000);\r\n };\r\n ThrottlingUtils.removeThrottle = function (cacheManager, clientId, request, homeAccountIdentifier) {\r\n var thumbprint = {\r\n clientId: clientId,\r\n authority: request.authority,\r\n scopes: request.scopes,\r\n homeAccountIdentifier: homeAccountIdentifier,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n var key = this.generateThrottlingStorageKey(thumbprint);\r\n cacheManager.removeItem(key);\r\n };\r\n return ThrottlingUtils;\r\n}());\n\nexport { ThrottlingUtils };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\n/* eslint-disable header/header */\r\nvar name = \"@azure/msal-common\";\r\nvar version = \"13.0.0\";\n\nexport { name, version };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\nimport { AADServerParamKeys, Constants, ResponseMode, OIDC_DEFAULT_SCOPES, SSOTypes, HeaderNames, CLIENT_INFO, ClaimsRequestKeys, PasswordGrantConstants, AuthenticationScheme, ThrottlingConstants } from '../utils/Constants.js';\nimport { ScopeSet } from './ScopeSet.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { RequestValidator } from './RequestValidator.js';\nimport { StringUtils } from '../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RequestParameterBuilder = /** @class */ (function () {\r\n function RequestParameterBuilder() {\r\n this.parameters = new Map();\r\n }\r\n /**\r\n * add response_type = code\r\n */\r\n RequestParameterBuilder.prototype.addResponseTypeCode = function () {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.CODE_RESPONSE_TYPE));\r\n };\r\n /**\r\n * add response_type = token id_token\r\n */\r\n RequestParameterBuilder.prototype.addResponseTypeForTokenAndIdToken = function () {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.TOKEN_RESPONSE_TYPE + \" \" + Constants.ID_TOKEN_RESPONSE_TYPE));\r\n };\r\n /**\r\n * add response_mode. defaults to query.\r\n * @param responseMode\r\n */\r\n RequestParameterBuilder.prototype.addResponseMode = function (responseMode) {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_MODE, encodeURIComponent((responseMode) ? responseMode : ResponseMode.QUERY));\r\n };\r\n /**\r\n * Add flag to indicate STS should attempt to use WAM if available\r\n */\r\n RequestParameterBuilder.prototype.addNativeBroker = function () {\r\n this.parameters.set(AADServerParamKeys.NATIVE_BROKER, encodeURIComponent(\"1\"));\r\n };\r\n /**\r\n * add scopes. set addOidcScopes to false to prevent default scopes in non-user scenarios\r\n * @param scopeSet\r\n * @param addOidcScopes\r\n */\r\n RequestParameterBuilder.prototype.addScopes = function (scopes, addOidcScopes) {\r\n if (addOidcScopes === void 0) { addOidcScopes = true; }\r\n var requestScopes = addOidcScopes ? __spreadArrays(scopes || [], OIDC_DEFAULT_SCOPES) : scopes || [];\r\n var scopeSet = new ScopeSet(requestScopes);\r\n this.parameters.set(AADServerParamKeys.SCOPE, encodeURIComponent(scopeSet.printScopes()));\r\n };\r\n /**\r\n * add clientId\r\n * @param clientId\r\n */\r\n RequestParameterBuilder.prototype.addClientId = function (clientId) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ID, encodeURIComponent(clientId));\r\n };\r\n /**\r\n * add redirect_uri\r\n * @param redirectUri\r\n */\r\n RequestParameterBuilder.prototype.addRedirectUri = function (redirectUri) {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(AADServerParamKeys.REDIRECT_URI, encodeURIComponent(redirectUri));\r\n };\r\n /**\r\n * add post logout redirectUri\r\n * @param redirectUri\r\n */\r\n RequestParameterBuilder.prototype.addPostLogoutRedirectUri = function (redirectUri) {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(AADServerParamKeys.POST_LOGOUT_URI, encodeURIComponent(redirectUri));\r\n };\r\n /**\r\n * add id_token_hint to logout request\r\n * @param idTokenHint\r\n */\r\n RequestParameterBuilder.prototype.addIdTokenHint = function (idTokenHint) {\r\n this.parameters.set(AADServerParamKeys.ID_TOKEN_HINT, encodeURIComponent(idTokenHint));\r\n };\r\n /**\r\n * add domain_hint\r\n * @param domainHint\r\n */\r\n RequestParameterBuilder.prototype.addDomainHint = function (domainHint) {\r\n this.parameters.set(SSOTypes.DOMAIN_HINT, encodeURIComponent(domainHint));\r\n };\r\n /**\r\n * add login_hint\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addLoginHint = function (loginHint) {\r\n this.parameters.set(SSOTypes.LOGIN_HINT, encodeURIComponent(loginHint));\r\n };\r\n /**\r\n * Adds the CCS (Cache Credential Service) query parameter for login_hint\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addCcsUpn = function (loginHint) {\r\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(\"UPN:\" + loginHint));\r\n };\r\n /**\r\n * Adds the CCS (Cache Credential Service) query parameter for account object\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addCcsOid = function (clientInfo) {\r\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(\"Oid:\" + clientInfo.uid + \"@\" + clientInfo.utid));\r\n };\r\n /**\r\n * add sid\r\n * @param sid\r\n */\r\n RequestParameterBuilder.prototype.addSid = function (sid) {\r\n this.parameters.set(SSOTypes.SID, encodeURIComponent(sid));\r\n };\r\n /**\r\n * add claims\r\n * @param claims\r\n */\r\n RequestParameterBuilder.prototype.addClaims = function (claims, clientCapabilities) {\r\n var mergedClaims = this.addClientCapabilitiesToClaims(claims, clientCapabilities);\r\n RequestValidator.validateClaims(mergedClaims);\r\n this.parameters.set(AADServerParamKeys.CLAIMS, encodeURIComponent(mergedClaims));\r\n };\r\n /**\r\n * add correlationId\r\n * @param correlationId\r\n */\r\n RequestParameterBuilder.prototype.addCorrelationId = function (correlationId) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_REQUEST_ID, encodeURIComponent(correlationId));\r\n };\r\n /**\r\n * add library info query params\r\n * @param libraryInfo\r\n */\r\n RequestParameterBuilder.prototype.addLibraryInfo = function (libraryInfo) {\r\n // Telemetry Info\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_SKU, libraryInfo.sku);\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_VER, libraryInfo.version);\r\n if (libraryInfo.os) {\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_OS, libraryInfo.os);\r\n }\r\n if (libraryInfo.cpu) {\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_CPU, libraryInfo.cpu);\r\n }\r\n };\r\n /**\r\n * Add client telemetry parameters\r\n * @param appTelemetry\r\n */\r\n RequestParameterBuilder.prototype.addApplicationTelemetry = function (appTelemetry) {\r\n if (appTelemetry === null || appTelemetry === void 0 ? void 0 : appTelemetry.appName) {\r\n this.parameters.set(AADServerParamKeys.X_APP_NAME, appTelemetry.appName);\r\n }\r\n if (appTelemetry === null || appTelemetry === void 0 ? void 0 : appTelemetry.appVersion) {\r\n this.parameters.set(AADServerParamKeys.X_APP_VER, appTelemetry.appVersion);\r\n }\r\n };\r\n /**\r\n * add prompt\r\n * @param prompt\r\n */\r\n RequestParameterBuilder.prototype.addPrompt = function (prompt) {\r\n RequestValidator.validatePrompt(prompt);\r\n this.parameters.set(\"\" + AADServerParamKeys.PROMPT, encodeURIComponent(prompt));\r\n };\r\n /**\r\n * add state\r\n * @param state\r\n */\r\n RequestParameterBuilder.prototype.addState = function (state) {\r\n if (!StringUtils.isEmpty(state)) {\r\n this.parameters.set(AADServerParamKeys.STATE, encodeURIComponent(state));\r\n }\r\n };\r\n /**\r\n * add nonce\r\n * @param nonce\r\n */\r\n RequestParameterBuilder.prototype.addNonce = function (nonce) {\r\n this.parameters.set(AADServerParamKeys.NONCE, encodeURIComponent(nonce));\r\n };\r\n /**\r\n * add code_challenge and code_challenge_method\r\n * - throw if either of them are not passed\r\n * @param codeChallenge\r\n * @param codeChallengeMethod\r\n */\r\n RequestParameterBuilder.prototype.addCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {\r\n RequestValidator.validateCodeChallengeParams(codeChallenge, codeChallengeMethod);\r\n if (codeChallenge && codeChallengeMethod) {\r\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE, encodeURIComponent(codeChallenge));\r\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE_METHOD, encodeURIComponent(codeChallengeMethod));\r\n }\r\n else {\r\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\r\n }\r\n };\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n RequestParameterBuilder.prototype.addAuthorizationCode = function (code) {\r\n this.parameters.set(AADServerParamKeys.CODE, encodeURIComponent(code));\r\n };\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n RequestParameterBuilder.prototype.addDeviceCode = function (code) {\r\n this.parameters.set(AADServerParamKeys.DEVICE_CODE, encodeURIComponent(code));\r\n };\r\n /**\r\n * add the `refreshToken` passed by the user\r\n * @param refreshToken\r\n */\r\n RequestParameterBuilder.prototype.addRefreshToken = function (refreshToken) {\r\n this.parameters.set(AADServerParamKeys.REFRESH_TOKEN, encodeURIComponent(refreshToken));\r\n };\r\n /**\r\n * add the `code_verifier` passed by the user to exchange for a token\r\n * @param codeVerifier\r\n */\r\n RequestParameterBuilder.prototype.addCodeVerifier = function (codeVerifier) {\r\n this.parameters.set(AADServerParamKeys.CODE_VERIFIER, encodeURIComponent(codeVerifier));\r\n };\r\n /**\r\n * add client_secret\r\n * @param clientSecret\r\n */\r\n RequestParameterBuilder.prototype.addClientSecret = function (clientSecret) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_SECRET, encodeURIComponent(clientSecret));\r\n };\r\n /**\r\n * add clientAssertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n RequestParameterBuilder.prototype.addClientAssertion = function (clientAssertion) {\r\n if (!StringUtils.isEmpty(clientAssertion)) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION, encodeURIComponent(clientAssertion));\r\n }\r\n };\r\n /**\r\n * add clientAssertionType for confidential client flows\r\n * @param clientAssertionType\r\n */\r\n RequestParameterBuilder.prototype.addClientAssertionType = function (clientAssertionType) {\r\n if (!StringUtils.isEmpty(clientAssertionType)) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION_TYPE, encodeURIComponent(clientAssertionType));\r\n }\r\n };\r\n /**\r\n * add OBO assertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n RequestParameterBuilder.prototype.addOboAssertion = function (oboAssertion) {\r\n this.parameters.set(AADServerParamKeys.OBO_ASSERTION, encodeURIComponent(oboAssertion));\r\n };\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n RequestParameterBuilder.prototype.addRequestTokenUse = function (tokenUse) {\r\n this.parameters.set(AADServerParamKeys.REQUESTED_TOKEN_USE, encodeURIComponent(tokenUse));\r\n };\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n RequestParameterBuilder.prototype.addGrantType = function (grantType) {\r\n this.parameters.set(AADServerParamKeys.GRANT_TYPE, encodeURIComponent(grantType));\r\n };\r\n /**\r\n * add client info\r\n *\r\n */\r\n RequestParameterBuilder.prototype.addClientInfo = function () {\r\n this.parameters.set(CLIENT_INFO, \"1\");\r\n };\r\n /**\r\n * add extraQueryParams\r\n * @param eQParams\r\n */\r\n RequestParameterBuilder.prototype.addExtraQueryParameters = function (eQParams) {\r\n var _this = this;\r\n var sanitizedEQParams = RequestValidator.sanitizeEQParams(eQParams, this.parameters);\r\n Object.keys(sanitizedEQParams).forEach(function (key) {\r\n _this.parameters.set(key, eQParams[key]);\r\n });\r\n };\r\n RequestParameterBuilder.prototype.addClientCapabilitiesToClaims = function (claims, clientCapabilities) {\r\n var mergedClaims;\r\n // Parse provided claims into JSON object or initialize empty object\r\n if (!claims) {\r\n mergedClaims = {};\r\n }\r\n else {\r\n try {\r\n mergedClaims = JSON.parse(claims);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidClaimsRequestError();\r\n }\r\n }\r\n if (clientCapabilities && clientCapabilities.length > 0) {\r\n if (!mergedClaims.hasOwnProperty(ClaimsRequestKeys.ACCESS_TOKEN)) {\r\n // Add access_token key to claims object\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN] = {};\r\n }\r\n // Add xms_cc claim with provided clientCapabilities to access_token key\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN][ClaimsRequestKeys.XMS_CC] = {\r\n values: clientCapabilities\r\n };\r\n }\r\n return JSON.stringify(mergedClaims);\r\n };\r\n /**\r\n * adds `username` for Password Grant flow\r\n * @param username\r\n */\r\n RequestParameterBuilder.prototype.addUsername = function (username) {\r\n this.parameters.set(PasswordGrantConstants.username, encodeURIComponent(username));\r\n };\r\n /**\r\n * adds `password` for Password Grant flow\r\n * @param password\r\n */\r\n RequestParameterBuilder.prototype.addPassword = function (password) {\r\n this.parameters.set(PasswordGrantConstants.password, encodeURIComponent(password));\r\n };\r\n /**\r\n * add pop_jwk to query params\r\n * @param cnfString\r\n */\r\n RequestParameterBuilder.prototype.addPopToken = function (cnfString) {\r\n if (!StringUtils.isEmpty(cnfString)) {\r\n this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.POP);\r\n this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(cnfString));\r\n }\r\n };\r\n /**\r\n * add SSH JWK and key ID to query params\r\n */\r\n RequestParameterBuilder.prototype.addSshJwk = function (sshJwkString) {\r\n if (!StringUtils.isEmpty(sshJwkString)) {\r\n this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.SSH);\r\n this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(sshJwkString));\r\n }\r\n };\r\n /**\r\n * add server telemetry fields\r\n * @param serverTelemetryManager\r\n */\r\n RequestParameterBuilder.prototype.addServerTelemetry = function (serverTelemetryManager) {\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_CURR_TELEM, serverTelemetryManager.generateCurrentRequestHeaderValue());\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_LAST_TELEM, serverTelemetryManager.generateLastRequestHeaderValue());\r\n };\r\n /**\r\n * Adds parameter that indicates to the server that throttling is supported\r\n */\r\n RequestParameterBuilder.prototype.addThrottling = function () {\r\n this.parameters.set(AADServerParamKeys.X_MS_LIB_CAPABILITY, ThrottlingConstants.X_MS_LIB_CAPABILITY_VALUE);\r\n };\r\n /**\r\n * Adds logout_hint parameter for \"silent\" logout which prevent server account picker\r\n */\r\n RequestParameterBuilder.prototype.addLogoutHint = function (logoutHint) {\r\n this.parameters.set(AADServerParamKeys.LOGOUT_HINT, encodeURIComponent(logoutHint));\r\n };\r\n /**\r\n * Utility to create a URL from the params map\r\n */\r\n RequestParameterBuilder.prototype.createQueryString = function () {\r\n var queryParameterArray = new Array();\r\n this.parameters.forEach(function (value, key) {\r\n queryParameterArray.push(key + \"=\" + value);\r\n });\r\n return queryParameterArray.join(\"&\");\r\n };\r\n return RequestParameterBuilder;\r\n}());\n\nexport { RequestParameterBuilder };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { CodeChallengeMethodValues, PromptValue } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Validates server consumable params from the \"request\" objects\r\n */\r\nvar RequestValidator = /** @class */ (function () {\r\n function RequestValidator() {\r\n }\r\n /**\r\n * Utility to check if the `redirectUri` in the request is a non-null value\r\n * @param redirectUri\r\n */\r\n RequestValidator.validateRedirectUri = function (redirectUri) {\r\n if (StringUtils.isEmpty(redirectUri)) {\r\n throw ClientConfigurationError.createRedirectUriEmptyError();\r\n }\r\n };\r\n /**\r\n * Utility to validate prompt sent by the user in the request\r\n * @param prompt\r\n */\r\n RequestValidator.validatePrompt = function (prompt) {\r\n var promptValues = [];\r\n for (var value in PromptValue) {\r\n promptValues.push(PromptValue[value]);\r\n }\r\n if (promptValues.indexOf(prompt) < 0) {\r\n throw ClientConfigurationError.createInvalidPromptError(prompt);\r\n }\r\n };\r\n RequestValidator.validateClaims = function (claims) {\r\n try {\r\n JSON.parse(claims);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidClaimsRequestError();\r\n }\r\n };\r\n /**\r\n * Utility to validate code_challenge and code_challenge_method\r\n * @param codeChallenge\r\n * @param codeChallengeMethod\r\n */\r\n RequestValidator.validateCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {\r\n if (StringUtils.isEmpty(codeChallenge) || StringUtils.isEmpty(codeChallengeMethod)) {\r\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\r\n }\r\n else {\r\n this.validateCodeChallengeMethod(codeChallengeMethod);\r\n }\r\n };\r\n /**\r\n * Utility to validate code_challenge_method\r\n * @param codeChallengeMethod\r\n */\r\n RequestValidator.validateCodeChallengeMethod = function (codeChallengeMethod) {\r\n if ([\r\n CodeChallengeMethodValues.PLAIN,\r\n CodeChallengeMethodValues.S256\r\n ].indexOf(codeChallengeMethod) < 0) {\r\n throw ClientConfigurationError.createInvalidCodeChallengeMethodError();\r\n }\r\n };\r\n /**\r\n * Removes unnecessary, duplicate, and empty string query parameters from extraQueryParameters\r\n * @param request\r\n */\r\n RequestValidator.sanitizeEQParams = function (eQParams, queryParams) {\r\n if (!eQParams) {\r\n return {};\r\n }\r\n // Remove any query parameters already included in SSO params\r\n queryParams.forEach(function (value, key) {\r\n if (eQParams[key]) {\r\n delete eQParams[key];\r\n }\r\n });\r\n // remove empty string parameters\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n return Object.fromEntries(Object.entries(eQParams).filter(function (_a) {\r\n var value = _a[1];\r\n return value !== \"\";\r\n }));\r\n };\r\n return RequestValidator;\r\n}());\n\nexport { RequestValidator };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { Constants, OIDC_SCOPES } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The ScopeSet class creates a set of scopes. Scopes are case-insensitive, unique values, so the Set object in JS makes\r\n * the most sense to implement for this class. All scopes are trimmed and converted to lower case strings in intersection and union functions\r\n * to ensure uniqueness of strings.\r\n */\r\nvar ScopeSet = /** @class */ (function () {\r\n function ScopeSet(inputScopes) {\r\n var _this = this;\r\n // Filter empty string and null/undefined array items\r\n var scopeArr = inputScopes ? StringUtils.trimArrayEntries(__spreadArrays(inputScopes)) : [];\r\n var filteredInput = scopeArr ? StringUtils.removeEmptyStringsFromArray(scopeArr) : [];\r\n // Validate and filter scopes (validate function throws if validation fails)\r\n this.validateInputScopes(filteredInput);\r\n this.scopes = new Set(); // Iterator in constructor not supported by IE11\r\n filteredInput.forEach(function (scope) { return _this.scopes.add(scope); });\r\n }\r\n /**\r\n * Factory method to create ScopeSet from space-delimited string\r\n * @param inputScopeString\r\n * @param appClientId\r\n * @param scopesRequired\r\n */\r\n ScopeSet.fromString = function (inputScopeString) {\r\n var scopeString = inputScopeString || Constants.EMPTY_STRING;\r\n var inputScopes = scopeString.split(\" \");\r\n return new ScopeSet(inputScopes);\r\n };\r\n /**\r\n * Creates the set of scopes to search for in cache lookups\r\n * @param inputScopeString\r\n * @returns\r\n */\r\n ScopeSet.createSearchScopes = function (inputScopeString) {\r\n var scopeSet = new ScopeSet(inputScopeString);\r\n if (!scopeSet.containsOnlyOIDCScopes()) {\r\n scopeSet.removeOIDCScopes();\r\n }\r\n else {\r\n scopeSet.removeScope(Constants.OFFLINE_ACCESS_SCOPE);\r\n }\r\n return scopeSet;\r\n };\r\n /**\r\n * Used to validate the scopes input parameter requested by the developer.\r\n * @param {Array} inputScopes - Developer requested permissions. Not all scopes are guaranteed to be included in the access token returned.\r\n * @param {boolean} scopesRequired - Boolean indicating whether the scopes array is required or not\r\n */\r\n ScopeSet.prototype.validateInputScopes = function (inputScopes) {\r\n // Check if scopes are required but not given or is an empty array\r\n if (!inputScopes || inputScopes.length < 1) {\r\n throw ClientConfigurationError.createEmptyScopesArrayError();\r\n }\r\n };\r\n /**\r\n * Check if a given scope is present in this set of scopes.\r\n * @param scope\r\n */\r\n ScopeSet.prototype.containsScope = function (scope) {\r\n var lowerCaseScopes = this.printScopesLowerCase().split(\" \");\r\n var lowerCaseScopesSet = new ScopeSet(lowerCaseScopes);\r\n // compare lowercase scopes\r\n return !StringUtils.isEmpty(scope) ? lowerCaseScopesSet.scopes.has(scope.toLowerCase()) : false;\r\n };\r\n /**\r\n * Check if a set of scopes is present in this set of scopes.\r\n * @param scopeSet\r\n */\r\n ScopeSet.prototype.containsScopeSet = function (scopeSet) {\r\n var _this = this;\r\n if (!scopeSet || scopeSet.scopes.size <= 0) {\r\n return false;\r\n }\r\n return (this.scopes.size >= scopeSet.scopes.size && scopeSet.asArray().every(function (scope) { return _this.containsScope(scope); }));\r\n };\r\n /**\r\n * Check if set of scopes contains only the defaults\r\n */\r\n ScopeSet.prototype.containsOnlyOIDCScopes = function () {\r\n var _this = this;\r\n var defaultScopeCount = 0;\r\n OIDC_SCOPES.forEach(function (defaultScope) {\r\n if (_this.containsScope(defaultScope)) {\r\n defaultScopeCount += 1;\r\n }\r\n });\r\n return this.scopes.size === defaultScopeCount;\r\n };\r\n /**\r\n * Appends single scope if passed\r\n * @param newScope\r\n */\r\n ScopeSet.prototype.appendScope = function (newScope) {\r\n if (!StringUtils.isEmpty(newScope)) {\r\n this.scopes.add(newScope.trim());\r\n }\r\n };\r\n /**\r\n * Appends multiple scopes if passed\r\n * @param newScopes\r\n */\r\n ScopeSet.prototype.appendScopes = function (newScopes) {\r\n var _this = this;\r\n try {\r\n newScopes.forEach(function (newScope) { return _this.appendScope(newScope); });\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createAppendScopeSetError(e);\r\n }\r\n };\r\n /**\r\n * Removes element from set of scopes.\r\n * @param scope\r\n */\r\n ScopeSet.prototype.removeScope = function (scope) {\r\n if (StringUtils.isEmpty(scope)) {\r\n throw ClientAuthError.createRemoveEmptyScopeFromSetError(scope);\r\n }\r\n this.scopes.delete(scope.trim());\r\n };\r\n /**\r\n * Removes default scopes from set of scopes\r\n * Primarily used to prevent cache misses if the default scopes are not returned from the server\r\n */\r\n ScopeSet.prototype.removeOIDCScopes = function () {\r\n var _this = this;\r\n OIDC_SCOPES.forEach(function (defaultScope) {\r\n _this.scopes.delete(defaultScope);\r\n });\r\n };\r\n /**\r\n * Combines an array of scopes with the current set of scopes.\r\n * @param otherScopes\r\n */\r\n ScopeSet.prototype.unionScopeSets = function (otherScopes) {\r\n if (!otherScopes) {\r\n throw ClientAuthError.createEmptyInputScopeSetError();\r\n }\r\n var unionScopes = new Set(); // Iterator in constructor not supported in IE11\r\n otherScopes.scopes.forEach(function (scope) { return unionScopes.add(scope.toLowerCase()); });\r\n this.scopes.forEach(function (scope) { return unionScopes.add(scope.toLowerCase()); });\r\n return unionScopes;\r\n };\r\n /**\r\n * Check if scopes intersect between this set and another.\r\n * @param otherScopes\r\n */\r\n ScopeSet.prototype.intersectingScopeSets = function (otherScopes) {\r\n if (!otherScopes) {\r\n throw ClientAuthError.createEmptyInputScopeSetError();\r\n }\r\n // Do not allow OIDC scopes to be the only intersecting scopes\r\n if (!otherScopes.containsOnlyOIDCScopes()) {\r\n otherScopes.removeOIDCScopes();\r\n }\r\n var unionScopes = this.unionScopeSets(otherScopes);\r\n var sizeOtherScopes = otherScopes.getScopeCount();\r\n var sizeThisScopes = this.getScopeCount();\r\n var sizeUnionScopes = unionScopes.size;\r\n return sizeUnionScopes < (sizeThisScopes + sizeOtherScopes);\r\n };\r\n /**\r\n * Returns size of set of scopes.\r\n */\r\n ScopeSet.prototype.getScopeCount = function () {\r\n return this.scopes.size;\r\n };\r\n /**\r\n * Returns the scopes as an array of string values\r\n */\r\n ScopeSet.prototype.asArray = function () {\r\n var array = [];\r\n this.scopes.forEach(function (val) { return array.push(val); });\r\n return array;\r\n };\r\n /**\r\n * Prints scopes into a space-delimited string\r\n */\r\n ScopeSet.prototype.printScopes = function () {\r\n if (this.scopes) {\r\n var scopeArr = this.asArray();\r\n return scopeArr.join(\" \");\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n /**\r\n * Prints scopes into a space-delimited lower-case string (used for caching)\r\n */\r\n ScopeSet.prototype.printScopesLowerCase = function () {\r\n return this.printScopes().toLowerCase();\r\n };\r\n return ScopeSet;\r\n}());\n\nexport { ScopeSet };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { buildClientInfo } from '../account/ClientInfo.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ServerError } from '../error/ServerError.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { ScopeSet } from '../request/ScopeSet.js';\nimport { AccountEntity } from '../cache/entities/AccountEntity.js';\nimport { AuthorityType } from '../authority/AuthorityType.js';\nimport { IdTokenEntity } from '../cache/entities/IdTokenEntity.js';\nimport { AccessTokenEntity } from '../cache/entities/AccessTokenEntity.js';\nimport { RefreshTokenEntity } from '../cache/entities/RefreshTokenEntity.js';\nimport { InteractionRequiredAuthError } from '../error/InteractionRequiredAuthError.js';\nimport { CacheRecord } from '../cache/entities/CacheRecord.js';\nimport { ProtocolUtils } from '../utils/ProtocolUtils.js';\nimport { Constants, AuthenticationScheme, THE_FAMILY_ID } from '../utils/Constants.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { AppMetadataEntity } from '../cache/entities/AppMetadataEntity.js';\nimport { TokenCacheContext } from '../cache/persistence/TokenCacheContext.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class that handles response parsing.\r\n */\r\nvar ResponseHandler = /** @class */ (function () {\r\n function ResponseHandler(clientId, cacheStorage, cryptoObj, logger, serializableCache, persistencePlugin, performanceClient) {\r\n this.clientId = clientId;\r\n this.cacheStorage = cacheStorage;\r\n this.cryptoObj = cryptoObj;\r\n this.logger = logger;\r\n this.serializableCache = serializableCache;\r\n this.persistencePlugin = persistencePlugin;\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Function which validates server authorization code response.\r\n * @param serverResponseHash\r\n * @param cachedState\r\n * @param cryptoObj\r\n */\r\n ResponseHandler.prototype.validateServerAuthorizationCodeResponse = function (serverResponseHash, cachedState, cryptoObj) {\r\n if (!serverResponseHash.state || !cachedState) {\r\n throw !serverResponseHash.state ? ClientAuthError.createStateNotFoundError(\"Server State\") : ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n if (decodeURIComponent(serverResponseHash.state) !== decodeURIComponent(cachedState)) {\r\n throw ClientAuthError.createStateMismatchError();\r\n }\r\n // Check for error\r\n if (serverResponseHash.error || serverResponseHash.error_description || serverResponseHash.suberror) {\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponseHash.error, serverResponseHash.error_description, serverResponseHash.suberror)) {\r\n throw new InteractionRequiredAuthError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror, serverResponseHash.timestamp || Constants.EMPTY_STRING, serverResponseHash.trace_id || Constants.EMPTY_STRING, serverResponseHash.correlation_id || Constants.EMPTY_STRING, serverResponseHash.claims || Constants.EMPTY_STRING);\r\n }\r\n throw new ServerError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror);\r\n }\r\n if (serverResponseHash.client_info) {\r\n buildClientInfo(serverResponseHash.client_info, cryptoObj);\r\n }\r\n };\r\n /**\r\n * Function which validates server authorization token response.\r\n * @param serverResponse\r\n */\r\n ResponseHandler.prototype.validateTokenResponse = function (serverResponse) {\r\n // Check for error\r\n if (serverResponse.error || serverResponse.error_description || serverResponse.suberror) {\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponse.error, serverResponse.error_description, serverResponse.suberror)) {\r\n throw new InteractionRequiredAuthError(serverResponse.error, serverResponse.error_description, serverResponse.suberror, serverResponse.timestamp || Constants.EMPTY_STRING, serverResponse.trace_id || Constants.EMPTY_STRING, serverResponse.correlation_id || Constants.EMPTY_STRING, serverResponse.claims || Constants.EMPTY_STRING);\r\n }\r\n var errString = serverResponse.error_codes + \" - [\" + serverResponse.timestamp + \"]: \" + serverResponse.error_description + \" - Correlation ID: \" + serverResponse.correlation_id + \" - Trace ID: \" + serverResponse.trace_id;\r\n throw new ServerError(serverResponse.error, errString, serverResponse.suberror);\r\n }\r\n };\r\n /**\r\n * Returns a constructed token response based on given string. Also manages the cache updates and cleanups.\r\n * @param serverTokenResponse\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.handleServerTokenResponse = function (serverTokenResponse, authority, reqTimestamp, request, authCodePayload, userAssertionHash, handlingRefreshTokenResponse, forceCacheRefreshTokenResponse, serverRequestId) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var idTokenObj, authTime, requestStateObj, cacheRecord, cacheContext, key, account;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.HandleServerTokenResponse, serverTokenResponse.correlation_id);\r\n if (serverTokenResponse.id_token) {\r\n idTokenObj = new AuthToken(serverTokenResponse.id_token || Constants.EMPTY_STRING, this.cryptoObj);\r\n // token nonce check (TODO: Add a warning if no nonce is given?)\r\n if (authCodePayload && !StringUtils.isEmpty(authCodePayload.nonce)) {\r\n if (idTokenObj.claims.nonce !== authCodePayload.nonce) {\r\n throw ClientAuthError.createNonceMismatchError();\r\n }\r\n }\r\n // token max_age check\r\n if (request.maxAge || (request.maxAge === 0)) {\r\n authTime = idTokenObj.claims.auth_time;\r\n if (!authTime) {\r\n throw ClientAuthError.createAuthTimeNotFoundError();\r\n }\r\n AuthToken.checkMaxAge(authTime, request.maxAge);\r\n }\r\n }\r\n // generate homeAccountId\r\n this.homeAccountIdentifier = AccountEntity.generateHomeAccountId(serverTokenResponse.client_info || Constants.EMPTY_STRING, authority.authorityType, this.logger, this.cryptoObj, idTokenObj);\r\n if (!!authCodePayload && !!authCodePayload.state) {\r\n requestStateObj = ProtocolUtils.parseRequestState(this.cryptoObj, authCodePayload.state);\r\n }\r\n // Add keyId from request to serverTokenResponse if defined\r\n serverTokenResponse.key_id = serverTokenResponse.key_id || request.sshKid || undefined;\r\n cacheRecord = this.generateCacheRecord(serverTokenResponse, authority, reqTimestamp, request, idTokenObj, userAssertionHash, authCodePayload);\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, , 5, 8]);\r\n if (!(this.persistencePlugin && this.serializableCache)) return [3 /*break*/, 3];\r\n this.logger.verbose(\"Persistence enabled, calling beforeCacheAccess\");\r\n cacheContext = new TokenCacheContext(this.serializableCache, true);\r\n return [4 /*yield*/, this.persistencePlugin.beforeCacheAccess(cacheContext)];\r\n case 2:\r\n _b.sent();\r\n _b.label = 3;\r\n case 3:\r\n /*\r\n * When saving a refreshed tokens to the cache, it is expected that the account that was used is present in the cache.\r\n * If not present, we should return null, as it's the case that another application called removeAccount in between\r\n * the calls to getAllAccounts and acquireTokenSilent. We should not overwrite that removal, unless explicitly flagged by\r\n * the developer, as in the case of refresh token flow used in ADAL Node to MSAL Node migration.\r\n */\r\n if (handlingRefreshTokenResponse && !forceCacheRefreshTokenResponse && cacheRecord.account) {\r\n key = cacheRecord.account.generateAccountKey();\r\n account = this.cacheStorage.getAccount(key);\r\n if (!account) {\r\n this.logger.warning(\"Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache\");\r\n return [2 /*return*/, ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj, undefined, serverRequestId)];\r\n }\r\n }\r\n return [4 /*yield*/, this.cacheStorage.saveCacheRecord(cacheRecord)];\r\n case 4:\r\n _b.sent();\r\n return [3 /*break*/, 8];\r\n case 5:\r\n if (!(this.persistencePlugin && this.serializableCache && cacheContext)) return [3 /*break*/, 7];\r\n this.logger.verbose(\"Persistence enabled, calling afterCacheAccess\");\r\n return [4 /*yield*/, this.persistencePlugin.afterCacheAccess(cacheContext)];\r\n case 6:\r\n _b.sent();\r\n _b.label = 7;\r\n case 7: return [7 /*endfinally*/];\r\n case 8: return [2 /*return*/, ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj, serverTokenResponse, serverRequestId)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates CacheRecord\r\n * @param serverTokenResponse\r\n * @param idTokenObj\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.generateCacheRecord = function (serverTokenResponse, authority, reqTimestamp, request, idTokenObj, userAssertionHash, authCodePayload) {\r\n var env = authority.getPreferredCache();\r\n if (StringUtils.isEmpty(env)) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n // IdToken: non AAD scenarios can have empty realm\r\n var cachedIdToken;\r\n var cachedAccount;\r\n if (!StringUtils.isEmpty(serverTokenResponse.id_token) && !!idTokenObj) {\r\n cachedIdToken = IdTokenEntity.createIdTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.id_token || Constants.EMPTY_STRING, this.clientId, idTokenObj.claims.tid || Constants.EMPTY_STRING);\r\n cachedAccount = this.generateAccountEntity(serverTokenResponse, idTokenObj, authority, authCodePayload);\r\n }\r\n // AccessToken\r\n var cachedAccessToken = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.access_token)) {\r\n // If scopes not returned in server response, use request scopes\r\n var responseScopes = serverTokenResponse.scope ? ScopeSet.fromString(serverTokenResponse.scope) : new ScopeSet(request.scopes || []);\r\n /*\r\n * Use timestamp calculated before request\r\n * Server may return timestamps as strings, parse to numbers if so.\r\n */\r\n var expiresIn = (typeof serverTokenResponse.expires_in === \"string\" ? parseInt(serverTokenResponse.expires_in, 10) : serverTokenResponse.expires_in) || 0;\r\n var extExpiresIn = (typeof serverTokenResponse.ext_expires_in === \"string\" ? parseInt(serverTokenResponse.ext_expires_in, 10) : serverTokenResponse.ext_expires_in) || 0;\r\n var refreshIn = (typeof serverTokenResponse.refresh_in === \"string\" ? parseInt(serverTokenResponse.refresh_in, 10) : serverTokenResponse.refresh_in) || undefined;\r\n var tokenExpirationSeconds = reqTimestamp + expiresIn;\r\n var extendedTokenExpirationSeconds = tokenExpirationSeconds + extExpiresIn;\r\n var refreshOnSeconds = refreshIn && refreshIn > 0 ? reqTimestamp + refreshIn : undefined;\r\n // non AAD scenarios can have empty realm\r\n cachedAccessToken = AccessTokenEntity.createAccessTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.access_token || Constants.EMPTY_STRING, this.clientId, idTokenObj ? idTokenObj.claims.tid || Constants.EMPTY_STRING : authority.tenant, responseScopes.printScopes(), tokenExpirationSeconds, extendedTokenExpirationSeconds, this.cryptoObj, refreshOnSeconds, serverTokenResponse.token_type, userAssertionHash, serverTokenResponse.key_id, request.claims, request.requestedClaimsHash);\r\n }\r\n // refreshToken\r\n var cachedRefreshToken = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.refresh_token)) {\r\n cachedRefreshToken = RefreshTokenEntity.createRefreshTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.refresh_token || Constants.EMPTY_STRING, this.clientId, serverTokenResponse.foci, userAssertionHash);\r\n }\r\n // appMetadata\r\n var cachedAppMetadata = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.foci)) {\r\n cachedAppMetadata = AppMetadataEntity.createAppMetadataEntity(this.clientId, env, serverTokenResponse.foci);\r\n }\r\n return new CacheRecord(cachedAccount, cachedIdToken, cachedAccessToken, cachedRefreshToken, cachedAppMetadata);\r\n };\r\n /**\r\n * Generate Account\r\n * @param serverTokenResponse\r\n * @param idToken\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.generateAccountEntity = function (serverTokenResponse, idToken, authority, authCodePayload) {\r\n var authorityType = authority.authorityType;\r\n var cloudGraphHostName = authCodePayload ? authCodePayload.cloud_graph_host_name : Constants.EMPTY_STRING;\r\n var msGraphhost = authCodePayload ? authCodePayload.msgraph_host : Constants.EMPTY_STRING;\r\n // ADFS does not require client_info in the response\r\n if (authorityType === AuthorityType.Adfs) {\r\n this.logger.verbose(\"Authority type is ADFS, creating ADFS account\");\r\n return AccountEntity.createGenericAccount(this.homeAccountIdentifier, idToken, authority, cloudGraphHostName, msGraphhost);\r\n }\r\n // This fallback applies to B2C as well as they fall under an AAD account type.\r\n if (StringUtils.isEmpty(serverTokenResponse.client_info) && authority.protocolMode === \"AAD\") {\r\n throw ClientAuthError.createClientInfoEmptyError();\r\n }\r\n return serverTokenResponse.client_info ?\r\n AccountEntity.createAccount(serverTokenResponse.client_info, this.homeAccountIdentifier, idToken, authority, cloudGraphHostName, msGraphhost) :\r\n AccountEntity.createGenericAccount(this.homeAccountIdentifier, idToken, authority, cloudGraphHostName, msGraphhost);\r\n };\r\n /**\r\n * Creates an @AuthenticationResult from @CacheRecord , @IdToken , and a boolean that states whether or not the result is from cache.\r\n *\r\n * Optionally takes a state string that is set as-is in the response.\r\n *\r\n * @param cacheRecord\r\n * @param idTokenObj\r\n * @param fromTokenCache\r\n * @param stateString\r\n */\r\n ResponseHandler.generateAuthenticationResult = function (cryptoObj, authority, cacheRecord, fromTokenCache, request, idTokenObj, requestState, serverTokenResponse, requestId) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var accessToken, responseScopes, expiresOn, extExpiresOn, familyId, popTokenGenerator, _d, secret, keyId, uid, tid;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n accessToken = Constants.EMPTY_STRING;\r\n responseScopes = [];\r\n expiresOn = null;\r\n familyId = Constants.EMPTY_STRING;\r\n if (!cacheRecord.accessToken) return [3 /*break*/, 4];\r\n if (!(cacheRecord.accessToken.tokenType === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(cryptoObj);\r\n _d = cacheRecord.accessToken, secret = _d.secret, keyId = _d.keyId;\r\n if (!keyId) {\r\n throw ClientAuthError.createKeyIdMissingError();\r\n }\r\n return [4 /*yield*/, popTokenGenerator.signPopToken(secret, keyId, request)];\r\n case 1:\r\n accessToken = _e.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n accessToken = cacheRecord.accessToken.secret;\r\n _e.label = 3;\r\n case 3:\r\n responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();\r\n expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);\r\n extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);\r\n _e.label = 4;\r\n case 4:\r\n if (cacheRecord.appMetadata) {\r\n familyId = cacheRecord.appMetadata.familyId === THE_FAMILY_ID ? THE_FAMILY_ID : Constants.EMPTY_STRING;\r\n }\r\n uid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.oid) || (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.sub) || Constants.EMPTY_STRING;\r\n tid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.tid) || Constants.EMPTY_STRING;\r\n // for hybrid + native bridge enablement, send back the native account Id\r\n if ((serverTokenResponse === null || serverTokenResponse === void 0 ? void 0 : serverTokenResponse.spa_accountid) && !!cacheRecord.account) {\r\n cacheRecord.account.nativeAccountId = serverTokenResponse === null || serverTokenResponse === void 0 ? void 0 : serverTokenResponse.spa_accountid;\r\n }\r\n return [2 /*return*/, {\r\n authority: authority.canonicalAuthority,\r\n uniqueId: uid,\r\n tenantId: tid,\r\n scopes: responseScopes,\r\n account: cacheRecord.account ? cacheRecord.account.getAccountInfo() : null,\r\n idToken: idTokenObj ? idTokenObj.rawToken : Constants.EMPTY_STRING,\r\n idTokenClaims: idTokenObj ? idTokenObj.claims : {},\r\n accessToken: accessToken,\r\n fromCache: fromTokenCache,\r\n expiresOn: expiresOn,\r\n correlationId: request.correlationId,\r\n requestId: requestId || Constants.EMPTY_STRING,\r\n extExpiresOn: extExpiresOn,\r\n familyId: familyId,\r\n tokenType: ((_a = cacheRecord.accessToken) === null || _a === void 0 ? void 0 : _a.tokenType) || Constants.EMPTY_STRING,\r\n state: requestState ? requestState.userRequestState : Constants.EMPTY_STRING,\r\n cloudGraphHostName: ((_b = cacheRecord.account) === null || _b === void 0 ? void 0 : _b.cloudGraphHostName) || Constants.EMPTY_STRING,\r\n msGraphHost: ((_c = cacheRecord.account) === null || _c === void 0 ? void 0 : _c.msGraphHost) || Constants.EMPTY_STRING,\r\n code: serverTokenResponse === null || serverTokenResponse === void 0 ? void 0 : serverTokenResponse.spa_code,\r\n fromNativeBroker: false,\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n return ResponseHandler;\r\n}());\n\nexport { ResponseHandler };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __assign } from '../../_virtual/_tslib.js';\nimport { IntFields, PerformanceEventStatus } from './PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar PerformanceClient = /** @class */ (function () {\r\n /**\r\n * Creates an instance of PerformanceClient,\r\n * an abstract class containing core performance telemetry logic.\r\n *\r\n * @constructor\r\n * @param {string} clientId Client ID of the application\r\n * @param {string} authority Authority used by the application\r\n * @param {Logger} logger Logger used by the application\r\n * @param {string} libraryName Name of the library\r\n * @param {string} libraryVersion Version of the library\r\n */\r\n function PerformanceClient(clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry) {\r\n this.authority = authority;\r\n this.libraryName = libraryName;\r\n this.libraryVersion = libraryVersion;\r\n this.applicationTelemetry = applicationTelemetry;\r\n this.clientId = clientId;\r\n this.logger = logger;\r\n this.callbacks = new Map();\r\n this.eventsByCorrelationId = new Map();\r\n this.queueMeasurements = new Map();\r\n this.preQueueTimeByCorrelationId = new Map();\r\n }\r\n /**\r\n * Starts and returns an platform-specific implementation of IPerformanceMeasurement.\r\n * Note: this function can be changed to abstract at the next major version bump.\r\n *\r\n * @param {string} measureName\r\n * @param {string} correlationId\r\n * @returns {IPerformanceMeasurement}\r\n */\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n PerformanceClient.prototype.startPerformanceMeasurement = function (measureName, correlationId) {\r\n return {};\r\n };\r\n /**\r\n * Starts and returns an platform-specific implementation of IPerformanceMeasurement.\r\n * Note: this incorrectly-named function will be removed at the next major version bump.\r\n *\r\n * @param {string} measureName\r\n * @param {string} correlationId\r\n * @returns {IPerformanceMeasurement}\r\n */\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n PerformanceClient.prototype.startPerformanceMeasuremeant = function (measureName, correlationId) {\r\n return {};\r\n };\r\n /**\r\n * Get integral fields.\r\n * Override to change the set.\r\n */\r\n PerformanceClient.prototype.getIntFields = function () {\r\n return IntFields;\r\n };\r\n /**\r\n * Gets map of pre-queue times by correlation Id\r\n *\r\n * @param {PerformanceEvents} eventName\r\n * @param {string} correlationId\r\n * @returns {number}\r\n */\r\n PerformanceClient.prototype.getPreQueueTime = function (eventName, correlationId) {\r\n var preQueueEvent = this.preQueueTimeByCorrelationId.get(correlationId);\r\n if (!preQueueEvent) {\r\n this.logger.trace(\"PerformanceClient.getPreQueueTime: no pre-queue times found for correlationId: \" + correlationId + \", unable to add queue measurement\");\r\n return;\r\n }\r\n else if (preQueueEvent.name !== eventName) {\r\n this.logger.trace(\"PerformanceClient.getPreQueueTime: no pre-queue time found for \" + eventName + \", unable to add queue measurement\");\r\n return;\r\n }\r\n return preQueueEvent.time;\r\n };\r\n /**\r\n * Calculates the difference between current time and time when function was queued.\r\n * Note: It is possible to have 0 as the queue time if the current time and the queued time was the same.\r\n *\r\n * @param {number} preQueueTime\r\n * @param {number} currentTime\r\n * @returns {number}\r\n */\r\n PerformanceClient.prototype.calculateQueuedTime = function (preQueueTime, currentTime) {\r\n if (preQueueTime < 1) {\r\n this.logger.trace(\"PerformanceClient: preQueueTime should be a positive integer and not \" + preQueueTime);\r\n return 0;\r\n }\r\n if (currentTime < 1) {\r\n this.logger.trace(\"PerformanceClient: currentTime should be a positive integer and not \" + currentTime);\r\n return 0;\r\n }\r\n if (currentTime < preQueueTime) {\r\n this.logger.trace(\"PerformanceClient: currentTime is less than preQueueTime, check how time is being retrieved\");\r\n return 0;\r\n }\r\n return currentTime - preQueueTime;\r\n };\r\n /**\r\n * Adds queue measurement time to QueueMeasurements array for given correlation ID.\r\n *\r\n * @param {PerformanceEvents} eventName\r\n * @param {?string} correlationId\r\n * @param {?number} queueTime\r\n * @param {?boolean} manuallyCompleted - indicator for manually completed queue measurements\r\n * @returns\r\n */\r\n PerformanceClient.prototype.addQueueMeasurement = function (eventName, correlationId, queueTime, manuallyCompleted) {\r\n if (!correlationId) {\r\n this.logger.trace(\"PerformanceClient.addQueueMeasurement: correlationId not provided for \" + eventName + \", cannot add queue measurement\");\r\n return;\r\n }\r\n if (queueTime === 0) {\r\n // Possible for there to be no queue time after calculation\r\n this.logger.trace(\"PerformanceClient.addQueueMeasurement: queue time provided for \" + eventName + \" is \" + queueTime);\r\n }\r\n else if (!queueTime) {\r\n this.logger.trace(\"PerformanceClient.addQueueMeasurement: no queue time provided for \" + eventName);\r\n return;\r\n }\r\n var queueMeasurement = { eventName: eventName, queueTime: queueTime, manuallyCompleted: manuallyCompleted };\r\n // Adds to existing correlation Id if present in queueMeasurements\r\n var existingMeasurements = this.queueMeasurements.get(correlationId);\r\n if (existingMeasurements) {\r\n existingMeasurements.push(queueMeasurement);\r\n this.queueMeasurements.set(correlationId, existingMeasurements);\r\n }\r\n else {\r\n // Sets new correlation Id if not present in queueMeasurements\r\n this.logger.trace(\"PerformanceClient.addQueueMeasurement: adding correlationId \" + correlationId + \" to queue measurements\");\r\n var measurementArray = [queueMeasurement];\r\n this.queueMeasurements.set(correlationId, measurementArray);\r\n }\r\n // Delete processed pre-queue event.\r\n this.preQueueTimeByCorrelationId.delete(correlationId);\r\n };\r\n /**\r\n * Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.\r\n *\r\n * @param {PerformanceEvents} measureName\r\n * @param {?string} [correlationId]\r\n * @returns {InProgressPerformanceEvent}\r\n */\r\n PerformanceClient.prototype.startMeasurement = function (measureName, correlationId) {\r\n var _this = this;\r\n var _a, _b;\r\n // Generate a placeholder correlation if the request does not provide one\r\n var eventCorrelationId = correlationId || this.generateId();\r\n if (!correlationId) {\r\n this.logger.info(\"PerformanceClient: No correlation id provided for \" + measureName + \", generating\", eventCorrelationId);\r\n }\r\n // Duplicate code to address spelling error will be removed at the next major version bump.\r\n this.logger.trace(\"PerformanceClient: Performance measurement started for \" + measureName, eventCorrelationId);\r\n var performanceMeasurement = this.startPerformanceMeasuremeant(measureName, eventCorrelationId);\r\n performanceMeasurement.startMeasurement();\r\n var inProgressEvent = {\r\n eventId: this.generateId(),\r\n status: PerformanceEventStatus.InProgress,\r\n authority: this.authority,\r\n libraryName: this.libraryName,\r\n libraryVersion: this.libraryVersion,\r\n clientId: this.clientId,\r\n name: measureName,\r\n startTimeMs: Date.now(),\r\n correlationId: eventCorrelationId,\r\n appName: (_a = this.applicationTelemetry) === null || _a === void 0 ? void 0 : _a.appName,\r\n appVersion: (_b = this.applicationTelemetry) === null || _b === void 0 ? void 0 : _b.appVersion,\r\n };\r\n // Store in progress events so they can be discarded if not ended properly\r\n this.cacheEventByCorrelationId(inProgressEvent);\r\n // Return the event and functions the caller can use to properly end/flush the measurement\r\n return {\r\n endMeasurement: function (event) {\r\n return _this.endMeasurement(__assign(__assign({}, inProgressEvent), event), performanceMeasurement);\r\n },\r\n discardMeasurement: function () {\r\n return _this.discardMeasurements(inProgressEvent.correlationId);\r\n },\r\n addStaticFields: function (fields) {\r\n return _this.addStaticFields(fields, inProgressEvent.correlationId);\r\n },\r\n increment: function (counters) {\r\n return _this.increment(counters, inProgressEvent.correlationId);\r\n },\r\n measurement: performanceMeasurement,\r\n event: inProgressEvent\r\n };\r\n };\r\n /**\r\n * Stops measuring the performance for an operation. Should only be called directly by PerformanceClient classes,\r\n * as consumers should instead use the function returned by startMeasurement.\r\n * Adds a new field named as \"[event name]DurationMs\" for sub-measurements, completes and emits an event\r\n * otherwise.\r\n *\r\n * @param {PerformanceEvent} event\r\n * @param {IPerformanceMeasurement} measurement\r\n * @returns {(PerformanceEvent | null)}\r\n */\r\n PerformanceClient.prototype.endMeasurement = function (event, measurement) {\r\n var _this = this;\r\n var _a, _b;\r\n var rootEvent = this.eventsByCorrelationId.get(event.correlationId);\r\n if (!rootEvent) {\r\n this.logger.trace(\"PerformanceClient: Measurement not found for \" + event.eventId, event.correlationId);\r\n return null;\r\n }\r\n var isRoot = event.eventId === rootEvent.eventId;\r\n var queueInfo = {\r\n totalQueueTime: 0,\r\n totalQueueCount: 0,\r\n manuallyCompletedCount: 0\r\n };\r\n if (isRoot) {\r\n queueInfo = this.getQueueInfo(event.correlationId);\r\n this.discardCache(rootEvent.correlationId);\r\n }\r\n else {\r\n (_a = rootEvent.incompleteSubMeasurements) === null || _a === void 0 ? void 0 : _a.delete(event.eventId);\r\n }\r\n measurement === null || measurement === void 0 ? void 0 : measurement.endMeasurement();\r\n var durationMs = measurement === null || measurement === void 0 ? void 0 : measurement.flushMeasurement();\r\n // null indicates no measurement was taken (e.g. needed performance APIs not present)\r\n if (!durationMs) {\r\n this.logger.trace(\"PerformanceClient: Performance measurement not taken\", rootEvent.correlationId);\r\n return null;\r\n }\r\n this.logger.trace(\"PerformanceClient: Performance measurement ended for \" + event.name + \": \" + durationMs + \" ms\", event.correlationId);\r\n // Add sub-measurement attribute to root event.\r\n if (!isRoot) {\r\n rootEvent[event.name + \"DurationMs\"] = Math.floor(durationMs);\r\n return __assign({}, rootEvent);\r\n }\r\n var finalEvent = __assign(__assign({}, rootEvent), event);\r\n var incompleteSubsCount = 0;\r\n // Incomplete sub-measurements are discarded. They are likely an instrumentation bug that should be fixed.\r\n (_b = finalEvent.incompleteSubMeasurements) === null || _b === void 0 ? void 0 : _b.forEach(function (subMeasurement) {\r\n _this.logger.trace(\"PerformanceClient: Incomplete submeasurement \" + subMeasurement.name + \" found for \" + event.name, finalEvent.correlationId);\r\n incompleteSubsCount++;\r\n });\r\n finalEvent.incompleteSubMeasurements = undefined;\r\n finalEvent = __assign(__assign({}, finalEvent), { durationMs: Math.round(durationMs), queuedTimeMs: queueInfo.totalQueueTime, queuedCount: queueInfo.totalQueueCount, queuedManuallyCompletedCount: queueInfo.manuallyCompletedCount, status: PerformanceEventStatus.Completed, incompleteSubsCount: incompleteSubsCount });\r\n this.truncateIntegralFields(finalEvent, this.getIntFields());\r\n this.emitEvents([finalEvent], event.correlationId);\r\n return finalEvent;\r\n };\r\n /**\r\n * Saves extra information to be emitted when the measurements are flushed\r\n * @param fields\r\n * @param correlationId\r\n */\r\n PerformanceClient.prototype.addStaticFields = function (fields, correlationId) {\r\n this.logger.trace(\"PerformanceClient: Updating static fields\");\r\n var event = this.eventsByCorrelationId.get(correlationId);\r\n if (event) {\r\n this.eventsByCorrelationId.set(correlationId, __assign(__assign({}, event), fields));\r\n }\r\n else {\r\n this.logger.trace(\"PerformanceClient: Event not found for\", correlationId);\r\n }\r\n };\r\n /**\r\n * Increment counters to be emitted when the measurements are flushed\r\n * @param counters {Counters}\r\n * @param correlationId {string} correlation identifier\r\n */\r\n PerformanceClient.prototype.increment = function (counters, correlationId) {\r\n this.logger.trace(\"PerformanceClient: Updating counters\");\r\n var event = this.eventsByCorrelationId.get(correlationId);\r\n if (event) {\r\n for (var counter in counters) {\r\n if (!event.hasOwnProperty(counter)) {\r\n event[counter] = 0;\r\n }\r\n event[counter] += counters[counter];\r\n }\r\n }\r\n else {\r\n this.logger.trace(\"PerformanceClient: Event not found for\", correlationId);\r\n }\r\n };\r\n /**\r\n * Upserts event into event cache.\r\n * First key is the correlation id, second key is the event id.\r\n * Allows for events to be grouped by correlation id,\r\n * and to easily allow for properties on them to be updated.\r\n *\r\n * @private\r\n * @param {PerformanceEvent} event\r\n */\r\n PerformanceClient.prototype.cacheEventByCorrelationId = function (event) {\r\n var rootEvent = this.eventsByCorrelationId.get(event.correlationId);\r\n if (rootEvent) {\r\n this.logger.trace(\"PerformanceClient: Performance measurement for \" + event.name + \" added/updated\", event.correlationId);\r\n rootEvent.incompleteSubMeasurements = rootEvent.incompleteSubMeasurements || new Map();\r\n rootEvent.incompleteSubMeasurements.set(event.eventId, { name: event.name, startTimeMs: event.startTimeMs });\r\n }\r\n else {\r\n this.logger.trace(\"PerformanceClient: Performance measurement for \" + event.name + \" started\", event.correlationId);\r\n this.eventsByCorrelationId.set(event.correlationId, __assign({}, event));\r\n }\r\n };\r\n PerformanceClient.prototype.getQueueInfo = function (correlationId) {\r\n var queueMeasurementForCorrelationId = this.queueMeasurements.get(correlationId);\r\n if (!queueMeasurementForCorrelationId) {\r\n this.logger.trace(\"PerformanceClient: no queue measurements found for for correlationId: \" + correlationId);\r\n }\r\n var totalQueueTime = 0;\r\n var totalQueueCount = 0;\r\n var manuallyCompletedCount = 0;\r\n queueMeasurementForCorrelationId === null || queueMeasurementForCorrelationId === void 0 ? void 0 : queueMeasurementForCorrelationId.forEach(function (measurement) {\r\n totalQueueTime += measurement.queueTime;\r\n totalQueueCount++;\r\n manuallyCompletedCount += measurement.manuallyCompleted ? 1 : 0;\r\n });\r\n return {\r\n totalQueueTime: totalQueueTime,\r\n totalQueueCount: totalQueueCount,\r\n manuallyCompletedCount: manuallyCompletedCount\r\n };\r\n };\r\n /**\r\n * Removes measurements for a given correlation id.\r\n *\r\n * @param {string} correlationId\r\n */\r\n PerformanceClient.prototype.discardMeasurements = function (correlationId) {\r\n this.logger.trace(\"PerformanceClient: Performance measurements discarded\", correlationId);\r\n this.eventsByCorrelationId.delete(correlationId);\r\n };\r\n /**\r\n * Removes cache for a given correlation id.\r\n *\r\n * @param {string} correlationId correlation identifier\r\n */\r\n PerformanceClient.prototype.discardCache = function (correlationId) {\r\n this.discardMeasurements(correlationId);\r\n this.logger.trace(\"PerformanceClient: QueueMeasurements discarded\", correlationId);\r\n this.queueMeasurements.delete(correlationId);\r\n this.logger.trace(\"PerformanceClient: Pre-queue times discarded\", correlationId);\r\n this.preQueueTimeByCorrelationId.delete(correlationId);\r\n };\r\n /**\r\n * Registers a callback function to receive performance events.\r\n *\r\n * @param {PerformanceCallbackFunction} callback\r\n * @returns {string}\r\n */\r\n PerformanceClient.prototype.addPerformanceCallback = function (callback) {\r\n var callbackId = this.generateId();\r\n this.callbacks.set(callbackId, callback);\r\n this.logger.verbose(\"PerformanceClient: Performance callback registered with id: \" + callbackId);\r\n return callbackId;\r\n };\r\n /**\r\n * Removes a callback registered with addPerformanceCallback.\r\n *\r\n * @param {string} callbackId\r\n * @returns {boolean}\r\n */\r\n PerformanceClient.prototype.removePerformanceCallback = function (callbackId) {\r\n var result = this.callbacks.delete(callbackId);\r\n if (result) {\r\n this.logger.verbose(\"PerformanceClient: Performance callback \" + callbackId + \" removed.\");\r\n }\r\n else {\r\n this.logger.verbose(\"PerformanceClient: Performance callback \" + callbackId + \" not removed.\");\r\n }\r\n return result;\r\n };\r\n /**\r\n * Emits events to all registered callbacks.\r\n *\r\n * @param {PerformanceEvent[]} events\r\n * @param {?string} [correlationId]\r\n */\r\n PerformanceClient.prototype.emitEvents = function (events, correlationId) {\r\n var _this = this;\r\n this.logger.verbose(\"PerformanceClient: Emitting performance events\", correlationId);\r\n this.callbacks.forEach(function (callback, callbackId) {\r\n _this.logger.trace(\"PerformanceClient: Emitting event to callback \" + callbackId, correlationId);\r\n callback.apply(null, [events]);\r\n });\r\n };\r\n /**\r\n * Enforce truncation of integral fields in performance event.\r\n * @param {PerformanceEvent} event performance event to update.\r\n * @param {Set} intFields integral fields.\r\n */\r\n PerformanceClient.prototype.truncateIntegralFields = function (event, intFields) {\r\n intFields.forEach(function (key) {\r\n if (key in event && typeof event[key] === \"number\") {\r\n event[key] = Math.floor(event[key]);\r\n }\r\n });\r\n };\r\n return PerformanceClient;\r\n}());\n\nexport { PerformanceClient };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Enumeration of operations that are instrumented by have their performance measured by the PerformanceClient.\r\n *\r\n * @export\r\n * @enum {number}\r\n */\r\nvar PerformanceEvents;\r\n(function (PerformanceEvents) {\r\n /**\r\n * acquireTokenByCode API (msal-browser and msal-node).\r\n * Used to acquire tokens by trading an authorization code against the token endpoint.\r\n */\r\n PerformanceEvents[\"AcquireTokenByCode\"] = \"acquireTokenByCode\";\r\n /**\r\n * acquireTokenByRefreshToken API (msal-browser and msal-node).\r\n * Used to renew an access token using a refresh token against the token endpoint.\r\n */\r\n PerformanceEvents[\"AcquireTokenByRefreshToken\"] = \"acquireTokenByRefreshToken\";\r\n /**\r\n * acquireTokenSilent API (msal-browser and msal-node).\r\n * Used to silently acquire a new access token (from the cache or the network).\r\n */\r\n PerformanceEvents[\"AcquireTokenSilent\"] = \"acquireTokenSilent\";\r\n /**\r\n * acquireTokenSilentAsync (msal-browser).\r\n * Internal API for acquireTokenSilent.\r\n */\r\n PerformanceEvents[\"AcquireTokenSilentAsync\"] = \"acquireTokenSilentAsync\";\r\n /**\r\n * acquireTokenPopup (msal-browser).\r\n * Used to acquire a new access token interactively through pop ups\r\n */\r\n PerformanceEvents[\"AcquireTokenPopup\"] = \"acquireTokenPopup\";\r\n /**\r\n * getPublicKeyThumbprint API in CryptoOpts class (msal-browser).\r\n * Used to generate a public/private keypair and generate a public key thumbprint for pop requests.\r\n */\r\n PerformanceEvents[\"CryptoOptsGetPublicKeyThumbprint\"] = \"cryptoOptsGetPublicKeyThumbprint\";\r\n /**\r\n * signJwt API in CryptoOpts class (msal-browser).\r\n * Used to signed a pop token.\r\n */\r\n PerformanceEvents[\"CryptoOptsSignJwt\"] = \"cryptoOptsSignJwt\";\r\n /**\r\n * acquireToken API in the SilentCacheClient class (msal-browser).\r\n * Used to read access tokens from the cache.\r\n */\r\n PerformanceEvents[\"SilentCacheClientAcquireToken\"] = \"silentCacheClientAcquireToken\";\r\n /**\r\n * acquireToken API in the SilentIframeClient class (msal-browser).\r\n * Used to acquire a new set of tokens from the authorize endpoint in a hidden iframe.\r\n */\r\n PerformanceEvents[\"SilentIframeClientAcquireToken\"] = \"silentIframeClientAcquireToken\";\r\n /**\r\n * acquireToken API in SilentRereshClient (msal-browser).\r\n * Used to acquire a new set of tokens from the token endpoint using a refresh token.\r\n */\r\n PerformanceEvents[\"SilentRefreshClientAcquireToken\"] = \"silentRefreshClientAcquireToken\";\r\n /**\r\n * ssoSilent API (msal-browser).\r\n * Used to silently acquire an authorization code and set of tokens using a hidden iframe.\r\n */\r\n PerformanceEvents[\"SsoSilent\"] = \"ssoSilent\";\r\n /**\r\n * getDiscoveredAuthority API in StandardInteractionClient class (msal-browser).\r\n * Used to load authority metadata for a request.\r\n */\r\n PerformanceEvents[\"StandardInteractionClientGetDiscoveredAuthority\"] = \"standardInteractionClientGetDiscoveredAuthority\";\r\n /**\r\n * acquireToken APIs in msal-browser.\r\n * Used to make an /authorize endpoint call with native brokering enabled.\r\n */\r\n PerformanceEvents[\"FetchAccountIdWithNativeBroker\"] = \"fetchAccountIdWithNativeBroker\";\r\n /**\r\n * acquireToken API in NativeInteractionClient class (msal-browser).\r\n * Used to acquire a token from Native component when native brokering is enabled.\r\n */\r\n PerformanceEvents[\"NativeInteractionClientAcquireToken\"] = \"nativeInteractionClientAcquireToken\";\r\n /**\r\n * Time spent creating default headers for requests to token endpoint\r\n */\r\n PerformanceEvents[\"BaseClientCreateTokenRequestHeaders\"] = \"baseClientCreateTokenRequestHeaders\";\r\n /**\r\n * Used to measure the time taken for completing embedded-broker handshake (PW-Broker).\r\n */\r\n PerformanceEvents[\"BrokerHandhshake\"] = \"brokerHandshake\";\r\n /**\r\n * acquireTokenByRefreshToken API in BrokerClientApplication (PW-Broker) .\r\n */\r\n PerformanceEvents[\"AcquireTokenByRefreshTokenInBroker\"] = \"acquireTokenByRefreshTokenInBroker\";\r\n /**\r\n * Time taken for token acquisition by broker\r\n */\r\n PerformanceEvents[\"AcquireTokenByBroker\"] = \"acquireTokenByBroker\";\r\n /**\r\n * Time spent on the network for refresh token acquisition\r\n */\r\n PerformanceEvents[\"RefreshTokenClientExecuteTokenRequest\"] = \"refreshTokenClientExecuteTokenRequest\";\r\n /**\r\n * Time taken for acquiring refresh token , records RT size\r\n */\r\n PerformanceEvents[\"RefreshTokenClientAcquireToken\"] = \"refreshTokenClientAcquireToken\";\r\n /**\r\n * Time taken for acquiring cached refresh token\r\n */\r\n PerformanceEvents[\"RefreshTokenClientAcquireTokenWithCachedRefreshToken\"] = \"refreshTokenClientAcquireTokenWithCachedRefreshToken\";\r\n /**\r\n * acquireTokenByRefreshToken API in RefreshTokenClient (msal-common).\r\n */\r\n PerformanceEvents[\"RefreshTokenClientAcquireTokenByRefreshToken\"] = \"refreshTokenClientAcquireTokenByRefreshToken\";\r\n /**\r\n * Helper function to create token request body in RefreshTokenClient (msal-common).\r\n */\r\n PerformanceEvents[\"RefreshTokenClientCreateTokenRequestBody\"] = \"refreshTokenClientCreateTokenRequestBody\";\r\n /**\r\n * acquireTokenFromCache (msal-browser).\r\n * Internal API for acquiring token from cache\r\n */\r\n PerformanceEvents[\"AcquireTokenFromCache\"] = \"acquireTokenFromCache\";\r\n /**\r\n * acquireTokenBySilentIframe (msal-browser).\r\n * Internal API for acquiring token by silent Iframe\r\n */\r\n PerformanceEvents[\"AcquireTokenBySilentIframe\"] = \"acquireTokenBySilentIframe\";\r\n /**\r\n * Internal API for initializing base request in BaseInteractionClient (msal-browser)\r\n */\r\n PerformanceEvents[\"InitializeBaseRequest\"] = \"initializeBaseRequest\";\r\n /**\r\n * Internal API for initializing silent request in SilentCacheClient (msal-browser)\r\n */\r\n PerformanceEvents[\"InitializeSilentRequest\"] = \"initializeSilentRequest\";\r\n PerformanceEvents[\"InitializeClientApplication\"] = \"initializeClientApplication\";\r\n /**\r\n * Helper function in SilentIframeClient class (msal-browser).\r\n */\r\n PerformanceEvents[\"SilentIframeClientTokenHelper\"] = \"silentIframeClientTokenHelper\";\r\n /**\r\n * SilentHandler\r\n */\r\n PerformanceEvents[\"SilentHandlerInitiateAuthRequest\"] = \"silentHandlerInitiateAuthRequest\";\r\n PerformanceEvents[\"SilentHandlerMonitorIframeForHash\"] = \"silentHandlerMonitorIframeForHash\";\r\n PerformanceEvents[\"SilentHandlerLoadFrame\"] = \"silentHandlerLoadFrame\";\r\n /**\r\n * Helper functions in StandardInteractionClient class (msal-browser)\r\n */\r\n PerformanceEvents[\"StandardInteractionClientCreateAuthCodeClient\"] = \"standardInteractionClientCreateAuthCodeClient\";\r\n PerformanceEvents[\"StandardInteractionClientGetClientConfiguration\"] = \"standardInteractionClientGetClientConfiguration\";\r\n PerformanceEvents[\"StandardInteractionClientInitializeAuthorizationRequest\"] = \"standardInteractionClientInitializeAuthorizationRequest\";\r\n PerformanceEvents[\"StandardInteractionClientInitializeAuthorizationCodeRequest\"] = \"standardInteractionClientInitializeAuthorizationCodeRequest\";\r\n /**\r\n * getAuthCodeUrl API (msal-browser and msal-node).\r\n */\r\n PerformanceEvents[\"GetAuthCodeUrl\"] = \"getAuthCodeUrl\";\r\n /**\r\n * Functions from InteractionHandler (msal-browser)\r\n */\r\n PerformanceEvents[\"HandleCodeResponseFromServer\"] = \"handleCodeResponseFromServer\";\r\n PerformanceEvents[\"HandleCodeResponseFromHash\"] = \"handleCodeResponseFromHash\";\r\n PerformanceEvents[\"UpdateTokenEndpointAuthority\"] = \"updateTokenEndpointAuthority\";\r\n /**\r\n * APIs in Authorization Code Client (msal-common)\r\n */\r\n PerformanceEvents[\"AuthClientAcquireToken\"] = \"authClientAcquireToken\";\r\n PerformanceEvents[\"AuthClientExecuteTokenRequest\"] = \"authClientExecuteTokenRequest\";\r\n PerformanceEvents[\"AuthClientCreateTokenRequestBody\"] = \"authClientCreateTokenRequestBody\";\r\n PerformanceEvents[\"AuthClientCreateQueryString\"] = \"authClientCreateQueryString\";\r\n /**\r\n * Generate functions in PopTokenGenerator (msal-common)\r\n */\r\n PerformanceEvents[\"PopTokenGenerateCnf\"] = \"popTokenGenerateCnf\";\r\n PerformanceEvents[\"PopTokenGenerateKid\"] = \"popTokenGenerateKid\";\r\n /**\r\n * handleServerTokenResponse API in ResponseHandler (msal-common)\r\n */\r\n PerformanceEvents[\"HandleServerTokenResponse\"] = \"handleServerTokenResponse\";\r\n /**\r\n * Authority functions\r\n */\r\n PerformanceEvents[\"AuthorityFactoryCreateDiscoveredInstance\"] = \"authorityFactoryCreateDiscoveredInstance\";\r\n PerformanceEvents[\"AuthorityResolveEndpointsAsync\"] = \"authorityResolveEndpointsAsync\";\r\n PerformanceEvents[\"AuthorityGetCloudDiscoveryMetadataFromNetwork\"] = \"authorityGetCloudDiscoveryMetadataFromNetwork\";\r\n PerformanceEvents[\"AuthorityUpdateCloudDiscoveryMetadata\"] = \"authorityUpdateCloudDiscoveryMetadata\";\r\n PerformanceEvents[\"AuthorityGetEndpointMetadataFromNetwork\"] = \"authorityGetEndpointMetadataFromNetwork\";\r\n PerformanceEvents[\"AuthorityUpdateEndpointMetadata\"] = \"authorityUpdateEndpointMetadata\";\r\n PerformanceEvents[\"AuthorityUpdateMetadataWithRegionalInformation\"] = \"authorityUpdateMetadataWithRegionalInformation\";\r\n /**\r\n * Region Discovery functions\r\n */\r\n PerformanceEvents[\"RegionDiscoveryDetectRegion\"] = \"regionDiscoveryDetectRegion\";\r\n PerformanceEvents[\"RegionDiscoveryGetRegionFromIMDS\"] = \"regionDiscoveryGetRegionFromIMDS\";\r\n PerformanceEvents[\"RegionDiscoveryGetCurrentVersion\"] = \"regionDiscoveryGetCurrentVersion\";\r\n PerformanceEvents[\"AcquireTokenByCodeAsync\"] = \"acquireTokenByCodeAsync\";\r\n PerformanceEvents[\"GetEndpointMetadataFromNetwork\"] = \"getEndpointMetadataFromNetwork\";\r\n PerformanceEvents[\"GetCloudDiscoveryMetadataFromNetworkMeasurement\"] = \"getCloudDiscoveryMetadataFromNetworkMeasurement\";\r\n PerformanceEvents[\"HandleRedirectPromiseMeasurement\"] = \"handleRedirectPromiseMeasurement\";\r\n PerformanceEvents[\"UpdateCloudDiscoveryMetadataMeasurement\"] = \"updateCloudDiscoveryMetadataMeasurement\";\r\n PerformanceEvents[\"UsernamePasswordClientAcquireToken\"] = \"usernamePasswordClientAcquireToken\";\r\n PerformanceEvents[\"NativeMessageHandlerHandshake\"] = \"nativeMessageHandlerHandshake\";\r\n})(PerformanceEvents || (PerformanceEvents = {}));\r\n/**\r\n * State of the performance event.\r\n *\r\n * @export\r\n * @enum {number}\r\n */\r\nvar PerformanceEventStatus;\r\n(function (PerformanceEventStatus) {\r\n PerformanceEventStatus[PerformanceEventStatus[\"NotStarted\"] = 0] = \"NotStarted\";\r\n PerformanceEventStatus[PerformanceEventStatus[\"InProgress\"] = 1] = \"InProgress\";\r\n PerformanceEventStatus[PerformanceEventStatus[\"Completed\"] = 2] = \"Completed\";\r\n})(PerformanceEventStatus || (PerformanceEventStatus = {}));\r\nvar IntFields = new Set([\r\n \"accessTokenSize\",\r\n \"durationMs\",\r\n \"idTokenSize\",\r\n \"matsSilentStatus\",\r\n \"matsHttpStatus\",\r\n \"refreshTokenSize\",\r\n \"queuedTimeMs\",\r\n \"startTimeMs\",\r\n \"status\",\r\n]);\n\nexport { IntFields, PerformanceEventStatus, PerformanceEvents };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { PerformanceClient } from './PerformanceClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar StubPerformanceMeasurement = /** @class */ (function () {\r\n function StubPerformanceMeasurement() {\r\n }\r\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\r\n StubPerformanceMeasurement.prototype.startMeasurement = function () { };\r\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\r\n StubPerformanceMeasurement.prototype.endMeasurement = function () { };\r\n StubPerformanceMeasurement.prototype.flushMeasurement = function () {\r\n return null;\r\n };\r\n return StubPerformanceMeasurement;\r\n}());\r\nvar StubPerformanceClient = /** @class */ (function (_super) {\r\n __extends(StubPerformanceClient, _super);\r\n function StubPerformanceClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n StubPerformanceClient.prototype.generateId = function () {\r\n return \"callback-id\";\r\n };\r\n StubPerformanceClient.prototype.startPerformanceMeasuremeant = function () {\r\n return new StubPerformanceMeasurement();\r\n };\r\n StubPerformanceClient.prototype.startPerformanceMeasurement = function () {\r\n return new StubPerformanceMeasurement();\r\n };\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n StubPerformanceClient.prototype.calculateQueuedTime = function (preQueueTime, currentTime) {\r\n return 0;\r\n };\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n StubPerformanceClient.prototype.addQueueMeasurement = function (eventName, correlationId, queueTime) {\r\n return;\r\n };\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n StubPerformanceClient.prototype.setPreQueueTime = function (eventName, correlationId) {\r\n return;\r\n };\r\n return StubPerformanceClient;\r\n}(PerformanceClient));\n\nexport { StubPerformanceClient, StubPerformanceMeasurement };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { SERVER_TELEM_CONSTANTS, CacheOutcome, Constants, Separators } from '../../utils/Constants.js';\nimport { ServerTelemetryEntity } from '../../cache/entities/ServerTelemetryEntity.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ServerTelemetryManager = /** @class */ (function () {\r\n function ServerTelemetryManager(telemetryRequest, cacheManager) {\r\n this.cacheOutcome = CacheOutcome.NO_CACHE_HIT;\r\n this.cacheManager = cacheManager;\r\n this.apiId = telemetryRequest.apiId;\r\n this.correlationId = telemetryRequest.correlationId;\r\n this.wrapperSKU = telemetryRequest.wrapperSKU || Constants.EMPTY_STRING;\r\n this.wrapperVer = telemetryRequest.wrapperVer || Constants.EMPTY_STRING;\r\n this.telemetryCacheKey = SERVER_TELEM_CONSTANTS.CACHE_KEY + Separators.CACHE_KEY_SEPARATOR + telemetryRequest.clientId;\r\n }\r\n /**\r\n * API to add MSER Telemetry to request\r\n */\r\n ServerTelemetryManager.prototype.generateCurrentRequestHeaderValue = function () {\r\n var request = \"\" + this.apiId + SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR + this.cacheOutcome;\r\n var platformFields = [this.wrapperSKU, this.wrapperVer].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var regionDiscoveryFields = this.getRegionDiscoveryFields();\r\n var requestWithRegionDiscoveryFields = [request, regionDiscoveryFields].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, requestWithRegionDiscoveryFields, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n };\r\n /**\r\n * API to add MSER Telemetry for the last failed request\r\n */\r\n ServerTelemetryManager.prototype.generateLastRequestHeaderValue = function () {\r\n var lastRequests = this.getLastRequests();\r\n var maxErrors = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n var failedRequests = lastRequests.failedRequests.slice(0, 2 * maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var errors = lastRequests.errors.slice(0, maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var errorCount = lastRequests.errors.length;\r\n // Indicate whether this header contains all data or partial data\r\n var overflow = maxErrors < errorCount ? SERVER_TELEM_CONSTANTS.OVERFLOW_TRUE : SERVER_TELEM_CONSTANTS.OVERFLOW_FALSE;\r\n var platformFields = [errorCount, overflow].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, lastRequests.cacheHits, failedRequests, errors, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n };\r\n /**\r\n * API to cache token failures for MSER data capture\r\n * @param error\r\n */\r\n ServerTelemetryManager.prototype.cacheFailedRequest = function (error) {\r\n var lastRequests = this.getLastRequests();\r\n if (lastRequests.errors.length >= SERVER_TELEM_CONSTANTS.MAX_CACHED_ERRORS) {\r\n // Remove a cached error to make room, first in first out\r\n lastRequests.failedRequests.shift(); // apiId\r\n lastRequests.failedRequests.shift(); // correlationId\r\n lastRequests.errors.shift();\r\n }\r\n lastRequests.failedRequests.push(this.apiId, this.correlationId);\r\n if (!StringUtils.isEmpty(error.subError)) {\r\n lastRequests.errors.push(error.subError);\r\n }\r\n else if (!StringUtils.isEmpty(error.errorCode)) {\r\n lastRequests.errors.push(error.errorCode);\r\n }\r\n else if (!!error && error.toString()) {\r\n lastRequests.errors.push(error.toString());\r\n }\r\n else {\r\n lastRequests.errors.push(SERVER_TELEM_CONSTANTS.UNKNOWN_ERROR);\r\n }\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return;\r\n };\r\n /**\r\n * Update server telemetry cache entry by incrementing cache hit counter\r\n */\r\n ServerTelemetryManager.prototype.incrementCacheHits = function () {\r\n var lastRequests = this.getLastRequests();\r\n lastRequests.cacheHits += 1;\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return lastRequests.cacheHits;\r\n };\r\n /**\r\n * Get the server telemetry entity from cache or initialize a new one\r\n */\r\n ServerTelemetryManager.prototype.getLastRequests = function () {\r\n var initialValue = new ServerTelemetryEntity();\r\n var lastRequests = this.cacheManager.getServerTelemetry(this.telemetryCacheKey);\r\n return lastRequests || initialValue;\r\n };\r\n /**\r\n * Remove server telemetry cache entry\r\n */\r\n ServerTelemetryManager.prototype.clearTelemetryCache = function () {\r\n var lastRequests = this.getLastRequests();\r\n var numErrorsFlushed = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n var errorCount = lastRequests.errors.length;\r\n if (numErrorsFlushed === errorCount) {\r\n // All errors were sent on last request, clear Telemetry cache\r\n this.cacheManager.removeItem(this.telemetryCacheKey);\r\n }\r\n else {\r\n // Partial data was flushed to server, construct a new telemetry cache item with errors that were not flushed\r\n var serverTelemEntity = new ServerTelemetryEntity();\r\n serverTelemEntity.failedRequests = lastRequests.failedRequests.slice(numErrorsFlushed * 2); // failedRequests contains 2 items for each error\r\n serverTelemEntity.errors = lastRequests.errors.slice(numErrorsFlushed);\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, serverTelemEntity);\r\n }\r\n };\r\n /**\r\n * Returns the maximum number of errors that can be flushed to the server in the next network request\r\n * @param serverTelemetryEntity\r\n */\r\n ServerTelemetryManager.maxErrorsToSend = function (serverTelemetryEntity) {\r\n var i;\r\n var maxErrors = 0;\r\n var dataSize = 0;\r\n var errorCount = serverTelemetryEntity.errors.length;\r\n for (i = 0; i < errorCount; i++) {\r\n // failedRequests parameter contains pairs of apiId and correlationId, multiply index by 2 to preserve pairs\r\n var apiId = serverTelemetryEntity.failedRequests[2 * i] || Constants.EMPTY_STRING;\r\n var correlationId = serverTelemetryEntity.failedRequests[2 * i + 1] || Constants.EMPTY_STRING;\r\n var errorCode = serverTelemetryEntity.errors[i] || Constants.EMPTY_STRING;\r\n // Count number of characters that would be added to header, each character is 1 byte. Add 3 at the end to account for separators\r\n dataSize += apiId.toString().length + correlationId.toString().length + errorCode.length + 3;\r\n if (dataSize < SERVER_TELEM_CONSTANTS.MAX_LAST_HEADER_BYTES) {\r\n // Adding this entry to the header would still keep header size below the limit\r\n maxErrors += 1;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n return maxErrors;\r\n };\r\n /**\r\n * Get the region discovery fields\r\n *\r\n * @returns string\r\n */\r\n ServerTelemetryManager.prototype.getRegionDiscoveryFields = function () {\r\n var regionDiscoveryFields = [];\r\n regionDiscoveryFields.push(this.regionUsed || Constants.EMPTY_STRING);\r\n regionDiscoveryFields.push(this.regionSource || Constants.EMPTY_STRING);\r\n regionDiscoveryFields.push(this.regionOutcome || Constants.EMPTY_STRING);\r\n return regionDiscoveryFields.join(\",\");\r\n };\r\n /**\r\n * Update the region discovery metadata\r\n *\r\n * @param regionDiscoveryMetadata\r\n * @returns void\r\n */\r\n ServerTelemetryManager.prototype.updateRegionDiscoveryMetadata = function (regionDiscoveryMetadata) {\r\n this.regionUsed = regionDiscoveryMetadata.region_used;\r\n this.regionSource = regionDiscoveryMetadata.region_source;\r\n this.regionOutcome = regionDiscoveryMetadata.region_outcome;\r\n };\r\n /**\r\n * Set cache outcome\r\n */\r\n ServerTelemetryManager.prototype.setCacheOutcome = function (cacheOutcome) {\r\n this.cacheOutcome = cacheOutcome;\r\n };\r\n return ServerTelemetryManager;\r\n}());\n\nexport { ServerTelemetryManager };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { AADAuthorityConstants, Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Url object class which can perform various transformations on url strings.\r\n */\r\nvar UrlString = /** @class */ (function () {\r\n function UrlString(url) {\r\n this._urlString = url;\r\n if (StringUtils.isEmpty(this._urlString)) {\r\n // Throws error if url is empty\r\n throw ClientConfigurationError.createUrlEmptyError();\r\n }\r\n if (StringUtils.isEmpty(this.getHash())) {\r\n this._urlString = UrlString.canonicalizeUri(url);\r\n }\r\n }\r\n Object.defineProperty(UrlString.prototype, \"urlString\", {\r\n get: function () {\r\n return this._urlString;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Ensure urls are lower case and end with a / character.\r\n * @param url\r\n */\r\n UrlString.canonicalizeUri = function (url) {\r\n if (url) {\r\n var lowerCaseUrl = url.toLowerCase();\r\n if (StringUtils.endsWith(lowerCaseUrl, \"?\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -1);\r\n }\r\n else if (StringUtils.endsWith(lowerCaseUrl, \"?/\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -2);\r\n }\r\n if (!StringUtils.endsWith(lowerCaseUrl, \"/\")) {\r\n lowerCaseUrl += \"/\";\r\n }\r\n return lowerCaseUrl;\r\n }\r\n return url;\r\n };\r\n /**\r\n * Throws if urlString passed is not a valid authority URI string.\r\n */\r\n UrlString.prototype.validateAsUri = function () {\r\n // Attempts to parse url for uri components\r\n var components;\r\n try {\r\n components = this.getUrlComponents();\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createUrlParseError(e);\r\n }\r\n // Throw error if URI or path segments are not parseable.\r\n if (!components.HostNameAndPort || !components.PathSegments) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + this.urlString);\r\n }\r\n // Throw error if uri is insecure.\r\n if (!components.Protocol || components.Protocol.toLowerCase() !== \"https:\") {\r\n throw ClientConfigurationError.createInsecureAuthorityUriError(this.urlString);\r\n }\r\n };\r\n /**\r\n * Given a url and a query string return the url with provided query string appended\r\n * @param url\r\n * @param queryString\r\n */\r\n UrlString.appendQueryString = function (url, queryString) {\r\n if (StringUtils.isEmpty(queryString)) {\r\n return url;\r\n }\r\n return url.indexOf(\"?\") < 0 ? url + \"?\" + queryString : url + \"&\" + queryString;\r\n };\r\n /**\r\n * Returns a url with the hash removed\r\n * @param url\r\n */\r\n UrlString.removeHashFromUrl = function (url) {\r\n return UrlString.canonicalizeUri(url.split(\"#\")[0]);\r\n };\r\n /**\r\n * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d\r\n * @param href The url\r\n * @param tenantId The tenant id to replace\r\n */\r\n UrlString.prototype.replaceTenantPath = function (tenantId) {\r\n var urlObject = this.getUrlComponents();\r\n var pathArray = urlObject.PathSegments;\r\n if (tenantId && (pathArray.length !== 0 && (pathArray[0] === AADAuthorityConstants.COMMON || pathArray[0] === AADAuthorityConstants.ORGANIZATIONS))) {\r\n pathArray[0] = tenantId;\r\n }\r\n return UrlString.constructAuthorityUriFromObject(urlObject);\r\n };\r\n /**\r\n * Returns the anchor part(#) of the URL\r\n */\r\n UrlString.prototype.getHash = function () {\r\n return UrlString.parseHash(this.urlString);\r\n };\r\n /**\r\n * Parses out the components from a url string.\r\n * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.\r\n */\r\n UrlString.prototype.getUrlComponents = function () {\r\n // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\r\n var regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\r\n // If url string does not match regEx, we throw an error\r\n var match = this.urlString.match(regEx);\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + this.urlString);\r\n }\r\n // Url component object\r\n var urlComponents = {\r\n Protocol: match[1],\r\n HostNameAndPort: match[4],\r\n AbsolutePath: match[5],\r\n QueryString: match[7]\r\n };\r\n var pathSegments = urlComponents.AbsolutePath.split(\"/\");\r\n pathSegments = pathSegments.filter(function (val) { return val && val.length > 0; }); // remove empty elements\r\n urlComponents.PathSegments = pathSegments;\r\n if (!StringUtils.isEmpty(urlComponents.QueryString) && urlComponents.QueryString.endsWith(\"/\")) {\r\n urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length - 1);\r\n }\r\n return urlComponents;\r\n };\r\n UrlString.getDomainFromUrl = function (url) {\r\n var regEx = RegExp(\"^([^:/?#]+://)?([^/?#]*)\");\r\n var match = url.match(regEx);\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + url);\r\n }\r\n return match[2];\r\n };\r\n UrlString.getAbsoluteUrl = function (relativeUrl, baseUrl) {\r\n if (relativeUrl[0] === Constants.FORWARD_SLASH) {\r\n var url = new UrlString(baseUrl);\r\n var baseComponents = url.getUrlComponents();\r\n return baseComponents.Protocol + \"//\" + baseComponents.HostNameAndPort + relativeUrl;\r\n }\r\n return relativeUrl;\r\n };\r\n /**\r\n * Parses hash string from given string. Returns empty string if no hash symbol is found.\r\n * @param hashString\r\n */\r\n UrlString.parseHash = function (hashString) {\r\n var hashIndex1 = hashString.indexOf(\"#\");\r\n var hashIndex2 = hashString.indexOf(\"#/\");\r\n if (hashIndex2 > -1) {\r\n return hashString.substring(hashIndex2 + 2);\r\n }\r\n else if (hashIndex1 > -1) {\r\n return hashString.substring(hashIndex1 + 1);\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n /**\r\n * Parses query string from given string. Returns empty string if no query symbol is found.\r\n * @param queryString\r\n */\r\n UrlString.parseQueryString = function (queryString) {\r\n var queryIndex1 = queryString.indexOf(\"?\");\r\n var queryIndex2 = queryString.indexOf(\"/?\");\r\n if (queryIndex2 > -1) {\r\n return queryString.substring(queryIndex2 + 2);\r\n }\r\n else if (queryIndex1 > -1) {\r\n return queryString.substring(queryIndex1 + 1);\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n UrlString.constructAuthorityUriFromObject = function (urlObject) {\r\n return new UrlString(urlObject.Protocol + \"//\" + urlObject.HostNameAndPort + \"/\" + urlObject.PathSegments.join(\"/\"));\r\n };\r\n /**\r\n * Returns URL hash as server auth code response object.\r\n */\r\n UrlString.getDeserializedHash = function (hash) {\r\n // Check if given hash is empty\r\n if (StringUtils.isEmpty(hash)) {\r\n return {};\r\n }\r\n // Strip the # symbol if present\r\n var parsedHash = UrlString.parseHash(hash);\r\n // If # symbol was not present, above will return empty string, so give original hash value\r\n var deserializedHash = StringUtils.queryStringToObject(StringUtils.isEmpty(parsedHash) ? hash : parsedHash);\r\n // Check if deserialization didn't work\r\n if (!deserializedHash) {\r\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedHash));\r\n }\r\n return deserializedHash;\r\n };\r\n /**\r\n * Returns URL query string as server auth code response object.\r\n */\r\n UrlString.getDeserializedQueryString = function (query) {\r\n // Check if given query is empty\r\n if (StringUtils.isEmpty(query)) {\r\n return {};\r\n }\r\n // Strip the ? symbol if present\r\n var parsedQueryString = UrlString.parseQueryString(query);\r\n // If ? symbol was not present, above will return empty string, so give original query value\r\n var deserializedQueryString = StringUtils.queryStringToObject(StringUtils.isEmpty(parsedQueryString) ? query : parsedQueryString);\r\n // Check if deserialization didn't work\r\n if (!deserializedQueryString) {\r\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedQueryString));\r\n }\r\n return deserializedQueryString;\r\n };\r\n /**\r\n * Check if the hash of the URL string contains known properties\r\n */\r\n UrlString.hashContainsKnownProperties = function (hash) {\r\n if (StringUtils.isEmpty(hash) || hash.indexOf(\"=\") < 0) {\r\n // Hash doesn't contain key/value pairs\r\n return false;\r\n }\r\n var parameters = UrlString.getDeserializedHash(hash);\r\n return !!(parameters.code ||\r\n parameters.error_description ||\r\n parameters.error ||\r\n parameters.state);\r\n };\r\n return UrlString;\r\n}());\n\nexport { UrlString };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar Constants = {\r\n LIBRARY_NAME: \"MSAL.JS\",\r\n SKU: \"msal.js.common\",\r\n // Prefix for all library cache entries\r\n CACHE_PREFIX: \"msal\",\r\n // default authority\r\n DEFAULT_AUTHORITY: \"https://login.microsoftonline.com/common/\",\r\n DEFAULT_AUTHORITY_HOST: \"login.microsoftonline.com\",\r\n DEFAULT_COMMON_TENANT: \"common\",\r\n // ADFS String\r\n ADFS: \"adfs\",\r\n DSTS: \"dstsv2\",\r\n // Default AAD Instance Discovery Endpoint\r\n AAD_INSTANCE_DISCOVERY_ENDPT: \"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=\",\r\n // CIAM URL\r\n CIAM_AUTH_URL: \".ciamlogin.com\",\r\n AAD_TENANT_DOMAIN_SUFFIX: \".onmicrosoft.com\",\r\n // Resource delimiter - used for certain cache entries\r\n RESOURCE_DELIM: \"|\",\r\n // Placeholder for non-existent account ids/objects\r\n NO_ACCOUNT: \"NO_ACCOUNT\",\r\n // Claims\r\n CLAIMS: \"claims\",\r\n // Consumer UTID\r\n CONSUMER_UTID: \"9188040d-6c67-4c5b-b112-36a304b66dad\",\r\n // Default scopes\r\n OPENID_SCOPE: \"openid\",\r\n PROFILE_SCOPE: \"profile\",\r\n OFFLINE_ACCESS_SCOPE: \"offline_access\",\r\n EMAIL_SCOPE: \"email\",\r\n // Default response type for authorization code flow\r\n CODE_RESPONSE_TYPE: \"code\",\r\n CODE_GRANT_TYPE: \"authorization_code\",\r\n RT_GRANT_TYPE: \"refresh_token\",\r\n FRAGMENT_RESPONSE_MODE: \"fragment\",\r\n S256_CODE_CHALLENGE_METHOD: \"S256\",\r\n URL_FORM_CONTENT_TYPE: \"application/x-www-form-urlencoded;charset=utf-8\",\r\n AUTHORIZATION_PENDING: \"authorization_pending\",\r\n NOT_DEFINED: \"not_defined\",\r\n EMPTY_STRING: \"\",\r\n NOT_APPLICABLE: \"N/A\",\r\n FORWARD_SLASH: \"/\",\r\n IMDS_ENDPOINT: \"http://169.254.169.254/metadata/instance/compute/location\",\r\n IMDS_VERSION: \"2020-06-01\",\r\n IMDS_TIMEOUT: 2000,\r\n AZURE_REGION_AUTO_DISCOVER_FLAG: \"TryAutoDetect\",\r\n REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX: \"login.microsoft.com\",\r\n REGIONAL_AUTH_NON_MSI_QUERY_STRING: \"allowestsrnonmsi=true\",\r\n KNOWN_PUBLIC_CLOUDS: [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"],\r\n TOKEN_RESPONSE_TYPE: \"token\",\r\n ID_TOKEN_RESPONSE_TYPE: \"id_token\",\r\n SHR_NONCE_VALIDITY: 240,\r\n INVALID_INSTANCE: \"invalid_instance\",\r\n};\r\nvar OIDC_DEFAULT_SCOPES = [\r\n Constants.OPENID_SCOPE,\r\n Constants.PROFILE_SCOPE,\r\n Constants.OFFLINE_ACCESS_SCOPE\r\n];\r\nvar OIDC_SCOPES = __spreadArrays(OIDC_DEFAULT_SCOPES, [\r\n Constants.EMAIL_SCOPE\r\n]);\r\n/**\r\n * Request header names\r\n */\r\nvar HeaderNames;\r\n(function (HeaderNames) {\r\n HeaderNames[\"CONTENT_TYPE\"] = \"Content-Type\";\r\n HeaderNames[\"RETRY_AFTER\"] = \"Retry-After\";\r\n HeaderNames[\"CCS_HEADER\"] = \"X-AnchorMailbox\";\r\n HeaderNames[\"WWWAuthenticate\"] = \"WWW-Authenticate\";\r\n HeaderNames[\"AuthenticationInfo\"] = \"Authentication-Info\";\r\n HeaderNames[\"X_MS_REQUEST_ID\"] = \"x-ms-request-id\";\r\n HeaderNames[\"X_MS_HTTP_VERSION\"] = \"x-ms-httpver\";\r\n})(HeaderNames || (HeaderNames = {}));\r\n/**\r\n * Persistent cache keys MSAL which stay while user is logged in.\r\n */\r\nvar PersistentCacheKeys;\r\n(function (PersistentCacheKeys) {\r\n PersistentCacheKeys[\"ID_TOKEN\"] = \"idtoken\";\r\n PersistentCacheKeys[\"CLIENT_INFO\"] = \"client.info\";\r\n PersistentCacheKeys[\"ADAL_ID_TOKEN\"] = \"adal.idtoken\";\r\n PersistentCacheKeys[\"ERROR\"] = \"error\";\r\n PersistentCacheKeys[\"ERROR_DESC\"] = \"error.description\";\r\n PersistentCacheKeys[\"ACTIVE_ACCOUNT\"] = \"active-account\";\r\n PersistentCacheKeys[\"ACTIVE_ACCOUNT_FILTERS\"] = \"active-account-filters\"; // new cache entry for active_account for a more robust version for browser\r\n})(PersistentCacheKeys || (PersistentCacheKeys = {}));\r\n/**\r\n * String constants related to AAD Authority\r\n */\r\nvar AADAuthorityConstants;\r\n(function (AADAuthorityConstants) {\r\n AADAuthorityConstants[\"COMMON\"] = \"common\";\r\n AADAuthorityConstants[\"ORGANIZATIONS\"] = \"organizations\";\r\n AADAuthorityConstants[\"CONSUMERS\"] = \"consumers\";\r\n})(AADAuthorityConstants || (AADAuthorityConstants = {}));\r\n/**\r\n * Keys in the hashParams sent by AAD Server\r\n */\r\nvar AADServerParamKeys;\r\n(function (AADServerParamKeys) {\r\n AADServerParamKeys[\"CLIENT_ID\"] = \"client_id\";\r\n AADServerParamKeys[\"REDIRECT_URI\"] = \"redirect_uri\";\r\n AADServerParamKeys[\"RESPONSE_TYPE\"] = \"response_type\";\r\n AADServerParamKeys[\"RESPONSE_MODE\"] = \"response_mode\";\r\n AADServerParamKeys[\"GRANT_TYPE\"] = \"grant_type\";\r\n AADServerParamKeys[\"CLAIMS\"] = \"claims\";\r\n AADServerParamKeys[\"SCOPE\"] = \"scope\";\r\n AADServerParamKeys[\"ERROR\"] = \"error\";\r\n AADServerParamKeys[\"ERROR_DESCRIPTION\"] = \"error_description\";\r\n AADServerParamKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n AADServerParamKeys[\"ID_TOKEN\"] = \"id_token\";\r\n AADServerParamKeys[\"REFRESH_TOKEN\"] = \"refresh_token\";\r\n AADServerParamKeys[\"EXPIRES_IN\"] = \"expires_in\";\r\n AADServerParamKeys[\"STATE\"] = \"state\";\r\n AADServerParamKeys[\"NONCE\"] = \"nonce\";\r\n AADServerParamKeys[\"PROMPT\"] = \"prompt\";\r\n AADServerParamKeys[\"SESSION_STATE\"] = \"session_state\";\r\n AADServerParamKeys[\"CLIENT_INFO\"] = \"client_info\";\r\n AADServerParamKeys[\"CODE\"] = \"code\";\r\n AADServerParamKeys[\"CODE_CHALLENGE\"] = \"code_challenge\";\r\n AADServerParamKeys[\"CODE_CHALLENGE_METHOD\"] = \"code_challenge_method\";\r\n AADServerParamKeys[\"CODE_VERIFIER\"] = \"code_verifier\";\r\n AADServerParamKeys[\"CLIENT_REQUEST_ID\"] = \"client-request-id\";\r\n AADServerParamKeys[\"X_CLIENT_SKU\"] = \"x-client-SKU\";\r\n AADServerParamKeys[\"X_CLIENT_VER\"] = \"x-client-VER\";\r\n AADServerParamKeys[\"X_CLIENT_OS\"] = \"x-client-OS\";\r\n AADServerParamKeys[\"X_CLIENT_CPU\"] = \"x-client-CPU\";\r\n AADServerParamKeys[\"X_CLIENT_CURR_TELEM\"] = \"x-client-current-telemetry\";\r\n AADServerParamKeys[\"X_CLIENT_LAST_TELEM\"] = \"x-client-last-telemetry\";\r\n AADServerParamKeys[\"X_MS_LIB_CAPABILITY\"] = \"x-ms-lib-capability\";\r\n AADServerParamKeys[\"X_APP_NAME\"] = \"x-app-name\";\r\n AADServerParamKeys[\"X_APP_VER\"] = \"x-app-ver\";\r\n AADServerParamKeys[\"POST_LOGOUT_URI\"] = \"post_logout_redirect_uri\";\r\n AADServerParamKeys[\"ID_TOKEN_HINT\"] = \"id_token_hint\";\r\n AADServerParamKeys[\"DEVICE_CODE\"] = \"device_code\";\r\n AADServerParamKeys[\"CLIENT_SECRET\"] = \"client_secret\";\r\n AADServerParamKeys[\"CLIENT_ASSERTION\"] = \"client_assertion\";\r\n AADServerParamKeys[\"CLIENT_ASSERTION_TYPE\"] = \"client_assertion_type\";\r\n AADServerParamKeys[\"TOKEN_TYPE\"] = \"token_type\";\r\n AADServerParamKeys[\"REQ_CNF\"] = \"req_cnf\";\r\n AADServerParamKeys[\"OBO_ASSERTION\"] = \"assertion\";\r\n AADServerParamKeys[\"REQUESTED_TOKEN_USE\"] = \"requested_token_use\";\r\n AADServerParamKeys[\"ON_BEHALF_OF\"] = \"on_behalf_of\";\r\n AADServerParamKeys[\"FOCI\"] = \"foci\";\r\n AADServerParamKeys[\"CCS_HEADER\"] = \"X-AnchorMailbox\";\r\n AADServerParamKeys[\"RETURN_SPA_CODE\"] = \"return_spa_code\";\r\n AADServerParamKeys[\"NATIVE_BROKER\"] = \"nativebroker\";\r\n AADServerParamKeys[\"LOGOUT_HINT\"] = \"logout_hint\";\r\n})(AADServerParamKeys || (AADServerParamKeys = {}));\r\n/**\r\n * Claims request keys\r\n */\r\nvar ClaimsRequestKeys;\r\n(function (ClaimsRequestKeys) {\r\n ClaimsRequestKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n ClaimsRequestKeys[\"XMS_CC\"] = \"xms_cc\";\r\n})(ClaimsRequestKeys || (ClaimsRequestKeys = {}));\r\n/**\r\n * we considered making this \"enum\" in the request instead of string, however it looks like the allowed list of\r\n * prompt values kept changing over past couple of years. There are some undocumented prompt values for some\r\n * internal partners too, hence the choice of generic \"string\" type instead of the \"enum\"\r\n */\r\nvar PromptValue = {\r\n LOGIN: \"login\",\r\n SELECT_ACCOUNT: \"select_account\",\r\n CONSENT: \"consent\",\r\n NONE: \"none\",\r\n CREATE: \"create\",\r\n NO_SESSION: \"no_session\"\r\n};\r\n/**\r\n * SSO Types - generated to populate hints\r\n */\r\nvar SSOTypes;\r\n(function (SSOTypes) {\r\n SSOTypes[\"ACCOUNT\"] = \"account\";\r\n SSOTypes[\"SID\"] = \"sid\";\r\n SSOTypes[\"LOGIN_HINT\"] = \"login_hint\";\r\n SSOTypes[\"ID_TOKEN\"] = \"id_token\";\r\n SSOTypes[\"DOMAIN_HINT\"] = \"domain_hint\";\r\n SSOTypes[\"ORGANIZATIONS\"] = \"organizations\";\r\n SSOTypes[\"CONSUMERS\"] = \"consumers\";\r\n SSOTypes[\"ACCOUNT_ID\"] = \"accountIdentifier\";\r\n SSOTypes[\"HOMEACCOUNT_ID\"] = \"homeAccountIdentifier\";\r\n})(SSOTypes || (SSOTypes = {}));\r\n/**\r\n * allowed values for codeVerifier\r\n */\r\nvar CodeChallengeMethodValues = {\r\n PLAIN: \"plain\",\r\n S256: \"S256\"\r\n};\r\n/**\r\n * allowed values for response_mode\r\n */\r\nvar ResponseMode;\r\n(function (ResponseMode) {\r\n ResponseMode[\"QUERY\"] = \"query\";\r\n ResponseMode[\"FRAGMENT\"] = \"fragment\";\r\n ResponseMode[\"FORM_POST\"] = \"form_post\";\r\n})(ResponseMode || (ResponseMode = {}));\r\n/**\r\n * allowed grant_type\r\n */\r\nvar GrantType;\r\n(function (GrantType) {\r\n GrantType[\"IMPLICIT_GRANT\"] = \"implicit\";\r\n GrantType[\"AUTHORIZATION_CODE_GRANT\"] = \"authorization_code\";\r\n GrantType[\"CLIENT_CREDENTIALS_GRANT\"] = \"client_credentials\";\r\n GrantType[\"RESOURCE_OWNER_PASSWORD_GRANT\"] = \"password\";\r\n GrantType[\"REFRESH_TOKEN_GRANT\"] = \"refresh_token\";\r\n GrantType[\"DEVICE_CODE_GRANT\"] = \"device_code\";\r\n GrantType[\"JWT_BEARER\"] = \"urn:ietf:params:oauth:grant-type:jwt-bearer\";\r\n})(GrantType || (GrantType = {}));\r\n/**\r\n * Account types in Cache\r\n */\r\nvar CacheAccountType;\r\n(function (CacheAccountType) {\r\n CacheAccountType[\"MSSTS_ACCOUNT_TYPE\"] = \"MSSTS\";\r\n CacheAccountType[\"ADFS_ACCOUNT_TYPE\"] = \"ADFS\";\r\n CacheAccountType[\"MSAV1_ACCOUNT_TYPE\"] = \"MSA\";\r\n CacheAccountType[\"GENERIC_ACCOUNT_TYPE\"] = \"Generic\"; // NTLM, Kerberos, FBA, Basic etc\r\n})(CacheAccountType || (CacheAccountType = {}));\r\n/**\r\n * Separators used in cache\r\n */\r\nvar Separators;\r\n(function (Separators) {\r\n Separators[\"CACHE_KEY_SEPARATOR\"] = \"-\";\r\n Separators[\"CLIENT_INFO_SEPARATOR\"] = \".\";\r\n})(Separators || (Separators = {}));\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nvar CredentialType;\r\n(function (CredentialType) {\r\n CredentialType[\"ID_TOKEN\"] = \"IdToken\";\r\n CredentialType[\"ACCESS_TOKEN\"] = \"AccessToken\";\r\n CredentialType[\"ACCESS_TOKEN_WITH_AUTH_SCHEME\"] = \"AccessToken_With_AuthScheme\";\r\n CredentialType[\"REFRESH_TOKEN\"] = \"RefreshToken\";\r\n})(CredentialType || (CredentialType = {}));\r\n/**\r\n * Combine all cache types\r\n */\r\nvar CacheType;\r\n(function (CacheType) {\r\n CacheType[CacheType[\"ADFS\"] = 1001] = \"ADFS\";\r\n CacheType[CacheType[\"MSA\"] = 1002] = \"MSA\";\r\n CacheType[CacheType[\"MSSTS\"] = 1003] = \"MSSTS\";\r\n CacheType[CacheType[\"GENERIC\"] = 1004] = \"GENERIC\";\r\n CacheType[CacheType[\"ACCESS_TOKEN\"] = 2001] = \"ACCESS_TOKEN\";\r\n CacheType[CacheType[\"REFRESH_TOKEN\"] = 2002] = \"REFRESH_TOKEN\";\r\n CacheType[CacheType[\"ID_TOKEN\"] = 2003] = \"ID_TOKEN\";\r\n CacheType[CacheType[\"APP_METADATA\"] = 3001] = \"APP_METADATA\";\r\n CacheType[CacheType[\"UNDEFINED\"] = 9999] = \"UNDEFINED\";\r\n})(CacheType || (CacheType = {}));\r\n/**\r\n * More Cache related constants\r\n */\r\nvar APP_METADATA = \"appmetadata\";\r\nvar CLIENT_INFO = \"client_info\";\r\nvar THE_FAMILY_ID = \"1\";\r\nvar AUTHORITY_METADATA_CONSTANTS = {\r\n CACHE_KEY: \"authority-metadata\",\r\n REFRESH_TIME_SECONDS: 3600 * 24 // 24 Hours\r\n};\r\nvar AuthorityMetadataSource;\r\n(function (AuthorityMetadataSource) {\r\n AuthorityMetadataSource[\"CONFIG\"] = \"config\";\r\n AuthorityMetadataSource[\"CACHE\"] = \"cache\";\r\n AuthorityMetadataSource[\"NETWORK\"] = \"network\";\r\n AuthorityMetadataSource[\"HARDCODED_VALUES\"] = \"hardcoded_values\";\r\n})(AuthorityMetadataSource || (AuthorityMetadataSource = {}));\r\nvar SERVER_TELEM_CONSTANTS = {\r\n SCHEMA_VERSION: 5,\r\n MAX_CUR_HEADER_BYTES: 80,\r\n MAX_LAST_HEADER_BYTES: 330,\r\n MAX_CACHED_ERRORS: 50,\r\n CACHE_KEY: \"server-telemetry\",\r\n CATEGORY_SEPARATOR: \"|\",\r\n VALUE_SEPARATOR: \",\",\r\n OVERFLOW_TRUE: \"1\",\r\n OVERFLOW_FALSE: \"0\",\r\n UNKNOWN_ERROR: \"unknown_error\"\r\n};\r\n/**\r\n * Type of the authentication request\r\n */\r\nvar AuthenticationScheme;\r\n(function (AuthenticationScheme) {\r\n AuthenticationScheme[\"BEARER\"] = \"Bearer\";\r\n AuthenticationScheme[\"POP\"] = \"pop\";\r\n AuthenticationScheme[\"SSH\"] = \"ssh-cert\";\r\n})(AuthenticationScheme || (AuthenticationScheme = {}));\r\n/**\r\n * Constants related to throttling\r\n */\r\nvar ThrottlingConstants = {\r\n // Default time to throttle RequestThumbprint in seconds\r\n DEFAULT_THROTTLE_TIME_SECONDS: 60,\r\n // Default maximum time to throttle in seconds, overrides what the server sends back\r\n DEFAULT_MAX_THROTTLE_TIME_SECONDS: 3600,\r\n // Prefix for storing throttling entries\r\n THROTTLING_PREFIX: \"throttling\",\r\n // Value assigned to the x-ms-lib-capability header to indicate to the server the library supports throttling\r\n X_MS_LIB_CAPABILITY_VALUE: \"retry-after, h429\"\r\n};\r\nvar Errors = {\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n CLIENT_MISMATCH_ERROR: \"client_mismatch\",\r\n};\r\n/**\r\n * Password grant parameters\r\n */\r\nvar PasswordGrantConstants;\r\n(function (PasswordGrantConstants) {\r\n PasswordGrantConstants[\"username\"] = \"username\";\r\n PasswordGrantConstants[\"password\"] = \"password\";\r\n})(PasswordGrantConstants || (PasswordGrantConstants = {}));\r\n/**\r\n * Response codes\r\n */\r\nvar ResponseCodes;\r\n(function (ResponseCodes) {\r\n ResponseCodes[ResponseCodes[\"httpSuccess\"] = 200] = \"httpSuccess\";\r\n ResponseCodes[ResponseCodes[\"httpBadRequest\"] = 400] = \"httpBadRequest\";\r\n})(ResponseCodes || (ResponseCodes = {}));\r\n/**\r\n * Region Discovery Sources\r\n */\r\nvar RegionDiscoverySources;\r\n(function (RegionDiscoverySources) {\r\n RegionDiscoverySources[\"FAILED_AUTO_DETECTION\"] = \"1\";\r\n RegionDiscoverySources[\"INTERNAL_CACHE\"] = \"2\";\r\n RegionDiscoverySources[\"ENVIRONMENT_VARIABLE\"] = \"3\";\r\n RegionDiscoverySources[\"IMDS\"] = \"4\";\r\n})(RegionDiscoverySources || (RegionDiscoverySources = {}));\r\n/**\r\n * Region Discovery Outcomes\r\n */\r\nvar RegionDiscoveryOutcomes;\r\n(function (RegionDiscoveryOutcomes) {\r\n RegionDiscoveryOutcomes[\"CONFIGURED_MATCHES_DETECTED\"] = \"1\";\r\n RegionDiscoveryOutcomes[\"CONFIGURED_NO_AUTO_DETECTION\"] = \"2\";\r\n RegionDiscoveryOutcomes[\"CONFIGURED_NOT_DETECTED\"] = \"3\";\r\n RegionDiscoveryOutcomes[\"AUTO_DETECTION_REQUESTED_SUCCESSFUL\"] = \"4\";\r\n RegionDiscoveryOutcomes[\"AUTO_DETECTION_REQUESTED_FAILED\"] = \"5\";\r\n})(RegionDiscoveryOutcomes || (RegionDiscoveryOutcomes = {}));\r\nvar CacheOutcome;\r\n(function (CacheOutcome) {\r\n CacheOutcome[\"NO_CACHE_HIT\"] = \"0\";\r\n CacheOutcome[\"FORCE_REFRESH\"] = \"1\";\r\n CacheOutcome[\"NO_CACHED_ACCESS_TOKEN\"] = \"2\";\r\n CacheOutcome[\"CACHED_ACCESS_TOKEN_EXPIRED\"] = \"3\";\r\n CacheOutcome[\"REFRESH_CACHED_ACCESS_TOKEN\"] = \"4\";\r\n})(CacheOutcome || (CacheOutcome = {}));\r\nvar JsonTypes;\r\n(function (JsonTypes) {\r\n JsonTypes[\"Jwt\"] = \"JWT\";\r\n JsonTypes[\"Jwk\"] = \"JWK\";\r\n JsonTypes[\"Pop\"] = \"pop\";\r\n})(JsonTypes || (JsonTypes = {}));\r\nvar ONE_DAY_IN_MS = 86400000;\n\nexport { AADAuthorityConstants, AADServerParamKeys, APP_METADATA, AUTHORITY_METADATA_CONSTANTS, AuthenticationScheme, AuthorityMetadataSource, CLIENT_INFO, CacheAccountType, CacheOutcome, CacheType, ClaimsRequestKeys, CodeChallengeMethodValues, Constants, CredentialType, Errors, GrantType, HeaderNames, JsonTypes, OIDC_DEFAULT_SCOPES, OIDC_SCOPES, ONE_DAY_IN_MS, PasswordGrantConstants, PersistentCacheKeys, PromptValue, RegionDiscoveryOutcomes, RegionDiscoverySources, ResponseCodes, ResponseMode, SERVER_TELEM_CONSTANTS, SSOTypes, Separators, THE_FAMILY_ID, ThrottlingConstants };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { StringUtils } from './StringUtils.js';\nimport { Constants } from './Constants.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which provides helpers for OAuth 2.0 protocol specific values\r\n */\r\nvar ProtocolUtils = /** @class */ (function () {\r\n function ProtocolUtils() {\r\n }\r\n /**\r\n * Appends user state with random guid, or returns random guid.\r\n * @param userState\r\n * @param randomGuid\r\n */\r\n ProtocolUtils.setRequestState = function (cryptoObj, userState, meta) {\r\n var libraryState = ProtocolUtils.generateLibraryState(cryptoObj, meta);\r\n return !StringUtils.isEmpty(userState) ? \"\" + libraryState + Constants.RESOURCE_DELIM + userState : libraryState;\r\n };\r\n /**\r\n * Generates the state value used by the common library.\r\n * @param randomGuid\r\n * @param cryptoObj\r\n */\r\n ProtocolUtils.generateLibraryState = function (cryptoObj, meta) {\r\n if (!cryptoObj) {\r\n throw ClientAuthError.createNoCryptoObjectError(\"generateLibraryState\");\r\n }\r\n // Create a state object containing a unique id and the timestamp of the request creation\r\n var stateObj = {\r\n id: cryptoObj.createNewGuid()\r\n };\r\n if (meta) {\r\n stateObj.meta = meta;\r\n }\r\n var stateString = JSON.stringify(stateObj);\r\n return cryptoObj.base64Encode(stateString);\r\n };\r\n /**\r\n * Parses the state into the RequestStateObject, which contains the LibraryState info and the state passed by the user.\r\n * @param state\r\n * @param cryptoObj\r\n */\r\n ProtocolUtils.parseRequestState = function (cryptoObj, state) {\r\n if (!cryptoObj) {\r\n throw ClientAuthError.createNoCryptoObjectError(\"parseRequestState\");\r\n }\r\n if (StringUtils.isEmpty(state)) {\r\n throw ClientAuthError.createInvalidStateError(state, \"Null, undefined or empty state\");\r\n }\r\n try {\r\n // Split the state between library state and user passed state and decode them separately\r\n var splitState = state.split(Constants.RESOURCE_DELIM);\r\n var libraryState = splitState[0];\r\n var userState = splitState.length > 1 ? splitState.slice(1).join(Constants.RESOURCE_DELIM) : Constants.EMPTY_STRING;\r\n var libraryStateString = cryptoObj.base64Decode(libraryState);\r\n var libraryStateObj = JSON.parse(libraryStateString);\r\n return {\r\n userRequestState: !StringUtils.isEmpty(userState) ? userState : Constants.EMPTY_STRING,\r\n libraryState: libraryStateObj\r\n };\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createInvalidStateError(state, e);\r\n }\r\n };\r\n return ProtocolUtils;\r\n}());\n\nexport { ProtocolUtils };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar StringUtils = /** @class */ (function () {\r\n function StringUtils() {\r\n }\r\n /**\r\n * decode a JWT\r\n *\r\n * @param authToken\r\n */\r\n StringUtils.decodeAuthToken = function (authToken) {\r\n if (StringUtils.isEmpty(authToken)) {\r\n throw ClientAuthError.createTokenNullOrEmptyError(authToken);\r\n }\r\n var tokenPartsRegex = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\r\n var matches = tokenPartsRegex.exec(authToken);\r\n if (!matches || matches.length < 4) {\r\n throw ClientAuthError.createTokenParsingError(\"Given token is malformed: \" + JSON.stringify(authToken));\r\n }\r\n var crackedToken = {\r\n header: matches[1],\r\n JWSPayload: matches[2],\r\n JWSSig: matches[3]\r\n };\r\n return crackedToken;\r\n };\r\n /**\r\n * Check if a string is empty.\r\n *\r\n * @param str\r\n */\r\n StringUtils.isEmpty = function (str) {\r\n return (typeof str === \"undefined\" || !str || 0 === str.length);\r\n };\r\n /**\r\n * Check if stringified object is empty\r\n * @param strObj\r\n */\r\n StringUtils.isEmptyObj = function (strObj) {\r\n if (strObj && !StringUtils.isEmpty(strObj)) {\r\n try {\r\n var obj = JSON.parse(strObj);\r\n return Object.keys(obj).length === 0;\r\n }\r\n catch (e) { }\r\n }\r\n return true;\r\n };\r\n StringUtils.startsWith = function (str, search) {\r\n return str.indexOf(search) === 0;\r\n };\r\n StringUtils.endsWith = function (str, search) {\r\n return (str.length >= search.length) && (str.lastIndexOf(search) === (str.length - search.length));\r\n };\r\n /**\r\n * Parses string into an object.\r\n *\r\n * @param query\r\n */\r\n StringUtils.queryStringToObject = function (query) {\r\n var obj = {};\r\n var params = query.split(\"&\");\r\n var decode = function (s) { return decodeURIComponent(s.replace(/\\+/g, \" \")); };\r\n params.forEach(function (pair) {\r\n if (pair.trim()) {\r\n var _a = pair.split(/=(.+)/g, 2), key = _a[0], value = _a[1]; // Split on the first occurence of the '=' character\r\n if (key && value) {\r\n obj[decode(key)] = decode(value);\r\n }\r\n }\r\n });\r\n return obj;\r\n };\r\n /**\r\n * Trims entries in an array.\r\n *\r\n * @param arr\r\n */\r\n StringUtils.trimArrayEntries = function (arr) {\r\n return arr.map(function (entry) { return entry.trim(); });\r\n };\r\n /**\r\n * Removes empty strings from array\r\n * @param arr\r\n */\r\n StringUtils.removeEmptyStringsFromArray = function (arr) {\r\n return arr.filter(function (entry) {\r\n return !StringUtils.isEmpty(entry);\r\n });\r\n };\r\n /**\r\n * Attempts to parse a string into JSON\r\n * @param str\r\n */\r\n StringUtils.jsonParseHelper = function (str) {\r\n try {\r\n return JSON.parse(str);\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n };\r\n /**\r\n * Tests if a given string matches a given pattern, with support for wildcards and queries.\r\n * @param pattern Wildcard pattern to string match. Supports \"*\" for wildcards and \"?\" for queries\r\n * @param input String to match against\r\n */\r\n StringUtils.matchPattern = function (pattern, input) {\r\n /**\r\n * Wildcard support: https://stackoverflow.com/a/3117248/4888559\r\n * Queries: replaces \"?\" in string with escaped \"\\?\" for regex test\r\n */\r\n var regex = new RegExp(pattern.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\*/g, \"[^ ]*\").replace(/\\?/g, \"\\\\\\?\")); // eslint-disable-line security/detect-non-literal-regexp\r\n return regex.test(input);\r\n };\r\n return StringUtils;\r\n}());\n\nexport { StringUtils };\n","/*! @azure/msal-common v13.0.0 2023-05-01 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class which exposes functions for managing date and time operations.\r\n */\r\nvar TimeUtils = /** @class */ (function () {\r\n function TimeUtils() {\r\n }\r\n /**\r\n * return the current time in Unix time (seconds).\r\n */\r\n TimeUtils.nowSeconds = function () {\r\n // Date.getTime() returns in milliseconds.\r\n return Math.round(new Date().getTime() / 1000.0);\r\n };\r\n /**\r\n * check if a token is expired based on given UTC time in seconds.\r\n * @param expiresOn\r\n */\r\n TimeUtils.isTokenExpired = function (expiresOn, offset) {\r\n // check for access token expiry\r\n var expirationSec = Number(expiresOn) || 0;\r\n var offsetCurrentTimeSec = TimeUtils.nowSeconds() + offset;\r\n // If current time + offset is greater than token expiration time, then token is expired.\r\n return (offsetCurrentTimeSec > expirationSec);\r\n };\r\n /**\r\n * If the current time is earlier than the time that a token was cached at, we must discard the token\r\n * i.e. The system clock was turned back after acquiring the cached token\r\n * @param cachedAt\r\n * @param offset\r\n */\r\n TimeUtils.wasClockTurnedBack = function (cachedAt) {\r\n var cachedAtSec = Number(cachedAt);\r\n return cachedAtSec > TimeUtils.nowSeconds();\r\n };\r\n /**\r\n * Waits for t number of milliseconds\r\n * @param t number\r\n * @param value T\r\n */\r\n TimeUtils.delay = function (t, value) {\r\n return new Promise(function (resolve) { return setTimeout(function () { return resolve(value); }, t); });\r\n };\r\n return TimeUtils;\r\n}());\n\nexport { TimeUtils };\n","import { Subject } from './Subject';\nexport class BehaviorSubject extends Subject {\n constructor(_value) {\n super();\n this._value = _value;\n }\n get value() {\n return this.getValue();\n }\n _subscribe(subscriber) {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n getValue() {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n next(value) {\n super.next((this._value = value));\n }\n}\n","export const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined))();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind,\n value,\n error,\n };\n}\n","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nexport class Observable {\n constructor(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n this._subscribe(subscriber)\n :\n this._trySubscribe(subscriber));\n });\n return subscriber;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n });\n }\n _subscribe(subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => (value = x), (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n","import { Subject } from './Subject';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nexport class ReplaySubject extends Subject {\n constructor(_bufferSize = Infinity, _windowTime = Infinity, _timestampProvider = dateTimestampProvider) {\n super();\n this._bufferSize = _bufferSize;\n this._windowTime = _windowTime;\n this._timestampProvider = _timestampProvider;\n this._buffer = [];\n this._infiniteTimeWindow = true;\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n next(value) {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._trimBuffer();\n const subscription = this._innerSubscribe(subscriber);\n const { _infiniteTimeWindow, _buffer } = this;\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i]);\n }\n this._checkFinalizedStatuses(subscriber);\n return subscription;\n }\n _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n for (let i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n","import { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nexport class Subject extends Observable {\n constructor() {\n super();\n this.closed = false;\n this.currentObservers = null;\n this.observers = [];\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n next(value) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n error(err) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n }\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n }\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n }\n get observed() {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n }\n _trySubscribe(subscriber) {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n _innerSubscribe(subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n _checkFinalizedStatuses(subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n }\n error(err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n }\n complete() {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n _subscribe(subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n }\n}\n","import { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nexport class Subscriber extends Subscription {\n constructor(destination) {\n super();\n this.isStopped = false;\n if (destination) {\n this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(this);\n }\n }\n else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n static create(next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n }\n next(value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n }\n error(err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null;\n }\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n _complete() {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n }\n}\nconst _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nclass ConsumerObserver {\n constructor(partialObserver) {\n this.partialObserver = partialObserver;\n }\n next(value) {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n error(err) {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n }\n complete() {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(observerOrNext, error, complete) {\n super();\n let partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n let context;\n if (this && config.useDeprecatedNextContext) {\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\nexport const EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n","import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nexport class Subscription {\n constructor(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n unsubscribe() {\n let errors;\n if (!this.closed) {\n this.closed = true;\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n add(teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n }\n _hasParent(parent) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n _addParent(parent) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n _removeParent(parent) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n remove(teardown) {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\nSubscription.EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n})();\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n","export const config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { hasLift } from '../util/lift';\nexport class ConnectableObservable extends Observable {\n constructor(source, subjectFactory) {\n super();\n this.source = source;\n this.subjectFactory = subjectFactory;\n this._subject = null;\n this._refCount = 0;\n this._connection = null;\n if (hasLift(source)) {\n this.lift = source.lift;\n }\n }\n _subscribe(subscriber) {\n return this.getSubject().subscribe(subscriber);\n }\n getSubject() {\n const subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n }\n _teardown() {\n this._refCount = 0;\n const { _connection } = this;\n this._subject = this._connection = null;\n _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe();\n }\n connect() {\n let connection = this._connection;\n if (!connection) {\n connection = this._connection = new Subscription();\n const subject = this.getSubject();\n connection.add(this.source.subscribe(createOperatorSubscriber(subject, undefined, () => {\n this._teardown();\n subject.complete();\n }, (err) => {\n this._teardown();\n subject.error(err);\n }, () => this._teardown())));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n }\n refCount() {\n return higherOrderRefCount()(this);\n }\n}\n","import { Observable } from '../Observable';\nimport { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { from } from './from';\nimport { identity } from '../util/identity';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { popResultSelector, popScheduler } from '../util/args';\nimport { createObject } from '../util/createObject';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function combineLatest(...args) {\n const scheduler = popScheduler(args);\n const resultSelector = popResultSelector(args);\n const { args: observables, keys } = argsArgArrayOrObject(args);\n if (observables.length === 0) {\n return from([], scheduler);\n }\n const result = new Observable(combineLatestInit(observables, scheduler, keys\n ?\n (values) => createObject(keys, values)\n :\n identity));\n return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;\n}\nexport function combineLatestInit(observables, scheduler, valueTransform = identity) {\n return (subscriber) => {\n maybeSchedule(scheduler, () => {\n const { length } = observables;\n const values = new Array(length);\n let active = length;\n let remainingFirstValues = length;\n for (let i = 0; i < length; i++) {\n maybeSchedule(scheduler, () => {\n const source = from(observables[i], scheduler);\n let hasFirstValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n values[i] = value;\n if (!hasFirstValue) {\n hasFirstValue = true;\n remainingFirstValues--;\n }\n if (!remainingFirstValues) {\n subscriber.next(valueTransform(values.slice()));\n }\n }, () => {\n if (!--active) {\n subscriber.complete();\n }\n }));\n }, subscriber);\n }\n }, subscriber);\n };\n}\nfunction maybeSchedule(scheduler, execute, subscription) {\n if (scheduler) {\n executeSchedule(subscription, scheduler, execute);\n }\n else {\n execute();\n }\n}\n","import { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function concat(...args) {\n return concatAll()(from(args, popScheduler(args)));\n}\n","import { Observable } from '../Observable';\nimport { innerFrom } from './innerFrom';\nexport function defer(observableFactory) {\n return new Observable((subscriber) => {\n innerFrom(observableFactory()).subscribe(subscriber);\n });\n}\n","import { Observable } from '../Observable';\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n","import { scheduled } from '../scheduled/scheduled';\nimport { innerFrom } from './innerFrom';\nexport function from(input, scheduler) {\n return scheduler ? scheduled(input, scheduler) : innerFrom(input);\n}\n","import { __asyncValues, __awaiter } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable((subscriber) => {\n const obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable((subscriber) => {\n for (let i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable((subscriber) => {\n promise\n .then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable((subscriber) => {\n for (const value of iterable) {\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable((subscriber) => {\n process(asyncIterable, subscriber).catch((err) => subscriber.error(err));\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function* () {\n try {\n for (asyncIterable_1 = __asyncValues(asyncIterable); asyncIterable_1_1 = yield asyncIterable_1.next(), !asyncIterable_1_1.done;) {\n const value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return)) yield _a.call(asyncIterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\n","import { mergeAll } from '../operators/mergeAll';\nimport { innerFrom } from './innerFrom';\nimport { EMPTY } from './empty';\nimport { popNumber, popScheduler } from '../util/args';\nimport { from } from './from';\nexport function merge(...args) {\n const scheduler = popScheduler(args);\n const concurrent = popNumber(args, Infinity);\n const sources = args;\n return !sources.length\n ?\n EMPTY\n : sources.length === 1\n ?\n innerFrom(sources[0])\n :\n mergeAll(concurrent)(from(sources, scheduler));\n}\n","import { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function of(...args) {\n const scheduler = popScheduler(args);\n return from(args, scheduler);\n}\n","import { Observable } from '../Observable';\nimport { isFunction } from '../util/isFunction';\nexport function throwError(errorOrErrorFactory, scheduler) {\n const errorFactory = isFunction(errorOrErrorFactory) ? errorOrErrorFactory : () => errorOrErrorFactory;\n const init = (subscriber) => subscriber.error(errorFactory());\n return new Observable(scheduler ? (subscriber) => scheduler.schedule(init, 0, subscriber) : init);\n}\n","import { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nexport class OperatorSubscriber extends Subscriber {\n constructor(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n super(destination);\n this.onFinalize = onFinalize;\n this.shouldUnsubscribe = shouldUnsubscribe;\n this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n unsubscribe() {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n !closed && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n }\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { operate } from '../util/lift';\nexport function catchError(selector) {\n return operate((source, subscriber) => {\n let innerSub = null;\n let syncUnsub = false;\n let handledResult;\n innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, (err) => {\n handledResult = innerFrom(selector(err, catchError(selector)(source)));\n if (innerSub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n else {\n syncUnsub = true;\n }\n }));\n if (syncUnsub) {\n innerSub.unsubscribe();\n innerSub = null;\n handledResult.subscribe(subscriber);\n }\n });\n}\n","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n","import { mergeMap } from './mergeMap';\nimport { isFunction } from '../util/isFunction';\nexport function concatMap(project, resultSelector) {\n return isFunction(resultSelector) ? mergeMap(project, resultSelector, 1) : mergeMap(project, 1);\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function defaultIfEmpty(defaultValue) {\n return operate((source, subscriber) => {\n let hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n subscriber.next(value);\n }, () => {\n if (!hasValue) {\n subscriber.next(defaultValue);\n }\n subscriber.complete();\n }));\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value)));\n });\n}\n","import { operate } from '../util/lift';\nexport function finalize(callback) {\n return operate((source, subscriber) => {\n try {\n source.subscribe(subscriber);\n }\n finally {\n subscriber.add(callback);\n }\n });\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n","import { map } from './map';\nexport function mapTo(value) {\n return map(() => value);\n}\n","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Infinity) {\n return mergeMap(identity, concurrent);\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n const buffer = [];\n let active = 0;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n const outerNext = (value) => (active < concurrent ? doInnerSub(value) : buffer.push(value));\n const doInnerSub = (value) => {\n expand && subscriber.next(value);\n active++;\n let innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, (innerValue) => {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, () => {\n innerComplete = true;\n }, undefined, () => {\n if (innerComplete) {\n try {\n active--;\n while (buffer.length && active < concurrent) {\n const bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, () => doInnerSub(bufferedValue));\n }\n else {\n doInnerSub(bufferedValue);\n }\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, () => {\n isComplete = true;\n checkComplete();\n }));\n return () => {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent = Infinity) {\n if (isFunction(resultSelector)) {\n return mergeMap((a, i) => map((b, ii) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent));\n}\n","import { executeSchedule } from '../util/executeSchedule';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function observeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n source.subscribe(createOperatorSubscriber(subscriber, (value) => executeSchedule(subscriber, scheduler, () => subscriber.next(value), delay), () => executeSchedule(subscriber, scheduler, () => subscriber.complete(), delay), (err) => executeSchedule(subscriber, scheduler, () => subscriber.error(err), delay)));\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function refCount() {\n return operate((source, subscriber) => {\n let connection = null;\n source._refCount++;\n const refCounter = createOperatorSubscriber(subscriber, undefined, undefined, undefined, () => {\n if (!source || source._refCount <= 0 || 0 < --source._refCount) {\n connection = null;\n return;\n }\n const sharedConnection = source._connection;\n const conn = connection;\n connection = null;\n if (sharedConnection && (!conn || sharedConnection === conn)) {\n sharedConnection.unsubscribe();\n }\n subscriber.unsubscribe();\n });\n source.subscribe(refCounter);\n if (!refCounter.closed) {\n connection = source.connect();\n }\n });\n}\n","import { operate } from '../util/lift';\nimport { scanInternals } from './scanInternals';\nexport function scan(accumulator, seed) {\n return operate(scanInternals(accumulator, seed, arguments.length >= 2, true));\n}\n","import { createOperatorSubscriber } from './OperatorSubscriber';\nexport function scanInternals(accumulator, seed, hasSeed, emitOnNext, emitBeforeComplete) {\n return (source, subscriber) => {\n let hasState = hasSeed;\n let state = seed;\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const i = index++;\n state = hasState\n ?\n accumulator(state, value, i)\n :\n ((hasState = true), value);\n emitOnNext && subscriber.next(state);\n }, emitBeforeComplete &&\n (() => {\n hasState && subscriber.next(state);\n subscriber.complete();\n })));\n };\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { Subject } from '../Subject';\nimport { SafeSubscriber } from '../Subscriber';\nimport { operate } from '../util/lift';\nexport function share(options = {}) {\n const { connector = () => new Subject(), resetOnError = true, resetOnComplete = true, resetOnRefCountZero = true } = options;\n return (wrapperSource) => {\n let connection;\n let resetConnection;\n let subject;\n let refCount = 0;\n let hasCompleted = false;\n let hasErrored = false;\n const cancelReset = () => {\n resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe();\n resetConnection = undefined;\n };\n const reset = () => {\n cancelReset();\n connection = subject = undefined;\n hasCompleted = hasErrored = false;\n };\n const resetAndUnsubscribe = () => {\n const conn = connection;\n reset();\n conn === null || conn === void 0 ? void 0 : conn.unsubscribe();\n };\n return operate((source, subscriber) => {\n refCount++;\n if (!hasErrored && !hasCompleted) {\n cancelReset();\n }\n const dest = (subject = subject !== null && subject !== void 0 ? subject : connector());\n subscriber.add(() => {\n refCount--;\n if (refCount === 0 && !hasErrored && !hasCompleted) {\n resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero);\n }\n });\n dest.subscribe(subscriber);\n if (!connection &&\n refCount > 0) {\n connection = new SafeSubscriber({\n next: (value) => dest.next(value),\n error: (err) => {\n hasErrored = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnError, err);\n dest.error(err);\n },\n complete: () => {\n hasCompleted = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnComplete);\n dest.complete();\n },\n });\n innerFrom(source).subscribe(connection);\n }\n })(wrapperSource);\n };\n}\nfunction handleReset(reset, on, ...args) {\n if (on === true) {\n reset();\n return;\n }\n if (on === false) {\n return;\n }\n const onSubscriber = new SafeSubscriber({\n next: () => {\n onSubscriber.unsubscribe();\n reset();\n },\n });\n return innerFrom(on(...args)).subscribe(onSubscriber);\n}\n","import { concat } from '../observable/concat';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\nexport function startWith(...values) {\n const scheduler = popScheduler(values);\n return operate((source, subscriber) => {\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n","import { operate } from '../util/lift';\nexport function subscribeOn(scheduler, delay = 0) {\n return operate((source, subscriber) => {\n subscriber.add(scheduler.schedule(() => source.subscribe(subscriber), delay));\n });\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function switchMap(project, resultSelector) {\n return operate((source, subscriber) => {\n let innerSubscriber = null;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => isComplete && !innerSubscriber && subscriber.complete();\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe();\n let innerIndex = 0;\n const outerIndex = index++;\n innerFrom(project(value, outerIndex)).subscribe((innerSubscriber = createOperatorSubscriber(subscriber, (innerValue) => subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue), () => {\n innerSubscriber = null;\n checkComplete();\n })));\n }, () => {\n isComplete = true;\n checkComplete();\n }));\n });\n}\n","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function take(count) {\n return count <= 0\n ?\n () => EMPTY\n : operate((source, subscriber) => {\n let seen = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n if (++seen <= count) {\n subscriber.next(value);\n if (count <= seen) {\n subscriber.complete();\n }\n }\n }));\n });\n}\n","import { EMPTY } from '../observable/empty';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function takeLast(count) {\n return count <= 0\n ? () => EMPTY\n : operate((source, subscriber) => {\n let buffer = [];\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n buffer.push(value);\n count < buffer.length && buffer.shift();\n }, () => {\n for (const value of buffer) {\n subscriber.next(value);\n }\n subscriber.complete();\n }, undefined, () => {\n buffer = null;\n }));\n });\n}\n","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function takeWhile(predicate, inclusive = false) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n const result = predicate(value, index++);\n (result || inclusive) && subscriber.next(value);\n !result && subscriber.complete();\n }));\n });\n}\n","import { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\nexport function tap(observerOrNext, error, complete) {\n const tapObserver = isFunction(observerOrNext) || error || complete\n ?\n { next: observerOrNext, error, complete }\n : observerOrNext;\n return tapObserver\n ? operate((source, subscriber) => {\n var _a;\n (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n let isUnsub = true;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, () => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }, (err) => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);\n subscriber.error(err);\n }, () => {\n var _a, _b;\n if (isUnsub) {\n (_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n }\n (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);\n }));\n })\n :\n identity;\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function throwIfEmpty(errorFactory = defaultErrorFactory) {\n return operate((source, subscriber) => {\n let hasValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n hasValue = true;\n subscriber.next(value);\n }, () => (hasValue ? subscriber.complete() : subscriber.error(errorFactory()))));\n });\n}\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n","import { Observable } from '../Observable';\nexport function scheduleArray(input, scheduler) {\n return new Observable((subscriber) => {\n let i = 0;\n return scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n }\n else {\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n this.schedule();\n }\n }\n });\n });\n}\n","import { Observable } from '../Observable';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleAsyncIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable((subscriber) => {\n executeSchedule(subscriber, scheduler, () => {\n const iterator = input[Symbol.asyncIterator]();\n executeSchedule(subscriber, scheduler, () => {\n iterator.next().then((result) => {\n if (result.done) {\n subscriber.complete();\n }\n else {\n subscriber.next(result.value);\n }\n });\n }, 0, true);\n });\n });\n}\n","import { Observable } from '../Observable';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from '../util/isFunction';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function scheduleIterable(input, scheduler) {\n return new Observable((subscriber) => {\n let iterator;\n executeSchedule(subscriber, scheduler, () => {\n iterator = input[Symbol_iterator]();\n executeSchedule(subscriber, scheduler, () => {\n let value;\n let done;\n try {\n ({ value, done } = iterator.next());\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n }\n }, 0, true);\n });\n return () => isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return();\n });\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function scheduleObservable(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n","import { innerFrom } from '../observable/innerFrom';\nimport { observeOn } from '../operators/observeOn';\nimport { subscribeOn } from '../operators/subscribeOn';\nexport function schedulePromise(input, scheduler) {\n return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler));\n}\n","import { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nexport function scheduleReadableStreamLike(input, scheduler) {\n return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler);\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { scheduleAsyncIterable } from './scheduleAsyncIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isReadableStreamLike } from '../util/isReadableStreamLike';\nimport { scheduleReadableStreamLike } from './scheduleReadableStreamLike';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n if (isAsyncIterable(input)) {\n return scheduleAsyncIterable(input, scheduler);\n }\n if (isIterable(input)) {\n return scheduleIterable(input, scheduler);\n }\n if (isReadableStreamLike(input)) {\n return scheduleReadableStreamLike(input, scheduler);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\n","export const dateTimestampProvider = {\n now() {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n","export const timeoutProvider = {\n setTimeout(handler, timeout, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\n","export const observable = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n","import { createErrorClass } from './createErrorClass';\nexport const EmptyError = createErrorClass((_super) => function EmptyErrorImpl() {\n _super(this);\n this.name = 'EmptyError';\n this.message = 'no elements in sequence';\n});\n","import { createErrorClass } from './createErrorClass';\nexport const ObjectUnsubscribedError = createErrorClass((_super) => function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n});\n","import { createErrorClass } from './createErrorClass';\nexport const UnsubscriptionError = createErrorClass((_super) => function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n});\n","import { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\nfunction last(arr) {\n return arr[arr.length - 1];\n}\nexport function popResultSelector(args) {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\nexport function popScheduler(args) {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\nexport function popNumber(args, defaultValue) {\n return typeof last(args) === 'number' ? args.pop() : defaultValue;\n}\n","const { isArray } = Array;\nconst { getPrototypeOf, prototype: objectProto, keys: getKeys } = Object;\nexport function argsArgArrayOrObject(args) {\n if (args.length === 1) {\n const first = args[0];\n if (isArray(first)) {\n return { args: first, keys: null };\n }\n if (isPOJO(first)) {\n const keys = getKeys(first);\n return {\n args: keys.map((key) => first[key]),\n keys,\n };\n }\n }\n return { args: args, keys: null };\n}\nfunction isPOJO(obj) {\n return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto;\n}\n","export function arrRemove(arr, item) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n","export function createErrorClass(createImpl) {\n const _super = (instance) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n","export function createObject(keys, values) {\n return keys.reduce((result, key, i) => ((result[key] = values[i]), result), {});\n}\n","import { config } from '../config';\nlet context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n","export function executeSchedule(parentSubscription, scheduler, work, delay = 0, repeat = false) {\n const scheduleSubscription = scheduler.schedule(function () {\n work();\n if (repeat) {\n parentSubscription.add(this.schedule(null, delay));\n }\n else {\n this.unsubscribe();\n }\n }, delay);\n parentSubscription.add(scheduleSubscription);\n if (!repeat) {\n return scheduleSubscription;\n }\n}\n","export function identity(x) {\n return x;\n}\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n","import { __asyncGenerator, __await } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function* readableStreamLikeToAsyncGenerator_1() {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = yield __await(reader.read());\n if (done) {\n return yield __await(void 0);\n }\n yield yield __await(value);\n }\n }\n finally {\n reader.releaseLock();\n }\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n","import { isFunction } from './isFunction';\nexport function isScheduler(value) {\n return value && isFunction(value.schedule);\n}\n","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return (source) => {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n","import { map } from \"../operators/map\";\nconst { isArray } = Array;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn(...args) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(args => callOrApply(fn, args));\n}\n","export function noop() { }\n","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n","export function createInvalidObservableTypeError(input) {\n return new TypeError(`You provided ${input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`);\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/**\n * @license Angular v14.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\n/**\n * An injectable service that produces an animation sequence programmatically within an\n * Angular component or directive.\n * Provided by the `BrowserAnimationsModule` or `NoopAnimationsModule`.\n *\n * @usageNotes\n *\n * To use this service, add it to your component or directive as a dependency.\n * The service is instantiated along with your component.\n *\n * Apps do not typically need to create their own animation players, but if you\n * do need to, follow these steps:\n *\n * 1. Use the [AnimationBuilder.build](api/animations/AnimationBuilder#build)() method\n * to create a programmatic animation. The method returns an `AnimationFactory` instance.\n *\n * 2. Use the factory object to create an `AnimationPlayer` and attach it to a DOM element.\n *\n * 3. Use the player object to control the animation programmatically.\n *\n * For example:\n *\n * ```ts\n * // import the service from BrowserAnimationsModule\n * import {AnimationBuilder} from '@angular/animations';\n * // require the service as a dependency\n * class MyCmp {\n * constructor(private _builder: AnimationBuilder) {}\n *\n * makeAnimation(element: any) {\n * // first define a reusable animation\n * const myAnimation = this._builder.build([\n * style({ width: 0 }),\n * animate(1000, style({ width: '100px' }))\n * ]);\n *\n * // use the returned factory object to create a player\n * const player = myAnimation.create(element);\n *\n * player.play();\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass AnimationBuilder {\n}\n/**\n * A factory object returned from the\n * [AnimationBuilder.build](api/animations/AnimationBuilder#build)()\n * method.\n *\n * @publicApi\n */\nclass AnimationFactory {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Specifies automatic styling.\n *\n * @publicApi\n */\nconst AUTO_STYLE = '*';\n/**\n * Creates a named animation trigger, containing a list of [`state()`](api/animations/state)\n * and `transition()` entries to be evaluated when the expression\n * bound to the trigger changes.\n *\n * @param name An identifying string.\n * @param definitions An animation definition object, containing an array of\n * [`state()`](api/animations/state) and `transition()` declarations.\n *\n * @return An object that encapsulates the trigger data.\n *\n * @usageNotes\n * Define an animation trigger in the `animations` section of `@Component` metadata.\n * In the template, reference the trigger by name and bind it to a trigger expression that\n * evaluates to a defined animation state, using the following format:\n *\n * `[@triggerName]=\"expression\"`\n *\n * Animation trigger bindings convert all values to strings, and then match the\n * previous and current values against any linked transitions.\n * Booleans can be specified as `1` or `true` and `0` or `false`.\n *\n * ### Usage Example\n *\n * The following example creates an animation trigger reference based on the provided\n * name value.\n * The provided animation value is expected to be an array consisting of state and\n * transition declarations.\n *\n * ```typescript\n * @Component({\n * selector: \"my-component\",\n * templateUrl: \"my-component-tpl.html\",\n * animations: [\n * trigger(\"myAnimationTrigger\", [\n * state(...),\n * state(...),\n * transition(...),\n * transition(...)\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"something\";\n * }\n * ```\n *\n * The template associated with this component makes use of the defined trigger\n * by binding to an element within its template code.\n *\n * ```html\n * \n *
...
\n * ```\n *\n * ### Using an inline function\n * The `transition` animation method also supports reading an inline function which can decide\n * if its associated animation should be run.\n *\n * ```typescript\n * // this method is run each time the `myAnimationTrigger` trigger value changes.\n * function myInlineMatcherFn(fromState: string, toState: string, element: any, params: {[key:\n string]: any}): boolean {\n * // notice that `element` and `params` are also available here\n * return toState == 'yes-please-animate';\n * }\n *\n * @Component({\n * selector: 'my-component',\n * templateUrl: 'my-component-tpl.html',\n * animations: [\n * trigger('myAnimationTrigger', [\n * transition(myInlineMatcherFn, [\n * // the animation sequence code\n * ]),\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"yes-please-animate\";\n * }\n * ```\n *\n * ### Disabling Animations\n * When true, the special animation control binding `@.disabled` binding prevents\n * all animations from rendering.\n * Place the `@.disabled` binding on an element to disable\n * animations on the element itself, as well as any inner animation triggers\n * within the element.\n *\n * The following example shows how to use this feature:\n *\n * ```typescript\n * @Component({\n * selector: 'my-component',\n * template: `\n *
\n *
\n *
\n * `,\n * animations: [\n * trigger(\"childAnimation\", [\n * // ...\n * ])\n * ]\n * })\n * class MyComponent {\n * isDisabled = true;\n * exp = '...';\n * }\n * ```\n *\n * When `@.disabled` is true, it prevents the `@childAnimation` trigger from animating,\n * along with any inner animations.\n *\n * ### Disable animations application-wide\n * When an area of the template is set to have animations disabled,\n * **all** inner components have their animations disabled as well.\n * This means that you can disable all animations for an app\n * by placing a host binding set on `@.disabled` on the topmost Angular component.\n *\n * ```typescript\n * import {Component, HostBinding} from '@angular/core';\n *\n * @Component({\n * selector: 'app-component',\n * templateUrl: 'app.component.html',\n * })\n * class AppComponent {\n * @HostBinding('@.disabled')\n * public animationsDisabled = true;\n * }\n * ```\n *\n * ### Overriding disablement of inner animations\n * Despite inner animations being disabled, a parent animation can `query()`\n * for inner elements located in disabled areas of the template and still animate\n * them if needed. This is also the case for when a sub animation is\n * queried by a parent and then later animated using `animateChild()`.\n *\n * ### Detecting when an animation is disabled\n * If a region of the DOM (or the entire application) has its animations disabled, the animation\n * trigger callbacks still fire, but for zero seconds. When the callback fires, it provides\n * an instance of an `AnimationEvent`. If animations are disabled,\n * the `.disabled` flag on the event is true.\n *\n * @publicApi\n */\nfunction trigger(name, definitions) {\n return { type: 7 /* AnimationMetadataType.Trigger */, name, definitions, options: {} };\n}\n/**\n * Defines an animation step that combines styling information with timing information.\n *\n * @param timings Sets `AnimateTimings` for the parent animation.\n * A string in the format \"duration [delay] [easing]\".\n * - Duration and delay are expressed as a number and optional time unit,\n * such as \"1s\" or \"10ms\" for one second and 10 milliseconds, respectively.\n * The default unit is milliseconds.\n * - The easing value controls how the animation accelerates and decelerates\n * during its runtime. Value is one of `ease`, `ease-in`, `ease-out`,\n * `ease-in-out`, or a `cubic-bezier()` function call.\n * If not supplied, no easing is applied.\n *\n * For example, the string \"1s 100ms ease-out\" specifies a duration of\n * 1000 milliseconds, and delay of 100 ms, and the \"ease-out\" easing style,\n * which decelerates near the end of the duration.\n * @param styles Sets AnimationStyles for the parent animation.\n * A function call to either `style()` or `keyframes()`\n * that returns a collection of CSS style entries to be applied to the parent animation.\n * When null, uses the styles from the destination state.\n * This is useful when describing an animation step that will complete an animation;\n * see \"Animating to the final state\" in `transitions()`.\n * @returns An object that encapsulates the animation step.\n *\n * @usageNotes\n * Call within an animation `sequence()`, `{@link animations/group group()}`, or\n * `transition()` call to specify an animation step\n * that applies given style data to the parent animation for a given amount of time.\n *\n * ### Syntax Examples\n * **Timing examples**\n *\n * The following examples show various `timings` specifications.\n * - `animate(500)` : Duration is 500 milliseconds.\n * - `animate(\"1s\")` : Duration is 1000 milliseconds.\n * - `animate(\"100ms 0.5s\")` : Duration is 100 milliseconds, delay is 500 milliseconds.\n * - `animate(\"5s ease-in\")` : Duration is 5000 milliseconds, easing in.\n * - `animate(\"5s 10ms cubic-bezier(.17,.67,.88,.1)\")` : Duration is 5000 milliseconds, delay is 10\n * milliseconds, easing according to a bezier curve.\n *\n * **Style examples**\n *\n * The following example calls `style()` to set a single CSS style.\n * ```typescript\n * animate(500, style({ background: \"red\" }))\n * ```\n * The following example calls `keyframes()` to set a CSS style\n * to different values for successive keyframes.\n * ```typescript\n * animate(500, keyframes(\n * [\n * style({ background: \"blue\" }),\n * style({ background: \"red\" })\n * ])\n * ```\n *\n * @publicApi\n */\nfunction animate(timings, styles = null) {\n return { type: 4 /* AnimationMetadataType.Animate */, styles, timings };\n}\n/**\n * @description Defines a list of animation steps to be run in parallel.\n *\n * @param steps An array of animation step objects.\n * - When steps are defined by `style()` or `animate()`\n * function calls, each call within the group is executed instantly.\n * - To specify offset styles to be applied at a later time, define steps with\n * `keyframes()`, or use `animate()` calls with a delay value.\n * For example:\n *\n * ```typescript\n * group([\n * animate(\"1s\", style({ background: \"black\" })),\n * animate(\"2s\", style({ color: \"white\" }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the group data.\n *\n * @usageNotes\n * Grouped animations are useful when a series of styles must be\n * animated at different starting times and closed off at different ending times.\n *\n * When called within a `sequence()` or a\n * `transition()` call, does not continue to the next\n * instruction until all of the inner animation steps have completed.\n *\n * @publicApi\n */\nfunction group(steps, options = null) {\n return { type: 3 /* AnimationMetadataType.Group */, steps, options };\n}\n/**\n * Defines a list of animation steps to be run sequentially, one by one.\n *\n * @param steps An array of animation step objects.\n * - Steps defined by `style()` calls apply the styling data immediately.\n * - Steps defined by `animate()` calls apply the styling data over time\n * as specified by the timing data.\n *\n * ```typescript\n * sequence([\n * style({ opacity: 0 }),\n * animate(\"1s\", style({ opacity: 1 }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the sequence data.\n *\n * @usageNotes\n * When you pass an array of steps to a\n * `transition()` call, the steps run sequentially by default.\n * Compare this to the `{@link animations/group group()}` call, which runs animation steps in\n *parallel.\n *\n * When a sequence is used within a `{@link animations/group group()}` or a `transition()` call,\n * execution continues to the next instruction only after each of the inner animation\n * steps have completed.\n *\n * @publicApi\n **/\nfunction sequence(steps, options = null) {\n return { type: 2 /* AnimationMetadataType.Sequence */, steps, options };\n}\n/**\n * Declares a key/value object containing CSS properties/styles that\n * can then be used for an animation [`state`](api/animations/state), within an animation\n *`sequence`, or as styling data for calls to `animate()` and `keyframes()`.\n *\n * @param tokens A set of CSS styles or HTML styles associated with an animation state.\n * The value can be any of the following:\n * - A key-value style pair associating a CSS property with a value.\n * - An array of key-value style pairs.\n * - An asterisk (*), to use auto-styling, where styles are derived from the element\n * being animated and applied to the animation when it starts.\n *\n * Auto-styling can be used to define a state that depends on layout or other\n * environmental factors.\n *\n * @return An object that encapsulates the style data.\n *\n * @usageNotes\n * The following examples create animation styles that collect a set of\n * CSS property values:\n *\n * ```typescript\n * // string values for CSS properties\n * style({ background: \"red\", color: \"blue\" })\n *\n * // numerical pixel values\n * style({ width: 100, height: 0 })\n * ```\n *\n * The following example uses auto-styling to allow an element to animate from\n * a height of 0 up to its full height:\n *\n * ```\n * style({ height: 0 }),\n * animate(\"1s\", style({ height: \"*\" }))\n * ```\n *\n * @publicApi\n **/\nfunction style(tokens) {\n return { type: 6 /* AnimationMetadataType.Style */, styles: tokens, offset: null };\n}\n/**\n * Declares an animation state within a trigger attached to an element.\n *\n * @param name One or more names for the defined state in a comma-separated string.\n * The following reserved state names can be supplied to define a style for specific use\n * cases:\n *\n * - `void` You can associate styles with this name to be used when\n * the element is detached from the application. For example, when an `ngIf` evaluates\n * to false, the state of the associated element is void.\n * - `*` (asterisk) Indicates the default state. You can associate styles with this name\n * to be used as the fallback when the state that is being animated is not declared\n * within the trigger.\n *\n * @param styles A set of CSS styles associated with this state, created using the\n * `style()` function.\n * This set of styles persists on the element once the state has been reached.\n * @param options Parameters that can be passed to the state when it is invoked.\n * 0 or more key-value pairs.\n * @return An object that encapsulates the new state data.\n *\n * @usageNotes\n * Use the `trigger()` function to register states to an animation trigger.\n * Use the `transition()` function to animate between states.\n * When a state is active within a component, its associated styles persist on the element,\n * even when the animation ends.\n *\n * @publicApi\n **/\nfunction state(name, styles, options) {\n return { type: 0 /* AnimationMetadataType.State */, name, styles, options };\n}\n/**\n * Defines a set of animation styles, associating each style with an optional `offset` value.\n *\n * @param steps A set of animation styles with optional offset data.\n * The optional `offset` value for a style specifies a percentage of the total animation\n * time at which that style is applied.\n * @returns An object that encapsulates the keyframes data.\n *\n * @usageNotes\n * Use with the `animate()` call. Instead of applying animations\n * from the current state\n * to the destination state, keyframes describe how each style entry is applied and at what point\n * within the animation arc.\n * Compare [CSS Keyframe Animations](https://www.w3schools.com/css/css3_animations.asp).\n *\n * ### Usage\n *\n * In the following example, the offset values describe\n * when each `backgroundColor` value is applied. The color is red at the start, and changes to\n * blue when 20% of the total time has elapsed.\n *\n * ```typescript\n * // the provided offset values\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\", offset: 0 }),\n * style({ backgroundColor: \"blue\", offset: 0.2 }),\n * style({ backgroundColor: \"orange\", offset: 0.3 }),\n * style({ backgroundColor: \"black\", offset: 1 })\n * ]))\n * ```\n *\n * If there are no `offset` values specified in the style entries, the offsets\n * are calculated automatically.\n *\n * ```typescript\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\" }) // offset = 0\n * style({ backgroundColor: \"blue\" }) // offset = 0.33\n * style({ backgroundColor: \"orange\" }) // offset = 0.66\n * style({ backgroundColor: \"black\" }) // offset = 1\n * ]))\n *```\n\n * @publicApi\n */\nfunction keyframes(steps) {\n return { type: 5 /* AnimationMetadataType.Keyframes */, steps };\n}\n/**\n * Declares an animation transition which is played when a certain specified condition is met.\n *\n * @param stateChangeExpr A string with a specific format or a function that specifies when the\n * animation transition should occur (see [State Change Expression](#state-change-expression)).\n *\n * @param steps One or more animation objects that represent the animation's instructions.\n *\n * @param options An options object that can be used to specify a delay for the animation or provide\n * custom parameters for it.\n *\n * @returns An object that encapsulates the transition data.\n *\n * @usageNotes\n *\n * ### State Change Expression\n *\n * The State Change Expression instructs Angular when to run the transition's animations, it can\n *either be\n * - a string with a specific syntax\n * - or a function that compares the previous and current state (value of the expression bound to\n * the element's trigger) and returns `true` if the transition should occur or `false` otherwise\n *\n * The string format can be:\n * - `fromState => toState`, which indicates that the transition's animations should occur then the\n * expression bound to the trigger's element goes from `fromState` to `toState`\n *\n * _Example:_\n * ```typescript\n * transition('open => closed', animate('.5s ease-out', style({ height: 0 }) ))\n * ```\n *\n * - `fromState <=> toState`, which indicates that the transition's animations should occur then\n * the expression bound to the trigger's element goes from `fromState` to `toState` or vice versa\n *\n * _Example:_\n * ```typescript\n * transition('enabled <=> disabled', animate('1s cubic-bezier(0.8,0.3,0,1)'))\n * ```\n *\n * - `:enter`/`:leave`, which indicates that the transition's animations should occur when the\n * element enters or exists the DOM\n *\n * _Example:_\n * ```typescript\n * transition(':enter', [\n * style({ opacity: 0 }),\n * animate('500ms', style({ opacity: 1 }))\n * ])\n * ```\n *\n * - `:increment`/`:decrement`, which indicates that the transition's animations should occur when\n * the numerical expression bound to the trigger's element has increased in value or decreased\n *\n * _Example:_\n * ```typescript\n * transition(':increment', query('@counter', animateChild()))\n * ```\n *\n * - a sequence of any of the above divided by commas, which indicates that transition's animations\n * should occur whenever one of the state change expressions matches\n *\n * _Example:_\n * ```typescript\n * transition(':increment, * => enabled, :enter', animate('1s ease', keyframes([\n * style({ transform: 'scale(1)', offset: 0}),\n * style({ transform: 'scale(1.1)', offset: 0.7}),\n * style({ transform: 'scale(1)', offset: 1})\n * ]))),\n * ```\n *\n * Also note that in such context:\n * - `void` can be used to indicate the absence of the element\n * - asterisks can be used as wildcards that match any state\n * - (as a consequence of the above, `void => *` is equivalent to `:enter` and `* => void` is\n * equivalent to `:leave`)\n * - `true` and `false` also match expression values of `1` and `0` respectively (but do not match\n * _truthy_ and _falsy_ values)\n *\n *
\n *\n * Be careful about entering end leaving elements as their transitions present a common\n * pitfall for developers.\n *\n * Note that when an element with a trigger enters the DOM its `:enter` transition always\n * gets executed, but its `:leave` transition will not be executed if the element is removed\n * alongside its parent (as it will be removed \"without warning\" before its transition has\n * a chance to be executed, the only way that such transition can occur is if the element\n * is exiting the DOM on its own).\n *\n *\n *
\n *\n * ### Animating to a Final State\n *\n * If the final step in a transition is a call to `animate()` that uses a timing value\n * with no `style` data, that step is automatically considered the final animation arc,\n * for the element to reach the final state, in such case Angular automatically adds or removes\n * CSS styles to ensure that the element is in the correct final state.\n *\n *\n * ### Usage Examples\n *\n * - Transition animations applied based on\n * the trigger's expression value\n *\n * ```HTML\n *
\n * ...\n *
\n * ```\n *\n * ```typescript\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\"on => off, open => closed\", animate(500)),\n * transition(\"* <=> error\", query('.indicator', animateChild()))\n * ])\n * ```\n *\n * - Transition animations applied based on custom logic dependent\n * on the trigger's expression value and provided parameters\n *\n * ```HTML\n *
\n * ...\n *
\n * ```\n *\n * ```typescript\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\n * (fromState, toState, _element, params) =>\n * ['firststep', 'laststep'].includes(fromState.toLowerCase())\n * && toState === params?.['target'],\n * animate('1s')\n * )\n * ])\n * ```\n *\n * @publicApi\n **/\nfunction transition(stateChangeExpr, steps, options = null) {\n return { type: 1 /* AnimationMetadataType.Transition */, expr: stateChangeExpr, animation: steps, options };\n}\n/**\n * Produces a reusable animation that can be invoked in another animation or sequence,\n * by calling the `useAnimation()` function.\n *\n * @param steps One or more animation objects, as returned by the `animate()`\n * or `sequence()` function, that form a transformation from one state to another.\n * A sequence is used by default when you pass an array.\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional developer-defined parameters.\n * Provided values for additional parameters are used as defaults,\n * and override values can be passed to the caller on invocation.\n * @returns An object that encapsulates the animation data.\n *\n * @usageNotes\n * The following example defines a reusable animation, providing some default parameter\n * values.\n *\n * ```typescript\n * var fadeAnimation = animation([\n * style({ opacity: '{{ start }}' }),\n * animate('{{ time }}',\n * style({ opacity: '{{ end }}'}))\n * ],\n * { params: { time: '1000ms', start: 0, end: 1 }});\n * ```\n *\n * The following invokes the defined animation with a call to `useAnimation()`,\n * passing in override parameter values.\n *\n * ```js\n * useAnimation(fadeAnimation, {\n * params: {\n * time: '2s',\n * start: 1,\n * end: 0\n * }\n * })\n * ```\n *\n * If any of the passed-in parameter values are missing from this call,\n * the default values are used. If one or more parameter values are missing before a step is\n * animated, `useAnimation()` throws an error.\n *\n * @publicApi\n */\nfunction animation(steps, options = null) {\n return { type: 8 /* AnimationMetadataType.Reference */, animation: steps, options };\n}\n/**\n * Executes a queried inner animation element within an animation sequence.\n *\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional override values for developer-defined parameters.\n * @return An object that encapsulates the child animation data.\n *\n * @usageNotes\n * Each time an animation is triggered in Angular, the parent animation\n * has priority and any child animations are blocked. In order\n * for a child animation to run, the parent animation must query each of the elements\n * containing child animations, and run them using this function.\n *\n * Note that this feature is designed to be used with `query()` and it will only work\n * with animations that are assigned using the Angular animation library. CSS keyframes\n * and transitions are not handled by this API.\n *\n * @publicApi\n */\nfunction animateChild(options = null) {\n return { type: 9 /* AnimationMetadataType.AnimateChild */, options };\n}\n/**\n * Starts a reusable animation that is created using the `animation()` function.\n *\n * @param animation The reusable animation to start.\n * @param options An options object that can contain a delay value for the start of\n * the animation, and additional override values for developer-defined parameters.\n * @return An object that contains the animation parameters.\n *\n * @publicApi\n */\nfunction useAnimation(animation, options = null) {\n return { type: 10 /* AnimationMetadataType.AnimateRef */, animation, options };\n}\n/**\n * Finds one or more inner elements within the current element that is\n * being animated within a sequence. Use with `animate()`.\n *\n * @param selector The element to query, or a set of elements that contain Angular-specific\n * characteristics, specified with one or more of the following tokens.\n * - `query(\":enter\")` or `query(\":leave\")` : Query for newly inserted/removed elements (not\n * all elements can be queried via these tokens, see\n * [Entering and Leaving Elements](#entering-and-leaving-elements))\n * - `query(\":animating\")` : Query all currently animating elements.\n * - `query(\"@triggerName\")` : Query elements that contain an animation trigger.\n * - `query(\"@*\")` : Query all elements that contain an animation triggers.\n * - `query(\":self\")` : Include the current element into the animation sequence.\n *\n * @param animation One or more animation steps to apply to the queried element or elements.\n * An array is treated as an animation sequence.\n * @param options An options object. Use the 'limit' field to limit the total number of\n * items to collect.\n * @return An object that encapsulates the query data.\n *\n * @usageNotes\n *\n * ### Multiple Tokens\n *\n * Tokens can be merged into a combined query selector string. For example:\n *\n * ```typescript\n * query(':self, .record:enter, .record:leave, @subTrigger', [...])\n * ```\n *\n * The `query()` function collects multiple elements and works internally by using\n * `element.querySelectorAll`. Use the `limit` field of an options object to limit\n * the total number of items to be collected. For example:\n *\n * ```js\n * query('div', [\n * animate(...),\n * animate(...)\n * ], { limit: 1 })\n * ```\n *\n * By default, throws an error when zero items are found. Set the\n * `optional` flag to ignore this error. For example:\n *\n * ```js\n * query('.some-element-that-may-not-be-there', [\n * animate(...),\n * animate(...)\n * ], { optional: true })\n * ```\n *\n * ### Entering and Leaving Elements\n *\n * Not all elements can be queried via the `:enter` and `:leave` tokens, the only ones\n * that can are those that Angular assumes can enter/leave based on their own logic\n * (if their insertion/removal is simply a consequence of that of their parent they\n * should be queried via a different token in their parent's `:enter`/`:leave` transitions).\n *\n * The only elements Angular assumes can enter/leave based on their own logic (thus the only\n * ones that can be queried via the `:enter` and `:leave` tokens) are:\n * - Those inserted dynamically (via `ViewContainerRef`)\n * - Those that have a structural directive (which, under the hood, are a subset of the above ones)\n *\n *
\n *\n * Note that elements will be successfully queried via `:enter`/`:leave` even if their\n * insertion/removal is not done manually via `ViewContainerRef`or caused by their structural\n * directive (e.g. they enter/exit alongside their parent).\n *\n *
\n *\n *
\n *\n * There is an exception to what previously mentioned, besides elements entering/leaving based on\n * their own logic, elements with an animation trigger can always be queried via `:leave` when\n * their parent is also leaving.\n *\n *
\n *\n * ### Usage Example\n *\n * The following example queries for inner elements and animates them\n * individually using `animate()`.\n *\n * ```typescript\n * @Component({\n * selector: 'inner',\n * template: `\n *
\n *

Title

\n *
\n * Blah blah blah\n *
\n *
\n * `,\n * animations: [\n * trigger('queryAnimation', [\n * transition('* => goAnimate', [\n * // hide the inner elements\n * query('h1', style({ opacity: 0 })),\n * query('.content', style({ opacity: 0 })),\n *\n * // animate the inner elements in, one by one\n * query('h1', animate(1000, style({ opacity: 1 }))),\n * query('.content', animate(1000, style({ opacity: 1 }))),\n * ])\n * ])\n * ]\n * })\n * class Cmp {\n * exp = '';\n *\n * goAnimate() {\n * this.exp = 'goAnimate';\n * }\n * }\n * ```\n *\n * @publicApi\n */\nfunction query(selector, animation, options = null) {\n return { type: 11 /* AnimationMetadataType.Query */, selector, animation, options };\n}\n/**\n * Use within an animation `query()` call to issue a timing gap after\n * each queried item is animated.\n *\n * @param timings A delay value.\n * @param animation One ore more animation steps.\n * @returns An object that encapsulates the stagger data.\n *\n * @usageNotes\n * In the following example, a container element wraps a list of items stamped out\n * by an `ngFor`. The container element contains an animation trigger that will later be set\n * to query for each of the inner items.\n *\n * Each time items are added, the opacity fade-in animation runs,\n * and each removed item is faded out.\n * When either of these animations occur, the stagger effect is\n * applied after each item's animation is started.\n *\n * ```html\n * \n * \n *
\n *
\n *
\n * {{ item }}\n *
\n *
\n * ```\n *\n * Here is the component code:\n *\n * ```typescript\n * import {trigger, transition, style, animate, query, stagger} from '@angular/animations';\n * @Component({\n * templateUrl: 'list.component.html',\n * animations: [\n * trigger('listAnimation', [\n * ...\n * ])\n * ]\n * })\n * class ListComponent {\n * items = [];\n *\n * showItems() {\n * this.items = [0,1,2,3,4];\n * }\n *\n * hideItems() {\n * this.items = [];\n * }\n *\n * toggle() {\n * this.items.length ? this.hideItems() : this.showItems();\n * }\n * }\n * ```\n *\n * Here is the animation trigger code:\n *\n * ```typescript\n * trigger('listAnimation', [\n * transition('* => *', [ // each time the binding value changes\n * query(':leave', [\n * stagger(100, [\n * animate('0.5s', style({ opacity: 0 }))\n * ])\n * ]),\n * query(':enter', [\n * style({ opacity: 0 }),\n * stagger(100, [\n * animate('0.5s', style({ opacity: 1 }))\n * ])\n * ])\n * ])\n * ])\n * ```\n *\n * @publicApi\n */\nfunction stagger(timings, animation) {\n return { type: 12 /* AnimationMetadataType.Stagger */, timings, animation };\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction scheduleMicroTask(cb) {\n Promise.resolve().then(cb);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * An empty programmatic controller for reusable animations.\n * Used internally when animations are disabled, to avoid\n * checking for the null case when an animation player is expected.\n *\n * @see `animate()`\n * @see `AnimationPlayer`\n * @see `GroupPlayer`\n *\n * @publicApi\n */\nclass NoopAnimationPlayer {\n constructor(duration = 0, delay = 0) {\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this._started = false;\n this._destroyed = false;\n this._finished = false;\n this._position = 0;\n this.parentPlayer = null;\n this.totalTime = duration + delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n init() { }\n play() {\n if (!this.hasStarted()) {\n this._onStart();\n this.triggerMicrotask();\n }\n this._started = true;\n }\n /** @internal */\n triggerMicrotask() {\n scheduleMicroTask(() => this._onFinish());\n }\n _onStart() {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n pause() { }\n restart() { }\n finish() {\n this._onFinish();\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n if (!this.hasStarted()) {\n this._onStart();\n }\n this.finish();\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this._started = false;\n this._finished = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n setPosition(position) {\n this._position = this.totalTime ? position * this.totalTime : 1;\n }\n getPosition() {\n return this.totalTime ? this._position / this.totalTime : 1;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A programmatic controller for a group of reusable animations.\n * Used internally to control animations.\n *\n * @see `AnimationPlayer`\n * @see `{@link animations/group group()}`\n *\n */\nclass AnimationGroupPlayer {\n constructor(_players) {\n this._onDoneFns = [];\n this._onStartFns = [];\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n this._onDestroyFns = [];\n this.parentPlayer = null;\n this.totalTime = 0;\n this.players = _players;\n let doneCount = 0;\n let destroyCount = 0;\n let startCount = 0;\n const total = this.players.length;\n if (total == 0) {\n scheduleMicroTask(() => this._onFinish());\n }\n else {\n this.players.forEach(player => {\n player.onDone(() => {\n if (++doneCount == total) {\n this._onFinish();\n }\n });\n player.onDestroy(() => {\n if (++destroyCount == total) {\n this._onDestroy();\n }\n });\n player.onStart(() => {\n if (++startCount == total) {\n this._onStart();\n }\n });\n });\n }\n this.totalTime = this.players.reduce((time, player) => Math.max(time, player.totalTime), 0);\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this.players.forEach(player => player.init());\n }\n onStart(fn) {\n this._onStartFns.push(fn);\n }\n _onStart() {\n if (!this.hasStarted()) {\n this._started = true;\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n }\n onDone(fn) {\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n play() {\n if (!this.parentPlayer) {\n this.init();\n }\n this._onStart();\n this.players.forEach(player => player.play());\n }\n pause() {\n this.players.forEach(player => player.pause());\n }\n restart() {\n this.players.forEach(player => player.restart());\n }\n finish() {\n this._onFinish();\n this.players.forEach(player => player.finish());\n }\n destroy() {\n this._onDestroy();\n }\n _onDestroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._onFinish();\n this.players.forEach(player => player.destroy());\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this.players.forEach(player => player.reset());\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n }\n setPosition(p) {\n const timeAtPosition = p * this.totalTime;\n this.players.forEach(player => {\n const position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;\n player.setPosition(position);\n });\n }\n getPosition() {\n const longestPlayer = this.players.reduce((longestSoFar, player) => {\n const newPlayerIsLongest = longestSoFar === null || player.totalTime > longestSoFar.totalTime;\n return newPlayerIsLongest ? player : longestSoFar;\n }, null);\n return longestPlayer != null ? longestPlayer.getPosition() : 0;\n }\n beforeDestroy() {\n this.players.forEach(player => {\n if (player.beforeDestroy) {\n player.beforeDestroy();\n }\n });\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ɵPRE_STYLE = '!';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AUTO_STYLE, AnimationBuilder, AnimationFactory, NoopAnimationPlayer, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, AnimationGroupPlayer as ɵAnimationGroupPlayer, ɵPRE_STYLE };\n","/**\n * @license Angular v14.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵAnimationGroupPlayer, NoopAnimationPlayer, AUTO_STYLE, ɵPRE_STYLE, sequence, style } from '@angular/animations';\nimport * as i0 from '@angular/core';\nimport { ɵRuntimeError, Injectable } from '@angular/core';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst LINE_START = '\\n - ';\nfunction invalidTimingValue(exp) {\n return new ɵRuntimeError(3000 /* RuntimeErrorCode.INVALID_TIMING_VALUE */, ngDevMode && `The provided timing value \"${exp}\" is invalid.`);\n}\nfunction negativeStepValue() {\n return new ɵRuntimeError(3100 /* RuntimeErrorCode.NEGATIVE_STEP_VALUE */, ngDevMode && 'Duration values below 0 are not allowed for this animation step.');\n}\nfunction negativeDelayValue() {\n return new ɵRuntimeError(3101 /* RuntimeErrorCode.NEGATIVE_DELAY_VALUE */, ngDevMode && 'Delay values below 0 are not allowed for this animation step.');\n}\nfunction invalidStyleParams(varName) {\n return new ɵRuntimeError(3001 /* RuntimeErrorCode.INVALID_STYLE_PARAMS */, ngDevMode &&\n `Unable to resolve the local animation param ${varName} in the given list of values`);\n}\nfunction invalidParamValue(varName) {\n return new ɵRuntimeError(3003 /* RuntimeErrorCode.INVALID_PARAM_VALUE */, ngDevMode && `Please provide a value for the animation param ${varName}`);\n}\nfunction invalidNodeType(nodeType) {\n return new ɵRuntimeError(3004 /* RuntimeErrorCode.INVALID_NODE_TYPE */, ngDevMode && `Unable to resolve animation metadata node #${nodeType}`);\n}\nfunction invalidCssUnitValue(userProvidedProperty, value) {\n return new ɵRuntimeError(3005 /* RuntimeErrorCode.INVALID_CSS_UNIT_VALUE */, ngDevMode && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`);\n}\nfunction invalidTrigger() {\n return new ɵRuntimeError(3006 /* RuntimeErrorCode.INVALID_TRIGGER */, ngDevMode &&\n 'animation triggers cannot be prefixed with an `@` sign (e.g. trigger(\\'@foo\\', [...]))');\n}\nfunction invalidDefinition() {\n return new ɵRuntimeError(3007 /* RuntimeErrorCode.INVALID_DEFINITION */, ngDevMode && 'only state() and transition() definitions can sit inside of a trigger()');\n}\nfunction invalidState(metadataName, missingSubs) {\n return new ɵRuntimeError(3008 /* RuntimeErrorCode.INVALID_STATE */, ngDevMode &&\n `state(\"${metadataName}\", ...) must define default values for all the following style substitutions: ${missingSubs.join(', ')}`);\n}\nfunction invalidStyleValue(value) {\n return new ɵRuntimeError(3002 /* RuntimeErrorCode.INVALID_STYLE_VALUE */, ngDevMode && `The provided style string value ${value} is not allowed.`);\n}\nfunction invalidProperty(prop) {\n return new ɵRuntimeError(3009 /* RuntimeErrorCode.INVALID_PROPERTY */, ngDevMode &&\n `The provided animation property \"${prop}\" is not a supported CSS property for animations`);\n}\nfunction invalidParallelAnimation(prop, firstStart, firstEnd, secondStart, secondEnd) {\n return new ɵRuntimeError(3010 /* RuntimeErrorCode.INVALID_PARALLEL_ANIMATION */, ngDevMode &&\n `The CSS property \"${prop}\" that exists between the times of \"${firstStart}ms\" and \"${firstEnd}ms\" is also being animated in a parallel animation between the times of \"${secondStart}ms\" and \"${secondEnd}ms\"`);\n}\nfunction invalidKeyframes() {\n return new ɵRuntimeError(3011 /* RuntimeErrorCode.INVALID_KEYFRAMES */, ngDevMode && `keyframes() must be placed inside of a call to animate()`);\n}\nfunction invalidOffset() {\n return new ɵRuntimeError(3012 /* RuntimeErrorCode.INVALID_OFFSET */, ngDevMode && `Please ensure that all keyframe offsets are between 0 and 1`);\n}\nfunction keyframeOffsetsOutOfOrder() {\n return new ɵRuntimeError(3200 /* RuntimeErrorCode.KEYFRAME_OFFSETS_OUT_OF_ORDER */, ngDevMode && `Please ensure that all keyframe offsets are in order`);\n}\nfunction keyframesMissingOffsets() {\n return new ɵRuntimeError(3202 /* RuntimeErrorCode.KEYFRAMES_MISSING_OFFSETS */, ngDevMode && `Not all style() steps within the declared keyframes() contain offsets`);\n}\nfunction invalidStagger() {\n return new ɵRuntimeError(3013 /* RuntimeErrorCode.INVALID_STAGGER */, ngDevMode && `stagger() can only be used inside of query()`);\n}\nfunction invalidQuery(selector) {\n return new ɵRuntimeError(3014 /* RuntimeErrorCode.INVALID_QUERY */, ngDevMode &&\n `\\`query(\"${selector}\")\\` returned zero elements. (Use \\`query(\"${selector}\", { optional: true })\\` if you wish to allow this.)`);\n}\nfunction invalidExpression(expr) {\n return new ɵRuntimeError(3015 /* RuntimeErrorCode.INVALID_EXPRESSION */, ngDevMode && `The provided transition expression \"${expr}\" is not supported`);\n}\nfunction invalidTransitionAlias(alias) {\n return new ɵRuntimeError(3016 /* RuntimeErrorCode.INVALID_TRANSITION_ALIAS */, ngDevMode && `The transition alias value \"${alias}\" is not supported`);\n}\nfunction validationFailed(errors) {\n return new ɵRuntimeError(3500 /* RuntimeErrorCode.VALIDATION_FAILED */, ngDevMode && `animation validation failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction buildingFailed(errors) {\n return new ɵRuntimeError(3501 /* RuntimeErrorCode.BUILDING_FAILED */, ngDevMode && `animation building failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerBuildFailed(name, errors) {\n return new ɵRuntimeError(3404 /* RuntimeErrorCode.TRIGGER_BUILD_FAILED */, ngDevMode &&\n `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors.map(err => err.message).join('\\n - ')}`);\n}\nfunction animationFailed(errors) {\n return new ɵRuntimeError(3502 /* RuntimeErrorCode.ANIMATION_FAILED */, ngDevMode &&\n `Unable to animate due to the following errors:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction registerFailed(errors) {\n return new ɵRuntimeError(3503 /* RuntimeErrorCode.REGISTRATION_FAILED */, ngDevMode &&\n `Unable to build the animation due to the following errors: ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingOrDestroyedAnimation() {\n return new ɵRuntimeError(3300 /* RuntimeErrorCode.MISSING_OR_DESTROYED_ANIMATION */, ngDevMode && 'The requested animation doesn\\'t exist or has already been destroyed');\n}\nfunction createAnimationFailed(errors) {\n return new ɵRuntimeError(3504 /* RuntimeErrorCode.CREATE_ANIMATION_FAILED */, ngDevMode &&\n `Unable to create the animation due to the following errors:${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingPlayer(id) {\n return new ɵRuntimeError(3301 /* RuntimeErrorCode.MISSING_PLAYER */, ngDevMode && `Unable to find the timeline player referenced by ${id}`);\n}\nfunction missingTrigger(phase, name) {\n return new ɵRuntimeError(3302 /* RuntimeErrorCode.MISSING_TRIGGER */, ngDevMode &&\n `Unable to listen on the animation trigger event \"${phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n}\nfunction missingEvent(name) {\n return new ɵRuntimeError(3303 /* RuntimeErrorCode.MISSING_EVENT */, ngDevMode &&\n `Unable to listen on the animation trigger \"${name}\" because the provided event is undefined!`);\n}\nfunction unsupportedTriggerEvent(phase, name) {\n return new ɵRuntimeError(3400 /* RuntimeErrorCode.UNSUPPORTED_TRIGGER_EVENT */, ngDevMode &&\n `The provided animation trigger event \"${phase}\" for the animation trigger \"${name}\" is not supported!`);\n}\nfunction unregisteredTrigger(name) {\n return new ɵRuntimeError(3401 /* RuntimeErrorCode.UNREGISTERED_TRIGGER */, ngDevMode && `The provided animation trigger \"${name}\" has not been registered!`);\n}\nfunction triggerTransitionsFailed(errors) {\n return new ɵRuntimeError(3402 /* RuntimeErrorCode.TRIGGER_TRANSITIONS_FAILED */, ngDevMode &&\n `Unable to process animations due to the following failed trigger transitions\\n ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerParsingFailed(name, errors) {\n return new ɵRuntimeError(3403 /* RuntimeErrorCode.TRIGGER_PARSING_FAILED */, ngDevMode &&\n `Animation parsing for the ${name} trigger have failed:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction transitionFailed(name, errors) {\n return new ɵRuntimeError(3505 /* RuntimeErrorCode.TRANSITION_FAILED */, ngDevMode && `@${name} has failed due to:\\n ${errors.map(err => err.message).join('\\n- ')}`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Set of all animatable CSS properties\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties\n */\nconst ANIMATABLE_PROP_SET = new Set([\n '-moz-outline-radius',\n '-moz-outline-radius-bottomleft',\n '-moz-outline-radius-bottomright',\n '-moz-outline-radius-topleft',\n '-moz-outline-radius-topright',\n '-ms-grid-columns',\n '-ms-grid-rows',\n '-webkit-line-clamp',\n '-webkit-text-fill-color',\n '-webkit-text-stroke',\n '-webkit-text-stroke-color',\n 'accent-color',\n 'all',\n 'backdrop-filter',\n 'background',\n 'background-color',\n 'background-position',\n 'background-size',\n 'block-size',\n 'border',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-width',\n 'border-color',\n 'border-end-end-radius',\n 'border-end-start-radius',\n 'border-image-outset',\n 'border-image-slice',\n 'border-image-width',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-width',\n 'border-left',\n 'border-left-color',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-width',\n 'border-start-end-radius',\n 'border-start-start-radius',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-shadow',\n 'caret-color',\n 'clip',\n 'clip-path',\n 'color',\n 'column-count',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-width',\n 'column-width',\n 'columns',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-grow',\n 'flex-shrink',\n 'font',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-variation-settings',\n 'font-weight',\n 'gap',\n 'grid-column-gap',\n 'grid-gap',\n 'grid-row-gap',\n 'grid-template-columns',\n 'grid-template-rows',\n 'height',\n 'inline-size',\n 'input-security',\n 'inset',\n 'inset-block',\n 'inset-block-end',\n 'inset-block-start',\n 'inset-inline',\n 'inset-inline-end',\n 'inset-inline-start',\n 'left',\n 'letter-spacing',\n 'line-clamp',\n 'line-height',\n 'margin',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'mask',\n 'mask-border',\n 'mask-position',\n 'mask-size',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-lines',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'object-position',\n 'offset',\n 'offset-anchor',\n 'offset-distance',\n 'offset-path',\n 'offset-position',\n 'offset-rotate',\n 'opacity',\n 'order',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-width',\n 'padding',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'perspective',\n 'perspective-origin',\n 'right',\n 'rotate',\n 'row-gap',\n 'scale',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-coordinate',\n 'scroll-snap-destination',\n 'scrollbar-color',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'tab-size',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-thickness',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-indent',\n 'text-shadow',\n 'text-underline-offset',\n 'top',\n 'transform',\n 'transform-origin',\n 'translate',\n 'vertical-align',\n 'visibility',\n 'width',\n 'word-spacing',\n 'z-index',\n 'zoom',\n]);\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction isBrowser() {\n return (typeof window !== 'undefined' && typeof window.document !== 'undefined');\n}\nfunction isNode() {\n // Checking only for `process` isn't enough to identify whether or not we're in a Node\n // environment, because Webpack by default will polyfill the `process`. While we can discern\n // that Webpack polyfilled it by looking at `process.browser`, it's very Webpack-specific and\n // might not be future-proof. Instead we look at the stringified version of `process` which\n // is `[object process]` in Node and `[object Object]` when polyfilled.\n return typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n}\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new ɵAnimationGroupPlayer(players);\n }\n}\nfunction normalizeKeyframes$1(driver, normalizer, element, keyframes, preStyles = new Map(), postStyles = new Map()) {\n const errors = [];\n const normalizedKeyframes = [];\n let previousOffset = -1;\n let previousKeyframe = null;\n keyframes.forEach(kf => {\n const offset = kf.get('offset');\n const isSameOffset = offset == previousOffset;\n const normalizedKeyframe = (isSameOffset && previousKeyframe) || new Map();\n kf.forEach((val, prop) => {\n let normalizedProp = prop;\n let normalizedValue = val;\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case ɵPRE_STYLE:\n normalizedValue = preStyles.get(prop);\n break;\n case AUTO_STYLE:\n normalizedValue = postStyles.get(prop);\n break;\n default:\n normalizedValue =\n normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe.set(normalizedProp, normalizedValue);\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n throw animationFailed(errors);\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player)));\n break;\n case 'done':\n player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player)));\n break;\n case 'destroy':\n player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player)));\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, player) {\n const totalTime = player.totalTime;\n const disabled = player.disabled ? true : false;\n const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime, disabled);\n const data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName = '', totalTime = 0, disabled) {\n return { element, triggerName, fromState, toState, phaseName, totalTime, disabled: !!disabled };\n}\nfunction getOrSetDefaultValue(map, key, defaultValue) {\n let value = map.get(key);\n if (!value) {\n map.set(key, value = defaultValue);\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n const separatorPos = command.indexOf(':');\n const id = command.substring(1, separatorPos);\n const action = command.slice(separatorPos + 1);\n return [id, action];\n}\nlet _contains = (elm1, elm2) => false;\nlet _query = (element, selector, multi) => {\n return [];\n};\nlet _documentElement = null;\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host; // consider host to support shadow DOM\n if (parent === _documentElement) {\n return null;\n }\n return parent;\n}\n// Define utility methods for browsers and platform-server(domino) where Element\n// and utility methods exist.\nconst _isNode = isNode();\nif (_isNode || typeof Element !== 'undefined') {\n if (!isBrowser()) {\n _contains = (elm1, elm2) => elm1.contains(elm2);\n }\n else {\n // Read the document element in an IIFE that's been marked pure to avoid a top-level property\n // read that may prevent tree-shaking.\n _documentElement = /* @__PURE__ */ (() => document.documentElement)();\n _contains = (elm1, elm2) => {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n };\n }\n _query = (element, selector, multi) => {\n if (multi) {\n return Array.from(element.querySelectorAll(selector));\n }\n const elem = element.querySelector(selector);\n return elem ? [elem] : [];\n };\n}\nfunction containsVendorPrefix(prop) {\n // Webkit is the only real popular vendor prefix nowadays\n // cc: http://shouldiprefix.com/\n return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\nlet _CACHED_BODY = null;\nlet _IS_WEBKIT = false;\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n _IS_WEBKIT = _CACHED_BODY.style ? ('WebkitAppearance' in _CACHED_BODY.style) : false;\n }\n let result = true;\n if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {\n result = prop in _CACHED_BODY.style;\n if (!result && _IS_WEBKIT) {\n const camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1);\n result = camelProp in _CACHED_BODY.style;\n }\n }\n return result;\n}\nfunction validateWebAnimatableStyleProperty(prop) {\n return ANIMATABLE_PROP_SET.has(prop);\n}\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nconst containsElement = _contains;\nconst invokeQuery = _query;\nfunction hypenatePropsKeys(original) {\n const newMap = new Map();\n original.forEach((val, prop) => {\n const newProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2');\n newMap.set(newProp, val);\n });\n return newMap;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @publicApi\n */\nclass NoopAnimationDriver {\n validateStyleProperty(prop) {\n return validateStyleProperty(prop);\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return defaultValue || '';\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = [], scrubberAccessRequested) {\n return new NoopAnimationPlayer(duration, delay);\n }\n}\nNoopAnimationDriver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopAnimationDriver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNoopAnimationDriver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopAnimationDriver });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopAnimationDriver, decorators: [{\n type: Injectable\n }] });\n/**\n * @publicApi\n */\nclass AnimationDriver {\n}\nAnimationDriver.NOOP = ( /* @__PURE__ */new NoopAnimationDriver());\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ONE_SECOND = 1000;\nconst SUBSTITUTION_EXPR_START = '{{';\nconst SUBSTITUTION_EXPR_END = '}}';\nconst ENTER_CLASSNAME = 'ng-enter';\nconst LEAVE_CLASSNAME = 'ng-leave';\nconst NG_TRIGGER_CLASSNAME = 'ng-trigger';\nconst NG_TRIGGER_SELECTOR = '.ng-trigger';\nconst NG_ANIMATING_CLASSNAME = 'ng-animating';\nconst NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number')\n return value;\n const matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2)\n return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default: // ms or something else\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration') ?\n timings :\n parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n let duration;\n let delay = 0;\n let easing = '';\n if (typeof exp === 'string') {\n const matches = exp.match(regex);\n if (matches === null) {\n errors.push(invalidTimingValue(exp));\n return { duration: 0, delay: 0, easing: '' };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n const delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n }\n const easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n }\n else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n let containsErrors = false;\n let startIndex = errors.length;\n if (duration < 0) {\n errors.push(negativeStepValue());\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(negativeDelayValue());\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, invalidTimingValue(exp));\n }\n }\n return { duration, delay, easing };\n}\nfunction copyObj(obj, destination = {}) {\n Object.keys(obj).forEach(prop => {\n destination[prop] = obj[prop];\n });\n return destination;\n}\nfunction convertToMap(obj) {\n const styleMap = new Map();\n Object.keys(obj).forEach(prop => {\n const val = obj[prop];\n styleMap.set(prop, val);\n });\n return styleMap;\n}\nfunction normalizeKeyframes(keyframes) {\n if (!keyframes.length) {\n return [];\n }\n if (keyframes[0] instanceof Map) {\n return keyframes;\n }\n return keyframes.map(kf => convertToMap(kf));\n}\nfunction normalizeStyles(styles) {\n const normalizedStyles = new Map();\n if (Array.isArray(styles)) {\n styles.forEach(data => copyStyles(data, normalizedStyles));\n }\n else {\n copyStyles(styles, normalizedStyles);\n }\n return normalizedStyles;\n}\nfunction copyStyles(styles, destination = new Map(), backfill) {\n if (backfill) {\n for (let [prop, val] of backfill) {\n destination.set(prop, val);\n }\n }\n for (let [prop, val] of styles) {\n destination.set(prop, val);\n }\n return destination;\n}\nfunction getStyleAttributeString(element, key, value) {\n // Return the key-value pair string to be added to the style attribute for the\n // given CSS style key.\n if (value) {\n return key + ':' + value + ';';\n }\n else {\n return '';\n }\n}\nfunction writeStyleAttribute(element) {\n // Read the style property of the element and manually reflect it to the\n // style attribute. This is needed because Domino on platform-server doesn't\n // understand the full set of allowed CSS properties and doesn't reflect some\n // of them automatically.\n let styleAttrValue = '';\n for (let i = 0; i < element.style.length; i++) {\n const key = element.style.item(i);\n styleAttrValue += getStyleAttributeString(element, key, element.style.getPropertyValue(key));\n }\n for (const key in element.style) {\n // Skip internal Domino properties that don't need to be reflected.\n if (!element.style.hasOwnProperty(key) || key.startsWith('_')) {\n continue;\n }\n const dashKey = camelCaseToDashCase(key);\n styleAttrValue += getStyleAttributeString(element, dashKey, element.style[key]);\n }\n element.setAttribute('style', styleAttrValue);\n}\nfunction setStyles(element, styles, formerStyles) {\n if (element['style']) {\n styles.forEach((val, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n if (formerStyles && !formerStyles.has(prop)) {\n formerStyles.set(prop, element.style[camelProp]);\n }\n element.style[camelProp] = val;\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction eraseStyles(element, styles) {\n if (element['style']) {\n styles.forEach((_, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1)\n return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n const params = options.params || {};\n const matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach(varName => {\n if (!params.hasOwnProperty(varName)) {\n errors.push(invalidStyleParams(varName));\n }\n });\n }\n}\nconst PARAM_REGEX = new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nfunction extractStyleParams(value) {\n let params = [];\n if (typeof value === 'string') {\n let match;\n while (match = PARAM_REGEX.exec(value)) {\n params.push(match[1]);\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\nfunction interpolateParams(value, params, errors) {\n const original = value.toString();\n const str = original.replace(PARAM_REGEX, (_, varName) => {\n let localVal = params[varName];\n // this means that the value was never overridden by the data passed in by the user\n if (localVal == null) {\n errors.push(invalidParamValue(varName));\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nfunction iteratorToArray(iterator) {\n const arr = [];\n let item = iterator.next();\n while (!item.done) {\n arr.push(item.value);\n item = iterator.next();\n }\n return arr;\n}\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\nfunction camelCaseToDashCase(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\nfunction balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {\n if (previousStyles.size && keyframes.length) {\n let startingKeyframe = keyframes[0];\n let missingStyleProps = [];\n previousStyles.forEach((val, prop) => {\n if (!startingKeyframe.has(prop)) {\n missingStyleProps.push(prop);\n }\n startingKeyframe.set(prop, val);\n });\n if (missingStyleProps.length) {\n for (let i = 1; i < keyframes.length; i++) {\n let kf = keyframes[i];\n missingStyleProps.forEach(prop => kf.set(prop, computeStyle(element, prop)));\n }\n }\n }\n return keyframes;\n}\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case 7 /* AnimationMetadataType.Trigger */:\n return visitor.visitTrigger(node, context);\n case 0 /* AnimationMetadataType.State */:\n return visitor.visitState(node, context);\n case 1 /* AnimationMetadataType.Transition */:\n return visitor.visitTransition(node, context);\n case 2 /* AnimationMetadataType.Sequence */:\n return visitor.visitSequence(node, context);\n case 3 /* AnimationMetadataType.Group */:\n return visitor.visitGroup(node, context);\n case 4 /* AnimationMetadataType.Animate */:\n return visitor.visitAnimate(node, context);\n case 5 /* AnimationMetadataType.Keyframes */:\n return visitor.visitKeyframes(node, context);\n case 6 /* AnimationMetadataType.Style */:\n return visitor.visitStyle(node, context);\n case 8 /* AnimationMetadataType.Reference */:\n return visitor.visitReference(node, context);\n case 9 /* AnimationMetadataType.AnimateChild */:\n return visitor.visitAnimateChild(node, context);\n case 10 /* AnimationMetadataType.AnimateRef */:\n return visitor.visitAnimateRef(node, context);\n case 11 /* AnimationMetadataType.Query */:\n return visitor.visitQuery(node, context);\n case 12 /* AnimationMetadataType.Stagger */:\n return visitor.visitStagger(node, context);\n default:\n throw invalidNodeType(node.type);\n }\n}\nfunction computeStyle(element, prop) {\n return window.getComputedStyle(element)[prop];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\nfunction createListOfWarnings(warnings) {\n const LINE_START = '\\n - ';\n return `${LINE_START}${warnings.filter(Boolean).map(warning => warning).join(LINE_START)}`;\n}\nfunction warnValidation(warnings) {\n NG_DEV_MODE && console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n NG_DEV_MODE &&\n console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n NG_DEV_MODE &&\n console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction triggerParsingWarnings(name, warnings) {\n NG_DEV_MODE &&\n console.warn(`Animation parsing for the ${name} trigger presents the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction pushUnrecognizedPropertiesWarning(warnings, props) {\n if (props.length) {\n warnings.push(`The following provided properties are not recognized: ${props.join(', ')}`);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ANY_STATE = '*';\nfunction parseTransitionExpr(transitionValue, errors) {\n const expressions = [];\n if (typeof transitionValue == 'string') {\n transitionValue.split(/\\s*,\\s*/).forEach(str => parseInnerTransitionStr(str, expressions, errors));\n }\n else {\n expressions.push(transitionValue);\n }\n return expressions;\n}\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n const result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = result;\n }\n const match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(invalidExpression(eventStr));\n return expressions;\n }\n const fromState = match[1];\n const separator = match[2];\n const toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n}\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return (fromState, toState) => parseFloat(toState) > parseFloat(fromState);\n case ':decrement':\n return (fromState, toState) => parseFloat(toState) < parseFloat(fromState);\n default:\n errors.push(invalidTransitionAlias(alias));\n return '* => *';\n }\n}\n// DO NOT REFACTOR ... keep the follow set instantiations\n// with the values intact (closure compiler for some reason\n// removes follow-up lines that add the values outside of\n// the constructor...\nconst TRUE_BOOLEAN_VALUES = new Set(['true', '1']);\nconst FALSE_BOOLEAN_VALUES = new Set(['false', '0']);\nfunction makeLambdaFromStates(lhs, rhs) {\n const LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n const RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return (fromState, toState) => {\n let lhsMatch = lhs == ANY_STATE || lhs == fromState;\n let rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\n };\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst SELF_TOKEN = ':self';\nconst SELF_TOKEN_REGEX = new RegExp(`\\s*${SELF_TOKEN}\\s*,?`, 'g');\n/*\n * [Validation]\n * The visitor code below will traverse the animation AST generated by the animation verb functions\n * (the output is a tree of objects) and attempt to perform a series of validations on the data. The\n * following corner-cases will be validated:\n *\n * 1. Overlap of animations\n * Given that a CSS property cannot be animated in more than one place at the same time, it's\n * important that this behavior is detected and validated. The way in which this occurs is that\n * each time a style property is examined, a string-map containing the property will be updated with\n * the start and end times for when the property is used within an animation step.\n *\n * If there are two or more parallel animations that are currently running (these are invoked by the\n * group()) on the same element then the validator will throw an error. Since the start/end timing\n * values are collected for each property then if the current animation step is animating the same\n * property and its timing values fall anywhere into the window of time that the property is\n * currently being animated within then this is what causes an error.\n *\n * 2. Timing values\n * The validator will validate to see if a timing value of `duration delay easing` or\n * `durationNumber` is valid or not.\n *\n * (note that upon validation the code below will replace the timing data with an object containing\n * {duration,delay,easing}.\n *\n * 3. Offset Validation\n * Each of the style() calls are allowed to have an offset value when placed inside of keyframes().\n * Offsets within keyframes() are considered valid when:\n *\n * - No offsets are used at all\n * - Each style() entry contains an offset value\n * - Each offset is between 0 and 1\n * - Each offset is greater to or equal than the previous one\n *\n * Otherwise an error will be thrown.\n */\nfunction buildAnimationAst(driver, metadata, errors, warnings) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors, warnings);\n}\nconst ROOT_SELECTOR = '';\nclass AnimationAstBuilderVisitor {\n constructor(_driver) {\n this._driver = _driver;\n }\n build(metadata, errors, warnings) {\n const context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n const ast = visitDslNode(this, normalizeAnimationEntry(metadata), context);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (context.unsupportedCSSPropertiesFound.size) {\n pushUnrecognizedPropertiesWarning(warnings, [...context.unsupportedCSSPropertiesFound.keys()]);\n }\n }\n return ast;\n }\n _resetContextStyleTimingState(context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = new Map();\n context.collectedStyles.set(ROOT_SELECTOR, new Map());\n context.currentTime = 0;\n }\n visitTrigger(metadata, context) {\n let queryCount = context.queryCount = 0;\n let depCount = context.depCount = 0;\n const states = [];\n const transitions = [];\n if (metadata.name.charAt(0) == '@') {\n context.errors.push(invalidTrigger());\n }\n metadata.definitions.forEach(def => {\n this._resetContextStyleTimingState(context);\n if (def.type == 0 /* AnimationMetadataType.State */) {\n const stateDef = def;\n const name = stateDef.name;\n name.toString().split(/\\s*,\\s*/).forEach(n => {\n stateDef.name = n;\n states.push(this.visitState(stateDef, context));\n });\n stateDef.name = name;\n }\n else if (def.type == 1 /* AnimationMetadataType.Transition */) {\n const transition = this.visitTransition(def, context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n }\n else {\n context.errors.push(invalidDefinition());\n }\n });\n return {\n type: 7 /* AnimationMetadataType.Trigger */,\n name: metadata.name,\n states,\n transitions,\n queryCount,\n depCount,\n options: null\n };\n }\n visitState(metadata, context) {\n const styleAst = this.visitStyle(metadata.styles, context);\n const astParams = (metadata.options && metadata.options.params) || null;\n if (styleAst.containsDynamicStyles) {\n const missingSubs = new Set();\n const params = astParams || {};\n styleAst.styles.forEach(style => {\n if (style instanceof Map) {\n style.forEach(value => {\n extractStyleParams(value).forEach(sub => {\n if (!params.hasOwnProperty(sub)) {\n missingSubs.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs.size) {\n const missingSubsArr = iteratorToArray(missingSubs.values());\n context.errors.push(invalidState(metadata.name, missingSubsArr));\n }\n }\n return {\n type: 0 /* AnimationMetadataType.State */,\n name: metadata.name,\n style: styleAst,\n options: astParams ? { params: astParams } : null\n };\n }\n visitTransition(metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n const matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: 1 /* AnimationMetadataType.Transition */,\n matchers,\n animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitSequence(metadata, context) {\n return {\n type: 2 /* AnimationMetadataType.Sequence */,\n steps: metadata.steps.map(s => visitDslNode(this, s, context)),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitGroup(metadata, context) {\n const currentTime = context.currentTime;\n let furthestTime = 0;\n const steps = metadata.steps.map(step => {\n context.currentTime = currentTime;\n const innerAst = visitDslNode(this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: 3 /* AnimationMetadataType.Group */,\n steps,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimate(metadata, context) {\n const timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n let styleAst;\n let styleMetadata = metadata.styles ? metadata.styles : style({});\n if (styleMetadata.type == 5 /* AnimationMetadataType.Keyframes */) {\n styleAst = this.visitKeyframes(styleMetadata, context);\n }\n else {\n let styleMetadata = metadata.styles;\n let isEmpty = false;\n if (!styleMetadata) {\n isEmpty = true;\n const newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n const _styleAst = this.visitStyle(styleMetadata, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: 4 /* AnimationMetadataType.Animate */,\n timings: timingAst,\n style: styleAst,\n options: null\n };\n }\n visitStyle(metadata, context) {\n const ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n }\n _makeStyleAst(metadata, context) {\n const styles = [];\n const metadataStyles = Array.isArray(metadata.styles) ? metadata.styles : [metadata.styles];\n for (let styleTuple of metadataStyles) {\n if (typeof styleTuple === 'string') {\n if (styleTuple === AUTO_STYLE) {\n styles.push(styleTuple);\n }\n else {\n context.errors.push(invalidStyleValue(styleTuple));\n }\n }\n else {\n styles.push(convertToMap(styleTuple));\n }\n }\n let containsDynamicStyles = false;\n let collectedEasing = null;\n styles.forEach(styleData => {\n if (styleData instanceof Map) {\n if (styleData.has('easing')) {\n collectedEasing = styleData.get('easing');\n styleData.delete('easing');\n }\n if (!containsDynamicStyles) {\n for (let value of styleData.values()) {\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: 6 /* AnimationMetadataType.Style */,\n styles,\n easing: collectedEasing,\n offset: metadata.offset,\n containsDynamicStyles,\n options: null\n };\n }\n _validateStyleAst(ast, context) {\n const timings = context.currentAnimateTimings;\n let endTime = context.currentTime;\n let startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach(tuple => {\n if (typeof tuple === 'string')\n return;\n tuple.forEach((value, prop) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._driver.validateStyleProperty(prop)) {\n tuple.delete(prop);\n context.unsupportedCSSPropertiesFound.add(prop);\n return;\n }\n }\n // This is guaranteed to have a defined Map at this querySelector location making it\n // safe to add the assertion here. It is set as a default empty map in prior methods.\n const collectedStyles = context.collectedStyles.get(context.currentQuerySelector);\n const collectedEntry = collectedStyles.get(prop);\n let updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime && startTime >= collectedEntry.startTime &&\n endTime <= collectedEntry.endTime) {\n context.errors.push(invalidParallelAnimation(prop, collectedEntry.startTime, collectedEntry.endTime, startTime, endTime));\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles.set(prop, { startTime, endTime });\n }\n if (context.options) {\n validateStyleParams(value, context.options, context.errors);\n }\n });\n });\n }\n visitKeyframes(metadata, context) {\n const ast = { type: 5 /* AnimationMetadataType.Keyframes */, styles: [], options: null };\n if (!context.currentAnimateTimings) {\n context.errors.push(invalidKeyframes());\n return ast;\n }\n const MAX_KEYFRAME_OFFSET = 1;\n let totalKeyframesWithOffsets = 0;\n const offsets = [];\n let offsetsOutOfOrder = false;\n let keyframesOutOfRange = false;\n let previousOffset = 0;\n const keyframes = metadata.steps.map(styles => {\n const style = this._makeStyleAst(styles, context);\n let offsetVal = style.offset != null ? style.offset : consumeOffset(style.styles);\n let offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style;\n });\n if (keyframesOutOfRange) {\n context.errors.push(invalidOffset());\n }\n if (offsetsOutOfOrder) {\n context.errors.push(keyframeOffsetsOutOfOrder());\n }\n const length = metadata.steps.length;\n let generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(keyframesMissingOffsets());\n }\n else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n const limit = length - 1;\n const currentTime = context.currentTime;\n const currentAnimateTimings = context.currentAnimateTimings;\n const animateDuration = currentAnimateTimings.duration;\n keyframes.forEach((kf, i) => {\n const offset = generatedOffset > 0 ? (i == limit ? 1 : (generatedOffset * i)) : offsets[i];\n const durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n }\n visitReference(metadata, context) {\n return {\n type: 8 /* AnimationMetadataType.Reference */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateChild(metadata, context) {\n context.depCount++;\n return {\n type: 9 /* AnimationMetadataType.AnimateChild */,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateRef(metadata, context) {\n return {\n type: 10 /* AnimationMetadataType.AnimateRef */,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitQuery(metadata, context) {\n const parentSelector = context.currentQuerySelector;\n const options = (metadata.options || {});\n context.queryCount++;\n context.currentQuery = metadata;\n const [selector, includeSelf] = normalizeSelector(metadata.selector);\n context.currentQuerySelector =\n parentSelector.length ? (parentSelector + ' ' + selector) : selector;\n getOrSetDefaultValue(context.collectedStyles, context.currentQuerySelector, new Map());\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: 11 /* AnimationMetadataType.Query */,\n selector,\n limit: options.limit || 0,\n optional: !!options.optional,\n includeSelf,\n animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitStagger(metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(invalidStagger());\n }\n const timings = metadata.timings === 'full' ?\n { duration: 0, delay: 0, easing: 'full' } :\n resolveTiming(metadata.timings, context.errors, true);\n return {\n type: 12 /* AnimationMetadataType.Stagger */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n timings,\n options: null\n };\n }\n}\nfunction normalizeSelector(selector) {\n const hasAmpersand = selector.split(/\\s*,\\s*/).find(token => token == SELF_TOKEN) ? true : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n // Note: the :enter and :leave aren't normalized here since those\n // selectors are filled in at runtime during timeline building\n selector = selector.replace(/@\\*/g, NG_TRIGGER_SELECTOR)\n .replace(/@\\w+/g, match => NG_TRIGGER_SELECTOR + '-' + match.slice(1))\n .replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\nfunction normalizeParams(obj) {\n return obj ? copyObj(obj) : null;\n}\nclass AnimationAstBuilderContext {\n constructor(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = new Map();\n this.options = null;\n this.unsupportedCSSPropertiesFound = new Set();\n }\n}\nfunction consumeOffset(styles) {\n if (typeof styles == 'string')\n return null;\n let offset = null;\n if (Array.isArray(styles)) {\n styles.forEach(styleTuple => {\n if (styleTuple instanceof Map && styleTuple.has('offset')) {\n const obj = styleTuple;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n });\n }\n else if (styles instanceof Map && styles.has('offset')) {\n const obj = styles;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n return offset;\n}\nfunction constructTimingAst(value, errors) {\n if (value.hasOwnProperty('duration')) {\n return value;\n }\n if (typeof value == 'number') {\n const duration = resolveTiming(value, errors).duration;\n return makeTimingAst(duration, 0, '');\n }\n const strValue = value;\n const isDynamic = strValue.split(/\\s+/).some(v => v.charAt(0) == '{' && v.charAt(1) == '{');\n if (isDynamic) {\n const ast = makeTimingAst(0, 0, '');\n ast.dynamic = true;\n ast.strValue = strValue;\n return ast;\n }\n const timings = resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = copyObj(options);\n if (options['params']) {\n options['params'] = normalizeParams(options['params']);\n }\n }\n else {\n options = {};\n }\n return options;\n}\nfunction makeTimingAst(duration, delay, easing) {\n return { duration, delay, easing };\n}\n\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing = null, subTimeline = false) {\n return {\n type: 1 /* AnimationTransitionInstructionType.TimelineAnimation */,\n element,\n keyframes,\n preStyleProps,\n postStyleProps,\n duration,\n delay,\n totalTime: duration + delay,\n easing,\n subTimeline\n };\n}\n\nclass ElementInstructionMap {\n constructor() {\n this._map = new Map();\n }\n get(element) {\n return this._map.get(element) || [];\n }\n append(element, instructions) {\n let existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, existingInstructions = []);\n }\n existingInstructions.push(...instructions);\n }\n has(element) {\n return this._map.has(element);\n }\n clear() {\n this._map.clear();\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ONE_FRAME_IN_MILLISECONDS = 1;\nconst ENTER_TOKEN = ':enter';\nconst ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');\nconst LEAVE_TOKEN = ':leave';\nconst LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');\n/*\n * The code within this file aims to generate web-animations-compatible keyframes from Angular's\n * animation DSL code.\n *\n * The code below will be converted from:\n *\n * ```\n * sequence([\n * style({ opacity: 0 }),\n * animate(1000, style({ opacity: 0 }))\n * ])\n * ```\n *\n * To:\n * ```\n * keyframes = [{ opacity: 0, offset: 0 }, { opacity: 1, offset: 1 }]\n * duration = 1000\n * delay = 0\n * easing = ''\n * ```\n *\n * For this operation to cover the combination of animation verbs (style, animate, group, etc...) a\n * combination of AST traversal and merge-sort-like algorithms are used.\n *\n * [AST Traversal]\n * Each of the animation verbs, when executed, will return an string-map object representing what\n * type of action it is (style, animate, group, etc...) and the data associated with it. This means\n * that when functional composition mix of these functions is evaluated (like in the example above)\n * then it will end up producing a tree of objects representing the animation itself.\n *\n * When this animation object tree is processed by the visitor code below it will visit each of the\n * verb statements within the visitor. And during each visit it will build the context of the\n * animation keyframes by interacting with the `TimelineBuilder`.\n *\n * [TimelineBuilder]\n * This class is responsible for tracking the styles and building a series of keyframe objects for a\n * timeline between a start and end time. The builder starts off with an initial timeline and each\n * time the AST comes across a `group()`, `keyframes()` or a combination of the two within a\n * `sequence()` then it will generate a sub timeline for each step as well as a new one after\n * they are complete.\n *\n * As the AST is traversed, the timing state on each of the timelines will be incremented. If a sub\n * timeline was created (based on one of the cases above) then the parent timeline will attempt to\n * merge the styles used within the sub timelines into itself (only with group() this will happen).\n * This happens with a merge operation (much like how the merge works in mergeSort) and it will only\n * copy the most recently used styles from the sub timelines into the parent timeline. This ensures\n * that if the styles are used later on in another phase of the animation then they will be the most\n * up-to-date values.\n *\n * [How Missing Styles Are Updated]\n * Each timeline has a `backFill` property which is responsible for filling in new styles into\n * already processed keyframes if a new style shows up later within the animation sequence.\n *\n * ```\n * sequence([\n * style({ width: 0 }),\n * animate(1000, style({ width: 100 })),\n * animate(1000, style({ width: 200 })),\n * animate(1000, style({ width: 300 }))\n * animate(1000, style({ width: 400, height: 400 })) // notice how `height` doesn't exist anywhere\n * else\n * ])\n * ```\n *\n * What is happening here is that the `height` value is added later in the sequence, but is missing\n * from all previous animation steps. Therefore when a keyframe is created it would also be missing\n * from all previous keyframes up until where it is first used. For the timeline keyframe generation\n * to properly fill in the style it will place the previous value (the value from the parent\n * timeline) or a default value of `*` into the backFill map. The `copyStyles` method in util.ts\n * handles propagating that backfill map to the styles object.\n *\n * When a sub-timeline is created it will have its own backFill property. This is done so that\n * styles present within the sub-timeline do not accidentally seep into the previous/future timeline\n * keyframes\n *\n * [Validation]\n * The code in this file is not responsible for validation. That functionality happens with within\n * the `AnimationValidatorVisitor` code.\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles = new Map(), finalStyles = new Map(), options, subInstructions, errors = []) {\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);\n}\nclass AnimationTimelineBuilderVisitor {\n buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors = []) {\n subInstructions = subInstructions || new ElementInstructionMap();\n const context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);\n context.options = options;\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n context.currentTimeline.delayNextStep(delay);\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n const timelines = context.timelines.filter(timeline => timeline.containsAnimation());\n // note: we just want to apply the final styles for the rootElement, so we do not\n // just apply the styles to the last timeline but the last timeline which\n // element is the root one (basically `*`-styles are replaced with the actual\n // state style values only for the root element)\n if (timelines.length && finalStyles.size) {\n let lastRootTimeline;\n for (let i = timelines.length - 1; i >= 0; i--) {\n const timeline = timelines[i];\n if (timeline.element === rootElement) {\n lastRootTimeline = timeline;\n break;\n }\n }\n if (lastRootTimeline && !lastRootTimeline.allowOnlyTimelineStyles()) {\n lastRootTimeline.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length ?\n timelines.map(timeline => timeline.buildKeyframes()) :\n [createTimelineInstruction(rootElement, [], [], [], 0, delay, '', false)];\n }\n visitTrigger(ast, context) {\n // these values are not visited in this AST\n }\n visitState(ast, context) {\n // these values are not visited in this AST\n }\n visitTransition(ast, context) {\n // these values are not visited in this AST\n }\n visitAnimateChild(ast, context) {\n const elementInstructions = context.subInstructions.get(context.element);\n if (elementInstructions) {\n const innerContext = context.createSubContext(ast.options);\n const startTime = context.currentTimeline.currentTime;\n const endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n }\n visitAnimateRef(ast, context) {\n const innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this._applyAnimationRefDelays([ast.options, ast.animation.options], context, innerContext);\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n }\n _applyAnimationRefDelays(animationsRefsOptions, context, innerContext) {\n for (const animationRefOptions of animationsRefsOptions) {\n const animationDelay = animationRefOptions?.delay;\n if (animationDelay) {\n const animationDelayValue = typeof animationDelay === 'number' ?\n animationDelay :\n resolveTimingValue(interpolateParams(animationDelay, animationRefOptions?.params ?? {}, context.errors));\n innerContext.delayNextStep(animationDelayValue);\n }\n }\n }\n _visitSubInstructions(instructions, context, options) {\n const startTime = context.currentTimeline.currentTime;\n let furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n const duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n const delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach(instruction => {\n const instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime =\n Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n }\n visitReference(ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n }\n visitSequence(ast, context) {\n const subContextCount = context.subContextCount;\n let ctx = context;\n const options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == 6 /* AnimationMetadataType.Style */) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n const delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach(s => visitDslNode(this, s, ctx));\n // this is here just in case the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n }\n visitGroup(ast, context) {\n const innerTimelines = [];\n let furthestTime = context.currentTimeline.currentTime;\n const delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach(s => {\n const innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach(timeline => context.currentTimeline.mergeTimelineCollectedStyles(timeline));\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n }\n _visitTiming(ast, context) {\n if (ast.dynamic) {\n const strValue = ast.strValue;\n const timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;\n return resolveTiming(timingValue, context.errors);\n }\n else {\n return { duration: ast.duration, delay: ast.delay, easing: ast.easing };\n }\n }\n visitAnimate(ast, context) {\n const timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);\n const timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n const style = ast.style;\n if (style.type == 5 /* AnimationMetadataType.Keyframes */) {\n this.visitKeyframes(style, context);\n }\n else {\n context.incrementTime(timings.duration);\n this.visitStyle(style, context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n }\n visitStyle(ast, context) {\n const timeline = context.currentTimeline;\n const timings = context.currentAnimateTimings;\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.hasCurrentStyleProperties()) {\n timeline.forwardFrame();\n }\n const easing = (timings && timings.easing) || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n }\n else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n }\n visitKeyframes(ast, context) {\n const currentAnimateTimings = context.currentAnimateTimings;\n const startTime = (context.currentTimeline).duration;\n const duration = currentAnimateTimings.duration;\n const innerContext = context.createSubContext();\n const innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach(step => {\n const offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n }\n visitQuery(ast, context) {\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n const startTime = context.currentTimeline.currentTime;\n const options = (ast.options || {});\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay &&\n (context.previousNode.type === 6 /* AnimationMetadataType.Style */ ||\n (startTime == 0 && context.currentTimeline.hasCurrentStyleProperties()))) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n let furthestTime = startTime;\n const elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n let sameElementTimeline = null;\n elms.forEach((element, i) => {\n context.currentQueryIndex = i;\n const innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n const endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n }\n visitStagger(ast, context) {\n const parentContext = context.parentContext;\n const tl = context.currentTimeline;\n const timings = ast.timings;\n const duration = Math.abs(timings.duration);\n const maxTime = duration * (context.currentQueryTotal - 1);\n let delay = duration * context.currentQueryIndex;\n let staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n const timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n const startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime =\n (tl.currentTime - startingTime) + (tl.startTime - parentContext.currentTimeline.startTime);\n }\n}\nconst DEFAULT_NOOP_PREVIOUS_NODE = {};\nclass AnimationTimelineContext {\n constructor(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this._enterClassName = _enterClassName;\n this._leaveClassName = _leaveClassName;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n get params() {\n return this.options.params;\n }\n updateOptions(options, skipIfExists) {\n if (!options)\n return;\n const newOptions = options;\n let optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n optionsToUpdate.duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n const newParams = newOptions.params;\n if (newParams) {\n let paramsToUpdate = optionsToUpdate.params;\n if (!paramsToUpdate) {\n paramsToUpdate = this.options.params = {};\n }\n Object.keys(newParams).forEach(name => {\n if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {\n paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);\n }\n });\n }\n }\n _copyOptions() {\n const options = {};\n if (this.options) {\n const oldParams = this.options.params;\n if (oldParams) {\n const params = options['params'] = {};\n Object.keys(oldParams).forEach(name => {\n params[name] = oldParams[name];\n });\n }\n }\n return options;\n }\n createSubContext(options = null, element, newTime) {\n const target = element || this.element;\n const context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n }\n transformIntoNewTimeline(newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n }\n appendInstructionToTimeline(instruction, duration, delay) {\n const updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: ''\n };\n const builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n }\n incrementTime(time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n }\n delayNextStep(delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n }\n invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {\n let results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) { // only if :self is used then the selector can be empty\n selector = selector.replace(ENTER_TOKEN_REGEX, '.' + this._enterClassName);\n selector = selector.replace(LEAVE_TOKEN_REGEX, '.' + this._leaveClassName);\n const multi = limit != 1;\n let elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) :\n elements.slice(0, limit);\n }\n results.push(...elements);\n }\n if (!optional && results.length == 0) {\n errors.push(invalidQuery(originalSelector));\n }\n return results;\n }\n}\nclass TimelineBuilder {\n constructor(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this._previousKeyframe = new Map();\n this._currentKeyframe = new Map();\n this._keyframes = new Map();\n this._styleSummary = new Map();\n this._localTimelineStyles = new Map();\n this._pendingStyles = new Map();\n this._backFill = new Map();\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n containsAnimation() {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.hasCurrentStyleProperties();\n default:\n return true;\n }\n }\n hasCurrentStyleProperties() {\n return this._currentKeyframe.size > 0;\n }\n get currentTime() {\n return this.startTime + this.duration;\n }\n delayNextStep(delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n const hasPreStyleStep = this._keyframes.size === 1 && this._pendingStyles.size;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n }\n else {\n this.startTime += delay;\n }\n }\n fork(element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n }\n _loadKeyframe() {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = this._keyframes.get(this.duration);\n if (!this._currentKeyframe) {\n this._currentKeyframe = new Map();\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n }\n forwardFrame() {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n }\n forwardTime(time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n }\n _updateStyle(prop, value) {\n this._localTimelineStyles.set(prop, value);\n this._globalTimelineStyles.set(prop, value);\n this._styleSummary.set(prop, { time: this.currentTime, value });\n }\n allowOnlyTimelineStyles() {\n return this._currentEmptyStepKeyframe !== this._currentKeyframe;\n }\n applyEmptyStep(easing) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n for (let [prop, value] of this._globalTimelineStyles) {\n this._backFill.set(prop, value || AUTO_STYLE);\n this._currentKeyframe.set(prop, AUTO_STYLE);\n }\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n }\n setStyles(input, easing, errors, options) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n const params = (options && options.params) || {};\n const styles = flattenStyles(input, this._globalTimelineStyles);\n for (let [prop, value] of styles) {\n const val = interpolateParams(value, params, errors);\n this._pendingStyles.set(prop, val);\n if (!this._localTimelineStyles.has(prop)) {\n this._backFill.set(prop, this._globalTimelineStyles.get(prop) ?? AUTO_STYLE);\n }\n this._updateStyle(prop, val);\n }\n }\n applyStylesToKeyframe() {\n if (this._pendingStyles.size == 0)\n return;\n this._pendingStyles.forEach((val, prop) => {\n this._currentKeyframe.set(prop, val);\n });\n this._pendingStyles.clear();\n this._localTimelineStyles.forEach((val, prop) => {\n if (!this._currentKeyframe.has(prop)) {\n this._currentKeyframe.set(prop, val);\n }\n });\n }\n snapshotCurrentStyles() {\n for (let [prop, val] of this._localTimelineStyles) {\n this._pendingStyles.set(prop, val);\n this._updateStyle(prop, val);\n }\n }\n getFinalKeyframe() {\n return this._keyframes.get(this.duration);\n }\n get properties() {\n const properties = [];\n for (let prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n }\n mergeTimelineCollectedStyles(timeline) {\n timeline._styleSummary.forEach((details1, prop) => {\n const details0 = this._styleSummary.get(prop);\n if (!details0 || details1.time > details0.time) {\n this._updateStyle(prop, details1.value);\n }\n });\n }\n buildKeyframes() {\n this.applyStylesToKeyframe();\n const preStyleProps = new Set();\n const postStyleProps = new Set();\n const isEmpty = this._keyframes.size === 1 && this.duration === 0;\n let finalKeyframes = [];\n this._keyframes.forEach((keyframe, time) => {\n const finalKeyframe = copyStyles(keyframe, new Map(), this._backFill);\n finalKeyframe.forEach((value, prop) => {\n if (value === ɵPRE_STYLE) {\n preStyleProps.add(prop);\n }\n else if (value === AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe.set('offset', time / this.duration);\n }\n finalKeyframes.push(finalKeyframe);\n });\n const preProps = preStyleProps.size ? iteratorToArray(preStyleProps.values()) : [];\n const postProps = postStyleProps.size ? iteratorToArray(postStyleProps.values()) : [];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n const kf0 = finalKeyframes[0];\n const kf1 = new Map(kf0);\n kf0.set('offset', 0);\n kf1.set('offset', 1);\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n }\n}\nclass SubTimelineBuilder extends TimelineBuilder {\n constructor(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {\n super(driver, element, timings.delay);\n this.keyframes = keyframes;\n this.preStyleProps = preStyleProps;\n this.postStyleProps = postStyleProps;\n this._stretchStartingKeyframe = _stretchStartingKeyframe;\n this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };\n }\n containsAnimation() {\n return this.keyframes.length > 1;\n }\n buildKeyframes() {\n let keyframes = this.keyframes;\n let { delay, duration, easing } = this.timings;\n if (this._stretchStartingKeyframe && delay) {\n const newKeyframes = [];\n const totalTime = duration + delay;\n const startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n const newFirstKeyframe = copyStyles(keyframes[0]);\n newFirstKeyframe.set('offset', 0);\n newKeyframes.push(newFirstKeyframe);\n const oldFirstKeyframe = copyStyles(keyframes[0]);\n oldFirstKeyframe.set('offset', roundOffset(startingGap));\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still rendered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n \n delay=1000, duration=1000, keyframes = 0 .5 1\n \n turns into\n \n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n const limit = keyframes.length - 1;\n for (let i = 1; i <= limit; i++) {\n let kf = copyStyles(keyframes[i]);\n const oldOffset = kf.get('offset');\n const timeAtKeyframe = delay + oldOffset * duration;\n kf.set('offset', roundOffset(timeAtKeyframe / totalTime));\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n }\n}\nfunction roundOffset(offset, decimalPoints = 3) {\n const mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\nfunction flattenStyles(input, allStyles) {\n const styles = new Map();\n let allProperties;\n input.forEach(token => {\n if (token === '*') {\n allProperties = allProperties || allStyles.keys();\n for (let prop of allProperties) {\n styles.set(prop, AUTO_STYLE);\n }\n }\n else {\n copyStyles(token, styles);\n }\n });\n return styles;\n}\n\nclass Animation {\n constructor(_driver, input) {\n this._driver = _driver;\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(_driver, input, errors, warnings);\n if (errors.length) {\n throw validationFailed(errors);\n }\n if (warnings.length) {\n warnValidation(warnings);\n }\n this._animationAst = ast;\n }\n buildTimelines(element, startingStyles, destinationStyles, options, subInstructions) {\n const start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) :\n startingStyles;\n const dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) :\n destinationStyles;\n const errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n const result = buildAnimationTimelines(this._driver, element, this._animationAst, ENTER_CLASSNAME, LEAVE_CLASSNAME, start, dest, options, subInstructions, errors);\n if (errors.length) {\n throw buildingFailed(errors);\n }\n return result;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @publicApi\n */\nclass AnimationStyleNormalizer {\n}\n/**\n * @publicApi\n */\nclass NoopAnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return propertyName;\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n return value;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DIMENSIONAL_PROP_SET = new Set([\n 'width',\n 'height',\n 'minWidth',\n 'minHeight',\n 'maxWidth',\n 'maxHeight',\n 'left',\n 'top',\n 'bottom',\n 'right',\n 'fontSize',\n 'outlineWidth',\n 'outlineOffset',\n 'paddingTop',\n 'paddingLeft',\n 'paddingBottom',\n 'paddingRight',\n 'marginTop',\n 'marginLeft',\n 'marginBottom',\n 'marginRight',\n 'borderRadius',\n 'borderWidth',\n 'borderTopWidth',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'textIndent',\n 'perspective'\n]);\nclass WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n let unit = '';\n const strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_SET.has(normalizedProperty) && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n }\n else {\n const valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(invalidCssUnitValue(userProvidedProperty, value));\n }\n }\n }\n return strVal + unit;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {\n return {\n type: 0 /* AnimationTransitionInstructionType.TransitionAnimation */,\n element,\n triggerName,\n isRemovalTransition,\n fromState,\n fromStyles,\n toState,\n toStyles,\n timelines,\n queriedElements,\n preStyleProps,\n postStyleProps,\n totalTime,\n errors\n };\n}\n\nconst EMPTY_OBJECT = {};\nclass AnimationTransitionFactory {\n constructor(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n match(currentState, nextState, element, params) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);\n }\n buildStyles(stateName, params, errors) {\n let styler = this._stateStyles.get('*');\n if (stateName !== undefined) {\n styler = this._stateStyles.get(stateName?.toString()) || styler;\n }\n return styler ? styler.buildStyles(params, errors) : new Map();\n }\n build(driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {\n const errors = [];\n const transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;\n const currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;\n const currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n const nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;\n const nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n const queriedElements = new Set();\n const preStyleMap = new Map();\n const postStyleMap = new Map();\n const isRemoval = nextState === 'void';\n const animationOptions = {\n params: applyParamDefaults(nextAnimationParams, transitionAnimationParams),\n delay: this.ast.options?.delay,\n };\n const timelines = skipAstBuild ?\n [] :\n buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n let totalTime = 0;\n timelines.forEach(tl => {\n totalTime = Math.max(tl.duration + tl.delay, totalTime);\n });\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);\n }\n timelines.forEach(tl => {\n const elm = tl.element;\n const preProps = getOrSetDefaultValue(preStyleMap, elm, new Set());\n tl.preStyleProps.forEach(prop => preProps.add(prop));\n const postProps = getOrSetDefaultValue(postStyleMap, elm, new Set());\n tl.postStyleProps.forEach(prop => postProps.add(prop));\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n checkNonAnimatableInTimelines(timelines, this._triggerName, driver);\n }\n const queriedElementsList = iteratorToArray(queriedElements.values());\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, queriedElementsList, preStyleMap, postStyleMap, totalTime);\n }\n}\n/**\n * Checks inside a set of timelines if they try to animate a css property which is not considered\n * animatable, in that case it prints a warning on the console.\n * Besides that the function doesn't have any other effect.\n *\n * Note: this check is done here after the timelines are built instead of doing on a lower level so\n * that we can make sure that the warning appears only once per instruction (we can aggregate here\n * all the issues instead of finding them separately).\n *\n * @param timelines The built timelines for the current instruction.\n * @param triggerName The name of the trigger for the current instruction.\n * @param driver Animation driver used to perform the check.\n *\n */\nfunction checkNonAnimatableInTimelines(timelines, triggerName, driver) {\n if (!driver.validateAnimatableStyleProperty) {\n return;\n }\n const invalidNonAnimatableProps = new Set();\n timelines.forEach(({ keyframes }) => {\n const nonAnimatablePropsInitialValues = new Map();\n keyframes.forEach(keyframe => {\n for (const [prop, value] of keyframe.entries()) {\n if (!driver.validateAnimatableStyleProperty(prop)) {\n if (nonAnimatablePropsInitialValues.has(prop) && !invalidNonAnimatableProps.has(prop)) {\n const propInitialValue = nonAnimatablePropsInitialValues.get(prop);\n if (propInitialValue !== value) {\n invalidNonAnimatableProps.add(prop);\n }\n }\n else {\n nonAnimatablePropsInitialValues.set(prop, value);\n }\n }\n }\n });\n });\n if (invalidNonAnimatableProps.size > 0) {\n console.warn(`Warning: The animation trigger \"${triggerName}\" is attempting to animate the following` +\n ' not animatable properties: ' + Array.from(invalidNonAnimatableProps).join(', ') + '\\n' +\n '(to check the list of all animatable properties visit https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties)');\n }\n}\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {\n return matchFns.some(fn => fn(currentState, nextState, element, params));\n}\nfunction applyParamDefaults(userParams, defaults) {\n const result = copyObj(defaults);\n for (const key in userParams) {\n if (userParams.hasOwnProperty(key) && userParams[key] != null) {\n result[key] = userParams[key];\n }\n }\n return result;\n}\nclass AnimationStateStyles {\n constructor(styles, defaultParams, normalizer) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n this.normalizer = normalizer;\n }\n buildStyles(params, errors) {\n const finalStyles = new Map();\n const combinedParams = copyObj(this.defaultParams);\n Object.keys(params).forEach(key => {\n const value = params[key];\n if (value !== null) {\n combinedParams[key] = value;\n }\n });\n this.styles.styles.forEach(value => {\n if (typeof value !== 'string') {\n value.forEach((val, prop) => {\n if (val) {\n val = interpolateParams(val, combinedParams, errors);\n }\n const normalizedProp = this.normalizer.normalizePropertyName(prop, errors);\n val = this.normalizer.normalizeStyleValue(prop, normalizedProp, val, errors);\n finalStyles.set(normalizedProp, val);\n });\n }\n });\n return finalStyles;\n }\n}\n\nfunction buildTrigger(name, ast, normalizer) {\n return new AnimationTrigger(name, ast, normalizer);\n}\nclass AnimationTrigger {\n constructor(name, ast, _normalizer) {\n this.name = name;\n this.ast = ast;\n this._normalizer = _normalizer;\n this.transitionFactories = [];\n this.states = new Map();\n ast.states.forEach(ast => {\n const defaultParams = (ast.options && ast.options.params) || {};\n this.states.set(ast.name, new AnimationStateStyles(ast.style, defaultParams, _normalizer));\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach(ast => {\n this.transitionFactories.push(new AnimationTransitionFactory(name, ast, this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states, this._normalizer);\n }\n get containsQueries() {\n return this.ast.queryCount > 0;\n }\n matchTransition(currentState, nextState, element, params) {\n const entry = this.transitionFactories.find(f => f.match(currentState, nextState, element, params));\n return entry || null;\n }\n matchStyles(currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n }\n}\nfunction createFallbackTransition(triggerName, states, normalizer) {\n const matchers = [(fromState, toState) => true];\n const animation = { type: 2 /* AnimationMetadataType.Sequence */, steps: [], options: null };\n const transition = {\n type: 1 /* AnimationMetadataType.Transition */,\n animation,\n matchers,\n options: null,\n queryCount: 0,\n depCount: 0\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\nfunction balanceProperties(stateMap, key1, key2) {\n if (stateMap.has(key1)) {\n if (!stateMap.has(key2)) {\n stateMap.set(key2, stateMap.get(key1));\n }\n }\n else if (stateMap.has(key2)) {\n stateMap.set(key1, stateMap.get(key2));\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\nclass TimelineAnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = new Map();\n this._playersById = new Map();\n this.players = [];\n }\n register(id, metadata) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw registerFailed(errors);\n }\n else {\n if (warnings.length) {\n warnRegister(warnings);\n }\n this._animations.set(id, ast);\n }\n }\n _buildPlayer(i, preStyles, postStyles) {\n const element = i.element;\n const keyframes = normalizeKeyframes$1(this._driver, this._normalizer, element, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);\n }\n create(id, element, options = {}) {\n const errors = [];\n const ast = this._animations.get(id);\n let instructions;\n const autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, new Map(), new Map(), options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach(inst => {\n const styles = getOrSetDefaultValue(autoStylesMap, inst.element, new Map());\n inst.postStyleProps.forEach(prop => styles.set(prop, null));\n });\n }\n else {\n errors.push(missingOrDestroyedAnimation());\n instructions = [];\n }\n if (errors.length) {\n throw createAnimationFailed(errors);\n }\n autoStylesMap.forEach((styles, element) => {\n styles.forEach((_, prop) => {\n styles.set(prop, this._driver.computeStyle(element, prop, AUTO_STYLE));\n });\n });\n const players = instructions.map(i => {\n const styles = autoStylesMap.get(i.element);\n return this._buildPlayer(i, new Map(), styles);\n });\n const player = optimizeGroupPlayer(players);\n this._playersById.set(id, player);\n player.onDestroy(() => this.destroy(id));\n this.players.push(player);\n return player;\n }\n destroy(id) {\n const player = this._getPlayer(id);\n player.destroy();\n this._playersById.delete(id);\n const index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n }\n _getPlayer(id) {\n const player = this._playersById.get(id);\n if (!player) {\n throw missingPlayer(id);\n }\n return player;\n }\n listen(id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n const baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return () => { };\n }\n command(id, element, command, args) {\n if (command == 'register') {\n this.register(id, args[0]);\n return;\n }\n if (command == 'create') {\n const options = (args[0] || {});\n this.create(id, element, options);\n return;\n }\n const player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(args[0]));\n break;\n case 'destroy':\n this.destroy(id);\n break;\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst QUEUED_CLASSNAME = 'ng-animate-queued';\nconst QUEUED_SELECTOR = '.ng-animate-queued';\nconst DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst DISABLED_SELECTOR = '.ng-animate-disabled';\nconst STAR_CLASSNAME = 'ng-star-inserted';\nconst STAR_SELECTOR = '.ng-star-inserted';\nconst EMPTY_PLAYER_ARRAY = [];\nconst NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: false,\n setForMove: false,\n hasAnimation: false,\n removedBeforeQueried: false\n};\nconst NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForMove: false,\n setForRemoval: false,\n hasAnimation: false,\n removedBeforeQueried: true\n};\nconst REMOVAL_FLAG = '__ng_removed';\nclass StateValue {\n constructor(input, namespaceId = '') {\n this.namespaceId = namespaceId;\n const isObj = input && input.hasOwnProperty('value');\n const value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n const options = copyObj(input);\n delete options['value'];\n this.options = options;\n }\n else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n get params() {\n return this.options.params;\n }\n absorbOptions(options) {\n const newParams = options.params;\n if (newParams) {\n const oldParams = this.options.params;\n Object.keys(newParams).forEach(prop => {\n if (oldParams[prop] == null) {\n oldParams[prop] = newParams[prop];\n }\n });\n }\n }\n}\nconst VOID_VALUE = 'void';\nconst DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nclass AnimationTransitionNamespace {\n constructor(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = new Map();\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n listen(element, name, phase, callback) {\n if (!this._triggers.has(name)) {\n throw missingTrigger(phase, name);\n }\n if (phase == null || phase.length == 0) {\n throw missingEvent(name);\n }\n if (!isTriggerEventValid(phase)) {\n throw unsupportedTriggerEvent(phase, name);\n }\n const listeners = getOrSetDefaultValue(this._elementListeners, element, []);\n const data = { name, phase, callback };\n listeners.push(data);\n const triggersWithStates = getOrSetDefaultValue(this._engine.statesByElement, element, new Map());\n if (!triggersWithStates.has(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates.set(name, DEFAULT_STATE_VALUE);\n }\n return () => {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n this._engine.afterFlush(() => {\n const index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!this._triggers.has(name)) {\n triggersWithStates.delete(name);\n }\n });\n };\n }\n register(name, ast) {\n if (this._triggers.has(name)) {\n // throw\n return false;\n }\n else {\n this._triggers.set(name, ast);\n return true;\n }\n }\n _getTrigger(name) {\n const trigger = this._triggers.get(name);\n if (!trigger) {\n throw unregisteredTrigger(name);\n }\n return trigger;\n }\n trigger(element, triggerName, value, defaultToFallback = true) {\n const trigger = this._getTrigger(triggerName);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n let triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, triggersWithStates = new Map());\n }\n let fromState = triggersWithStates.get(triggerName);\n const toState = new StateValue(value, this.id);\n const isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates.set(triggerName, toState);\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n const isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n const errors = [];\n const fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n const toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n }\n else {\n this._engine.afterFlush(() => {\n eraseStyles(element, fromStyles);\n setStyles(element, toStyles);\n });\n }\n }\n return;\n }\n const playersOnElement = getOrSetDefaultValue(this._engine.playersByElement, element, []);\n playersOnElement.forEach(player => {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new player)\n if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n let transition = trigger.matchTransition(fromState.value, toState.value, element, toState.params);\n let isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback)\n return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({ element, triggerName, transition, fromState, toState, player, isFallbackTransition });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(() => {\n removeClass(element, QUEUED_CLASSNAME);\n });\n }\n player.onDone(() => {\n let index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n const players = this._engine.playersByElement.get(element);\n if (players) {\n let index = players.indexOf(player);\n if (index >= 0) {\n players.splice(index, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n }\n deregister(name) {\n this._triggers.delete(name);\n this._engine.statesByElement.forEach(stateMap => stateMap.delete(name));\n this._elementListeners.forEach((listeners, element) => {\n this._elementListeners.set(element, listeners.filter(entry => {\n return entry.name != name;\n }));\n });\n }\n clearElementCache(element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n const elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach(player => player.destroy());\n this._engine.playersByElement.delete(element);\n }\n }\n _signalRemovalForInnerTriggers(rootElement, context) {\n const elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n elements.forEach(elm => {\n // this means that an inner remove() operation has already kicked off\n // the animation on this element...\n if (elm[REMOVAL_FLAG])\n return;\n const namespaces = this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach(ns => ns.triggerLeaveAnimation(elm, context, false, true));\n }\n else {\n this.clearElementCache(elm);\n }\n });\n // If the child elements were removed along with the parent, their animations might not\n // have completed. Clear all the elements from the cache so we don't end up with a memory leak.\n this._engine.afterFlushAnimationsDone(() => elements.forEach(elm => this.clearElementCache(elm)));\n }\n triggerLeaveAnimation(element, context, destroyAfterComplete, defaultToFallback) {\n const triggerStates = this._engine.statesByElement.get(element);\n const previousTriggersValues = new Map();\n if (triggerStates) {\n const players = [];\n triggerStates.forEach((state, triggerName) => {\n previousTriggersValues.set(triggerName, state.value);\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (this._triggers.has(triggerName)) {\n const player = this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players.push(player);\n }\n }\n });\n if (players.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context, previousTriggersValues);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players).onDone(() => this._engine.processLeaveNode(element));\n }\n return true;\n }\n }\n return false;\n }\n prepareLeaveAnimationListeners(element) {\n const listeners = this._elementListeners.get(element);\n const elementStates = this._engine.statesByElement.get(element);\n // if this statement fails then it means that the element was picked up\n // by an earlier flush (or there are no listeners at all to track the leave).\n if (listeners && elementStates) {\n const visitedTriggers = new Set();\n listeners.forEach(listener => {\n const triggerName = listener.name;\n if (visitedTriggers.has(triggerName))\n return;\n visitedTriggers.add(triggerName);\n const trigger = this._triggers.get(triggerName);\n const transition = trigger.fallbackTransition;\n const fromState = elementStates.get(triggerName) || DEFAULT_STATE_VALUE;\n const toState = new StateValue(VOID_VALUE);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition: true\n });\n });\n }\n }\n removeNode(element, context) {\n const engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true))\n return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n let containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n const currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue forwards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n }\n else {\n let parent = element;\n while (parent = parent.parentNode) {\n const triggers = engine.statesByElement.get(parent);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n }\n else {\n const removalFlag = element[REMOVAL_FLAG];\n if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(() => this.clearElementCache(element));\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n }\n }\n insertNode(element, parent) {\n addClass(element, this._hostClassName);\n }\n drainQueuedTransitions(microtaskId) {\n const instructions = [];\n this._queue.forEach(entry => {\n const player = entry.player;\n if (player.destroyed)\n return;\n const element = entry.element;\n const listeners = this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach((listener) => {\n if (listener.name == entry.triggerName) {\n const baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n baseEvent['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n this._engine.afterFlush(() => {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n }\n else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort((a, b) => {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n const d0 = a.transition.ast.depCount;\n const d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n }\n destroy(context) {\n this.players.forEach(p => p.destroy());\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n }\n elementContainsData(element) {\n let containsData = false;\n if (this._elementListeners.has(element))\n containsData = true;\n containsData =\n (this._queue.find(entry => entry.element === element) ? true : false) || containsData;\n return containsData;\n }\n}\nclass TransitionAnimationEngine {\n constructor(bodyNode, driver, _normalizer) {\n this.bodyNode = bodyNode;\n this.driver = driver;\n this._normalizer = _normalizer;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.disabledNodes = new Set();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n }\n /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\n get queuedPlayers() {\n const players = [];\n this._namespaceList.forEach(ns => {\n ns.players.forEach(player => {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n }\n createNamespace(namespaceId, hostElement) {\n const ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (this.bodyNode && this.driver.containsElement(this.bodyNode, hostElement)) {\n this._balanceNamespaceList(ns, hostElement);\n }\n else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is a part of the animation code, it\n // may or may not be inserted by a parent node that is of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return this._namespaceLookup[namespaceId] = ns;\n }\n _balanceNamespaceList(ns, hostElement) {\n const namespaceList = this._namespaceList;\n const namespacesByHostElement = this.namespacesByHostElement;\n const limit = namespaceList.length - 1;\n if (limit >= 0) {\n let found = false;\n // Find the closest ancestor with an existing namespace so we can then insert `ns` after it,\n // establishing a top-down ordering of namespaces in `this._namespaceList`.\n let ancestor = this.driver.getParentElement(hostElement);\n while (ancestor) {\n const ancestorNs = namespacesByHostElement.get(ancestor);\n if (ancestorNs) {\n // An animation namespace has been registered for this ancestor, so we insert `ns`\n // right after it to establish top-down ordering of animation namespaces.\n const index = namespaceList.indexOf(ancestorNs);\n namespaceList.splice(index + 1, 0, ns);\n found = true;\n break;\n }\n ancestor = this.driver.getParentElement(ancestor);\n }\n if (!found) {\n // No namespace exists that is an ancestor of `ns`, so `ns` is inserted at the front to\n // ensure that any existing descendants are ordered after `ns`, retaining the desired\n // top-down ordering.\n namespaceList.unshift(ns);\n }\n }\n else {\n namespaceList.push(ns);\n }\n namespacesByHostElement.set(hostElement, ns);\n return ns;\n }\n register(namespaceId, hostElement) {\n let ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n }\n registerTrigger(namespaceId, name, trigger) {\n let ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n }\n destroy(namespaceId, context) {\n if (!namespaceId)\n return;\n const ns = this._fetchNamespace(namespaceId);\n this.afterFlush(() => {\n this.namespacesByHostElement.delete(ns.hostElement);\n delete this._namespaceLookup[namespaceId];\n const index = this._namespaceList.indexOf(ns);\n if (index >= 0) {\n this._namespaceList.splice(index, 1);\n }\n });\n this.afterFlushAnimationsDone(() => ns.destroy(context));\n }\n _fetchNamespace(id) {\n return this._namespaceLookup[id];\n }\n fetchNamespacesByElement(element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply deduplicate\n // the namespaces in case (for the reason described above) there are multiple triggers\n const namespaces = new Set();\n const elementStates = this.statesByElement.get(element);\n if (elementStates) {\n for (let stateValue of elementStates.values()) {\n if (stateValue.namespaceId) {\n const ns = this._fetchNamespace(stateValue.namespaceId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n }\n trigger(namespaceId, element, name, value) {\n if (isElementNode(element)) {\n const ns = this._fetchNamespace(namespaceId);\n if (ns) {\n ns.trigger(element, name, value);\n return true;\n }\n }\n return false;\n }\n insertNode(namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element))\n return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n details.setForMove = true;\n const index = this.collectedLeaveElements.indexOf(element);\n if (index >= 0) {\n this.collectedLeaveElements.splice(index, 1);\n }\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n const ns = this._fetchNamespace(namespaceId);\n // This if-statement is a workaround for router issue #21947.\n // The router sometimes hits a race condition where while a route\n // is being instantiated a new navigation arrives, triggering leave\n // animation of DOM that has not been fully initialized, until this\n // is resolved, we need to handle the scenario when DOM is not in a\n // consistent state during the animation.\n if (ns) {\n ns.insertNode(element, parent);\n }\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n }\n collectEnterElement(element) {\n this.collectedEnterElements.push(element);\n }\n markElementAsDisabled(element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n }\n else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n }\n removeNode(namespaceId, element, isHostElement, context) {\n if (isElementNode(element)) {\n const ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n }\n else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n if (isHostElement) {\n const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\n }\n }\n }\n else {\n this._onRemovalComplete(element, context);\n }\n }\n markElementAsRemoved(namespaceId, element, hasAnimation, context, previousTriggersValues) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId,\n setForRemoval: context,\n hasAnimation,\n removedBeforeQueried: false,\n previousTriggersValues\n };\n }\n listen(namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return () => { };\n }\n _buildInstruction(entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);\n }\n destroyInnerAnimations(containerElement) {\n let elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach(element => this.destroyActiveAnimationsForElement(element));\n if (this.playersByQueriedElement.size == 0)\n return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach(element => this.finishActiveQueriedAnimationOnElement(element));\n }\n destroyActiveAnimationsForElement(element) {\n const players = this.playersByElement.get(element);\n if (players) {\n players.forEach(player => {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n }\n else {\n player.destroy();\n }\n });\n }\n }\n finishActiveQueriedAnimationOnElement(element) {\n const players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach(player => player.finish());\n }\n }\n whenRenderingDone() {\n return new Promise(resolve => {\n if (this.players.length) {\n return optimizeGroupPlayer(this.players).onDone(() => resolve());\n }\n else {\n resolve();\n }\n });\n }\n processLeaveNode(element) {\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n const ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if (element.classList?.contains(DISABLED_CLASSNAME)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n this.markElementAsDisabled(node, false);\n });\n }\n flush(microtaskId = -1) {\n let players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n this.newHostElements.clear();\n }\n if (this.totalAnimations && this.collectedEnterElements.length) {\n for (let i = 0; i < this.collectedEnterElements.length; i++) {\n const elm = this.collectedEnterElements[i];\n addClass(elm, STAR_CLASSNAME);\n }\n }\n if (this._namespaceList.length &&\n (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n const cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n }\n finally {\n for (let i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n }\n else {\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach(fn => fn());\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n const quietFns = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(() => {\n quietFns.forEach(fn => fn());\n });\n }\n else {\n quietFns.forEach(fn => fn());\n }\n }\n }\n reportError(errors) {\n throw triggerTransitionsFailed(errors);\n }\n _flushAnimations(cleanupFns, microtaskId) {\n const subTimelines = new ElementInstructionMap();\n const skippedPlayers = [];\n const skippedPlayersMap = new Map();\n const queuedInstructions = [];\n const queriedElements = new Map();\n const allPreStyleElements = new Map();\n const allPostStyleElements = new Map();\n const disabledElementsSet = new Set();\n this.disabledNodes.forEach(node => {\n disabledElementsSet.add(node);\n const nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n for (let i = 0; i < nodesThatAreDisabled.length; i++) {\n disabledElementsSet.add(nodesThatAreDisabled[i]);\n }\n });\n const bodyNode = this.bodyNode;\n const allTriggerElements = Array.from(this.statesByElement.keys());\n const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n const enterNodeMapIds = new Map();\n let i = 0;\n enterNodeMap.forEach((nodes, root) => {\n const className = ENTER_CLASSNAME + i++;\n enterNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n const allLeaveNodes = [];\n const mergedLeaveNodes = new Set();\n const leaveNodesWithoutAnimations = new Set();\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n allLeaveNodes.push(element);\n mergedLeaveNodes.add(element);\n if (details.hasAnimation) {\n this.driver.query(element, STAR_SELECTOR, true).forEach(elm => mergedLeaveNodes.add(elm));\n }\n else {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n const leaveNodeMapIds = new Map();\n const leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));\n leaveNodeMap.forEach((nodes, root) => {\n const className = LEAVE_CLASSNAME + i++;\n leaveNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n cleanupFns.push(() => {\n enterNodeMap.forEach((nodes, root) => {\n const className = enterNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n leaveNodeMap.forEach((nodes, root) => {\n const className = leaveNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n allLeaveNodes.forEach(element => {\n this.processLeaveNode(element);\n });\n });\n const allPlayers = [];\n const erroneousTransitions = [];\n for (let i = this._namespaceList.length - 1; i >= 0; i--) {\n const ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach(entry => {\n const player = entry.player;\n const element = entry.element;\n allPlayers.push(player);\n if (this.collectedEnterElements.length) {\n const details = element[REMOVAL_FLAG];\n // animations for move operations (elements being removed and reinserted,\n // e.g. when the order of an *ngFor list changes) are currently not supported\n if (details && details.setForMove) {\n if (details.previousTriggersValues &&\n details.previousTriggersValues.has(entry.triggerName)) {\n const previousValue = details.previousTriggersValues.get(entry.triggerName);\n // we need to restore the previous trigger value since the element has\n // only been moved and hasn't actually left the DOM\n const triggersWithStates = this.statesByElement.get(entry.element);\n if (triggersWithStates && triggersWithStates.has(entry.triggerName)) {\n const state = triggersWithStates.get(entry.triggerName);\n state.value = previousValue;\n triggersWithStates.set(entry.triggerName, state);\n }\n }\n player.destroy();\n return;\n }\n }\n const nodeIsOrphaned = !bodyNode || !this.driver.containsElement(bodyNode, element);\n const leaveClassName = leaveNodeMapIds.get(element);\n const enterClassName = enterNodeMapIds.get(element);\n const instruction = this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // even though the element may not be in the DOM, it may still\n // be added at a later point (due to the mechanics of content\n // projection and/or dynamic component insertion) therefore it's\n // important to still style the element.\n if (nodeIsOrphaned) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // if an unmatched transition is queued and ready to go\n // then it SHOULD NOT render an animation and cancel the\n // previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub-trigger\n // then it will instruct the timeline builder not to add a player delay, but\n // instead stretch the first keyframe gap until the animation starts. This is\n // important in order to prevent extra initialization styles from being\n // required by the user for the animation.\n const timelines = [];\n instruction.timelines.forEach(tl => {\n tl.stretchStartingKeyframe = true;\n if (!this.disabledNodes.has(tl.element)) {\n timelines.push(tl);\n }\n });\n instruction.timelines = timelines;\n subTimelines.append(element, instruction.timelines);\n const tuple = { instruction, player, element };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach(element => getOrSetDefaultValue(queriedElements, element, []).push(player));\n instruction.preStyleProps.forEach((stringMap, element) => {\n if (stringMap.size) {\n let setVal = allPreStyleElements.get(element);\n if (!setVal) {\n allPreStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n }\n });\n instruction.postStyleProps.forEach((stringMap, element) => {\n let setVal = allPostStyleElements.get(element);\n if (!setVal) {\n allPostStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n });\n });\n }\n if (erroneousTransitions.length) {\n const errors = [];\n erroneousTransitions.forEach(instruction => {\n errors.push(transitionFailed(instruction.triggerName, instruction.errors));\n });\n allPlayers.forEach(player => player.destroy());\n this.reportError(errors);\n }\n const allPreviousPlayersMap = new Map();\n // this map tells us which element in the DOM tree is contained by\n // which animation. Further down this map will get populated once\n // the players are built and in doing so we can use it to efficiently\n // figure out if a sub player is skipped due to a parent player having priority.\n const animationElementMap = new Map();\n queuedInstructions.forEach(entry => {\n const element = entry.element;\n if (subTimelines.has(element)) {\n animationElementMap.set(element, element);\n this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach(player => {\n const element = player.element;\n const previousPlayers = this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach(prevPlayer => {\n getOrSetDefaultValue(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed either by\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or \"auto\" since the element\n // passed to getComputedStyle will not be visible (since * === destination)\n const replaceNodes = allLeaveNodes.filter(node => {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n const postStylesMap = new Map();\n const allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n allLeaveQueriedNodes.forEach(node => {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n const preStylesMap = new Map();\n enterNodeMap.forEach((nodes, root) => {\n cloakAndComputeStyles(preStylesMap, this.driver, new Set(nodes), allPreStyleElements, ɵPRE_STYLE);\n });\n replaceNodes.forEach(node => {\n const post = postStylesMap.get(node);\n const pre = preStylesMap.get(node);\n postStylesMap.set(node, new Map([...Array.from(post?.entries() ?? []), ...Array.from(pre?.entries() ?? [])]));\n });\n const rootPlayers = [];\n const subPlayers = [];\n const NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};\n queuedInstructions.forEach(entry => {\n const { element, player, instruction } = entry;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n player.disabled = true;\n player.overrideTotalTime(instruction.totalTime);\n skippedPlayers.push(player);\n return;\n }\n // this will flow up the DOM and query the map to figure out\n // if a parent animation has priority over it. In the situation\n // that a parent is detected then it will cancel the loop. If\n // nothing is detected, or it takes a few hops to find a parent,\n // then it will fill in the missing nodes and signal them as having\n // a detected parent (or a NO_PARENT value via a special constant).\n let parentWithAnimation = NO_PARENT_ANIMATION_ELEMENT_DETECTED;\n if (animationElementMap.size > 1) {\n let elm = element;\n const parentsToAdd = [];\n while (elm = elm.parentNode) {\n const detectedParent = animationElementMap.get(elm);\n if (detectedParent) {\n parentWithAnimation = detectedParent;\n break;\n }\n parentsToAdd.push(elm);\n }\n parentsToAdd.forEach(parent => animationElementMap.set(parent, parentWithAnimation));\n }\n const innerPlayer = this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n if (parentWithAnimation === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {\n rootPlayers.push(player);\n }\n else {\n const parentPlayers = this.playersByElement.get(parentWithAnimation);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n }\n else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation players\n subPlayers.forEach(player => {\n // even if no players are found for a sub animation it\n // will still complete itself after the next tick since it's Noop\n const playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n const innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach(player => {\n if (player.parentPlayer) {\n player.syncPlayerEvents(player.parentPlayer);\n }\n else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (let i = 0; i < allLeaveNodes.length; i++) {\n const element = allLeaveNodes[i];\n const details = element[REMOVAL_FLAG];\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation)\n continue;\n let players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n let queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push(...queriedPlayerResults);\n }\n let queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (let j = 0; j < queriedInnerElements.length; j++) {\n let queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push(...queriedPlayers);\n }\n }\n }\n const activePlayers = players.filter(p => !p.destroyed);\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n }\n else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach(player => {\n this.players.push(player);\n player.onDone(() => {\n player.destroy();\n const index = this.players.indexOf(player);\n this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n }\n elementContainsData(namespaceId, element) {\n let containsData = false;\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval)\n containsData = true;\n if (this.playersByElement.has(element))\n containsData = true;\n if (this.playersByQueriedElement.has(element))\n containsData = true;\n if (this.statesByElement.has(element))\n containsData = true;\n return this._fetchNamespace(namespaceId).elementContainsData(element) || containsData;\n }\n afterFlush(callback) {\n this._flushFns.push(callback);\n }\n afterFlushAnimationsDone(callback) {\n this._whenQuietFns.push(callback);\n }\n _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n let players = [];\n if (isQueriedElement) {\n const queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n }\n else {\n const elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n const isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach(player => {\n if (player.queued)\n return;\n if (!isRemovalAnimation && player.triggerName != triggerName)\n return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter(player => {\n if (namespaceId && namespaceId != player.namespaceId)\n return false;\n if (triggerName && triggerName != player.triggerName)\n return false;\n return true;\n });\n }\n return players;\n }\n _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n const targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n const targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n for (const timelineInstruction of instruction.timelines) {\n const element = timelineInstruction.element;\n const isQueriedElement = element !== rootElement;\n const players = getOrSetDefaultValue(allPreviousPlayersMap, element, []);\n const previousPlayers = this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach(player => {\n const realPlayer = player.getRealPlayer();\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n }\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n }\n _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n const allQueriedPlayers = [];\n const allConsumedElements = new Set();\n const allSubElements = new Set();\n const allNewPlayers = instruction.timelines.map(timelineInstruction => {\n const element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n const details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried)\n return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);\n const isQueriedElement = element !== rootElement;\n const previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY)\n .map(p => p.getRealPlayer()))\n .filter(p => {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n const pp = p;\n return pp.element ? pp.element === element : false;\n });\n const preStyles = preStylesMap.get(element);\n const postStyles = postStylesMap.get(element);\n const keyframes = normalizeKeyframes$1(this.driver, this._normalizer, element, timelineInstruction.keyframes, preStyles, postStyles);\n const player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n const wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach(player => {\n getOrSetDefaultValue(this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n });\n allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n const player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(() => {\n allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach(element => {\n getOrSetDefaultValue(skippedPlayersMap, element, []).push(player);\n });\n return player;\n }\n _buildPlayer(instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer(instruction.duration, instruction.delay);\n }\n}\nclass TransitionAnimationPlayer {\n constructor(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = new Map();\n this.destroyed = false;\n this.markedForDestroy = false;\n this.disabled = false;\n this.queued = true;\n this.totalTime = 0;\n }\n setRealPlayer(player) {\n if (this._containsRealPlayer)\n return;\n this._player = player;\n this._queuedCallbacks.forEach((callbacks, phase) => {\n callbacks.forEach(callback => listenOnPlayer(player, phase, undefined, callback));\n });\n this._queuedCallbacks.clear();\n this._containsRealPlayer = true;\n this.overrideTotalTime(player.totalTime);\n this.queued = false;\n }\n getRealPlayer() {\n return this._player;\n }\n overrideTotalTime(totalTime) {\n this.totalTime = totalTime;\n }\n syncPlayerEvents(player) {\n const p = this._player;\n if (p.triggerCallback) {\n player.onStart(() => p.triggerCallback('start'));\n }\n player.onDone(() => this.finish());\n player.onDestroy(() => this.destroy());\n }\n _queueEvent(name, callback) {\n getOrSetDefaultValue(this._queuedCallbacks, name, []).push(callback);\n }\n onDone(fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n }\n onStart(fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n }\n onDestroy(fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n }\n init() {\n this._player.init();\n }\n hasStarted() {\n return this.queued ? false : this._player.hasStarted();\n }\n play() {\n !this.queued && this._player.play();\n }\n pause() {\n !this.queued && this._player.pause();\n }\n restart() {\n !this.queued && this._player.restart();\n }\n finish() {\n this._player.finish();\n }\n destroy() {\n this.destroyed = true;\n this._player.destroy();\n }\n reset() {\n !this.queued && this._player.reset();\n }\n setPosition(p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n }\n getPosition() {\n return this.queued ? 0 : this._player.getPosition();\n }\n /** @internal */\n triggerCallback(phaseName) {\n const p = this._player;\n if (p.triggerCallback) {\n p.triggerCallback(phaseName);\n }\n }\n}\nfunction deleteOrUnsetInMap(map, key, value) {\n let currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n const index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n return currentValues;\n}\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\nfunction cloakElement(element, value) {\n const oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\nfunction cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {\n const cloakVals = [];\n elements.forEach(element => cloakVals.push(cloakElement(element)));\n const failedElements = [];\n elementPropsMap.forEach((props, element) => {\n const styles = new Map();\n props.forEach(prop => {\n const value = driver.computeStyle(element, prop, defaultStyle);\n styles.set(prop, value);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n let i = 0;\n elements.forEach(element => cloakElement(element, cloakVals[i++]));\n return failedElements;\n}\n/*\nSince the Angular renderer code will return a collection of inserted\nnodes in all areas of a DOM tree, it's up to this algorithm to figure\nout which nodes are roots for each animation @trigger.\n\nBy placing each inserted node into a Set and traversing upwards, it\nis possible to find the @trigger elements and well any direct *star\ninsertion nodes, if a @trigger root is found then the enter element\nis placed into the Map[@trigger] spot.\n */\nfunction buildRootMap(roots, nodes) {\n const rootMap = new Map();\n roots.forEach(root => rootMap.set(root, []));\n if (nodes.length == 0)\n return rootMap;\n const NULL_NODE = 1;\n const nodeSet = new Set(nodes);\n const localRootMap = new Map();\n function getRoot(node) {\n if (!node)\n return NULL_NODE;\n let root = localRootMap.get(node);\n if (root)\n return root;\n const parent = node.parentNode;\n if (rootMap.has(parent)) { // ngIf inside @trigger\n root = parent;\n }\n else if (nodeSet.has(parent)) { // ngIf inside ngIf\n root = NULL_NODE;\n }\n else { // recurse upwards\n root = getRoot(parent);\n }\n localRootMap.set(node, root);\n return root;\n }\n nodes.forEach(node => {\n const root = getRoot(node);\n if (root !== NULL_NODE) {\n rootMap.get(root).push(node);\n }\n });\n return rootMap;\n}\nfunction addClass(element, className) {\n element.classList?.add(className);\n}\nfunction removeClass(element, className) {\n element.classList?.remove(className);\n}\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\nfunction flattenGroupPlayers(players) {\n const finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (let i = 0; i < players.length; i++) {\n const player = players[i];\n if (player instanceof ɵAnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n }\n else {\n finalPlayers.push(player);\n }\n }\n}\nfunction objEquals(a, b) {\n const k1 = Object.keys(a);\n const k2 = Object.keys(b);\n if (k1.length != k2.length)\n return false;\n for (let i = 0; i < k1.length; i++) {\n const prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop])\n return false;\n }\n return true;\n}\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n const postEntry = allPostStyleElements.get(element);\n if (!postEntry)\n return false;\n let preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach(data => preEntry.add(data));\n }\n else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\n\nclass AnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._triggerCache = {};\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n this._transitionEngine = new TransitionAnimationEngine(bodyNode, _driver, _normalizer);\n this._timelineEngine = new TimelineAnimationEngine(bodyNode, _driver, _normalizer);\n this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);\n }\n registerTrigger(componentId, namespaceId, hostElement, name, metadata) {\n const cacheKey = componentId + '-' + name;\n let trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw triggerBuildFailed(name, errors);\n }\n if (warnings.length) {\n warnTriggerBuild(name, warnings);\n }\n trigger = buildTrigger(name, ast, this._normalizer);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n }\n register(namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n }\n destroy(namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n }\n onInsert(namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n }\n onRemove(namespaceId, element, context, isHostElement) {\n this._transitionEngine.removeNode(namespaceId, element, isHostElement || false, context);\n }\n disableAnimations(element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n }\n process(namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(property);\n const args = value;\n this._timelineEngine.command(id, element, action, args);\n }\n else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n }\n listen(namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(eventName);\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n }\n flush(microtaskId = -1) {\n this._transitionEngine.flush(microtaskId);\n }\n get players() {\n return this._transitionEngine.players\n .concat(this._timelineEngine.players);\n }\n whenRenderingDone() {\n return this._transitionEngine.whenRenderingDone();\n }\n}\n\n/**\n * Returns an instance of `SpecialCasedStyles` if and when any special (non animateable) styles are\n * detected.\n *\n * In CSS there exist properties that cannot be animated within a keyframe animation\n * (whether it be via CSS keyframes or web-animations) and the animation implementation\n * will ignore them. This function is designed to detect those special cased styles and\n * return a container that will be executed at the start and end of the animation.\n *\n * @returns an instance of `SpecialCasedStyles` if any special styles are detected otherwise `null`\n */\nfunction packageNonAnimatableStyles(element, styles) {\n let startStyles = null;\n let endStyles = null;\n if (Array.isArray(styles) && styles.length) {\n startStyles = filterNonAnimatableStyles(styles[0]);\n if (styles.length > 1) {\n endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);\n }\n }\n else if (styles instanceof Map) {\n startStyles = filterNonAnimatableStyles(styles);\n }\n return (startStyles || endStyles) ? new SpecialCasedStyles(element, startStyles, endStyles) :\n null;\n}\n/**\n * Designed to be executed during a keyframe-based animation to apply any special-cased styles.\n *\n * When started (when the `start()` method is run) then the provided `startStyles`\n * will be applied. When finished (when the `finish()` method is called) the\n * `endStyles` will be applied as well any any starting styles. Finally when\n * `destroy()` is called then all styles will be removed.\n */\nclass SpecialCasedStyles {\n constructor(_element, _startStyles, _endStyles) {\n this._element = _element;\n this._startStyles = _startStyles;\n this._endStyles = _endStyles;\n this._state = 0 /* SpecialCasedStylesState.Pending */;\n let initialStyles = SpecialCasedStyles.initialStylesByElement.get(_element);\n if (!initialStyles) {\n SpecialCasedStyles.initialStylesByElement.set(_element, initialStyles = new Map());\n }\n this._initialStyles = initialStyles;\n }\n start() {\n if (this._state < 1 /* SpecialCasedStylesState.Started */) {\n if (this._startStyles) {\n setStyles(this._element, this._startStyles, this._initialStyles);\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n finish() {\n this.start();\n if (this._state < 2 /* SpecialCasedStylesState.Finished */) {\n setStyles(this._element, this._initialStyles);\n if (this._endStyles) {\n setStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n destroy() {\n this.finish();\n if (this._state < 3 /* SpecialCasedStylesState.Destroyed */) {\n SpecialCasedStyles.initialStylesByElement.delete(this._element);\n if (this._startStyles) {\n eraseStyles(this._element, this._startStyles);\n this._endStyles = null;\n }\n if (this._endStyles) {\n eraseStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n setStyles(this._element, this._initialStyles);\n this._state = 3 /* SpecialCasedStylesState.Destroyed */;\n }\n }\n}\nSpecialCasedStyles.initialStylesByElement = ( /* @__PURE__ */new WeakMap());\nfunction filterNonAnimatableStyles(styles) {\n let result = null;\n styles.forEach((val, prop) => {\n if (isNonAnimatableStyle(prop)) {\n result = result || new Map();\n result.set(prop, val);\n }\n });\n return result;\n}\nfunction isNonAnimatableStyle(prop) {\n return prop === 'display' || prop === 'position';\n}\n\nclass WebAnimationsPlayer {\n constructor(element, keyframes, options, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this._specialStyles = _specialStyles;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n // the following original fns are persistent copies of the _onStartFns and _onDoneFns\n // and are used to reset the fns to their original values upon reset()\n // (since the _onStartFns and _onDoneFns get deleted after they are called)\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this.time = 0;\n this.parentPlayer = null;\n this.currentSnapshot = new Map();\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n }\n _buildPlayer() {\n if (this._initialized)\n return;\n this._initialized = true;\n const keyframes = this.keyframes;\n this.domPlayer =\n this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : new Map();\n this.domPlayer.addEventListener('finish', () => this._onFinish());\n }\n _preparePlayerBeforeStart() {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n }\n else {\n this.domPlayer.pause();\n }\n }\n _convertKeyframesToObject(keyframes) {\n const kfs = [];\n keyframes.forEach(frame => {\n kfs.push(Object.fromEntries(frame));\n });\n return kfs;\n }\n /** @internal */\n _triggerWebAnimation(element, keyframes, options) {\n // jscompiler doesn't seem to know animate is a native property because it's not fully\n // supported yet across common browsers (we polyfill it for Edge/Safari) [CL #143630929]\n return element['animate'](this._convertKeyframesToObject(keyframes), options);\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n play() {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n this._started = true;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this.domPlayer.play();\n }\n pause() {\n this.init();\n this.domPlayer.pause();\n }\n finish() {\n this.init();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._onFinish();\n this.domPlayer.finish();\n }\n reset() {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n _resetDomPlayerState() {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n }\n restart() {\n this.reset();\n this.play();\n }\n hasStarted() {\n return this._started;\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n setPosition(p) {\n if (this.domPlayer === undefined) {\n this.init();\n }\n this.domPlayer.currentTime = p * this.time;\n }\n getPosition() {\n return this.domPlayer.currentTime / this.time;\n }\n get totalTime() {\n return this._delay + this._duration;\n }\n beforeDestroy() {\n const styles = new Map();\n if (this.hasStarted()) {\n // note: this code is invoked only when the `play` function was called prior to this\n // (thus `hasStarted` returns true), this implies that the code that initializes\n // `_finalKeyframe` has also been executed and the non-null assertion can be safely used here\n const finalKeyframe = this._finalKeyframe;\n finalKeyframe.forEach((val, prop) => {\n if (prop !== 'offset') {\n styles.set(prop, this._finished ? val : computeStyle(this.element, prop));\n }\n });\n }\n this.currentSnapshot = styles;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName === 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\nclass WebAnimationsDriver {\n validateStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return validateStyleProperty(prop);\n }\n return true;\n }\n validateAnimatableStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const cssProp = camelCaseToDashCase(prop);\n return validateWebAnimatableStyleProperty(cssProp);\n }\n return true;\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return window.getComputedStyle(element)[prop];\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = []) {\n const fill = delay == 0 ? 'both' : 'forwards';\n const playerOptions = { duration, delay, fill };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n const previousStyles = new Map();\n const previousWebAnimationPlayers = previousPlayers.filter(player => player instanceof WebAnimationsPlayer);\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousWebAnimationPlayers.forEach(player => {\n player.currentSnapshot.forEach((val, prop) => previousStyles.set(prop, val));\n });\n }\n let _keyframes = normalizeKeyframes(keyframes).map(styles => copyStyles(styles));\n _keyframes = balancePreviousStylesIntoKeyframes(element, _keyframes, previousStyles);\n const specialStyles = packageNonAnimatableStyles(element, _keyframes);\n return new WebAnimationsPlayer(element, _keyframes, playerOptions, specialStyles);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, NoopAnimationDriver as ɵNoopAnimationDriver, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, containsElement as ɵcontainsElement, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, normalizeKeyframes as ɵnormalizeKeyframes, validateStyleProperty as ɵvalidateStyleProperty };\n","/**\n * @license Angular v14.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, ɵɵinject, Inject, inject, Optional, EventEmitter, ɵfindLocaleData, ɵLocaleDataIndex, ɵgetLocaleCurrencyCode, ɵgetLocalePluralCase, LOCALE_ID, ɵregisterLocaleData, ɵisListLikeIterable, ɵstringify, Directive, Input, createNgModule, NgModuleRef, ɵRuntimeError, Host, Attribute, RendererStyleFlags2, ɵisPromise, ɵisSubscribable, Pipe, DEFAULT_CURRENCY_CODE, NgModule, Version, ɵɵdefineInjectable, ɵformatRuntimeError, Renderer2, ElementRef, Injector, PLATFORM_ID, NgZone } from '@angular/core';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet _DOM = null;\nfunction getDOM() {\n return _DOM;\n}\nfunction setDOM(adapter) {\n _DOM = adapter;\n}\nfunction setRootDomAdapter(adapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\n}\n/* tslint:disable:requireParameterType */\n/**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nclass DomAdapter {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A DI Token representing the main rendering context. In a browser this is the DOM Document.\n *\n * Note: Document might not be available in the Application Context when Application and Rendering\n * Contexts are not the same (e.g. when running the application in a Web Worker).\n *\n * @publicApi\n */\nconst DOCUMENT = new InjectionToken('DocumentToken');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n *\n * `PlatformLocation` encapsulates all calls to DOM APIs, which allows the Router to be\n * platform-agnostic.\n * This means that we can have different implementation of `PlatformLocation` for the different\n * platforms that Angular supports. For example, `@angular/platform-browser` provides an\n * implementation specific to the browser environment, while `@angular/platform-server` provides\n * one suitable for use with server-side rendering.\n *\n * The `PlatformLocation` class is used directly by all implementations of {@link LocationStrategy}\n * when they need to interact with the DOM APIs like pushState, popState, etc.\n *\n * {@link LocationStrategy} in turn is used by the {@link Location} service which is used directly\n * by the {@link Router} in order to navigate between routes. Since all interactions between {@link\n * Router} /\n * {@link Location} / {@link LocationStrategy} and DOM APIs flow through the `PlatformLocation`\n * class, they are all platform-agnostic.\n *\n * @publicApi\n */\nclass PlatformLocation {\n historyGo(relativePosition) {\n throw new Error('Not implemented');\n }\n}\nPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: useBrowserPlatformLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: useBrowserPlatformLocation\n }]\n }] });\nfunction useBrowserPlatformLocation() {\n return ɵɵinject(BrowserPlatformLocation);\n}\n/**\n * @description\n * Indicates when a location is initialized.\n *\n * @publicApi\n */\nconst LOCATION_INITIALIZED = new InjectionToken('Location Initialized');\n/**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n */\nclass BrowserPlatformLocation extends PlatformLocation {\n constructor(_doc) {\n super();\n this._doc = _doc;\n this._init();\n }\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n _init() {\n this.location = window.location;\n this._history = window.history;\n }\n getBaseHrefFromDOM() {\n return getDOM().getBaseHref(this._doc);\n }\n onPopState(fn) {\n const window = getDOM().getGlobalEventTarget(this._doc, 'window');\n window.addEventListener('popstate', fn, false);\n return () => window.removeEventListener('popstate', fn);\n }\n onHashChange(fn) {\n const window = getDOM().getGlobalEventTarget(this._doc, 'window');\n window.addEventListener('hashchange', fn, false);\n return () => window.removeEventListener('hashchange', fn);\n }\n get href() {\n return this.location.href;\n }\n get protocol() {\n return this.location.protocol;\n }\n get hostname() {\n return this.location.hostname;\n }\n get port() {\n return this.location.port;\n }\n get pathname() {\n return this.location.pathname;\n }\n get search() {\n return this.location.search;\n }\n get hash() {\n return this.location.hash;\n }\n set pathname(newPath) {\n this.location.pathname = newPath;\n }\n pushState(state, title, url) {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n }\n replaceState(state, title, url) {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n }\n forward() {\n this._history.forward();\n }\n back() {\n this._history.back();\n }\n historyGo(relativePosition = 0) {\n this._history.go(relativePosition);\n }\n getState() {\n return this._history.state;\n }\n}\nBrowserPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserPlatformLocation, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nBrowserPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: createBrowserPlatformLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserPlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: createBrowserPlatformLocation,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\nfunction supportsState() {\n return !!window.history.pushState;\n}\nfunction createBrowserPlatformLocation() {\n return new BrowserPlatformLocation(ɵɵinject(DOCUMENT));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\nfunction joinWithSlash(start, end) {\n if (start.length == 0) {\n return end;\n }\n if (end.length == 0) {\n return start;\n }\n let slashes = 0;\n if (start.endsWith('/')) {\n slashes++;\n }\n if (end.startsWith('/')) {\n slashes++;\n }\n if (slashes == 2) {\n return start + end.substring(1);\n }\n if (slashes == 1) {\n return start + end;\n }\n return start + '/' + end;\n}\n/**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\nfunction stripTrailingSlash(url) {\n const match = url.match(/#|\\?|$/);\n const pathEndIdx = match && match.index || url.length;\n const droppedSlashIdx = pathEndIdx - (url[pathEndIdx - 1] === '/' ? 1 : 0);\n return url.slice(0, droppedSlashIdx) + url.slice(pathEndIdx);\n}\n/**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\nfunction normalizeQueryParams(params) {\n return params && params[0] !== '?' ? '?' + params : params;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Enables the `Location` service to read route state from the browser's URL.\n * Angular provides two strategies:\n * `HashLocationStrategy` and `PathLocationStrategy`.\n *\n * Applications should use the `Router` or `Location` services to\n * interact with application route state.\n *\n * For instance, `HashLocationStrategy` produces URLs like\n * http://example.com#/foo,\n * and `PathLocationStrategy` produces\n * http://example.com/foo as an equivalent URL.\n *\n * See these two classes for more.\n *\n * @publicApi\n */\nclass LocationStrategy {\n historyGo(relativePosition) {\n throw new Error('Not implemented');\n }\n}\nLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LocationStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: () => inject(PathLocationStrategy) }]\n }] });\n/**\n * A predefined [DI token](guide/glossary#di-token) for the base href\n * to be used with the `PathLocationStrategy`.\n * The base href is the URL prefix that should be preserved when generating\n * and recognizing URLs.\n *\n * @usageNotes\n *\n * The following example shows how to use this token to configure the root app injector\n * with a base href value, so that the DI framework can supply the dependency anywhere in the app.\n *\n * ```typescript\n * import {Component, NgModule} from '@angular/core';\n * import {APP_BASE_HREF} from '@angular/common';\n *\n * @NgModule({\n * providers: [{provide: APP_BASE_HREF, useValue: '/my/app'}]\n * })\n * class AppModule {}\n * ```\n *\n * @publicApi\n */\nconst APP_BASE_HREF = new InjectionToken('appBaseHref');\n/**\n * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [path](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax) of the\n * browser's URL.\n *\n * If you're using `PathLocationStrategy`, you may provide a {@link APP_BASE_HREF}\n * or add a `` element to the document to override the default.\n *\n * For instance, if you provide an `APP_BASE_HREF` of `'/my/app/'` and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`. To ensure all relative URIs resolve correctly,\n * the `` and/or `APP_BASE_HREF` should end with a `/`.\n *\n * Similarly, if you add `` to the document and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`.\n *\n * Note that when using `PathLocationStrategy`, neither the query nor\n * the fragment in the `` will be preserved, as outlined\n * by the [RFC](https://tools.ietf.org/html/rfc3986#section-5.2.2).\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/path_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nclass PathLocationStrategy extends LocationStrategy {\n constructor(_platformLocation, href) {\n super();\n this._platformLocation = _platformLocation;\n this._removeListenerFns = [];\n this._baseHref = href ?? this._platformLocation.getBaseHrefFromDOM() ??\n inject(DOCUMENT).location?.origin ?? '';\n }\n /** @nodoc */\n ngOnDestroy() {\n while (this._removeListenerFns.length) {\n this._removeListenerFns.pop()();\n }\n }\n onPopState(fn) {\n this._removeListenerFns.push(this._platformLocation.onPopState(fn), this._platformLocation.onHashChange(fn));\n }\n getBaseHref() {\n return this._baseHref;\n }\n prepareExternalUrl(internal) {\n return joinWithSlash(this._baseHref, internal);\n }\n path(includeHash = false) {\n const pathname = this._platformLocation.pathname + normalizeQueryParams(this._platformLocation.search);\n const hash = this._platformLocation.hash;\n return hash && includeHash ? `${pathname}${hash}` : pathname;\n }\n pushState(state, title, url, queryParams) {\n const externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.pushState(state, title, externalUrl);\n }\n replaceState(state, title, url, queryParams) {\n const externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.replaceState(state, title, externalUrl);\n }\n forward() {\n this._platformLocation.forward();\n }\n back() {\n this._platformLocation.back();\n }\n getState() {\n return this._platformLocation.getState();\n }\n historyGo(relativePosition = 0) {\n this._platformLocation.historyGo?.(relativePosition);\n }\n}\nPathLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PathLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nPathLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PathLocationStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: PlatformLocation }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [hash fragment](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax)\n * of the browser's URL.\n *\n * For instance, if you call `location.go('/foo')`, the browser's URL will become\n * `example.com#/foo`.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/hash_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nclass HashLocationStrategy extends LocationStrategy {\n constructor(_platformLocation, _baseHref) {\n super();\n this._platformLocation = _platformLocation;\n this._baseHref = '';\n this._removeListenerFns = [];\n if (_baseHref != null) {\n this._baseHref = _baseHref;\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n while (this._removeListenerFns.length) {\n this._removeListenerFns.pop()();\n }\n }\n onPopState(fn) {\n this._removeListenerFns.push(this._platformLocation.onPopState(fn), this._platformLocation.onHashChange(fn));\n }\n getBaseHref() {\n return this._baseHref;\n }\n path(includeHash = false) {\n // the hash value is always prefixed with a `#`\n // and if it is empty then it will stay empty\n let path = this._platformLocation.hash;\n if (path == null)\n path = '#';\n return path.length > 0 ? path.substring(1) : path;\n }\n prepareExternalUrl(internal) {\n const url = joinWithSlash(this._baseHref, internal);\n return url.length > 0 ? ('#' + url) : url;\n }\n pushState(state, title, path, queryParams) {\n let url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.pushState(state, title, url);\n }\n replaceState(state, title, path, queryParams) {\n let url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.replaceState(state, title, url);\n }\n forward() {\n this._platformLocation.forward();\n }\n back() {\n this._platformLocation.back();\n }\n getState() {\n return this._platformLocation.getState();\n }\n historyGo(relativePosition = 0) {\n this._platformLocation.historyGo?.(relativePosition);\n }\n}\nHashLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HashLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nHashLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HashLocationStrategy });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HashLocationStrategy, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: PlatformLocation }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @description\n *\n * A service that applications can use to interact with a browser's URL.\n *\n * Depending on the `LocationStrategy` used, `Location` persists\n * to the URL's path or the URL's hash segment.\n *\n * @usageNotes\n *\n * It's better to use the `Router.navigate()` service to trigger route changes. Use\n * `Location` only if you need to interact with or create normalized URLs outside of\n * routing.\n *\n * `Location` is responsible for normalizing the URL against the application's base href.\n * A normalized URL is absolute from the URL host, includes the application's base href, and has no\n * trailing slash:\n * - `/my/app/user/123` is normalized\n * - `my/app/user/123` **is not** normalized\n * - `/my/app/user/123/` **is not** normalized\n *\n * ### Example\n *\n * \n *\n * @publicApi\n */\nclass Location {\n constructor(locationStrategy) {\n /** @internal */\n this._subject = new EventEmitter();\n /** @internal */\n this._urlChangeListeners = [];\n /** @internal */\n this._urlChangeSubscription = null;\n this._locationStrategy = locationStrategy;\n const browserBaseHref = this._locationStrategy.getBaseHref();\n this._baseHref = stripTrailingSlash(_stripIndexHtml(browserBaseHref));\n this._locationStrategy.onPopState((ev) => {\n this._subject.emit({\n 'url': this.path(true),\n 'pop': true,\n 'state': ev.state,\n 'type': ev.type,\n });\n });\n }\n /** @nodoc */\n ngOnDestroy() {\n this._urlChangeSubscription?.unsubscribe();\n this._urlChangeListeners = [];\n }\n /**\n * Normalizes the URL path for this location.\n *\n * @param includeHash True to include an anchor fragment in the path.\n *\n * @returns The normalized URL path.\n */\n // TODO: vsavkin. Remove the boolean flag and always include hash once the deprecated router is\n // removed.\n path(includeHash = false) {\n return this.normalize(this._locationStrategy.path(includeHash));\n }\n /**\n * Reports the current state of the location history.\n * @returns The current value of the `history.state` object.\n */\n getState() {\n return this._locationStrategy.getState();\n }\n /**\n * Normalizes the given path and compares to the current normalized path.\n *\n * @param path The given URL path.\n * @param query Query parameters.\n *\n * @returns True if the given URL path is equal to the current normalized path, false\n * otherwise.\n */\n isCurrentPathEqualTo(path, query = '') {\n return this.path() == this.normalize(path + normalizeQueryParams(query));\n }\n /**\n * Normalizes a URL path by stripping any trailing slashes.\n *\n * @param url String representing a URL.\n *\n * @returns The normalized URL string.\n */\n normalize(url) {\n return Location.stripTrailingSlash(_stripBaseHref(this._baseHref, _stripIndexHtml(url)));\n }\n /**\n * Normalizes an external URL path.\n * If the given URL doesn't begin with a leading slash (`'/'`), adds one\n * before normalizing. Adds a hash if `HashLocationStrategy` is\n * in use, or the `APP_BASE_HREF` if the `PathLocationStrategy` is in use.\n *\n * @param url String representing a URL.\n *\n * @returns A normalized platform-specific URL.\n */\n prepareExternalUrl(url) {\n if (url && url[0] !== '/') {\n url = '/' + url;\n }\n return this._locationStrategy.prepareExternalUrl(url);\n }\n // TODO: rename this method to pushState\n /**\n * Changes the browser's URL to a normalized version of a given URL, and pushes a\n * new item onto the platform's history.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n *\n */\n go(path, query = '', state = null) {\n this._locationStrategy.pushState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n }\n /**\n * Changes the browser's URL to a normalized version of the given URL, and replaces\n * the top item on the platform's history stack.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n */\n replaceState(path, query = '', state = null) {\n this._locationStrategy.replaceState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n }\n /**\n * Navigates forward in the platform's history.\n */\n forward() {\n this._locationStrategy.forward();\n }\n /**\n * Navigates back in the platform's history.\n */\n back() {\n this._locationStrategy.back();\n }\n /**\n * Navigate to a specific page from session history, identified by its relative position to the\n * current page.\n *\n * @param relativePosition Position of the target page in the history relative to the current\n * page.\n * A negative value moves backwards, a positive value moves forwards, e.g. `location.historyGo(2)`\n * moves forward two pages and `location.historyGo(-2)` moves back two pages. When we try to go\n * beyond what's stored in the history session, we stay in the current page. Same behaviour occurs\n * when `relativePosition` equals 0.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/History_API#Moving_to_a_specific_point_in_history\n */\n historyGo(relativePosition = 0) {\n this._locationStrategy.historyGo?.(relativePosition);\n }\n /**\n * Registers a URL change listener. Use to catch updates performed by the Angular\n * framework that are not detectible through \"popstate\" or \"hashchange\" events.\n *\n * @param fn The change handler function, which take a URL and a location history state.\n * @returns A function that, when executed, unregisters a URL change listener.\n */\n onUrlChange(fn) {\n this._urlChangeListeners.push(fn);\n if (!this._urlChangeSubscription) {\n this._urlChangeSubscription = this.subscribe(v => {\n this._notifyUrlChangeListeners(v.url, v.state);\n });\n }\n return () => {\n const fnIndex = this._urlChangeListeners.indexOf(fn);\n this._urlChangeListeners.splice(fnIndex, 1);\n if (this._urlChangeListeners.length === 0) {\n this._urlChangeSubscription?.unsubscribe();\n this._urlChangeSubscription = null;\n }\n };\n }\n /** @internal */\n _notifyUrlChangeListeners(url = '', state) {\n this._urlChangeListeners.forEach(fn => fn(url, state));\n }\n /**\n * Subscribes to the platform's `popState` events.\n *\n * Note: `Location.go()` does not trigger the `popState` event in the browser. Use\n * `Location.onUrlChange()` to subscribe to URL changes instead.\n *\n * @param value Event that is triggered when the state history changes.\n * @param exception The exception to throw.\n *\n * @see [onpopstate](https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate)\n *\n * @returns Subscribed events.\n */\n subscribe(onNext, onThrow, onReturn) {\n return this._subject.subscribe({ next: onNext, error: onThrow, complete: onReturn });\n }\n}\n/**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\nLocation.normalizeQueryParams = normalizeQueryParams;\n/**\n * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\nLocation.joinWithSlash = joinWithSlash;\n/**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\nLocation.stripTrailingSlash = stripTrailingSlash;\nLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable });\nLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: Location, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n // See #23917\n useFactory: createLocation,\n }]\n }], ctorParameters: function () { return [{ type: LocationStrategy }]; } });\nfunction createLocation() {\n return new Location(ɵɵinject(LocationStrategy));\n}\nfunction _stripBaseHref(baseHref, url) {\n return baseHref && url.startsWith(baseHref) ? url.substring(baseHref.length) : url;\n}\nfunction _stripIndexHtml(url) {\n return url.replace(/\\/index.html$/, '');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @internal */\nconst CURRENCIES_EN = { \"ADP\": [undefined, undefined, 0], \"AFN\": [undefined, \"؋\", 0], \"ALL\": [undefined, undefined, 0], \"AMD\": [undefined, \"֏\", 2], \"AOA\": [undefined, \"Kz\"], \"ARS\": [undefined, \"$\"], \"AUD\": [\"A$\", \"$\"], \"AZN\": [undefined, \"₼\"], \"BAM\": [undefined, \"KM\"], \"BBD\": [undefined, \"$\"], \"BDT\": [undefined, \"৳\"], \"BHD\": [undefined, undefined, 3], \"BIF\": [undefined, undefined, 0], \"BMD\": [undefined, \"$\"], \"BND\": [undefined, \"$\"], \"BOB\": [undefined, \"Bs\"], \"BRL\": [\"R$\"], \"BSD\": [undefined, \"$\"], \"BWP\": [undefined, \"P\"], \"BYN\": [undefined, undefined, 2], \"BYR\": [undefined, undefined, 0], \"BZD\": [undefined, \"$\"], \"CAD\": [\"CA$\", \"$\", 2], \"CHF\": [undefined, undefined, 2], \"CLF\": [undefined, undefined, 4], \"CLP\": [undefined, \"$\", 0], \"CNY\": [\"CN¥\", \"¥\"], \"COP\": [undefined, \"$\", 2], \"CRC\": [undefined, \"₡\", 2], \"CUC\": [undefined, \"$\"], \"CUP\": [undefined, \"$\"], \"CZK\": [undefined, \"Kč\", 2], \"DJF\": [undefined, undefined, 0], \"DKK\": [undefined, \"kr\", 2], \"DOP\": [undefined, \"$\"], \"EGP\": [undefined, \"E£\"], \"ESP\": [undefined, \"₧\", 0], \"EUR\": [\"€\"], \"FJD\": [undefined, \"$\"], \"FKP\": [undefined, \"£\"], \"GBP\": [\"£\"], \"GEL\": [undefined, \"₾\"], \"GHS\": [undefined, \"GH₵\"], \"GIP\": [undefined, \"£\"], \"GNF\": [undefined, \"FG\", 0], \"GTQ\": [undefined, \"Q\"], \"GYD\": [undefined, \"$\", 2], \"HKD\": [\"HK$\", \"$\"], \"HNL\": [undefined, \"L\"], \"HRK\": [undefined, \"kn\"], \"HUF\": [undefined, \"Ft\", 2], \"IDR\": [undefined, \"Rp\", 2], \"ILS\": [\"₪\"], \"INR\": [\"₹\"], \"IQD\": [undefined, undefined, 0], \"IRR\": [undefined, undefined, 0], \"ISK\": [undefined, \"kr\", 0], \"ITL\": [undefined, undefined, 0], \"JMD\": [undefined, \"$\"], \"JOD\": [undefined, undefined, 3], \"JPY\": [\"¥\", undefined, 0], \"KHR\": [undefined, \"៛\"], \"KMF\": [undefined, \"CF\", 0], \"KPW\": [undefined, \"₩\", 0], \"KRW\": [\"₩\", undefined, 0], \"KWD\": [undefined, undefined, 3], \"KYD\": [undefined, \"$\"], \"KZT\": [undefined, \"₸\"], \"LAK\": [undefined, \"₭\", 0], \"LBP\": [undefined, \"L£\", 0], \"LKR\": [undefined, \"Rs\"], \"LRD\": [undefined, \"$\"], \"LTL\": [undefined, \"Lt\"], \"LUF\": [undefined, undefined, 0], \"LVL\": [undefined, \"Ls\"], \"LYD\": [undefined, undefined, 3], \"MGA\": [undefined, \"Ar\", 0], \"MGF\": [undefined, undefined, 0], \"MMK\": [undefined, \"K\", 0], \"MNT\": [undefined, \"₮\", 2], \"MRO\": [undefined, undefined, 0], \"MUR\": [undefined, \"Rs\", 2], \"MXN\": [\"MX$\", \"$\"], \"MYR\": [undefined, \"RM\"], \"NAD\": [undefined, \"$\"], \"NGN\": [undefined, \"₦\"], \"NIO\": [undefined, \"C$\"], \"NOK\": [undefined, \"kr\", 2], \"NPR\": [undefined, \"Rs\"], \"NZD\": [\"NZ$\", \"$\"], \"OMR\": [undefined, undefined, 3], \"PHP\": [\"₱\"], \"PKR\": [undefined, \"Rs\", 2], \"PLN\": [undefined, \"zł\"], \"PYG\": [undefined, \"₲\", 0], \"RON\": [undefined, \"lei\"], \"RSD\": [undefined, undefined, 0], \"RUB\": [undefined, \"₽\"], \"RWF\": [undefined, \"RF\", 0], \"SBD\": [undefined, \"$\"], \"SEK\": [undefined, \"kr\", 2], \"SGD\": [undefined, \"$\"], \"SHP\": [undefined, \"£\"], \"SLE\": [undefined, undefined, 2], \"SLL\": [undefined, undefined, 0], \"SOS\": [undefined, undefined, 0], \"SRD\": [undefined, \"$\"], \"SSP\": [undefined, \"£\"], \"STD\": [undefined, undefined, 0], \"STN\": [undefined, \"Db\"], \"SYP\": [undefined, \"£\", 0], \"THB\": [undefined, \"฿\"], \"TMM\": [undefined, undefined, 0], \"TND\": [undefined, undefined, 3], \"TOP\": [undefined, \"T$\"], \"TRL\": [undefined, undefined, 0], \"TRY\": [undefined, \"₺\"], \"TTD\": [undefined, \"$\"], \"TWD\": [\"NT$\", \"$\", 2], \"TZS\": [undefined, undefined, 2], \"UAH\": [undefined, \"₴\"], \"UGX\": [undefined, undefined, 0], \"USD\": [\"$\"], \"UYI\": [undefined, undefined, 0], \"UYU\": [undefined, \"$\"], \"UYW\": [undefined, undefined, 4], \"UZS\": [undefined, undefined, 2], \"VEF\": [undefined, \"Bs\", 2], \"VND\": [\"₫\", undefined, 0], \"VUV\": [undefined, undefined, 0], \"XAF\": [\"FCFA\", undefined, 0], \"XCD\": [\"EC$\", \"$\"], \"XOF\": [\"F CFA\", undefined, 0], \"XPF\": [\"CFPF\", undefined, 0], \"XXX\": [\"¤\"], \"YER\": [undefined, undefined, 0], \"ZAR\": [undefined, \"R\"], \"ZMK\": [undefined, undefined, 0], \"ZMW\": [undefined, \"ZK\"], \"ZWD\": [undefined, undefined, 0] };\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Format styles that can be used to represent numbers.\n * @see `getLocaleNumberFormat()`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar NumberFormatStyle;\n(function (NumberFormatStyle) {\n NumberFormatStyle[NumberFormatStyle[\"Decimal\"] = 0] = \"Decimal\";\n NumberFormatStyle[NumberFormatStyle[\"Percent\"] = 1] = \"Percent\";\n NumberFormatStyle[NumberFormatStyle[\"Currency\"] = 2] = \"Currency\";\n NumberFormatStyle[NumberFormatStyle[\"Scientific\"] = 3] = \"Scientific\";\n})(NumberFormatStyle || (NumberFormatStyle = {}));\n/**\n * Plurality cases used for translating plurals to different languages.\n *\n * @see `NgPlural`\n * @see `NgPluralCase`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar Plural;\n(function (Plural) {\n Plural[Plural[\"Zero\"] = 0] = \"Zero\";\n Plural[Plural[\"One\"] = 1] = \"One\";\n Plural[Plural[\"Two\"] = 2] = \"Two\";\n Plural[Plural[\"Few\"] = 3] = \"Few\";\n Plural[Plural[\"Many\"] = 4] = \"Many\";\n Plural[Plural[\"Other\"] = 5] = \"Other\";\n})(Plural || (Plural = {}));\n/**\n * Context-dependant translation forms for strings.\n * Typically the standalone version is for the nominative form of the word,\n * and the format version is used for the genitive case.\n * @see [CLDR website](http://cldr.unicode.org/translation/date-time-1/date-time#TOC-Standalone-vs.-Format-Styles)\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar FormStyle;\n(function (FormStyle) {\n FormStyle[FormStyle[\"Format\"] = 0] = \"Format\";\n FormStyle[FormStyle[\"Standalone\"] = 1] = \"Standalone\";\n})(FormStyle || (FormStyle = {}));\n/**\n * String widths available for translations.\n * The specific character widths are locale-specific.\n * Examples are given for the word \"Sunday\" in English.\n *\n * @publicApi\n */\nvar TranslationWidth;\n(function (TranslationWidth) {\n /** 1 character for `en-US`. For example: 'S' */\n TranslationWidth[TranslationWidth[\"Narrow\"] = 0] = \"Narrow\";\n /** 3 characters for `en-US`. For example: 'Sun' */\n TranslationWidth[TranslationWidth[\"Abbreviated\"] = 1] = \"Abbreviated\";\n /** Full length for `en-US`. For example: \"Sunday\" */\n TranslationWidth[TranslationWidth[\"Wide\"] = 2] = \"Wide\";\n /** 2 characters for `en-US`, For example: \"Su\" */\n TranslationWidth[TranslationWidth[\"Short\"] = 3] = \"Short\";\n})(TranslationWidth || (TranslationWidth = {}));\n/**\n * String widths available for date-time formats.\n * The specific character widths are locale-specific.\n * Examples are given for `en-US`.\n *\n * @see `getLocaleDateFormat()`\n * @see `getLocaleTimeFormat()`\n * @see `getLocaleDateTimeFormat()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n * @publicApi\n */\nvar FormatWidth;\n(function (FormatWidth) {\n /**\n * For `en-US`, 'M/d/yy, h:mm a'`\n * (Example: `6/15/15, 9:03 AM`)\n */\n FormatWidth[FormatWidth[\"Short\"] = 0] = \"Short\";\n /**\n * For `en-US`, `'MMM d, y, h:mm:ss a'`\n * (Example: `Jun 15, 2015, 9:03:01 AM`)\n */\n FormatWidth[FormatWidth[\"Medium\"] = 1] = \"Medium\";\n /**\n * For `en-US`, `'MMMM d, y, h:mm:ss a z'`\n * (Example: `June 15, 2015 at 9:03:01 AM GMT+1`)\n */\n FormatWidth[FormatWidth[\"Long\"] = 2] = \"Long\";\n /**\n * For `en-US`, `'EEEE, MMMM d, y, h:mm:ss a zzzz'`\n * (Example: `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00`)\n */\n FormatWidth[FormatWidth[\"Full\"] = 3] = \"Full\";\n})(FormatWidth || (FormatWidth = {}));\n/**\n * Symbols that can be used to replace placeholders in number patterns.\n * Examples are based on `en-US` values.\n *\n * @see `getLocaleNumberSymbol()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar NumberSymbol;\n(function (NumberSymbol) {\n /**\n * Decimal separator.\n * For `en-US`, the dot character.\n * Example: 2,345`.`67\n */\n NumberSymbol[NumberSymbol[\"Decimal\"] = 0] = \"Decimal\";\n /**\n * Grouping separator, typically for thousands.\n * For `en-US`, the comma character.\n * Example: 2`,`345.67\n */\n NumberSymbol[NumberSymbol[\"Group\"] = 1] = \"Group\";\n /**\n * List-item separator.\n * Example: \"one, two, and three\"\n */\n NumberSymbol[NumberSymbol[\"List\"] = 2] = \"List\";\n /**\n * Sign for percentage (out of 100).\n * Example: 23.4%\n */\n NumberSymbol[NumberSymbol[\"PercentSign\"] = 3] = \"PercentSign\";\n /**\n * Sign for positive numbers.\n * Example: +23\n */\n NumberSymbol[NumberSymbol[\"PlusSign\"] = 4] = \"PlusSign\";\n /**\n * Sign for negative numbers.\n * Example: -23\n */\n NumberSymbol[NumberSymbol[\"MinusSign\"] = 5] = \"MinusSign\";\n /**\n * Computer notation for exponential value (n times a power of 10).\n * Example: 1.2E3\n */\n NumberSymbol[NumberSymbol[\"Exponential\"] = 6] = \"Exponential\";\n /**\n * Human-readable format of exponential.\n * Example: 1.2x103\n */\n NumberSymbol[NumberSymbol[\"SuperscriptingExponent\"] = 7] = \"SuperscriptingExponent\";\n /**\n * Sign for permille (out of 1000).\n * Example: 23.4‰\n */\n NumberSymbol[NumberSymbol[\"PerMille\"] = 8] = \"PerMille\";\n /**\n * Infinity, can be used with plus and minus.\n * Example: ∞, +∞, -∞\n */\n NumberSymbol[NumberSymbol[\"Infinity\"] = 9] = \"Infinity\";\n /**\n * Not a number.\n * Example: NaN\n */\n NumberSymbol[NumberSymbol[\"NaN\"] = 10] = \"NaN\";\n /**\n * Symbol used between time units.\n * Example: 10:52\n */\n NumberSymbol[NumberSymbol[\"TimeSeparator\"] = 11] = \"TimeSeparator\";\n /**\n * Decimal separator for currency values (fallback to `Decimal`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyDecimal\"] = 12] = \"CurrencyDecimal\";\n /**\n * Group separator for currency values (fallback to `Group`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyGroup\"] = 13] = \"CurrencyGroup\";\n})(NumberSymbol || (NumberSymbol = {}));\n/**\n * The value for each day of the week, based on the `en-US` locale\n *\n * @publicApi\n */\nvar WeekDay;\n(function (WeekDay) {\n WeekDay[WeekDay[\"Sunday\"] = 0] = \"Sunday\";\n WeekDay[WeekDay[\"Monday\"] = 1] = \"Monday\";\n WeekDay[WeekDay[\"Tuesday\"] = 2] = \"Tuesday\";\n WeekDay[WeekDay[\"Wednesday\"] = 3] = \"Wednesday\";\n WeekDay[WeekDay[\"Thursday\"] = 4] = \"Thursday\";\n WeekDay[WeekDay[\"Friday\"] = 5] = \"Friday\";\n WeekDay[WeekDay[\"Saturday\"] = 6] = \"Saturday\";\n})(WeekDay || (WeekDay = {}));\n/**\n * Retrieves the locale ID from the currently loaded locale.\n * The loaded locale could be, for example, a global one rather than a regional one.\n * @param locale A locale code, such as `fr-FR`.\n * @returns The locale code. For example, `fr`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleId(locale) {\n return ɵfindLocaleData(locale)[ɵLocaleDataIndex.LocaleId];\n}\n/**\n * Retrieves day period strings for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized period strings. For example, `[AM, PM]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayPeriods(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const amPmData = [\n data[ɵLocaleDataIndex.DayPeriodsFormat], data[ɵLocaleDataIndex.DayPeriodsStandalone]\n ];\n const amPm = getLastDefinedValue(amPmData, formStyle);\n return getLastDefinedValue(amPm, width);\n}\n/**\n * Retrieves days of the week for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example,`[Sunday, Monday, ... Saturday]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const daysData = [data[ɵLocaleDataIndex.DaysFormat], data[ɵLocaleDataIndex.DaysStandalone]];\n const days = getLastDefinedValue(daysData, formStyle);\n return getLastDefinedValue(days, width);\n}\n/**\n * Retrieves months of the year for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example, `[January, February, ...]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleMonthNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const monthsData = [data[ɵLocaleDataIndex.MonthsFormat], data[ɵLocaleDataIndex.MonthsStandalone]];\n const months = getLastDefinedValue(monthsData, formStyle);\n return getLastDefinedValue(months, width);\n}\n/**\n * Retrieves Gregorian-calendar eras for the given locale.\n * @param locale A locale code for the locale format rules to use.\n * @param width The required character width.\n\n * @returns An array of localized era strings.\n * For example, `[AD, BC]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleEraNames(locale, width) {\n const data = ɵfindLocaleData(locale);\n const erasData = data[ɵLocaleDataIndex.Eras];\n return getLastDefinedValue(erasData, width);\n}\n/**\n * Retrieves the first day of the week for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns A day index number, using the 0-based week-day index for `en-US`\n * (Sunday = 0, Monday = 1, ...).\n * For example, for `fr-FR`, returns 1 to indicate that the first day is Monday.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleFirstDayOfWeek(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.FirstDayOfWeek];\n}\n/**\n * Range of week days that are considered the week-end for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The range of day values, `[startDay, endDay]`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleWeekEndRange(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.WeekendRange];\n}\n/**\n * Retrieves a localized date-value formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDateFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.DateFormat], width);\n}\n/**\n * Retrieves a localized time-value formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n\n * @publicApi\n */\nfunction getLocaleTimeFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.TimeFormat], width);\n}\n/**\n * Retrieves a localized date-time formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDateTimeFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n const dateTimeFormatData = data[ɵLocaleDataIndex.DateTimeFormat];\n return getLastDefinedValue(dateTimeFormatData, width);\n}\n/**\n * Retrieves a localized number symbol that can be used to replace placeholders in number formats.\n * @param locale The locale code.\n * @param symbol The symbol to localize.\n * @returns The character for the localized symbol.\n * @see `NumberSymbol`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleNumberSymbol(locale, symbol) {\n const data = ɵfindLocaleData(locale);\n const res = data[ɵLocaleDataIndex.NumberSymbols][symbol];\n if (typeof res === 'undefined') {\n if (symbol === NumberSymbol.CurrencyDecimal) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Decimal];\n }\n else if (symbol === NumberSymbol.CurrencyGroup) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Group];\n }\n }\n return res;\n}\n/**\n * Retrieves a number format for a given locale.\n *\n * Numbers are formatted using patterns, like `#,###.00`. For example, the pattern `#,###.00`\n * when used to format the number 12345.678 could result in \"12'345,678\". That would happen if the\n * grouping separator for your language is an apostrophe, and the decimal separator is a comma.\n *\n * Important: The characters `.` `,` `0` `#` (and others below) are special placeholders\n * that stand for the decimal separator, and so on, and are NOT real characters.\n * You must NOT \"translate\" the placeholders. For example, don't change `.` to `,` even though in\n * your language the decimal point is written with a comma. The symbols should be replaced by the\n * local equivalents, using the appropriate `NumberSymbol` for your language.\n *\n * Here are the special characters used in number patterns:\n *\n * | Symbol | Meaning |\n * |--------|---------|\n * | . | Replaced automatically by the character used for the decimal point. |\n * | , | Replaced by the \"grouping\" (thousands) separator. |\n * | 0 | Replaced by a digit (or zero if there aren't enough digits). |\n * | # | Replaced by a digit (or nothing if there aren't enough). |\n * | ¤ | Replaced by a currency symbol, such as $ or USD. |\n * | % | Marks a percent format. The % symbol may change position, but must be retained. |\n * | E | Marks a scientific format. The E symbol may change position, but must be retained. |\n * | ' | Special characters used as literal characters are quoted with ASCII single quotes. |\n *\n * @param locale A locale code for the locale format rules to use.\n * @param type The type of numeric value to be formatted (such as `Decimal` or `Currency`.)\n * @returns The localized format string.\n * @see `NumberFormatStyle`\n * @see [CLDR website](http://cldr.unicode.org/translation/number-patterns)\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleNumberFormat(locale, type) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.NumberFormats][type];\n}\n/**\n * Retrieves the symbol used to represent the currency for the main country\n * corresponding to a given locale. For example, '$' for `en-US`.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The localized symbol character,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleCurrencySymbol(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencySymbol] || null;\n}\n/**\n * Retrieves the name of the currency for the main country corresponding\n * to a given locale. For example, 'US Dollar' for `en-US`.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency name,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleCurrencyName(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencyName] || null;\n}\n/**\n * Retrieves the default currency code for the given locale.\n *\n * The default is defined as the first currency which is still in use.\n *\n * @param locale The code of the locale whose currency code we want.\n * @returns The code of the default currency for the given locale.\n *\n * @publicApi\n */\nfunction getLocaleCurrencyCode(locale) {\n return ɵgetLocaleCurrencyCode(locale);\n}\n/**\n * Retrieves the currency values for a given locale.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency values.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n */\nfunction getLocaleCurrencies(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Currencies];\n}\n/**\n * @alias core/ɵgetLocalePluralCase\n * @publicApi\n */\nconst getLocalePluralCase = ɵgetLocalePluralCase;\nfunction checkFullData(data) {\n if (!data[ɵLocaleDataIndex.ExtraData]) {\n throw new Error(`Missing extra locale data for the locale \"${data[ɵLocaleDataIndex\n .LocaleId]}\". Use \"registerLocaleData\" to load new data. See the \"I18n guide\" on angular.io to know more.`);\n }\n}\n/**\n * Retrieves locale-specific rules used to determine which day period to use\n * when more than one period is defined for a locale.\n *\n * There is a rule for each defined day period. The\n * first rule is applied to the first day period and so on.\n * Fall back to AM/PM when no rules are available.\n *\n * A rule can specify a period as time range, or as a single time value.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The rules for the locale, a single time value or array of *from-time, to-time*,\n * or null if no periods are available.\n *\n * @see `getLocaleExtraDayPeriods()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriodRules(locale) {\n const data = ɵfindLocaleData(locale);\n checkFullData(data);\n const rules = data[ɵLocaleDataIndex.ExtraData][2 /* ɵExtraLocaleDataIndex.ExtraDayPeriodsRules */] || [];\n return rules.map((rule) => {\n if (typeof rule === 'string') {\n return extractTime(rule);\n }\n return [extractTime(rule[0]), extractTime(rule[1])];\n });\n}\n/**\n * Retrieves locale-specific day periods, which indicate roughly how a day is broken up\n * in different languages.\n * For example, for `en-US`, periods are morning, noon, afternoon, evening, and midnight.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns The translated day-period strings.\n * @see `getLocaleExtraDayPeriodRules()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriods(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n checkFullData(data);\n const dayPeriodsData = [\n data[ɵLocaleDataIndex.ExtraData][0 /* ɵExtraLocaleDataIndex.ExtraDayPeriodFormats */],\n data[ɵLocaleDataIndex.ExtraData][1 /* ɵExtraLocaleDataIndex.ExtraDayPeriodStandalone */]\n ];\n const dayPeriods = getLastDefinedValue(dayPeriodsData, formStyle) || [];\n return getLastDefinedValue(dayPeriods, width) || [];\n}\n/**\n * Retrieves the writing direction of a specified locale\n * @param locale A locale code for the locale format rules to use.\n * @publicApi\n * @returns 'rtl' or 'ltr'\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n */\nfunction getLocaleDirection(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Directionality];\n}\n/**\n * Retrieves the first value that is defined in an array, going backwards from an index position.\n *\n * To avoid repeating the same data (as when the \"format\" and \"standalone\" forms are the same)\n * add the first value to the locale data arrays, and add other values only if they are different.\n *\n * @param data The data array to retrieve from.\n * @param index A 0-based index into the array to start from.\n * @returns The value immediately before the given index position.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLastDefinedValue(data, index) {\n for (let i = index; i > -1; i--) {\n if (typeof data[i] !== 'undefined') {\n return data[i];\n }\n }\n throw new Error('Locale data API: locale data undefined');\n}\n/**\n * Extracts the hours and minutes from a string like \"15:45\"\n */\nfunction extractTime(time) {\n const [h, m] = time.split(':');\n return { hours: +h, minutes: +m };\n}\n/**\n * Retrieves the currency symbol for a given currency code.\n *\n * For example, for the default `en-US` locale, the code `USD` can\n * be represented by the narrow symbol `$` or the wide symbol `US$`.\n *\n * @param code The currency code.\n * @param format The format, `wide` or `narrow`.\n * @param locale A locale code for the locale format rules to use.\n *\n * @returns The symbol, or the currency code if no symbol is available.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getCurrencySymbol(code, format, locale = 'en') {\n const currency = getLocaleCurrencies(locale)[code] || CURRENCIES_EN[code] || [];\n const symbolNarrow = currency[1 /* ɵCurrencyIndex.SymbolNarrow */];\n if (format === 'narrow' && typeof symbolNarrow === 'string') {\n return symbolNarrow;\n }\n return currency[0 /* ɵCurrencyIndex.Symbol */] || code;\n}\n// Most currencies have cents, that's why the default is 2\nconst DEFAULT_NB_OF_CURRENCY_DIGITS = 2;\n/**\n * Reports the number of decimal digits for a given currency.\n * The value depends upon the presence of cents in that particular currency.\n *\n * @param code The currency code.\n * @returns The number of decimal digits, typically 0 or 2.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getNumberOfCurrencyDigits(code) {\n let digits;\n const currency = CURRENCIES_EN[code];\n if (currency) {\n digits = currency[2 /* ɵCurrencyIndex.NbOfDigits */];\n }\n return typeof digits === 'number' ? digits : DEFAULT_NB_OF_CURRENCY_DIGITS;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ISO8601_DATE_REGEX = /^(\\d{4,})-?(\\d\\d)-?(\\d\\d)(?:T(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d+))?)?)?(Z|([+-])(\\d\\d):?(\\d\\d))?)?$/;\n// 1 2 3 4 5 6 7 8 9 10 11\nconst NAMED_FORMATS = {};\nconst DATE_FORMATS_SPLIT = /((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\\s\\S]*)/;\nvar ZoneWidth;\n(function (ZoneWidth) {\n ZoneWidth[ZoneWidth[\"Short\"] = 0] = \"Short\";\n ZoneWidth[ZoneWidth[\"ShortGMT\"] = 1] = \"ShortGMT\";\n ZoneWidth[ZoneWidth[\"Long\"] = 2] = \"Long\";\n ZoneWidth[ZoneWidth[\"Extended\"] = 3] = \"Extended\";\n})(ZoneWidth || (ZoneWidth = {}));\nvar DateType;\n(function (DateType) {\n DateType[DateType[\"FullYear\"] = 0] = \"FullYear\";\n DateType[DateType[\"Month\"] = 1] = \"Month\";\n DateType[DateType[\"Date\"] = 2] = \"Date\";\n DateType[DateType[\"Hours\"] = 3] = \"Hours\";\n DateType[DateType[\"Minutes\"] = 4] = \"Minutes\";\n DateType[DateType[\"Seconds\"] = 5] = \"Seconds\";\n DateType[DateType[\"FractionalSeconds\"] = 6] = \"FractionalSeconds\";\n DateType[DateType[\"Day\"] = 7] = \"Day\";\n})(DateType || (DateType = {}));\nvar TranslationType;\n(function (TranslationType) {\n TranslationType[TranslationType[\"DayPeriods\"] = 0] = \"DayPeriods\";\n TranslationType[TranslationType[\"Days\"] = 1] = \"Days\";\n TranslationType[TranslationType[\"Months\"] = 2] = \"Months\";\n TranslationType[TranslationType[\"Eras\"] = 3] = \"Eras\";\n})(TranslationType || (TranslationType = {}));\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date according to locale rules.\n *\n * @param value The date to format, as a Date, or a number (milliseconds since UTC epoch)\n * or an [ISO date-time string](https://www.w3.org/TR/NOTE-datetime).\n * @param format The date-time components to include. See `DatePipe` for details.\n * @param locale A locale code for the locale format rules to use.\n * @param timezone The time zone. A time zone offset from GMT (such as `'+0430'`),\n * or a standard UTC/GMT or continental US time zone abbreviation.\n * If not specified, uses host system settings.\n *\n * @returns The formatted date string.\n *\n * @see `DatePipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatDate(value, format, locale, timezone) {\n let date = toDate(value);\n const namedFormat = getNamedFormat(locale, format);\n format = namedFormat || format;\n let parts = [];\n let match;\n while (format) {\n match = DATE_FORMATS_SPLIT.exec(format);\n if (match) {\n parts = parts.concat(match.slice(1));\n const part = parts.pop();\n if (!part) {\n break;\n }\n format = part;\n }\n else {\n parts.push(format);\n break;\n }\n }\n let dateTimezoneOffset = date.getTimezoneOffset();\n if (timezone) {\n dateTimezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n date = convertTimezoneToLocal(date, timezone, true);\n }\n let text = '';\n parts.forEach(value => {\n const dateFormatter = getDateFormatter(value);\n text += dateFormatter ? dateFormatter(date, locale, dateTimezoneOffset) :\n value === '\\'\\'' ? '\\'' :\n value.replace(/(^'|'$)/g, '').replace(/''/g, '\\'');\n });\n return text;\n}\n/**\n * Create a new Date object with the given date value, and the time set to midnight.\n *\n * We cannot use `new Date(year, month, date)` because it maps years between 0 and 99 to 1900-1999.\n * See: https://github.com/angular/angular/issues/40377\n *\n * Note that this function returns a Date object whose time is midnight in the current locale's\n * timezone. In the future we might want to change this to be midnight in UTC, but this would be a\n * considerable breaking change.\n */\nfunction createDate(year, month, date) {\n // The `newDate` is set to midnight (UTC) on January 1st 1970.\n // - In PST this will be December 31st 1969 at 4pm.\n // - In GMT this will be January 1st 1970 at 1am.\n // Note that they even have different years, dates and months!\n const newDate = new Date(0);\n // `setFullYear()` allows years like 0001 to be set correctly. This function does not\n // change the internal time of the date.\n // Consider calling `setFullYear(2019, 8, 20)` (September 20, 2019).\n // - In PST this will now be September 20, 2019 at 4pm\n // - In GMT this will now be September 20, 2019 at 1am\n newDate.setFullYear(year, month, date);\n // We want the final date to be at local midnight, so we reset the time.\n // - In PST this will now be September 20, 2019 at 12am\n // - In GMT this will now be September 20, 2019 at 12am\n newDate.setHours(0, 0, 0);\n return newDate;\n}\nfunction getNamedFormat(locale, format) {\n const localeId = getLocaleId(locale);\n NAMED_FORMATS[localeId] = NAMED_FORMATS[localeId] || {};\n if (NAMED_FORMATS[localeId][format]) {\n return NAMED_FORMATS[localeId][format];\n }\n let formatValue = '';\n switch (format) {\n case 'shortDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Short);\n break;\n case 'mediumDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Medium);\n break;\n case 'longDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Long);\n break;\n case 'fullDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Full);\n break;\n case 'shortTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Short);\n break;\n case 'mediumTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Medium);\n break;\n case 'longTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Long);\n break;\n case 'fullTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Full);\n break;\n case 'short':\n const shortTime = getNamedFormat(locale, 'shortTime');\n const shortDate = getNamedFormat(locale, 'shortDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Short), [shortTime, shortDate]);\n break;\n case 'medium':\n const mediumTime = getNamedFormat(locale, 'mediumTime');\n const mediumDate = getNamedFormat(locale, 'mediumDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Medium), [mediumTime, mediumDate]);\n break;\n case 'long':\n const longTime = getNamedFormat(locale, 'longTime');\n const longDate = getNamedFormat(locale, 'longDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Long), [longTime, longDate]);\n break;\n case 'full':\n const fullTime = getNamedFormat(locale, 'fullTime');\n const fullDate = getNamedFormat(locale, 'fullDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Full), [fullTime, fullDate]);\n break;\n }\n if (formatValue) {\n NAMED_FORMATS[localeId][format] = formatValue;\n }\n return formatValue;\n}\nfunction formatDateTime(str, opt_values) {\n if (opt_values) {\n str = str.replace(/\\{([^}]+)}/g, function (match, key) {\n return (opt_values != null && key in opt_values) ? opt_values[key] : match;\n });\n }\n return str;\n}\nfunction padNumber(num, digits, minusSign = '-', trim, negWrap) {\n let neg = '';\n if (num < 0 || (negWrap && num <= 0)) {\n if (negWrap) {\n num = -num + 1;\n }\n else {\n num = -num;\n neg = minusSign;\n }\n }\n let strNum = String(num);\n while (strNum.length < digits) {\n strNum = '0' + strNum;\n }\n if (trim) {\n strNum = strNum.slice(strNum.length - digits);\n }\n return neg + strNum;\n}\nfunction formatFractionalSeconds(milliseconds, digits) {\n const strMs = padNumber(milliseconds, 3);\n return strMs.substring(0, digits);\n}\n/**\n * Returns a date formatter that transforms a date into its locale digit representation\n */\nfunction dateGetter(name, size, offset = 0, trim = false, negWrap = false) {\n return function (date, locale) {\n let part = getDatePart(name, date);\n if (offset > 0 || part > -offset) {\n part += offset;\n }\n if (name === DateType.Hours) {\n if (part === 0 && offset === -12) {\n part = 12;\n }\n }\n else if (name === DateType.FractionalSeconds) {\n return formatFractionalSeconds(part, size);\n }\n const localeMinus = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n return padNumber(part, size, localeMinus, trim, negWrap);\n };\n}\nfunction getDatePart(part, date) {\n switch (part) {\n case DateType.FullYear:\n return date.getFullYear();\n case DateType.Month:\n return date.getMonth();\n case DateType.Date:\n return date.getDate();\n case DateType.Hours:\n return date.getHours();\n case DateType.Minutes:\n return date.getMinutes();\n case DateType.Seconds:\n return date.getSeconds();\n case DateType.FractionalSeconds:\n return date.getMilliseconds();\n case DateType.Day:\n return date.getDay();\n default:\n throw new Error(`Unknown DateType value \"${part}\".`);\n }\n}\n/**\n * Returns a date formatter that transforms a date into its locale string representation\n */\nfunction dateStrGetter(name, width, form = FormStyle.Format, extended = false) {\n return function (date, locale) {\n return getDateTranslation(date, locale, name, width, form, extended);\n };\n}\n/**\n * Returns the locale translation of a date for a given form, type and width\n */\nfunction getDateTranslation(date, locale, name, width, form, extended) {\n switch (name) {\n case TranslationType.Months:\n return getLocaleMonthNames(locale, form, width)[date.getMonth()];\n case TranslationType.Days:\n return getLocaleDayNames(locale, form, width)[date.getDay()];\n case TranslationType.DayPeriods:\n const currentHours = date.getHours();\n const currentMinutes = date.getMinutes();\n if (extended) {\n const rules = getLocaleExtraDayPeriodRules(locale);\n const dayPeriods = getLocaleExtraDayPeriods(locale, form, width);\n const index = rules.findIndex(rule => {\n if (Array.isArray(rule)) {\n // morning, afternoon, evening, night\n const [from, to] = rule;\n const afterFrom = currentHours >= from.hours && currentMinutes >= from.minutes;\n const beforeTo = (currentHours < to.hours ||\n (currentHours === to.hours && currentMinutes < to.minutes));\n // We must account for normal rules that span a period during the day (e.g. 6am-9am)\n // where `from` is less (earlier) than `to`. But also rules that span midnight (e.g.\n // 10pm - 5am) where `from` is greater (later!) than `to`.\n //\n // In the first case the current time must be BOTH after `from` AND before `to`\n // (e.g. 8am is after 6am AND before 10am).\n //\n // In the second case the current time must be EITHER after `from` OR before `to`\n // (e.g. 4am is before 5am but not after 10pm; and 11pm is not before 5am but it is\n // after 10pm).\n if (from.hours < to.hours) {\n if (afterFrom && beforeTo) {\n return true;\n }\n }\n else if (afterFrom || beforeTo) {\n return true;\n }\n }\n else { // noon or midnight\n if (rule.hours === currentHours && rule.minutes === currentMinutes) {\n return true;\n }\n }\n return false;\n });\n if (index !== -1) {\n return dayPeriods[index];\n }\n }\n // if no rules for the day periods, we use am/pm by default\n return getLocaleDayPeriods(locale, form, width)[currentHours < 12 ? 0 : 1];\n case TranslationType.Eras:\n return getLocaleEraNames(locale, width)[date.getFullYear() <= 0 ? 0 : 1];\n default:\n // This default case is not needed by TypeScript compiler, as the switch is exhaustive.\n // However Closure Compiler does not understand that and reports an error in typed mode.\n // The `throw new Error` below works around the problem, and the unexpected: never variable\n // makes sure tsc still checks this code is unreachable.\n const unexpected = name;\n throw new Error(`unexpected translation type ${unexpected}`);\n }\n}\n/**\n * Returns a date formatter that transforms a date and an offset into a timezone with ISO8601 or\n * GMT format depending on the width (eg: short = +0430, short:GMT = GMT+4, long = GMT+04:30,\n * extended = +04:30)\n */\nfunction timeZoneGetter(width) {\n return function (date, locale, offset) {\n const zone = -1 * offset;\n const minusSign = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n const hours = zone > 0 ? Math.floor(zone / 60) : Math.ceil(zone / 60);\n switch (width) {\n case ZoneWidth.Short:\n return ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n case ZoneWidth.ShortGMT:\n return 'GMT' + ((zone >= 0) ? '+' : '') + padNumber(hours, 1, minusSign);\n case ZoneWidth.Long:\n return 'GMT' + ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n case ZoneWidth.Extended:\n if (offset === 0) {\n return 'Z';\n }\n else {\n return ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n }\n default:\n throw new Error(`Unknown zone width \"${width}\"`);\n }\n };\n}\nconst JANUARY = 0;\nconst THURSDAY = 4;\nfunction getFirstThursdayOfYear(year) {\n const firstDayOfYear = createDate(year, JANUARY, 1).getDay();\n return createDate(year, 0, 1 + ((firstDayOfYear <= THURSDAY) ? THURSDAY : THURSDAY + 7) - firstDayOfYear);\n}\nfunction getThursdayThisWeek(datetime) {\n return createDate(datetime.getFullYear(), datetime.getMonth(), datetime.getDate() + (THURSDAY - datetime.getDay()));\n}\nfunction weekGetter(size, monthBased = false) {\n return function (date, locale) {\n let result;\n if (monthBased) {\n const nbDaysBefore1stDayOfMonth = new Date(date.getFullYear(), date.getMonth(), 1).getDay() - 1;\n const today = date.getDate();\n result = 1 + Math.floor((today + nbDaysBefore1stDayOfMonth) / 7);\n }\n else {\n const thisThurs = getThursdayThisWeek(date);\n // Some days of a year are part of next year according to ISO 8601.\n // Compute the firstThurs from the year of this week's Thursday\n const firstThurs = getFirstThursdayOfYear(thisThurs.getFullYear());\n const diff = thisThurs.getTime() - firstThurs.getTime();\n result = 1 + Math.round(diff / 6.048e8); // 6.048e8 ms per week\n }\n return padNumber(result, size, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n };\n}\n/**\n * Returns a date formatter that provides the week-numbering year for the input date.\n */\nfunction weekNumberingYearGetter(size, trim = false) {\n return function (date, locale) {\n const thisThurs = getThursdayThisWeek(date);\n const weekNumberingYear = thisThurs.getFullYear();\n return padNumber(weekNumberingYear, size, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign), trim);\n };\n}\nconst DATE_FORMATS = {};\n// Based on CLDR formats:\n// See complete list: http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n// See also explanations: http://cldr.unicode.org/translation/date-time\n// TODO(ocombe): support all missing cldr formats: U, Q, D, F, e, j, J, C, A, v, V, X, x\nfunction getDateFormatter(format) {\n if (DATE_FORMATS[format]) {\n return DATE_FORMATS[format];\n }\n let formatter;\n switch (format) {\n // Era name (AD/BC)\n case 'G':\n case 'GG':\n case 'GGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Abbreviated);\n break;\n case 'GGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Wide);\n break;\n case 'GGGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Narrow);\n break;\n // 1 digit representation of the year, e.g. (AD 1 => 1, AD 199 => 199)\n case 'y':\n formatter = dateGetter(DateType.FullYear, 1, 0, false, true);\n break;\n // 2 digit representation of the year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yy':\n formatter = dateGetter(DateType.FullYear, 2, 0, true, true);\n break;\n // 3 digit representation of the year, padded (000-999). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yyy':\n formatter = dateGetter(DateType.FullYear, 3, 0, false, true);\n break;\n // 4 digit representation of the year (e.g. AD 1 => 0001, AD 2010 => 2010)\n case 'yyyy':\n formatter = dateGetter(DateType.FullYear, 4, 0, false, true);\n break;\n // 1 digit representation of the week-numbering year, e.g. (AD 1 => 1, AD 199 => 199)\n case 'Y':\n formatter = weekNumberingYearGetter(1);\n break;\n // 2 digit representation of the week-numbering year, padded (00-99). (e.g. AD 2001 => 01, AD\n // 2010 => 10)\n case 'YY':\n formatter = weekNumberingYearGetter(2, true);\n break;\n // 3 digit representation of the week-numbering year, padded (000-999). (e.g. AD 1 => 001, AD\n // 2010 => 2010)\n case 'YYY':\n formatter = weekNumberingYearGetter(3);\n break;\n // 4 digit representation of the week-numbering year (e.g. AD 1 => 0001, AD 2010 => 2010)\n case 'YYYY':\n formatter = weekNumberingYearGetter(4);\n break;\n // Month of the year (1-12), numeric\n case 'M':\n case 'L':\n formatter = dateGetter(DateType.Month, 1, 1);\n break;\n case 'MM':\n case 'LL':\n formatter = dateGetter(DateType.Month, 2, 1);\n break;\n // Month of the year (January, ...), string, format\n case 'MMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated);\n break;\n case 'MMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Wide);\n break;\n case 'MMMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Narrow);\n break;\n // Month of the year (January, ...), string, standalone\n case 'LLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'LLLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'LLLLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Narrow, FormStyle.Standalone);\n break;\n // Week of the year (1, ... 52)\n case 'w':\n formatter = weekGetter(1);\n break;\n case 'ww':\n formatter = weekGetter(2);\n break;\n // Week of the month (1, ...)\n case 'W':\n formatter = weekGetter(1, true);\n break;\n // Day of the month (1-31)\n case 'd':\n formatter = dateGetter(DateType.Date, 1);\n break;\n case 'dd':\n formatter = dateGetter(DateType.Date, 2);\n break;\n // Day of the Week StandAlone (1, 1, Mon, Monday, M, Mo)\n case 'c':\n case 'cc':\n formatter = dateGetter(DateType.Day, 1);\n break;\n case 'ccc':\n formatter =\n dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'cccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'ccccc':\n formatter =\n dateStrGetter(TranslationType.Days, TranslationWidth.Narrow, FormStyle.Standalone);\n break;\n case 'cccccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short, FormStyle.Standalone);\n break;\n // Day of the Week\n case 'E':\n case 'EE':\n case 'EEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated);\n break;\n case 'EEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide);\n break;\n case 'EEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Narrow);\n break;\n case 'EEEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short);\n break;\n // Generic period of the day (am-pm)\n case 'a':\n case 'aa':\n case 'aaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated);\n break;\n case 'aaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide);\n break;\n case 'aaaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow);\n break;\n // Extended period of the day (midnight, at night, ...), standalone\n case 'b':\n case 'bb':\n case 'bbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Standalone, true);\n break;\n case 'bbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Standalone, true);\n break;\n case 'bbbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Standalone, true);\n break;\n // Extended period of the day (midnight, night, ...), standalone\n case 'B':\n case 'BB':\n case 'BBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Format, true);\n break;\n case 'BBBB':\n formatter =\n dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Format, true);\n break;\n case 'BBBBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Format, true);\n break;\n // Hour in AM/PM, (1-12)\n case 'h':\n formatter = dateGetter(DateType.Hours, 1, -12);\n break;\n case 'hh':\n formatter = dateGetter(DateType.Hours, 2, -12);\n break;\n // Hour of the day (0-23)\n case 'H':\n formatter = dateGetter(DateType.Hours, 1);\n break;\n // Hour in day, padded (00-23)\n case 'HH':\n formatter = dateGetter(DateType.Hours, 2);\n break;\n // Minute of the hour (0-59)\n case 'm':\n formatter = dateGetter(DateType.Minutes, 1);\n break;\n case 'mm':\n formatter = dateGetter(DateType.Minutes, 2);\n break;\n // Second of the minute (0-59)\n case 's':\n formatter = dateGetter(DateType.Seconds, 1);\n break;\n case 'ss':\n formatter = dateGetter(DateType.Seconds, 2);\n break;\n // Fractional second\n case 'S':\n formatter = dateGetter(DateType.FractionalSeconds, 1);\n break;\n case 'SS':\n formatter = dateGetter(DateType.FractionalSeconds, 2);\n break;\n case 'SSS':\n formatter = dateGetter(DateType.FractionalSeconds, 3);\n break;\n // Timezone ISO8601 short format (-0430)\n case 'Z':\n case 'ZZ':\n case 'ZZZ':\n formatter = timeZoneGetter(ZoneWidth.Short);\n break;\n // Timezone ISO8601 extended format (-04:30)\n case 'ZZZZZ':\n formatter = timeZoneGetter(ZoneWidth.Extended);\n break;\n // Timezone GMT short format (GMT+4)\n case 'O':\n case 'OO':\n case 'OOO':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'z':\n case 'zz':\n case 'zzz':\n formatter = timeZoneGetter(ZoneWidth.ShortGMT);\n break;\n // Timezone GMT long format (GMT+0430)\n case 'OOOO':\n case 'ZZZZ':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'zzzz':\n formatter = timeZoneGetter(ZoneWidth.Long);\n break;\n default:\n return null;\n }\n DATE_FORMATS[format] = formatter;\n return formatter;\n}\nfunction timezoneToOffset(timezone, fallback) {\n // Support: IE 11 only, Edge 13-15+\n // IE/Edge do not \"understand\" colon (`:`) in timezone\n timezone = timezone.replace(/:/g, '');\n const requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000;\n return isNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset;\n}\nfunction addDateMinutes(date, minutes) {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + minutes);\n return date;\n}\nfunction convertTimezoneToLocal(date, timezone, reverse) {\n const reverseValue = reverse ? -1 : 1;\n const dateTimezoneOffset = date.getTimezoneOffset();\n const timezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n return addDateMinutes(date, reverseValue * (timezoneOffset - dateTimezoneOffset));\n}\n/**\n * Converts a value to date.\n *\n * Supported input formats:\n * - `Date`\n * - number: timestamp\n * - string: numeric (e.g. \"1234\"), ISO and date strings in a format supported by\n * [Date.parse()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\n * Note: ISO strings without time return a date without timeoffset.\n *\n * Throws if unable to convert to a date.\n */\nfunction toDate(value) {\n if (isDate(value)) {\n return value;\n }\n if (typeof value === 'number' && !isNaN(value)) {\n return new Date(value);\n }\n if (typeof value === 'string') {\n value = value.trim();\n if (/^(\\d{4}(-\\d{1,2}(-\\d{1,2})?)?)$/.test(value)) {\n /* For ISO Strings without time the day, month and year must be extracted from the ISO String\n before Date creation to avoid time offset and errors in the new Date.\n If we only replace '-' with ',' in the ISO String (\"2015,01,01\"), and try to create a new\n date, some browsers (e.g. IE 9) will throw an invalid Date error.\n If we leave the '-' (\"2015-01-01\") and try to create a new Date(\"2015-01-01\") the timeoffset\n is applied.\n Note: ISO months are 0 for January, 1 for February, ... */\n const [y, m = 1, d = 1] = value.split('-').map((val) => +val);\n return createDate(y, m - 1, d);\n }\n const parsedNb = parseFloat(value);\n // any string that only contains numbers, like \"1234\" but not like \"1234hello\"\n if (!isNaN(value - parsedNb)) {\n return new Date(parsedNb);\n }\n let match;\n if (match = value.match(ISO8601_DATE_REGEX)) {\n return isoStringToDate(match);\n }\n }\n const date = new Date(value);\n if (!isDate(date)) {\n throw new Error(`Unable to convert \"${value}\" into a date`);\n }\n return date;\n}\n/**\n * Converts a date in ISO8601 to a Date.\n * Used instead of `Date.parse` because of browser discrepancies.\n */\nfunction isoStringToDate(match) {\n const date = new Date(0);\n let tzHour = 0;\n let tzMin = 0;\n // match[8] means that the string contains \"Z\" (UTC) or a timezone like \"+01:00\" or \"+0100\"\n const dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear;\n const timeSetter = match[8] ? date.setUTCHours : date.setHours;\n // if there is a timezone defined like \"+01:00\" or \"+0100\"\n if (match[9]) {\n tzHour = Number(match[9] + match[10]);\n tzMin = Number(match[9] + match[11]);\n }\n dateSetter.call(date, Number(match[1]), Number(match[2]) - 1, Number(match[3]));\n const h = Number(match[4] || 0) - tzHour;\n const m = Number(match[5] || 0) - tzMin;\n const s = Number(match[6] || 0);\n // The ECMAScript specification (https://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.11)\n // defines that `DateTime` milliseconds should always be rounded down, so that `999.9ms`\n // becomes `999ms`.\n const ms = Math.floor(parseFloat('0.' + (match[7] || 0)) * 1000);\n timeSetter.call(date, h, m, s, ms);\n return date;\n}\nfunction isDate(value) {\n return value instanceof Date && !isNaN(value.valueOf());\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NUMBER_FORMAT_REGEXP = /^(\\d+)?\\.((\\d+)(-(\\d+))?)?$/;\nconst MAX_DIGITS = 22;\nconst DECIMAL_SEP = '.';\nconst ZERO_CHAR = '0';\nconst PATTERN_SEP = ';';\nconst GROUP_SEP = ',';\nconst DIGIT_CHAR = '#';\nconst CURRENCY_CHAR = '¤';\nconst PERCENT_CHAR = '%';\n/**\n * Transforms a number to a locale string based on a style and a format.\n */\nfunction formatNumberToLocaleString(value, pattern, locale, groupSymbol, decimalSymbol, digitsInfo, isPercent = false) {\n let formattedText = '';\n let isZero = false;\n if (!isFinite(value)) {\n formattedText = getLocaleNumberSymbol(locale, NumberSymbol.Infinity);\n }\n else {\n let parsedNumber = parseNumber(value);\n if (isPercent) {\n parsedNumber = toPercent(parsedNumber);\n }\n let minInt = pattern.minInt;\n let minFraction = pattern.minFrac;\n let maxFraction = pattern.maxFrac;\n if (digitsInfo) {\n const parts = digitsInfo.match(NUMBER_FORMAT_REGEXP);\n if (parts === null) {\n throw new Error(`${digitsInfo} is not a valid digit info`);\n }\n const minIntPart = parts[1];\n const minFractionPart = parts[3];\n const maxFractionPart = parts[5];\n if (minIntPart != null) {\n minInt = parseIntAutoRadix(minIntPart);\n }\n if (minFractionPart != null) {\n minFraction = parseIntAutoRadix(minFractionPart);\n }\n if (maxFractionPart != null) {\n maxFraction = parseIntAutoRadix(maxFractionPart);\n }\n else if (minFractionPart != null && minFraction > maxFraction) {\n maxFraction = minFraction;\n }\n }\n roundNumber(parsedNumber, minFraction, maxFraction);\n let digits = parsedNumber.digits;\n let integerLen = parsedNumber.integerLen;\n const exponent = parsedNumber.exponent;\n let decimals = [];\n isZero = digits.every(d => !d);\n // pad zeros for small numbers\n for (; integerLen < minInt; integerLen++) {\n digits.unshift(0);\n }\n // pad zeros for small numbers\n for (; integerLen < 0; integerLen++) {\n digits.unshift(0);\n }\n // extract decimals digits\n if (integerLen > 0) {\n decimals = digits.splice(integerLen, digits.length);\n }\n else {\n decimals = digits;\n digits = [0];\n }\n // format the integer digits with grouping separators\n const groups = [];\n if (digits.length >= pattern.lgSize) {\n groups.unshift(digits.splice(-pattern.lgSize, digits.length).join(''));\n }\n while (digits.length > pattern.gSize) {\n groups.unshift(digits.splice(-pattern.gSize, digits.length).join(''));\n }\n if (digits.length) {\n groups.unshift(digits.join(''));\n }\n formattedText = groups.join(getLocaleNumberSymbol(locale, groupSymbol));\n // append the decimal digits\n if (decimals.length) {\n formattedText += getLocaleNumberSymbol(locale, decimalSymbol) + decimals.join('');\n }\n if (exponent) {\n formattedText += getLocaleNumberSymbol(locale, NumberSymbol.Exponential) + '+' + exponent;\n }\n }\n if (value < 0 && !isZero) {\n formattedText = pattern.negPre + formattedText + pattern.negSuf;\n }\n else {\n formattedText = pattern.posPre + formattedText + pattern.posSuf;\n }\n return formattedText;\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as currency using locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param currency A string containing the currency symbol or its name,\n * such as \"$\" or \"Canadian Dollar\". Used in output string, but does not affect the operation\n * of the function.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)\n * currency code, such as `USD` for the US dollar and `EUR` for the euro.\n * Used to determine the number of digits in the decimal part.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted currency value.\n *\n * @see `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatCurrency(value, locale, currency, currencyCode, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Currency);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n pattern.minFrac = getNumberOfCurrencyDigits(currencyCode);\n pattern.maxFrac = pattern.minFrac;\n const res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.CurrencyGroup, NumberSymbol.CurrencyDecimal, digitsInfo);\n return res\n .replace(CURRENCY_CHAR, currency)\n // if we have 2 time the currency character, the second one is ignored\n .replace(CURRENCY_CHAR, '')\n // If there is a spacing between currency character and the value and\n // the currency character is suppressed by passing an empty string, the\n // spacing character would remain as part of the string. Then we\n // should remove it.\n .trim();\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as a percentage according to locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted percentage value.\n *\n * @see `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n * @publicApi\n *\n */\nfunction formatPercent(value, locale, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Percent);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n const res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo, true);\n return res.replace(new RegExp(PERCENT_CHAR, 'g'), getLocaleNumberSymbol(locale, NumberSymbol.PercentSign));\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as text, with group sizing, separator, and other\n * parameters based on the locale.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted text string.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatNumber(value, locale, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Decimal);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n return formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo);\n}\nfunction parseNumberFormat(format, minusSign = '-') {\n const p = {\n minInt: 1,\n minFrac: 0,\n maxFrac: 0,\n posPre: '',\n posSuf: '',\n negPre: '',\n negSuf: '',\n gSize: 0,\n lgSize: 0\n };\n const patternParts = format.split(PATTERN_SEP);\n const positive = patternParts[0];\n const negative = patternParts[1];\n const positiveParts = positive.indexOf(DECIMAL_SEP) !== -1 ?\n positive.split(DECIMAL_SEP) :\n [\n positive.substring(0, positive.lastIndexOf(ZERO_CHAR) + 1),\n positive.substring(positive.lastIndexOf(ZERO_CHAR) + 1)\n ], integer = positiveParts[0], fraction = positiveParts[1] || '';\n p.posPre = integer.substring(0, integer.indexOf(DIGIT_CHAR));\n for (let i = 0; i < fraction.length; i++) {\n const ch = fraction.charAt(i);\n if (ch === ZERO_CHAR) {\n p.minFrac = p.maxFrac = i + 1;\n }\n else if (ch === DIGIT_CHAR) {\n p.maxFrac = i + 1;\n }\n else {\n p.posSuf += ch;\n }\n }\n const groups = integer.split(GROUP_SEP);\n p.gSize = groups[1] ? groups[1].length : 0;\n p.lgSize = (groups[2] || groups[1]) ? (groups[2] || groups[1]).length : 0;\n if (negative) {\n const trunkLen = positive.length - p.posPre.length - p.posSuf.length, pos = negative.indexOf(DIGIT_CHAR);\n p.negPre = negative.substring(0, pos).replace(/'/g, '');\n p.negSuf = negative.slice(pos + trunkLen).replace(/'/g, '');\n }\n else {\n p.negPre = minusSign + p.posPre;\n p.negSuf = p.posSuf;\n }\n return p;\n}\n// Transforms a parsed number into a percentage by multiplying it by 100\nfunction toPercent(parsedNumber) {\n // if the number is 0, don't do anything\n if (parsedNumber.digits[0] === 0) {\n return parsedNumber;\n }\n // Getting the current number of decimals\n const fractionLen = parsedNumber.digits.length - parsedNumber.integerLen;\n if (parsedNumber.exponent) {\n parsedNumber.exponent += 2;\n }\n else {\n if (fractionLen === 0) {\n parsedNumber.digits.push(0, 0);\n }\n else if (fractionLen === 1) {\n parsedNumber.digits.push(0);\n }\n parsedNumber.integerLen += 2;\n }\n return parsedNumber;\n}\n/**\n * Parses a number.\n * Significant bits of this parse algorithm came from https://github.com/MikeMcl/big.js/\n */\nfunction parseNumber(num) {\n let numStr = Math.abs(num) + '';\n let exponent = 0, digits, integerLen;\n let i, j, zeros;\n // Decimal point?\n if ((integerLen = numStr.indexOf(DECIMAL_SEP)) > -1) {\n numStr = numStr.replace(DECIMAL_SEP, '');\n }\n // Exponential form?\n if ((i = numStr.search(/e/i)) > 0) {\n // Work out the exponent.\n if (integerLen < 0)\n integerLen = i;\n integerLen += +numStr.slice(i + 1);\n numStr = numStr.substring(0, i);\n }\n else if (integerLen < 0) {\n // There was no decimal point or exponent so it is an integer.\n integerLen = numStr.length;\n }\n // Count the number of leading zeros.\n for (i = 0; numStr.charAt(i) === ZERO_CHAR; i++) { /* empty */\n }\n if (i === (zeros = numStr.length)) {\n // The digits are all zero.\n digits = [0];\n integerLen = 1;\n }\n else {\n // Count the number of trailing zeros\n zeros--;\n while (numStr.charAt(zeros) === ZERO_CHAR)\n zeros--;\n // Trailing zeros are insignificant so ignore them\n integerLen -= i;\n digits = [];\n // Convert string to array of digits without leading/trailing zeros.\n for (j = 0; i <= zeros; i++, j++) {\n digits[j] = Number(numStr.charAt(i));\n }\n }\n // If the number overflows the maximum allowed digits then use an exponent.\n if (integerLen > MAX_DIGITS) {\n digits = digits.splice(0, MAX_DIGITS - 1);\n exponent = integerLen - 1;\n integerLen = 1;\n }\n return { digits, exponent, integerLen };\n}\n/**\n * Round the parsed number to the specified number of decimal places\n * This function changes the parsedNumber in-place\n */\nfunction roundNumber(parsedNumber, minFrac, maxFrac) {\n if (minFrac > maxFrac) {\n throw new Error(`The minimum number of digits after fraction (${minFrac}) is higher than the maximum (${maxFrac}).`);\n }\n let digits = parsedNumber.digits;\n let fractionLen = digits.length - parsedNumber.integerLen;\n const fractionSize = Math.min(Math.max(minFrac, fractionLen), maxFrac);\n // The index of the digit to where rounding is to occur\n let roundAt = fractionSize + parsedNumber.integerLen;\n let digit = digits[roundAt];\n if (roundAt > 0) {\n // Drop fractional digits beyond `roundAt`\n digits.splice(Math.max(parsedNumber.integerLen, roundAt));\n // Set non-fractional digits beyond `roundAt` to 0\n for (let j = roundAt; j < digits.length; j++) {\n digits[j] = 0;\n }\n }\n else {\n // We rounded to zero so reset the parsedNumber\n fractionLen = Math.max(0, fractionLen);\n parsedNumber.integerLen = 1;\n digits.length = Math.max(1, roundAt = fractionSize + 1);\n digits[0] = 0;\n for (let i = 1; i < roundAt; i++)\n digits[i] = 0;\n }\n if (digit >= 5) {\n if (roundAt - 1 < 0) {\n for (let k = 0; k > roundAt; k--) {\n digits.unshift(0);\n parsedNumber.integerLen++;\n }\n digits.unshift(1);\n parsedNumber.integerLen++;\n }\n else {\n digits[roundAt - 1]++;\n }\n }\n // Pad out with zeros to get the required fraction length\n for (; fractionLen < Math.max(0, fractionSize); fractionLen++)\n digits.push(0);\n let dropTrailingZeros = fractionSize !== 0;\n // Minimal length = nb of decimals required + current nb of integers\n // Any number besides that is optional and can be removed if it's a trailing 0\n const minLen = minFrac + parsedNumber.integerLen;\n // Do any carrying, e.g. a digit was rounded up to 10\n const carry = digits.reduceRight(function (carry, d, i, digits) {\n d = d + carry;\n digits[i] = d < 10 ? d : d - 10; // d % 10\n if (dropTrailingZeros) {\n // Do not keep meaningless fractional trailing zeros (e.g. 15.52000 --> 15.52)\n if (digits[i] === 0 && i >= minLen) {\n digits.pop();\n }\n else {\n dropTrailingZeros = false;\n }\n }\n return d >= 10 ? 1 : 0; // Math.floor(d / 10);\n }, 0);\n if (carry) {\n digits.unshift(carry);\n parsedNumber.integerLen++;\n }\n}\nfunction parseIntAutoRadix(text) {\n const result = parseInt(text);\n if (isNaN(result)) {\n throw new Error('Invalid integer literal when parsing ' + text);\n }\n return result;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @publicApi\n */\nclass NgLocalization {\n}\nNgLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocalization, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: (locale) => new NgLocaleLocalization(locale),\n deps: [LOCALE_ID],\n }]\n }] });\n/**\n * Returns the plural category for a given value.\n * - \"=value\" when the case exists,\n * - the plural category otherwise\n */\nfunction getPluralCategory(value, cases, ngLocalization, locale) {\n let key = `=${value}`;\n if (cases.indexOf(key) > -1) {\n return key;\n }\n key = ngLocalization.getPluralCategory(value, locale);\n if (cases.indexOf(key) > -1) {\n return key;\n }\n if (cases.indexOf('other') > -1) {\n return 'other';\n }\n throw new Error(`No plural message found for value \"${value}\"`);\n}\n/**\n * Returns the plural case based on the locale\n *\n * @publicApi\n */\nclass NgLocaleLocalization extends NgLocalization {\n constructor(locale) {\n super();\n this.locale = locale;\n }\n getPluralCategory(value, locale) {\n const plural = getLocalePluralCase(locale || this.locale)(value);\n switch (plural) {\n case Plural.Zero:\n return 'zero';\n case Plural.One:\n return 'one';\n case Plural.Two:\n return 'two';\n case Plural.Few:\n return 'few';\n case Plural.Many:\n return 'many';\n default:\n return 'other';\n }\n }\n}\nNgLocaleLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nNgLocaleLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocaleLocalization });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocaleLocalization, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Register global data to be used internally by Angular. See the\n * [\"I18n guide\"](guide/i18n-common-format-data-locale) to know how to import additional locale\n * data.\n *\n * The signature registerLocaleData(data: any, extraData?: any) is deprecated since v5.1\n *\n * @publicApi\n */\nfunction registerLocaleData(data, localeId, extraData) {\n return ɵregisterLocaleData(data, localeId, extraData);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction parseCookieValue(cookieStr, name) {\n name = encodeURIComponent(name);\n for (const cookie of cookieStr.split(';')) {\n const eqIndex = cookie.indexOf('=');\n const [cookieName, cookieValue] = eqIndex == -1 ? [cookie, ''] : [cookie.slice(0, eqIndex), cookie.slice(eqIndex + 1)];\n if (cookieName.trim() === name) {\n return decodeURIComponent(cookieValue);\n }\n }\n return null;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * ...\n *\n * ...\n *\n * ...\n *\n * ...\n *\n * ...\n * ```\n *\n * @description\n *\n * Adds and removes CSS classes on an HTML element.\n *\n * The CSS classes are updated as follows, depending on the type of the expression evaluation:\n * - `string` - the CSS classes listed in the string (space delimited) are added,\n * - `Array` - the CSS classes declared as Array elements are added,\n * - `Object` - keys are CSS classes that get added when the expression given in the value\n * evaluates to a truthy value, otherwise they are removed.\n *\n * @publicApi\n */\nclass NgClass {\n constructor(_iterableDiffers, _keyValueDiffers, _ngEl, _renderer) {\n this._iterableDiffers = _iterableDiffers;\n this._keyValueDiffers = _keyValueDiffers;\n this._ngEl = _ngEl;\n this._renderer = _renderer;\n this._iterableDiffer = null;\n this._keyValueDiffer = null;\n this._initialClasses = [];\n this._rawClass = null;\n }\n set klass(value) {\n this._removeClasses(this._initialClasses);\n this._initialClasses = typeof value === 'string' ? value.split(/\\s+/) : [];\n this._applyClasses(this._initialClasses);\n this._applyClasses(this._rawClass);\n }\n set ngClass(value) {\n this._removeClasses(this._rawClass);\n this._applyClasses(this._initialClasses);\n this._iterableDiffer = null;\n this._keyValueDiffer = null;\n this._rawClass = typeof value === 'string' ? value.split(/\\s+/) : value;\n if (this._rawClass) {\n if (ɵisListLikeIterable(this._rawClass)) {\n this._iterableDiffer = this._iterableDiffers.find(this._rawClass).create();\n }\n else {\n this._keyValueDiffer = this._keyValueDiffers.find(this._rawClass).create();\n }\n }\n }\n ngDoCheck() {\n if (this._iterableDiffer) {\n const iterableChanges = this._iterableDiffer.diff(this._rawClass);\n if (iterableChanges) {\n this._applyIterableChanges(iterableChanges);\n }\n }\n else if (this._keyValueDiffer) {\n const keyValueChanges = this._keyValueDiffer.diff(this._rawClass);\n if (keyValueChanges) {\n this._applyKeyValueChanges(keyValueChanges);\n }\n }\n }\n _applyKeyValueChanges(changes) {\n changes.forEachAddedItem((record) => this._toggleClass(record.key, record.currentValue));\n changes.forEachChangedItem((record) => this._toggleClass(record.key, record.currentValue));\n changes.forEachRemovedItem((record) => {\n if (record.previousValue) {\n this._toggleClass(record.key, false);\n }\n });\n }\n _applyIterableChanges(changes) {\n changes.forEachAddedItem((record) => {\n if (typeof record.item === 'string') {\n this._toggleClass(record.item, true);\n }\n else {\n throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${ɵstringify(record.item)}`);\n }\n });\n changes.forEachRemovedItem((record) => this._toggleClass(record.item, false));\n }\n /**\n * Applies a collection of CSS classes to the DOM element.\n *\n * For argument of type Set and Array CSS class names contained in those collections are always\n * added.\n * For argument of type Map CSS class name in the map's key is toggled based on the value (added\n * for truthy and removed for falsy).\n */\n _applyClasses(rawClassVal) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n rawClassVal.forEach((klass) => this._toggleClass(klass, true));\n }\n else {\n Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, !!rawClassVal[klass]));\n }\n }\n }\n /**\n * Removes a collection of CSS classes from the DOM element. This is mostly useful for cleanup\n * purposes.\n */\n _removeClasses(rawClassVal) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n rawClassVal.forEach((klass) => this._toggleClass(klass, false));\n }\n else {\n Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, false));\n }\n }\n }\n _toggleClass(klass, enabled) {\n klass = klass.trim();\n if (klass) {\n klass.split(/\\s+/g).forEach(klass => {\n if (enabled) {\n this._renderer.addClass(this._ngEl.nativeElement, klass);\n }\n else {\n this._renderer.removeClass(this._ngEl.nativeElement, klass);\n }\n });\n }\n }\n}\nNgClass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgClass, deps: [{ token: i0.IterableDiffers }, { token: i0.KeyValueDiffers }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nNgClass.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgClass, isStandalone: true, selector: \"[ngClass]\", inputs: { klass: [\"class\", \"klass\"], ngClass: \"ngClass\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgClass, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngClass]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.IterableDiffers }, { type: i0.KeyValueDiffers }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { klass: [{\n type: Input,\n args: ['class']\n }], ngClass: [{\n type: Input,\n args: ['ngClass']\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Instantiates a {@link Component} type and inserts its Host View into the current View.\n * `NgComponentOutlet` provides a declarative approach for dynamic component creation.\n *\n * `NgComponentOutlet` requires a component type, if a falsy value is set the view will clear and\n * any existing component will be destroyed.\n *\n * @usageNotes\n *\n * ### Fine tune control\n *\n * You can control the component creation process by using the following optional attributes:\n *\n * * `ngComponentOutletInjector`: Optional custom {@link Injector} that will be used as parent for\n * the Component. Defaults to the injector of the current view container.\n *\n * * `ngComponentOutletContent`: Optional list of projectable nodes to insert into the content\n * section of the component, if it exists.\n *\n * * `ngComponentOutletNgModule`: Optional NgModule class reference to allow loading another\n * module dynamically, then loading a component from that module.\n *\n * * `ngComponentOutletNgModuleFactory`: Deprecated config option that allows providing optional\n * NgModule factory to allow loading another module dynamically, then loading a component from that\n * module. Use `ngComponentOutletNgModule` instead.\n *\n * ### Syntax\n *\n * Simple\n * ```\n * \n * ```\n *\n * Customized injector/content\n * ```\n * \n * \n * ```\n *\n * Customized NgModule reference\n * ```\n * \n * \n * ```\n *\n * ### A simple example\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='SimpleExample'}\n *\n * A more complete example with additional options:\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='CompleteExample'}\n *\n * @publicApi\n * @ngModule CommonModule\n */\nclass NgComponentOutlet {\n constructor(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this.ngComponentOutlet = null;\n }\n /** @nodoc */\n ngOnChanges(changes) {\n const { _viewContainerRef: viewContainerRef, ngComponentOutletNgModule: ngModule, ngComponentOutletNgModuleFactory: ngModuleFactory, } = this;\n viewContainerRef.clear();\n this._componentRef = undefined;\n if (this.ngComponentOutlet) {\n const injector = this.ngComponentOutletInjector || viewContainerRef.parentInjector;\n if (changes['ngComponentOutletNgModule'] || changes['ngComponentOutletNgModuleFactory']) {\n if (this._moduleRef)\n this._moduleRef.destroy();\n if (ngModule) {\n this._moduleRef = createNgModule(ngModule, getParentInjector(injector));\n }\n else if (ngModuleFactory) {\n this._moduleRef = ngModuleFactory.create(getParentInjector(injector));\n }\n else {\n this._moduleRef = undefined;\n }\n }\n this._componentRef = viewContainerRef.createComponent(this.ngComponentOutlet, {\n index: viewContainerRef.length,\n injector,\n ngModuleRef: this._moduleRef,\n projectableNodes: this.ngComponentOutletContent,\n });\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this._moduleRef)\n this._moduleRef.destroy();\n }\n}\nNgComponentOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgComponentOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgComponentOutlet, isStandalone: true, selector: \"[ngComponentOutlet]\", inputs: { ngComponentOutlet: \"ngComponentOutlet\", ngComponentOutletInjector: \"ngComponentOutletInjector\", ngComponentOutletContent: \"ngComponentOutletContent\", ngComponentOutletNgModule: \"ngComponentOutletNgModule\", ngComponentOutletNgModuleFactory: \"ngComponentOutletNgModuleFactory\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgComponentOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngComponentOutlet]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { ngComponentOutlet: [{\n type: Input\n }], ngComponentOutletInjector: [{\n type: Input\n }], ngComponentOutletContent: [{\n type: Input\n }], ngComponentOutletNgModule: [{\n type: Input\n }], ngComponentOutletNgModuleFactory: [{\n type: Input\n }] } });\n// Helper function that returns an Injector instance of a parent NgModule.\nfunction getParentInjector(injector) {\n const parentNgModule = injector.get(NgModuleRef);\n return parentNgModule.injector;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\n/**\n * @publicApi\n */\nclass NgForOfContext {\n constructor($implicit, ngForOf, index, count) {\n this.$implicit = $implicit;\n this.ngForOf = ngForOf;\n this.index = index;\n this.count = count;\n }\n get first() {\n return this.index === 0;\n }\n get last() {\n return this.index === this.count - 1;\n }\n get even() {\n return this.index % 2 === 0;\n }\n get odd() {\n return !this.even;\n }\n}\n/**\n * A [structural directive](guide/structural-directives) that renders\n * a template for each item in a collection.\n * The directive is placed on an element, which becomes the parent\n * of the cloned templates.\n *\n * The `ngForOf` directive is generally used in the\n * [shorthand form](guide/structural-directives#asterisk) `*ngFor`.\n * In this form, the template to be rendered for each iteration is the content\n * of an anchor element containing the directive.\n *\n * The following example shows the shorthand syntax with some options,\n * contained in an `
  • ` element.\n *\n * ```\n *
  • ...
  • \n * ```\n *\n * The shorthand form expands into a long form that uses the `ngForOf` selector\n * on an `` element.\n * The content of the `` element is the `
  • ` element that held the\n * short-form directive.\n *\n * Here is the expanded version of the short-form example.\n *\n * ```\n * \n *
  • ...
  • \n *
    \n * ```\n *\n * Angular automatically expands the shorthand syntax as it compiles the template.\n * The context for each embedded view is logically merged to the current component\n * context according to its lexical position.\n *\n * When using the shorthand syntax, Angular allows only [one structural directive\n * on an element](guide/structural-directives#one-per-element).\n * If you want to iterate conditionally, for example,\n * put the `*ngIf` on a container element that wraps the `*ngFor` element.\n * For further discussion, see\n * [Structural Directives](guide/structural-directives#one-per-element).\n *\n * @usageNotes\n *\n * ### Local variables\n *\n * `NgForOf` provides exported values that can be aliased to local variables.\n * For example:\n *\n * ```\n *
  • \n * {{i}}/{{users.length}}. {{user}} default\n *
  • \n * ```\n *\n * The following exported values can be aliased to local variables:\n *\n * - `$implicit: T`: The value of the individual items in the iterable (`ngForOf`).\n * - `ngForOf: NgIterable`: The value of the iterable expression. Useful when the expression is\n * more complex then a property access, for example when using the async pipe (`userStreams |\n * async`).\n * - `index: number`: The index of the current item in the iterable.\n * - `count: number`: The length of the iterable.\n * - `first: boolean`: True when the item is the first item in the iterable.\n * - `last: boolean`: True when the item is the last item in the iterable.\n * - `even: boolean`: True when the item has an even index in the iterable.\n * - `odd: boolean`: True when the item has an odd index in the iterable.\n *\n * ### Change propagation\n *\n * When the contents of the iterator changes, `NgForOf` makes the corresponding changes to the DOM:\n *\n * * When an item is added, a new instance of the template is added to the DOM.\n * * When an item is removed, its template instance is removed from the DOM.\n * * When items are reordered, their respective templates are reordered in the DOM.\n *\n * Angular uses object identity to track insertions and deletions within the iterator and reproduce\n * those changes in the DOM. This has important implications for animations and any stateful\n * controls that are present, such as `` elements that accept user input. Inserted rows can\n * be animated in, deleted rows can be animated out, and unchanged rows retain any unsaved state\n * such as user input.\n * For more on animations, see [Transitions and Triggers](guide/transition-and-triggers).\n *\n * The identities of elements in the iterator can change while the data does not.\n * This can happen, for example, if the iterator is produced from an RPC to the server, and that\n * RPC is re-run. Even if the data hasn't changed, the second response produces objects with\n * different identities, and Angular must tear down the entire DOM and rebuild it (as if all old\n * elements were deleted and all new elements inserted).\n *\n * To avoid this expensive operation, you can customize the default tracking algorithm.\n * by supplying the `trackBy` option to `NgForOf`.\n * `trackBy` takes a function that has two arguments: `index` and `item`.\n * If `trackBy` is given, Angular tracks changes by the return value of the function.\n *\n * @see [Structural Directives](guide/structural-directives)\n * @ngModule CommonModule\n * @publicApi\n */\nclass NgForOf {\n constructor(_viewContainer, _template, _differs) {\n this._viewContainer = _viewContainer;\n this._template = _template;\n this._differs = _differs;\n this._ngForOf = null;\n this._ngForOfDirty = true;\n this._differ = null;\n }\n /**\n * The value of the iterable expression, which can be used as a\n * [template input variable](guide/structural-directives#shorthand).\n */\n set ngForOf(ngForOf) {\n this._ngForOf = ngForOf;\n this._ngForOfDirty = true;\n }\n /**\n * Specifies a custom `TrackByFunction` to compute the identity of items in an iterable.\n *\n * If a custom `TrackByFunction` is not provided, `NgForOf` will use the item's [object\n * identity](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is)\n * as the key.\n *\n * `NgForOf` uses the computed key to associate items in an iterable with DOM elements\n * it produces for these items.\n *\n * A custom `TrackByFunction` is useful to provide good user experience in cases when items in an\n * iterable rendered using `NgForOf` have a natural identifier (for example, custom ID or a\n * primary key), and this iterable could be updated with new object instances that still\n * represent the same underlying entity (for example, when data is re-fetched from the server,\n * and the iterable is recreated and re-rendered, but most of the data is still the same).\n *\n * @see `TrackByFunction`\n */\n set ngForTrackBy(fn) {\n if (NG_DEV_MODE && fn != null && typeof fn !== 'function') {\n // TODO(vicb): use a log service once there is a public one available\n if (console && console.warn) {\n console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}. ` +\n `See https://angular.io/api/common/NgForOf#change-propagation for more information.`);\n }\n }\n this._trackByFn = fn;\n }\n get ngForTrackBy() {\n return this._trackByFn;\n }\n /**\n * A reference to the template that is stamped out for each item in the iterable.\n * @see [template reference variable](guide/template-reference-variables)\n */\n set ngForTemplate(value) {\n // TODO(TS2.1): make TemplateRef>> once we move to TS v2.1\n // The current type is too restrictive; a template that just uses index, for example,\n // should be acceptable.\n if (value) {\n this._template = value;\n }\n }\n /**\n * Applies the changes when needed.\n * @nodoc\n */\n ngDoCheck() {\n if (this._ngForOfDirty) {\n this._ngForOfDirty = false;\n // React on ngForOf changes only once all inputs have been initialized\n const value = this._ngForOf;\n if (!this._differ && value) {\n if (NG_DEV_MODE) {\n try {\n // CAUTION: this logic is duplicated for production mode below, as the try-catch\n // is only present in development builds.\n this._differ = this._differs.find(value).create(this.ngForTrackBy);\n }\n catch {\n let errorMessage = `Cannot find a differ supporting object '${value}' of type '` +\n `${getTypeName(value)}'. NgFor only supports binding to Iterables, such as Arrays.`;\n if (typeof value === 'object') {\n errorMessage += ' Did you mean to use the keyvalue pipe?';\n }\n throw new ɵRuntimeError(-2200 /* RuntimeErrorCode.NG_FOR_MISSING_DIFFER */, errorMessage);\n }\n }\n else {\n // CAUTION: this logic is duplicated for development mode above, as the try-catch\n // is only present in development builds.\n this._differ = this._differs.find(value).create(this.ngForTrackBy);\n }\n }\n }\n if (this._differ) {\n const changes = this._differ.diff(this._ngForOf);\n if (changes)\n this._applyChanges(changes);\n }\n }\n _applyChanges(changes) {\n const viewContainer = this._viewContainer;\n changes.forEachOperation((item, adjustedPreviousIndex, currentIndex) => {\n if (item.previousIndex == null) {\n // NgForOf is never \"null\" or \"undefined\" here because the differ detected\n // that a new item needs to be inserted from the iterable. This implies that\n // there is an iterable value for \"_ngForOf\".\n viewContainer.createEmbeddedView(this._template, new NgForOfContext(item.item, this._ngForOf, -1, -1), currentIndex === null ? undefined : currentIndex);\n }\n else if (currentIndex == null) {\n viewContainer.remove(adjustedPreviousIndex === null ? undefined : adjustedPreviousIndex);\n }\n else if (adjustedPreviousIndex !== null) {\n const view = viewContainer.get(adjustedPreviousIndex);\n viewContainer.move(view, currentIndex);\n applyViewChange(view, item);\n }\n });\n for (let i = 0, ilen = viewContainer.length; i < ilen; i++) {\n const viewRef = viewContainer.get(i);\n const context = viewRef.context;\n context.index = i;\n context.count = ilen;\n context.ngForOf = this._ngForOf;\n }\n changes.forEachIdentityChange((record) => {\n const viewRef = viewContainer.get(record.currentIndex);\n applyViewChange(viewRef, record);\n });\n }\n /**\n * Asserts the correct type of the context for the template that `NgForOf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgForOf` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n}\nNgForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });\nNgForOf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgForOf, isStandalone: true, selector: \"[ngFor][ngForOf]\", inputs: { ngForOf: \"ngForOf\", ngForTrackBy: \"ngForTrackBy\", ngForTemplate: \"ngForTemplate\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgForOf, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngFor][ngForOf]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.IterableDiffers }]; }, propDecorators: { ngForOf: [{\n type: Input\n }], ngForTrackBy: [{\n type: Input\n }], ngForTemplate: [{\n type: Input\n }] } });\nfunction applyViewChange(view, record) {\n view.context.$implicit = record.item;\n}\nfunction getTypeName(type) {\n return type['name'] || typeof type;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A structural directive that conditionally includes a template based on the value of\n * an expression coerced to Boolean.\n * When the expression evaluates to true, Angular renders the template\n * provided in a `then` clause, and when false or null,\n * Angular renders the template provided in an optional `else` clause. The default\n * template for the `else` clause is blank.\n *\n * A [shorthand form](guide/structural-directives#asterisk) of the directive,\n * `*ngIf=\"condition\"`, is generally used, provided\n * as an attribute of the anchor element for the inserted template.\n * Angular expands this into a more explicit version, in which the anchor element\n * is contained in an `` element.\n *\n * Simple form with shorthand syntax:\n *\n * ```\n *
    Content to render when condition is true.
    \n * ```\n *\n * Simple form with expanded syntax:\n *\n * ```\n *
    Content to render when condition is\n * true.
    \n * ```\n *\n * Form with an \"else\" block:\n *\n * ```\n *
    Content to render when condition is true.
    \n * Content to render when condition is false.\n * ```\n *\n * Shorthand form with \"then\" and \"else\" blocks:\n *\n * ```\n *
    \n * Content to render when condition is true.\n * Content to render when condition is false.\n * ```\n *\n * Form with storing the value locally:\n *\n * ```\n *
    {{value}}
    \n * Content to render when value is null.\n * ```\n *\n * @usageNotes\n *\n * The `*ngIf` directive is most commonly used to conditionally show an inline template,\n * as seen in the following example.\n * The default `else` template is blank.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfSimple'}\n *\n * ### Showing an alternative template using `else`\n *\n * To display a template when `expression` evaluates to false, use an `else` template\n * binding as shown in the following example.\n * The `else` binding points to an `` element labeled `#elseBlock`.\n * The template can be defined anywhere in the component view, but is typically placed right after\n * `ngIf` for readability.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfElse'}\n *\n * ### Using an external `then` template\n *\n * In the previous example, the then-clause template is specified inline, as the content of the\n * tag that contains the `ngIf` directive. You can also specify a template that is defined\n * externally, by referencing a labeled `` element. When you do this, you can\n * change which template to use at runtime, as shown in the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfThenElse'}\n *\n * ### Storing a conditional result in a variable\n *\n * You might want to show a set of properties from the same object. If you are waiting\n * for asynchronous data, the object can be undefined.\n * In this case, you can use `ngIf` and store the result of the condition in a local\n * variable as shown in the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfAs'}\n *\n * This code uses only one `AsyncPipe`, so only one subscription is created.\n * The conditional statement stores the result of `userStream|async` in the local variable `user`.\n * You can then bind the local `user` repeatedly.\n *\n * The conditional displays the data only if `userStream` returns a value,\n * so you don't need to use the\n * safe-navigation-operator (`?.`)\n * to guard against null values when accessing properties.\n * You can display an alternative template while waiting for the data.\n *\n * ### Shorthand syntax\n *\n * The shorthand syntax `*ngIf` expands into two separate template specifications\n * for the \"then\" and \"else\" clauses. For example, consider the following shorthand statement,\n * that is meant to show a loading page while waiting for data to be loaded.\n *\n * ```\n *
    \n * ...\n *
    \n *\n * \n *
    Loading...
    \n *
    \n * ```\n *\n * You can see that the \"else\" clause references the ``\n * with the `#loading` label, and the template for the \"then\" clause\n * is provided as the content of the anchor element.\n *\n * However, when Angular expands the shorthand syntax, it creates\n * another `` tag, with `ngIf` and `ngIfElse` directives.\n * The anchor element containing the template for the \"then\" clause becomes\n * the content of this unlabeled `` tag.\n *\n * ```\n * \n *
    \n * ...\n *
    \n *
    \n *\n * \n *
    Loading...
    \n *
    \n * ```\n *\n * The presence of the implicit template object has implications for the nesting of\n * structural directives. For more on this subject, see\n * [Structural Directives](guide/structural-directives#one-per-element).\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass NgIf {\n constructor(_viewContainer, templateRef) {\n this._viewContainer = _viewContainer;\n this._context = new NgIfContext();\n this._thenTemplateRef = null;\n this._elseTemplateRef = null;\n this._thenViewRef = null;\n this._elseViewRef = null;\n this._thenTemplateRef = templateRef;\n }\n /**\n * The Boolean expression to evaluate as the condition for showing a template.\n */\n set ngIf(condition) {\n this._context.$implicit = this._context.ngIf = condition;\n this._updateView();\n }\n /**\n * A template to show if the condition expression evaluates to true.\n */\n set ngIfThen(templateRef) {\n assertTemplate('ngIfThen', templateRef);\n this._thenTemplateRef = templateRef;\n this._thenViewRef = null; // clear previous view if any.\n this._updateView();\n }\n /**\n * A template to show if the condition expression evaluates to false.\n */\n set ngIfElse(templateRef) {\n assertTemplate('ngIfElse', templateRef);\n this._elseTemplateRef = templateRef;\n this._elseViewRef = null; // clear previous view if any.\n this._updateView();\n }\n _updateView() {\n if (this._context.$implicit) {\n if (!this._thenViewRef) {\n this._viewContainer.clear();\n this._elseViewRef = null;\n if (this._thenTemplateRef) {\n this._thenViewRef =\n this._viewContainer.createEmbeddedView(this._thenTemplateRef, this._context);\n }\n }\n }\n else {\n if (!this._elseViewRef) {\n this._viewContainer.clear();\n this._thenViewRef = null;\n if (this._elseTemplateRef) {\n this._elseViewRef =\n this._viewContainer.createEmbeddedView(this._elseTemplateRef, this._context);\n }\n }\n }\n }\n /**\n * Asserts the correct type of the context for the template that `NgIf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgIf` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n}\nNgIf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgIf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgIf, isStandalone: true, selector: \"[ngIf]\", inputs: { ngIf: \"ngIf\", ngIfThen: \"ngIfThen\", ngIfElse: \"ngIfElse\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgIf, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngIf]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }]; }, propDecorators: { ngIf: [{\n type: Input\n }], ngIfThen: [{\n type: Input\n }], ngIfElse: [{\n type: Input\n }] } });\n/**\n * @publicApi\n */\nclass NgIfContext {\n constructor() {\n this.$implicit = null;\n this.ngIf = null;\n }\n}\nfunction assertTemplate(property, templateRef) {\n const isTemplateRefOrNull = !!(!templateRef || templateRef.createEmbeddedView);\n if (!isTemplateRefOrNull) {\n throw new Error(`${property} must be a TemplateRef, but received '${ɵstringify(templateRef)}'.`);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass SwitchView {\n constructor(_viewContainerRef, _templateRef) {\n this._viewContainerRef = _viewContainerRef;\n this._templateRef = _templateRef;\n this._created = false;\n }\n create() {\n this._created = true;\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n }\n destroy() {\n this._created = false;\n this._viewContainerRef.clear();\n }\n enforceState(created) {\n if (created && !this._created) {\n this.create();\n }\n else if (!created && this._created) {\n this.destroy();\n }\n }\n}\n/**\n * @ngModule CommonModule\n *\n * @description\n * The `[ngSwitch]` directive on a container specifies an expression to match against.\n * The expressions to match are provided by `ngSwitchCase` directives on views within the container.\n * - Every view that matches is rendered.\n * - If there are no matches, a view with the `ngSwitchDefault` directive is rendered.\n * - Elements within the `[NgSwitch]` statement but outside of any `NgSwitchCase`\n * or `ngSwitchDefault` directive are preserved at the location.\n *\n * @usageNotes\n * Define a container element for the directive, and specify the switch expression\n * to match against as an attribute:\n *\n * ```\n * \n * ```\n *\n * Within the container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * \n * ...\n * ...\n * ...\n * \n * ```\n *\n * ### Usage Examples\n *\n * The following example shows how to use more than one case to display the same view:\n *\n * ```\n * \n * \n * ...\n * ...\n * ...\n * \n * ...\n * \n * ```\n *\n * The following example shows how cases can be nested:\n * ```\n * \n * ...\n * ...\n * ...\n * \n * \n * \n * \n * \n * ...\n * \n * ```\n *\n * @publicApi\n * @see `NgSwitchCase`\n * @see `NgSwitchDefault`\n * @see [Structural Directives](guide/structural-directives)\n *\n */\nclass NgSwitch {\n constructor() {\n this._defaultUsed = false;\n this._caseCount = 0;\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n set ngSwitch(newValue) {\n this._ngSwitch = newValue;\n if (this._caseCount === 0) {\n this._updateDefaultCases(true);\n }\n }\n /** @internal */\n _addCase() {\n return this._caseCount++;\n }\n /** @internal */\n _addDefault(view) {\n if (!this._defaultViews) {\n this._defaultViews = [];\n }\n this._defaultViews.push(view);\n }\n /** @internal */\n _matchCase(value) {\n const matched = value == this._ngSwitch;\n this._lastCasesMatched = this._lastCasesMatched || matched;\n this._lastCaseCheckIndex++;\n if (this._lastCaseCheckIndex === this._caseCount) {\n this._updateDefaultCases(!this._lastCasesMatched);\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n return matched;\n }\n _updateDefaultCases(useDefault) {\n if (this._defaultViews && useDefault !== this._defaultUsed) {\n this._defaultUsed = useDefault;\n for (let i = 0; i < this._defaultViews.length; i++) {\n const defaultView = this._defaultViews[i];\n defaultView.enforceState(useDefault);\n }\n }\n }\n}\nNgSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitch.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgSwitch, isStandalone: true, selector: \"[ngSwitch]\", inputs: { ngSwitch: \"ngSwitch\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitch, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitch]',\n standalone: true,\n }]\n }], propDecorators: { ngSwitch: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n * Provides a switch case expression to match against an enclosing `ngSwitch` expression.\n * When the expressions match, the given `NgSwitchCase` template is rendered.\n * If multiple match expressions match the switch expression value, all of them are displayed.\n *\n * @usageNotes\n *\n * Within a switch container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * \n * ...\n * ...\n * ...\n * \n * ```\n *\n * Each switch-case statement contains an in-line HTML template or template reference\n * that defines the subtree to be selected if the value of the match expression\n * matches the value of the switch expression.\n *\n * Unlike JavaScript, which uses strict equality, Angular uses loose equality.\n * This means that the empty string, `\"\"` matches 0.\n *\n * @publicApi\n * @see `NgSwitch`\n * @see `NgSwitchDefault`\n *\n */\nclass NgSwitchCase {\n constructor(viewContainer, templateRef, ngSwitch) {\n this.ngSwitch = ngSwitch;\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !ngSwitch) {\n throwNgSwitchProviderNotFoundError('ngSwitchCase', 'NgSwitchCase');\n }\n ngSwitch._addCase();\n this._view = new SwitchView(viewContainer, templateRef);\n }\n /**\n * Performs case matching. For internal use only.\n * @nodoc\n */\n ngDoCheck() {\n this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase));\n }\n}\nNgSwitchCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitchCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgSwitchCase, isStandalone: true, selector: \"[ngSwitchCase]\", inputs: { ngSwitchCase: \"ngSwitchCase\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitchCase, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitchCase]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }]; }, propDecorators: { ngSwitchCase: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that is rendered when no `NgSwitchCase` expressions\n * match the `NgSwitch` expression.\n * This statement should be the final case in an `NgSwitch`.\n *\n * @publicApi\n * @see `NgSwitch`\n * @see `NgSwitchCase`\n *\n */\nclass NgSwitchDefault {\n constructor(viewContainer, templateRef, ngSwitch) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !ngSwitch) {\n throwNgSwitchProviderNotFoundError('ngSwitchDefault', 'NgSwitchDefault');\n }\n ngSwitch._addDefault(new SwitchView(viewContainer, templateRef));\n }\n}\nNgSwitchDefault.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitchDefault.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgSwitchDefault, isStandalone: true, selector: \"[ngSwitchDefault]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitchDefault, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitchDefault]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }]; } });\nfunction throwNgSwitchProviderNotFoundError(attrName, directiveName) {\n throw new ɵRuntimeError(2000 /* RuntimeErrorCode.PARENT_NG_SWITCH_NOT_FOUND */, `An element with the \"${attrName}\" attribute ` +\n `(matching the \"${directiveName}\" directive) must be located inside an element with the \"ngSwitch\" attribute ` +\n `(matching \"NgSwitch\" directive)`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * \n * there is nothing\n * there is one\n * there are a few\n * \n * ```\n *\n * @description\n *\n * Adds / removes DOM sub-trees based on a numeric value. Tailored for pluralization.\n *\n * Displays DOM sub-trees that match the switch expression value, or failing that, DOM sub-trees\n * that match the switch expression's pluralization category.\n *\n * To use this directive you must provide a container element that sets the `[ngPlural]` attribute\n * to a switch expression. Inner elements with a `[ngPluralCase]` will display based on their\n * expression:\n * - if `[ngPluralCase]` is set to a value starting with `=`, it will only display if the value\n * matches the switch expression exactly,\n * - otherwise, the view will be treated as a \"category match\", and will only display if exact\n * value matches aren't found and the value maps to its category for the defined locale.\n *\n * See http://cldr.unicode.org/index/cldr-spec/plural-rules\n *\n * @publicApi\n */\nclass NgPlural {\n constructor(_localization) {\n this._localization = _localization;\n this._caseViews = {};\n }\n set ngPlural(value) {\n this._switchValue = value;\n this._updateView();\n }\n addCase(value, switchView) {\n this._caseViews[value] = switchView;\n }\n _updateView() {\n this._clearViews();\n const cases = Object.keys(this._caseViews);\n const key = getPluralCategory(this._switchValue, cases, this._localization);\n this._activateView(this._caseViews[key]);\n }\n _clearViews() {\n if (this._activeView)\n this._activeView.destroy();\n }\n _activateView(view) {\n if (view) {\n this._activeView = view;\n this._activeView.create();\n }\n }\n}\nNgPlural.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });\nNgPlural.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgPlural, isStandalone: true, selector: \"[ngPlural]\", inputs: { ngPlural: \"ngPlural\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgPlural, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngPlural]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: NgLocalization }]; }, propDecorators: { ngPlural: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that will be added/removed from the parent {@link NgPlural} when the\n * given expression matches the plural expression according to CLDR rules.\n *\n * @usageNotes\n * ```\n * \n * ...\n * ...\n * \n *```\n *\n * See {@link NgPlural} for more details and example.\n *\n * @publicApi\n */\nclass NgPluralCase {\n constructor(value, template, viewContainer, ngPlural) {\n this.value = value;\n const isANumber = !isNaN(Number(value));\n ngPlural.addCase(isANumber ? `=${value}` : value, new SwitchView(viewContainer, template));\n }\n}\nNgPluralCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgPluralCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgPluralCase, isStandalone: true, selector: \"[ngPluralCase]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgPluralCase, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngPluralCase]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['ngPluralCase']\n }] }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: NgPlural, decorators: [{\n type: Host\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n *\n * @usageNotes\n *\n * Set the font of the containing element to the result of an expression.\n *\n * ```\n * ...\n * ```\n *\n * Set the width of the containing element to a pixel value returned by an expression.\n *\n * ```\n * ...\n * ```\n *\n * Set a collection of style values using an expression that returns key-value pairs.\n *\n * ```\n * ...\n * ```\n *\n * @description\n *\n * An attribute directive that updates styles for the containing HTML element.\n * Sets one or more style properties, specified as colon-separated key-value pairs.\n * The key is a style name, with an optional `.` suffix\n * (such as 'top.px', 'font-style.em').\n * The value is an expression to be evaluated.\n * The resulting non-null value, expressed in the given unit,\n * is assigned to the given style property.\n * If the result of evaluation is null, the corresponding style is removed.\n *\n * @publicApi\n */\nclass NgStyle {\n constructor(_ngEl, _differs, _renderer) {\n this._ngEl = _ngEl;\n this._differs = _differs;\n this._renderer = _renderer;\n this._ngStyle = null;\n this._differ = null;\n }\n set ngStyle(values) {\n this._ngStyle = values;\n if (!this._differ && values) {\n this._differ = this._differs.find(values).create();\n }\n }\n ngDoCheck() {\n if (this._differ) {\n const changes = this._differ.diff(this._ngStyle);\n if (changes) {\n this._applyChanges(changes);\n }\n }\n }\n _setStyle(nameAndUnit, value) {\n const [name, unit] = nameAndUnit.split('.');\n const flags = name.indexOf('-') === -1 ? undefined : RendererStyleFlags2.DashCase;\n if (value != null) {\n this._renderer.setStyle(this._ngEl.nativeElement, name, unit ? `${value}${unit}` : value, flags);\n }\n else {\n this._renderer.removeStyle(this._ngEl.nativeElement, name, flags);\n }\n }\n _applyChanges(changes) {\n changes.forEachRemovedItem((record) => this._setStyle(record.key, null));\n changes.forEachAddedItem((record) => this._setStyle(record.key, record.currentValue));\n changes.forEachChangedItem((record) => this._setStyle(record.key, record.currentValue));\n }\n}\nNgStyle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nNgStyle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgStyle, isStandalone: true, selector: \"[ngStyle]\", inputs: { ngStyle: \"ngStyle\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgStyle, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngStyle]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.KeyValueDiffers }, { type: i0.Renderer2 }]; }, propDecorators: { ngStyle: [{\n type: Input,\n args: ['ngStyle']\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Inserts an embedded view from a prepared `TemplateRef`.\n *\n * You can attach a context object to the `EmbeddedViewRef` by setting `[ngTemplateOutletContext]`.\n * `[ngTemplateOutletContext]` should be an object, the object's keys will be available for binding\n * by the local template `let` declarations.\n *\n * @usageNotes\n * ```\n * \n * ```\n *\n * Using the key `$implicit` in the context object will set its value as default.\n *\n * ### Example\n *\n * {@example common/ngTemplateOutlet/ts/module.ts region='NgTemplateOutlet'}\n *\n * @publicApi\n */\nclass NgTemplateOutlet {\n constructor(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this._viewRef = null;\n /**\n * A context object to attach to the {@link EmbeddedViewRef}. This should be an\n * object, the object's keys will be available for binding by the local template `let`\n * declarations.\n * Using the key `$implicit` in the context object will set its value as default.\n */\n this.ngTemplateOutletContext = null;\n /**\n * A string defining the template reference and optionally the context object for the template.\n */\n this.ngTemplateOutlet = null;\n /** Injector to be used within the embedded view. */\n this.ngTemplateOutletInjector = null;\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (changes['ngTemplateOutlet'] || changes['ngTemplateOutletInjector']) {\n const viewContainerRef = this._viewContainerRef;\n if (this._viewRef) {\n viewContainerRef.remove(viewContainerRef.indexOf(this._viewRef));\n }\n if (this.ngTemplateOutlet) {\n const { ngTemplateOutlet: template, ngTemplateOutletContext: context, ngTemplateOutletInjector: injector } = this;\n this._viewRef = viewContainerRef.createEmbeddedView(template, context, injector ? { injector } : undefined);\n }\n else {\n this._viewRef = null;\n }\n }\n else if (this._viewRef && changes['ngTemplateOutletContext'] && this.ngTemplateOutletContext) {\n this._viewRef.context = this.ngTemplateOutletContext;\n }\n }\n}\nNgTemplateOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgTemplateOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgTemplateOutlet, isStandalone: true, selector: \"[ngTemplateOutlet]\", inputs: { ngTemplateOutletContext: \"ngTemplateOutletContext\", ngTemplateOutlet: \"ngTemplateOutlet\", ngTemplateOutletInjector: \"ngTemplateOutletInjector\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgTemplateOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngTemplateOutlet]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { ngTemplateOutletContext: [{\n type: Input\n }], ngTemplateOutlet: [{\n type: Input\n }], ngTemplateOutletInjector: [{\n type: Input\n }] } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A collection of Angular directives that are likely to be used in each and every Angular\n * application.\n */\nconst COMMON_DIRECTIVES = [\n NgClass,\n NgComponentOutlet,\n NgForOf,\n NgIf,\n NgTemplateOutlet,\n NgStyle,\n NgSwitch,\n NgSwitchCase,\n NgSwitchDefault,\n NgPlural,\n NgPluralCase,\n];\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction invalidPipeArgumentError(type, value) {\n return new ɵRuntimeError(2100 /* RuntimeErrorCode.INVALID_PIPE_ARGUMENT */, ngDevMode && `InvalidPipeArgument: '${value}' for pipe '${ɵstringify(type)}'`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass SubscribableStrategy {\n createSubscription(async, updateLatestValue) {\n return async.subscribe({\n next: updateLatestValue,\n error: (e) => {\n throw e;\n }\n });\n }\n dispose(subscription) {\n subscription.unsubscribe();\n }\n}\nclass PromiseStrategy {\n createSubscription(async, updateLatestValue) {\n return async.then(updateLatestValue, e => {\n throw e;\n });\n }\n dispose(subscription) { }\n}\nconst _promiseStrategy = new PromiseStrategy();\nconst _subscribableStrategy = new SubscribableStrategy();\n/**\n * @ngModule CommonModule\n * @description\n *\n * Unwraps a value from an asynchronous primitive.\n *\n * The `async` pipe subscribes to an `Observable` or `Promise` and returns the latest value it has\n * emitted. When a new value is emitted, the `async` pipe marks the component to be checked for\n * changes. When the component gets destroyed, the `async` pipe unsubscribes automatically to avoid\n * potential memory leaks. When the reference of the expression changes, the `async` pipe\n * automatically unsubscribes from the old `Observable` or `Promise` and subscribes to the new one.\n *\n * @usageNotes\n *\n * ### Examples\n *\n * This example binds a `Promise` to the view. Clicking the `Resolve` button resolves the\n * promise.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipePromise'}\n *\n * It's also possible to use `async` with Observables. The example below binds the `time` Observable\n * to the view. The Observable continuously updates the view with the current time.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipeObservable'}\n *\n * @publicApi\n */\nclass AsyncPipe {\n constructor(ref) {\n this._latestValue = null;\n this._subscription = null;\n this._obj = null;\n this._strategy = null;\n // Assign `ref` into `this._ref` manually instead of declaring `_ref` in the constructor\n // parameter list, as the type of `this._ref` includes `null` unlike the type of `ref`.\n this._ref = ref;\n }\n ngOnDestroy() {\n if (this._subscription) {\n this._dispose();\n }\n // Clear the `ChangeDetectorRef` and its association with the view data, to mitigate\n // potential memory leaks in Observables that could otherwise cause the view data to\n // be retained.\n // https://github.com/angular/angular/issues/17624\n this._ref = null;\n }\n transform(obj) {\n if (!this._obj) {\n if (obj) {\n this._subscribe(obj);\n }\n return this._latestValue;\n }\n if (obj !== this._obj) {\n this._dispose();\n return this.transform(obj);\n }\n return this._latestValue;\n }\n _subscribe(obj) {\n this._obj = obj;\n this._strategy = this._selectStrategy(obj);\n this._subscription = this._strategy.createSubscription(obj, (value) => this._updateLatestValue(obj, value));\n }\n _selectStrategy(obj) {\n if (ɵisPromise(obj)) {\n return _promiseStrategy;\n }\n if (ɵisSubscribable(obj)) {\n return _subscribableStrategy;\n }\n throw invalidPipeArgumentError(AsyncPipe, obj);\n }\n _dispose() {\n // Note: `dispose` is only called if a subscription has been initialized before, indicating\n // that `this._strategy` is also available.\n this._strategy.dispose(this._subscription);\n this._latestValue = null;\n this._subscription = null;\n this._obj = null;\n }\n _updateLatestValue(async, value) {\n if (async === this._obj) {\n this._latestValue = value;\n // Note: `this._ref` is only cleared in `ngOnDestroy` so is known to be available when a\n // value is being updated.\n this._ref.markForCheck();\n }\n }\n}\nAsyncPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });\nAsyncPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: AsyncPipe, isStandalone: true, name: \"async\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: AsyncPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'async',\n pure: false,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Transforms text to all lower case.\n *\n * @see `UpperCasePipe`\n * @see `TitleCasePipe`\n * @usageNotes\n *\n * The following example defines a view that allows the user to enter\n * text, and then uses the pipe to convert the input text to all lower case.\n *\n * \n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass LowerCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(LowerCasePipe, value);\n }\n return value.toLowerCase();\n }\n}\nLowerCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nLowerCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: \"lowercase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LowerCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'lowercase',\n standalone: true,\n }]\n }] });\n//\n// Regex below matches any Unicode word and number compatible with ES5. In ES2018 the same result\n// can be achieved by using /[0-9\\p{L}]\\S*/gu and also known as Unicode Property Escapes\n// (https://2ality.com/2017/07/regexp-unicode-property-escapes.html). Since there is no\n// transpilation of this functionality down to ES5 without external tool, the only solution is\n// to use already transpiled form. Example can be found here -\n// https://mothereff.in/regexpu#input=var+regex+%3D+%2F%5B0-9%5Cp%7BL%7D%5D%5CS*%2Fgu%3B%0A%0A&unicodePropertyEscape=1\n//\nconst unicodeWordMatch = /(?:[0-9A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])\\S*/g;\n/**\n * Transforms text to title case.\n * Capitalizes the first letter of each word and transforms the\n * rest of the word to lower case.\n * Words are delimited by any whitespace character, such as a space, tab, or line-feed character.\n *\n * @see `LowerCasePipe`\n * @see `UpperCasePipe`\n *\n * @usageNotes\n * The following example shows the result of transforming various strings into title case.\n *\n * \n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass TitleCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(TitleCasePipe, value);\n }\n return value.replace(unicodeWordMatch, (txt => txt[0].toUpperCase() + txt.slice(1).toLowerCase()));\n }\n}\nTitleCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nTitleCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: \"titlecase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: TitleCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'titlecase',\n standalone: true,\n }]\n }] });\n/**\n * Transforms text to all upper case.\n * @see `LowerCasePipe`\n * @see `TitleCasePipe`\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass UpperCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(UpperCasePipe, value);\n }\n return value.toUpperCase();\n }\n}\nUpperCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nUpperCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: \"uppercase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: UpperCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'uppercase',\n standalone: true,\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Optionally-provided default timezone to use for all instances of `DatePipe` (such as `'+0430'`).\n * If the value isn't provided, the `DatePipe` will use the end-user's local system timezone.\n */\nconst DATE_PIPE_DEFAULT_TIMEZONE = new InjectionToken('DATE_PIPE_DEFAULT_TIMEZONE');\n// clang-format off\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date value according to locale rules.\n *\n * `DatePipe` is executed only when it detects a pure change to the input value.\n * A pure change is either a change to a primitive input value\n * (such as `String`, `Number`, `Boolean`, or `Symbol`),\n * or a changed object reference (such as `Date`, `Array`, `Function`, or `Object`).\n *\n * Note that mutating a `Date` object does not cause the pipe to be rendered again.\n * To ensure that the pipe is executed, you must create a new `Date` object.\n *\n * Only the `en-US` locale data comes with Angular. To localize dates\n * in another language, you must import the corresponding locale data.\n * See the [I18n guide](guide/i18n-common-format-data-locale) for more information.\n *\n * The time zone of the formatted value can be specified either by passing it in as the second\n * parameter of the pipe, or by setting the default through the `DATE_PIPE_DEFAULT_TIMEZONE`\n * injection token. The value that is passed in as the second parameter takes precedence over\n * the one defined using the injection token.\n *\n * @see `formatDate()`\n *\n *\n * @usageNotes\n *\n * The result of this pipe is not reevaluated when the input is mutated. To avoid the need to\n * reformat the date on every change-detection cycle, treat the date as an immutable object\n * and change the reference when the pipe needs to run again.\n *\n * ### Pre-defined format options\n *\n * | Option | Equivalent to | Examples (given in `en-US` locale) |\n * |---------------|-------------------------------------|-------------------------------------------------|\n * | `'short'` | `'M/d/yy, h:mm a'` | `6/15/15, 9:03 AM` |\n * | `'medium'` | `'MMM d, y, h:mm:ss a'` | `Jun 15, 2015, 9:03:01 AM` |\n * | `'long'` | `'MMMM d, y, h:mm:ss a z'` | `June 15, 2015 at 9:03:01 AM GMT+1` |\n * | `'full'` | `'EEEE, MMMM d, y, h:mm:ss a zzzz'` | `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00` |\n * | `'shortDate'` | `'M/d/yy'` | `6/15/15` |\n * | `'mediumDate'`| `'MMM d, y'` | `Jun 15, 2015` |\n * | `'longDate'` | `'MMMM d, y'` | `June 15, 2015` |\n * | `'fullDate'` | `'EEEE, MMMM d, y'` | `Monday, June 15, 2015` |\n * | `'shortTime'` | `'h:mm a'` | `9:03 AM` |\n * | `'mediumTime'`| `'h:mm:ss a'` | `9:03:01 AM` |\n * | `'longTime'` | `'h:mm:ss a z'` | `9:03:01 AM GMT+1` |\n * | `'fullTime'` | `'h:mm:ss a zzzz'` | `9:03:01 AM GMT+01:00` |\n *\n * ### Custom format options\n *\n * You can construct a format string using symbols to specify the components\n * of a date-time value, as described in the following table.\n * Format details depend on the locale.\n * Fields marked with (*) are only available in the extra data set for the given locale.\n *\n * | Field type | Format | Description | Example Value |\n * |-------------------- |-------------|---------------------------------------------------------------|------------------------------------------------------------|\n * | Era | G, GG & GGG | Abbreviated | AD |\n * | | GGGG | Wide | Anno Domini |\n * | | GGGGG | Narrow | A |\n * | Year | y | Numeric: minimum digits | 2, 20, 201, 2017, 20173 |\n * | | yy | Numeric: 2 digits + zero padded | 02, 20, 01, 17, 73 |\n * | | yyy | Numeric: 3 digits + zero padded | 002, 020, 201, 2017, 20173 |\n * | | yyyy | Numeric: 4 digits or more + zero padded | 0002, 0020, 0201, 2017, 20173 |\n * | Week-numbering year | Y | Numeric: minimum digits | 2, 20, 201, 2017, 20173 |\n * | | YY | Numeric: 2 digits + zero padded | 02, 20, 01, 17, 73 |\n * | | YYY | Numeric: 3 digits + zero padded | 002, 020, 201, 2017, 20173 |\n * | | YYYY | Numeric: 4 digits or more + zero padded | 0002, 0020, 0201, 2017, 20173 |\n * | Month | M | Numeric: 1 digit | 9, 12 |\n * | | MM | Numeric: 2 digits + zero padded | 09, 12 |\n * | | MMM | Abbreviated | Sep |\n * | | MMMM | Wide | September |\n * | | MMMMM | Narrow | S |\n * | Month standalone | L | Numeric: 1 digit | 9, 12 |\n * | | LL | Numeric: 2 digits + zero padded | 09, 12 |\n * | | LLL | Abbreviated | Sep |\n * | | LLLL | Wide | September |\n * | | LLLLL | Narrow | S |\n * | Week of year | w | Numeric: minimum digits | 1... 53 |\n * | | ww | Numeric: 2 digits + zero padded | 01... 53 |\n * | Week of month | W | Numeric: 1 digit | 1... 5 |\n * | Day of month | d | Numeric: minimum digits | 1 |\n * | | dd | Numeric: 2 digits + zero padded | 01 |\n * | Week day | E, EE & EEE | Abbreviated | Tue |\n * | | EEEE | Wide | Tuesday |\n * | | EEEEE | Narrow | T |\n * | | EEEEEE | Short | Tu |\n * | Week day standalone | c, cc | Numeric: 1 digit | 2 |\n * | | ccc | Abbreviated | Tue |\n * | | cccc | Wide | Tuesday |\n * | | ccccc | Narrow | T |\n * | | cccccc | Short | Tu |\n * | Period | a, aa & aaa | Abbreviated | am/pm or AM/PM |\n * | | aaaa | Wide (fallback to `a` when missing) | ante meridiem/post meridiem |\n * | | aaaaa | Narrow | a/p |\n * | Period* | B, BB & BBB | Abbreviated | mid. |\n * | | BBBB | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | BBBBB | Narrow | md |\n * | Period standalone* | b, bb & bbb | Abbreviated | mid. |\n * | | bbbb | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | bbbbb | Narrow | md |\n * | Hour 1-12 | h | Numeric: minimum digits | 1, 12 |\n * | | hh | Numeric: 2 digits + zero padded | 01, 12 |\n * | Hour 0-23 | H | Numeric: minimum digits | 0, 23 |\n * | | HH | Numeric: 2 digits + zero padded | 00, 23 |\n * | Minute | m | Numeric: minimum digits | 8, 59 |\n * | | mm | Numeric: 2 digits + zero padded | 08, 59 |\n * | Second | s | Numeric: minimum digits | 0... 59 |\n * | | ss | Numeric: 2 digits + zero padded | 00... 59 |\n * | Fractional seconds | S | Numeric: 1 digit | 0... 9 |\n * | | SS | Numeric: 2 digits + zero padded | 00... 99 |\n * | | SSS | Numeric: 3 digits + zero padded (= milliseconds) | 000... 999 |\n * | Zone | z, zz & zzz | Short specific non location format (fallback to O) | GMT-8 |\n * | | zzzz | Long specific non location format (fallback to OOOO) | GMT-08:00 |\n * | | Z, ZZ & ZZZ | ISO8601 basic format | -0800 |\n * | | ZZZZ | Long localized GMT format | GMT-8:00 |\n * | | ZZZZZ | ISO8601 extended format + Z indicator for offset 0 (= XXXXX) | -08:00 |\n * | | O, OO & OOO | Short localized GMT format | GMT-8 |\n * | | OOOO | Long localized GMT format | GMT-08:00 |\n *\n *\n * ### Format examples\n *\n * These examples transform a date into various formats,\n * assuming that `dateObj` is a JavaScript `Date` object for\n * year: 2015, month: 6, day: 15, hour: 21, minute: 43, second: 11,\n * given in the local time for the `en-US` locale.\n *\n * ```\n * {{ dateObj | date }} // output is 'Jun 15, 2015'\n * {{ dateObj | date:'medium' }} // output is 'Jun 15, 2015, 9:43:11 PM'\n * {{ dateObj | date:'shortTime' }} // output is '9:43 PM'\n * {{ dateObj | date:'mm:ss' }} // output is '43:11'\n * ```\n *\n * ### Usage example\n *\n * The following component uses a date pipe to display the current date in different formats.\n *\n * ```\n * @Component({\n * selector: 'date-pipe',\n * template: `
    \n *

    Today is {{today | date}}

    \n *

    Or if you prefer, {{today | date:'fullDate'}}

    \n *

    The time is {{today | date:'h:mm a z'}}

    \n *
    `\n * })\n * // Get the current date and time as a date-time value.\n * export class DatePipeComponent {\n * today: number = Date.now();\n * }\n * ```\n *\n * @publicApi\n */\n// clang-format on\nclass DatePipe {\n constructor(locale, defaultTimezone) {\n this.locale = locale;\n this.defaultTimezone = defaultTimezone;\n }\n transform(value, format = 'mediumDate', timezone, locale) {\n if (value == null || value === '' || value !== value)\n return null;\n try {\n return formatDate(value, format, locale || this.locale, timezone ?? this.defaultTimezone ?? undefined);\n }\n catch (error) {\n throw invalidPipeArgumentError(DatePipe, error.message);\n }\n }\n}\nDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DatePipe, deps: [{ token: LOCALE_ID }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });\nDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: DatePipe, isStandalone: true, name: \"date\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DatePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'date',\n pure: true,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DATE_PIPE_DEFAULT_TIMEZONE]\n }, {\n type: Optional\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _INTERPOLATION_REGEXP = /#/g;\n/**\n * @ngModule CommonModule\n * @description\n *\n * Maps a value to a string that pluralizes the value according to locale rules.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nPluralPipeComponent'}\n *\n * @publicApi\n */\nclass I18nPluralPipe {\n constructor(_localization) {\n this._localization = _localization;\n }\n /**\n * @param value the number to be formatted\n * @param pluralMap an object that mimics the ICU format, see\n * https://unicode-org.github.io/icu/userguide/format_parse/messages/.\n * @param locale a `string` defining the locale to use (uses the current {@link LOCALE_ID} by\n * default).\n */\n transform(value, pluralMap, locale) {\n if (value == null)\n return '';\n if (typeof pluralMap !== 'object' || pluralMap === null) {\n throw invalidPipeArgumentError(I18nPluralPipe, pluralMap);\n }\n const key = getPluralCategory(value, Object.keys(pluralMap), this._localization, locale);\n return pluralMap[key].replace(_INTERPOLATION_REGEXP, value.toString());\n }\n}\nI18nPluralPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });\nI18nPluralPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: \"i18nPlural\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nPluralPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'i18nPlural',\n pure: true,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: NgLocalization }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Generic selector that displays the string that matches the current value.\n *\n * If none of the keys of the `mapping` match the `value`, then the content\n * of the `other` key is returned when present, otherwise an empty string is returned.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nSelectPipeComponent'}\n *\n * @publicApi\n */\nclass I18nSelectPipe {\n /**\n * @param value a string to be internationalized.\n * @param mapping an object that indicates the text that should be displayed\n * for different values of the provided `value`.\n */\n transform(value, mapping) {\n if (value == null)\n return '';\n if (typeof mapping !== 'object' || typeof value !== 'string') {\n throw invalidPipeArgumentError(I18nSelectPipe, mapping);\n }\n if (mapping.hasOwnProperty(value)) {\n return mapping[value];\n }\n if (mapping.hasOwnProperty('other')) {\n return mapping['other'];\n }\n return '';\n }\n}\nI18nSelectPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nI18nSelectPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: \"i18nSelect\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nSelectPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'i18nSelect',\n pure: true,\n standalone: true,\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Converts a value into its JSON-format representation. Useful for debugging.\n *\n * @usageNotes\n *\n * The following component uses a JSON pipe to convert an object\n * to JSON format, and displays the string in both formats for comparison.\n *\n * {@example common/pipes/ts/json_pipe.ts region='JsonPipe'}\n *\n * @publicApi\n */\nclass JsonPipe {\n /**\n * @param value A value of any type to convert into a JSON-format string.\n */\n transform(value) {\n return JSON.stringify(value, null, 2);\n }\n}\nJsonPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nJsonPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: JsonPipe, isStandalone: true, name: \"json\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: JsonPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'json',\n pure: false,\n standalone: true,\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction makeKeyValuePair(key, value) {\n return { key: key, value: value };\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms Object or Map into an array of key value pairs.\n *\n * The output array will be ordered by keys.\n * By default the comparator will be by Unicode point value.\n * You can optionally pass a compareFn if your keys are complex types.\n *\n * @usageNotes\n * ### Examples\n *\n * This examples show how an Object or a Map can be iterated by ngFor with the use of this\n * keyvalue pipe.\n *\n * {@example common/pipes/ts/keyvalue_pipe.ts region='KeyValuePipe'}\n *\n * @publicApi\n */\nclass KeyValuePipe {\n constructor(differs) {\n this.differs = differs;\n this.keyValues = [];\n this.compareFn = defaultComparator;\n }\n transform(input, compareFn = defaultComparator) {\n if (!input || (!(input instanceof Map) && typeof input !== 'object')) {\n return null;\n }\n if (!this.differ) {\n // make a differ for whatever type we've been passed in\n this.differ = this.differs.find(input).create();\n }\n const differChanges = this.differ.diff(input);\n const compareFnChanged = compareFn !== this.compareFn;\n if (differChanges) {\n this.keyValues = [];\n differChanges.forEachItem((r) => {\n this.keyValues.push(makeKeyValuePair(r.key, r.currentValue));\n });\n }\n if (differChanges || compareFnChanged) {\n this.keyValues.sort(compareFn);\n this.compareFn = compareFn;\n }\n return this.keyValues;\n }\n}\nKeyValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });\nKeyValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: \"keyvalue\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: KeyValuePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'keyvalue',\n pure: false,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }]; } });\nfunction defaultComparator(keyValueA, keyValueB) {\n const a = keyValueA.key;\n const b = keyValueB.key;\n // if same exit with 0;\n if (a === b)\n return 0;\n // make sure that undefined are at the end of the sort.\n if (a === undefined)\n return 1;\n if (b === undefined)\n return -1;\n // make sure that nulls are at the end of the sort.\n if (a === null)\n return 1;\n if (b === null)\n return -1;\n if (typeof a == 'string' && typeof b == 'string') {\n return a < b ? -1 : 1;\n }\n if (typeof a == 'number' && typeof b == 'number') {\n return a - b;\n }\n if (typeof a == 'boolean' && typeof b == 'boolean') {\n return a < b ? -1 : 1;\n }\n // `a` and `b` are of different types. Compare their string values.\n const aString = String(a);\n const bString = String(b);\n return aString == bString ? 0 : aString < bString ? -1 : 1;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a value according to digit options and locale rules.\n * Locale determines group sizing and separator,\n * decimal point character, and other locale-specific configurations.\n *\n * @see `formatNumber()`\n *\n * @usageNotes\n *\n * ### digitsInfo\n *\n * The value's decimal representation is specified by the `digitsInfo`\n * parameter, written in the following format:
    \n *\n * ```\n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}\n * ```\n *\n * - `minIntegerDigits`:\n * The minimum number of integer digits before the decimal point.\n * Default is 1.\n *\n * - `minFractionDigits`:\n * The minimum number of digits after the decimal point.\n * Default is 0.\n *\n * - `maxFractionDigits`:\n * The maximum number of digits after the decimal point.\n * Default is 3.\n *\n * If the formatted value is truncated it will be rounded using the \"to-nearest\" method:\n *\n * ```\n * {{3.6 | number: '1.0-0'}}\n * \n *\n * {{-3.6 | number:'1.0-0'}}\n * \n * ```\n *\n * ### locale\n *\n * `locale` will format a value according to locale rules.\n * Locale determines group sizing and separator,\n * decimal point character, and other locale-specific configurations.\n *\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n *\n * See [Setting your app locale](guide/i18n-common-locale-id).\n *\n * ### Example\n *\n * The following code shows how the pipe transforms values\n * according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass DecimalPipe {\n constructor(_locale) {\n this._locale = _locale;\n }\n /**\n * @param value The value to be formatted.\n * @param digitsInfo Sets digit and decimal representation.\n * [See more](#digitsinfo).\n * @param locale Specifies what locale format rules to use.\n * [See more](#locale).\n */\n transform(value, digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n try {\n const num = strToNumber(value);\n return formatNumber(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(DecimalPipe, error.message);\n }\n }\n}\nDecimalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nDecimalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: DecimalPipe, isStandalone: true, name: \"number\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DecimalPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'number',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; } });\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a percentage\n * string, formatted according to locale rules that determine group sizing and\n * separator, decimal-point character, and other locale-specific\n * configurations.\n *\n * @see `formatPercent()`\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass PercentPipe {\n constructor(_locale) {\n this._locale = _locale;\n }\n /**\n *\n * @param value The number to be formatted as a percentage.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:
    \n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `0`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n-common-locale-id).\n */\n transform(value, digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n try {\n const num = strToNumber(value);\n return formatPercent(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(PercentPipe, error.message);\n }\n }\n}\nPercentPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nPercentPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: PercentPipe, isStandalone: true, name: \"percent\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PercentPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'percent',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; } });\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a currency string, formatted according to locale rules\n * that determine group sizing and separator, decimal-point character,\n * and other locale-specific configurations.\n *\n * {@a currency-code-deprecation}\n *
    \n *\n * **Deprecation notice:**\n *\n * The default currency code is currently always `USD` but this is deprecated from v9.\n *\n * **In v11 the default currency code will be taken from the current locale identified by\n * the `LOCALE_ID` token. See the [i18n guide](guide/i18n-common-locale-id) for\n * more information.**\n *\n * If you need the previous behavior then set it by creating a `DEFAULT_CURRENCY_CODE` provider in\n * your application `NgModule`:\n *\n * ```ts\n * {provide: DEFAULT_CURRENCY_CODE, useValue: 'USD'}\n * ```\n *\n *
    \n *\n * @see `getCurrencySymbol()`\n * @see `formatCurrency()`\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass CurrencyPipe {\n constructor(_locale, _defaultCurrencyCode = 'USD') {\n this._locale = _locale;\n this._defaultCurrencyCode = _defaultCurrencyCode;\n }\n /**\n *\n * @param value The number to be formatted as currency.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code,\n * such as `USD` for the US dollar and `EUR` for the euro. The default currency code can be\n * configured using the `DEFAULT_CURRENCY_CODE` injection token.\n * @param display The format for the currency indicator. One of the following:\n * - `code`: Show the code (such as `USD`).\n * - `symbol`(default): Show the symbol (such as `$`).\n * - `symbol-narrow`: Use the narrow symbol for locales that have two symbols for their\n * currency.\n * For example, the Canadian dollar CAD has the symbol `CA$` and the symbol-narrow `$`. If the\n * locale has no narrow symbol, uses the standard symbol for the locale.\n * - String: Use the given string value instead of a code or a symbol.\n * For example, an empty string will suppress the currency & symbol.\n * - Boolean (marked deprecated in v5): `true` for symbol and false for `code`.\n *\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:
    \n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `2`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `2`.\n * If not provided, the number will be formatted with the proper amount of digits,\n * depending on what the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) specifies.\n * For example, the Canadian dollar has 2 digits, whereas the Chilean peso has none.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n-common-locale-id).\n */\n transform(value, currencyCode = this._defaultCurrencyCode, display = 'symbol', digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n if (typeof display === 'boolean') {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && console && console.warn) {\n console.warn(`Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are \"code\", \"symbol\" or \"symbol-narrow\".`);\n }\n display = display ? 'symbol' : 'code';\n }\n let currency = currencyCode || this._defaultCurrencyCode;\n if (display !== 'code') {\n if (display === 'symbol' || display === 'symbol-narrow') {\n currency = getCurrencySymbol(currency, display === 'symbol' ? 'wide' : 'narrow', locale);\n }\n else {\n currency = display;\n }\n }\n try {\n const num = strToNumber(value);\n return formatCurrency(num, locale, currency, currencyCode, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(CurrencyPipe, error.message);\n }\n }\n}\nCurrencyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe });\nCurrencyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: \"currency\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: CurrencyPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'currency',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DEFAULT_CURRENCY_CODE]\n }] }]; } });\nfunction isValue(value) {\n return !(value == null || value === '' || value !== value);\n}\n/**\n * Transforms a string into a number (if needed).\n */\nfunction strToNumber(value) {\n // Convert strings to numbers\n if (typeof value === 'string' && !isNaN(Number(value) - parseFloat(value))) {\n return Number(value);\n }\n if (typeof value !== 'number') {\n throw new Error(`${value} is not a number`);\n }\n return value;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Creates a new `Array` or `String` containing a subset (slice) of the elements.\n *\n * @usageNotes\n *\n * All behavior is based on the expected behavior of the JavaScript API `Array.prototype.slice()`\n * and `String.prototype.slice()`.\n *\n * When operating on an `Array`, the returned `Array` is always a copy even when all\n * the elements are being returned.\n *\n * When operating on a blank value, the pipe returns the blank value.\n *\n * ### List Example\n *\n * This `ngFor` example:\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_list'}\n *\n * produces the following:\n *\n * ```html\n *
  • b
  • \n *
  • c
  • \n * ```\n *\n * ### String Examples\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_string'}\n *\n * @publicApi\n */\nclass SlicePipe {\n transform(value, start, end) {\n if (value == null)\n return null;\n if (!this.supports(value)) {\n throw invalidPipeArgumentError(SlicePipe, value);\n }\n return value.slice(start, end);\n }\n supports(obj) {\n return typeof obj === 'string' || Array.isArray(obj);\n }\n}\nSlicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nSlicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: SlicePipe, isStandalone: true, name: \"slice\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: SlicePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'slice',\n pure: false,\n standalone: true,\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A collection of Angular pipes that are likely to be used in each and every application.\n */\nconst COMMON_PIPES = [\n AsyncPipe,\n UpperCasePipe,\n LowerCasePipe,\n JsonPipe,\n SlicePipe,\n DecimalPipe,\n PercentPipe,\n TitleCasePipe,\n CurrencyPipe,\n DatePipe,\n I18nPluralPipe,\n I18nSelectPipe,\n KeyValuePipe,\n];\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Note: This does not contain the location providers,\n// as they need some platform specific implementations to work.\n/**\n * Exports all the basic Angular directives and pipes,\n * such as `NgIf`, `NgForOf`, `DecimalPipe`, and so on.\n * Re-exported by `BrowserModule`, which is included automatically in the root\n * `AppModule` when you create a new app with the CLI `new` command.\n *\n * @publicApi\n */\nclass CommonModule {\n}\nCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: CommonModule, imports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe], exports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe] });\nCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: CommonModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: CommonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [COMMON_DIRECTIVES, COMMON_PIPES],\n exports: [COMMON_DIRECTIVES, COMMON_PIPES],\n }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst PLATFORM_BROWSER_ID = 'browser';\nconst PLATFORM_SERVER_ID = 'server';\nconst PLATFORM_WORKER_APP_ID = 'browserWorkerApp';\nconst PLATFORM_WORKER_UI_ID = 'browserWorkerUi';\n/**\n * Returns whether a platform id represents a browser platform.\n * @publicApi\n */\nfunction isPlatformBrowser(platformId) {\n return platformId === PLATFORM_BROWSER_ID;\n}\n/**\n * Returns whether a platform id represents a server platform.\n * @publicApi\n */\nfunction isPlatformServer(platformId) {\n return platformId === PLATFORM_SERVER_ID;\n}\n/**\n * Returns whether a platform id represents a web worker app platform.\n * @publicApi\n */\nfunction isPlatformWorkerApp(platformId) {\n return platformId === PLATFORM_WORKER_APP_ID;\n}\n/**\n * Returns whether a platform id represents a web worker UI platform.\n * @publicApi\n */\nfunction isPlatformWorkerUi(platformId) {\n return platformId === PLATFORM_WORKER_UI_ID;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @publicApi\n */\nconst VERSION = new Version('14.3.0');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.\n *\n * @publicApi\n */\nclass ViewportScroller {\n}\n// De-sugared tree-shakable injection\n// See #23917\n/** @nocollapse */\nViewportScroller.ɵprov = ɵɵdefineInjectable({\n token: ViewportScroller,\n providedIn: 'root',\n factory: () => new BrowserViewportScroller(ɵɵinject(DOCUMENT), window)\n});\n/**\n * Manages the scroll position for a browser window.\n */\nclass BrowserViewportScroller {\n constructor(document, window) {\n this.document = document;\n this.window = window;\n this.offset = () => [0, 0];\n }\n /**\n * Configures the top offset used when scrolling to an anchor.\n * @param offset A position in screen coordinates (a tuple with x and y values)\n * or a function that returns the top offset position.\n *\n */\n setOffset(offset) {\n if (Array.isArray(offset)) {\n this.offset = () => offset;\n }\n else {\n this.offset = offset;\n }\n }\n /**\n * Retrieves the current scroll position.\n * @returns The position in screen coordinates.\n */\n getScrollPosition() {\n if (this.supportsScrolling()) {\n return [this.window.pageXOffset, this.window.pageYOffset];\n }\n else {\n return [0, 0];\n }\n }\n /**\n * Sets the scroll position.\n * @param position The new position in screen coordinates.\n */\n scrollToPosition(position) {\n if (this.supportsScrolling()) {\n this.window.scrollTo(position[0], position[1]);\n }\n }\n /**\n * Scrolls to an element and attempts to focus the element.\n *\n * Note that the function name here is misleading in that the target string may be an ID for a\n * non-anchor element.\n *\n * @param target The ID of an element or name of the anchor.\n *\n * @see https://html.spec.whatwg.org/#the-indicated-part-of-the-document\n * @see https://html.spec.whatwg.org/#scroll-to-fragid\n */\n scrollToAnchor(target) {\n if (!this.supportsScrolling()) {\n return;\n }\n const elSelected = findAnchorFromDocument(this.document, target);\n if (elSelected) {\n this.scrollToElement(elSelected);\n // After scrolling to the element, the spec dictates that we follow the focus steps for the\n // target. Rather than following the robust steps, simply attempt focus.\n //\n // @see https://html.spec.whatwg.org/#get-the-focusable-area\n // @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLOrForeignElement/focus\n // @see https://html.spec.whatwg.org/#focusable-area\n elSelected.focus();\n }\n }\n /**\n * Disables automatic scroll restoration provided by the browser.\n */\n setHistoryScrollRestoration(scrollRestoration) {\n if (this.supportScrollRestoration()) {\n const history = this.window.history;\n if (history && history.scrollRestoration) {\n history.scrollRestoration = scrollRestoration;\n }\n }\n }\n /**\n * Scrolls to an element using the native offset and the specified offset set on this scroller.\n *\n * The offset can be used when we know that there is a floating header and scrolling naively to an\n * element (ex: `scrollIntoView`) leaves the element hidden behind the floating header.\n */\n scrollToElement(el) {\n const rect = el.getBoundingClientRect();\n const left = rect.left + this.window.pageXOffset;\n const top = rect.top + this.window.pageYOffset;\n const offset = this.offset();\n this.window.scrollTo(left - offset[0], top - offset[1]);\n }\n /**\n * We only support scroll restoration when we can get a hold of window.\n * This means that we do not support this behavior when running in a web worker.\n *\n * Lifting this restriction right now would require more changes in the dom adapter.\n * Since webworkers aren't widely used, we will lift it once RouterScroller is\n * battle-tested.\n */\n supportScrollRestoration() {\n try {\n if (!this.supportsScrolling()) {\n return false;\n }\n // The `scrollRestoration` property could be on the `history` instance or its prototype.\n const scrollRestorationDescriptor = getScrollRestorationProperty(this.window.history) ||\n getScrollRestorationProperty(Object.getPrototypeOf(this.window.history));\n // We can write to the `scrollRestoration` property if it is a writable data field or it has a\n // setter function.\n return !!scrollRestorationDescriptor &&\n !!(scrollRestorationDescriptor.writable || scrollRestorationDescriptor.set);\n }\n catch {\n return false;\n }\n }\n supportsScrolling() {\n try {\n return !!this.window && !!this.window.scrollTo && 'pageXOffset' in this.window;\n }\n catch {\n return false;\n }\n }\n}\nfunction getScrollRestorationProperty(obj) {\n return Object.getOwnPropertyDescriptor(obj, 'scrollRestoration');\n}\nfunction findAnchorFromDocument(document, target) {\n const documentResult = document.getElementById(target) || document.getElementsByName(target)[0];\n if (documentResult) {\n return documentResult;\n }\n // `getElementById` and `getElementsByName` won't pierce through the shadow DOM so we\n // have to traverse the DOM manually and do the lookup through the shadow roots.\n if (typeof document.createTreeWalker === 'function' && document.body &&\n (document.body.createShadowRoot || document.body.attachShadow)) {\n const treeWalker = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT);\n let currentNode = treeWalker.currentNode;\n while (currentNode) {\n const shadowRoot = currentNode.shadowRoot;\n if (shadowRoot) {\n // Note that `ShadowRoot` doesn't support `getElementsByName`\n // so we have to fall back to `querySelector`.\n const result = shadowRoot.getElementById(target) || shadowRoot.querySelector(`[name=\"${target}\"]`);\n if (result) {\n return result;\n }\n }\n currentNode = treeWalker.nextNode();\n }\n }\n return null;\n}\n/**\n * Provides an empty implementation of the viewport scroller.\n */\nclass NullViewportScroller {\n /**\n * Empty implementation\n */\n setOffset(offset) { }\n /**\n * Empty implementation\n */\n getScrollPosition() {\n return [0, 0];\n }\n /**\n * Empty implementation\n */\n scrollToPosition(position) { }\n /**\n * Empty implementation\n */\n scrollToAnchor(anchor) { }\n /**\n * Empty implementation\n */\n setHistoryScrollRestoration(scrollRestoration) { }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A wrapper around the `XMLHttpRequest` constructor.\n *\n * @publicApi\n */\nclass XhrFactory {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Converts a string that represents a URL into a URL class instance.\nfunction getUrl(src, win) {\n // Don't use a base URL is the URL is absolute.\n return isAbsoluteUrl(src) ? new URL(src) : new URL(src, win.location.href);\n}\n// Checks whether a URL is absolute (i.e. starts with `http://` or `https://`).\nfunction isAbsoluteUrl(src) {\n return /^https?:\\/\\//.test(src);\n}\n// Given a URL, extract the hostname part.\n// If a URL is a relative one - the URL is returned as is.\nfunction extractHostname(url) {\n return isAbsoluteUrl(url) ? (new URL(url)).hostname : url;\n}\nfunction isValidPath(path) {\n const isString = typeof path === 'string';\n if (!isString || path.trim() === '') {\n return false;\n }\n // Calling new URL() will throw if the path string is malformed\n try {\n const url = new URL(path);\n return true;\n }\n catch {\n return false;\n }\n}\nfunction normalizePath(path) {\n return path.endsWith('/') ? path.slice(0, -1) : path;\n}\nfunction normalizeSrc(src) {\n return src.startsWith('/') ? src.slice(1) : src;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Noop image loader that does no transformation to the original src and just returns it as is.\n * This loader is used as a default one if more specific logic is not provided in an app config.\n *\n * @see `ImageLoader`\n * @see `NgOptimizedImage`\n */\nconst noopImageLoader = (config) => config.src;\n/**\n * Injection token that configures the image loader function.\n *\n * @see `ImageLoader`\n * @see `NgOptimizedImage`\n * @publicApi\n */\nconst IMAGE_LOADER = new InjectionToken('ImageLoader', {\n providedIn: 'root',\n factory: () => noopImageLoader,\n});\n/**\n * Internal helper function that makes it easier to introduce custom image loaders for the\n * `NgOptimizedImage` directive. It is enough to specify a URL builder function to obtain full DI\n * configuration for a given loader: a DI token corresponding to the actual loader function, plus DI\n * tokens managing preconnect check functionality.\n * @param buildUrlFn a function returning a full URL based on loader's configuration\n * @param exampleUrls example of full URLs for a given loader (used in error messages)\n * @returns a set of DI providers corresponding to the configured image loader\n */\nfunction createImageLoader(buildUrlFn, exampleUrls) {\n return function provideImageLoader(path) {\n if (!isValidPath(path)) {\n throwInvalidPathError(path, exampleUrls || []);\n }\n // The trailing / is stripped (if provided) to make URL construction (concatenation) easier in\n // the individual loader functions.\n path = normalizePath(path);\n const loaderFn = (config) => {\n if (isAbsoluteUrl(config.src)) {\n // Image loader functions expect an image file name (e.g. `my-image.png`)\n // or a relative path + a file name (e.g. `/a/b/c/my-image.png`) as an input,\n // so the final absolute URL can be constructed.\n // When an absolute URL is provided instead - the loader can not\n // build a final URL, thus the error is thrown to indicate that.\n throwUnexpectedAbsoluteUrlError(path, config.src);\n }\n return buildUrlFn(path, { ...config, src: normalizeSrc(config.src) });\n };\n const providers = [{ provide: IMAGE_LOADER, useValue: loaderFn }];\n return providers;\n };\n}\nfunction throwInvalidPathError(path, exampleUrls) {\n throw new ɵRuntimeError(2959 /* RuntimeErrorCode.INVALID_LOADER_ARGUMENTS */, ngDevMode &&\n `Image loader has detected an invalid path (\\`${path}\\`). ` +\n `To fix this, supply a path using one of the following formats: ${exampleUrls.join(' or ')}`);\n}\nfunction throwUnexpectedAbsoluteUrlError(path, url) {\n throw new ɵRuntimeError(2959 /* RuntimeErrorCode.INVALID_LOADER_ARGUMENTS */, ngDevMode &&\n `Image loader has detected a \\`\\` tag with an invalid \\`ngSrc\\` attribute: ${url}. ` +\n `This image loader expects \\`ngSrc\\` to be a relative URL - ` +\n `however the provided value is an absolute URL. ` +\n `To fix this, provide \\`ngSrc\\` as a path relative to the base URL ` +\n `configured for this loader (\\`${path}\\`).`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Function that generates an ImageLoader for [Cloudflare Image\n * Resizing](https://developers.cloudflare.com/images/image-resizing/) and turns it into an Angular\n * provider. Note: Cloudflare has multiple image products - this provider is specifically for\n * Cloudflare Image Resizing; it will not work with Cloudflare Images or Cloudflare Polish.\n *\n * @param path Your domain name, e.g. https://mysite.com\n * @returns Provider that provides an ImageLoader function\n *\n * @publicApi\n */\nconst provideCloudflareLoader = createImageLoader(createCloudflareUrl, ngDevMode ? ['https:///cdn-cgi/image//'] : undefined);\nfunction createCloudflareUrl(path, config) {\n let params = `format=auto`;\n if (config.width) {\n params += `,width=${config.width}`;\n }\n // Cloudflare image URLs format:\n // https://developers.cloudflare.com/images/image-resizing/url-format/\n return `${path}/cdn-cgi/image/${params}/${config.src}`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Name and URL tester for Cloudinary.\n */\nconst cloudinaryLoaderInfo = {\n name: 'Cloudinary',\n testUrl: isCloudinaryUrl\n};\nconst CLOUDINARY_LOADER_REGEX = /https?\\:\\/\\/[^\\/]+\\.cloudinary\\.com\\/.+/;\n/**\n * Tests whether a URL is from Cloudinary CDN.\n */\nfunction isCloudinaryUrl(url) {\n return CLOUDINARY_LOADER_REGEX.test(url);\n}\n/**\n * Function that generates an ImageLoader for Cloudinary and turns it into an Angular provider.\n *\n * @param path Base URL of your Cloudinary images\n * This URL should match one of the following formats:\n * https://res.cloudinary.com/mysite\n * https://mysite.cloudinary.com\n * https://subdomain.mysite.com\n * @returns Set of providers to configure the Cloudinary loader.\n *\n * @publicApi\n */\nconst provideCloudinaryLoader = createImageLoader(createCloudinaryUrl, ngDevMode ?\n [\n 'https://res.cloudinary.com/mysite', 'https://mysite.cloudinary.com',\n 'https://subdomain.mysite.com'\n ] :\n undefined);\nfunction createCloudinaryUrl(path, config) {\n // Cloudinary image URLformat:\n // https://cloudinary.com/documentation/image_transformations#transformation_url_structure\n // Example of a Cloudinary image URL:\n // https://res.cloudinary.com/mysite/image/upload/c_scale,f_auto,q_auto,w_600/marketing/tile-topics-m.png\n let params = `f_auto,q_auto`; // sets image format and quality to \"auto\"\n if (config.width) {\n params += `,w_${config.width}`;\n }\n return `${path}/image/upload/${params}/${config.src}`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Name and URL tester for ImageKit.\n */\nconst imageKitLoaderInfo = {\n name: 'ImageKit',\n testUrl: isImageKitUrl\n};\nconst IMAGE_KIT_LOADER_REGEX = /https?\\:\\/\\/[^\\/]+\\.imagekit\\.io\\/.+/;\n/**\n * Tests whether a URL is from ImageKit CDN.\n */\nfunction isImageKitUrl(url) {\n return IMAGE_KIT_LOADER_REGEX.test(url);\n}\n/**\n * Function that generates an ImageLoader for ImageKit and turns it into an Angular provider.\n *\n * @param path Base URL of your ImageKit images\n * This URL should match one of the following formats:\n * https://ik.imagekit.io/myaccount\n * https://subdomain.mysite.com\n * @returns Set of providers to configure the ImageKit loader.\n *\n * @publicApi\n */\nconst provideImageKitLoader = createImageLoader(createImagekitUrl, ngDevMode ? ['https://ik.imagekit.io/mysite', 'https://subdomain.mysite.com'] : undefined);\nfunction createImagekitUrl(path, config) {\n // Example of an ImageKit image URL:\n // https://ik.imagekit.io/demo/tr:w-300,h-300/medium_cafe_B1iTdD0C.jpg\n let params = `tr:q-auto`; // applies the \"auto quality\" transformation\n if (config.width) {\n params += `,w-${config.width}`;\n }\n return `${path}/${params}/${config.src}`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Name and URL tester for Imgix.\n */\nconst imgixLoaderInfo = {\n name: 'Imgix',\n testUrl: isImgixUrl\n};\nconst IMGIX_LOADER_REGEX = /https?\\:\\/\\/[^\\/]+\\.imgix\\.net\\/.+/;\n/**\n * Tests whether a URL is from Imgix CDN.\n */\nfunction isImgixUrl(url) {\n return IMGIX_LOADER_REGEX.test(url);\n}\n/**\n * Function that generates an ImageLoader for Imgix and turns it into an Angular provider.\n *\n * @param path path to the desired Imgix origin,\n * e.g. https://somepath.imgix.net or https://images.mysite.com\n * @returns Set of providers to configure the Imgix loader.\n *\n * @publicApi\n */\nconst provideImgixLoader = createImageLoader(createImgixUrl, ngDevMode ? ['https://somepath.imgix.net/'] : undefined);\nfunction createImgixUrl(path, config) {\n const url = new URL(`${path}/${config.src}`);\n // This setting ensures the smallest allowable format is set.\n url.searchParams.set('auto', 'format');\n if (config.width) {\n url.searchParams.set('w', config.width.toString());\n }\n return url.href;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Assembles directive details string, useful for error messages.\nfunction imgDirectiveDetails(ngSrc, includeNgSrc = true) {\n const ngSrcInfo = includeNgSrc ? `(activated on an element with the \\`ngSrc=\"${ngSrc}\"\\`) ` : '';\n return `The NgOptimizedImage directive ${ngSrcInfo}has detected that`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Asserts that the application is in development mode. Throws an error if the application is in\n * production mode. This assert can be used to make sure that there is no dev-mode code invoked in\n * the prod mode accidentally.\n */\nfunction assertDevMode(checkName) {\n if (!ngDevMode) {\n throw new ɵRuntimeError(2958 /* RuntimeErrorCode.UNEXPECTED_DEV_MODE_CHECK_IN_PROD_MODE */, `Unexpected invocation of the ${checkName} in the prod mode. ` +\n `Please make sure that the prod mode is enabled for production builds.`);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Observer that detects whether an image with `NgOptimizedImage`\n * is treated as a Largest Contentful Paint (LCP) element. If so,\n * asserts that the image has the `priority` attribute.\n *\n * Note: this is a dev-mode only class and it does not appear in prod bundles,\n * thus there is no `ngDevMode` use in the code.\n *\n * Based on https://web.dev/lcp/#measure-lcp-in-javascript.\n */\nclass LCPImageObserver {\n constructor() {\n // Map of full image URLs -> original `ngSrc` values.\n this.images = new Map();\n // Keep track of images for which `console.warn` was produced.\n this.alreadyWarned = new Set();\n this.window = null;\n this.observer = null;\n assertDevMode('LCP checker');\n const win = inject(DOCUMENT).defaultView;\n if (typeof win !== 'undefined' && typeof PerformanceObserver !== 'undefined') {\n this.window = win;\n this.observer = this.initPerformanceObserver();\n }\n }\n /**\n * Inits PerformanceObserver and subscribes to LCP events.\n * Based on https://web.dev/lcp/#measure-lcp-in-javascript\n */\n initPerformanceObserver() {\n const observer = new PerformanceObserver((entryList) => {\n const entries = entryList.getEntries();\n if (entries.length === 0)\n return;\n // We use the latest entry produced by the `PerformanceObserver` as the best\n // signal on which element is actually an LCP one. As an example, the first image to load on\n // a page, by virtue of being the only thing on the page so far, is often a LCP candidate\n // and gets reported by PerformanceObserver, but isn't necessarily the LCP element.\n const lcpElement = entries[entries.length - 1];\n // Cast to `any` due to missing `element` on the `LargestContentfulPaint` type of entry.\n // See https://developer.mozilla.org/en-US/docs/Web/API/LargestContentfulPaint\n const imgSrc = lcpElement.element?.src ?? '';\n // Exclude `data:` and `blob:` URLs, since they are not supported by the directive.\n if (imgSrc.startsWith('data:') || imgSrc.startsWith('blob:'))\n return;\n const imgNgSrc = this.images.get(imgSrc);\n if (imgNgSrc && !this.alreadyWarned.has(imgSrc)) {\n this.alreadyWarned.add(imgSrc);\n logMissingPriorityWarning(imgSrc);\n }\n });\n observer.observe({ type: 'largest-contentful-paint', buffered: true });\n return observer;\n }\n registerImage(rewrittenSrc, originalNgSrc) {\n if (!this.observer)\n return;\n this.images.set(getUrl(rewrittenSrc, this.window).href, originalNgSrc);\n }\n unregisterImage(rewrittenSrc) {\n if (!this.observer)\n return;\n this.images.delete(getUrl(rewrittenSrc, this.window).href);\n }\n ngOnDestroy() {\n if (!this.observer)\n return;\n this.observer.disconnect();\n this.images.clear();\n this.alreadyWarned.clear();\n }\n}\nLCPImageObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nLCPImageObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LCPImageObserver, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LCPImageObserver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return []; } });\nfunction logMissingPriorityWarning(ngSrc) {\n const directiveDetails = imgDirectiveDetails(ngSrc);\n console.warn(ɵformatRuntimeError(2955 /* RuntimeErrorCode.LCP_IMG_MISSING_PRIORITY */, `${directiveDetails} this image is the Largest Contentful Paint (LCP) ` +\n `element but was not marked \"priority\". This image should be marked ` +\n `\"priority\" in order to prioritize its loading. ` +\n `To fix this, add the \"priority\" attribute.`));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Set of origins that are always excluded from the preconnect checks.\nconst INTERNAL_PRECONNECT_CHECK_BLOCKLIST = new Set(['localhost', '127.0.0.1', '0.0.0.0']);\n/**\n * Injection token to configure which origins should be excluded\n * from the preconnect checks. It can either be a single string or an array of strings\n * to represent a group of origins, for example:\n *\n * ```typescript\n * {provide: PRECONNECT_CHECK_BLOCKLIST, useValue: 'https://your-domain.com'}\n * ```\n *\n * or:\n *\n * ```typescript\n * {provide: PRECONNECT_CHECK_BLOCKLIST,\n * useValue: ['https://your-domain-1.com', 'https://your-domain-2.com']}\n * ```\n *\n * @publicApi\n */\nconst PRECONNECT_CHECK_BLOCKLIST = new InjectionToken('PRECONNECT_CHECK_BLOCKLIST');\n/**\n * Contains the logic to detect whether an image, marked with the \"priority\" attribute\n * has a corresponding `` tag in the `document.head`.\n *\n * Note: this is a dev-mode only class, which should not appear in prod bundles,\n * thus there is no `ngDevMode` use in the code.\n */\nclass PreconnectLinkChecker {\n constructor() {\n this.document = inject(DOCUMENT);\n /**\n * Set of tags found on this page.\n * The `null` value indicates that there was no DOM query operation performed.\n */\n this.preconnectLinks = null;\n /*\n * Keep track of all already seen origin URLs to avoid repeating the same check.\n */\n this.alreadySeen = new Set();\n this.window = null;\n this.blocklist = new Set(INTERNAL_PRECONNECT_CHECK_BLOCKLIST);\n assertDevMode('preconnect link checker');\n const win = this.document.defaultView;\n if (typeof win !== 'undefined') {\n this.window = win;\n }\n const blocklist = inject(PRECONNECT_CHECK_BLOCKLIST, { optional: true });\n if (blocklist) {\n this.populateBlocklist(blocklist);\n }\n }\n populateBlocklist(origins) {\n if (Array.isArray(origins)) {\n deepForEach(origins, origin => {\n this.blocklist.add(extractHostname(origin));\n });\n }\n else {\n this.blocklist.add(extractHostname(origins));\n }\n }\n /**\n * Checks that a preconnect resource hint exists in the head for the\n * given src.\n *\n * @param rewrittenSrc src formatted with loader\n * @param originalNgSrc ngSrc value\n */\n assertPreconnect(rewrittenSrc, originalNgSrc) {\n if (!this.window)\n return;\n const imgUrl = getUrl(rewrittenSrc, this.window);\n if (this.blocklist.has(imgUrl.hostname) || this.alreadySeen.has(imgUrl.origin))\n return;\n // Register this origin as seen, so we don't check it again later.\n this.alreadySeen.add(imgUrl.origin);\n if (!this.preconnectLinks) {\n // Note: we query for preconnect links only *once* and cache the results\n // for the entire lifespan of an application, since it's unlikely that the\n // list would change frequently. This allows to make sure there are no\n // performance implications of making extra DOM lookups for each image.\n this.preconnectLinks = this.queryPreconnectLinks();\n }\n if (!this.preconnectLinks.has(imgUrl.origin)) {\n console.warn(ɵformatRuntimeError(2956 /* RuntimeErrorCode.PRIORITY_IMG_MISSING_PRECONNECT_TAG */, `${imgDirectiveDetails(originalNgSrc)} there is no preconnect tag present for this ` +\n `image. Preconnecting to the origin(s) that serve priority images ensures that these ` +\n `images are delivered as soon as possible. To fix this, please add the following ` +\n `element into the of the document:\\n` +\n ` `));\n }\n }\n queryPreconnectLinks() {\n const preconnectUrls = new Set();\n const selector = 'link[rel=preconnect]';\n const links = Array.from(this.document.querySelectorAll(selector));\n for (let link of links) {\n const url = getUrl(link.href, this.window);\n preconnectUrls.add(url.origin);\n }\n return preconnectUrls;\n }\n ngOnDestroy() {\n this.preconnectLinks?.clear();\n this.alreadySeen.clear();\n }\n}\nPreconnectLinkChecker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPreconnectLinkChecker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreconnectLinkChecker, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return []; } });\n/**\n * Invokes a callback for each element in the array. Also invokes a callback\n * recursively for each nested array.\n */\nfunction deepForEach(input, fn) {\n for (let value of input) {\n Array.isArray(value) ? deepForEach(value, fn) : fn(value);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * In SSR scenarios, a preload `` element is generated for priority images.\n * Having a large number of preload tags may negatively affect the performance,\n * so we warn developers (by throwing an error) if the number of preloaded images\n * is above a certain threshold. This const specifies this threshold.\n */\nconst DEFAULT_PRELOADED_IMAGES_LIMIT = 5;\n/**\n * Helps to keep track of priority images that already have a corresponding\n * preload tag (to avoid generating multiple preload tags with the same URL).\n *\n * This Set tracks the original src passed into the `ngSrc` input not the src after it has been\n * run through the specified `IMAGE_LOADER`.\n */\nconst PRELOADED_IMAGES = new InjectionToken('NG_OPTIMIZED_PRELOADED_IMAGES', { providedIn: 'root', factory: () => new Set() });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @description Contains the logic needed to track and add preload link tags to the `` tag. It\n * will also track what images have already had preload link tags added so as to not duplicate link\n * tags.\n *\n * In dev mode this service will validate that the number of preloaded images does not exceed the\n * configured default preloaded images limit: {@link DEFAULT_PRELOADED_IMAGES_LIMIT}.\n */\nclass PreloadLinkCreator {\n constructor() {\n this.preloadedImages = inject(PRELOADED_IMAGES);\n this.document = inject(DOCUMENT);\n }\n /**\n * @description Add a preload `` to the `` of the `index.html` that is served from the\n * server while using Angular Universal and SSR to kick off image loads for high priority images.\n *\n * The `sizes` (passed in from the user) and `srcset` (parsed and formatted from `ngSrcset`)\n * properties used to set the corresponding attributes, `imagesizes` and `imagesrcset`\n * respectively, on the preload `` tag so that the correctly sized image is preloaded from\n * the CDN.\n *\n * {@link https://web.dev/preload-responsive-images/#imagesrcset-and-imagesizes}\n *\n * @param renderer The `Renderer2` passed in from the directive\n * @param src The original src of the image that is set on the `ngSrc` input.\n * @param srcset The parsed and formatted srcset created from the `ngSrcset` input\n * @param sizes The value of the `sizes` attribute passed in to the `` tag\n */\n createPreloadLinkTag(renderer, src, srcset, sizes) {\n if (ngDevMode) {\n if (this.preloadedImages.size >= DEFAULT_PRELOADED_IMAGES_LIMIT) {\n throw new ɵRuntimeError(2961 /* RuntimeErrorCode.TOO_MANY_PRELOADED_IMAGES */, ngDevMode &&\n `The \\`NgOptimizedImage\\` directive has detected that more than ` +\n `${DEFAULT_PRELOADED_IMAGES_LIMIT} images were marked as priority. ` +\n `This might negatively affect an overall performance of the page. ` +\n `To fix this, remove the \"priority\" attribute from images with less priority.`);\n }\n }\n if (this.preloadedImages.has(src)) {\n return;\n }\n this.preloadedImages.add(src);\n const preload = renderer.createElement('link');\n renderer.setAttribute(preload, 'as', 'image');\n renderer.setAttribute(preload, 'href', src);\n renderer.setAttribute(preload, 'rel', 'preload');\n renderer.setAttribute(preload, 'fetchpriority', 'high');\n if (sizes) {\n renderer.setAttribute(preload, 'imageSizes', sizes);\n }\n if (srcset) {\n renderer.setAttribute(preload, 'imageSrcset', srcset);\n }\n renderer.appendChild(this.document.head, preload);\n }\n}\nPreloadLinkCreator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPreloadLinkCreator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreloadLinkCreator, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * When a Base64-encoded image is passed as an input to the `NgOptimizedImage` directive,\n * an error is thrown. The image content (as a string) might be very long, thus making\n * it hard to read an error message if the entire string is included. This const defines\n * the number of characters that should be included into the error message. The rest\n * of the content is truncated.\n */\nconst BASE64_IMG_MAX_LENGTH_IN_ERROR = 50;\n/**\n * RegExpr to determine whether a src in a srcset is using width descriptors.\n * Should match something like: \"100w, 200w\".\n */\nconst VALID_WIDTH_DESCRIPTOR_SRCSET = /^((\\s*\\d+w\\s*(,|$)){1,})$/;\n/**\n * RegExpr to determine whether a src in a srcset is using density descriptors.\n * Should match something like: \"1x, 2x, 50x\". Also supports decimals like \"1.5x, 1.50x\".\n */\nconst VALID_DENSITY_DESCRIPTOR_SRCSET = /^((\\s*\\d+(\\.\\d+)?x\\s*(,|$)){1,})$/;\n/**\n * Srcset values with a density descriptor higher than this value will actively\n * throw an error. Such densities are not permitted as they cause image sizes\n * to be unreasonably large and slow down LCP.\n */\nconst ABSOLUTE_SRCSET_DENSITY_CAP = 3;\n/**\n * Used only in error message text to communicate best practices, as we will\n * only throw based on the slightly more conservative ABSOLUTE_SRCSET_DENSITY_CAP.\n */\nconst RECOMMENDED_SRCSET_DENSITY_CAP = 2;\n/**\n * Used in generating automatic density-based srcsets\n */\nconst DENSITY_SRCSET_MULTIPLIERS = [1, 2];\n/**\n * Used to determine which breakpoints to use on full-width images\n */\nconst VIEWPORT_BREAKPOINT_CUTOFF = 640;\n/**\n * Used to determine whether two aspect ratios are similar in value.\n */\nconst ASPECT_RATIO_TOLERANCE = .1;\n/**\n * Used to determine whether the image has been requested at an overly\n * large size compared to the actual rendered image size (after taking\n * into account a typical device pixel ratio). In pixels.\n */\nconst OVERSIZED_IMAGE_TOLERANCE = 1000;\n/**\n * Used to limit automatic srcset generation of very large sources for\n * fixed-size images. In pixels.\n */\nconst FIXED_SRCSET_WIDTH_LIMIT = 1920;\nconst FIXED_SRCSET_HEIGHT_LIMIT = 1080;\n/** Info about built-in loaders we can test for. */\nconst BUILT_IN_LOADERS = [imgixLoaderInfo, imageKitLoaderInfo, cloudinaryLoaderInfo];\nconst defaultConfig = {\n breakpoints: [16, 32, 48, 64, 96, 128, 256, 384, 640, 750, 828, 1080, 1200, 1920, 2048, 3840],\n};\n/**\n * Injection token that configures the image optimized image functionality.\n *\n * @see `NgOptimizedImage`\n * @publicApi\n * @developerPreview\n */\nconst IMAGE_CONFIG = new InjectionToken('ImageConfig', { providedIn: 'root', factory: () => defaultConfig });\n/**\n * Directive that improves image loading performance by enforcing best practices.\n *\n * `NgOptimizedImage` ensures that the loading of the Largest Contentful Paint (LCP) image is\n * prioritized by:\n * - Automatically setting the `fetchpriority` attribute on the `` tag\n * - Lazy loading non-priority images by default\n * - Asserting that there is a corresponding preconnect link tag in the document head\n *\n * In addition, the directive:\n * - Generates appropriate asset URLs if a corresponding `ImageLoader` function is provided\n * - Automatically generates a srcset\n * - Requires that `width` and `height` are set\n * - Warns if `width` or `height` have been set incorrectly\n * - Warns if the image will be visually distorted when rendered\n *\n * @usageNotes\n * The `NgOptimizedImage` directive is marked as [standalone](guide/standalone-components) and can\n * be imported directly.\n *\n * Follow the steps below to enable and use the directive:\n * 1. Import it into the necessary NgModule or a standalone Component.\n * 2. Optionally provide an `ImageLoader` if you use an image hosting service.\n * 3. Update the necessary `` tags in templates and replace `src` attributes with `ngSrc`.\n * Using a `ngSrc` allows the directive to control when the `src` gets set, which triggers an image\n * download.\n *\n * Step 1: import the `NgOptimizedImage` directive.\n *\n * ```typescript\n * import { NgOptimizedImage } from '@angular/common';\n *\n * // Include it into the necessary NgModule\n * @NgModule({\n * imports: [NgOptimizedImage],\n * })\n * class AppModule {}\n *\n * // ... or a standalone Component\n * @Component({\n * standalone: true\n * imports: [NgOptimizedImage],\n * })\n * class MyStandaloneComponent {}\n * ```\n *\n * Step 2: configure a loader.\n *\n * To use the **default loader**: no additional code changes are necessary. The URL returned by the\n * generic loader will always match the value of \"src\". In other words, this loader applies no\n * transformations to the resource URL and the value of the `ngSrc` attribute will be used as is.\n *\n * To use an existing loader for a **third-party image service**: add the provider factory for your\n * chosen service to the `providers` array. In the example below, the Imgix loader is used:\n *\n * ```typescript\n * import {provideImgixLoader} from '@angular/common';\n *\n * // Call the function and add the result to the `providers` array:\n * providers: [\n * provideImgixLoader(\"https://my.base.url/\"),\n * ],\n * ```\n *\n * The `NgOptimizedImage` directive provides the following functions:\n * - `provideCloudflareLoader`\n * - `provideCloudinaryLoader`\n * - `provideImageKitLoader`\n * - `provideImgixLoader`\n *\n * If you use a different image provider, you can create a custom loader function as described\n * below.\n *\n * To use a **custom loader**: provide your loader function as a value for the `IMAGE_LOADER` DI\n * token.\n *\n * ```typescript\n * import {IMAGE_LOADER, ImageLoaderConfig} from '@angular/common';\n *\n * // Configure the loader using the `IMAGE_LOADER` token.\n * providers: [\n * {\n * provide: IMAGE_LOADER,\n * useValue: (config: ImageLoaderConfig) => {\n * return `https://example.com/${config.src}-${config.width}.jpg}`;\n * }\n * },\n * ],\n * ```\n *\n * Step 3: update `` tags in templates to use `ngSrc` instead of `src`.\n *\n * ```\n * \n * ```\n *\n * @publicApi\n */\nclass NgOptimizedImage {\n constructor() {\n this.imageLoader = inject(IMAGE_LOADER);\n this.config = processConfig(inject(IMAGE_CONFIG));\n this.renderer = inject(Renderer2);\n this.imgElement = inject(ElementRef).nativeElement;\n this.injector = inject(Injector);\n this.isServer = isPlatformServer(inject(PLATFORM_ID));\n this.preloadLinkChecker = inject(PreloadLinkCreator);\n // a LCP image observer - should be injected only in the dev mode\n this.lcpObserver = ngDevMode ? this.injector.get(LCPImageObserver) : null;\n /**\n * Calculate the rewritten `src` once and store it.\n * This is needed to avoid repetitive calculations and make sure the directive cleanup in the\n * `ngOnDestroy` does not rely on the `IMAGE_LOADER` logic (which in turn can rely on some other\n * instance that might be already destroyed).\n */\n this._renderedSrc = null;\n this._priority = false;\n this._disableOptimizedSrcset = false;\n this._fill = false;\n }\n /**\n * For responsive images: the intrinsic width of the image in pixels.\n * For fixed size images: the desired rendered width of the image in pixels.\n */\n set width(value) {\n ngDevMode && assertGreaterThanZero(this, value, 'width');\n this._width = inputToInteger(value);\n }\n get width() {\n return this._width;\n }\n /**\n * For responsive images: the intrinsic height of the image in pixels.\n * For fixed size images: the desired rendered height of the image in pixels.* The intrinsic\n * height of the image in pixels.\n */\n set height(value) {\n ngDevMode && assertGreaterThanZero(this, value, 'height');\n this._height = inputToInteger(value);\n }\n get height() {\n return this._height;\n }\n /**\n * Indicates whether this image should have a high priority.\n */\n set priority(value) {\n this._priority = inputToBoolean(value);\n }\n get priority() {\n return this._priority;\n }\n /**\n * Disables automatic srcset generation for this image.\n */\n set disableOptimizedSrcset(value) {\n this._disableOptimizedSrcset = inputToBoolean(value);\n }\n get disableOptimizedSrcset() {\n return this._disableOptimizedSrcset;\n }\n /**\n * Sets the image to \"fill mode\", which eliminates the height/width requirement and adds\n * styles such that the image fills its containing element.\n *\n * @developerPreview\n */\n set fill(value) {\n this._fill = inputToBoolean(value);\n }\n get fill() {\n return this._fill;\n }\n /** @nodoc */\n ngOnInit() {\n if (ngDevMode) {\n assertNonEmptyInput(this, 'ngSrc', this.ngSrc);\n assertValidNgSrcset(this, this.ngSrcset);\n assertNoConflictingSrc(this);\n if (this.ngSrcset) {\n assertNoConflictingSrcset(this);\n }\n assertNotBase64Image(this);\n assertNotBlobUrl(this);\n if (this.fill) {\n assertEmptyWidthAndHeight(this);\n assertNonZeroRenderedHeight(this, this.imgElement, this.renderer);\n }\n else {\n assertNonEmptyWidthAndHeight(this);\n // Only check for distorted images when not in fill mode, where\n // images may be intentionally stretched, cropped or letterboxed.\n assertNoImageDistortion(this, this.imgElement, this.renderer);\n }\n assertValidLoadingInput(this);\n if (!this.ngSrcset) {\n assertNoComplexSizes(this);\n }\n assertNotMissingBuiltInLoader(this.ngSrc, this.imageLoader);\n assertNoNgSrcsetWithoutLoader(this, this.imageLoader);\n assertNoLoaderParamsWithoutLoader(this, this.imageLoader);\n if (this.priority) {\n const checker = this.injector.get(PreconnectLinkChecker);\n checker.assertPreconnect(this.getRewrittenSrc(), this.ngSrc);\n }\n else {\n // Monitor whether an image is an LCP element only in case\n // the `priority` attribute is missing. Otherwise, an image\n // has the necessary settings and no extra checks are required.\n if (this.lcpObserver !== null) {\n const ngZone = this.injector.get(NgZone);\n ngZone.runOutsideAngular(() => {\n this.lcpObserver.registerImage(this.getRewrittenSrc(), this.ngSrc);\n });\n }\n }\n }\n this.setHostAttributes();\n }\n setHostAttributes() {\n // Must set width/height explicitly in case they are bound (in which case they will\n // only be reflected and not found by the browser)\n if (this.fill) {\n if (!this.sizes) {\n this.sizes = '100vw';\n }\n }\n else {\n this.setHostAttribute('width', this.width.toString());\n this.setHostAttribute('height', this.height.toString());\n }\n this.setHostAttribute('loading', this.getLoadingBehavior());\n this.setHostAttribute('fetchpriority', this.getFetchPriority());\n // The `data-ng-img` attribute flags an image as using the directive, to allow\n // for analysis of the directive's performance.\n this.setHostAttribute('ng-img', 'true');\n // The `src` and `srcset` attributes should be set last since other attributes\n // could affect the image's loading behavior.\n const rewrittenSrc = this.getRewrittenSrc();\n this.setHostAttribute('src', rewrittenSrc);\n let rewrittenSrcset = undefined;\n if (this.sizes) {\n this.setHostAttribute('sizes', this.sizes);\n }\n if (this.ngSrcset) {\n rewrittenSrcset = this.getRewrittenSrcset();\n }\n else if (this.shouldGenerateAutomaticSrcset()) {\n rewrittenSrcset = this.getAutomaticSrcset();\n }\n if (rewrittenSrcset) {\n this.setHostAttribute('srcset', rewrittenSrcset);\n }\n if (this.isServer && this.priority) {\n this.preloadLinkChecker.createPreloadLinkTag(this.renderer, rewrittenSrc, rewrittenSrcset, this.sizes);\n }\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (ngDevMode) {\n assertNoPostInitInputChange(this, changes, [\n 'ngSrc',\n 'ngSrcset',\n 'width',\n 'height',\n 'priority',\n 'fill',\n 'loading',\n 'sizes',\n 'loaderParams',\n 'disableOptimizedSrcset',\n ]);\n }\n }\n callImageLoader(configWithoutCustomParams) {\n let augmentedConfig = configWithoutCustomParams;\n if (this.loaderParams) {\n augmentedConfig.loaderParams = this.loaderParams;\n }\n return this.imageLoader(augmentedConfig);\n }\n getLoadingBehavior() {\n if (!this.priority && this.loading !== undefined) {\n return this.loading;\n }\n return this.priority ? 'eager' : 'lazy';\n }\n getFetchPriority() {\n return this.priority ? 'high' : 'auto';\n }\n getRewrittenSrc() {\n // ImageLoaderConfig supports setting a width property. However, we're not setting width here\n // because if the developer uses rendered width instead of intrinsic width in the HTML width\n // attribute, the image requested may be too small for 2x+ screens.\n if (!this._renderedSrc) {\n const imgConfig = { src: this.ngSrc };\n // Cache calculated image src to reuse it later in the code.\n this._renderedSrc = this.callImageLoader(imgConfig);\n }\n return this._renderedSrc;\n }\n getRewrittenSrcset() {\n const widthSrcSet = VALID_WIDTH_DESCRIPTOR_SRCSET.test(this.ngSrcset);\n const finalSrcs = this.ngSrcset.split(',').filter(src => src !== '').map(srcStr => {\n srcStr = srcStr.trim();\n const width = widthSrcSet ? parseFloat(srcStr) : parseFloat(srcStr) * this.width;\n return `${this.callImageLoader({ src: this.ngSrc, width })} ${srcStr}`;\n });\n return finalSrcs.join(', ');\n }\n getAutomaticSrcset() {\n if (this.sizes) {\n return this.getResponsiveSrcset();\n }\n else {\n return this.getFixedSrcset();\n }\n }\n getResponsiveSrcset() {\n const { breakpoints } = this.config;\n let filteredBreakpoints = breakpoints;\n if (this.sizes?.trim() === '100vw') {\n // Since this is a full-screen-width image, our srcset only needs to include\n // breakpoints with full viewport widths.\n filteredBreakpoints = breakpoints.filter(bp => bp >= VIEWPORT_BREAKPOINT_CUTOFF);\n }\n const finalSrcs = filteredBreakpoints.map(bp => `${this.callImageLoader({ src: this.ngSrc, width: bp })} ${bp}w`);\n return finalSrcs.join(', ');\n }\n getFixedSrcset() {\n const finalSrcs = DENSITY_SRCSET_MULTIPLIERS.map(multiplier => {\n const imgUrl = this.callImageLoader({ src: this.ngSrc, width: this.width * multiplier });\n return `${imgUrl} ${multiplier}x`;\n });\n return finalSrcs.join(', ');\n }\n shouldGenerateAutomaticSrcset() {\n return !this._disableOptimizedSrcset && !this.srcset && this.imageLoader !== noopImageLoader &&\n !(this.width > FIXED_SRCSET_WIDTH_LIMIT || this.height > FIXED_SRCSET_HEIGHT_LIMIT);\n }\n /** @nodoc */\n ngOnDestroy() {\n if (ngDevMode) {\n if (!this.priority && this._renderedSrc !== null && this.lcpObserver !== null) {\n this.lcpObserver.unregisterImage(this._renderedSrc);\n }\n }\n }\n setHostAttribute(name, value) {\n this.renderer.setAttribute(this.imgElement, name, value);\n }\n}\nNgOptimizedImage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nNgOptimizedImage.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgOptimizedImage, isStandalone: true, selector: \"img[ngSrc]\", inputs: { ngSrc: \"ngSrc\", ngSrcset: \"ngSrcset\", sizes: \"sizes\", width: \"width\", height: \"height\", loading: \"loading\", priority: \"priority\", loaderParams: \"loaderParams\", disableOptimizedSrcset: \"disableOptimizedSrcset\", fill: \"fill\", src: \"src\", srcset: \"srcset\" }, host: { properties: { \"style.position\": \"fill ? \\\"absolute\\\" : null\", \"style.width\": \"fill ? \\\"100%\\\" : null\", \"style.height\": \"fill ? \\\"100%\\\" : null\", \"style.inset\": \"fill ? \\\"0px\\\" : null\" } }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgOptimizedImage, decorators: [{\n type: Directive,\n args: [{\n standalone: true,\n selector: 'img[ngSrc]',\n host: {\n '[style.position]': 'fill ? \"absolute\" : null',\n '[style.width]': 'fill ? \"100%\" : null',\n '[style.height]': 'fill ? \"100%\" : null',\n '[style.inset]': 'fill ? \"0px\" : null'\n }\n }]\n }], propDecorators: { ngSrc: [{\n type: Input\n }], ngSrcset: [{\n type: Input\n }], sizes: [{\n type: Input\n }], width: [{\n type: Input\n }], height: [{\n type: Input\n }], loading: [{\n type: Input\n }], priority: [{\n type: Input\n }], loaderParams: [{\n type: Input\n }], disableOptimizedSrcset: [{\n type: Input\n }], fill: [{\n type: Input\n }], src: [{\n type: Input\n }], srcset: [{\n type: Input\n }] } });\n/***** Helpers *****/\n/**\n * Convert input value to integer.\n */\nfunction inputToInteger(value) {\n return typeof value === 'string' ? parseInt(value, 10) : value;\n}\n/**\n * Convert input value to boolean.\n */\nfunction inputToBoolean(value) {\n return value != null && `${value}` !== 'false';\n}\n/**\n * Sorts provided config breakpoints and uses defaults.\n */\nfunction processConfig(config) {\n let sortedBreakpoints = {};\n if (config.breakpoints) {\n sortedBreakpoints.breakpoints = config.breakpoints.sort((a, b) => a - b);\n }\n return Object.assign({}, defaultConfig, config, sortedBreakpoints);\n}\n/***** Assert functions *****/\n/**\n * Verifies that there is no `src` set on a host element.\n */\nfunction assertNoConflictingSrc(dir) {\n if (dir.src) {\n throw new ɵRuntimeError(2950 /* RuntimeErrorCode.UNEXPECTED_SRC_ATTR */, `${imgDirectiveDetails(dir.ngSrc)} both \\`src\\` and \\`ngSrc\\` have been set. ` +\n `Supplying both of these attributes breaks lazy loading. ` +\n `The NgOptimizedImage directive sets \\`src\\` itself based on the value of \\`ngSrc\\`. ` +\n `To fix this, please remove the \\`src\\` attribute.`);\n }\n}\n/**\n * Verifies that there is no `srcset` set on a host element.\n */\nfunction assertNoConflictingSrcset(dir) {\n if (dir.srcset) {\n throw new ɵRuntimeError(2951 /* RuntimeErrorCode.UNEXPECTED_SRCSET_ATTR */, `${imgDirectiveDetails(dir.ngSrc)} both \\`srcset\\` and \\`ngSrcset\\` have been set. ` +\n `Supplying both of these attributes breaks lazy loading. ` +\n `The NgOptimizedImage directive sets \\`srcset\\` itself based on the value of ` +\n `\\`ngSrcset\\`. To fix this, please remove the \\`srcset\\` attribute.`);\n }\n}\n/**\n * Verifies that the `ngSrc` is not a Base64-encoded image.\n */\nfunction assertNotBase64Image(dir) {\n let ngSrc = dir.ngSrc.trim();\n if (ngSrc.startsWith('data:')) {\n if (ngSrc.length > BASE64_IMG_MAX_LENGTH_IN_ERROR) {\n ngSrc = ngSrc.substring(0, BASE64_IMG_MAX_LENGTH_IN_ERROR) + '...';\n }\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc, false)} \\`ngSrc\\` is a Base64-encoded string ` +\n `(${ngSrc}). NgOptimizedImage does not support Base64-encoded strings. ` +\n `To fix this, disable the NgOptimizedImage directive for this element ` +\n `by removing \\`ngSrc\\` and using a standard \\`src\\` attribute instead.`);\n }\n}\n/**\n * Verifies that the 'sizes' only includes responsive values.\n */\nfunction assertNoComplexSizes(dir) {\n let sizes = dir.sizes;\n if (sizes?.match(/((\\)|,)\\s|^)\\d+px/)) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc, false)} \\`sizes\\` was set to a string including ` +\n `pixel values. For automatic \\`srcset\\` generation, \\`sizes\\` must only include responsive ` +\n `values, such as \\`sizes=\"50vw\"\\` or \\`sizes=\"(min-width: 768px) 50vw, 100vw\"\\`. ` +\n `To fix this, modify the \\`sizes\\` attribute, or provide your own \\`ngSrcset\\` value directly.`);\n }\n}\n/**\n * Verifies that the `ngSrc` is not a Blob URL.\n */\nfunction assertNotBlobUrl(dir) {\n const ngSrc = dir.ngSrc.trim();\n if (ngSrc.startsWith('blob:')) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`ngSrc\\` was set to a blob URL (${ngSrc}). ` +\n `Blob URLs are not supported by the NgOptimizedImage directive. ` +\n `To fix this, disable the NgOptimizedImage directive for this element ` +\n `by removing \\`ngSrc\\` and using a regular \\`src\\` attribute instead.`);\n }\n}\n/**\n * Verifies that the input is set to a non-empty string.\n */\nfunction assertNonEmptyInput(dir, name, value) {\n const isString = typeof value === 'string';\n const isEmptyString = isString && value.trim() === '';\n if (!isString || isEmptyString) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`${name}\\` has an invalid value ` +\n `(\\`${value}\\`). To fix this, change the value to a non-empty string.`);\n }\n}\n/**\n * Verifies that the `ngSrcset` is in a valid format, e.g. \"100w, 200w\" or \"1x, 2x\".\n */\nfunction assertValidNgSrcset(dir, value) {\n if (value == null)\n return;\n assertNonEmptyInput(dir, 'ngSrcset', value);\n const stringVal = value;\n const isValidWidthDescriptor = VALID_WIDTH_DESCRIPTOR_SRCSET.test(stringVal);\n const isValidDensityDescriptor = VALID_DENSITY_DESCRIPTOR_SRCSET.test(stringVal);\n if (isValidDensityDescriptor) {\n assertUnderDensityCap(dir, stringVal);\n }\n const isValidSrcset = isValidWidthDescriptor || isValidDensityDescriptor;\n if (!isValidSrcset) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`ngSrcset\\` has an invalid value (\\`${value}\\`). ` +\n `To fix this, supply \\`ngSrcset\\` using a comma-separated list of one or more width ` +\n `descriptors (e.g. \"100w, 200w\") or density descriptors (e.g. \"1x, 2x\").`);\n }\n}\nfunction assertUnderDensityCap(dir, value) {\n const underDensityCap = value.split(',').every(num => num === '' || parseFloat(num) <= ABSOLUTE_SRCSET_DENSITY_CAP);\n if (!underDensityCap) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`ngSrcset\\` contains an unsupported image density:` +\n `\\`${value}\\`. NgOptimizedImage generally recommends a max image density of ` +\n `${RECOMMENDED_SRCSET_DENSITY_CAP}x but supports image densities up to ` +\n `${ABSOLUTE_SRCSET_DENSITY_CAP}x. The human eye cannot distinguish between image densities ` +\n `greater than ${RECOMMENDED_SRCSET_DENSITY_CAP}x - which makes them unnecessary for ` +\n `most use cases. Images that will be pinch-zoomed are typically the primary use case for ` +\n `${ABSOLUTE_SRCSET_DENSITY_CAP}x images. Please remove the high density descriptor and try again.`);\n }\n}\n/**\n * Creates a `RuntimeError` instance to represent a situation when an input is set after\n * the directive has initialized.\n */\nfunction postInitInputChangeError(dir, inputName) {\n let reason;\n if (inputName === 'width' || inputName === 'height') {\n reason = `Changing \\`${inputName}\\` may result in different attribute value ` +\n `applied to the underlying image element and cause layout shifts on a page.`;\n }\n else {\n reason = `Changing the \\`${inputName}\\` would have no effect on the underlying ` +\n `image element, because the resource loading has already occurred.`;\n }\n return new ɵRuntimeError(2953 /* RuntimeErrorCode.UNEXPECTED_INPUT_CHANGE */, `${imgDirectiveDetails(dir.ngSrc)} \\`${inputName}\\` was updated after initialization. ` +\n `The NgOptimizedImage directive will not react to this input change. ${reason} ` +\n `To fix this, either switch \\`${inputName}\\` to a static value ` +\n `or wrap the image element in an *ngIf that is gated on the necessary value.`);\n}\n/**\n * Verify that none of the listed inputs has changed.\n */\nfunction assertNoPostInitInputChange(dir, changes, inputs) {\n inputs.forEach(input => {\n const isUpdated = changes.hasOwnProperty(input);\n if (isUpdated && !changes[input].isFirstChange()) {\n if (input === 'ngSrc') {\n // When the `ngSrc` input changes, we detect that only in the\n // `ngOnChanges` hook, thus the `ngSrc` is already set. We use\n // `ngSrc` in the error message, so we use a previous value, but\n // not the updated one in it.\n dir = { ngSrc: changes[input].previousValue };\n }\n throw postInitInputChangeError(dir, input);\n }\n });\n}\n/**\n * Verifies that a specified input is a number greater than 0.\n */\nfunction assertGreaterThanZero(dir, inputValue, inputName) {\n const validNumber = typeof inputValue === 'number' && inputValue > 0;\n const validString = typeof inputValue === 'string' && /^\\d+$/.test(inputValue.trim()) && parseInt(inputValue) > 0;\n if (!validNumber && !validString) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`${inputName}\\` has an invalid value ` +\n `(\\`${inputValue}\\`). To fix this, provide \\`${inputName}\\` ` +\n `as a number greater than 0.`);\n }\n}\n/**\n * Verifies that the rendered image is not visually distorted. Effectively this is checking:\n * - Whether the \"width\" and \"height\" attributes reflect the actual dimensions of the image.\n * - Whether image styling is \"correct\" (see below for a longer explanation).\n */\nfunction assertNoImageDistortion(dir, img, renderer) {\n const removeListenerFn = renderer.listen(img, 'load', () => {\n removeListenerFn();\n const renderedWidth = img.clientWidth;\n const renderedHeight = img.clientHeight;\n const renderedAspectRatio = renderedWidth / renderedHeight;\n const nonZeroRenderedDimensions = renderedWidth !== 0 && renderedHeight !== 0;\n const intrinsicWidth = img.naturalWidth;\n const intrinsicHeight = img.naturalHeight;\n const intrinsicAspectRatio = intrinsicWidth / intrinsicHeight;\n const suppliedWidth = dir.width;\n const suppliedHeight = dir.height;\n const suppliedAspectRatio = suppliedWidth / suppliedHeight;\n // Tolerance is used to account for the impact of subpixel rendering.\n // Due to subpixel rendering, the rendered, intrinsic, and supplied\n // aspect ratios of a correctly configured image may not exactly match.\n // For example, a `width=4030 height=3020` image might have a rendered\n // size of \"1062w, 796.48h\". (An aspect ratio of 1.334... vs. 1.333...)\n const inaccurateDimensions = Math.abs(suppliedAspectRatio - intrinsicAspectRatio) > ASPECT_RATIO_TOLERANCE;\n const stylingDistortion = nonZeroRenderedDimensions &&\n Math.abs(intrinsicAspectRatio - renderedAspectRatio) > ASPECT_RATIO_TOLERANCE;\n if (inaccurateDimensions) {\n console.warn(ɵformatRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the aspect ratio of the image does not match ` +\n `the aspect ratio indicated by the width and height attributes. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h ` +\n `(aspect-ratio: ${intrinsicAspectRatio}). \\nSupplied width and height attributes: ` +\n `${suppliedWidth}w x ${suppliedHeight}h (aspect-ratio: ${suppliedAspectRatio}). ` +\n `\\nTo fix this, update the width and height attributes.`));\n }\n else if (stylingDistortion) {\n console.warn(ɵformatRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the aspect ratio of the rendered image ` +\n `does not match the image's intrinsic aspect ratio. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h ` +\n `(aspect-ratio: ${intrinsicAspectRatio}). \\nRendered image size: ` +\n `${renderedWidth}w x ${renderedHeight}h (aspect-ratio: ` +\n `${renderedAspectRatio}). \\nThis issue can occur if \"width\" and \"height\" ` +\n `attributes are added to an image without updating the corresponding ` +\n `image styling. To fix this, adjust image styling. In most cases, ` +\n `adding \"height: auto\" or \"width: auto\" to the image styling will fix ` +\n `this issue.`));\n }\n else if (!dir.ngSrcset && nonZeroRenderedDimensions) {\n // If `ngSrcset` hasn't been set, sanity check the intrinsic size.\n const recommendedWidth = RECOMMENDED_SRCSET_DENSITY_CAP * renderedWidth;\n const recommendedHeight = RECOMMENDED_SRCSET_DENSITY_CAP * renderedHeight;\n const oversizedWidth = (intrinsicWidth - recommendedWidth) >= OVERSIZED_IMAGE_TOLERANCE;\n const oversizedHeight = (intrinsicHeight - recommendedHeight) >= OVERSIZED_IMAGE_TOLERANCE;\n if (oversizedWidth || oversizedHeight) {\n console.warn(ɵformatRuntimeError(2960 /* RuntimeErrorCode.OVERSIZED_IMAGE */, `${imgDirectiveDetails(dir.ngSrc)} the intrinsic image is significantly ` +\n `larger than necessary. ` +\n `\\nRendered image size: ${renderedWidth}w x ${renderedHeight}h. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h. ` +\n `\\nRecommended intrinsic image size: ${recommendedWidth}w x ${recommendedHeight}h. ` +\n `\\nNote: Recommended intrinsic image size is calculated assuming a maximum DPR of ` +\n `${RECOMMENDED_SRCSET_DENSITY_CAP}. To improve loading time, resize the image ` +\n `or consider using the \"ngSrcset\" and \"sizes\" attributes.`));\n }\n }\n });\n}\n/**\n * Verifies that a specified input is set.\n */\nfunction assertNonEmptyWidthAndHeight(dir) {\n let missingAttributes = [];\n if (dir.width === undefined)\n missingAttributes.push('width');\n if (dir.height === undefined)\n missingAttributes.push('height');\n if (missingAttributes.length > 0) {\n throw new ɵRuntimeError(2954 /* RuntimeErrorCode.REQUIRED_INPUT_MISSING */, `${imgDirectiveDetails(dir.ngSrc)} these required attributes ` +\n `are missing: ${missingAttributes.map(attr => `\"${attr}\"`).join(', ')}. ` +\n `Including \"width\" and \"height\" attributes will prevent image-related layout shifts. ` +\n `To fix this, include \"width\" and \"height\" attributes on the image tag or turn on ` +\n `\"fill\" mode with the \\`fill\\` attribute.`);\n }\n}\n/**\n * Verifies that width and height are not set. Used in fill mode, where those attributes don't make\n * sense.\n */\nfunction assertEmptyWidthAndHeight(dir) {\n if (dir.width || dir.height) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the attributes \\`height\\` and/or \\`width\\` are present ` +\n `along with the \\`fill\\` attribute. Because \\`fill\\` mode causes an image to fill its containing ` +\n `element, the size attributes have no effect and should be removed.`);\n }\n}\n/**\n * Verifies that the rendered image has a nonzero height. If the image is in fill mode, provides\n * guidance that this can be caused by the containing element's CSS position property.\n */\nfunction assertNonZeroRenderedHeight(dir, img, renderer) {\n const removeListenerFn = renderer.listen(img, 'load', () => {\n removeListenerFn();\n const renderedHeight = img.clientHeight;\n if (dir.fill && renderedHeight === 0) {\n console.warn(ɵformatRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the height of the fill-mode image is zero. ` +\n `This is likely because the containing element does not have the CSS 'position' ` +\n `property set to one of the following: \"relative\", \"fixed\", or \"absolute\". ` +\n `To fix this problem, make sure the container element has the CSS 'position' ` +\n `property defined and the height of the element is not zero.`));\n }\n });\n}\n/**\n * Verifies that the `loading` attribute is set to a valid input &\n * is not used on priority images.\n */\nfunction assertValidLoadingInput(dir) {\n if (dir.loading && dir.priority) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`loading\\` attribute ` +\n `was used on an image that was marked \"priority\". ` +\n `Setting \\`loading\\` on priority images is not allowed ` +\n `because these images will always be eagerly loaded. ` +\n `To fix this, remove the “loading” attribute from the priority image.`);\n }\n const validInputs = ['auto', 'eager', 'lazy'];\n if (typeof dir.loading === 'string' && !validInputs.includes(dir.loading)) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`loading\\` attribute ` +\n `has an invalid value (\\`${dir.loading}\\`). ` +\n `To fix this, provide a valid value (\"lazy\", \"eager\", or \"auto\").`);\n }\n}\n/**\n * Warns if NOT using a loader (falling back to the generic loader) and\n * the image appears to be hosted on one of the image CDNs for which\n * we do have a built-in image loader. Suggests switching to the\n * built-in loader.\n *\n * @param ngSrc Value of the ngSrc attribute\n * @param imageLoader ImageLoader provided\n */\nfunction assertNotMissingBuiltInLoader(ngSrc, imageLoader) {\n if (imageLoader === noopImageLoader) {\n let builtInLoaderName = '';\n for (const loader of BUILT_IN_LOADERS) {\n if (loader.testUrl(ngSrc)) {\n builtInLoaderName = loader.name;\n break;\n }\n }\n if (builtInLoaderName) {\n console.warn(ɵformatRuntimeError(2962 /* RuntimeErrorCode.MISSING_BUILTIN_LOADER */, `NgOptimizedImage: It looks like your images may be hosted on the ` +\n `${builtInLoaderName} CDN, but your app is not using Angular's ` +\n `built-in loader for that CDN. We recommend switching to use ` +\n `the built-in by calling \\`provide${builtInLoaderName}Loader()\\` ` +\n `in your \\`providers\\` and passing it your instance's base URL. ` +\n `If you don't want to use the built-in loader, define a custom ` +\n `loader function using IMAGE_LOADER to silence this warning.`));\n }\n }\n}\n/**\n * Warns if ngSrcset is present and no loader is configured (i.e. the default one is being used).\n */\nfunction assertNoNgSrcsetWithoutLoader(dir, imageLoader) {\n if (dir.ngSrcset && imageLoader === noopImageLoader) {\n console.warn(ɵformatRuntimeError(2963 /* RuntimeErrorCode.MISSING_NECESSARY_LOADER */, `${imgDirectiveDetails(dir.ngSrc)} the \\`ngSrcset\\` attribute is present but ` +\n `no image loader is configured (i.e. the default one is being used), ` +\n `which would result in the same image being used for all configured sizes. ` +\n `To fix this, provide a loader or remove the \\`ngSrcset\\` attribute from the image.`));\n }\n}\n/**\n * Warns if loaderParams is present and no loader is configured (i.e. the default one is being\n * used).\n */\nfunction assertNoLoaderParamsWithoutLoader(dir, imageLoader) {\n if (dir.loaderParams && imageLoader === noopImageLoader) {\n console.warn(ɵformatRuntimeError(2963 /* RuntimeErrorCode.MISSING_NECESSARY_LOADER */, `${imgDirectiveDetails(dir.ngSrc)} the \\`loaderParams\\` attribute is present but ` +\n `no image loader is configured (i.e. the default one is being used), ` +\n `which means that the loaderParams data will not be consumed and will not affect the URL. ` +\n `To fix this, provide a custom loader or remove the \\`loaderParams\\` attribute from the image.`));\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// This file only reexports content of the `src` folder. Keep it that way.\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { APP_BASE_HREF, AsyncPipe, CommonModule, CurrencyPipe, DATE_PIPE_DEFAULT_TIMEZONE, DOCUMENT, DatePipe, DecimalPipe, FormStyle, FormatWidth, HashLocationStrategy, I18nPluralPipe, I18nSelectPipe, IMAGE_LOADER, JsonPipe, KeyValuePipe, LOCATION_INITIALIZED, Location, LocationStrategy, LowerCasePipe, NgClass, NgComponentOutlet, NgForOf as NgFor, NgForOf, NgForOfContext, NgIf, NgIfContext, NgLocaleLocalization, NgLocalization, NgOptimizedImage, NgPlural, NgPluralCase, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet, NumberFormatStyle, NumberSymbol, PRECONNECT_CHECK_BLOCKLIST, PathLocationStrategy, PercentPipe, PlatformLocation, Plural, SlicePipe, TitleCasePipe, TranslationWidth, UpperCasePipe, VERSION, ViewportScroller, WeekDay, XhrFactory, formatCurrency, formatDate, formatNumber, formatPercent, getCurrencySymbol, getLocaleCurrencyCode, getLocaleCurrencyName, getLocaleCurrencySymbol, getLocaleDateFormat, getLocaleDateTimeFormat, getLocaleDayNames, getLocaleDayPeriods, getLocaleDirection, getLocaleEraNames, getLocaleExtraDayPeriodRules, getLocaleExtraDayPeriods, getLocaleFirstDayOfWeek, getLocaleId, getLocaleMonthNames, getLocaleNumberFormat, getLocaleNumberSymbol, getLocalePluralCase, getLocaleTimeFormat, getLocaleWeekEndRange, getNumberOfCurrencyDigits, isPlatformBrowser, isPlatformServer, isPlatformWorkerApp, isPlatformWorkerUi, provideCloudflareLoader, provideCloudinaryLoader, provideImageKitLoader, provideImgixLoader, registerLocaleData, BrowserPlatformLocation as ɵBrowserPlatformLocation, DomAdapter as ɵDomAdapter, NullViewportScroller as ɵNullViewportScroller, PLATFORM_BROWSER_ID as ɵPLATFORM_BROWSER_ID, PLATFORM_SERVER_ID as ɵPLATFORM_SERVER_ID, PLATFORM_WORKER_APP_ID as ɵPLATFORM_WORKER_APP_ID, PLATFORM_WORKER_UI_ID as ɵPLATFORM_WORKER_UI_ID, getDOM as ɵgetDOM, parseCookieValue as ɵparseCookieValue, setRootDomAdapter as ɵsetRootDomAdapter };\n","/**\n * @license Angular v14.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i1 from '@angular/common';\nimport { DOCUMENT, ɵparseCookieValue, XhrFactory as XhrFactory$1 } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, Inject, PLATFORM_ID, NgModule } from '@angular/core';\nimport { of, Observable } from 'rxjs';\nimport { concatMap, filter, map } from 'rxjs/operators';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Transforms an `HttpRequest` into a stream of `HttpEvent`s, one of which will likely be a\n * `HttpResponse`.\n *\n * `HttpHandler` is injectable. When injected, the handler instance dispatches requests to the\n * first interceptor in the chain, which dispatches to the second, etc, eventually reaching the\n * `HttpBackend`.\n *\n * In an `HttpInterceptor`, the `HttpHandler` parameter is the next interceptor in the chain.\n *\n * @publicApi\n */\nclass HttpHandler {\n}\n/**\n * A final `HttpHandler` which will dispatch the request via browser HTTP APIs to a backend.\n *\n * Interceptors sit between the `HttpClient` interface and the `HttpBackend`.\n *\n * When injected, `HttpBackend` dispatches requests directly to the backend, without going\n * through the interceptor chain.\n *\n * @publicApi\n */\nclass HttpBackend {\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Represents the header configuration options for an HTTP request.\n * Instances are immutable. Modifying methods return a cloned\n * instance with the change. The original object is never changed.\n *\n * @publicApi\n */\nclass HttpHeaders {\n /** Constructs a new HTTP header object with the given values.*/\n constructor(headers) {\n /**\n * Internal map of lowercased header names to the normalized\n * form of the name (the form seen first).\n */\n this.normalizedNames = new Map();\n /**\n * Queued updates to be materialized the next initialization.\n */\n this.lazyUpdate = null;\n if (!headers) {\n this.headers = new Map();\n }\n else if (typeof headers === 'string') {\n this.lazyInit = () => {\n this.headers = new Map();\n headers.split('\\n').forEach(line => {\n const index = line.indexOf(':');\n if (index > 0) {\n const name = line.slice(0, index);\n const key = name.toLowerCase();\n const value = line.slice(index + 1).trim();\n this.maybeSetNormalizedName(name, key);\n if (this.headers.has(key)) {\n this.headers.get(key).push(value);\n }\n else {\n this.headers.set(key, [value]);\n }\n }\n });\n };\n }\n else {\n this.lazyInit = () => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n assertValidHeaders(headers);\n }\n this.headers = new Map();\n Object.keys(headers).forEach(name => {\n let values = headers[name];\n const key = name.toLowerCase();\n if (typeof values === 'string') {\n values = [values];\n }\n if (values.length > 0) {\n this.headers.set(key, values);\n this.maybeSetNormalizedName(name, key);\n }\n });\n };\n }\n }\n /**\n * Checks for existence of a given header.\n *\n * @param name The header name to check for existence.\n *\n * @returns True if the header exists, false otherwise.\n */\n has(name) {\n this.init();\n return this.headers.has(name.toLowerCase());\n }\n /**\n * Retrieves the first value of a given header.\n *\n * @param name The header name.\n *\n * @returns The value string if the header exists, null otherwise\n */\n get(name) {\n this.init();\n const values = this.headers.get(name.toLowerCase());\n return values && values.length > 0 ? values[0] : null;\n }\n /**\n * Retrieves the names of the headers.\n *\n * @returns A list of header names.\n */\n keys() {\n this.init();\n return Array.from(this.normalizedNames.values());\n }\n /**\n * Retrieves a list of values for a given header.\n *\n * @param name The header name from which to retrieve values.\n *\n * @returns A string of values if the header exists, null otherwise.\n */\n getAll(name) {\n this.init();\n return this.headers.get(name.toLowerCase()) || null;\n }\n /**\n * Appends a new value to the existing set of values for a header\n * and returns them in a clone of the original instance.\n *\n * @param name The header name for which to append the values.\n * @param value The value to append.\n *\n * @returns A clone of the HTTP headers object with the value appended to the given header.\n */\n append(name, value) {\n return this.clone({ name, value, op: 'a' });\n }\n /**\n * Sets or modifies a value for a given header in a clone of the original instance.\n * If the header already exists, its value is replaced with the given value\n * in the returned object.\n *\n * @param name The header name.\n * @param value The value or values to set or override for the given header.\n *\n * @returns A clone of the HTTP headers object with the newly set header value.\n */\n set(name, value) {\n return this.clone({ name, value, op: 's' });\n }\n /**\n * Deletes values for a given header in a clone of the original instance.\n *\n * @param name The header name.\n * @param value The value or values to delete for the given header.\n *\n * @returns A clone of the HTTP headers object with the given value deleted.\n */\n delete(name, value) {\n return this.clone({ name, value, op: 'd' });\n }\n maybeSetNormalizedName(name, lcName) {\n if (!this.normalizedNames.has(lcName)) {\n this.normalizedNames.set(lcName, name);\n }\n }\n init() {\n if (!!this.lazyInit) {\n if (this.lazyInit instanceof HttpHeaders) {\n this.copyFrom(this.lazyInit);\n }\n else {\n this.lazyInit();\n }\n this.lazyInit = null;\n if (!!this.lazyUpdate) {\n this.lazyUpdate.forEach(update => this.applyUpdate(update));\n this.lazyUpdate = null;\n }\n }\n }\n copyFrom(other) {\n other.init();\n Array.from(other.headers.keys()).forEach(key => {\n this.headers.set(key, other.headers.get(key));\n this.normalizedNames.set(key, other.normalizedNames.get(key));\n });\n }\n clone(update) {\n const clone = new HttpHeaders();\n clone.lazyInit =\n (!!this.lazyInit && this.lazyInit instanceof HttpHeaders) ? this.lazyInit : this;\n clone.lazyUpdate = (this.lazyUpdate || []).concat([update]);\n return clone;\n }\n applyUpdate(update) {\n const key = update.name.toLowerCase();\n switch (update.op) {\n case 'a':\n case 's':\n let value = update.value;\n if (typeof value === 'string') {\n value = [value];\n }\n if (value.length === 0) {\n return;\n }\n this.maybeSetNormalizedName(update.name, key);\n const base = (update.op === 'a' ? this.headers.get(key) : undefined) || [];\n base.push(...value);\n this.headers.set(key, base);\n break;\n case 'd':\n const toDelete = update.value;\n if (!toDelete) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n let existing = this.headers.get(key);\n if (!existing) {\n return;\n }\n existing = existing.filter(value => toDelete.indexOf(value) === -1);\n if (existing.length === 0) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n this.headers.set(key, existing);\n }\n }\n break;\n }\n }\n /**\n * @internal\n */\n forEach(fn) {\n this.init();\n Array.from(this.normalizedNames.keys())\n .forEach(key => fn(this.normalizedNames.get(key), this.headers.get(key)));\n }\n}\n/**\n * Verifies that the headers object has the right shape: the values\n * must be either strings or arrays. Throws an error if an invalid\n * header value is present.\n */\nfunction assertValidHeaders(headers) {\n for (const [key, value] of Object.entries(headers)) {\n if (typeof value !== 'string' && !Array.isArray(value)) {\n throw new Error(`Unexpected value of the \\`${key}\\` header provided. ` +\n `Expecting either a string or an array, but got: \\`${value}\\`.`);\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Provides encoding and decoding of URL parameter and query-string values.\n *\n * Serializes and parses URL parameter keys and values to encode and decode them.\n * If you pass URL query parameters without encoding,\n * the query parameters can be misinterpreted at the receiving end.\n *\n *\n * @publicApi\n */\nclass HttpUrlEncodingCodec {\n /**\n * Encodes a key name for a URL parameter or query-string.\n * @param key The key name.\n * @returns The encoded key name.\n */\n encodeKey(key) {\n return standardEncoding(key);\n }\n /**\n * Encodes the value of a URL parameter or query-string.\n * @param value The value.\n * @returns The encoded value.\n */\n encodeValue(value) {\n return standardEncoding(value);\n }\n /**\n * Decodes an encoded URL parameter or query-string key.\n * @param key The encoded key name.\n * @returns The decoded key name.\n */\n decodeKey(key) {\n return decodeURIComponent(key);\n }\n /**\n * Decodes an encoded URL parameter or query-string value.\n * @param value The encoded value.\n * @returns The decoded value.\n */\n decodeValue(value) {\n return decodeURIComponent(value);\n }\n}\nfunction paramParser(rawParams, codec) {\n const map = new Map();\n if (rawParams.length > 0) {\n // The `window.location.search` can be used while creating an instance of the `HttpParams` class\n // (e.g. `new HttpParams({ fromString: window.location.search })`). The `window.location.search`\n // may start with the `?` char, so we strip it if it's present.\n const params = rawParams.replace(/^\\?/, '').split('&');\n params.forEach((param) => {\n const eqIdx = param.indexOf('=');\n const [key, val] = eqIdx == -1 ?\n [codec.decodeKey(param), ''] :\n [codec.decodeKey(param.slice(0, eqIdx)), codec.decodeValue(param.slice(eqIdx + 1))];\n const list = map.get(key) || [];\n list.push(val);\n map.set(key, list);\n });\n }\n return map;\n}\n/**\n * Encode input string with standard encodeURIComponent and then un-encode specific characters.\n */\nconst STANDARD_ENCODING_REGEX = /%(\\d[a-f0-9])/gi;\nconst STANDARD_ENCODING_REPLACEMENTS = {\n '40': '@',\n '3A': ':',\n '24': '$',\n '2C': ',',\n '3B': ';',\n '3D': '=',\n '3F': '?',\n '2F': '/',\n};\nfunction standardEncoding(v) {\n return encodeURIComponent(v).replace(STANDARD_ENCODING_REGEX, (s, t) => STANDARD_ENCODING_REPLACEMENTS[t] ?? s);\n}\nfunction valueToString(value) {\n return `${value}`;\n}\n/**\n * An HTTP request/response body that represents serialized parameters,\n * per the MIME type `application/x-www-form-urlencoded`.\n *\n * This class is immutable; all mutation operations return a new instance.\n *\n * @publicApi\n */\nclass HttpParams {\n constructor(options = {}) {\n this.updates = null;\n this.cloneFrom = null;\n this.encoder = options.encoder || new HttpUrlEncodingCodec();\n if (!!options.fromString) {\n if (!!options.fromObject) {\n throw new Error(`Cannot specify both fromString and fromObject.`);\n }\n this.map = paramParser(options.fromString, this.encoder);\n }\n else if (!!options.fromObject) {\n this.map = new Map();\n Object.keys(options.fromObject).forEach(key => {\n const value = options.fromObject[key];\n // convert the values to strings\n const values = Array.isArray(value) ? value.map(valueToString) : [valueToString(value)];\n this.map.set(key, values);\n });\n }\n else {\n this.map = null;\n }\n }\n /**\n * Reports whether the body includes one or more values for a given parameter.\n * @param param The parameter name.\n * @returns True if the parameter has one or more values,\n * false if it has no value or is not present.\n */\n has(param) {\n this.init();\n return this.map.has(param);\n }\n /**\n * Retrieves the first value for a parameter.\n * @param param The parameter name.\n * @returns The first value of the given parameter,\n * or `null` if the parameter is not present.\n */\n get(param) {\n this.init();\n const res = this.map.get(param);\n return !!res ? res[0] : null;\n }\n /**\n * Retrieves all values for a parameter.\n * @param param The parameter name.\n * @returns All values in a string array,\n * or `null` if the parameter not present.\n */\n getAll(param) {\n this.init();\n return this.map.get(param) || null;\n }\n /**\n * Retrieves all the parameters for this body.\n * @returns The parameter names in a string array.\n */\n keys() {\n this.init();\n return Array.from(this.map.keys());\n }\n /**\n * Appends a new value to existing values for a parameter.\n * @param param The parameter name.\n * @param value The new value to add.\n * @return A new body with the appended value.\n */\n append(param, value) {\n return this.clone({ param, value, op: 'a' });\n }\n /**\n * Constructs a new body with appended values for the given parameter name.\n * @param params parameters and values\n * @return A new body with the new value.\n */\n appendAll(params) {\n const updates = [];\n Object.keys(params).forEach(param => {\n const value = params[param];\n if (Array.isArray(value)) {\n value.forEach(_value => {\n updates.push({ param, value: _value, op: 'a' });\n });\n }\n else {\n updates.push({ param, value: value, op: 'a' });\n }\n });\n return this.clone(updates);\n }\n /**\n * Replaces the value for a parameter.\n * @param param The parameter name.\n * @param value The new value.\n * @return A new body with the new value.\n */\n set(param, value) {\n return this.clone({ param, value, op: 's' });\n }\n /**\n * Removes a given value or all values from a parameter.\n * @param param The parameter name.\n * @param value The value to remove, if provided.\n * @return A new body with the given value removed, or with all values\n * removed if no value is specified.\n */\n delete(param, value) {\n return this.clone({ param, value, op: 'd' });\n }\n /**\n * Serializes the body to an encoded string, where key-value pairs (separated by `=`) are\n * separated by `&`s.\n */\n toString() {\n this.init();\n return this.keys()\n .map(key => {\n const eKey = this.encoder.encodeKey(key);\n // `a: ['1']` produces `'a=1'`\n // `b: []` produces `''`\n // `c: ['1', '2']` produces `'c=1&c=2'`\n return this.map.get(key).map(value => eKey + '=' + this.encoder.encodeValue(value))\n .join('&');\n })\n // filter out empty values because `b: []` produces `''`\n // which results in `a=1&&c=1&c=2` instead of `a=1&c=1&c=2` if we don't\n .filter(param => param !== '')\n .join('&');\n }\n clone(update) {\n const clone = new HttpParams({ encoder: this.encoder });\n clone.cloneFrom = this.cloneFrom || this;\n clone.updates = (this.updates || []).concat(update);\n return clone;\n }\n init() {\n if (this.map === null) {\n this.map = new Map();\n }\n if (this.cloneFrom !== null) {\n this.cloneFrom.init();\n this.cloneFrom.keys().forEach(key => this.map.set(key, this.cloneFrom.map.get(key)));\n this.updates.forEach(update => {\n switch (update.op) {\n case 'a':\n case 's':\n const base = (update.op === 'a' ? this.map.get(update.param) : undefined) || [];\n base.push(valueToString(update.value));\n this.map.set(update.param, base);\n break;\n case 'd':\n if (update.value !== undefined) {\n let base = this.map.get(update.param) || [];\n const idx = base.indexOf(valueToString(update.value));\n if (idx !== -1) {\n base.splice(idx, 1);\n }\n if (base.length > 0) {\n this.map.set(update.param, base);\n }\n else {\n this.map.delete(update.param);\n }\n }\n else {\n this.map.delete(update.param);\n break;\n }\n }\n });\n this.cloneFrom = this.updates = null;\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A token used to manipulate and access values stored in `HttpContext`.\n *\n * @publicApi\n */\nclass HttpContextToken {\n constructor(defaultValue) {\n this.defaultValue = defaultValue;\n }\n}\n/**\n * Http context stores arbitrary user defined values and ensures type safety without\n * actually knowing the types. It is backed by a `Map` and guarantees that keys do not clash.\n *\n * This context is mutable and is shared between cloned requests unless explicitly specified.\n *\n * @usageNotes\n *\n * ### Usage Example\n *\n * ```typescript\n * // inside cache.interceptors.ts\n * export const IS_CACHE_ENABLED = new HttpContextToken(() => false);\n *\n * export class CacheInterceptor implements HttpInterceptor {\n *\n * intercept(req: HttpRequest, delegate: HttpHandler): Observable> {\n * if (req.context.get(IS_CACHE_ENABLED) === true) {\n * return ...;\n * }\n * return delegate.handle(req);\n * }\n * }\n *\n * // inside a service\n *\n * this.httpClient.get('/api/weather', {\n * context: new HttpContext().set(IS_CACHE_ENABLED, true)\n * }).subscribe(...);\n * ```\n *\n * @publicApi\n */\nclass HttpContext {\n constructor() {\n this.map = new Map();\n }\n /**\n * Store a value in the context. If a value is already present it will be overwritten.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n * @param value The value to store.\n *\n * @returns A reference to itself for easy chaining.\n */\n set(token, value) {\n this.map.set(token, value);\n return this;\n }\n /**\n * Retrieve the value associated with the given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns The stored value or default if one is defined.\n */\n get(token) {\n if (!this.map.has(token)) {\n this.map.set(token, token.defaultValue());\n }\n return this.map.get(token);\n }\n /**\n * Delete the value associated with the given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns A reference to itself for easy chaining.\n */\n delete(token) {\n this.map.delete(token);\n return this;\n }\n /**\n * Checks for existence of a given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns True if the token exists, false otherwise.\n */\n has(token) {\n return this.map.has(token);\n }\n /**\n * @returns a list of tokens currently stored in the context.\n */\n keys() {\n return this.map.keys();\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Determine whether the given HTTP method may include a body.\n */\nfunction mightHaveBody(method) {\n switch (method) {\n case 'DELETE':\n case 'GET':\n case 'HEAD':\n case 'OPTIONS':\n case 'JSONP':\n return false;\n default:\n return true;\n }\n}\n/**\n * Safely assert whether the given value is an ArrayBuffer.\n *\n * In some execution environments ArrayBuffer is not defined.\n */\nfunction isArrayBuffer(value) {\n return typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer;\n}\n/**\n * Safely assert whether the given value is a Blob.\n *\n * In some execution environments Blob is not defined.\n */\nfunction isBlob(value) {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n/**\n * Safely assert whether the given value is a FormData instance.\n *\n * In some execution environments FormData is not defined.\n */\nfunction isFormData(value) {\n return typeof FormData !== 'undefined' && value instanceof FormData;\n}\n/**\n * Safely assert whether the given value is a URLSearchParams instance.\n *\n * In some execution environments URLSearchParams is not defined.\n */\nfunction isUrlSearchParams(value) {\n return typeof URLSearchParams !== 'undefined' && value instanceof URLSearchParams;\n}\n/**\n * An outgoing HTTP request with an optional typed body.\n *\n * `HttpRequest` represents an outgoing request, including URL, method,\n * headers, body, and other request configuration options. Instances should be\n * assumed to be immutable. To modify a `HttpRequest`, the `clone`\n * method should be used.\n *\n * @publicApi\n */\nclass HttpRequest {\n constructor(method, url, third, fourth) {\n this.url = url;\n /**\n * The request body, or `null` if one isn't set.\n *\n * Bodies are not enforced to be immutable, as they can include a reference to any\n * user-defined data type. However, interceptors should take care to preserve\n * idempotence by treating them as such.\n */\n this.body = null;\n /**\n * Whether this request should be made in a way that exposes progress events.\n *\n * Progress events are expensive (change detection runs on each event) and so\n * they should only be requested if the consumer intends to monitor them.\n */\n this.reportProgress = false;\n /**\n * Whether this request should be sent with outgoing credentials (cookies).\n */\n this.withCredentials = false;\n /**\n * The expected response type of the server.\n *\n * This is used to parse the response appropriately before returning it to\n * the requestee.\n */\n this.responseType = 'json';\n this.method = method.toUpperCase();\n // Next, need to figure out which argument holds the HttpRequestInit\n // options, if any.\n let options;\n // Check whether a body argument is expected. The only valid way to omit\n // the body argument is to use a known no-body method like GET.\n if (mightHaveBody(this.method) || !!fourth) {\n // Body is the third argument, options are the fourth.\n this.body = (third !== undefined) ? third : null;\n options = fourth;\n }\n else {\n // No body required, options are the third argument. The body stays null.\n options = third;\n }\n // If options have been passed, interpret them.\n if (options) {\n // Normalize reportProgress and withCredentials.\n this.reportProgress = !!options.reportProgress;\n this.withCredentials = !!options.withCredentials;\n // Override default response type of 'json' if one is provided.\n if (!!options.responseType) {\n this.responseType = options.responseType;\n }\n // Override headers if they're provided.\n if (!!options.headers) {\n this.headers = options.headers;\n }\n if (!!options.context) {\n this.context = options.context;\n }\n if (!!options.params) {\n this.params = options.params;\n }\n }\n // If no headers have been passed in, construct a new HttpHeaders instance.\n if (!this.headers) {\n this.headers = new HttpHeaders();\n }\n // If no context have been passed in, construct a new HttpContext instance.\n if (!this.context) {\n this.context = new HttpContext();\n }\n // If no parameters have been passed in, construct a new HttpUrlEncodedParams instance.\n if (!this.params) {\n this.params = new HttpParams();\n this.urlWithParams = url;\n }\n else {\n // Encode the parameters to a string in preparation for inclusion in the URL.\n const params = this.params.toString();\n if (params.length === 0) {\n // No parameters, the visible URL is just the URL given at creation time.\n this.urlWithParams = url;\n }\n else {\n // Does the URL already have query parameters? Look for '?'.\n const qIdx = url.indexOf('?');\n // There are 3 cases to handle:\n // 1) No existing parameters -> append '?' followed by params.\n // 2) '?' exists and is followed by existing query string ->\n // append '&' followed by params.\n // 3) '?' exists at the end of the url -> append params directly.\n // This basically amounts to determining the character, if any, with\n // which to join the URL and parameters.\n const sep = qIdx === -1 ? '?' : (qIdx < url.length - 1 ? '&' : '');\n this.urlWithParams = url + sep + params;\n }\n }\n }\n /**\n * Transform the free-form body into a serialized format suitable for\n * transmission to the server.\n */\n serializeBody() {\n // If no body is present, no need to serialize it.\n if (this.body === null) {\n return null;\n }\n // Check whether the body is already in a serialized form. If so,\n // it can just be returned directly.\n if (isArrayBuffer(this.body) || isBlob(this.body) || isFormData(this.body) ||\n isUrlSearchParams(this.body) || typeof this.body === 'string') {\n return this.body;\n }\n // Check whether the body is an instance of HttpUrlEncodedParams.\n if (this.body instanceof HttpParams) {\n return this.body.toString();\n }\n // Check whether the body is an object or array, and serialize with JSON if so.\n if (typeof this.body === 'object' || typeof this.body === 'boolean' ||\n Array.isArray(this.body)) {\n return JSON.stringify(this.body);\n }\n // Fall back on toString() for everything else.\n return this.body.toString();\n }\n /**\n * Examine the body and attempt to infer an appropriate MIME type\n * for it.\n *\n * If no such type can be inferred, this method will return `null`.\n */\n detectContentTypeHeader() {\n // An empty body has no content type.\n if (this.body === null) {\n return null;\n }\n // FormData bodies rely on the browser's content type assignment.\n if (isFormData(this.body)) {\n return null;\n }\n // Blobs usually have their own content type. If it doesn't, then\n // no type can be inferred.\n if (isBlob(this.body)) {\n return this.body.type || null;\n }\n // Array buffers have unknown contents and thus no type can be inferred.\n if (isArrayBuffer(this.body)) {\n return null;\n }\n // Technically, strings could be a form of JSON data, but it's safe enough\n // to assume they're plain strings.\n if (typeof this.body === 'string') {\n return 'text/plain';\n }\n // `HttpUrlEncodedParams` has its own content-type.\n if (this.body instanceof HttpParams) {\n return 'application/x-www-form-urlencoded;charset=UTF-8';\n }\n // Arrays, objects, boolean and numbers will be encoded as JSON.\n if (typeof this.body === 'object' || typeof this.body === 'number' ||\n typeof this.body === 'boolean') {\n return 'application/json';\n }\n // No type could be inferred.\n return null;\n }\n clone(update = {}) {\n // For method, url, and responseType, take the current value unless\n // it is overridden in the update hash.\n const method = update.method || this.method;\n const url = update.url || this.url;\n const responseType = update.responseType || this.responseType;\n // The body is somewhat special - a `null` value in update.body means\n // whatever current body is present is being overridden with an empty\n // body, whereas an `undefined` value in update.body implies no\n // override.\n const body = (update.body !== undefined) ? update.body : this.body;\n // Carefully handle the boolean options to differentiate between\n // `false` and `undefined` in the update args.\n const withCredentials = (update.withCredentials !== undefined) ? update.withCredentials : this.withCredentials;\n const reportProgress = (update.reportProgress !== undefined) ? update.reportProgress : this.reportProgress;\n // Headers and params may be appended to if `setHeaders` or\n // `setParams` are used.\n let headers = update.headers || this.headers;\n let params = update.params || this.params;\n // Pass on context if needed\n const context = update.context ?? this.context;\n // Check whether the caller has asked to add headers.\n if (update.setHeaders !== undefined) {\n // Set every requested header.\n headers =\n Object.keys(update.setHeaders)\n .reduce((headers, name) => headers.set(name, update.setHeaders[name]), headers);\n }\n // Check whether the caller has asked to set params.\n if (update.setParams) {\n // Set every requested param.\n params = Object.keys(update.setParams)\n .reduce((params, param) => params.set(param, update.setParams[param]), params);\n }\n // Finally, construct the new HttpRequest using the pieces from above.\n return new HttpRequest(method, url, body, {\n params,\n headers,\n context,\n reportProgress,\n responseType,\n withCredentials,\n });\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Type enumeration for the different kinds of `HttpEvent`.\n *\n * @publicApi\n */\nvar HttpEventType;\n(function (HttpEventType) {\n /**\n * The request was sent out over the wire.\n */\n HttpEventType[HttpEventType[\"Sent\"] = 0] = \"Sent\";\n /**\n * An upload progress event was received.\n */\n HttpEventType[HttpEventType[\"UploadProgress\"] = 1] = \"UploadProgress\";\n /**\n * The response status code and headers were received.\n */\n HttpEventType[HttpEventType[\"ResponseHeader\"] = 2] = \"ResponseHeader\";\n /**\n * A download progress event was received.\n */\n HttpEventType[HttpEventType[\"DownloadProgress\"] = 3] = \"DownloadProgress\";\n /**\n * The full response including the body was received.\n */\n HttpEventType[HttpEventType[\"Response\"] = 4] = \"Response\";\n /**\n * A custom event from an interceptor or a backend.\n */\n HttpEventType[HttpEventType[\"User\"] = 5] = \"User\";\n})(HttpEventType || (HttpEventType = {}));\n/**\n * Base class for both `HttpResponse` and `HttpHeaderResponse`.\n *\n * @publicApi\n */\nclass HttpResponseBase {\n /**\n * Super-constructor for all responses.\n *\n * The single parameter accepted is an initialization hash. Any properties\n * of the response passed there will override the default values.\n */\n constructor(init, defaultStatus = 200 /* HttpStatusCode.Ok */, defaultStatusText = 'OK') {\n // If the hash has values passed, use them to initialize the response.\n // Otherwise use the default values.\n this.headers = init.headers || new HttpHeaders();\n this.status = init.status !== undefined ? init.status : defaultStatus;\n this.statusText = init.statusText || defaultStatusText;\n this.url = init.url || null;\n // Cache the ok value to avoid defining a getter.\n this.ok = this.status >= 200 && this.status < 300;\n }\n}\n/**\n * A partial HTTP response which only includes the status and header data,\n * but no response body.\n *\n * `HttpHeaderResponse` is a `HttpEvent` available on the response\n * event stream, only when progress events are requested.\n *\n * @publicApi\n */\nclass HttpHeaderResponse extends HttpResponseBase {\n /**\n * Create a new `HttpHeaderResponse` with the given parameters.\n */\n constructor(init = {}) {\n super(init);\n this.type = HttpEventType.ResponseHeader;\n }\n /**\n * Copy this `HttpHeaderResponse`, overriding its contents with the\n * given parameter hash.\n */\n clone(update = {}) {\n // Perform a straightforward initialization of the new HttpHeaderResponse,\n // overriding the current parameters with new ones if given.\n return new HttpHeaderResponse({\n headers: update.headers || this.headers,\n status: update.status !== undefined ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n }\n}\n/**\n * A full HTTP response, including a typed response body (which may be `null`\n * if one was not returned).\n *\n * `HttpResponse` is a `HttpEvent` available on the response event\n * stream.\n *\n * @publicApi\n */\nclass HttpResponse extends HttpResponseBase {\n /**\n * Construct a new `HttpResponse`.\n */\n constructor(init = {}) {\n super(init);\n this.type = HttpEventType.Response;\n this.body = init.body !== undefined ? init.body : null;\n }\n clone(update = {}) {\n return new HttpResponse({\n body: (update.body !== undefined) ? update.body : this.body,\n headers: update.headers || this.headers,\n status: (update.status !== undefined) ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n }\n}\n/**\n * A response that represents an error or failure, either from a\n * non-successful HTTP status, an error while executing the request,\n * or some other failure which occurred during the parsing of the response.\n *\n * Any error returned on the `Observable` response stream will be\n * wrapped in an `HttpErrorResponse` to provide additional context about\n * the state of the HTTP layer when the error occurred. The error property\n * will contain either a wrapped Error object or the error response returned\n * from the server.\n *\n * @publicApi\n */\nclass HttpErrorResponse extends HttpResponseBase {\n constructor(init) {\n // Initialize with a default status of 0 / Unknown Error.\n super(init, 0, 'Unknown Error');\n this.name = 'HttpErrorResponse';\n /**\n * Errors are never okay, even when the status code is in the 2xx success range.\n */\n this.ok = false;\n // If the response was successful, then this was a parse error. Otherwise, it was\n // a protocol-level failure of some sort. Either the request failed in transit\n // or the server returned an unsuccessful status code.\n if (this.status >= 200 && this.status < 300) {\n this.message = `Http failure during parsing for ${init.url || '(unknown url)'}`;\n }\n else {\n this.message = `Http failure response for ${init.url || '(unknown url)'}: ${init.status} ${init.statusText}`;\n }\n this.error = init.error || null;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Constructs an instance of `HttpRequestOptions` from a source `HttpMethodOptions` and\n * the given `body`. This function clones the object and adds the body.\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n *\n */\nfunction addBody(options, body) {\n return {\n body,\n headers: options.headers,\n context: options.context,\n observe: options.observe,\n params: options.params,\n reportProgress: options.reportProgress,\n responseType: options.responseType,\n withCredentials: options.withCredentials,\n };\n}\n/**\n * Performs HTTP requests.\n * This service is available as an injectable class, with methods to perform HTTP requests.\n * Each request method has multiple signatures, and the return type varies based on\n * the signature that is called (mainly the values of `observe` and `responseType`).\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n\n *\n * @usageNotes\n * Sample HTTP requests for the [Tour of Heroes](/tutorial/toh-pt0) application.\n *\n * ### HTTP Request Example\n *\n * ```\n * // GET heroes whose name contains search term\n * searchHeroes(term: string): observable{\n *\n * const params = new HttpParams({fromString: 'name=term'});\n * return this.httpClient.request('GET', this.heroesUrl, {responseType:'json', params});\n * }\n * ```\n *\n * Alternatively, the parameter string can be used without invoking HttpParams\n * by directly joining to the URL.\n * ```\n * this.httpClient.request('GET', this.heroesUrl + '?' + 'name=term', {responseType:'json'});\n * ```\n *\n *\n * ### JSONP Example\n * ```\n * requestJsonp(url, callback = 'callback') {\n * return this.httpClient.jsonp(this.heroesURL, callback);\n * }\n * ```\n *\n * ### PATCH Example\n * ```\n * // PATCH one of the heroes' name\n * patchHero (id: number, heroName: string): Observable<{}> {\n * const url = `${this.heroesUrl}/${id}`; // PATCH api/heroes/42\n * return this.httpClient.patch(url, {name: heroName}, httpOptions)\n * .pipe(catchError(this.handleError('patchHero')));\n * }\n * ```\n *\n * @see [HTTP Guide](guide/http)\n * @see [HTTP Request](api/common/http/HttpRequest)\n *\n * @publicApi\n */\nclass HttpClient {\n constructor(handler) {\n this.handler = handler;\n }\n /**\n * Constructs an observable for a generic HTTP request that, when subscribed,\n * fires the request through the chain of registered interceptors and on to the\n * server.\n *\n * You can pass an `HttpRequest` directly as the only parameter. In this case,\n * the call returns an observable of the raw `HttpEvent` stream.\n *\n * Alternatively you can pass an HTTP method as the first parameter,\n * a URL string as the second, and an options hash containing the request body as the third.\n * See `addBody()`. In this case, the specified `responseType` and `observe` options determine the\n * type of returned observable.\n * * The `responseType` value determines how a successful response body is parsed.\n * * If `responseType` is the default `json`, you can pass a type interface for the resulting\n * object as a type parameter to the call.\n *\n * The `observe` value determines the return type, according to what you are interested in\n * observing.\n * * An `observe` value of events returns an observable of the raw `HttpEvent` stream, including\n * progress events by default.\n * * An `observe` value of response returns an observable of `HttpResponse`,\n * where the `T` parameter depends on the `responseType` and any optionally provided type\n * parameter.\n * * An `observe` value of body returns an observable of `` with the same `T` body type.\n *\n */\n request(first, url, options = {}) {\n let req;\n // First, check whether the primary argument is an instance of `HttpRequest`.\n if (first instanceof HttpRequest) {\n // It is. The other arguments must be undefined (per the signatures) and can be\n // ignored.\n req = first;\n }\n else {\n // It's a string, so it represents a URL. Construct a request based on it,\n // and incorporate the remaining arguments (assuming `GET` unless a method is\n // provided.\n // Figure out the headers.\n let headers = undefined;\n if (options.headers instanceof HttpHeaders) {\n headers = options.headers;\n }\n else {\n headers = new HttpHeaders(options.headers);\n }\n // Sort out parameters.\n let params = undefined;\n if (!!options.params) {\n if (options.params instanceof HttpParams) {\n params = options.params;\n }\n else {\n params = new HttpParams({ fromObject: options.params });\n }\n }\n // Construct the request.\n req = new HttpRequest(first, url, (options.body !== undefined ? options.body : null), {\n headers,\n context: options.context,\n params,\n reportProgress: options.reportProgress,\n // By default, JSON is assumed to be returned for all calls.\n responseType: options.responseType || 'json',\n withCredentials: options.withCredentials,\n });\n }\n // Start with an Observable.of() the initial request, and run the handler (which\n // includes all interceptors) inside a concatMap(). This way, the handler runs\n // inside an Observable chain, which causes interceptors to be re-run on every\n // subscription (this also makes retries re-run the handler, including interceptors).\n const events$ = of(req).pipe(concatMap((req) => this.handler.handle(req)));\n // If coming via the API signature which accepts a previously constructed HttpRequest,\n // the only option is to get the event stream. Otherwise, return the event stream if\n // that is what was requested.\n if (first instanceof HttpRequest || options.observe === 'events') {\n return events$;\n }\n // The requested stream contains either the full response or the body. In either\n // case, the first step is to filter the event stream to extract a stream of\n // responses(s).\n const res$ = events$.pipe(filter((event) => event instanceof HttpResponse));\n // Decide which stream to return.\n switch (options.observe || 'body') {\n case 'body':\n // The requested stream is the body. Map the response stream to the response\n // body. This could be done more simply, but a misbehaving interceptor might\n // transform the response body into a different format and ignore the requested\n // responseType. Guard against this by validating that the response is of the\n // requested type.\n switch (req.responseType) {\n case 'arraybuffer':\n return res$.pipe(map((res) => {\n // Validate that the body is an ArrayBuffer.\n if (res.body !== null && !(res.body instanceof ArrayBuffer)) {\n throw new Error('Response is not an ArrayBuffer.');\n }\n return res.body;\n }));\n case 'blob':\n return res$.pipe(map((res) => {\n // Validate that the body is a Blob.\n if (res.body !== null && !(res.body instanceof Blob)) {\n throw new Error('Response is not a Blob.');\n }\n return res.body;\n }));\n case 'text':\n return res$.pipe(map((res) => {\n // Validate that the body is a string.\n if (res.body !== null && typeof res.body !== 'string') {\n throw new Error('Response is not a string.');\n }\n return res.body;\n }));\n case 'json':\n default:\n // No validation needed for JSON responses, as they can be of any type.\n return res$.pipe(map((res) => res.body));\n }\n case 'response':\n // The response stream was requested directly, so return it.\n return res$;\n default:\n // Guard against new future observe types being added.\n throw new Error(`Unreachable: unhandled observe type ${options.observe}}`);\n }\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `DELETE` request to execute on the server. See the individual overloads for\n * details on the return type.\n *\n * @param url The endpoint URL.\n * @param options The HTTP options to send with the request.\n *\n */\n delete(url, options = {}) {\n return this.request('DELETE', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `GET` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n get(url, options = {}) {\n return this.request('GET', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `HEAD` request to execute on the server. The `HEAD` method returns\n * meta information about the resource without transferring the\n * resource itself. See the individual overloads for\n * details on the return type.\n */\n head(url, options = {}) {\n return this.request('HEAD', url, options);\n }\n /**\n * Constructs an `Observable` that, when subscribed, causes a request with the special method\n * `JSONP` to be dispatched via the interceptor pipeline.\n * The [JSONP pattern](https://en.wikipedia.org/wiki/JSONP) works around limitations of certain\n * API endpoints that don't support newer,\n * and preferable [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) protocol.\n * JSONP treats the endpoint API as a JavaScript file and tricks the browser to process the\n * requests even if the API endpoint is not located on the same domain (origin) as the client-side\n * application making the request.\n * The endpoint API must support JSONP callback for JSONP requests to work.\n * The resource API returns the JSON response wrapped in a callback function.\n * You can pass the callback function name as one of the query parameters.\n * Note that JSONP requests can only be used with `GET` requests.\n *\n * @param url The resource URL.\n * @param callbackParam The callback function name.\n *\n */\n jsonp(url, callbackParam) {\n return this.request('JSONP', url, {\n params: new HttpParams().append(callbackParam, 'JSONP_CALLBACK'),\n observe: 'body',\n responseType: 'json',\n });\n }\n /**\n * Constructs an `Observable` that, when subscribed, causes the configured\n * `OPTIONS` request to execute on the server. This method allows the client\n * to determine the supported HTTP methods and other capabilities of an endpoint,\n * without implying a resource action. See the individual overloads for\n * details on the return type.\n */\n options(url, options = {}) {\n return this.request('OPTIONS', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PATCH` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n patch(url, body, options = {}) {\n return this.request('PATCH', url, addBody(options, body));\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `POST` request to execute on the server. The server responds with the location of\n * the replaced resource. See the individual overloads for\n * details on the return type.\n */\n post(url, body, options = {}) {\n return this.request('POST', url, addBody(options, body));\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PUT` request to execute on the server. The `PUT` method replaces an existing resource\n * with a new set of values.\n * See the individual overloads for details on the return type.\n */\n put(url, body, options = {}) {\n return this.request('PUT', url, addBody(options, body));\n }\n}\nHttpClient.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HttpClient, deps: [{ token: HttpHandler }], target: i0.ɵɵFactoryTarget.Injectable });\nHttpClient.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HttpClient });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HttpClient, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: HttpHandler }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * `HttpHandler` which applies an `HttpInterceptor` to an `HttpRequest`.\n *\n *\n */\nclass HttpInterceptorHandler {\n constructor(next, interceptor) {\n this.next = next;\n this.interceptor = interceptor;\n }\n handle(req) {\n return this.interceptor.intercept(req, this.next);\n }\n}\n/**\n * A multi-provider token that represents the array of registered\n * `HttpInterceptor` objects.\n *\n * @publicApi\n */\nconst HTTP_INTERCEPTORS = new InjectionToken('HTTP_INTERCEPTORS');\nclass NoopInterceptor {\n intercept(req, next) {\n return next.handle(req);\n }\n}\nNoopInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNoopInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopInterceptor });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopInterceptor, decorators: [{\n type: Injectable\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Every request made through JSONP needs a callback name that's unique across the\n// whole page. Each request is assigned an id and the callback name is constructed\n// from that. The next id to be assigned is tracked in a global variable here that\n// is shared among all applications on the page.\nlet nextRequestId = 0;\n/**\n * When a pending