sodas-sdk 1.4.3 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.legacy.node.cjs","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;ACVA;AACA;AACA,kBAAkB,mBAAO,CAAC,0DAAe;AACzC,kBAAkB,mBAAO,CAAC,sDAAa;AACvC,kBAAkB,mBAAO,CAAC,oEAAoB;AAC9C;;;;;;;;;;;ACLA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5BA,YAAY,mBAAO,CAAC,wDAAY;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,iBAAiB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;;;;;;;;;;ACjCA;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzBA,YAAY,mBAAO,CAAC,wDAAY;AAChC,YAAY,mBAAO,CAAC,wDAAY;AAChC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,eAAe;AAC5B,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AC1EA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,aAAa,eAAe;AAC5B;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;;;;;;;;;;ACpCA,YAAY,mBAAO,CAAC,wDAAY;AAChC,YAAY,mBAAO,CAAC,wDAAY;AAChC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,gEAAkB;AAC3C,iBAAiB,mBAAO,CAAC,4DAAgB;AACzC,iBAAiB,mBAAO,CAAC,sEAAqB;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;;;;;;;;;;AC1CA,oBAAoB,mBAAO,CAAC,oEAAoB;;AAEhD;AACA;;AAEA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;;;;;;;;;;;AChBA,iBAAiB,mBAAO,CAAC,gEAAkB;AAC3C,iBAAiB,mBAAO,CAAC,4DAAgB;AACzC,iBAAiB,mBAAO,CAAC,sEAAqB;AAC9C;;AAEA;AACA;AACA;AACA,wBAAwB;AACxB,yBAAyB;;AAEzB;AACA;AACA;AACA,aAAa,cAAc;AAC3B,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1EA,WAAW,mBAAO,CAAC,kBAAM;AACzB,aAAa,oDAAwB;AACrC,oBAAoB,mBAAO,CAAC,2EAAgB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;AC/MA;;AAEA;AACA;AACA;;AAEA,kBAAkB;AAClB,YAAY;AACZ,YAAY;AACZ,iBAAiB;AACjB,eAAe;AACf,eAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4CAA4C;;AAEvD;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,oDAAU;;AAEnC,OAAO,YAAY;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;AC7QA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAO,CAAC,sCAAI;AACpC;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,eAAe;AAC3B;AACA;AACA;AACA;;AAEA,kBAAkB,sBAAsB;AACxC;AACA,cAAc;AACd;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,cAAc,SAAS;AACvB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;;AAEA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACjRA;AACA;AACA;AACA;;AAEA;AACA,CAAC,+FAAwC;AACzC,EAAE;AACF,CAAC,yFAAqC;AACtC;;;;;;;;;;;ACTA;AACA;AACA;;AAEA,YAAY,mBAAO,CAAC,gBAAK;AACzB,aAAa,mBAAO,CAAC,kBAAM;;AAE3B;AACA;AACA;;AAEA,YAAY;AACZ,WAAW;AACX,kBAAkB;AAClB,YAAY;AACZ,YAAY;AACZ,iBAAiB;AACjB,eAAe;AACf,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA,cAAc;;AAEd;AACA;AACA;AACA,uBAAuB,mBAAO,CAAC,8DAAgB;;AAE/C;AACA,EAAE,cAAc;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF,6DAA6D;AAC7D;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,CAAC,IAAI;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,4BAA4B;;AAEpC;AACA;AACA,iDAAiD,EAAE;AACnD,sBAAsB,WAAW,IAAI,MAAM;;AAE3C;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,oDAAU;;AAEnC,OAAO,YAAY;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACtQA,aAAa,oDAAwB;AACrC,WAAW,mBAAO,CAAC,kBAAM;;AAEzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1GA;;AAEA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B;AACA,oBAAoB;AACpB;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;;;;;;;;;;;ACdA,UAAU,mBAAO,CAAC,gBAAK;AACvB;AACA,WAAW,mBAAO,CAAC,kBAAM;AACzB,YAAY,mBAAO,CAAC,oBAAO;AAC3B,eAAe,sDAA0B;AACzC,aAAa,mBAAO,CAAC,sBAAQ;AAC7B,YAAY,mBAAO,CAAC,yDAAS;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,cAAc;AACrD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gCAAgC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,uBAAuB,wCAAwC;AAC/D,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;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,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,mBAAmB;;AAEnE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,sEAAsE;AACvF,aAAa,kEAAkE;AAC/E,KAAK;AACL,GAAG;AACH;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD,mBAAmB;;;;;;;;;;;AC7qBnB,qBAAqB,mBAAO,CAAC,8EAAiB;AAC9C,WAAW,mBAAO,CAAC,kBAAM;AACzB,WAAW,mBAAO,CAAC,kBAAM;AACzB,WAAW,mBAAO,CAAC,kBAAM;AACzB,YAAY,mBAAO,CAAC,oBAAO;AAC3B,eAAe,6CAAoB;AACnC,SAAS,mBAAO,CAAC,cAAI;AACrB,aAAa,oDAAwB;AACrC,WAAW,mBAAO,CAAC,sDAAY;AAC/B,eAAe,mBAAO,CAAC,kDAAU;AACjC,eAAe,mBAAO,CAAC,+DAAe;;AAEtC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,eAAe;AACf;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8CAA8C,SAAS;AACvD;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACpfA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;ACTa;;AAEb;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,QAAQ,UAAU;AAC7B,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,UAAU;AAC7B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACntDA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uFAAqC;;;;;;;;;;;;ACXrC;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ;AACA;AACA;AACA;;AAEA,SAAS,mBAAO,CAAC,gDAAS;AAC1B,cAAc,iDAAuB;;AAErC;AACA;AACA;AACA;;AAEA,mCAAmC,SAAS;AAC5C;;AAEA;AACA;AACA;AACA;;AAEA,eAAe;AACf,gBAAgB,KAAK;AACrB,mBAAmB;AACnB,iBAAiB;AACjB,kBAAkB;AAClB,cAAc;AACd,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;AC3LA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,YAAY,OAAO;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;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;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACjKa;;AAEb,eAAe,6CAAoB;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAW,eAAe;AAC1B,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA,sBAAsB;;;;;;;;;;;;AC3GT;AACb,WAAW,mBAAO,CAAC,cAAI;AACvB,YAAY,mBAAO,CAAC,gBAAK;AACzB,gBAAgB,mBAAO,CAAC,kDAAU;;AAElC,OAAO,KAAK;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iCAAiC,GAAG;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtI0B;AACqC;AACY;AAC1B;AAEkB;AACH;AAMhE;;GAEG;AACH,MAAM,WAAY,SAAQ,qDAAa;IAKrC;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,GAAW;QAChC,WAAW,CAAC,OAAO,GAAG,GAAG,GAAG,cAAc,CAAC;QAC3C,WAAW,CAAC,QAAQ,GAAG,GAAG,WAAW,CAAC,OAAO,OAAO,CAAC;IACvD,CAAC;IAED,MAAM,CAAO,iBAAiB;6DAC5B,aAAqB,CAAC,EACtB,WAAmB,EAAE,EACrB,YAAuB,iDAAS,CAAC,IAAI;YAErC,sEAAsE;YACtE,iFAAiC,CAAC,IAAI,CAAC,CAAC;YAExC,MAAM,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAClE,IAAI,QAAa,CAAC;YAClB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,6CAAK,CAAC,GAAG,CAAC,GAAG,EAAE;oBAC9B,OAAO,kBACL,cAAc,EAAE,kBAAkB,IAC/B,CAAC,WAAW,CAAC,YAAY,IAAI;wBAC9B,aAAa,EAAE,UAAU,WAAW,CAAC,YAAY,EAAE;qBACpD,CAAC,CACH;oBACD,MAAM,EAAE,EAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAC;iBAC1C,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YAED,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAO,IAAS,EAAE,EAAE;oBACzC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;oBACtC,MAAM,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBACxC,OAAO,WAAW,CAAC;gBACrB,CAAC,EAAC,CACH,CAAC;gBACF,OAAO;oBACL,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;oBAC1B,IAAI;iBACL,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,sEAA6B,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;KAAA;IAED,MAAM,CAAO,eAAe;6DAC1B,aAAqB,EACrB,aAAqB,CAAC,EACtB,WAAmB,EAAE,EACrB,YAAuB,iDAAS,CAAC,IAAI;YAErC,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC7D,CAAC;YACD,sEAAsE;YACtE,iFAAiC,CAAC,IAAI,CAAC,CAAC;YAExC,IAAI,QAAa,CAAC;YAClB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,6CAAK,CAAC,GAAG,CACvB,IAAI,CAAC,SAAS,CAAC,WAAiC,CAAC,QAAQ,EAC1D;oBACE,MAAM,EAAE,EAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAC;iBACjE,CACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YAED,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAO,IAAS,EAAE,EAAE;oBACzC,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;oBAC/B,MAAM,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBACxC,OAAO,WAAW,CAAC;gBACrB,CAAC,EAAC,CACH,CAAC;gBACF,OAAO;oBACL,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;oBAC1B,IAAI;iBACL,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,sEAA6B,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;KAAA;IAEM,KAAK;QACV,qDACK,KAAK,CAAC,KAAK,EAAE,GACb,CAAC,IAAI,CAAC,aAAa,IAAI,EAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAC,CAAC,KAC9D,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAC7C;IACJ,CAAC;IAEY,eAAe,CAAC,GAAmB;;;;;YAC9C,MAAM,OAAM,eAAe,YAAC,GAAG,CAAC,CAAC;YAEjC,MAAM,cAAc,GAAG,GAAqB,CAAC;YAC7C,cAAc,CAAC,aAAa;gBAC1B,CAAC,IAAI,CAAC,aAAa,GAAG,gDAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;YAC5D,cAAc,CAAC,WAAW;gBACxB,CAAC,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;YAClD,cAAc,CAAC,mBAAmB;gBAChC,CAAC,IAAI,CAAC,mBAAmB,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC;QACpE,CAAC;KAAA;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IACD,IAAI,WAAW,CAAC,KAAa;QAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IACD,IAAI,mBAAmB,CAAC,KAAa;QACnC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACnC,CAAC;CACF;AAED,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvJD;AAKA;AAOD;AACiC;AAES;AACH;AAEtB;AAkB1C;;GAEG;AACH,MAAM,OAAQ,SAAQ,qDAAa;IAiBjC;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,GAAW;QAChC,OAAO,CAAC,OAAO,GAAG,GAAG,GAAG,UAAU,CAAC;QACnC,OAAO,CAAC,QAAQ,GAAG,GAAG,OAAO,CAAC,OAAO,OAAO,CAAC;IAC/C,CAAC;IAED,MAAM,CAAO,iBAAiB;6DAC5B,aAAqB,CAAC,EACtB,WAAmB,EAAE,EACrB,YAAuB,iDAAS,CAAC,IAAI;YAErC,sEAAsE;YACtE,iFAAiC,CAAC,IAAI,CAAC,CAAC;YAExC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAC9D,IAAI,QAAa,CAAC;YAClB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,6CAAK,CAAC,GAAG,CAAC,GAAG,EAAE;oBAC9B,OAAO,kBACL,cAAc,EAAE,kBAAkB,IAC/B,CAAC,OAAO,CAAC,YAAY,IAAI;wBAC1B,aAAa,EAAE,UAAU,OAAO,CAAC,YAAY,EAAE;qBAChD,CAAC,CACH;oBACD,MAAM,EAAE,EAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAC;iBAC1C,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YAED,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAO,IAAS,EAAE,EAAE;oBACzC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;oBAC9B,MAAM,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBACpC,OAAO,OAAO,CAAC;gBACjB,CAAC,EAAC,CACH,CAAC;gBACF,OAAO;oBACL,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;oBAC1B,IAAI;iBACL,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,sEAA6B,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;KAAA;IAED,MAAM,CAAO,MAAM;6DAAC,EAAU,EAAE,QAAgB,CAAC;YAC/C,sEAAsE;YACtE,iFAAiC,CAAC,IAAI,CAAC,CAAC;YAExC,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,OAAO,MAAM,CAAC;YACrC,IAAI,QAAa,CAAC;YAClB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,6CAAK,CAAC,GAAG,CAAC,GAAG,EAAE;oBAC9B,OAAO,kBACL,MAAM,EAAE,aAAa,IAClB,CAAC,OAAO,CAAC,YAAY,IAAI;wBAC1B,aAAa,EAAE,UAAU,OAAO,CAAC,YAAY,EAAE;qBAChD,CAAC,CACH;oBACD,MAAM,EAAE,EAAC,EAAE,EAAE,KAAK,EAAC;oBACnB,YAAY,EAAE,MAAM;iBACrB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YAED,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC;YACD,MAAM,IAAI,sEAA6B,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;KAAA;IAED,MAAM,CAAO,eAAe;6DAC1B,aAAqB,EACrB,aAAqB,CAAC,EACtB,WAAmB,EAAE,EACrB,YAAuB,iDAAS,CAAC,IAAI;YAErC,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC7D,CAAC;YACD,sEAAsE;YACtE,iFAAiC,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,QAAa,CAAC;YAClB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,6CAAK,CAAC,GAAG,CACvB,IAAI,CAAC,SAAS,CAAC,WAAiC,CAAC,QAAQ,EAC1D;oBACE,MAAM,EAAE,EAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAC;iBACjE,CACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAO,IAAS,EAAE,EAAE;oBACzC,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;oBAC3B,MAAM,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBACpC,OAAO,OAAO,CAAC;gBACjB,CAAC,EAAC,CACH,CAAC;gBACF,OAAO;oBACL,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;oBAC1B,IAAI;iBACL,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,sEAA6B,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;KAAA;IAEM,KAAK;QACV,uCACK,KAAK,CAAC,KAAK,EAAE,KAEhB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,EACzD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAC3C,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,cAAc,EAAE,IAAI,CAAC,cAAc,IACnC;IACJ,CAAC;IAEY,eAAe,CAAC,GAAmB;;;;;YAC9C,MAAM,OAAM,eAAe,YAAC,GAAG,CAAC,CAAC;YACjC,MAAM,UAAU,GAAG,GAAiB,CAAC;YACrC,UAAU,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,gDAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;YACtE,UAAU,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,gDAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;YACzE,UAAU,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;YAChE,UAAU,CAAC,yBAAyB;gBAClC,CAAC,IAAI,CAAC,yBAAyB,GAAG,UAAU,CAAC,yBAAyB,CAAC,CAAC;YAC1E,UAAU,CAAC,kBAAkB;gBAC3B,CAAC,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;YAC5D,UAAU,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1D,UAAU,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC7D,UAAU,CAAC,cAAc;gBACvB,CAAC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;YAEpD,UAAU,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,gDAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;YAChE,UAAU,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,gDAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;YACzE,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,gDAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7D,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,gDAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;YAE7D,MAAM,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;KAAA;IAEY,2BAA2B,CAAC,GAAe;;YACtD,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;gBACxB,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1D,gDAAI,CAAC,QAAQ,CAAC,CACf,CAAC;gBACF,IAAI,CAAC,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAO,cAAsB,EAAE,EAAE;oBACvD,OAAO,MAAM,qDAAY,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;gBACxD,CAAC,EAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;IAEM,MAAM,CAAO,gBAAgB,CAAC,OAAgB;;;YACnD,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,oBAAoB,CACtD,gDAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CACtB,CAAC;gBACF,IAAI,aAAa,EAAE,CAAC;oBAClB,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;oBACtC,MAAM,aAAa,CAAC,cAAc,EAAE,CAAC;gBACvC,CAAC;YACH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAI,6CAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,YAAK,CAAC,QAAQ,0CAAE,MAAM,MAAK,GAAG,EAAE,CAAC;oBAChE,MAAM,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;oBACjC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;oBACnC,MAAM,UAAU,CAAC,cAAc,EAAE,CAAC;gBACpC,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAEM,cAAc,CAAC,MAAe;QACnC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;YAC3B,IAAI;YACJ,WAAW;YACX,aAAa;YACb,mBAAmB;YACnB,eAAe;YACf,cAAc;YACd,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,QAAQ;YACR,QAAQ;YACR,iBAAiB;SAClB,CAAC,CAAC;QAEH,KAAK,MAAM,GAAG,IAAI,MAAa,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;gBAAE,SAAS;YACjE,IAAI,GAAG,KAAK,eAAe;gBAAE,SAAS;YACtC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YACpC,MAAM,KAAK,GAAI,MAAc,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACvB,IAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,0EAA0E;QAC1E,uEAAuE;QACvE,uDAAuD;QACvD,MAAM,mBAAmB,GAAI,MAAc,CAAC,aAE/B,CAAC;QACd,IAAI,CAAC,mBAAmB,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAExB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,IAAI,qDAAY,EAAE,CAAC;YACtC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEY,cAAc;;;;;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACzC,MAAM,OAAM,cAAc,WAAE,CAAC;YAC7B,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC;YACtD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACzD,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBAC9C,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC/C,MAAM,YAAY,CAAC,cAAc,EAAE,CAAC;oBACpC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;wBAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;oBAC5B,CAAC;oBACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gDAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAEa,gCAAgC;;YAC5C,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC;gBACzC,MAAM,aAAa,GAAG,iDAAK,CACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,MAAM,CAC9D,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CACzB,CACF,CAAC;gBACF,MAAM,qBAAqB,GAAG,WAAW,CAAC,MAAM,CAC9C,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CACpC,CAAC;gBACF,MAAM,+BAA+B,GAAG,MAAM,OAAO,CAAC,GAAG,CACvD,qBAAqB,CAAC,GAAG,CAAC,CAAO,EAAE,EAAE,EAAE;oBACrC,OAAO,MAAM,qDAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAC5C,CAAC,EAAC,CACH,CAAC;gBACF,MAAM,OAAO,CAAC,GAAG,CACf,+BAA+B,CAAC,GAAG,CAAC,CAAO,YAAY,EAAE,EAAE;oBACzD,MAAM,YAAY,CAAC,cAAc,EAAE,CAAC;gBACtC,CAAC,EAAC,CACH,CAAC;gBACF,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC;YACvC,CAAC;QACH,CAAC;KAAA;IAEY,cAAc;;;;;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YACzC,MAAM,OAAM,cAAc,WAAE,CAAC;YAC7B,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,CAAC;YACtD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBAC9C,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC/C,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC;wBACpB,MAAM,YAAY,CAAC,cAAc,EAAE,CAAC;oBACtC,CAAC;yBAAM,CAAC;wBACN,MAAM,YAAY,CAAC,cAAc,EAAE,CAAC;wBACpC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;4BAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;wBAC5B,CAAC;wBACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gDAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;oBACnD,CAAC;gBACH,CAAC;gBACD,MAAM,IAAI,CAAC,gCAAgC,EAAE,CAAC;YAChD,CAAC;QACH,CAAC;KAAA;IAEY,cAAc;;;;;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACnD,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;wBACxC,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;oBAC/C,CAAC;oBACD,mDAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YACD,MAAM,OAAM,cAAc,WAAE,CAAC;QAC/B,CAAC;KAAA;IAED,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEM,yBAAyB,CAAC,KAAa;QAC5C,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YACpD,MAAM,IAAI,8DAAqB,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAEM,kBAAkB,CAAC,YAA0B;QAClD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,YAAY,YAAY,qDAAY,EAAE,CAAC;YACzC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,yDAAgB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,kBAAkB;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAC1B,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,qDAAY,EAAE,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACzC,OAAO,eAAe,CAAC;IACzB,CAAC;IAEM,4BAA4B,CAAC,KAAa;QAC/C,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YACpD,MAAM,IAAI,8DAAqB,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACD,IAAW,SAAS,CAAC,KAAa;QAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,IAAW,yBAAyB;QAClC,OAAO,IAAI,CAAC,yBAAyB,CAAC;IACxC,CAAC;IACD,IAAW,yBAAyB,CAAC,KAAa;QAChD,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;IACzC,CAAC;IAED,IAAW,kBAAkB;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IACD,IAAW,kBAAkB,CAAC,KAAa;QACzC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAClC,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,IAAW,OAAO,CAAC,KAAa;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IACD,IAAW,QAAQ,CAAC,KAAa;QAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IACD,IAAW,cAAc,CAAC,KAAa;QACrC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;CACF;AAED,iEAAe,OAAO,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3dG;AAQA;AAOD;AACiC;AAES;AACnC;AACgC;AAehE;;GAEG;AACH,MAAM,aAAc,SAAQ,qDAAa;IAahC,MAAM,CAAO,gBAAgB,CAClC,aAA4B;;;YAE5B,IAAI,CAAC;gBACH,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAC5D,gDAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAC5B,CAAC;gBACF,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;oBAClD,MAAM,aAAa,CAAC,cAAc,EAAE,CAAC;gBACvC,CAAC;YACH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAI,6CAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,YAAK,CAAC,QAAQ,0CAAE,MAAM,MAAK,GAAG,EAAE,CAAC;oBAChE,MAAM,gBAAgB,GAAG,IAAI,aAAa,EAAE,CAAC;oBAC7C,MAAM,gBAAgB,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;oBACrD,MAAM,gBAAgB,CAAC,cAAc,EAAE,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;;;;OAUG;IACU,cAAc,CAAC,MAAqB;;;YAC/C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;gBAC3B,IAAI;gBACJ,aAAa;gBACb,mBAAmB;gBACnB,eAAe;gBACf,cAAc;gBACd,iBAAiB;gBACjB,YAAY;aACb,CAAC,CAAC;YAEH,KAAK,MAAM,GAAG,IAAI,MAAa,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;oBAAE,SAAS;gBACjE,IAAI,GAAG,KAAK,eAAe;oBAAE,SAAS;gBACtC,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAS;gBACpC,MAAM,KAAK,GAAI,MAAc,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACvB,IAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC7B,CAAC;YACH,CAAC;YAED,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YAExB,MAAM,aAAa,GAAI,MAAc,CAAC,aAEzB,CAAC;YACd,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjD,OAAO;YACT,CAAC;YAED,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;gBACnC,IAAI,CAAC,MAAM;oBAAE,SAAS;gBACtB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;gBAClC,IAAI,CAAC,UAAU;oBAAE,SAAS;gBAC1B,MAAM,OAAO,GAAG,gDAAI,CAAC,UAAU,CAAC,CAAC;gBACjC,qEAAqE;gBACrE,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,gDAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;oBAC7D,IAAI,QAAQ,EAAE,CAAC;wBACb,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;wBAChC,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;wBAChC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAChC,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,IAAI,6CAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,YAAK,CAAC,QAAQ,0CAAE,MAAM,MAAK,GAAG,EAAE,CAAC;wBAChE,MAAM,SAAS,GAAG,IAAI,gDAAO,EAAE,CAAC;wBAChC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;wBACjC,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC;wBACjC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACjC,CAAC;yBAAM,CAAC;wBACN,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;QACrC,CAAC;KAAA;IAED;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,GAAW;QAChC,aAAa,CAAC,OAAO,GAAG,GAAG,GAAG,gBAAgB,CAAC;QAC/C,aAAa,CAAC,QAAQ,GAAG,GAAG,aAAa,CAAC,OAAO,OAAO,CAAC;IAC3D,CAAC;IAED,MAAM,CAAO,MAAM;6DAAC,EAAU,EAAE,QAAgB,CAAC;YAC/C,sEAAsE;YACtE,iFAAiC,CAAC,IAAI,CAAC,CAAC;YAExC,MAAM,GAAG,GAAG,GAAG,aAAa,CAAC,OAAO,MAAM,CAAC;YAC3C,IAAI,QAAa,CAAC;YAClB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,6CAAK,CAAC,GAAG,CAAC,GAAG,EAAE;oBAC9B,OAAO,kBACL,MAAM,EAAE,aAAa,IAClB,CAAC,aAAa,CAAC,YAAY,IAAI;wBAChC,aAAa,EAAE,UAAU,aAAa,CAAC,YAAY,EAAE;qBACtD,CAAC,CACH;oBACD,MAAM,EAAE,EAAC,EAAE,EAAE,KAAK,EAAC;oBACnB,YAAY,EAAE,MAAM;iBACrB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YAED,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC;YACD,MAAM,IAAI,sEAA6B,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;KAAA;IAED,MAAM,CAAO,iBAAiB;6DAC5B,aAAqB,CAAC,EACtB,WAAmB,EAAE,EACrB,YAAuB,iDAAS,CAAC,IAAI;YAErC,sEAAsE;YACtE,iFAAiC,CAAC,IAAI,CAAC,CAAC;YAExC,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YACpE,IAAI,QAAa,CAAC;YAClB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,6CAAK,CAAC,GAAG,CAAC,GAAG,EAAE;oBAC9B,OAAO,kBACL,cAAc,EAAE,kBAAkB,IAC/B,CAAC,aAAa,CAAC,YAAY,IAAI;wBAChC,aAAa,EAAE,UAAU,aAAa,CAAC,YAAY,EAAE;qBACtD,CAAC,CACH;oBACD,MAAM,EAAE,EAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAC;iBAC1C,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YAED,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAO,IAAS,EAAE,EAAE;oBACzC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;oBAC1C,MAAM,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAC1C,OAAO,aAAa,CAAC;gBACvB,CAAC,EAAC,CACH,CAAC;gBACF,OAAO;oBACL,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;oBAC1B,IAAI;iBACL,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,sEAA6B,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;KAAA;IAED,MAAM,CAAO,eAAe;6DAC1B,aAAqB,EACrB,aAAqB,CAAC,EACtB,WAAmB,EAAE,EACrB,YAAuB,iDAAS,CAAC,IAAI;YAErC,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC7D,CAAC;YACD,sEAAsE;YACtE,iFAAiC,CAAC,IAAI,CAAC,CAAC;YAExC,IAAI,QAAa,CAAC;YAClB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,6CAAK,CAAC,GAAG,CACvB,IAAI,CAAC,SAAS,CAAC,WAAiC,CAAC,QAAQ,EAC1D;oBACE,MAAM,EAAE,EAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAC;iBACjE,CACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YAED,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAO,IAAS,EAAE,EAAE;oBACzC,MAAM,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC;oBACjC,MAAM,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAC1C,OAAO,aAAa,CAAC;gBACvB,CAAC,EAAC,CACH,CAAC;gBACF,OAAO;oBACL,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;oBAC1B,IAAI;iBACL,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,sEAA6B,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;KAAA;IAEM,KAAK;QACV,MAAM,MAAM,6EACP,KAAK,CAAC,KAAK,EAAE,GAEb,CAAC,IAAI,CAAC,eAAe,IAAI,EAAC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAC,CAAC,GACjE,CAAC,IAAI,CAAC,UAAU,IAAI,EAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAC,CAAC,KACrD,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,EACzD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAC3C,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,cAAc,EAAE,IAAI,CAAC,cAAc,KAChC,CAAC,IAAI,CAAC,eAAe,IAAI,EAAC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAC,CAAC,CACrE,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEY,eAAe,CAAC,GAAmB;;;;;YAC9C,MAAM,OAAM,eAAe,YAAC,GAAG,CAAC,CAAC;YACjC,MAAM,gBAAgB,GAAG,GAAuB,CAAC;YACjD,gBAAgB,CAAC,eAAe;gBAC9B,CAAC,IAAI,CAAC,eAAe,GAAG,gDAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;YAClE,gBAAgB,CAAC,UAAU;gBACzB,CAAC,IAAI,CAAC,UAAU,GAAG,gDAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;YACxD,gBAAgB,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC5E,gBAAgB,CAAC,yBAAyB;gBACxC,CAAC,IAAI,CAAC,yBAAyB;oBAC7B,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;YAChD,gBAAgB,CAAC,kBAAkB;gBACjC,CAAC,IAAI,CAAC,kBAAkB,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;YAClE,gBAAgB,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACtE,gBAAgB,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACzE,gBAAgB,CAAC,cAAc;gBAC7B,CAAC,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;YAE1D,MAAM,IAAI,CAAC,4BAA4B,CAAC,gBAAgB,CAAC,CAAC;QAC5D,CAAC;KAAA;IAEY,4BAA4B,CACvC,GAAqB;;YAErB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,IAAI,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC3D,IAAI,CAAC,eAAe,GAAG,iDAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAClD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBAC7D,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;wBAClD,MAAM,YAAY,GAAG,MAAM,gDAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;wBAC/D,IAAI,YAAY,EAAE,CAAC;4BACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACxC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAEY,cAAc;;;;;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACnD,mDAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YACD,MAAM,OAAM,cAAc,WAAE,CAAC;QAC/B,CAAC;KAAA;IAEM,kBAAkB,CAAC,OAAgB;QACxC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,CAAC,OAAO,YAAY,gDAAO,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,yDAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,iEAAwB,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAEM,mBAAmB,CAAC,MAAc,EAAE,MAAc;QACvD,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,4DAAmB,CAAC,iBAAiB,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,IAAI,8DAAqB,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,IAAI,8DAAqB,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,IAAI,6DAAoB,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACtC,CAAC;IAEM,kBAAkB,CAAC,KAAa;QACrC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,4DAAmB,CAAC,iBAAiB,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YACtD,MAAM,IAAI,8DAAqB,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,aAAa,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC5D,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,IAAW,eAAe;QACxB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IACD,IAAW,eAAe;QACxB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IACD,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACD,IAAW,SAAS,CAAC,KAAa;QAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,IAAW,yBAAyB;QAClC,OAAO,IAAI,CAAC,yBAAyB,CAAC;IACxC,CAAC;IACD,IAAW,yBAAyB,CAAC,KAAa;QAChD,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;IACzC,CAAC;IAED,IAAW,kBAAkB;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IACD,IAAW,kBAAkB,CAAC,KAAa;QACzC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAClC,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,IAAW,OAAO,CAAC,KAAa;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IACD,IAAW,QAAQ,CAAC,KAAa;QAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IACD,IAAW,cAAc,CAAC,KAAa;QACrC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;CACF;AAED,iEAAe,aAAa,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACza0C;AAO9C;AACsC;AACP;AACE;AAsC1D,MAAe,aAAc,SAAQ,kDAAU;IAoCtC,KAAK;QACV,+FACK,KAAK,CAAC,KAAK,EAAE,KAChB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,KAClB,CAAC,IAAI,CAAC,WAAW,IAAI,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAC,CAAC,GACrD,CAAC,IAAI,CAAC,iBAAiB,IAAI;YAC5B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C,CAAC,GACC,CAAC,IAAI,CAAC,aAAa,IAAI,EAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAC,CAAC,KAC9D,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,aAAa,EAAE,IAAI,CAAC,aAAa,IACjC;IACJ,CAAC;IAEY,eAAe,CAAC,GAAmB;;;;;YAC9C,MAAM,OAAM,eAAe,YAAC,GAAG,CAAC,CAAC;YAEjC,MAAM,eAAe,GAAG,GAAwB,CAAC;YAEjD,eAAe,CAAC,YAAY;gBAC1B,CAAC,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YAErD,eAAe,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,gDAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1E,eAAe,CAAC,SAAS;gBACvB,CAAC,IAAI,CAAC,SAAS,GAAG,gDAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;YACrD,eAAe,CAAC,YAAY;gBAC1B,CAAC,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YACrD,eAAe,CAAC,YAAY;gBAC1B,CAAC,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YACrD,eAAe,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YACjE,eAAe,CAAC,YAAY;gBAC1B,CAAC,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YACrD,eAAe,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACpE,eAAe,CAAC,WAAW;gBACzB,CAAC,IAAI,CAAC,WAAW,GAAG,gDAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;YACzD,eAAe,CAAC,iBAAiB;gBAC/B,CAAC,IAAI,CAAC,iBAAiB,GAAG,gDAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACrE,eAAe,CAAC,aAAa;gBAC3B,CAAC,IAAI,CAAC,aAAa,GAAG,gDAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC;YAC7D,eAAe,CAAC,YAAY;gBAC1B,CAAC,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YACrD,eAAe,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;YAC1E,eAAe,CAAC,WAAW;gBACzB,CAAC,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;YACnD,eAAe,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YAC9D,eAAe,CAAC,UAAU;gBACxB,CAAC,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;YACjD,eAAe,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACpE,eAAe,CAAC,aAAa;gBAC3B,CAAC,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;YACvD,eAAe,CAAC,UAAU;gBACxB,CAAC,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;YACjD,eAAe,CAAC,cAAc;gBAC5B,CAAC,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;YACzD,eAAe,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YACvE,eAAe,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACpE,eAAe,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;YAC1E,eAAe,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YACjE,eAAe,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACpE,eAAe,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YAC3D,eAAe,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;YAC1E,eAAe,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YACvE,eAAe,CAAC,aAAa;gBAC3B,CAAC,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;YACvD,MAAM,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC,CAAC;QACzD,CAAC;KAAA;IAEY,0BAA0B,CACrC,GAAsB;;YAEtB,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAO,eAA+B,EAAE,EAAE;oBAC5D,MAAM,WAAW,GAAG,IAAI,oDAAW,EAAE,CAAC;oBACtC,MAAM,WAAW,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;oBACnD,OAAO,WAAW,CAAC;gBACrB,CAAC,EAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;IAEY,cAAc;;;;;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC1C,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;YACtD,CAAC;YACD,MAAM,OAAM,cAAc,WAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;KAAA;IAEY,cAAc;;;;;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC;YACtD,CAAC;YACD,MAAM,OAAM,cAAc,WAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;KAAA;IAEM,sBAAsB,CAAC,IAAU;QACtC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,qEAAa,EAAE,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAEM,mBAAmB,CAAC,aAAqB;QAC9C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,qEAAa,EAAE,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,eAAe,CAAC,eAA8B;QAChD,IAAI,CAAC,CAAC,eAAe,YAAY,aAAa,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,yDAAgB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;YACnC,MAAM,IAAI,4DAAmB,CAAC,eAAe,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,IAAI,YAAY,CAAC,KAAa;QAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,IAAI,MAAM,CAAC,KAAa;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,IAAI,YAAY,CAAC,KAAa;QAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,CAAC,KAAa;QACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,IAAI,YAAY,CAAC,KAAa;QAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IACD,IAAI,WAAW,CAAC,KAAa;QAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,IAAI,UAAU,CAAC,KAAa;QAC1B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,CAAC,KAAa;QACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IACD,IAAI,QAAQ,CAAC,KAAY;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,CAAC,KAAa;QACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACD,IAAI,SAAS,CAAC,KAAa;QACzB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,IAAI,MAAM,CAAC,KAAY;QACrB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,CAAC,KAAa;QACpB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACD,IAAI,SAAS,CAAC,KAAY;QACxB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IACD,IAAI,QAAQ,CAAC,KAAa;QACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAEM,gBAAgB,CAAC,IAAY,EAAE,KAAa;QACjD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACnC,CAAC;IAEM,gBAAgB,CAAC,IAAY;QAClC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEM,QAAQ,CAAC,eAAuB,IAAI;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAEM,QAAQ,CAAC,KAAa,EAAE,eAAuB,IAAI;QACxD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;IACrC,CAAC;IAEM,WAAW,CAAC,eAAuB,IAAI;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,4BAA4B,YAAY,mBAAmB,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAEM,cAAc,CAAC,eAAuB,IAAI;QAC/C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;IAEM,cAAc,CAAC,KAAa,EAAE,eAAuB,IAAI;QAC9D,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;IAC3C,CAAC;IAEM,iBAAiB,CAAC,eAAuB,IAAI;QAClD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CACV,kCAAkC,YAAY,mBAAmB,CAClE,CAAC;QACJ,CAAC;IACH,CAAC;IAEM,WAAW,CAAC,QAAkB,EAAE,eAAuB,IAAI;QAChE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;IAC1C,CAAC;IAEM,UAAU,CAAC,OAAe,EAAE,eAAuB,IAAI;QAC5D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAEM,aAAa,CAAC,OAAe,EAAE,eAAuB,IAAI;QAC/D,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,MAAM,CAChE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CACrB,CAAC;YACF,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,qCAAqC;YAC5E,CAAC;QACH,CAAC;IACH,CAAC;IAEM,WAAW,CAAC,eAAuB,IAAI;QAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;CACF;AAED,iEAAe,aAAa,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjewB;AACY;AACT;AAyBxD,MAAM,YAAa,SAAQ,kDAAU;IA0BnC;;;;OAIG;IACI,cAAc,CAAC,MAAoB;QACxC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAE5E,KAAK,MAAM,GAAG,IAAI,MAAa,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;gBAAE,SAAS;YACjE,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YACpC,MAAM,KAAK,GAAI,MAAc,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACvB,IAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAEM,KAAK;QACV,mEACK,KAAK,CAAC,KAAK,EAAE,GACb,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAC,CAAC,GACpE,CAAC,IAAI,CAAC,eAAe,IAAI,EAAC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAC,CAAC,KACpE,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,EACzD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAC3C,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IACvB;IACJ,CAAC;IAEY,eAAe,CAAC,GAAmB;;;;;YAC9C,MAAM,OAAM,eAAe,YAAC,GAAG,CAAC,CAAC;YACjC,MAAM,eAAe,GAAG,GAAsB,CAAC;YAC/C,eAAe,CAAC,eAAe;gBAC7B,CAAC,IAAI,CAAC,eAAe,GAAG,gDAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;YACjE,eAAe,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;YAC1E,eAAe,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YACvE,eAAe,CAAC,cAAc;gBAC5B,CAAC,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;YACzD,eAAe,CAAC,WAAW;gBACzB,CAAC,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;YACnD,eAAe,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;YAC1E,eAAe,CAAC,aAAa;gBAC3B,CAAC,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;YACvD,eAAe,CAAC,yBAAyB;gBACvC,CAAC,IAAI,CAAC,yBAAyB;oBAC7B,eAAe,CAAC,yBAAyB,CAAC,CAAC;YAC/C,eAAe,CAAC,kBAAkB;gBAChC,CAAC,IAAI,CAAC,kBAAkB,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;YACjE,eAAe,CAAC,YAAY;gBAC1B,CAAC,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;YACrD,eAAe,CAAC,UAAU;gBACxB,CAAC,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;YACjD,eAAe,CAAC,aAAa;gBAC3B,CAAC,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;YACvD,eAAe,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YACjE,eAAe,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACpE,eAAe,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YACjE,eAAe,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACpE,eAAe,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;YAC1E,eAAe,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YACvE,eAAe,CAAC,gBAAgB;gBAC9B,CAAC,IAAI,CAAC,gBAAgB,GAAG,gDAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACrE,CAAC;KAAA;IAED;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAAC,GAAW;QAChC,YAAY,CAAC,OAAO,GAAG,GAAG,GAAG,eAAe,CAAC;QAC7C,YAAY,CAAC,QAAQ,GAAG,GAAG,YAAY,CAAC,OAAO,OAAO,CAAC;QACvD,YAAY,CAAC,cAAc,GAAG,GAAG,GAAG,cAAc,CAAC;QACnD,YAAY,CAAC,gBAAgB,GAAG,GAAG,GAAG,gBAAgB,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,UAAkB;QAC3C,gEAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACI,0BAA0B,CAAC,IAAU;QAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,gEAAQ,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACI,uBAAuB,CAAC,QAAgB;QAC7C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,IAAI,gEAAQ,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAEY,cAAc;;;;;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC9C,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;gBAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;YACzD,CAAC;YACD,MAAM,OAAM,cAAc,WAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;KAAA;IAEY,cAAc;;;;;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC7C,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;gBAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;YACzD,CAAC;YACD,MAAM,OAAM,cAAc,WAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;KAAA;IAED,kBAAkB;IAClB,IAAW,eAAe;QACxB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,YAAY;IACZ,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACD,IAAW,SAAS,CAAC,KAAa;QAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,WAAW;IACX,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IACD,IAAW,QAAQ,CAAC,KAAa;QAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,cAAc;IACd,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAW,WAAW,CAAC,KAAa;QAClC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,YAAY;IACZ,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAW,SAAS,CAAC,KAAa;QAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,gBAAgB;IAChB,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAW,aAAa,CAAC,KAAa;QACpC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,4BAA4B;IAC5B,IAAW,yBAAyB;QAClC,OAAO,IAAI,CAAC,yBAAyB,CAAC;IACxC,CAAC;IAED,IAAW,yBAAyB,CAAC,KAAa;QAChD,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;IACzC,CAAC;IAED,qBAAqB;IACrB,IAAW,kBAAkB;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,IAAW,kBAAkB,CAAC,KAAa;QACzC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAClC,CAAC;IAED,eAAe;IACf,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAW,YAAY,CAAC,KAAa;QACnC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,aAAa;IACb,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAW,UAAU,CAAC,KAAa;QACjC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAEM,QAAQ,CAAC,eAAuB,IAAI;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAEM,QAAQ,CAAC,KAAa,EAAE,eAAuB,IAAI;QACxD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;IACrC,CAAC;IAEM,WAAW,CAAC,eAAuB,IAAI;QAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,4BAA4B,YAAY,mBAAmB,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAEM,cAAc,CAAC,eAAuB,IAAI;QAC/C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;IAEM,cAAc,CAAC,KAAa,EAAE,eAAuB,IAAI;QAC9D,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;IAC3C,CAAC;IAEM,iBAAiB,CAAC,eAAuB,IAAI;QAClD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CACV,kCAAkC,YAAY,mBAAmB,CAClE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,SAAS;IACT,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,IAAW,MAAM,CAAC,KAAa;QAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,iBAAiB;IACjB,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IACD,IAAW,cAAc,CAAC,KAAa;QACrC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,UAAU;IACV,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,IAAW,OAAO,CAAC,KAAa;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,SAAS;IACT,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,IAAW,MAAM,CAAC,KAAY;QAC5B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACD,IAAW,SAAS,CAAC,KAAY;QAC/B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,WAAW;IACX,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IACD,IAAW,QAAQ,CAAC,KAAa;QAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,mBAAmB;IACnB,IAAW,gBAAgB;QACzB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IACD,IAAW,gBAAgB,CAAC,KAAa;QACvC,IAAI,CAAC,gBAAgB,GAAG,gDAAI,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;CACF;AAED,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACzXH;AAezB;;GAEG;AACH,MAAM,WAAW;IAaF,eAAe,CAAC,GAAmB;;YAC9C,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,gDAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5C,GAAG,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;YAC9D,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,iDAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;YAClD,GAAG,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;YAC3D,GAAG,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;YAC3D,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5C,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;YACxD,GAAG,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;YAC9D,GAAG,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC5E,CAAC;KAAA;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAEM,QAAQ,CAAC,eAAuB,IAAI;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpC,CAAC;IAEM,cAAc,CAAC,eAAuB,IAAI;QAC/C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAC1B,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAEM,WAAW,CAAC,eAAuB,IAAI;QAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvGD;AAKH;AACwD;AACH;AAGnD;AAgBzB,MAAe,UAAW,SAAQ,sDAAe;IAIxC,KAAK;QACV,+FACK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC,GAC1B,CAAC,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAC,CAAC,GAC7B,CAAC,IAAI,CAAC,MAAM,IAAI,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAC,CAAC,GACpD,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAC,CAAC,GAC1D,CAAC,IAAI,CAAC,SAAS,IAAI,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAC,CAAC,GAC7D,CAAC,IAAI,CAAC,SAAS,IAAI,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAC,CAAC,EAChE;IACJ,CAAC;IAEM,WAAW;QAChB,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEY,eAAe,CAAC,GAAmB;;YAC9C,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,gDAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,iDAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzD,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5D,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9D,CAAC;KAAA;IAED,MAAM,CAAO,aAAa;6DAExB,aAAqB,CAAC,EACtB,WAAmB,EAAE,EACrB,YAAuB,iDAAS,CAAC,IAAI;YAErC,YAAY;YACZ,iFAAiC,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,QAAa,CAAC;YAClB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,6CAAK,CAAC,GAAG,CACvB,IAAI,CAAC,SAAS,CAAC,WAAiC,CAAC,QAAQ,EAC1D;oBACE,MAAM,EAAE,EAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAC;iBAC1C,CACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAO,IAAS,EAAE,EAAE;oBACzC,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;oBAChC,MAAM,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBACzC,OAAO,YAAY,CAAC;gBACtB,CAAC,EAAC,CACH,CAAC;gBACF,OAAO;oBACL,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;oBAC1B,IAAI;iBACL,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,sEAA6B,CAAC,QAAQ,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;KAAA;IAED,MAAM,CAAO,eAAe;;YAG1B,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,2DAAmB,CAAC,CAAC;YAC3E,OAAO,iBAAiB,CAAC,IAAI,CAAC;QAChC,CAAC;KAAA;IAEY,cAAc;;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAgC,CAAC;YAClD,MAAM,SAAS,GAAG,6CAAK,CAAC,MAAM,CAAC;gBAC7B,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;aACF,CAAC,CAAC;YAEH,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;gBACrB,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAC/B,eAAe,CAChB,GAAG,UAAU,GAAG,CAAC,YAAY,EAAE,CAAC;YACnC,CAAC;YACD,IAAI,QAAa,CAAC;YAClB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YACD,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;KAAA;IAEM,MAAM,CAAO,WAAW,CAE7B,EAAU;;YAEV,YAAY;YACZ,iFAAiC,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,GACT,IAAI,CAAC,SAAS,CAAC,WAAiC,CAAC,OACpD,IAAI,EAAE,EAAE,CAAC;YACT,IAAI,QAAa,CAAC;YAClB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,6CAAK,CAAC,GAAG,CAAC,GAAG,EAAE;oBAC9B,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC;iBAC9C,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChC,MAAM,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAClD,OAAO,YAAY,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,4DAAmB,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;KAAA;IAED,MAAM,CAAO,oBAAoB,CAE/B,OAAe;;YAEf,YAAY;YACZ,iFAAiC,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,GACT,IAAI,CAAC,SAAS,CAAC,WAAiC,CAAC,OACpD,UAAU,OAAO,EAAE,CAAC;YACpB,IAAI,QAAa,CAAC;YAClB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,6CAAK,CAAC,GAAG,CAAC,GAAG,EAAE;oBAC9B,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC;iBAC9C,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChC,MAAM,YAAY,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAClD,OAAO,YAAY,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,4DAAmB,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;KAAA;IAED;;;;;OAKG;IACH,MAAM,CAAO,sBAAsB,CAAC,OAAe;;;YACjD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,CAAC,MAAO,IAAY,CAAC,oBAAoB,CACtD,OAAO,CACR,CAAe,CAAC;gBACjB,OAAO,MAAM,CAAC,EAAE,CAAC;YACnB,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAI,6CAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,YAAK,CAAC,QAAQ,0CAAE,MAAM,MAAK,GAAG,EAAE,CAAC;oBAChE,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;IAEY,cAAc;;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAgC,CAAC;YAClD,MAAM,SAAS,GAAG,6CAAK,CAAC,MAAM,CAAC;gBAC7B,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;aACF,CAAC,CAAC;YAEH,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;gBACrB,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAC/B,eAAe,CAChB,GAAG,UAAU,GAAG,CAAC,YAAY,EAAE,CAAC;YACnC,CAAC;YACD,IAAI,QAAa,CAAC;YAClB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YACD,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;KAAA;IAEY,cAAc;;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAgC,CAAC;YAClD,MAAM,SAAS,GAAG,6CAAK,CAAC,MAAM,CAAC;gBAC7B,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,GAAG;gBAC1B,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;aACF,CAAC,CAAC;YAEH,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;gBACrB,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAC/B,eAAe,CAChB,GAAG,UAAU,GAAG,CAAC,YAAY,EAAE,CAAC;YACnC,CAAC;YACD,IAAI,QAAa,CAAC;YAClB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,mDAAO,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB;YACxC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,8DAAqB,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;KAAA;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AAED,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzQA;AAKA;AAQD;AACwB;AACyB;AACP;AAUnE,MAAM,IAAK,SAAQ,wDAAgB;IAQjC,MAAM,CAAC,eAAe,CAAC,GAAW;QAChC,MAAM,MAAM,GAAG,8BAA8B,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,MAAM,OAAO,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,GAAG,IAAI,CAAC,OAAO,OAAO,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,OAAO,MAAM,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,GAAG,IAAI,CAAC,OAAO,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,GAAG,IAAI,CAAC,OAAO,SAAS,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,GAAG,IAAI,CAAC,OAAO,SAAS,CAAC;IAC7C,CAAC;IAEM,KAAK;QACV,qDACK,KAAK,CAAC,KAAK,EAAE,KAChB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,IAAI,EAAE,IAAI,CAAC,IAAI,KACZ,CAAC,IAAI,CAAC,WAAW,IAAI,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAC,CAAC,EACxD;IACJ,CAAC;IAEY,oBAAoB,CAAC,IAAS;;YACzC,MAAM,IAAI,6DAAoB,EAAE,CAAC;QACnC,CAAC;KAAA;IAEY,eAAe,CAAC,GAAyB;;;;;YACpD,MAAM,OAAM,eAAe,YAAC,GAAG,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,GAAc,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,iDAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,gDAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YACzB,OAAO,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QAClE,CAAC;KAAA;IAED,MAAM,CAAO,aAAa;6DACxB,aAAqB,CAAC,EACtB,WAAmB,EAAE,EACrB,YAAuB,iDAAS,CAAC,IAAI,EACrC,YAAqB;YAErB,iFAAiC,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,6CAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAC9C,MAAM,EAAE;wBACN,MAAM,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,QAAQ;wBACnC,KAAK,EAAE,QAAQ;wBACf,OAAO,EAAE,SAAS;wBAClB,YAAY,EAAE,YAAY;qBAC3B;oBACD,WAAW;iBACZ,CAAC,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;KAAA;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAW,OAAO,CAAC,KAAa;QAC9B,IAAI,CAAC,OAAO,GAAG,iDAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAEM,aAAa,CAAC,UAAsB;QACzC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,4DAAmB,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC;IACtC,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAW,IAAI,CAAC,KAAa;QAC3B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAW,WAAW,CAAC,KAAa;QAClC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAEM,2BAA2B;QAChC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,4DAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;CACF;AAED,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1IM;AACoD;AAOrD;AACsD;AACL;AACP;AACzC;AAU1B,MAAM,UAAW,SAAQ,wDAAgB;IAUvC,MAAM,CAAC,eAAe,CAAC,GAAW;QAChC,MAAM,MAAM,GAAG,8BAA8B,CAAC;QAC9C,UAAU,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,MAAM,aAAa,CAAC;QACnD,UAAU,CAAC,QAAQ,GAAG,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC;QACnD,UAAU,CAAC,OAAO,GAAG,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC;QACjD,UAAU,CAAC,UAAU,GAAG,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC;QACvD,UAAU,CAAC,UAAU,GAAG,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC;QACvD,UAAU,CAAC,UAAU,GAAG,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC;IACzD,CAAC;IAEM,KAAK;QACV,qDACK,KAAK,CAAC,KAAK,EAAE,GACb,CAAC,IAAI,CAAC,YAAY,IAAI,EAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAC,CAAC,KAC3D,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,WAAW,EAAE,IAAI,CAAC,WAAW,IAC7B;IACJ,CAAC;IACY,oBAAoB,CAAC,IAAS;;YACzC,MAAM,IAAI,6DAAoB,EAAE,CAAC;QACnC,CAAC;KAAA;IAEY,eAAe,CAAC,GAAyB;;;;;YACpD,MAAM,OAAM,eAAe,YAAC,GAAG,CAAC,CAAC;YAEjC,MAAM,aAAa,GAAG,GAAoB,CAAC;YAC3C,IAAI,CAAC,YAAY,GAAG,iDAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YACtD,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;YACvC,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;YACnC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;YAC7C,MAAM,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QACjD,CAAC;KAAA;IAEa,oBAAoB,CAAC,GAAkB;;YACnD,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,6CAAI,CAAC,aAAa,CACrC,CAAC,EACD,2DAAmB,EACnB,iDAAS,CAAC,GAAG,EACb,gDAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CACb,CAAC;gBACF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;KAAA;IAEY,cAAc;;;;;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,MAAM,OAAM,cAAc,WAAE,CAAC;YAC7B,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC9B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAEa,wBAAwB;;YACpC,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC;gBAC1C,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAC9D,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAC3B,CAAC;gBACF,MAAM,sBAAsB,GAAG,YAAY,CAAC,MAAM,CAChD,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CACvC,CAAC;gBACF,MAAM,uBAAuB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/C,sBAAsB,CAAC,GAAG,CAAC,CAAO,GAAG,EAAE,EAAE;oBACvC,OAAO,MAAM,6CAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACrC,CAAC,EAAC,CACH,CAAC;gBACF,MAAM,OAAO,CAAC,GAAG,CACf,uBAAuB,CAAC,GAAG,CAAC,CAAO,IAAI,EAAE,EAAE;oBACzC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC9B,CAAC,EAAC,CACH,CAAC;gBACF,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;YACxC,CAAC;QACH,CAAC;KAAA;IAEY,cAAc;;;;;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,MAAM,OAAM,cAAc,WAAE,CAAC;gBAC7B,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;gBAC9B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;wBAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;wBACzB,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;4BACvB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;wBAC9B,CAAC;6BAAM,CAAC;4BACN,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;4BAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACtC,CAAC;oBACH,CAAC;oBACD,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBACxC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;IAEY,cAAc;;;;;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3C,mDAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,MAAM,OAAM,cAAc,WAAE,CAAC;QAC/B,CAAC;KAAA;IAED,MAAM,CAAO,aAAa;6DACxB,aAAqB,CAAC,EACtB,WAAmB,EAAE,EACrB,YAAuB,iDAAS,CAAC,IAAI,EACrC,QAAkB,EAClB,IAAa;YAEb,iFAAiC,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,6CAAK,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE;oBACpD,MAAM,EAAE;wBACN,MAAM,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,QAAQ;wBACnC,KAAK,EAAE,QAAQ;wBACf,OAAO,EAAE,SAAS;wBAClB,QAAQ,EAAE,QAAQ;wBAClB,IAAI,EAAE,IAAI;qBACX;oBACD,WAAW;iBACZ,CAAC,CAAC;gBACH,OAAO,MAAM,UAAU,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;KAAA;IAEM,UAAU;QACf,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,6CAAI,EAAE,CAAC;QAC3B,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,gBAAgB,CAAC,IAAY;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACjE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,+DAAsB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAEM,mBAAmB,CAAC,IAAY;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACjE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,IAAI,+DAAsB,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAW,YAAY,CAAC,KAAa;QACnC,IAAI,CAAC,YAAY,GAAG,iDAAK,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAW,QAAQ,CAAC,KAAc;QAChC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAW,MAAM,CAAC,KAAa;QAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAW,IAAI,CAAC,KAAa;QAC3B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAW,WAAW,CAAC,KAAa;QAClC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AAED,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1PA;AAMH;AACyD;AACJ;AAGnD;AAazB,MAAe,gBAAiB,SAAQ,sDAAe;IAM9C,KAAK;QACV,mEACK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC,GAC1B,CAAC,IAAI,CAAC,GAAG,IAAI,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAC,CAAC,GAC7B,CAAC,IAAI,CAAC,MAAM,IAAI,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAC,CAAC,GACpD,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAC,CAAC,EAC7D;IACJ,CAAC;IAEY,oBAAoB,CAAC,IAAS;8DAAkB,CAAC;KAAA;IAEjD,eAAe,CAAC,GAAyB;;YACpD,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,gDAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,iDAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,CAAC;KAAA;IAEM,WAAW;QAChB,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,MAAM,CAAO,aAAa;6DAExB,aAAqB,CAAC,EACtB,WAAmB,EAAE,EACrB,YAAuB,iDAAS,CAAC,IAAI,EACrC,GAAG,cAAqB;YAExB,MAAM,IAAI,6DAAoB,EAAE,CAAC;QACnC,CAAC;KAAA;IAED,MAAM,CAAO,+BAA+B,CAI1C,QAAa;;YAEb,YAAY;YACZ,iFAAiC,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxE,MAAM,IAAI,GAAG,EAAE,CAAC;gBAChB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACzC,MAAM,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC;oBACnC,MAAM,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;oBAC5C,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC7B,CAAC;gBACD,OAAO;oBACL,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;oBAC1B,IAAI;iBACL,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,sEAA6B,CAAC,QAAQ,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;KAAA;IAED,MAAM,CAAO,eAAe;;YAK1B,YAAY;YACZ,iFAAiC,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,2DAAmB,CAAC,CAAC;YAC3E,OAAO,iBAAiB,CAAC,IAAkC,CAAC;QAC9D,CAAC;KAAA;IAEY,cAAc;;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,QAAa,CAAC;YAClB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,6CAAK,CAAC,IAAI,CACxB,IAAI,CAAC,WAAuC,CAAC,UAAU,EACxD,SAAS,EACT;oBACE,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC;iBAC9C,CACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YACD,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;KAAA;IAED,MAAM,CAAO,WAAW,CAEtB,GAAY;;YAEZ,YAAY;YACZ,iFAAiC,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,QAAa,CAAC;YAClB,MAAM,GAAG,GAAG,GACT,IAAI,CAAC,SAAS,CAAC,WAAuC,CAAC,OAC1D,SAAS,GAAG,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,6CAAK,CAAC,GAAG,CAAC,GAAG,EAAE;oBAC9B,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC;iBAC9C,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAClB,MAAM,eAAe,GAAG,IAAI,IAAI,EAAE,CAAC;gBACnC,MAAM,eAAe,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACrD,OAAO,eAAe,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,4DAAmB,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;KAAA;IAEY,cAAc;;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,MAAM,KAAmC,IAAI,CAAC,KAAK,EAAE,EAA/C,EAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,OAAyB,EAApB,IAAI,cAA/B,6BAAgC,CAAe,CAAC;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACnD,IAAI,QAAa,CAAC;YAClB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,6CAAK,CAAC,IAAI,CACxB,IAAI,CAAC,WAAuC,CAAC,UAAU,EACxD,SAAS,EACT;oBACE,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC;iBAC9C,CACF,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YACD,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;KAAA;IAEY,cAAc;;YACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAChC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,GAAI,IAAI,CAAC,WAAuC,CAAC,UAAU,EAAE,CAAC;YAC1E,IAAI,QAAa,CAAC;YAClB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,6CAAK,CAAC,IAAI,CACzB,GAAG,EACH,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAC,EACf,EAAC,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC,EAAC,CAChD,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,mDAAO,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB;YACxC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,8DAAqB,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;KAAA;CACF;AAED,iEAAe,gBAAgB,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzLT;AACoD;AAEpE,SAAS,iCAAiC,CAAC,GAA2B;IAC3E,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,IAAI,wDAAe,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,MAAe,eAAe;IAW5B,MAAM,CAAC,eAAe,CAAC,GAAW;QAChC,MAAM,IAAI,6DAAoB,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,CAAO,aAAa;6DACxB,aAAqB,CAAC,EACtB,WAAmB,EAAE,EACrB,YAAuB,iDAAS,CAAC,IAAI,EACrC,GAAG,cAAqB;YAExB,MAAM,IAAI,6DAAoB,EAAE,CAAC;QACnC,CAAC;KAAA;IAWS,oBAAoB;QAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,IAAI,6DAAoB,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACS,uBAAuB;QAC/B,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,4DAAmB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAES,wBAAwB;QAChC,IAAI,CAAE,IAAI,CAAC,WAAsC,CAAC,OAAO,EAAE,CAAC;YAC1D,MAAM,IAAI,wDAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAEM,KAAK;QACV,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,IAAW,EAAE;QACX,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED,IAAW,GAAG;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AAED,iEAAe,eAAe,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrFL;AAC4B;AACe;AACpB;AACyB;AACP;AAEnE,IAAY,eAUX;AAVD,WAAY,eAAe;IACzB,0CAAuB;IACvB,kCAAe;IACf,sCAAmB;IACnB,4CAAyB;IACzB,gDAA6B;IAC7B,oCAAiB;IACjB,oDAAiC;IACjC,sCAAmB;IACnB,8CAA2B;AAC7B,CAAC,EAVW,eAAe,KAAf,eAAe,QAU1B;AAED,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,oCAAmB;IACnB,kCAAiB;IACjB,sCAAqB;AACvB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAkCD,MAAM,kBAAmB,SAAQ,wDAAgB;IAK/C,MAAM,CAAC,eAAe,CAAC,GAAW;QAChC,MAAM,MAAM,GAAG,4BAA4B,CAAC;QAC5C,kBAAkB,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,MAAM,aAAa,CAAC;QAC3D,kBAAkB,CAAC,QAAQ,GAAG,GAAG,kBAAkB,CAAC,OAAO,OAAO,CAAC;QACnE,kBAAkB,CAAC,OAAO,GAAG,GAAG,kBAAkB,CAAC,OAAO,MAAM,CAAC;QACjE,kBAAkB,CAAC,UAAU,GAAG,GAAG,kBAAkB,CAAC,OAAO,SAAS,CAAC;QACvE,kBAAkB,CAAC,UAAU,GAAG,GAAG,kBAAkB,CAAC,OAAO,SAAS,CAAC;QACvE,kBAAkB,CAAC,UAAU,GAAG,GAAG,kBAAkB,CAAC,OAAO,SAAS,CAAC;IACzE,CAAC;IAEM,KAAK;QACV,mEACK,KAAK,CAAC,KAAK,EAAE,KAChB,IAAI,EAAE,IAAI,CAAC,IAAI,KACZ,CAAC,IAAI,CAAC,eAAe,IAAI,EAAC,eAAe,EAAE,IAAI,CAAC,eAAe,EAAC,CAAC,GACjE,CAAC,IAAI,CAAC,WAAW,IAAI,EAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAC,CAAC,EACxD;IACJ,CAAC;IAEY,oBAAoB,CAAC,IAAS;;YACzC,MAAM,IAAI,6DAAoB,EAAE,CAAC;QACnC,CAAC;KAAA;IAEY,eAAe,CAAC,GAAyB;;;;;YACpD,MAAM,OAAM,eAAe,YAAC,GAAG,CAAC,CAAC;YACjC,MAAM,qBAAqB,GAAG,GAA4B,CAAC;YAC3D,IAAI,CAAC,eAAe,GAAG,qBAAqB,CAAC,eAAe,CAAC;YAC7D,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC;YACvC,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC,WAAW,CAAC;QACvD,CAAC;KAAA;IAED,MAAM,CAAO,aAAa;6DACxB,aAAqB,CAAC,EACtB,WAAmB,EAAE,EACrB,YAAuB,iDAAS,CAAC,IAAI,EACrC,YAAqB;YAErB,iFAAiC,CAAC,kBAAkB,CAAC,CAAC;YACtD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,6CAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,QAAQ,EAAE;oBAC5D,MAAM,EAAE;wBACN,MAAM,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,QAAQ;wBACnC,KAAK,EAAE,QAAQ;wBACf,OAAO,EAAE,SAAS;wBAClB,YAAY,EAAE,YAAY;qBAC3B;oBACD,WAAW;iBACZ,CAAC,CAAC;gBACH,OAAO,MAAM,kBAAkB,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC;YAC5E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAAgB,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;KAAA;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAW,IAAI,CAAC,KAAa;QAC3B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAW,WAAW,CAAC,KAAa;QAClC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,IAAW,eAAe;QACxB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,IAAW,eAAe,CAAC,KAAuB;QAChD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,QAAe;QACzC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,MAAM,QAAQ,GAAG;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAuB;aACnC,CAAC;YAEF,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,eAAe,CAAC,YAAY;oBAC/B,OAAO,gCACF,QAAQ,KACX,IAAI,EAAE,eAAe,CAAC,YAAY,EAClC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EACvC,MAAM,EAAE,IAAI,CAAC,MAAM,GACS,CAAC;gBAEjC,KAAK,eAAe,CAAC,SAAS;oBAC5B,OAAO,gCACF,QAAQ,KACX,IAAI,EAAE,eAAe,CAAC,SAAS,EAC/B,aAAa,EAAE,IAAI,CAAC,aAA8B,EAClD,MAAM,EAAE,IAAI,CAAC,MAAM,GACM,CAAC;gBAE9B,KAAK,eAAe,CAAC,OAAO;oBAC1B,OAAO,gCACF,QAAQ,KACX,IAAI,EAAE,eAAe,CAAC,OAAO,EAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,MAAM,EAAE,IAAI,CAAC,MAAM,GACK,CAAC;gBAE7B,KAAK,eAAe,CAAC,UAAU;oBAC7B,OAAO,gCACF,QAAQ,KACX,IAAI,EAAE,eAAe,CAAC,UAAU,EAChC,MAAM,EAAE,IAAI,CAAC,MAAM,GACQ,CAAC;gBAEhC;oBACE,OAAO,QAA0B,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,gCAAgC;QACtC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAEM,UAAU,CAAC,IAAqB;QACrC,IAAI,CAAC,gCAAgC,EAAE,CAAC;QACxC,IAAI,IAAoB,CAAC;QACzB,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,EAAE;YACR,IAAI;SACL,CAAC;QACF,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,eAAe,CAAC,YAAY;gBAC/B,IAAI,GAAG,gCACF,QAAQ,KACX,gBAAgB,EAAE,CAAC,EACnB,MAAM,EAAE,CAAC,GACmB,CAAC;gBAC/B,MAAM;YACR,KAAK,eAAe,CAAC,SAAS;gBAC5B,IAAI,GAAG,gCACF,QAAQ,KACX,aAAa,EAAE,aAAa,CAAC,MAAM,EACnC,MAAM,EAAE,CAAC,GACgB,CAAC;gBAC5B,MAAM;YACR,KAAK,eAAe,CAAC,OAAO;gBAC1B,IAAI,GAAG,gCACF,QAAQ,KACX,OAAO,EAAE,EAAE,EACX,MAAM,EAAE,CAAC,GACe,CAAC;gBAC3B,MAAM;YACR,KAAK,eAAe,CAAC,UAAU;gBAC7B,IAAI,GAAG,gCACF,QAAQ,KACX,MAAM,EAAE,CAAC,GACkB,CAAC;gBAC9B,MAAM;YACR;gBACE,IAAI,GAAG,QAA0B,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,YAAY,CAAC,KAAa;QAC/B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YACtD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAEM,kBAAkB,CAAC,IAAqB,EAAE,KAAa;QAC5D,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrD,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC1C,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;oBACtB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAClC,OAAO;gBACT,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,4BAA4B,CACjC,KAAuB;QAEvB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACnB,CAAC;YACD,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAsC,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,0BAA0B,CAC/B,KAAuB;QAEvB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACf,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACjB,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAA+C,CAAC,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,qCAAqC,CAC1C,aAAqB;QAErB,IAAI,eAAe,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;QAE3C,0GAA0G;QAC1G,0CAA0C;QAC1C,IACE,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjE,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACrE,eAAe,CAAC,MAAM,GAAG,CAAC,EAC1B,CAAC;YACD,eAAe,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,CAAC;QAED,0CAA0C;QAC1C,gEAAgE;QAChE,IAAI,eAAe,GAAG,eAAe,CAAC;QACtC,0BAA0B;QAC1B,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC3D,sBAAsB;QACtB,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAEvD,uBAAuB;QACvB,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,6BAA6B;YAC7B,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,6CAA6C;YAC7C,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC;YAEvC,oEAAoE;YACpE,IACE,OAAO,CAAC,UAAU,CAAC,oBAAoB,CAAC;gBACxC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,EACtC,CAAC;gBACD,yBAAyB;gBACzB,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;oBACrC,CAAC,CAAC,IAAI,OAAO,GAAG;oBAChB,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC/B,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,gDAAgD;oBAChD,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC/C,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,YAAY,EAAE,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5D,mEAAmE;gBACnE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,IAAI,eAAoB,CAAC;QAEzB,4CAA4C;QAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,eAAe,GAAG,MAAM,CAAC;QAC3B,CAAC;aAAM,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACnC,mDAAmD;YACnD,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC5C,CAAC;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACtC,0EAA0E;YAC1E,eAAe,GAAG,MAAM,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,WAAW,GACf,kBAAkB,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;QAC1D,WAAmB,CAAC,cAAc,GAAG,aAAa,CAAC;QACpD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,uCAAuC,CAC5C,KAAuB;QAEvB,mEAAmE;QACnE,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACpC,MAAM,SAAS,GAAQ;gBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;YAEF,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,eAAe,CAAC,YAAY;oBAC/B,MAAM,gBAAgB,GAAG,IAAiC,CAAC;oBAC3D,uCACK,SAAS,KACZ,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB,EACnD,MAAM,EAAE,gBAAgB,CAAC,MAAM,IAC/B;gBAEJ,KAAK,eAAe,CAAC,SAAS;oBAC5B,MAAM,YAAY,GAAG,IAA8B,CAAC;oBACpD,uCACK,SAAS,KACZ,aAAa,EAAE,YAAY,CAAC,aAAa,EACzC,MAAM,EAAE,YAAY,CAAC,MAAM,IAC3B;gBAEJ,KAAK,eAAe,CAAC,OAAO;oBAC1B,MAAM,WAAW,GAAG,IAA6B,CAAC;oBAClD,uCACK,SAAS,KACZ,OAAO,EAAE,WAAW,CAAC,OAAO,EAC5B,MAAM,EAAE,WAAW,CAAC,MAAM,IAC1B;gBAEJ,KAAK,eAAe,CAAC,UAAU;oBAC7B,MAAM,cAAc,GAAG,IAAgC,CAAC;oBACxD,uCACK,SAAS,KACZ,MAAM,EAAE,cAAc,CAAC,MAAM,IAC7B;gBAEJ;oBACE,OAAO,SAAS,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,+CAA+C;QAC/C,IAAK,KAAa,CAAC,cAAc,EAAE,CAAC;YAClC,OAAQ,KAAa,CAAC,cAAc,CAAC;QACvC,CAAC;QAED,MAAM,GAAG,GAAG,EAAC,gBAAgB,EAAE,UAAU,EAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC;IAC7B,CAAC;CACF;AAED,iEAAe,kBAAkB,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3bR;AACO;AAC2B;AACvB;AACO;AAE5C,MAAM,QAAS,SAAQ,qDAAc;IASnC,MAAM,CAAC,eAAe,CAAC,GAAW;QAChC,QAAQ,CAAC,UAAU,GAAG,GAAG,GAAG,cAAc,CAAC;QAC3C,QAAQ,CAAC,UAAU,GAAG,GAAG,GAAG,eAAe,CAAC;QAC5C,QAAQ,CAAC,YAAY,GAAG,GAAG,GAAG,gBAAgB,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,UAAkB;QAC3C,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;IACpC,CAAC;IAEY,MAAM;;YACjB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,kDAAQ,EAAE,CAAC;gBAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEzD,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW;oBACpC,CAAC,CAAC,GAAG,QAAQ,CAAC,UAAU,eAAe,IAAI,CAAC,UAAU,EAAE;oBACxD,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACxB,MAAM,cAAc,GAAG,MAAM,6CAAK,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE;oBAC3D,OAAO,oBACF,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAChE;iBACF,CAAC,CAAC;gBAEH,IAAI,cAAc,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;oBAClD,IAAI,CAAC,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;oBACjD,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC/C,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,sEAA6B,CAAC,cAAc,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;gBAClD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;IAEY,MAAM;;YACjB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU;oBAC/B,CAAC,CAAC,GAAG,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,eAAe,IAAI,CAAC,UAAU,EAAE;oBAClE,CAAC,CAAC,GAAG,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,cAAc,GAAG,MAAM,6CAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAClD,IAAI,cAAc,CAAC,MAAM,IAAI,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;oBACjE,mDAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,sEAA6B,CAAC,cAAc,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;gBAClD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;IAEM,cAAc;QACnB,OAAO,GAAG,QAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,EAAE,eAAe,IAAI,CAAC,UAAU,aAAa,IAAI,CAAC,QAAQ,EAAE,CAAC;IACvG,CAAC;CACF;AAED,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChFE;AACO;AACb;AACI;AAID;AACc;AACrC,MAAe,cAAc;IAa3B,MAAM,CAAC,eAAe,CAAC,GAAW;QAChC,MAAM,IAAI,6DAAoB,EAAE,CAAC;IACnC,CAAC;IAED;;;OAGG;IACI,iBAAiB,CAAC,IAAU;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,QAAgB;QACpC,MAAM,QAAQ,GAAG,oDAAa,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,mDAAY,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,kDAAW,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,sDAAe,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,kBAAkB,CAAC;IACrC,CAAC;IAEY,MAAM;;YACjB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,WAAoC,CAAC;gBACtD,MAAM,QAAQ,GAAG,IAAI,kDAAQ,EAAE,CAAC;gBAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEzD,MAAM,SAAS,GAAG,6CAAK,CAAC,MAAM,CAAC;oBAC7B,OAAO,oBACF,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAChE;iBACF,CAAC,CAAC;gBAEH,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;oBACrB,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAC/B,eAAe,CAChB,GAAG,UAAU,GAAG,CAAC,YAAY,EAAE,CAAC;gBACnC,CAAC;gBAED,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAEtE,IAAI,cAAc,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;oBAClD,IAAI,CAAC,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,sEAA6B,CAAC,cAAc,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;gBAClD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;IAEY,MAAM;;YACjB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,WAAoC,CAAC;gBACtD,MAAM,SAAS,GAAG,6CAAK,CAAC,MAAM,EAAE,CAAC;gBAEjC,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;oBACrB,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAC/B,eAAe,CAChB,GAAG,UAAU,GAAG,CAAC,YAAY,EAAE,CAAC;gBACnC,CAAC;gBAED,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;gBAChD,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACtD,IAAI,cAAc,CAAC,MAAM,IAAI,GAAG,IAAI,cAAc,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;oBACjE,mDAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,sEAA6B,CAAC,cAAc,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;gBAClD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;IAEM,cAAc;QACnB,OAAO,GAAI,IAAI,CAAC,WAAqC,CAAC,YAAY,IAChE,IAAI,CAAC,EACP,EAAE,CAAC;IACL,CAAC;CACF;AAED,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;;ACxHc;AAE5C,MAAM,aAAc,SAAQ,qDAAc;IAKxC,MAAM,CAAC,eAAe,CAAC,GAAW;QAChC,aAAa,CAAC,UAAU,GAAG,GAAG,GAAG,mBAAmB,CAAC;QACrD,aAAa,CAAC,UAAU,GAAG,GAAG,GAAG,oBAAoB,CAAC;QACtD,aAAa,CAAC,YAAY,GAAG,GAAG,GAAG,aAAa,CAAC;IACnD,CAAC;CACF;AAED,iEAAe,aAAa,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdH;AACuC;AACX;AACY;AACF;AACV;AACY;AACM;AACtB;AACU;AACmB;AACF;AAE7E,MAAM,MAAM;IAUV,YACE,iBAAyB,EACzB,mBAA2B,EAC3B,oBAA4B;QAVtB,oBAAe,GAAkB,IAAI,CAAC;QACtC,uBAAkB,GAAkB,IAAI,CAAC;QAW/C,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,SAAS,CACrB,aAAqB,EACrB,gBAAwB,EACxB,mBAA2B;QAE3B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,CAC1B,gBAAgB,EAChB,aAAa,EACb,mBAAmB,CACpB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,QAAQ,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACxE,MAAM,CAAC,QAAQ,CAAC,mBAAmB,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACvE,MAAM,CAAC,QAAQ,CAAC,oBAAoB,GAAG,mBAAmB,CAAC,OAAO,CAChE,KAAK,EACL,EAAE,CACH,CAAC;YACF,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,iBAAiB,GACrB,OAAO,CAAC,GAAG,CAAC,6BAA6B;gBACzC,OAAO,CAAC,GAAG,CAAC,uBAAuB;gBACnC,EAAE,CAAC;YACL,MAAM,mBAAmB,GACvB,OAAO,CAAC,GAAG,CAAC,0BAA0B;gBACtC,OAAO,CAAC,GAAG,CAAC,0BAA0B;gBACtC,EAAE,CAAC;YACL,MAAM,oBAAoB,GACxB,OAAO,CAAC,GAAG,CAAC,iCAAiC;gBAC7C,OAAO,CAAC,GAAG,CAAC,2BAA2B;gBACvC,EAAE,CAAC;YAEL,IAAI,CAAC,iBAAiB,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,CAC1B,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,CACrB,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,MAAM,oCAAoC,GACxC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,uCAAuC,GAC3C,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE5C,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,0EAAY,CAAC,eAAe,CAAC,oCAAoC,CAAC,CAAC;YACnE,qEAAO,CAAC,eAAe,CAAC,oCAAoC,CAAC,CAAC;YAC9D,2EAAa,CAAC,eAAe,CAAC,oCAAoC,CAAC,CAAC;YACpE,yEAAc,CAAC,eAAe,CAAC,oCAAoC,CAAC,CAAC;YACrE,qEAAa,CAAC,eAAe,CAAC,oCAAoC,CAAC,CAAC;YACpE,gEAAQ,CAAC,eAAe,CAAC,oCAAoC,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,8EAAU,CAAC,eAAe,CAAC,uCAAuC,CAAC,CAAC;YACpE,wEAAI,CAAC,eAAe,CAAC,uCAAuC,CAAC,CAAC;YAC9D,4EAAkB,CAAC,eAAe,CAChC,uCAAuC,CACxC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED;;OAEG;IACU,eAAe,CAAC,EAAU,EAAE,QAAgB;;YACvD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,0CAA0C,CAAC;YAChF,MAAM,UAAU,GAAG;gBACjB,EAAE;gBACF,QAAQ;gBACR,OAAO,EAAE,KAAK;aACf,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,8CAAK,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACnD,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC/C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;gBACjD,gEAAwB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,2DAAuB,EAAE,CAAC;YACtC,CAAC;QACH,CAAC;KAAA;IAED;;OAEG;IACU,kBAAkB,CAAC,EAAU,EAAE,QAAgB;;YAC1D,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,oBAAoB,0CAA0C,CAAC;YACnF,MAAM,UAAU,GAAG;gBACjB,EAAE;gBACF,QAAQ;gBACR,OAAO,EAAE,KAAK;aACf,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,8CAAK,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;gBACnD,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC/C,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;oBACpD,mEAA2B,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,2DAAuB,EAAE,CAAC;gBACtC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;gBACzD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;IAED;;OAEG;IACU,gBAAgB;;YAC3B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,iBAAiB,2CAA2C,CAAC;YAEjF,MAAM,QAAQ,GAAG,MAAM,8CAAK,CAAC,IAAI,CAC/B,GAAG,EACH,EAAE,EACF;gBACE,OAAO,EAAE,IAAI,CAAC,eAAe;oBAC3B,CAAC,CAAC,EAAC,aAAa,EAAE,UAAU,IAAI,CAAC,eAAe,EAAE,EAAC;oBACnD,CAAC,CAAC,SAAS;aACd,CACF,CAAC;YAEF,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACxD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,iEAA6B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;KAAA;IAED;;OAEG;IACU,mBAAmB;;YAC9B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,oBAAoB,2CAA2C,CAAC;YAEpF,MAAM,QAAQ,GAAG,MAAM,8CAAK,CAAC,IAAI,CAC/B,GAAG,EACH,EAAE,EACF;gBACE,OAAO,EAAE,IAAI,CAAC,kBAAkB;oBAC9B,CAAC,CAAC,EAAC,aAAa,EAAE,UAAU,IAAI,CAAC,kBAAkB,EAAE,EAAC;oBACtD,CAAC,CAAC,SAAS;aACd,CACF,CAAC;YAEF,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACxD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,iEAA6B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;KAAA;IAED;;OAEG;IACI,kBAAkB;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,qBAAqB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;;AAvNc,eAAQ,GAAkB,IAAI,CAAC;AA0NhD,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrOf,MAAM,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,QAAyB;QACnC,KAAK,CACH,mDAAmD,IAAI,CAAC,SAAS,CAC/D,QAAQ,CACT,EAAE,CACJ,CAAC;IACJ,CAAC;CACF;AACM,MAAM,eAAgB,SAAQ,KAAK;IACxC,YAAY,GAAa;QACvB,KAAK,CAAC,gCAAgC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AACM,MAAM,qBAAsB,SAAQ,KAAK;IAC9C;QACE,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAClC,CAAC;CACF;AAEM,MAAM,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,KAAa;QACvB,KAAK,CAAC,WAAW,KAAK,gBAAgB,CAAC,CAAC;IAC1C,CAAC;CACF;AAEM,MAAM,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,KAAU;QACpB,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAEM,MAAM,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,GAAW;QACrB,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;IACxC,CAAC;CACF;AAEM,MAAM,gBAAiB,SAAQ,KAAK;IACzC,YAAY,KAAU,EAAE,YAAoB;QAC1C,KAAK,CAAC,iBAAiB,OAAO,KAAK,iBAAiB,YAAY,GAAG,CAAC,CAAC;IACvE,CAAC;CACF;AAEM,MAAM,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,KAAU;QACpB,KAAK,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;CACF;AAEM,MAAM,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,IAAY;QACtB,KAAK,CAAC,cAAc,IAAI,aAAa,CAAC,CAAC;IACzC,CAAC;CACF;AAEM,MAAM,oBAAqB,SAAQ,KAAK;IAC7C;QACE,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACvC,CAAC;CACF;AAEM,MAAM,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,KAAU,EAAE,KAAa;QACnC,KAAK,CACH,mBAAmB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,yBAAyB,KAAK,EAAE,CACzE,CAAC;IACJ,CAAC;CACF;AAEM,MAAM,uBAAwB,SAAQ,KAAK;IAChD;QACE,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAChD,CAAC;CACF;AAEM,MAAM,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,KAAa;QACvB,KAAK,CAAC,WAAW,KAAK,yBAAyB,CAAC,CAAC;IACnD,CAAC;CACF;AAEM,MAAM,wBAAyB,SAAQ,KAAK;IACjD,YAAY,QAAyB;QACnC,KAAK,CAAC,kCAAkC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC;CACF;AAEM,MAAM,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,QAAyB;QACnC,KAAK,CACH,mDAAmD,IAAI,CAAC,SAAS,CAC/D,QAAQ,CACT,EAAE,CACJ,CAAC;IACJ,CAAC;CACF;AAEM,MAAM,mBAAoB,SAAQ,KAAK;IAC5C;QACE,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC/B,CAAC;CACF;AAEM,MAAM,uBAAwB,SAAQ,KAAK;IAChD;QACE,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACpC,CAAC;CACF;AAEM,MAAM,kCAAmC,SAAQ,KAAK;IAC3D,YAAY,IAA4B;QACtC,KAAK,CAAC,6CAA6C,IAAI,kBAAkB,CAAC,CAAC;IAC7E,CAAC;CACF;AAEM,MAAM,8BAA+B,SAAQ,KAAK;IACvD,YAAY,IAA4B;QACtC,KAAK,CAAC,6CAA6C,IAAI,kBAAkB,CAAC,CAAC;IAC7E,CAAC;CACF;AAEM,MAAM,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,GAAW;QACrB,KAAK,CAAC,eAAe,GAAG,WAAW,CAAC,CAAC;IACvC,CAAC;CACF;AAEM,MAAM,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,KAAa;QACvB,KAAK,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;IACxC,CAAC;CACF;AAEM,MAAM,6BAA8B,SAAQ,KAAK;IACtD,YAAY,QAAa;QACvB,KAAK,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;CACF;;;;;;;;;;;;;;;;;;;;;;;;AC9IgE;AACX;AACY;AACF;AACV;AACY;AACM;AAExE;;;;;GAKG;AACI,SAAS,wBAAwB,CAAC,KAAa;IACpD,8EAAU,CAAC,YAAY,GAAG,KAAK,CAAC;IAChC,wEAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC1B,4EAAkB,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1C,CAAC;AAEM,SAAS,2BAA2B,CAAC,KAAa;IACvD,qEAAO,CAAC,YAAY,GAAG,KAAK,CAAC;IAC7B,yEAAc,CAAC,YAAY,GAAG,KAAK,CAAC;IACpC,2EAAa,CAAC,YAAY,GAAG,KAAK,CAAC;IACnC,0EAAY,CAAC,YAAY,GAAG,KAAK,CAAC;AACpC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACzBsE;AAIvE,MAAM,SAAS,GACb,4EAA4E,CAAC;AAExE,SAAS,IAAI,CAAC,KAAa;IAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,GAAG,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,KAAe,CAAC;AACzB,CAAC;AAEM,SAAS,KAAK,CAAC,MAAgB;IACpC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5C,CAAC;AAIM,SAAS,KAAK,CAAC,KAAa;IACjC,OAAO,KAAgB,CAAC;AAC1B,CAAC;AAOD;;;;;;GAMG;AACI,SAAS,YAAY,CAAC,IAAiB;IAC5C,IAAI,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,0DAAsB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,gDAAgD;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEjC,sBAAsB;IACtB,MAAM,gBAAgB,GACpB,sEAAsE,CAAC;IAEzE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,0DAAsB,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,KAAmB,CAAC;AAC7B,CAAC;AACD;;;;;GAKG;AACI,SAAS,MAAM,CAAC,UAAsB;IAC3C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,0DAAsB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAqBD,IAAY,sBAUX;AAVD,WAAY,sBAAsB;IAChC,mDAAyB;IACzB,uCAAa;IACb,2CAAiB;IACjB,mDAAyB;IACzB,mDAAyB;IACzB,6CAAmB;IACnB,6CAAmB;IACnB,yDAA+B;IAC/B,+CAAqB;AACvB,CAAC,EAVW,sBAAsB,KAAtB,sBAAsB,QAUjC;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,qCAAqB;IACrB,6BAAa;AACf,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAED,IAAY,2BA2BX;AA3BD,WAAY,2BAA2B;IACrC,YAAY;IACZ,gDAAiB;IACjB,yDAA0B;IAC1B,4CAAa;IACb,0DAA2B;IAC3B,MAAM;IACN,4CAAa;IACb,8CAAe;IACf,8CAAe;IACf,QAAQ;IACR,4CAAa;IACb,oDAAqB;IACrB,uDAAwB;IACxB,YAAY;IACZ,8CAAe;IACf,8CAAe;IACf,YAAY;IACZ,kDAAmB;IACnB,SAAS;IACT,+DAAgC;IAChC,2DAA4B;IAC5B,qCAAqC;IAErC,eAAe;IACf,wDAAyB;IACzB,wCAAwC;AAC1C,CAAC,EA3BW,2BAA2B,KAA3B,2BAA2B,QA2BtC;AAOD,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,wBAAW;IACX,0BAAa;AACf,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7IsD;AACd;AACM;AAC/C;;;;GAIG;AAEH;;;;;GAKG;AACI,SAAS,WAAW,CAAC,KAAU;IACpC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,KAAK,CAAC;AACd,CAAC;AAEM,SAAS,gBAAgB,CAAC,KAAiB;;IAChD,IAAI,6CAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAW,CAAC;QAC7C,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,QAAQ,CAAC,MAAM,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,QAAQ,CAAC,MAAM,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,cAAc,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC;gBACZ,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,WAAK,CAAC,QAAQ,0CAAE,MAAM;aAC/B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,MAAM,KAAK,CAAC,CAAC,kEAAkE;AACjF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACI,SAAS,OAAO,CAAC,GAAQ;IAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC7C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAQ,GAAW,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;;GASG;AACI,SAAS,QAAQ,CAAI,QAAW;IACrC,OAAO,uDAAS,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,CAAC,sCAAsC;AAE9E,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAOzC;;;;;;;GAOG;AACI,SAAe,YAAY;yDAGhC,SAA+D,EAC/D,aAAqB,EAAE,EACvB,UAAkB,IAAI;QAEtB,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,OAAO,OAAO,GAAG,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,SAAS,EAAE,CAAC;gBACnC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBACxE,OAAO,QAAQ,CAAC,CAAC,iCAAiC;gBACpD,CAAC;gBACD,4CAA4C;gBAC5C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBACxE,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;oBAC7D,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,OAAO,QAAQ,CAAC;gBAClB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,KAAK,CAAC,CAAC,yCAAyC;YACxD,CAAC;QACH,CAAC;QACD,MAAM,IAAI,0DAAsB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;CAAA;AAEM,SAAS,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;;;;;;;;;;;;;;;;;;;ACxID,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,sCAAqB;IACrB,wCAAuB;IACvB,yBAAyB;AAC3B,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED,IAAY,iBAWX;AAXD,WAAY,iBAAiB;IAC3B,kCAAa;IACb,wCAAmB;IACnB,wCAAmB;IACnB,gCAAW;IACX,gCAAW;IACX,kCAAa;IACb,gCAAW;IACX,8BAAS;IACT,8BAAS;IACT,4CAAuB;AACzB,CAAC,EAXW,iBAAiB,KAAjB,iBAAiB,QAW5B;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,2CAAyB;IACzB,kCAAgB;AAClB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,kCAAa;IACb,gCAAW;AACb,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,QAG5B;;;;;;;;;;;;AC3BD;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;ACAgC;AACI;AACF;AACI;AACS;;AAE/C;AACA,QAAQ,gDAAW;AACnB,OAAO,+CAAU;AACjB,SAAS,iDAAY;AACrB;;AAEA,iDAAK;AACL;AACA;AACA,yCAAyC,MAAM;AAC/C,MAAM;AACN;AACA;AACA,8CAA8C,MAAM;AACpD;AACA,CAAC;;AAED,sCAAsC,OAAO;;AAE7C,sCAAsC,iDAAK;;AAE3C,iEAAe;AACf;AACA,eAAe,iDAAK;;AAEpB,WAAW,QAAQ;AACnB;AACA;;AAEA;;AAEA,oBAAoB,YAAY;AAChC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,oBAAoB,2DAAU,qBAAqB,GAAG;AACtD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,yCAAyC,IAAI;AAC7C;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,2DAAU;AAC1B;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;AC9E2C;AACZ;AACe;AACW;AACJ;AACH;AAC6D;AACxD;AACjB;;AAEvC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA,qCAAqC,0DAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA;AACA,aAAa,iDAAK;;;AAGlB;AACA;AACA;;AAEA;AACA;AACA,2CAA2C,iDAAK;AAChD;AACA,kBAAkB,2DAAU,mBAAmB,KAAK,qBAAqB,2DAAU;AACnF,OAAO;AACP,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;;AAEA,KAAK,iDAAK;AACV;AACA;;AAEA,KAAK,iDAAK;AACV,iCAAiC,0DAAQ;AACzC;AACA;AACA,KAAK;AACL;AACA;;AAEA,KAAK,iDAAK,4BAA4B,iDAAK;AAC3C;AACA;;AAEA,KAAK,iDAAK;AACV;AACA;;AAEA,KAAK,iDAAK;AACV;AACA;AACA;;AAEA;AACA,iBAAiB,iDAAK;;AAEtB;AACA;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,EAAE,qEAAa;;AAEnB;;AAEA,uBAAuB,sEAAc;;AAErC;;AAEA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA,UAAU,iDAAK;AACf;AACA;;AAEA;AACA,oCAAoC,wFAAsB;AAC1D;AACA,UAAU,sFAAoB,CAAC,gFAAc;AAC7C;;AAEA,eAAe,oEAAW;AAC1B;AACA;;AAEA,SAAS,iDAAK;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP,oCAAoC,iDAAK;;AAEzC,wDAAwD,wFAAsB;AAC9E;AACA,QAAQ,sFAAoB,CAAC,gFAAc;AAC3C;;AAEA;AACA,QAAQ,oEAAW;AACnB;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA,uCAAuC,iDAAK;;AAE5C;;AAEA;AACA,MAAM,2DAAM;AACZ;AACA,iBAAiB,6DAAY;AAC7B;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,IAAI;AACJ;;AAEA;AACA;AACA,YAAY,2DAAU,kBAAkB,2DAAU;AAClD;AACA;AACA;AACA;AACA;;AAEA,UAAU,2DAAU;AACpB;AACA,CAAC,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClOU;;AAEqB;AACO;AACY;AACL;AACF;AACtB;AACE;AACF;AACuB;AACvB;AACe;AACwB;AAChB;AACQ;AACX;AACQ;AACxB;AACuB;AACmB;AAClC;AAC0B;AAChB;AACkC;AAC5B;AAC4D;;AAEhH;AACA,SAAS,2CAAc;AACvB,eAAe,2CAAc;AAC7B;;AAEA;AACA,SAAS,2CAAc;AACvB,eAAe,2CAAc;AAC7B;;AAEA,0BAA0B,iDAAK,YAAY,wDAA2B;;AAEtE,OAAO,sCAAsC,EAAE,6CAAe;;AAE9D;;AAEA,2BAA2B,0DAAQ;AACnC;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,WAAW,kBAAkB;AAC7B,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,qBAAqB,8DAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,eAAe;AAC3F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAiE,iDAAK;;AAEtE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA,wBAAwB,gBAAgB;AACxC,OAAO,iDAAK;AACZ;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,6DAA6D,iDAAK,gCAAgC,gBAAgB;;AAElH;AACA,iEAAe;AACf;AACA,SAAS,sBAAsB;AAC/B,WAAW,gCAAgC;AAC3C;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,oEAAW,oBAAoB,iDAAK;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,iDAAK;;AAEjC;AACA,SAAS;AACT;AACA;;AAEA;AACA,wBAAwB,gDAAY;;AAEpC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,yDAAyD,iEAAa;AACtE;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,mEAAa;AAClC,qCAAqC,0DAAQ,iBAAiB,0DAAQ;AACtE;;AAEA;AACA;;AAEA;AACA,eAAe,4DAAM;AACrB;AACA;AACA,qBAAqB;AACrB;AACA,SAAS;AACT;;AAEA;AACA,wBAAwB,oEAAW;AACnC;AACA,SAAS;AACT,QAAQ;AACR,cAAc,4DAAU,WAAW,4DAAU;AAC7C;;AAEA;AACA;;AAEA;AACA,0BAA0B,iDAAK;AAC/B;AACA,QAAQ;AACR,wBAAwB,4CAAe;AACvC;;AAEA,aAAa,4DAAM;AACnB;AACA;AACA;AACA,qBAAqB,8DAAY;AACjC;AACA,OAAO;AACP;;AAEA;AACA,wBAAwB,4DAAU;AAClC;AACA,QAAQ,4DAAU;AAClB;AACA;AACA;;AAEA,oBAAoB,8DAAY;;AAEhC;AACA;AACA,gCAAgC;AAChC;AACA,yCAAyC,kDAAO;;AAEhD,WAAW,sCAAsC;AACjD;AACA;AACA;;AAEA;AACA,QAAQ,iDAAK;AACb,sEAAsE,MAAM;;AAE5E,aAAa,yEAAgB;AAC7B;AACA,OAAO;AACP,sBAAsB,kDAAO,CAAC;AAC9B;AACA,OAAO;AACP;AACA,MAAM,SAAS,iDAAK,qBAAqB,iDAAK;AAC9C;;AAEA;AACA;AACA,oCAAoC,2CAAc;AAClD;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM,SAAS,iDAAK;AACpB;AACA;AACA,aAAa,4CAAe,MAAM,iEAAQ;AAC1C,MAAM,kBAAkB,iDAAK;AAC7B;AACA;AACA,QAAQ,SAAS,iDAAK;AACtB;AACA,QAAQ,SAAS,iDAAK;AACtB;AACA,QAAQ;AACR,0BAA0B,4DAAU;AACpC;AACA,UAAU,4DAAU;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B,4DAAU;AACpC;AACA,UAAU,4DAAU;AACpB;AACA;AACA;AACA;;AAEA,0BAA0B,iDAAK;;AAE/B,QAAQ,iDAAK;AACb;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA,WAAW,iDAAK;AAChB,eAAe,4CAAe,aAAa,kBAAkB;AAC7D;;AAEA,aAAa,4CAAe,YAAY,yEAAoB;AAC5D,iBAAiB,iDAAK;AACtB,OAAO,IAAI,iDAAK;;AAEhB;AACA;AACA,QAAQ,yFAAsB;AAC9B;AACA,UAAU,uFAAoB,CAAC,iFAAc;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,aAAa,iEAAQ;AACrB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,kDAAkD;AAClE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK,iDAAK;;AAEV;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,mCAAmC,kCAAK,GAAG,iCAAI;AAC/C,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,oCAAoC,yEAAoB;AACxD,mBAAmB,iDAAK;AACxB,SAAS;;AAET;AACA;AACA,UAAU,yFAAsB;AAChC;AACA,YAAY,uFAAoB,CAAC,iFAAc;AAC/C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAgB;;AAEvC;AACA;AACA;AACA;AACA,2BAA2B,8EAAyB;;AAEpD;AACA,uBAAuB,6CAAgB;;AAEvC;AACA;AACA;AACA;AACA;AACA,yBAAyB,wDAA2B;AACpD;AACA;AACA;AACA;;AAEA,4CAA4C,4CAAe,UAAU,iDAAK;;AAE1E,2BAA2B,4CAAe;AAC1C;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,qBAAqB,8DAAY;AACjC;AACA;AACA;;AAEA;AACA;AACA,QAAQ,4DAAM;AACd,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4DAAU;AACjC,cAAc,4DAAU;AACxB;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,0BAA0B,4DAAU;AACpC;AACA,YAAY,4DAAU;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,iBAAiB,4DAAU;AAC3B,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iDAAK;AACpC;AACA;AACA;AACA,YAAY;AACZ,0BAA0B,4DAAU;AACpC;AACA,UAAU,4DAAM;AAChB,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,aAAa,4DAAU;AACvB,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,4DAAU;AAC7B;AACA,UAAU,4DAAU;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,kEAAoB;AACxE;AACA;AACA;AACA,mBAAmB,4DAAU;AAC7B;AACA,6CAA6C,4DAAU,aAAa,4DAAU;AAC9E;AACA;AACA;AACA;AACA,OAAO;AACP;;;AAGA;AACA,QAAQ,iDAAK;AACb;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,oBAAoB,iEAAa;AACjC;AACA,OAAO;;AAEP;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH,CAAC;;AAEM;;;;;;;;;;;;;;;;;;;;;;;;;;ACtrB2B;AACO;AACsB;AAChB;AACQ;AACC;AACZ;AACO;AACqB;AAChB;;AAExD;;AAEA,iEAAe;AACf;AACA,oBAAoB,qEAAa;AACjC;AACA,2BAA2B,6DAAY;AACvC,SAAS,oDAAoD;AAC7D;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC,wCAAwC;;AAExC;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B,6DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,2DAAM;AACZ;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,2DAAU,oBAAoB,2DAAU;;AAEzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,2DAAU,kBAAkB,2DAAU;;AAEvD;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD,iEAAoB;AACvE;AACA;AACA;AACA,iBAAiB,2DAAU;AAC3B;AACA,2CAA2C,2DAAU,aAAa,2DAAU;AAC5E;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM,iDAAK;AACX;AACA,OAAO;AACP;;AAEA;AACA,SAAS,iDAAK;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C,sFAAoB;AAChE;AACA;;AAEA;AACA;AACA,wCAAwC,sFAAoB;;AAE5D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gEAAa;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,qEAAa;;AAElC,oBAAoB,0DAAQ;AAC5B,iBAAiB,2DAAU,2CAA2C,2DAAU;AAChF;AACA;;;AAGA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpMY;;AAEkB;AACM;AACD;AACY;AACL;AACc;AACH;AACJ;AACN;AACN;AACW;AACH;AACL;AACY;AACH;AACJ;AACW;;AAEzD;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,OAAO;AACpB;AACA;AACA,sBAAsB,sDAAK;AAC3B,mBAAmB,4DAAI,CAAC,sDAAK;;AAE7B;AACA,EAAE,iDAAK,kBAAkB,sDAAK,sBAAsB,iBAAiB;;AAErE;AACA,EAAE,iDAAK,kCAAkC,iBAAiB;;AAE1D;AACA;AACA,0BAA0B,gEAAW;AACrC;;AAEA;AACA;;AAEA;AACA,6BAA6B,0DAAQ;;AAErC;AACA,cAAc,sDAAK;;AAEnB;AACA,sBAAsB,gEAAa;AACnC,oBAAoB,8DAAW;AAC/B,iBAAiB,2DAAQ;AACzB,gBAAgB,iDAAO;AACvB,mBAAmB,8DAAU;;AAE7B;AACA,mBAAmB,4DAAU;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe,2DAAM;;AAErB;AACA,qBAAqB,iEAAY;;AAEjC;AACA,oBAAoB,4DAAW;;AAE/B,qBAAqB,8DAAY;;AAEjC,4BAA4B,uEAAc,CAAC,iDAAK;;AAEhD,mBAAmB,8DAAQ;;AAE3B,uBAAuB,mEAAc;;AAErC;;AAEA;AACA,iEAAe,KAAK;;;;;;;;;;;;;;;;;ACxFP;;AAEkC;;AAE/C;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,yDAAa;AACtC;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;;ACtId;;AAEkC;AACf;;AAEhC;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA,EAAE,2DAAU,oDAAoD,2DAAU;AAC1E;AACA;;AAEA,iDAAK,yBAAyB,2DAAU;AACxC;AACA,CAAC;;AAED,iEAAe,aAAa,EAAC;;;;;;;;;;;;;;;;ACxBhB;;AAEE;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACJa;;AAEqB;AACY;AACW;AACN;AACR;AACI;AACC;AACH;;AAE7C,mBAAmB,6DAAS;;AAE5B;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,mBAAmB,8DAAkB;AACrC,oBAAoB,8DAAkB;AACtC;AACA;;AAEA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,aAAa,SAAS;AACtB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oEAAoE;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,aAAa,2DAAW;;AAExB,WAAW,yCAAyC;;AAEpD;AACA,MAAM,6DAAS;AACf;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,UAAU,iDAAK;AACf;AACA;AACA;AACA,QAAQ;AACR,QAAQ,6DAAS;AACjB;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,iDAAK;AACzC;AACA;AACA;;AAEA,eAAe,iDAAK;AACpB;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,wDAAY;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,qBAAqB,2DAAe;AACpC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,2DAAe;AAC/B,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,2DAAW;AACxB,qBAAqB,6DAAa;AAClC,WAAW,gEAAQ;AACnB;AACA;;AAEA;AACA,iDAAK;AACL;AACA;AACA,wBAAwB,2DAAW,aAAa;AAChD;AACA;AACA,yBAAyB;AACzB,KAAK;AACL;AACA,CAAC;;AAED,iDAAK;AACL;;AAEA;AACA;AACA,0BAA0B,2DAAW,aAAa;AAClD;AACA;AACA;AACA,UAAU,IAAI;AACd;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;ACnOR;;AAEmB;;AAEhC;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iDAAK;AACnB;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,CAAC;;AAED;AACA,kDAAkD,YAAY;;AAE9D;AACA;AACA;;AAEA,EAAE,iDAAK;AACP;AACA,GAAG;AACH;AACA,GAAG;;AAEH;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;ACtGb;;AAEmB;AACsB;;AAEtD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,iDAAK;AACd;;AAEA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,MAAM,iDAAK;AACX;AACA;;AAEA;AACA;AACA;;AAEA,OAAO,iDAAK;;AAEZ,MAAM,iDAAK;AACX;AACA;;AAEA,MAAM,iDAAK;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,uBAAuB,iDAAK;;AAE5B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,iDAAK;;AAEvB;AACA;AACA;AACA;;AAEA;AACA,MAAM,iDAAK;;AAEX,QAAQ,iDAAK;AACb;AACA,MAAM,QAAQ,iDAAK;AACnB,iBAAiB,oEAAY;AAC7B,MAAM,SAAS,iDAAK;AACpB;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,iDAAK;;AAEvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,YAAY,iDAAK;AACjB;AACA;;AAEA,YAAY,iDAAK;AACjB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,iDAAK;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,iDAAK;;AAEzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,iDAAK;AACb;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,iDAAK;AACT,kBAAkB,iDAAK;;AAEvB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI,iDAAK;AACT,sEAAsE,iDAAK;AAC3E,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,iDAAK;;AAET;AACA;AACA;;AAEA;;AAEA;AACA,iDAAK,6CAA6C,MAAM;AACxD,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,iDAAK;;AAEL,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;AC7Sf;;AAEqB;;AAElC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA,eAAe;AACf;AACA;AACA,IAAI,iDAAK;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,iEAAe,kBAAkB,EAAC;;;;;;;;;;;;;;;;;;ACtErB;;AAE2C;AACJ;;AAEpD;AACA;AACA;AACA;AACA;AACA,WAAW,Q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QAAQ,iDAAK;AACb;AACA;AACA,QAAQ,iDAAK;AACb,gEAAgE;AAChE;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,wEAAgB;AAC/B;;AAEA,wBAAwB,iDAAK;AAC7B;;AAEA,eAAe,kEAAU;AACzB,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA,QAAQ,iDAAK,qBAAqB,iDAAK;AACvC;AACA;;AAEA,gBAAgB,iDAAK;AACrB;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,kBAAkB,2DAAU,SAAS,2DAAU;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,0DAAQ;AACtB,UAAU,0DAAQ;AAClB,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAK;AACL;AACA,CAAC;;AAED,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;AChKX;;AAEb,iEAAe;AACf;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACNK;;;;;;;;;;;;;;;;;ACAM;;AAEe;AACI;;AAEhC;;AAEA,mCAAmC,6CAAgB;AACnD;AACA,cAAc,iDAAK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,cAAc,iDAAK;AACnB,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;;AAEA,iEAAe,oBAAoB,EAAC;;;;;;;;;;;;;;;;;AC9IvB;;AAE4B;;AAEzC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,WAAW,qBAAqB;AAChC;AACA,aAAa;AACb;AACA;AACA;;AAEA,YAAY,0DAAU;AACtB;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,GAAG;AACH;;AAEA,iEAAe,oBAAoB,EAAC;;;;;;;;;;;;;;;;ACzDpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;;ACtEjB;;AAEe;;AAE5B,wCAAwC,6CAAgB;AACxD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA,yBAAyB;AACzB,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iEAAe,yBAAyB,EAAC;;;;;;;;;;;;;;;;AC3B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N;AACA,kEAAkE;AAClE,gFAAgF;AAChF;AACA;;AAEA;AACA;AACA;;AAEA,MAAM,0DAAQ;AACd,qBAAqB,iDAAK;;AAE1B,qDAAqD,+DAAe;AACpE;AACA,4DAA4D,mDAAO;;AAEnE;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;;;;;ACvDY;;AAEb;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;ACtDd;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC3BA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;;;AC3CX;;AAEmB;AACe;AAC/C;AACoE;;AAEpE;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA,SAAS,iDAAK,yBAAyB,iDAAK;AAC5C;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,iDAAK;AACd;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA,aAAa;AACb;AACA;AACA,SAAS,iDAAK;AACd;;AAEA,mBAAmB,iDAAK,cAAc,iDAAK,IAAI;AAC/C;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC;AACA;AACA;AACA;AACA,OAAO,iDAAK;AACZ;AACA;;AAEA;AACA,8BAA8B,0EAAgB;;AAE9C;AACA,YAAY,iDAAK;AACjB;AACA;AACA;AACA,GAAG;AACH;AACA,YAAY,iDAAK;AACjB,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iDAAK;;AAEhC,OAAO,iDAAK;AACZ;AACA;;AAEA;AACA;;AAEA,QAAQ,iDAAK;AACb;AACA;;AAEA,oBAAoB,iDAAK;AACzB,gBAAgB,2DAAU;AAC1B;;AAEA,QAAQ,iDAAK,yBAAyB,iDAAK;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,GAAG;AAChB,aAAa,eAAe;AAC5B,aAAa,sBAAsB;AACnC,YAAY;AACZ;AACA,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA,UAAU,iDAAK,kBAAkB;AACjC;AACA;AACA;AACA;AACA,QAAQ;AACR,SAAS,iDAAK;AACd,UAAU,iDAAK,sBAAsB,iDAAK,gCAAgC,iDAAK;AAC/E;AACA;AACA;;AAEA;AACA,YAAY,iDAAK;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,QAAQ,iDAAK;;AAEb;AACA;AACA;;AAEA;;AAEA,IAAI,iDAAK;AACT,uBAAuB,iDAAK;AAC5B,sBAAsB,iDAAK;AAC3B;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA,OAAO,iDAAK;AACZ;AACA;;AAEA;;AAEA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;;AC1Nb;;AAEmB;AACS;AACG;;AAE7B;AACf,SAAS,0DAAU,WAAW,0DAAQ;AACtC;AACA,UAAU,0DAAQ,WAAW,iDAAK;AAClC;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;AChBO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,aAAa;;AAE5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;ACtFa;;AAE0B;AACQ;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,aAAa;AACb;AACA;AACA;AACA,wBAAwB,iDAAO;AAC/B;;AAEA;AACA;AACA;AACA,gBAAgB,2DAAU;AAC1B;AACA,QAAQ,2DAAU;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACA,aAAa;AACb;;AAEA;AACA;AACA,cAAc,2DAAU,8BAA8B,2DAAU;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2DAAU,yCAAyC,2DAAU;AAC/E;AACA;AACA;AACA;AACA,gBAAgB,2DAAU,0BAA0B,2DAAU;AAC9D;AACA;AACA;;AAEA,iEAAe;AACf;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;AC1FF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAQC;;;;;;;;;;;;;;;;;;AClDsC;AACI;;AAE3C,iEAAe;AACf,KAAK,6CAAK;AACV,KAAK,sDAAQ;AACb,CAAC;;;;;;;;;;;;;;;;;ACNgC;;AAEjC,iEAAe,sCAAQ,EAAC;;;;;;;;;;;;;;;;;ACFX;;AAES;AACtB,iEAAe,gDAAmB,EAAC;;;;;;;;;;;;;;;;;;ACHuB;AACd;;AAE5C,iEAAe;AACf;AACA;AACA,mBAAmB;AACnB,YAAY;AACZ;AACA,GAAG;AACH;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;ACXW;;AAEwB;;AAErC;;AAEA,OAAO,UAAU;AACjB,OAAO,gBAAgB;;AAEvB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA,OAAO,SAAS;;AAEhB;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;;AAGA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA,2BAA2B,oBAAoB,IAAI;AACnD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C,4BAA4B;AAC5B;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,UAAU;AACnB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,kCAAkC;AAClC,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA,gCAAgC,WAAW,IAAI;AAC/C;AACA;AACA,eAAe,4DAAI;AACnB,MAAM;AACN;AACA;AACA,GAAG,GAAG,WAAW;AACjB;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,kBAAkB;AAC7B,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,eAAe;;AAEzC;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,QAAQ;AACjB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,GAAG,WAAW,cAAc;AAC5B,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;UCvvBF;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJA,+BAA+B;AAC8B;AACR;AACY;AACF;AACQ;AACtC;AAIZ;AAUA;AAME;AAEvB,gDAAgD;AAsB9C;AAEF,gDAAgD;AAChD,MAAM,GAAG,GAAG;IACV,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,MAAM;IACN,WAAW;IACX,OAAO;IACP,aAAa;IACb,YAAY;IACZ,cAAc;IACd,aAAa;IACb,sBAAsB;IACtB,SAAS;IACT,2BAA2B;IAC3B,kBAAkB;IAClB,IAAI;IACJ,KAAK;IACL,wBAAwB;IACxB,2BAA2B;CAC5B,CAAC;AAEF,qDAAqD;AACrD,iEAAe,GAAG,EAAC","sources":["webpack://SodasSDK/webpack/universalModuleDefinition","webpack://SodasSDK/./node_modules/asynckit/index.js","webpack://SodasSDK/./node_modules/asynckit/lib/abort.js","webpack://SodasSDK/./node_modules/asynckit/lib/async.js","webpack://SodasSDK/./node_modules/asynckit/lib/defer.js","webpack://SodasSDK/./node_modules/asynckit/lib/iterate.js","webpack://SodasSDK/./node_modules/asynckit/lib/state.js","webpack://SodasSDK/./node_modules/asynckit/lib/terminator.js","webpack://SodasSDK/./node_modules/asynckit/parallel.js","webpack://SodasSDK/./node_modules/asynckit/serial.js","webpack://SodasSDK/./node_modules/asynckit/serialOrdered.js","webpack://SodasSDK/./node_modules/combined-stream/lib/combined_stream.js","webpack://SodasSDK/./node_modules/debug/src/browser.js","webpack://SodasSDK/./node_modules/debug/src/common.js","webpack://SodasSDK/./node_modules/debug/src/index.js","webpack://SodasSDK/./node_modules/debug/src/node.js","webpack://SodasSDK/./node_modules/delayed-stream/lib/delayed_stream.js","webpack://SodasSDK/./node_modules/follow-redirects/debug.js","webpack://SodasSDK/./node_modules/follow-redirects/index.js","webpack://SodasSDK/./node_modules/form-data/lib/form_data.js","webpack://SodasSDK/./node_modules/form-data/lib/populate.js","webpack://SodasSDK/./node_modules/has-flag/index.js","webpack://SodasSDK/./node_modules/lodash.clonedeep/index.js","webpack://SodasSDK/./node_modules/mime-db/index.js","webpack://SodasSDK/./node_modules/mime-types/index.js","webpack://SodasSDK/./node_modules/ms/index.js","webpack://SodasSDK/./node_modules/proxy-from-env/index.js","webpack://SodasSDK/./node_modules/supports-color/index.js","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/dataService.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/dataset.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/datasetSeries.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/dcatResource.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/distribution.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/versionInfo.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/dcatClass.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/dictionary/term.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/dictionary/vocabulary.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/governanceClass.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/sodasSDKClass.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/template/validation.ts","webpack://SodasSDK/./lib/SODAS_SDK_FILE/dataFile.ts","webpack://SodasSDK/./lib/SODAS_SDK_FILE/sodasSDKFile.ts","webpack://SodasSDK/./lib/SODAS_SDK_FILE/thumbnailFile.ts","webpack://SodasSDK/./lib/core/auth.ts","webpack://SodasSDK/./lib/core/error.ts","webpack://SodasSDK/./lib/core/init.ts","webpack://SodasSDK/./lib/core/type.ts","webpack://SodasSDK/./lib/core/util.ts","webpack://SodasSDK/./lib/core/values.ts","webpack://SodasSDK/external node-commonjs \"assert\"","webpack://SodasSDK/external node-commonjs \"events\"","webpack://SodasSDK/external node-commonjs \"fs\"","webpack://SodasSDK/external node-commonjs \"http\"","webpack://SodasSDK/external node-commonjs \"https\"","webpack://SodasSDK/external node-commonjs \"os\"","webpack://SodasSDK/external node-commonjs \"path\"","webpack://SodasSDK/external node-commonjs \"stream\"","webpack://SodasSDK/external node-commonjs \"tty\"","webpack://SodasSDK/external node-commonjs \"url\"","webpack://SodasSDK/external node-commonjs \"util\"","webpack://SodasSDK/external node-commonjs \"zlib\"","webpack://SodasSDK/./node_modules/axios/lib/adapters/adapters.js","webpack://SodasSDK/./node_modules/axios/lib/adapters/fetch.js","webpack://SodasSDK/./node_modules/axios/lib/adapters/http.js","webpack://SodasSDK/./node_modules/axios/lib/adapters/xhr.js","webpack://SodasSDK/./node_modules/axios/lib/axios.js","webpack://SodasSDK/./node_modules/axios/lib/cancel/CancelToken.js","webpack://SodasSDK/./node_modules/axios/lib/cancel/CanceledError.js","webpack://SodasSDK/./node_modules/axios/lib/cancel/isCancel.js","webpack://SodasSDK/./node_modules/axios/lib/core/Axios.js","webpack://SodasSDK/./node_modules/axios/lib/core/AxiosError.js","webpack://SodasSDK/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://SodasSDK/./node_modules/axios/lib/core/InterceptorManager.js","webpack://SodasSDK/./node_modules/axios/lib/core/buildFullPath.js","webpack://SodasSDK/./node_modules/axios/lib/core/dispatchRequest.js","webpack://SodasSDK/./node_modules/axios/lib/core/mergeConfig.js","webpack://SodasSDK/./node_modules/axios/lib/core/settle.js","webpack://SodasSDK/./node_modules/axios/lib/core/transformData.js","webpack://SodasSDK/./node_modules/axios/lib/defaults/index.js","webpack://SodasSDK/./node_modules/axios/lib/defaults/transitional.js","webpack://SodasSDK/./node_modules/axios/lib/env/data.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/AxiosTransformStream.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/bind.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/buildURL.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/callbackify.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/combineURLs.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/composeSignals.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/cookies.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/formDataToStream.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/fromDataURI.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/readBlob.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/speedometer.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/spread.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/throttle.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/toFormData.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/trackStream.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/validator.js","webpack://SodasSDK/./node_modules/axios/lib/platform/common/utils.js","webpack://SodasSDK/./node_modules/axios/lib/platform/index.js","webpack://SodasSDK/./node_modules/axios/lib/platform/node/classes/FormData.js","webpack://SodasSDK/./node_modules/axios/lib/platform/node/classes/URLSearchParams.js","webpack://SodasSDK/./node_modules/axios/lib/platform/node/index.js","webpack://SodasSDK/./node_modules/axios/lib/utils.js","webpack://SodasSDK/webpack/bootstrap","webpack://SodasSDK/webpack/runtime/compat get default export","webpack://SodasSDK/webpack/runtime/define property getters","webpack://SodasSDK/webpack/runtime/hasOwnProperty shorthand","webpack://SodasSDK/webpack/runtime/make namespace object","webpack://SodasSDK/webpack/runtime/node module decorator","webpack://SodasSDK/./lib/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"SodasSDK\"] = factory();\n\telse\n\t\troot[\"SodasSDK\"] = factory();\n})(typeof self !== 'undefined' ? self : this, () => {\nreturn ","module.exports =\n{\n parallel : require('./parallel.js'),\n serial : require('./serial.js'),\n serialOrdered : require('./serialOrdered.js')\n};\n","// API\nmodule.exports = abort;\n\n/**\n * Aborts leftover active jobs\n *\n * @param {object} state - current state object\n */\nfunction abort(state)\n{\n Object.keys(state.jobs).forEach(clean.bind(state));\n\n // reset leftover jobs\n state.jobs = {};\n}\n\n/**\n * Cleans up leftover job by invoking abort function for the provided job id\n *\n * @this state\n * @param {string|number} key - job id to abort\n */\nfunction clean(key)\n{\n if (typeof this.jobs[key] == 'function')\n {\n this.jobs[key]();\n }\n}\n","var defer = require('./defer.js');\n\n// API\nmodule.exports = async;\n\n/**\n * Runs provided callback asynchronously\n * even if callback itself is not\n *\n * @param {function} callback - callback to invoke\n * @returns {function} - augmented callback\n */\nfunction async(callback)\n{\n var isAsync = false;\n\n // check if async happened\n defer(function() { isAsync = true; });\n\n return function async_callback(err, result)\n {\n if (isAsync)\n {\n callback(err, result);\n }\n else\n {\n defer(function nextTick_callback()\n {\n callback(err, result);\n });\n }\n };\n}\n","module.exports = defer;\n\n/**\n * Runs provided function on next iteration of the event loop\n *\n * @param {function} fn - function to run\n */\nfunction defer(fn)\n{\n var nextTick = typeof setImmediate == 'function'\n ? setImmediate\n : (\n typeof process == 'object' && typeof process.nextTick == 'function'\n ? process.nextTick\n : null\n );\n\n if (nextTick)\n {\n nextTick(fn);\n }\n else\n {\n setTimeout(fn, 0);\n }\n}\n","var async = require('./async.js')\n , abort = require('./abort.js')\n ;\n\n// API\nmodule.exports = iterate;\n\n/**\n * Iterates over each job object\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {object} state - current job status\n * @param {function} callback - invoked when all elements processed\n */\nfunction iterate(list, iterator, state, callback)\n{\n // store current index\n var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;\n\n state.jobs[key] = runJob(iterator, key, list[key], function(error, output)\n {\n // don't repeat yourself\n // skip secondary callbacks\n if (!(key in state.jobs))\n {\n return;\n }\n\n // clean up jobs\n delete state.jobs[key];\n\n if (error)\n {\n // don't process rest of the results\n // stop still active jobs\n // and reset the list\n abort(state);\n }\n else\n {\n state.results[key] = output;\n }\n\n // return salvaged results\n callback(error, state.results);\n });\n}\n\n/**\n * Runs iterator over provided job element\n *\n * @param {function} iterator - iterator to invoke\n * @param {string|number} key - key/index of the element in the list of jobs\n * @param {mixed} item - job description\n * @param {function} callback - invoked after iterator is done with the job\n * @returns {function|mixed} - job abort function or something else\n */\nfunction runJob(iterator, key, item, callback)\n{\n var aborter;\n\n // allow shortcut if iterator expects only two arguments\n if (iterator.length == 2)\n {\n aborter = iterator(item, async(callback));\n }\n // otherwise go with full three arguments\n else\n {\n aborter = iterator(item, key, async(callback));\n }\n\n return aborter;\n}\n","// API\nmodule.exports = state;\n\n/**\n * Creates initial state object\n * for iteration over list\n *\n * @param {array|object} list - list to iterate over\n * @param {function|null} sortMethod - function to use for keys sort,\n * or `null` to keep them as is\n * @returns {object} - initial state object\n */\nfunction state(list, sortMethod)\n{\n var isNamedList = !Array.isArray(list)\n , initState =\n {\n index : 0,\n keyedList: isNamedList || sortMethod ? Object.keys(list) : null,\n jobs : {},\n results : isNamedList ? {} : [],\n size : isNamedList ? Object.keys(list).length : list.length\n }\n ;\n\n if (sortMethod)\n {\n // sort array keys based on it's values\n // sort object's keys just on own merit\n initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)\n {\n return sortMethod(list[a], list[b]);\n });\n }\n\n return initState;\n}\n","var abort = require('./abort.js')\n , async = require('./async.js')\n ;\n\n// API\nmodule.exports = terminator;\n\n/**\n * Terminates jobs in the attached state context\n *\n * @this AsyncKitState#\n * @param {function} callback - final callback to invoke after termination\n */\nfunction terminator(callback)\n{\n if (!Object.keys(this.jobs).length)\n {\n return;\n }\n\n // fast forward iteration index\n this.index = this.size;\n\n // abort jobs\n abort(this);\n\n // send back results we have so far\n async(callback)(null, this.results);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = parallel;\n\n/**\n * Runs iterator over provided array elements in parallel\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction parallel(list, iterator, callback)\n{\n var state = initState(list);\n\n while (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, function(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n // looks like it's the last one\n if (Object.keys(state.jobs).length === 0)\n {\n callback(null, state.results);\n return;\n }\n });\n\n state.index++;\n }\n\n return terminator.bind(state, callback);\n}\n","var serialOrdered = require('./serialOrdered.js');\n\n// Public API\nmodule.exports = serial;\n\n/**\n * Runs iterator over provided array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serial(list, iterator, callback)\n{\n return serialOrdered(list, iterator, null, callback);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = serialOrdered;\n// sorting helpers\nmodule.exports.ascending = ascending;\nmodule.exports.descending = descending;\n\n/**\n * Runs iterator over provided sorted array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} sortMethod - custom sort function\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serialOrdered(list, iterator, sortMethod, callback)\n{\n var state = initState(list, sortMethod);\n\n iterate(list, iterator, state, function iteratorHandler(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n state.index++;\n\n // are we there yet?\n if (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, iteratorHandler);\n return;\n }\n\n // done here\n callback(null, state.results);\n });\n\n return terminator.bind(state, callback);\n}\n\n/*\n * -- Sort methods\n */\n\n/**\n * sort helper to sort array elements in ascending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction ascending(a, b)\n{\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\n * sort helper to sort array elements in descending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction descending(a, b)\n{\n return -1 * ascending(a, b);\n}\n","var util = require('util');\nvar Stream = require('stream').Stream;\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\nfunction CombinedStream() {\n this.writable = false;\n this.readable = true;\n this.dataSize = 0;\n this.maxDataSize = 2 * 1024 * 1024;\n this.pauseStreams = true;\n\n this._released = false;\n this._streams = [];\n this._currentStream = null;\n this._insideLoop = false;\n this._pendingNext = false;\n}\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function(options) {\n var combinedStream = new this();\n\n options = options || {};\n for (var option in options) {\n combinedStream[option] = options[option];\n }\n\n return combinedStream;\n};\n\nCombinedStream.isStreamLike = function(stream) {\n return (typeof stream !== 'function')\n && (typeof stream !== 'string')\n && (typeof stream !== 'boolean')\n && (typeof stream !== 'number')\n && (!Buffer.isBuffer(stream));\n};\n\nCombinedStream.prototype.append = function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n if (!(stream instanceof DelayedStream)) {\n var newStream = DelayedStream.create(stream, {\n maxDataSize: Infinity,\n pauseStream: this.pauseStreams,\n });\n stream.on('data', this._checkDataSize.bind(this));\n stream = newStream;\n }\n\n this._handleErrors(stream);\n\n if (this.pauseStreams) {\n stream.pause();\n }\n }\n\n this._streams.push(stream);\n return this;\n};\n\nCombinedStream.prototype.pipe = function(dest, options) {\n Stream.prototype.pipe.call(this, dest, options);\n this.resume();\n return dest;\n};\n\nCombinedStream.prototype._getNext = function() {\n this._currentStream = null;\n\n if (this._insideLoop) {\n this._pendingNext = true;\n return; // defer call\n }\n\n this._insideLoop = true;\n try {\n do {\n this._pendingNext = false;\n this._realGetNext();\n } while (this._pendingNext);\n } finally {\n this._insideLoop = false;\n }\n};\n\nCombinedStream.prototype._realGetNext = function() {\n var stream = this._streams.shift();\n\n\n if (typeof stream == 'undefined') {\n this.end();\n return;\n }\n\n if (typeof stream !== 'function') {\n this._pipeNext(stream);\n return;\n }\n\n var getStream = stream;\n getStream(function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('data', this._checkDataSize.bind(this));\n this._handleErrors(stream);\n }\n\n this._pipeNext(stream);\n }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function(stream) {\n this._currentStream = stream;\n\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('end', this._getNext.bind(this));\n stream.pipe(this, {end: false});\n return;\n }\n\n var value = stream;\n this.write(value);\n this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function(stream) {\n var self = this;\n stream.on('error', function(err) {\n self._emitError(err);\n });\n};\n\nCombinedStream.prototype.write = function(data) {\n this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function() {\n if (!this.pauseStreams) {\n return;\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();\n this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function() {\n if (!this._released) {\n this._released = true;\n this.writable = true;\n this._getNext();\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();\n this.emit('resume');\n};\n\nCombinedStream.prototype.end = function() {\n this._reset();\n this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function() {\n this._reset();\n this.emit('close');\n};\n\nCombinedStream.prototype._reset = function() {\n this.writable = false;\n this._streams = [];\n this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function() {\n this._updateDataSize();\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function() {\n this.dataSize = 0;\n\n var self = this;\n this._streams.forEach(function(stream) {\n if (!stream.dataSize) {\n return;\n }\n\n self.dataSize += stream.dataSize;\n });\n\n if (this._currentStream && this._currentStream.dataSize) {\n this.dataSize += this._currentStream.dataSize;\n }\n};\n\nCombinedStream.prototype._emitError = function(err) {\n this._reset();\n this.emit('error', err);\n};\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","var Stream = require('stream').Stream;\nvar util = require('util');\n\nmodule.exports = DelayedStream;\nfunction DelayedStream() {\n this.source = null;\n this.dataSize = 0;\n this.maxDataSize = 1024 * 1024;\n this.pauseStream = true;\n\n this._maxDataSizeExceeded = false;\n this._released = false;\n this._bufferedEvents = [];\n}\nutil.inherits(DelayedStream, Stream);\n\nDelayedStream.create = function(source, options) {\n var delayedStream = new this();\n\n options = options || {};\n for (var option in options) {\n delayedStream[option] = options[option];\n }\n\n delayedStream.source = source;\n\n var realEmit = source.emit;\n source.emit = function() {\n delayedStream._handleEmit(arguments);\n return realEmit.apply(source, arguments);\n };\n\n source.on('error', function() {});\n if (delayedStream.pauseStream) {\n source.pause();\n }\n\n return delayedStream;\n};\n\nObject.defineProperty(DelayedStream.prototype, 'readable', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this.source.readable;\n }\n});\n\nDelayedStream.prototype.setEncoding = function() {\n return this.source.setEncoding.apply(this.source, arguments);\n};\n\nDelayedStream.prototype.resume = function() {\n if (!this._released) {\n this.release();\n }\n\n this.source.resume();\n};\n\nDelayedStream.prototype.pause = function() {\n this.source.pause();\n};\n\nDelayedStream.prototype.release = function() {\n this._released = true;\n\n this._bufferedEvents.forEach(function(args) {\n this.emit.apply(this, args);\n }.bind(this));\n this._bufferedEvents = [];\n};\n\nDelayedStream.prototype.pipe = function() {\n var r = Stream.prototype.pipe.apply(this, arguments);\n this.resume();\n return r;\n};\n\nDelayedStream.prototype._handleEmit = function(args) {\n if (this._released) {\n this.emit.apply(this, args);\n return;\n }\n\n if (args[0] === 'data') {\n this.dataSize += args[1].length;\n this._checkIfMaxDataSizeExceeded();\n }\n\n this._bufferedEvents.push(args);\n};\n\nDelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {\n if (this._maxDataSizeExceeded) {\n return;\n }\n\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n this._maxDataSizeExceeded = true;\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'\n this.emit('error', new Error(message));\n};\n","var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n","var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Preventive platform detection\n// istanbul ignore next\n(function detectUnsupportedEnvironment() {\n var looksLikeNode = typeof process !== \"undefined\";\n var looksLikeBrowser = typeof window !== \"undefined\" && typeof document !== \"undefined\";\n var looksLikeV8 = isFunction(Error.captureStackTrace);\n if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) {\n console.warn(\"The follow-redirects package should be excluded from browser builds.\");\n }\n}());\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL(\"\"));\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n // istanbul ignore else\n if (request === self._currentRequest) {\n // Report any write errors\n // istanbul ignore if\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n // istanbul ignore else\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n // istanbul ignore else\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n // istanbul ignore next\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n // istanbul ignore else\n if (isFunction(Error.captureStackTrace)) {\n Error.captureStackTrace(this, this.constructor);\n }\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n","var CombinedStream = require('combined-stream');\nvar util = require('util');\nvar path = require('path');\nvar http = require('http');\nvar https = require('https');\nvar parseUrl = require('url').parse;\nvar fs = require('fs');\nvar Stream = require('stream').Stream;\nvar mime = require('mime-types');\nvar asynckit = require('asynckit');\nvar populate = require('./populate.js');\n\n// Public API\nmodule.exports = FormData;\n\n// make it a Stream\nutil.inherits(FormData, CombinedStream);\n\n/**\n * Create readable \"multipart/form-data\" streams.\n * Can be used to submit forms\n * and file uploads to other web applications.\n *\n * @constructor\n * @param {Object} options - Properties to be added/overriden for FormData and CombinedStream\n */\nfunction FormData(options) {\n if (!(this instanceof FormData)) {\n return new FormData(options);\n }\n\n this._overheadLength = 0;\n this._valueLength = 0;\n this._valuesToMeasure = [];\n\n CombinedStream.call(this);\n\n options = options || {};\n for (var option in options) {\n this[option] = options[option];\n }\n}\n\nFormData.LINE_BREAK = '\\r\\n';\nFormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';\n\nFormData.prototype.append = function(field, value, options) {\n\n options = options || {};\n\n // allow filename as single option\n if (typeof options == 'string') {\n options = {filename: options};\n }\n\n var append = CombinedStream.prototype.append.bind(this);\n\n // all that streamy business can't handle numbers\n if (typeof value == 'number') {\n value = '' + value;\n }\n\n // https://github.com/felixge/node-form-data/issues/38\n if (Array.isArray(value)) {\n // Please convert your array into string\n // the way web server expects it\n this._error(new Error('Arrays are not supported.'));\n return;\n }\n\n var header = this._multiPartHeader(field, value, options);\n var footer = this._multiPartFooter();\n\n append(header);\n append(value);\n append(footer);\n\n // pass along options.knownLength\n this._trackLength(header, value, options);\n};\n\nFormData.prototype._trackLength = function(header, value, options) {\n var valueLength = 0;\n\n // used w/ getLengthSync(), when length is known.\n // e.g. for streaming directly from a remote server,\n // w/ a known file a size, and not wanting to wait for\n // incoming file to finish to get its size.\n if (options.knownLength != null) {\n valueLength += +options.knownLength;\n } else if (Buffer.isBuffer(value)) {\n valueLength = value.length;\n } else if (typeof value === 'string') {\n valueLength = Buffer.byteLength(value);\n }\n\n this._valueLength += valueLength;\n\n // @check why add CRLF? does this account for custom/multiple CRLFs?\n this._overheadLength +=\n Buffer.byteLength(header) +\n FormData.LINE_BREAK.length;\n\n // empty or either doesn't have path or not an http response or not a stream\n if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) && !(value instanceof Stream))) {\n return;\n }\n\n // no need to bother with the length\n if (!options.knownLength) {\n this._valuesToMeasure.push(value);\n }\n};\n\nFormData.prototype._lengthRetriever = function(value, callback) {\n\n if (value.hasOwnProperty('fd')) {\n\n // take read range into a account\n // `end` = Infinity –> read file till the end\n //\n // TODO: Looks like there is bug in Node fs.createReadStream\n // it doesn't respect `end` options without `start` options\n // Fix it when node fixes it.\n // https://github.com/joyent/node/issues/7819\n if (value.end != undefined && value.end != Infinity && value.start != undefined) {\n\n // when end specified\n // no need to calculate range\n // inclusive, starts with 0\n callback(null, value.end + 1 - (value.start ? value.start : 0));\n\n // not that fast snoopy\n } else {\n // still need to fetch file size from fs\n fs.stat(value.path, function(err, stat) {\n\n var fileSize;\n\n if (err) {\n callback(err);\n return;\n }\n\n // update final size based on the range options\n fileSize = stat.size - (value.start ? value.start : 0);\n callback(null, fileSize);\n });\n }\n\n // or http response\n } else if (value.hasOwnProperty('httpVersion')) {\n callback(null, +value.headers['content-length']);\n\n // or request stream http://github.com/mikeal/request\n } else if (value.hasOwnProperty('httpModule')) {\n // wait till response come back\n value.on('response', function(response) {\n value.pause();\n callback(null, +response.headers['content-length']);\n });\n value.resume();\n\n // something else\n } else {\n callback('Unknown stream');\n }\n};\n\nFormData.prototype._multiPartHeader = function(field, value, options) {\n // custom header specified (as string)?\n // it becomes responsible for boundary\n // (e.g. to handle extra CRLFs on .NET servers)\n if (typeof options.header == 'string') {\n return options.header;\n }\n\n var contentDisposition = this._getContentDisposition(value, options);\n var contentType = this._getContentType(value, options);\n\n var contents = '';\n var headers = {\n // add custom disposition as third element or keep it two elements if not\n 'Content-Disposition': ['form-data', 'name=\"' + field + '\"'].concat(contentDisposition || []),\n // if no content type. allow it to be empty array\n 'Content-Type': [].concat(contentType || [])\n };\n\n // allow custom headers.\n if (typeof options.header == 'object') {\n populate(headers, options.header);\n }\n\n var header;\n for (var prop in headers) {\n if (!headers.hasOwnProperty(prop)) continue;\n header = headers[prop];\n\n // skip nullish headers.\n if (header == null) {\n continue;\n }\n\n // convert all headers to arrays.\n if (!Array.isArray(header)) {\n header = [header];\n }\n\n // add non-empty headers.\n if (header.length) {\n contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;\n }\n }\n\n return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;\n};\n\nFormData.prototype._getContentDisposition = function(value, options) {\n\n var filename\n , contentDisposition\n ;\n\n if (typeof options.filepath === 'string') {\n // custom filepath for relative paths\n filename = path.normalize(options.filepath).replace(/\\\\/g, '/');\n } else if (options.filename || value.name || value.path) {\n // custom filename take precedence\n // formidable and the browser add a name property\n // fs- and request- streams have path property\n filename = path.basename(options.filename || value.name || value.path);\n } else if (value.readable && value.hasOwnProperty('httpVersion')) {\n // or try http response\n filename = path.basename(value.client._httpMessage.path || '');\n }\n\n if (filename) {\n contentDisposition = 'filename=\"' + filename + '\"';\n }\n\n return contentDisposition;\n};\n\nFormData.prototype._getContentType = function(value, options) {\n\n // use custom content-type above all\n var contentType = options.contentType;\n\n // or try `name` from formidable, browser\n if (!contentType && value.name) {\n contentType = mime.lookup(value.name);\n }\n\n // or try `path` from fs-, request- streams\n if (!contentType && value.path) {\n contentType = mime.lookup(value.path);\n }\n\n // or if it's http-reponse\n if (!contentType && value.readable && value.hasOwnProperty('httpVersion')) {\n contentType = value.headers['content-type'];\n }\n\n // or guess it from the filepath or filename\n if (!contentType && (options.filepath || options.filename)) {\n contentType = mime.lookup(options.filepath || options.filename);\n }\n\n // fallback to the default content type if `value` is not simple value\n if (!contentType && typeof value == 'object') {\n contentType = FormData.DEFAULT_CONTENT_TYPE;\n }\n\n return contentType;\n};\n\nFormData.prototype._multiPartFooter = function() {\n return function(next) {\n var footer = FormData.LINE_BREAK;\n\n var lastPart = (this._streams.length === 0);\n if (lastPart) {\n footer += this._lastBoundary();\n }\n\n next(footer);\n }.bind(this);\n};\n\nFormData.prototype._lastBoundary = function() {\n return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;\n};\n\nFormData.prototype.getHeaders = function(userHeaders) {\n var header;\n var formHeaders = {\n 'content-type': 'multipart/form-data; boundary=' + this.getBoundary()\n };\n\n for (header in userHeaders) {\n if (userHeaders.hasOwnProperty(header)) {\n formHeaders[header.toLowerCase()] = userHeaders[header];\n }\n }\n\n return formHeaders;\n};\n\nFormData.prototype.setBoundary = function(boundary) {\n this._boundary = boundary;\n};\n\nFormData.prototype.getBoundary = function() {\n if (!this._boundary) {\n this._generateBoundary();\n }\n\n return this._boundary;\n};\n\nFormData.prototype.getBuffer = function() {\n var dataBuffer = new Buffer.alloc( 0 );\n var boundary = this.getBoundary();\n\n // Create the form content. Add Line breaks to the end of data.\n for (var i = 0, len = this._streams.length; i < len; i++) {\n if (typeof this._streams[i] !== 'function') {\n\n // Add content to the buffer.\n if(Buffer.isBuffer(this._streams[i])) {\n dataBuffer = Buffer.concat( [dataBuffer, this._streams[i]]);\n }else {\n dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(this._streams[i])]);\n }\n\n // Add break after content.\n if (typeof this._streams[i] !== 'string' || this._streams[i].substring( 2, boundary.length + 2 ) !== boundary) {\n dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(FormData.LINE_BREAK)] );\n }\n }\n }\n\n // Add the footer and return the Buffer object.\n return Buffer.concat( [dataBuffer, Buffer.from(this._lastBoundary())] );\n};\n\nFormData.prototype._generateBoundary = function() {\n // This generates a 50 character boundary similar to those used by Firefox.\n // They are optimized for boyer-moore parsing.\n var boundary = '--------------------------';\n for (var i = 0; i < 24; i++) {\n boundary += Math.floor(Math.random() * 10).toString(16);\n }\n\n this._boundary = boundary;\n};\n\n// Note: getLengthSync DOESN'T calculate streams length\n// As workaround one can calculate file size manually\n// and add it as knownLength option\nFormData.prototype.getLengthSync = function() {\n var knownLength = this._overheadLength + this._valueLength;\n\n // Don't get confused, there are 3 \"internal\" streams for each keyval pair\n // so it basically checks if there is any value added to the form\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n // https://github.com/form-data/form-data/issues/40\n if (!this.hasKnownLength()) {\n // Some async length retrievers are present\n // therefore synchronous length calculation is false.\n // Please use getLength(callback) to get proper length\n this._error(new Error('Cannot calculate proper length in synchronous way.'));\n }\n\n return knownLength;\n};\n\n// Public API to check if length of added values is known\n// https://github.com/form-data/form-data/issues/196\n// https://github.com/form-data/form-data/issues/262\nFormData.prototype.hasKnownLength = function() {\n var hasKnownLength = true;\n\n if (this._valuesToMeasure.length) {\n hasKnownLength = false;\n }\n\n return hasKnownLength;\n};\n\nFormData.prototype.getLength = function(cb) {\n var knownLength = this._overheadLength + this._valueLength;\n\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n if (!this._valuesToMeasure.length) {\n process.nextTick(cb.bind(this, null, knownLength));\n return;\n }\n\n asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err, values) {\n if (err) {\n cb(err);\n return;\n }\n\n values.forEach(function(length) {\n knownLength += length;\n });\n\n cb(null, knownLength);\n });\n};\n\nFormData.prototype.submit = function(params, cb) {\n var request\n , options\n , defaults = {method: 'post'}\n ;\n\n // parse provided url if it's string\n // or treat it as options object\n if (typeof params == 'string') {\n\n params = parseUrl(params);\n options = populate({\n port: params.port,\n path: params.pathname,\n host: params.hostname,\n protocol: params.protocol\n }, defaults);\n\n // use custom params\n } else {\n\n options = populate(params, defaults);\n // if no port provided use default one\n if (!options.port) {\n options.port = options.protocol == 'https:' ? 443 : 80;\n }\n }\n\n // put that good code in getHeaders to some use\n options.headers = this.getHeaders(params.headers);\n\n // https if specified, fallback to http in any other case\n if (options.protocol == 'https:') {\n request = https.request(options);\n } else {\n request = http.request(options);\n }\n\n // get content length and fire away\n this.getLength(function(err, length) {\n if (err && err !== 'Unknown stream') {\n this._error(err);\n return;\n }\n\n // add content length\n if (length) {\n request.setHeader('Content-Length', length);\n }\n\n this.pipe(request);\n if (cb) {\n var onResponse;\n\n var callback = function (error, responce) {\n request.removeListener('error', callback);\n request.removeListener('response', onResponse);\n\n return cb.call(this, error, responce);\n };\n\n onResponse = callback.bind(this, null);\n\n request.on('error', callback);\n request.on('response', onResponse);\n }\n }.bind(this));\n\n return request;\n};\n\nFormData.prototype._error = function(err) {\n if (!this.error) {\n this.error = err;\n this.pause();\n this.emit('error', err);\n }\n};\n\nFormData.prototype.toString = function () {\n return '[object FormData]';\n};\n","// populates missing values\nmodule.exports = function(dst, src) {\n\n Object.keys(src).forEach(function(prop)\n {\n dst[prop] = dst[prop] || src[prop];\n });\n\n return dst;\n};\n","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","'use strict';\n\nvar parseUrl = require('url').parse;\n\nvar DEFAULT_PORTS = {\n ftp: 21,\n gopher: 70,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443,\n};\n\nvar stringEndsWith = String.prototype.endsWith || function(s) {\n return s.length <= this.length &&\n this.indexOf(s, this.length - s.length) !== -1;\n};\n\n/**\n * @param {string|object} url - The URL, or the result from url.parse.\n * @return {string} The URL of the proxy that should handle the request to the\n * given URL. If no proxy is set, this will be an empty string.\n */\nfunction getProxyForUrl(url) {\n var parsedUrl = typeof url === 'string' ? parseUrl(url) : url || {};\n var proto = parsedUrl.protocol;\n var hostname = parsedUrl.host;\n var port = parsedUrl.port;\n if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') {\n return ''; // Don't proxy URLs without a valid scheme or host.\n }\n\n proto = proto.split(':', 1)[0];\n // Stripping ports in this way instead of using parsedUrl.hostname to make\n // sure that the brackets around IPv6 addresses are kept.\n hostname = hostname.replace(/:\\d*$/, '');\n port = parseInt(port) || DEFAULT_PORTS[proto] || 0;\n if (!shouldProxy(hostname, port)) {\n return ''; // Don't proxy URLs that match NO_PROXY.\n }\n\n var proxy =\n getEnv('npm_config_' + proto + '_proxy') ||\n getEnv(proto + '_proxy') ||\n getEnv('npm_config_proxy') ||\n getEnv('all_proxy');\n if (proxy && proxy.indexOf('://') === -1) {\n // Missing scheme in proxy, default to the requested URL's scheme.\n proxy = proto + '://' + proxy;\n }\n return proxy;\n}\n\n/**\n * Determines whether a given URL should be proxied.\n *\n * @param {string} hostname - The host name of the URL.\n * @param {number} port - The effective port of the URL.\n * @returns {boolean} Whether the given URL should be proxied.\n * @private\n */\nfunction shouldProxy(hostname, port) {\n var NO_PROXY =\n (getEnv('npm_config_no_proxy') || getEnv('no_proxy')).toLowerCase();\n if (!NO_PROXY) {\n return true; // Always proxy if NO_PROXY is not set.\n }\n if (NO_PROXY === '*') {\n return false; // Never proxy if wildcard is set.\n }\n\n return NO_PROXY.split(/[,\\s]/).every(function(proxy) {\n if (!proxy) {\n return true; // Skip zero-length hosts.\n }\n var parsedProxy = proxy.match(/^(.+):(\\d+)$/);\n var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;\n var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;\n if (parsedProxyPort && parsedProxyPort !== port) {\n return true; // Skip if ports don't match.\n }\n\n if (!/^[.*]/.test(parsedProxyHostname)) {\n // No wildcards, so stop proxying if there is an exact match.\n return hostname !== parsedProxyHostname;\n }\n\n if (parsedProxyHostname.charAt(0) === '*') {\n // Remove leading wildcard.\n parsedProxyHostname = parsedProxyHostname.slice(1);\n }\n // Stop proxying if the hostname ends with the no_proxy host.\n return !stringEndsWith.call(hostname, parsedProxyHostname);\n });\n}\n\n/**\n * Get the value for an environment variable.\n *\n * @param {string} key - The name of the environment variable.\n * @return {string} The value of the environment variable.\n * @private\n */\nfunction getEnv(key) {\n return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || '';\n}\n\nexports.getProxyForUrl = getProxyForUrl;\n","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","import axios from \"axios\";\nimport {UnexpectedResponseFormatError} from \"../../core/error\";\nimport {IDType, PaginatedResponse, SortOrder, asID} from \"../../core/type\";\nimport {handleAxiosError} from \"../../core/util\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport DCAT_RESOURCE, {DCAT_RESOURCE_DTO} from \"./dcatResource\";\nexport interface DataServiceDTO extends DCAT_RESOURCE_DTO {\n DataServiceID?: string;\n EndpointURL?: string;\n EndpointDescription?: string;\n}\n/**\n * Represents a Data Service DTO.\n */\nclass DataService extends DCAT_RESOURCE {\n private DataServiceID: IDType;\n private EndpointURL: string;\n private EndpointDescription: string;\n\n /**\n * Initializes the API URL for DataService.\n *\n * @static\n * @param {string} url - The base URL of the API.\n */\n static configureAPIURL(url: string) {\n DataService.API_URL = `${url}/dataservice`;\n DataService.LIST_URL = `${DataService.API_URL}/list`;\n }\n\n static async listUserDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC\n ): Promise<PaginatedResponse<DataService>> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = DataService.LIST_URL.replace(/\\/list$/, \"/user/list\");\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n \"Content-Type\": \"application/json\",\n ...(DataService.BEARER_TOKEN && {\n Authorization: `Bearer ${DataService.BEARER_TOKEN}`,\n }),\n },\n params: {pageNumber, pageSize, sortOrder},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dataService = new DataService();\n await dataService.populateFromDTO(item);\n return dataService;\n })\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async searchDBRecords(\n searchKeyword: string,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC\n ): Promise<PaginatedResponse<DataService>> {\n if (!searchKeyword || !searchKeyword.trim()) {\n return this.listDBRecords(pageNumber, pageSize, sortOrder);\n }\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n let response: any;\n try {\n response = await axios.get(\n (this.prototype.constructor as typeof DCAT_MODEL).LIST_URL,\n {\n params: {pageNumber, pageSize, sortOrder, search: searchKeyword},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dataService = new this();\n await dataService.populateFromDTO(item);\n return dataService;\n })\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n public toDTO(): DataServiceDTO {\n return {\n ...super.toDTO(),\n ...(this.DataServiceID && {DataServiceID: this.DataServiceID}),\n EndpointURL: this.EndpointURL,\n EndpointDescription: this.EndpointDescription,\n };\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n\n const dataServiceDTO = dto as DataServiceDTO;\n dataServiceDTO.DataServiceID &&\n (this.DataServiceID = asID(dataServiceDTO.DataServiceID));\n dataServiceDTO.EndpointURL &&\n (this.EndpointURL = dataServiceDTO.EndpointURL);\n dataServiceDTO.EndpointDescription &&\n (this.EndpointDescription = dataServiceDTO.EndpointDescription);\n }\n\n get dataServiceID(): IDType {\n return this.DataServiceID;\n }\n\n get endpointURL(): string {\n return this.EndpointURL;\n }\n set endpointURL(value: string) {\n this.EndpointURL = value;\n }\n\n get endpointDescription(): string {\n return this.EndpointDescription;\n }\n set endpointDescription(value: string) {\n this.EndpointDescription = value;\n }\n}\n\nexport default DataService;\n","import axios from \"axios\";\nimport {\n IndexOutOfBoundsError,\n InvalidTypeError,\n UnexpectedResponseFormatError,\n} from \"../../core/error\";\nimport {\n IDType,\n PaginatedResponse,\n SortOrder,\n asID,\n asIDs,\n} from \"../../core/type\";\nimport {destroy, handleAxiosError} from \"../../core/util\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport DCAT_RESOURCE, {DCAT_RESOURCE_DTO} from \"./dcatResource\";\n\nimport Distribution from \"./distribution\";\n\nexport interface DatasetDTO extends DCAT_RESOURCE_DTO {\n DatasetID?: string;\n InSeriesID?: string;\n FirstID?: string;\n PreviousID?: string;\n NextID?: string;\n LastID?: string;\n Frequency?: string;\n SpatialResolutionInMeters?: number;\n TemporalResolution?: string;\n Spatial?: string;\n Temporal?: string;\n WasGeneratedBy?: string;\n\n DistributionIDs?: string[]; // Distribution is always returned in API\n}\n/**\n * Represents a Dataset Data Transfer Object (DTO).\n */\nclass Dataset extends DCAT_RESOURCE {\n private DatasetID: IDType;\n private InSeriesID: IDType;\n private FirstID: IDType;\n private PreviousID: IDType;\n private NextID: IDType;\n private LastID: IDType;\n private Frequency: string;\n private SpatialResolutionInMeters: number;\n private TemporalResolution: string;\n private Spatial: string;\n private Temporal: string;\n private WasGeneratedBy: string;\n\n private DistributionIDs: IDType[];\n private Distributions: Distribution[];\n\n /**\n * Initializes or updates the API_URL and LIST_URL for Dataset.\n *\n * @static\n * @param {string} url - The base URL for the dataset API.\n */\n static configureAPIURL(url: string) {\n Dataset.API_URL = `${url}/dataset`;\n Dataset.LIST_URL = `${Dataset.API_URL}/list`;\n }\n\n static async listUserDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC\n ): Promise<PaginatedResponse<Dataset>> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = Dataset.LIST_URL.replace(/\\/list$/, \"/user/list\");\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n \"Content-Type\": \"application/json\",\n ...(Dataset.BEARER_TOKEN && {\n Authorization: `Bearer ${Dataset.BEARER_TOKEN}`,\n }),\n },\n params: {pageNumber, pageSize, sortOrder},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dataset = new Dataset();\n await dataset.populateFromDTO(item);\n return dataset;\n })\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async getRDF(id: string, depth: number = 1): Promise<string> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = `${Dataset.API_URL}/rdf`;\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n Accept: \"text/turtle\",\n ...(Dataset.BEARER_TOKEN && {\n Authorization: `Bearer ${Dataset.BEARER_TOKEN}`,\n }),\n },\n params: {id, depth},\n responseType: \"text\",\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (typeof response.data === \"string\") {\n return response.data;\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async searchDBRecords(\n searchKeyword: string,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC\n ): Promise<PaginatedResponse<Dataset>> {\n if (!searchKeyword || !searchKeyword.trim()) {\n return this.listDBRecords(pageNumber, pageSize, sortOrder);\n }\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n let response: any;\n try {\n response = await axios.get(\n (this.prototype.constructor as typeof DCAT_MODEL).LIST_URL,\n {\n params: {pageNumber, pageSize, sortOrder, search: searchKeyword},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dataset = new this();\n await dataset.populateFromDTO(item);\n return dataset;\n })\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n public toDTO(): DatasetDTO {\n return {\n ...super.toDTO(),\n\n Frequency: this.Frequency,\n SpatialResolutionInMeters: this.SpatialResolutionInMeters,\n TemporalResolution: this.TemporalResolution,\n Spatial: this.Spatial,\n Temporal: this.Temporal,\n WasGeneratedBy: this.WasGeneratedBy,\n };\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const datasetDTO = dto as DatasetDTO;\n datasetDTO.DatasetID && (this.DatasetID = asID(datasetDTO.DatasetID));\n datasetDTO.InSeriesID && (this.InSeriesID = asID(datasetDTO.InSeriesID));\n datasetDTO.Frequency && (this.Frequency = datasetDTO.Frequency);\n datasetDTO.SpatialResolutionInMeters &&\n (this.SpatialResolutionInMeters = datasetDTO.SpatialResolutionInMeters);\n datasetDTO.TemporalResolution &&\n (this.TemporalResolution = datasetDTO.TemporalResolution);\n datasetDTO.Spatial && (this.Spatial = datasetDTO.Spatial);\n datasetDTO.Temporal && (this.Temporal = datasetDTO.Temporal);\n datasetDTO.WasGeneratedBy &&\n (this.WasGeneratedBy = datasetDTO.WasGeneratedBy);\n\n datasetDTO.FirstID && (this.FirstID = asID(datasetDTO.FirstID));\n datasetDTO.PreviousID && (this.PreviousID = asID(datasetDTO.PreviousID));\n datasetDTO.NextID && (this.NextID = asID(datasetDTO.NextID));\n datasetDTO.LastID && (this.LastID = asID(datasetDTO.LastID));\n\n await this.populateDistributionFromDTO(dto);\n }\n\n public async populateDistributionFromDTO(dto: DatasetDTO): Promise<void> {\n if (dto.DistributionIDs) {\n this.DistributionIDs = dto.DistributionIDs.map((stringID) =>\n asID(stringID)\n );\n this.Distributions = await Promise.all(\n dto.DistributionIDs.map(async (distributionID: IDType) => {\n return await Distribution.getDBRecord(distributionID);\n })\n );\n }\n }\n\n public static async syncToCurrentHub(dataset: Dataset): Promise<void> {\n try {\n const checkExisting = await Dataset.getDBRecordByAssetID(\n asID(dataset.assetID)\n );\n if (checkExisting) {\n checkExisting.populateToSync(dataset);\n await checkExisting.updateDBRecord();\n }\n } catch (error: any) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n const newDataset = new Dataset();\n newDataset.populateToSync(dataset);\n await newDataset.createDBRecord();\n } else {\n throw error;\n }\n }\n }\n\n public populateToSync(source: Dataset): void {\n const excludedKeys = new Set([\n \"ID\",\n \"DatasetID\",\n \"IsVersionOf\",\n \"PreviousVersionID\",\n \"NextVersionID\",\n \"VersionInfos\",\n \"InSeriesID\",\n \"FirstID\",\n \"PreviousID\",\n \"NextID\",\n \"LastID\",\n \"DistributionIDs\",\n ]);\n\n for (const key in source as any) {\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue;\n if (key === \"Distributions\") continue;\n if (excludedKeys.has(key)) continue;\n const value = (source as any)[key];\n if (value !== undefined) {\n (this as any)[key] = value;\n }\n }\n // Handle distributions separately so that we can preserve identity fields\n // of existing distributions while syncing other fields, and create new\n // distributions for any additional ones in the source.\n const sourceDistributions = (source as any).Distributions as\n | Distribution[]\n | undefined;\n if (!sourceDistributions || sourceDistributions.length === 0) {\n return;\n }\n\n this.Distributions = [];\n\n for (let i = 0; i < sourceDistributions.length; i++) {\n const srcDist = sourceDistributions[i];\n const targetDist = new Distribution();\n targetDist.populateToSync(srcDist);\n this.Distributions.push(targetDist);\n }\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n const distributions = this.Distributions;\n await super.createDBRecord();\n distributions && (this.Distributions = distributions);\n if (this.Distributions && this.Distributions.length != 0) {\n for (const distribution of this.Distributions) {\n distribution.isDistributionOf = this.DatasetID;\n await distribution.createDBRecord();\n if (!this.DistributionIDs) {\n this.DistributionIDs = [];\n }\n this.DistributionIDs.push(asID(distribution.id));\n }\n }\n }\n\n private async deleteNotMaintainedDistributions() {\n if (this.DistributionIDs && this.DistributionIDs.length != 0) {\n const existingIDs = this.DistributionIDs;\n const maintainedIDs = asIDs(\n this.Distributions.map((distribution) => distribution.id).filter(\n (id) => id !== undefined\n )\n );\n const scheduledToDeletedIDs = existingIDs.filter(\n (id) => !maintainedIDs.includes(id)\n );\n const scheduledToDeletedDistributions = await Promise.all(\n scheduledToDeletedIDs.map(async (ID) => {\n return await Distribution.getDBRecord(ID);\n })\n );\n await Promise.all(\n scheduledToDeletedDistributions.map(async (distribution) => {\n await distribution.deleteDBRecord();\n })\n );\n this.DistributionIDs = maintainedIDs;\n }\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const distributions = this.Distributions;\n await super.updateDBRecord();\n distributions && (this.Distributions = distributions);\n if (this.Distributions) {\n for (const distribution of this.Distributions) {\n distribution.isDistributionOf = this.DatasetID;\n if (distribution.id) {\n await distribution.updateDBRecord();\n } else {\n await distribution.createDBRecord();\n if (!this.DistributionIDs) {\n this.DistributionIDs = [];\n }\n this.DistributionIDs.push(asID(distribution.id));\n }\n }\n await this.deleteNotMaintainedDistributions();\n }\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n if (this.Distributions && this.Distributions.length != 0) {\n for (let i = 0; i < this.Distributions.length; i++) {\n if (this.Distributions[i].hasDBRecord()) {\n await this.Distributions[i].deleteDBRecord();\n }\n destroy(this.Distributions[i]);\n }\n }\n await super.deleteDBRecord();\n }\n\n public get distributions(): Distribution[] {\n return this.Distributions;\n }\n\n public getDistributionUsingIndex(index: number): Distribution {\n if (index < 0 || index >= this.Distributions.length) {\n throw new IndexOutOfBoundsError(index);\n }\n return this.Distributions[index];\n }\n\n public appendDistribution(distribution: Distribution) {\n if (!this.Distributions) {\n this.Distributions = [];\n }\n if (distribution instanceof Distribution) {\n this.Distributions.push(distribution);\n } else {\n throw new InvalidTypeError(distribution, \"Distribution\");\n }\n }\n\n /**\n * Creates and adds a new distribution to the dataset.\n * @returns {Distribution} The newly created distribution.\n */\n public createDistribution(): Distribution {\n if (!this.Distributions) {\n this.Distributions = [];\n }\n const newDistribution = new Distribution();\n this.Distributions.push(newDistribution);\n return newDistribution;\n }\n\n public removeDistributionUsingIndex(index: number) {\n if (index < 0 || index >= this.Distributions.length) {\n throw new IndexOutOfBoundsError(index);\n }\n this.Distributions.splice(index, 1);\n }\n\n public get datasetID(): IDType {\n return this.DatasetID;\n }\n\n public get inSeriesID(): IDType {\n return this.InSeriesID;\n }\n\n public get firstID(): IDType {\n return this.FirstID;\n }\n\n public get previousID(): IDType {\n return this.PreviousID;\n }\n\n public get nextID(): IDType {\n return this.NextID;\n }\n\n public get lastID(): IDType {\n return this.LastID;\n }\n\n public get frequency(): string {\n return this.Frequency;\n }\n public set frequency(value: string) {\n this.Frequency = value;\n }\n\n public get spatialResolutionInMeters(): number {\n return this.SpatialResolutionInMeters;\n }\n public set spatialResolutionInMeters(value: number) {\n this.SpatialResolutionInMeters = value;\n }\n\n public get temporalResolution(): string {\n return this.TemporalResolution;\n }\n public set temporalResolution(value: string) {\n this.TemporalResolution = value;\n }\n\n public get spatial(): string {\n return this.Spatial;\n }\n public set spatial(value: string) {\n this.Spatial = value;\n }\n\n public get temporal(): string {\n return this.Temporal;\n }\n public set temporal(value: string) {\n this.Temporal = value;\n }\n\n public get wasGeneratedBy(): string {\n return this.WasGeneratedBy;\n }\n public set wasGeneratedBy(value: string) {\n this.WasGeneratedBy = value;\n }\n}\n\nexport default Dataset;\n","import axios from \"axios\";\nimport {\n IndexOutOfBoundsError,\n InvalidTypeError,\n NotInitializedError,\n NotRecordedArgumentError,\n SwitchSameIndexError,\n UnexpectedResponseFormatError,\n} from \"../../core/error\";\nimport {\n IDType,\n PaginatedResponse,\n SortOrder,\n asID,\n asIDs,\n} from \"../../core/type\";\nimport {destroy, handleAxiosError} from \"../../core/util\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport Dataset from \"./dataset\";\nimport DCAT_RESOURCE, {DCAT_RESOURCE_DTO} from \"./dcatResource\";\n\ninterface DatasetSeriesDTO extends DCAT_RESOURCE_DTO {\n DatasetSeriesID?: string;\n InSeriesID?: string;\n Frequency?: string;\n SpatialResolutionInMeters?: number;\n TemporalResolution?: string;\n Spatial?: string;\n Temporal?: string;\n WasGeneratedBy?: string;\n\n SeriesMemberIDs?: string[];\n}\n\n/**\n * Represents a series of datasets.\n */\nclass DatasetSeries extends DCAT_RESOURCE {\n private DatasetSeriesID: IDType;\n private InSeriesID: IDType;\n private Frequency: string;\n private SpatialResolutionInMeters: number;\n private TemporalResolution: string;\n private Spatial: string;\n private Temporal: string;\n private WasGeneratedBy: string;\n\n private SeriesMembers: Dataset[];\n private SeriesMemberIDs: IDType[];\n\n public static async syncToCurrentHub(\n datasetSeries: DatasetSeries,\n ): Promise<void> {\n try {\n const checkExisting = await DatasetSeries.getDBRecordByAssetID(\n asID(datasetSeries.assetID),\n );\n if (checkExisting) {\n await checkExisting.populateToSync(datasetSeries);\n await checkExisting.updateDBRecord();\n }\n } catch (error: any) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n const newDatasetSeries = new DatasetSeries();\n await newDatasetSeries.populateToSync(datasetSeries);\n await newDatasetSeries.createDBRecord();\n } else {\n throw error;\n }\n }\n }\n\n /**\n * Populates this instance with values from the given DatasetSeries, except for:\n * - DB identity / temporal fields (ID, IRI, Issued, Modified, CreatedAt, UpdatedAt)\n * - Version/lineage fields (IsVersionOf, PreviousVersionID, NextVersionID, VersionInfos)\n * - Series identity fields (DatasetSeriesID, InSeriesID)\n * - Fields explicitly set to `undefined` on the source instance\n *\n * Additionally, when SeriesMembers are present on the source, this method\n * resolves each member via Dataset.getDBRecordByAssetID (by AssetID) and\n * replaces this.SeriesMemberIDs with the resolved IDs.\n */\n public async populateToSync(source: DatasetSeries): Promise<void> {\n const excludedKeys = new Set([\n \"ID\",\n \"IsVersionOf\",\n \"PreviousVersionID\",\n \"NextVersionID\",\n \"VersionInfos\",\n \"DatasetSeriesID\",\n \"InSeriesID\",\n ]);\n\n for (const key in source as any) {\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue;\n if (key === \"SeriesMembers\") continue;\n if (excludedKeys.has(key)) continue;\n const value = (source as any)[key];\n if (value !== undefined) {\n (this as any)[key] = value;\n }\n }\n\n this.SeriesMembers = [];\n\n const sourceMembers = (source as any).SeriesMembers as\n | Dataset[]\n | undefined;\n if (!sourceMembers || sourceMembers.length === 0) {\n return;\n }\n\n const resolvedIDs: IDType[] = [];\n for (const member of sourceMembers) {\n if (!member) continue;\n const assetIDStr = member.assetID;\n if (!assetIDStr) continue;\n const assetID = asID(assetIDStr);\n // Prefer existing record by AssetID; if not found, create a new one.\n try {\n const existing = await Dataset.getDBRecordByAssetID(assetID);\n if (existing) {\n existing.populateToSync(member);\n await existing.updateDBRecord();\n resolvedIDs.push(existing.id);\n }\n } catch (error: any) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n const newMember = new Dataset();\n newMember.populateToSync(member);\n await newMember.createDBRecord();\n resolvedIDs.push(newMember.id);\n } else {\n throw error;\n }\n }\n }\n this.SeriesMemberIDs = resolvedIDs;\n }\n\n /**\n * Initializes or updates the API_URL and LIST_URL for Dataset.\n *\n * @static\n * @param {string} url - The base URL for the dataset API.\n */\n static configureAPIURL(url: string) {\n DatasetSeries.API_URL = `${url}/datasetseries`;\n DatasetSeries.LIST_URL = `${DatasetSeries.API_URL}/list`;\n }\n\n static async getRDF(id: string, depth: number = 1): Promise<string> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = `${DatasetSeries.API_URL}/rdf`;\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n Accept: \"text/turtle\",\n ...(DatasetSeries.BEARER_TOKEN && {\n Authorization: `Bearer ${DatasetSeries.BEARER_TOKEN}`,\n }),\n },\n params: {id, depth},\n responseType: \"text\",\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (typeof response.data === \"string\") {\n return response.data;\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async listUserDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ): Promise<PaginatedResponse<DatasetSeries>> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = DatasetSeries.LIST_URL.replace(/\\/list$/, \"/user/list\");\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n \"Content-Type\": \"application/json\",\n ...(DatasetSeries.BEARER_TOKEN && {\n Authorization: `Bearer ${DatasetSeries.BEARER_TOKEN}`,\n }),\n },\n params: {pageNumber, pageSize, sortOrder},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const datasetSeries = new DatasetSeries();\n await datasetSeries.populateFromDTO(item);\n return datasetSeries;\n }),\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async searchDBRecords(\n searchKeyword: string,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ): Promise<PaginatedResponse<DatasetSeries>> {\n if (!searchKeyword || !searchKeyword.trim()) {\n return this.listDBRecords(pageNumber, pageSize, sortOrder);\n }\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n let response: any;\n try {\n response = await axios.get(\n (this.prototype.constructor as typeof DCAT_MODEL).LIST_URL,\n {\n params: {pageNumber, pageSize, sortOrder, search: searchKeyword},\n },\n );\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const datasetSeries = new this();\n await datasetSeries.populateFromDTO(item);\n return datasetSeries;\n }),\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n public toDTO(): DatasetSeriesDTO {\n const result = {\n ...super.toDTO(),\n\n ...(this.DatasetSeriesID && {DatasetSeriesID: this.DatasetSeriesID}),\n ...(this.InSeriesID && {InSeriesID: this.InSeriesID}),\n Frequency: this.Frequency,\n SpatialResolutionInMeters: this.SpatialResolutionInMeters,\n TemporalResolution: this.TemporalResolution,\n Spatial: this.Spatial,\n Temporal: this.Temporal,\n WasGeneratedBy: this.WasGeneratedBy,\n ...(this.SeriesMemberIDs && {SeriesMemberIDs: this.SeriesMemberIDs}),\n };\n return result;\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const datasetSeriesDTO = dto as DatasetSeriesDTO;\n datasetSeriesDTO.DatasetSeriesID &&\n (this.DatasetSeriesID = asID(datasetSeriesDTO.DatasetSeriesID));\n datasetSeriesDTO.InSeriesID &&\n (this.InSeriesID = asID(datasetSeriesDTO.InSeriesID));\n datasetSeriesDTO.Frequency && (this.Frequency = datasetSeriesDTO.Frequency);\n datasetSeriesDTO.SpatialResolutionInMeters &&\n (this.SpatialResolutionInMeters =\n datasetSeriesDTO.SpatialResolutionInMeters);\n datasetSeriesDTO.TemporalResolution &&\n (this.TemporalResolution = datasetSeriesDTO.TemporalResolution);\n datasetSeriesDTO.Spatial && (this.Spatial = datasetSeriesDTO.Spatial);\n datasetSeriesDTO.Temporal && (this.Temporal = datasetSeriesDTO.Temporal);\n datasetSeriesDTO.WasGeneratedBy &&\n (this.WasGeneratedBy = datasetSeriesDTO.WasGeneratedBy);\n\n await this.populateSeriesMembersFromDTO(datasetSeriesDTO);\n }\n\n public async populateSeriesMembersFromDTO(\n dto: DatasetSeriesDTO,\n ): Promise<void> {\n this.SeriesMembers = [];\n if (dto.SeriesMemberIDs && dto.SeriesMemberIDs.length != 0) {\n this.SeriesMemberIDs = asIDs(dto.SeriesMemberIDs);\n if (this.SeriesMemberIDs && this.SeriesMemberIDs.length != 0) {\n for (const seriesMemberID of this.SeriesMemberIDs) {\n const seriesMember = await Dataset.getDBRecord(seriesMemberID);\n if (seriesMember) {\n this.SeriesMembers.push(seriesMember);\n }\n }\n }\n }\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n if (this.SeriesMembers) {\n for (let i = 0; i < this.SeriesMembers.length; i++) {\n destroy(this.SeriesMembers[i]);\n }\n }\n await super.deleteDBRecord();\n }\n\n public appendSeriesMember(dataset: Dataset) {\n if (!this.SeriesMemberIDs) {\n this.SeriesMemberIDs = [];\n }\n if (!(dataset instanceof Dataset)) {\n throw new InvalidTypeError(dataset, \"Dataset\");\n }\n if (!dataset.id) {\n throw new NotRecordedArgumentError(dataset);\n }\n this.SeriesMemberIDs.push(dataset.id);\n }\n\n public switchSeriesMembers(index1: number, index2: number) {\n if (!this.SeriesMemberIDs || this.SeriesMemberIDs.length === 0) {\n throw new NotInitializedError(\"SeriesMemberIDs\");\n }\n if (index1 < 0 || index1 >= this.SeriesMemberIDs.length) {\n throw new IndexOutOfBoundsError(index1);\n }\n if (index2 < 0 || index2 >= this.SeriesMemberIDs.length) {\n throw new IndexOutOfBoundsError(index2);\n }\n if (index1 === index2) {\n throw new SwitchSameIndexError(index1);\n }\n\n const temp = this.SeriesMemberIDs[index1];\n this.SeriesMemberIDs[index1] = this.SeriesMemberIDs[index2];\n this.SeriesMemberIDs[index2] = temp;\n }\n\n public removeSeriesMember(index: number) {\n if (!this.SeriesMemberIDs || this.SeriesMemberIDs.length === 0) {\n throw new NotInitializedError(\"SeriesMemberIDs\");\n }\n if (index < 0 || index >= this.SeriesMemberIDs.length) {\n throw new IndexOutOfBoundsError(index);\n }\n\n this.SeriesMemberIDs.splice(index, 1);\n if (this.SeriesMembers && index < this.SeriesMembers.length) {\n this.SeriesMembers.splice(index, 1);\n }\n }\n\n public get datasetSeriesID(): IDType {\n return this.DatasetSeriesID;\n }\n public get seriesMemberIDs(): IDType[] {\n return this.SeriesMemberIDs;\n }\n public get seriesMembers(): Dataset[] {\n return this.SeriesMembers;\n }\n\n public get frequency(): string {\n return this.Frequency;\n }\n public set frequency(value: string) {\n this.Frequency = value;\n }\n\n public get spatialResolutionInMeters(): number {\n return this.SpatialResolutionInMeters;\n }\n public set spatialResolutionInMeters(value: number) {\n this.SpatialResolutionInMeters = value;\n }\n\n public get temporalResolution(): string {\n return this.TemporalResolution;\n }\n public set temporalResolution(value: string) {\n this.TemporalResolution = value;\n }\n\n public get spatial(): string {\n return this.Spatial;\n }\n public set spatial(value: string) {\n this.Spatial = value;\n }\n\n public get temporal(): string {\n return this.Temporal;\n }\n public set temporal(value: string) {\n this.Temporal = value;\n }\n\n public get wasGeneratedBy(): string {\n return this.WasGeneratedBy;\n }\n public set wasGeneratedBy(value: string) {\n this.WasGeneratedBy = value;\n }\n}\n\nexport default DatasetSeries;\n","import {InvalidTypeError, NotRecordedYetError} from \"../../core/error\";\nimport {\n asID,\n ExtraMetadataType,\n IDType,\n MultiLanguageField,\n MultiLanguageKeywords,\n} from \"../../core/type\";\nimport ThumbnailFile from \"../../SODAS_SDK_FILE/thumbnailFile\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\nimport VersionInfo, {VersionInfoDTO} from \"./versionInfo\";\n\nexport interface DCAT_RESOURCE_DTO extends DCAT_MODEL_DTO {\n //ResourceType is always determined in backend.\n ResourceType?: string;\n\n AssetID?: string;\n DatahubID?: string;\n ThumbnailURL?: string;\n AccessRights?: string;\n Status?: string;\n VersionNotes?: string;\n Version?: string;\n IsVersionOf?: string;\n PreviousVersionID?: string;\n NextVersionID?: string;\n ContactPoint?: string;\n KeywordML?: MultiLanguageKeywords; // Adjust to specific type if available\n LandingPage?: string;\n Theme?: string;\n ConformsTo?: string;\n Creator?: string;\n DescriptionML?: any; // Adjust to specific type if available\n Identifier?: string;\n IsReferencedBy?: any[]; // Adjust to specific type if available\n Language?: any[]; // Adjust to specific type if available\n License?: string;\n Publisher?: string;\n Rights?: any[];\n TitleML?: MultiLanguageField; // Adjust to specific type if available\n Type?: string;\n HasPolicy?: any[];\n IssuerID?: string;\n ExtraMetadata?: ExtraMetadataType;\n\n VersionInfo?: VersionInfoDTO[];\n}\n\nabstract class DCAT_RESOURCE extends DCAT_MODEL {\n protected Thumbnail: ThumbnailFile;\n\n private ResourceType: string;\n\n private AssetID: IDType;\n private DatahubID: IDType;\n private ThumbnailURL: string;\n private AccessRights: string;\n private Status: string;\n private VersionNotes: string;\n private Version: string;\n private IsVersionOf: IDType;\n private PreviousVersionID: IDType;\n private NextVersionID: IDType;\n private ContactPoint: string;\n private KeywordML: MultiLanguageKeywords;\n private LandingPage: string;\n private Theme: string;\n private ConformsTo: string;\n private Creator: string;\n private DescriptionML: MultiLanguageField;\n private Identifier: string;\n private IsReferencedBy: any[];\n private Language: any[];\n private License: string;\n private Publisher: string;\n private Rights: any[];\n private TitleML: MultiLanguageField;\n private Type: string;\n private HasPolicy: any[];\n private IssuerID: string;\n private ExtraMetadata: ExtraMetadataType;\n\n private VersionInfos: VersionInfo[];\n\n public toDTO(): DCAT_RESOURCE_DTO {\n return {\n ...super.toDTO(),\n AssetID: this.AssetID,\n DatahubID: this.DatahubID,\n ThumbnailURL: this.ThumbnailURL,\n AccessRights: this.AccessRights,\n Status: this.Status,\n VersionNotes: this.VersionNotes,\n Version: this.Version,\n ...(this.IsVersionOf && {IsVersionOf: this.IsVersionOf}),\n ...(this.PreviousVersionID && {\n PreviousVersionID: this.PreviousVersionID,\n }),\n ...(this.NextVersionID && {NextVersionID: this.NextVersionID}),\n ContactPoint: this.ContactPoint,\n KeywordML: this.KeywordML,\n LandingPage: this.LandingPage,\n Theme: this.Theme,\n ConformsTo: this.ConformsTo,\n Creator: this.Creator,\n DescriptionML: this.DescriptionML,\n Identifier: this.Identifier,\n IsReferencedBy: this.IsReferencedBy,\n Language: this.Language,\n License: this.License,\n Publisher: this.Publisher,\n Rights: this.Rights,\n TitleML: this.TitleML,\n Type: this.Type,\n HasPolicy: this.HasPolicy,\n IssuerID: this.IssuerID,\n ExtraMetadata: this.ExtraMetadata,\n };\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n\n const dcatResourceDTO = dto as DCAT_RESOURCE_DTO;\n\n dcatResourceDTO.ResourceType &&\n (this.ResourceType = dcatResourceDTO.ResourceType);\n\n dcatResourceDTO.AssetID && (this.AssetID = asID(dcatResourceDTO.AssetID));\n dcatResourceDTO.DatahubID &&\n (this.DatahubID = asID(dcatResourceDTO.DatahubID));\n dcatResourceDTO.ThumbnailURL &&\n (this.ThumbnailURL = dcatResourceDTO.ThumbnailURL);\n dcatResourceDTO.AccessRights &&\n (this.AccessRights = dcatResourceDTO.AccessRights);\n dcatResourceDTO.Status && (this.Status = dcatResourceDTO.Status);\n dcatResourceDTO.VersionNotes &&\n (this.VersionNotes = dcatResourceDTO.VersionNotes);\n dcatResourceDTO.Version && (this.Version = dcatResourceDTO.Version);\n dcatResourceDTO.IsVersionOf &&\n (this.IsVersionOf = asID(dcatResourceDTO.IsVersionOf));\n dcatResourceDTO.PreviousVersionID &&\n (this.PreviousVersionID = asID(dcatResourceDTO.PreviousVersionID));\n dcatResourceDTO.NextVersionID &&\n (this.NextVersionID = asID(dcatResourceDTO.NextVersionID));\n dcatResourceDTO.ContactPoint &&\n (this.ContactPoint = dcatResourceDTO.ContactPoint);\n dcatResourceDTO.KeywordML && (this.KeywordML = dcatResourceDTO.KeywordML);\n dcatResourceDTO.LandingPage &&\n (this.LandingPage = dcatResourceDTO.LandingPage);\n dcatResourceDTO.Theme && (this.Theme = dcatResourceDTO.Theme);\n dcatResourceDTO.ConformsTo &&\n (this.ConformsTo = dcatResourceDTO.ConformsTo);\n dcatResourceDTO.Creator && (this.Creator = dcatResourceDTO.Creator);\n dcatResourceDTO.DescriptionML &&\n (this.DescriptionML = dcatResourceDTO.DescriptionML);\n dcatResourceDTO.Identifier &&\n (this.Identifier = dcatResourceDTO.Identifier);\n dcatResourceDTO.IsReferencedBy &&\n (this.IsReferencedBy = dcatResourceDTO.IsReferencedBy);\n dcatResourceDTO.Language && (this.Language = dcatResourceDTO.Language);\n dcatResourceDTO.License && (this.License = dcatResourceDTO.License);\n dcatResourceDTO.Publisher && (this.Publisher = dcatResourceDTO.Publisher);\n dcatResourceDTO.Rights && (this.Rights = dcatResourceDTO.Rights);\n dcatResourceDTO.TitleML && (this.TitleML = dcatResourceDTO.TitleML);\n dcatResourceDTO.Type && (this.Type = dcatResourceDTO.Type);\n dcatResourceDTO.HasPolicy && (this.HasPolicy = dcatResourceDTO.HasPolicy);\n dcatResourceDTO.IssuerID && (this.IssuerID = dcatResourceDTO.IssuerID);\n dcatResourceDTO.ExtraMetadata &&\n (this.ExtraMetadata = dcatResourceDTO.ExtraMetadata);\n await this.populateVersionInfoFromDTO(dcatResourceDTO);\n }\n\n public async populateVersionInfoFromDTO(\n dto: DCAT_RESOURCE_DTO\n ): Promise<void> {\n if (dto.VersionInfo && dto.VersionInfo.length != 0) {\n this.VersionInfos = await Promise.all(\n dto.VersionInfo.map(async (veresionInfoDTO: VersionInfoDTO) => {\n const versionInfo = new VersionInfo();\n await versionInfo.populateFromDTO(veresionInfoDTO);\n return versionInfo;\n })\n );\n }\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n if (!this.hasDBRecord() && this.Thumbnail) {\n await this.Thumbnail.upload();\n this.ThumbnailURL = this.Thumbnail.getDownloadURL();\n }\n await super.createDBRecord();\n delete this.Thumbnail;\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n if (this.hasDBRecord() && this.Thumbnail) {\n await this.Thumbnail.upload();\n this.ThumbnailURL = this.Thumbnail.getDownloadURL();\n }\n await super.updateDBRecord();\n delete this.Thumbnail;\n }\n\n public setThumbnailForBrowser(file: File) {\n if (!this.Thumbnail) {\n this.Thumbnail = new ThumbnailFile();\n }\n this.Thumbnail.setFileForBrowser(file);\n }\n\n public setThumbnailForNode(thumbnailPath: string) {\n if (!this.Thumbnail) {\n this.Thumbnail = new ThumbnailFile();\n }\n this.Thumbnail.setFileForNode(thumbnailPath);\n }\n\n get assetID(): string {\n return this.AssetID;\n }\n\n get versionInfos(): VersionInfo[] {\n return this.VersionInfos;\n }\n\n get isVersionOf(): string {\n return this.IsVersionOf;\n }\n\n get previousVersionID(): string {\n return this.PreviousVersionID;\n }\n\n get nextVersionID(): string {\n return this.NextVersionID;\n }\n\n set previousVersion(previousVersion: DCAT_RESOURCE) {\n if (!(previousVersion instanceof DCAT_RESOURCE)) {\n throw new InvalidTypeError(previousVersion, \"DCAT_RESOURCE\");\n }\n if (!previousVersion.hasDBRecord()) {\n throw new NotRecordedYetError(previousVersion);\n }\n this.PreviousVersionID = previousVersion.id;\n }\n\n get resourceType(): string {\n return this.ResourceType;\n }\n\n get datahubID(): string {\n return this.DatahubID;\n }\n\n get thumbnailURL(): string {\n return this.ThumbnailURL;\n }\n\n get accessRights(): string {\n return this.AccessRights;\n }\n set accessRights(value: string) {\n this.AccessRights = value;\n }\n\n get status(): string {\n return this.Status;\n }\n set status(value: string) {\n this.Status = value;\n }\n\n get versionNotes(): string {\n return this.VersionNotes;\n }\n set versionNotes(value: string) {\n this.VersionNotes = value;\n }\n\n get version(): string {\n return this.Version;\n }\n set version(value: string) {\n this.Version = value;\n }\n\n get contactPoint(): string {\n return this.ContactPoint;\n }\n set contactPoint(value: string) {\n this.ContactPoint = value;\n }\n\n get landingPage(): string {\n return this.LandingPage;\n }\n set landingPage(value: string) {\n this.LandingPage = value;\n }\n\n get theme(): string {\n return this.Theme;\n }\n set theme(value: string) {\n this.Theme = value;\n }\n\n get conformsTo(): string {\n return this.ConformsTo;\n }\n set conformsTo(value: string) {\n this.ConformsTo = value;\n }\n\n get creator(): string {\n return this.Creator;\n }\n set creator(value: string) {\n this.Creator = value;\n }\n\n get identifier(): string {\n return this.Identifier;\n }\n get language(): any[] {\n return this.Language;\n }\n set language(value: any[]) {\n this.Language = value;\n }\n\n get license(): string {\n return this.License;\n }\n set license(value: string) {\n this.License = value;\n }\n\n get publisher(): string {\n return this.Publisher;\n }\n set publisher(value: string) {\n this.Publisher = value;\n }\n\n get rights(): any[] {\n return this.Rights;\n }\n set rights(value: any[]) {\n this.Rights = value;\n }\n\n get type(): string {\n return this.Type;\n }\n set type(value: string) {\n this.Type = value;\n }\n\n get hasPolicy(): any[] {\n return this.HasPolicy;\n }\n set hasPolicy(value: any[]) {\n this.HasPolicy = value;\n }\n\n get issuerID(): string {\n return this.IssuerID;\n }\n set issuerID(value: string) {\n this.IssuerID = value;\n }\n\n public setExtraMetadata(name: string, value: string) {\n if (!this.ExtraMetadata) {\n this.ExtraMetadata = {};\n }\n this.ExtraMetadata[name] = value;\n }\n\n public getExtraMetadata(name: string): string | undefined {\n if (!this.ExtraMetadata) {\n return undefined;\n }\n return this.ExtraMetadata[name];\n }\n\n public getTitle(languageCode: string = \"ko\"): string {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n return this.TitleML[languageCode];\n }\n\n public setTitle(title: string, languageCode: string = \"ko\") {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n this.TitleML[languageCode] = title;\n }\n\n public removeTitle(languageCode: string = \"ko\") {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n if (this.TitleML[languageCode]) {\n delete this.TitleML[languageCode];\n } else {\n console.warn(`Title for language code \"${languageCode}\" does not exist.`);\n }\n }\n\n public getDescription(languageCode: string = \"ko\"): string {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n return this.DescriptionML[languageCode];\n }\n\n public setDescription(title: string, languageCode: string = \"ko\") {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n this.DescriptionML[languageCode] = title;\n }\n\n public removeDescription(languageCode: string = \"ko\") {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n if (this.DescriptionML[languageCode]) {\n delete this.DescriptionML[languageCode];\n } else {\n console.warn(\n `Description for language code \"${languageCode}\" does not exist.`\n );\n }\n }\n\n public setKeywords(keywords: string[], languageCode: string = \"ko\") {\n if (!this.KeywordML) {\n this.KeywordML = {};\n }\n this.KeywordML[languageCode] = keywords;\n }\n\n public addKeyword(keyword: string, languageCode: string = \"ko\") {\n if (!this.KeywordML) {\n this.KeywordML = {};\n }\n if (!this.KeywordML[languageCode]) {\n this.KeywordML[languageCode] = [];\n }\n if (!this.KeywordML[languageCode].includes(keyword)) {\n this.KeywordML[languageCode].push(keyword);\n }\n }\n\n public removeKeyword(keyword: string, languageCode: string = \"ko\") {\n if (this.KeywordML && this.KeywordML[languageCode]) {\n this.KeywordML[languageCode] = this.KeywordML[languageCode].filter(\n (k) => k !== keyword\n );\n if (this.KeywordML[languageCode].length === 0) {\n delete this.KeywordML[languageCode]; // Remove the language entry if empty\n }\n }\n }\n\n public getKeywords(languageCode: string = \"ko\"): string[] {\n return this.KeywordML[languageCode] || [];\n }\n}\n\nexport default DCAT_RESOURCE;\n","import DataFile from \"../../SODAS_SDK_FILE/dataFile\";\nimport {IDType, MultiLanguageField, asID} from \"../../core/type\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\n\nexport interface DistributionDTO extends DCAT_MODEL_DTO {\n AccessServiceID?: string;\n AccessURL?: string;\n ByteSize?: number;\n CompressFormat?: string;\n DownloadURL?: string;\n MediaType?: string;\n PackageFormat?: string;\n SpatialResolutionInMeters?: number;\n TemporalResolution?: string;\n AccessRights?: string;\n ConformsTo?: string;\n DescriptionML?: MultiLanguageField; // Adjust to specific MultiLanguageField type if available\n Format?: string;\n License?: string;\n Rights?: any[];\n TitleML?: MultiLanguageField; // Adjust to specific MultiLanguageField type if available\n HasPolicy?: any[];\n Checksum?: string;\n\n IsDistributionOf?: string;\n}\n\nclass Distribution extends DCAT_MODEL {\n static UPLOAD_API_URL: string;\n static DOWNLOAD_API_URL: string;\n\n private UploadingData: DataFile;\n\n private IsDistributionOf: IDType;\n private AccessServiceID: IDType;\n private AccessURL: string;\n private ByteSize: number;\n private CompressFormat: string;\n private DownloadURL: string;\n private MediaType: string;\n private PackageFormat: string;\n private SpatialResolutionInMeters: number;\n private TemporalResolution: string;\n private AccessRights: string;\n private ConformsTo: string;\n private DescriptionML: MultiLanguageField;\n private Format: string;\n private License: string;\n private Rights: any[];\n private TitleML: MultiLanguageField;\n private HasPolicy: any[];\n private Checksum: string;\n\n /**\n * Populates this instance with values from the given Distribution, except for:\n * - DB identity / temporal fields (ID, IRI, Issued, Modified, CreatedAt, UpdatedAt)\n * - Fields that are explicitly set to `undefined` on the source instance\n */\n public populateToSync(source: Distribution): void {\n const excludedKeys = new Set([\"ID\", \"IsDistributionOf\", \"AccessServiceID\"]);\n\n for (const key in source as any) {\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue;\n if (excludedKeys.has(key)) continue;\n const value = (source as any)[key];\n if (value !== undefined) {\n (this as any)[key] = value;\n }\n }\n }\n\n public toDTO(): DistributionDTO {\n return {\n ...super.toDTO(),\n ...(this.IsDistributionOf && {IsDistributionOf: this.IsDistributionOf}),\n ...(this.AccessServiceID && {AccessServiceID: this.AccessServiceID}),\n AccessURL: this.AccessURL,\n ByteSize: this.ByteSize,\n CompressFormat: this.CompressFormat,\n DownloadURL: this.DownloadURL,\n MediaType: this.MediaType,\n PackageFormat: this.PackageFormat,\n SpatialResolutionInMeters: this.SpatialResolutionInMeters,\n TemporalResolution: this.TemporalResolution,\n AccessRights: this.AccessRights,\n ConformsTo: this.ConformsTo,\n DescriptionML: this.DescriptionML,\n Format: this.Format,\n License: this.License,\n Rights: this.Rights,\n TitleML: this.TitleML,\n HasPolicy: this.HasPolicy,\n Checksum: this.Checksum,\n };\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const distributionDTO = dto as DistributionDTO;\n distributionDTO.AccessServiceID &&\n (this.AccessServiceID = asID(distributionDTO.AccessServiceID));\n distributionDTO.AccessURL && (this.AccessURL = distributionDTO.AccessURL);\n distributionDTO.ByteSize && (this.ByteSize = distributionDTO.ByteSize);\n distributionDTO.CompressFormat &&\n (this.CompressFormat = distributionDTO.CompressFormat);\n distributionDTO.DownloadURL &&\n (this.DownloadURL = distributionDTO.DownloadURL);\n distributionDTO.MediaType && (this.MediaType = distributionDTO.MediaType);\n distributionDTO.PackageFormat &&\n (this.PackageFormat = distributionDTO.PackageFormat);\n distributionDTO.SpatialResolutionInMeters &&\n (this.SpatialResolutionInMeters =\n distributionDTO.SpatialResolutionInMeters);\n distributionDTO.TemporalResolution &&\n (this.TemporalResolution = distributionDTO.TemporalResolution);\n distributionDTO.AccessRights &&\n (this.AccessRights = distributionDTO.AccessRights);\n distributionDTO.ConformsTo &&\n (this.ConformsTo = distributionDTO.ConformsTo);\n distributionDTO.DescriptionML &&\n (this.DescriptionML = distributionDTO.DescriptionML);\n distributionDTO.Format && (this.Format = distributionDTO.Format);\n distributionDTO.License && (this.License = distributionDTO.License);\n distributionDTO.Rights && (this.Rights = distributionDTO.Rights);\n distributionDTO.TitleML && (this.TitleML = distributionDTO.TitleML);\n distributionDTO.HasPolicy && (this.HasPolicy = distributionDTO.HasPolicy);\n distributionDTO.Checksum && (this.Checksum = distributionDTO.Checksum);\n distributionDTO.IsDistributionOf &&\n (this.IsDistributionOf = asID(distributionDTO.IsDistributionOf));\n }\n\n /**\n * Initializes or updates the API URLs for the Distribution class.\n *\n * @static\n * @param {string} url - The base URL for the distribution API.\n */\n static configureAPIURL(url: string) {\n Distribution.API_URL = `${url}/distribution`;\n Distribution.LIST_URL = `${Distribution.API_URL}/list`;\n Distribution.UPLOAD_API_URL = `${url}/data/upload`;\n Distribution.DOWNLOAD_API_URL = `${url}/data/download`;\n }\n\n static configureBucketName(bucketName: string) {\n DataFile.configureBucketName(bucketName);\n }\n\n /**\n * Sets file information for a browser environment.\n * @param {File} file - The file object from the browser.\n */\n public setUploadingDataForBrowser(file: File) {\n if (!this.UploadingData) {\n this.UploadingData = new DataFile();\n }\n this.UploadingData.setFileForBrowser(file);\n }\n\n /**\n * Sets file information for a Node.js environment.\n * @param {string} filePath - The file path on the server.\n */\n public setUploadingDataForNode(filePath: string) {\n if (!this.UploadingData) {\n this.UploadingData = new DataFile();\n }\n this.UploadingData.setFileForNode(filePath);\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n if (!this.hasDBRecord() && this.UploadingData) {\n await this.UploadingData.upload();\n this.DownloadURL = this.UploadingData.getDownloadURL();\n }\n await super.createDBRecord();\n delete this.UploadingData;\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n if (this.hasDBRecord() && this.UploadingData) {\n await this.UploadingData.upload();\n this.DownloadURL = this.UploadingData.getDownloadURL();\n }\n await super.updateDBRecord();\n delete this.UploadingData;\n }\n\n // AccessServiceID\n public get accessServiceID(): IDType {\n return this.AccessServiceID;\n }\n\n // AccessURL\n public get accessURL(): string {\n return this.AccessURL;\n }\n public set accessURL(value: string) {\n this.AccessURL = value;\n }\n\n // ByteSize\n public get byteSize(): number {\n return this.ByteSize;\n }\n public set byteSize(value: number) {\n this.ByteSize = value;\n }\n\n // DownloadURL\n public get downloadURL(): string {\n return this.DownloadURL;\n }\n\n public set downloadURL(value: string) {\n this.DownloadURL = value;\n }\n\n // MediaType\n public get mediaType(): string {\n return this.MediaType;\n }\n\n public set mediaType(value: string) {\n this.MediaType = value;\n }\n\n // PackageFormat\n public get packageFormat(): string {\n return this.PackageFormat;\n }\n\n public set packageFormat(value: string) {\n this.PackageFormat = value;\n }\n\n // SpatialResolutionInMeters\n public get spatialResolutionInMeters(): number {\n return this.SpatialResolutionInMeters;\n }\n\n public set spatialResolutionInMeters(value: number) {\n this.SpatialResolutionInMeters = value;\n }\n\n // TemporalResolution\n public get temporalResolution(): string {\n return this.TemporalResolution;\n }\n\n public set temporalResolution(value: string) {\n this.TemporalResolution = value;\n }\n\n // AccessRights\n public get accessRights(): string {\n return this.AccessRights;\n }\n\n public set accessRights(value: string) {\n this.AccessRights = value;\n }\n\n // ConformsTo\n public get conformsTo(): string {\n return this.ConformsTo;\n }\n\n public set conformsTo(value: string) {\n this.ConformsTo = value;\n }\n\n public getTitle(languageCode: string = \"ko\"): string {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n return this.TitleML[languageCode];\n }\n\n public setTitle(title: string, languageCode: string = \"ko\") {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n this.TitleML[languageCode] = title;\n }\n\n public removeTitle(languageCode: string = \"ko\") {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n if (this.TitleML[languageCode]) {\n delete this.TitleML[languageCode];\n } else {\n console.warn(`Title for language code \"${languageCode}\" does not exist.`);\n }\n }\n\n public getDescription(languageCode: string = \"ko\"): string {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n return this.DescriptionML[languageCode];\n }\n\n public setDescription(title: string, languageCode: string = \"ko\") {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n this.DescriptionML[languageCode] = title;\n }\n\n public removeDescription(languageCode: string = \"ko\") {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n if (this.DescriptionML[languageCode]) {\n delete this.DescriptionML[languageCode];\n } else {\n console.warn(\n `Description for language code \"${languageCode}\" does not exist.`\n );\n }\n }\n\n // Format\n public get format(): string {\n return this.Format;\n }\n public set format(value: string) {\n this.Format = value;\n }\n\n // CompressFormat\n public get compressFormat(): string {\n return this.CompressFormat;\n }\n public set compressFormat(value: string) {\n this.CompressFormat = value;\n }\n\n // License\n public get license(): string {\n return this.License;\n }\n public set license(value: string) {\n this.License = value;\n }\n\n // Rights\n public get rights(): any[] {\n return this.Rights;\n }\n public set rights(value: any[]) {\n this.Rights = value;\n }\n\n public get hasPolicy(): any[] {\n return this.HasPolicy;\n }\n public set hasPolicy(value: any[]) {\n this.HasPolicy = value;\n }\n\n // Checksum\n public get checksum(): string {\n return this.Checksum;\n }\n public set checksum(value: string) {\n this.Checksum = value;\n }\n\n // IsDistributionOf\n public get isDistributionOf(): IDType {\n return this.IsDistributionOf;\n }\n public set isDistributionOf(value: string) {\n this.IsDistributionOf = asID(value);\n }\n}\n\nexport default Distribution;\n","import {\n asID,\n asIRI,\n IDType,\n IRIType,\n MultiLanguageField,\n MultiLanguageKeywords,\n} from \"../../core/type\";\nexport interface VersionInfoDTO {\n ID?: string; // ID from core.Model\n TitleML?: MultiLanguageField;\n DescriptionML?: MultiLanguageField;\n IRI?: string;\n KeywordML?: MultiLanguageKeywords;\n ResourceType?: string;\n VersionNotes?: string;\n Version?: string;\n IsVersionOf?: string; // UUID as string\n NextVersionID?: string; // UUID as string\n PreviousVersionID?: string; // UUID as string\n}\n\n/**\n * Represents version information for a resource.\n */\nclass VersionInfo {\n private ID?: IDType;\n private TitleML: MultiLanguageField;\n private DescriptionML: MultiLanguageField;\n private IRI: IRIType;\n private KeywordML: MultiLanguageKeywords;\n private ResourceType: string;\n private VersionNotes: string;\n private Version: string;\n private IsVersionOf?: string;\n private NextVersionID?: string;\n private PreviousVersionID?: string;\n\n public async populateFromDTO(dto: VersionInfoDTO): Promise<void> {\n dto.ID && (this.ID = asID(dto.ID));\n dto.TitleML && (this.TitleML = dto.TitleML);\n dto.DescriptionML && (this.DescriptionML = dto.DescriptionML);\n dto.IRI && (this.IRI = asIRI(dto.IRI));\n dto.KeywordML && (this.KeywordML = dto.KeywordML);\n dto.ResourceType && (this.ResourceType = dto.ResourceType);\n dto.VersionNotes && (this.VersionNotes = dto.VersionNotes);\n dto.Version && (this.Version = dto.Version);\n dto.IsVersionOf && (this.IsVersionOf = dto.IsVersionOf);\n dto.NextVersionID && (this.NextVersionID = dto.NextVersionID);\n dto.PreviousVersionID && (this.PreviousVersionID = dto.PreviousVersionID);\n }\n\n get id(): IDType {\n return this.ID;\n }\n\n public getTitle(languageCode: string = \"ko\"): string {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n return this.TitleML[languageCode];\n }\n\n public getDescription(languageCode: string = \"ko\"): string {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n return this.DescriptionML[languageCode];\n }\n\n get iri(): IRIType {\n return this.IRI;\n }\n\n public getKeywords(languageCode: string = \"ko\"): string[] {\n return this.KeywordML[languageCode] || [];\n }\n\n get resourceType(): string {\n return this.ResourceType;\n }\n\n get versionNotes(): string {\n return this.VersionNotes;\n }\n\n get version(): string {\n return this.Version;\n }\n\n get isVersionOf(): string {\n return this.IsVersionOf;\n }\n\n get nextVersionID(): string {\n return this.NextVersionID;\n }\n\n get previousVersionID(): string {\n return this.PreviousVersionID;\n }\n}\n\nexport default VersionInfo;\n","import axios from \"axios\";\nimport {\n DeleteRecordFailError,\n RecordNotFoundError,\n UnexpectedResponseFormatError,\n} from \"../core/error\";\nimport {IDType, PaginatedResponse, SortOrder, asID, asIRI} from \"../core/type\";\nimport {LARGE_ENOUGH_NUMBER, destroy, handleAxiosError} from \"../core/util\";\nimport SODAS_SDK_CLASS, {\n throwErrorIfAPIURLNotSetForStatic,\n} from \"./sodasSDKClass\";\n\ninterface DCAT_MODEL_STATIC<GENERIC> {\n new (): GENERIC;\n listDBRecords: typeof DCAT_MODEL.listDBRecords;\n}\nexport interface DCAT_MODEL_DTO {\n ID?: string;\n IRI?: string;\n\n Issued?: string;\n Modified?: string;\n CreatedAt?: string;\n UpdatedAt?: string;\n}\n\nabstract class DCAT_MODEL extends SODAS_SDK_CLASS {\n protected CreatedAt: Date;\n protected UpdatedAt: Date;\n\n public toDTO(): DCAT_MODEL_DTO {\n return {\n ...(this.ID && {ID: this.ID}),\n ...(this.IRI && {IRI: this.IRI}),\n ...(this.Issued && {Issued: this.Issued.toISOString()}),\n ...(this.Modified && {Modified: this.Modified.toISOString()}),\n ...(this.CreatedAt && {CreatedAt: this.CreatedAt.toISOString()}),\n ...(this.UpdatedAt && {UpdatedAt: this.UpdatedAt.toISOString()}),\n };\n }\n\n public hasDBRecord(): boolean {\n if (this.ID && this.IRI) {\n return true;\n } else {\n return false;\n }\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n dto.ID && (this.ID = asID(dto.ID));\n dto.IRI && (this.IRI = asIRI(dto.IRI));\n dto.Issued && (this.Issued = new Date(dto.Issued));\n dto.Modified && (this.Modified = new Date(dto.Modified));\n dto.CreatedAt && (this.CreatedAt = new Date(dto.CreatedAt));\n dto.UpdatedAt && (this.UpdatedAt = new Date(dto.UpdatedAt));\n }\n\n static async listDBRecords<GENERIC_DCAT_MODEL extends DCAT_MODEL>(\n this: DCAT_MODEL_STATIC<GENERIC_DCAT_MODEL>,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC\n ): Promise<PaginatedResponse<GENERIC_DCAT_MODEL>> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n let response: any;\n try {\n response = await axios.get(\n (this.prototype.constructor as typeof DCAT_MODEL).LIST_URL,\n {\n params: {pageNumber, pageSize, sortOrder},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dcatResource = new this();\n await dcatResource.populateFromDTO(item);\n return dcatResource;\n })\n );\n return {\n total: response.data.total,\n list,\n };\n } else {\n throw new UnexpectedResponseFormatError(response);\n }\n }\n\n static async getAllDBRecords<GENERIC_DCAT_MODEL extends DCAT_MODEL>(\n this: DCAT_MODEL_STATIC<GENERIC_DCAT_MODEL>\n ): Promise<GENERIC_DCAT_MODEL[]> {\n const paginatedResponse = await this.listDBRecords(1, LARGE_ENOUGH_NUMBER);\n return paginatedResponse.list;\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n const data = this.toDTO();\n const cleanData = JSON.parse(JSON.stringify(data));\n const cls = this.constructor as typeof DCAT_MODEL;\n const apiClient = axios.create({\n baseURL: cls.API_URL,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n let response: any;\n try {\n response = await apiClient.post(\"\", cleanData);\n } catch (error) {\n handleAxiosError(error);\n }\n await this.populateFromDTO(response.data);\n }\n\n public static async getDBRecord<GENERIC_DCAT_MODEL extends DCAT_MODEL>(\n this: DCAT_MODEL_STATIC<GENERIC_DCAT_MODEL>,\n ID: IDType\n ): Promise<GENERIC_DCAT_MODEL> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n const url = `${\n (this.prototype.constructor as typeof DCAT_MODEL).API_URL\n }/${ID}`;\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\"Content-Type\": \"application/json\"},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data) {\n const dcatResource = new this();\n await dcatResource.populateFromDTO(response.data);\n return dcatResource;\n } else {\n throw new RecordNotFoundError();\n }\n }\n\n static async getDBRecordByAssetID<GENERIC_DCAT_MODEL extends DCAT_MODEL>(\n this: DCAT_MODEL_STATIC<GENERIC_DCAT_MODEL>,\n assetID: IDType\n ): Promise<GENERIC_DCAT_MODEL> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n const url = `${\n (this.prototype.constructor as typeof DCAT_MODEL).API_URL\n }/asset/${assetID}`;\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\"Content-Type\": \"application/json\"},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data) {\n const dcatResource = new this();\n await dcatResource.populateFromDTO(response.data);\n return dcatResource;\n } else {\n throw new RecordNotFoundError();\n }\n }\n\n /**\n * Checks whether a DB record exists for the given AssetID and returns its ID.\n *\n * This method wraps getDBRecordByAssetID and converts a 404 response to `null`,\n * while rethrowing any other kind of error.\n */\n static async checkDBRecordOfAssetID(assetID: IDType): Promise<IDType | null> {\n try {\n const record = (await (this as any).getDBRecordByAssetID(\n assetID\n )) as DCAT_MODEL;\n return record.id;\n } catch (error: any) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n return null;\n }\n throw error;\n }\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const data = this.toDTO();\n const cleanData = JSON.parse(JSON.stringify(data));\n const cls = this.constructor as typeof DCAT_MODEL;\n const apiClient = axios.create({\n baseURL: cls.API_URL,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n let response: any;\n try {\n response = await apiClient.post(\"\", cleanData);\n } catch (error) {\n handleAxiosError(error);\n }\n await this.populateFromDTO(response.data);\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const cls = this.constructor as typeof DCAT_MODEL;\n const apiClient = axios.create({\n baseURL: `${cls.API_URL}/`,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n let response: any;\n try {\n response = await apiClient.delete(`${this.ID}`);\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.status === 204) {\n destroy(this); // Nullify the instance\n } else {\n throw new DeleteRecordFailError();\n }\n }\n\n public get createdAt(): Date {\n return this.CreatedAt;\n }\n\n public get updatedAt(): Date {\n return this.UpdatedAt;\n }\n}\n\nexport default DCAT_MODEL;\n","import axios from \"axios\";\nimport {\n NeedToImplementError,\n NeedToSetFieldError,\n NotRecordedYetError,\n} from \"../../core/error\";\nimport {\n asID,\n asIRI,\n IDType,\n IRIType,\n PaginatedResponse,\n SortOrder,\n} from \"../../core/type\";\nimport {handleAxiosError} from \"../../core/util\";\nimport GOVERNANCE_MODEL, {GOVERNANCE_MODEL_DTO} from \"../governanceClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport Vocabulary from \"./vocabulary\";\n\nexport interface TermDTO extends GOVERNANCE_MODEL_DTO {\n termIri?: string;\n vocabularyId: string;\n name: string;\n description?: string;\n}\n\nclass Term extends GOVERNANCE_MODEL {\n private TermIRI: IRIType;\n private VocabularyID: IDType;\n private Name: string;\n private Description: string;\n\n private VocabularyIRI: IRIType;\n\n static configureAPIURL(url: string): void {\n const PREFIX = \"api/v1/governance/dictionary\";\n Term.API_URL = `${url}/${PREFIX}/term`;\n Term.LIST_URL = `${Term.API_URL}/list`;\n Term.GET_URL = `${Term.API_URL}/get`;\n Term.CREATE_URL = `${Term.API_URL}/create`;\n Term.UPDATE_URL = `${Term.API_URL}/update`;\n Term.DELETE_URL = `${Term.API_URL}/remove`;\n }\n\n public toDTO(): TermDTO {\n return {\n ...super.toDTO(),\n termIri: this.TermIRI,\n vocabularyId: this.vocabularyID,\n name: this.Name,\n ...(this.Description && {description: this.Description}),\n };\n }\n\n public async populateFromFormData(data: any): Promise<void> {\n throw new NeedToImplementError();\n }\n\n public async populateFromDTO(dto: GOVERNANCE_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const termDTO = dto as TermDTO;\n this.TermIRI = asIRI(termDTO.termIri);\n this.VocabularyID = asID(termDTO.vocabularyId);\n this.Name = termDTO.name;\n termDTO.description && (this.Description = termDTO.description);\n }\n\n static async listDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n vocabularyID?: IDType\n ): Promise<PaginatedResponse<Term>> {\n throwErrorIfAPIURLNotSetForStatic(Term);\n try {\n const response = await axios.get(Term.LIST_URL, {\n params: {\n offset: (pageNumber - 1) * pageSize,\n limit: pageSize,\n ordered: sortOrder,\n vocabularyId: vocabularyID,\n },\n // headers,\n });\n return await Term.listResponseToPaginatedResponse(response);\n } catch (error) {\n handleAxiosError(error);\n }\n }\n\n public get termIRI(): IRIType {\n return this.TermIRI;\n }\n\n public set termIRI(value: string) {\n this.TermIRI = asIRI(value);\n }\n\n public setVocabulary(vocabulary: Vocabulary) {\n if (!vocabulary.hasDBRecord()) {\n throw new NotRecordedYetError(vocabulary);\n }\n this.VocabularyID = vocabulary.id;\n this.VocabularyIRI = vocabulary.iri;\n }\n\n public get vocabularyIRI(): IRIType {\n return this.VocabularyIRI;\n }\n\n public get vocabularyID(): IDType {\n return this.VocabularyID;\n }\n\n public get name(): string {\n return this.Name;\n }\n\n public set name(value: string) {\n this.Name = value;\n }\n\n public get description(): string {\n return this.Description;\n }\n\n public set description(value: string) {\n this.Description = value;\n }\n\n public setExternalTermIRIUsingName() {\n if (!this.name) {\n throw new NeedToSetFieldError(this, \"name\");\n }\n this.termIRI = `${this.VocabularyIRI}#${this.name}`;\n }\n}\n\nexport default Term;\n","import axios from \"axios\";\nimport {NamedTermNotExistError, NeedToImplementError} from \"../../core/error\";\nimport {\n asID,\n asIRI,\n IRIType,\n PaginatedResponse,\n SortOrder,\n} from \"../../core/type\";\nimport {destroy, handleAxiosError, LARGE_ENOUGH_NUMBER} from \"../../core/util\";\nimport GOVERNANCE_MODEL, {GOVERNANCE_MODEL_DTO} from \"../governanceClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport Term from \"./term\";\n\nexport interface VocabularyDTO extends GOVERNANCE_MODEL_DTO {\n namespaceIri?: string;\n original: boolean;\n prefix: string;\n name: string;\n description: string;\n}\n\nclass Vocabulary extends GOVERNANCE_MODEL {\n private NamespaceIRI: IRIType;\n private Original: boolean;\n private Prefix: string;\n private Name: string;\n private Description: string;\n\n private FetchedTermIRIs: IRIType[];\n private Terms: Term[];\n\n static configureAPIURL(url: string): void {\n const PREFIX = \"api/v1/governance/dictionary\";\n Vocabulary.API_URL = `${url}/${PREFIX}/vocabulary`;\n Vocabulary.LIST_URL = `${Vocabulary.API_URL}/list`;\n Vocabulary.GET_URL = `${Vocabulary.API_URL}/get`;\n Vocabulary.CREATE_URL = `${Vocabulary.API_URL}/create`;\n Vocabulary.UPDATE_URL = `${Vocabulary.API_URL}/update`;\n Vocabulary.DELETE_URL = `${Vocabulary.API_URL}/remove`;\n }\n\n public toDTO(): VocabularyDTO {\n return {\n ...super.toDTO(),\n ...(this.NamespaceIRI && {namespaceIri: this.NamespaceIRI}),\n original: this.Original,\n prefix: this.Prefix,\n name: this.Name,\n description: this.Description,\n };\n }\n public async populateFromFormData(data: any): Promise<void> {\n throw new NeedToImplementError();\n }\n\n public async populateFromDTO(dto: GOVERNANCE_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n\n const vocabularyDTO = dto as VocabularyDTO;\n this.NamespaceIRI = asIRI(vocabularyDTO.namespaceIri);\n this.Original = vocabularyDTO.original;\n this.Prefix = vocabularyDTO.prefix;\n this.Name = vocabularyDTO.name;\n this.Description = vocabularyDTO.description;\n await this.populateTermsFromDTO(vocabularyDTO);\n }\n\n private async populateTermsFromDTO(dto: VocabularyDTO): Promise<void> {\n if (dto.id) {\n const {list} = await Term.listDBRecords(\n 1,\n LARGE_ENOUGH_NUMBER,\n SortOrder.ASC,\n asID(dto.id)\n );\n this.Terms = list;\n this.FetchedTermIRIs = this.Terms.map((term) => term.iri);\n }\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n const terms = this.Terms;\n await super.createDBRecord();\n terms && (this.Terms = terms);\n if (this.Terms) {\n for (const term of this.Terms) {\n await term.createDBRecord();\n this.FetchedTermIRIs.push(term.iri);\n }\n }\n }\n\n private async deleteNotMaintainedTerms() {\n if (this.FetchedTermIRIs && this.FetchedTermIRIs.length != 0) {\n const existingIRIs = this.FetchedTermIRIs;\n const maintainedIRIs = this.Terms.map((term) => term.iri).filter(\n (iri) => iri !== undefined\n );\n const scheduledToDeletedIRIs = existingIRIs.filter(\n (iri) => !maintainedIRIs.includes(iri)\n );\n const scheduledToDeletedTerms = await Promise.all(\n scheduledToDeletedIRIs.map(async (IRI) => {\n return await Term.getDBRecord(IRI);\n })\n );\n await Promise.all(\n scheduledToDeletedTerms.map(async (term) => {\n await term.deleteDBRecord();\n })\n );\n this.FetchedTermIRIs = maintainedIRIs;\n }\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n try {\n const terms = this.Terms;\n await super.updateDBRecord();\n terms && (this.Terms = terms);\n if (this.Terms) {\n for (const term of this.Terms) {\n term.setVocabulary(this);\n if (term.hasDBRecord()) {\n await term.updateDBRecord();\n } else {\n await term.createDBRecord();\n this.FetchedTermIRIs.push(term.iri);\n }\n }\n await this.deleteNotMaintainedTerms();\n }\n } catch (error) {\n throw error;\n }\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n await this.deleteNotMaintainedTerms();\n if (this.Terms && this.Terms.length != 0) {\n for (let i = 0; i < this.Terms.length; i++) {\n destroy(this.Terms[i]);\n }\n }\n await super.deleteDBRecord();\n }\n\n static async listDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n original?: boolean,\n name?: string\n ): Promise<PaginatedResponse<Vocabulary>> {\n throwErrorIfAPIURLNotSetForStatic(Vocabulary);\n try {\n const response = await axios.get(Vocabulary.LIST_URL, {\n params: {\n offset: (pageNumber - 1) * pageSize,\n limit: pageSize,\n ordered: sortOrder,\n original: original,\n name: name,\n },\n // headers,\n });\n return await Vocabulary.listResponseToPaginatedResponse(response);\n } catch (error) {\n handleAxiosError(error);\n }\n }\n\n public createTerm(): Term {\n if (!this.Terms) {\n this.Terms = [];\n }\n const newTerm = new Term();\n newTerm.setVocabulary(this);\n this.Terms.push(newTerm);\n return newTerm;\n }\n\n public getTermUsingName(name: string): Term {\n const index = this.Terms.findIndex((term) => term.name === name);\n if (index < 0) {\n throw new NamedTermNotExistError(name);\n }\n return this.Terms[index];\n }\n\n public removeTermUsingName(name: string): void {\n const index = this.Terms.findIndex((term) => term.name === name);\n if (index < 0) {\n throw new NamedTermNotExistError(name);\n }\n this.Terms.splice(index, 1);\n }\n\n public get namespaceIRI(): IRIType {\n return this.NamespaceIRI;\n }\n\n public set namespaceIRI(value: string) {\n this.NamespaceIRI = asIRI(value);\n }\n\n public get original(): boolean {\n return this.Original;\n }\n\n public set original(value: boolean) {\n this.Original = value;\n }\n\n public get prefix(): string {\n return this.Prefix;\n }\n\n public set prefix(value: string) {\n this.Prefix = value;\n }\n\n public get name(): string {\n return this.Name;\n }\n\n public set name(value: string) {\n this.Name = value;\n }\n\n public get description(): string {\n return this.Description;\n }\n\n public set description(value: string) {\n this.Description = value;\n }\n\n public get terms(): Term[] {\n return this.Terms;\n }\n}\n\nexport default Vocabulary;\n","import axios from \"axios\";\nimport {\n DeleteRecordFailError,\n NeedToImplementError,\n RecordNotFoundError,\n UnexpectedResponseFormatError,\n} from \"../core/error\";\nimport {asID, asIRI, IRIType, PaginatedResponse, SortOrder} from \"../core/type\";\nimport {destroy, handleAxiosError, LARGE_ENOUGH_NUMBER} from \"../core/util\";\nimport SODAS_SDK_CLASS, {\n throwErrorIfAPIURLNotSetForStatic,\n} from \"./sodasSDKClass\";\ninterface GovernanceModelStatic<GENERIC> {\n new (): GENERIC;\n listDBRecords: typeof GOVERNANCE_MODEL.listDBRecords;\n}\n\nexport interface GOVERNANCE_MODEL_DTO {\n id?: string;\n iri?: string;\n issued?: string;\n modified?: string;\n}\n\nabstract class GOVERNANCE_MODEL extends SODAS_SDK_CLASS {\n static GET_URL: string;\n static CREATE_URL: string;\n static UPDATE_URL: string;\n static DELETE_URL: string;\n\n public toDTO(): GOVERNANCE_MODEL_DTO {\n return {\n ...(this.ID && {id: this.ID}),\n ...(this.IRI && {iri: this.IRI}),\n ...(this.Issued && {issued: this.Issued.toISOString()}),\n ...(this.Modified && {modified: this.Modified.toISOString()}),\n };\n }\n\n public async populateFromFormData(data: any): Promise<void> {}\n\n public async populateFromDTO(dto: GOVERNANCE_MODEL_DTO): Promise<void> {\n dto.id && (this.ID = asID(dto.id));\n dto.iri && (this.IRI = asIRI(dto.iri));\n dto.issued && (this.Issued = new Date(dto.issued));\n dto.modified && (this.Modified = new Date(dto.modified));\n }\n\n public hasDBRecord(): boolean {\n if (this.ID && this.IRI) {\n return true;\n } else {\n return false;\n }\n }\n\n static async listDBRecords<GENERIC_GOVERNANCE_MODEL extends GOVERNANCE_MODEL>(\n this: new () => GENERIC_GOVERNANCE_MODEL,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ...additionalArgs: any[]\n ): Promise<PaginatedResponse<GOVERNANCE_MODEL>> {\n throw new NeedToImplementError();\n }\n\n static async listResponseToPaginatedResponse<\n GENERIC_GOVERNANCE_MODEL extends GOVERNANCE_MODEL\n >(\n this: GovernanceModelStatic<GENERIC_GOVERNANCE_MODEL>,\n response: any\n ): Promise<PaginatedResponse<GENERIC_GOVERNANCE_MODEL>> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n if (response.data.total != null && Array.isArray(response.data.results)) {\n const list = [];\n for (const item of response.data.results) {\n const governanceModel = new this();\n await governanceModel.populateFromDTO(item);\n list.push(governanceModel);\n }\n return {\n total: response.data.total,\n list,\n };\n } else {\n throw new UnexpectedResponseFormatError(response);\n }\n }\n\n static async getAllDBRecords<\n GENERIC_GOVERNANCE_MODEL extends GOVERNANCE_MODEL\n >(\n this: GovernanceModelStatic<GENERIC_GOVERNANCE_MODEL>\n ): Promise<GENERIC_GOVERNANCE_MODEL[]> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n const paginatedResponse = await this.listDBRecords(1, LARGE_ENOUGH_NUMBER);\n return paginatedResponse.list as GENERIC_GOVERNANCE_MODEL[];\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n\n const data = this.toDTO();\n const cleanData = JSON.parse(JSON.stringify(data));\n let response: any;\n try {\n response = await axios.post(\n (this.constructor as typeof GOVERNANCE_MODEL).CREATE_URL,\n cleanData,\n {\n headers: {\"Content-Type\": \"application/json\"},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n await this.populateFromDTO(response.data);\n }\n\n static async getDBRecord<GENERIC_GOVERNANCE_MODEL extends GOVERNANCE_MODEL>(\n this: GovernanceModelStatic<GENERIC_GOVERNANCE_MODEL>,\n IRI: IRIType\n ): Promise<GENERIC_GOVERNANCE_MODEL> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n let response: any;\n const url = `${\n (this.prototype.constructor as typeof GOVERNANCE_MODEL).GET_URL\n }/?iri=${IRI}`;\n try {\n response = await axios.get(url, {\n headers: {\"Content-Type\": \"application/json\"},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data) {\n const governanceModel = new this();\n await governanceModel.populateFromDTO(response.data);\n return governanceModel;\n } else {\n throw new RecordNotFoundError();\n }\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const {iri, issued, modified, ...data} = this.toDTO();\n const cleanData = JSON.parse(JSON.stringify(data));\n let response: any;\n try {\n response = await axios.post(\n (this.constructor as typeof GOVERNANCE_MODEL).UPDATE_URL,\n cleanData,\n {\n headers: {\"Content-Type\": \"application/json\"},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n await this.populateFromDTO(response.data);\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const url = `${(this.constructor as typeof GOVERNANCE_MODEL).DELETE_URL}`;\n let response: any;\n try {\n response = await axios.post(\n url,\n {iri: this.IRI},\n {headers: {\"Content-Type\": \"application/json\"}}\n );\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.status === 201) {\n destroy(this); // Nullify the instance\n } else {\n throw new DeleteRecordFailError();\n }\n }\n}\n\nexport default GOVERNANCE_MODEL;\n","import {\n AlreadyRecordedError,\n API_URL_NOT_SET,\n NeedToImplementError,\n NotRecordedYetError,\n} from \"../core/error\";\nimport {IDType, IRIType, PaginatedResponse, SortOrder} from \"../core/type\";\n\nexport function throwErrorIfAPIURLNotSetForStatic(cls: typeof SODAS_SDK_CLASS) {\n if (!cls.API_URL) {\n throw new API_URL_NOT_SET(cls);\n }\n}\n\nabstract class SODAS_SDK_CLASS {\n static BEARER_TOKEN: string;\n static API_URL: string;\n static LIST_URL: string;\n\n protected ID: IDType;\n protected IRI: IRIType;\n\n protected Issued: Date;\n protected Modified: Date;\n\n static configureAPIURL(url: string) {\n throw new NeedToImplementError();\n }\n\n static async listDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ...additionalArgs: any[]\n ): Promise<PaginatedResponse<SODAS_SDK_CLASS>> {\n throw new NeedToImplementError();\n }\n\n public abstract toDTO(): any;\n public abstract populateFromDTO(dto: any): Promise<void>;\n\n public abstract createDBRecord(): Promise<void>;\n public abstract updateDBRecord(): Promise<void>;\n public abstract deleteDBRecord(): Promise<void>;\n\n public abstract hasDBRecord(): boolean;\n\n protected throwErrorIfRecorded() {\n if (this.hasDBRecord()) {\n throw new AlreadyRecordedError(this);\n }\n }\n protected throwErrorIfNotRecorded() {\n if (!this.hasDBRecord()) {\n throw new NotRecordedYetError(this);\n }\n }\n\n protected throwErrorIfAPIURLNotSet() {\n if (!(this.constructor as typeof SODAS_SDK_CLASS).API_URL) {\n throw new API_URL_NOT_SET(this.constructor);\n }\n }\n\n public debug() {\n console.log(this);\n }\n\n public get id(): IDType {\n return this.ID;\n }\n\n public get iri(): IRIType {\n return this.IRI;\n }\n\n public get issued(): Date {\n return this.Issued;\n }\n\n public get modified(): Date {\n return this.Modified;\n }\n}\n\nexport default SODAS_SDK_CLASS;\n","import axios from \"axios\";\nimport {NeedToImplementError} from \"../../core/error\";\nimport {IDType, PaginatedResponse, SortOrder} from \"../../core/type\";\nimport {handleAxiosError} from \"../../core/util\";\nimport GOVERNANCE_MODEL, {GOVERNANCE_MODEL_DTO} from \"../governanceClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\n\nexport enum VALIDATION_TYPE {\n DATA_TYPE = \"data_type\",\n RANGE = \"range\",\n PATTERN = \"pattern\",\n UNIQUENESS = \"uniqueness\",\n COMPLETENESS = \"completeness\",\n LENGTH = \"length\",\n ALLOWED_VALUES = \"allowed_values\",\n OUTLIER = \"outlier\",\n STATISTICAL = \"statistical\",\n}\n\nexport enum EXPECTED_TYPE {\n NUMERIC = \"numeric\",\n STRING = \"string\",\n DATETIME = \"datetime\",\n}\n\nexport interface ValidationRule {\n column: string;\n name: string;\n type: VALIDATION_TYPE;\n}\n\nexport interface completnessValidationRule extends ValidationRule {\n type: VALIDATION_TYPE.COMPLETENESS;\n min_completeness: number;\n weight: number;\n}\nexport interface dataTypeValidationRule extends ValidationRule {\n type: VALIDATION_TYPE.DATA_TYPE;\n expected_type: EXPECTED_TYPE;\n weight: number;\n}\nexport interface uniquenessValidationRule extends ValidationRule {\n type: VALIDATION_TYPE.UNIQUENESS;\n weight: number;\n}\nexport interface patternValidationRule extends ValidationRule {\n type: VALIDATION_TYPE.PATTERN;\n pattern: string;\n weight: number;\n}\n\nexport interface ValidationTemplateDTO extends GOVERNANCE_MODEL_DTO {\n name: string;\n description?: string;\n validationRules: ValidationRule[];\n}\n\nclass ValidationTemplate extends GOVERNANCE_MODEL {\n private Name: string;\n private Description: string;\n private ValidationRules: ValidationRule[];\n\n static configureAPIURL(url: string): void {\n const PREFIX = \"api/v1/governance/template\";\n ValidationTemplate.API_URL = `${url}/${PREFIX}/validation`;\n ValidationTemplate.LIST_URL = `${ValidationTemplate.API_URL}/list`;\n ValidationTemplate.GET_URL = `${ValidationTemplate.API_URL}/get`;\n ValidationTemplate.CREATE_URL = `${ValidationTemplate.API_URL}/create`;\n ValidationTemplate.UPDATE_URL = `${ValidationTemplate.API_URL}/update`;\n ValidationTemplate.DELETE_URL = `${ValidationTemplate.API_URL}/remove`;\n }\n\n public toDTO(): ValidationTemplateDTO {\n return {\n ...super.toDTO(),\n name: this.Name,\n ...(this.ValidationRules && {validationRules: this.ValidationRules}),\n ...(this.Description && {description: this.Description}),\n };\n }\n\n public async populateFromFormData(data: any): Promise<void> {\n throw new NeedToImplementError();\n }\n\n public async populateFromDTO(dto: GOVERNANCE_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const validationTemplateDTO = dto as ValidationTemplateDTO;\n this.ValidationRules = validationTemplateDTO.validationRules;\n this.Name = validationTemplateDTO.name;\n this.Description = validationTemplateDTO.description;\n }\n\n static async listDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n vocabularyID?: IDType\n ): Promise<PaginatedResponse<ValidationTemplate>> {\n throwErrorIfAPIURLNotSetForStatic(ValidationTemplate);\n try {\n const response = await axios.get(ValidationTemplate.LIST_URL, {\n params: {\n offset: (pageNumber - 1) * pageSize,\n limit: pageSize,\n ordered: sortOrder,\n vocabularyId: vocabularyID,\n },\n // headers,\n });\n return await ValidationTemplate.listResponseToPaginatedResponse(response);\n } catch (error) {\n handleAxiosError(error);\n }\n }\n\n public get name(): string {\n return this.Name;\n }\n\n public set name(value: string) {\n this.Name = value;\n }\n\n public get description(): string {\n return this.Description;\n }\n\n public set description(value: string) {\n this.Description = value;\n }\n\n public get validationRules(): ValidationRule[] {\n return this.ValidationRules;\n }\n\n public set validationRules(value: ValidationRule[]) {\n this.ValidationRules = value;\n }\n\n static parseValidationRules(rawRules: any[]): ValidationRule[] {\n return rawRules.map((rule) => {\n const baseRule = {\n column: rule.column,\n name: rule.name,\n type: rule.type as VALIDATION_TYPE,\n };\n\n switch (rule.type) {\n case VALIDATION_TYPE.COMPLETENESS:\n return {\n ...baseRule,\n type: VALIDATION_TYPE.COMPLETENESS,\n min_completeness: rule.min_completeness,\n weight: rule.weight,\n } as completnessValidationRule;\n\n case VALIDATION_TYPE.DATA_TYPE:\n return {\n ...baseRule,\n type: VALIDATION_TYPE.DATA_TYPE,\n expected_type: rule.expected_type as EXPECTED_TYPE,\n weight: rule.weight,\n } as dataTypeValidationRule;\n\n case VALIDATION_TYPE.PATTERN:\n return {\n ...baseRule,\n type: VALIDATION_TYPE.PATTERN,\n pattern: rule.pattern,\n weight: rule.weight,\n } as patternValidationRule;\n\n case VALIDATION_TYPE.UNIQUENESS:\n return {\n ...baseRule,\n type: VALIDATION_TYPE.UNIQUENESS,\n weight: rule.weight,\n } as uniquenessValidationRule;\n\n default:\n return baseRule as ValidationRule;\n }\n });\n }\n\n private ensureValidationRulesInitialized() {\n if (!this.ValidationRules) {\n this.ValidationRules = [];\n }\n }\n\n public createRule(type: VALIDATION_TYPE): ValidationRule {\n this.ensureValidationRulesInitialized();\n let rule: ValidationRule;\n const baseRule = {\n column: \"\",\n name: \"\",\n type,\n };\n switch (type) {\n case VALIDATION_TYPE.COMPLETENESS:\n rule = {\n ...baseRule,\n min_completeness: 0,\n weight: 0,\n } as completnessValidationRule;\n break;\n case VALIDATION_TYPE.DATA_TYPE:\n rule = {\n ...baseRule,\n expected_type: EXPECTED_TYPE.STRING,\n weight: 0,\n } as dataTypeValidationRule;\n break;\n case VALIDATION_TYPE.PATTERN:\n rule = {\n ...baseRule,\n pattern: \"\",\n weight: 0,\n } as patternValidationRule;\n break;\n case VALIDATION_TYPE.UNIQUENESS:\n rule = {\n ...baseRule,\n weight: 0,\n } as uniquenessValidationRule;\n break;\n default:\n rule = baseRule as ValidationRule;\n }\n this.ValidationRules.push(rule);\n return rule;\n }\n\n public deleteRuleAt(index: number): void {\n if (!this.ValidationRules) {\n return;\n }\n if (index < 0 || index >= this.ValidationRules.length) {\n return;\n }\n this.ValidationRules.splice(index, 1);\n }\n\n public deleteRuleByTypeAt(type: VALIDATION_TYPE, index: number): void {\n if (!this.ValidationRules) {\n return;\n }\n if (index < 0) {\n return;\n }\n let current = 0;\n for (let i = 0; i < this.ValidationRules.length; i++) {\n if (this.ValidationRules[i].type === type) {\n if (current === index) {\n this.ValidationRules.splice(i, 1);\n return;\n }\n current++;\n }\n }\n }\n\n static groupValidationRulesByColumn(\n rules: ValidationRule[]\n ): Record<string, ValidationRule[]> {\n return rules.reduce((acc, rule) => {\n const column = rule.column;\n if (!acc[column]) {\n acc[column] = [];\n }\n acc[column].push(rule);\n return acc;\n }, {} as Record<string, ValidationRule[]>);\n }\n\n static groupValidationRulesByType(\n rules: ValidationRule[]\n ): Record<VALIDATION_TYPE, ValidationRule[]> {\n return rules.reduce((acc, rule) => {\n const type = rule.type;\n if (!acc[type]) {\n acc[type] = [];\n }\n acc[type].push(rule);\n return acc;\n }, {} as Record<VALIDATION_TYPE, ValidationRule[]>);\n }\n\n /**\n * Parse escaped JSON string containing validation_rules to ValidationRule[]\n * @param escapedString - Escaped JSON string like \"validation_rules\\\":[{\\\"column\\\":\\\"class_label\\\",...}]\"\n * @returns Parsed ValidationRule array\n */\n static parseValidationRulesFromEscapedString(\n escapedString: string\n ): ValidationRule[] {\n let processedString = escapedString.trim();\n\n // Remove surrounding quotes if present (e.g., '\"{\"validation_rules\":...}\"' -> '{\"validation_rules\":...}')\n // Check for both single and double quotes\n if (\n ((processedString.startsWith('\"') && processedString.endsWith('\"')) ||\n (processedString.startsWith(\"'\") && processedString.endsWith(\"'\"))) &&\n processedString.length > 1\n ) {\n processedString = processedString.slice(1, -1).trim();\n }\n\n // Unescape the string (replace \\\" with \")\n // Handle both \\\" and \\\\\\\" cases to avoid double-escaping issues\n let unescapedString = processedString;\n // First handle \\\\\\\" -> \\\"\n unescapedString = unescapedString.replace(/\\\\\\\\\"/g, '\\\\\"');\n // Then handle \\\" -> \"\n unescapedString = unescapedString.replace(/\\\\\"/g, '\"');\n\n // Try to parse as JSON\n let parsed: any;\n try {\n // First try parsing directly\n parsed = JSON.parse(unescapedString);\n } catch (error) {\n // If parsing fails, try different approaches\n const trimmed = unescapedString.trim();\n\n // If it starts with \"validation_rules\" but is not wrapped in braces\n if (\n trimmed.startsWith('\"validation_rules\"') ||\n trimmed.startsWith(\"validation_rules\")\n ) {\n // Try wrapping in braces\n const wrapped = trimmed.startsWith('\"')\n ? `{${trimmed}}`\n : `{\"${trimmed}}`;\n try {\n parsed = JSON.parse(wrapped);\n } catch (e) {\n // If still fails, try without the leading quote\n const withoutQuote = trimmed.replace(/^\"/, \"\");\n parsed = JSON.parse(`{\"${withoutQuote}`);\n }\n } else if (trimmed.startsWith(\"{\") && trimmed.endsWith(\"}\")) {\n // Already looks like JSON object, try parsing again after trimming\n parsed = JSON.parse(trimmed);\n } else {\n throw error;\n }\n }\n\n // Extract validation_rules array\n let validationRules: any;\n\n // If it's already an array, use it directly\n if (Array.isArray(parsed)) {\n validationRules = parsed;\n } else if (parsed.validation_rules) {\n // If it's an object with validation_rules property\n validationRules = parsed.validation_rules;\n } else if (typeof parsed === \"object\") {\n // If it's an object but no validation_rules property, try to use it as is\n validationRules = parsed;\n } else {\n throw new Error(\"Invalid format: validation_rules not found\");\n }\n\n // Ensure validationRules is an array\n if (!Array.isArray(validationRules)) {\n throw new Error(\"Invalid format: validation_rules must be an array\");\n }\n\n const parsedRules =\n ValidationTemplate.parseValidationRules(validationRules);\n (parsedRules as any)._escapedString = escapedString;\n return parsedRules;\n }\n\n /**\n * Convert ValidationRule[] to escaped JSON string\n * @param rules - ValidationRule array to stringify\n * @returns Escaped JSON string with format: \"{\\\"validation_rules\\\":[...]}\"\n */\n static stringifyValidationRulesToEscapedString(\n rules: ValidationRule[]\n ): string {\n // Convert ValidationRule[] to plain objects for JSON serialization\n const plainRules = rules.map((rule) => {\n const plainRule: any = {\n column: rule.column,\n name: rule.name,\n type: rule.type,\n };\n\n switch (rule.type) {\n case VALIDATION_TYPE.COMPLETENESS:\n const completenessRule = rule as completnessValidationRule;\n return {\n ...plainRule,\n min_completeness: completenessRule.min_completeness,\n weight: completenessRule.weight,\n };\n\n case VALIDATION_TYPE.DATA_TYPE:\n const dataTypeRule = rule as dataTypeValidationRule;\n return {\n ...plainRule,\n expected_type: dataTypeRule.expected_type,\n weight: dataTypeRule.weight,\n };\n\n case VALIDATION_TYPE.PATTERN:\n const patternRule = rule as patternValidationRule;\n return {\n ...plainRule,\n pattern: patternRule.pattern,\n weight: patternRule.weight,\n };\n\n case VALIDATION_TYPE.UNIQUENESS:\n const uniquenessRule = rule as uniquenessValidationRule;\n return {\n ...plainRule,\n weight: uniquenessRule.weight,\n };\n\n default:\n return plainRule;\n }\n });\n\n // Create object with validation_rules property\n if ((rules as any)._escapedString) {\n return (rules as any)._escapedString;\n }\n\n const obj = {validation_rules: plainRules};\n const jsonString = JSON.stringify(obj);\n const escaped = jsonString.replace(/\"/g, '\\\\\"');\n return '\"' + escaped + '\"';\n }\n}\n\nexport default ValidationTemplate;\n","import axios from \"axios\";\nimport FormData from \"form-data\";\nimport {UnexpectedResponseFormatError} from \"../core/error\";\nimport {destroy} from \"../core/util\";\nimport SODAS_SDK_FILE from \"./sodasSDKFile\";\n\nclass DataFile extends SODAS_SDK_FILE {\n static UPLOAD_URL: string;\n static REMOVE_URL: string;\n static DOWNLOAD_URL: string;\n static BUCKET_NAME: string;\n\n private endpoint: string;\n private bucketName: string;\n\n static configureAPIURL(url: string) {\n DataFile.UPLOAD_URL = `${url}/data/upload`;\n DataFile.REMOVE_URL = `${url}/data/remove/`;\n DataFile.DOWNLOAD_URL = `${url}/data/download`;\n }\n\n static configureBucketName(bucketName: string) {\n DataFile.BUCKET_NAME = bucketName;\n }\n\n public async upload(): Promise<void> {\n if (!this.fileContent) {\n return;\n }\n try {\n const formData = new FormData();\n formData.append(\"file\", this.fileContent, this.fileName);\n\n const uploadURL = DataFile.BUCKET_NAME\n ? `${DataFile.UPLOAD_URL}?bucketName=${this.bucketName}`\n : DataFile.UPLOAD_URL;\n const uploadResponse = await axios.post(uploadURL, formData, {\n headers: {\n ...(typeof window === \"undefined\" ? formData.getHeaders() : {}),\n },\n });\n\n if (uploadResponse.data && uploadResponse.data.id) {\n this.ID = uploadResponse.data.id;\n this.bucketName = uploadResponse.data.bucketName;\n this.endpoint = uploadResponse.data.endpoint;\n } else {\n throw new UnexpectedResponseFormatError(uploadResponse);\n }\n } catch (error) {\n console.error(\"Error during file upload:\", error);\n throw error;\n }\n }\n\n public async remove(): Promise<void> {\n if (!this.ID) {\n return;\n }\n try {\n const removeURL = this.bucketName\n ? `${DataFile.REMOVE_URL}${this.ID}?bucketName=${this.bucketName}`\n : `${DataFile.REMOVE_URL}${this.ID}`;\n const removeResponse = await axios.get(removeURL);\n if (removeResponse.status == 204 || removeResponse.status == 200) {\n destroy(this);\n } else {\n throw new UnexpectedResponseFormatError(removeResponse);\n }\n } catch (error) {\n console.error(\"Error during file upload:\", error);\n throw error;\n }\n }\n\n public getDownloadURL(): string {\n return `${DataFile.DOWNLOAD_URL}/${this.ID}?bucketName=${this.bucketName}&endpoint=${this.endpoint}`;\n }\n}\n\nexport default DataFile;\n","import axios from \"axios\";\nimport FormData from \"form-data\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport {\n NeedToImplementError,\n UnexpectedResponseFormatError,\n} from \"../core/error\";\nimport {destroy} from \"../core/util\";\nabstract class SODAS_SDK_FILE {\n static BEARER_TOKEN: string;\n static UPLOAD_URL: string;\n static REMOVE_URL: string;\n static DOWNLOAD_URL: string;\n\n protected ID: string; //Sometimes it is not uuid. So I decide to leave it as a string.\n\n protected fileName?: string;\n protected fileSize?: number;\n protected fileType?: string;\n protected fileContent?: any;\n\n static configureAPIURL(url: string): void {\n throw new NeedToImplementError();\n }\n\n /**\n * Sets file information for a browser environment.\n * @param {File} file - The file object from the browser.\n */\n public setFileForBrowser(file: File) {\n this.fileName = file.name;\n this.fileSize = file.size;\n this.fileType = file.type;\n this.fileContent = file;\n }\n\n /**\n * Sets file information for a Node.js environment.\n * @param {string} filePath - The file path on the server.\n */\n public setFileForNode(filePath: string) {\n const fileName = path.basename(filePath);\n const fileType = path.extname(filePath);\n const fileTypeWithoutDot = fileType.slice(1);\n const fileStats = fs.statSync(filePath);\n this.fileContent = fs.readFileSync(filePath);\n this.fileName = fileName;\n this.fileSize = fileStats.size;\n this.fileType = fileTypeWithoutDot;\n }\n\n public async upload(): Promise<void> {\n if (!this.fileContent) {\n return;\n }\n try {\n const cls = this.constructor as typeof SODAS_SDK_FILE;\n const formData = new FormData();\n formData.append(\"file\", this.fileContent, this.fileName);\n\n const apiClient = axios.create({\n headers: {\n ...(typeof window === \"undefined\" ? formData.getHeaders() : {}),\n },\n });\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n\n const uploadResponse = await apiClient.post(cls.UPLOAD_URL, formData);\n\n if (uploadResponse.data && uploadResponse.data.id) {\n this.ID = uploadResponse.data.id;\n } else {\n throw new UnexpectedResponseFormatError(uploadResponse);\n }\n } catch (error) {\n console.error(\"Error during file upload:\", error);\n throw error;\n }\n }\n\n public async remove(): Promise<void> {\n if (!this.ID) {\n return;\n }\n try {\n const cls = this.constructor as typeof SODAS_SDK_FILE;\n const apiClient = axios.create();\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n\n const removeURL = `${cls.REMOVE_URL}${this.ID}`;\n const removeResponse = await apiClient.get(removeURL);\n if (removeResponse.status == 204 || removeResponse.status == 200) {\n destroy(this);\n } else {\n throw new UnexpectedResponseFormatError(removeResponse);\n }\n } catch (error) {\n console.error(\"Error during file upload:\", error);\n throw error;\n }\n }\n\n public getDownloadURL(): string {\n return `${(this.constructor as typeof SODAS_SDK_FILE).DOWNLOAD_URL}/${\n this.ID\n }`;\n }\n}\n\nexport default SODAS_SDK_FILE;\n","import SODAS_SDK_FILE from \"./sodasSDKFile\";\n\nclass ThumbnailFile extends SODAS_SDK_FILE {\n static UPLOAD_URL: string;\n static REMOVE_URL: string;\n static DOWNLOAD_URL: string;\n\n static configureAPIURL(url: string) {\n ThumbnailFile.UPLOAD_URL = `${url}/thumbnail/upload`;\n ThumbnailFile.REMOVE_URL = `${url}/thumbnail/remove/`;\n ThumbnailFile.DOWNLOAD_URL = `${url}/thumbnails`;\n }\n}\n\nexport default ThumbnailFile;\n","import axios from \"axios\";\nimport DataServiceDTO from \"../SODAS_SDK_CLASS/DCAT/dataService\";\nimport Dataset from \"../SODAS_SDK_CLASS/DCAT/dataset\";\nimport DatasetSeries from \"../SODAS_SDK_CLASS/DCAT/datasetSeries\";\nimport Distribution from \"../SODAS_SDK_CLASS/DCAT/distribution\";\nimport Term from \"../SODAS_SDK_CLASS/dictionary/term\";\nimport Vocabulary from \"../SODAS_SDK_CLASS/dictionary/vocabulary\";\nimport ValidationTemplate from \"../SODAS_SDK_CLASS/template/validation\";\nimport DataFile from \"../SODAS_SDK_FILE/dataFile\";\nimport ThumbnailFile from \"../SODAS_SDK_FILE/thumbnailFile\";\nimport {NoAccessTokenFoundError, UnexpectedResponseFormatError} from \"./error\";\nimport {setGovernanceBearerToken, setLegacyDatahubBearerToken} from \"./init\";\n\nclass Config {\n private static instance: Config | null = null;\n\n private governanceToken: string | null = null;\n private legacyDatahubToken: string | null = null;\n\n private governanceBaseUrl: string;\n private sodasProfileBaseUrl: string;\n private legacyDatahubBaseUrl: string;\n\n private constructor(\n governanceBaseUrl: string,\n sodasProfileBaseUrl: string,\n legacyDatahubBaseUrl: string\n ) {\n this.governanceBaseUrl = governanceBaseUrl.replace(/\\/$/, \"\");\n this.sodasProfileBaseUrl = sodasProfileBaseUrl.replace(/\\/$/, \"\");\n this.legacyDatahubBaseUrl = legacyDatahubBaseUrl.replace(/\\/$/, \"\");\n this.initializeAPIURLs();\n }\n\n /**\n * Explicitly configure the SDK with the given API URLs.\n * This is the preferred way to set API URLs instead of using configureAPIURL.\n */\n public static configure(\n datahubApiUrl: string,\n governanceApiUrl: string,\n legacyDatahubApiUrl: string\n ): Config {\n if (!Config.instance) {\n Config.instance = new Config(\n governanceApiUrl,\n datahubApiUrl,\n legacyDatahubApiUrl\n );\n } else {\n Config.instance.governanceBaseUrl = governanceApiUrl.replace(/\\/$/, \"\");\n Config.instance.sodasProfileBaseUrl = datahubApiUrl.replace(/\\/$/, \"\");\n Config.instance.legacyDatahubBaseUrl = legacyDatahubApiUrl.replace(\n /\\/$/,\n \"\"\n );\n Config.instance.initializeAPIURLs();\n }\n return Config.instance;\n }\n\n /**\n * Get the singleton instance of Config, using environment variables.\n */\n public static getInstance(): Config {\n if (!Config.instance) {\n const governanceBaseUrl =\n process.env.PRODUCTION_GOVERNANCE_API_URL ||\n process.env.TEST_GOVERNANCE_API_URL ||\n \"\";\n const sodasProfileBaseUrl =\n process.env.PRODUCTION_DATAHUB_API_URL ||\n process.env.TEST_SODAS_PROFILE_API_URL ||\n \"\";\n const legacyDatahubBaseUrl =\n process.env.PRODUCTION_LEGACY_DATAHUB_API_URL ||\n process.env.TEST_LEGACY_DATAHUB_API_URL ||\n \"\";\n\n if (!governanceBaseUrl || !sodasProfileBaseUrl) {\n throw new Error(\n \"Governance or Datahub base URL is not configured in environment variables.\"\n );\n }\n\n Config.instance = new Config(\n governanceBaseUrl,\n sodasProfileBaseUrl,\n legacyDatahubBaseUrl\n );\n }\n\n return Config.instance;\n }\n\n /**\n * Initialize all SDK class API URLs based on the configured base URLs.\n */\n private initializeAPIURLs(): void {\n const SLASH_DELETED_SODAS_PROFILE_BASE_URL =\n this.sodasProfileBaseUrl.replace(/\\/$/, \"\");\n const SLASH_DELETED_GOVERNANCE_PORTAL_API_URL =\n this.governanceBaseUrl.replace(/\\/$/, \"\");\n\n if (this.sodasProfileBaseUrl) {\n Distribution.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n Dataset.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n DatasetSeries.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n DataServiceDTO.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n ThumbnailFile.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n DataFile.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n } else {\n console.error(\"DATAHUB_API_URL not found in config\");\n }\n\n if (this.governanceBaseUrl) {\n Vocabulary.configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);\n Term.configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);\n ValidationTemplate.configureAPIURL(\n SLASH_DELETED_GOVERNANCE_PORTAL_API_URL\n );\n } else {\n console.error(\"GOVERNANCE_API_URL not found in config\");\n }\n }\n\n /**\n * Login to the Governance portal and store the access token.\n */\n public async loginGovernance(id: string, password: string): Promise<void> {\n const url = `${this.governanceBaseUrl}/api/v1/authnz/authentication/user/login`;\n const parameters = {\n id,\n password,\n offline: false,\n };\n\n const response = await axios.post(url, parameters);\n if (response.data && response.data.accessToken) {\n this.governanceToken = response.data.accessToken;\n setGovernanceBearerToken(this.governanceToken);\n } else {\n throw new NoAccessTokenFoundError();\n }\n }\n\n /**\n * Login to the Datahub portal and store the access token.\n */\n public async loginLegacyDatahub(id: string, password: string): Promise<void> {\n const url = `${this.legacyDatahubBaseUrl}/api/v1/authnz/authentication/user/login`;\n const parameters = {\n id,\n password,\n offline: false,\n };\n\n try {\n const response = await axios.post(url, parameters);\n if (response.data && response.data.accessToken) {\n this.legacyDatahubToken = response.data.accessToken;\n setLegacyDatahubBearerToken(this.legacyDatahubToken);\n } else {\n throw new NoAccessTokenFoundError();\n }\n } catch (error) {\n console.error(\"Error during loginLegacyDatahub:\", error);\n throw error;\n }\n }\n\n /**\n * Logout from the Governance portal and clear the stored token.\n */\n public async logoutGovernance(): Promise<void> {\n const url = `${this.governanceBaseUrl}/api/v1/authnz/authentication/user/logout`;\n\n const response = await axios.post(\n url,\n {},\n {\n headers: this.governanceToken\n ? {Authorization: `Bearer ${this.governanceToken}`}\n : undefined,\n }\n );\n\n if (response.data && response.data.result === \"success\") {\n this.governanceToken = null;\n } else {\n throw new UnexpectedResponseFormatError(response.data);\n }\n }\n\n /**\n * Logout from the Datahub portal and clear the stored token.\n */\n public async logoutLegacyDatahub(): Promise<void> {\n const url = `${this.legacyDatahubBaseUrl}/api/v1/authnz/authentication/user/logout`;\n\n const response = await axios.post(\n url,\n {},\n {\n headers: this.legacyDatahubToken\n ? {Authorization: `Bearer ${this.legacyDatahubToken}`}\n : undefined,\n }\n );\n\n if (response.data && response.data.result === \"success\") {\n this.legacyDatahubToken = null;\n } else {\n throw new UnexpectedResponseFormatError(response.data);\n }\n }\n\n /**\n * Get the current Governance access token.\n */\n public getGovernanceToken(): string | null {\n return this.governanceToken;\n }\n\n /**\n * Get the current Datahub access token.\n */\n public getLegacyDatahubToken(): string | null {\n return this.legacyDatahubToken;\n }\n}\n\nexport default Config;\n","import SODAS_SDK_CLASS from \"../SODAS_SDK_CLASS/sodasSDKClass\";\nimport {ResourceDescriptorRole} from \"./type\";\n\nexport class AlreadyRecordedError extends Error {\n constructor(instance: SODAS_SDK_CLASS) {\n super(\n `This instance is already recorded in Database : ${JSON.stringify(\n instance\n )}`\n );\n }\n}\nexport class API_URL_NOT_SET extends Error {\n constructor(cls: Function) {\n super(`API_URL is not set in class: ${cls.name}`);\n this.name = \"API_URL_NOT_SET\";\n }\n}\nexport class DeleteRecordFailError extends Error {\n constructor() {\n super(\"Delete DBRecord Failed\");\n }\n}\n\nexport class IndexOutOfBoundsError extends Error {\n constructor(index: number) {\n super(`Index : ${index} out of bounds`);\n }\n}\n\nexport class InvalidDateObjectError extends Error {\n constructor(value: any) {\n super(`Invalid Date object : ${value}`);\n }\n}\n\nexport class InvalidDateStringError extends Error {\n constructor(str: string) {\n super(`Invalid Date string : ${str}`);\n }\n}\n\nexport class InvalidTypeError extends Error {\n constructor(value: any, expectedType: string) {\n super(`Invalid type '${typeof value}' instead of '${expectedType}'`);\n }\n}\n\nexport class InvalidValueError extends Error {\n constructor(value: any) {\n super(`Invalid value : ${JSON.stringify(value)} is put`);\n }\n}\n\nexport class NamedTermNotExistError extends Error {\n constructor(name: string) {\n super(`Named term ${name} not exist.`);\n }\n}\n\nexport class NeedToImplementError extends Error {\n constructor() {\n super(`It needs to be implemented.`);\n }\n}\n\nexport class NeedToSetFieldError extends Error {\n constructor(value: any, field: string) {\n super(\n `This instance : ${JSON.stringify(value)} needs to set field : ${field}`\n );\n }\n}\n\nexport class NoAccessTokenFoundError extends Error {\n constructor() {\n super(\"No accessToken found in the response\");\n }\n}\n\nexport class NotInitializedError extends Error {\n constructor(field: string) {\n super(`Field : ${field} is not initialized yet`);\n }\n}\n\nexport class NotRecordedArgumentError extends Error {\n constructor(instance: SODAS_SDK_CLASS) {\n super(`Not recorded argument is put : ${JSON.stringify(instance)}`);\n }\n}\n\nexport class NotRecordedYetError extends Error {\n constructor(instance: SODAS_SDK_CLASS) {\n super(\n `This instance is not recorded in Database yet : ${JSON.stringify(\n instance\n )}`\n );\n }\n}\n\nexport class RecordNotFoundError extends Error {\n constructor() {\n super(\"Record is not found\");\n }\n}\n\nexport class RequirementsNotSetError extends Error {\n constructor() {\n super(`Requirements are not set`);\n }\n}\n\nexport class ResourceRoleDescriptorAlreadyExist extends Error {\n constructor(role: ResourceDescriptorRole) {\n super(`Resource Descripotor with specific role : ${role} already exists.`);\n }\n}\n\nexport class ResourceRoleDescriptorNotExist extends Error {\n constructor(role: ResourceDescriptorRole) {\n super(`Resource Descripotor with specific role : ${role} doesn't exists.`);\n }\n}\n\nexport class RetryLimitReachedError extends Error {\n constructor(max: number) {\n super(`Max retries[${max}] reached`);\n }\n}\n\nexport class SwitchSameIndexError extends Error {\n constructor(index: number) {\n super(`Switch same index : ${index}`);\n }\n}\n\nexport class UnexpectedResponseFormatError extends Error {\n constructor(response: any) {\n super(`Unexpected response format. : ${JSON.stringify(response)}`);\n }\n}\n","import DataServiceDTO from \"../SODAS_SDK_CLASS/DCAT/dataService\";\nimport Dataset from \"../SODAS_SDK_CLASS/DCAT/dataset\";\nimport DatasetSeries from \"../SODAS_SDK_CLASS/DCAT/datasetSeries\";\nimport Distribution from \"../SODAS_SDK_CLASS/DCAT/distribution\";\nimport Term from \"../SODAS_SDK_CLASS/dictionary/term\";\nimport Vocabulary from \"../SODAS_SDK_CLASS/dictionary/vocabulary\";\nimport ValidationTemplate from \"../SODAS_SDK_CLASS/template/validation\";\n\n/**\n * Sets the Bearer token for API authentication across multiple DTO classes.\n *\n * @param {string} token - The Bearer token used for API authentication.\n * @returns {void}\n */\nexport function setGovernanceBearerToken(token: string): void {\n Vocabulary.BEARER_TOKEN = token;\n Term.BEARER_TOKEN = token;\n ValidationTemplate.BEARER_TOKEN = token;\n}\n\nexport function setLegacyDatahubBearerToken(token: string): void {\n Dataset.BEARER_TOKEN = token;\n DataServiceDTO.BEARER_TOKEN = token;\n DatasetSeries.BEARER_TOKEN = token;\n Distribution.BEARER_TOKEN = token;\n}\n","import {InvalidDateObjectError, InvalidDateStringError} from \"./error\";\n\nexport type IDType = string & {__iriBrand: never};\n\nconst uuidRegex =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n\nexport function asID(value: string): IDType {\n if (!uuidRegex.test(value)) {\n throw new Error(`Invalid UUID format: '${value}'`);\n }\n return value as IDType;\n}\n\nexport function asIDs(values: string[]): IDType[] {\n return values.map((value) => asID(value));\n}\n\nexport type IRIType = string & {__iriBrand: never};\n\nexport function asIRI(value: string): IRIType {\n return value as IRIType;\n}\n/**\n * Branded type for a valid ISO 8601 date-time string.\n * Example: \"2025-01-08T09:04:51.008Z\" or \"2025-01-08T18:10:01.292602+09:00\"\n */\nexport type DateString = string & {__iriBrand: never};\n\n/**\n * Converts a Date object to a DateString (ISO 8601 format).\n *\n * @param {Date} date - The Date object to convert.\n * @returns {DateString} - The validated ISO 8601 date-time string.\n * @throws {Error} - Throws an error if the Date object is invalid.\n */\nexport function toDateString(date: Date | null): DateString {\n if (!(date instanceof Date) || isNaN(date.getTime())) {\n throw new InvalidDateObjectError(date);\n }\n\n // Convert the Date object to an ISO 8601 string\n const value = date.toISOString();\n\n // Validate the format\n const ISO_8601_PATTERN =\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$/;\n\n if (!ISO_8601_PATTERN.test(value)) {\n throw new InvalidDateStringError(value);\n }\n\n return value as DateString;\n}\n/**\n * Converts a DateString to a JavaScript Date object.\n *\n * @param {DateString} dateString - The ISO 8601 date-time string to convert.\n * @returns {Date} - The corresponding JavaScript Date object.\n */\nexport function toDate(dateString: DateString): Date {\n const date = new Date(dateString);\n if (isNaN(date.getTime())) {\n throw new InvalidDateStringError(dateString);\n }\n return date;\n}\n\n//TODO : ROW_KEY must be added and controlled\nexport type TemplateArtifactRow = {\n [K in TemplateDetailFunctionality]?: any;\n};\n\nexport type TemplateArtifactValue = Array<TemplateArtifactRow>;\n\n/**\n * Represents a multilingual field where each key is a language code (e.g., \"en\", \"ko\") and the value is a string.\n */\nexport type MultiLanguageField = {[languageCode: string]: string};\n\n/**\n * Represents multilingual keywords where each key is a language code and the value is an array of strings.\n */\nexport type MultiLanguageKeywords = {[languageCode: string]: string[]};\n\nexport type ExtraMetadataType = {[MetaFieldName: string]: string};\n\nexport enum ResourceDescriptorRole {\n VOCABULARY = \"vocabulary\",\n TYPE = \"type\",\n SCHEMA = \"schema\",\n CONSTRAINT = \"constraint\",\n VALIDATION = \"validation\",\n MAPPING = \"mapping\",\n EXAMPLE = \"example\",\n SPECIFICATION = \"specification\",\n GUIDANCE = \"guidance\",\n}\n\nexport enum ArtifactType {\n TEMPLATE = \"template\",\n FILE = \"file\",\n}\n\nexport enum TemplateDetailFunctionality {\n //VOCABULARY\n ORIGIN = \"origin\",\n NAMESPACE = \"namespaceIRI\",\n TERM = \"term\",\n DESCRIPTION = \"description\", //EXAMPLE and SCHEMA ALSO\n //TYPE\n NAME = \"name\", //SCHEMA ALSO\n LABEL = \"label\",\n VALUE = \"value\", //EXAMPLE ALSO\n //SCHEMA\n TYPE = \"type\", //CONSTRAINT ALSO\n REQUIRED = \"required\", //CONSTRAINT ALSO\n FIELD_TERM = \"fieldTerm\",\n //CONSTRAINT\n FIELD = \"field\", //EXAMPLE and MAPPING ALSO\n REGEX = \"regex\",\n //VALIDATION\n MEASURE = \"measure\",\n //MAPPING\n TARGET_PROFILE = \"targetProfile\",\n TARGET_FIELD = \"targetField\",\n //EXAMPLE : FIELD, VALUE, DESCIRPTION\n\n //SPECIFICATION\n CONVERSION = \"conversion\", // May be Serealization to pdf or just html\n //GUIDANCE : I think I need to remove it\n}\n\nexport type PaginatedResponse<GENERIC_SODAS_SDK_CLASS> = {\n total: number;\n list: GENERIC_SODAS_SDK_CLASS[];\n};\n\nexport enum SortOrder {\n ASC = \"ASC\",\n DESC = \"DESC\",\n}\n","import axios, {AxiosError, AxiosResponse} from \"axios\";\nimport cloneDeep from \"lodash.clonedeep\";\nimport {RetryLimitReachedError} from \"./error\";\n/**\n * Enumeration to differentiate between `ID` and `IRI`.\n *\n * @enum {string}\n */\n\n/**\n * Handles errors by logging the details and re-throwing the error.\n *\n * @param {any} error - The error object to handle.\n * @throws {any} - Re-throws the provided error after logging it.\n */\nexport function handleError(error: any): never {\n if (error.response) {\n console.error(\"Error response:\", error.response.data);\n console.error(\"Error status:\", error.response.status);\n } else if (error.request) {\n console.error(\"No response received:\", error.request);\n } else {\n console.error(\"Error:\", error.message);\n }\n throw error;\n}\n\nexport function handleAxiosError(error: AxiosError): never {\n if (axios.isAxiosError(error) && error.response) {\n const errorData = error.response.data as any;\n if (errorData.error) {\n console.error(`Error: ${error.response.status} - ${errorData.error}`);\n } else if (errorData.message) {\n console.error(`Error: ${error.response.status} - ${errorData.message}`);\n } else {\n console.error(`Error: ${error.response.status} - ${errorData}`);\n }\n } else {\n if ((error.code = \"ECONNREFUSED\")) {\n console.log(\"CONNECTION ERROR\");\n } else {\n console.error({\n message: error.message,\n code: error.code,\n status: error.response?.status,\n });\n }\n }\n throw error; // Re-throw the error so it can be handled by the caller if needed\n}\n\n/**\n * Removes all properties from an object, effectively making it empty.\n *\n * This function deletes all own properties of the provided object,\n * and remove the prototype also.\n * leaving the object in an unusable state.\n *\n * @param {object} obj - The object whose properties will be deleted.\n * @returns {void}\n *\n * @example\n * const obj = { id: 123, name: \"Test\" };\n * destroy(obj);\n * console.log(obj); // Output: {}\n */\nexport function destroy(obj: any): void {\n const keys = Object.getOwnPropertyNames(obj);\n for (const key of keys) {\n delete (obj as any)[key];\n }\n Object.setPrototypeOf(obj, Object.prototype);\n}\n\n/**\n * Creates a deep copy of the given instance, preserving the prototype chain and handling nested objects.\n *\n * This function recursively copies all properties of the instance, ensuring that nested objects\n * and arrays are also deeply copied. The returned object retains the same prototype as the original instance.\n *\n * @template T - The type of the instance to be copied.\n * @param {T} instance - The instance to be deeply copied.\n * @returns {T} A new instance that is a deep copy of the original, with the same prototype.\n */\nexport function deepCopy<T>(instance: T): T {\n return cloneDeep(instance);\n}\n\nconst SYSTEM_PROCESSING = \"SYSTEM_PROCESSING\"; // Replace with your actual flag value\n\nexport const LARGE_ENOUGH_NUMBER = 10000;\ninterface RetryResponse {\n errorCode: string;\n flag: string; // Adjust the type to match your actual API response\n [key: string]: any; // Optionally allow other properties\n}\n\n/**\n * A function to repeatedly try an Axios request until the response meets specific criteria.\n * @param requestFn - A function that executes an Axios request and returns a response.\n * @param maxRetries - Maximum number of retries before giving up.\n * @param delayMs - Delay between retries in milliseconds.\n * @returns The Axios response that meets the criteria.\n * @throws Error if the maximum number of retries is reached or if an error occurs.\n */\nexport async function retryRequest<\n GENERIC_RETRY_RESPONSE extends RetryResponse\n>(\n requestFn: () => Promise<AxiosResponse<GENERIC_RETRY_RESPONSE>>,\n maxRetries: number = 30,\n delayMs: number = 1000\n): Promise<AxiosResponse<GENERIC_RETRY_RESPONSE>> {\n let retries = 0;\n\n while (retries < maxRetries) {\n try {\n const response = await requestFn();\n if (response.status === 200 && response.data.flag !== SYSTEM_PROCESSING) {\n return response; // Return the successful response\n }\n // If still processing, wait before retrying\n if (response.status === 200 && response.data.flag === SYSTEM_PROCESSING) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n retries++;\n } else {\n return response;\n }\n } catch (error) {\n throw error; // Rethrow error if retries are exhausted\n }\n }\n throw new RetryLimitReachedError(maxRetries);\n}\n\nexport function sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","export enum ORIGIN_VALUES {\n EXISTING = \"existing\",\n APPENDING = \"appending\",\n // APPENDED = \"appended\",\n}\n\nexport enum BASIC_TYPE_VALUES {\n DATE = \"date\",\n CELCIUS = \"celcius\",\n FAHRENT = \"fahrent\",\n mph = \"mph\",\n MPS = \"mps\",\n inHg = \"inHg\",\n hPa = \"hPa\",\n in = \"in\",\n mm = \"mm\",\n microgram = \"microgram\",\n}\n\nexport enum MEASURE_VALUES {\n CONSTRAINT = \"constraint\",\n YDATA = \"y-data\",\n}\n\nexport enum CONVERSION_VALUES {\n HTML = \"html\",\n PDF = \"pdf\",\n}\n","module.exports = require(\"assert\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"stream\");","module.exports = require(\"tty\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport buildURL from './../helpers/buildURL.js';\nimport {getProxyForUrl} from 'proxy-from-env';\nimport http from 'http';\nimport https from 'https';\nimport util from 'util';\nimport followRedirects from 'follow-redirects';\nimport zlib from 'zlib';\nimport {VERSION} from '../env/data.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport platform from '../platform/index.js';\nimport fromDataURI from '../helpers/fromDataURI.js';\nimport stream from 'stream';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport AxiosTransformStream from '../helpers/AxiosTransformStream.js';\nimport {EventEmitter} from 'events';\nimport formDataToStream from \"../helpers/formDataToStream.js\";\nimport readBlob from \"../helpers/readBlob.js\";\nimport ZlibHeaderTransformStream from '../helpers/ZlibHeaderTransformStream.js';\nimport callbackify from \"../helpers/callbackify.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\n\nconst zlibOptions = {\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n};\n\nconst brotliOptions = {\n flush: zlib.constants.BROTLI_OPERATION_FLUSH,\n finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH\n}\n\nconst isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress);\n\nconst {http: httpFollow, https: httpsFollow} = followRedirects;\n\nconst isHttps = /https:?/;\n\nconst supportedProtocols = platform.protocols.map(protocol => {\n return protocol + ':';\n});\n\nconst flushOnFinish = (stream, [throttled, flush]) => {\n stream\n .on('end', flush)\n .on('error', flush);\n\n return throttled;\n}\n\n/**\n * If the proxy or config beforeRedirects functions are defined, call them with the options\n * object.\n *\n * @param {Object<string, any>} options - The options object that was passed to the request.\n *\n * @returns {Object<string, any>}\n */\nfunction dispatchBeforeRedirect(options, responseDetails) {\n if (options.beforeRedirects.proxy) {\n options.beforeRedirects.proxy(options);\n }\n if (options.beforeRedirects.config) {\n options.beforeRedirects.config(options, responseDetails);\n }\n}\n\n/**\n * If the proxy or config afterRedirects functions are defined, call them with the options\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} configProxy configuration from Axios options object\n * @param {string} location\n *\n * @returns {http.ClientRequestArgs}\n */\nfunction setProxy(options, configProxy, location) {\n let proxy = configProxy;\n if (!proxy && proxy !== false) {\n const proxyUrl = getProxyForUrl(location);\n if (proxyUrl) {\n proxy = new URL(proxyUrl);\n }\n }\n if (proxy) {\n // Basic proxy authorization\n if (proxy.username) {\n proxy.auth = (proxy.username || '') + ':' + (proxy.password || '');\n }\n\n if (proxy.auth) {\n // Support proxy auth object form\n if (proxy.auth.username || proxy.auth.password) {\n proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || '');\n }\n const base64 = Buffer\n .from(proxy.auth, 'utf8')\n .toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n options.headers.host = options.hostname + (options.port ? ':' + options.port : '');\n const proxyHost = proxy.hostname || proxy.host;\n options.hostname = proxyHost;\n // Replace 'host' since options is not a URL object\n options.host = proxyHost;\n options.port = proxy.port;\n options.path = location;\n if (proxy.protocol) {\n options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`;\n }\n }\n\n options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) {\n // Configure proxy for redirected request, passing the original config proxy to apply\n // the exact same logic as if the redirected request was performed by axios directly.\n setProxy(redirectOptions, configProxy, redirectOptions.href);\n };\n}\n\nconst isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process';\n\n// temporary hotfix\n\nconst wrapAsync = (asyncExecutor) => {\n return new Promise((resolve, reject) => {\n let onDone;\n let isDone;\n\n const done = (value, isRejected) => {\n if (isDone) return;\n isDone = true;\n onDone && onDone(value, isRejected);\n }\n\n const _resolve = (value) => {\n done(value);\n resolve(value);\n };\n\n const _reject = (reason) => {\n done(reason, true);\n reject(reason);\n }\n\n asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject);\n })\n};\n\nconst resolveFamily = ({address, family}) => {\n if (!utils.isString(address)) {\n throw TypeError('address must be a string');\n }\n return ({\n address,\n family: family || (address.indexOf('.') < 0 ? 6 : 4)\n });\n}\n\nconst buildAddressEntry = (address, family) => resolveFamily(utils.isObject(address) ? address : {address, family});\n\n/*eslint consistent-return:0*/\nexport default isHttpAdapterSupported && function httpAdapter(config) {\n return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {\n let {data, lookup, family} = config;\n const {responseType, responseEncoding} = config;\n const method = config.method.toUpperCase();\n let isDone;\n let rejected = false;\n let req;\n\n if (lookup) {\n const _lookup = callbackify(lookup, (value) => utils.isArray(value) ? value : [value]);\n // hotfix to support opt.all option which is required for node 20.x\n lookup = (hostname, opt, cb) => {\n _lookup(hostname, opt, (err, arg0, arg1) => {\n if (err) {\n return cb(err);\n }\n\n const addresses = utils.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];\n\n opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);\n });\n }\n }\n\n // temporary internal emitter until the AxiosRequest class will be implemented\n const emitter = new EventEmitter();\n\n const onFinished = () => {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(abort);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', abort);\n }\n\n emitter.removeAllListeners();\n }\n\n onDone((value, isRejected) => {\n isDone = true;\n if (isRejected) {\n rejected = true;\n onFinished();\n }\n });\n\n function abort(reason) {\n emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason);\n }\n\n emitter.once('abort', reject);\n\n if (config.cancelToken || config.signal) {\n config.cancelToken && config.cancelToken.subscribe(abort);\n if (config.signal) {\n config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort);\n }\n }\n\n // Parse url\n const fullPath = buildFullPath(config.baseURL, config.url);\n const parsed = new URL(fullPath, platform.hasBrowserEnv ? platform.origin : undefined);\n const protocol = parsed.protocol || supportedProtocols[0];\n\n if (protocol === 'data:') {\n let convertedData;\n\n if (method !== 'GET') {\n return settle(resolve, reject, {\n status: 405,\n statusText: 'method not allowed',\n headers: {},\n config\n });\n }\n\n try {\n convertedData = fromDataURI(config.url, responseType === 'blob', {\n Blob: config.env && config.env.Blob\n });\n } catch (err) {\n throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config);\n }\n\n if (responseType === 'text') {\n convertedData = convertedData.toString(responseEncoding);\n\n if (!responseEncoding || responseEncoding === 'utf8') {\n convertedData = utils.stripBOM(convertedData);\n }\n } else if (responseType === 'stream') {\n convertedData = stream.Readable.from(convertedData);\n }\n\n return settle(resolve, reject, {\n data: convertedData,\n status: 200,\n statusText: 'OK',\n headers: new AxiosHeaders(),\n config\n });\n }\n\n if (supportedProtocols.indexOf(protocol) === -1) {\n return reject(new AxiosError(\n 'Unsupported protocol ' + protocol,\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n const headers = AxiosHeaders.from(config.headers).normalize();\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n // User-Agent is specified; handle case where no UA header is desired\n // Only set header if it hasn't been set in config\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const {onUploadProgress, onDownloadProgress} = config;\n const maxRate = config.maxRate;\n let maxUploadRate = undefined;\n let maxDownloadRate = undefined;\n\n // support for spec compliant FormData objects\n if (utils.isSpecCompliantForm(data)) {\n const userBoundary = headers.getContentType(/boundary=([-_\\w\\d]{10,70})/i);\n\n data = formDataToStream(data, (formHeaders) => {\n headers.set(formHeaders);\n }, {\n tag: `axios-${VERSION}-boundary`,\n boundary: userBoundary && userBoundary[1] || undefined\n });\n // support for https://www.npmjs.com/package/form-data api\n } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) {\n headers.set(data.getHeaders());\n\n if (!headers.hasContentLength()) {\n try {\n const knownLength = await util.promisify(data.getLength).call(data);\n Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength);\n /*eslint no-empty:0*/\n } catch (e) {\n }\n }\n } else if (utils.isBlob(data)) {\n data.size && headers.setContentType(data.type || 'application/octet-stream');\n headers.setContentLength(data.size || 0);\n data = stream.Readable.from(readBlob(data));\n } else if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(new AxiosError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers.setContentLength(data.length, false);\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n }\n\n const contentLength = utils.toFiniteNumber(headers.getContentLength());\n\n if (utils.isArray(maxRate)) {\n maxUploadRate = maxRate[0];\n maxDownloadRate = maxRate[1];\n } else {\n maxUploadRate = maxDownloadRate = maxRate;\n }\n\n if (data && (onUploadProgress || maxUploadRate)) {\n if (!utils.isStream(data)) {\n data = stream.Readable.from(data, {objectMode: false});\n }\n\n data = stream.pipeline([data, new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxUploadRate)\n })], utils.noop);\n\n onUploadProgress && data.on('progress', flushOnFinish(\n data,\n progressEventDecorator(\n contentLength,\n progressEventReducer(asyncDecorator(onUploadProgress), false, 3)\n )\n ));\n }\n\n // HTTP basic authentication\n let auth = undefined;\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n if (!auth && parsed.username) {\n const urlUsername = parsed.username;\n const urlPassword = parsed.password;\n auth = urlUsername + ':' + urlPassword;\n }\n\n auth && headers.delete('authorization');\n\n let path;\n\n try {\n path = buildURL(\n parsed.pathname + parsed.search,\n config.params,\n config.paramsSerializer\n ).replace(/^\\?/, '');\n } catch (err) {\n const customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n return reject(customErr);\n }\n\n headers.set(\n 'Accept-Encoding',\n 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false\n );\n\n const options = {\n path,\n method: method,\n headers: headers.toJSON(),\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth,\n protocol,\n family,\n beforeRedirect: dispatchBeforeRedirect,\n beforeRedirects: {}\n };\n\n // cacheable-lookup integration hotfix\n !utils.isUndefined(lookup) && (options.lookup = lookup);\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname.startsWith(\"[\") ? parsed.hostname.slice(1, -1) : parsed.hostname;\n options.port = parsed.port;\n setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n let transport;\n const isHttpsRequest = isHttps.test(options.protocol);\n options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsRequest ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n if (config.beforeRedirect) {\n options.beforeRedirects.config = config.beforeRedirect;\n }\n transport = isHttpsRequest ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n } else {\n // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited\n options.maxBodyLength = Infinity;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n req = transport.request(options, function handleResponse(res) {\n if (req.destroyed) return;\n\n const streams = [res];\n\n const responseLength = +res.headers['content-length'];\n\n if (onDownloadProgress || maxDownloadRate) {\n const transformStream = new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxDownloadRate)\n });\n\n onDownloadProgress && transformStream.on('progress', flushOnFinish(\n transformStream,\n progressEventDecorator(\n responseLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true, 3)\n )\n ));\n\n streams.push(transformStream);\n }\n\n // decompress the response body transparently if required\n let responseStream = res;\n\n // return the last request in case of redirects\n const lastRequest = res.req || req;\n\n // if decompress disabled we should not decompress\n if (config.decompress !== false && res.headers['content-encoding']) {\n // if no content, but headers still say that it is encoded,\n // remove the header not confuse downstream operations\n if (method === 'HEAD' || res.statusCode === 204) {\n delete res.headers['content-encoding'];\n }\n\n switch ((res.headers['content-encoding'] || '').toLowerCase()) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'x-gzip':\n case 'compress':\n case 'x-compress':\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'deflate':\n streams.push(new ZlibHeaderTransformStream());\n\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'br':\n if (isBrotliSupported) {\n streams.push(zlib.createBrotliDecompress(brotliOptions));\n delete res.headers['content-encoding'];\n }\n }\n }\n\n responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0];\n\n const offListeners = stream.finished(responseStream, () => {\n offListeners();\n onFinished();\n });\n\n const response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: new AxiosHeaders(res.headers),\n config,\n request: lastRequest\n };\n\n if (responseType === 'stream') {\n response.data = responseStream;\n settle(resolve, reject, response);\n } else {\n const responseBuffer = [];\n let totalResponseBytes = 0;\n\n responseStream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destroy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n responseStream.destroy();\n reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE, config, lastRequest));\n }\n });\n\n responseStream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n\n const err = new AxiosError(\n 'maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest\n );\n responseStream.destroy(err);\n reject(err);\n });\n\n responseStream.on('error', function handleStreamError(err) {\n if (req.destroyed) return;\n reject(AxiosError.from(err, null, config, lastRequest));\n });\n\n responseStream.on('end', function handleStreamEnd() {\n try {\n let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (responseType !== 'arraybuffer') {\n responseData = responseData.toString(responseEncoding);\n if (!responseEncoding || responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n return reject(AxiosError.from(err, null, config, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n\n emitter.once('abort', err => {\n if (!responseStream.destroyed) {\n responseStream.emit('error', err);\n responseStream.destroy();\n }\n });\n });\n\n emitter.once('abort', err => {\n reject(err);\n req.destroy(err);\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n // @todo remove\n // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return;\n reject(AxiosError.from(err, null, config, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n const timeout = parseInt(config.timeout, 10);\n\n if (Number.isNaN(timeout)) {\n reject(new AxiosError(\n 'error trying to parse `config.timeout` to int',\n AxiosError.ERR_BAD_OPTION_VALUE,\n config,\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devouring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n if (isDone) return;\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n req\n ));\n abort();\n });\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n let ended = false;\n let errored = false;\n\n data.on('end', () => {\n ended = true;\n });\n\n data.once('error', err => {\n errored = true;\n req.destroy(err);\n });\n\n data.on('close', () => {\n if (!ended && !errored) {\n abort(new CanceledError('Request stream has been aborted', config, req));\n }\n });\n\n data.pipe(req);\n } else {\n req.end(data);\n }\n });\n}\n\nexport const __setProxy = setProxy;\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","export const VERSION = \"1.7.7\";","'use strict';\n\nimport stream from 'stream';\nimport utils from '../utils.js';\n\nconst kInternals = Symbol('internals');\n\nclass AxiosTransformStream extends stream.Transform{\n constructor(options) {\n options = utils.toFlatObject(options, {\n maxRate: 0,\n chunkSize: 64 * 1024,\n minChunkSize: 100,\n timeWindow: 500,\n ticksRate: 2,\n samplesCount: 15\n }, null, (prop, source) => {\n return !utils.isUndefined(source[prop]);\n });\n\n super({\n readableHighWaterMark: options.chunkSize\n });\n\n const internals = this[kInternals] = {\n timeWindow: options.timeWindow,\n chunkSize: options.chunkSize,\n maxRate: options.maxRate,\n minChunkSize: options.minChunkSize,\n bytesSeen: 0,\n isCaptured: false,\n notifiedBytesLoaded: 0,\n ts: Date.now(),\n bytes: 0,\n onReadCallback: null\n };\n\n this.on('newListener', event => {\n if (event === 'progress') {\n if (!internals.isCaptured) {\n internals.isCaptured = true;\n }\n }\n });\n }\n\n _read(size) {\n const internals = this[kInternals];\n\n if (internals.onReadCallback) {\n internals.onReadCallback();\n }\n\n return super._read(size);\n }\n\n _transform(chunk, encoding, callback) {\n const internals = this[kInternals];\n const maxRate = internals.maxRate;\n\n const readableHighWaterMark = this.readableHighWaterMark;\n\n const timeWindow = internals.timeWindow;\n\n const divider = 1000 / timeWindow;\n const bytesThreshold = (maxRate / divider);\n const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;\n\n const pushChunk = (_chunk, _callback) => {\n const bytes = Buffer.byteLength(_chunk);\n internals.bytesSeen += bytes;\n internals.bytes += bytes;\n\n internals.isCaptured && this.emit('progress', internals.bytesSeen);\n\n if (this.push(_chunk)) {\n process.nextTick(_callback);\n } else {\n internals.onReadCallback = () => {\n internals.onReadCallback = null;\n process.nextTick(_callback);\n };\n }\n }\n\n const transformChunk = (_chunk, _callback) => {\n const chunkSize = Buffer.byteLength(_chunk);\n let chunkRemainder = null;\n let maxChunkSize = readableHighWaterMark;\n let bytesLeft;\n let passed = 0;\n\n if (maxRate) {\n const now = Date.now();\n\n if (!internals.ts || (passed = (now - internals.ts)) >= timeWindow) {\n internals.ts = now;\n bytesLeft = bytesThreshold - internals.bytes;\n internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;\n passed = 0;\n }\n\n bytesLeft = bytesThreshold - internals.bytes;\n }\n\n if (maxRate) {\n if (bytesLeft <= 0) {\n // next time window\n return setTimeout(() => {\n _callback(null, _chunk);\n }, timeWindow - passed);\n }\n\n if (bytesLeft < maxChunkSize) {\n maxChunkSize = bytesLeft;\n }\n }\n\n if (maxChunkSize && chunkSize > maxChunkSize && (chunkSize - maxChunkSize) > minChunkSize) {\n chunkRemainder = _chunk.subarray(maxChunkSize);\n _chunk = _chunk.subarray(0, maxChunkSize);\n }\n\n pushChunk(_chunk, chunkRemainder ? () => {\n process.nextTick(_callback, null, chunkRemainder);\n } : _callback);\n };\n\n transformChunk(chunk, function transformNextChunk(err, _chunk) {\n if (err) {\n return callback(err);\n }\n\n if (_chunk) {\n transformChunk(_chunk, transformNextChunk);\n } else {\n callback(null);\n }\n });\n }\n}\n\nexport default AxiosTransformStream;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","\"use strict\";\n\nimport stream from \"stream\";\n\nclass ZlibHeaderTransformStream extends stream.Transform {\n __transform(chunk, encoding, callback) {\n this.push(chunk);\n callback();\n }\n\n _transform(chunk, encoding, callback) {\n if (chunk.length !== 0) {\n this._transform = this.__transform;\n\n // Add Default Compression headers if no zlib headers are present\n if (chunk[0] !== 120) { // Hex: 78\n const header = Buffer.alloc(2);\n header[0] = 120; // Hex: 78\n header[1] = 156; // Hex: 9C \n this.push(header, encoding);\n }\n }\n\n this.__transform(chunk, encoding, callback);\n }\n}\n\nexport default ZlibHeaderTransformStream;\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","import utils from \"../utils.js\";\n\nconst callbackify = (fn, reducer) => {\n return utils.isAsyncFn(fn) ? function (...args) {\n const cb = args.pop();\n fn.apply(this, args).then((value) => {\n try {\n reducer ? cb(null, ...reducer(value)) : cb(null, value);\n } catch (err) {\n cb(err);\n }\n }, cb);\n } : fn;\n}\n\nexport default callbackify;\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","import {TextEncoder} from 'util';\nimport {Readable} from 'stream';\nimport utils from \"../utils.js\";\nimport readBlob from \"./readBlob.js\";\n\nconst BOUNDARY_ALPHABET = utils.ALPHABET.ALPHA_DIGIT + '-_';\n\nconst textEncoder = new TextEncoder();\n\nconst CRLF = '\\r\\n';\nconst CRLF_BYTES = textEncoder.encode(CRLF);\nconst CRLF_BYTES_COUNT = 2;\n\nclass FormDataPart {\n constructor(name, value) {\n const {escapeName} = this.constructor;\n const isStringValue = utils.isString(value);\n\n let headers = `Content-Disposition: form-data; name=\"${escapeName(name)}\"${\n !isStringValue && value.name ? `; filename=\"${escapeName(value.name)}\"` : ''\n }${CRLF}`;\n\n if (isStringValue) {\n value = textEncoder.encode(String(value).replace(/\\r?\\n|\\r\\n?/g, CRLF));\n } else {\n headers += `Content-Type: ${value.type || \"application/octet-stream\"}${CRLF}`\n }\n\n this.headers = textEncoder.encode(headers + CRLF);\n\n this.contentLength = isStringValue ? value.byteLength : value.size;\n\n this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;\n\n this.name = name;\n this.value = value;\n }\n\n async *encode(){\n yield this.headers;\n\n const {value} = this;\n\n if(utils.isTypedArray(value)) {\n yield value;\n } else {\n yield* readBlob(value);\n }\n\n yield CRLF_BYTES;\n }\n\n static escapeName(name) {\n return String(name).replace(/[\\r\\n\"]/g, (match) => ({\n '\\r' : '%0D',\n '\\n' : '%0A',\n '\"' : '%22',\n }[match]));\n }\n}\n\nconst formDataToStream = (form, headersHandler, options) => {\n const {\n tag = 'form-data-boundary',\n size = 25,\n boundary = tag + '-' + utils.generateString(size, BOUNDARY_ALPHABET)\n } = options || {};\n\n if(!utils.isFormData(form)) {\n throw TypeError('FormData instance required');\n }\n\n if (boundary.length < 1 || boundary.length > 70) {\n throw Error('boundary must be 10-70 characters long')\n }\n\n const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);\n const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + CRLF);\n let contentLength = footerBytes.byteLength;\n\n const parts = Array.from(form.entries()).map(([name, value]) => {\n const part = new FormDataPart(name, value);\n contentLength += part.size;\n return part;\n });\n\n contentLength += boundaryBytes.byteLength * parts.length;\n\n contentLength = utils.toFiniteNumber(contentLength);\n\n const computedHeaders = {\n 'Content-Type': `multipart/form-data; boundary=${boundary}`\n }\n\n if (Number.isFinite(contentLength)) {\n computedHeaders['Content-Length'] = contentLength;\n }\n\n headersHandler && headersHandler(computedHeaders);\n\n return Readable.from((async function *() {\n for(const part of parts) {\n yield boundaryBytes;\n yield* part.encode();\n }\n\n yield footerBytes;\n })());\n};\n\nexport default formDataToStream;\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport parseProtocol from './parseProtocol.js';\nimport platform from '../platform/index.js';\n\nconst DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\\s\\S]*)$/;\n\n/**\n * Parse data uri to a Buffer or Blob\n *\n * @param {String} uri\n * @param {?Boolean} asBlob\n * @param {?Object} options\n * @param {?Function} options.Blob\n *\n * @returns {Buffer|Blob}\n */\nexport default function fromDataURI(uri, asBlob, options) {\n const _Blob = options && options.Blob || platform.classes.Blob;\n const protocol = parseProtocol(uri);\n\n if (asBlob === undefined && _Blob) {\n asBlob = true;\n }\n\n if (protocol === 'data') {\n uri = protocol.length ? uri.slice(protocol.length + 1) : uri;\n\n const match = DATA_URL_PATTERN.exec(uri);\n\n if (!match) {\n throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL);\n }\n\n const mime = match[1];\n const isBase64 = match[2];\n const body = match[3];\n const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8');\n\n if (asBlob) {\n if (!_Blob) {\n throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);\n }\n\n return new _Blob([buffer], {type: mime});\n }\n\n return buffer;\n }\n\n throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","const {asyncIterator} = Symbol;\n\nconst readBlob = async function* (blob) {\n if (blob.stream) {\n yield* blob.stream()\n } else if (blob.arrayBuffer) {\n yield await blob.arrayBuffer()\n } else if (blob[asyncIterator]) {\n yield* blob[asyncIterator]();\n } else {\n yield blob;\n }\n}\n\nexport default readBlob;\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","import FormData from 'form-data';\n\nexport default FormData;\n","'use strict';\n\nimport url from 'url';\nexport default url.URLSearchParams;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\n\nexport default {\n isNode: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob: typeof Blob !== 'undefined' && Blob || null\n },\n protocols: [ 'http', 'https', 'file', 'data' ]\n};\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// Import named functions first\nimport DataService from \"./SODAS_SDK_CLASS/DCAT/dataService\";\nimport Dataset from \"./SODAS_SDK_CLASS/DCAT/dataset\";\nimport DatasetSeries from \"./SODAS_SDK_CLASS/DCAT/datasetSeries\";\nimport Distribution from \"./SODAS_SDK_CLASS/DCAT/distribution\";\nimport ValidationTemplate from \"./SODAS_SDK_CLASS/template/validation\";\nimport Config from \"./core/auth\";\nimport {\n setGovernanceBearerToken,\n setLegacyDatahubBearerToken,\n} from \"./core/init\";\nimport {\n ArtifactType,\n IDType,\n IRIType,\n ResourceDescriptorRole,\n SortOrder,\n TemplateDetailFunctionality,\n asID,\n asIRI,\n} from \"./core/type\";\nimport {\n BASIC_TYPE_VALUES,\n CONVERSION_VALUES,\n MEASURE_VALUES,\n ORIGIN_VALUES,\n} from \"./core/values\";\n\n// ✅ Named exports (For ES module compatibility)\nexport {\n ArtifactType,\n BASIC_TYPE_VALUES,\n CONVERSION_VALUES,\n Config,\n DataService,\n Dataset,\n DatasetSeries,\n Distribution,\n IDType,\n IRIType,\n MEASURE_VALUES,\n ORIGIN_VALUES,\n ResourceDescriptorRole,\n SortOrder,\n TemplateDetailFunctionality,\n ValidationTemplate,\n asID,\n asIRI,\n setGovernanceBearerToken,\n setLegacyDatahubBearerToken,\n};\n\n// ✅ Default export (For CommonJS compatibility)\nconst sdk = {\n ArtifactType,\n BASIC_TYPE_VALUES,\n CONVERSION_VALUES,\n Config,\n DataService,\n Dataset,\n DatasetSeries,\n Distribution,\n MEASURE_VALUES,\n ORIGIN_VALUES,\n ResourceDescriptorRole,\n SortOrder,\n TemplateDetailFunctionality,\n ValidationTemplate,\n asID,\n asIRI,\n setGovernanceBearerToken,\n setLegacyDatahubBearerToken,\n};\n\n// ✅ Ensures `require(\"sodas-sdk\")` works in CommonJS\nexport default sdk;\n"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"index.legacy.node.cjs","mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;;;;;;;;;ACVA;AACA;AACA,kBAAkB,mBAAO,CAAC,0DAAe;AACzC,kBAAkB,mBAAO,CAAC,sDAAa;AACvC,kBAAkB,mBAAO,CAAC,oEAAoB;AAC9C;;;;;;;;;;;ACLA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5BA,YAAY,mBAAO,CAAC,wDAAY;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,iBAAiB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;;;;;;;;;;ACjCA;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzBA,YAAY,mBAAO,CAAC,wDAAY;AAChC,YAAY,mBAAO,CAAC,wDAAY;AAChC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,eAAe;AAC5B,aAAa,OAAO;AACpB,aAAa,UAAU;AACvB,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AC1EA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,aAAa,eAAe;AAC5B;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;;;;;;;;;;ACpCA,YAAY,mBAAO,CAAC,wDAAY;AAChC,YAAY,mBAAO,CAAC,wDAAY;AAChC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,gEAAkB;AAC3C,iBAAiB,mBAAO,CAAC,4DAAgB;AACzC,iBAAiB,mBAAO,CAAC,sEAAqB;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;;;;;;;;;;AC1CA,oBAAoB,mBAAO,CAAC,oEAAoB;;AAEhD;AACA;;AAEA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;;;;;;;;;;;AChBA,iBAAiB,mBAAO,CAAC,gEAAkB;AAC3C,iBAAiB,mBAAO,CAAC,4DAAgB;AACzC,iBAAiB,mBAAO,CAAC,sEAAqB;AAC9C;;AAEA;AACA;AACA;AACA,wBAAwB;AACxB,yBAAyB;;AAEzB;AACA;AACA;AACA,aAAa,cAAc;AAC3B,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1EA,WAAW,mBAAO,CAAC,kBAAM;AACzB,aAAa,oDAAwB;AACrC,oBAAoB,mBAAO,CAAC,2EAAgB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;AC/MA;;AAEA;AACA;AACA;;AAEA,kBAAkB;AAClB,YAAY;AACZ,YAAY;AACZ,iBAAiB;AACjB,eAAe;AACf,eAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4CAA4C;;AAEvD;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,oDAAU;;AAEnC,OAAO,YAAY;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;AC7QA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAO,CAAC,sCAAI;AACpC;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,eAAe;AAC3B;AACA;AACA;AACA;;AAEA,kBAAkB,sBAAsB;AACxC;AACA,cAAc;AACd;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,cAAc,SAAS;AACvB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;;AAEA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACjRA;AACA;AACA;AACA;;AAEA;AACA,CAAC,+FAAwC;AACzC,EAAE;AACF,CAAC,yFAAqC;AACtC;;;;;;;;;;;ACTA;AACA;AACA;;AAEA,YAAY,mBAAO,CAAC,gBAAK;AACzB,aAAa,mBAAO,CAAC,kBAAM;;AAE3B;AACA;AACA;;AAEA,YAAY;AACZ,WAAW;AACX,kBAAkB;AAClB,YAAY;AACZ,YAAY;AACZ,iBAAiB;AACjB,eAAe;AACf,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA,cAAc;;AAEd;AACA;AACA;AACA,uBAAuB,mBAAO,CAAC,8DAAgB;;AAE/C;AACA,EAAE,cAAc;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF,6DAA6D;AAC7D;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,CAAC,IAAI;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,4BAA4B;;AAEpC;AACA;AACA,iDAAiD,EAAE;AACnD,sBAAsB,WAAW,IAAI,MAAM;;AAE3C;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;;AAEA,iBAAiB,mBAAO,CAAC,oDAAU;;AAEnC,OAAO,YAAY;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;ACtQA,aAAa,oDAAwB;AACrC,WAAW,mBAAO,CAAC,kBAAM;;AAEzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1GA;;AAEA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,gDAAO;AAC7B;AACA,oBAAoB;AACpB;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;;;;;;;;;;;ACdA,UAAU,mBAAO,CAAC,gBAAK;AACvB;AACA,WAAW,mBAAO,CAAC,kBAAM;AACzB,YAAY,mBAAO,CAAC,oBAAO;AAC3B,eAAe,sDAA0B;AACzC,aAAa,mBAAO,CAAC,sBAAQ;AAC7B,YAAY,mBAAO,CAAC,yDAAS;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,cAAc;AACrD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gCAAgC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,uBAAuB,wCAAwC;AAC/D,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;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,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,mBAAmB;;AAEnE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,sEAAsE;AACvF,aAAa,kEAAkE;AAC/E,KAAK;AACL,GAAG;AACH;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD,mBAAmB;;;;;;;;;;;AC7qBnB,qBAAqB,mBAAO,CAAC,8EAAiB;AAC9C,WAAW,mBAAO,CAAC,kBAAM;AACzB,WAAW,mBAAO,CAAC,kBAAM;AACzB,WAAW,mBAAO,CAAC,kBAAM;AACzB,YAAY,mBAAO,CAAC,oBAAO;AAC3B,eAAe,6CAAoB;AACnC,SAAS,mBAAO,CAAC,cAAI;AACrB,aAAa,oDAAwB;AACrC,WAAW,mBAAO,CAAC,sDAAY;AAC/B,eAAe,mBAAO,CAAC,kDAAU;AACjC,eAAe,mBAAO,CAAC,+DAAe;;AAEtC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,eAAe;AACf;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8CAA8C,SAAS;AACvD;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACpfA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;ACTa;;AAEb;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,QAAQ,UAAU;AAC7B,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,UAAU;AAC7B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACntDA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uFAAqC;;;;;;;;;;;;ACXrC;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ;AACA;AACA;AACA;;AAEA,SAAS,mBAAO,CAAC,gDAAS;AAC1B,cAAc,iDAAuB;;AAErC;AACA;AACA;AACA;;AAEA,mCAAmC,SAAS;AAC5C;;AAEA;AACA;AACA;AACA;;AAEA,eAAe;AACf,gBAAgB,KAAK;AACrB,mBAAmB;AACnB,iBAAiB;AACjB,kBAAkB;AAClB,cAAc;AACd,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B;AAC5B;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;AC3LA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,YAAY,OAAO;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;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;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACjKa;;AAEb,eAAe,6CAAoB;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAW,eAAe;AAC1B,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA,sBAAsB;;;;;;;;;;;;AC3GT;AACb,WAAW,mBAAO,CAAC,cAAI;AACvB,YAAY,mBAAO,CAAC,gBAAK;AACzB,gBAAgB,mBAAO,CAAC,kDAAU;;AAElC,OAAO,KAAK;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iCAAiC,GAAG;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtI0B;AACqC;AACY;AAC1B;AAEkB;AACH;AAMhE;;GAEG;AACH,MAAM,WAAY,SAAQ,qDAAa;IAKrC;;;;;OAKG;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CA;AACA,OAAO;AACP,KAAK;AACL,IAAI;AACJ;;AAEA;AACA;AACA,YAAY,2DAAU,kBAAkB,2DAAU;AAClD;AACA;AACA;AACA;AACA;;AAEA,UAAU,2DAAU;AACpB;AACA,CAAC,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClOU;;AAEqB;AACO;AACY;AACL;AACF;AACtB;AACE;AACF;AACuB;AACvB;AACe;AACwB;AAChB;AACQ;AACX;AACQ;AACxB;AACuB;AACmB;AAClC;AAC0B;AAChB;AACkC;AAC5B;AAC4D;;AAEhH;AACA,SAAS,2CAAc;AACvB,eAAe,2CAAc;AAC7B;;AAEA;AACA,SAAS,2CAAc;AACvB,eAAe,2CAAc;AAC7B;;AAEA,0BAA0B,iDAAK,YAAY,wDAA2B;;AAEtE,OAAO,sCAAsC,EAAE,6CAAe;;AAE9D;;AAEA,2BAA2B,0DAAQ;AACnC;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC,WAAW,kBAAkB;AAC7B,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,qBAAqB,8DAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,eAAe;AAC3F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAiE,iDAAK;;AAEtE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA,wBAAwB,gBAAgB;AACxC,OAAO,iDAAK;AACZ;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,6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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAgB;;AAEvC;AACA;AACA;AACA;AACA,2BAA2B,8EAAyB;;AAEpD;AACA,uBAAuB,6CAAgB;;AAEvC;AACA;AACA;AACA;AACA;AACA,yBAAyB,wDAA2B;AACpD;AACA;AACA;AACA;;AAEA,4CAA4C,4CAAe,UAAU,iDAAK;;AAE1E,2BAA2B,4CAAe;AAC1C;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,qBAAqB,8DAAY;AACjC;AACA;AACA;;AAEA;AACA;AACA,QAAQ,4DAAM;AACd,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4DAAU;AACjC,cAAc,4DAAU;AACxB;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,0BAA0B,4DAAU;AACpC;AACA,YAAY,4DAAU;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,iBAAiB,4DAAU;AAC3B,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iDAAK;AACpC;AACA;AACA;AACA,YAAY;AACZ,0BAA0B,4DAAU;AACpC;AACA,UAAU,4DAAM;AAChB,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,aAAa,4DAAU;AACvB,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,4DAAU;AAC7B;AACA,UAAU,4DAAU;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,kEAAoB;AACxE;AACA;AACA;AACA,mBAAmB,4DAAU;AAC7B;AACA,6CAA6C,4DAAU,aAAa,4DAAU;AAC9E;AACA;AACA;AACA;AACA,OAAO;AACP;;;AAGA;AACA,QAAQ,iDAAK;AACb;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,oBAAoB,iEAAa;AACjC;AACA,OAAO;;AAEP;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH,CAAC;;AAEM;;;;;;;;;;;;;;;;;;;;;;;;;;ACtrB2B;AACO;AACsB;AAChB;AACQ;AACC;AACZ;AACO;AACqB;AAChB;;AAExD;;AAEA,iEAAe;AACf;AACA,oBAAoB,qEAAa;AACjC;AACA,2BAA2B,6DAAY;AACvC,SAAS,oDAAoD;AAC7D;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC,wCAAwC;;AAExC;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B,6DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,2DAAM;AACZ;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,2DAAU,oBAAoB,2DAAU;;AAEzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,2DAAU,kBAAkB,2DAAU;;AAEvD;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD,iEAAoB;AACvE;AACA;AACA;AACA,iBAAiB,2DAAU;AAC3B;AACA,2CAA2C,2DAAU,aAAa,2DAAU;AAC5E;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM,iDAAK;AACX;AACA,OAAO;AACP;;AAEA;AACA,SAAS,iDAAK;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C,sFAAoB;AAChE;AACA;;AAEA;AACA;AACA,wCAAwC,sFAAoB;;AAE5D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gEAAa;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,qEAAa;;AAElC,oBAAoB,0DAAQ;AAC5B,iBAAiB,2DAAU,2CAA2C,2DAAU;AAChF;AACA;;;AAGA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpMY;;AAEkB;AACM;AACD;AACY;AACL;AACc;AACH;AACJ;AACN;AACN;AACW;AACH;AACL;AACY;AACH;AACJ;AACW;;AAEzD;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,OAAO;AACpB;AACA;AACA,sBAAsB,sDAAK;AAC3B,mBAAmB,4DAAI,CAAC,sDAAK;;AAE7B;AACA,EAAE,iDAAK,kBAAkB,sDAAK,sBAAsB,iBAAiB;;AAErE;AACA,EAAE,iDAAK,kCAAkC,iBAAiB;;AAE1D;AACA;AACA,0BAA0B,gEAAW;AACrC;;AAEA;AACA;;AAEA;AACA,6BAA6B,0DAAQ;;AAErC;AACA,cAAc,sDAAK;;AAEnB;AACA,sBAAsB,gEAAa;AACnC,oBAAoB,8DAAW;AAC/B,iBAAiB,2DAAQ;AACzB,gBAAgB,iDAAO;AACvB,mBAAmB,8DAAU;;AAE7B;AACA,mBAAmB,4DAAU;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe,2DAAM;;AAErB;AACA,qBAAqB,iEAAY;;AAEjC;AACA,oBAAoB,4DAAW;;AAE/B,qBAAqB,8DAAY;;AAEjC,4BAA4B,uEAAc,CAAC,iDAAK;;AAEhD,mBAAmB,8DAAQ;;AAE3B,uBAAuB,mEAAc;;AAErC;;AAEA;AACA,iEAAe,KAAK;;;;;;;;;;;;;;;;;ACxFP;;AAEkC;;AAE/C;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,yDAAa;AACtC;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;;ACtId;;AAEkC;AACf;;AAEhC;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA,EAAE,2DAAU,oDAAoD,2DAAU;AAC1E;AACA;;AAEA,iDAAK,yBAAyB,2DAAU;AACxC;AACA,CAAC;;AAED,iEAAe,aAAa,EAAC;;;;;;;;;;;;;;;;ACxBhB;;AAEE;AACf;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACJa;;AAEqB;AACY;AACW;AACN;AACR;AACI;AACC;AACH;;AAE7C,mBAAmB,6DAAS;;AAE5B;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,mBAAmB,8DAAkB;AACrC,oBAAoB,8DAAkB;AACtC;AACA;;AAEA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,aAAa,SAAS;AACtB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oEAAoE;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,aAAa,2DAAW;;AAExB,WAAW,yCAAyC;;AAEpD;AACA,MAAM,6DAAS;AACf;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA,UAAU,iDAAK;AACf;AACA;AACA;AACA,QAAQ;AACR,QAAQ,6DAAS;AACjB;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,iDAAK;AACzC;AACA;AACA;;AAEA,eAAe,iDAAK;AACpB;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,wDAAY;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA,qBAAqB,2DAAe;AACpC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,2DAAe;AAC/B,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,2DAAW;AACxB,qBAAqB,6DAAa;AAClC,WAAW,gEAAQ;AACnB;AACA;;AAEA;AACA,iDAAK;AACL;AACA;AACA,wBAAwB,2DAAW,aAAa;AAChD;AACA;AACA,yBAAyB;AACzB,KAAK;AACL;AACA,CAAC;;AAED,iDAAK;AACL;;AAEA;AACA;AACA,0BAA0B,2DAAW,aAAa;AAClD;AACA;AACA;AACA,UAAU,IAAI;AACd;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA,CAAC;;AAED,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;ACnOR;;AAEmB;;AAEhC;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iDAAK;AACnB;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,CAAC;;AAED;AACA,kDAAkD,YAAY;;AAE9D;AACA;AACA;;AAEA,EAAE,iDAAK;AACP;AACA,GAAG;AACH;AACA,GAAG;;AAEH;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;ACtGb;;AAEmB;AACsB;;AAEtD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS,iDAAK;AACd;;AAEA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,MAAM,iDAAK;AACX;AACA;;AAEA;AACA;AACA;;AAEA,OAAO,iDAAK;;AAEZ,MAAM,iDAAK;AACX;AACA;;AAEA,MAAM,iDAAK;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,uBAAuB,iDAAK;;AAE5B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,iDAAK;;AAEvB;AACA;AACA;AACA;;AAEA;AACA,MAAM,iDAAK;;AAEX,QAAQ,iDAAK;AACb;AACA,MAAM,QAAQ,iDAAK;AACnB,iBAAiB,oEAAY;AAC7B,MAAM,SAAS,iDAAK;AACpB;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,iDAAK;;AAEvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,YAAY,iDAAK;AACjB;AACA;;AAEA,YAAY,iDAAK;AACjB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,iDAAK;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,iDAAK;;AAEzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,iDAAK;AACb;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,iDAAK;AACT,kBAAkB,iDAAK;;AAEvB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI,iDAAK;AACT,sEAAsE,iDAAK;AAC3E,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,iDAAK;;AAET;AACA;AACA;;AAEA;;AAEA;AACA,iDAAK,6CAA6C,MAAM;AACxD,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,iDAAK;;AAEL,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;;AC7Sf;;AAEqB;;AAElC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA,eAAe;AACf;AACA;AACA,IAAI,iDAAK;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,iEA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Q;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;;AAEA,iEAAe,oBAAoB,EAAC;;;;;;;;;;;;;;;;;AC9IvB;;AAE4B;;AAEzC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,WAAW,qBAAqB;AAChC;AACA,aAAa;AACb;AACA;AACA;;AAEA,YAAY,0DAAU;AACtB;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,GAAG;AACH;;AAEA,iEAAe,oBAAoB,EAAC;;;;;;;;;;;;;;;;ACzDpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED,iEAAe,cAAc,EAAC;;;;;;;;;;;;;;;;;ACtEjB;;AAEe;;AAE5B,wCAAwC,6CAAgB;AACxD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA,yBAAyB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AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA,sBAAsB,iDAAK;AAC3B;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG,GAAG,EAAC;;;;;;;;;;;;;;;;;AClEM;;AAEqB;;AAElC;AACA;AACA,0BAA0B,iDAAK;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA,iEAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;ACtDW;;AAEE;AACf,0BAA0B,KAAK;AAC/B;AACA;;;;;;;;;;;;;;;;;;;;;ACL2C;AACN;AACL;;AAEzB;AACP;AACA,uBAAuB,2DAAW;;AAElC,SAAS,wDAAQ;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO,4CAA4C,iDAAK;;;;;;;;;;;;;;;;AC3CxD,OAAO,eAAe;;AAEtB;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;;;;;;;;ACdoB;AACZ;AACmB;AAChB;AACkB;AACJ;AACE;AACd;;AAErC,iEAAe;AACf,oBAAoB,gEAAW,GAAG;;AAElC,OAAO,oEAAoE;;AAE3E,gCAAgC,6DAAY;;AAE5C,kBAAkB,wDAAQ,CAAC,kEAAa;;AAExC;AACA;AACA;AACA;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ACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,QAAQ,iDAAK;;AAEb;AACA;AACA;;AAEA;;AAEA,IAAI,iDAAK;AACT,uBAAuB,iDAAK;AAC5B,sBAAsB,iDAAK;AAC3B;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA,OAAO,iDAAK;AACZ;AACA;;AAEA;;AAEA;AACA;;AAEA,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;;AC1Nb;;AAEmB;AACS;AACG;;AAE7B;AACf,SAAS,0DAAU,WAAW,0DAAQ;AACtC;AACA,UAAU,0DAAQ,WAAW,iDAAK;AAClC;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;AChBO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,aAAa;;AAE5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;ACtFa;;AAE0B;AACQ;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,aAAa;AACb;AACA;AACA;AACA,wBAAwB,iDAAO;AAC/B;;AAEA;AACA;AACA;AACA,gBAAgB,2DAAU;AAC1B;AACA,QAAQ,2DAAU;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACA,aAAa;AACb;;AAEA;AACA;AACA,cAAc,2DAAU,8BAA8B,2DAAU;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2DAAU,yCAAyC,2DAAU;AAC/E;AACA;AACA;AACA;AACA,gBAAgB,2DAAU,0BAA0B,2DAAU;AAC9D;AACA;AACA;;AAEA,iEAAe;AACf;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;;;AC1FF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAQC;;;;;;;;;;;;;;;;;;AClDsC;AACI;;AAE3C,iEAAe;AACf,KAAK,6CAAK;AACV,KAAK,sDAAQ;AACb,CAAC;;;;;;;;;;;;;;;;;ACNgC;;AAEjC,iEAAe,sCAAQ,EAAC;;;;;;;;;;;;;;;;;ACFX;;AAES;AACtB,iEAAe,gDAAmB,EAAC;;;;;;;;;;;;;;;;;;ACHuB;AACd;;AAE5C,iEAAe;AACf;AACA;AACA,mBAAmB;AACnB,YAAY;AACZ;AACA,GAAG;AACH;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;ACXW;;AAEwB;;AAErC;;AAEA,OAAO,UAAU;AACjB,OAAO,gBAAgB;;AAEvB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA,OAAO,SAAS;;AAEhB;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;;AAGA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA,2BAA2B,oBAAoB,IAAI;AACnD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C,4BAA4B;AAC5B;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,UAAU;AACnB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,kCAAkC;AAClC,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA,gCAAgC,WAAW,IAAI;AAC/C;AACA;AACA,eAAe,4DAAI;AACnB,MAAM;AACN;AACA;AACA,GAAG,GAAG,WAAW;AACjB;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,kBAAkB;AAC7B,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,UAAU;AACrB;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,eAAe;;AAEzC;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,QAAQ;AACjB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,GAAG,WAAW,cAAc;AAC5B,CAAC;AACD;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;;UCvvBF;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;WACA;WACA;WACA;WACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJA,+BAA+B;AAC8B;AACR;AACY;AACF;AACQ;AACtC;AAIZ;AAUA;AAME;AAEvB,gDAAgD;AAsB9C;AAEF,gDAAgD;AAChD,MAAM,GAAG,GAAG;IACV,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,MAAM;IACN,WAAW;IACX,OAAO;IACP,aAAa;IACb,YAAY;IACZ,cAAc;IACd,aAAa;IACb,sBAAsB;IACtB,SAAS;IACT,2BAA2B;IAC3B,kBAAkB;IAClB,IAAI;IACJ,KAAK;IACL,wBAAwB;IACxB,2BAA2B;CAC5B,CAAC;AAEF,qDAAqD;AACrD,iEAAe,GAAG,EAAC","sources":["webpack://SodasSDK/webpack/universalModuleDefinition","webpack://SodasSDK/./node_modules/asynckit/index.js","webpack://SodasSDK/./node_modules/asynckit/lib/abort.js","webpack://SodasSDK/./node_modules/asynckit/lib/async.js","webpack://SodasSDK/./node_modules/asynckit/lib/defer.js","webpack://SodasSDK/./node_modules/asynckit/lib/iterate.js","webpack://SodasSDK/./node_modules/asynckit/lib/state.js","webpack://SodasSDK/./node_modules/asynckit/lib/terminator.js","webpack://SodasSDK/./node_modules/asynckit/parallel.js","webpack://SodasSDK/./node_modules/asynckit/serial.js","webpack://SodasSDK/./node_modules/asynckit/serialOrdered.js","webpack://SodasSDK/./node_modules/combined-stream/lib/combined_stream.js","webpack://SodasSDK/./node_modules/debug/src/browser.js","webpack://SodasSDK/./node_modules/debug/src/common.js","webpack://SodasSDK/./node_modules/debug/src/index.js","webpack://SodasSDK/./node_modules/debug/src/node.js","webpack://SodasSDK/./node_modules/delayed-stream/lib/delayed_stream.js","webpack://SodasSDK/./node_modules/follow-redirects/debug.js","webpack://SodasSDK/./node_modules/follow-redirects/index.js","webpack://SodasSDK/./node_modules/form-data/lib/form_data.js","webpack://SodasSDK/./node_modules/form-data/lib/populate.js","webpack://SodasSDK/./node_modules/has-flag/index.js","webpack://SodasSDK/./node_modules/lodash.clonedeep/index.js","webpack://SodasSDK/./node_modules/mime-db/index.js","webpack://SodasSDK/./node_modules/mime-types/index.js","webpack://SodasSDK/./node_modules/ms/index.js","webpack://SodasSDK/./node_modules/proxy-from-env/index.js","webpack://SodasSDK/./node_modules/supports-color/index.js","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/dataService.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/dataset.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/datasetSeries.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/dcatResource.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/distribution.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/DCAT/versionInfo.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/dcatClass.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/dictionary/term.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/dictionary/vocabulary.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/governanceClass.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/sodasSDKClass.ts","webpack://SodasSDK/./lib/SODAS_SDK_CLASS/template/validation.ts","webpack://SodasSDK/./lib/SODAS_SDK_FILE/dataFile.ts","webpack://SodasSDK/./lib/SODAS_SDK_FILE/sodasSDKFile.ts","webpack://SodasSDK/./lib/SODAS_SDK_FILE/thumbnailFile.ts","webpack://SodasSDK/./lib/core/auth.ts","webpack://SodasSDK/./lib/core/error.ts","webpack://SodasSDK/./lib/core/init.ts","webpack://SodasSDK/./lib/core/type.ts","webpack://SodasSDK/./lib/core/util.ts","webpack://SodasSDK/./lib/core/values.ts","webpack://SodasSDK/external node-commonjs \"assert\"","webpack://SodasSDK/external node-commonjs \"events\"","webpack://SodasSDK/external node-commonjs \"fs\"","webpack://SodasSDK/external node-commonjs \"http\"","webpack://SodasSDK/external node-commonjs \"https\"","webpack://SodasSDK/external node-commonjs \"os\"","webpack://SodasSDK/external node-commonjs \"path\"","webpack://SodasSDK/external node-commonjs \"stream\"","webpack://SodasSDK/external node-commonjs \"tty\"","webpack://SodasSDK/external node-commonjs \"url\"","webpack://SodasSDK/external node-commonjs \"util\"","webpack://SodasSDK/external node-commonjs \"zlib\"","webpack://SodasSDK/./node_modules/axios/lib/adapters/adapters.js","webpack://SodasSDK/./node_modules/axios/lib/adapters/fetch.js","webpack://SodasSDK/./node_modules/axios/lib/adapters/http.js","webpack://SodasSDK/./node_modules/axios/lib/adapters/xhr.js","webpack://SodasSDK/./node_modules/axios/lib/axios.js","webpack://SodasSDK/./node_modules/axios/lib/cancel/CancelToken.js","webpack://SodasSDK/./node_modules/axios/lib/cancel/CanceledError.js","webpack://SodasSDK/./node_modules/axios/lib/cancel/isCancel.js","webpack://SodasSDK/./node_modules/axios/lib/core/Axios.js","webpack://SodasSDK/./node_modules/axios/lib/core/AxiosError.js","webpack://SodasSDK/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://SodasSDK/./node_modules/axios/lib/core/InterceptorManager.js","webpack://SodasSDK/./node_modules/axios/lib/core/buildFullPath.js","webpack://SodasSDK/./node_modules/axios/lib/core/dispatchRequest.js","webpack://SodasSDK/./node_modules/axios/lib/core/mergeConfig.js","webpack://SodasSDK/./node_modules/axios/lib/core/settle.js","webpack://SodasSDK/./node_modules/axios/lib/core/transformData.js","webpack://SodasSDK/./node_modules/axios/lib/defaults/index.js","webpack://SodasSDK/./node_modules/axios/lib/defaults/transitional.js","webpack://SodasSDK/./node_modules/axios/lib/env/data.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/AxiosTransformStream.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/bind.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/buildURL.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/callbackify.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/combineURLs.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/composeSignals.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/cookies.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/formDataToStream.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/fromDataURI.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/readBlob.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/speedometer.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/spread.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/throttle.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/toFormData.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/trackStream.js","webpack://SodasSDK/./node_modules/axios/lib/helpers/validator.js","webpack://SodasSDK/./node_modules/axios/lib/platform/common/utils.js","webpack://SodasSDK/./node_modules/axios/lib/platform/index.js","webpack://SodasSDK/./node_modules/axios/lib/platform/node/classes/FormData.js","webpack://SodasSDK/./node_modules/axios/lib/platform/node/classes/URLSearchParams.js","webpack://SodasSDK/./node_modules/axios/lib/platform/node/index.js","webpack://SodasSDK/./node_modules/axios/lib/utils.js","webpack://SodasSDK/webpack/bootstrap","webpack://SodasSDK/webpack/runtime/compat get default export","webpack://SodasSDK/webpack/runtime/define property getters","webpack://SodasSDK/webpack/runtime/hasOwnProperty shorthand","webpack://SodasSDK/webpack/runtime/make namespace object","webpack://SodasSDK/webpack/runtime/node module decorator","webpack://SodasSDK/./lib/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"SodasSDK\"] = factory();\n\telse\n\t\troot[\"SodasSDK\"] = factory();\n})(typeof self !== 'undefined' ? self : this, () => {\nreturn ","module.exports =\n{\n parallel : require('./parallel.js'),\n serial : require('./serial.js'),\n serialOrdered : require('./serialOrdered.js')\n};\n","// API\nmodule.exports = abort;\n\n/**\n * Aborts leftover active jobs\n *\n * @param {object} state - current state object\n */\nfunction abort(state)\n{\n Object.keys(state.jobs).forEach(clean.bind(state));\n\n // reset leftover jobs\n state.jobs = {};\n}\n\n/**\n * Cleans up leftover job by invoking abort function for the provided job id\n *\n * @this state\n * @param {string|number} key - job id to abort\n */\nfunction clean(key)\n{\n if (typeof this.jobs[key] == 'function')\n {\n this.jobs[key]();\n }\n}\n","var defer = require('./defer.js');\n\n// API\nmodule.exports = async;\n\n/**\n * Runs provided callback asynchronously\n * even if callback itself is not\n *\n * @param {function} callback - callback to invoke\n * @returns {function} - augmented callback\n */\nfunction async(callback)\n{\n var isAsync = false;\n\n // check if async happened\n defer(function() { isAsync = true; });\n\n return function async_callback(err, result)\n {\n if (isAsync)\n {\n callback(err, result);\n }\n else\n {\n defer(function nextTick_callback()\n {\n callback(err, result);\n });\n }\n };\n}\n","module.exports = defer;\n\n/**\n * Runs provided function on next iteration of the event loop\n *\n * @param {function} fn - function to run\n */\nfunction defer(fn)\n{\n var nextTick = typeof setImmediate == 'function'\n ? setImmediate\n : (\n typeof process == 'object' && typeof process.nextTick == 'function'\n ? process.nextTick\n : null\n );\n\n if (nextTick)\n {\n nextTick(fn);\n }\n else\n {\n setTimeout(fn, 0);\n }\n}\n","var async = require('./async.js')\n , abort = require('./abort.js')\n ;\n\n// API\nmodule.exports = iterate;\n\n/**\n * Iterates over each job object\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {object} state - current job status\n * @param {function} callback - invoked when all elements processed\n */\nfunction iterate(list, iterator, state, callback)\n{\n // store current index\n var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;\n\n state.jobs[key] = runJob(iterator, key, list[key], function(error, output)\n {\n // don't repeat yourself\n // skip secondary callbacks\n if (!(key in state.jobs))\n {\n return;\n }\n\n // clean up jobs\n delete state.jobs[key];\n\n if (error)\n {\n // don't process rest of the results\n // stop still active jobs\n // and reset the list\n abort(state);\n }\n else\n {\n state.results[key] = output;\n }\n\n // return salvaged results\n callback(error, state.results);\n });\n}\n\n/**\n * Runs iterator over provided job element\n *\n * @param {function} iterator - iterator to invoke\n * @param {string|number} key - key/index of the element in the list of jobs\n * @param {mixed} item - job description\n * @param {function} callback - invoked after iterator is done with the job\n * @returns {function|mixed} - job abort function or something else\n */\nfunction runJob(iterator, key, item, callback)\n{\n var aborter;\n\n // allow shortcut if iterator expects only two arguments\n if (iterator.length == 2)\n {\n aborter = iterator(item, async(callback));\n }\n // otherwise go with full three arguments\n else\n {\n aborter = iterator(item, key, async(callback));\n }\n\n return aborter;\n}\n","// API\nmodule.exports = state;\n\n/**\n * Creates initial state object\n * for iteration over list\n *\n * @param {array|object} list - list to iterate over\n * @param {function|null} sortMethod - function to use for keys sort,\n * or `null` to keep them as is\n * @returns {object} - initial state object\n */\nfunction state(list, sortMethod)\n{\n var isNamedList = !Array.isArray(list)\n , initState =\n {\n index : 0,\n keyedList: isNamedList || sortMethod ? Object.keys(list) : null,\n jobs : {},\n results : isNamedList ? {} : [],\n size : isNamedList ? Object.keys(list).length : list.length\n }\n ;\n\n if (sortMethod)\n {\n // sort array keys based on it's values\n // sort object's keys just on own merit\n initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)\n {\n return sortMethod(list[a], list[b]);\n });\n }\n\n return initState;\n}\n","var abort = require('./abort.js')\n , async = require('./async.js')\n ;\n\n// API\nmodule.exports = terminator;\n\n/**\n * Terminates jobs in the attached state context\n *\n * @this AsyncKitState#\n * @param {function} callback - final callback to invoke after termination\n */\nfunction terminator(callback)\n{\n if (!Object.keys(this.jobs).length)\n {\n return;\n }\n\n // fast forward iteration index\n this.index = this.size;\n\n // abort jobs\n abort(this);\n\n // send back results we have so far\n async(callback)(null, this.results);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = parallel;\n\n/**\n * Runs iterator over provided array elements in parallel\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction parallel(list, iterator, callback)\n{\n var state = initState(list);\n\n while (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, function(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n // looks like it's the last one\n if (Object.keys(state.jobs).length === 0)\n {\n callback(null, state.results);\n return;\n }\n });\n\n state.index++;\n }\n\n return terminator.bind(state, callback);\n}\n","var serialOrdered = require('./serialOrdered.js');\n\n// Public API\nmodule.exports = serial;\n\n/**\n * Runs iterator over provided array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serial(list, iterator, callback)\n{\n return serialOrdered(list, iterator, null, callback);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = serialOrdered;\n// sorting helpers\nmodule.exports.ascending = ascending;\nmodule.exports.descending = descending;\n\n/**\n * Runs iterator over provided sorted array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} sortMethod - custom sort function\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serialOrdered(list, iterator, sortMethod, callback)\n{\n var state = initState(list, sortMethod);\n\n iterate(list, iterator, state, function iteratorHandler(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n state.index++;\n\n // are we there yet?\n if (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, iteratorHandler);\n return;\n }\n\n // done here\n callback(null, state.results);\n });\n\n return terminator.bind(state, callback);\n}\n\n/*\n * -- Sort methods\n */\n\n/**\n * sort helper to sort array elements in ascending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction ascending(a, b)\n{\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\n * sort helper to sort array elements in descending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction descending(a, b)\n{\n return -1 * ascending(a, b);\n}\n","var util = require('util');\nvar Stream = require('stream').Stream;\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\nfunction CombinedStream() {\n this.writable = false;\n this.readable = true;\n this.dataSize = 0;\n this.maxDataSize = 2 * 1024 * 1024;\n this.pauseStreams = true;\n\n this._released = false;\n this._streams = [];\n this._currentStream = null;\n this._insideLoop = false;\n this._pendingNext = false;\n}\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function(options) {\n var combinedStream = new this();\n\n options = options || {};\n for (var option in options) {\n combinedStream[option] = options[option];\n }\n\n return combinedStream;\n};\n\nCombinedStream.isStreamLike = function(stream) {\n return (typeof stream !== 'function')\n && (typeof stream !== 'string')\n && (typeof stream !== 'boolean')\n && (typeof stream !== 'number')\n && (!Buffer.isBuffer(stream));\n};\n\nCombinedStream.prototype.append = function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n if (!(stream instanceof DelayedStream)) {\n var newStream = DelayedStream.create(stream, {\n maxDataSize: Infinity,\n pauseStream: this.pauseStreams,\n });\n stream.on('data', this._checkDataSize.bind(this));\n stream = newStream;\n }\n\n this._handleErrors(stream);\n\n if (this.pauseStreams) {\n stream.pause();\n }\n }\n\n this._streams.push(stream);\n return this;\n};\n\nCombinedStream.prototype.pipe = function(dest, options) {\n Stream.prototype.pipe.call(this, dest, options);\n this.resume();\n return dest;\n};\n\nCombinedStream.prototype._getNext = function() {\n this._currentStream = null;\n\n if (this._insideLoop) {\n this._pendingNext = true;\n return; // defer call\n }\n\n this._insideLoop = true;\n try {\n do {\n this._pendingNext = false;\n this._realGetNext();\n } while (this._pendingNext);\n } finally {\n this._insideLoop = false;\n }\n};\n\nCombinedStream.prototype._realGetNext = function() {\n var stream = this._streams.shift();\n\n\n if (typeof stream == 'undefined') {\n this.end();\n return;\n }\n\n if (typeof stream !== 'function') {\n this._pipeNext(stream);\n return;\n }\n\n var getStream = stream;\n getStream(function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('data', this._checkDataSize.bind(this));\n this._handleErrors(stream);\n }\n\n this._pipeNext(stream);\n }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function(stream) {\n this._currentStream = stream;\n\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('end', this._getNext.bind(this));\n stream.pipe(this, {end: false});\n return;\n }\n\n var value = stream;\n this.write(value);\n this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function(stream) {\n var self = this;\n stream.on('error', function(err) {\n self._emitError(err);\n });\n};\n\nCombinedStream.prototype.write = function(data) {\n this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function() {\n if (!this.pauseStreams) {\n return;\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();\n this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function() {\n if (!this._released) {\n this._released = true;\n this.writable = true;\n this._getNext();\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();\n this.emit('resume');\n};\n\nCombinedStream.prototype.end = function() {\n this._reset();\n this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function() {\n this._reset();\n this.emit('close');\n};\n\nCombinedStream.prototype._reset = function() {\n this.writable = false;\n this._streams = [];\n this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function() {\n this._updateDataSize();\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function() {\n this.dataSize = 0;\n\n var self = this;\n this._streams.forEach(function(stream) {\n if (!stream.dataSize) {\n return;\n }\n\n self.dataSize += stream.dataSize;\n });\n\n if (this._currentStream && this._currentStream.dataSize) {\n this.dataSize += this._currentStream.dataSize;\n }\n};\n\nCombinedStream.prototype._emitError = function(err) {\n this._reset();\n this.emit('error', err);\n};\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","var Stream = require('stream').Stream;\nvar util = require('util');\n\nmodule.exports = DelayedStream;\nfunction DelayedStream() {\n this.source = null;\n this.dataSize = 0;\n this.maxDataSize = 1024 * 1024;\n this.pauseStream = true;\n\n this._maxDataSizeExceeded = false;\n this._released = false;\n this._bufferedEvents = [];\n}\nutil.inherits(DelayedStream, Stream);\n\nDelayedStream.create = function(source, options) {\n var delayedStream = new this();\n\n options = options || {};\n for (var option in options) {\n delayedStream[option] = options[option];\n }\n\n delayedStream.source = source;\n\n var realEmit = source.emit;\n source.emit = function() {\n delayedStream._handleEmit(arguments);\n return realEmit.apply(source, arguments);\n };\n\n source.on('error', function() {});\n if (delayedStream.pauseStream) {\n source.pause();\n }\n\n return delayedStream;\n};\n\nObject.defineProperty(DelayedStream.prototype, 'readable', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this.source.readable;\n }\n});\n\nDelayedStream.prototype.setEncoding = function() {\n return this.source.setEncoding.apply(this.source, arguments);\n};\n\nDelayedStream.prototype.resume = function() {\n if (!this._released) {\n this.release();\n }\n\n this.source.resume();\n};\n\nDelayedStream.prototype.pause = function() {\n this.source.pause();\n};\n\nDelayedStream.prototype.release = function() {\n this._released = true;\n\n this._bufferedEvents.forEach(function(args) {\n this.emit.apply(this, args);\n }.bind(this));\n this._bufferedEvents = [];\n};\n\nDelayedStream.prototype.pipe = function() {\n var r = Stream.prototype.pipe.apply(this, arguments);\n this.resume();\n return r;\n};\n\nDelayedStream.prototype._handleEmit = function(args) {\n if (this._released) {\n this.emit.apply(this, args);\n return;\n }\n\n if (args[0] === 'data') {\n this.dataSize += args[1].length;\n this._checkIfMaxDataSizeExceeded();\n }\n\n this._bufferedEvents.push(args);\n};\n\nDelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {\n if (this._maxDataSizeExceeded) {\n return;\n }\n\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n this._maxDataSizeExceeded = true;\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'\n this.emit('error', new Error(message));\n};\n","var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n","var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Preventive platform detection\n// istanbul ignore next\n(function detectUnsupportedEnvironment() {\n var looksLikeNode = typeof process !== \"undefined\";\n var looksLikeBrowser = typeof window !== \"undefined\" && typeof document !== \"undefined\";\n var looksLikeV8 = isFunction(Error.captureStackTrace);\n if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) {\n console.warn(\"The follow-redirects package should be excluded from browser builds.\");\n }\n}());\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL(\"\"));\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n // istanbul ignore else\n if (request === self._currentRequest) {\n // Report any write errors\n // istanbul ignore if\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n // istanbul ignore else\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n // istanbul ignore else\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n // istanbul ignore next\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n // istanbul ignore else\n if (isFunction(Error.captureStackTrace)) {\n Error.captureStackTrace(this, this.constructor);\n }\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n","var CombinedStream = require('combined-stream');\nvar util = require('util');\nvar path = require('path');\nvar http = require('http');\nvar https = require('https');\nvar parseUrl = require('url').parse;\nvar fs = require('fs');\nvar Stream = require('stream').Stream;\nvar mime = require('mime-types');\nvar asynckit = require('asynckit');\nvar populate = require('./populate.js');\n\n// Public API\nmodule.exports = FormData;\n\n// make it a Stream\nutil.inherits(FormData, CombinedStream);\n\n/**\n * Create readable \"multipart/form-data\" streams.\n * Can be used to submit forms\n * and file uploads to other web applications.\n *\n * @constructor\n * @param {Object} options - Properties to be added/overriden for FormData and CombinedStream\n */\nfunction FormData(options) {\n if (!(this instanceof FormData)) {\n return new FormData(options);\n }\n\n this._overheadLength = 0;\n this._valueLength = 0;\n this._valuesToMeasure = [];\n\n CombinedStream.call(this);\n\n options = options || {};\n for (var option in options) {\n this[option] = options[option];\n }\n}\n\nFormData.LINE_BREAK = '\\r\\n';\nFormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';\n\nFormData.prototype.append = function(field, value, options) {\n\n options = options || {};\n\n // allow filename as single option\n if (typeof options == 'string') {\n options = {filename: options};\n }\n\n var append = CombinedStream.prototype.append.bind(this);\n\n // all that streamy business can't handle numbers\n if (typeof value == 'number') {\n value = '' + value;\n }\n\n // https://github.com/felixge/node-form-data/issues/38\n if (Array.isArray(value)) {\n // Please convert your array into string\n // the way web server expects it\n this._error(new Error('Arrays are not supported.'));\n return;\n }\n\n var header = this._multiPartHeader(field, value, options);\n var footer = this._multiPartFooter();\n\n append(header);\n append(value);\n append(footer);\n\n // pass along options.knownLength\n this._trackLength(header, value, options);\n};\n\nFormData.prototype._trackLength = function(header, value, options) {\n var valueLength = 0;\n\n // used w/ getLengthSync(), when length is known.\n // e.g. for streaming directly from a remote server,\n // w/ a known file a size, and not wanting to wait for\n // incoming file to finish to get its size.\n if (options.knownLength != null) {\n valueLength += +options.knownLength;\n } else if (Buffer.isBuffer(value)) {\n valueLength = value.length;\n } else if (typeof value === 'string') {\n valueLength = Buffer.byteLength(value);\n }\n\n this._valueLength += valueLength;\n\n // @check why add CRLF? does this account for custom/multiple CRLFs?\n this._overheadLength +=\n Buffer.byteLength(header) +\n FormData.LINE_BREAK.length;\n\n // empty or either doesn't have path or not an http response or not a stream\n if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) && !(value instanceof Stream))) {\n return;\n }\n\n // no need to bother with the length\n if (!options.knownLength) {\n this._valuesToMeasure.push(value);\n }\n};\n\nFormData.prototype._lengthRetriever = function(value, callback) {\n\n if (value.hasOwnProperty('fd')) {\n\n // take read range into a account\n // `end` = Infinity –> read file till the end\n //\n // TODO: Looks like there is bug in Node fs.createReadStream\n // it doesn't respect `end` options without `start` options\n // Fix it when node fixes it.\n // https://github.com/joyent/node/issues/7819\n if (value.end != undefined && value.end != Infinity && value.start != undefined) {\n\n // when end specified\n // no need to calculate range\n // inclusive, starts with 0\n callback(null, value.end + 1 - (value.start ? value.start : 0));\n\n // not that fast snoopy\n } else {\n // still need to fetch file size from fs\n fs.stat(value.path, function(err, stat) {\n\n var fileSize;\n\n if (err) {\n callback(err);\n return;\n }\n\n // update final size based on the range options\n fileSize = stat.size - (value.start ? value.start : 0);\n callback(null, fileSize);\n });\n }\n\n // or http response\n } else if (value.hasOwnProperty('httpVersion')) {\n callback(null, +value.headers['content-length']);\n\n // or request stream http://github.com/mikeal/request\n } else if (value.hasOwnProperty('httpModule')) {\n // wait till response come back\n value.on('response', function(response) {\n value.pause();\n callback(null, +response.headers['content-length']);\n });\n value.resume();\n\n // something else\n } else {\n callback('Unknown stream');\n }\n};\n\nFormData.prototype._multiPartHeader = function(field, value, options) {\n // custom header specified (as string)?\n // it becomes responsible for boundary\n // (e.g. to handle extra CRLFs on .NET servers)\n if (typeof options.header == 'string') {\n return options.header;\n }\n\n var contentDisposition = this._getContentDisposition(value, options);\n var contentType = this._getContentType(value, options);\n\n var contents = '';\n var headers = {\n // add custom disposition as third element or keep it two elements if not\n 'Content-Disposition': ['form-data', 'name=\"' + field + '\"'].concat(contentDisposition || []),\n // if no content type. allow it to be empty array\n 'Content-Type': [].concat(contentType || [])\n };\n\n // allow custom headers.\n if (typeof options.header == 'object') {\n populate(headers, options.header);\n }\n\n var header;\n for (var prop in headers) {\n if (!headers.hasOwnProperty(prop)) continue;\n header = headers[prop];\n\n // skip nullish headers.\n if (header == null) {\n continue;\n }\n\n // convert all headers to arrays.\n if (!Array.isArray(header)) {\n header = [header];\n }\n\n // add non-empty headers.\n if (header.length) {\n contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;\n }\n }\n\n return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;\n};\n\nFormData.prototype._getContentDisposition = function(value, options) {\n\n var filename\n , contentDisposition\n ;\n\n if (typeof options.filepath === 'string') {\n // custom filepath for relative paths\n filename = path.normalize(options.filepath).replace(/\\\\/g, '/');\n } else if (options.filename || value.name || value.path) {\n // custom filename take precedence\n // formidable and the browser add a name property\n // fs- and request- streams have path property\n filename = path.basename(options.filename || value.name || value.path);\n } else if (value.readable && value.hasOwnProperty('httpVersion')) {\n // or try http response\n filename = path.basename(value.client._httpMessage.path || '');\n }\n\n if (filename) {\n contentDisposition = 'filename=\"' + filename + '\"';\n }\n\n return contentDisposition;\n};\n\nFormData.prototype._getContentType = function(value, options) {\n\n // use custom content-type above all\n var contentType = options.contentType;\n\n // or try `name` from formidable, browser\n if (!contentType && value.name) {\n contentType = mime.lookup(value.name);\n }\n\n // or try `path` from fs-, request- streams\n if (!contentType && value.path) {\n contentType = mime.lookup(value.path);\n }\n\n // or if it's http-reponse\n if (!contentType && value.readable && value.hasOwnProperty('httpVersion')) {\n contentType = value.headers['content-type'];\n }\n\n // or guess it from the filepath or filename\n if (!contentType && (options.filepath || options.filename)) {\n contentType = mime.lookup(options.filepath || options.filename);\n }\n\n // fallback to the default content type if `value` is not simple value\n if (!contentType && typeof value == 'object') {\n contentType = FormData.DEFAULT_CONTENT_TYPE;\n }\n\n return contentType;\n};\n\nFormData.prototype._multiPartFooter = function() {\n return function(next) {\n var footer = FormData.LINE_BREAK;\n\n var lastPart = (this._streams.length === 0);\n if (lastPart) {\n footer += this._lastBoundary();\n }\n\n next(footer);\n }.bind(this);\n};\n\nFormData.prototype._lastBoundary = function() {\n return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;\n};\n\nFormData.prototype.getHeaders = function(userHeaders) {\n var header;\n var formHeaders = {\n 'content-type': 'multipart/form-data; boundary=' + this.getBoundary()\n };\n\n for (header in userHeaders) {\n if (userHeaders.hasOwnProperty(header)) {\n formHeaders[header.toLowerCase()] = userHeaders[header];\n }\n }\n\n return formHeaders;\n};\n\nFormData.prototype.setBoundary = function(boundary) {\n this._boundary = boundary;\n};\n\nFormData.prototype.getBoundary = function() {\n if (!this._boundary) {\n this._generateBoundary();\n }\n\n return this._boundary;\n};\n\nFormData.prototype.getBuffer = function() {\n var dataBuffer = new Buffer.alloc( 0 );\n var boundary = this.getBoundary();\n\n // Create the form content. Add Line breaks to the end of data.\n for (var i = 0, len = this._streams.length; i < len; i++) {\n if (typeof this._streams[i] !== 'function') {\n\n // Add content to the buffer.\n if(Buffer.isBuffer(this._streams[i])) {\n dataBuffer = Buffer.concat( [dataBuffer, this._streams[i]]);\n }else {\n dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(this._streams[i])]);\n }\n\n // Add break after content.\n if (typeof this._streams[i] !== 'string' || this._streams[i].substring( 2, boundary.length + 2 ) !== boundary) {\n dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(FormData.LINE_BREAK)] );\n }\n }\n }\n\n // Add the footer and return the Buffer object.\n return Buffer.concat( [dataBuffer, Buffer.from(this._lastBoundary())] );\n};\n\nFormData.prototype._generateBoundary = function() {\n // This generates a 50 character boundary similar to those used by Firefox.\n // They are optimized for boyer-moore parsing.\n var boundary = '--------------------------';\n for (var i = 0; i < 24; i++) {\n boundary += Math.floor(Math.random() * 10).toString(16);\n }\n\n this._boundary = boundary;\n};\n\n// Note: getLengthSync DOESN'T calculate streams length\n// As workaround one can calculate file size manually\n// and add it as knownLength option\nFormData.prototype.getLengthSync = function() {\n var knownLength = this._overheadLength + this._valueLength;\n\n // Don't get confused, there are 3 \"internal\" streams for each keyval pair\n // so it basically checks if there is any value added to the form\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n // https://github.com/form-data/form-data/issues/40\n if (!this.hasKnownLength()) {\n // Some async length retrievers are present\n // therefore synchronous length calculation is false.\n // Please use getLength(callback) to get proper length\n this._error(new Error('Cannot calculate proper length in synchronous way.'));\n }\n\n return knownLength;\n};\n\n// Public API to check if length of added values is known\n// https://github.com/form-data/form-data/issues/196\n// https://github.com/form-data/form-data/issues/262\nFormData.prototype.hasKnownLength = function() {\n var hasKnownLength = true;\n\n if (this._valuesToMeasure.length) {\n hasKnownLength = false;\n }\n\n return hasKnownLength;\n};\n\nFormData.prototype.getLength = function(cb) {\n var knownLength = this._overheadLength + this._valueLength;\n\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n if (!this._valuesToMeasure.length) {\n process.nextTick(cb.bind(this, null, knownLength));\n return;\n }\n\n asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err, values) {\n if (err) {\n cb(err);\n return;\n }\n\n values.forEach(function(length) {\n knownLength += length;\n });\n\n cb(null, knownLength);\n });\n};\n\nFormData.prototype.submit = function(params, cb) {\n var request\n , options\n , defaults = {method: 'post'}\n ;\n\n // parse provided url if it's string\n // or treat it as options object\n if (typeof params == 'string') {\n\n params = parseUrl(params);\n options = populate({\n port: params.port,\n path: params.pathname,\n host: params.hostname,\n protocol: params.protocol\n }, defaults);\n\n // use custom params\n } else {\n\n options = populate(params, defaults);\n // if no port provided use default one\n if (!options.port) {\n options.port = options.protocol == 'https:' ? 443 : 80;\n }\n }\n\n // put that good code in getHeaders to some use\n options.headers = this.getHeaders(params.headers);\n\n // https if specified, fallback to http in any other case\n if (options.protocol == 'https:') {\n request = https.request(options);\n } else {\n request = http.request(options);\n }\n\n // get content length and fire away\n this.getLength(function(err, length) {\n if (err && err !== 'Unknown stream') {\n this._error(err);\n return;\n }\n\n // add content length\n if (length) {\n request.setHeader('Content-Length', length);\n }\n\n this.pipe(request);\n if (cb) {\n var onResponse;\n\n var callback = function (error, responce) {\n request.removeListener('error', callback);\n request.removeListener('response', onResponse);\n\n return cb.call(this, error, responce);\n };\n\n onResponse = callback.bind(this, null);\n\n request.on('error', callback);\n request.on('response', onResponse);\n }\n }.bind(this));\n\n return request;\n};\n\nFormData.prototype._error = function(err) {\n if (!this.error) {\n this.error = err;\n this.pause();\n this.emit('error', err);\n }\n};\n\nFormData.prototype.toString = function () {\n return '[object FormData]';\n};\n","// populates missing values\nmodule.exports = function(dst, src) {\n\n Object.keys(src).forEach(function(prop)\n {\n dst[prop] = dst[prop] || src[prop];\n });\n\n return dst;\n};\n","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","'use strict';\n\nvar parseUrl = require('url').parse;\n\nvar DEFAULT_PORTS = {\n ftp: 21,\n gopher: 70,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443,\n};\n\nvar stringEndsWith = String.prototype.endsWith || function(s) {\n return s.length <= this.length &&\n this.indexOf(s, this.length - s.length) !== -1;\n};\n\n/**\n * @param {string|object} url - The URL, or the result from url.parse.\n * @return {string} The URL of the proxy that should handle the request to the\n * given URL. If no proxy is set, this will be an empty string.\n */\nfunction getProxyForUrl(url) {\n var parsedUrl = typeof url === 'string' ? parseUrl(url) : url || {};\n var proto = parsedUrl.protocol;\n var hostname = parsedUrl.host;\n var port = parsedUrl.port;\n if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') {\n return ''; // Don't proxy URLs without a valid scheme or host.\n }\n\n proto = proto.split(':', 1)[0];\n // Stripping ports in this way instead of using parsedUrl.hostname to make\n // sure that the brackets around IPv6 addresses are kept.\n hostname = hostname.replace(/:\\d*$/, '');\n port = parseInt(port) || DEFAULT_PORTS[proto] || 0;\n if (!shouldProxy(hostname, port)) {\n return ''; // Don't proxy URLs that match NO_PROXY.\n }\n\n var proxy =\n getEnv('npm_config_' + proto + '_proxy') ||\n getEnv(proto + '_proxy') ||\n getEnv('npm_config_proxy') ||\n getEnv('all_proxy');\n if (proxy && proxy.indexOf('://') === -1) {\n // Missing scheme in proxy, default to the requested URL's scheme.\n proxy = proto + '://' + proxy;\n }\n return proxy;\n}\n\n/**\n * Determines whether a given URL should be proxied.\n *\n * @param {string} hostname - The host name of the URL.\n * @param {number} port - The effective port of the URL.\n * @returns {boolean} Whether the given URL should be proxied.\n * @private\n */\nfunction shouldProxy(hostname, port) {\n var NO_PROXY =\n (getEnv('npm_config_no_proxy') || getEnv('no_proxy')).toLowerCase();\n if (!NO_PROXY) {\n return true; // Always proxy if NO_PROXY is not set.\n }\n if (NO_PROXY === '*') {\n return false; // Never proxy if wildcard is set.\n }\n\n return NO_PROXY.split(/[,\\s]/).every(function(proxy) {\n if (!proxy) {\n return true; // Skip zero-length hosts.\n }\n var parsedProxy = proxy.match(/^(.+):(\\d+)$/);\n var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;\n var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;\n if (parsedProxyPort && parsedProxyPort !== port) {\n return true; // Skip if ports don't match.\n }\n\n if (!/^[.*]/.test(parsedProxyHostname)) {\n // No wildcards, so stop proxying if there is an exact match.\n return hostname !== parsedProxyHostname;\n }\n\n if (parsedProxyHostname.charAt(0) === '*') {\n // Remove leading wildcard.\n parsedProxyHostname = parsedProxyHostname.slice(1);\n }\n // Stop proxying if the hostname ends with the no_proxy host.\n return !stringEndsWith.call(hostname, parsedProxyHostname);\n });\n}\n\n/**\n * Get the value for an environment variable.\n *\n * @param {string} key - The name of the environment variable.\n * @return {string} The value of the environment variable.\n * @private\n */\nfunction getEnv(key) {\n return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || '';\n}\n\nexports.getProxyForUrl = getProxyForUrl;\n","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","import axios from \"axios\";\nimport {UnexpectedResponseFormatError} from \"../../core/error\";\nimport {IDType, PaginatedResponse, SortOrder, asID} from \"../../core/type\";\nimport {handleAxiosError} from \"../../core/util\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport DCAT_RESOURCE, {DCAT_RESOURCE_DTO} from \"./dcatResource\";\nexport interface DataServiceDTO extends DCAT_RESOURCE_DTO {\n DataServiceID?: string;\n EndpointURL?: string;\n EndpointDescription?: string;\n}\n/**\n * Represents a Data Service DTO.\n */\nclass DataService extends DCAT_RESOURCE {\n private DataServiceID: IDType;\n private EndpointURL: string;\n private EndpointDescription: string;\n\n /**\n * Initializes the API URL for DataService.\n *\n * @static\n * @param {string} url - The base URL of the API.\n */\n static configureAPIURL(url: string) {\n DataService.API_URL = `${url}/dataservice`;\n DataService.LIST_URL = `${DataService.API_URL}/list`;\n }\n\n static async listUserDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC\n ): Promise<PaginatedResponse<DataService>> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = DataService.LIST_URL.replace(/\\/list$/, \"/user/list\");\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n \"Content-Type\": \"application/json\",\n ...(DataService.BEARER_TOKEN && {\n Authorization: `Bearer ${DataService.BEARER_TOKEN}`,\n }),\n },\n params: {pageNumber, pageSize, sortOrder},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dataService = new DataService();\n await dataService.populateFromDTO(item);\n return dataService;\n })\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async searchDBRecords(\n searchKeyword: string,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC\n ): Promise<PaginatedResponse<DataService>> {\n if (!searchKeyword || !searchKeyword.trim()) {\n return this.listDBRecords(pageNumber, pageSize, sortOrder);\n }\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n let response: any;\n try {\n response = await axios.get(\n (this.prototype.constructor as typeof DCAT_MODEL).LIST_URL,\n {\n params: {pageNumber, pageSize, sortOrder, search: searchKeyword},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dataService = new this();\n await dataService.populateFromDTO(item);\n return dataService;\n })\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n public toDTO(): DataServiceDTO {\n return {\n ...super.toDTO(),\n ...(this.DataServiceID && {DataServiceID: this.DataServiceID}),\n EndpointURL: this.EndpointURL,\n EndpointDescription: this.EndpointDescription,\n };\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n\n const dataServiceDTO = dto as DataServiceDTO;\n dataServiceDTO.DataServiceID &&\n (this.DataServiceID = asID(dataServiceDTO.DataServiceID));\n dataServiceDTO.EndpointURL &&\n (this.EndpointURL = dataServiceDTO.EndpointURL);\n dataServiceDTO.EndpointDescription &&\n (this.EndpointDescription = dataServiceDTO.EndpointDescription);\n }\n\n get dataServiceID(): IDType {\n return this.DataServiceID;\n }\n\n get endpointURL(): string {\n return this.EndpointURL;\n }\n set endpointURL(value: string) {\n this.EndpointURL = value;\n }\n\n get endpointDescription(): string {\n return this.EndpointDescription;\n }\n set endpointDescription(value: string) {\n this.EndpointDescription = value;\n }\n}\n\nexport default DataService;\n","import axios from \"axios\";\nimport {\n IndexOutOfBoundsError,\n InvalidTypeError,\n UnexpectedResponseFormatError,\n} from \"../../core/error\";\nimport {\n IDType,\n PaginatedResponse,\n SortOrder,\n asID,\n asIDs,\n} from \"../../core/type\";\nimport {destroy, handleAxiosError} from \"../../core/util\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport DCAT_RESOURCE, {DCAT_RESOURCE_DTO} from \"./dcatResource\";\n\nimport Distribution from \"./distribution\";\n\nexport interface DatasetDTO extends DCAT_RESOURCE_DTO {\n DatasetID?: string;\n InSeriesID?: string;\n FirstID?: string;\n PreviousID?: string;\n NextID?: string;\n LastID?: string;\n Frequency?: string;\n SpatialResolutionInMeters?: number;\n TemporalResolution?: string;\n Spatial?: string;\n Temporal?: string;\n WasGeneratedBy?: string;\n\n DistributionIDs?: string[]; // Distribution is always returned in API\n}\n/**\n * Represents a Dataset Data Transfer Object (DTO).\n */\nclass Dataset extends DCAT_RESOURCE {\n private DatasetID: IDType;\n private InSeriesID: IDType;\n private FirstID: IDType;\n private PreviousID: IDType;\n private NextID: IDType;\n private LastID: IDType;\n private Frequency: string;\n private SpatialResolutionInMeters: number;\n private TemporalResolution: string;\n private Spatial: string;\n private Temporal: string;\n private WasGeneratedBy: string;\n\n private DistributionIDs: IDType[];\n private Distributions: Distribution[];\n\n /**\n * Initializes or updates the API_URL and LIST_URL for Dataset.\n *\n * @static\n * @param {string} url - The base URL for the dataset API.\n */\n static configureAPIURL(url: string) {\n Dataset.API_URL = `${url}/dataset`;\n Dataset.LIST_URL = `${Dataset.API_URL}/list`;\n }\n\n static async listUserDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ): Promise<PaginatedResponse<Dataset>> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = Dataset.LIST_URL.replace(/\\/list$/, \"/user/list\");\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n \"Content-Type\": \"application/json\",\n ...(Dataset.BEARER_TOKEN && {\n Authorization: `Bearer ${Dataset.BEARER_TOKEN}`,\n }),\n },\n params: {pageNumber, pageSize, sortOrder},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dataset = new Dataset();\n await dataset.populateFromDTO(item);\n return dataset;\n }),\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async getRDF(id: string, depth: number = 1): Promise<string> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = `${Dataset.API_URL}/rdf`;\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n Accept: \"text/turtle\",\n ...(Dataset.BEARER_TOKEN && {\n Authorization: `Bearer ${Dataset.BEARER_TOKEN}`,\n }),\n },\n params: {id, depth},\n responseType: \"text\",\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (typeof response.data === \"string\") {\n return response.data;\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async searchDBRecords(\n searchKeyword: string,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ): Promise<PaginatedResponse<Dataset>> {\n if (!searchKeyword || !searchKeyword.trim()) {\n return this.listDBRecords(pageNumber, pageSize, sortOrder);\n }\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n let response: any;\n try {\n response = await axios.get(\n (this.prototype.constructor as typeof DCAT_MODEL).LIST_URL,\n {\n params: {pageNumber, pageSize, sortOrder, search: searchKeyword},\n },\n );\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dataset = new this();\n await dataset.populateFromDTO(item);\n return dataset;\n }),\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n public toDTO(): DatasetDTO {\n return {\n ...super.toDTO(),\n\n Frequency: this.Frequency,\n SpatialResolutionInMeters: this.SpatialResolutionInMeters,\n TemporalResolution: this.TemporalResolution,\n Spatial: this.Spatial,\n Temporal: this.Temporal,\n WasGeneratedBy: this.WasGeneratedBy,\n };\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const datasetDTO = dto as DatasetDTO;\n datasetDTO.DatasetID && (this.DatasetID = asID(datasetDTO.DatasetID));\n datasetDTO.InSeriesID && (this.InSeriesID = asID(datasetDTO.InSeriesID));\n datasetDTO.Frequency && (this.Frequency = datasetDTO.Frequency);\n datasetDTO.SpatialResolutionInMeters &&\n (this.SpatialResolutionInMeters = datasetDTO.SpatialResolutionInMeters);\n datasetDTO.TemporalResolution &&\n (this.TemporalResolution = datasetDTO.TemporalResolution);\n datasetDTO.Spatial && (this.Spatial = datasetDTO.Spatial);\n datasetDTO.Temporal && (this.Temporal = datasetDTO.Temporal);\n datasetDTO.WasGeneratedBy &&\n (this.WasGeneratedBy = datasetDTO.WasGeneratedBy);\n\n datasetDTO.FirstID && (this.FirstID = asID(datasetDTO.FirstID));\n datasetDTO.PreviousID && (this.PreviousID = asID(datasetDTO.PreviousID));\n datasetDTO.NextID && (this.NextID = asID(datasetDTO.NextID));\n datasetDTO.LastID && (this.LastID = asID(datasetDTO.LastID));\n\n await this.populateDistributionFromDTO(dto);\n }\n\n public async populateDistributionFromDTO(dto: DatasetDTO): Promise<void> {\n if (dto.DistributionIDs) {\n this.DistributionIDs = dto.DistributionIDs.map((stringID) =>\n asID(stringID),\n );\n this.Distributions = await Promise.all(\n dto.DistributionIDs.map(async (distributionID: IDType) => {\n return await Distribution.getDBRecord(distributionID);\n }),\n );\n }\n }\n\n public static async syncToCurrentHub(dataset: Dataset): Promise<void> {\n try {\n const checkExisting = await Dataset.getDBRecordByAssetID(\n asID(dataset.assetID),\n );\n if (checkExisting) {\n checkExisting.populateToSync(dataset);\n await checkExisting.updateDBRecord();\n }\n } catch (error: any) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n const newDataset = new Dataset();\n newDataset.populateToSync(dataset);\n await newDataset.createDBRecord();\n } else {\n throw error;\n }\n }\n }\n\n public populateToSync(source: Dataset): void {\n const excludedKeys = new Set([\n \"ID\",\n \"DatasetID\",\n \"IsVersionOf\",\n \"PreviousVersionID\",\n \"NextVersionID\",\n \"VersionInfos\",\n \"InSeriesID\",\n \"FirstID\",\n \"PreviousID\",\n \"NextID\",\n \"LastID\",\n \"DistributionIDs\",\n ]);\n\n for (const key in source as any) {\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue;\n if (key === \"Distributions\") continue;\n if (excludedKeys.has(key)) continue;\n const value = (source as any)[key];\n if (value !== undefined) {\n (this as any)[key] = value;\n }\n }\n // Handle distributions separately so that we can preserve identity fields\n // of existing distributions while syncing other fields, and create new\n // distributions for any additional ones in the source.\n const sourceDistributions = (source as any).Distributions as\n | Distribution[]\n | undefined;\n if (!sourceDistributions || sourceDistributions.length === 0) {\n return;\n }\n\n this.Distributions = [];\n\n for (let i = 0; i < sourceDistributions.length; i++) {\n const srcDist = sourceDistributions[i];\n const targetDist = new Distribution();\n targetDist.populateToSync(srcDist);\n this.Distributions.push(targetDist);\n }\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n const distributions = this.Distributions;\n await super.createDBRecord();\n distributions && (this.Distributions = distributions);\n if (this.Distributions && this.Distributions.length != 0) {\n for (const distribution of this.Distributions) {\n distribution.isDistributionOf = this.DatasetID;\n await distribution.createDBRecord();\n if (!this.DistributionIDs) {\n this.DistributionIDs = [];\n }\n this.DistributionIDs.push(asID(distribution.id));\n }\n }\n }\n\n private async deleteNotMaintainedDistributions() {\n if (this.DistributionIDs && this.DistributionIDs.length != 0) {\n const existingIDs = this.DistributionIDs;\n const maintainedIDs = asIDs(\n this.Distributions.map((distribution) => distribution.id).filter(\n (id) => id !== undefined,\n ),\n );\n const scheduledToDeletedIDs = existingIDs.filter(\n (id) => !maintainedIDs.includes(id),\n );\n const scheduledToDeletedDistributions = await Promise.all(\n scheduledToDeletedIDs.map(async (ID) => {\n return await Distribution.getDBRecord(ID);\n }),\n );\n await Promise.all(\n scheduledToDeletedDistributions.map(async (distribution) => {\n await distribution.deleteDBRecord();\n }),\n );\n this.DistributionIDs = maintainedIDs;\n }\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const distributions = this.Distributions;\n await super.updateDBRecord();\n distributions && (this.Distributions = distributions);\n if (this.Distributions) {\n for (const distribution of this.Distributions) {\n distribution.isDistributionOf = this.DatasetID;\n if (distribution.id) {\n await distribution.updateDBRecord();\n } else {\n await distribution.createDBRecord();\n if (!this.DistributionIDs) {\n this.DistributionIDs = [];\n }\n this.DistributionIDs.push(asID(distribution.id));\n }\n }\n await this.deleteNotMaintainedDistributions();\n }\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n if (this.Distributions && this.Distributions.length != 0) {\n for (let i = 0; i < this.Distributions.length; i++) {\n if (this.Distributions[i].hasDBRecord()) {\n await this.Distributions[i].deleteDBRecord();\n }\n destroy(this.Distributions[i]);\n }\n }\n await super.deleteDBRecord();\n }\n\n public get distributions(): Distribution[] {\n return this.Distributions;\n }\n\n public getDistributionUsingIndex(index: number): Distribution {\n if (index < 0 || index >= this.Distributions.length) {\n throw new IndexOutOfBoundsError(index);\n }\n return this.Distributions[index];\n }\n\n public appendDistribution(distribution: Distribution) {\n if (!this.Distributions) {\n this.Distributions = [];\n }\n if (distribution instanceof Distribution) {\n this.Distributions.push(distribution);\n } else {\n throw new InvalidTypeError(distribution, \"Distribution\");\n }\n }\n\n /**\n * Creates and adds a new distribution to the dataset.\n * @returns {Distribution} The newly created distribution.\n */\n public createDistribution(): Distribution {\n if (!this.Distributions) {\n this.Distributions = [];\n }\n const newDistribution = new Distribution();\n this.Distributions.push(newDistribution);\n return newDistribution;\n }\n\n public removeDistributionUsingIndex(index: number) {\n if (index < 0 || index >= this.Distributions.length) {\n throw new IndexOutOfBoundsError(index);\n }\n this.Distributions.splice(index, 1);\n }\n\n public get datasetID(): IDType {\n return this.DatasetID;\n }\n\n public get inSeriesID(): IDType {\n return this.InSeriesID;\n }\n\n public get firstID(): IDType {\n return this.FirstID;\n }\n\n public get previousID(): IDType {\n return this.PreviousID;\n }\n\n public get nextID(): IDType {\n return this.NextID;\n }\n\n public get lastID(): IDType {\n return this.LastID;\n }\n\n public get frequency(): string {\n return this.Frequency;\n }\n public set frequency(value: string) {\n this.Frequency = value;\n }\n\n public get spatialResolutionInMeters(): number {\n return this.SpatialResolutionInMeters;\n }\n public set spatialResolutionInMeters(value: number) {\n this.SpatialResolutionInMeters = value;\n }\n\n public get temporalResolution(): string {\n return this.TemporalResolution;\n }\n public set temporalResolution(value: string) {\n this.TemporalResolution = value;\n }\n\n public get spatial(): string {\n return this.Spatial;\n }\n public set spatial(value: string) {\n this.Spatial = value;\n }\n\n public get temporal(): string {\n return this.Temporal;\n }\n public set temporal(value: string) {\n this.Temporal = value;\n }\n\n public get wasGeneratedBy(): string {\n return this.WasGeneratedBy;\n }\n public set wasGeneratedBy(value: string) {\n this.WasGeneratedBy = value;\n }\n}\n\nexport default Dataset;\n","import axios from \"axios\";\nimport {\n IndexOutOfBoundsError,\n InvalidTypeError,\n NotInitializedError,\n NotRecordedArgumentError,\n SwitchSameIndexError,\n UnexpectedResponseFormatError,\n} from \"../../core/error\";\nimport {\n IDType,\n PaginatedResponse,\n SortOrder,\n asID,\n asIDs,\n} from \"../../core/type\";\nimport {destroy, handleAxiosError} from \"../../core/util\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport Dataset from \"./dataset\";\nimport DCAT_RESOURCE, {DCAT_RESOURCE_DTO} from \"./dcatResource\";\n\ninterface DatasetSeriesDTO extends DCAT_RESOURCE_DTO {\n DatasetSeriesID?: string;\n InSeriesID?: string;\n Frequency?: string;\n SpatialResolutionInMeters?: number;\n TemporalResolution?: string;\n Spatial?: string;\n Temporal?: string;\n WasGeneratedBy?: string;\n\n SeriesMemberIDs?: string[];\n}\n\n/**\n * Represents a series of datasets.\n */\nclass DatasetSeries extends DCAT_RESOURCE {\n private DatasetSeriesID: IDType;\n private InSeriesID: IDType;\n private Frequency: string;\n private SpatialResolutionInMeters: number;\n private TemporalResolution: string;\n private Spatial: string;\n private Temporal: string;\n private WasGeneratedBy: string;\n\n private SeriesMembers: Dataset[];\n private SeriesMemberIDs: IDType[];\n\n public static async syncToCurrentHub(\n datasetSeries: DatasetSeries,\n ): Promise<void> {\n try {\n const checkExisting = await DatasetSeries.getDBRecordByAssetID(\n asID(datasetSeries.assetID),\n );\n if (checkExisting) {\n await checkExisting.populateToSync(datasetSeries);\n await checkExisting.updateDBRecord();\n }\n } catch (error: any) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n const newDatasetSeries = new DatasetSeries();\n await newDatasetSeries.populateToSync(datasetSeries);\n await newDatasetSeries.createDBRecord();\n } else {\n throw error;\n }\n }\n }\n\n /**\n * Populates this instance with values from the given DatasetSeries, except for:\n * - DB identity / temporal fields (ID, IRI, Issued, Modified, CreatedAt, UpdatedAt)\n * - Version/lineage fields (IsVersionOf, PreviousVersionID, NextVersionID, VersionInfos)\n * - Series identity fields (DatasetSeriesID, InSeriesID)\n * - Fields explicitly set to `undefined` on the source instance\n *\n * Additionally, when SeriesMembers are present on the source, this method\n * resolves each member via Dataset.getDBRecordByAssetID (by AssetID) and\n * replaces this.SeriesMemberIDs with the resolved IDs.\n */\n public async populateToSync(source: DatasetSeries): Promise<void> {\n const excludedKeys = new Set([\n \"ID\",\n \"IsVersionOf\",\n \"PreviousVersionID\",\n \"NextVersionID\",\n \"VersionInfos\",\n \"DatasetSeriesID\",\n \"InSeriesID\",\n ]);\n\n for (const key in source as any) {\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue;\n if (key === \"SeriesMembers\") continue;\n if (excludedKeys.has(key)) continue;\n const value = (source as any)[key];\n if (value !== undefined) {\n (this as any)[key] = value;\n }\n }\n\n this.SeriesMembers = [];\n\n const sourceMembers = (source as any).SeriesMembers as\n | Dataset[]\n | undefined;\n if (!sourceMembers || sourceMembers.length === 0) {\n return;\n }\n\n const resolvedIDs: IDType[] = [];\n for (const member of sourceMembers) {\n if (!member) continue;\n const assetIDStr = member.assetID;\n if (!assetIDStr) continue;\n const assetID = asID(assetIDStr);\n // Prefer existing record by AssetID; if not found, create a new one.\n try {\n const existing = await Dataset.getDBRecordByAssetID(assetID);\n if (existing) {\n existing.populateToSync(member);\n await existing.updateDBRecord();\n resolvedIDs.push(existing.id);\n }\n } catch (error: any) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n const newMember = new Dataset();\n newMember.populateToSync(member);\n await newMember.createDBRecord();\n resolvedIDs.push(newMember.id);\n } else {\n throw error;\n }\n }\n }\n this.SeriesMemberIDs = resolvedIDs;\n }\n\n /**\n * Initializes or updates the API_URL and LIST_URL for Dataset.\n *\n * @static\n * @param {string} url - The base URL for the dataset API.\n */\n static configureAPIURL(url: string) {\n DatasetSeries.API_URL = `${url}/datasetseries`;\n DatasetSeries.LIST_URL = `${DatasetSeries.API_URL}/list`;\n }\n\n static async getRDF(id: string, depth: number = 1): Promise<string> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = `${DatasetSeries.API_URL}/rdf`;\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n Accept: \"text/turtle\",\n ...(DatasetSeries.BEARER_TOKEN && {\n Authorization: `Bearer ${DatasetSeries.BEARER_TOKEN}`,\n }),\n },\n params: {id, depth},\n responseType: \"text\",\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (typeof response.data === \"string\") {\n return response.data;\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async listUserDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ): Promise<PaginatedResponse<DatasetSeries>> {\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n const url = DatasetSeries.LIST_URL.replace(/\\/list$/, \"/user/list\");\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\n \"Content-Type\": \"application/json\",\n ...(DatasetSeries.BEARER_TOKEN && {\n Authorization: `Bearer ${DatasetSeries.BEARER_TOKEN}`,\n }),\n },\n params: {pageNumber, pageSize, sortOrder},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const datasetSeries = new DatasetSeries();\n await datasetSeries.populateFromDTO(item);\n return datasetSeries;\n }),\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n static async searchDBRecords(\n searchKeyword: string,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ): Promise<PaginatedResponse<DatasetSeries>> {\n if (!searchKeyword || !searchKeyword.trim()) {\n return this.listDBRecords(pageNumber, pageSize, sortOrder);\n }\n // @ts-ignore - static helper expects SODAS_SDK_CLASS constructor type\n throwErrorIfAPIURLNotSetForStatic(this);\n\n let response: any;\n try {\n response = await axios.get(\n (this.prototype.constructor as typeof DCAT_MODEL).LIST_URL,\n {\n params: {pageNumber, pageSize, sortOrder, search: searchKeyword},\n },\n );\n } catch (error) {\n handleAxiosError(error);\n }\n\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const datasetSeries = new this();\n await datasetSeries.populateFromDTO(item);\n return datasetSeries;\n }),\n );\n return {\n total: response.data.total,\n list,\n };\n }\n throw new UnexpectedResponseFormatError(response);\n }\n\n public toDTO(): DatasetSeriesDTO {\n const result = {\n ...super.toDTO(),\n\n ...(this.DatasetSeriesID && {DatasetSeriesID: this.DatasetSeriesID}),\n ...(this.InSeriesID && {InSeriesID: this.InSeriesID}),\n Frequency: this.Frequency,\n SpatialResolutionInMeters: this.SpatialResolutionInMeters,\n TemporalResolution: this.TemporalResolution,\n Spatial: this.Spatial,\n Temporal: this.Temporal,\n WasGeneratedBy: this.WasGeneratedBy,\n ...(this.SeriesMemberIDs && {SeriesMemberIDs: this.SeriesMemberIDs}),\n };\n return result;\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const datasetSeriesDTO = dto as DatasetSeriesDTO;\n datasetSeriesDTO.DatasetSeriesID &&\n (this.DatasetSeriesID = asID(datasetSeriesDTO.DatasetSeriesID));\n datasetSeriesDTO.InSeriesID &&\n (this.InSeriesID = asID(datasetSeriesDTO.InSeriesID));\n datasetSeriesDTO.Frequency && (this.Frequency = datasetSeriesDTO.Frequency);\n datasetSeriesDTO.SpatialResolutionInMeters &&\n (this.SpatialResolutionInMeters =\n datasetSeriesDTO.SpatialResolutionInMeters);\n datasetSeriesDTO.TemporalResolution &&\n (this.TemporalResolution = datasetSeriesDTO.TemporalResolution);\n datasetSeriesDTO.Spatial && (this.Spatial = datasetSeriesDTO.Spatial);\n datasetSeriesDTO.Temporal && (this.Temporal = datasetSeriesDTO.Temporal);\n datasetSeriesDTO.WasGeneratedBy &&\n (this.WasGeneratedBy = datasetSeriesDTO.WasGeneratedBy);\n\n await this.populateSeriesMembersFromDTO(datasetSeriesDTO);\n }\n\n public async populateSeriesMembersFromDTO(\n dto: DatasetSeriesDTO,\n ): Promise<void> {\n this.SeriesMembers = [];\n if (dto.SeriesMemberIDs && dto.SeriesMemberIDs.length != 0) {\n this.SeriesMemberIDs = asIDs(dto.SeriesMemberIDs);\n if (this.SeriesMemberIDs && this.SeriesMemberIDs.length != 0) {\n for (const seriesMemberID of this.SeriesMemberIDs) {\n const seriesMember = await Dataset.getDBRecord(seriesMemberID);\n if (seriesMember) {\n this.SeriesMembers.push(seriesMember);\n }\n }\n }\n }\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n if (this.SeriesMembers) {\n for (let i = 0; i < this.SeriesMembers.length; i++) {\n destroy(this.SeriesMembers[i]);\n }\n }\n await super.deleteDBRecord();\n }\n\n public appendSeriesMember(dataset: Dataset) {\n if (!this.SeriesMemberIDs) {\n this.SeriesMemberIDs = [];\n }\n if (!(dataset instanceof Dataset)) {\n throw new InvalidTypeError(dataset, \"Dataset\");\n }\n if (!dataset.id) {\n throw new NotRecordedArgumentError(dataset);\n }\n this.SeriesMemberIDs.push(dataset.id);\n }\n\n public switchSeriesMembers(index1: number, index2: number) {\n if (!this.SeriesMemberIDs || this.SeriesMemberIDs.length === 0) {\n throw new NotInitializedError(\"SeriesMemberIDs\");\n }\n if (index1 < 0 || index1 >= this.SeriesMemberIDs.length) {\n throw new IndexOutOfBoundsError(index1);\n }\n if (index2 < 0 || index2 >= this.SeriesMemberIDs.length) {\n throw new IndexOutOfBoundsError(index2);\n }\n if (index1 === index2) {\n throw new SwitchSameIndexError(index1);\n }\n\n const temp = this.SeriesMemberIDs[index1];\n this.SeriesMemberIDs[index1] = this.SeriesMemberIDs[index2];\n this.SeriesMemberIDs[index2] = temp;\n }\n\n public removeSeriesMember(index: number) {\n if (!this.SeriesMemberIDs || this.SeriesMemberIDs.length === 0) {\n throw new NotInitializedError(\"SeriesMemberIDs\");\n }\n if (index < 0 || index >= this.SeriesMemberIDs.length) {\n throw new IndexOutOfBoundsError(index);\n }\n\n this.SeriesMemberIDs.splice(index, 1);\n if (this.SeriesMembers && index < this.SeriesMembers.length) {\n this.SeriesMembers.splice(index, 1);\n }\n }\n\n public get datasetSeriesID(): IDType {\n return this.DatasetSeriesID;\n }\n public get seriesMemberIDs(): IDType[] {\n return this.SeriesMemberIDs;\n }\n public get seriesMembers(): Dataset[] {\n return this.SeriesMembers;\n }\n\n public get frequency(): string {\n return this.Frequency;\n }\n public set frequency(value: string) {\n this.Frequency = value;\n }\n\n public get spatialResolutionInMeters(): number {\n return this.SpatialResolutionInMeters;\n }\n public set spatialResolutionInMeters(value: number) {\n this.SpatialResolutionInMeters = value;\n }\n\n public get temporalResolution(): string {\n return this.TemporalResolution;\n }\n public set temporalResolution(value: string) {\n this.TemporalResolution = value;\n }\n\n public get spatial(): string {\n return this.Spatial;\n }\n public set spatial(value: string) {\n this.Spatial = value;\n }\n\n public get temporal(): string {\n return this.Temporal;\n }\n public set temporal(value: string) {\n this.Temporal = value;\n }\n\n public get wasGeneratedBy(): string {\n return this.WasGeneratedBy;\n }\n public set wasGeneratedBy(value: string) {\n this.WasGeneratedBy = value;\n }\n}\n\nexport default DatasetSeries;\n","import {InvalidTypeError, NotRecordedYetError} from \"../../core/error\";\nimport {\n asID,\n ExtraMetadataType,\n IDType,\n MultiLanguageField,\n MultiLanguageKeywords,\n} from \"../../core/type\";\nimport ThumbnailFile from \"../../SODAS_SDK_FILE/thumbnailFile\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\nimport VersionInfo, {VersionInfoDTO} from \"./versionInfo\";\n\nexport interface DCAT_RESOURCE_DTO extends DCAT_MODEL_DTO {\n //ResourceType is always determined in backend.\n ResourceType?: string;\n\n AssetID?: string;\n DatahubID?: string;\n ThumbnailURL?: string;\n AccessRights?: string;\n Status?: string;\n VersionNotes?: string;\n Version?: string;\n IsVersionOf?: string;\n PreviousVersionID?: string;\n NextVersionID?: string;\n ContactPoint?: string;\n KeywordML?: MultiLanguageKeywords; // Adjust to specific type if available\n LandingPage?: string;\n Theme?: string;\n ConformsTo?: string;\n Creator?: string;\n DescriptionML?: any; // Adjust to specific type if available\n Identifier?: string;\n IsReferencedBy?: any[]; // Adjust to specific type if available\n Language?: any[]; // Adjust to specific type if available\n License?: string;\n Publisher?: string;\n Rights?: any[];\n TitleML?: MultiLanguageField; // Adjust to specific type if available\n Type?: string;\n HasPolicy?: any[];\n IssuerID?: string;\n ExtraMetadata?: ExtraMetadataType;\n\n VersionInfo?: VersionInfoDTO[];\n}\n\nabstract class DCAT_RESOURCE extends DCAT_MODEL {\n protected Thumbnail: ThumbnailFile;\n\n private ResourceType: string;\n\n private AssetID: IDType;\n private DatahubID: IDType;\n private ThumbnailURL: string;\n private AccessRights: string;\n private Status: string;\n private VersionNotes: string;\n private Version: string;\n private IsVersionOf: IDType;\n private PreviousVersionID: IDType;\n private NextVersionID: IDType;\n private ContactPoint: string;\n private KeywordML: MultiLanguageKeywords;\n private LandingPage: string;\n private Theme: string;\n private ConformsTo: string;\n private Creator: string;\n private DescriptionML: MultiLanguageField;\n private Identifier: string;\n private IsReferencedBy: any[];\n private Language: any[];\n private License: string;\n private Publisher: string;\n private Rights: any[];\n private TitleML: MultiLanguageField;\n private Type: string;\n private HasPolicy: any[];\n private IssuerID: string;\n private ExtraMetadata: ExtraMetadataType;\n\n private VersionInfos: VersionInfo[];\n\n public toDTO(): DCAT_RESOURCE_DTO {\n return {\n ...super.toDTO(),\n AssetID: this.AssetID,\n DatahubID: this.DatahubID,\n ThumbnailURL: this.ThumbnailURL,\n AccessRights: this.AccessRights,\n Status: this.Status,\n VersionNotes: this.VersionNotes,\n Version: this.Version,\n ...(this.IsVersionOf && {IsVersionOf: this.IsVersionOf}),\n ...(this.PreviousVersionID && {\n PreviousVersionID: this.PreviousVersionID,\n }),\n ...(this.NextVersionID && {NextVersionID: this.NextVersionID}),\n ContactPoint: this.ContactPoint,\n KeywordML: this.KeywordML,\n LandingPage: this.LandingPage,\n Theme: this.Theme,\n ConformsTo: this.ConformsTo,\n Creator: this.Creator,\n DescriptionML: this.DescriptionML,\n Identifier: this.Identifier,\n IsReferencedBy: this.IsReferencedBy,\n Language: this.Language,\n License: this.License,\n Publisher: this.Publisher,\n Rights: this.Rights,\n TitleML: this.TitleML,\n Type: this.Type,\n HasPolicy: this.HasPolicy,\n IssuerID: this.IssuerID,\n ExtraMetadata: this.ExtraMetadata,\n };\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n\n const dcatResourceDTO = dto as DCAT_RESOURCE_DTO;\n\n dcatResourceDTO.ResourceType &&\n (this.ResourceType = dcatResourceDTO.ResourceType);\n\n dcatResourceDTO.AssetID && (this.AssetID = asID(dcatResourceDTO.AssetID));\n dcatResourceDTO.DatahubID &&\n (this.DatahubID = asID(dcatResourceDTO.DatahubID));\n dcatResourceDTO.ThumbnailURL &&\n (this.ThumbnailURL = dcatResourceDTO.ThumbnailURL);\n dcatResourceDTO.AccessRights &&\n (this.AccessRights = dcatResourceDTO.AccessRights);\n dcatResourceDTO.Status && (this.Status = dcatResourceDTO.Status);\n dcatResourceDTO.VersionNotes &&\n (this.VersionNotes = dcatResourceDTO.VersionNotes);\n dcatResourceDTO.Version && (this.Version = dcatResourceDTO.Version);\n dcatResourceDTO.IsVersionOf &&\n (this.IsVersionOf = asID(dcatResourceDTO.IsVersionOf));\n dcatResourceDTO.PreviousVersionID &&\n (this.PreviousVersionID = asID(dcatResourceDTO.PreviousVersionID));\n dcatResourceDTO.NextVersionID &&\n (this.NextVersionID = asID(dcatResourceDTO.NextVersionID));\n dcatResourceDTO.ContactPoint &&\n (this.ContactPoint = dcatResourceDTO.ContactPoint);\n dcatResourceDTO.KeywordML && (this.KeywordML = dcatResourceDTO.KeywordML);\n dcatResourceDTO.LandingPage &&\n (this.LandingPage = dcatResourceDTO.LandingPage);\n dcatResourceDTO.Theme && (this.Theme = dcatResourceDTO.Theme);\n dcatResourceDTO.ConformsTo &&\n (this.ConformsTo = dcatResourceDTO.ConformsTo);\n dcatResourceDTO.Creator && (this.Creator = dcatResourceDTO.Creator);\n dcatResourceDTO.DescriptionML &&\n (this.DescriptionML = dcatResourceDTO.DescriptionML);\n dcatResourceDTO.Identifier &&\n (this.Identifier = dcatResourceDTO.Identifier);\n dcatResourceDTO.IsReferencedBy &&\n (this.IsReferencedBy = dcatResourceDTO.IsReferencedBy);\n dcatResourceDTO.Language && (this.Language = dcatResourceDTO.Language);\n dcatResourceDTO.License && (this.License = dcatResourceDTO.License);\n dcatResourceDTO.Publisher && (this.Publisher = dcatResourceDTO.Publisher);\n dcatResourceDTO.Rights && (this.Rights = dcatResourceDTO.Rights);\n dcatResourceDTO.TitleML && (this.TitleML = dcatResourceDTO.TitleML);\n dcatResourceDTO.Type && (this.Type = dcatResourceDTO.Type);\n dcatResourceDTO.HasPolicy && (this.HasPolicy = dcatResourceDTO.HasPolicy);\n dcatResourceDTO.IssuerID && (this.IssuerID = dcatResourceDTO.IssuerID);\n dcatResourceDTO.ExtraMetadata &&\n (this.ExtraMetadata = dcatResourceDTO.ExtraMetadata);\n await this.populateVersionInfoFromDTO(dcatResourceDTO);\n }\n\n public async populateVersionInfoFromDTO(\n dto: DCAT_RESOURCE_DTO,\n ): Promise<void> {\n if (dto.VersionInfo && dto.VersionInfo.length != 0) {\n this.VersionInfos = await Promise.all(\n dto.VersionInfo.map(async (veresionInfoDTO: VersionInfoDTO) => {\n const versionInfo = new VersionInfo();\n await versionInfo.populateFromDTO(veresionInfoDTO);\n return versionInfo;\n }),\n );\n }\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n if (!this.hasDBRecord() && this.Thumbnail) {\n await this.Thumbnail.upload();\n this.ThumbnailURL = this.Thumbnail.getDownloadURL();\n }\n await super.createDBRecord();\n delete this.Thumbnail;\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n if (this.hasDBRecord() && this.Thumbnail) {\n await this.Thumbnail.upload();\n this.ThumbnailURL = this.Thumbnail.getDownloadURL();\n }\n await super.updateDBRecord();\n delete this.Thumbnail;\n }\n\n public setThumbnailForBrowser(file: File) {\n if (!this.Thumbnail) {\n this.Thumbnail = new ThumbnailFile();\n }\n this.Thumbnail.setFileForBrowser(file);\n }\n\n public setThumbnailForNode(thumbnailPath: string) {\n if (!this.Thumbnail) {\n this.Thumbnail = new ThumbnailFile();\n }\n this.Thumbnail.setFileForNode(thumbnailPath);\n }\n\n get assetID(): string {\n return this.AssetID;\n }\n\n get versionInfos(): VersionInfo[] {\n return this.VersionInfos;\n }\n\n get isVersionOf(): string {\n return this.IsVersionOf;\n }\n\n get previousVersionID(): string {\n return this.PreviousVersionID;\n }\n\n get nextVersionID(): string {\n return this.NextVersionID;\n }\n\n set previousVersion(previousVersion: DCAT_RESOURCE) {\n if (!(previousVersion instanceof DCAT_RESOURCE)) {\n throw new InvalidTypeError(previousVersion, \"DCAT_RESOURCE\");\n }\n if (!previousVersion.hasDBRecord()) {\n throw new NotRecordedYetError(previousVersion);\n }\n this.PreviousVersionID = previousVersion.id;\n }\n\n get resourceType(): string {\n return this.ResourceType;\n }\n\n get datahubID(): string {\n return this.DatahubID;\n }\n\n get thumbnailURL(): string {\n return this.ThumbnailURL;\n }\n\n get accessRights(): string {\n return this.AccessRights;\n }\n set accessRights(value: string) {\n this.AccessRights = value;\n }\n\n get status(): string {\n return this.Status;\n }\n set status(value: string) {\n this.Status = value;\n }\n\n get versionNotes(): string {\n return this.VersionNotes;\n }\n set versionNotes(value: string) {\n this.VersionNotes = value;\n }\n\n get version(): string {\n return this.Version;\n }\n set version(value: string) {\n this.Version = value;\n }\n\n get contactPoint(): string {\n return this.ContactPoint;\n }\n set contactPoint(value: string) {\n this.ContactPoint = value;\n }\n\n get landingPage(): string {\n return this.LandingPage;\n }\n set landingPage(value: string) {\n this.LandingPage = value;\n }\n\n get theme(): string {\n return this.Theme;\n }\n set theme(value: string) {\n this.Theme = value;\n }\n\n get conformsTo(): string {\n return this.ConformsTo;\n }\n set conformsTo(value: string) {\n this.ConformsTo = value;\n }\n\n get creator(): string {\n return this.Creator;\n }\n set creator(value: string) {\n this.Creator = value;\n }\n\n get identifier(): string {\n return this.Identifier;\n }\n get language(): any[] {\n return this.Language;\n }\n set language(value: any[]) {\n this.Language = value;\n }\n\n get license(): string {\n return this.License;\n }\n set license(value: string) {\n this.License = value;\n }\n\n get publisher(): string {\n return this.Publisher;\n }\n set publisher(value: string) {\n this.Publisher = value;\n }\n\n get rights(): any[] {\n return this.Rights;\n }\n set rights(value: any[]) {\n this.Rights = value;\n }\n\n get type(): string {\n return this.Type;\n }\n set type(value: string) {\n this.Type = value;\n }\n\n get hasPolicy(): any[] {\n return this.HasPolicy;\n }\n set hasPolicy(value: any[]) {\n this.HasPolicy = value;\n }\n\n get issuerID(): string {\n return this.IssuerID;\n }\n set issuerID(value: string) {\n this.IssuerID = value;\n }\n\n public setExtraMetadata(name: string, value: string) {\n if (!this.ExtraMetadata) {\n this.ExtraMetadata = {};\n }\n this.ExtraMetadata[name] = value;\n }\n\n public getExtraMetadata(name: string): string | undefined {\n if (!this.ExtraMetadata) {\n return undefined;\n }\n return this.ExtraMetadata[name];\n }\n\n public getTitle(languageCode: string = \"ko\"): string {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n return this.TitleML[languageCode];\n }\n\n public setTitle(title: string, languageCode: string = \"ko\") {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n this.TitleML[languageCode] = title;\n }\n\n public removeTitle(languageCode: string = \"ko\") {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n if (this.TitleML[languageCode]) {\n delete this.TitleML[languageCode];\n } else {\n console.warn(`Title for language code \"${languageCode}\" does not exist.`);\n }\n }\n\n public getDescription(languageCode: string = \"ko\"): string {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n return this.DescriptionML[languageCode];\n }\n\n public setDescription(title: string, languageCode: string = \"ko\") {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n this.DescriptionML[languageCode] = title;\n }\n\n public removeDescription(languageCode: string = \"ko\") {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n if (this.DescriptionML[languageCode]) {\n delete this.DescriptionML[languageCode];\n } else {\n console.warn(\n `Description for language code \"${languageCode}\" does not exist.`,\n );\n }\n }\n\n public setKeywords(keywords: string[], languageCode: string = \"ko\") {\n if (!this.KeywordML) {\n this.KeywordML = {};\n }\n this.KeywordML[languageCode] = keywords;\n }\n\n public addKeyword(keyword: string, languageCode: string = \"ko\") {\n if (!this.KeywordML) {\n this.KeywordML = {};\n }\n if (!this.KeywordML[languageCode]) {\n this.KeywordML[languageCode] = [];\n }\n if (!this.KeywordML[languageCode].includes(keyword)) {\n this.KeywordML[languageCode].push(keyword);\n }\n }\n\n public removeKeyword(keyword: string, languageCode: string = \"ko\") {\n if (this.KeywordML && this.KeywordML[languageCode]) {\n this.KeywordML[languageCode] = this.KeywordML[languageCode].filter(\n (k) => k !== keyword,\n );\n if (this.KeywordML[languageCode].length === 0) {\n delete this.KeywordML[languageCode]; // Remove the language entry if empty\n }\n }\n }\n\n public getKeywords(languageCode: string = \"ko\"): string[] {\n if (!this.KeywordML) {\n this.KeywordML = {};\n }\n return this.KeywordML[languageCode] ?? [];\n }\n}\n\nexport default DCAT_RESOURCE;\n","import DataFile from \"../../SODAS_SDK_FILE/dataFile\";\nimport {IDType, MultiLanguageField, asID} from \"../../core/type\";\nimport DCAT_MODEL, {DCAT_MODEL_DTO} from \"../dcatClass\";\n\nexport interface DistributionDTO extends DCAT_MODEL_DTO {\n AccessServiceID?: string;\n AccessURL?: string;\n ByteSize?: number;\n CompressFormat?: string;\n DownloadURL?: string;\n MediaType?: string;\n PackageFormat?: string;\n SpatialResolutionInMeters?: number;\n TemporalResolution?: string;\n AccessRights?: string;\n ConformsTo?: string;\n DescriptionML?: MultiLanguageField; // Adjust to specific MultiLanguageField type if available\n Format?: string;\n License?: string;\n Rights?: any[];\n TitleML?: MultiLanguageField; // Adjust to specific MultiLanguageField type if available\n HasPolicy?: any[];\n Checksum?: string;\n\n IsDistributionOf?: string;\n}\n\nclass Distribution extends DCAT_MODEL {\n static UPLOAD_API_URL: string;\n static DOWNLOAD_API_URL: string;\n\n private UploadingData: DataFile;\n\n private IsDistributionOf: IDType;\n private AccessServiceID: IDType;\n private AccessURL: string;\n private ByteSize: number;\n private CompressFormat: string;\n private DownloadURL: string;\n private MediaType: string;\n private PackageFormat: string;\n private SpatialResolutionInMeters: number;\n private TemporalResolution: string;\n private AccessRights: string;\n private ConformsTo: string;\n private DescriptionML: MultiLanguageField;\n private Format: string;\n private License: string;\n private Rights: any[];\n private TitleML: MultiLanguageField;\n private HasPolicy: any[];\n private Checksum: string;\n\n /**\n * Populates this instance with values from the given Distribution, except for:\n * - DB identity / temporal fields (ID, IRI, Issued, Modified, CreatedAt, UpdatedAt)\n * - Fields that are explicitly set to `undefined` on the source instance\n */\n public populateToSync(source: Distribution): void {\n const excludedKeys = new Set([\"ID\", \"IsDistributionOf\", \"AccessServiceID\"]);\n\n for (const key in source as any) {\n if (!Object.prototype.hasOwnProperty.call(source, key)) continue;\n if (excludedKeys.has(key)) continue;\n const value = (source as any)[key];\n if (value !== undefined) {\n (this as any)[key] = value;\n }\n }\n }\n\n public toDTO(): DistributionDTO {\n return {\n ...super.toDTO(),\n ...(this.IsDistributionOf && {IsDistributionOf: this.IsDistributionOf}),\n ...(this.AccessServiceID && {AccessServiceID: this.AccessServiceID}),\n AccessURL: this.AccessURL,\n ByteSize: this.ByteSize,\n CompressFormat: this.CompressFormat,\n DownloadURL: this.DownloadURL,\n MediaType: this.MediaType,\n PackageFormat: this.PackageFormat,\n SpatialResolutionInMeters: this.SpatialResolutionInMeters,\n TemporalResolution: this.TemporalResolution,\n AccessRights: this.AccessRights,\n ConformsTo: this.ConformsTo,\n DescriptionML: this.DescriptionML,\n Format: this.Format,\n License: this.License,\n Rights: this.Rights,\n TitleML: this.TitleML,\n HasPolicy: this.HasPolicy,\n Checksum: this.Checksum,\n };\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const distributionDTO = dto as DistributionDTO;\n distributionDTO.AccessServiceID &&\n (this.AccessServiceID = asID(distributionDTO.AccessServiceID));\n distributionDTO.AccessURL && (this.AccessURL = distributionDTO.AccessURL);\n distributionDTO.ByteSize && (this.ByteSize = distributionDTO.ByteSize);\n distributionDTO.CompressFormat &&\n (this.CompressFormat = distributionDTO.CompressFormat);\n distributionDTO.DownloadURL &&\n (this.DownloadURL = distributionDTO.DownloadURL);\n distributionDTO.MediaType && (this.MediaType = distributionDTO.MediaType);\n distributionDTO.PackageFormat &&\n (this.PackageFormat = distributionDTO.PackageFormat);\n distributionDTO.SpatialResolutionInMeters &&\n (this.SpatialResolutionInMeters =\n distributionDTO.SpatialResolutionInMeters);\n distributionDTO.TemporalResolution &&\n (this.TemporalResolution = distributionDTO.TemporalResolution);\n distributionDTO.AccessRights &&\n (this.AccessRights = distributionDTO.AccessRights);\n distributionDTO.ConformsTo &&\n (this.ConformsTo = distributionDTO.ConformsTo);\n distributionDTO.DescriptionML &&\n (this.DescriptionML = distributionDTO.DescriptionML);\n distributionDTO.Format && (this.Format = distributionDTO.Format);\n distributionDTO.License && (this.License = distributionDTO.License);\n distributionDTO.Rights && (this.Rights = distributionDTO.Rights);\n distributionDTO.TitleML && (this.TitleML = distributionDTO.TitleML);\n distributionDTO.HasPolicy && (this.HasPolicy = distributionDTO.HasPolicy);\n distributionDTO.Checksum && (this.Checksum = distributionDTO.Checksum);\n distributionDTO.IsDistributionOf &&\n (this.IsDistributionOf = asID(distributionDTO.IsDistributionOf));\n }\n\n /**\n * Initializes or updates the API URLs for the Distribution class.\n *\n * @static\n * @param {string} url - The base URL for the distribution API.\n */\n static configureAPIURL(url: string) {\n Distribution.API_URL = `${url}/distribution`;\n Distribution.LIST_URL = `${Distribution.API_URL}/list`;\n Distribution.UPLOAD_API_URL = `${url}/data/upload`;\n Distribution.DOWNLOAD_API_URL = `${url}/data/download`;\n }\n\n static configureBucketName(bucketName: string) {\n DataFile.configureBucketName(bucketName);\n }\n\n /**\n * Sets file information for a browser environment.\n * @param {File} file - The file object from the browser.\n */\n public setUploadingDataForBrowser(file: File) {\n if (!this.UploadingData) {\n this.UploadingData = new DataFile();\n }\n this.UploadingData.setFileForBrowser(file);\n }\n\n /**\n * Sets file information for a Node.js environment.\n * @param {string} filePath - The file path on the server.\n */\n public setUploadingDataForNode(filePath: string) {\n if (!this.UploadingData) {\n this.UploadingData = new DataFile();\n }\n this.UploadingData.setFileForNode(filePath);\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n if (!this.hasDBRecord() && this.UploadingData) {\n await this.UploadingData.upload();\n this.DownloadURL = this.UploadingData.getDownloadURL();\n }\n await super.createDBRecord();\n delete this.UploadingData;\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n if (this.hasDBRecord() && this.UploadingData) {\n await this.UploadingData.upload();\n this.DownloadURL = this.UploadingData.getDownloadURL();\n }\n await super.updateDBRecord();\n delete this.UploadingData;\n }\n\n // AccessServiceID\n public get accessServiceID(): IDType {\n return this.AccessServiceID;\n }\n\n // AccessURL\n public get accessURL(): string {\n return this.AccessURL;\n }\n public set accessURL(value: string) {\n this.AccessURL = value;\n }\n\n // ByteSize\n public get byteSize(): number {\n return this.ByteSize;\n }\n public set byteSize(value: number) {\n this.ByteSize = value;\n }\n\n // DownloadURL\n public get downloadURL(): string {\n return this.DownloadURL;\n }\n\n public set downloadURL(value: string) {\n this.DownloadURL = value;\n }\n\n // MediaType\n public get mediaType(): string {\n return this.MediaType;\n }\n\n public set mediaType(value: string) {\n this.MediaType = value;\n }\n\n // PackageFormat\n public get packageFormat(): string {\n return this.PackageFormat;\n }\n\n public set packageFormat(value: string) {\n this.PackageFormat = value;\n }\n\n // SpatialResolutionInMeters\n public get spatialResolutionInMeters(): number {\n return this.SpatialResolutionInMeters;\n }\n\n public set spatialResolutionInMeters(value: number) {\n this.SpatialResolutionInMeters = value;\n }\n\n // TemporalResolution\n public get temporalResolution(): string {\n return this.TemporalResolution;\n }\n\n public set temporalResolution(value: string) {\n this.TemporalResolution = value;\n }\n\n // AccessRights\n public get accessRights(): string {\n return this.AccessRights;\n }\n\n public set accessRights(value: string) {\n this.AccessRights = value;\n }\n\n // ConformsTo\n public get conformsTo(): string {\n return this.ConformsTo;\n }\n\n public set conformsTo(value: string) {\n this.ConformsTo = value;\n }\n\n public getTitle(languageCode: string = \"ko\"): string {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n return this.TitleML[languageCode];\n }\n\n public setTitle(title: string, languageCode: string = \"ko\") {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n this.TitleML[languageCode] = title;\n }\n\n public removeTitle(languageCode: string = \"ko\") {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n if (this.TitleML[languageCode]) {\n delete this.TitleML[languageCode];\n } else {\n console.warn(`Title for language code \"${languageCode}\" does not exist.`);\n }\n }\n\n public getDescription(languageCode: string = \"ko\"): string {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n return this.DescriptionML[languageCode];\n }\n\n public setDescription(title: string, languageCode: string = \"ko\") {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n this.DescriptionML[languageCode] = title;\n }\n\n public removeDescription(languageCode: string = \"ko\") {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n if (this.DescriptionML[languageCode]) {\n delete this.DescriptionML[languageCode];\n } else {\n console.warn(\n `Description for language code \"${languageCode}\" does not exist.`\n );\n }\n }\n\n // Format\n public get format(): string {\n return this.Format;\n }\n public set format(value: string) {\n this.Format = value;\n }\n\n // CompressFormat\n public get compressFormat(): string {\n return this.CompressFormat;\n }\n public set compressFormat(value: string) {\n this.CompressFormat = value;\n }\n\n // License\n public get license(): string {\n return this.License;\n }\n public set license(value: string) {\n this.License = value;\n }\n\n // Rights\n public get rights(): any[] {\n return this.Rights;\n }\n public set rights(value: any[]) {\n this.Rights = value;\n }\n\n public get hasPolicy(): any[] {\n return this.HasPolicy;\n }\n public set hasPolicy(value: any[]) {\n this.HasPolicy = value;\n }\n\n // Checksum\n public get checksum(): string {\n return this.Checksum;\n }\n public set checksum(value: string) {\n this.Checksum = value;\n }\n\n // IsDistributionOf\n public get isDistributionOf(): IDType {\n return this.IsDistributionOf;\n }\n public set isDistributionOf(value: string) {\n this.IsDistributionOf = asID(value);\n }\n}\n\nexport default Distribution;\n","import {\n asID,\n asIRI,\n IDType,\n IRIType,\n MultiLanguageField,\n MultiLanguageKeywords,\n} from \"../../core/type\";\nexport interface VersionInfoDTO {\n ID?: string; // ID from core.Model\n TitleML?: MultiLanguageField;\n DescriptionML?: MultiLanguageField;\n IRI?: string;\n KeywordML?: MultiLanguageKeywords;\n ResourceType?: string;\n VersionNotes?: string;\n Version?: string;\n IsVersionOf?: string; // UUID as string\n NextVersionID?: string; // UUID as string\n PreviousVersionID?: string; // UUID as string\n}\n\n/**\n * Represents version information for a resource.\n */\nclass VersionInfo {\n private ID?: IDType;\n private TitleML: MultiLanguageField;\n private DescriptionML: MultiLanguageField;\n private IRI: IRIType;\n private KeywordML: MultiLanguageKeywords;\n private ResourceType: string;\n private VersionNotes: string;\n private Version: string;\n private IsVersionOf?: string;\n private NextVersionID?: string;\n private PreviousVersionID?: string;\n\n public async populateFromDTO(dto: VersionInfoDTO): Promise<void> {\n dto.ID && (this.ID = asID(dto.ID));\n dto.TitleML && (this.TitleML = dto.TitleML);\n dto.DescriptionML && (this.DescriptionML = dto.DescriptionML);\n dto.IRI && (this.IRI = asIRI(dto.IRI));\n dto.KeywordML && (this.KeywordML = dto.KeywordML);\n dto.ResourceType && (this.ResourceType = dto.ResourceType);\n dto.VersionNotes && (this.VersionNotes = dto.VersionNotes);\n dto.Version && (this.Version = dto.Version);\n dto.IsVersionOf && (this.IsVersionOf = dto.IsVersionOf);\n dto.NextVersionID && (this.NextVersionID = dto.NextVersionID);\n dto.PreviousVersionID && (this.PreviousVersionID = dto.PreviousVersionID);\n }\n\n get id(): IDType {\n return this.ID;\n }\n\n public getTitle(languageCode: string = \"ko\"): string {\n if (!this.TitleML) {\n this.TitleML = {};\n }\n return this.TitleML[languageCode];\n }\n\n public getDescription(languageCode: string = \"ko\"): string {\n if (!this.DescriptionML) {\n this.DescriptionML = {};\n }\n return this.DescriptionML[languageCode];\n }\n\n get iri(): IRIType {\n return this.IRI;\n }\n\n public getKeywords(languageCode: string = \"ko\"): string[] {\n return this.KeywordML[languageCode] || [];\n }\n\n get resourceType(): string {\n return this.ResourceType;\n }\n\n get versionNotes(): string {\n return this.VersionNotes;\n }\n\n get version(): string {\n return this.Version;\n }\n\n get isVersionOf(): string {\n return this.IsVersionOf;\n }\n\n get nextVersionID(): string {\n return this.NextVersionID;\n }\n\n get previousVersionID(): string {\n return this.PreviousVersionID;\n }\n}\n\nexport default VersionInfo;\n","import axios from \"axios\";\nimport {\n DeleteRecordFailError,\n RecordNotFoundError,\n UnexpectedResponseFormatError,\n} from \"../core/error\";\nimport {IDType, PaginatedResponse, SortOrder, asID, asIRI} from \"../core/type\";\nimport {LARGE_ENOUGH_NUMBER, destroy, handleAxiosError} from \"../core/util\";\nimport SODAS_SDK_CLASS, {\n throwErrorIfAPIURLNotSetForStatic,\n} from \"./sodasSDKClass\";\n\ninterface DCAT_MODEL_STATIC<GENERIC> {\n new (): GENERIC;\n listDBRecords: typeof DCAT_MODEL.listDBRecords;\n}\nexport interface DCAT_MODEL_DTO {\n ID?: string;\n IRI?: string;\n\n Issued?: string;\n Modified?: string;\n CreatedAt?: string;\n UpdatedAt?: string;\n}\n\nabstract class DCAT_MODEL extends SODAS_SDK_CLASS {\n protected CreatedAt: Date;\n protected UpdatedAt: Date;\n\n public toDTO(): DCAT_MODEL_DTO {\n return {\n ...(this.ID && {ID: this.ID}),\n ...(this.IRI && {IRI: this.IRI}),\n ...(this.Issued && {Issued: this.Issued.toISOString()}),\n ...(this.Modified && {Modified: this.Modified.toISOString()}),\n ...(this.CreatedAt && {CreatedAt: this.CreatedAt.toISOString()}),\n ...(this.UpdatedAt && {UpdatedAt: this.UpdatedAt.toISOString()}),\n };\n }\n\n public hasDBRecord(): boolean {\n if (this.ID && this.IRI) {\n return true;\n } else {\n return false;\n }\n }\n\n public async populateFromDTO(dto: DCAT_MODEL_DTO): Promise<void> {\n dto.ID && (this.ID = asID(dto.ID));\n dto.IRI && (this.IRI = asIRI(dto.IRI));\n dto.Issued && (this.Issued = new Date(dto.Issued));\n dto.Modified && (this.Modified = new Date(dto.Modified));\n dto.CreatedAt && (this.CreatedAt = new Date(dto.CreatedAt));\n dto.UpdatedAt && (this.UpdatedAt = new Date(dto.UpdatedAt));\n }\n\n static async listDBRecords<GENERIC_DCAT_MODEL extends DCAT_MODEL>(\n this: DCAT_MODEL_STATIC<GENERIC_DCAT_MODEL>,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC\n ): Promise<PaginatedResponse<GENERIC_DCAT_MODEL>> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n let response: any;\n try {\n response = await axios.get(\n (this.prototype.constructor as typeof DCAT_MODEL).LIST_URL,\n {\n params: {pageNumber, pageSize, sortOrder},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data.total != null && Array.isArray(response.data.list)) {\n const list = await Promise.all(\n response.data.list.map(async (item: any) => {\n const dcatResource = new this();\n await dcatResource.populateFromDTO(item);\n return dcatResource;\n })\n );\n return {\n total: response.data.total,\n list,\n };\n } else {\n throw new UnexpectedResponseFormatError(response);\n }\n }\n\n static async getAllDBRecords<GENERIC_DCAT_MODEL extends DCAT_MODEL>(\n this: DCAT_MODEL_STATIC<GENERIC_DCAT_MODEL>\n ): Promise<GENERIC_DCAT_MODEL[]> {\n const paginatedResponse = await this.listDBRecords(1, LARGE_ENOUGH_NUMBER);\n return paginatedResponse.list;\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n const data = this.toDTO();\n const cleanData = JSON.parse(JSON.stringify(data));\n const cls = this.constructor as typeof DCAT_MODEL;\n const apiClient = axios.create({\n baseURL: cls.API_URL,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n let response: any;\n try {\n response = await apiClient.post(\"\", cleanData);\n } catch (error) {\n handleAxiosError(error);\n }\n await this.populateFromDTO(response.data);\n }\n\n public static async getDBRecord<GENERIC_DCAT_MODEL extends DCAT_MODEL>(\n this: DCAT_MODEL_STATIC<GENERIC_DCAT_MODEL>,\n ID: IDType\n ): Promise<GENERIC_DCAT_MODEL> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n const url = `${\n (this.prototype.constructor as typeof DCAT_MODEL).API_URL\n }/${ID}`;\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\"Content-Type\": \"application/json\"},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data) {\n const dcatResource = new this();\n await dcatResource.populateFromDTO(response.data);\n return dcatResource;\n } else {\n throw new RecordNotFoundError();\n }\n }\n\n static async getDBRecordByAssetID<GENERIC_DCAT_MODEL extends DCAT_MODEL>(\n this: DCAT_MODEL_STATIC<GENERIC_DCAT_MODEL>,\n assetID: IDType\n ): Promise<GENERIC_DCAT_MODEL> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n const url = `${\n (this.prototype.constructor as typeof DCAT_MODEL).API_URL\n }/asset/${assetID}`;\n let response: any;\n try {\n response = await axios.get(url, {\n headers: {\"Content-Type\": \"application/json\"},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data) {\n const dcatResource = new this();\n await dcatResource.populateFromDTO(response.data);\n return dcatResource;\n } else {\n throw new RecordNotFoundError();\n }\n }\n\n /**\n * Checks whether a DB record exists for the given AssetID and returns its ID.\n *\n * This method wraps getDBRecordByAssetID and converts a 404 response to `null`,\n * while rethrowing any other kind of error.\n */\n static async checkDBRecordOfAssetID(assetID: IDType): Promise<IDType | null> {\n try {\n const record = (await (this as any).getDBRecordByAssetID(\n assetID\n )) as DCAT_MODEL;\n return record.id;\n } catch (error: any) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n return null;\n }\n throw error;\n }\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const data = this.toDTO();\n const cleanData = JSON.parse(JSON.stringify(data));\n const cls = this.constructor as typeof DCAT_MODEL;\n const apiClient = axios.create({\n baseURL: cls.API_URL,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n let response: any;\n try {\n response = await apiClient.post(\"\", cleanData);\n } catch (error) {\n handleAxiosError(error);\n }\n await this.populateFromDTO(response.data);\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const cls = this.constructor as typeof DCAT_MODEL;\n const apiClient = axios.create({\n baseURL: `${cls.API_URL}/`,\n headers: {\n \"Content-Type\": \"application/json\",\n },\n });\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n let response: any;\n try {\n response = await apiClient.delete(`${this.ID}`);\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.status === 204) {\n destroy(this); // Nullify the instance\n } else {\n throw new DeleteRecordFailError();\n }\n }\n\n public get createdAt(): Date {\n return this.CreatedAt;\n }\n\n public get updatedAt(): Date {\n return this.UpdatedAt;\n }\n}\n\nexport default DCAT_MODEL;\n","import axios from \"axios\";\nimport {\n NeedToImplementError,\n NeedToSetFieldError,\n NotRecordedYetError,\n} from \"../../core/error\";\nimport {\n asID,\n asIRI,\n IDType,\n IRIType,\n PaginatedResponse,\n SortOrder,\n} from \"../../core/type\";\nimport {handleAxiosError} from \"../../core/util\";\nimport GOVERNANCE_MODEL, {GOVERNANCE_MODEL_DTO} from \"../governanceClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport Vocabulary from \"./vocabulary\";\n\nexport interface TermDTO extends GOVERNANCE_MODEL_DTO {\n termIri?: string;\n vocabularyId: string;\n name: string;\n description?: string;\n}\n\nclass Term extends GOVERNANCE_MODEL {\n private TermIRI: IRIType;\n private VocabularyID: IDType;\n private Name: string;\n private Description: string;\n\n private VocabularyIRI: IRIType;\n\n static configureAPIURL(url: string): void {\n const PREFIX = \"api/v1/governance/dictionary\";\n Term.API_URL = `${url}/${PREFIX}/term`;\n Term.LIST_URL = `${Term.API_URL}/list`;\n Term.GET_URL = `${Term.API_URL}/get`;\n Term.CREATE_URL = `${Term.API_URL}/create`;\n Term.UPDATE_URL = `${Term.API_URL}/update`;\n Term.DELETE_URL = `${Term.API_URL}/remove`;\n }\n\n public toDTO(): TermDTO {\n return {\n ...super.toDTO(),\n termIri: this.TermIRI,\n vocabularyId: this.vocabularyID,\n name: this.Name,\n ...(this.Description && {description: this.Description}),\n };\n }\n\n public async populateFromFormData(data: any): Promise<void> {\n throw new NeedToImplementError();\n }\n\n public async populateFromDTO(dto: GOVERNANCE_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const termDTO = dto as TermDTO;\n this.TermIRI = asIRI(termDTO.termIri);\n this.VocabularyID = asID(termDTO.vocabularyId);\n this.Name = termDTO.name;\n termDTO.description && (this.Description = termDTO.description);\n }\n\n static async listDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n vocabularyID?: IDType\n ): Promise<PaginatedResponse<Term>> {\n throwErrorIfAPIURLNotSetForStatic(Term);\n try {\n const response = await axios.get(Term.LIST_URL, {\n params: {\n offset: (pageNumber - 1) * pageSize,\n limit: pageSize,\n ordered: sortOrder,\n vocabularyId: vocabularyID,\n },\n // headers,\n });\n return await Term.listResponseToPaginatedResponse(response);\n } catch (error) {\n handleAxiosError(error);\n }\n }\n\n public get termIRI(): IRIType {\n return this.TermIRI;\n }\n\n public set termIRI(value: string) {\n this.TermIRI = asIRI(value);\n }\n\n public setVocabulary(vocabulary: Vocabulary) {\n if (!vocabulary.hasDBRecord()) {\n throw new NotRecordedYetError(vocabulary);\n }\n this.VocabularyID = vocabulary.id;\n this.VocabularyIRI = vocabulary.iri;\n }\n\n public get vocabularyIRI(): IRIType {\n return this.VocabularyIRI;\n }\n\n public get vocabularyID(): IDType {\n return this.VocabularyID;\n }\n\n public get name(): string {\n return this.Name;\n }\n\n public set name(value: string) {\n this.Name = value;\n }\n\n public get description(): string {\n return this.Description;\n }\n\n public set description(value: string) {\n this.Description = value;\n }\n\n public setExternalTermIRIUsingName() {\n if (!this.name) {\n throw new NeedToSetFieldError(this, \"name\");\n }\n this.termIRI = `${this.VocabularyIRI}#${this.name}`;\n }\n}\n\nexport default Term;\n","import axios from \"axios\";\nimport {NamedTermNotExistError, NeedToImplementError} from \"../../core/error\";\nimport {\n asID,\n asIRI,\n IRIType,\n PaginatedResponse,\n SortOrder,\n} from \"../../core/type\";\nimport {destroy, handleAxiosError, LARGE_ENOUGH_NUMBER} from \"../../core/util\";\nimport GOVERNANCE_MODEL, {GOVERNANCE_MODEL_DTO} from \"../governanceClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\nimport Term from \"./term\";\n\nexport interface VocabularyDTO extends GOVERNANCE_MODEL_DTO {\n namespaceIri?: string;\n original: boolean;\n prefix: string;\n name: string;\n description: string;\n}\n\nclass Vocabulary extends GOVERNANCE_MODEL {\n private NamespaceIRI: IRIType;\n private Original: boolean;\n private Prefix: string;\n private Name: string;\n private Description: string;\n\n private FetchedTermIRIs: IRIType[];\n private Terms: Term[];\n\n static configureAPIURL(url: string): void {\n const PREFIX = \"api/v1/governance/dictionary\";\n Vocabulary.API_URL = `${url}/${PREFIX}/vocabulary`;\n Vocabulary.LIST_URL = `${Vocabulary.API_URL}/list`;\n Vocabulary.GET_URL = `${Vocabulary.API_URL}/get`;\n Vocabulary.CREATE_URL = `${Vocabulary.API_URL}/create`;\n Vocabulary.UPDATE_URL = `${Vocabulary.API_URL}/update`;\n Vocabulary.DELETE_URL = `${Vocabulary.API_URL}/remove`;\n }\n\n public toDTO(): VocabularyDTO {\n return {\n ...super.toDTO(),\n ...(this.NamespaceIRI && {namespaceIri: this.NamespaceIRI}),\n original: this.Original,\n prefix: this.Prefix,\n name: this.Name,\n description: this.Description,\n };\n }\n public async populateFromFormData(data: any): Promise<void> {\n throw new NeedToImplementError();\n }\n\n public async populateFromDTO(dto: GOVERNANCE_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n\n const vocabularyDTO = dto as VocabularyDTO;\n this.NamespaceIRI = asIRI(vocabularyDTO.namespaceIri);\n this.Original = vocabularyDTO.original;\n this.Prefix = vocabularyDTO.prefix;\n this.Name = vocabularyDTO.name;\n this.Description = vocabularyDTO.description;\n await this.populateTermsFromDTO(vocabularyDTO);\n }\n\n private async populateTermsFromDTO(dto: VocabularyDTO): Promise<void> {\n if (dto.id) {\n const {list} = await Term.listDBRecords(\n 1,\n LARGE_ENOUGH_NUMBER,\n SortOrder.ASC,\n asID(dto.id)\n );\n this.Terms = list;\n this.FetchedTermIRIs = this.Terms.map((term) => term.iri);\n }\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n const terms = this.Terms;\n await super.createDBRecord();\n terms && (this.Terms = terms);\n if (this.Terms) {\n for (const term of this.Terms) {\n await term.createDBRecord();\n this.FetchedTermIRIs.push(term.iri);\n }\n }\n }\n\n private async deleteNotMaintainedTerms() {\n if (this.FetchedTermIRIs && this.FetchedTermIRIs.length != 0) {\n const existingIRIs = this.FetchedTermIRIs;\n const maintainedIRIs = this.Terms.map((term) => term.iri).filter(\n (iri) => iri !== undefined\n );\n const scheduledToDeletedIRIs = existingIRIs.filter(\n (iri) => !maintainedIRIs.includes(iri)\n );\n const scheduledToDeletedTerms = await Promise.all(\n scheduledToDeletedIRIs.map(async (IRI) => {\n return await Term.getDBRecord(IRI);\n })\n );\n await Promise.all(\n scheduledToDeletedTerms.map(async (term) => {\n await term.deleteDBRecord();\n })\n );\n this.FetchedTermIRIs = maintainedIRIs;\n }\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n try {\n const terms = this.Terms;\n await super.updateDBRecord();\n terms && (this.Terms = terms);\n if (this.Terms) {\n for (const term of this.Terms) {\n term.setVocabulary(this);\n if (term.hasDBRecord()) {\n await term.updateDBRecord();\n } else {\n await term.createDBRecord();\n this.FetchedTermIRIs.push(term.iri);\n }\n }\n await this.deleteNotMaintainedTerms();\n }\n } catch (error) {\n throw error;\n }\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n await this.deleteNotMaintainedTerms();\n if (this.Terms && this.Terms.length != 0) {\n for (let i = 0; i < this.Terms.length; i++) {\n destroy(this.Terms[i]);\n }\n }\n await super.deleteDBRecord();\n }\n\n static async listDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n original?: boolean,\n name?: string\n ): Promise<PaginatedResponse<Vocabulary>> {\n throwErrorIfAPIURLNotSetForStatic(Vocabulary);\n try {\n const response = await axios.get(Vocabulary.LIST_URL, {\n params: {\n offset: (pageNumber - 1) * pageSize,\n limit: pageSize,\n ordered: sortOrder,\n original: original,\n name: name,\n },\n // headers,\n });\n return await Vocabulary.listResponseToPaginatedResponse(response);\n } catch (error) {\n handleAxiosError(error);\n }\n }\n\n public createTerm(): Term {\n if (!this.Terms) {\n this.Terms = [];\n }\n const newTerm = new Term();\n newTerm.setVocabulary(this);\n this.Terms.push(newTerm);\n return newTerm;\n }\n\n public getTermUsingName(name: string): Term {\n const index = this.Terms.findIndex((term) => term.name === name);\n if (index < 0) {\n throw new NamedTermNotExistError(name);\n }\n return this.Terms[index];\n }\n\n public removeTermUsingName(name: string): void {\n const index = this.Terms.findIndex((term) => term.name === name);\n if (index < 0) {\n throw new NamedTermNotExistError(name);\n }\n this.Terms.splice(index, 1);\n }\n\n public get namespaceIRI(): IRIType {\n return this.NamespaceIRI;\n }\n\n public set namespaceIRI(value: string) {\n this.NamespaceIRI = asIRI(value);\n }\n\n public get original(): boolean {\n return this.Original;\n }\n\n public set original(value: boolean) {\n this.Original = value;\n }\n\n public get prefix(): string {\n return this.Prefix;\n }\n\n public set prefix(value: string) {\n this.Prefix = value;\n }\n\n public get name(): string {\n return this.Name;\n }\n\n public set name(value: string) {\n this.Name = value;\n }\n\n public get description(): string {\n return this.Description;\n }\n\n public set description(value: string) {\n this.Description = value;\n }\n\n public get terms(): Term[] {\n return this.Terms;\n }\n}\n\nexport default Vocabulary;\n","import axios from \"axios\";\nimport {\n DeleteRecordFailError,\n NeedToImplementError,\n RecordNotFoundError,\n UnexpectedResponseFormatError,\n} from \"../core/error\";\nimport {asID, asIRI, IRIType, PaginatedResponse, SortOrder} from \"../core/type\";\nimport {destroy, handleAxiosError, LARGE_ENOUGH_NUMBER} from \"../core/util\";\nimport SODAS_SDK_CLASS, {\n throwErrorIfAPIURLNotSetForStatic,\n} from \"./sodasSDKClass\";\ninterface GovernanceModelStatic<GENERIC> {\n new (): GENERIC;\n listDBRecords: typeof GOVERNANCE_MODEL.listDBRecords;\n}\n\nexport interface GOVERNANCE_MODEL_DTO {\n id?: string;\n iri?: string;\n issued?: string;\n modified?: string;\n}\n\nabstract class GOVERNANCE_MODEL extends SODAS_SDK_CLASS {\n static GET_URL: string;\n static CREATE_URL: string;\n static UPDATE_URL: string;\n static DELETE_URL: string;\n\n public toDTO(): GOVERNANCE_MODEL_DTO {\n return {\n ...(this.ID && {id: this.ID}),\n ...(this.IRI && {iri: this.IRI}),\n ...(this.Issued && {issued: this.Issued.toISOString()}),\n ...(this.Modified && {modified: this.Modified.toISOString()}),\n };\n }\n\n public async populateFromFormData(data: any): Promise<void> {}\n\n public async populateFromDTO(dto: GOVERNANCE_MODEL_DTO): Promise<void> {\n dto.id && (this.ID = asID(dto.id));\n dto.iri && (this.IRI = asIRI(dto.iri));\n dto.issued && (this.Issued = new Date(dto.issued));\n dto.modified && (this.Modified = new Date(dto.modified));\n }\n\n public hasDBRecord(): boolean {\n if (this.ID && this.IRI) {\n return true;\n } else {\n return false;\n }\n }\n\n static async listDBRecords<GENERIC_GOVERNANCE_MODEL extends GOVERNANCE_MODEL>(\n this: new () => GENERIC_GOVERNANCE_MODEL,\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ...additionalArgs: any[]\n ): Promise<PaginatedResponse<GOVERNANCE_MODEL>> {\n throw new NeedToImplementError();\n }\n\n static async listResponseToPaginatedResponse<\n GENERIC_GOVERNANCE_MODEL extends GOVERNANCE_MODEL\n >(\n this: GovernanceModelStatic<GENERIC_GOVERNANCE_MODEL>,\n response: any\n ): Promise<PaginatedResponse<GENERIC_GOVERNANCE_MODEL>> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n if (response.data.total != null && Array.isArray(response.data.results)) {\n const list = [];\n for (const item of response.data.results) {\n const governanceModel = new this();\n await governanceModel.populateFromDTO(item);\n list.push(governanceModel);\n }\n return {\n total: response.data.total,\n list,\n };\n } else {\n throw new UnexpectedResponseFormatError(response);\n }\n }\n\n static async getAllDBRecords<\n GENERIC_GOVERNANCE_MODEL extends GOVERNANCE_MODEL\n >(\n this: GovernanceModelStatic<GENERIC_GOVERNANCE_MODEL>\n ): Promise<GENERIC_GOVERNANCE_MODEL[]> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n const paginatedResponse = await this.listDBRecords(1, LARGE_ENOUGH_NUMBER);\n return paginatedResponse.list as GENERIC_GOVERNANCE_MODEL[];\n }\n\n public async createDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfRecorded();\n\n const data = this.toDTO();\n const cleanData = JSON.parse(JSON.stringify(data));\n let response: any;\n try {\n response = await axios.post(\n (this.constructor as typeof GOVERNANCE_MODEL).CREATE_URL,\n cleanData,\n {\n headers: {\"Content-Type\": \"application/json\"},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n await this.populateFromDTO(response.data);\n }\n\n static async getDBRecord<GENERIC_GOVERNANCE_MODEL extends GOVERNANCE_MODEL>(\n this: GovernanceModelStatic<GENERIC_GOVERNANCE_MODEL>,\n IRI: IRIType\n ): Promise<GENERIC_GOVERNANCE_MODEL> {\n //@ts-ignore\n throwErrorIfAPIURLNotSetForStatic(this);\n let response: any;\n const url = `${\n (this.prototype.constructor as typeof GOVERNANCE_MODEL).GET_URL\n }/?iri=${IRI}`;\n try {\n response = await axios.get(url, {\n headers: {\"Content-Type\": \"application/json\"},\n });\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.data) {\n const governanceModel = new this();\n await governanceModel.populateFromDTO(response.data);\n return governanceModel;\n } else {\n throw new RecordNotFoundError();\n }\n }\n\n public async updateDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const {iri, issued, modified, ...data} = this.toDTO();\n const cleanData = JSON.parse(JSON.stringify(data));\n let response: any;\n try {\n response = await axios.post(\n (this.constructor as typeof GOVERNANCE_MODEL).UPDATE_URL,\n cleanData,\n {\n headers: {\"Content-Type\": \"application/json\"},\n }\n );\n } catch (error) {\n handleAxiosError(error);\n }\n await this.populateFromDTO(response.data);\n }\n\n public async deleteDBRecord(): Promise<void> {\n this.throwErrorIfAPIURLNotSet();\n this.throwErrorIfNotRecorded();\n const url = `${(this.constructor as typeof GOVERNANCE_MODEL).DELETE_URL}`;\n let response: any;\n try {\n response = await axios.post(\n url,\n {iri: this.IRI},\n {headers: {\"Content-Type\": \"application/json\"}}\n );\n } catch (error) {\n handleAxiosError(error);\n }\n if (response.status === 201) {\n destroy(this); // Nullify the instance\n } else {\n throw new DeleteRecordFailError();\n }\n }\n}\n\nexport default GOVERNANCE_MODEL;\n","import {\n AlreadyRecordedError,\n API_URL_NOT_SET,\n NeedToImplementError,\n NotRecordedYetError,\n} from \"../core/error\";\nimport {IDType, IRIType, PaginatedResponse, SortOrder} from \"../core/type\";\n\nexport function throwErrorIfAPIURLNotSetForStatic(cls: typeof SODAS_SDK_CLASS) {\n if (!cls.API_URL) {\n throw new API_URL_NOT_SET(cls);\n }\n}\n\nabstract class SODAS_SDK_CLASS {\n static BEARER_TOKEN: string;\n static API_URL: string;\n static LIST_URL: string;\n\n protected ID: IDType;\n protected IRI: IRIType;\n\n protected Issued: Date;\n protected Modified: Date;\n\n static configureAPIURL(url: string) {\n throw new NeedToImplementError();\n }\n\n static async listDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n ...additionalArgs: any[]\n ): Promise<PaginatedResponse<SODAS_SDK_CLASS>> {\n throw new NeedToImplementError();\n }\n\n public abstract toDTO(): any;\n public abstract populateFromDTO(dto: any): Promise<void>;\n\n public abstract createDBRecord(): Promise<void>;\n public abstract updateDBRecord(): Promise<void>;\n public abstract deleteDBRecord(): Promise<void>;\n\n public abstract hasDBRecord(): boolean;\n\n protected throwErrorIfRecorded() {\n if (this.hasDBRecord()) {\n throw new AlreadyRecordedError(this);\n }\n }\n protected throwErrorIfNotRecorded() {\n if (!this.hasDBRecord()) {\n throw new NotRecordedYetError(this);\n }\n }\n\n protected throwErrorIfAPIURLNotSet() {\n if (!(this.constructor as typeof SODAS_SDK_CLASS).API_URL) {\n throw new API_URL_NOT_SET(this.constructor);\n }\n }\n\n public debug() {\n console.log(this);\n }\n\n public get id(): IDType {\n return this.ID;\n }\n\n public get iri(): IRIType {\n return this.IRI;\n }\n\n public get issued(): Date {\n return this.Issued;\n }\n\n public get modified(): Date {\n return this.Modified;\n }\n}\n\nexport default SODAS_SDK_CLASS;\n","import axios from \"axios\";\nimport {NeedToImplementError} from \"../../core/error\";\nimport {IDType, PaginatedResponse, SortOrder} from \"../../core/type\";\nimport {handleAxiosError} from \"../../core/util\";\nimport GOVERNANCE_MODEL, {GOVERNANCE_MODEL_DTO} from \"../governanceClass\";\nimport {throwErrorIfAPIURLNotSetForStatic} from \"../sodasSDKClass\";\n\nexport enum VALIDATION_TYPE {\n DATA_TYPE = \"data_type\",\n RANGE = \"range\",\n PATTERN = \"pattern\",\n UNIQUENESS = \"uniqueness\",\n COMPLETENESS = \"completeness\",\n LENGTH = \"length\",\n ALLOWED_VALUES = \"allowed_values\",\n OUTLIER = \"outlier\",\n STATISTICAL = \"statistical\",\n}\n\nexport enum EXPECTED_TYPE {\n NUMERIC = \"numeric\",\n STRING = \"string\",\n DATETIME = \"datetime\",\n}\n\nexport interface ValidationRule {\n column: string;\n name: string;\n type: VALIDATION_TYPE;\n}\n\nexport interface completnessValidationRule extends ValidationRule {\n type: VALIDATION_TYPE.COMPLETENESS;\n min_completeness: number;\n weight: number;\n}\nexport interface dataTypeValidationRule extends ValidationRule {\n type: VALIDATION_TYPE.DATA_TYPE;\n expected_type: EXPECTED_TYPE;\n weight: number;\n}\nexport interface uniquenessValidationRule extends ValidationRule {\n type: VALIDATION_TYPE.UNIQUENESS;\n weight: number;\n}\nexport interface patternValidationRule extends ValidationRule {\n type: VALIDATION_TYPE.PATTERN;\n pattern: string;\n weight: number;\n}\n\nexport interface ValidationTemplateDTO extends GOVERNANCE_MODEL_DTO {\n name: string;\n description?: string;\n validationRules: ValidationRule[];\n}\n\nclass ValidationTemplate extends GOVERNANCE_MODEL {\n private Name: string;\n private Description: string;\n private ValidationRules: ValidationRule[];\n\n static configureAPIURL(url: string): void {\n const PREFIX = \"api/v1/governance/template\";\n ValidationTemplate.API_URL = `${url}/${PREFIX}/validation`;\n ValidationTemplate.LIST_URL = `${ValidationTemplate.API_URL}/list`;\n ValidationTemplate.GET_URL = `${ValidationTemplate.API_URL}/get`;\n ValidationTemplate.CREATE_URL = `${ValidationTemplate.API_URL}/create`;\n ValidationTemplate.UPDATE_URL = `${ValidationTemplate.API_URL}/update`;\n ValidationTemplate.DELETE_URL = `${ValidationTemplate.API_URL}/remove`;\n }\n\n public toDTO(): ValidationTemplateDTO {\n return {\n ...super.toDTO(),\n name: this.Name,\n ...(this.ValidationRules && {validationRules: this.ValidationRules}),\n ...(this.Description && {description: this.Description}),\n };\n }\n\n public async populateFromFormData(data: any): Promise<void> {\n throw new NeedToImplementError();\n }\n\n public async populateFromDTO(dto: GOVERNANCE_MODEL_DTO): Promise<void> {\n await super.populateFromDTO(dto);\n const validationTemplateDTO = dto as ValidationTemplateDTO;\n this.ValidationRules = validationTemplateDTO.validationRules;\n this.Name = validationTemplateDTO.name;\n this.Description = validationTemplateDTO.description;\n }\n\n static async listDBRecords(\n pageNumber: number = 1,\n pageSize: number = 10,\n sortOrder: SortOrder = SortOrder.DESC,\n vocabularyID?: IDType\n ): Promise<PaginatedResponse<ValidationTemplate>> {\n throwErrorIfAPIURLNotSetForStatic(ValidationTemplate);\n try {\n const response = await axios.get(ValidationTemplate.LIST_URL, {\n params: {\n offset: (pageNumber - 1) * pageSize,\n limit: pageSize,\n ordered: sortOrder,\n vocabularyId: vocabularyID,\n },\n // headers,\n });\n return await ValidationTemplate.listResponseToPaginatedResponse(response);\n } catch (error) {\n handleAxiosError(error);\n }\n }\n\n public get name(): string {\n return this.Name;\n }\n\n public set name(value: string) {\n this.Name = value;\n }\n\n public get description(): string {\n return this.Description;\n }\n\n public set description(value: string) {\n this.Description = value;\n }\n\n public get validationRules(): ValidationRule[] {\n return this.ValidationRules;\n }\n\n public set validationRules(value: ValidationRule[]) {\n this.ValidationRules = value;\n }\n\n static parseValidationRules(rawRules: any[]): ValidationRule[] {\n return rawRules.map((rule) => {\n const baseRule = {\n column: rule.column,\n name: rule.name,\n type: rule.type as VALIDATION_TYPE,\n };\n\n switch (rule.type) {\n case VALIDATION_TYPE.COMPLETENESS:\n return {\n ...baseRule,\n type: VALIDATION_TYPE.COMPLETENESS,\n min_completeness: rule.min_completeness,\n weight: rule.weight,\n } as completnessValidationRule;\n\n case VALIDATION_TYPE.DATA_TYPE:\n return {\n ...baseRule,\n type: VALIDATION_TYPE.DATA_TYPE,\n expected_type: rule.expected_type as EXPECTED_TYPE,\n weight: rule.weight,\n } as dataTypeValidationRule;\n\n case VALIDATION_TYPE.PATTERN:\n return {\n ...baseRule,\n type: VALIDATION_TYPE.PATTERN,\n pattern: rule.pattern,\n weight: rule.weight,\n } as patternValidationRule;\n\n case VALIDATION_TYPE.UNIQUENESS:\n return {\n ...baseRule,\n type: VALIDATION_TYPE.UNIQUENESS,\n weight: rule.weight,\n } as uniquenessValidationRule;\n\n default:\n return baseRule as ValidationRule;\n }\n });\n }\n\n private ensureValidationRulesInitialized() {\n if (!this.ValidationRules) {\n this.ValidationRules = [];\n }\n }\n\n public createRule(type: VALIDATION_TYPE): ValidationRule {\n this.ensureValidationRulesInitialized();\n let rule: ValidationRule;\n const baseRule = {\n column: \"\",\n name: \"\",\n type,\n };\n switch (type) {\n case VALIDATION_TYPE.COMPLETENESS:\n rule = {\n ...baseRule,\n min_completeness: 0,\n weight: 0,\n } as completnessValidationRule;\n break;\n case VALIDATION_TYPE.DATA_TYPE:\n rule = {\n ...baseRule,\n expected_type: EXPECTED_TYPE.STRING,\n weight: 0,\n } as dataTypeValidationRule;\n break;\n case VALIDATION_TYPE.PATTERN:\n rule = {\n ...baseRule,\n pattern: \"\",\n weight: 0,\n } as patternValidationRule;\n break;\n case VALIDATION_TYPE.UNIQUENESS:\n rule = {\n ...baseRule,\n weight: 0,\n } as uniquenessValidationRule;\n break;\n default:\n rule = baseRule as ValidationRule;\n }\n this.ValidationRules.push(rule);\n return rule;\n }\n\n public deleteRuleAt(index: number): void {\n if (!this.ValidationRules) {\n return;\n }\n if (index < 0 || index >= this.ValidationRules.length) {\n return;\n }\n this.ValidationRules.splice(index, 1);\n }\n\n public deleteRuleByTypeAt(type: VALIDATION_TYPE, index: number): void {\n if (!this.ValidationRules) {\n return;\n }\n if (index < 0) {\n return;\n }\n let current = 0;\n for (let i = 0; i < this.ValidationRules.length; i++) {\n if (this.ValidationRules[i].type === type) {\n if (current === index) {\n this.ValidationRules.splice(i, 1);\n return;\n }\n current++;\n }\n }\n }\n\n static groupValidationRulesByColumn(\n rules: ValidationRule[]\n ): Record<string, ValidationRule[]> {\n return rules.reduce((acc, rule) => {\n const column = rule.column;\n if (!acc[column]) {\n acc[column] = [];\n }\n acc[column].push(rule);\n return acc;\n }, {} as Record<string, ValidationRule[]>);\n }\n\n static groupValidationRulesByType(\n rules: ValidationRule[]\n ): Record<VALIDATION_TYPE, ValidationRule[]> {\n return rules.reduce((acc, rule) => {\n const type = rule.type;\n if (!acc[type]) {\n acc[type] = [];\n }\n acc[type].push(rule);\n return acc;\n }, {} as Record<VALIDATION_TYPE, ValidationRule[]>);\n }\n\n /**\n * Parse escaped JSON string containing validation_rules to ValidationRule[]\n * @param escapedString - Escaped JSON string like \"validation_rules\\\":[{\\\"column\\\":\\\"class_label\\\",...}]\"\n * @returns Parsed ValidationRule array\n */\n static parseValidationRulesFromEscapedString(\n escapedString: string\n ): ValidationRule[] {\n let processedString = escapedString.trim();\n\n // Remove surrounding quotes if present (e.g., '\"{\"validation_rules\":...}\"' -> '{\"validation_rules\":...}')\n // Check for both single and double quotes\n if (\n ((processedString.startsWith('\"') && processedString.endsWith('\"')) ||\n (processedString.startsWith(\"'\") && processedString.endsWith(\"'\"))) &&\n processedString.length > 1\n ) {\n processedString = processedString.slice(1, -1).trim();\n }\n\n // Unescape the string (replace \\\" with \")\n // Handle both \\\" and \\\\\\\" cases to avoid double-escaping issues\n let unescapedString = processedString;\n // First handle \\\\\\\" -> \\\"\n unescapedString = unescapedString.replace(/\\\\\\\\\"/g, '\\\\\"');\n // Then handle \\\" -> \"\n unescapedString = unescapedString.replace(/\\\\\"/g, '\"');\n\n // Try to parse as JSON\n let parsed: any;\n try {\n // First try parsing directly\n parsed = JSON.parse(unescapedString);\n } catch (error) {\n // If parsing fails, try different approaches\n const trimmed = unescapedString.trim();\n\n // If it starts with \"validation_rules\" but is not wrapped in braces\n if (\n trimmed.startsWith('\"validation_rules\"') ||\n trimmed.startsWith(\"validation_rules\")\n ) {\n // Try wrapping in braces\n const wrapped = trimmed.startsWith('\"')\n ? `{${trimmed}}`\n : `{\"${trimmed}}`;\n try {\n parsed = JSON.parse(wrapped);\n } catch (e) {\n // If still fails, try without the leading quote\n const withoutQuote = trimmed.replace(/^\"/, \"\");\n parsed = JSON.parse(`{\"${withoutQuote}`);\n }\n } else if (trimmed.startsWith(\"{\") && trimmed.endsWith(\"}\")) {\n // Already looks like JSON object, try parsing again after trimming\n parsed = JSON.parse(trimmed);\n } else {\n throw error;\n }\n }\n\n // Extract validation_rules array\n let validationRules: any;\n\n // If it's already an array, use it directly\n if (Array.isArray(parsed)) {\n validationRules = parsed;\n } else if (parsed.validation_rules) {\n // If it's an object with validation_rules property\n validationRules = parsed.validation_rules;\n } else if (typeof parsed === \"object\") {\n // If it's an object but no validation_rules property, try to use it as is\n validationRules = parsed;\n } else {\n throw new Error(\"Invalid format: validation_rules not found\");\n }\n\n // Ensure validationRules is an array\n if (!Array.isArray(validationRules)) {\n throw new Error(\"Invalid format: validation_rules must be an array\");\n }\n\n const parsedRules =\n ValidationTemplate.parseValidationRules(validationRules);\n (parsedRules as any)._escapedString = escapedString;\n return parsedRules;\n }\n\n /**\n * Convert ValidationRule[] to escaped JSON string\n * @param rules - ValidationRule array to stringify\n * @returns Escaped JSON string with format: \"{\\\"validation_rules\\\":[...]}\"\n */\n static stringifyValidationRulesToEscapedString(\n rules: ValidationRule[]\n ): string {\n // Convert ValidationRule[] to plain objects for JSON serialization\n const plainRules = rules.map((rule) => {\n const plainRule: any = {\n column: rule.column,\n name: rule.name,\n type: rule.type,\n };\n\n switch (rule.type) {\n case VALIDATION_TYPE.COMPLETENESS:\n const completenessRule = rule as completnessValidationRule;\n return {\n ...plainRule,\n min_completeness: completenessRule.min_completeness,\n weight: completenessRule.weight,\n };\n\n case VALIDATION_TYPE.DATA_TYPE:\n const dataTypeRule = rule as dataTypeValidationRule;\n return {\n ...plainRule,\n expected_type: dataTypeRule.expected_type,\n weight: dataTypeRule.weight,\n };\n\n case VALIDATION_TYPE.PATTERN:\n const patternRule = rule as patternValidationRule;\n return {\n ...plainRule,\n pattern: patternRule.pattern,\n weight: patternRule.weight,\n };\n\n case VALIDATION_TYPE.UNIQUENESS:\n const uniquenessRule = rule as uniquenessValidationRule;\n return {\n ...plainRule,\n weight: uniquenessRule.weight,\n };\n\n default:\n return plainRule;\n }\n });\n\n // Create object with validation_rules property\n if ((rules as any)._escapedString) {\n return (rules as any)._escapedString;\n }\n\n const obj = {validation_rules: plainRules};\n const jsonString = JSON.stringify(obj);\n const escaped = jsonString.replace(/\"/g, '\\\\\"');\n return '\"' + escaped + '\"';\n }\n}\n\nexport default ValidationTemplate;\n","import axios from \"axios\";\nimport FormData from \"form-data\";\nimport {UnexpectedResponseFormatError} from \"../core/error\";\nimport {destroy} from \"../core/util\";\nimport SODAS_SDK_FILE from \"./sodasSDKFile\";\n\nclass DataFile extends SODAS_SDK_FILE {\n static UPLOAD_URL: string;\n static REMOVE_URL: string;\n static DOWNLOAD_URL: string;\n static BUCKET_NAME: string;\n\n private endpoint: string;\n private bucketName: string;\n\n static configureAPIURL(url: string) {\n DataFile.UPLOAD_URL = `${url}/data/upload`;\n DataFile.REMOVE_URL = `${url}/data/remove/`;\n DataFile.DOWNLOAD_URL = `${url}/data/download`;\n }\n\n static configureBucketName(bucketName: string) {\n DataFile.BUCKET_NAME = bucketName;\n }\n\n public async upload(): Promise<void> {\n if (!this.fileContent) {\n return;\n }\n try {\n const formData = new FormData();\n formData.append(\"file\", this.fileContent, this.fileName);\n\n const uploadURL = DataFile.BUCKET_NAME\n ? `${DataFile.UPLOAD_URL}?bucketName=${this.bucketName}`\n : DataFile.UPLOAD_URL;\n const uploadResponse = await axios.post(uploadURL, formData, {\n headers: {\n ...(typeof window === \"undefined\" ? formData.getHeaders() : {}),\n },\n });\n\n if (uploadResponse.data && uploadResponse.data.id) {\n this.ID = uploadResponse.data.id;\n this.bucketName = uploadResponse.data.bucketName;\n this.endpoint = uploadResponse.data.endpoint;\n } else {\n throw new UnexpectedResponseFormatError(uploadResponse);\n }\n } catch (error) {\n console.error(\"Error during file upload:\", error);\n throw error;\n }\n }\n\n public async remove(): Promise<void> {\n if (!this.ID) {\n return;\n }\n try {\n const removeURL = this.bucketName\n ? `${DataFile.REMOVE_URL}${this.ID}?bucketName=${this.bucketName}`\n : `${DataFile.REMOVE_URL}${this.ID}`;\n const removeResponse = await axios.get(removeURL);\n if (removeResponse.status == 204 || removeResponse.status == 200) {\n destroy(this);\n } else {\n throw new UnexpectedResponseFormatError(removeResponse);\n }\n } catch (error) {\n console.error(\"Error during file upload:\", error);\n throw error;\n }\n }\n\n public getDownloadURL(): string {\n return `${DataFile.DOWNLOAD_URL}/${this.ID}?bucketName=${this.bucketName}&endpoint=${this.endpoint}`;\n }\n}\n\nexport default DataFile;\n","import axios from \"axios\";\nimport FormData from \"form-data\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport {\n NeedToImplementError,\n UnexpectedResponseFormatError,\n} from \"../core/error\";\nimport {destroy} from \"../core/util\";\nabstract class SODAS_SDK_FILE {\n static BEARER_TOKEN: string;\n static UPLOAD_URL: string;\n static REMOVE_URL: string;\n static DOWNLOAD_URL: string;\n\n protected ID: string; //Sometimes it is not uuid. So I decide to leave it as a string.\n\n protected fileName?: string;\n protected fileSize?: number;\n protected fileType?: string;\n protected fileContent?: any;\n\n static configureAPIURL(url: string): void {\n throw new NeedToImplementError();\n }\n\n /**\n * Sets file information for a browser environment.\n * @param {File} file - The file object from the browser.\n */\n public setFileForBrowser(file: File) {\n this.fileName = file.name;\n this.fileSize = file.size;\n this.fileType = file.type;\n this.fileContent = file;\n }\n\n /**\n * Sets file information for a Node.js environment.\n * @param {string} filePath - The file path on the server.\n */\n public setFileForNode(filePath: string) {\n const fileName = path.basename(filePath);\n const fileType = path.extname(filePath);\n const fileTypeWithoutDot = fileType.slice(1);\n const fileStats = fs.statSync(filePath);\n this.fileContent = fs.readFileSync(filePath);\n this.fileName = fileName;\n this.fileSize = fileStats.size;\n this.fileType = fileTypeWithoutDot;\n }\n\n public async upload(): Promise<void> {\n if (!this.fileContent) {\n return;\n }\n try {\n const cls = this.constructor as typeof SODAS_SDK_FILE;\n const formData = new FormData();\n formData.append(\"file\", this.fileContent, this.fileName);\n\n const apiClient = axios.create({\n headers: {\n ...(typeof window === \"undefined\" ? formData.getHeaders() : {}),\n },\n });\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n\n const uploadResponse = await apiClient.post(cls.UPLOAD_URL, formData);\n\n if (uploadResponse.data && uploadResponse.data.id) {\n this.ID = uploadResponse.data.id;\n } else {\n throw new UnexpectedResponseFormatError(uploadResponse);\n }\n } catch (error) {\n console.error(\"Error during file upload:\", error);\n throw error;\n }\n }\n\n public async remove(): Promise<void> {\n if (!this.ID) {\n return;\n }\n try {\n const cls = this.constructor as typeof SODAS_SDK_FILE;\n const apiClient = axios.create();\n\n if (cls.BEARER_TOKEN) {\n apiClient.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${cls.BEARER_TOKEN}`;\n }\n\n const removeURL = `${cls.REMOVE_URL}${this.ID}`;\n const removeResponse = await apiClient.get(removeURL);\n if (removeResponse.status == 204 || removeResponse.status == 200) {\n destroy(this);\n } else {\n throw new UnexpectedResponseFormatError(removeResponse);\n }\n } catch (error) {\n console.error(\"Error during file upload:\", error);\n throw error;\n }\n }\n\n public getDownloadURL(): string {\n return `${(this.constructor as typeof SODAS_SDK_FILE).DOWNLOAD_URL}/${\n this.ID\n }`;\n }\n}\n\nexport default SODAS_SDK_FILE;\n","import SODAS_SDK_FILE from \"./sodasSDKFile\";\n\nclass ThumbnailFile extends SODAS_SDK_FILE {\n static UPLOAD_URL: string;\n static REMOVE_URL: string;\n static DOWNLOAD_URL: string;\n\n static configureAPIURL(url: string) {\n ThumbnailFile.UPLOAD_URL = `${url}/thumbnail/upload`;\n ThumbnailFile.REMOVE_URL = `${url}/thumbnail/remove/`;\n ThumbnailFile.DOWNLOAD_URL = `${url}/thumbnails`;\n }\n}\n\nexport default ThumbnailFile;\n","import axios from \"axios\";\nimport DataServiceDTO from \"../SODAS_SDK_CLASS/DCAT/dataService\";\nimport Dataset from \"../SODAS_SDK_CLASS/DCAT/dataset\";\nimport DatasetSeries from \"../SODAS_SDK_CLASS/DCAT/datasetSeries\";\nimport Distribution from \"../SODAS_SDK_CLASS/DCAT/distribution\";\nimport Term from \"../SODAS_SDK_CLASS/dictionary/term\";\nimport Vocabulary from \"../SODAS_SDK_CLASS/dictionary/vocabulary\";\nimport ValidationTemplate from \"../SODAS_SDK_CLASS/template/validation\";\nimport DataFile from \"../SODAS_SDK_FILE/dataFile\";\nimport ThumbnailFile from \"../SODAS_SDK_FILE/thumbnailFile\";\nimport {NoAccessTokenFoundError, UnexpectedResponseFormatError} from \"./error\";\nimport {setGovernanceBearerToken, setLegacyDatahubBearerToken} from \"./init\";\n\nclass Config {\n private static instance: Config | null = null;\n\n private governanceToken: string | null = null;\n private legacyDatahubToken: string | null = null;\n\n private governanceBaseUrl: string;\n private sodasProfileBaseUrl: string;\n private legacyDatahubBaseUrl: string;\n\n private constructor(\n governanceBaseUrl: string,\n sodasProfileBaseUrl: string,\n legacyDatahubBaseUrl: string\n ) {\n this.governanceBaseUrl = governanceBaseUrl.replace(/\\/$/, \"\");\n this.sodasProfileBaseUrl = sodasProfileBaseUrl.replace(/\\/$/, \"\");\n this.legacyDatahubBaseUrl = legacyDatahubBaseUrl.replace(/\\/$/, \"\");\n this.initializeAPIURLs();\n }\n\n /**\n * Explicitly configure the SDK with the given API URLs.\n * This is the preferred way to set API URLs instead of using configureAPIURL.\n */\n public static configure(\n datahubApiUrl: string,\n governanceApiUrl: string,\n legacyDatahubApiUrl: string\n ): Config {\n if (!Config.instance) {\n Config.instance = new Config(\n governanceApiUrl,\n datahubApiUrl,\n legacyDatahubApiUrl\n );\n } else {\n Config.instance.governanceBaseUrl = governanceApiUrl.replace(/\\/$/, \"\");\n Config.instance.sodasProfileBaseUrl = datahubApiUrl.replace(/\\/$/, \"\");\n Config.instance.legacyDatahubBaseUrl = legacyDatahubApiUrl.replace(\n /\\/$/,\n \"\"\n );\n Config.instance.initializeAPIURLs();\n }\n return Config.instance;\n }\n\n /**\n * Get the singleton instance of Config, using environment variables.\n */\n public static getInstance(): Config {\n if (!Config.instance) {\n const governanceBaseUrl =\n process.env.PRODUCTION_GOVERNANCE_API_URL ||\n process.env.TEST_GOVERNANCE_API_URL ||\n \"\";\n const sodasProfileBaseUrl =\n process.env.PRODUCTION_DATAHUB_API_URL ||\n process.env.TEST_SODAS_PROFILE_API_URL ||\n \"\";\n const legacyDatahubBaseUrl =\n process.env.PRODUCTION_LEGACY_DATAHUB_API_URL ||\n process.env.TEST_LEGACY_DATAHUB_API_URL ||\n \"\";\n\n if (!governanceBaseUrl || !sodasProfileBaseUrl) {\n throw new Error(\n \"Governance or Datahub base URL is not configured in environment variables.\"\n );\n }\n\n Config.instance = new Config(\n governanceBaseUrl,\n sodasProfileBaseUrl,\n legacyDatahubBaseUrl\n );\n }\n\n return Config.instance;\n }\n\n /**\n * Initialize all SDK class API URLs based on the configured base URLs.\n */\n private initializeAPIURLs(): void {\n const SLASH_DELETED_SODAS_PROFILE_BASE_URL =\n this.sodasProfileBaseUrl.replace(/\\/$/, \"\");\n const SLASH_DELETED_GOVERNANCE_PORTAL_API_URL =\n this.governanceBaseUrl.replace(/\\/$/, \"\");\n\n if (this.sodasProfileBaseUrl) {\n Distribution.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n Dataset.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n DatasetSeries.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n DataServiceDTO.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n ThumbnailFile.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n DataFile.configureAPIURL(SLASH_DELETED_SODAS_PROFILE_BASE_URL);\n } else {\n console.error(\"DATAHUB_API_URL not found in config\");\n }\n\n if (this.governanceBaseUrl) {\n Vocabulary.configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);\n Term.configureAPIURL(SLASH_DELETED_GOVERNANCE_PORTAL_API_URL);\n ValidationTemplate.configureAPIURL(\n SLASH_DELETED_GOVERNANCE_PORTAL_API_URL\n );\n } else {\n console.error(\"GOVERNANCE_API_URL not found in config\");\n }\n }\n\n /**\n * Login to the Governance portal and store the access token.\n */\n public async loginGovernance(id: string, password: string): Promise<void> {\n const url = `${this.governanceBaseUrl}/api/v1/authnz/authentication/user/login`;\n const parameters = {\n id,\n password,\n offline: false,\n };\n\n const response = await axios.post(url, parameters);\n if (response.data && response.data.accessToken) {\n this.governanceToken = response.data.accessToken;\n setGovernanceBearerToken(this.governanceToken);\n } else {\n throw new NoAccessTokenFoundError();\n }\n }\n\n /**\n * Login to the Datahub portal and store the access token.\n */\n public async loginLegacyDatahub(id: string, password: string): Promise<void> {\n const url = `${this.legacyDatahubBaseUrl}/api/v1/authnz/authentication/user/login`;\n const parameters = {\n id,\n password,\n offline: false,\n };\n\n try {\n const response = await axios.post(url, parameters);\n if (response.data && response.data.accessToken) {\n this.legacyDatahubToken = response.data.accessToken;\n setLegacyDatahubBearerToken(this.legacyDatahubToken);\n } else {\n throw new NoAccessTokenFoundError();\n }\n } catch (error) {\n console.error(\"Error during loginLegacyDatahub:\", error);\n throw error;\n }\n }\n\n /**\n * Logout from the Governance portal and clear the stored token.\n */\n public async logoutGovernance(): Promise<void> {\n const url = `${this.governanceBaseUrl}/api/v1/authnz/authentication/user/logout`;\n\n const response = await axios.post(\n url,\n {},\n {\n headers: this.governanceToken\n ? {Authorization: `Bearer ${this.governanceToken}`}\n : undefined,\n }\n );\n\n if (response.data && response.data.result === \"success\") {\n this.governanceToken = null;\n } else {\n throw new UnexpectedResponseFormatError(response.data);\n }\n }\n\n /**\n * Logout from the Datahub portal and clear the stored token.\n */\n public async logoutLegacyDatahub(): Promise<void> {\n const url = `${this.legacyDatahubBaseUrl}/api/v1/authnz/authentication/user/logout`;\n\n const response = await axios.post(\n url,\n {},\n {\n headers: this.legacyDatahubToken\n ? {Authorization: `Bearer ${this.legacyDatahubToken}`}\n : undefined,\n }\n );\n\n if (response.data && response.data.result === \"success\") {\n this.legacyDatahubToken = null;\n } else {\n throw new UnexpectedResponseFormatError(response.data);\n }\n }\n\n /**\n * Get the current Governance access token.\n */\n public getGovernanceToken(): string | null {\n return this.governanceToken;\n }\n\n /**\n * Get the current Datahub access token.\n */\n public getLegacyDatahubToken(): string | null {\n return this.legacyDatahubToken;\n }\n}\n\nexport default Config;\n","import SODAS_SDK_CLASS from \"../SODAS_SDK_CLASS/sodasSDKClass\";\nimport {ResourceDescriptorRole} from \"./type\";\n\nexport class AlreadyRecordedError extends Error {\n constructor(instance: SODAS_SDK_CLASS) {\n super(\n `This instance is already recorded in Database : ${JSON.stringify(\n instance\n )}`\n );\n }\n}\nexport class API_URL_NOT_SET extends Error {\n constructor(cls: Function) {\n super(`API_URL is not set in class: ${cls.name}`);\n this.name = \"API_URL_NOT_SET\";\n }\n}\nexport class DeleteRecordFailError extends Error {\n constructor() {\n super(\"Delete DBRecord Failed\");\n }\n}\n\nexport class IndexOutOfBoundsError extends Error {\n constructor(index: number) {\n super(`Index : ${index} out of bounds`);\n }\n}\n\nexport class InvalidDateObjectError extends Error {\n constructor(value: any) {\n super(`Invalid Date object : ${value}`);\n }\n}\n\nexport class InvalidDateStringError extends Error {\n constructor(str: string) {\n super(`Invalid Date string : ${str}`);\n }\n}\n\nexport class InvalidTypeError extends Error {\n constructor(value: any, expectedType: string) {\n super(`Invalid type '${typeof value}' instead of '${expectedType}'`);\n }\n}\n\nexport class InvalidValueError extends Error {\n constructor(value: any) {\n super(`Invalid value : ${JSON.stringify(value)} is put`);\n }\n}\n\nexport class NamedTermNotExistError extends Error {\n constructor(name: string) {\n super(`Named term ${name} not exist.`);\n }\n}\n\nexport class NeedToImplementError extends Error {\n constructor() {\n super(`It needs to be implemented.`);\n }\n}\n\nexport class NeedToSetFieldError extends Error {\n constructor(value: any, field: string) {\n super(\n `This instance : ${JSON.stringify(value)} needs to set field : ${field}`\n );\n }\n}\n\nexport class NoAccessTokenFoundError extends Error {\n constructor() {\n super(\"No accessToken found in the response\");\n }\n}\n\nexport class NotInitializedError extends Error {\n constructor(field: string) {\n super(`Field : ${field} is not initialized yet`);\n }\n}\n\nexport class NotRecordedArgumentError extends Error {\n constructor(instance: SODAS_SDK_CLASS) {\n super(`Not recorded argument is put : ${JSON.stringify(instance)}`);\n }\n}\n\nexport class NotRecordedYetError extends Error {\n constructor(instance: SODAS_SDK_CLASS) {\n super(\n `This instance is not recorded in Database yet : ${JSON.stringify(\n instance\n )}`\n );\n }\n}\n\nexport class RecordNotFoundError extends Error {\n constructor() {\n super(\"Record is not found\");\n }\n}\n\nexport class RequirementsNotSetError extends Error {\n constructor() {\n super(`Requirements are not set`);\n }\n}\n\nexport class ResourceRoleDescriptorAlreadyExist extends Error {\n constructor(role: ResourceDescriptorRole) {\n super(`Resource Descripotor with specific role : ${role} already exists.`);\n }\n}\n\nexport class ResourceRoleDescriptorNotExist extends Error {\n constructor(role: ResourceDescriptorRole) {\n super(`Resource Descripotor with specific role : ${role} doesn't exists.`);\n }\n}\n\nexport class RetryLimitReachedError extends Error {\n constructor(max: number) {\n super(`Max retries[${max}] reached`);\n }\n}\n\nexport class SwitchSameIndexError extends Error {\n constructor(index: number) {\n super(`Switch same index : ${index}`);\n }\n}\n\nexport class UnexpectedResponseFormatError extends Error {\n constructor(response: any) {\n super(`Unexpected response format. : ${JSON.stringify(response)}`);\n }\n}\n","import DataServiceDTO from \"../SODAS_SDK_CLASS/DCAT/dataService\";\nimport Dataset from \"../SODAS_SDK_CLASS/DCAT/dataset\";\nimport DatasetSeries from \"../SODAS_SDK_CLASS/DCAT/datasetSeries\";\nimport Distribution from \"../SODAS_SDK_CLASS/DCAT/distribution\";\nimport Term from \"../SODAS_SDK_CLASS/dictionary/term\";\nimport Vocabulary from \"../SODAS_SDK_CLASS/dictionary/vocabulary\";\nimport ValidationTemplate from \"../SODAS_SDK_CLASS/template/validation\";\n\n/**\n * Sets the Bearer token for API authentication across multiple DTO classes.\n *\n * @param {string} token - The Bearer token used for API authentication.\n * @returns {void}\n */\nexport function setGovernanceBearerToken(token: string): void {\n Vocabulary.BEARER_TOKEN = token;\n Term.BEARER_TOKEN = token;\n ValidationTemplate.BEARER_TOKEN = token;\n}\n\nexport function setLegacyDatahubBearerToken(token: string): void {\n Dataset.BEARER_TOKEN = token;\n DataServiceDTO.BEARER_TOKEN = token;\n DatasetSeries.BEARER_TOKEN = token;\n Distribution.BEARER_TOKEN = token;\n}\n","import {InvalidDateObjectError, InvalidDateStringError} from \"./error\";\n\nexport type IDType = string & {__iriBrand: never};\n\nconst uuidRegex =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\n\nexport function asID(value: string): IDType {\n if (!uuidRegex.test(value)) {\n throw new Error(`Invalid UUID format: '${value}'`);\n }\n return value as IDType;\n}\n\nexport function asIDs(values: string[]): IDType[] {\n return values.map((value) => asID(value));\n}\n\nexport type IRIType = string & {__iriBrand: never};\n\nexport function asIRI(value: string): IRIType {\n return value as IRIType;\n}\n/**\n * Branded type for a valid ISO 8601 date-time string.\n * Example: \"2025-01-08T09:04:51.008Z\" or \"2025-01-08T18:10:01.292602+09:00\"\n */\nexport type DateString = string & {__iriBrand: never};\n\n/**\n * Converts a Date object to a DateString (ISO 8601 format).\n *\n * @param {Date} date - The Date object to convert.\n * @returns {DateString} - The validated ISO 8601 date-time string.\n * @throws {Error} - Throws an error if the Date object is invalid.\n */\nexport function toDateString(date: Date | null): DateString {\n if (!(date instanceof Date) || isNaN(date.getTime())) {\n throw new InvalidDateObjectError(date);\n }\n\n // Convert the Date object to an ISO 8601 string\n const value = date.toISOString();\n\n // Validate the format\n const ISO_8601_PATTERN =\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})$/;\n\n if (!ISO_8601_PATTERN.test(value)) {\n throw new InvalidDateStringError(value);\n }\n\n return value as DateString;\n}\n/**\n * Converts a DateString to a JavaScript Date object.\n *\n * @param {DateString} dateString - The ISO 8601 date-time string to convert.\n * @returns {Date} - The corresponding JavaScript Date object.\n */\nexport function toDate(dateString: DateString): Date {\n const date = new Date(dateString);\n if (isNaN(date.getTime())) {\n throw new InvalidDateStringError(dateString);\n }\n return date;\n}\n\n//TODO : ROW_KEY must be added and controlled\nexport type TemplateArtifactRow = {\n [K in TemplateDetailFunctionality]?: any;\n};\n\nexport type TemplateArtifactValue = Array<TemplateArtifactRow>;\n\n/**\n * Represents a multilingual field where each key is a language code (e.g., \"en\", \"ko\") and the value is a string.\n */\nexport type MultiLanguageField = {[languageCode: string]: string};\n\n/**\n * Represents multilingual keywords where each key is a language code and the value is an array of strings.\n */\nexport type MultiLanguageKeywords = {[languageCode: string]: string[]};\n\nexport type ExtraMetadataType = {[MetaFieldName: string]: string};\n\nexport enum ResourceDescriptorRole {\n VOCABULARY = \"vocabulary\",\n TYPE = \"type\",\n SCHEMA = \"schema\",\n CONSTRAINT = \"constraint\",\n VALIDATION = \"validation\",\n MAPPING = \"mapping\",\n EXAMPLE = \"example\",\n SPECIFICATION = \"specification\",\n GUIDANCE = \"guidance\",\n}\n\nexport enum ArtifactType {\n TEMPLATE = \"template\",\n FILE = \"file\",\n}\n\nexport enum TemplateDetailFunctionality {\n //VOCABULARY\n ORIGIN = \"origin\",\n NAMESPACE = \"namespaceIRI\",\n TERM = \"term\",\n DESCRIPTION = \"description\", //EXAMPLE and SCHEMA ALSO\n //TYPE\n NAME = \"name\", //SCHEMA ALSO\n LABEL = \"label\",\n VALUE = \"value\", //EXAMPLE ALSO\n //SCHEMA\n TYPE = \"type\", //CONSTRAINT ALSO\n REQUIRED = \"required\", //CONSTRAINT ALSO\n FIELD_TERM = \"fieldTerm\",\n //CONSTRAINT\n FIELD = \"field\", //EXAMPLE and MAPPING ALSO\n REGEX = \"regex\",\n //VALIDATION\n MEASURE = \"measure\",\n //MAPPING\n TARGET_PROFILE = \"targetProfile\",\n TARGET_FIELD = \"targetField\",\n //EXAMPLE : FIELD, VALUE, DESCIRPTION\n\n //SPECIFICATION\n CONVERSION = \"conversion\", // May be Serealization to pdf or just html\n //GUIDANCE : I think I need to remove it\n}\n\nexport type PaginatedResponse<GENERIC_SODAS_SDK_CLASS> = {\n total: number;\n list: GENERIC_SODAS_SDK_CLASS[];\n};\n\nexport enum SortOrder {\n ASC = \"ASC\",\n DESC = \"DESC\",\n}\n","import axios, {AxiosError, AxiosResponse} from \"axios\";\nimport cloneDeep from \"lodash.clonedeep\";\nimport {RetryLimitReachedError} from \"./error\";\n/**\n * Enumeration to differentiate between `ID` and `IRI`.\n *\n * @enum {string}\n */\n\n/**\n * Handles errors by logging the details and re-throwing the error.\n *\n * @param {any} error - The error object to handle.\n * @throws {any} - Re-throws the provided error after logging it.\n */\nexport function handleError(error: any): never {\n if (error.response) {\n console.error(\"Error response:\", error.response.data);\n console.error(\"Error status:\", error.response.status);\n } else if (error.request) {\n console.error(\"No response received:\", error.request);\n } else {\n console.error(\"Error:\", error.message);\n }\n throw error;\n}\n\nexport function handleAxiosError(error: AxiosError): never {\n if (axios.isAxiosError(error) && error.response) {\n const errorData = error.response.data as any;\n if (errorData.error) {\n console.error(`Error: ${error.response.status} - ${errorData.error}`);\n } else if (errorData.message) {\n console.error(`Error: ${error.response.status} - ${errorData.message}`);\n } else {\n console.error(`Error: ${error.response.status} - ${errorData}`);\n }\n } else {\n if ((error.code = \"ECONNREFUSED\")) {\n console.log(\"CONNECTION ERROR\");\n } else {\n console.error({\n message: error.message,\n code: error.code,\n status: error.response?.status,\n });\n }\n }\n throw error; // Re-throw the error so it can be handled by the caller if needed\n}\n\n/**\n * Removes all properties from an object, effectively making it empty.\n *\n * This function deletes all own properties of the provided object,\n * and remove the prototype also.\n * leaving the object in an unusable state.\n *\n * @param {object} obj - The object whose properties will be deleted.\n * @returns {void}\n *\n * @example\n * const obj = { id: 123, name: \"Test\" };\n * destroy(obj);\n * console.log(obj); // Output: {}\n */\nexport function destroy(obj: any): void {\n const keys = Object.getOwnPropertyNames(obj);\n for (const key of keys) {\n delete (obj as any)[key];\n }\n Object.setPrototypeOf(obj, Object.prototype);\n}\n\n/**\n * Creates a deep copy of the given instance, preserving the prototype chain and handling nested objects.\n *\n * This function recursively copies all properties of the instance, ensuring that nested objects\n * and arrays are also deeply copied. The returned object retains the same prototype as the original instance.\n *\n * @template T - The type of the instance to be copied.\n * @param {T} instance - The instance to be deeply copied.\n * @returns {T} A new instance that is a deep copy of the original, with the same prototype.\n */\nexport function deepCopy<T>(instance: T): T {\n return cloneDeep(instance);\n}\n\nconst SYSTEM_PROCESSING = \"SYSTEM_PROCESSING\"; // Replace with your actual flag value\n\nexport const LARGE_ENOUGH_NUMBER = 10000;\ninterface RetryResponse {\n errorCode: string;\n flag: string; // Adjust the type to match your actual API response\n [key: string]: any; // Optionally allow other properties\n}\n\n/**\n * A function to repeatedly try an Axios request until the response meets specific criteria.\n * @param requestFn - A function that executes an Axios request and returns a response.\n * @param maxRetries - Maximum number of retries before giving up.\n * @param delayMs - Delay between retries in milliseconds.\n * @returns The Axios response that meets the criteria.\n * @throws Error if the maximum number of retries is reached or if an error occurs.\n */\nexport async function retryRequest<\n GENERIC_RETRY_RESPONSE extends RetryResponse\n>(\n requestFn: () => Promise<AxiosResponse<GENERIC_RETRY_RESPONSE>>,\n maxRetries: number = 30,\n delayMs: number = 1000\n): Promise<AxiosResponse<GENERIC_RETRY_RESPONSE>> {\n let retries = 0;\n\n while (retries < maxRetries) {\n try {\n const response = await requestFn();\n if (response.status === 200 && response.data.flag !== SYSTEM_PROCESSING) {\n return response; // Return the successful response\n }\n // If still processing, wait before retrying\n if (response.status === 200 && response.data.flag === SYSTEM_PROCESSING) {\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n retries++;\n } else {\n return response;\n }\n } catch (error) {\n throw error; // Rethrow error if retries are exhausted\n }\n }\n throw new RetryLimitReachedError(maxRetries);\n}\n\nexport function sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","export enum ORIGIN_VALUES {\n EXISTING = \"existing\",\n APPENDING = \"appending\",\n // APPENDED = \"appended\",\n}\n\nexport enum BASIC_TYPE_VALUES {\n DATE = \"date\",\n CELCIUS = \"celcius\",\n FAHRENT = \"fahrent\",\n mph = \"mph\",\n MPS = \"mps\",\n inHg = \"inHg\",\n hPa = \"hPa\",\n in = \"in\",\n mm = \"mm\",\n microgram = \"microgram\",\n}\n\nexport enum MEASURE_VALUES {\n CONSTRAINT = \"constraint\",\n YDATA = \"y-data\",\n}\n\nexport enum CONVERSION_VALUES {\n HTML = \"html\",\n PDF = \"pdf\",\n}\n","module.exports = require(\"assert\");","module.exports = require(\"events\");","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"os\");","module.exports = require(\"path\");","module.exports = require(\"stream\");","module.exports = require(\"tty\");","module.exports = require(\"url\");","module.exports = require(\"util\");","module.exports = require(\"zlib\");","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport buildURL from './../helpers/buildURL.js';\nimport {getProxyForUrl} from 'proxy-from-env';\nimport http from 'http';\nimport https from 'https';\nimport util from 'util';\nimport followRedirects from 'follow-redirects';\nimport zlib from 'zlib';\nimport {VERSION} from '../env/data.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport platform from '../platform/index.js';\nimport fromDataURI from '../helpers/fromDataURI.js';\nimport stream from 'stream';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport AxiosTransformStream from '../helpers/AxiosTransformStream.js';\nimport {EventEmitter} from 'events';\nimport formDataToStream from \"../helpers/formDataToStream.js\";\nimport readBlob from \"../helpers/readBlob.js\";\nimport ZlibHeaderTransformStream from '../helpers/ZlibHeaderTransformStream.js';\nimport callbackify from \"../helpers/callbackify.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\n\nconst zlibOptions = {\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n};\n\nconst brotliOptions = {\n flush: zlib.constants.BROTLI_OPERATION_FLUSH,\n finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH\n}\n\nconst isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress);\n\nconst {http: httpFollow, https: httpsFollow} = followRedirects;\n\nconst isHttps = /https:?/;\n\nconst supportedProtocols = platform.protocols.map(protocol => {\n return protocol + ':';\n});\n\nconst flushOnFinish = (stream, [throttled, flush]) => {\n stream\n .on('end', flush)\n .on('error', flush);\n\n return throttled;\n}\n\n/**\n * If the proxy or config beforeRedirects functions are defined, call them with the options\n * object.\n *\n * @param {Object<string, any>} options - The options object that was passed to the request.\n *\n * @returns {Object<string, any>}\n */\nfunction dispatchBeforeRedirect(options, responseDetails) {\n if (options.beforeRedirects.proxy) {\n options.beforeRedirects.proxy(options);\n }\n if (options.beforeRedirects.config) {\n options.beforeRedirects.config(options, responseDetails);\n }\n}\n\n/**\n * If the proxy or config afterRedirects functions are defined, call them with the options\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} configProxy configuration from Axios options object\n * @param {string} location\n *\n * @returns {http.ClientRequestArgs}\n */\nfunction setProxy(options, configProxy, location) {\n let proxy = configProxy;\n if (!proxy && proxy !== false) {\n const proxyUrl = getProxyForUrl(location);\n if (proxyUrl) {\n proxy = new URL(proxyUrl);\n }\n }\n if (proxy) {\n // Basic proxy authorization\n if (proxy.username) {\n proxy.auth = (proxy.username || '') + ':' + (proxy.password || '');\n }\n\n if (proxy.auth) {\n // Support proxy auth object form\n if (proxy.auth.username || proxy.auth.password) {\n proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || '');\n }\n const base64 = Buffer\n .from(proxy.auth, 'utf8')\n .toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n options.headers.host = options.hostname + (options.port ? ':' + options.port : '');\n const proxyHost = proxy.hostname || proxy.host;\n options.hostname = proxyHost;\n // Replace 'host' since options is not a URL object\n options.host = proxyHost;\n options.port = proxy.port;\n options.path = location;\n if (proxy.protocol) {\n options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`;\n }\n }\n\n options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) {\n // Configure proxy for redirected request, passing the original config proxy to apply\n // the exact same logic as if the redirected request was performed by axios directly.\n setProxy(redirectOptions, configProxy, redirectOptions.href);\n };\n}\n\nconst isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process';\n\n// temporary hotfix\n\nconst wrapAsync = (asyncExecutor) => {\n return new Promise((resolve, reject) => {\n let onDone;\n let isDone;\n\n const done = (value, isRejected) => {\n if (isDone) return;\n isDone = true;\n onDone && onDone(value, isRejected);\n }\n\n const _resolve = (value) => {\n done(value);\n resolve(value);\n };\n\n const _reject = (reason) => {\n done(reason, true);\n reject(reason);\n }\n\n asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject);\n })\n};\n\nconst resolveFamily = ({address, family}) => {\n if (!utils.isString(address)) {\n throw TypeError('address must be a string');\n }\n return ({\n address,\n family: family || (address.indexOf('.') < 0 ? 6 : 4)\n });\n}\n\nconst buildAddressEntry = (address, family) => resolveFamily(utils.isObject(address) ? address : {address, family});\n\n/*eslint consistent-return:0*/\nexport default isHttpAdapterSupported && function httpAdapter(config) {\n return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {\n let {data, lookup, family} = config;\n const {responseType, responseEncoding} = config;\n const method = config.method.toUpperCase();\n let isDone;\n let rejected = false;\n let req;\n\n if (lookup) {\n const _lookup = callbackify(lookup, (value) => utils.isArray(value) ? value : [value]);\n // hotfix to support opt.all option which is required for node 20.x\n lookup = (hostname, opt, cb) => {\n _lookup(hostname, opt, (err, arg0, arg1) => {\n if (err) {\n return cb(err);\n }\n\n const addresses = utils.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];\n\n opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);\n });\n }\n }\n\n // temporary internal emitter until the AxiosRequest class will be implemented\n const emitter = new EventEmitter();\n\n const onFinished = () => {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(abort);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', abort);\n }\n\n emitter.removeAllListeners();\n }\n\n onDone((value, isRejected) => {\n isDone = true;\n if (isRejected) {\n rejected = true;\n onFinished();\n }\n });\n\n function abort(reason) {\n emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason);\n }\n\n emitter.once('abort', reject);\n\n if (config.cancelToken || config.signal) {\n config.cancelToken && config.cancelToken.subscribe(abort);\n if (config.signal) {\n config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort);\n }\n }\n\n // Parse url\n const fullPath = buildFullPath(config.baseURL, config.url);\n const parsed = new URL(fullPath, platform.hasBrowserEnv ? platform.origin : undefined);\n const protocol = parsed.protocol || supportedProtocols[0];\n\n if (protocol === 'data:') {\n let convertedData;\n\n if (method !== 'GET') {\n return settle(resolve, reject, {\n status: 405,\n statusText: 'method not allowed',\n headers: {},\n config\n });\n }\n\n try {\n convertedData = fromDataURI(config.url, responseType === 'blob', {\n Blob: config.env && config.env.Blob\n });\n } catch (err) {\n throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config);\n }\n\n if (responseType === 'text') {\n convertedData = convertedData.toString(responseEncoding);\n\n if (!responseEncoding || responseEncoding === 'utf8') {\n convertedData = utils.stripBOM(convertedData);\n }\n } else if (responseType === 'stream') {\n convertedData = stream.Readable.from(convertedData);\n }\n\n return settle(resolve, reject, {\n data: convertedData,\n status: 200,\n statusText: 'OK',\n headers: new AxiosHeaders(),\n config\n });\n }\n\n if (supportedProtocols.indexOf(protocol) === -1) {\n return reject(new AxiosError(\n 'Unsupported protocol ' + protocol,\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n const headers = AxiosHeaders.from(config.headers).normalize();\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n // User-Agent is specified; handle case where no UA header is desired\n // Only set header if it hasn't been set in config\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const {onUploadProgress, onDownloadProgress} = config;\n const maxRate = config.maxRate;\n let maxUploadRate = undefined;\n let maxDownloadRate = undefined;\n\n // support for spec compliant FormData objects\n if (utils.isSpecCompliantForm(data)) {\n const userBoundary = headers.getContentType(/boundary=([-_\\w\\d]{10,70})/i);\n\n data = formDataToStream(data, (formHeaders) => {\n headers.set(formHeaders);\n }, {\n tag: `axios-${VERSION}-boundary`,\n boundary: userBoundary && userBoundary[1] || undefined\n });\n // support for https://www.npmjs.com/package/form-data api\n } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) {\n headers.set(data.getHeaders());\n\n if (!headers.hasContentLength()) {\n try {\n const knownLength = await util.promisify(data.getLength).call(data);\n Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength);\n /*eslint no-empty:0*/\n } catch (e) {\n }\n }\n } else if (utils.isBlob(data)) {\n data.size && headers.setContentType(data.type || 'application/octet-stream');\n headers.setContentLength(data.size || 0);\n data = stream.Readable.from(readBlob(data));\n } else if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(new AxiosError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers.setContentLength(data.length, false);\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n }\n\n const contentLength = utils.toFiniteNumber(headers.getContentLength());\n\n if (utils.isArray(maxRate)) {\n maxUploadRate = maxRate[0];\n maxDownloadRate = maxRate[1];\n } else {\n maxUploadRate = maxDownloadRate = maxRate;\n }\n\n if (data && (onUploadProgress || maxUploadRate)) {\n if (!utils.isStream(data)) {\n data = stream.Readable.from(data, {objectMode: false});\n }\n\n data = stream.pipeline([data, new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxUploadRate)\n })], utils.noop);\n\n onUploadProgress && data.on('progress', flushOnFinish(\n data,\n progressEventDecorator(\n contentLength,\n progressEventReducer(asyncDecorator(onUploadProgress), false, 3)\n )\n ));\n }\n\n // HTTP basic authentication\n let auth = undefined;\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n if (!auth && parsed.username) {\n const urlUsername = parsed.username;\n const urlPassword = parsed.password;\n auth = urlUsername + ':' + urlPassword;\n }\n\n auth && headers.delete('authorization');\n\n let path;\n\n try {\n path = buildURL(\n parsed.pathname + parsed.search,\n config.params,\n config.paramsSerializer\n ).replace(/^\\?/, '');\n } catch (err) {\n const customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n return reject(customErr);\n }\n\n headers.set(\n 'Accept-Encoding',\n 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false\n );\n\n const options = {\n path,\n method: method,\n headers: headers.toJSON(),\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth,\n protocol,\n family,\n beforeRedirect: dispatchBeforeRedirect,\n beforeRedirects: {}\n };\n\n // cacheable-lookup integration hotfix\n !utils.isUndefined(lookup) && (options.lookup = lookup);\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname.startsWith(\"[\") ? parsed.hostname.slice(1, -1) : parsed.hostname;\n options.port = parsed.port;\n setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n let transport;\n const isHttpsRequest = isHttps.test(options.protocol);\n options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsRequest ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n if (config.beforeRedirect) {\n options.beforeRedirects.config = config.beforeRedirect;\n }\n transport = isHttpsRequest ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n } else {\n // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited\n options.maxBodyLength = Infinity;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n req = transport.request(options, function handleResponse(res) {\n if (req.destroyed) return;\n\n const streams = [res];\n\n const responseLength = +res.headers['content-length'];\n\n if (onDownloadProgress || maxDownloadRate) {\n const transformStream = new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxDownloadRate)\n });\n\n onDownloadProgress && transformStream.on('progress', flushOnFinish(\n transformStream,\n progressEventDecorator(\n responseLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true, 3)\n )\n ));\n\n streams.push(transformStream);\n }\n\n // decompress the response body transparently if required\n let responseStream = res;\n\n // return the last request in case of redirects\n const lastRequest = res.req || req;\n\n // if decompress disabled we should not decompress\n if (config.decompress !== false && res.headers['content-encoding']) {\n // if no content, but headers still say that it is encoded,\n // remove the header not confuse downstream operations\n if (method === 'HEAD' || res.statusCode === 204) {\n delete res.headers['content-encoding'];\n }\n\n switch ((res.headers['content-encoding'] || '').toLowerCase()) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'x-gzip':\n case 'compress':\n case 'x-compress':\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'deflate':\n streams.push(new ZlibHeaderTransformStream());\n\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'br':\n if (isBrotliSupported) {\n streams.push(zlib.createBrotliDecompress(brotliOptions));\n delete res.headers['content-encoding'];\n }\n }\n }\n\n responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0];\n\n const offListeners = stream.finished(responseStream, () => {\n offListeners();\n onFinished();\n });\n\n const response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: new AxiosHeaders(res.headers),\n config,\n request: lastRequest\n };\n\n if (responseType === 'stream') {\n response.data = responseStream;\n settle(resolve, reject, response);\n } else {\n const responseBuffer = [];\n let totalResponseBytes = 0;\n\n responseStream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destroy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n responseStream.destroy();\n reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE, config, lastRequest));\n }\n });\n\n responseStream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n\n const err = new AxiosError(\n 'maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest\n );\n responseStream.destroy(err);\n reject(err);\n });\n\n responseStream.on('error', function handleStreamError(err) {\n if (req.destroyed) return;\n reject(AxiosError.from(err, null, config, lastRequest));\n });\n\n responseStream.on('end', function handleStreamEnd() {\n try {\n let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (responseType !== 'arraybuffer') {\n responseData = responseData.toString(responseEncoding);\n if (!responseEncoding || responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n return reject(AxiosError.from(err, null, config, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n\n emitter.once('abort', err => {\n if (!responseStream.destroyed) {\n responseStream.emit('error', err);\n responseStream.destroy();\n }\n });\n });\n\n emitter.once('abort', err => {\n reject(err);\n req.destroy(err);\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n // @todo remove\n // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return;\n reject(AxiosError.from(err, null, config, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n const timeout = parseInt(config.timeout, 10);\n\n if (Number.isNaN(timeout)) {\n reject(new AxiosError(\n 'error trying to parse `config.timeout` to int',\n AxiosError.ERR_BAD_OPTION_VALUE,\n config,\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devouring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n if (isDone) return;\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n req\n ));\n abort();\n });\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n let ended = false;\n let errored = false;\n\n data.on('end', () => {\n ended = true;\n });\n\n data.once('error', err => {\n errored = true;\n req.destroy(err);\n });\n\n data.on('close', () => {\n if (!ended && !errored) {\n abort(new CanceledError('Request stream has been aborted', config, req));\n }\n });\n\n data.pipe(req);\n } else {\n req.end(data);\n }\n });\n}\n\nexport const __setProxy = setProxy;\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","export const VERSION = \"1.7.7\";","'use strict';\n\nimport stream from 'stream';\nimport utils from '../utils.js';\n\nconst kInternals = Symbol('internals');\n\nclass AxiosTransformStream extends stream.Transform{\n constructor(options) {\n options = utils.toFlatObject(options, {\n maxRate: 0,\n chunkSize: 64 * 1024,\n minChunkSize: 100,\n timeWindow: 500,\n ticksRate: 2,\n samplesCount: 15\n }, null, (prop, source) => {\n return !utils.isUndefined(source[prop]);\n });\n\n super({\n readableHighWaterMark: options.chunkSize\n });\n\n const internals = this[kInternals] = {\n timeWindow: options.timeWindow,\n chunkSize: options.chunkSize,\n maxRate: options.maxRate,\n minChunkSize: options.minChunkSize,\n bytesSeen: 0,\n isCaptured: false,\n notifiedBytesLoaded: 0,\n ts: Date.now(),\n bytes: 0,\n onReadCallback: null\n };\n\n this.on('newListener', event => {\n if (event === 'progress') {\n if (!internals.isCaptured) {\n internals.isCaptured = true;\n }\n }\n });\n }\n\n _read(size) {\n const internals = this[kInternals];\n\n if (internals.onReadCallback) {\n internals.onReadCallback();\n }\n\n return super._read(size);\n }\n\n _transform(chunk, encoding, callback) {\n const internals = this[kInternals];\n const maxRate = internals.maxRate;\n\n const readableHighWaterMark = this.readableHighWaterMark;\n\n const timeWindow = internals.timeWindow;\n\n const divider = 1000 / timeWindow;\n const bytesThreshold = (maxRate / divider);\n const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;\n\n const pushChunk = (_chunk, _callback) => {\n const bytes = Buffer.byteLength(_chunk);\n internals.bytesSeen += bytes;\n internals.bytes += bytes;\n\n internals.isCaptured && this.emit('progress', internals.bytesSeen);\n\n if (this.push(_chunk)) {\n process.nextTick(_callback);\n } else {\n internals.onReadCallback = () => {\n internals.onReadCallback = null;\n process.nextTick(_callback);\n };\n }\n }\n\n const transformChunk = (_chunk, _callback) => {\n const chunkSize = Buffer.byteLength(_chunk);\n let chunkRemainder = null;\n let maxChunkSize = readableHighWaterMark;\n let bytesLeft;\n let passed = 0;\n\n if (maxRate) {\n const now = Date.now();\n\n if (!internals.ts || (passed = (now - internals.ts)) >= timeWindow) {\n internals.ts = now;\n bytesLeft = bytesThreshold - internals.bytes;\n internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;\n passed = 0;\n }\n\n bytesLeft = bytesThreshold - internals.bytes;\n }\n\n if (maxRate) {\n if (bytesLeft <= 0) {\n // next time window\n return setTimeout(() => {\n _callback(null, _chunk);\n }, timeWindow - passed);\n }\n\n if (bytesLeft < maxChunkSize) {\n maxChunkSize = bytesLeft;\n }\n }\n\n if (maxChunkSize && chunkSize > maxChunkSize && (chunkSize - maxChunkSize) > minChunkSize) {\n chunkRemainder = _chunk.subarray(maxChunkSize);\n _chunk = _chunk.subarray(0, maxChunkSize);\n }\n\n pushChunk(_chunk, chunkRemainder ? () => {\n process.nextTick(_callback, null, chunkRemainder);\n } : _callback);\n };\n\n transformChunk(chunk, function transformNextChunk(err, _chunk) {\n if (err) {\n return callback(err);\n }\n\n if (_chunk) {\n transformChunk(_chunk, transformNextChunk);\n } else {\n callback(null);\n }\n });\n }\n}\n\nexport default AxiosTransformStream;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","\"use strict\";\n\nimport stream from \"stream\";\n\nclass ZlibHeaderTransformStream extends stream.Transform {\n __transform(chunk, encoding, callback) {\n this.push(chunk);\n callback();\n }\n\n _transform(chunk, encoding, callback) {\n if (chunk.length !== 0) {\n this._transform = this.__transform;\n\n // Add Default Compression headers if no zlib headers are present\n if (chunk[0] !== 120) { // Hex: 78\n const header = Buffer.alloc(2);\n header[0] = 120; // Hex: 78\n header[1] = 156; // Hex: 9C \n this.push(header, encoding);\n }\n }\n\n this.__transform(chunk, encoding, callback);\n }\n}\n\nexport default ZlibHeaderTransformStream;\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","import utils from \"../utils.js\";\n\nconst callbackify = (fn, reducer) => {\n return utils.isAsyncFn(fn) ? function (...args) {\n const cb = args.pop();\n fn.apply(this, args).then((value) => {\n try {\n reducer ? cb(null, ...reducer(value)) : cb(null, value);\n } catch (err) {\n cb(err);\n }\n }, cb);\n } : fn;\n}\n\nexport default callbackify;\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","import {TextEncoder} from 'util';\nimport {Readable} from 'stream';\nimport utils from \"../utils.js\";\nimport readBlob from \"./readBlob.js\";\n\nconst BOUNDARY_ALPHABET = utils.ALPHABET.ALPHA_DIGIT + '-_';\n\nconst textEncoder = new TextEncoder();\n\nconst CRLF = '\\r\\n';\nconst CRLF_BYTES = textEncoder.encode(CRLF);\nconst CRLF_BYTES_COUNT = 2;\n\nclass FormDataPart {\n constructor(name, value) {\n const {escapeName} = this.constructor;\n const isStringValue = utils.isString(value);\n\n let headers = `Content-Disposition: form-data; name=\"${escapeName(name)}\"${\n !isStringValue && value.name ? `; filename=\"${escapeName(value.name)}\"` : ''\n }${CRLF}`;\n\n if (isStringValue) {\n value = textEncoder.encode(String(value).replace(/\\r?\\n|\\r\\n?/g, CRLF));\n } else {\n headers += `Content-Type: ${value.type || \"application/octet-stream\"}${CRLF}`\n }\n\n this.headers = textEncoder.encode(headers + CRLF);\n\n this.contentLength = isStringValue ? value.byteLength : value.size;\n\n this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;\n\n this.name = name;\n this.value = value;\n }\n\n async *encode(){\n yield this.headers;\n\n const {value} = this;\n\n if(utils.isTypedArray(value)) {\n yield value;\n } else {\n yield* readBlob(value);\n }\n\n yield CRLF_BYTES;\n }\n\n static escapeName(name) {\n return String(name).replace(/[\\r\\n\"]/g, (match) => ({\n '\\r' : '%0D',\n '\\n' : '%0A',\n '\"' : '%22',\n }[match]));\n }\n}\n\nconst formDataToStream = (form, headersHandler, options) => {\n const {\n tag = 'form-data-boundary',\n size = 25,\n boundary = tag + '-' + utils.generateString(size, BOUNDARY_ALPHABET)\n } = options || {};\n\n if(!utils.isFormData(form)) {\n throw TypeError('FormData instance required');\n }\n\n if (boundary.length < 1 || boundary.length > 70) {\n throw Error('boundary must be 10-70 characters long')\n }\n\n const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);\n const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + CRLF);\n let contentLength = footerBytes.byteLength;\n\n const parts = Array.from(form.entries()).map(([name, value]) => {\n const part = new FormDataPart(name, value);\n contentLength += part.size;\n return part;\n });\n\n contentLength += boundaryBytes.byteLength * parts.length;\n\n contentLength = utils.toFiniteNumber(contentLength);\n\n const computedHeaders = {\n 'Content-Type': `multipart/form-data; boundary=${boundary}`\n }\n\n if (Number.isFinite(contentLength)) {\n computedHeaders['Content-Length'] = contentLength;\n }\n\n headersHandler && headersHandler(computedHeaders);\n\n return Readable.from((async function *() {\n for(const part of parts) {\n yield boundaryBytes;\n yield* part.encode();\n }\n\n yield footerBytes;\n })());\n};\n\nexport default formDataToStream;\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport parseProtocol from './parseProtocol.js';\nimport platform from '../platform/index.js';\n\nconst DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\\s\\S]*)$/;\n\n/**\n * Parse data uri to a Buffer or Blob\n *\n * @param {String} uri\n * @param {?Boolean} asBlob\n * @param {?Object} options\n * @param {?Function} options.Blob\n *\n * @returns {Buffer|Blob}\n */\nexport default function fromDataURI(uri, asBlob, options) {\n const _Blob = options && options.Blob || platform.classes.Blob;\n const protocol = parseProtocol(uri);\n\n if (asBlob === undefined && _Blob) {\n asBlob = true;\n }\n\n if (protocol === 'data') {\n uri = protocol.length ? uri.slice(protocol.length + 1) : uri;\n\n const match = DATA_URL_PATTERN.exec(uri);\n\n if (!match) {\n throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL);\n }\n\n const mime = match[1];\n const isBase64 = match[2];\n const body = match[3];\n const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8');\n\n if (asBlob) {\n if (!_Blob) {\n throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);\n }\n\n return new _Blob([buffer], {type: mime});\n }\n\n return buffer;\n }\n\n throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","const {asyncIterator} = Symbol;\n\nconst readBlob = async function* (blob) {\n if (blob.stream) {\n yield* blob.stream()\n } else if (blob.arrayBuffer) {\n yield await blob.arrayBuffer()\n } else if (blob[asyncIterator]) {\n yield* blob[asyncIterator]();\n } else {\n yield blob;\n }\n}\n\nexport default readBlob;\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","import FormData from 'form-data';\n\nexport default FormData;\n","'use strict';\n\nimport url from 'url';\nexport default url.URLSearchParams;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\n\nexport default {\n isNode: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob: typeof Blob !== 'undefined' && Blob || null\n },\n protocols: [ 'http', 'https', 'file', 'data' ]\n};\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// Import named functions first\nimport DataService from \"./SODAS_SDK_CLASS/DCAT/dataService\";\nimport Dataset from \"./SODAS_SDK_CLASS/DCAT/dataset\";\nimport DatasetSeries from \"./SODAS_SDK_CLASS/DCAT/datasetSeries\";\nimport Distribution from \"./SODAS_SDK_CLASS/DCAT/distribution\";\nimport ValidationTemplate from \"./SODAS_SDK_CLASS/template/validation\";\nimport Config from \"./core/auth\";\nimport {\n setGovernanceBearerToken,\n setLegacyDatahubBearerToken,\n} from \"./core/init\";\nimport {\n ArtifactType,\n IDType,\n IRIType,\n ResourceDescriptorRole,\n SortOrder,\n TemplateDetailFunctionality,\n asID,\n asIRI,\n} from \"./core/type\";\nimport {\n BASIC_TYPE_VALUES,\n CONVERSION_VALUES,\n MEASURE_VALUES,\n ORIGIN_VALUES,\n} from \"./core/values\";\n\n// ✅ Named exports (For ES module compatibility)\nexport {\n ArtifactType,\n BASIC_TYPE_VALUES,\n CONVERSION_VALUES,\n Config,\n DataService,\n Dataset,\n DatasetSeries,\n Distribution,\n IDType,\n IRIType,\n MEASURE_VALUES,\n ORIGIN_VALUES,\n ResourceDescriptorRole,\n SortOrder,\n TemplateDetailFunctionality,\n ValidationTemplate,\n asID,\n asIRI,\n setGovernanceBearerToken,\n setLegacyDatahubBearerToken,\n};\n\n// ✅ Default export (For CommonJS compatibility)\nconst sdk = {\n ArtifactType,\n BASIC_TYPE_VALUES,\n CONVERSION_VALUES,\n Config,\n DataService,\n Dataset,\n DatasetSeries,\n Distribution,\n MEASURE_VALUES,\n ORIGIN_VALUES,\n ResourceDescriptorRole,\n SortOrder,\n TemplateDetailFunctionality,\n ValidationTemplate,\n asID,\n asIRI,\n setGovernanceBearerToken,\n setLegacyDatahubBearerToken,\n};\n\n// ✅ Ensures `require(\"sodas-sdk\")` works in CommonJS\nexport default sdk;\n"],"names":[],"sourceRoot":""}